index.cjs•12.1 MB
"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __esm = (fn, res) => function __init() {
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
};
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all3) => {
for (var name in all3)
__defProp(target, name, { get: all3[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// node_modules/zod/lib/index.mjs
function setErrorMap(map) {
overrideErrorMap = map;
}
function getErrorMap() {
return overrideErrorMap;
}
function addIssueToContext(ctx, issueData) {
const overrideMap = getErrorMap();
const issue = makeIssue({
issueData,
data: ctx.data,
path: ctx.path,
errorMaps: [
ctx.common.contextualErrorMap,
// contextual error map is first priority
ctx.schemaErrorMap,
// then schema-bound map if available
overrideMap,
// then global override map
overrideMap === errorMap ? void 0 : errorMap
// then global default map
].filter((x) => !!x)
});
ctx.common.issues.push(issue);
}
function __classPrivateFieldGet(receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}
function __classPrivateFieldSet(receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
}
function processCreateParams(params) {
if (!params)
return {};
const { errorMap: errorMap3, invalid_type_error, required_error, description } = params;
if (errorMap3 && (invalid_type_error || required_error)) {
throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);
}
if (errorMap3)
return { errorMap: errorMap3, description };
const customMap = (iss, ctx) => {
var _a, _b;
const { message } = params;
if (iss.code === "invalid_enum_value") {
return { message: message !== null && message !== void 0 ? message : ctx.defaultError };
}
if (typeof ctx.data === "undefined") {
return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };
}
if (iss.code !== "invalid_type")
return { message: ctx.defaultError };
return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };
};
return { errorMap: customMap, description };
}
function timeRegexSource(args) {
let regex = `([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d`;
if (args.precision) {
regex = `${regex}\\.\\d{${args.precision}}`;
} else if (args.precision == null) {
regex = `${regex}(\\.\\d+)?`;
}
return regex;
}
function timeRegex(args) {
return new RegExp(`^${timeRegexSource(args)}$`);
}
function datetimeRegex(args) {
let regex = `${dateRegexSource}T${timeRegexSource(args)}`;
const opts = [];
opts.push(args.local ? `Z?` : `Z`);
if (args.offset)
opts.push(`([+-]\\d{2}:?\\d{2})`);
regex = `${regex}(${opts.join("|")})`;
return new RegExp(`^${regex}$`);
}
function isValidIP(ip, version) {
if ((version === "v4" || !version) && ipv4Regex.test(ip)) {
return true;
}
if ((version === "v6" || !version) && ipv6Regex.test(ip)) {
return true;
}
return false;
}
function isValidJWT(jwt, alg) {
if (!jwtRegex.test(jwt))
return false;
try {
const [header] = jwt.split(".");
const base64 = header.replace(/-/g, "+").replace(/_/g, "/").padEnd(header.length + (4 - header.length % 4) % 4, "=");
const decoded = JSON.parse(atob(base64));
if (typeof decoded !== "object" || decoded === null)
return false;
if (!decoded.typ || !decoded.alg)
return false;
if (alg && decoded.alg !== alg)
return false;
return true;
} catch (_a) {
return false;
}
}
function isValidCidr(ip, version) {
if ((version === "v4" || !version) && ipv4CidrRegex.test(ip)) {
return true;
}
if ((version === "v6" || !version) && ipv6CidrRegex.test(ip)) {
return true;
}
return false;
}
function floatSafeRemainder(val, step) {
const valDecCount = (val.toString().split(".")[1] || "").length;
const stepDecCount = (step.toString().split(".")[1] || "").length;
const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;
const valInt = parseInt(val.toFixed(decCount).replace(".", ""));
const stepInt = parseInt(step.toFixed(decCount).replace(".", ""));
return valInt % stepInt / Math.pow(10, decCount);
}
function deepPartialify(schema) {
if (schema instanceof ZodObject) {
const newShape = {};
for (const key in schema.shape) {
const fieldSchema = schema.shape[key];
newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));
}
return new ZodObject({
...schema._def,
shape: () => newShape
});
} else if (schema instanceof ZodArray) {
return new ZodArray({
...schema._def,
type: deepPartialify(schema.element)
});
} else if (schema instanceof ZodOptional) {
return ZodOptional.create(deepPartialify(schema.unwrap()));
} else if (schema instanceof ZodNullable) {
return ZodNullable.create(deepPartialify(schema.unwrap()));
} else if (schema instanceof ZodTuple) {
return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));
} else {
return schema;
}
}
function mergeValues(a, b) {
const aType = getParsedType(a);
const bType = getParsedType(b);
if (a === b) {
return { valid: true, data: a };
} else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {
const bKeys = util.objectKeys(b);
const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);
const newObj = { ...a, ...b };
for (const key of sharedKeys) {
const sharedValue = mergeValues(a[key], b[key]);
if (!sharedValue.valid) {
return { valid: false };
}
newObj[key] = sharedValue.data;
}
return { valid: true, data: newObj };
} else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {
if (a.length !== b.length) {
return { valid: false };
}
const newArray = [];
for (let index = 0; index < a.length; index++) {
const itemA = a[index];
const itemB = b[index];
const sharedValue = mergeValues(itemA, itemB);
if (!sharedValue.valid) {
return { valid: false };
}
newArray.push(sharedValue.data);
}
return { valid: true, data: newArray };
} else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {
return { valid: true, data: a };
} else {
return { valid: false };
}
}
function createZodEnum(values, params) {
return new ZodEnum({
values,
typeName: ZodFirstPartyTypeKind.ZodEnum,
...processCreateParams(params)
});
}
function cleanParams(params, data) {
const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params;
const p2 = typeof p === "string" ? { message: p } : p;
return p2;
}
function custom(check, _params = {}, fatal) {
if (check)
return ZodAny.create().superRefine((data, ctx) => {
var _a, _b;
const r = check(data);
if (r instanceof Promise) {
return r.then((r2) => {
var _a2, _b2;
if (!r2) {
const params = cleanParams(_params, data);
const _fatal = (_b2 = (_a2 = params.fatal) !== null && _a2 !== void 0 ? _a2 : fatal) !== null && _b2 !== void 0 ? _b2 : true;
ctx.addIssue({ code: "custom", ...params, fatal: _fatal });
}
});
}
if (!r) {
const params = cleanParams(_params, data);
const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;
ctx.addIssue({ code: "custom", ...params, fatal: _fatal });
}
return;
});
return ZodAny.create();
}
var util, objectUtil, ZodParsedType, getParsedType, ZodIssueCode, quotelessJson, ZodError, errorMap, overrideErrorMap, makeIssue, EMPTY_PATH, ParseStatus, INVALID, DIRTY, OK, isAborted, isDirty, isValid, isAsync, errorUtil, _ZodEnum_cache, _ZodNativeEnum_cache, ParseInputLazyPath, handleResult, ZodType, cuidRegex, cuid2Regex, ulidRegex, uuidRegex, nanoidRegex, jwtRegex, durationRegex, emailRegex, _emojiRegex, emojiRegex, ipv4Regex, ipv4CidrRegex, ipv6Regex, ipv6CidrRegex, base64Regex, base64urlRegex, dateRegexSource, dateRegex, ZodString, ZodNumber, ZodBigInt, ZodBoolean, ZodDate, ZodSymbol, ZodUndefined, ZodNull, ZodAny, ZodUnknown, ZodNever, ZodVoid, ZodArray, ZodObject, ZodUnion, getDiscriminator, ZodDiscriminatedUnion, ZodIntersection, ZodTuple, ZodRecord, ZodMap, ZodSet, ZodFunction, ZodLazy, ZodLiteral, ZodEnum, ZodNativeEnum, ZodPromise, ZodEffects, ZodOptional, ZodNullable, ZodDefault, ZodCatch, ZodNaN, BRAND, ZodBranded, ZodPipeline, ZodReadonly, late, ZodFirstPartyTypeKind, instanceOfType, stringType, numberType, nanType, bigIntType, booleanType, dateType, symbolType, undefinedType, nullType, anyType, unknownType, neverType, voidType, arrayType, objectType, strictObjectType, unionType, discriminatedUnionType, intersectionType, tupleType, recordType, mapType, setType, functionType, lazyType, literalType, enumType, nativeEnumType, promiseType, effectsType, optionalType, nullableType, preprocessType, pipelineType, ostring, onumber, oboolean, coerce, NEVER, z;
var init_lib = __esm({
"node_modules/zod/lib/index.mjs"() {
(function(util5) {
util5.assertEqual = (val) => val;
function assertIs(_arg) {
}
util5.assertIs = assertIs;
function assertNever(_x) {
throw new Error();
}
util5.assertNever = assertNever;
util5.arrayToEnum = (items) => {
const obj = {};
for (const item of items) {
obj[item] = item;
}
return obj;
};
util5.getValidEnumValues = (obj) => {
const validKeys = util5.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== "number");
const filtered = {};
for (const k of validKeys) {
filtered[k] = obj[k];
}
return util5.objectValues(filtered);
};
util5.objectValues = (obj) => {
return util5.objectKeys(obj).map(function(e) {
return obj[e];
});
};
util5.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object) => {
const keys = [];
for (const key in object) {
if (Object.prototype.hasOwnProperty.call(object, key)) {
keys.push(key);
}
}
return keys;
};
util5.find = (arr, checker) => {
for (const item of arr) {
if (checker(item))
return item;
}
return void 0;
};
util5.isInteger = typeof Number.isInteger === "function" ? (val) => Number.isInteger(val) : (val) => typeof val === "number" && isFinite(val) && Math.floor(val) === val;
function joinValues(array, separator = " | ") {
return array.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator);
}
util5.joinValues = joinValues;
util5.jsonStringifyReplacer = (_, value) => {
if (typeof value === "bigint") {
return value.toString();
}
return value;
};
})(util || (util = {}));
(function(objectUtil3) {
objectUtil3.mergeShapes = (first, second) => {
return {
...first,
...second
// second overwrites first
};
};
})(objectUtil || (objectUtil = {}));
ZodParsedType = util.arrayToEnum([
"string",
"nan",
"number",
"integer",
"float",
"boolean",
"date",
"bigint",
"symbol",
"function",
"undefined",
"null",
"array",
"object",
"unknown",
"promise",
"void",
"never",
"map",
"set"
]);
getParsedType = (data) => {
const t = typeof data;
switch (t) {
case "undefined":
return ZodParsedType.undefined;
case "string":
return ZodParsedType.string;
case "number":
return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;
case "boolean":
return ZodParsedType.boolean;
case "function":
return ZodParsedType.function;
case "bigint":
return ZodParsedType.bigint;
case "symbol":
return ZodParsedType.symbol;
case "object":
if (Array.isArray(data)) {
return ZodParsedType.array;
}
if (data === null) {
return ZodParsedType.null;
}
if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") {
return ZodParsedType.promise;
}
if (typeof Map !== "undefined" && data instanceof Map) {
return ZodParsedType.map;
}
if (typeof Set !== "undefined" && data instanceof Set) {
return ZodParsedType.set;
}
if (typeof Date !== "undefined" && data instanceof Date) {
return ZodParsedType.date;
}
return ZodParsedType.object;
default:
return ZodParsedType.unknown;
}
};
ZodIssueCode = util.arrayToEnum([
"invalid_type",
"invalid_literal",
"custom",
"invalid_union",
"invalid_union_discriminator",
"invalid_enum_value",
"unrecognized_keys",
"invalid_arguments",
"invalid_return_type",
"invalid_date",
"invalid_string",
"too_small",
"too_big",
"invalid_intersection_types",
"not_multiple_of",
"not_finite"
]);
quotelessJson = (obj) => {
const json = JSON.stringify(obj, null, 2);
return json.replace(/"([^"]+)":/g, "$1:");
};
ZodError = class _ZodError2 extends Error {
get errors() {
return this.issues;
}
constructor(issues) {
super();
this.issues = [];
this.addIssue = (sub) => {
this.issues = [...this.issues, sub];
};
this.addIssues = (subs = []) => {
this.issues = [...this.issues, ...subs];
};
const actualProto = new.target.prototype;
if (Object.setPrototypeOf) {
Object.setPrototypeOf(this, actualProto);
} else {
this.__proto__ = actualProto;
}
this.name = "ZodError";
this.issues = issues;
}
format(_mapper) {
const mapper = _mapper || function(issue) {
return issue.message;
};
const fieldErrors = { _errors: [] };
const processError = (error) => {
for (const issue of error.issues) {
if (issue.code === "invalid_union") {
issue.unionErrors.map(processError);
} else if (issue.code === "invalid_return_type") {
processError(issue.returnTypeError);
} else if (issue.code === "invalid_arguments") {
processError(issue.argumentsError);
} else if (issue.path.length === 0) {
fieldErrors._errors.push(mapper(issue));
} else {
let curr = fieldErrors;
let i = 0;
while (i < issue.path.length) {
const el = issue.path[i];
const terminal = i === issue.path.length - 1;
if (!terminal) {
curr[el] = curr[el] || { _errors: [] };
} else {
curr[el] = curr[el] || { _errors: [] };
curr[el]._errors.push(mapper(issue));
}
curr = curr[el];
i++;
}
}
}
};
processError(this);
return fieldErrors;
}
static assert(value) {
if (!(value instanceof _ZodError2)) {
throw new Error(`Not a ZodError: ${value}`);
}
}
toString() {
return this.message;
}
get message() {
return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);
}
get isEmpty() {
return this.issues.length === 0;
}
flatten(mapper = (issue) => issue.message) {
const fieldErrors = {};
const formErrors = [];
for (const sub of this.issues) {
if (sub.path.length > 0) {
fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];
fieldErrors[sub.path[0]].push(mapper(sub));
} else {
formErrors.push(mapper(sub));
}
}
return { formErrors, fieldErrors };
}
get formErrors() {
return this.flatten();
}
};
ZodError.create = (issues) => {
const error = new ZodError(issues);
return error;
};
errorMap = (issue, _ctx) => {
let message;
switch (issue.code) {
case ZodIssueCode.invalid_type:
if (issue.received === ZodParsedType.undefined) {
message = "Required";
} else {
message = `Expected ${issue.expected}, received ${issue.received}`;
}
break;
case ZodIssueCode.invalid_literal:
message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;
break;
case ZodIssueCode.unrecognized_keys:
message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`;
break;
case ZodIssueCode.invalid_union:
message = `Invalid input`;
break;
case ZodIssueCode.invalid_union_discriminator:
message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;
break;
case ZodIssueCode.invalid_enum_value:
message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;
break;
case ZodIssueCode.invalid_arguments:
message = `Invalid function arguments`;
break;
case ZodIssueCode.invalid_return_type:
message = `Invalid function return type`;
break;
case ZodIssueCode.invalid_date:
message = `Invalid date`;
break;
case ZodIssueCode.invalid_string:
if (typeof issue.validation === "object") {
if ("includes" in issue.validation) {
message = `Invalid input: must include "${issue.validation.includes}"`;
if (typeof issue.validation.position === "number") {
message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;
}
} else if ("startsWith" in issue.validation) {
message = `Invalid input: must start with "${issue.validation.startsWith}"`;
} else if ("endsWith" in issue.validation) {
message = `Invalid input: must end with "${issue.validation.endsWith}"`;
} else {
util.assertNever(issue.validation);
}
} else if (issue.validation !== "regex") {
message = `Invalid ${issue.validation}`;
} else {
message = "Invalid";
}
break;
case ZodIssueCode.too_small:
if (issue.type === "array")
message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;
else if (issue.type === "string")
message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;
else if (issue.type === "number")
message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;
else if (issue.type === "date")
message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;
else
message = "Invalid input";
break;
case ZodIssueCode.too_big:
if (issue.type === "array")
message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;
else if (issue.type === "string")
message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;
else if (issue.type === "number")
message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
else if (issue.type === "bigint")
message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
else if (issue.type === "date")
message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;
else
message = "Invalid input";
break;
case ZodIssueCode.custom:
message = `Invalid input`;
break;
case ZodIssueCode.invalid_intersection_types:
message = `Intersection results could not be merged`;
break;
case ZodIssueCode.not_multiple_of:
message = `Number must be a multiple of ${issue.multipleOf}`;
break;
case ZodIssueCode.not_finite:
message = "Number must be finite";
break;
default:
message = _ctx.defaultError;
util.assertNever(issue);
}
return { message };
};
overrideErrorMap = errorMap;
makeIssue = (params) => {
const { data, path, errorMaps, issueData } = params;
const fullPath = [...path, ...issueData.path || []];
const fullIssue = {
...issueData,
path: fullPath
};
if (issueData.message !== void 0) {
return {
...issueData,
path: fullPath,
message: issueData.message
};
}
let errorMessage = "";
const maps = errorMaps.filter((m) => !!m).slice().reverse();
for (const map of maps) {
errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;
}
return {
...issueData,
path: fullPath,
message: errorMessage
};
};
EMPTY_PATH = [];
ParseStatus = class _ParseStatus2 {
constructor() {
this.value = "valid";
}
dirty() {
if (this.value === "valid")
this.value = "dirty";
}
abort() {
if (this.value !== "aborted")
this.value = "aborted";
}
static mergeArray(status, results) {
const arrayValue = [];
for (const s of results) {
if (s.status === "aborted")
return INVALID;
if (s.status === "dirty")
status.dirty();
arrayValue.push(s.value);
}
return { status: status.value, value: arrayValue };
}
static async mergeObjectAsync(status, pairs) {
const syncPairs = [];
for (const pair of pairs) {
const key = await pair.key;
const value = await pair.value;
syncPairs.push({
key,
value
});
}
return _ParseStatus2.mergeObjectSync(status, syncPairs);
}
static mergeObjectSync(status, pairs) {
const finalObject = {};
for (const pair of pairs) {
const { key, value } = pair;
if (key.status === "aborted")
return INVALID;
if (value.status === "aborted")
return INVALID;
if (key.status === "dirty")
status.dirty();
if (value.status === "dirty")
status.dirty();
if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) {
finalObject[key.value] = value.value;
}
}
return { status: status.value, value: finalObject };
}
};
INVALID = Object.freeze({
status: "aborted"
});
DIRTY = (value) => ({ status: "dirty", value });
OK = (value) => ({ status: "valid", value });
isAborted = (x) => x.status === "aborted";
isDirty = (x) => x.status === "dirty";
isValid = (x) => x.status === "valid";
isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
(function(errorUtil3) {
errorUtil3.errToObj = (message) => typeof message === "string" ? { message } : message || {};
errorUtil3.toString = (message) => typeof message === "string" ? message : message === null || message === void 0 ? void 0 : message.message;
})(errorUtil || (errorUtil = {}));
ParseInputLazyPath = class {
constructor(parent, value, path, key) {
this._cachedPath = [];
this.parent = parent;
this.data = value;
this._path = path;
this._key = key;
}
get path() {
if (!this._cachedPath.length) {
if (this._key instanceof Array) {
this._cachedPath.push(...this._path, ...this._key);
} else {
this._cachedPath.push(...this._path, this._key);
}
}
return this._cachedPath;
}
};
handleResult = (ctx, result) => {
if (isValid(result)) {
return { success: true, data: result.value };
} else {
if (!ctx.common.issues.length) {
throw new Error("Validation failed but no issues detected.");
}
return {
success: false,
get error() {
if (this._error)
return this._error;
const error = new ZodError(ctx.common.issues);
this._error = error;
return this._error;
}
};
}
};
ZodType = class {
get description() {
return this._def.description;
}
_getType(input) {
return getParsedType(input.data);
}
_getOrReturnCtx(input, ctx) {
return ctx || {
common: input.parent.common,
data: input.data,
parsedType: getParsedType(input.data),
schemaErrorMap: this._def.errorMap,
path: input.path,
parent: input.parent
};
}
_processInputParams(input) {
return {
status: new ParseStatus(),
ctx: {
common: input.parent.common,
data: input.data,
parsedType: getParsedType(input.data),
schemaErrorMap: this._def.errorMap,
path: input.path,
parent: input.parent
}
};
}
_parseSync(input) {
const result = this._parse(input);
if (isAsync(result)) {
throw new Error("Synchronous parse encountered promise.");
}
return result;
}
_parseAsync(input) {
const result = this._parse(input);
return Promise.resolve(result);
}
parse(data, params) {
const result = this.safeParse(data, params);
if (result.success)
return result.data;
throw result.error;
}
safeParse(data, params) {
var _a;
const ctx = {
common: {
issues: [],
async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,
contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap
},
path: (params === null || params === void 0 ? void 0 : params.path) || [],
schemaErrorMap: this._def.errorMap,
parent: null,
data,
parsedType: getParsedType(data)
};
const result = this._parseSync({ data, path: ctx.path, parent: ctx });
return handleResult(ctx, result);
}
"~validate"(data) {
var _a, _b;
const ctx = {
common: {
issues: [],
async: !!this["~standard"].async
},
path: [],
schemaErrorMap: this._def.errorMap,
parent: null,
data,
parsedType: getParsedType(data)
};
if (!this["~standard"].async) {
try {
const result = this._parseSync({ data, path: [], parent: ctx });
return isValid(result) ? {
value: result.value
} : {
issues: ctx.common.issues
};
} catch (err2) {
if ((_b = (_a = err2 === null || err2 === void 0 ? void 0 : err2.message) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes("encountered")) {
this["~standard"].async = true;
}
ctx.common = {
issues: [],
async: true
};
}
}
return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result) ? {
value: result.value
} : {
issues: ctx.common.issues
});
}
async parseAsync(data, params) {
const result = await this.safeParseAsync(data, params);
if (result.success)
return result.data;
throw result.error;
}
async safeParseAsync(data, params) {
const ctx = {
common: {
issues: [],
contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,
async: true
},
path: (params === null || params === void 0 ? void 0 : params.path) || [],
schemaErrorMap: this._def.errorMap,
parent: null,
data,
parsedType: getParsedType(data)
};
const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });
const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));
return handleResult(ctx, result);
}
refine(check, message) {
const getIssueProperties = (val) => {
if (typeof message === "string" || typeof message === "undefined") {
return { message };
} else if (typeof message === "function") {
return message(val);
} else {
return message;
}
};
return this._refinement((val, ctx) => {
const result = check(val);
const setError = () => ctx.addIssue({
code: ZodIssueCode.custom,
...getIssueProperties(val)
});
if (typeof Promise !== "undefined" && result instanceof Promise) {
return result.then((data) => {
if (!data) {
setError();
return false;
} else {
return true;
}
});
}
if (!result) {
setError();
return false;
} else {
return true;
}
});
}
refinement(check, refinementData) {
return this._refinement((val, ctx) => {
if (!check(val)) {
ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData);
return false;
} else {
return true;
}
});
}
_refinement(refinement) {
return new ZodEffects({
schema: this,
typeName: ZodFirstPartyTypeKind.ZodEffects,
effect: { type: "refinement", refinement }
});
}
superRefine(refinement) {
return this._refinement(refinement);
}
constructor(def) {
this.spa = this.safeParseAsync;
this._def = def;
this.parse = this.parse.bind(this);
this.safeParse = this.safeParse.bind(this);
this.parseAsync = this.parseAsync.bind(this);
this.safeParseAsync = this.safeParseAsync.bind(this);
this.spa = this.spa.bind(this);
this.refine = this.refine.bind(this);
this.refinement = this.refinement.bind(this);
this.superRefine = this.superRefine.bind(this);
this.optional = this.optional.bind(this);
this.nullable = this.nullable.bind(this);
this.nullish = this.nullish.bind(this);
this.array = this.array.bind(this);
this.promise = this.promise.bind(this);
this.or = this.or.bind(this);
this.and = this.and.bind(this);
this.transform = this.transform.bind(this);
this.brand = this.brand.bind(this);
this.default = this.default.bind(this);
this.catch = this.catch.bind(this);
this.describe = this.describe.bind(this);
this.pipe = this.pipe.bind(this);
this.readonly = this.readonly.bind(this);
this.isNullable = this.isNullable.bind(this);
this.isOptional = this.isOptional.bind(this);
this["~standard"] = {
version: 1,
vendor: "zod",
validate: (data) => this["~validate"](data)
};
}
optional() {
return ZodOptional.create(this, this._def);
}
nullable() {
return ZodNullable.create(this, this._def);
}
nullish() {
return this.nullable().optional();
}
array() {
return ZodArray.create(this);
}
promise() {
return ZodPromise.create(this, this._def);
}
or(option) {
return ZodUnion.create([this, option], this._def);
}
and(incoming) {
return ZodIntersection.create(this, incoming, this._def);
}
transform(transform) {
return new ZodEffects({
...processCreateParams(this._def),
schema: this,
typeName: ZodFirstPartyTypeKind.ZodEffects,
effect: { type: "transform", transform }
});
}
default(def) {
const defaultValueFunc = typeof def === "function" ? def : () => def;
return new ZodDefault({
...processCreateParams(this._def),
innerType: this,
defaultValue: defaultValueFunc,
typeName: ZodFirstPartyTypeKind.ZodDefault
});
}
brand() {
return new ZodBranded({
typeName: ZodFirstPartyTypeKind.ZodBranded,
type: this,
...processCreateParams(this._def)
});
}
catch(def) {
const catchValueFunc = typeof def === "function" ? def : () => def;
return new ZodCatch({
...processCreateParams(this._def),
innerType: this,
catchValue: catchValueFunc,
typeName: ZodFirstPartyTypeKind.ZodCatch
});
}
describe(description) {
const This = this.constructor;
return new This({
...this._def,
description
});
}
pipe(target) {
return ZodPipeline.create(this, target);
}
readonly() {
return ZodReadonly.create(this);
}
isOptional() {
return this.safeParse(void 0).success;
}
isNullable() {
return this.safeParse(null).success;
}
};
cuidRegex = /^c[^\s-]{8,}$/i;
cuid2Regex = /^[0-9a-z]+$/;
ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;
uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i;
nanoidRegex = /^[a-z0-9_-]{21}$/i;
jwtRegex = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/;
durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;
emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;
_emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;
ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/;
ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;
ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;
base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;
dateRegexSource = `((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`;
dateRegex = new RegExp(`^${dateRegexSource}$`);
ZodString = class _ZodString2 extends ZodType {
_parse(input) {
if (this._def.coerce) {
input.data = String(input.data);
}
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType.string) {
const ctx2 = this._getOrReturnCtx(input);
addIssueToContext(ctx2, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.string,
received: ctx2.parsedType
});
return INVALID;
}
const status = new ParseStatus();
let ctx = void 0;
for (const check of this._def.checks) {
if (check.kind === "min") {
if (input.data.length < check.value) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.too_small,
minimum: check.value,
type: "string",
inclusive: true,
exact: false,
message: check.message
});
status.dirty();
}
} else if (check.kind === "max") {
if (input.data.length > check.value) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.too_big,
maximum: check.value,
type: "string",
inclusive: true,
exact: false,
message: check.message
});
status.dirty();
}
} else if (check.kind === "length") {
const tooBig = input.data.length > check.value;
const tooSmall = input.data.length < check.value;
if (tooBig || tooSmall) {
ctx = this._getOrReturnCtx(input, ctx);
if (tooBig) {
addIssueToContext(ctx, {
code: ZodIssueCode.too_big,
maximum: check.value,
type: "string",
inclusive: true,
exact: true,
message: check.message
});
} else if (tooSmall) {
addIssueToContext(ctx, {
code: ZodIssueCode.too_small,
minimum: check.value,
type: "string",
inclusive: true,
exact: true,
message: check.message
});
}
status.dirty();
}
} else if (check.kind === "email") {
if (!emailRegex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "email",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "emoji") {
if (!emojiRegex) {
emojiRegex = new RegExp(_emojiRegex, "u");
}
if (!emojiRegex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "emoji",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "uuid") {
if (!uuidRegex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "uuid",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "nanoid") {
if (!nanoidRegex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "nanoid",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "cuid") {
if (!cuidRegex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "cuid",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "cuid2") {
if (!cuid2Regex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "cuid2",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "ulid") {
if (!ulidRegex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "ulid",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "url") {
try {
new URL(input.data);
} catch (_a) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "url",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "regex") {
check.regex.lastIndex = 0;
const testResult = check.regex.test(input.data);
if (!testResult) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "regex",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "trim") {
input.data = input.data.trim();
} else if (check.kind === "includes") {
if (!input.data.includes(check.value, check.position)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_string,
validation: { includes: check.value, position: check.position },
message: check.message
});
status.dirty();
}
} else if (check.kind === "toLowerCase") {
input.data = input.data.toLowerCase();
} else if (check.kind === "toUpperCase") {
input.data = input.data.toUpperCase();
} else if (check.kind === "startsWith") {
if (!input.data.startsWith(check.value)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_string,
validation: { startsWith: check.value },
message: check.message
});
status.dirty();
}
} else if (check.kind === "endsWith") {
if (!input.data.endsWith(check.value)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_string,
validation: { endsWith: check.value },
message: check.message
});
status.dirty();
}
} else if (check.kind === "datetime") {
const regex = datetimeRegex(check);
if (!regex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_string,
validation: "datetime",
message: check.message
});
status.dirty();
}
} else if (check.kind === "date") {
const regex = dateRegex;
if (!regex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_string,
validation: "date",
message: check.message
});
status.dirty();
}
} else if (check.kind === "time") {
const regex = timeRegex(check);
if (!regex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_string,
validation: "time",
message: check.message
});
status.dirty();
}
} else if (check.kind === "duration") {
if (!durationRegex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "duration",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "ip") {
if (!isValidIP(input.data, check.version)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "ip",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "jwt") {
if (!isValidJWT(input.data, check.alg)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "jwt",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "cidr") {
if (!isValidCidr(input.data, check.version)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "cidr",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "base64") {
if (!base64Regex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "base64",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "base64url") {
if (!base64urlRegex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
validation: "base64url",
code: ZodIssueCode.invalid_string,
message: check.message
});
status.dirty();
}
} else {
util.assertNever(check);
}
}
return { status: status.value, value: input.data };
}
_regex(regex, validation, message) {
return this.refinement((data) => regex.test(data), {
validation,
code: ZodIssueCode.invalid_string,
...errorUtil.errToObj(message)
});
}
_addCheck(check) {
return new _ZodString2({
...this._def,
checks: [...this._def.checks, check]
});
}
email(message) {
return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) });
}
url(message) {
return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) });
}
emoji(message) {
return this._addCheck({ kind: "emoji", ...errorUtil.errToObj(message) });
}
uuid(message) {
return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) });
}
nanoid(message) {
return this._addCheck({ kind: "nanoid", ...errorUtil.errToObj(message) });
}
cuid(message) {
return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) });
}
cuid2(message) {
return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) });
}
ulid(message) {
return this._addCheck({ kind: "ulid", ...errorUtil.errToObj(message) });
}
base64(message) {
return this._addCheck({ kind: "base64", ...errorUtil.errToObj(message) });
}
base64url(message) {
return this._addCheck({
kind: "base64url",
...errorUtil.errToObj(message)
});
}
jwt(options) {
return this._addCheck({ kind: "jwt", ...errorUtil.errToObj(options) });
}
ip(options) {
return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options) });
}
cidr(options) {
return this._addCheck({ kind: "cidr", ...errorUtil.errToObj(options) });
}
datetime(options) {
var _a, _b;
if (typeof options === "string") {
return this._addCheck({
kind: "datetime",
precision: null,
offset: false,
local: false,
message: options
});
}
return this._addCheck({
kind: "datetime",
precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === "undefined" ? null : options === null || options === void 0 ? void 0 : options.precision,
offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,
local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,
...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)
});
}
date(message) {
return this._addCheck({ kind: "date", message });
}
time(options) {
if (typeof options === "string") {
return this._addCheck({
kind: "time",
precision: null,
message: options
});
}
return this._addCheck({
kind: "time",
precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === "undefined" ? null : options === null || options === void 0 ? void 0 : options.precision,
...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)
});
}
duration(message) {
return this._addCheck({ kind: "duration", ...errorUtil.errToObj(message) });
}
regex(regex, message) {
return this._addCheck({
kind: "regex",
regex,
...errorUtil.errToObj(message)
});
}
includes(value, options) {
return this._addCheck({
kind: "includes",
value,
position: options === null || options === void 0 ? void 0 : options.position,
...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)
});
}
startsWith(value, message) {
return this._addCheck({
kind: "startsWith",
value,
...errorUtil.errToObj(message)
});
}
endsWith(value, message) {
return this._addCheck({
kind: "endsWith",
value,
...errorUtil.errToObj(message)
});
}
min(minLength, message) {
return this._addCheck({
kind: "min",
value: minLength,
...errorUtil.errToObj(message)
});
}
max(maxLength, message) {
return this._addCheck({
kind: "max",
value: maxLength,
...errorUtil.errToObj(message)
});
}
length(len, message) {
return this._addCheck({
kind: "length",
value: len,
...errorUtil.errToObj(message)
});
}
/**
* Equivalent to `.min(1)`
*/
nonempty(message) {
return this.min(1, errorUtil.errToObj(message));
}
trim() {
return new _ZodString2({
...this._def,
checks: [...this._def.checks, { kind: "trim" }]
});
}
toLowerCase() {
return new _ZodString2({
...this._def,
checks: [...this._def.checks, { kind: "toLowerCase" }]
});
}
toUpperCase() {
return new _ZodString2({
...this._def,
checks: [...this._def.checks, { kind: "toUpperCase" }]
});
}
get isDatetime() {
return !!this._def.checks.find((ch) => ch.kind === "datetime");
}
get isDate() {
return !!this._def.checks.find((ch) => ch.kind === "date");
}
get isTime() {
return !!this._def.checks.find((ch) => ch.kind === "time");
}
get isDuration() {
return !!this._def.checks.find((ch) => ch.kind === "duration");
}
get isEmail() {
return !!this._def.checks.find((ch) => ch.kind === "email");
}
get isURL() {
return !!this._def.checks.find((ch) => ch.kind === "url");
}
get isEmoji() {
return !!this._def.checks.find((ch) => ch.kind === "emoji");
}
get isUUID() {
return !!this._def.checks.find((ch) => ch.kind === "uuid");
}
get isNANOID() {
return !!this._def.checks.find((ch) => ch.kind === "nanoid");
}
get isCUID() {
return !!this._def.checks.find((ch) => ch.kind === "cuid");
}
get isCUID2() {
return !!this._def.checks.find((ch) => ch.kind === "cuid2");
}
get isULID() {
return !!this._def.checks.find((ch) => ch.kind === "ulid");
}
get isIP() {
return !!this._def.checks.find((ch) => ch.kind === "ip");
}
get isCIDR() {
return !!this._def.checks.find((ch) => ch.kind === "cidr");
}
get isBase64() {
return !!this._def.checks.find((ch) => ch.kind === "base64");
}
get isBase64url() {
return !!this._def.checks.find((ch) => ch.kind === "base64url");
}
get minLength() {
let min = null;
for (const ch of this._def.checks) {
if (ch.kind === "min") {
if (min === null || ch.value > min)
min = ch.value;
}
}
return min;
}
get maxLength() {
let max = null;
for (const ch of this._def.checks) {
if (ch.kind === "max") {
if (max === null || ch.value < max)
max = ch.value;
}
}
return max;
}
};
ZodString.create = (params) => {
var _a;
return new ZodString({
checks: [],
typeName: ZodFirstPartyTypeKind.ZodString,
coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
...processCreateParams(params)
});
};
ZodNumber = class _ZodNumber2 extends ZodType {
constructor() {
super(...arguments);
this.min = this.gte;
this.max = this.lte;
this.step = this.multipleOf;
}
_parse(input) {
if (this._def.coerce) {
input.data = Number(input.data);
}
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType.number) {
const ctx2 = this._getOrReturnCtx(input);
addIssueToContext(ctx2, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.number,
received: ctx2.parsedType
});
return INVALID;
}
let ctx = void 0;
const status = new ParseStatus();
for (const check of this._def.checks) {
if (check.kind === "int") {
if (!util.isInteger(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: "integer",
received: "float",
message: check.message
});
status.dirty();
}
} else if (check.kind === "min") {
const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
if (tooSmall) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.too_small,
minimum: check.value,
type: "number",
inclusive: check.inclusive,
exact: false,
message: check.message
});
status.dirty();
}
} else if (check.kind === "max") {
const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
if (tooBig) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.too_big,
maximum: check.value,
type: "number",
inclusive: check.inclusive,
exact: false,
message: check.message
});
status.dirty();
}
} else if (check.kind === "multipleOf") {
if (floatSafeRemainder(input.data, check.value) !== 0) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.not_multiple_of,
multipleOf: check.value,
message: check.message
});
status.dirty();
}
} else if (check.kind === "finite") {
if (!Number.isFinite(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.not_finite,
message: check.message
});
status.dirty();
}
} else {
util.assertNever(check);
}
}
return { status: status.value, value: input.data };
}
gte(value, message) {
return this.setLimit("min", value, true, errorUtil.toString(message));
}
gt(value, message) {
return this.setLimit("min", value, false, errorUtil.toString(message));
}
lte(value, message) {
return this.setLimit("max", value, true, errorUtil.toString(message));
}
lt(value, message) {
return this.setLimit("max", value, false, errorUtil.toString(message));
}
setLimit(kind, value, inclusive, message) {
return new _ZodNumber2({
...this._def,
checks: [
...this._def.checks,
{
kind,
value,
inclusive,
message: errorUtil.toString(message)
}
]
});
}
_addCheck(check) {
return new _ZodNumber2({
...this._def,
checks: [...this._def.checks, check]
});
}
int(message) {
return this._addCheck({
kind: "int",
message: errorUtil.toString(message)
});
}
positive(message) {
return this._addCheck({
kind: "min",
value: 0,
inclusive: false,
message: errorUtil.toString(message)
});
}
negative(message) {
return this._addCheck({
kind: "max",
value: 0,
inclusive: false,
message: errorUtil.toString(message)
});
}
nonpositive(message) {
return this._addCheck({
kind: "max",
value: 0,
inclusive: true,
message: errorUtil.toString(message)
});
}
nonnegative(message) {
return this._addCheck({
kind: "min",
value: 0,
inclusive: true,
message: errorUtil.toString(message)
});
}
multipleOf(value, message) {
return this._addCheck({
kind: "multipleOf",
value,
message: errorUtil.toString(message)
});
}
finite(message) {
return this._addCheck({
kind: "finite",
message: errorUtil.toString(message)
});
}
safe(message) {
return this._addCheck({
kind: "min",
inclusive: true,
value: Number.MIN_SAFE_INTEGER,
message: errorUtil.toString(message)
})._addCheck({
kind: "max",
inclusive: true,
value: Number.MAX_SAFE_INTEGER,
message: errorUtil.toString(message)
});
}
get minValue() {
let min = null;
for (const ch of this._def.checks) {
if (ch.kind === "min") {
if (min === null || ch.value > min)
min = ch.value;
}
}
return min;
}
get maxValue() {
let max = null;
for (const ch of this._def.checks) {
if (ch.kind === "max") {
if (max === null || ch.value < max)
max = ch.value;
}
}
return max;
}
get isInt() {
return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value));
}
get isFinite() {
let max = null, min = null;
for (const ch of this._def.checks) {
if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") {
return true;
} else if (ch.kind === "min") {
if (min === null || ch.value > min)
min = ch.value;
} else if (ch.kind === "max") {
if (max === null || ch.value < max)
max = ch.value;
}
}
return Number.isFinite(min) && Number.isFinite(max);
}
};
ZodNumber.create = (params) => {
return new ZodNumber({
checks: [],
typeName: ZodFirstPartyTypeKind.ZodNumber,
coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
...processCreateParams(params)
});
};
ZodBigInt = class _ZodBigInt2 extends ZodType {
constructor() {
super(...arguments);
this.min = this.gte;
this.max = this.lte;
}
_parse(input) {
if (this._def.coerce) {
try {
input.data = BigInt(input.data);
} catch (_a) {
return this._getInvalidInput(input);
}
}
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType.bigint) {
return this._getInvalidInput(input);
}
let ctx = void 0;
const status = new ParseStatus();
for (const check of this._def.checks) {
if (check.kind === "min") {
const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
if (tooSmall) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.too_small,
type: "bigint",
minimum: check.value,
inclusive: check.inclusive,
message: check.message
});
status.dirty();
}
} else if (check.kind === "max") {
const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
if (tooBig) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.too_big,
type: "bigint",
maximum: check.value,
inclusive: check.inclusive,
message: check.message
});
status.dirty();
}
} else if (check.kind === "multipleOf") {
if (input.data % check.value !== BigInt(0)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.not_multiple_of,
multipleOf: check.value,
message: check.message
});
status.dirty();
}
} else {
util.assertNever(check);
}
}
return { status: status.value, value: input.data };
}
_getInvalidInput(input) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.bigint,
received: ctx.parsedType
});
return INVALID;
}
gte(value, message) {
return this.setLimit("min", value, true, errorUtil.toString(message));
}
gt(value, message) {
return this.setLimit("min", value, false, errorUtil.toString(message));
}
lte(value, message) {
return this.setLimit("max", value, true, errorUtil.toString(message));
}
lt(value, message) {
return this.setLimit("max", value, false, errorUtil.toString(message));
}
setLimit(kind, value, inclusive, message) {
return new _ZodBigInt2({
...this._def,
checks: [
...this._def.checks,
{
kind,
value,
inclusive,
message: errorUtil.toString(message)
}
]
});
}
_addCheck(check) {
return new _ZodBigInt2({
...this._def,
checks: [...this._def.checks, check]
});
}
positive(message) {
return this._addCheck({
kind: "min",
value: BigInt(0),
inclusive: false,
message: errorUtil.toString(message)
});
}
negative(message) {
return this._addCheck({
kind: "max",
value: BigInt(0),
inclusive: false,
message: errorUtil.toString(message)
});
}
nonpositive(message) {
return this._addCheck({
kind: "max",
value: BigInt(0),
inclusive: true,
message: errorUtil.toString(message)
});
}
nonnegative(message) {
return this._addCheck({
kind: "min",
value: BigInt(0),
inclusive: true,
message: errorUtil.toString(message)
});
}
multipleOf(value, message) {
return this._addCheck({
kind: "multipleOf",
value,
message: errorUtil.toString(message)
});
}
get minValue() {
let min = null;
for (const ch of this._def.checks) {
if (ch.kind === "min") {
if (min === null || ch.value > min)
min = ch.value;
}
}
return min;
}
get maxValue() {
let max = null;
for (const ch of this._def.checks) {
if (ch.kind === "max") {
if (max === null || ch.value < max)
max = ch.value;
}
}
return max;
}
};
ZodBigInt.create = (params) => {
var _a;
return new ZodBigInt({
checks: [],
typeName: ZodFirstPartyTypeKind.ZodBigInt,
coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
...processCreateParams(params)
});
};
ZodBoolean = class extends ZodType {
_parse(input) {
if (this._def.coerce) {
input.data = Boolean(input.data);
}
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType.boolean) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.boolean,
received: ctx.parsedType
});
return INVALID;
}
return OK(input.data);
}
};
ZodBoolean.create = (params) => {
return new ZodBoolean({
typeName: ZodFirstPartyTypeKind.ZodBoolean,
coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
...processCreateParams(params)
});
};
ZodDate = class _ZodDate2 extends ZodType {
_parse(input) {
if (this._def.coerce) {
input.data = new Date(input.data);
}
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType.date) {
const ctx2 = this._getOrReturnCtx(input);
addIssueToContext(ctx2, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.date,
received: ctx2.parsedType
});
return INVALID;
}
if (isNaN(input.data.getTime())) {
const ctx2 = this._getOrReturnCtx(input);
addIssueToContext(ctx2, {
code: ZodIssueCode.invalid_date
});
return INVALID;
}
const status = new ParseStatus();
let ctx = void 0;
for (const check of this._def.checks) {
if (check.kind === "min") {
if (input.data.getTime() < check.value) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.too_small,
message: check.message,
inclusive: true,
exact: false,
minimum: check.value,
type: "date"
});
status.dirty();
}
} else if (check.kind === "max") {
if (input.data.getTime() > check.value) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext(ctx, {
code: ZodIssueCode.too_big,
message: check.message,
inclusive: true,
exact: false,
maximum: check.value,
type: "date"
});
status.dirty();
}
} else {
util.assertNever(check);
}
}
return {
status: status.value,
value: new Date(input.data.getTime())
};
}
_addCheck(check) {
return new _ZodDate2({
...this._def,
checks: [...this._def.checks, check]
});
}
min(minDate, message) {
return this._addCheck({
kind: "min",
value: minDate.getTime(),
message: errorUtil.toString(message)
});
}
max(maxDate, message) {
return this._addCheck({
kind: "max",
value: maxDate.getTime(),
message: errorUtil.toString(message)
});
}
get minDate() {
let min = null;
for (const ch of this._def.checks) {
if (ch.kind === "min") {
if (min === null || ch.value > min)
min = ch.value;
}
}
return min != null ? new Date(min) : null;
}
get maxDate() {
let max = null;
for (const ch of this._def.checks) {
if (ch.kind === "max") {
if (max === null || ch.value < max)
max = ch.value;
}
}
return max != null ? new Date(max) : null;
}
};
ZodDate.create = (params) => {
return new ZodDate({
checks: [],
coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
typeName: ZodFirstPartyTypeKind.ZodDate,
...processCreateParams(params)
});
};
ZodSymbol = class extends ZodType {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType.symbol) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.symbol,
received: ctx.parsedType
});
return INVALID;
}
return OK(input.data);
}
};
ZodSymbol.create = (params) => {
return new ZodSymbol({
typeName: ZodFirstPartyTypeKind.ZodSymbol,
...processCreateParams(params)
});
};
ZodUndefined = class extends ZodType {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType.undefined) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.undefined,
received: ctx.parsedType
});
return INVALID;
}
return OK(input.data);
}
};
ZodUndefined.create = (params) => {
return new ZodUndefined({
typeName: ZodFirstPartyTypeKind.ZodUndefined,
...processCreateParams(params)
});
};
ZodNull = class extends ZodType {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType.null) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.null,
received: ctx.parsedType
});
return INVALID;
}
return OK(input.data);
}
};
ZodNull.create = (params) => {
return new ZodNull({
typeName: ZodFirstPartyTypeKind.ZodNull,
...processCreateParams(params)
});
};
ZodAny = class extends ZodType {
constructor() {
super(...arguments);
this._any = true;
}
_parse(input) {
return OK(input.data);
}
};
ZodAny.create = (params) => {
return new ZodAny({
typeName: ZodFirstPartyTypeKind.ZodAny,
...processCreateParams(params)
});
};
ZodUnknown = class extends ZodType {
constructor() {
super(...arguments);
this._unknown = true;
}
_parse(input) {
return OK(input.data);
}
};
ZodUnknown.create = (params) => {
return new ZodUnknown({
typeName: ZodFirstPartyTypeKind.ZodUnknown,
...processCreateParams(params)
});
};
ZodNever = class extends ZodType {
_parse(input) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.never,
received: ctx.parsedType
});
return INVALID;
}
};
ZodNever.create = (params) => {
return new ZodNever({
typeName: ZodFirstPartyTypeKind.ZodNever,
...processCreateParams(params)
});
};
ZodVoid = class extends ZodType {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType.undefined) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.void,
received: ctx.parsedType
});
return INVALID;
}
return OK(input.data);
}
};
ZodVoid.create = (params) => {
return new ZodVoid({
typeName: ZodFirstPartyTypeKind.ZodVoid,
...processCreateParams(params)
});
};
ZodArray = class _ZodArray2 extends ZodType {
_parse(input) {
const { ctx, status } = this._processInputParams(input);
const def = this._def;
if (ctx.parsedType !== ZodParsedType.array) {
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.array,
received: ctx.parsedType
});
return INVALID;
}
if (def.exactLength !== null) {
const tooBig = ctx.data.length > def.exactLength.value;
const tooSmall = ctx.data.length < def.exactLength.value;
if (tooBig || tooSmall) {
addIssueToContext(ctx, {
code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,
minimum: tooSmall ? def.exactLength.value : void 0,
maximum: tooBig ? def.exactLength.value : void 0,
type: "array",
inclusive: true,
exact: true,
message: def.exactLength.message
});
status.dirty();
}
}
if (def.minLength !== null) {
if (ctx.data.length < def.minLength.value) {
addIssueToContext(ctx, {
code: ZodIssueCode.too_small,
minimum: def.minLength.value,
type: "array",
inclusive: true,
exact: false,
message: def.minLength.message
});
status.dirty();
}
}
if (def.maxLength !== null) {
if (ctx.data.length > def.maxLength.value) {
addIssueToContext(ctx, {
code: ZodIssueCode.too_big,
maximum: def.maxLength.value,
type: "array",
inclusive: true,
exact: false,
message: def.maxLength.message
});
status.dirty();
}
}
if (ctx.common.async) {
return Promise.all([...ctx.data].map((item, i) => {
return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));
})).then((result2) => {
return ParseStatus.mergeArray(status, result2);
});
}
const result = [...ctx.data].map((item, i) => {
return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));
});
return ParseStatus.mergeArray(status, result);
}
get element() {
return this._def.type;
}
min(minLength, message) {
return new _ZodArray2({
...this._def,
minLength: { value: minLength, message: errorUtil.toString(message) }
});
}
max(maxLength, message) {
return new _ZodArray2({
...this._def,
maxLength: { value: maxLength, message: errorUtil.toString(message) }
});
}
length(len, message) {
return new _ZodArray2({
...this._def,
exactLength: { value: len, message: errorUtil.toString(message) }
});
}
nonempty(message) {
return this.min(1, message);
}
};
ZodArray.create = (schema, params) => {
return new ZodArray({
type: schema,
minLength: null,
maxLength: null,
exactLength: null,
typeName: ZodFirstPartyTypeKind.ZodArray,
...processCreateParams(params)
});
};
ZodObject = class _ZodObject2 extends ZodType {
constructor() {
super(...arguments);
this._cached = null;
this.nonstrict = this.passthrough;
this.augment = this.extend;
}
_getCached() {
if (this._cached !== null)
return this._cached;
const shape = this._def.shape();
const keys = util.objectKeys(shape);
return this._cached = { shape, keys };
}
_parse(input) {
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType.object) {
const ctx2 = this._getOrReturnCtx(input);
addIssueToContext(ctx2, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.object,
received: ctx2.parsedType
});
return INVALID;
}
const { status, ctx } = this._processInputParams(input);
const { shape, keys: shapeKeys } = this._getCached();
const extraKeys = [];
if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) {
for (const key in ctx.data) {
if (!shapeKeys.includes(key)) {
extraKeys.push(key);
}
}
}
const pairs = [];
for (const key of shapeKeys) {
const keyValidator = shape[key];
const value = ctx.data[key];
pairs.push({
key: { status: "valid", value: key },
value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),
alwaysSet: key in ctx.data
});
}
if (this._def.catchall instanceof ZodNever) {
const unknownKeys = this._def.unknownKeys;
if (unknownKeys === "passthrough") {
for (const key of extraKeys) {
pairs.push({
key: { status: "valid", value: key },
value: { status: "valid", value: ctx.data[key] }
});
}
} else if (unknownKeys === "strict") {
if (extraKeys.length > 0) {
addIssueToContext(ctx, {
code: ZodIssueCode.unrecognized_keys,
keys: extraKeys
});
status.dirty();
}
} else if (unknownKeys === "strip") ;
else {
throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);
}
} else {
const catchall = this._def.catchall;
for (const key of extraKeys) {
const value = ctx.data[key];
pairs.push({
key: { status: "valid", value: key },
value: catchall._parse(
new ParseInputLazyPath(ctx, value, ctx.path, key)
//, ctx.child(key), value, getParsedType(value)
),
alwaysSet: key in ctx.data
});
}
}
if (ctx.common.async) {
return Promise.resolve().then(async () => {
const syncPairs = [];
for (const pair of pairs) {
const key = await pair.key;
const value = await pair.value;
syncPairs.push({
key,
value,
alwaysSet: pair.alwaysSet
});
}
return syncPairs;
}).then((syncPairs) => {
return ParseStatus.mergeObjectSync(status, syncPairs);
});
} else {
return ParseStatus.mergeObjectSync(status, pairs);
}
}
get shape() {
return this._def.shape();
}
strict(message) {
errorUtil.errToObj;
return new _ZodObject2({
...this._def,
unknownKeys: "strict",
...message !== void 0 ? {
errorMap: (issue, ctx) => {
var _a, _b, _c, _d;
const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;
if (issue.code === "unrecognized_keys")
return {
message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError
};
return {
message: defaultError
};
}
} : {}
});
}
strip() {
return new _ZodObject2({
...this._def,
unknownKeys: "strip"
});
}
passthrough() {
return new _ZodObject2({
...this._def,
unknownKeys: "passthrough"
});
}
// const AugmentFactory =
// <Def extends ZodObjectDef>(def: Def) =>
// <Augmentation extends ZodRawShape>(
// augmentation: Augmentation
// ): ZodObject<
// extendShape<ReturnType<Def["shape"]>, Augmentation>,
// Def["unknownKeys"],
// Def["catchall"]
// > => {
// return new ZodObject({
// ...def,
// shape: () => ({
// ...def.shape(),
// ...augmentation,
// }),
// }) as any;
// };
extend(augmentation) {
return new _ZodObject2({
...this._def,
shape: () => ({
...this._def.shape(),
...augmentation
})
});
}
/**
* Prior to zod@1.0.12 there was a bug in the
* inferred type of merged objects. Please
* upgrade if you are experiencing issues.
*/
merge(merging) {
const merged = new _ZodObject2({
unknownKeys: merging._def.unknownKeys,
catchall: merging._def.catchall,
shape: () => ({
...this._def.shape(),
...merging._def.shape()
}),
typeName: ZodFirstPartyTypeKind.ZodObject
});
return merged;
}
// merge<
// Incoming extends AnyZodObject,
// Augmentation extends Incoming["shape"],
// NewOutput extends {
// [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation
// ? Augmentation[k]["_output"]
// : k extends keyof Output
// ? Output[k]
// : never;
// },
// NewInput extends {
// [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation
// ? Augmentation[k]["_input"]
// : k extends keyof Input
// ? Input[k]
// : never;
// }
// >(
// merging: Incoming
// ): ZodObject<
// extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
// Incoming["_def"]["unknownKeys"],
// Incoming["_def"]["catchall"],
// NewOutput,
// NewInput
// > {
// const merged: any = new ZodObject({
// unknownKeys: merging._def.unknownKeys,
// catchall: merging._def.catchall,
// shape: () =>
// objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
// typeName: ZodFirstPartyTypeKind.ZodObject,
// }) as any;
// return merged;
// }
setKey(key, schema) {
return this.augment({ [key]: schema });
}
// merge<Incoming extends AnyZodObject>(
// merging: Incoming
// ): //ZodObject<T & Incoming["_shape"], UnknownKeys, Catchall> = (merging) => {
// ZodObject<
// extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
// Incoming["_def"]["unknownKeys"],
// Incoming["_def"]["catchall"]
// > {
// // const mergedShape = objectUtil.mergeShapes(
// // this._def.shape(),
// // merging._def.shape()
// // );
// const merged: any = new ZodObject({
// unknownKeys: merging._def.unknownKeys,
// catchall: merging._def.catchall,
// shape: () =>
// objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
// typeName: ZodFirstPartyTypeKind.ZodObject,
// }) as any;
// return merged;
// }
catchall(index) {
return new _ZodObject2({
...this._def,
catchall: index
});
}
pick(mask) {
const shape = {};
util.objectKeys(mask).forEach((key) => {
if (mask[key] && this.shape[key]) {
shape[key] = this.shape[key];
}
});
return new _ZodObject2({
...this._def,
shape: () => shape
});
}
omit(mask) {
const shape = {};
util.objectKeys(this.shape).forEach((key) => {
if (!mask[key]) {
shape[key] = this.shape[key];
}
});
return new _ZodObject2({
...this._def,
shape: () => shape
});
}
/**
* @deprecated
*/
deepPartial() {
return deepPartialify(this);
}
partial(mask) {
const newShape = {};
util.objectKeys(this.shape).forEach((key) => {
const fieldSchema = this.shape[key];
if (mask && !mask[key]) {
newShape[key] = fieldSchema;
} else {
newShape[key] = fieldSchema.optional();
}
});
return new _ZodObject2({
...this._def,
shape: () => newShape
});
}
required(mask) {
const newShape = {};
util.objectKeys(this.shape).forEach((key) => {
if (mask && !mask[key]) {
newShape[key] = this.shape[key];
} else {
const fieldSchema = this.shape[key];
let newField = fieldSchema;
while (newField instanceof ZodOptional) {
newField = newField._def.innerType;
}
newShape[key] = newField;
}
});
return new _ZodObject2({
...this._def,
shape: () => newShape
});
}
keyof() {
return createZodEnum(util.objectKeys(this.shape));
}
};
ZodObject.create = (shape, params) => {
return new ZodObject({
shape: () => shape,
unknownKeys: "strip",
catchall: ZodNever.create(),
typeName: ZodFirstPartyTypeKind.ZodObject,
...processCreateParams(params)
});
};
ZodObject.strictCreate = (shape, params) => {
return new ZodObject({
shape: () => shape,
unknownKeys: "strict",
catchall: ZodNever.create(),
typeName: ZodFirstPartyTypeKind.ZodObject,
...processCreateParams(params)
});
};
ZodObject.lazycreate = (shape, params) => {
return new ZodObject({
shape,
unknownKeys: "strip",
catchall: ZodNever.create(),
typeName: ZodFirstPartyTypeKind.ZodObject,
...processCreateParams(params)
});
};
ZodUnion = class extends ZodType {
_parse(input) {
const { ctx } = this._processInputParams(input);
const options = this._def.options;
function handleResults(results) {
for (const result of results) {
if (result.result.status === "valid") {
return result.result;
}
}
for (const result of results) {
if (result.result.status === "dirty") {
ctx.common.issues.push(...result.ctx.common.issues);
return result.result;
}
}
const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_union,
unionErrors
});
return INVALID;
}
if (ctx.common.async) {
return Promise.all(options.map(async (option) => {
const childCtx = {
...ctx,
common: {
...ctx.common,
issues: []
},
parent: null
};
return {
result: await option._parseAsync({
data: ctx.data,
path: ctx.path,
parent: childCtx
}),
ctx: childCtx
};
})).then(handleResults);
} else {
let dirty = void 0;
const issues = [];
for (const option of options) {
const childCtx = {
...ctx,
common: {
...ctx.common,
issues: []
},
parent: null
};
const result = option._parseSync({
data: ctx.data,
path: ctx.path,
parent: childCtx
});
if (result.status === "valid") {
return result;
} else if (result.status === "dirty" && !dirty) {
dirty = { result, ctx: childCtx };
}
if (childCtx.common.issues.length) {
issues.push(childCtx.common.issues);
}
}
if (dirty) {
ctx.common.issues.push(...dirty.ctx.common.issues);
return dirty.result;
}
const unionErrors = issues.map((issues2) => new ZodError(issues2));
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_union,
unionErrors
});
return INVALID;
}
}
get options() {
return this._def.options;
}
};
ZodUnion.create = (types, params) => {
return new ZodUnion({
options: types,
typeName: ZodFirstPartyTypeKind.ZodUnion,
...processCreateParams(params)
});
};
getDiscriminator = (type) => {
if (type instanceof ZodLazy) {
return getDiscriminator(type.schema);
} else if (type instanceof ZodEffects) {
return getDiscriminator(type.innerType());
} else if (type instanceof ZodLiteral) {
return [type.value];
} else if (type instanceof ZodEnum) {
return type.options;
} else if (type instanceof ZodNativeEnum) {
return util.objectValues(type.enum);
} else if (type instanceof ZodDefault) {
return getDiscriminator(type._def.innerType);
} else if (type instanceof ZodUndefined) {
return [void 0];
} else if (type instanceof ZodNull) {
return [null];
} else if (type instanceof ZodOptional) {
return [void 0, ...getDiscriminator(type.unwrap())];
} else if (type instanceof ZodNullable) {
return [null, ...getDiscriminator(type.unwrap())];
} else if (type instanceof ZodBranded) {
return getDiscriminator(type.unwrap());
} else if (type instanceof ZodReadonly) {
return getDiscriminator(type.unwrap());
} else if (type instanceof ZodCatch) {
return getDiscriminator(type._def.innerType);
} else {
return [];
}
};
ZodDiscriminatedUnion = class _ZodDiscriminatedUnion2 extends ZodType {
_parse(input) {
const { ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType.object) {
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.object,
received: ctx.parsedType
});
return INVALID;
}
const discriminator = this.discriminator;
const discriminatorValue = ctx.data[discriminator];
const option = this.optionsMap.get(discriminatorValue);
if (!option) {
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_union_discriminator,
options: Array.from(this.optionsMap.keys()),
path: [discriminator]
});
return INVALID;
}
if (ctx.common.async) {
return option._parseAsync({
data: ctx.data,
path: ctx.path,
parent: ctx
});
} else {
return option._parseSync({
data: ctx.data,
path: ctx.path,
parent: ctx
});
}
}
get discriminator() {
return this._def.discriminator;
}
get options() {
return this._def.options;
}
get optionsMap() {
return this._def.optionsMap;
}
/**
* The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.
* However, it only allows a union of objects, all of which need to share a discriminator property. This property must
* have a different value for each object in the union.
* @param discriminator the name of the discriminator property
* @param types an array of object schemas
* @param params
*/
static create(discriminator, options, params) {
const optionsMap = /* @__PURE__ */ new Map();
for (const type of options) {
const discriminatorValues = getDiscriminator(type.shape[discriminator]);
if (!discriminatorValues.length) {
throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`);
}
for (const value of discriminatorValues) {
if (optionsMap.has(value)) {
throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);
}
optionsMap.set(value, type);
}
}
return new _ZodDiscriminatedUnion2({
typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,
discriminator,
options,
optionsMap,
...processCreateParams(params)
});
}
};
ZodIntersection = class extends ZodType {
_parse(input) {
const { status, ctx } = this._processInputParams(input);
const handleParsed = (parsedLeft, parsedRight) => {
if (isAborted(parsedLeft) || isAborted(parsedRight)) {
return INVALID;
}
const merged = mergeValues(parsedLeft.value, parsedRight.value);
if (!merged.valid) {
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_intersection_types
});
return INVALID;
}
if (isDirty(parsedLeft) || isDirty(parsedRight)) {
status.dirty();
}
return { status: status.value, value: merged.data };
};
if (ctx.common.async) {
return Promise.all([
this._def.left._parseAsync({
data: ctx.data,
path: ctx.path,
parent: ctx
}),
this._def.right._parseAsync({
data: ctx.data,
path: ctx.path,
parent: ctx
})
]).then(([left, right]) => handleParsed(left, right));
} else {
return handleParsed(this._def.left._parseSync({
data: ctx.data,
path: ctx.path,
parent: ctx
}), this._def.right._parseSync({
data: ctx.data,
path: ctx.path,
parent: ctx
}));
}
}
};
ZodIntersection.create = (left, right, params) => {
return new ZodIntersection({
left,
right,
typeName: ZodFirstPartyTypeKind.ZodIntersection,
...processCreateParams(params)
});
};
ZodTuple = class _ZodTuple2 extends ZodType {
_parse(input) {
const { status, ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType.array) {
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.array,
received: ctx.parsedType
});
return INVALID;
}
if (ctx.data.length < this._def.items.length) {
addIssueToContext(ctx, {
code: ZodIssueCode.too_small,
minimum: this._def.items.length,
inclusive: true,
exact: false,
type: "array"
});
return INVALID;
}
const rest = this._def.rest;
if (!rest && ctx.data.length > this._def.items.length) {
addIssueToContext(ctx, {
code: ZodIssueCode.too_big,
maximum: this._def.items.length,
inclusive: true,
exact: false,
type: "array"
});
status.dirty();
}
const items = [...ctx.data].map((item, itemIndex) => {
const schema = this._def.items[itemIndex] || this._def.rest;
if (!schema)
return null;
return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));
}).filter((x) => !!x);
if (ctx.common.async) {
return Promise.all(items).then((results) => {
return ParseStatus.mergeArray(status, results);
});
} else {
return ParseStatus.mergeArray(status, items);
}
}
get items() {
return this._def.items;
}
rest(rest) {
return new _ZodTuple2({
...this._def,
rest
});
}
};
ZodTuple.create = (schemas, params) => {
if (!Array.isArray(schemas)) {
throw new Error("You must pass an array of schemas to z.tuple([ ... ])");
}
return new ZodTuple({
items: schemas,
typeName: ZodFirstPartyTypeKind.ZodTuple,
rest: null,
...processCreateParams(params)
});
};
ZodRecord = class _ZodRecord2 extends ZodType {
get keySchema() {
return this._def.keyType;
}
get valueSchema() {
return this._def.valueType;
}
_parse(input) {
const { status, ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType.object) {
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.object,
received: ctx.parsedType
});
return INVALID;
}
const pairs = [];
const keyType = this._def.keyType;
const valueType = this._def.valueType;
for (const key in ctx.data) {
pairs.push({
key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),
value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),
alwaysSet: key in ctx.data
});
}
if (ctx.common.async) {
return ParseStatus.mergeObjectAsync(status, pairs);
} else {
return ParseStatus.mergeObjectSync(status, pairs);
}
}
get element() {
return this._def.valueType;
}
static create(first, second, third) {
if (second instanceof ZodType) {
return new _ZodRecord2({
keyType: first,
valueType: second,
typeName: ZodFirstPartyTypeKind.ZodRecord,
...processCreateParams(third)
});
}
return new _ZodRecord2({
keyType: ZodString.create(),
valueType: first,
typeName: ZodFirstPartyTypeKind.ZodRecord,
...processCreateParams(second)
});
}
};
ZodMap = class extends ZodType {
get keySchema() {
return this._def.keyType;
}
get valueSchema() {
return this._def.valueType;
}
_parse(input) {
const { status, ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType.map) {
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.map,
received: ctx.parsedType
});
return INVALID;
}
const keyType = this._def.keyType;
const valueType = this._def.valueType;
const pairs = [...ctx.data.entries()].map(([key, value], index) => {
return {
key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, "key"])),
value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, "value"]))
};
});
if (ctx.common.async) {
const finalMap = /* @__PURE__ */ new Map();
return Promise.resolve().then(async () => {
for (const pair of pairs) {
const key = await pair.key;
const value = await pair.value;
if (key.status === "aborted" || value.status === "aborted") {
return INVALID;
}
if (key.status === "dirty" || value.status === "dirty") {
status.dirty();
}
finalMap.set(key.value, value.value);
}
return { status: status.value, value: finalMap };
});
} else {
const finalMap = /* @__PURE__ */ new Map();
for (const pair of pairs) {
const key = pair.key;
const value = pair.value;
if (key.status === "aborted" || value.status === "aborted") {
return INVALID;
}
if (key.status === "dirty" || value.status === "dirty") {
status.dirty();
}
finalMap.set(key.value, value.value);
}
return { status: status.value, value: finalMap };
}
}
};
ZodMap.create = (keyType, valueType, params) => {
return new ZodMap({
valueType,
keyType,
typeName: ZodFirstPartyTypeKind.ZodMap,
...processCreateParams(params)
});
};
ZodSet = class _ZodSet2 extends ZodType {
_parse(input) {
const { status, ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType.set) {
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.set,
received: ctx.parsedType
});
return INVALID;
}
const def = this._def;
if (def.minSize !== null) {
if (ctx.data.size < def.minSize.value) {
addIssueToContext(ctx, {
code: ZodIssueCode.too_small,
minimum: def.minSize.value,
type: "set",
inclusive: true,
exact: false,
message: def.minSize.message
});
status.dirty();
}
}
if (def.maxSize !== null) {
if (ctx.data.size > def.maxSize.value) {
addIssueToContext(ctx, {
code: ZodIssueCode.too_big,
maximum: def.maxSize.value,
type: "set",
inclusive: true,
exact: false,
message: def.maxSize.message
});
status.dirty();
}
}
const valueType = this._def.valueType;
function finalizeSet(elements2) {
const parsedSet = /* @__PURE__ */ new Set();
for (const element of elements2) {
if (element.status === "aborted")
return INVALID;
if (element.status === "dirty")
status.dirty();
parsedSet.add(element.value);
}
return { status: status.value, value: parsedSet };
}
const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));
if (ctx.common.async) {
return Promise.all(elements).then((elements2) => finalizeSet(elements2));
} else {
return finalizeSet(elements);
}
}
min(minSize, message) {
return new _ZodSet2({
...this._def,
minSize: { value: minSize, message: errorUtil.toString(message) }
});
}
max(maxSize, message) {
return new _ZodSet2({
...this._def,
maxSize: { value: maxSize, message: errorUtil.toString(message) }
});
}
size(size, message) {
return this.min(size, message).max(size, message);
}
nonempty(message) {
return this.min(1, message);
}
};
ZodSet.create = (valueType, params) => {
return new ZodSet({
valueType,
minSize: null,
maxSize: null,
typeName: ZodFirstPartyTypeKind.ZodSet,
...processCreateParams(params)
});
};
ZodFunction = class _ZodFunction2 extends ZodType {
constructor() {
super(...arguments);
this.validate = this.implement;
}
_parse(input) {
const { ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType.function) {
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.function,
received: ctx.parsedType
});
return INVALID;
}
function makeArgsIssue(args, error) {
return makeIssue({
data: args,
path: ctx.path,
errorMaps: [
ctx.common.contextualErrorMap,
ctx.schemaErrorMap,
getErrorMap(),
errorMap
].filter((x) => !!x),
issueData: {
code: ZodIssueCode.invalid_arguments,
argumentsError: error
}
});
}
function makeReturnsIssue(returns, error) {
return makeIssue({
data: returns,
path: ctx.path,
errorMaps: [
ctx.common.contextualErrorMap,
ctx.schemaErrorMap,
getErrorMap(),
errorMap
].filter((x) => !!x),
issueData: {
code: ZodIssueCode.invalid_return_type,
returnTypeError: error
}
});
}
const params = { errorMap: ctx.common.contextualErrorMap };
const fn = ctx.data;
if (this._def.returns instanceof ZodPromise) {
const me = this;
return OK(async function(...args) {
const error = new ZodError([]);
const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {
error.addIssue(makeArgsIssue(args, e));
throw error;
});
const result = await Reflect.apply(fn, this, parsedArgs);
const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => {
error.addIssue(makeReturnsIssue(result, e));
throw error;
});
return parsedReturns;
});
} else {
const me = this;
return OK(function(...args) {
const parsedArgs = me._def.args.safeParse(args, params);
if (!parsedArgs.success) {
throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);
}
const result = Reflect.apply(fn, this, parsedArgs.data);
const parsedReturns = me._def.returns.safeParse(result, params);
if (!parsedReturns.success) {
throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);
}
return parsedReturns.data;
});
}
}
parameters() {
return this._def.args;
}
returnType() {
return this._def.returns;
}
args(...items) {
return new _ZodFunction2({
...this._def,
args: ZodTuple.create(items).rest(ZodUnknown.create())
});
}
returns(returnType) {
return new _ZodFunction2({
...this._def,
returns: returnType
});
}
implement(func) {
const validatedFunc = this.parse(func);
return validatedFunc;
}
strictImplement(func) {
const validatedFunc = this.parse(func);
return validatedFunc;
}
static create(args, returns, params) {
return new _ZodFunction2({
args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()),
returns: returns || ZodUnknown.create(),
typeName: ZodFirstPartyTypeKind.ZodFunction,
...processCreateParams(params)
});
}
};
ZodLazy = class extends ZodType {
get schema() {
return this._def.getter();
}
_parse(input) {
const { ctx } = this._processInputParams(input);
const lazySchema = this._def.getter();
return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });
}
};
ZodLazy.create = (getter, params) => {
return new ZodLazy({
getter,
typeName: ZodFirstPartyTypeKind.ZodLazy,
...processCreateParams(params)
});
};
ZodLiteral = class extends ZodType {
_parse(input) {
if (input.data !== this._def.value) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext(ctx, {
received: ctx.data,
code: ZodIssueCode.invalid_literal,
expected: this._def.value
});
return INVALID;
}
return { status: "valid", value: input.data };
}
get value() {
return this._def.value;
}
};
ZodLiteral.create = (value, params) => {
return new ZodLiteral({
value,
typeName: ZodFirstPartyTypeKind.ZodLiteral,
...processCreateParams(params)
});
};
ZodEnum = class _ZodEnum2 extends ZodType {
constructor() {
super(...arguments);
_ZodEnum_cache.set(this, void 0);
}
_parse(input) {
if (typeof input.data !== "string") {
const ctx = this._getOrReturnCtx(input);
const expectedValues = this._def.values;
addIssueToContext(ctx, {
expected: util.joinValues(expectedValues),
received: ctx.parsedType,
code: ZodIssueCode.invalid_type
});
return INVALID;
}
if (!__classPrivateFieldGet(this, _ZodEnum_cache, "f")) {
__classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), "f");
}
if (!__classPrivateFieldGet(this, _ZodEnum_cache, "f").has(input.data)) {
const ctx = this._getOrReturnCtx(input);
const expectedValues = this._def.values;
addIssueToContext(ctx, {
received: ctx.data,
code: ZodIssueCode.invalid_enum_value,
options: expectedValues
});
return INVALID;
}
return OK(input.data);
}
get options() {
return this._def.values;
}
get enum() {
const enumValues = {};
for (const val of this._def.values) {
enumValues[val] = val;
}
return enumValues;
}
get Values() {
const enumValues = {};
for (const val of this._def.values) {
enumValues[val] = val;
}
return enumValues;
}
get Enum() {
const enumValues = {};
for (const val of this._def.values) {
enumValues[val] = val;
}
return enumValues;
}
extract(values, newDef = this._def) {
return _ZodEnum2.create(values, {
...this._def,
...newDef
});
}
exclude(values, newDef = this._def) {
return _ZodEnum2.create(this.options.filter((opt) => !values.includes(opt)), {
...this._def,
...newDef
});
}
};
_ZodEnum_cache = /* @__PURE__ */ new WeakMap();
ZodEnum.create = createZodEnum;
ZodNativeEnum = class extends ZodType {
constructor() {
super(...arguments);
_ZodNativeEnum_cache.set(this, void 0);
}
_parse(input) {
const nativeEnumValues = util.getValidEnumValues(this._def.values);
const ctx = this._getOrReturnCtx(input);
if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {
const expectedValues = util.objectValues(nativeEnumValues);
addIssueToContext(ctx, {
expected: util.joinValues(expectedValues),
received: ctx.parsedType,
code: ZodIssueCode.invalid_type
});
return INVALID;
}
if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, "f")) {
__classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), "f");
}
if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, "f").has(input.data)) {
const expectedValues = util.objectValues(nativeEnumValues);
addIssueToContext(ctx, {
received: ctx.data,
code: ZodIssueCode.invalid_enum_value,
options: expectedValues
});
return INVALID;
}
return OK(input.data);
}
get enum() {
return this._def.values;
}
};
_ZodNativeEnum_cache = /* @__PURE__ */ new WeakMap();
ZodNativeEnum.create = (values, params) => {
return new ZodNativeEnum({
values,
typeName: ZodFirstPartyTypeKind.ZodNativeEnum,
...processCreateParams(params)
});
};
ZodPromise = class extends ZodType {
unwrap() {
return this._def.type;
}
_parse(input) {
const { ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.promise,
received: ctx.parsedType
});
return INVALID;
}
const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);
return OK(promisified.then((data) => {
return this._def.type.parseAsync(data, {
path: ctx.path,
errorMap: ctx.common.contextualErrorMap
});
}));
}
};
ZodPromise.create = (schema, params) => {
return new ZodPromise({
type: schema,
typeName: ZodFirstPartyTypeKind.ZodPromise,
...processCreateParams(params)
});
};
ZodEffects = class extends ZodType {
innerType() {
return this._def.schema;
}
sourceType() {
return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
}
_parse(input) {
const { status, ctx } = this._processInputParams(input);
const effect = this._def.effect || null;
const checkCtx = {
addIssue: (arg) => {
addIssueToContext(ctx, arg);
if (arg.fatal) {
status.abort();
} else {
status.dirty();
}
},
get path() {
return ctx.path;
}
};
checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);
if (effect.type === "preprocess") {
const processed = effect.transform(ctx.data, checkCtx);
if (ctx.common.async) {
return Promise.resolve(processed).then(async (processed2) => {
if (status.value === "aborted")
return INVALID;
const result = await this._def.schema._parseAsync({
data: processed2,
path: ctx.path,
parent: ctx
});
if (result.status === "aborted")
return INVALID;
if (result.status === "dirty")
return DIRTY(result.value);
if (status.value === "dirty")
return DIRTY(result.value);
return result;
});
} else {
if (status.value === "aborted")
return INVALID;
const result = this._def.schema._parseSync({
data: processed,
path: ctx.path,
parent: ctx
});
if (result.status === "aborted")
return INVALID;
if (result.status === "dirty")
return DIRTY(result.value);
if (status.value === "dirty")
return DIRTY(result.value);
return result;
}
}
if (effect.type === "refinement") {
const executeRefinement = (acc) => {
const result = effect.refinement(acc, checkCtx);
if (ctx.common.async) {
return Promise.resolve(result);
}
if (result instanceof Promise) {
throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");
}
return acc;
};
if (ctx.common.async === false) {
const inner = this._def.schema._parseSync({
data: ctx.data,
path: ctx.path,
parent: ctx
});
if (inner.status === "aborted")
return INVALID;
if (inner.status === "dirty")
status.dirty();
executeRefinement(inner.value);
return { status: status.value, value: inner.value };
} else {
return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {
if (inner.status === "aborted")
return INVALID;
if (inner.status === "dirty")
status.dirty();
return executeRefinement(inner.value).then(() => {
return { status: status.value, value: inner.value };
});
});
}
}
if (effect.type === "transform") {
if (ctx.common.async === false) {
const base = this._def.schema._parseSync({
data: ctx.data,
path: ctx.path,
parent: ctx
});
if (!isValid(base))
return base;
const result = effect.transform(base.value, checkCtx);
if (result instanceof Promise) {
throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);
}
return { status: status.value, value: result };
} else {
return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {
if (!isValid(base))
return base;
return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));
});
}
}
util.assertNever(effect);
}
};
ZodEffects.create = (schema, effect, params) => {
return new ZodEffects({
schema,
typeName: ZodFirstPartyTypeKind.ZodEffects,
effect,
...processCreateParams(params)
});
};
ZodEffects.createWithPreprocess = (preprocess, schema, params) => {
return new ZodEffects({
schema,
effect: { type: "preprocess", transform: preprocess },
typeName: ZodFirstPartyTypeKind.ZodEffects,
...processCreateParams(params)
});
};
ZodOptional = class extends ZodType {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType === ZodParsedType.undefined) {
return OK(void 0);
}
return this._def.innerType._parse(input);
}
unwrap() {
return this._def.innerType;
}
};
ZodOptional.create = (type, params) => {
return new ZodOptional({
innerType: type,
typeName: ZodFirstPartyTypeKind.ZodOptional,
...processCreateParams(params)
});
};
ZodNullable = class extends ZodType {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType === ZodParsedType.null) {
return OK(null);
}
return this._def.innerType._parse(input);
}
unwrap() {
return this._def.innerType;
}
};
ZodNullable.create = (type, params) => {
return new ZodNullable({
innerType: type,
typeName: ZodFirstPartyTypeKind.ZodNullable,
...processCreateParams(params)
});
};
ZodDefault = class extends ZodType {
_parse(input) {
const { ctx } = this._processInputParams(input);
let data = ctx.data;
if (ctx.parsedType === ZodParsedType.undefined) {
data = this._def.defaultValue();
}
return this._def.innerType._parse({
data,
path: ctx.path,
parent: ctx
});
}
removeDefault() {
return this._def.innerType;
}
};
ZodDefault.create = (type, params) => {
return new ZodDefault({
innerType: type,
typeName: ZodFirstPartyTypeKind.ZodDefault,
defaultValue: typeof params.default === "function" ? params.default : () => params.default,
...processCreateParams(params)
});
};
ZodCatch = class extends ZodType {
_parse(input) {
const { ctx } = this._processInputParams(input);
const newCtx = {
...ctx,
common: {
...ctx.common,
issues: []
}
};
const result = this._def.innerType._parse({
data: newCtx.data,
path: newCtx.path,
parent: {
...newCtx
}
});
if (isAsync(result)) {
return result.then((result2) => {
return {
status: "valid",
value: result2.status === "valid" ? result2.value : this._def.catchValue({
get error() {
return new ZodError(newCtx.common.issues);
},
input: newCtx.data
})
};
});
} else {
return {
status: "valid",
value: result.status === "valid" ? result.value : this._def.catchValue({
get error() {
return new ZodError(newCtx.common.issues);
},
input: newCtx.data
})
};
}
}
removeCatch() {
return this._def.innerType;
}
};
ZodCatch.create = (type, params) => {
return new ZodCatch({
innerType: type,
typeName: ZodFirstPartyTypeKind.ZodCatch,
catchValue: typeof params.catch === "function" ? params.catch : () => params.catch,
...processCreateParams(params)
});
};
ZodNaN = class extends ZodType {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType.nan) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext(ctx, {
code: ZodIssueCode.invalid_type,
expected: ZodParsedType.nan,
received: ctx.parsedType
});
return INVALID;
}
return { status: "valid", value: input.data };
}
};
ZodNaN.create = (params) => {
return new ZodNaN({
typeName: ZodFirstPartyTypeKind.ZodNaN,
...processCreateParams(params)
});
};
BRAND = Symbol("zod_brand");
ZodBranded = class extends ZodType {
_parse(input) {
const { ctx } = this._processInputParams(input);
const data = ctx.data;
return this._def.type._parse({
data,
path: ctx.path,
parent: ctx
});
}
unwrap() {
return this._def.type;
}
};
ZodPipeline = class _ZodPipeline2 extends ZodType {
_parse(input) {
const { status, ctx } = this._processInputParams(input);
if (ctx.common.async) {
const handleAsync = async () => {
const inResult = await this._def.in._parseAsync({
data: ctx.data,
path: ctx.path,
parent: ctx
});
if (inResult.status === "aborted")
return INVALID;
if (inResult.status === "dirty") {
status.dirty();
return DIRTY(inResult.value);
} else {
return this._def.out._parseAsync({
data: inResult.value,
path: ctx.path,
parent: ctx
});
}
};
return handleAsync();
} else {
const inResult = this._def.in._parseSync({
data: ctx.data,
path: ctx.path,
parent: ctx
});
if (inResult.status === "aborted")
return INVALID;
if (inResult.status === "dirty") {
status.dirty();
return {
status: "dirty",
value: inResult.value
};
} else {
return this._def.out._parseSync({
data: inResult.value,
path: ctx.path,
parent: ctx
});
}
}
}
static create(a, b) {
return new _ZodPipeline2({
in: a,
out: b,
typeName: ZodFirstPartyTypeKind.ZodPipeline
});
}
};
ZodReadonly = class extends ZodType {
_parse(input) {
const result = this._def.innerType._parse(input);
const freeze = (data) => {
if (isValid(data)) {
data.value = Object.freeze(data.value);
}
return data;
};
return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);
}
unwrap() {
return this._def.innerType;
}
};
ZodReadonly.create = (type, params) => {
return new ZodReadonly({
innerType: type,
typeName: ZodFirstPartyTypeKind.ZodReadonly,
...processCreateParams(params)
});
};
late = {
object: ZodObject.lazycreate
};
(function(ZodFirstPartyTypeKind3) {
ZodFirstPartyTypeKind3["ZodString"] = "ZodString";
ZodFirstPartyTypeKind3["ZodNumber"] = "ZodNumber";
ZodFirstPartyTypeKind3["ZodNaN"] = "ZodNaN";
ZodFirstPartyTypeKind3["ZodBigInt"] = "ZodBigInt";
ZodFirstPartyTypeKind3["ZodBoolean"] = "ZodBoolean";
ZodFirstPartyTypeKind3["ZodDate"] = "ZodDate";
ZodFirstPartyTypeKind3["ZodSymbol"] = "ZodSymbol";
ZodFirstPartyTypeKind3["ZodUndefined"] = "ZodUndefined";
ZodFirstPartyTypeKind3["ZodNull"] = "ZodNull";
ZodFirstPartyTypeKind3["ZodAny"] = "ZodAny";
ZodFirstPartyTypeKind3["ZodUnknown"] = "ZodUnknown";
ZodFirstPartyTypeKind3["ZodNever"] = "ZodNever";
ZodFirstPartyTypeKind3["ZodVoid"] = "ZodVoid";
ZodFirstPartyTypeKind3["ZodArray"] = "ZodArray";
ZodFirstPartyTypeKind3["ZodObject"] = "ZodObject";
ZodFirstPartyTypeKind3["ZodUnion"] = "ZodUnion";
ZodFirstPartyTypeKind3["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion";
ZodFirstPartyTypeKind3["ZodIntersection"] = "ZodIntersection";
ZodFirstPartyTypeKind3["ZodTuple"] = "ZodTuple";
ZodFirstPartyTypeKind3["ZodRecord"] = "ZodRecord";
ZodFirstPartyTypeKind3["ZodMap"] = "ZodMap";
ZodFirstPartyTypeKind3["ZodSet"] = "ZodSet";
ZodFirstPartyTypeKind3["ZodFunction"] = "ZodFunction";
ZodFirstPartyTypeKind3["ZodLazy"] = "ZodLazy";
ZodFirstPartyTypeKind3["ZodLiteral"] = "ZodLiteral";
ZodFirstPartyTypeKind3["ZodEnum"] = "ZodEnum";
ZodFirstPartyTypeKind3["ZodEffects"] = "ZodEffects";
ZodFirstPartyTypeKind3["ZodNativeEnum"] = "ZodNativeEnum";
ZodFirstPartyTypeKind3["ZodOptional"] = "ZodOptional";
ZodFirstPartyTypeKind3["ZodNullable"] = "ZodNullable";
ZodFirstPartyTypeKind3["ZodDefault"] = "ZodDefault";
ZodFirstPartyTypeKind3["ZodCatch"] = "ZodCatch";
ZodFirstPartyTypeKind3["ZodPromise"] = "ZodPromise";
ZodFirstPartyTypeKind3["ZodBranded"] = "ZodBranded";
ZodFirstPartyTypeKind3["ZodPipeline"] = "ZodPipeline";
ZodFirstPartyTypeKind3["ZodReadonly"] = "ZodReadonly";
})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
instanceOfType = (cls, params = {
message: `Input not instance of ${cls.name}`
}) => custom((data) => data instanceof cls, params);
stringType = ZodString.create;
numberType = ZodNumber.create;
nanType = ZodNaN.create;
bigIntType = ZodBigInt.create;
booleanType = ZodBoolean.create;
dateType = ZodDate.create;
symbolType = ZodSymbol.create;
undefinedType = ZodUndefined.create;
nullType = ZodNull.create;
anyType = ZodAny.create;
unknownType = ZodUnknown.create;
neverType = ZodNever.create;
voidType = ZodVoid.create;
arrayType = ZodArray.create;
objectType = ZodObject.create;
strictObjectType = ZodObject.strictCreate;
unionType = ZodUnion.create;
discriminatedUnionType = ZodDiscriminatedUnion.create;
intersectionType = ZodIntersection.create;
tupleType = ZodTuple.create;
recordType = ZodRecord.create;
mapType = ZodMap.create;
setType = ZodSet.create;
functionType = ZodFunction.create;
lazyType = ZodLazy.create;
literalType = ZodLiteral.create;
enumType = ZodEnum.create;
nativeEnumType = ZodNativeEnum.create;
promiseType = ZodPromise.create;
effectsType = ZodEffects.create;
optionalType = ZodOptional.create;
nullableType = ZodNullable.create;
preprocessType = ZodEffects.createWithPreprocess;
pipelineType = ZodPipeline.create;
ostring = () => stringType().optional();
onumber = () => numberType().optional();
oboolean = () => booleanType().optional();
coerce = {
string: ((arg) => ZodString.create({ ...arg, coerce: true })),
number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),
boolean: ((arg) => ZodBoolean.create({
...arg,
coerce: true
})),
bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),
date: ((arg) => ZodDate.create({ ...arg, coerce: true }))
};
NEVER = INVALID;
z = /* @__PURE__ */ Object.freeze({
__proto__: null,
defaultErrorMap: errorMap,
setErrorMap,
getErrorMap,
makeIssue,
EMPTY_PATH,
addIssueToContext,
ParseStatus,
INVALID,
DIRTY,
OK,
isAborted,
isDirty,
isValid,
isAsync,
get util() {
return util;
},
get objectUtil() {
return objectUtil;
},
ZodParsedType,
getParsedType,
ZodType,
datetimeRegex,
ZodString,
ZodNumber,
ZodBigInt,
ZodBoolean,
ZodDate,
ZodSymbol,
ZodUndefined,
ZodNull,
ZodAny,
ZodUnknown,
ZodNever,
ZodVoid,
ZodArray,
ZodObject,
ZodUnion,
ZodDiscriminatedUnion,
ZodIntersection,
ZodTuple,
ZodRecord,
ZodMap,
ZodSet,
ZodFunction,
ZodLazy,
ZodLiteral,
ZodEnum,
ZodNativeEnum,
ZodPromise,
ZodEffects,
ZodTransformer: ZodEffects,
ZodOptional,
ZodNullable,
ZodDefault,
ZodCatch,
ZodNaN,
BRAND,
ZodBranded,
ZodPipeline,
ZodReadonly,
custom,
Schema: ZodType,
ZodSchema: ZodType,
late,
get ZodFirstPartyTypeKind() {
return ZodFirstPartyTypeKind;
},
coerce,
any: anyType,
array: arrayType,
bigint: bigIntType,
boolean: booleanType,
date: dateType,
discriminatedUnion: discriminatedUnionType,
effect: effectsType,
"enum": enumType,
"function": functionType,
"instanceof": instanceOfType,
intersection: intersectionType,
lazy: lazyType,
literal: literalType,
map: mapType,
nan: nanType,
nativeEnum: nativeEnumType,
never: neverType,
"null": nullType,
nullable: nullableType,
number: numberType,
object: objectType,
oboolean,
onumber,
optional: optionalType,
ostring,
pipeline: pipelineType,
preprocess: preprocessType,
promise: promiseType,
record: recordType,
set: setType,
strictObject: strictObjectType,
string: stringType,
symbol: symbolType,
transformer: effectsType,
tuple: tupleType,
"undefined": undefinedType,
union: unionType,
unknown: unknownType,
"void": voidType,
NEVER,
ZodIssueCode,
quotelessJson,
ZodError
});
}
});
// node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
var LATEST_PROTOCOL_VERSION, SUPPORTED_PROTOCOL_VERSIONS, JSONRPC_VERSION, ProgressTokenSchema, CursorSchema, RequestMetaSchema, BaseRequestParamsSchema, RequestSchema, BaseNotificationParamsSchema, NotificationSchema, ResultSchema, RequestIdSchema, JSONRPCRequestSchema, isJSONRPCRequest, JSONRPCNotificationSchema, isJSONRPCNotification, JSONRPCResponseSchema, isJSONRPCResponse, ErrorCode, JSONRPCErrorSchema, isJSONRPCError, JSONRPCMessageSchema, EmptyResultSchema, CancelledNotificationSchema, BaseMetadataSchema, ImplementationSchema, ClientCapabilitiesSchema, InitializeRequestSchema, ServerCapabilitiesSchema, InitializeResultSchema, InitializedNotificationSchema, PingRequestSchema, ProgressSchema, ProgressNotificationSchema, PaginatedRequestSchema, PaginatedResultSchema, ResourceContentsSchema, TextResourceContentsSchema, Base64Schema, BlobResourceContentsSchema, ResourceSchema, ResourceTemplateSchema, ListResourcesRequestSchema, ListResourcesResultSchema, ListResourceTemplatesRequestSchema, ListResourceTemplatesResultSchema, ReadResourceRequestSchema, ReadResourceResultSchema, ResourceListChangedNotificationSchema, SubscribeRequestSchema, UnsubscribeRequestSchema, ResourceUpdatedNotificationSchema, PromptArgumentSchema, PromptSchema, ListPromptsRequestSchema, ListPromptsResultSchema, GetPromptRequestSchema, TextContentSchema, ImageContentSchema, AudioContentSchema, EmbeddedResourceSchema, ResourceLinkSchema, ContentBlockSchema, PromptMessageSchema, GetPromptResultSchema, PromptListChangedNotificationSchema, ToolAnnotationsSchema, ToolSchema, ListToolsRequestSchema, ListToolsResultSchema, CallToolResultSchema, CompatibilityCallToolResultSchema, CallToolRequestSchema, ToolListChangedNotificationSchema, LoggingLevelSchema, SetLevelRequestSchema, LoggingMessageNotificationSchema, ModelHintSchema, ModelPreferencesSchema, SamplingMessageSchema, CreateMessageRequestSchema, CreateMessageResultSchema, BooleanSchemaSchema, StringSchemaSchema, NumberSchemaSchema, EnumSchemaSchema, PrimitiveSchemaDefinitionSchema, ElicitRequestSchema, ElicitResultSchema, ResourceTemplateReferenceSchema, PromptReferenceSchema, CompleteRequestSchema, CompleteResultSchema, RootSchema, ListRootsRequestSchema, ListRootsResultSchema, RootsListChangedNotificationSchema, ClientRequestSchema, ClientNotificationSchema, ClientResultSchema, ServerRequestSchema, ServerNotificationSchema, ServerResultSchema, McpError;
var init_types = __esm({
"node_modules/@modelcontextprotocol/sdk/dist/esm/types.js"() {
init_lib();
LATEST_PROTOCOL_VERSION = "2025-06-18";
SUPPORTED_PROTOCOL_VERSIONS = [
LATEST_PROTOCOL_VERSION,
"2025-03-26",
"2024-11-05",
"2024-10-07"
];
JSONRPC_VERSION = "2.0";
ProgressTokenSchema = z.union([z.string(), z.number().int()]);
CursorSchema = z.string();
RequestMetaSchema = z.object({
/**
* If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.
*/
progressToken: z.optional(ProgressTokenSchema)
}).passthrough();
BaseRequestParamsSchema = z.object({
_meta: z.optional(RequestMetaSchema)
}).passthrough();
RequestSchema = z.object({
method: z.string(),
params: z.optional(BaseRequestParamsSchema)
});
BaseNotificationParamsSchema = z.object({
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z.optional(z.object({}).passthrough())
}).passthrough();
NotificationSchema = z.object({
method: z.string(),
params: z.optional(BaseNotificationParamsSchema)
});
ResultSchema = z.object({
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z.optional(z.object({}).passthrough())
}).passthrough();
RequestIdSchema = z.union([z.string(), z.number().int()]);
JSONRPCRequestSchema = z.object({
jsonrpc: z.literal(JSONRPC_VERSION),
id: RequestIdSchema
}).merge(RequestSchema).strict();
isJSONRPCRequest = (value) => JSONRPCRequestSchema.safeParse(value).success;
JSONRPCNotificationSchema = z.object({
jsonrpc: z.literal(JSONRPC_VERSION)
}).merge(NotificationSchema).strict();
isJSONRPCNotification = (value) => JSONRPCNotificationSchema.safeParse(value).success;
JSONRPCResponseSchema = z.object({
jsonrpc: z.literal(JSONRPC_VERSION),
id: RequestIdSchema,
result: ResultSchema
}).strict();
isJSONRPCResponse = (value) => JSONRPCResponseSchema.safeParse(value).success;
(function(ErrorCode3) {
ErrorCode3[ErrorCode3["ConnectionClosed"] = -32e3] = "ConnectionClosed";
ErrorCode3[ErrorCode3["RequestTimeout"] = -32001] = "RequestTimeout";
ErrorCode3[ErrorCode3["ParseError"] = -32700] = "ParseError";
ErrorCode3[ErrorCode3["InvalidRequest"] = -32600] = "InvalidRequest";
ErrorCode3[ErrorCode3["MethodNotFound"] = -32601] = "MethodNotFound";
ErrorCode3[ErrorCode3["InvalidParams"] = -32602] = "InvalidParams";
ErrorCode3[ErrorCode3["InternalError"] = -32603] = "InternalError";
})(ErrorCode || (ErrorCode = {}));
JSONRPCErrorSchema = z.object({
jsonrpc: z.literal(JSONRPC_VERSION),
id: RequestIdSchema,
error: z.object({
/**
* The error type that occurred.
*/
code: z.number().int(),
/**
* A short description of the error. The message SHOULD be limited to a concise single sentence.
*/
message: z.string(),
/**
* Additional information about the error. The value of this member is defined by the sender (e.g. detailed error information, nested errors etc.).
*/
data: z.optional(z.unknown())
})
}).strict();
isJSONRPCError = (value) => JSONRPCErrorSchema.safeParse(value).success;
JSONRPCMessageSchema = z.union([
JSONRPCRequestSchema,
JSONRPCNotificationSchema,
JSONRPCResponseSchema,
JSONRPCErrorSchema
]);
EmptyResultSchema = ResultSchema.strict();
CancelledNotificationSchema = NotificationSchema.extend({
method: z.literal("notifications/cancelled"),
params: BaseNotificationParamsSchema.extend({
/**
* The ID of the request to cancel.
*
* This MUST correspond to the ID of a request previously issued in the same direction.
*/
requestId: RequestIdSchema,
/**
* An optional string describing the reason for the cancellation. This MAY be logged or presented to the user.
*/
reason: z.string().optional()
})
});
BaseMetadataSchema = z.object({
/** Intended for programmatic or logical use, but used as a display name in past specs or fallback */
name: z.string(),
/**
* Intended for UI and end-user contexts — optimized to be human-readable and easily understood,
* even by those unfamiliar with domain-specific terminology.
*
* If not provided, the name should be used for display (except for Tool,
* where `annotations.title` should be given precedence over using `name`,
* if present).
*/
title: z.optional(z.string())
}).passthrough();
ImplementationSchema = BaseMetadataSchema.extend({
version: z.string()
});
ClientCapabilitiesSchema = z.object({
/**
* Experimental, non-standard capabilities that the client supports.
*/
experimental: z.optional(z.object({}).passthrough()),
/**
* Present if the client supports sampling from an LLM.
*/
sampling: z.optional(z.object({}).passthrough()),
/**
* Present if the client supports eliciting user input.
*/
elicitation: z.optional(z.object({}).passthrough()),
/**
* Present if the client supports listing roots.
*/
roots: z.optional(z.object({
/**
* Whether the client supports issuing notifications for changes to the roots list.
*/
listChanged: z.optional(z.boolean())
}).passthrough())
}).passthrough();
InitializeRequestSchema = RequestSchema.extend({
method: z.literal("initialize"),
params: BaseRequestParamsSchema.extend({
/**
* The latest version of the Model Context Protocol that the client supports. The client MAY decide to support older versions as well.
*/
protocolVersion: z.string(),
capabilities: ClientCapabilitiesSchema,
clientInfo: ImplementationSchema
})
});
ServerCapabilitiesSchema = z.object({
/**
* Experimental, non-standard capabilities that the server supports.
*/
experimental: z.optional(z.object({}).passthrough()),
/**
* Present if the server supports sending log messages to the client.
*/
logging: z.optional(z.object({}).passthrough()),
/**
* Present if the server supports sending completions to the client.
*/
completions: z.optional(z.object({}).passthrough()),
/**
* Present if the server offers any prompt templates.
*/
prompts: z.optional(z.object({
/**
* Whether this server supports issuing notifications for changes to the prompt list.
*/
listChanged: z.optional(z.boolean())
}).passthrough()),
/**
* Present if the server offers any resources to read.
*/
resources: z.optional(z.object({
/**
* Whether this server supports clients subscribing to resource updates.
*/
subscribe: z.optional(z.boolean()),
/**
* Whether this server supports issuing notifications for changes to the resource list.
*/
listChanged: z.optional(z.boolean())
}).passthrough()),
/**
* Present if the server offers any tools to call.
*/
tools: z.optional(z.object({
/**
* Whether this server supports issuing notifications for changes to the tool list.
*/
listChanged: z.optional(z.boolean())
}).passthrough())
}).passthrough();
InitializeResultSchema = ResultSchema.extend({
/**
* The version of the Model Context Protocol that the server wants to use. This may not match the version that the client requested. If the client cannot support this version, it MUST disconnect.
*/
protocolVersion: z.string(),
capabilities: ServerCapabilitiesSchema,
serverInfo: ImplementationSchema,
/**
* Instructions describing how to use the server and its features.
*
* This can be used by clients to improve the LLM's understanding of available tools, resources, etc. It can be thought of like a "hint" to the model. For example, this information MAY be added to the system prompt.
*/
instructions: z.optional(z.string())
});
InitializedNotificationSchema = NotificationSchema.extend({
method: z.literal("notifications/initialized")
});
PingRequestSchema = RequestSchema.extend({
method: z.literal("ping")
});
ProgressSchema = z.object({
/**
* The progress thus far. This should increase every time progress is made, even if the total is unknown.
*/
progress: z.number(),
/**
* Total number of items to process (or total progress required), if known.
*/
total: z.optional(z.number()),
/**
* An optional message describing the current progress.
*/
message: z.optional(z.string())
}).passthrough();
ProgressNotificationSchema = NotificationSchema.extend({
method: z.literal("notifications/progress"),
params: BaseNotificationParamsSchema.merge(ProgressSchema).extend({
/**
* The progress token which was given in the initial request, used to associate this notification with the request that is proceeding.
*/
progressToken: ProgressTokenSchema
})
});
PaginatedRequestSchema = RequestSchema.extend({
params: BaseRequestParamsSchema.extend({
/**
* An opaque token representing the current pagination position.
* If provided, the server should return results starting after this cursor.
*/
cursor: z.optional(CursorSchema)
}).optional()
});
PaginatedResultSchema = ResultSchema.extend({
/**
* An opaque token representing the pagination position after the last returned result.
* If present, there may be more results available.
*/
nextCursor: z.optional(CursorSchema)
});
ResourceContentsSchema = z.object({
/**
* The URI of this resource.
*/
uri: z.string(),
/**
* The MIME type of this resource, if known.
*/
mimeType: z.optional(z.string()),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z.optional(z.object({}).passthrough())
}).passthrough();
TextResourceContentsSchema = ResourceContentsSchema.extend({
/**
* The text of the item. This must only be set if the item can actually be represented as text (not binary data).
*/
text: z.string()
});
Base64Schema = z.string().refine((val) => {
try {
atob(val);
return true;
} catch (_a) {
return false;
}
}, { message: "Invalid Base64 string" });
BlobResourceContentsSchema = ResourceContentsSchema.extend({
/**
* A base64-encoded string representing the binary data of the item.
*/
blob: Base64Schema
});
ResourceSchema = BaseMetadataSchema.extend({
/**
* The URI of this resource.
*/
uri: z.string(),
/**
* A description of what this resource represents.
*
* This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a "hint" to the model.
*/
description: z.optional(z.string()),
/**
* The MIME type of this resource, if known.
*/
mimeType: z.optional(z.string()),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z.optional(z.object({}).passthrough())
});
ResourceTemplateSchema = BaseMetadataSchema.extend({
/**
* A URI template (according to RFC 6570) that can be used to construct resource URIs.
*/
uriTemplate: z.string(),
/**
* A description of what this template is for.
*
* This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a "hint" to the model.
*/
description: z.optional(z.string()),
/**
* The MIME type for all resources that match this template. This should only be included if all resources matching this template have the same type.
*/
mimeType: z.optional(z.string()),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z.optional(z.object({}).passthrough())
});
ListResourcesRequestSchema = PaginatedRequestSchema.extend({
method: z.literal("resources/list")
});
ListResourcesResultSchema = PaginatedResultSchema.extend({
resources: z.array(ResourceSchema)
});
ListResourceTemplatesRequestSchema = PaginatedRequestSchema.extend({
method: z.literal("resources/templates/list")
});
ListResourceTemplatesResultSchema = PaginatedResultSchema.extend({
resourceTemplates: z.array(ResourceTemplateSchema)
});
ReadResourceRequestSchema = RequestSchema.extend({
method: z.literal("resources/read"),
params: BaseRequestParamsSchema.extend({
/**
* The URI of the resource to read. The URI can use any protocol; it is up to the server how to interpret it.
*/
uri: z.string()
})
});
ReadResourceResultSchema = ResultSchema.extend({
contents: z.array(z.union([TextResourceContentsSchema, BlobResourceContentsSchema]))
});
ResourceListChangedNotificationSchema = NotificationSchema.extend({
method: z.literal("notifications/resources/list_changed")
});
SubscribeRequestSchema = RequestSchema.extend({
method: z.literal("resources/subscribe"),
params: BaseRequestParamsSchema.extend({
/**
* The URI of the resource to subscribe to. The URI can use any protocol; it is up to the server how to interpret it.
*/
uri: z.string()
})
});
UnsubscribeRequestSchema = RequestSchema.extend({
method: z.literal("resources/unsubscribe"),
params: BaseRequestParamsSchema.extend({
/**
* The URI of the resource to unsubscribe from.
*/
uri: z.string()
})
});
ResourceUpdatedNotificationSchema = NotificationSchema.extend({
method: z.literal("notifications/resources/updated"),
params: BaseNotificationParamsSchema.extend({
/**
* The URI of the resource that has been updated. This might be a sub-resource of the one that the client actually subscribed to.
*/
uri: z.string()
})
});
PromptArgumentSchema = z.object({
/**
* The name of the argument.
*/
name: z.string(),
/**
* A human-readable description of the argument.
*/
description: z.optional(z.string()),
/**
* Whether this argument must be provided.
*/
required: z.optional(z.boolean())
}).passthrough();
PromptSchema = BaseMetadataSchema.extend({
/**
* An optional description of what this prompt provides
*/
description: z.optional(z.string()),
/**
* A list of arguments to use for templating the prompt.
*/
arguments: z.optional(z.array(PromptArgumentSchema)),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z.optional(z.object({}).passthrough())
});
ListPromptsRequestSchema = PaginatedRequestSchema.extend({
method: z.literal("prompts/list")
});
ListPromptsResultSchema = PaginatedResultSchema.extend({
prompts: z.array(PromptSchema)
});
GetPromptRequestSchema = RequestSchema.extend({
method: z.literal("prompts/get"),
params: BaseRequestParamsSchema.extend({
/**
* The name of the prompt or prompt template.
*/
name: z.string(),
/**
* Arguments to use for templating the prompt.
*/
arguments: z.optional(z.record(z.string()))
})
});
TextContentSchema = z.object({
type: z.literal("text"),
/**
* The text content of the message.
*/
text: z.string(),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z.optional(z.object({}).passthrough())
}).passthrough();
ImageContentSchema = z.object({
type: z.literal("image"),
/**
* The base64-encoded image data.
*/
data: Base64Schema,
/**
* The MIME type of the image. Different providers may support different image types.
*/
mimeType: z.string(),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z.optional(z.object({}).passthrough())
}).passthrough();
AudioContentSchema = z.object({
type: z.literal("audio"),
/**
* The base64-encoded audio data.
*/
data: Base64Schema,
/**
* The MIME type of the audio. Different providers may support different audio types.
*/
mimeType: z.string(),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z.optional(z.object({}).passthrough())
}).passthrough();
EmbeddedResourceSchema = z.object({
type: z.literal("resource"),
resource: z.union([TextResourceContentsSchema, BlobResourceContentsSchema]),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z.optional(z.object({}).passthrough())
}).passthrough();
ResourceLinkSchema = ResourceSchema.extend({
type: z.literal("resource_link")
});
ContentBlockSchema = z.union([
TextContentSchema,
ImageContentSchema,
AudioContentSchema,
ResourceLinkSchema,
EmbeddedResourceSchema
]);
PromptMessageSchema = z.object({
role: z.enum(["user", "assistant"]),
content: ContentBlockSchema
}).passthrough();
GetPromptResultSchema = ResultSchema.extend({
/**
* An optional description for the prompt.
*/
description: z.optional(z.string()),
messages: z.array(PromptMessageSchema)
});
PromptListChangedNotificationSchema = NotificationSchema.extend({
method: z.literal("notifications/prompts/list_changed")
});
ToolAnnotationsSchema = z.object({
/**
* A human-readable title for the tool.
*/
title: z.optional(z.string()),
/**
* If true, the tool does not modify its environment.
*
* Default: false
*/
readOnlyHint: z.optional(z.boolean()),
/**
* If true, the tool may perform destructive updates to its environment.
* If false, the tool performs only additive updates.
*
* (This property is meaningful only when `readOnlyHint == false`)
*
* Default: true
*/
destructiveHint: z.optional(z.boolean()),
/**
* If true, calling the tool repeatedly with the same arguments
* will have no additional effect on the its environment.
*
* (This property is meaningful only when `readOnlyHint == false`)
*
* Default: false
*/
idempotentHint: z.optional(z.boolean()),
/**
* If true, this tool may interact with an "open world" of external
* entities. If false, the tool's domain of interaction is closed.
* For example, the world of a web search tool is open, whereas that
* of a memory tool is not.
*
* Default: true
*/
openWorldHint: z.optional(z.boolean())
}).passthrough();
ToolSchema = BaseMetadataSchema.extend({
/**
* A human-readable description of the tool.
*/
description: z.optional(z.string()),
/**
* A JSON Schema object defining the expected parameters for the tool.
*/
inputSchema: z.object({
type: z.literal("object"),
properties: z.optional(z.object({}).passthrough()),
required: z.optional(z.array(z.string()))
}).passthrough(),
/**
* An optional JSON Schema object defining the structure of the tool's output returned in
* the structuredContent field of a CallToolResult.
*/
outputSchema: z.optional(z.object({
type: z.literal("object"),
properties: z.optional(z.object({}).passthrough()),
required: z.optional(z.array(z.string()))
}).passthrough()),
/**
* Optional additional tool information.
*/
annotations: z.optional(ToolAnnotationsSchema),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z.optional(z.object({}).passthrough())
});
ListToolsRequestSchema = PaginatedRequestSchema.extend({
method: z.literal("tools/list")
});
ListToolsResultSchema = PaginatedResultSchema.extend({
tools: z.array(ToolSchema)
});
CallToolResultSchema = ResultSchema.extend({
/**
* A list of content objects that represent the result of the tool call.
*
* If the Tool does not define an outputSchema, this field MUST be present in the result.
* For backwards compatibility, this field is always present, but it may be empty.
*/
content: z.array(ContentBlockSchema).default([]),
/**
* An object containing structured tool output.
*
* If the Tool defines an outputSchema, this field MUST be present in the result, and contain a JSON object that matches the schema.
*/
structuredContent: z.object({}).passthrough().optional(),
/**
* Whether the tool call ended in an error.
*
* If not set, this is assumed to be false (the call was successful).
*
* Any errors that originate from the tool SHOULD be reported inside the result
* object, with `isError` set to true, _not_ as an MCP protocol-level error
* response. Otherwise, the LLM would not be able to see that an error occurred
* and self-correct.
*
* However, any errors in _finding_ the tool, an error indicating that the
* server does not support tool calls, or any other exceptional conditions,
* should be reported as an MCP error response.
*/
isError: z.optional(z.boolean())
});
CompatibilityCallToolResultSchema = CallToolResultSchema.or(ResultSchema.extend({
toolResult: z.unknown()
}));
CallToolRequestSchema = RequestSchema.extend({
method: z.literal("tools/call"),
params: BaseRequestParamsSchema.extend({
name: z.string(),
arguments: z.optional(z.record(z.unknown()))
})
});
ToolListChangedNotificationSchema = NotificationSchema.extend({
method: z.literal("notifications/tools/list_changed")
});
LoggingLevelSchema = z.enum([
"debug",
"info",
"notice",
"warning",
"error",
"critical",
"alert",
"emergency"
]);
SetLevelRequestSchema = RequestSchema.extend({
method: z.literal("logging/setLevel"),
params: BaseRequestParamsSchema.extend({
/**
* The level of logging that the client wants to receive from the server. The server should send all logs at this level and higher (i.e., more severe) to the client as notifications/logging/message.
*/
level: LoggingLevelSchema
})
});
LoggingMessageNotificationSchema = NotificationSchema.extend({
method: z.literal("notifications/message"),
params: BaseNotificationParamsSchema.extend({
/**
* The severity of this log message.
*/
level: LoggingLevelSchema,
/**
* An optional name of the logger issuing this message.
*/
logger: z.optional(z.string()),
/**
* The data to be logged, such as a string message or an object. Any JSON serializable type is allowed here.
*/
data: z.unknown()
})
});
ModelHintSchema = z.object({
/**
* A hint for a model name.
*/
name: z.string().optional()
}).passthrough();
ModelPreferencesSchema = z.object({
/**
* Optional hints to use for model selection.
*/
hints: z.optional(z.array(ModelHintSchema)),
/**
* How much to prioritize cost when selecting a model.
*/
costPriority: z.optional(z.number().min(0).max(1)),
/**
* How much to prioritize sampling speed (latency) when selecting a model.
*/
speedPriority: z.optional(z.number().min(0).max(1)),
/**
* How much to prioritize intelligence and capabilities when selecting a model.
*/
intelligencePriority: z.optional(z.number().min(0).max(1))
}).passthrough();
SamplingMessageSchema = z.object({
role: z.enum(["user", "assistant"]),
content: z.union([TextContentSchema, ImageContentSchema, AudioContentSchema])
}).passthrough();
CreateMessageRequestSchema = RequestSchema.extend({
method: z.literal("sampling/createMessage"),
params: BaseRequestParamsSchema.extend({
messages: z.array(SamplingMessageSchema),
/**
* An optional system prompt the server wants to use for sampling. The client MAY modify or omit this prompt.
*/
systemPrompt: z.optional(z.string()),
/**
* A request to include context from one or more MCP servers (including the caller), to be attached to the prompt. The client MAY ignore this request.
*/
includeContext: z.optional(z.enum(["none", "thisServer", "allServers"])),
temperature: z.optional(z.number()),
/**
* The maximum number of tokens to sample, as requested by the server. The client MAY choose to sample fewer tokens than requested.
*/
maxTokens: z.number().int(),
stopSequences: z.optional(z.array(z.string())),
/**
* Optional metadata to pass through to the LLM provider. The format of this metadata is provider-specific.
*/
metadata: z.optional(z.object({}).passthrough()),
/**
* The server's preferences for which model to select.
*/
modelPreferences: z.optional(ModelPreferencesSchema)
})
});
CreateMessageResultSchema = ResultSchema.extend({
/**
* The name of the model that generated the message.
*/
model: z.string(),
/**
* The reason why sampling stopped.
*/
stopReason: z.optional(z.enum(["endTurn", "stopSequence", "maxTokens"]).or(z.string())),
role: z.enum(["user", "assistant"]),
content: z.discriminatedUnion("type", [
TextContentSchema,
ImageContentSchema,
AudioContentSchema
])
});
BooleanSchemaSchema = z.object({
type: z.literal("boolean"),
title: z.optional(z.string()),
description: z.optional(z.string()),
default: z.optional(z.boolean())
}).passthrough();
StringSchemaSchema = z.object({
type: z.literal("string"),
title: z.optional(z.string()),
description: z.optional(z.string()),
minLength: z.optional(z.number()),
maxLength: z.optional(z.number()),
format: z.optional(z.enum(["email", "uri", "date", "date-time"]))
}).passthrough();
NumberSchemaSchema = z.object({
type: z.enum(["number", "integer"]),
title: z.optional(z.string()),
description: z.optional(z.string()),
minimum: z.optional(z.number()),
maximum: z.optional(z.number())
}).passthrough();
EnumSchemaSchema = z.object({
type: z.literal("string"),
title: z.optional(z.string()),
description: z.optional(z.string()),
enum: z.array(z.string()),
enumNames: z.optional(z.array(z.string()))
}).passthrough();
PrimitiveSchemaDefinitionSchema = z.union([
BooleanSchemaSchema,
StringSchemaSchema,
NumberSchemaSchema,
EnumSchemaSchema
]);
ElicitRequestSchema = RequestSchema.extend({
method: z.literal("elicitation/create"),
params: BaseRequestParamsSchema.extend({
/**
* The message to present to the user.
*/
message: z.string(),
/**
* The schema for the requested user input.
*/
requestedSchema: z.object({
type: z.literal("object"),
properties: z.record(z.string(), PrimitiveSchemaDefinitionSchema),
required: z.optional(z.array(z.string()))
}).passthrough()
})
});
ElicitResultSchema = ResultSchema.extend({
/**
* The user's response action.
*/
action: z.enum(["accept", "decline", "cancel"]),
/**
* The collected user input content (only present if action is "accept").
*/
content: z.optional(z.record(z.string(), z.unknown()))
});
ResourceTemplateReferenceSchema = z.object({
type: z.literal("ref/resource"),
/**
* The URI or URI template of the resource.
*/
uri: z.string()
}).passthrough();
PromptReferenceSchema = z.object({
type: z.literal("ref/prompt"),
/**
* The name of the prompt or prompt template
*/
name: z.string()
}).passthrough();
CompleteRequestSchema = RequestSchema.extend({
method: z.literal("completion/complete"),
params: BaseRequestParamsSchema.extend({
ref: z.union([PromptReferenceSchema, ResourceTemplateReferenceSchema]),
/**
* The argument's information
*/
argument: z.object({
/**
* The name of the argument
*/
name: z.string(),
/**
* The value of the argument to use for completion matching.
*/
value: z.string()
}).passthrough(),
context: z.optional(z.object({
/**
* Previously-resolved variables in a URI template or prompt.
*/
arguments: z.optional(z.record(z.string(), z.string()))
}))
})
});
CompleteResultSchema = ResultSchema.extend({
completion: z.object({
/**
* An array of completion values. Must not exceed 100 items.
*/
values: z.array(z.string()).max(100),
/**
* The total number of completion options available. This can exceed the number of values actually sent in the response.
*/
total: z.optional(z.number().int()),
/**
* Indicates whether there are additional completion options beyond those provided in the current response, even if the exact total is unknown.
*/
hasMore: z.optional(z.boolean())
}).passthrough()
});
RootSchema = z.object({
/**
* The URI identifying the root. This *must* start with file:// for now.
*/
uri: z.string().startsWith("file://"),
/**
* An optional name for the root.
*/
name: z.optional(z.string()),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z.optional(z.object({}).passthrough())
}).passthrough();
ListRootsRequestSchema = RequestSchema.extend({
method: z.literal("roots/list")
});
ListRootsResultSchema = ResultSchema.extend({
roots: z.array(RootSchema)
});
RootsListChangedNotificationSchema = NotificationSchema.extend({
method: z.literal("notifications/roots/list_changed")
});
ClientRequestSchema = z.union([
PingRequestSchema,
InitializeRequestSchema,
CompleteRequestSchema,
SetLevelRequestSchema,
GetPromptRequestSchema,
ListPromptsRequestSchema,
ListResourcesRequestSchema,
ListResourceTemplatesRequestSchema,
ReadResourceRequestSchema,
SubscribeRequestSchema,
UnsubscribeRequestSchema,
CallToolRequestSchema,
ListToolsRequestSchema
]);
ClientNotificationSchema = z.union([
CancelledNotificationSchema,
ProgressNotificationSchema,
InitializedNotificationSchema,
RootsListChangedNotificationSchema
]);
ClientResultSchema = z.union([
EmptyResultSchema,
CreateMessageResultSchema,
ElicitResultSchema,
ListRootsResultSchema
]);
ServerRequestSchema = z.union([
PingRequestSchema,
CreateMessageRequestSchema,
ElicitRequestSchema,
ListRootsRequestSchema
]);
ServerNotificationSchema = z.union([
CancelledNotificationSchema,
ProgressNotificationSchema,
LoggingMessageNotificationSchema,
ResourceUpdatedNotificationSchema,
ResourceListChangedNotificationSchema,
ToolListChangedNotificationSchema,
PromptListChangedNotificationSchema
]);
ServerResultSchema = z.union([
EmptyResultSchema,
InitializeResultSchema,
CompleteResultSchema,
GetPromptResultSchema,
ListPromptsResultSchema,
ListResourcesResultSchema,
ListResourceTemplatesResultSchema,
ReadResourceResultSchema,
CallToolResultSchema,
ListToolsResultSchema
]);
McpError = class extends Error {
constructor(code, message, data) {
super(`MCP error ${code}: ${message}`);
this.code = code;
this.data = data;
this.name = "McpError";
}
};
}
});
// node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
function mergeCapabilities(base, additional) {
return Object.entries(additional).reduce((acc, [key, value]) => {
if (value && typeof value === "object") {
acc[key] = acc[key] ? { ...acc[key], ...value } : value;
} else {
acc[key] = value;
}
return acc;
}, { ...base });
}
var DEFAULT_REQUEST_TIMEOUT_MSEC, Protocol;
var init_protocol = __esm({
"node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js"() {
init_types();
DEFAULT_REQUEST_TIMEOUT_MSEC = 6e4;
Protocol = class {
constructor(_options) {
this._options = _options;
this._requestMessageId = 0;
this._requestHandlers = /* @__PURE__ */ new Map();
this._requestHandlerAbortControllers = /* @__PURE__ */ new Map();
this._notificationHandlers = /* @__PURE__ */ new Map();
this._responseHandlers = /* @__PURE__ */ new Map();
this._progressHandlers = /* @__PURE__ */ new Map();
this._timeoutInfo = /* @__PURE__ */ new Map();
this._pendingDebouncedNotifications = /* @__PURE__ */ new Set();
this.setNotificationHandler(CancelledNotificationSchema, (notification) => {
const controller = this._requestHandlerAbortControllers.get(notification.params.requestId);
controller === null || controller === void 0 ? void 0 : controller.abort(notification.params.reason);
});
this.setNotificationHandler(ProgressNotificationSchema, (notification) => {
this._onprogress(notification);
});
this.setRequestHandler(
PingRequestSchema,
// Automatic pong by default.
(_request) => ({})
);
}
_setupTimeout(messageId, timeout, maxTotalTimeout, onTimeout, resetTimeoutOnProgress = false) {
this._timeoutInfo.set(messageId, {
timeoutId: setTimeout(onTimeout, timeout),
startTime: Date.now(),
timeout,
maxTotalTimeout,
resetTimeoutOnProgress,
onTimeout
});
}
_resetTimeout(messageId) {
const info = this._timeoutInfo.get(messageId);
if (!info)
return false;
const totalElapsed = Date.now() - info.startTime;
if (info.maxTotalTimeout && totalElapsed >= info.maxTotalTimeout) {
this._timeoutInfo.delete(messageId);
throw new McpError(ErrorCode.RequestTimeout, "Maximum total timeout exceeded", { maxTotalTimeout: info.maxTotalTimeout, totalElapsed });
}
clearTimeout(info.timeoutId);
info.timeoutId = setTimeout(info.onTimeout, info.timeout);
return true;
}
_cleanupTimeout(messageId) {
const info = this._timeoutInfo.get(messageId);
if (info) {
clearTimeout(info.timeoutId);
this._timeoutInfo.delete(messageId);
}
}
/**
* Attaches to the given transport, starts it, and starts listening for messages.
*
* The Protocol object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.
*/
async connect(transport) {
var _a, _b, _c;
this._transport = transport;
const _onclose = (_a = this.transport) === null || _a === void 0 ? void 0 : _a.onclose;
this._transport.onclose = () => {
_onclose === null || _onclose === void 0 ? void 0 : _onclose();
this._onclose();
};
const _onerror = (_b = this.transport) === null || _b === void 0 ? void 0 : _b.onerror;
this._transport.onerror = (error) => {
_onerror === null || _onerror === void 0 ? void 0 : _onerror(error);
this._onerror(error);
};
const _onmessage = (_c = this._transport) === null || _c === void 0 ? void 0 : _c.onmessage;
this._transport.onmessage = (message, extra) => {
_onmessage === null || _onmessage === void 0 ? void 0 : _onmessage(message, extra);
if (isJSONRPCResponse(message) || isJSONRPCError(message)) {
this._onresponse(message);
} else if (isJSONRPCRequest(message)) {
this._onrequest(message, extra);
} else if (isJSONRPCNotification(message)) {
this._onnotification(message);
} else {
this._onerror(new Error(`Unknown message type: ${JSON.stringify(message)}`));
}
};
await this._transport.start();
}
_onclose() {
var _a;
const responseHandlers = this._responseHandlers;
this._responseHandlers = /* @__PURE__ */ new Map();
this._progressHandlers.clear();
this._pendingDebouncedNotifications.clear();
this._transport = void 0;
(_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);
const error = new McpError(ErrorCode.ConnectionClosed, "Connection closed");
for (const handler of responseHandlers.values()) {
handler(error);
}
}
_onerror(error) {
var _a;
(_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);
}
_onnotification(notification) {
var _a;
const handler = (_a = this._notificationHandlers.get(notification.method)) !== null && _a !== void 0 ? _a : this.fallbackNotificationHandler;
if (handler === void 0) {
return;
}
Promise.resolve().then(() => handler(notification)).catch((error) => this._onerror(new Error(`Uncaught error in notification handler: ${error}`)));
}
_onrequest(request, extra) {
var _a, _b;
const handler = (_a = this._requestHandlers.get(request.method)) !== null && _a !== void 0 ? _a : this.fallbackRequestHandler;
const capturedTransport = this._transport;
if (handler === void 0) {
capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({
jsonrpc: "2.0",
id: request.id,
error: {
code: ErrorCode.MethodNotFound,
message: "Method not found"
}
}).catch((error) => this._onerror(new Error(`Failed to send an error response: ${error}`)));
return;
}
const abortController = new AbortController();
this._requestHandlerAbortControllers.set(request.id, abortController);
const fullExtra = {
signal: abortController.signal,
sessionId: capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.sessionId,
_meta: (_b = request.params) === null || _b === void 0 ? void 0 : _b._meta,
sendNotification: (notification) => this.notification(notification, { relatedRequestId: request.id }),
sendRequest: (r, resultSchema, options) => this.request(r, resultSchema, { ...options, relatedRequestId: request.id }),
authInfo: extra === null || extra === void 0 ? void 0 : extra.authInfo,
requestId: request.id,
requestInfo: extra === null || extra === void 0 ? void 0 : extra.requestInfo
};
Promise.resolve().then(() => handler(request, fullExtra)).then((result) => {
if (abortController.signal.aborted) {
return;
}
return capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({
result,
jsonrpc: "2.0",
id: request.id
});
}, (error) => {
var _a2;
if (abortController.signal.aborted) {
return;
}
return capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({
jsonrpc: "2.0",
id: request.id,
error: {
code: Number.isSafeInteger(error["code"]) ? error["code"] : ErrorCode.InternalError,
message: (_a2 = error.message) !== null && _a2 !== void 0 ? _a2 : "Internal error"
}
});
}).catch((error) => this._onerror(new Error(`Failed to send response: ${error}`))).finally(() => {
this._requestHandlerAbortControllers.delete(request.id);
});
}
_onprogress(notification) {
const { progressToken, ...params } = notification.params;
const messageId = Number(progressToken);
const handler = this._progressHandlers.get(messageId);
if (!handler) {
this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(notification)}`));
return;
}
const responseHandler = this._responseHandlers.get(messageId);
const timeoutInfo = this._timeoutInfo.get(messageId);
if (timeoutInfo && responseHandler && timeoutInfo.resetTimeoutOnProgress) {
try {
this._resetTimeout(messageId);
} catch (error) {
responseHandler(error);
return;
}
}
handler(params);
}
_onresponse(response) {
const messageId = Number(response.id);
const handler = this._responseHandlers.get(messageId);
if (handler === void 0) {
this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(response)}`));
return;
}
this._responseHandlers.delete(messageId);
this._progressHandlers.delete(messageId);
this._cleanupTimeout(messageId);
if (isJSONRPCResponse(response)) {
handler(response);
} else {
const error = new McpError(response.error.code, response.error.message, response.error.data);
handler(error);
}
}
get transport() {
return this._transport;
}
/**
* Closes the connection.
*/
async close() {
var _a;
await ((_a = this._transport) === null || _a === void 0 ? void 0 : _a.close());
}
/**
* Sends a request and wait for a response.
*
* Do not use this method to emit notifications! Use notification() instead.
*/
request(request, resultSchema, options) {
const { relatedRequestId, resumptionToken, onresumptiontoken } = options !== null && options !== void 0 ? options : {};
return new Promise((resolve, reject) => {
var _a, _b, _c, _d, _e, _f;
if (!this._transport) {
reject(new Error("Not connected"));
return;
}
if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.enforceStrictCapabilities) === true) {
this.assertCapabilityForMethod(request.method);
}
(_b = options === null || options === void 0 ? void 0 : options.signal) === null || _b === void 0 ? void 0 : _b.throwIfAborted();
const messageId = this._requestMessageId++;
const jsonrpcRequest = {
...request,
jsonrpc: "2.0",
id: messageId
};
if (options === null || options === void 0 ? void 0 : options.onprogress) {
this._progressHandlers.set(messageId, options.onprogress);
jsonrpcRequest.params = {
...request.params,
_meta: {
...((_c = request.params) === null || _c === void 0 ? void 0 : _c._meta) || {},
progressToken: messageId
}
};
}
const cancel = (reason) => {
var _a2;
this._responseHandlers.delete(messageId);
this._progressHandlers.delete(messageId);
this._cleanupTimeout(messageId);
(_a2 = this._transport) === null || _a2 === void 0 ? void 0 : _a2.send({
jsonrpc: "2.0",
method: "notifications/cancelled",
params: {
requestId: messageId,
reason: String(reason)
}
}, { relatedRequestId, resumptionToken, onresumptiontoken }).catch((error) => this._onerror(new Error(`Failed to send cancellation: ${error}`)));
reject(reason);
};
this._responseHandlers.set(messageId, (response) => {
var _a2;
if ((_a2 = options === null || options === void 0 ? void 0 : options.signal) === null || _a2 === void 0 ? void 0 : _a2.aborted) {
return;
}
if (response instanceof Error) {
return reject(response);
}
try {
const result = resultSchema.parse(response.result);
resolve(result);
} catch (error) {
reject(error);
}
});
(_d = options === null || options === void 0 ? void 0 : options.signal) === null || _d === void 0 ? void 0 : _d.addEventListener("abort", () => {
var _a2;
cancel((_a2 = options === null || options === void 0 ? void 0 : options.signal) === null || _a2 === void 0 ? void 0 : _a2.reason);
});
const timeout = (_e = options === null || options === void 0 ? void 0 : options.timeout) !== null && _e !== void 0 ? _e : DEFAULT_REQUEST_TIMEOUT_MSEC;
const timeoutHandler = () => cancel(new McpError(ErrorCode.RequestTimeout, "Request timed out", { timeout }));
this._setupTimeout(messageId, timeout, options === null || options === void 0 ? void 0 : options.maxTotalTimeout, timeoutHandler, (_f = options === null || options === void 0 ? void 0 : options.resetTimeoutOnProgress) !== null && _f !== void 0 ? _f : false);
this._transport.send(jsonrpcRequest, { relatedRequestId, resumptionToken, onresumptiontoken }).catch((error) => {
this._cleanupTimeout(messageId);
reject(error);
});
});
}
/**
* Emits a notification, which is a one-way message that does not expect a response.
*/
async notification(notification, options) {
var _a, _b;
if (!this._transport) {
throw new Error("Not connected");
}
this.assertNotificationCapability(notification.method);
const debouncedMethods = (_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.debouncedNotificationMethods) !== null && _b !== void 0 ? _b : [];
const canDebounce = debouncedMethods.includes(notification.method) && !notification.params && !(options === null || options === void 0 ? void 0 : options.relatedRequestId);
if (canDebounce) {
if (this._pendingDebouncedNotifications.has(notification.method)) {
return;
}
this._pendingDebouncedNotifications.add(notification.method);
Promise.resolve().then(() => {
var _a2;
this._pendingDebouncedNotifications.delete(notification.method);
if (!this._transport) {
return;
}
const jsonrpcNotification2 = {
...notification,
jsonrpc: "2.0"
};
(_a2 = this._transport) === null || _a2 === void 0 ? void 0 : _a2.send(jsonrpcNotification2, options).catch((error) => this._onerror(error));
});
return;
}
const jsonrpcNotification = {
...notification,
jsonrpc: "2.0"
};
await this._transport.send(jsonrpcNotification, options);
}
/**
* Registers a handler to invoke when this protocol object receives a request with the given method.
*
* Note that this will replace any previous request handler for the same method.
*/
setRequestHandler(requestSchema, handler) {
const method = requestSchema.shape.method.value;
this.assertRequestHandlerCapability(method);
this._requestHandlers.set(method, (request, extra) => {
return Promise.resolve(handler(requestSchema.parse(request), extra));
});
}
/**
* Removes the request handler for the given method.
*/
removeRequestHandler(method) {
this._requestHandlers.delete(method);
}
/**
* Asserts that a request handler has not already been set for the given method, in preparation for a new one being automatically installed.
*/
assertCanSetRequestHandler(method) {
if (this._requestHandlers.has(method)) {
throw new Error(`A request handler for ${method} already exists, which would be overridden`);
}
}
/**
* Registers a handler to invoke when this protocol object receives a notification with the given method.
*
* Note that this will replace any previous notification handler for the same method.
*/
setNotificationHandler(notificationSchema, handler) {
this._notificationHandlers.set(notificationSchema.shape.method.value, (notification) => Promise.resolve(handler(notificationSchema.parse(notification))));
}
/**
* Removes the notification handler for the given method.
*/
removeNotificationHandler(method) {
this._notificationHandlers.delete(method);
}
};
}
});
// node_modules/uri-js/dist/es5/uri.all.js
var require_uri_all = __commonJS({
"node_modules/uri-js/dist/es5/uri.all.js"(exports2, module2) {
(function(global2, factory) {
typeof exports2 === "object" && typeof module2 !== "undefined" ? factory(exports2) : typeof define === "function" && define.amd ? define(["exports"], factory) : factory(global2.URI = global2.URI || {});
})(exports2, (function(exports3) {
"use strict";
function merge2() {
for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {
sets[_key] = arguments[_key];
}
if (sets.length > 1) {
sets[0] = sets[0].slice(0, -1);
var xl = sets.length - 1;
for (var x = 1; x < xl; ++x) {
sets[x] = sets[x].slice(1, -1);
}
sets[xl] = sets[xl].slice(1);
return sets.join("");
} else {
return sets[0];
}
}
function subexp(str) {
return "(?:" + str + ")";
}
function typeOf(o) {
return o === void 0 ? "undefined" : o === null ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase();
}
function toUpperCase(str) {
return str.toUpperCase();
}
function toArray2(obj) {
return obj !== void 0 && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== "number" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];
}
function assign(target, source) {
var obj = target;
if (source) {
for (var key in source) {
obj[key] = source[key];
}
}
return obj;
}
function buildExps(isIRI2) {
var ALPHA$$ = "[A-Za-z]", CR$ = "[\\x0D]", DIGIT$$ = "[0-9]", DQUOTE$$ = "[\\x22]", HEXDIG$$2 = merge2(DIGIT$$, "[A-Fa-f]"), LF$$ = "[\\x0A]", SP$$ = "[\\x20]", PCT_ENCODED$2 = subexp(subexp("%[EFef]" + HEXDIG$$2 + "%" + HEXDIG$$2 + HEXDIG$$2 + "%" + HEXDIG$$2 + HEXDIG$$2) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$2 + "%" + HEXDIG$$2 + HEXDIG$$2) + "|" + subexp("%" + HEXDIG$$2 + HEXDIG$$2)), GEN_DELIMS$$ = "[\\:\\/\\?\\#\\[\\]\\@]", SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", RESERVED$$ = merge2(GEN_DELIMS$$, SUB_DELIMS$$), UCSCHAR$$ = isIRI2 ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]", IPRIVATE$$ = isIRI2 ? "[\\uE000-\\uF8FF]" : "[]", UNRESERVED$$2 = merge2(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$), SCHEME$ = subexp(ALPHA$$ + merge2(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"), USERINFO$ = subexp(subexp(PCT_ENCODED$2 + "|" + merge2(UNRESERVED$$2, SUB_DELIMS$$, "[\\:]")) + "*"), DEC_OCTET$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("[1-9]" + DIGIT$$) + "|" + DIGIT$$), DEC_OCTET_RELAXED$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("0?[1-9]" + DIGIT$$) + "|0?0?" + DIGIT$$), IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$), H16$ = subexp(HEXDIG$$2 + "{1,4}"), LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$), IPV6ADDRESS1$ = subexp(subexp(H16$ + "\\:") + "{6}" + LS32$), IPV6ADDRESS2$ = subexp("\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$), IPV6ADDRESS3$ = subexp(subexp(H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$), IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$), IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$), IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$), IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$), IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$), IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:"), IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join("|")), ZONEID$ = subexp(subexp(UNRESERVED$$2 + "|" + PCT_ENCODED$2) + "+"), IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$), IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$2 + "{2})") + ZONEID$), IPVFUTURE$ = subexp("[vV]" + HEXDIG$$2 + "+\\." + merge2(UNRESERVED$$2, SUB_DELIMS$$, "[\\:]") + "+"), IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"), REG_NAME$ = subexp(subexp(PCT_ENCODED$2 + "|" + merge2(UNRESERVED$$2, SUB_DELIMS$$)) + "*"), HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")|" + REG_NAME$), PORT$ = subexp(DIGIT$$ + "*"), AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"), PCHAR$ = subexp(PCT_ENCODED$2 + "|" + merge2(UNRESERVED$$2, SUB_DELIMS$$, "[\\:\\@]")), SEGMENT$ = subexp(PCHAR$ + "*"), SEGMENT_NZ$ = subexp(PCHAR$ + "+"), SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$2 + "|" + merge2(UNRESERVED$$2, SUB_DELIMS$$, "[\\@]")) + "+"), PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"), PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"), PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), PATH_EMPTY$ = "(?!" + PCHAR$ + ")", PATH$ = subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), QUERY$ = subexp(subexp(PCHAR$ + "|" + merge2("[\\/\\?]", IPRIVATE$$)) + "*"), FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"), HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$), RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), URI_REFERENCE$ = subexp(URI$ + "|" + RELATIVE$), ABSOLUTE_URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"), GENERIC_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", RELATIVE_REF$ = "^(){0}" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", ABSOLUTE_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?$", SAMEDOC_REF$ = "^" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", AUTHORITY_REF$ = "^" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?$";
return {
NOT_SCHEME: new RegExp(merge2("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"),
NOT_USERINFO: new RegExp(merge2("[^\\%\\:]", UNRESERVED$$2, SUB_DELIMS$$), "g"),
NOT_HOST: new RegExp(merge2("[^\\%\\[\\]\\:]", UNRESERVED$$2, SUB_DELIMS$$), "g"),
NOT_PATH: new RegExp(merge2("[^\\%\\/\\:\\@]", UNRESERVED$$2, SUB_DELIMS$$), "g"),
NOT_PATH_NOSCHEME: new RegExp(merge2("[^\\%\\/\\@]", UNRESERVED$$2, SUB_DELIMS$$), "g"),
NOT_QUERY: new RegExp(merge2("[^\\%]", UNRESERVED$$2, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"),
NOT_FRAGMENT: new RegExp(merge2("[^\\%]", UNRESERVED$$2, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"),
ESCAPE: new RegExp(merge2("[^]", UNRESERVED$$2, SUB_DELIMS$$), "g"),
UNRESERVED: new RegExp(UNRESERVED$$2, "g"),
OTHER_CHARS: new RegExp(merge2("[^\\%]", UNRESERVED$$2, RESERVED$$), "g"),
PCT_ENCODED: new RegExp(PCT_ENCODED$2, "g"),
IPV4ADDRESS: new RegExp("^(" + IPV4ADDRESS$ + ")$"),
IPV6ADDRESS: new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$2 + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$")
//RFC 6874, with relaxed parsing rules
};
}
var URI_PROTOCOL = buildExps(false);
var IRI_PROTOCOL = buildExps(true);
var slicedToArray = /* @__PURE__ */ (function() {
function sliceIterator(arr, i) {
var _arr = [];
var _n = true;
var _d = false;
var _e = void 0;
try {
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err2) {
_d = true;
_e = err2;
} finally {
try {
if (!_n && _i["return"]) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
return function(arr, i) {
if (Array.isArray(arr)) {
return arr;
} else if (Symbol.iterator in Object(arr)) {
return sliceIterator(arr, i);
} else {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
};
})();
var toConsumableArray = function(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
} else {
return Array.from(arr);
}
};
var maxInt = 2147483647;
var base = 36;
var tMin = 1;
var tMax = 26;
var skew = 38;
var damp = 700;
var initialBias = 72;
var initialN = 128;
var delimiter = "-";
var regexPunycode = /^xn--/;
var regexNonASCII = /[^\0-\x7E]/;
var regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g;
var errors = {
"overflow": "Overflow: input needs wider integers to process",
"not-basic": "Illegal input >= 0x80 (not a basic code point)",
"invalid-input": "Invalid input"
};
var baseMinusTMin = base - tMin;
var floor = Math.floor;
var stringFromCharCode = String.fromCharCode;
function error$1(type) {
throw new RangeError(errors[type]);
}
function map(array, fn) {
var result = [];
var length = array.length;
while (length--) {
result[length] = fn(array[length]);
}
return result;
}
function mapDomain(string, fn) {
var parts = string.split("@");
var result = "";
if (parts.length > 1) {
result = parts[0] + "@";
string = parts[1];
}
string = string.replace(regexSeparators, ".");
var labels = string.split(".");
var encoded = map(labels, fn).join(".");
return result + encoded;
}
function ucs2decode(string) {
var output = [];
var counter = 0;
var length = string.length;
while (counter < length) {
var value = string.charCodeAt(counter++);
if (value >= 55296 && value <= 56319 && counter < length) {
var extra = string.charCodeAt(counter++);
if ((extra & 64512) == 56320) {
output.push(((value & 1023) << 10) + (extra & 1023) + 65536);
} else {
output.push(value);
counter--;
}
} else {
output.push(value);
}
}
return output;
}
var ucs2encode = function ucs2encode2(array) {
return String.fromCodePoint.apply(String, toConsumableArray(array));
};
var basicToDigit = function basicToDigit2(codePoint) {
if (codePoint - 48 < 10) {
return codePoint - 22;
}
if (codePoint - 65 < 26) {
return codePoint - 65;
}
if (codePoint - 97 < 26) {
return codePoint - 97;
}
return base;
};
var digitToBasic = function digitToBasic2(digit, flag) {
return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
};
var adapt = function adapt2(delta, numPoints, firstTime) {
var k = 0;
delta = firstTime ? floor(delta / damp) : delta >> 1;
delta += floor(delta / numPoints);
for (
;
/* no initialization */
delta > baseMinusTMin * tMax >> 1;
k += base
) {
delta = floor(delta / baseMinusTMin);
}
return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
};
var decode = function decode2(input) {
var output = [];
var inputLength = input.length;
var i = 0;
var n = initialN;
var bias = initialBias;
var basic = input.lastIndexOf(delimiter);
if (basic < 0) {
basic = 0;
}
for (var j = 0; j < basic; ++j) {
if (input.charCodeAt(j) >= 128) {
error$1("not-basic");
}
output.push(input.charCodeAt(j));
}
for (var index = basic > 0 ? basic + 1 : 0; index < inputLength; ) {
var oldi = i;
for (
var w = 1, k = base;
;
/* no condition */
k += base
) {
if (index >= inputLength) {
error$1("invalid-input");
}
var digit = basicToDigit(input.charCodeAt(index++));
if (digit >= base || digit > floor((maxInt - i) / w)) {
error$1("overflow");
}
i += digit * w;
var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
if (digit < t) {
break;
}
var baseMinusT = base - t;
if (w > floor(maxInt / baseMinusT)) {
error$1("overflow");
}
w *= baseMinusT;
}
var out = output.length + 1;
bias = adapt(i - oldi, out, oldi == 0);
if (floor(i / out) > maxInt - n) {
error$1("overflow");
}
n += floor(i / out);
i %= out;
output.splice(i++, 0, n);
}
return String.fromCodePoint.apply(String, output);
};
var encode3 = function encode4(input) {
var output = [];
input = ucs2decode(input);
var inputLength = input.length;
var n = initialN;
var delta = 0;
var bias = initialBias;
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = void 0;
try {
for (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var _currentValue2 = _step.value;
if (_currentValue2 < 128) {
output.push(stringFromCharCode(_currentValue2));
}
}
} catch (err2) {
_didIteratorError = true;
_iteratorError = err2;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
var basicLength = output.length;
var handledCPCount = basicLength;
if (basicLength) {
output.push(delimiter);
}
while (handledCPCount < inputLength) {
var m = maxInt;
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = void 0;
try {
for (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var currentValue = _step2.value;
if (currentValue >= n && currentValue < m) {
m = currentValue;
}
}
} catch (err2) {
_didIteratorError2 = true;
_iteratorError2 = err2;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
var handledCPCountPlusOne = handledCPCount + 1;
if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
error$1("overflow");
}
delta += (m - n) * handledCPCountPlusOne;
n = m;
var _iteratorNormalCompletion3 = true;
var _didIteratorError3 = false;
var _iteratorError3 = void 0;
try {
for (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var _currentValue = _step3.value;
if (_currentValue < n && ++delta > maxInt) {
error$1("overflow");
}
if (_currentValue == n) {
var q = delta;
for (
var k = base;
;
/* no condition */
k += base
) {
var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
if (q < t) {
break;
}
var qMinusT = q - t;
var baseMinusT = base - t;
output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));
q = floor(qMinusT / baseMinusT);
}
output.push(stringFromCharCode(digitToBasic(q, 0)));
bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
delta = 0;
++handledCPCount;
}
}
} catch (err2) {
_didIteratorError3 = true;
_iteratorError3 = err2;
} finally {
try {
if (!_iteratorNormalCompletion3 && _iterator3.return) {
_iterator3.return();
}
} finally {
if (_didIteratorError3) {
throw _iteratorError3;
}
}
}
++delta;
++n;
}
return output.join("");
};
var toUnicode = function toUnicode2(input) {
return mapDomain(input, function(string) {
return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;
});
};
var toASCII = function toASCII2(input) {
return mapDomain(input, function(string) {
return regexNonASCII.test(string) ? "xn--" + encode3(string) : string;
});
};
var punycode = {
/**
* A string representing the current Punycode.js version number.
* @memberOf punycode
* @type String
*/
"version": "2.1.0",
/**
* An object of methods to convert from JavaScript's internal character
* representation (UCS-2) to Unicode code points, and back.
* @see <https://mathiasbynens.be/notes/javascript-encoding>
* @memberOf punycode
* @type Object
*/
"ucs2": {
"decode": ucs2decode,
"encode": ucs2encode
},
"decode": decode,
"encode": encode3,
"toASCII": toASCII,
"toUnicode": toUnicode
};
var SCHEMES = {};
function pctEncChar(chr) {
var c = chr.charCodeAt(0);
var e = void 0;
if (c < 16) e = "%0" + c.toString(16).toUpperCase();
else if (c < 128) e = "%" + c.toString(16).toUpperCase();
else if (c < 2048) e = "%" + (c >> 6 | 192).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase();
else e = "%" + (c >> 12 | 224).toString(16).toUpperCase() + "%" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase();
return e;
}
function pctDecChars(str) {
var newStr = "";
var i = 0;
var il = str.length;
while (i < il) {
var c = parseInt(str.substr(i + 1, 2), 16);
if (c < 128) {
newStr += String.fromCharCode(c);
i += 3;
} else if (c >= 194 && c < 224) {
if (il - i >= 6) {
var c2 = parseInt(str.substr(i + 4, 2), 16);
newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);
} else {
newStr += str.substr(i, 6);
}
i += 6;
} else if (c >= 224) {
if (il - i >= 9) {
var _c = parseInt(str.substr(i + 4, 2), 16);
var c3 = parseInt(str.substr(i + 7, 2), 16);
newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);
} else {
newStr += str.substr(i, 9);
}
i += 9;
} else {
newStr += str.substr(i, 3);
i += 3;
}
}
return newStr;
}
function _normalizeComponentEncoding(components, protocol) {
function decodeUnreserved2(str) {
var decStr = pctDecChars(str);
return !decStr.match(protocol.UNRESERVED) ? str : decStr;
}
if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved2).toLowerCase().replace(protocol.NOT_SCHEME, "");
if (components.userinfo !== void 0) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved2).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
if (components.host !== void 0) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved2).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
if (components.path !== void 0) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved2).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
if (components.query !== void 0) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved2).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
if (components.fragment !== void 0) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved2).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
return components;
}
function _stripLeadingZeros(str) {
return str.replace(/^0*(.*)/, "$1") || "0";
}
function _normalizeIPv4(host, protocol) {
var matches = host.match(protocol.IPV4ADDRESS) || [];
var _matches = slicedToArray(matches, 2), address = _matches[1];
if (address) {
return address.split(".").map(_stripLeadingZeros).join(".");
} else {
return host;
}
}
function _normalizeIPv6(host, protocol) {
var matches = host.match(protocol.IPV6ADDRESS) || [];
var _matches2 = slicedToArray(matches, 3), address = _matches2[1], zone = _matches2[2];
if (address) {
var _address$toLowerCase$ = address.toLowerCase().split("::").reverse(), _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2), last = _address$toLowerCase$2[0], first = _address$toLowerCase$2[1];
var firstFields = first ? first.split(":").map(_stripLeadingZeros) : [];
var lastFields = last.split(":").map(_stripLeadingZeros);
var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);
var fieldCount = isLastFieldIPv4Address ? 7 : 8;
var lastFieldsStart = lastFields.length - fieldCount;
var fields = Array(fieldCount);
for (var x = 0; x < fieldCount; ++x) {
fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || "";
}
if (isLastFieldIPv4Address) {
fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);
}
var allZeroFields = fields.reduce(function(acc, field, index) {
if (!field || field === "0") {
var lastLongest = acc[acc.length - 1];
if (lastLongest && lastLongest.index + lastLongest.length === index) {
lastLongest.length++;
} else {
acc.push({ index, length: 1 });
}
}
return acc;
}, []);
var longestZeroFields = allZeroFields.sort(function(a, b) {
return b.length - a.length;
})[0];
var newHost = void 0;
if (longestZeroFields && longestZeroFields.length > 1) {
var newFirst = fields.slice(0, longestZeroFields.index);
var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);
newHost = newFirst.join(":") + "::" + newLast.join(":");
} else {
newHost = fields.join(":");
}
if (zone) {
newHost += "%" + zone;
}
return newHost;
} else {
return host;
}
}
var URI_PARSE = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i;
var NO_MATCH_IS_UNDEFINED = "".match(/(){0}/)[1] === void 0;
function parse(uriString) {
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
var components = {};
var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;
if (options.reference === "suffix") uriString = (options.scheme ? options.scheme + ":" : "") + "//" + uriString;
var matches = uriString.match(URI_PARSE);
if (matches) {
if (NO_MATCH_IS_UNDEFINED) {
components.scheme = matches[1];
components.userinfo = matches[3];
components.host = matches[4];
components.port = parseInt(matches[5], 10);
components.path = matches[6] || "";
components.query = matches[7];
components.fragment = matches[8];
if (isNaN(components.port)) {
components.port = matches[5];
}
} else {
components.scheme = matches[1] || void 0;
components.userinfo = uriString.indexOf("@") !== -1 ? matches[3] : void 0;
components.host = uriString.indexOf("//") !== -1 ? matches[4] : void 0;
components.port = parseInt(matches[5], 10);
components.path = matches[6] || "";
components.query = uriString.indexOf("?") !== -1 ? matches[7] : void 0;
components.fragment = uriString.indexOf("#") !== -1 ? matches[8] : void 0;
if (isNaN(components.port)) {
components.port = uriString.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? matches[4] : void 0;
}
}
if (components.host) {
components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);
}
if (components.scheme === void 0 && components.userinfo === void 0 && components.host === void 0 && components.port === void 0 && !components.path && components.query === void 0) {
components.reference = "same-document";
} else if (components.scheme === void 0) {
components.reference = "relative";
} else if (components.fragment === void 0) {
components.reference = "absolute";
} else {
components.reference = "uri";
}
if (options.reference && options.reference !== "suffix" && options.reference !== components.reference) {
components.error = components.error || "URI is not a " + options.reference + " reference.";
}
var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {
try {
components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());
} catch (e) {
components.error = components.error || "Host's domain name can not be converted to ASCII via punycode: " + e;
}
}
_normalizeComponentEncoding(components, URI_PROTOCOL);
} else {
_normalizeComponentEncoding(components, protocol);
}
if (schemeHandler && schemeHandler.parse) {
schemeHandler.parse(components, options);
}
} else {
components.error = components.error || "URI can not be parsed.";
}
return components;
}
function _recomposeAuthority(components, options) {
var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;
var uriTokens = [];
if (components.userinfo !== void 0) {
uriTokens.push(components.userinfo);
uriTokens.push("@");
}
if (components.host !== void 0) {
uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function(_, $1, $2) {
return "[" + $1 + ($2 ? "%25" + $2 : "") + "]";
}));
}
if (typeof components.port === "number" || typeof components.port === "string") {
uriTokens.push(":");
uriTokens.push(String(components.port));
}
return uriTokens.length ? uriTokens.join("") : void 0;
}
var RDS1 = /^\.\.?\//;
var RDS2 = /^\/\.(\/|$)/;
var RDS3 = /^\/\.\.(\/|$)/;
var RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/;
function removeDotSegments(input) {
var output = [];
while (input.length) {
if (input.match(RDS1)) {
input = input.replace(RDS1, "");
} else if (input.match(RDS2)) {
input = input.replace(RDS2, "/");
} else if (input.match(RDS3)) {
input = input.replace(RDS3, "/");
output.pop();
} else if (input === "." || input === "..") {
input = "";
} else {
var im = input.match(RDS5);
if (im) {
var s = im[0];
input = input.slice(s.length);
output.push(s);
} else {
throw new Error("Unexpected dot segment condition");
}
}
}
return output.join("");
}
function serialize(components) {
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;
var uriTokens = [];
var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);
if (components.host) {
if (protocol.IPV6ADDRESS.test(components.host)) {
} else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {
try {
components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);
} catch (e) {
components.error = components.error || "Host's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e;
}
}
}
_normalizeComponentEncoding(components, protocol);
if (options.reference !== "suffix" && components.scheme) {
uriTokens.push(components.scheme);
uriTokens.push(":");
}
var authority = _recomposeAuthority(components, options);
if (authority !== void 0) {
if (options.reference !== "suffix") {
uriTokens.push("//");
}
uriTokens.push(authority);
if (components.path && components.path.charAt(0) !== "/") {
uriTokens.push("/");
}
}
if (components.path !== void 0) {
var s = components.path;
if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
s = removeDotSegments(s);
}
if (authority === void 0) {
s = s.replace(/^\/\//, "/%2F");
}
uriTokens.push(s);
}
if (components.query !== void 0) {
uriTokens.push("?");
uriTokens.push(components.query);
}
if (components.fragment !== void 0) {
uriTokens.push("#");
uriTokens.push(components.fragment);
}
return uriTokens.join("");
}
function resolveComponents(base2, relative) {
var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
var skipNormalization = arguments[3];
var target = {};
if (!skipNormalization) {
base2 = parse(serialize(base2, options), options);
relative = parse(serialize(relative, options), options);
}
options = options || {};
if (!options.tolerant && relative.scheme) {
target.scheme = relative.scheme;
target.userinfo = relative.userinfo;
target.host = relative.host;
target.port = relative.port;
target.path = removeDotSegments(relative.path || "");
target.query = relative.query;
} else {
if (relative.userinfo !== void 0 || relative.host !== void 0 || relative.port !== void 0) {
target.userinfo = relative.userinfo;
target.host = relative.host;
target.port = relative.port;
target.path = removeDotSegments(relative.path || "");
target.query = relative.query;
} else {
if (!relative.path) {
target.path = base2.path;
if (relative.query !== void 0) {
target.query = relative.query;
} else {
target.query = base2.query;
}
} else {
if (relative.path.charAt(0) === "/") {
target.path = removeDotSegments(relative.path);
} else {
if ((base2.userinfo !== void 0 || base2.host !== void 0 || base2.port !== void 0) && !base2.path) {
target.path = "/" + relative.path;
} else if (!base2.path) {
target.path = relative.path;
} else {
target.path = base2.path.slice(0, base2.path.lastIndexOf("/") + 1) + relative.path;
}
target.path = removeDotSegments(target.path);
}
target.query = relative.query;
}
target.userinfo = base2.userinfo;
target.host = base2.host;
target.port = base2.port;
}
target.scheme = base2.scheme;
}
target.fragment = relative.fragment;
return target;
}
function resolve(baseURI, relativeURI, options) {
var schemelessOptions = assign({ scheme: "null" }, options);
return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);
}
function normalize(uri, options) {
if (typeof uri === "string") {
uri = serialize(parse(uri, options), options);
} else if (typeOf(uri) === "object") {
uri = parse(serialize(uri, options), options);
}
return uri;
}
function equal(uriA, uriB, options) {
if (typeof uriA === "string") {
uriA = serialize(parse(uriA, options), options);
} else if (typeOf(uriA) === "object") {
uriA = serialize(uriA, options);
}
if (typeof uriB === "string") {
uriB = serialize(parse(uriB, options), options);
} else if (typeOf(uriB) === "object") {
uriB = serialize(uriB, options);
}
return uriA === uriB;
}
function escapeComponent(str, options) {
return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);
}
function unescapeComponent(str, options) {
return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);
}
var handler = {
scheme: "http",
domainHost: true,
parse: function parse2(components, options) {
if (!components.host) {
components.error = components.error || "HTTP URIs must have a host.";
}
return components;
},
serialize: function serialize2(components, options) {
var secure = String(components.scheme).toLowerCase() === "https";
if (components.port === (secure ? 443 : 80) || components.port === "") {
components.port = void 0;
}
if (!components.path) {
components.path = "/";
}
return components;
}
};
var handler$1 = {
scheme: "https",
domainHost: handler.domainHost,
parse: handler.parse,
serialize: handler.serialize
};
function isSecure(wsComponents) {
return typeof wsComponents.secure === "boolean" ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss";
}
var handler$2 = {
scheme: "ws",
domainHost: true,
parse: function parse2(components, options) {
var wsComponents = components;
wsComponents.secure = isSecure(wsComponents);
wsComponents.resourceName = (wsComponents.path || "/") + (wsComponents.query ? "?" + wsComponents.query : "");
wsComponents.path = void 0;
wsComponents.query = void 0;
return wsComponents;
},
serialize: function serialize2(wsComponents, options) {
if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") {
wsComponents.port = void 0;
}
if (typeof wsComponents.secure === "boolean") {
wsComponents.scheme = wsComponents.secure ? "wss" : "ws";
wsComponents.secure = void 0;
}
if (wsComponents.resourceName) {
var _wsComponents$resourc = wsComponents.resourceName.split("?"), _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2), path = _wsComponents$resourc2[0], query = _wsComponents$resourc2[1];
wsComponents.path = path && path !== "/" ? path : void 0;
wsComponents.query = query;
wsComponents.resourceName = void 0;
}
wsComponents.fragment = void 0;
return wsComponents;
}
};
var handler$3 = {
scheme: "wss",
domainHost: handler$2.domainHost,
parse: handler$2.parse,
serialize: handler$2.serialize
};
var O = {};
var isIRI = true;
var UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + (isIRI ? "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" : "") + "]";
var HEXDIG$$ = "[0-9A-Fa-f]";
var PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$));
var ATEXT$$ = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]";
var QTEXT$$ = "[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]";
var VCHAR$$ = merge2(QTEXT$$, '[\\"\\\\]');
var SOME_DELIMS$$ = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]";
var UNRESERVED = new RegExp(UNRESERVED$$, "g");
var PCT_ENCODED = new RegExp(PCT_ENCODED$, "g");
var NOT_LOCAL_PART = new RegExp(merge2("[^]", ATEXT$$, "[\\.]", '[\\"]', VCHAR$$), "g");
var NOT_HFNAME = new RegExp(merge2("[^]", UNRESERVED$$, SOME_DELIMS$$), "g");
var NOT_HFVALUE = NOT_HFNAME;
function decodeUnreserved(str) {
var decStr = pctDecChars(str);
return !decStr.match(UNRESERVED) ? str : decStr;
}
var handler$4 = {
scheme: "mailto",
parse: function parse$$1(components, options) {
var mailtoComponents = components;
var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(",") : [];
mailtoComponents.path = void 0;
if (mailtoComponents.query) {
var unknownHeaders = false;
var headers = {};
var hfields = mailtoComponents.query.split("&");
for (var x = 0, xl = hfields.length; x < xl; ++x) {
var hfield = hfields[x].split("=");
switch (hfield[0]) {
case "to":
var toAddrs = hfield[1].split(",");
for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {
to.push(toAddrs[_x]);
}
break;
case "subject":
mailtoComponents.subject = unescapeComponent(hfield[1], options);
break;
case "body":
mailtoComponents.body = unescapeComponent(hfield[1], options);
break;
default:
unknownHeaders = true;
headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);
break;
}
}
if (unknownHeaders) mailtoComponents.headers = headers;
}
mailtoComponents.query = void 0;
for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {
var addr = to[_x2].split("@");
addr[0] = unescapeComponent(addr[0]);
if (!options.unicodeSupport) {
try {
addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());
} catch (e) {
mailtoComponents.error = mailtoComponents.error || "Email address's domain name can not be converted to ASCII via punycode: " + e;
}
} else {
addr[1] = unescapeComponent(addr[1], options).toLowerCase();
}
to[_x2] = addr.join("@");
}
return mailtoComponents;
},
serialize: function serialize$$1(mailtoComponents, options) {
var components = mailtoComponents;
var to = toArray2(mailtoComponents.to);
if (to) {
for (var x = 0, xl = to.length; x < xl; ++x) {
var toAddr = String(to[x]);
var atIdx = toAddr.lastIndexOf("@");
var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);
var domain = toAddr.slice(atIdx + 1);
try {
domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);
} catch (e) {
components.error = components.error || "Email address's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e;
}
to[x] = localPart + "@" + domain;
}
components.path = to.join(",");
}
var headers = mailtoComponents.headers = mailtoComponents.headers || {};
if (mailtoComponents.subject) headers["subject"] = mailtoComponents.subject;
if (mailtoComponents.body) headers["body"] = mailtoComponents.body;
var fields = [];
for (var name in headers) {
if (headers[name] !== O[name]) {
fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + "=" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));
}
}
if (fields.length) {
components.query = fields.join("&");
}
return components;
}
};
var URN_PARSE = /^([^\:]+)\:(.*)/;
var handler$5 = {
scheme: "urn",
parse: function parse$$1(components, options) {
var matches = components.path && components.path.match(URN_PARSE);
var urnComponents = components;
if (matches) {
var scheme = options.scheme || urnComponents.scheme || "urn";
var nid = matches[1].toLowerCase();
var nss = matches[2];
var urnScheme = scheme + ":" + (options.nid || nid);
var schemeHandler = SCHEMES[urnScheme];
urnComponents.nid = nid;
urnComponents.nss = nss;
urnComponents.path = void 0;
if (schemeHandler) {
urnComponents = schemeHandler.parse(urnComponents, options);
}
} else {
urnComponents.error = urnComponents.error || "URN can not be parsed.";
}
return urnComponents;
},
serialize: function serialize$$1(urnComponents, options) {
var scheme = options.scheme || urnComponents.scheme || "urn";
var nid = urnComponents.nid;
var urnScheme = scheme + ":" + (options.nid || nid);
var schemeHandler = SCHEMES[urnScheme];
if (schemeHandler) {
urnComponents = schemeHandler.serialize(urnComponents, options);
}
var uriComponents = urnComponents;
var nss = urnComponents.nss;
uriComponents.path = (nid || options.nid) + ":" + nss;
return uriComponents;
}
};
var UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/;
var handler$6 = {
scheme: "urn:uuid",
parse: function parse2(urnComponents, options) {
var uuidComponents = urnComponents;
uuidComponents.uuid = uuidComponents.nss;
uuidComponents.nss = void 0;
if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {
uuidComponents.error = uuidComponents.error || "UUID is not valid.";
}
return uuidComponents;
},
serialize: function serialize2(uuidComponents, options) {
var urnComponents = uuidComponents;
urnComponents.nss = (uuidComponents.uuid || "").toLowerCase();
return urnComponents;
}
};
SCHEMES[handler.scheme] = handler;
SCHEMES[handler$1.scheme] = handler$1;
SCHEMES[handler$2.scheme] = handler$2;
SCHEMES[handler$3.scheme] = handler$3;
SCHEMES[handler$4.scheme] = handler$4;
SCHEMES[handler$5.scheme] = handler$5;
SCHEMES[handler$6.scheme] = handler$6;
exports3.SCHEMES = SCHEMES;
exports3.pctEncChar = pctEncChar;
exports3.pctDecChars = pctDecChars;
exports3.parse = parse;
exports3.removeDotSegments = removeDotSegments;
exports3.serialize = serialize;
exports3.resolveComponents = resolveComponents;
exports3.resolve = resolve;
exports3.normalize = normalize;
exports3.equal = equal;
exports3.escapeComponent = escapeComponent;
exports3.unescapeComponent = unescapeComponent;
Object.defineProperty(exports3, "__esModule", { value: true });
}));
}
});
// node_modules/fast-deep-equal/index.js
var require_fast_deep_equal = __commonJS({
"node_modules/fast-deep-equal/index.js"(exports2, module2) {
"use strict";
module2.exports = function equal(a, b) {
if (a === b) return true;
if (a && b && typeof a == "object" && typeof b == "object") {
if (a.constructor !== b.constructor) return false;
var length, i, keys;
if (Array.isArray(a)) {
length = a.length;
if (length != b.length) return false;
for (i = length; i-- !== 0; )
if (!equal(a[i], b[i])) return false;
return true;
}
if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
keys = Object.keys(a);
length = keys.length;
if (length !== Object.keys(b).length) return false;
for (i = length; i-- !== 0; )
if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
for (i = length; i-- !== 0; ) {
var key = keys[i];
if (!equal(a[key], b[key])) return false;
}
return true;
}
return a !== a && b !== b;
};
}
});
// node_modules/ajv/lib/compile/ucs2length.js
var require_ucs2length = __commonJS({
"node_modules/ajv/lib/compile/ucs2length.js"(exports2, module2) {
"use strict";
module2.exports = function ucs2length(str) {
var length = 0, len = str.length, pos = 0, value;
while (pos < len) {
length++;
value = str.charCodeAt(pos++);
if (value >= 55296 && value <= 56319 && pos < len) {
value = str.charCodeAt(pos);
if ((value & 64512) == 56320) pos++;
}
}
return length;
};
}
});
// node_modules/ajv/lib/compile/util.js
var require_util = __commonJS({
"node_modules/ajv/lib/compile/util.js"(exports2, module2) {
"use strict";
module2.exports = {
copy,
checkDataType,
checkDataTypes,
coerceToTypes,
toHash,
getProperty,
escapeQuotes,
equal: require_fast_deep_equal(),
ucs2length: require_ucs2length(),
varOccurences,
varReplace,
schemaHasRules,
schemaHasRulesExcept,
schemaUnknownRules,
toQuotedString,
getPathExpr,
getPath,
getData,
unescapeFragment,
unescapeJsonPointer,
escapeFragment,
escapeJsonPointer
};
function copy(o, to) {
to = to || {};
for (var key in o) to[key] = o[key];
return to;
}
function checkDataType(dataType, data, strictNumbers, negate) {
var EQUAL = negate ? " !== " : " === ", AND = negate ? " || " : " && ", OK3 = negate ? "!" : "", NOT = negate ? "" : "!";
switch (dataType) {
case "null":
return data + EQUAL + "null";
case "array":
return OK3 + "Array.isArray(" + data + ")";
case "object":
return "(" + OK3 + data + AND + "typeof " + data + EQUAL + '"object"' + AND + NOT + "Array.isArray(" + data + "))";
case "integer":
return "(typeof " + data + EQUAL + '"number"' + AND + NOT + "(" + data + " % 1)" + AND + data + EQUAL + data + (strictNumbers ? AND + OK3 + "isFinite(" + data + ")" : "") + ")";
case "number":
return "(typeof " + data + EQUAL + '"' + dataType + '"' + (strictNumbers ? AND + OK3 + "isFinite(" + data + ")" : "") + ")";
default:
return "typeof " + data + EQUAL + '"' + dataType + '"';
}
}
function checkDataTypes(dataTypes, data, strictNumbers) {
switch (dataTypes.length) {
case 1:
return checkDataType(dataTypes[0], data, strictNumbers, true);
default:
var code = "";
var types = toHash(dataTypes);
if (types.array && types.object) {
code = types.null ? "(" : "(!" + data + " || ";
code += "typeof " + data + ' !== "object")';
delete types.null;
delete types.array;
delete types.object;
}
if (types.number) delete types.integer;
for (var t in types)
code += (code ? " && " : "") + checkDataType(t, data, strictNumbers, true);
return code;
}
}
var COERCE_TO_TYPES = toHash(["string", "number", "integer", "boolean", "null"]);
function coerceToTypes(optionCoerceTypes, dataTypes) {
if (Array.isArray(dataTypes)) {
var types = [];
for (var i = 0; i < dataTypes.length; i++) {
var t = dataTypes[i];
if (COERCE_TO_TYPES[t]) types[types.length] = t;
else if (optionCoerceTypes === "array" && t === "array") types[types.length] = t;
}
if (types.length) return types;
} else if (COERCE_TO_TYPES[dataTypes]) {
return [dataTypes];
} else if (optionCoerceTypes === "array" && dataTypes === "array") {
return ["array"];
}
}
function toHash(arr) {
var hash = {};
for (var i = 0; i < arr.length; i++) hash[arr[i]] = true;
return hash;
}
var IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;
var SINGLE_QUOTE = /'|\\/g;
function getProperty(key) {
return typeof key == "number" ? "[" + key + "]" : IDENTIFIER.test(key) ? "." + key : "['" + escapeQuotes(key) + "']";
}
function escapeQuotes(str) {
return str.replace(SINGLE_QUOTE, "\\$&").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\f/g, "\\f").replace(/\t/g, "\\t");
}
function varOccurences(str, dataVar) {
dataVar += "[^0-9]";
var matches = str.match(new RegExp(dataVar, "g"));
return matches ? matches.length : 0;
}
function varReplace(str, dataVar, expr) {
dataVar += "([^0-9])";
expr = expr.replace(/\$/g, "$$$$");
return str.replace(new RegExp(dataVar, "g"), expr + "$1");
}
function schemaHasRules(schema, rules) {
if (typeof schema == "boolean") return !schema;
for (var key in schema) if (rules[key]) return true;
}
function schemaHasRulesExcept(schema, rules, exceptKeyword) {
if (typeof schema == "boolean") return !schema && exceptKeyword != "not";
for (var key in schema) if (key != exceptKeyword && rules[key]) return true;
}
function schemaUnknownRules(schema, rules) {
if (typeof schema == "boolean") return;
for (var key in schema) if (!rules[key]) return key;
}
function toQuotedString(str) {
return "'" + escapeQuotes(str) + "'";
}
function getPathExpr(currentPath, expr, jsonPointers, isNumber2) {
var path = jsonPointers ? "'/' + " + expr + (isNumber2 ? "" : ".replace(/~/g, '~0').replace(/\\//g, '~1')") : isNumber2 ? "'[' + " + expr + " + ']'" : "'[\\'' + " + expr + " + '\\']'";
return joinPaths(currentPath, path);
}
function getPath(currentPath, prop, jsonPointers) {
var path = jsonPointers ? toQuotedString("/" + escapeJsonPointer(prop)) : toQuotedString(getProperty(prop));
return joinPaths(currentPath, path);
}
var JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/;
var RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;
function getData($data, lvl, paths) {
var up, jsonPointer, data, matches;
if ($data === "") return "rootData";
if ($data[0] == "/") {
if (!JSON_POINTER.test($data)) throw new Error("Invalid JSON-pointer: " + $data);
jsonPointer = $data;
data = "rootData";
} else {
matches = $data.match(RELATIVE_JSON_POINTER);
if (!matches) throw new Error("Invalid JSON-pointer: " + $data);
up = +matches[1];
jsonPointer = matches[2];
if (jsonPointer == "#") {
if (up >= lvl) throw new Error("Cannot access property/index " + up + " levels up, current level is " + lvl);
return paths[lvl - up];
}
if (up > lvl) throw new Error("Cannot access data " + up + " levels up, current level is " + lvl);
data = "data" + (lvl - up || "");
if (!jsonPointer) return data;
}
var expr = data;
var segments = jsonPointer.split("/");
for (var i = 0; i < segments.length; i++) {
var segment = segments[i];
if (segment) {
data += getProperty(unescapeJsonPointer(segment));
expr += " && " + data;
}
}
return expr;
}
function joinPaths(a, b) {
if (a == '""') return b;
return (a + " + " + b).replace(/([^\\])' \+ '/g, "$1");
}
function unescapeFragment(str) {
return unescapeJsonPointer(decodeURIComponent(str));
}
function escapeFragment(str) {
return encodeURIComponent(escapeJsonPointer(str));
}
function escapeJsonPointer(str) {
return str.replace(/~/g, "~0").replace(/\//g, "~1");
}
function unescapeJsonPointer(str) {
return str.replace(/~1/g, "/").replace(/~0/g, "~");
}
}
});
// node_modules/ajv/lib/compile/schema_obj.js
var require_schema_obj = __commonJS({
"node_modules/ajv/lib/compile/schema_obj.js"(exports2, module2) {
"use strict";
var util5 = require_util();
module2.exports = SchemaObject;
function SchemaObject(obj) {
util5.copy(obj, this);
}
}
});
// node_modules/json-schema-traverse/index.js
var require_json_schema_traverse = __commonJS({
"node_modules/json-schema-traverse/index.js"(exports2, module2) {
"use strict";
var traverse = module2.exports = function(schema, opts, cb) {
if (typeof opts == "function") {
cb = opts;
opts = {};
}
cb = opts.cb || cb;
var pre = typeof cb == "function" ? cb : cb.pre || function() {
};
var post = cb.post || function() {
};
_traverse(opts, pre, post, schema, "", schema);
};
traverse.keywords = {
additionalItems: true,
items: true,
contains: true,
additionalProperties: true,
propertyNames: true,
not: true
};
traverse.arrayKeywords = {
items: true,
allOf: true,
anyOf: true,
oneOf: true
};
traverse.propsKeywords = {
definitions: true,
properties: true,
patternProperties: true,
dependencies: true
};
traverse.skipKeywords = {
default: true,
enum: true,
const: true,
required: true,
maximum: true,
minimum: true,
exclusiveMaximum: true,
exclusiveMinimum: true,
multipleOf: true,
maxLength: true,
minLength: true,
pattern: true,
format: true,
maxItems: true,
minItems: true,
uniqueItems: true,
maxProperties: true,
minProperties: true
};
function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {
if (schema && typeof schema == "object" && !Array.isArray(schema)) {
pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);
for (var key in schema) {
var sch = schema[key];
if (Array.isArray(sch)) {
if (key in traverse.arrayKeywords) {
for (var i = 0; i < sch.length; i++)
_traverse(opts, pre, post, sch[i], jsonPtr + "/" + key + "/" + i, rootSchema, jsonPtr, key, schema, i);
}
} else if (key in traverse.propsKeywords) {
if (sch && typeof sch == "object") {
for (var prop in sch)
_traverse(opts, pre, post, sch[prop], jsonPtr + "/" + key + "/" + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);
}
} else if (key in traverse.keywords || opts.allKeys && !(key in traverse.skipKeywords)) {
_traverse(opts, pre, post, sch, jsonPtr + "/" + key, rootSchema, jsonPtr, key, schema);
}
}
post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);
}
}
function escapeJsonPtr(str) {
return str.replace(/~/g, "~0").replace(/\//g, "~1");
}
}
});
// node_modules/ajv/lib/compile/resolve.js
var require_resolve = __commonJS({
"node_modules/ajv/lib/compile/resolve.js"(exports2, module2) {
"use strict";
var URI = require_uri_all();
var equal = require_fast_deep_equal();
var util5 = require_util();
var SchemaObject = require_schema_obj();
var traverse = require_json_schema_traverse();
module2.exports = resolve;
resolve.normalizeId = normalizeId;
resolve.fullPath = getFullPath;
resolve.url = resolveUrl;
resolve.ids = resolveIds;
resolve.inlineRef = inlineRef;
resolve.schema = resolveSchema;
function resolve(compile, root, ref) {
var refVal = this._refs[ref];
if (typeof refVal == "string") {
if (this._refs[refVal]) refVal = this._refs[refVal];
else return resolve.call(this, compile, root, refVal);
}
refVal = refVal || this._schemas[ref];
if (refVal instanceof SchemaObject) {
return inlineRef(refVal.schema, this._opts.inlineRefs) ? refVal.schema : refVal.validate || this._compile(refVal);
}
var res = resolveSchema.call(this, root, ref);
var schema, v, baseId;
if (res) {
schema = res.schema;
root = res.root;
baseId = res.baseId;
}
if (schema instanceof SchemaObject) {
v = schema.validate || compile.call(this, schema.schema, root, void 0, baseId);
} else if (schema !== void 0) {
v = inlineRef(schema, this._opts.inlineRefs) ? schema : compile.call(this, schema, root, void 0, baseId);
}
return v;
}
function resolveSchema(root, ref) {
var p = URI.parse(ref), refPath = _getFullPath(p), baseId = getFullPath(this._getId(root.schema));
if (Object.keys(root.schema).length === 0 || refPath !== baseId) {
var id = normalizeId(refPath);
var refVal = this._refs[id];
if (typeof refVal == "string") {
return resolveRecursive.call(this, root, refVal, p);
} else if (refVal instanceof SchemaObject) {
if (!refVal.validate) this._compile(refVal);
root = refVal;
} else {
refVal = this._schemas[id];
if (refVal instanceof SchemaObject) {
if (!refVal.validate) this._compile(refVal);
if (id == normalizeId(ref))
return { schema: refVal, root, baseId };
root = refVal;
} else {
return;
}
}
if (!root.schema) return;
baseId = getFullPath(this._getId(root.schema));
}
return getJsonPointer.call(this, p, baseId, root.schema, root);
}
function resolveRecursive(root, ref, parsedRef) {
var res = resolveSchema.call(this, root, ref);
if (res) {
var schema = res.schema;
var baseId = res.baseId;
root = res.root;
var id = this._getId(schema);
if (id) baseId = resolveUrl(baseId, id);
return getJsonPointer.call(this, parsedRef, baseId, schema, root);
}
}
var PREVENT_SCOPE_CHANGE = util5.toHash(["properties", "patternProperties", "enum", "dependencies", "definitions"]);
function getJsonPointer(parsedRef, baseId, schema, root) {
parsedRef.fragment = parsedRef.fragment || "";
if (parsedRef.fragment.slice(0, 1) != "/") return;
var parts = parsedRef.fragment.split("/");
for (var i = 1; i < parts.length; i++) {
var part = parts[i];
if (part) {
part = util5.unescapeFragment(part);
schema = schema[part];
if (schema === void 0) break;
var id;
if (!PREVENT_SCOPE_CHANGE[part]) {
id = this._getId(schema);
if (id) baseId = resolveUrl(baseId, id);
if (schema.$ref) {
var $ref = resolveUrl(baseId, schema.$ref);
var res = resolveSchema.call(this, root, $ref);
if (res) {
schema = res.schema;
root = res.root;
baseId = res.baseId;
}
}
}
}
}
if (schema !== void 0 && schema !== root.schema)
return { schema, root, baseId };
}
var SIMPLE_INLINED = util5.toHash([
"type",
"format",
"pattern",
"maxLength",
"minLength",
"maxProperties",
"minProperties",
"maxItems",
"minItems",
"maximum",
"minimum",
"uniqueItems",
"multipleOf",
"required",
"enum"
]);
function inlineRef(schema, limit) {
if (limit === false) return false;
if (limit === void 0 || limit === true) return checkNoRef(schema);
else if (limit) return countKeys(schema) <= limit;
}
function checkNoRef(schema) {
var item;
if (Array.isArray(schema)) {
for (var i = 0; i < schema.length; i++) {
item = schema[i];
if (typeof item == "object" && !checkNoRef(item)) return false;
}
} else {
for (var key in schema) {
if (key == "$ref") return false;
item = schema[key];
if (typeof item == "object" && !checkNoRef(item)) return false;
}
}
return true;
}
function countKeys(schema) {
var count = 0, item;
if (Array.isArray(schema)) {
for (var i = 0; i < schema.length; i++) {
item = schema[i];
if (typeof item == "object") count += countKeys(item);
if (count == Infinity) return Infinity;
}
} else {
for (var key in schema) {
if (key == "$ref") return Infinity;
if (SIMPLE_INLINED[key]) {
count++;
} else {
item = schema[key];
if (typeof item == "object") count += countKeys(item) + 1;
if (count == Infinity) return Infinity;
}
}
}
return count;
}
function getFullPath(id, normalize) {
if (normalize !== false) id = normalizeId(id);
var p = URI.parse(id);
return _getFullPath(p);
}
function _getFullPath(p) {
return URI.serialize(p).split("#")[0] + "#";
}
var TRAILING_SLASH_HASH = /#\/?$/;
function normalizeId(id) {
return id ? id.replace(TRAILING_SLASH_HASH, "") : "";
}
function resolveUrl(baseId, id) {
id = normalizeId(id);
return URI.resolve(baseId, id);
}
function resolveIds(schema) {
var schemaId = normalizeId(this._getId(schema));
var baseIds = { "": schemaId };
var fullPaths = { "": getFullPath(schemaId, false) };
var localRefs = {};
var self2 = this;
traverse(schema, { allKeys: true }, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {
if (jsonPtr === "") return;
var id = self2._getId(sch);
var baseId = baseIds[parentJsonPtr];
var fullPath = fullPaths[parentJsonPtr] + "/" + parentKeyword;
if (keyIndex !== void 0)
fullPath += "/" + (typeof keyIndex == "number" ? keyIndex : util5.escapeFragment(keyIndex));
if (typeof id == "string") {
id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);
var refVal = self2._refs[id];
if (typeof refVal == "string") refVal = self2._refs[refVal];
if (refVal && refVal.schema) {
if (!equal(sch, refVal.schema))
throw new Error('id "' + id + '" resolves to more than one schema');
} else if (id != normalizeId(fullPath)) {
if (id[0] == "#") {
if (localRefs[id] && !equal(sch, localRefs[id]))
throw new Error('id "' + id + '" resolves to more than one schema');
localRefs[id] = sch;
} else {
self2._refs[id] = fullPath;
}
}
}
baseIds[jsonPtr] = baseId;
fullPaths[jsonPtr] = fullPath;
});
return localRefs;
}
}
});
// node_modules/ajv/lib/compile/error_classes.js
var require_error_classes = __commonJS({
"node_modules/ajv/lib/compile/error_classes.js"(exports2, module2) {
"use strict";
var resolve = require_resolve();
module2.exports = {
Validation: errorSubclass(ValidationError),
MissingRef: errorSubclass(MissingRefError)
};
function ValidationError(errors) {
this.message = "validation failed";
this.errors = errors;
this.ajv = this.validation = true;
}
MissingRefError.message = function(baseId, ref) {
return "can't resolve reference " + ref + " from id " + baseId;
};
function MissingRefError(baseId, ref, message) {
this.message = message || MissingRefError.message(baseId, ref);
this.missingRef = resolve.url(baseId, ref);
this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));
}
function errorSubclass(Subclass) {
Subclass.prototype = Object.create(Error.prototype);
Subclass.prototype.constructor = Subclass;
return Subclass;
}
}
});
// node_modules/fast-json-stable-stringify/index.js
var require_fast_json_stable_stringify = __commonJS({
"node_modules/fast-json-stable-stringify/index.js"(exports2, module2) {
"use strict";
module2.exports = function(data, opts) {
if (!opts) opts = {};
if (typeof opts === "function") opts = { cmp: opts };
var cycles = typeof opts.cycles === "boolean" ? opts.cycles : false;
var cmp = opts.cmp && /* @__PURE__ */ (function(f) {
return function(node) {
return function(a, b) {
var aobj = { key: a, value: node[a] };
var bobj = { key: b, value: node[b] };
return f(aobj, bobj);
};
};
})(opts.cmp);
var seen = [];
return (function stringify(node) {
if (node && node.toJSON && typeof node.toJSON === "function") {
node = node.toJSON();
}
if (node === void 0) return;
if (typeof node == "number") return isFinite(node) ? "" + node : "null";
if (typeof node !== "object") return JSON.stringify(node);
var i, out;
if (Array.isArray(node)) {
out = "[";
for (i = 0; i < node.length; i++) {
if (i) out += ",";
out += stringify(node[i]) || "null";
}
return out + "]";
}
if (node === null) return "null";
if (seen.indexOf(node) !== -1) {
if (cycles) return JSON.stringify("__cycle__");
throw new TypeError("Converting circular structure to JSON");
}
var seenIndex = seen.push(node) - 1;
var keys = Object.keys(node).sort(cmp && cmp(node));
out = "";
for (i = 0; i < keys.length; i++) {
var key = keys[i];
var value = stringify(node[key]);
if (!value) continue;
if (out) out += ",";
out += JSON.stringify(key) + ":" + value;
}
seen.splice(seenIndex, 1);
return "{" + out + "}";
})(data);
};
}
});
// node_modules/ajv/lib/dotjs/validate.js
var require_validate = __commonJS({
"node_modules/ajv/lib/dotjs/validate.js"(exports2, module2) {
"use strict";
module2.exports = function generate_validate(it, $keyword, $ruleType) {
var out = "";
var $async = it.schema.$async === true, $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, "$ref"), $id = it.self._getId(it.schema);
if (it.opts.strictKeywords) {
var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);
if ($unknownKwd) {
var $keywordsMsg = "unknown keyword: " + $unknownKwd;
if (it.opts.strictKeywords === "log") it.logger.warn($keywordsMsg);
else throw new Error($keywordsMsg);
}
}
if (it.isTop) {
out += " var validate = ";
if ($async) {
it.async = true;
out += "async ";
}
out += "function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ";
if ($id && (it.opts.sourceCode || it.opts.processCode)) {
out += " " + ("/*# sourceURL=" + $id + " */") + " ";
}
}
if (typeof it.schema == "boolean" || !($refKeywords || it.schema.$ref)) {
var $keyword = "false schema";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
var $data = "data" + ($dataLvl || "");
var $valid = "valid" + $lvl;
if (it.schema === false) {
if (it.isTop) {
$breakOnError = true;
} else {
out += " var " + $valid + " = false; ";
}
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: '" + ($errorKeyword || "false schema") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: {} ";
if (it.opts.messages !== false) {
out += " , message: 'boolean schema is false' ";
}
if (it.opts.verbose) {
out += " , schema: false , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
} else {
if (it.isTop) {
if ($async) {
out += " return data; ";
} else {
out += " validate.errors = null; return true; ";
}
} else {
out += " var " + $valid + " = true; ";
}
}
if (it.isTop) {
out += " }; return validate; ";
}
return out;
}
if (it.isTop) {
var $top = it.isTop, $lvl = it.level = 0, $dataLvl = it.dataLevel = 0, $data = "data";
it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));
it.baseId = it.baseId || it.rootId;
delete it.isTop;
it.dataPathArr = [""];
if (it.schema.default !== void 0 && it.opts.useDefaults && it.opts.strictDefaults) {
var $defaultMsg = "default is ignored in the schema root";
if (it.opts.strictDefaults === "log") it.logger.warn($defaultMsg);
else throw new Error($defaultMsg);
}
out += " var vErrors = null; ";
out += " var errors = 0; ";
out += " if (rootData === undefined) rootData = data; ";
} else {
var $lvl = it.level, $dataLvl = it.dataLevel, $data = "data" + ($dataLvl || "");
if ($id) it.baseId = it.resolve.url(it.baseId, $id);
if ($async && !it.async) throw new Error("async schema in sync schema");
out += " var errs_" + $lvl + " = errors;";
}
var $valid = "valid" + $lvl, $breakOnError = !it.opts.allErrors, $closingBraces1 = "", $closingBraces2 = "";
var $errorKeyword;
var $typeSchema = it.schema.type, $typeIsArray = Array.isArray($typeSchema);
if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {
if ($typeIsArray) {
if ($typeSchema.indexOf("null") == -1) $typeSchema = $typeSchema.concat("null");
} else if ($typeSchema != "null") {
$typeSchema = [$typeSchema, "null"];
$typeIsArray = true;
}
}
if ($typeIsArray && $typeSchema.length == 1) {
$typeSchema = $typeSchema[0];
$typeIsArray = false;
}
if (it.schema.$ref && $refKeywords) {
if (it.opts.extendRefs == "fail") {
throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)');
} else if (it.opts.extendRefs !== true) {
$refKeywords = false;
it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
}
}
if (it.schema.$comment && it.opts.$comment) {
out += " " + it.RULES.all.$comment.code(it, "$comment");
}
if ($typeSchema) {
if (it.opts.coerceTypes) {
var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);
}
var $rulesGroup = it.RULES.types[$typeSchema];
if ($coerceToTypes || $typeIsArray || $rulesGroup === true || $rulesGroup && !$shouldUseGroup($rulesGroup)) {
var $schemaPath = it.schemaPath + ".type", $errSchemaPath = it.errSchemaPath + "/type";
var $schemaPath = it.schemaPath + ".type", $errSchemaPath = it.errSchemaPath + "/type", $method = $typeIsArray ? "checkDataTypes" : "checkDataType";
out += " if (" + it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true) + ") { ";
if ($coerceToTypes) {
var $dataType = "dataType" + $lvl, $coerced = "coerced" + $lvl;
out += " var " + $dataType + " = typeof " + $data + "; var " + $coerced + " = undefined; ";
if (it.opts.coerceTypes == "array") {
out += " if (" + $dataType + " == 'object' && Array.isArray(" + $data + ") && " + $data + ".length == 1) { " + $data + " = " + $data + "[0]; " + $dataType + " = typeof " + $data + "; if (" + it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers) + ") " + $coerced + " = " + $data + "; } ";
}
out += " if (" + $coerced + " !== undefined) ; ";
var arr1 = $coerceToTypes;
if (arr1) {
var $type, $i = -1, l1 = arr1.length - 1;
while ($i < l1) {
$type = arr1[$i += 1];
if ($type == "string") {
out += " else if (" + $dataType + " == 'number' || " + $dataType + " == 'boolean') " + $coerced + " = '' + " + $data + "; else if (" + $data + " === null) " + $coerced + " = ''; ";
} else if ($type == "number" || $type == "integer") {
out += " else if (" + $dataType + " == 'boolean' || " + $data + " === null || (" + $dataType + " == 'string' && " + $data + " && " + $data + " == +" + $data + " ";
if ($type == "integer") {
out += " && !(" + $data + " % 1)";
}
out += ")) " + $coerced + " = +" + $data + "; ";
} else if ($type == "boolean") {
out += " else if (" + $data + " === 'false' || " + $data + " === 0 || " + $data + " === null) " + $coerced + " = false; else if (" + $data + " === 'true' || " + $data + " === 1) " + $coerced + " = true; ";
} else if ($type == "null") {
out += " else if (" + $data + " === '' || " + $data + " === 0 || " + $data + " === false) " + $coerced + " = null; ";
} else if (it.opts.coerceTypes == "array" && $type == "array") {
out += " else if (" + $dataType + " == 'string' || " + $dataType + " == 'number' || " + $dataType + " == 'boolean' || " + $data + " == null) " + $coerced + " = [" + $data + "]; ";
}
}
}
out += " else { ";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: '" + ($errorKeyword || "type") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { type: '";
if ($typeIsArray) {
out += "" + $typeSchema.join(",");
} else {
out += "" + $typeSchema;
}
out += "' } ";
if (it.opts.messages !== false) {
out += " , message: 'should be ";
if ($typeIsArray) {
out += "" + $typeSchema.join(",");
} else {
out += "" + $typeSchema;
}
out += "' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " } if (" + $coerced + " !== undefined) { ";
var $parentData = $dataLvl ? "data" + ($dataLvl - 1 || "") : "parentData", $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : "parentDataProperty";
out += " " + $data + " = " + $coerced + "; ";
if (!$dataLvl) {
out += "if (" + $parentData + " !== undefined)";
}
out += " " + $parentData + "[" + $parentDataProperty + "] = " + $coerced + "; } ";
} else {
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: '" + ($errorKeyword || "type") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { type: '";
if ($typeIsArray) {
out += "" + $typeSchema.join(",");
} else {
out += "" + $typeSchema;
}
out += "' } ";
if (it.opts.messages !== false) {
out += " , message: 'should be ";
if ($typeIsArray) {
out += "" + $typeSchema.join(",");
} else {
out += "" + $typeSchema;
}
out += "' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
}
out += " } ";
}
}
if (it.schema.$ref && !$refKeywords) {
out += " " + it.RULES.all.$ref.code(it, "$ref") + " ";
if ($breakOnError) {
out += " } if (errors === ";
if ($top) {
out += "0";
} else {
out += "errs_" + $lvl;
}
out += ") { ";
$closingBraces2 += "}";
}
} else {
var arr2 = it.RULES;
if (arr2) {
var $rulesGroup, i2 = -1, l2 = arr2.length - 1;
while (i2 < l2) {
$rulesGroup = arr2[i2 += 1];
if ($shouldUseGroup($rulesGroup)) {
if ($rulesGroup.type) {
out += " if (" + it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers) + ") { ";
}
if (it.opts.useDefaults) {
if ($rulesGroup.type == "object" && it.schema.properties) {
var $schema = it.schema.properties, $schemaKeys = Object.keys($schema);
var arr3 = $schemaKeys;
if (arr3) {
var $propertyKey, i3 = -1, l3 = arr3.length - 1;
while (i3 < l3) {
$propertyKey = arr3[i3 += 1];
var $sch = $schema[$propertyKey];
if ($sch.default !== void 0) {
var $passData = $data + it.util.getProperty($propertyKey);
if (it.compositeRule) {
if (it.opts.strictDefaults) {
var $defaultMsg = "default is ignored for: " + $passData;
if (it.opts.strictDefaults === "log") it.logger.warn($defaultMsg);
else throw new Error($defaultMsg);
}
} else {
out += " if (" + $passData + " === undefined ";
if (it.opts.useDefaults == "empty") {
out += " || " + $passData + " === null || " + $passData + " === '' ";
}
out += " ) " + $passData + " = ";
if (it.opts.useDefaults == "shared") {
out += " " + it.useDefault($sch.default) + " ";
} else {
out += " " + JSON.stringify($sch.default) + " ";
}
out += "; ";
}
}
}
}
} else if ($rulesGroup.type == "array" && Array.isArray(it.schema.items)) {
var arr4 = it.schema.items;
if (arr4) {
var $sch, $i = -1, l4 = arr4.length - 1;
while ($i < l4) {
$sch = arr4[$i += 1];
if ($sch.default !== void 0) {
var $passData = $data + "[" + $i + "]";
if (it.compositeRule) {
if (it.opts.strictDefaults) {
var $defaultMsg = "default is ignored for: " + $passData;
if (it.opts.strictDefaults === "log") it.logger.warn($defaultMsg);
else throw new Error($defaultMsg);
}
} else {
out += " if (" + $passData + " === undefined ";
if (it.opts.useDefaults == "empty") {
out += " || " + $passData + " === null || " + $passData + " === '' ";
}
out += " ) " + $passData + " = ";
if (it.opts.useDefaults == "shared") {
out += " " + it.useDefault($sch.default) + " ";
} else {
out += " " + JSON.stringify($sch.default) + " ";
}
out += "; ";
}
}
}
}
}
}
var arr5 = $rulesGroup.rules;
if (arr5) {
var $rule, i5 = -1, l5 = arr5.length - 1;
while (i5 < l5) {
$rule = arr5[i5 += 1];
if ($shouldUseRule($rule)) {
var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);
if ($code) {
out += " " + $code + " ";
if ($breakOnError) {
$closingBraces1 += "}";
}
}
}
}
}
if ($breakOnError) {
out += " " + $closingBraces1 + " ";
$closingBraces1 = "";
}
if ($rulesGroup.type) {
out += " } ";
if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {
out += " else { ";
var $schemaPath = it.schemaPath + ".type", $errSchemaPath = it.errSchemaPath + "/type";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: '" + ($errorKeyword || "type") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { type: '";
if ($typeIsArray) {
out += "" + $typeSchema.join(",");
} else {
out += "" + $typeSchema;
}
out += "' } ";
if (it.opts.messages !== false) {
out += " , message: 'should be ";
if ($typeIsArray) {
out += "" + $typeSchema.join(",");
} else {
out += "" + $typeSchema;
}
out += "' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " } ";
}
}
if ($breakOnError) {
out += " if (errors === ";
if ($top) {
out += "0";
} else {
out += "errs_" + $lvl;
}
out += ") { ";
$closingBraces2 += "}";
}
}
}
}
}
if ($breakOnError) {
out += " " + $closingBraces2 + " ";
}
if ($top) {
if ($async) {
out += " if (errors === 0) return data; ";
out += " else throw new ValidationError(vErrors); ";
} else {
out += " validate.errors = vErrors; ";
out += " return errors === 0; ";
}
out += " }; return validate;";
} else {
out += " var " + $valid + " = errors === errs_" + $lvl + ";";
}
function $shouldUseGroup($rulesGroup2) {
var rules = $rulesGroup2.rules;
for (var i = 0; i < rules.length; i++)
if ($shouldUseRule(rules[i])) return true;
}
function $shouldUseRule($rule2) {
return it.schema[$rule2.keyword] !== void 0 || $rule2.implements && $ruleImplementsSomeKeyword($rule2);
}
function $ruleImplementsSomeKeyword($rule2) {
var impl = $rule2.implements;
for (var i = 0; i < impl.length; i++)
if (it.schema[impl[i]] !== void 0) return true;
}
return out;
};
}
});
// node_modules/ajv/lib/compile/index.js
var require_compile = __commonJS({
"node_modules/ajv/lib/compile/index.js"(exports2, module2) {
"use strict";
var resolve = require_resolve();
var util5 = require_util();
var errorClasses = require_error_classes();
var stableStringify = require_fast_json_stable_stringify();
var validateGenerator = require_validate();
var ucs2length = util5.ucs2length;
var equal = require_fast_deep_equal();
var ValidationError = errorClasses.Validation;
module2.exports = compile;
function compile(schema, root, localRefs, baseId) {
var self2 = this, opts = this._opts, refVal = [void 0], refs = {}, patterns = [], patternsHash = {}, defaults2 = [], defaultsHash = {}, customRules = [];
root = root || { schema, refVal, refs };
var c = checkCompiling.call(this, schema, root, baseId);
var compilation = this._compilations[c.index];
if (c.compiling) return compilation.callValidate = callValidate;
var formats = this._formats;
var RULES = this.RULES;
try {
var v = localCompile(schema, root, localRefs, baseId);
compilation.validate = v;
var cv = compilation.callValidate;
if (cv) {
cv.schema = v.schema;
cv.errors = null;
cv.refs = v.refs;
cv.refVal = v.refVal;
cv.root = v.root;
cv.$async = v.$async;
if (opts.sourceCode) cv.source = v.source;
}
return v;
} finally {
endCompiling.call(this, schema, root, baseId);
}
function callValidate() {
var validate = compilation.validate;
var result = validate.apply(this, arguments);
callValidate.errors = validate.errors;
return result;
}
function localCompile(_schema, _root, localRefs2, baseId2) {
var isRoot = !_root || _root && _root.schema == _schema;
if (_root.schema != root.schema)
return compile.call(self2, _schema, _root, localRefs2, baseId2);
var $async = _schema.$async === true;
var sourceCode = validateGenerator({
isTop: true,
schema: _schema,
isRoot,
baseId: baseId2,
root: _root,
schemaPath: "",
errSchemaPath: "#",
errorPath: '""',
MissingRefError: errorClasses.MissingRef,
RULES,
validate: validateGenerator,
util: util5,
resolve,
resolveRef,
usePattern,
useDefault,
useCustomRule,
opts,
formats,
logger: self2.logger,
self: self2
});
sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode) + vars(defaults2, defaultCode) + vars(customRules, customRuleCode) + sourceCode;
if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);
var validate;
try {
var makeValidate = new Function(
"self",
"RULES",
"formats",
"root",
"refVal",
"defaults",
"customRules",
"equal",
"ucs2length",
"ValidationError",
sourceCode
);
validate = makeValidate(
self2,
RULES,
formats,
root,
refVal,
defaults2,
customRules,
equal,
ucs2length,
ValidationError
);
refVal[0] = validate;
} catch (e) {
self2.logger.error("Error compiling schema, function code:", sourceCode);
throw e;
}
validate.schema = _schema;
validate.errors = null;
validate.refs = refs;
validate.refVal = refVal;
validate.root = isRoot ? validate : _root;
if ($async) validate.$async = true;
if (opts.sourceCode === true) {
validate.source = {
code: sourceCode,
patterns,
defaults: defaults2
};
}
return validate;
}
function resolveRef(baseId2, ref, isRoot) {
ref = resolve.url(baseId2, ref);
var refIndex = refs[ref];
var _refVal, refCode;
if (refIndex !== void 0) {
_refVal = refVal[refIndex];
refCode = "refVal[" + refIndex + "]";
return resolvedRef(_refVal, refCode);
}
if (!isRoot && root.refs) {
var rootRefId = root.refs[ref];
if (rootRefId !== void 0) {
_refVal = root.refVal[rootRefId];
refCode = addLocalRef(ref, _refVal);
return resolvedRef(_refVal, refCode);
}
}
refCode = addLocalRef(ref);
var v2 = resolve.call(self2, localCompile, root, ref);
if (v2 === void 0) {
var localSchema = localRefs && localRefs[ref];
if (localSchema) {
v2 = resolve.inlineRef(localSchema, opts.inlineRefs) ? localSchema : compile.call(self2, localSchema, root, localRefs, baseId2);
}
}
if (v2 === void 0) {
removeLocalRef(ref);
} else {
replaceLocalRef(ref, v2);
return resolvedRef(v2, refCode);
}
}
function addLocalRef(ref, v2) {
var refId = refVal.length;
refVal[refId] = v2;
refs[ref] = refId;
return "refVal" + refId;
}
function removeLocalRef(ref) {
delete refs[ref];
}
function replaceLocalRef(ref, v2) {
var refId = refs[ref];
refVal[refId] = v2;
}
function resolvedRef(refVal2, code) {
return typeof refVal2 == "object" || typeof refVal2 == "boolean" ? { code, schema: refVal2, inline: true } : { code, $async: refVal2 && !!refVal2.$async };
}
function usePattern(regexStr) {
var index = patternsHash[regexStr];
if (index === void 0) {
index = patternsHash[regexStr] = patterns.length;
patterns[index] = regexStr;
}
return "pattern" + index;
}
function useDefault(value) {
switch (typeof value) {
case "boolean":
case "number":
return "" + value;
case "string":
return util5.toQuotedString(value);
case "object":
if (value === null) return "null";
var valueStr = stableStringify(value);
var index = defaultsHash[valueStr];
if (index === void 0) {
index = defaultsHash[valueStr] = defaults2.length;
defaults2[index] = value;
}
return "default" + index;
}
}
function useCustomRule(rule, schema2, parentSchema, it) {
if (self2._opts.validateSchema !== false) {
var deps = rule.definition.dependencies;
if (deps && !deps.every(function(keyword) {
return Object.prototype.hasOwnProperty.call(parentSchema, keyword);
}))
throw new Error("parent schema must have all required keywords: " + deps.join(","));
var validateSchema = rule.definition.validateSchema;
if (validateSchema) {
var valid = validateSchema(schema2);
if (!valid) {
var message = "keyword schema is invalid: " + self2.errorsText(validateSchema.errors);
if (self2._opts.validateSchema == "log") self2.logger.error(message);
else throw new Error(message);
}
}
}
var compile2 = rule.definition.compile, inline = rule.definition.inline, macro = rule.definition.macro;
var validate;
if (compile2) {
validate = compile2.call(self2, schema2, parentSchema, it);
} else if (macro) {
validate = macro.call(self2, schema2, parentSchema, it);
if (opts.validateSchema !== false) self2.validateSchema(validate, true);
} else if (inline) {
validate = inline.call(self2, it, rule.keyword, schema2, parentSchema);
} else {
validate = rule.definition.validate;
if (!validate) return;
}
if (validate === void 0)
throw new Error('custom keyword "' + rule.keyword + '"failed to compile');
var index = customRules.length;
customRules[index] = validate;
return {
code: "customRule" + index,
validate
};
}
}
function checkCompiling(schema, root, baseId) {
var index = compIndex.call(this, schema, root, baseId);
if (index >= 0) return { index, compiling: true };
index = this._compilations.length;
this._compilations[index] = {
schema,
root,
baseId
};
return { index, compiling: false };
}
function endCompiling(schema, root, baseId) {
var i = compIndex.call(this, schema, root, baseId);
if (i >= 0) this._compilations.splice(i, 1);
}
function compIndex(schema, root, baseId) {
for (var i = 0; i < this._compilations.length; i++) {
var c = this._compilations[i];
if (c.schema == schema && c.root == root && c.baseId == baseId) return i;
}
return -1;
}
function patternCode(i, patterns) {
return "var pattern" + i + " = new RegExp(" + util5.toQuotedString(patterns[i]) + ");";
}
function defaultCode(i) {
return "var default" + i + " = defaults[" + i + "];";
}
function refValCode(i, refVal) {
return refVal[i] === void 0 ? "" : "var refVal" + i + " = refVal[" + i + "];";
}
function customRuleCode(i) {
return "var customRule" + i + " = customRules[" + i + "];";
}
function vars(arr, statement) {
if (!arr.length) return "";
var code = "";
for (var i = 0; i < arr.length; i++)
code += statement(i, arr);
return code;
}
}
});
// node_modules/ajv/lib/cache.js
var require_cache = __commonJS({
"node_modules/ajv/lib/cache.js"(exports2, module2) {
"use strict";
var Cache = module2.exports = function Cache2() {
this._cache = {};
};
Cache.prototype.put = function Cache_put(key, value) {
this._cache[key] = value;
};
Cache.prototype.get = function Cache_get(key) {
return this._cache[key];
};
Cache.prototype.del = function Cache_del(key) {
delete this._cache[key];
};
Cache.prototype.clear = function Cache_clear() {
this._cache = {};
};
}
});
// node_modules/ajv/lib/compile/formats.js
var require_formats = __commonJS({
"node_modules/ajv/lib/compile/formats.js"(exports2, module2) {
"use strict";
var util5 = require_util();
var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
var DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i;
var HOSTNAME = /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i;
var URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
var URIREF = /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
var URITEMPLATE = /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;
var URL2 = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i;
var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
var JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$/;
var JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;
var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;
module2.exports = formats;
function formats(mode) {
mode = mode == "full" ? "full" : "fast";
return util5.copy(formats[mode]);
}
formats.fast = {
// date: http://tools.ietf.org/html/rfc3339#section-5.6
date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/,
// date-time: http://tools.ietf.org/html/rfc3339#section-5.6
time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,
"date-time": /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,
// uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,
"uri-reference": /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,
"uri-template": URITEMPLATE,
url: URL2,
// email (sources from jsen validator):
// http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
// http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')
email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,
hostname: HOSTNAME,
// optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html
ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
// optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,
regex,
// uuid: http://tools.ietf.org/html/rfc4122
uuid: UUID,
// JSON-pointer: https://tools.ietf.org/html/rfc6901
// uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A
"json-pointer": JSON_POINTER,
"json-pointer-uri-fragment": JSON_POINTER_URI_FRAGMENT,
// relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00
"relative-json-pointer": RELATIVE_JSON_POINTER
};
formats.full = {
date,
time,
"date-time": date_time,
uri,
"uri-reference": URIREF,
"uri-template": URITEMPLATE,
url: URL2,
email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,
hostname: HOSTNAME,
ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,
regex,
uuid: UUID,
"json-pointer": JSON_POINTER,
"json-pointer-uri-fragment": JSON_POINTER_URI_FRAGMENT,
"relative-json-pointer": RELATIVE_JSON_POINTER
};
function isLeapYear(year) {
return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
}
function date(str) {
var matches = str.match(DATE);
if (!matches) return false;
var year = +matches[1];
var month = +matches[2];
var day = +matches[3];
return month >= 1 && month <= 12 && day >= 1 && day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);
}
function time(str, full) {
var matches = str.match(TIME);
if (!matches) return false;
var hour = matches[1];
var minute = matches[2];
var second = matches[3];
var timeZone = matches[5];
return (hour <= 23 && minute <= 59 && second <= 59 || hour == 23 && minute == 59 && second == 60) && (!full || timeZone);
}
var DATE_TIME_SEPARATOR = /t|\s/i;
function date_time(str) {
var dateTime = str.split(DATE_TIME_SEPARATOR);
return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);
}
var NOT_URI_FRAGMENT = /\/|:/;
function uri(str) {
return NOT_URI_FRAGMENT.test(str) && URI.test(str);
}
var Z_ANCHOR = /[^\\]\\Z/;
function regex(str) {
if (Z_ANCHOR.test(str)) return false;
try {
new RegExp(str);
return true;
} catch (e) {
return false;
}
}
}
});
// node_modules/ajv/lib/dotjs/ref.js
var require_ref = __commonJS({
"node_modules/ajv/lib/dotjs/ref.js"(exports2, module2) {
"use strict";
module2.exports = function generate_ref(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $valid = "valid" + $lvl;
var $async, $refCode;
if ($schema == "#" || $schema == "#/") {
if (it.isRoot) {
$async = it.async;
$refCode = "validate";
} else {
$async = it.root.schema.$async === true;
$refCode = "root.refVal[0]";
}
} else {
var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);
if ($refVal === void 0) {
var $message = it.MissingRefError.message(it.baseId, $schema);
if (it.opts.missingRefs == "fail") {
it.logger.error($message);
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: '$ref' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { ref: '" + it.util.escapeQuotes($schema) + "' } ";
if (it.opts.messages !== false) {
out += " , message: 'can\\'t resolve reference " + it.util.escapeQuotes($schema) + "' ";
}
if (it.opts.verbose) {
out += " , schema: " + it.util.toQuotedString($schema) + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
if ($breakOnError) {
out += " if (false) { ";
}
} else if (it.opts.missingRefs == "ignore") {
it.logger.warn($message);
if ($breakOnError) {
out += " if (true) { ";
}
} else {
throw new it.MissingRefError(it.baseId, $schema, $message);
}
} else if ($refVal.inline) {
var $it = it.util.copy(it);
$it.level++;
var $nextValid = "valid" + $it.level;
$it.schema = $refVal.schema;
$it.schemaPath = "";
$it.errSchemaPath = $schema;
var $code = it.validate($it).replace(/validate\.schema/g, $refVal.code);
out += " " + $code + " ";
if ($breakOnError) {
out += " if (" + $nextValid + ") { ";
}
} else {
$async = $refVal.$async === true || it.async && $refVal.$async !== false;
$refCode = $refVal.code;
}
}
if ($refCode) {
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.opts.passContext) {
out += " " + $refCode + ".call(this, ";
} else {
out += " " + $refCode + "( ";
}
out += " " + $data + ", (dataPath || '')";
if (it.errorPath != '""') {
out += " + " + it.errorPath;
}
var $parentData = $dataLvl ? "data" + ($dataLvl - 1 || "") : "parentData", $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : "parentDataProperty";
out += " , " + $parentData + " , " + $parentDataProperty + ", rootData) ";
var __callValidate = out;
out = $$outStack.pop();
if ($async) {
if (!it.async) throw new Error("async schema referenced by sync schema");
if ($breakOnError) {
out += " var " + $valid + "; ";
}
out += " try { await " + __callValidate + "; ";
if ($breakOnError) {
out += " " + $valid + " = true; ";
}
out += " } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ";
if ($breakOnError) {
out += " " + $valid + " = false; ";
}
out += " } ";
if ($breakOnError) {
out += " if (" + $valid + ") { ";
}
} else {
out += " if (!" + __callValidate + ") { if (vErrors === null) vErrors = " + $refCode + ".errors; else vErrors = vErrors.concat(" + $refCode + ".errors); errors = vErrors.length; } ";
if ($breakOnError) {
out += " else { ";
}
}
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/allOf.js
var require_allOf = __commonJS({
"node_modules/ajv/lib/dotjs/allOf.js"(exports2, module2) {
"use strict";
module2.exports = function generate_allOf(it, $keyword, $ruleType) {
var out = " ";
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $it = it.util.copy(it);
var $closingBraces = "";
$it.level++;
var $nextValid = "valid" + $it.level;
var $currentBaseId = $it.baseId, $allSchemasEmpty = true;
var arr1 = $schema;
if (arr1) {
var $sch, $i = -1, l1 = arr1.length - 1;
while ($i < l1) {
$sch = arr1[$i += 1];
if (it.opts.strictKeywords ? typeof $sch == "object" && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {
$allSchemasEmpty = false;
$it.schema = $sch;
$it.schemaPath = $schemaPath + "[" + $i + "]";
$it.errSchemaPath = $errSchemaPath + "/" + $i;
out += " " + it.validate($it) + " ";
$it.baseId = $currentBaseId;
if ($breakOnError) {
out += " if (" + $nextValid + ") { ";
$closingBraces += "}";
}
}
}
}
if ($breakOnError) {
if ($allSchemasEmpty) {
out += " if (true) { ";
} else {
out += " " + $closingBraces.slice(0, -1) + " ";
}
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/anyOf.js
var require_anyOf = __commonJS({
"node_modules/ajv/lib/dotjs/anyOf.js"(exports2, module2) {
"use strict";
module2.exports = function generate_anyOf(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $valid = "valid" + $lvl;
var $errs = "errs__" + $lvl;
var $it = it.util.copy(it);
var $closingBraces = "";
$it.level++;
var $nextValid = "valid" + $it.level;
var $noEmptySchema = $schema.every(function($sch2) {
return it.opts.strictKeywords ? typeof $sch2 == "object" && Object.keys($sch2).length > 0 || $sch2 === false : it.util.schemaHasRules($sch2, it.RULES.all);
});
if ($noEmptySchema) {
var $currentBaseId = $it.baseId;
out += " var " + $errs + " = errors; var " + $valid + " = false; ";
var $wasComposite = it.compositeRule;
it.compositeRule = $it.compositeRule = true;
var arr1 = $schema;
if (arr1) {
var $sch, $i = -1, l1 = arr1.length - 1;
while ($i < l1) {
$sch = arr1[$i += 1];
$it.schema = $sch;
$it.schemaPath = $schemaPath + "[" + $i + "]";
$it.errSchemaPath = $errSchemaPath + "/" + $i;
out += " " + it.validate($it) + " ";
$it.baseId = $currentBaseId;
out += " " + $valid + " = " + $valid + " || " + $nextValid + "; if (!" + $valid + ") { ";
$closingBraces += "}";
}
}
it.compositeRule = $it.compositeRule = $wasComposite;
out += " " + $closingBraces + " if (!" + $valid + ") { var err = ";
if (it.createErrors !== false) {
out += " { keyword: 'anyOf' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: {} ";
if (it.opts.messages !== false) {
out += " , message: 'should match some schema in anyOf' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError(vErrors); ";
} else {
out += " validate.errors = vErrors; return false; ";
}
}
out += " } else { errors = " + $errs + "; if (vErrors !== null) { if (" + $errs + ") vErrors.length = " + $errs + "; else vErrors = null; } ";
if (it.opts.allErrors) {
out += " } ";
}
} else {
if ($breakOnError) {
out += " if (true) { ";
}
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/comment.js
var require_comment = __commonJS({
"node_modules/ajv/lib/dotjs/comment.js"(exports2, module2) {
"use strict";
module2.exports = function generate_comment(it, $keyword, $ruleType) {
var out = " ";
var $schema = it.schema[$keyword];
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $comment = it.util.toQuotedString($schema);
if (it.opts.$comment === true) {
out += " console.log(" + $comment + ");";
} else if (typeof it.opts.$comment == "function") {
out += " self._opts.$comment(" + $comment + ", " + it.util.toQuotedString($errSchemaPath) + ", validate.root.schema);";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/const.js
var require_const = __commonJS({
"node_modules/ajv/lib/dotjs/const.js"(exports2, module2) {
"use strict";
module2.exports = function generate_const(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $valid = "valid" + $lvl;
var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;
if ($isData) {
out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ";
$schemaValue = "schema" + $lvl;
} else {
$schemaValue = $schema;
}
if (!$isData) {
out += " var schema" + $lvl + " = validate.schema" + $schemaPath + ";";
}
out += "var " + $valid + " = equal(" + $data + ", schema" + $lvl + "); if (!" + $valid + ") { ";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'const' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { allowedValue: schema" + $lvl + " } ";
if (it.opts.messages !== false) {
out += " , message: 'should be equal to constant' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " }";
if ($breakOnError) {
out += " else { ";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/contains.js
var require_contains = __commonJS({
"node_modules/ajv/lib/dotjs/contains.js"(exports2, module2) {
"use strict";
module2.exports = function generate_contains(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $valid = "valid" + $lvl;
var $errs = "errs__" + $lvl;
var $it = it.util.copy(it);
var $closingBraces = "";
$it.level++;
var $nextValid = "valid" + $it.level;
var $idx = "i" + $lvl, $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = "data" + $dataNxt, $currentBaseId = it.baseId, $nonEmptySchema = it.opts.strictKeywords ? typeof $schema == "object" && Object.keys($schema).length > 0 || $schema === false : it.util.schemaHasRules($schema, it.RULES.all);
out += "var " + $errs + " = errors;var " + $valid + ";";
if ($nonEmptySchema) {
var $wasComposite = it.compositeRule;
it.compositeRule = $it.compositeRule = true;
$it.schema = $schema;
$it.schemaPath = $schemaPath;
$it.errSchemaPath = $errSchemaPath;
out += " var " + $nextValid + " = false; for (var " + $idx + " = 0; " + $idx + " < " + $data + ".length; " + $idx + "++) { ";
$it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
var $passData = $data + "[" + $idx + "]";
$it.dataPathArr[$dataNxt] = $idx;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
out += " " + it.util.varReplace($code, $nextData, $passData) + " ";
} else {
out += " var " + $nextData + " = " + $passData + "; " + $code + " ";
}
out += " if (" + $nextValid + ") break; } ";
it.compositeRule = $it.compositeRule = $wasComposite;
out += " " + $closingBraces + " if (!" + $nextValid + ") {";
} else {
out += " if (" + $data + ".length == 0) {";
}
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'contains' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: {} ";
if (it.opts.messages !== false) {
out += " , message: 'should contain a valid item' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " } else { ";
if ($nonEmptySchema) {
out += " errors = " + $errs + "; if (vErrors !== null) { if (" + $errs + ") vErrors.length = " + $errs + "; else vErrors = null; } ";
}
if (it.opts.allErrors) {
out += " } ";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/dependencies.js
var require_dependencies = __commonJS({
"node_modules/ajv/lib/dotjs/dependencies.js"(exports2, module2) {
"use strict";
module2.exports = function generate_dependencies(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $errs = "errs__" + $lvl;
var $it = it.util.copy(it);
var $closingBraces = "";
$it.level++;
var $nextValid = "valid" + $it.level;
var $schemaDeps = {}, $propertyDeps = {}, $ownProperties = it.opts.ownProperties;
for ($property in $schema) {
if ($property == "__proto__") continue;
var $sch = $schema[$property];
var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;
$deps[$property] = $sch;
}
out += "var " + $errs + " = errors;";
var $currentErrorPath = it.errorPath;
out += "var missing" + $lvl + ";";
for (var $property in $propertyDeps) {
$deps = $propertyDeps[$property];
if ($deps.length) {
out += " if ( " + $data + it.util.getProperty($property) + " !== undefined ";
if ($ownProperties) {
out += " && Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($property) + "') ";
}
if ($breakOnError) {
out += " && ( ";
var arr1 = $deps;
if (arr1) {
var $propertyKey, $i = -1, l1 = arr1.length - 1;
while ($i < l1) {
$propertyKey = arr1[$i += 1];
if ($i) {
out += " || ";
}
var $prop = it.util.getProperty($propertyKey), $useData = $data + $prop;
out += " ( ( " + $useData + " === undefined ";
if ($ownProperties) {
out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') ";
}
out += ") && (missing" + $lvl + " = " + it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop) + ") ) ";
}
}
out += ")) { ";
var $propertyPath = "missing" + $lvl, $missingProperty = "' + " + $propertyPath + " + '";
if (it.opts._errorDataPathProperty) {
it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + " + " + $propertyPath;
}
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'dependencies' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { property: '" + it.util.escapeQuotes($property) + "', missingProperty: '" + $missingProperty + "', depsCount: " + $deps.length + ", deps: '" + it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(", ")) + "' } ";
if (it.opts.messages !== false) {
out += " , message: 'should have ";
if ($deps.length == 1) {
out += "property " + it.util.escapeQuotes($deps[0]);
} else {
out += "properties " + it.util.escapeQuotes($deps.join(", "));
}
out += " when property " + it.util.escapeQuotes($property) + " is present' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
} else {
out += " ) { ";
var arr2 = $deps;
if (arr2) {
var $propertyKey, i2 = -1, l2 = arr2.length - 1;
while (i2 < l2) {
$propertyKey = arr2[i2 += 1];
var $prop = it.util.getProperty($propertyKey), $missingProperty = it.util.escapeQuotes($propertyKey), $useData = $data + $prop;
if (it.opts._errorDataPathProperty) {
it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
}
out += " if ( " + $useData + " === undefined ";
if ($ownProperties) {
out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') ";
}
out += ") { var err = ";
if (it.createErrors !== false) {
out += " { keyword: 'dependencies' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { property: '" + it.util.escapeQuotes($property) + "', missingProperty: '" + $missingProperty + "', depsCount: " + $deps.length + ", deps: '" + it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(", ")) + "' } ";
if (it.opts.messages !== false) {
out += " , message: 'should have ";
if ($deps.length == 1) {
out += "property " + it.util.escapeQuotes($deps[0]);
} else {
out += "properties " + it.util.escapeQuotes($deps.join(", "));
}
out += " when property " + it.util.escapeQuotes($property) + " is present' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ";
}
}
}
out += " } ";
if ($breakOnError) {
$closingBraces += "}";
out += " else { ";
}
}
}
it.errorPath = $currentErrorPath;
var $currentBaseId = $it.baseId;
for (var $property in $schemaDeps) {
var $sch = $schemaDeps[$property];
if (it.opts.strictKeywords ? typeof $sch == "object" && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {
out += " " + $nextValid + " = true; if ( " + $data + it.util.getProperty($property) + " !== undefined ";
if ($ownProperties) {
out += " && Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($property) + "') ";
}
out += ") { ";
$it.schema = $sch;
$it.schemaPath = $schemaPath + it.util.getProperty($property);
$it.errSchemaPath = $errSchemaPath + "/" + it.util.escapeFragment($property);
out += " " + it.validate($it) + " ";
$it.baseId = $currentBaseId;
out += " } ";
if ($breakOnError) {
out += " if (" + $nextValid + ") { ";
$closingBraces += "}";
}
}
}
if ($breakOnError) {
out += " " + $closingBraces + " if (" + $errs + " == errors) {";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/enum.js
var require_enum = __commonJS({
"node_modules/ajv/lib/dotjs/enum.js"(exports2, module2) {
"use strict";
module2.exports = function generate_enum(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $valid = "valid" + $lvl;
var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;
if ($isData) {
out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ";
$schemaValue = "schema" + $lvl;
} else {
$schemaValue = $schema;
}
var $i = "i" + $lvl, $vSchema = "schema" + $lvl;
if (!$isData) {
out += " var " + $vSchema + " = validate.schema" + $schemaPath + ";";
}
out += "var " + $valid + ";";
if ($isData) {
out += " if (schema" + $lvl + " === undefined) " + $valid + " = true; else if (!Array.isArray(schema" + $lvl + ")) " + $valid + " = false; else {";
}
out += "" + $valid + " = false;for (var " + $i + "=0; " + $i + "<" + $vSchema + ".length; " + $i + "++) if (equal(" + $data + ", " + $vSchema + "[" + $i + "])) { " + $valid + " = true; break; }";
if ($isData) {
out += " } ";
}
out += " if (!" + $valid + ") { ";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'enum' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { allowedValues: schema" + $lvl + " } ";
if (it.opts.messages !== false) {
out += " , message: 'should be equal to one of the allowed values' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " }";
if ($breakOnError) {
out += " else { ";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/format.js
var require_format = __commonJS({
"node_modules/ajv/lib/dotjs/format.js"(exports2, module2) {
"use strict";
module2.exports = function generate_format(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
if (it.opts.format === false) {
if ($breakOnError) {
out += " if (true) { ";
}
return out;
}
var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;
if ($isData) {
out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ";
$schemaValue = "schema" + $lvl;
} else {
$schemaValue = $schema;
}
var $unknownFormats = it.opts.unknownFormats, $allowUnknown = Array.isArray($unknownFormats);
if ($isData) {
var $format = "format" + $lvl, $isObject = "isObject" + $lvl, $formatType = "formatType" + $lvl;
out += " var " + $format + " = formats[" + $schemaValue + "]; var " + $isObject + " = typeof " + $format + " == 'object' && !(" + $format + " instanceof RegExp) && " + $format + ".validate; var " + $formatType + " = " + $isObject + " && " + $format + ".type || 'string'; if (" + $isObject + ") { ";
if (it.async) {
out += " var async" + $lvl + " = " + $format + ".async; ";
}
out += " " + $format + " = " + $format + ".validate; } if ( ";
if ($isData) {
out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'string') || ";
}
out += " (";
if ($unknownFormats != "ignore") {
out += " (" + $schemaValue + " && !" + $format + " ";
if ($allowUnknown) {
out += " && self._opts.unknownFormats.indexOf(" + $schemaValue + ") == -1 ";
}
out += ") || ";
}
out += " (" + $format + " && " + $formatType + " == '" + $ruleType + "' && !(typeof " + $format + " == 'function' ? ";
if (it.async) {
out += " (async" + $lvl + " ? await " + $format + "(" + $data + ") : " + $format + "(" + $data + ")) ";
} else {
out += " " + $format + "(" + $data + ") ";
}
out += " : " + $format + ".test(" + $data + "))))) {";
} else {
var $format = it.formats[$schema];
if (!$format) {
if ($unknownFormats == "ignore") {
it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
if ($breakOnError) {
out += " if (true) { ";
}
return out;
} else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {
if ($breakOnError) {
out += " if (true) { ";
}
return out;
} else {
throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"');
}
}
var $isObject = typeof $format == "object" && !($format instanceof RegExp) && $format.validate;
var $formatType = $isObject && $format.type || "string";
if ($isObject) {
var $async = $format.async === true;
$format = $format.validate;
}
if ($formatType != $ruleType) {
if ($breakOnError) {
out += " if (true) { ";
}
return out;
}
if ($async) {
if (!it.async) throw new Error("async format in sync schema");
var $formatRef = "formats" + it.util.getProperty($schema) + ".validate";
out += " if (!(await " + $formatRef + "(" + $data + "))) { ";
} else {
out += " if (! ";
var $formatRef = "formats" + it.util.getProperty($schema);
if ($isObject) $formatRef += ".validate";
if (typeof $format == "function") {
out += " " + $formatRef + "(" + $data + ") ";
} else {
out += " " + $formatRef + ".test(" + $data + ") ";
}
out += ") { ";
}
}
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'format' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { format: ";
if ($isData) {
out += "" + $schemaValue;
} else {
out += "" + it.util.toQuotedString($schema);
}
out += " } ";
if (it.opts.messages !== false) {
out += ` , message: 'should match format "`;
if ($isData) {
out += "' + " + $schemaValue + " + '";
} else {
out += "" + it.util.escapeQuotes($schema);
}
out += `"' `;
}
if (it.opts.verbose) {
out += " , schema: ";
if ($isData) {
out += "validate.schema" + $schemaPath;
} else {
out += "" + it.util.toQuotedString($schema);
}
out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " } ";
if ($breakOnError) {
out += " else { ";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/if.js
var require_if = __commonJS({
"node_modules/ajv/lib/dotjs/if.js"(exports2, module2) {
"use strict";
module2.exports = function generate_if(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $valid = "valid" + $lvl;
var $errs = "errs__" + $lvl;
var $it = it.util.copy(it);
$it.level++;
var $nextValid = "valid" + $it.level;
var $thenSch = it.schema["then"], $elseSch = it.schema["else"], $thenPresent = $thenSch !== void 0 && (it.opts.strictKeywords ? typeof $thenSch == "object" && Object.keys($thenSch).length > 0 || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)), $elsePresent = $elseSch !== void 0 && (it.opts.strictKeywords ? typeof $elseSch == "object" && Object.keys($elseSch).length > 0 || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)), $currentBaseId = $it.baseId;
if ($thenPresent || $elsePresent) {
var $ifClause;
$it.createErrors = false;
$it.schema = $schema;
$it.schemaPath = $schemaPath;
$it.errSchemaPath = $errSchemaPath;
out += " var " + $errs + " = errors; var " + $valid + " = true; ";
var $wasComposite = it.compositeRule;
it.compositeRule = $it.compositeRule = true;
out += " " + it.validate($it) + " ";
$it.baseId = $currentBaseId;
$it.createErrors = true;
out += " errors = " + $errs + "; if (vErrors !== null) { if (" + $errs + ") vErrors.length = " + $errs + "; else vErrors = null; } ";
it.compositeRule = $it.compositeRule = $wasComposite;
if ($thenPresent) {
out += " if (" + $nextValid + ") { ";
$it.schema = it.schema["then"];
$it.schemaPath = it.schemaPath + ".then";
$it.errSchemaPath = it.errSchemaPath + "/then";
out += " " + it.validate($it) + " ";
$it.baseId = $currentBaseId;
out += " " + $valid + " = " + $nextValid + "; ";
if ($thenPresent && $elsePresent) {
$ifClause = "ifClause" + $lvl;
out += " var " + $ifClause + " = 'then'; ";
} else {
$ifClause = "'then'";
}
out += " } ";
if ($elsePresent) {
out += " else { ";
}
} else {
out += " if (!" + $nextValid + ") { ";
}
if ($elsePresent) {
$it.schema = it.schema["else"];
$it.schemaPath = it.schemaPath + ".else";
$it.errSchemaPath = it.errSchemaPath + "/else";
out += " " + it.validate($it) + " ";
$it.baseId = $currentBaseId;
out += " " + $valid + " = " + $nextValid + "; ";
if ($thenPresent && $elsePresent) {
$ifClause = "ifClause" + $lvl;
out += " var " + $ifClause + " = 'else'; ";
} else {
$ifClause = "'else'";
}
out += " } ";
}
out += " if (!" + $valid + ") { var err = ";
if (it.createErrors !== false) {
out += " { keyword: 'if' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { failingKeyword: " + $ifClause + " } ";
if (it.opts.messages !== false) {
out += ` , message: 'should match "' + ` + $ifClause + ` + '" schema' `;
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError(vErrors); ";
} else {
out += " validate.errors = vErrors; return false; ";
}
}
out += " } ";
if ($breakOnError) {
out += " else { ";
}
} else {
if ($breakOnError) {
out += " if (true) { ";
}
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/items.js
var require_items = __commonJS({
"node_modules/ajv/lib/dotjs/items.js"(exports2, module2) {
"use strict";
module2.exports = function generate_items(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $valid = "valid" + $lvl;
var $errs = "errs__" + $lvl;
var $it = it.util.copy(it);
var $closingBraces = "";
$it.level++;
var $nextValid = "valid" + $it.level;
var $idx = "i" + $lvl, $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = "data" + $dataNxt, $currentBaseId = it.baseId;
out += "var " + $errs + " = errors;var " + $valid + ";";
if (Array.isArray($schema)) {
var $additionalItems = it.schema.additionalItems;
if ($additionalItems === false) {
out += " " + $valid + " = " + $data + ".length <= " + $schema.length + "; ";
var $currErrSchemaPath = $errSchemaPath;
$errSchemaPath = it.errSchemaPath + "/additionalItems";
out += " if (!" + $valid + ") { ";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'additionalItems' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { limit: " + $schema.length + " } ";
if (it.opts.messages !== false) {
out += " , message: 'should NOT have more than " + $schema.length + " items' ";
}
if (it.opts.verbose) {
out += " , schema: false , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " } ";
$errSchemaPath = $currErrSchemaPath;
if ($breakOnError) {
$closingBraces += "}";
out += " else { ";
}
}
var arr1 = $schema;
if (arr1) {
var $sch, $i = -1, l1 = arr1.length - 1;
while ($i < l1) {
$sch = arr1[$i += 1];
if (it.opts.strictKeywords ? typeof $sch == "object" && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {
out += " " + $nextValid + " = true; if (" + $data + ".length > " + $i + ") { ";
var $passData = $data + "[" + $i + "]";
$it.schema = $sch;
$it.schemaPath = $schemaPath + "[" + $i + "]";
$it.errSchemaPath = $errSchemaPath + "/" + $i;
$it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);
$it.dataPathArr[$dataNxt] = $i;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
out += " " + it.util.varReplace($code, $nextData, $passData) + " ";
} else {
out += " var " + $nextData + " = " + $passData + "; " + $code + " ";
}
out += " } ";
if ($breakOnError) {
out += " if (" + $nextValid + ") { ";
$closingBraces += "}";
}
}
}
}
if (typeof $additionalItems == "object" && (it.opts.strictKeywords ? typeof $additionalItems == "object" && Object.keys($additionalItems).length > 0 || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {
$it.schema = $additionalItems;
$it.schemaPath = it.schemaPath + ".additionalItems";
$it.errSchemaPath = it.errSchemaPath + "/additionalItems";
out += " " + $nextValid + " = true; if (" + $data + ".length > " + $schema.length + ") { for (var " + $idx + " = " + $schema.length + "; " + $idx + " < " + $data + ".length; " + $idx + "++) { ";
$it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
var $passData = $data + "[" + $idx + "]";
$it.dataPathArr[$dataNxt] = $idx;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
out += " " + it.util.varReplace($code, $nextData, $passData) + " ";
} else {
out += " var " + $nextData + " = " + $passData + "; " + $code + " ";
}
if ($breakOnError) {
out += " if (!" + $nextValid + ") break; ";
}
out += " } } ";
if ($breakOnError) {
out += " if (" + $nextValid + ") { ";
$closingBraces += "}";
}
}
} else if (it.opts.strictKeywords ? typeof $schema == "object" && Object.keys($schema).length > 0 || $schema === false : it.util.schemaHasRules($schema, it.RULES.all)) {
$it.schema = $schema;
$it.schemaPath = $schemaPath;
$it.errSchemaPath = $errSchemaPath;
out += " for (var " + $idx + " = 0; " + $idx + " < " + $data + ".length; " + $idx + "++) { ";
$it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
var $passData = $data + "[" + $idx + "]";
$it.dataPathArr[$dataNxt] = $idx;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
out += " " + it.util.varReplace($code, $nextData, $passData) + " ";
} else {
out += " var " + $nextData + " = " + $passData + "; " + $code + " ";
}
if ($breakOnError) {
out += " if (!" + $nextValid + ") break; ";
}
out += " }";
}
if ($breakOnError) {
out += " " + $closingBraces + " if (" + $errs + " == errors) {";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/_limit.js
var require_limit = __commonJS({
"node_modules/ajv/lib/dotjs/_limit.js"(exports2, module2) {
"use strict";
module2.exports = function generate__limit(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
var $data = "data" + ($dataLvl || "");
var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;
if ($isData) {
out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ";
$schemaValue = "schema" + $lvl;
} else {
$schemaValue = $schema;
}
var $isMax = $keyword == "maximum", $exclusiveKeyword = $isMax ? "exclusiveMaximum" : "exclusiveMinimum", $schemaExcl = it.schema[$exclusiveKeyword], $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data, $op = $isMax ? "<" : ">", $notOp = $isMax ? ">" : "<", $errorKeyword = void 0;
if (!($isData || typeof $schema == "number" || $schema === void 0)) {
throw new Error($keyword + " must be number");
}
if (!($isDataExcl || $schemaExcl === void 0 || typeof $schemaExcl == "number" || typeof $schemaExcl == "boolean")) {
throw new Error($exclusiveKeyword + " must be number or boolean");
}
if ($isDataExcl) {
var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr), $exclusive = "exclusive" + $lvl, $exclType = "exclType" + $lvl, $exclIsNumber = "exclIsNumber" + $lvl, $opExpr = "op" + $lvl, $opStr = "' + " + $opExpr + " + '";
out += " var schemaExcl" + $lvl + " = " + $schemaValueExcl + "; ";
$schemaValueExcl = "schemaExcl" + $lvl;
out += " var " + $exclusive + "; var " + $exclType + " = typeof " + $schemaValueExcl + "; if (" + $exclType + " != 'boolean' && " + $exclType + " != 'undefined' && " + $exclType + " != 'number') { ";
var $errorKeyword = $exclusiveKeyword;
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: '" + ($errorKeyword || "_exclusiveLimit") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: {} ";
if (it.opts.messages !== false) {
out += " , message: '" + $exclusiveKeyword + " should be boolean' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " } else if ( ";
if ($isData) {
out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'number') || ";
}
out += " " + $exclType + " == 'number' ? ( (" + $exclusive + " = " + $schemaValue + " === undefined || " + $schemaValueExcl + " " + $op + "= " + $schemaValue + ") ? " + $data + " " + $notOp + "= " + $schemaValueExcl + " : " + $data + " " + $notOp + " " + $schemaValue + " ) : ( (" + $exclusive + " = " + $schemaValueExcl + " === true) ? " + $data + " " + $notOp + "= " + $schemaValue + " : " + $data + " " + $notOp + " " + $schemaValue + " ) || " + $data + " !== " + $data + ") { var op" + $lvl + " = " + $exclusive + " ? '" + $op + "' : '" + $op + "='; ";
if ($schema === void 0) {
$errorKeyword = $exclusiveKeyword;
$errSchemaPath = it.errSchemaPath + "/" + $exclusiveKeyword;
$schemaValue = $schemaValueExcl;
$isData = $isDataExcl;
}
} else {
var $exclIsNumber = typeof $schemaExcl == "number", $opStr = $op;
if ($exclIsNumber && $isData) {
var $opExpr = "'" + $opStr + "'";
out += " if ( ";
if ($isData) {
out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'number') || ";
}
out += " ( " + $schemaValue + " === undefined || " + $schemaExcl + " " + $op + "= " + $schemaValue + " ? " + $data + " " + $notOp + "= " + $schemaExcl + " : " + $data + " " + $notOp + " " + $schemaValue + " ) || " + $data + " !== " + $data + ") { ";
} else {
if ($exclIsNumber && $schema === void 0) {
$exclusive = true;
$errorKeyword = $exclusiveKeyword;
$errSchemaPath = it.errSchemaPath + "/" + $exclusiveKeyword;
$schemaValue = $schemaExcl;
$notOp += "=";
} else {
if ($exclIsNumber) $schemaValue = Math[$isMax ? "min" : "max"]($schemaExcl, $schema);
if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {
$exclusive = true;
$errorKeyword = $exclusiveKeyword;
$errSchemaPath = it.errSchemaPath + "/" + $exclusiveKeyword;
$notOp += "=";
} else {
$exclusive = false;
$opStr += "=";
}
}
var $opExpr = "'" + $opStr + "'";
out += " if ( ";
if ($isData) {
out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'number') || ";
}
out += " " + $data + " " + $notOp + " " + $schemaValue + " || " + $data + " !== " + $data + ") { ";
}
}
$errorKeyword = $errorKeyword || $keyword;
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: '" + ($errorKeyword || "_limit") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { comparison: " + $opExpr + ", limit: " + $schemaValue + ", exclusive: " + $exclusive + " } ";
if (it.opts.messages !== false) {
out += " , message: 'should be " + $opStr + " ";
if ($isData) {
out += "' + " + $schemaValue;
} else {
out += "" + $schemaValue + "'";
}
}
if (it.opts.verbose) {
out += " , schema: ";
if ($isData) {
out += "validate.schema" + $schemaPath;
} else {
out += "" + $schema;
}
out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " } ";
if ($breakOnError) {
out += " else { ";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/_limitItems.js
var require_limitItems = __commonJS({
"node_modules/ajv/lib/dotjs/_limitItems.js"(exports2, module2) {
"use strict";
module2.exports = function generate__limitItems(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
var $data = "data" + ($dataLvl || "");
var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;
if ($isData) {
out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ";
$schemaValue = "schema" + $lvl;
} else {
$schemaValue = $schema;
}
if (!($isData || typeof $schema == "number")) {
throw new Error($keyword + " must be number");
}
var $op = $keyword == "maxItems" ? ">" : "<";
out += "if ( ";
if ($isData) {
out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'number') || ";
}
out += " " + $data + ".length " + $op + " " + $schemaValue + ") { ";
var $errorKeyword = $keyword;
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: '" + ($errorKeyword || "_limitItems") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { limit: " + $schemaValue + " } ";
if (it.opts.messages !== false) {
out += " , message: 'should NOT have ";
if ($keyword == "maxItems") {
out += "more";
} else {
out += "fewer";
}
out += " than ";
if ($isData) {
out += "' + " + $schemaValue + " + '";
} else {
out += "" + $schema;
}
out += " items' ";
}
if (it.opts.verbose) {
out += " , schema: ";
if ($isData) {
out += "validate.schema" + $schemaPath;
} else {
out += "" + $schema;
}
out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += "} ";
if ($breakOnError) {
out += " else { ";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/_limitLength.js
var require_limitLength = __commonJS({
"node_modules/ajv/lib/dotjs/_limitLength.js"(exports2, module2) {
"use strict";
module2.exports = function generate__limitLength(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
var $data = "data" + ($dataLvl || "");
var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;
if ($isData) {
out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ";
$schemaValue = "schema" + $lvl;
} else {
$schemaValue = $schema;
}
if (!($isData || typeof $schema == "number")) {
throw new Error($keyword + " must be number");
}
var $op = $keyword == "maxLength" ? ">" : "<";
out += "if ( ";
if ($isData) {
out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'number') || ";
}
if (it.opts.unicode === false) {
out += " " + $data + ".length ";
} else {
out += " ucs2length(" + $data + ") ";
}
out += " " + $op + " " + $schemaValue + ") { ";
var $errorKeyword = $keyword;
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: '" + ($errorKeyword || "_limitLength") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { limit: " + $schemaValue + " } ";
if (it.opts.messages !== false) {
out += " , message: 'should NOT be ";
if ($keyword == "maxLength") {
out += "longer";
} else {
out += "shorter";
}
out += " than ";
if ($isData) {
out += "' + " + $schemaValue + " + '";
} else {
out += "" + $schema;
}
out += " characters' ";
}
if (it.opts.verbose) {
out += " , schema: ";
if ($isData) {
out += "validate.schema" + $schemaPath;
} else {
out += "" + $schema;
}
out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += "} ";
if ($breakOnError) {
out += " else { ";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/_limitProperties.js
var require_limitProperties = __commonJS({
"node_modules/ajv/lib/dotjs/_limitProperties.js"(exports2, module2) {
"use strict";
module2.exports = function generate__limitProperties(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
var $data = "data" + ($dataLvl || "");
var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;
if ($isData) {
out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ";
$schemaValue = "schema" + $lvl;
} else {
$schemaValue = $schema;
}
if (!($isData || typeof $schema == "number")) {
throw new Error($keyword + " must be number");
}
var $op = $keyword == "maxProperties" ? ">" : "<";
out += "if ( ";
if ($isData) {
out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'number') || ";
}
out += " Object.keys(" + $data + ").length " + $op + " " + $schemaValue + ") { ";
var $errorKeyword = $keyword;
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: '" + ($errorKeyword || "_limitProperties") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { limit: " + $schemaValue + " } ";
if (it.opts.messages !== false) {
out += " , message: 'should NOT have ";
if ($keyword == "maxProperties") {
out += "more";
} else {
out += "fewer";
}
out += " than ";
if ($isData) {
out += "' + " + $schemaValue + " + '";
} else {
out += "" + $schema;
}
out += " properties' ";
}
if (it.opts.verbose) {
out += " , schema: ";
if ($isData) {
out += "validate.schema" + $schemaPath;
} else {
out += "" + $schema;
}
out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += "} ";
if ($breakOnError) {
out += " else { ";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/multipleOf.js
var require_multipleOf = __commonJS({
"node_modules/ajv/lib/dotjs/multipleOf.js"(exports2, module2) {
"use strict";
module2.exports = function generate_multipleOf(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;
if ($isData) {
out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ";
$schemaValue = "schema" + $lvl;
} else {
$schemaValue = $schema;
}
if (!($isData || typeof $schema == "number")) {
throw new Error($keyword + " must be number");
}
out += "var division" + $lvl + ";if (";
if ($isData) {
out += " " + $schemaValue + " !== undefined && ( typeof " + $schemaValue + " != 'number' || ";
}
out += " (division" + $lvl + " = " + $data + " / " + $schemaValue + ", ";
if (it.opts.multipleOfPrecision) {
out += " Math.abs(Math.round(division" + $lvl + ") - division" + $lvl + ") > 1e-" + it.opts.multipleOfPrecision + " ";
} else {
out += " division" + $lvl + " !== parseInt(division" + $lvl + ") ";
}
out += " ) ";
if ($isData) {
out += " ) ";
}
out += " ) { ";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'multipleOf' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { multipleOf: " + $schemaValue + " } ";
if (it.opts.messages !== false) {
out += " , message: 'should be multiple of ";
if ($isData) {
out += "' + " + $schemaValue;
} else {
out += "" + $schemaValue + "'";
}
}
if (it.opts.verbose) {
out += " , schema: ";
if ($isData) {
out += "validate.schema" + $schemaPath;
} else {
out += "" + $schema;
}
out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += "} ";
if ($breakOnError) {
out += " else { ";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/not.js
var require_not = __commonJS({
"node_modules/ajv/lib/dotjs/not.js"(exports2, module2) {
"use strict";
module2.exports = function generate_not(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $errs = "errs__" + $lvl;
var $it = it.util.copy(it);
$it.level++;
var $nextValid = "valid" + $it.level;
if (it.opts.strictKeywords ? typeof $schema == "object" && Object.keys($schema).length > 0 || $schema === false : it.util.schemaHasRules($schema, it.RULES.all)) {
$it.schema = $schema;
$it.schemaPath = $schemaPath;
$it.errSchemaPath = $errSchemaPath;
out += " var " + $errs + " = errors; ";
var $wasComposite = it.compositeRule;
it.compositeRule = $it.compositeRule = true;
$it.createErrors = false;
var $allErrorsOption;
if ($it.opts.allErrors) {
$allErrorsOption = $it.opts.allErrors;
$it.opts.allErrors = false;
}
out += " " + it.validate($it) + " ";
$it.createErrors = true;
if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;
it.compositeRule = $it.compositeRule = $wasComposite;
out += " if (" + $nextValid + ") { ";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'not' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: {} ";
if (it.opts.messages !== false) {
out += " , message: 'should NOT be valid' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " } else { errors = " + $errs + "; if (vErrors !== null) { if (" + $errs + ") vErrors.length = " + $errs + "; else vErrors = null; } ";
if (it.opts.allErrors) {
out += " } ";
}
} else {
out += " var err = ";
if (it.createErrors !== false) {
out += " { keyword: 'not' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: {} ";
if (it.opts.messages !== false) {
out += " , message: 'should NOT be valid' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
if ($breakOnError) {
out += " if (false) { ";
}
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/oneOf.js
var require_oneOf = __commonJS({
"node_modules/ajv/lib/dotjs/oneOf.js"(exports2, module2) {
"use strict";
module2.exports = function generate_oneOf(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $valid = "valid" + $lvl;
var $errs = "errs__" + $lvl;
var $it = it.util.copy(it);
var $closingBraces = "";
$it.level++;
var $nextValid = "valid" + $it.level;
var $currentBaseId = $it.baseId, $prevValid = "prevValid" + $lvl, $passingSchemas = "passingSchemas" + $lvl;
out += "var " + $errs + " = errors , " + $prevValid + " = false , " + $valid + " = false , " + $passingSchemas + " = null; ";
var $wasComposite = it.compositeRule;
it.compositeRule = $it.compositeRule = true;
var arr1 = $schema;
if (arr1) {
var $sch, $i = -1, l1 = arr1.length - 1;
while ($i < l1) {
$sch = arr1[$i += 1];
if (it.opts.strictKeywords ? typeof $sch == "object" && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {
$it.schema = $sch;
$it.schemaPath = $schemaPath + "[" + $i + "]";
$it.errSchemaPath = $errSchemaPath + "/" + $i;
out += " " + it.validate($it) + " ";
$it.baseId = $currentBaseId;
} else {
out += " var " + $nextValid + " = true; ";
}
if ($i) {
out += " if (" + $nextValid + " && " + $prevValid + ") { " + $valid + " = false; " + $passingSchemas + " = [" + $passingSchemas + ", " + $i + "]; } else { ";
$closingBraces += "}";
}
out += " if (" + $nextValid + ") { " + $valid + " = " + $prevValid + " = true; " + $passingSchemas + " = " + $i + "; }";
}
}
it.compositeRule = $it.compositeRule = $wasComposite;
out += "" + $closingBraces + "if (!" + $valid + ") { var err = ";
if (it.createErrors !== false) {
out += " { keyword: 'oneOf' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { passingSchemas: " + $passingSchemas + " } ";
if (it.opts.messages !== false) {
out += " , message: 'should match exactly one schema in oneOf' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError(vErrors); ";
} else {
out += " validate.errors = vErrors; return false; ";
}
}
out += "} else { errors = " + $errs + "; if (vErrors !== null) { if (" + $errs + ") vErrors.length = " + $errs + "; else vErrors = null; }";
if (it.opts.allErrors) {
out += " } ";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/pattern.js
var require_pattern = __commonJS({
"node_modules/ajv/lib/dotjs/pattern.js"(exports2, module2) {
"use strict";
module2.exports = function generate_pattern(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;
if ($isData) {
out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ";
$schemaValue = "schema" + $lvl;
} else {
$schemaValue = $schema;
}
var $regexp = $isData ? "(new RegExp(" + $schemaValue + "))" : it.usePattern($schema);
out += "if ( ";
if ($isData) {
out += " (" + $schemaValue + " !== undefined && typeof " + $schemaValue + " != 'string') || ";
}
out += " !" + $regexp + ".test(" + $data + ") ) { ";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'pattern' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { pattern: ";
if ($isData) {
out += "" + $schemaValue;
} else {
out += "" + it.util.toQuotedString($schema);
}
out += " } ";
if (it.opts.messages !== false) {
out += ` , message: 'should match pattern "`;
if ($isData) {
out += "' + " + $schemaValue + " + '";
} else {
out += "" + it.util.escapeQuotes($schema);
}
out += `"' `;
}
if (it.opts.verbose) {
out += " , schema: ";
if ($isData) {
out += "validate.schema" + $schemaPath;
} else {
out += "" + it.util.toQuotedString($schema);
}
out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += "} ";
if ($breakOnError) {
out += " else { ";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/properties.js
var require_properties = __commonJS({
"node_modules/ajv/lib/dotjs/properties.js"(exports2, module2) {
"use strict";
module2.exports = function generate_properties(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $errs = "errs__" + $lvl;
var $it = it.util.copy(it);
var $closingBraces = "";
$it.level++;
var $nextValid = "valid" + $it.level;
var $key = "key" + $lvl, $idx = "idx" + $lvl, $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = "data" + $dataNxt, $dataProperties = "dataProperties" + $lvl;
var $schemaKeys = Object.keys($schema || {}).filter(notProto), $pProperties = it.schema.patternProperties || {}, $pPropertyKeys = Object.keys($pProperties).filter(notProto), $aProperties = it.schema.additionalProperties, $someProperties = $schemaKeys.length || $pPropertyKeys.length, $noAdditional = $aProperties === false, $additionalIsSchema = typeof $aProperties == "object" && Object.keys($aProperties).length, $removeAdditional = it.opts.removeAdditional, $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional, $ownProperties = it.opts.ownProperties, $currentBaseId = it.baseId;
var $required = it.schema.required;
if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {
var $requiredHash = it.util.toHash($required);
}
function notProto(p) {
return p !== "__proto__";
}
out += "var " + $errs + " = errors;var " + $nextValid + " = true;";
if ($ownProperties) {
out += " var " + $dataProperties + " = undefined;";
}
if ($checkAdditional) {
if ($ownProperties) {
out += " " + $dataProperties + " = " + $dataProperties + " || Object.keys(" + $data + "); for (var " + $idx + "=0; " + $idx + "<" + $dataProperties + ".length; " + $idx + "++) { var " + $key + " = " + $dataProperties + "[" + $idx + "]; ";
} else {
out += " for (var " + $key + " in " + $data + ") { ";
}
if ($someProperties) {
out += " var isAdditional" + $lvl + " = !(false ";
if ($schemaKeys.length) {
if ($schemaKeys.length > 8) {
out += " || validate.schema" + $schemaPath + ".hasOwnProperty(" + $key + ") ";
} else {
var arr1 = $schemaKeys;
if (arr1) {
var $propertyKey, i1 = -1, l1 = arr1.length - 1;
while (i1 < l1) {
$propertyKey = arr1[i1 += 1];
out += " || " + $key + " == " + it.util.toQuotedString($propertyKey) + " ";
}
}
}
}
if ($pPropertyKeys.length) {
var arr2 = $pPropertyKeys;
if (arr2) {
var $pProperty, $i = -1, l2 = arr2.length - 1;
while ($i < l2) {
$pProperty = arr2[$i += 1];
out += " || " + it.usePattern($pProperty) + ".test(" + $key + ") ";
}
}
}
out += " ); if (isAdditional" + $lvl + ") { ";
}
if ($removeAdditional == "all") {
out += " delete " + $data + "[" + $key + "]; ";
} else {
var $currentErrorPath = it.errorPath;
var $additionalProperty = "' + " + $key + " + '";
if (it.opts._errorDataPathProperty) {
it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
}
if ($noAdditional) {
if ($removeAdditional) {
out += " delete " + $data + "[" + $key + "]; ";
} else {
out += " " + $nextValid + " = false; ";
var $currErrSchemaPath = $errSchemaPath;
$errSchemaPath = it.errSchemaPath + "/additionalProperties";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'additionalProperties' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { additionalProperty: '" + $additionalProperty + "' } ";
if (it.opts.messages !== false) {
out += " , message: '";
if (it.opts._errorDataPathProperty) {
out += "is an invalid additional property";
} else {
out += "should NOT have additional properties";
}
out += "' ";
}
if (it.opts.verbose) {
out += " , schema: false , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
$errSchemaPath = $currErrSchemaPath;
if ($breakOnError) {
out += " break; ";
}
}
} else if ($additionalIsSchema) {
if ($removeAdditional == "failing") {
out += " var " + $errs + " = errors; ";
var $wasComposite = it.compositeRule;
it.compositeRule = $it.compositeRule = true;
$it.schema = $aProperties;
$it.schemaPath = it.schemaPath + ".additionalProperties";
$it.errSchemaPath = it.errSchemaPath + "/additionalProperties";
$it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
var $passData = $data + "[" + $key + "]";
$it.dataPathArr[$dataNxt] = $key;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
out += " " + it.util.varReplace($code, $nextData, $passData) + " ";
} else {
out += " var " + $nextData + " = " + $passData + "; " + $code + " ";
}
out += " if (!" + $nextValid + ") { errors = " + $errs + "; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete " + $data + "[" + $key + "]; } ";
it.compositeRule = $it.compositeRule = $wasComposite;
} else {
$it.schema = $aProperties;
$it.schemaPath = it.schemaPath + ".additionalProperties";
$it.errSchemaPath = it.errSchemaPath + "/additionalProperties";
$it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
var $passData = $data + "[" + $key + "]";
$it.dataPathArr[$dataNxt] = $key;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
out += " " + it.util.varReplace($code, $nextData, $passData) + " ";
} else {
out += " var " + $nextData + " = " + $passData + "; " + $code + " ";
}
if ($breakOnError) {
out += " if (!" + $nextValid + ") break; ";
}
}
}
it.errorPath = $currentErrorPath;
}
if ($someProperties) {
out += " } ";
}
out += " } ";
if ($breakOnError) {
out += " if (" + $nextValid + ") { ";
$closingBraces += "}";
}
}
var $useDefaults = it.opts.useDefaults && !it.compositeRule;
if ($schemaKeys.length) {
var arr3 = $schemaKeys;
if (arr3) {
var $propertyKey, i3 = -1, l3 = arr3.length - 1;
while (i3 < l3) {
$propertyKey = arr3[i3 += 1];
var $sch = $schema[$propertyKey];
if (it.opts.strictKeywords ? typeof $sch == "object" && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {
var $prop = it.util.getProperty($propertyKey), $passData = $data + $prop, $hasDefault = $useDefaults && $sch.default !== void 0;
$it.schema = $sch;
$it.schemaPath = $schemaPath + $prop;
$it.errSchemaPath = $errSchemaPath + "/" + it.util.escapeFragment($propertyKey);
$it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);
$it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
$code = it.util.varReplace($code, $nextData, $passData);
var $useData = $passData;
} else {
var $useData = $nextData;
out += " var " + $nextData + " = " + $passData + "; ";
}
if ($hasDefault) {
out += " " + $code + " ";
} else {
if ($requiredHash && $requiredHash[$propertyKey]) {
out += " if ( " + $useData + " === undefined ";
if ($ownProperties) {
out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') ";
}
out += ") { " + $nextValid + " = false; ";
var $currentErrorPath = it.errorPath, $currErrSchemaPath = $errSchemaPath, $missingProperty = it.util.escapeQuotes($propertyKey);
if (it.opts._errorDataPathProperty) {
it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
}
$errSchemaPath = it.errSchemaPath + "/required";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'required' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { missingProperty: '" + $missingProperty + "' } ";
if (it.opts.messages !== false) {
out += " , message: '";
if (it.opts._errorDataPathProperty) {
out += "is a required property";
} else {
out += "should have required property \\'" + $missingProperty + "\\'";
}
out += "' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
$errSchemaPath = $currErrSchemaPath;
it.errorPath = $currentErrorPath;
out += " } else { ";
} else {
if ($breakOnError) {
out += " if ( " + $useData + " === undefined ";
if ($ownProperties) {
out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') ";
}
out += ") { " + $nextValid + " = true; } else { ";
} else {
out += " if (" + $useData + " !== undefined ";
if ($ownProperties) {
out += " && Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') ";
}
out += " ) { ";
}
}
out += " " + $code + " } ";
}
}
if ($breakOnError) {
out += " if (" + $nextValid + ") { ";
$closingBraces += "}";
}
}
}
}
if ($pPropertyKeys.length) {
var arr4 = $pPropertyKeys;
if (arr4) {
var $pProperty, i4 = -1, l4 = arr4.length - 1;
while (i4 < l4) {
$pProperty = arr4[i4 += 1];
var $sch = $pProperties[$pProperty];
if (it.opts.strictKeywords ? typeof $sch == "object" && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {
$it.schema = $sch;
$it.schemaPath = it.schemaPath + ".patternProperties" + it.util.getProperty($pProperty);
$it.errSchemaPath = it.errSchemaPath + "/patternProperties/" + it.util.escapeFragment($pProperty);
if ($ownProperties) {
out += " " + $dataProperties + " = " + $dataProperties + " || Object.keys(" + $data + "); for (var " + $idx + "=0; " + $idx + "<" + $dataProperties + ".length; " + $idx + "++) { var " + $key + " = " + $dataProperties + "[" + $idx + "]; ";
} else {
out += " for (var " + $key + " in " + $data + ") { ";
}
out += " if (" + it.usePattern($pProperty) + ".test(" + $key + ")) { ";
$it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
var $passData = $data + "[" + $key + "]";
$it.dataPathArr[$dataNxt] = $key;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
out += " " + it.util.varReplace($code, $nextData, $passData) + " ";
} else {
out += " var " + $nextData + " = " + $passData + "; " + $code + " ";
}
if ($breakOnError) {
out += " if (!" + $nextValid + ") break; ";
}
out += " } ";
if ($breakOnError) {
out += " else " + $nextValid + " = true; ";
}
out += " } ";
if ($breakOnError) {
out += " if (" + $nextValid + ") { ";
$closingBraces += "}";
}
}
}
}
}
if ($breakOnError) {
out += " " + $closingBraces + " if (" + $errs + " == errors) {";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/propertyNames.js
var require_propertyNames = __commonJS({
"node_modules/ajv/lib/dotjs/propertyNames.js"(exports2, module2) {
"use strict";
module2.exports = function generate_propertyNames(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $errs = "errs__" + $lvl;
var $it = it.util.copy(it);
var $closingBraces = "";
$it.level++;
var $nextValid = "valid" + $it.level;
out += "var " + $errs + " = errors;";
if (it.opts.strictKeywords ? typeof $schema == "object" && Object.keys($schema).length > 0 || $schema === false : it.util.schemaHasRules($schema, it.RULES.all)) {
$it.schema = $schema;
$it.schemaPath = $schemaPath;
$it.errSchemaPath = $errSchemaPath;
var $key = "key" + $lvl, $idx = "idx" + $lvl, $i = "i" + $lvl, $invalidName = "' + " + $key + " + '", $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = "data" + $dataNxt, $dataProperties = "dataProperties" + $lvl, $ownProperties = it.opts.ownProperties, $currentBaseId = it.baseId;
if ($ownProperties) {
out += " var " + $dataProperties + " = undefined; ";
}
if ($ownProperties) {
out += " " + $dataProperties + " = " + $dataProperties + " || Object.keys(" + $data + "); for (var " + $idx + "=0; " + $idx + "<" + $dataProperties + ".length; " + $idx + "++) { var " + $key + " = " + $dataProperties + "[" + $idx + "]; ";
} else {
out += " for (var " + $key + " in " + $data + ") { ";
}
out += " var startErrs" + $lvl + " = errors; ";
var $passData = $key;
var $wasComposite = it.compositeRule;
it.compositeRule = $it.compositeRule = true;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
out += " " + it.util.varReplace($code, $nextData, $passData) + " ";
} else {
out += " var " + $nextData + " = " + $passData + "; " + $code + " ";
}
it.compositeRule = $it.compositeRule = $wasComposite;
out += " if (!" + $nextValid + ") { for (var " + $i + "=startErrs" + $lvl + "; " + $i + "<errors; " + $i + "++) { vErrors[" + $i + "].propertyName = " + $key + "; } var err = ";
if (it.createErrors !== false) {
out += " { keyword: 'propertyNames' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { propertyName: '" + $invalidName + "' } ";
if (it.opts.messages !== false) {
out += " , message: 'property name \\'" + $invalidName + "\\' is invalid' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError(vErrors); ";
} else {
out += " validate.errors = vErrors; return false; ";
}
}
if ($breakOnError) {
out += " break; ";
}
out += " } }";
}
if ($breakOnError) {
out += " " + $closingBraces + " if (" + $errs + " == errors) {";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/required.js
var require_required = __commonJS({
"node_modules/ajv/lib/dotjs/required.js"(exports2, module2) {
"use strict";
module2.exports = function generate_required(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $valid = "valid" + $lvl;
var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;
if ($isData) {
out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ";
$schemaValue = "schema" + $lvl;
} else {
$schemaValue = $schema;
}
var $vSchema = "schema" + $lvl;
if (!$isData) {
if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {
var $required = [];
var arr1 = $schema;
if (arr1) {
var $property, i1 = -1, l1 = arr1.length - 1;
while (i1 < l1) {
$property = arr1[i1 += 1];
var $propertySch = it.schema.properties[$property];
if (!($propertySch && (it.opts.strictKeywords ? typeof $propertySch == "object" && Object.keys($propertySch).length > 0 || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {
$required[$required.length] = $property;
}
}
}
} else {
var $required = $schema;
}
}
if ($isData || $required.length) {
var $currentErrorPath = it.errorPath, $loopRequired = $isData || $required.length >= it.opts.loopRequired, $ownProperties = it.opts.ownProperties;
if ($breakOnError) {
out += " var missing" + $lvl + "; ";
if ($loopRequired) {
if (!$isData) {
out += " var " + $vSchema + " = validate.schema" + $schemaPath + "; ";
}
var $i = "i" + $lvl, $propertyPath = "schema" + $lvl + "[" + $i + "]", $missingProperty = "' + " + $propertyPath + " + '";
if (it.opts._errorDataPathProperty) {
it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
}
out += " var " + $valid + " = true; ";
if ($isData) {
out += " if (schema" + $lvl + " === undefined) " + $valid + " = true; else if (!Array.isArray(schema" + $lvl + ")) " + $valid + " = false; else {";
}
out += " for (var " + $i + " = 0; " + $i + " < " + $vSchema + ".length; " + $i + "++) { " + $valid + " = " + $data + "[" + $vSchema + "[" + $i + "]] !== undefined ";
if ($ownProperties) {
out += " && Object.prototype.hasOwnProperty.call(" + $data + ", " + $vSchema + "[" + $i + "]) ";
}
out += "; if (!" + $valid + ") break; } ";
if ($isData) {
out += " } ";
}
out += " if (!" + $valid + ") { ";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'required' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { missingProperty: '" + $missingProperty + "' } ";
if (it.opts.messages !== false) {
out += " , message: '";
if (it.opts._errorDataPathProperty) {
out += "is a required property";
} else {
out += "should have required property \\'" + $missingProperty + "\\'";
}
out += "' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " } else { ";
} else {
out += " if ( ";
var arr2 = $required;
if (arr2) {
var $propertyKey, $i = -1, l2 = arr2.length - 1;
while ($i < l2) {
$propertyKey = arr2[$i += 1];
if ($i) {
out += " || ";
}
var $prop = it.util.getProperty($propertyKey), $useData = $data + $prop;
out += " ( ( " + $useData + " === undefined ";
if ($ownProperties) {
out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') ";
}
out += ") && (missing" + $lvl + " = " + it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop) + ") ) ";
}
}
out += ") { ";
var $propertyPath = "missing" + $lvl, $missingProperty = "' + " + $propertyPath + " + '";
if (it.opts._errorDataPathProperty) {
it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + " + " + $propertyPath;
}
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'required' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { missingProperty: '" + $missingProperty + "' } ";
if (it.opts.messages !== false) {
out += " , message: '";
if (it.opts._errorDataPathProperty) {
out += "is a required property";
} else {
out += "should have required property \\'" + $missingProperty + "\\'";
}
out += "' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " } else { ";
}
} else {
if ($loopRequired) {
if (!$isData) {
out += " var " + $vSchema + " = validate.schema" + $schemaPath + "; ";
}
var $i = "i" + $lvl, $propertyPath = "schema" + $lvl + "[" + $i + "]", $missingProperty = "' + " + $propertyPath + " + '";
if (it.opts._errorDataPathProperty) {
it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
}
if ($isData) {
out += " if (" + $vSchema + " && !Array.isArray(" + $vSchema + ")) { var err = ";
if (it.createErrors !== false) {
out += " { keyword: 'required' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { missingProperty: '" + $missingProperty + "' } ";
if (it.opts.messages !== false) {
out += " , message: '";
if (it.opts._errorDataPathProperty) {
out += "is a required property";
} else {
out += "should have required property \\'" + $missingProperty + "\\'";
}
out += "' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (" + $vSchema + " !== undefined) { ";
}
out += " for (var " + $i + " = 0; " + $i + " < " + $vSchema + ".length; " + $i + "++) { if (" + $data + "[" + $vSchema + "[" + $i + "]] === undefined ";
if ($ownProperties) {
out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", " + $vSchema + "[" + $i + "]) ";
}
out += ") { var err = ";
if (it.createErrors !== false) {
out += " { keyword: 'required' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { missingProperty: '" + $missingProperty + "' } ";
if (it.opts.messages !== false) {
out += " , message: '";
if (it.opts._errorDataPathProperty) {
out += "is a required property";
} else {
out += "should have required property \\'" + $missingProperty + "\\'";
}
out += "' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ";
if ($isData) {
out += " } ";
}
} else {
var arr3 = $required;
if (arr3) {
var $propertyKey, i3 = -1, l3 = arr3.length - 1;
while (i3 < l3) {
$propertyKey = arr3[i3 += 1];
var $prop = it.util.getProperty($propertyKey), $missingProperty = it.util.escapeQuotes($propertyKey), $useData = $data + $prop;
if (it.opts._errorDataPathProperty) {
it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
}
out += " if ( " + $useData + " === undefined ";
if ($ownProperties) {
out += " || ! Object.prototype.hasOwnProperty.call(" + $data + ", '" + it.util.escapeQuotes($propertyKey) + "') ";
}
out += ") { var err = ";
if (it.createErrors !== false) {
out += " { keyword: 'required' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { missingProperty: '" + $missingProperty + "' } ";
if (it.opts.messages !== false) {
out += " , message: '";
if (it.opts._errorDataPathProperty) {
out += "is a required property";
} else {
out += "should have required property \\'" + $missingProperty + "\\'";
}
out += "' ";
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ";
}
}
}
}
it.errorPath = $currentErrorPath;
} else if ($breakOnError) {
out += " if (true) {";
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/uniqueItems.js
var require_uniqueItems = __commonJS({
"node_modules/ajv/lib/dotjs/uniqueItems.js"(exports2, module2) {
"use strict";
module2.exports = function generate_uniqueItems(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $data = "data" + ($dataLvl || "");
var $valid = "valid" + $lvl;
var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;
if ($isData) {
out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ";
$schemaValue = "schema" + $lvl;
} else {
$schemaValue = $schema;
}
if (($schema || $isData) && it.opts.uniqueItems !== false) {
if ($isData) {
out += " var " + $valid + "; if (" + $schemaValue + " === false || " + $schemaValue + " === undefined) " + $valid + " = true; else if (typeof " + $schemaValue + " != 'boolean') " + $valid + " = false; else { ";
}
out += " var i = " + $data + ".length , " + $valid + " = true , j; if (i > 1) { ";
var $itemType = it.schema.items && it.schema.items.type, $typeIsArray = Array.isArray($itemType);
if (!$itemType || $itemType == "object" || $itemType == "array" || $typeIsArray && ($itemType.indexOf("object") >= 0 || $itemType.indexOf("array") >= 0)) {
out += " outer: for (;i--;) { for (j = i; j--;) { if (equal(" + $data + "[i], " + $data + "[j])) { " + $valid + " = false; break outer; } } } ";
} else {
out += " var itemIndices = {}, item; for (;i--;) { var item = " + $data + "[i]; ";
var $method = "checkDataType" + ($typeIsArray ? "s" : "");
out += " if (" + it.util[$method]($itemType, "item", it.opts.strictNumbers, true) + ") continue; ";
if ($typeIsArray) {
out += ` if (typeof item == 'string') item = '"' + item; `;
}
out += " if (typeof itemIndices[item] == 'number') { " + $valid + " = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ";
}
out += " } ";
if ($isData) {
out += " } ";
}
out += " if (!" + $valid + ") { ";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: 'uniqueItems' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { i: i, j: j } ";
if (it.opts.messages !== false) {
out += " , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' ";
}
if (it.opts.verbose) {
out += " , schema: ";
if ($isData) {
out += "validate.schema" + $schemaPath;
} else {
out += "" + $schema;
}
out += " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
out += " } ";
if ($breakOnError) {
out += " else { ";
}
} else {
if ($breakOnError) {
out += " if (true) { ";
}
}
return out;
};
}
});
// node_modules/ajv/lib/dotjs/index.js
var require_dotjs = __commonJS({
"node_modules/ajv/lib/dotjs/index.js"(exports2, module2) {
"use strict";
module2.exports = {
"$ref": require_ref(),
allOf: require_allOf(),
anyOf: require_anyOf(),
"$comment": require_comment(),
const: require_const(),
contains: require_contains(),
dependencies: require_dependencies(),
"enum": require_enum(),
format: require_format(),
"if": require_if(),
items: require_items(),
maximum: require_limit(),
minimum: require_limit(),
maxItems: require_limitItems(),
minItems: require_limitItems(),
maxLength: require_limitLength(),
minLength: require_limitLength(),
maxProperties: require_limitProperties(),
minProperties: require_limitProperties(),
multipleOf: require_multipleOf(),
not: require_not(),
oneOf: require_oneOf(),
pattern: require_pattern(),
properties: require_properties(),
propertyNames: require_propertyNames(),
required: require_required(),
uniqueItems: require_uniqueItems(),
validate: require_validate()
};
}
});
// node_modules/ajv/lib/compile/rules.js
var require_rules = __commonJS({
"node_modules/ajv/lib/compile/rules.js"(exports2, module2) {
"use strict";
var ruleModules = require_dotjs();
var toHash = require_util().toHash;
module2.exports = function rules() {
var RULES = [
{
type: "number",
rules: [
{ "maximum": ["exclusiveMaximum"] },
{ "minimum": ["exclusiveMinimum"] },
"multipleOf",
"format"
]
},
{
type: "string",
rules: ["maxLength", "minLength", "pattern", "format"]
},
{
type: "array",
rules: ["maxItems", "minItems", "items", "contains", "uniqueItems"]
},
{
type: "object",
rules: [
"maxProperties",
"minProperties",
"required",
"dependencies",
"propertyNames",
{ "properties": ["additionalProperties", "patternProperties"] }
]
},
{ rules: ["$ref", "const", "enum", "not", "anyOf", "oneOf", "allOf", "if"] }
];
var ALL = ["type", "$comment"];
var KEYWORDS = [
"$schema",
"$id",
"id",
"$data",
"$async",
"title",
"description",
"default",
"definitions",
"examples",
"readOnly",
"writeOnly",
"contentMediaType",
"contentEncoding",
"additionalItems",
"then",
"else"
];
var TYPES = ["number", "integer", "string", "array", "object", "boolean", "null"];
RULES.all = toHash(ALL);
RULES.types = toHash(TYPES);
RULES.forEach(function(group) {
group.rules = group.rules.map(function(keyword) {
var implKeywords;
if (typeof keyword == "object") {
var key = Object.keys(keyword)[0];
implKeywords = keyword[key];
keyword = key;
implKeywords.forEach(function(k) {
ALL.push(k);
RULES.all[k] = true;
});
}
ALL.push(keyword);
var rule = RULES.all[keyword] = {
keyword,
code: ruleModules[keyword],
implements: implKeywords
};
return rule;
});
RULES.all.$comment = {
keyword: "$comment",
code: ruleModules.$comment
};
if (group.type) RULES.types[group.type] = group;
});
RULES.keywords = toHash(ALL.concat(KEYWORDS));
RULES.custom = {};
return RULES;
};
}
});
// node_modules/ajv/lib/data.js
var require_data = __commonJS({
"node_modules/ajv/lib/data.js"(exports2, module2) {
"use strict";
var KEYWORDS = [
"multipleOf",
"maximum",
"exclusiveMaximum",
"minimum",
"exclusiveMinimum",
"maxLength",
"minLength",
"pattern",
"additionalItems",
"maxItems",
"minItems",
"uniqueItems",
"maxProperties",
"minProperties",
"required",
"additionalProperties",
"enum",
"format",
"const"
];
module2.exports = function(metaSchema, keywordsJsonPointers) {
for (var i = 0; i < keywordsJsonPointers.length; i++) {
metaSchema = JSON.parse(JSON.stringify(metaSchema));
var segments = keywordsJsonPointers[i].split("/");
var keywords = metaSchema;
var j;
for (j = 1; j < segments.length; j++)
keywords = keywords[segments[j]];
for (j = 0; j < KEYWORDS.length; j++) {
var key = KEYWORDS[j];
var schema = keywords[key];
if (schema) {
keywords[key] = {
anyOf: [
schema,
{ $ref: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#" }
]
};
}
}
}
return metaSchema;
};
}
});
// node_modules/ajv/lib/compile/async.js
var require_async = __commonJS({
"node_modules/ajv/lib/compile/async.js"(exports2, module2) {
"use strict";
var MissingRefError = require_error_classes().MissingRef;
module2.exports = compileAsync;
function compileAsync(schema, meta, callback) {
var self2 = this;
if (typeof this._opts.loadSchema != "function")
throw new Error("options.loadSchema should be a function");
if (typeof meta == "function") {
callback = meta;
meta = void 0;
}
var p = loadMetaSchemaOf(schema).then(function() {
var schemaObj = self2._addSchema(schema, void 0, meta);
return schemaObj.validate || _compileAsync(schemaObj);
});
if (callback) {
p.then(
function(v) {
callback(null, v);
},
callback
);
}
return p;
function loadMetaSchemaOf(sch) {
var $schema = sch.$schema;
return $schema && !self2.getSchema($schema) ? compileAsync.call(self2, { $ref: $schema }, true) : Promise.resolve();
}
function _compileAsync(schemaObj) {
try {
return self2._compile(schemaObj);
} catch (e) {
if (e instanceof MissingRefError) return loadMissingSchema(e);
throw e;
}
function loadMissingSchema(e) {
var ref = e.missingSchema;
if (added(ref)) throw new Error("Schema " + ref + " is loaded but " + e.missingRef + " cannot be resolved");
var schemaPromise = self2._loadingSchemas[ref];
if (!schemaPromise) {
schemaPromise = self2._loadingSchemas[ref] = self2._opts.loadSchema(ref);
schemaPromise.then(removePromise, removePromise);
}
return schemaPromise.then(function(sch) {
if (!added(ref)) {
return loadMetaSchemaOf(sch).then(function() {
if (!added(ref)) self2.addSchema(sch, ref, void 0, meta);
});
}
}).then(function() {
return _compileAsync(schemaObj);
});
function removePromise() {
delete self2._loadingSchemas[ref];
}
function added(ref2) {
return self2._refs[ref2] || self2._schemas[ref2];
}
}
}
}
}
});
// node_modules/ajv/lib/dotjs/custom.js
var require_custom = __commonJS({
"node_modules/ajv/lib/dotjs/custom.js"(exports2, module2) {
"use strict";
module2.exports = function generate_custom(it, $keyword, $ruleType) {
var out = " ";
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + "/" + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
var $data = "data" + ($dataLvl || "");
var $valid = "valid" + $lvl;
var $errs = "errs__" + $lvl;
var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;
if ($isData) {
out += " var schema" + $lvl + " = " + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + "; ";
$schemaValue = "schema" + $lvl;
} else {
$schemaValue = $schema;
}
var $rule = this, $definition = "definition" + $lvl, $rDef = $rule.definition, $closingBraces = "";
var $compile, $inline, $macro, $ruleValidate, $validateCode;
if ($isData && $rDef.$data) {
$validateCode = "keywordValidate" + $lvl;
var $validateSchema = $rDef.validateSchema;
out += " var " + $definition + " = RULES.custom['" + $keyword + "'].definition; var " + $validateCode + " = " + $definition + ".validate;";
} else {
$ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);
if (!$ruleValidate) return;
$schemaValue = "validate.schema" + $schemaPath;
$validateCode = $ruleValidate.code;
$compile = $rDef.compile;
$inline = $rDef.inline;
$macro = $rDef.macro;
}
var $ruleErrs = $validateCode + ".errors", $i = "i" + $lvl, $ruleErr = "ruleErr" + $lvl, $asyncKeyword = $rDef.async;
if ($asyncKeyword && !it.async) throw new Error("async keyword in sync schema");
if (!($inline || $macro)) {
out += "" + $ruleErrs + " = null;";
}
out += "var " + $errs + " = errors;var " + $valid + ";";
if ($isData && $rDef.$data) {
$closingBraces += "}";
out += " if (" + $schemaValue + " === undefined) { " + $valid + " = true; } else { ";
if ($validateSchema) {
$closingBraces += "}";
out += " " + $valid + " = " + $definition + ".validateSchema(" + $schemaValue + "); if (" + $valid + ") { ";
}
}
if ($inline) {
if ($rDef.statements) {
out += " " + $ruleValidate.validate + " ";
} else {
out += " " + $valid + " = " + $ruleValidate.validate + "; ";
}
} else if ($macro) {
var $it = it.util.copy(it);
var $closingBraces = "";
$it.level++;
var $nextValid = "valid" + $it.level;
$it.schema = $ruleValidate.validate;
$it.schemaPath = "";
var $wasComposite = it.compositeRule;
it.compositeRule = $it.compositeRule = true;
var $code = it.validate($it).replace(/validate\.schema/g, $validateCode);
it.compositeRule = $it.compositeRule = $wasComposite;
out += " " + $code;
} else {
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
out += " " + $validateCode + ".call( ";
if (it.opts.passContext) {
out += "this";
} else {
out += "self";
}
if ($compile || $rDef.schema === false) {
out += " , " + $data + " ";
} else {
out += " , " + $schemaValue + " , " + $data + " , validate.schema" + it.schemaPath + " ";
}
out += " , (dataPath || '')";
if (it.errorPath != '""') {
out += " + " + it.errorPath;
}
var $parentData = $dataLvl ? "data" + ($dataLvl - 1 || "") : "parentData", $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : "parentDataProperty";
out += " , " + $parentData + " , " + $parentDataProperty + " , rootData ) ";
var def_callRuleValidate = out;
out = $$outStack.pop();
if ($rDef.errors === false) {
out += " " + $valid + " = ";
if ($asyncKeyword) {
out += "await ";
}
out += "" + def_callRuleValidate + "; ";
} else {
if ($asyncKeyword) {
$ruleErrs = "customErrors" + $lvl;
out += " var " + $ruleErrs + " = null; try { " + $valid + " = await " + def_callRuleValidate + "; } catch (e) { " + $valid + " = false; if (e instanceof ValidationError) " + $ruleErrs + " = e.errors; else throw e; } ";
} else {
out += " " + $ruleErrs + " = null; " + $valid + " = " + def_callRuleValidate + "; ";
}
}
}
if ($rDef.modifying) {
out += " if (" + $parentData + ") " + $data + " = " + $parentData + "[" + $parentDataProperty + "];";
}
out += "" + $closingBraces;
if ($rDef.valid) {
if ($breakOnError) {
out += " if (true) { ";
}
} else {
out += " if ( ";
if ($rDef.valid === void 0) {
out += " !";
if ($macro) {
out += "" + $nextValid;
} else {
out += "" + $valid;
}
} else {
out += " " + !$rDef.valid + " ";
}
out += ") { ";
$errorKeyword = $rule.keyword;
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = "";
if (it.createErrors !== false) {
out += " { keyword: '" + ($errorKeyword || "custom") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { keyword: '" + $rule.keyword + "' } ";
if (it.opts.messages !== false) {
out += ` , message: 'should pass "` + $rule.keyword + `" keyword validation' `;
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
var __err = out;
out = $$outStack.pop();
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError([" + __err + "]); ";
} else {
out += " validate.errors = [" + __err + "]; return false; ";
}
} else {
out += " var err = " + __err + "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
}
var def_customError = out;
out = $$outStack.pop();
if ($inline) {
if ($rDef.errors) {
if ($rDef.errors != "full") {
out += " for (var " + $i + "=" + $errs + "; " + $i + "<errors; " + $i + "++) { var " + $ruleErr + " = vErrors[" + $i + "]; if (" + $ruleErr + ".dataPath === undefined) " + $ruleErr + ".dataPath = (dataPath || '') + " + it.errorPath + "; if (" + $ruleErr + ".schemaPath === undefined) { " + $ruleErr + '.schemaPath = "' + $errSchemaPath + '"; } ';
if (it.opts.verbose) {
out += " " + $ruleErr + ".schema = " + $schemaValue + "; " + $ruleErr + ".data = " + $data + "; ";
}
out += " } ";
}
} else {
if ($rDef.errors === false) {
out += " " + def_customError + " ";
} else {
out += " if (" + $errs + " == errors) { " + def_customError + " } else { for (var " + $i + "=" + $errs + "; " + $i + "<errors; " + $i + "++) { var " + $ruleErr + " = vErrors[" + $i + "]; if (" + $ruleErr + ".dataPath === undefined) " + $ruleErr + ".dataPath = (dataPath || '') + " + it.errorPath + "; if (" + $ruleErr + ".schemaPath === undefined) { " + $ruleErr + '.schemaPath = "' + $errSchemaPath + '"; } ';
if (it.opts.verbose) {
out += " " + $ruleErr + ".schema = " + $schemaValue + "; " + $ruleErr + ".data = " + $data + "; ";
}
out += " } } ";
}
}
} else if ($macro) {
out += " var err = ";
if (it.createErrors !== false) {
out += " { keyword: '" + ($errorKeyword || "custom") + "' , dataPath: (dataPath || '') + " + it.errorPath + " , schemaPath: " + it.util.toQuotedString($errSchemaPath) + " , params: { keyword: '" + $rule.keyword + "' } ";
if (it.opts.messages !== false) {
out += ` , message: 'should pass "` + $rule.keyword + `" keyword validation' `;
}
if (it.opts.verbose) {
out += " , schema: validate.schema" + $schemaPath + " , parentSchema: validate.schema" + it.schemaPath + " , data: " + $data + " ";
}
out += " } ";
} else {
out += " {} ";
}
out += "; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";
if (!it.compositeRule && $breakOnError) {
if (it.async) {
out += " throw new ValidationError(vErrors); ";
} else {
out += " validate.errors = vErrors; return false; ";
}
}
} else {
if ($rDef.errors === false) {
out += " " + def_customError + " ";
} else {
out += " if (Array.isArray(" + $ruleErrs + ")) { if (vErrors === null) vErrors = " + $ruleErrs + "; else vErrors = vErrors.concat(" + $ruleErrs + "); errors = vErrors.length; for (var " + $i + "=" + $errs + "; " + $i + "<errors; " + $i + "++) { var " + $ruleErr + " = vErrors[" + $i + "]; if (" + $ruleErr + ".dataPath === undefined) " + $ruleErr + ".dataPath = (dataPath || '') + " + it.errorPath + "; " + $ruleErr + '.schemaPath = "' + $errSchemaPath + '"; ';
if (it.opts.verbose) {
out += " " + $ruleErr + ".schema = " + $schemaValue + "; " + $ruleErr + ".data = " + $data + "; ";
}
out += " } } else { " + def_customError + " } ";
}
}
out += " } ";
if ($breakOnError) {
out += " else { ";
}
}
return out;
};
}
});
// node_modules/ajv/lib/refs/json-schema-draft-07.json
var require_json_schema_draft_07 = __commonJS({
"node_modules/ajv/lib/refs/json-schema-draft-07.json"(exports2, module2) {
module2.exports = {
$schema: "http://json-schema.org/draft-07/schema#",
$id: "http://json-schema.org/draft-07/schema#",
title: "Core schema meta-schema",
definitions: {
schemaArray: {
type: "array",
minItems: 1,
items: { $ref: "#" }
},
nonNegativeInteger: {
type: "integer",
minimum: 0
},
nonNegativeIntegerDefault0: {
allOf: [
{ $ref: "#/definitions/nonNegativeInteger" },
{ default: 0 }
]
},
simpleTypes: {
enum: [
"array",
"boolean",
"integer",
"null",
"number",
"object",
"string"
]
},
stringArray: {
type: "array",
items: { type: "string" },
uniqueItems: true,
default: []
}
},
type: ["object", "boolean"],
properties: {
$id: {
type: "string",
format: "uri-reference"
},
$schema: {
type: "string",
format: "uri"
},
$ref: {
type: "string",
format: "uri-reference"
},
$comment: {
type: "string"
},
title: {
type: "string"
},
description: {
type: "string"
},
default: true,
readOnly: {
type: "boolean",
default: false
},
examples: {
type: "array",
items: true
},
multipleOf: {
type: "number",
exclusiveMinimum: 0
},
maximum: {
type: "number"
},
exclusiveMaximum: {
type: "number"
},
minimum: {
type: "number"
},
exclusiveMinimum: {
type: "number"
},
maxLength: { $ref: "#/definitions/nonNegativeInteger" },
minLength: { $ref: "#/definitions/nonNegativeIntegerDefault0" },
pattern: {
type: "string",
format: "regex"
},
additionalItems: { $ref: "#" },
items: {
anyOf: [
{ $ref: "#" },
{ $ref: "#/definitions/schemaArray" }
],
default: true
},
maxItems: { $ref: "#/definitions/nonNegativeInteger" },
minItems: { $ref: "#/definitions/nonNegativeIntegerDefault0" },
uniqueItems: {
type: "boolean",
default: false
},
contains: { $ref: "#" },
maxProperties: { $ref: "#/definitions/nonNegativeInteger" },
minProperties: { $ref: "#/definitions/nonNegativeIntegerDefault0" },
required: { $ref: "#/definitions/stringArray" },
additionalProperties: { $ref: "#" },
definitions: {
type: "object",
additionalProperties: { $ref: "#" },
default: {}
},
properties: {
type: "object",
additionalProperties: { $ref: "#" },
default: {}
},
patternProperties: {
type: "object",
additionalProperties: { $ref: "#" },
propertyNames: { format: "regex" },
default: {}
},
dependencies: {
type: "object",
additionalProperties: {
anyOf: [
{ $ref: "#" },
{ $ref: "#/definitions/stringArray" }
]
}
},
propertyNames: { $ref: "#" },
const: true,
enum: {
type: "array",
items: true,
minItems: 1,
uniqueItems: true
},
type: {
anyOf: [
{ $ref: "#/definitions/simpleTypes" },
{
type: "array",
items: { $ref: "#/definitions/simpleTypes" },
minItems: 1,
uniqueItems: true
}
]
},
format: { type: "string" },
contentMediaType: { type: "string" },
contentEncoding: { type: "string" },
if: { $ref: "#" },
then: { $ref: "#" },
else: { $ref: "#" },
allOf: { $ref: "#/definitions/schemaArray" },
anyOf: { $ref: "#/definitions/schemaArray" },
oneOf: { $ref: "#/definitions/schemaArray" },
not: { $ref: "#" }
},
default: true
};
}
});
// node_modules/ajv/lib/definition_schema.js
var require_definition_schema = __commonJS({
"node_modules/ajv/lib/definition_schema.js"(exports2, module2) {
"use strict";
var metaSchema = require_json_schema_draft_07();
module2.exports = {
$id: "https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",
definitions: {
simpleTypes: metaSchema.definitions.simpleTypes
},
type: "object",
dependencies: {
schema: ["validate"],
$data: ["validate"],
statements: ["inline"],
valid: { not: { required: ["macro"] } }
},
properties: {
type: metaSchema.properties.type,
schema: { type: "boolean" },
statements: { type: "boolean" },
dependencies: {
type: "array",
items: { type: "string" }
},
metaSchema: { type: "object" },
modifying: { type: "boolean" },
valid: { type: "boolean" },
$data: { type: "boolean" },
async: { type: "boolean" },
errors: {
anyOf: [
{ type: "boolean" },
{ const: "full" }
]
}
}
};
}
});
// node_modules/ajv/lib/keyword.js
var require_keyword = __commonJS({
"node_modules/ajv/lib/keyword.js"(exports2, module2) {
"use strict";
var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;
var customRuleCode = require_custom();
var definitionSchema = require_definition_schema();
module2.exports = {
add: addKeyword,
get: getKeyword,
remove: removeKeyword,
validate: validateKeyword
};
function addKeyword(keyword, definition) {
var RULES = this.RULES;
if (RULES.keywords[keyword])
throw new Error("Keyword " + keyword + " is already defined");
if (!IDENTIFIER.test(keyword))
throw new Error("Keyword " + keyword + " is not a valid identifier");
if (definition) {
this.validateKeyword(definition, true);
var dataType = definition.type;
if (Array.isArray(dataType)) {
for (var i = 0; i < dataType.length; i++)
_addRule(keyword, dataType[i], definition);
} else {
_addRule(keyword, dataType, definition);
}
var metaSchema = definition.metaSchema;
if (metaSchema) {
if (definition.$data && this._opts.$data) {
metaSchema = {
anyOf: [
metaSchema,
{ "$ref": "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#" }
]
};
}
definition.validateSchema = this.compile(metaSchema, true);
}
}
RULES.keywords[keyword] = RULES.all[keyword] = true;
function _addRule(keyword2, dataType2, definition2) {
var ruleGroup;
for (var i2 = 0; i2 < RULES.length; i2++) {
var rg = RULES[i2];
if (rg.type == dataType2) {
ruleGroup = rg;
break;
}
}
if (!ruleGroup) {
ruleGroup = { type: dataType2, rules: [] };
RULES.push(ruleGroup);
}
var rule = {
keyword: keyword2,
definition: definition2,
custom: true,
code: customRuleCode,
implements: definition2.implements
};
ruleGroup.rules.push(rule);
RULES.custom[keyword2] = rule;
}
return this;
}
function getKeyword(keyword) {
var rule = this.RULES.custom[keyword];
return rule ? rule.definition : this.RULES.keywords[keyword] || false;
}
function removeKeyword(keyword) {
var RULES = this.RULES;
delete RULES.keywords[keyword];
delete RULES.all[keyword];
delete RULES.custom[keyword];
for (var i = 0; i < RULES.length; i++) {
var rules = RULES[i].rules;
for (var j = 0; j < rules.length; j++) {
if (rules[j].keyword == keyword) {
rules.splice(j, 1);
break;
}
}
}
return this;
}
function validateKeyword(definition, throwError) {
validateKeyword.errors = null;
var v = this._validateKeyword = this._validateKeyword || this.compile(definitionSchema, true);
if (v(definition)) return true;
validateKeyword.errors = v.errors;
if (throwError)
throw new Error("custom keyword definition is invalid: " + this.errorsText(v.errors));
else
return false;
}
}
});
// node_modules/ajv/lib/refs/data.json
var require_data2 = __commonJS({
"node_modules/ajv/lib/refs/data.json"(exports2, module2) {
module2.exports = {
$schema: "http://json-schema.org/draft-07/schema#",
$id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
description: "Meta-schema for $data reference (JSON Schema extension proposal)",
type: "object",
required: ["$data"],
properties: {
$data: {
type: "string",
anyOf: [
{ format: "relative-json-pointer" },
{ format: "json-pointer" }
]
}
},
additionalProperties: false
};
}
});
// node_modules/ajv/lib/ajv.js
var require_ajv = __commonJS({
"node_modules/ajv/lib/ajv.js"(exports2, module2) {
"use strict";
var compileSchema = require_compile();
var resolve = require_resolve();
var Cache = require_cache();
var SchemaObject = require_schema_obj();
var stableStringify = require_fast_json_stable_stringify();
var formats = require_formats();
var rules = require_rules();
var $dataMetaSchema = require_data();
var util5 = require_util();
module2.exports = Ajv2;
Ajv2.prototype.validate = validate;
Ajv2.prototype.compile = compile;
Ajv2.prototype.addSchema = addSchema;
Ajv2.prototype.addMetaSchema = addMetaSchema;
Ajv2.prototype.validateSchema = validateSchema;
Ajv2.prototype.getSchema = getSchema;
Ajv2.prototype.removeSchema = removeSchema;
Ajv2.prototype.addFormat = addFormat3;
Ajv2.prototype.errorsText = errorsText;
Ajv2.prototype._addSchema = _addSchema;
Ajv2.prototype._compile = _compile;
Ajv2.prototype.compileAsync = require_async();
var customKeyword = require_keyword();
Ajv2.prototype.addKeyword = customKeyword.add;
Ajv2.prototype.getKeyword = customKeyword.get;
Ajv2.prototype.removeKeyword = customKeyword.remove;
Ajv2.prototype.validateKeyword = customKeyword.validate;
var errorClasses = require_error_classes();
Ajv2.ValidationError = errorClasses.Validation;
Ajv2.MissingRefError = errorClasses.MissingRef;
Ajv2.$dataMetaSchema = $dataMetaSchema;
var META_SCHEMA_ID = "http://json-schema.org/draft-07/schema";
var META_IGNORE_OPTIONS = ["removeAdditional", "useDefaults", "coerceTypes", "strictDefaults"];
var META_SUPPORT_DATA = ["/properties"];
function Ajv2(opts) {
if (!(this instanceof Ajv2)) return new Ajv2(opts);
opts = this._opts = util5.copy(opts) || {};
setLogger(this);
this._schemas = {};
this._refs = {};
this._fragments = {};
this._formats = formats(opts.format);
this._cache = opts.cache || new Cache();
this._loadingSchemas = {};
this._compilations = [];
this.RULES = rules();
this._getId = chooseGetId(opts);
opts.loopRequired = opts.loopRequired || Infinity;
if (opts.errorDataPath == "property") opts._errorDataPathProperty = true;
if (opts.serialize === void 0) opts.serialize = stableStringify;
this._metaOpts = getMetaSchemaOptions(this);
if (opts.formats) addInitialFormats(this);
if (opts.keywords) addInitialKeywords(this);
addDefaultMetaSchema(this);
if (typeof opts.meta == "object") this.addMetaSchema(opts.meta);
if (opts.nullable) this.addKeyword("nullable", { metaSchema: { type: "boolean" } });
addInitialSchemas(this);
}
function validate(schemaKeyRef, data) {
var v;
if (typeof schemaKeyRef == "string") {
v = this.getSchema(schemaKeyRef);
if (!v) throw new Error('no schema with key or ref "' + schemaKeyRef + '"');
} else {
var schemaObj = this._addSchema(schemaKeyRef);
v = schemaObj.validate || this._compile(schemaObj);
}
var valid = v(data);
if (v.$async !== true) this.errors = v.errors;
return valid;
}
function compile(schema, _meta) {
var schemaObj = this._addSchema(schema, void 0, _meta);
return schemaObj.validate || this._compile(schemaObj);
}
function addSchema(schema, key, _skipValidation, _meta) {
if (Array.isArray(schema)) {
for (var i = 0; i < schema.length; i++) this.addSchema(schema[i], void 0, _skipValidation, _meta);
return this;
}
var id = this._getId(schema);
if (id !== void 0 && typeof id != "string")
throw new Error("schema id must be string");
key = resolve.normalizeId(key || id);
checkUnique(this, key);
this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);
return this;
}
function addMetaSchema(schema, key, skipValidation) {
this.addSchema(schema, key, skipValidation, true);
return this;
}
function validateSchema(schema, throwOrLogError) {
var $schema = schema.$schema;
if ($schema !== void 0 && typeof $schema != "string")
throw new Error("$schema must be a string");
$schema = $schema || this._opts.defaultMeta || defaultMeta(this);
if (!$schema) {
this.logger.warn("meta-schema not available");
this.errors = null;
return true;
}
var valid = this.validate($schema, schema);
if (!valid && throwOrLogError) {
var message = "schema is invalid: " + this.errorsText();
if (this._opts.validateSchema == "log") this.logger.error(message);
else throw new Error(message);
}
return valid;
}
function defaultMeta(self2) {
var meta = self2._opts.meta;
self2._opts.defaultMeta = typeof meta == "object" ? self2._getId(meta) || meta : self2.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : void 0;
return self2._opts.defaultMeta;
}
function getSchema(keyRef) {
var schemaObj = _getSchemaObj(this, keyRef);
switch (typeof schemaObj) {
case "object":
return schemaObj.validate || this._compile(schemaObj);
case "string":
return this.getSchema(schemaObj);
case "undefined":
return _getSchemaFragment(this, keyRef);
}
}
function _getSchemaFragment(self2, ref) {
var res = resolve.schema.call(self2, { schema: {} }, ref);
if (res) {
var schema = res.schema, root = res.root, baseId = res.baseId;
var v = compileSchema.call(self2, schema, root, void 0, baseId);
self2._fragments[ref] = new SchemaObject({
ref,
fragment: true,
schema,
root,
baseId,
validate: v
});
return v;
}
}
function _getSchemaObj(self2, keyRef) {
keyRef = resolve.normalizeId(keyRef);
return self2._schemas[keyRef] || self2._refs[keyRef] || self2._fragments[keyRef];
}
function removeSchema(schemaKeyRef) {
if (schemaKeyRef instanceof RegExp) {
_removeAllSchemas(this, this._schemas, schemaKeyRef);
_removeAllSchemas(this, this._refs, schemaKeyRef);
return this;
}
switch (typeof schemaKeyRef) {
case "undefined":
_removeAllSchemas(this, this._schemas);
_removeAllSchemas(this, this._refs);
this._cache.clear();
return this;
case "string":
var schemaObj = _getSchemaObj(this, schemaKeyRef);
if (schemaObj) this._cache.del(schemaObj.cacheKey);
delete this._schemas[schemaKeyRef];
delete this._refs[schemaKeyRef];
return this;
case "object":
var serialize = this._opts.serialize;
var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;
this._cache.del(cacheKey);
var id = this._getId(schemaKeyRef);
if (id) {
id = resolve.normalizeId(id);
delete this._schemas[id];
delete this._refs[id];
}
}
return this;
}
function _removeAllSchemas(self2, schemas, regex) {
for (var keyRef in schemas) {
var schemaObj = schemas[keyRef];
if (!schemaObj.meta && (!regex || regex.test(keyRef))) {
self2._cache.del(schemaObj.cacheKey);
delete schemas[keyRef];
}
}
}
function _addSchema(schema, skipValidation, meta, shouldAddSchema) {
if (typeof schema != "object" && typeof schema != "boolean")
throw new Error("schema should be object or boolean");
var serialize = this._opts.serialize;
var cacheKey = serialize ? serialize(schema) : schema;
var cached = this._cache.get(cacheKey);
if (cached) return cached;
shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;
var id = resolve.normalizeId(this._getId(schema));
if (id && shouldAddSchema) checkUnique(this, id);
var willValidate = this._opts.validateSchema !== false && !skipValidation;
var recursiveMeta;
if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))
this.validateSchema(schema, true);
var localRefs = resolve.ids.call(this, schema);
var schemaObj = new SchemaObject({
id,
schema,
localRefs,
cacheKey,
meta
});
if (id[0] != "#" && shouldAddSchema) this._refs[id] = schemaObj;
this._cache.put(cacheKey, schemaObj);
if (willValidate && recursiveMeta) this.validateSchema(schema, true);
return schemaObj;
}
function _compile(schemaObj, root) {
if (schemaObj.compiling) {
schemaObj.validate = callValidate;
callValidate.schema = schemaObj.schema;
callValidate.errors = null;
callValidate.root = root ? root : callValidate;
if (schemaObj.schema.$async === true)
callValidate.$async = true;
return callValidate;
}
schemaObj.compiling = true;
var currentOpts;
if (schemaObj.meta) {
currentOpts = this._opts;
this._opts = this._metaOpts;
}
var v;
try {
v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs);
} catch (e) {
delete schemaObj.validate;
throw e;
} finally {
schemaObj.compiling = false;
if (schemaObj.meta) this._opts = currentOpts;
}
schemaObj.validate = v;
schemaObj.refs = v.refs;
schemaObj.refVal = v.refVal;
schemaObj.root = v.root;
return v;
function callValidate() {
var _validate = schemaObj.validate;
var result = _validate.apply(this, arguments);
callValidate.errors = _validate.errors;
return result;
}
}
function chooseGetId(opts) {
switch (opts.schemaId) {
case "auto":
return _get$IdOrId;
case "id":
return _getId;
default:
return _get$Id;
}
}
function _getId(schema) {
if (schema.$id) this.logger.warn("schema $id ignored", schema.$id);
return schema.id;
}
function _get$Id(schema) {
if (schema.id) this.logger.warn("schema id ignored", schema.id);
return schema.$id;
}
function _get$IdOrId(schema) {
if (schema.$id && schema.id && schema.$id != schema.id)
throw new Error("schema $id is different from id");
return schema.$id || schema.id;
}
function errorsText(errors, options) {
errors = errors || this.errors;
if (!errors) return "No errors";
options = options || {};
var separator = options.separator === void 0 ? ", " : options.separator;
var dataVar = options.dataVar === void 0 ? "data" : options.dataVar;
var text = "";
for (var i = 0; i < errors.length; i++) {
var e = errors[i];
if (e) text += dataVar + e.dataPath + " " + e.message + separator;
}
return text.slice(0, -separator.length);
}
function addFormat3(name, format) {
if (typeof format == "string") format = new RegExp(format);
this._formats[name] = format;
return this;
}
function addDefaultMetaSchema(self2) {
var $dataSchema;
if (self2._opts.$data) {
$dataSchema = require_data2();
self2.addMetaSchema($dataSchema, $dataSchema.$id, true);
}
if (self2._opts.meta === false) return;
var metaSchema = require_json_schema_draft_07();
if (self2._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);
self2.addMetaSchema(metaSchema, META_SCHEMA_ID, true);
self2._refs["http://json-schema.org/schema"] = META_SCHEMA_ID;
}
function addInitialSchemas(self2) {
var optsSchemas = self2._opts.schemas;
if (!optsSchemas) return;
if (Array.isArray(optsSchemas)) self2.addSchema(optsSchemas);
else for (var key in optsSchemas) self2.addSchema(optsSchemas[key], key);
}
function addInitialFormats(self2) {
for (var name in self2._opts.formats) {
var format = self2._opts.formats[name];
self2.addFormat(name, format);
}
}
function addInitialKeywords(self2) {
for (var name in self2._opts.keywords) {
var keyword = self2._opts.keywords[name];
self2.addKeyword(name, keyword);
}
}
function checkUnique(self2, id) {
if (self2._schemas[id] || self2._refs[id])
throw new Error('schema with key or id "' + id + '" already exists');
}
function getMetaSchemaOptions(self2) {
var metaOpts = util5.copy(self2._opts);
for (var i = 0; i < META_IGNORE_OPTIONS.length; i++)
delete metaOpts[META_IGNORE_OPTIONS[i]];
return metaOpts;
}
function setLogger(self2) {
var logger = self2._opts.logger;
if (logger === false) {
self2.logger = { log: noop2, warn: noop2, error: noop2 };
} else {
if (logger === void 0) logger = console;
if (!(typeof logger == "object" && logger.log && logger.warn && logger.error))
throw new Error("logger must implement log, warn and error methods");
self2.logger = logger;
}
}
function noop2() {
}
}
});
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
var import_ajv, Server;
var init_server = __esm({
"node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js"() {
init_protocol();
init_types();
import_ajv = __toESM(require_ajv(), 1);
Server = class extends Protocol {
/**
* Initializes this server with the given name and version information.
*/
constructor(_serverInfo, options) {
var _a;
super(options);
this._serverInfo = _serverInfo;
this._capabilities = (_a = options === null || options === void 0 ? void 0 : options.capabilities) !== null && _a !== void 0 ? _a : {};
this._instructions = options === null || options === void 0 ? void 0 : options.instructions;
this.setRequestHandler(InitializeRequestSchema, (request) => this._oninitialize(request));
this.setNotificationHandler(InitializedNotificationSchema, () => {
var _a2;
return (_a2 = this.oninitialized) === null || _a2 === void 0 ? void 0 : _a2.call(this);
});
}
/**
* Registers new capabilities. This can only be called before connecting to a transport.
*
* The new capabilities will be merged with any existing capabilities previously given (e.g., at initialization).
*/
registerCapabilities(capabilities) {
if (this.transport) {
throw new Error("Cannot register capabilities after connecting to transport");
}
this._capabilities = mergeCapabilities(this._capabilities, capabilities);
}
assertCapabilityForMethod(method) {
var _a, _b, _c;
switch (method) {
case "sampling/createMessage":
if (!((_a = this._clientCapabilities) === null || _a === void 0 ? void 0 : _a.sampling)) {
throw new Error(`Client does not support sampling (required for ${method})`);
}
break;
case "elicitation/create":
if (!((_b = this._clientCapabilities) === null || _b === void 0 ? void 0 : _b.elicitation)) {
throw new Error(`Client does not support elicitation (required for ${method})`);
}
break;
case "roots/list":
if (!((_c = this._clientCapabilities) === null || _c === void 0 ? void 0 : _c.roots)) {
throw new Error(`Client does not support listing roots (required for ${method})`);
}
break;
case "ping":
break;
}
}
assertNotificationCapability(method) {
switch (method) {
case "notifications/message":
if (!this._capabilities.logging) {
throw new Error(`Server does not support logging (required for ${method})`);
}
break;
case "notifications/resources/updated":
case "notifications/resources/list_changed":
if (!this._capabilities.resources) {
throw new Error(`Server does not support notifying about resources (required for ${method})`);
}
break;
case "notifications/tools/list_changed":
if (!this._capabilities.tools) {
throw new Error(`Server does not support notifying of tool list changes (required for ${method})`);
}
break;
case "notifications/prompts/list_changed":
if (!this._capabilities.prompts) {
throw new Error(`Server does not support notifying of prompt list changes (required for ${method})`);
}
break;
case "notifications/cancelled":
break;
case "notifications/progress":
break;
}
}
assertRequestHandlerCapability(method) {
switch (method) {
case "sampling/createMessage":
if (!this._capabilities.sampling) {
throw new Error(`Server does not support sampling (required for ${method})`);
}
break;
case "logging/setLevel":
if (!this._capabilities.logging) {
throw new Error(`Server does not support logging (required for ${method})`);
}
break;
case "prompts/get":
case "prompts/list":
if (!this._capabilities.prompts) {
throw new Error(`Server does not support prompts (required for ${method})`);
}
break;
case "resources/list":
case "resources/templates/list":
case "resources/read":
if (!this._capabilities.resources) {
throw new Error(`Server does not support resources (required for ${method})`);
}
break;
case "tools/call":
case "tools/list":
if (!this._capabilities.tools) {
throw new Error(`Server does not support tools (required for ${method})`);
}
break;
case "ping":
case "initialize":
break;
}
}
async _oninitialize(request) {
const requestedVersion = request.params.protocolVersion;
this._clientCapabilities = request.params.capabilities;
this._clientVersion = request.params.clientInfo;
const protocolVersion = SUPPORTED_PROTOCOL_VERSIONS.includes(requestedVersion) ? requestedVersion : LATEST_PROTOCOL_VERSION;
return {
protocolVersion,
capabilities: this.getCapabilities(),
serverInfo: this._serverInfo,
...this._instructions && { instructions: this._instructions }
};
}
/**
* After initialization has completed, this will be populated with the client's reported capabilities.
*/
getClientCapabilities() {
return this._clientCapabilities;
}
/**
* After initialization has completed, this will be populated with information about the client's name and version.
*/
getClientVersion() {
return this._clientVersion;
}
getCapabilities() {
return this._capabilities;
}
async ping() {
return this.request({ method: "ping" }, EmptyResultSchema);
}
async createMessage(params, options) {
return this.request({ method: "sampling/createMessage", params }, CreateMessageResultSchema, options);
}
async elicitInput(params, options) {
const result = await this.request({ method: "elicitation/create", params }, ElicitResultSchema, options);
if (result.action === "accept" && result.content) {
try {
const ajv = new import_ajv.default();
const validate = ajv.compile(params.requestedSchema);
const isValid3 = validate(result.content);
if (!isValid3) {
throw new McpError(ErrorCode.InvalidParams, `Elicitation response content does not match requested schema: ${ajv.errorsText(validate.errors)}`);
}
} catch (error) {
if (error instanceof McpError) {
throw error;
}
throw new McpError(ErrorCode.InternalError, `Error validating elicitation response: ${error}`);
}
}
return result;
}
async listRoots(params, options) {
return this.request({ method: "roots/list", params }, ListRootsResultSchema, options);
}
async sendLoggingMessage(params) {
return this.notification({ method: "notifications/message", params });
}
async sendResourceUpdated(params) {
return this.notification({
method: "notifications/resources/updated",
params
});
}
async sendResourceListChanged() {
return this.notification({
method: "notifications/resources/list_changed"
});
}
async sendToolListChanged() {
return this.notification({ method: "notifications/tools/list_changed" });
}
async sendPromptListChanged() {
return this.notification({ method: "notifications/prompts/list_changed" });
}
};
}
});
// node_modules/zod-to-json-schema/dist/esm/Options.js
var ignoreOverride, defaultOptions, getDefaultOptions;
var init_Options = __esm({
"node_modules/zod-to-json-schema/dist/esm/Options.js"() {
ignoreOverride = Symbol("Let zodToJsonSchema decide on which parser to use");
defaultOptions = {
name: void 0,
$refStrategy: "root",
basePath: ["#"],
effectStrategy: "input",
pipeStrategy: "all",
dateStrategy: "format:date-time",
mapStrategy: "entries",
removeAdditionalStrategy: "passthrough",
allowedAdditionalProperties: true,
rejectedAdditionalProperties: false,
definitionPath: "definitions",
target: "jsonSchema7",
strictUnions: false,
definitions: {},
errorMessages: false,
markdownDescription: false,
patternStrategy: "escape",
applyRegexFlags: false,
emailStrategy: "format:email",
base64Strategy: "contentEncoding:base64",
nameStrategy: "ref"
};
getDefaultOptions = (options) => typeof options === "string" ? {
...defaultOptions,
name: options
} : {
...defaultOptions,
...options
};
}
});
// node_modules/zod-to-json-schema/dist/esm/Refs.js
var getRefs;
var init_Refs = __esm({
"node_modules/zod-to-json-schema/dist/esm/Refs.js"() {
init_Options();
getRefs = (options) => {
const _options = getDefaultOptions(options);
const currentPath = _options.name !== void 0 ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath;
return {
..._options,
currentPath,
propertyPath: void 0,
seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [
def._def,
{
def: def._def,
path: [..._options.basePath, _options.definitionPath, name],
// Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.
jsonSchema: void 0
}
]))
};
};
}
});
// node_modules/zod-to-json-schema/dist/esm/errorMessages.js
function addErrorMessage(res, key, errorMessage, refs) {
if (!refs?.errorMessages)
return;
if (errorMessage) {
res.errorMessage = {
...res.errorMessage,
[key]: errorMessage
};
}
}
function setResponseValueAndErrors(res, key, value, errorMessage, refs) {
res[key] = value;
addErrorMessage(res, key, errorMessage, refs);
}
var init_errorMessages = __esm({
"node_modules/zod-to-json-schema/dist/esm/errorMessages.js"() {
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/any.js
function parseAnyDef() {
return {};
}
var init_any = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/any.js"() {
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/array.js
function parseArrayDef(def, refs) {
const res = {
type: "array"
};
if (def.type?._def && def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny) {
res.items = parseDef(def.type._def, {
...refs,
currentPath: [...refs.currentPath, "items"]
});
}
if (def.minLength) {
setResponseValueAndErrors(res, "minItems", def.minLength.value, def.minLength.message, refs);
}
if (def.maxLength) {
setResponseValueAndErrors(res, "maxItems", def.maxLength.value, def.maxLength.message, refs);
}
if (def.exactLength) {
setResponseValueAndErrors(res, "minItems", def.exactLength.value, def.exactLength.message, refs);
setResponseValueAndErrors(res, "maxItems", def.exactLength.value, def.exactLength.message, refs);
}
return res;
}
var init_array = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/array.js"() {
init_lib();
init_errorMessages();
init_parseDef();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js
function parseBigintDef(def, refs) {
const res = {
type: "integer",
format: "int64"
};
if (!def.checks)
return res;
for (const check of def.checks) {
switch (check.kind) {
case "min":
if (refs.target === "jsonSchema7") {
if (check.inclusive) {
setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
} else {
setResponseValueAndErrors(res, "exclusiveMinimum", check.value, check.message, refs);
}
} else {
if (!check.inclusive) {
res.exclusiveMinimum = true;
}
setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
}
break;
case "max":
if (refs.target === "jsonSchema7") {
if (check.inclusive) {
setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
} else {
setResponseValueAndErrors(res, "exclusiveMaximum", check.value, check.message, refs);
}
} else {
if (!check.inclusive) {
res.exclusiveMaximum = true;
}
setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
}
break;
case "multipleOf":
setResponseValueAndErrors(res, "multipleOf", check.value, check.message, refs);
break;
}
}
return res;
}
var init_bigint = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js"() {
init_errorMessages();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js
function parseBooleanDef() {
return {
type: "boolean"
};
}
var init_boolean = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js"() {
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/branded.js
function parseBrandedDef(_def, refs) {
return parseDef(_def.type._def, refs);
}
var init_branded = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/branded.js"() {
init_parseDef();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/catch.js
var parseCatchDef;
var init_catch = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/catch.js"() {
init_parseDef();
parseCatchDef = (def, refs) => {
return parseDef(def.innerType._def, refs);
};
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/date.js
function parseDateDef(def, refs, overrideDateStrategy) {
const strategy = overrideDateStrategy ?? refs.dateStrategy;
if (Array.isArray(strategy)) {
return {
anyOf: strategy.map((item, i) => parseDateDef(def, refs, item))
};
}
switch (strategy) {
case "string":
case "format:date-time":
return {
type: "string",
format: "date-time"
};
case "format:date":
return {
type: "string",
format: "date"
};
case "integer":
return integerDateParser(def, refs);
}
}
var integerDateParser;
var init_date = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/date.js"() {
init_errorMessages();
integerDateParser = (def, refs) => {
const res = {
type: "integer",
format: "unix-time"
};
if (refs.target === "openApi3") {
return res;
}
for (const check of def.checks) {
switch (check.kind) {
case "min":
setResponseValueAndErrors(
res,
"minimum",
check.value,
// This is in milliseconds
check.message,
refs
);
break;
case "max":
setResponseValueAndErrors(
res,
"maximum",
check.value,
// This is in milliseconds
check.message,
refs
);
break;
}
}
return res;
};
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/default.js
function parseDefaultDef(_def, refs) {
return {
...parseDef(_def.innerType._def, refs),
default: _def.defaultValue()
};
}
var init_default = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/default.js"() {
init_parseDef();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
function parseEffectsDef(_def, refs) {
return refs.effectStrategy === "input" ? parseDef(_def.schema._def, refs) : {};
}
var init_effects = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/effects.js"() {
init_parseDef();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/enum.js
function parseEnumDef(def) {
return {
type: "string",
enum: Array.from(def.values)
};
}
var init_enum = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/enum.js"() {
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js
function parseIntersectionDef(def, refs) {
const allOf = [
parseDef(def.left._def, {
...refs,
currentPath: [...refs.currentPath, "allOf", "0"]
}),
parseDef(def.right._def, {
...refs,
currentPath: [...refs.currentPath, "allOf", "1"]
})
].filter((x) => !!x);
let unevaluatedProperties = refs.target === "jsonSchema2019-09" ? { unevaluatedProperties: false } : void 0;
const mergedAllOf = [];
allOf.forEach((schema) => {
if (isJsonSchema7AllOfType(schema)) {
mergedAllOf.push(...schema.allOf);
if (schema.unevaluatedProperties === void 0) {
unevaluatedProperties = void 0;
}
} else {
let nestedSchema = schema;
if ("additionalProperties" in schema && schema.additionalProperties === false) {
const { additionalProperties, ...rest } = schema;
nestedSchema = rest;
} else {
unevaluatedProperties = void 0;
}
mergedAllOf.push(nestedSchema);
}
});
return mergedAllOf.length ? {
allOf: mergedAllOf,
...unevaluatedProperties
} : void 0;
}
var isJsonSchema7AllOfType;
var init_intersection = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js"() {
init_parseDef();
isJsonSchema7AllOfType = (type) => {
if ("type" in type && type.type === "string")
return false;
return "allOf" in type;
};
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/literal.js
function parseLiteralDef(def, refs) {
const parsedType = typeof def.value;
if (parsedType !== "bigint" && parsedType !== "number" && parsedType !== "boolean" && parsedType !== "string") {
return {
type: Array.isArray(def.value) ? "array" : "object"
};
}
if (refs.target === "openApi3") {
return {
type: parsedType === "bigint" ? "integer" : parsedType,
enum: [def.value]
};
}
return {
type: parsedType === "bigint" ? "integer" : parsedType,
const: def.value
};
}
var init_literal = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/literal.js"() {
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/string.js
function parseStringDef(def, refs) {
const res = {
type: "string"
};
if (def.checks) {
for (const check of def.checks) {
switch (check.kind) {
case "min":
setResponseValueAndErrors(res, "minLength", typeof res.minLength === "number" ? Math.max(res.minLength, check.value) : check.value, check.message, refs);
break;
case "max":
setResponseValueAndErrors(res, "maxLength", typeof res.maxLength === "number" ? Math.min(res.maxLength, check.value) : check.value, check.message, refs);
break;
case "email":
switch (refs.emailStrategy) {
case "format:email":
addFormat(res, "email", check.message, refs);
break;
case "format:idn-email":
addFormat(res, "idn-email", check.message, refs);
break;
case "pattern:zod":
addPattern(res, zodPatterns.email, check.message, refs);
break;
}
break;
case "url":
addFormat(res, "uri", check.message, refs);
break;
case "uuid":
addFormat(res, "uuid", check.message, refs);
break;
case "regex":
addPattern(res, check.regex, check.message, refs);
break;
case "cuid":
addPattern(res, zodPatterns.cuid, check.message, refs);
break;
case "cuid2":
addPattern(res, zodPatterns.cuid2, check.message, refs);
break;
case "startsWith":
addPattern(res, RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`), check.message, refs);
break;
case "endsWith":
addPattern(res, RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`), check.message, refs);
break;
case "datetime":
addFormat(res, "date-time", check.message, refs);
break;
case "date":
addFormat(res, "date", check.message, refs);
break;
case "time":
addFormat(res, "time", check.message, refs);
break;
case "duration":
addFormat(res, "duration", check.message, refs);
break;
case "length":
setResponseValueAndErrors(res, "minLength", typeof res.minLength === "number" ? Math.max(res.minLength, check.value) : check.value, check.message, refs);
setResponseValueAndErrors(res, "maxLength", typeof res.maxLength === "number" ? Math.min(res.maxLength, check.value) : check.value, check.message, refs);
break;
case "includes": {
addPattern(res, RegExp(escapeLiteralCheckValue(check.value, refs)), check.message, refs);
break;
}
case "ip": {
if (check.version !== "v6") {
addFormat(res, "ipv4", check.message, refs);
}
if (check.version !== "v4") {
addFormat(res, "ipv6", check.message, refs);
}
break;
}
case "base64url":
addPattern(res, zodPatterns.base64url, check.message, refs);
break;
case "jwt":
addPattern(res, zodPatterns.jwt, check.message, refs);
break;
case "cidr": {
if (check.version !== "v6") {
addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);
}
if (check.version !== "v4") {
addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);
}
break;
}
case "emoji":
addPattern(res, zodPatterns.emoji(), check.message, refs);
break;
case "ulid": {
addPattern(res, zodPatterns.ulid, check.message, refs);
break;
}
case "base64": {
switch (refs.base64Strategy) {
case "format:binary": {
addFormat(res, "binary", check.message, refs);
break;
}
case "contentEncoding:base64": {
setResponseValueAndErrors(res, "contentEncoding", "base64", check.message, refs);
break;
}
case "pattern:zod": {
addPattern(res, zodPatterns.base64, check.message, refs);
break;
}
}
break;
}
case "nanoid": {
addPattern(res, zodPatterns.nanoid, check.message, refs);
}
case "toLowerCase":
case "toUpperCase":
case "trim":
break;
default:
/* @__PURE__ */ ((_) => {
})(check);
}
}
}
return res;
}
function escapeLiteralCheckValue(literal, refs) {
return refs.patternStrategy === "escape" ? escapeNonAlphaNumeric(literal) : literal;
}
function escapeNonAlphaNumeric(source) {
let result = "";
for (let i = 0; i < source.length; i++) {
if (!ALPHA_NUMERIC.has(source[i])) {
result += "\\";
}
result += source[i];
}
return result;
}
function addFormat(schema, value, message, refs) {
if (schema.format || schema.anyOf?.some((x) => x.format)) {
if (!schema.anyOf) {
schema.anyOf = [];
}
if (schema.format) {
schema.anyOf.push({
format: schema.format,
...schema.errorMessage && refs.errorMessages && {
errorMessage: { format: schema.errorMessage.format }
}
});
delete schema.format;
if (schema.errorMessage) {
delete schema.errorMessage.format;
if (Object.keys(schema.errorMessage).length === 0) {
delete schema.errorMessage;
}
}
}
schema.anyOf.push({
format: value,
...message && refs.errorMessages && { errorMessage: { format: message } }
});
} else {
setResponseValueAndErrors(schema, "format", value, message, refs);
}
}
function addPattern(schema, regex, message, refs) {
if (schema.pattern || schema.allOf?.some((x) => x.pattern)) {
if (!schema.allOf) {
schema.allOf = [];
}
if (schema.pattern) {
schema.allOf.push({
pattern: schema.pattern,
...schema.errorMessage && refs.errorMessages && {
errorMessage: { pattern: schema.errorMessage.pattern }
}
});
delete schema.pattern;
if (schema.errorMessage) {
delete schema.errorMessage.pattern;
if (Object.keys(schema.errorMessage).length === 0) {
delete schema.errorMessage;
}
}
}
schema.allOf.push({
pattern: stringifyRegExpWithFlags(regex, refs),
...message && refs.errorMessages && { errorMessage: { pattern: message } }
});
} else {
setResponseValueAndErrors(schema, "pattern", stringifyRegExpWithFlags(regex, refs), message, refs);
}
}
function stringifyRegExpWithFlags(regex, refs) {
if (!refs.applyRegexFlags || !regex.flags) {
return regex.source;
}
const flags = {
i: regex.flags.includes("i"),
m: regex.flags.includes("m"),
s: regex.flags.includes("s")
// `.` matches newlines
};
const source = flags.i ? regex.source.toLowerCase() : regex.source;
let pattern = "";
let isEscaped = false;
let inCharGroup = false;
let inCharRange = false;
for (let i = 0; i < source.length; i++) {
if (isEscaped) {
pattern += source[i];
isEscaped = false;
continue;
}
if (flags.i) {
if (inCharGroup) {
if (source[i].match(/[a-z]/)) {
if (inCharRange) {
pattern += source[i];
pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();
inCharRange = false;
} else if (source[i + 1] === "-" && source[i + 2]?.match(/[a-z]/)) {
pattern += source[i];
inCharRange = true;
} else {
pattern += `${source[i]}${source[i].toUpperCase()}`;
}
continue;
}
} else if (source[i].match(/[a-z]/)) {
pattern += `[${source[i]}${source[i].toUpperCase()}]`;
continue;
}
}
if (flags.m) {
if (source[i] === "^") {
pattern += `(^|(?<=[\r
]))`;
continue;
} else if (source[i] === "$") {
pattern += `($|(?=[\r
]))`;
continue;
}
}
if (flags.s && source[i] === ".") {
pattern += inCharGroup ? `${source[i]}\r
` : `[${source[i]}\r
]`;
continue;
}
pattern += source[i];
if (source[i] === "\\") {
isEscaped = true;
} else if (inCharGroup && source[i] === "]") {
inCharGroup = false;
} else if (!inCharGroup && source[i] === "[") {
inCharGroup = true;
}
}
try {
new RegExp(pattern);
} catch {
console.warn(`Could not convert regex pattern at ${refs.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`);
return regex.source;
}
return pattern;
}
var emojiRegex2, zodPatterns, ALPHA_NUMERIC;
var init_string = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/string.js"() {
init_errorMessages();
emojiRegex2 = void 0;
zodPatterns = {
/**
* `c` was changed to `[cC]` to replicate /i flag
*/
cuid: /^[cC][^\s-]{8,}$/,
cuid2: /^[0-9a-z]+$/,
ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,
/**
* `a-z` was added to replicate /i flag
*/
email: /^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,
/**
* Constructed a valid Unicode RegExp
*
* Lazily instantiate since this type of regex isn't supported
* in all envs (e.g. React Native).
*
* See:
* https://github.com/colinhacks/zod/issues/2433
* Fix in Zod:
* https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b
*/
emoji: () => {
if (emojiRegex2 === void 0) {
emojiRegex2 = RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$", "u");
}
return emojiRegex2;
},
/**
* Unused
*/
uuid: /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,
/**
* Unused
*/
ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,
ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,
/**
* Unused
*/
ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,
ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,
base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,
base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,
nanoid: /^[a-zA-Z0-9_-]{21}$/,
jwt: /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/
};
ALPHA_NUMERIC = new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/record.js
function parseRecordDef(def, refs) {
if (refs.target === "openAi") {
console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");
}
if (refs.target === "openApi3" && def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {
return {
type: "object",
required: def.keyType._def.values,
properties: def.keyType._def.values.reduce((acc, key) => ({
...acc,
[key]: parseDef(def.valueType._def, {
...refs,
currentPath: [...refs.currentPath, "properties", key]
}) ?? {}
}), {}),
additionalProperties: refs.rejectedAdditionalProperties
};
}
const schema = {
type: "object",
additionalProperties: parseDef(def.valueType._def, {
...refs,
currentPath: [...refs.currentPath, "additionalProperties"]
}) ?? refs.allowedAdditionalProperties
};
if (refs.target === "openApi3") {
return schema;
}
if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString && def.keyType._def.checks?.length) {
const { type, ...keyType } = parseStringDef(def.keyType._def, refs);
return {
...schema,
propertyNames: keyType
};
} else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {
return {
...schema,
propertyNames: {
enum: def.keyType._def.values
}
};
} else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodBranded && def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString && def.keyType._def.type._def.checks?.length) {
const { type, ...keyType } = parseBrandedDef(def.keyType._def, refs);
return {
...schema,
propertyNames: keyType
};
}
return schema;
}
var init_record = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/record.js"() {
init_lib();
init_parseDef();
init_string();
init_branded();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/map.js
function parseMapDef(def, refs) {
if (refs.mapStrategy === "record") {
return parseRecordDef(def, refs);
}
const keys = parseDef(def.keyType._def, {
...refs,
currentPath: [...refs.currentPath, "items", "items", "0"]
}) || {};
const values = parseDef(def.valueType._def, {
...refs,
currentPath: [...refs.currentPath, "items", "items", "1"]
}) || {};
return {
type: "array",
maxItems: 125,
items: {
type: "array",
items: [keys, values],
minItems: 2,
maxItems: 2
}
};
}
var init_map = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/map.js"() {
init_parseDef();
init_record();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js
function parseNativeEnumDef(def) {
const object = def.values;
const actualKeys = Object.keys(def.values).filter((key) => {
return typeof object[object[key]] !== "number";
});
const actualValues = actualKeys.map((key) => object[key]);
const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));
return {
type: parsedTypes.length === 1 ? parsedTypes[0] === "string" ? "string" : "number" : ["string", "number"],
enum: actualValues
};
}
var init_nativeEnum = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js"() {
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/never.js
function parseNeverDef() {
return {
not: {}
};
}
var init_never = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/never.js"() {
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/null.js
function parseNullDef(refs) {
return refs.target === "openApi3" ? {
enum: ["null"],
nullable: true
} : {
type: "null"
};
}
var init_null = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/null.js"() {
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/union.js
function parseUnionDef(def, refs) {
if (refs.target === "openApi3")
return asAnyOf(def, refs);
const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;
if (options.every((x) => x._def.typeName in primitiveMappings && (!x._def.checks || !x._def.checks.length))) {
const types = options.reduce((types2, x) => {
const type = primitiveMappings[x._def.typeName];
return type && !types2.includes(type) ? [...types2, type] : types2;
}, []);
return {
type: types.length > 1 ? types : types[0]
};
} else if (options.every((x) => x._def.typeName === "ZodLiteral" && !x.description)) {
const types = options.reduce((acc, x) => {
const type = typeof x._def.value;
switch (type) {
case "string":
case "number":
case "boolean":
return [...acc, type];
case "bigint":
return [...acc, "integer"];
case "object":
if (x._def.value === null)
return [...acc, "null"];
case "symbol":
case "undefined":
case "function":
default:
return acc;
}
}, []);
if (types.length === options.length) {
const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);
return {
type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],
enum: options.reduce((acc, x) => {
return acc.includes(x._def.value) ? acc : [...acc, x._def.value];
}, [])
};
}
} else if (options.every((x) => x._def.typeName === "ZodEnum")) {
return {
type: "string",
enum: options.reduce((acc, x) => [
...acc,
...x._def.values.filter((x2) => !acc.includes(x2))
], [])
};
}
return asAnyOf(def, refs);
}
var primitiveMappings, asAnyOf;
var init_union = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/union.js"() {
init_parseDef();
primitiveMappings = {
ZodString: "string",
ZodNumber: "number",
ZodBigInt: "integer",
ZodBoolean: "boolean",
ZodNull: "null"
};
asAnyOf = (def, refs) => {
const anyOf = (def.options instanceof Map ? Array.from(def.options.values()) : def.options).map((x, i) => parseDef(x._def, {
...refs,
currentPath: [...refs.currentPath, "anyOf", `${i}`]
})).filter((x) => !!x && (!refs.strictUnions || typeof x === "object" && Object.keys(x).length > 0));
return anyOf.length ? { anyOf } : void 0;
};
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js
function parseNullableDef(def, refs) {
if (["ZodString", "ZodNumber", "ZodBigInt", "ZodBoolean", "ZodNull"].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {
if (refs.target === "openApi3") {
return {
type: primitiveMappings[def.innerType._def.typeName],
nullable: true
};
}
return {
type: [
primitiveMappings[def.innerType._def.typeName],
"null"
]
};
}
if (refs.target === "openApi3") {
const base2 = parseDef(def.innerType._def, {
...refs,
currentPath: [...refs.currentPath]
});
if (base2 && "$ref" in base2)
return { allOf: [base2], nullable: true };
return base2 && { ...base2, nullable: true };
}
const base = parseDef(def.innerType._def, {
...refs,
currentPath: [...refs.currentPath, "anyOf", "0"]
});
return base && { anyOf: [base, { type: "null" }] };
}
var init_nullable = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js"() {
init_parseDef();
init_union();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/number.js
function parseNumberDef(def, refs) {
const res = {
type: "number"
};
if (!def.checks)
return res;
for (const check of def.checks) {
switch (check.kind) {
case "int":
res.type = "integer";
addErrorMessage(res, "type", check.message, refs);
break;
case "min":
if (refs.target === "jsonSchema7") {
if (check.inclusive) {
setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
} else {
setResponseValueAndErrors(res, "exclusiveMinimum", check.value, check.message, refs);
}
} else {
if (!check.inclusive) {
res.exclusiveMinimum = true;
}
setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
}
break;
case "max":
if (refs.target === "jsonSchema7") {
if (check.inclusive) {
setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
} else {
setResponseValueAndErrors(res, "exclusiveMaximum", check.value, check.message, refs);
}
} else {
if (!check.inclusive) {
res.exclusiveMaximum = true;
}
setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
}
break;
case "multipleOf":
setResponseValueAndErrors(res, "multipleOf", check.value, check.message, refs);
break;
}
}
return res;
}
var init_number = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/number.js"() {
init_errorMessages();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/object.js
function parseObjectDef(def, refs) {
const forceOptionalIntoNullable = refs.target === "openAi";
const result = {
type: "object",
properties: {}
};
const required = [];
const shape = def.shape();
for (const propName in shape) {
let propDef = shape[propName];
if (propDef === void 0 || propDef._def === void 0) {
continue;
}
let propOptional = safeIsOptional(propDef);
if (propOptional && forceOptionalIntoNullable) {
if (propDef instanceof ZodOptional) {
propDef = propDef._def.innerType;
}
if (!propDef.isNullable()) {
propDef = propDef.nullable();
}
propOptional = false;
}
const parsedDef = parseDef(propDef._def, {
...refs,
currentPath: [...refs.currentPath, "properties", propName],
propertyPath: [...refs.currentPath, "properties", propName]
});
if (parsedDef === void 0) {
continue;
}
result.properties[propName] = parsedDef;
if (!propOptional) {
required.push(propName);
}
}
if (required.length) {
result.required = required;
}
const additionalProperties = decideAdditionalProperties(def, refs);
if (additionalProperties !== void 0) {
result.additionalProperties = additionalProperties;
}
return result;
}
function decideAdditionalProperties(def, refs) {
if (def.catchall._def.typeName !== "ZodNever") {
return parseDef(def.catchall._def, {
...refs,
currentPath: [...refs.currentPath, "additionalProperties"]
});
}
switch (def.unknownKeys) {
case "passthrough":
return refs.allowedAdditionalProperties;
case "strict":
return refs.rejectedAdditionalProperties;
case "strip":
return refs.removeAdditionalStrategy === "strict" ? refs.allowedAdditionalProperties : refs.rejectedAdditionalProperties;
}
}
function safeIsOptional(schema) {
try {
return schema.isOptional();
} catch {
return true;
}
}
var init_object = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/object.js"() {
init_lib();
init_parseDef();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
var parseOptionalDef;
var init_optional = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/optional.js"() {
init_parseDef();
parseOptionalDef = (def, refs) => {
if (refs.currentPath.toString() === refs.propertyPath?.toString()) {
return parseDef(def.innerType._def, refs);
}
const innerSchema = parseDef(def.innerType._def, {
...refs,
currentPath: [...refs.currentPath, "anyOf", "1"]
});
return innerSchema ? {
anyOf: [
{
not: {}
},
innerSchema
]
} : {};
};
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js
var parsePipelineDef;
var init_pipeline = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js"() {
init_parseDef();
parsePipelineDef = (def, refs) => {
if (refs.pipeStrategy === "input") {
return parseDef(def.in._def, refs);
} else if (refs.pipeStrategy === "output") {
return parseDef(def.out._def, refs);
}
const a = parseDef(def.in._def, {
...refs,
currentPath: [...refs.currentPath, "allOf", "0"]
});
const b = parseDef(def.out._def, {
...refs,
currentPath: [...refs.currentPath, "allOf", a ? "1" : "0"]
});
return {
allOf: [a, b].filter((x) => x !== void 0)
};
};
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/promise.js
function parsePromiseDef(def, refs) {
return parseDef(def.type._def, refs);
}
var init_promise = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/promise.js"() {
init_parseDef();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/set.js
function parseSetDef(def, refs) {
const items = parseDef(def.valueType._def, {
...refs,
currentPath: [...refs.currentPath, "items"]
});
const schema = {
type: "array",
uniqueItems: true,
items
};
if (def.minSize) {
setResponseValueAndErrors(schema, "minItems", def.minSize.value, def.minSize.message, refs);
}
if (def.maxSize) {
setResponseValueAndErrors(schema, "maxItems", def.maxSize.value, def.maxSize.message, refs);
}
return schema;
}
var init_set = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/set.js"() {
init_errorMessages();
init_parseDef();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js
function parseTupleDef(def, refs) {
if (def.rest) {
return {
type: "array",
minItems: def.items.length,
items: def.items.map((x, i) => parseDef(x._def, {
...refs,
currentPath: [...refs.currentPath, "items", `${i}`]
})).reduce((acc, x) => x === void 0 ? acc : [...acc, x], []),
additionalItems: parseDef(def.rest._def, {
...refs,
currentPath: [...refs.currentPath, "additionalItems"]
})
};
} else {
return {
type: "array",
minItems: def.items.length,
maxItems: def.items.length,
items: def.items.map((x, i) => parseDef(x._def, {
...refs,
currentPath: [...refs.currentPath, "items", `${i}`]
})).reduce((acc, x) => x === void 0 ? acc : [...acc, x], [])
};
}
}
var init_tuple = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js"() {
init_parseDef();
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
function parseUndefinedDef() {
return {
not: {}
};
}
var init_undefined = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js"() {
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
function parseUnknownDef() {
return {};
}
var init_unknown = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js"() {
}
});
// node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js
var parseReadonlyDef;
var init_readonly = __esm({
"node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js"() {
init_parseDef();
parseReadonlyDef = (def, refs) => {
return parseDef(def.innerType._def, refs);
};
}
});
// node_modules/zod-to-json-schema/dist/esm/selectParser.js
var selectParser;
var init_selectParser = __esm({
"node_modules/zod-to-json-schema/dist/esm/selectParser.js"() {
init_lib();
init_any();
init_array();
init_bigint();
init_boolean();
init_branded();
init_catch();
init_date();
init_default();
init_effects();
init_enum();
init_intersection();
init_literal();
init_map();
init_nativeEnum();
init_never();
init_null();
init_nullable();
init_number();
init_object();
init_optional();
init_pipeline();
init_promise();
init_record();
init_set();
init_string();
init_tuple();
init_undefined();
init_union();
init_unknown();
init_readonly();
selectParser = (def, typeName, refs) => {
switch (typeName) {
case ZodFirstPartyTypeKind.ZodString:
return parseStringDef(def, refs);
case ZodFirstPartyTypeKind.ZodNumber:
return parseNumberDef(def, refs);
case ZodFirstPartyTypeKind.ZodObject:
return parseObjectDef(def, refs);
case ZodFirstPartyTypeKind.ZodBigInt:
return parseBigintDef(def, refs);
case ZodFirstPartyTypeKind.ZodBoolean:
return parseBooleanDef();
case ZodFirstPartyTypeKind.ZodDate:
return parseDateDef(def, refs);
case ZodFirstPartyTypeKind.ZodUndefined:
return parseUndefinedDef();
case ZodFirstPartyTypeKind.ZodNull:
return parseNullDef(refs);
case ZodFirstPartyTypeKind.ZodArray:
return parseArrayDef(def, refs);
case ZodFirstPartyTypeKind.ZodUnion:
case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:
return parseUnionDef(def, refs);
case ZodFirstPartyTypeKind.ZodIntersection:
return parseIntersectionDef(def, refs);
case ZodFirstPartyTypeKind.ZodTuple:
return parseTupleDef(def, refs);
case ZodFirstPartyTypeKind.ZodRecord:
return parseRecordDef(def, refs);
case ZodFirstPartyTypeKind.ZodLiteral:
return parseLiteralDef(def, refs);
case ZodFirstPartyTypeKind.ZodEnum:
return parseEnumDef(def);
case ZodFirstPartyTypeKind.ZodNativeEnum:
return parseNativeEnumDef(def);
case ZodFirstPartyTypeKind.ZodNullable:
return parseNullableDef(def, refs);
case ZodFirstPartyTypeKind.ZodOptional:
return parseOptionalDef(def, refs);
case ZodFirstPartyTypeKind.ZodMap:
return parseMapDef(def, refs);
case ZodFirstPartyTypeKind.ZodSet:
return parseSetDef(def, refs);
case ZodFirstPartyTypeKind.ZodLazy:
return () => def.getter()._def;
case ZodFirstPartyTypeKind.ZodPromise:
return parsePromiseDef(def, refs);
case ZodFirstPartyTypeKind.ZodNaN:
case ZodFirstPartyTypeKind.ZodNever:
return parseNeverDef();
case ZodFirstPartyTypeKind.ZodEffects:
return parseEffectsDef(def, refs);
case ZodFirstPartyTypeKind.ZodAny:
return parseAnyDef();
case ZodFirstPartyTypeKind.ZodUnknown:
return parseUnknownDef();
case ZodFirstPartyTypeKind.ZodDefault:
return parseDefaultDef(def, refs);
case ZodFirstPartyTypeKind.ZodBranded:
return parseBrandedDef(def, refs);
case ZodFirstPartyTypeKind.ZodReadonly:
return parseReadonlyDef(def, refs);
case ZodFirstPartyTypeKind.ZodCatch:
return parseCatchDef(def, refs);
case ZodFirstPartyTypeKind.ZodPipeline:
return parsePipelineDef(def, refs);
case ZodFirstPartyTypeKind.ZodFunction:
case ZodFirstPartyTypeKind.ZodVoid:
case ZodFirstPartyTypeKind.ZodSymbol:
return void 0;
default:
return /* @__PURE__ */ ((_) => void 0)(typeName);
}
};
}
});
// node_modules/zod-to-json-schema/dist/esm/parseDef.js
function parseDef(def, refs, forceResolution = false) {
const seenItem = refs.seen.get(def);
if (refs.override) {
const overrideResult = refs.override?.(def, refs, seenItem, forceResolution);
if (overrideResult !== ignoreOverride) {
return overrideResult;
}
}
if (seenItem && !forceResolution) {
const seenSchema = get$ref(seenItem, refs);
if (seenSchema !== void 0) {
return seenSchema;
}
}
const newItem = { def, path: refs.currentPath, jsonSchema: void 0 };
refs.seen.set(def, newItem);
const jsonSchemaOrGetter = selectParser(def, def.typeName, refs);
const jsonSchema = typeof jsonSchemaOrGetter === "function" ? parseDef(jsonSchemaOrGetter(), refs) : jsonSchemaOrGetter;
if (jsonSchema) {
addMeta(def, refs, jsonSchema);
}
if (refs.postProcess) {
const postProcessResult = refs.postProcess(jsonSchema, def, refs);
newItem.jsonSchema = jsonSchema;
return postProcessResult;
}
newItem.jsonSchema = jsonSchema;
return jsonSchema;
}
var get$ref, getRelativePath, addMeta;
var init_parseDef = __esm({
"node_modules/zod-to-json-schema/dist/esm/parseDef.js"() {
init_Options();
init_selectParser();
get$ref = (item, refs) => {
switch (refs.$refStrategy) {
case "root":
return { $ref: item.path.join("/") };
case "relative":
return { $ref: getRelativePath(refs.currentPath, item.path) };
case "none":
case "seen": {
if (item.path.length < refs.currentPath.length && item.path.every((value, index) => refs.currentPath[index] === value)) {
console.warn(`Recursive reference detected at ${refs.currentPath.join("/")}! Defaulting to any`);
return {};
}
return refs.$refStrategy === "seen" ? {} : void 0;
}
}
};
getRelativePath = (pathA, pathB) => {
let i = 0;
for (; i < pathA.length && i < pathB.length; i++) {
if (pathA[i] !== pathB[i])
break;
}
return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
};
addMeta = (def, refs, jsonSchema) => {
if (def.description) {
jsonSchema.description = def.description;
if (refs.markdownDescription) {
jsonSchema.markdownDescription = def.description;
}
}
return jsonSchema;
};
}
});
// node_modules/zod-to-json-schema/dist/esm/parseTypes.js
var init_parseTypes = __esm({
"node_modules/zod-to-json-schema/dist/esm/parseTypes.js"() {
}
});
// node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
var zodToJsonSchema;
var init_zodToJsonSchema = __esm({
"node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js"() {
init_parseDef();
init_Refs();
zodToJsonSchema = (schema, options) => {
const refs = getRefs(options);
const definitions = typeof options === "object" && options.definitions ? Object.entries(options.definitions).reduce((acc, [name2, schema2]) => ({
...acc,
[name2]: parseDef(schema2._def, {
...refs,
currentPath: [...refs.basePath, refs.definitionPath, name2]
}, true) ?? {}
}), {}) : void 0;
const name = typeof options === "string" ? options : options?.nameStrategy === "title" ? void 0 : options?.name;
const main = parseDef(schema._def, name === void 0 ? refs : {
...refs,
currentPath: [...refs.basePath, refs.definitionPath, name]
}, false) ?? {};
const title = typeof options === "object" && options.name !== void 0 && options.nameStrategy === "title" ? options.name : void 0;
if (title !== void 0) {
main.title = title;
}
const combined = name === void 0 ? definitions ? {
...main,
[refs.definitionPath]: definitions
} : main : {
$ref: [
...refs.$refStrategy === "relative" ? [] : refs.basePath,
refs.definitionPath,
name
].join("/"),
[refs.definitionPath]: {
...definitions,
[name]: main
}
};
if (refs.target === "jsonSchema7") {
combined.$schema = "http://json-schema.org/draft-07/schema#";
} else if (refs.target === "jsonSchema2019-09" || refs.target === "openAi") {
combined.$schema = "https://json-schema.org/draft/2019-09/schema#";
}
if (refs.target === "openAi" && ("anyOf" in combined || "oneOf" in combined || "allOf" in combined || "type" in combined && Array.isArray(combined.type))) {
console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");
}
return combined;
};
}
});
// node_modules/zod-to-json-schema/dist/esm/index.js
var init_esm = __esm({
"node_modules/zod-to-json-schema/dist/esm/index.js"() {
init_Options();
init_Refs();
init_errorMessages();
init_parseDef();
init_parseTypes();
init_any();
init_array();
init_bigint();
init_boolean();
init_branded();
init_catch();
init_date();
init_default();
init_effects();
init_enum();
init_intersection();
init_literal();
init_map();
init_nativeEnum();
init_never();
init_null();
init_nullable();
init_number();
init_object();
init_optional();
init_pipeline();
init_promise();
init_readonly();
init_record();
init_set();
init_string();
init_tuple();
init_undefined();
init_union();
init_unknown();
init_selectParser();
init_zodToJsonSchema();
init_zodToJsonSchema();
}
});
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
function processCreateParams2(params) {
if (!params)
return {};
const { errorMap: errorMap3, invalid_type_error, required_error, description } = params;
if (errorMap3 && (invalid_type_error || required_error)) {
throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);
}
if (errorMap3)
return { errorMap: errorMap3, description };
const customMap = (iss, ctx) => {
var _a, _b;
const { message } = params;
if (iss.code === "invalid_enum_value") {
return { message: message !== null && message !== void 0 ? message : ctx.defaultError };
}
if (typeof ctx.data === "undefined") {
return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };
}
if (iss.code !== "invalid_type")
return { message: ctx.defaultError };
return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };
};
return { errorMap: customMap, description };
}
var McpZodTypeKind, Completable;
var init_completable = __esm({
"node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js"() {
init_lib();
(function(McpZodTypeKind2) {
McpZodTypeKind2["Completable"] = "McpCompletable";
})(McpZodTypeKind || (McpZodTypeKind = {}));
Completable = class extends ZodType {
_parse(input) {
const { ctx } = this._processInputParams(input);
const data = ctx.data;
return this._def.type._parse({
data,
path: ctx.path,
parent: ctx
});
}
unwrap() {
return this._def.type;
}
};
Completable.create = (type, params) => {
return new Completable({
type,
typeName: McpZodTypeKind.Completable,
complete: params.complete,
...processCreateParams2(params)
});
};
}
});
// node_modules/@modelcontextprotocol/sdk/dist/esm/shared/uriTemplate.js
var init_uriTemplate = __esm({
"node_modules/@modelcontextprotocol/sdk/dist/esm/shared/uriTemplate.js"() {
}
});
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
function isZodRawShape(obj) {
if (typeof obj !== "object" || obj === null)
return false;
const isEmptyObject = Object.keys(obj).length === 0;
return isEmptyObject || Object.values(obj).some(isZodTypeLike);
}
function isZodTypeLike(value) {
return value !== null && typeof value === "object" && "parse" in value && typeof value.parse === "function" && "safeParse" in value && typeof value.safeParse === "function";
}
function promptArgumentsFromSchema(schema) {
return Object.entries(schema.shape).map(([name, field]) => ({
name,
description: field.description,
required: !field.isOptional()
}));
}
function createCompletionResult(suggestions) {
return {
completion: {
values: suggestions.slice(0, 100),
total: suggestions.length,
hasMore: suggestions.length > 100
}
};
}
var McpServer, EMPTY_OBJECT_JSON_SCHEMA, EMPTY_COMPLETION_RESULT;
var init_mcp = __esm({
"node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js"() {
init_server();
init_esm();
init_lib();
init_types();
init_completable();
init_uriTemplate();
McpServer = class {
constructor(serverInfo, options) {
this._registeredResources = {};
this._registeredResourceTemplates = {};
this._registeredTools = {};
this._registeredPrompts = {};
this._toolHandlersInitialized = false;
this._completionHandlerInitialized = false;
this._resourceHandlersInitialized = false;
this._promptHandlersInitialized = false;
this.server = new Server(serverInfo, options);
}
/**
* Attaches to the given transport, starts it, and starts listening for messages.
*
* The `server` object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.
*/
async connect(transport) {
return await this.server.connect(transport);
}
/**
* Closes the connection.
*/
async close() {
await this.server.close();
}
setToolRequestHandlers() {
if (this._toolHandlersInitialized) {
return;
}
this.server.assertCanSetRequestHandler(ListToolsRequestSchema.shape.method.value);
this.server.assertCanSetRequestHandler(CallToolRequestSchema.shape.method.value);
this.server.registerCapabilities({
tools: {
listChanged: true
}
});
this.server.setRequestHandler(ListToolsRequestSchema, () => ({
tools: Object.entries(this._registeredTools).filter(([, tool]) => tool.enabled).map(([name, tool]) => {
const toolDefinition = {
name,
title: tool.title,
description: tool.description,
inputSchema: tool.inputSchema ? zodToJsonSchema(tool.inputSchema, {
strictUnions: true
}) : EMPTY_OBJECT_JSON_SCHEMA,
annotations: tool.annotations
};
if (tool.outputSchema) {
toolDefinition.outputSchema = zodToJsonSchema(tool.outputSchema, { strictUnions: true });
}
return toolDefinition;
})
}));
this.server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
const tool = this._registeredTools[request.params.name];
if (!tool) {
throw new McpError(ErrorCode.InvalidParams, `Tool ${request.params.name} not found`);
}
if (!tool.enabled) {
throw new McpError(ErrorCode.InvalidParams, `Tool ${request.params.name} disabled`);
}
let result;
if (tool.inputSchema) {
const parseResult = await tool.inputSchema.safeParseAsync(request.params.arguments);
if (!parseResult.success) {
throw new McpError(ErrorCode.InvalidParams, `Invalid arguments for tool ${request.params.name}: ${parseResult.error.message}`);
}
const args = parseResult.data;
const cb = tool.callback;
try {
result = await Promise.resolve(cb(args, extra));
} catch (error) {
result = {
content: [
{
type: "text",
text: error instanceof Error ? error.message : String(error)
}
],
isError: true
};
}
} else {
const cb = tool.callback;
try {
result = await Promise.resolve(cb(extra));
} catch (error) {
result = {
content: [
{
type: "text",
text: error instanceof Error ? error.message : String(error)
}
],
isError: true
};
}
}
if (tool.outputSchema && !result.isError) {
if (!result.structuredContent) {
throw new McpError(ErrorCode.InvalidParams, `Tool ${request.params.name} has an output schema but no structured content was provided`);
}
const parseResult = await tool.outputSchema.safeParseAsync(result.structuredContent);
if (!parseResult.success) {
throw new McpError(ErrorCode.InvalidParams, `Invalid structured content for tool ${request.params.name}: ${parseResult.error.message}`);
}
}
return result;
});
this._toolHandlersInitialized = true;
}
setCompletionRequestHandler() {
if (this._completionHandlerInitialized) {
return;
}
this.server.assertCanSetRequestHandler(CompleteRequestSchema.shape.method.value);
this.server.registerCapabilities({
completions: {}
});
this.server.setRequestHandler(CompleteRequestSchema, async (request) => {
switch (request.params.ref.type) {
case "ref/prompt":
return this.handlePromptCompletion(request, request.params.ref);
case "ref/resource":
return this.handleResourceCompletion(request, request.params.ref);
default:
throw new McpError(ErrorCode.InvalidParams, `Invalid completion reference: ${request.params.ref}`);
}
});
this._completionHandlerInitialized = true;
}
async handlePromptCompletion(request, ref) {
const prompt = this._registeredPrompts[ref.name];
if (!prompt) {
throw new McpError(ErrorCode.InvalidParams, `Prompt ${ref.name} not found`);
}
if (!prompt.enabled) {
throw new McpError(ErrorCode.InvalidParams, `Prompt ${ref.name} disabled`);
}
if (!prompt.argsSchema) {
return EMPTY_COMPLETION_RESULT;
}
const field = prompt.argsSchema.shape[request.params.argument.name];
if (!(field instanceof Completable)) {
return EMPTY_COMPLETION_RESULT;
}
const def = field._def;
const suggestions = await def.complete(request.params.argument.value, request.params.context);
return createCompletionResult(suggestions);
}
async handleResourceCompletion(request, ref) {
const template = Object.values(this._registeredResourceTemplates).find((t) => t.resourceTemplate.uriTemplate.toString() === ref.uri);
if (!template) {
if (this._registeredResources[ref.uri]) {
return EMPTY_COMPLETION_RESULT;
}
throw new McpError(ErrorCode.InvalidParams, `Resource template ${request.params.ref.uri} not found`);
}
const completer = template.resourceTemplate.completeCallback(request.params.argument.name);
if (!completer) {
return EMPTY_COMPLETION_RESULT;
}
const suggestions = await completer(request.params.argument.value, request.params.context);
return createCompletionResult(suggestions);
}
setResourceRequestHandlers() {
if (this._resourceHandlersInitialized) {
return;
}
this.server.assertCanSetRequestHandler(ListResourcesRequestSchema.shape.method.value);
this.server.assertCanSetRequestHandler(ListResourceTemplatesRequestSchema.shape.method.value);
this.server.assertCanSetRequestHandler(ReadResourceRequestSchema.shape.method.value);
this.server.registerCapabilities({
resources: {
listChanged: true
}
});
this.server.setRequestHandler(ListResourcesRequestSchema, async (request, extra) => {
const resources = Object.entries(this._registeredResources).filter(([_, resource]) => resource.enabled).map(([uri, resource]) => ({
uri,
name: resource.name,
...resource.metadata
}));
const templateResources = [];
for (const template of Object.values(this._registeredResourceTemplates)) {
if (!template.resourceTemplate.listCallback) {
continue;
}
const result = await template.resourceTemplate.listCallback(extra);
for (const resource of result.resources) {
templateResources.push({
...template.metadata,
// the defined resource metadata should override the template metadata if present
...resource
});
}
}
return { resources: [...resources, ...templateResources] };
});
this.server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => {
const resourceTemplates = Object.entries(this._registeredResourceTemplates).map(([name, template]) => ({
name,
uriTemplate: template.resourceTemplate.uriTemplate.toString(),
...template.metadata
}));
return { resourceTemplates };
});
this.server.setRequestHandler(ReadResourceRequestSchema, async (request, extra) => {
const uri = new URL(request.params.uri);
const resource = this._registeredResources[uri.toString()];
if (resource) {
if (!resource.enabled) {
throw new McpError(ErrorCode.InvalidParams, `Resource ${uri} disabled`);
}
return resource.readCallback(uri, extra);
}
for (const template of Object.values(this._registeredResourceTemplates)) {
const variables = template.resourceTemplate.uriTemplate.match(uri.toString());
if (variables) {
return template.readCallback(uri, variables, extra);
}
}
throw new McpError(ErrorCode.InvalidParams, `Resource ${uri} not found`);
});
this.setCompletionRequestHandler();
this._resourceHandlersInitialized = true;
}
setPromptRequestHandlers() {
if (this._promptHandlersInitialized) {
return;
}
this.server.assertCanSetRequestHandler(ListPromptsRequestSchema.shape.method.value);
this.server.assertCanSetRequestHandler(GetPromptRequestSchema.shape.method.value);
this.server.registerCapabilities({
prompts: {
listChanged: true
}
});
this.server.setRequestHandler(ListPromptsRequestSchema, () => ({
prompts: Object.entries(this._registeredPrompts).filter(([, prompt]) => prompt.enabled).map(([name, prompt]) => {
return {
name,
title: prompt.title,
description: prompt.description,
arguments: prompt.argsSchema ? promptArgumentsFromSchema(prompt.argsSchema) : void 0
};
})
}));
this.server.setRequestHandler(GetPromptRequestSchema, async (request, extra) => {
const prompt = this._registeredPrompts[request.params.name];
if (!prompt) {
throw new McpError(ErrorCode.InvalidParams, `Prompt ${request.params.name} not found`);
}
if (!prompt.enabled) {
throw new McpError(ErrorCode.InvalidParams, `Prompt ${request.params.name} disabled`);
}
if (prompt.argsSchema) {
const parseResult = await prompt.argsSchema.safeParseAsync(request.params.arguments);
if (!parseResult.success) {
throw new McpError(ErrorCode.InvalidParams, `Invalid arguments for prompt ${request.params.name}: ${parseResult.error.message}`);
}
const args = parseResult.data;
const cb = prompt.callback;
return await Promise.resolve(cb(args, extra));
} else {
const cb = prompt.callback;
return await Promise.resolve(cb(extra));
}
});
this.setCompletionRequestHandler();
this._promptHandlersInitialized = true;
}
resource(name, uriOrTemplate, ...rest) {
let metadata;
if (typeof rest[0] === "object") {
metadata = rest.shift();
}
const readCallback = rest[0];
if (typeof uriOrTemplate === "string") {
if (this._registeredResources[uriOrTemplate]) {
throw new Error(`Resource ${uriOrTemplate} is already registered`);
}
const registeredResource = this._createRegisteredResource(name, void 0, uriOrTemplate, metadata, readCallback);
this.setResourceRequestHandlers();
this.sendResourceListChanged();
return registeredResource;
} else {
if (this._registeredResourceTemplates[name]) {
throw new Error(`Resource template ${name} is already registered`);
}
const registeredResourceTemplate = this._createRegisteredResourceTemplate(name, void 0, uriOrTemplate, metadata, readCallback);
this.setResourceRequestHandlers();
this.sendResourceListChanged();
return registeredResourceTemplate;
}
}
registerResource(name, uriOrTemplate, config, readCallback) {
if (typeof uriOrTemplate === "string") {
if (this._registeredResources[uriOrTemplate]) {
throw new Error(`Resource ${uriOrTemplate} is already registered`);
}
const registeredResource = this._createRegisteredResource(name, config.title, uriOrTemplate, config, readCallback);
this.setResourceRequestHandlers();
this.sendResourceListChanged();
return registeredResource;
} else {
if (this._registeredResourceTemplates[name]) {
throw new Error(`Resource template ${name} is already registered`);
}
const registeredResourceTemplate = this._createRegisteredResourceTemplate(name, config.title, uriOrTemplate, config, readCallback);
this.setResourceRequestHandlers();
this.sendResourceListChanged();
return registeredResourceTemplate;
}
}
_createRegisteredResource(name, title, uri, metadata, readCallback) {
const registeredResource = {
name,
title,
metadata,
readCallback,
enabled: true,
disable: () => registeredResource.update({ enabled: false }),
enable: () => registeredResource.update({ enabled: true }),
remove: () => registeredResource.update({ uri: null }),
update: (updates) => {
if (typeof updates.uri !== "undefined" && updates.uri !== uri) {
delete this._registeredResources[uri];
if (updates.uri)
this._registeredResources[updates.uri] = registeredResource;
}
if (typeof updates.name !== "undefined")
registeredResource.name = updates.name;
if (typeof updates.title !== "undefined")
registeredResource.title = updates.title;
if (typeof updates.metadata !== "undefined")
registeredResource.metadata = updates.metadata;
if (typeof updates.callback !== "undefined")
registeredResource.readCallback = updates.callback;
if (typeof updates.enabled !== "undefined")
registeredResource.enabled = updates.enabled;
this.sendResourceListChanged();
}
};
this._registeredResources[uri] = registeredResource;
return registeredResource;
}
_createRegisteredResourceTemplate(name, title, template, metadata, readCallback) {
const registeredResourceTemplate = {
resourceTemplate: template,
title,
metadata,
readCallback,
enabled: true,
disable: () => registeredResourceTemplate.update({ enabled: false }),
enable: () => registeredResourceTemplate.update({ enabled: true }),
remove: () => registeredResourceTemplate.update({ name: null }),
update: (updates) => {
if (typeof updates.name !== "undefined" && updates.name !== name) {
delete this._registeredResourceTemplates[name];
if (updates.name)
this._registeredResourceTemplates[updates.name] = registeredResourceTemplate;
}
if (typeof updates.title !== "undefined")
registeredResourceTemplate.title = updates.title;
if (typeof updates.template !== "undefined")
registeredResourceTemplate.resourceTemplate = updates.template;
if (typeof updates.metadata !== "undefined")
registeredResourceTemplate.metadata = updates.metadata;
if (typeof updates.callback !== "undefined")
registeredResourceTemplate.readCallback = updates.callback;
if (typeof updates.enabled !== "undefined")
registeredResourceTemplate.enabled = updates.enabled;
this.sendResourceListChanged();
}
};
this._registeredResourceTemplates[name] = registeredResourceTemplate;
return registeredResourceTemplate;
}
_createRegisteredPrompt(name, title, description, argsSchema, callback) {
const registeredPrompt = {
title,
description,
argsSchema: argsSchema === void 0 ? void 0 : z.object(argsSchema),
callback,
enabled: true,
disable: () => registeredPrompt.update({ enabled: false }),
enable: () => registeredPrompt.update({ enabled: true }),
remove: () => registeredPrompt.update({ name: null }),
update: (updates) => {
if (typeof updates.name !== "undefined" && updates.name !== name) {
delete this._registeredPrompts[name];
if (updates.name)
this._registeredPrompts[updates.name] = registeredPrompt;
}
if (typeof updates.title !== "undefined")
registeredPrompt.title = updates.title;
if (typeof updates.description !== "undefined")
registeredPrompt.description = updates.description;
if (typeof updates.argsSchema !== "undefined")
registeredPrompt.argsSchema = z.object(updates.argsSchema);
if (typeof updates.callback !== "undefined")
registeredPrompt.callback = updates.callback;
if (typeof updates.enabled !== "undefined")
registeredPrompt.enabled = updates.enabled;
this.sendPromptListChanged();
}
};
this._registeredPrompts[name] = registeredPrompt;
return registeredPrompt;
}
_createRegisteredTool(name, title, description, inputSchema, outputSchema, annotations, callback) {
const registeredTool = {
title,
description,
inputSchema: inputSchema === void 0 ? void 0 : z.object(inputSchema),
outputSchema: outputSchema === void 0 ? void 0 : z.object(outputSchema),
annotations,
callback,
enabled: true,
disable: () => registeredTool.update({ enabled: false }),
enable: () => registeredTool.update({ enabled: true }),
remove: () => registeredTool.update({ name: null }),
update: (updates) => {
if (typeof updates.name !== "undefined" && updates.name !== name) {
delete this._registeredTools[name];
if (updates.name)
this._registeredTools[updates.name] = registeredTool;
}
if (typeof updates.title !== "undefined")
registeredTool.title = updates.title;
if (typeof updates.description !== "undefined")
registeredTool.description = updates.description;
if (typeof updates.paramsSchema !== "undefined")
registeredTool.inputSchema = z.object(updates.paramsSchema);
if (typeof updates.callback !== "undefined")
registeredTool.callback = updates.callback;
if (typeof updates.annotations !== "undefined")
registeredTool.annotations = updates.annotations;
if (typeof updates.enabled !== "undefined")
registeredTool.enabled = updates.enabled;
this.sendToolListChanged();
}
};
this._registeredTools[name] = registeredTool;
this.setToolRequestHandlers();
this.sendToolListChanged();
return registeredTool;
}
/**
* tool() implementation. Parses arguments passed to overrides defined above.
*/
tool(name, ...rest) {
if (this._registeredTools[name]) {
throw new Error(`Tool ${name} is already registered`);
}
let description;
let inputSchema;
let outputSchema;
let annotations;
if (typeof rest[0] === "string") {
description = rest.shift();
}
if (rest.length > 1) {
const firstArg = rest[0];
if (isZodRawShape(firstArg)) {
inputSchema = rest.shift();
if (rest.length > 1 && typeof rest[0] === "object" && rest[0] !== null && !isZodRawShape(rest[0])) {
annotations = rest.shift();
}
} else if (typeof firstArg === "object" && firstArg !== null) {
annotations = rest.shift();
}
}
const callback = rest[0];
return this._createRegisteredTool(name, void 0, description, inputSchema, outputSchema, annotations, callback);
}
/**
* Registers a tool with a config object and callback.
*/
registerTool(name, config, cb) {
if (this._registeredTools[name]) {
throw new Error(`Tool ${name} is already registered`);
}
const { title, description, inputSchema, outputSchema, annotations } = config;
return this._createRegisteredTool(name, title, description, inputSchema, outputSchema, annotations, cb);
}
prompt(name, ...rest) {
if (this._registeredPrompts[name]) {
throw new Error(`Prompt ${name} is already registered`);
}
let description;
if (typeof rest[0] === "string") {
description = rest.shift();
}
let argsSchema;
if (rest.length > 1) {
argsSchema = rest.shift();
}
const cb = rest[0];
const registeredPrompt = this._createRegisteredPrompt(name, void 0, description, argsSchema, cb);
this.setPromptRequestHandlers();
this.sendPromptListChanged();
return registeredPrompt;
}
/**
* Registers a prompt with a config object and callback.
*/
registerPrompt(name, config, cb) {
if (this._registeredPrompts[name]) {
throw new Error(`Prompt ${name} is already registered`);
}
const { title, description, argsSchema } = config;
const registeredPrompt = this._createRegisteredPrompt(name, title, description, argsSchema, cb);
this.setPromptRequestHandlers();
this.sendPromptListChanged();
return registeredPrompt;
}
/**
* Checks if the server is connected to a transport.
* @returns True if the server is connected
*/
isConnected() {
return this.server.transport !== void 0;
}
/**
* Sends a resource list changed event to the client, if connected.
*/
sendResourceListChanged() {
if (this.isConnected()) {
this.server.sendResourceListChanged();
}
}
/**
* Sends a tool list changed event to the client, if connected.
*/
sendToolListChanged() {
if (this.isConnected()) {
this.server.sendToolListChanged();
}
}
/**
* Sends a prompt list changed event to the client, if connected.
*/
sendPromptListChanged() {
if (this.isConnected()) {
this.server.sendPromptListChanged();
}
}
};
EMPTY_OBJECT_JSON_SCHEMA = {
type: "object",
properties: {}
};
EMPTY_COMPLETION_RESULT = {
completion: {
values: [],
hasMore: false
}
};
}
});
// node_modules/axios/lib/helpers/bind.js
function bind(fn, thisArg) {
return function wrap() {
return fn.apply(thisArg, arguments);
};
}
var init_bind = __esm({
"node_modules/axios/lib/helpers/bind.js"() {
"use strict";
}
});
// node_modules/axios/lib/utils.js
function isBuffer(val) {
return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);
}
function isArrayBufferView(val) {
let result;
if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView) {
result = ArrayBuffer.isView(val);
} else {
result = val && val.buffer && isArrayBuffer(val.buffer);
}
return result;
}
function forEach(obj, fn, { allOwnKeys = false } = {}) {
if (obj === null || typeof obj === "undefined") {
return;
}
let i;
let l;
if (typeof obj !== "object") {
obj = [obj];
}
if (isArray(obj)) {
for (i = 0, l = obj.length; i < l; i++) {
fn.call(null, obj[i], i, obj);
}
} else {
const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
const len = keys.length;
let key;
for (i = 0; i < len; i++) {
key = keys[i];
fn.call(null, obj[key], key, obj);
}
}
}
function findKey(obj, key) {
key = key.toLowerCase();
const keys = Object.keys(obj);
let i = keys.length;
let _key;
while (i-- > 0) {
_key = keys[i];
if (key === _key.toLowerCase()) {
return _key;
}
}
return null;
}
function merge() {
const { caseless } = isContextDefined(this) && this || {};
const result = {};
const assignValue = (val, key) => {
const targetKey = caseless && findKey(result, key) || key;
if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
result[targetKey] = merge(result[targetKey], val);
} else if (isPlainObject(val)) {
result[targetKey] = merge({}, val);
} else if (isArray(val)) {
result[targetKey] = val.slice();
} else {
result[targetKey] = val;
}
};
for (let i = 0, l = arguments.length; i < l; i++) {
arguments[i] && forEach(arguments[i], assignValue);
}
return result;
}
function isSpecCompliantForm(thing) {
return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === "FormData" && thing[Symbol.iterator]);
}
var toString, getPrototypeOf, kindOf, kindOfTest, typeOfTest, isArray, isUndefined, isArrayBuffer, isString, isFunction, isNumber, isObject, isBoolean, isPlainObject, isDate, isFile, isBlob, isFileList, isStream, isFormData, isURLSearchParams, isReadableStream, isRequest, isResponse, isHeaders, trim, _global, isContextDefined, extend, stripBOM, inherits, toFlatObject, endsWith, toArray, isTypedArray, forEachEntry, matchAll, isHTMLForm, toCamelCase, hasOwnProperty, isRegExp, reduceDescriptors, freezeMethods, toObjectSet, noop, toFiniteNumber, toJSONObject, isAsyncFn, isThenable, _setImmediate, asap, utils_default;
var init_utils = __esm({
"node_modules/axios/lib/utils.js"() {
"use strict";
init_bind();
({ toString } = Object.prototype);
({ getPrototypeOf } = Object);
kindOf = /* @__PURE__ */ ((cache) => (thing) => {
const str = toString.call(thing);
return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
})(/* @__PURE__ */ Object.create(null));
kindOfTest = (type) => {
type = type.toLowerCase();
return (thing) => kindOf(thing) === type;
};
typeOfTest = (type) => (thing) => typeof thing === type;
({ isArray } = Array);
isUndefined = typeOfTest("undefined");
isArrayBuffer = kindOfTest("ArrayBuffer");
isString = typeOfTest("string");
isFunction = typeOfTest("function");
isNumber = typeOfTest("number");
isObject = (thing) => thing !== null && typeof thing === "object";
isBoolean = (thing) => thing === true || thing === false;
isPlainObject = (val) => {
if (kindOf(val) !== "object") {
return false;
}
const prototype3 = getPrototypeOf(val);
return (prototype3 === null || prototype3 === Object.prototype || Object.getPrototypeOf(prototype3) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);
};
isDate = kindOfTest("Date");
isFile = kindOfTest("File");
isBlob = kindOfTest("Blob");
isFileList = kindOfTest("FileList");
isStream = (val) => isObject(val) && isFunction(val.pipe);
isFormData = (thing) => {
let kind;
return thing && (typeof FormData === "function" && thing instanceof FormData || isFunction(thing.append) && ((kind = kindOf(thing)) === "formdata" || // detect form-data instance
kind === "object" && isFunction(thing.toString) && thing.toString() === "[object FormData]"));
};
isURLSearchParams = kindOfTest("URLSearchParams");
[isReadableStream, isRequest, isResponse, isHeaders] = ["ReadableStream", "Request", "Response", "Headers"].map(kindOfTest);
trim = (str) => str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
_global = (() => {
if (typeof globalThis !== "undefined") return globalThis;
return typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : global;
})();
isContextDefined = (context) => !isUndefined(context) && context !== _global;
extend = (a, b, thisArg, { allOwnKeys } = {}) => {
forEach(b, (val, key) => {
if (thisArg && isFunction(val)) {
a[key] = bind(val, thisArg);
} else {
a[key] = val;
}
}, { allOwnKeys });
return a;
};
stripBOM = (content) => {
if (content.charCodeAt(0) === 65279) {
content = content.slice(1);
}
return content;
};
inherits = (constructor, superConstructor, props, descriptors2) => {
constructor.prototype = Object.create(superConstructor.prototype, descriptors2);
constructor.prototype.constructor = constructor;
Object.defineProperty(constructor, "super", {
value: superConstructor.prototype
});
props && Object.assign(constructor.prototype, props);
};
toFlatObject = (sourceObj, destObj, filter2, propFilter) => {
let props;
let i;
let prop;
const merged = {};
destObj = destObj || {};
if (sourceObj == null) return destObj;
do {
props = Object.getOwnPropertyNames(sourceObj);
i = props.length;
while (i-- > 0) {
prop = props[i];
if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
destObj[prop] = sourceObj[prop];
merged[prop] = true;
}
}
sourceObj = filter2 !== false && getPrototypeOf(sourceObj);
} while (sourceObj && (!filter2 || filter2(sourceObj, destObj)) && sourceObj !== Object.prototype);
return destObj;
};
endsWith = (str, searchString, position) => {
str = String(str);
if (position === void 0 || position > str.length) {
position = str.length;
}
position -= searchString.length;
const lastIndex = str.indexOf(searchString, position);
return lastIndex !== -1 && lastIndex === position;
};
toArray = (thing) => {
if (!thing) return null;
if (isArray(thing)) return thing;
let i = thing.length;
if (!isNumber(i)) return null;
const arr = new Array(i);
while (i-- > 0) {
arr[i] = thing[i];
}
return arr;
};
isTypedArray = /* @__PURE__ */ ((TypedArray) => {
return (thing) => {
return TypedArray && thing instanceof TypedArray;
};
})(typeof Uint8Array !== "undefined" && getPrototypeOf(Uint8Array));
forEachEntry = (obj, fn) => {
const generator = obj && obj[Symbol.iterator];
const iterator = generator.call(obj);
let result;
while ((result = iterator.next()) && !result.done) {
const pair = result.value;
fn.call(obj, pair[0], pair[1]);
}
};
matchAll = (regExp, str) => {
let matches;
const arr = [];
while ((matches = regExp.exec(str)) !== null) {
arr.push(matches);
}
return arr;
};
isHTMLForm = kindOfTest("HTMLFormElement");
toCamelCase = (str) => {
return str.toLowerCase().replace(
/[-_\s]([a-z\d])(\w*)/g,
function replacer(m, p1, p2) {
return p1.toUpperCase() + p2;
}
);
};
hasOwnProperty = (({ hasOwnProperty: hasOwnProperty2 }) => (obj, prop) => hasOwnProperty2.call(obj, prop))(Object.prototype);
isRegExp = kindOfTest("RegExp");
reduceDescriptors = (obj, reducer) => {
const descriptors2 = Object.getOwnPropertyDescriptors(obj);
const reducedDescriptors = {};
forEach(descriptors2, (descriptor, name) => {
let ret;
if ((ret = reducer(descriptor, name, obj)) !== false) {
reducedDescriptors[name] = ret || descriptor;
}
});
Object.defineProperties(obj, reducedDescriptors);
};
freezeMethods = (obj) => {
reduceDescriptors(obj, (descriptor, name) => {
if (isFunction(obj) && ["arguments", "caller", "callee"].indexOf(name) !== -1) {
return false;
}
const value = obj[name];
if (!isFunction(value)) return;
descriptor.enumerable = false;
if ("writable" in descriptor) {
descriptor.writable = false;
return;
}
if (!descriptor.set) {
descriptor.set = () => {
throw Error("Can not rewrite read-only method '" + name + "'");
};
}
});
};
toObjectSet = (arrayOrString, delimiter) => {
const obj = {};
const define2 = (arr) => {
arr.forEach((value) => {
obj[value] = true;
});
};
isArray(arrayOrString) ? define2(arrayOrString) : define2(String(arrayOrString).split(delimiter));
return obj;
};
noop = () => {
};
toFiniteNumber = (value, defaultValue) => {
return value != null && Number.isFinite(value = +value) ? value : defaultValue;
};
toJSONObject = (obj) => {
const stack = new Array(10);
const visit = (source, i) => {
if (isObject(source)) {
if (stack.indexOf(source) >= 0) {
return;
}
if (!("toJSON" in source)) {
stack[i] = source;
const target = isArray(source) ? [] : {};
forEach(source, (value, key) => {
const reducedValue = visit(value, i + 1);
!isUndefined(reducedValue) && (target[key] = reducedValue);
});
stack[i] = void 0;
return target;
}
}
return source;
};
return visit(obj, 0);
};
isAsyncFn = kindOfTest("AsyncFunction");
isThenable = (thing) => thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);
_setImmediate = ((setImmediateSupported, postMessageSupported) => {
if (setImmediateSupported) {
return setImmediate;
}
return postMessageSupported ? ((token, callbacks) => {
_global.addEventListener("message", ({ source, data }) => {
if (source === _global && data === token) {
callbacks.length && callbacks.shift()();
}
}, false);
return (cb) => {
callbacks.push(cb);
_global.postMessage(token, "*");
};
})(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
})(
typeof setImmediate === "function",
isFunction(_global.postMessage)
);
asap = typeof queueMicrotask !== "undefined" ? queueMicrotask.bind(_global) : typeof process !== "undefined" && process.nextTick || _setImmediate;
utils_default = {
isArray,
isArrayBuffer,
isBuffer,
isFormData,
isArrayBufferView,
isString,
isNumber,
isBoolean,
isObject,
isPlainObject,
isReadableStream,
isRequest,
isResponse,
isHeaders,
isUndefined,
isDate,
isFile,
isBlob,
isRegExp,
isFunction,
isStream,
isURLSearchParams,
isTypedArray,
isFileList,
forEach,
merge,
extend,
trim,
stripBOM,
inherits,
toFlatObject,
kindOf,
kindOfTest,
endsWith,
toArray,
forEachEntry,
matchAll,
isHTMLForm,
hasOwnProperty,
hasOwnProp: hasOwnProperty,
// an alias to avoid ESLint no-prototype-builtins detection
reduceDescriptors,
freezeMethods,
toObjectSet,
toCamelCase,
noop,
toFiniteNumber,
findKey,
global: _global,
isContextDefined,
isSpecCompliantForm,
toJSONObject,
isAsyncFn,
isThenable,
setImmediate: _setImmediate,
asap
};
}
});
// node_modules/axios/lib/core/AxiosError.js
function AxiosError(message, code, config, request, response) {
Error.call(this);
if (Error.captureStackTrace) {
Error.captureStackTrace(this, this.constructor);
} else {
this.stack = new Error().stack;
}
this.message = message;
this.name = "AxiosError";
code && (this.code = code);
config && (this.config = config);
request && (this.request = request);
if (response) {
this.response = response;
this.status = response.status ? response.status : null;
}
}
var prototype, descriptors, AxiosError_default;
var init_AxiosError = __esm({
"node_modules/axios/lib/core/AxiosError.js"() {
"use strict";
init_utils();
utils_default.inherits(AxiosError, Error, {
toJSON: function toJSON() {
return {
// Standard
message: this.message,
name: this.name,
// Microsoft
description: this.description,
number: this.number,
// Mozilla
fileName: this.fileName,
lineNumber: this.lineNumber,
columnNumber: this.columnNumber,
stack: this.stack,
// Axios
config: utils_default.toJSONObject(this.config),
code: this.code,
status: this.status
};
}
});
prototype = AxiosError.prototype;
descriptors = {};
[
"ERR_BAD_OPTION_VALUE",
"ERR_BAD_OPTION",
"ECONNABORTED",
"ETIMEDOUT",
"ERR_NETWORK",
"ERR_FR_TOO_MANY_REDIRECTS",
"ERR_DEPRECATED",
"ERR_BAD_RESPONSE",
"ERR_BAD_REQUEST",
"ERR_CANCELED",
"ERR_NOT_SUPPORT",
"ERR_INVALID_URL"
// eslint-disable-next-line func-names
].forEach((code) => {
descriptors[code] = { value: code };
});
Object.defineProperties(AxiosError, descriptors);
Object.defineProperty(prototype, "isAxiosError", { value: true });
AxiosError.from = (error, code, config, request, response, customProps) => {
const axiosError = Object.create(prototype);
utils_default.toFlatObject(error, axiosError, function filter2(obj) {
return obj !== Error.prototype;
}, (prop) => {
return prop !== "isAxiosError";
});
AxiosError.call(axiosError, error.message, code, config, request, response);
axiosError.cause = error;
axiosError.name = error.name;
customProps && Object.assign(axiosError, customProps);
return axiosError;
};
AxiosError_default = AxiosError;
}
});
// node_modules/delayed-stream/lib/delayed_stream.js
var require_delayed_stream = __commonJS({
"node_modules/delayed-stream/lib/delayed_stream.js"(exports2, module2) {
var Stream = require("stream").Stream;
var util5 = require("util");
module2.exports = DelayedStream;
function DelayedStream() {
this.source = null;
this.dataSize = 0;
this.maxDataSize = 1024 * 1024;
this.pauseStream = true;
this._maxDataSizeExceeded = false;
this._released = false;
this._bufferedEvents = [];
}
util5.inherits(DelayedStream, Stream);
DelayedStream.create = function(source, options) {
var delayedStream = new this();
options = options || {};
for (var option in options) {
delayedStream[option] = options[option];
}
delayedStream.source = source;
var realEmit = source.emit;
source.emit = function() {
delayedStream._handleEmit(arguments);
return realEmit.apply(source, arguments);
};
source.on("error", function() {
});
if (delayedStream.pauseStream) {
source.pause();
}
return delayedStream;
};
Object.defineProperty(DelayedStream.prototype, "readable", {
configurable: true,
enumerable: true,
get: function() {
return this.source.readable;
}
});
DelayedStream.prototype.setEncoding = function() {
return this.source.setEncoding.apply(this.source, arguments);
};
DelayedStream.prototype.resume = function() {
if (!this._released) {
this.release();
}
this.source.resume();
};
DelayedStream.prototype.pause = function() {
this.source.pause();
};
DelayedStream.prototype.release = function() {
this._released = true;
this._bufferedEvents.forEach(function(args) {
this.emit.apply(this, args);
}.bind(this));
this._bufferedEvents = [];
};
DelayedStream.prototype.pipe = function() {
var r = Stream.prototype.pipe.apply(this, arguments);
this.resume();
return r;
};
DelayedStream.prototype._handleEmit = function(args) {
if (this._released) {
this.emit.apply(this, args);
return;
}
if (args[0] === "data") {
this.dataSize += args[1].length;
this._checkIfMaxDataSizeExceeded();
}
this._bufferedEvents.push(args);
};
DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {
if (this._maxDataSizeExceeded) {
return;
}
if (this.dataSize <= this.maxDataSize) {
return;
}
this._maxDataSizeExceeded = true;
var message = "DelayedStream#maxDataSize of " + this.maxDataSize + " bytes exceeded.";
this.emit("error", new Error(message));
};
}
});
// node_modules/combined-stream/lib/combined_stream.js
var require_combined_stream = __commonJS({
"node_modules/combined-stream/lib/combined_stream.js"(exports2, module2) {
var util5 = require("util");
var Stream = require("stream").Stream;
var DelayedStream = require_delayed_stream();
module2.exports = CombinedStream;
function CombinedStream() {
this.writable = false;
this.readable = true;
this.dataSize = 0;
this.maxDataSize = 2 * 1024 * 1024;
this.pauseStreams = true;
this._released = false;
this._streams = [];
this._currentStream = null;
this._insideLoop = false;
this._pendingNext = false;
}
util5.inherits(CombinedStream, Stream);
CombinedStream.create = function(options) {
var combinedStream = new this();
options = options || {};
for (var option in options) {
combinedStream[option] = options[option];
}
return combinedStream;
};
CombinedStream.isStreamLike = function(stream4) {
return typeof stream4 !== "function" && typeof stream4 !== "string" && typeof stream4 !== "boolean" && typeof stream4 !== "number" && !Buffer.isBuffer(stream4);
};
CombinedStream.prototype.append = function(stream4) {
var isStreamLike = CombinedStream.isStreamLike(stream4);
if (isStreamLike) {
if (!(stream4 instanceof DelayedStream)) {
var newStream = DelayedStream.create(stream4, {
maxDataSize: Infinity,
pauseStream: this.pauseStreams
});
stream4.on("data", this._checkDataSize.bind(this));
stream4 = newStream;
}
this._handleErrors(stream4);
if (this.pauseStreams) {
stream4.pause();
}
}
this._streams.push(stream4);
return this;
};
CombinedStream.prototype.pipe = function(dest, options) {
Stream.prototype.pipe.call(this, dest, options);
this.resume();
return dest;
};
CombinedStream.prototype._getNext = function() {
this._currentStream = null;
if (this._insideLoop) {
this._pendingNext = true;
return;
}
this._insideLoop = true;
try {
do {
this._pendingNext = false;
this._realGetNext();
} while (this._pendingNext);
} finally {
this._insideLoop = false;
}
};
CombinedStream.prototype._realGetNext = function() {
var stream4 = this._streams.shift();
if (typeof stream4 == "undefined") {
this.end();
return;
}
if (typeof stream4 !== "function") {
this._pipeNext(stream4);
return;
}
var getStream = stream4;
getStream(function(stream5) {
var isStreamLike = CombinedStream.isStreamLike(stream5);
if (isStreamLike) {
stream5.on("data", this._checkDataSize.bind(this));
this._handleErrors(stream5);
}
this._pipeNext(stream5);
}.bind(this));
};
CombinedStream.prototype._pipeNext = function(stream4) {
this._currentStream = stream4;
var isStreamLike = CombinedStream.isStreamLike(stream4);
if (isStreamLike) {
stream4.on("end", this._getNext.bind(this));
stream4.pipe(this, { end: false });
return;
}
var value = stream4;
this.write(value);
this._getNext();
};
CombinedStream.prototype._handleErrors = function(stream4) {
var self2 = this;
stream4.on("error", function(err2) {
self2._emitError(err2);
});
};
CombinedStream.prototype.write = function(data) {
this.emit("data", data);
};
CombinedStream.prototype.pause = function() {
if (!this.pauseStreams) {
return;
}
if (this.pauseStreams && this._currentStream && typeof this._currentStream.pause == "function") this._currentStream.pause();
this.emit("pause");
};
CombinedStream.prototype.resume = function() {
if (!this._released) {
this._released = true;
this.writable = true;
this._getNext();
}
if (this.pauseStreams && this._currentStream && typeof this._currentStream.resume == "function") this._currentStream.resume();
this.emit("resume");
};
CombinedStream.prototype.end = function() {
this._reset();
this.emit("end");
};
CombinedStream.prototype.destroy = function() {
this._reset();
this.emit("close");
};
CombinedStream.prototype._reset = function() {
this.writable = false;
this._streams = [];
this._currentStream = null;
};
CombinedStream.prototype._checkDataSize = function() {
this._updateDataSize();
if (this.dataSize <= this.maxDataSize) {
return;
}
var message = "DelayedStream#maxDataSize of " + this.maxDataSize + " bytes exceeded.";
this._emitError(new Error(message));
};
CombinedStream.prototype._updateDataSize = function() {
this.dataSize = 0;
var self2 = this;
this._streams.forEach(function(stream4) {
if (!stream4.dataSize) {
return;
}
self2.dataSize += stream4.dataSize;
});
if (this._currentStream && this._currentStream.dataSize) {
this.dataSize += this._currentStream.dataSize;
}
};
CombinedStream.prototype._emitError = function(err2) {
this._reset();
this.emit("error", err2);
};
}
});
// node_modules/mime-db/db.json
var require_db = __commonJS({
"node_modules/mime-db/db.json"(exports2, module2) {
module2.exports = {
"application/1d-interleaved-parityfec": {
source: "iana"
},
"application/3gpdash-qoe-report+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/3gpp-ims+xml": {
source: "iana",
compressible: true
},
"application/3gpphal+json": {
source: "iana",
compressible: true
},
"application/3gpphalforms+json": {
source: "iana",
compressible: true
},
"application/a2l": {
source: "iana"
},
"application/ace+cbor": {
source: "iana"
},
"application/activemessage": {
source: "iana"
},
"application/activity+json": {
source: "iana",
compressible: true
},
"application/alto-costmap+json": {
source: "iana",
compressible: true
},
"application/alto-costmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-directory+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcost+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcostparams+json": {
source: "iana",
compressible: true
},
"application/alto-endpointprop+json": {
source: "iana",
compressible: true
},
"application/alto-endpointpropparams+json": {
source: "iana",
compressible: true
},
"application/alto-error+json": {
source: "iana",
compressible: true
},
"application/alto-networkmap+json": {
source: "iana",
compressible: true
},
"application/alto-networkmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamcontrol+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamparams+json": {
source: "iana",
compressible: true
},
"application/aml": {
source: "iana"
},
"application/andrew-inset": {
source: "iana",
extensions: ["ez"]
},
"application/applefile": {
source: "iana"
},
"application/applixware": {
source: "apache",
extensions: ["aw"]
},
"application/at+jwt": {
source: "iana"
},
"application/atf": {
source: "iana"
},
"application/atfx": {
source: "iana"
},
"application/atom+xml": {
source: "iana",
compressible: true,
extensions: ["atom"]
},
"application/atomcat+xml": {
source: "iana",
compressible: true,
extensions: ["atomcat"]
},
"application/atomdeleted+xml": {
source: "iana",
compressible: true,
extensions: ["atomdeleted"]
},
"application/atomicmail": {
source: "iana"
},
"application/atomsvc+xml": {
source: "iana",
compressible: true,
extensions: ["atomsvc"]
},
"application/atsc-dwd+xml": {
source: "iana",
compressible: true,
extensions: ["dwd"]
},
"application/atsc-dynamic-event-message": {
source: "iana"
},
"application/atsc-held+xml": {
source: "iana",
compressible: true,
extensions: ["held"]
},
"application/atsc-rdt+json": {
source: "iana",
compressible: true
},
"application/atsc-rsat+xml": {
source: "iana",
compressible: true,
extensions: ["rsat"]
},
"application/atxml": {
source: "iana"
},
"application/auth-policy+xml": {
source: "iana",
compressible: true
},
"application/bacnet-xdd+zip": {
source: "iana",
compressible: false
},
"application/batch-smtp": {
source: "iana"
},
"application/bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/beep+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/calendar+json": {
source: "iana",
compressible: true
},
"application/calendar+xml": {
source: "iana",
compressible: true,
extensions: ["xcs"]
},
"application/call-completion": {
source: "iana"
},
"application/cals-1840": {
source: "iana"
},
"application/captive+json": {
source: "iana",
compressible: true
},
"application/cbor": {
source: "iana"
},
"application/cbor-seq": {
source: "iana"
},
"application/cccex": {
source: "iana"
},
"application/ccmp+xml": {
source: "iana",
compressible: true
},
"application/ccxml+xml": {
source: "iana",
compressible: true,
extensions: ["ccxml"]
},
"application/cdfx+xml": {
source: "iana",
compressible: true,
extensions: ["cdfx"]
},
"application/cdmi-capability": {
source: "iana",
extensions: ["cdmia"]
},
"application/cdmi-container": {
source: "iana",
extensions: ["cdmic"]
},
"application/cdmi-domain": {
source: "iana",
extensions: ["cdmid"]
},
"application/cdmi-object": {
source: "iana",
extensions: ["cdmio"]
},
"application/cdmi-queue": {
source: "iana",
extensions: ["cdmiq"]
},
"application/cdni": {
source: "iana"
},
"application/cea": {
source: "iana"
},
"application/cea-2018+xml": {
source: "iana",
compressible: true
},
"application/cellml+xml": {
source: "iana",
compressible: true
},
"application/cfw": {
source: "iana"
},
"application/city+json": {
source: "iana",
compressible: true
},
"application/clr": {
source: "iana"
},
"application/clue+xml": {
source: "iana",
compressible: true
},
"application/clue_info+xml": {
source: "iana",
compressible: true
},
"application/cms": {
source: "iana"
},
"application/cnrp+xml": {
source: "iana",
compressible: true
},
"application/coap-group+json": {
source: "iana",
compressible: true
},
"application/coap-payload": {
source: "iana"
},
"application/commonground": {
source: "iana"
},
"application/conference-info+xml": {
source: "iana",
compressible: true
},
"application/cose": {
source: "iana"
},
"application/cose-key": {
source: "iana"
},
"application/cose-key-set": {
source: "iana"
},
"application/cpl+xml": {
source: "iana",
compressible: true,
extensions: ["cpl"]
},
"application/csrattrs": {
source: "iana"
},
"application/csta+xml": {
source: "iana",
compressible: true
},
"application/cstadata+xml": {
source: "iana",
compressible: true
},
"application/csvm+json": {
source: "iana",
compressible: true
},
"application/cu-seeme": {
source: "apache",
extensions: ["cu"]
},
"application/cwt": {
source: "iana"
},
"application/cybercash": {
source: "iana"
},
"application/dart": {
compressible: true
},
"application/dash+xml": {
source: "iana",
compressible: true,
extensions: ["mpd"]
},
"application/dash-patch+xml": {
source: "iana",
compressible: true,
extensions: ["mpp"]
},
"application/dashdelta": {
source: "iana"
},
"application/davmount+xml": {
source: "iana",
compressible: true,
extensions: ["davmount"]
},
"application/dca-rft": {
source: "iana"
},
"application/dcd": {
source: "iana"
},
"application/dec-dx": {
source: "iana"
},
"application/dialog-info+xml": {
source: "iana",
compressible: true
},
"application/dicom": {
source: "iana"
},
"application/dicom+json": {
source: "iana",
compressible: true
},
"application/dicom+xml": {
source: "iana",
compressible: true
},
"application/dii": {
source: "iana"
},
"application/dit": {
source: "iana"
},
"application/dns": {
source: "iana"
},
"application/dns+json": {
source: "iana",
compressible: true
},
"application/dns-message": {
source: "iana"
},
"application/docbook+xml": {
source: "apache",
compressible: true,
extensions: ["dbk"]
},
"application/dots+cbor": {
source: "iana"
},
"application/dskpp+xml": {
source: "iana",
compressible: true
},
"application/dssc+der": {
source: "iana",
extensions: ["dssc"]
},
"application/dssc+xml": {
source: "iana",
compressible: true,
extensions: ["xdssc"]
},
"application/dvcs": {
source: "iana"
},
"application/ecmascript": {
source: "iana",
compressible: true,
extensions: ["es", "ecma"]
},
"application/edi-consent": {
source: "iana"
},
"application/edi-x12": {
source: "iana",
compressible: false
},
"application/edifact": {
source: "iana",
compressible: false
},
"application/efi": {
source: "iana"
},
"application/elm+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/elm+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.cap+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/emergencycalldata.comment+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.control+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.deviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.ecall.msd": {
source: "iana"
},
"application/emergencycalldata.providerinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.serviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.subscriberinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.veds+xml": {
source: "iana",
compressible: true
},
"application/emma+xml": {
source: "iana",
compressible: true,
extensions: ["emma"]
},
"application/emotionml+xml": {
source: "iana",
compressible: true,
extensions: ["emotionml"]
},
"application/encaprtp": {
source: "iana"
},
"application/epp+xml": {
source: "iana",
compressible: true
},
"application/epub+zip": {
source: "iana",
compressible: false,
extensions: ["epub"]
},
"application/eshop": {
source: "iana"
},
"application/exi": {
source: "iana",
extensions: ["exi"]
},
"application/expect-ct-report+json": {
source: "iana",
compressible: true
},
"application/express": {
source: "iana",
extensions: ["exp"]
},
"application/fastinfoset": {
source: "iana"
},
"application/fastsoap": {
source: "iana"
},
"application/fdt+xml": {
source: "iana",
compressible: true,
extensions: ["fdt"]
},
"application/fhir+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fhir+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fido.trusted-apps+json": {
compressible: true
},
"application/fits": {
source: "iana"
},
"application/flexfec": {
source: "iana"
},
"application/font-sfnt": {
source: "iana"
},
"application/font-tdpfr": {
source: "iana",
extensions: ["pfr"]
},
"application/font-woff": {
source: "iana",
compressible: false
},
"application/framework-attributes+xml": {
source: "iana",
compressible: true
},
"application/geo+json": {
source: "iana",
compressible: true,
extensions: ["geojson"]
},
"application/geo+json-seq": {
source: "iana"
},
"application/geopackage+sqlite3": {
source: "iana"
},
"application/geoxacml+xml": {
source: "iana",
compressible: true
},
"application/gltf-buffer": {
source: "iana"
},
"application/gml+xml": {
source: "iana",
compressible: true,
extensions: ["gml"]
},
"application/gpx+xml": {
source: "apache",
compressible: true,
extensions: ["gpx"]
},
"application/gxf": {
source: "apache",
extensions: ["gxf"]
},
"application/gzip": {
source: "iana",
compressible: false,
extensions: ["gz"]
},
"application/h224": {
source: "iana"
},
"application/held+xml": {
source: "iana",
compressible: true
},
"application/hjson": {
extensions: ["hjson"]
},
"application/http": {
source: "iana"
},
"application/hyperstudio": {
source: "iana",
extensions: ["stk"]
},
"application/ibe-key-request+xml": {
source: "iana",
compressible: true
},
"application/ibe-pkg-reply+xml": {
source: "iana",
compressible: true
},
"application/ibe-pp-data": {
source: "iana"
},
"application/iges": {
source: "iana"
},
"application/im-iscomposing+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/index": {
source: "iana"
},
"application/index.cmd": {
source: "iana"
},
"application/index.obj": {
source: "iana"
},
"application/index.response": {
source: "iana"
},
"application/index.vnd": {
source: "iana"
},
"application/inkml+xml": {
source: "iana",
compressible: true,
extensions: ["ink", "inkml"]
},
"application/iotp": {
source: "iana"
},
"application/ipfix": {
source: "iana",
extensions: ["ipfix"]
},
"application/ipp": {
source: "iana"
},
"application/isup": {
source: "iana"
},
"application/its+xml": {
source: "iana",
compressible: true,
extensions: ["its"]
},
"application/java-archive": {
source: "apache",
compressible: false,
extensions: ["jar", "war", "ear"]
},
"application/java-serialized-object": {
source: "apache",
compressible: false,
extensions: ["ser"]
},
"application/java-vm": {
source: "apache",
compressible: false,
extensions: ["class"]
},
"application/javascript": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["js", "mjs"]
},
"application/jf2feed+json": {
source: "iana",
compressible: true
},
"application/jose": {
source: "iana"
},
"application/jose+json": {
source: "iana",
compressible: true
},
"application/jrd+json": {
source: "iana",
compressible: true
},
"application/jscalendar+json": {
source: "iana",
compressible: true
},
"application/json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["json", "map"]
},
"application/json-patch+json": {
source: "iana",
compressible: true
},
"application/json-seq": {
source: "iana"
},
"application/json5": {
extensions: ["json5"]
},
"application/jsonml+json": {
source: "apache",
compressible: true,
extensions: ["jsonml"]
},
"application/jwk+json": {
source: "iana",
compressible: true
},
"application/jwk-set+json": {
source: "iana",
compressible: true
},
"application/jwt": {
source: "iana"
},
"application/kpml-request+xml": {
source: "iana",
compressible: true
},
"application/kpml-response+xml": {
source: "iana",
compressible: true
},
"application/ld+json": {
source: "iana",
compressible: true,
extensions: ["jsonld"]
},
"application/lgr+xml": {
source: "iana",
compressible: true,
extensions: ["lgr"]
},
"application/link-format": {
source: "iana"
},
"application/load-control+xml": {
source: "iana",
compressible: true
},
"application/lost+xml": {
source: "iana",
compressible: true,
extensions: ["lostxml"]
},
"application/lostsync+xml": {
source: "iana",
compressible: true
},
"application/lpf+zip": {
source: "iana",
compressible: false
},
"application/lxf": {
source: "iana"
},
"application/mac-binhex40": {
source: "iana",
extensions: ["hqx"]
},
"application/mac-compactpro": {
source: "apache",
extensions: ["cpt"]
},
"application/macwriteii": {
source: "iana"
},
"application/mads+xml": {
source: "iana",
compressible: true,
extensions: ["mads"]
},
"application/manifest+json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["webmanifest"]
},
"application/marc": {
source: "iana",
extensions: ["mrc"]
},
"application/marcxml+xml": {
source: "iana",
compressible: true,
extensions: ["mrcx"]
},
"application/mathematica": {
source: "iana",
extensions: ["ma", "nb", "mb"]
},
"application/mathml+xml": {
source: "iana",
compressible: true,
extensions: ["mathml"]
},
"application/mathml-content+xml": {
source: "iana",
compressible: true
},
"application/mathml-presentation+xml": {
source: "iana",
compressible: true
},
"application/mbms-associated-procedure-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-deregister+xml": {
source: "iana",
compressible: true
},
"application/mbms-envelope+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-protection-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-reception-report+xml": {
source: "iana",
compressible: true
},
"application/mbms-register+xml": {
source: "iana",
compressible: true
},
"application/mbms-register-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-schedule+xml": {
source: "iana",
compressible: true
},
"application/mbms-user-service-description+xml": {
source: "iana",
compressible: true
},
"application/mbox": {
source: "iana",
extensions: ["mbox"]
},
"application/media-policy-dataset+xml": {
source: "iana",
compressible: true,
extensions: ["mpf"]
},
"application/media_control+xml": {
source: "iana",
compressible: true
},
"application/mediaservercontrol+xml": {
source: "iana",
compressible: true,
extensions: ["mscml"]
},
"application/merge-patch+json": {
source: "iana",
compressible: true
},
"application/metalink+xml": {
source: "apache",
compressible: true,
extensions: ["metalink"]
},
"application/metalink4+xml": {
source: "iana",
compressible: true,
extensions: ["meta4"]
},
"application/mets+xml": {
source: "iana",
compressible: true,
extensions: ["mets"]
},
"application/mf4": {
source: "iana"
},
"application/mikey": {
source: "iana"
},
"application/mipc": {
source: "iana"
},
"application/missing-blocks+cbor-seq": {
source: "iana"
},
"application/mmt-aei+xml": {
source: "iana",
compressible: true,
extensions: ["maei"]
},
"application/mmt-usd+xml": {
source: "iana",
compressible: true,
extensions: ["musd"]
},
"application/mods+xml": {
source: "iana",
compressible: true,
extensions: ["mods"]
},
"application/moss-keys": {
source: "iana"
},
"application/moss-signature": {
source: "iana"
},
"application/mosskey-data": {
source: "iana"
},
"application/mosskey-request": {
source: "iana"
},
"application/mp21": {
source: "iana",
extensions: ["m21", "mp21"]
},
"application/mp4": {
source: "iana",
extensions: ["mp4s", "m4p"]
},
"application/mpeg4-generic": {
source: "iana"
},
"application/mpeg4-iod": {
source: "iana"
},
"application/mpeg4-iod-xmt": {
source: "iana"
},
"application/mrb-consumer+xml": {
source: "iana",
compressible: true
},
"application/mrb-publish+xml": {
source: "iana",
compressible: true
},
"application/msc-ivr+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msc-mixer+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msword": {
source: "iana",
compressible: false,
extensions: ["doc", "dot"]
},
"application/mud+json": {
source: "iana",
compressible: true
},
"application/multipart-core": {
source: "iana"
},
"application/mxf": {
source: "iana",
extensions: ["mxf"]
},
"application/n-quads": {
source: "iana",
extensions: ["nq"]
},
"application/n-triples": {
source: "iana",
extensions: ["nt"]
},
"application/nasdata": {
source: "iana"
},
"application/news-checkgroups": {
source: "iana",
charset: "US-ASCII"
},
"application/news-groupinfo": {
source: "iana",
charset: "US-ASCII"
},
"application/news-transmission": {
source: "iana"
},
"application/nlsml+xml": {
source: "iana",
compressible: true
},
"application/node": {
source: "iana",
extensions: ["cjs"]
},
"application/nss": {
source: "iana"
},
"application/oauth-authz-req+jwt": {
source: "iana"
},
"application/oblivious-dns-message": {
source: "iana"
},
"application/ocsp-request": {
source: "iana"
},
"application/ocsp-response": {
source: "iana"
},
"application/octet-stream": {
source: "iana",
compressible: false,
extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"]
},
"application/oda": {
source: "iana",
extensions: ["oda"]
},
"application/odm+xml": {
source: "iana",
compressible: true
},
"application/odx": {
source: "iana"
},
"application/oebps-package+xml": {
source: "iana",
compressible: true,
extensions: ["opf"]
},
"application/ogg": {
source: "iana",
compressible: false,
extensions: ["ogx"]
},
"application/omdoc+xml": {
source: "apache",
compressible: true,
extensions: ["omdoc"]
},
"application/onenote": {
source: "apache",
extensions: ["onetoc", "onetoc2", "onetmp", "onepkg"]
},
"application/opc-nodeset+xml": {
source: "iana",
compressible: true
},
"application/oscore": {
source: "iana"
},
"application/oxps": {
source: "iana",
extensions: ["oxps"]
},
"application/p21": {
source: "iana"
},
"application/p21+zip": {
source: "iana",
compressible: false
},
"application/p2p-overlay+xml": {
source: "iana",
compressible: true,
extensions: ["relo"]
},
"application/parityfec": {
source: "iana"
},
"application/passport": {
source: "iana"
},
"application/patch-ops-error+xml": {
source: "iana",
compressible: true,
extensions: ["xer"]
},
"application/pdf": {
source: "iana",
compressible: false,
extensions: ["pdf"]
},
"application/pdx": {
source: "iana"
},
"application/pem-certificate-chain": {
source: "iana"
},
"application/pgp-encrypted": {
source: "iana",
compressible: false,
extensions: ["pgp"]
},
"application/pgp-keys": {
source: "iana",
extensions: ["asc"]
},
"application/pgp-signature": {
source: "iana",
extensions: ["asc", "sig"]
},
"application/pics-rules": {
source: "apache",
extensions: ["prf"]
},
"application/pidf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pidf-diff+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pkcs10": {
source: "iana",
extensions: ["p10"]
},
"application/pkcs12": {
source: "iana"
},
"application/pkcs7-mime": {
source: "iana",
extensions: ["p7m", "p7c"]
},
"application/pkcs7-signature": {
source: "iana",
extensions: ["p7s"]
},
"application/pkcs8": {
source: "iana",
extensions: ["p8"]
},
"application/pkcs8-encrypted": {
source: "iana"
},
"application/pkix-attr-cert": {
source: "iana",
extensions: ["ac"]
},
"application/pkix-cert": {
source: "iana",
extensions: ["cer"]
},
"application/pkix-crl": {
source: "iana",
extensions: ["crl"]
},
"application/pkix-pkipath": {
source: "iana",
extensions: ["pkipath"]
},
"application/pkixcmp": {
source: "iana",
extensions: ["pki"]
},
"application/pls+xml": {
source: "iana",
compressible: true,
extensions: ["pls"]
},
"application/poc-settings+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/postscript": {
source: "iana",
compressible: true,
extensions: ["ai", "eps", "ps"]
},
"application/ppsp-tracker+json": {
source: "iana",
compressible: true
},
"application/problem+json": {
source: "iana",
compressible: true
},
"application/problem+xml": {
source: "iana",
compressible: true
},
"application/provenance+xml": {
source: "iana",
compressible: true,
extensions: ["provx"]
},
"application/prs.alvestrand.titrax-sheet": {
source: "iana"
},
"application/prs.cww": {
source: "iana",
extensions: ["cww"]
},
"application/prs.cyn": {
source: "iana",
charset: "7-BIT"
},
"application/prs.hpub+zip": {
source: "iana",
compressible: false
},
"application/prs.nprend": {
source: "iana"
},
"application/prs.plucker": {
source: "iana"
},
"application/prs.rdf-xml-crypt": {
source: "iana"
},
"application/prs.xsf+xml": {
source: "iana",
compressible: true
},
"application/pskc+xml": {
source: "iana",
compressible: true,
extensions: ["pskcxml"]
},
"application/pvd+json": {
source: "iana",
compressible: true
},
"application/qsig": {
source: "iana"
},
"application/raml+yaml": {
compressible: true,
extensions: ["raml"]
},
"application/raptorfec": {
source: "iana"
},
"application/rdap+json": {
source: "iana",
compressible: true
},
"application/rdf+xml": {
source: "iana",
compressible: true,
extensions: ["rdf", "owl"]
},
"application/reginfo+xml": {
source: "iana",
compressible: true,
extensions: ["rif"]
},
"application/relax-ng-compact-syntax": {
source: "iana",
extensions: ["rnc"]
},
"application/remote-printing": {
source: "iana"
},
"application/reputon+json": {
source: "iana",
compressible: true
},
"application/resource-lists+xml": {
source: "iana",
compressible: true,
extensions: ["rl"]
},
"application/resource-lists-diff+xml": {
source: "iana",
compressible: true,
extensions: ["rld"]
},
"application/rfc+xml": {
source: "iana",
compressible: true
},
"application/riscos": {
source: "iana"
},
"application/rlmi+xml": {
source: "iana",
compressible: true
},
"application/rls-services+xml": {
source: "iana",
compressible: true,
extensions: ["rs"]
},
"application/route-apd+xml": {
source: "iana",
compressible: true,
extensions: ["rapd"]
},
"application/route-s-tsid+xml": {
source: "iana",
compressible: true,
extensions: ["sls"]
},
"application/route-usd+xml": {
source: "iana",
compressible: true,
extensions: ["rusd"]
},
"application/rpki-ghostbusters": {
source: "iana",
extensions: ["gbr"]
},
"application/rpki-manifest": {
source: "iana",
extensions: ["mft"]
},
"application/rpki-publication": {
source: "iana"
},
"application/rpki-roa": {
source: "iana",
extensions: ["roa"]
},
"application/rpki-updown": {
source: "iana"
},
"application/rsd+xml": {
source: "apache",
compressible: true,
extensions: ["rsd"]
},
"application/rss+xml": {
source: "apache",
compressible: true,
extensions: ["rss"]
},
"application/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"application/rtploopback": {
source: "iana"
},
"application/rtx": {
source: "iana"
},
"application/samlassertion+xml": {
source: "iana",
compressible: true
},
"application/samlmetadata+xml": {
source: "iana",
compressible: true
},
"application/sarif+json": {
source: "iana",
compressible: true
},
"application/sarif-external-properties+json": {
source: "iana",
compressible: true
},
"application/sbe": {
source: "iana"
},
"application/sbml+xml": {
source: "iana",
compressible: true,
extensions: ["sbml"]
},
"application/scaip+xml": {
source: "iana",
compressible: true
},
"application/scim+json": {
source: "iana",
compressible: true
},
"application/scvp-cv-request": {
source: "iana",
extensions: ["scq"]
},
"application/scvp-cv-response": {
source: "iana",
extensions: ["scs"]
},
"application/scvp-vp-request": {
source: "iana",
extensions: ["spq"]
},
"application/scvp-vp-response": {
source: "iana",
extensions: ["spp"]
},
"application/sdp": {
source: "iana",
extensions: ["sdp"]
},
"application/secevent+jwt": {
source: "iana"
},
"application/senml+cbor": {
source: "iana"
},
"application/senml+json": {
source: "iana",
compressible: true
},
"application/senml+xml": {
source: "iana",
compressible: true,
extensions: ["senmlx"]
},
"application/senml-etch+cbor": {
source: "iana"
},
"application/senml-etch+json": {
source: "iana",
compressible: true
},
"application/senml-exi": {
source: "iana"
},
"application/sensml+cbor": {
source: "iana"
},
"application/sensml+json": {
source: "iana",
compressible: true
},
"application/sensml+xml": {
source: "iana",
compressible: true,
extensions: ["sensmlx"]
},
"application/sensml-exi": {
source: "iana"
},
"application/sep+xml": {
source: "iana",
compressible: true
},
"application/sep-exi": {
source: "iana"
},
"application/session-info": {
source: "iana"
},
"application/set-payment": {
source: "iana"
},
"application/set-payment-initiation": {
source: "iana",
extensions: ["setpay"]
},
"application/set-registration": {
source: "iana"
},
"application/set-registration-initiation": {
source: "iana",
extensions: ["setreg"]
},
"application/sgml": {
source: "iana"
},
"application/sgml-open-catalog": {
source: "iana"
},
"application/shf+xml": {
source: "iana",
compressible: true,
extensions: ["shf"]
},
"application/sieve": {
source: "iana",
extensions: ["siv", "sieve"]
},
"application/simple-filter+xml": {
source: "iana",
compressible: true
},
"application/simple-message-summary": {
source: "iana"
},
"application/simplesymbolcontainer": {
source: "iana"
},
"application/sipc": {
source: "iana"
},
"application/slate": {
source: "iana"
},
"application/smil": {
source: "iana"
},
"application/smil+xml": {
source: "iana",
compressible: true,
extensions: ["smi", "smil"]
},
"application/smpte336m": {
source: "iana"
},
"application/soap+fastinfoset": {
source: "iana"
},
"application/soap+xml": {
source: "iana",
compressible: true
},
"application/sparql-query": {
source: "iana",
extensions: ["rq"]
},
"application/sparql-results+xml": {
source: "iana",
compressible: true,
extensions: ["srx"]
},
"application/spdx+json": {
source: "iana",
compressible: true
},
"application/spirits-event+xml": {
source: "iana",
compressible: true
},
"application/sql": {
source: "iana"
},
"application/srgs": {
source: "iana",
extensions: ["gram"]
},
"application/srgs+xml": {
source: "iana",
compressible: true,
extensions: ["grxml"]
},
"application/sru+xml": {
source: "iana",
compressible: true,
extensions: ["sru"]
},
"application/ssdl+xml": {
source: "apache",
compressible: true,
extensions: ["ssdl"]
},
"application/ssml+xml": {
source: "iana",
compressible: true,
extensions: ["ssml"]
},
"application/stix+json": {
source: "iana",
compressible: true
},
"application/swid+xml": {
source: "iana",
compressible: true,
extensions: ["swidtag"]
},
"application/tamp-apex-update": {
source: "iana"
},
"application/tamp-apex-update-confirm": {
source: "iana"
},
"application/tamp-community-update": {
source: "iana"
},
"application/tamp-community-update-confirm": {
source: "iana"
},
"application/tamp-error": {
source: "iana"
},
"application/tamp-sequence-adjust": {
source: "iana"
},
"application/tamp-sequence-adjust-confirm": {
source: "iana"
},
"application/tamp-status-query": {
source: "iana"
},
"application/tamp-status-response": {
source: "iana"
},
"application/tamp-update": {
source: "iana"
},
"application/tamp-update-confirm": {
source: "iana"
},
"application/tar": {
compressible: true
},
"application/taxii+json": {
source: "iana",
compressible: true
},
"application/td+json": {
source: "iana",
compressible: true
},
"application/tei+xml": {
source: "iana",
compressible: true,
extensions: ["tei", "teicorpus"]
},
"application/tetra_isi": {
source: "iana"
},
"application/thraud+xml": {
source: "iana",
compressible: true,
extensions: ["tfi"]
},
"application/timestamp-query": {
source: "iana"
},
"application/timestamp-reply": {
source: "iana"
},
"application/timestamped-data": {
source: "iana",
extensions: ["tsd"]
},
"application/tlsrpt+gzip": {
source: "iana"
},
"application/tlsrpt+json": {
source: "iana",
compressible: true
},
"application/tnauthlist": {
source: "iana"
},
"application/token-introspection+jwt": {
source: "iana"
},
"application/toml": {
compressible: true,
extensions: ["toml"]
},
"application/trickle-ice-sdpfrag": {
source: "iana"
},
"application/trig": {
source: "iana",
extensions: ["trig"]
},
"application/ttml+xml": {
source: "iana",
compressible: true,
extensions: ["ttml"]
},
"application/tve-trigger": {
source: "iana"
},
"application/tzif": {
source: "iana"
},
"application/tzif-leap": {
source: "iana"
},
"application/ubjson": {
compressible: false,
extensions: ["ubj"]
},
"application/ulpfec": {
source: "iana"
},
"application/urc-grpsheet+xml": {
source: "iana",
compressible: true
},
"application/urc-ressheet+xml": {
source: "iana",
compressible: true,
extensions: ["rsheet"]
},
"application/urc-targetdesc+xml": {
source: "iana",
compressible: true,
extensions: ["td"]
},
"application/urc-uisocketdesc+xml": {
source: "iana",
compressible: true
},
"application/vcard+json": {
source: "iana",
compressible: true
},
"application/vcard+xml": {
source: "iana",
compressible: true
},
"application/vemmi": {
source: "iana"
},
"application/vividence.scriptfile": {
source: "apache"
},
"application/vnd.1000minds.decision-model+xml": {
source: "iana",
compressible: true,
extensions: ["1km"]
},
"application/vnd.3gpp-prose+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ch+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-v2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gnas": {
source: "iana"
},
"application/vnd.3gpp.access-transfer-events+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.bsf+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gmop+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gtpc": {
source: "iana"
},
"application/vnd.3gpp.interworking-data": {
source: "iana"
},
"application/vnd.3gpp.lpp": {
source: "iana"
},
"application/vnd.3gpp.mc-signalling-ear": {
source: "iana"
},
"application/vnd.3gpp.mcdata-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-payload": {
source: "iana"
},
"application/vnd.3gpp.mcdata-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-signalling": {
source: "iana"
},
"application/vnd.3gpp.mcdata-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-floor-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-signed+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-init-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-affiliation-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-transmission-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mid-call+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ngap": {
source: "iana"
},
"application/vnd.3gpp.pfcp": {
source: "iana"
},
"application/vnd.3gpp.pic-bw-large": {
source: "iana",
extensions: ["plb"]
},
"application/vnd.3gpp.pic-bw-small": {
source: "iana",
extensions: ["psb"]
},
"application/vnd.3gpp.pic-bw-var": {
source: "iana",
extensions: ["pvb"]
},
"application/vnd.3gpp.s1ap": {
source: "iana"
},
"application/vnd.3gpp.sms": {
source: "iana"
},
"application/vnd.3gpp.sms+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-ext+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.state-and-event-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ussd+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.bcmcsinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.sms": {
source: "iana"
},
"application/vnd.3gpp2.tcap": {
source: "iana",
extensions: ["tcap"]
},
"application/vnd.3lightssoftware.imagescal": {
source: "iana"
},
"application/vnd.3m.post-it-notes": {
source: "iana",
extensions: ["pwn"]
},
"application/vnd.accpac.simply.aso": {
source: "iana",
extensions: ["aso"]
},
"application/vnd.accpac.simply.imp": {
source: "iana",
extensions: ["imp"]
},
"application/vnd.acucobol": {
source: "iana",
extensions: ["acu"]
},
"application/vnd.acucorp": {
source: "iana",
extensions: ["atc", "acutc"]
},
"application/vnd.adobe.air-application-installer-package+zip": {
source: "apache",
compressible: false,
extensions: ["air"]
},
"application/vnd.adobe.flash.movie": {
source: "iana"
},
"application/vnd.adobe.formscentral.fcdt": {
source: "iana",
extensions: ["fcdt"]
},
"application/vnd.adobe.fxp": {
source: "iana",
extensions: ["fxp", "fxpl"]
},
"application/vnd.adobe.partial-upload": {
source: "iana"
},
"application/vnd.adobe.xdp+xml": {
source: "iana",
compressible: true,
extensions: ["xdp"]
},
"application/vnd.adobe.xfdf": {
source: "iana",
extensions: ["xfdf"]
},
"application/vnd.aether.imp": {
source: "iana"
},
"application/vnd.afpc.afplinedata": {
source: "iana"
},
"application/vnd.afpc.afplinedata-pagedef": {
source: "iana"
},
"application/vnd.afpc.cmoca-cmresource": {
source: "iana"
},
"application/vnd.afpc.foca-charset": {
source: "iana"
},
"application/vnd.afpc.foca-codedfont": {
source: "iana"
},
"application/vnd.afpc.foca-codepage": {
source: "iana"
},
"application/vnd.afpc.modca": {
source: "iana"
},
"application/vnd.afpc.modca-cmtable": {
source: "iana"
},
"application/vnd.afpc.modca-formdef": {
source: "iana"
},
"application/vnd.afpc.modca-mediummap": {
source: "iana"
},
"application/vnd.afpc.modca-objectcontainer": {
source: "iana"
},
"application/vnd.afpc.modca-overlay": {
source: "iana"
},
"application/vnd.afpc.modca-pagesegment": {
source: "iana"
},
"application/vnd.age": {
source: "iana",
extensions: ["age"]
},
"application/vnd.ah-barcode": {
source: "iana"
},
"application/vnd.ahead.space": {
source: "iana",
extensions: ["ahead"]
},
"application/vnd.airzip.filesecure.azf": {
source: "iana",
extensions: ["azf"]
},
"application/vnd.airzip.filesecure.azs": {
source: "iana",
extensions: ["azs"]
},
"application/vnd.amadeus+json": {
source: "iana",
compressible: true
},
"application/vnd.amazon.ebook": {
source: "apache",
extensions: ["azw"]
},
"application/vnd.amazon.mobi8-ebook": {
source: "iana"
},
"application/vnd.americandynamics.acc": {
source: "iana",
extensions: ["acc"]
},
"application/vnd.amiga.ami": {
source: "iana",
extensions: ["ami"]
},
"application/vnd.amundsen.maze+xml": {
source: "iana",
compressible: true
},
"application/vnd.android.ota": {
source: "iana"
},
"application/vnd.android.package-archive": {
source: "apache",
compressible: false,
extensions: ["apk"]
},
"application/vnd.anki": {
source: "iana"
},
"application/vnd.anser-web-certificate-issue-initiation": {
source: "iana",
extensions: ["cii"]
},
"application/vnd.anser-web-funds-transfer-initiation": {
source: "apache",
extensions: ["fti"]
},
"application/vnd.antix.game-component": {
source: "iana",
extensions: ["atx"]
},
"application/vnd.apache.arrow.file": {
source: "iana"
},
"application/vnd.apache.arrow.stream": {
source: "iana"
},
"application/vnd.apache.thrift.binary": {
source: "iana"
},
"application/vnd.apache.thrift.compact": {
source: "iana"
},
"application/vnd.apache.thrift.json": {
source: "iana"
},
"application/vnd.api+json": {
source: "iana",
compressible: true
},
"application/vnd.aplextor.warrp+json": {
source: "iana",
compressible: true
},
"application/vnd.apothekende.reservation+json": {
source: "iana",
compressible: true
},
"application/vnd.apple.installer+xml": {
source: "iana",
compressible: true,
extensions: ["mpkg"]
},
"application/vnd.apple.keynote": {
source: "iana",
extensions: ["key"]
},
"application/vnd.apple.mpegurl": {
source: "iana",
extensions: ["m3u8"]
},
"application/vnd.apple.numbers": {
source: "iana",
extensions: ["numbers"]
},
"application/vnd.apple.pages": {
source: "iana",
extensions: ["pages"]
},
"application/vnd.apple.pkpass": {
compressible: false,
extensions: ["pkpass"]
},
"application/vnd.arastra.swi": {
source: "iana"
},
"application/vnd.aristanetworks.swi": {
source: "iana",
extensions: ["swi"]
},
"application/vnd.artisan+json": {
source: "iana",
compressible: true
},
"application/vnd.artsquare": {
source: "iana"
},
"application/vnd.astraea-software.iota": {
source: "iana",
extensions: ["iota"]
},
"application/vnd.audiograph": {
source: "iana",
extensions: ["aep"]
},
"application/vnd.autopackage": {
source: "iana"
},
"application/vnd.avalon+json": {
source: "iana",
compressible: true
},
"application/vnd.avistar+xml": {
source: "iana",
compressible: true
},
"application/vnd.balsamiq.bmml+xml": {
source: "iana",
compressible: true,
extensions: ["bmml"]
},
"application/vnd.balsamiq.bmpr": {
source: "iana"
},
"application/vnd.banana-accounting": {
source: "iana"
},
"application/vnd.bbf.usp.error": {
source: "iana"
},
"application/vnd.bbf.usp.msg": {
source: "iana"
},
"application/vnd.bbf.usp.msg+json": {
source: "iana",
compressible: true
},
"application/vnd.bekitzur-stech+json": {
source: "iana",
compressible: true
},
"application/vnd.bint.med-content": {
source: "iana"
},
"application/vnd.biopax.rdf+xml": {
source: "iana",
compressible: true
},
"application/vnd.blink-idb-value-wrapper": {
source: "iana"
},
"application/vnd.blueice.multipass": {
source: "iana",
extensions: ["mpm"]
},
"application/vnd.bluetooth.ep.oob": {
source: "iana"
},
"application/vnd.bluetooth.le.oob": {
source: "iana"
},
"application/vnd.bmi": {
source: "iana",
extensions: ["bmi"]
},
"application/vnd.bpf": {
source: "iana"
},
"application/vnd.bpf3": {
source: "iana"
},
"application/vnd.businessobjects": {
source: "iana",
extensions: ["rep"]
},
"application/vnd.byu.uapi+json": {
source: "iana",
compressible: true
},
"application/vnd.cab-jscript": {
source: "iana"
},
"application/vnd.canon-cpdl": {
source: "iana"
},
"application/vnd.canon-lips": {
source: "iana"
},
"application/vnd.capasystems-pg+json": {
source: "iana",
compressible: true
},
"application/vnd.cendio.thinlinc.clientconf": {
source: "iana"
},
"application/vnd.century-systems.tcp_stream": {
source: "iana"
},
"application/vnd.chemdraw+xml": {
source: "iana",
compressible: true,
extensions: ["cdxml"]
},
"application/vnd.chess-pgn": {
source: "iana"
},
"application/vnd.chipnuts.karaoke-mmd": {
source: "iana",
extensions: ["mmd"]
},
"application/vnd.ciedi": {
source: "iana"
},
"application/vnd.cinderella": {
source: "iana",
extensions: ["cdy"]
},
"application/vnd.cirpack.isdn-ext": {
source: "iana"
},
"application/vnd.citationstyles.style+xml": {
source: "iana",
compressible: true,
extensions: ["csl"]
},
"application/vnd.claymore": {
source: "iana",
extensions: ["cla"]
},
"application/vnd.cloanto.rp9": {
source: "iana",
extensions: ["rp9"]
},
"application/vnd.clonk.c4group": {
source: "iana",
extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"]
},
"application/vnd.cluetrust.cartomobile-config": {
source: "iana",
extensions: ["c11amc"]
},
"application/vnd.cluetrust.cartomobile-config-pkg": {
source: "iana",
extensions: ["c11amz"]
},
"application/vnd.coffeescript": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet-template": {
source: "iana"
},
"application/vnd.collection+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.doc+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.next+json": {
source: "iana",
compressible: true
},
"application/vnd.comicbook+zip": {
source: "iana",
compressible: false
},
"application/vnd.comicbook-rar": {
source: "iana"
},
"application/vnd.commerce-battelle": {
source: "iana"
},
"application/vnd.commonspace": {
source: "iana",
extensions: ["csp"]
},
"application/vnd.contact.cmsg": {
source: "iana",
extensions: ["cdbcmsg"]
},
"application/vnd.coreos.ignition+json": {
source: "iana",
compressible: true
},
"application/vnd.cosmocaller": {
source: "iana",
extensions: ["cmc"]
},
"application/vnd.crick.clicker": {
source: "iana",
extensions: ["clkx"]
},
"application/vnd.crick.clicker.keyboard": {
source: "iana",
extensions: ["clkk"]
},
"application/vnd.crick.clicker.palette": {
source: "iana",
extensions: ["clkp"]
},
"application/vnd.crick.clicker.template": {
source: "iana",
extensions: ["clkt"]
},
"application/vnd.crick.clicker.wordbank": {
source: "iana",
extensions: ["clkw"]
},
"application/vnd.criticaltools.wbs+xml": {
source: "iana",
compressible: true,
extensions: ["wbs"]
},
"application/vnd.cryptii.pipe+json": {
source: "iana",
compressible: true
},
"application/vnd.crypto-shade-file": {
source: "iana"
},
"application/vnd.cryptomator.encrypted": {
source: "iana"
},
"application/vnd.cryptomator.vault": {
source: "iana"
},
"application/vnd.ctc-posml": {
source: "iana",
extensions: ["pml"]
},
"application/vnd.ctct.ws+xml": {
source: "iana",
compressible: true
},
"application/vnd.cups-pdf": {
source: "iana"
},
"application/vnd.cups-postscript": {
source: "iana"
},
"application/vnd.cups-ppd": {
source: "iana",
extensions: ["ppd"]
},
"application/vnd.cups-raster": {
source: "iana"
},
"application/vnd.cups-raw": {
source: "iana"
},
"application/vnd.curl": {
source: "iana"
},
"application/vnd.curl.car": {
source: "apache",
extensions: ["car"]
},
"application/vnd.curl.pcurl": {
source: "apache",
extensions: ["pcurl"]
},
"application/vnd.cyan.dean.root+xml": {
source: "iana",
compressible: true
},
"application/vnd.cybank": {
source: "iana"
},
"application/vnd.cyclonedx+json": {
source: "iana",
compressible: true
},
"application/vnd.cyclonedx+xml": {
source: "iana",
compressible: true
},
"application/vnd.d2l.coursepackage1p0+zip": {
source: "iana",
compressible: false
},
"application/vnd.d3m-dataset": {
source: "iana"
},
"application/vnd.d3m-problem": {
source: "iana"
},
"application/vnd.dart": {
source: "iana",
compressible: true,
extensions: ["dart"]
},
"application/vnd.data-vision.rdz": {
source: "iana",
extensions: ["rdz"]
},
"application/vnd.datapackage+json": {
source: "iana",
compressible: true
},
"application/vnd.dataresource+json": {
source: "iana",
compressible: true
},
"application/vnd.dbf": {
source: "iana",
extensions: ["dbf"]
},
"application/vnd.debian.binary-package": {
source: "iana"
},
"application/vnd.dece.data": {
source: "iana",
extensions: ["uvf", "uvvf", "uvd", "uvvd"]
},
"application/vnd.dece.ttml+xml": {
source: "iana",
compressible: true,
extensions: ["uvt", "uvvt"]
},
"application/vnd.dece.unspecified": {
source: "iana",
extensions: ["uvx", "uvvx"]
},
"application/vnd.dece.zip": {
source: "iana",
extensions: ["uvz", "uvvz"]
},
"application/vnd.denovo.fcselayout-link": {
source: "iana",
extensions: ["fe_launch"]
},
"application/vnd.desmume.movie": {
source: "iana"
},
"application/vnd.dir-bi.plate-dl-nosuffix": {
source: "iana"
},
"application/vnd.dm.delegation+xml": {
source: "iana",
compressible: true
},
"application/vnd.dna": {
source: "iana",
extensions: ["dna"]
},
"application/vnd.document+json": {
source: "iana",
compressible: true
},
"application/vnd.dolby.mlp": {
source: "apache",
extensions: ["mlp"]
},
"application/vnd.dolby.mobile.1": {
source: "iana"
},
"application/vnd.dolby.mobile.2": {
source: "iana"
},
"application/vnd.doremir.scorecloud-binary-document": {
source: "iana"
},
"application/vnd.dpgraph": {
source: "iana",
extensions: ["dpg"]
},
"application/vnd.dreamfactory": {
source: "iana",
extensions: ["dfac"]
},
"application/vnd.drive+json": {
source: "iana",
compressible: true
},
"application/vnd.ds-keypoint": {
source: "apache",
extensions: ["kpxx"]
},
"application/vnd.dtg.local": {
source: "iana"
},
"application/vnd.dtg.local.flash": {
source: "iana"
},
"application/vnd.dtg.local.html": {
source: "iana"
},
"application/vnd.dvb.ait": {
source: "iana",
extensions: ["ait"]
},
"application/vnd.dvb.dvbisl+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.dvbj": {
source: "iana"
},
"application/vnd.dvb.esgcontainer": {
source: "iana"
},
"application/vnd.dvb.ipdcdftnotifaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess2": {
source: "iana"
},
"application/vnd.dvb.ipdcesgpdd": {
source: "iana"
},
"application/vnd.dvb.ipdcroaming": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-base": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-enhancement": {
source: "iana"
},
"application/vnd.dvb.notif-aggregate-root+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-container+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-generic+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-msglist+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-response+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-init+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.pfr": {
source: "iana"
},
"application/vnd.dvb.service": {
source: "iana",
extensions: ["svc"]
},
"application/vnd.dxr": {
source: "iana"
},
"application/vnd.dynageo": {
source: "iana",
extensions: ["geo"]
},
"application/vnd.dzr": {
source: "iana"
},
"application/vnd.easykaraoke.cdgdownload": {
source: "iana"
},
"application/vnd.ecdis-update": {
source: "iana"
},
"application/vnd.ecip.rlp": {
source: "iana"
},
"application/vnd.eclipse.ditto+json": {
source: "iana",
compressible: true
},
"application/vnd.ecowin.chart": {
source: "iana",
extensions: ["mag"]
},
"application/vnd.ecowin.filerequest": {
source: "iana"
},
"application/vnd.ecowin.fileupdate": {
source: "iana"
},
"application/vnd.ecowin.series": {
source: "iana"
},
"application/vnd.ecowin.seriesrequest": {
source: "iana"
},
"application/vnd.ecowin.seriesupdate": {
source: "iana"
},
"application/vnd.efi.img": {
source: "iana"
},
"application/vnd.efi.iso": {
source: "iana"
},
"application/vnd.emclient.accessrequest+xml": {
source: "iana",
compressible: true
},
"application/vnd.enliven": {
source: "iana",
extensions: ["nml"]
},
"application/vnd.enphase.envoy": {
source: "iana"
},
"application/vnd.eprints.data+xml": {
source: "iana",
compressible: true
},
"application/vnd.epson.esf": {
source: "iana",
extensions: ["esf"]
},
"application/vnd.epson.msf": {
source: "iana",
extensions: ["msf"]
},
"application/vnd.epson.quickanime": {
source: "iana",
extensions: ["qam"]
},
"application/vnd.epson.salt": {
source: "iana",
extensions: ["slt"]
},
"application/vnd.epson.ssf": {
source: "iana",
extensions: ["ssf"]
},
"application/vnd.ericsson.quickcall": {
source: "iana"
},
"application/vnd.espass-espass+zip": {
source: "iana",
compressible: false
},
"application/vnd.eszigno3+xml": {
source: "iana",
compressible: true,
extensions: ["es3", "et3"]
},
"application/vnd.etsi.aoc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.asic-e+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.asic-s+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.cug+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvcommand+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-bc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-cod+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-npvr+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvservice+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsync+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mcid+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mheg5": {
source: "iana"
},
"application/vnd.etsi.overload-control-policy-dataset+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.pstn+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.sci+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.simservs+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.timestamp-token": {
source: "iana"
},
"application/vnd.etsi.tsl+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.tsl.der": {
source: "iana"
},
"application/vnd.eu.kasparian.car+json": {
source: "iana",
compressible: true
},
"application/vnd.eudora.data": {
source: "iana"
},
"application/vnd.evolv.ecig.profile": {
source: "iana"
},
"application/vnd.evolv.ecig.settings": {
source: "iana"
},
"application/vnd.evolv.ecig.theme": {
source: "iana"
},
"application/vnd.exstream-empower+zip": {
source: "iana",
compressible: false
},
"application/vnd.exstream-package": {
source: "iana"
},
"application/vnd.ezpix-album": {
source: "iana",
extensions: ["ez2"]
},
"application/vnd.ezpix-package": {
source: "iana",
extensions: ["ez3"]
},
"application/vnd.f-secure.mobile": {
source: "iana"
},
"application/vnd.familysearch.gedcom+zip": {
source: "iana",
compressible: false
},
"application/vnd.fastcopy-disk-image": {
source: "iana"
},
"application/vnd.fdf": {
source: "iana",
extensions: ["fdf"]
},
"application/vnd.fdsn.mseed": {
source: "iana",
extensions: ["mseed"]
},
"application/vnd.fdsn.seed": {
source: "iana",
extensions: ["seed", "dataless"]
},
"application/vnd.ffsns": {
source: "iana"
},
"application/vnd.ficlab.flb+zip": {
source: "iana",
compressible: false
},
"application/vnd.filmit.zfc": {
source: "iana"
},
"application/vnd.fints": {
source: "iana"
},
"application/vnd.firemonkeys.cloudcell": {
source: "iana"
},
"application/vnd.flographit": {
source: "iana",
extensions: ["gph"]
},
"application/vnd.fluxtime.clip": {
source: "iana",
extensions: ["ftc"]
},
"application/vnd.font-fontforge-sfd": {
source: "iana"
},
"application/vnd.framemaker": {
source: "iana",
extensions: ["fm", "frame", "maker", "book"]
},
"application/vnd.frogans.fnc": {
source: "iana",
extensions: ["fnc"]
},
"application/vnd.frogans.ltf": {
source: "iana",
extensions: ["ltf"]
},
"application/vnd.fsc.weblaunch": {
source: "iana",
extensions: ["fsc"]
},
"application/vnd.fujifilm.fb.docuworks": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.binder": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.container": {
source: "iana"
},
"application/vnd.fujifilm.fb.jfi+xml": {
source: "iana",
compressible: true
},
"application/vnd.fujitsu.oasys": {
source: "iana",
extensions: ["oas"]
},
"application/vnd.fujitsu.oasys2": {
source: "iana",
extensions: ["oa2"]
},
"application/vnd.fujitsu.oasys3": {
source: "iana",
extensions: ["oa3"]
},
"application/vnd.fujitsu.oasysgp": {
source: "iana",
extensions: ["fg5"]
},
"application/vnd.fujitsu.oasysprs": {
source: "iana",
extensions: ["bh2"]
},
"application/vnd.fujixerox.art-ex": {
source: "iana"
},
"application/vnd.fujixerox.art4": {
source: "iana"
},
"application/vnd.fujixerox.ddd": {
source: "iana",
extensions: ["ddd"]
},
"application/vnd.fujixerox.docuworks": {
source: "iana",
extensions: ["xdw"]
},
"application/vnd.fujixerox.docuworks.binder": {
source: "iana",
extensions: ["xbd"]
},
"application/vnd.fujixerox.docuworks.container": {
source: "iana"
},
"application/vnd.fujixerox.hbpl": {
source: "iana"
},
"application/vnd.fut-misnet": {
source: "iana"
},
"application/vnd.futoin+cbor": {
source: "iana"
},
"application/vnd.futoin+json": {
source: "iana",
compressible: true
},
"application/vnd.fuzzysheet": {
source: "iana",
extensions: ["fzs"]
},
"application/vnd.genomatix.tuxedo": {
source: "iana",
extensions: ["txd"]
},
"application/vnd.gentics.grd+json": {
source: "iana",
compressible: true
},
"application/vnd.geo+json": {
source: "iana",
compressible: true
},
"application/vnd.geocube+xml": {
source: "iana",
compressible: true
},
"application/vnd.geogebra.file": {
source: "iana",
extensions: ["ggb"]
},
"application/vnd.geogebra.slides": {
source: "iana"
},
"application/vnd.geogebra.tool": {
source: "iana",
extensions: ["ggt"]
},
"application/vnd.geometry-explorer": {
source: "iana",
extensions: ["gex", "gre"]
},
"application/vnd.geonext": {
source: "iana",
extensions: ["gxt"]
},
"application/vnd.geoplan": {
source: "iana",
extensions: ["g2w"]
},
"application/vnd.geospace": {
source: "iana",
extensions: ["g3w"]
},
"application/vnd.gerber": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt-response": {
source: "iana"
},
"application/vnd.gmx": {
source: "iana",
extensions: ["gmx"]
},
"application/vnd.google-apps.document": {
compressible: false,
extensions: ["gdoc"]
},
"application/vnd.google-apps.presentation": {
compressible: false,
extensions: ["gslides"]
},
"application/vnd.google-apps.spreadsheet": {
compressible: false,
extensions: ["gsheet"]
},
"application/vnd.google-earth.kml+xml": {
source: "iana",
compressible: true,
extensions: ["kml"]
},
"application/vnd.google-earth.kmz": {
source: "iana",
compressible: false,
extensions: ["kmz"]
},
"application/vnd.gov.sk.e-form+xml": {
source: "iana",
compressible: true
},
"application/vnd.gov.sk.e-form+zip": {
source: "iana",
compressible: false
},
"application/vnd.gov.sk.xmldatacontainer+xml": {
source: "iana",
compressible: true
},
"application/vnd.grafeq": {
source: "iana",
extensions: ["gqf", "gqs"]
},
"application/vnd.gridmp": {
source: "iana"
},
"application/vnd.groove-account": {
source: "iana",
extensions: ["gac"]
},
"application/vnd.groove-help": {
source: "iana",
extensions: ["ghf"]
},
"application/vnd.groove-identity-message": {
source: "iana",
extensions: ["gim"]
},
"application/vnd.groove-injector": {
source: "iana",
extensions: ["grv"]
},
"application/vnd.groove-tool-message": {
source: "iana",
extensions: ["gtm"]
},
"application/vnd.groove-tool-template": {
source: "iana",
extensions: ["tpl"]
},
"application/vnd.groove-vcard": {
source: "iana",
extensions: ["vcg"]
},
"application/vnd.hal+json": {
source: "iana",
compressible: true
},
"application/vnd.hal+xml": {
source: "iana",
compressible: true,
extensions: ["hal"]
},
"application/vnd.handheld-entertainment+xml": {
source: "iana",
compressible: true,
extensions: ["zmm"]
},
"application/vnd.hbci": {
source: "iana",
extensions: ["hbci"]
},
"application/vnd.hc+json": {
source: "iana",
compressible: true
},
"application/vnd.hcl-bireports": {
source: "iana"
},
"application/vnd.hdt": {
source: "iana"
},
"application/vnd.heroku+json": {
source: "iana",
compressible: true
},
"application/vnd.hhe.lesson-player": {
source: "iana",
extensions: ["les"]
},
"application/vnd.hl7cda+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.hl7v2+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.hp-hpgl": {
source: "iana",
extensions: ["hpgl"]
},
"application/vnd.hp-hpid": {
source: "iana",
extensions: ["hpid"]
},
"application/vnd.hp-hps": {
source: "iana",
extensions: ["hps"]
},
"application/vnd.hp-jlyt": {
source: "iana",
extensions: ["jlt"]
},
"application/vnd.hp-pcl": {
source: "iana",
extensions: ["pcl"]
},
"application/vnd.hp-pclxl": {
source: "iana",
extensions: ["pclxl"]
},
"application/vnd.httphone": {
source: "iana"
},
"application/vnd.hydrostatix.sof-data": {
source: "iana",
extensions: ["sfd-hdstx"]
},
"application/vnd.hyper+json": {
source: "iana",
compressible: true
},
"application/vnd.hyper-item+json": {
source: "iana",
compressible: true
},
"application/vnd.hyperdrive+json": {
source: "iana",
compressible: true
},
"application/vnd.hzn-3d-crossword": {
source: "iana"
},
"application/vnd.ibm.afplinedata": {
source: "iana"
},
"application/vnd.ibm.electronic-media": {
source: "iana"
},
"application/vnd.ibm.minipay": {
source: "iana",
extensions: ["mpy"]
},
"application/vnd.ibm.modcap": {
source: "iana",
extensions: ["afp", "listafp", "list3820"]
},
"application/vnd.ibm.rights-management": {
source: "iana",
extensions: ["irm"]
},
"application/vnd.ibm.secure-container": {
source: "iana",
extensions: ["sc"]
},
"application/vnd.iccprofile": {
source: "iana",
extensions: ["icc", "icm"]
},
"application/vnd.ieee.1905": {
source: "iana"
},
"application/vnd.igloader": {
source: "iana",
extensions: ["igl"]
},
"application/vnd.imagemeter.folder+zip": {
source: "iana",
compressible: false
},
"application/vnd.imagemeter.image+zip": {
source: "iana",
compressible: false
},
"application/vnd.immervision-ivp": {
source: "iana",
extensions: ["ivp"]
},
"application/vnd.immervision-ivu": {
source: "iana",
extensions: ["ivu"]
},
"application/vnd.ims.imsccv1p1": {
source: "iana"
},
"application/vnd.ims.imsccv1p2": {
source: "iana"
},
"application/vnd.ims.imsccv1p3": {
source: "iana"
},
"application/vnd.ims.lis.v2.result+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolconsumerprofile+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy.id+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings.simple+json": {
source: "iana",
compressible: true
},
"application/vnd.informedcontrol.rms+xml": {
source: "iana",
compressible: true
},
"application/vnd.informix-visionary": {
source: "iana"
},
"application/vnd.infotech.project": {
source: "iana"
},
"application/vnd.infotech.project+xml": {
source: "iana",
compressible: true
},
"application/vnd.innopath.wamp.notification": {
source: "iana"
},
"application/vnd.insors.igm": {
source: "iana",
extensions: ["igm"]
},
"application/vnd.intercon.formnet": {
source: "iana",
extensions: ["xpw", "xpx"]
},
"application/vnd.intergeo": {
source: "iana",
extensions: ["i2g"]
},
"application/vnd.intertrust.digibox": {
source: "iana"
},
"application/vnd.intertrust.nncp": {
source: "iana"
},
"application/vnd.intu.qbo": {
source: "iana",
extensions: ["qbo"]
},
"application/vnd.intu.qfx": {
source: "iana",
extensions: ["qfx"]
},
"application/vnd.iptc.g2.catalogitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.conceptitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.knowledgeitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.packageitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.planningitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.ipunplugged.rcprofile": {
source: "iana",
extensions: ["rcprofile"]
},
"application/vnd.irepository.package+xml": {
source: "iana",
compressible: true,
extensions: ["irp"]
},
"application/vnd.is-xpr": {
source: "iana",
extensions: ["xpr"]
},
"application/vnd.isac.fcs": {
source: "iana",
extensions: ["fcs"]
},
"application/vnd.iso11783-10+zip": {
source: "iana",
compressible: false
},
"application/vnd.jam": {
source: "iana",
extensions: ["jam"]
},
"application/vnd.japannet-directory-service": {
source: "iana"
},
"application/vnd.japannet-jpnstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-payment-wakeup": {
source: "iana"
},
"application/vnd.japannet-registration": {
source: "iana"
},
"application/vnd.japannet-registration-wakeup": {
source: "iana"
},
"application/vnd.japannet-setstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-verification": {
source: "iana"
},
"application/vnd.japannet-verification-wakeup": {
source: "iana"
},
"application/vnd.jcp.javame.midlet-rms": {
source: "iana",
extensions: ["rms"]
},
"application/vnd.jisp": {
source: "iana",
extensions: ["jisp"]
},
"application/vnd.joost.joda-archive": {
source: "iana",
extensions: ["joda"]
},
"application/vnd.jsk.isdn-ngn": {
source: "iana"
},
"application/vnd.kahootz": {
source: "iana",
extensions: ["ktz", "ktr"]
},
"application/vnd.kde.karbon": {
source: "iana",
extensions: ["karbon"]
},
"application/vnd.kde.kchart": {
source: "iana",
extensions: ["chrt"]
},
"application/vnd.kde.kformula": {
source: "iana",
extensions: ["kfo"]
},
"application/vnd.kde.kivio": {
source: "iana",
extensions: ["flw"]
},
"application/vnd.kde.kontour": {
source: "iana",
extensions: ["kon"]
},
"application/vnd.kde.kpresenter": {
source: "iana",
extensions: ["kpr", "kpt"]
},
"application/vnd.kde.kspread": {
source: "iana",
extensions: ["ksp"]
},
"application/vnd.kde.kword": {
source: "iana",
extensions: ["kwd", "kwt"]
},
"application/vnd.kenameaapp": {
source: "iana",
extensions: ["htke"]
},
"application/vnd.kidspiration": {
source: "iana",
extensions: ["kia"]
},
"application/vnd.kinar": {
source: "iana",
extensions: ["kne", "knp"]
},
"application/vnd.koan": {
source: "iana",
extensions: ["skp", "skd", "skt", "skm"]
},
"application/vnd.kodak-descriptor": {
source: "iana",
extensions: ["sse"]
},
"application/vnd.las": {
source: "iana"
},
"application/vnd.las.las+json": {
source: "iana",
compressible: true
},
"application/vnd.las.las+xml": {
source: "iana",
compressible: true,
extensions: ["lasxml"]
},
"application/vnd.laszip": {
source: "iana"
},
"application/vnd.leap+json": {
source: "iana",
compressible: true
},
"application/vnd.liberty-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.llamagraphics.life-balance.desktop": {
source: "iana",
extensions: ["lbd"]
},
"application/vnd.llamagraphics.life-balance.exchange+xml": {
source: "iana",
compressible: true,
extensions: ["lbe"]
},
"application/vnd.logipipe.circuit+zip": {
source: "iana",
compressible: false
},
"application/vnd.loom": {
source: "iana"
},
"application/vnd.lotus-1-2-3": {
source: "iana",
extensions: ["123"]
},
"application/vnd.lotus-approach": {
source: "iana",
extensions: ["apr"]
},
"application/vnd.lotus-freelance": {
source: "iana",
extensions: ["pre"]
},
"application/vnd.lotus-notes": {
source: "iana",
extensions: ["nsf"]
},
"application/vnd.lotus-organizer": {
source: "iana",
extensions: ["org"]
},
"application/vnd.lotus-screencam": {
source: "iana",
extensions: ["scm"]
},
"application/vnd.lotus-wordpro": {
source: "iana",
extensions: ["lwp"]
},
"application/vnd.macports.portpkg": {
source: "iana",
extensions: ["portpkg"]
},
"application/vnd.mapbox-vector-tile": {
source: "iana",
extensions: ["mvt"]
},
"application/vnd.marlin.drm.actiontoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.conftoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.license+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.mdcf": {
source: "iana"
},
"application/vnd.mason+json": {
source: "iana",
compressible: true
},
"application/vnd.maxar.archive.3tz+zip": {
source: "iana",
compressible: false
},
"application/vnd.maxmind.maxmind-db": {
source: "iana"
},
"application/vnd.mcd": {
source: "iana",
extensions: ["mcd"]
},
"application/vnd.medcalcdata": {
source: "iana",
extensions: ["mc1"]
},
"application/vnd.mediastation.cdkey": {
source: "iana",
extensions: ["cdkey"]
},
"application/vnd.meridian-slingshot": {
source: "iana"
},
"application/vnd.mfer": {
source: "iana",
extensions: ["mwf"]
},
"application/vnd.mfmp": {
source: "iana",
extensions: ["mfm"]
},
"application/vnd.micro+json": {
source: "iana",
compressible: true
},
"application/vnd.micrografx.flo": {
source: "iana",
extensions: ["flo"]
},
"application/vnd.micrografx.igx": {
source: "iana",
extensions: ["igx"]
},
"application/vnd.microsoft.portable-executable": {
source: "iana"
},
"application/vnd.microsoft.windows.thumbnail-cache": {
source: "iana"
},
"application/vnd.miele+json": {
source: "iana",
compressible: true
},
"application/vnd.mif": {
source: "iana",
extensions: ["mif"]
},
"application/vnd.minisoft-hp3000-save": {
source: "iana"
},
"application/vnd.mitsubishi.misty-guard.trustweb": {
source: "iana"
},
"application/vnd.mobius.daf": {
source: "iana",
extensions: ["daf"]
},
"application/vnd.mobius.dis": {
source: "iana",
extensions: ["dis"]
},
"application/vnd.mobius.mbk": {
source: "iana",
extensions: ["mbk"]
},
"application/vnd.mobius.mqy": {
source: "iana",
extensions: ["mqy"]
},
"application/vnd.mobius.msl": {
source: "iana",
extensions: ["msl"]
},
"application/vnd.mobius.plc": {
source: "iana",
extensions: ["plc"]
},
"application/vnd.mobius.txf": {
source: "iana",
extensions: ["txf"]
},
"application/vnd.mophun.application": {
source: "iana",
extensions: ["mpn"]
},
"application/vnd.mophun.certificate": {
source: "iana",
extensions: ["mpc"]
},
"application/vnd.motorola.flexsuite": {
source: "iana"
},
"application/vnd.motorola.flexsuite.adsi": {
source: "iana"
},
"application/vnd.motorola.flexsuite.fis": {
source: "iana"
},
"application/vnd.motorola.flexsuite.gotap": {
source: "iana"
},
"application/vnd.motorola.flexsuite.kmr": {
source: "iana"
},
"application/vnd.motorola.flexsuite.ttc": {
source: "iana"
},
"application/vnd.motorola.flexsuite.wem": {
source: "iana"
},
"application/vnd.motorola.iprm": {
source: "iana"
},
"application/vnd.mozilla.xul+xml": {
source: "iana",
compressible: true,
extensions: ["xul"]
},
"application/vnd.ms-3mfdocument": {
source: "iana"
},
"application/vnd.ms-artgalry": {
source: "iana",
extensions: ["cil"]
},
"application/vnd.ms-asf": {
source: "iana"
},
"application/vnd.ms-cab-compressed": {
source: "iana",
extensions: ["cab"]
},
"application/vnd.ms-color.iccprofile": {
source: "apache"
},
"application/vnd.ms-excel": {
source: "iana",
compressible: false,
extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"]
},
"application/vnd.ms-excel.addin.macroenabled.12": {
source: "iana",
extensions: ["xlam"]
},
"application/vnd.ms-excel.sheet.binary.macroenabled.12": {
source: "iana",
extensions: ["xlsb"]
},
"application/vnd.ms-excel.sheet.macroenabled.12": {
source: "iana",
extensions: ["xlsm"]
},
"application/vnd.ms-excel.template.macroenabled.12": {
source: "iana",
extensions: ["xltm"]
},
"application/vnd.ms-fontobject": {
source: "iana",
compressible: true,
extensions: ["eot"]
},
"application/vnd.ms-htmlhelp": {
source: "iana",
extensions: ["chm"]
},
"application/vnd.ms-ims": {
source: "iana",
extensions: ["ims"]
},
"application/vnd.ms-lrm": {
source: "iana",
extensions: ["lrm"]
},
"application/vnd.ms-office.activex+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-officetheme": {
source: "iana",
extensions: ["thmx"]
},
"application/vnd.ms-opentype": {
source: "apache",
compressible: true
},
"application/vnd.ms-outlook": {
compressible: false,
extensions: ["msg"]
},
"application/vnd.ms-package.obfuscated-opentype": {
source: "apache"
},
"application/vnd.ms-pki.seccat": {
source: "apache",
extensions: ["cat"]
},
"application/vnd.ms-pki.stl": {
source: "apache",
extensions: ["stl"]
},
"application/vnd.ms-playready.initiator+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-powerpoint": {
source: "iana",
compressible: false,
extensions: ["ppt", "pps", "pot"]
},
"application/vnd.ms-powerpoint.addin.macroenabled.12": {
source: "iana",
extensions: ["ppam"]
},
"application/vnd.ms-powerpoint.presentation.macroenabled.12": {
source: "iana",
extensions: ["pptm"]
},
"application/vnd.ms-powerpoint.slide.macroenabled.12": {
source: "iana",
extensions: ["sldm"]
},
"application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
source: "iana",
extensions: ["ppsm"]
},
"application/vnd.ms-powerpoint.template.macroenabled.12": {
source: "iana",
extensions: ["potm"]
},
"application/vnd.ms-printdevicecapabilities+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-printing.printticket+xml": {
source: "apache",
compressible: true
},
"application/vnd.ms-printschematicket+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-project": {
source: "iana",
extensions: ["mpp", "mpt"]
},
"application/vnd.ms-tnef": {
source: "iana"
},
"application/vnd.ms-windows.devicepairing": {
source: "iana"
},
"application/vnd.ms-windows.nwprinting.oob": {
source: "iana"
},
"application/vnd.ms-windows.printerpairing": {
source: "iana"
},
"application/vnd.ms-windows.wsd.oob": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-resp": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-resp": {
source: "iana"
},
"application/vnd.ms-word.document.macroenabled.12": {
source: "iana",
extensions: ["docm"]
},
"application/vnd.ms-word.template.macroenabled.12": {
source: "iana",
extensions: ["dotm"]
},
"application/vnd.ms-works": {
source: "iana",
extensions: ["wps", "wks", "wcm", "wdb"]
},
"application/vnd.ms-wpl": {
source: "iana",
extensions: ["wpl"]
},
"application/vnd.ms-xpsdocument": {
source: "iana",
compressible: false,
extensions: ["xps"]
},
"application/vnd.msa-disk-image": {
source: "iana"
},
"application/vnd.mseq": {
source: "iana",
extensions: ["mseq"]
},
"application/vnd.msign": {
source: "iana"
},
"application/vnd.multiad.creator": {
source: "iana"
},
"application/vnd.multiad.creator.cif": {
source: "iana"
},
"application/vnd.music-niff": {
source: "iana"
},
"application/vnd.musician": {
source: "iana",
extensions: ["mus"]
},
"application/vnd.muvee.style": {
source: "iana",
extensions: ["msty"]
},
"application/vnd.mynfc": {
source: "iana",
extensions: ["taglet"]
},
"application/vnd.nacamar.ybrid+json": {
source: "iana",
compressible: true
},
"application/vnd.ncd.control": {
source: "iana"
},
"application/vnd.ncd.reference": {
source: "iana"
},
"application/vnd.nearst.inv+json": {
source: "iana",
compressible: true
},
"application/vnd.nebumind.line": {
source: "iana"
},
"application/vnd.nervana": {
source: "iana"
},
"application/vnd.netfpx": {
source: "iana"
},
"application/vnd.neurolanguage.nlu": {
source: "iana",
extensions: ["nlu"]
},
"application/vnd.nimn": {
source: "iana"
},
"application/vnd.nintendo.nitro.rom": {
source: "iana"
},
"application/vnd.nintendo.snes.rom": {
source: "iana"
},
"application/vnd.nitf": {
source: "iana",
extensions: ["ntf", "nitf"]
},
"application/vnd.noblenet-directory": {
source: "iana",
extensions: ["nnd"]
},
"application/vnd.noblenet-sealer": {
source: "iana",
extensions: ["nns"]
},
"application/vnd.noblenet-web": {
source: "iana",
extensions: ["nnw"]
},
"application/vnd.nokia.catalogs": {
source: "iana"
},
"application/vnd.nokia.conml+wbxml": {
source: "iana"
},
"application/vnd.nokia.conml+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.iptv.config+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.isds-radio-presets": {
source: "iana"
},
"application/vnd.nokia.landmark+wbxml": {
source: "iana"
},
"application/vnd.nokia.landmark+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.landmarkcollection+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.n-gage.ac+xml": {
source: "iana",
compressible: true,
extensions: ["ac"]
},
"application/vnd.nokia.n-gage.data": {
source: "iana",
extensions: ["ngdat"]
},
"application/vnd.nokia.n-gage.symbian.install": {
source: "iana",
extensions: ["n-gage"]
},
"application/vnd.nokia.ncd": {
source: "iana"
},
"application/vnd.nokia.pcd+wbxml": {
source: "iana"
},
"application/vnd.nokia.pcd+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.radio-preset": {
source: "iana",
extensions: ["rpst"]
},
"application/vnd.nokia.radio-presets": {
source: "iana",
extensions: ["rpss"]
},
"application/vnd.novadigm.edm": {
source: "iana",
extensions: ["edm"]
},
"application/vnd.novadigm.edx": {
source: "iana",
extensions: ["edx"]
},
"application/vnd.novadigm.ext": {
source: "iana",
extensions: ["ext"]
},
"application/vnd.ntt-local.content-share": {
source: "iana"
},
"application/vnd.ntt-local.file-transfer": {
source: "iana"
},
"application/vnd.ntt-local.ogw_remote-access": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_remote": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_tcp_stream": {
source: "iana"
},
"application/vnd.oasis.opendocument.chart": {
source: "iana",
extensions: ["odc"]
},
"application/vnd.oasis.opendocument.chart-template": {
source: "iana",
extensions: ["otc"]
},
"application/vnd.oasis.opendocument.database": {
source: "iana",
extensions: ["odb"]
},
"application/vnd.oasis.opendocument.formula": {
source: "iana",
extensions: ["odf"]
},
"application/vnd.oasis.opendocument.formula-template": {
source: "iana",
extensions: ["odft"]
},
"application/vnd.oasis.opendocument.graphics": {
source: "iana",
compressible: false,
extensions: ["odg"]
},
"application/vnd.oasis.opendocument.graphics-template": {
source: "iana",
extensions: ["otg"]
},
"application/vnd.oasis.opendocument.image": {
source: "iana",
extensions: ["odi"]
},
"application/vnd.oasis.opendocument.image-template": {
source: "iana",
extensions: ["oti"]
},
"application/vnd.oasis.opendocument.presentation": {
source: "iana",
compressible: false,
extensions: ["odp"]
},
"application/vnd.oasis.opendocument.presentation-template": {
source: "iana",
extensions: ["otp"]
},
"application/vnd.oasis.opendocument.spreadsheet": {
source: "iana",
compressible: false,
extensions: ["ods"]
},
"application/vnd.oasis.opendocument.spreadsheet-template": {
source: "iana",
extensions: ["ots"]
},
"application/vnd.oasis.opendocument.text": {
source: "iana",
compressible: false,
extensions: ["odt"]
},
"application/vnd.oasis.opendocument.text-master": {
source: "iana",
extensions: ["odm"]
},
"application/vnd.oasis.opendocument.text-template": {
source: "iana",
extensions: ["ott"]
},
"application/vnd.oasis.opendocument.text-web": {
source: "iana",
extensions: ["oth"]
},
"application/vnd.obn": {
source: "iana"
},
"application/vnd.ocf+cbor": {
source: "iana"
},
"application/vnd.oci.image.manifest.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.oftn.l10n+json": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessdownload+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessstreaming+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.cspg-hexbinary": {
source: "iana"
},
"application/vnd.oipf.dae.svg+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.dae.xhtml+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.mippvcontrolmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.pae.gem": {
source: "iana"
},
"application/vnd.oipf.spdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.spdlist+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.ueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.userprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.olpc-sugar": {
source: "iana",
extensions: ["xo"]
},
"application/vnd.oma-scws-config": {
source: "iana"
},
"application/vnd.oma-scws-http-request": {
source: "iana"
},
"application/vnd.oma-scws-http-response": {
source: "iana"
},
"application/vnd.oma.bcast.associated-procedure-parameter+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.drm-trigger+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.imd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.ltkm": {
source: "iana"
},
"application/vnd.oma.bcast.notification+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.provisioningtrigger": {
source: "iana"
},
"application/vnd.oma.bcast.sgboot": {
source: "iana"
},
"application/vnd.oma.bcast.sgdd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.sgdu": {
source: "iana"
},
"application/vnd.oma.bcast.simple-symbol-container": {
source: "iana"
},
"application/vnd.oma.bcast.smartcard-trigger+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.sprov+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.stkm": {
source: "iana"
},
"application/vnd.oma.cab-address-book+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-feature-handler+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-pcc+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-subs-invite+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-user-prefs+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.dcd": {
source: "iana"
},
"application/vnd.oma.dcdc": {
source: "iana"
},
"application/vnd.oma.dd2+xml": {
source: "iana",
compressible: true,
extensions: ["dd2"]
},
"application/vnd.oma.drm.risd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.group-usage-list+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+cbor": {
source: "iana"
},
"application/vnd.oma.lwm2m+json": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+tlv": {
source: "iana"
},
"application/vnd.oma.pal+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.detailed-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.final-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.groups+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.invocation-descriptor+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.optimized-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.push": {
source: "iana"
},
"application/vnd.oma.scidm.messages+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.xcap-directory+xml": {
source: "iana",
compressible: true
},
"application/vnd.omads-email+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-file+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-folder+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omaloc-supl-init": {
source: "iana"
},
"application/vnd.onepager": {
source: "iana"
},
"application/vnd.onepagertamp": {
source: "iana"
},
"application/vnd.onepagertamx": {
source: "iana"
},
"application/vnd.onepagertat": {
source: "iana"
},
"application/vnd.onepagertatp": {
source: "iana"
},
"application/vnd.onepagertatx": {
source: "iana"
},
"application/vnd.openblox.game+xml": {
source: "iana",
compressible: true,
extensions: ["obgx"]
},
"application/vnd.openblox.game-binary": {
source: "iana"
},
"application/vnd.openeye.oeb": {
source: "iana"
},
"application/vnd.openofficeorg.extension": {
source: "apache",
extensions: ["oxt"]
},
"application/vnd.openstreetmap.data+xml": {
source: "iana",
compressible: true,
extensions: ["osm"]
},
"application/vnd.opentimestamps.ots": {
source: "iana"
},
"application/vnd.openxmlformats-officedocument.custom-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawing+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.extended-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation": {
source: "iana",
compressible: false,
extensions: ["pptx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slide": {
source: "iana",
extensions: ["sldx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
source: "iana",
extensions: ["ppsx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.template": {
source: "iana",
extensions: ["potx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
source: "iana",
compressible: false,
extensions: ["xlsx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
source: "iana",
extensions: ["xltx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.theme+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.themeoverride+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.vmldrawing": {
source: "iana"
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
source: "iana",
compressible: false,
extensions: ["docx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
source: "iana",
extensions: ["dotx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.core-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.relationships+xml": {
source: "iana",
compressible: true
},
"application/vnd.oracle.resource+json": {
source: "iana",
compressible: true
},
"application/vnd.orange.indata": {
source: "iana"
},
"application/vnd.osa.netdeploy": {
source: "iana"
},
"application/vnd.osgeo.mapguide.package": {
source: "iana",
extensions: ["mgp"]
},
"application/vnd.osgi.bundle": {
source: "iana"
},
"application/vnd.osgi.dp": {
source: "iana",
extensions: ["dp"]
},
"application/vnd.osgi.subsystem": {
source: "iana",
extensions: ["esa"]
},
"application/vnd.otps.ct-kip+xml": {
source: "iana",
compressible: true
},
"application/vnd.oxli.countgraph": {
source: "iana"
},
"application/vnd.pagerduty+json": {
source: "iana",
compressible: true
},
"application/vnd.palm": {
source: "iana",
extensions: ["pdb", "pqa", "oprc"]
},
"application/vnd.panoply": {
source: "iana"
},
"application/vnd.paos.xml": {
source: "iana"
},
"application/vnd.patentdive": {
source: "iana"
},
"application/vnd.patientecommsdoc": {
source: "iana"
},
"application/vnd.pawaafile": {
source: "iana",
extensions: ["paw"]
},
"application/vnd.pcos": {
source: "iana"
},
"application/vnd.pg.format": {
source: "iana",
extensions: ["str"]
},
"application/vnd.pg.osasli": {
source: "iana",
extensions: ["ei6"]
},
"application/vnd.piaccess.application-licence": {
source: "iana"
},
"application/vnd.picsel": {
source: "iana",
extensions: ["efif"]
},
"application/vnd.pmi.widget": {
source: "iana",
extensions: ["wg"]
},
"application/vnd.poc.group-advertisement+xml": {
source: "iana",
compressible: true
},
"application/vnd.pocketlearn": {
source: "iana",
extensions: ["plf"]
},
"application/vnd.powerbuilder6": {
source: "iana",
extensions: ["pbd"]
},
"application/vnd.powerbuilder6-s": {
source: "iana"
},
"application/vnd.powerbuilder7": {
source: "iana"
},
"application/vnd.powerbuilder7-s": {
source: "iana"
},
"application/vnd.powerbuilder75": {
source: "iana"
},
"application/vnd.powerbuilder75-s": {
source: "iana"
},
"application/vnd.preminet": {
source: "iana"
},
"application/vnd.previewsystems.box": {
source: "iana",
extensions: ["box"]
},
"application/vnd.proteus.magazine": {
source: "iana",
extensions: ["mgz"]
},
"application/vnd.psfs": {
source: "iana"
},
"application/vnd.publishare-delta-tree": {
source: "iana",
extensions: ["qps"]
},
"application/vnd.pvi.ptid1": {
source: "iana",
extensions: ["ptid"]
},
"application/vnd.pwg-multiplexed": {
source: "iana"
},
"application/vnd.pwg-xhtml-print+xml": {
source: "iana",
compressible: true
},
"application/vnd.qualcomm.brew-app-res": {
source: "iana"
},
"application/vnd.quarantainenet": {
source: "iana"
},
"application/vnd.quark.quarkxpress": {
source: "iana",
extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"]
},
"application/vnd.quobject-quoxdocument": {
source: "iana"
},
"application/vnd.radisys.moml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conn+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-stream+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-base+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-detect+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-group+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-speech+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-transform+xml": {
source: "iana",
compressible: true
},
"application/vnd.rainstor.data": {
source: "iana"
},
"application/vnd.rapid": {
source: "iana"
},
"application/vnd.rar": {
source: "iana",
extensions: ["rar"]
},
"application/vnd.realvnc.bed": {
source: "iana",
extensions: ["bed"]
},
"application/vnd.recordare.musicxml": {
source: "iana",
extensions: ["mxl"]
},
"application/vnd.recordare.musicxml+xml": {
source: "iana",
compressible: true,
extensions: ["musicxml"]
},
"application/vnd.renlearn.rlprint": {
source: "iana"
},
"application/vnd.resilient.logic": {
source: "iana"
},
"application/vnd.restful+json": {
source: "iana",
compressible: true
},
"application/vnd.rig.cryptonote": {
source: "iana",
extensions: ["cryptonote"]
},
"application/vnd.rim.cod": {
source: "apache",
extensions: ["cod"]
},
"application/vnd.rn-realmedia": {
source: "apache",
extensions: ["rm"]
},
"application/vnd.rn-realmedia-vbr": {
source: "apache",
extensions: ["rmvb"]
},
"application/vnd.route66.link66+xml": {
source: "iana",
compressible: true,
extensions: ["link66"]
},
"application/vnd.rs-274x": {
source: "iana"
},
"application/vnd.ruckus.download": {
source: "iana"
},
"application/vnd.s3sms": {
source: "iana"
},
"application/vnd.sailingtracker.track": {
source: "iana",
extensions: ["st"]
},
"application/vnd.sar": {
source: "iana"
},
"application/vnd.sbm.cid": {
source: "iana"
},
"application/vnd.sbm.mid2": {
source: "iana"
},
"application/vnd.scribus": {
source: "iana"
},
"application/vnd.sealed.3df": {
source: "iana"
},
"application/vnd.sealed.csf": {
source: "iana"
},
"application/vnd.sealed.doc": {
source: "iana"
},
"application/vnd.sealed.eml": {
source: "iana"
},
"application/vnd.sealed.mht": {
source: "iana"
},
"application/vnd.sealed.net": {
source: "iana"
},
"application/vnd.sealed.ppt": {
source: "iana"
},
"application/vnd.sealed.tiff": {
source: "iana"
},
"application/vnd.sealed.xls": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.html": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.pdf": {
source: "iana"
},
"application/vnd.seemail": {
source: "iana",
extensions: ["see"]
},
"application/vnd.seis+json": {
source: "iana",
compressible: true
},
"application/vnd.sema": {
source: "iana",
extensions: ["sema"]
},
"application/vnd.semd": {
source: "iana",
extensions: ["semd"]
},
"application/vnd.semf": {
source: "iana",
extensions: ["semf"]
},
"application/vnd.shade-save-file": {
source: "iana"
},
"application/vnd.shana.informed.formdata": {
source: "iana",
extensions: ["ifm"]
},
"application/vnd.shana.informed.formtemplate": {
source: "iana",
extensions: ["itp"]
},
"application/vnd.shana.informed.interchange": {
source: "iana",
extensions: ["iif"]
},
"application/vnd.shana.informed.package": {
source: "iana",
extensions: ["ipk"]
},
"application/vnd.shootproof+json": {
source: "iana",
compressible: true
},
"application/vnd.shopkick+json": {
source: "iana",
compressible: true
},
"application/vnd.shp": {
source: "iana"
},
"application/vnd.shx": {
source: "iana"
},
"application/vnd.sigrok.session": {
source: "iana"
},
"application/vnd.simtech-mindmapper": {
source: "iana",
extensions: ["twd", "twds"]
},
"application/vnd.siren+json": {
source: "iana",
compressible: true
},
"application/vnd.smaf": {
source: "iana",
extensions: ["mmf"]
},
"application/vnd.smart.notebook": {
source: "iana"
},
"application/vnd.smart.teacher": {
source: "iana",
extensions: ["teacher"]
},
"application/vnd.snesdev-page-table": {
source: "iana"
},
"application/vnd.software602.filler.form+xml": {
source: "iana",
compressible: true,
extensions: ["fo"]
},
"application/vnd.software602.filler.form-xml-zip": {
source: "iana"
},
"application/vnd.solent.sdkm+xml": {
source: "iana",
compressible: true,
extensions: ["sdkm", "sdkd"]
},
"application/vnd.spotfire.dxp": {
source: "iana",
extensions: ["dxp"]
},
"application/vnd.spotfire.sfs": {
source: "iana",
extensions: ["sfs"]
},
"application/vnd.sqlite3": {
source: "iana"
},
"application/vnd.sss-cod": {
source: "iana"
},
"application/vnd.sss-dtf": {
source: "iana"
},
"application/vnd.sss-ntf": {
source: "iana"
},
"application/vnd.stardivision.calc": {
source: "apache",
extensions: ["sdc"]
},
"application/vnd.stardivision.draw": {
source: "apache",
extensions: ["sda"]
},
"application/vnd.stardivision.impress": {
source: "apache",
extensions: ["sdd"]
},
"application/vnd.stardivision.math": {
source: "apache",
extensions: ["smf"]
},
"application/vnd.stardivision.writer": {
source: "apache",
extensions: ["sdw", "vor"]
},
"application/vnd.stardivision.writer-global": {
source: "apache",
extensions: ["sgl"]
},
"application/vnd.stepmania.package": {
source: "iana",
extensions: ["smzip"]
},
"application/vnd.stepmania.stepchart": {
source: "iana",
extensions: ["sm"]
},
"application/vnd.street-stream": {
source: "iana"
},
"application/vnd.sun.wadl+xml": {
source: "iana",
compressible: true,
extensions: ["wadl"]
},
"application/vnd.sun.xml.calc": {
source: "apache",
extensions: ["sxc"]
},
"application/vnd.sun.xml.calc.template": {
source: "apache",
extensions: ["stc"]
},
"application/vnd.sun.xml.draw": {
source: "apache",
extensions: ["sxd"]
},
"application/vnd.sun.xml.draw.template": {
source: "apache",
extensions: ["std"]
},
"application/vnd.sun.xml.impress": {
source: "apache",
extensions: ["sxi"]
},
"application/vnd.sun.xml.impress.template": {
source: "apache",
extensions: ["sti"]
},
"application/vnd.sun.xml.math": {
source: "apache",
extensions: ["sxm"]
},
"application/vnd.sun.xml.writer": {
source: "apache",
extensions: ["sxw"]
},
"application/vnd.sun.xml.writer.global": {
source: "apache",
extensions: ["sxg"]
},
"application/vnd.sun.xml.writer.template": {
source: "apache",
extensions: ["stw"]
},
"application/vnd.sus-calendar": {
source: "iana",
extensions: ["sus", "susp"]
},
"application/vnd.svd": {
source: "iana",
extensions: ["svd"]
},
"application/vnd.swiftview-ics": {
source: "iana"
},
"application/vnd.sycle+xml": {
source: "iana",
compressible: true
},
"application/vnd.syft+json": {
source: "iana",
compressible: true
},
"application/vnd.symbian.install": {
source: "apache",
extensions: ["sis", "sisx"]
},
"application/vnd.syncml+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xsm"]
},
"application/vnd.syncml.dm+wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["bdm"]
},
"application/vnd.syncml.dm+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xdm"]
},
"application/vnd.syncml.dm.notification": {
source: "iana"
},
"application/vnd.syncml.dmddf+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmddf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["ddf"]
},
"application/vnd.syncml.dmtnds+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmtnds+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.syncml.ds.notification": {
source: "iana"
},
"application/vnd.tableschema+json": {
source: "iana",
compressible: true
},
"application/vnd.tao.intent-module-archive": {
source: "iana",
extensions: ["tao"]
},
"application/vnd.tcpdump.pcap": {
source: "iana",
extensions: ["pcap", "cap", "dmp"]
},
"application/vnd.think-cell.ppttc+json": {
source: "iana",
compressible: true
},
"application/vnd.tmd.mediaflex.api+xml": {
source: "iana",
compressible: true
},
"application/vnd.tml": {
source: "iana"
},
"application/vnd.tmobile-livetv": {
source: "iana",
extensions: ["tmo"]
},
"application/vnd.tri.onesource": {
source: "iana"
},
"application/vnd.trid.tpt": {
source: "iana",
extensions: ["tpt"]
},
"application/vnd.triscape.mxs": {
source: "iana",
extensions: ["mxs"]
},
"application/vnd.trueapp": {
source: "iana",
extensions: ["tra"]
},
"application/vnd.truedoc": {
source: "iana"
},
"application/vnd.ubisoft.webplayer": {
source: "iana"
},
"application/vnd.ufdl": {
source: "iana",
extensions: ["ufd", "ufdl"]
},
"application/vnd.uiq.theme": {
source: "iana",
extensions: ["utz"]
},
"application/vnd.umajin": {
source: "iana",
extensions: ["umj"]
},
"application/vnd.unity": {
source: "iana",
extensions: ["unityweb"]
},
"application/vnd.uoml+xml": {
source: "iana",
compressible: true,
extensions: ["uoml"]
},
"application/vnd.uplanet.alert": {
source: "iana"
},
"application/vnd.uplanet.alert-wbxml": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice-wbxml": {
source: "iana"
},
"application/vnd.uplanet.cacheop": {
source: "iana"
},
"application/vnd.uplanet.cacheop-wbxml": {
source: "iana"
},
"application/vnd.uplanet.channel": {
source: "iana"
},
"application/vnd.uplanet.channel-wbxml": {
source: "iana"
},
"application/vnd.uplanet.list": {
source: "iana"
},
"application/vnd.uplanet.list-wbxml": {
source: "iana"
},
"application/vnd.uplanet.listcmd": {
source: "iana"
},
"application/vnd.uplanet.listcmd-wbxml": {
source: "iana"
},
"application/vnd.uplanet.signal": {
source: "iana"
},
"application/vnd.uri-map": {
source: "iana"
},
"application/vnd.valve.source.material": {
source: "iana"
},
"application/vnd.vcx": {
source: "iana",
extensions: ["vcx"]
},
"application/vnd.vd-study": {
source: "iana"
},
"application/vnd.vectorworks": {
source: "iana"
},
"application/vnd.vel+json": {
source: "iana",
compressible: true
},
"application/vnd.verimatrix.vcas": {
source: "iana"
},
"application/vnd.veritone.aion+json": {
source: "iana",
compressible: true
},
"application/vnd.veryant.thin": {
source: "iana"
},
"application/vnd.ves.encrypted": {
source: "iana"
},
"application/vnd.vidsoft.vidconference": {
source: "iana"
},
"application/vnd.visio": {
source: "iana",
extensions: ["vsd", "vst", "vss", "vsw"]
},
"application/vnd.visionary": {
source: "iana",
extensions: ["vis"]
},
"application/vnd.vividence.scriptfile": {
source: "iana"
},
"application/vnd.vsf": {
source: "iana",
extensions: ["vsf"]
},
"application/vnd.wap.sic": {
source: "iana"
},
"application/vnd.wap.slc": {
source: "iana"
},
"application/vnd.wap.wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["wbxml"]
},
"application/vnd.wap.wmlc": {
source: "iana",
extensions: ["wmlc"]
},
"application/vnd.wap.wmlscriptc": {
source: "iana",
extensions: ["wmlsc"]
},
"application/vnd.webturbo": {
source: "iana",
extensions: ["wtb"]
},
"application/vnd.wfa.dpp": {
source: "iana"
},
"application/vnd.wfa.p2p": {
source: "iana"
},
"application/vnd.wfa.wsc": {
source: "iana"
},
"application/vnd.windows.devicepairing": {
source: "iana"
},
"application/vnd.wmc": {
source: "iana"
},
"application/vnd.wmf.bootstrap": {
source: "iana"
},
"application/vnd.wolfram.mathematica": {
source: "iana"
},
"application/vnd.wolfram.mathematica.package": {
source: "iana"
},
"application/vnd.wolfram.player": {
source: "iana",
extensions: ["nbp"]
},
"application/vnd.wordperfect": {
source: "iana",
extensions: ["wpd"]
},
"application/vnd.wqd": {
source: "iana",
extensions: ["wqd"]
},
"application/vnd.wrq-hp3000-labelled": {
source: "iana"
},
"application/vnd.wt.stf": {
source: "iana",
extensions: ["stf"]
},
"application/vnd.wv.csp+wbxml": {
source: "iana"
},
"application/vnd.wv.csp+xml": {
source: "iana",
compressible: true
},
"application/vnd.wv.ssp+xml": {
source: "iana",
compressible: true
},
"application/vnd.xacml+json": {
source: "iana",
compressible: true
},
"application/vnd.xara": {
source: "iana",
extensions: ["xar"]
},
"application/vnd.xfdl": {
source: "iana",
extensions: ["xfdl"]
},
"application/vnd.xfdl.webform": {
source: "iana"
},
"application/vnd.xmi+xml": {
source: "iana",
compressible: true
},
"application/vnd.xmpie.cpkg": {
source: "iana"
},
"application/vnd.xmpie.dpkg": {
source: "iana"
},
"application/vnd.xmpie.plan": {
source: "iana"
},
"application/vnd.xmpie.ppkg": {
source: "iana"
},
"application/vnd.xmpie.xlim": {
source: "iana"
},
"application/vnd.yamaha.hv-dic": {
source: "iana",
extensions: ["hvd"]
},
"application/vnd.yamaha.hv-script": {
source: "iana",
extensions: ["hvs"]
},
"application/vnd.yamaha.hv-voice": {
source: "iana",
extensions: ["hvp"]
},
"application/vnd.yamaha.openscoreformat": {
source: "iana",
extensions: ["osf"]
},
"application/vnd.yamaha.openscoreformat.osfpvg+xml": {
source: "iana",
compressible: true,
extensions: ["osfpvg"]
},
"application/vnd.yamaha.remote-setup": {
source: "iana"
},
"application/vnd.yamaha.smaf-audio": {
source: "iana",
extensions: ["saf"]
},
"application/vnd.yamaha.smaf-phrase": {
source: "iana",
extensions: ["spf"]
},
"application/vnd.yamaha.through-ngn": {
source: "iana"
},
"application/vnd.yamaha.tunnel-udpencap": {
source: "iana"
},
"application/vnd.yaoweme": {
source: "iana"
},
"application/vnd.yellowriver-custom-menu": {
source: "iana",
extensions: ["cmp"]
},
"application/vnd.youtube.yt": {
source: "iana"
},
"application/vnd.zul": {
source: "iana",
extensions: ["zir", "zirz"]
},
"application/vnd.zzazz.deck+xml": {
source: "iana",
compressible: true,
extensions: ["zaz"]
},
"application/voicexml+xml": {
source: "iana",
compressible: true,
extensions: ["vxml"]
},
"application/voucher-cms+json": {
source: "iana",
compressible: true
},
"application/vq-rtcpxr": {
source: "iana"
},
"application/wasm": {
source: "iana",
compressible: true,
extensions: ["wasm"]
},
"application/watcherinfo+xml": {
source: "iana",
compressible: true,
extensions: ["wif"]
},
"application/webpush-options+json": {
source: "iana",
compressible: true
},
"application/whoispp-query": {
source: "iana"
},
"application/whoispp-response": {
source: "iana"
},
"application/widget": {
source: "iana",
extensions: ["wgt"]
},
"application/winhlp": {
source: "apache",
extensions: ["hlp"]
},
"application/wita": {
source: "iana"
},
"application/wordperfect5.1": {
source: "iana"
},
"application/wsdl+xml": {
source: "iana",
compressible: true,
extensions: ["wsdl"]
},
"application/wspolicy+xml": {
source: "iana",
compressible: true,
extensions: ["wspolicy"]
},
"application/x-7z-compressed": {
source: "apache",
compressible: false,
extensions: ["7z"]
},
"application/x-abiword": {
source: "apache",
extensions: ["abw"]
},
"application/x-ace-compressed": {
source: "apache",
extensions: ["ace"]
},
"application/x-amf": {
source: "apache"
},
"application/x-apple-diskimage": {
source: "apache",
extensions: ["dmg"]
},
"application/x-arj": {
compressible: false,
extensions: ["arj"]
},
"application/x-authorware-bin": {
source: "apache",
extensions: ["aab", "x32", "u32", "vox"]
},
"application/x-authorware-map": {
source: "apache",
extensions: ["aam"]
},
"application/x-authorware-seg": {
source: "apache",
extensions: ["aas"]
},
"application/x-bcpio": {
source: "apache",
extensions: ["bcpio"]
},
"application/x-bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/x-bittorrent": {
source: "apache",
extensions: ["torrent"]
},
"application/x-blorb": {
source: "apache",
extensions: ["blb", "blorb"]
},
"application/x-bzip": {
source: "apache",
compressible: false,
extensions: ["bz"]
},
"application/x-bzip2": {
source: "apache",
compressible: false,
extensions: ["bz2", "boz"]
},
"application/x-cbr": {
source: "apache",
extensions: ["cbr", "cba", "cbt", "cbz", "cb7"]
},
"application/x-cdlink": {
source: "apache",
extensions: ["vcd"]
},
"application/x-cfs-compressed": {
source: "apache",
extensions: ["cfs"]
},
"application/x-chat": {
source: "apache",
extensions: ["chat"]
},
"application/x-chess-pgn": {
source: "apache",
extensions: ["pgn"]
},
"application/x-chrome-extension": {
extensions: ["crx"]
},
"application/x-cocoa": {
source: "nginx",
extensions: ["cco"]
},
"application/x-compress": {
source: "apache"
},
"application/x-conference": {
source: "apache",
extensions: ["nsc"]
},
"application/x-cpio": {
source: "apache",
extensions: ["cpio"]
},
"application/x-csh": {
source: "apache",
extensions: ["csh"]
},
"application/x-deb": {
compressible: false
},
"application/x-debian-package": {
source: "apache",
extensions: ["deb", "udeb"]
},
"application/x-dgc-compressed": {
source: "apache",
extensions: ["dgc"]
},
"application/x-director": {
source: "apache",
extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"]
},
"application/x-doom": {
source: "apache",
extensions: ["wad"]
},
"application/x-dtbncx+xml": {
source: "apache",
compressible: true,
extensions: ["ncx"]
},
"application/x-dtbook+xml": {
source: "apache",
compressible: true,
extensions: ["dtb"]
},
"application/x-dtbresource+xml": {
source: "apache",
compressible: true,
extensions: ["res"]
},
"application/x-dvi": {
source: "apache",
compressible: false,
extensions: ["dvi"]
},
"application/x-envoy": {
source: "apache",
extensions: ["evy"]
},
"application/x-eva": {
source: "apache",
extensions: ["eva"]
},
"application/x-font-bdf": {
source: "apache",
extensions: ["bdf"]
},
"application/x-font-dos": {
source: "apache"
},
"application/x-font-framemaker": {
source: "apache"
},
"application/x-font-ghostscript": {
source: "apache",
extensions: ["gsf"]
},
"application/x-font-libgrx": {
source: "apache"
},
"application/x-font-linux-psf": {
source: "apache",
extensions: ["psf"]
},
"application/x-font-pcf": {
source: "apache",
extensions: ["pcf"]
},
"application/x-font-snf": {
source: "apache",
extensions: ["snf"]
},
"application/x-font-speedo": {
source: "apache"
},
"application/x-font-sunos-news": {
source: "apache"
},
"application/x-font-type1": {
source: "apache",
extensions: ["pfa", "pfb", "pfm", "afm"]
},
"application/x-font-vfont": {
source: "apache"
},
"application/x-freearc": {
source: "apache",
extensions: ["arc"]
},
"application/x-futuresplash": {
source: "apache",
extensions: ["spl"]
},
"application/x-gca-compressed": {
source: "apache",
extensions: ["gca"]
},
"application/x-glulx": {
source: "apache",
extensions: ["ulx"]
},
"application/x-gnumeric": {
source: "apache",
extensions: ["gnumeric"]
},
"application/x-gramps-xml": {
source: "apache",
extensions: ["gramps"]
},
"application/x-gtar": {
source: "apache",
extensions: ["gtar"]
},
"application/x-gzip": {
source: "apache"
},
"application/x-hdf": {
source: "apache",
extensions: ["hdf"]
},
"application/x-httpd-php": {
compressible: true,
extensions: ["php"]
},
"application/x-install-instructions": {
source: "apache",
extensions: ["install"]
},
"application/x-iso9660-image": {
source: "apache",
extensions: ["iso"]
},
"application/x-iwork-keynote-sffkey": {
extensions: ["key"]
},
"application/x-iwork-numbers-sffnumbers": {
extensions: ["numbers"]
},
"application/x-iwork-pages-sffpages": {
extensions: ["pages"]
},
"application/x-java-archive-diff": {
source: "nginx",
extensions: ["jardiff"]
},
"application/x-java-jnlp-file": {
source: "apache",
compressible: false,
extensions: ["jnlp"]
},
"application/x-javascript": {
compressible: true
},
"application/x-keepass2": {
extensions: ["kdbx"]
},
"application/x-latex": {
source: "apache",
compressible: false,
extensions: ["latex"]
},
"application/x-lua-bytecode": {
extensions: ["luac"]
},
"application/x-lzh-compressed": {
source: "apache",
extensions: ["lzh", "lha"]
},
"application/x-makeself": {
source: "nginx",
extensions: ["run"]
},
"application/x-mie": {
source: "apache",
extensions: ["mie"]
},
"application/x-mobipocket-ebook": {
source: "apache",
extensions: ["prc", "mobi"]
},
"application/x-mpegurl": {
compressible: false
},
"application/x-ms-application": {
source: "apache",
extensions: ["application"]
},
"application/x-ms-shortcut": {
source: "apache",
extensions: ["lnk"]
},
"application/x-ms-wmd": {
source: "apache",
extensions: ["wmd"]
},
"application/x-ms-wmz": {
source: "apache",
extensions: ["wmz"]
},
"application/x-ms-xbap": {
source: "apache",
extensions: ["xbap"]
},
"application/x-msaccess": {
source: "apache",
extensions: ["mdb"]
},
"application/x-msbinder": {
source: "apache",
extensions: ["obd"]
},
"application/x-mscardfile": {
source: "apache",
extensions: ["crd"]
},
"application/x-msclip": {
source: "apache",
extensions: ["clp"]
},
"application/x-msdos-program": {
extensions: ["exe"]
},
"application/x-msdownload": {
source: "apache",
extensions: ["exe", "dll", "com", "bat", "msi"]
},
"application/x-msmediaview": {
source: "apache",
extensions: ["mvb", "m13", "m14"]
},
"application/x-msmetafile": {
source: "apache",
extensions: ["wmf", "wmz", "emf", "emz"]
},
"application/x-msmoney": {
source: "apache",
extensions: ["mny"]
},
"application/x-mspublisher": {
source: "apache",
extensions: ["pub"]
},
"application/x-msschedule": {
source: "apache",
extensions: ["scd"]
},
"application/x-msterminal": {
source: "apache",
extensions: ["trm"]
},
"application/x-mswrite": {
source: "apache",
extensions: ["wri"]
},
"application/x-netcdf": {
source: "apache",
extensions: ["nc", "cdf"]
},
"application/x-ns-proxy-autoconfig": {
compressible: true,
extensions: ["pac"]
},
"application/x-nzb": {
source: "apache",
extensions: ["nzb"]
},
"application/x-perl": {
source: "nginx",
extensions: ["pl", "pm"]
},
"application/x-pilot": {
source: "nginx",
extensions: ["prc", "pdb"]
},
"application/x-pkcs12": {
source: "apache",
compressible: false,
extensions: ["p12", "pfx"]
},
"application/x-pkcs7-certificates": {
source: "apache",
extensions: ["p7b", "spc"]
},
"application/x-pkcs7-certreqresp": {
source: "apache",
extensions: ["p7r"]
},
"application/x-pki-message": {
source: "iana"
},
"application/x-rar-compressed": {
source: "apache",
compressible: false,
extensions: ["rar"]
},
"application/x-redhat-package-manager": {
source: "nginx",
extensions: ["rpm"]
},
"application/x-research-info-systems": {
source: "apache",
extensions: ["ris"]
},
"application/x-sea": {
source: "nginx",
extensions: ["sea"]
},
"application/x-sh": {
source: "apache",
compressible: true,
extensions: ["sh"]
},
"application/x-shar": {
source: "apache",
extensions: ["shar"]
},
"application/x-shockwave-flash": {
source: "apache",
compressible: false,
extensions: ["swf"]
},
"application/x-silverlight-app": {
source: "apache",
extensions: ["xap"]
},
"application/x-sql": {
source: "apache",
extensions: ["sql"]
},
"application/x-stuffit": {
source: "apache",
compressible: false,
extensions: ["sit"]
},
"application/x-stuffitx": {
source: "apache",
extensions: ["sitx"]
},
"application/x-subrip": {
source: "apache",
extensions: ["srt"]
},
"application/x-sv4cpio": {
source: "apache",
extensions: ["sv4cpio"]
},
"application/x-sv4crc": {
source: "apache",
extensions: ["sv4crc"]
},
"application/x-t3vm-image": {
source: "apache",
extensions: ["t3"]
},
"application/x-tads": {
source: "apache",
extensions: ["gam"]
},
"application/x-tar": {
source: "apache",
compressible: true,
extensions: ["tar"]
},
"application/x-tcl": {
source: "apache",
extensions: ["tcl", "tk"]
},
"application/x-tex": {
source: "apache",
extensions: ["tex"]
},
"application/x-tex-tfm": {
source: "apache",
extensions: ["tfm"]
},
"application/x-texinfo": {
source: "apache",
extensions: ["texinfo", "texi"]
},
"application/x-tgif": {
source: "apache",
extensions: ["obj"]
},
"application/x-ustar": {
source: "apache",
extensions: ["ustar"]
},
"application/x-virtualbox-hdd": {
compressible: true,
extensions: ["hdd"]
},
"application/x-virtualbox-ova": {
compressible: true,
extensions: ["ova"]
},
"application/x-virtualbox-ovf": {
compressible: true,
extensions: ["ovf"]
},
"application/x-virtualbox-vbox": {
compressible: true,
extensions: ["vbox"]
},
"application/x-virtualbox-vbox-extpack": {
compressible: false,
extensions: ["vbox-extpack"]
},
"application/x-virtualbox-vdi": {
compressible: true,
extensions: ["vdi"]
},
"application/x-virtualbox-vhd": {
compressible: true,
extensions: ["vhd"]
},
"application/x-virtualbox-vmdk": {
compressible: true,
extensions: ["vmdk"]
},
"application/x-wais-source": {
source: "apache",
extensions: ["src"]
},
"application/x-web-app-manifest+json": {
compressible: true,
extensions: ["webapp"]
},
"application/x-www-form-urlencoded": {
source: "iana",
compressible: true
},
"application/x-x509-ca-cert": {
source: "iana",
extensions: ["der", "crt", "pem"]
},
"application/x-x509-ca-ra-cert": {
source: "iana"
},
"application/x-x509-next-ca-cert": {
source: "iana"
},
"application/x-xfig": {
source: "apache",
extensions: ["fig"]
},
"application/x-xliff+xml": {
source: "apache",
compressible: true,
extensions: ["xlf"]
},
"application/x-xpinstall": {
source: "apache",
compressible: false,
extensions: ["xpi"]
},
"application/x-xz": {
source: "apache",
extensions: ["xz"]
},
"application/x-zmachine": {
source: "apache",
extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"]
},
"application/x400-bp": {
source: "iana"
},
"application/xacml+xml": {
source: "iana",
compressible: true
},
"application/xaml+xml": {
source: "apache",
compressible: true,
extensions: ["xaml"]
},
"application/xcap-att+xml": {
source: "iana",
compressible: true,
extensions: ["xav"]
},
"application/xcap-caps+xml": {
source: "iana",
compressible: true,
extensions: ["xca"]
},
"application/xcap-diff+xml": {
source: "iana",
compressible: true,
extensions: ["xdf"]
},
"application/xcap-el+xml": {
source: "iana",
compressible: true,
extensions: ["xel"]
},
"application/xcap-error+xml": {
source: "iana",
compressible: true
},
"application/xcap-ns+xml": {
source: "iana",
compressible: true,
extensions: ["xns"]
},
"application/xcon-conference-info+xml": {
source: "iana",
compressible: true
},
"application/xcon-conference-info-diff+xml": {
source: "iana",
compressible: true
},
"application/xenc+xml": {
source: "iana",
compressible: true,
extensions: ["xenc"]
},
"application/xhtml+xml": {
source: "iana",
compressible: true,
extensions: ["xhtml", "xht"]
},
"application/xhtml-voice+xml": {
source: "apache",
compressible: true
},
"application/xliff+xml": {
source: "iana",
compressible: true,
extensions: ["xlf"]
},
"application/xml": {
source: "iana",
compressible: true,
extensions: ["xml", "xsl", "xsd", "rng"]
},
"application/xml-dtd": {
source: "iana",
compressible: true,
extensions: ["dtd"]
},
"application/xml-external-parsed-entity": {
source: "iana"
},
"application/xml-patch+xml": {
source: "iana",
compressible: true
},
"application/xmpp+xml": {
source: "iana",
compressible: true
},
"application/xop+xml": {
source: "iana",
compressible: true,
extensions: ["xop"]
},
"application/xproc+xml": {
source: "apache",
compressible: true,
extensions: ["xpl"]
},
"application/xslt+xml": {
source: "iana",
compressible: true,
extensions: ["xsl", "xslt"]
},
"application/xspf+xml": {
source: "apache",
compressible: true,
extensions: ["xspf"]
},
"application/xv+xml": {
source: "iana",
compressible: true,
extensions: ["mxml", "xhvml", "xvml", "xvm"]
},
"application/yang": {
source: "iana",
extensions: ["yang"]
},
"application/yang-data+json": {
source: "iana",
compressible: true
},
"application/yang-data+xml": {
source: "iana",
compressible: true
},
"application/yang-patch+json": {
source: "iana",
compressible: true
},
"application/yang-patch+xml": {
source: "iana",
compressible: true
},
"application/yin+xml": {
source: "iana",
compressible: true,
extensions: ["yin"]
},
"application/zip": {
source: "iana",
compressible: false,
extensions: ["zip"]
},
"application/zlib": {
source: "iana"
},
"application/zstd": {
source: "iana"
},
"audio/1d-interleaved-parityfec": {
source: "iana"
},
"audio/32kadpcm": {
source: "iana"
},
"audio/3gpp": {
source: "iana",
compressible: false,
extensions: ["3gpp"]
},
"audio/3gpp2": {
source: "iana"
},
"audio/aac": {
source: "iana"
},
"audio/ac3": {
source: "iana"
},
"audio/adpcm": {
source: "apache",
extensions: ["adp"]
},
"audio/amr": {
source: "iana",
extensions: ["amr"]
},
"audio/amr-wb": {
source: "iana"
},
"audio/amr-wb+": {
source: "iana"
},
"audio/aptx": {
source: "iana"
},
"audio/asc": {
source: "iana"
},
"audio/atrac-advanced-lossless": {
source: "iana"
},
"audio/atrac-x": {
source: "iana"
},
"audio/atrac3": {
source: "iana"
},
"audio/basic": {
source: "iana",
compressible: false,
extensions: ["au", "snd"]
},
"audio/bv16": {
source: "iana"
},
"audio/bv32": {
source: "iana"
},
"audio/clearmode": {
source: "iana"
},
"audio/cn": {
source: "iana"
},
"audio/dat12": {
source: "iana"
},
"audio/dls": {
source: "iana"
},
"audio/dsr-es201108": {
source: "iana"
},
"audio/dsr-es202050": {
source: "iana"
},
"audio/dsr-es202211": {
source: "iana"
},
"audio/dsr-es202212": {
source: "iana"
},
"audio/dv": {
source: "iana"
},
"audio/dvi4": {
source: "iana"
},
"audio/eac3": {
source: "iana"
},
"audio/encaprtp": {
source: "iana"
},
"audio/evrc": {
source: "iana"
},
"audio/evrc-qcp": {
source: "iana"
},
"audio/evrc0": {
source: "iana"
},
"audio/evrc1": {
source: "iana"
},
"audio/evrcb": {
source: "iana"
},
"audio/evrcb0": {
source: "iana"
},
"audio/evrcb1": {
source: "iana"
},
"audio/evrcnw": {
source: "iana"
},
"audio/evrcnw0": {
source: "iana"
},
"audio/evrcnw1": {
source: "iana"
},
"audio/evrcwb": {
source: "iana"
},
"audio/evrcwb0": {
source: "iana"
},
"audio/evrcwb1": {
source: "iana"
},
"audio/evs": {
source: "iana"
},
"audio/flexfec": {
source: "iana"
},
"audio/fwdred": {
source: "iana"
},
"audio/g711-0": {
source: "iana"
},
"audio/g719": {
source: "iana"
},
"audio/g722": {
source: "iana"
},
"audio/g7221": {
source: "iana"
},
"audio/g723": {
source: "iana"
},
"audio/g726-16": {
source: "iana"
},
"audio/g726-24": {
source: "iana"
},
"audio/g726-32": {
source: "iana"
},
"audio/g726-40": {
source: "iana"
},
"audio/g728": {
source: "iana"
},
"audio/g729": {
source: "iana"
},
"audio/g7291": {
source: "iana"
},
"audio/g729d": {
source: "iana"
},
"audio/g729e": {
source: "iana"
},
"audio/gsm": {
source: "iana"
},
"audio/gsm-efr": {
source: "iana"
},
"audio/gsm-hr-08": {
source: "iana"
},
"audio/ilbc": {
source: "iana"
},
"audio/ip-mr_v2.5": {
source: "iana"
},
"audio/isac": {
source: "apache"
},
"audio/l16": {
source: "iana"
},
"audio/l20": {
source: "iana"
},
"audio/l24": {
source: "iana",
compressible: false
},
"audio/l8": {
source: "iana"
},
"audio/lpc": {
source: "iana"
},
"audio/melp": {
source: "iana"
},
"audio/melp1200": {
source: "iana"
},
"audio/melp2400": {
source: "iana"
},
"audio/melp600": {
source: "iana"
},
"audio/mhas": {
source: "iana"
},
"audio/midi": {
source: "apache",
extensions: ["mid", "midi", "kar", "rmi"]
},
"audio/mobile-xmf": {
source: "iana",
extensions: ["mxmf"]
},
"audio/mp3": {
compressible: false,
extensions: ["mp3"]
},
"audio/mp4": {
source: "iana",
compressible: false,
extensions: ["m4a", "mp4a"]
},
"audio/mp4a-latm": {
source: "iana"
},
"audio/mpa": {
source: "iana"
},
"audio/mpa-robust": {
source: "iana"
},
"audio/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"]
},
"audio/mpeg4-generic": {
source: "iana"
},
"audio/musepack": {
source: "apache"
},
"audio/ogg": {
source: "iana",
compressible: false,
extensions: ["oga", "ogg", "spx", "opus"]
},
"audio/opus": {
source: "iana"
},
"audio/parityfec": {
source: "iana"
},
"audio/pcma": {
source: "iana"
},
"audio/pcma-wb": {
source: "iana"
},
"audio/pcmu": {
source: "iana"
},
"audio/pcmu-wb": {
source: "iana"
},
"audio/prs.sid": {
source: "iana"
},
"audio/qcelp": {
source: "iana"
},
"audio/raptorfec": {
source: "iana"
},
"audio/red": {
source: "iana"
},
"audio/rtp-enc-aescm128": {
source: "iana"
},
"audio/rtp-midi": {
source: "iana"
},
"audio/rtploopback": {
source: "iana"
},
"audio/rtx": {
source: "iana"
},
"audio/s3m": {
source: "apache",
extensions: ["s3m"]
},
"audio/scip": {
source: "iana"
},
"audio/silk": {
source: "apache",
extensions: ["sil"]
},
"audio/smv": {
source: "iana"
},
"audio/smv-qcp": {
source: "iana"
},
"audio/smv0": {
source: "iana"
},
"audio/sofa": {
source: "iana"
},
"audio/sp-midi": {
source: "iana"
},
"audio/speex": {
source: "iana"
},
"audio/t140c": {
source: "iana"
},
"audio/t38": {
source: "iana"
},
"audio/telephone-event": {
source: "iana"
},
"audio/tetra_acelp": {
source: "iana"
},
"audio/tetra_acelp_bb": {
source: "iana"
},
"audio/tone": {
source: "iana"
},
"audio/tsvcis": {
source: "iana"
},
"audio/uemclip": {
source: "iana"
},
"audio/ulpfec": {
source: "iana"
},
"audio/usac": {
source: "iana"
},
"audio/vdvi": {
source: "iana"
},
"audio/vmr-wb": {
source: "iana"
},
"audio/vnd.3gpp.iufp": {
source: "iana"
},
"audio/vnd.4sb": {
source: "iana"
},
"audio/vnd.audiokoz": {
source: "iana"
},
"audio/vnd.celp": {
source: "iana"
},
"audio/vnd.cisco.nse": {
source: "iana"
},
"audio/vnd.cmles.radio-events": {
source: "iana"
},
"audio/vnd.cns.anp1": {
source: "iana"
},
"audio/vnd.cns.inf1": {
source: "iana"
},
"audio/vnd.dece.audio": {
source: "iana",
extensions: ["uva", "uvva"]
},
"audio/vnd.digital-winds": {
source: "iana",
extensions: ["eol"]
},
"audio/vnd.dlna.adts": {
source: "iana"
},
"audio/vnd.dolby.heaac.1": {
source: "iana"
},
"audio/vnd.dolby.heaac.2": {
source: "iana"
},
"audio/vnd.dolby.mlp": {
source: "iana"
},
"audio/vnd.dolby.mps": {
source: "iana"
},
"audio/vnd.dolby.pl2": {
source: "iana"
},
"audio/vnd.dolby.pl2x": {
source: "iana"
},
"audio/vnd.dolby.pl2z": {
source: "iana"
},
"audio/vnd.dolby.pulse.1": {
source: "iana"
},
"audio/vnd.dra": {
source: "iana",
extensions: ["dra"]
},
"audio/vnd.dts": {
source: "iana",
extensions: ["dts"]
},
"audio/vnd.dts.hd": {
source: "iana",
extensions: ["dtshd"]
},
"audio/vnd.dts.uhd": {
source: "iana"
},
"audio/vnd.dvb.file": {
source: "iana"
},
"audio/vnd.everad.plj": {
source: "iana"
},
"audio/vnd.hns.audio": {
source: "iana"
},
"audio/vnd.lucent.voice": {
source: "iana",
extensions: ["lvp"]
},
"audio/vnd.ms-playready.media.pya": {
source: "iana",
extensions: ["pya"]
},
"audio/vnd.nokia.mobile-xmf": {
source: "iana"
},
"audio/vnd.nortel.vbk": {
source: "iana"
},
"audio/vnd.nuera.ecelp4800": {
source: "iana",
extensions: ["ecelp4800"]
},
"audio/vnd.nuera.ecelp7470": {
source: "iana",
extensions: ["ecelp7470"]
},
"audio/vnd.nuera.ecelp9600": {
source: "iana",
extensions: ["ecelp9600"]
},
"audio/vnd.octel.sbc": {
source: "iana"
},
"audio/vnd.presonus.multitrack": {
source: "iana"
},
"audio/vnd.qcelp": {
source: "iana"
},
"audio/vnd.rhetorex.32kadpcm": {
source: "iana"
},
"audio/vnd.rip": {
source: "iana",
extensions: ["rip"]
},
"audio/vnd.rn-realaudio": {
compressible: false
},
"audio/vnd.sealedmedia.softseal.mpeg": {
source: "iana"
},
"audio/vnd.vmx.cvsd": {
source: "iana"
},
"audio/vnd.wave": {
compressible: false
},
"audio/vorbis": {
source: "iana",
compressible: false
},
"audio/vorbis-config": {
source: "iana"
},
"audio/wav": {
compressible: false,
extensions: ["wav"]
},
"audio/wave": {
compressible: false,
extensions: ["wav"]
},
"audio/webm": {
source: "apache",
compressible: false,
extensions: ["weba"]
},
"audio/x-aac": {
source: "apache",
compressible: false,
extensions: ["aac"]
},
"audio/x-aiff": {
source: "apache",
extensions: ["aif", "aiff", "aifc"]
},
"audio/x-caf": {
source: "apache",
compressible: false,
extensions: ["caf"]
},
"audio/x-flac": {
source: "apache",
extensions: ["flac"]
},
"audio/x-m4a": {
source: "nginx",
extensions: ["m4a"]
},
"audio/x-matroska": {
source: "apache",
extensions: ["mka"]
},
"audio/x-mpegurl": {
source: "apache",
extensions: ["m3u"]
},
"audio/x-ms-wax": {
source: "apache",
extensions: ["wax"]
},
"audio/x-ms-wma": {
source: "apache",
extensions: ["wma"]
},
"audio/x-pn-realaudio": {
source: "apache",
extensions: ["ram", "ra"]
},
"audio/x-pn-realaudio-plugin": {
source: "apache",
extensions: ["rmp"]
},
"audio/x-realaudio": {
source: "nginx",
extensions: ["ra"]
},
"audio/x-tta": {
source: "apache"
},
"audio/x-wav": {
source: "apache",
extensions: ["wav"]
},
"audio/xm": {
source: "apache",
extensions: ["xm"]
},
"chemical/x-cdx": {
source: "apache",
extensions: ["cdx"]
},
"chemical/x-cif": {
source: "apache",
extensions: ["cif"]
},
"chemical/x-cmdf": {
source: "apache",
extensions: ["cmdf"]
},
"chemical/x-cml": {
source: "apache",
extensions: ["cml"]
},
"chemical/x-csml": {
source: "apache",
extensions: ["csml"]
},
"chemical/x-pdb": {
source: "apache"
},
"chemical/x-xyz": {
source: "apache",
extensions: ["xyz"]
},
"font/collection": {
source: "iana",
extensions: ["ttc"]
},
"font/otf": {
source: "iana",
compressible: true,
extensions: ["otf"]
},
"font/sfnt": {
source: "iana"
},
"font/ttf": {
source: "iana",
compressible: true,
extensions: ["ttf"]
},
"font/woff": {
source: "iana",
extensions: ["woff"]
},
"font/woff2": {
source: "iana",
extensions: ["woff2"]
},
"image/aces": {
source: "iana",
extensions: ["exr"]
},
"image/apng": {
compressible: false,
extensions: ["apng"]
},
"image/avci": {
source: "iana",
extensions: ["avci"]
},
"image/avcs": {
source: "iana",
extensions: ["avcs"]
},
"image/avif": {
source: "iana",
compressible: false,
extensions: ["avif"]
},
"image/bmp": {
source: "iana",
compressible: true,
extensions: ["bmp"]
},
"image/cgm": {
source: "iana",
extensions: ["cgm"]
},
"image/dicom-rle": {
source: "iana",
extensions: ["drle"]
},
"image/emf": {
source: "iana",
extensions: ["emf"]
},
"image/fits": {
source: "iana",
extensions: ["fits"]
},
"image/g3fax": {
source: "iana",
extensions: ["g3"]
},
"image/gif": {
source: "iana",
compressible: false,
extensions: ["gif"]
},
"image/heic": {
source: "iana",
extensions: ["heic"]
},
"image/heic-sequence": {
source: "iana",
extensions: ["heics"]
},
"image/heif": {
source: "iana",
extensions: ["heif"]
},
"image/heif-sequence": {
source: "iana",
extensions: ["heifs"]
},
"image/hej2k": {
source: "iana",
extensions: ["hej2"]
},
"image/hsj2": {
source: "iana",
extensions: ["hsj2"]
},
"image/ief": {
source: "iana",
extensions: ["ief"]
},
"image/jls": {
source: "iana",
extensions: ["jls"]
},
"image/jp2": {
source: "iana",
compressible: false,
extensions: ["jp2", "jpg2"]
},
"image/jpeg": {
source: "iana",
compressible: false,
extensions: ["jpeg", "jpg", "jpe"]
},
"image/jph": {
source: "iana",
extensions: ["jph"]
},
"image/jphc": {
source: "iana",
extensions: ["jhc"]
},
"image/jpm": {
source: "iana",
compressible: false,
extensions: ["jpm"]
},
"image/jpx": {
source: "iana",
compressible: false,
extensions: ["jpx", "jpf"]
},
"image/jxr": {
source: "iana",
extensions: ["jxr"]
},
"image/jxra": {
source: "iana",
extensions: ["jxra"]
},
"image/jxrs": {
source: "iana",
extensions: ["jxrs"]
},
"image/jxs": {
source: "iana",
extensions: ["jxs"]
},
"image/jxsc": {
source: "iana",
extensions: ["jxsc"]
},
"image/jxsi": {
source: "iana",
extensions: ["jxsi"]
},
"image/jxss": {
source: "iana",
extensions: ["jxss"]
},
"image/ktx": {
source: "iana",
extensions: ["ktx"]
},
"image/ktx2": {
source: "iana",
extensions: ["ktx2"]
},
"image/naplps": {
source: "iana"
},
"image/pjpeg": {
compressible: false
},
"image/png": {
source: "iana",
compressible: false,
extensions: ["png"]
},
"image/prs.btif": {
source: "iana",
extensions: ["btif"]
},
"image/prs.pti": {
source: "iana",
extensions: ["pti"]
},
"image/pwg-raster": {
source: "iana"
},
"image/sgi": {
source: "apache",
extensions: ["sgi"]
},
"image/svg+xml": {
source: "iana",
compressible: true,
extensions: ["svg", "svgz"]
},
"image/t38": {
source: "iana",
extensions: ["t38"]
},
"image/tiff": {
source: "iana",
compressible: false,
extensions: ["tif", "tiff"]
},
"image/tiff-fx": {
source: "iana",
extensions: ["tfx"]
},
"image/vnd.adobe.photoshop": {
source: "iana",
compressible: true,
extensions: ["psd"]
},
"image/vnd.airzip.accelerator.azv": {
source: "iana",
extensions: ["azv"]
},
"image/vnd.cns.inf2": {
source: "iana"
},
"image/vnd.dece.graphic": {
source: "iana",
extensions: ["uvi", "uvvi", "uvg", "uvvg"]
},
"image/vnd.djvu": {
source: "iana",
extensions: ["djvu", "djv"]
},
"image/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"image/vnd.dwg": {
source: "iana",
extensions: ["dwg"]
},
"image/vnd.dxf": {
source: "iana",
extensions: ["dxf"]
},
"image/vnd.fastbidsheet": {
source: "iana",
extensions: ["fbs"]
},
"image/vnd.fpx": {
source: "iana",
extensions: ["fpx"]
},
"image/vnd.fst": {
source: "iana",
extensions: ["fst"]
},
"image/vnd.fujixerox.edmics-mmr": {
source: "iana",
extensions: ["mmr"]
},
"image/vnd.fujixerox.edmics-rlc": {
source: "iana",
extensions: ["rlc"]
},
"image/vnd.globalgraphics.pgb": {
source: "iana"
},
"image/vnd.microsoft.icon": {
source: "iana",
compressible: true,
extensions: ["ico"]
},
"image/vnd.mix": {
source: "iana"
},
"image/vnd.mozilla.apng": {
source: "iana"
},
"image/vnd.ms-dds": {
compressible: true,
extensions: ["dds"]
},
"image/vnd.ms-modi": {
source: "iana",
extensions: ["mdi"]
},
"image/vnd.ms-photo": {
source: "apache",
extensions: ["wdp"]
},
"image/vnd.net-fpx": {
source: "iana",
extensions: ["npx"]
},
"image/vnd.pco.b16": {
source: "iana",
extensions: ["b16"]
},
"image/vnd.radiance": {
source: "iana"
},
"image/vnd.sealed.png": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.gif": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.jpg": {
source: "iana"
},
"image/vnd.svf": {
source: "iana"
},
"image/vnd.tencent.tap": {
source: "iana",
extensions: ["tap"]
},
"image/vnd.valve.source.texture": {
source: "iana",
extensions: ["vtf"]
},
"image/vnd.wap.wbmp": {
source: "iana",
extensions: ["wbmp"]
},
"image/vnd.xiff": {
source: "iana",
extensions: ["xif"]
},
"image/vnd.zbrush.pcx": {
source: "iana",
extensions: ["pcx"]
},
"image/webp": {
source: "apache",
extensions: ["webp"]
},
"image/wmf": {
source: "iana",
extensions: ["wmf"]
},
"image/x-3ds": {
source: "apache",
extensions: ["3ds"]
},
"image/x-cmu-raster": {
source: "apache",
extensions: ["ras"]
},
"image/x-cmx": {
source: "apache",
extensions: ["cmx"]
},
"image/x-freehand": {
source: "apache",
extensions: ["fh", "fhc", "fh4", "fh5", "fh7"]
},
"image/x-icon": {
source: "apache",
compressible: true,
extensions: ["ico"]
},
"image/x-jng": {
source: "nginx",
extensions: ["jng"]
},
"image/x-mrsid-image": {
source: "apache",
extensions: ["sid"]
},
"image/x-ms-bmp": {
source: "nginx",
compressible: true,
extensions: ["bmp"]
},
"image/x-pcx": {
source: "apache",
extensions: ["pcx"]
},
"image/x-pict": {
source: "apache",
extensions: ["pic", "pct"]
},
"image/x-portable-anymap": {
source: "apache",
extensions: ["pnm"]
},
"image/x-portable-bitmap": {
source: "apache",
extensions: ["pbm"]
},
"image/x-portable-graymap": {
source: "apache",
extensions: ["pgm"]
},
"image/x-portable-pixmap": {
source: "apache",
extensions: ["ppm"]
},
"image/x-rgb": {
source: "apache",
extensions: ["rgb"]
},
"image/x-tga": {
source: "apache",
extensions: ["tga"]
},
"image/x-xbitmap": {
source: "apache",
extensions: ["xbm"]
},
"image/x-xcf": {
compressible: false
},
"image/x-xpixmap": {
source: "apache",
extensions: ["xpm"]
},
"image/x-xwindowdump": {
source: "apache",
extensions: ["xwd"]
},
"message/cpim": {
source: "iana"
},
"message/delivery-status": {
source: "iana"
},
"message/disposition-notification": {
source: "iana",
extensions: [
"disposition-notification"
]
},
"message/external-body": {
source: "iana"
},
"message/feedback-report": {
source: "iana"
},
"message/global": {
source: "iana",
extensions: ["u8msg"]
},
"message/global-delivery-status": {
source: "iana",
extensions: ["u8dsn"]
},
"message/global-disposition-notification": {
source: "iana",
extensions: ["u8mdn"]
},
"message/global-headers": {
source: "iana",
extensions: ["u8hdr"]
},
"message/http": {
source: "iana",
compressible: false
},
"message/imdn+xml": {
source: "iana",
compressible: true
},
"message/news": {
source: "iana"
},
"message/partial": {
source: "iana",
compressible: false
},
"message/rfc822": {
source: "iana",
compressible: true,
extensions: ["eml", "mime"]
},
"message/s-http": {
source: "iana"
},
"message/sip": {
source: "iana"
},
"message/sipfrag": {
source: "iana"
},
"message/tracking-status": {
source: "iana"
},
"message/vnd.si.simp": {
source: "iana"
},
"message/vnd.wfa.wsc": {
source: "iana",
extensions: ["wsc"]
},
"model/3mf": {
source: "iana",
extensions: ["3mf"]
},
"model/e57": {
source: "iana"
},
"model/gltf+json": {
source: "iana",
compressible: true,
extensions: ["gltf"]
},
"model/gltf-binary": {
source: "iana",
compressible: true,
extensions: ["glb"]
},
"model/iges": {
source: "iana",
compressible: false,
extensions: ["igs", "iges"]
},
"model/mesh": {
source: "iana",
compressible: false,
extensions: ["msh", "mesh", "silo"]
},
"model/mtl": {
source: "iana",
extensions: ["mtl"]
},
"model/obj": {
source: "iana",
extensions: ["obj"]
},
"model/step": {
source: "iana"
},
"model/step+xml": {
source: "iana",
compressible: true,
extensions: ["stpx"]
},
"model/step+zip": {
source: "iana",
compressible: false,
extensions: ["stpz"]
},
"model/step-xml+zip": {
source: "iana",
compressible: false,
extensions: ["stpxz"]
},
"model/stl": {
source: "iana",
extensions: ["stl"]
},
"model/vnd.collada+xml": {
source: "iana",
compressible: true,
extensions: ["dae"]
},
"model/vnd.dwf": {
source: "iana",
extensions: ["dwf"]
},
"model/vnd.flatland.3dml": {
source: "iana"
},
"model/vnd.gdl": {
source: "iana",
extensions: ["gdl"]
},
"model/vnd.gs-gdl": {
source: "apache"
},
"model/vnd.gs.gdl": {
source: "iana"
},
"model/vnd.gtw": {
source: "iana",
extensions: ["gtw"]
},
"model/vnd.moml+xml": {
source: "iana",
compressible: true
},
"model/vnd.mts": {
source: "iana",
extensions: ["mts"]
},
"model/vnd.opengex": {
source: "iana",
extensions: ["ogex"]
},
"model/vnd.parasolid.transmit.binary": {
source: "iana",
extensions: ["x_b"]
},
"model/vnd.parasolid.transmit.text": {
source: "iana",
extensions: ["x_t"]
},
"model/vnd.pytha.pyox": {
source: "iana"
},
"model/vnd.rosette.annotated-data-model": {
source: "iana"
},
"model/vnd.sap.vds": {
source: "iana",
extensions: ["vds"]
},
"model/vnd.usdz+zip": {
source: "iana",
compressible: false,
extensions: ["usdz"]
},
"model/vnd.valve.source.compiled-map": {
source: "iana",
extensions: ["bsp"]
},
"model/vnd.vtu": {
source: "iana",
extensions: ["vtu"]
},
"model/vrml": {
source: "iana",
compressible: false,
extensions: ["wrl", "vrml"]
},
"model/x3d+binary": {
source: "apache",
compressible: false,
extensions: ["x3db", "x3dbz"]
},
"model/x3d+fastinfoset": {
source: "iana",
extensions: ["x3db"]
},
"model/x3d+vrml": {
source: "apache",
compressible: false,
extensions: ["x3dv", "x3dvz"]
},
"model/x3d+xml": {
source: "iana",
compressible: true,
extensions: ["x3d", "x3dz"]
},
"model/x3d-vrml": {
source: "iana",
extensions: ["x3dv"]
},
"multipart/alternative": {
source: "iana",
compressible: false
},
"multipart/appledouble": {
source: "iana"
},
"multipart/byteranges": {
source: "iana"
},
"multipart/digest": {
source: "iana"
},
"multipart/encrypted": {
source: "iana",
compressible: false
},
"multipart/form-data": {
source: "iana",
compressible: false
},
"multipart/header-set": {
source: "iana"
},
"multipart/mixed": {
source: "iana"
},
"multipart/multilingual": {
source: "iana"
},
"multipart/parallel": {
source: "iana"
},
"multipart/related": {
source: "iana",
compressible: false
},
"multipart/report": {
source: "iana"
},
"multipart/signed": {
source: "iana",
compressible: false
},
"multipart/vnd.bint.med-plus": {
source: "iana"
},
"multipart/voice-message": {
source: "iana"
},
"multipart/x-mixed-replace": {
source: "iana"
},
"text/1d-interleaved-parityfec": {
source: "iana"
},
"text/cache-manifest": {
source: "iana",
compressible: true,
extensions: ["appcache", "manifest"]
},
"text/calendar": {
source: "iana",
extensions: ["ics", "ifb"]
},
"text/calender": {
compressible: true
},
"text/cmd": {
compressible: true
},
"text/coffeescript": {
extensions: ["coffee", "litcoffee"]
},
"text/cql": {
source: "iana"
},
"text/cql-expression": {
source: "iana"
},
"text/cql-identifier": {
source: "iana"
},
"text/css": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["css"]
},
"text/csv": {
source: "iana",
compressible: true,
extensions: ["csv"]
},
"text/csv-schema": {
source: "iana"
},
"text/directory": {
source: "iana"
},
"text/dns": {
source: "iana"
},
"text/ecmascript": {
source: "iana"
},
"text/encaprtp": {
source: "iana"
},
"text/enriched": {
source: "iana"
},
"text/fhirpath": {
source: "iana"
},
"text/flexfec": {
source: "iana"
},
"text/fwdred": {
source: "iana"
},
"text/gff3": {
source: "iana"
},
"text/grammar-ref-list": {
source: "iana"
},
"text/html": {
source: "iana",
compressible: true,
extensions: ["html", "htm", "shtml"]
},
"text/jade": {
extensions: ["jade"]
},
"text/javascript": {
source: "iana",
compressible: true
},
"text/jcr-cnd": {
source: "iana"
},
"text/jsx": {
compressible: true,
extensions: ["jsx"]
},
"text/less": {
compressible: true,
extensions: ["less"]
},
"text/markdown": {
source: "iana",
compressible: true,
extensions: ["markdown", "md"]
},
"text/mathml": {
source: "nginx",
extensions: ["mml"]
},
"text/mdx": {
compressible: true,
extensions: ["mdx"]
},
"text/mizar": {
source: "iana"
},
"text/n3": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["n3"]
},
"text/parameters": {
source: "iana",
charset: "UTF-8"
},
"text/parityfec": {
source: "iana"
},
"text/plain": {
source: "iana",
compressible: true,
extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"]
},
"text/provenance-notation": {
source: "iana",
charset: "UTF-8"
},
"text/prs.fallenstein.rst": {
source: "iana"
},
"text/prs.lines.tag": {
source: "iana",
extensions: ["dsc"]
},
"text/prs.prop.logic": {
source: "iana"
},
"text/raptorfec": {
source: "iana"
},
"text/red": {
source: "iana"
},
"text/rfc822-headers": {
source: "iana"
},
"text/richtext": {
source: "iana",
compressible: true,
extensions: ["rtx"]
},
"text/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"text/rtp-enc-aescm128": {
source: "iana"
},
"text/rtploopback": {
source: "iana"
},
"text/rtx": {
source: "iana"
},
"text/sgml": {
source: "iana",
extensions: ["sgml", "sgm"]
},
"text/shaclc": {
source: "iana"
},
"text/shex": {
source: "iana",
extensions: ["shex"]
},
"text/slim": {
extensions: ["slim", "slm"]
},
"text/spdx": {
source: "iana",
extensions: ["spdx"]
},
"text/strings": {
source: "iana"
},
"text/stylus": {
extensions: ["stylus", "styl"]
},
"text/t140": {
source: "iana"
},
"text/tab-separated-values": {
source: "iana",
compressible: true,
extensions: ["tsv"]
},
"text/troff": {
source: "iana",
extensions: ["t", "tr", "roff", "man", "me", "ms"]
},
"text/turtle": {
source: "iana",
charset: "UTF-8",
extensions: ["ttl"]
},
"text/ulpfec": {
source: "iana"
},
"text/uri-list": {
source: "iana",
compressible: true,
extensions: ["uri", "uris", "urls"]
},
"text/vcard": {
source: "iana",
compressible: true,
extensions: ["vcard"]
},
"text/vnd.a": {
source: "iana"
},
"text/vnd.abc": {
source: "iana"
},
"text/vnd.ascii-art": {
source: "iana"
},
"text/vnd.curl": {
source: "iana",
extensions: ["curl"]
},
"text/vnd.curl.dcurl": {
source: "apache",
extensions: ["dcurl"]
},
"text/vnd.curl.mcurl": {
source: "apache",
extensions: ["mcurl"]
},
"text/vnd.curl.scurl": {
source: "apache",
extensions: ["scurl"]
},
"text/vnd.debian.copyright": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.dmclientscript": {
source: "iana"
},
"text/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"text/vnd.esmertec.theme-descriptor": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.familysearch.gedcom": {
source: "iana",
extensions: ["ged"]
},
"text/vnd.ficlab.flt": {
source: "iana"
},
"text/vnd.fly": {
source: "iana",
extensions: ["fly"]
},
"text/vnd.fmi.flexstor": {
source: "iana",
extensions: ["flx"]
},
"text/vnd.gml": {
source: "iana"
},
"text/vnd.graphviz": {
source: "iana",
extensions: ["gv"]
},
"text/vnd.hans": {
source: "iana"
},
"text/vnd.hgl": {
source: "iana"
},
"text/vnd.in3d.3dml": {
source: "iana",
extensions: ["3dml"]
},
"text/vnd.in3d.spot": {
source: "iana",
extensions: ["spot"]
},
"text/vnd.iptc.newsml": {
source: "iana"
},
"text/vnd.iptc.nitf": {
source: "iana"
},
"text/vnd.latex-z": {
source: "iana"
},
"text/vnd.motorola.reflex": {
source: "iana"
},
"text/vnd.ms-mediapackage": {
source: "iana"
},
"text/vnd.net2phone.commcenter.command": {
source: "iana"
},
"text/vnd.radisys.msml-basic-layout": {
source: "iana"
},
"text/vnd.senx.warpscript": {
source: "iana"
},
"text/vnd.si.uricatalogue": {
source: "iana"
},
"text/vnd.sosi": {
source: "iana"
},
"text/vnd.sun.j2me.app-descriptor": {
source: "iana",
charset: "UTF-8",
extensions: ["jad"]
},
"text/vnd.trolltech.linguist": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.wap.si": {
source: "iana"
},
"text/vnd.wap.sl": {
source: "iana"
},
"text/vnd.wap.wml": {
source: "iana",
extensions: ["wml"]
},
"text/vnd.wap.wmlscript": {
source: "iana",
extensions: ["wmls"]
},
"text/vtt": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["vtt"]
},
"text/x-asm": {
source: "apache",
extensions: ["s", "asm"]
},
"text/x-c": {
source: "apache",
extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"]
},
"text/x-component": {
source: "nginx",
extensions: ["htc"]
},
"text/x-fortran": {
source: "apache",
extensions: ["f", "for", "f77", "f90"]
},
"text/x-gwt-rpc": {
compressible: true
},
"text/x-handlebars-template": {
extensions: ["hbs"]
},
"text/x-java-source": {
source: "apache",
extensions: ["java"]
},
"text/x-jquery-tmpl": {
compressible: true
},
"text/x-lua": {
extensions: ["lua"]
},
"text/x-markdown": {
compressible: true,
extensions: ["mkd"]
},
"text/x-nfo": {
source: "apache",
extensions: ["nfo"]
},
"text/x-opml": {
source: "apache",
extensions: ["opml"]
},
"text/x-org": {
compressible: true,
extensions: ["org"]
},
"text/x-pascal": {
source: "apache",
extensions: ["p", "pas"]
},
"text/x-processing": {
compressible: true,
extensions: ["pde"]
},
"text/x-sass": {
extensions: ["sass"]
},
"text/x-scss": {
extensions: ["scss"]
},
"text/x-setext": {
source: "apache",
extensions: ["etx"]
},
"text/x-sfv": {
source: "apache",
extensions: ["sfv"]
},
"text/x-suse-ymp": {
compressible: true,
extensions: ["ymp"]
},
"text/x-uuencode": {
source: "apache",
extensions: ["uu"]
},
"text/x-vcalendar": {
source: "apache",
extensions: ["vcs"]
},
"text/x-vcard": {
source: "apache",
extensions: ["vcf"]
},
"text/xml": {
source: "iana",
compressible: true,
extensions: ["xml"]
},
"text/xml-external-parsed-entity": {
source: "iana"
},
"text/yaml": {
compressible: true,
extensions: ["yaml", "yml"]
},
"video/1d-interleaved-parityfec": {
source: "iana"
},
"video/3gpp": {
source: "iana",
extensions: ["3gp", "3gpp"]
},
"video/3gpp-tt": {
source: "iana"
},
"video/3gpp2": {
source: "iana",
extensions: ["3g2"]
},
"video/av1": {
source: "iana"
},
"video/bmpeg": {
source: "iana"
},
"video/bt656": {
source: "iana"
},
"video/celb": {
source: "iana"
},
"video/dv": {
source: "iana"
},
"video/encaprtp": {
source: "iana"
},
"video/ffv1": {
source: "iana"
},
"video/flexfec": {
source: "iana"
},
"video/h261": {
source: "iana",
extensions: ["h261"]
},
"video/h263": {
source: "iana",
extensions: ["h263"]
},
"video/h263-1998": {
source: "iana"
},
"video/h263-2000": {
source: "iana"
},
"video/h264": {
source: "iana",
extensions: ["h264"]
},
"video/h264-rcdo": {
source: "iana"
},
"video/h264-svc": {
source: "iana"
},
"video/h265": {
source: "iana"
},
"video/iso.segment": {
source: "iana",
extensions: ["m4s"]
},
"video/jpeg": {
source: "iana",
extensions: ["jpgv"]
},
"video/jpeg2000": {
source: "iana"
},
"video/jpm": {
source: "apache",
extensions: ["jpm", "jpgm"]
},
"video/jxsv": {
source: "iana"
},
"video/mj2": {
source: "iana",
extensions: ["mj2", "mjp2"]
},
"video/mp1s": {
source: "iana"
},
"video/mp2p": {
source: "iana"
},
"video/mp2t": {
source: "iana",
extensions: ["ts"]
},
"video/mp4": {
source: "iana",
compressible: false,
extensions: ["mp4", "mp4v", "mpg4"]
},
"video/mp4v-es": {
source: "iana"
},
"video/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"]
},
"video/mpeg4-generic": {
source: "iana"
},
"video/mpv": {
source: "iana"
},
"video/nv": {
source: "iana"
},
"video/ogg": {
source: "iana",
compressible: false,
extensions: ["ogv"]
},
"video/parityfec": {
source: "iana"
},
"video/pointer": {
source: "iana"
},
"video/quicktime": {
source: "iana",
compressible: false,
extensions: ["qt", "mov"]
},
"video/raptorfec": {
source: "iana"
},
"video/raw": {
source: "iana"
},
"video/rtp-enc-aescm128": {
source: "iana"
},
"video/rtploopback": {
source: "iana"
},
"video/rtx": {
source: "iana"
},
"video/scip": {
source: "iana"
},
"video/smpte291": {
source: "iana"
},
"video/smpte292m": {
source: "iana"
},
"video/ulpfec": {
source: "iana"
},
"video/vc1": {
source: "iana"
},
"video/vc2": {
source: "iana"
},
"video/vnd.cctv": {
source: "iana"
},
"video/vnd.dece.hd": {
source: "iana",
extensions: ["uvh", "uvvh"]
},
"video/vnd.dece.mobile": {
source: "iana",
extensions: ["uvm", "uvvm"]
},
"video/vnd.dece.mp4": {
source: "iana"
},
"video/vnd.dece.pd": {
source: "iana",
extensions: ["uvp", "uvvp"]
},
"video/vnd.dece.sd": {
source: "iana",
extensions: ["uvs", "uvvs"]
},
"video/vnd.dece.video": {
source: "iana",
extensions: ["uvv", "uvvv"]
},
"video/vnd.directv.mpeg": {
source: "iana"
},
"video/vnd.directv.mpeg-tts": {
source: "iana"
},
"video/vnd.dlna.mpeg-tts": {
source: "iana"
},
"video/vnd.dvb.file": {
source: "iana",
extensions: ["dvb"]
},
"video/vnd.fvt": {
source: "iana",
extensions: ["fvt"]
},
"video/vnd.hns.video": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.ttsavc": {
source: "iana"
},
"video/vnd.iptvforum.ttsmpeg2": {
source: "iana"
},
"video/vnd.motorola.video": {
source: "iana"
},
"video/vnd.motorola.videop": {
source: "iana"
},
"video/vnd.mpegurl": {
source: "iana",
extensions: ["mxu", "m4u"]
},
"video/vnd.ms-playready.media.pyv": {
source: "iana",
extensions: ["pyv"]
},
"video/vnd.nokia.interleaved-multimedia": {
source: "iana"
},
"video/vnd.nokia.mp4vr": {
source: "iana"
},
"video/vnd.nokia.videovoip": {
source: "iana"
},
"video/vnd.objectvideo": {
source: "iana"
},
"video/vnd.radgamettools.bink": {
source: "iana"
},
"video/vnd.radgamettools.smacker": {
source: "iana"
},
"video/vnd.sealed.mpeg1": {
source: "iana"
},
"video/vnd.sealed.mpeg4": {
source: "iana"
},
"video/vnd.sealed.swf": {
source: "iana"
},
"video/vnd.sealedmedia.softseal.mov": {
source: "iana"
},
"video/vnd.uvvu.mp4": {
source: "iana",
extensions: ["uvu", "uvvu"]
},
"video/vnd.vivo": {
source: "iana",
extensions: ["viv"]
},
"video/vnd.youtube.yt": {
source: "iana"
},
"video/vp8": {
source: "iana"
},
"video/vp9": {
source: "iana"
},
"video/webm": {
source: "apache",
compressible: false,
extensions: ["webm"]
},
"video/x-f4v": {
source: "apache",
extensions: ["f4v"]
},
"video/x-fli": {
source: "apache",
extensions: ["fli"]
},
"video/x-flv": {
source: "apache",
compressible: false,
extensions: ["flv"]
},
"video/x-m4v": {
source: "apache",
extensions: ["m4v"]
},
"video/x-matroska": {
source: "apache",
compressible: false,
extensions: ["mkv", "mk3d", "mks"]
},
"video/x-mng": {
source: "apache",
extensions: ["mng"]
},
"video/x-ms-asf": {
source: "apache",
extensions: ["asf", "asx"]
},
"video/x-ms-vob": {
source: "apache",
extensions: ["vob"]
},
"video/x-ms-wm": {
source: "apache",
extensions: ["wm"]
},
"video/x-ms-wmv": {
source: "apache",
compressible: false,
extensions: ["wmv"]
},
"video/x-ms-wmx": {
source: "apache",
extensions: ["wmx"]
},
"video/x-ms-wvx": {
source: "apache",
extensions: ["wvx"]
},
"video/x-msvideo": {
source: "apache",
extensions: ["avi"]
},
"video/x-sgi-movie": {
source: "apache",
extensions: ["movie"]
},
"video/x-smv": {
source: "apache",
extensions: ["smv"]
},
"x-conference/x-cooltalk": {
source: "apache",
extensions: ["ice"]
},
"x-shader/x-fragment": {
compressible: true
},
"x-shader/x-vertex": {
compressible: true
}
};
}
});
// node_modules/mime-db/index.js
var require_mime_db = __commonJS({
"node_modules/mime-db/index.js"(exports2, module2) {
module2.exports = require_db();
}
});
// node_modules/mime-types/index.js
var require_mime_types = __commonJS({
"node_modules/mime-types/index.js"(exports2) {
"use strict";
var db = require_mime_db();
var extname = require("path").extname;
var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
var TEXT_TYPE_REGEXP = /^text\//i;
exports2.charset = charset;
exports2.charsets = { lookup: charset };
exports2.contentType = contentType;
exports2.extension = extension;
exports2.extensions = /* @__PURE__ */ Object.create(null);
exports2.lookup = lookup;
exports2.types = /* @__PURE__ */ Object.create(null);
populateMaps(exports2.extensions, exports2.types);
function charset(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var mime = match && db[match[1].toLowerCase()];
if (mime && mime.charset) {
return mime.charset;
}
if (match && TEXT_TYPE_REGEXP.test(match[1])) {
return "UTF-8";
}
return false;
}
function contentType(str) {
if (!str || typeof str !== "string") {
return false;
}
var mime = str.indexOf("/") === -1 ? exports2.lookup(str) : str;
if (!mime) {
return false;
}
if (mime.indexOf("charset") === -1) {
var charset2 = exports2.charset(mime);
if (charset2) mime += "; charset=" + charset2.toLowerCase();
}
return mime;
}
function extension(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var exts = match && exports2.extensions[match[1].toLowerCase()];
if (!exts || !exts.length) {
return false;
}
return exts[0];
}
function lookup(path) {
if (!path || typeof path !== "string") {
return false;
}
var extension2 = extname("x." + path).toLowerCase().substr(1);
if (!extension2) {
return false;
}
return exports2.types[extension2] || false;
}
function populateMaps(extensions, types) {
var preference = ["nginx", "apache", void 0, "iana"];
Object.keys(db).forEach(function forEachMimeType(type) {
var mime = db[type];
var exts = mime.extensions;
if (!exts || !exts.length) {
return;
}
extensions[type] = exts;
for (var i = 0; i < exts.length; i++) {
var extension2 = exts[i];
if (types[extension2]) {
var from = preference.indexOf(db[types[extension2]].source);
var to = preference.indexOf(mime.source);
if (types[extension2] !== "application/octet-stream" && (from > to || from === to && types[extension2].substr(0, 12) === "application/")) {
continue;
}
}
types[extension2] = type;
}
});
}
}
});
// node_modules/asynckit/lib/defer.js
var require_defer = __commonJS({
"node_modules/asynckit/lib/defer.js"(exports2, module2) {
module2.exports = defer;
function defer(fn) {
var nextTick = typeof setImmediate == "function" ? setImmediate : typeof process == "object" && typeof process.nextTick == "function" ? process.nextTick : null;
if (nextTick) {
nextTick(fn);
} else {
setTimeout(fn, 0);
}
}
}
});
// node_modules/asynckit/lib/async.js
var require_async2 = __commonJS({
"node_modules/asynckit/lib/async.js"(exports2, module2) {
var defer = require_defer();
module2.exports = async;
function async(callback) {
var isAsync3 = false;
defer(function() {
isAsync3 = true;
});
return function async_callback(err2, result) {
if (isAsync3) {
callback(err2, result);
} else {
defer(function nextTick_callback() {
callback(err2, result);
});
}
};
}
}
});
// node_modules/asynckit/lib/abort.js
var require_abort = __commonJS({
"node_modules/asynckit/lib/abort.js"(exports2, module2) {
module2.exports = abort;
function abort(state) {
Object.keys(state.jobs).forEach(clean.bind(state));
state.jobs = {};
}
function clean(key) {
if (typeof this.jobs[key] == "function") {
this.jobs[key]();
}
}
}
});
// node_modules/asynckit/lib/iterate.js
var require_iterate = __commonJS({
"node_modules/asynckit/lib/iterate.js"(exports2, module2) {
var async = require_async2();
var abort = require_abort();
module2.exports = iterate;
function iterate(list, iterator, state, callback) {
var key = state["keyedList"] ? state["keyedList"][state.index] : state.index;
state.jobs[key] = runJob(iterator, key, list[key], function(error, output) {
if (!(key in state.jobs)) {
return;
}
delete state.jobs[key];
if (error) {
abort(state);
} else {
state.results[key] = output;
}
callback(error, state.results);
});
}
function runJob(iterator, key, item, callback) {
var aborter;
if (iterator.length == 2) {
aborter = iterator(item, async(callback));
} else {
aborter = iterator(item, key, async(callback));
}
return aborter;
}
}
});
// node_modules/asynckit/lib/state.js
var require_state = __commonJS({
"node_modules/asynckit/lib/state.js"(exports2, module2) {
module2.exports = state;
function state(list, sortMethod) {
var isNamedList = !Array.isArray(list), initState = {
index: 0,
keyedList: isNamedList || sortMethod ? Object.keys(list) : null,
jobs: {},
results: isNamedList ? {} : [],
size: isNamedList ? Object.keys(list).length : list.length
};
if (sortMethod) {
initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) {
return sortMethod(list[a], list[b]);
});
}
return initState;
}
}
});
// node_modules/asynckit/lib/terminator.js
var require_terminator = __commonJS({
"node_modules/asynckit/lib/terminator.js"(exports2, module2) {
var abort = require_abort();
var async = require_async2();
module2.exports = terminator;
function terminator(callback) {
if (!Object.keys(this.jobs).length) {
return;
}
this.index = this.size;
abort(this);
async(callback)(null, this.results);
}
}
});
// node_modules/asynckit/parallel.js
var require_parallel = __commonJS({
"node_modules/asynckit/parallel.js"(exports2, module2) {
var iterate = require_iterate();
var initState = require_state();
var terminator = require_terminator();
module2.exports = parallel;
function parallel(list, iterator, callback) {
var state = initState(list);
while (state.index < (state["keyedList"] || list).length) {
iterate(list, iterator, state, function(error, result) {
if (error) {
callback(error, result);
return;
}
if (Object.keys(state.jobs).length === 0) {
callback(null, state.results);
return;
}
});
state.index++;
}
return terminator.bind(state, callback);
}
}
});
// node_modules/asynckit/serialOrdered.js
var require_serialOrdered = __commonJS({
"node_modules/asynckit/serialOrdered.js"(exports2, module2) {
var iterate = require_iterate();
var initState = require_state();
var terminator = require_terminator();
module2.exports = serialOrdered;
module2.exports.ascending = ascending;
module2.exports.descending = descending;
function serialOrdered(list, iterator, sortMethod, callback) {
var state = initState(list, sortMethod);
iterate(list, iterator, state, function iteratorHandler(error, result) {
if (error) {
callback(error, result);
return;
}
state.index++;
if (state.index < (state["keyedList"] || list).length) {
iterate(list, iterator, state, iteratorHandler);
return;
}
callback(null, state.results);
});
return terminator.bind(state, callback);
}
function ascending(a, b) {
return a < b ? -1 : a > b ? 1 : 0;
}
function descending(a, b) {
return -1 * ascending(a, b);
}
}
});
// node_modules/asynckit/serial.js
var require_serial = __commonJS({
"node_modules/asynckit/serial.js"(exports2, module2) {
var serialOrdered = require_serialOrdered();
module2.exports = serial;
function serial(list, iterator, callback) {
return serialOrdered(list, iterator, null, callback);
}
}
});
// node_modules/asynckit/index.js
var require_asynckit = __commonJS({
"node_modules/asynckit/index.js"(exports2, module2) {
module2.exports = {
parallel: require_parallel(),
serial: require_serial(),
serialOrdered: require_serialOrdered()
};
}
});
// node_modules/es-object-atoms/index.js
var require_es_object_atoms = __commonJS({
"node_modules/es-object-atoms/index.js"(exports2, module2) {
"use strict";
module2.exports = Object;
}
});
// node_modules/es-errors/index.js
var require_es_errors = __commonJS({
"node_modules/es-errors/index.js"(exports2, module2) {
"use strict";
module2.exports = Error;
}
});
// node_modules/es-errors/eval.js
var require_eval = __commonJS({
"node_modules/es-errors/eval.js"(exports2, module2) {
"use strict";
module2.exports = EvalError;
}
});
// node_modules/es-errors/range.js
var require_range = __commonJS({
"node_modules/es-errors/range.js"(exports2, module2) {
"use strict";
module2.exports = RangeError;
}
});
// node_modules/es-errors/ref.js
var require_ref2 = __commonJS({
"node_modules/es-errors/ref.js"(exports2, module2) {
"use strict";
module2.exports = ReferenceError;
}
});
// node_modules/es-errors/syntax.js
var require_syntax = __commonJS({
"node_modules/es-errors/syntax.js"(exports2, module2) {
"use strict";
module2.exports = SyntaxError;
}
});
// node_modules/es-errors/type.js
var require_type = __commonJS({
"node_modules/es-errors/type.js"(exports2, module2) {
"use strict";
module2.exports = TypeError;
}
});
// node_modules/es-errors/uri.js
var require_uri = __commonJS({
"node_modules/es-errors/uri.js"(exports2, module2) {
"use strict";
module2.exports = URIError;
}
});
// node_modules/math-intrinsics/abs.js
var require_abs = __commonJS({
"node_modules/math-intrinsics/abs.js"(exports2, module2) {
"use strict";
module2.exports = Math.abs;
}
});
// node_modules/math-intrinsics/floor.js
var require_floor = __commonJS({
"node_modules/math-intrinsics/floor.js"(exports2, module2) {
"use strict";
module2.exports = Math.floor;
}
});
// node_modules/math-intrinsics/max.js
var require_max = __commonJS({
"node_modules/math-intrinsics/max.js"(exports2, module2) {
"use strict";
module2.exports = Math.max;
}
});
// node_modules/math-intrinsics/min.js
var require_min = __commonJS({
"node_modules/math-intrinsics/min.js"(exports2, module2) {
"use strict";
module2.exports = Math.min;
}
});
// node_modules/math-intrinsics/pow.js
var require_pow = __commonJS({
"node_modules/math-intrinsics/pow.js"(exports2, module2) {
"use strict";
module2.exports = Math.pow;
}
});
// node_modules/math-intrinsics/round.js
var require_round = __commonJS({
"node_modules/math-intrinsics/round.js"(exports2, module2) {
"use strict";
module2.exports = Math.round;
}
});
// node_modules/math-intrinsics/isNaN.js
var require_isNaN = __commonJS({
"node_modules/math-intrinsics/isNaN.js"(exports2, module2) {
"use strict";
module2.exports = Number.isNaN || function isNaN2(a) {
return a !== a;
};
}
});
// node_modules/math-intrinsics/sign.js
var require_sign = __commonJS({
"node_modules/math-intrinsics/sign.js"(exports2, module2) {
"use strict";
var $isNaN = require_isNaN();
module2.exports = function sign(number) {
if ($isNaN(number) || number === 0) {
return number;
}
return number < 0 ? -1 : 1;
};
}
});
// node_modules/gopd/gOPD.js
var require_gOPD = __commonJS({
"node_modules/gopd/gOPD.js"(exports2, module2) {
"use strict";
module2.exports = Object.getOwnPropertyDescriptor;
}
});
// node_modules/gopd/index.js
var require_gopd = __commonJS({
"node_modules/gopd/index.js"(exports2, module2) {
"use strict";
var $gOPD = require_gOPD();
if ($gOPD) {
try {
$gOPD([], "length");
} catch (e) {
$gOPD = null;
}
}
module2.exports = $gOPD;
}
});
// node_modules/es-define-property/index.js
var require_es_define_property = __commonJS({
"node_modules/es-define-property/index.js"(exports2, module2) {
"use strict";
var $defineProperty = Object.defineProperty || false;
if ($defineProperty) {
try {
$defineProperty({}, "a", { value: 1 });
} catch (e) {
$defineProperty = false;
}
}
module2.exports = $defineProperty;
}
});
// node_modules/has-symbols/shams.js
var require_shams = __commonJS({
"node_modules/has-symbols/shams.js"(exports2, module2) {
"use strict";
module2.exports = function hasSymbols() {
if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") {
return false;
}
if (typeof Symbol.iterator === "symbol") {
return true;
}
var obj = {};
var sym = Symbol("test");
var symObj = Object(sym);
if (typeof sym === "string") {
return false;
}
if (Object.prototype.toString.call(sym) !== "[object Symbol]") {
return false;
}
if (Object.prototype.toString.call(symObj) !== "[object Symbol]") {
return false;
}
var symVal = 42;
obj[sym] = symVal;
for (var _ in obj) {
return false;
}
if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) {
return false;
}
if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) {
return false;
}
var syms = Object.getOwnPropertySymbols(obj);
if (syms.length !== 1 || syms[0] !== sym) {
return false;
}
if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {
return false;
}
if (typeof Object.getOwnPropertyDescriptor === "function") {
var descriptor = (
/** @type {PropertyDescriptor} */
Object.getOwnPropertyDescriptor(obj, sym)
);
if (descriptor.value !== symVal || descriptor.enumerable !== true) {
return false;
}
}
return true;
};
}
});
// node_modules/has-symbols/index.js
var require_has_symbols = __commonJS({
"node_modules/has-symbols/index.js"(exports2, module2) {
"use strict";
var origSymbol = typeof Symbol !== "undefined" && Symbol;
var hasSymbolSham = require_shams();
module2.exports = function hasNativeSymbols() {
if (typeof origSymbol !== "function") {
return false;
}
if (typeof Symbol !== "function") {
return false;
}
if (typeof origSymbol("foo") !== "symbol") {
return false;
}
if (typeof Symbol("bar") !== "symbol") {
return false;
}
return hasSymbolSham();
};
}
});
// node_modules/get-proto/Reflect.getPrototypeOf.js
var require_Reflect_getPrototypeOf = __commonJS({
"node_modules/get-proto/Reflect.getPrototypeOf.js"(exports2, module2) {
"use strict";
module2.exports = typeof Reflect !== "undefined" && Reflect.getPrototypeOf || null;
}
});
// node_modules/get-proto/Object.getPrototypeOf.js
var require_Object_getPrototypeOf = __commonJS({
"node_modules/get-proto/Object.getPrototypeOf.js"(exports2, module2) {
"use strict";
var $Object = require_es_object_atoms();
module2.exports = $Object.getPrototypeOf || null;
}
});
// node_modules/function-bind/implementation.js
var require_implementation = __commonJS({
"node_modules/function-bind/implementation.js"(exports2, module2) {
"use strict";
var ERROR_MESSAGE = "Function.prototype.bind called on incompatible ";
var toStr = Object.prototype.toString;
var max = Math.max;
var funcType = "[object Function]";
var concatty = function concatty2(a, b) {
var arr = [];
for (var i = 0; i < a.length; i += 1) {
arr[i] = a[i];
}
for (var j = 0; j < b.length; j += 1) {
arr[j + a.length] = b[j];
}
return arr;
};
var slicy = function slicy2(arrLike, offset) {
var arr = [];
for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {
arr[j] = arrLike[i];
}
return arr;
};
var joiny = function(arr, joiner) {
var str = "";
for (var i = 0; i < arr.length; i += 1) {
str += arr[i];
if (i + 1 < arr.length) {
str += joiner;
}
}
return str;
};
module2.exports = function bind2(that) {
var target = this;
if (typeof target !== "function" || toStr.apply(target) !== funcType) {
throw new TypeError(ERROR_MESSAGE + target);
}
var args = slicy(arguments, 1);
var bound;
var binder = function() {
if (this instanceof bound) {
var result = target.apply(
this,
concatty(args, arguments)
);
if (Object(result) === result) {
return result;
}
return this;
}
return target.apply(
that,
concatty(args, arguments)
);
};
var boundLength = max(0, target.length - args.length);
var boundArgs = [];
for (var i = 0; i < boundLength; i++) {
boundArgs[i] = "$" + i;
}
bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder);
if (target.prototype) {
var Empty = function Empty2() {
};
Empty.prototype = target.prototype;
bound.prototype = new Empty();
Empty.prototype = null;
}
return bound;
};
}
});
// node_modules/function-bind/index.js
var require_function_bind = __commonJS({
"node_modules/function-bind/index.js"(exports2, module2) {
"use strict";
var implementation = require_implementation();
module2.exports = Function.prototype.bind || implementation;
}
});
// node_modules/call-bind-apply-helpers/functionCall.js
var require_functionCall = __commonJS({
"node_modules/call-bind-apply-helpers/functionCall.js"(exports2, module2) {
"use strict";
module2.exports = Function.prototype.call;
}
});
// node_modules/call-bind-apply-helpers/functionApply.js
var require_functionApply = __commonJS({
"node_modules/call-bind-apply-helpers/functionApply.js"(exports2, module2) {
"use strict";
module2.exports = Function.prototype.apply;
}
});
// node_modules/call-bind-apply-helpers/reflectApply.js
var require_reflectApply = __commonJS({
"node_modules/call-bind-apply-helpers/reflectApply.js"(exports2, module2) {
"use strict";
module2.exports = typeof Reflect !== "undefined" && Reflect && Reflect.apply;
}
});
// node_modules/call-bind-apply-helpers/actualApply.js
var require_actualApply = __commonJS({
"node_modules/call-bind-apply-helpers/actualApply.js"(exports2, module2) {
"use strict";
var bind2 = require_function_bind();
var $apply = require_functionApply();
var $call = require_functionCall();
var $reflectApply = require_reflectApply();
module2.exports = $reflectApply || bind2.call($call, $apply);
}
});
// node_modules/call-bind-apply-helpers/index.js
var require_call_bind_apply_helpers = __commonJS({
"node_modules/call-bind-apply-helpers/index.js"(exports2, module2) {
"use strict";
var bind2 = require_function_bind();
var $TypeError = require_type();
var $call = require_functionCall();
var $actualApply = require_actualApply();
module2.exports = function callBindBasic(args) {
if (args.length < 1 || typeof args[0] !== "function") {
throw new $TypeError("a function is required");
}
return $actualApply(bind2, $call, args);
};
}
});
// node_modules/dunder-proto/get.js
var require_get = __commonJS({
"node_modules/dunder-proto/get.js"(exports2, module2) {
"use strict";
var callBind = require_call_bind_apply_helpers();
var gOPD = require_gopd();
var hasProtoAccessor;
try {
hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */
[].__proto__ === Array.prototype;
} catch (e) {
if (!e || typeof e !== "object" || !("code" in e) || e.code !== "ERR_PROTO_ACCESS") {
throw e;
}
}
var desc = !!hasProtoAccessor && gOPD && gOPD(
Object.prototype,
/** @type {keyof typeof Object.prototype} */
"__proto__"
);
var $Object = Object;
var $getPrototypeOf = $Object.getPrototypeOf;
module2.exports = desc && typeof desc.get === "function" ? callBind([desc.get]) : typeof $getPrototypeOf === "function" ? (
/** @type {import('./get')} */
function getDunder(value) {
return $getPrototypeOf(value == null ? value : $Object(value));
}
) : false;
}
});
// node_modules/get-proto/index.js
var require_get_proto = __commonJS({
"node_modules/get-proto/index.js"(exports2, module2) {
"use strict";
var reflectGetProto = require_Reflect_getPrototypeOf();
var originalGetProto = require_Object_getPrototypeOf();
var getDunderProto = require_get();
module2.exports = reflectGetProto ? function getProto(O) {
return reflectGetProto(O);
} : originalGetProto ? function getProto(O) {
if (!O || typeof O !== "object" && typeof O !== "function") {
throw new TypeError("getProto: not an object");
}
return originalGetProto(O);
} : getDunderProto ? function getProto(O) {
return getDunderProto(O);
} : null;
}
});
// node_modules/hasown/index.js
var require_hasown = __commonJS({
"node_modules/hasown/index.js"(exports2, module2) {
"use strict";
var call = Function.prototype.call;
var $hasOwn = Object.prototype.hasOwnProperty;
var bind2 = require_function_bind();
module2.exports = bind2.call(call, $hasOwn);
}
});
// node_modules/get-intrinsic/index.js
var require_get_intrinsic = __commonJS({
"node_modules/get-intrinsic/index.js"(exports2, module2) {
"use strict";
var undefined2;
var $Object = require_es_object_atoms();
var $Error = require_es_errors();
var $EvalError = require_eval();
var $RangeError = require_range();
var $ReferenceError = require_ref2();
var $SyntaxError = require_syntax();
var $TypeError = require_type();
var $URIError = require_uri();
var abs = require_abs();
var floor = require_floor();
var max = require_max();
var min = require_min();
var pow = require_pow();
var round = require_round();
var sign = require_sign();
var $Function = Function;
var getEvalledConstructor = function(expressionSyntax) {
try {
return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")();
} catch (e) {
}
};
var $gOPD = require_gopd();
var $defineProperty = require_es_define_property();
var throwTypeError = function() {
throw new $TypeError();
};
var ThrowTypeError = $gOPD ? (function() {
try {
arguments.callee;
return throwTypeError;
} catch (calleeThrows) {
try {
return $gOPD(arguments, "callee").get;
} catch (gOPDthrows) {
return throwTypeError;
}
}
})() : throwTypeError;
var hasSymbols = require_has_symbols()();
var getProto = require_get_proto();
var $ObjectGPO = require_Object_getPrototypeOf();
var $ReflectGPO = require_Reflect_getPrototypeOf();
var $apply = require_functionApply();
var $call = require_functionCall();
var needsEval = {};
var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array);
var INTRINSICS = {
__proto__: null,
"%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError,
"%Array%": Array,
"%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer,
"%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2,
"%AsyncFromSyncIteratorPrototype%": undefined2,
"%AsyncFunction%": needsEval,
"%AsyncGenerator%": needsEval,
"%AsyncGeneratorFunction%": needsEval,
"%AsyncIteratorPrototype%": needsEval,
"%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics,
"%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt,
"%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array,
"%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array,
"%Boolean%": Boolean,
"%DataView%": typeof DataView === "undefined" ? undefined2 : DataView,
"%Date%": Date,
"%decodeURI%": decodeURI,
"%decodeURIComponent%": decodeURIComponent,
"%encodeURI%": encodeURI,
"%encodeURIComponent%": encodeURIComponent,
"%Error%": $Error,
"%eval%": eval,
// eslint-disable-line no-eval
"%EvalError%": $EvalError,
"%Float16Array%": typeof Float16Array === "undefined" ? undefined2 : Float16Array,
"%Float32Array%": typeof Float32Array === "undefined" ? undefined2 : Float32Array,
"%Float64Array%": typeof Float64Array === "undefined" ? undefined2 : Float64Array,
"%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined2 : FinalizationRegistry,
"%Function%": $Function,
"%GeneratorFunction%": needsEval,
"%Int8Array%": typeof Int8Array === "undefined" ? undefined2 : Int8Array,
"%Int16Array%": typeof Int16Array === "undefined" ? undefined2 : Int16Array,
"%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array,
"%isFinite%": isFinite,
"%isNaN%": isNaN,
"%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2,
"%JSON%": typeof JSON === "object" ? JSON : undefined2,
"%Map%": typeof Map === "undefined" ? undefined2 : Map,
"%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()),
"%Math%": Math,
"%Number%": Number,
"%Object%": $Object,
"%Object.getOwnPropertyDescriptor%": $gOPD,
"%parseFloat%": parseFloat,
"%parseInt%": parseInt,
"%Promise%": typeof Promise === "undefined" ? undefined2 : Promise,
"%Proxy%": typeof Proxy === "undefined" ? undefined2 : Proxy,
"%RangeError%": $RangeError,
"%ReferenceError%": $ReferenceError,
"%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect,
"%RegExp%": RegExp,
"%Set%": typeof Set === "undefined" ? undefined2 : Set,
"%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()),
"%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer,
"%String%": String,
"%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2,
"%Symbol%": hasSymbols ? Symbol : undefined2,
"%SyntaxError%": $SyntaxError,
"%ThrowTypeError%": ThrowTypeError,
"%TypedArray%": TypedArray,
"%TypeError%": $TypeError,
"%Uint8Array%": typeof Uint8Array === "undefined" ? undefined2 : Uint8Array,
"%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined2 : Uint8ClampedArray,
"%Uint16Array%": typeof Uint16Array === "undefined" ? undefined2 : Uint16Array,
"%Uint32Array%": typeof Uint32Array === "undefined" ? undefined2 : Uint32Array,
"%URIError%": $URIError,
"%WeakMap%": typeof WeakMap === "undefined" ? undefined2 : WeakMap,
"%WeakRef%": typeof WeakRef === "undefined" ? undefined2 : WeakRef,
"%WeakSet%": typeof WeakSet === "undefined" ? undefined2 : WeakSet,
"%Function.prototype.call%": $call,
"%Function.prototype.apply%": $apply,
"%Object.defineProperty%": $defineProperty,
"%Object.getPrototypeOf%": $ObjectGPO,
"%Math.abs%": abs,
"%Math.floor%": floor,
"%Math.max%": max,
"%Math.min%": min,
"%Math.pow%": pow,
"%Math.round%": round,
"%Math.sign%": sign,
"%Reflect.getPrototypeOf%": $ReflectGPO
};
if (getProto) {
try {
null.error;
} catch (e) {
errorProto = getProto(getProto(e));
INTRINSICS["%Error.prototype%"] = errorProto;
}
}
var errorProto;
var doEval = function doEval2(name) {
var value;
if (name === "%AsyncFunction%") {
value = getEvalledConstructor("async function () {}");
} else if (name === "%GeneratorFunction%") {
value = getEvalledConstructor("function* () {}");
} else if (name === "%AsyncGeneratorFunction%") {
value = getEvalledConstructor("async function* () {}");
} else if (name === "%AsyncGenerator%") {
var fn = doEval2("%AsyncGeneratorFunction%");
if (fn) {
value = fn.prototype;
}
} else if (name === "%AsyncIteratorPrototype%") {
var gen = doEval2("%AsyncGenerator%");
if (gen && getProto) {
value = getProto(gen.prototype);
}
}
INTRINSICS[name] = value;
return value;
};
var LEGACY_ALIASES = {
__proto__: null,
"%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"],
"%ArrayPrototype%": ["Array", "prototype"],
"%ArrayProto_entries%": ["Array", "prototype", "entries"],
"%ArrayProto_forEach%": ["Array", "prototype", "forEach"],
"%ArrayProto_keys%": ["Array", "prototype", "keys"],
"%ArrayProto_values%": ["Array", "prototype", "values"],
"%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"],
"%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"],
"%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"],
"%BooleanPrototype%": ["Boolean", "prototype"],
"%DataViewPrototype%": ["DataView", "prototype"],
"%DatePrototype%": ["Date", "prototype"],
"%ErrorPrototype%": ["Error", "prototype"],
"%EvalErrorPrototype%": ["EvalError", "prototype"],
"%Float32ArrayPrototype%": ["Float32Array", "prototype"],
"%Float64ArrayPrototype%": ["Float64Array", "prototype"],
"%FunctionPrototype%": ["Function", "prototype"],
"%Generator%": ["GeneratorFunction", "prototype"],
"%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"],
"%Int8ArrayPrototype%": ["Int8Array", "prototype"],
"%Int16ArrayPrototype%": ["Int16Array", "prototype"],
"%Int32ArrayPrototype%": ["Int32Array", "prototype"],
"%JSONParse%": ["JSON", "parse"],
"%JSONStringify%": ["JSON", "stringify"],
"%MapPrototype%": ["Map", "prototype"],
"%NumberPrototype%": ["Number", "prototype"],
"%ObjectPrototype%": ["Object", "prototype"],
"%ObjProto_toString%": ["Object", "prototype", "toString"],
"%ObjProto_valueOf%": ["Object", "prototype", "valueOf"],
"%PromisePrototype%": ["Promise", "prototype"],
"%PromiseProto_then%": ["Promise", "prototype", "then"],
"%Promise_all%": ["Promise", "all"],
"%Promise_reject%": ["Promise", "reject"],
"%Promise_resolve%": ["Promise", "resolve"],
"%RangeErrorPrototype%": ["RangeError", "prototype"],
"%ReferenceErrorPrototype%": ["ReferenceError", "prototype"],
"%RegExpPrototype%": ["RegExp", "prototype"],
"%SetPrototype%": ["Set", "prototype"],
"%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"],
"%StringPrototype%": ["String", "prototype"],
"%SymbolPrototype%": ["Symbol", "prototype"],
"%SyntaxErrorPrototype%": ["SyntaxError", "prototype"],
"%TypedArrayPrototype%": ["TypedArray", "prototype"],
"%TypeErrorPrototype%": ["TypeError", "prototype"],
"%Uint8ArrayPrototype%": ["Uint8Array", "prototype"],
"%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"],
"%Uint16ArrayPrototype%": ["Uint16Array", "prototype"],
"%Uint32ArrayPrototype%": ["Uint32Array", "prototype"],
"%URIErrorPrototype%": ["URIError", "prototype"],
"%WeakMapPrototype%": ["WeakMap", "prototype"],
"%WeakSetPrototype%": ["WeakSet", "prototype"]
};
var bind2 = require_function_bind();
var hasOwn = require_hasown();
var $concat = bind2.call($call, Array.prototype.concat);
var $spliceApply = bind2.call($apply, Array.prototype.splice);
var $replace = bind2.call($call, String.prototype.replace);
var $strSlice = bind2.call($call, String.prototype.slice);
var $exec = bind2.call($call, RegExp.prototype.exec);
var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
var reEscapeChar = /\\(\\)?/g;
var stringToPath = function stringToPath2(string) {
var first = $strSlice(string, 0, 1);
var last = $strSlice(string, -1);
if (first === "%" && last !== "%") {
throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`");
} else if (last === "%" && first !== "%") {
throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`");
}
var result = [];
$replace(string, rePropName, function(match, number, quote, subString) {
result[result.length] = quote ? $replace(subString, reEscapeChar, "$1") : number || match;
});
return result;
};
var getBaseIntrinsic = function getBaseIntrinsic2(name, allowMissing) {
var intrinsicName = name;
var alias;
if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
alias = LEGACY_ALIASES[intrinsicName];
intrinsicName = "%" + alias[0] + "%";
}
if (hasOwn(INTRINSICS, intrinsicName)) {
var value = INTRINSICS[intrinsicName];
if (value === needsEval) {
value = doEval(intrinsicName);
}
if (typeof value === "undefined" && !allowMissing) {
throw new $TypeError("intrinsic " + name + " exists, but is not available. Please file an issue!");
}
return {
alias,
name: intrinsicName,
value
};
}
throw new $SyntaxError("intrinsic " + name + " does not exist!");
};
module2.exports = function GetIntrinsic(name, allowMissing) {
if (typeof name !== "string" || name.length === 0) {
throw new $TypeError("intrinsic name must be a non-empty string");
}
if (arguments.length > 1 && typeof allowMissing !== "boolean") {
throw new $TypeError('"allowMissing" argument must be a boolean');
}
if ($exec(/^%?[^%]*%?$/, name) === null) {
throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
}
var parts = stringToPath(name);
var intrinsicBaseName = parts.length > 0 ? parts[0] : "";
var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing);
var intrinsicRealName = intrinsic.name;
var value = intrinsic.value;
var skipFurtherCaching = false;
var alias = intrinsic.alias;
if (alias) {
intrinsicBaseName = alias[0];
$spliceApply(parts, $concat([0, 1], alias));
}
for (var i = 1, isOwn = true; i < parts.length; i += 1) {
var part = parts[i];
var first = $strSlice(part, 0, 1);
var last = $strSlice(part, -1);
if ((first === '"' || first === "'" || first === "`" || (last === '"' || last === "'" || last === "`")) && first !== last) {
throw new $SyntaxError("property names with quotes must have matching quotes");
}
if (part === "constructor" || !isOwn) {
skipFurtherCaching = true;
}
intrinsicBaseName += "." + part;
intrinsicRealName = "%" + intrinsicBaseName + "%";
if (hasOwn(INTRINSICS, intrinsicRealName)) {
value = INTRINSICS[intrinsicRealName];
} else if (value != null) {
if (!(part in value)) {
if (!allowMissing) {
throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available.");
}
return void undefined2;
}
if ($gOPD && i + 1 >= parts.length) {
var desc = $gOPD(value, part);
isOwn = !!desc;
if (isOwn && "get" in desc && !("originalValue" in desc.get)) {
value = desc.get;
} else {
value = value[part];
}
} else {
isOwn = hasOwn(value, part);
value = value[part];
}
if (isOwn && !skipFurtherCaching) {
INTRINSICS[intrinsicRealName] = value;
}
}
}
return value;
};
}
});
// node_modules/has-tostringtag/shams.js
var require_shams2 = __commonJS({
"node_modules/has-tostringtag/shams.js"(exports2, module2) {
"use strict";
var hasSymbols = require_shams();
module2.exports = function hasToStringTagShams() {
return hasSymbols() && !!Symbol.toStringTag;
};
}
});
// node_modules/es-set-tostringtag/index.js
var require_es_set_tostringtag = __commonJS({
"node_modules/es-set-tostringtag/index.js"(exports2, module2) {
"use strict";
var GetIntrinsic = require_get_intrinsic();
var $defineProperty = GetIntrinsic("%Object.defineProperty%", true);
var hasToStringTag = require_shams2()();
var hasOwn = require_hasown();
var $TypeError = require_type();
var toStringTag = hasToStringTag ? Symbol.toStringTag : null;
module2.exports = function setToStringTag(object, value) {
var overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force;
var nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable;
if (typeof overrideIfSet !== "undefined" && typeof overrideIfSet !== "boolean" || typeof nonConfigurable !== "undefined" && typeof nonConfigurable !== "boolean") {
throw new $TypeError("if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans");
}
if (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) {
if ($defineProperty) {
$defineProperty(object, toStringTag, {
configurable: !nonConfigurable,
enumerable: false,
value,
writable: false
});
} else {
object[toStringTag] = value;
}
}
};
}
});
// node_modules/form-data/lib/populate.js
var require_populate = __commonJS({
"node_modules/form-data/lib/populate.js"(exports2, module2) {
"use strict";
module2.exports = function(dst, src) {
Object.keys(src).forEach(function(prop) {
dst[prop] = dst[prop] || src[prop];
});
return dst;
};
}
});
// node_modules/form-data/lib/form_data.js
var require_form_data = __commonJS({
"node_modules/form-data/lib/form_data.js"(exports2, module2) {
"use strict";
var CombinedStream = require_combined_stream();
var util5 = require("util");
var path = require("path");
var http2 = require("http");
var https2 = require("https");
var parseUrl = require("url").parse;
var fs = require("fs");
var Stream = require("stream").Stream;
var crypto2 = require("crypto");
var mime = require_mime_types();
var asynckit = require_asynckit();
var setToStringTag = require_es_set_tostringtag();
var hasOwn = require_hasown();
var populate = require_populate();
function FormData3(options) {
if (!(this instanceof FormData3)) {
return new FormData3(options);
}
this._overheadLength = 0;
this._valueLength = 0;
this._valuesToMeasure = [];
CombinedStream.call(this);
options = options || {};
for (var option in options) {
this[option] = options[option];
}
}
util5.inherits(FormData3, CombinedStream);
FormData3.LINE_BREAK = "\r\n";
FormData3.DEFAULT_CONTENT_TYPE = "application/octet-stream";
FormData3.prototype.append = function(field, value, options) {
options = options || {};
if (typeof options === "string") {
options = { filename: options };
}
var append2 = CombinedStream.prototype.append.bind(this);
if (typeof value === "number" || value == null) {
value = String(value);
}
if (Array.isArray(value)) {
this._error(new Error("Arrays are not supported."));
return;
}
var header = this._multiPartHeader(field, value, options);
var footer = this._multiPartFooter();
append2(header);
append2(value);
append2(footer);
this._trackLength(header, value, options);
};
FormData3.prototype._trackLength = function(header, value, options) {
var valueLength = 0;
if (options.knownLength != null) {
valueLength += Number(options.knownLength);
} else if (Buffer.isBuffer(value)) {
valueLength = value.length;
} else if (typeof value === "string") {
valueLength = Buffer.byteLength(value);
}
this._valueLength += valueLength;
this._overheadLength += Buffer.byteLength(header) + FormData3.LINE_BREAK.length;
if (!value || !value.path && !(value.readable && hasOwn(value, "httpVersion")) && !(value instanceof Stream)) {
return;
}
if (!options.knownLength) {
this._valuesToMeasure.push(value);
}
};
FormData3.prototype._lengthRetriever = function(value, callback) {
if (hasOwn(value, "fd")) {
if (value.end != void 0 && value.end != Infinity && value.start != void 0) {
callback(null, value.end + 1 - (value.start ? value.start : 0));
} else {
fs.stat(value.path, function(err2, stat) {
if (err2) {
callback(err2);
return;
}
var fileSize = stat.size - (value.start ? value.start : 0);
callback(null, fileSize);
});
}
} else if (hasOwn(value, "httpVersion")) {
callback(null, Number(value.headers["content-length"]));
} else if (hasOwn(value, "httpModule")) {
value.on("response", function(response) {
value.pause();
callback(null, Number(response.headers["content-length"]));
});
value.resume();
} else {
callback("Unknown stream");
}
};
FormData3.prototype._multiPartHeader = function(field, value, options) {
if (typeof options.header === "string") {
return options.header;
}
var contentDisposition = this._getContentDisposition(value, options);
var contentType = this._getContentType(value, options);
var contents = "";
var headers = {
// add custom disposition as third element or keep it two elements if not
"Content-Disposition": ["form-data", 'name="' + field + '"'].concat(contentDisposition || []),
// if no content type. allow it to be empty array
"Content-Type": [].concat(contentType || [])
};
if (typeof options.header === "object") {
populate(headers, options.header);
}
var header;
for (var prop in headers) {
if (hasOwn(headers, prop)) {
header = headers[prop];
if (header == null) {
continue;
}
if (!Array.isArray(header)) {
header = [header];
}
if (header.length) {
contents += prop + ": " + header.join("; ") + FormData3.LINE_BREAK;
}
}
}
return "--" + this.getBoundary() + FormData3.LINE_BREAK + contents + FormData3.LINE_BREAK;
};
FormData3.prototype._getContentDisposition = function(value, options) {
var filename;
if (typeof options.filepath === "string") {
filename = path.normalize(options.filepath).replace(/\\/g, "/");
} else if (options.filename || value && (value.name || value.path)) {
filename = path.basename(options.filename || value && (value.name || value.path));
} else if (value && value.readable && hasOwn(value, "httpVersion")) {
filename = path.basename(value.client._httpMessage.path || "");
}
if (filename) {
return 'filename="' + filename + '"';
}
};
FormData3.prototype._getContentType = function(value, options) {
var contentType = options.contentType;
if (!contentType && value && value.name) {
contentType = mime.lookup(value.name);
}
if (!contentType && value && value.path) {
contentType = mime.lookup(value.path);
}
if (!contentType && value && value.readable && hasOwn(value, "httpVersion")) {
contentType = value.headers["content-type"];
}
if (!contentType && (options.filepath || options.filename)) {
contentType = mime.lookup(options.filepath || options.filename);
}
if (!contentType && value && typeof value === "object") {
contentType = FormData3.DEFAULT_CONTENT_TYPE;
}
return contentType;
};
FormData3.prototype._multiPartFooter = function() {
return function(next) {
var footer = FormData3.LINE_BREAK;
var lastPart = this._streams.length === 0;
if (lastPart) {
footer += this._lastBoundary();
}
next(footer);
}.bind(this);
};
FormData3.prototype._lastBoundary = function() {
return "--" + this.getBoundary() + "--" + FormData3.LINE_BREAK;
};
FormData3.prototype.getHeaders = function(userHeaders) {
var header;
var formHeaders = {
"content-type": "multipart/form-data; boundary=" + this.getBoundary()
};
for (header in userHeaders) {
if (hasOwn(userHeaders, header)) {
formHeaders[header.toLowerCase()] = userHeaders[header];
}
}
return formHeaders;
};
FormData3.prototype.setBoundary = function(boundary) {
if (typeof boundary !== "string") {
throw new TypeError("FormData boundary must be a string");
}
this._boundary = boundary;
};
FormData3.prototype.getBoundary = function() {
if (!this._boundary) {
this._generateBoundary();
}
return this._boundary;
};
FormData3.prototype.getBuffer = function() {
var dataBuffer = new Buffer.alloc(0);
var boundary = this.getBoundary();
for (var i = 0, len = this._streams.length; i < len; i++) {
if (typeof this._streams[i] !== "function") {
if (Buffer.isBuffer(this._streams[i])) {
dataBuffer = Buffer.concat([dataBuffer, this._streams[i]]);
} else {
dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i])]);
}
if (typeof this._streams[i] !== "string" || this._streams[i].substring(2, boundary.length + 2) !== boundary) {
dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData3.LINE_BREAK)]);
}
}
}
return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]);
};
FormData3.prototype._generateBoundary = function() {
this._boundary = "--------------------------" + crypto2.randomBytes(12).toString("hex");
};
FormData3.prototype.getLengthSync = function() {
var knownLength = this._overheadLength + this._valueLength;
if (this._streams.length) {
knownLength += this._lastBoundary().length;
}
if (!this.hasKnownLength()) {
this._error(new Error("Cannot calculate proper length in synchronous way."));
}
return knownLength;
};
FormData3.prototype.hasKnownLength = function() {
var hasKnownLength = true;
if (this._valuesToMeasure.length) {
hasKnownLength = false;
}
return hasKnownLength;
};
FormData3.prototype.getLength = function(cb) {
var knownLength = this._overheadLength + this._valueLength;
if (this._streams.length) {
knownLength += this._lastBoundary().length;
}
if (!this._valuesToMeasure.length) {
process.nextTick(cb.bind(this, null, knownLength));
return;
}
asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err2, values) {
if (err2) {
cb(err2);
return;
}
values.forEach(function(length) {
knownLength += length;
});
cb(null, knownLength);
});
};
FormData3.prototype.submit = function(params, cb) {
var request;
var options;
var defaults2 = { method: "post" };
if (typeof params === "string") {
params = parseUrl(params);
options = populate({
port: params.port,
path: params.pathname,
host: params.hostname,
protocol: params.protocol
}, defaults2);
} else {
options = populate(params, defaults2);
if (!options.port) {
options.port = options.protocol === "https:" ? 443 : 80;
}
}
options.headers = this.getHeaders(params.headers);
if (options.protocol === "https:") {
request = https2.request(options);
} else {
request = http2.request(options);
}
this.getLength(function(err2, length) {
if (err2 && err2 !== "Unknown stream") {
this._error(err2);
return;
}
if (length) {
request.setHeader("Content-Length", length);
}
this.pipe(request);
if (cb) {
var onResponse;
var callback = function(error, responce) {
request.removeListener("error", callback);
request.removeListener("response", onResponse);
return cb.call(this, error, responce);
};
onResponse = callback.bind(this, null);
request.on("error", callback);
request.on("response", onResponse);
}
}.bind(this));
return request;
};
FormData3.prototype._error = function(err2) {
if (!this.error) {
this.error = err2;
this.pause();
this.emit("error", err2);
}
};
FormData3.prototype.toString = function() {
return "[object FormData]";
};
setToStringTag(FormData3, "FormData");
module2.exports = FormData3;
}
});
// node_modules/axios/lib/platform/node/classes/FormData.js
var import_form_data, FormData_default;
var init_FormData = __esm({
"node_modules/axios/lib/platform/node/classes/FormData.js"() {
import_form_data = __toESM(require_form_data(), 1);
FormData_default = import_form_data.default;
}
});
// node_modules/axios/lib/helpers/toFormData.js
function isVisitable(thing) {
return utils_default.isPlainObject(thing) || utils_default.isArray(thing);
}
function removeBrackets(key) {
return utils_default.endsWith(key, "[]") ? key.slice(0, -2) : key;
}
function renderKey(path, key, dots) {
if (!path) return key;
return path.concat(key).map(function each(token, i) {
token = removeBrackets(token);
return !dots && i ? "[" + token + "]" : token;
}).join(dots ? "." : "");
}
function isFlatArray(arr) {
return utils_default.isArray(arr) && !arr.some(isVisitable);
}
function toFormData(obj, formData, options) {
if (!utils_default.isObject(obj)) {
throw new TypeError("target must be an object");
}
formData = formData || new (FormData_default || FormData)();
options = utils_default.toFlatObject(options, {
metaTokens: true,
dots: false,
indexes: false
}, false, function defined(option, source) {
return !utils_default.isUndefined(source[option]);
});
const metaTokens = options.metaTokens;
const visitor = options.visitor || defaultVisitor;
const dots = options.dots;
const indexes = options.indexes;
const _Blob = options.Blob || typeof Blob !== "undefined" && Blob;
const useBlob = _Blob && utils_default.isSpecCompliantForm(formData);
if (!utils_default.isFunction(visitor)) {
throw new TypeError("visitor must be a function");
}
function convertValue(value) {
if (value === null) return "";
if (utils_default.isDate(value)) {
return value.toISOString();
}
if (!useBlob && utils_default.isBlob(value)) {
throw new AxiosError_default("Blob is not supported. Use a Buffer instead.");
}
if (utils_default.isArrayBuffer(value) || utils_default.isTypedArray(value)) {
return useBlob && typeof Blob === "function" ? new Blob([value]) : Buffer.from(value);
}
return value;
}
function defaultVisitor(value, key, path) {
let arr = value;
if (value && !path && typeof value === "object") {
if (utils_default.endsWith(key, "{}")) {
key = metaTokens ? key : key.slice(0, -2);
value = JSON.stringify(value);
} else if (utils_default.isArray(value) && isFlatArray(value) || (utils_default.isFileList(value) || utils_default.endsWith(key, "[]")) && (arr = utils_default.toArray(value))) {
key = removeBrackets(key);
arr.forEach(function each(el, index) {
!(utils_default.isUndefined(el) || el === null) && formData.append(
// eslint-disable-next-line no-nested-ternary
indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + "[]",
convertValue(el)
);
});
return false;
}
}
if (isVisitable(value)) {
return true;
}
formData.append(renderKey(path, key, dots), convertValue(value));
return false;
}
const stack = [];
const exposedHelpers = Object.assign(predicates, {
defaultVisitor,
convertValue,
isVisitable
});
function build(value, path) {
if (utils_default.isUndefined(value)) return;
if (stack.indexOf(value) !== -1) {
throw Error("Circular reference detected in " + path.join("."));
}
stack.push(value);
utils_default.forEach(value, function each(el, key) {
const result = !(utils_default.isUndefined(el) || el === null) && visitor.call(
formData,
el,
utils_default.isString(key) ? key.trim() : key,
path,
exposedHelpers
);
if (result === true) {
build(el, path ? path.concat(key) : [key]);
}
});
stack.pop();
}
if (!utils_default.isObject(obj)) {
throw new TypeError("data must be an object");
}
build(obj);
return formData;
}
var predicates, toFormData_default;
var init_toFormData = __esm({
"node_modules/axios/lib/helpers/toFormData.js"() {
"use strict";
init_utils();
init_AxiosError();
init_FormData();
predicates = utils_default.toFlatObject(utils_default, {}, null, function filter(prop) {
return /^is[A-Z]/.test(prop);
});
toFormData_default = toFormData;
}
});
// node_modules/axios/lib/helpers/AxiosURLSearchParams.js
function encode(str) {
const charMap = {
"!": "%21",
"'": "%27",
"(": "%28",
")": "%29",
"~": "%7E",
"%20": "+",
"%00": "\0"
};
return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
return charMap[match];
});
}
function AxiosURLSearchParams(params, options) {
this._pairs = [];
params && toFormData_default(params, this, options);
}
var prototype2, AxiosURLSearchParams_default;
var init_AxiosURLSearchParams = __esm({
"node_modules/axios/lib/helpers/AxiosURLSearchParams.js"() {
"use strict";
init_toFormData();
prototype2 = AxiosURLSearchParams.prototype;
prototype2.append = function append(name, value) {
this._pairs.push([name, value]);
};
prototype2.toString = function toString2(encoder) {
const _encode = encoder ? function(value) {
return encoder.call(this, value, encode);
} : encode;
return this._pairs.map(function each(pair) {
return _encode(pair[0]) + "=" + _encode(pair[1]);
}, "").join("&");
};
AxiosURLSearchParams_default = AxiosURLSearchParams;
}
});
// node_modules/axios/lib/helpers/buildURL.js
function encode2(val) {
return encodeURIComponent(val).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]");
}
function buildURL(url2, params, options) {
if (!params) {
return url2;
}
const _encode = options && options.encode || encode2;
if (utils_default.isFunction(options)) {
options = {
serialize: options
};
}
const serializeFn = options && options.serialize;
let serializedParams;
if (serializeFn) {
serializedParams = serializeFn(params, options);
} else {
serializedParams = utils_default.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams_default(params, options).toString(_encode);
}
if (serializedParams) {
const hashmarkIndex = url2.indexOf("#");
if (hashmarkIndex !== -1) {
url2 = url2.slice(0, hashmarkIndex);
}
url2 += (url2.indexOf("?") === -1 ? "?" : "&") + serializedParams;
}
return url2;
}
var init_buildURL = __esm({
"node_modules/axios/lib/helpers/buildURL.js"() {
"use strict";
init_utils();
init_AxiosURLSearchParams();
}
});
// node_modules/axios/lib/core/InterceptorManager.js
var InterceptorManager, InterceptorManager_default;
var init_InterceptorManager = __esm({
"node_modules/axios/lib/core/InterceptorManager.js"() {
"use strict";
init_utils();
InterceptorManager = class {
constructor() {
this.handlers = [];
}
/**
* Add a new interceptor to the stack
*
* @param {Function} fulfilled The function to handle `then` for a `Promise`
* @param {Function} rejected The function to handle `reject` for a `Promise`
*
* @return {Number} An ID used to remove interceptor later
*/
use(fulfilled, rejected, options) {
this.handlers.push({
fulfilled,
rejected,
synchronous: options ? options.synchronous : false,
runWhen: options ? options.runWhen : null
});
return this.handlers.length - 1;
}
/**
* Remove an interceptor from the stack
*
* @param {Number} id The ID that was returned by `use`
*
* @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
*/
eject(id) {
if (this.handlers[id]) {
this.handlers[id] = null;
}
}
/**
* Clear all interceptors from the stack
*
* @returns {void}
*/
clear() {
if (this.handlers) {
this.handlers = [];
}
}
/**
* Iterate over all the registered interceptors
*
* This method is particularly useful for skipping over any
* interceptors that may have become `null` calling `eject`.
*
* @param {Function} fn The function to call for each interceptor
*
* @returns {void}
*/
forEach(fn) {
utils_default.forEach(this.handlers, function forEachHandler(h) {
if (h !== null) {
fn(h);
}
});
}
};
InterceptorManager_default = InterceptorManager;
}
});
// node_modules/axios/lib/defaults/transitional.js
var transitional_default;
var init_transitional = __esm({
"node_modules/axios/lib/defaults/transitional.js"() {
"use strict";
transitional_default = {
silentJSONParsing: true,
forcedJSONParsing: true,
clarifyTimeoutError: false
};
}
});
// node_modules/axios/lib/platform/node/classes/URLSearchParams.js
var import_url, URLSearchParams_default;
var init_URLSearchParams = __esm({
"node_modules/axios/lib/platform/node/classes/URLSearchParams.js"() {
"use strict";
import_url = __toESM(require("url"), 1);
URLSearchParams_default = import_url.default.URLSearchParams;
}
});
// node_modules/axios/lib/platform/node/index.js
var import_crypto, ALPHA, DIGIT, ALPHABET, generateString, node_default;
var init_node = __esm({
"node_modules/axios/lib/platform/node/index.js"() {
import_crypto = __toESM(require("crypto"), 1);
init_URLSearchParams();
init_FormData();
ALPHA = "abcdefghijklmnopqrstuvwxyz";
DIGIT = "0123456789";
ALPHABET = {
DIGIT,
ALPHA,
ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
};
generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
let str = "";
const { length } = alphabet;
const randomValues = new Uint32Array(size);
import_crypto.default.randomFillSync(randomValues);
for (let i = 0; i < size; i++) {
str += alphabet[randomValues[i] % length];
}
return str;
};
node_default = {
isNode: true,
classes: {
URLSearchParams: URLSearchParams_default,
FormData: FormData_default,
Blob: typeof Blob !== "undefined" && Blob || null
},
ALPHABET,
generateString,
protocols: ["http", "https", "file", "data"]
};
}
});
// node_modules/axios/lib/platform/common/utils.js
var utils_exports = {};
__export(utils_exports, {
hasBrowserEnv: () => hasBrowserEnv,
hasStandardBrowserEnv: () => hasStandardBrowserEnv,
hasStandardBrowserWebWorkerEnv: () => hasStandardBrowserWebWorkerEnv,
navigator: () => _navigator,
origin: () => origin
});
var hasBrowserEnv, _navigator, hasStandardBrowserEnv, hasStandardBrowserWebWorkerEnv, origin;
var init_utils2 = __esm({
"node_modules/axios/lib/platform/common/utils.js"() {
hasBrowserEnv = typeof window !== "undefined" && typeof document !== "undefined";
_navigator = typeof navigator === "object" && navigator || void 0;
hasStandardBrowserEnv = hasBrowserEnv && (!_navigator || ["ReactNative", "NativeScript", "NS"].indexOf(_navigator.product) < 0);
hasStandardBrowserWebWorkerEnv = (() => {
return typeof WorkerGlobalScope !== "undefined" && // eslint-disable-next-line no-undef
self instanceof WorkerGlobalScope && typeof self.importScripts === "function";
})();
origin = hasBrowserEnv && window.location.href || "http://localhost";
}
});
// node_modules/axios/lib/platform/index.js
var platform_default;
var init_platform = __esm({
"node_modules/axios/lib/platform/index.js"() {
init_node();
init_utils2();
platform_default = {
...utils_exports,
...node_default
};
}
});
// node_modules/axios/lib/helpers/toURLEncodedForm.js
function toURLEncodedForm(data, options) {
return toFormData_default(data, new platform_default.classes.URLSearchParams(), Object.assign({
visitor: function(value, key, path, helpers) {
if (platform_default.isNode && utils_default.isBuffer(value)) {
this.append(key, value.toString("base64"));
return false;
}
return helpers.defaultVisitor.apply(this, arguments);
}
}, options));
}
var init_toURLEncodedForm = __esm({
"node_modules/axios/lib/helpers/toURLEncodedForm.js"() {
"use strict";
init_utils();
init_toFormData();
init_platform();
}
});
// node_modules/axios/lib/helpers/formDataToJSON.js
function parsePropPath(name) {
return utils_default.matchAll(/\w+|\[(\w*)]/g, name).map((match) => {
return match[0] === "[]" ? "" : match[1] || match[0];
});
}
function arrayToObject(arr) {
const obj = {};
const keys = Object.keys(arr);
let i;
const len = keys.length;
let key;
for (i = 0; i < len; i++) {
key = keys[i];
obj[key] = arr[key];
}
return obj;
}
function formDataToJSON(formData) {
function buildPath(path, value, target, index) {
let name = path[index++];
if (name === "__proto__") return true;
const isNumericKey = Number.isFinite(+name);
const isLast = index >= path.length;
name = !name && utils_default.isArray(target) ? target.length : name;
if (isLast) {
if (utils_default.hasOwnProp(target, name)) {
target[name] = [target[name], value];
} else {
target[name] = value;
}
return !isNumericKey;
}
if (!target[name] || !utils_default.isObject(target[name])) {
target[name] = [];
}
const result = buildPath(path, value, target[name], index);
if (result && utils_default.isArray(target[name])) {
target[name] = arrayToObject(target[name]);
}
return !isNumericKey;
}
if (utils_default.isFormData(formData) && utils_default.isFunction(formData.entries)) {
const obj = {};
utils_default.forEachEntry(formData, (name, value) => {
buildPath(parsePropPath(name), value, obj, 0);
});
return obj;
}
return null;
}
var formDataToJSON_default;
var init_formDataToJSON = __esm({
"node_modules/axios/lib/helpers/formDataToJSON.js"() {
"use strict";
init_utils();
formDataToJSON_default = formDataToJSON;
}
});
// node_modules/axios/lib/defaults/index.js
function stringifySafely(rawValue, parser, encoder) {
if (utils_default.isString(rawValue)) {
try {
(parser || JSON.parse)(rawValue);
return utils_default.trim(rawValue);
} catch (e) {
if (e.name !== "SyntaxError") {
throw e;
}
}
}
return (encoder || JSON.stringify)(rawValue);
}
var defaults, defaults_default;
var init_defaults = __esm({
"node_modules/axios/lib/defaults/index.js"() {
"use strict";
init_utils();
init_AxiosError();
init_transitional();
init_toFormData();
init_toURLEncodedForm();
init_platform();
init_formDataToJSON();
defaults = {
transitional: transitional_default,
adapter: ["xhr", "http", "fetch"],
transformRequest: [function transformRequest(data, headers) {
const contentType = headers.getContentType() || "";
const hasJSONContentType = contentType.indexOf("application/json") > -1;
const isObjectPayload = utils_default.isObject(data);
if (isObjectPayload && utils_default.isHTMLForm(data)) {
data = new FormData(data);
}
const isFormData2 = utils_default.isFormData(data);
if (isFormData2) {
return hasJSONContentType ? JSON.stringify(formDataToJSON_default(data)) : data;
}
if (utils_default.isArrayBuffer(data) || utils_default.isBuffer(data) || utils_default.isStream(data) || utils_default.isFile(data) || utils_default.isBlob(data) || utils_default.isReadableStream(data)) {
return data;
}
if (utils_default.isArrayBufferView(data)) {
return data.buffer;
}
if (utils_default.isURLSearchParams(data)) {
headers.setContentType("application/x-www-form-urlencoded;charset=utf-8", false);
return data.toString();
}
let isFileList2;
if (isObjectPayload) {
if (contentType.indexOf("application/x-www-form-urlencoded") > -1) {
return toURLEncodedForm(data, this.formSerializer).toString();
}
if ((isFileList2 = utils_default.isFileList(data)) || contentType.indexOf("multipart/form-data") > -1) {
const _FormData = this.env && this.env.FormData;
return toFormData_default(
isFileList2 ? { "files[]": data } : data,
_FormData && new _FormData(),
this.formSerializer
);
}
}
if (isObjectPayload || hasJSONContentType) {
headers.setContentType("application/json", false);
return stringifySafely(data);
}
return data;
}],
transformResponse: [function transformResponse(data) {
const transitional2 = this.transitional || defaults.transitional;
const forcedJSONParsing = transitional2 && transitional2.forcedJSONParsing;
const JSONRequested = this.responseType === "json";
if (utils_default.isResponse(data) || utils_default.isReadableStream(data)) {
return data;
}
if (data && utils_default.isString(data) && (forcedJSONParsing && !this.responseType || JSONRequested)) {
const silentJSONParsing = transitional2 && transitional2.silentJSONParsing;
const strictJSONParsing = !silentJSONParsing && JSONRequested;
try {
return JSON.parse(data);
} catch (e) {
if (strictJSONParsing) {
if (e.name === "SyntaxError") {
throw AxiosError_default.from(e, AxiosError_default.ERR_BAD_RESPONSE, this, null, this.response);
}
throw e;
}
}
}
return data;
}],
/**
* A timeout in milliseconds to abort a request. If set to 0 (default) a
* timeout is not created.
*/
timeout: 0,
xsrfCookieName: "XSRF-TOKEN",
xsrfHeaderName: "X-XSRF-TOKEN",
maxContentLength: -1,
maxBodyLength: -1,
env: {
FormData: platform_default.classes.FormData,
Blob: platform_default.classes.Blob
},
validateStatus: function validateStatus(status) {
return status >= 200 && status < 300;
},
headers: {
common: {
"Accept": "application/json, text/plain, */*",
"Content-Type": void 0
}
}
};
utils_default.forEach(["delete", "get", "head", "post", "put", "patch"], (method) => {
defaults.headers[method] = {};
});
defaults_default = defaults;
}
});
// node_modules/axios/lib/helpers/parseHeaders.js
var ignoreDuplicateOf, parseHeaders_default;
var init_parseHeaders = __esm({
"node_modules/axios/lib/helpers/parseHeaders.js"() {
"use strict";
init_utils();
ignoreDuplicateOf = utils_default.toObjectSet([
"age",
"authorization",
"content-length",
"content-type",
"etag",
"expires",
"from",
"host",
"if-modified-since",
"if-unmodified-since",
"last-modified",
"location",
"max-forwards",
"proxy-authorization",
"referer",
"retry-after",
"user-agent"
]);
parseHeaders_default = (rawHeaders) => {
const parsed = {};
let key;
let val;
let i;
rawHeaders && rawHeaders.split("\n").forEach(function parser(line) {
i = line.indexOf(":");
key = line.substring(0, i).trim().toLowerCase();
val = line.substring(i + 1).trim();
if (!key || parsed[key] && ignoreDuplicateOf[key]) {
return;
}
if (key === "set-cookie") {
if (parsed[key]) {
parsed[key].push(val);
} else {
parsed[key] = [val];
}
} else {
parsed[key] = parsed[key] ? parsed[key] + ", " + val : val;
}
});
return parsed;
};
}
});
// node_modules/axios/lib/core/AxiosHeaders.js
function normalizeHeader(header) {
return header && String(header).trim().toLowerCase();
}
function normalizeValue(value) {
if (value === false || value == null) {
return value;
}
return utils_default.isArray(value) ? value.map(normalizeValue) : String(value);
}
function parseTokens(str) {
const tokens = /* @__PURE__ */ Object.create(null);
const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
let match;
while (match = tokensRE.exec(str)) {
tokens[match[1]] = match[2];
}
return tokens;
}
function matchHeaderValue(context, value, header, filter2, isHeaderNameFilter) {
if (utils_default.isFunction(filter2)) {
return filter2.call(this, value, header);
}
if (isHeaderNameFilter) {
value = header;
}
if (!utils_default.isString(value)) return;
if (utils_default.isString(filter2)) {
return value.indexOf(filter2) !== -1;
}
if (utils_default.isRegExp(filter2)) {
return filter2.test(value);
}
}
function formatHeader(header) {
return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
return char.toUpperCase() + str;
});
}
function buildAccessors(obj, header) {
const accessorName = utils_default.toCamelCase(" " + header);
["get", "set", "has"].forEach((methodName) => {
Object.defineProperty(obj, methodName + accessorName, {
value: function(arg1, arg2, arg3) {
return this[methodName].call(this, header, arg1, arg2, arg3);
},
configurable: true
});
});
}
var $internals, isValidHeaderName, AxiosHeaders, AxiosHeaders_default;
var init_AxiosHeaders = __esm({
"node_modules/axios/lib/core/AxiosHeaders.js"() {
"use strict";
init_utils();
init_parseHeaders();
$internals = Symbol("internals");
isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
AxiosHeaders = class {
constructor(headers) {
headers && this.set(headers);
}
set(header, valueOrRewrite, rewrite) {
const self2 = this;
function setHeader(_value, _header, _rewrite) {
const lHeader = normalizeHeader(_header);
if (!lHeader) {
throw new Error("header name must be a non-empty string");
}
const key = utils_default.findKey(self2, lHeader);
if (!key || self2[key] === void 0 || _rewrite === true || _rewrite === void 0 && self2[key] !== false) {
self2[key || _header] = normalizeValue(_value);
}
}
const setHeaders = (headers, _rewrite) => utils_default.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
if (utils_default.isPlainObject(header) || header instanceof this.constructor) {
setHeaders(header, valueOrRewrite);
} else if (utils_default.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
setHeaders(parseHeaders_default(header), valueOrRewrite);
} else if (utils_default.isHeaders(header)) {
for (const [key, value] of header.entries()) {
setHeader(value, key, rewrite);
}
} else {
header != null && setHeader(valueOrRewrite, header, rewrite);
}
return this;
}
get(header, parser) {
header = normalizeHeader(header);
if (header) {
const key = utils_default.findKey(this, header);
if (key) {
const value = this[key];
if (!parser) {
return value;
}
if (parser === true) {
return parseTokens(value);
}
if (utils_default.isFunction(parser)) {
return parser.call(this, value, key);
}
if (utils_default.isRegExp(parser)) {
return parser.exec(value);
}
throw new TypeError("parser must be boolean|regexp|function");
}
}
}
has(header, matcher) {
header = normalizeHeader(header);
if (header) {
const key = utils_default.findKey(this, header);
return !!(key && this[key] !== void 0 && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
}
return false;
}
delete(header, matcher) {
const self2 = this;
let deleted = false;
function deleteHeader(_header) {
_header = normalizeHeader(_header);
if (_header) {
const key = utils_default.findKey(self2, _header);
if (key && (!matcher || matchHeaderValue(self2, self2[key], key, matcher))) {
delete self2[key];
deleted = true;
}
}
}
if (utils_default.isArray(header)) {
header.forEach(deleteHeader);
} else {
deleteHeader(header);
}
return deleted;
}
clear(matcher) {
const keys = Object.keys(this);
let i = keys.length;
let deleted = false;
while (i--) {
const key = keys[i];
if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
delete this[key];
deleted = true;
}
}
return deleted;
}
normalize(format) {
const self2 = this;
const headers = {};
utils_default.forEach(this, (value, header) => {
const key = utils_default.findKey(headers, header);
if (key) {
self2[key] = normalizeValue(value);
delete self2[header];
return;
}
const normalized = format ? formatHeader(header) : String(header).trim();
if (normalized !== header) {
delete self2[header];
}
self2[normalized] = normalizeValue(value);
headers[normalized] = true;
});
return this;
}
concat(...targets) {
return this.constructor.concat(this, ...targets);
}
toJSON(asStrings) {
const obj = /* @__PURE__ */ Object.create(null);
utils_default.forEach(this, (value, header) => {
value != null && value !== false && (obj[header] = asStrings && utils_default.isArray(value) ? value.join(", ") : value);
});
return obj;
}
[Symbol.iterator]() {
return Object.entries(this.toJSON())[Symbol.iterator]();
}
toString() {
return Object.entries(this.toJSON()).map(([header, value]) => header + ": " + value).join("\n");
}
get [Symbol.toStringTag]() {
return "AxiosHeaders";
}
static from(thing) {
return thing instanceof this ? thing : new this(thing);
}
static concat(first, ...targets) {
const computed = new this(first);
targets.forEach((target) => computed.set(target));
return computed;
}
static accessor(header) {
const internals = this[$internals] = this[$internals] = {
accessors: {}
};
const accessors = internals.accessors;
const prototype3 = this.prototype;
function defineAccessor(_header) {
const lHeader = normalizeHeader(_header);
if (!accessors[lHeader]) {
buildAccessors(prototype3, _header);
accessors[lHeader] = true;
}
}
utils_default.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
return this;
}
};
AxiosHeaders.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]);
utils_default.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {
let mapped = key[0].toUpperCase() + key.slice(1);
return {
get: () => value,
set(headerValue) {
this[mapped] = headerValue;
}
};
});
utils_default.freezeMethods(AxiosHeaders);
AxiosHeaders_default = AxiosHeaders;
}
});
// node_modules/axios/lib/core/transformData.js
function transformData(fns, response) {
const config = this || defaults_default;
const context = response || config;
const headers = AxiosHeaders_default.from(context.headers);
let data = context.data;
utils_default.forEach(fns, function transform(fn) {
data = fn.call(config, data, headers.normalize(), response ? response.status : void 0);
});
headers.normalize();
return data;
}
var init_transformData = __esm({
"node_modules/axios/lib/core/transformData.js"() {
"use strict";
init_utils();
init_defaults();
init_AxiosHeaders();
}
});
// node_modules/axios/lib/cancel/isCancel.js
function isCancel(value) {
return !!(value && value.__CANCEL__);
}
var init_isCancel = __esm({
"node_modules/axios/lib/cancel/isCancel.js"() {
"use strict";
}
});
// node_modules/axios/lib/cancel/CanceledError.js
function CanceledError(message, config, request) {
AxiosError_default.call(this, message == null ? "canceled" : message, AxiosError_default.ERR_CANCELED, config, request);
this.name = "CanceledError";
}
var CanceledError_default;
var init_CanceledError = __esm({
"node_modules/axios/lib/cancel/CanceledError.js"() {
"use strict";
init_AxiosError();
init_utils();
utils_default.inherits(CanceledError, AxiosError_default, {
__CANCEL__: true
});
CanceledError_default = CanceledError;
}
});
// node_modules/axios/lib/core/settle.js
function settle(resolve, reject, response) {
const validateStatus2 = response.config.validateStatus;
if (!response.status || !validateStatus2 || validateStatus2(response.status)) {
resolve(response);
} else {
reject(new AxiosError_default(
"Request failed with status code " + response.status,
[AxiosError_default.ERR_BAD_REQUEST, AxiosError_default.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
response.config,
response.request,
response
));
}
}
var init_settle = __esm({
"node_modules/axios/lib/core/settle.js"() {
"use strict";
init_AxiosError();
}
});
// node_modules/axios/lib/helpers/isAbsoluteURL.js
function isAbsoluteURL(url2) {
return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url2);
}
var init_isAbsoluteURL = __esm({
"node_modules/axios/lib/helpers/isAbsoluteURL.js"() {
"use strict";
}
});
// node_modules/axios/lib/helpers/combineURLs.js
function combineURLs(baseURL, relativeURL) {
return relativeURL ? baseURL.replace(/\/?\/$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL;
}
var init_combineURLs = __esm({
"node_modules/axios/lib/helpers/combineURLs.js"() {
"use strict";
}
});
// node_modules/axios/lib/core/buildFullPath.js
function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
let isRelativeUrl = !isAbsoluteURL(requestedURL);
if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {
return combineURLs(baseURL, requestedURL);
}
return requestedURL;
}
var init_buildFullPath = __esm({
"node_modules/axios/lib/core/buildFullPath.js"() {
"use strict";
init_isAbsoluteURL();
init_combineURLs();
}
});
// node_modules/proxy-from-env/index.js
var require_proxy_from_env = __commonJS({
"node_modules/proxy-from-env/index.js"(exports2) {
"use strict";
var parseUrl = require("url").parse;
var DEFAULT_PORTS = {
ftp: 21,
gopher: 70,
http: 80,
https: 443,
ws: 80,
wss: 443
};
var stringEndsWith = String.prototype.endsWith || function(s) {
return s.length <= this.length && this.indexOf(s, this.length - s.length) !== -1;
};
function getProxyForUrl(url2) {
var parsedUrl = typeof url2 === "string" ? parseUrl(url2) : url2 || {};
var proto = parsedUrl.protocol;
var hostname = parsedUrl.host;
var port = parsedUrl.port;
if (typeof hostname !== "string" || !hostname || typeof proto !== "string") {
return "";
}
proto = proto.split(":", 1)[0];
hostname = hostname.replace(/:\d*$/, "");
port = parseInt(port) || DEFAULT_PORTS[proto] || 0;
if (!shouldProxy(hostname, port)) {
return "";
}
var proxy = getEnv("npm_config_" + proto + "_proxy") || getEnv(proto + "_proxy") || getEnv("npm_config_proxy") || getEnv("all_proxy");
if (proxy && proxy.indexOf("://") === -1) {
proxy = proto + "://" + proxy;
}
return proxy;
}
function shouldProxy(hostname, port) {
var NO_PROXY = (getEnv("npm_config_no_proxy") || getEnv("no_proxy")).toLowerCase();
if (!NO_PROXY) {
return true;
}
if (NO_PROXY === "*") {
return false;
}
return NO_PROXY.split(/[,\s]/).every(function(proxy) {
if (!proxy) {
return true;
}
var parsedProxy = proxy.match(/^(.+):(\d+)$/);
var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;
var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;
if (parsedProxyPort && parsedProxyPort !== port) {
return true;
}
if (!/^[.*]/.test(parsedProxyHostname)) {
return hostname !== parsedProxyHostname;
}
if (parsedProxyHostname.charAt(0) === "*") {
parsedProxyHostname = parsedProxyHostname.slice(1);
}
return !stringEndsWith.call(hostname, parsedProxyHostname);
});
}
function getEnv(key) {
return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || "";
}
exports2.getProxyForUrl = getProxyForUrl;
}
});
// node_modules/ms/index.js
var require_ms = __commonJS({
"node_modules/ms/index.js"(exports2, module2) {
var s = 1e3;
var m = s * 60;
var h = m * 60;
var d = h * 24;
var y = d * 365.25;
module2.exports = function(val, options) {
options = options || {};
var type = typeof val;
if (type === "string" && val.length > 0) {
return parse(val);
} else if (type === "number" && isNaN(val) === false) {
return options.long ? fmtLong(val) : fmtShort(val);
}
throw new Error(
"val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
);
};
function parse(str) {
str = String(str);
if (str.length > 100) {
return;
}
var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
str
);
if (!match) {
return;
}
var n = parseFloat(match[1]);
var type = (match[2] || "ms").toLowerCase();
switch (type) {
case "years":
case "year":
case "yrs":
case "yr":
case "y":
return n * y;
case "days":
case "day":
case "d":
return n * d;
case "hours":
case "hour":
case "hrs":
case "hr":
case "h":
return n * h;
case "minutes":
case "minute":
case "mins":
case "min":
case "m":
return n * m;
case "seconds":
case "second":
case "secs":
case "sec":
case "s":
return n * s;
case "milliseconds":
case "millisecond":
case "msecs":
case "msec":
case "ms":
return n;
default:
return void 0;
}
}
function fmtShort(ms) {
if (ms >= d) {
return Math.round(ms / d) + "d";
}
if (ms >= h) {
return Math.round(ms / h) + "h";
}
if (ms >= m) {
return Math.round(ms / m) + "m";
}
if (ms >= s) {
return Math.round(ms / s) + "s";
}
return ms + "ms";
}
function fmtLong(ms) {
return plural(ms, d, "day") || plural(ms, h, "hour") || plural(ms, m, "minute") || plural(ms, s, "second") || ms + " ms";
}
function plural(ms, n, name) {
if (ms < n) {
return;
}
if (ms < n * 1.5) {
return Math.floor(ms / n) + " " + name;
}
return Math.ceil(ms / n) + " " + name + "s";
}
}
});
// node_modules/debug/src/debug.js
var require_debug = __commonJS({
"node_modules/debug/src/debug.js"(exports2, module2) {
exports2 = module2.exports = createDebug.debug = createDebug["default"] = createDebug;
exports2.coerce = coerce3;
exports2.disable = disable;
exports2.enable = enable;
exports2.enabled = enabled;
exports2.humanize = require_ms();
exports2.names = [];
exports2.skips = [];
exports2.formatters = {};
var prevTime;
function selectColor(namespace) {
var hash = 0, i;
for (i in namespace) {
hash = (hash << 5) - hash + namespace.charCodeAt(i);
hash |= 0;
}
return exports2.colors[Math.abs(hash) % exports2.colors.length];
}
function createDebug(namespace) {
function debug() {
if (!debug.enabled) return;
var self2 = debug;
var curr = +/* @__PURE__ */ new Date();
var ms = curr - (prevTime || curr);
self2.diff = ms;
self2.prev = prevTime;
self2.curr = curr;
prevTime = curr;
var args = new Array(arguments.length);
for (var i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
args[0] = exports2.coerce(args[0]);
if ("string" !== typeof args[0]) {
args.unshift("%O");
}
var index = 0;
args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
if (match === "%%") return match;
index++;
var formatter = exports2.formatters[format];
if ("function" === typeof formatter) {
var val = args[index];
match = formatter.call(self2, val);
args.splice(index, 1);
index--;
}
return match;
});
exports2.formatArgs.call(self2, args);
var logFn = debug.log || exports2.log || console.log.bind(console);
logFn.apply(self2, args);
}
debug.namespace = namespace;
debug.enabled = exports2.enabled(namespace);
debug.useColors = exports2.useColors();
debug.color = selectColor(namespace);
if ("function" === typeof exports2.init) {
exports2.init(debug);
}
return debug;
}
function enable(namespaces) {
exports2.save(namespaces);
exports2.names = [];
exports2.skips = [];
var split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
var len = split.length;
for (var i = 0; i < len; i++) {
if (!split[i]) continue;
namespaces = split[i].replace(/\*/g, ".*?");
if (namespaces[0] === "-") {
exports2.skips.push(new RegExp("^" + namespaces.substr(1) + "$"));
} else {
exports2.names.push(new RegExp("^" + namespaces + "$"));
}
}
}
function disable() {
exports2.enable("");
}
function enabled(name) {
var i, len;
for (i = 0, len = exports2.skips.length; i < len; i++) {
if (exports2.skips[i].test(name)) {
return false;
}
}
for (i = 0, len = exports2.names.length; i < len; i++) {
if (exports2.names[i].test(name)) {
return true;
}
}
return false;
}
function coerce3(val) {
if (val instanceof Error) return val.stack || val.message;
return val;
}
}
});
// node_modules/debug/src/browser.js
var require_browser = __commonJS({
"node_modules/debug/src/browser.js"(exports2, module2) {
exports2 = module2.exports = require_debug();
exports2.log = log;
exports2.formatArgs = formatArgs;
exports2.save = save;
exports2.load = load;
exports2.useColors = useColors;
exports2.storage = "undefined" != typeof chrome && "undefined" != typeof chrome.storage ? chrome.storage.local : localstorage();
exports2.colors = [
"lightseagreen",
"forestgreen",
"goldenrod",
"dodgerblue",
"darkorchid",
"crimson"
];
function useColors() {
if (typeof window !== "undefined" && window.process && window.process.type === "renderer") {
return true;
}
return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // is firebug? http://stackoverflow.com/a/398120/376773
typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // is firefox >= v31?
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // double check webkit in userAgent just in case we are in a worker
typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
}
exports2.formatters.j = function(v) {
try {
return JSON.stringify(v);
} catch (err2) {
return "[UnexpectedJSONParseError]: " + err2.message;
}
};
function formatArgs(args) {
var useColors2 = this.useColors;
args[0] = (useColors2 ? "%c" : "") + this.namespace + (useColors2 ? " %c" : " ") + args[0] + (useColors2 ? "%c " : " ") + "+" + exports2.humanize(this.diff);
if (!useColors2) return;
var c = "color: " + this.color;
args.splice(1, 0, c, "color: inherit");
var index = 0;
var lastC = 0;
args[0].replace(/%[a-zA-Z%]/g, function(match) {
if ("%%" === match) return;
index++;
if ("%c" === match) {
lastC = index;
}
});
args.splice(lastC, 0, c);
}
function log() {
return "object" === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);
}
function save(namespaces) {
try {
if (null == namespaces) {
exports2.storage.removeItem("debug");
} else {
exports2.storage.debug = namespaces;
}
} catch (e) {
}
}
function load() {
var r;
try {
r = exports2.storage.debug;
} catch (e) {
}
if (!r && typeof process !== "undefined" && "env" in process) {
r = process.env.DEBUG;
}
return r;
}
exports2.enable(load());
function localstorage() {
try {
return window.localStorage;
} catch (e) {
}
}
}
});
// node_modules/debug/src/node.js
var require_node = __commonJS({
"node_modules/debug/src/node.js"(exports2, module2) {
var tty = require("tty");
var util5 = require("util");
exports2 = module2.exports = require_debug();
exports2.init = init;
exports2.log = log;
exports2.formatArgs = formatArgs;
exports2.save = save;
exports2.load = load;
exports2.useColors = useColors;
exports2.colors = [6, 2, 3, 4, 5, 1];
exports2.inspectOpts = Object.keys(process.env).filter(function(key) {
return /^debug_/i.test(key);
}).reduce(function(obj, key) {
var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function(_, k) {
return k.toUpperCase();
});
var val = process.env[key];
if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
else if (val === "null") val = null;
else val = Number(val);
obj[prop] = val;
return obj;
}, {});
var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
if (1 !== fd && 2 !== fd) {
util5.deprecate(function() {
}, "except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();
}
var stream4 = 1 === fd ? process.stdout : 2 === fd ? process.stderr : createWritableStdioStream(fd);
function useColors() {
return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(fd);
}
exports2.formatters.o = function(v) {
this.inspectOpts.colors = this.useColors;
return util5.inspect(v, this.inspectOpts).split("\n").map(function(str) {
return str.trim();
}).join(" ");
};
exports2.formatters.O = function(v) {
this.inspectOpts.colors = this.useColors;
return util5.inspect(v, this.inspectOpts);
};
function formatArgs(args) {
var name = this.namespace;
var useColors2 = this.useColors;
if (useColors2) {
var c = this.color;
var prefix = " \x1B[3" + c + ";1m" + name + " \x1B[0m";
args[0] = prefix + args[0].split("\n").join("\n" + prefix);
args.push("\x1B[3" + c + "m+" + exports2.humanize(this.diff) + "\x1B[0m");
} else {
args[0] = (/* @__PURE__ */ new Date()).toUTCString() + " " + name + " " + args[0];
}
}
function log() {
return stream4.write(util5.format.apply(util5, arguments) + "\n");
}
function save(namespaces) {
if (null == namespaces) {
delete process.env.DEBUG;
} else {
process.env.DEBUG = namespaces;
}
}
function load() {
return process.env.DEBUG;
}
function createWritableStdioStream(fd2) {
var stream5;
var tty_wrap = process.binding("tty_wrap");
switch (tty_wrap.guessHandleType(fd2)) {
case "TTY":
stream5 = new tty.WriteStream(fd2);
stream5._type = "tty";
if (stream5._handle && stream5._handle.unref) {
stream5._handle.unref();
}
break;
case "FILE":
var fs = require("fs");
stream5 = new fs.SyncWriteStream(fd2, { autoClose: false });
stream5._type = "fs";
break;
case "PIPE":
case "TCP":
var net = require("net");
stream5 = new net.Socket({
fd: fd2,
readable: false,
writable: true
});
stream5.readable = false;
stream5.read = null;
stream5._type = "pipe";
if (stream5._handle && stream5._handle.unref) {
stream5._handle.unref();
}
break;
default:
throw new Error("Implement me. Unknown stream file type!");
}
stream5.fd = fd2;
stream5._isStdio = true;
return stream5;
}
function init(debug) {
debug.inspectOpts = {};
var keys = Object.keys(exports2.inspectOpts);
for (var i = 0; i < keys.length; i++) {
debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]];
}
}
exports2.enable(load());
}
});
// node_modules/debug/src/index.js
var require_src = __commonJS({
"node_modules/debug/src/index.js"(exports2, module2) {
if (typeof process !== "undefined" && process.type === "renderer") {
module2.exports = require_browser();
} else {
module2.exports = require_node();
}
}
});
// node_modules/follow-redirects/debug.js
var require_debug2 = __commonJS({
"node_modules/follow-redirects/debug.js"(exports2, module2) {
var debug;
module2.exports = function() {
if (!debug) {
try {
debug = require_src()("follow-redirects");
} catch (error) {
}
if (typeof debug !== "function") {
debug = function() {
};
}
}
debug.apply(null, arguments);
};
}
});
// node_modules/follow-redirects/index.js
var require_follow_redirects = __commonJS({
"node_modules/follow-redirects/index.js"(exports2, module2) {
var url2 = require("url");
var URL2 = url2.URL;
var http2 = require("http");
var https2 = require("https");
var Writable = require("stream").Writable;
var assert = require("assert");
var debug = require_debug2();
(function detectUnsupportedEnvironment() {
var looksLikeNode = typeof process !== "undefined";
var looksLikeBrowser = typeof window !== "undefined" && typeof document !== "undefined";
var looksLikeV8 = isFunction2(Error.captureStackTrace);
if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {
console.warn("The follow-redirects package should be excluded from browser builds.");
}
})();
var useNativeURL = false;
try {
assert(new URL2(""));
} catch (error) {
useNativeURL = error.code === "ERR_INVALID_URL";
}
var preservedUrlFields = [
"auth",
"host",
"hostname",
"href",
"path",
"pathname",
"port",
"protocol",
"query",
"search",
"hash"
];
var events = ["abort", "aborted", "connect", "error", "socket", "timeout"];
var eventHandlers = /* @__PURE__ */ Object.create(null);
events.forEach(function(event) {
eventHandlers[event] = function(arg1, arg2, arg3) {
this._redirectable.emit(event, arg1, arg2, arg3);
};
});
var InvalidUrlError = createErrorType(
"ERR_INVALID_URL",
"Invalid URL",
TypeError
);
var RedirectionError = createErrorType(
"ERR_FR_REDIRECTION_FAILURE",
"Redirected request failed"
);
var TooManyRedirectsError = createErrorType(
"ERR_FR_TOO_MANY_REDIRECTS",
"Maximum number of redirects exceeded",
RedirectionError
);
var MaxBodyLengthExceededError = createErrorType(
"ERR_FR_MAX_BODY_LENGTH_EXCEEDED",
"Request body larger than maxBodyLength limit"
);
var WriteAfterEndError = createErrorType(
"ERR_STREAM_WRITE_AFTER_END",
"write after end"
);
var destroy = Writable.prototype.destroy || noop2;
function RedirectableRequest(options, responseCallback) {
Writable.call(this);
this._sanitizeOptions(options);
this._options = options;
this._ended = false;
this._ending = false;
this._redirectCount = 0;
this._redirects = [];
this._requestBodyLength = 0;
this._requestBodyBuffers = [];
if (responseCallback) {
this.on("response", responseCallback);
}
var self2 = this;
this._onNativeResponse = function(response) {
try {
self2._processResponse(response);
} catch (cause) {
self2.emit("error", cause instanceof RedirectionError ? cause : new RedirectionError({ cause }));
}
};
this._performRequest();
}
RedirectableRequest.prototype = Object.create(Writable.prototype);
RedirectableRequest.prototype.abort = function() {
destroyRequest(this._currentRequest);
this._currentRequest.abort();
this.emit("abort");
};
RedirectableRequest.prototype.destroy = function(error) {
destroyRequest(this._currentRequest, error);
destroy.call(this, error);
return this;
};
RedirectableRequest.prototype.write = function(data, encoding, callback) {
if (this._ending) {
throw new WriteAfterEndError();
}
if (!isString2(data) && !isBuffer2(data)) {
throw new TypeError("data should be a string, Buffer or Uint8Array");
}
if (isFunction2(encoding)) {
callback = encoding;
encoding = null;
}
if (data.length === 0) {
if (callback) {
callback();
}
return;
}
if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {
this._requestBodyLength += data.length;
this._requestBodyBuffers.push({ data, encoding });
this._currentRequest.write(data, encoding, callback);
} else {
this.emit("error", new MaxBodyLengthExceededError());
this.abort();
}
};
RedirectableRequest.prototype.end = function(data, encoding, callback) {
if (isFunction2(data)) {
callback = data;
data = encoding = null;
} else if (isFunction2(encoding)) {
callback = encoding;
encoding = null;
}
if (!data) {
this._ended = this._ending = true;
this._currentRequest.end(null, null, callback);
} else {
var self2 = this;
var currentRequest = this._currentRequest;
this.write(data, encoding, function() {
self2._ended = true;
currentRequest.end(null, null, callback);
});
this._ending = true;
}
};
RedirectableRequest.prototype.setHeader = function(name, value) {
this._options.headers[name] = value;
this._currentRequest.setHeader(name, value);
};
RedirectableRequest.prototype.removeHeader = function(name) {
delete this._options.headers[name];
this._currentRequest.removeHeader(name);
};
RedirectableRequest.prototype.setTimeout = function(msecs, callback) {
var self2 = this;
function destroyOnTimeout(socket) {
socket.setTimeout(msecs);
socket.removeListener("timeout", socket.destroy);
socket.addListener("timeout", socket.destroy);
}
function startTimer(socket) {
if (self2._timeout) {
clearTimeout(self2._timeout);
}
self2._timeout = setTimeout(function() {
self2.emit("timeout");
clearTimer();
}, msecs);
destroyOnTimeout(socket);
}
function clearTimer() {
if (self2._timeout) {
clearTimeout(self2._timeout);
self2._timeout = null;
}
self2.removeListener("abort", clearTimer);
self2.removeListener("error", clearTimer);
self2.removeListener("response", clearTimer);
self2.removeListener("close", clearTimer);
if (callback) {
self2.removeListener("timeout", callback);
}
if (!self2.socket) {
self2._currentRequest.removeListener("socket", startTimer);
}
}
if (callback) {
this.on("timeout", callback);
}
if (this.socket) {
startTimer(this.socket);
} else {
this._currentRequest.once("socket", startTimer);
}
this.on("socket", destroyOnTimeout);
this.on("abort", clearTimer);
this.on("error", clearTimer);
this.on("response", clearTimer);
this.on("close", clearTimer);
return this;
};
[
"flushHeaders",
"getHeader",
"setNoDelay",
"setSocketKeepAlive"
].forEach(function(method) {
RedirectableRequest.prototype[method] = function(a, b) {
return this._currentRequest[method](a, b);
};
});
["aborted", "connection", "socket"].forEach(function(property) {
Object.defineProperty(RedirectableRequest.prototype, property, {
get: function() {
return this._currentRequest[property];
}
});
});
RedirectableRequest.prototype._sanitizeOptions = function(options) {
if (!options.headers) {
options.headers = {};
}
if (options.host) {
if (!options.hostname) {
options.hostname = options.host;
}
delete options.host;
}
if (!options.pathname && options.path) {
var searchPos = options.path.indexOf("?");
if (searchPos < 0) {
options.pathname = options.path;
} else {
options.pathname = options.path.substring(0, searchPos);
options.search = options.path.substring(searchPos);
}
}
};
RedirectableRequest.prototype._performRequest = function() {
var protocol = this._options.protocol;
var nativeProtocol = this._options.nativeProtocols[protocol];
if (!nativeProtocol) {
throw new TypeError("Unsupported protocol " + protocol);
}
if (this._options.agents) {
var scheme = protocol.slice(0, -1);
this._options.agent = this._options.agents[scheme];
}
var request = this._currentRequest = nativeProtocol.request(this._options, this._onNativeResponse);
request._redirectable = this;
for (var event of events) {
request.on(event, eventHandlers[event]);
}
this._currentUrl = /^\//.test(this._options.path) ? url2.format(this._options) : (
// When making a request to a proxy, […]
// a client MUST send the target URI in absolute-form […].
this._options.path
);
if (this._isRedirect) {
var i = 0;
var self2 = this;
var buffers = this._requestBodyBuffers;
(function writeNext(error) {
if (request === self2._currentRequest) {
if (error) {
self2.emit("error", error);
} else if (i < buffers.length) {
var buffer = buffers[i++];
if (!request.finished) {
request.write(buffer.data, buffer.encoding, writeNext);
}
} else if (self2._ended) {
request.end();
}
}
})();
}
};
RedirectableRequest.prototype._processResponse = function(response) {
var statusCode = response.statusCode;
if (this._options.trackRedirects) {
this._redirects.push({
url: this._currentUrl,
headers: response.headers,
statusCode
});
}
var location = response.headers.location;
if (!location || this._options.followRedirects === false || statusCode < 300 || statusCode >= 400) {
response.responseUrl = this._currentUrl;
response.redirects = this._redirects;
this.emit("response", response);
this._requestBodyBuffers = [];
return;
}
destroyRequest(this._currentRequest);
response.destroy();
if (++this._redirectCount > this._options.maxRedirects) {
throw new TooManyRedirectsError();
}
var requestHeaders;
var beforeRedirect = this._options.beforeRedirect;
if (beforeRedirect) {
requestHeaders = Object.assign({
// The Host header was set by nativeProtocol.request
Host: response.req.getHeader("host")
}, this._options.headers);
}
var method = this._options.method;
if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" || // RFC7231§6.4.4: The 303 (See Other) status code indicates that
// the server is redirecting the user agent to a different resource […]
// A user agent can perform a retrieval request targeting that URI
// (a GET or HEAD request if using HTTP) […]
statusCode === 303 && !/^(?:GET|HEAD)$/.test(this._options.method)) {
this._options.method = "GET";
this._requestBodyBuffers = [];
removeMatchingHeaders(/^content-/i, this._options.headers);
}
var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);
var currentUrlParts = parseUrl(this._currentUrl);
var currentHost = currentHostHeader || currentUrlParts.host;
var currentUrl = /^\w+:/.test(location) ? this._currentUrl : url2.format(Object.assign(currentUrlParts, { host: currentHost }));
var redirectUrl = resolveUrl(location, currentUrl);
debug("redirecting to", redirectUrl.href);
this._isRedirect = true;
spreadUrlObject(redirectUrl, this._options);
if (redirectUrl.protocol !== currentUrlParts.protocol && redirectUrl.protocol !== "https:" || redirectUrl.host !== currentHost && !isSubdomain(redirectUrl.host, currentHost)) {
removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);
}
if (isFunction2(beforeRedirect)) {
var responseDetails = {
headers: response.headers,
statusCode
};
var requestDetails = {
url: currentUrl,
method,
headers: requestHeaders
};
beforeRedirect(this._options, responseDetails, requestDetails);
this._sanitizeOptions(this._options);
}
this._performRequest();
};
function wrap(protocols) {
var exports3 = {
maxRedirects: 21,
maxBodyLength: 10 * 1024 * 1024
};
var nativeProtocols = {};
Object.keys(protocols).forEach(function(scheme) {
var protocol = scheme + ":";
var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];
var wrappedProtocol = exports3[scheme] = Object.create(nativeProtocol);
function request(input, options, callback) {
if (isURL(input)) {
input = spreadUrlObject(input);
} else if (isString2(input)) {
input = spreadUrlObject(parseUrl(input));
} else {
callback = options;
options = validateUrl(input);
input = { protocol };
}
if (isFunction2(options)) {
callback = options;
options = null;
}
options = Object.assign({
maxRedirects: exports3.maxRedirects,
maxBodyLength: exports3.maxBodyLength
}, input, options);
options.nativeProtocols = nativeProtocols;
if (!isString2(options.host) && !isString2(options.hostname)) {
options.hostname = "::1";
}
assert.equal(options.protocol, protocol, "protocol mismatch");
debug("options", options);
return new RedirectableRequest(options, callback);
}
function get(input, options, callback) {
var wrappedRequest = wrappedProtocol.request(input, options, callback);
wrappedRequest.end();
return wrappedRequest;
}
Object.defineProperties(wrappedProtocol, {
request: { value: request, configurable: true, enumerable: true, writable: true },
get: { value: get, configurable: true, enumerable: true, writable: true }
});
});
return exports3;
}
function noop2() {
}
function parseUrl(input) {
var parsed;
if (useNativeURL) {
parsed = new URL2(input);
} else {
parsed = validateUrl(url2.parse(input));
if (!isString2(parsed.protocol)) {
throw new InvalidUrlError({ input });
}
}
return parsed;
}
function resolveUrl(relative, base) {
return useNativeURL ? new URL2(relative, base) : parseUrl(url2.resolve(base, relative));
}
function validateUrl(input) {
if (/^\[/.test(input.hostname) && !/^\[[:0-9a-f]+\]$/i.test(input.hostname)) {
throw new InvalidUrlError({ input: input.href || input });
}
if (/^\[/.test(input.host) && !/^\[[:0-9a-f]+\](:\d+)?$/i.test(input.host)) {
throw new InvalidUrlError({ input: input.href || input });
}
return input;
}
function spreadUrlObject(urlObject, target) {
var spread3 = target || {};
for (var key of preservedUrlFields) {
spread3[key] = urlObject[key];
}
if (spread3.hostname.startsWith("[")) {
spread3.hostname = spread3.hostname.slice(1, -1);
}
if (spread3.port !== "") {
spread3.port = Number(spread3.port);
}
spread3.path = spread3.search ? spread3.pathname + spread3.search : spread3.pathname;
return spread3;
}
function removeMatchingHeaders(regex, headers) {
var lastValue;
for (var header in headers) {
if (regex.test(header)) {
lastValue = headers[header];
delete headers[header];
}
}
return lastValue === null || typeof lastValue === "undefined" ? void 0 : String(lastValue).trim();
}
function createErrorType(code, message, baseClass) {
function CustomError(properties) {
if (isFunction2(Error.captureStackTrace)) {
Error.captureStackTrace(this, this.constructor);
}
Object.assign(this, properties || {});
this.code = code;
this.message = this.cause ? message + ": " + this.cause.message : message;
}
CustomError.prototype = new (baseClass || Error)();
Object.defineProperties(CustomError.prototype, {
constructor: {
value: CustomError,
enumerable: false
},
name: {
value: "Error [" + code + "]",
enumerable: false
}
});
return CustomError;
}
function destroyRequest(request, error) {
for (var event of events) {
request.removeListener(event, eventHandlers[event]);
}
request.on("error", noop2);
request.destroy(error);
}
function isSubdomain(subdomain, domain) {
assert(isString2(subdomain) && isString2(domain));
var dot = subdomain.length - domain.length - 1;
return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain);
}
function isString2(value) {
return typeof value === "string" || value instanceof String;
}
function isFunction2(value) {
return typeof value === "function";
}
function isBuffer2(value) {
return typeof value === "object" && "length" in value;
}
function isURL(value) {
return URL2 && value instanceof URL2;
}
module2.exports = wrap({ http: http2, https: https2 });
module2.exports.wrap = wrap;
}
});
// node_modules/axios/lib/env/data.js
var VERSION;
var init_data = __esm({
"node_modules/axios/lib/env/data.js"() {
VERSION = "1.8.4";
}
});
// node_modules/axios/lib/helpers/parseProtocol.js
function parseProtocol(url2) {
const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url2);
return match && match[1] || "";
}
var init_parseProtocol = __esm({
"node_modules/axios/lib/helpers/parseProtocol.js"() {
"use strict";
}
});
// node_modules/axios/lib/helpers/fromDataURI.js
function fromDataURI(uri, asBlob, options) {
const _Blob = options && options.Blob || platform_default.classes.Blob;
const protocol = parseProtocol(uri);
if (asBlob === void 0 && _Blob) {
asBlob = true;
}
if (protocol === "data") {
uri = protocol.length ? uri.slice(protocol.length + 1) : uri;
const match = DATA_URL_PATTERN.exec(uri);
if (!match) {
throw new AxiosError_default("Invalid URL", AxiosError_default.ERR_INVALID_URL);
}
const mime = match[1];
const isBase64 = match[2];
const body = match[3];
const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? "base64" : "utf8");
if (asBlob) {
if (!_Blob) {
throw new AxiosError_default("Blob is not supported", AxiosError_default.ERR_NOT_SUPPORT);
}
return new _Blob([buffer], { type: mime });
}
return buffer;
}
throw new AxiosError_default("Unsupported protocol " + protocol, AxiosError_default.ERR_NOT_SUPPORT);
}
var DATA_URL_PATTERN;
var init_fromDataURI = __esm({
"node_modules/axios/lib/helpers/fromDataURI.js"() {
"use strict";
init_AxiosError();
init_parseProtocol();
init_platform();
DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;
}
});
// node_modules/axios/lib/helpers/AxiosTransformStream.js
var import_stream, kInternals, AxiosTransformStream, AxiosTransformStream_default;
var init_AxiosTransformStream = __esm({
"node_modules/axios/lib/helpers/AxiosTransformStream.js"() {
"use strict";
import_stream = __toESM(require("stream"), 1);
init_utils();
kInternals = Symbol("internals");
AxiosTransformStream = class extends import_stream.default.Transform {
constructor(options) {
options = utils_default.toFlatObject(options, {
maxRate: 0,
chunkSize: 64 * 1024,
minChunkSize: 100,
timeWindow: 500,
ticksRate: 2,
samplesCount: 15
}, null, (prop, source) => {
return !utils_default.isUndefined(source[prop]);
});
super({
readableHighWaterMark: options.chunkSize
});
const internals = this[kInternals] = {
timeWindow: options.timeWindow,
chunkSize: options.chunkSize,
maxRate: options.maxRate,
minChunkSize: options.minChunkSize,
bytesSeen: 0,
isCaptured: false,
notifiedBytesLoaded: 0,
ts: Date.now(),
bytes: 0,
onReadCallback: null
};
this.on("newListener", (event) => {
if (event === "progress") {
if (!internals.isCaptured) {
internals.isCaptured = true;
}
}
});
}
_read(size) {
const internals = this[kInternals];
if (internals.onReadCallback) {
internals.onReadCallback();
}
return super._read(size);
}
_transform(chunk, encoding, callback) {
const internals = this[kInternals];
const maxRate = internals.maxRate;
const readableHighWaterMark = this.readableHighWaterMark;
const timeWindow = internals.timeWindow;
const divider = 1e3 / timeWindow;
const bytesThreshold = maxRate / divider;
const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;
const pushChunk = (_chunk, _callback) => {
const bytes = Buffer.byteLength(_chunk);
internals.bytesSeen += bytes;
internals.bytes += bytes;
internals.isCaptured && this.emit("progress", internals.bytesSeen);
if (this.push(_chunk)) {
process.nextTick(_callback);
} else {
internals.onReadCallback = () => {
internals.onReadCallback = null;
process.nextTick(_callback);
};
}
};
const transformChunk = (_chunk, _callback) => {
const chunkSize = Buffer.byteLength(_chunk);
let chunkRemainder = null;
let maxChunkSize = readableHighWaterMark;
let bytesLeft;
let passed = 0;
if (maxRate) {
const now = Date.now();
if (!internals.ts || (passed = now - internals.ts) >= timeWindow) {
internals.ts = now;
bytesLeft = bytesThreshold - internals.bytes;
internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;
passed = 0;
}
bytesLeft = bytesThreshold - internals.bytes;
}
if (maxRate) {
if (bytesLeft <= 0) {
return setTimeout(() => {
_callback(null, _chunk);
}, timeWindow - passed);
}
if (bytesLeft < maxChunkSize) {
maxChunkSize = bytesLeft;
}
}
if (maxChunkSize && chunkSize > maxChunkSize && chunkSize - maxChunkSize > minChunkSize) {
chunkRemainder = _chunk.subarray(maxChunkSize);
_chunk = _chunk.subarray(0, maxChunkSize);
}
pushChunk(_chunk, chunkRemainder ? () => {
process.nextTick(_callback, null, chunkRemainder);
} : _callback);
};
transformChunk(chunk, function transformNextChunk(err2, _chunk) {
if (err2) {
return callback(err2);
}
if (_chunk) {
transformChunk(_chunk, transformNextChunk);
} else {
callback(null);
}
});
}
};
AxiosTransformStream_default = AxiosTransformStream;
}
});
// node_modules/axios/lib/helpers/readBlob.js
var asyncIterator, readBlob, readBlob_default;
var init_readBlob = __esm({
"node_modules/axios/lib/helpers/readBlob.js"() {
({ asyncIterator } = Symbol);
readBlob = async function* (blob) {
if (blob.stream) {
yield* blob.stream();
} else if (blob.arrayBuffer) {
yield await blob.arrayBuffer();
} else if (blob[asyncIterator]) {
yield* blob[asyncIterator]();
} else {
yield blob;
}
};
readBlob_default = readBlob;
}
});
// node_modules/axios/lib/helpers/formDataToStream.js
var import_util, import_stream2, BOUNDARY_ALPHABET, textEncoder, CRLF, CRLF_BYTES, CRLF_BYTES_COUNT, FormDataPart, formDataToStream, formDataToStream_default;
var init_formDataToStream = __esm({
"node_modules/axios/lib/helpers/formDataToStream.js"() {
import_util = __toESM(require("util"), 1);
import_stream2 = require("stream");
init_utils();
init_readBlob();
init_platform();
BOUNDARY_ALPHABET = platform_default.ALPHABET.ALPHA_DIGIT + "-_";
textEncoder = typeof TextEncoder === "function" ? new TextEncoder() : new import_util.default.TextEncoder();
CRLF = "\r\n";
CRLF_BYTES = textEncoder.encode(CRLF);
CRLF_BYTES_COUNT = 2;
FormDataPart = class {
constructor(name, value) {
const { escapeName } = this.constructor;
const isStringValue = utils_default.isString(value);
let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${!isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : ""}${CRLF}`;
if (isStringValue) {
value = textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF));
} else {
headers += `Content-Type: ${value.type || "application/octet-stream"}${CRLF}`;
}
this.headers = textEncoder.encode(headers + CRLF);
this.contentLength = isStringValue ? value.byteLength : value.size;
this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;
this.name = name;
this.value = value;
}
async *encode() {
yield this.headers;
const { value } = this;
if (utils_default.isTypedArray(value)) {
yield value;
} else {
yield* readBlob_default(value);
}
yield CRLF_BYTES;
}
static escapeName(name) {
return String(name).replace(/[\r\n"]/g, (match) => ({
"\r": "%0D",
"\n": "%0A",
'"': "%22"
})[match]);
}
};
formDataToStream = (form, headersHandler, options) => {
const {
tag = "form-data-boundary",
size = 25,
boundary = tag + "-" + platform_default.generateString(size, BOUNDARY_ALPHABET)
} = options || {};
if (!utils_default.isFormData(form)) {
throw TypeError("FormData instance required");
}
if (boundary.length < 1 || boundary.length > 70) {
throw Error("boundary must be 10-70 characters long");
}
const boundaryBytes = textEncoder.encode("--" + boundary + CRLF);
const footerBytes = textEncoder.encode("--" + boundary + "--" + CRLF + CRLF);
let contentLength = footerBytes.byteLength;
const parts = Array.from(form.entries()).map(([name, value]) => {
const part = new FormDataPart(name, value);
contentLength += part.size;
return part;
});
contentLength += boundaryBytes.byteLength * parts.length;
contentLength = utils_default.toFiniteNumber(contentLength);
const computedHeaders = {
"Content-Type": `multipart/form-data; boundary=${boundary}`
};
if (Number.isFinite(contentLength)) {
computedHeaders["Content-Length"] = contentLength;
}
headersHandler && headersHandler(computedHeaders);
return import_stream2.Readable.from((async function* () {
for (const part of parts) {
yield boundaryBytes;
yield* part.encode();
}
yield footerBytes;
})());
};
formDataToStream_default = formDataToStream;
}
});
// node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js
var import_stream3, ZlibHeaderTransformStream, ZlibHeaderTransformStream_default;
var init_ZlibHeaderTransformStream = __esm({
"node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js"() {
"use strict";
import_stream3 = __toESM(require("stream"), 1);
ZlibHeaderTransformStream = class extends import_stream3.default.Transform {
__transform(chunk, encoding, callback) {
this.push(chunk);
callback();
}
_transform(chunk, encoding, callback) {
if (chunk.length !== 0) {
this._transform = this.__transform;
if (chunk[0] !== 120) {
const header = Buffer.alloc(2);
header[0] = 120;
header[1] = 156;
this.push(header, encoding);
}
}
this.__transform(chunk, encoding, callback);
}
};
ZlibHeaderTransformStream_default = ZlibHeaderTransformStream;
}
});
// node_modules/axios/lib/helpers/callbackify.js
var callbackify, callbackify_default;
var init_callbackify = __esm({
"node_modules/axios/lib/helpers/callbackify.js"() {
init_utils();
callbackify = (fn, reducer) => {
return utils_default.isAsyncFn(fn) ? function(...args) {
const cb = args.pop();
fn.apply(this, args).then((value) => {
try {
reducer ? cb(null, ...reducer(value)) : cb(null, value);
} catch (err2) {
cb(err2);
}
}, cb);
} : fn;
};
callbackify_default = callbackify;
}
});
// node_modules/axios/lib/helpers/speedometer.js
function speedometer(samplesCount, min) {
samplesCount = samplesCount || 10;
const bytes = new Array(samplesCount);
const timestamps = new Array(samplesCount);
let head = 0;
let tail = 0;
let firstSampleTS;
min = min !== void 0 ? min : 1e3;
return function push(chunkLength) {
const now = Date.now();
const startedAt = timestamps[tail];
if (!firstSampleTS) {
firstSampleTS = now;
}
bytes[head] = chunkLength;
timestamps[head] = now;
let i = tail;
let bytesCount = 0;
while (i !== head) {
bytesCount += bytes[i++];
i = i % samplesCount;
}
head = (head + 1) % samplesCount;
if (head === tail) {
tail = (tail + 1) % samplesCount;
}
if (now - firstSampleTS < min) {
return;
}
const passed = startedAt && now - startedAt;
return passed ? Math.round(bytesCount * 1e3 / passed) : void 0;
};
}
var speedometer_default;
var init_speedometer = __esm({
"node_modules/axios/lib/helpers/speedometer.js"() {
"use strict";
speedometer_default = speedometer;
}
});
// node_modules/axios/lib/helpers/throttle.js
function throttle(fn, freq) {
let timestamp = 0;
let threshold = 1e3 / freq;
let lastArgs;
let timer;
const invoke = (args, now = Date.now()) => {
timestamp = now;
lastArgs = null;
if (timer) {
clearTimeout(timer);
timer = null;
}
fn.apply(null, args);
};
const throttled = (...args) => {
const now = Date.now();
const passed = now - timestamp;
if (passed >= threshold) {
invoke(args, now);
} else {
lastArgs = args;
if (!timer) {
timer = setTimeout(() => {
timer = null;
invoke(lastArgs);
}, threshold - passed);
}
}
};
const flush = () => lastArgs && invoke(lastArgs);
return [throttled, flush];
}
var throttle_default;
var init_throttle = __esm({
"node_modules/axios/lib/helpers/throttle.js"() {
throttle_default = throttle;
}
});
// node_modules/axios/lib/helpers/progressEventReducer.js
var progressEventReducer, progressEventDecorator, asyncDecorator;
var init_progressEventReducer = __esm({
"node_modules/axios/lib/helpers/progressEventReducer.js"() {
init_speedometer();
init_throttle();
init_utils();
progressEventReducer = (listener, isDownloadStream, freq = 3) => {
let bytesNotified = 0;
const _speedometer = speedometer_default(50, 250);
return throttle_default((e) => {
const loaded = e.loaded;
const total = e.lengthComputable ? e.total : void 0;
const progressBytes = loaded - bytesNotified;
const rate = _speedometer(progressBytes);
const inRange = loaded <= total;
bytesNotified = loaded;
const data = {
loaded,
total,
progress: total ? loaded / total : void 0,
bytes: progressBytes,
rate: rate ? rate : void 0,
estimated: rate && total && inRange ? (total - loaded) / rate : void 0,
event: e,
lengthComputable: total != null,
[isDownloadStream ? "download" : "upload"]: true
};
listener(data);
}, freq);
};
progressEventDecorator = (total, throttled) => {
const lengthComputable = total != null;
return [(loaded) => throttled[0]({
lengthComputable,
total,
loaded
}), throttled[1]];
};
asyncDecorator = (fn) => (...args) => utils_default.asap(() => fn(...args));
}
});
// node_modules/axios/lib/adapters/http.js
function dispatchBeforeRedirect(options, responseDetails) {
if (options.beforeRedirects.proxy) {
options.beforeRedirects.proxy(options);
}
if (options.beforeRedirects.config) {
options.beforeRedirects.config(options, responseDetails);
}
}
function setProxy(options, configProxy, location) {
let proxy = configProxy;
if (!proxy && proxy !== false) {
const proxyUrl = import_proxy_from_env.default.getProxyForUrl(location);
if (proxyUrl) {
proxy = new URL(proxyUrl);
}
}
if (proxy) {
if (proxy.username) {
proxy.auth = (proxy.username || "") + ":" + (proxy.password || "");
}
if (proxy.auth) {
if (proxy.auth.username || proxy.auth.password) {
proxy.auth = (proxy.auth.username || "") + ":" + (proxy.auth.password || "");
}
const base64 = Buffer.from(proxy.auth, "utf8").toString("base64");
options.headers["Proxy-Authorization"] = "Basic " + base64;
}
options.headers.host = options.hostname + (options.port ? ":" + options.port : "");
const proxyHost = proxy.hostname || proxy.host;
options.hostname = proxyHost;
options.host = proxyHost;
options.port = proxy.port;
options.path = location;
if (proxy.protocol) {
options.protocol = proxy.protocol.includes(":") ? proxy.protocol : `${proxy.protocol}:`;
}
}
options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {
setProxy(redirectOptions, configProxy, redirectOptions.href);
};
}
var import_proxy_from_env, import_http, import_https, import_util2, import_follow_redirects, import_zlib, import_stream4, import_events, zlibOptions, brotliOptions, isBrotliSupported, httpFollow, httpsFollow, isHttps, supportedProtocols, flushOnFinish, isHttpAdapterSupported, wrapAsync, resolveFamily, buildAddressEntry, http_default;
var init_http = __esm({
"node_modules/axios/lib/adapters/http.js"() {
"use strict";
init_utils();
init_settle();
init_buildFullPath();
init_buildURL();
import_proxy_from_env = __toESM(require_proxy_from_env(), 1);
import_http = __toESM(require("http"), 1);
import_https = __toESM(require("https"), 1);
import_util2 = __toESM(require("util"), 1);
import_follow_redirects = __toESM(require_follow_redirects(), 1);
import_zlib = __toESM(require("zlib"), 1);
init_data();
init_transitional();
init_AxiosError();
init_CanceledError();
init_platform();
init_fromDataURI();
import_stream4 = __toESM(require("stream"), 1);
init_AxiosHeaders();
init_AxiosTransformStream();
import_events = require("events");
init_formDataToStream();
init_readBlob();
init_ZlibHeaderTransformStream();
init_callbackify();
init_progressEventReducer();
zlibOptions = {
flush: import_zlib.default.constants.Z_SYNC_FLUSH,
finishFlush: import_zlib.default.constants.Z_SYNC_FLUSH
};
brotliOptions = {
flush: import_zlib.default.constants.BROTLI_OPERATION_FLUSH,
finishFlush: import_zlib.default.constants.BROTLI_OPERATION_FLUSH
};
isBrotliSupported = utils_default.isFunction(import_zlib.default.createBrotliDecompress);
({ http: httpFollow, https: httpsFollow } = import_follow_redirects.default);
isHttps = /https:?/;
supportedProtocols = platform_default.protocols.map((protocol) => {
return protocol + ":";
});
flushOnFinish = (stream4, [throttled, flush]) => {
stream4.on("end", flush).on("error", flush);
return throttled;
};
isHttpAdapterSupported = typeof process !== "undefined" && utils_default.kindOf(process) === "process";
wrapAsync = (asyncExecutor) => {
return new Promise((resolve, reject) => {
let onDone;
let isDone;
const done = (value, isRejected) => {
if (isDone) return;
isDone = true;
onDone && onDone(value, isRejected);
};
const _resolve = (value) => {
done(value);
resolve(value);
};
const _reject = (reason) => {
done(reason, true);
reject(reason);
};
asyncExecutor(_resolve, _reject, (onDoneHandler) => onDone = onDoneHandler).catch(_reject);
});
};
resolveFamily = ({ address, family }) => {
if (!utils_default.isString(address)) {
throw TypeError("address must be a string");
}
return {
address,
family: family || (address.indexOf(".") < 0 ? 6 : 4)
};
};
buildAddressEntry = (address, family) => resolveFamily(utils_default.isObject(address) ? address : { address, family });
http_default = isHttpAdapterSupported && function httpAdapter(config) {
return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {
let { data, lookup, family } = config;
const { responseType, responseEncoding } = config;
const method = config.method.toUpperCase();
let isDone;
let rejected = false;
let req;
if (lookup) {
const _lookup = callbackify_default(lookup, (value) => utils_default.isArray(value) ? value : [value]);
lookup = (hostname, opt, cb) => {
_lookup(hostname, opt, (err2, arg0, arg1) => {
if (err2) {
return cb(err2);
}
const addresses = utils_default.isArray(arg0) ? arg0.map((addr) => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];
opt.all ? cb(err2, addresses) : cb(err2, addresses[0].address, addresses[0].family);
});
};
}
const emitter = new import_events.EventEmitter();
const onFinished = () => {
if (config.cancelToken) {
config.cancelToken.unsubscribe(abort);
}
if (config.signal) {
config.signal.removeEventListener("abort", abort);
}
emitter.removeAllListeners();
};
onDone((value, isRejected) => {
isDone = true;
if (isRejected) {
rejected = true;
onFinished();
}
});
function abort(reason) {
emitter.emit("abort", !reason || reason.type ? new CanceledError_default(null, config, req) : reason);
}
emitter.once("abort", reject);
if (config.cancelToken || config.signal) {
config.cancelToken && config.cancelToken.subscribe(abort);
if (config.signal) {
config.signal.aborted ? abort() : config.signal.addEventListener("abort", abort);
}
}
const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
const parsed = new URL(fullPath, platform_default.hasBrowserEnv ? platform_default.origin : void 0);
const protocol = parsed.protocol || supportedProtocols[0];
if (protocol === "data:") {
let convertedData;
if (method !== "GET") {
return settle(resolve, reject, {
status: 405,
statusText: "method not allowed",
headers: {},
config
});
}
try {
convertedData = fromDataURI(config.url, responseType === "blob", {
Blob: config.env && config.env.Blob
});
} catch (err2) {
throw AxiosError_default.from(err2, AxiosError_default.ERR_BAD_REQUEST, config);
}
if (responseType === "text") {
convertedData = convertedData.toString(responseEncoding);
if (!responseEncoding || responseEncoding === "utf8") {
convertedData = utils_default.stripBOM(convertedData);
}
} else if (responseType === "stream") {
convertedData = import_stream4.default.Readable.from(convertedData);
}
return settle(resolve, reject, {
data: convertedData,
status: 200,
statusText: "OK",
headers: new AxiosHeaders_default(),
config
});
}
if (supportedProtocols.indexOf(protocol) === -1) {
return reject(new AxiosError_default(
"Unsupported protocol " + protocol,
AxiosError_default.ERR_BAD_REQUEST,
config
));
}
const headers = AxiosHeaders_default.from(config.headers).normalize();
headers.set("User-Agent", "axios/" + VERSION, false);
const { onUploadProgress, onDownloadProgress } = config;
const maxRate = config.maxRate;
let maxUploadRate = void 0;
let maxDownloadRate = void 0;
if (utils_default.isSpecCompliantForm(data)) {
const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i);
data = formDataToStream_default(data, (formHeaders) => {
headers.set(formHeaders);
}, {
tag: `axios-${VERSION}-boundary`,
boundary: userBoundary && userBoundary[1] || void 0
});
} else if (utils_default.isFormData(data) && utils_default.isFunction(data.getHeaders)) {
headers.set(data.getHeaders());
if (!headers.hasContentLength()) {
try {
const knownLength = await import_util2.default.promisify(data.getLength).call(data);
Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);
} catch (e) {
}
}
} else if (utils_default.isBlob(data) || utils_default.isFile(data)) {
data.size && headers.setContentType(data.type || "application/octet-stream");
headers.setContentLength(data.size || 0);
data = import_stream4.default.Readable.from(readBlob_default(data));
} else if (data && !utils_default.isStream(data)) {
if (Buffer.isBuffer(data)) {
} else if (utils_default.isArrayBuffer(data)) {
data = Buffer.from(new Uint8Array(data));
} else if (utils_default.isString(data)) {
data = Buffer.from(data, "utf-8");
} else {
return reject(new AxiosError_default(
"Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",
AxiosError_default.ERR_BAD_REQUEST,
config
));
}
headers.setContentLength(data.length, false);
if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {
return reject(new AxiosError_default(
"Request body larger than maxBodyLength limit",
AxiosError_default.ERR_BAD_REQUEST,
config
));
}
}
const contentLength = utils_default.toFiniteNumber(headers.getContentLength());
if (utils_default.isArray(maxRate)) {
maxUploadRate = maxRate[0];
maxDownloadRate = maxRate[1];
} else {
maxUploadRate = maxDownloadRate = maxRate;
}
if (data && (onUploadProgress || maxUploadRate)) {
if (!utils_default.isStream(data)) {
data = import_stream4.default.Readable.from(data, { objectMode: false });
}
data = import_stream4.default.pipeline([data, new AxiosTransformStream_default({
maxRate: utils_default.toFiniteNumber(maxUploadRate)
})], utils_default.noop);
onUploadProgress && data.on("progress", flushOnFinish(
data,
progressEventDecorator(
contentLength,
progressEventReducer(asyncDecorator(onUploadProgress), false, 3)
)
));
}
let auth = void 0;
if (config.auth) {
const username = config.auth.username || "";
const password = config.auth.password || "";
auth = username + ":" + password;
}
if (!auth && parsed.username) {
const urlUsername = parsed.username;
const urlPassword = parsed.password;
auth = urlUsername + ":" + urlPassword;
}
auth && headers.delete("authorization");
let path;
try {
path = buildURL(
parsed.pathname + parsed.search,
config.params,
config.paramsSerializer
).replace(/^\?/, "");
} catch (err2) {
const customErr = new Error(err2.message);
customErr.config = config;
customErr.url = config.url;
customErr.exists = true;
return reject(customErr);
}
headers.set(
"Accept-Encoding",
"gzip, compress, deflate" + (isBrotliSupported ? ", br" : ""),
false
);
const options = {
path,
method,
headers: headers.toJSON(),
agents: { http: config.httpAgent, https: config.httpsAgent },
auth,
protocol,
family,
beforeRedirect: dispatchBeforeRedirect,
beforeRedirects: {}
};
!utils_default.isUndefined(lookup) && (options.lookup = lookup);
if (config.socketPath) {
options.socketPath = config.socketPath;
} else {
options.hostname = parsed.hostname.startsWith("[") ? parsed.hostname.slice(1, -1) : parsed.hostname;
options.port = parsed.port;
setProxy(options, config.proxy, protocol + "//" + parsed.hostname + (parsed.port ? ":" + parsed.port : "") + options.path);
}
let transport;
const isHttpsRequest = isHttps.test(options.protocol);
options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;
if (config.transport) {
transport = config.transport;
} else if (config.maxRedirects === 0) {
transport = isHttpsRequest ? import_https.default : import_http.default;
} else {
if (config.maxRedirects) {
options.maxRedirects = config.maxRedirects;
}
if (config.beforeRedirect) {
options.beforeRedirects.config = config.beforeRedirect;
}
transport = isHttpsRequest ? httpsFollow : httpFollow;
}
if (config.maxBodyLength > -1) {
options.maxBodyLength = config.maxBodyLength;
} else {
options.maxBodyLength = Infinity;
}
if (config.insecureHTTPParser) {
options.insecureHTTPParser = config.insecureHTTPParser;
}
req = transport.request(options, function handleResponse(res) {
if (req.destroyed) return;
const streams = [res];
const responseLength = +res.headers["content-length"];
if (onDownloadProgress || maxDownloadRate) {
const transformStream = new AxiosTransformStream_default({
maxRate: utils_default.toFiniteNumber(maxDownloadRate)
});
onDownloadProgress && transformStream.on("progress", flushOnFinish(
transformStream,
progressEventDecorator(
responseLength,
progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)
)
));
streams.push(transformStream);
}
let responseStream = res;
const lastRequest = res.req || req;
if (config.decompress !== false && res.headers["content-encoding"]) {
if (method === "HEAD" || res.statusCode === 204) {
delete res.headers["content-encoding"];
}
switch ((res.headers["content-encoding"] || "").toLowerCase()) {
/*eslint default-case:0*/
case "gzip":
case "x-gzip":
case "compress":
case "x-compress":
streams.push(import_zlib.default.createUnzip(zlibOptions));
delete res.headers["content-encoding"];
break;
case "deflate":
streams.push(new ZlibHeaderTransformStream_default());
streams.push(import_zlib.default.createUnzip(zlibOptions));
delete res.headers["content-encoding"];
break;
case "br":
if (isBrotliSupported) {
streams.push(import_zlib.default.createBrotliDecompress(brotliOptions));
delete res.headers["content-encoding"];
}
}
}
responseStream = streams.length > 1 ? import_stream4.default.pipeline(streams, utils_default.noop) : streams[0];
const offListeners = import_stream4.default.finished(responseStream, () => {
offListeners();
onFinished();
});
const response = {
status: res.statusCode,
statusText: res.statusMessage,
headers: new AxiosHeaders_default(res.headers),
config,
request: lastRequest
};
if (responseType === "stream") {
response.data = responseStream;
settle(resolve, reject, response);
} else {
const responseBuffer = [];
let totalResponseBytes = 0;
responseStream.on("data", function handleStreamData(chunk) {
responseBuffer.push(chunk);
totalResponseBytes += chunk.length;
if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {
rejected = true;
responseStream.destroy();
reject(new AxiosError_default(
"maxContentLength size of " + config.maxContentLength + " exceeded",
AxiosError_default.ERR_BAD_RESPONSE,
config,
lastRequest
));
}
});
responseStream.on("aborted", function handlerStreamAborted() {
if (rejected) {
return;
}
const err2 = new AxiosError_default(
"stream has been aborted",
AxiosError_default.ERR_BAD_RESPONSE,
config,
lastRequest
);
responseStream.destroy(err2);
reject(err2);
});
responseStream.on("error", function handleStreamError(err2) {
if (req.destroyed) return;
reject(AxiosError_default.from(err2, null, config, lastRequest));
});
responseStream.on("end", function handleStreamEnd() {
try {
let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);
if (responseType !== "arraybuffer") {
responseData = responseData.toString(responseEncoding);
if (!responseEncoding || responseEncoding === "utf8") {
responseData = utils_default.stripBOM(responseData);
}
}
response.data = responseData;
} catch (err2) {
return reject(AxiosError_default.from(err2, null, config, response.request, response));
}
settle(resolve, reject, response);
});
}
emitter.once("abort", (err2) => {
if (!responseStream.destroyed) {
responseStream.emit("error", err2);
responseStream.destroy();
}
});
});
emitter.once("abort", (err2) => {
reject(err2);
req.destroy(err2);
});
req.on("error", function handleRequestError(err2) {
reject(AxiosError_default.from(err2, null, config, req));
});
req.on("socket", function handleRequestSocket(socket) {
socket.setKeepAlive(true, 1e3 * 60);
});
if (config.timeout) {
const timeout = parseInt(config.timeout, 10);
if (Number.isNaN(timeout)) {
reject(new AxiosError_default(
"error trying to parse `config.timeout` to int",
AxiosError_default.ERR_BAD_OPTION_VALUE,
config,
req
));
return;
}
req.setTimeout(timeout, function handleRequestTimeout() {
if (isDone) return;
let timeoutErrorMessage = config.timeout ? "timeout of " + config.timeout + "ms exceeded" : "timeout exceeded";
const transitional2 = config.transitional || transitional_default;
if (config.timeoutErrorMessage) {
timeoutErrorMessage = config.timeoutErrorMessage;
}
reject(new AxiosError_default(
timeoutErrorMessage,
transitional2.clarifyTimeoutError ? AxiosError_default.ETIMEDOUT : AxiosError_default.ECONNABORTED,
config,
req
));
abort();
});
}
if (utils_default.isStream(data)) {
let ended = false;
let errored = false;
data.on("end", () => {
ended = true;
});
data.once("error", (err2) => {
errored = true;
req.destroy(err2);
});
data.on("close", () => {
if (!ended && !errored) {
abort(new CanceledError_default("Request stream has been aborted", config, req));
}
});
data.pipe(req);
} else {
req.end(data);
}
});
};
}
});
// node_modules/axios/lib/helpers/isURLSameOrigin.js
var isURLSameOrigin_default;
var init_isURLSameOrigin = __esm({
"node_modules/axios/lib/helpers/isURLSameOrigin.js"() {
init_platform();
isURLSameOrigin_default = platform_default.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url2) => {
url2 = new URL(url2, platform_default.origin);
return origin2.protocol === url2.protocol && origin2.host === url2.host && (isMSIE || origin2.port === url2.port);
})(
new URL(platform_default.origin),
platform_default.navigator && /(msie|trident)/i.test(platform_default.navigator.userAgent)
) : () => true;
}
});
// node_modules/axios/lib/helpers/cookies.js
var cookies_default;
var init_cookies = __esm({
"node_modules/axios/lib/helpers/cookies.js"() {
init_utils();
init_platform();
cookies_default = platform_default.hasStandardBrowserEnv ? (
// Standard browser envs support document.cookie
{
write(name, value, expires, path, domain, secure) {
const cookie = [name + "=" + encodeURIComponent(value)];
utils_default.isNumber(expires) && cookie.push("expires=" + new Date(expires).toGMTString());
utils_default.isString(path) && cookie.push("path=" + path);
utils_default.isString(domain) && cookie.push("domain=" + domain);
secure === true && cookie.push("secure");
document.cookie = cookie.join("; ");
},
read(name) {
const match = document.cookie.match(new RegExp("(^|;\\s*)(" + name + ")=([^;]*)"));
return match ? decodeURIComponent(match[3]) : null;
},
remove(name) {
this.write(name, "", Date.now() - 864e5);
}
}
) : (
// Non-standard browser env (web workers, react-native) lack needed support.
{
write() {
},
read() {
return null;
},
remove() {
}
}
);
}
});
// node_modules/axios/lib/core/mergeConfig.js
function mergeConfig(config1, config2) {
config2 = config2 || {};
const config = {};
function getMergedValue(target, source, prop, caseless) {
if (utils_default.isPlainObject(target) && utils_default.isPlainObject(source)) {
return utils_default.merge.call({ caseless }, target, source);
} else if (utils_default.isPlainObject(source)) {
return utils_default.merge({}, source);
} else if (utils_default.isArray(source)) {
return source.slice();
}
return source;
}
function mergeDeepProperties(a, b, prop, caseless) {
if (!utils_default.isUndefined(b)) {
return getMergedValue(a, b, prop, caseless);
} else if (!utils_default.isUndefined(a)) {
return getMergedValue(void 0, a, prop, caseless);
}
}
function valueFromConfig2(a, b) {
if (!utils_default.isUndefined(b)) {
return getMergedValue(void 0, b);
}
}
function defaultToConfig2(a, b) {
if (!utils_default.isUndefined(b)) {
return getMergedValue(void 0, b);
} else if (!utils_default.isUndefined(a)) {
return getMergedValue(void 0, a);
}
}
function mergeDirectKeys(a, b, prop) {
if (prop in config2) {
return getMergedValue(a, b);
} else if (prop in config1) {
return getMergedValue(void 0, a);
}
}
const mergeMap = {
url: valueFromConfig2,
method: valueFromConfig2,
data: valueFromConfig2,
baseURL: defaultToConfig2,
transformRequest: defaultToConfig2,
transformResponse: defaultToConfig2,
paramsSerializer: defaultToConfig2,
timeout: defaultToConfig2,
timeoutMessage: defaultToConfig2,
withCredentials: defaultToConfig2,
withXSRFToken: defaultToConfig2,
adapter: defaultToConfig2,
responseType: defaultToConfig2,
xsrfCookieName: defaultToConfig2,
xsrfHeaderName: defaultToConfig2,
onUploadProgress: defaultToConfig2,
onDownloadProgress: defaultToConfig2,
decompress: defaultToConfig2,
maxContentLength: defaultToConfig2,
maxBodyLength: defaultToConfig2,
beforeRedirect: defaultToConfig2,
transport: defaultToConfig2,
httpAgent: defaultToConfig2,
httpsAgent: defaultToConfig2,
cancelToken: defaultToConfig2,
socketPath: defaultToConfig2,
responseEncoding: defaultToConfig2,
validateStatus: mergeDirectKeys,
headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)
};
utils_default.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
const merge2 = mergeMap[prop] || mergeDeepProperties;
const configValue = merge2(config1[prop], config2[prop], prop);
utils_default.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config[prop] = configValue);
});
return config;
}
var headersToObject;
var init_mergeConfig = __esm({
"node_modules/axios/lib/core/mergeConfig.js"() {
"use strict";
init_utils();
init_AxiosHeaders();
headersToObject = (thing) => thing instanceof AxiosHeaders_default ? { ...thing } : thing;
}
});
// node_modules/axios/lib/helpers/resolveConfig.js
var resolveConfig_default;
var init_resolveConfig = __esm({
"node_modules/axios/lib/helpers/resolveConfig.js"() {
init_platform();
init_utils();
init_isURLSameOrigin();
init_cookies();
init_buildFullPath();
init_mergeConfig();
init_AxiosHeaders();
init_buildURL();
resolveConfig_default = (config) => {
const newConfig = mergeConfig({}, config);
let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
newConfig.headers = headers = AxiosHeaders_default.from(headers);
newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);
if (auth) {
headers.set(
"Authorization",
"Basic " + btoa((auth.username || "") + ":" + (auth.password ? unescape(encodeURIComponent(auth.password)) : ""))
);
}
let contentType;
if (utils_default.isFormData(data)) {
if (platform_default.hasStandardBrowserEnv || platform_default.hasStandardBrowserWebWorkerEnv) {
headers.setContentType(void 0);
} else if ((contentType = headers.getContentType()) !== false) {
const [type, ...tokens] = contentType ? contentType.split(";").map((token) => token.trim()).filter(Boolean) : [];
headers.setContentType([type || "multipart/form-data", ...tokens].join("; "));
}
}
if (platform_default.hasStandardBrowserEnv) {
withXSRFToken && utils_default.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));
if (withXSRFToken || withXSRFToken !== false && isURLSameOrigin_default(newConfig.url)) {
const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies_default.read(xsrfCookieName);
if (xsrfValue) {
headers.set(xsrfHeaderName, xsrfValue);
}
}
}
return newConfig;
};
}
});
// node_modules/axios/lib/adapters/xhr.js
var isXHRAdapterSupported, xhr_default;
var init_xhr = __esm({
"node_modules/axios/lib/adapters/xhr.js"() {
init_utils();
init_settle();
init_transitional();
init_AxiosError();
init_CanceledError();
init_parseProtocol();
init_platform();
init_AxiosHeaders();
init_progressEventReducer();
init_resolveConfig();
isXHRAdapterSupported = typeof XMLHttpRequest !== "undefined";
xhr_default = isXHRAdapterSupported && function(config) {
return new Promise(function dispatchXhrRequest(resolve, reject) {
const _config = resolveConfig_default(config);
let requestData = _config.data;
const requestHeaders = AxiosHeaders_default.from(_config.headers).normalize();
let { responseType, onUploadProgress, onDownloadProgress } = _config;
let onCanceled;
let uploadThrottled, downloadThrottled;
let flushUpload, flushDownload;
function done() {
flushUpload && flushUpload();
flushDownload && flushDownload();
_config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);
_config.signal && _config.signal.removeEventListener("abort", onCanceled);
}
let request = new XMLHttpRequest();
request.open(_config.method.toUpperCase(), _config.url, true);
request.timeout = _config.timeout;
function onloadend() {
if (!request) {
return;
}
const responseHeaders = AxiosHeaders_default.from(
"getAllResponseHeaders" in request && request.getAllResponseHeaders()
);
const responseData = !responseType || responseType === "text" || responseType === "json" ? request.responseText : request.response;
const response = {
data: responseData,
status: request.status,
statusText: request.statusText,
headers: responseHeaders,
config,
request
};
settle(function _resolve(value) {
resolve(value);
done();
}, function _reject(err2) {
reject(err2);
done();
}, response);
request = null;
}
if ("onloadend" in request) {
request.onloadend = onloadend;
} else {
request.onreadystatechange = function handleLoad() {
if (!request || request.readyState !== 4) {
return;
}
if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf("file:") === 0)) {
return;
}
setTimeout(onloadend);
};
}
request.onabort = function handleAbort() {
if (!request) {
return;
}
reject(new AxiosError_default("Request aborted", AxiosError_default.ECONNABORTED, config, request));
request = null;
};
request.onerror = function handleError() {
reject(new AxiosError_default("Network Error", AxiosError_default.ERR_NETWORK, config, request));
request = null;
};
request.ontimeout = function handleTimeout() {
let timeoutErrorMessage = _config.timeout ? "timeout of " + _config.timeout + "ms exceeded" : "timeout exceeded";
const transitional2 = _config.transitional || transitional_default;
if (_config.timeoutErrorMessage) {
timeoutErrorMessage = _config.timeoutErrorMessage;
}
reject(new AxiosError_default(
timeoutErrorMessage,
transitional2.clarifyTimeoutError ? AxiosError_default.ETIMEDOUT : AxiosError_default.ECONNABORTED,
config,
request
));
request = null;
};
requestData === void 0 && requestHeaders.setContentType(null);
if ("setRequestHeader" in request) {
utils_default.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
request.setRequestHeader(key, val);
});
}
if (!utils_default.isUndefined(_config.withCredentials)) {
request.withCredentials = !!_config.withCredentials;
}
if (responseType && responseType !== "json") {
request.responseType = _config.responseType;
}
if (onDownloadProgress) {
[downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);
request.addEventListener("progress", downloadThrottled);
}
if (onUploadProgress && request.upload) {
[uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);
request.upload.addEventListener("progress", uploadThrottled);
request.upload.addEventListener("loadend", flushUpload);
}
if (_config.cancelToken || _config.signal) {
onCanceled = (cancel) => {
if (!request) {
return;
}
reject(!cancel || cancel.type ? new CanceledError_default(null, config, request) : cancel);
request.abort();
request = null;
};
_config.cancelToken && _config.cancelToken.subscribe(onCanceled);
if (_config.signal) {
_config.signal.aborted ? onCanceled() : _config.signal.addEventListener("abort", onCanceled);
}
}
const protocol = parseProtocol(_config.url);
if (protocol && platform_default.protocols.indexOf(protocol) === -1) {
reject(new AxiosError_default("Unsupported protocol " + protocol + ":", AxiosError_default.ERR_BAD_REQUEST, config));
return;
}
request.send(requestData || null);
});
};
}
});
// node_modules/axios/lib/helpers/composeSignals.js
var composeSignals, composeSignals_default;
var init_composeSignals = __esm({
"node_modules/axios/lib/helpers/composeSignals.js"() {
init_CanceledError();
init_AxiosError();
init_utils();
composeSignals = (signals, timeout) => {
const { length } = signals = signals ? signals.filter(Boolean) : [];
if (timeout || length) {
let controller = new AbortController();
let aborted;
const onabort = function(reason) {
if (!aborted) {
aborted = true;
unsubscribe();
const err2 = reason instanceof Error ? reason : this.reason;
controller.abort(err2 instanceof AxiosError_default ? err2 : new CanceledError_default(err2 instanceof Error ? err2.message : err2));
}
};
let timer = timeout && setTimeout(() => {
timer = null;
onabort(new AxiosError_default(`timeout ${timeout} of ms exceeded`, AxiosError_default.ETIMEDOUT));
}, timeout);
const unsubscribe = () => {
if (signals) {
timer && clearTimeout(timer);
timer = null;
signals.forEach((signal2) => {
signal2.unsubscribe ? signal2.unsubscribe(onabort) : signal2.removeEventListener("abort", onabort);
});
signals = null;
}
};
signals.forEach((signal2) => signal2.addEventListener("abort", onabort));
const { signal } = controller;
signal.unsubscribe = () => utils_default.asap(unsubscribe);
return signal;
}
};
composeSignals_default = composeSignals;
}
});
// node_modules/axios/lib/helpers/trackStream.js
var streamChunk, readBytes, readStream, trackStream;
var init_trackStream = __esm({
"node_modules/axios/lib/helpers/trackStream.js"() {
streamChunk = function* (chunk, chunkSize) {
let len = chunk.byteLength;
if (!chunkSize || len < chunkSize) {
yield chunk;
return;
}
let pos = 0;
let end;
while (pos < len) {
end = pos + chunkSize;
yield chunk.slice(pos, end);
pos = end;
}
};
readBytes = async function* (iterable, chunkSize) {
for await (const chunk of readStream(iterable)) {
yield* streamChunk(chunk, chunkSize);
}
};
readStream = async function* (stream4) {
if (stream4[Symbol.asyncIterator]) {
yield* stream4;
return;
}
const reader = stream4.getReader();
try {
for (; ; ) {
const { done, value } = await reader.read();
if (done) {
break;
}
yield value;
}
} finally {
await reader.cancel();
}
};
trackStream = (stream4, chunkSize, onProgress, onFinish) => {
const iterator = readBytes(stream4, chunkSize);
let bytes = 0;
let done;
let _onFinish = (e) => {
if (!done) {
done = true;
onFinish && onFinish(e);
}
};
return new ReadableStream({
async pull(controller) {
try {
const { done: done2, value } = await iterator.next();
if (done2) {
_onFinish();
controller.close();
return;
}
let len = value.byteLength;
if (onProgress) {
let loadedBytes = bytes += len;
onProgress(loadedBytes);
}
controller.enqueue(new Uint8Array(value));
} catch (err2) {
_onFinish(err2);
throw err2;
}
},
cancel(reason) {
_onFinish(reason);
return iterator.return();
}
}, {
highWaterMark: 2
});
};
}
});
// node_modules/axios/lib/adapters/fetch.js
var isFetchSupported, isReadableStreamSupported, encodeText, test, supportsRequestStream, DEFAULT_CHUNK_SIZE, supportsResponseStream, resolvers, getBodyLength, resolveBodyLength, fetch_default;
var init_fetch = __esm({
"node_modules/axios/lib/adapters/fetch.js"() {
init_platform();
init_utils();
init_AxiosError();
init_composeSignals();
init_trackStream();
init_AxiosHeaders();
init_progressEventReducer();
init_resolveConfig();
init_settle();
isFetchSupported = typeof fetch === "function" && typeof Request === "function" && typeof Response === "function";
isReadableStreamSupported = isFetchSupported && typeof ReadableStream === "function";
encodeText = isFetchSupported && (typeof TextEncoder === "function" ? /* @__PURE__ */ ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) : async (str) => new Uint8Array(await new Response(str).arrayBuffer()));
test = (fn, ...args) => {
try {
return !!fn(...args);
} catch (e) {
return false;
}
};
supportsRequestStream = isReadableStreamSupported && test(() => {
let duplexAccessed = false;
const hasContentType = new Request(platform_default.origin, {
body: new ReadableStream(),
method: "POST",
get duplex() {
duplexAccessed = true;
return "half";
}
}).headers.has("Content-Type");
return duplexAccessed && !hasContentType;
});
DEFAULT_CHUNK_SIZE = 64 * 1024;
supportsResponseStream = isReadableStreamSupported && test(() => utils_default.isReadableStream(new Response("").body));
resolvers = {
stream: supportsResponseStream && ((res) => res.body)
};
isFetchSupported && ((res) => {
["text", "arrayBuffer", "blob", "formData", "stream"].forEach((type) => {
!resolvers[type] && (resolvers[type] = utils_default.isFunction(res[type]) ? (res2) => res2[type]() : (_, config) => {
throw new AxiosError_default(`Response type '${type}' is not supported`, AxiosError_default.ERR_NOT_SUPPORT, config);
});
});
})(new Response());
getBodyLength = async (body) => {
if (body == null) {
return 0;
}
if (utils_default.isBlob(body)) {
return body.size;
}
if (utils_default.isSpecCompliantForm(body)) {
const _request = new Request(platform_default.origin, {
method: "POST",
body
});
return (await _request.arrayBuffer()).byteLength;
}
if (utils_default.isArrayBufferView(body) || utils_default.isArrayBuffer(body)) {
return body.byteLength;
}
if (utils_default.isURLSearchParams(body)) {
body = body + "";
}
if (utils_default.isString(body)) {
return (await encodeText(body)).byteLength;
}
};
resolveBodyLength = async (headers, body) => {
const length = utils_default.toFiniteNumber(headers.getContentLength());
return length == null ? getBodyLength(body) : length;
};
fetch_default = isFetchSupported && (async (config) => {
let {
url: url2,
method,
data,
signal,
cancelToken,
timeout,
onDownloadProgress,
onUploadProgress,
responseType,
headers,
withCredentials = "same-origin",
fetchOptions
} = resolveConfig_default(config);
responseType = responseType ? (responseType + "").toLowerCase() : "text";
let composedSignal = composeSignals_default([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
let request;
const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
composedSignal.unsubscribe();
});
let requestContentLength;
try {
if (onUploadProgress && supportsRequestStream && method !== "get" && method !== "head" && (requestContentLength = await resolveBodyLength(headers, data)) !== 0) {
let _request = new Request(url2, {
method: "POST",
body: data,
duplex: "half"
});
let contentTypeHeader;
if (utils_default.isFormData(data) && (contentTypeHeader = _request.headers.get("content-type"))) {
headers.setContentType(contentTypeHeader);
}
if (_request.body) {
const [onProgress, flush] = progressEventDecorator(
requestContentLength,
progressEventReducer(asyncDecorator(onUploadProgress))
);
data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
}
}
if (!utils_default.isString(withCredentials)) {
withCredentials = withCredentials ? "include" : "omit";
}
const isCredentialsSupported = "credentials" in Request.prototype;
request = new Request(url2, {
...fetchOptions,
signal: composedSignal,
method: method.toUpperCase(),
headers: headers.normalize().toJSON(),
body: data,
duplex: "half",
credentials: isCredentialsSupported ? withCredentials : void 0
});
let response = await fetch(request);
const isStreamResponse = supportsResponseStream && (responseType === "stream" || responseType === "response");
if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) {
const options = {};
["status", "statusText", "headers"].forEach((prop) => {
options[prop] = response[prop];
});
const responseContentLength = utils_default.toFiniteNumber(response.headers.get("content-length"));
const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
responseContentLength,
progressEventReducer(asyncDecorator(onDownloadProgress), true)
) || [];
response = new Response(
trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
flush && flush();
unsubscribe && unsubscribe();
}),
options
);
}
responseType = responseType || "text";
let responseData = await resolvers[utils_default.findKey(resolvers, responseType) || "text"](response, config);
!isStreamResponse && unsubscribe && unsubscribe();
return await new Promise((resolve, reject) => {
settle(resolve, reject, {
data: responseData,
headers: AxiosHeaders_default.from(response.headers),
status: response.status,
statusText: response.statusText,
config,
request
});
});
} catch (err2) {
unsubscribe && unsubscribe();
if (err2 && err2.name === "TypeError" && /fetch/i.test(err2.message)) {
throw Object.assign(
new AxiosError_default("Network Error", AxiosError_default.ERR_NETWORK, config, request),
{
cause: err2.cause || err2
}
);
}
throw AxiosError_default.from(err2, err2 && err2.code, config, request);
}
});
}
});
// node_modules/axios/lib/adapters/adapters.js
var knownAdapters, renderReason, isResolvedHandle, adapters_default;
var init_adapters = __esm({
"node_modules/axios/lib/adapters/adapters.js"() {
init_utils();
init_http();
init_xhr();
init_fetch();
init_AxiosError();
knownAdapters = {
http: http_default,
xhr: xhr_default,
fetch: fetch_default
};
utils_default.forEach(knownAdapters, (fn, value) => {
if (fn) {
try {
Object.defineProperty(fn, "name", { value });
} catch (e) {
}
Object.defineProperty(fn, "adapterName", { value });
}
});
renderReason = (reason) => `- ${reason}`;
isResolvedHandle = (adapter) => utils_default.isFunction(adapter) || adapter === null || adapter === false;
adapters_default = {
getAdapter: (adapters) => {
adapters = utils_default.isArray(adapters) ? adapters : [adapters];
const { length } = adapters;
let nameOrAdapter;
let adapter;
const rejectedReasons = {};
for (let i = 0; i < length; i++) {
nameOrAdapter = adapters[i];
let id;
adapter = nameOrAdapter;
if (!isResolvedHandle(nameOrAdapter)) {
adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
if (adapter === void 0) {
throw new AxiosError_default(`Unknown adapter '${id}'`);
}
}
if (adapter) {
break;
}
rejectedReasons[id || "#" + i] = adapter;
}
if (!adapter) {
const reasons = Object.entries(rejectedReasons).map(
([id, state]) => `adapter ${id} ` + (state === false ? "is not supported by the environment" : "is not available in the build")
);
let s = length ? reasons.length > 1 ? "since :\n" + reasons.map(renderReason).join("\n") : " " + renderReason(reasons[0]) : "as no adapter specified";
throw new AxiosError_default(
`There is no suitable adapter to dispatch the request ` + s,
"ERR_NOT_SUPPORT"
);
}
return adapter;
},
adapters: knownAdapters
};
}
});
// node_modules/axios/lib/core/dispatchRequest.js
function throwIfCancellationRequested(config) {
if (config.cancelToken) {
config.cancelToken.throwIfRequested();
}
if (config.signal && config.signal.aborted) {
throw new CanceledError_default(null, config);
}
}
function dispatchRequest(config) {
throwIfCancellationRequested(config);
config.headers = AxiosHeaders_default.from(config.headers);
config.data = transformData.call(
config,
config.transformRequest
);
if (["post", "put", "patch"].indexOf(config.method) !== -1) {
config.headers.setContentType("application/x-www-form-urlencoded", false);
}
const adapter = adapters_default.getAdapter(config.adapter || defaults_default.adapter);
return adapter(config).then(function onAdapterResolution(response) {
throwIfCancellationRequested(config);
response.data = transformData.call(
config,
config.transformResponse,
response
);
response.headers = AxiosHeaders_default.from(response.headers);
return response;
}, function onAdapterRejection(reason) {
if (!isCancel(reason)) {
throwIfCancellationRequested(config);
if (reason && reason.response) {
reason.response.data = transformData.call(
config,
config.transformResponse,
reason.response
);
reason.response.headers = AxiosHeaders_default.from(reason.response.headers);
}
}
return Promise.reject(reason);
});
}
var init_dispatchRequest = __esm({
"node_modules/axios/lib/core/dispatchRequest.js"() {
"use strict";
init_transformData();
init_isCancel();
init_defaults();
init_CanceledError();
init_AxiosHeaders();
init_adapters();
}
});
// node_modules/axios/lib/helpers/validator.js
function assertOptions(options, schema, allowUnknown) {
if (typeof options !== "object") {
throw new AxiosError_default("options must be an object", AxiosError_default.ERR_BAD_OPTION_VALUE);
}
const keys = Object.keys(options);
let i = keys.length;
while (i-- > 0) {
const opt = keys[i];
const validator = schema[opt];
if (validator) {
const value = options[opt];
const result = value === void 0 || validator(value, opt, options);
if (result !== true) {
throw new AxiosError_default("option " + opt + " must be " + result, AxiosError_default.ERR_BAD_OPTION_VALUE);
}
continue;
}
if (allowUnknown !== true) {
throw new AxiosError_default("Unknown option " + opt, AxiosError_default.ERR_BAD_OPTION);
}
}
}
var validators, deprecatedWarnings, validator_default;
var init_validator = __esm({
"node_modules/axios/lib/helpers/validator.js"() {
"use strict";
init_data();
init_AxiosError();
validators = {};
["object", "boolean", "number", "function", "string", "symbol"].forEach((type, i) => {
validators[type] = function validator(thing) {
return typeof thing === type || "a" + (i < 1 ? "n " : " ") + type;
};
});
deprecatedWarnings = {};
validators.transitional = function transitional(validator, version, message) {
function formatMessage(opt, desc) {
return "[Axios v" + VERSION + "] Transitional option '" + opt + "'" + desc + (message ? ". " + message : "");
}
return (value, opt, opts) => {
if (validator === false) {
throw new AxiosError_default(
formatMessage(opt, " has been removed" + (version ? " in " + version : "")),
AxiosError_default.ERR_DEPRECATED
);
}
if (version && !deprecatedWarnings[opt]) {
deprecatedWarnings[opt] = true;
console.warn(
formatMessage(
opt,
" has been deprecated since v" + version + " and will be removed in the near future"
)
);
}
return validator ? validator(value, opt, opts) : true;
};
};
validators.spelling = function spelling(correctSpelling) {
return (value, opt) => {
console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
return true;
};
};
validator_default = {
assertOptions,
validators
};
}
});
// node_modules/axios/lib/core/Axios.js
var validators2, Axios, Axios_default;
var init_Axios = __esm({
"node_modules/axios/lib/core/Axios.js"() {
"use strict";
init_utils();
init_buildURL();
init_InterceptorManager();
init_dispatchRequest();
init_mergeConfig();
init_buildFullPath();
init_validator();
init_AxiosHeaders();
validators2 = validator_default.validators;
Axios = class {
constructor(instanceConfig) {
this.defaults = instanceConfig;
this.interceptors = {
request: new InterceptorManager_default(),
response: new InterceptorManager_default()
};
}
/**
* Dispatch a request
*
* @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
* @param {?Object} config
*
* @returns {Promise} The Promise to be fulfilled
*/
async request(configOrUrl, config) {
try {
return await this._request(configOrUrl, config);
} catch (err2) {
if (err2 instanceof Error) {
let dummy = {};
Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();
const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
try {
if (!err2.stack) {
err2.stack = stack;
} else if (stack && !String(err2.stack).endsWith(stack.replace(/^.+\n.+\n/, ""))) {
err2.stack += "\n" + stack;
}
} catch (e) {
}
}
throw err2;
}
}
_request(configOrUrl, config) {
if (typeof configOrUrl === "string") {
config = config || {};
config.url = configOrUrl;
} else {
config = configOrUrl || {};
}
config = mergeConfig(this.defaults, config);
const { transitional: transitional2, paramsSerializer, headers } = config;
if (transitional2 !== void 0) {
validator_default.assertOptions(transitional2, {
silentJSONParsing: validators2.transitional(validators2.boolean),
forcedJSONParsing: validators2.transitional(validators2.boolean),
clarifyTimeoutError: validators2.transitional(validators2.boolean)
}, false);
}
if (paramsSerializer != null) {
if (utils_default.isFunction(paramsSerializer)) {
config.paramsSerializer = {
serialize: paramsSerializer
};
} else {
validator_default.assertOptions(paramsSerializer, {
encode: validators2.function,
serialize: validators2.function
}, true);
}
}
if (config.allowAbsoluteUrls !== void 0) {
} else if (this.defaults.allowAbsoluteUrls !== void 0) {
config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
} else {
config.allowAbsoluteUrls = true;
}
validator_default.assertOptions(config, {
baseUrl: validators2.spelling("baseURL"),
withXsrfToken: validators2.spelling("withXSRFToken")
}, true);
config.method = (config.method || this.defaults.method || "get").toLowerCase();
let contextHeaders = headers && utils_default.merge(
headers.common,
headers[config.method]
);
headers && utils_default.forEach(
["delete", "get", "head", "post", "put", "patch", "common"],
(method) => {
delete headers[method];
}
);
config.headers = AxiosHeaders_default.concat(contextHeaders, headers);
const requestInterceptorChain = [];
let synchronousRequestInterceptors = true;
this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
if (typeof interceptor.runWhen === "function" && interceptor.runWhen(config) === false) {
return;
}
synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
});
const responseInterceptorChain = [];
this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
});
let promise;
let i = 0;
let len;
if (!synchronousRequestInterceptors) {
const chain = [dispatchRequest.bind(this), void 0];
chain.unshift.apply(chain, requestInterceptorChain);
chain.push.apply(chain, responseInterceptorChain);
len = chain.length;
promise = Promise.resolve(config);
while (i < len) {
promise = promise.then(chain[i++], chain[i++]);
}
return promise;
}
len = requestInterceptorChain.length;
let newConfig = config;
i = 0;
while (i < len) {
const onFulfilled = requestInterceptorChain[i++];
const onRejected = requestInterceptorChain[i++];
try {
newConfig = onFulfilled(newConfig);
} catch (error) {
onRejected.call(this, error);
break;
}
}
try {
promise = dispatchRequest.call(this, newConfig);
} catch (error) {
return Promise.reject(error);
}
i = 0;
len = responseInterceptorChain.length;
while (i < len) {
promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);
}
return promise;
}
getUri(config) {
config = mergeConfig(this.defaults, config);
const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
return buildURL(fullPath, config.params, config.paramsSerializer);
}
};
utils_default.forEach(["delete", "get", "head", "options"], function forEachMethodNoData(method) {
Axios.prototype[method] = function(url2, config) {
return this.request(mergeConfig(config || {}, {
method,
url: url2,
data: (config || {}).data
}));
};
});
utils_default.forEach(["post", "put", "patch"], function forEachMethodWithData(method) {
function generateHTTPMethod(isForm) {
return function httpMethod(url2, data, config) {
return this.request(mergeConfig(config || {}, {
method,
headers: isForm ? {
"Content-Type": "multipart/form-data"
} : {},
url: url2,
data
}));
};
}
Axios.prototype[method] = generateHTTPMethod();
Axios.prototype[method + "Form"] = generateHTTPMethod(true);
});
Axios_default = Axios;
}
});
// node_modules/axios/lib/cancel/CancelToken.js
var CancelToken, CancelToken_default;
var init_CancelToken = __esm({
"node_modules/axios/lib/cancel/CancelToken.js"() {
"use strict";
init_CanceledError();
CancelToken = class _CancelToken {
constructor(executor) {
if (typeof executor !== "function") {
throw new TypeError("executor must be a function.");
}
let resolvePromise;
this.promise = new Promise(function promiseExecutor(resolve) {
resolvePromise = resolve;
});
const token = this;
this.promise.then((cancel) => {
if (!token._listeners) return;
let i = token._listeners.length;
while (i-- > 0) {
token._listeners[i](cancel);
}
token._listeners = null;
});
this.promise.then = (onfulfilled) => {
let _resolve;
const promise = new Promise((resolve) => {
token.subscribe(resolve);
_resolve = resolve;
}).then(onfulfilled);
promise.cancel = function reject() {
token.unsubscribe(_resolve);
};
return promise;
};
executor(function cancel(message, config, request) {
if (token.reason) {
return;
}
token.reason = new CanceledError_default(message, config, request);
resolvePromise(token.reason);
});
}
/**
* Throws a `CanceledError` if cancellation has been requested.
*/
throwIfRequested() {
if (this.reason) {
throw this.reason;
}
}
/**
* Subscribe to the cancel signal
*/
subscribe(listener) {
if (this.reason) {
listener(this.reason);
return;
}
if (this._listeners) {
this._listeners.push(listener);
} else {
this._listeners = [listener];
}
}
/**
* Unsubscribe from the cancel signal
*/
unsubscribe(listener) {
if (!this._listeners) {
return;
}
const index = this._listeners.indexOf(listener);
if (index !== -1) {
this._listeners.splice(index, 1);
}
}
toAbortSignal() {
const controller = new AbortController();
const abort = (err2) => {
controller.abort(err2);
};
this.subscribe(abort);
controller.signal.unsubscribe = () => this.unsubscribe(abort);
return controller.signal;
}
/**
* Returns an object that contains a new `CancelToken` and a function that, when called,
* cancels the `CancelToken`.
*/
static source() {
let cancel;
const token = new _CancelToken(function executor(c) {
cancel = c;
});
return {
token,
cancel
};
}
};
CancelToken_default = CancelToken;
}
});
// node_modules/axios/lib/helpers/spread.js
function spread(callback) {
return function wrap(arr) {
return callback.apply(null, arr);
};
}
var init_spread = __esm({
"node_modules/axios/lib/helpers/spread.js"() {
"use strict";
}
});
// node_modules/axios/lib/helpers/isAxiosError.js
function isAxiosError(payload) {
return utils_default.isObject(payload) && payload.isAxiosError === true;
}
var init_isAxiosError = __esm({
"node_modules/axios/lib/helpers/isAxiosError.js"() {
"use strict";
init_utils();
}
});
// node_modules/axios/lib/helpers/HttpStatusCode.js
var HttpStatusCode, HttpStatusCode_default;
var init_HttpStatusCode = __esm({
"node_modules/axios/lib/helpers/HttpStatusCode.js"() {
HttpStatusCode = {
Continue: 100,
SwitchingProtocols: 101,
Processing: 102,
EarlyHints: 103,
Ok: 200,
Created: 201,
Accepted: 202,
NonAuthoritativeInformation: 203,
NoContent: 204,
ResetContent: 205,
PartialContent: 206,
MultiStatus: 207,
AlreadyReported: 208,
ImUsed: 226,
MultipleChoices: 300,
MovedPermanently: 301,
Found: 302,
SeeOther: 303,
NotModified: 304,
UseProxy: 305,
Unused: 306,
TemporaryRedirect: 307,
PermanentRedirect: 308,
BadRequest: 400,
Unauthorized: 401,
PaymentRequired: 402,
Forbidden: 403,
NotFound: 404,
MethodNotAllowed: 405,
NotAcceptable: 406,
ProxyAuthenticationRequired: 407,
RequestTimeout: 408,
Conflict: 409,
Gone: 410,
LengthRequired: 411,
PreconditionFailed: 412,
PayloadTooLarge: 413,
UriTooLong: 414,
UnsupportedMediaType: 415,
RangeNotSatisfiable: 416,
ExpectationFailed: 417,
ImATeapot: 418,
MisdirectedRequest: 421,
UnprocessableEntity: 422,
Locked: 423,
FailedDependency: 424,
TooEarly: 425,
UpgradeRequired: 426,
PreconditionRequired: 428,
TooManyRequests: 429,
RequestHeaderFieldsTooLarge: 431,
UnavailableForLegalReasons: 451,
InternalServerError: 500,
NotImplemented: 501,
BadGateway: 502,
ServiceUnavailable: 503,
GatewayTimeout: 504,
HttpVersionNotSupported: 505,
VariantAlsoNegotiates: 506,
InsufficientStorage: 507,
LoopDetected: 508,
NotExtended: 510,
NetworkAuthenticationRequired: 511
};
Object.entries(HttpStatusCode).forEach(([key, value]) => {
HttpStatusCode[value] = key;
});
HttpStatusCode_default = HttpStatusCode;
}
});
// node_modules/axios/lib/axios.js
function createInstance(defaultConfig) {
const context = new Axios_default(defaultConfig);
const instance = bind(Axios_default.prototype.request, context);
utils_default.extend(instance, Axios_default.prototype, context, { allOwnKeys: true });
utils_default.extend(instance, context, null, { allOwnKeys: true });
instance.create = function create(instanceConfig) {
return createInstance(mergeConfig(defaultConfig, instanceConfig));
};
return instance;
}
var axios, axios_default;
var init_axios = __esm({
"node_modules/axios/lib/axios.js"() {
"use strict";
init_utils();
init_bind();
init_Axios();
init_mergeConfig();
init_defaults();
init_formDataToJSON();
init_CanceledError();
init_CancelToken();
init_isCancel();
init_data();
init_toFormData();
init_AxiosError();
init_spread();
init_isAxiosError();
init_AxiosHeaders();
init_adapters();
init_HttpStatusCode();
axios = createInstance(defaults_default);
axios.Axios = Axios_default;
axios.CanceledError = CanceledError_default;
axios.CancelToken = CancelToken_default;
axios.isCancel = isCancel;
axios.VERSION = VERSION;
axios.toFormData = toFormData_default;
axios.AxiosError = AxiosError_default;
axios.Cancel = axios.CanceledError;
axios.all = function all(promises) {
return Promise.all(promises);
};
axios.spread = spread;
axios.isAxiosError = isAxiosError;
axios.mergeConfig = mergeConfig;
axios.AxiosHeaders = AxiosHeaders_default;
axios.formToJSON = (thing) => formDataToJSON_default(utils_default.isHTMLForm(thing) ? new FormData(thing) : thing);
axios.getAdapter = adapters_default.getAdapter;
axios.HttpStatusCode = HttpStatusCode_default;
axios.default = axios;
axios_default = axios;
}
});
// node_modules/axios/index.js
var Axios2, AxiosError2, CanceledError2, isCancel2, CancelToken2, VERSION2, all2, Cancel, isAxiosError2, spread2, toFormData2, AxiosHeaders2, HttpStatusCode2, formToJSON, getAdapter, mergeConfig2;
var init_axios2 = __esm({
"node_modules/axios/index.js"() {
init_axios();
({
Axios: Axios2,
AxiosError: AxiosError2,
CanceledError: CanceledError2,
isCancel: isCancel2,
CancelToken: CancelToken2,
VERSION: VERSION2,
all: all2,
Cancel,
isAxiosError: isAxiosError2,
spread: spread2,
toFormData: toFormData2,
AxiosHeaders: AxiosHeaders2,
HttpStatusCode: HttpStatusCode2,
formToJSON,
getAdapter,
mergeConfig: mergeConfig2
} = axios_default);
}
});
// src/index.ts
var src_exports = {};
__export(src_exports, {
configSchema: () => configSchema,
default: () => createServer
});
function createServer({
config
}) {
const server = new McpServer({
name: "mcp-keywords-everywhere",
version: "1.1.0"
});
async function makeApiCall(endpoint, data = null, retryCount = 0) {
try {
const url2 = `${BASE_URL}/${endpoint}`;
console.error(`Calling Keywords Everywhere API: ${endpoint}`);
const config2 = {
method: data ? "post" : "get",
url: url2,
headers: {
"Authorization": `Bearer ${process.env.KEYWORDS_EVERYWHERE_API_KEY}`,
"Accept": "application/json"
}
};
if (data instanceof URLSearchParams) {
config2.data = data;
config2.headers["Content-Type"] = "application/x-www-form-urlencoded";
} else if (data) {
config2.data = data;
}
const response = await axios_default(config2);
console.error(`API Response Status: ${response.status}`);
return response.data;
} catch (error) {
const statusCode = error.response?.status;
const errorMessage = error.response?.data?.message || error.response?.data || error.message;
console.error(`Error calling Keywords Everywhere API (${endpoint}):`, {
statusCode,
errorMessage,
endpoint,
data
});
if (statusCode === 400) {
let enhancedMessage = `Bad Request (400): ${errorMessage}`;
if (errorMessage.includes("credit") || errorMessage.includes("credits")) {
enhancedMessage += ". You may need to add more credits to your Keywords Everywhere account.";
} else if (errorMessage.includes("subscription") || errorMessage.includes("plan")) {
enhancedMessage += ". This may be due to a subscription plan limitation. Please check your current plan.";
} else if (errorMessage.includes("limit") || errorMessage.includes("rate")) {
enhancedMessage += ". You may have hit a rate limit. Try again later.";
}
const customError = new Error(enhancedMessage);
customError.statusCode = statusCode;
customError.originalError = error;
throw customError;
} else if (statusCode === 401) {
throw new Error(`Authentication failed (401): Please check your API key`);
} else if (statusCode === 429) {
if (retryCount < 3) {
const delay = Math.pow(2, retryCount) * 1e3;
console.error(`Rate limited. Retrying in ${delay}ms...`);
await new Promise((resolve) => setTimeout(resolve, delay));
return makeApiCall(endpoint, data, retryCount + 1);
} else {
throw new Error(`Rate limit exceeded (429): Too many requests. Please try again later.`);
}
} else {
throw new Error(`API Error (${statusCode || "unknown"}): ${errorMessage}`);
}
}
}
function formatResponse(toolName, data) {
switch (toolName) {
case "get_credits":
return `Credit Balance: ${data[0]}`;
case "get_countries":
if (Array.isArray(data)) {
return data.map((country) => `${country.code}: ${country.name}`).join("\n");
}
return JSON.stringify(data, null, 2);
case "get_currencies":
if (Array.isArray(data)) {
return data.map((currency) => `${currency.code}: ${currency.name}`).join("\n");
}
return JSON.stringify(data, null, 2);
case "get_keyword_data":
if (data.data && Array.isArray(data.data)) {
return data.data.map((item) => {
return `${item.keyword}:
- Search Volume: ${item.vol || 0}
- CPC: ${item.cpc?.currency ? item.cpc.currency : "RM"}${item.cpc?.value || "0.00"}
- Competition: ${item.competition || 0}
- Trend: ${item.trend && item.trend.length > 0 ? JSON.stringify(item.trend) : "[]"}`;
}).join("\n\n");
}
return JSON.stringify(data, null, 2);
case "get_related_keywords":
case "get_pasf_keywords":
case "get_domain_keywords":
case "get_url_keywords":
if (Array.isArray(data)) {
return data.map((item, index) => {
return `${index + 1}. ${item.keyword}
- Search Volume: ${item.vol || 0}
- CPC: ${item.cpc?.currency ? item.cpc.currency : "RM"}${item.cpc?.value || "0.00"}
- Competition: ${item.competition || 0}`;
}).join("\n\n");
}
return JSON.stringify(data, null, 2);
case "get_domain_traffic":
case "get_url_traffic":
if (data && typeof data === "object") {
return `Traffic Metrics:
- Total Keywords: ${data.totalKeywords || 0}
- Total Traffic: ${data.totalTraffic || 0}
- Traffic Cost: RM${data.trafficCost || 0}`;
}
return JSON.stringify(data, null, 2);
case "get_domain_backlinks":
case "get_unique_domain_backlinks":
case "get_page_backlinks":
case "get_unique_page_backlinks":
if (Array.isArray(data)) {
return data.map((item, index) => {
return `${index + 1}. ${item.url}
- Domain Authority: ${item.da || 0}
- Page Authority: ${item.pa || 0}
- Spam Score: ${item.spamScore || 0}`;
}).join("\n\n");
}
return JSON.stringify(data, null, 2);
default:
return JSON.stringify(data, null, 2);
}
}
server.registerTool(
"get_credits",
{
title: "Get Credits",
description: "Get your account's credit balance",
inputSchema: {}
},
async () => {
try {
const result = await makeApiCall("account/credits");
const formattedResult = formatResponse("get_credits", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_countries",
{
title: "Get Countries",
description: "Get list of supported countries",
inputSchema: {}
},
async () => {
try {
const result = await makeApiCall("countries");
const formattedResult = formatResponse("get_countries", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_currencies",
{
title: "Get Currencies",
description: "Get list of supported currencies",
inputSchema: {}
},
async () => {
try {
const result = await makeApiCall("currencies");
const formattedResult = formatResponse("get_currencies", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_keyword_data",
{
title: "Get Keyword Data",
description: "Get Volume, CPC and competition for a set of keywords",
inputSchema: {
keywords: z.array(z.string()).describe("List of keywords to analyze"),
country: z.string().optional().describe("Country code (empty string for Global, 'us' for United States, etc.)"),
currency: z.string().optional().describe("Currency code (e.g., 'myr' for Malaysian Ringgit)")
}
},
async (request) => {
try {
const params = new URLSearchParams();
if (Array.isArray(request.keywords)) {
request.keywords.forEach((keyword) => {
params.append("kw[]", keyword);
});
}
params.append("country", request.country || "");
params.append("currency", request.currency || "myr");
params.append("dataSource", "cli");
const result = await makeApiCall("get_keyword_data", params);
const formattedResult = formatResponse("get_keyword_data", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_related_keywords",
{
title: "Get Related Keywords",
description: "Get related keywords based on a seed keyword",
inputSchema: {
keyword: z.string().describe("Seed keyword to find related terms for"),
num: z.number().optional().describe("Number of results to return (max 1000)")
}
},
async (request) => {
try {
const data = {
keyword: request.keyword,
num: request.num || 10
};
const result = await makeApiCall("get_related_keywords", data);
const formattedResult = formatResponse("get_related_keywords", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_pasf_keywords",
{
title: "Get PASF Keywords",
description: "Get 'People Also Search For' keywords based on a seed keyword",
inputSchema: {
keyword: z.string().describe("Seed keyword to find PASF terms for"),
num: z.number().optional().describe("Number of results to return (max 1000)")
}
},
async (request) => {
try {
const data = {
keyword: request.keyword,
num: request.num || 10
};
const result = await makeApiCall("get_pasf_keywords", data);
const formattedResult = formatResponse("get_pasf_keywords", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_domain_keywords",
{
title: "Get Domain Keywords",
description: "Get keywords that a domain ranks for",
inputSchema: {
domain: z.string().describe("Domain to analyze (e.g., example.com)"),
country: z.string().optional().describe("Country code (empty string for Global, 'us' for United States, etc.)"),
num: z.number().optional().describe("Number of results to return (max 1000)")
}
},
async (request) => {
try {
const data = {
domain: request.domain,
country: request.country || "",
num: request.num || 10
};
const result = await makeApiCall("get_domain_keywords", data);
const formattedResult = formatResponse("get_domain_keywords", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_url_keywords",
{
title: "Get URL Keywords",
description: "Get keywords that a URL ranks for",
inputSchema: {
url: z.string().describe("URL to analyze"),
country: z.string().optional().describe("Country code (empty string for Global, 'us' for United States, etc.)"),
num: z.number().optional().describe("Number of results to return (max 1000)")
}
},
async (request) => {
try {
const data = {
url: request.url,
country: request.country || "",
num: request.num || 10
};
const result = await makeApiCall("get_url_keywords", data);
const formattedResult = formatResponse("get_url_keywords", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_domain_traffic",
{
title: "Get Domain Traffic",
description: "Get traffic metrics for a domain",
inputSchema: {
domain: z.string().describe("Domain to analyze (e.g., example.com)"),
country: z.string().optional().describe("Country code (empty string for Global, 'us' for United States, etc.)")
}
},
async (request) => {
try {
const data = {
domain: request.domain,
country: request.country || ""
};
const result = await makeApiCall("get_domain_traffic", data);
const formattedResult = formatResponse("get_domain_traffic", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_url_traffic",
{
title: "Get URL Traffic",
description: "Get traffic metrics for a URL",
inputSchema: {
url: z.string().describe("URL to analyze"),
country: z.string().optional().describe("Country code (empty string for Global, 'us' for United States, etc.)")
}
},
async (request) => {
try {
const data = {
url: request.url,
country: request.country || ""
};
const result = await makeApiCall("get_url_traffic", data);
const formattedResult = formatResponse("get_url_traffic", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_domain_backlinks",
{
title: "Get Domain Backlinks",
description: "Get backlinks for a domain",
inputSchema: {
domain: z.string().describe("Domain to analyze (e.g., example.com)"),
num: z.number().optional().describe("Number of results to return (max 1000)")
}
},
async (request) => {
try {
const data = {
domain: request.domain,
num: request.num || 10
};
const result = await makeApiCall("get_domain_backlinks", data);
const formattedResult = formatResponse("get_domain_backlinks", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_unique_domain_backlinks",
{
title: "Get Unique Domain Backlinks",
description: "Get unique domain backlinks",
inputSchema: {
domain: z.string().describe("Domain to analyze (e.g., example.com)"),
num: z.number().optional().describe("Number of results to return (max 1000)")
}
},
async (request) => {
try {
const data = {
domain: request.domain,
num: request.num || 10
};
const result = await makeApiCall("get_unique_domain_backlinks", data);
const formattedResult = formatResponse("get_unique_domain_backlinks", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_page_backlinks",
{
title: "Get Page Backlinks",
description: "Get backlinks for a specific URL",
inputSchema: {
url: z.string().describe("URL to analyze"),
num: z.number().optional().describe("Number of results to return (max 1000)")
}
},
async (request) => {
try {
const data = {
url: request.url,
num: request.num || 10
};
const result = await makeApiCall("get_page_backlinks", data);
const formattedResult = formatResponse("get_page_backlinks", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
server.registerTool(
"get_unique_page_backlinks",
{
title: "Get Unique Page Backlinks",
description: "Get unique backlinks for a specific URL",
inputSchema: {
url: z.string().describe("URL to analyze"),
num: z.number().optional().describe("Number of results to return (max 1000)")
}
},
async (request) => {
try {
const data = {
url: request.url,
num: request.num || 10
};
const result = await makeApiCall("get_unique_page_backlinks", data);
const formattedResult = formatResponse("get_unique_page_backlinks", result);
return {
content: [{
type: "text",
text: formattedResult
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: "Error: " + (error instanceof Error ? error.message : String(error))
}],
isError: true
};
}
}
);
return server.server;
}
var configSchema, BASE_URL;
var init_src = __esm({
"src/index.ts"() {
"use strict";
init_mcp();
init_lib();
init_axios2();
configSchema = z.object({
KEYWORDS_EVERYWHERE_API_KEY: z.string().describe("API key for Keywords Everywhere")
});
BASE_URL = "https://api.keywordseverywhere.com/v1";
}
});
// bootstrap:virtual:bootstrap
var __create2 = Object.create;
var __defProp2 = Object.defineProperty;
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
var __getOwnPropNames2 = Object.getOwnPropertyNames;
var __getProtoOf2 = Object.getPrototypeOf;
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
var __commonJS2 = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __copyProps2 = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames2(from))
if (!__hasOwnProp2.call(to, key) && key !== except)
__defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
}
return to;
};
var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var require_bytes = __commonJS2({
"node_modules/bytes/index.js"(exports2, module2) {
"use strict";
module2.exports = bytes;
module2.exports.format = format;
module2.exports.parse = parse;
var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g;
var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/;
var map = {
b: 1,
kb: 1 << 10,
mb: 1 << 20,
gb: 1 << 30,
tb: Math.pow(1024, 4),
pb: Math.pow(1024, 5)
};
var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;
function bytes(value, options) {
if (typeof value === "string") {
return parse(value);
}
if (typeof value === "number") {
return format(value, options);
}
return null;
}
function format(value, options) {
if (!Number.isFinite(value)) {
return null;
}
var mag = Math.abs(value);
var thousandsSeparator = options && options.thousandsSeparator || "";
var unitSeparator = options && options.unitSeparator || "";
var decimalPlaces = options && options.decimalPlaces !== void 0 ? options.decimalPlaces : 2;
var fixedDecimals = Boolean(options && options.fixedDecimals);
var unit = options && options.unit || "";
if (!unit || !map[unit.toLowerCase()]) {
if (mag >= map.pb) {
unit = "PB";
} else if (mag >= map.tb) {
unit = "TB";
} else if (mag >= map.gb) {
unit = "GB";
} else if (mag >= map.mb) {
unit = "MB";
} else if (mag >= map.kb) {
unit = "KB";
} else {
unit = "B";
}
}
var val = value / map[unit.toLowerCase()];
var str = val.toFixed(decimalPlaces);
if (!fixedDecimals) {
str = str.replace(formatDecimalsRegExp, "$1");
}
if (thousandsSeparator) {
str = str.split(".").map(function(s, i) {
return i === 0 ? s.replace(formatThousandsRegExp, thousandsSeparator) : s;
}).join(".");
}
return str + unitSeparator + unit;
}
function parse(val) {
if (typeof val === "number" && !isNaN(val)) {
return val;
}
if (typeof val !== "string") {
return null;
}
var results = parseRegExp.exec(val);
var floatValue;
var unit = "b";
if (!results) {
floatValue = parseInt(val, 10);
unit = "b";
} else {
floatValue = parseFloat(results[1]);
unit = results[4].toLowerCase();
}
if (isNaN(floatValue)) {
return null;
}
return Math.floor(map[unit] * floatValue);
}
}
});
var require_depd = __commonJS2({
"node_modules/depd/index.js"(exports2, module2) {
var relative = require("path").relative;
module2.exports = depd;
var basePath = process.cwd();
function containsNamespace(str, namespace) {
var vals = str.split(/[ ,]+/);
var ns = String(namespace).toLowerCase();
for (var i = 0; i < vals.length; i++) {
var val = vals[i];
if (val && (val === "*" || val.toLowerCase() === ns)) {
return true;
}
}
return false;
}
function convertDataDescriptorToAccessor(obj, prop, message) {
var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
var value = descriptor.value;
descriptor.get = function getter() {
return value;
};
if (descriptor.writable) {
descriptor.set = function setter(val) {
return value = val;
};
}
delete descriptor.value;
delete descriptor.writable;
Object.defineProperty(obj, prop, descriptor);
return descriptor;
}
function createArgumentsString(arity) {
var str = "";
for (var i = 0; i < arity; i++) {
str += ", arg" + i;
}
return str.substr(2);
}
function createStackString(stack) {
var str = this.name + ": " + this.namespace;
if (this.message) {
str += " deprecated " + this.message;
}
for (var i = 0; i < stack.length; i++) {
str += "\n at " + stack[i].toString();
}
return str;
}
function depd(namespace) {
if (!namespace) {
throw new TypeError("argument namespace is required");
}
var stack = getStack();
var site = callSiteLocation(stack[1]);
var file = site[0];
function deprecate(message) {
log.call(deprecate, message);
}
deprecate._file = file;
deprecate._ignored = isignored(namespace);
deprecate._namespace = namespace;
deprecate._traced = istraced(namespace);
deprecate._warned = /* @__PURE__ */ Object.create(null);
deprecate.function = wrapfunction;
deprecate.property = wrapproperty;
return deprecate;
}
function eehaslisteners(emitter, type) {
var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type);
return count > 0;
}
function isignored(namespace) {
if (process.noDeprecation) {
return true;
}
var str = process.env.NO_DEPRECATION || "";
return containsNamespace(str, namespace);
}
function istraced(namespace) {
if (process.traceDeprecation) {
return true;
}
var str = process.env.TRACE_DEPRECATION || "";
return containsNamespace(str, namespace);
}
function log(message, site) {
var haslisteners = eehaslisteners(process, "deprecation");
if (!haslisteners && this._ignored) {
return;
}
var caller;
var callFile;
var callSite;
var depSite;
var i = 0;
var seen = false;
var stack = getStack();
var file = this._file;
if (site) {
depSite = site;
callSite = callSiteLocation(stack[1]);
callSite.name = depSite.name;
file = callSite[0];
} else {
i = 2;
depSite = callSiteLocation(stack[i]);
callSite = depSite;
}
for (; i < stack.length; i++) {
caller = callSiteLocation(stack[i]);
callFile = caller[0];
if (callFile === file) {
seen = true;
} else if (callFile === this._file) {
file = this._file;
} else if (seen) {
break;
}
}
var key = caller ? depSite.join(":") + "__" + caller.join(":") : void 0;
if (key !== void 0 && key in this._warned) {
return;
}
this._warned[key] = true;
var msg = message;
if (!msg) {
msg = callSite === depSite || !callSite.name ? defaultMessage(depSite) : defaultMessage(callSite);
}
if (haslisteners) {
var err2 = DeprecationError(this._namespace, msg, stack.slice(i));
process.emit("deprecation", err2);
return;
}
var format = process.stderr.isTTY ? formatColor : formatPlain;
var output = format.call(this, msg, caller, stack.slice(i));
process.stderr.write(output + "\n", "utf8");
}
function callSiteLocation(callSite) {
var file = callSite.getFileName() || "<anonymous>";
var line = callSite.getLineNumber();
var colm = callSite.getColumnNumber();
if (callSite.isEval()) {
file = callSite.getEvalOrigin() + ", " + file;
}
var site = [file, line, colm];
site.callSite = callSite;
site.name = callSite.getFunctionName();
return site;
}
function defaultMessage(site) {
var callSite = site.callSite;
var funcName = site.name;
if (!funcName) {
funcName = "<anonymous@" + formatLocation(site) + ">";
}
var context = callSite.getThis();
var typeName = context && callSite.getTypeName();
if (typeName === "Object") {
typeName = void 0;
}
if (typeName === "Function") {
typeName = context.name || typeName;
}
return typeName && callSite.getMethodName() ? typeName + "." + funcName : funcName;
}
function formatPlain(msg, caller, stack) {
var timestamp = (/* @__PURE__ */ new Date()).toUTCString();
var formatted = timestamp + " " + this._namespace + " deprecated " + msg;
if (this._traced) {
for (var i = 0; i < stack.length; i++) {
formatted += "\n at " + stack[i].toString();
}
return formatted;
}
if (caller) {
formatted += " at " + formatLocation(caller);
}
return formatted;
}
function formatColor(msg, caller, stack) {
var formatted = "\x1B[36;1m" + this._namespace + "\x1B[22;39m \x1B[33;1mdeprecated\x1B[22;39m \x1B[0m" + msg + "\x1B[39m";
if (this._traced) {
for (var i = 0; i < stack.length; i++) {
formatted += "\n \x1B[36mat " + stack[i].toString() + "\x1B[39m";
}
return formatted;
}
if (caller) {
formatted += " \x1B[36m" + formatLocation(caller) + "\x1B[39m";
}
return formatted;
}
function formatLocation(callSite) {
return relative(basePath, callSite[0]) + ":" + callSite[1] + ":" + callSite[2];
}
function getStack() {
var limit = Error.stackTraceLimit;
var obj = {};
var prep = Error.prepareStackTrace;
Error.prepareStackTrace = prepareObjectStackTrace;
Error.stackTraceLimit = Math.max(10, limit);
Error.captureStackTrace(obj);
var stack = obj.stack.slice(1);
Error.prepareStackTrace = prep;
Error.stackTraceLimit = limit;
return stack;
}
function prepareObjectStackTrace(obj, stack) {
return stack;
}
function wrapfunction(fn, message) {
if (typeof fn !== "function") {
throw new TypeError("argument fn must be a function");
}
var args = createArgumentsString(fn.length);
var stack = getStack();
var site = callSiteLocation(stack[1]);
site.name = fn.name;
var deprecatedfn = new Function(
"fn",
"log",
"deprecate",
"message",
"site",
'"use strict"\nreturn function (' + args + ") {log.call(deprecate, message, site)\nreturn fn.apply(this, arguments)\n}"
)(fn, log, this, message, site);
return deprecatedfn;
}
function wrapproperty(obj, prop, message) {
if (!obj || typeof obj !== "object" && typeof obj !== "function") {
throw new TypeError("argument obj must be object");
}
var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
if (!descriptor) {
throw new TypeError("must call property on owner object");
}
if (!descriptor.configurable) {
throw new TypeError("property must be configurable");
}
var deprecate = this;
var stack = getStack();
var site = callSiteLocation(stack[1]);
site.name = prop;
if ("value" in descriptor) {
descriptor = convertDataDescriptorToAccessor(obj, prop, message);
}
var get = descriptor.get;
var set = descriptor.set;
if (typeof get === "function") {
descriptor.get = function getter() {
log.call(deprecate, message, site);
return get.apply(this, arguments);
};
}
if (typeof set === "function") {
descriptor.set = function setter() {
log.call(deprecate, message, site);
return set.apply(this, arguments);
};
}
Object.defineProperty(obj, prop, descriptor);
}
function DeprecationError(namespace, message, stack) {
var error = new Error();
var stackString;
Object.defineProperty(error, "constructor", {
value: DeprecationError
});
Object.defineProperty(error, "message", {
configurable: true,
enumerable: false,
value: message,
writable: true
});
Object.defineProperty(error, "name", {
enumerable: false,
configurable: true,
value: "DeprecationError",
writable: true
});
Object.defineProperty(error, "namespace", {
configurable: true,
enumerable: false,
value: namespace,
writable: true
});
Object.defineProperty(error, "stack", {
configurable: true,
enumerable: false,
get: function() {
if (stackString !== void 0) {
return stackString;
}
return stackString = createStackString.call(this, stack);
},
set: function setter(val) {
stackString = val;
}
});
return error;
}
}
});
var require_setprototypeof = __commonJS2({
"node_modules/setprototypeof/index.js"(exports2, module2) {
"use strict";
module2.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);
function setProtoOf(obj, proto) {
obj.__proto__ = proto;
return obj;
}
function mixinProperties(obj, proto) {
for (var prop in proto) {
if (!Object.prototype.hasOwnProperty.call(obj, prop)) {
obj[prop] = proto[prop];
}
}
return obj;
}
}
});
var require_codes = __commonJS2({
"node_modules/statuses/codes.json"(exports2, module2) {
module2.exports = {
"100": "Continue",
"101": "Switching Protocols",
"102": "Processing",
"103": "Early Hints",
"200": "OK",
"201": "Created",
"202": "Accepted",
"203": "Non-Authoritative Information",
"204": "No Content",
"205": "Reset Content",
"206": "Partial Content",
"207": "Multi-Status",
"208": "Already Reported",
"226": "IM Used",
"300": "Multiple Choices",
"301": "Moved Permanently",
"302": "Found",
"303": "See Other",
"304": "Not Modified",
"305": "Use Proxy",
"307": "Temporary Redirect",
"308": "Permanent Redirect",
"400": "Bad Request",
"401": "Unauthorized",
"402": "Payment Required",
"403": "Forbidden",
"404": "Not Found",
"405": "Method Not Allowed",
"406": "Not Acceptable",
"407": "Proxy Authentication Required",
"408": "Request Timeout",
"409": "Conflict",
"410": "Gone",
"411": "Length Required",
"412": "Precondition Failed",
"413": "Payload Too Large",
"414": "URI Too Long",
"415": "Unsupported Media Type",
"416": "Range Not Satisfiable",
"417": "Expectation Failed",
"418": "I'm a Teapot",
"421": "Misdirected Request",
"422": "Unprocessable Entity",
"423": "Locked",
"424": "Failed Dependency",
"425": "Too Early",
"426": "Upgrade Required",
"428": "Precondition Required",
"429": "Too Many Requests",
"431": "Request Header Fields Too Large",
"451": "Unavailable For Legal Reasons",
"500": "Internal Server Error",
"501": "Not Implemented",
"502": "Bad Gateway",
"503": "Service Unavailable",
"504": "Gateway Timeout",
"505": "HTTP Version Not Supported",
"506": "Variant Also Negotiates",
"507": "Insufficient Storage",
"508": "Loop Detected",
"509": "Bandwidth Limit Exceeded",
"510": "Not Extended",
"511": "Network Authentication Required"
};
}
});
var require_statuses = __commonJS2({
"node_modules/statuses/index.js"(exports2, module2) {
"use strict";
var codes = require_codes();
module2.exports = status;
status.message = codes;
status.code = createMessageToStatusCodeMap(codes);
status.codes = createStatusCodeList(codes);
status.redirect = {
300: true,
301: true,
302: true,
303: true,
305: true,
307: true,
308: true
};
status.empty = {
204: true,
205: true,
304: true
};
status.retry = {
502: true,
503: true,
504: true
};
function createMessageToStatusCodeMap(codes2) {
var map = {};
Object.keys(codes2).forEach(function forEachCode(code) {
var message = codes2[code];
var status2 = Number(code);
map[message.toLowerCase()] = status2;
});
return map;
}
function createStatusCodeList(codes2) {
return Object.keys(codes2).map(function mapCode(code) {
return Number(code);
});
}
function getStatusCode(message) {
var msg = message.toLowerCase();
if (!Object.prototype.hasOwnProperty.call(status.code, msg)) {
throw new Error('invalid status message: "' + message + '"');
}
return status.code[msg];
}
function getStatusMessage(code) {
if (!Object.prototype.hasOwnProperty.call(status.message, code)) {
throw new Error("invalid status code: " + code);
}
return status.message[code];
}
function status(code) {
if (typeof code === "number") {
return getStatusMessage(code);
}
if (typeof code !== "string") {
throw new TypeError("code must be a number or string");
}
var n = parseInt(code, 10);
if (!isNaN(n)) {
return getStatusMessage(n);
}
return getStatusCode(code);
}
}
});
var require_inherits_browser = __commonJS2({
"node_modules/inherits/inherits_browser.js"(exports2, module2) {
if (typeof Object.create === "function") {
module2.exports = function inherits2(ctor, superCtor) {
if (superCtor) {
ctor.super_ = superCtor;
ctor.prototype = Object.create(superCtor.prototype, {
constructor: {
value: ctor,
enumerable: false,
writable: true,
configurable: true
}
});
}
};
} else {
module2.exports = function inherits2(ctor, superCtor) {
if (superCtor) {
ctor.super_ = superCtor;
var TempCtor = function() {
};
TempCtor.prototype = superCtor.prototype;
ctor.prototype = new TempCtor();
ctor.prototype.constructor = ctor;
}
};
}
}
});
var require_inherits = __commonJS2({
"node_modules/inherits/inherits.js"(exports2, module2) {
try {
util22 = require("util");
if (typeof util22.inherits !== "function") throw "";
module2.exports = util22.inherits;
} catch (e) {
module2.exports = require_inherits_browser();
}
var util22;
}
});
var require_toidentifier = __commonJS2({
"node_modules/toidentifier/index.js"(exports2, module2) {
"use strict";
module2.exports = toIdentifier;
function toIdentifier(str) {
return str.split(" ").map(function(token) {
return token.slice(0, 1).toUpperCase() + token.slice(1);
}).join("").replace(/[^ _0-9a-z]/gi, "");
}
}
});
var require_http_errors = __commonJS2({
"node_modules/http-errors/index.js"(exports2, module2) {
"use strict";
var deprecate = require_depd()("http-errors");
var setPrototypeOf = require_setprototypeof();
var statuses = require_statuses();
var inherits2 = require_inherits();
var toIdentifier = require_toidentifier();
module2.exports = createError;
module2.exports.HttpError = createHttpErrorConstructor();
module2.exports.isHttpError = createIsHttpErrorFunction(module2.exports.HttpError);
populateConstructorExports(module2.exports, statuses.codes, module2.exports.HttpError);
function codeClass(status) {
return Number(String(status).charAt(0) + "00");
}
function createError() {
var err2;
var msg;
var status = 500;
var props = {};
for (var i = 0; i < arguments.length; i++) {
var arg = arguments[i];
var type = typeof arg;
if (type === "object" && arg instanceof Error) {
err2 = arg;
status = err2.status || err2.statusCode || status;
} else if (type === "number" && i === 0) {
status = arg;
} else if (type === "string") {
msg = arg;
} else if (type === "object") {
props = arg;
} else {
throw new TypeError("argument #" + (i + 1) + " unsupported type " + type);
}
}
if (typeof status === "number" && (status < 400 || status >= 600)) {
deprecate("non-error status code; use only 4xx or 5xx status codes");
}
if (typeof status !== "number" || !statuses.message[status] && (status < 400 || status >= 600)) {
status = 500;
}
var HttpError = createError[status] || createError[codeClass(status)];
if (!err2) {
err2 = HttpError ? new HttpError(msg) : new Error(msg || statuses.message[status]);
Error.captureStackTrace(err2, createError);
}
if (!HttpError || !(err2 instanceof HttpError) || err2.status !== status) {
err2.expose = status < 500;
err2.status = err2.statusCode = status;
}
for (var key in props) {
if (key !== "status" && key !== "statusCode") {
err2[key] = props[key];
}
}
return err2;
}
function createHttpErrorConstructor() {
function HttpError() {
throw new TypeError("cannot construct abstract class");
}
inherits2(HttpError, Error);
return HttpError;
}
function createClientErrorConstructor(HttpError, name, code) {
var className = toClassName(name);
function ClientError(message) {
var msg = message != null ? message : statuses.message[code];
var err2 = new Error(msg);
Error.captureStackTrace(err2, ClientError);
setPrototypeOf(err2, ClientError.prototype);
Object.defineProperty(err2, "message", {
enumerable: true,
configurable: true,
value: msg,
writable: true
});
Object.defineProperty(err2, "name", {
enumerable: false,
configurable: true,
value: className,
writable: true
});
return err2;
}
inherits2(ClientError, HttpError);
nameFunc(ClientError, className);
ClientError.prototype.status = code;
ClientError.prototype.statusCode = code;
ClientError.prototype.expose = true;
return ClientError;
}
function createIsHttpErrorFunction(HttpError) {
return function isHttpError(val) {
if (!val || typeof val !== "object") {
return false;
}
if (val instanceof HttpError) {
return true;
}
return val instanceof Error && typeof val.expose === "boolean" && typeof val.statusCode === "number" && val.status === val.statusCode;
};
}
function createServerErrorConstructor(HttpError, name, code) {
var className = toClassName(name);
function ServerError(message) {
var msg = message != null ? message : statuses.message[code];
var err2 = new Error(msg);
Error.captureStackTrace(err2, ServerError);
setPrototypeOf(err2, ServerError.prototype);
Object.defineProperty(err2, "message", {
enumerable: true,
configurable: true,
value: msg,
writable: true
});
Object.defineProperty(err2, "name", {
enumerable: false,
configurable: true,
value: className,
writable: true
});
return err2;
}
inherits2(ServerError, HttpError);
nameFunc(ServerError, className);
ServerError.prototype.status = code;
ServerError.prototype.statusCode = code;
ServerError.prototype.expose = false;
return ServerError;
}
function nameFunc(func, name) {
var desc = Object.getOwnPropertyDescriptor(func, "name");
if (desc && desc.configurable) {
desc.value = name;
Object.defineProperty(func, "name", desc);
}
}
function populateConstructorExports(exports3, codes, HttpError) {
codes.forEach(function forEachCode(code) {
var CodeError;
var name = toIdentifier(statuses.message[code]);
switch (codeClass(code)) {
case 400:
CodeError = createClientErrorConstructor(HttpError, name, code);
break;
case 500:
CodeError = createServerErrorConstructor(HttpError, name, code);
break;
}
if (CodeError) {
exports3[code] = CodeError;
exports3[name] = CodeError;
}
});
}
function toClassName(name) {
return name.substr(-5) !== "Error" ? name + "Error" : name;
}
}
});
var require_safer = __commonJS2({
"node_modules/safer-buffer/safer.js"(exports2, module2) {
"use strict";
var buffer = require("buffer");
var Buffer2 = buffer.Buffer;
var safer = {};
var key;
for (key in buffer) {
if (!buffer.hasOwnProperty(key)) continue;
if (key === "SlowBuffer" || key === "Buffer") continue;
safer[key] = buffer[key];
}
var Safer = safer.Buffer = {};
for (key in Buffer2) {
if (!Buffer2.hasOwnProperty(key)) continue;
if (key === "allocUnsafe" || key === "allocUnsafeSlow") continue;
Safer[key] = Buffer2[key];
}
safer.Buffer.prototype = Buffer2.prototype;
if (!Safer.from || Safer.from === Uint8Array.from) {
Safer.from = function(value, encodingOrOffset, length) {
if (typeof value === "number") {
throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value);
}
if (value && typeof value.length === "undefined") {
throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);
}
return Buffer2(value, encodingOrOffset, length);
};
}
if (!Safer.alloc) {
Safer.alloc = function(size, fill, encoding) {
if (typeof size !== "number") {
throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size);
}
if (size < 0 || size >= 2 * (1 << 30)) {
throw new RangeError('The value "' + size + '" is invalid for option "size"');
}
var buf = Buffer2(size);
if (!fill || fill.length === 0) {
buf.fill(0);
} else if (typeof encoding === "string") {
buf.fill(fill, encoding);
} else {
buf.fill(fill);
}
return buf;
};
}
if (!safer.kStringMaxLength) {
try {
safer.kStringMaxLength = process.binding("buffer").kStringMaxLength;
} catch (e) {
}
}
if (!safer.constants) {
safer.constants = {
MAX_LENGTH: safer.kMaxLength
};
if (safer.kStringMaxLength) {
safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;
}
}
module2.exports = safer;
}
});
var require_bom_handling = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/lib/bom-handling.js"(exports2) {
"use strict";
var BOMChar = "\uFEFF";
exports2.PrependBOM = PrependBOMWrapper;
function PrependBOMWrapper(encoder, options) {
this.encoder = encoder;
this.addBOM = true;
}
PrependBOMWrapper.prototype.write = function(str) {
if (this.addBOM) {
str = BOMChar + str;
this.addBOM = false;
}
return this.encoder.write(str);
};
PrependBOMWrapper.prototype.end = function() {
return this.encoder.end();
};
exports2.StripBOM = StripBOMWrapper;
function StripBOMWrapper(decoder, options) {
this.decoder = decoder;
this.pass = false;
this.options = options || {};
}
StripBOMWrapper.prototype.write = function(buf) {
var res = this.decoder.write(buf);
if (this.pass || !res)
return res;
if (res[0] === BOMChar) {
res = res.slice(1);
if (typeof this.options.stripBOM === "function")
this.options.stripBOM();
}
this.pass = true;
return res;
};
StripBOMWrapper.prototype.end = function() {
return this.decoder.end();
};
}
});
var require_internal = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/internal.js"(exports2, module2) {
"use strict";
var Buffer2 = require_safer().Buffer;
module2.exports = {
// Encodings
utf8: { type: "_internal", bomAware: true },
cesu8: { type: "_internal", bomAware: true },
unicode11utf8: "utf8",
ucs2: { type: "_internal", bomAware: true },
utf16le: "ucs2",
binary: { type: "_internal" },
base64: { type: "_internal" },
hex: { type: "_internal" },
// Codec.
_internal: InternalCodec
};
function InternalCodec(codecOptions, iconv) {
this.enc = codecOptions.encodingName;
this.bomAware = codecOptions.bomAware;
if (this.enc === "base64")
this.encoder = InternalEncoderBase64;
else if (this.enc === "cesu8") {
this.enc = "utf8";
this.encoder = InternalEncoderCesu8;
if (Buffer2.from("eda0bdedb2a9", "hex").toString() !== "\u{1F4A9}") {
this.decoder = InternalDecoderCesu8;
this.defaultCharUnicode = iconv.defaultCharUnicode;
}
}
}
InternalCodec.prototype.encoder = InternalEncoder;
InternalCodec.prototype.decoder = InternalDecoder;
var StringDecoder = require("string_decoder").StringDecoder;
if (!StringDecoder.prototype.end)
StringDecoder.prototype.end = function() {
};
function InternalDecoder(options, codec) {
this.decoder = new StringDecoder(codec.enc);
}
InternalDecoder.prototype.write = function(buf) {
if (!Buffer2.isBuffer(buf)) {
buf = Buffer2.from(buf);
}
return this.decoder.write(buf);
};
InternalDecoder.prototype.end = function() {
return this.decoder.end();
};
function InternalEncoder(options, codec) {
this.enc = codec.enc;
}
InternalEncoder.prototype.write = function(str) {
return Buffer2.from(str, this.enc);
};
InternalEncoder.prototype.end = function() {
};
function InternalEncoderBase64(options, codec) {
this.prevStr = "";
}
InternalEncoderBase64.prototype.write = function(str) {
str = this.prevStr + str;
var completeQuads = str.length - str.length % 4;
this.prevStr = str.slice(completeQuads);
str = str.slice(0, completeQuads);
return Buffer2.from(str, "base64");
};
InternalEncoderBase64.prototype.end = function() {
return Buffer2.from(this.prevStr, "base64");
};
function InternalEncoderCesu8(options, codec) {
}
InternalEncoderCesu8.prototype.write = function(str) {
var buf = Buffer2.alloc(str.length * 3), bufIdx = 0;
for (var i = 0; i < str.length; i++) {
var charCode = str.charCodeAt(i);
if (charCode < 128)
buf[bufIdx++] = charCode;
else if (charCode < 2048) {
buf[bufIdx++] = 192 + (charCode >>> 6);
buf[bufIdx++] = 128 + (charCode & 63);
} else {
buf[bufIdx++] = 224 + (charCode >>> 12);
buf[bufIdx++] = 128 + (charCode >>> 6 & 63);
buf[bufIdx++] = 128 + (charCode & 63);
}
}
return buf.slice(0, bufIdx);
};
InternalEncoderCesu8.prototype.end = function() {
};
function InternalDecoderCesu8(options, codec) {
this.acc = 0;
this.contBytes = 0;
this.accBytes = 0;
this.defaultCharUnicode = codec.defaultCharUnicode;
}
InternalDecoderCesu8.prototype.write = function(buf) {
var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, res = "";
for (var i = 0; i < buf.length; i++) {
var curByte = buf[i];
if ((curByte & 192) !== 128) {
if (contBytes > 0) {
res += this.defaultCharUnicode;
contBytes = 0;
}
if (curByte < 128) {
res += String.fromCharCode(curByte);
} else if (curByte < 224) {
acc = curByte & 31;
contBytes = 1;
accBytes = 1;
} else if (curByte < 240) {
acc = curByte & 15;
contBytes = 2;
accBytes = 1;
} else {
res += this.defaultCharUnicode;
}
} else {
if (contBytes > 0) {
acc = acc << 6 | curByte & 63;
contBytes--;
accBytes++;
if (contBytes === 0) {
if (accBytes === 2 && acc < 128 && acc > 0)
res += this.defaultCharUnicode;
else if (accBytes === 3 && acc < 2048)
res += this.defaultCharUnicode;
else
res += String.fromCharCode(acc);
}
} else {
res += this.defaultCharUnicode;
}
}
}
this.acc = acc;
this.contBytes = contBytes;
this.accBytes = accBytes;
return res;
};
InternalDecoderCesu8.prototype.end = function() {
var res = 0;
if (this.contBytes > 0)
res += this.defaultCharUnicode;
return res;
};
}
});
var require_utf32 = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/utf32.js"(exports2) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports2._utf32 = Utf32Codec;
function Utf32Codec(codecOptions, iconv) {
this.iconv = iconv;
this.bomAware = true;
this.isLE = codecOptions.isLE;
}
exports2.utf32le = { type: "_utf32", isLE: true };
exports2.utf32be = { type: "_utf32", isLE: false };
exports2.ucs4le = "utf32le";
exports2.ucs4be = "utf32be";
Utf32Codec.prototype.encoder = Utf32Encoder;
Utf32Codec.prototype.decoder = Utf32Decoder;
function Utf32Encoder(options, codec) {
this.isLE = codec.isLE;
this.highSurrogate = 0;
}
Utf32Encoder.prototype.write = function(str) {
var src = Buffer2.from(str, "ucs2");
var dst = Buffer2.alloc(src.length * 2);
var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE;
var offset = 0;
for (var i = 0; i < src.length; i += 2) {
var code = src.readUInt16LE(i);
var isHighSurrogate = 55296 <= code && code < 56320;
var isLowSurrogate = 56320 <= code && code < 57344;
if (this.highSurrogate) {
if (isHighSurrogate || !isLowSurrogate) {
write32.call(dst, this.highSurrogate, offset);
offset += 4;
} else {
var codepoint = (this.highSurrogate - 55296 << 10 | code - 56320) + 65536;
write32.call(dst, codepoint, offset);
offset += 4;
this.highSurrogate = 0;
continue;
}
}
if (isHighSurrogate)
this.highSurrogate = code;
else {
write32.call(dst, code, offset);
offset += 4;
this.highSurrogate = 0;
}
}
if (offset < dst.length)
dst = dst.slice(0, offset);
return dst;
};
Utf32Encoder.prototype.end = function() {
if (!this.highSurrogate)
return;
var buf = Buffer2.alloc(4);
if (this.isLE)
buf.writeUInt32LE(this.highSurrogate, 0);
else
buf.writeUInt32BE(this.highSurrogate, 0);
this.highSurrogate = 0;
return buf;
};
function Utf32Decoder(options, codec) {
this.isLE = codec.isLE;
this.badChar = codec.iconv.defaultCharUnicode.charCodeAt(0);
this.overflow = [];
}
Utf32Decoder.prototype.write = function(src) {
if (src.length === 0)
return "";
var i = 0;
var codepoint = 0;
var dst = Buffer2.alloc(src.length + 4);
var offset = 0;
var isLE = this.isLE;
var overflow = this.overflow;
var badChar = this.badChar;
if (overflow.length > 0) {
for (; i < src.length && overflow.length < 4; i++)
overflow.push(src[i]);
if (overflow.length === 4) {
if (isLE) {
codepoint = overflow[i] | overflow[i + 1] << 8 | overflow[i + 2] << 16 | overflow[i + 3] << 24;
} else {
codepoint = overflow[i + 3] | overflow[i + 2] << 8 | overflow[i + 1] << 16 | overflow[i] << 24;
}
overflow.length = 0;
offset = _writeCodepoint(dst, offset, codepoint, badChar);
}
}
for (; i < src.length - 3; i += 4) {
if (isLE) {
codepoint = src[i] | src[i + 1] << 8 | src[i + 2] << 16 | src[i + 3] << 24;
} else {
codepoint = src[i + 3] | src[i + 2] << 8 | src[i + 1] << 16 | src[i] << 24;
}
offset = _writeCodepoint(dst, offset, codepoint, badChar);
}
for (; i < src.length; i++) {
overflow.push(src[i]);
}
return dst.slice(0, offset).toString("ucs2");
};
function _writeCodepoint(dst, offset, codepoint, badChar) {
if (codepoint < 0 || codepoint > 1114111) {
codepoint = badChar;
}
if (codepoint >= 65536) {
codepoint -= 65536;
var high = 55296 | codepoint >> 10;
dst[offset++] = high & 255;
dst[offset++] = high >> 8;
var codepoint = 56320 | codepoint & 1023;
}
dst[offset++] = codepoint & 255;
dst[offset++] = codepoint >> 8;
return offset;
}
Utf32Decoder.prototype.end = function() {
this.overflow.length = 0;
};
exports2.utf32 = Utf32AutoCodec;
exports2.ucs4 = "utf32";
function Utf32AutoCodec(options, iconv) {
this.iconv = iconv;
}
Utf32AutoCodec.prototype.encoder = Utf32AutoEncoder;
Utf32AutoCodec.prototype.decoder = Utf32AutoDecoder;
function Utf32AutoEncoder(options, codec) {
options = options || {};
if (options.addBOM === void 0)
options.addBOM = true;
this.encoder = codec.iconv.getEncoder(options.defaultEncoding || "utf-32le", options);
}
Utf32AutoEncoder.prototype.write = function(str) {
return this.encoder.write(str);
};
Utf32AutoEncoder.prototype.end = function() {
return this.encoder.end();
};
function Utf32AutoDecoder(options, codec) {
this.decoder = null;
this.initialBufs = [];
this.initialBufsLen = 0;
this.options = options || {};
this.iconv = codec.iconv;
}
Utf32AutoDecoder.prototype.write = function(buf) {
if (!this.decoder) {
this.initialBufs.push(buf);
this.initialBufsLen += buf.length;
if (this.initialBufsLen < 32)
return "";
var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
this.decoder = this.iconv.getDecoder(encoding, this.options);
var resStr = "";
for (var i = 0; i < this.initialBufs.length; i++)
resStr += this.decoder.write(this.initialBufs[i]);
this.initialBufs.length = this.initialBufsLen = 0;
return resStr;
}
return this.decoder.write(buf);
};
Utf32AutoDecoder.prototype.end = function() {
if (!this.decoder) {
var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
this.decoder = this.iconv.getDecoder(encoding, this.options);
var resStr = "";
for (var i = 0; i < this.initialBufs.length; i++)
resStr += this.decoder.write(this.initialBufs[i]);
var trail = this.decoder.end();
if (trail)
resStr += trail;
this.initialBufs.length = this.initialBufsLen = 0;
return resStr;
}
return this.decoder.end();
};
function detectEncoding(bufs, defaultEncoding) {
var b = [];
var charsProcessed = 0;
var invalidLE = 0, invalidBE = 0;
var bmpCharsLE = 0, bmpCharsBE = 0;
outer_loop:
for (var i = 0; i < bufs.length; i++) {
var buf = bufs[i];
for (var j = 0; j < buf.length; j++) {
b.push(buf[j]);
if (b.length === 4) {
if (charsProcessed === 0) {
if (b[0] === 255 && b[1] === 254 && b[2] === 0 && b[3] === 0) {
return "utf-32le";
}
if (b[0] === 0 && b[1] === 0 && b[2] === 254 && b[3] === 255) {
return "utf-32be";
}
}
if (b[0] !== 0 || b[1] > 16) invalidBE++;
if (b[3] !== 0 || b[2] > 16) invalidLE++;
if (b[0] === 0 && b[1] === 0 && (b[2] !== 0 || b[3] !== 0)) bmpCharsBE++;
if ((b[0] !== 0 || b[1] !== 0) && b[2] === 0 && b[3] === 0) bmpCharsLE++;
b.length = 0;
charsProcessed++;
if (charsProcessed >= 100) {
break outer_loop;
}
}
}
}
if (bmpCharsBE - invalidBE > bmpCharsLE - invalidLE) return "utf-32be";
if (bmpCharsBE - invalidBE < bmpCharsLE - invalidLE) return "utf-32le";
return defaultEncoding || "utf-32le";
}
}
});
var require_utf16 = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/utf16.js"(exports2) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports2.utf16be = Utf16BECodec;
function Utf16BECodec() {
}
Utf16BECodec.prototype.encoder = Utf16BEEncoder;
Utf16BECodec.prototype.decoder = Utf16BEDecoder;
Utf16BECodec.prototype.bomAware = true;
function Utf16BEEncoder() {
}
Utf16BEEncoder.prototype.write = function(str) {
var buf = Buffer2.from(str, "ucs2");
for (var i = 0; i < buf.length; i += 2) {
var tmp = buf[i];
buf[i] = buf[i + 1];
buf[i + 1] = tmp;
}
return buf;
};
Utf16BEEncoder.prototype.end = function() {
};
function Utf16BEDecoder() {
this.overflowByte = -1;
}
Utf16BEDecoder.prototype.write = function(buf) {
if (buf.length == 0)
return "";
var buf2 = Buffer2.alloc(buf.length + 1), i = 0, j = 0;
if (this.overflowByte !== -1) {
buf2[0] = buf[0];
buf2[1] = this.overflowByte;
i = 1;
j = 2;
}
for (; i < buf.length - 1; i += 2, j += 2) {
buf2[j] = buf[i + 1];
buf2[j + 1] = buf[i];
}
this.overflowByte = i == buf.length - 1 ? buf[buf.length - 1] : -1;
return buf2.slice(0, j).toString("ucs2");
};
Utf16BEDecoder.prototype.end = function() {
this.overflowByte = -1;
};
exports2.utf16 = Utf16Codec;
function Utf16Codec(codecOptions, iconv) {
this.iconv = iconv;
}
Utf16Codec.prototype.encoder = Utf16Encoder;
Utf16Codec.prototype.decoder = Utf16Decoder;
function Utf16Encoder(options, codec) {
options = options || {};
if (options.addBOM === void 0)
options.addBOM = true;
this.encoder = codec.iconv.getEncoder("utf-16le", options);
}
Utf16Encoder.prototype.write = function(str) {
return this.encoder.write(str);
};
Utf16Encoder.prototype.end = function() {
return this.encoder.end();
};
function Utf16Decoder(options, codec) {
this.decoder = null;
this.initialBufs = [];
this.initialBufsLen = 0;
this.options = options || {};
this.iconv = codec.iconv;
}
Utf16Decoder.prototype.write = function(buf) {
if (!this.decoder) {
this.initialBufs.push(buf);
this.initialBufsLen += buf.length;
if (this.initialBufsLen < 16)
return "";
var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
this.decoder = this.iconv.getDecoder(encoding, this.options);
var resStr = "";
for (var i = 0; i < this.initialBufs.length; i++)
resStr += this.decoder.write(this.initialBufs[i]);
this.initialBufs.length = this.initialBufsLen = 0;
return resStr;
}
return this.decoder.write(buf);
};
Utf16Decoder.prototype.end = function() {
if (!this.decoder) {
var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
this.decoder = this.iconv.getDecoder(encoding, this.options);
var resStr = "";
for (var i = 0; i < this.initialBufs.length; i++)
resStr += this.decoder.write(this.initialBufs[i]);
var trail = this.decoder.end();
if (trail)
resStr += trail;
this.initialBufs.length = this.initialBufsLen = 0;
return resStr;
}
return this.decoder.end();
};
function detectEncoding(bufs, defaultEncoding) {
var b = [];
var charsProcessed = 0;
var asciiCharsLE = 0, asciiCharsBE = 0;
outer_loop:
for (var i = 0; i < bufs.length; i++) {
var buf = bufs[i];
for (var j = 0; j < buf.length; j++) {
b.push(buf[j]);
if (b.length === 2) {
if (charsProcessed === 0) {
if (b[0] === 255 && b[1] === 254) return "utf-16le";
if (b[0] === 254 && b[1] === 255) return "utf-16be";
}
if (b[0] === 0 && b[1] !== 0) asciiCharsBE++;
if (b[0] !== 0 && b[1] === 0) asciiCharsLE++;
b.length = 0;
charsProcessed++;
if (charsProcessed >= 100) {
break outer_loop;
}
}
}
}
if (asciiCharsBE > asciiCharsLE) return "utf-16be";
if (asciiCharsBE < asciiCharsLE) return "utf-16le";
return defaultEncoding || "utf-16le";
}
}
});
var require_utf7 = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/utf7.js"(exports2) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports2.utf7 = Utf7Codec;
exports2.unicode11utf7 = "utf7";
function Utf7Codec(codecOptions, iconv) {
this.iconv = iconv;
}
Utf7Codec.prototype.encoder = Utf7Encoder;
Utf7Codec.prototype.decoder = Utf7Decoder;
Utf7Codec.prototype.bomAware = true;
var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
function Utf7Encoder(options, codec) {
this.iconv = codec.iconv;
}
Utf7Encoder.prototype.write = function(str) {
return Buffer2.from(str.replace(nonDirectChars, function(chunk) {
return "+" + (chunk === "+" ? "" : this.iconv.encode(chunk, "utf16-be").toString("base64").replace(/=+$/, "")) + "-";
}.bind(this)));
};
Utf7Encoder.prototype.end = function() {
};
function Utf7Decoder(options, codec) {
this.iconv = codec.iconv;
this.inBase64 = false;
this.base64Accum = "";
}
var base64Regex22 = /[A-Za-z0-9\/+]/;
var base64Chars = [];
for (i = 0; i < 256; i++)
base64Chars[i] = base64Regex22.test(String.fromCharCode(i));
var i;
var plusChar = "+".charCodeAt(0);
var minusChar = "-".charCodeAt(0);
var andChar = "&".charCodeAt(0);
Utf7Decoder.prototype.write = function(buf) {
var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum;
for (var i2 = 0; i2 < buf.length; i2++) {
if (!inBase64) {
if (buf[i2] == plusChar) {
res += this.iconv.decode(buf.slice(lastI, i2), "ascii");
lastI = i2 + 1;
inBase64 = true;
}
} else {
if (!base64Chars[buf[i2]]) {
if (i2 == lastI && buf[i2] == minusChar) {
res += "+";
} else {
var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i2), "ascii");
res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
}
if (buf[i2] != minusChar)
i2--;
lastI = i2 + 1;
inBase64 = false;
base64Accum = "";
}
}
}
if (!inBase64) {
res += this.iconv.decode(buf.slice(lastI), "ascii");
} else {
var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii");
var canBeDecoded = b64str.length - b64str.length % 8;
base64Accum = b64str.slice(canBeDecoded);
b64str = b64str.slice(0, canBeDecoded);
res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
}
this.inBase64 = inBase64;
this.base64Accum = base64Accum;
return res;
};
Utf7Decoder.prototype.end = function() {
var res = "";
if (this.inBase64 && this.base64Accum.length > 0)
res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be");
this.inBase64 = false;
this.base64Accum = "";
return res;
};
exports2.utf7imap = Utf7IMAPCodec;
function Utf7IMAPCodec(codecOptions, iconv) {
this.iconv = iconv;
}
Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
Utf7IMAPCodec.prototype.bomAware = true;
function Utf7IMAPEncoder(options, codec) {
this.iconv = codec.iconv;
this.inBase64 = false;
this.base64Accum = Buffer2.alloc(6);
this.base64AccumIdx = 0;
}
Utf7IMAPEncoder.prototype.write = function(str) {
var inBase64 = this.inBase64, base64Accum = this.base64Accum, base64AccumIdx = this.base64AccumIdx, buf = Buffer2.alloc(str.length * 5 + 10), bufIdx = 0;
for (var i2 = 0; i2 < str.length; i2++) {
var uChar = str.charCodeAt(i2);
if (32 <= uChar && uChar <= 126) {
if (inBase64) {
if (base64AccumIdx > 0) {
bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
base64AccumIdx = 0;
}
buf[bufIdx++] = minusChar;
inBase64 = false;
}
if (!inBase64) {
buf[bufIdx++] = uChar;
if (uChar === andChar)
buf[bufIdx++] = minusChar;
}
} else {
if (!inBase64) {
buf[bufIdx++] = andChar;
inBase64 = true;
}
if (inBase64) {
base64Accum[base64AccumIdx++] = uChar >> 8;
base64Accum[base64AccumIdx++] = uChar & 255;
if (base64AccumIdx == base64Accum.length) {
bufIdx += buf.write(base64Accum.toString("base64").replace(/\//g, ","), bufIdx);
base64AccumIdx = 0;
}
}
}
}
this.inBase64 = inBase64;
this.base64AccumIdx = base64AccumIdx;
return buf.slice(0, bufIdx);
};
Utf7IMAPEncoder.prototype.end = function() {
var buf = Buffer2.alloc(10), bufIdx = 0;
if (this.inBase64) {
if (this.base64AccumIdx > 0) {
bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
this.base64AccumIdx = 0;
}
buf[bufIdx++] = minusChar;
this.inBase64 = false;
}
return buf.slice(0, bufIdx);
};
function Utf7IMAPDecoder(options, codec) {
this.iconv = codec.iconv;
this.inBase64 = false;
this.base64Accum = "";
}
var base64IMAPChars = base64Chars.slice();
base64IMAPChars[",".charCodeAt(0)] = true;
Utf7IMAPDecoder.prototype.write = function(buf) {
var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum;
for (var i2 = 0; i2 < buf.length; i2++) {
if (!inBase64) {
if (buf[i2] == andChar) {
res += this.iconv.decode(buf.slice(lastI, i2), "ascii");
lastI = i2 + 1;
inBase64 = true;
}
} else {
if (!base64IMAPChars[buf[i2]]) {
if (i2 == lastI && buf[i2] == minusChar) {
res += "&";
} else {
var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i2), "ascii").replace(/,/g, "/");
res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
}
if (buf[i2] != minusChar)
i2--;
lastI = i2 + 1;
inBase64 = false;
base64Accum = "";
}
}
}
if (!inBase64) {
res += this.iconv.decode(buf.slice(lastI), "ascii");
} else {
var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii").replace(/,/g, "/");
var canBeDecoded = b64str.length - b64str.length % 8;
base64Accum = b64str.slice(canBeDecoded);
b64str = b64str.slice(0, canBeDecoded);
res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
}
this.inBase64 = inBase64;
this.base64Accum = base64Accum;
return res;
};
Utf7IMAPDecoder.prototype.end = function() {
var res = "";
if (this.inBase64 && this.base64Accum.length > 0)
res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be");
this.inBase64 = false;
this.base64Accum = "";
return res;
};
}
});
var require_sbcs_codec = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/sbcs-codec.js"(exports2) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports2._sbcs = SBCSCodec;
function SBCSCodec(codecOptions, iconv) {
if (!codecOptions)
throw new Error("SBCS codec is called without the data.");
if (!codecOptions.chars || codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256)
throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)");
if (codecOptions.chars.length === 128) {
var asciiString = "";
for (var i = 0; i < 128; i++)
asciiString += String.fromCharCode(i);
codecOptions.chars = asciiString + codecOptions.chars;
}
this.decodeBuf = Buffer2.from(codecOptions.chars, "ucs2");
var encodeBuf = Buffer2.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));
for (var i = 0; i < codecOptions.chars.length; i++)
encodeBuf[codecOptions.chars.charCodeAt(i)] = i;
this.encodeBuf = encodeBuf;
}
SBCSCodec.prototype.encoder = SBCSEncoder;
SBCSCodec.prototype.decoder = SBCSDecoder;
function SBCSEncoder(options, codec) {
this.encodeBuf = codec.encodeBuf;
}
SBCSEncoder.prototype.write = function(str) {
var buf = Buffer2.alloc(str.length);
for (var i = 0; i < str.length; i++)
buf[i] = this.encodeBuf[str.charCodeAt(i)];
return buf;
};
SBCSEncoder.prototype.end = function() {
};
function SBCSDecoder(options, codec) {
this.decodeBuf = codec.decodeBuf;
}
SBCSDecoder.prototype.write = function(buf) {
var decodeBuf = this.decodeBuf;
var newBuf = Buffer2.alloc(buf.length * 2);
var idx1 = 0, idx2 = 0;
for (var i = 0; i < buf.length; i++) {
idx1 = buf[i] * 2;
idx2 = i * 2;
newBuf[idx2] = decodeBuf[idx1];
newBuf[idx2 + 1] = decodeBuf[idx1 + 1];
}
return newBuf.toString("ucs2");
};
SBCSDecoder.prototype.end = function() {
};
}
});
var require_sbcs_data = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/sbcs-data.js"(exports2, module2) {
"use strict";
module2.exports = {
// Not supported by iconv, not sure why.
"10029": "maccenteuro",
"maccenteuro": {
"type": "_sbcs",
"chars": "\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"
},
"808": "cp808",
"ibm808": "cp808",
"cp808": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"
},
"mik": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"cp720": {
"type": "_sbcs",
"chars": "\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
// Aliases of generated encodings.
"ascii8bit": "ascii",
"usascii": "ascii",
"ansix34": "ascii",
"ansix341968": "ascii",
"ansix341986": "ascii",
"csascii": "ascii",
"cp367": "ascii",
"ibm367": "ascii",
"isoir6": "ascii",
"iso646us": "ascii",
"iso646irv": "ascii",
"us": "ascii",
"latin1": "iso88591",
"latin2": "iso88592",
"latin3": "iso88593",
"latin4": "iso88594",
"latin5": "iso88599",
"latin6": "iso885910",
"latin7": "iso885913",
"latin8": "iso885914",
"latin9": "iso885915",
"latin10": "iso885916",
"csisolatin1": "iso88591",
"csisolatin2": "iso88592",
"csisolatin3": "iso88593",
"csisolatin4": "iso88594",
"csisolatincyrillic": "iso88595",
"csisolatinarabic": "iso88596",
"csisolatingreek": "iso88597",
"csisolatinhebrew": "iso88598",
"csisolatin5": "iso88599",
"csisolatin6": "iso885910",
"l1": "iso88591",
"l2": "iso88592",
"l3": "iso88593",
"l4": "iso88594",
"l5": "iso88599",
"l6": "iso885910",
"l7": "iso885913",
"l8": "iso885914",
"l9": "iso885915",
"l10": "iso885916",
"isoir14": "iso646jp",
"isoir57": "iso646cn",
"isoir100": "iso88591",
"isoir101": "iso88592",
"isoir109": "iso88593",
"isoir110": "iso88594",
"isoir144": "iso88595",
"isoir127": "iso88596",
"isoir126": "iso88597",
"isoir138": "iso88598",
"isoir148": "iso88599",
"isoir157": "iso885910",
"isoir166": "tis620",
"isoir179": "iso885913",
"isoir199": "iso885914",
"isoir203": "iso885915",
"isoir226": "iso885916",
"cp819": "iso88591",
"ibm819": "iso88591",
"cyrillic": "iso88595",
"arabic": "iso88596",
"arabic8": "iso88596",
"ecma114": "iso88596",
"asmo708": "iso88596",
"greek": "iso88597",
"greek8": "iso88597",
"ecma118": "iso88597",
"elot928": "iso88597",
"hebrew": "iso88598",
"hebrew8": "iso88598",
"turkish": "iso88599",
"turkish8": "iso88599",
"thai": "iso885911",
"thai8": "iso885911",
"celtic": "iso885914",
"celtic8": "iso885914",
"isoceltic": "iso885914",
"tis6200": "tis620",
"tis62025291": "tis620",
"tis62025330": "tis620",
"10000": "macroman",
"10006": "macgreek",
"10007": "maccyrillic",
"10079": "maciceland",
"10081": "macturkish",
"cspc8codepage437": "cp437",
"cspc775baltic": "cp775",
"cspc850multilingual": "cp850",
"cspcp852": "cp852",
"cspc862latinhebrew": "cp862",
"cpgr": "cp869",
"msee": "cp1250",
"mscyrl": "cp1251",
"msansi": "cp1252",
"msgreek": "cp1253",
"msturk": "cp1254",
"mshebr": "cp1255",
"msarab": "cp1256",
"winbaltrim": "cp1257",
"cp20866": "koi8r",
"20866": "koi8r",
"ibm878": "koi8r",
"cskoi8r": "koi8r",
"cp21866": "koi8u",
"21866": "koi8u",
"ibm1168": "koi8u",
"strk10482002": "rk1048",
"tcvn5712": "tcvn",
"tcvn57121": "tcvn",
"gb198880": "iso646cn",
"cn": "iso646cn",
"csiso14jisc6220ro": "iso646jp",
"jisc62201969ro": "iso646jp",
"jp": "iso646jp",
"cshproman8": "hproman8",
"r8": "hproman8",
"roman8": "hproman8",
"xroman8": "hproman8",
"ibm1051": "hproman8",
"mac": "macintosh",
"csmacintosh": "macintosh"
};
}
});
var require_sbcs_data_generated = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/sbcs-data-generated.js"(exports2, module2) {
"use strict";
module2.exports = {
"437": "cp437",
"737": "cp737",
"775": "cp775",
"850": "cp850",
"852": "cp852",
"855": "cp855",
"856": "cp856",
"857": "cp857",
"858": "cp858",
"860": "cp860",
"861": "cp861",
"862": "cp862",
"863": "cp863",
"864": "cp864",
"865": "cp865",
"866": "cp866",
"869": "cp869",
"874": "windows874",
"922": "cp922",
"1046": "cp1046",
"1124": "cp1124",
"1125": "cp1125",
"1129": "cp1129",
"1133": "cp1133",
"1161": "cp1161",
"1162": "cp1162",
"1163": "cp1163",
"1250": "windows1250",
"1251": "windows1251",
"1252": "windows1252",
"1253": "windows1253",
"1254": "windows1254",
"1255": "windows1255",
"1256": "windows1256",
"1257": "windows1257",
"1258": "windows1258",
"28591": "iso88591",
"28592": "iso88592",
"28593": "iso88593",
"28594": "iso88594",
"28595": "iso88595",
"28596": "iso88596",
"28597": "iso88597",
"28598": "iso88598",
"28599": "iso88599",
"28600": "iso885910",
"28601": "iso885911",
"28603": "iso885913",
"28604": "iso885914",
"28605": "iso885915",
"28606": "iso885916",
"windows874": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
},
"win874": "windows874",
"cp874": "windows874",
"windows1250": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
},
"win1250": "windows1250",
"cp1250": "windows1250",
"windows1251": {
"type": "_sbcs",
"chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
},
"win1251": "windows1251",
"cp1251": "windows1251",
"windows1252": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"win1252": "windows1252",
"cp1252": "windows1252",
"windows1253": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
},
"win1253": "windows1253",
"cp1253": "windows1253",
"windows1254": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
},
"win1254": "windows1254",
"cp1254": "windows1254",
"windows1255": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
},
"win1255": "windows1255",
"cp1255": "windows1255",
"windows1256": {
"type": "_sbcs",
"chars": "\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"
},
"win1256": "windows1256",
"cp1256": "windows1256",
"windows1257": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"
},
"win1257": "windows1257",
"cp1257": "windows1257",
"windows1258": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
},
"win1258": "windows1258",
"cp1258": "windows1258",
"iso88591": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"cp28591": "iso88591",
"iso88592": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
},
"cp28592": "iso88592",
"iso88593": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"
},
"cp28593": "iso88593",
"iso88594": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"
},
"cp28594": "iso88594",
"iso88595": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
},
"cp28595": "iso88595",
"iso88596": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
},
"cp28596": "iso88596",
"iso88597": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
},
"cp28597": "iso88597",
"iso88598": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
},
"cp28598": "iso88598",
"iso88599": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
},
"cp28599": "iso88599",
"iso885910": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"
},
"cp28600": "iso885910",
"iso885911": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
},
"cp28601": "iso885911",
"iso885913": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"
},
"cp28603": "iso885913",
"iso885914": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"
},
"cp28604": "iso885914",
"iso885915": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"cp28605": "iso885915",
"iso885916": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"
},
"cp28606": "iso885916",
"cp437": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm437": "cp437",
"csibm437": "cp437",
"cp737": {
"type": "_sbcs",
"chars": "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm737": "cp737",
"csibm737": "cp737",
"cp775": {
"type": "_sbcs",
"chars": "\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm775": "cp775",
"csibm775": "cp775",
"cp850": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm850": "cp850",
"csibm850": "cp850",
"cp852": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"
},
"ibm852": "cp852",
"csibm852": "cp852",
"cp855": {
"type": "_sbcs",
"chars": "\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"
},
"ibm855": "cp855",
"csibm855": "cp855",
"cp856": {
"type": "_sbcs",
"chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm856": "cp856",
"csibm856": "cp856",
"cp857": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm857": "cp857",
"csibm857": "cp857",
"cp858": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm858": "cp858",
"csibm858": "cp858",
"cp860": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm860": "cp860",
"csibm860": "cp860",
"cp861": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm861": "cp861",
"csibm861": "cp861",
"cp862": {
"type": "_sbcs",
"chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm862": "cp862",
"csibm862": "cp862",
"cp863": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm863": "cp863",
"csibm863": "cp863",
"cp864": {
"type": "_sbcs",
"chars": "\0\x07\b \n\v\f\r\x1B !\"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD"
},
"ibm864": "cp864",
"csibm864": "cp864",
"cp865": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm865": "cp865",
"csibm865": "cp865",
"cp866": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"
},
"ibm866": "cp866",
"csibm866": "cp866",
"cp869": {
"type": "_sbcs",
"chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"
},
"ibm869": "cp869",
"csibm869": "cp869",
"cp922": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"
},
"ibm922": "cp922",
"csibm922": "cp922",
"cp1046": {
"type": "_sbcs",
"chars": "\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"
},
"ibm1046": "cp1046",
"csibm1046": "cp1046",
"cp1124": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
},
"ibm1124": "cp1124",
"csibm1124": "cp1124",
"cp1125": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"
},
"ibm1125": "cp1125",
"csibm1125": "cp1125",
"cp1129": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
},
"ibm1129": "cp1129",
"csibm1129": "cp1129",
"cp1133": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"
},
"ibm1133": "cp1133",
"csibm1133": "cp1133",
"cp1161": {
"type": "_sbcs",
"chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"
},
"ibm1161": "cp1161",
"csibm1161": "cp1161",
"cp1162": {
"type": "_sbcs",
"chars": "\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
},
"ibm1162": "cp1162",
"csibm1162": "cp1162",
"cp1163": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
},
"ibm1163": "cp1163",
"csibm1163": "cp1163",
"maccroatian": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"
},
"maccyrillic": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
},
"macgreek": {
"type": "_sbcs",
"chars": "\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"
},
"maciceland": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"macroman": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"macromania": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"macthai": {
"type": "_sbcs",
"chars": "\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"
},
"macturkish": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"macukraine": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
},
"koi8r": {
"type": "_sbcs",
"chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
},
"koi8u": {
"type": "_sbcs",
"chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
},
"koi8ru": {
"type": "_sbcs",
"chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
},
"koi8t": {
"type": "_sbcs",
"chars": "\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
},
"armscii8": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"
},
"rk1048": {
"type": "_sbcs",
"chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
},
"tcvn": {
"type": "_sbcs",
"chars": "\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \n\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0"
},
"georgianacademy": {
"type": "_sbcs",
"chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"georgianps": {
"type": "_sbcs",
"chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"pt154": {
"type": "_sbcs",
"chars": "\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
},
"viscii": {
"type": "_sbcs",
"chars": "\0\u1EB2\u1EB4\u1EAA\x07\b \n\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE"
},
"iso646cn": {
"type": "_sbcs",
"chars": "\0\x07\b \n\v\f\r\x1B !\"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
},
"iso646jp": {
"type": "_sbcs",
"chars": "\0\x07\b \n\v\f\r\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
},
"hproman8": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"
},
"macintosh": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"ascii": {
"type": "_sbcs",
"chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
},
"tis620": {
"type": "_sbcs",
"chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
}
};
}
});
var require_dbcs_codec = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/dbcs-codec.js"(exports2) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports2._dbcs = DBCSCodec;
var UNASSIGNED = -1;
var GB18030_CODE = -2;
var SEQ_START = -10;
var NODE_START = -1e3;
var UNASSIGNED_NODE = new Array(256);
var DEF_CHAR = -1;
for (i = 0; i < 256; i++)
UNASSIGNED_NODE[i] = UNASSIGNED;
var i;
function DBCSCodec(codecOptions, iconv) {
this.encodingName = codecOptions.encodingName;
if (!codecOptions)
throw new Error("DBCS codec is called without the data.");
if (!codecOptions.table)
throw new Error("Encoding '" + this.encodingName + "' has no data.");
var mappingTable = codecOptions.table();
this.decodeTables = [];
this.decodeTables[0] = UNASSIGNED_NODE.slice(0);
this.decodeTableSeq = [];
for (var i2 = 0; i2 < mappingTable.length; i2++)
this._addDecodeChunk(mappingTable[i2]);
if (typeof codecOptions.gb18030 === "function") {
this.gb18030 = codecOptions.gb18030();
var commonThirdByteNodeIdx = this.decodeTables.length;
this.decodeTables.push(UNASSIGNED_NODE.slice(0));
var commonFourthByteNodeIdx = this.decodeTables.length;
this.decodeTables.push(UNASSIGNED_NODE.slice(0));
var firstByteNode = this.decodeTables[0];
for (var i2 = 129; i2 <= 254; i2++) {
var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i2]];
for (var j = 48; j <= 57; j++) {
if (secondByteNode[j] === UNASSIGNED) {
secondByteNode[j] = NODE_START - commonThirdByteNodeIdx;
} else if (secondByteNode[j] > NODE_START) {
throw new Error("gb18030 decode tables conflict at byte 2");
}
var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]];
for (var k = 129; k <= 254; k++) {
if (thirdByteNode[k] === UNASSIGNED) {
thirdByteNode[k] = NODE_START - commonFourthByteNodeIdx;
} else if (thirdByteNode[k] === NODE_START - commonFourthByteNodeIdx) {
continue;
} else if (thirdByteNode[k] > NODE_START) {
throw new Error("gb18030 decode tables conflict at byte 3");
}
var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k]];
for (var l = 48; l <= 57; l++) {
if (fourthByteNode[l] === UNASSIGNED)
fourthByteNode[l] = GB18030_CODE;
}
}
}
}
}
this.defaultCharUnicode = iconv.defaultCharUnicode;
this.encodeTable = [];
this.encodeTableSeq = [];
var skipEncodeChars = {};
if (codecOptions.encodeSkipVals)
for (var i2 = 0; i2 < codecOptions.encodeSkipVals.length; i2++) {
var val = codecOptions.encodeSkipVals[i2];
if (typeof val === "number")
skipEncodeChars[val] = true;
else
for (var j = val.from; j <= val.to; j++)
skipEncodeChars[j] = true;
}
this._fillEncodeTable(0, 0, skipEncodeChars);
if (codecOptions.encodeAdd) {
for (var uChar in codecOptions.encodeAdd)
if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))
this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
}
this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]["?"];
if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);
}
DBCSCodec.prototype.encoder = DBCSEncoder;
DBCSCodec.prototype.decoder = DBCSDecoder;
DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
var bytes = [];
for (; addr > 0; addr >>>= 8)
bytes.push(addr & 255);
if (bytes.length == 0)
bytes.push(0);
var node = this.decodeTables[0];
for (var i2 = bytes.length - 1; i2 > 0; i2--) {
var val = node[bytes[i2]];
if (val == UNASSIGNED) {
node[bytes[i2]] = NODE_START - this.decodeTables.length;
this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
} else if (val <= NODE_START) {
node = this.decodeTables[NODE_START - val];
} else
throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
}
return node;
};
DBCSCodec.prototype._addDecodeChunk = function(chunk) {
var curAddr = parseInt(chunk[0], 16);
var writeTable = this._getDecodeTrieNode(curAddr);
curAddr = curAddr & 255;
for (var k = 1; k < chunk.length; k++) {
var part = chunk[k];
if (typeof part === "string") {
for (var l = 0; l < part.length; ) {
var code = part.charCodeAt(l++);
if (55296 <= code && code < 56320) {
var codeTrail = part.charCodeAt(l++);
if (56320 <= codeTrail && codeTrail < 57344)
writeTable[curAddr++] = 65536 + (code - 55296) * 1024 + (codeTrail - 56320);
else
throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]);
} else if (4080 < code && code <= 4095) {
var len = 4095 - code + 2;
var seq = [];
for (var m = 0; m < len; m++)
seq.push(part.charCodeAt(l++));
writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
this.decodeTableSeq.push(seq);
} else
writeTable[curAddr++] = code;
}
} else if (typeof part === "number") {
var charCode = writeTable[curAddr - 1] + 1;
for (var l = 0; l < part; l++)
writeTable[curAddr++] = charCode++;
} else
throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]);
}
if (curAddr > 255)
throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr);
};
DBCSCodec.prototype._getEncodeBucket = function(uCode) {
var high = uCode >> 8;
if (this.encodeTable[high] === void 0)
this.encodeTable[high] = UNASSIGNED_NODE.slice(0);
return this.encodeTable[high];
};
DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
var bucket = this._getEncodeBucket(uCode);
var low = uCode & 255;
if (bucket[low] <= SEQ_START)
this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode;
else if (bucket[low] == UNASSIGNED)
bucket[low] = dbcsCode;
};
DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
var uCode = seq[0];
var bucket = this._getEncodeBucket(uCode);
var low = uCode & 255;
var node;
if (bucket[low] <= SEQ_START) {
node = this.encodeTableSeq[SEQ_START - bucket[low]];
} else {
node = {};
if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low];
bucket[low] = SEQ_START - this.encodeTableSeq.length;
this.encodeTableSeq.push(node);
}
for (var j = 1; j < seq.length - 1; j++) {
var oldVal = node[uCode];
if (typeof oldVal === "object")
node = oldVal;
else {
node = node[uCode] = {};
if (oldVal !== void 0)
node[DEF_CHAR] = oldVal;
}
}
uCode = seq[seq.length - 1];
node[uCode] = dbcsCode;
};
DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
var node = this.decodeTables[nodeIdx];
var hasValues = false;
var subNodeEmpty = {};
for (var i2 = 0; i2 < 256; i2++) {
var uCode = node[i2];
var mbCode = prefix + i2;
if (skipEncodeChars[mbCode])
continue;
if (uCode >= 0) {
this._setEncodeChar(uCode, mbCode);
hasValues = true;
} else if (uCode <= NODE_START) {
var subNodeIdx = NODE_START - uCode;
if (!subNodeEmpty[subNodeIdx]) {
var newPrefix = mbCode << 8 >>> 0;
if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars))
hasValues = true;
else
subNodeEmpty[subNodeIdx] = true;
}
} else if (uCode <= SEQ_START) {
this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
hasValues = true;
}
}
return hasValues;
};
function DBCSEncoder(options, codec) {
this.leadSurrogate = -1;
this.seqObj = void 0;
this.encodeTable = codec.encodeTable;
this.encodeTableSeq = codec.encodeTableSeq;
this.defaultCharSingleByte = codec.defCharSB;
this.gb18030 = codec.gb18030;
}
DBCSEncoder.prototype.write = function(str) {
var newBuf = Buffer2.alloc(str.length * (this.gb18030 ? 4 : 3)), leadSurrogate = this.leadSurrogate, seqObj = this.seqObj, nextChar = -1, i2 = 0, j = 0;
while (true) {
if (nextChar === -1) {
if (i2 == str.length) break;
var uCode = str.charCodeAt(i2++);
} else {
var uCode = nextChar;
nextChar = -1;
}
if (55296 <= uCode && uCode < 57344) {
if (uCode < 56320) {
if (leadSurrogate === -1) {
leadSurrogate = uCode;
continue;
} else {
leadSurrogate = uCode;
uCode = UNASSIGNED;
}
} else {
if (leadSurrogate !== -1) {
uCode = 65536 + (leadSurrogate - 55296) * 1024 + (uCode - 56320);
leadSurrogate = -1;
} else {
uCode = UNASSIGNED;
}
}
} else if (leadSurrogate !== -1) {
nextChar = uCode;
uCode = UNASSIGNED;
leadSurrogate = -1;
}
var dbcsCode = UNASSIGNED;
if (seqObj !== void 0 && uCode != UNASSIGNED) {
var resCode = seqObj[uCode];
if (typeof resCode === "object") {
seqObj = resCode;
continue;
} else if (typeof resCode == "number") {
dbcsCode = resCode;
} else if (resCode == void 0) {
resCode = seqObj[DEF_CHAR];
if (resCode !== void 0) {
dbcsCode = resCode;
nextChar = uCode;
} else {
}
}
seqObj = void 0;
} else if (uCode >= 0) {
var subtable = this.encodeTable[uCode >> 8];
if (subtable !== void 0)
dbcsCode = subtable[uCode & 255];
if (dbcsCode <= SEQ_START) {
seqObj = this.encodeTableSeq[SEQ_START - dbcsCode];
continue;
}
if (dbcsCode == UNASSIGNED && this.gb18030) {
var idx = findIdx(this.gb18030.uChars, uCode);
if (idx != -1) {
var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
newBuf[j++] = 129 + Math.floor(dbcsCode / 12600);
dbcsCode = dbcsCode % 12600;
newBuf[j++] = 48 + Math.floor(dbcsCode / 1260);
dbcsCode = dbcsCode % 1260;
newBuf[j++] = 129 + Math.floor(dbcsCode / 10);
dbcsCode = dbcsCode % 10;
newBuf[j++] = 48 + dbcsCode;
continue;
}
}
}
if (dbcsCode === UNASSIGNED)
dbcsCode = this.defaultCharSingleByte;
if (dbcsCode < 256) {
newBuf[j++] = dbcsCode;
} else if (dbcsCode < 65536) {
newBuf[j++] = dbcsCode >> 8;
newBuf[j++] = dbcsCode & 255;
} else if (dbcsCode < 16777216) {
newBuf[j++] = dbcsCode >> 16;
newBuf[j++] = dbcsCode >> 8 & 255;
newBuf[j++] = dbcsCode & 255;
} else {
newBuf[j++] = dbcsCode >>> 24;
newBuf[j++] = dbcsCode >>> 16 & 255;
newBuf[j++] = dbcsCode >>> 8 & 255;
newBuf[j++] = dbcsCode & 255;
}
}
this.seqObj = seqObj;
this.leadSurrogate = leadSurrogate;
return newBuf.slice(0, j);
};
DBCSEncoder.prototype.end = function() {
if (this.leadSurrogate === -1 && this.seqObj === void 0)
return;
var newBuf = Buffer2.alloc(10), j = 0;
if (this.seqObj) {
var dbcsCode = this.seqObj[DEF_CHAR];
if (dbcsCode !== void 0) {
if (dbcsCode < 256) {
newBuf[j++] = dbcsCode;
} else {
newBuf[j++] = dbcsCode >> 8;
newBuf[j++] = dbcsCode & 255;
}
} else {
}
this.seqObj = void 0;
}
if (this.leadSurrogate !== -1) {
newBuf[j++] = this.defaultCharSingleByte;
this.leadSurrogate = -1;
}
return newBuf.slice(0, j);
};
DBCSEncoder.prototype.findIdx = findIdx;
function DBCSDecoder(options, codec) {
this.nodeIdx = 0;
this.prevBytes = [];
this.decodeTables = codec.decodeTables;
this.decodeTableSeq = codec.decodeTableSeq;
this.defaultCharUnicode = codec.defaultCharUnicode;
this.gb18030 = codec.gb18030;
}
DBCSDecoder.prototype.write = function(buf) {
var newBuf = Buffer2.alloc(buf.length * 2), nodeIdx = this.nodeIdx, prevBytes = this.prevBytes, prevOffset = this.prevBytes.length, seqStart = -this.prevBytes.length, uCode;
for (var i2 = 0, j = 0; i2 < buf.length; i2++) {
var curByte = i2 >= 0 ? buf[i2] : prevBytes[i2 + prevOffset];
var uCode = this.decodeTables[nodeIdx][curByte];
if (uCode >= 0) {
} else if (uCode === UNASSIGNED) {
uCode = this.defaultCharUnicode.charCodeAt(0);
i2 = seqStart;
} else if (uCode === GB18030_CODE) {
if (i2 >= 3) {
var ptr = (buf[i2 - 3] - 129) * 12600 + (buf[i2 - 2] - 48) * 1260 + (buf[i2 - 1] - 129) * 10 + (curByte - 48);
} else {
var ptr = (prevBytes[i2 - 3 + prevOffset] - 129) * 12600 + ((i2 - 2 >= 0 ? buf[i2 - 2] : prevBytes[i2 - 2 + prevOffset]) - 48) * 1260 + ((i2 - 1 >= 0 ? buf[i2 - 1] : prevBytes[i2 - 1 + prevOffset]) - 129) * 10 + (curByte - 48);
}
var idx = findIdx(this.gb18030.gbChars, ptr);
uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
} else if (uCode <= NODE_START) {
nodeIdx = NODE_START - uCode;
continue;
} else if (uCode <= SEQ_START) {
var seq = this.decodeTableSeq[SEQ_START - uCode];
for (var k = 0; k < seq.length - 1; k++) {
uCode = seq[k];
newBuf[j++] = uCode & 255;
newBuf[j++] = uCode >> 8;
}
uCode = seq[seq.length - 1];
} else
throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
if (uCode >= 65536) {
uCode -= 65536;
var uCodeLead = 55296 | uCode >> 10;
newBuf[j++] = uCodeLead & 255;
newBuf[j++] = uCodeLead >> 8;
uCode = 56320 | uCode & 1023;
}
newBuf[j++] = uCode & 255;
newBuf[j++] = uCode >> 8;
nodeIdx = 0;
seqStart = i2 + 1;
}
this.nodeIdx = nodeIdx;
this.prevBytes = seqStart >= 0 ? Array.prototype.slice.call(buf, seqStart) : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf));
return newBuf.slice(0, j).toString("ucs2");
};
DBCSDecoder.prototype.end = function() {
var ret = "";
while (this.prevBytes.length > 0) {
ret += this.defaultCharUnicode;
var bytesArr = this.prevBytes.slice(1);
this.prevBytes = [];
this.nodeIdx = 0;
if (bytesArr.length > 0)
ret += this.write(bytesArr);
}
this.prevBytes = [];
this.nodeIdx = 0;
return ret;
};
function findIdx(table, val) {
if (table[0] > val)
return -1;
var l = 0, r = table.length;
while (l < r - 1) {
var mid = l + (r - l + 1 >> 1);
if (table[mid] <= val)
l = mid;
else
r = mid;
}
return l;
}
}
});
var require_shiftjis = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/tables/shiftjis.json"(exports2, module2) {
module2.exports = [
["0", "\0", 128],
["a1", "\uFF61", 62],
["8140", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7"],
["8180", "\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
["81b8", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
["81c8", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
["81da", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
["81f0", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
["81fc", "\u25EF"],
["824f", "\uFF10", 9],
["8260", "\uFF21", 25],
["8281", "\uFF41", 25],
["829f", "\u3041", 82],
["8340", "\u30A1", 62],
["8380", "\u30E0", 22],
["839f", "\u0391", 16, "\u03A3", 6],
["83bf", "\u03B1", 16, "\u03C3", 6],
["8440", "\u0410", 5, "\u0401\u0416", 25],
["8470", "\u0430", 5, "\u0451\u0436", 7],
["8480", "\u043E", 17],
["849f", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
["8740", "\u2460", 19, "\u2160", 9],
["875f", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
["877e", "\u337B"],
["8780", "\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
["889f", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
["8940", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],
["8980", "\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
["8a40", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],
["8a80", "\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
["8b40", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],
["8b80", "\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
["8c40", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],
["8c80", "\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
["8d40", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],
["8d80", "\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
["8e40", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],
["8e80", "\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
["8f40", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],
["8f80", "\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
["9040", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],
["9080", "\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
["9140", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],
["9180", "\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
["9240", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],
["9280", "\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
["9340", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],
["9380", "\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
["9440", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],
["9480", "\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
["9540", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],
["9580", "\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
["9640", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],
["9680", "\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
["9740", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],
["9780", "\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
["9840", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
["989f", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
["9940", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],
["9980", "\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
["9a40", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],
["9a80", "\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
["9b40", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],
["9b80", "\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
["9c40", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],
["9c80", "\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
["9d40", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],
["9d80", "\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
["9e40", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],
["9e80", "\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
["9f40", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],
["9f80", "\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
["e040", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],
["e080", "\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
["e140", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],
["e180", "\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
["e240", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],
["e280", "\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
["e340", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],
["e380", "\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
["e440", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],
["e480", "\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
["e540", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],
["e580", "\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
["e640", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],
["e680", "\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
["e740", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],
["e780", "\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
["e840", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],
["e880", "\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
["e940", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],
["e980", "\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
["ea40", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],
["ea80", "\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],
["ed40", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],
["ed80", "\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
["ee40", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],
["ee80", "\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
["eeef", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
["f040", "\uE000", 62],
["f080", "\uE03F", 124],
["f140", "\uE0BC", 62],
["f180", "\uE0FB", 124],
["f240", "\uE178", 62],
["f280", "\uE1B7", 124],
["f340", "\uE234", 62],
["f380", "\uE273", 124],
["f440", "\uE2F0", 62],
["f480", "\uE32F", 124],
["f540", "\uE3AC", 62],
["f580", "\uE3EB", 124],
["f640", "\uE468", 62],
["f680", "\uE4A7", 124],
["f740", "\uE524", 62],
["f780", "\uE563", 124],
["f840", "\uE5E0", 62],
["f880", "\uE61F", 124],
["f940", "\uE69C"],
["fa40", "\u2170", 9, "\u2160", 9, "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],
["fa80", "\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],
["fb40", "\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],
["fb80", "\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],
["fc40", "\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]
];
}
});
var require_eucjp = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/tables/eucjp.json"(exports2, module2) {
module2.exports = [
["0", "\0", 127],
["8ea1", "\uFF61", 62],
["a1a1", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],
["a2a1", "\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
["a2ba", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
["a2ca", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
["a2dc", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
["a2f2", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
["a2fe", "\u25EF"],
["a3b0", "\uFF10", 9],
["a3c1", "\uFF21", 25],
["a3e1", "\uFF41", 25],
["a4a1", "\u3041", 82],
["a5a1", "\u30A1", 85],
["a6a1", "\u0391", 16, "\u03A3", 6],
["a6c1", "\u03B1", 16, "\u03C3", 6],
["a7a1", "\u0410", 5, "\u0401\u0416", 25],
["a7d1", "\u0430", 5, "\u0451\u0436", 25],
["a8a1", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
["ada1", "\u2460", 19, "\u2160", 9],
["adc0", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
["addf", "\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
["b0a1", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
["b1a1", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],
["b2a1", "\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
["b3a1", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],
["b4a1", "\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
["b5a1", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],
["b6a1", "\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
["b7a1", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],
["b8a1", "\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
["b9a1", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],
["baa1", "\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
["bba1", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],
["bca1", "\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
["bda1", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],
["bea1", "\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
["bfa1", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],
["c0a1", "\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
["c1a1", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],
["c2a1", "\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
["c3a1", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],
["c4a1", "\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
["c5a1", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],
["c6a1", "\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
["c7a1", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],
["c8a1", "\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
["c9a1", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],
["caa1", "\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
["cba1", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],
["cca1", "\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
["cda1", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],
["cea1", "\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
["cfa1", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
["d0a1", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
["d1a1", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],
["d2a1", "\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
["d3a1", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],
["d4a1", "\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
["d5a1", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],
["d6a1", "\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
["d7a1", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],
["d8a1", "\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
["d9a1", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],
["daa1", "\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
["dba1", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],
["dca1", "\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
["dda1", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],
["dea1", "\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
["dfa1", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],
["e0a1", "\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
["e1a1", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],
["e2a1", "\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
["e3a1", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],
["e4a1", "\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
["e5a1", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],
["e6a1", "\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
["e7a1", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],
["e8a1", "\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
["e9a1", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],
["eaa1", "\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
["eba1", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],
["eca1", "\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
["eda1", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],
["eea1", "\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
["efa1", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],
["f0a1", "\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
["f1a1", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],
["f2a1", "\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
["f3a1", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],
["f4a1", "\u582F\u69C7\u9059\u7464\u51DC\u7199"],
["f9a1", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],
["faa1", "\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
["fba1", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],
["fca1", "\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
["fcf1", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
["8fa2af", "\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],
["8fa2c2", "\xA1\xA6\xBF"],
["8fa2eb", "\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],
["8fa6e1", "\u0386\u0388\u0389\u038A\u03AA"],
["8fa6e7", "\u038C"],
["8fa6e9", "\u038E\u03AB"],
["8fa6ec", "\u038F"],
["8fa6f1", "\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],
["8fa7c2", "\u0402", 10, "\u040E\u040F"],
["8fa7f2", "\u0452", 10, "\u045E\u045F"],
["8fa9a1", "\xC6\u0110"],
["8fa9a4", "\u0126"],
["8fa9a6", "\u0132"],
["8fa9a8", "\u0141\u013F"],
["8fa9ab", "\u014A\xD8\u0152"],
["8fa9af", "\u0166\xDE"],
["8fa9c1", "\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],
["8faaa1", "\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],
["8faaba", "\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],
["8faba1", "\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],
["8fabbd", "\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],
["8fabc5", "\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],
["8fb0a1", "\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],
["8fb1a1", "\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],
["8fb2a1", "\u5092\u5093\u5094\u5096\u509B\u509C\u509E", 4, "\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],
["8fb3a1", "\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],
["8fb4a1", "\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],
["8fb5a1", "\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],
["8fb6a1", "\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D", 5, "\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4", 4, "\u56F1\u56EB\u56ED"],
["8fb7a1", "\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D", 4, "\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],
["8fb8a1", "\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],
["8fb9a1", "\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],
["8fbaa1", "\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6", 4, "\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],
["8fbba1", "\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],
["8fbca1", "\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A", 4, "\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],
["8fbda1", "\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0", 4, "\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],
["8fbea1", "\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110", 4, "\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],
["8fbfa1", "\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],
["8fc0a1", "\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],
["8fc1a1", "\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],
["8fc2a1", "\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],
["8fc3a1", "\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E", 4, "\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],
["8fc4a1", "\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],
["8fc5a1", "\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],
["8fc6a1", "\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],
["8fc7a1", "\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],
["8fc8a1", "\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],
["8fc9a1", "\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094", 4, "\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103", 4, "\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],
["8fcaa1", "\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],
["8fcba1", "\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],
["8fcca1", "\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428", 9, "\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],
["8fcda1", "\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579", 5, "\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],
["8fcea1", "\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2", 6, "\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],
["8fcfa1", "\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],
["8fd0a1", "\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],
["8fd1a1", "\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],
["8fd2a1", "\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59", 5],
["8fd3a1", "\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],
["8fd4a1", "\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2", 4, "\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],
["8fd5a1", "\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],
["8fd6a1", "\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],
["8fd7a1", "\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],
["8fd8a1", "\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],
["8fd9a1", "\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F", 4, "\u8556\u8559\u855C", 6, "\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],
["8fdaa1", "\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660", 4, "\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],
["8fdba1", "\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783", 6, "\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],
["8fdca1", "\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA", 4, "\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],
["8fdda1", "\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4", 4, "\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],
["8fdea1", "\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42", 4, "\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],
["8fdfa1", "\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],
["8fe0a1", "\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],
["8fe1a1", "\u8F43\u8F47\u8F4F\u8F51", 4, "\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],
["8fe2a1", "\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],
["8fe3a1", "\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC", 5, "\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275", 4, "\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],
["8fe4a1", "\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF", 4, "\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],
["8fe5a1", "\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9", 4, "\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],
["8fe6a1", "\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],
["8fe7a1", "\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],
["8fe8a1", "\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931", 4, "\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],
["8fe9a1", "\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF", 4],
["8feaa1", "\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A", 4, "\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],
["8feba1", "\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26", 4, "\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],
["8feca1", "\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],
["8feda1", "\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43", 4, "\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D", 4, "\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]
];
}
});
var require_cp936 = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/tables/cp936.json"(exports2, module2) {
module2.exports = [
["0", "\0", 127, "\u20AC"],
["8140", "\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A", 5, "\u4E72\u4E74", 9, "\u4E7F", 6, "\u4E87\u4E8A"],
["8180", "\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02", 6, "\u4F0B\u4F0C\u4F12", 4, "\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E", 4, "\u4F44\u4F45\u4F47", 5, "\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],
["8240", "\u4FA4\u4FAB\u4FAD\u4FB0", 4, "\u4FB6", 8, "\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2", 4, "\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF", 11],
["8280", "\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F", 10, "\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050", 4, "\u5056\u5057\u5058\u5059\u505B\u505D", 7, "\u5066", 5, "\u506D", 8, "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E", 20, "\u50A4\u50A6\u50AA\u50AB\u50AD", 4, "\u50B3", 6, "\u50BC"],
["8340", "\u50BD", 17, "\u50D0", 5, "\u50D7\u50D8\u50D9\u50DB", 10, "\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6", 4, "\u50FC", 9, "\u5108"],
["8380", "\u5109\u510A\u510C", 5, "\u5113", 13, "\u5122", 28, "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D", 4, "\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6", 4, "\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2", 5],
["8440", "\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5", 5, "\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244", 5, "\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],
["8480", "\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273", 9, "\u527E\u5280\u5283", 4, "\u5289", 6, "\u5291\u5292\u5294", 6, "\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4", 9, "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9", 5, "\u52E0\u52E1\u52E2\u52E3\u52E5", 10, "\u52F1", 7, "\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],
["8540", "\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F", 9, "\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],
["8580", "\u5390", 4, "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF", 6, "\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3", 4, "\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D", 4, "\u5463\u5465\u5467\u5469", 7, "\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],
["8640", "\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0", 4, "\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4", 5, "\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A", 4, "\u5512\u5513\u5515", 5, "\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],
["8680", "\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B", 4, "\u5551\u5552\u5553\u5554\u5557", 4, "\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F", 5, "\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0", 6, "\u55A8", 8, "\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF", 4, "\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7", 4, "\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8", 4, "\u55FF\u5602\u5603\u5604\u5605"],
["8740", "\u5606\u5607\u560A\u560B\u560D\u5610", 7, "\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640", 11, "\u564F", 4, "\u5655\u5656\u565A\u565B\u565D", 4],
["8780", "\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D", 7, "\u5687", 6, "\u5690\u5691\u5692\u5694", 14, "\u56A4", 10, "\u56B0", 6, "\u56B8\u56B9\u56BA\u56BB\u56BD", 12, "\u56CB", 8, "\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5", 5, "\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B", 6],
["8840", "\u5712", 9, "\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734", 4, "\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752", 4, "\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],
["8880", "\u5781\u5787\u5788\u5789\u578A\u578D", 4, "\u5794", 6, "\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9", 8, "\u57C4", 6, "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5", 7, "\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825", 4, "\u582B", 4, "\u5831\u5832\u5833\u5834\u5836", 7],
["8940", "\u583E", 5, "\u5845", 6, "\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859", 4, "\u585F", 5, "\u5866", 4, "\u586D", 16, "\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],
["8980", "\u588D", 4, "\u5894", 4, "\u589B\u589C\u589D\u58A0", 7, "\u58AA", 17, "\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6", 10, "\u58D2\u58D3\u58D4\u58D6", 13, "\u58E5", 5, "\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA", 7, "\u5903\u5905\u5906\u5908", 4, "\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],
["8a40", "\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B", 4, "\u5961\u5963\u5964\u5966", 12, "\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],
["8a80", "\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3", 5, "\u59BA\u59BC\u59BD\u59BF", 6, "\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE", 4, "\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED", 11, "\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A", 6, "\u5A33\u5A35\u5A37", 4, "\u5A3D\u5A3E\u5A3F\u5A41", 4, "\u5A47\u5A48\u5A4B", 9, "\u5A56\u5A57\u5A58\u5A59\u5A5B", 5],
["8b40", "\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B", 8, "\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80", 17, "\u5A93", 6, "\u5A9C", 13, "\u5AAB\u5AAC"],
["8b80", "\u5AAD", 4, "\u5AB4\u5AB6\u5AB7\u5AB9", 4, "\u5ABF\u5AC0\u5AC3", 5, "\u5ACA\u5ACB\u5ACD", 4, "\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC", 4, "\u5AF2", 22, "\u5B0A", 11, "\u5B18", 25, "\u5B33\u5B35\u5B36\u5B38", 7, "\u5B41", 6],
["8c40", "\u5B48", 7, "\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],
["8c80", "\u5BD1\u5BD4", 8, "\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9", 4, "\u5BEF\u5BF1", 6, "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67", 6, "\u5C70\u5C72", 6, "\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83", 4, "\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D", 4, "\u5CA4", 4],
["8d40", "\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5", 5, "\u5CCC", 5, "\u5CD3", 5, "\u5CDA", 6, "\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1", 9, "\u5CFC", 4],
["8d80", "\u5D01\u5D04\u5D05\u5D08", 5, "\u5D0F", 4, "\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F", 4, "\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F", 4, "\u5D35", 7, "\u5D3F", 7, "\u5D48\u5D49\u5D4D", 10, "\u5D59\u5D5A\u5D5C\u5D5E", 10, "\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75", 12, "\u5D83", 21, "\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],
["8e40", "\u5DA1", 21, "\u5DB8", 12, "\u5DC6", 6, "\u5DCE", 12, "\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],
["8e80", "\u5DF0\u5DF5\u5DF6\u5DF8", 4, "\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E", 7, "\u5E28", 4, "\u5E2F\u5E30\u5E32", 4, "\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46", 5, "\u5E4D", 6, "\u5E56", 4, "\u5E5C\u5E5D\u5E5F\u5E60\u5E63", 14, "\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8", 4, "\u5EAE", 4, "\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF", 6],
["8f40", "\u5EC6\u5EC7\u5EC8\u5ECB", 5, "\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC", 11, "\u5EE9\u5EEB", 8, "\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],
["8f80", "\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32", 6, "\u5F3B\u5F3D\u5F3E\u5F3F\u5F41", 14, "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2", 5, "\u5FA9\u5FAB\u5FAC\u5FAF", 5, "\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE", 4, "\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],
["9040", "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030", 4, "\u6036", 4, "\u603D\u603E\u6040\u6044", 6, "\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],
["9080", "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD", 7, "\u60C7\u60C8\u60C9\u60CC", 4, "\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1", 4, "\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB", 4, "\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110", 4, "\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C", 18, "\u6140", 6],
["9140", "\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156", 6, "\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169", 6, "\u6171\u6172\u6173\u6174\u6176\u6178", 18, "\u618C\u618D\u618F", 4, "\u6195"],
["9180", "\u6196", 6, "\u619E", 8, "\u61AA\u61AB\u61AD", 9, "\u61B8", 5, "\u61BF\u61C0\u61C1\u61C3", 4, "\u61C9\u61CC", 4, "\u61D3\u61D5", 16, "\u61E7", 13, "\u61F6", 8, "\u6200", 5, "\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238", 4, "\u6242\u6244\u6245\u6246\u624A"],
["9240", "\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C", 6, "\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B", 5, "\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],
["9280", "\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333", 5, "\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356", 7, "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399", 6, "\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],
["9340", "\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7", 6, "\u63DF\u63E2\u63E4", 4, "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406", 4, "\u640D\u640E\u6411\u6412\u6415", 5, "\u641D\u641F\u6422\u6423\u6424"],
["9380", "\u6425\u6427\u6428\u6429\u642B\u642E", 5, "\u6435", 4, "\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B", 6, "\u6453\u6455\u6456\u6457\u6459", 4, "\u645F", 7, "\u6468\u646A\u646B\u646C\u646E", 9, "\u647B", 6, "\u6483\u6486\u6488", 8, "\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F", 4, "\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6", 6, "\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],
["9440", "\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7", 24, "\u6501", 7, "\u650A", 7, "\u6513", 4, "\u6519", 8],
["9480", "\u6522\u6523\u6524\u6526", 4, "\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540", 4, "\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578", 14, "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1", 7, "\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8", 7, "\u65E1\u65E3\u65E4\u65EA\u65EB"],
["9540", "\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB", 4, "\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637", 4, "\u663D\u663F\u6640\u6642\u6644", 6, "\u664D\u664E\u6650\u6651\u6658"],
["9580", "\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669", 4, "\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698", 4, "\u669E", 8, "\u66A9", 4, "\u66AF", 4, "\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF", 25, "\u66DA\u66DE", 7, "\u66E7\u66E8\u66EA", 5, "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],
["9640", "\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720", 5, "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757", 4, "\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],
["9680", "\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9", 7, "\u67C2\u67C5", 9, "\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5", 7, "\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818", 4, "\u681E\u681F\u6820\u6822", 6, "\u682B", 6, "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856", 5],
["9740", "\u685C\u685D\u685E\u685F\u686A\u686C", 7, "\u6875\u6878", 8, "\u6882\u6884\u6887", 7, "\u6890\u6891\u6892\u6894\u6895\u6896\u6898", 9, "\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],
["9780", "\u68B9", 6, "\u68C1\u68C3", 5, "\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB", 4, "\u68E1\u68E2\u68E4", 9, "\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906", 4, "\u690C\u690F\u6911\u6913", 11, "\u6921\u6922\u6923\u6925", 7, "\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943", 16, "\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],
["9840", "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972", 4, "\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E", 5, "\u6996\u6997\u6999\u699A\u699D", 9, "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],
["9880", "\u69BE\u69BF\u69C0\u69C2", 7, "\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5", 5, "\u69DC\u69DD\u69DE\u69E1", 11, "\u69EE\u69EF\u69F0\u69F1\u69F3", 9, "\u69FE\u6A00", 9, "\u6A0B", 11, "\u6A19", 5, "\u6A20\u6A22", 5, "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36", 6, "\u6A3F", 4, "\u6A45\u6A46\u6A48", 7, "\u6A51", 6, "\u6A5A"],
["9940", "\u6A5C", 4, "\u6A62\u6A63\u6A64\u6A66", 10, "\u6A72", 6, "\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85", 8, "\u6A8F\u6A92", 4, "\u6A98", 7, "\u6AA1", 5],
["9980", "\u6AA7\u6AA8\u6AAA\u6AAD", 114, "\u6B25\u6B26\u6B28", 6],
["9a40", "\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D", 11, "\u6B5A", 7, "\u6B68\u6B69\u6B6B", 13, "\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],
["9a80", "\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C", 4, "\u6BA2", 7, "\u6BAB", 7, "\u6BB6\u6BB8", 6, "\u6BC0\u6BC3\u6BC4\u6BC6", 4, "\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC", 4, "\u6BE2", 7, "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE", 6, "\u6C08", 4, "\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B", 4, "\u6C51\u6C52\u6C53\u6C56\u6C58"],
["9b40", "\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B", 4, "\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],
["9b80", "\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F", 5, "\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D", 4, "\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96", 4, "\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9", 5, "\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],
["9c40", "\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD", 7, "\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],
["9c80", "\u6E36\u6E37\u6E39\u6E3B", 7, "\u6E45", 7, "\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60", 10, "\u6E6C\u6E6D\u6E6F", 14, "\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A", 4, "\u6E91", 6, "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA", 5],
["9d40", "\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA", 7, "\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A", 4, "\u6F10\u6F11\u6F12\u6F16", 9, "\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37", 6, "\u6F3F\u6F40\u6F41\u6F42"],
["9d80", "\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E", 9, "\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67", 5, "\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D", 6, "\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F", 12, "\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2", 4, "\u6FA8", 10, "\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA", 5, "\u6FC1\u6FC3", 5, "\u6FCA", 6, "\u6FD3", 10, "\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],
["9e40", "\u6FE6", 7, "\u6FF0", 32, "\u7012", 7, "\u701C", 6, "\u7024", 6],
["9e80", "\u702B", 9, "\u7036\u7037\u7038\u703A", 17, "\u704D\u704E\u7050", 13, "\u705F", 11, "\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E", 12, "\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB", 12, "\u70DA"],
["9f40", "\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0", 6, "\u70F8\u70FA\u70FB\u70FC\u70FE", 10, "\u710B", 4, "\u7111\u7112\u7114\u7117\u711B", 10, "\u7127", 7, "\u7132\u7133\u7134"],
["9f80", "\u7135\u7137", 13, "\u7146\u7147\u7148\u7149\u714B\u714D\u714F", 12, "\u715D\u715F", 4, "\u7165\u7169", 4, "\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E", 5, "\u7185", 4, "\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A", 4, "\u71A1", 6, "\u71A9\u71AA\u71AB\u71AD", 5, "\u71B4\u71B6\u71B7\u71B8\u71BA", 8, "\u71C4", 9, "\u71CF", 4],
["a040", "\u71D6", 9, "\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8", 5, "\u71EF", 9, "\u71FA", 11, "\u7207", 19],
["a080", "\u721B\u721C\u721E", 9, "\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240", 6, "\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285", 4, "\u728C\u728E\u7290\u7291\u7293", 11, "\u72A0", 11, "\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA", 6, "\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],
["a1a1", "\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 7, "\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],
["a2a1", "\u2170", 9],
["a2b1", "\u2488", 19, "\u2474", 19, "\u2460", 9],
["a2e5", "\u3220", 9],
["a2f1", "\u2160", 11],
["a3a1", "\uFF01\uFF02\uFF03\uFFE5\uFF05", 88, "\uFFE3"],
["a4a1", "\u3041", 82],
["a5a1", "\u30A1", 85],
["a6a1", "\u0391", 16, "\u03A3", 6],
["a6c1", "\u03B1", 16, "\u03C3", 6],
["a6e0", "\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],
["a6ee", "\uFE3B\uFE3C\uFE37\uFE38\uFE31"],
["a6f4", "\uFE33\uFE34"],
["a7a1", "\u0410", 5, "\u0401\u0416", 25],
["a7d1", "\u0430", 5, "\u0451\u0436", 25],
["a840", "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550", 35, "\u2581", 6],
["a880", "\u2588", 7, "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],
["a8a1", "\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],
["a8bd", "\u0144\u0148"],
["a8c0", "\u0261"],
["a8c5", "\u3105", 36],
["a940", "\u3021", 8, "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],
["a959", "\u2121\u3231"],
["a95c", "\u2010"],
["a960", "\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49", 9, "\uFE54\uFE55\uFE56\uFE57\uFE59", 8],
["a980", "\uFE62", 4, "\uFE68\uFE69\uFE6A\uFE6B"],
["a996", "\u3007"],
["a9a4", "\u2500", 75],
["aa40", "\u72DC\u72DD\u72DF\u72E2", 5, "\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304", 5, "\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340", 8],
["aa80", "\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358", 7, "\u7361", 10, "\u736E\u7370\u7371"],
["ab40", "\u7372", 11, "\u737F", 4, "\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3", 5, "\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3", 4],
["ab80", "\u73CB\u73CC\u73CE\u73D2", 6, "\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3", 4],
["ac40", "\u73F8", 10, "\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411", 8, "\u741C", 5, "\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437", 4, "\u743D\u743E\u743F\u7440\u7442", 11],
["ac80", "\u744E", 6, "\u7456\u7458\u745D\u7460", 12, "\u746E\u746F\u7471", 4, "\u7478\u7479\u747A"],
["ad40", "\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491", 10, "\u749D\u749F", 7, "\u74AA", 15, "\u74BB", 12],
["ad80", "\u74C8", 9, "\u74D3", 8, "\u74DD\u74DF\u74E1\u74E5\u74E7", 6, "\u74F0\u74F1\u74F2"],
["ae40", "\u74F3\u74F5\u74F8", 6, "\u7500\u7501\u7502\u7503\u7505", 7, "\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520", 4, "\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],
["ae80", "\u755D", 7, "\u7567\u7568\u7569\u756B", 6, "\u7573\u7575\u7576\u7577\u757A", 4, "\u7580\u7581\u7582\u7584\u7585\u7587"],
["af40", "\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6", 4, "\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],
["af80", "\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],
["b040", "\u7645", 6, "\u764E", 5, "\u7655\u7657", 4, "\u765D\u765F\u7660\u7661\u7662\u7664", 6, "\u766C\u766D\u766E\u7670", 7, "\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],
["b080", "\u769C", 7, "\u76A5", 8, "\u76AF\u76B0\u76B3\u76B5", 9, "\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],
["b140", "\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0", 4, "\u76E6", 7, "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E", 10, "\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],
["b180", "\u772C\u772E\u7730", 4, "\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748", 7, "\u7752", 7, "\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],
["b240", "\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D", 11, "\u777A\u777B\u777C\u7781\u7782\u7783\u7786", 5, "\u778F\u7790\u7793", 11, "\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6", 4],
["b280", "\u77BC\u77BE\u77C0", 12, "\u77CE", 8, "\u77D8\u77D9\u77DA\u77DD", 4, "\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],
["b340", "\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803", 5, "\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],
["b380", "\u785B\u785C\u785E", 11, "\u786F", 7, "\u7878\u7879\u787A\u787B\u787D", 6, "\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],
["b440", "\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8", 7, "\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA", 9],
["b480", "\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED", 4, "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB", 5, "\u7902\u7903\u7904\u7906", 6, "\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],
["b540", "\u790D", 5, "\u7914", 9, "\u791F", 4, "\u7925", 14, "\u7935", 4, "\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A", 8, "\u7954\u7955\u7958\u7959\u7961\u7963"],
["b580", "\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970", 6, "\u7979\u797B", 4, "\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],
["b640", "\u7993", 6, "\u799B", 11, "\u79A8", 10, "\u79B4", 4, "\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9", 5, "\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],
["b680", "\u79EC\u79EE\u79F1", 6, "\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F", 4, "\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],
["b740", "\u7A1D\u7A1F\u7A21\u7A22\u7A24", 14, "\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40", 5, "\u7A47", 9, "\u7A52", 4, "\u7A58", 16],
["b780", "\u7A69", 6, "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],
["b840", "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE", 4, "\u7AB4", 10, "\u7AC0", 10, "\u7ACC", 9, "\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7", 5, "\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],
["b880", "\u7AF4", 4, "\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],
["b940", "\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F", 5, "\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63", 10, "\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86", 6, "\u7B8E\u7B8F"],
["b980", "\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9", 7, "\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],
["ba40", "\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4", 4, "\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2", 4, "\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF", 7, "\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10", 5, "\u7C17\u7C18\u7C19"],
["ba80", "\u7C1A", 4, "\u7C20", 5, "\u7C28\u7C29\u7C2B", 12, "\u7C39", 5, "\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],
["bb40", "\u7C43", 9, "\u7C4E", 36, "\u7C75", 5, "\u7C7E", 9],
["bb80", "\u7C88\u7C8A", 6, "\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4", 4, "\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],
["bc40", "\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE", 6, "\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1", 6, "\u7CE9", 5, "\u7CF0", 7, "\u7CF9\u7CFA\u7CFC", 13, "\u7D0B", 5],
["bc80", "\u7D11", 14, "\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30", 6, "\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],
["bd40", "\u7D37", 54, "\u7D6F", 7],
["bd80", "\u7D78", 32, "\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],
["be40", "\u7D99", 12, "\u7DA7", 6, "\u7DAF", 42],
["be80", "\u7DDA", 32, "\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],
["bf40", "\u7DFB", 62],
["bf80", "\u7E3A\u7E3C", 4, "\u7E42", 4, "\u7E48", 21, "\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],
["c040", "\u7E5E", 35, "\u7E83", 23, "\u7E9C\u7E9D\u7E9E"],
["c080", "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B", 6, "\u7F43\u7F46", 9, "\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],
["c140", "\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63", 4, "\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82", 7, "\u7F8B\u7F8D\u7F8F", 4, "\u7F95", 4, "\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8", 6, "\u7FB1"],
["c180", "\u7FB3", 4, "\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF", 4, "\u7FD6\u7FD7\u7FD9", 5, "\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],
["c240", "\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4", 6, "\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B", 5, "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],
["c280", "\u8059\u805B", 13, "\u806B", 5, "\u8072", 11, "\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],
["c340", "\u807E\u8081\u8082\u8085\u8088\u808A\u808D", 5, "\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7", 4, "\u80CF", 6, "\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],
["c380", "\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F", 12, "\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139", 4, "\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],
["c440", "\u8140", 5, "\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B", 4, "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183", 4, "\u8189\u818B\u818C\u818D\u818E\u8190\u8192", 5, "\u8199\u819A\u819E", 4, "\u81A4\u81A5"],
["c480", "\u81A7\u81A9\u81AB", 7, "\u81B4", 5, "\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD", 6, "\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],
["c540", "\u81D4", 14, "\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE", 4, "\u81F5", 5, "\u81FD\u81FF\u8203\u8207", 4, "\u820E\u820F\u8211\u8213\u8215", 5, "\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],
["c580", "\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250", 7, "\u8259\u825B\u825C\u825D\u825E\u8260", 7, "\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],
["c640", "\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],
["c680", "\u82FA\u82FC", 4, "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D", 9, "\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],
["c740", "\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A", 4, "\u8353\u8355", 4, "\u835D\u8362\u8370", 6, "\u8379\u837A\u837E", 6, "\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1", 6, "\u83AC\u83AD\u83AE"],
["c780", "\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],
["c840", "\u83EE\u83EF\u83F3", 4, "\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412", 5, "\u8419\u841A\u841B\u841E", 5, "\u8429", 7, "\u8432", 5, "\u8439\u843A\u843B\u843E", 7, "\u8447\u8448\u8449"],
["c880", "\u844A", 6, "\u8452", 4, "\u8458\u845D\u845E\u845F\u8460\u8462\u8464", 4, "\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],
["c940", "\u847D", 4, "\u8483\u8484\u8485\u8486\u848A\u848D\u848F", 7, "\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2", 12, "\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],
["c980", "\u84D8", 4, "\u84DE\u84E1\u84E2\u84E4\u84E7", 4, "\u84ED\u84EE\u84EF\u84F1", 10, "\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],
["ca40", "\u8503", 8, "\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522", 8, "\u852D", 9, "\u853E", 4, "\u8544\u8545\u8546\u8547\u854B", 10],
["ca80", "\u8557\u8558\u855A\u855B\u855C\u855D\u855F", 4, "\u8565\u8566\u8567\u8569", 8, "\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],
["cb40", "\u8582\u8583\u8586\u8588", 6, "\u8590", 10, "\u859D", 6, "\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1", 5, "\u85B8\u85BA", 6, "\u85C2", 6, "\u85CA", 4, "\u85D1\u85D2"],
["cb80", "\u85D4\u85D6", 5, "\u85DD", 6, "\u85E5\u85E6\u85E7\u85E8\u85EA", 14, "\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],
["cc40", "\u85F9\u85FA\u85FC\u85FD\u85FE\u8600", 4, "\u8606", 10, "\u8612\u8613\u8614\u8615\u8617", 15, "\u8628\u862A", 13, "\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],
["cc80", "\u8641", 11, "\u8652\u8653\u8655", 4, "\u865B\u865C\u865D\u865F\u8660\u8661\u8663", 7, "\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],
["cd40", "\u866D\u866F\u8670\u8672", 6, "\u8683", 6, "\u868E", 4, "\u8694\u8696", 5, "\u869E", 4, "\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB", 4, "\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],
["cd80", "\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],
["ce40", "\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740", 6, "\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A", 5, "\u8761\u8762\u8766", 7, "\u876F\u8771\u8772\u8773\u8775"],
["ce80", "\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E", 4, "\u8794\u8795\u8796\u8798", 6, "\u87A0", 4, "\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],
["cf40", "\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1", 4, "\u87C7\u87C8\u87C9\u87CC", 4, "\u87D4", 6, "\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF", 9],
["cf80", "\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804", 5, "\u880B", 7, "\u8814\u8817\u8818\u8819\u881A\u881C", 4, "\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],
["d040", "\u8824", 13, "\u8833", 5, "\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846", 5, "\u884E", 5, "\u8855\u8856\u8858\u885A", 6, "\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],
["d080", "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897", 4, "\u889D", 4, "\u88A3\u88A5", 5, "\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],
["d140", "\u88AC\u88AE\u88AF\u88B0\u88B2", 4, "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA", 4, "\u88E0\u88E1\u88E6\u88E7\u88E9", 6, "\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903", 5],
["d180", "\u8909\u890B", 4, "\u8911\u8914", 4, "\u891C", 4, "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],
["d240", "\u8938", 8, "\u8942\u8943\u8945", 24, "\u8960", 5, "\u8967", 19, "\u897C"],
["d280", "\u897D\u897E\u8980\u8982\u8984\u8985\u8987", 26, "\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],
["d340", "\u89A2", 30, "\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4", 6],
["d380", "\u89FB", 4, "\u8A01", 5, "\u8A08", 21, "\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],
["d440", "\u8A1E", 31, "\u8A3F", 8, "\u8A49", 21],
["d480", "\u8A5F", 25, "\u8A7A", 6, "\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],
["d540", "\u8A81", 7, "\u8A8B", 7, "\u8A94", 46],
["d580", "\u8AC3", 32, "\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],
["d640", "\u8AE4", 34, "\u8B08", 27],
["d680", "\u8B24\u8B25\u8B27", 30, "\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],
["d740", "\u8B46", 31, "\u8B67", 4, "\u8B6D", 25],
["d780", "\u8B87", 24, "\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],
["d840", "\u8C38", 8, "\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D", 7, "\u8C56\u8C57\u8C58\u8C59\u8C5B", 5, "\u8C63", 6, "\u8C6C", 6, "\u8C74\u8C75\u8C76\u8C77\u8C7B", 6, "\u8C83\u8C84\u8C86\u8C87"],
["d880", "\u8C88\u8C8B\u8C8D", 6, "\u8C95\u8C96\u8C97\u8C99", 20, "\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],
["d940", "\u8CAE", 62],
["d980", "\u8CED", 32, "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],
["da40", "\u8D0E", 14, "\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78", 8, "\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C", 4, "\u8D92\u8D93\u8D95", 9, "\u8DA0\u8DA1"],
["da80", "\u8DA2\u8DA4", 12, "\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],
["db40", "\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE", 6, "\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15", 7, "\u8E20\u8E21\u8E24", 4, "\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],
["db80", "\u8E3F\u8E43\u8E45\u8E46\u8E4C", 4, "\u8E53", 5, "\u8E5A", 11, "\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],
["dc40", "\u8E73\u8E75\u8E77", 4, "\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88", 6, "\u8E91\u8E92\u8E93\u8E95", 6, "\u8E9D\u8E9F", 11, "\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3", 6, "\u8EBB", 7],
["dc80", "\u8EC3", 10, "\u8ECF", 21, "\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],
["dd40", "\u8EE5", 62],
["dd80", "\u8F24", 32, "\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],
["de40", "\u8F45", 32, "\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],
["de80", "\u8FC9", 4, "\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],
["df40", "\u9019\u901C\u9023\u9024\u9025\u9027", 5, "\u9030", 4, "\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048", 4, "\u904E\u9054\u9055\u9056\u9059\u905A\u905C", 5, "\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F", 4, "\u9076", 6, "\u907E\u9081"],
["df80", "\u9084\u9085\u9086\u9087\u9089\u908A\u908C", 4, "\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],
["e040", "\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105", 19, "\u911A\u911B\u911C"],
["e080", "\u911D\u911F\u9120\u9121\u9124", 10, "\u9130\u9132", 6, "\u913A", 8, "\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],
["e140", "\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180", 4, "\u9186\u9188\u918A\u918E\u918F\u9193", 6, "\u919C", 5, "\u91A4", 5, "\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],
["e180", "\u91BC", 10, "\u91C8\u91CB\u91D0\u91D2", 9, "\u91DD", 8, "\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],
["e240", "\u91E6", 62],
["e280", "\u9225", 32, "\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967", 5, "\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],
["e340", "\u9246", 45, "\u9275", 16],
["e380", "\u9286", 7, "\u928F", 24, "\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],
["e440", "\u92A8", 5, "\u92AF", 24, "\u92C9", 31],
["e480", "\u92E9", 32, "\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],
["e540", "\u930A", 51, "\u933F", 10],
["e580", "\u934A", 31, "\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],
["e640", "\u936C", 34, "\u9390", 27],
["e680", "\u93AC", 29, "\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],
["e740", "\u93CE", 7, "\u93D7", 54],
["e780", "\u940E", 32, "\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21", 6, "\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F", 4, "\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],
["e840", "\u942F", 14, "\u943F", 43, "\u946C\u946D\u946E\u946F"],
["e880", "\u9470", 20, "\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],
["e940", "\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577", 7, "\u9580", 42],
["e980", "\u95AB", 32, "\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],
["ea40", "\u95CC", 27, "\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623", 6, "\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],
["ea80", "\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D", 4, "\u9673\u9678", 12, "\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],
["eb40", "\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D", 9, "\u96A8", 7, "\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6", 9, "\u96E1", 6, "\u96EB"],
["eb80", "\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717", 4, "\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],
["ec40", "\u9721", 8, "\u972B\u972C\u972E\u972F\u9731\u9733", 4, "\u973A\u973B\u973C\u973D\u973F", 18, "\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A", 7],
["ec80", "\u9772\u9775\u9777", 4, "\u977D", 7, "\u9786", 4, "\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799", 4, "\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],
["ed40", "\u979E\u979F\u97A1\u97A2\u97A4", 6, "\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5", 46],
["ed80", "\u97E4\u97E5\u97E8\u97EE", 4, "\u97F4\u97F7", 23, "\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],
["ee40", "\u980F", 62],
["ee80", "\u984E", 32, "\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6", 4, "\u94BC\u94BD\u94BF\u94C4\u94C8", 6, "\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],
["ef40", "\u986F", 5, "\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8", 37, "\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0", 4],
["ef80", "\u98E5\u98E6\u98E9", 30, "\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512", 4, "\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564", 8, "\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],
["f040", "\u9908", 4, "\u990E\u990F\u9911", 28, "\u992F", 26],
["f080", "\u994A", 9, "\u9956", 12, "\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28", 4, "\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66", 6, "\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],
["f140", "\u998C\u998E\u999A", 10, "\u99A6\u99A7\u99A9", 47],
["f180", "\u99D9", 32, "\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],
["f240", "\u99FA", 62],
["f280", "\u9A39", 32, "\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],
["f340", "\u9A5A", 17, "\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9", 6, "\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6", 4, "\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],
["f380", "\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0", 8, "\u9AFA\u9AFC", 6, "\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],
["f440", "\u9B07\u9B09", 5, "\u9B10\u9B11\u9B12\u9B14", 10, "\u9B20\u9B21\u9B22\u9B24", 10, "\u9B30\u9B31\u9B33", 7, "\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55", 5],
["f480", "\u9B5B", 32, "\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],
["f540", "\u9B7C", 62],
["f580", "\u9BBB", 32, "\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],
["f640", "\u9BDC", 62],
["f680", "\u9C1B", 32, "\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85", 5, "\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E", 5, "\u9CA5", 4, "\u9CAB\u9CAD\u9CAE\u9CB0", 7, "\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],
["f740", "\u9C3C", 62],
["f780", "\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE", 4, "\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC", 4, "\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],
["f840", "\u9CE3", 62],
["f880", "\u9D22", 32],
["f940", "\u9D43", 62],
["f980", "\u9D82", 32],
["fa40", "\u9DA3", 62],
["fa80", "\u9DE2", 32],
["fb40", "\u9E03", 27, "\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74", 9, "\u9E80"],
["fb80", "\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C", 5, "\u9E94", 8, "\u9E9E\u9EA0", 5, "\u9EA7\u9EA8\u9EA9\u9EAA"],
["fc40", "\u9EAB", 8, "\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF", 4, "\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0", 8, "\u9EFA\u9EFD\u9EFF", 6],
["fc80", "\u9F06", 4, "\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A", 5, "\u9F21\u9F23", 8, "\u9F2D\u9F2E\u9F30\u9F31"],
["fd40", "\u9F32", 4, "\u9F38\u9F3A\u9F3C\u9F3F", 4, "\u9F45", 10, "\u9F52", 38],
["fd80", "\u9F79", 5, "\u9F81\u9F82\u9F8D", 11, "\u9F9C\u9F9D\u9F9E\u9FA1", 4, "\uF92C\uF979\uF995\uF9E7\uF9F1"],
["fe40", "\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]
];
}
});
var require_gbk_added = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/tables/gbk-added.json"(exports2, module2) {
module2.exports = [
["a140", "\uE4C6", 62],
["a180", "\uE505", 32],
["a240", "\uE526", 62],
["a280", "\uE565", 32],
["a2ab", "\uE766", 5],
["a2e3", "\u20AC\uE76D"],
["a2ef", "\uE76E\uE76F"],
["a2fd", "\uE770\uE771"],
["a340", "\uE586", 62],
["a380", "\uE5C5", 31, "\u3000"],
["a440", "\uE5E6", 62],
["a480", "\uE625", 32],
["a4f4", "\uE772", 10],
["a540", "\uE646", 62],
["a580", "\uE685", 32],
["a5f7", "\uE77D", 7],
["a640", "\uE6A6", 62],
["a680", "\uE6E5", 32],
["a6b9", "\uE785", 7],
["a6d9", "\uE78D", 6],
["a6ec", "\uE794\uE795"],
["a6f3", "\uE796"],
["a6f6", "\uE797", 8],
["a740", "\uE706", 62],
["a780", "\uE745", 32],
["a7c2", "\uE7A0", 14],
["a7f2", "\uE7AF", 12],
["a896", "\uE7BC", 10],
["a8bc", "\u1E3F"],
["a8bf", "\u01F9"],
["a8c1", "\uE7C9\uE7CA\uE7CB\uE7CC"],
["a8ea", "\uE7CD", 20],
["a958", "\uE7E2"],
["a95b", "\uE7E3"],
["a95d", "\uE7E4\uE7E5\uE7E6"],
["a989", "\u303E\u2FF0", 11],
["a997", "\uE7F4", 12],
["a9f0", "\uE801", 14],
["aaa1", "\uE000", 93],
["aba1", "\uE05E", 93],
["aca1", "\uE0BC", 93],
["ada1", "\uE11A", 93],
["aea1", "\uE178", 93],
["afa1", "\uE1D6", 93],
["d7fa", "\uE810", 4],
["f8a1", "\uE234", 93],
["f9a1", "\uE292", 93],
["faa1", "\uE2F0", 93],
["fba1", "\uE34E", 93],
["fca1", "\uE3AC", 93],
["fda1", "\uE40A", 93],
["fe50", "\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],
["fe80", "\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13", 6, "\u4DAE\uE864\uE468", 93],
["8135f437", "\uE7C7"]
];
}
});
var require_gb18030_ranges = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json"(exports2, module2) {
module2.exports = { uChars: [128, 165, 169, 178, 184, 216, 226, 235, 238, 244, 248, 251, 253, 258, 276, 284, 300, 325, 329, 334, 364, 463, 465, 467, 469, 471, 473, 475, 477, 506, 594, 610, 712, 716, 730, 930, 938, 962, 970, 1026, 1104, 1106, 8209, 8215, 8218, 8222, 8231, 8241, 8244, 8246, 8252, 8365, 8452, 8454, 8458, 8471, 8482, 8556, 8570, 8596, 8602, 8713, 8720, 8722, 8726, 8731, 8737, 8740, 8742, 8748, 8751, 8760, 8766, 8777, 8781, 8787, 8802, 8808, 8816, 8854, 8858, 8870, 8896, 8979, 9322, 9372, 9548, 9588, 9616, 9622, 9634, 9652, 9662, 9672, 9676, 9680, 9702, 9735, 9738, 9793, 9795, 11906, 11909, 11913, 11917, 11928, 11944, 11947, 11951, 11956, 11960, 11964, 11979, 12284, 12292, 12312, 12319, 12330, 12351, 12436, 12447, 12535, 12543, 12586, 12842, 12850, 12964, 13200, 13215, 13218, 13253, 13263, 13267, 13270, 13384, 13428, 13727, 13839, 13851, 14617, 14703, 14801, 14816, 14964, 15183, 15471, 15585, 16471, 16736, 17208, 17325, 17330, 17374, 17623, 17997, 18018, 18212, 18218, 18301, 18318, 18760, 18811, 18814, 18820, 18823, 18844, 18848, 18872, 19576, 19620, 19738, 19887, 40870, 59244, 59336, 59367, 59413, 59417, 59423, 59431, 59437, 59443, 59452, 59460, 59478, 59493, 63789, 63866, 63894, 63976, 63986, 64016, 64018, 64021, 64025, 64034, 64037, 64042, 65074, 65093, 65107, 65112, 65127, 65132, 65375, 65510, 65536], gbChars: [0, 36, 38, 45, 50, 81, 89, 95, 96, 100, 103, 104, 105, 109, 126, 133, 148, 172, 175, 179, 208, 306, 307, 308, 309, 310, 311, 312, 313, 341, 428, 443, 544, 545, 558, 741, 742, 749, 750, 805, 819, 820, 7922, 7924, 7925, 7927, 7934, 7943, 7944, 7945, 7950, 8062, 8148, 8149, 8152, 8164, 8174, 8236, 8240, 8262, 8264, 8374, 8380, 8381, 8384, 8388, 8390, 8392, 8393, 8394, 8396, 8401, 8406, 8416, 8419, 8424, 8437, 8439, 8445, 8482, 8485, 8496, 8521, 8603, 8936, 8946, 9046, 9050, 9063, 9066, 9076, 9092, 9100, 9108, 9111, 9113, 9131, 9162, 9164, 9218, 9219, 11329, 11331, 11334, 11336, 11346, 11361, 11363, 11366, 11370, 11372, 11375, 11389, 11682, 11686, 11687, 11692, 11694, 11714, 11716, 11723, 11725, 11730, 11736, 11982, 11989, 12102, 12336, 12348, 12350, 12384, 12393, 12395, 12397, 12510, 12553, 12851, 12962, 12973, 13738, 13823, 13919, 13933, 14080, 14298, 14585, 14698, 15583, 15847, 16318, 16434, 16438, 16481, 16729, 17102, 17122, 17315, 17320, 17402, 17418, 17859, 17909, 17911, 17915, 17916, 17936, 17939, 17961, 18664, 18703, 18814, 18962, 19043, 33469, 33470, 33471, 33484, 33485, 33490, 33497, 33501, 33505, 33513, 33520, 33536, 33550, 37845, 37921, 37948, 38029, 38038, 38064, 38065, 38066, 38069, 38075, 38076, 38078, 39108, 39109, 39113, 39114, 39115, 39116, 39265, 39394, 189e3] };
}
});
var require_cp949 = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/tables/cp949.json"(exports2, module2) {
module2.exports = [
["0", "\0", 127],
["8141", "\uAC02\uAC03\uAC05\uAC06\uAC0B", 4, "\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25", 6, "\uAC2E\uAC32\uAC33\uAC34"],
["8161", "\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41", 9, "\uAC4C\uAC4E", 5, "\uAC55"],
["8181", "\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D", 18, "\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B", 4, "\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95", 6, "\uAC9E\uACA2", 5, "\uACAB\uACAD\uACAE\uACB1", 6, "\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD", 7, "\uACD6\uACD8", 7, "\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7", 4, "\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07", 4, "\uAD0E\uAD10\uAD12\uAD13"],
["8241", "\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21", 7, "\uAD2A\uAD2B\uAD2E", 5],
["8261", "\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D", 6, "\uAD46\uAD48\uAD4A", 5, "\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],
["8281", "\uAD59", 7, "\uAD62\uAD64", 7, "\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83", 4, "\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91", 10, "\uAD9E", 5, "\uADA5", 17, "\uADB8", 7, "\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9", 6, "\uADD2\uADD4", 7, "\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5", 18],
["8341", "\uADFA\uADFB\uADFD\uADFE\uAE02", 5, "\uAE0A\uAE0C\uAE0E", 5, "\uAE15", 7],
["8361", "\uAE1D", 18, "\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],
["8381", "\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57", 4, "\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71", 6, "\uAE7A\uAE7E", 5, "\uAE86", 5, "\uAE8D", 46, "\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5", 6, "\uAECE\uAED2", 5, "\uAEDA\uAEDB\uAEDD", 8],
["8441", "\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE", 5, "\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD", 8],
["8461", "\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11", 18],
["8481", "\uAF24", 7, "\uAF2E\uAF2F\uAF31\uAF33\uAF35", 6, "\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A", 5, "\uAF51", 10, "\uAF5E", 5, "\uAF66", 18, "\uAF7A", 5, "\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89", 6, "\uAF92\uAF93\uAF94\uAF96", 5, "\uAF9D", 26, "\uAFBA\uAFBB\uAFBD\uAFBE"],
["8541", "\uAFBF\uAFC1", 5, "\uAFCA\uAFCC\uAFCF", 4, "\uAFD5", 6, "\uAFDD", 4],
["8561", "\uAFE2", 5, "\uAFEA", 5, "\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9", 6, "\uB002\uB003"],
["8581", "\uB005", 6, "\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015", 6, "\uB01E", 9, "\uB029", 26, "\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E", 29, "\uB07E\uB07F\uB081\uB082\uB083\uB085", 6, "\uB08E\uB090\uB092", 5, "\uB09B\uB09D\uB09E\uB0A3\uB0A4"],
["8641", "\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD", 6, "\uB0C6\uB0CA", 5, "\uB0D2"],
["8661", "\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9", 6, "\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6", 10],
["8681", "\uB0F1", 22, "\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E", 4, "\uB126\uB127\uB129\uB12A\uB12B\uB12D", 6, "\uB136\uB13A", 5, "\uB142\uB143\uB145\uB146\uB147\uB149", 6, "\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161", 22, "\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183", 4, "\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],
["8741", "\uB19E", 9, "\uB1A9", 15],
["8761", "\uB1B9", 18, "\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],
["8781", "\uB1D6", 5, "\uB1DE\uB1E0", 7, "\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1", 7, "\uB1FA\uB1FC\uB1FE", 5, "\uB206\uB207\uB209\uB20A\uB20D", 6, "\uB216\uB218\uB21A", 5, "\uB221", 18, "\uB235", 6, "\uB23D", 26, "\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261", 6, "\uB26A", 4],
["8841", "\uB26F", 4, "\uB276", 5, "\uB27D", 6, "\uB286\uB287\uB288\uB28A", 4],
["8861", "\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B", 4, "\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],
["8881", "\uB2B8", 15, "\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3", 4, "\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309", 6, "\uB312\uB316", 5, "\uB31D", 54, "\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],
["8941", "\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379", 6, "\uB382\uB386", 5, "\uB38D"],
["8961", "\uB38E\uB38F\uB391\uB392\uB393\uB395", 10, "\uB3A2", 5, "\uB3A9\uB3AA\uB3AB\uB3AD"],
["8981", "\uB3AE", 21, "\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9", 18, "\uB3FD", 18, "\uB411", 6, "\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421", 6, "\uB42A\uB42C", 7, "\uB435", 15],
["8a41", "\uB445", 10, "\uB452\uB453\uB455\uB456\uB457\uB459", 6, "\uB462\uB464\uB466"],
["8a61", "\uB467", 4, "\uB46D", 18, "\uB481\uB482"],
["8a81", "\uB483", 4, "\uB489", 19, "\uB49E", 5, "\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD", 7, "\uB4B6\uB4B8\uB4BA", 5, "\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9", 6, "\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6", 5, "\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7", 4, "\uB4EE\uB4F0\uB4F2", 5, "\uB4F9", 26, "\uB516\uB517\uB519\uB51A\uB51D"],
["8b41", "\uB51E", 5, "\uB526\uB52B", 4, "\uB532\uB533\uB535\uB536\uB537\uB539", 6, "\uB542\uB546"],
["8b61", "\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555", 6, "\uB55E\uB562", 8],
["8b81", "\uB56B", 52, "\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6", 4, "\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5", 6, "\uB5CE\uB5D2", 5, "\uB5D9", 18, "\uB5ED", 18],
["8c41", "\uB600", 15, "\uB612\uB613\uB615\uB616\uB617\uB619", 4],
["8c61", "\uB61E", 6, "\uB626", 5, "\uB62D", 6, "\uB635", 5],
["8c81", "\uB63B", 12, "\uB649", 26, "\uB665\uB666\uB667\uB669", 50, "\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5", 5, "\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2", 16],
["8d41", "\uB6C3", 16, "\uB6D5", 8],
["8d61", "\uB6DE", 17, "\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],
["8d81", "\uB6FB", 4, "\uB702\uB703\uB704\uB706", 33, "\uB72A\uB72B\uB72D\uB72E\uB731", 6, "\uB73A\uB73C", 7, "\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D", 6, "\uB756", 9, "\uB761\uB762\uB763\uB765\uB766\uB767\uB769", 6, "\uB772\uB774\uB776", 5, "\uB77E\uB77F\uB781\uB782\uB783\uB785", 6, "\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],
["8e41", "\uB79F\uB7A1", 6, "\uB7AA\uB7AE", 5, "\uB7B6\uB7B7\uB7B9", 8],
["8e61", "\uB7C2", 4, "\uB7C8\uB7CA", 19],
["8e81", "\uB7DE", 13, "\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5", 6, "\uB7FE\uB802", 4, "\uB80A\uB80B\uB80D\uB80E\uB80F\uB811", 6, "\uB81A\uB81C\uB81E", 5, "\uB826\uB827\uB829\uB82A\uB82B\uB82D", 6, "\uB836\uB83A", 5, "\uB841\uB842\uB843\uB845", 11, "\uB852\uB854", 7, "\uB85E\uB85F\uB861\uB862\uB863\uB865", 6, "\uB86E\uB870\uB872", 5, "\uB879\uB87A\uB87B\uB87D", 7],
["8f41", "\uB885", 7, "\uB88E", 17],
["8f61", "\uB8A0", 7, "\uB8A9", 6, "\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9", 4],
["8f81", "\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6", 5, "\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5", 7, "\uB8DE\uB8E0\uB8E2", 5, "\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1", 6, "\uB8FA\uB8FC\uB8FE", 5, "\uB905", 18, "\uB919", 6, "\uB921", 26, "\uB93E\uB93F\uB941\uB942\uB943\uB945", 6, "\uB94D\uB94E\uB950\uB952", 5],
["9041", "\uB95A\uB95B\uB95D\uB95E\uB95F\uB961", 6, "\uB96A\uB96C\uB96E", 5, "\uB976\uB977\uB979\uB97A\uB97B\uB97D"],
["9061", "\uB97E", 5, "\uB986\uB988\uB98B\uB98C\uB98F", 15],
["9081", "\uB99F", 12, "\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5", 6, "\uB9BE\uB9C0\uB9C2", 5, "\uB9CA\uB9CB\uB9CD\uB9D3", 4, "\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED", 6, "\uB9F6\uB9FB", 4, "\uBA02", 5, "\uBA09", 11, "\uBA16", 33, "\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],
["9141", "\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D", 6, "\uBA66\uBA6A", 5],
["9161", "\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79", 9, "\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D", 5],
["9181", "\uBA93", 20, "\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3", 4, "\uBABA\uBABC\uBABE", 5, "\uBAC5\uBAC6\uBAC7\uBAC9", 14, "\uBADA", 33, "\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05", 7, "\uBB0E\uBB10\uBB12", 5, "\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21", 6],
["9241", "\uBB28\uBB2A\uBB2C", 7, "\uBB37\uBB39\uBB3A\uBB3F", 4, "\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],
["9261", "\uBB53\uBB55\uBB56\uBB57\uBB59", 7, "\uBB62\uBB64", 7, "\uBB6D", 4],
["9281", "\uBB72", 21, "\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91", 18, "\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD", 6, "\uBBB5\uBBB6\uBBB8", 7, "\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9", 6, "\uBBD1\uBBD2\uBBD4", 35, "\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],
["9341", "\uBC03", 4, "\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],
["9361", "\uBC36\uBC37\uBC39", 6, "\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51", 8],
["9381", "\uBC5A\uBC5B\uBC5C\uBC5E", 37, "\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F", 4, "\uBC96\uBC98\uBC9B", 4, "\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9", 6, "\uBCB2\uBCB6", 5, "\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5", 7, "\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD", 22, "\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],
["9441", "\uBCFE", 5, "\uBD06\uBD08\uBD0A", 5, "\uBD11\uBD12\uBD13\uBD15", 8],
["9461", "\uBD1E", 5, "\uBD25", 6, "\uBD2D", 12],
["9481", "\uBD3A", 5, "\uBD41", 6, "\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51", 6, "\uBD5A", 9, "\uBD65\uBD66\uBD67\uBD69", 22, "\uBD82\uBD83\uBD85\uBD86\uBD8B", 4, "\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D", 6, "\uBDA5", 10, "\uBDB1", 6, "\uBDB9", 24],
["9541", "\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD", 11, "\uBDEA", 5, "\uBDF1"],
["9561", "\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9", 6, "\uBE01\uBE02\uBE04\uBE06", 5, "\uBE0E\uBE0F\uBE11\uBE12\uBE13"],
["9581", "\uBE15", 6, "\uBE1E\uBE20", 35, "\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F", 4, "\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B", 4, "\uBE72\uBE76", 4, "\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85", 6, "\uBE8E\uBE92", 5, "\uBE9A", 13, "\uBEA9", 14],
["9641", "\uBEB8", 23, "\uBED2\uBED3"],
["9661", "\uBED5\uBED6\uBED9", 6, "\uBEE1\uBEE2\uBEE6", 5, "\uBEED", 8],
["9681", "\uBEF6", 10, "\uBF02", 5, "\uBF0A", 13, "\uBF1A\uBF1E", 33, "\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49", 6, "\uBF52\uBF53\uBF54\uBF56", 44],
["9741", "\uBF83", 16, "\uBF95", 8],
["9761", "\uBF9E", 17, "\uBFB1", 7],
["9781", "\uBFB9", 11, "\uBFC6", 5, "\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5", 6, "\uBFDD\uBFDE\uBFE0\uBFE2", 89, "\uC03D\uC03E\uC03F"],
["9841", "\uC040", 16, "\uC052", 5, "\uC059\uC05A\uC05B"],
["9861", "\uC05D\uC05E\uC05F\uC061", 6, "\uC06A", 15],
["9881", "\uC07A", 21, "\uC092\uC093\uC095\uC096\uC097\uC099", 6, "\uC0A2\uC0A4\uC0A6", 5, "\uC0AE\uC0B1\uC0B2\uC0B7", 4, "\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1", 6, "\uC0DA\uC0DE", 5, "\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED", 6, "\uC0F6\uC0F8\uC0FA", 5, "\uC101\uC102\uC103\uC105\uC106\uC107\uC109", 6, "\uC111\uC112\uC113\uC114\uC116", 5, "\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],
["9941", "\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141", 6, "\uC14A\uC14E", 5, "\uC156\uC157"],
["9961", "\uC159\uC15A\uC15B\uC15D", 6, "\uC166\uC16A", 5, "\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],
["9981", "\uC17C", 8, "\uC186", 5, "\uC18F\uC191\uC192\uC193\uC195\uC197", 4, "\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1", 11, "\uC1BE", 5, "\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD", 6, "\uC1D5\uC1D6\uC1D9", 6, "\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9", 6, "\uC1F2\uC1F4", 7, "\uC1FE\uC1FF\uC201\uC202\uC203\uC205", 6, "\uC20E\uC210\uC212", 5, "\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],
["9a41", "\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235", 16],
["9a61", "\uC246\uC247\uC249", 6, "\uC252\uC253\uC255\uC256\uC257\uC259", 6, "\uC261\uC262\uC263\uC264\uC266"],
["9a81", "\uC267", 4, "\uC26E\uC26F\uC271\uC272\uC273\uC275", 6, "\uC27E\uC280\uC282", 5, "\uC28A", 5, "\uC291", 6, "\uC299\uC29A\uC29C\uC29E", 5, "\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE", 5, "\uC2B6\uC2B8\uC2BA", 33, "\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5", 5, "\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301", 6, "\uC30A\uC30B\uC30E\uC30F"],
["9b41", "\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D", 6, "\uC326\uC327\uC32A", 8],
["9b61", "\uC333", 17, "\uC346", 7],
["9b81", "\uC34E", 25, "\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373", 4, "\uC37A\uC37B\uC37E", 5, "\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D", 50, "\uC3C1", 22, "\uC3DA"],
["9c41", "\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3", 4, "\uC3EA\uC3EB\uC3EC\uC3EE", 5, "\uC3F6\uC3F7\uC3F9", 5],
["9c61", "\uC3FF", 8, "\uC409", 6, "\uC411", 9],
["9c81", "\uC41B", 8, "\uC425", 6, "\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435", 6, "\uC43E", 9, "\uC449", 26, "\uC466\uC467\uC469\uC46A\uC46B\uC46D", 6, "\uC476\uC477\uC478\uC47A", 5, "\uC481", 18, "\uC495", 6, "\uC49D", 12],
["9d41", "\uC4AA", 13, "\uC4B9\uC4BA\uC4BB\uC4BD", 8],
["9d61", "\uC4C6", 25],
["9d81", "\uC4E0", 8, "\uC4EA", 5, "\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502", 9, "\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515", 6, "\uC51D", 10, "\uC52A\uC52B\uC52D\uC52E\uC52F\uC531", 6, "\uC53A\uC53C\uC53E", 5, "\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569", 6, "\uC572\uC576", 5, "\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],
["9e41", "\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1", 7, "\uC5AA", 9, "\uC5B6"],
["9e61", "\uC5B7\uC5BA\uC5BF", 4, "\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9", 6, "\uC5E2\uC5E4\uC5E6\uC5E7"],
["9e81", "\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611", 6, "\uC61A\uC61D", 6, "\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649", 6, "\uC652\uC656", 5, "\uC65E\uC65F\uC661", 10, "\uC66D\uC66E\uC670\uC672", 5, "\uC67A\uC67B\uC67D\uC67E\uC67F\uC681", 6, "\uC68A\uC68C\uC68E", 5, "\uC696\uC697\uC699\uC69A\uC69B\uC69D", 6, "\uC6A6"],
["9f41", "\uC6A8\uC6AA", 5, "\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB", 4, "\uC6C2\uC6C4\uC6C6", 5, "\uC6CE"],
["9f61", "\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5", 6, "\uC6DE\uC6DF\uC6E2", 5, "\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],
["9f81", "\uC6F3", 4, "\uC6FA\uC6FB\uC6FC\uC6FE", 5, "\uC706\uC707\uC709\uC70A\uC70B\uC70D", 6, "\uC716\uC718\uC71A", 5, "\uC722\uC723\uC725\uC726\uC727\uC729", 6, "\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745", 4, "\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761", 6, "\uC769\uC76A\uC76C", 7, "\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B", 4, "\uC7A2\uC7A7", 4, "\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],
["a041", "\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2", 5, "\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1", 6, "\uC7D9\uC7DA\uC7DB\uC7DC"],
["a061", "\uC7DE", 5, "\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED", 13],
["a081", "\uC7FB", 4, "\uC802\uC803\uC805\uC806\uC807\uC809\uC80B", 4, "\uC812\uC814\uC817", 4, "\uC81E\uC81F\uC821\uC822\uC823\uC825", 6, "\uC82E\uC830\uC832", 5, "\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841", 6, "\uC84A\uC84B\uC84E", 5, "\uC855", 26, "\uC872\uC873\uC875\uC876\uC877\uC879\uC87B", 4, "\uC882\uC884\uC888\uC889\uC88A\uC88E", 5, "\uC895", 7, "\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],
["a141", "\uC8A5\uC8A6\uC8A7\uC8A9", 18, "\uC8BE\uC8BF\uC8C0\uC8C1"],
["a161", "\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD", 6, "\uC8D6\uC8D8\uC8DA", 5, "\uC8E2\uC8E3\uC8E5"],
["a181", "\uC8E6", 14, "\uC8F6", 5, "\uC8FE\uC8FF\uC901\uC902\uC903\uC907", 4, "\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 9, "\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],
["a241", "\uC910\uC912", 5, "\uC919", 18],
["a261", "\uC92D", 6, "\uC935", 18],
["a281", "\uC948", 7, "\uC952\uC953\uC955\uC956\uC957\uC959", 6, "\uC962\uC964", 7, "\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],
["a341", "\uC971\uC972\uC973\uC975", 6, "\uC97D", 10, "\uC98A\uC98B\uC98D\uC98E\uC98F"],
["a361", "\uC991", 6, "\uC99A\uC99C\uC99E", 16],
["a381", "\uC9AF", 16, "\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB", 4, "\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01", 58, "\uFFE6\uFF3D", 32, "\uFFE3"],
["a441", "\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2", 5, "\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],
["a461", "\uCA05\uCA06\uCA07\uCA0A\uCA0E", 5, "\uCA15\uCA16\uCA17\uCA19", 12],
["a481", "\uCA26\uCA27\uCA28\uCA2A", 28, "\u3131", 93],
["a541", "\uCA47", 4, "\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55", 6, "\uCA5E\uCA62", 5, "\uCA69\uCA6A"],
["a561", "\uCA6B", 17, "\uCA7E", 5, "\uCA85\uCA86"],
["a581", "\uCA87", 16, "\uCA99", 14, "\u2170", 9],
["a5b0", "\u2160", 9],
["a5c1", "\u0391", 16, "\u03A3", 6],
["a5e1", "\u03B1", 16, "\u03C3", 6],
["a641", "\uCAA8", 19, "\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],
["a661", "\uCAC6", 5, "\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA", 5, "\uCAE1", 6],
["a681", "\uCAE8\uCAE9\uCAEA\uCAEB\uCAED", 6, "\uCAF5", 18, "\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543", 7],
["a741", "\uCB0B", 4, "\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19", 6, "\uCB22", 7],
["a761", "\uCB2A", 22, "\uCB42\uCB43\uCB44"],
["a781", "\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51", 6, "\uCB5A\uCB5B\uCB5C\uCB5E", 5, "\uCB65", 7, "\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399", 9, "\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0", 9, "\u3380", 4, "\u33BA", 5, "\u3390", 4, "\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],
["a841", "\uCB6D", 10, "\uCB7A", 14],
["a861", "\uCB89", 18, "\uCB9D", 6],
["a881", "\uCBA4", 19, "\uCBB9", 11, "\xC6\xD0\xAA\u0126"],
["a8a6", "\u0132"],
["a8a8", "\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],
["a8b1", "\u3260", 27, "\u24D0", 25, "\u2460", 14, "\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],
["a941", "\uCBC5", 14, "\uCBD5", 10],
["a961", "\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA", 18],
["a981", "\uCBFD", 14, "\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15", 6, "\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200", 27, "\u249C", 25, "\u2474", 14, "\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],
["aa41", "\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31", 6, "\uCC3A\uCC3F", 4, "\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],
["aa61", "\uCC4F", 4, "\uCC56\uCC5A", 5, "\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69", 6, "\uCC71\uCC72"],
["aa81", "\uCC73\uCC74\uCC76", 29, "\u3041", 82],
["ab41", "\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1", 6, "\uCCAA\uCCAE", 5, "\uCCB6\uCCB7\uCCB9"],
["ab61", "\uCCBA\uCCBB\uCCBD", 6, "\uCCC6\uCCC8\uCCCA", 5, "\uCCD1\uCCD2\uCCD3\uCCD5", 5],
["ab81", "\uCCDB", 8, "\uCCE5", 6, "\uCCED\uCCEE\uCCEF\uCCF1", 12, "\u30A1", 85],
["ac41", "\uCCFE\uCCFF\uCD00\uCD02", 5, "\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11", 6, "\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],
["ac61", "\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D", 11, "\uCD3A", 4],
["ac81", "\uCD3F", 28, "\uCD5D\uCD5E\uCD5F\u0410", 5, "\u0401\u0416", 25],
["acd1", "\u0430", 5, "\u0451\u0436", 25],
["ad41", "\uCD61\uCD62\uCD63\uCD65", 6, "\uCD6E\uCD70\uCD72", 5, "\uCD79", 7],
["ad61", "\uCD81", 6, "\uCD89", 10, "\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],
["ad81", "\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA", 5, "\uCDB1", 18, "\uCDC5"],
["ae41", "\uCDC6", 5, "\uCDCD\uCDCE\uCDCF\uCDD1", 16],
["ae61", "\uCDE2", 5, "\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1", 6, "\uCDFA\uCDFC\uCDFE", 4],
["ae81", "\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D", 6, "\uCE15\uCE16\uCE17\uCE18\uCE1A", 5, "\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],
["af41", "\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36", 19],
["af61", "\uCE4A", 13, "\uCE5A\uCE5B\uCE5D\uCE5E\uCE62", 5, "\uCE6A\uCE6C"],
["af81", "\uCE6E", 5, "\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D", 6, "\uCE86\uCE88\uCE8A", 5, "\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],
["b041", "\uCE9A", 5, "\uCEA2\uCEA6", 5, "\uCEAE", 12],
["b061", "\uCEBB", 5, "\uCEC2", 19],
["b081", "\uCED6", 13, "\uCEE6\uCEE7\uCEE9\uCEEA\uCEED", 6, "\uCEF6\uCEFA", 5, "\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10", 7, "\uAC19", 4, "\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],
["b141", "\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09", 6, "\uCF12\uCF14\uCF16", 5, "\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],
["b161", "\uCF25", 6, "\uCF2E\uCF32", 5, "\uCF39", 11],
["b181", "\uCF45", 14, "\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D", 6, "\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],
["b241", "\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79", 6, "\uCF81\uCF82\uCF83\uCF84\uCF86", 5, "\uCF8D"],
["b261", "\uCF8E", 18, "\uCFA2", 5, "\uCFA9"],
["b281", "\uCFAA", 5, "\uCFB1", 18, "\uCFC5", 6, "\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],
["b341", "\uCFCC", 19, "\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],
["b361", "\uCFEA", 5, "\uCFF2\uCFF4\uCFF6", 5, "\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005", 5],
["b381", "\uD00B", 5, "\uD012", 5, "\uD019", 19, "\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB", 4, "\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],
["b441", "\uD02E", 5, "\uD036\uD037\uD039\uD03A\uD03B\uD03D", 6, "\uD046\uD048\uD04A", 5],
["b461", "\uD051\uD052\uD053\uD055\uD056\uD057\uD059", 6, "\uD061", 10, "\uD06E\uD06F"],
["b481", "\uD071\uD072\uD073\uD075", 6, "\uD07E\uD07F\uD080\uD082", 18, "\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB", 4, "\uB2F3\uB2F4\uB2F5\uB2F7", 4, "\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],
["b541", "\uD095", 14, "\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD", 5],
["b561", "\uD0B3\uD0B6\uD0B8\uD0BA", 5, "\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA", 5, "\uD0D2\uD0D6", 4],
["b581", "\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5", 6, "\uD0EE\uD0F2", 5, "\uD0F9", 11, "\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],
["b641", "\uD105", 7, "\uD10E", 17],
["b661", "\uD120", 15, "\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],
["b681", "\uD13F\uD142\uD146", 5, "\uD14E\uD14F\uD151\uD152\uD153\uD155", 6, "\uD15E\uD160\uD162", 5, "\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],
["b741", "\uD16E", 13, "\uD17D", 6, "\uD185\uD186\uD187\uD189\uD18A"],
["b761", "\uD18B", 20, "\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],
["b781", "\uD1A9", 6, "\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1", 14, "\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],
["b841", "\uD1D0", 7, "\uD1D9", 17],
["b861", "\uD1EB", 8, "\uD1F5\uD1F6\uD1F7\uD1F9", 13],
["b881", "\uD208\uD20A", 5, "\uD211", 24, "\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE", 4, "\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],
["b941", "\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235", 6, "\uD23E\uD240\uD242", 5, "\uD249\uD24A\uD24B\uD24C"],
["b961", "\uD24D", 14, "\uD25D", 6, "\uD265\uD266\uD267\uD268"],
["b981", "\uD269", 22, "\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14", 4, "\uBC1B", 4, "\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],
["ba41", "\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296", 5, "\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5", 6, "\uD2AD"],
["ba61", "\uD2AE\uD2AF\uD2B0\uD2B2", 5, "\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3", 4, "\uD2CA\uD2CC", 5],
["ba81", "\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD", 6, "\uD2E6", 9, "\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],
["bb41", "\uD2FB", 4, "\uD302\uD304\uD306", 5, "\uD30F\uD311\uD312\uD313\uD315\uD317", 4, "\uD31E\uD322\uD323"],
["bb61", "\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331", 6, "\uD33A\uD33E", 5, "\uD346\uD347\uD348\uD349"],
["bb81", "\uD34A", 31, "\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],
["bc41", "\uD36A", 17, "\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],
["bc61", "\uD388\uD389\uD38A\uD38B\uD38E\uD392", 5, "\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1", 6, "\uD3AA\uD3AC\uD3AE"],
["bc81", "\uD3AF", 4, "\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD", 6, "\uD3C6\uD3C7\uD3CA", 5, "\uD3D1", 5, "\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C", 4, "\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],
["bd41", "\uD3D7\uD3D9", 7, "\uD3E2\uD3E4", 7, "\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],
["bd61", "\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402", 5, "\uD409", 13],
["bd81", "\uD417", 5, "\uD41E", 25, "\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],
["be41", "\uD438", 7, "\uD441\uD442\uD443\uD445", 14],
["be61", "\uD454", 7, "\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465", 7, "\uD46E\uD470\uD471\uD472"],
["be81", "\uD473", 4, "\uD47A\uD47B\uD47D\uD47E\uD481\uD483", 4, "\uD48A\uD48C\uD48E", 5, "\uD495", 8, "\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4", 6, "\uC5CC\uC5CE"],
["bf41", "\uD49E", 10, "\uD4AA", 14],
["bf61", "\uD4B9", 18, "\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],
["bf81", "\uD4D6", 5, "\uD4DD\uD4DE\uD4E0", 7, "\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1", 6, "\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC", 5, "\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],
["c041", "\uD4FE", 5, "\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D", 6, "\uD516\uD518", 5],
["c061", "\uD51E", 25],
["c081", "\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545", 6, "\uD54E\uD550\uD552", 5, "\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751", 7, "\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],
["c141", "\uD564\uD566\uD567\uD56A\uD56C\uD56E", 5, "\uD576\uD577\uD579\uD57A\uD57B\uD57D", 6, "\uD586\uD58A\uD58B"],
["c161", "\uD58C\uD58D\uD58E\uD58F\uD591", 19, "\uD5A6\uD5A7"],
["c181", "\uD5A8", 31, "\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],
["c241", "\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3", 4, "\uD5DA\uD5DC\uD5DE", 5, "\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],
["c261", "\uD5EF", 4, "\uD5F6\uD5F8\uD5FA", 5, "\uD602\uD603\uD605\uD606\uD607\uD609", 6, "\uD612"],
["c281", "\uD616", 5, "\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625", 7, "\uD62E", 9, "\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],
["c341", "\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D", 4],
["c361", "\uD662", 4, "\uD668\uD66A", 5, "\uD672\uD673\uD675", 11],
["c381", "\uD681\uD682\uD684\uD686", 5, "\uD68E\uD68F\uD691\uD692\uD693\uD695", 7, "\uD69E\uD6A0\uD6A2", 5, "\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],
["c441", "\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1", 7, "\uD6BA\uD6BC", 7, "\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],
["c461", "\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA", 5, "\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9", 4],
["c481", "\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6", 5, "\uD6FE\uD6FF\uD701\uD702\uD703\uD705", 11, "\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],
["c541", "\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721", 6, "\uD72A\uD72C\uD72E", 5, "\uD736\uD737\uD739"],
["c561", "\uD73A\uD73B\uD73D", 6, "\uD745\uD746\uD748\uD74A", 5, "\uD752\uD753\uD755\uD75A", 4],
["c581", "\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775", 6, "\uD77E\uD77F\uD780\uD782", 5, "\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],
["c641", "\uD78D\uD78E\uD78F\uD791", 6, "\uD79A\uD79C\uD79E", 5],
["c6a1", "\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],
["c7a1", "\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],
["c8a1", "\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],
["caa1", "\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],
["cba1", "\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],
["cca1", "\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],
["cda1", "\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],
["cea1", "\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],
["cfa1", "\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],
["d0a1", "\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],
["d1a1", "\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E", 5, "\u90A3\uF914", 4, "\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],
["d2a1", "\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928", 4, "\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933", 5, "\u99D1\uF939", 10, "\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A", 7, "\u5AE9\u8A25\u677B\u7D10\uF952", 5, "\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],
["d3a1", "\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],
["d4a1", "\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],
["d5a1", "\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],
["d6a1", "\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],
["d7a1", "\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],
["d8a1", "\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],
["d9a1", "\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],
["daa1", "\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],
["dba1", "\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],
["dca1", "\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],
["dda1", "\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],
["dea1", "\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],
["dfa1", "\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],
["e0a1", "\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],
["e1a1", "\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],
["e2a1", "\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],
["e3a1", "\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],
["e4a1", "\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],
["e5a1", "\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],
["e6a1", "\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],
["e7a1", "\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],
["e8a1", "\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],
["e9a1", "\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],
["eaa1", "\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],
["eba1", "\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],
["eca1", "\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],
["eda1", "\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],
["eea1", "\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],
["efa1", "\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],
["f0a1", "\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],
["f1a1", "\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],
["f2a1", "\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],
["f3a1", "\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],
["f4a1", "\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],
["f5a1", "\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],
["f6a1", "\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],
["f7a1", "\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],
["f8a1", "\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],
["f9a1", "\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],
["faa1", "\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],
["fba1", "\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],
["fca1", "\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],
["fda1", "\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]
];
}
});
var require_cp950 = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/tables/cp950.json"(exports2, module2) {
module2.exports = [
["0", "\0", 127],
["a140", "\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],
["a1a1", "\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62", 4, "\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],
["a240", "\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581", 7, "\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],
["a2a1", "\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10", 9, "\u2160", 9, "\u3021", 8, "\u5341\u5344\u5345\uFF21", 25, "\uFF41", 21],
["a340", "\uFF57\uFF58\uFF59\uFF5A\u0391", 16, "\u03A3", 6, "\u03B1", 16, "\u03C3", 6, "\u3105", 10],
["a3a1", "\u3110", 25, "\u02D9\u02C9\u02CA\u02C7\u02CB"],
["a3e1", "\u20AC"],
["a440", "\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],
["a4a1", "\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],
["a540", "\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],
["a5a1", "\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],
["a640", "\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],
["a6a1", "\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],
["a740", "\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],
["a7a1", "\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],
["a840", "\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],
["a8a1", "\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],
["a940", "\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],
["a9a1", "\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],
["aa40", "\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],
["aaa1", "\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],
["ab40", "\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],
["aba1", "\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],
["ac40", "\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],
["aca1", "\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],
["ad40", "\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],
["ada1", "\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],
["ae40", "\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],
["aea1", "\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],
["af40", "\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],
["afa1", "\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],
["b040", "\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],
["b0a1", "\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],
["b140", "\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],
["b1a1", "\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],
["b240", "\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],
["b2a1", "\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],
["b340", "\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],
["b3a1", "\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],
["b440", "\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],
["b4a1", "\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],
["b540", "\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],
["b5a1", "\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],
["b640", "\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],
["b6a1", "\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],
["b740", "\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],
["b7a1", "\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],
["b840", "\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],
["b8a1", "\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],
["b940", "\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],
["b9a1", "\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],
["ba40", "\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],
["baa1", "\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],
["bb40", "\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],
["bba1", "\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],
["bc40", "\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],
["bca1", "\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],
["bd40", "\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],
["bda1", "\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],
["be40", "\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],
["bea1", "\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],
["bf40", "\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],
["bfa1", "\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],
["c040", "\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],
["c0a1", "\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],
["c140", "\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],
["c1a1", "\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],
["c240", "\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],
["c2a1", "\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],
["c340", "\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],
["c3a1", "\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],
["c440", "\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],
["c4a1", "\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],
["c540", "\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],
["c5a1", "\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],
["c640", "\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],
["c940", "\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],
["c9a1", "\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],
["ca40", "\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],
["caa1", "\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],
["cb40", "\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],
["cba1", "\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],
["cc40", "\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],
["cca1", "\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],
["cd40", "\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],
["cda1", "\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],
["ce40", "\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],
["cea1", "\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],
["cf40", "\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],
["cfa1", "\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],
["d040", "\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],
["d0a1", "\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],
["d140", "\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],
["d1a1", "\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],
["d240", "\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],
["d2a1", "\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],
["d340", "\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],
["d3a1", "\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],
["d440", "\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],
["d4a1", "\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],
["d540", "\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],
["d5a1", "\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],
["d640", "\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],
["d6a1", "\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],
["d740", "\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],
["d7a1", "\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],
["d840", "\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],
["d8a1", "\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],
["d940", "\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],
["d9a1", "\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],
["da40", "\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],
["daa1", "\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],
["db40", "\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],
["dba1", "\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],
["dc40", "\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],
["dca1", "\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],
["dd40", "\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],
["dda1", "\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],
["de40", "\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],
["dea1", "\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],
["df40", "\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],
["dfa1", "\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],
["e040", "\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],
["e0a1", "\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],
["e140", "\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],
["e1a1", "\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],
["e240", "\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],
["e2a1", "\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],
["e340", "\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],
["e3a1", "\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],
["e440", "\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],
["e4a1", "\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],
["e540", "\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],
["e5a1", "\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],
["e640", "\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],
["e6a1", "\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],
["e740", "\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],
["e7a1", "\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],
["e840", "\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],
["e8a1", "\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],
["e940", "\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],
["e9a1", "\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],
["ea40", "\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],
["eaa1", "\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],
["eb40", "\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],
["eba1", "\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],
["ec40", "\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],
["eca1", "\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],
["ed40", "\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],
["eda1", "\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],
["ee40", "\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],
["eea1", "\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],
["ef40", "\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],
["efa1", "\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],
["f040", "\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],
["f0a1", "\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],
["f140", "\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],
["f1a1", "\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],
["f240", "\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],
["f2a1", "\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],
["f340", "\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],
["f3a1", "\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],
["f440", "\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],
["f4a1", "\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],
["f540", "\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],
["f5a1", "\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],
["f640", "\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],
["f6a1", "\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],
["f740", "\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],
["f7a1", "\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],
["f840", "\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],
["f8a1", "\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],
["f940", "\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],
["f9a1", "\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]
];
}
});
var require_big5_added = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/tables/big5-added.json"(exports2, module2) {
module2.exports = [
["8740", "\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],
["8767", "\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],
["87a1", "\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],
["8840", "\u31C0", 4, "\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],
["88a1", "\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],
["8940", "\u{2A3A9}\u{21145}"],
["8943", "\u650A"],
["8946", "\u4E3D\u6EDD\u9D4E\u91DF"],
["894c", "\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],
["89a1", "\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],
["89ab", "\u918C\u78B8\u915E\u80BC"],
["89b0", "\u8D0B\u80F6\u{209E7}"],
["89b5", "\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],
["89c1", "\u6E9A\u823E\u7519"],
["89c5", "\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],
["8a40", "\u{27D84}\u5525"],
["8a43", "\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],
["8a64", "\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],
["8a76", "\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],
["8aa1", "\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],
["8aac", "\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],
["8ab2", "\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],
["8abb", "\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],
["8ac9", "\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],
["8ace", "\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],
["8adf", "\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],
["8af6", "\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],
["8b40", "\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],
["8b55", "\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],
["8ba1", "\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],
["8bde", "\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],
["8c40", "\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],
["8ca1", "\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],
["8ca7", "\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],
["8cc9", "\u9868\u676B\u4276\u573D"],
["8cce", "\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],
["8ce6", "\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],
["8d40", "\u{20B9F}"],
["8d42", "\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],
["8da1", "\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],
["8e40", "\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],
["8ea1", "\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],
["8f40", "\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],
["8fa1", "\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],
["9040", "\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],
["90a1", "\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],
["9140", "\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],
["91a1", "\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],
["9240", "\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],
["92a1", "\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],
["9340", "\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],
["93a1", "\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],
["9440", "\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],
["94a1", "\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],
["9540", "\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],
["95a1", "\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],
["9640", "\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],
["96a1", "\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],
["9740", "\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],
["97a1", "\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],
["9840", "\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],
["98a1", "\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],
["9940", "\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],
["99a1", "\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],
["9a40", "\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],
["9aa1", "\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],
["9b40", "\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],
["9b62", "\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],
["9ba1", "\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],
["9c40", "\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],
["9ca1", "\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],
["9d40", "\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],
["9da1", "\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],
["9e40", "\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],
["9ea1", "\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],
["9ead", "\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],
["9ec5", "\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],
["9ef5", "\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],
["9f40", "\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],
["9f4f", "\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],
["9fa1", "\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],
["9fae", "\u9159\u9681\u915C"],
["9fb2", "\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],
["9fc1", "\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],
["9fc9", "\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],
["9fdb", "\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],
["9fe7", "\u6BFA\u8818\u7F78"],
["9feb", "\u5620\u{2A64A}\u8E77\u9F53"],
["9ff0", "\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],
["a040", "\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],
["a055", "\u{2183B}\u{26E05}"],
["a058", "\u8A7E\u{2251B}"],
["a05b", "\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],
["a063", "\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],
["a073", "\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],
["a0a1", "\u5D57\u{28BC2}\u8FDA\u{28E39}"],
["a0a6", "\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],
["a0ae", "\u77FE"],
["a0b0", "\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],
["a0d4", "\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],
["a0e2", "\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],
["a3c0", "\u2400", 31, "\u2421"],
["c6a1", "\u2460", 9, "\u2474", 9, "\u2170", 9, "\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041", 23],
["c740", "\u3059", 58, "\u30A1\u30A2\u30A3\u30A4"],
["c7a1", "\u30A5", 81, "\u0410", 5, "\u0401\u0416", 4],
["c840", "\u041B", 26, "\u0451\u0436", 25, "\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],
["c8a1", "\u9FB0\u5188\u9FB1\u{27607}"],
["c8cd", "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],
["c8f5", "\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],
["f9fe", "\uFFED"],
["fa40", "\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],
["faa1", "\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],
["fb40", "\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],
["fba1", "\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],
["fc40", "\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],
["fca1", "\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],
["fd40", "\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],
["fda1", "\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],
["fe40", "\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],
["fea1", "\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]
];
}
});
var require_dbcs_data = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/dbcs-data.js"(exports2, module2) {
"use strict";
module2.exports = {
// == Japanese/ShiftJIS ====================================================
// All japanese encodings are based on JIS X set of standards:
// JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.
// JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes.
// Has several variations in 1978, 1983, 1990 and 1997.
// JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.
// JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.
// 2 planes, first is superset of 0208, second - revised 0212.
// Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)
// Byte encodings are:
// * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte
// encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.
// Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.
// * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes.
// 0x00-0x7F - lower part of 0201
// 0x8E, 0xA1-0xDF - upper part of 0201
// (0xA1-0xFE)x2 - 0208 plane (94x94).
// 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).
// * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.
// Used as-is in ISO2022 family.
// * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII,
// 0201-1976 Roman, 0208-1978, 0208-1983.
// * ISO2022-JP-1: Adds esc seq for 0212-1990.
// * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.
// * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.
// * ISO2022-JP-2004: Adds 0213-2004 Plane 1.
//
// After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.
//
// Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html
"shiftjis": {
type: "_dbcs",
table: function() {
return require_shiftjis();
},
encodeAdd: { "\xA5": 92, "\u203E": 126 },
encodeSkipVals: [{ from: 60736, to: 63808 }]
},
"csshiftjis": "shiftjis",
"mskanji": "shiftjis",
"sjis": "shiftjis",
"windows31j": "shiftjis",
"ms31j": "shiftjis",
"xsjis": "shiftjis",
"windows932": "shiftjis",
"ms932": "shiftjis",
"932": "shiftjis",
"cp932": "shiftjis",
"eucjp": {
type: "_dbcs",
table: function() {
return require_eucjp();
},
encodeAdd: { "\xA5": 92, "\u203E": 126 }
},
// TODO: KDDI extension to Shift_JIS
// TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.
// TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.
// == Chinese/GBK ==========================================================
// http://en.wikipedia.org/wiki/GBK
// We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder
// Oldest GB2312 (1981, ~7600 chars) is a subset of CP936
"gb2312": "cp936",
"gb231280": "cp936",
"gb23121980": "cp936",
"csgb2312": "cp936",
"csiso58gb231280": "cp936",
"euccn": "cp936",
// Microsoft's CP936 is a subset and approximation of GBK.
"windows936": "cp936",
"ms936": "cp936",
"936": "cp936",
"cp936": {
type: "_dbcs",
table: function() {
return require_cp936();
}
},
// GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
"gbk": {
type: "_dbcs",
table: function() {
return require_cp936().concat(require_gbk_added());
}
},
"xgbk": "gbk",
"isoir58": "gbk",
// GB18030 is an algorithmic extension of GBK.
// Main source: https://www.w3.org/TR/encoding/#gbk-encoder
// http://icu-project.org/docs/papers/gb18030.html
// http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml
// http://www.khngai.com/chinese/charmap/tblgbk.php?page=0
"gb18030": {
type: "_dbcs",
table: function() {
return require_cp936().concat(require_gbk_added());
},
gb18030: function() {
return require_gb18030_ranges();
},
encodeSkipVals: [128],
encodeAdd: { "\u20AC": 41699 }
},
"chinese": "gb18030",
// == Korean ===============================================================
// EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.
"windows949": "cp949",
"ms949": "cp949",
"949": "cp949",
"cp949": {
type: "_dbcs",
table: function() {
return require_cp949();
}
},
"cseuckr": "cp949",
"csksc56011987": "cp949",
"euckr": "cp949",
"isoir149": "cp949",
"korean": "cp949",
"ksc56011987": "cp949",
"ksc56011989": "cp949",
"ksc5601": "cp949",
// == Big5/Taiwan/Hong Kong ================================================
// There are lots of tables for Big5 and cp950. Please see the following links for history:
// http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html
// Variations, in roughly number of defined chars:
// * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
// * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/
// * Big5-2003 (Taiwan standard) almost superset of cp950.
// * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.
// * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard.
// many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.
// Plus, it has 4 combining sequences.
// Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299
// because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.
// Implementations are not consistent within browsers; sometimes labeled as just big5.
// MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.
// Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31
// In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.
// Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt
// http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt
//
// Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder
// Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.
"windows950": "cp950",
"ms950": "cp950",
"950": "cp950",
"cp950": {
type: "_dbcs",
table: function() {
return require_cp950();
}
},
// Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
"big5": "big5hkscs",
"big5hkscs": {
type: "_dbcs",
table: function() {
return require_cp950().concat(require_big5_added());
},
encodeSkipVals: [
// Although Encoding Standard says we should avoid encoding to HKSCS area (See Step 1 of
// https://encoding.spec.whatwg.org/#index-big5-pointer), we still do it to increase compatibility with ICU.
// But if a single unicode point can be encoded both as HKSCS and regular Big5, we prefer the latter.
36457,
36463,
36478,
36523,
36532,
36557,
36560,
36695,
36713,
36718,
36811,
36862,
36973,
36986,
37060,
37084,
37105,
37311,
37551,
37552,
37553,
37554,
37585,
37959,
38090,
38361,
38652,
39285,
39798,
39800,
39803,
39878,
39902,
39916,
39926,
40002,
40019,
40034,
40040,
40043,
40055,
40124,
40125,
40144,
40279,
40282,
40388,
40431,
40443,
40617,
40687,
40701,
40800,
40907,
41079,
41180,
41183,
36812,
37576,
38468,
38637,
// Step 2 of https://encoding.spec.whatwg.org/#index-big5-pointer: Use last pointer for U+2550, U+255E, U+2561, U+256A, U+5341, or U+5345
41636,
41637,
41639,
41638,
41676,
41678
]
},
"cnbig5": "big5hkscs",
"csbig5": "big5hkscs",
"xxbig5": "big5hkscs"
};
}
});
var require_encodings = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/encodings/index.js"(exports2, module2) {
"use strict";
var modules = [
require_internal(),
require_utf32(),
require_utf16(),
require_utf7(),
require_sbcs_codec(),
require_sbcs_data(),
require_sbcs_data_generated(),
require_dbcs_codec(),
require_dbcs_data()
];
for (i = 0; i < modules.length; i++) {
module2 = modules[i];
for (enc in module2)
if (Object.prototype.hasOwnProperty.call(module2, enc))
exports2[enc] = module2[enc];
}
var module2;
var enc;
var i;
}
});
var require_streams = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/lib/streams.js"(exports2, module2) {
"use strict";
var Buffer2 = require_safer().Buffer;
module2.exports = function(stream_module) {
var Transform = stream_module.Transform;
function IconvLiteEncoderStream(conv, options) {
this.conv = conv;
options = options || {};
options.decodeStrings = false;
Transform.call(this, options);
}
IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
constructor: { value: IconvLiteEncoderStream }
});
IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) {
if (typeof chunk != "string")
return done(new Error("Iconv encoding stream needs strings as its input."));
try {
var res = this.conv.write(chunk);
if (res && res.length) this.push(res);
done();
} catch (e) {
done(e);
}
};
IconvLiteEncoderStream.prototype._flush = function(done) {
try {
var res = this.conv.end();
if (res && res.length) this.push(res);
done();
} catch (e) {
done(e);
}
};
IconvLiteEncoderStream.prototype.collect = function(cb) {
var chunks = [];
this.on("error", cb);
this.on("data", function(chunk) {
chunks.push(chunk);
});
this.on("end", function() {
cb(null, Buffer2.concat(chunks));
});
return this;
};
function IconvLiteDecoderStream(conv, options) {
this.conv = conv;
options = options || {};
options.encoding = this.encoding = "utf8";
Transform.call(this, options);
}
IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
constructor: { value: IconvLiteDecoderStream }
});
IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) {
if (!Buffer2.isBuffer(chunk) && !(chunk instanceof Uint8Array))
return done(new Error("Iconv decoding stream needs buffers as its input."));
try {
var res = this.conv.write(chunk);
if (res && res.length) this.push(res, this.encoding);
done();
} catch (e) {
done(e);
}
};
IconvLiteDecoderStream.prototype._flush = function(done) {
try {
var res = this.conv.end();
if (res && res.length) this.push(res, this.encoding);
done();
} catch (e) {
done(e);
}
};
IconvLiteDecoderStream.prototype.collect = function(cb) {
var res = "";
this.on("error", cb);
this.on("data", function(chunk) {
res += chunk;
});
this.on("end", function() {
cb(null, res);
});
return this;
};
return {
IconvLiteEncoderStream,
IconvLiteDecoderStream
};
};
}
});
var require_lib = __commonJS2({
"node_modules/raw-body/node_modules/iconv-lite/lib/index.js"(exports2, module2) {
"use strict";
var Buffer2 = require_safer().Buffer;
var bomHandling = require_bom_handling();
var iconv = module2.exports;
iconv.encodings = null;
iconv.defaultCharUnicode = "\uFFFD";
iconv.defaultCharSingleByte = "?";
iconv.encode = function encode3(str, encoding, options) {
str = "" + (str || "");
var encoder = iconv.getEncoder(encoding, options);
var res = encoder.write(str);
var trail = encoder.end();
return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res;
};
iconv.decode = function decode(buf, encoding, options) {
if (typeof buf === "string") {
if (!iconv.skipDecodeWarning) {
console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding");
iconv.skipDecodeWarning = true;
}
buf = Buffer2.from("" + (buf || ""), "binary");
}
var decoder = iconv.getDecoder(encoding, options);
var res = decoder.write(buf);
var trail = decoder.end();
return trail ? res + trail : res;
};
iconv.encodingExists = function encodingExists(enc) {
try {
iconv.getCodec(enc);
return true;
} catch (e) {
return false;
}
};
iconv.toEncoding = iconv.encode;
iconv.fromEncoding = iconv.decode;
iconv._codecDataCache = {};
iconv.getCodec = function getCodec(encoding) {
if (!iconv.encodings)
iconv.encodings = require_encodings();
var enc = iconv._canonicalizeEncoding(encoding);
var codecOptions = {};
while (true) {
var codec = iconv._codecDataCache[enc];
if (codec)
return codec;
var codecDef = iconv.encodings[enc];
switch (typeof codecDef) {
case "string":
enc = codecDef;
break;
case "object":
for (var key in codecDef)
codecOptions[key] = codecDef[key];
if (!codecOptions.encodingName)
codecOptions.encodingName = enc;
enc = codecDef.type;
break;
case "function":
if (!codecOptions.encodingName)
codecOptions.encodingName = enc;
codec = new codecDef(codecOptions, iconv);
iconv._codecDataCache[codecOptions.encodingName] = codec;
return codec;
default:
throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')");
}
}
};
iconv._canonicalizeEncoding = function(encoding) {
return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
};
iconv.getEncoder = function getEncoder(encoding, options) {
var codec = iconv.getCodec(encoding), encoder = new codec.encoder(options, codec);
if (codec.bomAware && options && options.addBOM)
encoder = new bomHandling.PrependBOM(encoder, options);
return encoder;
};
iconv.getDecoder = function getDecoder(encoding, options) {
var codec = iconv.getCodec(encoding), decoder = new codec.decoder(options, codec);
if (codec.bomAware && !(options && options.stripBOM === false))
decoder = new bomHandling.StripBOM(decoder, options);
return decoder;
};
iconv.enableStreamingAPI = function enableStreamingAPI(stream_module2) {
if (iconv.supportsStreams)
return;
var streams = require_streams()(stream_module2);
iconv.IconvLiteEncoderStream = streams.IconvLiteEncoderStream;
iconv.IconvLiteDecoderStream = streams.IconvLiteDecoderStream;
iconv.encodeStream = function encodeStream(encoding, options) {
return new iconv.IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options);
};
iconv.decodeStream = function decodeStream(encoding, options) {
return new iconv.IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options);
};
iconv.supportsStreams = true;
};
var stream_module;
try {
stream_module = require("stream");
} catch (e) {
}
if (stream_module && stream_module.Transform) {
iconv.enableStreamingAPI(stream_module);
} else {
iconv.encodeStream = iconv.decodeStream = function() {
throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.");
};
}
if (false) {
console.error("iconv-lite warning: js files use non-utf8 encoding. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
}
}
});
var require_unpipe = __commonJS2({
"node_modules/unpipe/index.js"(exports2, module2) {
"use strict";
module2.exports = unpipe;
function hasPipeDataListeners(stream4) {
var listeners = stream4.listeners("data");
for (var i = 0; i < listeners.length; i++) {
if (listeners[i].name === "ondata") {
return true;
}
}
return false;
}
function unpipe(stream4) {
if (!stream4) {
throw new TypeError("argument stream is required");
}
if (typeof stream4.unpipe === "function") {
stream4.unpipe();
return;
}
if (!hasPipeDataListeners(stream4)) {
return;
}
var listener;
var listeners = stream4.listeners("close");
for (var i = 0; i < listeners.length; i++) {
listener = listeners[i];
if (listener.name !== "cleanup" && listener.name !== "onclose") {
continue;
}
listener.call(stream4);
}
}
}
});
var require_raw_body = __commonJS2({
"node_modules/raw-body/index.js"(exports2, module2) {
"use strict";
var asyncHooks = tryRequireAsyncHooks();
var bytes = require_bytes();
var createError = require_http_errors();
var iconv = require_lib();
var unpipe = require_unpipe();
module2.exports = getRawBody2;
var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /;
function getDecoder(encoding) {
if (!encoding) return null;
try {
return iconv.getDecoder(encoding);
} catch (e) {
if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e;
throw createError(415, "specified encoding unsupported", {
encoding,
type: "encoding.unsupported"
});
}
}
function getRawBody2(stream4, options, callback) {
var done = callback;
var opts = options || {};
if (stream4 === void 0) {
throw new TypeError("argument stream is required");
} else if (typeof stream4 !== "object" || stream4 === null || typeof stream4.on !== "function") {
throw new TypeError("argument stream must be a stream");
}
if (options === true || typeof options === "string") {
opts = {
encoding: options
};
}
if (typeof options === "function") {
done = options;
opts = {};
}
if (done !== void 0 && typeof done !== "function") {
throw new TypeError("argument callback must be a function");
}
if (!done && !global.Promise) {
throw new TypeError("argument callback is required");
}
var encoding = opts.encoding !== true ? opts.encoding : "utf-8";
var limit = bytes.parse(opts.limit);
var length = opts.length != null && !isNaN(opts.length) ? parseInt(opts.length, 10) : null;
if (done) {
return readStream2(stream4, encoding, length, limit, wrap(done));
}
return new Promise(function executor(resolve, reject) {
readStream2(stream4, encoding, length, limit, function onRead(err2, buf) {
if (err2) return reject(err2);
resolve(buf);
});
});
}
function halt(stream4) {
unpipe(stream4);
if (typeof stream4.pause === "function") {
stream4.pause();
}
}
function readStream2(stream4, encoding, length, limit, callback) {
var complete = false;
var sync = true;
if (limit !== null && length !== null && length > limit) {
return done(createError(413, "request entity too large", {
expected: length,
length,
limit,
type: "entity.too.large"
}));
}
var state = stream4._readableState;
if (stream4._decoder || state && (state.encoding || state.decoder)) {
return done(createError(500, "stream encoding should not be set", {
type: "stream.encoding.set"
}));
}
if (typeof stream4.readable !== "undefined" && !stream4.readable) {
return done(createError(500, "stream is not readable", {
type: "stream.not.readable"
}));
}
var received = 0;
var decoder;
try {
decoder = getDecoder(encoding);
} catch (err2) {
return done(err2);
}
var buffer = decoder ? "" : [];
stream4.on("aborted", onAborted);
stream4.on("close", cleanup);
stream4.on("data", onData);
stream4.on("end", onEnd);
stream4.on("error", onEnd);
sync = false;
function done() {
var args = new Array(arguments.length);
for (var i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
complete = true;
if (sync) {
process.nextTick(invokeCallback);
} else {
invokeCallback();
}
function invokeCallback() {
cleanup();
if (args[0]) {
halt(stream4);
}
callback.apply(null, args);
}
}
function onAborted() {
if (complete) return;
done(createError(400, "request aborted", {
code: "ECONNABORTED",
expected: length,
length,
received,
type: "request.aborted"
}));
}
function onData(chunk) {
if (complete) return;
received += chunk.length;
if (limit !== null && received > limit) {
done(createError(413, "request entity too large", {
limit,
received,
type: "entity.too.large"
}));
} else if (decoder) {
buffer += decoder.write(chunk);
} else {
buffer.push(chunk);
}
}
function onEnd(err2) {
if (complete) return;
if (err2) return done(err2);
if (length !== null && received !== length) {
done(createError(400, "request size did not match content length", {
expected: length,
length,
received,
type: "request.size.invalid"
}));
} else {
var string = decoder ? buffer + (decoder.end() || "") : Buffer.concat(buffer);
done(null, string);
}
}
function cleanup() {
buffer = null;
stream4.removeListener("aborted", onAborted);
stream4.removeListener("data", onData);
stream4.removeListener("end", onEnd);
stream4.removeListener("error", onEnd);
stream4.removeListener("close", cleanup);
}
}
function tryRequireAsyncHooks() {
try {
return require("async_hooks");
} catch (e) {
return {};
}
}
function wrap(fn) {
var res;
if (asyncHooks.AsyncResource) {
res = new asyncHooks.AsyncResource(fn.name || "bound-anonymous-fn");
}
if (!res || !res.runInAsyncScope) {
return fn;
}
return res.runInAsyncScope.bind(res, fn, null);
}
}
});
var require_content_type = __commonJS2({
"node_modules/content-type/index.js"(exports2) {
"use strict";
var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;
var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/;
var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g;
var QUOTE_REGEXP = /([\\"])/g;
var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
exports2.format = format;
exports2.parse = parse;
function format(obj) {
if (!obj || typeof obj !== "object") {
throw new TypeError("argument obj is required");
}
var parameters = obj.parameters;
var type = obj.type;
if (!type || !TYPE_REGEXP.test(type)) {
throw new TypeError("invalid type");
}
var string = type;
if (parameters && typeof parameters === "object") {
var param;
var params = Object.keys(parameters).sort();
for (var i = 0; i < params.length; i++) {
param = params[i];
if (!TOKEN_REGEXP.test(param)) {
throw new TypeError("invalid parameter name");
}
string += "; " + param + "=" + qstring(parameters[param]);
}
}
return string;
}
function parse(string) {
if (!string) {
throw new TypeError("argument string is required");
}
var header = typeof string === "object" ? getcontenttype(string) : string;
if (typeof header !== "string") {
throw new TypeError("argument string is required to be a string");
}
var index = header.indexOf(";");
var type = index !== -1 ? header.slice(0, index).trim() : header.trim();
if (!TYPE_REGEXP.test(type)) {
throw new TypeError("invalid media type");
}
var obj = new ContentType(type.toLowerCase());
if (index !== -1) {
var key;
var match;
var value;
PARAM_REGEXP.lastIndex = index;
while (match = PARAM_REGEXP.exec(header)) {
if (match.index !== index) {
throw new TypeError("invalid parameter format");
}
index += match[0].length;
key = match[1].toLowerCase();
value = match[2];
if (value.charCodeAt(0) === 34) {
value = value.slice(1, -1);
if (value.indexOf("\\") !== -1) {
value = value.replace(QESC_REGEXP, "$1");
}
}
obj.parameters[key] = value;
}
if (index !== header.length) {
throw new TypeError("invalid parameter format");
}
}
return obj;
}
function getcontenttype(obj) {
var header;
if (typeof obj.getHeader === "function") {
header = obj.getHeader("content-type");
} else if (typeof obj.headers === "object") {
header = obj.headers && obj.headers["content-type"];
}
if (typeof header !== "string") {
throw new TypeError("content-type header is missing from object");
}
return header;
}
function qstring(val) {
var str = String(val);
if (TOKEN_REGEXP.test(str)) {
return str;
}
if (str.length > 0 && !TEXT_REGEXP.test(str)) {
throw new TypeError("invalid parameter value");
}
return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
}
function ContentType(type) {
this.parameters = /* @__PURE__ */ Object.create(null);
this.type = type;
}
}
});
var require_ms2 = __commonJS2({
"node_modules/ms/index.js"(exports2, module2) {
var s = 1e3;
var m = s * 60;
var h = m * 60;
var d = h * 24;
var w = d * 7;
var y = d * 365.25;
module2.exports = function(val, options) {
options = options || {};
var type = typeof val;
if (type === "string" && val.length > 0) {
return parse(val);
} else if (type === "number" && isFinite(val)) {
return options.long ? fmtLong(val) : fmtShort(val);
}
throw new Error(
"val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
);
};
function parse(str) {
str = String(str);
if (str.length > 100) {
return;
}
var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
str
);
if (!match) {
return;
}
var n = parseFloat(match[1]);
var type = (match[2] || "ms").toLowerCase();
switch (type) {
case "years":
case "year":
case "yrs":
case "yr":
case "y":
return n * y;
case "weeks":
case "week":
case "w":
return n * w;
case "days":
case "day":
case "d":
return n * d;
case "hours":
case "hour":
case "hrs":
case "hr":
case "h":
return n * h;
case "minutes":
case "minute":
case "mins":
case "min":
case "m":
return n * m;
case "seconds":
case "second":
case "secs":
case "sec":
case "s":
return n * s;
case "milliseconds":
case "millisecond":
case "msecs":
case "msec":
case "ms":
return n;
default:
return void 0;
}
}
function fmtShort(ms) {
var msAbs = Math.abs(ms);
if (msAbs >= d) {
return Math.round(ms / d) + "d";
}
if (msAbs >= h) {
return Math.round(ms / h) + "h";
}
if (msAbs >= m) {
return Math.round(ms / m) + "m";
}
if (msAbs >= s) {
return Math.round(ms / s) + "s";
}
return ms + "ms";
}
function fmtLong(ms) {
var msAbs = Math.abs(ms);
if (msAbs >= d) {
return plural(ms, msAbs, d, "day");
}
if (msAbs >= h) {
return plural(ms, msAbs, h, "hour");
}
if (msAbs >= m) {
return plural(ms, msAbs, m, "minute");
}
if (msAbs >= s) {
return plural(ms, msAbs, s, "second");
}
return ms + " ms";
}
function plural(ms, msAbs, n, name) {
var isPlural = msAbs >= n * 1.5;
return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
}
}
});
var require_common = __commonJS2({
"node_modules/debug/src/common.js"(exports2, module2) {
function setup(env) {
createDebug.debug = createDebug;
createDebug.default = createDebug;
createDebug.coerce = coerce22;
createDebug.disable = disable;
createDebug.enable = enable;
createDebug.enabled = enabled;
createDebug.humanize = require_ms2();
createDebug.destroy = destroy;
Object.keys(env).forEach((key) => {
createDebug[key] = env[key];
});
createDebug.names = [];
createDebug.skips = [];
createDebug.formatters = {};
function selectColor(namespace) {
let hash = 0;
for (let i = 0; i < namespace.length; i++) {
hash = (hash << 5) - hash + namespace.charCodeAt(i);
hash |= 0;
}
return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
}
createDebug.selectColor = selectColor;
function createDebug(namespace) {
let prevTime;
let enableOverride = null;
let namespacesCache;
let enabledCache;
function debug(...args) {
if (!debug.enabled) {
return;
}
const self2 = debug;
const curr = Number(/* @__PURE__ */ new Date());
const ms = curr - (prevTime || curr);
self2.diff = ms;
self2.prev = prevTime;
self2.curr = curr;
prevTime = curr;
args[0] = createDebug.coerce(args[0]);
if (typeof args[0] !== "string") {
args.unshift("%O");
}
let index = 0;
args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
if (match === "%%") {
return "%";
}
index++;
const formatter = createDebug.formatters[format];
if (typeof formatter === "function") {
const val = args[index];
match = formatter.call(self2, val);
args.splice(index, 1);
index--;
}
return match;
});
createDebug.formatArgs.call(self2, args);
const logFn = self2.log || createDebug.log;
logFn.apply(self2, args);
}
debug.namespace = namespace;
debug.useColors = createDebug.useColors();
debug.color = createDebug.selectColor(namespace);
debug.extend = extend2;
debug.destroy = createDebug.destroy;
Object.defineProperty(debug, "enabled", {
enumerable: true,
configurable: false,
get: () => {
if (enableOverride !== null) {
return enableOverride;
}
if (namespacesCache !== createDebug.namespaces) {
namespacesCache = createDebug.namespaces;
enabledCache = createDebug.enabled(namespace);
}
return enabledCache;
},
set: (v) => {
enableOverride = v;
}
});
if (typeof createDebug.init === "function") {
createDebug.init(debug);
}
return debug;
}
function extend2(namespace, delimiter) {
const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
newDebug.log = this.log;
return newDebug;
}
function enable(namespaces) {
createDebug.save(namespaces);
createDebug.namespaces = namespaces;
createDebug.names = [];
createDebug.skips = [];
const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
for (const ns of split) {
if (ns[0] === "-") {
createDebug.skips.push(ns.slice(1));
} else {
createDebug.names.push(ns);
}
}
}
function matchesTemplate(search, template) {
let searchIndex = 0;
let templateIndex = 0;
let starIndex = -1;
let matchIndex = 0;
while (searchIndex < search.length) {
if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
if (template[templateIndex] === "*") {
starIndex = templateIndex;
matchIndex = searchIndex;
templateIndex++;
} else {
searchIndex++;
templateIndex++;
}
} else if (starIndex !== -1) {
templateIndex = starIndex + 1;
matchIndex++;
searchIndex = matchIndex;
} else {
return false;
}
}
while (templateIndex < template.length && template[templateIndex] === "*") {
templateIndex++;
}
return templateIndex === template.length;
}
function disable() {
const namespaces = [
...createDebug.names,
...createDebug.skips.map((namespace) => "-" + namespace)
].join(",");
createDebug.enable("");
return namespaces;
}
function enabled(name) {
for (const skip of createDebug.skips) {
if (matchesTemplate(name, skip)) {
return false;
}
}
for (const ns of createDebug.names) {
if (matchesTemplate(name, ns)) {
return true;
}
}
return false;
}
function coerce22(val) {
if (val instanceof Error) {
return val.stack || val.message;
}
return val;
}
function destroy() {
console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
}
createDebug.enable(createDebug.load());
return createDebug;
}
module2.exports = setup;
}
});
var require_browser2 = __commonJS2({
"node_modules/debug/src/browser.js"(exports2, module2) {
exports2.formatArgs = formatArgs;
exports2.save = save;
exports2.load = load;
exports2.useColors = useColors;
exports2.storage = localstorage();
exports2.destroy = /* @__PURE__ */ (() => {
let warned = false;
return () => {
if (!warned) {
warned = true;
console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
}
};
})();
exports2.colors = [
"#0000CC",
"#0000FF",
"#0033CC",
"#0033FF",
"#0066CC",
"#0066FF",
"#0099CC",
"#0099FF",
"#00CC00",
"#00CC33",
"#00CC66",
"#00CC99",
"#00CCCC",
"#00CCFF",
"#3300CC",
"#3300FF",
"#3333CC",
"#3333FF",
"#3366CC",
"#3366FF",
"#3399CC",
"#3399FF",
"#33CC00",
"#33CC33",
"#33CC66",
"#33CC99",
"#33CCCC",
"#33CCFF",
"#6600CC",
"#6600FF",
"#6633CC",
"#6633FF",
"#66CC00",
"#66CC33",
"#9900CC",
"#9900FF",
"#9933CC",
"#9933FF",
"#99CC00",
"#99CC33",
"#CC0000",
"#CC0033",
"#CC0066",
"#CC0099",
"#CC00CC",
"#CC00FF",
"#CC3300",
"#CC3333",
"#CC3366",
"#CC3399",
"#CC33CC",
"#CC33FF",
"#CC6600",
"#CC6633",
"#CC9900",
"#CC9933",
"#CCCC00",
"#CCCC33",
"#FF0000",
"#FF0033",
"#FF0066",
"#FF0099",
"#FF00CC",
"#FF00FF",
"#FF3300",
"#FF3333",
"#FF3366",
"#FF3399",
"#FF33CC",
"#FF33FF",
"#FF6600",
"#FF6633",
"#FF9900",
"#FF9933",
"#FFCC00",
"#FFCC33"
];
function useColors() {
if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
return true;
}
if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
return false;
}
let m;
return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
}
function formatArgs(args) {
args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff);
if (!this.useColors) {
return;
}
const c = "color: " + this.color;
args.splice(1, 0, c, "color: inherit");
let index = 0;
let lastC = 0;
args[0].replace(/%[a-zA-Z%]/g, (match) => {
if (match === "%%") {
return;
}
index++;
if (match === "%c") {
lastC = index;
}
});
args.splice(lastC, 0, c);
}
exports2.log = console.debug || console.log || (() => {
});
function save(namespaces) {
try {
if (namespaces) {
exports2.storage.setItem("debug", namespaces);
} else {
exports2.storage.removeItem("debug");
}
} catch (error) {
}
}
function load() {
let r;
try {
r = exports2.storage.getItem("debug") || exports2.storage.getItem("DEBUG");
} catch (error) {
}
if (!r && typeof process !== "undefined" && "env" in process) {
r = process.env.DEBUG;
}
return r;
}
function localstorage() {
try {
return localStorage;
} catch (error) {
}
}
module2.exports = require_common()(exports2);
var { formatters } = module2.exports;
formatters.j = function(v) {
try {
return JSON.stringify(v);
} catch (error) {
return "[UnexpectedJSONParseError]: " + error.message;
}
};
}
});
var require_has_flag = __commonJS2({
"node_modules/has-flag/index.js"(exports2, module2) {
"use strict";
module2.exports = (flag, argv = process.argv) => {
const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
const position = argv.indexOf(prefix + flag);
const terminatorPosition = argv.indexOf("--");
return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
};
}
});
var require_supports_color = __commonJS2({
"node_modules/supports-color/index.js"(exports2, module2) {
"use strict";
var os = require("os");
var tty = require("tty");
var hasFlag = require_has_flag();
var { env } = process;
var forceColor;
if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
forceColor = 0;
} else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
forceColor = 1;
}
if ("FORCE_COLOR" in env) {
if (env.FORCE_COLOR === "true") {
forceColor = 1;
} else if (env.FORCE_COLOR === "false") {
forceColor = 0;
} else {
forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);
}
}
function translateLevel(level) {
if (level === 0) {
return false;
}
return {
level,
hasBasic: true,
has256: level >= 2,
has16m: level >= 3
};
}
function supportsColor(haveStream, streamIsTTY) {
if (forceColor === 0) {
return 0;
}
if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
return 3;
}
if (hasFlag("color=256")) {
return 2;
}
if (haveStream && !streamIsTTY && forceColor === void 0) {
return 0;
}
const min = forceColor || 0;
if (env.TERM === "dumb") {
return min;
}
if (process.platform === "win32") {
const osRelease = os.release().split(".");
if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
return Number(osRelease[2]) >= 14931 ? 3 : 2;
}
return 1;
}
if ("CI" in env) {
if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
return 1;
}
return min;
}
if ("TEAMCITY_VERSION" in env) {
return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
}
if (env.COLORTERM === "truecolor") {
return 3;
}
if ("TERM_PROGRAM" in env) {
const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
switch (env.TERM_PROGRAM) {
case "iTerm.app":
return version >= 3 ? 3 : 2;
case "Apple_Terminal":
return 2;
}
}
if (/-256(color)?$/i.test(env.TERM)) {
return 2;
}
if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
return 1;
}
if ("COLORTERM" in env) {
return 1;
}
return min;
}
function getSupportLevel(stream4) {
const level = supportsColor(stream4, stream4 && stream4.isTTY);
return translateLevel(level);
}
module2.exports = {
supportsColor: getSupportLevel,
stdout: translateLevel(supportsColor(true, tty.isatty(1))),
stderr: translateLevel(supportsColor(true, tty.isatty(2)))
};
}
});
var require_node2 = __commonJS2({
"node_modules/debug/src/node.js"(exports2, module2) {
var tty = require("tty");
var util22 = require("util");
exports2.init = init;
exports2.log = log;
exports2.formatArgs = formatArgs;
exports2.save = save;
exports2.load = load;
exports2.useColors = useColors;
exports2.destroy = util22.deprecate(
() => {
},
"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."
);
exports2.colors = [6, 2, 3, 4, 5, 1];
try {
const supportsColor = require_supports_color();
if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
exports2.colors = [
20,
21,
26,
27,
32,
33,
38,
39,
40,
41,
42,
43,
44,
45,
56,
57,
62,
63,
68,
69,
74,
75,
76,
77,
78,
79,
80,
81,
92,
93,
98,
99,
112,
113,
128,
129,
134,
135,
148,
149,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
178,
179,
184,
185,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
214,
215,
220,
221
];
}
} catch (error) {
}
exports2.inspectOpts = Object.keys(process.env).filter((key) => {
return /^debug_/i.test(key);
}).reduce((obj, key) => {
const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_2, k) => {
return k.toUpperCase();
});
let val = process.env[key];
if (/^(yes|on|true|enabled)$/i.test(val)) {
val = true;
} else if (/^(no|off|false|disabled)$/i.test(val)) {
val = false;
} else if (val === "null") {
val = null;
} else {
val = Number(val);
}
obj[prop] = val;
return obj;
}, {});
function useColors() {
return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(process.stderr.fd);
}
function formatArgs(args) {
const { namespace: name, useColors: useColors2 } = this;
if (useColors2) {
const c = this.color;
const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
const prefix = ` ${colorCode};1m${name} \x1B[0m`;
args[0] = prefix + args[0].split("\n").join("\n" + prefix);
args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m");
} else {
args[0] = getDate() + name + " " + args[0];
}
}
function getDate() {
if (exports2.inspectOpts.hideDate) {
return "";
}
return (/* @__PURE__ */ new Date()).toISOString() + " ";
}
function log(...args) {
return process.stderr.write(util22.formatWithOptions(exports2.inspectOpts, ...args) + "\n");
}
function save(namespaces) {
if (namespaces) {
process.env.DEBUG = namespaces;
} else {
delete process.env.DEBUG;
}
}
function load() {
return process.env.DEBUG;
}
function init(debug) {
debug.inspectOpts = {};
const keys = Object.keys(exports2.inspectOpts);
for (let i = 0; i < keys.length; i++) {
debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]];
}
}
module2.exports = require_common()(exports2);
var { formatters } = module2.exports;
formatters.o = function(v) {
this.inspectOpts.colors = this.useColors;
return util22.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" ");
};
formatters.O = function(v) {
this.inspectOpts.colors = this.useColors;
return util22.inspect(v, this.inspectOpts);
};
}
});
var require_src2 = __commonJS2({
"node_modules/debug/src/index.js"(exports2, module2) {
if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) {
module2.exports = require_browser2();
} else {
module2.exports = require_node2();
}
}
});
var require_ee_first = __commonJS2({
"node_modules/ee-first/index.js"(exports2, module2) {
"use strict";
module2.exports = first;
function first(stuff, done) {
if (!Array.isArray(stuff))
throw new TypeError("arg must be an array of [ee, events...] arrays");
var cleanups = [];
for (var i = 0; i < stuff.length; i++) {
var arr = stuff[i];
if (!Array.isArray(arr) || arr.length < 2)
throw new TypeError("each array member must be [ee, events...]");
var ee = arr[0];
for (var j = 1; j < arr.length; j++) {
var event = arr[j];
var fn = listener(event, callback);
ee.on(event, fn);
cleanups.push({
ee,
event,
fn
});
}
}
function callback() {
cleanup();
done.apply(null, arguments);
}
function cleanup() {
var x;
for (var i2 = 0; i2 < cleanups.length; i2++) {
x = cleanups[i2];
x.ee.removeListener(x.event, x.fn);
}
}
function thunk(fn2) {
done = fn2;
}
thunk.cancel = cleanup;
return thunk;
}
function listener(event, done) {
return function onevent(arg1) {
var args = new Array(arguments.length);
var ee = this;
var err2 = event === "error" ? arg1 : null;
for (var i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
done(err2, ee, event, args);
};
}
}
});
var require_on_finished = __commonJS2({
"node_modules/on-finished/index.js"(exports2, module2) {
"use strict";
module2.exports = onFinished;
module2.exports.isFinished = isFinished;
var asyncHooks = tryRequireAsyncHooks();
var first = require_ee_first();
var defer = typeof setImmediate === "function" ? setImmediate : function(fn) {
process.nextTick(fn.bind.apply(fn, arguments));
};
function onFinished(msg, listener) {
if (isFinished(msg) !== false) {
defer(listener, null, msg);
return msg;
}
attachListener(msg, wrap(listener));
return msg;
}
function isFinished(msg) {
var socket = msg.socket;
if (typeof msg.finished === "boolean") {
return Boolean(msg.finished || socket && !socket.writable);
}
if (typeof msg.complete === "boolean") {
return Boolean(msg.upgrade || !socket || !socket.readable || msg.complete && !msg.readable);
}
return void 0;
}
function attachFinishedListener(msg, callback) {
var eeMsg;
var eeSocket;
var finished = false;
function onFinish(error) {
eeMsg.cancel();
eeSocket.cancel();
finished = true;
callback(error);
}
eeMsg = eeSocket = first([[msg, "end", "finish"]], onFinish);
function onSocket(socket) {
msg.removeListener("socket", onSocket);
if (finished) return;
if (eeMsg !== eeSocket) return;
eeSocket = first([[socket, "error", "close"]], onFinish);
}
if (msg.socket) {
onSocket(msg.socket);
return;
}
msg.on("socket", onSocket);
if (msg.socket === void 0) {
patchAssignSocket(msg, onSocket);
}
}
function attachListener(msg, listener) {
var attached = msg.__onFinished;
if (!attached || !attached.queue) {
attached = msg.__onFinished = createListener(msg);
attachFinishedListener(msg, attached);
}
attached.queue.push(listener);
}
function createListener(msg) {
function listener(err2) {
if (msg.__onFinished === listener) msg.__onFinished = null;
if (!listener.queue) return;
var queue = listener.queue;
listener.queue = null;
for (var i = 0; i < queue.length; i++) {
queue[i](err2, msg);
}
}
listener.queue = [];
return listener;
}
function patchAssignSocket(res, callback) {
var assignSocket = res.assignSocket;
if (typeof assignSocket !== "function") return;
res.assignSocket = function _assignSocket(socket) {
assignSocket.call(this, socket);
callback(socket);
};
}
function tryRequireAsyncHooks() {
try {
return require("async_hooks");
} catch (e) {
return {};
}
}
function wrap(fn) {
var res;
if (asyncHooks.AsyncResource) {
res = new asyncHooks.AsyncResource(fn.name || "bound-anonymous-fn");
}
if (!res || !res.runInAsyncScope) {
return fn;
}
return res.runInAsyncScope.bind(res, fn, null);
}
}
});
var require_bom_handling2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/lib/bom-handling.js"(exports2) {
"use strict";
var BOMChar = "\uFEFF";
exports2.PrependBOM = PrependBOMWrapper;
function PrependBOMWrapper(encoder, options) {
this.encoder = encoder;
this.addBOM = true;
}
PrependBOMWrapper.prototype.write = function(str) {
if (this.addBOM) {
str = BOMChar + str;
this.addBOM = false;
}
return this.encoder.write(str);
};
PrependBOMWrapper.prototype.end = function() {
return this.encoder.end();
};
exports2.StripBOM = StripBOMWrapper;
function StripBOMWrapper(decoder, options) {
this.decoder = decoder;
this.pass = false;
this.options = options || {};
}
StripBOMWrapper.prototype.write = function(buf) {
var res = this.decoder.write(buf);
if (this.pass || !res)
return res;
if (res[0] === BOMChar) {
res = res.slice(1);
if (typeof this.options.stripBOM === "function")
this.options.stripBOM();
}
this.pass = true;
return res;
};
StripBOMWrapper.prototype.end = function() {
return this.decoder.end();
};
}
});
var require_internal2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/internal.js"(exports2, module2) {
"use strict";
var Buffer2 = require_safer().Buffer;
module2.exports = {
// Encodings
utf8: { type: "_internal", bomAware: true },
cesu8: { type: "_internal", bomAware: true },
unicode11utf8: "utf8",
ucs2: { type: "_internal", bomAware: true },
utf16le: "ucs2",
binary: { type: "_internal" },
base64: { type: "_internal" },
hex: { type: "_internal" },
// Codec.
_internal: InternalCodec
};
function InternalCodec(codecOptions, iconv) {
this.enc = codecOptions.encodingName;
this.bomAware = codecOptions.bomAware;
if (this.enc === "base64")
this.encoder = InternalEncoderBase64;
else if (this.enc === "cesu8") {
this.enc = "utf8";
this.encoder = InternalEncoderCesu8;
if (Buffer2.from("eda0bdedb2a9", "hex").toString() !== "\u{1F4A9}") {
this.decoder = InternalDecoderCesu8;
this.defaultCharUnicode = iconv.defaultCharUnicode;
}
}
}
InternalCodec.prototype.encoder = InternalEncoder;
InternalCodec.prototype.decoder = InternalDecoder;
var StringDecoder = require("string_decoder").StringDecoder;
if (!StringDecoder.prototype.end)
StringDecoder.prototype.end = function() {
};
function InternalDecoder(options, codec) {
this.decoder = new StringDecoder(codec.enc);
}
InternalDecoder.prototype.write = function(buf) {
if (!Buffer2.isBuffer(buf)) {
buf = Buffer2.from(buf);
}
return this.decoder.write(buf);
};
InternalDecoder.prototype.end = function() {
return this.decoder.end();
};
function InternalEncoder(options, codec) {
this.enc = codec.enc;
}
InternalEncoder.prototype.write = function(str) {
return Buffer2.from(str, this.enc);
};
InternalEncoder.prototype.end = function() {
};
function InternalEncoderBase64(options, codec) {
this.prevStr = "";
}
InternalEncoderBase64.prototype.write = function(str) {
str = this.prevStr + str;
var completeQuads = str.length - str.length % 4;
this.prevStr = str.slice(completeQuads);
str = str.slice(0, completeQuads);
return Buffer2.from(str, "base64");
};
InternalEncoderBase64.prototype.end = function() {
return Buffer2.from(this.prevStr, "base64");
};
function InternalEncoderCesu8(options, codec) {
}
InternalEncoderCesu8.prototype.write = function(str) {
var buf = Buffer2.alloc(str.length * 3), bufIdx = 0;
for (var i = 0; i < str.length; i++) {
var charCode = str.charCodeAt(i);
if (charCode < 128)
buf[bufIdx++] = charCode;
else if (charCode < 2048) {
buf[bufIdx++] = 192 + (charCode >>> 6);
buf[bufIdx++] = 128 + (charCode & 63);
} else {
buf[bufIdx++] = 224 + (charCode >>> 12);
buf[bufIdx++] = 128 + (charCode >>> 6 & 63);
buf[bufIdx++] = 128 + (charCode & 63);
}
}
return buf.slice(0, bufIdx);
};
InternalEncoderCesu8.prototype.end = function() {
};
function InternalDecoderCesu8(options, codec) {
this.acc = 0;
this.contBytes = 0;
this.accBytes = 0;
this.defaultCharUnicode = codec.defaultCharUnicode;
}
InternalDecoderCesu8.prototype.write = function(buf) {
var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, res = "";
for (var i = 0; i < buf.length; i++) {
var curByte = buf[i];
if ((curByte & 192) !== 128) {
if (contBytes > 0) {
res += this.defaultCharUnicode;
contBytes = 0;
}
if (curByte < 128) {
res += String.fromCharCode(curByte);
} else if (curByte < 224) {
acc = curByte & 31;
contBytes = 1;
accBytes = 1;
} else if (curByte < 240) {
acc = curByte & 15;
contBytes = 2;
accBytes = 1;
} else {
res += this.defaultCharUnicode;
}
} else {
if (contBytes > 0) {
acc = acc << 6 | curByte & 63;
contBytes--;
accBytes++;
if (contBytes === 0) {
if (accBytes === 2 && acc < 128 && acc > 0)
res += this.defaultCharUnicode;
else if (accBytes === 3 && acc < 2048)
res += this.defaultCharUnicode;
else
res += String.fromCharCode(acc);
}
} else {
res += this.defaultCharUnicode;
}
}
}
this.acc = acc;
this.contBytes = contBytes;
this.accBytes = accBytes;
return res;
};
InternalDecoderCesu8.prototype.end = function() {
var res = 0;
if (this.contBytes > 0)
res += this.defaultCharUnicode;
return res;
};
}
});
var require_utf322 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/utf32.js"(exports2) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports2._utf32 = Utf32Codec;
function Utf32Codec(codecOptions, iconv) {
this.iconv = iconv;
this.bomAware = true;
this.isLE = codecOptions.isLE;
}
exports2.utf32le = { type: "_utf32", isLE: true };
exports2.utf32be = { type: "_utf32", isLE: false };
exports2.ucs4le = "utf32le";
exports2.ucs4be = "utf32be";
Utf32Codec.prototype.encoder = Utf32Encoder;
Utf32Codec.prototype.decoder = Utf32Decoder;
function Utf32Encoder(options, codec) {
this.isLE = codec.isLE;
this.highSurrogate = 0;
}
Utf32Encoder.prototype.write = function(str) {
var src = Buffer2.from(str, "ucs2");
var dst = Buffer2.alloc(src.length * 2);
var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE;
var offset = 0;
for (var i = 0; i < src.length; i += 2) {
var code = src.readUInt16LE(i);
var isHighSurrogate = 55296 <= code && code < 56320;
var isLowSurrogate = 56320 <= code && code < 57344;
if (this.highSurrogate) {
if (isHighSurrogate || !isLowSurrogate) {
write32.call(dst, this.highSurrogate, offset);
offset += 4;
} else {
var codepoint = (this.highSurrogate - 55296 << 10 | code - 56320) + 65536;
write32.call(dst, codepoint, offset);
offset += 4;
this.highSurrogate = 0;
continue;
}
}
if (isHighSurrogate)
this.highSurrogate = code;
else {
write32.call(dst, code, offset);
offset += 4;
this.highSurrogate = 0;
}
}
if (offset < dst.length)
dst = dst.slice(0, offset);
return dst;
};
Utf32Encoder.prototype.end = function() {
if (!this.highSurrogate)
return;
var buf = Buffer2.alloc(4);
if (this.isLE)
buf.writeUInt32LE(this.highSurrogate, 0);
else
buf.writeUInt32BE(this.highSurrogate, 0);
this.highSurrogate = 0;
return buf;
};
function Utf32Decoder(options, codec) {
this.isLE = codec.isLE;
this.badChar = codec.iconv.defaultCharUnicode.charCodeAt(0);
this.overflow = [];
}
Utf32Decoder.prototype.write = function(src) {
if (src.length === 0)
return "";
var i = 0;
var codepoint = 0;
var dst = Buffer2.alloc(src.length + 4);
var offset = 0;
var isLE = this.isLE;
var overflow = this.overflow;
var badChar = this.badChar;
if (overflow.length > 0) {
for (; i < src.length && overflow.length < 4; i++)
overflow.push(src[i]);
if (overflow.length === 4) {
if (isLE) {
codepoint = overflow[i] | overflow[i + 1] << 8 | overflow[i + 2] << 16 | overflow[i + 3] << 24;
} else {
codepoint = overflow[i + 3] | overflow[i + 2] << 8 | overflow[i + 1] << 16 | overflow[i] << 24;
}
overflow.length = 0;
offset = _writeCodepoint(dst, offset, codepoint, badChar);
}
}
for (; i < src.length - 3; i += 4) {
if (isLE) {
codepoint = src[i] | src[i + 1] << 8 | src[i + 2] << 16 | src[i + 3] << 24;
} else {
codepoint = src[i + 3] | src[i + 2] << 8 | src[i + 1] << 16 | src[i] << 24;
}
offset = _writeCodepoint(dst, offset, codepoint, badChar);
}
for (; i < src.length; i++) {
overflow.push(src[i]);
}
return dst.slice(0, offset).toString("ucs2");
};
function _writeCodepoint(dst, offset, codepoint, badChar) {
if (codepoint < 0 || codepoint > 1114111) {
codepoint = badChar;
}
if (codepoint >= 65536) {
codepoint -= 65536;
var high = 55296 | codepoint >> 10;
dst[offset++] = high & 255;
dst[offset++] = high >> 8;
var codepoint = 56320 | codepoint & 1023;
}
dst[offset++] = codepoint & 255;
dst[offset++] = codepoint >> 8;
return offset;
}
Utf32Decoder.prototype.end = function() {
this.overflow.length = 0;
};
exports2.utf32 = Utf32AutoCodec;
exports2.ucs4 = "utf32";
function Utf32AutoCodec(options, iconv) {
this.iconv = iconv;
}
Utf32AutoCodec.prototype.encoder = Utf32AutoEncoder;
Utf32AutoCodec.prototype.decoder = Utf32AutoDecoder;
function Utf32AutoEncoder(options, codec) {
options = options || {};
if (options.addBOM === void 0)
options.addBOM = true;
this.encoder = codec.iconv.getEncoder(options.defaultEncoding || "utf-32le", options);
}
Utf32AutoEncoder.prototype.write = function(str) {
return this.encoder.write(str);
};
Utf32AutoEncoder.prototype.end = function() {
return this.encoder.end();
};
function Utf32AutoDecoder(options, codec) {
this.decoder = null;
this.initialBufs = [];
this.initialBufsLen = 0;
this.options = options || {};
this.iconv = codec.iconv;
}
Utf32AutoDecoder.prototype.write = function(buf) {
if (!this.decoder) {
this.initialBufs.push(buf);
this.initialBufsLen += buf.length;
if (this.initialBufsLen < 32)
return "";
var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
this.decoder = this.iconv.getDecoder(encoding, this.options);
var resStr = "";
for (var i = 0; i < this.initialBufs.length; i++)
resStr += this.decoder.write(this.initialBufs[i]);
this.initialBufs.length = this.initialBufsLen = 0;
return resStr;
}
return this.decoder.write(buf);
};
Utf32AutoDecoder.prototype.end = function() {
if (!this.decoder) {
var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
this.decoder = this.iconv.getDecoder(encoding, this.options);
var resStr = "";
for (var i = 0; i < this.initialBufs.length; i++)
resStr += this.decoder.write(this.initialBufs[i]);
var trail = this.decoder.end();
if (trail)
resStr += trail;
this.initialBufs.length = this.initialBufsLen = 0;
return resStr;
}
return this.decoder.end();
};
function detectEncoding(bufs, defaultEncoding) {
var b = [];
var charsProcessed = 0;
var invalidLE = 0, invalidBE = 0;
var bmpCharsLE = 0, bmpCharsBE = 0;
outer_loop:
for (var i = 0; i < bufs.length; i++) {
var buf = bufs[i];
for (var j = 0; j < buf.length; j++) {
b.push(buf[j]);
if (b.length === 4) {
if (charsProcessed === 0) {
if (b[0] === 255 && b[1] === 254 && b[2] === 0 && b[3] === 0) {
return "utf-32le";
}
if (b[0] === 0 && b[1] === 0 && b[2] === 254 && b[3] === 255) {
return "utf-32be";
}
}
if (b[0] !== 0 || b[1] > 16) invalidBE++;
if (b[3] !== 0 || b[2] > 16) invalidLE++;
if (b[0] === 0 && b[1] === 0 && (b[2] !== 0 || b[3] !== 0)) bmpCharsBE++;
if ((b[0] !== 0 || b[1] !== 0) && b[2] === 0 && b[3] === 0) bmpCharsLE++;
b.length = 0;
charsProcessed++;
if (charsProcessed >= 100) {
break outer_loop;
}
}
}
}
if (bmpCharsBE - invalidBE > bmpCharsLE - invalidLE) return "utf-32be";
if (bmpCharsBE - invalidBE < bmpCharsLE - invalidLE) return "utf-32le";
return defaultEncoding || "utf-32le";
}
}
});
var require_utf162 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/utf16.js"(exports2) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports2.utf16be = Utf16BECodec;
function Utf16BECodec() {
}
Utf16BECodec.prototype.encoder = Utf16BEEncoder;
Utf16BECodec.prototype.decoder = Utf16BEDecoder;
Utf16BECodec.prototype.bomAware = true;
function Utf16BEEncoder() {
}
Utf16BEEncoder.prototype.write = function(str) {
var buf = Buffer2.from(str, "ucs2");
for (var i = 0; i < buf.length; i += 2) {
var tmp = buf[i];
buf[i] = buf[i + 1];
buf[i + 1] = tmp;
}
return buf;
};
Utf16BEEncoder.prototype.end = function() {
};
function Utf16BEDecoder() {
this.overflowByte = -1;
}
Utf16BEDecoder.prototype.write = function(buf) {
if (buf.length == 0)
return "";
var buf2 = Buffer2.alloc(buf.length + 1), i = 0, j = 0;
if (this.overflowByte !== -1) {
buf2[0] = buf[0];
buf2[1] = this.overflowByte;
i = 1;
j = 2;
}
for (; i < buf.length - 1; i += 2, j += 2) {
buf2[j] = buf[i + 1];
buf2[j + 1] = buf[i];
}
this.overflowByte = i == buf.length - 1 ? buf[buf.length - 1] : -1;
return buf2.slice(0, j).toString("ucs2");
};
Utf16BEDecoder.prototype.end = function() {
this.overflowByte = -1;
};
exports2.utf16 = Utf16Codec;
function Utf16Codec(codecOptions, iconv) {
this.iconv = iconv;
}
Utf16Codec.prototype.encoder = Utf16Encoder;
Utf16Codec.prototype.decoder = Utf16Decoder;
function Utf16Encoder(options, codec) {
options = options || {};
if (options.addBOM === void 0)
options.addBOM = true;
this.encoder = codec.iconv.getEncoder("utf-16le", options);
}
Utf16Encoder.prototype.write = function(str) {
return this.encoder.write(str);
};
Utf16Encoder.prototype.end = function() {
return this.encoder.end();
};
function Utf16Decoder(options, codec) {
this.decoder = null;
this.initialBufs = [];
this.initialBufsLen = 0;
this.options = options || {};
this.iconv = codec.iconv;
}
Utf16Decoder.prototype.write = function(buf) {
if (!this.decoder) {
this.initialBufs.push(buf);
this.initialBufsLen += buf.length;
if (this.initialBufsLen < 16)
return "";
var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
this.decoder = this.iconv.getDecoder(encoding, this.options);
var resStr = "";
for (var i = 0; i < this.initialBufs.length; i++)
resStr += this.decoder.write(this.initialBufs[i]);
this.initialBufs.length = this.initialBufsLen = 0;
return resStr;
}
return this.decoder.write(buf);
};
Utf16Decoder.prototype.end = function() {
if (!this.decoder) {
var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
this.decoder = this.iconv.getDecoder(encoding, this.options);
var resStr = "";
for (var i = 0; i < this.initialBufs.length; i++)
resStr += this.decoder.write(this.initialBufs[i]);
var trail = this.decoder.end();
if (trail)
resStr += trail;
this.initialBufs.length = this.initialBufsLen = 0;
return resStr;
}
return this.decoder.end();
};
function detectEncoding(bufs, defaultEncoding) {
var b = [];
var charsProcessed = 0;
var asciiCharsLE = 0, asciiCharsBE = 0;
outer_loop:
for (var i = 0; i < bufs.length; i++) {
var buf = bufs[i];
for (var j = 0; j < buf.length; j++) {
b.push(buf[j]);
if (b.length === 2) {
if (charsProcessed === 0) {
if (b[0] === 255 && b[1] === 254) return "utf-16le";
if (b[0] === 254 && b[1] === 255) return "utf-16be";
}
if (b[0] === 0 && b[1] !== 0) asciiCharsBE++;
if (b[0] !== 0 && b[1] === 0) asciiCharsLE++;
b.length = 0;
charsProcessed++;
if (charsProcessed >= 100) {
break outer_loop;
}
}
}
}
if (asciiCharsBE > asciiCharsLE) return "utf-16be";
if (asciiCharsBE < asciiCharsLE) return "utf-16le";
return defaultEncoding || "utf-16le";
}
}
});
var require_utf72 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/utf7.js"(exports2) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports2.utf7 = Utf7Codec;
exports2.unicode11utf7 = "utf7";
function Utf7Codec(codecOptions, iconv) {
this.iconv = iconv;
}
Utf7Codec.prototype.encoder = Utf7Encoder;
Utf7Codec.prototype.decoder = Utf7Decoder;
Utf7Codec.prototype.bomAware = true;
var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
function Utf7Encoder(options, codec) {
this.iconv = codec.iconv;
}
Utf7Encoder.prototype.write = function(str) {
return Buffer2.from(str.replace(nonDirectChars, function(chunk) {
return "+" + (chunk === "+" ? "" : this.iconv.encode(chunk, "utf16-be").toString("base64").replace(/=+$/, "")) + "-";
}.bind(this)));
};
Utf7Encoder.prototype.end = function() {
};
function Utf7Decoder(options, codec) {
this.iconv = codec.iconv;
this.inBase64 = false;
this.base64Accum = "";
}
var base64Regex22 = /[A-Za-z0-9\/+]/;
var base64Chars = [];
for (i = 0; i < 256; i++)
base64Chars[i] = base64Regex22.test(String.fromCharCode(i));
var i;
var plusChar = "+".charCodeAt(0);
var minusChar = "-".charCodeAt(0);
var andChar = "&".charCodeAt(0);
Utf7Decoder.prototype.write = function(buf) {
var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum;
for (var i2 = 0; i2 < buf.length; i2++) {
if (!inBase64) {
if (buf[i2] == plusChar) {
res += this.iconv.decode(buf.slice(lastI, i2), "ascii");
lastI = i2 + 1;
inBase64 = true;
}
} else {
if (!base64Chars[buf[i2]]) {
if (i2 == lastI && buf[i2] == minusChar) {
res += "+";
} else {
var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i2), "ascii");
res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
}
if (buf[i2] != minusChar)
i2--;
lastI = i2 + 1;
inBase64 = false;
base64Accum = "";
}
}
}
if (!inBase64) {
res += this.iconv.decode(buf.slice(lastI), "ascii");
} else {
var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii");
var canBeDecoded = b64str.length - b64str.length % 8;
base64Accum = b64str.slice(canBeDecoded);
b64str = b64str.slice(0, canBeDecoded);
res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
}
this.inBase64 = inBase64;
this.base64Accum = base64Accum;
return res;
};
Utf7Decoder.prototype.end = function() {
var res = "";
if (this.inBase64 && this.base64Accum.length > 0)
res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be");
this.inBase64 = false;
this.base64Accum = "";
return res;
};
exports2.utf7imap = Utf7IMAPCodec;
function Utf7IMAPCodec(codecOptions, iconv) {
this.iconv = iconv;
}
Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
Utf7IMAPCodec.prototype.bomAware = true;
function Utf7IMAPEncoder(options, codec) {
this.iconv = codec.iconv;
this.inBase64 = false;
this.base64Accum = Buffer2.alloc(6);
this.base64AccumIdx = 0;
}
Utf7IMAPEncoder.prototype.write = function(str) {
var inBase64 = this.inBase64, base64Accum = this.base64Accum, base64AccumIdx = this.base64AccumIdx, buf = Buffer2.alloc(str.length * 5 + 10), bufIdx = 0;
for (var i2 = 0; i2 < str.length; i2++) {
var uChar = str.charCodeAt(i2);
if (32 <= uChar && uChar <= 126) {
if (inBase64) {
if (base64AccumIdx > 0) {
bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
base64AccumIdx = 0;
}
buf[bufIdx++] = minusChar;
inBase64 = false;
}
if (!inBase64) {
buf[bufIdx++] = uChar;
if (uChar === andChar)
buf[bufIdx++] = minusChar;
}
} else {
if (!inBase64) {
buf[bufIdx++] = andChar;
inBase64 = true;
}
if (inBase64) {
base64Accum[base64AccumIdx++] = uChar >> 8;
base64Accum[base64AccumIdx++] = uChar & 255;
if (base64AccumIdx == base64Accum.length) {
bufIdx += buf.write(base64Accum.toString("base64").replace(/\//g, ","), bufIdx);
base64AccumIdx = 0;
}
}
}
}
this.inBase64 = inBase64;
this.base64AccumIdx = base64AccumIdx;
return buf.slice(0, bufIdx);
};
Utf7IMAPEncoder.prototype.end = function() {
var buf = Buffer2.alloc(10), bufIdx = 0;
if (this.inBase64) {
if (this.base64AccumIdx > 0) {
bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
this.base64AccumIdx = 0;
}
buf[bufIdx++] = minusChar;
this.inBase64 = false;
}
return buf.slice(0, bufIdx);
};
function Utf7IMAPDecoder(options, codec) {
this.iconv = codec.iconv;
this.inBase64 = false;
this.base64Accum = "";
}
var base64IMAPChars = base64Chars.slice();
base64IMAPChars[",".charCodeAt(0)] = true;
Utf7IMAPDecoder.prototype.write = function(buf) {
var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum;
for (var i2 = 0; i2 < buf.length; i2++) {
if (!inBase64) {
if (buf[i2] == andChar) {
res += this.iconv.decode(buf.slice(lastI, i2), "ascii");
lastI = i2 + 1;
inBase64 = true;
}
} else {
if (!base64IMAPChars[buf[i2]]) {
if (i2 == lastI && buf[i2] == minusChar) {
res += "&";
} else {
var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i2), "ascii").replace(/,/g, "/");
res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
}
if (buf[i2] != minusChar)
i2--;
lastI = i2 + 1;
inBase64 = false;
base64Accum = "";
}
}
}
if (!inBase64) {
res += this.iconv.decode(buf.slice(lastI), "ascii");
} else {
var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii").replace(/,/g, "/");
var canBeDecoded = b64str.length - b64str.length % 8;
base64Accum = b64str.slice(canBeDecoded);
b64str = b64str.slice(0, canBeDecoded);
res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
}
this.inBase64 = inBase64;
this.base64Accum = base64Accum;
return res;
};
Utf7IMAPDecoder.prototype.end = function() {
var res = "";
if (this.inBase64 && this.base64Accum.length > 0)
res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be");
this.inBase64 = false;
this.base64Accum = "";
return res;
};
}
});
var require_sbcs_codec2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-codec.js"(exports2) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports2._sbcs = SBCSCodec;
function SBCSCodec(codecOptions, iconv) {
if (!codecOptions)
throw new Error("SBCS codec is called without the data.");
if (!codecOptions.chars || codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256)
throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)");
if (codecOptions.chars.length === 128) {
var asciiString = "";
for (var i = 0; i < 128; i++)
asciiString += String.fromCharCode(i);
codecOptions.chars = asciiString + codecOptions.chars;
}
this.decodeBuf = Buffer2.from(codecOptions.chars, "ucs2");
var encodeBuf = Buffer2.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));
for (var i = 0; i < codecOptions.chars.length; i++)
encodeBuf[codecOptions.chars.charCodeAt(i)] = i;
this.encodeBuf = encodeBuf;
}
SBCSCodec.prototype.encoder = SBCSEncoder;
SBCSCodec.prototype.decoder = SBCSDecoder;
function SBCSEncoder(options, codec) {
this.encodeBuf = codec.encodeBuf;
}
SBCSEncoder.prototype.write = function(str) {
var buf = Buffer2.alloc(str.length);
for (var i = 0; i < str.length; i++)
buf[i] = this.encodeBuf[str.charCodeAt(i)];
return buf;
};
SBCSEncoder.prototype.end = function() {
};
function SBCSDecoder(options, codec) {
this.decodeBuf = codec.decodeBuf;
}
SBCSDecoder.prototype.write = function(buf) {
var decodeBuf = this.decodeBuf;
var newBuf = Buffer2.alloc(buf.length * 2);
var idx1 = 0, idx2 = 0;
for (var i = 0; i < buf.length; i++) {
idx1 = buf[i] * 2;
idx2 = i * 2;
newBuf[idx2] = decodeBuf[idx1];
newBuf[idx2 + 1] = decodeBuf[idx1 + 1];
}
return newBuf.toString("ucs2");
};
SBCSDecoder.prototype.end = function() {
};
}
});
var require_sbcs_data2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-data.js"(exports2, module2) {
"use strict";
module2.exports = {
// Not supported by iconv, not sure why.
"10029": "maccenteuro",
"maccenteuro": {
"type": "_sbcs",
"chars": "\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"
},
"808": "cp808",
"ibm808": "cp808",
"cp808": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"
},
"mik": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"cp720": {
"type": "_sbcs",
"chars": "\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
// Aliases of generated encodings.
"ascii8bit": "ascii",
"usascii": "ascii",
"ansix34": "ascii",
"ansix341968": "ascii",
"ansix341986": "ascii",
"csascii": "ascii",
"cp367": "ascii",
"ibm367": "ascii",
"isoir6": "ascii",
"iso646us": "ascii",
"iso646irv": "ascii",
"us": "ascii",
"latin1": "iso88591",
"latin2": "iso88592",
"latin3": "iso88593",
"latin4": "iso88594",
"latin5": "iso88599",
"latin6": "iso885910",
"latin7": "iso885913",
"latin8": "iso885914",
"latin9": "iso885915",
"latin10": "iso885916",
"csisolatin1": "iso88591",
"csisolatin2": "iso88592",
"csisolatin3": "iso88593",
"csisolatin4": "iso88594",
"csisolatincyrillic": "iso88595",
"csisolatinarabic": "iso88596",
"csisolatingreek": "iso88597",
"csisolatinhebrew": "iso88598",
"csisolatin5": "iso88599",
"csisolatin6": "iso885910",
"l1": "iso88591",
"l2": "iso88592",
"l3": "iso88593",
"l4": "iso88594",
"l5": "iso88599",
"l6": "iso885910",
"l7": "iso885913",
"l8": "iso885914",
"l9": "iso885915",
"l10": "iso885916",
"isoir14": "iso646jp",
"isoir57": "iso646cn",
"isoir100": "iso88591",
"isoir101": "iso88592",
"isoir109": "iso88593",
"isoir110": "iso88594",
"isoir144": "iso88595",
"isoir127": "iso88596",
"isoir126": "iso88597",
"isoir138": "iso88598",
"isoir148": "iso88599",
"isoir157": "iso885910",
"isoir166": "tis620",
"isoir179": "iso885913",
"isoir199": "iso885914",
"isoir203": "iso885915",
"isoir226": "iso885916",
"cp819": "iso88591",
"ibm819": "iso88591",
"cyrillic": "iso88595",
"arabic": "iso88596",
"arabic8": "iso88596",
"ecma114": "iso88596",
"asmo708": "iso88596",
"greek": "iso88597",
"greek8": "iso88597",
"ecma118": "iso88597",
"elot928": "iso88597",
"hebrew": "iso88598",
"hebrew8": "iso88598",
"turkish": "iso88599",
"turkish8": "iso88599",
"thai": "iso885911",
"thai8": "iso885911",
"celtic": "iso885914",
"celtic8": "iso885914",
"isoceltic": "iso885914",
"tis6200": "tis620",
"tis62025291": "tis620",
"tis62025330": "tis620",
"10000": "macroman",
"10006": "macgreek",
"10007": "maccyrillic",
"10079": "maciceland",
"10081": "macturkish",
"cspc8codepage437": "cp437",
"cspc775baltic": "cp775",
"cspc850multilingual": "cp850",
"cspcp852": "cp852",
"cspc862latinhebrew": "cp862",
"cpgr": "cp869",
"msee": "cp1250",
"mscyrl": "cp1251",
"msansi": "cp1252",
"msgreek": "cp1253",
"msturk": "cp1254",
"mshebr": "cp1255",
"msarab": "cp1256",
"winbaltrim": "cp1257",
"cp20866": "koi8r",
"20866": "koi8r",
"ibm878": "koi8r",
"cskoi8r": "koi8r",
"cp21866": "koi8u",
"21866": "koi8u",
"ibm1168": "koi8u",
"strk10482002": "rk1048",
"tcvn5712": "tcvn",
"tcvn57121": "tcvn",
"gb198880": "iso646cn",
"cn": "iso646cn",
"csiso14jisc6220ro": "iso646jp",
"jisc62201969ro": "iso646jp",
"jp": "iso646jp",
"cshproman8": "hproman8",
"r8": "hproman8",
"roman8": "hproman8",
"xroman8": "hproman8",
"ibm1051": "hproman8",
"mac": "macintosh",
"csmacintosh": "macintosh"
};
}
});
var require_sbcs_data_generated2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-data-generated.js"(exports2, module2) {
"use strict";
module2.exports = {
"437": "cp437",
"737": "cp737",
"775": "cp775",
"850": "cp850",
"852": "cp852",
"855": "cp855",
"856": "cp856",
"857": "cp857",
"858": "cp858",
"860": "cp860",
"861": "cp861",
"862": "cp862",
"863": "cp863",
"864": "cp864",
"865": "cp865",
"866": "cp866",
"869": "cp869",
"874": "windows874",
"922": "cp922",
"1046": "cp1046",
"1124": "cp1124",
"1125": "cp1125",
"1129": "cp1129",
"1133": "cp1133",
"1161": "cp1161",
"1162": "cp1162",
"1163": "cp1163",
"1250": "windows1250",
"1251": "windows1251",
"1252": "windows1252",
"1253": "windows1253",
"1254": "windows1254",
"1255": "windows1255",
"1256": "windows1256",
"1257": "windows1257",
"1258": "windows1258",
"28591": "iso88591",
"28592": "iso88592",
"28593": "iso88593",
"28594": "iso88594",
"28595": "iso88595",
"28596": "iso88596",
"28597": "iso88597",
"28598": "iso88598",
"28599": "iso88599",
"28600": "iso885910",
"28601": "iso885911",
"28603": "iso885913",
"28604": "iso885914",
"28605": "iso885915",
"28606": "iso885916",
"windows874": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
},
"win874": "windows874",
"cp874": "windows874",
"windows1250": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
},
"win1250": "windows1250",
"cp1250": "windows1250",
"windows1251": {
"type": "_sbcs",
"chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
},
"win1251": "windows1251",
"cp1251": "windows1251",
"windows1252": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"win1252": "windows1252",
"cp1252": "windows1252",
"windows1253": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
},
"win1253": "windows1253",
"cp1253": "windows1253",
"windows1254": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
},
"win1254": "windows1254",
"cp1254": "windows1254",
"windows1255": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
},
"win1255": "windows1255",
"cp1255": "windows1255",
"windows1256": {
"type": "_sbcs",
"chars": "\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"
},
"win1256": "windows1256",
"cp1256": "windows1256",
"windows1257": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"
},
"win1257": "windows1257",
"cp1257": "windows1257",
"windows1258": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
},
"win1258": "windows1258",
"cp1258": "windows1258",
"iso88591": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"cp28591": "iso88591",
"iso88592": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
},
"cp28592": "iso88592",
"iso88593": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"
},
"cp28593": "iso88593",
"iso88594": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"
},
"cp28594": "iso88594",
"iso88595": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
},
"cp28595": "iso88595",
"iso88596": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
},
"cp28596": "iso88596",
"iso88597": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
},
"cp28597": "iso88597",
"iso88598": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
},
"cp28598": "iso88598",
"iso88599": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
},
"cp28599": "iso88599",
"iso885910": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"
},
"cp28600": "iso885910",
"iso885911": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
},
"cp28601": "iso885911",
"iso885913": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"
},
"cp28603": "iso885913",
"iso885914": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"
},
"cp28604": "iso885914",
"iso885915": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"cp28605": "iso885915",
"iso885916": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"
},
"cp28606": "iso885916",
"cp437": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm437": "cp437",
"csibm437": "cp437",
"cp737": {
"type": "_sbcs",
"chars": "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm737": "cp737",
"csibm737": "cp737",
"cp775": {
"type": "_sbcs",
"chars": "\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm775": "cp775",
"csibm775": "cp775",
"cp850": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm850": "cp850",
"csibm850": "cp850",
"cp852": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"
},
"ibm852": "cp852",
"csibm852": "cp852",
"cp855": {
"type": "_sbcs",
"chars": "\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"
},
"ibm855": "cp855",
"csibm855": "cp855",
"cp856": {
"type": "_sbcs",
"chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm856": "cp856",
"csibm856": "cp856",
"cp857": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm857": "cp857",
"csibm857": "cp857",
"cp858": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm858": "cp858",
"csibm858": "cp858",
"cp860": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm860": "cp860",
"csibm860": "cp860",
"cp861": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm861": "cp861",
"csibm861": "cp861",
"cp862": {
"type": "_sbcs",
"chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm862": "cp862",
"csibm862": "cp862",
"cp863": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm863": "cp863",
"csibm863": "cp863",
"cp864": {
"type": "_sbcs",
"chars": "\0\x07\b \n\v\f\r\x1B !\"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD"
},
"ibm864": "cp864",
"csibm864": "cp864",
"cp865": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm865": "cp865",
"csibm865": "cp865",
"cp866": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"
},
"ibm866": "cp866",
"csibm866": "cp866",
"cp869": {
"type": "_sbcs",
"chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"
},
"ibm869": "cp869",
"csibm869": "cp869",
"cp922": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"
},
"ibm922": "cp922",
"csibm922": "cp922",
"cp1046": {
"type": "_sbcs",
"chars": "\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"
},
"ibm1046": "cp1046",
"csibm1046": "cp1046",
"cp1124": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
},
"ibm1124": "cp1124",
"csibm1124": "cp1124",
"cp1125": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"
},
"ibm1125": "cp1125",
"csibm1125": "cp1125",
"cp1129": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
},
"ibm1129": "cp1129",
"csibm1129": "cp1129",
"cp1133": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"
},
"ibm1133": "cp1133",
"csibm1133": "cp1133",
"cp1161": {
"type": "_sbcs",
"chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"
},
"ibm1161": "cp1161",
"csibm1161": "cp1161",
"cp1162": {
"type": "_sbcs",
"chars": "\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
},
"ibm1162": "cp1162",
"csibm1162": "cp1162",
"cp1163": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
},
"ibm1163": "cp1163",
"csibm1163": "cp1163",
"maccroatian": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"
},
"maccyrillic": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
},
"macgreek": {
"type": "_sbcs",
"chars": "\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"
},
"maciceland": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"macroman": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"macromania": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"macthai": {
"type": "_sbcs",
"chars": "\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"
},
"macturkish": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"macukraine": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
},
"koi8r": {
"type": "_sbcs",
"chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
},
"koi8u": {
"type": "_sbcs",
"chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
},
"koi8ru": {
"type": "_sbcs",
"chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
},
"koi8t": {
"type": "_sbcs",
"chars": "\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
},
"armscii8": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"
},
"rk1048": {
"type": "_sbcs",
"chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
},
"tcvn": {
"type": "_sbcs",
"chars": "\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \n\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0"
},
"georgianacademy": {
"type": "_sbcs",
"chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"georgianps": {
"type": "_sbcs",
"chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"pt154": {
"type": "_sbcs",
"chars": "\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
},
"viscii": {
"type": "_sbcs",
"chars": "\0\u1EB2\u1EB4\u1EAA\x07\b \n\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE"
},
"iso646cn": {
"type": "_sbcs",
"chars": "\0\x07\b \n\v\f\r\x1B !\"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
},
"iso646jp": {
"type": "_sbcs",
"chars": "\0\x07\b \n\v\f\r\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
},
"hproman8": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"
},
"macintosh": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"ascii": {
"type": "_sbcs",
"chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
},
"tis620": {
"type": "_sbcs",
"chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
}
};
}
});
var require_dbcs_codec2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/dbcs-codec.js"(exports2) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports2._dbcs = DBCSCodec;
var UNASSIGNED = -1;
var GB18030_CODE = -2;
var SEQ_START = -10;
var NODE_START = -1e3;
var UNASSIGNED_NODE = new Array(256);
var DEF_CHAR = -1;
for (i = 0; i < 256; i++)
UNASSIGNED_NODE[i] = UNASSIGNED;
var i;
function DBCSCodec(codecOptions, iconv) {
this.encodingName = codecOptions.encodingName;
if (!codecOptions)
throw new Error("DBCS codec is called without the data.");
if (!codecOptions.table)
throw new Error("Encoding '" + this.encodingName + "' has no data.");
var mappingTable = codecOptions.table();
this.decodeTables = [];
this.decodeTables[0] = UNASSIGNED_NODE.slice(0);
this.decodeTableSeq = [];
for (var i2 = 0; i2 < mappingTable.length; i2++)
this._addDecodeChunk(mappingTable[i2]);
if (typeof codecOptions.gb18030 === "function") {
this.gb18030 = codecOptions.gb18030();
var commonThirdByteNodeIdx = this.decodeTables.length;
this.decodeTables.push(UNASSIGNED_NODE.slice(0));
var commonFourthByteNodeIdx = this.decodeTables.length;
this.decodeTables.push(UNASSIGNED_NODE.slice(0));
var firstByteNode = this.decodeTables[0];
for (var i2 = 129; i2 <= 254; i2++) {
var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i2]];
for (var j = 48; j <= 57; j++) {
if (secondByteNode[j] === UNASSIGNED) {
secondByteNode[j] = NODE_START - commonThirdByteNodeIdx;
} else if (secondByteNode[j] > NODE_START) {
throw new Error("gb18030 decode tables conflict at byte 2");
}
var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]];
for (var k = 129; k <= 254; k++) {
if (thirdByteNode[k] === UNASSIGNED) {
thirdByteNode[k] = NODE_START - commonFourthByteNodeIdx;
} else if (thirdByteNode[k] === NODE_START - commonFourthByteNodeIdx) {
continue;
} else if (thirdByteNode[k] > NODE_START) {
throw new Error("gb18030 decode tables conflict at byte 3");
}
var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k]];
for (var l = 48; l <= 57; l++) {
if (fourthByteNode[l] === UNASSIGNED)
fourthByteNode[l] = GB18030_CODE;
}
}
}
}
}
this.defaultCharUnicode = iconv.defaultCharUnicode;
this.encodeTable = [];
this.encodeTableSeq = [];
var skipEncodeChars = {};
if (codecOptions.encodeSkipVals)
for (var i2 = 0; i2 < codecOptions.encodeSkipVals.length; i2++) {
var val = codecOptions.encodeSkipVals[i2];
if (typeof val === "number")
skipEncodeChars[val] = true;
else
for (var j = val.from; j <= val.to; j++)
skipEncodeChars[j] = true;
}
this._fillEncodeTable(0, 0, skipEncodeChars);
if (codecOptions.encodeAdd) {
for (var uChar in codecOptions.encodeAdd)
if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))
this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
}
this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]["?"];
if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);
}
DBCSCodec.prototype.encoder = DBCSEncoder;
DBCSCodec.prototype.decoder = DBCSDecoder;
DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
var bytes = [];
for (; addr > 0; addr >>>= 8)
bytes.push(addr & 255);
if (bytes.length == 0)
bytes.push(0);
var node = this.decodeTables[0];
for (var i2 = bytes.length - 1; i2 > 0; i2--) {
var val = node[bytes[i2]];
if (val == UNASSIGNED) {
node[bytes[i2]] = NODE_START - this.decodeTables.length;
this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
} else if (val <= NODE_START) {
node = this.decodeTables[NODE_START - val];
} else
throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
}
return node;
};
DBCSCodec.prototype._addDecodeChunk = function(chunk) {
var curAddr = parseInt(chunk[0], 16);
var writeTable = this._getDecodeTrieNode(curAddr);
curAddr = curAddr & 255;
for (var k = 1; k < chunk.length; k++) {
var part = chunk[k];
if (typeof part === "string") {
for (var l = 0; l < part.length; ) {
var code = part.charCodeAt(l++);
if (55296 <= code && code < 56320) {
var codeTrail = part.charCodeAt(l++);
if (56320 <= codeTrail && codeTrail < 57344)
writeTable[curAddr++] = 65536 + (code - 55296) * 1024 + (codeTrail - 56320);
else
throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]);
} else if (4080 < code && code <= 4095) {
var len = 4095 - code + 2;
var seq = [];
for (var m = 0; m < len; m++)
seq.push(part.charCodeAt(l++));
writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
this.decodeTableSeq.push(seq);
} else
writeTable[curAddr++] = code;
}
} else if (typeof part === "number") {
var charCode = writeTable[curAddr - 1] + 1;
for (var l = 0; l < part; l++)
writeTable[curAddr++] = charCode++;
} else
throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]);
}
if (curAddr > 255)
throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr);
};
DBCSCodec.prototype._getEncodeBucket = function(uCode) {
var high = uCode >> 8;
if (this.encodeTable[high] === void 0)
this.encodeTable[high] = UNASSIGNED_NODE.slice(0);
return this.encodeTable[high];
};
DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
var bucket = this._getEncodeBucket(uCode);
var low = uCode & 255;
if (bucket[low] <= SEQ_START)
this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode;
else if (bucket[low] == UNASSIGNED)
bucket[low] = dbcsCode;
};
DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
var uCode = seq[0];
var bucket = this._getEncodeBucket(uCode);
var low = uCode & 255;
var node;
if (bucket[low] <= SEQ_START) {
node = this.encodeTableSeq[SEQ_START - bucket[low]];
} else {
node = {};
if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low];
bucket[low] = SEQ_START - this.encodeTableSeq.length;
this.encodeTableSeq.push(node);
}
for (var j = 1; j < seq.length - 1; j++) {
var oldVal = node[uCode];
if (typeof oldVal === "object")
node = oldVal;
else {
node = node[uCode] = {};
if (oldVal !== void 0)
node[DEF_CHAR] = oldVal;
}
}
uCode = seq[seq.length - 1];
node[uCode] = dbcsCode;
};
DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
var node = this.decodeTables[nodeIdx];
var hasValues = false;
var subNodeEmpty = {};
for (var i2 = 0; i2 < 256; i2++) {
var uCode = node[i2];
var mbCode = prefix + i2;
if (skipEncodeChars[mbCode])
continue;
if (uCode >= 0) {
this._setEncodeChar(uCode, mbCode);
hasValues = true;
} else if (uCode <= NODE_START) {
var subNodeIdx = NODE_START - uCode;
if (!subNodeEmpty[subNodeIdx]) {
var newPrefix = mbCode << 8 >>> 0;
if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars))
hasValues = true;
else
subNodeEmpty[subNodeIdx] = true;
}
} else if (uCode <= SEQ_START) {
this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
hasValues = true;
}
}
return hasValues;
};
function DBCSEncoder(options, codec) {
this.leadSurrogate = -1;
this.seqObj = void 0;
this.encodeTable = codec.encodeTable;
this.encodeTableSeq = codec.encodeTableSeq;
this.defaultCharSingleByte = codec.defCharSB;
this.gb18030 = codec.gb18030;
}
DBCSEncoder.prototype.write = function(str) {
var newBuf = Buffer2.alloc(str.length * (this.gb18030 ? 4 : 3)), leadSurrogate = this.leadSurrogate, seqObj = this.seqObj, nextChar = -1, i2 = 0, j = 0;
while (true) {
if (nextChar === -1) {
if (i2 == str.length) break;
var uCode = str.charCodeAt(i2++);
} else {
var uCode = nextChar;
nextChar = -1;
}
if (55296 <= uCode && uCode < 57344) {
if (uCode < 56320) {
if (leadSurrogate === -1) {
leadSurrogate = uCode;
continue;
} else {
leadSurrogate = uCode;
uCode = UNASSIGNED;
}
} else {
if (leadSurrogate !== -1) {
uCode = 65536 + (leadSurrogate - 55296) * 1024 + (uCode - 56320);
leadSurrogate = -1;
} else {
uCode = UNASSIGNED;
}
}
} else if (leadSurrogate !== -1) {
nextChar = uCode;
uCode = UNASSIGNED;
leadSurrogate = -1;
}
var dbcsCode = UNASSIGNED;
if (seqObj !== void 0 && uCode != UNASSIGNED) {
var resCode = seqObj[uCode];
if (typeof resCode === "object") {
seqObj = resCode;
continue;
} else if (typeof resCode == "number") {
dbcsCode = resCode;
} else if (resCode == void 0) {
resCode = seqObj[DEF_CHAR];
if (resCode !== void 0) {
dbcsCode = resCode;
nextChar = uCode;
} else {
}
}
seqObj = void 0;
} else if (uCode >= 0) {
var subtable = this.encodeTable[uCode >> 8];
if (subtable !== void 0)
dbcsCode = subtable[uCode & 255];
if (dbcsCode <= SEQ_START) {
seqObj = this.encodeTableSeq[SEQ_START - dbcsCode];
continue;
}
if (dbcsCode == UNASSIGNED && this.gb18030) {
var idx = findIdx(this.gb18030.uChars, uCode);
if (idx != -1) {
var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
newBuf[j++] = 129 + Math.floor(dbcsCode / 12600);
dbcsCode = dbcsCode % 12600;
newBuf[j++] = 48 + Math.floor(dbcsCode / 1260);
dbcsCode = dbcsCode % 1260;
newBuf[j++] = 129 + Math.floor(dbcsCode / 10);
dbcsCode = dbcsCode % 10;
newBuf[j++] = 48 + dbcsCode;
continue;
}
}
}
if (dbcsCode === UNASSIGNED)
dbcsCode = this.defaultCharSingleByte;
if (dbcsCode < 256) {
newBuf[j++] = dbcsCode;
} else if (dbcsCode < 65536) {
newBuf[j++] = dbcsCode >> 8;
newBuf[j++] = dbcsCode & 255;
} else if (dbcsCode < 16777216) {
newBuf[j++] = dbcsCode >> 16;
newBuf[j++] = dbcsCode >> 8 & 255;
newBuf[j++] = dbcsCode & 255;
} else {
newBuf[j++] = dbcsCode >>> 24;
newBuf[j++] = dbcsCode >>> 16 & 255;
newBuf[j++] = dbcsCode >>> 8 & 255;
newBuf[j++] = dbcsCode & 255;
}
}
this.seqObj = seqObj;
this.leadSurrogate = leadSurrogate;
return newBuf.slice(0, j);
};
DBCSEncoder.prototype.end = function() {
if (this.leadSurrogate === -1 && this.seqObj === void 0)
return;
var newBuf = Buffer2.alloc(10), j = 0;
if (this.seqObj) {
var dbcsCode = this.seqObj[DEF_CHAR];
if (dbcsCode !== void 0) {
if (dbcsCode < 256) {
newBuf[j++] = dbcsCode;
} else {
newBuf[j++] = dbcsCode >> 8;
newBuf[j++] = dbcsCode & 255;
}
} else {
}
this.seqObj = void 0;
}
if (this.leadSurrogate !== -1) {
newBuf[j++] = this.defaultCharSingleByte;
this.leadSurrogate = -1;
}
return newBuf.slice(0, j);
};
DBCSEncoder.prototype.findIdx = findIdx;
function DBCSDecoder(options, codec) {
this.nodeIdx = 0;
this.prevBytes = [];
this.decodeTables = codec.decodeTables;
this.decodeTableSeq = codec.decodeTableSeq;
this.defaultCharUnicode = codec.defaultCharUnicode;
this.gb18030 = codec.gb18030;
}
DBCSDecoder.prototype.write = function(buf) {
var newBuf = Buffer2.alloc(buf.length * 2), nodeIdx = this.nodeIdx, prevBytes = this.prevBytes, prevOffset = this.prevBytes.length, seqStart = -this.prevBytes.length, uCode;
for (var i2 = 0, j = 0; i2 < buf.length; i2++) {
var curByte = i2 >= 0 ? buf[i2] : prevBytes[i2 + prevOffset];
var uCode = this.decodeTables[nodeIdx][curByte];
if (uCode >= 0) {
} else if (uCode === UNASSIGNED) {
uCode = this.defaultCharUnicode.charCodeAt(0);
i2 = seqStart;
} else if (uCode === GB18030_CODE) {
if (i2 >= 3) {
var ptr = (buf[i2 - 3] - 129) * 12600 + (buf[i2 - 2] - 48) * 1260 + (buf[i2 - 1] - 129) * 10 + (curByte - 48);
} else {
var ptr = (prevBytes[i2 - 3 + prevOffset] - 129) * 12600 + ((i2 - 2 >= 0 ? buf[i2 - 2] : prevBytes[i2 - 2 + prevOffset]) - 48) * 1260 + ((i2 - 1 >= 0 ? buf[i2 - 1] : prevBytes[i2 - 1 + prevOffset]) - 129) * 10 + (curByte - 48);
}
var idx = findIdx(this.gb18030.gbChars, ptr);
uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
} else if (uCode <= NODE_START) {
nodeIdx = NODE_START - uCode;
continue;
} else if (uCode <= SEQ_START) {
var seq = this.decodeTableSeq[SEQ_START - uCode];
for (var k = 0; k < seq.length - 1; k++) {
uCode = seq[k];
newBuf[j++] = uCode & 255;
newBuf[j++] = uCode >> 8;
}
uCode = seq[seq.length - 1];
} else
throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
if (uCode >= 65536) {
uCode -= 65536;
var uCodeLead = 55296 | uCode >> 10;
newBuf[j++] = uCodeLead & 255;
newBuf[j++] = uCodeLead >> 8;
uCode = 56320 | uCode & 1023;
}
newBuf[j++] = uCode & 255;
newBuf[j++] = uCode >> 8;
nodeIdx = 0;
seqStart = i2 + 1;
}
this.nodeIdx = nodeIdx;
this.prevBytes = seqStart >= 0 ? Array.prototype.slice.call(buf, seqStart) : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf));
return newBuf.slice(0, j).toString("ucs2");
};
DBCSDecoder.prototype.end = function() {
var ret = "";
while (this.prevBytes.length > 0) {
ret += this.defaultCharUnicode;
var bytesArr = this.prevBytes.slice(1);
this.prevBytes = [];
this.nodeIdx = 0;
if (bytesArr.length > 0)
ret += this.write(bytesArr);
}
this.prevBytes = [];
this.nodeIdx = 0;
return ret;
};
function findIdx(table, val) {
if (table[0] > val)
return -1;
var l = 0, r = table.length;
while (l < r - 1) {
var mid = l + (r - l + 1 >> 1);
if (table[mid] <= val)
l = mid;
else
r = mid;
}
return l;
}
}
});
var require_shiftjis2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/tables/shiftjis.json"(exports2, module2) {
module2.exports = [
["0", "\0", 128],
["a1", "\uFF61", 62],
["8140", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7"],
["8180", "\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
["81b8", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
["81c8", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
["81da", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
["81f0", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
["81fc", "\u25EF"],
["824f", "\uFF10", 9],
["8260", "\uFF21", 25],
["8281", "\uFF41", 25],
["829f", "\u3041", 82],
["8340", "\u30A1", 62],
["8380", "\u30E0", 22],
["839f", "\u0391", 16, "\u03A3", 6],
["83bf", "\u03B1", 16, "\u03C3", 6],
["8440", "\u0410", 5, "\u0401\u0416", 25],
["8470", "\u0430", 5, "\u0451\u0436", 7],
["8480", "\u043E", 17],
["849f", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
["8740", "\u2460", 19, "\u2160", 9],
["875f", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
["877e", "\u337B"],
["8780", "\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
["889f", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
["8940", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],
["8980", "\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
["8a40", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],
["8a80", "\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
["8b40", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],
["8b80", "\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
["8c40", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],
["8c80", "\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
["8d40", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],
["8d80", "\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
["8e40", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],
["8e80", "\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
["8f40", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],
["8f80", "\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
["9040", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],
["9080", "\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
["9140", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],
["9180", "\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
["9240", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],
["9280", "\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
["9340", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],
["9380", "\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
["9440", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],
["9480", "\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
["9540", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],
["9580", "\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
["9640", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],
["9680", "\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
["9740", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],
["9780", "\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
["9840", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
["989f", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
["9940", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],
["9980", "\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
["9a40", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],
["9a80", "\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
["9b40", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],
["9b80", "\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
["9c40", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],
["9c80", "\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
["9d40", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],
["9d80", "\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
["9e40", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],
["9e80", "\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
["9f40", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],
["9f80", "\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
["e040", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],
["e080", "\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
["e140", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],
["e180", "\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
["e240", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],
["e280", "\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
["e340", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],
["e380", "\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
["e440", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],
["e480", "\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
["e540", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],
["e580", "\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
["e640", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],
["e680", "\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
["e740", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],
["e780", "\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
["e840", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],
["e880", "\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
["e940", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],
["e980", "\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
["ea40", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],
["ea80", "\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],
["ed40", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],
["ed80", "\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
["ee40", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],
["ee80", "\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
["eeef", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
["f040", "\uE000", 62],
["f080", "\uE03F", 124],
["f140", "\uE0BC", 62],
["f180", "\uE0FB", 124],
["f240", "\uE178", 62],
["f280", "\uE1B7", 124],
["f340", "\uE234", 62],
["f380", "\uE273", 124],
["f440", "\uE2F0", 62],
["f480", "\uE32F", 124],
["f540", "\uE3AC", 62],
["f580", "\uE3EB", 124],
["f640", "\uE468", 62],
["f680", "\uE4A7", 124],
["f740", "\uE524", 62],
["f780", "\uE563", 124],
["f840", "\uE5E0", 62],
["f880", "\uE61F", 124],
["f940", "\uE69C"],
["fa40", "\u2170", 9, "\u2160", 9, "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],
["fa80", "\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],
["fb40", "\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],
["fb80", "\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],
["fc40", "\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]
];
}
});
var require_eucjp2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/tables/eucjp.json"(exports2, module2) {
module2.exports = [
["0", "\0", 127],
["8ea1", "\uFF61", 62],
["a1a1", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],
["a2a1", "\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
["a2ba", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
["a2ca", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
["a2dc", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
["a2f2", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
["a2fe", "\u25EF"],
["a3b0", "\uFF10", 9],
["a3c1", "\uFF21", 25],
["a3e1", "\uFF41", 25],
["a4a1", "\u3041", 82],
["a5a1", "\u30A1", 85],
["a6a1", "\u0391", 16, "\u03A3", 6],
["a6c1", "\u03B1", 16, "\u03C3", 6],
["a7a1", "\u0410", 5, "\u0401\u0416", 25],
["a7d1", "\u0430", 5, "\u0451\u0436", 25],
["a8a1", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
["ada1", "\u2460", 19, "\u2160", 9],
["adc0", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
["addf", "\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
["b0a1", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
["b1a1", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],
["b2a1", "\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
["b3a1", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],
["b4a1", "\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
["b5a1", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],
["b6a1", "\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
["b7a1", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],
["b8a1", "\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
["b9a1", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],
["baa1", "\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
["bba1", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],
["bca1", "\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
["bda1", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],
["bea1", "\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
["bfa1", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],
["c0a1", "\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
["c1a1", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],
["c2a1", "\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
["c3a1", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],
["c4a1", "\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
["c5a1", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],
["c6a1", "\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
["c7a1", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],
["c8a1", "\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
["c9a1", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],
["caa1", "\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
["cba1", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],
["cca1", "\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
["cda1", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],
["cea1", "\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
["cfa1", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
["d0a1", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
["d1a1", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],
["d2a1", "\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
["d3a1", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],
["d4a1", "\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
["d5a1", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],
["d6a1", "\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
["d7a1", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],
["d8a1", "\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
["d9a1", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],
["daa1", "\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
["dba1", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],
["dca1", "\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
["dda1", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],
["dea1", "\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
["dfa1", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],
["e0a1", "\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
["e1a1", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],
["e2a1", "\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
["e3a1", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],
["e4a1", "\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
["e5a1", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],
["e6a1", "\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
["e7a1", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],
["e8a1", "\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
["e9a1", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],
["eaa1", "\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
["eba1", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],
["eca1", "\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
["eda1", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],
["eea1", "\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
["efa1", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],
["f0a1", "\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
["f1a1", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],
["f2a1", "\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
["f3a1", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],
["f4a1", "\u582F\u69C7\u9059\u7464\u51DC\u7199"],
["f9a1", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],
["faa1", "\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
["fba1", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],
["fca1", "\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
["fcf1", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
["8fa2af", "\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],
["8fa2c2", "\xA1\xA6\xBF"],
["8fa2eb", "\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],
["8fa6e1", "\u0386\u0388\u0389\u038A\u03AA"],
["8fa6e7", "\u038C"],
["8fa6e9", "\u038E\u03AB"],
["8fa6ec", "\u038F"],
["8fa6f1", "\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],
["8fa7c2", "\u0402", 10, "\u040E\u040F"],
["8fa7f2", "\u0452", 10, "\u045E\u045F"],
["8fa9a1", "\xC6\u0110"],
["8fa9a4", "\u0126"],
["8fa9a6", "\u0132"],
["8fa9a8", "\u0141\u013F"],
["8fa9ab", "\u014A\xD8\u0152"],
["8fa9af", "\u0166\xDE"],
["8fa9c1", "\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],
["8faaa1", "\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],
["8faaba", "\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],
["8faba1", "\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],
["8fabbd", "\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],
["8fabc5", "\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],
["8fb0a1", "\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],
["8fb1a1", "\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],
["8fb2a1", "\u5092\u5093\u5094\u5096\u509B\u509C\u509E", 4, "\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],
["8fb3a1", "\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],
["8fb4a1", "\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],
["8fb5a1", "\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],
["8fb6a1", "\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D", 5, "\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4", 4, "\u56F1\u56EB\u56ED"],
["8fb7a1", "\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D", 4, "\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],
["8fb8a1", "\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],
["8fb9a1", "\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],
["8fbaa1", "\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6", 4, "\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],
["8fbba1", "\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],
["8fbca1", "\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A", 4, "\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],
["8fbda1", "\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0", 4, "\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],
["8fbea1", "\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110", 4, "\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],
["8fbfa1", "\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],
["8fc0a1", "\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],
["8fc1a1", "\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],
["8fc2a1", "\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],
["8fc3a1", "\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E", 4, "\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],
["8fc4a1", "\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],
["8fc5a1", "\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],
["8fc6a1", "\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],
["8fc7a1", "\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],
["8fc8a1", "\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],
["8fc9a1", "\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094", 4, "\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103", 4, "\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],
["8fcaa1", "\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],
["8fcba1", "\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],
["8fcca1", "\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428", 9, "\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],
["8fcda1", "\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579", 5, "\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],
["8fcea1", "\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2", 6, "\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],
["8fcfa1", "\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],
["8fd0a1", "\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],
["8fd1a1", "\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],
["8fd2a1", "\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59", 5],
["8fd3a1", "\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],
["8fd4a1", "\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2", 4, "\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],
["8fd5a1", "\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],
["8fd6a1", "\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],
["8fd7a1", "\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],
["8fd8a1", "\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],
["8fd9a1", "\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F", 4, "\u8556\u8559\u855C", 6, "\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],
["8fdaa1", "\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660", 4, "\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],
["8fdba1", "\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783", 6, "\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],
["8fdca1", "\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA", 4, "\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],
["8fdda1", "\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4", 4, "\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],
["8fdea1", "\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42", 4, "\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],
["8fdfa1", "\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],
["8fe0a1", "\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],
["8fe1a1", "\u8F43\u8F47\u8F4F\u8F51", 4, "\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],
["8fe2a1", "\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],
["8fe3a1", "\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC", 5, "\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275", 4, "\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],
["8fe4a1", "\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF", 4, "\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],
["8fe5a1", "\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9", 4, "\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],
["8fe6a1", "\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],
["8fe7a1", "\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],
["8fe8a1", "\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931", 4, "\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],
["8fe9a1", "\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF", 4],
["8feaa1", "\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A", 4, "\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],
["8feba1", "\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26", 4, "\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],
["8feca1", "\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],
["8feda1", "\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43", 4, "\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D", 4, "\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]
];
}
});
var require_cp9362 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/tables/cp936.json"(exports2, module2) {
module2.exports = [
["0", "\0", 127, "\u20AC"],
["8140", "\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A", 5, "\u4E72\u4E74", 9, "\u4E7F", 6, "\u4E87\u4E8A"],
["8180", "\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02", 6, "\u4F0B\u4F0C\u4F12", 4, "\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E", 4, "\u4F44\u4F45\u4F47", 5, "\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],
["8240", "\u4FA4\u4FAB\u4FAD\u4FB0", 4, "\u4FB6", 8, "\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2", 4, "\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF", 11],
["8280", "\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F", 10, "\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050", 4, "\u5056\u5057\u5058\u5059\u505B\u505D", 7, "\u5066", 5, "\u506D", 8, "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E", 20, "\u50A4\u50A6\u50AA\u50AB\u50AD", 4, "\u50B3", 6, "\u50BC"],
["8340", "\u50BD", 17, "\u50D0", 5, "\u50D7\u50D8\u50D9\u50DB", 10, "\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6", 4, "\u50FC", 9, "\u5108"],
["8380", "\u5109\u510A\u510C", 5, "\u5113", 13, "\u5122", 28, "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D", 4, "\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6", 4, "\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2", 5],
["8440", "\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5", 5, "\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244", 5, "\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],
["8480", "\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273", 9, "\u527E\u5280\u5283", 4, "\u5289", 6, "\u5291\u5292\u5294", 6, "\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4", 9, "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9", 5, "\u52E0\u52E1\u52E2\u52E3\u52E5", 10, "\u52F1", 7, "\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],
["8540", "\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F", 9, "\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],
["8580", "\u5390", 4, "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF", 6, "\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3", 4, "\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D", 4, "\u5463\u5465\u5467\u5469", 7, "\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],
["8640", "\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0", 4, "\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4", 5, "\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A", 4, "\u5512\u5513\u5515", 5, "\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],
["8680", "\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B", 4, "\u5551\u5552\u5553\u5554\u5557", 4, "\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F", 5, "\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0", 6, "\u55A8", 8, "\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF", 4, "\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7", 4, "\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8", 4, "\u55FF\u5602\u5603\u5604\u5605"],
["8740", "\u5606\u5607\u560A\u560B\u560D\u5610", 7, "\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640", 11, "\u564F", 4, "\u5655\u5656\u565A\u565B\u565D", 4],
["8780", "\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D", 7, "\u5687", 6, "\u5690\u5691\u5692\u5694", 14, "\u56A4", 10, "\u56B0", 6, "\u56B8\u56B9\u56BA\u56BB\u56BD", 12, "\u56CB", 8, "\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5", 5, "\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B", 6],
["8840", "\u5712", 9, "\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734", 4, "\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752", 4, "\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],
["8880", "\u5781\u5787\u5788\u5789\u578A\u578D", 4, "\u5794", 6, "\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9", 8, "\u57C4", 6, "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5", 7, "\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825", 4, "\u582B", 4, "\u5831\u5832\u5833\u5834\u5836", 7],
["8940", "\u583E", 5, "\u5845", 6, "\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859", 4, "\u585F", 5, "\u5866", 4, "\u586D", 16, "\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],
["8980", "\u588D", 4, "\u5894", 4, "\u589B\u589C\u589D\u58A0", 7, "\u58AA", 17, "\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6", 10, "\u58D2\u58D3\u58D4\u58D6", 13, "\u58E5", 5, "\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA", 7, "\u5903\u5905\u5906\u5908", 4, "\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],
["8a40", "\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B", 4, "\u5961\u5963\u5964\u5966", 12, "\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],
["8a80", "\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3", 5, "\u59BA\u59BC\u59BD\u59BF", 6, "\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE", 4, "\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED", 11, "\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A", 6, "\u5A33\u5A35\u5A37", 4, "\u5A3D\u5A3E\u5A3F\u5A41", 4, "\u5A47\u5A48\u5A4B", 9, "\u5A56\u5A57\u5A58\u5A59\u5A5B", 5],
["8b40", "\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B", 8, "\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80", 17, "\u5A93", 6, "\u5A9C", 13, "\u5AAB\u5AAC"],
["8b80", "\u5AAD", 4, "\u5AB4\u5AB6\u5AB7\u5AB9", 4, "\u5ABF\u5AC0\u5AC3", 5, "\u5ACA\u5ACB\u5ACD", 4, "\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC", 4, "\u5AF2", 22, "\u5B0A", 11, "\u5B18", 25, "\u5B33\u5B35\u5B36\u5B38", 7, "\u5B41", 6],
["8c40", "\u5B48", 7, "\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],
["8c80", "\u5BD1\u5BD4", 8, "\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9", 4, "\u5BEF\u5BF1", 6, "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67", 6, "\u5C70\u5C72", 6, "\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83", 4, "\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D", 4, "\u5CA4", 4],
["8d40", "\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5", 5, "\u5CCC", 5, "\u5CD3", 5, "\u5CDA", 6, "\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1", 9, "\u5CFC", 4],
["8d80", "\u5D01\u5D04\u5D05\u5D08", 5, "\u5D0F", 4, "\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F", 4, "\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F", 4, "\u5D35", 7, "\u5D3F", 7, "\u5D48\u5D49\u5D4D", 10, "\u5D59\u5D5A\u5D5C\u5D5E", 10, "\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75", 12, "\u5D83", 21, "\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],
["8e40", "\u5DA1", 21, "\u5DB8", 12, "\u5DC6", 6, "\u5DCE", 12, "\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],
["8e80", "\u5DF0\u5DF5\u5DF6\u5DF8", 4, "\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E", 7, "\u5E28", 4, "\u5E2F\u5E30\u5E32", 4, "\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46", 5, "\u5E4D", 6, "\u5E56", 4, "\u5E5C\u5E5D\u5E5F\u5E60\u5E63", 14, "\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8", 4, "\u5EAE", 4, "\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF", 6],
["8f40", "\u5EC6\u5EC7\u5EC8\u5ECB", 5, "\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC", 11, "\u5EE9\u5EEB", 8, "\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],
["8f80", "\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32", 6, "\u5F3B\u5F3D\u5F3E\u5F3F\u5F41", 14, "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2", 5, "\u5FA9\u5FAB\u5FAC\u5FAF", 5, "\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE", 4, "\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],
["9040", "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030", 4, "\u6036", 4, "\u603D\u603E\u6040\u6044", 6, "\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],
["9080", "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD", 7, "\u60C7\u60C8\u60C9\u60CC", 4, "\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1", 4, "\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB", 4, "\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110", 4, "\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C", 18, "\u6140", 6],
["9140", "\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156", 6, "\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169", 6, "\u6171\u6172\u6173\u6174\u6176\u6178", 18, "\u618C\u618D\u618F", 4, "\u6195"],
["9180", "\u6196", 6, "\u619E", 8, "\u61AA\u61AB\u61AD", 9, "\u61B8", 5, "\u61BF\u61C0\u61C1\u61C3", 4, "\u61C9\u61CC", 4, "\u61D3\u61D5", 16, "\u61E7", 13, "\u61F6", 8, "\u6200", 5, "\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238", 4, "\u6242\u6244\u6245\u6246\u624A"],
["9240", "\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C", 6, "\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B", 5, "\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],
["9280", "\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333", 5, "\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356", 7, "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399", 6, "\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],
["9340", "\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7", 6, "\u63DF\u63E2\u63E4", 4, "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406", 4, "\u640D\u640E\u6411\u6412\u6415", 5, "\u641D\u641F\u6422\u6423\u6424"],
["9380", "\u6425\u6427\u6428\u6429\u642B\u642E", 5, "\u6435", 4, "\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B", 6, "\u6453\u6455\u6456\u6457\u6459", 4, "\u645F", 7, "\u6468\u646A\u646B\u646C\u646E", 9, "\u647B", 6, "\u6483\u6486\u6488", 8, "\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F", 4, "\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6", 6, "\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],
["9440", "\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7", 24, "\u6501", 7, "\u650A", 7, "\u6513", 4, "\u6519", 8],
["9480", "\u6522\u6523\u6524\u6526", 4, "\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540", 4, "\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578", 14, "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1", 7, "\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8", 7, "\u65E1\u65E3\u65E4\u65EA\u65EB"],
["9540", "\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB", 4, "\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637", 4, "\u663D\u663F\u6640\u6642\u6644", 6, "\u664D\u664E\u6650\u6651\u6658"],
["9580", "\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669", 4, "\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698", 4, "\u669E", 8, "\u66A9", 4, "\u66AF", 4, "\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF", 25, "\u66DA\u66DE", 7, "\u66E7\u66E8\u66EA", 5, "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],
["9640", "\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720", 5, "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757", 4, "\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],
["9680", "\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9", 7, "\u67C2\u67C5", 9, "\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5", 7, "\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818", 4, "\u681E\u681F\u6820\u6822", 6, "\u682B", 6, "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856", 5],
["9740", "\u685C\u685D\u685E\u685F\u686A\u686C", 7, "\u6875\u6878", 8, "\u6882\u6884\u6887", 7, "\u6890\u6891\u6892\u6894\u6895\u6896\u6898", 9, "\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],
["9780", "\u68B9", 6, "\u68C1\u68C3", 5, "\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB", 4, "\u68E1\u68E2\u68E4", 9, "\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906", 4, "\u690C\u690F\u6911\u6913", 11, "\u6921\u6922\u6923\u6925", 7, "\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943", 16, "\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],
["9840", "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972", 4, "\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E", 5, "\u6996\u6997\u6999\u699A\u699D", 9, "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],
["9880", "\u69BE\u69BF\u69C0\u69C2", 7, "\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5", 5, "\u69DC\u69DD\u69DE\u69E1", 11, "\u69EE\u69EF\u69F0\u69F1\u69F3", 9, "\u69FE\u6A00", 9, "\u6A0B", 11, "\u6A19", 5, "\u6A20\u6A22", 5, "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36", 6, "\u6A3F", 4, "\u6A45\u6A46\u6A48", 7, "\u6A51", 6, "\u6A5A"],
["9940", "\u6A5C", 4, "\u6A62\u6A63\u6A64\u6A66", 10, "\u6A72", 6, "\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85", 8, "\u6A8F\u6A92", 4, "\u6A98", 7, "\u6AA1", 5],
["9980", "\u6AA7\u6AA8\u6AAA\u6AAD", 114, "\u6B25\u6B26\u6B28", 6],
["9a40", "\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D", 11, "\u6B5A", 7, "\u6B68\u6B69\u6B6B", 13, "\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],
["9a80", "\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C", 4, "\u6BA2", 7, "\u6BAB", 7, "\u6BB6\u6BB8", 6, "\u6BC0\u6BC3\u6BC4\u6BC6", 4, "\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC", 4, "\u6BE2", 7, "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE", 6, "\u6C08", 4, "\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B", 4, "\u6C51\u6C52\u6C53\u6C56\u6C58"],
["9b40", "\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B", 4, "\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],
["9b80", "\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F", 5, "\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D", 4, "\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96", 4, "\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9", 5, "\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],
["9c40", "\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD", 7, "\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],
["9c80", "\u6E36\u6E37\u6E39\u6E3B", 7, "\u6E45", 7, "\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60", 10, "\u6E6C\u6E6D\u6E6F", 14, "\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A", 4, "\u6E91", 6, "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA", 5],
["9d40", "\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA", 7, "\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A", 4, "\u6F10\u6F11\u6F12\u6F16", 9, "\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37", 6, "\u6F3F\u6F40\u6F41\u6F42"],
["9d80", "\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E", 9, "\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67", 5, "\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D", 6, "\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F", 12, "\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2", 4, "\u6FA8", 10, "\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA", 5, "\u6FC1\u6FC3", 5, "\u6FCA", 6, "\u6FD3", 10, "\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],
["9e40", "\u6FE6", 7, "\u6FF0", 32, "\u7012", 7, "\u701C", 6, "\u7024", 6],
["9e80", "\u702B", 9, "\u7036\u7037\u7038\u703A", 17, "\u704D\u704E\u7050", 13, "\u705F", 11, "\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E", 12, "\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB", 12, "\u70DA"],
["9f40", "\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0", 6, "\u70F8\u70FA\u70FB\u70FC\u70FE", 10, "\u710B", 4, "\u7111\u7112\u7114\u7117\u711B", 10, "\u7127", 7, "\u7132\u7133\u7134"],
["9f80", "\u7135\u7137", 13, "\u7146\u7147\u7148\u7149\u714B\u714D\u714F", 12, "\u715D\u715F", 4, "\u7165\u7169", 4, "\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E", 5, "\u7185", 4, "\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A", 4, "\u71A1", 6, "\u71A9\u71AA\u71AB\u71AD", 5, "\u71B4\u71B6\u71B7\u71B8\u71BA", 8, "\u71C4", 9, "\u71CF", 4],
["a040", "\u71D6", 9, "\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8", 5, "\u71EF", 9, "\u71FA", 11, "\u7207", 19],
["a080", "\u721B\u721C\u721E", 9, "\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240", 6, "\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285", 4, "\u728C\u728E\u7290\u7291\u7293", 11, "\u72A0", 11, "\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA", 6, "\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],
["a1a1", "\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 7, "\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],
["a2a1", "\u2170", 9],
["a2b1", "\u2488", 19, "\u2474", 19, "\u2460", 9],
["a2e5", "\u3220", 9],
["a2f1", "\u2160", 11],
["a3a1", "\uFF01\uFF02\uFF03\uFFE5\uFF05", 88, "\uFFE3"],
["a4a1", "\u3041", 82],
["a5a1", "\u30A1", 85],
["a6a1", "\u0391", 16, "\u03A3", 6],
["a6c1", "\u03B1", 16, "\u03C3", 6],
["a6e0", "\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],
["a6ee", "\uFE3B\uFE3C\uFE37\uFE38\uFE31"],
["a6f4", "\uFE33\uFE34"],
["a7a1", "\u0410", 5, "\u0401\u0416", 25],
["a7d1", "\u0430", 5, "\u0451\u0436", 25],
["a840", "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550", 35, "\u2581", 6],
["a880", "\u2588", 7, "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],
["a8a1", "\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],
["a8bd", "\u0144\u0148"],
["a8c0", "\u0261"],
["a8c5", "\u3105", 36],
["a940", "\u3021", 8, "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],
["a959", "\u2121\u3231"],
["a95c", "\u2010"],
["a960", "\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49", 9, "\uFE54\uFE55\uFE56\uFE57\uFE59", 8],
["a980", "\uFE62", 4, "\uFE68\uFE69\uFE6A\uFE6B"],
["a996", "\u3007"],
["a9a4", "\u2500", 75],
["aa40", "\u72DC\u72DD\u72DF\u72E2", 5, "\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304", 5, "\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340", 8],
["aa80", "\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358", 7, "\u7361", 10, "\u736E\u7370\u7371"],
["ab40", "\u7372", 11, "\u737F", 4, "\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3", 5, "\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3", 4],
["ab80", "\u73CB\u73CC\u73CE\u73D2", 6, "\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3", 4],
["ac40", "\u73F8", 10, "\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411", 8, "\u741C", 5, "\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437", 4, "\u743D\u743E\u743F\u7440\u7442", 11],
["ac80", "\u744E", 6, "\u7456\u7458\u745D\u7460", 12, "\u746E\u746F\u7471", 4, "\u7478\u7479\u747A"],
["ad40", "\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491", 10, "\u749D\u749F", 7, "\u74AA", 15, "\u74BB", 12],
["ad80", "\u74C8", 9, "\u74D3", 8, "\u74DD\u74DF\u74E1\u74E5\u74E7", 6, "\u74F0\u74F1\u74F2"],
["ae40", "\u74F3\u74F5\u74F8", 6, "\u7500\u7501\u7502\u7503\u7505", 7, "\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520", 4, "\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],
["ae80", "\u755D", 7, "\u7567\u7568\u7569\u756B", 6, "\u7573\u7575\u7576\u7577\u757A", 4, "\u7580\u7581\u7582\u7584\u7585\u7587"],
["af40", "\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6", 4, "\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],
["af80", "\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],
["b040", "\u7645", 6, "\u764E", 5, "\u7655\u7657", 4, "\u765D\u765F\u7660\u7661\u7662\u7664", 6, "\u766C\u766D\u766E\u7670", 7, "\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],
["b080", "\u769C", 7, "\u76A5", 8, "\u76AF\u76B0\u76B3\u76B5", 9, "\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],
["b140", "\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0", 4, "\u76E6", 7, "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E", 10, "\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],
["b180", "\u772C\u772E\u7730", 4, "\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748", 7, "\u7752", 7, "\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],
["b240", "\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D", 11, "\u777A\u777B\u777C\u7781\u7782\u7783\u7786", 5, "\u778F\u7790\u7793", 11, "\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6", 4],
["b280", "\u77BC\u77BE\u77C0", 12, "\u77CE", 8, "\u77D8\u77D9\u77DA\u77DD", 4, "\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],
["b340", "\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803", 5, "\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],
["b380", "\u785B\u785C\u785E", 11, "\u786F", 7, "\u7878\u7879\u787A\u787B\u787D", 6, "\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],
["b440", "\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8", 7, "\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA", 9],
["b480", "\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED", 4, "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB", 5, "\u7902\u7903\u7904\u7906", 6, "\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],
["b540", "\u790D", 5, "\u7914", 9, "\u791F", 4, "\u7925", 14, "\u7935", 4, "\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A", 8, "\u7954\u7955\u7958\u7959\u7961\u7963"],
["b580", "\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970", 6, "\u7979\u797B", 4, "\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],
["b640", "\u7993", 6, "\u799B", 11, "\u79A8", 10, "\u79B4", 4, "\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9", 5, "\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],
["b680", "\u79EC\u79EE\u79F1", 6, "\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F", 4, "\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],
["b740", "\u7A1D\u7A1F\u7A21\u7A22\u7A24", 14, "\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40", 5, "\u7A47", 9, "\u7A52", 4, "\u7A58", 16],
["b780", "\u7A69", 6, "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],
["b840", "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE", 4, "\u7AB4", 10, "\u7AC0", 10, "\u7ACC", 9, "\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7", 5, "\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],
["b880", "\u7AF4", 4, "\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],
["b940", "\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F", 5, "\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63", 10, "\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86", 6, "\u7B8E\u7B8F"],
["b980", "\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9", 7, "\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],
["ba40", "\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4", 4, "\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2", 4, "\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF", 7, "\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10", 5, "\u7C17\u7C18\u7C19"],
["ba80", "\u7C1A", 4, "\u7C20", 5, "\u7C28\u7C29\u7C2B", 12, "\u7C39", 5, "\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],
["bb40", "\u7C43", 9, "\u7C4E", 36, "\u7C75", 5, "\u7C7E", 9],
["bb80", "\u7C88\u7C8A", 6, "\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4", 4, "\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],
["bc40", "\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE", 6, "\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1", 6, "\u7CE9", 5, "\u7CF0", 7, "\u7CF9\u7CFA\u7CFC", 13, "\u7D0B", 5],
["bc80", "\u7D11", 14, "\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30", 6, "\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],
["bd40", "\u7D37", 54, "\u7D6F", 7],
["bd80", "\u7D78", 32, "\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],
["be40", "\u7D99", 12, "\u7DA7", 6, "\u7DAF", 42],
["be80", "\u7DDA", 32, "\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],
["bf40", "\u7DFB", 62],
["bf80", "\u7E3A\u7E3C", 4, "\u7E42", 4, "\u7E48", 21, "\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],
["c040", "\u7E5E", 35, "\u7E83", 23, "\u7E9C\u7E9D\u7E9E"],
["c080", "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B", 6, "\u7F43\u7F46", 9, "\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],
["c140", "\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63", 4, "\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82", 7, "\u7F8B\u7F8D\u7F8F", 4, "\u7F95", 4, "\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8", 6, "\u7FB1"],
["c180", "\u7FB3", 4, "\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF", 4, "\u7FD6\u7FD7\u7FD9", 5, "\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],
["c240", "\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4", 6, "\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B", 5, "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],
["c280", "\u8059\u805B", 13, "\u806B", 5, "\u8072", 11, "\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],
["c340", "\u807E\u8081\u8082\u8085\u8088\u808A\u808D", 5, "\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7", 4, "\u80CF", 6, "\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],
["c380", "\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F", 12, "\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139", 4, "\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],
["c440", "\u8140", 5, "\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B", 4, "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183", 4, "\u8189\u818B\u818C\u818D\u818E\u8190\u8192", 5, "\u8199\u819A\u819E", 4, "\u81A4\u81A5"],
["c480", "\u81A7\u81A9\u81AB", 7, "\u81B4", 5, "\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD", 6, "\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],
["c540", "\u81D4", 14, "\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE", 4, "\u81F5", 5, "\u81FD\u81FF\u8203\u8207", 4, "\u820E\u820F\u8211\u8213\u8215", 5, "\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],
["c580", "\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250", 7, "\u8259\u825B\u825C\u825D\u825E\u8260", 7, "\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],
["c640", "\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],
["c680", "\u82FA\u82FC", 4, "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D", 9, "\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],
["c740", "\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A", 4, "\u8353\u8355", 4, "\u835D\u8362\u8370", 6, "\u8379\u837A\u837E", 6, "\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1", 6, "\u83AC\u83AD\u83AE"],
["c780", "\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],
["c840", "\u83EE\u83EF\u83F3", 4, "\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412", 5, "\u8419\u841A\u841B\u841E", 5, "\u8429", 7, "\u8432", 5, "\u8439\u843A\u843B\u843E", 7, "\u8447\u8448\u8449"],
["c880", "\u844A", 6, "\u8452", 4, "\u8458\u845D\u845E\u845F\u8460\u8462\u8464", 4, "\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],
["c940", "\u847D", 4, "\u8483\u8484\u8485\u8486\u848A\u848D\u848F", 7, "\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2", 12, "\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],
["c980", "\u84D8", 4, "\u84DE\u84E1\u84E2\u84E4\u84E7", 4, "\u84ED\u84EE\u84EF\u84F1", 10, "\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],
["ca40", "\u8503", 8, "\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522", 8, "\u852D", 9, "\u853E", 4, "\u8544\u8545\u8546\u8547\u854B", 10],
["ca80", "\u8557\u8558\u855A\u855B\u855C\u855D\u855F", 4, "\u8565\u8566\u8567\u8569", 8, "\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],
["cb40", "\u8582\u8583\u8586\u8588", 6, "\u8590", 10, "\u859D", 6, "\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1", 5, "\u85B8\u85BA", 6, "\u85C2", 6, "\u85CA", 4, "\u85D1\u85D2"],
["cb80", "\u85D4\u85D6", 5, "\u85DD", 6, "\u85E5\u85E6\u85E7\u85E8\u85EA", 14, "\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],
["cc40", "\u85F9\u85FA\u85FC\u85FD\u85FE\u8600", 4, "\u8606", 10, "\u8612\u8613\u8614\u8615\u8617", 15, "\u8628\u862A", 13, "\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],
["cc80", "\u8641", 11, "\u8652\u8653\u8655", 4, "\u865B\u865C\u865D\u865F\u8660\u8661\u8663", 7, "\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],
["cd40", "\u866D\u866F\u8670\u8672", 6, "\u8683", 6, "\u868E", 4, "\u8694\u8696", 5, "\u869E", 4, "\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB", 4, "\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],
["cd80", "\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],
["ce40", "\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740", 6, "\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A", 5, "\u8761\u8762\u8766", 7, "\u876F\u8771\u8772\u8773\u8775"],
["ce80", "\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E", 4, "\u8794\u8795\u8796\u8798", 6, "\u87A0", 4, "\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],
["cf40", "\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1", 4, "\u87C7\u87C8\u87C9\u87CC", 4, "\u87D4", 6, "\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF", 9],
["cf80", "\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804", 5, "\u880B", 7, "\u8814\u8817\u8818\u8819\u881A\u881C", 4, "\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],
["d040", "\u8824", 13, "\u8833", 5, "\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846", 5, "\u884E", 5, "\u8855\u8856\u8858\u885A", 6, "\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],
["d080", "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897", 4, "\u889D", 4, "\u88A3\u88A5", 5, "\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],
["d140", "\u88AC\u88AE\u88AF\u88B0\u88B2", 4, "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA", 4, "\u88E0\u88E1\u88E6\u88E7\u88E9", 6, "\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903", 5],
["d180", "\u8909\u890B", 4, "\u8911\u8914", 4, "\u891C", 4, "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],
["d240", "\u8938", 8, "\u8942\u8943\u8945", 24, "\u8960", 5, "\u8967", 19, "\u897C"],
["d280", "\u897D\u897E\u8980\u8982\u8984\u8985\u8987", 26, "\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],
["d340", "\u89A2", 30, "\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4", 6],
["d380", "\u89FB", 4, "\u8A01", 5, "\u8A08", 21, "\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],
["d440", "\u8A1E", 31, "\u8A3F", 8, "\u8A49", 21],
["d480", "\u8A5F", 25, "\u8A7A", 6, "\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],
["d540", "\u8A81", 7, "\u8A8B", 7, "\u8A94", 46],
["d580", "\u8AC3", 32, "\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],
["d640", "\u8AE4", 34, "\u8B08", 27],
["d680", "\u8B24\u8B25\u8B27", 30, "\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],
["d740", "\u8B46", 31, "\u8B67", 4, "\u8B6D", 25],
["d780", "\u8B87", 24, "\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],
["d840", "\u8C38", 8, "\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D", 7, "\u8C56\u8C57\u8C58\u8C59\u8C5B", 5, "\u8C63", 6, "\u8C6C", 6, "\u8C74\u8C75\u8C76\u8C77\u8C7B", 6, "\u8C83\u8C84\u8C86\u8C87"],
["d880", "\u8C88\u8C8B\u8C8D", 6, "\u8C95\u8C96\u8C97\u8C99", 20, "\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],
["d940", "\u8CAE", 62],
["d980", "\u8CED", 32, "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],
["da40", "\u8D0E", 14, "\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78", 8, "\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C", 4, "\u8D92\u8D93\u8D95", 9, "\u8DA0\u8DA1"],
["da80", "\u8DA2\u8DA4", 12, "\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],
["db40", "\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE", 6, "\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15", 7, "\u8E20\u8E21\u8E24", 4, "\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],
["db80", "\u8E3F\u8E43\u8E45\u8E46\u8E4C", 4, "\u8E53", 5, "\u8E5A", 11, "\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],
["dc40", "\u8E73\u8E75\u8E77", 4, "\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88", 6, "\u8E91\u8E92\u8E93\u8E95", 6, "\u8E9D\u8E9F", 11, "\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3", 6, "\u8EBB", 7],
["dc80", "\u8EC3", 10, "\u8ECF", 21, "\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],
["dd40", "\u8EE5", 62],
["dd80", "\u8F24", 32, "\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],
["de40", "\u8F45", 32, "\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],
["de80", "\u8FC9", 4, "\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],
["df40", "\u9019\u901C\u9023\u9024\u9025\u9027", 5, "\u9030", 4, "\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048", 4, "\u904E\u9054\u9055\u9056\u9059\u905A\u905C", 5, "\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F", 4, "\u9076", 6, "\u907E\u9081"],
["df80", "\u9084\u9085\u9086\u9087\u9089\u908A\u908C", 4, "\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],
["e040", "\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105", 19, "\u911A\u911B\u911C"],
["e080", "\u911D\u911F\u9120\u9121\u9124", 10, "\u9130\u9132", 6, "\u913A", 8, "\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],
["e140", "\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180", 4, "\u9186\u9188\u918A\u918E\u918F\u9193", 6, "\u919C", 5, "\u91A4", 5, "\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],
["e180", "\u91BC", 10, "\u91C8\u91CB\u91D0\u91D2", 9, "\u91DD", 8, "\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],
["e240", "\u91E6", 62],
["e280", "\u9225", 32, "\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967", 5, "\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],
["e340", "\u9246", 45, "\u9275", 16],
["e380", "\u9286", 7, "\u928F", 24, "\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],
["e440", "\u92A8", 5, "\u92AF", 24, "\u92C9", 31],
["e480", "\u92E9", 32, "\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],
["e540", "\u930A", 51, "\u933F", 10],
["e580", "\u934A", 31, "\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],
["e640", "\u936C", 34, "\u9390", 27],
["e680", "\u93AC", 29, "\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],
["e740", "\u93CE", 7, "\u93D7", 54],
["e780", "\u940E", 32, "\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21", 6, "\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F", 4, "\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],
["e840", "\u942F", 14, "\u943F", 43, "\u946C\u946D\u946E\u946F"],
["e880", "\u9470", 20, "\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],
["e940", "\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577", 7, "\u9580", 42],
["e980", "\u95AB", 32, "\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],
["ea40", "\u95CC", 27, "\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623", 6, "\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],
["ea80", "\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D", 4, "\u9673\u9678", 12, "\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],
["eb40", "\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D", 9, "\u96A8", 7, "\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6", 9, "\u96E1", 6, "\u96EB"],
["eb80", "\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717", 4, "\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],
["ec40", "\u9721", 8, "\u972B\u972C\u972E\u972F\u9731\u9733", 4, "\u973A\u973B\u973C\u973D\u973F", 18, "\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A", 7],
["ec80", "\u9772\u9775\u9777", 4, "\u977D", 7, "\u9786", 4, "\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799", 4, "\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],
["ed40", "\u979E\u979F\u97A1\u97A2\u97A4", 6, "\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5", 46],
["ed80", "\u97E4\u97E5\u97E8\u97EE", 4, "\u97F4\u97F7", 23, "\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],
["ee40", "\u980F", 62],
["ee80", "\u984E", 32, "\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6", 4, "\u94BC\u94BD\u94BF\u94C4\u94C8", 6, "\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],
["ef40", "\u986F", 5, "\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8", 37, "\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0", 4],
["ef80", "\u98E5\u98E6\u98E9", 30, "\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512", 4, "\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564", 8, "\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],
["f040", "\u9908", 4, "\u990E\u990F\u9911", 28, "\u992F", 26],
["f080", "\u994A", 9, "\u9956", 12, "\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28", 4, "\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66", 6, "\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],
["f140", "\u998C\u998E\u999A", 10, "\u99A6\u99A7\u99A9", 47],
["f180", "\u99D9", 32, "\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],
["f240", "\u99FA", 62],
["f280", "\u9A39", 32, "\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],
["f340", "\u9A5A", 17, "\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9", 6, "\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6", 4, "\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],
["f380", "\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0", 8, "\u9AFA\u9AFC", 6, "\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],
["f440", "\u9B07\u9B09", 5, "\u9B10\u9B11\u9B12\u9B14", 10, "\u9B20\u9B21\u9B22\u9B24", 10, "\u9B30\u9B31\u9B33", 7, "\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55", 5],
["f480", "\u9B5B", 32, "\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],
["f540", "\u9B7C", 62],
["f580", "\u9BBB", 32, "\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],
["f640", "\u9BDC", 62],
["f680", "\u9C1B", 32, "\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85", 5, "\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E", 5, "\u9CA5", 4, "\u9CAB\u9CAD\u9CAE\u9CB0", 7, "\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],
["f740", "\u9C3C", 62],
["f780", "\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE", 4, "\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC", 4, "\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],
["f840", "\u9CE3", 62],
["f880", "\u9D22", 32],
["f940", "\u9D43", 62],
["f980", "\u9D82", 32],
["fa40", "\u9DA3", 62],
["fa80", "\u9DE2", 32],
["fb40", "\u9E03", 27, "\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74", 9, "\u9E80"],
["fb80", "\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C", 5, "\u9E94", 8, "\u9E9E\u9EA0", 5, "\u9EA7\u9EA8\u9EA9\u9EAA"],
["fc40", "\u9EAB", 8, "\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF", 4, "\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0", 8, "\u9EFA\u9EFD\u9EFF", 6],
["fc80", "\u9F06", 4, "\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A", 5, "\u9F21\u9F23", 8, "\u9F2D\u9F2E\u9F30\u9F31"],
["fd40", "\u9F32", 4, "\u9F38\u9F3A\u9F3C\u9F3F", 4, "\u9F45", 10, "\u9F52", 38],
["fd80", "\u9F79", 5, "\u9F81\u9F82\u9F8D", 11, "\u9F9C\u9F9D\u9F9E\u9FA1", 4, "\uF92C\uF979\uF995\uF9E7\uF9F1"],
["fe40", "\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]
];
}
});
var require_gbk_added2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/tables/gbk-added.json"(exports2, module2) {
module2.exports = [
["a140", "\uE4C6", 62],
["a180", "\uE505", 32],
["a240", "\uE526", 62],
["a280", "\uE565", 32],
["a2ab", "\uE766", 5],
["a2e3", "\u20AC\uE76D"],
["a2ef", "\uE76E\uE76F"],
["a2fd", "\uE770\uE771"],
["a340", "\uE586", 62],
["a380", "\uE5C5", 31, "\u3000"],
["a440", "\uE5E6", 62],
["a480", "\uE625", 32],
["a4f4", "\uE772", 10],
["a540", "\uE646", 62],
["a580", "\uE685", 32],
["a5f7", "\uE77D", 7],
["a640", "\uE6A6", 62],
["a680", "\uE6E5", 32],
["a6b9", "\uE785", 7],
["a6d9", "\uE78D", 6],
["a6ec", "\uE794\uE795"],
["a6f3", "\uE796"],
["a6f6", "\uE797", 8],
["a740", "\uE706", 62],
["a780", "\uE745", 32],
["a7c2", "\uE7A0", 14],
["a7f2", "\uE7AF", 12],
["a896", "\uE7BC", 10],
["a8bc", "\u1E3F"],
["a8bf", "\u01F9"],
["a8c1", "\uE7C9\uE7CA\uE7CB\uE7CC"],
["a8ea", "\uE7CD", 20],
["a958", "\uE7E2"],
["a95b", "\uE7E3"],
["a95d", "\uE7E4\uE7E5\uE7E6"],
["a989", "\u303E\u2FF0", 11],
["a997", "\uE7F4", 12],
["a9f0", "\uE801", 14],
["aaa1", "\uE000", 93],
["aba1", "\uE05E", 93],
["aca1", "\uE0BC", 93],
["ada1", "\uE11A", 93],
["aea1", "\uE178", 93],
["afa1", "\uE1D6", 93],
["d7fa", "\uE810", 4],
["f8a1", "\uE234", 93],
["f9a1", "\uE292", 93],
["faa1", "\uE2F0", 93],
["fba1", "\uE34E", 93],
["fca1", "\uE3AC", 93],
["fda1", "\uE40A", 93],
["fe50", "\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],
["fe80", "\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13", 6, "\u4DAE\uE864\uE468", 93],
["8135f437", "\uE7C7"]
];
}
});
var require_gb18030_ranges2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json"(exports2, module2) {
module2.exports = { uChars: [128, 165, 169, 178, 184, 216, 226, 235, 238, 244, 248, 251, 253, 258, 276, 284, 300, 325, 329, 334, 364, 463, 465, 467, 469, 471, 473, 475, 477, 506, 594, 610, 712, 716, 730, 930, 938, 962, 970, 1026, 1104, 1106, 8209, 8215, 8218, 8222, 8231, 8241, 8244, 8246, 8252, 8365, 8452, 8454, 8458, 8471, 8482, 8556, 8570, 8596, 8602, 8713, 8720, 8722, 8726, 8731, 8737, 8740, 8742, 8748, 8751, 8760, 8766, 8777, 8781, 8787, 8802, 8808, 8816, 8854, 8858, 8870, 8896, 8979, 9322, 9372, 9548, 9588, 9616, 9622, 9634, 9652, 9662, 9672, 9676, 9680, 9702, 9735, 9738, 9793, 9795, 11906, 11909, 11913, 11917, 11928, 11944, 11947, 11951, 11956, 11960, 11964, 11979, 12284, 12292, 12312, 12319, 12330, 12351, 12436, 12447, 12535, 12543, 12586, 12842, 12850, 12964, 13200, 13215, 13218, 13253, 13263, 13267, 13270, 13384, 13428, 13727, 13839, 13851, 14617, 14703, 14801, 14816, 14964, 15183, 15471, 15585, 16471, 16736, 17208, 17325, 17330, 17374, 17623, 17997, 18018, 18212, 18218, 18301, 18318, 18760, 18811, 18814, 18820, 18823, 18844, 18848, 18872, 19576, 19620, 19738, 19887, 40870, 59244, 59336, 59367, 59413, 59417, 59423, 59431, 59437, 59443, 59452, 59460, 59478, 59493, 63789, 63866, 63894, 63976, 63986, 64016, 64018, 64021, 64025, 64034, 64037, 64042, 65074, 65093, 65107, 65112, 65127, 65132, 65375, 65510, 65536], gbChars: [0, 36, 38, 45, 50, 81, 89, 95, 96, 100, 103, 104, 105, 109, 126, 133, 148, 172, 175, 179, 208, 306, 307, 308, 309, 310, 311, 312, 313, 341, 428, 443, 544, 545, 558, 741, 742, 749, 750, 805, 819, 820, 7922, 7924, 7925, 7927, 7934, 7943, 7944, 7945, 7950, 8062, 8148, 8149, 8152, 8164, 8174, 8236, 8240, 8262, 8264, 8374, 8380, 8381, 8384, 8388, 8390, 8392, 8393, 8394, 8396, 8401, 8406, 8416, 8419, 8424, 8437, 8439, 8445, 8482, 8485, 8496, 8521, 8603, 8936, 8946, 9046, 9050, 9063, 9066, 9076, 9092, 9100, 9108, 9111, 9113, 9131, 9162, 9164, 9218, 9219, 11329, 11331, 11334, 11336, 11346, 11361, 11363, 11366, 11370, 11372, 11375, 11389, 11682, 11686, 11687, 11692, 11694, 11714, 11716, 11723, 11725, 11730, 11736, 11982, 11989, 12102, 12336, 12348, 12350, 12384, 12393, 12395, 12397, 12510, 12553, 12851, 12962, 12973, 13738, 13823, 13919, 13933, 14080, 14298, 14585, 14698, 15583, 15847, 16318, 16434, 16438, 16481, 16729, 17102, 17122, 17315, 17320, 17402, 17418, 17859, 17909, 17911, 17915, 17916, 17936, 17939, 17961, 18664, 18703, 18814, 18962, 19043, 33469, 33470, 33471, 33484, 33485, 33490, 33497, 33501, 33505, 33513, 33520, 33536, 33550, 37845, 37921, 37948, 38029, 38038, 38064, 38065, 38066, 38069, 38075, 38076, 38078, 39108, 39109, 39113, 39114, 39115, 39116, 39265, 39394, 189e3] };
}
});
var require_cp9492 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/tables/cp949.json"(exports2, module2) {
module2.exports = [
["0", "\0", 127],
["8141", "\uAC02\uAC03\uAC05\uAC06\uAC0B", 4, "\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25", 6, "\uAC2E\uAC32\uAC33\uAC34"],
["8161", "\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41", 9, "\uAC4C\uAC4E", 5, "\uAC55"],
["8181", "\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D", 18, "\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B", 4, "\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95", 6, "\uAC9E\uACA2", 5, "\uACAB\uACAD\uACAE\uACB1", 6, "\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD", 7, "\uACD6\uACD8", 7, "\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7", 4, "\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07", 4, "\uAD0E\uAD10\uAD12\uAD13"],
["8241", "\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21", 7, "\uAD2A\uAD2B\uAD2E", 5],
["8261", "\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D", 6, "\uAD46\uAD48\uAD4A", 5, "\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],
["8281", "\uAD59", 7, "\uAD62\uAD64", 7, "\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83", 4, "\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91", 10, "\uAD9E", 5, "\uADA5", 17, "\uADB8", 7, "\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9", 6, "\uADD2\uADD4", 7, "\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5", 18],
["8341", "\uADFA\uADFB\uADFD\uADFE\uAE02", 5, "\uAE0A\uAE0C\uAE0E", 5, "\uAE15", 7],
["8361", "\uAE1D", 18, "\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],
["8381", "\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57", 4, "\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71", 6, "\uAE7A\uAE7E", 5, "\uAE86", 5, "\uAE8D", 46, "\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5", 6, "\uAECE\uAED2", 5, "\uAEDA\uAEDB\uAEDD", 8],
["8441", "\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE", 5, "\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD", 8],
["8461", "\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11", 18],
["8481", "\uAF24", 7, "\uAF2E\uAF2F\uAF31\uAF33\uAF35", 6, "\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A", 5, "\uAF51", 10, "\uAF5E", 5, "\uAF66", 18, "\uAF7A", 5, "\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89", 6, "\uAF92\uAF93\uAF94\uAF96", 5, "\uAF9D", 26, "\uAFBA\uAFBB\uAFBD\uAFBE"],
["8541", "\uAFBF\uAFC1", 5, "\uAFCA\uAFCC\uAFCF", 4, "\uAFD5", 6, "\uAFDD", 4],
["8561", "\uAFE2", 5, "\uAFEA", 5, "\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9", 6, "\uB002\uB003"],
["8581", "\uB005", 6, "\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015", 6, "\uB01E", 9, "\uB029", 26, "\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E", 29, "\uB07E\uB07F\uB081\uB082\uB083\uB085", 6, "\uB08E\uB090\uB092", 5, "\uB09B\uB09D\uB09E\uB0A3\uB0A4"],
["8641", "\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD", 6, "\uB0C6\uB0CA", 5, "\uB0D2"],
["8661", "\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9", 6, "\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6", 10],
["8681", "\uB0F1", 22, "\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E", 4, "\uB126\uB127\uB129\uB12A\uB12B\uB12D", 6, "\uB136\uB13A", 5, "\uB142\uB143\uB145\uB146\uB147\uB149", 6, "\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161", 22, "\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183", 4, "\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],
["8741", "\uB19E", 9, "\uB1A9", 15],
["8761", "\uB1B9", 18, "\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],
["8781", "\uB1D6", 5, "\uB1DE\uB1E0", 7, "\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1", 7, "\uB1FA\uB1FC\uB1FE", 5, "\uB206\uB207\uB209\uB20A\uB20D", 6, "\uB216\uB218\uB21A", 5, "\uB221", 18, "\uB235", 6, "\uB23D", 26, "\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261", 6, "\uB26A", 4],
["8841", "\uB26F", 4, "\uB276", 5, "\uB27D", 6, "\uB286\uB287\uB288\uB28A", 4],
["8861", "\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B", 4, "\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],
["8881", "\uB2B8", 15, "\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3", 4, "\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309", 6, "\uB312\uB316", 5, "\uB31D", 54, "\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],
["8941", "\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379", 6, "\uB382\uB386", 5, "\uB38D"],
["8961", "\uB38E\uB38F\uB391\uB392\uB393\uB395", 10, "\uB3A2", 5, "\uB3A9\uB3AA\uB3AB\uB3AD"],
["8981", "\uB3AE", 21, "\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9", 18, "\uB3FD", 18, "\uB411", 6, "\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421", 6, "\uB42A\uB42C", 7, "\uB435", 15],
["8a41", "\uB445", 10, "\uB452\uB453\uB455\uB456\uB457\uB459", 6, "\uB462\uB464\uB466"],
["8a61", "\uB467", 4, "\uB46D", 18, "\uB481\uB482"],
["8a81", "\uB483", 4, "\uB489", 19, "\uB49E", 5, "\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD", 7, "\uB4B6\uB4B8\uB4BA", 5, "\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9", 6, "\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6", 5, "\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7", 4, "\uB4EE\uB4F0\uB4F2", 5, "\uB4F9", 26, "\uB516\uB517\uB519\uB51A\uB51D"],
["8b41", "\uB51E", 5, "\uB526\uB52B", 4, "\uB532\uB533\uB535\uB536\uB537\uB539", 6, "\uB542\uB546"],
["8b61", "\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555", 6, "\uB55E\uB562", 8],
["8b81", "\uB56B", 52, "\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6", 4, "\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5", 6, "\uB5CE\uB5D2", 5, "\uB5D9", 18, "\uB5ED", 18],
["8c41", "\uB600", 15, "\uB612\uB613\uB615\uB616\uB617\uB619", 4],
["8c61", "\uB61E", 6, "\uB626", 5, "\uB62D", 6, "\uB635", 5],
["8c81", "\uB63B", 12, "\uB649", 26, "\uB665\uB666\uB667\uB669", 50, "\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5", 5, "\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2", 16],
["8d41", "\uB6C3", 16, "\uB6D5", 8],
["8d61", "\uB6DE", 17, "\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],
["8d81", "\uB6FB", 4, "\uB702\uB703\uB704\uB706", 33, "\uB72A\uB72B\uB72D\uB72E\uB731", 6, "\uB73A\uB73C", 7, "\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D", 6, "\uB756", 9, "\uB761\uB762\uB763\uB765\uB766\uB767\uB769", 6, "\uB772\uB774\uB776", 5, "\uB77E\uB77F\uB781\uB782\uB783\uB785", 6, "\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],
["8e41", "\uB79F\uB7A1", 6, "\uB7AA\uB7AE", 5, "\uB7B6\uB7B7\uB7B9", 8],
["8e61", "\uB7C2", 4, "\uB7C8\uB7CA", 19],
["8e81", "\uB7DE", 13, "\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5", 6, "\uB7FE\uB802", 4, "\uB80A\uB80B\uB80D\uB80E\uB80F\uB811", 6, "\uB81A\uB81C\uB81E", 5, "\uB826\uB827\uB829\uB82A\uB82B\uB82D", 6, "\uB836\uB83A", 5, "\uB841\uB842\uB843\uB845", 11, "\uB852\uB854", 7, "\uB85E\uB85F\uB861\uB862\uB863\uB865", 6, "\uB86E\uB870\uB872", 5, "\uB879\uB87A\uB87B\uB87D", 7],
["8f41", "\uB885", 7, "\uB88E", 17],
["8f61", "\uB8A0", 7, "\uB8A9", 6, "\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9", 4],
["8f81", "\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6", 5, "\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5", 7, "\uB8DE\uB8E0\uB8E2", 5, "\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1", 6, "\uB8FA\uB8FC\uB8FE", 5, "\uB905", 18, "\uB919", 6, "\uB921", 26, "\uB93E\uB93F\uB941\uB942\uB943\uB945", 6, "\uB94D\uB94E\uB950\uB952", 5],
["9041", "\uB95A\uB95B\uB95D\uB95E\uB95F\uB961", 6, "\uB96A\uB96C\uB96E", 5, "\uB976\uB977\uB979\uB97A\uB97B\uB97D"],
["9061", "\uB97E", 5, "\uB986\uB988\uB98B\uB98C\uB98F", 15],
["9081", "\uB99F", 12, "\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5", 6, "\uB9BE\uB9C0\uB9C2", 5, "\uB9CA\uB9CB\uB9CD\uB9D3", 4, "\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED", 6, "\uB9F6\uB9FB", 4, "\uBA02", 5, "\uBA09", 11, "\uBA16", 33, "\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],
["9141", "\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D", 6, "\uBA66\uBA6A", 5],
["9161", "\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79", 9, "\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D", 5],
["9181", "\uBA93", 20, "\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3", 4, "\uBABA\uBABC\uBABE", 5, "\uBAC5\uBAC6\uBAC7\uBAC9", 14, "\uBADA", 33, "\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05", 7, "\uBB0E\uBB10\uBB12", 5, "\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21", 6],
["9241", "\uBB28\uBB2A\uBB2C", 7, "\uBB37\uBB39\uBB3A\uBB3F", 4, "\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],
["9261", "\uBB53\uBB55\uBB56\uBB57\uBB59", 7, "\uBB62\uBB64", 7, "\uBB6D", 4],
["9281", "\uBB72", 21, "\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91", 18, "\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD", 6, "\uBBB5\uBBB6\uBBB8", 7, "\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9", 6, "\uBBD1\uBBD2\uBBD4", 35, "\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],
["9341", "\uBC03", 4, "\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],
["9361", "\uBC36\uBC37\uBC39", 6, "\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51", 8],
["9381", "\uBC5A\uBC5B\uBC5C\uBC5E", 37, "\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F", 4, "\uBC96\uBC98\uBC9B", 4, "\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9", 6, "\uBCB2\uBCB6", 5, "\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5", 7, "\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD", 22, "\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],
["9441", "\uBCFE", 5, "\uBD06\uBD08\uBD0A", 5, "\uBD11\uBD12\uBD13\uBD15", 8],
["9461", "\uBD1E", 5, "\uBD25", 6, "\uBD2D", 12],
["9481", "\uBD3A", 5, "\uBD41", 6, "\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51", 6, "\uBD5A", 9, "\uBD65\uBD66\uBD67\uBD69", 22, "\uBD82\uBD83\uBD85\uBD86\uBD8B", 4, "\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D", 6, "\uBDA5", 10, "\uBDB1", 6, "\uBDB9", 24],
["9541", "\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD", 11, "\uBDEA", 5, "\uBDF1"],
["9561", "\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9", 6, "\uBE01\uBE02\uBE04\uBE06", 5, "\uBE0E\uBE0F\uBE11\uBE12\uBE13"],
["9581", "\uBE15", 6, "\uBE1E\uBE20", 35, "\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F", 4, "\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B", 4, "\uBE72\uBE76", 4, "\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85", 6, "\uBE8E\uBE92", 5, "\uBE9A", 13, "\uBEA9", 14],
["9641", "\uBEB8", 23, "\uBED2\uBED3"],
["9661", "\uBED5\uBED6\uBED9", 6, "\uBEE1\uBEE2\uBEE6", 5, "\uBEED", 8],
["9681", "\uBEF6", 10, "\uBF02", 5, "\uBF0A", 13, "\uBF1A\uBF1E", 33, "\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49", 6, "\uBF52\uBF53\uBF54\uBF56", 44],
["9741", "\uBF83", 16, "\uBF95", 8],
["9761", "\uBF9E", 17, "\uBFB1", 7],
["9781", "\uBFB9", 11, "\uBFC6", 5, "\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5", 6, "\uBFDD\uBFDE\uBFE0\uBFE2", 89, "\uC03D\uC03E\uC03F"],
["9841", "\uC040", 16, "\uC052", 5, "\uC059\uC05A\uC05B"],
["9861", "\uC05D\uC05E\uC05F\uC061", 6, "\uC06A", 15],
["9881", "\uC07A", 21, "\uC092\uC093\uC095\uC096\uC097\uC099", 6, "\uC0A2\uC0A4\uC0A6", 5, "\uC0AE\uC0B1\uC0B2\uC0B7", 4, "\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1", 6, "\uC0DA\uC0DE", 5, "\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED", 6, "\uC0F6\uC0F8\uC0FA", 5, "\uC101\uC102\uC103\uC105\uC106\uC107\uC109", 6, "\uC111\uC112\uC113\uC114\uC116", 5, "\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],
["9941", "\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141", 6, "\uC14A\uC14E", 5, "\uC156\uC157"],
["9961", "\uC159\uC15A\uC15B\uC15D", 6, "\uC166\uC16A", 5, "\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],
["9981", "\uC17C", 8, "\uC186", 5, "\uC18F\uC191\uC192\uC193\uC195\uC197", 4, "\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1", 11, "\uC1BE", 5, "\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD", 6, "\uC1D5\uC1D6\uC1D9", 6, "\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9", 6, "\uC1F2\uC1F4", 7, "\uC1FE\uC1FF\uC201\uC202\uC203\uC205", 6, "\uC20E\uC210\uC212", 5, "\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],
["9a41", "\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235", 16],
["9a61", "\uC246\uC247\uC249", 6, "\uC252\uC253\uC255\uC256\uC257\uC259", 6, "\uC261\uC262\uC263\uC264\uC266"],
["9a81", "\uC267", 4, "\uC26E\uC26F\uC271\uC272\uC273\uC275", 6, "\uC27E\uC280\uC282", 5, "\uC28A", 5, "\uC291", 6, "\uC299\uC29A\uC29C\uC29E", 5, "\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE", 5, "\uC2B6\uC2B8\uC2BA", 33, "\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5", 5, "\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301", 6, "\uC30A\uC30B\uC30E\uC30F"],
["9b41", "\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D", 6, "\uC326\uC327\uC32A", 8],
["9b61", "\uC333", 17, "\uC346", 7],
["9b81", "\uC34E", 25, "\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373", 4, "\uC37A\uC37B\uC37E", 5, "\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D", 50, "\uC3C1", 22, "\uC3DA"],
["9c41", "\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3", 4, "\uC3EA\uC3EB\uC3EC\uC3EE", 5, "\uC3F6\uC3F7\uC3F9", 5],
["9c61", "\uC3FF", 8, "\uC409", 6, "\uC411", 9],
["9c81", "\uC41B", 8, "\uC425", 6, "\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435", 6, "\uC43E", 9, "\uC449", 26, "\uC466\uC467\uC469\uC46A\uC46B\uC46D", 6, "\uC476\uC477\uC478\uC47A", 5, "\uC481", 18, "\uC495", 6, "\uC49D", 12],
["9d41", "\uC4AA", 13, "\uC4B9\uC4BA\uC4BB\uC4BD", 8],
["9d61", "\uC4C6", 25],
["9d81", "\uC4E0", 8, "\uC4EA", 5, "\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502", 9, "\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515", 6, "\uC51D", 10, "\uC52A\uC52B\uC52D\uC52E\uC52F\uC531", 6, "\uC53A\uC53C\uC53E", 5, "\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569", 6, "\uC572\uC576", 5, "\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],
["9e41", "\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1", 7, "\uC5AA", 9, "\uC5B6"],
["9e61", "\uC5B7\uC5BA\uC5BF", 4, "\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9", 6, "\uC5E2\uC5E4\uC5E6\uC5E7"],
["9e81", "\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611", 6, "\uC61A\uC61D", 6, "\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649", 6, "\uC652\uC656", 5, "\uC65E\uC65F\uC661", 10, "\uC66D\uC66E\uC670\uC672", 5, "\uC67A\uC67B\uC67D\uC67E\uC67F\uC681", 6, "\uC68A\uC68C\uC68E", 5, "\uC696\uC697\uC699\uC69A\uC69B\uC69D", 6, "\uC6A6"],
["9f41", "\uC6A8\uC6AA", 5, "\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB", 4, "\uC6C2\uC6C4\uC6C6", 5, "\uC6CE"],
["9f61", "\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5", 6, "\uC6DE\uC6DF\uC6E2", 5, "\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],
["9f81", "\uC6F3", 4, "\uC6FA\uC6FB\uC6FC\uC6FE", 5, "\uC706\uC707\uC709\uC70A\uC70B\uC70D", 6, "\uC716\uC718\uC71A", 5, "\uC722\uC723\uC725\uC726\uC727\uC729", 6, "\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745", 4, "\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761", 6, "\uC769\uC76A\uC76C", 7, "\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B", 4, "\uC7A2\uC7A7", 4, "\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],
["a041", "\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2", 5, "\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1", 6, "\uC7D9\uC7DA\uC7DB\uC7DC"],
["a061", "\uC7DE", 5, "\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED", 13],
["a081", "\uC7FB", 4, "\uC802\uC803\uC805\uC806\uC807\uC809\uC80B", 4, "\uC812\uC814\uC817", 4, "\uC81E\uC81F\uC821\uC822\uC823\uC825", 6, "\uC82E\uC830\uC832", 5, "\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841", 6, "\uC84A\uC84B\uC84E", 5, "\uC855", 26, "\uC872\uC873\uC875\uC876\uC877\uC879\uC87B", 4, "\uC882\uC884\uC888\uC889\uC88A\uC88E", 5, "\uC895", 7, "\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],
["a141", "\uC8A5\uC8A6\uC8A7\uC8A9", 18, "\uC8BE\uC8BF\uC8C0\uC8C1"],
["a161", "\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD", 6, "\uC8D6\uC8D8\uC8DA", 5, "\uC8E2\uC8E3\uC8E5"],
["a181", "\uC8E6", 14, "\uC8F6", 5, "\uC8FE\uC8FF\uC901\uC902\uC903\uC907", 4, "\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 9, "\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],
["a241", "\uC910\uC912", 5, "\uC919", 18],
["a261", "\uC92D", 6, "\uC935", 18],
["a281", "\uC948", 7, "\uC952\uC953\uC955\uC956\uC957\uC959", 6, "\uC962\uC964", 7, "\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],
["a341", "\uC971\uC972\uC973\uC975", 6, "\uC97D", 10, "\uC98A\uC98B\uC98D\uC98E\uC98F"],
["a361", "\uC991", 6, "\uC99A\uC99C\uC99E", 16],
["a381", "\uC9AF", 16, "\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB", 4, "\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01", 58, "\uFFE6\uFF3D", 32, "\uFFE3"],
["a441", "\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2", 5, "\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],
["a461", "\uCA05\uCA06\uCA07\uCA0A\uCA0E", 5, "\uCA15\uCA16\uCA17\uCA19", 12],
["a481", "\uCA26\uCA27\uCA28\uCA2A", 28, "\u3131", 93],
["a541", "\uCA47", 4, "\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55", 6, "\uCA5E\uCA62", 5, "\uCA69\uCA6A"],
["a561", "\uCA6B", 17, "\uCA7E", 5, "\uCA85\uCA86"],
["a581", "\uCA87", 16, "\uCA99", 14, "\u2170", 9],
["a5b0", "\u2160", 9],
["a5c1", "\u0391", 16, "\u03A3", 6],
["a5e1", "\u03B1", 16, "\u03C3", 6],
["a641", "\uCAA8", 19, "\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],
["a661", "\uCAC6", 5, "\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA", 5, "\uCAE1", 6],
["a681", "\uCAE8\uCAE9\uCAEA\uCAEB\uCAED", 6, "\uCAF5", 18, "\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543", 7],
["a741", "\uCB0B", 4, "\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19", 6, "\uCB22", 7],
["a761", "\uCB2A", 22, "\uCB42\uCB43\uCB44"],
["a781", "\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51", 6, "\uCB5A\uCB5B\uCB5C\uCB5E", 5, "\uCB65", 7, "\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399", 9, "\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0", 9, "\u3380", 4, "\u33BA", 5, "\u3390", 4, "\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],
["a841", "\uCB6D", 10, "\uCB7A", 14],
["a861", "\uCB89", 18, "\uCB9D", 6],
["a881", "\uCBA4", 19, "\uCBB9", 11, "\xC6\xD0\xAA\u0126"],
["a8a6", "\u0132"],
["a8a8", "\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],
["a8b1", "\u3260", 27, "\u24D0", 25, "\u2460", 14, "\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],
["a941", "\uCBC5", 14, "\uCBD5", 10],
["a961", "\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA", 18],
["a981", "\uCBFD", 14, "\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15", 6, "\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200", 27, "\u249C", 25, "\u2474", 14, "\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],
["aa41", "\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31", 6, "\uCC3A\uCC3F", 4, "\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],
["aa61", "\uCC4F", 4, "\uCC56\uCC5A", 5, "\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69", 6, "\uCC71\uCC72"],
["aa81", "\uCC73\uCC74\uCC76", 29, "\u3041", 82],
["ab41", "\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1", 6, "\uCCAA\uCCAE", 5, "\uCCB6\uCCB7\uCCB9"],
["ab61", "\uCCBA\uCCBB\uCCBD", 6, "\uCCC6\uCCC8\uCCCA", 5, "\uCCD1\uCCD2\uCCD3\uCCD5", 5],
["ab81", "\uCCDB", 8, "\uCCE5", 6, "\uCCED\uCCEE\uCCEF\uCCF1", 12, "\u30A1", 85],
["ac41", "\uCCFE\uCCFF\uCD00\uCD02", 5, "\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11", 6, "\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],
["ac61", "\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D", 11, "\uCD3A", 4],
["ac81", "\uCD3F", 28, "\uCD5D\uCD5E\uCD5F\u0410", 5, "\u0401\u0416", 25],
["acd1", "\u0430", 5, "\u0451\u0436", 25],
["ad41", "\uCD61\uCD62\uCD63\uCD65", 6, "\uCD6E\uCD70\uCD72", 5, "\uCD79", 7],
["ad61", "\uCD81", 6, "\uCD89", 10, "\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],
["ad81", "\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA", 5, "\uCDB1", 18, "\uCDC5"],
["ae41", "\uCDC6", 5, "\uCDCD\uCDCE\uCDCF\uCDD1", 16],
["ae61", "\uCDE2", 5, "\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1", 6, "\uCDFA\uCDFC\uCDFE", 4],
["ae81", "\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D", 6, "\uCE15\uCE16\uCE17\uCE18\uCE1A", 5, "\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],
["af41", "\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36", 19],
["af61", "\uCE4A", 13, "\uCE5A\uCE5B\uCE5D\uCE5E\uCE62", 5, "\uCE6A\uCE6C"],
["af81", "\uCE6E", 5, "\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D", 6, "\uCE86\uCE88\uCE8A", 5, "\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],
["b041", "\uCE9A", 5, "\uCEA2\uCEA6", 5, "\uCEAE", 12],
["b061", "\uCEBB", 5, "\uCEC2", 19],
["b081", "\uCED6", 13, "\uCEE6\uCEE7\uCEE9\uCEEA\uCEED", 6, "\uCEF6\uCEFA", 5, "\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10", 7, "\uAC19", 4, "\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],
["b141", "\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09", 6, "\uCF12\uCF14\uCF16", 5, "\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],
["b161", "\uCF25", 6, "\uCF2E\uCF32", 5, "\uCF39", 11],
["b181", "\uCF45", 14, "\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D", 6, "\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],
["b241", "\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79", 6, "\uCF81\uCF82\uCF83\uCF84\uCF86", 5, "\uCF8D"],
["b261", "\uCF8E", 18, "\uCFA2", 5, "\uCFA9"],
["b281", "\uCFAA", 5, "\uCFB1", 18, "\uCFC5", 6, "\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],
["b341", "\uCFCC", 19, "\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],
["b361", "\uCFEA", 5, "\uCFF2\uCFF4\uCFF6", 5, "\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005", 5],
["b381", "\uD00B", 5, "\uD012", 5, "\uD019", 19, "\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB", 4, "\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],
["b441", "\uD02E", 5, "\uD036\uD037\uD039\uD03A\uD03B\uD03D", 6, "\uD046\uD048\uD04A", 5],
["b461", "\uD051\uD052\uD053\uD055\uD056\uD057\uD059", 6, "\uD061", 10, "\uD06E\uD06F"],
["b481", "\uD071\uD072\uD073\uD075", 6, "\uD07E\uD07F\uD080\uD082", 18, "\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB", 4, "\uB2F3\uB2F4\uB2F5\uB2F7", 4, "\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],
["b541", "\uD095", 14, "\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD", 5],
["b561", "\uD0B3\uD0B6\uD0B8\uD0BA", 5, "\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA", 5, "\uD0D2\uD0D6", 4],
["b581", "\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5", 6, "\uD0EE\uD0F2", 5, "\uD0F9", 11, "\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],
["b641", "\uD105", 7, "\uD10E", 17],
["b661", "\uD120", 15, "\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],
["b681", "\uD13F\uD142\uD146", 5, "\uD14E\uD14F\uD151\uD152\uD153\uD155", 6, "\uD15E\uD160\uD162", 5, "\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],
["b741", "\uD16E", 13, "\uD17D", 6, "\uD185\uD186\uD187\uD189\uD18A"],
["b761", "\uD18B", 20, "\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],
["b781", "\uD1A9", 6, "\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1", 14, "\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],
["b841", "\uD1D0", 7, "\uD1D9", 17],
["b861", "\uD1EB", 8, "\uD1F5\uD1F6\uD1F7\uD1F9", 13],
["b881", "\uD208\uD20A", 5, "\uD211", 24, "\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE", 4, "\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],
["b941", "\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235", 6, "\uD23E\uD240\uD242", 5, "\uD249\uD24A\uD24B\uD24C"],
["b961", "\uD24D", 14, "\uD25D", 6, "\uD265\uD266\uD267\uD268"],
["b981", "\uD269", 22, "\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14", 4, "\uBC1B", 4, "\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],
["ba41", "\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296", 5, "\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5", 6, "\uD2AD"],
["ba61", "\uD2AE\uD2AF\uD2B0\uD2B2", 5, "\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3", 4, "\uD2CA\uD2CC", 5],
["ba81", "\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD", 6, "\uD2E6", 9, "\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],
["bb41", "\uD2FB", 4, "\uD302\uD304\uD306", 5, "\uD30F\uD311\uD312\uD313\uD315\uD317", 4, "\uD31E\uD322\uD323"],
["bb61", "\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331", 6, "\uD33A\uD33E", 5, "\uD346\uD347\uD348\uD349"],
["bb81", "\uD34A", 31, "\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],
["bc41", "\uD36A", 17, "\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],
["bc61", "\uD388\uD389\uD38A\uD38B\uD38E\uD392", 5, "\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1", 6, "\uD3AA\uD3AC\uD3AE"],
["bc81", "\uD3AF", 4, "\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD", 6, "\uD3C6\uD3C7\uD3CA", 5, "\uD3D1", 5, "\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C", 4, "\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],
["bd41", "\uD3D7\uD3D9", 7, "\uD3E2\uD3E4", 7, "\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],
["bd61", "\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402", 5, "\uD409", 13],
["bd81", "\uD417", 5, "\uD41E", 25, "\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],
["be41", "\uD438", 7, "\uD441\uD442\uD443\uD445", 14],
["be61", "\uD454", 7, "\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465", 7, "\uD46E\uD470\uD471\uD472"],
["be81", "\uD473", 4, "\uD47A\uD47B\uD47D\uD47E\uD481\uD483", 4, "\uD48A\uD48C\uD48E", 5, "\uD495", 8, "\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4", 6, "\uC5CC\uC5CE"],
["bf41", "\uD49E", 10, "\uD4AA", 14],
["bf61", "\uD4B9", 18, "\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],
["bf81", "\uD4D6", 5, "\uD4DD\uD4DE\uD4E0", 7, "\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1", 6, "\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC", 5, "\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],
["c041", "\uD4FE", 5, "\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D", 6, "\uD516\uD518", 5],
["c061", "\uD51E", 25],
["c081", "\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545", 6, "\uD54E\uD550\uD552", 5, "\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751", 7, "\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],
["c141", "\uD564\uD566\uD567\uD56A\uD56C\uD56E", 5, "\uD576\uD577\uD579\uD57A\uD57B\uD57D", 6, "\uD586\uD58A\uD58B"],
["c161", "\uD58C\uD58D\uD58E\uD58F\uD591", 19, "\uD5A6\uD5A7"],
["c181", "\uD5A8", 31, "\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],
["c241", "\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3", 4, "\uD5DA\uD5DC\uD5DE", 5, "\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],
["c261", "\uD5EF", 4, "\uD5F6\uD5F8\uD5FA", 5, "\uD602\uD603\uD605\uD606\uD607\uD609", 6, "\uD612"],
["c281", "\uD616", 5, "\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625", 7, "\uD62E", 9, "\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],
["c341", "\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D", 4],
["c361", "\uD662", 4, "\uD668\uD66A", 5, "\uD672\uD673\uD675", 11],
["c381", "\uD681\uD682\uD684\uD686", 5, "\uD68E\uD68F\uD691\uD692\uD693\uD695", 7, "\uD69E\uD6A0\uD6A2", 5, "\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],
["c441", "\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1", 7, "\uD6BA\uD6BC", 7, "\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],
["c461", "\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA", 5, "\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9", 4],
["c481", "\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6", 5, "\uD6FE\uD6FF\uD701\uD702\uD703\uD705", 11, "\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],
["c541", "\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721", 6, "\uD72A\uD72C\uD72E", 5, "\uD736\uD737\uD739"],
["c561", "\uD73A\uD73B\uD73D", 6, "\uD745\uD746\uD748\uD74A", 5, "\uD752\uD753\uD755\uD75A", 4],
["c581", "\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775", 6, "\uD77E\uD77F\uD780\uD782", 5, "\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],
["c641", "\uD78D\uD78E\uD78F\uD791", 6, "\uD79A\uD79C\uD79E", 5],
["c6a1", "\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],
["c7a1", "\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],
["c8a1", "\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],
["caa1", "\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],
["cba1", "\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],
["cca1", "\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],
["cda1", "\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],
["cea1", "\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],
["cfa1", "\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],
["d0a1", "\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],
["d1a1", "\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E", 5, "\u90A3\uF914", 4, "\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],
["d2a1", "\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928", 4, "\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933", 5, "\u99D1\uF939", 10, "\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A", 7, "\u5AE9\u8A25\u677B\u7D10\uF952", 5, "\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],
["d3a1", "\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],
["d4a1", "\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],
["d5a1", "\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],
["d6a1", "\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],
["d7a1", "\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],
["d8a1", "\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],
["d9a1", "\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],
["daa1", "\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],
["dba1", "\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],
["dca1", "\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],
["dda1", "\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],
["dea1", "\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],
["dfa1", "\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],
["e0a1", "\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],
["e1a1", "\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],
["e2a1", "\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],
["e3a1", "\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],
["e4a1", "\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],
["e5a1", "\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],
["e6a1", "\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],
["e7a1", "\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],
["e8a1", "\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],
["e9a1", "\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],
["eaa1", "\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],
["eba1", "\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],
["eca1", "\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],
["eda1", "\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],
["eea1", "\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],
["efa1", "\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],
["f0a1", "\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],
["f1a1", "\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],
["f2a1", "\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],
["f3a1", "\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],
["f4a1", "\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],
["f5a1", "\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],
["f6a1", "\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],
["f7a1", "\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],
["f8a1", "\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],
["f9a1", "\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],
["faa1", "\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],
["fba1", "\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],
["fca1", "\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],
["fda1", "\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]
];
}
});
var require_cp9502 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/tables/cp950.json"(exports2, module2) {
module2.exports = [
["0", "\0", 127],
["a140", "\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],
["a1a1", "\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62", 4, "\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],
["a240", "\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581", 7, "\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],
["a2a1", "\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10", 9, "\u2160", 9, "\u3021", 8, "\u5341\u5344\u5345\uFF21", 25, "\uFF41", 21],
["a340", "\uFF57\uFF58\uFF59\uFF5A\u0391", 16, "\u03A3", 6, "\u03B1", 16, "\u03C3", 6, "\u3105", 10],
["a3a1", "\u3110", 25, "\u02D9\u02C9\u02CA\u02C7\u02CB"],
["a3e1", "\u20AC"],
["a440", "\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],
["a4a1", "\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],
["a540", "\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],
["a5a1", "\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],
["a640", "\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],
["a6a1", "\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],
["a740", "\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],
["a7a1", "\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],
["a840", "\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],
["a8a1", "\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],
["a940", "\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],
["a9a1", "\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],
["aa40", "\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],
["aaa1", "\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],
["ab40", "\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],
["aba1", "\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],
["ac40", "\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],
["aca1", "\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],
["ad40", "\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],
["ada1", "\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],
["ae40", "\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],
["aea1", "\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],
["af40", "\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],
["afa1", "\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],
["b040", "\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],
["b0a1", "\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],
["b140", "\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],
["b1a1", "\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],
["b240", "\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],
["b2a1", "\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],
["b340", "\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],
["b3a1", "\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],
["b440", "\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],
["b4a1", "\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],
["b540", "\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],
["b5a1", "\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],
["b640", "\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],
["b6a1", "\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],
["b740", "\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],
["b7a1", "\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],
["b840", "\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],
["b8a1", "\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],
["b940", "\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],
["b9a1", "\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],
["ba40", "\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],
["baa1", "\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],
["bb40", "\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],
["bba1", "\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],
["bc40", "\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],
["bca1", "\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],
["bd40", "\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],
["bda1", "\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],
["be40", "\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],
["bea1", "\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],
["bf40", "\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],
["bfa1", "\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],
["c040", "\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],
["c0a1", "\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],
["c140", "\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],
["c1a1", "\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],
["c240", "\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],
["c2a1", "\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],
["c340", "\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],
["c3a1", "\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],
["c440", "\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],
["c4a1", "\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],
["c540", "\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],
["c5a1", "\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],
["c640", "\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],
["c940", "\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],
["c9a1", "\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],
["ca40", "\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],
["caa1", "\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],
["cb40", "\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],
["cba1", "\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],
["cc40", "\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],
["cca1", "\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],
["cd40", "\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],
["cda1", "\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],
["ce40", "\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],
["cea1", "\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],
["cf40", "\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],
["cfa1", "\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],
["d040", "\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],
["d0a1", "\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],
["d140", "\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],
["d1a1", "\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],
["d240", "\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],
["d2a1", "\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],
["d340", "\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],
["d3a1", "\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],
["d440", "\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],
["d4a1", "\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],
["d540", "\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],
["d5a1", "\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],
["d640", "\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],
["d6a1", "\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],
["d740", "\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],
["d7a1", "\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],
["d840", "\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],
["d8a1", "\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],
["d940", "\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],
["d9a1", "\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],
["da40", "\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],
["daa1", "\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],
["db40", "\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],
["dba1", "\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],
["dc40", "\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],
["dca1", "\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],
["dd40", "\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],
["dda1", "\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],
["de40", "\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],
["dea1", "\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],
["df40", "\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],
["dfa1", "\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],
["e040", "\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],
["e0a1", "\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],
["e140", "\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],
["e1a1", "\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],
["e240", "\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],
["e2a1", "\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],
["e340", "\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],
["e3a1", "\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],
["e440", "\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],
["e4a1", "\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],
["e540", "\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],
["e5a1", "\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],
["e640", "\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],
["e6a1", "\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],
["e740", "\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],
["e7a1", "\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],
["e840", "\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],
["e8a1", "\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],
["e940", "\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],
["e9a1", "\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],
["ea40", "\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],
["eaa1", "\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],
["eb40", "\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],
["eba1", "\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],
["ec40", "\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],
["eca1", "\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],
["ed40", "\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],
["eda1", "\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],
["ee40", "\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],
["eea1", "\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],
["ef40", "\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],
["efa1", "\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],
["f040", "\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],
["f0a1", "\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],
["f140", "\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],
["f1a1", "\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],
["f240", "\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],
["f2a1", "\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],
["f340", "\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],
["f3a1", "\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],
["f440", "\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],
["f4a1", "\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],
["f540", "\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],
["f5a1", "\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],
["f640", "\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],
["f6a1", "\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],
["f740", "\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],
["f7a1", "\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],
["f840", "\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],
["f8a1", "\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],
["f940", "\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],
["f9a1", "\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]
];
}
});
var require_big5_added2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/tables/big5-added.json"(exports2, module2) {
module2.exports = [
["8740", "\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],
["8767", "\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],
["87a1", "\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],
["8840", "\u31C0", 4, "\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],
["88a1", "\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],
["8940", "\u{2A3A9}\u{21145}"],
["8943", "\u650A"],
["8946", "\u4E3D\u6EDD\u9D4E\u91DF"],
["894c", "\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],
["89a1", "\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],
["89ab", "\u918C\u78B8\u915E\u80BC"],
["89b0", "\u8D0B\u80F6\u{209E7}"],
["89b5", "\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],
["89c1", "\u6E9A\u823E\u7519"],
["89c5", "\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],
["8a40", "\u{27D84}\u5525"],
["8a43", "\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],
["8a64", "\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],
["8a76", "\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],
["8aa1", "\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],
["8aac", "\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],
["8ab2", "\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],
["8abb", "\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],
["8ac9", "\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],
["8ace", "\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],
["8adf", "\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],
["8af6", "\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],
["8b40", "\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],
["8b55", "\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],
["8ba1", "\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],
["8bde", "\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],
["8c40", "\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],
["8ca1", "\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],
["8ca7", "\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],
["8cc9", "\u9868\u676B\u4276\u573D"],
["8cce", "\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],
["8ce6", "\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],
["8d40", "\u{20B9F}"],
["8d42", "\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],
["8da1", "\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],
["8e40", "\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],
["8ea1", "\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],
["8f40", "\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],
["8fa1", "\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],
["9040", "\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],
["90a1", "\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],
["9140", "\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],
["91a1", "\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],
["9240", "\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],
["92a1", "\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],
["9340", "\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],
["93a1", "\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],
["9440", "\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],
["94a1", "\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],
["9540", "\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],
["95a1", "\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],
["9640", "\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],
["96a1", "\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],
["9740", "\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],
["97a1", "\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],
["9840", "\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],
["98a1", "\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],
["9940", "\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],
["99a1", "\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],
["9a40", "\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],
["9aa1", "\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],
["9b40", "\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],
["9b62", "\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],
["9ba1", "\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],
["9c40", "\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],
["9ca1", "\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],
["9d40", "\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],
["9da1", "\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],
["9e40", "\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],
["9ea1", "\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],
["9ead", "\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],
["9ec5", "\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],
["9ef5", "\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],
["9f40", "\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],
["9f4f", "\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],
["9fa1", "\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],
["9fae", "\u9159\u9681\u915C"],
["9fb2", "\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],
["9fc1", "\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],
["9fc9", "\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],
["9fdb", "\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],
["9fe7", "\u6BFA\u8818\u7F78"],
["9feb", "\u5620\u{2A64A}\u8E77\u9F53"],
["9ff0", "\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],
["a040", "\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],
["a055", "\u{2183B}\u{26E05}"],
["a058", "\u8A7E\u{2251B}"],
["a05b", "\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],
["a063", "\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],
["a073", "\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],
["a0a1", "\u5D57\u{28BC2}\u8FDA\u{28E39}"],
["a0a6", "\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],
["a0ae", "\u77FE"],
["a0b0", "\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],
["a0d4", "\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],
["a0e2", "\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],
["a3c0", "\u2400", 31, "\u2421"],
["c6a1", "\u2460", 9, "\u2474", 9, "\u2170", 9, "\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041", 23],
["c740", "\u3059", 58, "\u30A1\u30A2\u30A3\u30A4"],
["c7a1", "\u30A5", 81, "\u0410", 5, "\u0401\u0416", 4],
["c840", "\u041B", 26, "\u0451\u0436", 25, "\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],
["c8a1", "\u9FB0\u5188\u9FB1\u{27607}"],
["c8cd", "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],
["c8f5", "\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],
["f9fe", "\uFFED"],
["fa40", "\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],
["faa1", "\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],
["fb40", "\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],
["fba1", "\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],
["fc40", "\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],
["fca1", "\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],
["fd40", "\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],
["fda1", "\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],
["fe40", "\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],
["fea1", "\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]
];
}
});
var require_dbcs_data2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/dbcs-data.js"(exports2, module2) {
"use strict";
module2.exports = {
// == Japanese/ShiftJIS ====================================================
// All japanese encodings are based on JIS X set of standards:
// JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.
// JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes.
// Has several variations in 1978, 1983, 1990 and 1997.
// JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.
// JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.
// 2 planes, first is superset of 0208, second - revised 0212.
// Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)
// Byte encodings are:
// * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte
// encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.
// Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.
// * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes.
// 0x00-0x7F - lower part of 0201
// 0x8E, 0xA1-0xDF - upper part of 0201
// (0xA1-0xFE)x2 - 0208 plane (94x94).
// 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).
// * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.
// Used as-is in ISO2022 family.
// * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII,
// 0201-1976 Roman, 0208-1978, 0208-1983.
// * ISO2022-JP-1: Adds esc seq for 0212-1990.
// * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.
// * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.
// * ISO2022-JP-2004: Adds 0213-2004 Plane 1.
//
// After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.
//
// Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html
"shiftjis": {
type: "_dbcs",
table: function() {
return require_shiftjis2();
},
encodeAdd: { "\xA5": 92, "\u203E": 126 },
encodeSkipVals: [{ from: 60736, to: 63808 }]
},
"csshiftjis": "shiftjis",
"mskanji": "shiftjis",
"sjis": "shiftjis",
"windows31j": "shiftjis",
"ms31j": "shiftjis",
"xsjis": "shiftjis",
"windows932": "shiftjis",
"ms932": "shiftjis",
"932": "shiftjis",
"cp932": "shiftjis",
"eucjp": {
type: "_dbcs",
table: function() {
return require_eucjp2();
},
encodeAdd: { "\xA5": 92, "\u203E": 126 }
},
// TODO: KDDI extension to Shift_JIS
// TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.
// TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.
// == Chinese/GBK ==========================================================
// http://en.wikipedia.org/wiki/GBK
// We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder
// Oldest GB2312 (1981, ~7600 chars) is a subset of CP936
"gb2312": "cp936",
"gb231280": "cp936",
"gb23121980": "cp936",
"csgb2312": "cp936",
"csiso58gb231280": "cp936",
"euccn": "cp936",
// Microsoft's CP936 is a subset and approximation of GBK.
"windows936": "cp936",
"ms936": "cp936",
"936": "cp936",
"cp936": {
type: "_dbcs",
table: function() {
return require_cp9362();
}
},
// GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
"gbk": {
type: "_dbcs",
table: function() {
return require_cp9362().concat(require_gbk_added2());
}
},
"xgbk": "gbk",
"isoir58": "gbk",
// GB18030 is an algorithmic extension of GBK.
// Main source: https://www.w3.org/TR/encoding/#gbk-encoder
// http://icu-project.org/docs/papers/gb18030.html
// http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml
// http://www.khngai.com/chinese/charmap/tblgbk.php?page=0
"gb18030": {
type: "_dbcs",
table: function() {
return require_cp9362().concat(require_gbk_added2());
},
gb18030: function() {
return require_gb18030_ranges2();
},
encodeSkipVals: [128],
encodeAdd: { "\u20AC": 41699 }
},
"chinese": "gb18030",
// == Korean ===============================================================
// EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.
"windows949": "cp949",
"ms949": "cp949",
"949": "cp949",
"cp949": {
type: "_dbcs",
table: function() {
return require_cp9492();
}
},
"cseuckr": "cp949",
"csksc56011987": "cp949",
"euckr": "cp949",
"isoir149": "cp949",
"korean": "cp949",
"ksc56011987": "cp949",
"ksc56011989": "cp949",
"ksc5601": "cp949",
// == Big5/Taiwan/Hong Kong ================================================
// There are lots of tables for Big5 and cp950. Please see the following links for history:
// http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html
// Variations, in roughly number of defined chars:
// * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
// * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/
// * Big5-2003 (Taiwan standard) almost superset of cp950.
// * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.
// * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard.
// many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.
// Plus, it has 4 combining sequences.
// Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299
// because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.
// Implementations are not consistent within browsers; sometimes labeled as just big5.
// MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.
// Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31
// In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.
// Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt
// http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt
//
// Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder
// Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.
"windows950": "cp950",
"ms950": "cp950",
"950": "cp950",
"cp950": {
type: "_dbcs",
table: function() {
return require_cp9502();
}
},
// Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
"big5": "big5hkscs",
"big5hkscs": {
type: "_dbcs",
table: function() {
return require_cp9502().concat(require_big5_added2());
},
encodeSkipVals: [
// Although Encoding Standard says we should avoid encoding to HKSCS area (See Step 1 of
// https://encoding.spec.whatwg.org/#index-big5-pointer), we still do it to increase compatibility with ICU.
// But if a single unicode point can be encoded both as HKSCS and regular Big5, we prefer the latter.
36457,
36463,
36478,
36523,
36532,
36557,
36560,
36695,
36713,
36718,
36811,
36862,
36973,
36986,
37060,
37084,
37105,
37311,
37551,
37552,
37553,
37554,
37585,
37959,
38090,
38361,
38652,
39285,
39798,
39800,
39803,
39878,
39902,
39916,
39926,
40002,
40019,
40034,
40040,
40043,
40055,
40124,
40125,
40144,
40279,
40282,
40388,
40431,
40443,
40617,
40687,
40701,
40800,
40907,
41079,
41180,
41183,
36812,
37576,
38468,
38637,
// Step 2 of https://encoding.spec.whatwg.org/#index-big5-pointer: Use last pointer for U+2550, U+255E, U+2561, U+256A, U+5341, or U+5345
41636,
41637,
41639,
41638,
41676,
41678
]
},
"cnbig5": "big5hkscs",
"csbig5": "big5hkscs",
"xxbig5": "big5hkscs"
};
}
});
var require_encodings2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/encodings/index.js"(exports2, module2) {
"use strict";
var modules = [
require_internal2(),
require_utf322(),
require_utf162(),
require_utf72(),
require_sbcs_codec2(),
require_sbcs_data2(),
require_sbcs_data_generated2(),
require_dbcs_codec2(),
require_dbcs_data2()
];
for (i = 0; i < modules.length; i++) {
module2 = modules[i];
for (enc in module2)
if (Object.prototype.hasOwnProperty.call(module2, enc))
exports2[enc] = module2[enc];
}
var module2;
var enc;
var i;
}
});
var require_streams2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/lib/streams.js"(exports2, module2) {
"use strict";
var Buffer2 = require_safer().Buffer;
module2.exports = function(stream_module) {
var Transform = stream_module.Transform;
function IconvLiteEncoderStream(conv, options) {
this.conv = conv;
options = options || {};
options.decodeStrings = false;
Transform.call(this, options);
}
IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
constructor: { value: IconvLiteEncoderStream }
});
IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) {
if (typeof chunk != "string")
return done(new Error("Iconv encoding stream needs strings as its input."));
try {
var res = this.conv.write(chunk);
if (res && res.length) this.push(res);
done();
} catch (e) {
done(e);
}
};
IconvLiteEncoderStream.prototype._flush = function(done) {
try {
var res = this.conv.end();
if (res && res.length) this.push(res);
done();
} catch (e) {
done(e);
}
};
IconvLiteEncoderStream.prototype.collect = function(cb) {
var chunks = [];
this.on("error", cb);
this.on("data", function(chunk) {
chunks.push(chunk);
});
this.on("end", function() {
cb(null, Buffer2.concat(chunks));
});
return this;
};
function IconvLiteDecoderStream(conv, options) {
this.conv = conv;
options = options || {};
options.encoding = this.encoding = "utf8";
Transform.call(this, options);
}
IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
constructor: { value: IconvLiteDecoderStream }
});
IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) {
if (!Buffer2.isBuffer(chunk) && !(chunk instanceof Uint8Array))
return done(new Error("Iconv decoding stream needs buffers as its input."));
try {
var res = this.conv.write(chunk);
if (res && res.length) this.push(res, this.encoding);
done();
} catch (e) {
done(e);
}
};
IconvLiteDecoderStream.prototype._flush = function(done) {
try {
var res = this.conv.end();
if (res && res.length) this.push(res, this.encoding);
done();
} catch (e) {
done(e);
}
};
IconvLiteDecoderStream.prototype.collect = function(cb) {
var res = "";
this.on("error", cb);
this.on("data", function(chunk) {
res += chunk;
});
this.on("end", function() {
cb(null, res);
});
return this;
};
return {
IconvLiteEncoderStream,
IconvLiteDecoderStream
};
};
}
});
var require_lib2 = __commonJS2({
"node_modules/body-parser/node_modules/iconv-lite/lib/index.js"(exports2, module2) {
"use strict";
var Buffer2 = require_safer().Buffer;
var bomHandling = require_bom_handling2();
var iconv = module2.exports;
iconv.encodings = null;
iconv.defaultCharUnicode = "\uFFFD";
iconv.defaultCharSingleByte = "?";
iconv.encode = function encode3(str, encoding, options) {
str = "" + (str || "");
var encoder = iconv.getEncoder(encoding, options);
var res = encoder.write(str);
var trail = encoder.end();
return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res;
};
iconv.decode = function decode(buf, encoding, options) {
if (typeof buf === "string") {
if (!iconv.skipDecodeWarning) {
console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding");
iconv.skipDecodeWarning = true;
}
buf = Buffer2.from("" + (buf || ""), "binary");
}
var decoder = iconv.getDecoder(encoding, options);
var res = decoder.write(buf);
var trail = decoder.end();
return trail ? res + trail : res;
};
iconv.encodingExists = function encodingExists(enc) {
try {
iconv.getCodec(enc);
return true;
} catch (e) {
return false;
}
};
iconv.toEncoding = iconv.encode;
iconv.fromEncoding = iconv.decode;
iconv._codecDataCache = {};
iconv.getCodec = function getCodec(encoding) {
if (!iconv.encodings)
iconv.encodings = require_encodings2();
var enc = iconv._canonicalizeEncoding(encoding);
var codecOptions = {};
while (true) {
var codec = iconv._codecDataCache[enc];
if (codec)
return codec;
var codecDef = iconv.encodings[enc];
switch (typeof codecDef) {
case "string":
enc = codecDef;
break;
case "object":
for (var key in codecDef)
codecOptions[key] = codecDef[key];
if (!codecOptions.encodingName)
codecOptions.encodingName = enc;
enc = codecDef.type;
break;
case "function":
if (!codecOptions.encodingName)
codecOptions.encodingName = enc;
codec = new codecDef(codecOptions, iconv);
iconv._codecDataCache[codecOptions.encodingName] = codec;
return codec;
default:
throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')");
}
}
};
iconv._canonicalizeEncoding = function(encoding) {
return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
};
iconv.getEncoder = function getEncoder(encoding, options) {
var codec = iconv.getCodec(encoding), encoder = new codec.encoder(options, codec);
if (codec.bomAware && options && options.addBOM)
encoder = new bomHandling.PrependBOM(encoder, options);
return encoder;
};
iconv.getDecoder = function getDecoder(encoding, options) {
var codec = iconv.getCodec(encoding), decoder = new codec.decoder(options, codec);
if (codec.bomAware && !(options && options.stripBOM === false))
decoder = new bomHandling.StripBOM(decoder, options);
return decoder;
};
iconv.enableStreamingAPI = function enableStreamingAPI(stream_module2) {
if (iconv.supportsStreams)
return;
var streams = require_streams2()(stream_module2);
iconv.IconvLiteEncoderStream = streams.IconvLiteEncoderStream;
iconv.IconvLiteDecoderStream = streams.IconvLiteDecoderStream;
iconv.encodeStream = function encodeStream(encoding, options) {
return new iconv.IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options);
};
iconv.decodeStream = function decodeStream(encoding, options) {
return new iconv.IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options);
};
iconv.supportsStreams = true;
};
var stream_module;
try {
stream_module = require("stream");
} catch (e) {
}
if (stream_module && stream_module.Transform) {
iconv.enableStreamingAPI(stream_module);
} else {
iconv.encodeStream = iconv.decodeStream = function() {
throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.");
};
}
if (false) {
console.error("iconv-lite warning: js files use non-utf8 encoding. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
}
}
});
var require_read = __commonJS2({
"node_modules/body-parser/lib/read.js"(exports2, module2) {
"use strict";
var createError = require_http_errors();
var getBody = require_raw_body();
var iconv = require_lib2();
var onFinished = require_on_finished();
var zlib2 = require("node:zlib");
module2.exports = read;
function read(req, res, next, parse, debug, options) {
var length;
var opts = options;
var stream4;
var encoding = opts.encoding !== null ? opts.encoding : null;
var verify = opts.verify;
try {
stream4 = contentstream(req, debug, opts.inflate);
length = stream4.length;
stream4.length = void 0;
} catch (err2) {
return next(err2);
}
opts.length = length;
opts.encoding = verify ? null : encoding;
if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) {
return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
charset: encoding.toLowerCase(),
type: "charset.unsupported"
}));
}
debug("read body");
getBody(stream4, opts, function(error, body) {
if (error) {
var _error;
if (error.type === "encoding.unsupported") {
_error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
charset: encoding.toLowerCase(),
type: "charset.unsupported"
});
} else {
_error = createError(400, error);
}
if (stream4 !== req) {
req.unpipe();
stream4.destroy();
}
dump(req, function onfinished() {
next(createError(400, _error));
});
return;
}
if (verify) {
try {
debug("verify body");
verify(req, res, body, encoding);
} catch (err2) {
next(createError(403, err2, {
body,
type: err2.type || "entity.verify.failed"
}));
return;
}
}
var str = body;
try {
debug("parse body");
str = typeof body !== "string" && encoding !== null ? iconv.decode(body, encoding) : body;
req.body = parse(str, encoding);
} catch (err2) {
next(createError(400, err2, {
body: str,
type: err2.type || "entity.parse.failed"
}));
return;
}
next();
});
}
function contentstream(req, debug, inflate) {
var encoding = (req.headers["content-encoding"] || "identity").toLowerCase();
var length = req.headers["content-length"];
debug('content-encoding "%s"', encoding);
if (inflate === false && encoding !== "identity") {
throw createError(415, "content encoding unsupported", {
encoding,
type: "encoding.unsupported"
});
}
if (encoding === "identity") {
req.length = length;
return req;
}
var stream4 = createDecompressionStream(encoding, debug);
req.pipe(stream4);
return stream4;
}
function createDecompressionStream(encoding, debug) {
switch (encoding) {
case "deflate":
debug("inflate body");
return zlib2.createInflate();
case "gzip":
debug("gunzip body");
return zlib2.createGunzip();
case "br":
debug("brotli decompress body");
return zlib2.createBrotliDecompress();
default:
throw createError(415, 'unsupported content encoding "' + encoding + '"', {
encoding,
type: "encoding.unsupported"
});
}
}
function dump(req, callback) {
if (onFinished.isFinished(req)) {
callback(null);
} else {
onFinished(req, callback);
req.resume();
}
}
}
});
var require_db2 = __commonJS2({
"node_modules/type-is/node_modules/mime-db/db.json"(exports2, module2) {
module2.exports = {
"application/1d-interleaved-parityfec": {
source: "iana"
},
"application/3gpdash-qoe-report+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/3gpp-ims+xml": {
source: "iana",
compressible: true
},
"application/3gpphal+json": {
source: "iana",
compressible: true
},
"application/3gpphalforms+json": {
source: "iana",
compressible: true
},
"application/a2l": {
source: "iana"
},
"application/ace+cbor": {
source: "iana"
},
"application/ace+json": {
source: "iana",
compressible: true
},
"application/ace-groupcomm+cbor": {
source: "iana"
},
"application/ace-trl+cbor": {
source: "iana"
},
"application/activemessage": {
source: "iana"
},
"application/activity+json": {
source: "iana",
compressible: true
},
"application/aif+cbor": {
source: "iana"
},
"application/aif+json": {
source: "iana",
compressible: true
},
"application/alto-cdni+json": {
source: "iana",
compressible: true
},
"application/alto-cdnifilter+json": {
source: "iana",
compressible: true
},
"application/alto-costmap+json": {
source: "iana",
compressible: true
},
"application/alto-costmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-directory+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcost+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcostparams+json": {
source: "iana",
compressible: true
},
"application/alto-endpointprop+json": {
source: "iana",
compressible: true
},
"application/alto-endpointpropparams+json": {
source: "iana",
compressible: true
},
"application/alto-error+json": {
source: "iana",
compressible: true
},
"application/alto-networkmap+json": {
source: "iana",
compressible: true
},
"application/alto-networkmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-propmap+json": {
source: "iana",
compressible: true
},
"application/alto-propmapparams+json": {
source: "iana",
compressible: true
},
"application/alto-tips+json": {
source: "iana",
compressible: true
},
"application/alto-tipsparams+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamcontrol+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamparams+json": {
source: "iana",
compressible: true
},
"application/aml": {
source: "iana"
},
"application/andrew-inset": {
source: "iana",
extensions: ["ez"]
},
"application/appinstaller": {
compressible: false,
extensions: ["appinstaller"]
},
"application/applefile": {
source: "iana"
},
"application/applixware": {
source: "apache",
extensions: ["aw"]
},
"application/appx": {
compressible: false,
extensions: ["appx"]
},
"application/appxbundle": {
compressible: false,
extensions: ["appxbundle"]
},
"application/at+jwt": {
source: "iana"
},
"application/atf": {
source: "iana"
},
"application/atfx": {
source: "iana"
},
"application/atom+xml": {
source: "iana",
compressible: true,
extensions: ["atom"]
},
"application/atomcat+xml": {
source: "iana",
compressible: true,
extensions: ["atomcat"]
},
"application/atomdeleted+xml": {
source: "iana",
compressible: true,
extensions: ["atomdeleted"]
},
"application/atomicmail": {
source: "iana"
},
"application/atomsvc+xml": {
source: "iana",
compressible: true,
extensions: ["atomsvc"]
},
"application/atsc-dwd+xml": {
source: "iana",
compressible: true,
extensions: ["dwd"]
},
"application/atsc-dynamic-event-message": {
source: "iana"
},
"application/atsc-held+xml": {
source: "iana",
compressible: true,
extensions: ["held"]
},
"application/atsc-rdt+json": {
source: "iana",
compressible: true
},
"application/atsc-rsat+xml": {
source: "iana",
compressible: true,
extensions: ["rsat"]
},
"application/atxml": {
source: "iana"
},
"application/auth-policy+xml": {
source: "iana",
compressible: true
},
"application/automationml-aml+xml": {
source: "iana",
compressible: true,
extensions: ["aml"]
},
"application/automationml-amlx+zip": {
source: "iana",
compressible: false,
extensions: ["amlx"]
},
"application/bacnet-xdd+zip": {
source: "iana",
compressible: false
},
"application/batch-smtp": {
source: "iana"
},
"application/bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/beep+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/bufr": {
source: "iana"
},
"application/c2pa": {
source: "iana"
},
"application/calendar+json": {
source: "iana",
compressible: true
},
"application/calendar+xml": {
source: "iana",
compressible: true,
extensions: ["xcs"]
},
"application/call-completion": {
source: "iana"
},
"application/cals-1840": {
source: "iana"
},
"application/captive+json": {
source: "iana",
compressible: true
},
"application/cbor": {
source: "iana"
},
"application/cbor-seq": {
source: "iana"
},
"application/cccex": {
source: "iana"
},
"application/ccmp+xml": {
source: "iana",
compressible: true
},
"application/ccxml+xml": {
source: "iana",
compressible: true,
extensions: ["ccxml"]
},
"application/cda+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/cdfx+xml": {
source: "iana",
compressible: true,
extensions: ["cdfx"]
},
"application/cdmi-capability": {
source: "iana",
extensions: ["cdmia"]
},
"application/cdmi-container": {
source: "iana",
extensions: ["cdmic"]
},
"application/cdmi-domain": {
source: "iana",
extensions: ["cdmid"]
},
"application/cdmi-object": {
source: "iana",
extensions: ["cdmio"]
},
"application/cdmi-queue": {
source: "iana",
extensions: ["cdmiq"]
},
"application/cdni": {
source: "iana"
},
"application/ce+cbor": {
source: "iana"
},
"application/cea": {
source: "iana"
},
"application/cea-2018+xml": {
source: "iana",
compressible: true
},
"application/cellml+xml": {
source: "iana",
compressible: true
},
"application/cfw": {
source: "iana"
},
"application/cid-edhoc+cbor-seq": {
source: "iana"
},
"application/city+json": {
source: "iana",
compressible: true
},
"application/city+json-seq": {
source: "iana"
},
"application/clr": {
source: "iana"
},
"application/clue+xml": {
source: "iana",
compressible: true
},
"application/clue_info+xml": {
source: "iana",
compressible: true
},
"application/cms": {
source: "iana"
},
"application/cnrp+xml": {
source: "iana",
compressible: true
},
"application/coap-eap": {
source: "iana"
},
"application/coap-group+json": {
source: "iana",
compressible: true
},
"application/coap-payload": {
source: "iana"
},
"application/commonground": {
source: "iana"
},
"application/concise-problem-details+cbor": {
source: "iana"
},
"application/conference-info+xml": {
source: "iana",
compressible: true
},
"application/cose": {
source: "iana"
},
"application/cose-key": {
source: "iana"
},
"application/cose-key-set": {
source: "iana"
},
"application/cose-x509": {
source: "iana"
},
"application/cpl+xml": {
source: "iana",
compressible: true,
extensions: ["cpl"]
},
"application/csrattrs": {
source: "iana"
},
"application/csta+xml": {
source: "iana",
compressible: true
},
"application/cstadata+xml": {
source: "iana",
compressible: true
},
"application/csvm+json": {
source: "iana",
compressible: true
},
"application/cu-seeme": {
source: "apache",
extensions: ["cu"]
},
"application/cwl": {
source: "iana",
extensions: ["cwl"]
},
"application/cwl+json": {
source: "iana",
compressible: true
},
"application/cwl+yaml": {
source: "iana"
},
"application/cwt": {
source: "iana"
},
"application/cybercash": {
source: "iana"
},
"application/dart": {
compressible: true
},
"application/dash+xml": {
source: "iana",
compressible: true,
extensions: ["mpd"]
},
"application/dash-patch+xml": {
source: "iana",
compressible: true,
extensions: ["mpp"]
},
"application/dashdelta": {
source: "iana"
},
"application/davmount+xml": {
source: "iana",
compressible: true,
extensions: ["davmount"]
},
"application/dca-rft": {
source: "iana"
},
"application/dcd": {
source: "iana"
},
"application/dec-dx": {
source: "iana"
},
"application/dialog-info+xml": {
source: "iana",
compressible: true
},
"application/dicom": {
source: "iana",
extensions: ["dcm"]
},
"application/dicom+json": {
source: "iana",
compressible: true
},
"application/dicom+xml": {
source: "iana",
compressible: true
},
"application/dii": {
source: "iana"
},
"application/dit": {
source: "iana"
},
"application/dns": {
source: "iana"
},
"application/dns+json": {
source: "iana",
compressible: true
},
"application/dns-message": {
source: "iana"
},
"application/docbook+xml": {
source: "apache",
compressible: true,
extensions: ["dbk"]
},
"application/dots+cbor": {
source: "iana"
},
"application/dpop+jwt": {
source: "iana"
},
"application/dskpp+xml": {
source: "iana",
compressible: true
},
"application/dssc+der": {
source: "iana",
extensions: ["dssc"]
},
"application/dssc+xml": {
source: "iana",
compressible: true,
extensions: ["xdssc"]
},
"application/dvcs": {
source: "iana"
},
"application/eat+cwt": {
source: "iana"
},
"application/eat+jwt": {
source: "iana"
},
"application/eat-bun+cbor": {
source: "iana"
},
"application/eat-bun+json": {
source: "iana",
compressible: true
},
"application/eat-ucs+cbor": {
source: "iana"
},
"application/eat-ucs+json": {
source: "iana",
compressible: true
},
"application/ecmascript": {
source: "apache",
compressible: true,
extensions: ["ecma"]
},
"application/edhoc+cbor-seq": {
source: "iana"
},
"application/edi-consent": {
source: "iana"
},
"application/edi-x12": {
source: "iana",
compressible: false
},
"application/edifact": {
source: "iana",
compressible: false
},
"application/efi": {
source: "iana"
},
"application/elm+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/elm+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.cap+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/emergencycalldata.comment+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.control+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.deviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.ecall.msd": {
source: "iana"
},
"application/emergencycalldata.legacyesn+json": {
source: "iana",
compressible: true
},
"application/emergencycalldata.providerinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.serviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.subscriberinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.veds+xml": {
source: "iana",
compressible: true
},
"application/emma+xml": {
source: "iana",
compressible: true,
extensions: ["emma"]
},
"application/emotionml+xml": {
source: "iana",
compressible: true,
extensions: ["emotionml"]
},
"application/encaprtp": {
source: "iana"
},
"application/entity-statement+jwt": {
source: "iana"
},
"application/epp+xml": {
source: "iana",
compressible: true
},
"application/epub+zip": {
source: "iana",
compressible: false,
extensions: ["epub"]
},
"application/eshop": {
source: "iana"
},
"application/exi": {
source: "iana",
extensions: ["exi"]
},
"application/expect-ct-report+json": {
source: "iana",
compressible: true
},
"application/express": {
source: "iana",
extensions: ["exp"]
},
"application/fastinfoset": {
source: "iana"
},
"application/fastsoap": {
source: "iana"
},
"application/fdf": {
source: "iana",
extensions: ["fdf"]
},
"application/fdt+xml": {
source: "iana",
compressible: true,
extensions: ["fdt"]
},
"application/fhir+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fhir+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fido.trusted-apps+json": {
compressible: true
},
"application/fits": {
source: "iana"
},
"application/flexfec": {
source: "iana"
},
"application/font-sfnt": {
source: "iana"
},
"application/font-tdpfr": {
source: "iana",
extensions: ["pfr"]
},
"application/font-woff": {
source: "iana",
compressible: false
},
"application/framework-attributes+xml": {
source: "iana",
compressible: true
},
"application/geo+json": {
source: "iana",
compressible: true,
extensions: ["geojson"]
},
"application/geo+json-seq": {
source: "iana"
},
"application/geopackage+sqlite3": {
source: "iana"
},
"application/geopose+json": {
source: "iana",
compressible: true
},
"application/geoxacml+json": {
source: "iana",
compressible: true
},
"application/geoxacml+xml": {
source: "iana",
compressible: true
},
"application/gltf-buffer": {
source: "iana"
},
"application/gml+xml": {
source: "iana",
compressible: true,
extensions: ["gml"]
},
"application/gnap-binding-jws": {
source: "iana"
},
"application/gnap-binding-jwsd": {
source: "iana"
},
"application/gnap-binding-rotation-jws": {
source: "iana"
},
"application/gnap-binding-rotation-jwsd": {
source: "iana"
},
"application/gpx+xml": {
source: "apache",
compressible: true,
extensions: ["gpx"]
},
"application/grib": {
source: "iana"
},
"application/gxf": {
source: "apache",
extensions: ["gxf"]
},
"application/gzip": {
source: "iana",
compressible: false,
extensions: ["gz"]
},
"application/h224": {
source: "iana"
},
"application/held+xml": {
source: "iana",
compressible: true
},
"application/hjson": {
extensions: ["hjson"]
},
"application/hl7v2+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/http": {
source: "iana"
},
"application/hyperstudio": {
source: "iana",
extensions: ["stk"]
},
"application/ibe-key-request+xml": {
source: "iana",
compressible: true
},
"application/ibe-pkg-reply+xml": {
source: "iana",
compressible: true
},
"application/ibe-pp-data": {
source: "iana"
},
"application/iges": {
source: "iana"
},
"application/im-iscomposing+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/index": {
source: "iana"
},
"application/index.cmd": {
source: "iana"
},
"application/index.obj": {
source: "iana"
},
"application/index.response": {
source: "iana"
},
"application/index.vnd": {
source: "iana"
},
"application/inkml+xml": {
source: "iana",
compressible: true,
extensions: ["ink", "inkml"]
},
"application/iotp": {
source: "iana"
},
"application/ipfix": {
source: "iana",
extensions: ["ipfix"]
},
"application/ipp": {
source: "iana"
},
"application/isup": {
source: "iana"
},
"application/its+xml": {
source: "iana",
compressible: true,
extensions: ["its"]
},
"application/java-archive": {
source: "iana",
compressible: false,
extensions: ["jar", "war", "ear"]
},
"application/java-serialized-object": {
source: "apache",
compressible: false,
extensions: ["ser"]
},
"application/java-vm": {
source: "apache",
compressible: false,
extensions: ["class"]
},
"application/javascript": {
source: "apache",
charset: "UTF-8",
compressible: true,
extensions: ["js"]
},
"application/jf2feed+json": {
source: "iana",
compressible: true
},
"application/jose": {
source: "iana"
},
"application/jose+json": {
source: "iana",
compressible: true
},
"application/jrd+json": {
source: "iana",
compressible: true
},
"application/jscalendar+json": {
source: "iana",
compressible: true
},
"application/jscontact+json": {
source: "iana",
compressible: true
},
"application/json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["json", "map"]
},
"application/json-patch+json": {
source: "iana",
compressible: true
},
"application/json-seq": {
source: "iana"
},
"application/json5": {
extensions: ["json5"]
},
"application/jsonml+json": {
source: "apache",
compressible: true,
extensions: ["jsonml"]
},
"application/jsonpath": {
source: "iana"
},
"application/jwk+json": {
source: "iana",
compressible: true
},
"application/jwk-set+json": {
source: "iana",
compressible: true
},
"application/jwk-set+jwt": {
source: "iana"
},
"application/jwt": {
source: "iana"
},
"application/kpml-request+xml": {
source: "iana",
compressible: true
},
"application/kpml-response+xml": {
source: "iana",
compressible: true
},
"application/ld+json": {
source: "iana",
compressible: true,
extensions: ["jsonld"]
},
"application/lgr+xml": {
source: "iana",
compressible: true,
extensions: ["lgr"]
},
"application/link-format": {
source: "iana"
},
"application/linkset": {
source: "iana"
},
"application/linkset+json": {
source: "iana",
compressible: true
},
"application/load-control+xml": {
source: "iana",
compressible: true
},
"application/logout+jwt": {
source: "iana"
},
"application/lost+xml": {
source: "iana",
compressible: true,
extensions: ["lostxml"]
},
"application/lostsync+xml": {
source: "iana",
compressible: true
},
"application/lpf+zip": {
source: "iana",
compressible: false
},
"application/lxf": {
source: "iana"
},
"application/mac-binhex40": {
source: "iana",
extensions: ["hqx"]
},
"application/mac-compactpro": {
source: "apache",
extensions: ["cpt"]
},
"application/macwriteii": {
source: "iana"
},
"application/mads+xml": {
source: "iana",
compressible: true,
extensions: ["mads"]
},
"application/manifest+json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["webmanifest"]
},
"application/marc": {
source: "iana",
extensions: ["mrc"]
},
"application/marcxml+xml": {
source: "iana",
compressible: true,
extensions: ["mrcx"]
},
"application/mathematica": {
source: "iana",
extensions: ["ma", "nb", "mb"]
},
"application/mathml+xml": {
source: "iana",
compressible: true,
extensions: ["mathml"]
},
"application/mathml-content+xml": {
source: "iana",
compressible: true
},
"application/mathml-presentation+xml": {
source: "iana",
compressible: true
},
"application/mbms-associated-procedure-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-deregister+xml": {
source: "iana",
compressible: true
},
"application/mbms-envelope+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-protection-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-reception-report+xml": {
source: "iana",
compressible: true
},
"application/mbms-register+xml": {
source: "iana",
compressible: true
},
"application/mbms-register-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-schedule+xml": {
source: "iana",
compressible: true
},
"application/mbms-user-service-description+xml": {
source: "iana",
compressible: true
},
"application/mbox": {
source: "iana",
extensions: ["mbox"]
},
"application/media-policy-dataset+xml": {
source: "iana",
compressible: true,
extensions: ["mpf"]
},
"application/media_control+xml": {
source: "iana",
compressible: true
},
"application/mediaservercontrol+xml": {
source: "iana",
compressible: true,
extensions: ["mscml"]
},
"application/merge-patch+json": {
source: "iana",
compressible: true
},
"application/metalink+xml": {
source: "apache",
compressible: true,
extensions: ["metalink"]
},
"application/metalink4+xml": {
source: "iana",
compressible: true,
extensions: ["meta4"]
},
"application/mets+xml": {
source: "iana",
compressible: true,
extensions: ["mets"]
},
"application/mf4": {
source: "iana"
},
"application/mikey": {
source: "iana"
},
"application/mipc": {
source: "iana"
},
"application/missing-blocks+cbor-seq": {
source: "iana"
},
"application/mmt-aei+xml": {
source: "iana",
compressible: true,
extensions: ["maei"]
},
"application/mmt-usd+xml": {
source: "iana",
compressible: true,
extensions: ["musd"]
},
"application/mods+xml": {
source: "iana",
compressible: true,
extensions: ["mods"]
},
"application/moss-keys": {
source: "iana"
},
"application/moss-signature": {
source: "iana"
},
"application/mosskey-data": {
source: "iana"
},
"application/mosskey-request": {
source: "iana"
},
"application/mp21": {
source: "iana",
extensions: ["m21", "mp21"]
},
"application/mp4": {
source: "iana",
extensions: ["mp4", "mpg4", "mp4s", "m4p"]
},
"application/mpeg4-generic": {
source: "iana"
},
"application/mpeg4-iod": {
source: "iana"
},
"application/mpeg4-iod-xmt": {
source: "iana"
},
"application/mrb-consumer+xml": {
source: "iana",
compressible: true
},
"application/mrb-publish+xml": {
source: "iana",
compressible: true
},
"application/msc-ivr+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msc-mixer+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msix": {
compressible: false,
extensions: ["msix"]
},
"application/msixbundle": {
compressible: false,
extensions: ["msixbundle"]
},
"application/msword": {
source: "iana",
compressible: false,
extensions: ["doc", "dot"]
},
"application/mud+json": {
source: "iana",
compressible: true
},
"application/multipart-core": {
source: "iana"
},
"application/mxf": {
source: "iana",
extensions: ["mxf"]
},
"application/n-quads": {
source: "iana",
extensions: ["nq"]
},
"application/n-triples": {
source: "iana",
extensions: ["nt"]
},
"application/nasdata": {
source: "iana"
},
"application/news-checkgroups": {
source: "iana",
charset: "US-ASCII"
},
"application/news-groupinfo": {
source: "iana",
charset: "US-ASCII"
},
"application/news-transmission": {
source: "iana"
},
"application/nlsml+xml": {
source: "iana",
compressible: true
},
"application/node": {
source: "iana",
extensions: ["cjs"]
},
"application/nss": {
source: "iana"
},
"application/oauth-authz-req+jwt": {
source: "iana"
},
"application/oblivious-dns-message": {
source: "iana"
},
"application/ocsp-request": {
source: "iana"
},
"application/ocsp-response": {
source: "iana"
},
"application/octet-stream": {
source: "iana",
compressible: true,
extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"]
},
"application/oda": {
source: "iana",
extensions: ["oda"]
},
"application/odm+xml": {
source: "iana",
compressible: true
},
"application/odx": {
source: "iana"
},
"application/oebps-package+xml": {
source: "iana",
compressible: true,
extensions: ["opf"]
},
"application/ogg": {
source: "iana",
compressible: false,
extensions: ["ogx"]
},
"application/ohttp-keys": {
source: "iana"
},
"application/omdoc+xml": {
source: "apache",
compressible: true,
extensions: ["omdoc"]
},
"application/onenote": {
source: "apache",
extensions: ["onetoc", "onetoc2", "onetmp", "onepkg", "one", "onea"]
},
"application/opc-nodeset+xml": {
source: "iana",
compressible: true
},
"application/oscore": {
source: "iana"
},
"application/oxps": {
source: "iana",
extensions: ["oxps"]
},
"application/p21": {
source: "iana"
},
"application/p21+zip": {
source: "iana",
compressible: false
},
"application/p2p-overlay+xml": {
source: "iana",
compressible: true,
extensions: ["relo"]
},
"application/parityfec": {
source: "iana"
},
"application/passport": {
source: "iana"
},
"application/patch-ops-error+xml": {
source: "iana",
compressible: true,
extensions: ["xer"]
},
"application/pdf": {
source: "iana",
compressible: false,
extensions: ["pdf"]
},
"application/pdx": {
source: "iana"
},
"application/pem-certificate-chain": {
source: "iana"
},
"application/pgp-encrypted": {
source: "iana",
compressible: false,
extensions: ["pgp"]
},
"application/pgp-keys": {
source: "iana",
extensions: ["asc"]
},
"application/pgp-signature": {
source: "iana",
extensions: ["sig", "asc"]
},
"application/pics-rules": {
source: "apache",
extensions: ["prf"]
},
"application/pidf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pidf-diff+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pkcs10": {
source: "iana",
extensions: ["p10"]
},
"application/pkcs12": {
source: "iana"
},
"application/pkcs7-mime": {
source: "iana",
extensions: ["p7m", "p7c"]
},
"application/pkcs7-signature": {
source: "iana",
extensions: ["p7s"]
},
"application/pkcs8": {
source: "iana",
extensions: ["p8"]
},
"application/pkcs8-encrypted": {
source: "iana"
},
"application/pkix-attr-cert": {
source: "iana",
extensions: ["ac"]
},
"application/pkix-cert": {
source: "iana",
extensions: ["cer"]
},
"application/pkix-crl": {
source: "iana",
extensions: ["crl"]
},
"application/pkix-pkipath": {
source: "iana",
extensions: ["pkipath"]
},
"application/pkixcmp": {
source: "iana",
extensions: ["pki"]
},
"application/pls+xml": {
source: "iana",
compressible: true,
extensions: ["pls"]
},
"application/poc-settings+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/postscript": {
source: "iana",
compressible: true,
extensions: ["ai", "eps", "ps"]
},
"application/ppsp-tracker+json": {
source: "iana",
compressible: true
},
"application/private-token-issuer-directory": {
source: "iana"
},
"application/private-token-request": {
source: "iana"
},
"application/private-token-response": {
source: "iana"
},
"application/problem+json": {
source: "iana",
compressible: true
},
"application/problem+xml": {
source: "iana",
compressible: true
},
"application/provenance+xml": {
source: "iana",
compressible: true,
extensions: ["provx"]
},
"application/provided-claims+jwt": {
source: "iana"
},
"application/prs.alvestrand.titrax-sheet": {
source: "iana"
},
"application/prs.cww": {
source: "iana",
extensions: ["cww"]
},
"application/prs.cyn": {
source: "iana",
charset: "7-BIT"
},
"application/prs.hpub+zip": {
source: "iana",
compressible: false
},
"application/prs.implied-document+xml": {
source: "iana",
compressible: true
},
"application/prs.implied-executable": {
source: "iana"
},
"application/prs.implied-object+json": {
source: "iana",
compressible: true
},
"application/prs.implied-object+json-seq": {
source: "iana"
},
"application/prs.implied-object+yaml": {
source: "iana"
},
"application/prs.implied-structure": {
source: "iana"
},
"application/prs.mayfile": {
source: "iana"
},
"application/prs.nprend": {
source: "iana"
},
"application/prs.plucker": {
source: "iana"
},
"application/prs.rdf-xml-crypt": {
source: "iana"
},
"application/prs.vcfbzip2": {
source: "iana"
},
"application/prs.xsf+xml": {
source: "iana",
compressible: true,
extensions: ["xsf"]
},
"application/pskc+xml": {
source: "iana",
compressible: true,
extensions: ["pskcxml"]
},
"application/pvd+json": {
source: "iana",
compressible: true
},
"application/qsig": {
source: "iana"
},
"application/raml+yaml": {
compressible: true,
extensions: ["raml"]
},
"application/raptorfec": {
source: "iana"
},
"application/rdap+json": {
source: "iana",
compressible: true
},
"application/rdf+xml": {
source: "iana",
compressible: true,
extensions: ["rdf", "owl"]
},
"application/reginfo+xml": {
source: "iana",
compressible: true,
extensions: ["rif"]
},
"application/relax-ng-compact-syntax": {
source: "iana",
extensions: ["rnc"]
},
"application/remote-printing": {
source: "apache"
},
"application/reputon+json": {
source: "iana",
compressible: true
},
"application/resolve-response+jwt": {
source: "iana"
},
"application/resource-lists+xml": {
source: "iana",
compressible: true,
extensions: ["rl"]
},
"application/resource-lists-diff+xml": {
source: "iana",
compressible: true,
extensions: ["rld"]
},
"application/rfc+xml": {
source: "iana",
compressible: true
},
"application/riscos": {
source: "iana"
},
"application/rlmi+xml": {
source: "iana",
compressible: true
},
"application/rls-services+xml": {
source: "iana",
compressible: true,
extensions: ["rs"]
},
"application/route-apd+xml": {
source: "iana",
compressible: true,
extensions: ["rapd"]
},
"application/route-s-tsid+xml": {
source: "iana",
compressible: true,
extensions: ["sls"]
},
"application/route-usd+xml": {
source: "iana",
compressible: true,
extensions: ["rusd"]
},
"application/rpki-checklist": {
source: "iana"
},
"application/rpki-ghostbusters": {
source: "iana",
extensions: ["gbr"]
},
"application/rpki-manifest": {
source: "iana",
extensions: ["mft"]
},
"application/rpki-publication": {
source: "iana"
},
"application/rpki-roa": {
source: "iana",
extensions: ["roa"]
},
"application/rpki-signed-tal": {
source: "iana"
},
"application/rpki-updown": {
source: "iana"
},
"application/rsd+xml": {
source: "apache",
compressible: true,
extensions: ["rsd"]
},
"application/rss+xml": {
source: "apache",
compressible: true,
extensions: ["rss"]
},
"application/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"application/rtploopback": {
source: "iana"
},
"application/rtx": {
source: "iana"
},
"application/samlassertion+xml": {
source: "iana",
compressible: true
},
"application/samlmetadata+xml": {
source: "iana",
compressible: true
},
"application/sarif+json": {
source: "iana",
compressible: true
},
"application/sarif-external-properties+json": {
source: "iana",
compressible: true
},
"application/sbe": {
source: "iana"
},
"application/sbml+xml": {
source: "iana",
compressible: true,
extensions: ["sbml"]
},
"application/scaip+xml": {
source: "iana",
compressible: true
},
"application/scim+json": {
source: "iana",
compressible: true
},
"application/scvp-cv-request": {
source: "iana",
extensions: ["scq"]
},
"application/scvp-cv-response": {
source: "iana",
extensions: ["scs"]
},
"application/scvp-vp-request": {
source: "iana",
extensions: ["spq"]
},
"application/scvp-vp-response": {
source: "iana",
extensions: ["spp"]
},
"application/sdp": {
source: "iana",
extensions: ["sdp"]
},
"application/secevent+jwt": {
source: "iana"
},
"application/senml+cbor": {
source: "iana"
},
"application/senml+json": {
source: "iana",
compressible: true
},
"application/senml+xml": {
source: "iana",
compressible: true,
extensions: ["senmlx"]
},
"application/senml-etch+cbor": {
source: "iana"
},
"application/senml-etch+json": {
source: "iana",
compressible: true
},
"application/senml-exi": {
source: "iana"
},
"application/sensml+cbor": {
source: "iana"
},
"application/sensml+json": {
source: "iana",
compressible: true
},
"application/sensml+xml": {
source: "iana",
compressible: true,
extensions: ["sensmlx"]
},
"application/sensml-exi": {
source: "iana"
},
"application/sep+xml": {
source: "iana",
compressible: true
},
"application/sep-exi": {
source: "iana"
},
"application/session-info": {
source: "iana"
},
"application/set-payment": {
source: "iana"
},
"application/set-payment-initiation": {
source: "iana",
extensions: ["setpay"]
},
"application/set-registration": {
source: "iana"
},
"application/set-registration-initiation": {
source: "iana",
extensions: ["setreg"]
},
"application/sgml": {
source: "iana"
},
"application/sgml-open-catalog": {
source: "iana"
},
"application/shf+xml": {
source: "iana",
compressible: true,
extensions: ["shf"]
},
"application/sieve": {
source: "iana",
extensions: ["siv", "sieve"]
},
"application/simple-filter+xml": {
source: "iana",
compressible: true
},
"application/simple-message-summary": {
source: "iana"
},
"application/simplesymbolcontainer": {
source: "iana"
},
"application/sipc": {
source: "iana"
},
"application/slate": {
source: "iana"
},
"application/smil": {
source: "apache"
},
"application/smil+xml": {
source: "iana",
compressible: true,
extensions: ["smi", "smil"]
},
"application/smpte336m": {
source: "iana"
},
"application/soap+fastinfoset": {
source: "iana"
},
"application/soap+xml": {
source: "iana",
compressible: true
},
"application/sparql-query": {
source: "iana",
extensions: ["rq"]
},
"application/sparql-results+xml": {
source: "iana",
compressible: true,
extensions: ["srx"]
},
"application/spdx+json": {
source: "iana",
compressible: true
},
"application/spirits-event+xml": {
source: "iana",
compressible: true
},
"application/sql": {
source: "iana",
extensions: ["sql"]
},
"application/srgs": {
source: "iana",
extensions: ["gram"]
},
"application/srgs+xml": {
source: "iana",
compressible: true,
extensions: ["grxml"]
},
"application/sru+xml": {
source: "iana",
compressible: true,
extensions: ["sru"]
},
"application/ssdl+xml": {
source: "apache",
compressible: true,
extensions: ["ssdl"]
},
"application/sslkeylogfile": {
source: "iana"
},
"application/ssml+xml": {
source: "iana",
compressible: true,
extensions: ["ssml"]
},
"application/st2110-41": {
source: "iana"
},
"application/stix+json": {
source: "iana",
compressible: true
},
"application/stratum": {
source: "iana"
},
"application/swid+cbor": {
source: "iana"
},
"application/swid+xml": {
source: "iana",
compressible: true,
extensions: ["swidtag"]
},
"application/tamp-apex-update": {
source: "iana"
},
"application/tamp-apex-update-confirm": {
source: "iana"
},
"application/tamp-community-update": {
source: "iana"
},
"application/tamp-community-update-confirm": {
source: "iana"
},
"application/tamp-error": {
source: "iana"
},
"application/tamp-sequence-adjust": {
source: "iana"
},
"application/tamp-sequence-adjust-confirm": {
source: "iana"
},
"application/tamp-status-query": {
source: "iana"
},
"application/tamp-status-response": {
source: "iana"
},
"application/tamp-update": {
source: "iana"
},
"application/tamp-update-confirm": {
source: "iana"
},
"application/tar": {
compressible: true
},
"application/taxii+json": {
source: "iana",
compressible: true
},
"application/td+json": {
source: "iana",
compressible: true
},
"application/tei+xml": {
source: "iana",
compressible: true,
extensions: ["tei", "teicorpus"]
},
"application/tetra_isi": {
source: "iana"
},
"application/thraud+xml": {
source: "iana",
compressible: true,
extensions: ["tfi"]
},
"application/timestamp-query": {
source: "iana"
},
"application/timestamp-reply": {
source: "iana"
},
"application/timestamped-data": {
source: "iana",
extensions: ["tsd"]
},
"application/tlsrpt+gzip": {
source: "iana"
},
"application/tlsrpt+json": {
source: "iana",
compressible: true
},
"application/tm+json": {
source: "iana",
compressible: true
},
"application/tnauthlist": {
source: "iana"
},
"application/toc+cbor": {
source: "iana"
},
"application/token-introspection+jwt": {
source: "iana"
},
"application/toml": {
source: "iana",
compressible: true,
extensions: ["toml"]
},
"application/trickle-ice-sdpfrag": {
source: "iana"
},
"application/trig": {
source: "iana",
extensions: ["trig"]
},
"application/trust-chain+json": {
source: "iana",
compressible: true
},
"application/trust-mark+jwt": {
source: "iana"
},
"application/trust-mark-delegation+jwt": {
source: "iana"
},
"application/ttml+xml": {
source: "iana",
compressible: true,
extensions: ["ttml"]
},
"application/tve-trigger": {
source: "iana"
},
"application/tzif": {
source: "iana"
},
"application/tzif-leap": {
source: "iana"
},
"application/ubjson": {
compressible: false,
extensions: ["ubj"]
},
"application/uccs+cbor": {
source: "iana"
},
"application/ujcs+json": {
source: "iana",
compressible: true
},
"application/ulpfec": {
source: "iana"
},
"application/urc-grpsheet+xml": {
source: "iana",
compressible: true
},
"application/urc-ressheet+xml": {
source: "iana",
compressible: true,
extensions: ["rsheet"]
},
"application/urc-targetdesc+xml": {
source: "iana",
compressible: true,
extensions: ["td"]
},
"application/urc-uisocketdesc+xml": {
source: "iana",
compressible: true
},
"application/vc": {
source: "iana"
},
"application/vc+cose": {
source: "iana"
},
"application/vc+jwt": {
source: "iana"
},
"application/vcard+json": {
source: "iana",
compressible: true
},
"application/vcard+xml": {
source: "iana",
compressible: true
},
"application/vemmi": {
source: "iana"
},
"application/vividence.scriptfile": {
source: "apache"
},
"application/vnd.1000minds.decision-model+xml": {
source: "iana",
compressible: true,
extensions: ["1km"]
},
"application/vnd.1ob": {
source: "iana"
},
"application/vnd.3gpp-prose+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3a+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ach+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ch+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc8+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-v2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gnas": {
source: "iana"
},
"application/vnd.3gpp.5gsa2x": {
source: "iana"
},
"application/vnd.3gpp.5gsa2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gsv2x": {
source: "iana"
},
"application/vnd.3gpp.5gsv2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.access-transfer-events+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.bsf+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.crs+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.current-location-discovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gmop+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gtpc": {
source: "iana"
},
"application/vnd.3gpp.interworking-data": {
source: "iana"
},
"application/vnd.3gpp.lpp": {
source: "iana"
},
"application/vnd.3gpp.mc-signalling-ear": {
source: "iana"
},
"application/vnd.3gpp.mcdata-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-payload": {
source: "iana"
},
"application/vnd.3gpp.mcdata-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-signalling": {
source: "iana"
},
"application/vnd.3gpp.mcdata-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-floor-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-signed+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-init-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-transmission-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mid-call+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ngap": {
source: "iana"
},
"application/vnd.3gpp.pfcp": {
source: "iana"
},
"application/vnd.3gpp.pic-bw-large": {
source: "iana",
extensions: ["plb"]
},
"application/vnd.3gpp.pic-bw-small": {
source: "iana",
extensions: ["psb"]
},
"application/vnd.3gpp.pic-bw-var": {
source: "iana",
extensions: ["pvb"]
},
"application/vnd.3gpp.pinapp-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.s1ap": {
source: "iana"
},
"application/vnd.3gpp.seal-group-doc+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-network-qos-management-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-ue-config-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-unicast-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-user-profile-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.sms": {
source: "iana"
},
"application/vnd.3gpp.sms+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-ext+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.state-and-event-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ussd+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.v2x": {
source: "iana"
},
"application/vnd.3gpp.vae-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.bcmcsinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.sms": {
source: "iana"
},
"application/vnd.3gpp2.tcap": {
source: "iana",
extensions: ["tcap"]
},
"application/vnd.3lightssoftware.imagescal": {
source: "iana"
},
"application/vnd.3m.post-it-notes": {
source: "iana",
extensions: ["pwn"]
},
"application/vnd.accpac.simply.aso": {
source: "iana",
extensions: ["aso"]
},
"application/vnd.accpac.simply.imp": {
source: "iana",
extensions: ["imp"]
},
"application/vnd.acm.addressxfer+json": {
source: "iana",
compressible: true
},
"application/vnd.acm.chatbot+json": {
source: "iana",
compressible: true
},
"application/vnd.acucobol": {
source: "iana",
extensions: ["acu"]
},
"application/vnd.acucorp": {
source: "iana",
extensions: ["atc", "acutc"]
},
"application/vnd.adobe.air-application-installer-package+zip": {
source: "apache",
compressible: false,
extensions: ["air"]
},
"application/vnd.adobe.flash.movie": {
source: "iana"
},
"application/vnd.adobe.formscentral.fcdt": {
source: "iana",
extensions: ["fcdt"]
},
"application/vnd.adobe.fxp": {
source: "iana",
extensions: ["fxp", "fxpl"]
},
"application/vnd.adobe.partial-upload": {
source: "iana"
},
"application/vnd.adobe.xdp+xml": {
source: "iana",
compressible: true,
extensions: ["xdp"]
},
"application/vnd.adobe.xfdf": {
source: "apache",
extensions: ["xfdf"]
},
"application/vnd.aether.imp": {
source: "iana"
},
"application/vnd.afpc.afplinedata": {
source: "iana"
},
"application/vnd.afpc.afplinedata-pagedef": {
source: "iana"
},
"application/vnd.afpc.cmoca-cmresource": {
source: "iana"
},
"application/vnd.afpc.foca-charset": {
source: "iana"
},
"application/vnd.afpc.foca-codedfont": {
source: "iana"
},
"application/vnd.afpc.foca-codepage": {
source: "iana"
},
"application/vnd.afpc.modca": {
source: "iana"
},
"application/vnd.afpc.modca-cmtable": {
source: "iana"
},
"application/vnd.afpc.modca-formdef": {
source: "iana"
},
"application/vnd.afpc.modca-mediummap": {
source: "iana"
},
"application/vnd.afpc.modca-objectcontainer": {
source: "iana"
},
"application/vnd.afpc.modca-overlay": {
source: "iana"
},
"application/vnd.afpc.modca-pagesegment": {
source: "iana"
},
"application/vnd.age": {
source: "iana",
extensions: ["age"]
},
"application/vnd.ah-barcode": {
source: "apache"
},
"application/vnd.ahead.space": {
source: "iana",
extensions: ["ahead"]
},
"application/vnd.airzip.filesecure.azf": {
source: "iana",
extensions: ["azf"]
},
"application/vnd.airzip.filesecure.azs": {
source: "iana",
extensions: ["azs"]
},
"application/vnd.amadeus+json": {
source: "iana",
compressible: true
},
"application/vnd.amazon.ebook": {
source: "apache",
extensions: ["azw"]
},
"application/vnd.amazon.mobi8-ebook": {
source: "iana"
},
"application/vnd.americandynamics.acc": {
source: "iana",
extensions: ["acc"]
},
"application/vnd.amiga.ami": {
source: "iana",
extensions: ["ami"]
},
"application/vnd.amundsen.maze+xml": {
source: "iana",
compressible: true
},
"application/vnd.android.ota": {
source: "iana"
},
"application/vnd.android.package-archive": {
source: "apache",
compressible: false,
extensions: ["apk"]
},
"application/vnd.anki": {
source: "iana"
},
"application/vnd.anser-web-certificate-issue-initiation": {
source: "iana",
extensions: ["cii"]
},
"application/vnd.anser-web-funds-transfer-initiation": {
source: "apache",
extensions: ["fti"]
},
"application/vnd.antix.game-component": {
source: "iana",
extensions: ["atx"]
},
"application/vnd.apache.arrow.file": {
source: "iana"
},
"application/vnd.apache.arrow.stream": {
source: "iana"
},
"application/vnd.apache.parquet": {
source: "iana"
},
"application/vnd.apache.thrift.binary": {
source: "iana"
},
"application/vnd.apache.thrift.compact": {
source: "iana"
},
"application/vnd.apache.thrift.json": {
source: "iana"
},
"application/vnd.apexlang": {
source: "iana"
},
"application/vnd.api+json": {
source: "iana",
compressible: true
},
"application/vnd.aplextor.warrp+json": {
source: "iana",
compressible: true
},
"application/vnd.apothekende.reservation+json": {
source: "iana",
compressible: true
},
"application/vnd.apple.installer+xml": {
source: "iana",
compressible: true,
extensions: ["mpkg"]
},
"application/vnd.apple.keynote": {
source: "iana",
extensions: ["key"]
},
"application/vnd.apple.mpegurl": {
source: "iana",
extensions: ["m3u8"]
},
"application/vnd.apple.numbers": {
source: "iana",
extensions: ["numbers"]
},
"application/vnd.apple.pages": {
source: "iana",
extensions: ["pages"]
},
"application/vnd.apple.pkpass": {
compressible: false,
extensions: ["pkpass"]
},
"application/vnd.arastra.swi": {
source: "apache"
},
"application/vnd.aristanetworks.swi": {
source: "iana",
extensions: ["swi"]
},
"application/vnd.artisan+json": {
source: "iana",
compressible: true
},
"application/vnd.artsquare": {
source: "iana"
},
"application/vnd.astraea-software.iota": {
source: "iana",
extensions: ["iota"]
},
"application/vnd.audiograph": {
source: "iana",
extensions: ["aep"]
},
"application/vnd.autodesk.fbx": {
extensions: ["fbx"]
},
"application/vnd.autopackage": {
source: "iana"
},
"application/vnd.avalon+json": {
source: "iana",
compressible: true
},
"application/vnd.avistar+xml": {
source: "iana",
compressible: true
},
"application/vnd.balsamiq.bmml+xml": {
source: "iana",
compressible: true,
extensions: ["bmml"]
},
"application/vnd.balsamiq.bmpr": {
source: "iana"
},
"application/vnd.banana-accounting": {
source: "iana"
},
"application/vnd.bbf.usp.error": {
source: "iana"
},
"application/vnd.bbf.usp.msg": {
source: "iana"
},
"application/vnd.bbf.usp.msg+json": {
source: "iana",
compressible: true
},
"application/vnd.bekitzur-stech+json": {
source: "iana",
compressible: true
},
"application/vnd.belightsoft.lhzd+zip": {
source: "iana",
compressible: false
},
"application/vnd.belightsoft.lhzl+zip": {
source: "iana",
compressible: false
},
"application/vnd.bint.med-content": {
source: "iana"
},
"application/vnd.biopax.rdf+xml": {
source: "iana",
compressible: true
},
"application/vnd.blink-idb-value-wrapper": {
source: "iana"
},
"application/vnd.blueice.multipass": {
source: "iana",
extensions: ["mpm"]
},
"application/vnd.bluetooth.ep.oob": {
source: "iana"
},
"application/vnd.bluetooth.le.oob": {
source: "iana"
},
"application/vnd.bmi": {
source: "iana",
extensions: ["bmi"]
},
"application/vnd.bpf": {
source: "iana"
},
"application/vnd.bpf3": {
source: "iana"
},
"application/vnd.businessobjects": {
source: "iana",
extensions: ["rep"]
},
"application/vnd.byu.uapi+json": {
source: "iana",
compressible: true
},
"application/vnd.bzip3": {
source: "iana"
},
"application/vnd.c3voc.schedule+xml": {
source: "iana",
compressible: true
},
"application/vnd.cab-jscript": {
source: "iana"
},
"application/vnd.canon-cpdl": {
source: "iana"
},
"application/vnd.canon-lips": {
source: "iana"
},
"application/vnd.capasystems-pg+json": {
source: "iana",
compressible: true
},
"application/vnd.cendio.thinlinc.clientconf": {
source: "iana"
},
"application/vnd.century-systems.tcp_stream": {
source: "iana"
},
"application/vnd.chemdraw+xml": {
source: "iana",
compressible: true,
extensions: ["cdxml"]
},
"application/vnd.chess-pgn": {
source: "iana"
},
"application/vnd.chipnuts.karaoke-mmd": {
source: "iana",
extensions: ["mmd"]
},
"application/vnd.ciedi": {
source: "iana"
},
"application/vnd.cinderella": {
source: "iana",
extensions: ["cdy"]
},
"application/vnd.cirpack.isdn-ext": {
source: "iana"
},
"application/vnd.citationstyles.style+xml": {
source: "iana",
compressible: true,
extensions: ["csl"]
},
"application/vnd.claymore": {
source: "iana",
extensions: ["cla"]
},
"application/vnd.cloanto.rp9": {
source: "iana",
extensions: ["rp9"]
},
"application/vnd.clonk.c4group": {
source: "iana",
extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"]
},
"application/vnd.cluetrust.cartomobile-config": {
source: "iana",
extensions: ["c11amc"]
},
"application/vnd.cluetrust.cartomobile-config-pkg": {
source: "iana",
extensions: ["c11amz"]
},
"application/vnd.cncf.helm.chart.content.v1.tar+gzip": {
source: "iana"
},
"application/vnd.cncf.helm.chart.provenance.v1.prov": {
source: "iana"
},
"application/vnd.cncf.helm.config.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.coffeescript": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet-template": {
source: "iana"
},
"application/vnd.collection+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.doc+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.next+json": {
source: "iana",
compressible: true
},
"application/vnd.comicbook+zip": {
source: "iana",
compressible: false
},
"application/vnd.comicbook-rar": {
source: "iana"
},
"application/vnd.commerce-battelle": {
source: "iana"
},
"application/vnd.commonspace": {
source: "iana",
extensions: ["csp"]
},
"application/vnd.contact.cmsg": {
source: "iana",
extensions: ["cdbcmsg"]
},
"application/vnd.coreos.ignition+json": {
source: "iana",
compressible: true
},
"application/vnd.cosmocaller": {
source: "iana",
extensions: ["cmc"]
},
"application/vnd.crick.clicker": {
source: "iana",
extensions: ["clkx"]
},
"application/vnd.crick.clicker.keyboard": {
source: "iana",
extensions: ["clkk"]
},
"application/vnd.crick.clicker.palette": {
source: "iana",
extensions: ["clkp"]
},
"application/vnd.crick.clicker.template": {
source: "iana",
extensions: ["clkt"]
},
"application/vnd.crick.clicker.wordbank": {
source: "iana",
extensions: ["clkw"]
},
"application/vnd.criticaltools.wbs+xml": {
source: "iana",
compressible: true,
extensions: ["wbs"]
},
"application/vnd.cryptii.pipe+json": {
source: "iana",
compressible: true
},
"application/vnd.crypto-shade-file": {
source: "iana"
},
"application/vnd.cryptomator.encrypted": {
source: "iana"
},
"application/vnd.cryptomator.vault": {
source: "iana"
},
"application/vnd.ctc-posml": {
source: "iana",
extensions: ["pml"]
},
"application/vnd.ctct.ws+xml": {
source: "iana",
compressible: true
},
"application/vnd.cups-pdf": {
source: "iana"
},
"application/vnd.cups-postscript": {
source: "iana"
},
"application/vnd.cups-ppd": {
source: "iana",
extensions: ["ppd"]
},
"application/vnd.cups-raster": {
source: "iana"
},
"application/vnd.cups-raw": {
source: "iana"
},
"application/vnd.curl": {
source: "iana"
},
"application/vnd.curl.car": {
source: "apache",
extensions: ["car"]
},
"application/vnd.curl.pcurl": {
source: "apache",
extensions: ["pcurl"]
},
"application/vnd.cyan.dean.root+xml": {
source: "iana",
compressible: true
},
"application/vnd.cybank": {
source: "iana"
},
"application/vnd.cyclonedx+json": {
source: "iana",
compressible: true
},
"application/vnd.cyclonedx+xml": {
source: "iana",
compressible: true
},
"application/vnd.d2l.coursepackage1p0+zip": {
source: "iana",
compressible: false
},
"application/vnd.d3m-dataset": {
source: "iana"
},
"application/vnd.d3m-problem": {
source: "iana"
},
"application/vnd.dart": {
source: "iana",
compressible: true,
extensions: ["dart"]
},
"application/vnd.data-vision.rdz": {
source: "iana",
extensions: ["rdz"]
},
"application/vnd.datalog": {
source: "iana"
},
"application/vnd.datapackage+json": {
source: "iana",
compressible: true
},
"application/vnd.dataresource+json": {
source: "iana",
compressible: true
},
"application/vnd.dbf": {
source: "iana",
extensions: ["dbf"]
},
"application/vnd.dcmp+xml": {
source: "iana",
compressible: true,
extensions: ["dcmp"]
},
"application/vnd.debian.binary-package": {
source: "iana"
},
"application/vnd.dece.data": {
source: "iana",
extensions: ["uvf", "uvvf", "uvd", "uvvd"]
},
"application/vnd.dece.ttml+xml": {
source: "iana",
compressible: true,
extensions: ["uvt", "uvvt"]
},
"application/vnd.dece.unspecified": {
source: "iana",
extensions: ["uvx", "uvvx"]
},
"application/vnd.dece.zip": {
source: "iana",
extensions: ["uvz", "uvvz"]
},
"application/vnd.denovo.fcselayout-link": {
source: "iana",
extensions: ["fe_launch"]
},
"application/vnd.desmume.movie": {
source: "iana"
},
"application/vnd.dir-bi.plate-dl-nosuffix": {
source: "iana"
},
"application/vnd.dm.delegation+xml": {
source: "iana",
compressible: true
},
"application/vnd.dna": {
source: "iana",
extensions: ["dna"]
},
"application/vnd.document+json": {
source: "iana",
compressible: true
},
"application/vnd.dolby.mlp": {
source: "apache",
extensions: ["mlp"]
},
"application/vnd.dolby.mobile.1": {
source: "iana"
},
"application/vnd.dolby.mobile.2": {
source: "iana"
},
"application/vnd.doremir.scorecloud-binary-document": {
source: "iana"
},
"application/vnd.dpgraph": {
source: "iana",
extensions: ["dpg"]
},
"application/vnd.dreamfactory": {
source: "iana",
extensions: ["dfac"]
},
"application/vnd.drive+json": {
source: "iana",
compressible: true
},
"application/vnd.ds-keypoint": {
source: "apache",
extensions: ["kpxx"]
},
"application/vnd.dtg.local": {
source: "iana"
},
"application/vnd.dtg.local.flash": {
source: "iana"
},
"application/vnd.dtg.local.html": {
source: "iana"
},
"application/vnd.dvb.ait": {
source: "iana",
extensions: ["ait"]
},
"application/vnd.dvb.dvbisl+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.dvbj": {
source: "iana"
},
"application/vnd.dvb.esgcontainer": {
source: "iana"
},
"application/vnd.dvb.ipdcdftnotifaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess2": {
source: "iana"
},
"application/vnd.dvb.ipdcesgpdd": {
source: "iana"
},
"application/vnd.dvb.ipdcroaming": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-base": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-enhancement": {
source: "iana"
},
"application/vnd.dvb.notif-aggregate-root+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-container+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-generic+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-msglist+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-response+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-init+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.pfr": {
source: "iana"
},
"application/vnd.dvb.service": {
source: "iana",
extensions: ["svc"]
},
"application/vnd.dxr": {
source: "iana"
},
"application/vnd.dynageo": {
source: "iana",
extensions: ["geo"]
},
"application/vnd.dzr": {
source: "iana"
},
"application/vnd.easykaraoke.cdgdownload": {
source: "iana"
},
"application/vnd.ecdis-update": {
source: "iana"
},
"application/vnd.ecip.rlp": {
source: "iana"
},
"application/vnd.eclipse.ditto+json": {
source: "iana",
compressible: true
},
"application/vnd.ecowin.chart": {
source: "iana",
extensions: ["mag"]
},
"application/vnd.ecowin.filerequest": {
source: "iana"
},
"application/vnd.ecowin.fileupdate": {
source: "iana"
},
"application/vnd.ecowin.series": {
source: "iana"
},
"application/vnd.ecowin.seriesrequest": {
source: "iana"
},
"application/vnd.ecowin.seriesupdate": {
source: "iana"
},
"application/vnd.efi.img": {
source: "iana"
},
"application/vnd.efi.iso": {
source: "iana"
},
"application/vnd.eln+zip": {
source: "iana",
compressible: false
},
"application/vnd.emclient.accessrequest+xml": {
source: "iana",
compressible: true
},
"application/vnd.enliven": {
source: "iana",
extensions: ["nml"]
},
"application/vnd.enphase.envoy": {
source: "iana"
},
"application/vnd.eprints.data+xml": {
source: "iana",
compressible: true
},
"application/vnd.epson.esf": {
source: "iana",
extensions: ["esf"]
},
"application/vnd.epson.msf": {
source: "iana",
extensions: ["msf"]
},
"application/vnd.epson.quickanime": {
source: "iana",
extensions: ["qam"]
},
"application/vnd.epson.salt": {
source: "iana",
extensions: ["slt"]
},
"application/vnd.epson.ssf": {
source: "iana",
extensions: ["ssf"]
},
"application/vnd.ericsson.quickcall": {
source: "iana"
},
"application/vnd.erofs": {
source: "iana"
},
"application/vnd.espass-espass+zip": {
source: "iana",
compressible: false
},
"application/vnd.eszigno3+xml": {
source: "iana",
compressible: true,
extensions: ["es3", "et3"]
},
"application/vnd.etsi.aoc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.asic-e+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.asic-s+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.cug+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvcommand+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-bc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-cod+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-npvr+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvservice+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsync+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mcid+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mheg5": {
source: "iana"
},
"application/vnd.etsi.overload-control-policy-dataset+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.pstn+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.sci+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.simservs+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.timestamp-token": {
source: "iana"
},
"application/vnd.etsi.tsl+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.tsl.der": {
source: "iana"
},
"application/vnd.eu.kasparian.car+json": {
source: "iana",
compressible: true
},
"application/vnd.eudora.data": {
source: "iana"
},
"application/vnd.evolv.ecig.profile": {
source: "iana"
},
"application/vnd.evolv.ecig.settings": {
source: "iana"
},
"application/vnd.evolv.ecig.theme": {
source: "iana"
},
"application/vnd.exstream-empower+zip": {
source: "iana",
compressible: false
},
"application/vnd.exstream-package": {
source: "iana"
},
"application/vnd.ezpix-album": {
source: "iana",
extensions: ["ez2"]
},
"application/vnd.ezpix-package": {
source: "iana",
extensions: ["ez3"]
},
"application/vnd.f-secure.mobile": {
source: "iana"
},
"application/vnd.familysearch.gedcom+zip": {
source: "iana",
compressible: false
},
"application/vnd.fastcopy-disk-image": {
source: "iana"
},
"application/vnd.fdf": {
source: "apache",
extensions: ["fdf"]
},
"application/vnd.fdsn.mseed": {
source: "iana",
extensions: ["mseed"]
},
"application/vnd.fdsn.seed": {
source: "iana",
extensions: ["seed", "dataless"]
},
"application/vnd.fdsn.stationxml+xml": {
source: "iana",
charset: "XML-BASED",
compressible: true
},
"application/vnd.ffsns": {
source: "iana"
},
"application/vnd.ficlab.flb+zip": {
source: "iana",
compressible: false
},
"application/vnd.filmit.zfc": {
source: "iana"
},
"application/vnd.fints": {
source: "iana"
},
"application/vnd.firemonkeys.cloudcell": {
source: "iana"
},
"application/vnd.flographit": {
source: "iana",
extensions: ["gph"]
},
"application/vnd.fluxtime.clip": {
source: "iana",
extensions: ["ftc"]
},
"application/vnd.font-fontforge-sfd": {
source: "iana"
},
"application/vnd.framemaker": {
source: "iana",
extensions: ["fm", "frame", "maker", "book"]
},
"application/vnd.freelog.comic": {
source: "iana"
},
"application/vnd.frogans.fnc": {
source: "apache",
extensions: ["fnc"]
},
"application/vnd.frogans.ltf": {
source: "apache",
extensions: ["ltf"]
},
"application/vnd.fsc.weblaunch": {
source: "iana",
extensions: ["fsc"]
},
"application/vnd.fujifilm.fb.docuworks": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.binder": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.container": {
source: "iana"
},
"application/vnd.fujifilm.fb.jfi+xml": {
source: "iana",
compressible: true
},
"application/vnd.fujitsu.oasys": {
source: "iana",
extensions: ["oas"]
},
"application/vnd.fujitsu.oasys2": {
source: "iana",
extensions: ["oa2"]
},
"application/vnd.fujitsu.oasys3": {
source: "iana",
extensions: ["oa3"]
},
"application/vnd.fujitsu.oasysgp": {
source: "iana",
extensions: ["fg5"]
},
"application/vnd.fujitsu.oasysprs": {
source: "iana",
extensions: ["bh2"]
},
"application/vnd.fujixerox.art-ex": {
source: "iana"
},
"application/vnd.fujixerox.art4": {
source: "iana"
},
"application/vnd.fujixerox.ddd": {
source: "iana",
extensions: ["ddd"]
},
"application/vnd.fujixerox.docuworks": {
source: "iana",
extensions: ["xdw"]
},
"application/vnd.fujixerox.docuworks.binder": {
source: "iana",
extensions: ["xbd"]
},
"application/vnd.fujixerox.docuworks.container": {
source: "iana"
},
"application/vnd.fujixerox.hbpl": {
source: "iana"
},
"application/vnd.fut-misnet": {
source: "iana"
},
"application/vnd.futoin+cbor": {
source: "iana"
},
"application/vnd.futoin+json": {
source: "iana",
compressible: true
},
"application/vnd.fuzzysheet": {
source: "iana",
extensions: ["fzs"]
},
"application/vnd.ga4gh.passport+jwt": {
source: "iana"
},
"application/vnd.genomatix.tuxedo": {
source: "iana",
extensions: ["txd"]
},
"application/vnd.genozip": {
source: "iana"
},
"application/vnd.gentics.grd+json": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.catmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.ebuild": {
source: "iana"
},
"application/vnd.gentoo.eclass": {
source: "iana"
},
"application/vnd.gentoo.gpkg": {
source: "iana"
},
"application/vnd.gentoo.manifest": {
source: "iana"
},
"application/vnd.gentoo.pkgmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.xpak": {
source: "iana"
},
"application/vnd.geo+json": {
source: "apache",
compressible: true
},
"application/vnd.geocube+xml": {
source: "apache",
compressible: true
},
"application/vnd.geogebra.file": {
source: "iana",
extensions: ["ggb"]
},
"application/vnd.geogebra.pinboard": {
source: "iana"
},
"application/vnd.geogebra.slides": {
source: "iana",
extensions: ["ggs"]
},
"application/vnd.geogebra.tool": {
source: "iana",
extensions: ["ggt"]
},
"application/vnd.geometry-explorer": {
source: "iana",
extensions: ["gex", "gre"]
},
"application/vnd.geonext": {
source: "iana",
extensions: ["gxt"]
},
"application/vnd.geoplan": {
source: "iana",
extensions: ["g2w"]
},
"application/vnd.geospace": {
source: "iana",
extensions: ["g3w"]
},
"application/vnd.gerber": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt-response": {
source: "iana"
},
"application/vnd.gmx": {
source: "iana",
extensions: ["gmx"]
},
"application/vnd.gnu.taler.exchange+json": {
source: "iana",
compressible: true
},
"application/vnd.gnu.taler.merchant+json": {
source: "iana",
compressible: true
},
"application/vnd.google-apps.audio": {},
"application/vnd.google-apps.document": {
compressible: false,
extensions: ["gdoc"]
},
"application/vnd.google-apps.drawing": {
compressible: false,
extensions: ["gdraw"]
},
"application/vnd.google-apps.drive-sdk": {
compressible: false
},
"application/vnd.google-apps.file": {},
"application/vnd.google-apps.folder": {
compressible: false
},
"application/vnd.google-apps.form": {
compressible: false,
extensions: ["gform"]
},
"application/vnd.google-apps.fusiontable": {},
"application/vnd.google-apps.jam": {
compressible: false,
extensions: ["gjam"]
},
"application/vnd.google-apps.mail-layout": {},
"application/vnd.google-apps.map": {
compressible: false,
extensions: ["gmap"]
},
"application/vnd.google-apps.photo": {},
"application/vnd.google-apps.presentation": {
compressible: false,
extensions: ["gslides"]
},
"application/vnd.google-apps.script": {
compressible: false,
extensions: ["gscript"]
},
"application/vnd.google-apps.shortcut": {},
"application/vnd.google-apps.site": {
compressible: false,
extensions: ["gsite"]
},
"application/vnd.google-apps.spreadsheet": {
compressible: false,
extensions: ["gsheet"]
},
"application/vnd.google-apps.unknown": {},
"application/vnd.google-apps.video": {},
"application/vnd.google-earth.kml+xml": {
source: "iana",
compressible: true,
extensions: ["kml"]
},
"application/vnd.google-earth.kmz": {
source: "iana",
compressible: false,
extensions: ["kmz"]
},
"application/vnd.gov.sk.e-form+xml": {
source: "apache",
compressible: true
},
"application/vnd.gov.sk.e-form+zip": {
source: "iana",
compressible: false
},
"application/vnd.gov.sk.xmldatacontainer+xml": {
source: "iana",
compressible: true,
extensions: ["xdcf"]
},
"application/vnd.gpxsee.map+xml": {
source: "iana",
compressible: true
},
"application/vnd.grafeq": {
source: "iana",
extensions: ["gqf", "gqs"]
},
"application/vnd.gridmp": {
source: "iana"
},
"application/vnd.groove-account": {
source: "iana",
extensions: ["gac"]
},
"application/vnd.groove-help": {
source: "iana",
extensions: ["ghf"]
},
"application/vnd.groove-identity-message": {
source: "iana",
extensions: ["gim"]
},
"application/vnd.groove-injector": {
source: "iana",
extensions: ["grv"]
},
"application/vnd.groove-tool-message": {
source: "iana",
extensions: ["gtm"]
},
"application/vnd.groove-tool-template": {
source: "iana",
extensions: ["tpl"]
},
"application/vnd.groove-vcard": {
source: "iana",
extensions: ["vcg"]
},
"application/vnd.hal+json": {
source: "iana",
compressible: true
},
"application/vnd.hal+xml": {
source: "iana",
compressible: true,
extensions: ["hal"]
},
"application/vnd.handheld-entertainment+xml": {
source: "iana",
compressible: true,
extensions: ["zmm"]
},
"application/vnd.hbci": {
source: "iana",
extensions: ["hbci"]
},
"application/vnd.hc+json": {
source: "iana",
compressible: true
},
"application/vnd.hcl-bireports": {
source: "iana"
},
"application/vnd.hdt": {
source: "iana"
},
"application/vnd.heroku+json": {
source: "iana",
compressible: true
},
"application/vnd.hhe.lesson-player": {
source: "iana",
extensions: ["les"]
},
"application/vnd.hp-hpgl": {
source: "iana",
extensions: ["hpgl"]
},
"application/vnd.hp-hpid": {
source: "iana",
extensions: ["hpid"]
},
"application/vnd.hp-hps": {
source: "iana",
extensions: ["hps"]
},
"application/vnd.hp-jlyt": {
source: "iana",
extensions: ["jlt"]
},
"application/vnd.hp-pcl": {
source: "iana",
extensions: ["pcl"]
},
"application/vnd.hp-pclxl": {
source: "iana",
extensions: ["pclxl"]
},
"application/vnd.hsl": {
source: "iana"
},
"application/vnd.httphone": {
source: "iana"
},
"application/vnd.hydrostatix.sof-data": {
source: "iana",
extensions: ["sfd-hdstx"]
},
"application/vnd.hyper+json": {
source: "iana",
compressible: true
},
"application/vnd.hyper-item+json": {
source: "iana",
compressible: true
},
"application/vnd.hyperdrive+json": {
source: "iana",
compressible: true
},
"application/vnd.hzn-3d-crossword": {
source: "iana"
},
"application/vnd.ibm.afplinedata": {
source: "apache"
},
"application/vnd.ibm.electronic-media": {
source: "iana"
},
"application/vnd.ibm.minipay": {
source: "iana",
extensions: ["mpy"]
},
"application/vnd.ibm.modcap": {
source: "apache",
extensions: ["afp", "listafp", "list3820"]
},
"application/vnd.ibm.rights-management": {
source: "iana",
extensions: ["irm"]
},
"application/vnd.ibm.secure-container": {
source: "iana",
extensions: ["sc"]
},
"application/vnd.iccprofile": {
source: "iana",
extensions: ["icc", "icm"]
},
"application/vnd.ieee.1905": {
source: "iana"
},
"application/vnd.igloader": {
source: "iana",
extensions: ["igl"]
},
"application/vnd.imagemeter.folder+zip": {
source: "iana",
compressible: false
},
"application/vnd.imagemeter.image+zip": {
source: "iana",
compressible: false
},
"application/vnd.immervision-ivp": {
source: "iana",
extensions: ["ivp"]
},
"application/vnd.immervision-ivu": {
source: "iana",
extensions: ["ivu"]
},
"application/vnd.ims.imsccv1p1": {
source: "iana"
},
"application/vnd.ims.imsccv1p2": {
source: "iana"
},
"application/vnd.ims.imsccv1p3": {
source: "iana"
},
"application/vnd.ims.lis.v2.result+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolconsumerprofile+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy.id+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings.simple+json": {
source: "iana",
compressible: true
},
"application/vnd.informedcontrol.rms+xml": {
source: "iana",
compressible: true
},
"application/vnd.informix-visionary": {
source: "apache"
},
"application/vnd.infotech.project": {
source: "iana"
},
"application/vnd.infotech.project+xml": {
source: "iana",
compressible: true
},
"application/vnd.innopath.wamp.notification": {
source: "iana"
},
"application/vnd.insors.igm": {
source: "iana",
extensions: ["igm"]
},
"application/vnd.intercon.formnet": {
source: "iana",
extensions: ["xpw", "xpx"]
},
"application/vnd.intergeo": {
source: "iana",
extensions: ["i2g"]
},
"application/vnd.intertrust.digibox": {
source: "iana"
},
"application/vnd.intertrust.nncp": {
source: "iana"
},
"application/vnd.intu.qbo": {
source: "iana",
extensions: ["qbo"]
},
"application/vnd.intu.qfx": {
source: "iana",
extensions: ["qfx"]
},
"application/vnd.ipfs.ipns-record": {
source: "iana"
},
"application/vnd.ipld.car": {
source: "iana"
},
"application/vnd.ipld.dag-cbor": {
source: "iana"
},
"application/vnd.ipld.dag-json": {
source: "iana"
},
"application/vnd.ipld.raw": {
source: "iana"
},
"application/vnd.iptc.g2.catalogitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.conceptitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.knowledgeitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.packageitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.planningitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.ipunplugged.rcprofile": {
source: "iana",
extensions: ["rcprofile"]
},
"application/vnd.irepository.package+xml": {
source: "iana",
compressible: true,
extensions: ["irp"]
},
"application/vnd.is-xpr": {
source: "iana",
extensions: ["xpr"]
},
"application/vnd.isac.fcs": {
source: "iana",
extensions: ["fcs"]
},
"application/vnd.iso11783-10+zip": {
source: "iana",
compressible: false
},
"application/vnd.jam": {
source: "iana",
extensions: ["jam"]
},
"application/vnd.japannet-directory-service": {
source: "iana"
},
"application/vnd.japannet-jpnstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-payment-wakeup": {
source: "iana"
},
"application/vnd.japannet-registration": {
source: "iana"
},
"application/vnd.japannet-registration-wakeup": {
source: "iana"
},
"application/vnd.japannet-setstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-verification": {
source: "iana"
},
"application/vnd.japannet-verification-wakeup": {
source: "iana"
},
"application/vnd.jcp.javame.midlet-rms": {
source: "iana",
extensions: ["rms"]
},
"application/vnd.jisp": {
source: "iana",
extensions: ["jisp"]
},
"application/vnd.joost.joda-archive": {
source: "iana",
extensions: ["joda"]
},
"application/vnd.jsk.isdn-ngn": {
source: "iana"
},
"application/vnd.kahootz": {
source: "iana",
extensions: ["ktz", "ktr"]
},
"application/vnd.kde.karbon": {
source: "iana",
extensions: ["karbon"]
},
"application/vnd.kde.kchart": {
source: "iana",
extensions: ["chrt"]
},
"application/vnd.kde.kformula": {
source: "iana",
extensions: ["kfo"]
},
"application/vnd.kde.kivio": {
source: "iana",
extensions: ["flw"]
},
"application/vnd.kde.kontour": {
source: "iana",
extensions: ["kon"]
},
"application/vnd.kde.kpresenter": {
source: "iana",
extensions: ["kpr", "kpt"]
},
"application/vnd.kde.kspread": {
source: "iana",
extensions: ["ksp"]
},
"application/vnd.kde.kword": {
source: "iana",
extensions: ["kwd", "kwt"]
},
"application/vnd.kdl": {
source: "iana"
},
"application/vnd.kenameaapp": {
source: "iana",
extensions: ["htke"]
},
"application/vnd.keyman.kmp+zip": {
source: "iana",
compressible: false
},
"application/vnd.keyman.kmx": {
source: "iana"
},
"application/vnd.kidspiration": {
source: "iana",
extensions: ["kia"]
},
"application/vnd.kinar": {
source: "iana",
extensions: ["kne", "knp"]
},
"application/vnd.koan": {
source: "iana",
extensions: ["skp", "skd", "skt", "skm"]
},
"application/vnd.kodak-descriptor": {
source: "iana",
extensions: ["sse"]
},
"application/vnd.las": {
source: "iana"
},
"application/vnd.las.las+json": {
source: "iana",
compressible: true
},
"application/vnd.las.las+xml": {
source: "iana",
compressible: true,
extensions: ["lasxml"]
},
"application/vnd.laszip": {
source: "iana"
},
"application/vnd.ldev.productlicensing": {
source: "iana"
},
"application/vnd.leap+json": {
source: "iana",
compressible: true
},
"application/vnd.liberty-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.llamagraphics.life-balance.desktop": {
source: "iana",
extensions: ["lbd"]
},
"application/vnd.llamagraphics.life-balance.exchange+xml": {
source: "iana",
compressible: true,
extensions: ["lbe"]
},
"application/vnd.logipipe.circuit+zip": {
source: "iana",
compressible: false
},
"application/vnd.loom": {
source: "iana"
},
"application/vnd.lotus-1-2-3": {
source: "iana",
extensions: ["123"]
},
"application/vnd.lotus-approach": {
source: "iana",
extensions: ["apr"]
},
"application/vnd.lotus-freelance": {
source: "iana",
extensions: ["pre"]
},
"application/vnd.lotus-notes": {
source: "iana",
extensions: ["nsf"]
},
"application/vnd.lotus-organizer": {
source: "iana",
extensions: ["org"]
},
"application/vnd.lotus-screencam": {
source: "iana",
extensions: ["scm"]
},
"application/vnd.lotus-wordpro": {
source: "iana",
extensions: ["lwp"]
},
"application/vnd.macports.portpkg": {
source: "iana",
extensions: ["portpkg"]
},
"application/vnd.mapbox-vector-tile": {
source: "iana",
extensions: ["mvt"]
},
"application/vnd.marlin.drm.actiontoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.conftoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.license+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.mdcf": {
source: "iana"
},
"application/vnd.mason+json": {
source: "iana",
compressible: true
},
"application/vnd.maxar.archive.3tz+zip": {
source: "iana",
compressible: false
},
"application/vnd.maxmind.maxmind-db": {
source: "iana"
},
"application/vnd.mcd": {
source: "iana",
extensions: ["mcd"]
},
"application/vnd.mdl": {
source: "iana"
},
"application/vnd.mdl-mbsdf": {
source: "iana"
},
"application/vnd.medcalcdata": {
source: "iana",
extensions: ["mc1"]
},
"application/vnd.mediastation.cdkey": {
source: "iana",
extensions: ["cdkey"]
},
"application/vnd.medicalholodeck.recordxr": {
source: "iana"
},
"application/vnd.meridian-slingshot": {
source: "iana"
},
"application/vnd.mermaid": {
source: "iana"
},
"application/vnd.mfer": {
source: "iana",
extensions: ["mwf"]
},
"application/vnd.mfmp": {
source: "iana",
extensions: ["mfm"]
},
"application/vnd.micro+json": {
source: "iana",
compressible: true
},
"application/vnd.micrografx.flo": {
source: "iana",
extensions: ["flo"]
},
"application/vnd.micrografx.igx": {
source: "iana",
extensions: ["igx"]
},
"application/vnd.microsoft.portable-executable": {
source: "iana"
},
"application/vnd.microsoft.windows.thumbnail-cache": {
source: "iana"
},
"application/vnd.miele+json": {
source: "iana",
compressible: true
},
"application/vnd.mif": {
source: "iana",
extensions: ["mif"]
},
"application/vnd.minisoft-hp3000-save": {
source: "iana"
},
"application/vnd.mitsubishi.misty-guard.trustweb": {
source: "iana"
},
"application/vnd.mobius.daf": {
source: "iana",
extensions: ["daf"]
},
"application/vnd.mobius.dis": {
source: "iana",
extensions: ["dis"]
},
"application/vnd.mobius.mbk": {
source: "iana",
extensions: ["mbk"]
},
"application/vnd.mobius.mqy": {
source: "iana",
extensions: ["mqy"]
},
"application/vnd.mobius.msl": {
source: "iana",
extensions: ["msl"]
},
"application/vnd.mobius.plc": {
source: "iana",
extensions: ["plc"]
},
"application/vnd.mobius.txf": {
source: "iana",
extensions: ["txf"]
},
"application/vnd.modl": {
source: "iana"
},
"application/vnd.mophun.application": {
source: "iana",
extensions: ["mpn"]
},
"application/vnd.mophun.certificate": {
source: "iana",
extensions: ["mpc"]
},
"application/vnd.motorola.flexsuite": {
source: "iana"
},
"application/vnd.motorola.flexsuite.adsi": {
source: "iana"
},
"application/vnd.motorola.flexsuite.fis": {
source: "iana"
},
"application/vnd.motorola.flexsuite.gotap": {
source: "iana"
},
"application/vnd.motorola.flexsuite.kmr": {
source: "iana"
},
"application/vnd.motorola.flexsuite.ttc": {
source: "iana"
},
"application/vnd.motorola.flexsuite.wem": {
source: "iana"
},
"application/vnd.motorola.iprm": {
source: "iana"
},
"application/vnd.mozilla.xul+xml": {
source: "iana",
compressible: true,
extensions: ["xul"]
},
"application/vnd.ms-3mfdocument": {
source: "iana"
},
"application/vnd.ms-artgalry": {
source: "iana",
extensions: ["cil"]
},
"application/vnd.ms-asf": {
source: "iana"
},
"application/vnd.ms-cab-compressed": {
source: "iana",
extensions: ["cab"]
},
"application/vnd.ms-color.iccprofile": {
source: "apache"
},
"application/vnd.ms-excel": {
source: "iana",
compressible: false,
extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"]
},
"application/vnd.ms-excel.addin.macroenabled.12": {
source: "iana",
extensions: ["xlam"]
},
"application/vnd.ms-excel.sheet.binary.macroenabled.12": {
source: "iana",
extensions: ["xlsb"]
},
"application/vnd.ms-excel.sheet.macroenabled.12": {
source: "iana",
extensions: ["xlsm"]
},
"application/vnd.ms-excel.template.macroenabled.12": {
source: "iana",
extensions: ["xltm"]
},
"application/vnd.ms-fontobject": {
source: "iana",
compressible: true,
extensions: ["eot"]
},
"application/vnd.ms-htmlhelp": {
source: "iana",
extensions: ["chm"]
},
"application/vnd.ms-ims": {
source: "iana",
extensions: ["ims"]
},
"application/vnd.ms-lrm": {
source: "iana",
extensions: ["lrm"]
},
"application/vnd.ms-office.activex+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-officetheme": {
source: "iana",
extensions: ["thmx"]
},
"application/vnd.ms-opentype": {
source: "apache",
compressible: true
},
"application/vnd.ms-outlook": {
compressible: false,
extensions: ["msg"]
},
"application/vnd.ms-package.obfuscated-opentype": {
source: "apache"
},
"application/vnd.ms-pki.seccat": {
source: "apache",
extensions: ["cat"]
},
"application/vnd.ms-pki.stl": {
source: "apache",
extensions: ["stl"]
},
"application/vnd.ms-playready.initiator+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-powerpoint": {
source: "iana",
compressible: false,
extensions: ["ppt", "pps", "pot"]
},
"application/vnd.ms-powerpoint.addin.macroenabled.12": {
source: "iana",
extensions: ["ppam"]
},
"application/vnd.ms-powerpoint.presentation.macroenabled.12": {
source: "iana",
extensions: ["pptm"]
},
"application/vnd.ms-powerpoint.slide.macroenabled.12": {
source: "iana",
extensions: ["sldm"]
},
"application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
source: "iana",
extensions: ["ppsm"]
},
"application/vnd.ms-powerpoint.template.macroenabled.12": {
source: "iana",
extensions: ["potm"]
},
"application/vnd.ms-printdevicecapabilities+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-printing.printticket+xml": {
source: "apache",
compressible: true
},
"application/vnd.ms-printschematicket+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-project": {
source: "iana",
extensions: ["mpp", "mpt"]
},
"application/vnd.ms-tnef": {
source: "iana"
},
"application/vnd.ms-visio.viewer": {
extensions: ["vdx"]
},
"application/vnd.ms-windows.devicepairing": {
source: "iana"
},
"application/vnd.ms-windows.nwprinting.oob": {
source: "iana"
},
"application/vnd.ms-windows.printerpairing": {
source: "iana"
},
"application/vnd.ms-windows.wsd.oob": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-resp": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-resp": {
source: "iana"
},
"application/vnd.ms-word.document.macroenabled.12": {
source: "iana",
extensions: ["docm"]
},
"application/vnd.ms-word.template.macroenabled.12": {
source: "iana",
extensions: ["dotm"]
},
"application/vnd.ms-works": {
source: "iana",
extensions: ["wps", "wks", "wcm", "wdb"]
},
"application/vnd.ms-wpl": {
source: "iana",
extensions: ["wpl"]
},
"application/vnd.ms-xpsdocument": {
source: "iana",
compressible: false,
extensions: ["xps"]
},
"application/vnd.msa-disk-image": {
source: "iana"
},
"application/vnd.mseq": {
source: "iana",
extensions: ["mseq"]
},
"application/vnd.msgpack": {
source: "iana"
},
"application/vnd.msign": {
source: "iana"
},
"application/vnd.multiad.creator": {
source: "iana"
},
"application/vnd.multiad.creator.cif": {
source: "iana"
},
"application/vnd.music-niff": {
source: "iana"
},
"application/vnd.musician": {
source: "iana",
extensions: ["mus"]
},
"application/vnd.muvee.style": {
source: "iana",
extensions: ["msty"]
},
"application/vnd.mynfc": {
source: "iana",
extensions: ["taglet"]
},
"application/vnd.nacamar.ybrid+json": {
source: "iana",
compressible: true
},
"application/vnd.nato.bindingdataobject+cbor": {
source: "iana"
},
"application/vnd.nato.bindingdataobject+json": {
source: "iana",
compressible: true
},
"application/vnd.nato.bindingdataobject+xml": {
source: "iana",
compressible: true,
extensions: ["bdo"]
},
"application/vnd.nato.openxmlformats-package.iepd+zip": {
source: "iana",
compressible: false
},
"application/vnd.ncd.control": {
source: "iana"
},
"application/vnd.ncd.reference": {
source: "iana"
},
"application/vnd.nearst.inv+json": {
source: "iana",
compressible: true
},
"application/vnd.nebumind.line": {
source: "iana"
},
"application/vnd.nervana": {
source: "iana"
},
"application/vnd.netfpx": {
source: "iana"
},
"application/vnd.neurolanguage.nlu": {
source: "iana",
extensions: ["nlu"]
},
"application/vnd.nimn": {
source: "iana"
},
"application/vnd.nintendo.nitro.rom": {
source: "iana"
},
"application/vnd.nintendo.snes.rom": {
source: "iana"
},
"application/vnd.nitf": {
source: "iana",
extensions: ["ntf", "nitf"]
},
"application/vnd.noblenet-directory": {
source: "iana",
extensions: ["nnd"]
},
"application/vnd.noblenet-sealer": {
source: "iana",
extensions: ["nns"]
},
"application/vnd.noblenet-web": {
source: "iana",
extensions: ["nnw"]
},
"application/vnd.nokia.catalogs": {
source: "iana"
},
"application/vnd.nokia.conml+wbxml": {
source: "iana"
},
"application/vnd.nokia.conml+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.iptv.config+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.isds-radio-presets": {
source: "iana"
},
"application/vnd.nokia.landmark+wbxml": {
source: "iana"
},
"application/vnd.nokia.landmark+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.landmarkcollection+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.n-gage.ac+xml": {
source: "iana",
compressible: true,
extensions: ["ac"]
},
"application/vnd.nokia.n-gage.data": {
source: "iana",
extensions: ["ngdat"]
},
"application/vnd.nokia.n-gage.symbian.install": {
source: "apache",
extensions: ["n-gage"]
},
"application/vnd.nokia.ncd": {
source: "iana"
},
"application/vnd.nokia.pcd+wbxml": {
source: "iana"
},
"application/vnd.nokia.pcd+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.radio-preset": {
source: "iana",
extensions: ["rpst"]
},
"application/vnd.nokia.radio-presets": {
source: "iana",
extensions: ["rpss"]
},
"application/vnd.novadigm.edm": {
source: "iana",
extensions: ["edm"]
},
"application/vnd.novadigm.edx": {
source: "iana",
extensions: ["edx"]
},
"application/vnd.novadigm.ext": {
source: "iana",
extensions: ["ext"]
},
"application/vnd.ntt-local.content-share": {
source: "iana"
},
"application/vnd.ntt-local.file-transfer": {
source: "iana"
},
"application/vnd.ntt-local.ogw_remote-access": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_remote": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_tcp_stream": {
source: "iana"
},
"application/vnd.oai.workflows": {
source: "iana"
},
"application/vnd.oai.workflows+json": {
source: "iana",
compressible: true
},
"application/vnd.oai.workflows+yaml": {
source: "iana"
},
"application/vnd.oasis.opendocument.base": {
source: "iana"
},
"application/vnd.oasis.opendocument.chart": {
source: "iana",
extensions: ["odc"]
},
"application/vnd.oasis.opendocument.chart-template": {
source: "iana",
extensions: ["otc"]
},
"application/vnd.oasis.opendocument.database": {
source: "apache",
extensions: ["odb"]
},
"application/vnd.oasis.opendocument.formula": {
source: "iana",
extensions: ["odf"]
},
"application/vnd.oasis.opendocument.formula-template": {
source: "iana",
extensions: ["odft"]
},
"application/vnd.oasis.opendocument.graphics": {
source: "iana",
compressible: false,
extensions: ["odg"]
},
"application/vnd.oasis.opendocument.graphics-template": {
source: "iana",
extensions: ["otg"]
},
"application/vnd.oasis.opendocument.image": {
source: "iana",
extensions: ["odi"]
},
"application/vnd.oasis.opendocument.image-template": {
source: "iana",
extensions: ["oti"]
},
"application/vnd.oasis.opendocument.presentation": {
source: "iana",
compressible: false,
extensions: ["odp"]
},
"application/vnd.oasis.opendocument.presentation-template": {
source: "iana",
extensions: ["otp"]
},
"application/vnd.oasis.opendocument.spreadsheet": {
source: "iana",
compressible: false,
extensions: ["ods"]
},
"application/vnd.oasis.opendocument.spreadsheet-template": {
source: "iana",
extensions: ["ots"]
},
"application/vnd.oasis.opendocument.text": {
source: "iana",
compressible: false,
extensions: ["odt"]
},
"application/vnd.oasis.opendocument.text-master": {
source: "iana",
extensions: ["odm"]
},
"application/vnd.oasis.opendocument.text-master-template": {
source: "iana"
},
"application/vnd.oasis.opendocument.text-template": {
source: "iana",
extensions: ["ott"]
},
"application/vnd.oasis.opendocument.text-web": {
source: "iana",
extensions: ["oth"]
},
"application/vnd.obn": {
source: "iana"
},
"application/vnd.ocf+cbor": {
source: "iana"
},
"application/vnd.oci.image.manifest.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.oftn.l10n+json": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessdownload+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessstreaming+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.cspg-hexbinary": {
source: "iana"
},
"application/vnd.oipf.dae.svg+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.dae.xhtml+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.mippvcontrolmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.pae.gem": {
source: "iana"
},
"application/vnd.oipf.spdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.spdlist+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.ueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.userprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.olpc-sugar": {
source: "iana",
extensions: ["xo"]
},
"application/vnd.oma-scws-config": {
source: "iana"
},
"application/vnd.oma-scws-http-request": {
source: "iana"
},
"application/vnd.oma-scws-http-response": {
source: "iana"
},
"application/vnd.oma.bcast.associated-procedure-parameter+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.drm-trigger+xml": {
source: "apache",
compressible: true
},
"application/vnd.oma.bcast.imd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.ltkm": {
source: "iana"
},
"application/vnd.oma.bcast.notification+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.provisioningtrigger": {
source: "iana"
},
"application/vnd.oma.bcast.sgboot": {
source: "iana"
},
"application/vnd.oma.bcast.sgdd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.sgdu": {
source: "iana"
},
"application/vnd.oma.bcast.simple-symbol-container": {
source: "iana"
},
"application/vnd.oma.bcast.smartcard-trigger+xml": {
source: "apache",
compressible: true
},
"application/vnd.oma.bcast.sprov+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.stkm": {
source: "iana"
},
"application/vnd.oma.cab-address-book+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-feature-handler+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-pcc+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-subs-invite+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-user-prefs+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.dcd": {
source: "iana"
},
"application/vnd.oma.dcdc": {
source: "iana"
},
"application/vnd.oma.dd2+xml": {
source: "iana",
compressible: true,
extensions: ["dd2"]
},
"application/vnd.oma.drm.risd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.group-usage-list+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+cbor": {
source: "iana"
},
"application/vnd.oma.lwm2m+json": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+tlv": {
source: "iana"
},
"application/vnd.oma.pal+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.detailed-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.final-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.groups+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.invocation-descriptor+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.optimized-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.push": {
source: "iana"
},
"application/vnd.oma.scidm.messages+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.xcap-directory+xml": {
source: "iana",
compressible: true
},
"application/vnd.omads-email+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-file+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-folder+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omaloc-supl-init": {
source: "iana"
},
"application/vnd.onepager": {
source: "iana"
},
"application/vnd.onepagertamp": {
source: "iana"
},
"application/vnd.onepagertamx": {
source: "iana"
},
"application/vnd.onepagertat": {
source: "iana"
},
"application/vnd.onepagertatp": {
source: "iana"
},
"application/vnd.onepagertatx": {
source: "iana"
},
"application/vnd.onvif.metadata": {
source: "iana"
},
"application/vnd.openblox.game+xml": {
source: "iana",
compressible: true,
extensions: ["obgx"]
},
"application/vnd.openblox.game-binary": {
source: "iana"
},
"application/vnd.openeye.oeb": {
source: "iana"
},
"application/vnd.openofficeorg.extension": {
source: "apache",
extensions: ["oxt"]
},
"application/vnd.openstreetmap.data+xml": {
source: "iana",
compressible: true,
extensions: ["osm"]
},
"application/vnd.opentimestamps.ots": {
source: "iana"
},
"application/vnd.openvpi.dspx+json": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.custom-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawing+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.extended-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation": {
source: "iana",
compressible: false,
extensions: ["pptx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slide": {
source: "iana",
extensions: ["sldx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
source: "iana",
extensions: ["ppsx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.template": {
source: "iana",
extensions: ["potx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
source: "iana",
compressible: false,
extensions: ["xlsx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
source: "iana",
extensions: ["xltx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.theme+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.themeoverride+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.vmldrawing": {
source: "iana"
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
source: "iana",
compressible: false,
extensions: ["docx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
source: "iana",
extensions: ["dotx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.core-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.relationships+xml": {
source: "iana",
compressible: true
},
"application/vnd.oracle.resource+json": {
source: "iana",
compressible: true
},
"application/vnd.orange.indata": {
source: "iana"
},
"application/vnd.osa.netdeploy": {
source: "iana"
},
"application/vnd.osgeo.mapguide.package": {
source: "iana",
extensions: ["mgp"]
},
"application/vnd.osgi.bundle": {
source: "iana"
},
"application/vnd.osgi.dp": {
source: "iana",
extensions: ["dp"]
},
"application/vnd.osgi.subsystem": {
source: "iana",
extensions: ["esa"]
},
"application/vnd.otps.ct-kip+xml": {
source: "iana",
compressible: true
},
"application/vnd.oxli.countgraph": {
source: "iana"
},
"application/vnd.pagerduty+json": {
source: "iana",
compressible: true
},
"application/vnd.palm": {
source: "iana",
extensions: ["pdb", "pqa", "oprc"]
},
"application/vnd.panoply": {
source: "iana"
},
"application/vnd.paos.xml": {
source: "iana"
},
"application/vnd.patentdive": {
source: "iana"
},
"application/vnd.patientecommsdoc": {
source: "iana"
},
"application/vnd.pawaafile": {
source: "iana",
extensions: ["paw"]
},
"application/vnd.pcos": {
source: "iana"
},
"application/vnd.pg.format": {
source: "iana",
extensions: ["str"]
},
"application/vnd.pg.osasli": {
source: "iana",
extensions: ["ei6"]
},
"application/vnd.piaccess.application-licence": {
source: "iana"
},
"application/vnd.picsel": {
source: "iana",
extensions: ["efif"]
},
"application/vnd.pmi.widget": {
source: "iana",
extensions: ["wg"]
},
"application/vnd.poc.group-advertisement+xml": {
source: "iana",
compressible: true
},
"application/vnd.pocketlearn": {
source: "iana",
extensions: ["plf"]
},
"application/vnd.powerbuilder6": {
source: "iana",
extensions: ["pbd"]
},
"application/vnd.powerbuilder6-s": {
source: "iana"
},
"application/vnd.powerbuilder7": {
source: "iana"
},
"application/vnd.powerbuilder7-s": {
source: "iana"
},
"application/vnd.powerbuilder75": {
source: "iana"
},
"application/vnd.powerbuilder75-s": {
source: "iana"
},
"application/vnd.preminet": {
source: "iana"
},
"application/vnd.previewsystems.box": {
source: "iana",
extensions: ["box"]
},
"application/vnd.procrate.brushset": {
extensions: ["brushset"]
},
"application/vnd.procreate.brush": {
extensions: ["brush"]
},
"application/vnd.procreate.dream": {
extensions: ["drm"]
},
"application/vnd.proteus.magazine": {
source: "iana",
extensions: ["mgz"]
},
"application/vnd.psfs": {
source: "iana"
},
"application/vnd.pt.mundusmundi": {
source: "iana"
},
"application/vnd.publishare-delta-tree": {
source: "iana",
extensions: ["qps"]
},
"application/vnd.pvi.ptid1": {
source: "iana",
extensions: ["ptid"]
},
"application/vnd.pwg-multiplexed": {
source: "iana"
},
"application/vnd.pwg-xhtml-print+xml": {
source: "iana",
compressible: true,
extensions: ["xhtm"]
},
"application/vnd.qualcomm.brew-app-res": {
source: "iana"
},
"application/vnd.quarantainenet": {
source: "iana"
},
"application/vnd.quark.quarkxpress": {
source: "iana",
extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"]
},
"application/vnd.quobject-quoxdocument": {
source: "iana"
},
"application/vnd.radisys.moml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conn+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-stream+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-base+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-detect+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-group+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-speech+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-transform+xml": {
source: "iana",
compressible: true
},
"application/vnd.rainstor.data": {
source: "iana"
},
"application/vnd.rapid": {
source: "iana"
},
"application/vnd.rar": {
source: "iana",
extensions: ["rar"]
},
"application/vnd.realvnc.bed": {
source: "iana",
extensions: ["bed"]
},
"application/vnd.recordare.musicxml": {
source: "iana",
extensions: ["mxl"]
},
"application/vnd.recordare.musicxml+xml": {
source: "iana",
compressible: true,
extensions: ["musicxml"]
},
"application/vnd.relpipe": {
source: "iana"
},
"application/vnd.renlearn.rlprint": {
source: "iana"
},
"application/vnd.resilient.logic": {
source: "iana"
},
"application/vnd.restful+json": {
source: "iana",
compressible: true
},
"application/vnd.rig.cryptonote": {
source: "iana",
extensions: ["cryptonote"]
},
"application/vnd.rim.cod": {
source: "apache",
extensions: ["cod"]
},
"application/vnd.rn-realmedia": {
source: "apache",
extensions: ["rm"]
},
"application/vnd.rn-realmedia-vbr": {
source: "apache",
extensions: ["rmvb"]
},
"application/vnd.route66.link66+xml": {
source: "iana",
compressible: true,
extensions: ["link66"]
},
"application/vnd.rs-274x": {
source: "iana"
},
"application/vnd.ruckus.download": {
source: "iana"
},
"application/vnd.s3sms": {
source: "iana"
},
"application/vnd.sailingtracker.track": {
source: "iana",
extensions: ["st"]
},
"application/vnd.sar": {
source: "iana"
},
"application/vnd.sbm.cid": {
source: "iana"
},
"application/vnd.sbm.mid2": {
source: "iana"
},
"application/vnd.scribus": {
source: "iana"
},
"application/vnd.sealed.3df": {
source: "iana"
},
"application/vnd.sealed.csf": {
source: "iana"
},
"application/vnd.sealed.doc": {
source: "iana"
},
"application/vnd.sealed.eml": {
source: "iana"
},
"application/vnd.sealed.mht": {
source: "iana"
},
"application/vnd.sealed.net": {
source: "iana"
},
"application/vnd.sealed.ppt": {
source: "iana"
},
"application/vnd.sealed.tiff": {
source: "iana"
},
"application/vnd.sealed.xls": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.html": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.pdf": {
source: "iana"
},
"application/vnd.seemail": {
source: "iana",
extensions: ["see"]
},
"application/vnd.seis+json": {
source: "iana",
compressible: true
},
"application/vnd.sema": {
source: "iana",
extensions: ["sema"]
},
"application/vnd.semd": {
source: "iana",
extensions: ["semd"]
},
"application/vnd.semf": {
source: "iana",
extensions: ["semf"]
},
"application/vnd.shade-save-file": {
source: "iana"
},
"application/vnd.shana.informed.formdata": {
source: "iana",
extensions: ["ifm"]
},
"application/vnd.shana.informed.formtemplate": {
source: "iana",
extensions: ["itp"]
},
"application/vnd.shana.informed.interchange": {
source: "iana",
extensions: ["iif"]
},
"application/vnd.shana.informed.package": {
source: "iana",
extensions: ["ipk"]
},
"application/vnd.shootproof+json": {
source: "iana",
compressible: true
},
"application/vnd.shopkick+json": {
source: "iana",
compressible: true
},
"application/vnd.shp": {
source: "iana"
},
"application/vnd.shx": {
source: "iana"
},
"application/vnd.sigrok.session": {
source: "iana"
},
"application/vnd.simtech-mindmapper": {
source: "iana",
extensions: ["twd", "twds"]
},
"application/vnd.siren+json": {
source: "iana",
compressible: true
},
"application/vnd.sketchometry": {
source: "iana"
},
"application/vnd.smaf": {
source: "iana",
extensions: ["mmf"]
},
"application/vnd.smart.notebook": {
source: "iana"
},
"application/vnd.smart.teacher": {
source: "iana",
extensions: ["teacher"]
},
"application/vnd.smintio.portals.archive": {
source: "iana"
},
"application/vnd.snesdev-page-table": {
source: "iana"
},
"application/vnd.software602.filler.form+xml": {
source: "iana",
compressible: true,
extensions: ["fo"]
},
"application/vnd.software602.filler.form-xml-zip": {
source: "iana"
},
"application/vnd.solent.sdkm+xml": {
source: "iana",
compressible: true,
extensions: ["sdkm", "sdkd"]
},
"application/vnd.spotfire.dxp": {
source: "iana",
extensions: ["dxp"]
},
"application/vnd.spotfire.sfs": {
source: "iana",
extensions: ["sfs"]
},
"application/vnd.sqlite3": {
source: "iana"
},
"application/vnd.sss-cod": {
source: "iana"
},
"application/vnd.sss-dtf": {
source: "iana"
},
"application/vnd.sss-ntf": {
source: "iana"
},
"application/vnd.stardivision.calc": {
source: "apache",
extensions: ["sdc"]
},
"application/vnd.stardivision.draw": {
source: "apache",
extensions: ["sda"]
},
"application/vnd.stardivision.impress": {
source: "apache",
extensions: ["sdd"]
},
"application/vnd.stardivision.math": {
source: "apache",
extensions: ["smf"]
},
"application/vnd.stardivision.writer": {
source: "apache",
extensions: ["sdw", "vor"]
},
"application/vnd.stardivision.writer-global": {
source: "apache",
extensions: ["sgl"]
},
"application/vnd.stepmania.package": {
source: "iana",
extensions: ["smzip"]
},
"application/vnd.stepmania.stepchart": {
source: "iana",
extensions: ["sm"]
},
"application/vnd.street-stream": {
source: "iana"
},
"application/vnd.sun.wadl+xml": {
source: "iana",
compressible: true,
extensions: ["wadl"]
},
"application/vnd.sun.xml.calc": {
source: "apache",
extensions: ["sxc"]
},
"application/vnd.sun.xml.calc.template": {
source: "apache",
extensions: ["stc"]
},
"application/vnd.sun.xml.draw": {
source: "apache",
extensions: ["sxd"]
},
"application/vnd.sun.xml.draw.template": {
source: "apache",
extensions: ["std"]
},
"application/vnd.sun.xml.impress": {
source: "apache",
extensions: ["sxi"]
},
"application/vnd.sun.xml.impress.template": {
source: "apache",
extensions: ["sti"]
},
"application/vnd.sun.xml.math": {
source: "apache",
extensions: ["sxm"]
},
"application/vnd.sun.xml.writer": {
source: "apache",
extensions: ["sxw"]
},
"application/vnd.sun.xml.writer.global": {
source: "apache",
extensions: ["sxg"]
},
"application/vnd.sun.xml.writer.template": {
source: "apache",
extensions: ["stw"]
},
"application/vnd.sus-calendar": {
source: "iana",
extensions: ["sus", "susp"]
},
"application/vnd.svd": {
source: "iana",
extensions: ["svd"]
},
"application/vnd.swiftview-ics": {
source: "iana"
},
"application/vnd.sybyl.mol2": {
source: "iana"
},
"application/vnd.sycle+xml": {
source: "iana",
compressible: true
},
"application/vnd.syft+json": {
source: "iana",
compressible: true
},
"application/vnd.symbian.install": {
source: "apache",
extensions: ["sis", "sisx"]
},
"application/vnd.syncml+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xsm"]
},
"application/vnd.syncml.dm+wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["bdm"]
},
"application/vnd.syncml.dm+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xdm"]
},
"application/vnd.syncml.dm.notification": {
source: "iana"
},
"application/vnd.syncml.dmddf+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmddf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["ddf"]
},
"application/vnd.syncml.dmtnds+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmtnds+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.syncml.ds.notification": {
source: "iana"
},
"application/vnd.tableschema+json": {
source: "iana",
compressible: true
},
"application/vnd.tao.intent-module-archive": {
source: "iana",
extensions: ["tao"]
},
"application/vnd.tcpdump.pcap": {
source: "iana",
extensions: ["pcap", "cap", "dmp"]
},
"application/vnd.think-cell.ppttc+json": {
source: "iana",
compressible: true
},
"application/vnd.tmd.mediaflex.api+xml": {
source: "iana",
compressible: true
},
"application/vnd.tml": {
source: "iana"
},
"application/vnd.tmobile-livetv": {
source: "iana",
extensions: ["tmo"]
},
"application/vnd.tri.onesource": {
source: "iana"
},
"application/vnd.trid.tpt": {
source: "iana",
extensions: ["tpt"]
},
"application/vnd.triscape.mxs": {
source: "iana",
extensions: ["mxs"]
},
"application/vnd.trueapp": {
source: "iana",
extensions: ["tra"]
},
"application/vnd.truedoc": {
source: "iana"
},
"application/vnd.ubisoft.webplayer": {
source: "iana"
},
"application/vnd.ufdl": {
source: "iana",
extensions: ["ufd", "ufdl"]
},
"application/vnd.uic.osdm+json": {
source: "iana",
compressible: true
},
"application/vnd.uiq.theme": {
source: "iana",
extensions: ["utz"]
},
"application/vnd.umajin": {
source: "iana",
extensions: ["umj"]
},
"application/vnd.unity": {
source: "iana",
extensions: ["unityweb"]
},
"application/vnd.uoml+xml": {
source: "iana",
compressible: true,
extensions: ["uoml", "uo"]
},
"application/vnd.uplanet.alert": {
source: "iana"
},
"application/vnd.uplanet.alert-wbxml": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice-wbxml": {
source: "iana"
},
"application/vnd.uplanet.cacheop": {
source: "iana"
},
"application/vnd.uplanet.cacheop-wbxml": {
source: "iana"
},
"application/vnd.uplanet.channel": {
source: "iana"
},
"application/vnd.uplanet.channel-wbxml": {
source: "iana"
},
"application/vnd.uplanet.list": {
source: "iana"
},
"application/vnd.uplanet.list-wbxml": {
source: "iana"
},
"application/vnd.uplanet.listcmd": {
source: "iana"
},
"application/vnd.uplanet.listcmd-wbxml": {
source: "iana"
},
"application/vnd.uplanet.signal": {
source: "iana"
},
"application/vnd.uri-map": {
source: "iana"
},
"application/vnd.valve.source.material": {
source: "iana"
},
"application/vnd.vcx": {
source: "iana",
extensions: ["vcx"]
},
"application/vnd.vd-study": {
source: "iana"
},
"application/vnd.vectorworks": {
source: "iana"
},
"application/vnd.vel+json": {
source: "iana",
compressible: true
},
"application/vnd.veraison.tsm-report+cbor": {
source: "iana"
},
"application/vnd.veraison.tsm-report+json": {
source: "iana",
compressible: true
},
"application/vnd.verimatrix.vcas": {
source: "iana"
},
"application/vnd.veritone.aion+json": {
source: "iana",
compressible: true
},
"application/vnd.veryant.thin": {
source: "iana"
},
"application/vnd.ves.encrypted": {
source: "iana"
},
"application/vnd.vidsoft.vidconference": {
source: "iana"
},
"application/vnd.visio": {
source: "iana",
extensions: ["vsd", "vst", "vss", "vsw", "vsdx", "vtx"]
},
"application/vnd.visionary": {
source: "iana",
extensions: ["vis"]
},
"application/vnd.vividence.scriptfile": {
source: "iana"
},
"application/vnd.vocalshaper.vsp4": {
source: "iana"
},
"application/vnd.vsf": {
source: "iana",
extensions: ["vsf"]
},
"application/vnd.wap.sic": {
source: "iana"
},
"application/vnd.wap.slc": {
source: "iana"
},
"application/vnd.wap.wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["wbxml"]
},
"application/vnd.wap.wmlc": {
source: "iana",
extensions: ["wmlc"]
},
"application/vnd.wap.wmlscriptc": {
source: "iana",
extensions: ["wmlsc"]
},
"application/vnd.wasmflow.wafl": {
source: "iana"
},
"application/vnd.webturbo": {
source: "iana",
extensions: ["wtb"]
},
"application/vnd.wfa.dpp": {
source: "iana"
},
"application/vnd.wfa.p2p": {
source: "iana"
},
"application/vnd.wfa.wsc": {
source: "iana"
},
"application/vnd.windows.devicepairing": {
source: "iana"
},
"application/vnd.wmc": {
source: "iana"
},
"application/vnd.wmf.bootstrap": {
source: "iana"
},
"application/vnd.wolfram.mathematica": {
source: "iana"
},
"application/vnd.wolfram.mathematica.package": {
source: "iana"
},
"application/vnd.wolfram.player": {
source: "iana",
extensions: ["nbp"]
},
"application/vnd.wordlift": {
source: "iana"
},
"application/vnd.wordperfect": {
source: "iana",
extensions: ["wpd"]
},
"application/vnd.wqd": {
source: "iana",
extensions: ["wqd"]
},
"application/vnd.wrq-hp3000-labelled": {
source: "iana"
},
"application/vnd.wt.stf": {
source: "iana",
extensions: ["stf"]
},
"application/vnd.wv.csp+wbxml": {
source: "iana"
},
"application/vnd.wv.csp+xml": {
source: "iana",
compressible: true
},
"application/vnd.wv.ssp+xml": {
source: "iana",
compressible: true
},
"application/vnd.xacml+json": {
source: "iana",
compressible: true
},
"application/vnd.xara": {
source: "iana",
extensions: ["xar"]
},
"application/vnd.xarin.cpj": {
source: "iana"
},
"application/vnd.xecrets-encrypted": {
source: "iana"
},
"application/vnd.xfdl": {
source: "iana",
extensions: ["xfdl"]
},
"application/vnd.xfdl.webform": {
source: "iana"
},
"application/vnd.xmi+xml": {
source: "iana",
compressible: true
},
"application/vnd.xmpie.cpkg": {
source: "iana"
},
"application/vnd.xmpie.dpkg": {
source: "iana"
},
"application/vnd.xmpie.plan": {
source: "iana"
},
"application/vnd.xmpie.ppkg": {
source: "iana"
},
"application/vnd.xmpie.xlim": {
source: "iana"
},
"application/vnd.yamaha.hv-dic": {
source: "iana",
extensions: ["hvd"]
},
"application/vnd.yamaha.hv-script": {
source: "iana",
extensions: ["hvs"]
},
"application/vnd.yamaha.hv-voice": {
source: "iana",
extensions: ["hvp"]
},
"application/vnd.yamaha.openscoreformat": {
source: "iana",
extensions: ["osf"]
},
"application/vnd.yamaha.openscoreformat.osfpvg+xml": {
source: "iana",
compressible: true,
extensions: ["osfpvg"]
},
"application/vnd.yamaha.remote-setup": {
source: "iana"
},
"application/vnd.yamaha.smaf-audio": {
source: "iana",
extensions: ["saf"]
},
"application/vnd.yamaha.smaf-phrase": {
source: "iana",
extensions: ["spf"]
},
"application/vnd.yamaha.through-ngn": {
source: "iana"
},
"application/vnd.yamaha.tunnel-udpencap": {
source: "iana"
},
"application/vnd.yaoweme": {
source: "iana"
},
"application/vnd.yellowriver-custom-menu": {
source: "iana",
extensions: ["cmp"]
},
"application/vnd.zul": {
source: "iana",
extensions: ["zir", "zirz"]
},
"application/vnd.zzazz.deck+xml": {
source: "iana",
compressible: true,
extensions: ["zaz"]
},
"application/voicexml+xml": {
source: "iana",
compressible: true,
extensions: ["vxml"]
},
"application/voucher-cms+json": {
source: "iana",
compressible: true
},
"application/voucher-jws+json": {
source: "iana",
compressible: true
},
"application/vp": {
source: "iana"
},
"application/vp+cose": {
source: "iana"
},
"application/vp+jwt": {
source: "iana"
},
"application/vq-rtcpxr": {
source: "iana"
},
"application/wasm": {
source: "iana",
compressible: true,
extensions: ["wasm"]
},
"application/watcherinfo+xml": {
source: "iana",
compressible: true,
extensions: ["wif"]
},
"application/webpush-options+json": {
source: "iana",
compressible: true
},
"application/whoispp-query": {
source: "iana"
},
"application/whoispp-response": {
source: "iana"
},
"application/widget": {
source: "iana",
extensions: ["wgt"]
},
"application/winhlp": {
source: "apache",
extensions: ["hlp"]
},
"application/wita": {
source: "iana"
},
"application/wordperfect5.1": {
source: "iana"
},
"application/wsdl+xml": {
source: "iana",
compressible: true,
extensions: ["wsdl"]
},
"application/wspolicy+xml": {
source: "iana",
compressible: true,
extensions: ["wspolicy"]
},
"application/x-7z-compressed": {
source: "apache",
compressible: false,
extensions: ["7z"]
},
"application/x-abiword": {
source: "apache",
extensions: ["abw"]
},
"application/x-ace-compressed": {
source: "apache",
extensions: ["ace"]
},
"application/x-amf": {
source: "apache"
},
"application/x-apple-diskimage": {
source: "apache",
extensions: ["dmg"]
},
"application/x-arj": {
compressible: false,
extensions: ["arj"]
},
"application/x-authorware-bin": {
source: "apache",
extensions: ["aab", "x32", "u32", "vox"]
},
"application/x-authorware-map": {
source: "apache",
extensions: ["aam"]
},
"application/x-authorware-seg": {
source: "apache",
extensions: ["aas"]
},
"application/x-bcpio": {
source: "apache",
extensions: ["bcpio"]
},
"application/x-bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/x-bittorrent": {
source: "apache",
extensions: ["torrent"]
},
"application/x-blender": {
extensions: ["blend"]
},
"application/x-blorb": {
source: "apache",
extensions: ["blb", "blorb"]
},
"application/x-bzip": {
source: "apache",
compressible: false,
extensions: ["bz"]
},
"application/x-bzip2": {
source: "apache",
compressible: false,
extensions: ["bz2", "boz"]
},
"application/x-cbr": {
source: "apache",
extensions: ["cbr", "cba", "cbt", "cbz", "cb7"]
},
"application/x-cdlink": {
source: "apache",
extensions: ["vcd"]
},
"application/x-cfs-compressed": {
source: "apache",
extensions: ["cfs"]
},
"application/x-chat": {
source: "apache",
extensions: ["chat"]
},
"application/x-chess-pgn": {
source: "apache",
extensions: ["pgn"]
},
"application/x-chrome-extension": {
extensions: ["crx"]
},
"application/x-cocoa": {
source: "nginx",
extensions: ["cco"]
},
"application/x-compress": {
source: "apache"
},
"application/x-compressed": {
extensions: ["rar"]
},
"application/x-conference": {
source: "apache",
extensions: ["nsc"]
},
"application/x-cpio": {
source: "apache",
extensions: ["cpio"]
},
"application/x-csh": {
source: "apache",
extensions: ["csh"]
},
"application/x-deb": {
compressible: false
},
"application/x-debian-package": {
source: "apache",
extensions: ["deb", "udeb"]
},
"application/x-dgc-compressed": {
source: "apache",
extensions: ["dgc"]
},
"application/x-director": {
source: "apache",
extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"]
},
"application/x-doom": {
source: "apache",
extensions: ["wad"]
},
"application/x-dtbncx+xml": {
source: "apache",
compressible: true,
extensions: ["ncx"]
},
"application/x-dtbook+xml": {
source: "apache",
compressible: true,
extensions: ["dtb"]
},
"application/x-dtbresource+xml": {
source: "apache",
compressible: true,
extensions: ["res"]
},
"application/x-dvi": {
source: "apache",
compressible: false,
extensions: ["dvi"]
},
"application/x-envoy": {
source: "apache",
extensions: ["evy"]
},
"application/x-eva": {
source: "apache",
extensions: ["eva"]
},
"application/x-font-bdf": {
source: "apache",
extensions: ["bdf"]
},
"application/x-font-dos": {
source: "apache"
},
"application/x-font-framemaker": {
source: "apache"
},
"application/x-font-ghostscript": {
source: "apache",
extensions: ["gsf"]
},
"application/x-font-libgrx": {
source: "apache"
},
"application/x-font-linux-psf": {
source: "apache",
extensions: ["psf"]
},
"application/x-font-pcf": {
source: "apache",
extensions: ["pcf"]
},
"application/x-font-snf": {
source: "apache",
extensions: ["snf"]
},
"application/x-font-speedo": {
source: "apache"
},
"application/x-font-sunos-news": {
source: "apache"
},
"application/x-font-type1": {
source: "apache",
extensions: ["pfa", "pfb", "pfm", "afm"]
},
"application/x-font-vfont": {
source: "apache"
},
"application/x-freearc": {
source: "apache",
extensions: ["arc"]
},
"application/x-futuresplash": {
source: "apache",
extensions: ["spl"]
},
"application/x-gca-compressed": {
source: "apache",
extensions: ["gca"]
},
"application/x-glulx": {
source: "apache",
extensions: ["ulx"]
},
"application/x-gnumeric": {
source: "apache",
extensions: ["gnumeric"]
},
"application/x-gramps-xml": {
source: "apache",
extensions: ["gramps"]
},
"application/x-gtar": {
source: "apache",
extensions: ["gtar"]
},
"application/x-gzip": {
source: "apache"
},
"application/x-hdf": {
source: "apache",
extensions: ["hdf"]
},
"application/x-httpd-php": {
compressible: true,
extensions: ["php"]
},
"application/x-install-instructions": {
source: "apache",
extensions: ["install"]
},
"application/x-ipynb+json": {
compressible: true,
extensions: ["ipynb"]
},
"application/x-iso9660-image": {
source: "apache",
extensions: ["iso"]
},
"application/x-iwork-keynote-sffkey": {
extensions: ["key"]
},
"application/x-iwork-numbers-sffnumbers": {
extensions: ["numbers"]
},
"application/x-iwork-pages-sffpages": {
extensions: ["pages"]
},
"application/x-java-archive-diff": {
source: "nginx",
extensions: ["jardiff"]
},
"application/x-java-jnlp-file": {
source: "apache",
compressible: false,
extensions: ["jnlp"]
},
"application/x-javascript": {
compressible: true
},
"application/x-keepass2": {
extensions: ["kdbx"]
},
"application/x-latex": {
source: "apache",
compressible: false,
extensions: ["latex"]
},
"application/x-lua-bytecode": {
extensions: ["luac"]
},
"application/x-lzh-compressed": {
source: "apache",
extensions: ["lzh", "lha"]
},
"application/x-makeself": {
source: "nginx",
extensions: ["run"]
},
"application/x-mie": {
source: "apache",
extensions: ["mie"]
},
"application/x-mobipocket-ebook": {
source: "apache",
extensions: ["prc", "mobi"]
},
"application/x-mpegurl": {
compressible: false
},
"application/x-ms-application": {
source: "apache",
extensions: ["application"]
},
"application/x-ms-shortcut": {
source: "apache",
extensions: ["lnk"]
},
"application/x-ms-wmd": {
source: "apache",
extensions: ["wmd"]
},
"application/x-ms-wmz": {
source: "apache",
extensions: ["wmz"]
},
"application/x-ms-xbap": {
source: "apache",
extensions: ["xbap"]
},
"application/x-msaccess": {
source: "apache",
extensions: ["mdb"]
},
"application/x-msbinder": {
source: "apache",
extensions: ["obd"]
},
"application/x-mscardfile": {
source: "apache",
extensions: ["crd"]
},
"application/x-msclip": {
source: "apache",
extensions: ["clp"]
},
"application/x-msdos-program": {
extensions: ["exe"]
},
"application/x-msdownload": {
source: "apache",
extensions: ["exe", "dll", "com", "bat", "msi"]
},
"application/x-msmediaview": {
source: "apache",
extensions: ["mvb", "m13", "m14"]
},
"application/x-msmetafile": {
source: "apache",
extensions: ["wmf", "wmz", "emf", "emz"]
},
"application/x-msmoney": {
source: "apache",
extensions: ["mny"]
},
"application/x-mspublisher": {
source: "apache",
extensions: ["pub"]
},
"application/x-msschedule": {
source: "apache",
extensions: ["scd"]
},
"application/x-msterminal": {
source: "apache",
extensions: ["trm"]
},
"application/x-mswrite": {
source: "apache",
extensions: ["wri"]
},
"application/x-netcdf": {
source: "apache",
extensions: ["nc", "cdf"]
},
"application/x-ns-proxy-autoconfig": {
compressible: true,
extensions: ["pac"]
},
"application/x-nzb": {
source: "apache",
extensions: ["nzb"]
},
"application/x-perl": {
source: "nginx",
extensions: ["pl", "pm"]
},
"application/x-pilot": {
source: "nginx",
extensions: ["prc", "pdb"]
},
"application/x-pkcs12": {
source: "apache",
compressible: false,
extensions: ["p12", "pfx"]
},
"application/x-pkcs7-certificates": {
source: "apache",
extensions: ["p7b", "spc"]
},
"application/x-pkcs7-certreqresp": {
source: "apache",
extensions: ["p7r"]
},
"application/x-pki-message": {
source: "iana"
},
"application/x-rar-compressed": {
source: "apache",
compressible: false,
extensions: ["rar"]
},
"application/x-redhat-package-manager": {
source: "nginx",
extensions: ["rpm"]
},
"application/x-research-info-systems": {
source: "apache",
extensions: ["ris"]
},
"application/x-sea": {
source: "nginx",
extensions: ["sea"]
},
"application/x-sh": {
source: "apache",
compressible: true,
extensions: ["sh"]
},
"application/x-shar": {
source: "apache",
extensions: ["shar"]
},
"application/x-shockwave-flash": {
source: "apache",
compressible: false,
extensions: ["swf"]
},
"application/x-silverlight-app": {
source: "apache",
extensions: ["xap"]
},
"application/x-sql": {
source: "apache",
extensions: ["sql"]
},
"application/x-stuffit": {
source: "apache",
compressible: false,
extensions: ["sit"]
},
"application/x-stuffitx": {
source: "apache",
extensions: ["sitx"]
},
"application/x-subrip": {
source: "apache",
extensions: ["srt"]
},
"application/x-sv4cpio": {
source: "apache",
extensions: ["sv4cpio"]
},
"application/x-sv4crc": {
source: "apache",
extensions: ["sv4crc"]
},
"application/x-t3vm-image": {
source: "apache",
extensions: ["t3"]
},
"application/x-tads": {
source: "apache",
extensions: ["gam"]
},
"application/x-tar": {
source: "apache",
compressible: true,
extensions: ["tar"]
},
"application/x-tcl": {
source: "apache",
extensions: ["tcl", "tk"]
},
"application/x-tex": {
source: "apache",
extensions: ["tex"]
},
"application/x-tex-tfm": {
source: "apache",
extensions: ["tfm"]
},
"application/x-texinfo": {
source: "apache",
extensions: ["texinfo", "texi"]
},
"application/x-tgif": {
source: "apache",
extensions: ["obj"]
},
"application/x-ustar": {
source: "apache",
extensions: ["ustar"]
},
"application/x-virtualbox-hdd": {
compressible: true,
extensions: ["hdd"]
},
"application/x-virtualbox-ova": {
compressible: true,
extensions: ["ova"]
},
"application/x-virtualbox-ovf": {
compressible: true,
extensions: ["ovf"]
},
"application/x-virtualbox-vbox": {
compressible: true,
extensions: ["vbox"]
},
"application/x-virtualbox-vbox-extpack": {
compressible: false,
extensions: ["vbox-extpack"]
},
"application/x-virtualbox-vdi": {
compressible: true,
extensions: ["vdi"]
},
"application/x-virtualbox-vhd": {
compressible: true,
extensions: ["vhd"]
},
"application/x-virtualbox-vmdk": {
compressible: true,
extensions: ["vmdk"]
},
"application/x-wais-source": {
source: "apache",
extensions: ["src"]
},
"application/x-web-app-manifest+json": {
compressible: true,
extensions: ["webapp"]
},
"application/x-www-form-urlencoded": {
source: "iana",
compressible: true
},
"application/x-x509-ca-cert": {
source: "iana",
extensions: ["der", "crt", "pem"]
},
"application/x-x509-ca-ra-cert": {
source: "iana"
},
"application/x-x509-next-ca-cert": {
source: "iana"
},
"application/x-xfig": {
source: "apache",
extensions: ["fig"]
},
"application/x-xliff+xml": {
source: "apache",
compressible: true,
extensions: ["xlf"]
},
"application/x-xpinstall": {
source: "apache",
compressible: false,
extensions: ["xpi"]
},
"application/x-xz": {
source: "apache",
extensions: ["xz"]
},
"application/x-zip-compressed": {
extensions: ["zip"]
},
"application/x-zmachine": {
source: "apache",
extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"]
},
"application/x400-bp": {
source: "iana"
},
"application/xacml+xml": {
source: "iana",
compressible: true
},
"application/xaml+xml": {
source: "apache",
compressible: true,
extensions: ["xaml"]
},
"application/xcap-att+xml": {
source: "iana",
compressible: true,
extensions: ["xav"]
},
"application/xcap-caps+xml": {
source: "iana",
compressible: true,
extensions: ["xca"]
},
"application/xcap-diff+xml": {
source: "iana",
compressible: true,
extensions: ["xdf"]
},
"application/xcap-el+xml": {
source: "iana",
compressible: true,
extensions: ["xel"]
},
"application/xcap-error+xml": {
source: "iana",
compressible: true
},
"application/xcap-ns+xml": {
source: "iana",
compressible: true,
extensions: ["xns"]
},
"application/xcon-conference-info+xml": {
source: "iana",
compressible: true
},
"application/xcon-conference-info-diff+xml": {
source: "iana",
compressible: true
},
"application/xenc+xml": {
source: "iana",
compressible: true,
extensions: ["xenc"]
},
"application/xfdf": {
source: "iana",
extensions: ["xfdf"]
},
"application/xhtml+xml": {
source: "iana",
compressible: true,
extensions: ["xhtml", "xht"]
},
"application/xhtml-voice+xml": {
source: "apache",
compressible: true
},
"application/xliff+xml": {
source: "iana",
compressible: true,
extensions: ["xlf"]
},
"application/xml": {
source: "iana",
compressible: true,
extensions: ["xml", "xsl", "xsd", "rng"]
},
"application/xml-dtd": {
source: "iana",
compressible: true,
extensions: ["dtd"]
},
"application/xml-external-parsed-entity": {
source: "iana"
},
"application/xml-patch+xml": {
source: "iana",
compressible: true
},
"application/xmpp+xml": {
source: "iana",
compressible: true
},
"application/xop+xml": {
source: "iana",
compressible: true,
extensions: ["xop"]
},
"application/xproc+xml": {
source: "apache",
compressible: true,
extensions: ["xpl"]
},
"application/xslt+xml": {
source: "iana",
compressible: true,
extensions: ["xsl", "xslt"]
},
"application/xspf+xml": {
source: "apache",
compressible: true,
extensions: ["xspf"]
},
"application/xv+xml": {
source: "iana",
compressible: true,
extensions: ["mxml", "xhvml", "xvml", "xvm"]
},
"application/yaml": {
source: "iana"
},
"application/yang": {
source: "iana",
extensions: ["yang"]
},
"application/yang-data+cbor": {
source: "iana"
},
"application/yang-data+json": {
source: "iana",
compressible: true
},
"application/yang-data+xml": {
source: "iana",
compressible: true
},
"application/yang-patch+json": {
source: "iana",
compressible: true
},
"application/yang-patch+xml": {
source: "iana",
compressible: true
},
"application/yang-sid+json": {
source: "iana",
compressible: true
},
"application/yin+xml": {
source: "iana",
compressible: true,
extensions: ["yin"]
},
"application/zip": {
source: "iana",
compressible: false,
extensions: ["zip"]
},
"application/zip+dotlottie": {
extensions: ["lottie"]
},
"application/zlib": {
source: "iana"
},
"application/zstd": {
source: "iana"
},
"audio/1d-interleaved-parityfec": {
source: "iana"
},
"audio/32kadpcm": {
source: "iana"
},
"audio/3gpp": {
source: "iana",
compressible: false,
extensions: ["3gpp"]
},
"audio/3gpp2": {
source: "iana"
},
"audio/aac": {
source: "iana",
extensions: ["adts", "aac"]
},
"audio/ac3": {
source: "iana"
},
"audio/adpcm": {
source: "apache",
extensions: ["adp"]
},
"audio/amr": {
source: "iana",
extensions: ["amr"]
},
"audio/amr-wb": {
source: "iana"
},
"audio/amr-wb+": {
source: "iana"
},
"audio/aptx": {
source: "iana"
},
"audio/asc": {
source: "iana"
},
"audio/atrac-advanced-lossless": {
source: "iana"
},
"audio/atrac-x": {
source: "iana"
},
"audio/atrac3": {
source: "iana"
},
"audio/basic": {
source: "iana",
compressible: false,
extensions: ["au", "snd"]
},
"audio/bv16": {
source: "iana"
},
"audio/bv32": {
source: "iana"
},
"audio/clearmode": {
source: "iana"
},
"audio/cn": {
source: "iana"
},
"audio/dat12": {
source: "iana"
},
"audio/dls": {
source: "iana"
},
"audio/dsr-es201108": {
source: "iana"
},
"audio/dsr-es202050": {
source: "iana"
},
"audio/dsr-es202211": {
source: "iana"
},
"audio/dsr-es202212": {
source: "iana"
},
"audio/dv": {
source: "iana"
},
"audio/dvi4": {
source: "iana"
},
"audio/eac3": {
source: "iana"
},
"audio/encaprtp": {
source: "iana"
},
"audio/evrc": {
source: "iana"
},
"audio/evrc-qcp": {
source: "iana"
},
"audio/evrc0": {
source: "iana"
},
"audio/evrc1": {
source: "iana"
},
"audio/evrcb": {
source: "iana"
},
"audio/evrcb0": {
source: "iana"
},
"audio/evrcb1": {
source: "iana"
},
"audio/evrcnw": {
source: "iana"
},
"audio/evrcnw0": {
source: "iana"
},
"audio/evrcnw1": {
source: "iana"
},
"audio/evrcwb": {
source: "iana"
},
"audio/evrcwb0": {
source: "iana"
},
"audio/evrcwb1": {
source: "iana"
},
"audio/evs": {
source: "iana"
},
"audio/flac": {
source: "iana"
},
"audio/flexfec": {
source: "iana"
},
"audio/fwdred": {
source: "iana"
},
"audio/g711-0": {
source: "iana"
},
"audio/g719": {
source: "iana"
},
"audio/g722": {
source: "iana"
},
"audio/g7221": {
source: "iana"
},
"audio/g723": {
source: "iana"
},
"audio/g726-16": {
source: "iana"
},
"audio/g726-24": {
source: "iana"
},
"audio/g726-32": {
source: "iana"
},
"audio/g726-40": {
source: "iana"
},
"audio/g728": {
source: "iana"
},
"audio/g729": {
source: "iana"
},
"audio/g7291": {
source: "iana"
},
"audio/g729d": {
source: "iana"
},
"audio/g729e": {
source: "iana"
},
"audio/gsm": {
source: "iana"
},
"audio/gsm-efr": {
source: "iana"
},
"audio/gsm-hr-08": {
source: "iana"
},
"audio/ilbc": {
source: "iana"
},
"audio/ip-mr_v2.5": {
source: "iana"
},
"audio/isac": {
source: "apache"
},
"audio/l16": {
source: "iana"
},
"audio/l20": {
source: "iana"
},
"audio/l24": {
source: "iana",
compressible: false
},
"audio/l8": {
source: "iana"
},
"audio/lpc": {
source: "iana"
},
"audio/matroska": {
source: "iana"
},
"audio/melp": {
source: "iana"
},
"audio/melp1200": {
source: "iana"
},
"audio/melp2400": {
source: "iana"
},
"audio/melp600": {
source: "iana"
},
"audio/mhas": {
source: "iana"
},
"audio/midi": {
source: "apache",
extensions: ["mid", "midi", "kar", "rmi"]
},
"audio/midi-clip": {
source: "iana"
},
"audio/mobile-xmf": {
source: "iana",
extensions: ["mxmf"]
},
"audio/mp3": {
compressible: false,
extensions: ["mp3"]
},
"audio/mp4": {
source: "iana",
compressible: false,
extensions: ["m4a", "mp4a", "m4b"]
},
"audio/mp4a-latm": {
source: "iana"
},
"audio/mpa": {
source: "iana"
},
"audio/mpa-robust": {
source: "iana"
},
"audio/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"]
},
"audio/mpeg4-generic": {
source: "iana"
},
"audio/musepack": {
source: "apache"
},
"audio/ogg": {
source: "iana",
compressible: false,
extensions: ["oga", "ogg", "spx", "opus"]
},
"audio/opus": {
source: "iana"
},
"audio/parityfec": {
source: "iana"
},
"audio/pcma": {
source: "iana"
},
"audio/pcma-wb": {
source: "iana"
},
"audio/pcmu": {
source: "iana"
},
"audio/pcmu-wb": {
source: "iana"
},
"audio/prs.sid": {
source: "iana"
},
"audio/qcelp": {
source: "iana"
},
"audio/raptorfec": {
source: "iana"
},
"audio/red": {
source: "iana"
},
"audio/rtp-enc-aescm128": {
source: "iana"
},
"audio/rtp-midi": {
source: "iana"
},
"audio/rtploopback": {
source: "iana"
},
"audio/rtx": {
source: "iana"
},
"audio/s3m": {
source: "apache",
extensions: ["s3m"]
},
"audio/scip": {
source: "iana"
},
"audio/silk": {
source: "apache",
extensions: ["sil"]
},
"audio/smv": {
source: "iana"
},
"audio/smv-qcp": {
source: "iana"
},
"audio/smv0": {
source: "iana"
},
"audio/sofa": {
source: "iana"
},
"audio/sp-midi": {
source: "iana"
},
"audio/speex": {
source: "iana"
},
"audio/t140c": {
source: "iana"
},
"audio/t38": {
source: "iana"
},
"audio/telephone-event": {
source: "iana"
},
"audio/tetra_acelp": {
source: "iana"
},
"audio/tetra_acelp_bb": {
source: "iana"
},
"audio/tone": {
source: "iana"
},
"audio/tsvcis": {
source: "iana"
},
"audio/uemclip": {
source: "iana"
},
"audio/ulpfec": {
source: "iana"
},
"audio/usac": {
source: "iana"
},
"audio/vdvi": {
source: "iana"
},
"audio/vmr-wb": {
source: "iana"
},
"audio/vnd.3gpp.iufp": {
source: "iana"
},
"audio/vnd.4sb": {
source: "iana"
},
"audio/vnd.audiokoz": {
source: "iana"
},
"audio/vnd.celp": {
source: "iana"
},
"audio/vnd.cisco.nse": {
source: "iana"
},
"audio/vnd.cmles.radio-events": {
source: "iana"
},
"audio/vnd.cns.anp1": {
source: "iana"
},
"audio/vnd.cns.inf1": {
source: "iana"
},
"audio/vnd.dece.audio": {
source: "iana",
extensions: ["uva", "uvva"]
},
"audio/vnd.digital-winds": {
source: "iana",
extensions: ["eol"]
},
"audio/vnd.dlna.adts": {
source: "iana"
},
"audio/vnd.dolby.heaac.1": {
source: "iana"
},
"audio/vnd.dolby.heaac.2": {
source: "iana"
},
"audio/vnd.dolby.mlp": {
source: "iana"
},
"audio/vnd.dolby.mps": {
source: "iana"
},
"audio/vnd.dolby.pl2": {
source: "iana"
},
"audio/vnd.dolby.pl2x": {
source: "iana"
},
"audio/vnd.dolby.pl2z": {
source: "iana"
},
"audio/vnd.dolby.pulse.1": {
source: "iana"
},
"audio/vnd.dra": {
source: "iana",
extensions: ["dra"]
},
"audio/vnd.dts": {
source: "iana",
extensions: ["dts"]
},
"audio/vnd.dts.hd": {
source: "iana",
extensions: ["dtshd"]
},
"audio/vnd.dts.uhd": {
source: "iana"
},
"audio/vnd.dvb.file": {
source: "iana"
},
"audio/vnd.everad.plj": {
source: "iana"
},
"audio/vnd.hns.audio": {
source: "iana"
},
"audio/vnd.lucent.voice": {
source: "iana",
extensions: ["lvp"]
},
"audio/vnd.ms-playready.media.pya": {
source: "iana",
extensions: ["pya"]
},
"audio/vnd.nokia.mobile-xmf": {
source: "iana"
},
"audio/vnd.nortel.vbk": {
source: "iana"
},
"audio/vnd.nuera.ecelp4800": {
source: "iana",
extensions: ["ecelp4800"]
},
"audio/vnd.nuera.ecelp7470": {
source: "iana",
extensions: ["ecelp7470"]
},
"audio/vnd.nuera.ecelp9600": {
source: "iana",
extensions: ["ecelp9600"]
},
"audio/vnd.octel.sbc": {
source: "iana"
},
"audio/vnd.presonus.multitrack": {
source: "iana"
},
"audio/vnd.qcelp": {
source: "apache"
},
"audio/vnd.rhetorex.32kadpcm": {
source: "iana"
},
"audio/vnd.rip": {
source: "iana",
extensions: ["rip"]
},
"audio/vnd.rn-realaudio": {
compressible: false
},
"audio/vnd.sealedmedia.softseal.mpeg": {
source: "iana"
},
"audio/vnd.vmx.cvsd": {
source: "iana"
},
"audio/vnd.wave": {
compressible: false
},
"audio/vorbis": {
source: "iana",
compressible: false
},
"audio/vorbis-config": {
source: "iana"
},
"audio/wav": {
compressible: false,
extensions: ["wav"]
},
"audio/wave": {
compressible: false,
extensions: ["wav"]
},
"audio/webm": {
source: "apache",
compressible: false,
extensions: ["weba"]
},
"audio/x-aac": {
source: "apache",
compressible: false,
extensions: ["aac"]
},
"audio/x-aiff": {
source: "apache",
extensions: ["aif", "aiff", "aifc"]
},
"audio/x-caf": {
source: "apache",
compressible: false,
extensions: ["caf"]
},
"audio/x-flac": {
source: "apache",
extensions: ["flac"]
},
"audio/x-m4a": {
source: "nginx",
extensions: ["m4a"]
},
"audio/x-matroska": {
source: "apache",
extensions: ["mka"]
},
"audio/x-mpegurl": {
source: "apache",
extensions: ["m3u"]
},
"audio/x-ms-wax": {
source: "apache",
extensions: ["wax"]
},
"audio/x-ms-wma": {
source: "apache",
extensions: ["wma"]
},
"audio/x-pn-realaudio": {
source: "apache",
extensions: ["ram", "ra"]
},
"audio/x-pn-realaudio-plugin": {
source: "apache",
extensions: ["rmp"]
},
"audio/x-realaudio": {
source: "nginx",
extensions: ["ra"]
},
"audio/x-tta": {
source: "apache"
},
"audio/x-wav": {
source: "apache",
extensions: ["wav"]
},
"audio/xm": {
source: "apache",
extensions: ["xm"]
},
"chemical/x-cdx": {
source: "apache",
extensions: ["cdx"]
},
"chemical/x-cif": {
source: "apache",
extensions: ["cif"]
},
"chemical/x-cmdf": {
source: "apache",
extensions: ["cmdf"]
},
"chemical/x-cml": {
source: "apache",
extensions: ["cml"]
},
"chemical/x-csml": {
source: "apache",
extensions: ["csml"]
},
"chemical/x-pdb": {
source: "apache"
},
"chemical/x-xyz": {
source: "apache",
extensions: ["xyz"]
},
"font/collection": {
source: "iana",
extensions: ["ttc"]
},
"font/otf": {
source: "iana",
compressible: true,
extensions: ["otf"]
},
"font/sfnt": {
source: "iana"
},
"font/ttf": {
source: "iana",
compressible: true,
extensions: ["ttf"]
},
"font/woff": {
source: "iana",
extensions: ["woff"]
},
"font/woff2": {
source: "iana",
extensions: ["woff2"]
},
"image/aces": {
source: "iana",
extensions: ["exr"]
},
"image/apng": {
source: "iana",
compressible: false,
extensions: ["apng"]
},
"image/avci": {
source: "iana",
extensions: ["avci"]
},
"image/avcs": {
source: "iana",
extensions: ["avcs"]
},
"image/avif": {
source: "iana",
compressible: false,
extensions: ["avif"]
},
"image/bmp": {
source: "iana",
compressible: true,
extensions: ["bmp", "dib"]
},
"image/cgm": {
source: "iana",
extensions: ["cgm"]
},
"image/dicom-rle": {
source: "iana",
extensions: ["drle"]
},
"image/dpx": {
source: "iana",
extensions: ["dpx"]
},
"image/emf": {
source: "iana",
extensions: ["emf"]
},
"image/fits": {
source: "iana",
extensions: ["fits"]
},
"image/g3fax": {
source: "iana",
extensions: ["g3"]
},
"image/gif": {
source: "iana",
compressible: false,
extensions: ["gif"]
},
"image/heic": {
source: "iana",
extensions: ["heic"]
},
"image/heic-sequence": {
source: "iana",
extensions: ["heics"]
},
"image/heif": {
source: "iana",
extensions: ["heif"]
},
"image/heif-sequence": {
source: "iana",
extensions: ["heifs"]
},
"image/hej2k": {
source: "iana",
extensions: ["hej2"]
},
"image/ief": {
source: "iana",
extensions: ["ief"]
},
"image/j2c": {
source: "iana"
},
"image/jaii": {
source: "iana",
extensions: ["jaii"]
},
"image/jais": {
source: "iana",
extensions: ["jais"]
},
"image/jls": {
source: "iana",
extensions: ["jls"]
},
"image/jp2": {
source: "iana",
compressible: false,
extensions: ["jp2", "jpg2"]
},
"image/jpeg": {
source: "iana",
compressible: false,
extensions: ["jpg", "jpeg", "jpe"]
},
"image/jph": {
source: "iana",
extensions: ["jph"]
},
"image/jphc": {
source: "iana",
extensions: ["jhc"]
},
"image/jpm": {
source: "iana",
compressible: false,
extensions: ["jpm", "jpgm"]
},
"image/jpx": {
source: "iana",
compressible: false,
extensions: ["jpx", "jpf"]
},
"image/jxl": {
source: "iana",
extensions: ["jxl"]
},
"image/jxr": {
source: "iana",
extensions: ["jxr"]
},
"image/jxra": {
source: "iana",
extensions: ["jxra"]
},
"image/jxrs": {
source: "iana",
extensions: ["jxrs"]
},
"image/jxs": {
source: "iana",
extensions: ["jxs"]
},
"image/jxsc": {
source: "iana",
extensions: ["jxsc"]
},
"image/jxsi": {
source: "iana",
extensions: ["jxsi"]
},
"image/jxss": {
source: "iana",
extensions: ["jxss"]
},
"image/ktx": {
source: "iana",
extensions: ["ktx"]
},
"image/ktx2": {
source: "iana",
extensions: ["ktx2"]
},
"image/naplps": {
source: "iana"
},
"image/pjpeg": {
compressible: false,
extensions: ["jfif"]
},
"image/png": {
source: "iana",
compressible: false,
extensions: ["png"]
},
"image/prs.btif": {
source: "iana",
extensions: ["btif", "btf"]
},
"image/prs.pti": {
source: "iana",
extensions: ["pti"]
},
"image/pwg-raster": {
source: "iana"
},
"image/sgi": {
source: "apache",
extensions: ["sgi"]
},
"image/svg+xml": {
source: "iana",
compressible: true,
extensions: ["svg", "svgz"]
},
"image/t38": {
source: "iana",
extensions: ["t38"]
},
"image/tiff": {
source: "iana",
compressible: false,
extensions: ["tif", "tiff"]
},
"image/tiff-fx": {
source: "iana",
extensions: ["tfx"]
},
"image/vnd.adobe.photoshop": {
source: "iana",
compressible: true,
extensions: ["psd"]
},
"image/vnd.airzip.accelerator.azv": {
source: "iana",
extensions: ["azv"]
},
"image/vnd.clip": {
source: "iana"
},
"image/vnd.cns.inf2": {
source: "iana"
},
"image/vnd.dece.graphic": {
source: "iana",
extensions: ["uvi", "uvvi", "uvg", "uvvg"]
},
"image/vnd.djvu": {
source: "iana",
extensions: ["djvu", "djv"]
},
"image/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"image/vnd.dwg": {
source: "iana",
extensions: ["dwg"]
},
"image/vnd.dxf": {
source: "iana",
extensions: ["dxf"]
},
"image/vnd.fastbidsheet": {
source: "iana",
extensions: ["fbs"]
},
"image/vnd.fpx": {
source: "iana",
extensions: ["fpx"]
},
"image/vnd.fst": {
source: "iana",
extensions: ["fst"]
},
"image/vnd.fujixerox.edmics-mmr": {
source: "iana",
extensions: ["mmr"]
},
"image/vnd.fujixerox.edmics-rlc": {
source: "iana",
extensions: ["rlc"]
},
"image/vnd.globalgraphics.pgb": {
source: "iana"
},
"image/vnd.microsoft.icon": {
source: "iana",
compressible: true,
extensions: ["ico"]
},
"image/vnd.mix": {
source: "iana"
},
"image/vnd.mozilla.apng": {
source: "iana"
},
"image/vnd.ms-dds": {
compressible: true,
extensions: ["dds"]
},
"image/vnd.ms-modi": {
source: "iana",
extensions: ["mdi"]
},
"image/vnd.ms-photo": {
source: "apache",
extensions: ["wdp"]
},
"image/vnd.net-fpx": {
source: "iana",
extensions: ["npx"]
},
"image/vnd.pco.b16": {
source: "iana",
extensions: ["b16"]
},
"image/vnd.radiance": {
source: "iana"
},
"image/vnd.sealed.png": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.gif": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.jpg": {
source: "iana"
},
"image/vnd.svf": {
source: "iana"
},
"image/vnd.tencent.tap": {
source: "iana",
extensions: ["tap"]
},
"image/vnd.valve.source.texture": {
source: "iana",
extensions: ["vtf"]
},
"image/vnd.wap.wbmp": {
source: "iana",
extensions: ["wbmp"]
},
"image/vnd.xiff": {
source: "iana",
extensions: ["xif"]
},
"image/vnd.zbrush.pcx": {
source: "iana",
extensions: ["pcx"]
},
"image/webp": {
source: "iana",
extensions: ["webp"]
},
"image/wmf": {
source: "iana",
extensions: ["wmf"]
},
"image/x-3ds": {
source: "apache",
extensions: ["3ds"]
},
"image/x-adobe-dng": {
extensions: ["dng"]
},
"image/x-cmu-raster": {
source: "apache",
extensions: ["ras"]
},
"image/x-cmx": {
source: "apache",
extensions: ["cmx"]
},
"image/x-emf": {
source: "iana"
},
"image/x-freehand": {
source: "apache",
extensions: ["fh", "fhc", "fh4", "fh5", "fh7"]
},
"image/x-icon": {
source: "apache",
compressible: true,
extensions: ["ico"]
},
"image/x-jng": {
source: "nginx",
extensions: ["jng"]
},
"image/x-mrsid-image": {
source: "apache",
extensions: ["sid"]
},
"image/x-ms-bmp": {
source: "nginx",
compressible: true,
extensions: ["bmp"]
},
"image/x-pcx": {
source: "apache",
extensions: ["pcx"]
},
"image/x-pict": {
source: "apache",
extensions: ["pic", "pct"]
},
"image/x-portable-anymap": {
source: "apache",
extensions: ["pnm"]
},
"image/x-portable-bitmap": {
source: "apache",
extensions: ["pbm"]
},
"image/x-portable-graymap": {
source: "apache",
extensions: ["pgm"]
},
"image/x-portable-pixmap": {
source: "apache",
extensions: ["ppm"]
},
"image/x-rgb": {
source: "apache",
extensions: ["rgb"]
},
"image/x-tga": {
source: "apache",
extensions: ["tga"]
},
"image/x-wmf": {
source: "iana"
},
"image/x-xbitmap": {
source: "apache",
extensions: ["xbm"]
},
"image/x-xcf": {
compressible: false
},
"image/x-xpixmap": {
source: "apache",
extensions: ["xpm"]
},
"image/x-xwindowdump": {
source: "apache",
extensions: ["xwd"]
},
"message/bhttp": {
source: "iana"
},
"message/cpim": {
source: "iana"
},
"message/delivery-status": {
source: "iana"
},
"message/disposition-notification": {
source: "iana",
extensions: [
"disposition-notification"
]
},
"message/external-body": {
source: "iana"
},
"message/feedback-report": {
source: "iana"
},
"message/global": {
source: "iana",
extensions: ["u8msg"]
},
"message/global-delivery-status": {
source: "iana",
extensions: ["u8dsn"]
},
"message/global-disposition-notification": {
source: "iana",
extensions: ["u8mdn"]
},
"message/global-headers": {
source: "iana",
extensions: ["u8hdr"]
},
"message/http": {
source: "iana",
compressible: false
},
"message/imdn+xml": {
source: "iana",
compressible: true
},
"message/mls": {
source: "iana"
},
"message/news": {
source: "apache"
},
"message/ohttp-req": {
source: "iana"
},
"message/ohttp-res": {
source: "iana"
},
"message/partial": {
source: "iana",
compressible: false
},
"message/rfc822": {
source: "iana",
compressible: true,
extensions: ["eml", "mime", "mht", "mhtml"]
},
"message/s-http": {
source: "apache"
},
"message/sip": {
source: "iana"
},
"message/sipfrag": {
source: "iana"
},
"message/tracking-status": {
source: "iana"
},
"message/vnd.si.simp": {
source: "apache"
},
"message/vnd.wfa.wsc": {
source: "iana",
extensions: ["wsc"]
},
"model/3mf": {
source: "iana",
extensions: ["3mf"]
},
"model/e57": {
source: "iana"
},
"model/gltf+json": {
source: "iana",
compressible: true,
extensions: ["gltf"]
},
"model/gltf-binary": {
source: "iana",
compressible: true,
extensions: ["glb"]
},
"model/iges": {
source: "iana",
compressible: false,
extensions: ["igs", "iges"]
},
"model/jt": {
source: "iana",
extensions: ["jt"]
},
"model/mesh": {
source: "iana",
compressible: false,
extensions: ["msh", "mesh", "silo"]
},
"model/mtl": {
source: "iana",
extensions: ["mtl"]
},
"model/obj": {
source: "iana",
extensions: ["obj"]
},
"model/prc": {
source: "iana",
extensions: ["prc"]
},
"model/step": {
source: "iana",
extensions: ["step", "stp", "stpnc", "p21", "210"]
},
"model/step+xml": {
source: "iana",
compressible: true,
extensions: ["stpx"]
},
"model/step+zip": {
source: "iana",
compressible: false,
extensions: ["stpz"]
},
"model/step-xml+zip": {
source: "iana",
compressible: false,
extensions: ["stpxz"]
},
"model/stl": {
source: "iana",
extensions: ["stl"]
},
"model/u3d": {
source: "iana",
extensions: ["u3d"]
},
"model/vnd.bary": {
source: "iana",
extensions: ["bary"]
},
"model/vnd.cld": {
source: "iana",
extensions: ["cld"]
},
"model/vnd.collada+xml": {
source: "iana",
compressible: true,
extensions: ["dae"]
},
"model/vnd.dwf": {
source: "iana",
extensions: ["dwf"]
},
"model/vnd.flatland.3dml": {
source: "iana"
},
"model/vnd.gdl": {
source: "iana",
extensions: ["gdl"]
},
"model/vnd.gs-gdl": {
source: "apache"
},
"model/vnd.gs.gdl": {
source: "iana"
},
"model/vnd.gtw": {
source: "iana",
extensions: ["gtw"]
},
"model/vnd.moml+xml": {
source: "iana",
compressible: true
},
"model/vnd.mts": {
source: "iana",
extensions: ["mts"]
},
"model/vnd.opengex": {
source: "iana",
extensions: ["ogex"]
},
"model/vnd.parasolid.transmit.binary": {
source: "iana",
extensions: ["x_b"]
},
"model/vnd.parasolid.transmit.text": {
source: "iana",
extensions: ["x_t"]
},
"model/vnd.pytha.pyox": {
source: "iana",
extensions: ["pyo", "pyox"]
},
"model/vnd.rosette.annotated-data-model": {
source: "iana"
},
"model/vnd.sap.vds": {
source: "iana",
extensions: ["vds"]
},
"model/vnd.usda": {
source: "iana",
extensions: ["usda"]
},
"model/vnd.usdz+zip": {
source: "iana",
compressible: false,
extensions: ["usdz"]
},
"model/vnd.valve.source.compiled-map": {
source: "iana",
extensions: ["bsp"]
},
"model/vnd.vtu": {
source: "iana",
extensions: ["vtu"]
},
"model/vrml": {
source: "iana",
compressible: false,
extensions: ["wrl", "vrml"]
},
"model/x3d+binary": {
source: "apache",
compressible: false,
extensions: ["x3db", "x3dbz"]
},
"model/x3d+fastinfoset": {
source: "iana",
extensions: ["x3db"]
},
"model/x3d+vrml": {
source: "apache",
compressible: false,
extensions: ["x3dv", "x3dvz"]
},
"model/x3d+xml": {
source: "iana",
compressible: true,
extensions: ["x3d", "x3dz"]
},
"model/x3d-vrml": {
source: "iana",
extensions: ["x3dv"]
},
"multipart/alternative": {
source: "iana",
compressible: false
},
"multipart/appledouble": {
source: "iana"
},
"multipart/byteranges": {
source: "iana"
},
"multipart/digest": {
source: "iana"
},
"multipart/encrypted": {
source: "iana",
compressible: false
},
"multipart/form-data": {
source: "iana",
compressible: false
},
"multipart/header-set": {
source: "iana"
},
"multipart/mixed": {
source: "iana"
},
"multipart/multilingual": {
source: "iana"
},
"multipart/parallel": {
source: "iana"
},
"multipart/related": {
source: "iana",
compressible: false
},
"multipart/report": {
source: "iana"
},
"multipart/signed": {
source: "iana",
compressible: false
},
"multipart/vnd.bint.med-plus": {
source: "iana"
},
"multipart/voice-message": {
source: "iana"
},
"multipart/x-mixed-replace": {
source: "iana"
},
"text/1d-interleaved-parityfec": {
source: "iana"
},
"text/cache-manifest": {
source: "iana",
compressible: true,
extensions: ["appcache", "manifest"]
},
"text/calendar": {
source: "iana",
extensions: ["ics", "ifb"]
},
"text/calender": {
compressible: true
},
"text/cmd": {
compressible: true
},
"text/coffeescript": {
extensions: ["coffee", "litcoffee"]
},
"text/cql": {
source: "iana"
},
"text/cql-expression": {
source: "iana"
},
"text/cql-identifier": {
source: "iana"
},
"text/css": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["css"]
},
"text/csv": {
source: "iana",
compressible: true,
extensions: ["csv"]
},
"text/csv-schema": {
source: "iana"
},
"text/directory": {
source: "iana"
},
"text/dns": {
source: "iana"
},
"text/ecmascript": {
source: "apache"
},
"text/encaprtp": {
source: "iana"
},
"text/enriched": {
source: "iana"
},
"text/fhirpath": {
source: "iana"
},
"text/flexfec": {
source: "iana"
},
"text/fwdred": {
source: "iana"
},
"text/gff3": {
source: "iana"
},
"text/grammar-ref-list": {
source: "iana"
},
"text/hl7v2": {
source: "iana"
},
"text/html": {
source: "iana",
compressible: true,
extensions: ["html", "htm", "shtml"]
},
"text/jade": {
extensions: ["jade"]
},
"text/javascript": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["js", "mjs"]
},
"text/jcr-cnd": {
source: "iana"
},
"text/jsx": {
compressible: true,
extensions: ["jsx"]
},
"text/less": {
compressible: true,
extensions: ["less"]
},
"text/markdown": {
source: "iana",
compressible: true,
extensions: ["md", "markdown"]
},
"text/mathml": {
source: "nginx",
extensions: ["mml"]
},
"text/mdx": {
compressible: true,
extensions: ["mdx"]
},
"text/mizar": {
source: "iana"
},
"text/n3": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["n3"]
},
"text/parameters": {
source: "iana",
charset: "UTF-8"
},
"text/parityfec": {
source: "iana"
},
"text/plain": {
source: "iana",
compressible: true,
extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"]
},
"text/provenance-notation": {
source: "iana",
charset: "UTF-8"
},
"text/prs.fallenstein.rst": {
source: "iana"
},
"text/prs.lines.tag": {
source: "iana",
extensions: ["dsc"]
},
"text/prs.prop.logic": {
source: "iana"
},
"text/prs.texi": {
source: "iana"
},
"text/raptorfec": {
source: "iana"
},
"text/red": {
source: "iana"
},
"text/rfc822-headers": {
source: "iana"
},
"text/richtext": {
source: "iana",
compressible: true,
extensions: ["rtx"]
},
"text/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"text/rtp-enc-aescm128": {
source: "iana"
},
"text/rtploopback": {
source: "iana"
},
"text/rtx": {
source: "iana"
},
"text/sgml": {
source: "iana",
extensions: ["sgml", "sgm"]
},
"text/shaclc": {
source: "iana"
},
"text/shex": {
source: "iana",
extensions: ["shex"]
},
"text/slim": {
extensions: ["slim", "slm"]
},
"text/spdx": {
source: "iana",
extensions: ["spdx"]
},
"text/strings": {
source: "iana"
},
"text/stylus": {
extensions: ["stylus", "styl"]
},
"text/t140": {
source: "iana"
},
"text/tab-separated-values": {
source: "iana",
compressible: true,
extensions: ["tsv"]
},
"text/troff": {
source: "iana",
extensions: ["t", "tr", "roff", "man", "me", "ms"]
},
"text/turtle": {
source: "iana",
charset: "UTF-8",
extensions: ["ttl"]
},
"text/ulpfec": {
source: "iana"
},
"text/uri-list": {
source: "iana",
compressible: true,
extensions: ["uri", "uris", "urls"]
},
"text/vcard": {
source: "iana",
compressible: true,
extensions: ["vcard"]
},
"text/vnd.a": {
source: "iana"
},
"text/vnd.abc": {
source: "iana"
},
"text/vnd.ascii-art": {
source: "iana"
},
"text/vnd.curl": {
source: "iana",
extensions: ["curl"]
},
"text/vnd.curl.dcurl": {
source: "apache",
extensions: ["dcurl"]
},
"text/vnd.curl.mcurl": {
source: "apache",
extensions: ["mcurl"]
},
"text/vnd.curl.scurl": {
source: "apache",
extensions: ["scurl"]
},
"text/vnd.debian.copyright": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.dmclientscript": {
source: "iana"
},
"text/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"text/vnd.esmertec.theme-descriptor": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.exchangeable": {
source: "iana"
},
"text/vnd.familysearch.gedcom": {
source: "iana",
extensions: ["ged"]
},
"text/vnd.ficlab.flt": {
source: "iana"
},
"text/vnd.fly": {
source: "iana",
extensions: ["fly"]
},
"text/vnd.fmi.flexstor": {
source: "iana",
extensions: ["flx"]
},
"text/vnd.gml": {
source: "iana"
},
"text/vnd.graphviz": {
source: "iana",
extensions: ["gv"]
},
"text/vnd.hans": {
source: "iana"
},
"text/vnd.hgl": {
source: "iana"
},
"text/vnd.in3d.3dml": {
source: "iana",
extensions: ["3dml"]
},
"text/vnd.in3d.spot": {
source: "iana",
extensions: ["spot"]
},
"text/vnd.iptc.newsml": {
source: "iana"
},
"text/vnd.iptc.nitf": {
source: "iana"
},
"text/vnd.latex-z": {
source: "iana"
},
"text/vnd.motorola.reflex": {
source: "iana"
},
"text/vnd.ms-mediapackage": {
source: "iana"
},
"text/vnd.net2phone.commcenter.command": {
source: "iana"
},
"text/vnd.radisys.msml-basic-layout": {
source: "iana"
},
"text/vnd.senx.warpscript": {
source: "iana"
},
"text/vnd.si.uricatalogue": {
source: "apache"
},
"text/vnd.sosi": {
source: "iana"
},
"text/vnd.sun.j2me.app-descriptor": {
source: "iana",
charset: "UTF-8",
extensions: ["jad"]
},
"text/vnd.trolltech.linguist": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.vcf": {
source: "iana"
},
"text/vnd.wap.si": {
source: "iana"
},
"text/vnd.wap.sl": {
source: "iana"
},
"text/vnd.wap.wml": {
source: "iana",
extensions: ["wml"]
},
"text/vnd.wap.wmlscript": {
source: "iana",
extensions: ["wmls"]
},
"text/vnd.zoo.kcl": {
source: "iana"
},
"text/vtt": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["vtt"]
},
"text/wgsl": {
source: "iana",
extensions: ["wgsl"]
},
"text/x-asm": {
source: "apache",
extensions: ["s", "asm"]
},
"text/x-c": {
source: "apache",
extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"]
},
"text/x-component": {
source: "nginx",
extensions: ["htc"]
},
"text/x-fortran": {
source: "apache",
extensions: ["f", "for", "f77", "f90"]
},
"text/x-gwt-rpc": {
compressible: true
},
"text/x-handlebars-template": {
extensions: ["hbs"]
},
"text/x-java-source": {
source: "apache",
extensions: ["java"]
},
"text/x-jquery-tmpl": {
compressible: true
},
"text/x-lua": {
extensions: ["lua"]
},
"text/x-markdown": {
compressible: true,
extensions: ["mkd"]
},
"text/x-nfo": {
source: "apache",
extensions: ["nfo"]
},
"text/x-opml": {
source: "apache",
extensions: ["opml"]
},
"text/x-org": {
compressible: true,
extensions: ["org"]
},
"text/x-pascal": {
source: "apache",
extensions: ["p", "pas"]
},
"text/x-processing": {
compressible: true,
extensions: ["pde"]
},
"text/x-sass": {
extensions: ["sass"]
},
"text/x-scss": {
extensions: ["scss"]
},
"text/x-setext": {
source: "apache",
extensions: ["etx"]
},
"text/x-sfv": {
source: "apache",
extensions: ["sfv"]
},
"text/x-suse-ymp": {
compressible: true,
extensions: ["ymp"]
},
"text/x-uuencode": {
source: "apache",
extensions: ["uu"]
},
"text/x-vcalendar": {
source: "apache",
extensions: ["vcs"]
},
"text/x-vcard": {
source: "apache",
extensions: ["vcf"]
},
"text/xml": {
source: "iana",
compressible: true,
extensions: ["xml"]
},
"text/xml-external-parsed-entity": {
source: "iana"
},
"text/yaml": {
compressible: true,
extensions: ["yaml", "yml"]
},
"video/1d-interleaved-parityfec": {
source: "iana"
},
"video/3gpp": {
source: "iana",
extensions: ["3gp", "3gpp"]
},
"video/3gpp-tt": {
source: "iana"
},
"video/3gpp2": {
source: "iana",
extensions: ["3g2"]
},
"video/av1": {
source: "iana"
},
"video/bmpeg": {
source: "iana"
},
"video/bt656": {
source: "iana"
},
"video/celb": {
source: "iana"
},
"video/dv": {
source: "iana"
},
"video/encaprtp": {
source: "iana"
},
"video/evc": {
source: "iana"
},
"video/ffv1": {
source: "iana"
},
"video/flexfec": {
source: "iana"
},
"video/h261": {
source: "iana",
extensions: ["h261"]
},
"video/h263": {
source: "iana",
extensions: ["h263"]
},
"video/h263-1998": {
source: "iana"
},
"video/h263-2000": {
source: "iana"
},
"video/h264": {
source: "iana",
extensions: ["h264"]
},
"video/h264-rcdo": {
source: "iana"
},
"video/h264-svc": {
source: "iana"
},
"video/h265": {
source: "iana"
},
"video/h266": {
source: "iana"
},
"video/iso.segment": {
source: "iana",
extensions: ["m4s"]
},
"video/jpeg": {
source: "iana",
extensions: ["jpgv"]
},
"video/jpeg2000": {
source: "iana"
},
"video/jpm": {
source: "apache",
extensions: ["jpm", "jpgm"]
},
"video/jxsv": {
source: "iana"
},
"video/lottie+json": {
source: "iana",
compressible: true
},
"video/matroska": {
source: "iana"
},
"video/matroska-3d": {
source: "iana"
},
"video/mj2": {
source: "iana",
extensions: ["mj2", "mjp2"]
},
"video/mp1s": {
source: "iana"
},
"video/mp2p": {
source: "iana"
},
"video/mp2t": {
source: "iana",
extensions: ["ts", "m2t", "m2ts", "mts"]
},
"video/mp4": {
source: "iana",
compressible: false,
extensions: ["mp4", "mp4v", "mpg4"]
},
"video/mp4v-es": {
source: "iana"
},
"video/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"]
},
"video/mpeg4-generic": {
source: "iana"
},
"video/mpv": {
source: "iana"
},
"video/nv": {
source: "iana"
},
"video/ogg": {
source: "iana",
compressible: false,
extensions: ["ogv"]
},
"video/parityfec": {
source: "iana"
},
"video/pointer": {
source: "iana"
},
"video/quicktime": {
source: "iana",
compressible: false,
extensions: ["qt", "mov"]
},
"video/raptorfec": {
source: "iana"
},
"video/raw": {
source: "iana"
},
"video/rtp-enc-aescm128": {
source: "iana"
},
"video/rtploopback": {
source: "iana"
},
"video/rtx": {
source: "iana"
},
"video/scip": {
source: "iana"
},
"video/smpte291": {
source: "iana"
},
"video/smpte292m": {
source: "iana"
},
"video/ulpfec": {
source: "iana"
},
"video/vc1": {
source: "iana"
},
"video/vc2": {
source: "iana"
},
"video/vnd.cctv": {
source: "iana"
},
"video/vnd.dece.hd": {
source: "iana",
extensions: ["uvh", "uvvh"]
},
"video/vnd.dece.mobile": {
source: "iana",
extensions: ["uvm", "uvvm"]
},
"video/vnd.dece.mp4": {
source: "iana"
},
"video/vnd.dece.pd": {
source: "iana",
extensions: ["uvp", "uvvp"]
},
"video/vnd.dece.sd": {
source: "iana",
extensions: ["uvs", "uvvs"]
},
"video/vnd.dece.video": {
source: "iana",
extensions: ["uvv", "uvvv"]
},
"video/vnd.directv.mpeg": {
source: "iana"
},
"video/vnd.directv.mpeg-tts": {
source: "iana"
},
"video/vnd.dlna.mpeg-tts": {
source: "iana"
},
"video/vnd.dvb.file": {
source: "iana",
extensions: ["dvb"]
},
"video/vnd.fvt": {
source: "iana",
extensions: ["fvt"]
},
"video/vnd.hns.video": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.ttsavc": {
source: "iana"
},
"video/vnd.iptvforum.ttsmpeg2": {
source: "iana"
},
"video/vnd.motorola.video": {
source: "iana"
},
"video/vnd.motorola.videop": {
source: "iana"
},
"video/vnd.mpegurl": {
source: "iana",
extensions: ["mxu", "m4u"]
},
"video/vnd.ms-playready.media.pyv": {
source: "iana",
extensions: ["pyv"]
},
"video/vnd.nokia.interleaved-multimedia": {
source: "iana"
},
"video/vnd.nokia.mp4vr": {
source: "iana"
},
"video/vnd.nokia.videovoip": {
source: "iana"
},
"video/vnd.objectvideo": {
source: "iana"
},
"video/vnd.planar": {
source: "iana"
},
"video/vnd.radgamettools.bink": {
source: "iana"
},
"video/vnd.radgamettools.smacker": {
source: "apache"
},
"video/vnd.sealed.mpeg1": {
source: "iana"
},
"video/vnd.sealed.mpeg4": {
source: "iana"
},
"video/vnd.sealed.swf": {
source: "iana"
},
"video/vnd.sealedmedia.softseal.mov": {
source: "iana"
},
"video/vnd.uvvu.mp4": {
source: "iana",
extensions: ["uvu", "uvvu"]
},
"video/vnd.vivo": {
source: "iana",
extensions: ["viv"]
},
"video/vnd.youtube.yt": {
source: "iana"
},
"video/vp8": {
source: "iana"
},
"video/vp9": {
source: "iana"
},
"video/webm": {
source: "apache",
compressible: false,
extensions: ["webm"]
},
"video/x-f4v": {
source: "apache",
extensions: ["f4v"]
},
"video/x-fli": {
source: "apache",
extensions: ["fli"]
},
"video/x-flv": {
source: "apache",
compressible: false,
extensions: ["flv"]
},
"video/x-m4v": {
source: "apache",
extensions: ["m4v"]
},
"video/x-matroska": {
source: "apache",
compressible: false,
extensions: ["mkv", "mk3d", "mks"]
},
"video/x-mng": {
source: "apache",
extensions: ["mng"]
},
"video/x-ms-asf": {
source: "apache",
extensions: ["asf", "asx"]
},
"video/x-ms-vob": {
source: "apache",
extensions: ["vob"]
},
"video/x-ms-wm": {
source: "apache",
extensions: ["wm"]
},
"video/x-ms-wmv": {
source: "apache",
compressible: false,
extensions: ["wmv"]
},
"video/x-ms-wmx": {
source: "apache",
extensions: ["wmx"]
},
"video/x-ms-wvx": {
source: "apache",
extensions: ["wvx"]
},
"video/x-msvideo": {
source: "apache",
extensions: ["avi"]
},
"video/x-sgi-movie": {
source: "apache",
extensions: ["movie"]
},
"video/x-smv": {
source: "apache",
extensions: ["smv"]
},
"x-conference/x-cooltalk": {
source: "apache",
extensions: ["ice"]
},
"x-shader/x-fragment": {
compressible: true
},
"x-shader/x-vertex": {
compressible: true
}
};
}
});
var require_mime_db2 = __commonJS2({
"node_modules/type-is/node_modules/mime-db/index.js"(exports2, module2) {
module2.exports = require_db2();
}
});
var require_mimeScore = __commonJS2({
"node_modules/type-is/node_modules/mime-types/mimeScore.js"(exports2, module2) {
var FACET_SCORES = {
"prs.": 100,
"x-": 200,
"x.": 300,
"vnd.": 400,
default: 900
};
var SOURCE_SCORES = {
nginx: 10,
apache: 20,
iana: 40,
default: 30
// definitions added by `jshttp/mime-db` project?
};
var TYPE_SCORES = {
// prefer application/xml over text/xml
// prefer application/rtf over text/rtf
application: 1,
// prefer font/woff over application/font-woff
font: 2,
default: 0
};
module2.exports = function mimeScore(mimeType, source = "default") {
if (mimeType === "application/octet-stream") {
return 0;
}
const [type, subtype] = mimeType.split("/");
const facet = subtype.replace(/(\.|x-).*/, "$1");
const facetScore = FACET_SCORES[facet] || FACET_SCORES.default;
const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default;
const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default;
const lengthScore = 1 - mimeType.length / 100;
return facetScore + sourceScore + typeScore + lengthScore;
};
}
});
var require_mime_types2 = __commonJS2({
"node_modules/type-is/node_modules/mime-types/index.js"(exports2) {
"use strict";
var db = require_mime_db2();
var extname = require("path").extname;
var mimeScore = require_mimeScore();
var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
var TEXT_TYPE_REGEXP = /^text\//i;
exports2.charset = charset;
exports2.charsets = { lookup: charset };
exports2.contentType = contentType2;
exports2.extension = extension;
exports2.extensions = /* @__PURE__ */ Object.create(null);
exports2.lookup = lookup;
exports2.types = /* @__PURE__ */ Object.create(null);
exports2._extensionConflicts = [];
populateMaps(exports2.extensions, exports2.types);
function charset(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var mime = match && db[match[1].toLowerCase()];
if (mime && mime.charset) {
return mime.charset;
}
if (match && TEXT_TYPE_REGEXP.test(match[1])) {
return "UTF-8";
}
return false;
}
function contentType2(str) {
if (!str || typeof str !== "string") {
return false;
}
var mime = str.indexOf("/") === -1 ? exports2.lookup(str) : str;
if (!mime) {
return false;
}
if (mime.indexOf("charset") === -1) {
var charset2 = exports2.charset(mime);
if (charset2) mime += "; charset=" + charset2.toLowerCase();
}
return mime;
}
function extension(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var exts = match && exports2.extensions[match[1].toLowerCase()];
if (!exts || !exts.length) {
return false;
}
return exts[0];
}
function lookup(path) {
if (!path || typeof path !== "string") {
return false;
}
var extension2 = extname("x." + path).toLowerCase().slice(1);
if (!extension2) {
return false;
}
return exports2.types[extension2] || false;
}
function populateMaps(extensions, types) {
Object.keys(db).forEach(function forEachMimeType(type) {
var mime = db[type];
var exts = mime.extensions;
if (!exts || !exts.length) {
return;
}
extensions[type] = exts;
for (var i = 0; i < exts.length; i++) {
var extension2 = exts[i];
types[extension2] = _preferredType(extension2, types[extension2], type);
const legacyType = _preferredTypeLegacy(
extension2,
types[extension2],
type
);
if (legacyType !== types[extension2]) {
exports2._extensionConflicts.push([extension2, legacyType, types[extension2]]);
}
}
});
}
function _preferredType(ext, type0, type1) {
var score0 = type0 ? mimeScore(type0, db[type0].source) : 0;
var score1 = type1 ? mimeScore(type1, db[type1].source) : 0;
return score0 > score1 ? type0 : type1;
}
function _preferredTypeLegacy(ext, type0, type1) {
var SOURCE_RANK = ["nginx", "apache", void 0, "iana"];
var score0 = type0 ? SOURCE_RANK.indexOf(db[type0].source) : 0;
var score1 = type1 ? SOURCE_RANK.indexOf(db[type1].source) : 0;
if (exports2.types[extension] !== "application/octet-stream" && (score0 > score1 || score0 === score1 && exports2.types[extension]?.slice(0, 12) === "application/")) {
return type0;
}
return score0 > score1 ? type0 : type1;
}
}
});
var require_media_typer = __commonJS2({
"node_modules/media-typer/index.js"(exports2) {
"use strict";
var SUBTYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/;
var TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/;
var TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;
exports2.format = format;
exports2.parse = parse;
exports2.test = test2;
function format(obj) {
if (!obj || typeof obj !== "object") {
throw new TypeError("argument obj is required");
}
var subtype = obj.subtype;
var suffix = obj.suffix;
var type = obj.type;
if (!type || !TYPE_NAME_REGEXP.test(type)) {
throw new TypeError("invalid type");
}
if (!subtype || !SUBTYPE_NAME_REGEXP.test(subtype)) {
throw new TypeError("invalid subtype");
}
var string = type + "/" + subtype;
if (suffix) {
if (!TYPE_NAME_REGEXP.test(suffix)) {
throw new TypeError("invalid suffix");
}
string += "+" + suffix;
}
return string;
}
function test2(string) {
if (!string) {
throw new TypeError("argument string is required");
}
if (typeof string !== "string") {
throw new TypeError("argument string is required to be a string");
}
return TYPE_REGEXP.test(string.toLowerCase());
}
function parse(string) {
if (!string) {
throw new TypeError("argument string is required");
}
if (typeof string !== "string") {
throw new TypeError("argument string is required to be a string");
}
var match = TYPE_REGEXP.exec(string.toLowerCase());
if (!match) {
throw new TypeError("invalid media type");
}
var type = match[1];
var subtype = match[2];
var suffix;
var index = subtype.lastIndexOf("+");
if (index !== -1) {
suffix = subtype.substr(index + 1);
subtype = subtype.substr(0, index);
}
return new MediaType(type, subtype, suffix);
}
function MediaType(type, subtype, suffix) {
this.type = type;
this.subtype = subtype;
this.suffix = suffix;
}
}
});
var require_type_is = __commonJS2({
"node_modules/type-is/index.js"(exports2, module2) {
"use strict";
var contentType2 = require_content_type();
var mime = require_mime_types2();
var typer = require_media_typer();
module2.exports = typeofrequest;
module2.exports.is = typeis;
module2.exports.hasBody = hasbody;
module2.exports.normalize = normalize;
module2.exports.match = mimeMatch;
function typeis(value, types_) {
var i;
var types = types_;
var val = tryNormalizeType(value);
if (!val) {
return false;
}
if (types && !Array.isArray(types)) {
types = new Array(arguments.length - 1);
for (i = 0; i < types.length; i++) {
types[i] = arguments[i + 1];
}
}
if (!types || !types.length) {
return val;
}
var type;
for (i = 0; i < types.length; i++) {
if (mimeMatch(normalize(type = types[i]), val)) {
return type[0] === "+" || type.indexOf("*") !== -1 ? val : type;
}
}
return false;
}
function hasbody(req) {
return req.headers["transfer-encoding"] !== void 0 || !isNaN(req.headers["content-length"]);
}
function typeofrequest(req, types_) {
if (!hasbody(req)) return null;
var types = arguments.length > 2 ? Array.prototype.slice.call(arguments, 1) : types_;
var value = req.headers["content-type"];
return typeis(value, types);
}
function normalize(type) {
if (typeof type !== "string") {
return false;
}
switch (type) {
case "urlencoded":
return "application/x-www-form-urlencoded";
case "multipart":
return "multipart/*";
}
if (type[0] === "+") {
return "*/*" + type;
}
return type.indexOf("/") === -1 ? mime.lookup(type) : type;
}
function mimeMatch(expected, actual) {
if (expected === false) {
return false;
}
var actualParts = actual.split("/");
var expectedParts = expected.split("/");
if (actualParts.length !== 2 || expectedParts.length !== 2) {
return false;
}
if (expectedParts[0] !== "*" && expectedParts[0] !== actualParts[0]) {
return false;
}
if (expectedParts[1].slice(0, 2) === "*+") {
return expectedParts[1].length <= actualParts[1].length + 1 && expectedParts[1].slice(1) === actualParts[1].slice(1 - expectedParts[1].length);
}
if (expectedParts[1] !== "*" && expectedParts[1] !== actualParts[1]) {
return false;
}
return true;
}
function normalizeType(value) {
var type = contentType2.parse(value).type;
return typer.test(type) ? type : null;
}
function tryNormalizeType(value) {
try {
return value ? normalizeType(value) : null;
} catch (err2) {
return null;
}
}
}
});
var require_utils = __commonJS2({
"node_modules/body-parser/lib/utils.js"(exports2, module2) {
"use strict";
var bytes = require_bytes();
var contentType2 = require_content_type();
var typeis = require_type_is();
module2.exports = {
getCharset,
normalizeOptions
};
function getCharset(req) {
try {
return (contentType2.parse(req).parameters.charset || "").toLowerCase();
} catch {
return void 0;
}
}
function typeChecker(type) {
return function checkType(req) {
return Boolean(typeis(req, type));
};
}
function normalizeOptions(options, defaultType) {
if (!defaultType) {
throw new TypeError("defaultType must be provided");
}
var inflate = options?.inflate !== false;
var limit = typeof options?.limit !== "number" ? bytes.parse(options?.limit || "100kb") : options?.limit;
var type = options?.type || defaultType;
var verify = options?.verify || false;
if (verify !== false && typeof verify !== "function") {
throw new TypeError("option verify must be function");
}
var shouldParse = typeof type !== "function" ? typeChecker(type) : type;
return {
inflate,
limit,
verify,
shouldParse
};
}
}
});
var require_json = __commonJS2({
"node_modules/body-parser/lib/types/json.js"(exports2, module2) {
"use strict";
var createError = require_http_errors();
var debug = require_src2()("body-parser:json");
var isFinished = require_on_finished().isFinished;
var read = require_read();
var typeis = require_type_is();
var { getCharset, normalizeOptions } = require_utils();
module2.exports = json;
var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/;
var JSON_SYNTAX_CHAR = "#";
var JSON_SYNTAX_REGEXP = /#+/g;
function json(options) {
var { inflate, limit, verify, shouldParse } = normalizeOptions(options, "application/json");
var reviver = options?.reviver;
var strict = options?.strict !== false;
function parse(body) {
if (body.length === 0) {
return {};
}
if (strict) {
var first = firstchar(body);
if (first !== "{" && first !== "[") {
debug("strict violation");
throw createStrictSyntaxError(body, first);
}
}
try {
debug("parse json");
return JSON.parse(body, reviver);
} catch (e) {
throw normalizeJsonSyntaxError(e, {
message: e.message,
stack: e.stack
});
}
}
return function jsonParser(req, res, next) {
if (isFinished(req)) {
debug("body already parsed");
next();
return;
}
if (!("body" in req)) {
req.body = void 0;
}
if (!typeis.hasBody(req)) {
debug("skip empty body");
next();
return;
}
debug("content-type %j", req.headers["content-type"]);
if (!shouldParse(req)) {
debug("skip parsing");
next();
return;
}
var charset = getCharset(req) || "utf-8";
if (charset.slice(0, 4) !== "utf-") {
debug("invalid charset");
next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', {
charset,
type: "charset.unsupported"
}));
return;
}
read(req, res, next, parse, debug, {
encoding: charset,
inflate,
limit,
verify
});
};
}
function createStrictSyntaxError(str, char) {
var index = str.indexOf(char);
var partial = "";
if (index !== -1) {
partial = str.substring(0, index) + JSON_SYNTAX_CHAR;
for (var i = index + 1; i < str.length; i++) {
partial += JSON_SYNTAX_CHAR;
}
}
try {
JSON.parse(partial);
throw new SyntaxError("strict violation");
} catch (e) {
return normalizeJsonSyntaxError(e, {
message: e.message.replace(JSON_SYNTAX_REGEXP, function(placeholder) {
return str.substring(index, index + placeholder.length);
}),
stack: e.stack
});
}
}
function firstchar(str) {
var match = FIRST_CHAR_REGEXP.exec(str);
return match ? match[1] : void 0;
}
function normalizeJsonSyntaxError(error, obj) {
var keys = Object.getOwnPropertyNames(error);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (key !== "stack" && key !== "message") {
delete error[key];
}
}
error.stack = obj.stack.replace(error.message, obj.message);
error.message = obj.message;
return error;
}
}
});
var require_raw = __commonJS2({
"node_modules/body-parser/lib/types/raw.js"(exports2, module2) {
"use strict";
var debug = require_src2()("body-parser:raw");
var isFinished = require_on_finished().isFinished;
var read = require_read();
var typeis = require_type_is();
var { normalizeOptions } = require_utils();
module2.exports = raw;
function raw(options) {
var { inflate, limit, verify, shouldParse } = normalizeOptions(options, "application/octet-stream");
function parse(buf) {
return buf;
}
return function rawParser(req, res, next) {
if (isFinished(req)) {
debug("body already parsed");
next();
return;
}
if (!("body" in req)) {
req.body = void 0;
}
if (!typeis.hasBody(req)) {
debug("skip empty body");
next();
return;
}
debug("content-type %j", req.headers["content-type"]);
if (!shouldParse(req)) {
debug("skip parsing");
next();
return;
}
read(req, res, next, parse, debug, {
encoding: null,
inflate,
limit,
verify
});
};
}
}
});
var require_text = __commonJS2({
"node_modules/body-parser/lib/types/text.js"(exports2, module2) {
"use strict";
var debug = require_src2()("body-parser:text");
var isFinished = require_on_finished().isFinished;
var read = require_read();
var typeis = require_type_is();
var { getCharset, normalizeOptions } = require_utils();
module2.exports = text;
function text(options) {
var { inflate, limit, verify, shouldParse } = normalizeOptions(options, "text/plain");
var defaultCharset = options?.defaultCharset || "utf-8";
function parse(buf) {
return buf;
}
return function textParser(req, res, next) {
if (isFinished(req)) {
debug("body already parsed");
next();
return;
}
if (!("body" in req)) {
req.body = void 0;
}
if (!typeis.hasBody(req)) {
debug("skip empty body");
next();
return;
}
debug("content-type %j", req.headers["content-type"]);
if (!shouldParse(req)) {
debug("skip parsing");
next();
return;
}
var charset = getCharset(req) || defaultCharset;
read(req, res, next, parse, debug, {
encoding: charset,
inflate,
limit,
verify
});
};
}
}
});
var require_type2 = __commonJS2({
"node_modules/es-errors/type.js"(exports2, module2) {
"use strict";
module2.exports = TypeError;
}
});
var require_util_inspect = __commonJS2({
"node_modules/object-inspect/util.inspect.js"(exports2, module2) {
module2.exports = require("util").inspect;
}
});
var require_object_inspect = __commonJS2({
"node_modules/object-inspect/index.js"(exports2, module2) {
var hasMap = typeof Map === "function" && Map.prototype;
var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null;
var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === "function" ? mapSizeDescriptor.get : null;
var mapForEach = hasMap && Map.prototype.forEach;
var hasSet = typeof Set === "function" && Set.prototype;
var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null;
var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === "function" ? setSizeDescriptor.get : null;
var setForEach = hasSet && Set.prototype.forEach;
var hasWeakMap = typeof WeakMap === "function" && WeakMap.prototype;
var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;
var hasWeakSet = typeof WeakSet === "function" && WeakSet.prototype;
var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;
var hasWeakRef = typeof WeakRef === "function" && WeakRef.prototype;
var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;
var booleanValueOf = Boolean.prototype.valueOf;
var objectToString = Object.prototype.toString;
var functionToString = Function.prototype.toString;
var $match = String.prototype.match;
var $slice = String.prototype.slice;
var $replace = String.prototype.replace;
var $toUpperCase = String.prototype.toUpperCase;
var $toLowerCase = String.prototype.toLowerCase;
var $test = RegExp.prototype.test;
var $concat = Array.prototype.concat;
var $join = Array.prototype.join;
var $arrSlice = Array.prototype.slice;
var $floor = Math.floor;
var bigIntValueOf = typeof BigInt === "function" ? BigInt.prototype.valueOf : null;
var gOPS = Object.getOwnPropertySymbols;
var symToString = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? Symbol.prototype.toString : null;
var hasShammedSymbols = typeof Symbol === "function" && typeof Symbol.iterator === "object";
var toStringTag = typeof Symbol === "function" && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? "object" : "symbol") ? Symbol.toStringTag : null;
var isEnumerable = Object.prototype.propertyIsEnumerable;
var gPO = (typeof Reflect === "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(O) {
return O.__proto__;
} : null);
function addNumericSeparator(num, str) {
if (num === Infinity || num === -Infinity || num !== num || num && num > -1e3 && num < 1e3 || $test.call(/e/, str)) {
return str;
}
var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
if (typeof num === "number") {
var int = num < 0 ? -$floor(-num) : $floor(num);
if (int !== num) {
var intStr = String(int);
var dec = $slice.call(str, intStr.length + 1);
return $replace.call(intStr, sepRegex, "$&_") + "." + $replace.call($replace.call(dec, /([0-9]{3})/g, "$&_"), /_$/, "");
}
}
return $replace.call(str, sepRegex, "$&_");
}
var utilInspect = require_util_inspect();
var inspectCustom = utilInspect.custom;
var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;
var quotes = {
__proto__: null,
"double": '"',
single: "'"
};
var quoteREs = {
__proto__: null,
"double": /(["\\])/g,
single: /(['\\])/g
};
module2.exports = function inspect_(obj, options, depth, seen) {
var opts = options || {};
if (has(opts, "quoteStyle") && !has(quotes, opts.quoteStyle)) {
throw new TypeError('option "quoteStyle" must be "single" or "double"');
}
if (has(opts, "maxStringLength") && (typeof opts.maxStringLength === "number" ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) {
throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
}
var customInspect = has(opts, "customInspect") ? opts.customInspect : true;
if (typeof customInspect !== "boolean" && customInspect !== "symbol") {
throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");
}
if (has(opts, "indent") && opts.indent !== null && opts.indent !== " " && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) {
throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');
}
if (has(opts, "numericSeparator") && typeof opts.numericSeparator !== "boolean") {
throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');
}
var numericSeparator = opts.numericSeparator;
if (typeof obj === "undefined") {
return "undefined";
}
if (obj === null) {
return "null";
}
if (typeof obj === "boolean") {
return obj ? "true" : "false";
}
if (typeof obj === "string") {
return inspectString(obj, opts);
}
if (typeof obj === "number") {
if (obj === 0) {
return Infinity / obj > 0 ? "0" : "-0";
}
var str = String(obj);
return numericSeparator ? addNumericSeparator(obj, str) : str;
}
if (typeof obj === "bigint") {
var bigIntStr = String(obj) + "n";
return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;
}
var maxDepth = typeof opts.depth === "undefined" ? 5 : opts.depth;
if (typeof depth === "undefined") {
depth = 0;
}
if (depth >= maxDepth && maxDepth > 0 && typeof obj === "object") {
return isArray2(obj) ? "[Array]" : "[Object]";
}
var indent = getIndent(opts, depth);
if (typeof seen === "undefined") {
seen = [];
} else if (indexOf(seen, obj) >= 0) {
return "[Circular]";
}
function inspect(value, from, noIndent) {
if (from) {
seen = $arrSlice.call(seen);
seen.push(from);
}
if (noIndent) {
var newOpts = {
depth: opts.depth
};
if (has(opts, "quoteStyle")) {
newOpts.quoteStyle = opts.quoteStyle;
}
return inspect_(value, newOpts, depth + 1, seen);
}
return inspect_(value, opts, depth + 1, seen);
}
if (typeof obj === "function" && !isRegExp2(obj)) {
var name = nameOf(obj);
var keys = arrObjKeys(obj, inspect);
return "[Function" + (name ? ": " + name : " (anonymous)") + "]" + (keys.length > 0 ? " { " + $join.call(keys, ", ") + " }" : "");
}
if (isSymbol(obj)) {
var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, "$1") : symToString.call(obj);
return typeof obj === "object" && !hasShammedSymbols ? markBoxed(symString) : symString;
}
if (isElement(obj)) {
var s = "<" + $toLowerCase.call(String(obj.nodeName));
var attrs = obj.attributes || [];
for (var i = 0; i < attrs.length; i++) {
s += " " + attrs[i].name + "=" + wrapQuotes(quote(attrs[i].value), "double", opts);
}
s += ">";
if (obj.childNodes && obj.childNodes.length) {
s += "...";
}
s += "</" + $toLowerCase.call(String(obj.nodeName)) + ">";
return s;
}
if (isArray2(obj)) {
if (obj.length === 0) {
return "[]";
}
var xs = arrObjKeys(obj, inspect);
if (indent && !singleLineValues(xs)) {
return "[" + indentedJoin(xs, indent) + "]";
}
return "[ " + $join.call(xs, ", ") + " ]";
}
if (isError(obj)) {
var parts = arrObjKeys(obj, inspect);
if (!("cause" in Error.prototype) && "cause" in obj && !isEnumerable.call(obj, "cause")) {
return "{ [" + String(obj) + "] " + $join.call($concat.call("[cause]: " + inspect(obj.cause), parts), ", ") + " }";
}
if (parts.length === 0) {
return "[" + String(obj) + "]";
}
return "{ [" + String(obj) + "] " + $join.call(parts, ", ") + " }";
}
if (typeof obj === "object" && customInspect) {
if (inspectSymbol && typeof obj[inspectSymbol] === "function" && utilInspect) {
return utilInspect(obj, { depth: maxDepth - depth });
} else if (customInspect !== "symbol" && typeof obj.inspect === "function") {
return obj.inspect();
}
}
if (isMap(obj)) {
var mapParts = [];
if (mapForEach) {
mapForEach.call(obj, function(value, key) {
mapParts.push(inspect(key, obj, true) + " => " + inspect(value, obj));
});
}
return collectionOf("Map", mapSize.call(obj), mapParts, indent);
}
if (isSet(obj)) {
var setParts = [];
if (setForEach) {
setForEach.call(obj, function(value) {
setParts.push(inspect(value, obj));
});
}
return collectionOf("Set", setSize.call(obj), setParts, indent);
}
if (isWeakMap(obj)) {
return weakCollectionOf("WeakMap");
}
if (isWeakSet(obj)) {
return weakCollectionOf("WeakSet");
}
if (isWeakRef(obj)) {
return weakCollectionOf("WeakRef");
}
if (isNumber2(obj)) {
return markBoxed(inspect(Number(obj)));
}
if (isBigInt(obj)) {
return markBoxed(inspect(bigIntValueOf.call(obj)));
}
if (isBoolean2(obj)) {
return markBoxed(booleanValueOf.call(obj));
}
if (isString2(obj)) {
return markBoxed(inspect(String(obj)));
}
if (typeof window !== "undefined" && obj === window) {
return "{ [object Window] }";
}
if (typeof globalThis !== "undefined" && obj === globalThis || typeof global !== "undefined" && obj === global) {
return "{ [object globalThis] }";
}
if (!isDate2(obj) && !isRegExp2(obj)) {
var ys = arrObjKeys(obj, inspect);
var isPlainObject2 = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
var protoTag = obj instanceof Object ? "" : "null prototype";
var stringTag = !isPlainObject2 && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? "Object" : "";
var constructorTag = isPlainObject2 || typeof obj.constructor !== "function" ? "" : obj.constructor.name ? obj.constructor.name + " " : "";
var tag = constructorTag + (stringTag || protoTag ? "[" + $join.call($concat.call([], stringTag || [], protoTag || []), ": ") + "] " : "");
if (ys.length === 0) {
return tag + "{}";
}
if (indent) {
return tag + "{" + indentedJoin(ys, indent) + "}";
}
return tag + "{ " + $join.call(ys, ", ") + " }";
}
return String(obj);
};
function wrapQuotes(s, defaultStyle, opts) {
var style = opts.quoteStyle || defaultStyle;
var quoteChar = quotes[style];
return quoteChar + s + quoteChar;
}
function quote(s) {
return $replace.call(String(s), /"/g, """);
}
function canTrustToString(obj) {
return !toStringTag || !(typeof obj === "object" && (toStringTag in obj || typeof obj[toStringTag] !== "undefined"));
}
function isArray2(obj) {
return toStr(obj) === "[object Array]" && canTrustToString(obj);
}
function isDate2(obj) {
return toStr(obj) === "[object Date]" && canTrustToString(obj);
}
function isRegExp2(obj) {
return toStr(obj) === "[object RegExp]" && canTrustToString(obj);
}
function isError(obj) {
return toStr(obj) === "[object Error]" && canTrustToString(obj);
}
function isString2(obj) {
return toStr(obj) === "[object String]" && canTrustToString(obj);
}
function isNumber2(obj) {
return toStr(obj) === "[object Number]" && canTrustToString(obj);
}
function isBoolean2(obj) {
return toStr(obj) === "[object Boolean]" && canTrustToString(obj);
}
function isSymbol(obj) {
if (hasShammedSymbols) {
return obj && typeof obj === "object" && obj instanceof Symbol;
}
if (typeof obj === "symbol") {
return true;
}
if (!obj || typeof obj !== "object" || !symToString) {
return false;
}
try {
symToString.call(obj);
return true;
} catch (e) {
}
return false;
}
function isBigInt(obj) {
if (!obj || typeof obj !== "object" || !bigIntValueOf) {
return false;
}
try {
bigIntValueOf.call(obj);
return true;
} catch (e) {
}
return false;
}
var hasOwn = Object.prototype.hasOwnProperty || function(key) {
return key in this;
};
function has(obj, key) {
return hasOwn.call(obj, key);
}
function toStr(obj) {
return objectToString.call(obj);
}
function nameOf(f) {
if (f.name) {
return f.name;
}
var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/);
if (m) {
return m[1];
}
return null;
}
function indexOf(xs, x) {
if (xs.indexOf) {
return xs.indexOf(x);
}
for (var i = 0, l = xs.length; i < l; i++) {
if (xs[i] === x) {
return i;
}
}
return -1;
}
function isMap(x) {
if (!mapSize || !x || typeof x !== "object") {
return false;
}
try {
mapSize.call(x);
try {
setSize.call(x);
} catch (s) {
return true;
}
return x instanceof Map;
} catch (e) {
}
return false;
}
function isWeakMap(x) {
if (!weakMapHas || !x || typeof x !== "object") {
return false;
}
try {
weakMapHas.call(x, weakMapHas);
try {
weakSetHas.call(x, weakSetHas);
} catch (s) {
return true;
}
return x instanceof WeakMap;
} catch (e) {
}
return false;
}
function isWeakRef(x) {
if (!weakRefDeref || !x || typeof x !== "object") {
return false;
}
try {
weakRefDeref.call(x);
return true;
} catch (e) {
}
return false;
}
function isSet(x) {
if (!setSize || !x || typeof x !== "object") {
return false;
}
try {
setSize.call(x);
try {
mapSize.call(x);
} catch (m) {
return true;
}
return x instanceof Set;
} catch (e) {
}
return false;
}
function isWeakSet(x) {
if (!weakSetHas || !x || typeof x !== "object") {
return false;
}
try {
weakSetHas.call(x, weakSetHas);
try {
weakMapHas.call(x, weakMapHas);
} catch (s) {
return true;
}
return x instanceof WeakSet;
} catch (e) {
}
return false;
}
function isElement(x) {
if (!x || typeof x !== "object") {
return false;
}
if (typeof HTMLElement !== "undefined" && x instanceof HTMLElement) {
return true;
}
return typeof x.nodeName === "string" && typeof x.getAttribute === "function";
}
function inspectString(str, opts) {
if (str.length > opts.maxStringLength) {
var remaining = str.length - opts.maxStringLength;
var trailer = "... " + remaining + " more character" + (remaining > 1 ? "s" : "");
return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;
}
var quoteRE = quoteREs[opts.quoteStyle || "single"];
quoteRE.lastIndex = 0;
var s = $replace.call($replace.call(str, quoteRE, "\\$1"), /[\x00-\x1f]/g, lowbyte);
return wrapQuotes(s, "single", opts);
}
function lowbyte(c) {
var n = c.charCodeAt(0);
var x = {
8: "b",
9: "t",
10: "n",
12: "f",
13: "r"
}[n];
if (x) {
return "\\" + x;
}
return "\\x" + (n < 16 ? "0" : "") + $toUpperCase.call(n.toString(16));
}
function markBoxed(str) {
return "Object(" + str + ")";
}
function weakCollectionOf(type) {
return type + " { ? }";
}
function collectionOf(type, size, entries, indent) {
var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ", ");
return type + " (" + size + ") {" + joinedEntries + "}";
}
function singleLineValues(xs) {
for (var i = 0; i < xs.length; i++) {
if (indexOf(xs[i], "\n") >= 0) {
return false;
}
}
return true;
}
function getIndent(opts, depth) {
var baseIndent;
if (opts.indent === " ") {
baseIndent = " ";
} else if (typeof opts.indent === "number" && opts.indent > 0) {
baseIndent = $join.call(Array(opts.indent + 1), " ");
} else {
return null;
}
return {
base: baseIndent,
prev: $join.call(Array(depth + 1), baseIndent)
};
}
function indentedJoin(xs, indent) {
if (xs.length === 0) {
return "";
}
var lineJoiner = "\n" + indent.prev + indent.base;
return lineJoiner + $join.call(xs, "," + lineJoiner) + "\n" + indent.prev;
}
function arrObjKeys(obj, inspect) {
var isArr = isArray2(obj);
var xs = [];
if (isArr) {
xs.length = obj.length;
for (var i = 0; i < obj.length; i++) {
xs[i] = has(obj, i) ? inspect(obj[i], obj) : "";
}
}
var syms = typeof gOPS === "function" ? gOPS(obj) : [];
var symMap;
if (hasShammedSymbols) {
symMap = {};
for (var k = 0; k < syms.length; k++) {
symMap["$" + syms[k]] = syms[k];
}
}
for (var key in obj) {
if (!has(obj, key)) {
continue;
}
if (isArr && String(Number(key)) === key && key < obj.length) {
continue;
}
if (hasShammedSymbols && symMap["$" + key] instanceof Symbol) {
continue;
} else if ($test.call(/[^\w$]/, key)) {
xs.push(inspect(key, obj) + ": " + inspect(obj[key], obj));
} else {
xs.push(key + ": " + inspect(obj[key], obj));
}
}
if (typeof gOPS === "function") {
for (var j = 0; j < syms.length; j++) {
if (isEnumerable.call(obj, syms[j])) {
xs.push("[" + inspect(syms[j]) + "]: " + inspect(obj[syms[j]], obj));
}
}
}
return xs;
}
}
});
var require_side_channel_list = __commonJS2({
"node_modules/side-channel-list/index.js"(exports2, module2) {
"use strict";
var inspect = require_object_inspect();
var $TypeError = require_type2();
var listGetNode = function(list, key, isDelete) {
var prev = list;
var curr;
for (; (curr = prev.next) != null; prev = curr) {
if (curr.key === key) {
prev.next = curr.next;
if (!isDelete) {
curr.next = /** @type {NonNullable<typeof list.next>} */
list.next;
list.next = curr;
}
return curr;
}
}
};
var listGet = function(objects, key) {
if (!objects) {
return void 0;
}
var node = listGetNode(objects, key);
return node && node.value;
};
var listSet = function(objects, key, value) {
var node = listGetNode(objects, key);
if (node) {
node.value = value;
} else {
objects.next = /** @type {import('./list.d.ts').ListNode<typeof value, typeof key>} */
{
// eslint-disable-line no-param-reassign, no-extra-parens
key,
next: objects.next,
value
};
}
};
var listHas = function(objects, key) {
if (!objects) {
return false;
}
return !!listGetNode(objects, key);
};
var listDelete = function(objects, key) {
if (objects) {
return listGetNode(objects, key, true);
}
};
module2.exports = function getSideChannelList() {
var $o;
var channel = {
assert: function(key) {
if (!channel.has(key)) {
throw new $TypeError("Side channel does not contain " + inspect(key));
}
},
"delete": function(key) {
var root = $o && $o.next;
var deletedNode = listDelete($o, key);
if (deletedNode && root && root === deletedNode) {
$o = void 0;
}
return !!deletedNode;
},
get: function(key) {
return listGet($o, key);
},
has: function(key) {
return listHas($o, key);
},
set: function(key, value) {
if (!$o) {
$o = {
next: void 0
};
}
listSet(
/** @type {NonNullable<typeof $o>} */
$o,
key,
value
);
}
};
return channel;
};
}
});
var require_es_object_atoms2 = __commonJS2({
"node_modules/es-object-atoms/index.js"(exports2, module2) {
"use strict";
module2.exports = Object;
}
});
var require_es_errors2 = __commonJS2({
"node_modules/es-errors/index.js"(exports2, module2) {
"use strict";
module2.exports = Error;
}
});
var require_eval2 = __commonJS2({
"node_modules/es-errors/eval.js"(exports2, module2) {
"use strict";
module2.exports = EvalError;
}
});
var require_range2 = __commonJS2({
"node_modules/es-errors/range.js"(exports2, module2) {
"use strict";
module2.exports = RangeError;
}
});
var require_ref3 = __commonJS2({
"node_modules/es-errors/ref.js"(exports2, module2) {
"use strict";
module2.exports = ReferenceError;
}
});
var require_syntax2 = __commonJS2({
"node_modules/es-errors/syntax.js"(exports2, module2) {
"use strict";
module2.exports = SyntaxError;
}
});
var require_uri2 = __commonJS2({
"node_modules/es-errors/uri.js"(exports2, module2) {
"use strict";
module2.exports = URIError;
}
});
var require_abs2 = __commonJS2({
"node_modules/math-intrinsics/abs.js"(exports2, module2) {
"use strict";
module2.exports = Math.abs;
}
});
var require_floor2 = __commonJS2({
"node_modules/math-intrinsics/floor.js"(exports2, module2) {
"use strict";
module2.exports = Math.floor;
}
});
var require_max2 = __commonJS2({
"node_modules/math-intrinsics/max.js"(exports2, module2) {
"use strict";
module2.exports = Math.max;
}
});
var require_min2 = __commonJS2({
"node_modules/math-intrinsics/min.js"(exports2, module2) {
"use strict";
module2.exports = Math.min;
}
});
var require_pow2 = __commonJS2({
"node_modules/math-intrinsics/pow.js"(exports2, module2) {
"use strict";
module2.exports = Math.pow;
}
});
var require_round2 = __commonJS2({
"node_modules/math-intrinsics/round.js"(exports2, module2) {
"use strict";
module2.exports = Math.round;
}
});
var require_isNaN2 = __commonJS2({
"node_modules/math-intrinsics/isNaN.js"(exports2, module2) {
"use strict";
module2.exports = Number.isNaN || function isNaN2(a) {
return a !== a;
};
}
});
var require_sign2 = __commonJS2({
"node_modules/math-intrinsics/sign.js"(exports2, module2) {
"use strict";
var $isNaN = require_isNaN2();
module2.exports = function sign(number) {
if ($isNaN(number) || number === 0) {
return number;
}
return number < 0 ? -1 : 1;
};
}
});
var require_gOPD2 = __commonJS2({
"node_modules/gopd/gOPD.js"(exports2, module2) {
"use strict";
module2.exports = Object.getOwnPropertyDescriptor;
}
});
var require_gopd2 = __commonJS2({
"node_modules/gopd/index.js"(exports2, module2) {
"use strict";
var $gOPD = require_gOPD2();
if ($gOPD) {
try {
$gOPD([], "length");
} catch (e) {
$gOPD = null;
}
}
module2.exports = $gOPD;
}
});
var require_es_define_property2 = __commonJS2({
"node_modules/es-define-property/index.js"(exports2, module2) {
"use strict";
var $defineProperty = Object.defineProperty || false;
if ($defineProperty) {
try {
$defineProperty({}, "a", { value: 1 });
} catch (e) {
$defineProperty = false;
}
}
module2.exports = $defineProperty;
}
});
var require_shams3 = __commonJS2({
"node_modules/has-symbols/shams.js"(exports2, module2) {
"use strict";
module2.exports = function hasSymbols() {
if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") {
return false;
}
if (typeof Symbol.iterator === "symbol") {
return true;
}
var obj = {};
var sym = Symbol("test");
var symObj = Object(sym);
if (typeof sym === "string") {
return false;
}
if (Object.prototype.toString.call(sym) !== "[object Symbol]") {
return false;
}
if (Object.prototype.toString.call(symObj) !== "[object Symbol]") {
return false;
}
var symVal = 42;
obj[sym] = symVal;
for (var _2 in obj) {
return false;
}
if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) {
return false;
}
if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) {
return false;
}
var syms = Object.getOwnPropertySymbols(obj);
if (syms.length !== 1 || syms[0] !== sym) {
return false;
}
if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {
return false;
}
if (typeof Object.getOwnPropertyDescriptor === "function") {
var descriptor = (
/** @type {PropertyDescriptor} */
Object.getOwnPropertyDescriptor(obj, sym)
);
if (descriptor.value !== symVal || descriptor.enumerable !== true) {
return false;
}
}
return true;
};
}
});
var require_has_symbols2 = __commonJS2({
"node_modules/has-symbols/index.js"(exports2, module2) {
"use strict";
var origSymbol = typeof Symbol !== "undefined" && Symbol;
var hasSymbolSham = require_shams3();
module2.exports = function hasNativeSymbols() {
if (typeof origSymbol !== "function") {
return false;
}
if (typeof Symbol !== "function") {
return false;
}
if (typeof origSymbol("foo") !== "symbol") {
return false;
}
if (typeof Symbol("bar") !== "symbol") {
return false;
}
return hasSymbolSham();
};
}
});
var require_Reflect_getPrototypeOf2 = __commonJS2({
"node_modules/get-proto/Reflect.getPrototypeOf.js"(exports2, module2) {
"use strict";
module2.exports = typeof Reflect !== "undefined" && Reflect.getPrototypeOf || null;
}
});
var require_Object_getPrototypeOf2 = __commonJS2({
"node_modules/get-proto/Object.getPrototypeOf.js"(exports2, module2) {
"use strict";
var $Object = require_es_object_atoms2();
module2.exports = $Object.getPrototypeOf || null;
}
});
var require_implementation2 = __commonJS2({
"node_modules/function-bind/implementation.js"(exports2, module2) {
"use strict";
var ERROR_MESSAGE = "Function.prototype.bind called on incompatible ";
var toStr = Object.prototype.toString;
var max = Math.max;
var funcType = "[object Function]";
var concatty = function concatty2(a, b) {
var arr = [];
for (var i = 0; i < a.length; i += 1) {
arr[i] = a[i];
}
for (var j = 0; j < b.length; j += 1) {
arr[j + a.length] = b[j];
}
return arr;
};
var slicy = function slicy2(arrLike, offset) {
var arr = [];
for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {
arr[j] = arrLike[i];
}
return arr;
};
var joiny = function(arr, joiner) {
var str = "";
for (var i = 0; i < arr.length; i += 1) {
str += arr[i];
if (i + 1 < arr.length) {
str += joiner;
}
}
return str;
};
module2.exports = function bind2(that) {
var target = this;
if (typeof target !== "function" || toStr.apply(target) !== funcType) {
throw new TypeError(ERROR_MESSAGE + target);
}
var args = slicy(arguments, 1);
var bound;
var binder = function() {
if (this instanceof bound) {
var result = target.apply(
this,
concatty(args, arguments)
);
if (Object(result) === result) {
return result;
}
return this;
}
return target.apply(
that,
concatty(args, arguments)
);
};
var boundLength = max(0, target.length - args.length);
var boundArgs = [];
for (var i = 0; i < boundLength; i++) {
boundArgs[i] = "$" + i;
}
bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder);
if (target.prototype) {
var Empty = function Empty2() {
};
Empty.prototype = target.prototype;
bound.prototype = new Empty();
Empty.prototype = null;
}
return bound;
};
}
});
var require_function_bind2 = __commonJS2({
"node_modules/function-bind/index.js"(exports2, module2) {
"use strict";
var implementation = require_implementation2();
module2.exports = Function.prototype.bind || implementation;
}
});
var require_functionCall2 = __commonJS2({
"node_modules/call-bind-apply-helpers/functionCall.js"(exports2, module2) {
"use strict";
module2.exports = Function.prototype.call;
}
});
var require_functionApply2 = __commonJS2({
"node_modules/call-bind-apply-helpers/functionApply.js"(exports2, module2) {
"use strict";
module2.exports = Function.prototype.apply;
}
});
var require_reflectApply2 = __commonJS2({
"node_modules/call-bind-apply-helpers/reflectApply.js"(exports2, module2) {
"use strict";
module2.exports = typeof Reflect !== "undefined" && Reflect && Reflect.apply;
}
});
var require_actualApply2 = __commonJS2({
"node_modules/call-bind-apply-helpers/actualApply.js"(exports2, module2) {
"use strict";
var bind2 = require_function_bind2();
var $apply = require_functionApply2();
var $call = require_functionCall2();
var $reflectApply = require_reflectApply2();
module2.exports = $reflectApply || bind2.call($call, $apply);
}
});
var require_call_bind_apply_helpers2 = __commonJS2({
"node_modules/call-bind-apply-helpers/index.js"(exports2, module2) {
"use strict";
var bind2 = require_function_bind2();
var $TypeError = require_type2();
var $call = require_functionCall2();
var $actualApply = require_actualApply2();
module2.exports = function callBindBasic(args) {
if (args.length < 1 || typeof args[0] !== "function") {
throw new $TypeError("a function is required");
}
return $actualApply(bind2, $call, args);
};
}
});
var require_get2 = __commonJS2({
"node_modules/dunder-proto/get.js"(exports2, module2) {
"use strict";
var callBind = require_call_bind_apply_helpers2();
var gOPD = require_gopd2();
var hasProtoAccessor;
try {
hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */
[].__proto__ === Array.prototype;
} catch (e) {
if (!e || typeof e !== "object" || !("code" in e) || e.code !== "ERR_PROTO_ACCESS") {
throw e;
}
}
var desc = !!hasProtoAccessor && gOPD && gOPD(
Object.prototype,
/** @type {keyof typeof Object.prototype} */
"__proto__"
);
var $Object = Object;
var $getPrototypeOf = $Object.getPrototypeOf;
module2.exports = desc && typeof desc.get === "function" ? callBind([desc.get]) : typeof $getPrototypeOf === "function" ? (
/** @type {import('./get')} */
(function getDunder(value) {
return $getPrototypeOf(value == null ? value : $Object(value));
})
) : false;
}
});
var require_get_proto2 = __commonJS2({
"node_modules/get-proto/index.js"(exports2, module2) {
"use strict";
var reflectGetProto = require_Reflect_getPrototypeOf2();
var originalGetProto = require_Object_getPrototypeOf2();
var getDunderProto = require_get2();
module2.exports = reflectGetProto ? function getProto(O) {
return reflectGetProto(O);
} : originalGetProto ? function getProto(O) {
if (!O || typeof O !== "object" && typeof O !== "function") {
throw new TypeError("getProto: not an object");
}
return originalGetProto(O);
} : getDunderProto ? function getProto(O) {
return getDunderProto(O);
} : null;
}
});
var require_hasown2 = __commonJS2({
"node_modules/hasown/index.js"(exports2, module2) {
"use strict";
var call = Function.prototype.call;
var $hasOwn = Object.prototype.hasOwnProperty;
var bind2 = require_function_bind2();
module2.exports = bind2.call(call, $hasOwn);
}
});
var require_get_intrinsic2 = __commonJS2({
"node_modules/get-intrinsic/index.js"(exports2, module2) {
"use strict";
var undefined2;
var $Object = require_es_object_atoms2();
var $Error = require_es_errors2();
var $EvalError = require_eval2();
var $RangeError = require_range2();
var $ReferenceError = require_ref3();
var $SyntaxError = require_syntax2();
var $TypeError = require_type2();
var $URIError = require_uri2();
var abs = require_abs2();
var floor = require_floor2();
var max = require_max2();
var min = require_min2();
var pow = require_pow2();
var round = require_round2();
var sign = require_sign2();
var $Function = Function;
var getEvalledConstructor = function(expressionSyntax) {
try {
return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")();
} catch (e) {
}
};
var $gOPD = require_gopd2();
var $defineProperty = require_es_define_property2();
var throwTypeError = function() {
throw new $TypeError();
};
var ThrowTypeError = $gOPD ? (function() {
try {
arguments.callee;
return throwTypeError;
} catch (calleeThrows) {
try {
return $gOPD(arguments, "callee").get;
} catch (gOPDthrows) {
return throwTypeError;
}
}
})() : throwTypeError;
var hasSymbols = require_has_symbols2()();
var getProto = require_get_proto2();
var $ObjectGPO = require_Object_getPrototypeOf2();
var $ReflectGPO = require_Reflect_getPrototypeOf2();
var $apply = require_functionApply2();
var $call = require_functionCall2();
var needsEval = {};
var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array);
var INTRINSICS = {
__proto__: null,
"%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError,
"%Array%": Array,
"%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer,
"%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2,
"%AsyncFromSyncIteratorPrototype%": undefined2,
"%AsyncFunction%": needsEval,
"%AsyncGenerator%": needsEval,
"%AsyncGeneratorFunction%": needsEval,
"%AsyncIteratorPrototype%": needsEval,
"%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics,
"%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt,
"%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array,
"%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array,
"%Boolean%": Boolean,
"%DataView%": typeof DataView === "undefined" ? undefined2 : DataView,
"%Date%": Date,
"%decodeURI%": decodeURI,
"%decodeURIComponent%": decodeURIComponent,
"%encodeURI%": encodeURI,
"%encodeURIComponent%": encodeURIComponent,
"%Error%": $Error,
"%eval%": eval,
// eslint-disable-line no-eval
"%EvalError%": $EvalError,
"%Float16Array%": typeof Float16Array === "undefined" ? undefined2 : Float16Array,
"%Float32Array%": typeof Float32Array === "undefined" ? undefined2 : Float32Array,
"%Float64Array%": typeof Float64Array === "undefined" ? undefined2 : Float64Array,
"%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined2 : FinalizationRegistry,
"%Function%": $Function,
"%GeneratorFunction%": needsEval,
"%Int8Array%": typeof Int8Array === "undefined" ? undefined2 : Int8Array,
"%Int16Array%": typeof Int16Array === "undefined" ? undefined2 : Int16Array,
"%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array,
"%isFinite%": isFinite,
"%isNaN%": isNaN,
"%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2,
"%JSON%": typeof JSON === "object" ? JSON : undefined2,
"%Map%": typeof Map === "undefined" ? undefined2 : Map,
"%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()),
"%Math%": Math,
"%Number%": Number,
"%Object%": $Object,
"%Object.getOwnPropertyDescriptor%": $gOPD,
"%parseFloat%": parseFloat,
"%parseInt%": parseInt,
"%Promise%": typeof Promise === "undefined" ? undefined2 : Promise,
"%Proxy%": typeof Proxy === "undefined" ? undefined2 : Proxy,
"%RangeError%": $RangeError,
"%ReferenceError%": $ReferenceError,
"%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect,
"%RegExp%": RegExp,
"%Set%": typeof Set === "undefined" ? undefined2 : Set,
"%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()),
"%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer,
"%String%": String,
"%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2,
"%Symbol%": hasSymbols ? Symbol : undefined2,
"%SyntaxError%": $SyntaxError,
"%ThrowTypeError%": ThrowTypeError,
"%TypedArray%": TypedArray,
"%TypeError%": $TypeError,
"%Uint8Array%": typeof Uint8Array === "undefined" ? undefined2 : Uint8Array,
"%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined2 : Uint8ClampedArray,
"%Uint16Array%": typeof Uint16Array === "undefined" ? undefined2 : Uint16Array,
"%Uint32Array%": typeof Uint32Array === "undefined" ? undefined2 : Uint32Array,
"%URIError%": $URIError,
"%WeakMap%": typeof WeakMap === "undefined" ? undefined2 : WeakMap,
"%WeakRef%": typeof WeakRef === "undefined" ? undefined2 : WeakRef,
"%WeakSet%": typeof WeakSet === "undefined" ? undefined2 : WeakSet,
"%Function.prototype.call%": $call,
"%Function.prototype.apply%": $apply,
"%Object.defineProperty%": $defineProperty,
"%Object.getPrototypeOf%": $ObjectGPO,
"%Math.abs%": abs,
"%Math.floor%": floor,
"%Math.max%": max,
"%Math.min%": min,
"%Math.pow%": pow,
"%Math.round%": round,
"%Math.sign%": sign,
"%Reflect.getPrototypeOf%": $ReflectGPO
};
if (getProto) {
try {
null.error;
} catch (e) {
errorProto = getProto(getProto(e));
INTRINSICS["%Error.prototype%"] = errorProto;
}
}
var errorProto;
var doEval = function doEval2(name) {
var value;
if (name === "%AsyncFunction%") {
value = getEvalledConstructor("async function () {}");
} else if (name === "%GeneratorFunction%") {
value = getEvalledConstructor("function* () {}");
} else if (name === "%AsyncGeneratorFunction%") {
value = getEvalledConstructor("async function* () {}");
} else if (name === "%AsyncGenerator%") {
var fn = doEval2("%AsyncGeneratorFunction%");
if (fn) {
value = fn.prototype;
}
} else if (name === "%AsyncIteratorPrototype%") {
var gen = doEval2("%AsyncGenerator%");
if (gen && getProto) {
value = getProto(gen.prototype);
}
}
INTRINSICS[name] = value;
return value;
};
var LEGACY_ALIASES = {
__proto__: null,
"%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"],
"%ArrayPrototype%": ["Array", "prototype"],
"%ArrayProto_entries%": ["Array", "prototype", "entries"],
"%ArrayProto_forEach%": ["Array", "prototype", "forEach"],
"%ArrayProto_keys%": ["Array", "prototype", "keys"],
"%ArrayProto_values%": ["Array", "prototype", "values"],
"%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"],
"%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"],
"%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"],
"%BooleanPrototype%": ["Boolean", "prototype"],
"%DataViewPrototype%": ["DataView", "prototype"],
"%DatePrototype%": ["Date", "prototype"],
"%ErrorPrototype%": ["Error", "prototype"],
"%EvalErrorPrototype%": ["EvalError", "prototype"],
"%Float32ArrayPrototype%": ["Float32Array", "prototype"],
"%Float64ArrayPrototype%": ["Float64Array", "prototype"],
"%FunctionPrototype%": ["Function", "prototype"],
"%Generator%": ["GeneratorFunction", "prototype"],
"%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"],
"%Int8ArrayPrototype%": ["Int8Array", "prototype"],
"%Int16ArrayPrototype%": ["Int16Array", "prototype"],
"%Int32ArrayPrototype%": ["Int32Array", "prototype"],
"%JSONParse%": ["JSON", "parse"],
"%JSONStringify%": ["JSON", "stringify"],
"%MapPrototype%": ["Map", "prototype"],
"%NumberPrototype%": ["Number", "prototype"],
"%ObjectPrototype%": ["Object", "prototype"],
"%ObjProto_toString%": ["Object", "prototype", "toString"],
"%ObjProto_valueOf%": ["Object", "prototype", "valueOf"],
"%PromisePrototype%": ["Promise", "prototype"],
"%PromiseProto_then%": ["Promise", "prototype", "then"],
"%Promise_all%": ["Promise", "all"],
"%Promise_reject%": ["Promise", "reject"],
"%Promise_resolve%": ["Promise", "resolve"],
"%RangeErrorPrototype%": ["RangeError", "prototype"],
"%ReferenceErrorPrototype%": ["ReferenceError", "prototype"],
"%RegExpPrototype%": ["RegExp", "prototype"],
"%SetPrototype%": ["Set", "prototype"],
"%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"],
"%StringPrototype%": ["String", "prototype"],
"%SymbolPrototype%": ["Symbol", "prototype"],
"%SyntaxErrorPrototype%": ["SyntaxError", "prototype"],
"%TypedArrayPrototype%": ["TypedArray", "prototype"],
"%TypeErrorPrototype%": ["TypeError", "prototype"],
"%Uint8ArrayPrototype%": ["Uint8Array", "prototype"],
"%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"],
"%Uint16ArrayPrototype%": ["Uint16Array", "prototype"],
"%Uint32ArrayPrototype%": ["Uint32Array", "prototype"],
"%URIErrorPrototype%": ["URIError", "prototype"],
"%WeakMapPrototype%": ["WeakMap", "prototype"],
"%WeakSetPrototype%": ["WeakSet", "prototype"]
};
var bind2 = require_function_bind2();
var hasOwn = require_hasown2();
var $concat = bind2.call($call, Array.prototype.concat);
var $spliceApply = bind2.call($apply, Array.prototype.splice);
var $replace = bind2.call($call, String.prototype.replace);
var $strSlice = bind2.call($call, String.prototype.slice);
var $exec = bind2.call($call, RegExp.prototype.exec);
var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
var reEscapeChar = /\\(\\)?/g;
var stringToPath = function stringToPath2(string) {
var first = $strSlice(string, 0, 1);
var last = $strSlice(string, -1);
if (first === "%" && last !== "%") {
throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`");
} else if (last === "%" && first !== "%") {
throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`");
}
var result = [];
$replace(string, rePropName, function(match, number, quote, subString) {
result[result.length] = quote ? $replace(subString, reEscapeChar, "$1") : number || match;
});
return result;
};
var getBaseIntrinsic = function getBaseIntrinsic2(name, allowMissing) {
var intrinsicName = name;
var alias;
if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
alias = LEGACY_ALIASES[intrinsicName];
intrinsicName = "%" + alias[0] + "%";
}
if (hasOwn(INTRINSICS, intrinsicName)) {
var value = INTRINSICS[intrinsicName];
if (value === needsEval) {
value = doEval(intrinsicName);
}
if (typeof value === "undefined" && !allowMissing) {
throw new $TypeError("intrinsic " + name + " exists, but is not available. Please file an issue!");
}
return {
alias,
name: intrinsicName,
value
};
}
throw new $SyntaxError("intrinsic " + name + " does not exist!");
};
module2.exports = function GetIntrinsic(name, allowMissing) {
if (typeof name !== "string" || name.length === 0) {
throw new $TypeError("intrinsic name must be a non-empty string");
}
if (arguments.length > 1 && typeof allowMissing !== "boolean") {
throw new $TypeError('"allowMissing" argument must be a boolean');
}
if ($exec(/^%?[^%]*%?$/, name) === null) {
throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
}
var parts = stringToPath(name);
var intrinsicBaseName = parts.length > 0 ? parts[0] : "";
var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing);
var intrinsicRealName = intrinsic.name;
var value = intrinsic.value;
var skipFurtherCaching = false;
var alias = intrinsic.alias;
if (alias) {
intrinsicBaseName = alias[0];
$spliceApply(parts, $concat([0, 1], alias));
}
for (var i = 1, isOwn = true; i < parts.length; i += 1) {
var part = parts[i];
var first = $strSlice(part, 0, 1);
var last = $strSlice(part, -1);
if ((first === '"' || first === "'" || first === "`" || (last === '"' || last === "'" || last === "`")) && first !== last) {
throw new $SyntaxError("property names with quotes must have matching quotes");
}
if (part === "constructor" || !isOwn) {
skipFurtherCaching = true;
}
intrinsicBaseName += "." + part;
intrinsicRealName = "%" + intrinsicBaseName + "%";
if (hasOwn(INTRINSICS, intrinsicRealName)) {
value = INTRINSICS[intrinsicRealName];
} else if (value != null) {
if (!(part in value)) {
if (!allowMissing) {
throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available.");
}
return void undefined2;
}
if ($gOPD && i + 1 >= parts.length) {
var desc = $gOPD(value, part);
isOwn = !!desc;
if (isOwn && "get" in desc && !("originalValue" in desc.get)) {
value = desc.get;
} else {
value = value[part];
}
} else {
isOwn = hasOwn(value, part);
value = value[part];
}
if (isOwn && !skipFurtherCaching) {
INTRINSICS[intrinsicRealName] = value;
}
}
}
return value;
};
}
});
var require_call_bound = __commonJS2({
"node_modules/call-bound/index.js"(exports2, module2) {
"use strict";
var GetIntrinsic = require_get_intrinsic2();
var callBindBasic = require_call_bind_apply_helpers2();
var $indexOf = callBindBasic([GetIntrinsic("%String.prototype.indexOf%")]);
module2.exports = function callBoundIntrinsic(name, allowMissing) {
var intrinsic = (
/** @type {(this: unknown, ...args: unknown[]) => unknown} */
GetIntrinsic(name, !!allowMissing)
);
if (typeof intrinsic === "function" && $indexOf(name, ".prototype.") > -1) {
return callBindBasic(
/** @type {const} */
[intrinsic]
);
}
return intrinsic;
};
}
});
var require_side_channel_map = __commonJS2({
"node_modules/side-channel-map/index.js"(exports2, module2) {
"use strict";
var GetIntrinsic = require_get_intrinsic2();
var callBound = require_call_bound();
var inspect = require_object_inspect();
var $TypeError = require_type2();
var $Map = GetIntrinsic("%Map%", true);
var $mapGet = callBound("Map.prototype.get", true);
var $mapSet = callBound("Map.prototype.set", true);
var $mapHas = callBound("Map.prototype.has", true);
var $mapDelete = callBound("Map.prototype.delete", true);
var $mapSize = callBound("Map.prototype.size", true);
module2.exports = !!$Map && /** @type {Exclude<import('.'), false>} */
function getSideChannelMap() {
var $m;
var channel = {
assert: function(key) {
if (!channel.has(key)) {
throw new $TypeError("Side channel does not contain " + inspect(key));
}
},
"delete": function(key) {
if ($m) {
var result = $mapDelete($m, key);
if ($mapSize($m) === 0) {
$m = void 0;
}
return result;
}
return false;
},
get: function(key) {
if ($m) {
return $mapGet($m, key);
}
},
has: function(key) {
if ($m) {
return $mapHas($m, key);
}
return false;
},
set: function(key, value) {
if (!$m) {
$m = new $Map();
}
$mapSet($m, key, value);
}
};
return channel;
};
}
});
var require_side_channel_weakmap = __commonJS2({
"node_modules/side-channel-weakmap/index.js"(exports2, module2) {
"use strict";
var GetIntrinsic = require_get_intrinsic2();
var callBound = require_call_bound();
var inspect = require_object_inspect();
var getSideChannelMap = require_side_channel_map();
var $TypeError = require_type2();
var $WeakMap = GetIntrinsic("%WeakMap%", true);
var $weakMapGet = callBound("WeakMap.prototype.get", true);
var $weakMapSet = callBound("WeakMap.prototype.set", true);
var $weakMapHas = callBound("WeakMap.prototype.has", true);
var $weakMapDelete = callBound("WeakMap.prototype.delete", true);
module2.exports = $WeakMap ? (
/** @type {Exclude<import('.'), false>} */
(function getSideChannelWeakMap() {
var $wm;
var $m;
var channel = {
assert: function(key) {
if (!channel.has(key)) {
throw new $TypeError("Side channel does not contain " + inspect(key));
}
},
"delete": function(key) {
if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
if ($wm) {
return $weakMapDelete($wm, key);
}
} else if (getSideChannelMap) {
if ($m) {
return $m["delete"](key);
}
}
return false;
},
get: function(key) {
if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
if ($wm) {
return $weakMapGet($wm, key);
}
}
return $m && $m.get(key);
},
has: function(key) {
if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
if ($wm) {
return $weakMapHas($wm, key);
}
}
return !!$m && $m.has(key);
},
set: function(key, value) {
if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
if (!$wm) {
$wm = new $WeakMap();
}
$weakMapSet($wm, key, value);
} else if (getSideChannelMap) {
if (!$m) {
$m = getSideChannelMap();
}
$m.set(key, value);
}
}
};
return channel;
})
) : getSideChannelMap;
}
});
var require_side_channel = __commonJS2({
"node_modules/side-channel/index.js"(exports2, module2) {
"use strict";
var $TypeError = require_type2();
var inspect = require_object_inspect();
var getSideChannelList = require_side_channel_list();
var getSideChannelMap = require_side_channel_map();
var getSideChannelWeakMap = require_side_channel_weakmap();
var makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;
module2.exports = function getSideChannel() {
var $channelData;
var channel = {
assert: function(key) {
if (!channel.has(key)) {
throw new $TypeError("Side channel does not contain " + inspect(key));
}
},
"delete": function(key) {
return !!$channelData && $channelData["delete"](key);
},
get: function(key) {
return $channelData && $channelData.get(key);
},
has: function(key) {
return !!$channelData && $channelData.has(key);
},
set: function(key, value) {
if (!$channelData) {
$channelData = makeChannel();
}
$channelData.set(key, value);
}
};
return channel;
};
}
});
var require_formats2 = __commonJS2({
"node_modules/qs/lib/formats.js"(exports2, module2) {
"use strict";
var replace = String.prototype.replace;
var percentTwenties = /%20/g;
var Format = {
RFC1738: "RFC1738",
RFC3986: "RFC3986"
};
module2.exports = {
"default": Format.RFC3986,
formatters: {
RFC1738: function(value) {
return replace.call(value, percentTwenties, "+");
},
RFC3986: function(value) {
return String(value);
}
},
RFC1738: Format.RFC1738,
RFC3986: Format.RFC3986
};
}
});
var require_utils2 = __commonJS2({
"node_modules/qs/lib/utils.js"(exports2, module2) {
"use strict";
var formats = require_formats2();
var has = Object.prototype.hasOwnProperty;
var isArray2 = Array.isArray;
var hexTable = (function() {
var array = [];
for (var i = 0; i < 256; ++i) {
array.push("%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase());
}
return array;
})();
var compactQueue = function compactQueue2(queue) {
while (queue.length > 1) {
var item = queue.pop();
var obj = item.obj[item.prop];
if (isArray2(obj)) {
var compacted = [];
for (var j = 0; j < obj.length; ++j) {
if (typeof obj[j] !== "undefined") {
compacted.push(obj[j]);
}
}
item.obj[item.prop] = compacted;
}
}
};
var arrayToObject2 = function arrayToObject22(source, options) {
var obj = options && options.plainObjects ? { __proto__: null } : {};
for (var i = 0; i < source.length; ++i) {
if (typeof source[i] !== "undefined") {
obj[i] = source[i];
}
}
return obj;
};
var merge2 = function merge22(target, source, options) {
if (!source) {
return target;
}
if (typeof source !== "object" && typeof source !== "function") {
if (isArray2(target)) {
target.push(source);
} else if (target && typeof target === "object") {
if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {
target[source] = true;
}
} else {
return [target, source];
}
return target;
}
if (!target || typeof target !== "object") {
return [target].concat(source);
}
var mergeTarget = target;
if (isArray2(target) && !isArray2(source)) {
mergeTarget = arrayToObject2(target, options);
}
if (isArray2(target) && isArray2(source)) {
source.forEach(function(item, i) {
if (has.call(target, i)) {
var targetItem = target[i];
if (targetItem && typeof targetItem === "object" && item && typeof item === "object") {
target[i] = merge22(targetItem, item, options);
} else {
target.push(item);
}
} else {
target[i] = item;
}
});
return target;
}
return Object.keys(source).reduce(function(acc, key) {
var value = source[key];
if (has.call(acc, key)) {
acc[key] = merge22(acc[key], value, options);
} else {
acc[key] = value;
}
return acc;
}, mergeTarget);
};
var assign = function assignSingleSource(target, source) {
return Object.keys(source).reduce(function(acc, key) {
acc[key] = source[key];
return acc;
}, target);
};
var decode = function(str, defaultDecoder, charset) {
var strWithoutPlus = str.replace(/\+/g, " ");
if (charset === "iso-8859-1") {
return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
}
try {
return decodeURIComponent(strWithoutPlus);
} catch (e) {
return strWithoutPlus;
}
};
var limit = 1024;
var encode3 = function encode22(str, defaultEncoder, charset, kind, format) {
if (str.length === 0) {
return str;
}
var string = str;
if (typeof str === "symbol") {
string = Symbol.prototype.toString.call(str);
} else if (typeof str !== "string") {
string = String(str);
}
if (charset === "iso-8859-1") {
return escape(string).replace(/%u[0-9a-f]{4}/gi, function($0) {
return "%26%23" + parseInt($0.slice(2), 16) + "%3B";
});
}
var out = "";
for (var j = 0; j < string.length; j += limit) {
var segment = string.length >= limit ? string.slice(j, j + limit) : string;
var arr = [];
for (var i = 0; i < segment.length; ++i) {
var c = segment.charCodeAt(i);
if (c === 45 || c === 46 || c === 95 || c === 126 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || format === formats.RFC1738 && (c === 40 || c === 41)) {
arr[arr.length] = segment.charAt(i);
continue;
}
if (c < 128) {
arr[arr.length] = hexTable[c];
continue;
}
if (c < 2048) {
arr[arr.length] = hexTable[192 | c >> 6] + hexTable[128 | c & 63];
continue;
}
if (c < 55296 || c >= 57344) {
arr[arr.length] = hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
continue;
}
i += 1;
c = 65536 + ((c & 1023) << 10 | segment.charCodeAt(i) & 1023);
arr[arr.length] = hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
}
out += arr.join("");
}
return out;
};
var compact = function compact2(value) {
var queue = [{ obj: { o: value }, prop: "o" }];
var refs = [];
for (var i = 0; i < queue.length; ++i) {
var item = queue[i];
var obj = item.obj[item.prop];
var keys = Object.keys(obj);
for (var j = 0; j < keys.length; ++j) {
var key = keys[j];
var val = obj[key];
if (typeof val === "object" && val !== null && refs.indexOf(val) === -1) {
queue.push({ obj, prop: key });
refs.push(val);
}
}
}
compactQueue(queue);
return value;
};
var isRegExp2 = function isRegExp22(obj) {
return Object.prototype.toString.call(obj) === "[object RegExp]";
};
var isBuffer2 = function isBuffer22(obj) {
if (!obj || typeof obj !== "object") {
return false;
}
return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
};
var combine = function combine2(a, b) {
return [].concat(a, b);
};
var maybeMap = function maybeMap2(val, fn) {
if (isArray2(val)) {
var mapped = [];
for (var i = 0; i < val.length; i += 1) {
mapped.push(fn(val[i]));
}
return mapped;
}
return fn(val);
};
module2.exports = {
arrayToObject: arrayToObject2,
assign,
combine,
compact,
decode,
encode: encode3,
isBuffer: isBuffer2,
isRegExp: isRegExp2,
maybeMap,
merge: merge2
};
}
});
var require_stringify = __commonJS2({
"node_modules/qs/lib/stringify.js"(exports2, module2) {
"use strict";
var getSideChannel = require_side_channel();
var utils = require_utils2();
var formats = require_formats2();
var has = Object.prototype.hasOwnProperty;
var arrayPrefixGenerators = {
brackets: function brackets(prefix) {
return prefix + "[]";
},
comma: "comma",
indices: function indices(prefix, key) {
return prefix + "[" + key + "]";
},
repeat: function repeat(prefix) {
return prefix;
}
};
var isArray2 = Array.isArray;
var push = Array.prototype.push;
var pushToArray = function(arr, valueOrArray) {
push.apply(arr, isArray2(valueOrArray) ? valueOrArray : [valueOrArray]);
};
var toISO = Date.prototype.toISOString;
var defaultFormat = formats["default"];
var defaults2 = {
addQueryPrefix: false,
allowDots: false,
allowEmptyArrays: false,
arrayFormat: "indices",
charset: "utf-8",
charsetSentinel: false,
commaRoundTrip: false,
delimiter: "&",
encode: true,
encodeDotInKeys: false,
encoder: utils.encode,
encodeValuesOnly: false,
filter: void 0,
format: defaultFormat,
formatter: formats.formatters[defaultFormat],
// deprecated
indices: false,
serializeDate: function serializeDate(date) {
return toISO.call(date);
},
skipNulls: false,
strictNullHandling: false
};
var isNonNullishPrimitive = function isNonNullishPrimitive2(v) {
return typeof v === "string" || typeof v === "number" || typeof v === "boolean" || typeof v === "symbol" || typeof v === "bigint";
};
var sentinel = {};
var stringify = function stringify2(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter2, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {
var obj = object;
var tmpSc = sideChannel;
var step = 0;
var findFlag = false;
while ((tmpSc = tmpSc.get(sentinel)) !== void 0 && !findFlag) {
var pos = tmpSc.get(object);
step += 1;
if (typeof pos !== "undefined") {
if (pos === step) {
throw new RangeError("Cyclic object value");
} else {
findFlag = true;
}
}
if (typeof tmpSc.get(sentinel) === "undefined") {
step = 0;
}
}
if (typeof filter2 === "function") {
obj = filter2(prefix, obj);
} else if (obj instanceof Date) {
obj = serializeDate(obj);
} else if (generateArrayPrefix === "comma" && isArray2(obj)) {
obj = utils.maybeMap(obj, function(value2) {
if (value2 instanceof Date) {
return serializeDate(value2);
}
return value2;
});
}
if (obj === null) {
if (strictNullHandling) {
return encoder && !encodeValuesOnly ? encoder(prefix, defaults2.encoder, charset, "key", format) : prefix;
}
obj = "";
}
if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
if (encoder) {
var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults2.encoder, charset, "key", format);
return [formatter(keyValue) + "=" + formatter(encoder(obj, defaults2.encoder, charset, "value", format))];
}
return [formatter(prefix) + "=" + formatter(String(obj))];
}
var values = [];
if (typeof obj === "undefined") {
return values;
}
var objKeys;
if (generateArrayPrefix === "comma" && isArray2(obj)) {
if (encodeValuesOnly && encoder) {
obj = utils.maybeMap(obj, encoder);
}
objKeys = [{ value: obj.length > 0 ? obj.join(",") || null : void 0 }];
} else if (isArray2(filter2)) {
objKeys = filter2;
} else {
var keys = Object.keys(obj);
objKeys = sort ? keys.sort(sort) : keys;
}
var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\./g, "%2E") : String(prefix);
var adjustedPrefix = commaRoundTrip && isArray2(obj) && obj.length === 1 ? encodedPrefix + "[]" : encodedPrefix;
if (allowEmptyArrays && isArray2(obj) && obj.length === 0) {
return adjustedPrefix + "[]";
}
for (var j = 0; j < objKeys.length; ++j) {
var key = objKeys[j];
var value = typeof key === "object" && key && typeof key.value !== "undefined" ? key.value : obj[key];
if (skipNulls && value === null) {
continue;
}
var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\./g, "%2E") : String(key);
var keyPrefix = isArray2(obj) ? typeof generateArrayPrefix === "function" ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? "." + encodedKey : "[" + encodedKey + "]");
sideChannel.set(object, step);
var valueSideChannel = getSideChannel();
valueSideChannel.set(sentinel, sideChannel);
pushToArray(values, stringify2(
value,
keyPrefix,
generateArrayPrefix,
commaRoundTrip,
allowEmptyArrays,
strictNullHandling,
skipNulls,
encodeDotInKeys,
generateArrayPrefix === "comma" && encodeValuesOnly && isArray2(obj) ? null : encoder,
filter2,
sort,
allowDots,
serializeDate,
format,
formatter,
encodeValuesOnly,
charset,
valueSideChannel
));
}
return values;
};
var normalizeStringifyOptions = function normalizeStringifyOptions2(opts) {
if (!opts) {
return defaults2;
}
if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
}
if (typeof opts.encodeDotInKeys !== "undefined" && typeof opts.encodeDotInKeys !== "boolean") {
throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");
}
if (opts.encoder !== null && typeof opts.encoder !== "undefined" && typeof opts.encoder !== "function") {
throw new TypeError("Encoder has to be a function.");
}
var charset = opts.charset || defaults2.charset;
if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
}
var format = formats["default"];
if (typeof opts.format !== "undefined") {
if (!has.call(formats.formatters, opts.format)) {
throw new TypeError("Unknown format option provided.");
}
format = opts.format;
}
var formatter = formats.formatters[format];
var filter2 = defaults2.filter;
if (typeof opts.filter === "function" || isArray2(opts.filter)) {
filter2 = opts.filter;
}
var arrayFormat;
if (opts.arrayFormat in arrayPrefixGenerators) {
arrayFormat = opts.arrayFormat;
} else if ("indices" in opts) {
arrayFormat = opts.indices ? "indices" : "repeat";
} else {
arrayFormat = defaults2.arrayFormat;
}
if ("commaRoundTrip" in opts && typeof opts.commaRoundTrip !== "boolean") {
throw new TypeError("`commaRoundTrip` must be a boolean, or absent");
}
var allowDots = typeof opts.allowDots === "undefined" ? opts.encodeDotInKeys === true ? true : defaults2.allowDots : !!opts.allowDots;
return {
addQueryPrefix: typeof opts.addQueryPrefix === "boolean" ? opts.addQueryPrefix : defaults2.addQueryPrefix,
allowDots,
allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults2.allowEmptyArrays,
arrayFormat,
charset,
charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults2.charsetSentinel,
commaRoundTrip: !!opts.commaRoundTrip,
delimiter: typeof opts.delimiter === "undefined" ? defaults2.delimiter : opts.delimiter,
encode: typeof opts.encode === "boolean" ? opts.encode : defaults2.encode,
encodeDotInKeys: typeof opts.encodeDotInKeys === "boolean" ? opts.encodeDotInKeys : defaults2.encodeDotInKeys,
encoder: typeof opts.encoder === "function" ? opts.encoder : defaults2.encoder,
encodeValuesOnly: typeof opts.encodeValuesOnly === "boolean" ? opts.encodeValuesOnly : defaults2.encodeValuesOnly,
filter: filter2,
format,
formatter,
serializeDate: typeof opts.serializeDate === "function" ? opts.serializeDate : defaults2.serializeDate,
skipNulls: typeof opts.skipNulls === "boolean" ? opts.skipNulls : defaults2.skipNulls,
sort: typeof opts.sort === "function" ? opts.sort : null,
strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults2.strictNullHandling
};
};
module2.exports = function(object, opts) {
var obj = object;
var options = normalizeStringifyOptions(opts);
var objKeys;
var filter2;
if (typeof options.filter === "function") {
filter2 = options.filter;
obj = filter2("", obj);
} else if (isArray2(options.filter)) {
filter2 = options.filter;
objKeys = filter2;
}
var keys = [];
if (typeof obj !== "object" || obj === null) {
return "";
}
var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];
var commaRoundTrip = generateArrayPrefix === "comma" && options.commaRoundTrip;
if (!objKeys) {
objKeys = Object.keys(obj);
}
if (options.sort) {
objKeys.sort(options.sort);
}
var sideChannel = getSideChannel();
for (var i = 0; i < objKeys.length; ++i) {
var key = objKeys[i];
var value = obj[key];
if (options.skipNulls && value === null) {
continue;
}
pushToArray(keys, stringify(
value,
key,
generateArrayPrefix,
commaRoundTrip,
options.allowEmptyArrays,
options.strictNullHandling,
options.skipNulls,
options.encodeDotInKeys,
options.encode ? options.encoder : null,
options.filter,
options.sort,
options.allowDots,
options.serializeDate,
options.format,
options.formatter,
options.encodeValuesOnly,
options.charset,
sideChannel
));
}
var joined = keys.join(options.delimiter);
var prefix = options.addQueryPrefix === true ? "?" : "";
if (options.charsetSentinel) {
if (options.charset === "iso-8859-1") {
prefix += "utf8=%26%2310003%3B&";
} else {
prefix += "utf8=%E2%9C%93&";
}
}
return joined.length > 0 ? prefix + joined : "";
};
}
});
var require_parse = __commonJS2({
"node_modules/qs/lib/parse.js"(exports2, module2) {
"use strict";
var utils = require_utils2();
var has = Object.prototype.hasOwnProperty;
var isArray2 = Array.isArray;
var defaults2 = {
allowDots: false,
allowEmptyArrays: false,
allowPrototypes: false,
allowSparse: false,
arrayLimit: 20,
charset: "utf-8",
charsetSentinel: false,
comma: false,
decodeDotInKeys: false,
decoder: utils.decode,
delimiter: "&",
depth: 5,
duplicates: "combine",
ignoreQueryPrefix: false,
interpretNumericEntities: false,
parameterLimit: 1e3,
parseArrays: true,
plainObjects: false,
strictDepth: false,
strictNullHandling: false,
throwOnLimitExceeded: false
};
var interpretNumericEntities = function(str) {
return str.replace(/&#(\d+);/g, function($0, numberStr) {
return String.fromCharCode(parseInt(numberStr, 10));
});
};
var parseArrayValue = function(val, options, currentArrayLength) {
if (val && typeof val === "string" && options.comma && val.indexOf(",") > -1) {
return val.split(",");
}
if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {
throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
}
return val;
};
var isoSentinel = "utf8=%26%2310003%3B";
var charsetSentinel = "utf8=%E2%9C%93";
var parseValues = function parseQueryStringValues(str, options) {
var obj = { __proto__: null };
var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str;
cleanStr = cleanStr.replace(/%5B/gi, "[").replace(/%5D/gi, "]");
var limit = options.parameterLimit === Infinity ? void 0 : options.parameterLimit;
var parts = cleanStr.split(
options.delimiter,
options.throwOnLimitExceeded ? limit + 1 : limit
);
if (options.throwOnLimitExceeded && parts.length > limit) {
throw new RangeError("Parameter limit exceeded. Only " + limit + " parameter" + (limit === 1 ? "" : "s") + " allowed.");
}
var skipIndex = -1;
var i;
var charset = options.charset;
if (options.charsetSentinel) {
for (i = 0; i < parts.length; ++i) {
if (parts[i].indexOf("utf8=") === 0) {
if (parts[i] === charsetSentinel) {
charset = "utf-8";
} else if (parts[i] === isoSentinel) {
charset = "iso-8859-1";
}
skipIndex = i;
i = parts.length;
}
}
}
for (i = 0; i < parts.length; ++i) {
if (i === skipIndex) {
continue;
}
var part = parts[i];
var bracketEqualsPos = part.indexOf("]=");
var pos = bracketEqualsPos === -1 ? part.indexOf("=") : bracketEqualsPos + 1;
var key;
var val;
if (pos === -1) {
key = options.decoder(part, defaults2.decoder, charset, "key");
val = options.strictNullHandling ? null : "";
} else {
key = options.decoder(part.slice(0, pos), defaults2.decoder, charset, "key");
val = utils.maybeMap(
parseArrayValue(
part.slice(pos + 1),
options,
isArray2(obj[key]) ? obj[key].length : 0
),
function(encodedVal) {
return options.decoder(encodedVal, defaults2.decoder, charset, "value");
}
);
}
if (val && options.interpretNumericEntities && charset === "iso-8859-1") {
val = interpretNumericEntities(String(val));
}
if (part.indexOf("[]=") > -1) {
val = isArray2(val) ? [val] : val;
}
var existing = has.call(obj, key);
if (existing && options.duplicates === "combine") {
obj[key] = utils.combine(obj[key], val);
} else if (!existing || options.duplicates === "last") {
obj[key] = val;
}
}
return obj;
};
var parseObject = function(chain, val, options, valuesParsed) {
var currentArrayLength = 0;
if (chain.length > 0 && chain[chain.length - 1] === "[]") {
var parentKey = chain.slice(0, -1).join("");
currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;
}
var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);
for (var i = chain.length - 1; i >= 0; --i) {
var obj;
var root = chain[i];
if (root === "[]" && options.parseArrays) {
obj = options.allowEmptyArrays && (leaf === "" || options.strictNullHandling && leaf === null) ? [] : utils.combine([], leaf);
} else {
obj = options.plainObjects ? { __proto__: null } : {};
var cleanRoot = root.charAt(0) === "[" && root.charAt(root.length - 1) === "]" ? root.slice(1, -1) : root;
var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, ".") : cleanRoot;
var index = parseInt(decodedRoot, 10);
if (!options.parseArrays && decodedRoot === "") {
obj = { 0: leaf };
} else if (!isNaN(index) && root !== decodedRoot && String(index) === decodedRoot && index >= 0 && (options.parseArrays && index <= options.arrayLimit)) {
obj = [];
obj[index] = leaf;
} else if (decodedRoot !== "__proto__") {
obj[decodedRoot] = leaf;
}
}
leaf = obj;
}
return leaf;
};
var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
if (!givenKey) {
return;
}
var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, "[$1]") : givenKey;
var brackets = /(\[[^[\]]*])/;
var child = /(\[[^[\]]*])/g;
var segment = options.depth > 0 && brackets.exec(key);
var parent = segment ? key.slice(0, segment.index) : key;
var keys = [];
if (parent) {
if (!options.plainObjects && has.call(Object.prototype, parent)) {
if (!options.allowPrototypes) {
return;
}
}
keys.push(parent);
}
var i = 0;
while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {
i += 1;
if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
if (!options.allowPrototypes) {
return;
}
}
keys.push(segment[1]);
}
if (segment) {
if (options.strictDepth === true) {
throw new RangeError("Input depth exceeded depth option of " + options.depth + " and strictDepth is true");
}
keys.push("[" + key.slice(segment.index) + "]");
}
return parseObject(keys, val, options, valuesParsed);
};
var normalizeParseOptions = function normalizeParseOptions2(opts) {
if (!opts) {
return defaults2;
}
if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
}
if (typeof opts.decodeDotInKeys !== "undefined" && typeof opts.decodeDotInKeys !== "boolean") {
throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");
}
if (opts.decoder !== null && typeof opts.decoder !== "undefined" && typeof opts.decoder !== "function") {
throw new TypeError("Decoder has to be a function.");
}
if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
}
if (typeof opts.throwOnLimitExceeded !== "undefined" && typeof opts.throwOnLimitExceeded !== "boolean") {
throw new TypeError("`throwOnLimitExceeded` option must be a boolean");
}
var charset = typeof opts.charset === "undefined" ? defaults2.charset : opts.charset;
var duplicates = typeof opts.duplicates === "undefined" ? defaults2.duplicates : opts.duplicates;
if (duplicates !== "combine" && duplicates !== "first" && duplicates !== "last") {
throw new TypeError("The duplicates option must be either combine, first, or last");
}
var allowDots = typeof opts.allowDots === "undefined" ? opts.decodeDotInKeys === true ? true : defaults2.allowDots : !!opts.allowDots;
return {
allowDots,
allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults2.allowEmptyArrays,
allowPrototypes: typeof opts.allowPrototypes === "boolean" ? opts.allowPrototypes : defaults2.allowPrototypes,
allowSparse: typeof opts.allowSparse === "boolean" ? opts.allowSparse : defaults2.allowSparse,
arrayLimit: typeof opts.arrayLimit === "number" ? opts.arrayLimit : defaults2.arrayLimit,
charset,
charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults2.charsetSentinel,
comma: typeof opts.comma === "boolean" ? opts.comma : defaults2.comma,
decodeDotInKeys: typeof opts.decodeDotInKeys === "boolean" ? opts.decodeDotInKeys : defaults2.decodeDotInKeys,
decoder: typeof opts.decoder === "function" ? opts.decoder : defaults2.decoder,
delimiter: typeof opts.delimiter === "string" || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults2.delimiter,
// eslint-disable-next-line no-implicit-coercion, no-extra-parens
depth: typeof opts.depth === "number" || opts.depth === false ? +opts.depth : defaults2.depth,
duplicates,
ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
interpretNumericEntities: typeof opts.interpretNumericEntities === "boolean" ? opts.interpretNumericEntities : defaults2.interpretNumericEntities,
parameterLimit: typeof opts.parameterLimit === "number" ? opts.parameterLimit : defaults2.parameterLimit,
parseArrays: opts.parseArrays !== false,
plainObjects: typeof opts.plainObjects === "boolean" ? opts.plainObjects : defaults2.plainObjects,
strictDepth: typeof opts.strictDepth === "boolean" ? !!opts.strictDepth : defaults2.strictDepth,
strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults2.strictNullHandling,
throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === "boolean" ? opts.throwOnLimitExceeded : false
};
};
module2.exports = function(str, opts) {
var options = normalizeParseOptions(opts);
if (str === "" || str === null || typeof str === "undefined") {
return options.plainObjects ? { __proto__: null } : {};
}
var tempObj = typeof str === "string" ? parseValues(str, options) : str;
var obj = options.plainObjects ? { __proto__: null } : {};
var keys = Object.keys(tempObj);
for (var i = 0; i < keys.length; ++i) {
var key = keys[i];
var newObj = parseKeys(key, tempObj[key], options, typeof str === "string");
obj = utils.merge(obj, newObj, options);
}
if (options.allowSparse === true) {
return obj;
}
return utils.compact(obj);
};
}
});
var require_lib3 = __commonJS2({
"node_modules/qs/lib/index.js"(exports2, module2) {
"use strict";
var stringify = require_stringify();
var parse = require_parse();
var formats = require_formats2();
module2.exports = {
formats,
parse,
stringify
};
}
});
var require_urlencoded = __commonJS2({
"node_modules/body-parser/lib/types/urlencoded.js"(exports2, module2) {
"use strict";
var createError = require_http_errors();
var debug = require_src2()("body-parser:urlencoded");
var isFinished = require_on_finished().isFinished;
var read = require_read();
var typeis = require_type_is();
var qs = require_lib3();
var { getCharset, normalizeOptions } = require_utils();
module2.exports = urlencoded;
function urlencoded(options) {
var { inflate, limit, verify, shouldParse } = normalizeOptions(options, "application/x-www-form-urlencoded");
var defaultCharset = options?.defaultCharset || "utf-8";
if (defaultCharset !== "utf-8" && defaultCharset !== "iso-8859-1") {
throw new TypeError("option defaultCharset must be either utf-8 or iso-8859-1");
}
var queryparse = createQueryParser(options);
function parse(body, encoding) {
return body.length ? queryparse(body, encoding) : {};
}
return function urlencodedParser(req, res, next) {
if (isFinished(req)) {
debug("body already parsed");
next();
return;
}
if (!("body" in req)) {
req.body = void 0;
}
if (!typeis.hasBody(req)) {
debug("skip empty body");
next();
return;
}
debug("content-type %j", req.headers["content-type"]);
if (!shouldParse(req)) {
debug("skip parsing");
next();
return;
}
var charset = getCharset(req) || defaultCharset;
if (charset !== "utf-8" && charset !== "iso-8859-1") {
debug("invalid charset");
next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', {
charset,
type: "charset.unsupported"
}));
return;
}
read(req, res, next, parse, debug, {
encoding: charset,
inflate,
limit,
verify
});
};
}
function createQueryParser(options) {
var extended = Boolean(options?.extended);
var parameterLimit = options?.parameterLimit !== void 0 ? options?.parameterLimit : 1e3;
var charsetSentinel = options?.charsetSentinel;
var interpretNumericEntities = options?.interpretNumericEntities;
var depth = extended ? options?.depth !== void 0 ? options?.depth : 32 : 0;
if (isNaN(parameterLimit) || parameterLimit < 1) {
throw new TypeError("option parameterLimit must be a positive number");
}
if (isNaN(depth) || depth < 0) {
throw new TypeError("option depth must be a zero or a positive number");
}
if (isFinite(parameterLimit)) {
parameterLimit = parameterLimit | 0;
}
return function queryparse(body, encoding) {
var paramCount = parameterCount(body, parameterLimit);
if (paramCount === void 0) {
debug("too many parameters");
throw createError(413, "too many parameters", {
type: "parameters.too.many"
});
}
var arrayLimit = extended ? Math.max(100, paramCount) : 0;
debug("parse " + (extended ? "extended " : "") + "urlencoding");
try {
return qs.parse(body, {
allowPrototypes: true,
arrayLimit,
depth,
charsetSentinel,
interpretNumericEntities,
charset: encoding,
parameterLimit,
strictDepth: true
});
} catch (err2) {
if (err2 instanceof RangeError) {
throw createError(400, "The input exceeded the depth", {
type: "querystring.parse.rangeError"
});
} else {
throw err2;
}
}
};
}
function parameterCount(body, limit) {
var len = body.split("&").length;
return len > limit ? void 0 : len - 1;
}
}
});
var require_body_parser = __commonJS2({
"node_modules/body-parser/index.js"(exports2, module2) {
"use strict";
exports2 = module2.exports = bodyParser;
Object.defineProperty(exports2, "json", {
configurable: true,
enumerable: true,
get: () => require_json()
});
Object.defineProperty(exports2, "raw", {
configurable: true,
enumerable: true,
get: () => require_raw()
});
Object.defineProperty(exports2, "text", {
configurable: true,
enumerable: true,
get: () => require_text()
});
Object.defineProperty(exports2, "urlencoded", {
configurable: true,
enumerable: true,
get: () => require_urlencoded()
});
function bodyParser() {
throw new Error("The bodyParser() generic has been split into individual middleware to use instead.");
}
}
});
var require_merge_descriptors = __commonJS2({
"node_modules/merge-descriptors/index.js"(exports2, module2) {
"use strict";
function mergeDescriptors(destination, source, overwrite = true) {
if (!destination) {
throw new TypeError("The `destination` argument is required.");
}
if (!source) {
throw new TypeError("The `source` argument is required.");
}
for (const name of Object.getOwnPropertyNames(source)) {
if (!overwrite && Object.hasOwn(destination, name)) {
continue;
}
const descriptor = Object.getOwnPropertyDescriptor(source, name);
Object.defineProperty(destination, name, descriptor);
}
return destination;
}
module2.exports = mergeDescriptors;
}
});
var require_encodeurl = __commonJS2({
"node_modules/encodeurl/index.js"(exports2, module2) {
"use strict";
module2.exports = encodeUrl;
var ENCODE_CHARS_REGEXP = /(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g;
var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g;
var UNMATCHED_SURROGATE_PAIR_REPLACE = "$1\uFFFD$2";
function encodeUrl(url2) {
return String(url2).replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE).replace(ENCODE_CHARS_REGEXP, encodeURI);
}
}
});
var require_escape_html = __commonJS2({
"node_modules/escape-html/index.js"(exports2, module2) {
"use strict";
var matchHtmlRegExp = /["'&<>]/;
module2.exports = escapeHtml;
function escapeHtml(string) {
var str = "" + string;
var match = matchHtmlRegExp.exec(str);
if (!match) {
return str;
}
var escape2;
var html = "";
var index = 0;
var lastIndex = 0;
for (index = match.index; index < str.length; index++) {
switch (str.charCodeAt(index)) {
case 34:
escape2 = """;
break;
case 38:
escape2 = "&";
break;
case 39:
escape2 = "'";
break;
case 60:
escape2 = "<";
break;
case 62:
escape2 = ">";
break;
default:
continue;
}
if (lastIndex !== index) {
html += str.substring(lastIndex, index);
}
lastIndex = index + 1;
html += escape2;
}
return lastIndex !== index ? html + str.substring(lastIndex, index) : html;
}
}
});
var require_parseurl = __commonJS2({
"node_modules/parseurl/index.js"(exports2, module2) {
"use strict";
var url2 = require("url");
var parse = url2.parse;
var Url = url2.Url;
module2.exports = parseurl;
module2.exports.original = originalurl;
function parseurl(req) {
var url22 = req.url;
if (url22 === void 0) {
return void 0;
}
var parsed = req._parsedUrl;
if (fresh(url22, parsed)) {
return parsed;
}
parsed = fastparse(url22);
parsed._raw = url22;
return req._parsedUrl = parsed;
}
function originalurl(req) {
var url22 = req.originalUrl;
if (typeof url22 !== "string") {
return parseurl(req);
}
var parsed = req._parsedOriginalUrl;
if (fresh(url22, parsed)) {
return parsed;
}
parsed = fastparse(url22);
parsed._raw = url22;
return req._parsedOriginalUrl = parsed;
}
function fastparse(str) {
if (typeof str !== "string" || str.charCodeAt(0) !== 47) {
return parse(str);
}
var pathname = str;
var query = null;
var search = null;
for (var i = 1; i < str.length; i++) {
switch (str.charCodeAt(i)) {
case 63:
if (search === null) {
pathname = str.substring(0, i);
query = str.substring(i + 1);
search = str.substring(i);
}
break;
case 9:
/* \t */
case 10:
/* \n */
case 12:
/* \f */
case 13:
/* \r */
case 32:
/* */
case 35:
/* # */
case 160:
case 65279:
return parse(str);
}
}
var url22 = Url !== void 0 ? new Url() : {};
url22.path = str;
url22.href = str;
url22.pathname = pathname;
if (search !== null) {
url22.query = query;
url22.search = search;
}
return url22;
}
function fresh(url22, parsedUrl) {
return typeof parsedUrl === "object" && parsedUrl !== null && (Url === void 0 || parsedUrl instanceof Url) && parsedUrl._raw === url22;
}
}
});
var require_finalhandler = __commonJS2({
"node_modules/finalhandler/index.js"(exports2, module2) {
"use strict";
var debug = require_src2()("finalhandler");
var encodeUrl = require_encodeurl();
var escapeHtml = require_escape_html();
var onFinished = require_on_finished();
var parseUrl = require_parseurl();
var statuses = require_statuses();
var isFinished = onFinished.isFinished;
function createHtmlDocument(message) {
var body = escapeHtml(message).replaceAll("\n", "<br>").replaceAll(" ", " ");
return '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>Error</title>\n</head>\n<body>\n<pre>' + body + "</pre>\n</body>\n</html>\n";
}
module2.exports = finalhandler;
function finalhandler(req, res, options) {
var opts = options || {};
var env = opts.env || "development";
var onerror = opts.onerror;
return function(err2) {
var headers;
var msg;
var status;
if (!err2 && res.headersSent) {
debug("cannot 404 after headers sent");
return;
}
if (err2) {
status = getErrorStatusCode(err2);
if (status === void 0) {
status = getResponseStatusCode(res);
} else {
headers = getErrorHeaders(err2);
}
msg = getErrorMessage(err2, status, env);
} else {
status = 404;
msg = "Cannot " + req.method + " " + encodeUrl(getResourceName(req));
}
debug("default %s", status);
if (err2 && onerror) {
setImmediate(onerror, err2, req, res);
}
if (res.headersSent) {
debug("cannot %d after headers sent", status);
if (req.socket) {
req.socket.destroy();
}
return;
}
send(req, res, status, headers, msg);
};
}
function getErrorHeaders(err2) {
if (!err2.headers || typeof err2.headers !== "object") {
return void 0;
}
return { ...err2.headers };
}
function getErrorMessage(err2, status, env) {
var msg;
if (env !== "production") {
msg = err2.stack;
if (!msg && typeof err2.toString === "function") {
msg = err2.toString();
}
}
return msg || statuses.message[status];
}
function getErrorStatusCode(err2) {
if (typeof err2.status === "number" && err2.status >= 400 && err2.status < 600) {
return err2.status;
}
if (typeof err2.statusCode === "number" && err2.statusCode >= 400 && err2.statusCode < 600) {
return err2.statusCode;
}
return void 0;
}
function getResourceName(req) {
try {
return parseUrl.original(req).pathname;
} catch (e) {
return "resource";
}
}
function getResponseStatusCode(res) {
var status = res.statusCode;
if (typeof status !== "number" || status < 400 || status > 599) {
status = 500;
}
return status;
}
function send(req, res, status, headers, message) {
function write() {
var body = createHtmlDocument(message);
res.statusCode = status;
if (req.httpVersionMajor < 2) {
res.statusMessage = statuses.message[status];
}
res.removeHeader("Content-Encoding");
res.removeHeader("Content-Language");
res.removeHeader("Content-Range");
for (const [key, value] of Object.entries(headers ?? {})) {
res.setHeader(key, value);
}
res.setHeader("Content-Security-Policy", "default-src 'none'");
res.setHeader("X-Content-Type-Options", "nosniff");
res.setHeader("Content-Type", "text/html; charset=utf-8");
res.setHeader("Content-Length", Buffer.byteLength(body, "utf8"));
if (req.method === "HEAD") {
res.end();
return;
}
res.end(body, "utf8");
}
if (isFinished(req)) {
write();
return;
}
req.unpipe();
onFinished(req, write);
req.resume();
}
}
});
var require_view = __commonJS2({
"node_modules/express/lib/view.js"(exports2, module2) {
"use strict";
var debug = require_src2()("express:view");
var path = require("node:path");
var fs = require("node:fs");
var dirname = path.dirname;
var basename = path.basename;
var extname = path.extname;
var join = path.join;
var resolve = path.resolve;
module2.exports = View;
function View(name, options) {
var opts = options || {};
this.defaultEngine = opts.defaultEngine;
this.ext = extname(name);
this.name = name;
this.root = opts.root;
if (!this.ext && !this.defaultEngine) {
throw new Error("No default engine was specified and no extension was provided.");
}
var fileName = name;
if (!this.ext) {
this.ext = this.defaultEngine[0] !== "." ? "." + this.defaultEngine : this.defaultEngine;
fileName += this.ext;
}
if (!opts.engines[this.ext]) {
var mod = this.ext.slice(1);
debug('require "%s"', mod);
var fn = require(mod).__express;
if (typeof fn !== "function") {
throw new Error('Module "' + mod + '" does not provide a view engine.');
}
opts.engines[this.ext] = fn;
}
this.engine = opts.engines[this.ext];
this.path = this.lookup(fileName);
}
View.prototype.lookup = function lookup(name) {
var path2;
var roots = [].concat(this.root);
debug('lookup "%s"', name);
for (var i = 0; i < roots.length && !path2; i++) {
var root = roots[i];
var loc = resolve(root, name);
var dir = dirname(loc);
var file = basename(loc);
path2 = this.resolve(dir, file);
}
return path2;
};
View.prototype.render = function render(options, callback) {
var sync = true;
debug('render "%s"', this.path);
this.engine(this.path, options, function onRender() {
if (!sync) {
return callback.apply(this, arguments);
}
var args = new Array(arguments.length);
var cntx = this;
for (var i = 0; i < arguments.length; i++) {
args[i] = arguments[i];
}
return process.nextTick(function renderTick() {
return callback.apply(cntx, args);
});
});
sync = false;
};
View.prototype.resolve = function resolve2(dir, file) {
var ext = this.ext;
var path2 = join(dir, file);
var stat = tryStat(path2);
if (stat && stat.isFile()) {
return path2;
}
path2 = join(dir, basename(file, ext), "index" + ext);
stat = tryStat(path2);
if (stat && stat.isFile()) {
return path2;
}
};
function tryStat(path2) {
debug('stat "%s"', path2);
try {
return fs.statSync(path2);
} catch (e) {
return void 0;
}
}
}
});
var require_etag = __commonJS2({
"node_modules/etag/index.js"(exports2, module2) {
"use strict";
module2.exports = etag;
var crypto2 = require("crypto");
var Stats = require("fs").Stats;
var toString3 = Object.prototype.toString;
function entitytag(entity) {
if (entity.length === 0) {
return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';
}
var hash = crypto2.createHash("sha1").update(entity, "utf8").digest("base64").substring(0, 27);
var len = typeof entity === "string" ? Buffer.byteLength(entity, "utf8") : entity.length;
return '"' + len.toString(16) + "-" + hash + '"';
}
function etag(entity, options) {
if (entity == null) {
throw new TypeError("argument entity is required");
}
var isStats = isstats(entity);
var weak = options && typeof options.weak === "boolean" ? options.weak : isStats;
if (!isStats && typeof entity !== "string" && !Buffer.isBuffer(entity)) {
throw new TypeError("argument entity must be string, Buffer, or fs.Stats");
}
var tag = isStats ? stattag(entity) : entitytag(entity);
return weak ? "W/" + tag : tag;
}
function isstats(obj) {
if (typeof Stats === "function" && obj instanceof Stats) {
return true;
}
return obj && typeof obj === "object" && "ctime" in obj && toString3.call(obj.ctime) === "[object Date]" && "mtime" in obj && toString3.call(obj.mtime) === "[object Date]" && "ino" in obj && typeof obj.ino === "number" && "size" in obj && typeof obj.size === "number";
}
function stattag(stat) {
var mtime = stat.mtime.getTime().toString(16);
var size = stat.size.toString(16);
return '"' + size + "-" + mtime + '"';
}
}
});
var require_db22 = __commonJS2({
"node_modules/express/node_modules/mime-db/db.json"(exports2, module2) {
module2.exports = {
"application/1d-interleaved-parityfec": {
source: "iana"
},
"application/3gpdash-qoe-report+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/3gpp-ims+xml": {
source: "iana",
compressible: true
},
"application/3gpphal+json": {
source: "iana",
compressible: true
},
"application/3gpphalforms+json": {
source: "iana",
compressible: true
},
"application/a2l": {
source: "iana"
},
"application/ace+cbor": {
source: "iana"
},
"application/ace+json": {
source: "iana",
compressible: true
},
"application/ace-groupcomm+cbor": {
source: "iana"
},
"application/ace-trl+cbor": {
source: "iana"
},
"application/activemessage": {
source: "iana"
},
"application/activity+json": {
source: "iana",
compressible: true
},
"application/aif+cbor": {
source: "iana"
},
"application/aif+json": {
source: "iana",
compressible: true
},
"application/alto-cdni+json": {
source: "iana",
compressible: true
},
"application/alto-cdnifilter+json": {
source: "iana",
compressible: true
},
"application/alto-costmap+json": {
source: "iana",
compressible: true
},
"application/alto-costmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-directory+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcost+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcostparams+json": {
source: "iana",
compressible: true
},
"application/alto-endpointprop+json": {
source: "iana",
compressible: true
},
"application/alto-endpointpropparams+json": {
source: "iana",
compressible: true
},
"application/alto-error+json": {
source: "iana",
compressible: true
},
"application/alto-networkmap+json": {
source: "iana",
compressible: true
},
"application/alto-networkmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-propmap+json": {
source: "iana",
compressible: true
},
"application/alto-propmapparams+json": {
source: "iana",
compressible: true
},
"application/alto-tips+json": {
source: "iana",
compressible: true
},
"application/alto-tipsparams+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamcontrol+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamparams+json": {
source: "iana",
compressible: true
},
"application/aml": {
source: "iana"
},
"application/andrew-inset": {
source: "iana",
extensions: ["ez"]
},
"application/appinstaller": {
compressible: false,
extensions: ["appinstaller"]
},
"application/applefile": {
source: "iana"
},
"application/applixware": {
source: "apache",
extensions: ["aw"]
},
"application/appx": {
compressible: false,
extensions: ["appx"]
},
"application/appxbundle": {
compressible: false,
extensions: ["appxbundle"]
},
"application/at+jwt": {
source: "iana"
},
"application/atf": {
source: "iana"
},
"application/atfx": {
source: "iana"
},
"application/atom+xml": {
source: "iana",
compressible: true,
extensions: ["atom"]
},
"application/atomcat+xml": {
source: "iana",
compressible: true,
extensions: ["atomcat"]
},
"application/atomdeleted+xml": {
source: "iana",
compressible: true,
extensions: ["atomdeleted"]
},
"application/atomicmail": {
source: "iana"
},
"application/atomsvc+xml": {
source: "iana",
compressible: true,
extensions: ["atomsvc"]
},
"application/atsc-dwd+xml": {
source: "iana",
compressible: true,
extensions: ["dwd"]
},
"application/atsc-dynamic-event-message": {
source: "iana"
},
"application/atsc-held+xml": {
source: "iana",
compressible: true,
extensions: ["held"]
},
"application/atsc-rdt+json": {
source: "iana",
compressible: true
},
"application/atsc-rsat+xml": {
source: "iana",
compressible: true,
extensions: ["rsat"]
},
"application/atxml": {
source: "iana"
},
"application/auth-policy+xml": {
source: "iana",
compressible: true
},
"application/automationml-aml+xml": {
source: "iana",
compressible: true,
extensions: ["aml"]
},
"application/automationml-amlx+zip": {
source: "iana",
compressible: false,
extensions: ["amlx"]
},
"application/bacnet-xdd+zip": {
source: "iana",
compressible: false
},
"application/batch-smtp": {
source: "iana"
},
"application/bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/beep+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/bufr": {
source: "iana"
},
"application/c2pa": {
source: "iana"
},
"application/calendar+json": {
source: "iana",
compressible: true
},
"application/calendar+xml": {
source: "iana",
compressible: true,
extensions: ["xcs"]
},
"application/call-completion": {
source: "iana"
},
"application/cals-1840": {
source: "iana"
},
"application/captive+json": {
source: "iana",
compressible: true
},
"application/cbor": {
source: "iana"
},
"application/cbor-seq": {
source: "iana"
},
"application/cccex": {
source: "iana"
},
"application/ccmp+xml": {
source: "iana",
compressible: true
},
"application/ccxml+xml": {
source: "iana",
compressible: true,
extensions: ["ccxml"]
},
"application/cda+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/cdfx+xml": {
source: "iana",
compressible: true,
extensions: ["cdfx"]
},
"application/cdmi-capability": {
source: "iana",
extensions: ["cdmia"]
},
"application/cdmi-container": {
source: "iana",
extensions: ["cdmic"]
},
"application/cdmi-domain": {
source: "iana",
extensions: ["cdmid"]
},
"application/cdmi-object": {
source: "iana",
extensions: ["cdmio"]
},
"application/cdmi-queue": {
source: "iana",
extensions: ["cdmiq"]
},
"application/cdni": {
source: "iana"
},
"application/ce+cbor": {
source: "iana"
},
"application/cea": {
source: "iana"
},
"application/cea-2018+xml": {
source: "iana",
compressible: true
},
"application/cellml+xml": {
source: "iana",
compressible: true
},
"application/cfw": {
source: "iana"
},
"application/cid-edhoc+cbor-seq": {
source: "iana"
},
"application/city+json": {
source: "iana",
compressible: true
},
"application/city+json-seq": {
source: "iana"
},
"application/clr": {
source: "iana"
},
"application/clue+xml": {
source: "iana",
compressible: true
},
"application/clue_info+xml": {
source: "iana",
compressible: true
},
"application/cms": {
source: "iana"
},
"application/cnrp+xml": {
source: "iana",
compressible: true
},
"application/coap-eap": {
source: "iana"
},
"application/coap-group+json": {
source: "iana",
compressible: true
},
"application/coap-payload": {
source: "iana"
},
"application/commonground": {
source: "iana"
},
"application/concise-problem-details+cbor": {
source: "iana"
},
"application/conference-info+xml": {
source: "iana",
compressible: true
},
"application/cose": {
source: "iana"
},
"application/cose-key": {
source: "iana"
},
"application/cose-key-set": {
source: "iana"
},
"application/cose-x509": {
source: "iana"
},
"application/cpl+xml": {
source: "iana",
compressible: true,
extensions: ["cpl"]
},
"application/csrattrs": {
source: "iana"
},
"application/csta+xml": {
source: "iana",
compressible: true
},
"application/cstadata+xml": {
source: "iana",
compressible: true
},
"application/csvm+json": {
source: "iana",
compressible: true
},
"application/cu-seeme": {
source: "apache",
extensions: ["cu"]
},
"application/cwl": {
source: "iana",
extensions: ["cwl"]
},
"application/cwl+json": {
source: "iana",
compressible: true
},
"application/cwl+yaml": {
source: "iana"
},
"application/cwt": {
source: "iana"
},
"application/cybercash": {
source: "iana"
},
"application/dart": {
compressible: true
},
"application/dash+xml": {
source: "iana",
compressible: true,
extensions: ["mpd"]
},
"application/dash-patch+xml": {
source: "iana",
compressible: true,
extensions: ["mpp"]
},
"application/dashdelta": {
source: "iana"
},
"application/davmount+xml": {
source: "iana",
compressible: true,
extensions: ["davmount"]
},
"application/dca-rft": {
source: "iana"
},
"application/dcd": {
source: "iana"
},
"application/dec-dx": {
source: "iana"
},
"application/dialog-info+xml": {
source: "iana",
compressible: true
},
"application/dicom": {
source: "iana",
extensions: ["dcm"]
},
"application/dicom+json": {
source: "iana",
compressible: true
},
"application/dicom+xml": {
source: "iana",
compressible: true
},
"application/dii": {
source: "iana"
},
"application/dit": {
source: "iana"
},
"application/dns": {
source: "iana"
},
"application/dns+json": {
source: "iana",
compressible: true
},
"application/dns-message": {
source: "iana"
},
"application/docbook+xml": {
source: "apache",
compressible: true,
extensions: ["dbk"]
},
"application/dots+cbor": {
source: "iana"
},
"application/dpop+jwt": {
source: "iana"
},
"application/dskpp+xml": {
source: "iana",
compressible: true
},
"application/dssc+der": {
source: "iana",
extensions: ["dssc"]
},
"application/dssc+xml": {
source: "iana",
compressible: true,
extensions: ["xdssc"]
},
"application/dvcs": {
source: "iana"
},
"application/eat+cwt": {
source: "iana"
},
"application/eat+jwt": {
source: "iana"
},
"application/eat-bun+cbor": {
source: "iana"
},
"application/eat-bun+json": {
source: "iana",
compressible: true
},
"application/eat-ucs+cbor": {
source: "iana"
},
"application/eat-ucs+json": {
source: "iana",
compressible: true
},
"application/ecmascript": {
source: "apache",
compressible: true,
extensions: ["ecma"]
},
"application/edhoc+cbor-seq": {
source: "iana"
},
"application/edi-consent": {
source: "iana"
},
"application/edi-x12": {
source: "iana",
compressible: false
},
"application/edifact": {
source: "iana",
compressible: false
},
"application/efi": {
source: "iana"
},
"application/elm+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/elm+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.cap+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/emergencycalldata.comment+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.control+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.deviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.ecall.msd": {
source: "iana"
},
"application/emergencycalldata.legacyesn+json": {
source: "iana",
compressible: true
},
"application/emergencycalldata.providerinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.serviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.subscriberinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.veds+xml": {
source: "iana",
compressible: true
},
"application/emma+xml": {
source: "iana",
compressible: true,
extensions: ["emma"]
},
"application/emotionml+xml": {
source: "iana",
compressible: true,
extensions: ["emotionml"]
},
"application/encaprtp": {
source: "iana"
},
"application/entity-statement+jwt": {
source: "iana"
},
"application/epp+xml": {
source: "iana",
compressible: true
},
"application/epub+zip": {
source: "iana",
compressible: false,
extensions: ["epub"]
},
"application/eshop": {
source: "iana"
},
"application/exi": {
source: "iana",
extensions: ["exi"]
},
"application/expect-ct-report+json": {
source: "iana",
compressible: true
},
"application/express": {
source: "iana",
extensions: ["exp"]
},
"application/fastinfoset": {
source: "iana"
},
"application/fastsoap": {
source: "iana"
},
"application/fdf": {
source: "iana",
extensions: ["fdf"]
},
"application/fdt+xml": {
source: "iana",
compressible: true,
extensions: ["fdt"]
},
"application/fhir+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fhir+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fido.trusted-apps+json": {
compressible: true
},
"application/fits": {
source: "iana"
},
"application/flexfec": {
source: "iana"
},
"application/font-sfnt": {
source: "iana"
},
"application/font-tdpfr": {
source: "iana",
extensions: ["pfr"]
},
"application/font-woff": {
source: "iana",
compressible: false
},
"application/framework-attributes+xml": {
source: "iana",
compressible: true
},
"application/geo+json": {
source: "iana",
compressible: true,
extensions: ["geojson"]
},
"application/geo+json-seq": {
source: "iana"
},
"application/geopackage+sqlite3": {
source: "iana"
},
"application/geopose+json": {
source: "iana",
compressible: true
},
"application/geoxacml+json": {
source: "iana",
compressible: true
},
"application/geoxacml+xml": {
source: "iana",
compressible: true
},
"application/gltf-buffer": {
source: "iana"
},
"application/gml+xml": {
source: "iana",
compressible: true,
extensions: ["gml"]
},
"application/gnap-binding-jws": {
source: "iana"
},
"application/gnap-binding-jwsd": {
source: "iana"
},
"application/gnap-binding-rotation-jws": {
source: "iana"
},
"application/gnap-binding-rotation-jwsd": {
source: "iana"
},
"application/gpx+xml": {
source: "apache",
compressible: true,
extensions: ["gpx"]
},
"application/grib": {
source: "iana"
},
"application/gxf": {
source: "apache",
extensions: ["gxf"]
},
"application/gzip": {
source: "iana",
compressible: false,
extensions: ["gz"]
},
"application/h224": {
source: "iana"
},
"application/held+xml": {
source: "iana",
compressible: true
},
"application/hjson": {
extensions: ["hjson"]
},
"application/hl7v2+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/http": {
source: "iana"
},
"application/hyperstudio": {
source: "iana",
extensions: ["stk"]
},
"application/ibe-key-request+xml": {
source: "iana",
compressible: true
},
"application/ibe-pkg-reply+xml": {
source: "iana",
compressible: true
},
"application/ibe-pp-data": {
source: "iana"
},
"application/iges": {
source: "iana"
},
"application/im-iscomposing+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/index": {
source: "iana"
},
"application/index.cmd": {
source: "iana"
},
"application/index.obj": {
source: "iana"
},
"application/index.response": {
source: "iana"
},
"application/index.vnd": {
source: "iana"
},
"application/inkml+xml": {
source: "iana",
compressible: true,
extensions: ["ink", "inkml"]
},
"application/iotp": {
source: "iana"
},
"application/ipfix": {
source: "iana",
extensions: ["ipfix"]
},
"application/ipp": {
source: "iana"
},
"application/isup": {
source: "iana"
},
"application/its+xml": {
source: "iana",
compressible: true,
extensions: ["its"]
},
"application/java-archive": {
source: "iana",
compressible: false,
extensions: ["jar", "war", "ear"]
},
"application/java-serialized-object": {
source: "apache",
compressible: false,
extensions: ["ser"]
},
"application/java-vm": {
source: "apache",
compressible: false,
extensions: ["class"]
},
"application/javascript": {
source: "apache",
charset: "UTF-8",
compressible: true,
extensions: ["js"]
},
"application/jf2feed+json": {
source: "iana",
compressible: true
},
"application/jose": {
source: "iana"
},
"application/jose+json": {
source: "iana",
compressible: true
},
"application/jrd+json": {
source: "iana",
compressible: true
},
"application/jscalendar+json": {
source: "iana",
compressible: true
},
"application/jscontact+json": {
source: "iana",
compressible: true
},
"application/json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["json", "map"]
},
"application/json-patch+json": {
source: "iana",
compressible: true
},
"application/json-seq": {
source: "iana"
},
"application/json5": {
extensions: ["json5"]
},
"application/jsonml+json": {
source: "apache",
compressible: true,
extensions: ["jsonml"]
},
"application/jsonpath": {
source: "iana"
},
"application/jwk+json": {
source: "iana",
compressible: true
},
"application/jwk-set+json": {
source: "iana",
compressible: true
},
"application/jwk-set+jwt": {
source: "iana"
},
"application/jwt": {
source: "iana"
},
"application/kpml-request+xml": {
source: "iana",
compressible: true
},
"application/kpml-response+xml": {
source: "iana",
compressible: true
},
"application/ld+json": {
source: "iana",
compressible: true,
extensions: ["jsonld"]
},
"application/lgr+xml": {
source: "iana",
compressible: true,
extensions: ["lgr"]
},
"application/link-format": {
source: "iana"
},
"application/linkset": {
source: "iana"
},
"application/linkset+json": {
source: "iana",
compressible: true
},
"application/load-control+xml": {
source: "iana",
compressible: true
},
"application/logout+jwt": {
source: "iana"
},
"application/lost+xml": {
source: "iana",
compressible: true,
extensions: ["lostxml"]
},
"application/lostsync+xml": {
source: "iana",
compressible: true
},
"application/lpf+zip": {
source: "iana",
compressible: false
},
"application/lxf": {
source: "iana"
},
"application/mac-binhex40": {
source: "iana",
extensions: ["hqx"]
},
"application/mac-compactpro": {
source: "apache",
extensions: ["cpt"]
},
"application/macwriteii": {
source: "iana"
},
"application/mads+xml": {
source: "iana",
compressible: true,
extensions: ["mads"]
},
"application/manifest+json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["webmanifest"]
},
"application/marc": {
source: "iana",
extensions: ["mrc"]
},
"application/marcxml+xml": {
source: "iana",
compressible: true,
extensions: ["mrcx"]
},
"application/mathematica": {
source: "iana",
extensions: ["ma", "nb", "mb"]
},
"application/mathml+xml": {
source: "iana",
compressible: true,
extensions: ["mathml"]
},
"application/mathml-content+xml": {
source: "iana",
compressible: true
},
"application/mathml-presentation+xml": {
source: "iana",
compressible: true
},
"application/mbms-associated-procedure-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-deregister+xml": {
source: "iana",
compressible: true
},
"application/mbms-envelope+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-protection-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-reception-report+xml": {
source: "iana",
compressible: true
},
"application/mbms-register+xml": {
source: "iana",
compressible: true
},
"application/mbms-register-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-schedule+xml": {
source: "iana",
compressible: true
},
"application/mbms-user-service-description+xml": {
source: "iana",
compressible: true
},
"application/mbox": {
source: "iana",
extensions: ["mbox"]
},
"application/media-policy-dataset+xml": {
source: "iana",
compressible: true,
extensions: ["mpf"]
},
"application/media_control+xml": {
source: "iana",
compressible: true
},
"application/mediaservercontrol+xml": {
source: "iana",
compressible: true,
extensions: ["mscml"]
},
"application/merge-patch+json": {
source: "iana",
compressible: true
},
"application/metalink+xml": {
source: "apache",
compressible: true,
extensions: ["metalink"]
},
"application/metalink4+xml": {
source: "iana",
compressible: true,
extensions: ["meta4"]
},
"application/mets+xml": {
source: "iana",
compressible: true,
extensions: ["mets"]
},
"application/mf4": {
source: "iana"
},
"application/mikey": {
source: "iana"
},
"application/mipc": {
source: "iana"
},
"application/missing-blocks+cbor-seq": {
source: "iana"
},
"application/mmt-aei+xml": {
source: "iana",
compressible: true,
extensions: ["maei"]
},
"application/mmt-usd+xml": {
source: "iana",
compressible: true,
extensions: ["musd"]
},
"application/mods+xml": {
source: "iana",
compressible: true,
extensions: ["mods"]
},
"application/moss-keys": {
source: "iana"
},
"application/moss-signature": {
source: "iana"
},
"application/mosskey-data": {
source: "iana"
},
"application/mosskey-request": {
source: "iana"
},
"application/mp21": {
source: "iana",
extensions: ["m21", "mp21"]
},
"application/mp4": {
source: "iana",
extensions: ["mp4", "mpg4", "mp4s", "m4p"]
},
"application/mpeg4-generic": {
source: "iana"
},
"application/mpeg4-iod": {
source: "iana"
},
"application/mpeg4-iod-xmt": {
source: "iana"
},
"application/mrb-consumer+xml": {
source: "iana",
compressible: true
},
"application/mrb-publish+xml": {
source: "iana",
compressible: true
},
"application/msc-ivr+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msc-mixer+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msix": {
compressible: false,
extensions: ["msix"]
},
"application/msixbundle": {
compressible: false,
extensions: ["msixbundle"]
},
"application/msword": {
source: "iana",
compressible: false,
extensions: ["doc", "dot"]
},
"application/mud+json": {
source: "iana",
compressible: true
},
"application/multipart-core": {
source: "iana"
},
"application/mxf": {
source: "iana",
extensions: ["mxf"]
},
"application/n-quads": {
source: "iana",
extensions: ["nq"]
},
"application/n-triples": {
source: "iana",
extensions: ["nt"]
},
"application/nasdata": {
source: "iana"
},
"application/news-checkgroups": {
source: "iana",
charset: "US-ASCII"
},
"application/news-groupinfo": {
source: "iana",
charset: "US-ASCII"
},
"application/news-transmission": {
source: "iana"
},
"application/nlsml+xml": {
source: "iana",
compressible: true
},
"application/node": {
source: "iana",
extensions: ["cjs"]
},
"application/nss": {
source: "iana"
},
"application/oauth-authz-req+jwt": {
source: "iana"
},
"application/oblivious-dns-message": {
source: "iana"
},
"application/ocsp-request": {
source: "iana"
},
"application/ocsp-response": {
source: "iana"
},
"application/octet-stream": {
source: "iana",
compressible: true,
extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"]
},
"application/oda": {
source: "iana",
extensions: ["oda"]
},
"application/odm+xml": {
source: "iana",
compressible: true
},
"application/odx": {
source: "iana"
},
"application/oebps-package+xml": {
source: "iana",
compressible: true,
extensions: ["opf"]
},
"application/ogg": {
source: "iana",
compressible: false,
extensions: ["ogx"]
},
"application/ohttp-keys": {
source: "iana"
},
"application/omdoc+xml": {
source: "apache",
compressible: true,
extensions: ["omdoc"]
},
"application/onenote": {
source: "apache",
extensions: ["onetoc", "onetoc2", "onetmp", "onepkg", "one", "onea"]
},
"application/opc-nodeset+xml": {
source: "iana",
compressible: true
},
"application/oscore": {
source: "iana"
},
"application/oxps": {
source: "iana",
extensions: ["oxps"]
},
"application/p21": {
source: "iana"
},
"application/p21+zip": {
source: "iana",
compressible: false
},
"application/p2p-overlay+xml": {
source: "iana",
compressible: true,
extensions: ["relo"]
},
"application/parityfec": {
source: "iana"
},
"application/passport": {
source: "iana"
},
"application/patch-ops-error+xml": {
source: "iana",
compressible: true,
extensions: ["xer"]
},
"application/pdf": {
source: "iana",
compressible: false,
extensions: ["pdf"]
},
"application/pdx": {
source: "iana"
},
"application/pem-certificate-chain": {
source: "iana"
},
"application/pgp-encrypted": {
source: "iana",
compressible: false,
extensions: ["pgp"]
},
"application/pgp-keys": {
source: "iana",
extensions: ["asc"]
},
"application/pgp-signature": {
source: "iana",
extensions: ["sig", "asc"]
},
"application/pics-rules": {
source: "apache",
extensions: ["prf"]
},
"application/pidf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pidf-diff+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pkcs10": {
source: "iana",
extensions: ["p10"]
},
"application/pkcs12": {
source: "iana"
},
"application/pkcs7-mime": {
source: "iana",
extensions: ["p7m", "p7c"]
},
"application/pkcs7-signature": {
source: "iana",
extensions: ["p7s"]
},
"application/pkcs8": {
source: "iana",
extensions: ["p8"]
},
"application/pkcs8-encrypted": {
source: "iana"
},
"application/pkix-attr-cert": {
source: "iana",
extensions: ["ac"]
},
"application/pkix-cert": {
source: "iana",
extensions: ["cer"]
},
"application/pkix-crl": {
source: "iana",
extensions: ["crl"]
},
"application/pkix-pkipath": {
source: "iana",
extensions: ["pkipath"]
},
"application/pkixcmp": {
source: "iana",
extensions: ["pki"]
},
"application/pls+xml": {
source: "iana",
compressible: true,
extensions: ["pls"]
},
"application/poc-settings+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/postscript": {
source: "iana",
compressible: true,
extensions: ["ai", "eps", "ps"]
},
"application/ppsp-tracker+json": {
source: "iana",
compressible: true
},
"application/private-token-issuer-directory": {
source: "iana"
},
"application/private-token-request": {
source: "iana"
},
"application/private-token-response": {
source: "iana"
},
"application/problem+json": {
source: "iana",
compressible: true
},
"application/problem+xml": {
source: "iana",
compressible: true
},
"application/provenance+xml": {
source: "iana",
compressible: true,
extensions: ["provx"]
},
"application/provided-claims+jwt": {
source: "iana"
},
"application/prs.alvestrand.titrax-sheet": {
source: "iana"
},
"application/prs.cww": {
source: "iana",
extensions: ["cww"]
},
"application/prs.cyn": {
source: "iana",
charset: "7-BIT"
},
"application/prs.hpub+zip": {
source: "iana",
compressible: false
},
"application/prs.implied-document+xml": {
source: "iana",
compressible: true
},
"application/prs.implied-executable": {
source: "iana"
},
"application/prs.implied-object+json": {
source: "iana",
compressible: true
},
"application/prs.implied-object+json-seq": {
source: "iana"
},
"application/prs.implied-object+yaml": {
source: "iana"
},
"application/prs.implied-structure": {
source: "iana"
},
"application/prs.mayfile": {
source: "iana"
},
"application/prs.nprend": {
source: "iana"
},
"application/prs.plucker": {
source: "iana"
},
"application/prs.rdf-xml-crypt": {
source: "iana"
},
"application/prs.vcfbzip2": {
source: "iana"
},
"application/prs.xsf+xml": {
source: "iana",
compressible: true,
extensions: ["xsf"]
},
"application/pskc+xml": {
source: "iana",
compressible: true,
extensions: ["pskcxml"]
},
"application/pvd+json": {
source: "iana",
compressible: true
},
"application/qsig": {
source: "iana"
},
"application/raml+yaml": {
compressible: true,
extensions: ["raml"]
},
"application/raptorfec": {
source: "iana"
},
"application/rdap+json": {
source: "iana",
compressible: true
},
"application/rdf+xml": {
source: "iana",
compressible: true,
extensions: ["rdf", "owl"]
},
"application/reginfo+xml": {
source: "iana",
compressible: true,
extensions: ["rif"]
},
"application/relax-ng-compact-syntax": {
source: "iana",
extensions: ["rnc"]
},
"application/remote-printing": {
source: "apache"
},
"application/reputon+json": {
source: "iana",
compressible: true
},
"application/resolve-response+jwt": {
source: "iana"
},
"application/resource-lists+xml": {
source: "iana",
compressible: true,
extensions: ["rl"]
},
"application/resource-lists-diff+xml": {
source: "iana",
compressible: true,
extensions: ["rld"]
},
"application/rfc+xml": {
source: "iana",
compressible: true
},
"application/riscos": {
source: "iana"
},
"application/rlmi+xml": {
source: "iana",
compressible: true
},
"application/rls-services+xml": {
source: "iana",
compressible: true,
extensions: ["rs"]
},
"application/route-apd+xml": {
source: "iana",
compressible: true,
extensions: ["rapd"]
},
"application/route-s-tsid+xml": {
source: "iana",
compressible: true,
extensions: ["sls"]
},
"application/route-usd+xml": {
source: "iana",
compressible: true,
extensions: ["rusd"]
},
"application/rpki-checklist": {
source: "iana"
},
"application/rpki-ghostbusters": {
source: "iana",
extensions: ["gbr"]
},
"application/rpki-manifest": {
source: "iana",
extensions: ["mft"]
},
"application/rpki-publication": {
source: "iana"
},
"application/rpki-roa": {
source: "iana",
extensions: ["roa"]
},
"application/rpki-signed-tal": {
source: "iana"
},
"application/rpki-updown": {
source: "iana"
},
"application/rsd+xml": {
source: "apache",
compressible: true,
extensions: ["rsd"]
},
"application/rss+xml": {
source: "apache",
compressible: true,
extensions: ["rss"]
},
"application/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"application/rtploopback": {
source: "iana"
},
"application/rtx": {
source: "iana"
},
"application/samlassertion+xml": {
source: "iana",
compressible: true
},
"application/samlmetadata+xml": {
source: "iana",
compressible: true
},
"application/sarif+json": {
source: "iana",
compressible: true
},
"application/sarif-external-properties+json": {
source: "iana",
compressible: true
},
"application/sbe": {
source: "iana"
},
"application/sbml+xml": {
source: "iana",
compressible: true,
extensions: ["sbml"]
},
"application/scaip+xml": {
source: "iana",
compressible: true
},
"application/scim+json": {
source: "iana",
compressible: true
},
"application/scvp-cv-request": {
source: "iana",
extensions: ["scq"]
},
"application/scvp-cv-response": {
source: "iana",
extensions: ["scs"]
},
"application/scvp-vp-request": {
source: "iana",
extensions: ["spq"]
},
"application/scvp-vp-response": {
source: "iana",
extensions: ["spp"]
},
"application/sdp": {
source: "iana",
extensions: ["sdp"]
},
"application/secevent+jwt": {
source: "iana"
},
"application/senml+cbor": {
source: "iana"
},
"application/senml+json": {
source: "iana",
compressible: true
},
"application/senml+xml": {
source: "iana",
compressible: true,
extensions: ["senmlx"]
},
"application/senml-etch+cbor": {
source: "iana"
},
"application/senml-etch+json": {
source: "iana",
compressible: true
},
"application/senml-exi": {
source: "iana"
},
"application/sensml+cbor": {
source: "iana"
},
"application/sensml+json": {
source: "iana",
compressible: true
},
"application/sensml+xml": {
source: "iana",
compressible: true,
extensions: ["sensmlx"]
},
"application/sensml-exi": {
source: "iana"
},
"application/sep+xml": {
source: "iana",
compressible: true
},
"application/sep-exi": {
source: "iana"
},
"application/session-info": {
source: "iana"
},
"application/set-payment": {
source: "iana"
},
"application/set-payment-initiation": {
source: "iana",
extensions: ["setpay"]
},
"application/set-registration": {
source: "iana"
},
"application/set-registration-initiation": {
source: "iana",
extensions: ["setreg"]
},
"application/sgml": {
source: "iana"
},
"application/sgml-open-catalog": {
source: "iana"
},
"application/shf+xml": {
source: "iana",
compressible: true,
extensions: ["shf"]
},
"application/sieve": {
source: "iana",
extensions: ["siv", "sieve"]
},
"application/simple-filter+xml": {
source: "iana",
compressible: true
},
"application/simple-message-summary": {
source: "iana"
},
"application/simplesymbolcontainer": {
source: "iana"
},
"application/sipc": {
source: "iana"
},
"application/slate": {
source: "iana"
},
"application/smil": {
source: "apache"
},
"application/smil+xml": {
source: "iana",
compressible: true,
extensions: ["smi", "smil"]
},
"application/smpte336m": {
source: "iana"
},
"application/soap+fastinfoset": {
source: "iana"
},
"application/soap+xml": {
source: "iana",
compressible: true
},
"application/sparql-query": {
source: "iana",
extensions: ["rq"]
},
"application/sparql-results+xml": {
source: "iana",
compressible: true,
extensions: ["srx"]
},
"application/spdx+json": {
source: "iana",
compressible: true
},
"application/spirits-event+xml": {
source: "iana",
compressible: true
},
"application/sql": {
source: "iana",
extensions: ["sql"]
},
"application/srgs": {
source: "iana",
extensions: ["gram"]
},
"application/srgs+xml": {
source: "iana",
compressible: true,
extensions: ["grxml"]
},
"application/sru+xml": {
source: "iana",
compressible: true,
extensions: ["sru"]
},
"application/ssdl+xml": {
source: "apache",
compressible: true,
extensions: ["ssdl"]
},
"application/sslkeylogfile": {
source: "iana"
},
"application/ssml+xml": {
source: "iana",
compressible: true,
extensions: ["ssml"]
},
"application/st2110-41": {
source: "iana"
},
"application/stix+json": {
source: "iana",
compressible: true
},
"application/stratum": {
source: "iana"
},
"application/swid+cbor": {
source: "iana"
},
"application/swid+xml": {
source: "iana",
compressible: true,
extensions: ["swidtag"]
},
"application/tamp-apex-update": {
source: "iana"
},
"application/tamp-apex-update-confirm": {
source: "iana"
},
"application/tamp-community-update": {
source: "iana"
},
"application/tamp-community-update-confirm": {
source: "iana"
},
"application/tamp-error": {
source: "iana"
},
"application/tamp-sequence-adjust": {
source: "iana"
},
"application/tamp-sequence-adjust-confirm": {
source: "iana"
},
"application/tamp-status-query": {
source: "iana"
},
"application/tamp-status-response": {
source: "iana"
},
"application/tamp-update": {
source: "iana"
},
"application/tamp-update-confirm": {
source: "iana"
},
"application/tar": {
compressible: true
},
"application/taxii+json": {
source: "iana",
compressible: true
},
"application/td+json": {
source: "iana",
compressible: true
},
"application/tei+xml": {
source: "iana",
compressible: true,
extensions: ["tei", "teicorpus"]
},
"application/tetra_isi": {
source: "iana"
},
"application/thraud+xml": {
source: "iana",
compressible: true,
extensions: ["tfi"]
},
"application/timestamp-query": {
source: "iana"
},
"application/timestamp-reply": {
source: "iana"
},
"application/timestamped-data": {
source: "iana",
extensions: ["tsd"]
},
"application/tlsrpt+gzip": {
source: "iana"
},
"application/tlsrpt+json": {
source: "iana",
compressible: true
},
"application/tm+json": {
source: "iana",
compressible: true
},
"application/tnauthlist": {
source: "iana"
},
"application/toc+cbor": {
source: "iana"
},
"application/token-introspection+jwt": {
source: "iana"
},
"application/toml": {
source: "iana",
compressible: true,
extensions: ["toml"]
},
"application/trickle-ice-sdpfrag": {
source: "iana"
},
"application/trig": {
source: "iana",
extensions: ["trig"]
},
"application/trust-chain+json": {
source: "iana",
compressible: true
},
"application/trust-mark+jwt": {
source: "iana"
},
"application/trust-mark-delegation+jwt": {
source: "iana"
},
"application/ttml+xml": {
source: "iana",
compressible: true,
extensions: ["ttml"]
},
"application/tve-trigger": {
source: "iana"
},
"application/tzif": {
source: "iana"
},
"application/tzif-leap": {
source: "iana"
},
"application/ubjson": {
compressible: false,
extensions: ["ubj"]
},
"application/uccs+cbor": {
source: "iana"
},
"application/ujcs+json": {
source: "iana",
compressible: true
},
"application/ulpfec": {
source: "iana"
},
"application/urc-grpsheet+xml": {
source: "iana",
compressible: true
},
"application/urc-ressheet+xml": {
source: "iana",
compressible: true,
extensions: ["rsheet"]
},
"application/urc-targetdesc+xml": {
source: "iana",
compressible: true,
extensions: ["td"]
},
"application/urc-uisocketdesc+xml": {
source: "iana",
compressible: true
},
"application/vc": {
source: "iana"
},
"application/vc+cose": {
source: "iana"
},
"application/vc+jwt": {
source: "iana"
},
"application/vcard+json": {
source: "iana",
compressible: true
},
"application/vcard+xml": {
source: "iana",
compressible: true
},
"application/vemmi": {
source: "iana"
},
"application/vividence.scriptfile": {
source: "apache"
},
"application/vnd.1000minds.decision-model+xml": {
source: "iana",
compressible: true,
extensions: ["1km"]
},
"application/vnd.1ob": {
source: "iana"
},
"application/vnd.3gpp-prose+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3a+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ach+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ch+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc8+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-v2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gnas": {
source: "iana"
},
"application/vnd.3gpp.5gsa2x": {
source: "iana"
},
"application/vnd.3gpp.5gsa2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gsv2x": {
source: "iana"
},
"application/vnd.3gpp.5gsv2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.access-transfer-events+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.bsf+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.crs+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.current-location-discovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gmop+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gtpc": {
source: "iana"
},
"application/vnd.3gpp.interworking-data": {
source: "iana"
},
"application/vnd.3gpp.lpp": {
source: "iana"
},
"application/vnd.3gpp.mc-signalling-ear": {
source: "iana"
},
"application/vnd.3gpp.mcdata-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-payload": {
source: "iana"
},
"application/vnd.3gpp.mcdata-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-signalling": {
source: "iana"
},
"application/vnd.3gpp.mcdata-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-floor-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-signed+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-init-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-transmission-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mid-call+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ngap": {
source: "iana"
},
"application/vnd.3gpp.pfcp": {
source: "iana"
},
"application/vnd.3gpp.pic-bw-large": {
source: "iana",
extensions: ["plb"]
},
"application/vnd.3gpp.pic-bw-small": {
source: "iana",
extensions: ["psb"]
},
"application/vnd.3gpp.pic-bw-var": {
source: "iana",
extensions: ["pvb"]
},
"application/vnd.3gpp.pinapp-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.s1ap": {
source: "iana"
},
"application/vnd.3gpp.seal-group-doc+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-network-qos-management-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-ue-config-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-unicast-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-user-profile-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.sms": {
source: "iana"
},
"application/vnd.3gpp.sms+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-ext+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.state-and-event-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ussd+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.v2x": {
source: "iana"
},
"application/vnd.3gpp.vae-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.bcmcsinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.sms": {
source: "iana"
},
"application/vnd.3gpp2.tcap": {
source: "iana",
extensions: ["tcap"]
},
"application/vnd.3lightssoftware.imagescal": {
source: "iana"
},
"application/vnd.3m.post-it-notes": {
source: "iana",
extensions: ["pwn"]
},
"application/vnd.accpac.simply.aso": {
source: "iana",
extensions: ["aso"]
},
"application/vnd.accpac.simply.imp": {
source: "iana",
extensions: ["imp"]
},
"application/vnd.acm.addressxfer+json": {
source: "iana",
compressible: true
},
"application/vnd.acm.chatbot+json": {
source: "iana",
compressible: true
},
"application/vnd.acucobol": {
source: "iana",
extensions: ["acu"]
},
"application/vnd.acucorp": {
source: "iana",
extensions: ["atc", "acutc"]
},
"application/vnd.adobe.air-application-installer-package+zip": {
source: "apache",
compressible: false,
extensions: ["air"]
},
"application/vnd.adobe.flash.movie": {
source: "iana"
},
"application/vnd.adobe.formscentral.fcdt": {
source: "iana",
extensions: ["fcdt"]
},
"application/vnd.adobe.fxp": {
source: "iana",
extensions: ["fxp", "fxpl"]
},
"application/vnd.adobe.partial-upload": {
source: "iana"
},
"application/vnd.adobe.xdp+xml": {
source: "iana",
compressible: true,
extensions: ["xdp"]
},
"application/vnd.adobe.xfdf": {
source: "apache",
extensions: ["xfdf"]
},
"application/vnd.aether.imp": {
source: "iana"
},
"application/vnd.afpc.afplinedata": {
source: "iana"
},
"application/vnd.afpc.afplinedata-pagedef": {
source: "iana"
},
"application/vnd.afpc.cmoca-cmresource": {
source: "iana"
},
"application/vnd.afpc.foca-charset": {
source: "iana"
},
"application/vnd.afpc.foca-codedfont": {
source: "iana"
},
"application/vnd.afpc.foca-codepage": {
source: "iana"
},
"application/vnd.afpc.modca": {
source: "iana"
},
"application/vnd.afpc.modca-cmtable": {
source: "iana"
},
"application/vnd.afpc.modca-formdef": {
source: "iana"
},
"application/vnd.afpc.modca-mediummap": {
source: "iana"
},
"application/vnd.afpc.modca-objectcontainer": {
source: "iana"
},
"application/vnd.afpc.modca-overlay": {
source: "iana"
},
"application/vnd.afpc.modca-pagesegment": {
source: "iana"
},
"application/vnd.age": {
source: "iana",
extensions: ["age"]
},
"application/vnd.ah-barcode": {
source: "apache"
},
"application/vnd.ahead.space": {
source: "iana",
extensions: ["ahead"]
},
"application/vnd.airzip.filesecure.azf": {
source: "iana",
extensions: ["azf"]
},
"application/vnd.airzip.filesecure.azs": {
source: "iana",
extensions: ["azs"]
},
"application/vnd.amadeus+json": {
source: "iana",
compressible: true
},
"application/vnd.amazon.ebook": {
source: "apache",
extensions: ["azw"]
},
"application/vnd.amazon.mobi8-ebook": {
source: "iana"
},
"application/vnd.americandynamics.acc": {
source: "iana",
extensions: ["acc"]
},
"application/vnd.amiga.ami": {
source: "iana",
extensions: ["ami"]
},
"application/vnd.amundsen.maze+xml": {
source: "iana",
compressible: true
},
"application/vnd.android.ota": {
source: "iana"
},
"application/vnd.android.package-archive": {
source: "apache",
compressible: false,
extensions: ["apk"]
},
"application/vnd.anki": {
source: "iana"
},
"application/vnd.anser-web-certificate-issue-initiation": {
source: "iana",
extensions: ["cii"]
},
"application/vnd.anser-web-funds-transfer-initiation": {
source: "apache",
extensions: ["fti"]
},
"application/vnd.antix.game-component": {
source: "iana",
extensions: ["atx"]
},
"application/vnd.apache.arrow.file": {
source: "iana"
},
"application/vnd.apache.arrow.stream": {
source: "iana"
},
"application/vnd.apache.parquet": {
source: "iana"
},
"application/vnd.apache.thrift.binary": {
source: "iana"
},
"application/vnd.apache.thrift.compact": {
source: "iana"
},
"application/vnd.apache.thrift.json": {
source: "iana"
},
"application/vnd.apexlang": {
source: "iana"
},
"application/vnd.api+json": {
source: "iana",
compressible: true
},
"application/vnd.aplextor.warrp+json": {
source: "iana",
compressible: true
},
"application/vnd.apothekende.reservation+json": {
source: "iana",
compressible: true
},
"application/vnd.apple.installer+xml": {
source: "iana",
compressible: true,
extensions: ["mpkg"]
},
"application/vnd.apple.keynote": {
source: "iana",
extensions: ["key"]
},
"application/vnd.apple.mpegurl": {
source: "iana",
extensions: ["m3u8"]
},
"application/vnd.apple.numbers": {
source: "iana",
extensions: ["numbers"]
},
"application/vnd.apple.pages": {
source: "iana",
extensions: ["pages"]
},
"application/vnd.apple.pkpass": {
compressible: false,
extensions: ["pkpass"]
},
"application/vnd.arastra.swi": {
source: "apache"
},
"application/vnd.aristanetworks.swi": {
source: "iana",
extensions: ["swi"]
},
"application/vnd.artisan+json": {
source: "iana",
compressible: true
},
"application/vnd.artsquare": {
source: "iana"
},
"application/vnd.astraea-software.iota": {
source: "iana",
extensions: ["iota"]
},
"application/vnd.audiograph": {
source: "iana",
extensions: ["aep"]
},
"application/vnd.autodesk.fbx": {
extensions: ["fbx"]
},
"application/vnd.autopackage": {
source: "iana"
},
"application/vnd.avalon+json": {
source: "iana",
compressible: true
},
"application/vnd.avistar+xml": {
source: "iana",
compressible: true
},
"application/vnd.balsamiq.bmml+xml": {
source: "iana",
compressible: true,
extensions: ["bmml"]
},
"application/vnd.balsamiq.bmpr": {
source: "iana"
},
"application/vnd.banana-accounting": {
source: "iana"
},
"application/vnd.bbf.usp.error": {
source: "iana"
},
"application/vnd.bbf.usp.msg": {
source: "iana"
},
"application/vnd.bbf.usp.msg+json": {
source: "iana",
compressible: true
},
"application/vnd.bekitzur-stech+json": {
source: "iana",
compressible: true
},
"application/vnd.belightsoft.lhzd+zip": {
source: "iana",
compressible: false
},
"application/vnd.belightsoft.lhzl+zip": {
source: "iana",
compressible: false
},
"application/vnd.bint.med-content": {
source: "iana"
},
"application/vnd.biopax.rdf+xml": {
source: "iana",
compressible: true
},
"application/vnd.blink-idb-value-wrapper": {
source: "iana"
},
"application/vnd.blueice.multipass": {
source: "iana",
extensions: ["mpm"]
},
"application/vnd.bluetooth.ep.oob": {
source: "iana"
},
"application/vnd.bluetooth.le.oob": {
source: "iana"
},
"application/vnd.bmi": {
source: "iana",
extensions: ["bmi"]
},
"application/vnd.bpf": {
source: "iana"
},
"application/vnd.bpf3": {
source: "iana"
},
"application/vnd.businessobjects": {
source: "iana",
extensions: ["rep"]
},
"application/vnd.byu.uapi+json": {
source: "iana",
compressible: true
},
"application/vnd.bzip3": {
source: "iana"
},
"application/vnd.c3voc.schedule+xml": {
source: "iana",
compressible: true
},
"application/vnd.cab-jscript": {
source: "iana"
},
"application/vnd.canon-cpdl": {
source: "iana"
},
"application/vnd.canon-lips": {
source: "iana"
},
"application/vnd.capasystems-pg+json": {
source: "iana",
compressible: true
},
"application/vnd.cendio.thinlinc.clientconf": {
source: "iana"
},
"application/vnd.century-systems.tcp_stream": {
source: "iana"
},
"application/vnd.chemdraw+xml": {
source: "iana",
compressible: true,
extensions: ["cdxml"]
},
"application/vnd.chess-pgn": {
source: "iana"
},
"application/vnd.chipnuts.karaoke-mmd": {
source: "iana",
extensions: ["mmd"]
},
"application/vnd.ciedi": {
source: "iana"
},
"application/vnd.cinderella": {
source: "iana",
extensions: ["cdy"]
},
"application/vnd.cirpack.isdn-ext": {
source: "iana"
},
"application/vnd.citationstyles.style+xml": {
source: "iana",
compressible: true,
extensions: ["csl"]
},
"application/vnd.claymore": {
source: "iana",
extensions: ["cla"]
},
"application/vnd.cloanto.rp9": {
source: "iana",
extensions: ["rp9"]
},
"application/vnd.clonk.c4group": {
source: "iana",
extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"]
},
"application/vnd.cluetrust.cartomobile-config": {
source: "iana",
extensions: ["c11amc"]
},
"application/vnd.cluetrust.cartomobile-config-pkg": {
source: "iana",
extensions: ["c11amz"]
},
"application/vnd.cncf.helm.chart.content.v1.tar+gzip": {
source: "iana"
},
"application/vnd.cncf.helm.chart.provenance.v1.prov": {
source: "iana"
},
"application/vnd.cncf.helm.config.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.coffeescript": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet-template": {
source: "iana"
},
"application/vnd.collection+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.doc+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.next+json": {
source: "iana",
compressible: true
},
"application/vnd.comicbook+zip": {
source: "iana",
compressible: false
},
"application/vnd.comicbook-rar": {
source: "iana"
},
"application/vnd.commerce-battelle": {
source: "iana"
},
"application/vnd.commonspace": {
source: "iana",
extensions: ["csp"]
},
"application/vnd.contact.cmsg": {
source: "iana",
extensions: ["cdbcmsg"]
},
"application/vnd.coreos.ignition+json": {
source: "iana",
compressible: true
},
"application/vnd.cosmocaller": {
source: "iana",
extensions: ["cmc"]
},
"application/vnd.crick.clicker": {
source: "iana",
extensions: ["clkx"]
},
"application/vnd.crick.clicker.keyboard": {
source: "iana",
extensions: ["clkk"]
},
"application/vnd.crick.clicker.palette": {
source: "iana",
extensions: ["clkp"]
},
"application/vnd.crick.clicker.template": {
source: "iana",
extensions: ["clkt"]
},
"application/vnd.crick.clicker.wordbank": {
source: "iana",
extensions: ["clkw"]
},
"application/vnd.criticaltools.wbs+xml": {
source: "iana",
compressible: true,
extensions: ["wbs"]
},
"application/vnd.cryptii.pipe+json": {
source: "iana",
compressible: true
},
"application/vnd.crypto-shade-file": {
source: "iana"
},
"application/vnd.cryptomator.encrypted": {
source: "iana"
},
"application/vnd.cryptomator.vault": {
source: "iana"
},
"application/vnd.ctc-posml": {
source: "iana",
extensions: ["pml"]
},
"application/vnd.ctct.ws+xml": {
source: "iana",
compressible: true
},
"application/vnd.cups-pdf": {
source: "iana"
},
"application/vnd.cups-postscript": {
source: "iana"
},
"application/vnd.cups-ppd": {
source: "iana",
extensions: ["ppd"]
},
"application/vnd.cups-raster": {
source: "iana"
},
"application/vnd.cups-raw": {
source: "iana"
},
"application/vnd.curl": {
source: "iana"
},
"application/vnd.curl.car": {
source: "apache",
extensions: ["car"]
},
"application/vnd.curl.pcurl": {
source: "apache",
extensions: ["pcurl"]
},
"application/vnd.cyan.dean.root+xml": {
source: "iana",
compressible: true
},
"application/vnd.cybank": {
source: "iana"
},
"application/vnd.cyclonedx+json": {
source: "iana",
compressible: true
},
"application/vnd.cyclonedx+xml": {
source: "iana",
compressible: true
},
"application/vnd.d2l.coursepackage1p0+zip": {
source: "iana",
compressible: false
},
"application/vnd.d3m-dataset": {
source: "iana"
},
"application/vnd.d3m-problem": {
source: "iana"
},
"application/vnd.dart": {
source: "iana",
compressible: true,
extensions: ["dart"]
},
"application/vnd.data-vision.rdz": {
source: "iana",
extensions: ["rdz"]
},
"application/vnd.datalog": {
source: "iana"
},
"application/vnd.datapackage+json": {
source: "iana",
compressible: true
},
"application/vnd.dataresource+json": {
source: "iana",
compressible: true
},
"application/vnd.dbf": {
source: "iana",
extensions: ["dbf"]
},
"application/vnd.dcmp+xml": {
source: "iana",
compressible: true,
extensions: ["dcmp"]
},
"application/vnd.debian.binary-package": {
source: "iana"
},
"application/vnd.dece.data": {
source: "iana",
extensions: ["uvf", "uvvf", "uvd", "uvvd"]
},
"application/vnd.dece.ttml+xml": {
source: "iana",
compressible: true,
extensions: ["uvt", "uvvt"]
},
"application/vnd.dece.unspecified": {
source: "iana",
extensions: ["uvx", "uvvx"]
},
"application/vnd.dece.zip": {
source: "iana",
extensions: ["uvz", "uvvz"]
},
"application/vnd.denovo.fcselayout-link": {
source: "iana",
extensions: ["fe_launch"]
},
"application/vnd.desmume.movie": {
source: "iana"
},
"application/vnd.dir-bi.plate-dl-nosuffix": {
source: "iana"
},
"application/vnd.dm.delegation+xml": {
source: "iana",
compressible: true
},
"application/vnd.dna": {
source: "iana",
extensions: ["dna"]
},
"application/vnd.document+json": {
source: "iana",
compressible: true
},
"application/vnd.dolby.mlp": {
source: "apache",
extensions: ["mlp"]
},
"application/vnd.dolby.mobile.1": {
source: "iana"
},
"application/vnd.dolby.mobile.2": {
source: "iana"
},
"application/vnd.doremir.scorecloud-binary-document": {
source: "iana"
},
"application/vnd.dpgraph": {
source: "iana",
extensions: ["dpg"]
},
"application/vnd.dreamfactory": {
source: "iana",
extensions: ["dfac"]
},
"application/vnd.drive+json": {
source: "iana",
compressible: true
},
"application/vnd.ds-keypoint": {
source: "apache",
extensions: ["kpxx"]
},
"application/vnd.dtg.local": {
source: "iana"
},
"application/vnd.dtg.local.flash": {
source: "iana"
},
"application/vnd.dtg.local.html": {
source: "iana"
},
"application/vnd.dvb.ait": {
source: "iana",
extensions: ["ait"]
},
"application/vnd.dvb.dvbisl+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.dvbj": {
source: "iana"
},
"application/vnd.dvb.esgcontainer": {
source: "iana"
},
"application/vnd.dvb.ipdcdftnotifaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess2": {
source: "iana"
},
"application/vnd.dvb.ipdcesgpdd": {
source: "iana"
},
"application/vnd.dvb.ipdcroaming": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-base": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-enhancement": {
source: "iana"
},
"application/vnd.dvb.notif-aggregate-root+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-container+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-generic+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-msglist+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-response+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-init+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.pfr": {
source: "iana"
},
"application/vnd.dvb.service": {
source: "iana",
extensions: ["svc"]
},
"application/vnd.dxr": {
source: "iana"
},
"application/vnd.dynageo": {
source: "iana",
extensions: ["geo"]
},
"application/vnd.dzr": {
source: "iana"
},
"application/vnd.easykaraoke.cdgdownload": {
source: "iana"
},
"application/vnd.ecdis-update": {
source: "iana"
},
"application/vnd.ecip.rlp": {
source: "iana"
},
"application/vnd.eclipse.ditto+json": {
source: "iana",
compressible: true
},
"application/vnd.ecowin.chart": {
source: "iana",
extensions: ["mag"]
},
"application/vnd.ecowin.filerequest": {
source: "iana"
},
"application/vnd.ecowin.fileupdate": {
source: "iana"
},
"application/vnd.ecowin.series": {
source: "iana"
},
"application/vnd.ecowin.seriesrequest": {
source: "iana"
},
"application/vnd.ecowin.seriesupdate": {
source: "iana"
},
"application/vnd.efi.img": {
source: "iana"
},
"application/vnd.efi.iso": {
source: "iana"
},
"application/vnd.eln+zip": {
source: "iana",
compressible: false
},
"application/vnd.emclient.accessrequest+xml": {
source: "iana",
compressible: true
},
"application/vnd.enliven": {
source: "iana",
extensions: ["nml"]
},
"application/vnd.enphase.envoy": {
source: "iana"
},
"application/vnd.eprints.data+xml": {
source: "iana",
compressible: true
},
"application/vnd.epson.esf": {
source: "iana",
extensions: ["esf"]
},
"application/vnd.epson.msf": {
source: "iana",
extensions: ["msf"]
},
"application/vnd.epson.quickanime": {
source: "iana",
extensions: ["qam"]
},
"application/vnd.epson.salt": {
source: "iana",
extensions: ["slt"]
},
"application/vnd.epson.ssf": {
source: "iana",
extensions: ["ssf"]
},
"application/vnd.ericsson.quickcall": {
source: "iana"
},
"application/vnd.erofs": {
source: "iana"
},
"application/vnd.espass-espass+zip": {
source: "iana",
compressible: false
},
"application/vnd.eszigno3+xml": {
source: "iana",
compressible: true,
extensions: ["es3", "et3"]
},
"application/vnd.etsi.aoc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.asic-e+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.asic-s+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.cug+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvcommand+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-bc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-cod+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-npvr+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvservice+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsync+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mcid+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mheg5": {
source: "iana"
},
"application/vnd.etsi.overload-control-policy-dataset+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.pstn+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.sci+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.simservs+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.timestamp-token": {
source: "iana"
},
"application/vnd.etsi.tsl+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.tsl.der": {
source: "iana"
},
"application/vnd.eu.kasparian.car+json": {
source: "iana",
compressible: true
},
"application/vnd.eudora.data": {
source: "iana"
},
"application/vnd.evolv.ecig.profile": {
source: "iana"
},
"application/vnd.evolv.ecig.settings": {
source: "iana"
},
"application/vnd.evolv.ecig.theme": {
source: "iana"
},
"application/vnd.exstream-empower+zip": {
source: "iana",
compressible: false
},
"application/vnd.exstream-package": {
source: "iana"
},
"application/vnd.ezpix-album": {
source: "iana",
extensions: ["ez2"]
},
"application/vnd.ezpix-package": {
source: "iana",
extensions: ["ez3"]
},
"application/vnd.f-secure.mobile": {
source: "iana"
},
"application/vnd.familysearch.gedcom+zip": {
source: "iana",
compressible: false
},
"application/vnd.fastcopy-disk-image": {
source: "iana"
},
"application/vnd.fdf": {
source: "apache",
extensions: ["fdf"]
},
"application/vnd.fdsn.mseed": {
source: "iana",
extensions: ["mseed"]
},
"application/vnd.fdsn.seed": {
source: "iana",
extensions: ["seed", "dataless"]
},
"application/vnd.fdsn.stationxml+xml": {
source: "iana",
charset: "XML-BASED",
compressible: true
},
"application/vnd.ffsns": {
source: "iana"
},
"application/vnd.ficlab.flb+zip": {
source: "iana",
compressible: false
},
"application/vnd.filmit.zfc": {
source: "iana"
},
"application/vnd.fints": {
source: "iana"
},
"application/vnd.firemonkeys.cloudcell": {
source: "iana"
},
"application/vnd.flographit": {
source: "iana",
extensions: ["gph"]
},
"application/vnd.fluxtime.clip": {
source: "iana",
extensions: ["ftc"]
},
"application/vnd.font-fontforge-sfd": {
source: "iana"
},
"application/vnd.framemaker": {
source: "iana",
extensions: ["fm", "frame", "maker", "book"]
},
"application/vnd.freelog.comic": {
source: "iana"
},
"application/vnd.frogans.fnc": {
source: "apache",
extensions: ["fnc"]
},
"application/vnd.frogans.ltf": {
source: "apache",
extensions: ["ltf"]
},
"application/vnd.fsc.weblaunch": {
source: "iana",
extensions: ["fsc"]
},
"application/vnd.fujifilm.fb.docuworks": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.binder": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.container": {
source: "iana"
},
"application/vnd.fujifilm.fb.jfi+xml": {
source: "iana",
compressible: true
},
"application/vnd.fujitsu.oasys": {
source: "iana",
extensions: ["oas"]
},
"application/vnd.fujitsu.oasys2": {
source: "iana",
extensions: ["oa2"]
},
"application/vnd.fujitsu.oasys3": {
source: "iana",
extensions: ["oa3"]
},
"application/vnd.fujitsu.oasysgp": {
source: "iana",
extensions: ["fg5"]
},
"application/vnd.fujitsu.oasysprs": {
source: "iana",
extensions: ["bh2"]
},
"application/vnd.fujixerox.art-ex": {
source: "iana"
},
"application/vnd.fujixerox.art4": {
source: "iana"
},
"application/vnd.fujixerox.ddd": {
source: "iana",
extensions: ["ddd"]
},
"application/vnd.fujixerox.docuworks": {
source: "iana",
extensions: ["xdw"]
},
"application/vnd.fujixerox.docuworks.binder": {
source: "iana",
extensions: ["xbd"]
},
"application/vnd.fujixerox.docuworks.container": {
source: "iana"
},
"application/vnd.fujixerox.hbpl": {
source: "iana"
},
"application/vnd.fut-misnet": {
source: "iana"
},
"application/vnd.futoin+cbor": {
source: "iana"
},
"application/vnd.futoin+json": {
source: "iana",
compressible: true
},
"application/vnd.fuzzysheet": {
source: "iana",
extensions: ["fzs"]
},
"application/vnd.ga4gh.passport+jwt": {
source: "iana"
},
"application/vnd.genomatix.tuxedo": {
source: "iana",
extensions: ["txd"]
},
"application/vnd.genozip": {
source: "iana"
},
"application/vnd.gentics.grd+json": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.catmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.ebuild": {
source: "iana"
},
"application/vnd.gentoo.eclass": {
source: "iana"
},
"application/vnd.gentoo.gpkg": {
source: "iana"
},
"application/vnd.gentoo.manifest": {
source: "iana"
},
"application/vnd.gentoo.pkgmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.xpak": {
source: "iana"
},
"application/vnd.geo+json": {
source: "apache",
compressible: true
},
"application/vnd.geocube+xml": {
source: "apache",
compressible: true
},
"application/vnd.geogebra.file": {
source: "iana",
extensions: ["ggb"]
},
"application/vnd.geogebra.pinboard": {
source: "iana"
},
"application/vnd.geogebra.slides": {
source: "iana",
extensions: ["ggs"]
},
"application/vnd.geogebra.tool": {
source: "iana",
extensions: ["ggt"]
},
"application/vnd.geometry-explorer": {
source: "iana",
extensions: ["gex", "gre"]
},
"application/vnd.geonext": {
source: "iana",
extensions: ["gxt"]
},
"application/vnd.geoplan": {
source: "iana",
extensions: ["g2w"]
},
"application/vnd.geospace": {
source: "iana",
extensions: ["g3w"]
},
"application/vnd.gerber": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt-response": {
source: "iana"
},
"application/vnd.gmx": {
source: "iana",
extensions: ["gmx"]
},
"application/vnd.gnu.taler.exchange+json": {
source: "iana",
compressible: true
},
"application/vnd.gnu.taler.merchant+json": {
source: "iana",
compressible: true
},
"application/vnd.google-apps.audio": {},
"application/vnd.google-apps.document": {
compressible: false,
extensions: ["gdoc"]
},
"application/vnd.google-apps.drawing": {
compressible: false,
extensions: ["gdraw"]
},
"application/vnd.google-apps.drive-sdk": {
compressible: false
},
"application/vnd.google-apps.file": {},
"application/vnd.google-apps.folder": {
compressible: false
},
"application/vnd.google-apps.form": {
compressible: false,
extensions: ["gform"]
},
"application/vnd.google-apps.fusiontable": {},
"application/vnd.google-apps.jam": {
compressible: false,
extensions: ["gjam"]
},
"application/vnd.google-apps.mail-layout": {},
"application/vnd.google-apps.map": {
compressible: false,
extensions: ["gmap"]
},
"application/vnd.google-apps.photo": {},
"application/vnd.google-apps.presentation": {
compressible: false,
extensions: ["gslides"]
},
"application/vnd.google-apps.script": {
compressible: false,
extensions: ["gscript"]
},
"application/vnd.google-apps.shortcut": {},
"application/vnd.google-apps.site": {
compressible: false,
extensions: ["gsite"]
},
"application/vnd.google-apps.spreadsheet": {
compressible: false,
extensions: ["gsheet"]
},
"application/vnd.google-apps.unknown": {},
"application/vnd.google-apps.video": {},
"application/vnd.google-earth.kml+xml": {
source: "iana",
compressible: true,
extensions: ["kml"]
},
"application/vnd.google-earth.kmz": {
source: "iana",
compressible: false,
extensions: ["kmz"]
},
"application/vnd.gov.sk.e-form+xml": {
source: "apache",
compressible: true
},
"application/vnd.gov.sk.e-form+zip": {
source: "iana",
compressible: false
},
"application/vnd.gov.sk.xmldatacontainer+xml": {
source: "iana",
compressible: true,
extensions: ["xdcf"]
},
"application/vnd.gpxsee.map+xml": {
source: "iana",
compressible: true
},
"application/vnd.grafeq": {
source: "iana",
extensions: ["gqf", "gqs"]
},
"application/vnd.gridmp": {
source: "iana"
},
"application/vnd.groove-account": {
source: "iana",
extensions: ["gac"]
},
"application/vnd.groove-help": {
source: "iana",
extensions: ["ghf"]
},
"application/vnd.groove-identity-message": {
source: "iana",
extensions: ["gim"]
},
"application/vnd.groove-injector": {
source: "iana",
extensions: ["grv"]
},
"application/vnd.groove-tool-message": {
source: "iana",
extensions: ["gtm"]
},
"application/vnd.groove-tool-template": {
source: "iana",
extensions: ["tpl"]
},
"application/vnd.groove-vcard": {
source: "iana",
extensions: ["vcg"]
},
"application/vnd.hal+json": {
source: "iana",
compressible: true
},
"application/vnd.hal+xml": {
source: "iana",
compressible: true,
extensions: ["hal"]
},
"application/vnd.handheld-entertainment+xml": {
source: "iana",
compressible: true,
extensions: ["zmm"]
},
"application/vnd.hbci": {
source: "iana",
extensions: ["hbci"]
},
"application/vnd.hc+json": {
source: "iana",
compressible: true
},
"application/vnd.hcl-bireports": {
source: "iana"
},
"application/vnd.hdt": {
source: "iana"
},
"application/vnd.heroku+json": {
source: "iana",
compressible: true
},
"application/vnd.hhe.lesson-player": {
source: "iana",
extensions: ["les"]
},
"application/vnd.hp-hpgl": {
source: "iana",
extensions: ["hpgl"]
},
"application/vnd.hp-hpid": {
source: "iana",
extensions: ["hpid"]
},
"application/vnd.hp-hps": {
source: "iana",
extensions: ["hps"]
},
"application/vnd.hp-jlyt": {
source: "iana",
extensions: ["jlt"]
},
"application/vnd.hp-pcl": {
source: "iana",
extensions: ["pcl"]
},
"application/vnd.hp-pclxl": {
source: "iana",
extensions: ["pclxl"]
},
"application/vnd.hsl": {
source: "iana"
},
"application/vnd.httphone": {
source: "iana"
},
"application/vnd.hydrostatix.sof-data": {
source: "iana",
extensions: ["sfd-hdstx"]
},
"application/vnd.hyper+json": {
source: "iana",
compressible: true
},
"application/vnd.hyper-item+json": {
source: "iana",
compressible: true
},
"application/vnd.hyperdrive+json": {
source: "iana",
compressible: true
},
"application/vnd.hzn-3d-crossword": {
source: "iana"
},
"application/vnd.ibm.afplinedata": {
source: "apache"
},
"application/vnd.ibm.electronic-media": {
source: "iana"
},
"application/vnd.ibm.minipay": {
source: "iana",
extensions: ["mpy"]
},
"application/vnd.ibm.modcap": {
source: "apache",
extensions: ["afp", "listafp", "list3820"]
},
"application/vnd.ibm.rights-management": {
source: "iana",
extensions: ["irm"]
},
"application/vnd.ibm.secure-container": {
source: "iana",
extensions: ["sc"]
},
"application/vnd.iccprofile": {
source: "iana",
extensions: ["icc", "icm"]
},
"application/vnd.ieee.1905": {
source: "iana"
},
"application/vnd.igloader": {
source: "iana",
extensions: ["igl"]
},
"application/vnd.imagemeter.folder+zip": {
source: "iana",
compressible: false
},
"application/vnd.imagemeter.image+zip": {
source: "iana",
compressible: false
},
"application/vnd.immervision-ivp": {
source: "iana",
extensions: ["ivp"]
},
"application/vnd.immervision-ivu": {
source: "iana",
extensions: ["ivu"]
},
"application/vnd.ims.imsccv1p1": {
source: "iana"
},
"application/vnd.ims.imsccv1p2": {
source: "iana"
},
"application/vnd.ims.imsccv1p3": {
source: "iana"
},
"application/vnd.ims.lis.v2.result+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolconsumerprofile+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy.id+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings.simple+json": {
source: "iana",
compressible: true
},
"application/vnd.informedcontrol.rms+xml": {
source: "iana",
compressible: true
},
"application/vnd.informix-visionary": {
source: "apache"
},
"application/vnd.infotech.project": {
source: "iana"
},
"application/vnd.infotech.project+xml": {
source: "iana",
compressible: true
},
"application/vnd.innopath.wamp.notification": {
source: "iana"
},
"application/vnd.insors.igm": {
source: "iana",
extensions: ["igm"]
},
"application/vnd.intercon.formnet": {
source: "iana",
extensions: ["xpw", "xpx"]
},
"application/vnd.intergeo": {
source: "iana",
extensions: ["i2g"]
},
"application/vnd.intertrust.digibox": {
source: "iana"
},
"application/vnd.intertrust.nncp": {
source: "iana"
},
"application/vnd.intu.qbo": {
source: "iana",
extensions: ["qbo"]
},
"application/vnd.intu.qfx": {
source: "iana",
extensions: ["qfx"]
},
"application/vnd.ipfs.ipns-record": {
source: "iana"
},
"application/vnd.ipld.car": {
source: "iana"
},
"application/vnd.ipld.dag-cbor": {
source: "iana"
},
"application/vnd.ipld.dag-json": {
source: "iana"
},
"application/vnd.ipld.raw": {
source: "iana"
},
"application/vnd.iptc.g2.catalogitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.conceptitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.knowledgeitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.packageitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.planningitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.ipunplugged.rcprofile": {
source: "iana",
extensions: ["rcprofile"]
},
"application/vnd.irepository.package+xml": {
source: "iana",
compressible: true,
extensions: ["irp"]
},
"application/vnd.is-xpr": {
source: "iana",
extensions: ["xpr"]
},
"application/vnd.isac.fcs": {
source: "iana",
extensions: ["fcs"]
},
"application/vnd.iso11783-10+zip": {
source: "iana",
compressible: false
},
"application/vnd.jam": {
source: "iana",
extensions: ["jam"]
},
"application/vnd.japannet-directory-service": {
source: "iana"
},
"application/vnd.japannet-jpnstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-payment-wakeup": {
source: "iana"
},
"application/vnd.japannet-registration": {
source: "iana"
},
"application/vnd.japannet-registration-wakeup": {
source: "iana"
},
"application/vnd.japannet-setstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-verification": {
source: "iana"
},
"application/vnd.japannet-verification-wakeup": {
source: "iana"
},
"application/vnd.jcp.javame.midlet-rms": {
source: "iana",
extensions: ["rms"]
},
"application/vnd.jisp": {
source: "iana",
extensions: ["jisp"]
},
"application/vnd.joost.joda-archive": {
source: "iana",
extensions: ["joda"]
},
"application/vnd.jsk.isdn-ngn": {
source: "iana"
},
"application/vnd.kahootz": {
source: "iana",
extensions: ["ktz", "ktr"]
},
"application/vnd.kde.karbon": {
source: "iana",
extensions: ["karbon"]
},
"application/vnd.kde.kchart": {
source: "iana",
extensions: ["chrt"]
},
"application/vnd.kde.kformula": {
source: "iana",
extensions: ["kfo"]
},
"application/vnd.kde.kivio": {
source: "iana",
extensions: ["flw"]
},
"application/vnd.kde.kontour": {
source: "iana",
extensions: ["kon"]
},
"application/vnd.kde.kpresenter": {
source: "iana",
extensions: ["kpr", "kpt"]
},
"application/vnd.kde.kspread": {
source: "iana",
extensions: ["ksp"]
},
"application/vnd.kde.kword": {
source: "iana",
extensions: ["kwd", "kwt"]
},
"application/vnd.kdl": {
source: "iana"
},
"application/vnd.kenameaapp": {
source: "iana",
extensions: ["htke"]
},
"application/vnd.keyman.kmp+zip": {
source: "iana",
compressible: false
},
"application/vnd.keyman.kmx": {
source: "iana"
},
"application/vnd.kidspiration": {
source: "iana",
extensions: ["kia"]
},
"application/vnd.kinar": {
source: "iana",
extensions: ["kne", "knp"]
},
"application/vnd.koan": {
source: "iana",
extensions: ["skp", "skd", "skt", "skm"]
},
"application/vnd.kodak-descriptor": {
source: "iana",
extensions: ["sse"]
},
"application/vnd.las": {
source: "iana"
},
"application/vnd.las.las+json": {
source: "iana",
compressible: true
},
"application/vnd.las.las+xml": {
source: "iana",
compressible: true,
extensions: ["lasxml"]
},
"application/vnd.laszip": {
source: "iana"
},
"application/vnd.ldev.productlicensing": {
source: "iana"
},
"application/vnd.leap+json": {
source: "iana",
compressible: true
},
"application/vnd.liberty-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.llamagraphics.life-balance.desktop": {
source: "iana",
extensions: ["lbd"]
},
"application/vnd.llamagraphics.life-balance.exchange+xml": {
source: "iana",
compressible: true,
extensions: ["lbe"]
},
"application/vnd.logipipe.circuit+zip": {
source: "iana",
compressible: false
},
"application/vnd.loom": {
source: "iana"
},
"application/vnd.lotus-1-2-3": {
source: "iana",
extensions: ["123"]
},
"application/vnd.lotus-approach": {
source: "iana",
extensions: ["apr"]
},
"application/vnd.lotus-freelance": {
source: "iana",
extensions: ["pre"]
},
"application/vnd.lotus-notes": {
source: "iana",
extensions: ["nsf"]
},
"application/vnd.lotus-organizer": {
source: "iana",
extensions: ["org"]
},
"application/vnd.lotus-screencam": {
source: "iana",
extensions: ["scm"]
},
"application/vnd.lotus-wordpro": {
source: "iana",
extensions: ["lwp"]
},
"application/vnd.macports.portpkg": {
source: "iana",
extensions: ["portpkg"]
},
"application/vnd.mapbox-vector-tile": {
source: "iana",
extensions: ["mvt"]
},
"application/vnd.marlin.drm.actiontoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.conftoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.license+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.mdcf": {
source: "iana"
},
"application/vnd.mason+json": {
source: "iana",
compressible: true
},
"application/vnd.maxar.archive.3tz+zip": {
source: "iana",
compressible: false
},
"application/vnd.maxmind.maxmind-db": {
source: "iana"
},
"application/vnd.mcd": {
source: "iana",
extensions: ["mcd"]
},
"application/vnd.mdl": {
source: "iana"
},
"application/vnd.mdl-mbsdf": {
source: "iana"
},
"application/vnd.medcalcdata": {
source: "iana",
extensions: ["mc1"]
},
"application/vnd.mediastation.cdkey": {
source: "iana",
extensions: ["cdkey"]
},
"application/vnd.medicalholodeck.recordxr": {
source: "iana"
},
"application/vnd.meridian-slingshot": {
source: "iana"
},
"application/vnd.mermaid": {
source: "iana"
},
"application/vnd.mfer": {
source: "iana",
extensions: ["mwf"]
},
"application/vnd.mfmp": {
source: "iana",
extensions: ["mfm"]
},
"application/vnd.micro+json": {
source: "iana",
compressible: true
},
"application/vnd.micrografx.flo": {
source: "iana",
extensions: ["flo"]
},
"application/vnd.micrografx.igx": {
source: "iana",
extensions: ["igx"]
},
"application/vnd.microsoft.portable-executable": {
source: "iana"
},
"application/vnd.microsoft.windows.thumbnail-cache": {
source: "iana"
},
"application/vnd.miele+json": {
source: "iana",
compressible: true
},
"application/vnd.mif": {
source: "iana",
extensions: ["mif"]
},
"application/vnd.minisoft-hp3000-save": {
source: "iana"
},
"application/vnd.mitsubishi.misty-guard.trustweb": {
source: "iana"
},
"application/vnd.mobius.daf": {
source: "iana",
extensions: ["daf"]
},
"application/vnd.mobius.dis": {
source: "iana",
extensions: ["dis"]
},
"application/vnd.mobius.mbk": {
source: "iana",
extensions: ["mbk"]
},
"application/vnd.mobius.mqy": {
source: "iana",
extensions: ["mqy"]
},
"application/vnd.mobius.msl": {
source: "iana",
extensions: ["msl"]
},
"application/vnd.mobius.plc": {
source: "iana",
extensions: ["plc"]
},
"application/vnd.mobius.txf": {
source: "iana",
extensions: ["txf"]
},
"application/vnd.modl": {
source: "iana"
},
"application/vnd.mophun.application": {
source: "iana",
extensions: ["mpn"]
},
"application/vnd.mophun.certificate": {
source: "iana",
extensions: ["mpc"]
},
"application/vnd.motorola.flexsuite": {
source: "iana"
},
"application/vnd.motorola.flexsuite.adsi": {
source: "iana"
},
"application/vnd.motorola.flexsuite.fis": {
source: "iana"
},
"application/vnd.motorola.flexsuite.gotap": {
source: "iana"
},
"application/vnd.motorola.flexsuite.kmr": {
source: "iana"
},
"application/vnd.motorola.flexsuite.ttc": {
source: "iana"
},
"application/vnd.motorola.flexsuite.wem": {
source: "iana"
},
"application/vnd.motorola.iprm": {
source: "iana"
},
"application/vnd.mozilla.xul+xml": {
source: "iana",
compressible: true,
extensions: ["xul"]
},
"application/vnd.ms-3mfdocument": {
source: "iana"
},
"application/vnd.ms-artgalry": {
source: "iana",
extensions: ["cil"]
},
"application/vnd.ms-asf": {
source: "iana"
},
"application/vnd.ms-cab-compressed": {
source: "iana",
extensions: ["cab"]
},
"application/vnd.ms-color.iccprofile": {
source: "apache"
},
"application/vnd.ms-excel": {
source: "iana",
compressible: false,
extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"]
},
"application/vnd.ms-excel.addin.macroenabled.12": {
source: "iana",
extensions: ["xlam"]
},
"application/vnd.ms-excel.sheet.binary.macroenabled.12": {
source: "iana",
extensions: ["xlsb"]
},
"application/vnd.ms-excel.sheet.macroenabled.12": {
source: "iana",
extensions: ["xlsm"]
},
"application/vnd.ms-excel.template.macroenabled.12": {
source: "iana",
extensions: ["xltm"]
},
"application/vnd.ms-fontobject": {
source: "iana",
compressible: true,
extensions: ["eot"]
},
"application/vnd.ms-htmlhelp": {
source: "iana",
extensions: ["chm"]
},
"application/vnd.ms-ims": {
source: "iana",
extensions: ["ims"]
},
"application/vnd.ms-lrm": {
source: "iana",
extensions: ["lrm"]
},
"application/vnd.ms-office.activex+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-officetheme": {
source: "iana",
extensions: ["thmx"]
},
"application/vnd.ms-opentype": {
source: "apache",
compressible: true
},
"application/vnd.ms-outlook": {
compressible: false,
extensions: ["msg"]
},
"application/vnd.ms-package.obfuscated-opentype": {
source: "apache"
},
"application/vnd.ms-pki.seccat": {
source: "apache",
extensions: ["cat"]
},
"application/vnd.ms-pki.stl": {
source: "apache",
extensions: ["stl"]
},
"application/vnd.ms-playready.initiator+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-powerpoint": {
source: "iana",
compressible: false,
extensions: ["ppt", "pps", "pot"]
},
"application/vnd.ms-powerpoint.addin.macroenabled.12": {
source: "iana",
extensions: ["ppam"]
},
"application/vnd.ms-powerpoint.presentation.macroenabled.12": {
source: "iana",
extensions: ["pptm"]
},
"application/vnd.ms-powerpoint.slide.macroenabled.12": {
source: "iana",
extensions: ["sldm"]
},
"application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
source: "iana",
extensions: ["ppsm"]
},
"application/vnd.ms-powerpoint.template.macroenabled.12": {
source: "iana",
extensions: ["potm"]
},
"application/vnd.ms-printdevicecapabilities+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-printing.printticket+xml": {
source: "apache",
compressible: true
},
"application/vnd.ms-printschematicket+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-project": {
source: "iana",
extensions: ["mpp", "mpt"]
},
"application/vnd.ms-tnef": {
source: "iana"
},
"application/vnd.ms-visio.viewer": {
extensions: ["vdx"]
},
"application/vnd.ms-windows.devicepairing": {
source: "iana"
},
"application/vnd.ms-windows.nwprinting.oob": {
source: "iana"
},
"application/vnd.ms-windows.printerpairing": {
source: "iana"
},
"application/vnd.ms-windows.wsd.oob": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-resp": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-resp": {
source: "iana"
},
"application/vnd.ms-word.document.macroenabled.12": {
source: "iana",
extensions: ["docm"]
},
"application/vnd.ms-word.template.macroenabled.12": {
source: "iana",
extensions: ["dotm"]
},
"application/vnd.ms-works": {
source: "iana",
extensions: ["wps", "wks", "wcm", "wdb"]
},
"application/vnd.ms-wpl": {
source: "iana",
extensions: ["wpl"]
},
"application/vnd.ms-xpsdocument": {
source: "iana",
compressible: false,
extensions: ["xps"]
},
"application/vnd.msa-disk-image": {
source: "iana"
},
"application/vnd.mseq": {
source: "iana",
extensions: ["mseq"]
},
"application/vnd.msgpack": {
source: "iana"
},
"application/vnd.msign": {
source: "iana"
},
"application/vnd.multiad.creator": {
source: "iana"
},
"application/vnd.multiad.creator.cif": {
source: "iana"
},
"application/vnd.music-niff": {
source: "iana"
},
"application/vnd.musician": {
source: "iana",
extensions: ["mus"]
},
"application/vnd.muvee.style": {
source: "iana",
extensions: ["msty"]
},
"application/vnd.mynfc": {
source: "iana",
extensions: ["taglet"]
},
"application/vnd.nacamar.ybrid+json": {
source: "iana",
compressible: true
},
"application/vnd.nato.bindingdataobject+cbor": {
source: "iana"
},
"application/vnd.nato.bindingdataobject+json": {
source: "iana",
compressible: true
},
"application/vnd.nato.bindingdataobject+xml": {
source: "iana",
compressible: true,
extensions: ["bdo"]
},
"application/vnd.nato.openxmlformats-package.iepd+zip": {
source: "iana",
compressible: false
},
"application/vnd.ncd.control": {
source: "iana"
},
"application/vnd.ncd.reference": {
source: "iana"
},
"application/vnd.nearst.inv+json": {
source: "iana",
compressible: true
},
"application/vnd.nebumind.line": {
source: "iana"
},
"application/vnd.nervana": {
source: "iana"
},
"application/vnd.netfpx": {
source: "iana"
},
"application/vnd.neurolanguage.nlu": {
source: "iana",
extensions: ["nlu"]
},
"application/vnd.nimn": {
source: "iana"
},
"application/vnd.nintendo.nitro.rom": {
source: "iana"
},
"application/vnd.nintendo.snes.rom": {
source: "iana"
},
"application/vnd.nitf": {
source: "iana",
extensions: ["ntf", "nitf"]
},
"application/vnd.noblenet-directory": {
source: "iana",
extensions: ["nnd"]
},
"application/vnd.noblenet-sealer": {
source: "iana",
extensions: ["nns"]
},
"application/vnd.noblenet-web": {
source: "iana",
extensions: ["nnw"]
},
"application/vnd.nokia.catalogs": {
source: "iana"
},
"application/vnd.nokia.conml+wbxml": {
source: "iana"
},
"application/vnd.nokia.conml+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.iptv.config+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.isds-radio-presets": {
source: "iana"
},
"application/vnd.nokia.landmark+wbxml": {
source: "iana"
},
"application/vnd.nokia.landmark+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.landmarkcollection+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.n-gage.ac+xml": {
source: "iana",
compressible: true,
extensions: ["ac"]
},
"application/vnd.nokia.n-gage.data": {
source: "iana",
extensions: ["ngdat"]
},
"application/vnd.nokia.n-gage.symbian.install": {
source: "apache",
extensions: ["n-gage"]
},
"application/vnd.nokia.ncd": {
source: "iana"
},
"application/vnd.nokia.pcd+wbxml": {
source: "iana"
},
"application/vnd.nokia.pcd+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.radio-preset": {
source: "iana",
extensions: ["rpst"]
},
"application/vnd.nokia.radio-presets": {
source: "iana",
extensions: ["rpss"]
},
"application/vnd.novadigm.edm": {
source: "iana",
extensions: ["edm"]
},
"application/vnd.novadigm.edx": {
source: "iana",
extensions: ["edx"]
},
"application/vnd.novadigm.ext": {
source: "iana",
extensions: ["ext"]
},
"application/vnd.ntt-local.content-share": {
source: "iana"
},
"application/vnd.ntt-local.file-transfer": {
source: "iana"
},
"application/vnd.ntt-local.ogw_remote-access": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_remote": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_tcp_stream": {
source: "iana"
},
"application/vnd.oai.workflows": {
source: "iana"
},
"application/vnd.oai.workflows+json": {
source: "iana",
compressible: true
},
"application/vnd.oai.workflows+yaml": {
source: "iana"
},
"application/vnd.oasis.opendocument.base": {
source: "iana"
},
"application/vnd.oasis.opendocument.chart": {
source: "iana",
extensions: ["odc"]
},
"application/vnd.oasis.opendocument.chart-template": {
source: "iana",
extensions: ["otc"]
},
"application/vnd.oasis.opendocument.database": {
source: "apache",
extensions: ["odb"]
},
"application/vnd.oasis.opendocument.formula": {
source: "iana",
extensions: ["odf"]
},
"application/vnd.oasis.opendocument.formula-template": {
source: "iana",
extensions: ["odft"]
},
"application/vnd.oasis.opendocument.graphics": {
source: "iana",
compressible: false,
extensions: ["odg"]
},
"application/vnd.oasis.opendocument.graphics-template": {
source: "iana",
extensions: ["otg"]
},
"application/vnd.oasis.opendocument.image": {
source: "iana",
extensions: ["odi"]
},
"application/vnd.oasis.opendocument.image-template": {
source: "iana",
extensions: ["oti"]
},
"application/vnd.oasis.opendocument.presentation": {
source: "iana",
compressible: false,
extensions: ["odp"]
},
"application/vnd.oasis.opendocument.presentation-template": {
source: "iana",
extensions: ["otp"]
},
"application/vnd.oasis.opendocument.spreadsheet": {
source: "iana",
compressible: false,
extensions: ["ods"]
},
"application/vnd.oasis.opendocument.spreadsheet-template": {
source: "iana",
extensions: ["ots"]
},
"application/vnd.oasis.opendocument.text": {
source: "iana",
compressible: false,
extensions: ["odt"]
},
"application/vnd.oasis.opendocument.text-master": {
source: "iana",
extensions: ["odm"]
},
"application/vnd.oasis.opendocument.text-master-template": {
source: "iana"
},
"application/vnd.oasis.opendocument.text-template": {
source: "iana",
extensions: ["ott"]
},
"application/vnd.oasis.opendocument.text-web": {
source: "iana",
extensions: ["oth"]
},
"application/vnd.obn": {
source: "iana"
},
"application/vnd.ocf+cbor": {
source: "iana"
},
"application/vnd.oci.image.manifest.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.oftn.l10n+json": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessdownload+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessstreaming+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.cspg-hexbinary": {
source: "iana"
},
"application/vnd.oipf.dae.svg+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.dae.xhtml+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.mippvcontrolmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.pae.gem": {
source: "iana"
},
"application/vnd.oipf.spdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.spdlist+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.ueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.userprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.olpc-sugar": {
source: "iana",
extensions: ["xo"]
},
"application/vnd.oma-scws-config": {
source: "iana"
},
"application/vnd.oma-scws-http-request": {
source: "iana"
},
"application/vnd.oma-scws-http-response": {
source: "iana"
},
"application/vnd.oma.bcast.associated-procedure-parameter+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.drm-trigger+xml": {
source: "apache",
compressible: true
},
"application/vnd.oma.bcast.imd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.ltkm": {
source: "iana"
},
"application/vnd.oma.bcast.notification+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.provisioningtrigger": {
source: "iana"
},
"application/vnd.oma.bcast.sgboot": {
source: "iana"
},
"application/vnd.oma.bcast.sgdd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.sgdu": {
source: "iana"
},
"application/vnd.oma.bcast.simple-symbol-container": {
source: "iana"
},
"application/vnd.oma.bcast.smartcard-trigger+xml": {
source: "apache",
compressible: true
},
"application/vnd.oma.bcast.sprov+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.stkm": {
source: "iana"
},
"application/vnd.oma.cab-address-book+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-feature-handler+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-pcc+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-subs-invite+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-user-prefs+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.dcd": {
source: "iana"
},
"application/vnd.oma.dcdc": {
source: "iana"
},
"application/vnd.oma.dd2+xml": {
source: "iana",
compressible: true,
extensions: ["dd2"]
},
"application/vnd.oma.drm.risd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.group-usage-list+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+cbor": {
source: "iana"
},
"application/vnd.oma.lwm2m+json": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+tlv": {
source: "iana"
},
"application/vnd.oma.pal+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.detailed-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.final-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.groups+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.invocation-descriptor+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.optimized-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.push": {
source: "iana"
},
"application/vnd.oma.scidm.messages+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.xcap-directory+xml": {
source: "iana",
compressible: true
},
"application/vnd.omads-email+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-file+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-folder+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omaloc-supl-init": {
source: "iana"
},
"application/vnd.onepager": {
source: "iana"
},
"application/vnd.onepagertamp": {
source: "iana"
},
"application/vnd.onepagertamx": {
source: "iana"
},
"application/vnd.onepagertat": {
source: "iana"
},
"application/vnd.onepagertatp": {
source: "iana"
},
"application/vnd.onepagertatx": {
source: "iana"
},
"application/vnd.onvif.metadata": {
source: "iana"
},
"application/vnd.openblox.game+xml": {
source: "iana",
compressible: true,
extensions: ["obgx"]
},
"application/vnd.openblox.game-binary": {
source: "iana"
},
"application/vnd.openeye.oeb": {
source: "iana"
},
"application/vnd.openofficeorg.extension": {
source: "apache",
extensions: ["oxt"]
},
"application/vnd.openstreetmap.data+xml": {
source: "iana",
compressible: true,
extensions: ["osm"]
},
"application/vnd.opentimestamps.ots": {
source: "iana"
},
"application/vnd.openvpi.dspx+json": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.custom-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawing+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.extended-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation": {
source: "iana",
compressible: false,
extensions: ["pptx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slide": {
source: "iana",
extensions: ["sldx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
source: "iana",
extensions: ["ppsx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.template": {
source: "iana",
extensions: ["potx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
source: "iana",
compressible: false,
extensions: ["xlsx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
source: "iana",
extensions: ["xltx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.theme+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.themeoverride+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.vmldrawing": {
source: "iana"
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
source: "iana",
compressible: false,
extensions: ["docx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
source: "iana",
extensions: ["dotx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.core-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.relationships+xml": {
source: "iana",
compressible: true
},
"application/vnd.oracle.resource+json": {
source: "iana",
compressible: true
},
"application/vnd.orange.indata": {
source: "iana"
},
"application/vnd.osa.netdeploy": {
source: "iana"
},
"application/vnd.osgeo.mapguide.package": {
source: "iana",
extensions: ["mgp"]
},
"application/vnd.osgi.bundle": {
source: "iana"
},
"application/vnd.osgi.dp": {
source: "iana",
extensions: ["dp"]
},
"application/vnd.osgi.subsystem": {
source: "iana",
extensions: ["esa"]
},
"application/vnd.otps.ct-kip+xml": {
source: "iana",
compressible: true
},
"application/vnd.oxli.countgraph": {
source: "iana"
},
"application/vnd.pagerduty+json": {
source: "iana",
compressible: true
},
"application/vnd.palm": {
source: "iana",
extensions: ["pdb", "pqa", "oprc"]
},
"application/vnd.panoply": {
source: "iana"
},
"application/vnd.paos.xml": {
source: "iana"
},
"application/vnd.patentdive": {
source: "iana"
},
"application/vnd.patientecommsdoc": {
source: "iana"
},
"application/vnd.pawaafile": {
source: "iana",
extensions: ["paw"]
},
"application/vnd.pcos": {
source: "iana"
},
"application/vnd.pg.format": {
source: "iana",
extensions: ["str"]
},
"application/vnd.pg.osasli": {
source: "iana",
extensions: ["ei6"]
},
"application/vnd.piaccess.application-licence": {
source: "iana"
},
"application/vnd.picsel": {
source: "iana",
extensions: ["efif"]
},
"application/vnd.pmi.widget": {
source: "iana",
extensions: ["wg"]
},
"application/vnd.poc.group-advertisement+xml": {
source: "iana",
compressible: true
},
"application/vnd.pocketlearn": {
source: "iana",
extensions: ["plf"]
},
"application/vnd.powerbuilder6": {
source: "iana",
extensions: ["pbd"]
},
"application/vnd.powerbuilder6-s": {
source: "iana"
},
"application/vnd.powerbuilder7": {
source: "iana"
},
"application/vnd.powerbuilder7-s": {
source: "iana"
},
"application/vnd.powerbuilder75": {
source: "iana"
},
"application/vnd.powerbuilder75-s": {
source: "iana"
},
"application/vnd.preminet": {
source: "iana"
},
"application/vnd.previewsystems.box": {
source: "iana",
extensions: ["box"]
},
"application/vnd.procrate.brushset": {
extensions: ["brushset"]
},
"application/vnd.procreate.brush": {
extensions: ["brush"]
},
"application/vnd.procreate.dream": {
extensions: ["drm"]
},
"application/vnd.proteus.magazine": {
source: "iana",
extensions: ["mgz"]
},
"application/vnd.psfs": {
source: "iana"
},
"application/vnd.pt.mundusmundi": {
source: "iana"
},
"application/vnd.publishare-delta-tree": {
source: "iana",
extensions: ["qps"]
},
"application/vnd.pvi.ptid1": {
source: "iana",
extensions: ["ptid"]
},
"application/vnd.pwg-multiplexed": {
source: "iana"
},
"application/vnd.pwg-xhtml-print+xml": {
source: "iana",
compressible: true,
extensions: ["xhtm"]
},
"application/vnd.qualcomm.brew-app-res": {
source: "iana"
},
"application/vnd.quarantainenet": {
source: "iana"
},
"application/vnd.quark.quarkxpress": {
source: "iana",
extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"]
},
"application/vnd.quobject-quoxdocument": {
source: "iana"
},
"application/vnd.radisys.moml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conn+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-stream+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-base+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-detect+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-group+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-speech+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-transform+xml": {
source: "iana",
compressible: true
},
"application/vnd.rainstor.data": {
source: "iana"
},
"application/vnd.rapid": {
source: "iana"
},
"application/vnd.rar": {
source: "iana",
extensions: ["rar"]
},
"application/vnd.realvnc.bed": {
source: "iana",
extensions: ["bed"]
},
"application/vnd.recordare.musicxml": {
source: "iana",
extensions: ["mxl"]
},
"application/vnd.recordare.musicxml+xml": {
source: "iana",
compressible: true,
extensions: ["musicxml"]
},
"application/vnd.relpipe": {
source: "iana"
},
"application/vnd.renlearn.rlprint": {
source: "iana"
},
"application/vnd.resilient.logic": {
source: "iana"
},
"application/vnd.restful+json": {
source: "iana",
compressible: true
},
"application/vnd.rig.cryptonote": {
source: "iana",
extensions: ["cryptonote"]
},
"application/vnd.rim.cod": {
source: "apache",
extensions: ["cod"]
},
"application/vnd.rn-realmedia": {
source: "apache",
extensions: ["rm"]
},
"application/vnd.rn-realmedia-vbr": {
source: "apache",
extensions: ["rmvb"]
},
"application/vnd.route66.link66+xml": {
source: "iana",
compressible: true,
extensions: ["link66"]
},
"application/vnd.rs-274x": {
source: "iana"
},
"application/vnd.ruckus.download": {
source: "iana"
},
"application/vnd.s3sms": {
source: "iana"
},
"application/vnd.sailingtracker.track": {
source: "iana",
extensions: ["st"]
},
"application/vnd.sar": {
source: "iana"
},
"application/vnd.sbm.cid": {
source: "iana"
},
"application/vnd.sbm.mid2": {
source: "iana"
},
"application/vnd.scribus": {
source: "iana"
},
"application/vnd.sealed.3df": {
source: "iana"
},
"application/vnd.sealed.csf": {
source: "iana"
},
"application/vnd.sealed.doc": {
source: "iana"
},
"application/vnd.sealed.eml": {
source: "iana"
},
"application/vnd.sealed.mht": {
source: "iana"
},
"application/vnd.sealed.net": {
source: "iana"
},
"application/vnd.sealed.ppt": {
source: "iana"
},
"application/vnd.sealed.tiff": {
source: "iana"
},
"application/vnd.sealed.xls": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.html": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.pdf": {
source: "iana"
},
"application/vnd.seemail": {
source: "iana",
extensions: ["see"]
},
"application/vnd.seis+json": {
source: "iana",
compressible: true
},
"application/vnd.sema": {
source: "iana",
extensions: ["sema"]
},
"application/vnd.semd": {
source: "iana",
extensions: ["semd"]
},
"application/vnd.semf": {
source: "iana",
extensions: ["semf"]
},
"application/vnd.shade-save-file": {
source: "iana"
},
"application/vnd.shana.informed.formdata": {
source: "iana",
extensions: ["ifm"]
},
"application/vnd.shana.informed.formtemplate": {
source: "iana",
extensions: ["itp"]
},
"application/vnd.shana.informed.interchange": {
source: "iana",
extensions: ["iif"]
},
"application/vnd.shana.informed.package": {
source: "iana",
extensions: ["ipk"]
},
"application/vnd.shootproof+json": {
source: "iana",
compressible: true
},
"application/vnd.shopkick+json": {
source: "iana",
compressible: true
},
"application/vnd.shp": {
source: "iana"
},
"application/vnd.shx": {
source: "iana"
},
"application/vnd.sigrok.session": {
source: "iana"
},
"application/vnd.simtech-mindmapper": {
source: "iana",
extensions: ["twd", "twds"]
},
"application/vnd.siren+json": {
source: "iana",
compressible: true
},
"application/vnd.sketchometry": {
source: "iana"
},
"application/vnd.smaf": {
source: "iana",
extensions: ["mmf"]
},
"application/vnd.smart.notebook": {
source: "iana"
},
"application/vnd.smart.teacher": {
source: "iana",
extensions: ["teacher"]
},
"application/vnd.smintio.portals.archive": {
source: "iana"
},
"application/vnd.snesdev-page-table": {
source: "iana"
},
"application/vnd.software602.filler.form+xml": {
source: "iana",
compressible: true,
extensions: ["fo"]
},
"application/vnd.software602.filler.form-xml-zip": {
source: "iana"
},
"application/vnd.solent.sdkm+xml": {
source: "iana",
compressible: true,
extensions: ["sdkm", "sdkd"]
},
"application/vnd.spotfire.dxp": {
source: "iana",
extensions: ["dxp"]
},
"application/vnd.spotfire.sfs": {
source: "iana",
extensions: ["sfs"]
},
"application/vnd.sqlite3": {
source: "iana"
},
"application/vnd.sss-cod": {
source: "iana"
},
"application/vnd.sss-dtf": {
source: "iana"
},
"application/vnd.sss-ntf": {
source: "iana"
},
"application/vnd.stardivision.calc": {
source: "apache",
extensions: ["sdc"]
},
"application/vnd.stardivision.draw": {
source: "apache",
extensions: ["sda"]
},
"application/vnd.stardivision.impress": {
source: "apache",
extensions: ["sdd"]
},
"application/vnd.stardivision.math": {
source: "apache",
extensions: ["smf"]
},
"application/vnd.stardivision.writer": {
source: "apache",
extensions: ["sdw", "vor"]
},
"application/vnd.stardivision.writer-global": {
source: "apache",
extensions: ["sgl"]
},
"application/vnd.stepmania.package": {
source: "iana",
extensions: ["smzip"]
},
"application/vnd.stepmania.stepchart": {
source: "iana",
extensions: ["sm"]
},
"application/vnd.street-stream": {
source: "iana"
},
"application/vnd.sun.wadl+xml": {
source: "iana",
compressible: true,
extensions: ["wadl"]
},
"application/vnd.sun.xml.calc": {
source: "apache",
extensions: ["sxc"]
},
"application/vnd.sun.xml.calc.template": {
source: "apache",
extensions: ["stc"]
},
"application/vnd.sun.xml.draw": {
source: "apache",
extensions: ["sxd"]
},
"application/vnd.sun.xml.draw.template": {
source: "apache",
extensions: ["std"]
},
"application/vnd.sun.xml.impress": {
source: "apache",
extensions: ["sxi"]
},
"application/vnd.sun.xml.impress.template": {
source: "apache",
extensions: ["sti"]
},
"application/vnd.sun.xml.math": {
source: "apache",
extensions: ["sxm"]
},
"application/vnd.sun.xml.writer": {
source: "apache",
extensions: ["sxw"]
},
"application/vnd.sun.xml.writer.global": {
source: "apache",
extensions: ["sxg"]
},
"application/vnd.sun.xml.writer.template": {
source: "apache",
extensions: ["stw"]
},
"application/vnd.sus-calendar": {
source: "iana",
extensions: ["sus", "susp"]
},
"application/vnd.svd": {
source: "iana",
extensions: ["svd"]
},
"application/vnd.swiftview-ics": {
source: "iana"
},
"application/vnd.sybyl.mol2": {
source: "iana"
},
"application/vnd.sycle+xml": {
source: "iana",
compressible: true
},
"application/vnd.syft+json": {
source: "iana",
compressible: true
},
"application/vnd.symbian.install": {
source: "apache",
extensions: ["sis", "sisx"]
},
"application/vnd.syncml+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xsm"]
},
"application/vnd.syncml.dm+wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["bdm"]
},
"application/vnd.syncml.dm+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xdm"]
},
"application/vnd.syncml.dm.notification": {
source: "iana"
},
"application/vnd.syncml.dmddf+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmddf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["ddf"]
},
"application/vnd.syncml.dmtnds+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmtnds+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.syncml.ds.notification": {
source: "iana"
},
"application/vnd.tableschema+json": {
source: "iana",
compressible: true
},
"application/vnd.tao.intent-module-archive": {
source: "iana",
extensions: ["tao"]
},
"application/vnd.tcpdump.pcap": {
source: "iana",
extensions: ["pcap", "cap", "dmp"]
},
"application/vnd.think-cell.ppttc+json": {
source: "iana",
compressible: true
},
"application/vnd.tmd.mediaflex.api+xml": {
source: "iana",
compressible: true
},
"application/vnd.tml": {
source: "iana"
},
"application/vnd.tmobile-livetv": {
source: "iana",
extensions: ["tmo"]
},
"application/vnd.tri.onesource": {
source: "iana"
},
"application/vnd.trid.tpt": {
source: "iana",
extensions: ["tpt"]
},
"application/vnd.triscape.mxs": {
source: "iana",
extensions: ["mxs"]
},
"application/vnd.trueapp": {
source: "iana",
extensions: ["tra"]
},
"application/vnd.truedoc": {
source: "iana"
},
"application/vnd.ubisoft.webplayer": {
source: "iana"
},
"application/vnd.ufdl": {
source: "iana",
extensions: ["ufd", "ufdl"]
},
"application/vnd.uic.osdm+json": {
source: "iana",
compressible: true
},
"application/vnd.uiq.theme": {
source: "iana",
extensions: ["utz"]
},
"application/vnd.umajin": {
source: "iana",
extensions: ["umj"]
},
"application/vnd.unity": {
source: "iana",
extensions: ["unityweb"]
},
"application/vnd.uoml+xml": {
source: "iana",
compressible: true,
extensions: ["uoml", "uo"]
},
"application/vnd.uplanet.alert": {
source: "iana"
},
"application/vnd.uplanet.alert-wbxml": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice-wbxml": {
source: "iana"
},
"application/vnd.uplanet.cacheop": {
source: "iana"
},
"application/vnd.uplanet.cacheop-wbxml": {
source: "iana"
},
"application/vnd.uplanet.channel": {
source: "iana"
},
"application/vnd.uplanet.channel-wbxml": {
source: "iana"
},
"application/vnd.uplanet.list": {
source: "iana"
},
"application/vnd.uplanet.list-wbxml": {
source: "iana"
},
"application/vnd.uplanet.listcmd": {
source: "iana"
},
"application/vnd.uplanet.listcmd-wbxml": {
source: "iana"
},
"application/vnd.uplanet.signal": {
source: "iana"
},
"application/vnd.uri-map": {
source: "iana"
},
"application/vnd.valve.source.material": {
source: "iana"
},
"application/vnd.vcx": {
source: "iana",
extensions: ["vcx"]
},
"application/vnd.vd-study": {
source: "iana"
},
"application/vnd.vectorworks": {
source: "iana"
},
"application/vnd.vel+json": {
source: "iana",
compressible: true
},
"application/vnd.veraison.tsm-report+cbor": {
source: "iana"
},
"application/vnd.veraison.tsm-report+json": {
source: "iana",
compressible: true
},
"application/vnd.verimatrix.vcas": {
source: "iana"
},
"application/vnd.veritone.aion+json": {
source: "iana",
compressible: true
},
"application/vnd.veryant.thin": {
source: "iana"
},
"application/vnd.ves.encrypted": {
source: "iana"
},
"application/vnd.vidsoft.vidconference": {
source: "iana"
},
"application/vnd.visio": {
source: "iana",
extensions: ["vsd", "vst", "vss", "vsw", "vsdx", "vtx"]
},
"application/vnd.visionary": {
source: "iana",
extensions: ["vis"]
},
"application/vnd.vividence.scriptfile": {
source: "iana"
},
"application/vnd.vocalshaper.vsp4": {
source: "iana"
},
"application/vnd.vsf": {
source: "iana",
extensions: ["vsf"]
},
"application/vnd.wap.sic": {
source: "iana"
},
"application/vnd.wap.slc": {
source: "iana"
},
"application/vnd.wap.wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["wbxml"]
},
"application/vnd.wap.wmlc": {
source: "iana",
extensions: ["wmlc"]
},
"application/vnd.wap.wmlscriptc": {
source: "iana",
extensions: ["wmlsc"]
},
"application/vnd.wasmflow.wafl": {
source: "iana"
},
"application/vnd.webturbo": {
source: "iana",
extensions: ["wtb"]
},
"application/vnd.wfa.dpp": {
source: "iana"
},
"application/vnd.wfa.p2p": {
source: "iana"
},
"application/vnd.wfa.wsc": {
source: "iana"
},
"application/vnd.windows.devicepairing": {
source: "iana"
},
"application/vnd.wmc": {
source: "iana"
},
"application/vnd.wmf.bootstrap": {
source: "iana"
},
"application/vnd.wolfram.mathematica": {
source: "iana"
},
"application/vnd.wolfram.mathematica.package": {
source: "iana"
},
"application/vnd.wolfram.player": {
source: "iana",
extensions: ["nbp"]
},
"application/vnd.wordlift": {
source: "iana"
},
"application/vnd.wordperfect": {
source: "iana",
extensions: ["wpd"]
},
"application/vnd.wqd": {
source: "iana",
extensions: ["wqd"]
},
"application/vnd.wrq-hp3000-labelled": {
source: "iana"
},
"application/vnd.wt.stf": {
source: "iana",
extensions: ["stf"]
},
"application/vnd.wv.csp+wbxml": {
source: "iana"
},
"application/vnd.wv.csp+xml": {
source: "iana",
compressible: true
},
"application/vnd.wv.ssp+xml": {
source: "iana",
compressible: true
},
"application/vnd.xacml+json": {
source: "iana",
compressible: true
},
"application/vnd.xara": {
source: "iana",
extensions: ["xar"]
},
"application/vnd.xarin.cpj": {
source: "iana"
},
"application/vnd.xecrets-encrypted": {
source: "iana"
},
"application/vnd.xfdl": {
source: "iana",
extensions: ["xfdl"]
},
"application/vnd.xfdl.webform": {
source: "iana"
},
"application/vnd.xmi+xml": {
source: "iana",
compressible: true
},
"application/vnd.xmpie.cpkg": {
source: "iana"
},
"application/vnd.xmpie.dpkg": {
source: "iana"
},
"application/vnd.xmpie.plan": {
source: "iana"
},
"application/vnd.xmpie.ppkg": {
source: "iana"
},
"application/vnd.xmpie.xlim": {
source: "iana"
},
"application/vnd.yamaha.hv-dic": {
source: "iana",
extensions: ["hvd"]
},
"application/vnd.yamaha.hv-script": {
source: "iana",
extensions: ["hvs"]
},
"application/vnd.yamaha.hv-voice": {
source: "iana",
extensions: ["hvp"]
},
"application/vnd.yamaha.openscoreformat": {
source: "iana",
extensions: ["osf"]
},
"application/vnd.yamaha.openscoreformat.osfpvg+xml": {
source: "iana",
compressible: true,
extensions: ["osfpvg"]
},
"application/vnd.yamaha.remote-setup": {
source: "iana"
},
"application/vnd.yamaha.smaf-audio": {
source: "iana",
extensions: ["saf"]
},
"application/vnd.yamaha.smaf-phrase": {
source: "iana",
extensions: ["spf"]
},
"application/vnd.yamaha.through-ngn": {
source: "iana"
},
"application/vnd.yamaha.tunnel-udpencap": {
source: "iana"
},
"application/vnd.yaoweme": {
source: "iana"
},
"application/vnd.yellowriver-custom-menu": {
source: "iana",
extensions: ["cmp"]
},
"application/vnd.zul": {
source: "iana",
extensions: ["zir", "zirz"]
},
"application/vnd.zzazz.deck+xml": {
source: "iana",
compressible: true,
extensions: ["zaz"]
},
"application/voicexml+xml": {
source: "iana",
compressible: true,
extensions: ["vxml"]
},
"application/voucher-cms+json": {
source: "iana",
compressible: true
},
"application/voucher-jws+json": {
source: "iana",
compressible: true
},
"application/vp": {
source: "iana"
},
"application/vp+cose": {
source: "iana"
},
"application/vp+jwt": {
source: "iana"
},
"application/vq-rtcpxr": {
source: "iana"
},
"application/wasm": {
source: "iana",
compressible: true,
extensions: ["wasm"]
},
"application/watcherinfo+xml": {
source: "iana",
compressible: true,
extensions: ["wif"]
},
"application/webpush-options+json": {
source: "iana",
compressible: true
},
"application/whoispp-query": {
source: "iana"
},
"application/whoispp-response": {
source: "iana"
},
"application/widget": {
source: "iana",
extensions: ["wgt"]
},
"application/winhlp": {
source: "apache",
extensions: ["hlp"]
},
"application/wita": {
source: "iana"
},
"application/wordperfect5.1": {
source: "iana"
},
"application/wsdl+xml": {
source: "iana",
compressible: true,
extensions: ["wsdl"]
},
"application/wspolicy+xml": {
source: "iana",
compressible: true,
extensions: ["wspolicy"]
},
"application/x-7z-compressed": {
source: "apache",
compressible: false,
extensions: ["7z"]
},
"application/x-abiword": {
source: "apache",
extensions: ["abw"]
},
"application/x-ace-compressed": {
source: "apache",
extensions: ["ace"]
},
"application/x-amf": {
source: "apache"
},
"application/x-apple-diskimage": {
source: "apache",
extensions: ["dmg"]
},
"application/x-arj": {
compressible: false,
extensions: ["arj"]
},
"application/x-authorware-bin": {
source: "apache",
extensions: ["aab", "x32", "u32", "vox"]
},
"application/x-authorware-map": {
source: "apache",
extensions: ["aam"]
},
"application/x-authorware-seg": {
source: "apache",
extensions: ["aas"]
},
"application/x-bcpio": {
source: "apache",
extensions: ["bcpio"]
},
"application/x-bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/x-bittorrent": {
source: "apache",
extensions: ["torrent"]
},
"application/x-blender": {
extensions: ["blend"]
},
"application/x-blorb": {
source: "apache",
extensions: ["blb", "blorb"]
},
"application/x-bzip": {
source: "apache",
compressible: false,
extensions: ["bz"]
},
"application/x-bzip2": {
source: "apache",
compressible: false,
extensions: ["bz2", "boz"]
},
"application/x-cbr": {
source: "apache",
extensions: ["cbr", "cba", "cbt", "cbz", "cb7"]
},
"application/x-cdlink": {
source: "apache",
extensions: ["vcd"]
},
"application/x-cfs-compressed": {
source: "apache",
extensions: ["cfs"]
},
"application/x-chat": {
source: "apache",
extensions: ["chat"]
},
"application/x-chess-pgn": {
source: "apache",
extensions: ["pgn"]
},
"application/x-chrome-extension": {
extensions: ["crx"]
},
"application/x-cocoa": {
source: "nginx",
extensions: ["cco"]
},
"application/x-compress": {
source: "apache"
},
"application/x-compressed": {
extensions: ["rar"]
},
"application/x-conference": {
source: "apache",
extensions: ["nsc"]
},
"application/x-cpio": {
source: "apache",
extensions: ["cpio"]
},
"application/x-csh": {
source: "apache",
extensions: ["csh"]
},
"application/x-deb": {
compressible: false
},
"application/x-debian-package": {
source: "apache",
extensions: ["deb", "udeb"]
},
"application/x-dgc-compressed": {
source: "apache",
extensions: ["dgc"]
},
"application/x-director": {
source: "apache",
extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"]
},
"application/x-doom": {
source: "apache",
extensions: ["wad"]
},
"application/x-dtbncx+xml": {
source: "apache",
compressible: true,
extensions: ["ncx"]
},
"application/x-dtbook+xml": {
source: "apache",
compressible: true,
extensions: ["dtb"]
},
"application/x-dtbresource+xml": {
source: "apache",
compressible: true,
extensions: ["res"]
},
"application/x-dvi": {
source: "apache",
compressible: false,
extensions: ["dvi"]
},
"application/x-envoy": {
source: "apache",
extensions: ["evy"]
},
"application/x-eva": {
source: "apache",
extensions: ["eva"]
},
"application/x-font-bdf": {
source: "apache",
extensions: ["bdf"]
},
"application/x-font-dos": {
source: "apache"
},
"application/x-font-framemaker": {
source: "apache"
},
"application/x-font-ghostscript": {
source: "apache",
extensions: ["gsf"]
},
"application/x-font-libgrx": {
source: "apache"
},
"application/x-font-linux-psf": {
source: "apache",
extensions: ["psf"]
},
"application/x-font-pcf": {
source: "apache",
extensions: ["pcf"]
},
"application/x-font-snf": {
source: "apache",
extensions: ["snf"]
},
"application/x-font-speedo": {
source: "apache"
},
"application/x-font-sunos-news": {
source: "apache"
},
"application/x-font-type1": {
source: "apache",
extensions: ["pfa", "pfb", "pfm", "afm"]
},
"application/x-font-vfont": {
source: "apache"
},
"application/x-freearc": {
source: "apache",
extensions: ["arc"]
},
"application/x-futuresplash": {
source: "apache",
extensions: ["spl"]
},
"application/x-gca-compressed": {
source: "apache",
extensions: ["gca"]
},
"application/x-glulx": {
source: "apache",
extensions: ["ulx"]
},
"application/x-gnumeric": {
source: "apache",
extensions: ["gnumeric"]
},
"application/x-gramps-xml": {
source: "apache",
extensions: ["gramps"]
},
"application/x-gtar": {
source: "apache",
extensions: ["gtar"]
},
"application/x-gzip": {
source: "apache"
},
"application/x-hdf": {
source: "apache",
extensions: ["hdf"]
},
"application/x-httpd-php": {
compressible: true,
extensions: ["php"]
},
"application/x-install-instructions": {
source: "apache",
extensions: ["install"]
},
"application/x-ipynb+json": {
compressible: true,
extensions: ["ipynb"]
},
"application/x-iso9660-image": {
source: "apache",
extensions: ["iso"]
},
"application/x-iwork-keynote-sffkey": {
extensions: ["key"]
},
"application/x-iwork-numbers-sffnumbers": {
extensions: ["numbers"]
},
"application/x-iwork-pages-sffpages": {
extensions: ["pages"]
},
"application/x-java-archive-diff": {
source: "nginx",
extensions: ["jardiff"]
},
"application/x-java-jnlp-file": {
source: "apache",
compressible: false,
extensions: ["jnlp"]
},
"application/x-javascript": {
compressible: true
},
"application/x-keepass2": {
extensions: ["kdbx"]
},
"application/x-latex": {
source: "apache",
compressible: false,
extensions: ["latex"]
},
"application/x-lua-bytecode": {
extensions: ["luac"]
},
"application/x-lzh-compressed": {
source: "apache",
extensions: ["lzh", "lha"]
},
"application/x-makeself": {
source: "nginx",
extensions: ["run"]
},
"application/x-mie": {
source: "apache",
extensions: ["mie"]
},
"application/x-mobipocket-ebook": {
source: "apache",
extensions: ["prc", "mobi"]
},
"application/x-mpegurl": {
compressible: false
},
"application/x-ms-application": {
source: "apache",
extensions: ["application"]
},
"application/x-ms-shortcut": {
source: "apache",
extensions: ["lnk"]
},
"application/x-ms-wmd": {
source: "apache",
extensions: ["wmd"]
},
"application/x-ms-wmz": {
source: "apache",
extensions: ["wmz"]
},
"application/x-ms-xbap": {
source: "apache",
extensions: ["xbap"]
},
"application/x-msaccess": {
source: "apache",
extensions: ["mdb"]
},
"application/x-msbinder": {
source: "apache",
extensions: ["obd"]
},
"application/x-mscardfile": {
source: "apache",
extensions: ["crd"]
},
"application/x-msclip": {
source: "apache",
extensions: ["clp"]
},
"application/x-msdos-program": {
extensions: ["exe"]
},
"application/x-msdownload": {
source: "apache",
extensions: ["exe", "dll", "com", "bat", "msi"]
},
"application/x-msmediaview": {
source: "apache",
extensions: ["mvb", "m13", "m14"]
},
"application/x-msmetafile": {
source: "apache",
extensions: ["wmf", "wmz", "emf", "emz"]
},
"application/x-msmoney": {
source: "apache",
extensions: ["mny"]
},
"application/x-mspublisher": {
source: "apache",
extensions: ["pub"]
},
"application/x-msschedule": {
source: "apache",
extensions: ["scd"]
},
"application/x-msterminal": {
source: "apache",
extensions: ["trm"]
},
"application/x-mswrite": {
source: "apache",
extensions: ["wri"]
},
"application/x-netcdf": {
source: "apache",
extensions: ["nc", "cdf"]
},
"application/x-ns-proxy-autoconfig": {
compressible: true,
extensions: ["pac"]
},
"application/x-nzb": {
source: "apache",
extensions: ["nzb"]
},
"application/x-perl": {
source: "nginx",
extensions: ["pl", "pm"]
},
"application/x-pilot": {
source: "nginx",
extensions: ["prc", "pdb"]
},
"application/x-pkcs12": {
source: "apache",
compressible: false,
extensions: ["p12", "pfx"]
},
"application/x-pkcs7-certificates": {
source: "apache",
extensions: ["p7b", "spc"]
},
"application/x-pkcs7-certreqresp": {
source: "apache",
extensions: ["p7r"]
},
"application/x-pki-message": {
source: "iana"
},
"application/x-rar-compressed": {
source: "apache",
compressible: false,
extensions: ["rar"]
},
"application/x-redhat-package-manager": {
source: "nginx",
extensions: ["rpm"]
},
"application/x-research-info-systems": {
source: "apache",
extensions: ["ris"]
},
"application/x-sea": {
source: "nginx",
extensions: ["sea"]
},
"application/x-sh": {
source: "apache",
compressible: true,
extensions: ["sh"]
},
"application/x-shar": {
source: "apache",
extensions: ["shar"]
},
"application/x-shockwave-flash": {
source: "apache",
compressible: false,
extensions: ["swf"]
},
"application/x-silverlight-app": {
source: "apache",
extensions: ["xap"]
},
"application/x-sql": {
source: "apache",
extensions: ["sql"]
},
"application/x-stuffit": {
source: "apache",
compressible: false,
extensions: ["sit"]
},
"application/x-stuffitx": {
source: "apache",
extensions: ["sitx"]
},
"application/x-subrip": {
source: "apache",
extensions: ["srt"]
},
"application/x-sv4cpio": {
source: "apache",
extensions: ["sv4cpio"]
},
"application/x-sv4crc": {
source: "apache",
extensions: ["sv4crc"]
},
"application/x-t3vm-image": {
source: "apache",
extensions: ["t3"]
},
"application/x-tads": {
source: "apache",
extensions: ["gam"]
},
"application/x-tar": {
source: "apache",
compressible: true,
extensions: ["tar"]
},
"application/x-tcl": {
source: "apache",
extensions: ["tcl", "tk"]
},
"application/x-tex": {
source: "apache",
extensions: ["tex"]
},
"application/x-tex-tfm": {
source: "apache",
extensions: ["tfm"]
},
"application/x-texinfo": {
source: "apache",
extensions: ["texinfo", "texi"]
},
"application/x-tgif": {
source: "apache",
extensions: ["obj"]
},
"application/x-ustar": {
source: "apache",
extensions: ["ustar"]
},
"application/x-virtualbox-hdd": {
compressible: true,
extensions: ["hdd"]
},
"application/x-virtualbox-ova": {
compressible: true,
extensions: ["ova"]
},
"application/x-virtualbox-ovf": {
compressible: true,
extensions: ["ovf"]
},
"application/x-virtualbox-vbox": {
compressible: true,
extensions: ["vbox"]
},
"application/x-virtualbox-vbox-extpack": {
compressible: false,
extensions: ["vbox-extpack"]
},
"application/x-virtualbox-vdi": {
compressible: true,
extensions: ["vdi"]
},
"application/x-virtualbox-vhd": {
compressible: true,
extensions: ["vhd"]
},
"application/x-virtualbox-vmdk": {
compressible: true,
extensions: ["vmdk"]
},
"application/x-wais-source": {
source: "apache",
extensions: ["src"]
},
"application/x-web-app-manifest+json": {
compressible: true,
extensions: ["webapp"]
},
"application/x-www-form-urlencoded": {
source: "iana",
compressible: true
},
"application/x-x509-ca-cert": {
source: "iana",
extensions: ["der", "crt", "pem"]
},
"application/x-x509-ca-ra-cert": {
source: "iana"
},
"application/x-x509-next-ca-cert": {
source: "iana"
},
"application/x-xfig": {
source: "apache",
extensions: ["fig"]
},
"application/x-xliff+xml": {
source: "apache",
compressible: true,
extensions: ["xlf"]
},
"application/x-xpinstall": {
source: "apache",
compressible: false,
extensions: ["xpi"]
},
"application/x-xz": {
source: "apache",
extensions: ["xz"]
},
"application/x-zip-compressed": {
extensions: ["zip"]
},
"application/x-zmachine": {
source: "apache",
extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"]
},
"application/x400-bp": {
source: "iana"
},
"application/xacml+xml": {
source: "iana",
compressible: true
},
"application/xaml+xml": {
source: "apache",
compressible: true,
extensions: ["xaml"]
},
"application/xcap-att+xml": {
source: "iana",
compressible: true,
extensions: ["xav"]
},
"application/xcap-caps+xml": {
source: "iana",
compressible: true,
extensions: ["xca"]
},
"application/xcap-diff+xml": {
source: "iana",
compressible: true,
extensions: ["xdf"]
},
"application/xcap-el+xml": {
source: "iana",
compressible: true,
extensions: ["xel"]
},
"application/xcap-error+xml": {
source: "iana",
compressible: true
},
"application/xcap-ns+xml": {
source: "iana",
compressible: true,
extensions: ["xns"]
},
"application/xcon-conference-info+xml": {
source: "iana",
compressible: true
},
"application/xcon-conference-info-diff+xml": {
source: "iana",
compressible: true
},
"application/xenc+xml": {
source: "iana",
compressible: true,
extensions: ["xenc"]
},
"application/xfdf": {
source: "iana",
extensions: ["xfdf"]
},
"application/xhtml+xml": {
source: "iana",
compressible: true,
extensions: ["xhtml", "xht"]
},
"application/xhtml-voice+xml": {
source: "apache",
compressible: true
},
"application/xliff+xml": {
source: "iana",
compressible: true,
extensions: ["xlf"]
},
"application/xml": {
source: "iana",
compressible: true,
extensions: ["xml", "xsl", "xsd", "rng"]
},
"application/xml-dtd": {
source: "iana",
compressible: true,
extensions: ["dtd"]
},
"application/xml-external-parsed-entity": {
source: "iana"
},
"application/xml-patch+xml": {
source: "iana",
compressible: true
},
"application/xmpp+xml": {
source: "iana",
compressible: true
},
"application/xop+xml": {
source: "iana",
compressible: true,
extensions: ["xop"]
},
"application/xproc+xml": {
source: "apache",
compressible: true,
extensions: ["xpl"]
},
"application/xslt+xml": {
source: "iana",
compressible: true,
extensions: ["xsl", "xslt"]
},
"application/xspf+xml": {
source: "apache",
compressible: true,
extensions: ["xspf"]
},
"application/xv+xml": {
source: "iana",
compressible: true,
extensions: ["mxml", "xhvml", "xvml", "xvm"]
},
"application/yaml": {
source: "iana"
},
"application/yang": {
source: "iana",
extensions: ["yang"]
},
"application/yang-data+cbor": {
source: "iana"
},
"application/yang-data+json": {
source: "iana",
compressible: true
},
"application/yang-data+xml": {
source: "iana",
compressible: true
},
"application/yang-patch+json": {
source: "iana",
compressible: true
},
"application/yang-patch+xml": {
source: "iana",
compressible: true
},
"application/yang-sid+json": {
source: "iana",
compressible: true
},
"application/yin+xml": {
source: "iana",
compressible: true,
extensions: ["yin"]
},
"application/zip": {
source: "iana",
compressible: false,
extensions: ["zip"]
},
"application/zip+dotlottie": {
extensions: ["lottie"]
},
"application/zlib": {
source: "iana"
},
"application/zstd": {
source: "iana"
},
"audio/1d-interleaved-parityfec": {
source: "iana"
},
"audio/32kadpcm": {
source: "iana"
},
"audio/3gpp": {
source: "iana",
compressible: false,
extensions: ["3gpp"]
},
"audio/3gpp2": {
source: "iana"
},
"audio/aac": {
source: "iana",
extensions: ["adts", "aac"]
},
"audio/ac3": {
source: "iana"
},
"audio/adpcm": {
source: "apache",
extensions: ["adp"]
},
"audio/amr": {
source: "iana",
extensions: ["amr"]
},
"audio/amr-wb": {
source: "iana"
},
"audio/amr-wb+": {
source: "iana"
},
"audio/aptx": {
source: "iana"
},
"audio/asc": {
source: "iana"
},
"audio/atrac-advanced-lossless": {
source: "iana"
},
"audio/atrac-x": {
source: "iana"
},
"audio/atrac3": {
source: "iana"
},
"audio/basic": {
source: "iana",
compressible: false,
extensions: ["au", "snd"]
},
"audio/bv16": {
source: "iana"
},
"audio/bv32": {
source: "iana"
},
"audio/clearmode": {
source: "iana"
},
"audio/cn": {
source: "iana"
},
"audio/dat12": {
source: "iana"
},
"audio/dls": {
source: "iana"
},
"audio/dsr-es201108": {
source: "iana"
},
"audio/dsr-es202050": {
source: "iana"
},
"audio/dsr-es202211": {
source: "iana"
},
"audio/dsr-es202212": {
source: "iana"
},
"audio/dv": {
source: "iana"
},
"audio/dvi4": {
source: "iana"
},
"audio/eac3": {
source: "iana"
},
"audio/encaprtp": {
source: "iana"
},
"audio/evrc": {
source: "iana"
},
"audio/evrc-qcp": {
source: "iana"
},
"audio/evrc0": {
source: "iana"
},
"audio/evrc1": {
source: "iana"
},
"audio/evrcb": {
source: "iana"
},
"audio/evrcb0": {
source: "iana"
},
"audio/evrcb1": {
source: "iana"
},
"audio/evrcnw": {
source: "iana"
},
"audio/evrcnw0": {
source: "iana"
},
"audio/evrcnw1": {
source: "iana"
},
"audio/evrcwb": {
source: "iana"
},
"audio/evrcwb0": {
source: "iana"
},
"audio/evrcwb1": {
source: "iana"
},
"audio/evs": {
source: "iana"
},
"audio/flac": {
source: "iana"
},
"audio/flexfec": {
source: "iana"
},
"audio/fwdred": {
source: "iana"
},
"audio/g711-0": {
source: "iana"
},
"audio/g719": {
source: "iana"
},
"audio/g722": {
source: "iana"
},
"audio/g7221": {
source: "iana"
},
"audio/g723": {
source: "iana"
},
"audio/g726-16": {
source: "iana"
},
"audio/g726-24": {
source: "iana"
},
"audio/g726-32": {
source: "iana"
},
"audio/g726-40": {
source: "iana"
},
"audio/g728": {
source: "iana"
},
"audio/g729": {
source: "iana"
},
"audio/g7291": {
source: "iana"
},
"audio/g729d": {
source: "iana"
},
"audio/g729e": {
source: "iana"
},
"audio/gsm": {
source: "iana"
},
"audio/gsm-efr": {
source: "iana"
},
"audio/gsm-hr-08": {
source: "iana"
},
"audio/ilbc": {
source: "iana"
},
"audio/ip-mr_v2.5": {
source: "iana"
},
"audio/isac": {
source: "apache"
},
"audio/l16": {
source: "iana"
},
"audio/l20": {
source: "iana"
},
"audio/l24": {
source: "iana",
compressible: false
},
"audio/l8": {
source: "iana"
},
"audio/lpc": {
source: "iana"
},
"audio/matroska": {
source: "iana"
},
"audio/melp": {
source: "iana"
},
"audio/melp1200": {
source: "iana"
},
"audio/melp2400": {
source: "iana"
},
"audio/melp600": {
source: "iana"
},
"audio/mhas": {
source: "iana"
},
"audio/midi": {
source: "apache",
extensions: ["mid", "midi", "kar", "rmi"]
},
"audio/midi-clip": {
source: "iana"
},
"audio/mobile-xmf": {
source: "iana",
extensions: ["mxmf"]
},
"audio/mp3": {
compressible: false,
extensions: ["mp3"]
},
"audio/mp4": {
source: "iana",
compressible: false,
extensions: ["m4a", "mp4a", "m4b"]
},
"audio/mp4a-latm": {
source: "iana"
},
"audio/mpa": {
source: "iana"
},
"audio/mpa-robust": {
source: "iana"
},
"audio/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"]
},
"audio/mpeg4-generic": {
source: "iana"
},
"audio/musepack": {
source: "apache"
},
"audio/ogg": {
source: "iana",
compressible: false,
extensions: ["oga", "ogg", "spx", "opus"]
},
"audio/opus": {
source: "iana"
},
"audio/parityfec": {
source: "iana"
},
"audio/pcma": {
source: "iana"
},
"audio/pcma-wb": {
source: "iana"
},
"audio/pcmu": {
source: "iana"
},
"audio/pcmu-wb": {
source: "iana"
},
"audio/prs.sid": {
source: "iana"
},
"audio/qcelp": {
source: "iana"
},
"audio/raptorfec": {
source: "iana"
},
"audio/red": {
source: "iana"
},
"audio/rtp-enc-aescm128": {
source: "iana"
},
"audio/rtp-midi": {
source: "iana"
},
"audio/rtploopback": {
source: "iana"
},
"audio/rtx": {
source: "iana"
},
"audio/s3m": {
source: "apache",
extensions: ["s3m"]
},
"audio/scip": {
source: "iana"
},
"audio/silk": {
source: "apache",
extensions: ["sil"]
},
"audio/smv": {
source: "iana"
},
"audio/smv-qcp": {
source: "iana"
},
"audio/smv0": {
source: "iana"
},
"audio/sofa": {
source: "iana"
},
"audio/sp-midi": {
source: "iana"
},
"audio/speex": {
source: "iana"
},
"audio/t140c": {
source: "iana"
},
"audio/t38": {
source: "iana"
},
"audio/telephone-event": {
source: "iana"
},
"audio/tetra_acelp": {
source: "iana"
},
"audio/tetra_acelp_bb": {
source: "iana"
},
"audio/tone": {
source: "iana"
},
"audio/tsvcis": {
source: "iana"
},
"audio/uemclip": {
source: "iana"
},
"audio/ulpfec": {
source: "iana"
},
"audio/usac": {
source: "iana"
},
"audio/vdvi": {
source: "iana"
},
"audio/vmr-wb": {
source: "iana"
},
"audio/vnd.3gpp.iufp": {
source: "iana"
},
"audio/vnd.4sb": {
source: "iana"
},
"audio/vnd.audiokoz": {
source: "iana"
},
"audio/vnd.celp": {
source: "iana"
},
"audio/vnd.cisco.nse": {
source: "iana"
},
"audio/vnd.cmles.radio-events": {
source: "iana"
},
"audio/vnd.cns.anp1": {
source: "iana"
},
"audio/vnd.cns.inf1": {
source: "iana"
},
"audio/vnd.dece.audio": {
source: "iana",
extensions: ["uva", "uvva"]
},
"audio/vnd.digital-winds": {
source: "iana",
extensions: ["eol"]
},
"audio/vnd.dlna.adts": {
source: "iana"
},
"audio/vnd.dolby.heaac.1": {
source: "iana"
},
"audio/vnd.dolby.heaac.2": {
source: "iana"
},
"audio/vnd.dolby.mlp": {
source: "iana"
},
"audio/vnd.dolby.mps": {
source: "iana"
},
"audio/vnd.dolby.pl2": {
source: "iana"
},
"audio/vnd.dolby.pl2x": {
source: "iana"
},
"audio/vnd.dolby.pl2z": {
source: "iana"
},
"audio/vnd.dolby.pulse.1": {
source: "iana"
},
"audio/vnd.dra": {
source: "iana",
extensions: ["dra"]
},
"audio/vnd.dts": {
source: "iana",
extensions: ["dts"]
},
"audio/vnd.dts.hd": {
source: "iana",
extensions: ["dtshd"]
},
"audio/vnd.dts.uhd": {
source: "iana"
},
"audio/vnd.dvb.file": {
source: "iana"
},
"audio/vnd.everad.plj": {
source: "iana"
},
"audio/vnd.hns.audio": {
source: "iana"
},
"audio/vnd.lucent.voice": {
source: "iana",
extensions: ["lvp"]
},
"audio/vnd.ms-playready.media.pya": {
source: "iana",
extensions: ["pya"]
},
"audio/vnd.nokia.mobile-xmf": {
source: "iana"
},
"audio/vnd.nortel.vbk": {
source: "iana"
},
"audio/vnd.nuera.ecelp4800": {
source: "iana",
extensions: ["ecelp4800"]
},
"audio/vnd.nuera.ecelp7470": {
source: "iana",
extensions: ["ecelp7470"]
},
"audio/vnd.nuera.ecelp9600": {
source: "iana",
extensions: ["ecelp9600"]
},
"audio/vnd.octel.sbc": {
source: "iana"
},
"audio/vnd.presonus.multitrack": {
source: "iana"
},
"audio/vnd.qcelp": {
source: "apache"
},
"audio/vnd.rhetorex.32kadpcm": {
source: "iana"
},
"audio/vnd.rip": {
source: "iana",
extensions: ["rip"]
},
"audio/vnd.rn-realaudio": {
compressible: false
},
"audio/vnd.sealedmedia.softseal.mpeg": {
source: "iana"
},
"audio/vnd.vmx.cvsd": {
source: "iana"
},
"audio/vnd.wave": {
compressible: false
},
"audio/vorbis": {
source: "iana",
compressible: false
},
"audio/vorbis-config": {
source: "iana"
},
"audio/wav": {
compressible: false,
extensions: ["wav"]
},
"audio/wave": {
compressible: false,
extensions: ["wav"]
},
"audio/webm": {
source: "apache",
compressible: false,
extensions: ["weba"]
},
"audio/x-aac": {
source: "apache",
compressible: false,
extensions: ["aac"]
},
"audio/x-aiff": {
source: "apache",
extensions: ["aif", "aiff", "aifc"]
},
"audio/x-caf": {
source: "apache",
compressible: false,
extensions: ["caf"]
},
"audio/x-flac": {
source: "apache",
extensions: ["flac"]
},
"audio/x-m4a": {
source: "nginx",
extensions: ["m4a"]
},
"audio/x-matroska": {
source: "apache",
extensions: ["mka"]
},
"audio/x-mpegurl": {
source: "apache",
extensions: ["m3u"]
},
"audio/x-ms-wax": {
source: "apache",
extensions: ["wax"]
},
"audio/x-ms-wma": {
source: "apache",
extensions: ["wma"]
},
"audio/x-pn-realaudio": {
source: "apache",
extensions: ["ram", "ra"]
},
"audio/x-pn-realaudio-plugin": {
source: "apache",
extensions: ["rmp"]
},
"audio/x-realaudio": {
source: "nginx",
extensions: ["ra"]
},
"audio/x-tta": {
source: "apache"
},
"audio/x-wav": {
source: "apache",
extensions: ["wav"]
},
"audio/xm": {
source: "apache",
extensions: ["xm"]
},
"chemical/x-cdx": {
source: "apache",
extensions: ["cdx"]
},
"chemical/x-cif": {
source: "apache",
extensions: ["cif"]
},
"chemical/x-cmdf": {
source: "apache",
extensions: ["cmdf"]
},
"chemical/x-cml": {
source: "apache",
extensions: ["cml"]
},
"chemical/x-csml": {
source: "apache",
extensions: ["csml"]
},
"chemical/x-pdb": {
source: "apache"
},
"chemical/x-xyz": {
source: "apache",
extensions: ["xyz"]
},
"font/collection": {
source: "iana",
extensions: ["ttc"]
},
"font/otf": {
source: "iana",
compressible: true,
extensions: ["otf"]
},
"font/sfnt": {
source: "iana"
},
"font/ttf": {
source: "iana",
compressible: true,
extensions: ["ttf"]
},
"font/woff": {
source: "iana",
extensions: ["woff"]
},
"font/woff2": {
source: "iana",
extensions: ["woff2"]
},
"image/aces": {
source: "iana",
extensions: ["exr"]
},
"image/apng": {
source: "iana",
compressible: false,
extensions: ["apng"]
},
"image/avci": {
source: "iana",
extensions: ["avci"]
},
"image/avcs": {
source: "iana",
extensions: ["avcs"]
},
"image/avif": {
source: "iana",
compressible: false,
extensions: ["avif"]
},
"image/bmp": {
source: "iana",
compressible: true,
extensions: ["bmp", "dib"]
},
"image/cgm": {
source: "iana",
extensions: ["cgm"]
},
"image/dicom-rle": {
source: "iana",
extensions: ["drle"]
},
"image/dpx": {
source: "iana",
extensions: ["dpx"]
},
"image/emf": {
source: "iana",
extensions: ["emf"]
},
"image/fits": {
source: "iana",
extensions: ["fits"]
},
"image/g3fax": {
source: "iana",
extensions: ["g3"]
},
"image/gif": {
source: "iana",
compressible: false,
extensions: ["gif"]
},
"image/heic": {
source: "iana",
extensions: ["heic"]
},
"image/heic-sequence": {
source: "iana",
extensions: ["heics"]
},
"image/heif": {
source: "iana",
extensions: ["heif"]
},
"image/heif-sequence": {
source: "iana",
extensions: ["heifs"]
},
"image/hej2k": {
source: "iana",
extensions: ["hej2"]
},
"image/ief": {
source: "iana",
extensions: ["ief"]
},
"image/j2c": {
source: "iana"
},
"image/jaii": {
source: "iana",
extensions: ["jaii"]
},
"image/jais": {
source: "iana",
extensions: ["jais"]
},
"image/jls": {
source: "iana",
extensions: ["jls"]
},
"image/jp2": {
source: "iana",
compressible: false,
extensions: ["jp2", "jpg2"]
},
"image/jpeg": {
source: "iana",
compressible: false,
extensions: ["jpg", "jpeg", "jpe"]
},
"image/jph": {
source: "iana",
extensions: ["jph"]
},
"image/jphc": {
source: "iana",
extensions: ["jhc"]
},
"image/jpm": {
source: "iana",
compressible: false,
extensions: ["jpm", "jpgm"]
},
"image/jpx": {
source: "iana",
compressible: false,
extensions: ["jpx", "jpf"]
},
"image/jxl": {
source: "iana",
extensions: ["jxl"]
},
"image/jxr": {
source: "iana",
extensions: ["jxr"]
},
"image/jxra": {
source: "iana",
extensions: ["jxra"]
},
"image/jxrs": {
source: "iana",
extensions: ["jxrs"]
},
"image/jxs": {
source: "iana",
extensions: ["jxs"]
},
"image/jxsc": {
source: "iana",
extensions: ["jxsc"]
},
"image/jxsi": {
source: "iana",
extensions: ["jxsi"]
},
"image/jxss": {
source: "iana",
extensions: ["jxss"]
},
"image/ktx": {
source: "iana",
extensions: ["ktx"]
},
"image/ktx2": {
source: "iana",
extensions: ["ktx2"]
},
"image/naplps": {
source: "iana"
},
"image/pjpeg": {
compressible: false,
extensions: ["jfif"]
},
"image/png": {
source: "iana",
compressible: false,
extensions: ["png"]
},
"image/prs.btif": {
source: "iana",
extensions: ["btif", "btf"]
},
"image/prs.pti": {
source: "iana",
extensions: ["pti"]
},
"image/pwg-raster": {
source: "iana"
},
"image/sgi": {
source: "apache",
extensions: ["sgi"]
},
"image/svg+xml": {
source: "iana",
compressible: true,
extensions: ["svg", "svgz"]
},
"image/t38": {
source: "iana",
extensions: ["t38"]
},
"image/tiff": {
source: "iana",
compressible: false,
extensions: ["tif", "tiff"]
},
"image/tiff-fx": {
source: "iana",
extensions: ["tfx"]
},
"image/vnd.adobe.photoshop": {
source: "iana",
compressible: true,
extensions: ["psd"]
},
"image/vnd.airzip.accelerator.azv": {
source: "iana",
extensions: ["azv"]
},
"image/vnd.clip": {
source: "iana"
},
"image/vnd.cns.inf2": {
source: "iana"
},
"image/vnd.dece.graphic": {
source: "iana",
extensions: ["uvi", "uvvi", "uvg", "uvvg"]
},
"image/vnd.djvu": {
source: "iana",
extensions: ["djvu", "djv"]
},
"image/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"image/vnd.dwg": {
source: "iana",
extensions: ["dwg"]
},
"image/vnd.dxf": {
source: "iana",
extensions: ["dxf"]
},
"image/vnd.fastbidsheet": {
source: "iana",
extensions: ["fbs"]
},
"image/vnd.fpx": {
source: "iana",
extensions: ["fpx"]
},
"image/vnd.fst": {
source: "iana",
extensions: ["fst"]
},
"image/vnd.fujixerox.edmics-mmr": {
source: "iana",
extensions: ["mmr"]
},
"image/vnd.fujixerox.edmics-rlc": {
source: "iana",
extensions: ["rlc"]
},
"image/vnd.globalgraphics.pgb": {
source: "iana"
},
"image/vnd.microsoft.icon": {
source: "iana",
compressible: true,
extensions: ["ico"]
},
"image/vnd.mix": {
source: "iana"
},
"image/vnd.mozilla.apng": {
source: "iana"
},
"image/vnd.ms-dds": {
compressible: true,
extensions: ["dds"]
},
"image/vnd.ms-modi": {
source: "iana",
extensions: ["mdi"]
},
"image/vnd.ms-photo": {
source: "apache",
extensions: ["wdp"]
},
"image/vnd.net-fpx": {
source: "iana",
extensions: ["npx"]
},
"image/vnd.pco.b16": {
source: "iana",
extensions: ["b16"]
},
"image/vnd.radiance": {
source: "iana"
},
"image/vnd.sealed.png": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.gif": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.jpg": {
source: "iana"
},
"image/vnd.svf": {
source: "iana"
},
"image/vnd.tencent.tap": {
source: "iana",
extensions: ["tap"]
},
"image/vnd.valve.source.texture": {
source: "iana",
extensions: ["vtf"]
},
"image/vnd.wap.wbmp": {
source: "iana",
extensions: ["wbmp"]
},
"image/vnd.xiff": {
source: "iana",
extensions: ["xif"]
},
"image/vnd.zbrush.pcx": {
source: "iana",
extensions: ["pcx"]
},
"image/webp": {
source: "iana",
extensions: ["webp"]
},
"image/wmf": {
source: "iana",
extensions: ["wmf"]
},
"image/x-3ds": {
source: "apache",
extensions: ["3ds"]
},
"image/x-adobe-dng": {
extensions: ["dng"]
},
"image/x-cmu-raster": {
source: "apache",
extensions: ["ras"]
},
"image/x-cmx": {
source: "apache",
extensions: ["cmx"]
},
"image/x-emf": {
source: "iana"
},
"image/x-freehand": {
source: "apache",
extensions: ["fh", "fhc", "fh4", "fh5", "fh7"]
},
"image/x-icon": {
source: "apache",
compressible: true,
extensions: ["ico"]
},
"image/x-jng": {
source: "nginx",
extensions: ["jng"]
},
"image/x-mrsid-image": {
source: "apache",
extensions: ["sid"]
},
"image/x-ms-bmp": {
source: "nginx",
compressible: true,
extensions: ["bmp"]
},
"image/x-pcx": {
source: "apache",
extensions: ["pcx"]
},
"image/x-pict": {
source: "apache",
extensions: ["pic", "pct"]
},
"image/x-portable-anymap": {
source: "apache",
extensions: ["pnm"]
},
"image/x-portable-bitmap": {
source: "apache",
extensions: ["pbm"]
},
"image/x-portable-graymap": {
source: "apache",
extensions: ["pgm"]
},
"image/x-portable-pixmap": {
source: "apache",
extensions: ["ppm"]
},
"image/x-rgb": {
source: "apache",
extensions: ["rgb"]
},
"image/x-tga": {
source: "apache",
extensions: ["tga"]
},
"image/x-wmf": {
source: "iana"
},
"image/x-xbitmap": {
source: "apache",
extensions: ["xbm"]
},
"image/x-xcf": {
compressible: false
},
"image/x-xpixmap": {
source: "apache",
extensions: ["xpm"]
},
"image/x-xwindowdump": {
source: "apache",
extensions: ["xwd"]
},
"message/bhttp": {
source: "iana"
},
"message/cpim": {
source: "iana"
},
"message/delivery-status": {
source: "iana"
},
"message/disposition-notification": {
source: "iana",
extensions: [
"disposition-notification"
]
},
"message/external-body": {
source: "iana"
},
"message/feedback-report": {
source: "iana"
},
"message/global": {
source: "iana",
extensions: ["u8msg"]
},
"message/global-delivery-status": {
source: "iana",
extensions: ["u8dsn"]
},
"message/global-disposition-notification": {
source: "iana",
extensions: ["u8mdn"]
},
"message/global-headers": {
source: "iana",
extensions: ["u8hdr"]
},
"message/http": {
source: "iana",
compressible: false
},
"message/imdn+xml": {
source: "iana",
compressible: true
},
"message/mls": {
source: "iana"
},
"message/news": {
source: "apache"
},
"message/ohttp-req": {
source: "iana"
},
"message/ohttp-res": {
source: "iana"
},
"message/partial": {
source: "iana",
compressible: false
},
"message/rfc822": {
source: "iana",
compressible: true,
extensions: ["eml", "mime", "mht", "mhtml"]
},
"message/s-http": {
source: "apache"
},
"message/sip": {
source: "iana"
},
"message/sipfrag": {
source: "iana"
},
"message/tracking-status": {
source: "iana"
},
"message/vnd.si.simp": {
source: "apache"
},
"message/vnd.wfa.wsc": {
source: "iana",
extensions: ["wsc"]
},
"model/3mf": {
source: "iana",
extensions: ["3mf"]
},
"model/e57": {
source: "iana"
},
"model/gltf+json": {
source: "iana",
compressible: true,
extensions: ["gltf"]
},
"model/gltf-binary": {
source: "iana",
compressible: true,
extensions: ["glb"]
},
"model/iges": {
source: "iana",
compressible: false,
extensions: ["igs", "iges"]
},
"model/jt": {
source: "iana",
extensions: ["jt"]
},
"model/mesh": {
source: "iana",
compressible: false,
extensions: ["msh", "mesh", "silo"]
},
"model/mtl": {
source: "iana",
extensions: ["mtl"]
},
"model/obj": {
source: "iana",
extensions: ["obj"]
},
"model/prc": {
source: "iana",
extensions: ["prc"]
},
"model/step": {
source: "iana",
extensions: ["step", "stp", "stpnc", "p21", "210"]
},
"model/step+xml": {
source: "iana",
compressible: true,
extensions: ["stpx"]
},
"model/step+zip": {
source: "iana",
compressible: false,
extensions: ["stpz"]
},
"model/step-xml+zip": {
source: "iana",
compressible: false,
extensions: ["stpxz"]
},
"model/stl": {
source: "iana",
extensions: ["stl"]
},
"model/u3d": {
source: "iana",
extensions: ["u3d"]
},
"model/vnd.bary": {
source: "iana",
extensions: ["bary"]
},
"model/vnd.cld": {
source: "iana",
extensions: ["cld"]
},
"model/vnd.collada+xml": {
source: "iana",
compressible: true,
extensions: ["dae"]
},
"model/vnd.dwf": {
source: "iana",
extensions: ["dwf"]
},
"model/vnd.flatland.3dml": {
source: "iana"
},
"model/vnd.gdl": {
source: "iana",
extensions: ["gdl"]
},
"model/vnd.gs-gdl": {
source: "apache"
},
"model/vnd.gs.gdl": {
source: "iana"
},
"model/vnd.gtw": {
source: "iana",
extensions: ["gtw"]
},
"model/vnd.moml+xml": {
source: "iana",
compressible: true
},
"model/vnd.mts": {
source: "iana",
extensions: ["mts"]
},
"model/vnd.opengex": {
source: "iana",
extensions: ["ogex"]
},
"model/vnd.parasolid.transmit.binary": {
source: "iana",
extensions: ["x_b"]
},
"model/vnd.parasolid.transmit.text": {
source: "iana",
extensions: ["x_t"]
},
"model/vnd.pytha.pyox": {
source: "iana",
extensions: ["pyo", "pyox"]
},
"model/vnd.rosette.annotated-data-model": {
source: "iana"
},
"model/vnd.sap.vds": {
source: "iana",
extensions: ["vds"]
},
"model/vnd.usda": {
source: "iana",
extensions: ["usda"]
},
"model/vnd.usdz+zip": {
source: "iana",
compressible: false,
extensions: ["usdz"]
},
"model/vnd.valve.source.compiled-map": {
source: "iana",
extensions: ["bsp"]
},
"model/vnd.vtu": {
source: "iana",
extensions: ["vtu"]
},
"model/vrml": {
source: "iana",
compressible: false,
extensions: ["wrl", "vrml"]
},
"model/x3d+binary": {
source: "apache",
compressible: false,
extensions: ["x3db", "x3dbz"]
},
"model/x3d+fastinfoset": {
source: "iana",
extensions: ["x3db"]
},
"model/x3d+vrml": {
source: "apache",
compressible: false,
extensions: ["x3dv", "x3dvz"]
},
"model/x3d+xml": {
source: "iana",
compressible: true,
extensions: ["x3d", "x3dz"]
},
"model/x3d-vrml": {
source: "iana",
extensions: ["x3dv"]
},
"multipart/alternative": {
source: "iana",
compressible: false
},
"multipart/appledouble": {
source: "iana"
},
"multipart/byteranges": {
source: "iana"
},
"multipart/digest": {
source: "iana"
},
"multipart/encrypted": {
source: "iana",
compressible: false
},
"multipart/form-data": {
source: "iana",
compressible: false
},
"multipart/header-set": {
source: "iana"
},
"multipart/mixed": {
source: "iana"
},
"multipart/multilingual": {
source: "iana"
},
"multipart/parallel": {
source: "iana"
},
"multipart/related": {
source: "iana",
compressible: false
},
"multipart/report": {
source: "iana"
},
"multipart/signed": {
source: "iana",
compressible: false
},
"multipart/vnd.bint.med-plus": {
source: "iana"
},
"multipart/voice-message": {
source: "iana"
},
"multipart/x-mixed-replace": {
source: "iana"
},
"text/1d-interleaved-parityfec": {
source: "iana"
},
"text/cache-manifest": {
source: "iana",
compressible: true,
extensions: ["appcache", "manifest"]
},
"text/calendar": {
source: "iana",
extensions: ["ics", "ifb"]
},
"text/calender": {
compressible: true
},
"text/cmd": {
compressible: true
},
"text/coffeescript": {
extensions: ["coffee", "litcoffee"]
},
"text/cql": {
source: "iana"
},
"text/cql-expression": {
source: "iana"
},
"text/cql-identifier": {
source: "iana"
},
"text/css": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["css"]
},
"text/csv": {
source: "iana",
compressible: true,
extensions: ["csv"]
},
"text/csv-schema": {
source: "iana"
},
"text/directory": {
source: "iana"
},
"text/dns": {
source: "iana"
},
"text/ecmascript": {
source: "apache"
},
"text/encaprtp": {
source: "iana"
},
"text/enriched": {
source: "iana"
},
"text/fhirpath": {
source: "iana"
},
"text/flexfec": {
source: "iana"
},
"text/fwdred": {
source: "iana"
},
"text/gff3": {
source: "iana"
},
"text/grammar-ref-list": {
source: "iana"
},
"text/hl7v2": {
source: "iana"
},
"text/html": {
source: "iana",
compressible: true,
extensions: ["html", "htm", "shtml"]
},
"text/jade": {
extensions: ["jade"]
},
"text/javascript": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["js", "mjs"]
},
"text/jcr-cnd": {
source: "iana"
},
"text/jsx": {
compressible: true,
extensions: ["jsx"]
},
"text/less": {
compressible: true,
extensions: ["less"]
},
"text/markdown": {
source: "iana",
compressible: true,
extensions: ["md", "markdown"]
},
"text/mathml": {
source: "nginx",
extensions: ["mml"]
},
"text/mdx": {
compressible: true,
extensions: ["mdx"]
},
"text/mizar": {
source: "iana"
},
"text/n3": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["n3"]
},
"text/parameters": {
source: "iana",
charset: "UTF-8"
},
"text/parityfec": {
source: "iana"
},
"text/plain": {
source: "iana",
compressible: true,
extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"]
},
"text/provenance-notation": {
source: "iana",
charset: "UTF-8"
},
"text/prs.fallenstein.rst": {
source: "iana"
},
"text/prs.lines.tag": {
source: "iana",
extensions: ["dsc"]
},
"text/prs.prop.logic": {
source: "iana"
},
"text/prs.texi": {
source: "iana"
},
"text/raptorfec": {
source: "iana"
},
"text/red": {
source: "iana"
},
"text/rfc822-headers": {
source: "iana"
},
"text/richtext": {
source: "iana",
compressible: true,
extensions: ["rtx"]
},
"text/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"text/rtp-enc-aescm128": {
source: "iana"
},
"text/rtploopback": {
source: "iana"
},
"text/rtx": {
source: "iana"
},
"text/sgml": {
source: "iana",
extensions: ["sgml", "sgm"]
},
"text/shaclc": {
source: "iana"
},
"text/shex": {
source: "iana",
extensions: ["shex"]
},
"text/slim": {
extensions: ["slim", "slm"]
},
"text/spdx": {
source: "iana",
extensions: ["spdx"]
},
"text/strings": {
source: "iana"
},
"text/stylus": {
extensions: ["stylus", "styl"]
},
"text/t140": {
source: "iana"
},
"text/tab-separated-values": {
source: "iana",
compressible: true,
extensions: ["tsv"]
},
"text/troff": {
source: "iana",
extensions: ["t", "tr", "roff", "man", "me", "ms"]
},
"text/turtle": {
source: "iana",
charset: "UTF-8",
extensions: ["ttl"]
},
"text/ulpfec": {
source: "iana"
},
"text/uri-list": {
source: "iana",
compressible: true,
extensions: ["uri", "uris", "urls"]
},
"text/vcard": {
source: "iana",
compressible: true,
extensions: ["vcard"]
},
"text/vnd.a": {
source: "iana"
},
"text/vnd.abc": {
source: "iana"
},
"text/vnd.ascii-art": {
source: "iana"
},
"text/vnd.curl": {
source: "iana",
extensions: ["curl"]
},
"text/vnd.curl.dcurl": {
source: "apache",
extensions: ["dcurl"]
},
"text/vnd.curl.mcurl": {
source: "apache",
extensions: ["mcurl"]
},
"text/vnd.curl.scurl": {
source: "apache",
extensions: ["scurl"]
},
"text/vnd.debian.copyright": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.dmclientscript": {
source: "iana"
},
"text/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"text/vnd.esmertec.theme-descriptor": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.exchangeable": {
source: "iana"
},
"text/vnd.familysearch.gedcom": {
source: "iana",
extensions: ["ged"]
},
"text/vnd.ficlab.flt": {
source: "iana"
},
"text/vnd.fly": {
source: "iana",
extensions: ["fly"]
},
"text/vnd.fmi.flexstor": {
source: "iana",
extensions: ["flx"]
},
"text/vnd.gml": {
source: "iana"
},
"text/vnd.graphviz": {
source: "iana",
extensions: ["gv"]
},
"text/vnd.hans": {
source: "iana"
},
"text/vnd.hgl": {
source: "iana"
},
"text/vnd.in3d.3dml": {
source: "iana",
extensions: ["3dml"]
},
"text/vnd.in3d.spot": {
source: "iana",
extensions: ["spot"]
},
"text/vnd.iptc.newsml": {
source: "iana"
},
"text/vnd.iptc.nitf": {
source: "iana"
},
"text/vnd.latex-z": {
source: "iana"
},
"text/vnd.motorola.reflex": {
source: "iana"
},
"text/vnd.ms-mediapackage": {
source: "iana"
},
"text/vnd.net2phone.commcenter.command": {
source: "iana"
},
"text/vnd.radisys.msml-basic-layout": {
source: "iana"
},
"text/vnd.senx.warpscript": {
source: "iana"
},
"text/vnd.si.uricatalogue": {
source: "apache"
},
"text/vnd.sosi": {
source: "iana"
},
"text/vnd.sun.j2me.app-descriptor": {
source: "iana",
charset: "UTF-8",
extensions: ["jad"]
},
"text/vnd.trolltech.linguist": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.vcf": {
source: "iana"
},
"text/vnd.wap.si": {
source: "iana"
},
"text/vnd.wap.sl": {
source: "iana"
},
"text/vnd.wap.wml": {
source: "iana",
extensions: ["wml"]
},
"text/vnd.wap.wmlscript": {
source: "iana",
extensions: ["wmls"]
},
"text/vnd.zoo.kcl": {
source: "iana"
},
"text/vtt": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["vtt"]
},
"text/wgsl": {
source: "iana",
extensions: ["wgsl"]
},
"text/x-asm": {
source: "apache",
extensions: ["s", "asm"]
},
"text/x-c": {
source: "apache",
extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"]
},
"text/x-component": {
source: "nginx",
extensions: ["htc"]
},
"text/x-fortran": {
source: "apache",
extensions: ["f", "for", "f77", "f90"]
},
"text/x-gwt-rpc": {
compressible: true
},
"text/x-handlebars-template": {
extensions: ["hbs"]
},
"text/x-java-source": {
source: "apache",
extensions: ["java"]
},
"text/x-jquery-tmpl": {
compressible: true
},
"text/x-lua": {
extensions: ["lua"]
},
"text/x-markdown": {
compressible: true,
extensions: ["mkd"]
},
"text/x-nfo": {
source: "apache",
extensions: ["nfo"]
},
"text/x-opml": {
source: "apache",
extensions: ["opml"]
},
"text/x-org": {
compressible: true,
extensions: ["org"]
},
"text/x-pascal": {
source: "apache",
extensions: ["p", "pas"]
},
"text/x-processing": {
compressible: true,
extensions: ["pde"]
},
"text/x-sass": {
extensions: ["sass"]
},
"text/x-scss": {
extensions: ["scss"]
},
"text/x-setext": {
source: "apache",
extensions: ["etx"]
},
"text/x-sfv": {
source: "apache",
extensions: ["sfv"]
},
"text/x-suse-ymp": {
compressible: true,
extensions: ["ymp"]
},
"text/x-uuencode": {
source: "apache",
extensions: ["uu"]
},
"text/x-vcalendar": {
source: "apache",
extensions: ["vcs"]
},
"text/x-vcard": {
source: "apache",
extensions: ["vcf"]
},
"text/xml": {
source: "iana",
compressible: true,
extensions: ["xml"]
},
"text/xml-external-parsed-entity": {
source: "iana"
},
"text/yaml": {
compressible: true,
extensions: ["yaml", "yml"]
},
"video/1d-interleaved-parityfec": {
source: "iana"
},
"video/3gpp": {
source: "iana",
extensions: ["3gp", "3gpp"]
},
"video/3gpp-tt": {
source: "iana"
},
"video/3gpp2": {
source: "iana",
extensions: ["3g2"]
},
"video/av1": {
source: "iana"
},
"video/bmpeg": {
source: "iana"
},
"video/bt656": {
source: "iana"
},
"video/celb": {
source: "iana"
},
"video/dv": {
source: "iana"
},
"video/encaprtp": {
source: "iana"
},
"video/evc": {
source: "iana"
},
"video/ffv1": {
source: "iana"
},
"video/flexfec": {
source: "iana"
},
"video/h261": {
source: "iana",
extensions: ["h261"]
},
"video/h263": {
source: "iana",
extensions: ["h263"]
},
"video/h263-1998": {
source: "iana"
},
"video/h263-2000": {
source: "iana"
},
"video/h264": {
source: "iana",
extensions: ["h264"]
},
"video/h264-rcdo": {
source: "iana"
},
"video/h264-svc": {
source: "iana"
},
"video/h265": {
source: "iana"
},
"video/h266": {
source: "iana"
},
"video/iso.segment": {
source: "iana",
extensions: ["m4s"]
},
"video/jpeg": {
source: "iana",
extensions: ["jpgv"]
},
"video/jpeg2000": {
source: "iana"
},
"video/jpm": {
source: "apache",
extensions: ["jpm", "jpgm"]
},
"video/jxsv": {
source: "iana"
},
"video/lottie+json": {
source: "iana",
compressible: true
},
"video/matroska": {
source: "iana"
},
"video/matroska-3d": {
source: "iana"
},
"video/mj2": {
source: "iana",
extensions: ["mj2", "mjp2"]
},
"video/mp1s": {
source: "iana"
},
"video/mp2p": {
source: "iana"
},
"video/mp2t": {
source: "iana",
extensions: ["ts", "m2t", "m2ts", "mts"]
},
"video/mp4": {
source: "iana",
compressible: false,
extensions: ["mp4", "mp4v", "mpg4"]
},
"video/mp4v-es": {
source: "iana"
},
"video/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"]
},
"video/mpeg4-generic": {
source: "iana"
},
"video/mpv": {
source: "iana"
},
"video/nv": {
source: "iana"
},
"video/ogg": {
source: "iana",
compressible: false,
extensions: ["ogv"]
},
"video/parityfec": {
source: "iana"
},
"video/pointer": {
source: "iana"
},
"video/quicktime": {
source: "iana",
compressible: false,
extensions: ["qt", "mov"]
},
"video/raptorfec": {
source: "iana"
},
"video/raw": {
source: "iana"
},
"video/rtp-enc-aescm128": {
source: "iana"
},
"video/rtploopback": {
source: "iana"
},
"video/rtx": {
source: "iana"
},
"video/scip": {
source: "iana"
},
"video/smpte291": {
source: "iana"
},
"video/smpte292m": {
source: "iana"
},
"video/ulpfec": {
source: "iana"
},
"video/vc1": {
source: "iana"
},
"video/vc2": {
source: "iana"
},
"video/vnd.cctv": {
source: "iana"
},
"video/vnd.dece.hd": {
source: "iana",
extensions: ["uvh", "uvvh"]
},
"video/vnd.dece.mobile": {
source: "iana",
extensions: ["uvm", "uvvm"]
},
"video/vnd.dece.mp4": {
source: "iana"
},
"video/vnd.dece.pd": {
source: "iana",
extensions: ["uvp", "uvvp"]
},
"video/vnd.dece.sd": {
source: "iana",
extensions: ["uvs", "uvvs"]
},
"video/vnd.dece.video": {
source: "iana",
extensions: ["uvv", "uvvv"]
},
"video/vnd.directv.mpeg": {
source: "iana"
},
"video/vnd.directv.mpeg-tts": {
source: "iana"
},
"video/vnd.dlna.mpeg-tts": {
source: "iana"
},
"video/vnd.dvb.file": {
source: "iana",
extensions: ["dvb"]
},
"video/vnd.fvt": {
source: "iana",
extensions: ["fvt"]
},
"video/vnd.hns.video": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.ttsavc": {
source: "iana"
},
"video/vnd.iptvforum.ttsmpeg2": {
source: "iana"
},
"video/vnd.motorola.video": {
source: "iana"
},
"video/vnd.motorola.videop": {
source: "iana"
},
"video/vnd.mpegurl": {
source: "iana",
extensions: ["mxu", "m4u"]
},
"video/vnd.ms-playready.media.pyv": {
source: "iana",
extensions: ["pyv"]
},
"video/vnd.nokia.interleaved-multimedia": {
source: "iana"
},
"video/vnd.nokia.mp4vr": {
source: "iana"
},
"video/vnd.nokia.videovoip": {
source: "iana"
},
"video/vnd.objectvideo": {
source: "iana"
},
"video/vnd.planar": {
source: "iana"
},
"video/vnd.radgamettools.bink": {
source: "iana"
},
"video/vnd.radgamettools.smacker": {
source: "apache"
},
"video/vnd.sealed.mpeg1": {
source: "iana"
},
"video/vnd.sealed.mpeg4": {
source: "iana"
},
"video/vnd.sealed.swf": {
source: "iana"
},
"video/vnd.sealedmedia.softseal.mov": {
source: "iana"
},
"video/vnd.uvvu.mp4": {
source: "iana",
extensions: ["uvu", "uvvu"]
},
"video/vnd.vivo": {
source: "iana",
extensions: ["viv"]
},
"video/vnd.youtube.yt": {
source: "iana"
},
"video/vp8": {
source: "iana"
},
"video/vp9": {
source: "iana"
},
"video/webm": {
source: "apache",
compressible: false,
extensions: ["webm"]
},
"video/x-f4v": {
source: "apache",
extensions: ["f4v"]
},
"video/x-fli": {
source: "apache",
extensions: ["fli"]
},
"video/x-flv": {
source: "apache",
compressible: false,
extensions: ["flv"]
},
"video/x-m4v": {
source: "apache",
extensions: ["m4v"]
},
"video/x-matroska": {
source: "apache",
compressible: false,
extensions: ["mkv", "mk3d", "mks"]
},
"video/x-mng": {
source: "apache",
extensions: ["mng"]
},
"video/x-ms-asf": {
source: "apache",
extensions: ["asf", "asx"]
},
"video/x-ms-vob": {
source: "apache",
extensions: ["vob"]
},
"video/x-ms-wm": {
source: "apache",
extensions: ["wm"]
},
"video/x-ms-wmv": {
source: "apache",
compressible: false,
extensions: ["wmv"]
},
"video/x-ms-wmx": {
source: "apache",
extensions: ["wmx"]
},
"video/x-ms-wvx": {
source: "apache",
extensions: ["wvx"]
},
"video/x-msvideo": {
source: "apache",
extensions: ["avi"]
},
"video/x-sgi-movie": {
source: "apache",
extensions: ["movie"]
},
"video/x-smv": {
source: "apache",
extensions: ["smv"]
},
"x-conference/x-cooltalk": {
source: "apache",
extensions: ["ice"]
},
"x-shader/x-fragment": {
compressible: true
},
"x-shader/x-vertex": {
compressible: true
}
};
}
});
var require_mime_db22 = __commonJS2({
"node_modules/express/node_modules/mime-db/index.js"(exports2, module2) {
module2.exports = require_db22();
}
});
var require_mimeScore2 = __commonJS2({
"node_modules/express/node_modules/mime-types/mimeScore.js"(exports2, module2) {
var FACET_SCORES = {
"prs.": 100,
"x-": 200,
"x.": 300,
"vnd.": 400,
default: 900
};
var SOURCE_SCORES = {
nginx: 10,
apache: 20,
iana: 40,
default: 30
// definitions added by `jshttp/mime-db` project?
};
var TYPE_SCORES = {
// prefer application/xml over text/xml
// prefer application/rtf over text/rtf
application: 1,
// prefer font/woff over application/font-woff
font: 2,
default: 0
};
module2.exports = function mimeScore(mimeType, source = "default") {
if (mimeType === "application/octet-stream") {
return 0;
}
const [type, subtype] = mimeType.split("/");
const facet = subtype.replace(/(\.|x-).*/, "$1");
const facetScore = FACET_SCORES[facet] || FACET_SCORES.default;
const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default;
const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default;
const lengthScore = 1 - mimeType.length / 100;
return facetScore + sourceScore + typeScore + lengthScore;
};
}
});
var require_mime_types22 = __commonJS2({
"node_modules/express/node_modules/mime-types/index.js"(exports2) {
"use strict";
var db = require_mime_db22();
var extname = require("path").extname;
var mimeScore = require_mimeScore2();
var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
var TEXT_TYPE_REGEXP = /^text\//i;
exports2.charset = charset;
exports2.charsets = { lookup: charset };
exports2.contentType = contentType2;
exports2.extension = extension;
exports2.extensions = /* @__PURE__ */ Object.create(null);
exports2.lookup = lookup;
exports2.types = /* @__PURE__ */ Object.create(null);
exports2._extensionConflicts = [];
populateMaps(exports2.extensions, exports2.types);
function charset(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var mime = match && db[match[1].toLowerCase()];
if (mime && mime.charset) {
return mime.charset;
}
if (match && TEXT_TYPE_REGEXP.test(match[1])) {
return "UTF-8";
}
return false;
}
function contentType2(str) {
if (!str || typeof str !== "string") {
return false;
}
var mime = str.indexOf("/") === -1 ? exports2.lookup(str) : str;
if (!mime) {
return false;
}
if (mime.indexOf("charset") === -1) {
var charset2 = exports2.charset(mime);
if (charset2) mime += "; charset=" + charset2.toLowerCase();
}
return mime;
}
function extension(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var exts = match && exports2.extensions[match[1].toLowerCase()];
if (!exts || !exts.length) {
return false;
}
return exts[0];
}
function lookup(path) {
if (!path || typeof path !== "string") {
return false;
}
var extension2 = extname("x." + path).toLowerCase().slice(1);
if (!extension2) {
return false;
}
return exports2.types[extension2] || false;
}
function populateMaps(extensions, types) {
Object.keys(db).forEach(function forEachMimeType(type) {
var mime = db[type];
var exts = mime.extensions;
if (!exts || !exts.length) {
return;
}
extensions[type] = exts;
for (var i = 0; i < exts.length; i++) {
var extension2 = exts[i];
types[extension2] = _preferredType(extension2, types[extension2], type);
const legacyType = _preferredTypeLegacy(
extension2,
types[extension2],
type
);
if (legacyType !== types[extension2]) {
exports2._extensionConflicts.push([extension2, legacyType, types[extension2]]);
}
}
});
}
function _preferredType(ext, type0, type1) {
var score0 = type0 ? mimeScore(type0, db[type0].source) : 0;
var score1 = type1 ? mimeScore(type1, db[type1].source) : 0;
return score0 > score1 ? type0 : type1;
}
function _preferredTypeLegacy(ext, type0, type1) {
var SOURCE_RANK = ["nginx", "apache", void 0, "iana"];
var score0 = type0 ? SOURCE_RANK.indexOf(db[type0].source) : 0;
var score1 = type1 ? SOURCE_RANK.indexOf(db[type1].source) : 0;
if (exports2.types[extension] !== "application/octet-stream" && (score0 > score1 || score0 === score1 && exports2.types[extension]?.slice(0, 12) === "application/")) {
return type0;
}
return score0 > score1 ? type0 : type1;
}
}
});
var require_forwarded = __commonJS2({
"node_modules/forwarded/index.js"(exports2, module2) {
"use strict";
module2.exports = forwarded;
function forwarded(req) {
if (!req) {
throw new TypeError("argument req is required");
}
var proxyAddrs = parse(req.headers["x-forwarded-for"] || "");
var socketAddr = getSocketAddr(req);
var addrs = [socketAddr].concat(proxyAddrs);
return addrs;
}
function getSocketAddr(req) {
return req.socket ? req.socket.remoteAddress : req.connection.remoteAddress;
}
function parse(header) {
var end = header.length;
var list = [];
var start = header.length;
for (var i = header.length - 1; i >= 0; i--) {
switch (header.charCodeAt(i)) {
case 32:
if (start === end) {
start = end = i;
}
break;
case 44:
if (start !== end) {
list.push(header.substring(start, end));
}
start = end = i;
break;
default:
start = i;
break;
}
}
if (start !== end) {
list.push(header.substring(start, end));
}
return list;
}
}
});
var require_ipaddr = __commonJS2({
"node_modules/ipaddr.js/lib/ipaddr.js"(exports2, module2) {
(function() {
var expandIPv6, ipaddr, ipv4Part, ipv4Regexes, ipv6Part, ipv6Regexes, matchCIDR, root, zoneIndex;
ipaddr = {};
root = this;
if (typeof module2 !== "undefined" && module2 !== null && module2.exports) {
module2.exports = ipaddr;
} else {
root["ipaddr"] = ipaddr;
}
matchCIDR = function(first, second, partSize, cidrBits) {
var part, shift;
if (first.length !== second.length) {
throw new Error("ipaddr: cannot match CIDR for objects with different lengths");
}
part = 0;
while (cidrBits > 0) {
shift = partSize - cidrBits;
if (shift < 0) {
shift = 0;
}
if (first[part] >> shift !== second[part] >> shift) {
return false;
}
cidrBits -= partSize;
part += 1;
}
return true;
};
ipaddr.subnetMatch = function(address, rangeList, defaultName) {
var k, len, rangeName, rangeSubnets, subnet;
if (defaultName == null) {
defaultName = "unicast";
}
for (rangeName in rangeList) {
rangeSubnets = rangeList[rangeName];
if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) {
rangeSubnets = [rangeSubnets];
}
for (k = 0, len = rangeSubnets.length; k < len; k++) {
subnet = rangeSubnets[k];
if (address.kind() === subnet[0].kind()) {
if (address.match.apply(address, subnet)) {
return rangeName;
}
}
}
}
return defaultName;
};
ipaddr.IPv4 = (function() {
function IPv4(octets) {
var k, len, octet;
if (octets.length !== 4) {
throw new Error("ipaddr: ipv4 octet count should be 4");
}
for (k = 0, len = octets.length; k < len; k++) {
octet = octets[k];
if (!(0 <= octet && octet <= 255)) {
throw new Error("ipaddr: ipv4 octet should fit in 8 bits");
}
}
this.octets = octets;
}
IPv4.prototype.kind = function() {
return "ipv4";
};
IPv4.prototype.toString = function() {
return this.octets.join(".");
};
IPv4.prototype.toNormalizedString = function() {
return this.toString();
};
IPv4.prototype.toByteArray = function() {
return this.octets.slice(0);
};
IPv4.prototype.match = function(other, cidrRange) {
var ref;
if (cidrRange === void 0) {
ref = other, other = ref[0], cidrRange = ref[1];
}
if (other.kind() !== "ipv4") {
throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");
}
return matchCIDR(this.octets, other.octets, 8, cidrRange);
};
IPv4.prototype.SpecialRanges = {
unspecified: [[new IPv4([0, 0, 0, 0]), 8]],
broadcast: [[new IPv4([255, 255, 255, 255]), 32]],
multicast: [[new IPv4([224, 0, 0, 0]), 4]],
linkLocal: [[new IPv4([169, 254, 0, 0]), 16]],
loopback: [[new IPv4([127, 0, 0, 0]), 8]],
carrierGradeNat: [[new IPv4([100, 64, 0, 0]), 10]],
"private": [[new IPv4([10, 0, 0, 0]), 8], [new IPv4([172, 16, 0, 0]), 12], [new IPv4([192, 168, 0, 0]), 16]],
reserved: [[new IPv4([192, 0, 0, 0]), 24], [new IPv4([192, 0, 2, 0]), 24], [new IPv4([192, 88, 99, 0]), 24], [new IPv4([198, 51, 100, 0]), 24], [new IPv4([203, 0, 113, 0]), 24], [new IPv4([240, 0, 0, 0]), 4]]
};
IPv4.prototype.range = function() {
return ipaddr.subnetMatch(this, this.SpecialRanges);
};
IPv4.prototype.toIPv4MappedAddress = function() {
return ipaddr.IPv6.parse("::ffff:" + this.toString());
};
IPv4.prototype.prefixLengthFromSubnetMask = function() {
var cidr, i, k, octet, stop, zeros, zerotable;
zerotable = {
0: 8,
128: 7,
192: 6,
224: 5,
240: 4,
248: 3,
252: 2,
254: 1,
255: 0
};
cidr = 0;
stop = false;
for (i = k = 3; k >= 0; i = k += -1) {
octet = this.octets[i];
if (octet in zerotable) {
zeros = zerotable[octet];
if (stop && zeros !== 0) {
return null;
}
if (zeros !== 8) {
stop = true;
}
cidr += zeros;
} else {
return null;
}
}
return 32 - cidr;
};
return IPv4;
})();
ipv4Part = "(0?\\d+|0x[a-f0-9]+)";
ipv4Regexes = {
fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", "i"),
longValue: new RegExp("^" + ipv4Part + "$", "i")
};
ipaddr.IPv4.parser = function(string) {
var match, parseIntAuto, part, shift, value;
parseIntAuto = function(string2) {
if (string2[0] === "0" && string2[1] !== "x") {
return parseInt(string2, 8);
} else {
return parseInt(string2);
}
};
if (match = string.match(ipv4Regexes.fourOctet)) {
return (function() {
var k, len, ref, results;
ref = match.slice(1, 6);
results = [];
for (k = 0, len = ref.length; k < len; k++) {
part = ref[k];
results.push(parseIntAuto(part));
}
return results;
})();
} else if (match = string.match(ipv4Regexes.longValue)) {
value = parseIntAuto(match[1]);
if (value > 4294967295 || value < 0) {
throw new Error("ipaddr: address outside defined range");
}
return (function() {
var k, results;
results = [];
for (shift = k = 0; k <= 24; shift = k += 8) {
results.push(value >> shift & 255);
}
return results;
})().reverse();
} else {
return null;
}
};
ipaddr.IPv6 = (function() {
function IPv6(parts, zoneId) {
var i, k, l, len, part, ref;
if (parts.length === 16) {
this.parts = [];
for (i = k = 0; k <= 14; i = k += 2) {
this.parts.push(parts[i] << 8 | parts[i + 1]);
}
} else if (parts.length === 8) {
this.parts = parts;
} else {
throw new Error("ipaddr: ipv6 part count should be 8 or 16");
}
ref = this.parts;
for (l = 0, len = ref.length; l < len; l++) {
part = ref[l];
if (!(0 <= part && part <= 65535)) {
throw new Error("ipaddr: ipv6 part should fit in 16 bits");
}
}
if (zoneId) {
this.zoneId = zoneId;
}
}
IPv6.prototype.kind = function() {
return "ipv6";
};
IPv6.prototype.toString = function() {
return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/, "::");
};
IPv6.prototype.toRFC5952String = function() {
var bestMatchIndex, bestMatchLength, match, regex, string;
regex = /((^|:)(0(:|$)){2,})/g;
string = this.toNormalizedString();
bestMatchIndex = 0;
bestMatchLength = -1;
while (match = regex.exec(string)) {
if (match[0].length > bestMatchLength) {
bestMatchIndex = match.index;
bestMatchLength = match[0].length;
}
}
if (bestMatchLength < 0) {
return string;
}
return string.substring(0, bestMatchIndex) + "::" + string.substring(bestMatchIndex + bestMatchLength);
};
IPv6.prototype.toByteArray = function() {
var bytes, k, len, part, ref;
bytes = [];
ref = this.parts;
for (k = 0, len = ref.length; k < len; k++) {
part = ref[k];
bytes.push(part >> 8);
bytes.push(part & 255);
}
return bytes;
};
IPv6.prototype.toNormalizedString = function() {
var addr, part, suffix;
addr = function() {
var k, len, ref, results;
ref = this.parts;
results = [];
for (k = 0, len = ref.length; k < len; k++) {
part = ref[k];
results.push(part.toString(16));
}
return results;
}.call(this).join(":");
suffix = "";
if (this.zoneId) {
suffix = "%" + this.zoneId;
}
return addr + suffix;
};
IPv6.prototype.toFixedLengthString = function() {
var addr, part, suffix;
addr = function() {
var k, len, ref, results;
ref = this.parts;
results = [];
for (k = 0, len = ref.length; k < len; k++) {
part = ref[k];
results.push(part.toString(16).padStart(4, "0"));
}
return results;
}.call(this).join(":");
suffix = "";
if (this.zoneId) {
suffix = "%" + this.zoneId;
}
return addr + suffix;
};
IPv6.prototype.match = function(other, cidrRange) {
var ref;
if (cidrRange === void 0) {
ref = other, other = ref[0], cidrRange = ref[1];
}
if (other.kind() !== "ipv6") {
throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");
}
return matchCIDR(this.parts, other.parts, 16, cidrRange);
};
IPv6.prototype.SpecialRanges = {
unspecified: [new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128],
linkLocal: [new IPv6([65152, 0, 0, 0, 0, 0, 0, 0]), 10],
multicast: [new IPv6([65280, 0, 0, 0, 0, 0, 0, 0]), 8],
loopback: [new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128],
uniqueLocal: [new IPv6([64512, 0, 0, 0, 0, 0, 0, 0]), 7],
ipv4Mapped: [new IPv6([0, 0, 0, 0, 0, 65535, 0, 0]), 96],
rfc6145: [new IPv6([0, 0, 0, 0, 65535, 0, 0, 0]), 96],
rfc6052: [new IPv6([100, 65435, 0, 0, 0, 0, 0, 0]), 96],
"6to4": [new IPv6([8194, 0, 0, 0, 0, 0, 0, 0]), 16],
teredo: [new IPv6([8193, 0, 0, 0, 0, 0, 0, 0]), 32],
reserved: [[new IPv6([8193, 3512, 0, 0, 0, 0, 0, 0]), 32]]
};
IPv6.prototype.range = function() {
return ipaddr.subnetMatch(this, this.SpecialRanges);
};
IPv6.prototype.isIPv4MappedAddress = function() {
return this.range() === "ipv4Mapped";
};
IPv6.prototype.toIPv4Address = function() {
var high, low, ref;
if (!this.isIPv4MappedAddress()) {
throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");
}
ref = this.parts.slice(-2), high = ref[0], low = ref[1];
return new ipaddr.IPv4([high >> 8, high & 255, low >> 8, low & 255]);
};
IPv6.prototype.prefixLengthFromSubnetMask = function() {
var cidr, i, k, part, stop, zeros, zerotable;
zerotable = {
0: 16,
32768: 15,
49152: 14,
57344: 13,
61440: 12,
63488: 11,
64512: 10,
65024: 9,
65280: 8,
65408: 7,
65472: 6,
65504: 5,
65520: 4,
65528: 3,
65532: 2,
65534: 1,
65535: 0
};
cidr = 0;
stop = false;
for (i = k = 7; k >= 0; i = k += -1) {
part = this.parts[i];
if (part in zerotable) {
zeros = zerotable[part];
if (stop && zeros !== 0) {
return null;
}
if (zeros !== 16) {
stop = true;
}
cidr += zeros;
} else {
return null;
}
}
return 128 - cidr;
};
return IPv6;
})();
ipv6Part = "(?:[0-9a-f]+::?)+";
zoneIndex = "%[0-9a-z]{1,}";
ipv6Regexes = {
zoneIndex: new RegExp(zoneIndex, "i"),
"native": new RegExp("^(::)?(" + ipv6Part + ")?([0-9a-f]+)?(::)?(" + zoneIndex + ")?$", "i"),
transitional: new RegExp("^((?:" + ipv6Part + ")|(?:::)(?:" + ipv6Part + ")?)" + (ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part) + ("(" + zoneIndex + ")?$"), "i")
};
expandIPv6 = function(string, parts) {
var colonCount, lastColon, part, replacement, replacementCount, zoneId;
if (string.indexOf("::") !== string.lastIndexOf("::")) {
return null;
}
zoneId = (string.match(ipv6Regexes["zoneIndex"]) || [])[0];
if (zoneId) {
zoneId = zoneId.substring(1);
string = string.replace(/%.+$/, "");
}
colonCount = 0;
lastColon = -1;
while ((lastColon = string.indexOf(":", lastColon + 1)) >= 0) {
colonCount++;
}
if (string.substr(0, 2) === "::") {
colonCount--;
}
if (string.substr(-2, 2) === "::") {
colonCount--;
}
if (colonCount > parts) {
return null;
}
replacementCount = parts - colonCount;
replacement = ":";
while (replacementCount--) {
replacement += "0:";
}
string = string.replace("::", replacement);
if (string[0] === ":") {
string = string.slice(1);
}
if (string[string.length - 1] === ":") {
string = string.slice(0, -1);
}
parts = (function() {
var k, len, ref, results;
ref = string.split(":");
results = [];
for (k = 0, len = ref.length; k < len; k++) {
part = ref[k];
results.push(parseInt(part, 16));
}
return results;
})();
return {
parts,
zoneId
};
};
ipaddr.IPv6.parser = function(string) {
var addr, k, len, match, octet, octets, zoneId;
if (ipv6Regexes["native"].test(string)) {
return expandIPv6(string, 8);
} else if (match = string.match(ipv6Regexes["transitional"])) {
zoneId = match[6] || "";
addr = expandIPv6(match[1].slice(0, -1) + zoneId, 6);
if (addr.parts) {
octets = [parseInt(match[2]), parseInt(match[3]), parseInt(match[4]), parseInt(match[5])];
for (k = 0, len = octets.length; k < len; k++) {
octet = octets[k];
if (!(0 <= octet && octet <= 255)) {
return null;
}
}
addr.parts.push(octets[0] << 8 | octets[1]);
addr.parts.push(octets[2] << 8 | octets[3]);
return {
parts: addr.parts,
zoneId: addr.zoneId
};
}
}
return null;
};
ipaddr.IPv4.isIPv4 = ipaddr.IPv6.isIPv6 = function(string) {
return this.parser(string) !== null;
};
ipaddr.IPv4.isValid = function(string) {
var e;
try {
new this(this.parser(string));
return true;
} catch (error1) {
e = error1;
return false;
}
};
ipaddr.IPv4.isValidFourPartDecimal = function(string) {
if (ipaddr.IPv4.isValid(string) && string.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/)) {
return true;
} else {
return false;
}
};
ipaddr.IPv6.isValid = function(string) {
var addr, e;
if (typeof string === "string" && string.indexOf(":") === -1) {
return false;
}
try {
addr = this.parser(string);
new this(addr.parts, addr.zoneId);
return true;
} catch (error1) {
e = error1;
return false;
}
};
ipaddr.IPv4.parse = function(string) {
var parts;
parts = this.parser(string);
if (parts === null) {
throw new Error("ipaddr: string is not formatted like ip address");
}
return new this(parts);
};
ipaddr.IPv6.parse = function(string) {
var addr;
addr = this.parser(string);
if (addr.parts === null) {
throw new Error("ipaddr: string is not formatted like ip address");
}
return new this(addr.parts, addr.zoneId);
};
ipaddr.IPv4.parseCIDR = function(string) {
var maskLength, match, parsed;
if (match = string.match(/^(.+)\/(\d+)$/)) {
maskLength = parseInt(match[2]);
if (maskLength >= 0 && maskLength <= 32) {
parsed = [this.parse(match[1]), maskLength];
Object.defineProperty(parsed, "toString", {
value: function() {
return this.join("/");
}
});
return parsed;
}
}
throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range");
};
ipaddr.IPv4.subnetMaskFromPrefixLength = function(prefix) {
var filledOctetCount, j, octets;
prefix = parseInt(prefix);
if (prefix < 0 || prefix > 32) {
throw new Error("ipaddr: invalid IPv4 prefix length");
}
octets = [0, 0, 0, 0];
j = 0;
filledOctetCount = Math.floor(prefix / 8);
while (j < filledOctetCount) {
octets[j] = 255;
j++;
}
if (filledOctetCount < 4) {
octets[filledOctetCount] = Math.pow(2, prefix % 8) - 1 << 8 - prefix % 8;
}
return new this(octets);
};
ipaddr.IPv4.broadcastAddressFromCIDR = function(string) {
var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets;
try {
cidr = this.parseCIDR(string);
ipInterfaceOctets = cidr[0].toByteArray();
subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray();
octets = [];
i = 0;
while (i < 4) {
octets.push(parseInt(ipInterfaceOctets[i], 10) | parseInt(subnetMaskOctets[i], 10) ^ 255);
i++;
}
return new this(octets);
} catch (error1) {
error = error1;
throw new Error("ipaddr: the address does not have IPv4 CIDR format");
}
};
ipaddr.IPv4.networkAddressFromCIDR = function(string) {
var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets;
try {
cidr = this.parseCIDR(string);
ipInterfaceOctets = cidr[0].toByteArray();
subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray();
octets = [];
i = 0;
while (i < 4) {
octets.push(parseInt(ipInterfaceOctets[i], 10) & parseInt(subnetMaskOctets[i], 10));
i++;
}
return new this(octets);
} catch (error1) {
error = error1;
throw new Error("ipaddr: the address does not have IPv4 CIDR format");
}
};
ipaddr.IPv6.parseCIDR = function(string) {
var maskLength, match, parsed;
if (match = string.match(/^(.+)\/(\d+)$/)) {
maskLength = parseInt(match[2]);
if (maskLength >= 0 && maskLength <= 128) {
parsed = [this.parse(match[1]), maskLength];
Object.defineProperty(parsed, "toString", {
value: function() {
return this.join("/");
}
});
return parsed;
}
}
throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range");
};
ipaddr.isValid = function(string) {
return ipaddr.IPv6.isValid(string) || ipaddr.IPv4.isValid(string);
};
ipaddr.parse = function(string) {
if (ipaddr.IPv6.isValid(string)) {
return ipaddr.IPv6.parse(string);
} else if (ipaddr.IPv4.isValid(string)) {
return ipaddr.IPv4.parse(string);
} else {
throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format");
}
};
ipaddr.parseCIDR = function(string) {
var e;
try {
return ipaddr.IPv6.parseCIDR(string);
} catch (error1) {
e = error1;
try {
return ipaddr.IPv4.parseCIDR(string);
} catch (error12) {
e = error12;
throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format");
}
}
};
ipaddr.fromByteArray = function(bytes) {
var length;
length = bytes.length;
if (length === 4) {
return new ipaddr.IPv4(bytes);
} else if (length === 16) {
return new ipaddr.IPv6(bytes);
} else {
throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address");
}
};
ipaddr.process = function(string) {
var addr;
addr = this.parse(string);
if (addr.kind() === "ipv6" && addr.isIPv4MappedAddress()) {
return addr.toIPv4Address();
} else {
return addr;
}
};
}).call(exports2);
}
});
var require_proxy_addr = __commonJS2({
"node_modules/proxy-addr/index.js"(exports2, module2) {
"use strict";
module2.exports = proxyaddr;
module2.exports.all = alladdrs;
module2.exports.compile = compile;
var forwarded = require_forwarded();
var ipaddr = require_ipaddr();
var DIGIT_REGEXP = /^[0-9]+$/;
var isip = ipaddr.isValid;
var parseip = ipaddr.parse;
var IP_RANGES = {
linklocal: ["169.254.0.0/16", "fe80::/10"],
loopback: ["127.0.0.1/8", "::1/128"],
uniquelocal: ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "fc00::/7"]
};
function alladdrs(req, trust) {
var addrs = forwarded(req);
if (!trust) {
return addrs;
}
if (typeof trust !== "function") {
trust = compile(trust);
}
for (var i = 0; i < addrs.length - 1; i++) {
if (trust(addrs[i], i)) continue;
addrs.length = i + 1;
}
return addrs;
}
function compile(val) {
if (!val) {
throw new TypeError("argument is required");
}
var trust;
if (typeof val === "string") {
trust = [val];
} else if (Array.isArray(val)) {
trust = val.slice();
} else {
throw new TypeError("unsupported trust argument");
}
for (var i = 0; i < trust.length; i++) {
val = trust[i];
if (!Object.prototype.hasOwnProperty.call(IP_RANGES, val)) {
continue;
}
val = IP_RANGES[val];
trust.splice.apply(trust, [i, 1].concat(val));
i += val.length - 1;
}
return compileTrust(compileRangeSubnets(trust));
}
function compileRangeSubnets(arr) {
var rangeSubnets = new Array(arr.length);
for (var i = 0; i < arr.length; i++) {
rangeSubnets[i] = parseipNotation(arr[i]);
}
return rangeSubnets;
}
function compileTrust(rangeSubnets) {
var len = rangeSubnets.length;
return len === 0 ? trustNone : len === 1 ? trustSingle(rangeSubnets[0]) : trustMulti(rangeSubnets);
}
function parseipNotation(note) {
var pos = note.lastIndexOf("/");
var str = pos !== -1 ? note.substring(0, pos) : note;
if (!isip(str)) {
throw new TypeError("invalid IP address: " + str);
}
var ip = parseip(str);
if (pos === -1 && ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) {
ip = ip.toIPv4Address();
}
var max = ip.kind() === "ipv6" ? 128 : 32;
var range = pos !== -1 ? note.substring(pos + 1, note.length) : null;
if (range === null) {
range = max;
} else if (DIGIT_REGEXP.test(range)) {
range = parseInt(range, 10);
} else if (ip.kind() === "ipv4" && isip(range)) {
range = parseNetmask(range);
} else {
range = null;
}
if (range <= 0 || range > max) {
throw new TypeError("invalid range on address: " + note);
}
return [ip, range];
}
function parseNetmask(netmask) {
var ip = parseip(netmask);
var kind = ip.kind();
return kind === "ipv4" ? ip.prefixLengthFromSubnetMask() : null;
}
function proxyaddr(req, trust) {
if (!req) {
throw new TypeError("req argument is required");
}
if (!trust) {
throw new TypeError("trust argument is required");
}
var addrs = alladdrs(req, trust);
var addr = addrs[addrs.length - 1];
return addr;
}
function trustNone() {
return false;
}
function trustMulti(subnets) {
return function trust(addr) {
if (!isip(addr)) return false;
var ip = parseip(addr);
var ipconv;
var kind = ip.kind();
for (var i = 0; i < subnets.length; i++) {
var subnet = subnets[i];
var subnetip = subnet[0];
var subnetkind = subnetip.kind();
var subnetrange = subnet[1];
var trusted = ip;
if (kind !== subnetkind) {
if (subnetkind === "ipv4" && !ip.isIPv4MappedAddress()) {
continue;
}
if (!ipconv) {
ipconv = subnetkind === "ipv4" ? ip.toIPv4Address() : ip.toIPv4MappedAddress();
}
trusted = ipconv;
}
if (trusted.match(subnetip, subnetrange)) {
return true;
}
}
return false;
};
}
function trustSingle(subnet) {
var subnetip = subnet[0];
var subnetkind = subnetip.kind();
var subnetisipv4 = subnetkind === "ipv4";
var subnetrange = subnet[1];
return function trust(addr) {
if (!isip(addr)) return false;
var ip = parseip(addr);
var kind = ip.kind();
if (kind !== subnetkind) {
if (subnetisipv4 && !ip.isIPv4MappedAddress()) {
return false;
}
ip = subnetisipv4 ? ip.toIPv4Address() : ip.toIPv4MappedAddress();
}
return ip.match(subnetip, subnetrange);
};
}
}
});
var require_utils3 = __commonJS2({
"node_modules/express/lib/utils.js"(exports2) {
"use strict";
var { METHODS } = require("node:http");
var contentType2 = require_content_type();
var etag = require_etag();
var mime = require_mime_types22();
var proxyaddr = require_proxy_addr();
var qs = require_lib3();
var querystring = require("querystring");
exports2.methods = METHODS.map((method) => method.toLowerCase());
exports2.etag = createETagGenerator({ weak: false });
exports2.wetag = createETagGenerator({ weak: true });
exports2.normalizeType = function(type) {
return ~type.indexOf("/") ? acceptParams(type) : { value: mime.lookup(type) || "application/octet-stream", params: {} };
};
exports2.normalizeTypes = function(types) {
return types.map(exports2.normalizeType);
};
function acceptParams(str) {
var length = str.length;
var colonIndex = str.indexOf(";");
var index = colonIndex === -1 ? length : colonIndex;
var ret = { value: str.slice(0, index).trim(), quality: 1, params: {} };
while (index < length) {
var splitIndex = str.indexOf("=", index);
if (splitIndex === -1) break;
var colonIndex = str.indexOf(";", index);
var endIndex = colonIndex === -1 ? length : colonIndex;
if (splitIndex > endIndex) {
index = str.lastIndexOf(";", splitIndex - 1) + 1;
continue;
}
var key = str.slice(index, splitIndex).trim();
var value = str.slice(splitIndex + 1, endIndex).trim();
if (key === "q") {
ret.quality = parseFloat(value);
} else {
ret.params[key] = value;
}
index = endIndex + 1;
}
return ret;
}
exports2.compileETag = function(val) {
var fn;
if (typeof val === "function") {
return val;
}
switch (val) {
case true:
case "weak":
fn = exports2.wetag;
break;
case false:
break;
case "strong":
fn = exports2.etag;
break;
default:
throw new TypeError("unknown value for etag function: " + val);
}
return fn;
};
exports2.compileQueryParser = function compileQueryParser(val) {
var fn;
if (typeof val === "function") {
return val;
}
switch (val) {
case true:
case "simple":
fn = querystring.parse;
break;
case false:
break;
case "extended":
fn = parseExtendedQueryString;
break;
default:
throw new TypeError("unknown value for query parser function: " + val);
}
return fn;
};
exports2.compileTrust = function(val) {
if (typeof val === "function") return val;
if (val === true) {
return function() {
return true;
};
}
if (typeof val === "number") {
return function(a, i) {
return i < val;
};
}
if (typeof val === "string") {
val = val.split(",").map(function(v) {
return v.trim();
});
}
return proxyaddr.compile(val || []);
};
exports2.setCharset = function setCharset(type, charset) {
if (!type || !charset) {
return type;
}
var parsed = contentType2.parse(type);
parsed.parameters.charset = charset;
return contentType2.format(parsed);
};
function createETagGenerator(options) {
return function generateETag(body, encoding) {
var buf = !Buffer.isBuffer(body) ? Buffer.from(body, encoding) : body;
return etag(buf, options);
};
}
function parseExtendedQueryString(str) {
return qs.parse(str, {
allowPrototypes: true
});
}
}
});
var require_wrappy = __commonJS2({
"node_modules/wrappy/wrappy.js"(exports2, module2) {
module2.exports = wrappy;
function wrappy(fn, cb) {
if (fn && cb) return wrappy(fn)(cb);
if (typeof fn !== "function")
throw new TypeError("need wrapper function");
Object.keys(fn).forEach(function(k) {
wrapper[k] = fn[k];
});
return wrapper;
function wrapper() {
var args = new Array(arguments.length);
for (var i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
var ret = fn.apply(this, args);
var cb2 = args[args.length - 1];
if (typeof ret === "function" && ret !== cb2) {
Object.keys(cb2).forEach(function(k) {
ret[k] = cb2[k];
});
}
return ret;
}
}
}
});
var require_once = __commonJS2({
"node_modules/once/once.js"(exports2, module2) {
var wrappy = require_wrappy();
module2.exports = wrappy(once);
module2.exports.strict = wrappy(onceStrict);
once.proto = once(function() {
Object.defineProperty(Function.prototype, "once", {
value: function() {
return once(this);
},
configurable: true
});
Object.defineProperty(Function.prototype, "onceStrict", {
value: function() {
return onceStrict(this);
},
configurable: true
});
});
function once(fn) {
var f = function() {
if (f.called) return f.value;
f.called = true;
return f.value = fn.apply(this, arguments);
};
f.called = false;
return f;
}
function onceStrict(fn) {
var f = function() {
if (f.called)
throw new Error(f.onceError);
f.called = true;
return f.value = fn.apply(this, arguments);
};
var name = fn.name || "Function wrapped with `once`";
f.onceError = name + " shouldn't be called more than once";
f.called = false;
return f;
}
}
});
var require_is_promise = __commonJS2({
"node_modules/is-promise/index.js"(exports2, module2) {
module2.exports = isPromise;
module2.exports.default = isPromise;
function isPromise(obj) {
return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";
}
}
});
var require_dist = __commonJS2({
"node_modules/path-to-regexp/dist/index.js"(exports2) {
"use strict";
Object.defineProperty(exports2, "__esModule", { value: true });
exports2.TokenData = void 0;
exports2.parse = parse;
exports2.compile = compile;
exports2.match = match;
exports2.pathToRegexp = pathToRegexp;
exports2.stringify = stringify;
var DEFAULT_DELIMITER = "/";
var NOOP_VALUE = (value) => value;
var ID_START = /^[$_\p{ID_Start}]$/u;
var ID_CONTINUE = /^[$\u200c\u200d\p{ID_Continue}]$/u;
var DEBUG_URL = "https://git.new/pathToRegexpError";
var SIMPLE_TOKENS = {
// Groups.
"{": "{",
"}": "}",
// Reserved.
"(": "(",
")": ")",
"[": "[",
"]": "]",
"+": "+",
"?": "?",
"!": "!"
};
function escapeText(str) {
return str.replace(/[{}()\[\]+?!:*]/g, "\\$&");
}
function escape2(str) {
return str.replace(/[.+*?^${}()[\]|/\\]/g, "\\$&");
}
function* lexer(str) {
const chars = [...str];
let i = 0;
function name() {
let value = "";
if (ID_START.test(chars[++i])) {
value += chars[i];
while (ID_CONTINUE.test(chars[++i])) {
value += chars[i];
}
} else if (chars[i] === '"') {
let pos = i;
while (i < chars.length) {
if (chars[++i] === '"') {
i++;
pos = 0;
break;
}
if (chars[i] === "\\") {
value += chars[++i];
} else {
value += chars[i];
}
}
if (pos) {
throw new TypeError(`Unterminated quote at ${pos}: ${DEBUG_URL}`);
}
}
if (!value) {
throw new TypeError(`Missing parameter name at ${i}: ${DEBUG_URL}`);
}
return value;
}
while (i < chars.length) {
const value = chars[i];
const type = SIMPLE_TOKENS[value];
if (type) {
yield { type, index: i++, value };
} else if (value === "\\") {
yield { type: "ESCAPED", index: i++, value: chars[i++] };
} else if (value === ":") {
const value2 = name();
yield { type: "PARAM", index: i, value: value2 };
} else if (value === "*") {
const value2 = name();
yield { type: "WILDCARD", index: i, value: value2 };
} else {
yield { type: "CHAR", index: i, value: chars[i++] };
}
}
return { type: "END", index: i, value: "" };
}
var Iter = class {
constructor(tokens) {
this.tokens = tokens;
}
peek() {
if (!this._peek) {
const next = this.tokens.next();
this._peek = next.value;
}
return this._peek;
}
tryConsume(type) {
const token = this.peek();
if (token.type !== type)
return;
this._peek = void 0;
return token.value;
}
consume(type) {
const value = this.tryConsume(type);
if (value !== void 0)
return value;
const { type: nextType, index } = this.peek();
throw new TypeError(`Unexpected ${nextType} at ${index}, expected ${type}: ${DEBUG_URL}`);
}
text() {
let result = "";
let value;
while (value = this.tryConsume("CHAR") || this.tryConsume("ESCAPED")) {
result += value;
}
return result;
}
};
var TokenData = class {
constructor(tokens) {
this.tokens = tokens;
}
};
exports2.TokenData = TokenData;
function parse(str, options = {}) {
const { encodePath = NOOP_VALUE } = options;
const it = new Iter(lexer(str));
function consume(endType) {
const tokens2 = [];
while (true) {
const path = it.text();
if (path)
tokens2.push({ type: "text", value: encodePath(path) });
const param = it.tryConsume("PARAM");
if (param) {
tokens2.push({
type: "param",
name: param
});
continue;
}
const wildcard = it.tryConsume("WILDCARD");
if (wildcard) {
tokens2.push({
type: "wildcard",
name: wildcard
});
continue;
}
const open = it.tryConsume("{");
if (open) {
tokens2.push({
type: "group",
tokens: consume("}")
});
continue;
}
it.consume(endType);
return tokens2;
}
}
const tokens = consume("END");
return new TokenData(tokens);
}
function compile(path, options = {}) {
const { encode: encode3 = encodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;
const data = path instanceof TokenData ? path : parse(path, options);
const fn = tokensToFunction(data.tokens, delimiter, encode3);
return function path2(data2 = {}) {
const [path3, ...missing] = fn(data2);
if (missing.length) {
throw new TypeError(`Missing parameters: ${missing.join(", ")}`);
}
return path3;
};
}
function tokensToFunction(tokens, delimiter, encode3) {
const encoders = tokens.map((token) => tokenToFunction(token, delimiter, encode3));
return (data) => {
const result = [""];
for (const encoder of encoders) {
const [value, ...extras] = encoder(data);
result[0] += value;
result.push(...extras);
}
return result;
};
}
function tokenToFunction(token, delimiter, encode3) {
if (token.type === "text")
return () => [token.value];
if (token.type === "group") {
const fn = tokensToFunction(token.tokens, delimiter, encode3);
return (data) => {
const [value, ...missing] = fn(data);
if (!missing.length)
return [value];
return [""];
};
}
const encodeValue = encode3 || NOOP_VALUE;
if (token.type === "wildcard" && encode3 !== false) {
return (data) => {
const value = data[token.name];
if (value == null)
return ["", token.name];
if (!Array.isArray(value) || value.length === 0) {
throw new TypeError(`Expected "${token.name}" to be a non-empty array`);
}
return [
value.map((value2, index) => {
if (typeof value2 !== "string") {
throw new TypeError(`Expected "${token.name}/${index}" to be a string`);
}
return encodeValue(value2);
}).join(delimiter)
];
};
}
return (data) => {
const value = data[token.name];
if (value == null)
return ["", token.name];
if (typeof value !== "string") {
throw new TypeError(`Expected "${token.name}" to be a string`);
}
return [encodeValue(value)];
};
}
function match(path, options = {}) {
const { decode = decodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;
const { regexp, keys } = pathToRegexp(path, options);
const decoders = keys.map((key) => {
if (decode === false)
return NOOP_VALUE;
if (key.type === "param")
return decode;
return (value) => value.split(delimiter).map(decode);
});
return function match2(input) {
const m = regexp.exec(input);
if (!m)
return false;
const path2 = m[0];
const params = /* @__PURE__ */ Object.create(null);
for (let i = 1; i < m.length; i++) {
if (m[i] === void 0)
continue;
const key = keys[i - 1];
const decoder = decoders[i - 1];
params[key.name] = decoder(m[i]);
}
return { path: path2, params };
};
}
function pathToRegexp(path, options = {}) {
const { delimiter = DEFAULT_DELIMITER, end = true, sensitive = false, trailing = true } = options;
const keys = [];
const sources = [];
const flags = sensitive ? "" : "i";
const paths = Array.isArray(path) ? path : [path];
const items = paths.map((path2) => path2 instanceof TokenData ? path2 : parse(path2, options));
for (const { tokens } of items) {
for (const seq of flatten(tokens, 0, [])) {
const regexp2 = sequenceToRegExp(seq, delimiter, keys);
sources.push(regexp2);
}
}
let pattern = `^(?:${sources.join("|")})`;
if (trailing)
pattern += `(?:${escape2(delimiter)}$)?`;
pattern += end ? "$" : `(?=${escape2(delimiter)}|$)`;
const regexp = new RegExp(pattern, flags);
return { regexp, keys };
}
function* flatten(tokens, index, init) {
if (index === tokens.length) {
return yield init;
}
const token = tokens[index];
if (token.type === "group") {
const fork = init.slice();
for (const seq of flatten(token.tokens, 0, fork)) {
yield* flatten(tokens, index + 1, seq);
}
} else {
init.push(token);
}
yield* flatten(tokens, index + 1, init);
}
function sequenceToRegExp(tokens, delimiter, keys) {
let result = "";
let backtrack = "";
let isSafeSegmentParam = true;
for (let i = 0; i < tokens.length; i++) {
const token = tokens[i];
if (token.type === "text") {
result += escape2(token.value);
backtrack += token.value;
isSafeSegmentParam || (isSafeSegmentParam = token.value.includes(delimiter));
continue;
}
if (token.type === "param" || token.type === "wildcard") {
if (!isSafeSegmentParam && !backtrack) {
throw new TypeError(`Missing text after "${token.name}": ${DEBUG_URL}`);
}
if (token.type === "param") {
result += `(${negate(delimiter, isSafeSegmentParam ? "" : backtrack)}+)`;
} else {
result += `([\\s\\S]+)`;
}
keys.push(token);
backtrack = "";
isSafeSegmentParam = false;
continue;
}
}
return result;
}
function negate(delimiter, backtrack) {
if (backtrack.length < 2) {
if (delimiter.length < 2)
return `[^${escape2(delimiter + backtrack)}]`;
return `(?:(?!${escape2(delimiter)})[^${escape2(backtrack)}])`;
}
if (delimiter.length < 2) {
return `(?:(?!${escape2(backtrack)})[^${escape2(delimiter)}])`;
}
return `(?:(?!${escape2(backtrack)}|${escape2(delimiter)})[\\s\\S])`;
}
function stringify(data) {
return data.tokens.map(function stringifyToken(token, index, tokens) {
if (token.type === "text")
return escapeText(token.value);
if (token.type === "group") {
return `{${token.tokens.map(stringifyToken).join("")}}`;
}
const isSafe = isNameSafe(token.name) && isNextNameSafe(tokens[index + 1]);
const key = isSafe ? token.name : JSON.stringify(token.name);
if (token.type === "param")
return `:${key}`;
if (token.type === "wildcard")
return `*${key}`;
throw new TypeError(`Unexpected token: ${token}`);
}).join("");
}
function isNameSafe(name) {
const [first, ...rest] = name;
if (!ID_START.test(first))
return false;
return rest.every((char) => ID_CONTINUE.test(char));
}
function isNextNameSafe(token) {
if ((token === null || token === void 0 ? void 0 : token.type) !== "text")
return true;
return !ID_CONTINUE.test(token.value[0]);
}
}
});
var require_layer = __commonJS2({
"node_modules/router/lib/layer.js"(exports2, module2) {
"use strict";
var isPromise = require_is_promise();
var pathRegexp = require_dist();
var debug = require_src2()("router:layer");
var deprecate = require_depd()("router");
var TRAILING_SLASH_REGEXP = /\/+$/;
var MATCHING_GROUP_REGEXP = /\((?:\?<(.*?)>)?(?!\?)/g;
module2.exports = Layer;
function Layer(path, options, fn) {
if (!(this instanceof Layer)) {
return new Layer(path, options, fn);
}
debug("new %o", path);
const opts = options || {};
this.handle = fn;
this.keys = [];
this.name = fn.name || "<anonymous>";
this.params = void 0;
this.path = void 0;
this.slash = path === "/" && opts.end === false;
function matcher(_path) {
if (_path instanceof RegExp) {
const keys = [];
let name = 0;
let m;
while (m = MATCHING_GROUP_REGEXP.exec(_path.source)) {
keys.push({
name: m[1] || name++,
offset: m.index
});
}
return function regexpMatcher(p) {
const match = _path.exec(p);
if (!match) {
return false;
}
const params = {};
for (let i = 1; i < match.length; i++) {
const key = keys[i - 1];
const prop = key.name;
const val = decodeParam(match[i]);
if (val !== void 0) {
params[prop] = val;
}
}
return {
params,
path: match[0]
};
};
}
return pathRegexp.match(opts.strict ? _path : loosen(_path), {
sensitive: opts.sensitive,
end: opts.end,
trailing: !opts.strict,
decode: decodeParam
});
}
this.matchers = Array.isArray(path) ? path.map(matcher) : [matcher(path)];
}
Layer.prototype.handleError = function handleError(error, req, res, next) {
const fn = this.handle;
if (fn.length !== 4) {
return next(error);
}
try {
const ret = fn(error, req, res, next);
if (isPromise(ret)) {
if (!(ret instanceof Promise)) {
deprecate("handlers that are Promise-like are deprecated, use a native Promise instead");
}
ret.then(null, function(error2) {
next(error2 || new Error("Rejected promise"));
});
}
} catch (err2) {
next(err2);
}
};
Layer.prototype.handleRequest = function handleRequest(req, res, next) {
const fn = this.handle;
if (fn.length > 3) {
return next();
}
try {
const ret = fn(req, res, next);
if (isPromise(ret)) {
if (!(ret instanceof Promise)) {
deprecate("handlers that are Promise-like are deprecated, use a native Promise instead");
}
ret.then(null, function(error) {
next(error || new Error("Rejected promise"));
});
}
} catch (err2) {
next(err2);
}
};
Layer.prototype.match = function match(path) {
let match2;
if (path != null) {
if (this.slash) {
this.params = {};
this.path = "";
return true;
}
let i = 0;
while (!match2 && i < this.matchers.length) {
match2 = this.matchers[i](path);
i++;
}
}
if (!match2) {
this.params = void 0;
this.path = void 0;
return false;
}
this.params = match2.params;
this.path = match2.path;
this.keys = Object.keys(match2.params);
return true;
};
function decodeParam(val) {
if (typeof val !== "string" || val.length === 0) {
return val;
}
try {
return decodeURIComponent(val);
} catch (err2) {
if (err2 instanceof URIError) {
err2.message = "Failed to decode param '" + val + "'";
err2.status = 400;
}
throw err2;
}
}
function loosen(path) {
if (path instanceof RegExp || path === "/") {
return path;
}
return Array.isArray(path) ? path.map(function(p) {
return loosen(p);
}) : String(path).replace(TRAILING_SLASH_REGEXP, "");
}
}
});
var require_route = __commonJS2({
"node_modules/router/lib/route.js"(exports2, module2) {
"use strict";
var debug = require_src2()("router:route");
var Layer = require_layer();
var { METHODS } = require("node:http");
var slice = Array.prototype.slice;
var flatten = Array.prototype.flat;
var methods = METHODS.map((method) => method.toLowerCase());
module2.exports = Route;
function Route(path) {
debug("new %o", path);
this.path = path;
this.stack = [];
this.methods = /* @__PURE__ */ Object.create(null);
}
Route.prototype._handlesMethod = function _handlesMethod(method) {
if (this.methods._all) {
return true;
}
let name = typeof method === "string" ? method.toLowerCase() : method;
if (name === "head" && !this.methods.head) {
name = "get";
}
return Boolean(this.methods[name]);
};
Route.prototype._methods = function _methods() {
const methods2 = Object.keys(this.methods);
if (this.methods.get && !this.methods.head) {
methods2.push("head");
}
for (let i = 0; i < methods2.length; i++) {
methods2[i] = methods2[i].toUpperCase();
}
return methods2;
};
Route.prototype.dispatch = function dispatch(req, res, done) {
let idx = 0;
const stack = this.stack;
let sync = 0;
if (stack.length === 0) {
return done();
}
let method = typeof req.method === "string" ? req.method.toLowerCase() : req.method;
if (method === "head" && !this.methods.head) {
method = "get";
}
req.route = this;
next();
function next(err2) {
if (err2 && err2 === "route") {
return done();
}
if (err2 && err2 === "router") {
return done(err2);
}
if (idx >= stack.length) {
return done(err2);
}
if (++sync > 100) {
return setImmediate(next, err2);
}
let layer;
let match;
while (match !== true && idx < stack.length) {
layer = stack[idx++];
match = !layer.method || layer.method === method;
}
if (match !== true) {
return done(err2);
}
if (err2) {
layer.handleError(err2, req, res, next);
} else {
layer.handleRequest(req, res, next);
}
sync = 0;
}
};
Route.prototype.all = function all3(handler) {
const callbacks = flatten.call(slice.call(arguments), Infinity);
if (callbacks.length === 0) {
throw new TypeError("argument handler is required");
}
for (let i = 0; i < callbacks.length; i++) {
const fn = callbacks[i];
if (typeof fn !== "function") {
throw new TypeError("argument handler must be a function");
}
const layer = Layer("/", {}, fn);
layer.method = void 0;
this.methods._all = true;
this.stack.push(layer);
}
return this;
};
methods.forEach(function(method) {
Route.prototype[method] = function(handler) {
const callbacks = flatten.call(slice.call(arguments), Infinity);
if (callbacks.length === 0) {
throw new TypeError("argument handler is required");
}
for (let i = 0; i < callbacks.length; i++) {
const fn = callbacks[i];
if (typeof fn !== "function") {
throw new TypeError("argument handler must be a function");
}
debug("%s %s", method, this.path);
const layer = Layer("/", {}, fn);
layer.method = method;
this.methods[method] = true;
this.stack.push(layer);
}
return this;
};
});
}
});
var require_router = __commonJS2({
"node_modules/router/index.js"(exports2, module2) {
"use strict";
var isPromise = require_is_promise();
var Layer = require_layer();
var { METHODS } = require("node:http");
var parseUrl = require_parseurl();
var Route = require_route();
var debug = require_src2()("router");
var deprecate = require_depd()("router");
var slice = Array.prototype.slice;
var flatten = Array.prototype.flat;
var methods = METHODS.map((method) => method.toLowerCase());
module2.exports = Router;
module2.exports.Route = Route;
function Router(options) {
if (!(this instanceof Router)) {
return new Router(options);
}
const opts = options || {};
function router(req, res, next) {
router.handle(req, res, next);
}
Object.setPrototypeOf(router, this);
router.caseSensitive = opts.caseSensitive;
router.mergeParams = opts.mergeParams;
router.params = {};
router.strict = opts.strict;
router.stack = [];
return router;
}
Router.prototype = function() {
};
Router.prototype.param = function param(name, fn) {
if (!name) {
throw new TypeError("argument name is required");
}
if (typeof name !== "string") {
throw new TypeError("argument name must be a string");
}
if (!fn) {
throw new TypeError("argument fn is required");
}
if (typeof fn !== "function") {
throw new TypeError("argument fn must be a function");
}
let params = this.params[name];
if (!params) {
params = this.params[name] = [];
}
params.push(fn);
return this;
};
Router.prototype.handle = function handle(req, res, callback) {
if (!callback) {
throw new TypeError("argument callback is required");
}
debug("dispatching %s %s", req.method, req.url);
let idx = 0;
let methods2;
const protohost = getProtohost(req.url) || "";
let removed = "";
const self2 = this;
let slashAdded = false;
let sync = 0;
const paramcalled = {};
const stack = this.stack;
const parentParams = req.params;
const parentUrl = req.baseUrl || "";
let done = restore(callback, req, "baseUrl", "next", "params");
req.next = next;
if (req.method === "OPTIONS") {
methods2 = [];
done = wrap(done, generateOptionsResponder(res, methods2));
}
req.baseUrl = parentUrl;
req.originalUrl = req.originalUrl || req.url;
next();
function next(err2) {
let layerError = err2 === "route" ? null : err2;
if (slashAdded) {
req.url = req.url.slice(1);
slashAdded = false;
}
if (removed.length !== 0) {
req.baseUrl = parentUrl;
req.url = protohost + removed + req.url.slice(protohost.length);
removed = "";
}
if (layerError === "router") {
setImmediate(done, null);
return;
}
if (idx >= stack.length) {
setImmediate(done, layerError);
return;
}
if (++sync > 100) {
return setImmediate(next, err2);
}
const path = getPathname(req);
if (path == null) {
return done(layerError);
}
let layer;
let match;
let route;
while (match !== true && idx < stack.length) {
layer = stack[idx++];
match = matchLayer(layer, path);
route = layer.route;
if (typeof match !== "boolean") {
layerError = layerError || match;
}
if (match !== true) {
continue;
}
if (!route) {
continue;
}
if (layerError) {
match = false;
continue;
}
const method = req.method;
const hasMethod = route._handlesMethod(method);
if (!hasMethod && method === "OPTIONS" && methods2) {
methods2.push.apply(methods2, route._methods());
}
if (!hasMethod && method !== "HEAD") {
match = false;
}
}
if (match !== true) {
return done(layerError);
}
if (route) {
req.route = route;
}
req.params = self2.mergeParams ? mergeParams(layer.params, parentParams) : layer.params;
const layerPath = layer.path;
processParams(self2.params, layer, paramcalled, req, res, function(err3) {
if (err3) {
next(layerError || err3);
} else if (route) {
layer.handleRequest(req, res, next);
} else {
trimPrefix(layer, layerError, layerPath, path);
}
sync = 0;
});
}
function trimPrefix(layer, layerError, layerPath, path) {
if (layerPath.length !== 0) {
if (layerPath !== path.substring(0, layerPath.length)) {
next(layerError);
return;
}
const c = path[layerPath.length];
if (c && c !== "/") {
next(layerError);
return;
}
debug("trim prefix (%s) from url %s", layerPath, req.url);
removed = layerPath;
req.url = protohost + req.url.slice(protohost.length + removed.length);
if (!protohost && req.url[0] !== "/") {
req.url = "/" + req.url;
slashAdded = true;
}
req.baseUrl = parentUrl + (removed[removed.length - 1] === "/" ? removed.substring(0, removed.length - 1) : removed);
}
debug("%s %s : %s", layer.name, layerPath, req.originalUrl);
if (layerError) {
layer.handleError(layerError, req, res, next);
} else {
layer.handleRequest(req, res, next);
}
}
};
Router.prototype.use = function use(handler) {
let offset = 0;
let path = "/";
if (typeof handler !== "function") {
let arg = handler;
while (Array.isArray(arg) && arg.length !== 0) {
arg = arg[0];
}
if (typeof arg !== "function") {
offset = 1;
path = handler;
}
}
const callbacks = flatten.call(slice.call(arguments, offset), Infinity);
if (callbacks.length === 0) {
throw new TypeError("argument handler is required");
}
for (let i = 0; i < callbacks.length; i++) {
const fn = callbacks[i];
if (typeof fn !== "function") {
throw new TypeError("argument handler must be a function");
}
debug("use %o %s", path, fn.name || "<anonymous>");
const layer = new Layer(path, {
sensitive: this.caseSensitive,
strict: false,
end: false
}, fn);
layer.route = void 0;
this.stack.push(layer);
}
return this;
};
Router.prototype.route = function route(path) {
const route2 = new Route(path);
const layer = new Layer(path, {
sensitive: this.caseSensitive,
strict: this.strict,
end: true
}, handle);
function handle(req, res, next) {
route2.dispatch(req, res, next);
}
layer.route = route2;
this.stack.push(layer);
return route2;
};
methods.concat("all").forEach(function(method) {
Router.prototype[method] = function(path) {
const route = this.route(path);
route[method].apply(route, slice.call(arguments, 1));
return this;
};
});
function generateOptionsResponder(res, methods2) {
return function onDone(fn, err2) {
if (err2 || methods2.length === 0) {
return fn(err2);
}
trySendOptionsResponse(res, methods2, fn);
};
}
function getPathname(req) {
try {
return parseUrl(req).pathname;
} catch (err2) {
return void 0;
}
}
function getProtohost(url2) {
if (typeof url2 !== "string" || url2.length === 0 || url2[0] === "/") {
return void 0;
}
const searchIndex = url2.indexOf("?");
const pathLength = searchIndex !== -1 ? searchIndex : url2.length;
const fqdnIndex = url2.substring(0, pathLength).indexOf("://");
return fqdnIndex !== -1 ? url2.substring(0, url2.indexOf("/", 3 + fqdnIndex)) : void 0;
}
function matchLayer(layer, path) {
try {
return layer.match(path);
} catch (err2) {
return err2;
}
}
function mergeParams(params, parent) {
if (typeof parent !== "object" || !parent) {
return params;
}
const obj = Object.assign({}, parent);
if (!(0 in params) || !(0 in parent)) {
return Object.assign(obj, params);
}
let i = 0;
let o = 0;
while (i in params) {
i++;
}
while (o in parent) {
o++;
}
for (i--; i >= 0; i--) {
params[i + o] = params[i];
if (i < o) {
delete params[i];
}
}
return Object.assign(obj, params);
}
function processParams(params, layer, called, req, res, done) {
const keys = layer.keys;
if (!keys || keys.length === 0) {
return done();
}
let i = 0;
let paramIndex = 0;
let key;
let paramVal;
let paramCallbacks;
let paramCalled;
function param(err2) {
if (err2) {
return done(err2);
}
if (i >= keys.length) {
return done();
}
paramIndex = 0;
key = keys[i++];
paramVal = req.params[key];
paramCallbacks = params[key];
paramCalled = called[key];
if (paramVal === void 0 || !paramCallbacks) {
return param();
}
if (paramCalled && (paramCalled.match === paramVal || paramCalled.error && paramCalled.error !== "route")) {
req.params[key] = paramCalled.value;
return param(paramCalled.error);
}
called[key] = paramCalled = {
error: null,
match: paramVal,
value: paramVal
};
paramCallback();
}
function paramCallback(err2) {
const fn = paramCallbacks[paramIndex++];
paramCalled.value = req.params[key];
if (err2) {
paramCalled.error = err2;
param(err2);
return;
}
if (!fn) return param();
try {
const ret = fn(req, res, paramCallback, paramVal, key);
if (isPromise(ret)) {
if (!(ret instanceof Promise)) {
deprecate("parameters that are Promise-like are deprecated, use a native Promise instead");
}
ret.then(null, function(error) {
paramCallback(error || new Error("Rejected promise"));
});
}
} catch (e) {
paramCallback(e);
}
}
param();
}
function restore(fn, obj) {
const props = new Array(arguments.length - 2);
const vals = new Array(arguments.length - 2);
for (let i = 0; i < props.length; i++) {
props[i] = arguments[i + 2];
vals[i] = obj[props[i]];
}
return function() {
for (let i = 0; i < props.length; i++) {
obj[props[i]] = vals[i];
}
return fn.apply(this, arguments);
};
}
function sendOptionsResponse(res, methods2) {
const options = /* @__PURE__ */ Object.create(null);
for (let i = 0; i < methods2.length; i++) {
options[methods2[i]] = true;
}
const allow = Object.keys(options).sort().join(", ");
res.setHeader("Allow", allow);
res.setHeader("Content-Length", Buffer.byteLength(allow));
res.setHeader("Content-Type", "text/plain");
res.setHeader("X-Content-Type-Options", "nosniff");
res.end(allow);
}
function trySendOptionsResponse(res, methods2, next) {
try {
sendOptionsResponse(res, methods2);
} catch (err2) {
next(err2);
}
}
function wrap(old, fn) {
return function proxy() {
const args = new Array(arguments.length + 1);
args[0] = old;
for (let i = 0, len = arguments.length; i < len; i++) {
args[i + 1] = arguments[i];
}
fn.apply(this, args);
};
}
}
});
var require_application = __commonJS2({
"node_modules/express/lib/application.js"(exports2, module2) {
"use strict";
var finalhandler = require_finalhandler();
var debug = require_src2()("express:application");
var View = require_view();
var http2 = require("node:http");
var methods = require_utils3().methods;
var compileETag = require_utils3().compileETag;
var compileQueryParser = require_utils3().compileQueryParser;
var compileTrust = require_utils3().compileTrust;
var resolve = require("node:path").resolve;
var once = require_once();
var Router = require_router();
var slice = Array.prototype.slice;
var flatten = Array.prototype.flat;
var app = exports2 = module2.exports = {};
var trustProxyDefaultSymbol = "@@symbol:trust_proxy_default";
app.init = function init() {
var router = null;
this.cache = /* @__PURE__ */ Object.create(null);
this.engines = /* @__PURE__ */ Object.create(null);
this.settings = /* @__PURE__ */ Object.create(null);
this.defaultConfiguration();
Object.defineProperty(this, "router", {
configurable: true,
enumerable: true,
get: function getrouter() {
if (router === null) {
router = new Router({
caseSensitive: this.enabled("case sensitive routing"),
strict: this.enabled("strict routing")
});
}
return router;
}
});
};
app.defaultConfiguration = function defaultConfiguration() {
var env = "development";
this.enable("x-powered-by");
this.set("etag", "weak");
this.set("env", env);
this.set("query parser", "simple");
this.set("subdomain offset", 2);
this.set("trust proxy", false);
Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
configurable: true,
value: true
});
debug("booting in %s mode", env);
this.on("mount", function onmount(parent) {
if (this.settings[trustProxyDefaultSymbol] === true && typeof parent.settings["trust proxy fn"] === "function") {
delete this.settings["trust proxy"];
delete this.settings["trust proxy fn"];
}
Object.setPrototypeOf(this.request, parent.request);
Object.setPrototypeOf(this.response, parent.response);
Object.setPrototypeOf(this.engines, parent.engines);
Object.setPrototypeOf(this.settings, parent.settings);
});
this.locals = /* @__PURE__ */ Object.create(null);
this.mountpath = "/";
this.locals.settings = this.settings;
this.set("view", View);
this.set("views", resolve("views"));
this.set("jsonp callback name", "callback");
if (env === "production") {
this.enable("view cache");
}
};
app.handle = function handle(req, res, callback) {
var done = callback || finalhandler(req, res, {
env: this.get("env"),
onerror: logerror.bind(this)
});
if (this.enabled("x-powered-by")) {
res.setHeader("X-Powered-By", "Express");
}
req.res = res;
res.req = req;
Object.setPrototypeOf(req, this.request);
Object.setPrototypeOf(res, this.response);
if (!res.locals) {
res.locals = /* @__PURE__ */ Object.create(null);
}
this.router.handle(req, res, done);
};
app.use = function use(fn) {
var offset = 0;
var path = "/";
if (typeof fn !== "function") {
var arg = fn;
while (Array.isArray(arg) && arg.length !== 0) {
arg = arg[0];
}
if (typeof arg !== "function") {
offset = 1;
path = fn;
}
}
var fns = flatten.call(slice.call(arguments, offset), Infinity);
if (fns.length === 0) {
throw new TypeError("app.use() requires a middleware function");
}
var router = this.router;
fns.forEach(function(fn2) {
if (!fn2 || !fn2.handle || !fn2.set) {
return router.use(path, fn2);
}
debug(".use app under %s", path);
fn2.mountpath = path;
fn2.parent = this;
router.use(path, function mounted_app(req, res, next) {
var orig = req.app;
fn2.handle(req, res, function(err2) {
Object.setPrototypeOf(req, orig.request);
Object.setPrototypeOf(res, orig.response);
next(err2);
});
});
fn2.emit("mount", this);
}, this);
return this;
};
app.route = function route(path) {
return this.router.route(path);
};
app.engine = function engine(ext, fn) {
if (typeof fn !== "function") {
throw new Error("callback function required");
}
var extension = ext[0] !== "." ? "." + ext : ext;
this.engines[extension] = fn;
return this;
};
app.param = function param(name, fn) {
if (Array.isArray(name)) {
for (var i = 0; i < name.length; i++) {
this.param(name[i], fn);
}
return this;
}
this.router.param(name, fn);
return this;
};
app.set = function set(setting, val) {
if (arguments.length === 1) {
return this.settings[setting];
}
debug('set "%s" to %o', setting, val);
this.settings[setting] = val;
switch (setting) {
case "etag":
this.set("etag fn", compileETag(val));
break;
case "query parser":
this.set("query parser fn", compileQueryParser(val));
break;
case "trust proxy":
this.set("trust proxy fn", compileTrust(val));
Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
configurable: true,
value: false
});
break;
}
return this;
};
app.path = function path() {
return this.parent ? this.parent.path() + this.mountpath : "";
};
app.enabled = function enabled(setting) {
return Boolean(this.set(setting));
};
app.disabled = function disabled(setting) {
return !this.set(setting);
};
app.enable = function enable(setting) {
return this.set(setting, true);
};
app.disable = function disable(setting) {
return this.set(setting, false);
};
methods.forEach(function(method) {
app[method] = function(path) {
if (method === "get" && arguments.length === 1) {
return this.set(path);
}
var route = this.route(path);
route[method].apply(route, slice.call(arguments, 1));
return this;
};
});
app.all = function all3(path) {
var route = this.route(path);
var args = slice.call(arguments, 1);
for (var i = 0; i < methods.length; i++) {
route[methods[i]].apply(route, args);
}
return this;
};
app.render = function render(name, options, callback) {
var cache = this.cache;
var done = callback;
var engines = this.engines;
var opts = options;
var view;
if (typeof options === "function") {
done = options;
opts = {};
}
var renderOptions = { ...this.locals, ...opts._locals, ...opts };
if (renderOptions.cache == null) {
renderOptions.cache = this.enabled("view cache");
}
if (renderOptions.cache) {
view = cache[name];
}
if (!view) {
var View2 = this.get("view");
view = new View2(name, {
defaultEngine: this.get("view engine"),
root: this.get("views"),
engines
});
if (!view.path) {
var dirs = Array.isArray(view.root) && view.root.length > 1 ? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"' : 'directory "' + view.root + '"';
var err2 = new Error('Failed to lookup view "' + name + '" in views ' + dirs);
err2.view = view;
return done(err2);
}
if (renderOptions.cache) {
cache[name] = view;
}
}
tryRender(view, renderOptions, done);
};
app.listen = function listen() {
var server = http2.createServer(this);
var args = Array.prototype.slice.call(arguments);
if (typeof args[args.length - 1] === "function") {
var done = args[args.length - 1] = once(args[args.length - 1]);
server.once("error", done);
}
return server.listen.apply(server, args);
};
function logerror(err2) {
if (this.get("env") !== "test") console.error(err2.stack || err2.toString());
}
function tryRender(view, options, callback) {
try {
view.render(options, callback);
} catch (err2) {
callback(err2);
}
}
}
});
var require_charset = __commonJS2({
"node_modules/negotiator/lib/charset.js"(exports2, module2) {
"use strict";
module2.exports = preferredCharsets;
module2.exports.preferredCharsets = preferredCharsets;
var simpleCharsetRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
function parseAcceptCharset(accept) {
var accepts = accept.split(",");
for (var i = 0, j = 0; i < accepts.length; i++) {
var charset = parseCharset(accepts[i].trim(), i);
if (charset) {
accepts[j++] = charset;
}
}
accepts.length = j;
return accepts;
}
function parseCharset(str, i) {
var match = simpleCharsetRegExp.exec(str);
if (!match) return null;
var charset = match[1];
var q = 1;
if (match[2]) {
var params = match[2].split(";");
for (var j = 0; j < params.length; j++) {
var p = params[j].trim().split("=");
if (p[0] === "q") {
q = parseFloat(p[1]);
break;
}
}
}
return {
charset,
q,
i
};
}
function getCharsetPriority(charset, accepted, index) {
var priority = { o: -1, q: 0, s: 0 };
for (var i = 0; i < accepted.length; i++) {
var spec = specify(charset, accepted[i], index);
if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
priority = spec;
}
}
return priority;
}
function specify(charset, spec, index) {
var s = 0;
if (spec.charset.toLowerCase() === charset.toLowerCase()) {
s |= 1;
} else if (spec.charset !== "*") {
return null;
}
return {
i: index,
o: spec.i,
q: spec.q,
s
};
}
function preferredCharsets(accept, provided) {
var accepts = parseAcceptCharset(accept === void 0 ? "*" : accept || "");
if (!provided) {
return accepts.filter(isQuality).sort(compareSpecs).map(getFullCharset);
}
var priorities = provided.map(function getPriority(type, index) {
return getCharsetPriority(type, accepts, index);
});
return priorities.filter(isQuality).sort(compareSpecs).map(function getCharset(priority) {
return provided[priorities.indexOf(priority)];
});
}
function compareSpecs(a, b) {
return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
}
function getFullCharset(spec) {
return spec.charset;
}
function isQuality(spec) {
return spec.q > 0;
}
}
});
var require_encoding = __commonJS2({
"node_modules/negotiator/lib/encoding.js"(exports2, module2) {
"use strict";
module2.exports = preferredEncodings;
module2.exports.preferredEncodings = preferredEncodings;
var simpleEncodingRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
function parseAcceptEncoding(accept) {
var accepts = accept.split(",");
var hasIdentity = false;
var minQuality = 1;
for (var i = 0, j = 0; i < accepts.length; i++) {
var encoding = parseEncoding(accepts[i].trim(), i);
if (encoding) {
accepts[j++] = encoding;
hasIdentity = hasIdentity || specify("identity", encoding);
minQuality = Math.min(minQuality, encoding.q || 1);
}
}
if (!hasIdentity) {
accepts[j++] = {
encoding: "identity",
q: minQuality,
i
};
}
accepts.length = j;
return accepts;
}
function parseEncoding(str, i) {
var match = simpleEncodingRegExp.exec(str);
if (!match) return null;
var encoding = match[1];
var q = 1;
if (match[2]) {
var params = match[2].split(";");
for (var j = 0; j < params.length; j++) {
var p = params[j].trim().split("=");
if (p[0] === "q") {
q = parseFloat(p[1]);
break;
}
}
}
return {
encoding,
q,
i
};
}
function getEncodingPriority(encoding, accepted, index) {
var priority = { encoding, o: -1, q: 0, s: 0 };
for (var i = 0; i < accepted.length; i++) {
var spec = specify(encoding, accepted[i], index);
if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
priority = spec;
}
}
return priority;
}
function specify(encoding, spec, index) {
var s = 0;
if (spec.encoding.toLowerCase() === encoding.toLowerCase()) {
s |= 1;
} else if (spec.encoding !== "*") {
return null;
}
return {
encoding,
i: index,
o: spec.i,
q: spec.q,
s
};
}
function preferredEncodings(accept, provided, preferred) {
var accepts = parseAcceptEncoding(accept || "");
var comparator = preferred ? function comparator2(a, b) {
if (a.q !== b.q) {
return b.q - a.q;
}
var aPreferred = preferred.indexOf(a.encoding);
var bPreferred = preferred.indexOf(b.encoding);
if (aPreferred === -1 && bPreferred === -1) {
return b.s - a.s || a.o - b.o || a.i - b.i;
}
if (aPreferred !== -1 && bPreferred !== -1) {
return aPreferred - bPreferred;
}
return aPreferred === -1 ? 1 : -1;
} : compareSpecs;
if (!provided) {
return accepts.filter(isQuality).sort(comparator).map(getFullEncoding);
}
var priorities = provided.map(function getPriority(type, index) {
return getEncodingPriority(type, accepts, index);
});
return priorities.filter(isQuality).sort(comparator).map(function getEncoding(priority) {
return provided[priorities.indexOf(priority)];
});
}
function compareSpecs(a, b) {
return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i;
}
function getFullEncoding(spec) {
return spec.encoding;
}
function isQuality(spec) {
return spec.q > 0;
}
}
});
var require_language = __commonJS2({
"node_modules/negotiator/lib/language.js"(exports2, module2) {
"use strict";
module2.exports = preferredLanguages;
module2.exports.preferredLanguages = preferredLanguages;
var simpleLanguageRegExp = /^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;
function parseAcceptLanguage(accept) {
var accepts = accept.split(",");
for (var i = 0, j = 0; i < accepts.length; i++) {
var language = parseLanguage(accepts[i].trim(), i);
if (language) {
accepts[j++] = language;
}
}
accepts.length = j;
return accepts;
}
function parseLanguage(str, i) {
var match = simpleLanguageRegExp.exec(str);
if (!match) return null;
var prefix = match[1];
var suffix = match[2];
var full = prefix;
if (suffix) full += "-" + suffix;
var q = 1;
if (match[3]) {
var params = match[3].split(";");
for (var j = 0; j < params.length; j++) {
var p = params[j].split("=");
if (p[0] === "q") q = parseFloat(p[1]);
}
}
return {
prefix,
suffix,
q,
i,
full
};
}
function getLanguagePriority(language, accepted, index) {
var priority = { o: -1, q: 0, s: 0 };
for (var i = 0; i < accepted.length; i++) {
var spec = specify(language, accepted[i], index);
if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
priority = spec;
}
}
return priority;
}
function specify(language, spec, index) {
var p = parseLanguage(language);
if (!p) return null;
var s = 0;
if (spec.full.toLowerCase() === p.full.toLowerCase()) {
s |= 4;
} else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) {
s |= 2;
} else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) {
s |= 1;
} else if (spec.full !== "*") {
return null;
}
return {
i: index,
o: spec.i,
q: spec.q,
s
};
}
function preferredLanguages(accept, provided) {
var accepts = parseAcceptLanguage(accept === void 0 ? "*" : accept || "");
if (!provided) {
return accepts.filter(isQuality).sort(compareSpecs).map(getFullLanguage);
}
var priorities = provided.map(function getPriority(type, index) {
return getLanguagePriority(type, accepts, index);
});
return priorities.filter(isQuality).sort(compareSpecs).map(function getLanguage(priority) {
return provided[priorities.indexOf(priority)];
});
}
function compareSpecs(a, b) {
return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
}
function getFullLanguage(spec) {
return spec.full;
}
function isQuality(spec) {
return spec.q > 0;
}
}
});
var require_mediaType = __commonJS2({
"node_modules/negotiator/lib/mediaType.js"(exports2, module2) {
"use strict";
module2.exports = preferredMediaTypes;
module2.exports.preferredMediaTypes = preferredMediaTypes;
var simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
function parseAccept(accept) {
var accepts = splitMediaTypes(accept);
for (var i = 0, j = 0; i < accepts.length; i++) {
var mediaType = parseMediaType(accepts[i].trim(), i);
if (mediaType) {
accepts[j++] = mediaType;
}
}
accepts.length = j;
return accepts;
}
function parseMediaType(str, i) {
var match = simpleMediaTypeRegExp.exec(str);
if (!match) return null;
var params = /* @__PURE__ */ Object.create(null);
var q = 1;
var subtype = match[2];
var type = match[1];
if (match[3]) {
var kvps = splitParameters(match[3]).map(splitKeyValuePair);
for (var j = 0; j < kvps.length; j++) {
var pair = kvps[j];
var key = pair[0].toLowerCase();
var val = pair[1];
var value = val && val[0] === '"' && val[val.length - 1] === '"' ? val.slice(1, -1) : val;
if (key === "q") {
q = parseFloat(value);
break;
}
params[key] = value;
}
}
return {
type,
subtype,
params,
q,
i
};
}
function getMediaTypePriority(type, accepted, index) {
var priority = { o: -1, q: 0, s: 0 };
for (var i = 0; i < accepted.length; i++) {
var spec = specify(type, accepted[i], index);
if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
priority = spec;
}
}
return priority;
}
function specify(type, spec, index) {
var p = parseMediaType(type);
var s = 0;
if (!p) {
return null;
}
if (spec.type.toLowerCase() == p.type.toLowerCase()) {
s |= 4;
} else if (spec.type != "*") {
return null;
}
if (spec.subtype.toLowerCase() == p.subtype.toLowerCase()) {
s |= 2;
} else if (spec.subtype != "*") {
return null;
}
var keys = Object.keys(spec.params);
if (keys.length > 0) {
if (keys.every(function(k) {
return spec.params[k] == "*" || (spec.params[k] || "").toLowerCase() == (p.params[k] || "").toLowerCase();
})) {
s |= 1;
} else {
return null;
}
}
return {
i: index,
o: spec.i,
q: spec.q,
s
};
}
function preferredMediaTypes(accept, provided) {
var accepts = parseAccept(accept === void 0 ? "*/*" : accept || "");
if (!provided) {
return accepts.filter(isQuality).sort(compareSpecs).map(getFullType);
}
var priorities = provided.map(function getPriority(type, index) {
return getMediaTypePriority(type, accepts, index);
});
return priorities.filter(isQuality).sort(compareSpecs).map(function getType(priority) {
return provided[priorities.indexOf(priority)];
});
}
function compareSpecs(a, b) {
return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
}
function getFullType(spec) {
return spec.type + "/" + spec.subtype;
}
function isQuality(spec) {
return spec.q > 0;
}
function quoteCount(string) {
var count = 0;
var index = 0;
while ((index = string.indexOf('"', index)) !== -1) {
count++;
index++;
}
return count;
}
function splitKeyValuePair(str) {
var index = str.indexOf("=");
var key;
var val;
if (index === -1) {
key = str;
} else {
key = str.slice(0, index);
val = str.slice(index + 1);
}
return [key, val];
}
function splitMediaTypes(accept) {
var accepts = accept.split(",");
for (var i = 1, j = 0; i < accepts.length; i++) {
if (quoteCount(accepts[j]) % 2 == 0) {
accepts[++j] = accepts[i];
} else {
accepts[j] += "," + accepts[i];
}
}
accepts.length = j + 1;
return accepts;
}
function splitParameters(str) {
var parameters = str.split(";");
for (var i = 1, j = 0; i < parameters.length; i++) {
if (quoteCount(parameters[j]) % 2 == 0) {
parameters[++j] = parameters[i];
} else {
parameters[j] += ";" + parameters[i];
}
}
parameters.length = j + 1;
for (var i = 0; i < parameters.length; i++) {
parameters[i] = parameters[i].trim();
}
return parameters;
}
}
});
var require_negotiator = __commonJS2({
"node_modules/negotiator/index.js"(exports2, module2) {
"use strict";
var preferredCharsets = require_charset();
var preferredEncodings = require_encoding();
var preferredLanguages = require_language();
var preferredMediaTypes = require_mediaType();
module2.exports = Negotiator;
module2.exports.Negotiator = Negotiator;
function Negotiator(request) {
if (!(this instanceof Negotiator)) {
return new Negotiator(request);
}
this.request = request;
}
Negotiator.prototype.charset = function charset(available) {
var set = this.charsets(available);
return set && set[0];
};
Negotiator.prototype.charsets = function charsets(available) {
return preferredCharsets(this.request.headers["accept-charset"], available);
};
Negotiator.prototype.encoding = function encoding(available, opts) {
var set = this.encodings(available, opts);
return set && set[0];
};
Negotiator.prototype.encodings = function encodings(available, options) {
var opts = options || {};
return preferredEncodings(this.request.headers["accept-encoding"], available, opts.preferred);
};
Negotiator.prototype.language = function language(available) {
var set = this.languages(available);
return set && set[0];
};
Negotiator.prototype.languages = function languages(available) {
return preferredLanguages(this.request.headers["accept-language"], available);
};
Negotiator.prototype.mediaType = function mediaType(available) {
var set = this.mediaTypes(available);
return set && set[0];
};
Negotiator.prototype.mediaTypes = function mediaTypes(available) {
return preferredMediaTypes(this.request.headers.accept, available);
};
Negotiator.prototype.preferredCharset = Negotiator.prototype.charset;
Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets;
Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding;
Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings;
Negotiator.prototype.preferredLanguage = Negotiator.prototype.language;
Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages;
Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType;
Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes;
}
});
var require_db3 = __commonJS2({
"node_modules/accepts/node_modules/mime-db/db.json"(exports2, module2) {
module2.exports = {
"application/1d-interleaved-parityfec": {
source: "iana"
},
"application/3gpdash-qoe-report+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/3gpp-ims+xml": {
source: "iana",
compressible: true
},
"application/3gpphal+json": {
source: "iana",
compressible: true
},
"application/3gpphalforms+json": {
source: "iana",
compressible: true
},
"application/a2l": {
source: "iana"
},
"application/ace+cbor": {
source: "iana"
},
"application/ace+json": {
source: "iana",
compressible: true
},
"application/ace-groupcomm+cbor": {
source: "iana"
},
"application/ace-trl+cbor": {
source: "iana"
},
"application/activemessage": {
source: "iana"
},
"application/activity+json": {
source: "iana",
compressible: true
},
"application/aif+cbor": {
source: "iana"
},
"application/aif+json": {
source: "iana",
compressible: true
},
"application/alto-cdni+json": {
source: "iana",
compressible: true
},
"application/alto-cdnifilter+json": {
source: "iana",
compressible: true
},
"application/alto-costmap+json": {
source: "iana",
compressible: true
},
"application/alto-costmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-directory+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcost+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcostparams+json": {
source: "iana",
compressible: true
},
"application/alto-endpointprop+json": {
source: "iana",
compressible: true
},
"application/alto-endpointpropparams+json": {
source: "iana",
compressible: true
},
"application/alto-error+json": {
source: "iana",
compressible: true
},
"application/alto-networkmap+json": {
source: "iana",
compressible: true
},
"application/alto-networkmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-propmap+json": {
source: "iana",
compressible: true
},
"application/alto-propmapparams+json": {
source: "iana",
compressible: true
},
"application/alto-tips+json": {
source: "iana",
compressible: true
},
"application/alto-tipsparams+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamcontrol+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamparams+json": {
source: "iana",
compressible: true
},
"application/aml": {
source: "iana"
},
"application/andrew-inset": {
source: "iana",
extensions: ["ez"]
},
"application/appinstaller": {
compressible: false,
extensions: ["appinstaller"]
},
"application/applefile": {
source: "iana"
},
"application/applixware": {
source: "apache",
extensions: ["aw"]
},
"application/appx": {
compressible: false,
extensions: ["appx"]
},
"application/appxbundle": {
compressible: false,
extensions: ["appxbundle"]
},
"application/at+jwt": {
source: "iana"
},
"application/atf": {
source: "iana"
},
"application/atfx": {
source: "iana"
},
"application/atom+xml": {
source: "iana",
compressible: true,
extensions: ["atom"]
},
"application/atomcat+xml": {
source: "iana",
compressible: true,
extensions: ["atomcat"]
},
"application/atomdeleted+xml": {
source: "iana",
compressible: true,
extensions: ["atomdeleted"]
},
"application/atomicmail": {
source: "iana"
},
"application/atomsvc+xml": {
source: "iana",
compressible: true,
extensions: ["atomsvc"]
},
"application/atsc-dwd+xml": {
source: "iana",
compressible: true,
extensions: ["dwd"]
},
"application/atsc-dynamic-event-message": {
source: "iana"
},
"application/atsc-held+xml": {
source: "iana",
compressible: true,
extensions: ["held"]
},
"application/atsc-rdt+json": {
source: "iana",
compressible: true
},
"application/atsc-rsat+xml": {
source: "iana",
compressible: true,
extensions: ["rsat"]
},
"application/atxml": {
source: "iana"
},
"application/auth-policy+xml": {
source: "iana",
compressible: true
},
"application/automationml-aml+xml": {
source: "iana",
compressible: true,
extensions: ["aml"]
},
"application/automationml-amlx+zip": {
source: "iana",
compressible: false,
extensions: ["amlx"]
},
"application/bacnet-xdd+zip": {
source: "iana",
compressible: false
},
"application/batch-smtp": {
source: "iana"
},
"application/bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/beep+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/bufr": {
source: "iana"
},
"application/c2pa": {
source: "iana"
},
"application/calendar+json": {
source: "iana",
compressible: true
},
"application/calendar+xml": {
source: "iana",
compressible: true,
extensions: ["xcs"]
},
"application/call-completion": {
source: "iana"
},
"application/cals-1840": {
source: "iana"
},
"application/captive+json": {
source: "iana",
compressible: true
},
"application/cbor": {
source: "iana"
},
"application/cbor-seq": {
source: "iana"
},
"application/cccex": {
source: "iana"
},
"application/ccmp+xml": {
source: "iana",
compressible: true
},
"application/ccxml+xml": {
source: "iana",
compressible: true,
extensions: ["ccxml"]
},
"application/cda+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/cdfx+xml": {
source: "iana",
compressible: true,
extensions: ["cdfx"]
},
"application/cdmi-capability": {
source: "iana",
extensions: ["cdmia"]
},
"application/cdmi-container": {
source: "iana",
extensions: ["cdmic"]
},
"application/cdmi-domain": {
source: "iana",
extensions: ["cdmid"]
},
"application/cdmi-object": {
source: "iana",
extensions: ["cdmio"]
},
"application/cdmi-queue": {
source: "iana",
extensions: ["cdmiq"]
},
"application/cdni": {
source: "iana"
},
"application/ce+cbor": {
source: "iana"
},
"application/cea": {
source: "iana"
},
"application/cea-2018+xml": {
source: "iana",
compressible: true
},
"application/cellml+xml": {
source: "iana",
compressible: true
},
"application/cfw": {
source: "iana"
},
"application/cid-edhoc+cbor-seq": {
source: "iana"
},
"application/city+json": {
source: "iana",
compressible: true
},
"application/city+json-seq": {
source: "iana"
},
"application/clr": {
source: "iana"
},
"application/clue+xml": {
source: "iana",
compressible: true
},
"application/clue_info+xml": {
source: "iana",
compressible: true
},
"application/cms": {
source: "iana"
},
"application/cnrp+xml": {
source: "iana",
compressible: true
},
"application/coap-eap": {
source: "iana"
},
"application/coap-group+json": {
source: "iana",
compressible: true
},
"application/coap-payload": {
source: "iana"
},
"application/commonground": {
source: "iana"
},
"application/concise-problem-details+cbor": {
source: "iana"
},
"application/conference-info+xml": {
source: "iana",
compressible: true
},
"application/cose": {
source: "iana"
},
"application/cose-key": {
source: "iana"
},
"application/cose-key-set": {
source: "iana"
},
"application/cose-x509": {
source: "iana"
},
"application/cpl+xml": {
source: "iana",
compressible: true,
extensions: ["cpl"]
},
"application/csrattrs": {
source: "iana"
},
"application/csta+xml": {
source: "iana",
compressible: true
},
"application/cstadata+xml": {
source: "iana",
compressible: true
},
"application/csvm+json": {
source: "iana",
compressible: true
},
"application/cu-seeme": {
source: "apache",
extensions: ["cu"]
},
"application/cwl": {
source: "iana",
extensions: ["cwl"]
},
"application/cwl+json": {
source: "iana",
compressible: true
},
"application/cwl+yaml": {
source: "iana"
},
"application/cwt": {
source: "iana"
},
"application/cybercash": {
source: "iana"
},
"application/dart": {
compressible: true
},
"application/dash+xml": {
source: "iana",
compressible: true,
extensions: ["mpd"]
},
"application/dash-patch+xml": {
source: "iana",
compressible: true,
extensions: ["mpp"]
},
"application/dashdelta": {
source: "iana"
},
"application/davmount+xml": {
source: "iana",
compressible: true,
extensions: ["davmount"]
},
"application/dca-rft": {
source: "iana"
},
"application/dcd": {
source: "iana"
},
"application/dec-dx": {
source: "iana"
},
"application/dialog-info+xml": {
source: "iana",
compressible: true
},
"application/dicom": {
source: "iana",
extensions: ["dcm"]
},
"application/dicom+json": {
source: "iana",
compressible: true
},
"application/dicom+xml": {
source: "iana",
compressible: true
},
"application/dii": {
source: "iana"
},
"application/dit": {
source: "iana"
},
"application/dns": {
source: "iana"
},
"application/dns+json": {
source: "iana",
compressible: true
},
"application/dns-message": {
source: "iana"
},
"application/docbook+xml": {
source: "apache",
compressible: true,
extensions: ["dbk"]
},
"application/dots+cbor": {
source: "iana"
},
"application/dpop+jwt": {
source: "iana"
},
"application/dskpp+xml": {
source: "iana",
compressible: true
},
"application/dssc+der": {
source: "iana",
extensions: ["dssc"]
},
"application/dssc+xml": {
source: "iana",
compressible: true,
extensions: ["xdssc"]
},
"application/dvcs": {
source: "iana"
},
"application/eat+cwt": {
source: "iana"
},
"application/eat+jwt": {
source: "iana"
},
"application/eat-bun+cbor": {
source: "iana"
},
"application/eat-bun+json": {
source: "iana",
compressible: true
},
"application/eat-ucs+cbor": {
source: "iana"
},
"application/eat-ucs+json": {
source: "iana",
compressible: true
},
"application/ecmascript": {
source: "apache",
compressible: true,
extensions: ["ecma"]
},
"application/edhoc+cbor-seq": {
source: "iana"
},
"application/edi-consent": {
source: "iana"
},
"application/edi-x12": {
source: "iana",
compressible: false
},
"application/edifact": {
source: "iana",
compressible: false
},
"application/efi": {
source: "iana"
},
"application/elm+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/elm+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.cap+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/emergencycalldata.comment+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.control+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.deviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.ecall.msd": {
source: "iana"
},
"application/emergencycalldata.legacyesn+json": {
source: "iana",
compressible: true
},
"application/emergencycalldata.providerinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.serviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.subscriberinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.veds+xml": {
source: "iana",
compressible: true
},
"application/emma+xml": {
source: "iana",
compressible: true,
extensions: ["emma"]
},
"application/emotionml+xml": {
source: "iana",
compressible: true,
extensions: ["emotionml"]
},
"application/encaprtp": {
source: "iana"
},
"application/entity-statement+jwt": {
source: "iana"
},
"application/epp+xml": {
source: "iana",
compressible: true
},
"application/epub+zip": {
source: "iana",
compressible: false,
extensions: ["epub"]
},
"application/eshop": {
source: "iana"
},
"application/exi": {
source: "iana",
extensions: ["exi"]
},
"application/expect-ct-report+json": {
source: "iana",
compressible: true
},
"application/express": {
source: "iana",
extensions: ["exp"]
},
"application/fastinfoset": {
source: "iana"
},
"application/fastsoap": {
source: "iana"
},
"application/fdf": {
source: "iana",
extensions: ["fdf"]
},
"application/fdt+xml": {
source: "iana",
compressible: true,
extensions: ["fdt"]
},
"application/fhir+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fhir+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fido.trusted-apps+json": {
compressible: true
},
"application/fits": {
source: "iana"
},
"application/flexfec": {
source: "iana"
},
"application/font-sfnt": {
source: "iana"
},
"application/font-tdpfr": {
source: "iana",
extensions: ["pfr"]
},
"application/font-woff": {
source: "iana",
compressible: false
},
"application/framework-attributes+xml": {
source: "iana",
compressible: true
},
"application/geo+json": {
source: "iana",
compressible: true,
extensions: ["geojson"]
},
"application/geo+json-seq": {
source: "iana"
},
"application/geopackage+sqlite3": {
source: "iana"
},
"application/geopose+json": {
source: "iana",
compressible: true
},
"application/geoxacml+json": {
source: "iana",
compressible: true
},
"application/geoxacml+xml": {
source: "iana",
compressible: true
},
"application/gltf-buffer": {
source: "iana"
},
"application/gml+xml": {
source: "iana",
compressible: true,
extensions: ["gml"]
},
"application/gnap-binding-jws": {
source: "iana"
},
"application/gnap-binding-jwsd": {
source: "iana"
},
"application/gnap-binding-rotation-jws": {
source: "iana"
},
"application/gnap-binding-rotation-jwsd": {
source: "iana"
},
"application/gpx+xml": {
source: "apache",
compressible: true,
extensions: ["gpx"]
},
"application/grib": {
source: "iana"
},
"application/gxf": {
source: "apache",
extensions: ["gxf"]
},
"application/gzip": {
source: "iana",
compressible: false,
extensions: ["gz"]
},
"application/h224": {
source: "iana"
},
"application/held+xml": {
source: "iana",
compressible: true
},
"application/hjson": {
extensions: ["hjson"]
},
"application/hl7v2+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/http": {
source: "iana"
},
"application/hyperstudio": {
source: "iana",
extensions: ["stk"]
},
"application/ibe-key-request+xml": {
source: "iana",
compressible: true
},
"application/ibe-pkg-reply+xml": {
source: "iana",
compressible: true
},
"application/ibe-pp-data": {
source: "iana"
},
"application/iges": {
source: "iana"
},
"application/im-iscomposing+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/index": {
source: "iana"
},
"application/index.cmd": {
source: "iana"
},
"application/index.obj": {
source: "iana"
},
"application/index.response": {
source: "iana"
},
"application/index.vnd": {
source: "iana"
},
"application/inkml+xml": {
source: "iana",
compressible: true,
extensions: ["ink", "inkml"]
},
"application/iotp": {
source: "iana"
},
"application/ipfix": {
source: "iana",
extensions: ["ipfix"]
},
"application/ipp": {
source: "iana"
},
"application/isup": {
source: "iana"
},
"application/its+xml": {
source: "iana",
compressible: true,
extensions: ["its"]
},
"application/java-archive": {
source: "iana",
compressible: false,
extensions: ["jar", "war", "ear"]
},
"application/java-serialized-object": {
source: "apache",
compressible: false,
extensions: ["ser"]
},
"application/java-vm": {
source: "apache",
compressible: false,
extensions: ["class"]
},
"application/javascript": {
source: "apache",
charset: "UTF-8",
compressible: true,
extensions: ["js"]
},
"application/jf2feed+json": {
source: "iana",
compressible: true
},
"application/jose": {
source: "iana"
},
"application/jose+json": {
source: "iana",
compressible: true
},
"application/jrd+json": {
source: "iana",
compressible: true
},
"application/jscalendar+json": {
source: "iana",
compressible: true
},
"application/jscontact+json": {
source: "iana",
compressible: true
},
"application/json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["json", "map"]
},
"application/json-patch+json": {
source: "iana",
compressible: true
},
"application/json-seq": {
source: "iana"
},
"application/json5": {
extensions: ["json5"]
},
"application/jsonml+json": {
source: "apache",
compressible: true,
extensions: ["jsonml"]
},
"application/jsonpath": {
source: "iana"
},
"application/jwk+json": {
source: "iana",
compressible: true
},
"application/jwk-set+json": {
source: "iana",
compressible: true
},
"application/jwk-set+jwt": {
source: "iana"
},
"application/jwt": {
source: "iana"
},
"application/kpml-request+xml": {
source: "iana",
compressible: true
},
"application/kpml-response+xml": {
source: "iana",
compressible: true
},
"application/ld+json": {
source: "iana",
compressible: true,
extensions: ["jsonld"]
},
"application/lgr+xml": {
source: "iana",
compressible: true,
extensions: ["lgr"]
},
"application/link-format": {
source: "iana"
},
"application/linkset": {
source: "iana"
},
"application/linkset+json": {
source: "iana",
compressible: true
},
"application/load-control+xml": {
source: "iana",
compressible: true
},
"application/logout+jwt": {
source: "iana"
},
"application/lost+xml": {
source: "iana",
compressible: true,
extensions: ["lostxml"]
},
"application/lostsync+xml": {
source: "iana",
compressible: true
},
"application/lpf+zip": {
source: "iana",
compressible: false
},
"application/lxf": {
source: "iana"
},
"application/mac-binhex40": {
source: "iana",
extensions: ["hqx"]
},
"application/mac-compactpro": {
source: "apache",
extensions: ["cpt"]
},
"application/macwriteii": {
source: "iana"
},
"application/mads+xml": {
source: "iana",
compressible: true,
extensions: ["mads"]
},
"application/manifest+json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["webmanifest"]
},
"application/marc": {
source: "iana",
extensions: ["mrc"]
},
"application/marcxml+xml": {
source: "iana",
compressible: true,
extensions: ["mrcx"]
},
"application/mathematica": {
source: "iana",
extensions: ["ma", "nb", "mb"]
},
"application/mathml+xml": {
source: "iana",
compressible: true,
extensions: ["mathml"]
},
"application/mathml-content+xml": {
source: "iana",
compressible: true
},
"application/mathml-presentation+xml": {
source: "iana",
compressible: true
},
"application/mbms-associated-procedure-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-deregister+xml": {
source: "iana",
compressible: true
},
"application/mbms-envelope+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-protection-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-reception-report+xml": {
source: "iana",
compressible: true
},
"application/mbms-register+xml": {
source: "iana",
compressible: true
},
"application/mbms-register-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-schedule+xml": {
source: "iana",
compressible: true
},
"application/mbms-user-service-description+xml": {
source: "iana",
compressible: true
},
"application/mbox": {
source: "iana",
extensions: ["mbox"]
},
"application/media-policy-dataset+xml": {
source: "iana",
compressible: true,
extensions: ["mpf"]
},
"application/media_control+xml": {
source: "iana",
compressible: true
},
"application/mediaservercontrol+xml": {
source: "iana",
compressible: true,
extensions: ["mscml"]
},
"application/merge-patch+json": {
source: "iana",
compressible: true
},
"application/metalink+xml": {
source: "apache",
compressible: true,
extensions: ["metalink"]
},
"application/metalink4+xml": {
source: "iana",
compressible: true,
extensions: ["meta4"]
},
"application/mets+xml": {
source: "iana",
compressible: true,
extensions: ["mets"]
},
"application/mf4": {
source: "iana"
},
"application/mikey": {
source: "iana"
},
"application/mipc": {
source: "iana"
},
"application/missing-blocks+cbor-seq": {
source: "iana"
},
"application/mmt-aei+xml": {
source: "iana",
compressible: true,
extensions: ["maei"]
},
"application/mmt-usd+xml": {
source: "iana",
compressible: true,
extensions: ["musd"]
},
"application/mods+xml": {
source: "iana",
compressible: true,
extensions: ["mods"]
},
"application/moss-keys": {
source: "iana"
},
"application/moss-signature": {
source: "iana"
},
"application/mosskey-data": {
source: "iana"
},
"application/mosskey-request": {
source: "iana"
},
"application/mp21": {
source: "iana",
extensions: ["m21", "mp21"]
},
"application/mp4": {
source: "iana",
extensions: ["mp4", "mpg4", "mp4s", "m4p"]
},
"application/mpeg4-generic": {
source: "iana"
},
"application/mpeg4-iod": {
source: "iana"
},
"application/mpeg4-iod-xmt": {
source: "iana"
},
"application/mrb-consumer+xml": {
source: "iana",
compressible: true
},
"application/mrb-publish+xml": {
source: "iana",
compressible: true
},
"application/msc-ivr+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msc-mixer+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msix": {
compressible: false,
extensions: ["msix"]
},
"application/msixbundle": {
compressible: false,
extensions: ["msixbundle"]
},
"application/msword": {
source: "iana",
compressible: false,
extensions: ["doc", "dot"]
},
"application/mud+json": {
source: "iana",
compressible: true
},
"application/multipart-core": {
source: "iana"
},
"application/mxf": {
source: "iana",
extensions: ["mxf"]
},
"application/n-quads": {
source: "iana",
extensions: ["nq"]
},
"application/n-triples": {
source: "iana",
extensions: ["nt"]
},
"application/nasdata": {
source: "iana"
},
"application/news-checkgroups": {
source: "iana",
charset: "US-ASCII"
},
"application/news-groupinfo": {
source: "iana",
charset: "US-ASCII"
},
"application/news-transmission": {
source: "iana"
},
"application/nlsml+xml": {
source: "iana",
compressible: true
},
"application/node": {
source: "iana",
extensions: ["cjs"]
},
"application/nss": {
source: "iana"
},
"application/oauth-authz-req+jwt": {
source: "iana"
},
"application/oblivious-dns-message": {
source: "iana"
},
"application/ocsp-request": {
source: "iana"
},
"application/ocsp-response": {
source: "iana"
},
"application/octet-stream": {
source: "iana",
compressible: true,
extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"]
},
"application/oda": {
source: "iana",
extensions: ["oda"]
},
"application/odm+xml": {
source: "iana",
compressible: true
},
"application/odx": {
source: "iana"
},
"application/oebps-package+xml": {
source: "iana",
compressible: true,
extensions: ["opf"]
},
"application/ogg": {
source: "iana",
compressible: false,
extensions: ["ogx"]
},
"application/ohttp-keys": {
source: "iana"
},
"application/omdoc+xml": {
source: "apache",
compressible: true,
extensions: ["omdoc"]
},
"application/onenote": {
source: "apache",
extensions: ["onetoc", "onetoc2", "onetmp", "onepkg", "one", "onea"]
},
"application/opc-nodeset+xml": {
source: "iana",
compressible: true
},
"application/oscore": {
source: "iana"
},
"application/oxps": {
source: "iana",
extensions: ["oxps"]
},
"application/p21": {
source: "iana"
},
"application/p21+zip": {
source: "iana",
compressible: false
},
"application/p2p-overlay+xml": {
source: "iana",
compressible: true,
extensions: ["relo"]
},
"application/parityfec": {
source: "iana"
},
"application/passport": {
source: "iana"
},
"application/patch-ops-error+xml": {
source: "iana",
compressible: true,
extensions: ["xer"]
},
"application/pdf": {
source: "iana",
compressible: false,
extensions: ["pdf"]
},
"application/pdx": {
source: "iana"
},
"application/pem-certificate-chain": {
source: "iana"
},
"application/pgp-encrypted": {
source: "iana",
compressible: false,
extensions: ["pgp"]
},
"application/pgp-keys": {
source: "iana",
extensions: ["asc"]
},
"application/pgp-signature": {
source: "iana",
extensions: ["sig", "asc"]
},
"application/pics-rules": {
source: "apache",
extensions: ["prf"]
},
"application/pidf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pidf-diff+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pkcs10": {
source: "iana",
extensions: ["p10"]
},
"application/pkcs12": {
source: "iana"
},
"application/pkcs7-mime": {
source: "iana",
extensions: ["p7m", "p7c"]
},
"application/pkcs7-signature": {
source: "iana",
extensions: ["p7s"]
},
"application/pkcs8": {
source: "iana",
extensions: ["p8"]
},
"application/pkcs8-encrypted": {
source: "iana"
},
"application/pkix-attr-cert": {
source: "iana",
extensions: ["ac"]
},
"application/pkix-cert": {
source: "iana",
extensions: ["cer"]
},
"application/pkix-crl": {
source: "iana",
extensions: ["crl"]
},
"application/pkix-pkipath": {
source: "iana",
extensions: ["pkipath"]
},
"application/pkixcmp": {
source: "iana",
extensions: ["pki"]
},
"application/pls+xml": {
source: "iana",
compressible: true,
extensions: ["pls"]
},
"application/poc-settings+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/postscript": {
source: "iana",
compressible: true,
extensions: ["ai", "eps", "ps"]
},
"application/ppsp-tracker+json": {
source: "iana",
compressible: true
},
"application/private-token-issuer-directory": {
source: "iana"
},
"application/private-token-request": {
source: "iana"
},
"application/private-token-response": {
source: "iana"
},
"application/problem+json": {
source: "iana",
compressible: true
},
"application/problem+xml": {
source: "iana",
compressible: true
},
"application/provenance+xml": {
source: "iana",
compressible: true,
extensions: ["provx"]
},
"application/provided-claims+jwt": {
source: "iana"
},
"application/prs.alvestrand.titrax-sheet": {
source: "iana"
},
"application/prs.cww": {
source: "iana",
extensions: ["cww"]
},
"application/prs.cyn": {
source: "iana",
charset: "7-BIT"
},
"application/prs.hpub+zip": {
source: "iana",
compressible: false
},
"application/prs.implied-document+xml": {
source: "iana",
compressible: true
},
"application/prs.implied-executable": {
source: "iana"
},
"application/prs.implied-object+json": {
source: "iana",
compressible: true
},
"application/prs.implied-object+json-seq": {
source: "iana"
},
"application/prs.implied-object+yaml": {
source: "iana"
},
"application/prs.implied-structure": {
source: "iana"
},
"application/prs.mayfile": {
source: "iana"
},
"application/prs.nprend": {
source: "iana"
},
"application/prs.plucker": {
source: "iana"
},
"application/prs.rdf-xml-crypt": {
source: "iana"
},
"application/prs.vcfbzip2": {
source: "iana"
},
"application/prs.xsf+xml": {
source: "iana",
compressible: true,
extensions: ["xsf"]
},
"application/pskc+xml": {
source: "iana",
compressible: true,
extensions: ["pskcxml"]
},
"application/pvd+json": {
source: "iana",
compressible: true
},
"application/qsig": {
source: "iana"
},
"application/raml+yaml": {
compressible: true,
extensions: ["raml"]
},
"application/raptorfec": {
source: "iana"
},
"application/rdap+json": {
source: "iana",
compressible: true
},
"application/rdf+xml": {
source: "iana",
compressible: true,
extensions: ["rdf", "owl"]
},
"application/reginfo+xml": {
source: "iana",
compressible: true,
extensions: ["rif"]
},
"application/relax-ng-compact-syntax": {
source: "iana",
extensions: ["rnc"]
},
"application/remote-printing": {
source: "apache"
},
"application/reputon+json": {
source: "iana",
compressible: true
},
"application/resolve-response+jwt": {
source: "iana"
},
"application/resource-lists+xml": {
source: "iana",
compressible: true,
extensions: ["rl"]
},
"application/resource-lists-diff+xml": {
source: "iana",
compressible: true,
extensions: ["rld"]
},
"application/rfc+xml": {
source: "iana",
compressible: true
},
"application/riscos": {
source: "iana"
},
"application/rlmi+xml": {
source: "iana",
compressible: true
},
"application/rls-services+xml": {
source: "iana",
compressible: true,
extensions: ["rs"]
},
"application/route-apd+xml": {
source: "iana",
compressible: true,
extensions: ["rapd"]
},
"application/route-s-tsid+xml": {
source: "iana",
compressible: true,
extensions: ["sls"]
},
"application/route-usd+xml": {
source: "iana",
compressible: true,
extensions: ["rusd"]
},
"application/rpki-checklist": {
source: "iana"
},
"application/rpki-ghostbusters": {
source: "iana",
extensions: ["gbr"]
},
"application/rpki-manifest": {
source: "iana",
extensions: ["mft"]
},
"application/rpki-publication": {
source: "iana"
},
"application/rpki-roa": {
source: "iana",
extensions: ["roa"]
},
"application/rpki-signed-tal": {
source: "iana"
},
"application/rpki-updown": {
source: "iana"
},
"application/rsd+xml": {
source: "apache",
compressible: true,
extensions: ["rsd"]
},
"application/rss+xml": {
source: "apache",
compressible: true,
extensions: ["rss"]
},
"application/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"application/rtploopback": {
source: "iana"
},
"application/rtx": {
source: "iana"
},
"application/samlassertion+xml": {
source: "iana",
compressible: true
},
"application/samlmetadata+xml": {
source: "iana",
compressible: true
},
"application/sarif+json": {
source: "iana",
compressible: true
},
"application/sarif-external-properties+json": {
source: "iana",
compressible: true
},
"application/sbe": {
source: "iana"
},
"application/sbml+xml": {
source: "iana",
compressible: true,
extensions: ["sbml"]
},
"application/scaip+xml": {
source: "iana",
compressible: true
},
"application/scim+json": {
source: "iana",
compressible: true
},
"application/scvp-cv-request": {
source: "iana",
extensions: ["scq"]
},
"application/scvp-cv-response": {
source: "iana",
extensions: ["scs"]
},
"application/scvp-vp-request": {
source: "iana",
extensions: ["spq"]
},
"application/scvp-vp-response": {
source: "iana",
extensions: ["spp"]
},
"application/sdp": {
source: "iana",
extensions: ["sdp"]
},
"application/secevent+jwt": {
source: "iana"
},
"application/senml+cbor": {
source: "iana"
},
"application/senml+json": {
source: "iana",
compressible: true
},
"application/senml+xml": {
source: "iana",
compressible: true,
extensions: ["senmlx"]
},
"application/senml-etch+cbor": {
source: "iana"
},
"application/senml-etch+json": {
source: "iana",
compressible: true
},
"application/senml-exi": {
source: "iana"
},
"application/sensml+cbor": {
source: "iana"
},
"application/sensml+json": {
source: "iana",
compressible: true
},
"application/sensml+xml": {
source: "iana",
compressible: true,
extensions: ["sensmlx"]
},
"application/sensml-exi": {
source: "iana"
},
"application/sep+xml": {
source: "iana",
compressible: true
},
"application/sep-exi": {
source: "iana"
},
"application/session-info": {
source: "iana"
},
"application/set-payment": {
source: "iana"
},
"application/set-payment-initiation": {
source: "iana",
extensions: ["setpay"]
},
"application/set-registration": {
source: "iana"
},
"application/set-registration-initiation": {
source: "iana",
extensions: ["setreg"]
},
"application/sgml": {
source: "iana"
},
"application/sgml-open-catalog": {
source: "iana"
},
"application/shf+xml": {
source: "iana",
compressible: true,
extensions: ["shf"]
},
"application/sieve": {
source: "iana",
extensions: ["siv", "sieve"]
},
"application/simple-filter+xml": {
source: "iana",
compressible: true
},
"application/simple-message-summary": {
source: "iana"
},
"application/simplesymbolcontainer": {
source: "iana"
},
"application/sipc": {
source: "iana"
},
"application/slate": {
source: "iana"
},
"application/smil": {
source: "apache"
},
"application/smil+xml": {
source: "iana",
compressible: true,
extensions: ["smi", "smil"]
},
"application/smpte336m": {
source: "iana"
},
"application/soap+fastinfoset": {
source: "iana"
},
"application/soap+xml": {
source: "iana",
compressible: true
},
"application/sparql-query": {
source: "iana",
extensions: ["rq"]
},
"application/sparql-results+xml": {
source: "iana",
compressible: true,
extensions: ["srx"]
},
"application/spdx+json": {
source: "iana",
compressible: true
},
"application/spirits-event+xml": {
source: "iana",
compressible: true
},
"application/sql": {
source: "iana",
extensions: ["sql"]
},
"application/srgs": {
source: "iana",
extensions: ["gram"]
},
"application/srgs+xml": {
source: "iana",
compressible: true,
extensions: ["grxml"]
},
"application/sru+xml": {
source: "iana",
compressible: true,
extensions: ["sru"]
},
"application/ssdl+xml": {
source: "apache",
compressible: true,
extensions: ["ssdl"]
},
"application/sslkeylogfile": {
source: "iana"
},
"application/ssml+xml": {
source: "iana",
compressible: true,
extensions: ["ssml"]
},
"application/st2110-41": {
source: "iana"
},
"application/stix+json": {
source: "iana",
compressible: true
},
"application/stratum": {
source: "iana"
},
"application/swid+cbor": {
source: "iana"
},
"application/swid+xml": {
source: "iana",
compressible: true,
extensions: ["swidtag"]
},
"application/tamp-apex-update": {
source: "iana"
},
"application/tamp-apex-update-confirm": {
source: "iana"
},
"application/tamp-community-update": {
source: "iana"
},
"application/tamp-community-update-confirm": {
source: "iana"
},
"application/tamp-error": {
source: "iana"
},
"application/tamp-sequence-adjust": {
source: "iana"
},
"application/tamp-sequence-adjust-confirm": {
source: "iana"
},
"application/tamp-status-query": {
source: "iana"
},
"application/tamp-status-response": {
source: "iana"
},
"application/tamp-update": {
source: "iana"
},
"application/tamp-update-confirm": {
source: "iana"
},
"application/tar": {
compressible: true
},
"application/taxii+json": {
source: "iana",
compressible: true
},
"application/td+json": {
source: "iana",
compressible: true
},
"application/tei+xml": {
source: "iana",
compressible: true,
extensions: ["tei", "teicorpus"]
},
"application/tetra_isi": {
source: "iana"
},
"application/thraud+xml": {
source: "iana",
compressible: true,
extensions: ["tfi"]
},
"application/timestamp-query": {
source: "iana"
},
"application/timestamp-reply": {
source: "iana"
},
"application/timestamped-data": {
source: "iana",
extensions: ["tsd"]
},
"application/tlsrpt+gzip": {
source: "iana"
},
"application/tlsrpt+json": {
source: "iana",
compressible: true
},
"application/tm+json": {
source: "iana",
compressible: true
},
"application/tnauthlist": {
source: "iana"
},
"application/toc+cbor": {
source: "iana"
},
"application/token-introspection+jwt": {
source: "iana"
},
"application/toml": {
source: "iana",
compressible: true,
extensions: ["toml"]
},
"application/trickle-ice-sdpfrag": {
source: "iana"
},
"application/trig": {
source: "iana",
extensions: ["trig"]
},
"application/trust-chain+json": {
source: "iana",
compressible: true
},
"application/trust-mark+jwt": {
source: "iana"
},
"application/trust-mark-delegation+jwt": {
source: "iana"
},
"application/ttml+xml": {
source: "iana",
compressible: true,
extensions: ["ttml"]
},
"application/tve-trigger": {
source: "iana"
},
"application/tzif": {
source: "iana"
},
"application/tzif-leap": {
source: "iana"
},
"application/ubjson": {
compressible: false,
extensions: ["ubj"]
},
"application/uccs+cbor": {
source: "iana"
},
"application/ujcs+json": {
source: "iana",
compressible: true
},
"application/ulpfec": {
source: "iana"
},
"application/urc-grpsheet+xml": {
source: "iana",
compressible: true
},
"application/urc-ressheet+xml": {
source: "iana",
compressible: true,
extensions: ["rsheet"]
},
"application/urc-targetdesc+xml": {
source: "iana",
compressible: true,
extensions: ["td"]
},
"application/urc-uisocketdesc+xml": {
source: "iana",
compressible: true
},
"application/vc": {
source: "iana"
},
"application/vc+cose": {
source: "iana"
},
"application/vc+jwt": {
source: "iana"
},
"application/vcard+json": {
source: "iana",
compressible: true
},
"application/vcard+xml": {
source: "iana",
compressible: true
},
"application/vemmi": {
source: "iana"
},
"application/vividence.scriptfile": {
source: "apache"
},
"application/vnd.1000minds.decision-model+xml": {
source: "iana",
compressible: true,
extensions: ["1km"]
},
"application/vnd.1ob": {
source: "iana"
},
"application/vnd.3gpp-prose+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3a+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ach+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ch+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc8+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-v2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gnas": {
source: "iana"
},
"application/vnd.3gpp.5gsa2x": {
source: "iana"
},
"application/vnd.3gpp.5gsa2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gsv2x": {
source: "iana"
},
"application/vnd.3gpp.5gsv2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.access-transfer-events+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.bsf+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.crs+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.current-location-discovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gmop+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gtpc": {
source: "iana"
},
"application/vnd.3gpp.interworking-data": {
source: "iana"
},
"application/vnd.3gpp.lpp": {
source: "iana"
},
"application/vnd.3gpp.mc-signalling-ear": {
source: "iana"
},
"application/vnd.3gpp.mcdata-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-payload": {
source: "iana"
},
"application/vnd.3gpp.mcdata-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-signalling": {
source: "iana"
},
"application/vnd.3gpp.mcdata-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-floor-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-signed+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-init-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-transmission-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mid-call+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ngap": {
source: "iana"
},
"application/vnd.3gpp.pfcp": {
source: "iana"
},
"application/vnd.3gpp.pic-bw-large": {
source: "iana",
extensions: ["plb"]
},
"application/vnd.3gpp.pic-bw-small": {
source: "iana",
extensions: ["psb"]
},
"application/vnd.3gpp.pic-bw-var": {
source: "iana",
extensions: ["pvb"]
},
"application/vnd.3gpp.pinapp-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.s1ap": {
source: "iana"
},
"application/vnd.3gpp.seal-group-doc+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-network-qos-management-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-ue-config-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-unicast-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-user-profile-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.sms": {
source: "iana"
},
"application/vnd.3gpp.sms+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-ext+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.state-and-event-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ussd+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.v2x": {
source: "iana"
},
"application/vnd.3gpp.vae-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.bcmcsinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.sms": {
source: "iana"
},
"application/vnd.3gpp2.tcap": {
source: "iana",
extensions: ["tcap"]
},
"application/vnd.3lightssoftware.imagescal": {
source: "iana"
},
"application/vnd.3m.post-it-notes": {
source: "iana",
extensions: ["pwn"]
},
"application/vnd.accpac.simply.aso": {
source: "iana",
extensions: ["aso"]
},
"application/vnd.accpac.simply.imp": {
source: "iana",
extensions: ["imp"]
},
"application/vnd.acm.addressxfer+json": {
source: "iana",
compressible: true
},
"application/vnd.acm.chatbot+json": {
source: "iana",
compressible: true
},
"application/vnd.acucobol": {
source: "iana",
extensions: ["acu"]
},
"application/vnd.acucorp": {
source: "iana",
extensions: ["atc", "acutc"]
},
"application/vnd.adobe.air-application-installer-package+zip": {
source: "apache",
compressible: false,
extensions: ["air"]
},
"application/vnd.adobe.flash.movie": {
source: "iana"
},
"application/vnd.adobe.formscentral.fcdt": {
source: "iana",
extensions: ["fcdt"]
},
"application/vnd.adobe.fxp": {
source: "iana",
extensions: ["fxp", "fxpl"]
},
"application/vnd.adobe.partial-upload": {
source: "iana"
},
"application/vnd.adobe.xdp+xml": {
source: "iana",
compressible: true,
extensions: ["xdp"]
},
"application/vnd.adobe.xfdf": {
source: "apache",
extensions: ["xfdf"]
},
"application/vnd.aether.imp": {
source: "iana"
},
"application/vnd.afpc.afplinedata": {
source: "iana"
},
"application/vnd.afpc.afplinedata-pagedef": {
source: "iana"
},
"application/vnd.afpc.cmoca-cmresource": {
source: "iana"
},
"application/vnd.afpc.foca-charset": {
source: "iana"
},
"application/vnd.afpc.foca-codedfont": {
source: "iana"
},
"application/vnd.afpc.foca-codepage": {
source: "iana"
},
"application/vnd.afpc.modca": {
source: "iana"
},
"application/vnd.afpc.modca-cmtable": {
source: "iana"
},
"application/vnd.afpc.modca-formdef": {
source: "iana"
},
"application/vnd.afpc.modca-mediummap": {
source: "iana"
},
"application/vnd.afpc.modca-objectcontainer": {
source: "iana"
},
"application/vnd.afpc.modca-overlay": {
source: "iana"
},
"application/vnd.afpc.modca-pagesegment": {
source: "iana"
},
"application/vnd.age": {
source: "iana",
extensions: ["age"]
},
"application/vnd.ah-barcode": {
source: "apache"
},
"application/vnd.ahead.space": {
source: "iana",
extensions: ["ahead"]
},
"application/vnd.airzip.filesecure.azf": {
source: "iana",
extensions: ["azf"]
},
"application/vnd.airzip.filesecure.azs": {
source: "iana",
extensions: ["azs"]
},
"application/vnd.amadeus+json": {
source: "iana",
compressible: true
},
"application/vnd.amazon.ebook": {
source: "apache",
extensions: ["azw"]
},
"application/vnd.amazon.mobi8-ebook": {
source: "iana"
},
"application/vnd.americandynamics.acc": {
source: "iana",
extensions: ["acc"]
},
"application/vnd.amiga.ami": {
source: "iana",
extensions: ["ami"]
},
"application/vnd.amundsen.maze+xml": {
source: "iana",
compressible: true
},
"application/vnd.android.ota": {
source: "iana"
},
"application/vnd.android.package-archive": {
source: "apache",
compressible: false,
extensions: ["apk"]
},
"application/vnd.anki": {
source: "iana"
},
"application/vnd.anser-web-certificate-issue-initiation": {
source: "iana",
extensions: ["cii"]
},
"application/vnd.anser-web-funds-transfer-initiation": {
source: "apache",
extensions: ["fti"]
},
"application/vnd.antix.game-component": {
source: "iana",
extensions: ["atx"]
},
"application/vnd.apache.arrow.file": {
source: "iana"
},
"application/vnd.apache.arrow.stream": {
source: "iana"
},
"application/vnd.apache.parquet": {
source: "iana"
},
"application/vnd.apache.thrift.binary": {
source: "iana"
},
"application/vnd.apache.thrift.compact": {
source: "iana"
},
"application/vnd.apache.thrift.json": {
source: "iana"
},
"application/vnd.apexlang": {
source: "iana"
},
"application/vnd.api+json": {
source: "iana",
compressible: true
},
"application/vnd.aplextor.warrp+json": {
source: "iana",
compressible: true
},
"application/vnd.apothekende.reservation+json": {
source: "iana",
compressible: true
},
"application/vnd.apple.installer+xml": {
source: "iana",
compressible: true,
extensions: ["mpkg"]
},
"application/vnd.apple.keynote": {
source: "iana",
extensions: ["key"]
},
"application/vnd.apple.mpegurl": {
source: "iana",
extensions: ["m3u8"]
},
"application/vnd.apple.numbers": {
source: "iana",
extensions: ["numbers"]
},
"application/vnd.apple.pages": {
source: "iana",
extensions: ["pages"]
},
"application/vnd.apple.pkpass": {
compressible: false,
extensions: ["pkpass"]
},
"application/vnd.arastra.swi": {
source: "apache"
},
"application/vnd.aristanetworks.swi": {
source: "iana",
extensions: ["swi"]
},
"application/vnd.artisan+json": {
source: "iana",
compressible: true
},
"application/vnd.artsquare": {
source: "iana"
},
"application/vnd.astraea-software.iota": {
source: "iana",
extensions: ["iota"]
},
"application/vnd.audiograph": {
source: "iana",
extensions: ["aep"]
},
"application/vnd.autodesk.fbx": {
extensions: ["fbx"]
},
"application/vnd.autopackage": {
source: "iana"
},
"application/vnd.avalon+json": {
source: "iana",
compressible: true
},
"application/vnd.avistar+xml": {
source: "iana",
compressible: true
},
"application/vnd.balsamiq.bmml+xml": {
source: "iana",
compressible: true,
extensions: ["bmml"]
},
"application/vnd.balsamiq.bmpr": {
source: "iana"
},
"application/vnd.banana-accounting": {
source: "iana"
},
"application/vnd.bbf.usp.error": {
source: "iana"
},
"application/vnd.bbf.usp.msg": {
source: "iana"
},
"application/vnd.bbf.usp.msg+json": {
source: "iana",
compressible: true
},
"application/vnd.bekitzur-stech+json": {
source: "iana",
compressible: true
},
"application/vnd.belightsoft.lhzd+zip": {
source: "iana",
compressible: false
},
"application/vnd.belightsoft.lhzl+zip": {
source: "iana",
compressible: false
},
"application/vnd.bint.med-content": {
source: "iana"
},
"application/vnd.biopax.rdf+xml": {
source: "iana",
compressible: true
},
"application/vnd.blink-idb-value-wrapper": {
source: "iana"
},
"application/vnd.blueice.multipass": {
source: "iana",
extensions: ["mpm"]
},
"application/vnd.bluetooth.ep.oob": {
source: "iana"
},
"application/vnd.bluetooth.le.oob": {
source: "iana"
},
"application/vnd.bmi": {
source: "iana",
extensions: ["bmi"]
},
"application/vnd.bpf": {
source: "iana"
},
"application/vnd.bpf3": {
source: "iana"
},
"application/vnd.businessobjects": {
source: "iana",
extensions: ["rep"]
},
"application/vnd.byu.uapi+json": {
source: "iana",
compressible: true
},
"application/vnd.bzip3": {
source: "iana"
},
"application/vnd.c3voc.schedule+xml": {
source: "iana",
compressible: true
},
"application/vnd.cab-jscript": {
source: "iana"
},
"application/vnd.canon-cpdl": {
source: "iana"
},
"application/vnd.canon-lips": {
source: "iana"
},
"application/vnd.capasystems-pg+json": {
source: "iana",
compressible: true
},
"application/vnd.cendio.thinlinc.clientconf": {
source: "iana"
},
"application/vnd.century-systems.tcp_stream": {
source: "iana"
},
"application/vnd.chemdraw+xml": {
source: "iana",
compressible: true,
extensions: ["cdxml"]
},
"application/vnd.chess-pgn": {
source: "iana"
},
"application/vnd.chipnuts.karaoke-mmd": {
source: "iana",
extensions: ["mmd"]
},
"application/vnd.ciedi": {
source: "iana"
},
"application/vnd.cinderella": {
source: "iana",
extensions: ["cdy"]
},
"application/vnd.cirpack.isdn-ext": {
source: "iana"
},
"application/vnd.citationstyles.style+xml": {
source: "iana",
compressible: true,
extensions: ["csl"]
},
"application/vnd.claymore": {
source: "iana",
extensions: ["cla"]
},
"application/vnd.cloanto.rp9": {
source: "iana",
extensions: ["rp9"]
},
"application/vnd.clonk.c4group": {
source: "iana",
extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"]
},
"application/vnd.cluetrust.cartomobile-config": {
source: "iana",
extensions: ["c11amc"]
},
"application/vnd.cluetrust.cartomobile-config-pkg": {
source: "iana",
extensions: ["c11amz"]
},
"application/vnd.cncf.helm.chart.content.v1.tar+gzip": {
source: "iana"
},
"application/vnd.cncf.helm.chart.provenance.v1.prov": {
source: "iana"
},
"application/vnd.cncf.helm.config.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.coffeescript": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet-template": {
source: "iana"
},
"application/vnd.collection+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.doc+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.next+json": {
source: "iana",
compressible: true
},
"application/vnd.comicbook+zip": {
source: "iana",
compressible: false
},
"application/vnd.comicbook-rar": {
source: "iana"
},
"application/vnd.commerce-battelle": {
source: "iana"
},
"application/vnd.commonspace": {
source: "iana",
extensions: ["csp"]
},
"application/vnd.contact.cmsg": {
source: "iana",
extensions: ["cdbcmsg"]
},
"application/vnd.coreos.ignition+json": {
source: "iana",
compressible: true
},
"application/vnd.cosmocaller": {
source: "iana",
extensions: ["cmc"]
},
"application/vnd.crick.clicker": {
source: "iana",
extensions: ["clkx"]
},
"application/vnd.crick.clicker.keyboard": {
source: "iana",
extensions: ["clkk"]
},
"application/vnd.crick.clicker.palette": {
source: "iana",
extensions: ["clkp"]
},
"application/vnd.crick.clicker.template": {
source: "iana",
extensions: ["clkt"]
},
"application/vnd.crick.clicker.wordbank": {
source: "iana",
extensions: ["clkw"]
},
"application/vnd.criticaltools.wbs+xml": {
source: "iana",
compressible: true,
extensions: ["wbs"]
},
"application/vnd.cryptii.pipe+json": {
source: "iana",
compressible: true
},
"application/vnd.crypto-shade-file": {
source: "iana"
},
"application/vnd.cryptomator.encrypted": {
source: "iana"
},
"application/vnd.cryptomator.vault": {
source: "iana"
},
"application/vnd.ctc-posml": {
source: "iana",
extensions: ["pml"]
},
"application/vnd.ctct.ws+xml": {
source: "iana",
compressible: true
},
"application/vnd.cups-pdf": {
source: "iana"
},
"application/vnd.cups-postscript": {
source: "iana"
},
"application/vnd.cups-ppd": {
source: "iana",
extensions: ["ppd"]
},
"application/vnd.cups-raster": {
source: "iana"
},
"application/vnd.cups-raw": {
source: "iana"
},
"application/vnd.curl": {
source: "iana"
},
"application/vnd.curl.car": {
source: "apache",
extensions: ["car"]
},
"application/vnd.curl.pcurl": {
source: "apache",
extensions: ["pcurl"]
},
"application/vnd.cyan.dean.root+xml": {
source: "iana",
compressible: true
},
"application/vnd.cybank": {
source: "iana"
},
"application/vnd.cyclonedx+json": {
source: "iana",
compressible: true
},
"application/vnd.cyclonedx+xml": {
source: "iana",
compressible: true
},
"application/vnd.d2l.coursepackage1p0+zip": {
source: "iana",
compressible: false
},
"application/vnd.d3m-dataset": {
source: "iana"
},
"application/vnd.d3m-problem": {
source: "iana"
},
"application/vnd.dart": {
source: "iana",
compressible: true,
extensions: ["dart"]
},
"application/vnd.data-vision.rdz": {
source: "iana",
extensions: ["rdz"]
},
"application/vnd.datalog": {
source: "iana"
},
"application/vnd.datapackage+json": {
source: "iana",
compressible: true
},
"application/vnd.dataresource+json": {
source: "iana",
compressible: true
},
"application/vnd.dbf": {
source: "iana",
extensions: ["dbf"]
},
"application/vnd.dcmp+xml": {
source: "iana",
compressible: true,
extensions: ["dcmp"]
},
"application/vnd.debian.binary-package": {
source: "iana"
},
"application/vnd.dece.data": {
source: "iana",
extensions: ["uvf", "uvvf", "uvd", "uvvd"]
},
"application/vnd.dece.ttml+xml": {
source: "iana",
compressible: true,
extensions: ["uvt", "uvvt"]
},
"application/vnd.dece.unspecified": {
source: "iana",
extensions: ["uvx", "uvvx"]
},
"application/vnd.dece.zip": {
source: "iana",
extensions: ["uvz", "uvvz"]
},
"application/vnd.denovo.fcselayout-link": {
source: "iana",
extensions: ["fe_launch"]
},
"application/vnd.desmume.movie": {
source: "iana"
},
"application/vnd.dir-bi.plate-dl-nosuffix": {
source: "iana"
},
"application/vnd.dm.delegation+xml": {
source: "iana",
compressible: true
},
"application/vnd.dna": {
source: "iana",
extensions: ["dna"]
},
"application/vnd.document+json": {
source: "iana",
compressible: true
},
"application/vnd.dolby.mlp": {
source: "apache",
extensions: ["mlp"]
},
"application/vnd.dolby.mobile.1": {
source: "iana"
},
"application/vnd.dolby.mobile.2": {
source: "iana"
},
"application/vnd.doremir.scorecloud-binary-document": {
source: "iana"
},
"application/vnd.dpgraph": {
source: "iana",
extensions: ["dpg"]
},
"application/vnd.dreamfactory": {
source: "iana",
extensions: ["dfac"]
},
"application/vnd.drive+json": {
source: "iana",
compressible: true
},
"application/vnd.ds-keypoint": {
source: "apache",
extensions: ["kpxx"]
},
"application/vnd.dtg.local": {
source: "iana"
},
"application/vnd.dtg.local.flash": {
source: "iana"
},
"application/vnd.dtg.local.html": {
source: "iana"
},
"application/vnd.dvb.ait": {
source: "iana",
extensions: ["ait"]
},
"application/vnd.dvb.dvbisl+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.dvbj": {
source: "iana"
},
"application/vnd.dvb.esgcontainer": {
source: "iana"
},
"application/vnd.dvb.ipdcdftnotifaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess2": {
source: "iana"
},
"application/vnd.dvb.ipdcesgpdd": {
source: "iana"
},
"application/vnd.dvb.ipdcroaming": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-base": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-enhancement": {
source: "iana"
},
"application/vnd.dvb.notif-aggregate-root+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-container+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-generic+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-msglist+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-response+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-init+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.pfr": {
source: "iana"
},
"application/vnd.dvb.service": {
source: "iana",
extensions: ["svc"]
},
"application/vnd.dxr": {
source: "iana"
},
"application/vnd.dynageo": {
source: "iana",
extensions: ["geo"]
},
"application/vnd.dzr": {
source: "iana"
},
"application/vnd.easykaraoke.cdgdownload": {
source: "iana"
},
"application/vnd.ecdis-update": {
source: "iana"
},
"application/vnd.ecip.rlp": {
source: "iana"
},
"application/vnd.eclipse.ditto+json": {
source: "iana",
compressible: true
},
"application/vnd.ecowin.chart": {
source: "iana",
extensions: ["mag"]
},
"application/vnd.ecowin.filerequest": {
source: "iana"
},
"application/vnd.ecowin.fileupdate": {
source: "iana"
},
"application/vnd.ecowin.series": {
source: "iana"
},
"application/vnd.ecowin.seriesrequest": {
source: "iana"
},
"application/vnd.ecowin.seriesupdate": {
source: "iana"
},
"application/vnd.efi.img": {
source: "iana"
},
"application/vnd.efi.iso": {
source: "iana"
},
"application/vnd.eln+zip": {
source: "iana",
compressible: false
},
"application/vnd.emclient.accessrequest+xml": {
source: "iana",
compressible: true
},
"application/vnd.enliven": {
source: "iana",
extensions: ["nml"]
},
"application/vnd.enphase.envoy": {
source: "iana"
},
"application/vnd.eprints.data+xml": {
source: "iana",
compressible: true
},
"application/vnd.epson.esf": {
source: "iana",
extensions: ["esf"]
},
"application/vnd.epson.msf": {
source: "iana",
extensions: ["msf"]
},
"application/vnd.epson.quickanime": {
source: "iana",
extensions: ["qam"]
},
"application/vnd.epson.salt": {
source: "iana",
extensions: ["slt"]
},
"application/vnd.epson.ssf": {
source: "iana",
extensions: ["ssf"]
},
"application/vnd.ericsson.quickcall": {
source: "iana"
},
"application/vnd.erofs": {
source: "iana"
},
"application/vnd.espass-espass+zip": {
source: "iana",
compressible: false
},
"application/vnd.eszigno3+xml": {
source: "iana",
compressible: true,
extensions: ["es3", "et3"]
},
"application/vnd.etsi.aoc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.asic-e+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.asic-s+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.cug+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvcommand+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-bc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-cod+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-npvr+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvservice+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsync+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mcid+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mheg5": {
source: "iana"
},
"application/vnd.etsi.overload-control-policy-dataset+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.pstn+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.sci+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.simservs+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.timestamp-token": {
source: "iana"
},
"application/vnd.etsi.tsl+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.tsl.der": {
source: "iana"
},
"application/vnd.eu.kasparian.car+json": {
source: "iana",
compressible: true
},
"application/vnd.eudora.data": {
source: "iana"
},
"application/vnd.evolv.ecig.profile": {
source: "iana"
},
"application/vnd.evolv.ecig.settings": {
source: "iana"
},
"application/vnd.evolv.ecig.theme": {
source: "iana"
},
"application/vnd.exstream-empower+zip": {
source: "iana",
compressible: false
},
"application/vnd.exstream-package": {
source: "iana"
},
"application/vnd.ezpix-album": {
source: "iana",
extensions: ["ez2"]
},
"application/vnd.ezpix-package": {
source: "iana",
extensions: ["ez3"]
},
"application/vnd.f-secure.mobile": {
source: "iana"
},
"application/vnd.familysearch.gedcom+zip": {
source: "iana",
compressible: false
},
"application/vnd.fastcopy-disk-image": {
source: "iana"
},
"application/vnd.fdf": {
source: "apache",
extensions: ["fdf"]
},
"application/vnd.fdsn.mseed": {
source: "iana",
extensions: ["mseed"]
},
"application/vnd.fdsn.seed": {
source: "iana",
extensions: ["seed", "dataless"]
},
"application/vnd.fdsn.stationxml+xml": {
source: "iana",
charset: "XML-BASED",
compressible: true
},
"application/vnd.ffsns": {
source: "iana"
},
"application/vnd.ficlab.flb+zip": {
source: "iana",
compressible: false
},
"application/vnd.filmit.zfc": {
source: "iana"
},
"application/vnd.fints": {
source: "iana"
},
"application/vnd.firemonkeys.cloudcell": {
source: "iana"
},
"application/vnd.flographit": {
source: "iana",
extensions: ["gph"]
},
"application/vnd.fluxtime.clip": {
source: "iana",
extensions: ["ftc"]
},
"application/vnd.font-fontforge-sfd": {
source: "iana"
},
"application/vnd.framemaker": {
source: "iana",
extensions: ["fm", "frame", "maker", "book"]
},
"application/vnd.freelog.comic": {
source: "iana"
},
"application/vnd.frogans.fnc": {
source: "apache",
extensions: ["fnc"]
},
"application/vnd.frogans.ltf": {
source: "apache",
extensions: ["ltf"]
},
"application/vnd.fsc.weblaunch": {
source: "iana",
extensions: ["fsc"]
},
"application/vnd.fujifilm.fb.docuworks": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.binder": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.container": {
source: "iana"
},
"application/vnd.fujifilm.fb.jfi+xml": {
source: "iana",
compressible: true
},
"application/vnd.fujitsu.oasys": {
source: "iana",
extensions: ["oas"]
},
"application/vnd.fujitsu.oasys2": {
source: "iana",
extensions: ["oa2"]
},
"application/vnd.fujitsu.oasys3": {
source: "iana",
extensions: ["oa3"]
},
"application/vnd.fujitsu.oasysgp": {
source: "iana",
extensions: ["fg5"]
},
"application/vnd.fujitsu.oasysprs": {
source: "iana",
extensions: ["bh2"]
},
"application/vnd.fujixerox.art-ex": {
source: "iana"
},
"application/vnd.fujixerox.art4": {
source: "iana"
},
"application/vnd.fujixerox.ddd": {
source: "iana",
extensions: ["ddd"]
},
"application/vnd.fujixerox.docuworks": {
source: "iana",
extensions: ["xdw"]
},
"application/vnd.fujixerox.docuworks.binder": {
source: "iana",
extensions: ["xbd"]
},
"application/vnd.fujixerox.docuworks.container": {
source: "iana"
},
"application/vnd.fujixerox.hbpl": {
source: "iana"
},
"application/vnd.fut-misnet": {
source: "iana"
},
"application/vnd.futoin+cbor": {
source: "iana"
},
"application/vnd.futoin+json": {
source: "iana",
compressible: true
},
"application/vnd.fuzzysheet": {
source: "iana",
extensions: ["fzs"]
},
"application/vnd.ga4gh.passport+jwt": {
source: "iana"
},
"application/vnd.genomatix.tuxedo": {
source: "iana",
extensions: ["txd"]
},
"application/vnd.genozip": {
source: "iana"
},
"application/vnd.gentics.grd+json": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.catmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.ebuild": {
source: "iana"
},
"application/vnd.gentoo.eclass": {
source: "iana"
},
"application/vnd.gentoo.gpkg": {
source: "iana"
},
"application/vnd.gentoo.manifest": {
source: "iana"
},
"application/vnd.gentoo.pkgmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.xpak": {
source: "iana"
},
"application/vnd.geo+json": {
source: "apache",
compressible: true
},
"application/vnd.geocube+xml": {
source: "apache",
compressible: true
},
"application/vnd.geogebra.file": {
source: "iana",
extensions: ["ggb"]
},
"application/vnd.geogebra.pinboard": {
source: "iana"
},
"application/vnd.geogebra.slides": {
source: "iana",
extensions: ["ggs"]
},
"application/vnd.geogebra.tool": {
source: "iana",
extensions: ["ggt"]
},
"application/vnd.geometry-explorer": {
source: "iana",
extensions: ["gex", "gre"]
},
"application/vnd.geonext": {
source: "iana",
extensions: ["gxt"]
},
"application/vnd.geoplan": {
source: "iana",
extensions: ["g2w"]
},
"application/vnd.geospace": {
source: "iana",
extensions: ["g3w"]
},
"application/vnd.gerber": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt-response": {
source: "iana"
},
"application/vnd.gmx": {
source: "iana",
extensions: ["gmx"]
},
"application/vnd.gnu.taler.exchange+json": {
source: "iana",
compressible: true
},
"application/vnd.gnu.taler.merchant+json": {
source: "iana",
compressible: true
},
"application/vnd.google-apps.audio": {},
"application/vnd.google-apps.document": {
compressible: false,
extensions: ["gdoc"]
},
"application/vnd.google-apps.drawing": {
compressible: false,
extensions: ["gdraw"]
},
"application/vnd.google-apps.drive-sdk": {
compressible: false
},
"application/vnd.google-apps.file": {},
"application/vnd.google-apps.folder": {
compressible: false
},
"application/vnd.google-apps.form": {
compressible: false,
extensions: ["gform"]
},
"application/vnd.google-apps.fusiontable": {},
"application/vnd.google-apps.jam": {
compressible: false,
extensions: ["gjam"]
},
"application/vnd.google-apps.mail-layout": {},
"application/vnd.google-apps.map": {
compressible: false,
extensions: ["gmap"]
},
"application/vnd.google-apps.photo": {},
"application/vnd.google-apps.presentation": {
compressible: false,
extensions: ["gslides"]
},
"application/vnd.google-apps.script": {
compressible: false,
extensions: ["gscript"]
},
"application/vnd.google-apps.shortcut": {},
"application/vnd.google-apps.site": {
compressible: false,
extensions: ["gsite"]
},
"application/vnd.google-apps.spreadsheet": {
compressible: false,
extensions: ["gsheet"]
},
"application/vnd.google-apps.unknown": {},
"application/vnd.google-apps.video": {},
"application/vnd.google-earth.kml+xml": {
source: "iana",
compressible: true,
extensions: ["kml"]
},
"application/vnd.google-earth.kmz": {
source: "iana",
compressible: false,
extensions: ["kmz"]
},
"application/vnd.gov.sk.e-form+xml": {
source: "apache",
compressible: true
},
"application/vnd.gov.sk.e-form+zip": {
source: "iana",
compressible: false
},
"application/vnd.gov.sk.xmldatacontainer+xml": {
source: "iana",
compressible: true,
extensions: ["xdcf"]
},
"application/vnd.gpxsee.map+xml": {
source: "iana",
compressible: true
},
"application/vnd.grafeq": {
source: "iana",
extensions: ["gqf", "gqs"]
},
"application/vnd.gridmp": {
source: "iana"
},
"application/vnd.groove-account": {
source: "iana",
extensions: ["gac"]
},
"application/vnd.groove-help": {
source: "iana",
extensions: ["ghf"]
},
"application/vnd.groove-identity-message": {
source: "iana",
extensions: ["gim"]
},
"application/vnd.groove-injector": {
source: "iana",
extensions: ["grv"]
},
"application/vnd.groove-tool-message": {
source: "iana",
extensions: ["gtm"]
},
"application/vnd.groove-tool-template": {
source: "iana",
extensions: ["tpl"]
},
"application/vnd.groove-vcard": {
source: "iana",
extensions: ["vcg"]
},
"application/vnd.hal+json": {
source: "iana",
compressible: true
},
"application/vnd.hal+xml": {
source: "iana",
compressible: true,
extensions: ["hal"]
},
"application/vnd.handheld-entertainment+xml": {
source: "iana",
compressible: true,
extensions: ["zmm"]
},
"application/vnd.hbci": {
source: "iana",
extensions: ["hbci"]
},
"application/vnd.hc+json": {
source: "iana",
compressible: true
},
"application/vnd.hcl-bireports": {
source: "iana"
},
"application/vnd.hdt": {
source: "iana"
},
"application/vnd.heroku+json": {
source: "iana",
compressible: true
},
"application/vnd.hhe.lesson-player": {
source: "iana",
extensions: ["les"]
},
"application/vnd.hp-hpgl": {
source: "iana",
extensions: ["hpgl"]
},
"application/vnd.hp-hpid": {
source: "iana",
extensions: ["hpid"]
},
"application/vnd.hp-hps": {
source: "iana",
extensions: ["hps"]
},
"application/vnd.hp-jlyt": {
source: "iana",
extensions: ["jlt"]
},
"application/vnd.hp-pcl": {
source: "iana",
extensions: ["pcl"]
},
"application/vnd.hp-pclxl": {
source: "iana",
extensions: ["pclxl"]
},
"application/vnd.hsl": {
source: "iana"
},
"application/vnd.httphone": {
source: "iana"
},
"application/vnd.hydrostatix.sof-data": {
source: "iana",
extensions: ["sfd-hdstx"]
},
"application/vnd.hyper+json": {
source: "iana",
compressible: true
},
"application/vnd.hyper-item+json": {
source: "iana",
compressible: true
},
"application/vnd.hyperdrive+json": {
source: "iana",
compressible: true
},
"application/vnd.hzn-3d-crossword": {
source: "iana"
},
"application/vnd.ibm.afplinedata": {
source: "apache"
},
"application/vnd.ibm.electronic-media": {
source: "iana"
},
"application/vnd.ibm.minipay": {
source: "iana",
extensions: ["mpy"]
},
"application/vnd.ibm.modcap": {
source: "apache",
extensions: ["afp", "listafp", "list3820"]
},
"application/vnd.ibm.rights-management": {
source: "iana",
extensions: ["irm"]
},
"application/vnd.ibm.secure-container": {
source: "iana",
extensions: ["sc"]
},
"application/vnd.iccprofile": {
source: "iana",
extensions: ["icc", "icm"]
},
"application/vnd.ieee.1905": {
source: "iana"
},
"application/vnd.igloader": {
source: "iana",
extensions: ["igl"]
},
"application/vnd.imagemeter.folder+zip": {
source: "iana",
compressible: false
},
"application/vnd.imagemeter.image+zip": {
source: "iana",
compressible: false
},
"application/vnd.immervision-ivp": {
source: "iana",
extensions: ["ivp"]
},
"application/vnd.immervision-ivu": {
source: "iana",
extensions: ["ivu"]
},
"application/vnd.ims.imsccv1p1": {
source: "iana"
},
"application/vnd.ims.imsccv1p2": {
source: "iana"
},
"application/vnd.ims.imsccv1p3": {
source: "iana"
},
"application/vnd.ims.lis.v2.result+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolconsumerprofile+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy.id+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings.simple+json": {
source: "iana",
compressible: true
},
"application/vnd.informedcontrol.rms+xml": {
source: "iana",
compressible: true
},
"application/vnd.informix-visionary": {
source: "apache"
},
"application/vnd.infotech.project": {
source: "iana"
},
"application/vnd.infotech.project+xml": {
source: "iana",
compressible: true
},
"application/vnd.innopath.wamp.notification": {
source: "iana"
},
"application/vnd.insors.igm": {
source: "iana",
extensions: ["igm"]
},
"application/vnd.intercon.formnet": {
source: "iana",
extensions: ["xpw", "xpx"]
},
"application/vnd.intergeo": {
source: "iana",
extensions: ["i2g"]
},
"application/vnd.intertrust.digibox": {
source: "iana"
},
"application/vnd.intertrust.nncp": {
source: "iana"
},
"application/vnd.intu.qbo": {
source: "iana",
extensions: ["qbo"]
},
"application/vnd.intu.qfx": {
source: "iana",
extensions: ["qfx"]
},
"application/vnd.ipfs.ipns-record": {
source: "iana"
},
"application/vnd.ipld.car": {
source: "iana"
},
"application/vnd.ipld.dag-cbor": {
source: "iana"
},
"application/vnd.ipld.dag-json": {
source: "iana"
},
"application/vnd.ipld.raw": {
source: "iana"
},
"application/vnd.iptc.g2.catalogitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.conceptitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.knowledgeitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.packageitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.planningitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.ipunplugged.rcprofile": {
source: "iana",
extensions: ["rcprofile"]
},
"application/vnd.irepository.package+xml": {
source: "iana",
compressible: true,
extensions: ["irp"]
},
"application/vnd.is-xpr": {
source: "iana",
extensions: ["xpr"]
},
"application/vnd.isac.fcs": {
source: "iana",
extensions: ["fcs"]
},
"application/vnd.iso11783-10+zip": {
source: "iana",
compressible: false
},
"application/vnd.jam": {
source: "iana",
extensions: ["jam"]
},
"application/vnd.japannet-directory-service": {
source: "iana"
},
"application/vnd.japannet-jpnstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-payment-wakeup": {
source: "iana"
},
"application/vnd.japannet-registration": {
source: "iana"
},
"application/vnd.japannet-registration-wakeup": {
source: "iana"
},
"application/vnd.japannet-setstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-verification": {
source: "iana"
},
"application/vnd.japannet-verification-wakeup": {
source: "iana"
},
"application/vnd.jcp.javame.midlet-rms": {
source: "iana",
extensions: ["rms"]
},
"application/vnd.jisp": {
source: "iana",
extensions: ["jisp"]
},
"application/vnd.joost.joda-archive": {
source: "iana",
extensions: ["joda"]
},
"application/vnd.jsk.isdn-ngn": {
source: "iana"
},
"application/vnd.kahootz": {
source: "iana",
extensions: ["ktz", "ktr"]
},
"application/vnd.kde.karbon": {
source: "iana",
extensions: ["karbon"]
},
"application/vnd.kde.kchart": {
source: "iana",
extensions: ["chrt"]
},
"application/vnd.kde.kformula": {
source: "iana",
extensions: ["kfo"]
},
"application/vnd.kde.kivio": {
source: "iana",
extensions: ["flw"]
},
"application/vnd.kde.kontour": {
source: "iana",
extensions: ["kon"]
},
"application/vnd.kde.kpresenter": {
source: "iana",
extensions: ["kpr", "kpt"]
},
"application/vnd.kde.kspread": {
source: "iana",
extensions: ["ksp"]
},
"application/vnd.kde.kword": {
source: "iana",
extensions: ["kwd", "kwt"]
},
"application/vnd.kdl": {
source: "iana"
},
"application/vnd.kenameaapp": {
source: "iana",
extensions: ["htke"]
},
"application/vnd.keyman.kmp+zip": {
source: "iana",
compressible: false
},
"application/vnd.keyman.kmx": {
source: "iana"
},
"application/vnd.kidspiration": {
source: "iana",
extensions: ["kia"]
},
"application/vnd.kinar": {
source: "iana",
extensions: ["kne", "knp"]
},
"application/vnd.koan": {
source: "iana",
extensions: ["skp", "skd", "skt", "skm"]
},
"application/vnd.kodak-descriptor": {
source: "iana",
extensions: ["sse"]
},
"application/vnd.las": {
source: "iana"
},
"application/vnd.las.las+json": {
source: "iana",
compressible: true
},
"application/vnd.las.las+xml": {
source: "iana",
compressible: true,
extensions: ["lasxml"]
},
"application/vnd.laszip": {
source: "iana"
},
"application/vnd.ldev.productlicensing": {
source: "iana"
},
"application/vnd.leap+json": {
source: "iana",
compressible: true
},
"application/vnd.liberty-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.llamagraphics.life-balance.desktop": {
source: "iana",
extensions: ["lbd"]
},
"application/vnd.llamagraphics.life-balance.exchange+xml": {
source: "iana",
compressible: true,
extensions: ["lbe"]
},
"application/vnd.logipipe.circuit+zip": {
source: "iana",
compressible: false
},
"application/vnd.loom": {
source: "iana"
},
"application/vnd.lotus-1-2-3": {
source: "iana",
extensions: ["123"]
},
"application/vnd.lotus-approach": {
source: "iana",
extensions: ["apr"]
},
"application/vnd.lotus-freelance": {
source: "iana",
extensions: ["pre"]
},
"application/vnd.lotus-notes": {
source: "iana",
extensions: ["nsf"]
},
"application/vnd.lotus-organizer": {
source: "iana",
extensions: ["org"]
},
"application/vnd.lotus-screencam": {
source: "iana",
extensions: ["scm"]
},
"application/vnd.lotus-wordpro": {
source: "iana",
extensions: ["lwp"]
},
"application/vnd.macports.portpkg": {
source: "iana",
extensions: ["portpkg"]
},
"application/vnd.mapbox-vector-tile": {
source: "iana",
extensions: ["mvt"]
},
"application/vnd.marlin.drm.actiontoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.conftoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.license+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.mdcf": {
source: "iana"
},
"application/vnd.mason+json": {
source: "iana",
compressible: true
},
"application/vnd.maxar.archive.3tz+zip": {
source: "iana",
compressible: false
},
"application/vnd.maxmind.maxmind-db": {
source: "iana"
},
"application/vnd.mcd": {
source: "iana",
extensions: ["mcd"]
},
"application/vnd.mdl": {
source: "iana"
},
"application/vnd.mdl-mbsdf": {
source: "iana"
},
"application/vnd.medcalcdata": {
source: "iana",
extensions: ["mc1"]
},
"application/vnd.mediastation.cdkey": {
source: "iana",
extensions: ["cdkey"]
},
"application/vnd.medicalholodeck.recordxr": {
source: "iana"
},
"application/vnd.meridian-slingshot": {
source: "iana"
},
"application/vnd.mermaid": {
source: "iana"
},
"application/vnd.mfer": {
source: "iana",
extensions: ["mwf"]
},
"application/vnd.mfmp": {
source: "iana",
extensions: ["mfm"]
},
"application/vnd.micro+json": {
source: "iana",
compressible: true
},
"application/vnd.micrografx.flo": {
source: "iana",
extensions: ["flo"]
},
"application/vnd.micrografx.igx": {
source: "iana",
extensions: ["igx"]
},
"application/vnd.microsoft.portable-executable": {
source: "iana"
},
"application/vnd.microsoft.windows.thumbnail-cache": {
source: "iana"
},
"application/vnd.miele+json": {
source: "iana",
compressible: true
},
"application/vnd.mif": {
source: "iana",
extensions: ["mif"]
},
"application/vnd.minisoft-hp3000-save": {
source: "iana"
},
"application/vnd.mitsubishi.misty-guard.trustweb": {
source: "iana"
},
"application/vnd.mobius.daf": {
source: "iana",
extensions: ["daf"]
},
"application/vnd.mobius.dis": {
source: "iana",
extensions: ["dis"]
},
"application/vnd.mobius.mbk": {
source: "iana",
extensions: ["mbk"]
},
"application/vnd.mobius.mqy": {
source: "iana",
extensions: ["mqy"]
},
"application/vnd.mobius.msl": {
source: "iana",
extensions: ["msl"]
},
"application/vnd.mobius.plc": {
source: "iana",
extensions: ["plc"]
},
"application/vnd.mobius.txf": {
source: "iana",
extensions: ["txf"]
},
"application/vnd.modl": {
source: "iana"
},
"application/vnd.mophun.application": {
source: "iana",
extensions: ["mpn"]
},
"application/vnd.mophun.certificate": {
source: "iana",
extensions: ["mpc"]
},
"application/vnd.motorola.flexsuite": {
source: "iana"
},
"application/vnd.motorola.flexsuite.adsi": {
source: "iana"
},
"application/vnd.motorola.flexsuite.fis": {
source: "iana"
},
"application/vnd.motorola.flexsuite.gotap": {
source: "iana"
},
"application/vnd.motorola.flexsuite.kmr": {
source: "iana"
},
"application/vnd.motorola.flexsuite.ttc": {
source: "iana"
},
"application/vnd.motorola.flexsuite.wem": {
source: "iana"
},
"application/vnd.motorola.iprm": {
source: "iana"
},
"application/vnd.mozilla.xul+xml": {
source: "iana",
compressible: true,
extensions: ["xul"]
},
"application/vnd.ms-3mfdocument": {
source: "iana"
},
"application/vnd.ms-artgalry": {
source: "iana",
extensions: ["cil"]
},
"application/vnd.ms-asf": {
source: "iana"
},
"application/vnd.ms-cab-compressed": {
source: "iana",
extensions: ["cab"]
},
"application/vnd.ms-color.iccprofile": {
source: "apache"
},
"application/vnd.ms-excel": {
source: "iana",
compressible: false,
extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"]
},
"application/vnd.ms-excel.addin.macroenabled.12": {
source: "iana",
extensions: ["xlam"]
},
"application/vnd.ms-excel.sheet.binary.macroenabled.12": {
source: "iana",
extensions: ["xlsb"]
},
"application/vnd.ms-excel.sheet.macroenabled.12": {
source: "iana",
extensions: ["xlsm"]
},
"application/vnd.ms-excel.template.macroenabled.12": {
source: "iana",
extensions: ["xltm"]
},
"application/vnd.ms-fontobject": {
source: "iana",
compressible: true,
extensions: ["eot"]
},
"application/vnd.ms-htmlhelp": {
source: "iana",
extensions: ["chm"]
},
"application/vnd.ms-ims": {
source: "iana",
extensions: ["ims"]
},
"application/vnd.ms-lrm": {
source: "iana",
extensions: ["lrm"]
},
"application/vnd.ms-office.activex+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-officetheme": {
source: "iana",
extensions: ["thmx"]
},
"application/vnd.ms-opentype": {
source: "apache",
compressible: true
},
"application/vnd.ms-outlook": {
compressible: false,
extensions: ["msg"]
},
"application/vnd.ms-package.obfuscated-opentype": {
source: "apache"
},
"application/vnd.ms-pki.seccat": {
source: "apache",
extensions: ["cat"]
},
"application/vnd.ms-pki.stl": {
source: "apache",
extensions: ["stl"]
},
"application/vnd.ms-playready.initiator+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-powerpoint": {
source: "iana",
compressible: false,
extensions: ["ppt", "pps", "pot"]
},
"application/vnd.ms-powerpoint.addin.macroenabled.12": {
source: "iana",
extensions: ["ppam"]
},
"application/vnd.ms-powerpoint.presentation.macroenabled.12": {
source: "iana",
extensions: ["pptm"]
},
"application/vnd.ms-powerpoint.slide.macroenabled.12": {
source: "iana",
extensions: ["sldm"]
},
"application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
source: "iana",
extensions: ["ppsm"]
},
"application/vnd.ms-powerpoint.template.macroenabled.12": {
source: "iana",
extensions: ["potm"]
},
"application/vnd.ms-printdevicecapabilities+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-printing.printticket+xml": {
source: "apache",
compressible: true
},
"application/vnd.ms-printschematicket+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-project": {
source: "iana",
extensions: ["mpp", "mpt"]
},
"application/vnd.ms-tnef": {
source: "iana"
},
"application/vnd.ms-visio.viewer": {
extensions: ["vdx"]
},
"application/vnd.ms-windows.devicepairing": {
source: "iana"
},
"application/vnd.ms-windows.nwprinting.oob": {
source: "iana"
},
"application/vnd.ms-windows.printerpairing": {
source: "iana"
},
"application/vnd.ms-windows.wsd.oob": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-resp": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-resp": {
source: "iana"
},
"application/vnd.ms-word.document.macroenabled.12": {
source: "iana",
extensions: ["docm"]
},
"application/vnd.ms-word.template.macroenabled.12": {
source: "iana",
extensions: ["dotm"]
},
"application/vnd.ms-works": {
source: "iana",
extensions: ["wps", "wks", "wcm", "wdb"]
},
"application/vnd.ms-wpl": {
source: "iana",
extensions: ["wpl"]
},
"application/vnd.ms-xpsdocument": {
source: "iana",
compressible: false,
extensions: ["xps"]
},
"application/vnd.msa-disk-image": {
source: "iana"
},
"application/vnd.mseq": {
source: "iana",
extensions: ["mseq"]
},
"application/vnd.msgpack": {
source: "iana"
},
"application/vnd.msign": {
source: "iana"
},
"application/vnd.multiad.creator": {
source: "iana"
},
"application/vnd.multiad.creator.cif": {
source: "iana"
},
"application/vnd.music-niff": {
source: "iana"
},
"application/vnd.musician": {
source: "iana",
extensions: ["mus"]
},
"application/vnd.muvee.style": {
source: "iana",
extensions: ["msty"]
},
"application/vnd.mynfc": {
source: "iana",
extensions: ["taglet"]
},
"application/vnd.nacamar.ybrid+json": {
source: "iana",
compressible: true
},
"application/vnd.nato.bindingdataobject+cbor": {
source: "iana"
},
"application/vnd.nato.bindingdataobject+json": {
source: "iana",
compressible: true
},
"application/vnd.nato.bindingdataobject+xml": {
source: "iana",
compressible: true,
extensions: ["bdo"]
},
"application/vnd.nato.openxmlformats-package.iepd+zip": {
source: "iana",
compressible: false
},
"application/vnd.ncd.control": {
source: "iana"
},
"application/vnd.ncd.reference": {
source: "iana"
},
"application/vnd.nearst.inv+json": {
source: "iana",
compressible: true
},
"application/vnd.nebumind.line": {
source: "iana"
},
"application/vnd.nervana": {
source: "iana"
},
"application/vnd.netfpx": {
source: "iana"
},
"application/vnd.neurolanguage.nlu": {
source: "iana",
extensions: ["nlu"]
},
"application/vnd.nimn": {
source: "iana"
},
"application/vnd.nintendo.nitro.rom": {
source: "iana"
},
"application/vnd.nintendo.snes.rom": {
source: "iana"
},
"application/vnd.nitf": {
source: "iana",
extensions: ["ntf", "nitf"]
},
"application/vnd.noblenet-directory": {
source: "iana",
extensions: ["nnd"]
},
"application/vnd.noblenet-sealer": {
source: "iana",
extensions: ["nns"]
},
"application/vnd.noblenet-web": {
source: "iana",
extensions: ["nnw"]
},
"application/vnd.nokia.catalogs": {
source: "iana"
},
"application/vnd.nokia.conml+wbxml": {
source: "iana"
},
"application/vnd.nokia.conml+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.iptv.config+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.isds-radio-presets": {
source: "iana"
},
"application/vnd.nokia.landmark+wbxml": {
source: "iana"
},
"application/vnd.nokia.landmark+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.landmarkcollection+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.n-gage.ac+xml": {
source: "iana",
compressible: true,
extensions: ["ac"]
},
"application/vnd.nokia.n-gage.data": {
source: "iana",
extensions: ["ngdat"]
},
"application/vnd.nokia.n-gage.symbian.install": {
source: "apache",
extensions: ["n-gage"]
},
"application/vnd.nokia.ncd": {
source: "iana"
},
"application/vnd.nokia.pcd+wbxml": {
source: "iana"
},
"application/vnd.nokia.pcd+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.radio-preset": {
source: "iana",
extensions: ["rpst"]
},
"application/vnd.nokia.radio-presets": {
source: "iana",
extensions: ["rpss"]
},
"application/vnd.novadigm.edm": {
source: "iana",
extensions: ["edm"]
},
"application/vnd.novadigm.edx": {
source: "iana",
extensions: ["edx"]
},
"application/vnd.novadigm.ext": {
source: "iana",
extensions: ["ext"]
},
"application/vnd.ntt-local.content-share": {
source: "iana"
},
"application/vnd.ntt-local.file-transfer": {
source: "iana"
},
"application/vnd.ntt-local.ogw_remote-access": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_remote": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_tcp_stream": {
source: "iana"
},
"application/vnd.oai.workflows": {
source: "iana"
},
"application/vnd.oai.workflows+json": {
source: "iana",
compressible: true
},
"application/vnd.oai.workflows+yaml": {
source: "iana"
},
"application/vnd.oasis.opendocument.base": {
source: "iana"
},
"application/vnd.oasis.opendocument.chart": {
source: "iana",
extensions: ["odc"]
},
"application/vnd.oasis.opendocument.chart-template": {
source: "iana",
extensions: ["otc"]
},
"application/vnd.oasis.opendocument.database": {
source: "apache",
extensions: ["odb"]
},
"application/vnd.oasis.opendocument.formula": {
source: "iana",
extensions: ["odf"]
},
"application/vnd.oasis.opendocument.formula-template": {
source: "iana",
extensions: ["odft"]
},
"application/vnd.oasis.opendocument.graphics": {
source: "iana",
compressible: false,
extensions: ["odg"]
},
"application/vnd.oasis.opendocument.graphics-template": {
source: "iana",
extensions: ["otg"]
},
"application/vnd.oasis.opendocument.image": {
source: "iana",
extensions: ["odi"]
},
"application/vnd.oasis.opendocument.image-template": {
source: "iana",
extensions: ["oti"]
},
"application/vnd.oasis.opendocument.presentation": {
source: "iana",
compressible: false,
extensions: ["odp"]
},
"application/vnd.oasis.opendocument.presentation-template": {
source: "iana",
extensions: ["otp"]
},
"application/vnd.oasis.opendocument.spreadsheet": {
source: "iana",
compressible: false,
extensions: ["ods"]
},
"application/vnd.oasis.opendocument.spreadsheet-template": {
source: "iana",
extensions: ["ots"]
},
"application/vnd.oasis.opendocument.text": {
source: "iana",
compressible: false,
extensions: ["odt"]
},
"application/vnd.oasis.opendocument.text-master": {
source: "iana",
extensions: ["odm"]
},
"application/vnd.oasis.opendocument.text-master-template": {
source: "iana"
},
"application/vnd.oasis.opendocument.text-template": {
source: "iana",
extensions: ["ott"]
},
"application/vnd.oasis.opendocument.text-web": {
source: "iana",
extensions: ["oth"]
},
"application/vnd.obn": {
source: "iana"
},
"application/vnd.ocf+cbor": {
source: "iana"
},
"application/vnd.oci.image.manifest.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.oftn.l10n+json": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessdownload+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessstreaming+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.cspg-hexbinary": {
source: "iana"
},
"application/vnd.oipf.dae.svg+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.dae.xhtml+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.mippvcontrolmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.pae.gem": {
source: "iana"
},
"application/vnd.oipf.spdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.spdlist+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.ueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.userprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.olpc-sugar": {
source: "iana",
extensions: ["xo"]
},
"application/vnd.oma-scws-config": {
source: "iana"
},
"application/vnd.oma-scws-http-request": {
source: "iana"
},
"application/vnd.oma-scws-http-response": {
source: "iana"
},
"application/vnd.oma.bcast.associated-procedure-parameter+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.drm-trigger+xml": {
source: "apache",
compressible: true
},
"application/vnd.oma.bcast.imd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.ltkm": {
source: "iana"
},
"application/vnd.oma.bcast.notification+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.provisioningtrigger": {
source: "iana"
},
"application/vnd.oma.bcast.sgboot": {
source: "iana"
},
"application/vnd.oma.bcast.sgdd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.sgdu": {
source: "iana"
},
"application/vnd.oma.bcast.simple-symbol-container": {
source: "iana"
},
"application/vnd.oma.bcast.smartcard-trigger+xml": {
source: "apache",
compressible: true
},
"application/vnd.oma.bcast.sprov+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.stkm": {
source: "iana"
},
"application/vnd.oma.cab-address-book+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-feature-handler+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-pcc+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-subs-invite+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-user-prefs+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.dcd": {
source: "iana"
},
"application/vnd.oma.dcdc": {
source: "iana"
},
"application/vnd.oma.dd2+xml": {
source: "iana",
compressible: true,
extensions: ["dd2"]
},
"application/vnd.oma.drm.risd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.group-usage-list+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+cbor": {
source: "iana"
},
"application/vnd.oma.lwm2m+json": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+tlv": {
source: "iana"
},
"application/vnd.oma.pal+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.detailed-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.final-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.groups+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.invocation-descriptor+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.optimized-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.push": {
source: "iana"
},
"application/vnd.oma.scidm.messages+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.xcap-directory+xml": {
source: "iana",
compressible: true
},
"application/vnd.omads-email+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-file+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-folder+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omaloc-supl-init": {
source: "iana"
},
"application/vnd.onepager": {
source: "iana"
},
"application/vnd.onepagertamp": {
source: "iana"
},
"application/vnd.onepagertamx": {
source: "iana"
},
"application/vnd.onepagertat": {
source: "iana"
},
"application/vnd.onepagertatp": {
source: "iana"
},
"application/vnd.onepagertatx": {
source: "iana"
},
"application/vnd.onvif.metadata": {
source: "iana"
},
"application/vnd.openblox.game+xml": {
source: "iana",
compressible: true,
extensions: ["obgx"]
},
"application/vnd.openblox.game-binary": {
source: "iana"
},
"application/vnd.openeye.oeb": {
source: "iana"
},
"application/vnd.openofficeorg.extension": {
source: "apache",
extensions: ["oxt"]
},
"application/vnd.openstreetmap.data+xml": {
source: "iana",
compressible: true,
extensions: ["osm"]
},
"application/vnd.opentimestamps.ots": {
source: "iana"
},
"application/vnd.openvpi.dspx+json": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.custom-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawing+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.extended-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation": {
source: "iana",
compressible: false,
extensions: ["pptx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slide": {
source: "iana",
extensions: ["sldx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
source: "iana",
extensions: ["ppsx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.template": {
source: "iana",
extensions: ["potx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
source: "iana",
compressible: false,
extensions: ["xlsx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
source: "iana",
extensions: ["xltx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.theme+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.themeoverride+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.vmldrawing": {
source: "iana"
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
source: "iana",
compressible: false,
extensions: ["docx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
source: "iana",
extensions: ["dotx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.core-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.relationships+xml": {
source: "iana",
compressible: true
},
"application/vnd.oracle.resource+json": {
source: "iana",
compressible: true
},
"application/vnd.orange.indata": {
source: "iana"
},
"application/vnd.osa.netdeploy": {
source: "iana"
},
"application/vnd.osgeo.mapguide.package": {
source: "iana",
extensions: ["mgp"]
},
"application/vnd.osgi.bundle": {
source: "iana"
},
"application/vnd.osgi.dp": {
source: "iana",
extensions: ["dp"]
},
"application/vnd.osgi.subsystem": {
source: "iana",
extensions: ["esa"]
},
"application/vnd.otps.ct-kip+xml": {
source: "iana",
compressible: true
},
"application/vnd.oxli.countgraph": {
source: "iana"
},
"application/vnd.pagerduty+json": {
source: "iana",
compressible: true
},
"application/vnd.palm": {
source: "iana",
extensions: ["pdb", "pqa", "oprc"]
},
"application/vnd.panoply": {
source: "iana"
},
"application/vnd.paos.xml": {
source: "iana"
},
"application/vnd.patentdive": {
source: "iana"
},
"application/vnd.patientecommsdoc": {
source: "iana"
},
"application/vnd.pawaafile": {
source: "iana",
extensions: ["paw"]
},
"application/vnd.pcos": {
source: "iana"
},
"application/vnd.pg.format": {
source: "iana",
extensions: ["str"]
},
"application/vnd.pg.osasli": {
source: "iana",
extensions: ["ei6"]
},
"application/vnd.piaccess.application-licence": {
source: "iana"
},
"application/vnd.picsel": {
source: "iana",
extensions: ["efif"]
},
"application/vnd.pmi.widget": {
source: "iana",
extensions: ["wg"]
},
"application/vnd.poc.group-advertisement+xml": {
source: "iana",
compressible: true
},
"application/vnd.pocketlearn": {
source: "iana",
extensions: ["plf"]
},
"application/vnd.powerbuilder6": {
source: "iana",
extensions: ["pbd"]
},
"application/vnd.powerbuilder6-s": {
source: "iana"
},
"application/vnd.powerbuilder7": {
source: "iana"
},
"application/vnd.powerbuilder7-s": {
source: "iana"
},
"application/vnd.powerbuilder75": {
source: "iana"
},
"application/vnd.powerbuilder75-s": {
source: "iana"
},
"application/vnd.preminet": {
source: "iana"
},
"application/vnd.previewsystems.box": {
source: "iana",
extensions: ["box"]
},
"application/vnd.procrate.brushset": {
extensions: ["brushset"]
},
"application/vnd.procreate.brush": {
extensions: ["brush"]
},
"application/vnd.procreate.dream": {
extensions: ["drm"]
},
"application/vnd.proteus.magazine": {
source: "iana",
extensions: ["mgz"]
},
"application/vnd.psfs": {
source: "iana"
},
"application/vnd.pt.mundusmundi": {
source: "iana"
},
"application/vnd.publishare-delta-tree": {
source: "iana",
extensions: ["qps"]
},
"application/vnd.pvi.ptid1": {
source: "iana",
extensions: ["ptid"]
},
"application/vnd.pwg-multiplexed": {
source: "iana"
},
"application/vnd.pwg-xhtml-print+xml": {
source: "iana",
compressible: true,
extensions: ["xhtm"]
},
"application/vnd.qualcomm.brew-app-res": {
source: "iana"
},
"application/vnd.quarantainenet": {
source: "iana"
},
"application/vnd.quark.quarkxpress": {
source: "iana",
extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"]
},
"application/vnd.quobject-quoxdocument": {
source: "iana"
},
"application/vnd.radisys.moml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conn+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-stream+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-base+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-detect+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-group+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-speech+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-transform+xml": {
source: "iana",
compressible: true
},
"application/vnd.rainstor.data": {
source: "iana"
},
"application/vnd.rapid": {
source: "iana"
},
"application/vnd.rar": {
source: "iana",
extensions: ["rar"]
},
"application/vnd.realvnc.bed": {
source: "iana",
extensions: ["bed"]
},
"application/vnd.recordare.musicxml": {
source: "iana",
extensions: ["mxl"]
},
"application/vnd.recordare.musicxml+xml": {
source: "iana",
compressible: true,
extensions: ["musicxml"]
},
"application/vnd.relpipe": {
source: "iana"
},
"application/vnd.renlearn.rlprint": {
source: "iana"
},
"application/vnd.resilient.logic": {
source: "iana"
},
"application/vnd.restful+json": {
source: "iana",
compressible: true
},
"application/vnd.rig.cryptonote": {
source: "iana",
extensions: ["cryptonote"]
},
"application/vnd.rim.cod": {
source: "apache",
extensions: ["cod"]
},
"application/vnd.rn-realmedia": {
source: "apache",
extensions: ["rm"]
},
"application/vnd.rn-realmedia-vbr": {
source: "apache",
extensions: ["rmvb"]
},
"application/vnd.route66.link66+xml": {
source: "iana",
compressible: true,
extensions: ["link66"]
},
"application/vnd.rs-274x": {
source: "iana"
},
"application/vnd.ruckus.download": {
source: "iana"
},
"application/vnd.s3sms": {
source: "iana"
},
"application/vnd.sailingtracker.track": {
source: "iana",
extensions: ["st"]
},
"application/vnd.sar": {
source: "iana"
},
"application/vnd.sbm.cid": {
source: "iana"
},
"application/vnd.sbm.mid2": {
source: "iana"
},
"application/vnd.scribus": {
source: "iana"
},
"application/vnd.sealed.3df": {
source: "iana"
},
"application/vnd.sealed.csf": {
source: "iana"
},
"application/vnd.sealed.doc": {
source: "iana"
},
"application/vnd.sealed.eml": {
source: "iana"
},
"application/vnd.sealed.mht": {
source: "iana"
},
"application/vnd.sealed.net": {
source: "iana"
},
"application/vnd.sealed.ppt": {
source: "iana"
},
"application/vnd.sealed.tiff": {
source: "iana"
},
"application/vnd.sealed.xls": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.html": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.pdf": {
source: "iana"
},
"application/vnd.seemail": {
source: "iana",
extensions: ["see"]
},
"application/vnd.seis+json": {
source: "iana",
compressible: true
},
"application/vnd.sema": {
source: "iana",
extensions: ["sema"]
},
"application/vnd.semd": {
source: "iana",
extensions: ["semd"]
},
"application/vnd.semf": {
source: "iana",
extensions: ["semf"]
},
"application/vnd.shade-save-file": {
source: "iana"
},
"application/vnd.shana.informed.formdata": {
source: "iana",
extensions: ["ifm"]
},
"application/vnd.shana.informed.formtemplate": {
source: "iana",
extensions: ["itp"]
},
"application/vnd.shana.informed.interchange": {
source: "iana",
extensions: ["iif"]
},
"application/vnd.shana.informed.package": {
source: "iana",
extensions: ["ipk"]
},
"application/vnd.shootproof+json": {
source: "iana",
compressible: true
},
"application/vnd.shopkick+json": {
source: "iana",
compressible: true
},
"application/vnd.shp": {
source: "iana"
},
"application/vnd.shx": {
source: "iana"
},
"application/vnd.sigrok.session": {
source: "iana"
},
"application/vnd.simtech-mindmapper": {
source: "iana",
extensions: ["twd", "twds"]
},
"application/vnd.siren+json": {
source: "iana",
compressible: true
},
"application/vnd.sketchometry": {
source: "iana"
},
"application/vnd.smaf": {
source: "iana",
extensions: ["mmf"]
},
"application/vnd.smart.notebook": {
source: "iana"
},
"application/vnd.smart.teacher": {
source: "iana",
extensions: ["teacher"]
},
"application/vnd.smintio.portals.archive": {
source: "iana"
},
"application/vnd.snesdev-page-table": {
source: "iana"
},
"application/vnd.software602.filler.form+xml": {
source: "iana",
compressible: true,
extensions: ["fo"]
},
"application/vnd.software602.filler.form-xml-zip": {
source: "iana"
},
"application/vnd.solent.sdkm+xml": {
source: "iana",
compressible: true,
extensions: ["sdkm", "sdkd"]
},
"application/vnd.spotfire.dxp": {
source: "iana",
extensions: ["dxp"]
},
"application/vnd.spotfire.sfs": {
source: "iana",
extensions: ["sfs"]
},
"application/vnd.sqlite3": {
source: "iana"
},
"application/vnd.sss-cod": {
source: "iana"
},
"application/vnd.sss-dtf": {
source: "iana"
},
"application/vnd.sss-ntf": {
source: "iana"
},
"application/vnd.stardivision.calc": {
source: "apache",
extensions: ["sdc"]
},
"application/vnd.stardivision.draw": {
source: "apache",
extensions: ["sda"]
},
"application/vnd.stardivision.impress": {
source: "apache",
extensions: ["sdd"]
},
"application/vnd.stardivision.math": {
source: "apache",
extensions: ["smf"]
},
"application/vnd.stardivision.writer": {
source: "apache",
extensions: ["sdw", "vor"]
},
"application/vnd.stardivision.writer-global": {
source: "apache",
extensions: ["sgl"]
},
"application/vnd.stepmania.package": {
source: "iana",
extensions: ["smzip"]
},
"application/vnd.stepmania.stepchart": {
source: "iana",
extensions: ["sm"]
},
"application/vnd.street-stream": {
source: "iana"
},
"application/vnd.sun.wadl+xml": {
source: "iana",
compressible: true,
extensions: ["wadl"]
},
"application/vnd.sun.xml.calc": {
source: "apache",
extensions: ["sxc"]
},
"application/vnd.sun.xml.calc.template": {
source: "apache",
extensions: ["stc"]
},
"application/vnd.sun.xml.draw": {
source: "apache",
extensions: ["sxd"]
},
"application/vnd.sun.xml.draw.template": {
source: "apache",
extensions: ["std"]
},
"application/vnd.sun.xml.impress": {
source: "apache",
extensions: ["sxi"]
},
"application/vnd.sun.xml.impress.template": {
source: "apache",
extensions: ["sti"]
},
"application/vnd.sun.xml.math": {
source: "apache",
extensions: ["sxm"]
},
"application/vnd.sun.xml.writer": {
source: "apache",
extensions: ["sxw"]
},
"application/vnd.sun.xml.writer.global": {
source: "apache",
extensions: ["sxg"]
},
"application/vnd.sun.xml.writer.template": {
source: "apache",
extensions: ["stw"]
},
"application/vnd.sus-calendar": {
source: "iana",
extensions: ["sus", "susp"]
},
"application/vnd.svd": {
source: "iana",
extensions: ["svd"]
},
"application/vnd.swiftview-ics": {
source: "iana"
},
"application/vnd.sybyl.mol2": {
source: "iana"
},
"application/vnd.sycle+xml": {
source: "iana",
compressible: true
},
"application/vnd.syft+json": {
source: "iana",
compressible: true
},
"application/vnd.symbian.install": {
source: "apache",
extensions: ["sis", "sisx"]
},
"application/vnd.syncml+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xsm"]
},
"application/vnd.syncml.dm+wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["bdm"]
},
"application/vnd.syncml.dm+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xdm"]
},
"application/vnd.syncml.dm.notification": {
source: "iana"
},
"application/vnd.syncml.dmddf+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmddf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["ddf"]
},
"application/vnd.syncml.dmtnds+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmtnds+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.syncml.ds.notification": {
source: "iana"
},
"application/vnd.tableschema+json": {
source: "iana",
compressible: true
},
"application/vnd.tao.intent-module-archive": {
source: "iana",
extensions: ["tao"]
},
"application/vnd.tcpdump.pcap": {
source: "iana",
extensions: ["pcap", "cap", "dmp"]
},
"application/vnd.think-cell.ppttc+json": {
source: "iana",
compressible: true
},
"application/vnd.tmd.mediaflex.api+xml": {
source: "iana",
compressible: true
},
"application/vnd.tml": {
source: "iana"
},
"application/vnd.tmobile-livetv": {
source: "iana",
extensions: ["tmo"]
},
"application/vnd.tri.onesource": {
source: "iana"
},
"application/vnd.trid.tpt": {
source: "iana",
extensions: ["tpt"]
},
"application/vnd.triscape.mxs": {
source: "iana",
extensions: ["mxs"]
},
"application/vnd.trueapp": {
source: "iana",
extensions: ["tra"]
},
"application/vnd.truedoc": {
source: "iana"
},
"application/vnd.ubisoft.webplayer": {
source: "iana"
},
"application/vnd.ufdl": {
source: "iana",
extensions: ["ufd", "ufdl"]
},
"application/vnd.uic.osdm+json": {
source: "iana",
compressible: true
},
"application/vnd.uiq.theme": {
source: "iana",
extensions: ["utz"]
},
"application/vnd.umajin": {
source: "iana",
extensions: ["umj"]
},
"application/vnd.unity": {
source: "iana",
extensions: ["unityweb"]
},
"application/vnd.uoml+xml": {
source: "iana",
compressible: true,
extensions: ["uoml", "uo"]
},
"application/vnd.uplanet.alert": {
source: "iana"
},
"application/vnd.uplanet.alert-wbxml": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice-wbxml": {
source: "iana"
},
"application/vnd.uplanet.cacheop": {
source: "iana"
},
"application/vnd.uplanet.cacheop-wbxml": {
source: "iana"
},
"application/vnd.uplanet.channel": {
source: "iana"
},
"application/vnd.uplanet.channel-wbxml": {
source: "iana"
},
"application/vnd.uplanet.list": {
source: "iana"
},
"application/vnd.uplanet.list-wbxml": {
source: "iana"
},
"application/vnd.uplanet.listcmd": {
source: "iana"
},
"application/vnd.uplanet.listcmd-wbxml": {
source: "iana"
},
"application/vnd.uplanet.signal": {
source: "iana"
},
"application/vnd.uri-map": {
source: "iana"
},
"application/vnd.valve.source.material": {
source: "iana"
},
"application/vnd.vcx": {
source: "iana",
extensions: ["vcx"]
},
"application/vnd.vd-study": {
source: "iana"
},
"application/vnd.vectorworks": {
source: "iana"
},
"application/vnd.vel+json": {
source: "iana",
compressible: true
},
"application/vnd.veraison.tsm-report+cbor": {
source: "iana"
},
"application/vnd.veraison.tsm-report+json": {
source: "iana",
compressible: true
},
"application/vnd.verimatrix.vcas": {
source: "iana"
},
"application/vnd.veritone.aion+json": {
source: "iana",
compressible: true
},
"application/vnd.veryant.thin": {
source: "iana"
},
"application/vnd.ves.encrypted": {
source: "iana"
},
"application/vnd.vidsoft.vidconference": {
source: "iana"
},
"application/vnd.visio": {
source: "iana",
extensions: ["vsd", "vst", "vss", "vsw", "vsdx", "vtx"]
},
"application/vnd.visionary": {
source: "iana",
extensions: ["vis"]
},
"application/vnd.vividence.scriptfile": {
source: "iana"
},
"application/vnd.vocalshaper.vsp4": {
source: "iana"
},
"application/vnd.vsf": {
source: "iana",
extensions: ["vsf"]
},
"application/vnd.wap.sic": {
source: "iana"
},
"application/vnd.wap.slc": {
source: "iana"
},
"application/vnd.wap.wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["wbxml"]
},
"application/vnd.wap.wmlc": {
source: "iana",
extensions: ["wmlc"]
},
"application/vnd.wap.wmlscriptc": {
source: "iana",
extensions: ["wmlsc"]
},
"application/vnd.wasmflow.wafl": {
source: "iana"
},
"application/vnd.webturbo": {
source: "iana",
extensions: ["wtb"]
},
"application/vnd.wfa.dpp": {
source: "iana"
},
"application/vnd.wfa.p2p": {
source: "iana"
},
"application/vnd.wfa.wsc": {
source: "iana"
},
"application/vnd.windows.devicepairing": {
source: "iana"
},
"application/vnd.wmc": {
source: "iana"
},
"application/vnd.wmf.bootstrap": {
source: "iana"
},
"application/vnd.wolfram.mathematica": {
source: "iana"
},
"application/vnd.wolfram.mathematica.package": {
source: "iana"
},
"application/vnd.wolfram.player": {
source: "iana",
extensions: ["nbp"]
},
"application/vnd.wordlift": {
source: "iana"
},
"application/vnd.wordperfect": {
source: "iana",
extensions: ["wpd"]
},
"application/vnd.wqd": {
source: "iana",
extensions: ["wqd"]
},
"application/vnd.wrq-hp3000-labelled": {
source: "iana"
},
"application/vnd.wt.stf": {
source: "iana",
extensions: ["stf"]
},
"application/vnd.wv.csp+wbxml": {
source: "iana"
},
"application/vnd.wv.csp+xml": {
source: "iana",
compressible: true
},
"application/vnd.wv.ssp+xml": {
source: "iana",
compressible: true
},
"application/vnd.xacml+json": {
source: "iana",
compressible: true
},
"application/vnd.xara": {
source: "iana",
extensions: ["xar"]
},
"application/vnd.xarin.cpj": {
source: "iana"
},
"application/vnd.xecrets-encrypted": {
source: "iana"
},
"application/vnd.xfdl": {
source: "iana",
extensions: ["xfdl"]
},
"application/vnd.xfdl.webform": {
source: "iana"
},
"application/vnd.xmi+xml": {
source: "iana",
compressible: true
},
"application/vnd.xmpie.cpkg": {
source: "iana"
},
"application/vnd.xmpie.dpkg": {
source: "iana"
},
"application/vnd.xmpie.plan": {
source: "iana"
},
"application/vnd.xmpie.ppkg": {
source: "iana"
},
"application/vnd.xmpie.xlim": {
source: "iana"
},
"application/vnd.yamaha.hv-dic": {
source: "iana",
extensions: ["hvd"]
},
"application/vnd.yamaha.hv-script": {
source: "iana",
extensions: ["hvs"]
},
"application/vnd.yamaha.hv-voice": {
source: "iana",
extensions: ["hvp"]
},
"application/vnd.yamaha.openscoreformat": {
source: "iana",
extensions: ["osf"]
},
"application/vnd.yamaha.openscoreformat.osfpvg+xml": {
source: "iana",
compressible: true,
extensions: ["osfpvg"]
},
"application/vnd.yamaha.remote-setup": {
source: "iana"
},
"application/vnd.yamaha.smaf-audio": {
source: "iana",
extensions: ["saf"]
},
"application/vnd.yamaha.smaf-phrase": {
source: "iana",
extensions: ["spf"]
},
"application/vnd.yamaha.through-ngn": {
source: "iana"
},
"application/vnd.yamaha.tunnel-udpencap": {
source: "iana"
},
"application/vnd.yaoweme": {
source: "iana"
},
"application/vnd.yellowriver-custom-menu": {
source: "iana",
extensions: ["cmp"]
},
"application/vnd.zul": {
source: "iana",
extensions: ["zir", "zirz"]
},
"application/vnd.zzazz.deck+xml": {
source: "iana",
compressible: true,
extensions: ["zaz"]
},
"application/voicexml+xml": {
source: "iana",
compressible: true,
extensions: ["vxml"]
},
"application/voucher-cms+json": {
source: "iana",
compressible: true
},
"application/voucher-jws+json": {
source: "iana",
compressible: true
},
"application/vp": {
source: "iana"
},
"application/vp+cose": {
source: "iana"
},
"application/vp+jwt": {
source: "iana"
},
"application/vq-rtcpxr": {
source: "iana"
},
"application/wasm": {
source: "iana",
compressible: true,
extensions: ["wasm"]
},
"application/watcherinfo+xml": {
source: "iana",
compressible: true,
extensions: ["wif"]
},
"application/webpush-options+json": {
source: "iana",
compressible: true
},
"application/whoispp-query": {
source: "iana"
},
"application/whoispp-response": {
source: "iana"
},
"application/widget": {
source: "iana",
extensions: ["wgt"]
},
"application/winhlp": {
source: "apache",
extensions: ["hlp"]
},
"application/wita": {
source: "iana"
},
"application/wordperfect5.1": {
source: "iana"
},
"application/wsdl+xml": {
source: "iana",
compressible: true,
extensions: ["wsdl"]
},
"application/wspolicy+xml": {
source: "iana",
compressible: true,
extensions: ["wspolicy"]
},
"application/x-7z-compressed": {
source: "apache",
compressible: false,
extensions: ["7z"]
},
"application/x-abiword": {
source: "apache",
extensions: ["abw"]
},
"application/x-ace-compressed": {
source: "apache",
extensions: ["ace"]
},
"application/x-amf": {
source: "apache"
},
"application/x-apple-diskimage": {
source: "apache",
extensions: ["dmg"]
},
"application/x-arj": {
compressible: false,
extensions: ["arj"]
},
"application/x-authorware-bin": {
source: "apache",
extensions: ["aab", "x32", "u32", "vox"]
},
"application/x-authorware-map": {
source: "apache",
extensions: ["aam"]
},
"application/x-authorware-seg": {
source: "apache",
extensions: ["aas"]
},
"application/x-bcpio": {
source: "apache",
extensions: ["bcpio"]
},
"application/x-bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/x-bittorrent": {
source: "apache",
extensions: ["torrent"]
},
"application/x-blender": {
extensions: ["blend"]
},
"application/x-blorb": {
source: "apache",
extensions: ["blb", "blorb"]
},
"application/x-bzip": {
source: "apache",
compressible: false,
extensions: ["bz"]
},
"application/x-bzip2": {
source: "apache",
compressible: false,
extensions: ["bz2", "boz"]
},
"application/x-cbr": {
source: "apache",
extensions: ["cbr", "cba", "cbt", "cbz", "cb7"]
},
"application/x-cdlink": {
source: "apache",
extensions: ["vcd"]
},
"application/x-cfs-compressed": {
source: "apache",
extensions: ["cfs"]
},
"application/x-chat": {
source: "apache",
extensions: ["chat"]
},
"application/x-chess-pgn": {
source: "apache",
extensions: ["pgn"]
},
"application/x-chrome-extension": {
extensions: ["crx"]
},
"application/x-cocoa": {
source: "nginx",
extensions: ["cco"]
},
"application/x-compress": {
source: "apache"
},
"application/x-compressed": {
extensions: ["rar"]
},
"application/x-conference": {
source: "apache",
extensions: ["nsc"]
},
"application/x-cpio": {
source: "apache",
extensions: ["cpio"]
},
"application/x-csh": {
source: "apache",
extensions: ["csh"]
},
"application/x-deb": {
compressible: false
},
"application/x-debian-package": {
source: "apache",
extensions: ["deb", "udeb"]
},
"application/x-dgc-compressed": {
source: "apache",
extensions: ["dgc"]
},
"application/x-director": {
source: "apache",
extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"]
},
"application/x-doom": {
source: "apache",
extensions: ["wad"]
},
"application/x-dtbncx+xml": {
source: "apache",
compressible: true,
extensions: ["ncx"]
},
"application/x-dtbook+xml": {
source: "apache",
compressible: true,
extensions: ["dtb"]
},
"application/x-dtbresource+xml": {
source: "apache",
compressible: true,
extensions: ["res"]
},
"application/x-dvi": {
source: "apache",
compressible: false,
extensions: ["dvi"]
},
"application/x-envoy": {
source: "apache",
extensions: ["evy"]
},
"application/x-eva": {
source: "apache",
extensions: ["eva"]
},
"application/x-font-bdf": {
source: "apache",
extensions: ["bdf"]
},
"application/x-font-dos": {
source: "apache"
},
"application/x-font-framemaker": {
source: "apache"
},
"application/x-font-ghostscript": {
source: "apache",
extensions: ["gsf"]
},
"application/x-font-libgrx": {
source: "apache"
},
"application/x-font-linux-psf": {
source: "apache",
extensions: ["psf"]
},
"application/x-font-pcf": {
source: "apache",
extensions: ["pcf"]
},
"application/x-font-snf": {
source: "apache",
extensions: ["snf"]
},
"application/x-font-speedo": {
source: "apache"
},
"application/x-font-sunos-news": {
source: "apache"
},
"application/x-font-type1": {
source: "apache",
extensions: ["pfa", "pfb", "pfm", "afm"]
},
"application/x-font-vfont": {
source: "apache"
},
"application/x-freearc": {
source: "apache",
extensions: ["arc"]
},
"application/x-futuresplash": {
source: "apache",
extensions: ["spl"]
},
"application/x-gca-compressed": {
source: "apache",
extensions: ["gca"]
},
"application/x-glulx": {
source: "apache",
extensions: ["ulx"]
},
"application/x-gnumeric": {
source: "apache",
extensions: ["gnumeric"]
},
"application/x-gramps-xml": {
source: "apache",
extensions: ["gramps"]
},
"application/x-gtar": {
source: "apache",
extensions: ["gtar"]
},
"application/x-gzip": {
source: "apache"
},
"application/x-hdf": {
source: "apache",
extensions: ["hdf"]
},
"application/x-httpd-php": {
compressible: true,
extensions: ["php"]
},
"application/x-install-instructions": {
source: "apache",
extensions: ["install"]
},
"application/x-ipynb+json": {
compressible: true,
extensions: ["ipynb"]
},
"application/x-iso9660-image": {
source: "apache",
extensions: ["iso"]
},
"application/x-iwork-keynote-sffkey": {
extensions: ["key"]
},
"application/x-iwork-numbers-sffnumbers": {
extensions: ["numbers"]
},
"application/x-iwork-pages-sffpages": {
extensions: ["pages"]
},
"application/x-java-archive-diff": {
source: "nginx",
extensions: ["jardiff"]
},
"application/x-java-jnlp-file": {
source: "apache",
compressible: false,
extensions: ["jnlp"]
},
"application/x-javascript": {
compressible: true
},
"application/x-keepass2": {
extensions: ["kdbx"]
},
"application/x-latex": {
source: "apache",
compressible: false,
extensions: ["latex"]
},
"application/x-lua-bytecode": {
extensions: ["luac"]
},
"application/x-lzh-compressed": {
source: "apache",
extensions: ["lzh", "lha"]
},
"application/x-makeself": {
source: "nginx",
extensions: ["run"]
},
"application/x-mie": {
source: "apache",
extensions: ["mie"]
},
"application/x-mobipocket-ebook": {
source: "apache",
extensions: ["prc", "mobi"]
},
"application/x-mpegurl": {
compressible: false
},
"application/x-ms-application": {
source: "apache",
extensions: ["application"]
},
"application/x-ms-shortcut": {
source: "apache",
extensions: ["lnk"]
},
"application/x-ms-wmd": {
source: "apache",
extensions: ["wmd"]
},
"application/x-ms-wmz": {
source: "apache",
extensions: ["wmz"]
},
"application/x-ms-xbap": {
source: "apache",
extensions: ["xbap"]
},
"application/x-msaccess": {
source: "apache",
extensions: ["mdb"]
},
"application/x-msbinder": {
source: "apache",
extensions: ["obd"]
},
"application/x-mscardfile": {
source: "apache",
extensions: ["crd"]
},
"application/x-msclip": {
source: "apache",
extensions: ["clp"]
},
"application/x-msdos-program": {
extensions: ["exe"]
},
"application/x-msdownload": {
source: "apache",
extensions: ["exe", "dll", "com", "bat", "msi"]
},
"application/x-msmediaview": {
source: "apache",
extensions: ["mvb", "m13", "m14"]
},
"application/x-msmetafile": {
source: "apache",
extensions: ["wmf", "wmz", "emf", "emz"]
},
"application/x-msmoney": {
source: "apache",
extensions: ["mny"]
},
"application/x-mspublisher": {
source: "apache",
extensions: ["pub"]
},
"application/x-msschedule": {
source: "apache",
extensions: ["scd"]
},
"application/x-msterminal": {
source: "apache",
extensions: ["trm"]
},
"application/x-mswrite": {
source: "apache",
extensions: ["wri"]
},
"application/x-netcdf": {
source: "apache",
extensions: ["nc", "cdf"]
},
"application/x-ns-proxy-autoconfig": {
compressible: true,
extensions: ["pac"]
},
"application/x-nzb": {
source: "apache",
extensions: ["nzb"]
},
"application/x-perl": {
source: "nginx",
extensions: ["pl", "pm"]
},
"application/x-pilot": {
source: "nginx",
extensions: ["prc", "pdb"]
},
"application/x-pkcs12": {
source: "apache",
compressible: false,
extensions: ["p12", "pfx"]
},
"application/x-pkcs7-certificates": {
source: "apache",
extensions: ["p7b", "spc"]
},
"application/x-pkcs7-certreqresp": {
source: "apache",
extensions: ["p7r"]
},
"application/x-pki-message": {
source: "iana"
},
"application/x-rar-compressed": {
source: "apache",
compressible: false,
extensions: ["rar"]
},
"application/x-redhat-package-manager": {
source: "nginx",
extensions: ["rpm"]
},
"application/x-research-info-systems": {
source: "apache",
extensions: ["ris"]
},
"application/x-sea": {
source: "nginx",
extensions: ["sea"]
},
"application/x-sh": {
source: "apache",
compressible: true,
extensions: ["sh"]
},
"application/x-shar": {
source: "apache",
extensions: ["shar"]
},
"application/x-shockwave-flash": {
source: "apache",
compressible: false,
extensions: ["swf"]
},
"application/x-silverlight-app": {
source: "apache",
extensions: ["xap"]
},
"application/x-sql": {
source: "apache",
extensions: ["sql"]
},
"application/x-stuffit": {
source: "apache",
compressible: false,
extensions: ["sit"]
},
"application/x-stuffitx": {
source: "apache",
extensions: ["sitx"]
},
"application/x-subrip": {
source: "apache",
extensions: ["srt"]
},
"application/x-sv4cpio": {
source: "apache",
extensions: ["sv4cpio"]
},
"application/x-sv4crc": {
source: "apache",
extensions: ["sv4crc"]
},
"application/x-t3vm-image": {
source: "apache",
extensions: ["t3"]
},
"application/x-tads": {
source: "apache",
extensions: ["gam"]
},
"application/x-tar": {
source: "apache",
compressible: true,
extensions: ["tar"]
},
"application/x-tcl": {
source: "apache",
extensions: ["tcl", "tk"]
},
"application/x-tex": {
source: "apache",
extensions: ["tex"]
},
"application/x-tex-tfm": {
source: "apache",
extensions: ["tfm"]
},
"application/x-texinfo": {
source: "apache",
extensions: ["texinfo", "texi"]
},
"application/x-tgif": {
source: "apache",
extensions: ["obj"]
},
"application/x-ustar": {
source: "apache",
extensions: ["ustar"]
},
"application/x-virtualbox-hdd": {
compressible: true,
extensions: ["hdd"]
},
"application/x-virtualbox-ova": {
compressible: true,
extensions: ["ova"]
},
"application/x-virtualbox-ovf": {
compressible: true,
extensions: ["ovf"]
},
"application/x-virtualbox-vbox": {
compressible: true,
extensions: ["vbox"]
},
"application/x-virtualbox-vbox-extpack": {
compressible: false,
extensions: ["vbox-extpack"]
},
"application/x-virtualbox-vdi": {
compressible: true,
extensions: ["vdi"]
},
"application/x-virtualbox-vhd": {
compressible: true,
extensions: ["vhd"]
},
"application/x-virtualbox-vmdk": {
compressible: true,
extensions: ["vmdk"]
},
"application/x-wais-source": {
source: "apache",
extensions: ["src"]
},
"application/x-web-app-manifest+json": {
compressible: true,
extensions: ["webapp"]
},
"application/x-www-form-urlencoded": {
source: "iana",
compressible: true
},
"application/x-x509-ca-cert": {
source: "iana",
extensions: ["der", "crt", "pem"]
},
"application/x-x509-ca-ra-cert": {
source: "iana"
},
"application/x-x509-next-ca-cert": {
source: "iana"
},
"application/x-xfig": {
source: "apache",
extensions: ["fig"]
},
"application/x-xliff+xml": {
source: "apache",
compressible: true,
extensions: ["xlf"]
},
"application/x-xpinstall": {
source: "apache",
compressible: false,
extensions: ["xpi"]
},
"application/x-xz": {
source: "apache",
extensions: ["xz"]
},
"application/x-zip-compressed": {
extensions: ["zip"]
},
"application/x-zmachine": {
source: "apache",
extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"]
},
"application/x400-bp": {
source: "iana"
},
"application/xacml+xml": {
source: "iana",
compressible: true
},
"application/xaml+xml": {
source: "apache",
compressible: true,
extensions: ["xaml"]
},
"application/xcap-att+xml": {
source: "iana",
compressible: true,
extensions: ["xav"]
},
"application/xcap-caps+xml": {
source: "iana",
compressible: true,
extensions: ["xca"]
},
"application/xcap-diff+xml": {
source: "iana",
compressible: true,
extensions: ["xdf"]
},
"application/xcap-el+xml": {
source: "iana",
compressible: true,
extensions: ["xel"]
},
"application/xcap-error+xml": {
source: "iana",
compressible: true
},
"application/xcap-ns+xml": {
source: "iana",
compressible: true,
extensions: ["xns"]
},
"application/xcon-conference-info+xml": {
source: "iana",
compressible: true
},
"application/xcon-conference-info-diff+xml": {
source: "iana",
compressible: true
},
"application/xenc+xml": {
source: "iana",
compressible: true,
extensions: ["xenc"]
},
"application/xfdf": {
source: "iana",
extensions: ["xfdf"]
},
"application/xhtml+xml": {
source: "iana",
compressible: true,
extensions: ["xhtml", "xht"]
},
"application/xhtml-voice+xml": {
source: "apache",
compressible: true
},
"application/xliff+xml": {
source: "iana",
compressible: true,
extensions: ["xlf"]
},
"application/xml": {
source: "iana",
compressible: true,
extensions: ["xml", "xsl", "xsd", "rng"]
},
"application/xml-dtd": {
source: "iana",
compressible: true,
extensions: ["dtd"]
},
"application/xml-external-parsed-entity": {
source: "iana"
},
"application/xml-patch+xml": {
source: "iana",
compressible: true
},
"application/xmpp+xml": {
source: "iana",
compressible: true
},
"application/xop+xml": {
source: "iana",
compressible: true,
extensions: ["xop"]
},
"application/xproc+xml": {
source: "apache",
compressible: true,
extensions: ["xpl"]
},
"application/xslt+xml": {
source: "iana",
compressible: true,
extensions: ["xsl", "xslt"]
},
"application/xspf+xml": {
source: "apache",
compressible: true,
extensions: ["xspf"]
},
"application/xv+xml": {
source: "iana",
compressible: true,
extensions: ["mxml", "xhvml", "xvml", "xvm"]
},
"application/yaml": {
source: "iana"
},
"application/yang": {
source: "iana",
extensions: ["yang"]
},
"application/yang-data+cbor": {
source: "iana"
},
"application/yang-data+json": {
source: "iana",
compressible: true
},
"application/yang-data+xml": {
source: "iana",
compressible: true
},
"application/yang-patch+json": {
source: "iana",
compressible: true
},
"application/yang-patch+xml": {
source: "iana",
compressible: true
},
"application/yang-sid+json": {
source: "iana",
compressible: true
},
"application/yin+xml": {
source: "iana",
compressible: true,
extensions: ["yin"]
},
"application/zip": {
source: "iana",
compressible: false,
extensions: ["zip"]
},
"application/zip+dotlottie": {
extensions: ["lottie"]
},
"application/zlib": {
source: "iana"
},
"application/zstd": {
source: "iana"
},
"audio/1d-interleaved-parityfec": {
source: "iana"
},
"audio/32kadpcm": {
source: "iana"
},
"audio/3gpp": {
source: "iana",
compressible: false,
extensions: ["3gpp"]
},
"audio/3gpp2": {
source: "iana"
},
"audio/aac": {
source: "iana",
extensions: ["adts", "aac"]
},
"audio/ac3": {
source: "iana"
},
"audio/adpcm": {
source: "apache",
extensions: ["adp"]
},
"audio/amr": {
source: "iana",
extensions: ["amr"]
},
"audio/amr-wb": {
source: "iana"
},
"audio/amr-wb+": {
source: "iana"
},
"audio/aptx": {
source: "iana"
},
"audio/asc": {
source: "iana"
},
"audio/atrac-advanced-lossless": {
source: "iana"
},
"audio/atrac-x": {
source: "iana"
},
"audio/atrac3": {
source: "iana"
},
"audio/basic": {
source: "iana",
compressible: false,
extensions: ["au", "snd"]
},
"audio/bv16": {
source: "iana"
},
"audio/bv32": {
source: "iana"
},
"audio/clearmode": {
source: "iana"
},
"audio/cn": {
source: "iana"
},
"audio/dat12": {
source: "iana"
},
"audio/dls": {
source: "iana"
},
"audio/dsr-es201108": {
source: "iana"
},
"audio/dsr-es202050": {
source: "iana"
},
"audio/dsr-es202211": {
source: "iana"
},
"audio/dsr-es202212": {
source: "iana"
},
"audio/dv": {
source: "iana"
},
"audio/dvi4": {
source: "iana"
},
"audio/eac3": {
source: "iana"
},
"audio/encaprtp": {
source: "iana"
},
"audio/evrc": {
source: "iana"
},
"audio/evrc-qcp": {
source: "iana"
},
"audio/evrc0": {
source: "iana"
},
"audio/evrc1": {
source: "iana"
},
"audio/evrcb": {
source: "iana"
},
"audio/evrcb0": {
source: "iana"
},
"audio/evrcb1": {
source: "iana"
},
"audio/evrcnw": {
source: "iana"
},
"audio/evrcnw0": {
source: "iana"
},
"audio/evrcnw1": {
source: "iana"
},
"audio/evrcwb": {
source: "iana"
},
"audio/evrcwb0": {
source: "iana"
},
"audio/evrcwb1": {
source: "iana"
},
"audio/evs": {
source: "iana"
},
"audio/flac": {
source: "iana"
},
"audio/flexfec": {
source: "iana"
},
"audio/fwdred": {
source: "iana"
},
"audio/g711-0": {
source: "iana"
},
"audio/g719": {
source: "iana"
},
"audio/g722": {
source: "iana"
},
"audio/g7221": {
source: "iana"
},
"audio/g723": {
source: "iana"
},
"audio/g726-16": {
source: "iana"
},
"audio/g726-24": {
source: "iana"
},
"audio/g726-32": {
source: "iana"
},
"audio/g726-40": {
source: "iana"
},
"audio/g728": {
source: "iana"
},
"audio/g729": {
source: "iana"
},
"audio/g7291": {
source: "iana"
},
"audio/g729d": {
source: "iana"
},
"audio/g729e": {
source: "iana"
},
"audio/gsm": {
source: "iana"
},
"audio/gsm-efr": {
source: "iana"
},
"audio/gsm-hr-08": {
source: "iana"
},
"audio/ilbc": {
source: "iana"
},
"audio/ip-mr_v2.5": {
source: "iana"
},
"audio/isac": {
source: "apache"
},
"audio/l16": {
source: "iana"
},
"audio/l20": {
source: "iana"
},
"audio/l24": {
source: "iana",
compressible: false
},
"audio/l8": {
source: "iana"
},
"audio/lpc": {
source: "iana"
},
"audio/matroska": {
source: "iana"
},
"audio/melp": {
source: "iana"
},
"audio/melp1200": {
source: "iana"
},
"audio/melp2400": {
source: "iana"
},
"audio/melp600": {
source: "iana"
},
"audio/mhas": {
source: "iana"
},
"audio/midi": {
source: "apache",
extensions: ["mid", "midi", "kar", "rmi"]
},
"audio/midi-clip": {
source: "iana"
},
"audio/mobile-xmf": {
source: "iana",
extensions: ["mxmf"]
},
"audio/mp3": {
compressible: false,
extensions: ["mp3"]
},
"audio/mp4": {
source: "iana",
compressible: false,
extensions: ["m4a", "mp4a", "m4b"]
},
"audio/mp4a-latm": {
source: "iana"
},
"audio/mpa": {
source: "iana"
},
"audio/mpa-robust": {
source: "iana"
},
"audio/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"]
},
"audio/mpeg4-generic": {
source: "iana"
},
"audio/musepack": {
source: "apache"
},
"audio/ogg": {
source: "iana",
compressible: false,
extensions: ["oga", "ogg", "spx", "opus"]
},
"audio/opus": {
source: "iana"
},
"audio/parityfec": {
source: "iana"
},
"audio/pcma": {
source: "iana"
},
"audio/pcma-wb": {
source: "iana"
},
"audio/pcmu": {
source: "iana"
},
"audio/pcmu-wb": {
source: "iana"
},
"audio/prs.sid": {
source: "iana"
},
"audio/qcelp": {
source: "iana"
},
"audio/raptorfec": {
source: "iana"
},
"audio/red": {
source: "iana"
},
"audio/rtp-enc-aescm128": {
source: "iana"
},
"audio/rtp-midi": {
source: "iana"
},
"audio/rtploopback": {
source: "iana"
},
"audio/rtx": {
source: "iana"
},
"audio/s3m": {
source: "apache",
extensions: ["s3m"]
},
"audio/scip": {
source: "iana"
},
"audio/silk": {
source: "apache",
extensions: ["sil"]
},
"audio/smv": {
source: "iana"
},
"audio/smv-qcp": {
source: "iana"
},
"audio/smv0": {
source: "iana"
},
"audio/sofa": {
source: "iana"
},
"audio/sp-midi": {
source: "iana"
},
"audio/speex": {
source: "iana"
},
"audio/t140c": {
source: "iana"
},
"audio/t38": {
source: "iana"
},
"audio/telephone-event": {
source: "iana"
},
"audio/tetra_acelp": {
source: "iana"
},
"audio/tetra_acelp_bb": {
source: "iana"
},
"audio/tone": {
source: "iana"
},
"audio/tsvcis": {
source: "iana"
},
"audio/uemclip": {
source: "iana"
},
"audio/ulpfec": {
source: "iana"
},
"audio/usac": {
source: "iana"
},
"audio/vdvi": {
source: "iana"
},
"audio/vmr-wb": {
source: "iana"
},
"audio/vnd.3gpp.iufp": {
source: "iana"
},
"audio/vnd.4sb": {
source: "iana"
},
"audio/vnd.audiokoz": {
source: "iana"
},
"audio/vnd.celp": {
source: "iana"
},
"audio/vnd.cisco.nse": {
source: "iana"
},
"audio/vnd.cmles.radio-events": {
source: "iana"
},
"audio/vnd.cns.anp1": {
source: "iana"
},
"audio/vnd.cns.inf1": {
source: "iana"
},
"audio/vnd.dece.audio": {
source: "iana",
extensions: ["uva", "uvva"]
},
"audio/vnd.digital-winds": {
source: "iana",
extensions: ["eol"]
},
"audio/vnd.dlna.adts": {
source: "iana"
},
"audio/vnd.dolby.heaac.1": {
source: "iana"
},
"audio/vnd.dolby.heaac.2": {
source: "iana"
},
"audio/vnd.dolby.mlp": {
source: "iana"
},
"audio/vnd.dolby.mps": {
source: "iana"
},
"audio/vnd.dolby.pl2": {
source: "iana"
},
"audio/vnd.dolby.pl2x": {
source: "iana"
},
"audio/vnd.dolby.pl2z": {
source: "iana"
},
"audio/vnd.dolby.pulse.1": {
source: "iana"
},
"audio/vnd.dra": {
source: "iana",
extensions: ["dra"]
},
"audio/vnd.dts": {
source: "iana",
extensions: ["dts"]
},
"audio/vnd.dts.hd": {
source: "iana",
extensions: ["dtshd"]
},
"audio/vnd.dts.uhd": {
source: "iana"
},
"audio/vnd.dvb.file": {
source: "iana"
},
"audio/vnd.everad.plj": {
source: "iana"
},
"audio/vnd.hns.audio": {
source: "iana"
},
"audio/vnd.lucent.voice": {
source: "iana",
extensions: ["lvp"]
},
"audio/vnd.ms-playready.media.pya": {
source: "iana",
extensions: ["pya"]
},
"audio/vnd.nokia.mobile-xmf": {
source: "iana"
},
"audio/vnd.nortel.vbk": {
source: "iana"
},
"audio/vnd.nuera.ecelp4800": {
source: "iana",
extensions: ["ecelp4800"]
},
"audio/vnd.nuera.ecelp7470": {
source: "iana",
extensions: ["ecelp7470"]
},
"audio/vnd.nuera.ecelp9600": {
source: "iana",
extensions: ["ecelp9600"]
},
"audio/vnd.octel.sbc": {
source: "iana"
},
"audio/vnd.presonus.multitrack": {
source: "iana"
},
"audio/vnd.qcelp": {
source: "apache"
},
"audio/vnd.rhetorex.32kadpcm": {
source: "iana"
},
"audio/vnd.rip": {
source: "iana",
extensions: ["rip"]
},
"audio/vnd.rn-realaudio": {
compressible: false
},
"audio/vnd.sealedmedia.softseal.mpeg": {
source: "iana"
},
"audio/vnd.vmx.cvsd": {
source: "iana"
},
"audio/vnd.wave": {
compressible: false
},
"audio/vorbis": {
source: "iana",
compressible: false
},
"audio/vorbis-config": {
source: "iana"
},
"audio/wav": {
compressible: false,
extensions: ["wav"]
},
"audio/wave": {
compressible: false,
extensions: ["wav"]
},
"audio/webm": {
source: "apache",
compressible: false,
extensions: ["weba"]
},
"audio/x-aac": {
source: "apache",
compressible: false,
extensions: ["aac"]
},
"audio/x-aiff": {
source: "apache",
extensions: ["aif", "aiff", "aifc"]
},
"audio/x-caf": {
source: "apache",
compressible: false,
extensions: ["caf"]
},
"audio/x-flac": {
source: "apache",
extensions: ["flac"]
},
"audio/x-m4a": {
source: "nginx",
extensions: ["m4a"]
},
"audio/x-matroska": {
source: "apache",
extensions: ["mka"]
},
"audio/x-mpegurl": {
source: "apache",
extensions: ["m3u"]
},
"audio/x-ms-wax": {
source: "apache",
extensions: ["wax"]
},
"audio/x-ms-wma": {
source: "apache",
extensions: ["wma"]
},
"audio/x-pn-realaudio": {
source: "apache",
extensions: ["ram", "ra"]
},
"audio/x-pn-realaudio-plugin": {
source: "apache",
extensions: ["rmp"]
},
"audio/x-realaudio": {
source: "nginx",
extensions: ["ra"]
},
"audio/x-tta": {
source: "apache"
},
"audio/x-wav": {
source: "apache",
extensions: ["wav"]
},
"audio/xm": {
source: "apache",
extensions: ["xm"]
},
"chemical/x-cdx": {
source: "apache",
extensions: ["cdx"]
},
"chemical/x-cif": {
source: "apache",
extensions: ["cif"]
},
"chemical/x-cmdf": {
source: "apache",
extensions: ["cmdf"]
},
"chemical/x-cml": {
source: "apache",
extensions: ["cml"]
},
"chemical/x-csml": {
source: "apache",
extensions: ["csml"]
},
"chemical/x-pdb": {
source: "apache"
},
"chemical/x-xyz": {
source: "apache",
extensions: ["xyz"]
},
"font/collection": {
source: "iana",
extensions: ["ttc"]
},
"font/otf": {
source: "iana",
compressible: true,
extensions: ["otf"]
},
"font/sfnt": {
source: "iana"
},
"font/ttf": {
source: "iana",
compressible: true,
extensions: ["ttf"]
},
"font/woff": {
source: "iana",
extensions: ["woff"]
},
"font/woff2": {
source: "iana",
extensions: ["woff2"]
},
"image/aces": {
source: "iana",
extensions: ["exr"]
},
"image/apng": {
source: "iana",
compressible: false,
extensions: ["apng"]
},
"image/avci": {
source: "iana",
extensions: ["avci"]
},
"image/avcs": {
source: "iana",
extensions: ["avcs"]
},
"image/avif": {
source: "iana",
compressible: false,
extensions: ["avif"]
},
"image/bmp": {
source: "iana",
compressible: true,
extensions: ["bmp", "dib"]
},
"image/cgm": {
source: "iana",
extensions: ["cgm"]
},
"image/dicom-rle": {
source: "iana",
extensions: ["drle"]
},
"image/dpx": {
source: "iana",
extensions: ["dpx"]
},
"image/emf": {
source: "iana",
extensions: ["emf"]
},
"image/fits": {
source: "iana",
extensions: ["fits"]
},
"image/g3fax": {
source: "iana",
extensions: ["g3"]
},
"image/gif": {
source: "iana",
compressible: false,
extensions: ["gif"]
},
"image/heic": {
source: "iana",
extensions: ["heic"]
},
"image/heic-sequence": {
source: "iana",
extensions: ["heics"]
},
"image/heif": {
source: "iana",
extensions: ["heif"]
},
"image/heif-sequence": {
source: "iana",
extensions: ["heifs"]
},
"image/hej2k": {
source: "iana",
extensions: ["hej2"]
},
"image/ief": {
source: "iana",
extensions: ["ief"]
},
"image/j2c": {
source: "iana"
},
"image/jaii": {
source: "iana",
extensions: ["jaii"]
},
"image/jais": {
source: "iana",
extensions: ["jais"]
},
"image/jls": {
source: "iana",
extensions: ["jls"]
},
"image/jp2": {
source: "iana",
compressible: false,
extensions: ["jp2", "jpg2"]
},
"image/jpeg": {
source: "iana",
compressible: false,
extensions: ["jpg", "jpeg", "jpe"]
},
"image/jph": {
source: "iana",
extensions: ["jph"]
},
"image/jphc": {
source: "iana",
extensions: ["jhc"]
},
"image/jpm": {
source: "iana",
compressible: false,
extensions: ["jpm", "jpgm"]
},
"image/jpx": {
source: "iana",
compressible: false,
extensions: ["jpx", "jpf"]
},
"image/jxl": {
source: "iana",
extensions: ["jxl"]
},
"image/jxr": {
source: "iana",
extensions: ["jxr"]
},
"image/jxra": {
source: "iana",
extensions: ["jxra"]
},
"image/jxrs": {
source: "iana",
extensions: ["jxrs"]
},
"image/jxs": {
source: "iana",
extensions: ["jxs"]
},
"image/jxsc": {
source: "iana",
extensions: ["jxsc"]
},
"image/jxsi": {
source: "iana",
extensions: ["jxsi"]
},
"image/jxss": {
source: "iana",
extensions: ["jxss"]
},
"image/ktx": {
source: "iana",
extensions: ["ktx"]
},
"image/ktx2": {
source: "iana",
extensions: ["ktx2"]
},
"image/naplps": {
source: "iana"
},
"image/pjpeg": {
compressible: false,
extensions: ["jfif"]
},
"image/png": {
source: "iana",
compressible: false,
extensions: ["png"]
},
"image/prs.btif": {
source: "iana",
extensions: ["btif", "btf"]
},
"image/prs.pti": {
source: "iana",
extensions: ["pti"]
},
"image/pwg-raster": {
source: "iana"
},
"image/sgi": {
source: "apache",
extensions: ["sgi"]
},
"image/svg+xml": {
source: "iana",
compressible: true,
extensions: ["svg", "svgz"]
},
"image/t38": {
source: "iana",
extensions: ["t38"]
},
"image/tiff": {
source: "iana",
compressible: false,
extensions: ["tif", "tiff"]
},
"image/tiff-fx": {
source: "iana",
extensions: ["tfx"]
},
"image/vnd.adobe.photoshop": {
source: "iana",
compressible: true,
extensions: ["psd"]
},
"image/vnd.airzip.accelerator.azv": {
source: "iana",
extensions: ["azv"]
},
"image/vnd.clip": {
source: "iana"
},
"image/vnd.cns.inf2": {
source: "iana"
},
"image/vnd.dece.graphic": {
source: "iana",
extensions: ["uvi", "uvvi", "uvg", "uvvg"]
},
"image/vnd.djvu": {
source: "iana",
extensions: ["djvu", "djv"]
},
"image/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"image/vnd.dwg": {
source: "iana",
extensions: ["dwg"]
},
"image/vnd.dxf": {
source: "iana",
extensions: ["dxf"]
},
"image/vnd.fastbidsheet": {
source: "iana",
extensions: ["fbs"]
},
"image/vnd.fpx": {
source: "iana",
extensions: ["fpx"]
},
"image/vnd.fst": {
source: "iana",
extensions: ["fst"]
},
"image/vnd.fujixerox.edmics-mmr": {
source: "iana",
extensions: ["mmr"]
},
"image/vnd.fujixerox.edmics-rlc": {
source: "iana",
extensions: ["rlc"]
},
"image/vnd.globalgraphics.pgb": {
source: "iana"
},
"image/vnd.microsoft.icon": {
source: "iana",
compressible: true,
extensions: ["ico"]
},
"image/vnd.mix": {
source: "iana"
},
"image/vnd.mozilla.apng": {
source: "iana"
},
"image/vnd.ms-dds": {
compressible: true,
extensions: ["dds"]
},
"image/vnd.ms-modi": {
source: "iana",
extensions: ["mdi"]
},
"image/vnd.ms-photo": {
source: "apache",
extensions: ["wdp"]
},
"image/vnd.net-fpx": {
source: "iana",
extensions: ["npx"]
},
"image/vnd.pco.b16": {
source: "iana",
extensions: ["b16"]
},
"image/vnd.radiance": {
source: "iana"
},
"image/vnd.sealed.png": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.gif": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.jpg": {
source: "iana"
},
"image/vnd.svf": {
source: "iana"
},
"image/vnd.tencent.tap": {
source: "iana",
extensions: ["tap"]
},
"image/vnd.valve.source.texture": {
source: "iana",
extensions: ["vtf"]
},
"image/vnd.wap.wbmp": {
source: "iana",
extensions: ["wbmp"]
},
"image/vnd.xiff": {
source: "iana",
extensions: ["xif"]
},
"image/vnd.zbrush.pcx": {
source: "iana",
extensions: ["pcx"]
},
"image/webp": {
source: "iana",
extensions: ["webp"]
},
"image/wmf": {
source: "iana",
extensions: ["wmf"]
},
"image/x-3ds": {
source: "apache",
extensions: ["3ds"]
},
"image/x-adobe-dng": {
extensions: ["dng"]
},
"image/x-cmu-raster": {
source: "apache",
extensions: ["ras"]
},
"image/x-cmx": {
source: "apache",
extensions: ["cmx"]
},
"image/x-emf": {
source: "iana"
},
"image/x-freehand": {
source: "apache",
extensions: ["fh", "fhc", "fh4", "fh5", "fh7"]
},
"image/x-icon": {
source: "apache",
compressible: true,
extensions: ["ico"]
},
"image/x-jng": {
source: "nginx",
extensions: ["jng"]
},
"image/x-mrsid-image": {
source: "apache",
extensions: ["sid"]
},
"image/x-ms-bmp": {
source: "nginx",
compressible: true,
extensions: ["bmp"]
},
"image/x-pcx": {
source: "apache",
extensions: ["pcx"]
},
"image/x-pict": {
source: "apache",
extensions: ["pic", "pct"]
},
"image/x-portable-anymap": {
source: "apache",
extensions: ["pnm"]
},
"image/x-portable-bitmap": {
source: "apache",
extensions: ["pbm"]
},
"image/x-portable-graymap": {
source: "apache",
extensions: ["pgm"]
},
"image/x-portable-pixmap": {
source: "apache",
extensions: ["ppm"]
},
"image/x-rgb": {
source: "apache",
extensions: ["rgb"]
},
"image/x-tga": {
source: "apache",
extensions: ["tga"]
},
"image/x-wmf": {
source: "iana"
},
"image/x-xbitmap": {
source: "apache",
extensions: ["xbm"]
},
"image/x-xcf": {
compressible: false
},
"image/x-xpixmap": {
source: "apache",
extensions: ["xpm"]
},
"image/x-xwindowdump": {
source: "apache",
extensions: ["xwd"]
},
"message/bhttp": {
source: "iana"
},
"message/cpim": {
source: "iana"
},
"message/delivery-status": {
source: "iana"
},
"message/disposition-notification": {
source: "iana",
extensions: [
"disposition-notification"
]
},
"message/external-body": {
source: "iana"
},
"message/feedback-report": {
source: "iana"
},
"message/global": {
source: "iana",
extensions: ["u8msg"]
},
"message/global-delivery-status": {
source: "iana",
extensions: ["u8dsn"]
},
"message/global-disposition-notification": {
source: "iana",
extensions: ["u8mdn"]
},
"message/global-headers": {
source: "iana",
extensions: ["u8hdr"]
},
"message/http": {
source: "iana",
compressible: false
},
"message/imdn+xml": {
source: "iana",
compressible: true
},
"message/mls": {
source: "iana"
},
"message/news": {
source: "apache"
},
"message/ohttp-req": {
source: "iana"
},
"message/ohttp-res": {
source: "iana"
},
"message/partial": {
source: "iana",
compressible: false
},
"message/rfc822": {
source: "iana",
compressible: true,
extensions: ["eml", "mime", "mht", "mhtml"]
},
"message/s-http": {
source: "apache"
},
"message/sip": {
source: "iana"
},
"message/sipfrag": {
source: "iana"
},
"message/tracking-status": {
source: "iana"
},
"message/vnd.si.simp": {
source: "apache"
},
"message/vnd.wfa.wsc": {
source: "iana",
extensions: ["wsc"]
},
"model/3mf": {
source: "iana",
extensions: ["3mf"]
},
"model/e57": {
source: "iana"
},
"model/gltf+json": {
source: "iana",
compressible: true,
extensions: ["gltf"]
},
"model/gltf-binary": {
source: "iana",
compressible: true,
extensions: ["glb"]
},
"model/iges": {
source: "iana",
compressible: false,
extensions: ["igs", "iges"]
},
"model/jt": {
source: "iana",
extensions: ["jt"]
},
"model/mesh": {
source: "iana",
compressible: false,
extensions: ["msh", "mesh", "silo"]
},
"model/mtl": {
source: "iana",
extensions: ["mtl"]
},
"model/obj": {
source: "iana",
extensions: ["obj"]
},
"model/prc": {
source: "iana",
extensions: ["prc"]
},
"model/step": {
source: "iana",
extensions: ["step", "stp", "stpnc", "p21", "210"]
},
"model/step+xml": {
source: "iana",
compressible: true,
extensions: ["stpx"]
},
"model/step+zip": {
source: "iana",
compressible: false,
extensions: ["stpz"]
},
"model/step-xml+zip": {
source: "iana",
compressible: false,
extensions: ["stpxz"]
},
"model/stl": {
source: "iana",
extensions: ["stl"]
},
"model/u3d": {
source: "iana",
extensions: ["u3d"]
},
"model/vnd.bary": {
source: "iana",
extensions: ["bary"]
},
"model/vnd.cld": {
source: "iana",
extensions: ["cld"]
},
"model/vnd.collada+xml": {
source: "iana",
compressible: true,
extensions: ["dae"]
},
"model/vnd.dwf": {
source: "iana",
extensions: ["dwf"]
},
"model/vnd.flatland.3dml": {
source: "iana"
},
"model/vnd.gdl": {
source: "iana",
extensions: ["gdl"]
},
"model/vnd.gs-gdl": {
source: "apache"
},
"model/vnd.gs.gdl": {
source: "iana"
},
"model/vnd.gtw": {
source: "iana",
extensions: ["gtw"]
},
"model/vnd.moml+xml": {
source: "iana",
compressible: true
},
"model/vnd.mts": {
source: "iana",
extensions: ["mts"]
},
"model/vnd.opengex": {
source: "iana",
extensions: ["ogex"]
},
"model/vnd.parasolid.transmit.binary": {
source: "iana",
extensions: ["x_b"]
},
"model/vnd.parasolid.transmit.text": {
source: "iana",
extensions: ["x_t"]
},
"model/vnd.pytha.pyox": {
source: "iana",
extensions: ["pyo", "pyox"]
},
"model/vnd.rosette.annotated-data-model": {
source: "iana"
},
"model/vnd.sap.vds": {
source: "iana",
extensions: ["vds"]
},
"model/vnd.usda": {
source: "iana",
extensions: ["usda"]
},
"model/vnd.usdz+zip": {
source: "iana",
compressible: false,
extensions: ["usdz"]
},
"model/vnd.valve.source.compiled-map": {
source: "iana",
extensions: ["bsp"]
},
"model/vnd.vtu": {
source: "iana",
extensions: ["vtu"]
},
"model/vrml": {
source: "iana",
compressible: false,
extensions: ["wrl", "vrml"]
},
"model/x3d+binary": {
source: "apache",
compressible: false,
extensions: ["x3db", "x3dbz"]
},
"model/x3d+fastinfoset": {
source: "iana",
extensions: ["x3db"]
},
"model/x3d+vrml": {
source: "apache",
compressible: false,
extensions: ["x3dv", "x3dvz"]
},
"model/x3d+xml": {
source: "iana",
compressible: true,
extensions: ["x3d", "x3dz"]
},
"model/x3d-vrml": {
source: "iana",
extensions: ["x3dv"]
},
"multipart/alternative": {
source: "iana",
compressible: false
},
"multipart/appledouble": {
source: "iana"
},
"multipart/byteranges": {
source: "iana"
},
"multipart/digest": {
source: "iana"
},
"multipart/encrypted": {
source: "iana",
compressible: false
},
"multipart/form-data": {
source: "iana",
compressible: false
},
"multipart/header-set": {
source: "iana"
},
"multipart/mixed": {
source: "iana"
},
"multipart/multilingual": {
source: "iana"
},
"multipart/parallel": {
source: "iana"
},
"multipart/related": {
source: "iana",
compressible: false
},
"multipart/report": {
source: "iana"
},
"multipart/signed": {
source: "iana",
compressible: false
},
"multipart/vnd.bint.med-plus": {
source: "iana"
},
"multipart/voice-message": {
source: "iana"
},
"multipart/x-mixed-replace": {
source: "iana"
},
"text/1d-interleaved-parityfec": {
source: "iana"
},
"text/cache-manifest": {
source: "iana",
compressible: true,
extensions: ["appcache", "manifest"]
},
"text/calendar": {
source: "iana",
extensions: ["ics", "ifb"]
},
"text/calender": {
compressible: true
},
"text/cmd": {
compressible: true
},
"text/coffeescript": {
extensions: ["coffee", "litcoffee"]
},
"text/cql": {
source: "iana"
},
"text/cql-expression": {
source: "iana"
},
"text/cql-identifier": {
source: "iana"
},
"text/css": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["css"]
},
"text/csv": {
source: "iana",
compressible: true,
extensions: ["csv"]
},
"text/csv-schema": {
source: "iana"
},
"text/directory": {
source: "iana"
},
"text/dns": {
source: "iana"
},
"text/ecmascript": {
source: "apache"
},
"text/encaprtp": {
source: "iana"
},
"text/enriched": {
source: "iana"
},
"text/fhirpath": {
source: "iana"
},
"text/flexfec": {
source: "iana"
},
"text/fwdred": {
source: "iana"
},
"text/gff3": {
source: "iana"
},
"text/grammar-ref-list": {
source: "iana"
},
"text/hl7v2": {
source: "iana"
},
"text/html": {
source: "iana",
compressible: true,
extensions: ["html", "htm", "shtml"]
},
"text/jade": {
extensions: ["jade"]
},
"text/javascript": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["js", "mjs"]
},
"text/jcr-cnd": {
source: "iana"
},
"text/jsx": {
compressible: true,
extensions: ["jsx"]
},
"text/less": {
compressible: true,
extensions: ["less"]
},
"text/markdown": {
source: "iana",
compressible: true,
extensions: ["md", "markdown"]
},
"text/mathml": {
source: "nginx",
extensions: ["mml"]
},
"text/mdx": {
compressible: true,
extensions: ["mdx"]
},
"text/mizar": {
source: "iana"
},
"text/n3": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["n3"]
},
"text/parameters": {
source: "iana",
charset: "UTF-8"
},
"text/parityfec": {
source: "iana"
},
"text/plain": {
source: "iana",
compressible: true,
extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"]
},
"text/provenance-notation": {
source: "iana",
charset: "UTF-8"
},
"text/prs.fallenstein.rst": {
source: "iana"
},
"text/prs.lines.tag": {
source: "iana",
extensions: ["dsc"]
},
"text/prs.prop.logic": {
source: "iana"
},
"text/prs.texi": {
source: "iana"
},
"text/raptorfec": {
source: "iana"
},
"text/red": {
source: "iana"
},
"text/rfc822-headers": {
source: "iana"
},
"text/richtext": {
source: "iana",
compressible: true,
extensions: ["rtx"]
},
"text/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"text/rtp-enc-aescm128": {
source: "iana"
},
"text/rtploopback": {
source: "iana"
},
"text/rtx": {
source: "iana"
},
"text/sgml": {
source: "iana",
extensions: ["sgml", "sgm"]
},
"text/shaclc": {
source: "iana"
},
"text/shex": {
source: "iana",
extensions: ["shex"]
},
"text/slim": {
extensions: ["slim", "slm"]
},
"text/spdx": {
source: "iana",
extensions: ["spdx"]
},
"text/strings": {
source: "iana"
},
"text/stylus": {
extensions: ["stylus", "styl"]
},
"text/t140": {
source: "iana"
},
"text/tab-separated-values": {
source: "iana",
compressible: true,
extensions: ["tsv"]
},
"text/troff": {
source: "iana",
extensions: ["t", "tr", "roff", "man", "me", "ms"]
},
"text/turtle": {
source: "iana",
charset: "UTF-8",
extensions: ["ttl"]
},
"text/ulpfec": {
source: "iana"
},
"text/uri-list": {
source: "iana",
compressible: true,
extensions: ["uri", "uris", "urls"]
},
"text/vcard": {
source: "iana",
compressible: true,
extensions: ["vcard"]
},
"text/vnd.a": {
source: "iana"
},
"text/vnd.abc": {
source: "iana"
},
"text/vnd.ascii-art": {
source: "iana"
},
"text/vnd.curl": {
source: "iana",
extensions: ["curl"]
},
"text/vnd.curl.dcurl": {
source: "apache",
extensions: ["dcurl"]
},
"text/vnd.curl.mcurl": {
source: "apache",
extensions: ["mcurl"]
},
"text/vnd.curl.scurl": {
source: "apache",
extensions: ["scurl"]
},
"text/vnd.debian.copyright": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.dmclientscript": {
source: "iana"
},
"text/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"text/vnd.esmertec.theme-descriptor": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.exchangeable": {
source: "iana"
},
"text/vnd.familysearch.gedcom": {
source: "iana",
extensions: ["ged"]
},
"text/vnd.ficlab.flt": {
source: "iana"
},
"text/vnd.fly": {
source: "iana",
extensions: ["fly"]
},
"text/vnd.fmi.flexstor": {
source: "iana",
extensions: ["flx"]
},
"text/vnd.gml": {
source: "iana"
},
"text/vnd.graphviz": {
source: "iana",
extensions: ["gv"]
},
"text/vnd.hans": {
source: "iana"
},
"text/vnd.hgl": {
source: "iana"
},
"text/vnd.in3d.3dml": {
source: "iana",
extensions: ["3dml"]
},
"text/vnd.in3d.spot": {
source: "iana",
extensions: ["spot"]
},
"text/vnd.iptc.newsml": {
source: "iana"
},
"text/vnd.iptc.nitf": {
source: "iana"
},
"text/vnd.latex-z": {
source: "iana"
},
"text/vnd.motorola.reflex": {
source: "iana"
},
"text/vnd.ms-mediapackage": {
source: "iana"
},
"text/vnd.net2phone.commcenter.command": {
source: "iana"
},
"text/vnd.radisys.msml-basic-layout": {
source: "iana"
},
"text/vnd.senx.warpscript": {
source: "iana"
},
"text/vnd.si.uricatalogue": {
source: "apache"
},
"text/vnd.sosi": {
source: "iana"
},
"text/vnd.sun.j2me.app-descriptor": {
source: "iana",
charset: "UTF-8",
extensions: ["jad"]
},
"text/vnd.trolltech.linguist": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.vcf": {
source: "iana"
},
"text/vnd.wap.si": {
source: "iana"
},
"text/vnd.wap.sl": {
source: "iana"
},
"text/vnd.wap.wml": {
source: "iana",
extensions: ["wml"]
},
"text/vnd.wap.wmlscript": {
source: "iana",
extensions: ["wmls"]
},
"text/vnd.zoo.kcl": {
source: "iana"
},
"text/vtt": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["vtt"]
},
"text/wgsl": {
source: "iana",
extensions: ["wgsl"]
},
"text/x-asm": {
source: "apache",
extensions: ["s", "asm"]
},
"text/x-c": {
source: "apache",
extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"]
},
"text/x-component": {
source: "nginx",
extensions: ["htc"]
},
"text/x-fortran": {
source: "apache",
extensions: ["f", "for", "f77", "f90"]
},
"text/x-gwt-rpc": {
compressible: true
},
"text/x-handlebars-template": {
extensions: ["hbs"]
},
"text/x-java-source": {
source: "apache",
extensions: ["java"]
},
"text/x-jquery-tmpl": {
compressible: true
},
"text/x-lua": {
extensions: ["lua"]
},
"text/x-markdown": {
compressible: true,
extensions: ["mkd"]
},
"text/x-nfo": {
source: "apache",
extensions: ["nfo"]
},
"text/x-opml": {
source: "apache",
extensions: ["opml"]
},
"text/x-org": {
compressible: true,
extensions: ["org"]
},
"text/x-pascal": {
source: "apache",
extensions: ["p", "pas"]
},
"text/x-processing": {
compressible: true,
extensions: ["pde"]
},
"text/x-sass": {
extensions: ["sass"]
},
"text/x-scss": {
extensions: ["scss"]
},
"text/x-setext": {
source: "apache",
extensions: ["etx"]
},
"text/x-sfv": {
source: "apache",
extensions: ["sfv"]
},
"text/x-suse-ymp": {
compressible: true,
extensions: ["ymp"]
},
"text/x-uuencode": {
source: "apache",
extensions: ["uu"]
},
"text/x-vcalendar": {
source: "apache",
extensions: ["vcs"]
},
"text/x-vcard": {
source: "apache",
extensions: ["vcf"]
},
"text/xml": {
source: "iana",
compressible: true,
extensions: ["xml"]
},
"text/xml-external-parsed-entity": {
source: "iana"
},
"text/yaml": {
compressible: true,
extensions: ["yaml", "yml"]
},
"video/1d-interleaved-parityfec": {
source: "iana"
},
"video/3gpp": {
source: "iana",
extensions: ["3gp", "3gpp"]
},
"video/3gpp-tt": {
source: "iana"
},
"video/3gpp2": {
source: "iana",
extensions: ["3g2"]
},
"video/av1": {
source: "iana"
},
"video/bmpeg": {
source: "iana"
},
"video/bt656": {
source: "iana"
},
"video/celb": {
source: "iana"
},
"video/dv": {
source: "iana"
},
"video/encaprtp": {
source: "iana"
},
"video/evc": {
source: "iana"
},
"video/ffv1": {
source: "iana"
},
"video/flexfec": {
source: "iana"
},
"video/h261": {
source: "iana",
extensions: ["h261"]
},
"video/h263": {
source: "iana",
extensions: ["h263"]
},
"video/h263-1998": {
source: "iana"
},
"video/h263-2000": {
source: "iana"
},
"video/h264": {
source: "iana",
extensions: ["h264"]
},
"video/h264-rcdo": {
source: "iana"
},
"video/h264-svc": {
source: "iana"
},
"video/h265": {
source: "iana"
},
"video/h266": {
source: "iana"
},
"video/iso.segment": {
source: "iana",
extensions: ["m4s"]
},
"video/jpeg": {
source: "iana",
extensions: ["jpgv"]
},
"video/jpeg2000": {
source: "iana"
},
"video/jpm": {
source: "apache",
extensions: ["jpm", "jpgm"]
},
"video/jxsv": {
source: "iana"
},
"video/lottie+json": {
source: "iana",
compressible: true
},
"video/matroska": {
source: "iana"
},
"video/matroska-3d": {
source: "iana"
},
"video/mj2": {
source: "iana",
extensions: ["mj2", "mjp2"]
},
"video/mp1s": {
source: "iana"
},
"video/mp2p": {
source: "iana"
},
"video/mp2t": {
source: "iana",
extensions: ["ts", "m2t", "m2ts", "mts"]
},
"video/mp4": {
source: "iana",
compressible: false,
extensions: ["mp4", "mp4v", "mpg4"]
},
"video/mp4v-es": {
source: "iana"
},
"video/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"]
},
"video/mpeg4-generic": {
source: "iana"
},
"video/mpv": {
source: "iana"
},
"video/nv": {
source: "iana"
},
"video/ogg": {
source: "iana",
compressible: false,
extensions: ["ogv"]
},
"video/parityfec": {
source: "iana"
},
"video/pointer": {
source: "iana"
},
"video/quicktime": {
source: "iana",
compressible: false,
extensions: ["qt", "mov"]
},
"video/raptorfec": {
source: "iana"
},
"video/raw": {
source: "iana"
},
"video/rtp-enc-aescm128": {
source: "iana"
},
"video/rtploopback": {
source: "iana"
},
"video/rtx": {
source: "iana"
},
"video/scip": {
source: "iana"
},
"video/smpte291": {
source: "iana"
},
"video/smpte292m": {
source: "iana"
},
"video/ulpfec": {
source: "iana"
},
"video/vc1": {
source: "iana"
},
"video/vc2": {
source: "iana"
},
"video/vnd.cctv": {
source: "iana"
},
"video/vnd.dece.hd": {
source: "iana",
extensions: ["uvh", "uvvh"]
},
"video/vnd.dece.mobile": {
source: "iana",
extensions: ["uvm", "uvvm"]
},
"video/vnd.dece.mp4": {
source: "iana"
},
"video/vnd.dece.pd": {
source: "iana",
extensions: ["uvp", "uvvp"]
},
"video/vnd.dece.sd": {
source: "iana",
extensions: ["uvs", "uvvs"]
},
"video/vnd.dece.video": {
source: "iana",
extensions: ["uvv", "uvvv"]
},
"video/vnd.directv.mpeg": {
source: "iana"
},
"video/vnd.directv.mpeg-tts": {
source: "iana"
},
"video/vnd.dlna.mpeg-tts": {
source: "iana"
},
"video/vnd.dvb.file": {
source: "iana",
extensions: ["dvb"]
},
"video/vnd.fvt": {
source: "iana",
extensions: ["fvt"]
},
"video/vnd.hns.video": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.ttsavc": {
source: "iana"
},
"video/vnd.iptvforum.ttsmpeg2": {
source: "iana"
},
"video/vnd.motorola.video": {
source: "iana"
},
"video/vnd.motorola.videop": {
source: "iana"
},
"video/vnd.mpegurl": {
source: "iana",
extensions: ["mxu", "m4u"]
},
"video/vnd.ms-playready.media.pyv": {
source: "iana",
extensions: ["pyv"]
},
"video/vnd.nokia.interleaved-multimedia": {
source: "iana"
},
"video/vnd.nokia.mp4vr": {
source: "iana"
},
"video/vnd.nokia.videovoip": {
source: "iana"
},
"video/vnd.objectvideo": {
source: "iana"
},
"video/vnd.planar": {
source: "iana"
},
"video/vnd.radgamettools.bink": {
source: "iana"
},
"video/vnd.radgamettools.smacker": {
source: "apache"
},
"video/vnd.sealed.mpeg1": {
source: "iana"
},
"video/vnd.sealed.mpeg4": {
source: "iana"
},
"video/vnd.sealed.swf": {
source: "iana"
},
"video/vnd.sealedmedia.softseal.mov": {
source: "iana"
},
"video/vnd.uvvu.mp4": {
source: "iana",
extensions: ["uvu", "uvvu"]
},
"video/vnd.vivo": {
source: "iana",
extensions: ["viv"]
},
"video/vnd.youtube.yt": {
source: "iana"
},
"video/vp8": {
source: "iana"
},
"video/vp9": {
source: "iana"
},
"video/webm": {
source: "apache",
compressible: false,
extensions: ["webm"]
},
"video/x-f4v": {
source: "apache",
extensions: ["f4v"]
},
"video/x-fli": {
source: "apache",
extensions: ["fli"]
},
"video/x-flv": {
source: "apache",
compressible: false,
extensions: ["flv"]
},
"video/x-m4v": {
source: "apache",
extensions: ["m4v"]
},
"video/x-matroska": {
source: "apache",
compressible: false,
extensions: ["mkv", "mk3d", "mks"]
},
"video/x-mng": {
source: "apache",
extensions: ["mng"]
},
"video/x-ms-asf": {
source: "apache",
extensions: ["asf", "asx"]
},
"video/x-ms-vob": {
source: "apache",
extensions: ["vob"]
},
"video/x-ms-wm": {
source: "apache",
extensions: ["wm"]
},
"video/x-ms-wmv": {
source: "apache",
compressible: false,
extensions: ["wmv"]
},
"video/x-ms-wmx": {
source: "apache",
extensions: ["wmx"]
},
"video/x-ms-wvx": {
source: "apache",
extensions: ["wvx"]
},
"video/x-msvideo": {
source: "apache",
extensions: ["avi"]
},
"video/x-sgi-movie": {
source: "apache",
extensions: ["movie"]
},
"video/x-smv": {
source: "apache",
extensions: ["smv"]
},
"x-conference/x-cooltalk": {
source: "apache",
extensions: ["ice"]
},
"x-shader/x-fragment": {
compressible: true
},
"x-shader/x-vertex": {
compressible: true
}
};
}
});
var require_mime_db3 = __commonJS2({
"node_modules/accepts/node_modules/mime-db/index.js"(exports2, module2) {
module2.exports = require_db3();
}
});
var require_mimeScore3 = __commonJS2({
"node_modules/accepts/node_modules/mime-types/mimeScore.js"(exports2, module2) {
var FACET_SCORES = {
"prs.": 100,
"x-": 200,
"x.": 300,
"vnd.": 400,
default: 900
};
var SOURCE_SCORES = {
nginx: 10,
apache: 20,
iana: 40,
default: 30
// definitions added by `jshttp/mime-db` project?
};
var TYPE_SCORES = {
// prefer application/xml over text/xml
// prefer application/rtf over text/rtf
application: 1,
// prefer font/woff over application/font-woff
font: 2,
default: 0
};
module2.exports = function mimeScore(mimeType, source = "default") {
if (mimeType === "application/octet-stream") {
return 0;
}
const [type, subtype] = mimeType.split("/");
const facet = subtype.replace(/(\.|x-).*/, "$1");
const facetScore = FACET_SCORES[facet] || FACET_SCORES.default;
const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default;
const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default;
const lengthScore = 1 - mimeType.length / 100;
return facetScore + sourceScore + typeScore + lengthScore;
};
}
});
var require_mime_types3 = __commonJS2({
"node_modules/accepts/node_modules/mime-types/index.js"(exports2) {
"use strict";
var db = require_mime_db3();
var extname = require("path").extname;
var mimeScore = require_mimeScore3();
var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
var TEXT_TYPE_REGEXP = /^text\//i;
exports2.charset = charset;
exports2.charsets = { lookup: charset };
exports2.contentType = contentType2;
exports2.extension = extension;
exports2.extensions = /* @__PURE__ */ Object.create(null);
exports2.lookup = lookup;
exports2.types = /* @__PURE__ */ Object.create(null);
exports2._extensionConflicts = [];
populateMaps(exports2.extensions, exports2.types);
function charset(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var mime = match && db[match[1].toLowerCase()];
if (mime && mime.charset) {
return mime.charset;
}
if (match && TEXT_TYPE_REGEXP.test(match[1])) {
return "UTF-8";
}
return false;
}
function contentType2(str) {
if (!str || typeof str !== "string") {
return false;
}
var mime = str.indexOf("/") === -1 ? exports2.lookup(str) : str;
if (!mime) {
return false;
}
if (mime.indexOf("charset") === -1) {
var charset2 = exports2.charset(mime);
if (charset2) mime += "; charset=" + charset2.toLowerCase();
}
return mime;
}
function extension(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var exts = match && exports2.extensions[match[1].toLowerCase()];
if (!exts || !exts.length) {
return false;
}
return exts[0];
}
function lookup(path) {
if (!path || typeof path !== "string") {
return false;
}
var extension2 = extname("x." + path).toLowerCase().slice(1);
if (!extension2) {
return false;
}
return exports2.types[extension2] || false;
}
function populateMaps(extensions, types) {
Object.keys(db).forEach(function forEachMimeType(type) {
var mime = db[type];
var exts = mime.extensions;
if (!exts || !exts.length) {
return;
}
extensions[type] = exts;
for (var i = 0; i < exts.length; i++) {
var extension2 = exts[i];
types[extension2] = _preferredType(extension2, types[extension2], type);
const legacyType = _preferredTypeLegacy(
extension2,
types[extension2],
type
);
if (legacyType !== types[extension2]) {
exports2._extensionConflicts.push([extension2, legacyType, types[extension2]]);
}
}
});
}
function _preferredType(ext, type0, type1) {
var score0 = type0 ? mimeScore(type0, db[type0].source) : 0;
var score1 = type1 ? mimeScore(type1, db[type1].source) : 0;
return score0 > score1 ? type0 : type1;
}
function _preferredTypeLegacy(ext, type0, type1) {
var SOURCE_RANK = ["nginx", "apache", void 0, "iana"];
var score0 = type0 ? SOURCE_RANK.indexOf(db[type0].source) : 0;
var score1 = type1 ? SOURCE_RANK.indexOf(db[type1].source) : 0;
if (exports2.types[extension] !== "application/octet-stream" && (score0 > score1 || score0 === score1 && exports2.types[extension]?.slice(0, 12) === "application/")) {
return type0;
}
return score0 > score1 ? type0 : type1;
}
}
});
var require_accepts = __commonJS2({
"node_modules/accepts/index.js"(exports2, module2) {
"use strict";
var Negotiator = require_negotiator();
var mime = require_mime_types3();
module2.exports = Accepts;
function Accepts(req) {
if (!(this instanceof Accepts)) {
return new Accepts(req);
}
this.headers = req.headers;
this.negotiator = new Negotiator(req);
}
Accepts.prototype.type = Accepts.prototype.types = function(types_) {
var types = types_;
if (types && !Array.isArray(types)) {
types = new Array(arguments.length);
for (var i = 0; i < types.length; i++) {
types[i] = arguments[i];
}
}
if (!types || types.length === 0) {
return this.negotiator.mediaTypes();
}
if (!this.headers.accept) {
return types[0];
}
var mimes = types.map(extToMime);
var accepts = this.negotiator.mediaTypes(mimes.filter(validMime));
var first = accepts[0];
return first ? types[mimes.indexOf(first)] : false;
};
Accepts.prototype.encoding = Accepts.prototype.encodings = function(encodings_) {
var encodings = encodings_;
if (encodings && !Array.isArray(encodings)) {
encodings = new Array(arguments.length);
for (var i = 0; i < encodings.length; i++) {
encodings[i] = arguments[i];
}
}
if (!encodings || encodings.length === 0) {
return this.negotiator.encodings();
}
return this.negotiator.encodings(encodings)[0] || false;
};
Accepts.prototype.charset = Accepts.prototype.charsets = function(charsets_) {
var charsets = charsets_;
if (charsets && !Array.isArray(charsets)) {
charsets = new Array(arguments.length);
for (var i = 0; i < charsets.length; i++) {
charsets[i] = arguments[i];
}
}
if (!charsets || charsets.length === 0) {
return this.negotiator.charsets();
}
return this.negotiator.charsets(charsets)[0] || false;
};
Accepts.prototype.lang = Accepts.prototype.langs = Accepts.prototype.language = Accepts.prototype.languages = function(languages_) {
var languages = languages_;
if (languages && !Array.isArray(languages)) {
languages = new Array(arguments.length);
for (var i = 0; i < languages.length; i++) {
languages[i] = arguments[i];
}
}
if (!languages || languages.length === 0) {
return this.negotiator.languages();
}
return this.negotiator.languages(languages)[0] || false;
};
function extToMime(type) {
return type.indexOf("/") === -1 ? mime.lookup(type) : type;
}
function validMime(type) {
return typeof type === "string";
}
}
});
var require_fresh = __commonJS2({
"node_modules/fresh/index.js"(exports2, module2) {
"use strict";
var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/;
module2.exports = fresh;
function fresh(reqHeaders, resHeaders) {
var modifiedSince = reqHeaders["if-modified-since"];
var noneMatch = reqHeaders["if-none-match"];
if (!modifiedSince && !noneMatch) {
return false;
}
var cacheControl = reqHeaders["cache-control"];
if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) {
return false;
}
if (noneMatch) {
if (noneMatch === "*") {
return true;
}
var etag = resHeaders.etag;
if (!etag) {
return false;
}
var matches = parseTokenList(noneMatch);
for (var i = 0; i < matches.length; i++) {
var match = matches[i];
if (match === etag || match === "W/" + etag || "W/" + match === etag) {
return true;
}
}
return false;
}
if (modifiedSince) {
var lastModified = resHeaders["last-modified"];
var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince));
if (modifiedStale) {
return false;
}
}
return true;
}
function parseHttpDate(date) {
var timestamp = date && Date.parse(date);
return typeof timestamp === "number" ? timestamp : NaN;
}
function parseTokenList(str) {
var end = 0;
var list = [];
var start = 0;
for (var i = 0, len = str.length; i < len; i++) {
switch (str.charCodeAt(i)) {
case 32:
if (start === end) {
start = end = i + 1;
}
break;
case 44:
list.push(str.substring(start, end));
start = end = i + 1;
break;
default:
end = i + 1;
break;
}
}
list.push(str.substring(start, end));
return list;
}
}
});
var require_range_parser = __commonJS2({
"node_modules/range-parser/index.js"(exports2, module2) {
"use strict";
module2.exports = rangeParser;
function rangeParser(size, str, options) {
if (typeof str !== "string") {
throw new TypeError("argument str must be a string");
}
var index = str.indexOf("=");
if (index === -1) {
return -2;
}
var arr = str.slice(index + 1).split(",");
var ranges = [];
ranges.type = str.slice(0, index);
for (var i = 0; i < arr.length; i++) {
var range = arr[i].split("-");
var start = parseInt(range[0], 10);
var end = parseInt(range[1], 10);
if (isNaN(start)) {
start = size - end;
end = size - 1;
} else if (isNaN(end)) {
end = size - 1;
}
if (end > size - 1) {
end = size - 1;
}
if (isNaN(start) || isNaN(end) || start > end || start < 0) {
continue;
}
ranges.push({
start,
end
});
}
if (ranges.length < 1) {
return -1;
}
return options && options.combine ? combineRanges(ranges) : ranges;
}
function combineRanges(ranges) {
var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart);
for (var j = 0, i = 1; i < ordered.length; i++) {
var range = ordered[i];
var current = ordered[j];
if (range.start > current.end + 1) {
ordered[++j] = range;
} else if (range.end > current.end) {
current.end = range.end;
current.index = Math.min(current.index, range.index);
}
}
ordered.length = j + 1;
var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex);
combined.type = ranges.type;
return combined;
}
function mapWithIndex(range, index) {
return {
start: range.start,
end: range.end,
index
};
}
function mapWithoutIndex(range) {
return {
start: range.start,
end: range.end
};
}
function sortByRangeIndex(a, b) {
return a.index - b.index;
}
function sortByRangeStart(a, b) {
return a.start - b.start;
}
}
});
var require_request = __commonJS2({
"node_modules/express/lib/request.js"(exports2, module2) {
"use strict";
var accepts = require_accepts();
var isIP = require("node:net").isIP;
var typeis = require_type_is();
var http2 = require("node:http");
var fresh = require_fresh();
var parseRange = require_range_parser();
var parse = require_parseurl();
var proxyaddr = require_proxy_addr();
var req = Object.create(http2.IncomingMessage.prototype);
module2.exports = req;
req.get = req.header = function header(name) {
if (!name) {
throw new TypeError("name argument is required to req.get");
}
if (typeof name !== "string") {
throw new TypeError("name must be a string to req.get");
}
var lc = name.toLowerCase();
switch (lc) {
case "referer":
case "referrer":
return this.headers.referrer || this.headers.referer;
default:
return this.headers[lc];
}
};
req.accepts = function() {
var accept = accepts(this);
return accept.types.apply(accept, arguments);
};
req.acceptsEncodings = function() {
var accept = accepts(this);
return accept.encodings.apply(accept, arguments);
};
req.acceptsCharsets = function() {
var accept = accepts(this);
return accept.charsets.apply(accept, arguments);
};
req.acceptsLanguages = function() {
var accept = accepts(this);
return accept.languages.apply(accept, arguments);
};
req.range = function range(size, options) {
var range2 = this.get("Range");
if (!range2) return;
return parseRange(size, range2, options);
};
defineGetter(req, "query", function query() {
var queryparse = this.app.get("query parser fn");
if (!queryparse) {
return /* @__PURE__ */ Object.create(null);
}
var querystring = parse(this).query;
return queryparse(querystring);
});
req.is = function is(types) {
var arr = types;
if (!Array.isArray(types)) {
arr = new Array(arguments.length);
for (var i = 0; i < arr.length; i++) {
arr[i] = arguments[i];
}
}
return typeis(this, arr);
};
defineGetter(req, "protocol", function protocol() {
var proto = this.connection.encrypted ? "https" : "http";
var trust = this.app.get("trust proxy fn");
if (!trust(this.connection.remoteAddress, 0)) {
return proto;
}
var header = this.get("X-Forwarded-Proto") || proto;
var index = header.indexOf(",");
return index !== -1 ? header.substring(0, index).trim() : header.trim();
});
defineGetter(req, "secure", function secure() {
return this.protocol === "https";
});
defineGetter(req, "ip", function ip() {
var trust = this.app.get("trust proxy fn");
return proxyaddr(this, trust);
});
defineGetter(req, "ips", function ips() {
var trust = this.app.get("trust proxy fn");
var addrs = proxyaddr.all(this, trust);
addrs.reverse().pop();
return addrs;
});
defineGetter(req, "subdomains", function subdomains() {
var hostname = this.hostname;
if (!hostname) return [];
var offset = this.app.get("subdomain offset");
var subdomains2 = !isIP(hostname) ? hostname.split(".").reverse() : [hostname];
return subdomains2.slice(offset);
});
defineGetter(req, "path", function path() {
return parse(this).pathname;
});
defineGetter(req, "host", function host() {
var trust = this.app.get("trust proxy fn");
var val = this.get("X-Forwarded-Host");
if (!val || !trust(this.connection.remoteAddress, 0)) {
val = this.get("Host");
} else if (val.indexOf(",") !== -1) {
val = val.substring(0, val.indexOf(",")).trimRight();
}
return val || void 0;
});
defineGetter(req, "hostname", function hostname() {
var host = this.host;
if (!host) return;
var offset = host[0] === "[" ? host.indexOf("]") + 1 : 0;
var index = host.indexOf(":", offset);
return index !== -1 ? host.substring(0, index) : host;
});
defineGetter(req, "fresh", function() {
var method = this.method;
var res = this.res;
var status = res.statusCode;
if ("GET" !== method && "HEAD" !== method) return false;
if (status >= 200 && status < 300 || 304 === status) {
return fresh(this.headers, {
"etag": res.get("ETag"),
"last-modified": res.get("Last-Modified")
});
}
return false;
});
defineGetter(req, "stale", function stale() {
return !this.fresh;
});
defineGetter(req, "xhr", function xhr() {
var val = this.get("X-Requested-With") || "";
return val.toLowerCase() === "xmlhttprequest";
});
function defineGetter(obj, name, getter) {
Object.defineProperty(obj, name, {
configurable: true,
enumerable: true,
get: getter
});
}
}
});
var require_safe_buffer = __commonJS2({
"node_modules/safe-buffer/index.js"(exports2, module2) {
var buffer = require("buffer");
var Buffer2 = buffer.Buffer;
function copyProps(src, dst) {
for (var key in src) {
dst[key] = src[key];
}
}
if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) {
module2.exports = buffer;
} else {
copyProps(buffer, exports2);
exports2.Buffer = SafeBuffer;
}
function SafeBuffer(arg, encodingOrOffset, length) {
return Buffer2(arg, encodingOrOffset, length);
}
SafeBuffer.prototype = Object.create(Buffer2.prototype);
copyProps(Buffer2, SafeBuffer);
SafeBuffer.from = function(arg, encodingOrOffset, length) {
if (typeof arg === "number") {
throw new TypeError("Argument must not be a number");
}
return Buffer2(arg, encodingOrOffset, length);
};
SafeBuffer.alloc = function(size, fill, encoding) {
if (typeof size !== "number") {
throw new TypeError("Argument must be a number");
}
var buf = Buffer2(size);
if (fill !== void 0) {
if (typeof encoding === "string") {
buf.fill(fill, encoding);
} else {
buf.fill(fill);
}
} else {
buf.fill(0);
}
return buf;
};
SafeBuffer.allocUnsafe = function(size) {
if (typeof size !== "number") {
throw new TypeError("Argument must be a number");
}
return Buffer2(size);
};
SafeBuffer.allocUnsafeSlow = function(size) {
if (typeof size !== "number") {
throw new TypeError("Argument must be a number");
}
return buffer.SlowBuffer(size);
};
}
});
var require_content_disposition = __commonJS2({
"node_modules/content-disposition/index.js"(exports2, module2) {
"use strict";
module2.exports = contentDisposition;
module2.exports.parse = parse;
var basename = require("path").basename;
var Buffer2 = require_safe_buffer().Buffer;
var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g;
var HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/;
var HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g;
var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g;
var QESC_REGEXP = /\\([\u0000-\u007f])/g;
var QUOTE_REGEXP = /([\\"])/g;
var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g;
var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/;
var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/;
var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/;
var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;
function contentDisposition(filename, options) {
var opts = options || {};
var type = opts.type || "attachment";
var params = createparams(filename, opts.fallback);
return format(new ContentDisposition(type, params));
}
function createparams(filename, fallback) {
if (filename === void 0) {
return;
}
var params = {};
if (typeof filename !== "string") {
throw new TypeError("filename must be a string");
}
if (fallback === void 0) {
fallback = true;
}
if (typeof fallback !== "string" && typeof fallback !== "boolean") {
throw new TypeError("fallback must be a string or boolean");
}
if (typeof fallback === "string" && NON_LATIN1_REGEXP.test(fallback)) {
throw new TypeError("fallback must be ISO-8859-1 string");
}
var name = basename(filename);
var isQuotedString = TEXT_REGEXP.test(name);
var fallbackName = typeof fallback !== "string" ? fallback && getlatin1(name) : basename(fallback);
var hasFallback = typeof fallbackName === "string" && fallbackName !== name;
if (hasFallback || !isQuotedString || HEX_ESCAPE_REGEXP.test(name)) {
params["filename*"] = name;
}
if (isQuotedString || hasFallback) {
params.filename = hasFallback ? fallbackName : name;
}
return params;
}
function format(obj) {
var parameters = obj.parameters;
var type = obj.type;
if (!type || typeof type !== "string" || !TOKEN_REGEXP.test(type)) {
throw new TypeError("invalid type");
}
var string = String(type).toLowerCase();
if (parameters && typeof parameters === "object") {
var param;
var params = Object.keys(parameters).sort();
for (var i = 0; i < params.length; i++) {
param = params[i];
var val = param.slice(-1) === "*" ? ustring(parameters[param]) : qstring(parameters[param]);
string += "; " + param + "=" + val;
}
}
return string;
}
function decodefield(str) {
var match = EXT_VALUE_REGEXP.exec(str);
if (!match) {
throw new TypeError("invalid extended field value");
}
var charset = match[1].toLowerCase();
var encoded = match[2];
var value;
var binary = encoded.replace(HEX_ESCAPE_REPLACE_REGEXP, pdecode);
switch (charset) {
case "iso-8859-1":
value = getlatin1(binary);
break;
case "utf-8":
case "utf8":
value = Buffer2.from(binary, "binary").toString("utf8");
break;
default:
throw new TypeError("unsupported charset in extended field");
}
return value;
}
function getlatin1(val) {
return String(val).replace(NON_LATIN1_REGEXP, "?");
}
function parse(string) {
if (!string || typeof string !== "string") {
throw new TypeError("argument string is required");
}
var match = DISPOSITION_TYPE_REGEXP.exec(string);
if (!match) {
throw new TypeError("invalid type format");
}
var index = match[0].length;
var type = match[1].toLowerCase();
var key;
var names = [];
var params = {};
var value;
index = PARAM_REGEXP.lastIndex = match[0].slice(-1) === ";" ? index - 1 : index;
while (match = PARAM_REGEXP.exec(string)) {
if (match.index !== index) {
throw new TypeError("invalid parameter format");
}
index += match[0].length;
key = match[1].toLowerCase();
value = match[2];
if (names.indexOf(key) !== -1) {
throw new TypeError("invalid duplicate parameter");
}
names.push(key);
if (key.indexOf("*") + 1 === key.length) {
key = key.slice(0, -1);
value = decodefield(value);
params[key] = value;
continue;
}
if (typeof params[key] === "string") {
continue;
}
if (value[0] === '"') {
value = value.slice(1, -1).replace(QESC_REGEXP, "$1");
}
params[key] = value;
}
if (index !== -1 && index !== string.length) {
throw new TypeError("invalid parameter format");
}
return new ContentDisposition(type, params);
}
function pdecode(str, hex) {
return String.fromCharCode(parseInt(hex, 16));
}
function pencode(char) {
return "%" + String(char).charCodeAt(0).toString(16).toUpperCase();
}
function qstring(val) {
var str = String(val);
return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
}
function ustring(val) {
var str = String(val);
var encoded = encodeURIComponent(str).replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode);
return "UTF-8''" + encoded;
}
function ContentDisposition(type, parameters) {
this.type = type;
this.parameters = parameters;
}
}
});
var require_cookie_signature = __commonJS2({
"node_modules/cookie-signature/index.js"(exports2) {
var crypto2 = require("crypto");
exports2.sign = function(val, secret) {
if ("string" != typeof val) throw new TypeError("Cookie value must be provided as a string.");
if (null == secret) throw new TypeError("Secret key must be provided.");
return val + "." + crypto2.createHmac("sha256", secret).update(val).digest("base64").replace(/\=+$/, "");
};
exports2.unsign = function(input, secret) {
if ("string" != typeof input) throw new TypeError("Signed cookie string must be provided.");
if (null == secret) throw new TypeError("Secret key must be provided.");
var tentativeValue = input.slice(0, input.lastIndexOf(".")), expectedInput = exports2.sign(tentativeValue, secret), expectedBuffer = Buffer.from(expectedInput), inputBuffer = Buffer.from(input);
return expectedBuffer.length === inputBuffer.length && crypto2.timingSafeEqual(expectedBuffer, inputBuffer) ? tentativeValue : false;
};
}
});
var require_cookie = __commonJS2({
"node_modules/cookie/index.js"(exports2) {
"use strict";
exports2.parse = parse;
exports2.serialize = serialize;
var __toString = Object.prototype.toString;
var cookieNameRegExp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/;
var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;
var pathValueRegExp = /^[\u0020-\u003A\u003D-\u007E]*$/;
function parse(str, opt) {
if (typeof str !== "string") {
throw new TypeError("argument str must be a string");
}
var obj = {};
var len = str.length;
if (len < 2) return obj;
var dec = opt && opt.decode || decode;
var index = 0;
var eqIdx = 0;
var endIdx = 0;
do {
eqIdx = str.indexOf("=", index);
if (eqIdx === -1) break;
endIdx = str.indexOf(";", index);
if (endIdx === -1) {
endIdx = len;
} else if (eqIdx > endIdx) {
index = str.lastIndexOf(";", eqIdx - 1) + 1;
continue;
}
var keyStartIdx = startIndex(str, index, eqIdx);
var keyEndIdx = endIndex(str, eqIdx, keyStartIdx);
var key = str.slice(keyStartIdx, keyEndIdx);
if (!obj.hasOwnProperty(key)) {
var valStartIdx = startIndex(str, eqIdx + 1, endIdx);
var valEndIdx = endIndex(str, endIdx, valStartIdx);
if (str.charCodeAt(valStartIdx) === 34 && str.charCodeAt(valEndIdx - 1) === 34) {
valStartIdx++;
valEndIdx--;
}
var val = str.slice(valStartIdx, valEndIdx);
obj[key] = tryDecode(val, dec);
}
index = endIdx + 1;
} while (index < len);
return obj;
}
function startIndex(str, index, max) {
do {
var code = str.charCodeAt(index);
if (code !== 32 && code !== 9) return index;
} while (++index < max);
return max;
}
function endIndex(str, index, min) {
while (index > min) {
var code = str.charCodeAt(--index);
if (code !== 32 && code !== 9) return index + 1;
}
return min;
}
function serialize(name, val, opt) {
var enc = opt && opt.encode || encodeURIComponent;
if (typeof enc !== "function") {
throw new TypeError("option encode is invalid");
}
if (!cookieNameRegExp.test(name)) {
throw new TypeError("argument name is invalid");
}
var value = enc(val);
if (!cookieValueRegExp.test(value)) {
throw new TypeError("argument val is invalid");
}
var str = name + "=" + value;
if (!opt) return str;
if (null != opt.maxAge) {
var maxAge = Math.floor(opt.maxAge);
if (!isFinite(maxAge)) {
throw new TypeError("option maxAge is invalid");
}
str += "; Max-Age=" + maxAge;
}
if (opt.domain) {
if (!domainValueRegExp.test(opt.domain)) {
throw new TypeError("option domain is invalid");
}
str += "; Domain=" + opt.domain;
}
if (opt.path) {
if (!pathValueRegExp.test(opt.path)) {
throw new TypeError("option path is invalid");
}
str += "; Path=" + opt.path;
}
if (opt.expires) {
var expires = opt.expires;
if (!isDate2(expires) || isNaN(expires.valueOf())) {
throw new TypeError("option expires is invalid");
}
str += "; Expires=" + expires.toUTCString();
}
if (opt.httpOnly) {
str += "; HttpOnly";
}
if (opt.secure) {
str += "; Secure";
}
if (opt.partitioned) {
str += "; Partitioned";
}
if (opt.priority) {
var priority = typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority;
switch (priority) {
case "low":
str += "; Priority=Low";
break;
case "medium":
str += "; Priority=Medium";
break;
case "high":
str += "; Priority=High";
break;
default:
throw new TypeError("option priority is invalid");
}
}
if (opt.sameSite) {
var sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite;
switch (sameSite) {
case true:
str += "; SameSite=Strict";
break;
case "lax":
str += "; SameSite=Lax";
break;
case "strict":
str += "; SameSite=Strict";
break;
case "none":
str += "; SameSite=None";
break;
default:
throw new TypeError("option sameSite is invalid");
}
}
return str;
}
function decode(str) {
return str.indexOf("%") !== -1 ? decodeURIComponent(str) : str;
}
function isDate2(val) {
return __toString.call(val) === "[object Date]";
}
function tryDecode(str, decode2) {
try {
return decode2(str);
} catch (e) {
return str;
}
}
}
});
var require_db4 = __commonJS2({
"node_modules/send/node_modules/mime-db/db.json"(exports2, module2) {
module2.exports = {
"application/1d-interleaved-parityfec": {
source: "iana"
},
"application/3gpdash-qoe-report+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/3gpp-ims+xml": {
source: "iana",
compressible: true
},
"application/3gpphal+json": {
source: "iana",
compressible: true
},
"application/3gpphalforms+json": {
source: "iana",
compressible: true
},
"application/a2l": {
source: "iana"
},
"application/ace+cbor": {
source: "iana"
},
"application/ace+json": {
source: "iana",
compressible: true
},
"application/ace-groupcomm+cbor": {
source: "iana"
},
"application/ace-trl+cbor": {
source: "iana"
},
"application/activemessage": {
source: "iana"
},
"application/activity+json": {
source: "iana",
compressible: true
},
"application/aif+cbor": {
source: "iana"
},
"application/aif+json": {
source: "iana",
compressible: true
},
"application/alto-cdni+json": {
source: "iana",
compressible: true
},
"application/alto-cdnifilter+json": {
source: "iana",
compressible: true
},
"application/alto-costmap+json": {
source: "iana",
compressible: true
},
"application/alto-costmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-directory+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcost+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcostparams+json": {
source: "iana",
compressible: true
},
"application/alto-endpointprop+json": {
source: "iana",
compressible: true
},
"application/alto-endpointpropparams+json": {
source: "iana",
compressible: true
},
"application/alto-error+json": {
source: "iana",
compressible: true
},
"application/alto-networkmap+json": {
source: "iana",
compressible: true
},
"application/alto-networkmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-propmap+json": {
source: "iana",
compressible: true
},
"application/alto-propmapparams+json": {
source: "iana",
compressible: true
},
"application/alto-tips+json": {
source: "iana",
compressible: true
},
"application/alto-tipsparams+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamcontrol+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamparams+json": {
source: "iana",
compressible: true
},
"application/aml": {
source: "iana"
},
"application/andrew-inset": {
source: "iana",
extensions: ["ez"]
},
"application/appinstaller": {
compressible: false,
extensions: ["appinstaller"]
},
"application/applefile": {
source: "iana"
},
"application/applixware": {
source: "apache",
extensions: ["aw"]
},
"application/appx": {
compressible: false,
extensions: ["appx"]
},
"application/appxbundle": {
compressible: false,
extensions: ["appxbundle"]
},
"application/at+jwt": {
source: "iana"
},
"application/atf": {
source: "iana"
},
"application/atfx": {
source: "iana"
},
"application/atom+xml": {
source: "iana",
compressible: true,
extensions: ["atom"]
},
"application/atomcat+xml": {
source: "iana",
compressible: true,
extensions: ["atomcat"]
},
"application/atomdeleted+xml": {
source: "iana",
compressible: true,
extensions: ["atomdeleted"]
},
"application/atomicmail": {
source: "iana"
},
"application/atomsvc+xml": {
source: "iana",
compressible: true,
extensions: ["atomsvc"]
},
"application/atsc-dwd+xml": {
source: "iana",
compressible: true,
extensions: ["dwd"]
},
"application/atsc-dynamic-event-message": {
source: "iana"
},
"application/atsc-held+xml": {
source: "iana",
compressible: true,
extensions: ["held"]
},
"application/atsc-rdt+json": {
source: "iana",
compressible: true
},
"application/atsc-rsat+xml": {
source: "iana",
compressible: true,
extensions: ["rsat"]
},
"application/atxml": {
source: "iana"
},
"application/auth-policy+xml": {
source: "iana",
compressible: true
},
"application/automationml-aml+xml": {
source: "iana",
compressible: true,
extensions: ["aml"]
},
"application/automationml-amlx+zip": {
source: "iana",
compressible: false,
extensions: ["amlx"]
},
"application/bacnet-xdd+zip": {
source: "iana",
compressible: false
},
"application/batch-smtp": {
source: "iana"
},
"application/bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/beep+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/bufr": {
source: "iana"
},
"application/c2pa": {
source: "iana"
},
"application/calendar+json": {
source: "iana",
compressible: true
},
"application/calendar+xml": {
source: "iana",
compressible: true,
extensions: ["xcs"]
},
"application/call-completion": {
source: "iana"
},
"application/cals-1840": {
source: "iana"
},
"application/captive+json": {
source: "iana",
compressible: true
},
"application/cbor": {
source: "iana"
},
"application/cbor-seq": {
source: "iana"
},
"application/cccex": {
source: "iana"
},
"application/ccmp+xml": {
source: "iana",
compressible: true
},
"application/ccxml+xml": {
source: "iana",
compressible: true,
extensions: ["ccxml"]
},
"application/cda+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/cdfx+xml": {
source: "iana",
compressible: true,
extensions: ["cdfx"]
},
"application/cdmi-capability": {
source: "iana",
extensions: ["cdmia"]
},
"application/cdmi-container": {
source: "iana",
extensions: ["cdmic"]
},
"application/cdmi-domain": {
source: "iana",
extensions: ["cdmid"]
},
"application/cdmi-object": {
source: "iana",
extensions: ["cdmio"]
},
"application/cdmi-queue": {
source: "iana",
extensions: ["cdmiq"]
},
"application/cdni": {
source: "iana"
},
"application/ce+cbor": {
source: "iana"
},
"application/cea": {
source: "iana"
},
"application/cea-2018+xml": {
source: "iana",
compressible: true
},
"application/cellml+xml": {
source: "iana",
compressible: true
},
"application/cfw": {
source: "iana"
},
"application/cid-edhoc+cbor-seq": {
source: "iana"
},
"application/city+json": {
source: "iana",
compressible: true
},
"application/city+json-seq": {
source: "iana"
},
"application/clr": {
source: "iana"
},
"application/clue+xml": {
source: "iana",
compressible: true
},
"application/clue_info+xml": {
source: "iana",
compressible: true
},
"application/cms": {
source: "iana"
},
"application/cnrp+xml": {
source: "iana",
compressible: true
},
"application/coap-eap": {
source: "iana"
},
"application/coap-group+json": {
source: "iana",
compressible: true
},
"application/coap-payload": {
source: "iana"
},
"application/commonground": {
source: "iana"
},
"application/concise-problem-details+cbor": {
source: "iana"
},
"application/conference-info+xml": {
source: "iana",
compressible: true
},
"application/cose": {
source: "iana"
},
"application/cose-key": {
source: "iana"
},
"application/cose-key-set": {
source: "iana"
},
"application/cose-x509": {
source: "iana"
},
"application/cpl+xml": {
source: "iana",
compressible: true,
extensions: ["cpl"]
},
"application/csrattrs": {
source: "iana"
},
"application/csta+xml": {
source: "iana",
compressible: true
},
"application/cstadata+xml": {
source: "iana",
compressible: true
},
"application/csvm+json": {
source: "iana",
compressible: true
},
"application/cu-seeme": {
source: "apache",
extensions: ["cu"]
},
"application/cwl": {
source: "iana",
extensions: ["cwl"]
},
"application/cwl+json": {
source: "iana",
compressible: true
},
"application/cwl+yaml": {
source: "iana"
},
"application/cwt": {
source: "iana"
},
"application/cybercash": {
source: "iana"
},
"application/dart": {
compressible: true
},
"application/dash+xml": {
source: "iana",
compressible: true,
extensions: ["mpd"]
},
"application/dash-patch+xml": {
source: "iana",
compressible: true,
extensions: ["mpp"]
},
"application/dashdelta": {
source: "iana"
},
"application/davmount+xml": {
source: "iana",
compressible: true,
extensions: ["davmount"]
},
"application/dca-rft": {
source: "iana"
},
"application/dcd": {
source: "iana"
},
"application/dec-dx": {
source: "iana"
},
"application/dialog-info+xml": {
source: "iana",
compressible: true
},
"application/dicom": {
source: "iana",
extensions: ["dcm"]
},
"application/dicom+json": {
source: "iana",
compressible: true
},
"application/dicom+xml": {
source: "iana",
compressible: true
},
"application/dii": {
source: "iana"
},
"application/dit": {
source: "iana"
},
"application/dns": {
source: "iana"
},
"application/dns+json": {
source: "iana",
compressible: true
},
"application/dns-message": {
source: "iana"
},
"application/docbook+xml": {
source: "apache",
compressible: true,
extensions: ["dbk"]
},
"application/dots+cbor": {
source: "iana"
},
"application/dpop+jwt": {
source: "iana"
},
"application/dskpp+xml": {
source: "iana",
compressible: true
},
"application/dssc+der": {
source: "iana",
extensions: ["dssc"]
},
"application/dssc+xml": {
source: "iana",
compressible: true,
extensions: ["xdssc"]
},
"application/dvcs": {
source: "iana"
},
"application/eat+cwt": {
source: "iana"
},
"application/eat+jwt": {
source: "iana"
},
"application/eat-bun+cbor": {
source: "iana"
},
"application/eat-bun+json": {
source: "iana",
compressible: true
},
"application/eat-ucs+cbor": {
source: "iana"
},
"application/eat-ucs+json": {
source: "iana",
compressible: true
},
"application/ecmascript": {
source: "apache",
compressible: true,
extensions: ["ecma"]
},
"application/edhoc+cbor-seq": {
source: "iana"
},
"application/edi-consent": {
source: "iana"
},
"application/edi-x12": {
source: "iana",
compressible: false
},
"application/edifact": {
source: "iana",
compressible: false
},
"application/efi": {
source: "iana"
},
"application/elm+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/elm+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.cap+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/emergencycalldata.comment+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.control+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.deviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.ecall.msd": {
source: "iana"
},
"application/emergencycalldata.legacyesn+json": {
source: "iana",
compressible: true
},
"application/emergencycalldata.providerinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.serviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.subscriberinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.veds+xml": {
source: "iana",
compressible: true
},
"application/emma+xml": {
source: "iana",
compressible: true,
extensions: ["emma"]
},
"application/emotionml+xml": {
source: "iana",
compressible: true,
extensions: ["emotionml"]
},
"application/encaprtp": {
source: "iana"
},
"application/entity-statement+jwt": {
source: "iana"
},
"application/epp+xml": {
source: "iana",
compressible: true
},
"application/epub+zip": {
source: "iana",
compressible: false,
extensions: ["epub"]
},
"application/eshop": {
source: "iana"
},
"application/exi": {
source: "iana",
extensions: ["exi"]
},
"application/expect-ct-report+json": {
source: "iana",
compressible: true
},
"application/express": {
source: "iana",
extensions: ["exp"]
},
"application/fastinfoset": {
source: "iana"
},
"application/fastsoap": {
source: "iana"
},
"application/fdf": {
source: "iana",
extensions: ["fdf"]
},
"application/fdt+xml": {
source: "iana",
compressible: true,
extensions: ["fdt"]
},
"application/fhir+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fhir+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fido.trusted-apps+json": {
compressible: true
},
"application/fits": {
source: "iana"
},
"application/flexfec": {
source: "iana"
},
"application/font-sfnt": {
source: "iana"
},
"application/font-tdpfr": {
source: "iana",
extensions: ["pfr"]
},
"application/font-woff": {
source: "iana",
compressible: false
},
"application/framework-attributes+xml": {
source: "iana",
compressible: true
},
"application/geo+json": {
source: "iana",
compressible: true,
extensions: ["geojson"]
},
"application/geo+json-seq": {
source: "iana"
},
"application/geopackage+sqlite3": {
source: "iana"
},
"application/geopose+json": {
source: "iana",
compressible: true
},
"application/geoxacml+json": {
source: "iana",
compressible: true
},
"application/geoxacml+xml": {
source: "iana",
compressible: true
},
"application/gltf-buffer": {
source: "iana"
},
"application/gml+xml": {
source: "iana",
compressible: true,
extensions: ["gml"]
},
"application/gnap-binding-jws": {
source: "iana"
},
"application/gnap-binding-jwsd": {
source: "iana"
},
"application/gnap-binding-rotation-jws": {
source: "iana"
},
"application/gnap-binding-rotation-jwsd": {
source: "iana"
},
"application/gpx+xml": {
source: "apache",
compressible: true,
extensions: ["gpx"]
},
"application/grib": {
source: "iana"
},
"application/gxf": {
source: "apache",
extensions: ["gxf"]
},
"application/gzip": {
source: "iana",
compressible: false,
extensions: ["gz"]
},
"application/h224": {
source: "iana"
},
"application/held+xml": {
source: "iana",
compressible: true
},
"application/hjson": {
extensions: ["hjson"]
},
"application/hl7v2+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/http": {
source: "iana"
},
"application/hyperstudio": {
source: "iana",
extensions: ["stk"]
},
"application/ibe-key-request+xml": {
source: "iana",
compressible: true
},
"application/ibe-pkg-reply+xml": {
source: "iana",
compressible: true
},
"application/ibe-pp-data": {
source: "iana"
},
"application/iges": {
source: "iana"
},
"application/im-iscomposing+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/index": {
source: "iana"
},
"application/index.cmd": {
source: "iana"
},
"application/index.obj": {
source: "iana"
},
"application/index.response": {
source: "iana"
},
"application/index.vnd": {
source: "iana"
},
"application/inkml+xml": {
source: "iana",
compressible: true,
extensions: ["ink", "inkml"]
},
"application/iotp": {
source: "iana"
},
"application/ipfix": {
source: "iana",
extensions: ["ipfix"]
},
"application/ipp": {
source: "iana"
},
"application/isup": {
source: "iana"
},
"application/its+xml": {
source: "iana",
compressible: true,
extensions: ["its"]
},
"application/java-archive": {
source: "iana",
compressible: false,
extensions: ["jar", "war", "ear"]
},
"application/java-serialized-object": {
source: "apache",
compressible: false,
extensions: ["ser"]
},
"application/java-vm": {
source: "apache",
compressible: false,
extensions: ["class"]
},
"application/javascript": {
source: "apache",
charset: "UTF-8",
compressible: true,
extensions: ["js"]
},
"application/jf2feed+json": {
source: "iana",
compressible: true
},
"application/jose": {
source: "iana"
},
"application/jose+json": {
source: "iana",
compressible: true
},
"application/jrd+json": {
source: "iana",
compressible: true
},
"application/jscalendar+json": {
source: "iana",
compressible: true
},
"application/jscontact+json": {
source: "iana",
compressible: true
},
"application/json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["json", "map"]
},
"application/json-patch+json": {
source: "iana",
compressible: true
},
"application/json-seq": {
source: "iana"
},
"application/json5": {
extensions: ["json5"]
},
"application/jsonml+json": {
source: "apache",
compressible: true,
extensions: ["jsonml"]
},
"application/jsonpath": {
source: "iana"
},
"application/jwk+json": {
source: "iana",
compressible: true
},
"application/jwk-set+json": {
source: "iana",
compressible: true
},
"application/jwk-set+jwt": {
source: "iana"
},
"application/jwt": {
source: "iana"
},
"application/kpml-request+xml": {
source: "iana",
compressible: true
},
"application/kpml-response+xml": {
source: "iana",
compressible: true
},
"application/ld+json": {
source: "iana",
compressible: true,
extensions: ["jsonld"]
},
"application/lgr+xml": {
source: "iana",
compressible: true,
extensions: ["lgr"]
},
"application/link-format": {
source: "iana"
},
"application/linkset": {
source: "iana"
},
"application/linkset+json": {
source: "iana",
compressible: true
},
"application/load-control+xml": {
source: "iana",
compressible: true
},
"application/logout+jwt": {
source: "iana"
},
"application/lost+xml": {
source: "iana",
compressible: true,
extensions: ["lostxml"]
},
"application/lostsync+xml": {
source: "iana",
compressible: true
},
"application/lpf+zip": {
source: "iana",
compressible: false
},
"application/lxf": {
source: "iana"
},
"application/mac-binhex40": {
source: "iana",
extensions: ["hqx"]
},
"application/mac-compactpro": {
source: "apache",
extensions: ["cpt"]
},
"application/macwriteii": {
source: "iana"
},
"application/mads+xml": {
source: "iana",
compressible: true,
extensions: ["mads"]
},
"application/manifest+json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["webmanifest"]
},
"application/marc": {
source: "iana",
extensions: ["mrc"]
},
"application/marcxml+xml": {
source: "iana",
compressible: true,
extensions: ["mrcx"]
},
"application/mathematica": {
source: "iana",
extensions: ["ma", "nb", "mb"]
},
"application/mathml+xml": {
source: "iana",
compressible: true,
extensions: ["mathml"]
},
"application/mathml-content+xml": {
source: "iana",
compressible: true
},
"application/mathml-presentation+xml": {
source: "iana",
compressible: true
},
"application/mbms-associated-procedure-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-deregister+xml": {
source: "iana",
compressible: true
},
"application/mbms-envelope+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-protection-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-reception-report+xml": {
source: "iana",
compressible: true
},
"application/mbms-register+xml": {
source: "iana",
compressible: true
},
"application/mbms-register-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-schedule+xml": {
source: "iana",
compressible: true
},
"application/mbms-user-service-description+xml": {
source: "iana",
compressible: true
},
"application/mbox": {
source: "iana",
extensions: ["mbox"]
},
"application/media-policy-dataset+xml": {
source: "iana",
compressible: true,
extensions: ["mpf"]
},
"application/media_control+xml": {
source: "iana",
compressible: true
},
"application/mediaservercontrol+xml": {
source: "iana",
compressible: true,
extensions: ["mscml"]
},
"application/merge-patch+json": {
source: "iana",
compressible: true
},
"application/metalink+xml": {
source: "apache",
compressible: true,
extensions: ["metalink"]
},
"application/metalink4+xml": {
source: "iana",
compressible: true,
extensions: ["meta4"]
},
"application/mets+xml": {
source: "iana",
compressible: true,
extensions: ["mets"]
},
"application/mf4": {
source: "iana"
},
"application/mikey": {
source: "iana"
},
"application/mipc": {
source: "iana"
},
"application/missing-blocks+cbor-seq": {
source: "iana"
},
"application/mmt-aei+xml": {
source: "iana",
compressible: true,
extensions: ["maei"]
},
"application/mmt-usd+xml": {
source: "iana",
compressible: true,
extensions: ["musd"]
},
"application/mods+xml": {
source: "iana",
compressible: true,
extensions: ["mods"]
},
"application/moss-keys": {
source: "iana"
},
"application/moss-signature": {
source: "iana"
},
"application/mosskey-data": {
source: "iana"
},
"application/mosskey-request": {
source: "iana"
},
"application/mp21": {
source: "iana",
extensions: ["m21", "mp21"]
},
"application/mp4": {
source: "iana",
extensions: ["mp4", "mpg4", "mp4s", "m4p"]
},
"application/mpeg4-generic": {
source: "iana"
},
"application/mpeg4-iod": {
source: "iana"
},
"application/mpeg4-iod-xmt": {
source: "iana"
},
"application/mrb-consumer+xml": {
source: "iana",
compressible: true
},
"application/mrb-publish+xml": {
source: "iana",
compressible: true
},
"application/msc-ivr+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msc-mixer+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msix": {
compressible: false,
extensions: ["msix"]
},
"application/msixbundle": {
compressible: false,
extensions: ["msixbundle"]
},
"application/msword": {
source: "iana",
compressible: false,
extensions: ["doc", "dot"]
},
"application/mud+json": {
source: "iana",
compressible: true
},
"application/multipart-core": {
source: "iana"
},
"application/mxf": {
source: "iana",
extensions: ["mxf"]
},
"application/n-quads": {
source: "iana",
extensions: ["nq"]
},
"application/n-triples": {
source: "iana",
extensions: ["nt"]
},
"application/nasdata": {
source: "iana"
},
"application/news-checkgroups": {
source: "iana",
charset: "US-ASCII"
},
"application/news-groupinfo": {
source: "iana",
charset: "US-ASCII"
},
"application/news-transmission": {
source: "iana"
},
"application/nlsml+xml": {
source: "iana",
compressible: true
},
"application/node": {
source: "iana",
extensions: ["cjs"]
},
"application/nss": {
source: "iana"
},
"application/oauth-authz-req+jwt": {
source: "iana"
},
"application/oblivious-dns-message": {
source: "iana"
},
"application/ocsp-request": {
source: "iana"
},
"application/ocsp-response": {
source: "iana"
},
"application/octet-stream": {
source: "iana",
compressible: true,
extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"]
},
"application/oda": {
source: "iana",
extensions: ["oda"]
},
"application/odm+xml": {
source: "iana",
compressible: true
},
"application/odx": {
source: "iana"
},
"application/oebps-package+xml": {
source: "iana",
compressible: true,
extensions: ["opf"]
},
"application/ogg": {
source: "iana",
compressible: false,
extensions: ["ogx"]
},
"application/ohttp-keys": {
source: "iana"
},
"application/omdoc+xml": {
source: "apache",
compressible: true,
extensions: ["omdoc"]
},
"application/onenote": {
source: "apache",
extensions: ["onetoc", "onetoc2", "onetmp", "onepkg", "one", "onea"]
},
"application/opc-nodeset+xml": {
source: "iana",
compressible: true
},
"application/oscore": {
source: "iana"
},
"application/oxps": {
source: "iana",
extensions: ["oxps"]
},
"application/p21": {
source: "iana"
},
"application/p21+zip": {
source: "iana",
compressible: false
},
"application/p2p-overlay+xml": {
source: "iana",
compressible: true,
extensions: ["relo"]
},
"application/parityfec": {
source: "iana"
},
"application/passport": {
source: "iana"
},
"application/patch-ops-error+xml": {
source: "iana",
compressible: true,
extensions: ["xer"]
},
"application/pdf": {
source: "iana",
compressible: false,
extensions: ["pdf"]
},
"application/pdx": {
source: "iana"
},
"application/pem-certificate-chain": {
source: "iana"
},
"application/pgp-encrypted": {
source: "iana",
compressible: false,
extensions: ["pgp"]
},
"application/pgp-keys": {
source: "iana",
extensions: ["asc"]
},
"application/pgp-signature": {
source: "iana",
extensions: ["sig", "asc"]
},
"application/pics-rules": {
source: "apache",
extensions: ["prf"]
},
"application/pidf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pidf-diff+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pkcs10": {
source: "iana",
extensions: ["p10"]
},
"application/pkcs12": {
source: "iana"
},
"application/pkcs7-mime": {
source: "iana",
extensions: ["p7m", "p7c"]
},
"application/pkcs7-signature": {
source: "iana",
extensions: ["p7s"]
},
"application/pkcs8": {
source: "iana",
extensions: ["p8"]
},
"application/pkcs8-encrypted": {
source: "iana"
},
"application/pkix-attr-cert": {
source: "iana",
extensions: ["ac"]
},
"application/pkix-cert": {
source: "iana",
extensions: ["cer"]
},
"application/pkix-crl": {
source: "iana",
extensions: ["crl"]
},
"application/pkix-pkipath": {
source: "iana",
extensions: ["pkipath"]
},
"application/pkixcmp": {
source: "iana",
extensions: ["pki"]
},
"application/pls+xml": {
source: "iana",
compressible: true,
extensions: ["pls"]
},
"application/poc-settings+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/postscript": {
source: "iana",
compressible: true,
extensions: ["ai", "eps", "ps"]
},
"application/ppsp-tracker+json": {
source: "iana",
compressible: true
},
"application/private-token-issuer-directory": {
source: "iana"
},
"application/private-token-request": {
source: "iana"
},
"application/private-token-response": {
source: "iana"
},
"application/problem+json": {
source: "iana",
compressible: true
},
"application/problem+xml": {
source: "iana",
compressible: true
},
"application/provenance+xml": {
source: "iana",
compressible: true,
extensions: ["provx"]
},
"application/provided-claims+jwt": {
source: "iana"
},
"application/prs.alvestrand.titrax-sheet": {
source: "iana"
},
"application/prs.cww": {
source: "iana",
extensions: ["cww"]
},
"application/prs.cyn": {
source: "iana",
charset: "7-BIT"
},
"application/prs.hpub+zip": {
source: "iana",
compressible: false
},
"application/prs.implied-document+xml": {
source: "iana",
compressible: true
},
"application/prs.implied-executable": {
source: "iana"
},
"application/prs.implied-object+json": {
source: "iana",
compressible: true
},
"application/prs.implied-object+json-seq": {
source: "iana"
},
"application/prs.implied-object+yaml": {
source: "iana"
},
"application/prs.implied-structure": {
source: "iana"
},
"application/prs.mayfile": {
source: "iana"
},
"application/prs.nprend": {
source: "iana"
},
"application/prs.plucker": {
source: "iana"
},
"application/prs.rdf-xml-crypt": {
source: "iana"
},
"application/prs.vcfbzip2": {
source: "iana"
},
"application/prs.xsf+xml": {
source: "iana",
compressible: true,
extensions: ["xsf"]
},
"application/pskc+xml": {
source: "iana",
compressible: true,
extensions: ["pskcxml"]
},
"application/pvd+json": {
source: "iana",
compressible: true
},
"application/qsig": {
source: "iana"
},
"application/raml+yaml": {
compressible: true,
extensions: ["raml"]
},
"application/raptorfec": {
source: "iana"
},
"application/rdap+json": {
source: "iana",
compressible: true
},
"application/rdf+xml": {
source: "iana",
compressible: true,
extensions: ["rdf", "owl"]
},
"application/reginfo+xml": {
source: "iana",
compressible: true,
extensions: ["rif"]
},
"application/relax-ng-compact-syntax": {
source: "iana",
extensions: ["rnc"]
},
"application/remote-printing": {
source: "apache"
},
"application/reputon+json": {
source: "iana",
compressible: true
},
"application/resolve-response+jwt": {
source: "iana"
},
"application/resource-lists+xml": {
source: "iana",
compressible: true,
extensions: ["rl"]
},
"application/resource-lists-diff+xml": {
source: "iana",
compressible: true,
extensions: ["rld"]
},
"application/rfc+xml": {
source: "iana",
compressible: true
},
"application/riscos": {
source: "iana"
},
"application/rlmi+xml": {
source: "iana",
compressible: true
},
"application/rls-services+xml": {
source: "iana",
compressible: true,
extensions: ["rs"]
},
"application/route-apd+xml": {
source: "iana",
compressible: true,
extensions: ["rapd"]
},
"application/route-s-tsid+xml": {
source: "iana",
compressible: true,
extensions: ["sls"]
},
"application/route-usd+xml": {
source: "iana",
compressible: true,
extensions: ["rusd"]
},
"application/rpki-checklist": {
source: "iana"
},
"application/rpki-ghostbusters": {
source: "iana",
extensions: ["gbr"]
},
"application/rpki-manifest": {
source: "iana",
extensions: ["mft"]
},
"application/rpki-publication": {
source: "iana"
},
"application/rpki-roa": {
source: "iana",
extensions: ["roa"]
},
"application/rpki-signed-tal": {
source: "iana"
},
"application/rpki-updown": {
source: "iana"
},
"application/rsd+xml": {
source: "apache",
compressible: true,
extensions: ["rsd"]
},
"application/rss+xml": {
source: "apache",
compressible: true,
extensions: ["rss"]
},
"application/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"application/rtploopback": {
source: "iana"
},
"application/rtx": {
source: "iana"
},
"application/samlassertion+xml": {
source: "iana",
compressible: true
},
"application/samlmetadata+xml": {
source: "iana",
compressible: true
},
"application/sarif+json": {
source: "iana",
compressible: true
},
"application/sarif-external-properties+json": {
source: "iana",
compressible: true
},
"application/sbe": {
source: "iana"
},
"application/sbml+xml": {
source: "iana",
compressible: true,
extensions: ["sbml"]
},
"application/scaip+xml": {
source: "iana",
compressible: true
},
"application/scim+json": {
source: "iana",
compressible: true
},
"application/scvp-cv-request": {
source: "iana",
extensions: ["scq"]
},
"application/scvp-cv-response": {
source: "iana",
extensions: ["scs"]
},
"application/scvp-vp-request": {
source: "iana",
extensions: ["spq"]
},
"application/scvp-vp-response": {
source: "iana",
extensions: ["spp"]
},
"application/sdp": {
source: "iana",
extensions: ["sdp"]
},
"application/secevent+jwt": {
source: "iana"
},
"application/senml+cbor": {
source: "iana"
},
"application/senml+json": {
source: "iana",
compressible: true
},
"application/senml+xml": {
source: "iana",
compressible: true,
extensions: ["senmlx"]
},
"application/senml-etch+cbor": {
source: "iana"
},
"application/senml-etch+json": {
source: "iana",
compressible: true
},
"application/senml-exi": {
source: "iana"
},
"application/sensml+cbor": {
source: "iana"
},
"application/sensml+json": {
source: "iana",
compressible: true
},
"application/sensml+xml": {
source: "iana",
compressible: true,
extensions: ["sensmlx"]
},
"application/sensml-exi": {
source: "iana"
},
"application/sep+xml": {
source: "iana",
compressible: true
},
"application/sep-exi": {
source: "iana"
},
"application/session-info": {
source: "iana"
},
"application/set-payment": {
source: "iana"
},
"application/set-payment-initiation": {
source: "iana",
extensions: ["setpay"]
},
"application/set-registration": {
source: "iana"
},
"application/set-registration-initiation": {
source: "iana",
extensions: ["setreg"]
},
"application/sgml": {
source: "iana"
},
"application/sgml-open-catalog": {
source: "iana"
},
"application/shf+xml": {
source: "iana",
compressible: true,
extensions: ["shf"]
},
"application/sieve": {
source: "iana",
extensions: ["siv", "sieve"]
},
"application/simple-filter+xml": {
source: "iana",
compressible: true
},
"application/simple-message-summary": {
source: "iana"
},
"application/simplesymbolcontainer": {
source: "iana"
},
"application/sipc": {
source: "iana"
},
"application/slate": {
source: "iana"
},
"application/smil": {
source: "apache"
},
"application/smil+xml": {
source: "iana",
compressible: true,
extensions: ["smi", "smil"]
},
"application/smpte336m": {
source: "iana"
},
"application/soap+fastinfoset": {
source: "iana"
},
"application/soap+xml": {
source: "iana",
compressible: true
},
"application/sparql-query": {
source: "iana",
extensions: ["rq"]
},
"application/sparql-results+xml": {
source: "iana",
compressible: true,
extensions: ["srx"]
},
"application/spdx+json": {
source: "iana",
compressible: true
},
"application/spirits-event+xml": {
source: "iana",
compressible: true
},
"application/sql": {
source: "iana",
extensions: ["sql"]
},
"application/srgs": {
source: "iana",
extensions: ["gram"]
},
"application/srgs+xml": {
source: "iana",
compressible: true,
extensions: ["grxml"]
},
"application/sru+xml": {
source: "iana",
compressible: true,
extensions: ["sru"]
},
"application/ssdl+xml": {
source: "apache",
compressible: true,
extensions: ["ssdl"]
},
"application/sslkeylogfile": {
source: "iana"
},
"application/ssml+xml": {
source: "iana",
compressible: true,
extensions: ["ssml"]
},
"application/st2110-41": {
source: "iana"
},
"application/stix+json": {
source: "iana",
compressible: true
},
"application/stratum": {
source: "iana"
},
"application/swid+cbor": {
source: "iana"
},
"application/swid+xml": {
source: "iana",
compressible: true,
extensions: ["swidtag"]
},
"application/tamp-apex-update": {
source: "iana"
},
"application/tamp-apex-update-confirm": {
source: "iana"
},
"application/tamp-community-update": {
source: "iana"
},
"application/tamp-community-update-confirm": {
source: "iana"
},
"application/tamp-error": {
source: "iana"
},
"application/tamp-sequence-adjust": {
source: "iana"
},
"application/tamp-sequence-adjust-confirm": {
source: "iana"
},
"application/tamp-status-query": {
source: "iana"
},
"application/tamp-status-response": {
source: "iana"
},
"application/tamp-update": {
source: "iana"
},
"application/tamp-update-confirm": {
source: "iana"
},
"application/tar": {
compressible: true
},
"application/taxii+json": {
source: "iana",
compressible: true
},
"application/td+json": {
source: "iana",
compressible: true
},
"application/tei+xml": {
source: "iana",
compressible: true,
extensions: ["tei", "teicorpus"]
},
"application/tetra_isi": {
source: "iana"
},
"application/thraud+xml": {
source: "iana",
compressible: true,
extensions: ["tfi"]
},
"application/timestamp-query": {
source: "iana"
},
"application/timestamp-reply": {
source: "iana"
},
"application/timestamped-data": {
source: "iana",
extensions: ["tsd"]
},
"application/tlsrpt+gzip": {
source: "iana"
},
"application/tlsrpt+json": {
source: "iana",
compressible: true
},
"application/tm+json": {
source: "iana",
compressible: true
},
"application/tnauthlist": {
source: "iana"
},
"application/toc+cbor": {
source: "iana"
},
"application/token-introspection+jwt": {
source: "iana"
},
"application/toml": {
source: "iana",
compressible: true,
extensions: ["toml"]
},
"application/trickle-ice-sdpfrag": {
source: "iana"
},
"application/trig": {
source: "iana",
extensions: ["trig"]
},
"application/trust-chain+json": {
source: "iana",
compressible: true
},
"application/trust-mark+jwt": {
source: "iana"
},
"application/trust-mark-delegation+jwt": {
source: "iana"
},
"application/ttml+xml": {
source: "iana",
compressible: true,
extensions: ["ttml"]
},
"application/tve-trigger": {
source: "iana"
},
"application/tzif": {
source: "iana"
},
"application/tzif-leap": {
source: "iana"
},
"application/ubjson": {
compressible: false,
extensions: ["ubj"]
},
"application/uccs+cbor": {
source: "iana"
},
"application/ujcs+json": {
source: "iana",
compressible: true
},
"application/ulpfec": {
source: "iana"
},
"application/urc-grpsheet+xml": {
source: "iana",
compressible: true
},
"application/urc-ressheet+xml": {
source: "iana",
compressible: true,
extensions: ["rsheet"]
},
"application/urc-targetdesc+xml": {
source: "iana",
compressible: true,
extensions: ["td"]
},
"application/urc-uisocketdesc+xml": {
source: "iana",
compressible: true
},
"application/vc": {
source: "iana"
},
"application/vc+cose": {
source: "iana"
},
"application/vc+jwt": {
source: "iana"
},
"application/vcard+json": {
source: "iana",
compressible: true
},
"application/vcard+xml": {
source: "iana",
compressible: true
},
"application/vemmi": {
source: "iana"
},
"application/vividence.scriptfile": {
source: "apache"
},
"application/vnd.1000minds.decision-model+xml": {
source: "iana",
compressible: true,
extensions: ["1km"]
},
"application/vnd.1ob": {
source: "iana"
},
"application/vnd.3gpp-prose+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3a+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ach+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ch+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc8+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-v2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gnas": {
source: "iana"
},
"application/vnd.3gpp.5gsa2x": {
source: "iana"
},
"application/vnd.3gpp.5gsa2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gsv2x": {
source: "iana"
},
"application/vnd.3gpp.5gsv2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.access-transfer-events+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.bsf+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.crs+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.current-location-discovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gmop+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gtpc": {
source: "iana"
},
"application/vnd.3gpp.interworking-data": {
source: "iana"
},
"application/vnd.3gpp.lpp": {
source: "iana"
},
"application/vnd.3gpp.mc-signalling-ear": {
source: "iana"
},
"application/vnd.3gpp.mcdata-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-payload": {
source: "iana"
},
"application/vnd.3gpp.mcdata-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-signalling": {
source: "iana"
},
"application/vnd.3gpp.mcdata-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-floor-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-signed+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-init-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-transmission-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mid-call+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ngap": {
source: "iana"
},
"application/vnd.3gpp.pfcp": {
source: "iana"
},
"application/vnd.3gpp.pic-bw-large": {
source: "iana",
extensions: ["plb"]
},
"application/vnd.3gpp.pic-bw-small": {
source: "iana",
extensions: ["psb"]
},
"application/vnd.3gpp.pic-bw-var": {
source: "iana",
extensions: ["pvb"]
},
"application/vnd.3gpp.pinapp-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.s1ap": {
source: "iana"
},
"application/vnd.3gpp.seal-group-doc+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-network-qos-management-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-ue-config-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-unicast-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-user-profile-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.sms": {
source: "iana"
},
"application/vnd.3gpp.sms+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-ext+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.state-and-event-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ussd+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.v2x": {
source: "iana"
},
"application/vnd.3gpp.vae-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.bcmcsinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.sms": {
source: "iana"
},
"application/vnd.3gpp2.tcap": {
source: "iana",
extensions: ["tcap"]
},
"application/vnd.3lightssoftware.imagescal": {
source: "iana"
},
"application/vnd.3m.post-it-notes": {
source: "iana",
extensions: ["pwn"]
},
"application/vnd.accpac.simply.aso": {
source: "iana",
extensions: ["aso"]
},
"application/vnd.accpac.simply.imp": {
source: "iana",
extensions: ["imp"]
},
"application/vnd.acm.addressxfer+json": {
source: "iana",
compressible: true
},
"application/vnd.acm.chatbot+json": {
source: "iana",
compressible: true
},
"application/vnd.acucobol": {
source: "iana",
extensions: ["acu"]
},
"application/vnd.acucorp": {
source: "iana",
extensions: ["atc", "acutc"]
},
"application/vnd.adobe.air-application-installer-package+zip": {
source: "apache",
compressible: false,
extensions: ["air"]
},
"application/vnd.adobe.flash.movie": {
source: "iana"
},
"application/vnd.adobe.formscentral.fcdt": {
source: "iana",
extensions: ["fcdt"]
},
"application/vnd.adobe.fxp": {
source: "iana",
extensions: ["fxp", "fxpl"]
},
"application/vnd.adobe.partial-upload": {
source: "iana"
},
"application/vnd.adobe.xdp+xml": {
source: "iana",
compressible: true,
extensions: ["xdp"]
},
"application/vnd.adobe.xfdf": {
source: "apache",
extensions: ["xfdf"]
},
"application/vnd.aether.imp": {
source: "iana"
},
"application/vnd.afpc.afplinedata": {
source: "iana"
},
"application/vnd.afpc.afplinedata-pagedef": {
source: "iana"
},
"application/vnd.afpc.cmoca-cmresource": {
source: "iana"
},
"application/vnd.afpc.foca-charset": {
source: "iana"
},
"application/vnd.afpc.foca-codedfont": {
source: "iana"
},
"application/vnd.afpc.foca-codepage": {
source: "iana"
},
"application/vnd.afpc.modca": {
source: "iana"
},
"application/vnd.afpc.modca-cmtable": {
source: "iana"
},
"application/vnd.afpc.modca-formdef": {
source: "iana"
},
"application/vnd.afpc.modca-mediummap": {
source: "iana"
},
"application/vnd.afpc.modca-objectcontainer": {
source: "iana"
},
"application/vnd.afpc.modca-overlay": {
source: "iana"
},
"application/vnd.afpc.modca-pagesegment": {
source: "iana"
},
"application/vnd.age": {
source: "iana",
extensions: ["age"]
},
"application/vnd.ah-barcode": {
source: "apache"
},
"application/vnd.ahead.space": {
source: "iana",
extensions: ["ahead"]
},
"application/vnd.airzip.filesecure.azf": {
source: "iana",
extensions: ["azf"]
},
"application/vnd.airzip.filesecure.azs": {
source: "iana",
extensions: ["azs"]
},
"application/vnd.amadeus+json": {
source: "iana",
compressible: true
},
"application/vnd.amazon.ebook": {
source: "apache",
extensions: ["azw"]
},
"application/vnd.amazon.mobi8-ebook": {
source: "iana"
},
"application/vnd.americandynamics.acc": {
source: "iana",
extensions: ["acc"]
},
"application/vnd.amiga.ami": {
source: "iana",
extensions: ["ami"]
},
"application/vnd.amundsen.maze+xml": {
source: "iana",
compressible: true
},
"application/vnd.android.ota": {
source: "iana"
},
"application/vnd.android.package-archive": {
source: "apache",
compressible: false,
extensions: ["apk"]
},
"application/vnd.anki": {
source: "iana"
},
"application/vnd.anser-web-certificate-issue-initiation": {
source: "iana",
extensions: ["cii"]
},
"application/vnd.anser-web-funds-transfer-initiation": {
source: "apache",
extensions: ["fti"]
},
"application/vnd.antix.game-component": {
source: "iana",
extensions: ["atx"]
},
"application/vnd.apache.arrow.file": {
source: "iana"
},
"application/vnd.apache.arrow.stream": {
source: "iana"
},
"application/vnd.apache.parquet": {
source: "iana"
},
"application/vnd.apache.thrift.binary": {
source: "iana"
},
"application/vnd.apache.thrift.compact": {
source: "iana"
},
"application/vnd.apache.thrift.json": {
source: "iana"
},
"application/vnd.apexlang": {
source: "iana"
},
"application/vnd.api+json": {
source: "iana",
compressible: true
},
"application/vnd.aplextor.warrp+json": {
source: "iana",
compressible: true
},
"application/vnd.apothekende.reservation+json": {
source: "iana",
compressible: true
},
"application/vnd.apple.installer+xml": {
source: "iana",
compressible: true,
extensions: ["mpkg"]
},
"application/vnd.apple.keynote": {
source: "iana",
extensions: ["key"]
},
"application/vnd.apple.mpegurl": {
source: "iana",
extensions: ["m3u8"]
},
"application/vnd.apple.numbers": {
source: "iana",
extensions: ["numbers"]
},
"application/vnd.apple.pages": {
source: "iana",
extensions: ["pages"]
},
"application/vnd.apple.pkpass": {
compressible: false,
extensions: ["pkpass"]
},
"application/vnd.arastra.swi": {
source: "apache"
},
"application/vnd.aristanetworks.swi": {
source: "iana",
extensions: ["swi"]
},
"application/vnd.artisan+json": {
source: "iana",
compressible: true
},
"application/vnd.artsquare": {
source: "iana"
},
"application/vnd.astraea-software.iota": {
source: "iana",
extensions: ["iota"]
},
"application/vnd.audiograph": {
source: "iana",
extensions: ["aep"]
},
"application/vnd.autodesk.fbx": {
extensions: ["fbx"]
},
"application/vnd.autopackage": {
source: "iana"
},
"application/vnd.avalon+json": {
source: "iana",
compressible: true
},
"application/vnd.avistar+xml": {
source: "iana",
compressible: true
},
"application/vnd.balsamiq.bmml+xml": {
source: "iana",
compressible: true,
extensions: ["bmml"]
},
"application/vnd.balsamiq.bmpr": {
source: "iana"
},
"application/vnd.banana-accounting": {
source: "iana"
},
"application/vnd.bbf.usp.error": {
source: "iana"
},
"application/vnd.bbf.usp.msg": {
source: "iana"
},
"application/vnd.bbf.usp.msg+json": {
source: "iana",
compressible: true
},
"application/vnd.bekitzur-stech+json": {
source: "iana",
compressible: true
},
"application/vnd.belightsoft.lhzd+zip": {
source: "iana",
compressible: false
},
"application/vnd.belightsoft.lhzl+zip": {
source: "iana",
compressible: false
},
"application/vnd.bint.med-content": {
source: "iana"
},
"application/vnd.biopax.rdf+xml": {
source: "iana",
compressible: true
},
"application/vnd.blink-idb-value-wrapper": {
source: "iana"
},
"application/vnd.blueice.multipass": {
source: "iana",
extensions: ["mpm"]
},
"application/vnd.bluetooth.ep.oob": {
source: "iana"
},
"application/vnd.bluetooth.le.oob": {
source: "iana"
},
"application/vnd.bmi": {
source: "iana",
extensions: ["bmi"]
},
"application/vnd.bpf": {
source: "iana"
},
"application/vnd.bpf3": {
source: "iana"
},
"application/vnd.businessobjects": {
source: "iana",
extensions: ["rep"]
},
"application/vnd.byu.uapi+json": {
source: "iana",
compressible: true
},
"application/vnd.bzip3": {
source: "iana"
},
"application/vnd.c3voc.schedule+xml": {
source: "iana",
compressible: true
},
"application/vnd.cab-jscript": {
source: "iana"
},
"application/vnd.canon-cpdl": {
source: "iana"
},
"application/vnd.canon-lips": {
source: "iana"
},
"application/vnd.capasystems-pg+json": {
source: "iana",
compressible: true
},
"application/vnd.cendio.thinlinc.clientconf": {
source: "iana"
},
"application/vnd.century-systems.tcp_stream": {
source: "iana"
},
"application/vnd.chemdraw+xml": {
source: "iana",
compressible: true,
extensions: ["cdxml"]
},
"application/vnd.chess-pgn": {
source: "iana"
},
"application/vnd.chipnuts.karaoke-mmd": {
source: "iana",
extensions: ["mmd"]
},
"application/vnd.ciedi": {
source: "iana"
},
"application/vnd.cinderella": {
source: "iana",
extensions: ["cdy"]
},
"application/vnd.cirpack.isdn-ext": {
source: "iana"
},
"application/vnd.citationstyles.style+xml": {
source: "iana",
compressible: true,
extensions: ["csl"]
},
"application/vnd.claymore": {
source: "iana",
extensions: ["cla"]
},
"application/vnd.cloanto.rp9": {
source: "iana",
extensions: ["rp9"]
},
"application/vnd.clonk.c4group": {
source: "iana",
extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"]
},
"application/vnd.cluetrust.cartomobile-config": {
source: "iana",
extensions: ["c11amc"]
},
"application/vnd.cluetrust.cartomobile-config-pkg": {
source: "iana",
extensions: ["c11amz"]
},
"application/vnd.cncf.helm.chart.content.v1.tar+gzip": {
source: "iana"
},
"application/vnd.cncf.helm.chart.provenance.v1.prov": {
source: "iana"
},
"application/vnd.cncf.helm.config.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.coffeescript": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet-template": {
source: "iana"
},
"application/vnd.collection+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.doc+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.next+json": {
source: "iana",
compressible: true
},
"application/vnd.comicbook+zip": {
source: "iana",
compressible: false
},
"application/vnd.comicbook-rar": {
source: "iana"
},
"application/vnd.commerce-battelle": {
source: "iana"
},
"application/vnd.commonspace": {
source: "iana",
extensions: ["csp"]
},
"application/vnd.contact.cmsg": {
source: "iana",
extensions: ["cdbcmsg"]
},
"application/vnd.coreos.ignition+json": {
source: "iana",
compressible: true
},
"application/vnd.cosmocaller": {
source: "iana",
extensions: ["cmc"]
},
"application/vnd.crick.clicker": {
source: "iana",
extensions: ["clkx"]
},
"application/vnd.crick.clicker.keyboard": {
source: "iana",
extensions: ["clkk"]
},
"application/vnd.crick.clicker.palette": {
source: "iana",
extensions: ["clkp"]
},
"application/vnd.crick.clicker.template": {
source: "iana",
extensions: ["clkt"]
},
"application/vnd.crick.clicker.wordbank": {
source: "iana",
extensions: ["clkw"]
},
"application/vnd.criticaltools.wbs+xml": {
source: "iana",
compressible: true,
extensions: ["wbs"]
},
"application/vnd.cryptii.pipe+json": {
source: "iana",
compressible: true
},
"application/vnd.crypto-shade-file": {
source: "iana"
},
"application/vnd.cryptomator.encrypted": {
source: "iana"
},
"application/vnd.cryptomator.vault": {
source: "iana"
},
"application/vnd.ctc-posml": {
source: "iana",
extensions: ["pml"]
},
"application/vnd.ctct.ws+xml": {
source: "iana",
compressible: true
},
"application/vnd.cups-pdf": {
source: "iana"
},
"application/vnd.cups-postscript": {
source: "iana"
},
"application/vnd.cups-ppd": {
source: "iana",
extensions: ["ppd"]
},
"application/vnd.cups-raster": {
source: "iana"
},
"application/vnd.cups-raw": {
source: "iana"
},
"application/vnd.curl": {
source: "iana"
},
"application/vnd.curl.car": {
source: "apache",
extensions: ["car"]
},
"application/vnd.curl.pcurl": {
source: "apache",
extensions: ["pcurl"]
},
"application/vnd.cyan.dean.root+xml": {
source: "iana",
compressible: true
},
"application/vnd.cybank": {
source: "iana"
},
"application/vnd.cyclonedx+json": {
source: "iana",
compressible: true
},
"application/vnd.cyclonedx+xml": {
source: "iana",
compressible: true
},
"application/vnd.d2l.coursepackage1p0+zip": {
source: "iana",
compressible: false
},
"application/vnd.d3m-dataset": {
source: "iana"
},
"application/vnd.d3m-problem": {
source: "iana"
},
"application/vnd.dart": {
source: "iana",
compressible: true,
extensions: ["dart"]
},
"application/vnd.data-vision.rdz": {
source: "iana",
extensions: ["rdz"]
},
"application/vnd.datalog": {
source: "iana"
},
"application/vnd.datapackage+json": {
source: "iana",
compressible: true
},
"application/vnd.dataresource+json": {
source: "iana",
compressible: true
},
"application/vnd.dbf": {
source: "iana",
extensions: ["dbf"]
},
"application/vnd.dcmp+xml": {
source: "iana",
compressible: true,
extensions: ["dcmp"]
},
"application/vnd.debian.binary-package": {
source: "iana"
},
"application/vnd.dece.data": {
source: "iana",
extensions: ["uvf", "uvvf", "uvd", "uvvd"]
},
"application/vnd.dece.ttml+xml": {
source: "iana",
compressible: true,
extensions: ["uvt", "uvvt"]
},
"application/vnd.dece.unspecified": {
source: "iana",
extensions: ["uvx", "uvvx"]
},
"application/vnd.dece.zip": {
source: "iana",
extensions: ["uvz", "uvvz"]
},
"application/vnd.denovo.fcselayout-link": {
source: "iana",
extensions: ["fe_launch"]
},
"application/vnd.desmume.movie": {
source: "iana"
},
"application/vnd.dir-bi.plate-dl-nosuffix": {
source: "iana"
},
"application/vnd.dm.delegation+xml": {
source: "iana",
compressible: true
},
"application/vnd.dna": {
source: "iana",
extensions: ["dna"]
},
"application/vnd.document+json": {
source: "iana",
compressible: true
},
"application/vnd.dolby.mlp": {
source: "apache",
extensions: ["mlp"]
},
"application/vnd.dolby.mobile.1": {
source: "iana"
},
"application/vnd.dolby.mobile.2": {
source: "iana"
},
"application/vnd.doremir.scorecloud-binary-document": {
source: "iana"
},
"application/vnd.dpgraph": {
source: "iana",
extensions: ["dpg"]
},
"application/vnd.dreamfactory": {
source: "iana",
extensions: ["dfac"]
},
"application/vnd.drive+json": {
source: "iana",
compressible: true
},
"application/vnd.ds-keypoint": {
source: "apache",
extensions: ["kpxx"]
},
"application/vnd.dtg.local": {
source: "iana"
},
"application/vnd.dtg.local.flash": {
source: "iana"
},
"application/vnd.dtg.local.html": {
source: "iana"
},
"application/vnd.dvb.ait": {
source: "iana",
extensions: ["ait"]
},
"application/vnd.dvb.dvbisl+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.dvbj": {
source: "iana"
},
"application/vnd.dvb.esgcontainer": {
source: "iana"
},
"application/vnd.dvb.ipdcdftnotifaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess2": {
source: "iana"
},
"application/vnd.dvb.ipdcesgpdd": {
source: "iana"
},
"application/vnd.dvb.ipdcroaming": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-base": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-enhancement": {
source: "iana"
},
"application/vnd.dvb.notif-aggregate-root+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-container+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-generic+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-msglist+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-response+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-init+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.pfr": {
source: "iana"
},
"application/vnd.dvb.service": {
source: "iana",
extensions: ["svc"]
},
"application/vnd.dxr": {
source: "iana"
},
"application/vnd.dynageo": {
source: "iana",
extensions: ["geo"]
},
"application/vnd.dzr": {
source: "iana"
},
"application/vnd.easykaraoke.cdgdownload": {
source: "iana"
},
"application/vnd.ecdis-update": {
source: "iana"
},
"application/vnd.ecip.rlp": {
source: "iana"
},
"application/vnd.eclipse.ditto+json": {
source: "iana",
compressible: true
},
"application/vnd.ecowin.chart": {
source: "iana",
extensions: ["mag"]
},
"application/vnd.ecowin.filerequest": {
source: "iana"
},
"application/vnd.ecowin.fileupdate": {
source: "iana"
},
"application/vnd.ecowin.series": {
source: "iana"
},
"application/vnd.ecowin.seriesrequest": {
source: "iana"
},
"application/vnd.ecowin.seriesupdate": {
source: "iana"
},
"application/vnd.efi.img": {
source: "iana"
},
"application/vnd.efi.iso": {
source: "iana"
},
"application/vnd.eln+zip": {
source: "iana",
compressible: false
},
"application/vnd.emclient.accessrequest+xml": {
source: "iana",
compressible: true
},
"application/vnd.enliven": {
source: "iana",
extensions: ["nml"]
},
"application/vnd.enphase.envoy": {
source: "iana"
},
"application/vnd.eprints.data+xml": {
source: "iana",
compressible: true
},
"application/vnd.epson.esf": {
source: "iana",
extensions: ["esf"]
},
"application/vnd.epson.msf": {
source: "iana",
extensions: ["msf"]
},
"application/vnd.epson.quickanime": {
source: "iana",
extensions: ["qam"]
},
"application/vnd.epson.salt": {
source: "iana",
extensions: ["slt"]
},
"application/vnd.epson.ssf": {
source: "iana",
extensions: ["ssf"]
},
"application/vnd.ericsson.quickcall": {
source: "iana"
},
"application/vnd.erofs": {
source: "iana"
},
"application/vnd.espass-espass+zip": {
source: "iana",
compressible: false
},
"application/vnd.eszigno3+xml": {
source: "iana",
compressible: true,
extensions: ["es3", "et3"]
},
"application/vnd.etsi.aoc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.asic-e+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.asic-s+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.cug+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvcommand+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-bc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-cod+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-npvr+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvservice+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsync+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mcid+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mheg5": {
source: "iana"
},
"application/vnd.etsi.overload-control-policy-dataset+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.pstn+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.sci+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.simservs+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.timestamp-token": {
source: "iana"
},
"application/vnd.etsi.tsl+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.tsl.der": {
source: "iana"
},
"application/vnd.eu.kasparian.car+json": {
source: "iana",
compressible: true
},
"application/vnd.eudora.data": {
source: "iana"
},
"application/vnd.evolv.ecig.profile": {
source: "iana"
},
"application/vnd.evolv.ecig.settings": {
source: "iana"
},
"application/vnd.evolv.ecig.theme": {
source: "iana"
},
"application/vnd.exstream-empower+zip": {
source: "iana",
compressible: false
},
"application/vnd.exstream-package": {
source: "iana"
},
"application/vnd.ezpix-album": {
source: "iana",
extensions: ["ez2"]
},
"application/vnd.ezpix-package": {
source: "iana",
extensions: ["ez3"]
},
"application/vnd.f-secure.mobile": {
source: "iana"
},
"application/vnd.familysearch.gedcom+zip": {
source: "iana",
compressible: false
},
"application/vnd.fastcopy-disk-image": {
source: "iana"
},
"application/vnd.fdf": {
source: "apache",
extensions: ["fdf"]
},
"application/vnd.fdsn.mseed": {
source: "iana",
extensions: ["mseed"]
},
"application/vnd.fdsn.seed": {
source: "iana",
extensions: ["seed", "dataless"]
},
"application/vnd.fdsn.stationxml+xml": {
source: "iana",
charset: "XML-BASED",
compressible: true
},
"application/vnd.ffsns": {
source: "iana"
},
"application/vnd.ficlab.flb+zip": {
source: "iana",
compressible: false
},
"application/vnd.filmit.zfc": {
source: "iana"
},
"application/vnd.fints": {
source: "iana"
},
"application/vnd.firemonkeys.cloudcell": {
source: "iana"
},
"application/vnd.flographit": {
source: "iana",
extensions: ["gph"]
},
"application/vnd.fluxtime.clip": {
source: "iana",
extensions: ["ftc"]
},
"application/vnd.font-fontforge-sfd": {
source: "iana"
},
"application/vnd.framemaker": {
source: "iana",
extensions: ["fm", "frame", "maker", "book"]
},
"application/vnd.freelog.comic": {
source: "iana"
},
"application/vnd.frogans.fnc": {
source: "apache",
extensions: ["fnc"]
},
"application/vnd.frogans.ltf": {
source: "apache",
extensions: ["ltf"]
},
"application/vnd.fsc.weblaunch": {
source: "iana",
extensions: ["fsc"]
},
"application/vnd.fujifilm.fb.docuworks": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.binder": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.container": {
source: "iana"
},
"application/vnd.fujifilm.fb.jfi+xml": {
source: "iana",
compressible: true
},
"application/vnd.fujitsu.oasys": {
source: "iana",
extensions: ["oas"]
},
"application/vnd.fujitsu.oasys2": {
source: "iana",
extensions: ["oa2"]
},
"application/vnd.fujitsu.oasys3": {
source: "iana",
extensions: ["oa3"]
},
"application/vnd.fujitsu.oasysgp": {
source: "iana",
extensions: ["fg5"]
},
"application/vnd.fujitsu.oasysprs": {
source: "iana",
extensions: ["bh2"]
},
"application/vnd.fujixerox.art-ex": {
source: "iana"
},
"application/vnd.fujixerox.art4": {
source: "iana"
},
"application/vnd.fujixerox.ddd": {
source: "iana",
extensions: ["ddd"]
},
"application/vnd.fujixerox.docuworks": {
source: "iana",
extensions: ["xdw"]
},
"application/vnd.fujixerox.docuworks.binder": {
source: "iana",
extensions: ["xbd"]
},
"application/vnd.fujixerox.docuworks.container": {
source: "iana"
},
"application/vnd.fujixerox.hbpl": {
source: "iana"
},
"application/vnd.fut-misnet": {
source: "iana"
},
"application/vnd.futoin+cbor": {
source: "iana"
},
"application/vnd.futoin+json": {
source: "iana",
compressible: true
},
"application/vnd.fuzzysheet": {
source: "iana",
extensions: ["fzs"]
},
"application/vnd.ga4gh.passport+jwt": {
source: "iana"
},
"application/vnd.genomatix.tuxedo": {
source: "iana",
extensions: ["txd"]
},
"application/vnd.genozip": {
source: "iana"
},
"application/vnd.gentics.grd+json": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.catmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.ebuild": {
source: "iana"
},
"application/vnd.gentoo.eclass": {
source: "iana"
},
"application/vnd.gentoo.gpkg": {
source: "iana"
},
"application/vnd.gentoo.manifest": {
source: "iana"
},
"application/vnd.gentoo.pkgmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.xpak": {
source: "iana"
},
"application/vnd.geo+json": {
source: "apache",
compressible: true
},
"application/vnd.geocube+xml": {
source: "apache",
compressible: true
},
"application/vnd.geogebra.file": {
source: "iana",
extensions: ["ggb"]
},
"application/vnd.geogebra.pinboard": {
source: "iana"
},
"application/vnd.geogebra.slides": {
source: "iana",
extensions: ["ggs"]
},
"application/vnd.geogebra.tool": {
source: "iana",
extensions: ["ggt"]
},
"application/vnd.geometry-explorer": {
source: "iana",
extensions: ["gex", "gre"]
},
"application/vnd.geonext": {
source: "iana",
extensions: ["gxt"]
},
"application/vnd.geoplan": {
source: "iana",
extensions: ["g2w"]
},
"application/vnd.geospace": {
source: "iana",
extensions: ["g3w"]
},
"application/vnd.gerber": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt-response": {
source: "iana"
},
"application/vnd.gmx": {
source: "iana",
extensions: ["gmx"]
},
"application/vnd.gnu.taler.exchange+json": {
source: "iana",
compressible: true
},
"application/vnd.gnu.taler.merchant+json": {
source: "iana",
compressible: true
},
"application/vnd.google-apps.audio": {},
"application/vnd.google-apps.document": {
compressible: false,
extensions: ["gdoc"]
},
"application/vnd.google-apps.drawing": {
compressible: false,
extensions: ["gdraw"]
},
"application/vnd.google-apps.drive-sdk": {
compressible: false
},
"application/vnd.google-apps.file": {},
"application/vnd.google-apps.folder": {
compressible: false
},
"application/vnd.google-apps.form": {
compressible: false,
extensions: ["gform"]
},
"application/vnd.google-apps.fusiontable": {},
"application/vnd.google-apps.jam": {
compressible: false,
extensions: ["gjam"]
},
"application/vnd.google-apps.mail-layout": {},
"application/vnd.google-apps.map": {
compressible: false,
extensions: ["gmap"]
},
"application/vnd.google-apps.photo": {},
"application/vnd.google-apps.presentation": {
compressible: false,
extensions: ["gslides"]
},
"application/vnd.google-apps.script": {
compressible: false,
extensions: ["gscript"]
},
"application/vnd.google-apps.shortcut": {},
"application/vnd.google-apps.site": {
compressible: false,
extensions: ["gsite"]
},
"application/vnd.google-apps.spreadsheet": {
compressible: false,
extensions: ["gsheet"]
},
"application/vnd.google-apps.unknown": {},
"application/vnd.google-apps.video": {},
"application/vnd.google-earth.kml+xml": {
source: "iana",
compressible: true,
extensions: ["kml"]
},
"application/vnd.google-earth.kmz": {
source: "iana",
compressible: false,
extensions: ["kmz"]
},
"application/vnd.gov.sk.e-form+xml": {
source: "apache",
compressible: true
},
"application/vnd.gov.sk.e-form+zip": {
source: "iana",
compressible: false
},
"application/vnd.gov.sk.xmldatacontainer+xml": {
source: "iana",
compressible: true,
extensions: ["xdcf"]
},
"application/vnd.gpxsee.map+xml": {
source: "iana",
compressible: true
},
"application/vnd.grafeq": {
source: "iana",
extensions: ["gqf", "gqs"]
},
"application/vnd.gridmp": {
source: "iana"
},
"application/vnd.groove-account": {
source: "iana",
extensions: ["gac"]
},
"application/vnd.groove-help": {
source: "iana",
extensions: ["ghf"]
},
"application/vnd.groove-identity-message": {
source: "iana",
extensions: ["gim"]
},
"application/vnd.groove-injector": {
source: "iana",
extensions: ["grv"]
},
"application/vnd.groove-tool-message": {
source: "iana",
extensions: ["gtm"]
},
"application/vnd.groove-tool-template": {
source: "iana",
extensions: ["tpl"]
},
"application/vnd.groove-vcard": {
source: "iana",
extensions: ["vcg"]
},
"application/vnd.hal+json": {
source: "iana",
compressible: true
},
"application/vnd.hal+xml": {
source: "iana",
compressible: true,
extensions: ["hal"]
},
"application/vnd.handheld-entertainment+xml": {
source: "iana",
compressible: true,
extensions: ["zmm"]
},
"application/vnd.hbci": {
source: "iana",
extensions: ["hbci"]
},
"application/vnd.hc+json": {
source: "iana",
compressible: true
},
"application/vnd.hcl-bireports": {
source: "iana"
},
"application/vnd.hdt": {
source: "iana"
},
"application/vnd.heroku+json": {
source: "iana",
compressible: true
},
"application/vnd.hhe.lesson-player": {
source: "iana",
extensions: ["les"]
},
"application/vnd.hp-hpgl": {
source: "iana",
extensions: ["hpgl"]
},
"application/vnd.hp-hpid": {
source: "iana",
extensions: ["hpid"]
},
"application/vnd.hp-hps": {
source: "iana",
extensions: ["hps"]
},
"application/vnd.hp-jlyt": {
source: "iana",
extensions: ["jlt"]
},
"application/vnd.hp-pcl": {
source: "iana",
extensions: ["pcl"]
},
"application/vnd.hp-pclxl": {
source: "iana",
extensions: ["pclxl"]
},
"application/vnd.hsl": {
source: "iana"
},
"application/vnd.httphone": {
source: "iana"
},
"application/vnd.hydrostatix.sof-data": {
source: "iana",
extensions: ["sfd-hdstx"]
},
"application/vnd.hyper+json": {
source: "iana",
compressible: true
},
"application/vnd.hyper-item+json": {
source: "iana",
compressible: true
},
"application/vnd.hyperdrive+json": {
source: "iana",
compressible: true
},
"application/vnd.hzn-3d-crossword": {
source: "iana"
},
"application/vnd.ibm.afplinedata": {
source: "apache"
},
"application/vnd.ibm.electronic-media": {
source: "iana"
},
"application/vnd.ibm.minipay": {
source: "iana",
extensions: ["mpy"]
},
"application/vnd.ibm.modcap": {
source: "apache",
extensions: ["afp", "listafp", "list3820"]
},
"application/vnd.ibm.rights-management": {
source: "iana",
extensions: ["irm"]
},
"application/vnd.ibm.secure-container": {
source: "iana",
extensions: ["sc"]
},
"application/vnd.iccprofile": {
source: "iana",
extensions: ["icc", "icm"]
},
"application/vnd.ieee.1905": {
source: "iana"
},
"application/vnd.igloader": {
source: "iana",
extensions: ["igl"]
},
"application/vnd.imagemeter.folder+zip": {
source: "iana",
compressible: false
},
"application/vnd.imagemeter.image+zip": {
source: "iana",
compressible: false
},
"application/vnd.immervision-ivp": {
source: "iana",
extensions: ["ivp"]
},
"application/vnd.immervision-ivu": {
source: "iana",
extensions: ["ivu"]
},
"application/vnd.ims.imsccv1p1": {
source: "iana"
},
"application/vnd.ims.imsccv1p2": {
source: "iana"
},
"application/vnd.ims.imsccv1p3": {
source: "iana"
},
"application/vnd.ims.lis.v2.result+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolconsumerprofile+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy.id+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings.simple+json": {
source: "iana",
compressible: true
},
"application/vnd.informedcontrol.rms+xml": {
source: "iana",
compressible: true
},
"application/vnd.informix-visionary": {
source: "apache"
},
"application/vnd.infotech.project": {
source: "iana"
},
"application/vnd.infotech.project+xml": {
source: "iana",
compressible: true
},
"application/vnd.innopath.wamp.notification": {
source: "iana"
},
"application/vnd.insors.igm": {
source: "iana",
extensions: ["igm"]
},
"application/vnd.intercon.formnet": {
source: "iana",
extensions: ["xpw", "xpx"]
},
"application/vnd.intergeo": {
source: "iana",
extensions: ["i2g"]
},
"application/vnd.intertrust.digibox": {
source: "iana"
},
"application/vnd.intertrust.nncp": {
source: "iana"
},
"application/vnd.intu.qbo": {
source: "iana",
extensions: ["qbo"]
},
"application/vnd.intu.qfx": {
source: "iana",
extensions: ["qfx"]
},
"application/vnd.ipfs.ipns-record": {
source: "iana"
},
"application/vnd.ipld.car": {
source: "iana"
},
"application/vnd.ipld.dag-cbor": {
source: "iana"
},
"application/vnd.ipld.dag-json": {
source: "iana"
},
"application/vnd.ipld.raw": {
source: "iana"
},
"application/vnd.iptc.g2.catalogitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.conceptitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.knowledgeitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.packageitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.planningitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.ipunplugged.rcprofile": {
source: "iana",
extensions: ["rcprofile"]
},
"application/vnd.irepository.package+xml": {
source: "iana",
compressible: true,
extensions: ["irp"]
},
"application/vnd.is-xpr": {
source: "iana",
extensions: ["xpr"]
},
"application/vnd.isac.fcs": {
source: "iana",
extensions: ["fcs"]
},
"application/vnd.iso11783-10+zip": {
source: "iana",
compressible: false
},
"application/vnd.jam": {
source: "iana",
extensions: ["jam"]
},
"application/vnd.japannet-directory-service": {
source: "iana"
},
"application/vnd.japannet-jpnstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-payment-wakeup": {
source: "iana"
},
"application/vnd.japannet-registration": {
source: "iana"
},
"application/vnd.japannet-registration-wakeup": {
source: "iana"
},
"application/vnd.japannet-setstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-verification": {
source: "iana"
},
"application/vnd.japannet-verification-wakeup": {
source: "iana"
},
"application/vnd.jcp.javame.midlet-rms": {
source: "iana",
extensions: ["rms"]
},
"application/vnd.jisp": {
source: "iana",
extensions: ["jisp"]
},
"application/vnd.joost.joda-archive": {
source: "iana",
extensions: ["joda"]
},
"application/vnd.jsk.isdn-ngn": {
source: "iana"
},
"application/vnd.kahootz": {
source: "iana",
extensions: ["ktz", "ktr"]
},
"application/vnd.kde.karbon": {
source: "iana",
extensions: ["karbon"]
},
"application/vnd.kde.kchart": {
source: "iana",
extensions: ["chrt"]
},
"application/vnd.kde.kformula": {
source: "iana",
extensions: ["kfo"]
},
"application/vnd.kde.kivio": {
source: "iana",
extensions: ["flw"]
},
"application/vnd.kde.kontour": {
source: "iana",
extensions: ["kon"]
},
"application/vnd.kde.kpresenter": {
source: "iana",
extensions: ["kpr", "kpt"]
},
"application/vnd.kde.kspread": {
source: "iana",
extensions: ["ksp"]
},
"application/vnd.kde.kword": {
source: "iana",
extensions: ["kwd", "kwt"]
},
"application/vnd.kdl": {
source: "iana"
},
"application/vnd.kenameaapp": {
source: "iana",
extensions: ["htke"]
},
"application/vnd.keyman.kmp+zip": {
source: "iana",
compressible: false
},
"application/vnd.keyman.kmx": {
source: "iana"
},
"application/vnd.kidspiration": {
source: "iana",
extensions: ["kia"]
},
"application/vnd.kinar": {
source: "iana",
extensions: ["kne", "knp"]
},
"application/vnd.koan": {
source: "iana",
extensions: ["skp", "skd", "skt", "skm"]
},
"application/vnd.kodak-descriptor": {
source: "iana",
extensions: ["sse"]
},
"application/vnd.las": {
source: "iana"
},
"application/vnd.las.las+json": {
source: "iana",
compressible: true
},
"application/vnd.las.las+xml": {
source: "iana",
compressible: true,
extensions: ["lasxml"]
},
"application/vnd.laszip": {
source: "iana"
},
"application/vnd.ldev.productlicensing": {
source: "iana"
},
"application/vnd.leap+json": {
source: "iana",
compressible: true
},
"application/vnd.liberty-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.llamagraphics.life-balance.desktop": {
source: "iana",
extensions: ["lbd"]
},
"application/vnd.llamagraphics.life-balance.exchange+xml": {
source: "iana",
compressible: true,
extensions: ["lbe"]
},
"application/vnd.logipipe.circuit+zip": {
source: "iana",
compressible: false
},
"application/vnd.loom": {
source: "iana"
},
"application/vnd.lotus-1-2-3": {
source: "iana",
extensions: ["123"]
},
"application/vnd.lotus-approach": {
source: "iana",
extensions: ["apr"]
},
"application/vnd.lotus-freelance": {
source: "iana",
extensions: ["pre"]
},
"application/vnd.lotus-notes": {
source: "iana",
extensions: ["nsf"]
},
"application/vnd.lotus-organizer": {
source: "iana",
extensions: ["org"]
},
"application/vnd.lotus-screencam": {
source: "iana",
extensions: ["scm"]
},
"application/vnd.lotus-wordpro": {
source: "iana",
extensions: ["lwp"]
},
"application/vnd.macports.portpkg": {
source: "iana",
extensions: ["portpkg"]
},
"application/vnd.mapbox-vector-tile": {
source: "iana",
extensions: ["mvt"]
},
"application/vnd.marlin.drm.actiontoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.conftoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.license+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.mdcf": {
source: "iana"
},
"application/vnd.mason+json": {
source: "iana",
compressible: true
},
"application/vnd.maxar.archive.3tz+zip": {
source: "iana",
compressible: false
},
"application/vnd.maxmind.maxmind-db": {
source: "iana"
},
"application/vnd.mcd": {
source: "iana",
extensions: ["mcd"]
},
"application/vnd.mdl": {
source: "iana"
},
"application/vnd.mdl-mbsdf": {
source: "iana"
},
"application/vnd.medcalcdata": {
source: "iana",
extensions: ["mc1"]
},
"application/vnd.mediastation.cdkey": {
source: "iana",
extensions: ["cdkey"]
},
"application/vnd.medicalholodeck.recordxr": {
source: "iana"
},
"application/vnd.meridian-slingshot": {
source: "iana"
},
"application/vnd.mermaid": {
source: "iana"
},
"application/vnd.mfer": {
source: "iana",
extensions: ["mwf"]
},
"application/vnd.mfmp": {
source: "iana",
extensions: ["mfm"]
},
"application/vnd.micro+json": {
source: "iana",
compressible: true
},
"application/vnd.micrografx.flo": {
source: "iana",
extensions: ["flo"]
},
"application/vnd.micrografx.igx": {
source: "iana",
extensions: ["igx"]
},
"application/vnd.microsoft.portable-executable": {
source: "iana"
},
"application/vnd.microsoft.windows.thumbnail-cache": {
source: "iana"
},
"application/vnd.miele+json": {
source: "iana",
compressible: true
},
"application/vnd.mif": {
source: "iana",
extensions: ["mif"]
},
"application/vnd.minisoft-hp3000-save": {
source: "iana"
},
"application/vnd.mitsubishi.misty-guard.trustweb": {
source: "iana"
},
"application/vnd.mobius.daf": {
source: "iana",
extensions: ["daf"]
},
"application/vnd.mobius.dis": {
source: "iana",
extensions: ["dis"]
},
"application/vnd.mobius.mbk": {
source: "iana",
extensions: ["mbk"]
},
"application/vnd.mobius.mqy": {
source: "iana",
extensions: ["mqy"]
},
"application/vnd.mobius.msl": {
source: "iana",
extensions: ["msl"]
},
"application/vnd.mobius.plc": {
source: "iana",
extensions: ["plc"]
},
"application/vnd.mobius.txf": {
source: "iana",
extensions: ["txf"]
},
"application/vnd.modl": {
source: "iana"
},
"application/vnd.mophun.application": {
source: "iana",
extensions: ["mpn"]
},
"application/vnd.mophun.certificate": {
source: "iana",
extensions: ["mpc"]
},
"application/vnd.motorola.flexsuite": {
source: "iana"
},
"application/vnd.motorola.flexsuite.adsi": {
source: "iana"
},
"application/vnd.motorola.flexsuite.fis": {
source: "iana"
},
"application/vnd.motorola.flexsuite.gotap": {
source: "iana"
},
"application/vnd.motorola.flexsuite.kmr": {
source: "iana"
},
"application/vnd.motorola.flexsuite.ttc": {
source: "iana"
},
"application/vnd.motorola.flexsuite.wem": {
source: "iana"
},
"application/vnd.motorola.iprm": {
source: "iana"
},
"application/vnd.mozilla.xul+xml": {
source: "iana",
compressible: true,
extensions: ["xul"]
},
"application/vnd.ms-3mfdocument": {
source: "iana"
},
"application/vnd.ms-artgalry": {
source: "iana",
extensions: ["cil"]
},
"application/vnd.ms-asf": {
source: "iana"
},
"application/vnd.ms-cab-compressed": {
source: "iana",
extensions: ["cab"]
},
"application/vnd.ms-color.iccprofile": {
source: "apache"
},
"application/vnd.ms-excel": {
source: "iana",
compressible: false,
extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"]
},
"application/vnd.ms-excel.addin.macroenabled.12": {
source: "iana",
extensions: ["xlam"]
},
"application/vnd.ms-excel.sheet.binary.macroenabled.12": {
source: "iana",
extensions: ["xlsb"]
},
"application/vnd.ms-excel.sheet.macroenabled.12": {
source: "iana",
extensions: ["xlsm"]
},
"application/vnd.ms-excel.template.macroenabled.12": {
source: "iana",
extensions: ["xltm"]
},
"application/vnd.ms-fontobject": {
source: "iana",
compressible: true,
extensions: ["eot"]
},
"application/vnd.ms-htmlhelp": {
source: "iana",
extensions: ["chm"]
},
"application/vnd.ms-ims": {
source: "iana",
extensions: ["ims"]
},
"application/vnd.ms-lrm": {
source: "iana",
extensions: ["lrm"]
},
"application/vnd.ms-office.activex+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-officetheme": {
source: "iana",
extensions: ["thmx"]
},
"application/vnd.ms-opentype": {
source: "apache",
compressible: true
},
"application/vnd.ms-outlook": {
compressible: false,
extensions: ["msg"]
},
"application/vnd.ms-package.obfuscated-opentype": {
source: "apache"
},
"application/vnd.ms-pki.seccat": {
source: "apache",
extensions: ["cat"]
},
"application/vnd.ms-pki.stl": {
source: "apache",
extensions: ["stl"]
},
"application/vnd.ms-playready.initiator+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-powerpoint": {
source: "iana",
compressible: false,
extensions: ["ppt", "pps", "pot"]
},
"application/vnd.ms-powerpoint.addin.macroenabled.12": {
source: "iana",
extensions: ["ppam"]
},
"application/vnd.ms-powerpoint.presentation.macroenabled.12": {
source: "iana",
extensions: ["pptm"]
},
"application/vnd.ms-powerpoint.slide.macroenabled.12": {
source: "iana",
extensions: ["sldm"]
},
"application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
source: "iana",
extensions: ["ppsm"]
},
"application/vnd.ms-powerpoint.template.macroenabled.12": {
source: "iana",
extensions: ["potm"]
},
"application/vnd.ms-printdevicecapabilities+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-printing.printticket+xml": {
source: "apache",
compressible: true
},
"application/vnd.ms-printschematicket+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-project": {
source: "iana",
extensions: ["mpp", "mpt"]
},
"application/vnd.ms-tnef": {
source: "iana"
},
"application/vnd.ms-visio.viewer": {
extensions: ["vdx"]
},
"application/vnd.ms-windows.devicepairing": {
source: "iana"
},
"application/vnd.ms-windows.nwprinting.oob": {
source: "iana"
},
"application/vnd.ms-windows.printerpairing": {
source: "iana"
},
"application/vnd.ms-windows.wsd.oob": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-resp": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-resp": {
source: "iana"
},
"application/vnd.ms-word.document.macroenabled.12": {
source: "iana",
extensions: ["docm"]
},
"application/vnd.ms-word.template.macroenabled.12": {
source: "iana",
extensions: ["dotm"]
},
"application/vnd.ms-works": {
source: "iana",
extensions: ["wps", "wks", "wcm", "wdb"]
},
"application/vnd.ms-wpl": {
source: "iana",
extensions: ["wpl"]
},
"application/vnd.ms-xpsdocument": {
source: "iana",
compressible: false,
extensions: ["xps"]
},
"application/vnd.msa-disk-image": {
source: "iana"
},
"application/vnd.mseq": {
source: "iana",
extensions: ["mseq"]
},
"application/vnd.msgpack": {
source: "iana"
},
"application/vnd.msign": {
source: "iana"
},
"application/vnd.multiad.creator": {
source: "iana"
},
"application/vnd.multiad.creator.cif": {
source: "iana"
},
"application/vnd.music-niff": {
source: "iana"
},
"application/vnd.musician": {
source: "iana",
extensions: ["mus"]
},
"application/vnd.muvee.style": {
source: "iana",
extensions: ["msty"]
},
"application/vnd.mynfc": {
source: "iana",
extensions: ["taglet"]
},
"application/vnd.nacamar.ybrid+json": {
source: "iana",
compressible: true
},
"application/vnd.nato.bindingdataobject+cbor": {
source: "iana"
},
"application/vnd.nato.bindingdataobject+json": {
source: "iana",
compressible: true
},
"application/vnd.nato.bindingdataobject+xml": {
source: "iana",
compressible: true,
extensions: ["bdo"]
},
"application/vnd.nato.openxmlformats-package.iepd+zip": {
source: "iana",
compressible: false
},
"application/vnd.ncd.control": {
source: "iana"
},
"application/vnd.ncd.reference": {
source: "iana"
},
"application/vnd.nearst.inv+json": {
source: "iana",
compressible: true
},
"application/vnd.nebumind.line": {
source: "iana"
},
"application/vnd.nervana": {
source: "iana"
},
"application/vnd.netfpx": {
source: "iana"
},
"application/vnd.neurolanguage.nlu": {
source: "iana",
extensions: ["nlu"]
},
"application/vnd.nimn": {
source: "iana"
},
"application/vnd.nintendo.nitro.rom": {
source: "iana"
},
"application/vnd.nintendo.snes.rom": {
source: "iana"
},
"application/vnd.nitf": {
source: "iana",
extensions: ["ntf", "nitf"]
},
"application/vnd.noblenet-directory": {
source: "iana",
extensions: ["nnd"]
},
"application/vnd.noblenet-sealer": {
source: "iana",
extensions: ["nns"]
},
"application/vnd.noblenet-web": {
source: "iana",
extensions: ["nnw"]
},
"application/vnd.nokia.catalogs": {
source: "iana"
},
"application/vnd.nokia.conml+wbxml": {
source: "iana"
},
"application/vnd.nokia.conml+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.iptv.config+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.isds-radio-presets": {
source: "iana"
},
"application/vnd.nokia.landmark+wbxml": {
source: "iana"
},
"application/vnd.nokia.landmark+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.landmarkcollection+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.n-gage.ac+xml": {
source: "iana",
compressible: true,
extensions: ["ac"]
},
"application/vnd.nokia.n-gage.data": {
source: "iana",
extensions: ["ngdat"]
},
"application/vnd.nokia.n-gage.symbian.install": {
source: "apache",
extensions: ["n-gage"]
},
"application/vnd.nokia.ncd": {
source: "iana"
},
"application/vnd.nokia.pcd+wbxml": {
source: "iana"
},
"application/vnd.nokia.pcd+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.radio-preset": {
source: "iana",
extensions: ["rpst"]
},
"application/vnd.nokia.radio-presets": {
source: "iana",
extensions: ["rpss"]
},
"application/vnd.novadigm.edm": {
source: "iana",
extensions: ["edm"]
},
"application/vnd.novadigm.edx": {
source: "iana",
extensions: ["edx"]
},
"application/vnd.novadigm.ext": {
source: "iana",
extensions: ["ext"]
},
"application/vnd.ntt-local.content-share": {
source: "iana"
},
"application/vnd.ntt-local.file-transfer": {
source: "iana"
},
"application/vnd.ntt-local.ogw_remote-access": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_remote": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_tcp_stream": {
source: "iana"
},
"application/vnd.oai.workflows": {
source: "iana"
},
"application/vnd.oai.workflows+json": {
source: "iana",
compressible: true
},
"application/vnd.oai.workflows+yaml": {
source: "iana"
},
"application/vnd.oasis.opendocument.base": {
source: "iana"
},
"application/vnd.oasis.opendocument.chart": {
source: "iana",
extensions: ["odc"]
},
"application/vnd.oasis.opendocument.chart-template": {
source: "iana",
extensions: ["otc"]
},
"application/vnd.oasis.opendocument.database": {
source: "apache",
extensions: ["odb"]
},
"application/vnd.oasis.opendocument.formula": {
source: "iana",
extensions: ["odf"]
},
"application/vnd.oasis.opendocument.formula-template": {
source: "iana",
extensions: ["odft"]
},
"application/vnd.oasis.opendocument.graphics": {
source: "iana",
compressible: false,
extensions: ["odg"]
},
"application/vnd.oasis.opendocument.graphics-template": {
source: "iana",
extensions: ["otg"]
},
"application/vnd.oasis.opendocument.image": {
source: "iana",
extensions: ["odi"]
},
"application/vnd.oasis.opendocument.image-template": {
source: "iana",
extensions: ["oti"]
},
"application/vnd.oasis.opendocument.presentation": {
source: "iana",
compressible: false,
extensions: ["odp"]
},
"application/vnd.oasis.opendocument.presentation-template": {
source: "iana",
extensions: ["otp"]
},
"application/vnd.oasis.opendocument.spreadsheet": {
source: "iana",
compressible: false,
extensions: ["ods"]
},
"application/vnd.oasis.opendocument.spreadsheet-template": {
source: "iana",
extensions: ["ots"]
},
"application/vnd.oasis.opendocument.text": {
source: "iana",
compressible: false,
extensions: ["odt"]
},
"application/vnd.oasis.opendocument.text-master": {
source: "iana",
extensions: ["odm"]
},
"application/vnd.oasis.opendocument.text-master-template": {
source: "iana"
},
"application/vnd.oasis.opendocument.text-template": {
source: "iana",
extensions: ["ott"]
},
"application/vnd.oasis.opendocument.text-web": {
source: "iana",
extensions: ["oth"]
},
"application/vnd.obn": {
source: "iana"
},
"application/vnd.ocf+cbor": {
source: "iana"
},
"application/vnd.oci.image.manifest.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.oftn.l10n+json": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessdownload+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessstreaming+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.cspg-hexbinary": {
source: "iana"
},
"application/vnd.oipf.dae.svg+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.dae.xhtml+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.mippvcontrolmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.pae.gem": {
source: "iana"
},
"application/vnd.oipf.spdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.spdlist+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.ueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.userprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.olpc-sugar": {
source: "iana",
extensions: ["xo"]
},
"application/vnd.oma-scws-config": {
source: "iana"
},
"application/vnd.oma-scws-http-request": {
source: "iana"
},
"application/vnd.oma-scws-http-response": {
source: "iana"
},
"application/vnd.oma.bcast.associated-procedure-parameter+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.drm-trigger+xml": {
source: "apache",
compressible: true
},
"application/vnd.oma.bcast.imd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.ltkm": {
source: "iana"
},
"application/vnd.oma.bcast.notification+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.provisioningtrigger": {
source: "iana"
},
"application/vnd.oma.bcast.sgboot": {
source: "iana"
},
"application/vnd.oma.bcast.sgdd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.sgdu": {
source: "iana"
},
"application/vnd.oma.bcast.simple-symbol-container": {
source: "iana"
},
"application/vnd.oma.bcast.smartcard-trigger+xml": {
source: "apache",
compressible: true
},
"application/vnd.oma.bcast.sprov+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.stkm": {
source: "iana"
},
"application/vnd.oma.cab-address-book+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-feature-handler+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-pcc+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-subs-invite+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-user-prefs+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.dcd": {
source: "iana"
},
"application/vnd.oma.dcdc": {
source: "iana"
},
"application/vnd.oma.dd2+xml": {
source: "iana",
compressible: true,
extensions: ["dd2"]
},
"application/vnd.oma.drm.risd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.group-usage-list+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+cbor": {
source: "iana"
},
"application/vnd.oma.lwm2m+json": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+tlv": {
source: "iana"
},
"application/vnd.oma.pal+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.detailed-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.final-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.groups+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.invocation-descriptor+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.optimized-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.push": {
source: "iana"
},
"application/vnd.oma.scidm.messages+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.xcap-directory+xml": {
source: "iana",
compressible: true
},
"application/vnd.omads-email+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-file+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-folder+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omaloc-supl-init": {
source: "iana"
},
"application/vnd.onepager": {
source: "iana"
},
"application/vnd.onepagertamp": {
source: "iana"
},
"application/vnd.onepagertamx": {
source: "iana"
},
"application/vnd.onepagertat": {
source: "iana"
},
"application/vnd.onepagertatp": {
source: "iana"
},
"application/vnd.onepagertatx": {
source: "iana"
},
"application/vnd.onvif.metadata": {
source: "iana"
},
"application/vnd.openblox.game+xml": {
source: "iana",
compressible: true,
extensions: ["obgx"]
},
"application/vnd.openblox.game-binary": {
source: "iana"
},
"application/vnd.openeye.oeb": {
source: "iana"
},
"application/vnd.openofficeorg.extension": {
source: "apache",
extensions: ["oxt"]
},
"application/vnd.openstreetmap.data+xml": {
source: "iana",
compressible: true,
extensions: ["osm"]
},
"application/vnd.opentimestamps.ots": {
source: "iana"
},
"application/vnd.openvpi.dspx+json": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.custom-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawing+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.extended-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation": {
source: "iana",
compressible: false,
extensions: ["pptx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slide": {
source: "iana",
extensions: ["sldx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
source: "iana",
extensions: ["ppsx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.template": {
source: "iana",
extensions: ["potx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
source: "iana",
compressible: false,
extensions: ["xlsx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
source: "iana",
extensions: ["xltx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.theme+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.themeoverride+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.vmldrawing": {
source: "iana"
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
source: "iana",
compressible: false,
extensions: ["docx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
source: "iana",
extensions: ["dotx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.core-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.relationships+xml": {
source: "iana",
compressible: true
},
"application/vnd.oracle.resource+json": {
source: "iana",
compressible: true
},
"application/vnd.orange.indata": {
source: "iana"
},
"application/vnd.osa.netdeploy": {
source: "iana"
},
"application/vnd.osgeo.mapguide.package": {
source: "iana",
extensions: ["mgp"]
},
"application/vnd.osgi.bundle": {
source: "iana"
},
"application/vnd.osgi.dp": {
source: "iana",
extensions: ["dp"]
},
"application/vnd.osgi.subsystem": {
source: "iana",
extensions: ["esa"]
},
"application/vnd.otps.ct-kip+xml": {
source: "iana",
compressible: true
},
"application/vnd.oxli.countgraph": {
source: "iana"
},
"application/vnd.pagerduty+json": {
source: "iana",
compressible: true
},
"application/vnd.palm": {
source: "iana",
extensions: ["pdb", "pqa", "oprc"]
},
"application/vnd.panoply": {
source: "iana"
},
"application/vnd.paos.xml": {
source: "iana"
},
"application/vnd.patentdive": {
source: "iana"
},
"application/vnd.patientecommsdoc": {
source: "iana"
},
"application/vnd.pawaafile": {
source: "iana",
extensions: ["paw"]
},
"application/vnd.pcos": {
source: "iana"
},
"application/vnd.pg.format": {
source: "iana",
extensions: ["str"]
},
"application/vnd.pg.osasli": {
source: "iana",
extensions: ["ei6"]
},
"application/vnd.piaccess.application-licence": {
source: "iana"
},
"application/vnd.picsel": {
source: "iana",
extensions: ["efif"]
},
"application/vnd.pmi.widget": {
source: "iana",
extensions: ["wg"]
},
"application/vnd.poc.group-advertisement+xml": {
source: "iana",
compressible: true
},
"application/vnd.pocketlearn": {
source: "iana",
extensions: ["plf"]
},
"application/vnd.powerbuilder6": {
source: "iana",
extensions: ["pbd"]
},
"application/vnd.powerbuilder6-s": {
source: "iana"
},
"application/vnd.powerbuilder7": {
source: "iana"
},
"application/vnd.powerbuilder7-s": {
source: "iana"
},
"application/vnd.powerbuilder75": {
source: "iana"
},
"application/vnd.powerbuilder75-s": {
source: "iana"
},
"application/vnd.preminet": {
source: "iana"
},
"application/vnd.previewsystems.box": {
source: "iana",
extensions: ["box"]
},
"application/vnd.procrate.brushset": {
extensions: ["brushset"]
},
"application/vnd.procreate.brush": {
extensions: ["brush"]
},
"application/vnd.procreate.dream": {
extensions: ["drm"]
},
"application/vnd.proteus.magazine": {
source: "iana",
extensions: ["mgz"]
},
"application/vnd.psfs": {
source: "iana"
},
"application/vnd.pt.mundusmundi": {
source: "iana"
},
"application/vnd.publishare-delta-tree": {
source: "iana",
extensions: ["qps"]
},
"application/vnd.pvi.ptid1": {
source: "iana",
extensions: ["ptid"]
},
"application/vnd.pwg-multiplexed": {
source: "iana"
},
"application/vnd.pwg-xhtml-print+xml": {
source: "iana",
compressible: true,
extensions: ["xhtm"]
},
"application/vnd.qualcomm.brew-app-res": {
source: "iana"
},
"application/vnd.quarantainenet": {
source: "iana"
},
"application/vnd.quark.quarkxpress": {
source: "iana",
extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"]
},
"application/vnd.quobject-quoxdocument": {
source: "iana"
},
"application/vnd.radisys.moml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conn+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-stream+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-base+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-detect+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-group+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-speech+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-transform+xml": {
source: "iana",
compressible: true
},
"application/vnd.rainstor.data": {
source: "iana"
},
"application/vnd.rapid": {
source: "iana"
},
"application/vnd.rar": {
source: "iana",
extensions: ["rar"]
},
"application/vnd.realvnc.bed": {
source: "iana",
extensions: ["bed"]
},
"application/vnd.recordare.musicxml": {
source: "iana",
extensions: ["mxl"]
},
"application/vnd.recordare.musicxml+xml": {
source: "iana",
compressible: true,
extensions: ["musicxml"]
},
"application/vnd.relpipe": {
source: "iana"
},
"application/vnd.renlearn.rlprint": {
source: "iana"
},
"application/vnd.resilient.logic": {
source: "iana"
},
"application/vnd.restful+json": {
source: "iana",
compressible: true
},
"application/vnd.rig.cryptonote": {
source: "iana",
extensions: ["cryptonote"]
},
"application/vnd.rim.cod": {
source: "apache",
extensions: ["cod"]
},
"application/vnd.rn-realmedia": {
source: "apache",
extensions: ["rm"]
},
"application/vnd.rn-realmedia-vbr": {
source: "apache",
extensions: ["rmvb"]
},
"application/vnd.route66.link66+xml": {
source: "iana",
compressible: true,
extensions: ["link66"]
},
"application/vnd.rs-274x": {
source: "iana"
},
"application/vnd.ruckus.download": {
source: "iana"
},
"application/vnd.s3sms": {
source: "iana"
},
"application/vnd.sailingtracker.track": {
source: "iana",
extensions: ["st"]
},
"application/vnd.sar": {
source: "iana"
},
"application/vnd.sbm.cid": {
source: "iana"
},
"application/vnd.sbm.mid2": {
source: "iana"
},
"application/vnd.scribus": {
source: "iana"
},
"application/vnd.sealed.3df": {
source: "iana"
},
"application/vnd.sealed.csf": {
source: "iana"
},
"application/vnd.sealed.doc": {
source: "iana"
},
"application/vnd.sealed.eml": {
source: "iana"
},
"application/vnd.sealed.mht": {
source: "iana"
},
"application/vnd.sealed.net": {
source: "iana"
},
"application/vnd.sealed.ppt": {
source: "iana"
},
"application/vnd.sealed.tiff": {
source: "iana"
},
"application/vnd.sealed.xls": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.html": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.pdf": {
source: "iana"
},
"application/vnd.seemail": {
source: "iana",
extensions: ["see"]
},
"application/vnd.seis+json": {
source: "iana",
compressible: true
},
"application/vnd.sema": {
source: "iana",
extensions: ["sema"]
},
"application/vnd.semd": {
source: "iana",
extensions: ["semd"]
},
"application/vnd.semf": {
source: "iana",
extensions: ["semf"]
},
"application/vnd.shade-save-file": {
source: "iana"
},
"application/vnd.shana.informed.formdata": {
source: "iana",
extensions: ["ifm"]
},
"application/vnd.shana.informed.formtemplate": {
source: "iana",
extensions: ["itp"]
},
"application/vnd.shana.informed.interchange": {
source: "iana",
extensions: ["iif"]
},
"application/vnd.shana.informed.package": {
source: "iana",
extensions: ["ipk"]
},
"application/vnd.shootproof+json": {
source: "iana",
compressible: true
},
"application/vnd.shopkick+json": {
source: "iana",
compressible: true
},
"application/vnd.shp": {
source: "iana"
},
"application/vnd.shx": {
source: "iana"
},
"application/vnd.sigrok.session": {
source: "iana"
},
"application/vnd.simtech-mindmapper": {
source: "iana",
extensions: ["twd", "twds"]
},
"application/vnd.siren+json": {
source: "iana",
compressible: true
},
"application/vnd.sketchometry": {
source: "iana"
},
"application/vnd.smaf": {
source: "iana",
extensions: ["mmf"]
},
"application/vnd.smart.notebook": {
source: "iana"
},
"application/vnd.smart.teacher": {
source: "iana",
extensions: ["teacher"]
},
"application/vnd.smintio.portals.archive": {
source: "iana"
},
"application/vnd.snesdev-page-table": {
source: "iana"
},
"application/vnd.software602.filler.form+xml": {
source: "iana",
compressible: true,
extensions: ["fo"]
},
"application/vnd.software602.filler.form-xml-zip": {
source: "iana"
},
"application/vnd.solent.sdkm+xml": {
source: "iana",
compressible: true,
extensions: ["sdkm", "sdkd"]
},
"application/vnd.spotfire.dxp": {
source: "iana",
extensions: ["dxp"]
},
"application/vnd.spotfire.sfs": {
source: "iana",
extensions: ["sfs"]
},
"application/vnd.sqlite3": {
source: "iana"
},
"application/vnd.sss-cod": {
source: "iana"
},
"application/vnd.sss-dtf": {
source: "iana"
},
"application/vnd.sss-ntf": {
source: "iana"
},
"application/vnd.stardivision.calc": {
source: "apache",
extensions: ["sdc"]
},
"application/vnd.stardivision.draw": {
source: "apache",
extensions: ["sda"]
},
"application/vnd.stardivision.impress": {
source: "apache",
extensions: ["sdd"]
},
"application/vnd.stardivision.math": {
source: "apache",
extensions: ["smf"]
},
"application/vnd.stardivision.writer": {
source: "apache",
extensions: ["sdw", "vor"]
},
"application/vnd.stardivision.writer-global": {
source: "apache",
extensions: ["sgl"]
},
"application/vnd.stepmania.package": {
source: "iana",
extensions: ["smzip"]
},
"application/vnd.stepmania.stepchart": {
source: "iana",
extensions: ["sm"]
},
"application/vnd.street-stream": {
source: "iana"
},
"application/vnd.sun.wadl+xml": {
source: "iana",
compressible: true,
extensions: ["wadl"]
},
"application/vnd.sun.xml.calc": {
source: "apache",
extensions: ["sxc"]
},
"application/vnd.sun.xml.calc.template": {
source: "apache",
extensions: ["stc"]
},
"application/vnd.sun.xml.draw": {
source: "apache",
extensions: ["sxd"]
},
"application/vnd.sun.xml.draw.template": {
source: "apache",
extensions: ["std"]
},
"application/vnd.sun.xml.impress": {
source: "apache",
extensions: ["sxi"]
},
"application/vnd.sun.xml.impress.template": {
source: "apache",
extensions: ["sti"]
},
"application/vnd.sun.xml.math": {
source: "apache",
extensions: ["sxm"]
},
"application/vnd.sun.xml.writer": {
source: "apache",
extensions: ["sxw"]
},
"application/vnd.sun.xml.writer.global": {
source: "apache",
extensions: ["sxg"]
},
"application/vnd.sun.xml.writer.template": {
source: "apache",
extensions: ["stw"]
},
"application/vnd.sus-calendar": {
source: "iana",
extensions: ["sus", "susp"]
},
"application/vnd.svd": {
source: "iana",
extensions: ["svd"]
},
"application/vnd.swiftview-ics": {
source: "iana"
},
"application/vnd.sybyl.mol2": {
source: "iana"
},
"application/vnd.sycle+xml": {
source: "iana",
compressible: true
},
"application/vnd.syft+json": {
source: "iana",
compressible: true
},
"application/vnd.symbian.install": {
source: "apache",
extensions: ["sis", "sisx"]
},
"application/vnd.syncml+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xsm"]
},
"application/vnd.syncml.dm+wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["bdm"]
},
"application/vnd.syncml.dm+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xdm"]
},
"application/vnd.syncml.dm.notification": {
source: "iana"
},
"application/vnd.syncml.dmddf+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmddf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["ddf"]
},
"application/vnd.syncml.dmtnds+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmtnds+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.syncml.ds.notification": {
source: "iana"
},
"application/vnd.tableschema+json": {
source: "iana",
compressible: true
},
"application/vnd.tao.intent-module-archive": {
source: "iana",
extensions: ["tao"]
},
"application/vnd.tcpdump.pcap": {
source: "iana",
extensions: ["pcap", "cap", "dmp"]
},
"application/vnd.think-cell.ppttc+json": {
source: "iana",
compressible: true
},
"application/vnd.tmd.mediaflex.api+xml": {
source: "iana",
compressible: true
},
"application/vnd.tml": {
source: "iana"
},
"application/vnd.tmobile-livetv": {
source: "iana",
extensions: ["tmo"]
},
"application/vnd.tri.onesource": {
source: "iana"
},
"application/vnd.trid.tpt": {
source: "iana",
extensions: ["tpt"]
},
"application/vnd.triscape.mxs": {
source: "iana",
extensions: ["mxs"]
},
"application/vnd.trueapp": {
source: "iana",
extensions: ["tra"]
},
"application/vnd.truedoc": {
source: "iana"
},
"application/vnd.ubisoft.webplayer": {
source: "iana"
},
"application/vnd.ufdl": {
source: "iana",
extensions: ["ufd", "ufdl"]
},
"application/vnd.uic.osdm+json": {
source: "iana",
compressible: true
},
"application/vnd.uiq.theme": {
source: "iana",
extensions: ["utz"]
},
"application/vnd.umajin": {
source: "iana",
extensions: ["umj"]
},
"application/vnd.unity": {
source: "iana",
extensions: ["unityweb"]
},
"application/vnd.uoml+xml": {
source: "iana",
compressible: true,
extensions: ["uoml", "uo"]
},
"application/vnd.uplanet.alert": {
source: "iana"
},
"application/vnd.uplanet.alert-wbxml": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice-wbxml": {
source: "iana"
},
"application/vnd.uplanet.cacheop": {
source: "iana"
},
"application/vnd.uplanet.cacheop-wbxml": {
source: "iana"
},
"application/vnd.uplanet.channel": {
source: "iana"
},
"application/vnd.uplanet.channel-wbxml": {
source: "iana"
},
"application/vnd.uplanet.list": {
source: "iana"
},
"application/vnd.uplanet.list-wbxml": {
source: "iana"
},
"application/vnd.uplanet.listcmd": {
source: "iana"
},
"application/vnd.uplanet.listcmd-wbxml": {
source: "iana"
},
"application/vnd.uplanet.signal": {
source: "iana"
},
"application/vnd.uri-map": {
source: "iana"
},
"application/vnd.valve.source.material": {
source: "iana"
},
"application/vnd.vcx": {
source: "iana",
extensions: ["vcx"]
},
"application/vnd.vd-study": {
source: "iana"
},
"application/vnd.vectorworks": {
source: "iana"
},
"application/vnd.vel+json": {
source: "iana",
compressible: true
},
"application/vnd.veraison.tsm-report+cbor": {
source: "iana"
},
"application/vnd.veraison.tsm-report+json": {
source: "iana",
compressible: true
},
"application/vnd.verimatrix.vcas": {
source: "iana"
},
"application/vnd.veritone.aion+json": {
source: "iana",
compressible: true
},
"application/vnd.veryant.thin": {
source: "iana"
},
"application/vnd.ves.encrypted": {
source: "iana"
},
"application/vnd.vidsoft.vidconference": {
source: "iana"
},
"application/vnd.visio": {
source: "iana",
extensions: ["vsd", "vst", "vss", "vsw", "vsdx", "vtx"]
},
"application/vnd.visionary": {
source: "iana",
extensions: ["vis"]
},
"application/vnd.vividence.scriptfile": {
source: "iana"
},
"application/vnd.vocalshaper.vsp4": {
source: "iana"
},
"application/vnd.vsf": {
source: "iana",
extensions: ["vsf"]
},
"application/vnd.wap.sic": {
source: "iana"
},
"application/vnd.wap.slc": {
source: "iana"
},
"application/vnd.wap.wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["wbxml"]
},
"application/vnd.wap.wmlc": {
source: "iana",
extensions: ["wmlc"]
},
"application/vnd.wap.wmlscriptc": {
source: "iana",
extensions: ["wmlsc"]
},
"application/vnd.wasmflow.wafl": {
source: "iana"
},
"application/vnd.webturbo": {
source: "iana",
extensions: ["wtb"]
},
"application/vnd.wfa.dpp": {
source: "iana"
},
"application/vnd.wfa.p2p": {
source: "iana"
},
"application/vnd.wfa.wsc": {
source: "iana"
},
"application/vnd.windows.devicepairing": {
source: "iana"
},
"application/vnd.wmc": {
source: "iana"
},
"application/vnd.wmf.bootstrap": {
source: "iana"
},
"application/vnd.wolfram.mathematica": {
source: "iana"
},
"application/vnd.wolfram.mathematica.package": {
source: "iana"
},
"application/vnd.wolfram.player": {
source: "iana",
extensions: ["nbp"]
},
"application/vnd.wordlift": {
source: "iana"
},
"application/vnd.wordperfect": {
source: "iana",
extensions: ["wpd"]
},
"application/vnd.wqd": {
source: "iana",
extensions: ["wqd"]
},
"application/vnd.wrq-hp3000-labelled": {
source: "iana"
},
"application/vnd.wt.stf": {
source: "iana",
extensions: ["stf"]
},
"application/vnd.wv.csp+wbxml": {
source: "iana"
},
"application/vnd.wv.csp+xml": {
source: "iana",
compressible: true
},
"application/vnd.wv.ssp+xml": {
source: "iana",
compressible: true
},
"application/vnd.xacml+json": {
source: "iana",
compressible: true
},
"application/vnd.xara": {
source: "iana",
extensions: ["xar"]
},
"application/vnd.xarin.cpj": {
source: "iana"
},
"application/vnd.xecrets-encrypted": {
source: "iana"
},
"application/vnd.xfdl": {
source: "iana",
extensions: ["xfdl"]
},
"application/vnd.xfdl.webform": {
source: "iana"
},
"application/vnd.xmi+xml": {
source: "iana",
compressible: true
},
"application/vnd.xmpie.cpkg": {
source: "iana"
},
"application/vnd.xmpie.dpkg": {
source: "iana"
},
"application/vnd.xmpie.plan": {
source: "iana"
},
"application/vnd.xmpie.ppkg": {
source: "iana"
},
"application/vnd.xmpie.xlim": {
source: "iana"
},
"application/vnd.yamaha.hv-dic": {
source: "iana",
extensions: ["hvd"]
},
"application/vnd.yamaha.hv-script": {
source: "iana",
extensions: ["hvs"]
},
"application/vnd.yamaha.hv-voice": {
source: "iana",
extensions: ["hvp"]
},
"application/vnd.yamaha.openscoreformat": {
source: "iana",
extensions: ["osf"]
},
"application/vnd.yamaha.openscoreformat.osfpvg+xml": {
source: "iana",
compressible: true,
extensions: ["osfpvg"]
},
"application/vnd.yamaha.remote-setup": {
source: "iana"
},
"application/vnd.yamaha.smaf-audio": {
source: "iana",
extensions: ["saf"]
},
"application/vnd.yamaha.smaf-phrase": {
source: "iana",
extensions: ["spf"]
},
"application/vnd.yamaha.through-ngn": {
source: "iana"
},
"application/vnd.yamaha.tunnel-udpencap": {
source: "iana"
},
"application/vnd.yaoweme": {
source: "iana"
},
"application/vnd.yellowriver-custom-menu": {
source: "iana",
extensions: ["cmp"]
},
"application/vnd.zul": {
source: "iana",
extensions: ["zir", "zirz"]
},
"application/vnd.zzazz.deck+xml": {
source: "iana",
compressible: true,
extensions: ["zaz"]
},
"application/voicexml+xml": {
source: "iana",
compressible: true,
extensions: ["vxml"]
},
"application/voucher-cms+json": {
source: "iana",
compressible: true
},
"application/voucher-jws+json": {
source: "iana",
compressible: true
},
"application/vp": {
source: "iana"
},
"application/vp+cose": {
source: "iana"
},
"application/vp+jwt": {
source: "iana"
},
"application/vq-rtcpxr": {
source: "iana"
},
"application/wasm": {
source: "iana",
compressible: true,
extensions: ["wasm"]
},
"application/watcherinfo+xml": {
source: "iana",
compressible: true,
extensions: ["wif"]
},
"application/webpush-options+json": {
source: "iana",
compressible: true
},
"application/whoispp-query": {
source: "iana"
},
"application/whoispp-response": {
source: "iana"
},
"application/widget": {
source: "iana",
extensions: ["wgt"]
},
"application/winhlp": {
source: "apache",
extensions: ["hlp"]
},
"application/wita": {
source: "iana"
},
"application/wordperfect5.1": {
source: "iana"
},
"application/wsdl+xml": {
source: "iana",
compressible: true,
extensions: ["wsdl"]
},
"application/wspolicy+xml": {
source: "iana",
compressible: true,
extensions: ["wspolicy"]
},
"application/x-7z-compressed": {
source: "apache",
compressible: false,
extensions: ["7z"]
},
"application/x-abiword": {
source: "apache",
extensions: ["abw"]
},
"application/x-ace-compressed": {
source: "apache",
extensions: ["ace"]
},
"application/x-amf": {
source: "apache"
},
"application/x-apple-diskimage": {
source: "apache",
extensions: ["dmg"]
},
"application/x-arj": {
compressible: false,
extensions: ["arj"]
},
"application/x-authorware-bin": {
source: "apache",
extensions: ["aab", "x32", "u32", "vox"]
},
"application/x-authorware-map": {
source: "apache",
extensions: ["aam"]
},
"application/x-authorware-seg": {
source: "apache",
extensions: ["aas"]
},
"application/x-bcpio": {
source: "apache",
extensions: ["bcpio"]
},
"application/x-bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/x-bittorrent": {
source: "apache",
extensions: ["torrent"]
},
"application/x-blender": {
extensions: ["blend"]
},
"application/x-blorb": {
source: "apache",
extensions: ["blb", "blorb"]
},
"application/x-bzip": {
source: "apache",
compressible: false,
extensions: ["bz"]
},
"application/x-bzip2": {
source: "apache",
compressible: false,
extensions: ["bz2", "boz"]
},
"application/x-cbr": {
source: "apache",
extensions: ["cbr", "cba", "cbt", "cbz", "cb7"]
},
"application/x-cdlink": {
source: "apache",
extensions: ["vcd"]
},
"application/x-cfs-compressed": {
source: "apache",
extensions: ["cfs"]
},
"application/x-chat": {
source: "apache",
extensions: ["chat"]
},
"application/x-chess-pgn": {
source: "apache",
extensions: ["pgn"]
},
"application/x-chrome-extension": {
extensions: ["crx"]
},
"application/x-cocoa": {
source: "nginx",
extensions: ["cco"]
},
"application/x-compress": {
source: "apache"
},
"application/x-compressed": {
extensions: ["rar"]
},
"application/x-conference": {
source: "apache",
extensions: ["nsc"]
},
"application/x-cpio": {
source: "apache",
extensions: ["cpio"]
},
"application/x-csh": {
source: "apache",
extensions: ["csh"]
},
"application/x-deb": {
compressible: false
},
"application/x-debian-package": {
source: "apache",
extensions: ["deb", "udeb"]
},
"application/x-dgc-compressed": {
source: "apache",
extensions: ["dgc"]
},
"application/x-director": {
source: "apache",
extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"]
},
"application/x-doom": {
source: "apache",
extensions: ["wad"]
},
"application/x-dtbncx+xml": {
source: "apache",
compressible: true,
extensions: ["ncx"]
},
"application/x-dtbook+xml": {
source: "apache",
compressible: true,
extensions: ["dtb"]
},
"application/x-dtbresource+xml": {
source: "apache",
compressible: true,
extensions: ["res"]
},
"application/x-dvi": {
source: "apache",
compressible: false,
extensions: ["dvi"]
},
"application/x-envoy": {
source: "apache",
extensions: ["evy"]
},
"application/x-eva": {
source: "apache",
extensions: ["eva"]
},
"application/x-font-bdf": {
source: "apache",
extensions: ["bdf"]
},
"application/x-font-dos": {
source: "apache"
},
"application/x-font-framemaker": {
source: "apache"
},
"application/x-font-ghostscript": {
source: "apache",
extensions: ["gsf"]
},
"application/x-font-libgrx": {
source: "apache"
},
"application/x-font-linux-psf": {
source: "apache",
extensions: ["psf"]
},
"application/x-font-pcf": {
source: "apache",
extensions: ["pcf"]
},
"application/x-font-snf": {
source: "apache",
extensions: ["snf"]
},
"application/x-font-speedo": {
source: "apache"
},
"application/x-font-sunos-news": {
source: "apache"
},
"application/x-font-type1": {
source: "apache",
extensions: ["pfa", "pfb", "pfm", "afm"]
},
"application/x-font-vfont": {
source: "apache"
},
"application/x-freearc": {
source: "apache",
extensions: ["arc"]
},
"application/x-futuresplash": {
source: "apache",
extensions: ["spl"]
},
"application/x-gca-compressed": {
source: "apache",
extensions: ["gca"]
},
"application/x-glulx": {
source: "apache",
extensions: ["ulx"]
},
"application/x-gnumeric": {
source: "apache",
extensions: ["gnumeric"]
},
"application/x-gramps-xml": {
source: "apache",
extensions: ["gramps"]
},
"application/x-gtar": {
source: "apache",
extensions: ["gtar"]
},
"application/x-gzip": {
source: "apache"
},
"application/x-hdf": {
source: "apache",
extensions: ["hdf"]
},
"application/x-httpd-php": {
compressible: true,
extensions: ["php"]
},
"application/x-install-instructions": {
source: "apache",
extensions: ["install"]
},
"application/x-ipynb+json": {
compressible: true,
extensions: ["ipynb"]
},
"application/x-iso9660-image": {
source: "apache",
extensions: ["iso"]
},
"application/x-iwork-keynote-sffkey": {
extensions: ["key"]
},
"application/x-iwork-numbers-sffnumbers": {
extensions: ["numbers"]
},
"application/x-iwork-pages-sffpages": {
extensions: ["pages"]
},
"application/x-java-archive-diff": {
source: "nginx",
extensions: ["jardiff"]
},
"application/x-java-jnlp-file": {
source: "apache",
compressible: false,
extensions: ["jnlp"]
},
"application/x-javascript": {
compressible: true
},
"application/x-keepass2": {
extensions: ["kdbx"]
},
"application/x-latex": {
source: "apache",
compressible: false,
extensions: ["latex"]
},
"application/x-lua-bytecode": {
extensions: ["luac"]
},
"application/x-lzh-compressed": {
source: "apache",
extensions: ["lzh", "lha"]
},
"application/x-makeself": {
source: "nginx",
extensions: ["run"]
},
"application/x-mie": {
source: "apache",
extensions: ["mie"]
},
"application/x-mobipocket-ebook": {
source: "apache",
extensions: ["prc", "mobi"]
},
"application/x-mpegurl": {
compressible: false
},
"application/x-ms-application": {
source: "apache",
extensions: ["application"]
},
"application/x-ms-shortcut": {
source: "apache",
extensions: ["lnk"]
},
"application/x-ms-wmd": {
source: "apache",
extensions: ["wmd"]
},
"application/x-ms-wmz": {
source: "apache",
extensions: ["wmz"]
},
"application/x-ms-xbap": {
source: "apache",
extensions: ["xbap"]
},
"application/x-msaccess": {
source: "apache",
extensions: ["mdb"]
},
"application/x-msbinder": {
source: "apache",
extensions: ["obd"]
},
"application/x-mscardfile": {
source: "apache",
extensions: ["crd"]
},
"application/x-msclip": {
source: "apache",
extensions: ["clp"]
},
"application/x-msdos-program": {
extensions: ["exe"]
},
"application/x-msdownload": {
source: "apache",
extensions: ["exe", "dll", "com", "bat", "msi"]
},
"application/x-msmediaview": {
source: "apache",
extensions: ["mvb", "m13", "m14"]
},
"application/x-msmetafile": {
source: "apache",
extensions: ["wmf", "wmz", "emf", "emz"]
},
"application/x-msmoney": {
source: "apache",
extensions: ["mny"]
},
"application/x-mspublisher": {
source: "apache",
extensions: ["pub"]
},
"application/x-msschedule": {
source: "apache",
extensions: ["scd"]
},
"application/x-msterminal": {
source: "apache",
extensions: ["trm"]
},
"application/x-mswrite": {
source: "apache",
extensions: ["wri"]
},
"application/x-netcdf": {
source: "apache",
extensions: ["nc", "cdf"]
},
"application/x-ns-proxy-autoconfig": {
compressible: true,
extensions: ["pac"]
},
"application/x-nzb": {
source: "apache",
extensions: ["nzb"]
},
"application/x-perl": {
source: "nginx",
extensions: ["pl", "pm"]
},
"application/x-pilot": {
source: "nginx",
extensions: ["prc", "pdb"]
},
"application/x-pkcs12": {
source: "apache",
compressible: false,
extensions: ["p12", "pfx"]
},
"application/x-pkcs7-certificates": {
source: "apache",
extensions: ["p7b", "spc"]
},
"application/x-pkcs7-certreqresp": {
source: "apache",
extensions: ["p7r"]
},
"application/x-pki-message": {
source: "iana"
},
"application/x-rar-compressed": {
source: "apache",
compressible: false,
extensions: ["rar"]
},
"application/x-redhat-package-manager": {
source: "nginx",
extensions: ["rpm"]
},
"application/x-research-info-systems": {
source: "apache",
extensions: ["ris"]
},
"application/x-sea": {
source: "nginx",
extensions: ["sea"]
},
"application/x-sh": {
source: "apache",
compressible: true,
extensions: ["sh"]
},
"application/x-shar": {
source: "apache",
extensions: ["shar"]
},
"application/x-shockwave-flash": {
source: "apache",
compressible: false,
extensions: ["swf"]
},
"application/x-silverlight-app": {
source: "apache",
extensions: ["xap"]
},
"application/x-sql": {
source: "apache",
extensions: ["sql"]
},
"application/x-stuffit": {
source: "apache",
compressible: false,
extensions: ["sit"]
},
"application/x-stuffitx": {
source: "apache",
extensions: ["sitx"]
},
"application/x-subrip": {
source: "apache",
extensions: ["srt"]
},
"application/x-sv4cpio": {
source: "apache",
extensions: ["sv4cpio"]
},
"application/x-sv4crc": {
source: "apache",
extensions: ["sv4crc"]
},
"application/x-t3vm-image": {
source: "apache",
extensions: ["t3"]
},
"application/x-tads": {
source: "apache",
extensions: ["gam"]
},
"application/x-tar": {
source: "apache",
compressible: true,
extensions: ["tar"]
},
"application/x-tcl": {
source: "apache",
extensions: ["tcl", "tk"]
},
"application/x-tex": {
source: "apache",
extensions: ["tex"]
},
"application/x-tex-tfm": {
source: "apache",
extensions: ["tfm"]
},
"application/x-texinfo": {
source: "apache",
extensions: ["texinfo", "texi"]
},
"application/x-tgif": {
source: "apache",
extensions: ["obj"]
},
"application/x-ustar": {
source: "apache",
extensions: ["ustar"]
},
"application/x-virtualbox-hdd": {
compressible: true,
extensions: ["hdd"]
},
"application/x-virtualbox-ova": {
compressible: true,
extensions: ["ova"]
},
"application/x-virtualbox-ovf": {
compressible: true,
extensions: ["ovf"]
},
"application/x-virtualbox-vbox": {
compressible: true,
extensions: ["vbox"]
},
"application/x-virtualbox-vbox-extpack": {
compressible: false,
extensions: ["vbox-extpack"]
},
"application/x-virtualbox-vdi": {
compressible: true,
extensions: ["vdi"]
},
"application/x-virtualbox-vhd": {
compressible: true,
extensions: ["vhd"]
},
"application/x-virtualbox-vmdk": {
compressible: true,
extensions: ["vmdk"]
},
"application/x-wais-source": {
source: "apache",
extensions: ["src"]
},
"application/x-web-app-manifest+json": {
compressible: true,
extensions: ["webapp"]
},
"application/x-www-form-urlencoded": {
source: "iana",
compressible: true
},
"application/x-x509-ca-cert": {
source: "iana",
extensions: ["der", "crt", "pem"]
},
"application/x-x509-ca-ra-cert": {
source: "iana"
},
"application/x-x509-next-ca-cert": {
source: "iana"
},
"application/x-xfig": {
source: "apache",
extensions: ["fig"]
},
"application/x-xliff+xml": {
source: "apache",
compressible: true,
extensions: ["xlf"]
},
"application/x-xpinstall": {
source: "apache",
compressible: false,
extensions: ["xpi"]
},
"application/x-xz": {
source: "apache",
extensions: ["xz"]
},
"application/x-zip-compressed": {
extensions: ["zip"]
},
"application/x-zmachine": {
source: "apache",
extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"]
},
"application/x400-bp": {
source: "iana"
},
"application/xacml+xml": {
source: "iana",
compressible: true
},
"application/xaml+xml": {
source: "apache",
compressible: true,
extensions: ["xaml"]
},
"application/xcap-att+xml": {
source: "iana",
compressible: true,
extensions: ["xav"]
},
"application/xcap-caps+xml": {
source: "iana",
compressible: true,
extensions: ["xca"]
},
"application/xcap-diff+xml": {
source: "iana",
compressible: true,
extensions: ["xdf"]
},
"application/xcap-el+xml": {
source: "iana",
compressible: true,
extensions: ["xel"]
},
"application/xcap-error+xml": {
source: "iana",
compressible: true
},
"application/xcap-ns+xml": {
source: "iana",
compressible: true,
extensions: ["xns"]
},
"application/xcon-conference-info+xml": {
source: "iana",
compressible: true
},
"application/xcon-conference-info-diff+xml": {
source: "iana",
compressible: true
},
"application/xenc+xml": {
source: "iana",
compressible: true,
extensions: ["xenc"]
},
"application/xfdf": {
source: "iana",
extensions: ["xfdf"]
},
"application/xhtml+xml": {
source: "iana",
compressible: true,
extensions: ["xhtml", "xht"]
},
"application/xhtml-voice+xml": {
source: "apache",
compressible: true
},
"application/xliff+xml": {
source: "iana",
compressible: true,
extensions: ["xlf"]
},
"application/xml": {
source: "iana",
compressible: true,
extensions: ["xml", "xsl", "xsd", "rng"]
},
"application/xml-dtd": {
source: "iana",
compressible: true,
extensions: ["dtd"]
},
"application/xml-external-parsed-entity": {
source: "iana"
},
"application/xml-patch+xml": {
source: "iana",
compressible: true
},
"application/xmpp+xml": {
source: "iana",
compressible: true
},
"application/xop+xml": {
source: "iana",
compressible: true,
extensions: ["xop"]
},
"application/xproc+xml": {
source: "apache",
compressible: true,
extensions: ["xpl"]
},
"application/xslt+xml": {
source: "iana",
compressible: true,
extensions: ["xsl", "xslt"]
},
"application/xspf+xml": {
source: "apache",
compressible: true,
extensions: ["xspf"]
},
"application/xv+xml": {
source: "iana",
compressible: true,
extensions: ["mxml", "xhvml", "xvml", "xvm"]
},
"application/yaml": {
source: "iana"
},
"application/yang": {
source: "iana",
extensions: ["yang"]
},
"application/yang-data+cbor": {
source: "iana"
},
"application/yang-data+json": {
source: "iana",
compressible: true
},
"application/yang-data+xml": {
source: "iana",
compressible: true
},
"application/yang-patch+json": {
source: "iana",
compressible: true
},
"application/yang-patch+xml": {
source: "iana",
compressible: true
},
"application/yang-sid+json": {
source: "iana",
compressible: true
},
"application/yin+xml": {
source: "iana",
compressible: true,
extensions: ["yin"]
},
"application/zip": {
source: "iana",
compressible: false,
extensions: ["zip"]
},
"application/zip+dotlottie": {
extensions: ["lottie"]
},
"application/zlib": {
source: "iana"
},
"application/zstd": {
source: "iana"
},
"audio/1d-interleaved-parityfec": {
source: "iana"
},
"audio/32kadpcm": {
source: "iana"
},
"audio/3gpp": {
source: "iana",
compressible: false,
extensions: ["3gpp"]
},
"audio/3gpp2": {
source: "iana"
},
"audio/aac": {
source: "iana",
extensions: ["adts", "aac"]
},
"audio/ac3": {
source: "iana"
},
"audio/adpcm": {
source: "apache",
extensions: ["adp"]
},
"audio/amr": {
source: "iana",
extensions: ["amr"]
},
"audio/amr-wb": {
source: "iana"
},
"audio/amr-wb+": {
source: "iana"
},
"audio/aptx": {
source: "iana"
},
"audio/asc": {
source: "iana"
},
"audio/atrac-advanced-lossless": {
source: "iana"
},
"audio/atrac-x": {
source: "iana"
},
"audio/atrac3": {
source: "iana"
},
"audio/basic": {
source: "iana",
compressible: false,
extensions: ["au", "snd"]
},
"audio/bv16": {
source: "iana"
},
"audio/bv32": {
source: "iana"
},
"audio/clearmode": {
source: "iana"
},
"audio/cn": {
source: "iana"
},
"audio/dat12": {
source: "iana"
},
"audio/dls": {
source: "iana"
},
"audio/dsr-es201108": {
source: "iana"
},
"audio/dsr-es202050": {
source: "iana"
},
"audio/dsr-es202211": {
source: "iana"
},
"audio/dsr-es202212": {
source: "iana"
},
"audio/dv": {
source: "iana"
},
"audio/dvi4": {
source: "iana"
},
"audio/eac3": {
source: "iana"
},
"audio/encaprtp": {
source: "iana"
},
"audio/evrc": {
source: "iana"
},
"audio/evrc-qcp": {
source: "iana"
},
"audio/evrc0": {
source: "iana"
},
"audio/evrc1": {
source: "iana"
},
"audio/evrcb": {
source: "iana"
},
"audio/evrcb0": {
source: "iana"
},
"audio/evrcb1": {
source: "iana"
},
"audio/evrcnw": {
source: "iana"
},
"audio/evrcnw0": {
source: "iana"
},
"audio/evrcnw1": {
source: "iana"
},
"audio/evrcwb": {
source: "iana"
},
"audio/evrcwb0": {
source: "iana"
},
"audio/evrcwb1": {
source: "iana"
},
"audio/evs": {
source: "iana"
},
"audio/flac": {
source: "iana"
},
"audio/flexfec": {
source: "iana"
},
"audio/fwdred": {
source: "iana"
},
"audio/g711-0": {
source: "iana"
},
"audio/g719": {
source: "iana"
},
"audio/g722": {
source: "iana"
},
"audio/g7221": {
source: "iana"
},
"audio/g723": {
source: "iana"
},
"audio/g726-16": {
source: "iana"
},
"audio/g726-24": {
source: "iana"
},
"audio/g726-32": {
source: "iana"
},
"audio/g726-40": {
source: "iana"
},
"audio/g728": {
source: "iana"
},
"audio/g729": {
source: "iana"
},
"audio/g7291": {
source: "iana"
},
"audio/g729d": {
source: "iana"
},
"audio/g729e": {
source: "iana"
},
"audio/gsm": {
source: "iana"
},
"audio/gsm-efr": {
source: "iana"
},
"audio/gsm-hr-08": {
source: "iana"
},
"audio/ilbc": {
source: "iana"
},
"audio/ip-mr_v2.5": {
source: "iana"
},
"audio/isac": {
source: "apache"
},
"audio/l16": {
source: "iana"
},
"audio/l20": {
source: "iana"
},
"audio/l24": {
source: "iana",
compressible: false
},
"audio/l8": {
source: "iana"
},
"audio/lpc": {
source: "iana"
},
"audio/matroska": {
source: "iana"
},
"audio/melp": {
source: "iana"
},
"audio/melp1200": {
source: "iana"
},
"audio/melp2400": {
source: "iana"
},
"audio/melp600": {
source: "iana"
},
"audio/mhas": {
source: "iana"
},
"audio/midi": {
source: "apache",
extensions: ["mid", "midi", "kar", "rmi"]
},
"audio/midi-clip": {
source: "iana"
},
"audio/mobile-xmf": {
source: "iana",
extensions: ["mxmf"]
},
"audio/mp3": {
compressible: false,
extensions: ["mp3"]
},
"audio/mp4": {
source: "iana",
compressible: false,
extensions: ["m4a", "mp4a", "m4b"]
},
"audio/mp4a-latm": {
source: "iana"
},
"audio/mpa": {
source: "iana"
},
"audio/mpa-robust": {
source: "iana"
},
"audio/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"]
},
"audio/mpeg4-generic": {
source: "iana"
},
"audio/musepack": {
source: "apache"
},
"audio/ogg": {
source: "iana",
compressible: false,
extensions: ["oga", "ogg", "spx", "opus"]
},
"audio/opus": {
source: "iana"
},
"audio/parityfec": {
source: "iana"
},
"audio/pcma": {
source: "iana"
},
"audio/pcma-wb": {
source: "iana"
},
"audio/pcmu": {
source: "iana"
},
"audio/pcmu-wb": {
source: "iana"
},
"audio/prs.sid": {
source: "iana"
},
"audio/qcelp": {
source: "iana"
},
"audio/raptorfec": {
source: "iana"
},
"audio/red": {
source: "iana"
},
"audio/rtp-enc-aescm128": {
source: "iana"
},
"audio/rtp-midi": {
source: "iana"
},
"audio/rtploopback": {
source: "iana"
},
"audio/rtx": {
source: "iana"
},
"audio/s3m": {
source: "apache",
extensions: ["s3m"]
},
"audio/scip": {
source: "iana"
},
"audio/silk": {
source: "apache",
extensions: ["sil"]
},
"audio/smv": {
source: "iana"
},
"audio/smv-qcp": {
source: "iana"
},
"audio/smv0": {
source: "iana"
},
"audio/sofa": {
source: "iana"
},
"audio/sp-midi": {
source: "iana"
},
"audio/speex": {
source: "iana"
},
"audio/t140c": {
source: "iana"
},
"audio/t38": {
source: "iana"
},
"audio/telephone-event": {
source: "iana"
},
"audio/tetra_acelp": {
source: "iana"
},
"audio/tetra_acelp_bb": {
source: "iana"
},
"audio/tone": {
source: "iana"
},
"audio/tsvcis": {
source: "iana"
},
"audio/uemclip": {
source: "iana"
},
"audio/ulpfec": {
source: "iana"
},
"audio/usac": {
source: "iana"
},
"audio/vdvi": {
source: "iana"
},
"audio/vmr-wb": {
source: "iana"
},
"audio/vnd.3gpp.iufp": {
source: "iana"
},
"audio/vnd.4sb": {
source: "iana"
},
"audio/vnd.audiokoz": {
source: "iana"
},
"audio/vnd.celp": {
source: "iana"
},
"audio/vnd.cisco.nse": {
source: "iana"
},
"audio/vnd.cmles.radio-events": {
source: "iana"
},
"audio/vnd.cns.anp1": {
source: "iana"
},
"audio/vnd.cns.inf1": {
source: "iana"
},
"audio/vnd.dece.audio": {
source: "iana",
extensions: ["uva", "uvva"]
},
"audio/vnd.digital-winds": {
source: "iana",
extensions: ["eol"]
},
"audio/vnd.dlna.adts": {
source: "iana"
},
"audio/vnd.dolby.heaac.1": {
source: "iana"
},
"audio/vnd.dolby.heaac.2": {
source: "iana"
},
"audio/vnd.dolby.mlp": {
source: "iana"
},
"audio/vnd.dolby.mps": {
source: "iana"
},
"audio/vnd.dolby.pl2": {
source: "iana"
},
"audio/vnd.dolby.pl2x": {
source: "iana"
},
"audio/vnd.dolby.pl2z": {
source: "iana"
},
"audio/vnd.dolby.pulse.1": {
source: "iana"
},
"audio/vnd.dra": {
source: "iana",
extensions: ["dra"]
},
"audio/vnd.dts": {
source: "iana",
extensions: ["dts"]
},
"audio/vnd.dts.hd": {
source: "iana",
extensions: ["dtshd"]
},
"audio/vnd.dts.uhd": {
source: "iana"
},
"audio/vnd.dvb.file": {
source: "iana"
},
"audio/vnd.everad.plj": {
source: "iana"
},
"audio/vnd.hns.audio": {
source: "iana"
},
"audio/vnd.lucent.voice": {
source: "iana",
extensions: ["lvp"]
},
"audio/vnd.ms-playready.media.pya": {
source: "iana",
extensions: ["pya"]
},
"audio/vnd.nokia.mobile-xmf": {
source: "iana"
},
"audio/vnd.nortel.vbk": {
source: "iana"
},
"audio/vnd.nuera.ecelp4800": {
source: "iana",
extensions: ["ecelp4800"]
},
"audio/vnd.nuera.ecelp7470": {
source: "iana",
extensions: ["ecelp7470"]
},
"audio/vnd.nuera.ecelp9600": {
source: "iana",
extensions: ["ecelp9600"]
},
"audio/vnd.octel.sbc": {
source: "iana"
},
"audio/vnd.presonus.multitrack": {
source: "iana"
},
"audio/vnd.qcelp": {
source: "apache"
},
"audio/vnd.rhetorex.32kadpcm": {
source: "iana"
},
"audio/vnd.rip": {
source: "iana",
extensions: ["rip"]
},
"audio/vnd.rn-realaudio": {
compressible: false
},
"audio/vnd.sealedmedia.softseal.mpeg": {
source: "iana"
},
"audio/vnd.vmx.cvsd": {
source: "iana"
},
"audio/vnd.wave": {
compressible: false
},
"audio/vorbis": {
source: "iana",
compressible: false
},
"audio/vorbis-config": {
source: "iana"
},
"audio/wav": {
compressible: false,
extensions: ["wav"]
},
"audio/wave": {
compressible: false,
extensions: ["wav"]
},
"audio/webm": {
source: "apache",
compressible: false,
extensions: ["weba"]
},
"audio/x-aac": {
source: "apache",
compressible: false,
extensions: ["aac"]
},
"audio/x-aiff": {
source: "apache",
extensions: ["aif", "aiff", "aifc"]
},
"audio/x-caf": {
source: "apache",
compressible: false,
extensions: ["caf"]
},
"audio/x-flac": {
source: "apache",
extensions: ["flac"]
},
"audio/x-m4a": {
source: "nginx",
extensions: ["m4a"]
},
"audio/x-matroska": {
source: "apache",
extensions: ["mka"]
},
"audio/x-mpegurl": {
source: "apache",
extensions: ["m3u"]
},
"audio/x-ms-wax": {
source: "apache",
extensions: ["wax"]
},
"audio/x-ms-wma": {
source: "apache",
extensions: ["wma"]
},
"audio/x-pn-realaudio": {
source: "apache",
extensions: ["ram", "ra"]
},
"audio/x-pn-realaudio-plugin": {
source: "apache",
extensions: ["rmp"]
},
"audio/x-realaudio": {
source: "nginx",
extensions: ["ra"]
},
"audio/x-tta": {
source: "apache"
},
"audio/x-wav": {
source: "apache",
extensions: ["wav"]
},
"audio/xm": {
source: "apache",
extensions: ["xm"]
},
"chemical/x-cdx": {
source: "apache",
extensions: ["cdx"]
},
"chemical/x-cif": {
source: "apache",
extensions: ["cif"]
},
"chemical/x-cmdf": {
source: "apache",
extensions: ["cmdf"]
},
"chemical/x-cml": {
source: "apache",
extensions: ["cml"]
},
"chemical/x-csml": {
source: "apache",
extensions: ["csml"]
},
"chemical/x-pdb": {
source: "apache"
},
"chemical/x-xyz": {
source: "apache",
extensions: ["xyz"]
},
"font/collection": {
source: "iana",
extensions: ["ttc"]
},
"font/otf": {
source: "iana",
compressible: true,
extensions: ["otf"]
},
"font/sfnt": {
source: "iana"
},
"font/ttf": {
source: "iana",
compressible: true,
extensions: ["ttf"]
},
"font/woff": {
source: "iana",
extensions: ["woff"]
},
"font/woff2": {
source: "iana",
extensions: ["woff2"]
},
"image/aces": {
source: "iana",
extensions: ["exr"]
},
"image/apng": {
source: "iana",
compressible: false,
extensions: ["apng"]
},
"image/avci": {
source: "iana",
extensions: ["avci"]
},
"image/avcs": {
source: "iana",
extensions: ["avcs"]
},
"image/avif": {
source: "iana",
compressible: false,
extensions: ["avif"]
},
"image/bmp": {
source: "iana",
compressible: true,
extensions: ["bmp", "dib"]
},
"image/cgm": {
source: "iana",
extensions: ["cgm"]
},
"image/dicom-rle": {
source: "iana",
extensions: ["drle"]
},
"image/dpx": {
source: "iana",
extensions: ["dpx"]
},
"image/emf": {
source: "iana",
extensions: ["emf"]
},
"image/fits": {
source: "iana",
extensions: ["fits"]
},
"image/g3fax": {
source: "iana",
extensions: ["g3"]
},
"image/gif": {
source: "iana",
compressible: false,
extensions: ["gif"]
},
"image/heic": {
source: "iana",
extensions: ["heic"]
},
"image/heic-sequence": {
source: "iana",
extensions: ["heics"]
},
"image/heif": {
source: "iana",
extensions: ["heif"]
},
"image/heif-sequence": {
source: "iana",
extensions: ["heifs"]
},
"image/hej2k": {
source: "iana",
extensions: ["hej2"]
},
"image/ief": {
source: "iana",
extensions: ["ief"]
},
"image/j2c": {
source: "iana"
},
"image/jaii": {
source: "iana",
extensions: ["jaii"]
},
"image/jais": {
source: "iana",
extensions: ["jais"]
},
"image/jls": {
source: "iana",
extensions: ["jls"]
},
"image/jp2": {
source: "iana",
compressible: false,
extensions: ["jp2", "jpg2"]
},
"image/jpeg": {
source: "iana",
compressible: false,
extensions: ["jpg", "jpeg", "jpe"]
},
"image/jph": {
source: "iana",
extensions: ["jph"]
},
"image/jphc": {
source: "iana",
extensions: ["jhc"]
},
"image/jpm": {
source: "iana",
compressible: false,
extensions: ["jpm", "jpgm"]
},
"image/jpx": {
source: "iana",
compressible: false,
extensions: ["jpx", "jpf"]
},
"image/jxl": {
source: "iana",
extensions: ["jxl"]
},
"image/jxr": {
source: "iana",
extensions: ["jxr"]
},
"image/jxra": {
source: "iana",
extensions: ["jxra"]
},
"image/jxrs": {
source: "iana",
extensions: ["jxrs"]
},
"image/jxs": {
source: "iana",
extensions: ["jxs"]
},
"image/jxsc": {
source: "iana",
extensions: ["jxsc"]
},
"image/jxsi": {
source: "iana",
extensions: ["jxsi"]
},
"image/jxss": {
source: "iana",
extensions: ["jxss"]
},
"image/ktx": {
source: "iana",
extensions: ["ktx"]
},
"image/ktx2": {
source: "iana",
extensions: ["ktx2"]
},
"image/naplps": {
source: "iana"
},
"image/pjpeg": {
compressible: false,
extensions: ["jfif"]
},
"image/png": {
source: "iana",
compressible: false,
extensions: ["png"]
},
"image/prs.btif": {
source: "iana",
extensions: ["btif", "btf"]
},
"image/prs.pti": {
source: "iana",
extensions: ["pti"]
},
"image/pwg-raster": {
source: "iana"
},
"image/sgi": {
source: "apache",
extensions: ["sgi"]
},
"image/svg+xml": {
source: "iana",
compressible: true,
extensions: ["svg", "svgz"]
},
"image/t38": {
source: "iana",
extensions: ["t38"]
},
"image/tiff": {
source: "iana",
compressible: false,
extensions: ["tif", "tiff"]
},
"image/tiff-fx": {
source: "iana",
extensions: ["tfx"]
},
"image/vnd.adobe.photoshop": {
source: "iana",
compressible: true,
extensions: ["psd"]
},
"image/vnd.airzip.accelerator.azv": {
source: "iana",
extensions: ["azv"]
},
"image/vnd.clip": {
source: "iana"
},
"image/vnd.cns.inf2": {
source: "iana"
},
"image/vnd.dece.graphic": {
source: "iana",
extensions: ["uvi", "uvvi", "uvg", "uvvg"]
},
"image/vnd.djvu": {
source: "iana",
extensions: ["djvu", "djv"]
},
"image/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"image/vnd.dwg": {
source: "iana",
extensions: ["dwg"]
},
"image/vnd.dxf": {
source: "iana",
extensions: ["dxf"]
},
"image/vnd.fastbidsheet": {
source: "iana",
extensions: ["fbs"]
},
"image/vnd.fpx": {
source: "iana",
extensions: ["fpx"]
},
"image/vnd.fst": {
source: "iana",
extensions: ["fst"]
},
"image/vnd.fujixerox.edmics-mmr": {
source: "iana",
extensions: ["mmr"]
},
"image/vnd.fujixerox.edmics-rlc": {
source: "iana",
extensions: ["rlc"]
},
"image/vnd.globalgraphics.pgb": {
source: "iana"
},
"image/vnd.microsoft.icon": {
source: "iana",
compressible: true,
extensions: ["ico"]
},
"image/vnd.mix": {
source: "iana"
},
"image/vnd.mozilla.apng": {
source: "iana"
},
"image/vnd.ms-dds": {
compressible: true,
extensions: ["dds"]
},
"image/vnd.ms-modi": {
source: "iana",
extensions: ["mdi"]
},
"image/vnd.ms-photo": {
source: "apache",
extensions: ["wdp"]
},
"image/vnd.net-fpx": {
source: "iana",
extensions: ["npx"]
},
"image/vnd.pco.b16": {
source: "iana",
extensions: ["b16"]
},
"image/vnd.radiance": {
source: "iana"
},
"image/vnd.sealed.png": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.gif": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.jpg": {
source: "iana"
},
"image/vnd.svf": {
source: "iana"
},
"image/vnd.tencent.tap": {
source: "iana",
extensions: ["tap"]
},
"image/vnd.valve.source.texture": {
source: "iana",
extensions: ["vtf"]
},
"image/vnd.wap.wbmp": {
source: "iana",
extensions: ["wbmp"]
},
"image/vnd.xiff": {
source: "iana",
extensions: ["xif"]
},
"image/vnd.zbrush.pcx": {
source: "iana",
extensions: ["pcx"]
},
"image/webp": {
source: "iana",
extensions: ["webp"]
},
"image/wmf": {
source: "iana",
extensions: ["wmf"]
},
"image/x-3ds": {
source: "apache",
extensions: ["3ds"]
},
"image/x-adobe-dng": {
extensions: ["dng"]
},
"image/x-cmu-raster": {
source: "apache",
extensions: ["ras"]
},
"image/x-cmx": {
source: "apache",
extensions: ["cmx"]
},
"image/x-emf": {
source: "iana"
},
"image/x-freehand": {
source: "apache",
extensions: ["fh", "fhc", "fh4", "fh5", "fh7"]
},
"image/x-icon": {
source: "apache",
compressible: true,
extensions: ["ico"]
},
"image/x-jng": {
source: "nginx",
extensions: ["jng"]
},
"image/x-mrsid-image": {
source: "apache",
extensions: ["sid"]
},
"image/x-ms-bmp": {
source: "nginx",
compressible: true,
extensions: ["bmp"]
},
"image/x-pcx": {
source: "apache",
extensions: ["pcx"]
},
"image/x-pict": {
source: "apache",
extensions: ["pic", "pct"]
},
"image/x-portable-anymap": {
source: "apache",
extensions: ["pnm"]
},
"image/x-portable-bitmap": {
source: "apache",
extensions: ["pbm"]
},
"image/x-portable-graymap": {
source: "apache",
extensions: ["pgm"]
},
"image/x-portable-pixmap": {
source: "apache",
extensions: ["ppm"]
},
"image/x-rgb": {
source: "apache",
extensions: ["rgb"]
},
"image/x-tga": {
source: "apache",
extensions: ["tga"]
},
"image/x-wmf": {
source: "iana"
},
"image/x-xbitmap": {
source: "apache",
extensions: ["xbm"]
},
"image/x-xcf": {
compressible: false
},
"image/x-xpixmap": {
source: "apache",
extensions: ["xpm"]
},
"image/x-xwindowdump": {
source: "apache",
extensions: ["xwd"]
},
"message/bhttp": {
source: "iana"
},
"message/cpim": {
source: "iana"
},
"message/delivery-status": {
source: "iana"
},
"message/disposition-notification": {
source: "iana",
extensions: [
"disposition-notification"
]
},
"message/external-body": {
source: "iana"
},
"message/feedback-report": {
source: "iana"
},
"message/global": {
source: "iana",
extensions: ["u8msg"]
},
"message/global-delivery-status": {
source: "iana",
extensions: ["u8dsn"]
},
"message/global-disposition-notification": {
source: "iana",
extensions: ["u8mdn"]
},
"message/global-headers": {
source: "iana",
extensions: ["u8hdr"]
},
"message/http": {
source: "iana",
compressible: false
},
"message/imdn+xml": {
source: "iana",
compressible: true
},
"message/mls": {
source: "iana"
},
"message/news": {
source: "apache"
},
"message/ohttp-req": {
source: "iana"
},
"message/ohttp-res": {
source: "iana"
},
"message/partial": {
source: "iana",
compressible: false
},
"message/rfc822": {
source: "iana",
compressible: true,
extensions: ["eml", "mime", "mht", "mhtml"]
},
"message/s-http": {
source: "apache"
},
"message/sip": {
source: "iana"
},
"message/sipfrag": {
source: "iana"
},
"message/tracking-status": {
source: "iana"
},
"message/vnd.si.simp": {
source: "apache"
},
"message/vnd.wfa.wsc": {
source: "iana",
extensions: ["wsc"]
},
"model/3mf": {
source: "iana",
extensions: ["3mf"]
},
"model/e57": {
source: "iana"
},
"model/gltf+json": {
source: "iana",
compressible: true,
extensions: ["gltf"]
},
"model/gltf-binary": {
source: "iana",
compressible: true,
extensions: ["glb"]
},
"model/iges": {
source: "iana",
compressible: false,
extensions: ["igs", "iges"]
},
"model/jt": {
source: "iana",
extensions: ["jt"]
},
"model/mesh": {
source: "iana",
compressible: false,
extensions: ["msh", "mesh", "silo"]
},
"model/mtl": {
source: "iana",
extensions: ["mtl"]
},
"model/obj": {
source: "iana",
extensions: ["obj"]
},
"model/prc": {
source: "iana",
extensions: ["prc"]
},
"model/step": {
source: "iana",
extensions: ["step", "stp", "stpnc", "p21", "210"]
},
"model/step+xml": {
source: "iana",
compressible: true,
extensions: ["stpx"]
},
"model/step+zip": {
source: "iana",
compressible: false,
extensions: ["stpz"]
},
"model/step-xml+zip": {
source: "iana",
compressible: false,
extensions: ["stpxz"]
},
"model/stl": {
source: "iana",
extensions: ["stl"]
},
"model/u3d": {
source: "iana",
extensions: ["u3d"]
},
"model/vnd.bary": {
source: "iana",
extensions: ["bary"]
},
"model/vnd.cld": {
source: "iana",
extensions: ["cld"]
},
"model/vnd.collada+xml": {
source: "iana",
compressible: true,
extensions: ["dae"]
},
"model/vnd.dwf": {
source: "iana",
extensions: ["dwf"]
},
"model/vnd.flatland.3dml": {
source: "iana"
},
"model/vnd.gdl": {
source: "iana",
extensions: ["gdl"]
},
"model/vnd.gs-gdl": {
source: "apache"
},
"model/vnd.gs.gdl": {
source: "iana"
},
"model/vnd.gtw": {
source: "iana",
extensions: ["gtw"]
},
"model/vnd.moml+xml": {
source: "iana",
compressible: true
},
"model/vnd.mts": {
source: "iana",
extensions: ["mts"]
},
"model/vnd.opengex": {
source: "iana",
extensions: ["ogex"]
},
"model/vnd.parasolid.transmit.binary": {
source: "iana",
extensions: ["x_b"]
},
"model/vnd.parasolid.transmit.text": {
source: "iana",
extensions: ["x_t"]
},
"model/vnd.pytha.pyox": {
source: "iana",
extensions: ["pyo", "pyox"]
},
"model/vnd.rosette.annotated-data-model": {
source: "iana"
},
"model/vnd.sap.vds": {
source: "iana",
extensions: ["vds"]
},
"model/vnd.usda": {
source: "iana",
extensions: ["usda"]
},
"model/vnd.usdz+zip": {
source: "iana",
compressible: false,
extensions: ["usdz"]
},
"model/vnd.valve.source.compiled-map": {
source: "iana",
extensions: ["bsp"]
},
"model/vnd.vtu": {
source: "iana",
extensions: ["vtu"]
},
"model/vrml": {
source: "iana",
compressible: false,
extensions: ["wrl", "vrml"]
},
"model/x3d+binary": {
source: "apache",
compressible: false,
extensions: ["x3db", "x3dbz"]
},
"model/x3d+fastinfoset": {
source: "iana",
extensions: ["x3db"]
},
"model/x3d+vrml": {
source: "apache",
compressible: false,
extensions: ["x3dv", "x3dvz"]
},
"model/x3d+xml": {
source: "iana",
compressible: true,
extensions: ["x3d", "x3dz"]
},
"model/x3d-vrml": {
source: "iana",
extensions: ["x3dv"]
},
"multipart/alternative": {
source: "iana",
compressible: false
},
"multipart/appledouble": {
source: "iana"
},
"multipart/byteranges": {
source: "iana"
},
"multipart/digest": {
source: "iana"
},
"multipart/encrypted": {
source: "iana",
compressible: false
},
"multipart/form-data": {
source: "iana",
compressible: false
},
"multipart/header-set": {
source: "iana"
},
"multipart/mixed": {
source: "iana"
},
"multipart/multilingual": {
source: "iana"
},
"multipart/parallel": {
source: "iana"
},
"multipart/related": {
source: "iana",
compressible: false
},
"multipart/report": {
source: "iana"
},
"multipart/signed": {
source: "iana",
compressible: false
},
"multipart/vnd.bint.med-plus": {
source: "iana"
},
"multipart/voice-message": {
source: "iana"
},
"multipart/x-mixed-replace": {
source: "iana"
},
"text/1d-interleaved-parityfec": {
source: "iana"
},
"text/cache-manifest": {
source: "iana",
compressible: true,
extensions: ["appcache", "manifest"]
},
"text/calendar": {
source: "iana",
extensions: ["ics", "ifb"]
},
"text/calender": {
compressible: true
},
"text/cmd": {
compressible: true
},
"text/coffeescript": {
extensions: ["coffee", "litcoffee"]
},
"text/cql": {
source: "iana"
},
"text/cql-expression": {
source: "iana"
},
"text/cql-identifier": {
source: "iana"
},
"text/css": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["css"]
},
"text/csv": {
source: "iana",
compressible: true,
extensions: ["csv"]
},
"text/csv-schema": {
source: "iana"
},
"text/directory": {
source: "iana"
},
"text/dns": {
source: "iana"
},
"text/ecmascript": {
source: "apache"
},
"text/encaprtp": {
source: "iana"
},
"text/enriched": {
source: "iana"
},
"text/fhirpath": {
source: "iana"
},
"text/flexfec": {
source: "iana"
},
"text/fwdred": {
source: "iana"
},
"text/gff3": {
source: "iana"
},
"text/grammar-ref-list": {
source: "iana"
},
"text/hl7v2": {
source: "iana"
},
"text/html": {
source: "iana",
compressible: true,
extensions: ["html", "htm", "shtml"]
},
"text/jade": {
extensions: ["jade"]
},
"text/javascript": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["js", "mjs"]
},
"text/jcr-cnd": {
source: "iana"
},
"text/jsx": {
compressible: true,
extensions: ["jsx"]
},
"text/less": {
compressible: true,
extensions: ["less"]
},
"text/markdown": {
source: "iana",
compressible: true,
extensions: ["md", "markdown"]
},
"text/mathml": {
source: "nginx",
extensions: ["mml"]
},
"text/mdx": {
compressible: true,
extensions: ["mdx"]
},
"text/mizar": {
source: "iana"
},
"text/n3": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["n3"]
},
"text/parameters": {
source: "iana",
charset: "UTF-8"
},
"text/parityfec": {
source: "iana"
},
"text/plain": {
source: "iana",
compressible: true,
extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"]
},
"text/provenance-notation": {
source: "iana",
charset: "UTF-8"
},
"text/prs.fallenstein.rst": {
source: "iana"
},
"text/prs.lines.tag": {
source: "iana",
extensions: ["dsc"]
},
"text/prs.prop.logic": {
source: "iana"
},
"text/prs.texi": {
source: "iana"
},
"text/raptorfec": {
source: "iana"
},
"text/red": {
source: "iana"
},
"text/rfc822-headers": {
source: "iana"
},
"text/richtext": {
source: "iana",
compressible: true,
extensions: ["rtx"]
},
"text/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"text/rtp-enc-aescm128": {
source: "iana"
},
"text/rtploopback": {
source: "iana"
},
"text/rtx": {
source: "iana"
},
"text/sgml": {
source: "iana",
extensions: ["sgml", "sgm"]
},
"text/shaclc": {
source: "iana"
},
"text/shex": {
source: "iana",
extensions: ["shex"]
},
"text/slim": {
extensions: ["slim", "slm"]
},
"text/spdx": {
source: "iana",
extensions: ["spdx"]
},
"text/strings": {
source: "iana"
},
"text/stylus": {
extensions: ["stylus", "styl"]
},
"text/t140": {
source: "iana"
},
"text/tab-separated-values": {
source: "iana",
compressible: true,
extensions: ["tsv"]
},
"text/troff": {
source: "iana",
extensions: ["t", "tr", "roff", "man", "me", "ms"]
},
"text/turtle": {
source: "iana",
charset: "UTF-8",
extensions: ["ttl"]
},
"text/ulpfec": {
source: "iana"
},
"text/uri-list": {
source: "iana",
compressible: true,
extensions: ["uri", "uris", "urls"]
},
"text/vcard": {
source: "iana",
compressible: true,
extensions: ["vcard"]
},
"text/vnd.a": {
source: "iana"
},
"text/vnd.abc": {
source: "iana"
},
"text/vnd.ascii-art": {
source: "iana"
},
"text/vnd.curl": {
source: "iana",
extensions: ["curl"]
},
"text/vnd.curl.dcurl": {
source: "apache",
extensions: ["dcurl"]
},
"text/vnd.curl.mcurl": {
source: "apache",
extensions: ["mcurl"]
},
"text/vnd.curl.scurl": {
source: "apache",
extensions: ["scurl"]
},
"text/vnd.debian.copyright": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.dmclientscript": {
source: "iana"
},
"text/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"text/vnd.esmertec.theme-descriptor": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.exchangeable": {
source: "iana"
},
"text/vnd.familysearch.gedcom": {
source: "iana",
extensions: ["ged"]
},
"text/vnd.ficlab.flt": {
source: "iana"
},
"text/vnd.fly": {
source: "iana",
extensions: ["fly"]
},
"text/vnd.fmi.flexstor": {
source: "iana",
extensions: ["flx"]
},
"text/vnd.gml": {
source: "iana"
},
"text/vnd.graphviz": {
source: "iana",
extensions: ["gv"]
},
"text/vnd.hans": {
source: "iana"
},
"text/vnd.hgl": {
source: "iana"
},
"text/vnd.in3d.3dml": {
source: "iana",
extensions: ["3dml"]
},
"text/vnd.in3d.spot": {
source: "iana",
extensions: ["spot"]
},
"text/vnd.iptc.newsml": {
source: "iana"
},
"text/vnd.iptc.nitf": {
source: "iana"
},
"text/vnd.latex-z": {
source: "iana"
},
"text/vnd.motorola.reflex": {
source: "iana"
},
"text/vnd.ms-mediapackage": {
source: "iana"
},
"text/vnd.net2phone.commcenter.command": {
source: "iana"
},
"text/vnd.radisys.msml-basic-layout": {
source: "iana"
},
"text/vnd.senx.warpscript": {
source: "iana"
},
"text/vnd.si.uricatalogue": {
source: "apache"
},
"text/vnd.sosi": {
source: "iana"
},
"text/vnd.sun.j2me.app-descriptor": {
source: "iana",
charset: "UTF-8",
extensions: ["jad"]
},
"text/vnd.trolltech.linguist": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.vcf": {
source: "iana"
},
"text/vnd.wap.si": {
source: "iana"
},
"text/vnd.wap.sl": {
source: "iana"
},
"text/vnd.wap.wml": {
source: "iana",
extensions: ["wml"]
},
"text/vnd.wap.wmlscript": {
source: "iana",
extensions: ["wmls"]
},
"text/vnd.zoo.kcl": {
source: "iana"
},
"text/vtt": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["vtt"]
},
"text/wgsl": {
source: "iana",
extensions: ["wgsl"]
},
"text/x-asm": {
source: "apache",
extensions: ["s", "asm"]
},
"text/x-c": {
source: "apache",
extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"]
},
"text/x-component": {
source: "nginx",
extensions: ["htc"]
},
"text/x-fortran": {
source: "apache",
extensions: ["f", "for", "f77", "f90"]
},
"text/x-gwt-rpc": {
compressible: true
},
"text/x-handlebars-template": {
extensions: ["hbs"]
},
"text/x-java-source": {
source: "apache",
extensions: ["java"]
},
"text/x-jquery-tmpl": {
compressible: true
},
"text/x-lua": {
extensions: ["lua"]
},
"text/x-markdown": {
compressible: true,
extensions: ["mkd"]
},
"text/x-nfo": {
source: "apache",
extensions: ["nfo"]
},
"text/x-opml": {
source: "apache",
extensions: ["opml"]
},
"text/x-org": {
compressible: true,
extensions: ["org"]
},
"text/x-pascal": {
source: "apache",
extensions: ["p", "pas"]
},
"text/x-processing": {
compressible: true,
extensions: ["pde"]
},
"text/x-sass": {
extensions: ["sass"]
},
"text/x-scss": {
extensions: ["scss"]
},
"text/x-setext": {
source: "apache",
extensions: ["etx"]
},
"text/x-sfv": {
source: "apache",
extensions: ["sfv"]
},
"text/x-suse-ymp": {
compressible: true,
extensions: ["ymp"]
},
"text/x-uuencode": {
source: "apache",
extensions: ["uu"]
},
"text/x-vcalendar": {
source: "apache",
extensions: ["vcs"]
},
"text/x-vcard": {
source: "apache",
extensions: ["vcf"]
},
"text/xml": {
source: "iana",
compressible: true,
extensions: ["xml"]
},
"text/xml-external-parsed-entity": {
source: "iana"
},
"text/yaml": {
compressible: true,
extensions: ["yaml", "yml"]
},
"video/1d-interleaved-parityfec": {
source: "iana"
},
"video/3gpp": {
source: "iana",
extensions: ["3gp", "3gpp"]
},
"video/3gpp-tt": {
source: "iana"
},
"video/3gpp2": {
source: "iana",
extensions: ["3g2"]
},
"video/av1": {
source: "iana"
},
"video/bmpeg": {
source: "iana"
},
"video/bt656": {
source: "iana"
},
"video/celb": {
source: "iana"
},
"video/dv": {
source: "iana"
},
"video/encaprtp": {
source: "iana"
},
"video/evc": {
source: "iana"
},
"video/ffv1": {
source: "iana"
},
"video/flexfec": {
source: "iana"
},
"video/h261": {
source: "iana",
extensions: ["h261"]
},
"video/h263": {
source: "iana",
extensions: ["h263"]
},
"video/h263-1998": {
source: "iana"
},
"video/h263-2000": {
source: "iana"
},
"video/h264": {
source: "iana",
extensions: ["h264"]
},
"video/h264-rcdo": {
source: "iana"
},
"video/h264-svc": {
source: "iana"
},
"video/h265": {
source: "iana"
},
"video/h266": {
source: "iana"
},
"video/iso.segment": {
source: "iana",
extensions: ["m4s"]
},
"video/jpeg": {
source: "iana",
extensions: ["jpgv"]
},
"video/jpeg2000": {
source: "iana"
},
"video/jpm": {
source: "apache",
extensions: ["jpm", "jpgm"]
},
"video/jxsv": {
source: "iana"
},
"video/lottie+json": {
source: "iana",
compressible: true
},
"video/matroska": {
source: "iana"
},
"video/matroska-3d": {
source: "iana"
},
"video/mj2": {
source: "iana",
extensions: ["mj2", "mjp2"]
},
"video/mp1s": {
source: "iana"
},
"video/mp2p": {
source: "iana"
},
"video/mp2t": {
source: "iana",
extensions: ["ts", "m2t", "m2ts", "mts"]
},
"video/mp4": {
source: "iana",
compressible: false,
extensions: ["mp4", "mp4v", "mpg4"]
},
"video/mp4v-es": {
source: "iana"
},
"video/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"]
},
"video/mpeg4-generic": {
source: "iana"
},
"video/mpv": {
source: "iana"
},
"video/nv": {
source: "iana"
},
"video/ogg": {
source: "iana",
compressible: false,
extensions: ["ogv"]
},
"video/parityfec": {
source: "iana"
},
"video/pointer": {
source: "iana"
},
"video/quicktime": {
source: "iana",
compressible: false,
extensions: ["qt", "mov"]
},
"video/raptorfec": {
source: "iana"
},
"video/raw": {
source: "iana"
},
"video/rtp-enc-aescm128": {
source: "iana"
},
"video/rtploopback": {
source: "iana"
},
"video/rtx": {
source: "iana"
},
"video/scip": {
source: "iana"
},
"video/smpte291": {
source: "iana"
},
"video/smpte292m": {
source: "iana"
},
"video/ulpfec": {
source: "iana"
},
"video/vc1": {
source: "iana"
},
"video/vc2": {
source: "iana"
},
"video/vnd.cctv": {
source: "iana"
},
"video/vnd.dece.hd": {
source: "iana",
extensions: ["uvh", "uvvh"]
},
"video/vnd.dece.mobile": {
source: "iana",
extensions: ["uvm", "uvvm"]
},
"video/vnd.dece.mp4": {
source: "iana"
},
"video/vnd.dece.pd": {
source: "iana",
extensions: ["uvp", "uvvp"]
},
"video/vnd.dece.sd": {
source: "iana",
extensions: ["uvs", "uvvs"]
},
"video/vnd.dece.video": {
source: "iana",
extensions: ["uvv", "uvvv"]
},
"video/vnd.directv.mpeg": {
source: "iana"
},
"video/vnd.directv.mpeg-tts": {
source: "iana"
},
"video/vnd.dlna.mpeg-tts": {
source: "iana"
},
"video/vnd.dvb.file": {
source: "iana",
extensions: ["dvb"]
},
"video/vnd.fvt": {
source: "iana",
extensions: ["fvt"]
},
"video/vnd.hns.video": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.ttsavc": {
source: "iana"
},
"video/vnd.iptvforum.ttsmpeg2": {
source: "iana"
},
"video/vnd.motorola.video": {
source: "iana"
},
"video/vnd.motorola.videop": {
source: "iana"
},
"video/vnd.mpegurl": {
source: "iana",
extensions: ["mxu", "m4u"]
},
"video/vnd.ms-playready.media.pyv": {
source: "iana",
extensions: ["pyv"]
},
"video/vnd.nokia.interleaved-multimedia": {
source: "iana"
},
"video/vnd.nokia.mp4vr": {
source: "iana"
},
"video/vnd.nokia.videovoip": {
source: "iana"
},
"video/vnd.objectvideo": {
source: "iana"
},
"video/vnd.planar": {
source: "iana"
},
"video/vnd.radgamettools.bink": {
source: "iana"
},
"video/vnd.radgamettools.smacker": {
source: "apache"
},
"video/vnd.sealed.mpeg1": {
source: "iana"
},
"video/vnd.sealed.mpeg4": {
source: "iana"
},
"video/vnd.sealed.swf": {
source: "iana"
},
"video/vnd.sealedmedia.softseal.mov": {
source: "iana"
},
"video/vnd.uvvu.mp4": {
source: "iana",
extensions: ["uvu", "uvvu"]
},
"video/vnd.vivo": {
source: "iana",
extensions: ["viv"]
},
"video/vnd.youtube.yt": {
source: "iana"
},
"video/vp8": {
source: "iana"
},
"video/vp9": {
source: "iana"
},
"video/webm": {
source: "apache",
compressible: false,
extensions: ["webm"]
},
"video/x-f4v": {
source: "apache",
extensions: ["f4v"]
},
"video/x-fli": {
source: "apache",
extensions: ["fli"]
},
"video/x-flv": {
source: "apache",
compressible: false,
extensions: ["flv"]
},
"video/x-m4v": {
source: "apache",
extensions: ["m4v"]
},
"video/x-matroska": {
source: "apache",
compressible: false,
extensions: ["mkv", "mk3d", "mks"]
},
"video/x-mng": {
source: "apache",
extensions: ["mng"]
},
"video/x-ms-asf": {
source: "apache",
extensions: ["asf", "asx"]
},
"video/x-ms-vob": {
source: "apache",
extensions: ["vob"]
},
"video/x-ms-wm": {
source: "apache",
extensions: ["wm"]
},
"video/x-ms-wmv": {
source: "apache",
compressible: false,
extensions: ["wmv"]
},
"video/x-ms-wmx": {
source: "apache",
extensions: ["wmx"]
},
"video/x-ms-wvx": {
source: "apache",
extensions: ["wvx"]
},
"video/x-msvideo": {
source: "apache",
extensions: ["avi"]
},
"video/x-sgi-movie": {
source: "apache",
extensions: ["movie"]
},
"video/x-smv": {
source: "apache",
extensions: ["smv"]
},
"x-conference/x-cooltalk": {
source: "apache",
extensions: ["ice"]
},
"x-shader/x-fragment": {
compressible: true
},
"x-shader/x-vertex": {
compressible: true
}
};
}
});
var require_mime_db4 = __commonJS2({
"node_modules/send/node_modules/mime-db/index.js"(exports2, module2) {
module2.exports = require_db4();
}
});
var require_mimeScore4 = __commonJS2({
"node_modules/send/node_modules/mime-types/mimeScore.js"(exports2, module2) {
var FACET_SCORES = {
"prs.": 100,
"x-": 200,
"x.": 300,
"vnd.": 400,
default: 900
};
var SOURCE_SCORES = {
nginx: 10,
apache: 20,
iana: 40,
default: 30
// definitions added by `jshttp/mime-db` project?
};
var TYPE_SCORES = {
// prefer application/xml over text/xml
// prefer application/rtf over text/rtf
application: 1,
// prefer font/woff over application/font-woff
font: 2,
default: 0
};
module2.exports = function mimeScore(mimeType, source = "default") {
if (mimeType === "application/octet-stream") {
return 0;
}
const [type, subtype] = mimeType.split("/");
const facet = subtype.replace(/(\.|x-).*/, "$1");
const facetScore = FACET_SCORES[facet] || FACET_SCORES.default;
const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default;
const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default;
const lengthScore = 1 - mimeType.length / 100;
return facetScore + sourceScore + typeScore + lengthScore;
};
}
});
var require_mime_types4 = __commonJS2({
"node_modules/send/node_modules/mime-types/index.js"(exports2) {
"use strict";
var db = require_mime_db4();
var extname = require("path").extname;
var mimeScore = require_mimeScore4();
var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
var TEXT_TYPE_REGEXP = /^text\//i;
exports2.charset = charset;
exports2.charsets = { lookup: charset };
exports2.contentType = contentType2;
exports2.extension = extension;
exports2.extensions = /* @__PURE__ */ Object.create(null);
exports2.lookup = lookup;
exports2.types = /* @__PURE__ */ Object.create(null);
exports2._extensionConflicts = [];
populateMaps(exports2.extensions, exports2.types);
function charset(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var mime = match && db[match[1].toLowerCase()];
if (mime && mime.charset) {
return mime.charset;
}
if (match && TEXT_TYPE_REGEXP.test(match[1])) {
return "UTF-8";
}
return false;
}
function contentType2(str) {
if (!str || typeof str !== "string") {
return false;
}
var mime = str.indexOf("/") === -1 ? exports2.lookup(str) : str;
if (!mime) {
return false;
}
if (mime.indexOf("charset") === -1) {
var charset2 = exports2.charset(mime);
if (charset2) mime += "; charset=" + charset2.toLowerCase();
}
return mime;
}
function extension(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var exts = match && exports2.extensions[match[1].toLowerCase()];
if (!exts || !exts.length) {
return false;
}
return exts[0];
}
function lookup(path) {
if (!path || typeof path !== "string") {
return false;
}
var extension2 = extname("x." + path).toLowerCase().slice(1);
if (!extension2) {
return false;
}
return exports2.types[extension2] || false;
}
function populateMaps(extensions, types) {
Object.keys(db).forEach(function forEachMimeType(type) {
var mime = db[type];
var exts = mime.extensions;
if (!exts || !exts.length) {
return;
}
extensions[type] = exts;
for (var i = 0; i < exts.length; i++) {
var extension2 = exts[i];
types[extension2] = _preferredType(extension2, types[extension2], type);
const legacyType = _preferredTypeLegacy(
extension2,
types[extension2],
type
);
if (legacyType !== types[extension2]) {
exports2._extensionConflicts.push([extension2, legacyType, types[extension2]]);
}
}
});
}
function _preferredType(ext, type0, type1) {
var score0 = type0 ? mimeScore(type0, db[type0].source) : 0;
var score1 = type1 ? mimeScore(type1, db[type1].source) : 0;
return score0 > score1 ? type0 : type1;
}
function _preferredTypeLegacy(ext, type0, type1) {
var SOURCE_RANK = ["nginx", "apache", void 0, "iana"];
var score0 = type0 ? SOURCE_RANK.indexOf(db[type0].source) : 0;
var score1 = type1 ? SOURCE_RANK.indexOf(db[type1].source) : 0;
if (exports2.types[extension] !== "application/octet-stream" && (score0 > score1 || score0 === score1 && exports2.types[extension]?.slice(0, 12) === "application/")) {
return type0;
}
return score0 > score1 ? type0 : type1;
}
}
});
var require_send = __commonJS2({
"node_modules/send/index.js"(exports2, module2) {
"use strict";
var createError = require_http_errors();
var debug = require_src2()("send");
var encodeUrl = require_encodeurl();
var escapeHtml = require_escape_html();
var etag = require_etag();
var fresh = require_fresh();
var fs = require("fs");
var mime = require_mime_types4();
var ms = require_ms2();
var onFinished = require_on_finished();
var parseRange = require_range_parser();
var path = require("path");
var statuses = require_statuses();
var Stream = require("stream");
var util22 = require("util");
var extname = path.extname;
var join = path.join;
var normalize = path.normalize;
var resolve = path.resolve;
var sep = path.sep;
var BYTES_RANGE_REGEXP = /^ *bytes=/;
var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1e3;
var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/;
module2.exports = send;
function send(req, path2, options) {
return new SendStream(req, path2, options);
}
function SendStream(req, path2, options) {
Stream.call(this);
var opts = options || {};
this.options = opts;
this.path = path2;
this.req = req;
this._acceptRanges = opts.acceptRanges !== void 0 ? Boolean(opts.acceptRanges) : true;
this._cacheControl = opts.cacheControl !== void 0 ? Boolean(opts.cacheControl) : true;
this._etag = opts.etag !== void 0 ? Boolean(opts.etag) : true;
this._dotfiles = opts.dotfiles !== void 0 ? opts.dotfiles : "ignore";
if (this._dotfiles !== "ignore" && this._dotfiles !== "allow" && this._dotfiles !== "deny") {
throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');
}
this._extensions = opts.extensions !== void 0 ? normalizeList(opts.extensions, "extensions option") : [];
this._immutable = opts.immutable !== void 0 ? Boolean(opts.immutable) : false;
this._index = opts.index !== void 0 ? normalizeList(opts.index, "index option") : ["index.html"];
this._lastModified = opts.lastModified !== void 0 ? Boolean(opts.lastModified) : true;
this._maxage = opts.maxAge || opts.maxage;
this._maxage = typeof this._maxage === "string" ? ms(this._maxage) : Number(this._maxage);
this._maxage = !isNaN(this._maxage) ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) : 0;
this._root = opts.root ? resolve(opts.root) : null;
}
util22.inherits(SendStream, Stream);
SendStream.prototype.error = function error(status, err2) {
if (hasListeners(this, "error")) {
return this.emit("error", createHttpError(status, err2));
}
var res = this.res;
var msg = statuses.message[status] || String(status);
var doc = createHtmlDocument("Error", escapeHtml(msg));
clearHeaders(res);
if (err2 && err2.headers) {
setHeaders(res, err2.headers);
}
res.statusCode = status;
res.setHeader("Content-Type", "text/html; charset=UTF-8");
res.setHeader("Content-Length", Buffer.byteLength(doc));
res.setHeader("Content-Security-Policy", "default-src 'none'");
res.setHeader("X-Content-Type-Options", "nosniff");
res.end(doc);
};
SendStream.prototype.hasTrailingSlash = function hasTrailingSlash() {
return this.path[this.path.length - 1] === "/";
};
SendStream.prototype.isConditionalGET = function isConditionalGET() {
return this.req.headers["if-match"] || this.req.headers["if-unmodified-since"] || this.req.headers["if-none-match"] || this.req.headers["if-modified-since"];
};
SendStream.prototype.isPreconditionFailure = function isPreconditionFailure() {
var req = this.req;
var res = this.res;
var match = req.headers["if-match"];
if (match) {
var etag2 = res.getHeader("ETag");
return !etag2 || match !== "*" && parseTokenList(match).every(function(match2) {
return match2 !== etag2 && match2 !== "W/" + etag2 && "W/" + match2 !== etag2;
});
}
var unmodifiedSince = parseHttpDate(req.headers["if-unmodified-since"]);
if (!isNaN(unmodifiedSince)) {
var lastModified = parseHttpDate(res.getHeader("Last-Modified"));
return isNaN(lastModified) || lastModified > unmodifiedSince;
}
return false;
};
SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields() {
var res = this.res;
res.removeHeader("Content-Encoding");
res.removeHeader("Content-Language");
res.removeHeader("Content-Length");
res.removeHeader("Content-Range");
res.removeHeader("Content-Type");
};
SendStream.prototype.notModified = function notModified() {
var res = this.res;
debug("not modified");
this.removeContentHeaderFields();
res.statusCode = 304;
res.end();
};
SendStream.prototype.headersAlreadySent = function headersAlreadySent() {
var err2 = new Error("Can't set headers after they are sent.");
debug("headers already sent");
this.error(500, err2);
};
SendStream.prototype.isCachable = function isCachable() {
var statusCode = this.res.statusCode;
return statusCode >= 200 && statusCode < 300 || statusCode === 304;
};
SendStream.prototype.onStatError = function onStatError(error) {
switch (error.code) {
case "ENAMETOOLONG":
case "ENOENT":
case "ENOTDIR":
this.error(404, error);
break;
default:
this.error(500, error);
break;
}
};
SendStream.prototype.isFresh = function isFresh() {
return fresh(this.req.headers, {
etag: this.res.getHeader("ETag"),
"last-modified": this.res.getHeader("Last-Modified")
});
};
SendStream.prototype.isRangeFresh = function isRangeFresh() {
var ifRange = this.req.headers["if-range"];
if (!ifRange) {
return true;
}
if (ifRange.indexOf('"') !== -1) {
var etag2 = this.res.getHeader("ETag");
return Boolean(etag2 && ifRange.indexOf(etag2) !== -1);
}
var lastModified = this.res.getHeader("Last-Modified");
return parseHttpDate(lastModified) <= parseHttpDate(ifRange);
};
SendStream.prototype.redirect = function redirect(path2) {
var res = this.res;
if (hasListeners(this, "directory")) {
this.emit("directory", res, path2);
return;
}
if (this.hasTrailingSlash()) {
this.error(403);
return;
}
var loc = encodeUrl(collapseLeadingSlashes(this.path + "/"));
var doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc));
res.statusCode = 301;
res.setHeader("Content-Type", "text/html; charset=UTF-8");
res.setHeader("Content-Length", Buffer.byteLength(doc));
res.setHeader("Content-Security-Policy", "default-src 'none'");
res.setHeader("X-Content-Type-Options", "nosniff");
res.setHeader("Location", loc);
res.end(doc);
};
SendStream.prototype.pipe = function pipe(res) {
var root = this._root;
this.res = res;
var path2 = decode(this.path);
if (path2 === -1) {
this.error(400);
return res;
}
if (~path2.indexOf("\0")) {
this.error(400);
return res;
}
var parts;
if (root !== null) {
if (path2) {
path2 = normalize("." + sep + path2);
}
if (UP_PATH_REGEXP.test(path2)) {
debug('malicious path "%s"', path2);
this.error(403);
return res;
}
parts = path2.split(sep);
path2 = normalize(join(root, path2));
} else {
if (UP_PATH_REGEXP.test(path2)) {
debug('malicious path "%s"', path2);
this.error(403);
return res;
}
parts = normalize(path2).split(sep);
path2 = resolve(path2);
}
if (containsDotFile(parts)) {
debug('%s dotfile "%s"', this._dotfiles, path2);
switch (this._dotfiles) {
case "allow":
break;
case "deny":
this.error(403);
return res;
case "ignore":
default:
this.error(404);
return res;
}
}
if (this._index.length && this.hasTrailingSlash()) {
this.sendIndex(path2);
return res;
}
this.sendFile(path2);
return res;
};
SendStream.prototype.send = function send2(path2, stat) {
var len = stat.size;
var options = this.options;
var opts = {};
var res = this.res;
var req = this.req;
var ranges = req.headers.range;
var offset = options.start || 0;
if (res.headersSent) {
this.headersAlreadySent();
return;
}
debug('pipe "%s"', path2);
this.setHeader(path2, stat);
this.type(path2);
if (this.isConditionalGET()) {
if (this.isPreconditionFailure()) {
this.error(412);
return;
}
if (this.isCachable() && this.isFresh()) {
this.notModified();
return;
}
}
len = Math.max(0, len - offset);
if (options.end !== void 0) {
var bytes = options.end - offset + 1;
if (len > bytes) len = bytes;
}
if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) {
ranges = parseRange(len, ranges, {
combine: true
});
if (!this.isRangeFresh()) {
debug("range stale");
ranges = -2;
}
if (ranges === -1) {
debug("range unsatisfiable");
res.setHeader("Content-Range", contentRange("bytes", len));
return this.error(416, {
headers: { "Content-Range": res.getHeader("Content-Range") }
});
}
if (ranges !== -2 && ranges.length === 1) {
debug("range %j", ranges);
res.statusCode = 206;
res.setHeader("Content-Range", contentRange("bytes", len, ranges[0]));
offset += ranges[0].start;
len = ranges[0].end - ranges[0].start + 1;
}
}
for (var prop in options) {
opts[prop] = options[prop];
}
opts.start = offset;
opts.end = Math.max(offset, offset + len - 1);
res.setHeader("Content-Length", len);
if (req.method === "HEAD") {
res.end();
return;
}
this.stream(path2, opts);
};
SendStream.prototype.sendFile = function sendFile(path2) {
var i = 0;
var self2 = this;
debug('stat "%s"', path2);
fs.stat(path2, function onstat(err2, stat) {
var pathEndsWithSep = path2[path2.length - 1] === sep;
if (err2 && err2.code === "ENOENT" && !extname(path2) && !pathEndsWithSep) {
return next(err2);
}
if (err2) return self2.onStatError(err2);
if (stat.isDirectory()) return self2.redirect(path2);
if (pathEndsWithSep) return self2.error(404);
self2.emit("file", path2, stat);
self2.send(path2, stat);
});
function next(err2) {
if (self2._extensions.length <= i) {
return err2 ? self2.onStatError(err2) : self2.error(404);
}
var p = path2 + "." + self2._extensions[i++];
debug('stat "%s"', p);
fs.stat(p, function(err3, stat) {
if (err3) return next(err3);
if (stat.isDirectory()) return next();
self2.emit("file", p, stat);
self2.send(p, stat);
});
}
};
SendStream.prototype.sendIndex = function sendIndex(path2) {
var i = -1;
var self2 = this;
function next(err2) {
if (++i >= self2._index.length) {
if (err2) return self2.onStatError(err2);
return self2.error(404);
}
var p = join(path2, self2._index[i]);
debug('stat "%s"', p);
fs.stat(p, function(err3, stat) {
if (err3) return next(err3);
if (stat.isDirectory()) return next();
self2.emit("file", p, stat);
self2.send(p, stat);
});
}
next();
};
SendStream.prototype.stream = function stream4(path2, options) {
var self2 = this;
var res = this.res;
var stream22 = fs.createReadStream(path2, options);
this.emit("stream", stream22);
stream22.pipe(res);
function cleanup() {
stream22.destroy();
}
onFinished(res, cleanup);
stream22.on("error", function onerror(err2) {
cleanup();
self2.onStatError(err2);
});
stream22.on("end", function onend() {
self2.emit("end");
});
};
SendStream.prototype.type = function type(path2) {
var res = this.res;
if (res.getHeader("Content-Type")) return;
var ext = extname(path2);
var type2 = mime.contentType(ext) || "application/octet-stream";
debug("content-type %s", type2);
res.setHeader("Content-Type", type2);
};
SendStream.prototype.setHeader = function setHeader(path2, stat) {
var res = this.res;
this.emit("headers", res, path2, stat);
if (this._acceptRanges && !res.getHeader("Accept-Ranges")) {
debug("accept ranges");
res.setHeader("Accept-Ranges", "bytes");
}
if (this._cacheControl && !res.getHeader("Cache-Control")) {
var cacheControl = "public, max-age=" + Math.floor(this._maxage / 1e3);
if (this._immutable) {
cacheControl += ", immutable";
}
debug("cache-control %s", cacheControl);
res.setHeader("Cache-Control", cacheControl);
}
if (this._lastModified && !res.getHeader("Last-Modified")) {
var modified = stat.mtime.toUTCString();
debug("modified %s", modified);
res.setHeader("Last-Modified", modified);
}
if (this._etag && !res.getHeader("ETag")) {
var val = etag(stat);
debug("etag %s", val);
res.setHeader("ETag", val);
}
};
function clearHeaders(res) {
for (const header of res.getHeaderNames()) {
res.removeHeader(header);
}
}
function collapseLeadingSlashes(str) {
for (var i = 0; i < str.length; i++) {
if (str[i] !== "/") {
break;
}
}
return i > 1 ? "/" + str.substr(i) : str;
}
function containsDotFile(parts) {
for (var i = 0; i < parts.length; i++) {
var part = parts[i];
if (part.length > 1 && part[0] === ".") {
return true;
}
}
return false;
}
function contentRange(type, size, range) {
return type + " " + (range ? range.start + "-" + range.end : "*") + "/" + size;
}
function createHtmlDocument(title, body) {
return '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>' + title + "</title>\n</head>\n<body>\n<pre>" + body + "</pre>\n</body>\n</html>\n";
}
function createHttpError(status, err2) {
if (!err2) {
return createError(status);
}
return err2 instanceof Error ? createError(status, err2, { expose: false }) : createError(status, err2);
}
function decode(path2) {
try {
return decodeURIComponent(path2);
} catch (err2) {
return -1;
}
}
function hasListeners(emitter, type) {
var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type);
return count > 0;
}
function normalizeList(val, name) {
var list = [].concat(val || []);
for (var i = 0; i < list.length; i++) {
if (typeof list[i] !== "string") {
throw new TypeError(name + " must be array of strings or false");
}
}
return list;
}
function parseHttpDate(date) {
var timestamp = date && Date.parse(date);
return typeof timestamp === "number" ? timestamp : NaN;
}
function parseTokenList(str) {
var end = 0;
var list = [];
var start = 0;
for (var i = 0, len = str.length; i < len; i++) {
switch (str.charCodeAt(i)) {
case 32:
if (start === end) {
start = end = i + 1;
}
break;
case 44:
if (start !== end) {
list.push(str.substring(start, end));
}
start = end = i + 1;
break;
default:
end = i + 1;
break;
}
}
if (start !== end) {
list.push(str.substring(start, end));
}
return list;
}
function setHeaders(res, headers) {
var keys = Object.keys(headers);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
res.setHeader(key, headers[key]);
}
}
}
});
var require_vary = __commonJS2({
"node_modules/vary/index.js"(exports2, module2) {
"use strict";
module2.exports = vary;
module2.exports.append = append2;
var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
function append2(header, field) {
if (typeof header !== "string") {
throw new TypeError("header argument is required");
}
if (!field) {
throw new TypeError("field argument is required");
}
var fields = !Array.isArray(field) ? parse(String(field)) : field;
for (var j = 0; j < fields.length; j++) {
if (!FIELD_NAME_REGEXP.test(fields[j])) {
throw new TypeError("field argument contains an invalid header name");
}
}
if (header === "*") {
return header;
}
var val = header;
var vals = parse(header.toLowerCase());
if (fields.indexOf("*") !== -1 || vals.indexOf("*") !== -1) {
return "*";
}
for (var i = 0; i < fields.length; i++) {
var fld = fields[i].toLowerCase();
if (vals.indexOf(fld) === -1) {
vals.push(fld);
val = val ? val + ", " + fields[i] : fields[i];
}
}
return val;
}
function parse(header) {
var end = 0;
var list = [];
var start = 0;
for (var i = 0, len = header.length; i < len; i++) {
switch (header.charCodeAt(i)) {
case 32:
if (start === end) {
start = end = i + 1;
}
break;
case 44:
list.push(header.substring(start, end));
start = end = i + 1;
break;
default:
end = i + 1;
break;
}
}
list.push(header.substring(start, end));
return list;
}
function vary(res, field) {
if (!res || !res.getHeader || !res.setHeader) {
throw new TypeError("res argument is required");
}
var val = res.getHeader("Vary") || "";
var header = Array.isArray(val) ? val.join(", ") : String(val);
if (val = append2(header, field)) {
res.setHeader("Vary", val);
}
}
}
});
var require_response = __commonJS2({
"node_modules/express/lib/response.js"(exports2, module2) {
"use strict";
var contentDisposition = require_content_disposition();
var createError = require_http_errors();
var encodeUrl = require_encodeurl();
var escapeHtml = require_escape_html();
var http2 = require("node:http");
var onFinished = require_on_finished();
var mime = require_mime_types22();
var path = require("node:path");
var pathIsAbsolute = require("node:path").isAbsolute;
var statuses = require_statuses();
var sign = require_cookie_signature().sign;
var normalizeType = require_utils3().normalizeType;
var normalizeTypes = require_utils3().normalizeTypes;
var setCharset = require_utils3().setCharset;
var cookie = require_cookie();
var send = require_send();
var extname = path.extname;
var resolve = path.resolve;
var vary = require_vary();
var res = Object.create(http2.ServerResponse.prototype);
module2.exports = res;
res.status = function status(code) {
if (!Number.isInteger(code)) {
throw new TypeError(`Invalid status code: ${JSON.stringify(code)}. Status code must be an integer.`);
}
if (code < 100 || code > 999) {
throw new RangeError(`Invalid status code: ${JSON.stringify(code)}. Status code must be greater than 99 and less than 1000.`);
}
this.statusCode = code;
return this;
};
res.links = function(links) {
var link = this.get("Link") || "";
if (link) link += ", ";
return this.set("Link", link + Object.keys(links).map(function(rel) {
if (Array.isArray(links[rel])) {
return links[rel].map(function(singleLink) {
return `<${singleLink}>; rel="${rel}"`;
}).join(", ");
} else {
return `<${links[rel]}>; rel="${rel}"`;
}
}).join(", "));
};
res.send = function send2(body) {
var chunk = body;
var encoding;
var req = this.req;
var type;
var app = this.app;
switch (typeof chunk) {
// string defaulting to html
case "string":
if (!this.get("Content-Type")) {
this.type("html");
}
break;
case "boolean":
case "number":
case "object":
if (chunk === null) {
chunk = "";
} else if (ArrayBuffer.isView(chunk)) {
if (!this.get("Content-Type")) {
this.type("bin");
}
} else {
return this.json(chunk);
}
break;
}
if (typeof chunk === "string") {
encoding = "utf8";
type = this.get("Content-Type");
if (typeof type === "string") {
this.set("Content-Type", setCharset(type, "utf-8"));
}
}
var etagFn = app.get("etag fn");
var generateETag = !this.get("ETag") && typeof etagFn === "function";
var len;
if (chunk !== void 0) {
if (Buffer.isBuffer(chunk)) {
len = chunk.length;
} else if (!generateETag && chunk.length < 1e3) {
len = Buffer.byteLength(chunk, encoding);
} else {
chunk = Buffer.from(chunk, encoding);
encoding = void 0;
len = chunk.length;
}
this.set("Content-Length", len);
}
var etag;
if (generateETag && len !== void 0) {
if (etag = etagFn(chunk, encoding)) {
this.set("ETag", etag);
}
}
if (req.fresh) this.status(304);
if (204 === this.statusCode || 304 === this.statusCode) {
this.removeHeader("Content-Type");
this.removeHeader("Content-Length");
this.removeHeader("Transfer-Encoding");
chunk = "";
}
if (this.statusCode === 205) {
this.set("Content-Length", "0");
this.removeHeader("Transfer-Encoding");
chunk = "";
}
if (req.method === "HEAD") {
this.end();
} else {
this.end(chunk, encoding);
}
return this;
};
res.json = function json(obj) {
var app = this.app;
var escape2 = app.get("json escape");
var replacer = app.get("json replacer");
var spaces = app.get("json spaces");
var body = stringify(obj, replacer, spaces, escape2);
if (!this.get("Content-Type")) {
this.set("Content-Type", "application/json");
}
return this.send(body);
};
res.jsonp = function jsonp(obj) {
var app = this.app;
var escape2 = app.get("json escape");
var replacer = app.get("json replacer");
var spaces = app.get("json spaces");
var body = stringify(obj, replacer, spaces, escape2);
var callback = this.req.query[app.get("jsonp callback name")];
if (!this.get("Content-Type")) {
this.set("X-Content-Type-Options", "nosniff");
this.set("Content-Type", "application/json");
}
if (Array.isArray(callback)) {
callback = callback[0];
}
if (typeof callback === "string" && callback.length !== 0) {
this.set("X-Content-Type-Options", "nosniff");
this.set("Content-Type", "text/javascript");
callback = callback.replace(/[^\[\]\w$.]/g, "");
if (body === void 0) {
body = "";
} else if (typeof body === "string") {
body = body.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
}
body = "/**/ typeof " + callback + " === 'function' && " + callback + "(" + body + ");";
}
return this.send(body);
};
res.sendStatus = function sendStatus(statusCode) {
var body = statuses.message[statusCode] || String(statusCode);
this.status(statusCode);
this.type("txt");
return this.send(body);
};
res.sendFile = function sendFile(path2, options, callback) {
var done = callback;
var req = this.req;
var res2 = this;
var next = req.next;
var opts = options || {};
if (!path2) {
throw new TypeError("path argument is required to res.sendFile");
}
if (typeof path2 !== "string") {
throw new TypeError("path must be a string to res.sendFile");
}
if (typeof options === "function") {
done = options;
opts = {};
}
if (!opts.root && !pathIsAbsolute(path2)) {
throw new TypeError("path must be absolute or specify root to res.sendFile");
}
var pathname = encodeURI(path2);
opts.etag = this.app.enabled("etag");
var file = send(req, pathname, opts);
sendfile(res2, file, opts, function(err2) {
if (done) return done(err2);
if (err2 && err2.code === "EISDIR") return next();
if (err2 && err2.code !== "ECONNABORTED" && err2.syscall !== "write") {
next(err2);
}
});
};
res.download = function download(path2, filename, options, callback) {
var done = callback;
var name = filename;
var opts = options || null;
if (typeof filename === "function") {
done = filename;
name = null;
opts = null;
} else if (typeof options === "function") {
done = options;
opts = null;
}
if (typeof filename === "object" && (typeof options === "function" || options === void 0)) {
name = null;
opts = filename;
}
var headers = {
"Content-Disposition": contentDisposition(name || path2)
};
if (opts && opts.headers) {
var keys = Object.keys(opts.headers);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (key.toLowerCase() !== "content-disposition") {
headers[key] = opts.headers[key];
}
}
}
opts = Object.create(opts);
opts.headers = headers;
var fullPath = !opts.root ? resolve(path2) : path2;
return this.sendFile(fullPath, opts, done);
};
res.contentType = res.type = function contentType2(type) {
var ct = type.indexOf("/") === -1 ? mime.contentType(type) || "application/octet-stream" : type;
return this.set("Content-Type", ct);
};
res.format = function(obj) {
var req = this.req;
var next = req.next;
var keys = Object.keys(obj).filter(function(v) {
return v !== "default";
});
var key = keys.length > 0 ? req.accepts(keys) : false;
this.vary("Accept");
if (key) {
this.set("Content-Type", normalizeType(key).value);
obj[key](req, this, next);
} else if (obj.default) {
obj.default(req, this, next);
} else {
next(createError(406, {
types: normalizeTypes(keys).map(function(o) {
return o.value;
})
}));
}
return this;
};
res.attachment = function attachment(filename) {
if (filename) {
this.type(extname(filename));
}
this.set("Content-Disposition", contentDisposition(filename));
return this;
};
res.append = function append2(field, val) {
var prev = this.get(field);
var value = val;
if (prev) {
value = Array.isArray(prev) ? prev.concat(val) : Array.isArray(val) ? [prev].concat(val) : [prev, val];
}
return this.set(field, value);
};
res.set = res.header = function header(field, val) {
if (arguments.length === 2) {
var value = Array.isArray(val) ? val.map(String) : String(val);
if (field.toLowerCase() === "content-type") {
if (Array.isArray(value)) {
throw new TypeError("Content-Type cannot be set to an Array");
}
value = mime.contentType(value);
}
this.setHeader(field, value);
} else {
for (var key in field) {
this.set(key, field[key]);
}
}
return this;
};
res.get = function(field) {
return this.getHeader(field);
};
res.clearCookie = function clearCookie(name, options) {
const opts = { path: "/", ...options, expires: /* @__PURE__ */ new Date(1) };
delete opts.maxAge;
return this.cookie(name, "", opts);
};
res.cookie = function(name, value, options) {
var opts = { ...options };
var secret = this.req.secret;
var signed = opts.signed;
if (signed && !secret) {
throw new Error('cookieParser("secret") required for signed cookies');
}
var val = typeof value === "object" ? "j:" + JSON.stringify(value) : String(value);
if (signed) {
val = "s:" + sign(val, secret);
}
if (opts.maxAge != null) {
var maxAge = opts.maxAge - 0;
if (!isNaN(maxAge)) {
opts.expires = new Date(Date.now() + maxAge);
opts.maxAge = Math.floor(maxAge / 1e3);
}
}
if (opts.path == null) {
opts.path = "/";
}
this.append("Set-Cookie", cookie.serialize(name, String(val), opts));
return this;
};
res.location = function location(url2) {
return this.set("Location", encodeUrl(url2));
};
res.redirect = function redirect(url2) {
var address = url2;
var body;
var status = 302;
if (arguments.length === 2) {
status = arguments[0];
address = arguments[1];
}
address = this.location(address).get("Location");
this.format({
text: function() {
body = statuses.message[status] + ". Redirecting to " + address;
},
html: function() {
var u = escapeHtml(address);
body = "<p>" + statuses.message[status] + ". Redirecting to " + u + "</p>";
},
default: function() {
body = "";
}
});
this.status(status);
this.set("Content-Length", Buffer.byteLength(body));
if (this.req.method === "HEAD") {
this.end();
} else {
this.end(body);
}
};
res.vary = function(field) {
vary(this, field);
return this;
};
res.render = function render(view, options, callback) {
var app = this.req.app;
var done = callback;
var opts = options || {};
var req = this.req;
var self2 = this;
if (typeof options === "function") {
done = options;
opts = {};
}
opts._locals = self2.locals;
done = done || function(err2, str) {
if (err2) return req.next(err2);
self2.send(str);
};
app.render(view, opts, done);
};
function sendfile(res2, file, options, callback) {
var done = false;
var streaming;
function onaborted() {
if (done) return;
done = true;
var err2 = new Error("Request aborted");
err2.code = "ECONNABORTED";
callback(err2);
}
function ondirectory() {
if (done) return;
done = true;
var err2 = new Error("EISDIR, read");
err2.code = "EISDIR";
callback(err2);
}
function onerror(err2) {
if (done) return;
done = true;
callback(err2);
}
function onend() {
if (done) return;
done = true;
callback();
}
function onfile() {
streaming = false;
}
function onfinish(err2) {
if (err2 && err2.code === "ECONNRESET") return onaborted();
if (err2) return onerror(err2);
if (done) return;
setImmediate(function() {
if (streaming !== false && !done) {
onaborted();
return;
}
if (done) return;
done = true;
callback();
});
}
function onstream() {
streaming = true;
}
file.on("directory", ondirectory);
file.on("end", onend);
file.on("error", onerror);
file.on("file", onfile);
file.on("stream", onstream);
onFinished(res2, onfinish);
if (options.headers) {
file.on("headers", function headers(res3) {
var obj = options.headers;
var keys = Object.keys(obj);
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
res3.setHeader(k, obj[k]);
}
});
}
file.pipe(res2);
}
function stringify(value, replacer, spaces, escape2) {
var json = replacer || spaces ? JSON.stringify(value, replacer, spaces) : JSON.stringify(value);
if (escape2 && typeof json === "string") {
json = json.replace(/[<>&]/g, function(c) {
switch (c.charCodeAt(0)) {
case 60:
return "\\u003c";
case 62:
return "\\u003e";
case 38:
return "\\u0026";
/* istanbul ignore next: unreachable default */
default:
return c;
}
});
}
return json;
}
}
});
var require_serve_static = __commonJS2({
"node_modules/serve-static/index.js"(exports2, module2) {
"use strict";
var encodeUrl = require_encodeurl();
var escapeHtml = require_escape_html();
var parseUrl = require_parseurl();
var resolve = require("path").resolve;
var send = require_send();
var url2 = require("url");
module2.exports = serveStatic;
function serveStatic(root, options) {
if (!root) {
throw new TypeError("root path required");
}
if (typeof root !== "string") {
throw new TypeError("root path must be a string");
}
var opts = Object.create(options || null);
var fallthrough = opts.fallthrough !== false;
var redirect = opts.redirect !== false;
var setHeaders = opts.setHeaders;
if (setHeaders && typeof setHeaders !== "function") {
throw new TypeError("option setHeaders must be function");
}
opts.maxage = opts.maxage || opts.maxAge || 0;
opts.root = resolve(root);
var onDirectory = redirect ? createRedirectDirectoryListener() : createNotFoundDirectoryListener();
return function serveStatic2(req, res, next) {
if (req.method !== "GET" && req.method !== "HEAD") {
if (fallthrough) {
return next();
}
res.statusCode = 405;
res.setHeader("Allow", "GET, HEAD");
res.setHeader("Content-Length", "0");
res.end();
return;
}
var forwardError = !fallthrough;
var originalUrl = parseUrl.original(req);
var path = parseUrl(req).pathname;
if (path === "/" && originalUrl.pathname.substr(-1) !== "/") {
path = "";
}
var stream4 = send(req, path, opts);
stream4.on("directory", onDirectory);
if (setHeaders) {
stream4.on("headers", setHeaders);
}
if (fallthrough) {
stream4.on("file", function onFile() {
forwardError = true;
});
}
stream4.on("error", function error(err2) {
if (forwardError || !(err2.statusCode < 500)) {
next(err2);
return;
}
next();
});
stream4.pipe(res);
};
}
function collapseLeadingSlashes(str) {
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) !== 47) {
break;
}
}
return i > 1 ? "/" + str.substr(i) : str;
}
function createHtmlDocument(title, body) {
return '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>' + title + "</title>\n</head>\n<body>\n<pre>" + body + "</pre>\n</body>\n</html>\n";
}
function createNotFoundDirectoryListener() {
return function notFound() {
this.error(404);
};
}
function createRedirectDirectoryListener() {
return function redirect(res) {
if (this.hasTrailingSlash()) {
this.error(404);
return;
}
var originalUrl = parseUrl.original(this.req);
originalUrl.path = null;
originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + "/");
var loc = encodeUrl(url2.format(originalUrl));
var doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc));
res.statusCode = 301;
res.setHeader("Content-Type", "text/html; charset=UTF-8");
res.setHeader("Content-Length", Buffer.byteLength(doc));
res.setHeader("Content-Security-Policy", "default-src 'none'");
res.setHeader("X-Content-Type-Options", "nosniff");
res.setHeader("Location", loc);
res.end(doc);
};
}
}
});
var require_express = __commonJS2({
"node_modules/express/lib/express.js"(exports2, module2) {
"use strict";
var bodyParser = require_body_parser();
var EventEmitter2 = require("node:events").EventEmitter;
var mixin = require_merge_descriptors();
var proto = require_application();
var Router = require_router();
var req = require_request();
var res = require_response();
exports2 = module2.exports = createApplication;
function createApplication() {
var app = function(req2, res2, next) {
app.handle(req2, res2, next);
};
mixin(app, EventEmitter2.prototype, false);
mixin(app, proto, false);
app.request = Object.create(req, {
app: { configurable: true, enumerable: true, writable: true, value: app }
});
app.response = Object.create(res, {
app: { configurable: true, enumerable: true, writable: true, value: app }
});
app.init();
return app;
}
exports2.application = proto;
exports2.request = req;
exports2.response = res;
exports2.Route = Router.Route;
exports2.Router = Router;
exports2.json = bodyParser.json;
exports2.raw = bodyParser.raw;
exports2.static = require_serve_static();
exports2.text = bodyParser.text;
exports2.urlencoded = bodyParser.urlencoded;
}
});
var require_express2 = __commonJS2({
"node_modules/express/index.js"(exports2, module2) {
"use strict";
module2.exports = require_express();
}
});
var require_lodash = __commonJS2({
"node_modules/lodash/lodash.js"(exports2, module2) {
(function() {
var undefined2;
var VERSION3 = "4.17.21";
var LARGE_ARRAY_SIZE = 200;
var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`";
var HASH_UNDEFINED = "__lodash_hash_undefined__";
var MAX_MEMOIZE_SIZE = 500;
var PLACEHOLDER = "__lodash_placeholder__";
var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4;
var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512;
var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = "...";
var HOT_COUNT = 800, HOT_SPAN = 16;
var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3;
var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0;
var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
var wrapFlags = [
["ary", WRAP_ARY_FLAG],
["bind", WRAP_BIND_FLAG],
["bindKey", WRAP_BIND_KEY_FLAG],
["curry", WRAP_CURRY_FLAG],
["curryRight", WRAP_CURRY_RIGHT_FLAG],
["flip", WRAP_FLIP_FLAG],
["partial", WRAP_PARTIAL_FLAG],
["partialRight", WRAP_PARTIAL_RIGHT_FLAG],
["rearg", WRAP_REARG_FLAG]
];
var argsTag = "[object Arguments]", arrayTag = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag = "[object Boolean]", dateTag = "[object Date]", domExcTag = "[object DOMException]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", nullTag = "[object Null]", objectTag = "[object Object]", promiseTag = "[object Promise]", proxyTag = "[object Proxy]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", undefinedTag = "[object Undefined]", weakMapTag = "[object WeakMap]", weakSetTag = "[object WeakSet]";
var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
var reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g;
var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
var reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g;
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source);
var reTrimStart = /^\s+/;
var reWhitespace = /\s/;
var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /;
var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/;
var reEscapeChar = /\\(\\)?/g;
var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
var reFlags = /\w*$/;
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
var reIsBinary = /^0b[01]+$/i;
var reIsHostCtor = /^\[object .+?Constructor\]$/;
var reIsOctal = /^0o[0-7]+$/i;
var reIsUint = /^(?:0|[1-9]\d*)$/;
var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
var reNoMatch = /($^)/;
var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
var rsApos = "['\u2019]", rsAstral = "[" + rsAstralRange + "]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d";
var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")";
var reApos = RegExp(rsApos, "g");
var reComboMark = RegExp(rsCombo, "g");
var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g");
var reUnicodeWord = RegExp([
rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")",
rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")",
rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower,
rsUpper + "+" + rsOptContrUpper,
rsOrdUpper,
rsOrdLower,
rsDigits,
rsEmoji
].join("|"), "g");
var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]");
var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
var contextProps = [
"Array",
"Buffer",
"DataView",
"Date",
"Error",
"Float32Array",
"Float64Array",
"Function",
"Int8Array",
"Int16Array",
"Int32Array",
"Map",
"Math",
"Object",
"Promise",
"RegExp",
"Set",
"String",
"Symbol",
"TypeError",
"Uint8Array",
"Uint8ClampedArray",
"Uint16Array",
"Uint32Array",
"WeakMap",
"_",
"clearTimeout",
"isFinite",
"parseInt",
"setTimeout"
];
var templateCounter = -1;
var typedArrayTags = {};
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
var cloneableTags = {};
cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
var deburredLetters = {
// Latin-1 Supplement block.
"\xC0": "A",
"\xC1": "A",
"\xC2": "A",
"\xC3": "A",
"\xC4": "A",
"\xC5": "A",
"\xE0": "a",
"\xE1": "a",
"\xE2": "a",
"\xE3": "a",
"\xE4": "a",
"\xE5": "a",
"\xC7": "C",
"\xE7": "c",
"\xD0": "D",
"\xF0": "d",
"\xC8": "E",
"\xC9": "E",
"\xCA": "E",
"\xCB": "E",
"\xE8": "e",
"\xE9": "e",
"\xEA": "e",
"\xEB": "e",
"\xCC": "I",
"\xCD": "I",
"\xCE": "I",
"\xCF": "I",
"\xEC": "i",
"\xED": "i",
"\xEE": "i",
"\xEF": "i",
"\xD1": "N",
"\xF1": "n",
"\xD2": "O",
"\xD3": "O",
"\xD4": "O",
"\xD5": "O",
"\xD6": "O",
"\xD8": "O",
"\xF2": "o",
"\xF3": "o",
"\xF4": "o",
"\xF5": "o",
"\xF6": "o",
"\xF8": "o",
"\xD9": "U",
"\xDA": "U",
"\xDB": "U",
"\xDC": "U",
"\xF9": "u",
"\xFA": "u",
"\xFB": "u",
"\xFC": "u",
"\xDD": "Y",
"\xFD": "y",
"\xFF": "y",
"\xC6": "Ae",
"\xE6": "ae",
"\xDE": "Th",
"\xFE": "th",
"\xDF": "ss",
// Latin Extended-A block.
"\u0100": "A",
"\u0102": "A",
"\u0104": "A",
"\u0101": "a",
"\u0103": "a",
"\u0105": "a",
"\u0106": "C",
"\u0108": "C",
"\u010A": "C",
"\u010C": "C",
"\u0107": "c",
"\u0109": "c",
"\u010B": "c",
"\u010D": "c",
"\u010E": "D",
"\u0110": "D",
"\u010F": "d",
"\u0111": "d",
"\u0112": "E",
"\u0114": "E",
"\u0116": "E",
"\u0118": "E",
"\u011A": "E",
"\u0113": "e",
"\u0115": "e",
"\u0117": "e",
"\u0119": "e",
"\u011B": "e",
"\u011C": "G",
"\u011E": "G",
"\u0120": "G",
"\u0122": "G",
"\u011D": "g",
"\u011F": "g",
"\u0121": "g",
"\u0123": "g",
"\u0124": "H",
"\u0126": "H",
"\u0125": "h",
"\u0127": "h",
"\u0128": "I",
"\u012A": "I",
"\u012C": "I",
"\u012E": "I",
"\u0130": "I",
"\u0129": "i",
"\u012B": "i",
"\u012D": "i",
"\u012F": "i",
"\u0131": "i",
"\u0134": "J",
"\u0135": "j",
"\u0136": "K",
"\u0137": "k",
"\u0138": "k",
"\u0139": "L",
"\u013B": "L",
"\u013D": "L",
"\u013F": "L",
"\u0141": "L",
"\u013A": "l",
"\u013C": "l",
"\u013E": "l",
"\u0140": "l",
"\u0142": "l",
"\u0143": "N",
"\u0145": "N",
"\u0147": "N",
"\u014A": "N",
"\u0144": "n",
"\u0146": "n",
"\u0148": "n",
"\u014B": "n",
"\u014C": "O",
"\u014E": "O",
"\u0150": "O",
"\u014D": "o",
"\u014F": "o",
"\u0151": "o",
"\u0154": "R",
"\u0156": "R",
"\u0158": "R",
"\u0155": "r",
"\u0157": "r",
"\u0159": "r",
"\u015A": "S",
"\u015C": "S",
"\u015E": "S",
"\u0160": "S",
"\u015B": "s",
"\u015D": "s",
"\u015F": "s",
"\u0161": "s",
"\u0162": "T",
"\u0164": "T",
"\u0166": "T",
"\u0163": "t",
"\u0165": "t",
"\u0167": "t",
"\u0168": "U",
"\u016A": "U",
"\u016C": "U",
"\u016E": "U",
"\u0170": "U",
"\u0172": "U",
"\u0169": "u",
"\u016B": "u",
"\u016D": "u",
"\u016F": "u",
"\u0171": "u",
"\u0173": "u",
"\u0174": "W",
"\u0175": "w",
"\u0176": "Y",
"\u0177": "y",
"\u0178": "Y",
"\u0179": "Z",
"\u017B": "Z",
"\u017D": "Z",
"\u017A": "z",
"\u017C": "z",
"\u017E": "z",
"\u0132": "IJ",
"\u0133": "ij",
"\u0152": "Oe",
"\u0153": "oe",
"\u0149": "'n",
"\u017F": "s"
};
var htmlEscapes = {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'"
};
var htmlUnescapes = {
"&": "&",
"<": "<",
">": ">",
""": '"',
"'": "'"
};
var stringEscapes = {
"\\": "\\",
"'": "'",
"\n": "n",
"\r": "r",
"\u2028": "u2028",
"\u2029": "u2029"
};
var freeParseFloat = parseFloat, freeParseInt = parseInt;
var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
var freeSelf = typeof self == "object" && self && self.Object === Object && self;
var root = freeGlobal || freeSelf || Function("return this")();
var freeExports = typeof exports2 == "object" && exports2 && !exports2.nodeType && exports2;
var freeModule = freeExports && typeof module2 == "object" && module2 && !module2.nodeType && module2;
var moduleExports = freeModule && freeModule.exports === freeExports;
var freeProcess = moduleExports && freeGlobal.process;
var nodeUtil = (function() {
try {
var types = freeModule && freeModule.require && freeModule.require("util").types;
if (types) {
return types;
}
return freeProcess && freeProcess.binding && freeProcess.binding("util");
} catch (e) {
}
})();
var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
function apply(func, thisArg, args) {
switch (args.length) {
case 0:
return func.call(thisArg);
case 1:
return func.call(thisArg, args[0]);
case 2:
return func.call(thisArg, args[0], args[1]);
case 3:
return func.call(thisArg, args[0], args[1], args[2]);
}
return func.apply(thisArg, args);
}
function arrayAggregator(array, setter, iteratee, accumulator) {
var index = -1, length = array == null ? 0 : array.length;
while (++index < length) {
var value = array[index];
setter(accumulator, value, iteratee(value), array);
}
return accumulator;
}
function arrayEach(array, iteratee) {
var index = -1, length = array == null ? 0 : array.length;
while (++index < length) {
if (iteratee(array[index], index, array) === false) {
break;
}
}
return array;
}
function arrayEachRight(array, iteratee) {
var length = array == null ? 0 : array.length;
while (length--) {
if (iteratee(array[length], length, array) === false) {
break;
}
}
return array;
}
function arrayEvery(array, predicate) {
var index = -1, length = array == null ? 0 : array.length;
while (++index < length) {
if (!predicate(array[index], index, array)) {
return false;
}
}
return true;
}
function arrayFilter(array, predicate) {
var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];
while (++index < length) {
var value = array[index];
if (predicate(value, index, array)) {
result[resIndex++] = value;
}
}
return result;
}
function arrayIncludes(array, value) {
var length = array == null ? 0 : array.length;
return !!length && baseIndexOf(array, value, 0) > -1;
}
function arrayIncludesWith(array, value, comparator) {
var index = -1, length = array == null ? 0 : array.length;
while (++index < length) {
if (comparator(value, array[index])) {
return true;
}
}
return false;
}
function arrayMap(array, iteratee) {
var index = -1, length = array == null ? 0 : array.length, result = Array(length);
while (++index < length) {
result[index] = iteratee(array[index], index, array);
}
return result;
}
function arrayPush(array, values) {
var index = -1, length = values.length, offset = array.length;
while (++index < length) {
array[offset + index] = values[index];
}
return array;
}
function arrayReduce(array, iteratee, accumulator, initAccum) {
var index = -1, length = array == null ? 0 : array.length;
if (initAccum && length) {
accumulator = array[++index];
}
while (++index < length) {
accumulator = iteratee(accumulator, array[index], index, array);
}
return accumulator;
}
function arrayReduceRight(array, iteratee, accumulator, initAccum) {
var length = array == null ? 0 : array.length;
if (initAccum && length) {
accumulator = array[--length];
}
while (length--) {
accumulator = iteratee(accumulator, array[length], length, array);
}
return accumulator;
}
function arraySome(array, predicate) {
var index = -1, length = array == null ? 0 : array.length;
while (++index < length) {
if (predicate(array[index], index, array)) {
return true;
}
}
return false;
}
var asciiSize = baseProperty("length");
function asciiToArray(string) {
return string.split("");
}
function asciiWords(string) {
return string.match(reAsciiWord) || [];
}
function baseFindKey(collection, predicate, eachFunc) {
var result;
eachFunc(collection, function(value, key, collection2) {
if (predicate(value, key, collection2)) {
result = key;
return false;
}
});
return result;
}
function baseFindIndex(array, predicate, fromIndex, fromRight) {
var length = array.length, index = fromIndex + (fromRight ? 1 : -1);
while (fromRight ? index-- : ++index < length) {
if (predicate(array[index], index, array)) {
return index;
}
}
return -1;
}
function baseIndexOf(array, value, fromIndex) {
return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);
}
function baseIndexOfWith(array, value, fromIndex, comparator) {
var index = fromIndex - 1, length = array.length;
while (++index < length) {
if (comparator(array[index], value)) {
return index;
}
}
return -1;
}
function baseIsNaN(value) {
return value !== value;
}
function baseMean(array, iteratee) {
var length = array == null ? 0 : array.length;
return length ? baseSum(array, iteratee) / length : NAN;
}
function baseProperty(key) {
return function(object) {
return object == null ? undefined2 : object[key];
};
}
function basePropertyOf(object) {
return function(key) {
return object == null ? undefined2 : object[key];
};
}
function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
eachFunc(collection, function(value, index, collection2) {
accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2);
});
return accumulator;
}
function baseSortBy(array, comparer) {
var length = array.length;
array.sort(comparer);
while (length--) {
array[length] = array[length].value;
}
return array;
}
function baseSum(array, iteratee) {
var result, index = -1, length = array.length;
while (++index < length) {
var current = iteratee(array[index]);
if (current !== undefined2) {
result = result === undefined2 ? current : result + current;
}
}
return result;
}
function baseTimes(n, iteratee) {
var index = -1, result = Array(n);
while (++index < n) {
result[index] = iteratee(index);
}
return result;
}
function baseToPairs(object, props) {
return arrayMap(props, function(key) {
return [key, object[key]];
});
}
function baseTrim(string) {
return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
}
function baseUnary(func) {
return function(value) {
return func(value);
};
}
function baseValues(object, props) {
return arrayMap(props, function(key) {
return object[key];
});
}
function cacheHas(cache, key) {
return cache.has(key);
}
function charsStartIndex(strSymbols, chrSymbols) {
var index = -1, length = strSymbols.length;
while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {
}
return index;
}
function charsEndIndex(strSymbols, chrSymbols) {
var index = strSymbols.length;
while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {
}
return index;
}
function countHolders(array, placeholder) {
var length = array.length, result = 0;
while (length--) {
if (array[length] === placeholder) {
++result;
}
}
return result;
}
var deburrLetter = basePropertyOf(deburredLetters);
var escapeHtmlChar = basePropertyOf(htmlEscapes);
function escapeStringChar(chr) {
return "\\" + stringEscapes[chr];
}
function getValue(object, key) {
return object == null ? undefined2 : object[key];
}
function hasUnicode(string) {
return reHasUnicode.test(string);
}
function hasUnicodeWord(string) {
return reHasUnicodeWord.test(string);
}
function iteratorToArray(iterator) {
var data, result = [];
while (!(data = iterator.next()).done) {
result.push(data.value);
}
return result;
}
function mapToArray(map) {
var index = -1, result = Array(map.size);
map.forEach(function(value, key) {
result[++index] = [key, value];
});
return result;
}
function overArg(func, transform) {
return function(arg) {
return func(transform(arg));
};
}
function replaceHolders(array, placeholder) {
var index = -1, length = array.length, resIndex = 0, result = [];
while (++index < length) {
var value = array[index];
if (value === placeholder || value === PLACEHOLDER) {
array[index] = PLACEHOLDER;
result[resIndex++] = index;
}
}
return result;
}
function setToArray(set) {
var index = -1, result = Array(set.size);
set.forEach(function(value) {
result[++index] = value;
});
return result;
}
function setToPairs(set) {
var index = -1, result = Array(set.size);
set.forEach(function(value) {
result[++index] = [value, value];
});
return result;
}
function strictIndexOf(array, value, fromIndex) {
var index = fromIndex - 1, length = array.length;
while (++index < length) {
if (array[index] === value) {
return index;
}
}
return -1;
}
function strictLastIndexOf(array, value, fromIndex) {
var index = fromIndex + 1;
while (index--) {
if (array[index] === value) {
return index;
}
}
return index;
}
function stringSize(string) {
return hasUnicode(string) ? unicodeSize(string) : asciiSize(string);
}
function stringToArray(string) {
return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);
}
function trimmedEndIndex(string) {
var index = string.length;
while (index-- && reWhitespace.test(string.charAt(index))) {
}
return index;
}
var unescapeHtmlChar = basePropertyOf(htmlUnescapes);
function unicodeSize(string) {
var result = reUnicode.lastIndex = 0;
while (reUnicode.test(string)) {
++result;
}
return result;
}
function unicodeToArray(string) {
return string.match(reUnicode) || [];
}
function unicodeWords(string) {
return string.match(reUnicodeWord) || [];
}
var runInContext = function runInContext2(context) {
context = context == null ? root : _2.defaults(root.Object(), context, _2.pick(root, contextProps));
var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError;
var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype;
var coreJsData = context["__core-js_shared__"];
var funcToString = funcProto.toString;
var hasOwnProperty2 = objectProto.hasOwnProperty;
var idCounter = 0;
var maskSrcKey = (function() {
var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
return uid ? "Symbol(src)_1." + uid : "";
})();
var nativeObjectToString = objectProto.toString;
var objectCtorString = funcToString.call(Object2);
var oldDash = root._;
var reIsNative = RegExp2(
"^" + funcToString.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
);
var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2;
var defineProperty = (function() {
try {
var func = getNative(Object2, "defineProperty");
func({}, "", {});
return func;
} catch (e) {
}
})();
var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse;
var DataView2 = getNative(context, "DataView"), Map2 = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set2 = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create");
var metaMap = WeakMap2 && new WeakMap2();
var realNames = {};
var dataViewCtorString = toSource(DataView2), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap2);
var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2;
function lodash(value) {
if (isObjectLike(value) && !isArray2(value) && !(value instanceof LazyWrapper)) {
if (value instanceof LodashWrapper) {
return value;
}
if (hasOwnProperty2.call(value, "__wrapped__")) {
return wrapperClone(value);
}
}
return new LodashWrapper(value);
}
var baseCreate = /* @__PURE__ */ (function() {
function object() {
}
return function(proto) {
if (!isObject2(proto)) {
return {};
}
if (objectCreate) {
return objectCreate(proto);
}
object.prototype = proto;
var result2 = new object();
object.prototype = undefined2;
return result2;
};
})();
function baseLodash() {
}
function LodashWrapper(value, chainAll) {
this.__wrapped__ = value;
this.__actions__ = [];
this.__chain__ = !!chainAll;
this.__index__ = 0;
this.__values__ = undefined2;
}
lodash.templateSettings = {
/**
* Used to detect `data` property values to be HTML-escaped.
*
* @memberOf _.templateSettings
* @type {RegExp}
*/
"escape": reEscape,
/**
* Used to detect code to be evaluated.
*
* @memberOf _.templateSettings
* @type {RegExp}
*/
"evaluate": reEvaluate,
/**
* Used to detect `data` property values to inject.
*
* @memberOf _.templateSettings
* @type {RegExp}
*/
"interpolate": reInterpolate,
/**
* Used to reference the data object in the template text.
*
* @memberOf _.templateSettings
* @type {string}
*/
"variable": "",
/**
* Used to import variables into the compiled template.
*
* @memberOf _.templateSettings
* @type {Object}
*/
"imports": {
/**
* A reference to the `lodash` function.
*
* @memberOf _.templateSettings.imports
* @type {Function}
*/
"_": lodash
}
};
lodash.prototype = baseLodash.prototype;
lodash.prototype.constructor = lodash;
LodashWrapper.prototype = baseCreate(baseLodash.prototype);
LodashWrapper.prototype.constructor = LodashWrapper;
function LazyWrapper(value) {
this.__wrapped__ = value;
this.__actions__ = [];
this.__dir__ = 1;
this.__filtered__ = false;
this.__iteratees__ = [];
this.__takeCount__ = MAX_ARRAY_LENGTH;
this.__views__ = [];
}
function lazyClone() {
var result2 = new LazyWrapper(this.__wrapped__);
result2.__actions__ = copyArray(this.__actions__);
result2.__dir__ = this.__dir__;
result2.__filtered__ = this.__filtered__;
result2.__iteratees__ = copyArray(this.__iteratees__);
result2.__takeCount__ = this.__takeCount__;
result2.__views__ = copyArray(this.__views__);
return result2;
}
function lazyReverse() {
if (this.__filtered__) {
var result2 = new LazyWrapper(this);
result2.__dir__ = -1;
result2.__filtered__ = true;
} else {
result2 = this.clone();
result2.__dir__ *= -1;
}
return result2;
}
function lazyValue() {
var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray2(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__);
if (!isArr || !isRight && arrLength == length && takeCount == length) {
return baseWrapperValue(array, this.__actions__);
}
var result2 = [];
outer:
while (length-- && resIndex < takeCount) {
index += dir;
var iterIndex = -1, value = array[index];
while (++iterIndex < iterLength) {
var data = iteratees[iterIndex], iteratee2 = data.iteratee, type = data.type, computed = iteratee2(value);
if (type == LAZY_MAP_FLAG) {
value = computed;
} else if (!computed) {
if (type == LAZY_FILTER_FLAG) {
continue outer;
} else {
break outer;
}
}
}
result2[resIndex++] = value;
}
return result2;
}
LazyWrapper.prototype = baseCreate(baseLodash.prototype);
LazyWrapper.prototype.constructor = LazyWrapper;
function Hash(entries) {
var index = -1, length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
var entry2 = entries[index];
this.set(entry2[0], entry2[1]);
}
}
function hashClear() {
this.__data__ = nativeCreate ? nativeCreate(null) : {};
this.size = 0;
}
function hashDelete(key) {
var result2 = this.has(key) && delete this.__data__[key];
this.size -= result2 ? 1 : 0;
return result2;
}
function hashGet(key) {
var data = this.__data__;
if (nativeCreate) {
var result2 = data[key];
return result2 === HASH_UNDEFINED ? undefined2 : result2;
}
return hasOwnProperty2.call(data, key) ? data[key] : undefined2;
}
function hashHas(key) {
var data = this.__data__;
return nativeCreate ? data[key] !== undefined2 : hasOwnProperty2.call(data, key);
}
function hashSet(key, value) {
var data = this.__data__;
this.size += this.has(key) ? 0 : 1;
data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value;
return this;
}
Hash.prototype.clear = hashClear;
Hash.prototype["delete"] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;
function ListCache(entries) {
var index = -1, length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
var entry2 = entries[index];
this.set(entry2[0], entry2[1]);
}
}
function listCacheClear() {
this.__data__ = [];
this.size = 0;
}
function listCacheDelete(key) {
var data = this.__data__, index = assocIndexOf(data, key);
if (index < 0) {
return false;
}
var lastIndex = data.length - 1;
if (index == lastIndex) {
data.pop();
} else {
splice.call(data, index, 1);
}
--this.size;
return true;
}
function listCacheGet(key) {
var data = this.__data__, index = assocIndexOf(data, key);
return index < 0 ? undefined2 : data[index][1];
}
function listCacheHas(key) {
return assocIndexOf(this.__data__, key) > -1;
}
function listCacheSet(key, value) {
var data = this.__data__, index = assocIndexOf(data, key);
if (index < 0) {
++this.size;
data.push([key, value]);
} else {
data[index][1] = value;
}
return this;
}
ListCache.prototype.clear = listCacheClear;
ListCache.prototype["delete"] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;
function MapCache(entries) {
var index = -1, length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
var entry2 = entries[index];
this.set(entry2[0], entry2[1]);
}
}
function mapCacheClear() {
this.size = 0;
this.__data__ = {
"hash": new Hash(),
"map": new (Map2 || ListCache)(),
"string": new Hash()
};
}
function mapCacheDelete(key) {
var result2 = getMapData(this, key)["delete"](key);
this.size -= result2 ? 1 : 0;
return result2;
}
function mapCacheGet(key) {
return getMapData(this, key).get(key);
}
function mapCacheHas(key) {
return getMapData(this, key).has(key);
}
function mapCacheSet(key, value) {
var data = getMapData(this, key), size2 = data.size;
data.set(key, value);
this.size += data.size == size2 ? 0 : 1;
return this;
}
MapCache.prototype.clear = mapCacheClear;
MapCache.prototype["delete"] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;
function SetCache(values2) {
var index = -1, length = values2 == null ? 0 : values2.length;
this.__data__ = new MapCache();
while (++index < length) {
this.add(values2[index]);
}
}
function setCacheAdd(value) {
this.__data__.set(value, HASH_UNDEFINED);
return this;
}
function setCacheHas(value) {
return this.__data__.has(value);
}
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
SetCache.prototype.has = setCacheHas;
function Stack(entries) {
var data = this.__data__ = new ListCache(entries);
this.size = data.size;
}
function stackClear() {
this.__data__ = new ListCache();
this.size = 0;
}
function stackDelete(key) {
var data = this.__data__, result2 = data["delete"](key);
this.size = data.size;
return result2;
}
function stackGet(key) {
return this.__data__.get(key);
}
function stackHas(key) {
return this.__data__.has(key);
}
function stackSet(key, value) {
var data = this.__data__;
if (data instanceof ListCache) {
var pairs = data.__data__;
if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) {
pairs.push([key, value]);
this.size = ++data.size;
return this;
}
data = this.__data__ = new MapCache(pairs);
}
data.set(key, value);
this.size = data.size;
return this;
}
Stack.prototype.clear = stackClear;
Stack.prototype["delete"] = stackDelete;
Stack.prototype.get = stackGet;
Stack.prototype.has = stackHas;
Stack.prototype.set = stackSet;
function arrayLikeKeys(value, inherited) {
var isArr = isArray2(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer2(value), isType = !isArr && !isArg && !isBuff && isTypedArray2(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length;
for (var key in value) {
if ((inherited || hasOwnProperty2.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
(key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
isIndex(key, length)))) {
result2.push(key);
}
}
return result2;
}
function arraySample(array) {
var length = array.length;
return length ? array[baseRandom(0, length - 1)] : undefined2;
}
function arraySampleSize(array, n) {
return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));
}
function arrayShuffle(array) {
return shuffleSelf(copyArray(array));
}
function assignMergeValue(object, key, value) {
if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) {
baseAssignValue(object, key, value);
}
}
function assignValue(object, key, value) {
var objValue = object[key];
if (!(hasOwnProperty2.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) {
baseAssignValue(object, key, value);
}
}
function assocIndexOf(array, key) {
var length = array.length;
while (length--) {
if (eq(array[length][0], key)) {
return length;
}
}
return -1;
}
function baseAggregator(collection, setter, iteratee2, accumulator) {
baseEach(collection, function(value, key, collection2) {
setter(accumulator, value, iteratee2(value), collection2);
});
return accumulator;
}
function baseAssign(object, source) {
return object && copyObject(source, keys(source), object);
}
function baseAssignIn(object, source) {
return object && copyObject(source, keysIn(source), object);
}
function baseAssignValue(object, key, value) {
if (key == "__proto__" && defineProperty) {
defineProperty(object, key, {
"configurable": true,
"enumerable": true,
"value": value,
"writable": true
});
} else {
object[key] = value;
}
}
function baseAt(object, paths) {
var index = -1, length = paths.length, result2 = Array2(length), skip = object == null;
while (++index < length) {
result2[index] = skip ? undefined2 : get(object, paths[index]);
}
return result2;
}
function baseClamp(number, lower, upper) {
if (number === number) {
if (upper !== undefined2) {
number = number <= upper ? number : upper;
}
if (lower !== undefined2) {
number = number >= lower ? number : lower;
}
}
return number;
}
function baseClone(value, bitmask, customizer, key, object, stack) {
var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG;
if (customizer) {
result2 = object ? customizer(value, key, object, stack) : customizer(value);
}
if (result2 !== undefined2) {
return result2;
}
if (!isObject2(value)) {
return value;
}
var isArr = isArray2(value);
if (isArr) {
result2 = initCloneArray(value);
if (!isDeep) {
return copyArray(value, result2);
}
} else {
var tag = getTag(value), isFunc = tag == funcTag || tag == genTag;
if (isBuffer2(value)) {
return cloneBuffer(value, isDeep);
}
if (tag == objectTag || tag == argsTag || isFunc && !object) {
result2 = isFlat || isFunc ? {} : initCloneObject(value);
if (!isDeep) {
return isFlat ? copySymbolsIn(value, baseAssignIn(result2, value)) : copySymbols(value, baseAssign(result2, value));
}
} else {
if (!cloneableTags[tag]) {
return object ? value : {};
}
result2 = initCloneByTag(value, tag, isDeep);
}
}
stack || (stack = new Stack());
var stacked = stack.get(value);
if (stacked) {
return stacked;
}
stack.set(value, result2);
if (isSet(value)) {
value.forEach(function(subValue) {
result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
});
} else if (isMap(value)) {
value.forEach(function(subValue, key2) {
result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
});
}
var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;
var props = isArr ? undefined2 : keysFunc(value);
arrayEach(props || value, function(subValue, key2) {
if (props) {
key2 = subValue;
subValue = value[key2];
}
assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
});
return result2;
}
function baseConforms(source) {
var props = keys(source);
return function(object) {
return baseConformsTo(object, source, props);
};
}
function baseConformsTo(object, source, props) {
var length = props.length;
if (object == null) {
return !length;
}
object = Object2(object);
while (length--) {
var key = props[length], predicate = source[key], value = object[key];
if (value === undefined2 && !(key in object) || !predicate(value)) {
return false;
}
}
return true;
}
function baseDelay(func, wait, args) {
if (typeof func != "function") {
throw new TypeError2(FUNC_ERROR_TEXT);
}
return setTimeout2(function() {
func.apply(undefined2, args);
}, wait);
}
function baseDifference(array, values2, iteratee2, comparator) {
var index = -1, includes2 = arrayIncludes, isCommon = true, length = array.length, result2 = [], valuesLength = values2.length;
if (!length) {
return result2;
}
if (iteratee2) {
values2 = arrayMap(values2, baseUnary(iteratee2));
}
if (comparator) {
includes2 = arrayIncludesWith;
isCommon = false;
} else if (values2.length >= LARGE_ARRAY_SIZE) {
includes2 = cacheHas;
isCommon = false;
values2 = new SetCache(values2);
}
outer:
while (++index < length) {
var value = array[index], computed = iteratee2 == null ? value : iteratee2(value);
value = comparator || value !== 0 ? value : 0;
if (isCommon && computed === computed) {
var valuesIndex = valuesLength;
while (valuesIndex--) {
if (values2[valuesIndex] === computed) {
continue outer;
}
}
result2.push(value);
} else if (!includes2(values2, computed, comparator)) {
result2.push(value);
}
}
return result2;
}
var baseEach = createBaseEach(baseForOwn);
var baseEachRight = createBaseEach(baseForOwnRight, true);
function baseEvery(collection, predicate) {
var result2 = true;
baseEach(collection, function(value, index, collection2) {
result2 = !!predicate(value, index, collection2);
return result2;
});
return result2;
}
function baseExtremum(array, iteratee2, comparator) {
var index = -1, length = array.length;
while (++index < length) {
var value = array[index], current = iteratee2(value);
if (current != null && (computed === undefined2 ? current === current && !isSymbol(current) : comparator(current, computed))) {
var computed = current, result2 = value;
}
}
return result2;
}
function baseFill(array, value, start, end) {
var length = array.length;
start = toInteger(start);
if (start < 0) {
start = -start > length ? 0 : length + start;
}
end = end === undefined2 || end > length ? length : toInteger(end);
if (end < 0) {
end += length;
}
end = start > end ? 0 : toLength(end);
while (start < end) {
array[start++] = value;
}
return array;
}
function baseFilter(collection, predicate) {
var result2 = [];
baseEach(collection, function(value, index, collection2) {
if (predicate(value, index, collection2)) {
result2.push(value);
}
});
return result2;
}
function baseFlatten(array, depth, predicate, isStrict, result2) {
var index = -1, length = array.length;
predicate || (predicate = isFlattenable);
result2 || (result2 = []);
while (++index < length) {
var value = array[index];
if (depth > 0 && predicate(value)) {
if (depth > 1) {
baseFlatten(value, depth - 1, predicate, isStrict, result2);
} else {
arrayPush(result2, value);
}
} else if (!isStrict) {
result2[result2.length] = value;
}
}
return result2;
}
var baseFor = createBaseFor();
var baseForRight = createBaseFor(true);
function baseForOwn(object, iteratee2) {
return object && baseFor(object, iteratee2, keys);
}
function baseForOwnRight(object, iteratee2) {
return object && baseForRight(object, iteratee2, keys);
}
function baseFunctions(object, props) {
return arrayFilter(props, function(key) {
return isFunction2(object[key]);
});
}
function baseGet(object, path) {
path = castPath(path, object);
var index = 0, length = path.length;
while (object != null && index < length) {
object = object[toKey(path[index++])];
}
return index && index == length ? object : undefined2;
}
function baseGetAllKeys(object, keysFunc, symbolsFunc) {
var result2 = keysFunc(object);
return isArray2(object) ? result2 : arrayPush(result2, symbolsFunc(object));
}
function baseGetTag(value) {
if (value == null) {
return value === undefined2 ? undefinedTag : nullTag;
}
return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value);
}
function baseGt(value, other) {
return value > other;
}
function baseHas(object, key) {
return object != null && hasOwnProperty2.call(object, key);
}
function baseHasIn(object, key) {
return object != null && key in Object2(object);
}
function baseInRange(number, start, end) {
return number >= nativeMin(start, end) && number < nativeMax(start, end);
}
function baseIntersection(arrays, iteratee2, comparator) {
var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = [];
while (othIndex--) {
var array = arrays[othIndex];
if (othIndex && iteratee2) {
array = arrayMap(array, baseUnary(iteratee2));
}
maxLength = nativeMin(array.length, maxLength);
caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2;
}
array = arrays[0];
var index = -1, seen = caches[0];
outer:
while (++index < length && result2.length < maxLength) {
var value = array[index], computed = iteratee2 ? iteratee2(value) : value;
value = comparator || value !== 0 ? value : 0;
if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) {
othIndex = othLength;
while (--othIndex) {
var cache = caches[othIndex];
if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) {
continue outer;
}
}
if (seen) {
seen.push(computed);
}
result2.push(value);
}
}
return result2;
}
function baseInverter(object, setter, iteratee2, accumulator) {
baseForOwn(object, function(value, key, object2) {
setter(accumulator, iteratee2(value), key, object2);
});
return accumulator;
}
function baseInvoke(object, path, args) {
path = castPath(path, object);
object = parent(object, path);
var func = object == null ? object : object[toKey(last(path))];
return func == null ? undefined2 : apply(func, object, args);
}
function baseIsArguments(value) {
return isObjectLike(value) && baseGetTag(value) == argsTag;
}
function baseIsArrayBuffer(value) {
return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;
}
function baseIsDate(value) {
return isObjectLike(value) && baseGetTag(value) == dateTag;
}
function baseIsEqual(value, other, bitmask, customizer, stack) {
if (value === other) {
return true;
}
if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {
return value !== value && other !== other;
}
return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
}
function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
var objIsArr = isArray2(object), othIsArr = isArray2(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);
objTag = objTag == argsTag ? objectTag : objTag;
othTag = othTag == argsTag ? objectTag : othTag;
var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
if (isSameTag && isBuffer2(object)) {
if (!isBuffer2(other)) {
return false;
}
objIsArr = true;
objIsObj = false;
}
if (isSameTag && !objIsObj) {
stack || (stack = new Stack());
return objIsArr || isTypedArray2(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
}
if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
var objIsWrapped = objIsObj && hasOwnProperty2.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty2.call(other, "__wrapped__");
if (objIsWrapped || othIsWrapped) {
var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
stack || (stack = new Stack());
return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
}
}
if (!isSameTag) {
return false;
}
stack || (stack = new Stack());
return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
}
function baseIsMap(value) {
return isObjectLike(value) && getTag(value) == mapTag;
}
function baseIsMatch(object, source, matchData, customizer) {
var index = matchData.length, length = index, noCustomizer = !customizer;
if (object == null) {
return !length;
}
object = Object2(object);
while (index--) {
var data = matchData[index];
if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {
return false;
}
}
while (++index < length) {
data = matchData[index];
var key = data[0], objValue = object[key], srcValue = data[1];
if (noCustomizer && data[2]) {
if (objValue === undefined2 && !(key in object)) {
return false;
}
} else {
var stack = new Stack();
if (customizer) {
var result2 = customizer(objValue, srcValue, key, object, source, stack);
}
if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) {
return false;
}
}
}
return true;
}
function baseIsNative(value) {
if (!isObject2(value) || isMasked(value)) {
return false;
}
var pattern = isFunction2(value) ? reIsNative : reIsHostCtor;
return pattern.test(toSource(value));
}
function baseIsRegExp(value) {
return isObjectLike(value) && baseGetTag(value) == regexpTag;
}
function baseIsSet(value) {
return isObjectLike(value) && getTag(value) == setTag;
}
function baseIsTypedArray(value) {
return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
}
function baseIteratee(value) {
if (typeof value == "function") {
return value;
}
if (value == null) {
return identity;
}
if (typeof value == "object") {
return isArray2(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);
}
return property(value);
}
function baseKeys(object) {
if (!isPrototype(object)) {
return nativeKeys(object);
}
var result2 = [];
for (var key in Object2(object)) {
if (hasOwnProperty2.call(object, key) && key != "constructor") {
result2.push(key);
}
}
return result2;
}
function baseKeysIn(object) {
if (!isObject2(object)) {
return nativeKeysIn(object);
}
var isProto = isPrototype(object), result2 = [];
for (var key in object) {
if (!(key == "constructor" && (isProto || !hasOwnProperty2.call(object, key)))) {
result2.push(key);
}
}
return result2;
}
function baseLt(value, other) {
return value < other;
}
function baseMap(collection, iteratee2) {
var index = -1, result2 = isArrayLike(collection) ? Array2(collection.length) : [];
baseEach(collection, function(value, key, collection2) {
result2[++index] = iteratee2(value, key, collection2);
});
return result2;
}
function baseMatches(source) {
var matchData = getMatchData(source);
if (matchData.length == 1 && matchData[0][2]) {
return matchesStrictComparable(matchData[0][0], matchData[0][1]);
}
return function(object) {
return object === source || baseIsMatch(object, source, matchData);
};
}
function baseMatchesProperty(path, srcValue) {
if (isKey(path) && isStrictComparable(srcValue)) {
return matchesStrictComparable(toKey(path), srcValue);
}
return function(object) {
var objValue = get(object, path);
return objValue === undefined2 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
};
}
function baseMerge(object, source, srcIndex, customizer, stack) {
if (object === source) {
return;
}
baseFor(source, function(srcValue, key) {
stack || (stack = new Stack());
if (isObject2(srcValue)) {
baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
} else {
var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined2;
if (newValue === undefined2) {
newValue = srcValue;
}
assignMergeValue(object, key, newValue);
}
}, keysIn);
}
function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);
if (stacked) {
assignMergeValue(object, key, stacked);
return;
}
var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : undefined2;
var isCommon = newValue === undefined2;
if (isCommon) {
var isArr = isArray2(srcValue), isBuff = !isArr && isBuffer2(srcValue), isTyped = !isArr && !isBuff && isTypedArray2(srcValue);
newValue = srcValue;
if (isArr || isBuff || isTyped) {
if (isArray2(objValue)) {
newValue = objValue;
} else if (isArrayLikeObject(objValue)) {
newValue = copyArray(objValue);
} else if (isBuff) {
isCommon = false;
newValue = cloneBuffer(srcValue, true);
} else if (isTyped) {
isCommon = false;
newValue = cloneTypedArray(srcValue, true);
} else {
newValue = [];
}
} else if (isPlainObject2(srcValue) || isArguments(srcValue)) {
newValue = objValue;
if (isArguments(objValue)) {
newValue = toPlainObject(objValue);
} else if (!isObject2(objValue) || isFunction2(objValue)) {
newValue = initCloneObject(srcValue);
}
} else {
isCommon = false;
}
}
if (isCommon) {
stack.set(srcValue, newValue);
mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
stack["delete"](srcValue);
}
assignMergeValue(object, key, newValue);
}
function baseNth(array, n) {
var length = array.length;
if (!length) {
return;
}
n += n < 0 ? length : 0;
return isIndex(n, length) ? array[n] : undefined2;
}
function baseOrderBy(collection, iteratees, orders) {
if (iteratees.length) {
iteratees = arrayMap(iteratees, function(iteratee2) {
if (isArray2(iteratee2)) {
return function(value) {
return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2);
};
}
return iteratee2;
});
} else {
iteratees = [identity];
}
var index = -1;
iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
var result2 = baseMap(collection, function(value, key, collection2) {
var criteria = arrayMap(iteratees, function(iteratee2) {
return iteratee2(value);
});
return { "criteria": criteria, "index": ++index, "value": value };
});
return baseSortBy(result2, function(object, other) {
return compareMultiple(object, other, orders);
});
}
function basePick(object, paths) {
return basePickBy(object, paths, function(value, path) {
return hasIn(object, path);
});
}
function basePickBy(object, paths, predicate) {
var index = -1, length = paths.length, result2 = {};
while (++index < length) {
var path = paths[index], value = baseGet(object, path);
if (predicate(value, path)) {
baseSet(result2, castPath(path, object), value);
}
}
return result2;
}
function basePropertyDeep(path) {
return function(object) {
return baseGet(object, path);
};
}
function basePullAll(array, values2, iteratee2, comparator) {
var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values2.length, seen = array;
if (array === values2) {
values2 = copyArray(values2);
}
if (iteratee2) {
seen = arrayMap(array, baseUnary(iteratee2));
}
while (++index < length) {
var fromIndex = 0, value = values2[index], computed = iteratee2 ? iteratee2(value) : value;
while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) {
if (seen !== array) {
splice.call(seen, fromIndex, 1);
}
splice.call(array, fromIndex, 1);
}
}
return array;
}
function basePullAt(array, indexes) {
var length = array ? indexes.length : 0, lastIndex = length - 1;
while (length--) {
var index = indexes[length];
if (length == lastIndex || index !== previous) {
var previous = index;
if (isIndex(index)) {
splice.call(array, index, 1);
} else {
baseUnset(array, index);
}
}
}
return array;
}
function baseRandom(lower, upper) {
return lower + nativeFloor(nativeRandom() * (upper - lower + 1));
}
function baseRange(start, end, step, fromRight) {
var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result2 = Array2(length);
while (length--) {
result2[fromRight ? length : ++index] = start;
start += step;
}
return result2;
}
function baseRepeat(string, n) {
var result2 = "";
if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
return result2;
}
do {
if (n % 2) {
result2 += string;
}
n = nativeFloor(n / 2);
if (n) {
string += string;
}
} while (n);
return result2;
}
function baseRest(func, start) {
return setToString(overRest(func, start, identity), func + "");
}
function baseSample(collection) {
return arraySample(values(collection));
}
function baseSampleSize(collection, n) {
var array = values(collection);
return shuffleSelf(array, baseClamp(n, 0, array.length));
}
function baseSet(object, path, value, customizer) {
if (!isObject2(object)) {
return object;
}
path = castPath(path, object);
var index = -1, length = path.length, lastIndex = length - 1, nested = object;
while (nested != null && ++index < length) {
var key = toKey(path[index]), newValue = value;
if (key === "__proto__" || key === "constructor" || key === "prototype") {
return object;
}
if (index != lastIndex) {
var objValue = nested[key];
newValue = customizer ? customizer(objValue, key, nested) : undefined2;
if (newValue === undefined2) {
newValue = isObject2(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};
}
}
assignValue(nested, key, newValue);
nested = nested[key];
}
return object;
}
var baseSetData = !metaMap ? identity : function(func, data) {
metaMap.set(func, data);
return func;
};
var baseSetToString = !defineProperty ? identity : function(func, string) {
return defineProperty(func, "toString", {
"configurable": true,
"enumerable": false,
"value": constant(string),
"writable": true
});
};
function baseShuffle(collection) {
return shuffleSelf(values(collection));
}
function baseSlice(array, start, end) {
var index = -1, length = array.length;
if (start < 0) {
start = -start > length ? 0 : length + start;
}
end = end > length ? length : end;
if (end < 0) {
end += length;
}
length = start > end ? 0 : end - start >>> 0;
start >>>= 0;
var result2 = Array2(length);
while (++index < length) {
result2[index] = array[index + start];
}
return result2;
}
function baseSome(collection, predicate) {
var result2;
baseEach(collection, function(value, index, collection2) {
result2 = predicate(value, index, collection2);
return !result2;
});
return !!result2;
}
function baseSortedIndex(array, value, retHighest) {
var low = 0, high = array == null ? low : array.length;
if (typeof value == "number" && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
while (low < high) {
var mid = low + high >>> 1, computed = array[mid];
if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) {
low = mid + 1;
} else {
high = mid;
}
}
return high;
}
return baseSortedIndexBy(array, value, identity, retHighest);
}
function baseSortedIndexBy(array, value, iteratee2, retHighest) {
var low = 0, high = array == null ? 0 : array.length;
if (high === 0) {
return 0;
}
value = iteratee2(value);
var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2;
while (low < high) {
var mid = nativeFloor((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed);
if (valIsNaN) {
var setLow = retHighest || othIsReflexive;
} else if (valIsUndefined) {
setLow = othIsReflexive && (retHighest || othIsDefined);
} else if (valIsNull) {
setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);
} else if (valIsSymbol) {
setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);
} else if (othIsNull || othIsSymbol) {
setLow = false;
} else {
setLow = retHighest ? computed <= value : computed < value;
}
if (setLow) {
low = mid + 1;
} else {
high = mid;
}
}
return nativeMin(high, MAX_ARRAY_INDEX);
}
function baseSortedUniq(array, iteratee2) {
var index = -1, length = array.length, resIndex = 0, result2 = [];
while (++index < length) {
var value = array[index], computed = iteratee2 ? iteratee2(value) : value;
if (!index || !eq(computed, seen)) {
var seen = computed;
result2[resIndex++] = value === 0 ? 0 : value;
}
}
return result2;
}
function baseToNumber(value) {
if (typeof value == "number") {
return value;
}
if (isSymbol(value)) {
return NAN;
}
return +value;
}
function baseToString(value) {
if (typeof value == "string") {
return value;
}
if (isArray2(value)) {
return arrayMap(value, baseToString) + "";
}
if (isSymbol(value)) {
return symbolToString ? symbolToString.call(value) : "";
}
var result2 = value + "";
return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2;
}
function baseUniq(array, iteratee2, comparator) {
var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result2 = [], seen = result2;
if (comparator) {
isCommon = false;
includes2 = arrayIncludesWith;
} else if (length >= LARGE_ARRAY_SIZE) {
var set2 = iteratee2 ? null : createSet(array);
if (set2) {
return setToArray(set2);
}
isCommon = false;
includes2 = cacheHas;
seen = new SetCache();
} else {
seen = iteratee2 ? [] : result2;
}
outer:
while (++index < length) {
var value = array[index], computed = iteratee2 ? iteratee2(value) : value;
value = comparator || value !== 0 ? value : 0;
if (isCommon && computed === computed) {
var seenIndex = seen.length;
while (seenIndex--) {
if (seen[seenIndex] === computed) {
continue outer;
}
}
if (iteratee2) {
seen.push(computed);
}
result2.push(value);
} else if (!includes2(seen, computed, comparator)) {
if (seen !== result2) {
seen.push(computed);
}
result2.push(value);
}
}
return result2;
}
function baseUnset(object, path) {
path = castPath(path, object);
object = parent(object, path);
return object == null || delete object[toKey(last(path))];
}
function baseUpdate(object, path, updater, customizer) {
return baseSet(object, path, updater(baseGet(object, path)), customizer);
}
function baseWhile(array, predicate, isDrop, fromRight) {
var length = array.length, index = fromRight ? length : -1;
while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) {
}
return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index);
}
function baseWrapperValue(value, actions) {
var result2 = value;
if (result2 instanceof LazyWrapper) {
result2 = result2.value();
}
return arrayReduce(actions, function(result3, action) {
return action.func.apply(action.thisArg, arrayPush([result3], action.args));
}, result2);
}
function baseXor(arrays, iteratee2, comparator) {
var length = arrays.length;
if (length < 2) {
return length ? baseUniq(arrays[0]) : [];
}
var index = -1, result2 = Array2(length);
while (++index < length) {
var array = arrays[index], othIndex = -1;
while (++othIndex < length) {
if (othIndex != index) {
result2[index] = baseDifference(result2[index] || array, arrays[othIndex], iteratee2, comparator);
}
}
}
return baseUniq(baseFlatten(result2, 1), iteratee2, comparator);
}
function baseZipObject(props, values2, assignFunc) {
var index = -1, length = props.length, valsLength = values2.length, result2 = {};
while (++index < length) {
var value = index < valsLength ? values2[index] : undefined2;
assignFunc(result2, props[index], value);
}
return result2;
}
function castArrayLikeObject(value) {
return isArrayLikeObject(value) ? value : [];
}
function castFunction(value) {
return typeof value == "function" ? value : identity;
}
function castPath(value, object) {
if (isArray2(value)) {
return value;
}
return isKey(value, object) ? [value] : stringToPath(toString3(value));
}
var castRest = baseRest;
function castSlice(array, start, end) {
var length = array.length;
end = end === undefined2 ? length : end;
return !start && end >= length ? array : baseSlice(array, start, end);
}
var clearTimeout2 = ctxClearTimeout || function(id) {
return root.clearTimeout(id);
};
function cloneBuffer(buffer, isDeep) {
if (isDeep) {
return buffer.slice();
}
var length = buffer.length, result2 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
buffer.copy(result2);
return result2;
}
function cloneArrayBuffer(arrayBuffer) {
var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength);
new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer));
return result2;
}
function cloneDataView(dataView, isDeep) {
var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
}
function cloneRegExp(regexp) {
var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp));
result2.lastIndex = regexp.lastIndex;
return result2;
}
function cloneSymbol(symbol) {
return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {};
}
function cloneTypedArray(typedArray, isDeep) {
var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
}
function compareAscending(value, other) {
if (value !== other) {
var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value);
var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other);
if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {
return 1;
}
if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {
return -1;
}
}
return 0;
}
function compareMultiple(object, other, orders) {
var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length;
while (++index < length) {
var result2 = compareAscending(objCriteria[index], othCriteria[index]);
if (result2) {
if (index >= ordersLength) {
return result2;
}
var order = orders[index];
return result2 * (order == "desc" ? -1 : 1);
}
}
return object.index - other.index;
}
function composeArgs(args, partials, holders, isCurried) {
var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried;
while (++leftIndex < leftLength) {
result2[leftIndex] = partials[leftIndex];
}
while (++argsIndex < holdersLength) {
if (isUncurried || argsIndex < argsLength) {
result2[holders[argsIndex]] = args[argsIndex];
}
}
while (rangeLength--) {
result2[leftIndex++] = args[argsIndex++];
}
return result2;
}
function composeArgsRight(args, partials, holders, isCurried) {
var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried;
while (++argsIndex < rangeLength) {
result2[argsIndex] = args[argsIndex];
}
var offset = argsIndex;
while (++rightIndex < rightLength) {
result2[offset + rightIndex] = partials[rightIndex];
}
while (++holdersIndex < holdersLength) {
if (isUncurried || argsIndex < argsLength) {
result2[offset + holders[holdersIndex]] = args[argsIndex++];
}
}
return result2;
}
function copyArray(source, array) {
var index = -1, length = source.length;
array || (array = Array2(length));
while (++index < length) {
array[index] = source[index];
}
return array;
}
function copyObject(source, props, object, customizer) {
var isNew = !object;
object || (object = {});
var index = -1, length = props.length;
while (++index < length) {
var key = props[index];
var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2;
if (newValue === undefined2) {
newValue = source[key];
}
if (isNew) {
baseAssignValue(object, key, newValue);
} else {
assignValue(object, key, newValue);
}
}
return object;
}
function copySymbols(source, object) {
return copyObject(source, getSymbols(source), object);
}
function copySymbolsIn(source, object) {
return copyObject(source, getSymbolsIn(source), object);
}
function createAggregator(setter, initializer) {
return function(collection, iteratee2) {
var func = isArray2(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {};
return func(collection, setter, getIteratee(iteratee2, 2), accumulator);
};
}
function createAssigner(assigner) {
return baseRest(function(object, sources) {
var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2;
customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : undefined2;
if (guard && isIterateeCall(sources[0], sources[1], guard)) {
customizer = length < 3 ? undefined2 : customizer;
length = 1;
}
object = Object2(object);
while (++index < length) {
var source = sources[index];
if (source) {
assigner(object, source, index, customizer);
}
}
return object;
});
}
function createBaseEach(eachFunc, fromRight) {
return function(collection, iteratee2) {
if (collection == null) {
return collection;
}
if (!isArrayLike(collection)) {
return eachFunc(collection, iteratee2);
}
var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection);
while (fromRight ? index-- : ++index < length) {
if (iteratee2(iterable[index], index, iterable) === false) {
break;
}
}
return collection;
};
}
function createBaseFor(fromRight) {
return function(object, iteratee2, keysFunc) {
var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length;
while (length--) {
var key = props[fromRight ? length : ++index];
if (iteratee2(iterable[key], key, iterable) === false) {
break;
}
}
return object;
};
}
function createBind(func, bitmask, thisArg) {
var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func);
function wrapper() {
var fn = this && this !== root && this instanceof wrapper ? Ctor : func;
return fn.apply(isBind ? thisArg : this, arguments);
}
return wrapper;
}
function createCaseFirst(methodName) {
return function(string) {
string = toString3(string);
var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined2;
var chr = strSymbols ? strSymbols[0] : string.charAt(0);
var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string.slice(1);
return chr[methodName]() + trailing;
};
}
function createCompounder(callback) {
return function(string) {
return arrayReduce(words(deburr(string).replace(reApos, "")), callback, "");
};
}
function createCtor(Ctor) {
return function() {
var args = arguments;
switch (args.length) {
case 0:
return new Ctor();
case 1:
return new Ctor(args[0]);
case 2:
return new Ctor(args[0], args[1]);
case 3:
return new Ctor(args[0], args[1], args[2]);
case 4:
return new Ctor(args[0], args[1], args[2], args[3]);
case 5:
return new Ctor(args[0], args[1], args[2], args[3], args[4]);
case 6:
return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);
case 7:
return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
}
var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args);
return isObject2(result2) ? result2 : thisBinding;
};
}
function createCurry(func, bitmask, arity) {
var Ctor = createCtor(func);
function wrapper() {
var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper);
while (index--) {
args[index] = arguments[index];
}
var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder);
length -= holders.length;
if (length < arity) {
return createRecurry(
func,
bitmask,
createHybrid,
wrapper.placeholder,
undefined2,
args,
holders,
undefined2,
undefined2,
arity - length
);
}
var fn = this && this !== root && this instanceof wrapper ? Ctor : func;
return apply(fn, this, args);
}
return wrapper;
}
function createFind(findIndexFunc) {
return function(collection, predicate, fromIndex) {
var iterable = Object2(collection);
if (!isArrayLike(collection)) {
var iteratee2 = getIteratee(predicate, 3);
collection = keys(collection);
predicate = function(key) {
return iteratee2(iterable[key], key, iterable);
};
}
var index = findIndexFunc(collection, predicate, fromIndex);
return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2;
};
}
function createFlow(fromRight) {
return flatRest(function(funcs) {
var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru;
if (fromRight) {
funcs.reverse();
}
while (index--) {
var func = funcs[index];
if (typeof func != "function") {
throw new TypeError2(FUNC_ERROR_TEXT);
}
if (prereq && !wrapper && getFuncName(func) == "wrapper") {
var wrapper = new LodashWrapper([], true);
}
}
index = wrapper ? index : length;
while (++index < length) {
func = funcs[index];
var funcName = getFuncName(func), data = funcName == "wrapper" ? getData(func) : undefined2;
if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) {
wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);
} else {
wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func);
}
}
return function() {
var args = arguments, value = args[0];
if (wrapper && args.length == 1 && isArray2(value)) {
return wrapper.plant(value).value();
}
var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value;
while (++index2 < length) {
result2 = funcs[index2].call(this, result2);
}
return result2;
};
});
}
function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) {
var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func);
function wrapper() {
var length = arguments.length, args = Array2(length), index = length;
while (index--) {
args[index] = arguments[index];
}
if (isCurried) {
var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder);
}
if (partials) {
args = composeArgs(args, partials, holders, isCurried);
}
if (partialsRight) {
args = composeArgsRight(args, partialsRight, holdersRight, isCurried);
}
length -= holdersCount;
if (isCurried && length < arity) {
var newHolders = replaceHolders(args, placeholder);
return createRecurry(
func,
bitmask,
createHybrid,
wrapper.placeholder,
thisArg,
args,
newHolders,
argPos,
ary2,
arity - length
);
}
var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func;
length = args.length;
if (argPos) {
args = reorder(args, argPos);
} else if (isFlip && length > 1) {
args.reverse();
}
if (isAry && ary2 < length) {
args.length = ary2;
}
if (this && this !== root && this instanceof wrapper) {
fn = Ctor || createCtor(fn);
}
return fn.apply(thisBinding, args);
}
return wrapper;
}
function createInverter(setter, toIteratee) {
return function(object, iteratee2) {
return baseInverter(object, setter, toIteratee(iteratee2), {});
};
}
function createMathOperation(operator, defaultValue) {
return function(value, other) {
var result2;
if (value === undefined2 && other === undefined2) {
return defaultValue;
}
if (value !== undefined2) {
result2 = value;
}
if (other !== undefined2) {
if (result2 === undefined2) {
return other;
}
if (typeof value == "string" || typeof other == "string") {
value = baseToString(value);
other = baseToString(other);
} else {
value = baseToNumber(value);
other = baseToNumber(other);
}
result2 = operator(value, other);
}
return result2;
};
}
function createOver(arrayFunc) {
return flatRest(function(iteratees) {
iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
return baseRest(function(args) {
var thisArg = this;
return arrayFunc(iteratees, function(iteratee2) {
return apply(iteratee2, thisArg, args);
});
});
});
}
function createPadding(length, chars) {
chars = chars === undefined2 ? " " : baseToString(chars);
var charsLength = chars.length;
if (charsLength < 2) {
return charsLength ? baseRepeat(chars, length) : chars;
}
var result2 = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length).join("") : result2.slice(0, length);
}
function createPartial(func, bitmask, thisArg, partials) {
var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func);
function wrapper() {
var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn = this && this !== root && this instanceof wrapper ? Ctor : func;
while (++leftIndex < leftLength) {
args[leftIndex] = partials[leftIndex];
}
while (argsLength--) {
args[leftIndex++] = arguments[++argsIndex];
}
return apply(fn, isBind ? thisArg : this, args);
}
return wrapper;
}
function createRange(fromRight) {
return function(start, end, step) {
if (step && typeof step != "number" && isIterateeCall(start, end, step)) {
end = step = undefined2;
}
start = toFinite(start);
if (end === undefined2) {
end = start;
start = 0;
} else {
end = toFinite(end);
}
step = step === undefined2 ? start < end ? 1 : -1 : toFinite(step);
return baseRange(start, end, step, fromRight);
};
}
function createRelationalOperation(operator) {
return function(value, other) {
if (!(typeof value == "string" && typeof other == "string")) {
value = toNumber(value);
other = toNumber(other);
}
return operator(value, other);
};
}
function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) {
var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials;
bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG;
bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);
if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {
bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);
}
var newData = [
func,
bitmask,
thisArg,
newPartials,
newHolders,
newPartialsRight,
newHoldersRight,
argPos,
ary2,
arity
];
var result2 = wrapFunc.apply(undefined2, newData);
if (isLaziable(func)) {
setData(result2, newData);
}
result2.placeholder = placeholder;
return setWrapToString(result2, func, bitmask);
}
function createRound(methodName) {
var func = Math2[methodName];
return function(number, precision) {
number = toNumber(number);
precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);
if (precision && nativeIsFinite(number)) {
var pair = (toString3(number) + "e").split("e"), value = func(pair[0] + "e" + (+pair[1] + precision));
pair = (toString3(value) + "e").split("e");
return +(pair[0] + "e" + (+pair[1] - precision));
}
return func(number);
};
}
var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop2 : function(values2) {
return new Set2(values2);
};
function createToPairs(keysFunc) {
return function(object) {
var tag = getTag(object);
if (tag == mapTag) {
return mapToArray(object);
}
if (tag == setTag) {
return setToPairs(object);
}
return baseToPairs(object, keysFunc(object));
};
}
function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) {
var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;
if (!isBindKey && typeof func != "function") {
throw new TypeError2(FUNC_ERROR_TEXT);
}
var length = partials ? partials.length : 0;
if (!length) {
bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);
partials = holders = undefined2;
}
ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0);
arity = arity === undefined2 ? arity : toInteger(arity);
length -= holders ? holders.length : 0;
if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {
var partialsRight = partials, holdersRight = holders;
partials = holders = undefined2;
}
var data = isBindKey ? undefined2 : getData(func);
var newData = [
func,
bitmask,
thisArg,
partials,
holders,
partialsRight,
holdersRight,
argPos,
ary2,
arity
];
if (data) {
mergeData(newData, data);
}
func = newData[0];
bitmask = newData[1];
thisArg = newData[2];
partials = newData[3];
holders = newData[4];
arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0);
if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {
bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);
}
if (!bitmask || bitmask == WRAP_BIND_FLAG) {
var result2 = createBind(func, bitmask, thisArg);
} else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {
result2 = createCurry(func, bitmask, arity);
} else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {
result2 = createPartial(func, bitmask, thisArg, partials);
} else {
result2 = createHybrid.apply(undefined2, newData);
}
var setter = data ? baseSetData : setData;
return setWrapToString(setter(result2, newData), func, bitmask);
}
function customDefaultsAssignIn(objValue, srcValue, key, object) {
if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty2.call(object, key)) {
return srcValue;
}
return objValue;
}
function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
if (isObject2(objValue) && isObject2(srcValue)) {
stack.set(srcValue, objValue);
baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack);
stack["delete"](srcValue);
}
return objValue;
}
function customOmitClone(value) {
return isPlainObject2(value) ? undefined2 : value;
}
function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length;
if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
return false;
}
var arrStacked = stack.get(array);
var othStacked = stack.get(other);
if (arrStacked && othStacked) {
return arrStacked == other && othStacked == array;
}
var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2;
stack.set(array, other);
stack.set(other, array);
while (++index < arrLength) {
var arrValue = array[index], othValue = other[index];
if (customizer) {
var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);
}
if (compared !== undefined2) {
if (compared) {
continue;
}
result2 = false;
break;
}
if (seen) {
if (!arraySome(other, function(othValue2, othIndex) {
if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
return seen.push(othIndex);
}
})) {
result2 = false;
break;
}
} else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
result2 = false;
break;
}
}
stack["delete"](array);
stack["delete"](other);
return result2;
}
function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
switch (tag) {
case dataViewTag:
if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {
return false;
}
object = object.buffer;
other = other.buffer;
case arrayBufferTag:
if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) {
return false;
}
return true;
case boolTag:
case dateTag:
case numberTag:
return eq(+object, +other);
case errorTag:
return object.name == other.name && object.message == other.message;
case regexpTag:
case stringTag:
return object == other + "";
case mapTag:
var convert = mapToArray;
case setTag:
var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
convert || (convert = setToArray);
if (object.size != other.size && !isPartial) {
return false;
}
var stacked = stack.get(object);
if (stacked) {
return stacked == other;
}
bitmask |= COMPARE_UNORDERED_FLAG;
stack.set(object, other);
var result2 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
stack["delete"](object);
return result2;
case symbolTag:
if (symbolValueOf) {
return symbolValueOf.call(object) == symbolValueOf.call(other);
}
}
return false;
}
function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
if (objLength != othLength && !isPartial) {
return false;
}
var index = objLength;
while (index--) {
var key = objProps[index];
if (!(isPartial ? key in other : hasOwnProperty2.call(other, key))) {
return false;
}
}
var objStacked = stack.get(object);
var othStacked = stack.get(other);
if (objStacked && othStacked) {
return objStacked == other && othStacked == object;
}
var result2 = true;
stack.set(object, other);
stack.set(other, object);
var skipCtor = isPartial;
while (++index < objLength) {
key = objProps[index];
var objValue = object[key], othValue = other[key];
if (customizer) {
var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
}
if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
result2 = false;
break;
}
skipCtor || (skipCtor = key == "constructor");
}
if (result2 && !skipCtor) {
var objCtor = object.constructor, othCtor = other.constructor;
if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
result2 = false;
}
}
stack["delete"](object);
stack["delete"](other);
return result2;
}
function flatRest(func) {
return setToString(overRest(func, undefined2, flatten), func + "");
}
function getAllKeys(object) {
return baseGetAllKeys(object, keys, getSymbols);
}
function getAllKeysIn(object) {
return baseGetAllKeys(object, keysIn, getSymbolsIn);
}
var getData = !metaMap ? noop2 : function(func) {
return metaMap.get(func);
};
function getFuncName(func) {
var result2 = func.name + "", array = realNames[result2], length = hasOwnProperty2.call(realNames, result2) ? array.length : 0;
while (length--) {
var data = array[length], otherFunc = data.func;
if (otherFunc == null || otherFunc == func) {
return data.name;
}
}
return result2;
}
function getHolder(func) {
var object = hasOwnProperty2.call(lodash, "placeholder") ? lodash : func;
return object.placeholder;
}
function getIteratee() {
var result2 = lodash.iteratee || iteratee;
result2 = result2 === iteratee ? baseIteratee : result2;
return arguments.length ? result2(arguments[0], arguments[1]) : result2;
}
function getMapData(map2, key) {
var data = map2.__data__;
return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
}
function getMatchData(object) {
var result2 = keys(object), length = result2.length;
while (length--) {
var key = result2[length], value = object[key];
result2[length] = [key, value, isStrictComparable(value)];
}
return result2;
}
function getNative(object, key) {
var value = getValue(object, key);
return baseIsNative(value) ? value : undefined2;
}
function getRawTag(value) {
var isOwn = hasOwnProperty2.call(value, symToStringTag), tag = value[symToStringTag];
try {
value[symToStringTag] = undefined2;
var unmasked = true;
} catch (e) {
}
var result2 = nativeObjectToString.call(value);
if (unmasked) {
if (isOwn) {
value[symToStringTag] = tag;
} else {
delete value[symToStringTag];
}
}
return result2;
}
var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
if (object == null) {
return [];
}
object = Object2(object);
return arrayFilter(nativeGetSymbols(object), function(symbol) {
return propertyIsEnumerable.call(object, symbol);
});
};
var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
var result2 = [];
while (object) {
arrayPush(result2, getSymbols(object));
object = getPrototype(object);
}
return result2;
};
var getTag = baseGetTag;
if (DataView2 && getTag(new DataView2(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) {
getTag = function(value) {
var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : "";
if (ctorString) {
switch (ctorString) {
case dataViewCtorString:
return dataViewTag;
case mapCtorString:
return mapTag;
case promiseCtorString:
return promiseTag;
case setCtorString:
return setTag;
case weakMapCtorString:
return weakMapTag;
}
}
return result2;
};
}
function getView(start, end, transforms) {
var index = -1, length = transforms.length;
while (++index < length) {
var data = transforms[index], size2 = data.size;
switch (data.type) {
case "drop":
start += size2;
break;
case "dropRight":
end -= size2;
break;
case "take":
end = nativeMin(end, start + size2);
break;
case "takeRight":
start = nativeMax(start, end - size2);
break;
}
}
return { "start": start, "end": end };
}
function getWrapDetails(source) {
var match = source.match(reWrapDetails);
return match ? match[1].split(reSplitDetails) : [];
}
function hasPath(object, path, hasFunc) {
path = castPath(path, object);
var index = -1, length = path.length, result2 = false;
while (++index < length) {
var key = toKey(path[index]);
if (!(result2 = object != null && hasFunc(object, key))) {
break;
}
object = object[key];
}
if (result2 || ++index != length) {
return result2;
}
length = object == null ? 0 : object.length;
return !!length && isLength(length) && isIndex(key, length) && (isArray2(object) || isArguments(object));
}
function initCloneArray(array) {
var length = array.length, result2 = new array.constructor(length);
if (length && typeof array[0] == "string" && hasOwnProperty2.call(array, "index")) {
result2.index = array.index;
result2.input = array.input;
}
return result2;
}
function initCloneObject(object) {
return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
}
function initCloneByTag(object, tag, isDeep) {
var Ctor = object.constructor;
switch (tag) {
case arrayBufferTag:
return cloneArrayBuffer(object);
case boolTag:
case dateTag:
return new Ctor(+object);
case dataViewTag:
return cloneDataView(object, isDeep);
case float32Tag:
case float64Tag:
case int8Tag:
case int16Tag:
case int32Tag:
case uint8Tag:
case uint8ClampedTag:
case uint16Tag:
case uint32Tag:
return cloneTypedArray(object, isDeep);
case mapTag:
return new Ctor();
case numberTag:
case stringTag:
return new Ctor(object);
case regexpTag:
return cloneRegExp(object);
case setTag:
return new Ctor();
case symbolTag:
return cloneSymbol(object);
}
}
function insertWrapDetails(source, details) {
var length = details.length;
if (!length) {
return source;
}
var lastIndex = length - 1;
details[lastIndex] = (length > 1 ? "& " : "") + details[lastIndex];
details = details.join(length > 2 ? ", " : " ");
return source.replace(reWrapComment, "{\n/* [wrapped with " + details + "] */\n");
}
function isFlattenable(value) {
return isArray2(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
}
function isIndex(value, length) {
var type = typeof value;
length = length == null ? MAX_SAFE_INTEGER : length;
return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
}
function isIterateeCall(value, index, object) {
if (!isObject2(object)) {
return false;
}
var type = typeof index;
if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && index in object) {
return eq(object[index], value);
}
return false;
}
function isKey(value, object) {
if (isArray2(value)) {
return false;
}
var type = typeof value;
if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) {
return true;
}
return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object);
}
function isKeyable(value) {
var type = typeof value;
return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
}
function isLaziable(func) {
var funcName = getFuncName(func), other = lodash[funcName];
if (typeof other != "function" || !(funcName in LazyWrapper.prototype)) {
return false;
}
if (func === other) {
return true;
}
var data = getData(other);
return !!data && func === data[0];
}
function isMasked(func) {
return !!maskSrcKey && maskSrcKey in func;
}
var isMaskable = coreJsData ? isFunction2 : stubFalse;
function isPrototype(value) {
var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto;
return value === proto;
}
function isStrictComparable(value) {
return value === value && !isObject2(value);
}
function matchesStrictComparable(key, srcValue) {
return function(object) {
if (object == null) {
return false;
}
return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object));
};
}
function memoizeCapped(func) {
var result2 = memoize(func, function(key) {
if (cache.size === MAX_MEMOIZE_SIZE) {
cache.clear();
}
return key;
});
var cache = result2.cache;
return result2;
}
function mergeData(data, source) {
var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);
var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG;
if (!(isCommon || isCombo)) {
return data;
}
if (srcBitmask & WRAP_BIND_FLAG) {
data[2] = source[2];
newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;
}
var value = source[3];
if (value) {
var partials = data[3];
data[3] = partials ? composeArgs(partials, value, source[4]) : value;
data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];
}
value = source[5];
if (value) {
partials = data[5];
data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;
data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];
}
value = source[7];
if (value) {
data[7] = value;
}
if (srcBitmask & WRAP_ARY_FLAG) {
data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);
}
if (data[9] == null) {
data[9] = source[9];
}
data[0] = source[0];
data[1] = newBitmask;
return data;
}
function nativeKeysIn(object) {
var result2 = [];
if (object != null) {
for (var key in Object2(object)) {
result2.push(key);
}
}
return result2;
}
function objectToString(value) {
return nativeObjectToString.call(value);
}
function overRest(func, start, transform2) {
start = nativeMax(start === undefined2 ? func.length - 1 : start, 0);
return function() {
var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array2(length);
while (++index < length) {
array[index] = args[start + index];
}
index = -1;
var otherArgs = Array2(start + 1);
while (++index < start) {
otherArgs[index] = args[index];
}
otherArgs[start] = transform2(array);
return apply(func, this, otherArgs);
};
}
function parent(object, path) {
return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));
}
function reorder(array, indexes) {
var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array);
while (length--) {
var index = indexes[length];
array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2;
}
return array;
}
function safeGet(object, key) {
if (key === "constructor" && typeof object[key] === "function") {
return;
}
if (key == "__proto__") {
return;
}
return object[key];
}
var setData = shortOut(baseSetData);
var setTimeout2 = ctxSetTimeout || function(func, wait) {
return root.setTimeout(func, wait);
};
var setToString = shortOut(baseSetToString);
function setWrapToString(wrapper, reference, bitmask) {
var source = reference + "";
return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));
}
function shortOut(func) {
var count = 0, lastCalled = 0;
return function() {
var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
lastCalled = stamp;
if (remaining > 0) {
if (++count >= HOT_COUNT) {
return arguments[0];
}
} else {
count = 0;
}
return func.apply(undefined2, arguments);
};
}
function shuffleSelf(array, size2) {
var index = -1, length = array.length, lastIndex = length - 1;
size2 = size2 === undefined2 ? length : size2;
while (++index < size2) {
var rand = baseRandom(index, lastIndex), value = array[rand];
array[rand] = array[index];
array[index] = value;
}
array.length = size2;
return array;
}
var stringToPath = memoizeCapped(function(string) {
var result2 = [];
if (string.charCodeAt(0) === 46) {
result2.push("");
}
string.replace(rePropName, function(match, number, quote, subString) {
result2.push(quote ? subString.replace(reEscapeChar, "$1") : number || match);
});
return result2;
});
function toKey(value) {
if (typeof value == "string" || isSymbol(value)) {
return value;
}
var result2 = value + "";
return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2;
}
function toSource(func) {
if (func != null) {
try {
return funcToString.call(func);
} catch (e) {
}
try {
return func + "";
} catch (e) {
}
}
return "";
}
function updateWrapDetails(details, bitmask) {
arrayEach(wrapFlags, function(pair) {
var value = "_." + pair[0];
if (bitmask & pair[1] && !arrayIncludes(details, value)) {
details.push(value);
}
});
return details.sort();
}
function wrapperClone(wrapper) {
if (wrapper instanceof LazyWrapper) {
return wrapper.clone();
}
var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);
result2.__actions__ = copyArray(wrapper.__actions__);
result2.__index__ = wrapper.__index__;
result2.__values__ = wrapper.__values__;
return result2;
}
function chunk(array, size2, guard) {
if (guard ? isIterateeCall(array, size2, guard) : size2 === undefined2) {
size2 = 1;
} else {
size2 = nativeMax(toInteger(size2), 0);
}
var length = array == null ? 0 : array.length;
if (!length || size2 < 1) {
return [];
}
var index = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size2));
while (index < length) {
result2[resIndex++] = baseSlice(array, index, index += size2);
}
return result2;
}
function compact(array) {
var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = [];
while (++index < length) {
var value = array[index];
if (value) {
result2[resIndex++] = value;
}
}
return result2;
}
function concat() {
var length = arguments.length;
if (!length) {
return [];
}
var args = Array2(length - 1), array = arguments[0], index = length;
while (index--) {
args[index - 1] = arguments[index];
}
return arrayPush(isArray2(array) ? copyArray(array) : [array], baseFlatten(args, 1));
}
var difference = baseRest(function(array, values2) {
return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true)) : [];
});
var differenceBy = baseRest(function(array, values2) {
var iteratee2 = last(values2);
if (isArrayLikeObject(iteratee2)) {
iteratee2 = undefined2;
}
return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : [];
});
var differenceWith = baseRest(function(array, values2) {
var comparator = last(values2);
if (isArrayLikeObject(comparator)) {
comparator = undefined2;
}
return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), undefined2, comparator) : [];
});
function drop(array, n, guard) {
var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
n = guard || n === undefined2 ? 1 : toInteger(n);
return baseSlice(array, n < 0 ? 0 : n, length);
}
function dropRight(array, n, guard) {
var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
n = guard || n === undefined2 ? 1 : toInteger(n);
n = length - n;
return baseSlice(array, 0, n < 0 ? 0 : n);
}
function dropRightWhile(array, predicate) {
return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : [];
}
function dropWhile(array, predicate) {
return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : [];
}
function fill(array, value, start, end) {
var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
if (start && typeof start != "number" && isIterateeCall(array, value, start)) {
start = 0;
end = length;
}
return baseFill(array, value, start, end);
}
function findIndex(array, predicate, fromIndex) {
var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
var index = fromIndex == null ? 0 : toInteger(fromIndex);
if (index < 0) {
index = nativeMax(length + index, 0);
}
return baseFindIndex(array, getIteratee(predicate, 3), index);
}
function findLastIndex(array, predicate, fromIndex) {
var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
var index = length - 1;
if (fromIndex !== undefined2) {
index = toInteger(fromIndex);
index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
}
return baseFindIndex(array, getIteratee(predicate, 3), index, true);
}
function flatten(array) {
var length = array == null ? 0 : array.length;
return length ? baseFlatten(array, 1) : [];
}
function flattenDeep(array) {
var length = array == null ? 0 : array.length;
return length ? baseFlatten(array, INFINITY) : [];
}
function flattenDepth(array, depth) {
var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
depth = depth === undefined2 ? 1 : toInteger(depth);
return baseFlatten(array, depth);
}
function fromPairs(pairs) {
var index = -1, length = pairs == null ? 0 : pairs.length, result2 = {};
while (++index < length) {
var pair = pairs[index];
result2[pair[0]] = pair[1];
}
return result2;
}
function head(array) {
return array && array.length ? array[0] : undefined2;
}
function indexOf(array, value, fromIndex) {
var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
var index = fromIndex == null ? 0 : toInteger(fromIndex);
if (index < 0) {
index = nativeMax(length + index, 0);
}
return baseIndexOf(array, value, index);
}
function initial(array) {
var length = array == null ? 0 : array.length;
return length ? baseSlice(array, 0, -1) : [];
}
var intersection = baseRest(function(arrays) {
var mapped = arrayMap(arrays, castArrayLikeObject);
return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : [];
});
var intersectionBy = baseRest(function(arrays) {
var iteratee2 = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject);
if (iteratee2 === last(mapped)) {
iteratee2 = undefined2;
} else {
mapped.pop();
}
return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : [];
});
var intersectionWith = baseRest(function(arrays) {
var comparator = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject);
comparator = typeof comparator == "function" ? comparator : undefined2;
if (comparator) {
mapped.pop();
}
return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : [];
});
function join(array, separator) {
return array == null ? "" : nativeJoin.call(array, separator);
}
function last(array) {
var length = array == null ? 0 : array.length;
return length ? array[length - 1] : undefined2;
}
function lastIndexOf(array, value, fromIndex) {
var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
var index = length;
if (fromIndex !== undefined2) {
index = toInteger(fromIndex);
index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
}
return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true);
}
function nth(array, n) {
return array && array.length ? baseNth(array, toInteger(n)) : undefined2;
}
var pull = baseRest(pullAll);
function pullAll(array, values2) {
return array && array.length && values2 && values2.length ? basePullAll(array, values2) : array;
}
function pullAllBy(array, values2, iteratee2) {
return array && array.length && values2 && values2.length ? basePullAll(array, values2, getIteratee(iteratee2, 2)) : array;
}
function pullAllWith(array, values2, comparator) {
return array && array.length && values2 && values2.length ? basePullAll(array, values2, undefined2, comparator) : array;
}
var pullAt = flatRest(function(array, indexes) {
var length = array == null ? 0 : array.length, result2 = baseAt(array, indexes);
basePullAt(array, arrayMap(indexes, function(index) {
return isIndex(index, length) ? +index : index;
}).sort(compareAscending));
return result2;
});
function remove(array, predicate) {
var result2 = [];
if (!(array && array.length)) {
return result2;
}
var index = -1, indexes = [], length = array.length;
predicate = getIteratee(predicate, 3);
while (++index < length) {
var value = array[index];
if (predicate(value, index, array)) {
result2.push(value);
indexes.push(index);
}
}
basePullAt(array, indexes);
return result2;
}
function reverse(array) {
return array == null ? array : nativeReverse.call(array);
}
function slice(array, start, end) {
var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
if (end && typeof end != "number" && isIterateeCall(array, start, end)) {
start = 0;
end = length;
} else {
start = start == null ? 0 : toInteger(start);
end = end === undefined2 ? length : toInteger(end);
}
return baseSlice(array, start, end);
}
function sortedIndex(array, value) {
return baseSortedIndex(array, value);
}
function sortedIndexBy(array, value, iteratee2) {
return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2));
}
function sortedIndexOf(array, value) {
var length = array == null ? 0 : array.length;
if (length) {
var index = baseSortedIndex(array, value);
if (index < length && eq(array[index], value)) {
return index;
}
}
return -1;
}
function sortedLastIndex(array, value) {
return baseSortedIndex(array, value, true);
}
function sortedLastIndexBy(array, value, iteratee2) {
return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2), true);
}
function sortedLastIndexOf(array, value) {
var length = array == null ? 0 : array.length;
if (length) {
var index = baseSortedIndex(array, value, true) - 1;
if (eq(array[index], value)) {
return index;
}
}
return -1;
}
function sortedUniq(array) {
return array && array.length ? baseSortedUniq(array) : [];
}
function sortedUniqBy(array, iteratee2) {
return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : [];
}
function tail(array) {
var length = array == null ? 0 : array.length;
return length ? baseSlice(array, 1, length) : [];
}
function take(array, n, guard) {
if (!(array && array.length)) {
return [];
}
n = guard || n === undefined2 ? 1 : toInteger(n);
return baseSlice(array, 0, n < 0 ? 0 : n);
}
function takeRight(array, n, guard) {
var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
n = guard || n === undefined2 ? 1 : toInteger(n);
n = length - n;
return baseSlice(array, n < 0 ? 0 : n, length);
}
function takeRightWhile(array, predicate) {
return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : [];
}
function takeWhile(array, predicate) {
return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : [];
}
var union = baseRest(function(arrays) {
return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
});
var unionBy = baseRest(function(arrays) {
var iteratee2 = last(arrays);
if (isArrayLikeObject(iteratee2)) {
iteratee2 = undefined2;
}
return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2));
});
var unionWith = baseRest(function(arrays) {
var comparator = last(arrays);
comparator = typeof comparator == "function" ? comparator : undefined2;
return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator);
});
function uniq(array) {
return array && array.length ? baseUniq(array) : [];
}
function uniqBy(array, iteratee2) {
return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : [];
}
function uniqWith(array, comparator) {
comparator = typeof comparator == "function" ? comparator : undefined2;
return array && array.length ? baseUniq(array, undefined2, comparator) : [];
}
function unzip(array) {
if (!(array && array.length)) {
return [];
}
var length = 0;
array = arrayFilter(array, function(group) {
if (isArrayLikeObject(group)) {
length = nativeMax(group.length, length);
return true;
}
});
return baseTimes(length, function(index) {
return arrayMap(array, baseProperty(index));
});
}
function unzipWith(array, iteratee2) {
if (!(array && array.length)) {
return [];
}
var result2 = unzip(array);
if (iteratee2 == null) {
return result2;
}
return arrayMap(result2, function(group) {
return apply(iteratee2, undefined2, group);
});
}
var without = baseRest(function(array, values2) {
return isArrayLikeObject(array) ? baseDifference(array, values2) : [];
});
var xor = baseRest(function(arrays) {
return baseXor(arrayFilter(arrays, isArrayLikeObject));
});
var xorBy = baseRest(function(arrays) {
var iteratee2 = last(arrays);
if (isArrayLikeObject(iteratee2)) {
iteratee2 = undefined2;
}
return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2));
});
var xorWith = baseRest(function(arrays) {
var comparator = last(arrays);
comparator = typeof comparator == "function" ? comparator : undefined2;
return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator);
});
var zip = baseRest(unzip);
function zipObject(props, values2) {
return baseZipObject(props || [], values2 || [], assignValue);
}
function zipObjectDeep(props, values2) {
return baseZipObject(props || [], values2 || [], baseSet);
}
var zipWith = baseRest(function(arrays) {
var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2;
iteratee2 = typeof iteratee2 == "function" ? (arrays.pop(), iteratee2) : undefined2;
return unzipWith(arrays, iteratee2);
});
function chain(value) {
var result2 = lodash(value);
result2.__chain__ = true;
return result2;
}
function tap(value, interceptor) {
interceptor(value);
return value;
}
function thru(value, interceptor) {
return interceptor(value);
}
var wrapperAt = flatRest(function(paths) {
var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) {
return baseAt(object, paths);
};
if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) {
return this.thru(interceptor);
}
value = value.slice(start, +start + (length ? 1 : 0));
value.__actions__.push({
"func": thru,
"args": [interceptor],
"thisArg": undefined2
});
return new LodashWrapper(value, this.__chain__).thru(function(array) {
if (length && !array.length) {
array.push(undefined2);
}
return array;
});
});
function wrapperChain() {
return chain(this);
}
function wrapperCommit() {
return new LodashWrapper(this.value(), this.__chain__);
}
function wrapperNext() {
if (this.__values__ === undefined2) {
this.__values__ = toArray2(this.value());
}
var done = this.__index__ >= this.__values__.length, value = done ? undefined2 : this.__values__[this.__index__++];
return { "done": done, "value": value };
}
function wrapperToIterator() {
return this;
}
function wrapperPlant(value) {
var result2, parent2 = this;
while (parent2 instanceof baseLodash) {
var clone2 = wrapperClone(parent2);
clone2.__index__ = 0;
clone2.__values__ = undefined2;
if (result2) {
previous.__wrapped__ = clone2;
} else {
result2 = clone2;
}
var previous = clone2;
parent2 = parent2.__wrapped__;
}
previous.__wrapped__ = value;
return result2;
}
function wrapperReverse() {
var value = this.__wrapped__;
if (value instanceof LazyWrapper) {
var wrapped = value;
if (this.__actions__.length) {
wrapped = new LazyWrapper(this);
}
wrapped = wrapped.reverse();
wrapped.__actions__.push({
"func": thru,
"args": [reverse],
"thisArg": undefined2
});
return new LodashWrapper(wrapped, this.__chain__);
}
return this.thru(reverse);
}
function wrapperValue() {
return baseWrapperValue(this.__wrapped__, this.__actions__);
}
var countBy = createAggregator(function(result2, value, key) {
if (hasOwnProperty2.call(result2, key)) {
++result2[key];
} else {
baseAssignValue(result2, key, 1);
}
});
function every(collection, predicate, guard) {
var func = isArray2(collection) ? arrayEvery : baseEvery;
if (guard && isIterateeCall(collection, predicate, guard)) {
predicate = undefined2;
}
return func(collection, getIteratee(predicate, 3));
}
function filter2(collection, predicate) {
var func = isArray2(collection) ? arrayFilter : baseFilter;
return func(collection, getIteratee(predicate, 3));
}
var find = createFind(findIndex);
var findLast = createFind(findLastIndex);
function flatMap(collection, iteratee2) {
return baseFlatten(map(collection, iteratee2), 1);
}
function flatMapDeep(collection, iteratee2) {
return baseFlatten(map(collection, iteratee2), INFINITY);
}
function flatMapDepth(collection, iteratee2, depth) {
depth = depth === undefined2 ? 1 : toInteger(depth);
return baseFlatten(map(collection, iteratee2), depth);
}
function forEach2(collection, iteratee2) {
var func = isArray2(collection) ? arrayEach : baseEach;
return func(collection, getIteratee(iteratee2, 3));
}
function forEachRight(collection, iteratee2) {
var func = isArray2(collection) ? arrayEachRight : baseEachRight;
return func(collection, getIteratee(iteratee2, 3));
}
var groupBy = createAggregator(function(result2, value, key) {
if (hasOwnProperty2.call(result2, key)) {
result2[key].push(value);
} else {
baseAssignValue(result2, key, [value]);
}
});
function includes(collection, value, fromIndex, guard) {
collection = isArrayLike(collection) ? collection : values(collection);
fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0;
var length = collection.length;
if (fromIndex < 0) {
fromIndex = nativeMax(length + fromIndex, 0);
}
return isString2(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;
}
var invokeMap = baseRest(function(collection, path, args) {
var index = -1, isFunc = typeof path == "function", result2 = isArrayLike(collection) ? Array2(collection.length) : [];
baseEach(collection, function(value) {
result2[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);
});
return result2;
});
var keyBy = createAggregator(function(result2, value, key) {
baseAssignValue(result2, key, value);
});
function map(collection, iteratee2) {
var func = isArray2(collection) ? arrayMap : baseMap;
return func(collection, getIteratee(iteratee2, 3));
}
function orderBy(collection, iteratees, orders, guard) {
if (collection == null) {
return [];
}
if (!isArray2(iteratees)) {
iteratees = iteratees == null ? [] : [iteratees];
}
orders = guard ? undefined2 : orders;
if (!isArray2(orders)) {
orders = orders == null ? [] : [orders];
}
return baseOrderBy(collection, iteratees, orders);
}
var partition = createAggregator(function(result2, value, key) {
result2[key ? 0 : 1].push(value);
}, function() {
return [[], []];
});
function reduce(collection, iteratee2, accumulator) {
var func = isArray2(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3;
return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach);
}
function reduceRight(collection, iteratee2, accumulator) {
var func = isArray2(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3;
return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight);
}
function reject(collection, predicate) {
var func = isArray2(collection) ? arrayFilter : baseFilter;
return func(collection, negate(getIteratee(predicate, 3)));
}
function sample(collection) {
var func = isArray2(collection) ? arraySample : baseSample;
return func(collection);
}
function sampleSize(collection, n, guard) {
if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) {
n = 1;
} else {
n = toInteger(n);
}
var func = isArray2(collection) ? arraySampleSize : baseSampleSize;
return func(collection, n);
}
function shuffle(collection) {
var func = isArray2(collection) ? arrayShuffle : baseShuffle;
return func(collection);
}
function size(collection) {
if (collection == null) {
return 0;
}
if (isArrayLike(collection)) {
return isString2(collection) ? stringSize(collection) : collection.length;
}
var tag = getTag(collection);
if (tag == mapTag || tag == setTag) {
return collection.size;
}
return baseKeys(collection).length;
}
function some(collection, predicate, guard) {
var func = isArray2(collection) ? arraySome : baseSome;
if (guard && isIterateeCall(collection, predicate, guard)) {
predicate = undefined2;
}
return func(collection, getIteratee(predicate, 3));
}
var sortBy = baseRest(function(collection, iteratees) {
if (collection == null) {
return [];
}
var length = iteratees.length;
if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
iteratees = [];
} else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
iteratees = [iteratees[0]];
}
return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
});
var now = ctxNow || function() {
return root.Date.now();
};
function after(n, func) {
if (typeof func != "function") {
throw new TypeError2(FUNC_ERROR_TEXT);
}
n = toInteger(n);
return function() {
if (--n < 1) {
return func.apply(this, arguments);
}
};
}
function ary(func, n, guard) {
n = guard ? undefined2 : n;
n = func && n == null ? func.length : n;
return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n);
}
function before(n, func) {
var result2;
if (typeof func != "function") {
throw new TypeError2(FUNC_ERROR_TEXT);
}
n = toInteger(n);
return function() {
if (--n > 0) {
result2 = func.apply(this, arguments);
}
if (n <= 1) {
func = undefined2;
}
return result2;
};
}
var bind2 = baseRest(function(func, thisArg, partials) {
var bitmask = WRAP_BIND_FLAG;
if (partials.length) {
var holders = replaceHolders(partials, getHolder(bind2));
bitmask |= WRAP_PARTIAL_FLAG;
}
return createWrap(func, bitmask, thisArg, partials, holders);
});
var bindKey = baseRest(function(object, key, partials) {
var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;
if (partials.length) {
var holders = replaceHolders(partials, getHolder(bindKey));
bitmask |= WRAP_PARTIAL_FLAG;
}
return createWrap(key, bitmask, object, partials, holders);
});
function curry(func, arity, guard) {
arity = guard ? undefined2 : arity;
var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity);
result2.placeholder = curry.placeholder;
return result2;
}
function curryRight(func, arity, guard) {
arity = guard ? undefined2 : arity;
var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity);
result2.placeholder = curryRight.placeholder;
return result2;
}
function debounce(func, wait, options) {
var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
if (typeof func != "function") {
throw new TypeError2(FUNC_ERROR_TEXT);
}
wait = toNumber(wait) || 0;
if (isObject2(options)) {
leading = !!options.leading;
maxing = "maxWait" in options;
maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
trailing = "trailing" in options ? !!options.trailing : trailing;
}
function invokeFunc(time) {
var args = lastArgs, thisArg = lastThis;
lastArgs = lastThis = undefined2;
lastInvokeTime = time;
result2 = func.apply(thisArg, args);
return result2;
}
function leadingEdge(time) {
lastInvokeTime = time;
timerId = setTimeout2(timerExpired, wait);
return leading ? invokeFunc(time) : result2;
}
function remainingWait(time) {
var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
}
function shouldInvoke(time) {
var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
}
function timerExpired() {
var time = now();
if (shouldInvoke(time)) {
return trailingEdge(time);
}
timerId = setTimeout2(timerExpired, remainingWait(time));
}
function trailingEdge(time) {
timerId = undefined2;
if (trailing && lastArgs) {
return invokeFunc(time);
}
lastArgs = lastThis = undefined2;
return result2;
}
function cancel() {
if (timerId !== undefined2) {
clearTimeout2(timerId);
}
lastInvokeTime = 0;
lastArgs = lastCallTime = lastThis = timerId = undefined2;
}
function flush() {
return timerId === undefined2 ? result2 : trailingEdge(now());
}
function debounced() {
var time = now(), isInvoking = shouldInvoke(time);
lastArgs = arguments;
lastThis = this;
lastCallTime = time;
if (isInvoking) {
if (timerId === undefined2) {
return leadingEdge(lastCallTime);
}
if (maxing) {
clearTimeout2(timerId);
timerId = setTimeout2(timerExpired, wait);
return invokeFunc(lastCallTime);
}
}
if (timerId === undefined2) {
timerId = setTimeout2(timerExpired, wait);
}
return result2;
}
debounced.cancel = cancel;
debounced.flush = flush;
return debounced;
}
var defer = baseRest(function(func, args) {
return baseDelay(func, 1, args);
});
var delay = baseRest(function(func, wait, args) {
return baseDelay(func, toNumber(wait) || 0, args);
});
function flip(func) {
return createWrap(func, WRAP_FLIP_FLAG);
}
function memoize(func, resolver) {
if (typeof func != "function" || resolver != null && typeof resolver != "function") {
throw new TypeError2(FUNC_ERROR_TEXT);
}
var memoized = function() {
var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;
if (cache.has(key)) {
return cache.get(key);
}
var result2 = func.apply(this, args);
memoized.cache = cache.set(key, result2) || cache;
return result2;
};
memoized.cache = new (memoize.Cache || MapCache)();
return memoized;
}
memoize.Cache = MapCache;
function negate(predicate) {
if (typeof predicate != "function") {
throw new TypeError2(FUNC_ERROR_TEXT);
}
return function() {
var args = arguments;
switch (args.length) {
case 0:
return !predicate.call(this);
case 1:
return !predicate.call(this, args[0]);
case 2:
return !predicate.call(this, args[0], args[1]);
case 3:
return !predicate.call(this, args[0], args[1], args[2]);
}
return !predicate.apply(this, args);
};
}
function once(func) {
return before(2, func);
}
var overArgs = castRest(function(func, transforms) {
transforms = transforms.length == 1 && isArray2(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));
var funcsLength = transforms.length;
return baseRest(function(args) {
var index = -1, length = nativeMin(args.length, funcsLength);
while (++index < length) {
args[index] = transforms[index].call(this, args[index]);
}
return apply(func, this, args);
});
});
var partial = baseRest(function(func, partials) {
var holders = replaceHolders(partials, getHolder(partial));
return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders);
});
var partialRight = baseRest(function(func, partials) {
var holders = replaceHolders(partials, getHolder(partialRight));
return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders);
});
var rearg = flatRest(function(func, indexes) {
return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes);
});
function rest(func, start) {
if (typeof func != "function") {
throw new TypeError2(FUNC_ERROR_TEXT);
}
start = start === undefined2 ? start : toInteger(start);
return baseRest(func, start);
}
function spread3(func, start) {
if (typeof func != "function") {
throw new TypeError2(FUNC_ERROR_TEXT);
}
start = start == null ? 0 : nativeMax(toInteger(start), 0);
return baseRest(function(args) {
var array = args[start], otherArgs = castSlice(args, 0, start);
if (array) {
arrayPush(otherArgs, array);
}
return apply(func, this, otherArgs);
});
}
function throttle2(func, wait, options) {
var leading = true, trailing = true;
if (typeof func != "function") {
throw new TypeError2(FUNC_ERROR_TEXT);
}
if (isObject2(options)) {
leading = "leading" in options ? !!options.leading : leading;
trailing = "trailing" in options ? !!options.trailing : trailing;
}
return debounce(func, wait, {
"leading": leading,
"maxWait": wait,
"trailing": trailing
});
}
function unary(func) {
return ary(func, 1);
}
function wrap(value, wrapper) {
return partial(castFunction(wrapper), value);
}
function castArray() {
if (!arguments.length) {
return [];
}
var value = arguments[0];
return isArray2(value) ? value : [value];
}
function clone(value) {
return baseClone(value, CLONE_SYMBOLS_FLAG);
}
function cloneWith(value, customizer) {
customizer = typeof customizer == "function" ? customizer : undefined2;
return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);
}
function cloneDeep(value) {
return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
}
function cloneDeepWith(value, customizer) {
customizer = typeof customizer == "function" ? customizer : undefined2;
return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);
}
function conformsTo(object, source) {
return source == null || baseConformsTo(object, source, keys(source));
}
function eq(value, other) {
return value === other || value !== value && other !== other;
}
var gt = createRelationalOperation(baseGt);
var gte = createRelationalOperation(function(value, other) {
return value >= other;
});
var isArguments = baseIsArguments(/* @__PURE__ */ (function() {
return arguments;
})()) ? baseIsArguments : function(value) {
return isObjectLike(value) && hasOwnProperty2.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
};
var isArray2 = Array2.isArray;
var isArrayBuffer2 = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;
function isArrayLike(value) {
return value != null && isLength(value.length) && !isFunction2(value);
}
function isArrayLikeObject(value) {
return isObjectLike(value) && isArrayLike(value);
}
function isBoolean2(value) {
return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag;
}
var isBuffer2 = nativeIsBuffer || stubFalse;
var isDate2 = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;
function isElement(value) {
return isObjectLike(value) && value.nodeType === 1 && !isPlainObject2(value);
}
function isEmpty(value) {
if (value == null) {
return true;
}
if (isArrayLike(value) && (isArray2(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer2(value) || isTypedArray2(value) || isArguments(value))) {
return !value.length;
}
var tag = getTag(value);
if (tag == mapTag || tag == setTag) {
return !value.size;
}
if (isPrototype(value)) {
return !baseKeys(value).length;
}
for (var key in value) {
if (hasOwnProperty2.call(value, key)) {
return false;
}
}
return true;
}
function isEqual(value, other) {
return baseIsEqual(value, other);
}
function isEqualWith(value, other, customizer) {
customizer = typeof customizer == "function" ? customizer : undefined2;
var result2 = customizer ? customizer(value, other) : undefined2;
return result2 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result2;
}
function isError(value) {
if (!isObjectLike(value)) {
return false;
}
var tag = baseGetTag(value);
return tag == errorTag || tag == domExcTag || typeof value.message == "string" && typeof value.name == "string" && !isPlainObject2(value);
}
function isFinite2(value) {
return typeof value == "number" && nativeIsFinite(value);
}
function isFunction2(value) {
if (!isObject2(value)) {
return false;
}
var tag = baseGetTag(value);
return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
}
function isInteger(value) {
return typeof value == "number" && value == toInteger(value);
}
function isLength(value) {
return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
function isObject2(value) {
var type = typeof value;
return value != null && (type == "object" || type == "function");
}
function isObjectLike(value) {
return value != null && typeof value == "object";
}
var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
function isMatch(object, source) {
return object === source || baseIsMatch(object, source, getMatchData(source));
}
function isMatchWith(object, source, customizer) {
customizer = typeof customizer == "function" ? customizer : undefined2;
return baseIsMatch(object, source, getMatchData(source), customizer);
}
function isNaN2(value) {
return isNumber2(value) && value != +value;
}
function isNative(value) {
if (isMaskable(value)) {
throw new Error2(CORE_ERROR_TEXT);
}
return baseIsNative(value);
}
function isNull(value) {
return value === null;
}
function isNil(value) {
return value == null;
}
function isNumber2(value) {
return typeof value == "number" || isObjectLike(value) && baseGetTag(value) == numberTag;
}
function isPlainObject2(value) {
if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
return false;
}
var proto = getPrototype(value);
if (proto === null) {
return true;
}
var Ctor = hasOwnProperty2.call(proto, "constructor") && proto.constructor;
return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
}
var isRegExp2 = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;
function isSafeInteger(value) {
return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;
}
var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
function isString2(value) {
return typeof value == "string" || !isArray2(value) && isObjectLike(value) && baseGetTag(value) == stringTag;
}
function isSymbol(value) {
return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
}
var isTypedArray2 = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
function isUndefined2(value) {
return value === undefined2;
}
function isWeakMap(value) {
return isObjectLike(value) && getTag(value) == weakMapTag;
}
function isWeakSet(value) {
return isObjectLike(value) && baseGetTag(value) == weakSetTag;
}
var lt = createRelationalOperation(baseLt);
var lte = createRelationalOperation(function(value, other) {
return value <= other;
});
function toArray2(value) {
if (!value) {
return [];
}
if (isArrayLike(value)) {
return isString2(value) ? stringToArray(value) : copyArray(value);
}
if (symIterator && value[symIterator]) {
return iteratorToArray(value[symIterator]());
}
var tag = getTag(value), func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values;
return func(value);
}
function toFinite(value) {
if (!value) {
return value === 0 ? value : 0;
}
value = toNumber(value);
if (value === INFINITY || value === -INFINITY) {
var sign = value < 0 ? -1 : 1;
return sign * MAX_INTEGER;
}
return value === value ? value : 0;
}
function toInteger(value) {
var result2 = toFinite(value), remainder = result2 % 1;
return result2 === result2 ? remainder ? result2 - remainder : result2 : 0;
}
function toLength(value) {
return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;
}
function toNumber(value) {
if (typeof value == "number") {
return value;
}
if (isSymbol(value)) {
return NAN;
}
if (isObject2(value)) {
var other = typeof value.valueOf == "function" ? value.valueOf() : value;
value = isObject2(other) ? other + "" : other;
}
if (typeof value != "string") {
return value === 0 ? value : +value;
}
value = baseTrim(value);
var isBinary = reIsBinary.test(value);
return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
}
function toPlainObject(value) {
return copyObject(value, keysIn(value));
}
function toSafeInteger(value) {
return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0;
}
function toString3(value) {
return value == null ? "" : baseToString(value);
}
var assign = createAssigner(function(object, source) {
if (isPrototype(source) || isArrayLike(source)) {
copyObject(source, keys(source), object);
return;
}
for (var key in source) {
if (hasOwnProperty2.call(source, key)) {
assignValue(object, key, source[key]);
}
}
});
var assignIn = createAssigner(function(object, source) {
copyObject(source, keysIn(source), object);
});
var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {
copyObject(source, keysIn(source), object, customizer);
});
var assignWith = createAssigner(function(object, source, srcIndex, customizer) {
copyObject(source, keys(source), object, customizer);
});
var at = flatRest(baseAt);
function create(prototype3, properties) {
var result2 = baseCreate(prototype3);
return properties == null ? result2 : baseAssign(result2, properties);
}
var defaults2 = baseRest(function(object, sources) {
object = Object2(object);
var index = -1;
var length = sources.length;
var guard = length > 2 ? sources[2] : undefined2;
if (guard && isIterateeCall(sources[0], sources[1], guard)) {
length = 1;
}
while (++index < length) {
var source = sources[index];
var props = keysIn(source);
var propsIndex = -1;
var propsLength = props.length;
while (++propsIndex < propsLength) {
var key = props[propsIndex];
var value = object[key];
if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty2.call(object, key)) {
object[key] = source[key];
}
}
}
return object;
});
var defaultsDeep = baseRest(function(args) {
args.push(undefined2, customDefaultsMerge);
return apply(mergeWith, undefined2, args);
});
function findKey2(object, predicate) {
return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);
}
function findLastKey(object, predicate) {
return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);
}
function forIn(object, iteratee2) {
return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn);
}
function forInRight(object, iteratee2) {
return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn);
}
function forOwn(object, iteratee2) {
return object && baseForOwn(object, getIteratee(iteratee2, 3));
}
function forOwnRight(object, iteratee2) {
return object && baseForOwnRight(object, getIteratee(iteratee2, 3));
}
function functions(object) {
return object == null ? [] : baseFunctions(object, keys(object));
}
function functionsIn(object) {
return object == null ? [] : baseFunctions(object, keysIn(object));
}
function get(object, path, defaultValue) {
var result2 = object == null ? undefined2 : baseGet(object, path);
return result2 === undefined2 ? defaultValue : result2;
}
function has(object, path) {
return object != null && hasPath(object, path, baseHas);
}
function hasIn(object, path) {
return object != null && hasPath(object, path, baseHasIn);
}
var invert = createInverter(function(result2, value, key) {
if (value != null && typeof value.toString != "function") {
value = nativeObjectToString.call(value);
}
result2[value] = key;
}, constant(identity));
var invertBy = createInverter(function(result2, value, key) {
if (value != null && typeof value.toString != "function") {
value = nativeObjectToString.call(value);
}
if (hasOwnProperty2.call(result2, value)) {
result2[value].push(key);
} else {
result2[value] = [key];
}
}, getIteratee);
var invoke = baseRest(baseInvoke);
function keys(object) {
return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
}
function keysIn(object) {
return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
}
function mapKeys(object, iteratee2) {
var result2 = {};
iteratee2 = getIteratee(iteratee2, 3);
baseForOwn(object, function(value, key, object2) {
baseAssignValue(result2, iteratee2(value, key, object2), value);
});
return result2;
}
function mapValues(object, iteratee2) {
var result2 = {};
iteratee2 = getIteratee(iteratee2, 3);
baseForOwn(object, function(value, key, object2) {
baseAssignValue(result2, key, iteratee2(value, key, object2));
});
return result2;
}
var merge2 = createAssigner(function(object, source, srcIndex) {
baseMerge(object, source, srcIndex);
});
var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {
baseMerge(object, source, srcIndex, customizer);
});
var omit = flatRest(function(object, paths) {
var result2 = {};
if (object == null) {
return result2;
}
var isDeep = false;
paths = arrayMap(paths, function(path) {
path = castPath(path, object);
isDeep || (isDeep = path.length > 1);
return path;
});
copyObject(object, getAllKeysIn(object), result2);
if (isDeep) {
result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);
}
var length = paths.length;
while (length--) {
baseUnset(result2, paths[length]);
}
return result2;
});
function omitBy(object, predicate) {
return pickBy(object, negate(getIteratee(predicate)));
}
var pick = flatRest(function(object, paths) {
return object == null ? {} : basePick(object, paths);
});
function pickBy(object, predicate) {
if (object == null) {
return {};
}
var props = arrayMap(getAllKeysIn(object), function(prop) {
return [prop];
});
predicate = getIteratee(predicate);
return basePickBy(object, props, function(value, path) {
return predicate(value, path[0]);
});
}
function result(object, path, defaultValue) {
path = castPath(path, object);
var index = -1, length = path.length;
if (!length) {
length = 1;
object = undefined2;
}
while (++index < length) {
var value = object == null ? undefined2 : object[toKey(path[index])];
if (value === undefined2) {
index = length;
value = defaultValue;
}
object = isFunction2(value) ? value.call(object) : value;
}
return object;
}
function set(object, path, value) {
return object == null ? object : baseSet(object, path, value);
}
function setWith(object, path, value, customizer) {
customizer = typeof customizer == "function" ? customizer : undefined2;
return object == null ? object : baseSet(object, path, value, customizer);
}
var toPairs = createToPairs(keys);
var toPairsIn = createToPairs(keysIn);
function transform(object, iteratee2, accumulator) {
var isArr = isArray2(object), isArrLike = isArr || isBuffer2(object) || isTypedArray2(object);
iteratee2 = getIteratee(iteratee2, 4);
if (accumulator == null) {
var Ctor = object && object.constructor;
if (isArrLike) {
accumulator = isArr ? new Ctor() : [];
} else if (isObject2(object)) {
accumulator = isFunction2(Ctor) ? baseCreate(getPrototype(object)) : {};
} else {
accumulator = {};
}
}
(isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) {
return iteratee2(accumulator, value, index, object2);
});
return accumulator;
}
function unset(object, path) {
return object == null ? true : baseUnset(object, path);
}
function update(object, path, updater) {
return object == null ? object : baseUpdate(object, path, castFunction(updater));
}
function updateWith(object, path, updater, customizer) {
customizer = typeof customizer == "function" ? customizer : undefined2;
return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);
}
function values(object) {
return object == null ? [] : baseValues(object, keys(object));
}
function valuesIn(object) {
return object == null ? [] : baseValues(object, keysIn(object));
}
function clamp(number, lower, upper) {
if (upper === undefined2) {
upper = lower;
lower = undefined2;
}
if (upper !== undefined2) {
upper = toNumber(upper);
upper = upper === upper ? upper : 0;
}
if (lower !== undefined2) {
lower = toNumber(lower);
lower = lower === lower ? lower : 0;
}
return baseClamp(toNumber(number), lower, upper);
}
function inRange(number, start, end) {
start = toFinite(start);
if (end === undefined2) {
end = start;
start = 0;
} else {
end = toFinite(end);
}
number = toNumber(number);
return baseInRange(number, start, end);
}
function random(lower, upper, floating) {
if (floating && typeof floating != "boolean" && isIterateeCall(lower, upper, floating)) {
upper = floating = undefined2;
}
if (floating === undefined2) {
if (typeof upper == "boolean") {
floating = upper;
upper = undefined2;
} else if (typeof lower == "boolean") {
floating = lower;
lower = undefined2;
}
}
if (lower === undefined2 && upper === undefined2) {
lower = 0;
upper = 1;
} else {
lower = toFinite(lower);
if (upper === undefined2) {
upper = lower;
lower = 0;
} else {
upper = toFinite(upper);
}
}
if (lower > upper) {
var temp = lower;
lower = upper;
upper = temp;
}
if (floating || lower % 1 || upper % 1) {
var rand = nativeRandom();
return nativeMin(lower + rand * (upper - lower + freeParseFloat("1e-" + ((rand + "").length - 1))), upper);
}
return baseRandom(lower, upper);
}
var camelCase = createCompounder(function(result2, word, index) {
word = word.toLowerCase();
return result2 + (index ? capitalize(word) : word);
});
function capitalize(string) {
return upperFirst(toString3(string).toLowerCase());
}
function deburr(string) {
string = toString3(string);
return string && string.replace(reLatin, deburrLetter).replace(reComboMark, "");
}
function endsWith2(string, target, position) {
string = toString3(string);
target = baseToString(target);
var length = string.length;
position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length);
var end = position;
position -= target.length;
return position >= 0 && string.slice(position, end) == target;
}
function escape2(string) {
string = toString3(string);
return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string;
}
function escapeRegExp(string) {
string = toString3(string);
return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, "\\$&") : string;
}
var kebabCase = createCompounder(function(result2, word, index) {
return result2 + (index ? "-" : "") + word.toLowerCase();
});
var lowerCase = createCompounder(function(result2, word, index) {
return result2 + (index ? " " : "") + word.toLowerCase();
});
var lowerFirst = createCaseFirst("toLowerCase");
function pad(string, length, chars) {
string = toString3(string);
length = toInteger(length);
var strLength = length ? stringSize(string) : 0;
if (!length || strLength >= length) {
return string;
}
var mid = (length - strLength) / 2;
return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars);
}
function padEnd(string, length, chars) {
string = toString3(string);
length = toInteger(length);
var strLength = length ? stringSize(string) : 0;
return length && strLength < length ? string + createPadding(length - strLength, chars) : string;
}
function padStart(string, length, chars) {
string = toString3(string);
length = toInteger(length);
var strLength = length ? stringSize(string) : 0;
return length && strLength < length ? createPadding(length - strLength, chars) + string : string;
}
function parseInt2(string, radix, guard) {
if (guard || radix == null) {
radix = 0;
} else if (radix) {
radix = +radix;
}
return nativeParseInt(toString3(string).replace(reTrimStart, ""), radix || 0);
}
function repeat(string, n, guard) {
if (guard ? isIterateeCall(string, n, guard) : n === undefined2) {
n = 1;
} else {
n = toInteger(n);
}
return baseRepeat(toString3(string), n);
}
function replace() {
var args = arguments, string = toString3(args[0]);
return args.length < 3 ? string : string.replace(args[1], args[2]);
}
var snakeCase = createCompounder(function(result2, word, index) {
return result2 + (index ? "_" : "") + word.toLowerCase();
});
function split(string, separator, limit) {
if (limit && typeof limit != "number" && isIterateeCall(string, separator, limit)) {
separator = limit = undefined2;
}
limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0;
if (!limit) {
return [];
}
string = toString3(string);
if (string && (typeof separator == "string" || separator != null && !isRegExp2(separator))) {
separator = baseToString(separator);
if (!separator && hasUnicode(string)) {
return castSlice(stringToArray(string), 0, limit);
}
}
return string.split(separator, limit);
}
var startCase = createCompounder(function(result2, word, index) {
return result2 + (index ? " " : "") + upperFirst(word);
});
function startsWith(string, target, position) {
string = toString3(string);
position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length);
target = baseToString(target);
return string.slice(position, position + target.length) == target;
}
function template(string, options, guard) {
var settings = lodash.templateSettings;
if (guard && isIterateeCall(string, options, guard)) {
options = undefined2;
}
string = toString3(string);
options = assignInWith({}, options, settings, customDefaultsAssignIn);
var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys);
var isEscaping, isEvaluating, index = 0, interpolate = options.interpolate || reNoMatch, source = "__p += '";
var reDelimiters = RegExp2(
(options.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options.evaluate || reNoMatch).source + "|$",
"g"
);
var sourceURL = "//# sourceURL=" + (hasOwnProperty2.call(options, "sourceURL") ? (options.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++templateCounter + "]") + "\n";
string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {
interpolateValue || (interpolateValue = esTemplateValue);
source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);
if (escapeValue) {
isEscaping = true;
source += "' +\n__e(" + escapeValue + ") +\n'";
}
if (evaluateValue) {
isEvaluating = true;
source += "';\n" + evaluateValue + ";\n__p += '";
}
if (interpolateValue) {
source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'";
}
index = offset + match.length;
return match;
});
source += "';\n";
var variable = hasOwnProperty2.call(options, "variable") && options.variable;
if (!variable) {
source = "with (obj) {\n" + source + "\n}\n";
} else if (reForbiddenIdentifierChars.test(variable)) {
throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT);
}
source = (isEvaluating ? source.replace(reEmptyStringLeading, "") : source).replace(reEmptyStringMiddle, "$1").replace(reEmptyStringTrailing, "$1;");
source = "function(" + (variable || "obj") + ") {\n" + (variable ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (isEscaping ? ", __e = _.escape" : "") + (isEvaluating ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + source + "return __p\n}";
var result2 = attempt(function() {
return Function2(importsKeys, sourceURL + "return " + source).apply(undefined2, importsValues);
});
result2.source = source;
if (isError(result2)) {
throw result2;
}
return result2;
}
function toLower(value) {
return toString3(value).toLowerCase();
}
function toUpper(value) {
return toString3(value).toUpperCase();
}
function trim2(string, chars, guard) {
string = toString3(string);
if (string && (guard || chars === undefined2)) {
return baseTrim(string);
}
if (!string || !(chars = baseToString(chars))) {
return string;
}
var strSymbols = stringToArray(string), chrSymbols = stringToArray(chars), start = charsStartIndex(strSymbols, chrSymbols), end = charsEndIndex(strSymbols, chrSymbols) + 1;
return castSlice(strSymbols, start, end).join("");
}
function trimEnd(string, chars, guard) {
string = toString3(string);
if (string && (guard || chars === undefined2)) {
return string.slice(0, trimmedEndIndex(string) + 1);
}
if (!string || !(chars = baseToString(chars))) {
return string;
}
var strSymbols = stringToArray(string), end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;
return castSlice(strSymbols, 0, end).join("");
}
function trimStart(string, chars, guard) {
string = toString3(string);
if (string && (guard || chars === undefined2)) {
return string.replace(reTrimStart, "");
}
if (!string || !(chars = baseToString(chars))) {
return string;
}
var strSymbols = stringToArray(string), start = charsStartIndex(strSymbols, stringToArray(chars));
return castSlice(strSymbols, start).join("");
}
function truncate(string, options) {
var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION;
if (isObject2(options)) {
var separator = "separator" in options ? options.separator : separator;
length = "length" in options ? toInteger(options.length) : length;
omission = "omission" in options ? baseToString(options.omission) : omission;
}
string = toString3(string);
var strLength = string.length;
if (hasUnicode(string)) {
var strSymbols = stringToArray(string);
strLength = strSymbols.length;
}
if (length >= strLength) {
return string;
}
var end = length - stringSize(omission);
if (end < 1) {
return omission;
}
var result2 = strSymbols ? castSlice(strSymbols, 0, end).join("") : string.slice(0, end);
if (separator === undefined2) {
return result2 + omission;
}
if (strSymbols) {
end += result2.length - end;
}
if (isRegExp2(separator)) {
if (string.slice(end).search(separator)) {
var match, substring = result2;
if (!separator.global) {
separator = RegExp2(separator.source, toString3(reFlags.exec(separator)) + "g");
}
separator.lastIndex = 0;
while (match = separator.exec(substring)) {
var newEnd = match.index;
}
result2 = result2.slice(0, newEnd === undefined2 ? end : newEnd);
}
} else if (string.indexOf(baseToString(separator), end) != end) {
var index = result2.lastIndexOf(separator);
if (index > -1) {
result2 = result2.slice(0, index);
}
}
return result2 + omission;
}
function unescape2(string) {
string = toString3(string);
return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string;
}
var upperCase = createCompounder(function(result2, word, index) {
return result2 + (index ? " " : "") + word.toUpperCase();
});
var upperFirst = createCaseFirst("toUpperCase");
function words(string, pattern, guard) {
string = toString3(string);
pattern = guard ? undefined2 : pattern;
if (pattern === undefined2) {
return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);
}
return string.match(pattern) || [];
}
var attempt = baseRest(function(func, args) {
try {
return apply(func, undefined2, args);
} catch (e) {
return isError(e) ? e : new Error2(e);
}
});
var bindAll = flatRest(function(object, methodNames) {
arrayEach(methodNames, function(key) {
key = toKey(key);
baseAssignValue(object, key, bind2(object[key], object));
});
return object;
});
function cond(pairs) {
var length = pairs == null ? 0 : pairs.length, toIteratee = getIteratee();
pairs = !length ? [] : arrayMap(pairs, function(pair) {
if (typeof pair[1] != "function") {
throw new TypeError2(FUNC_ERROR_TEXT);
}
return [toIteratee(pair[0]), pair[1]];
});
return baseRest(function(args) {
var index = -1;
while (++index < length) {
var pair = pairs[index];
if (apply(pair[0], this, args)) {
return apply(pair[1], this, args);
}
}
});
}
function conforms(source) {
return baseConforms(baseClone(source, CLONE_DEEP_FLAG));
}
function constant(value) {
return function() {
return value;
};
}
function defaultTo(value, defaultValue) {
return value == null || value !== value ? defaultValue : value;
}
var flow = createFlow();
var flowRight = createFlow(true);
function identity(value) {
return value;
}
function iteratee(func) {
return baseIteratee(typeof func == "function" ? func : baseClone(func, CLONE_DEEP_FLAG));
}
function matches(source) {
return baseMatches(baseClone(source, CLONE_DEEP_FLAG));
}
function matchesProperty(path, srcValue) {
return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));
}
var method = baseRest(function(path, args) {
return function(object) {
return baseInvoke(object, path, args);
};
});
var methodOf = baseRest(function(object, args) {
return function(path) {
return baseInvoke(object, path, args);
};
});
function mixin(object, source, options) {
var props = keys(source), methodNames = baseFunctions(source, props);
if (options == null && !(isObject2(source) && (methodNames.length || !props.length))) {
options = source;
source = object;
object = this;
methodNames = baseFunctions(source, keys(source));
}
var chain2 = !(isObject2(options) && "chain" in options) || !!options.chain, isFunc = isFunction2(object);
arrayEach(methodNames, function(methodName) {
var func = source[methodName];
object[methodName] = func;
if (isFunc) {
object.prototype[methodName] = function() {
var chainAll = this.__chain__;
if (chain2 || chainAll) {
var result2 = object(this.__wrapped__), actions = result2.__actions__ = copyArray(this.__actions__);
actions.push({ "func": func, "args": arguments, "thisArg": object });
result2.__chain__ = chainAll;
return result2;
}
return func.apply(object, arrayPush([this.value()], arguments));
};
}
});
return object;
}
function noConflict() {
if (root._ === this) {
root._ = oldDash;
}
return this;
}
function noop2() {
}
function nthArg(n) {
n = toInteger(n);
return baseRest(function(args) {
return baseNth(args, n);
});
}
var over = createOver(arrayMap);
var overEvery = createOver(arrayEvery);
var overSome = createOver(arraySome);
function property(path) {
return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
}
function propertyOf(object) {
return function(path) {
return object == null ? undefined2 : baseGet(object, path);
};
}
var range = createRange();
var rangeRight = createRange(true);
function stubArray() {
return [];
}
function stubFalse() {
return false;
}
function stubObject() {
return {};
}
function stubString() {
return "";
}
function stubTrue() {
return true;
}
function times(n, iteratee2) {
n = toInteger(n);
if (n < 1 || n > MAX_SAFE_INTEGER) {
return [];
}
var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH);
iteratee2 = getIteratee(iteratee2);
n -= MAX_ARRAY_LENGTH;
var result2 = baseTimes(length, iteratee2);
while (++index < n) {
iteratee2(index);
}
return result2;
}
function toPath(value) {
if (isArray2(value)) {
return arrayMap(value, toKey);
}
return isSymbol(value) ? [value] : copyArray(stringToPath(toString3(value)));
}
function uniqueId(prefix) {
var id = ++idCounter;
return toString3(prefix) + id;
}
var add = createMathOperation(function(augend, addend) {
return augend + addend;
}, 0);
var ceil = createRound("ceil");
var divide = createMathOperation(function(dividend, divisor) {
return dividend / divisor;
}, 1);
var floor = createRound("floor");
function max(array) {
return array && array.length ? baseExtremum(array, identity, baseGt) : undefined2;
}
function maxBy(array, iteratee2) {
return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2;
}
function mean(array) {
return baseMean(array, identity);
}
function meanBy(array, iteratee2) {
return baseMean(array, getIteratee(iteratee2, 2));
}
function min(array) {
return array && array.length ? baseExtremum(array, identity, baseLt) : undefined2;
}
function minBy(array, iteratee2) {
return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2;
}
var multiply = createMathOperation(function(multiplier, multiplicand) {
return multiplier * multiplicand;
}, 1);
var round = createRound("round");
var subtract = createMathOperation(function(minuend, subtrahend) {
return minuend - subtrahend;
}, 0);
function sum(array) {
return array && array.length ? baseSum(array, identity) : 0;
}
function sumBy(array, iteratee2) {
return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0;
}
lodash.after = after;
lodash.ary = ary;
lodash.assign = assign;
lodash.assignIn = assignIn;
lodash.assignInWith = assignInWith;
lodash.assignWith = assignWith;
lodash.at = at;
lodash.before = before;
lodash.bind = bind2;
lodash.bindAll = bindAll;
lodash.bindKey = bindKey;
lodash.castArray = castArray;
lodash.chain = chain;
lodash.chunk = chunk;
lodash.compact = compact;
lodash.concat = concat;
lodash.cond = cond;
lodash.conforms = conforms;
lodash.constant = constant;
lodash.countBy = countBy;
lodash.create = create;
lodash.curry = curry;
lodash.curryRight = curryRight;
lodash.debounce = debounce;
lodash.defaults = defaults2;
lodash.defaultsDeep = defaultsDeep;
lodash.defer = defer;
lodash.delay = delay;
lodash.difference = difference;
lodash.differenceBy = differenceBy;
lodash.differenceWith = differenceWith;
lodash.drop = drop;
lodash.dropRight = dropRight;
lodash.dropRightWhile = dropRightWhile;
lodash.dropWhile = dropWhile;
lodash.fill = fill;
lodash.filter = filter2;
lodash.flatMap = flatMap;
lodash.flatMapDeep = flatMapDeep;
lodash.flatMapDepth = flatMapDepth;
lodash.flatten = flatten;
lodash.flattenDeep = flattenDeep;
lodash.flattenDepth = flattenDepth;
lodash.flip = flip;
lodash.flow = flow;
lodash.flowRight = flowRight;
lodash.fromPairs = fromPairs;
lodash.functions = functions;
lodash.functionsIn = functionsIn;
lodash.groupBy = groupBy;
lodash.initial = initial;
lodash.intersection = intersection;
lodash.intersectionBy = intersectionBy;
lodash.intersectionWith = intersectionWith;
lodash.invert = invert;
lodash.invertBy = invertBy;
lodash.invokeMap = invokeMap;
lodash.iteratee = iteratee;
lodash.keyBy = keyBy;
lodash.keys = keys;
lodash.keysIn = keysIn;
lodash.map = map;
lodash.mapKeys = mapKeys;
lodash.mapValues = mapValues;
lodash.matches = matches;
lodash.matchesProperty = matchesProperty;
lodash.memoize = memoize;
lodash.merge = merge2;
lodash.mergeWith = mergeWith;
lodash.method = method;
lodash.methodOf = methodOf;
lodash.mixin = mixin;
lodash.negate = negate;
lodash.nthArg = nthArg;
lodash.omit = omit;
lodash.omitBy = omitBy;
lodash.once = once;
lodash.orderBy = orderBy;
lodash.over = over;
lodash.overArgs = overArgs;
lodash.overEvery = overEvery;
lodash.overSome = overSome;
lodash.partial = partial;
lodash.partialRight = partialRight;
lodash.partition = partition;
lodash.pick = pick;
lodash.pickBy = pickBy;
lodash.property = property;
lodash.propertyOf = propertyOf;
lodash.pull = pull;
lodash.pullAll = pullAll;
lodash.pullAllBy = pullAllBy;
lodash.pullAllWith = pullAllWith;
lodash.pullAt = pullAt;
lodash.range = range;
lodash.rangeRight = rangeRight;
lodash.rearg = rearg;
lodash.reject = reject;
lodash.remove = remove;
lodash.rest = rest;
lodash.reverse = reverse;
lodash.sampleSize = sampleSize;
lodash.set = set;
lodash.setWith = setWith;
lodash.shuffle = shuffle;
lodash.slice = slice;
lodash.sortBy = sortBy;
lodash.sortedUniq = sortedUniq;
lodash.sortedUniqBy = sortedUniqBy;
lodash.split = split;
lodash.spread = spread3;
lodash.tail = tail;
lodash.take = take;
lodash.takeRight = takeRight;
lodash.takeRightWhile = takeRightWhile;
lodash.takeWhile = takeWhile;
lodash.tap = tap;
lodash.throttle = throttle2;
lodash.thru = thru;
lodash.toArray = toArray2;
lodash.toPairs = toPairs;
lodash.toPairsIn = toPairsIn;
lodash.toPath = toPath;
lodash.toPlainObject = toPlainObject;
lodash.transform = transform;
lodash.unary = unary;
lodash.union = union;
lodash.unionBy = unionBy;
lodash.unionWith = unionWith;
lodash.uniq = uniq;
lodash.uniqBy = uniqBy;
lodash.uniqWith = uniqWith;
lodash.unset = unset;
lodash.unzip = unzip;
lodash.unzipWith = unzipWith;
lodash.update = update;
lodash.updateWith = updateWith;
lodash.values = values;
lodash.valuesIn = valuesIn;
lodash.without = without;
lodash.words = words;
lodash.wrap = wrap;
lodash.xor = xor;
lodash.xorBy = xorBy;
lodash.xorWith = xorWith;
lodash.zip = zip;
lodash.zipObject = zipObject;
lodash.zipObjectDeep = zipObjectDeep;
lodash.zipWith = zipWith;
lodash.entries = toPairs;
lodash.entriesIn = toPairsIn;
lodash.extend = assignIn;
lodash.extendWith = assignInWith;
mixin(lodash, lodash);
lodash.add = add;
lodash.attempt = attempt;
lodash.camelCase = camelCase;
lodash.capitalize = capitalize;
lodash.ceil = ceil;
lodash.clamp = clamp;
lodash.clone = clone;
lodash.cloneDeep = cloneDeep;
lodash.cloneDeepWith = cloneDeepWith;
lodash.cloneWith = cloneWith;
lodash.conformsTo = conformsTo;
lodash.deburr = deburr;
lodash.defaultTo = defaultTo;
lodash.divide = divide;
lodash.endsWith = endsWith2;
lodash.eq = eq;
lodash.escape = escape2;
lodash.escapeRegExp = escapeRegExp;
lodash.every = every;
lodash.find = find;
lodash.findIndex = findIndex;
lodash.findKey = findKey2;
lodash.findLast = findLast;
lodash.findLastIndex = findLastIndex;
lodash.findLastKey = findLastKey;
lodash.floor = floor;
lodash.forEach = forEach2;
lodash.forEachRight = forEachRight;
lodash.forIn = forIn;
lodash.forInRight = forInRight;
lodash.forOwn = forOwn;
lodash.forOwnRight = forOwnRight;
lodash.get = get;
lodash.gt = gt;
lodash.gte = gte;
lodash.has = has;
lodash.hasIn = hasIn;
lodash.head = head;
lodash.identity = identity;
lodash.includes = includes;
lodash.indexOf = indexOf;
lodash.inRange = inRange;
lodash.invoke = invoke;
lodash.isArguments = isArguments;
lodash.isArray = isArray2;
lodash.isArrayBuffer = isArrayBuffer2;
lodash.isArrayLike = isArrayLike;
lodash.isArrayLikeObject = isArrayLikeObject;
lodash.isBoolean = isBoolean2;
lodash.isBuffer = isBuffer2;
lodash.isDate = isDate2;
lodash.isElement = isElement;
lodash.isEmpty = isEmpty;
lodash.isEqual = isEqual;
lodash.isEqualWith = isEqualWith;
lodash.isError = isError;
lodash.isFinite = isFinite2;
lodash.isFunction = isFunction2;
lodash.isInteger = isInteger;
lodash.isLength = isLength;
lodash.isMap = isMap;
lodash.isMatch = isMatch;
lodash.isMatchWith = isMatchWith;
lodash.isNaN = isNaN2;
lodash.isNative = isNative;
lodash.isNil = isNil;
lodash.isNull = isNull;
lodash.isNumber = isNumber2;
lodash.isObject = isObject2;
lodash.isObjectLike = isObjectLike;
lodash.isPlainObject = isPlainObject2;
lodash.isRegExp = isRegExp2;
lodash.isSafeInteger = isSafeInteger;
lodash.isSet = isSet;
lodash.isString = isString2;
lodash.isSymbol = isSymbol;
lodash.isTypedArray = isTypedArray2;
lodash.isUndefined = isUndefined2;
lodash.isWeakMap = isWeakMap;
lodash.isWeakSet = isWeakSet;
lodash.join = join;
lodash.kebabCase = kebabCase;
lodash.last = last;
lodash.lastIndexOf = lastIndexOf;
lodash.lowerCase = lowerCase;
lodash.lowerFirst = lowerFirst;
lodash.lt = lt;
lodash.lte = lte;
lodash.max = max;
lodash.maxBy = maxBy;
lodash.mean = mean;
lodash.meanBy = meanBy;
lodash.min = min;
lodash.minBy = minBy;
lodash.stubArray = stubArray;
lodash.stubFalse = stubFalse;
lodash.stubObject = stubObject;
lodash.stubString = stubString;
lodash.stubTrue = stubTrue;
lodash.multiply = multiply;
lodash.nth = nth;
lodash.noConflict = noConflict;
lodash.noop = noop2;
lodash.now = now;
lodash.pad = pad;
lodash.padEnd = padEnd;
lodash.padStart = padStart;
lodash.parseInt = parseInt2;
lodash.random = random;
lodash.reduce = reduce;
lodash.reduceRight = reduceRight;
lodash.repeat = repeat;
lodash.replace = replace;
lodash.result = result;
lodash.round = round;
lodash.runInContext = runInContext2;
lodash.sample = sample;
lodash.size = size;
lodash.snakeCase = snakeCase;
lodash.some = some;
lodash.sortedIndex = sortedIndex;
lodash.sortedIndexBy = sortedIndexBy;
lodash.sortedIndexOf = sortedIndexOf;
lodash.sortedLastIndex = sortedLastIndex;
lodash.sortedLastIndexBy = sortedLastIndexBy;
lodash.sortedLastIndexOf = sortedLastIndexOf;
lodash.startCase = startCase;
lodash.startsWith = startsWith;
lodash.subtract = subtract;
lodash.sum = sum;
lodash.sumBy = sumBy;
lodash.template = template;
lodash.times = times;
lodash.toFinite = toFinite;
lodash.toInteger = toInteger;
lodash.toLength = toLength;
lodash.toLower = toLower;
lodash.toNumber = toNumber;
lodash.toSafeInteger = toSafeInteger;
lodash.toString = toString3;
lodash.toUpper = toUpper;
lodash.trim = trim2;
lodash.trimEnd = trimEnd;
lodash.trimStart = trimStart;
lodash.truncate = truncate;
lodash.unescape = unescape2;
lodash.uniqueId = uniqueId;
lodash.upperCase = upperCase;
lodash.upperFirst = upperFirst;
lodash.each = forEach2;
lodash.eachRight = forEachRight;
lodash.first = head;
mixin(lodash, (function() {
var source = {};
baseForOwn(lodash, function(func, methodName) {
if (!hasOwnProperty2.call(lodash.prototype, methodName)) {
source[methodName] = func;
}
});
return source;
})(), { "chain": false });
lodash.VERSION = VERSION3;
arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) {
lodash[methodName].placeholder = lodash;
});
arrayEach(["drop", "take"], function(methodName, index) {
LazyWrapper.prototype[methodName] = function(n) {
n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0);
var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone();
if (result2.__filtered__) {
result2.__takeCount__ = nativeMin(n, result2.__takeCount__);
} else {
result2.__views__.push({
"size": nativeMin(n, MAX_ARRAY_LENGTH),
"type": methodName + (result2.__dir__ < 0 ? "Right" : "")
});
}
return result2;
};
LazyWrapper.prototype[methodName + "Right"] = function(n) {
return this.reverse()[methodName](n).reverse();
};
});
arrayEach(["filter", "map", "takeWhile"], function(methodName, index) {
var type = index + 1, isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;
LazyWrapper.prototype[methodName] = function(iteratee2) {
var result2 = this.clone();
result2.__iteratees__.push({
"iteratee": getIteratee(iteratee2, 3),
"type": type
});
result2.__filtered__ = result2.__filtered__ || isFilter;
return result2;
};
});
arrayEach(["head", "last"], function(methodName, index) {
var takeName = "take" + (index ? "Right" : "");
LazyWrapper.prototype[methodName] = function() {
return this[takeName](1).value()[0];
};
});
arrayEach(["initial", "tail"], function(methodName, index) {
var dropName = "drop" + (index ? "" : "Right");
LazyWrapper.prototype[methodName] = function() {
return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);
};
});
LazyWrapper.prototype.compact = function() {
return this.filter(identity);
};
LazyWrapper.prototype.find = function(predicate) {
return this.filter(predicate).head();
};
LazyWrapper.prototype.findLast = function(predicate) {
return this.reverse().find(predicate);
};
LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {
if (typeof path == "function") {
return new LazyWrapper(this);
}
return this.map(function(value) {
return baseInvoke(value, path, args);
});
});
LazyWrapper.prototype.reject = function(predicate) {
return this.filter(negate(getIteratee(predicate)));
};
LazyWrapper.prototype.slice = function(start, end) {
start = toInteger(start);
var result2 = this;
if (result2.__filtered__ && (start > 0 || end < 0)) {
return new LazyWrapper(result2);
}
if (start < 0) {
result2 = result2.takeRight(-start);
} else if (start) {
result2 = result2.drop(start);
}
if (end !== undefined2) {
end = toInteger(end);
result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start);
}
return result2;
};
LazyWrapper.prototype.takeRightWhile = function(predicate) {
return this.reverse().takeWhile(predicate).reverse();
};
LazyWrapper.prototype.toArray = function() {
return this.take(MAX_ARRAY_LENGTH);
};
baseForOwn(LazyWrapper.prototype, function(func, methodName) {
var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName);
if (!lodashFunc) {
return;
}
lodash.prototype[methodName] = function() {
var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray2(value);
var interceptor = function(value2) {
var result3 = lodashFunc.apply(lodash, arrayPush([value2], args));
return isTaker && chainAll ? result3[0] : result3;
};
if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) {
isLazy = useLazy = false;
}
var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid;
if (!retUnwrapped && useLazy) {
value = onlyLazy ? value : new LazyWrapper(this);
var result2 = func.apply(value, args);
result2.__actions__.push({ "func": thru, "args": [interceptor], "thisArg": undefined2 });
return new LodashWrapper(result2, chainAll);
}
if (isUnwrapped && onlyLazy) {
return func.apply(this, args);
}
result2 = this.thru(interceptor);
return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2;
};
});
arrayEach(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) {
var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName);
lodash.prototype[methodName] = function() {
var args = arguments;
if (retUnwrapped && !this.__chain__) {
var value = this.value();
return func.apply(isArray2(value) ? value : [], args);
}
return this[chainName](function(value2) {
return func.apply(isArray2(value2) ? value2 : [], args);
});
};
});
baseForOwn(LazyWrapper.prototype, function(func, methodName) {
var lodashFunc = lodash[methodName];
if (lodashFunc) {
var key = lodashFunc.name + "";
if (!hasOwnProperty2.call(realNames, key)) {
realNames[key] = [];
}
realNames[key].push({ "name": methodName, "func": lodashFunc });
}
});
realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{
"name": "wrapper",
"func": undefined2
}];
LazyWrapper.prototype.clone = lazyClone;
LazyWrapper.prototype.reverse = lazyReverse;
LazyWrapper.prototype.value = lazyValue;
lodash.prototype.at = wrapperAt;
lodash.prototype.chain = wrapperChain;
lodash.prototype.commit = wrapperCommit;
lodash.prototype.next = wrapperNext;
lodash.prototype.plant = wrapperPlant;
lodash.prototype.reverse = wrapperReverse;
lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;
lodash.prototype.first = lodash.prototype.head;
if (symIterator) {
lodash.prototype[symIterator] = wrapperToIterator;
}
return lodash;
};
var _2 = runInContext();
if (typeof define == "function" && typeof define.amd == "object" && define.amd) {
root._ = _2;
define(function() {
return _2;
});
} else if (freeModule) {
(freeModule.exports = _2)._ = _2;
freeExports._ = _2;
} else {
root._ = _2;
}
}).call(exports2);
}
});
var require_color_name = __commonJS2({
"node_modules/color-name/index.js"(exports2, module2) {
"use strict";
module2.exports = {
"aliceblue": [240, 248, 255],
"antiquewhite": [250, 235, 215],
"aqua": [0, 255, 255],
"aquamarine": [127, 255, 212],
"azure": [240, 255, 255],
"beige": [245, 245, 220],
"bisque": [255, 228, 196],
"black": [0, 0, 0],
"blanchedalmond": [255, 235, 205],
"blue": [0, 0, 255],
"blueviolet": [138, 43, 226],
"brown": [165, 42, 42],
"burlywood": [222, 184, 135],
"cadetblue": [95, 158, 160],
"chartreuse": [127, 255, 0],
"chocolate": [210, 105, 30],
"coral": [255, 127, 80],
"cornflowerblue": [100, 149, 237],
"cornsilk": [255, 248, 220],
"crimson": [220, 20, 60],
"cyan": [0, 255, 255],
"darkblue": [0, 0, 139],
"darkcyan": [0, 139, 139],
"darkgoldenrod": [184, 134, 11],
"darkgray": [169, 169, 169],
"darkgreen": [0, 100, 0],
"darkgrey": [169, 169, 169],
"darkkhaki": [189, 183, 107],
"darkmagenta": [139, 0, 139],
"darkolivegreen": [85, 107, 47],
"darkorange": [255, 140, 0],
"darkorchid": [153, 50, 204],
"darkred": [139, 0, 0],
"darksalmon": [233, 150, 122],
"darkseagreen": [143, 188, 143],
"darkslateblue": [72, 61, 139],
"darkslategray": [47, 79, 79],
"darkslategrey": [47, 79, 79],
"darkturquoise": [0, 206, 209],
"darkviolet": [148, 0, 211],
"deeppink": [255, 20, 147],
"deepskyblue": [0, 191, 255],
"dimgray": [105, 105, 105],
"dimgrey": [105, 105, 105],
"dodgerblue": [30, 144, 255],
"firebrick": [178, 34, 34],
"floralwhite": [255, 250, 240],
"forestgreen": [34, 139, 34],
"fuchsia": [255, 0, 255],
"gainsboro": [220, 220, 220],
"ghostwhite": [248, 248, 255],
"gold": [255, 215, 0],
"goldenrod": [218, 165, 32],
"gray": [128, 128, 128],
"green": [0, 128, 0],
"greenyellow": [173, 255, 47],
"grey": [128, 128, 128],
"honeydew": [240, 255, 240],
"hotpink": [255, 105, 180],
"indianred": [205, 92, 92],
"indigo": [75, 0, 130],
"ivory": [255, 255, 240],
"khaki": [240, 230, 140],
"lavender": [230, 230, 250],
"lavenderblush": [255, 240, 245],
"lawngreen": [124, 252, 0],
"lemonchiffon": [255, 250, 205],
"lightblue": [173, 216, 230],
"lightcoral": [240, 128, 128],
"lightcyan": [224, 255, 255],
"lightgoldenrodyellow": [250, 250, 210],
"lightgray": [211, 211, 211],
"lightgreen": [144, 238, 144],
"lightgrey": [211, 211, 211],
"lightpink": [255, 182, 193],
"lightsalmon": [255, 160, 122],
"lightseagreen": [32, 178, 170],
"lightskyblue": [135, 206, 250],
"lightslategray": [119, 136, 153],
"lightslategrey": [119, 136, 153],
"lightsteelblue": [176, 196, 222],
"lightyellow": [255, 255, 224],
"lime": [0, 255, 0],
"limegreen": [50, 205, 50],
"linen": [250, 240, 230],
"magenta": [255, 0, 255],
"maroon": [128, 0, 0],
"mediumaquamarine": [102, 205, 170],
"mediumblue": [0, 0, 205],
"mediumorchid": [186, 85, 211],
"mediumpurple": [147, 112, 219],
"mediumseagreen": [60, 179, 113],
"mediumslateblue": [123, 104, 238],
"mediumspringgreen": [0, 250, 154],
"mediumturquoise": [72, 209, 204],
"mediumvioletred": [199, 21, 133],
"midnightblue": [25, 25, 112],
"mintcream": [245, 255, 250],
"mistyrose": [255, 228, 225],
"moccasin": [255, 228, 181],
"navajowhite": [255, 222, 173],
"navy": [0, 0, 128],
"oldlace": [253, 245, 230],
"olive": [128, 128, 0],
"olivedrab": [107, 142, 35],
"orange": [255, 165, 0],
"orangered": [255, 69, 0],
"orchid": [218, 112, 214],
"palegoldenrod": [238, 232, 170],
"palegreen": [152, 251, 152],
"paleturquoise": [175, 238, 238],
"palevioletred": [219, 112, 147],
"papayawhip": [255, 239, 213],
"peachpuff": [255, 218, 185],
"peru": [205, 133, 63],
"pink": [255, 192, 203],
"plum": [221, 160, 221],
"powderblue": [176, 224, 230],
"purple": [128, 0, 128],
"rebeccapurple": [102, 51, 153],
"red": [255, 0, 0],
"rosybrown": [188, 143, 143],
"royalblue": [65, 105, 225],
"saddlebrown": [139, 69, 19],
"salmon": [250, 128, 114],
"sandybrown": [244, 164, 96],
"seagreen": [46, 139, 87],
"seashell": [255, 245, 238],
"sienna": [160, 82, 45],
"silver": [192, 192, 192],
"skyblue": [135, 206, 235],
"slateblue": [106, 90, 205],
"slategray": [112, 128, 144],
"slategrey": [112, 128, 144],
"snow": [255, 250, 250],
"springgreen": [0, 255, 127],
"steelblue": [70, 130, 180],
"tan": [210, 180, 140],
"teal": [0, 128, 128],
"thistle": [216, 191, 216],
"tomato": [255, 99, 71],
"turquoise": [64, 224, 208],
"violet": [238, 130, 238],
"wheat": [245, 222, 179],
"white": [255, 255, 255],
"whitesmoke": [245, 245, 245],
"yellow": [255, 255, 0],
"yellowgreen": [154, 205, 50]
};
}
});
var require_conversions = __commonJS2({
"node_modules/color-convert/conversions.js"(exports2, module2) {
var cssKeywords = require_color_name();
var reverseKeywords = {};
for (const key of Object.keys(cssKeywords)) {
reverseKeywords[cssKeywords[key]] = key;
}
var convert = {
rgb: { channels: 3, labels: "rgb" },
hsl: { channels: 3, labels: "hsl" },
hsv: { channels: 3, labels: "hsv" },
hwb: { channels: 3, labels: "hwb" },
cmyk: { channels: 4, labels: "cmyk" },
xyz: { channels: 3, labels: "xyz" },
lab: { channels: 3, labels: "lab" },
lch: { channels: 3, labels: "lch" },
hex: { channels: 1, labels: ["hex"] },
keyword: { channels: 1, labels: ["keyword"] },
ansi16: { channels: 1, labels: ["ansi16"] },
ansi256: { channels: 1, labels: ["ansi256"] },
hcg: { channels: 3, labels: ["h", "c", "g"] },
apple: { channels: 3, labels: ["r16", "g16", "b16"] },
gray: { channels: 1, labels: ["gray"] }
};
module2.exports = convert;
for (const model of Object.keys(convert)) {
if (!("channels" in convert[model])) {
throw new Error("missing channels property: " + model);
}
if (!("labels" in convert[model])) {
throw new Error("missing channel labels property: " + model);
}
if (convert[model].labels.length !== convert[model].channels) {
throw new Error("channel and label counts mismatch: " + model);
}
const { channels, labels } = convert[model];
delete convert[model].channels;
delete convert[model].labels;
Object.defineProperty(convert[model], "channels", { value: channels });
Object.defineProperty(convert[model], "labels", { value: labels });
}
convert.rgb.hsl = function(rgb) {
const r = rgb[0] / 255;
const g = rgb[1] / 255;
const b = rgb[2] / 255;
const min = Math.min(r, g, b);
const max = Math.max(r, g, b);
const delta = max - min;
let h;
let s;
if (max === min) {
h = 0;
} else if (r === max) {
h = (g - b) / delta;
} else if (g === max) {
h = 2 + (b - r) / delta;
} else if (b === max) {
h = 4 + (r - g) / delta;
}
h = Math.min(h * 60, 360);
if (h < 0) {
h += 360;
}
const l = (min + max) / 2;
if (max === min) {
s = 0;
} else if (l <= 0.5) {
s = delta / (max + min);
} else {
s = delta / (2 - max - min);
}
return [h, s * 100, l * 100];
};
convert.rgb.hsv = function(rgb) {
let rdif;
let gdif;
let bdif;
let h;
let s;
const r = rgb[0] / 255;
const g = rgb[1] / 255;
const b = rgb[2] / 255;
const v = Math.max(r, g, b);
const diff = v - Math.min(r, g, b);
const diffc = function(c) {
return (v - c) / 6 / diff + 1 / 2;
};
if (diff === 0) {
h = 0;
s = 0;
} else {
s = diff / v;
rdif = diffc(r);
gdif = diffc(g);
bdif = diffc(b);
if (r === v) {
h = bdif - gdif;
} else if (g === v) {
h = 1 / 3 + rdif - bdif;
} else if (b === v) {
h = 2 / 3 + gdif - rdif;
}
if (h < 0) {
h += 1;
} else if (h > 1) {
h -= 1;
}
}
return [
h * 360,
s * 100,
v * 100
];
};
convert.rgb.hwb = function(rgb) {
const r = rgb[0];
const g = rgb[1];
let b = rgb[2];
const h = convert.rgb.hsl(rgb)[0];
const w = 1 / 255 * Math.min(r, Math.min(g, b));
b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
return [h, w * 100, b * 100];
};
convert.rgb.cmyk = function(rgb) {
const r = rgb[0] / 255;
const g = rgb[1] / 255;
const b = rgb[2] / 255;
const k = Math.min(1 - r, 1 - g, 1 - b);
const c = (1 - r - k) / (1 - k) || 0;
const m = (1 - g - k) / (1 - k) || 0;
const y = (1 - b - k) / (1 - k) || 0;
return [c * 100, m * 100, y * 100, k * 100];
};
function comparativeDistance(x, y) {
return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2;
}
convert.rgb.keyword = function(rgb) {
const reversed = reverseKeywords[rgb];
if (reversed) {
return reversed;
}
let currentClosestDistance = Infinity;
let currentClosestKeyword;
for (const keyword of Object.keys(cssKeywords)) {
const value = cssKeywords[keyword];
const distance = comparativeDistance(rgb, value);
if (distance < currentClosestDistance) {
currentClosestDistance = distance;
currentClosestKeyword = keyword;
}
}
return currentClosestKeyword;
};
convert.keyword.rgb = function(keyword) {
return cssKeywords[keyword];
};
convert.rgb.xyz = function(rgb) {
let r = rgb[0] / 255;
let g = rgb[1] / 255;
let b = rgb[2] / 255;
r = r > 0.04045 ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92;
g = g > 0.04045 ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92;
b = b > 0.04045 ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92;
const x = r * 0.4124 + g * 0.3576 + b * 0.1805;
const y = r * 0.2126 + g * 0.7152 + b * 0.0722;
const z22 = r * 0.0193 + g * 0.1192 + b * 0.9505;
return [x * 100, y * 100, z22 * 100];
};
convert.rgb.lab = function(rgb) {
const xyz = convert.rgb.xyz(rgb);
let x = xyz[0];
let y = xyz[1];
let z22 = xyz[2];
x /= 95.047;
y /= 100;
z22 /= 108.883;
x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116;
y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116;
z22 = z22 > 8856e-6 ? z22 ** (1 / 3) : 7.787 * z22 + 16 / 116;
const l = 116 * y - 16;
const a = 500 * (x - y);
const b = 200 * (y - z22);
return [l, a, b];
};
convert.hsl.rgb = function(hsl) {
const h = hsl[0] / 360;
const s = hsl[1] / 100;
const l = hsl[2] / 100;
let t2;
let t3;
let val;
if (s === 0) {
val = l * 255;
return [val, val, val];
}
if (l < 0.5) {
t2 = l * (1 + s);
} else {
t2 = l + s - l * s;
}
const t1 = 2 * l - t2;
const rgb = [0, 0, 0];
for (let i = 0; i < 3; i++) {
t3 = h + 1 / 3 * -(i - 1);
if (t3 < 0) {
t3++;
}
if (t3 > 1) {
t3--;
}
if (6 * t3 < 1) {
val = t1 + (t2 - t1) * 6 * t3;
} else if (2 * t3 < 1) {
val = t2;
} else if (3 * t3 < 2) {
val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
} else {
val = t1;
}
rgb[i] = val * 255;
}
return rgb;
};
convert.hsl.hsv = function(hsl) {
const h = hsl[0];
let s = hsl[1] / 100;
let l = hsl[2] / 100;
let smin = s;
const lmin = Math.max(l, 0.01);
l *= 2;
s *= l <= 1 ? l : 2 - l;
smin *= lmin <= 1 ? lmin : 2 - lmin;
const v = (l + s) / 2;
const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);
return [h, sv * 100, v * 100];
};
convert.hsv.rgb = function(hsv) {
const h = hsv[0] / 60;
const s = hsv[1] / 100;
let v = hsv[2] / 100;
const hi = Math.floor(h) % 6;
const f = h - Math.floor(h);
const p = 255 * v * (1 - s);
const q = 255 * v * (1 - s * f);
const t = 255 * v * (1 - s * (1 - f));
v *= 255;
switch (hi) {
case 0:
return [v, t, p];
case 1:
return [q, v, p];
case 2:
return [p, v, t];
case 3:
return [p, q, v];
case 4:
return [t, p, v];
case 5:
return [v, p, q];
}
};
convert.hsv.hsl = function(hsv) {
const h = hsv[0];
const s = hsv[1] / 100;
const v = hsv[2] / 100;
const vmin = Math.max(v, 0.01);
let sl;
let l;
l = (2 - s) * v;
const lmin = (2 - s) * vmin;
sl = s * vmin;
sl /= lmin <= 1 ? lmin : 2 - lmin;
sl = sl || 0;
l /= 2;
return [h, sl * 100, l * 100];
};
convert.hwb.rgb = function(hwb) {
const h = hwb[0] / 360;
let wh = hwb[1] / 100;
let bl = hwb[2] / 100;
const ratio = wh + bl;
let f;
if (ratio > 1) {
wh /= ratio;
bl /= ratio;
}
const i = Math.floor(6 * h);
const v = 1 - bl;
f = 6 * h - i;
if ((i & 1) !== 0) {
f = 1 - f;
}
const n = wh + f * (v - wh);
let r;
let g;
let b;
switch (i) {
default:
case 6:
case 0:
r = v;
g = n;
b = wh;
break;
case 1:
r = n;
g = v;
b = wh;
break;
case 2:
r = wh;
g = v;
b = n;
break;
case 3:
r = wh;
g = n;
b = v;
break;
case 4:
r = n;
g = wh;
b = v;
break;
case 5:
r = v;
g = wh;
b = n;
break;
}
return [r * 255, g * 255, b * 255];
};
convert.cmyk.rgb = function(cmyk) {
const c = cmyk[0] / 100;
const m = cmyk[1] / 100;
const y = cmyk[2] / 100;
const k = cmyk[3] / 100;
const r = 1 - Math.min(1, c * (1 - k) + k);
const g = 1 - Math.min(1, m * (1 - k) + k);
const b = 1 - Math.min(1, y * (1 - k) + k);
return [r * 255, g * 255, b * 255];
};
convert.xyz.rgb = function(xyz) {
const x = xyz[0] / 100;
const y = xyz[1] / 100;
const z22 = xyz[2] / 100;
let r;
let g;
let b;
r = x * 3.2406 + y * -1.5372 + z22 * -0.4986;
g = x * -0.9689 + y * 1.8758 + z22 * 0.0415;
b = x * 0.0557 + y * -0.204 + z22 * 1.057;
r = r > 31308e-7 ? 1.055 * r ** (1 / 2.4) - 0.055 : r * 12.92;
g = g > 31308e-7 ? 1.055 * g ** (1 / 2.4) - 0.055 : g * 12.92;
b = b > 31308e-7 ? 1.055 * b ** (1 / 2.4) - 0.055 : b * 12.92;
r = Math.min(Math.max(0, r), 1);
g = Math.min(Math.max(0, g), 1);
b = Math.min(Math.max(0, b), 1);
return [r * 255, g * 255, b * 255];
};
convert.xyz.lab = function(xyz) {
let x = xyz[0];
let y = xyz[1];
let z22 = xyz[2];
x /= 95.047;
y /= 100;
z22 /= 108.883;
x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116;
y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116;
z22 = z22 > 8856e-6 ? z22 ** (1 / 3) : 7.787 * z22 + 16 / 116;
const l = 116 * y - 16;
const a = 500 * (x - y);
const b = 200 * (y - z22);
return [l, a, b];
};
convert.lab.xyz = function(lab) {
const l = lab[0];
const a = lab[1];
const b = lab[2];
let x;
let y;
let z22;
y = (l + 16) / 116;
x = a / 500 + y;
z22 = y - b / 200;
const y2 = y ** 3;
const x2 = x ** 3;
const z222 = z22 ** 3;
y = y2 > 8856e-6 ? y2 : (y - 16 / 116) / 7.787;
x = x2 > 8856e-6 ? x2 : (x - 16 / 116) / 7.787;
z22 = z222 > 8856e-6 ? z222 : (z22 - 16 / 116) / 7.787;
x *= 95.047;
y *= 100;
z22 *= 108.883;
return [x, y, z22];
};
convert.lab.lch = function(lab) {
const l = lab[0];
const a = lab[1];
const b = lab[2];
let h;
const hr = Math.atan2(b, a);
h = hr * 360 / 2 / Math.PI;
if (h < 0) {
h += 360;
}
const c = Math.sqrt(a * a + b * b);
return [l, c, h];
};
convert.lch.lab = function(lch) {
const l = lch[0];
const c = lch[1];
const h = lch[2];
const hr = h / 360 * 2 * Math.PI;
const a = c * Math.cos(hr);
const b = c * Math.sin(hr);
return [l, a, b];
};
convert.rgb.ansi16 = function(args, saturation = null) {
const [r, g, b] = args;
let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation;
value = Math.round(value / 50);
if (value === 0) {
return 30;
}
let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));
if (value === 2) {
ansi += 60;
}
return ansi;
};
convert.hsv.ansi16 = function(args) {
return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
};
convert.rgb.ansi256 = function(args) {
const r = args[0];
const g = args[1];
const b = args[2];
if (r === g && g === b) {
if (r < 8) {
return 16;
}
if (r > 248) {
return 231;
}
return Math.round((r - 8) / 247 * 24) + 232;
}
const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);
return ansi;
};
convert.ansi16.rgb = function(args) {
let color = args % 10;
if (color === 0 || color === 7) {
if (args > 50) {
color += 3.5;
}
color = color / 10.5 * 255;
return [color, color, color];
}
const mult = (~~(args > 50) + 1) * 0.5;
const r = (color & 1) * mult * 255;
const g = (color >> 1 & 1) * mult * 255;
const b = (color >> 2 & 1) * mult * 255;
return [r, g, b];
};
convert.ansi256.rgb = function(args) {
if (args >= 232) {
const c = (args - 232) * 10 + 8;
return [c, c, c];
}
args -= 16;
let rem;
const r = Math.floor(args / 36) / 5 * 255;
const g = Math.floor((rem = args % 36) / 6) / 5 * 255;
const b = rem % 6 / 5 * 255;
return [r, g, b];
};
convert.rgb.hex = function(args) {
const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255);
const string = integer.toString(16).toUpperCase();
return "000000".substring(string.length) + string;
};
convert.hex.rgb = function(args) {
const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
if (!match) {
return [0, 0, 0];
}
let colorString = match[0];
if (match[0].length === 3) {
colorString = colorString.split("").map((char) => {
return char + char;
}).join("");
}
const integer = parseInt(colorString, 16);
const r = integer >> 16 & 255;
const g = integer >> 8 & 255;
const b = integer & 255;
return [r, g, b];
};
convert.rgb.hcg = function(rgb) {
const r = rgb[0] / 255;
const g = rgb[1] / 255;
const b = rgb[2] / 255;
const max = Math.max(Math.max(r, g), b);
const min = Math.min(Math.min(r, g), b);
const chroma = max - min;
let grayscale;
let hue;
if (chroma < 1) {
grayscale = min / (1 - chroma);
} else {
grayscale = 0;
}
if (chroma <= 0) {
hue = 0;
} else if (max === r) {
hue = (g - b) / chroma % 6;
} else if (max === g) {
hue = 2 + (b - r) / chroma;
} else {
hue = 4 + (r - g) / chroma;
}
hue /= 6;
hue %= 1;
return [hue * 360, chroma * 100, grayscale * 100];
};
convert.hsl.hcg = function(hsl) {
const s = hsl[1] / 100;
const l = hsl[2] / 100;
const c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l);
let f = 0;
if (c < 1) {
f = (l - 0.5 * c) / (1 - c);
}
return [hsl[0], c * 100, f * 100];
};
convert.hsv.hcg = function(hsv) {
const s = hsv[1] / 100;
const v = hsv[2] / 100;
const c = s * v;
let f = 0;
if (c < 1) {
f = (v - c) / (1 - c);
}
return [hsv[0], c * 100, f * 100];
};
convert.hcg.rgb = function(hcg) {
const h = hcg[0] / 360;
const c = hcg[1] / 100;
const g = hcg[2] / 100;
if (c === 0) {
return [g * 255, g * 255, g * 255];
}
const pure = [0, 0, 0];
const hi = h % 1 * 6;
const v = hi % 1;
const w = 1 - v;
let mg = 0;
switch (Math.floor(hi)) {
case 0:
pure[0] = 1;
pure[1] = v;
pure[2] = 0;
break;
case 1:
pure[0] = w;
pure[1] = 1;
pure[2] = 0;
break;
case 2:
pure[0] = 0;
pure[1] = 1;
pure[2] = v;
break;
case 3:
pure[0] = 0;
pure[1] = w;
pure[2] = 1;
break;
case 4:
pure[0] = v;
pure[1] = 0;
pure[2] = 1;
break;
default:
pure[0] = 1;
pure[1] = 0;
pure[2] = w;
}
mg = (1 - c) * g;
return [
(c * pure[0] + mg) * 255,
(c * pure[1] + mg) * 255,
(c * pure[2] + mg) * 255
];
};
convert.hcg.hsv = function(hcg) {
const c = hcg[1] / 100;
const g = hcg[2] / 100;
const v = c + g * (1 - c);
let f = 0;
if (v > 0) {
f = c / v;
}
return [hcg[0], f * 100, v * 100];
};
convert.hcg.hsl = function(hcg) {
const c = hcg[1] / 100;
const g = hcg[2] / 100;
const l = g * (1 - c) + 0.5 * c;
let s = 0;
if (l > 0 && l < 0.5) {
s = c / (2 * l);
} else if (l >= 0.5 && l < 1) {
s = c / (2 * (1 - l));
}
return [hcg[0], s * 100, l * 100];
};
convert.hcg.hwb = function(hcg) {
const c = hcg[1] / 100;
const g = hcg[2] / 100;
const v = c + g * (1 - c);
return [hcg[0], (v - c) * 100, (1 - v) * 100];
};
convert.hwb.hcg = function(hwb) {
const w = hwb[1] / 100;
const b = hwb[2] / 100;
const v = 1 - b;
const c = v - w;
let g = 0;
if (c < 1) {
g = (v - c) / (1 - c);
}
return [hwb[0], c * 100, g * 100];
};
convert.apple.rgb = function(apple) {
return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
};
convert.rgb.apple = function(rgb) {
return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
};
convert.gray.rgb = function(args) {
return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
};
convert.gray.hsl = function(args) {
return [0, 0, args[0]];
};
convert.gray.hsv = convert.gray.hsl;
convert.gray.hwb = function(gray) {
return [0, 100, gray[0]];
};
convert.gray.cmyk = function(gray) {
return [0, 0, 0, gray[0]];
};
convert.gray.lab = function(gray) {
return [gray[0], 0, 0];
};
convert.gray.hex = function(gray) {
const val = Math.round(gray[0] / 100 * 255) & 255;
const integer = (val << 16) + (val << 8) + val;
const string = integer.toString(16).toUpperCase();
return "000000".substring(string.length) + string;
};
convert.rgb.gray = function(rgb) {
const val = (rgb[0] + rgb[1] + rgb[2]) / 3;
return [val / 255 * 100];
};
}
});
var require_route2 = __commonJS2({
"node_modules/color-convert/route.js"(exports2, module2) {
var conversions = require_conversions();
function buildGraph() {
const graph = {};
const models = Object.keys(conversions);
for (let len = models.length, i = 0; i < len; i++) {
graph[models[i]] = {
// http://jsperf.com/1-vs-infinity
// micro-opt, but this is simple.
distance: -1,
parent: null
};
}
return graph;
}
function deriveBFS(fromModel) {
const graph = buildGraph();
const queue = [fromModel];
graph[fromModel].distance = 0;
while (queue.length) {
const current = queue.pop();
const adjacents = Object.keys(conversions[current]);
for (let len = adjacents.length, i = 0; i < len; i++) {
const adjacent = adjacents[i];
const node = graph[adjacent];
if (node.distance === -1) {
node.distance = graph[current].distance + 1;
node.parent = current;
queue.unshift(adjacent);
}
}
}
return graph;
}
function link(from, to) {
return function(args) {
return to(from(args));
};
}
function wrapConversion(toModel, graph) {
const path = [graph[toModel].parent, toModel];
let fn = conversions[graph[toModel].parent][toModel];
let cur = graph[toModel].parent;
while (graph[cur].parent) {
path.unshift(graph[cur].parent);
fn = link(conversions[graph[cur].parent][cur], fn);
cur = graph[cur].parent;
}
fn.conversion = path;
return fn;
}
module2.exports = function(fromModel) {
const graph = deriveBFS(fromModel);
const conversion = {};
const models = Object.keys(graph);
for (let len = models.length, i = 0; i < len; i++) {
const toModel = models[i];
const node = graph[toModel];
if (node.parent === null) {
continue;
}
conversion[toModel] = wrapConversion(toModel, graph);
}
return conversion;
};
}
});
var require_color_convert = __commonJS2({
"node_modules/color-convert/index.js"(exports2, module2) {
var conversions = require_conversions();
var route = require_route2();
var convert = {};
var models = Object.keys(conversions);
function wrapRaw(fn) {
const wrappedFn = function(...args) {
const arg0 = args[0];
if (arg0 === void 0 || arg0 === null) {
return arg0;
}
if (arg0.length > 1) {
args = arg0;
}
return fn(args);
};
if ("conversion" in fn) {
wrappedFn.conversion = fn.conversion;
}
return wrappedFn;
}
function wrapRounded(fn) {
const wrappedFn = function(...args) {
const arg0 = args[0];
if (arg0 === void 0 || arg0 === null) {
return arg0;
}
if (arg0.length > 1) {
args = arg0;
}
const result = fn(args);
if (typeof result === "object") {
for (let len = result.length, i = 0; i < len; i++) {
result[i] = Math.round(result[i]);
}
}
return result;
};
if ("conversion" in fn) {
wrappedFn.conversion = fn.conversion;
}
return wrappedFn;
}
models.forEach((fromModel) => {
convert[fromModel] = {};
Object.defineProperty(convert[fromModel], "channels", { value: conversions[fromModel].channels });
Object.defineProperty(convert[fromModel], "labels", { value: conversions[fromModel].labels });
const routes = route(fromModel);
const routeModels = Object.keys(routes);
routeModels.forEach((toModel) => {
const fn = routes[toModel];
convert[fromModel][toModel] = wrapRounded(fn);
convert[fromModel][toModel].raw = wrapRaw(fn);
});
});
module2.exports = convert;
}
});
var require_ansi_styles = __commonJS2({
"node_modules/ansi-styles/index.js"(exports2, module2) {
"use strict";
var wrapAnsi16 = (fn, offset) => (...args) => {
const code = fn(...args);
return `\x1B[${code + offset}m`;
};
var wrapAnsi256 = (fn, offset) => (...args) => {
const code = fn(...args);
return `\x1B[${38 + offset};5;${code}m`;
};
var wrapAnsi16m = (fn, offset) => (...args) => {
const rgb = fn(...args);
return `\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
};
var ansi2ansi = (n) => n;
var rgb2rgb = (r, g, b) => [r, g, b];
var setLazyProperty = (object, property, get) => {
Object.defineProperty(object, property, {
get: () => {
const value = get();
Object.defineProperty(object, property, {
value,
enumerable: true,
configurable: true
});
return value;
},
enumerable: true,
configurable: true
});
};
var colorConvert;
var makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {
if (colorConvert === void 0) {
colorConvert = require_color_convert();
}
const offset = isBackground ? 10 : 0;
const styles = {};
for (const [sourceSpace, suite] of Object.entries(colorConvert)) {
const name = sourceSpace === "ansi16" ? "ansi" : sourceSpace;
if (sourceSpace === targetSpace) {
styles[name] = wrap(identity, offset);
} else if (typeof suite === "object") {
styles[name] = wrap(suite[targetSpace], offset);
}
}
return styles;
};
function assembleStyles() {
const codes = /* @__PURE__ */ new Map();
const styles = {
modifier: {
reset: [0, 0],
// 21 isn't widely supported and 22 does the same thing
bold: [1, 22],
dim: [2, 22],
italic: [3, 23],
underline: [4, 24],
inverse: [7, 27],
hidden: [8, 28],
strikethrough: [9, 29]
},
color: {
black: [30, 39],
red: [31, 39],
green: [32, 39],
yellow: [33, 39],
blue: [34, 39],
magenta: [35, 39],
cyan: [36, 39],
white: [37, 39],
// Bright color
blackBright: [90, 39],
redBright: [91, 39],
greenBright: [92, 39],
yellowBright: [93, 39],
blueBright: [94, 39],
magentaBright: [95, 39],
cyanBright: [96, 39],
whiteBright: [97, 39]
},
bgColor: {
bgBlack: [40, 49],
bgRed: [41, 49],
bgGreen: [42, 49],
bgYellow: [43, 49],
bgBlue: [44, 49],
bgMagenta: [45, 49],
bgCyan: [46, 49],
bgWhite: [47, 49],
// Bright color
bgBlackBright: [100, 49],
bgRedBright: [101, 49],
bgGreenBright: [102, 49],
bgYellowBright: [103, 49],
bgBlueBright: [104, 49],
bgMagentaBright: [105, 49],
bgCyanBright: [106, 49],
bgWhiteBright: [107, 49]
}
};
styles.color.gray = styles.color.blackBright;
styles.bgColor.bgGray = styles.bgColor.bgBlackBright;
styles.color.grey = styles.color.blackBright;
styles.bgColor.bgGrey = styles.bgColor.bgBlackBright;
for (const [groupName, group] of Object.entries(styles)) {
for (const [styleName, style] of Object.entries(group)) {
styles[styleName] = {
open: `\x1B[${style[0]}m`,
close: `\x1B[${style[1]}m`
};
group[styleName] = styles[styleName];
codes.set(style[0], style[1]);
}
Object.defineProperty(styles, groupName, {
value: group,
enumerable: false
});
}
Object.defineProperty(styles, "codes", {
value: codes,
enumerable: false
});
styles.color.close = "\x1B[39m";
styles.bgColor.close = "\x1B[49m";
setLazyProperty(styles.color, "ansi", () => makeDynamicStyles(wrapAnsi16, "ansi16", ansi2ansi, false));
setLazyProperty(styles.color, "ansi256", () => makeDynamicStyles(wrapAnsi256, "ansi256", ansi2ansi, false));
setLazyProperty(styles.color, "ansi16m", () => makeDynamicStyles(wrapAnsi16m, "rgb", rgb2rgb, false));
setLazyProperty(styles.bgColor, "ansi", () => makeDynamicStyles(wrapAnsi16, "ansi16", ansi2ansi, true));
setLazyProperty(styles.bgColor, "ansi256", () => makeDynamicStyles(wrapAnsi256, "ansi256", ansi2ansi, true));
setLazyProperty(styles.bgColor, "ansi16m", () => makeDynamicStyles(wrapAnsi16m, "rgb", rgb2rgb, true));
return styles;
}
Object.defineProperty(module2, "exports", {
enumerable: true,
get: assembleStyles
});
}
});
var require_util2 = __commonJS2({
"node_modules/chalk/source/util.js"(exports2, module2) {
"use strict";
var stringReplaceAll = (string, substring, replacer) => {
let index = string.indexOf(substring);
if (index === -1) {
return string;
}
const substringLength = substring.length;
let endIndex = 0;
let returnValue = "";
do {
returnValue += string.substr(endIndex, index - endIndex) + substring + replacer;
endIndex = index + substringLength;
index = string.indexOf(substring, endIndex);
} while (index !== -1);
returnValue += string.substr(endIndex);
return returnValue;
};
var stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {
let endIndex = 0;
let returnValue = "";
do {
const gotCR = string[index - 1] === "\r";
returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? "\r\n" : "\n") + postfix;
endIndex = index + 1;
index = string.indexOf("\n", endIndex);
} while (index !== -1);
returnValue += string.substr(endIndex);
return returnValue;
};
module2.exports = {
stringReplaceAll,
stringEncaseCRLFWithFirstIndex
};
}
});
var require_templates = __commonJS2({
"node_modules/chalk/source/templates.js"(exports2, module2) {
"use strict";
var TEMPLATE_REGEX = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
var STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
var ESCAPE_REGEX = /\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi;
var ESCAPES = /* @__PURE__ */ new Map([
["n", "\n"],
["r", "\r"],
["t", " "],
["b", "\b"],
["f", "\f"],
["v", "\v"],
["0", "\0"],
["\\", "\\"],
["e", "\x1B"],
["a", "\x07"]
]);
function unescape2(c) {
const u = c[0] === "u";
const bracket = c[1] === "{";
if (u && !bracket && c.length === 5 || c[0] === "x" && c.length === 3) {
return String.fromCharCode(parseInt(c.slice(1), 16));
}
if (u && bracket) {
return String.fromCodePoint(parseInt(c.slice(2, -1), 16));
}
return ESCAPES.get(c) || c;
}
function parseArguments(name, arguments_) {
const results = [];
const chunks = arguments_.trim().split(/\s*,\s*/g);
let matches;
for (const chunk of chunks) {
const number = Number(chunk);
if (!Number.isNaN(number)) {
results.push(number);
} else if (matches = chunk.match(STRING_REGEX)) {
results.push(matches[2].replace(ESCAPE_REGEX, (m, escape2, character) => escape2 ? unescape2(escape2) : character));
} else {
throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);
}
}
return results;
}
function parseStyle(style) {
STYLE_REGEX.lastIndex = 0;
const results = [];
let matches;
while ((matches = STYLE_REGEX.exec(style)) !== null) {
const name = matches[1];
if (matches[2]) {
const args = parseArguments(name, matches[2]);
results.push([name].concat(args));
} else {
results.push([name]);
}
}
return results;
}
function buildStyle(chalk2, styles) {
const enabled = {};
for (const layer of styles) {
for (const style of layer.styles) {
enabled[style[0]] = layer.inverse ? null : style.slice(1);
}
}
let current = chalk2;
for (const [styleName, styles2] of Object.entries(enabled)) {
if (!Array.isArray(styles2)) {
continue;
}
if (!(styleName in current)) {
throw new Error(`Unknown Chalk style: ${styleName}`);
}
current = styles2.length > 0 ? current[styleName](...styles2) : current[styleName];
}
return current;
}
module2.exports = (chalk2, temporary) => {
const styles = [];
const chunks = [];
let chunk = [];
temporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {
if (escapeCharacter) {
chunk.push(unescape2(escapeCharacter));
} else if (style) {
const string = chunk.join("");
chunk = [];
chunks.push(styles.length === 0 ? string : buildStyle(chalk2, styles)(string));
styles.push({ inverse, styles: parseStyle(style) });
} else if (close) {
if (styles.length === 0) {
throw new Error("Found extraneous } in Chalk template literal");
}
chunks.push(buildStyle(chalk2, styles)(chunk.join("")));
chunk = [];
styles.pop();
} else {
chunk.push(character);
}
});
chunks.push(chunk.join(""));
if (styles.length > 0) {
const errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? "" : "s"} (\`}\`)`;
throw new Error(errMessage);
}
return chunks.join("");
};
}
});
var require_source = __commonJS2({
"node_modules/chalk/source/index.js"(exports2, module2) {
"use strict";
var ansiStyles = require_ansi_styles();
var { stdout: stdoutColor, stderr: stderrColor } = require_supports_color();
var {
stringReplaceAll,
stringEncaseCRLFWithFirstIndex
} = require_util2();
var { isArray: isArray2 } = Array;
var levelMapping = [
"ansi",
"ansi",
"ansi256",
"ansi16m"
];
var styles = /* @__PURE__ */ Object.create(null);
var applyOptions = (object, options = {}) => {
if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
throw new Error("The `level` option should be an integer from 0 to 3");
}
const colorLevel = stdoutColor ? stdoutColor.level : 0;
object.level = options.level === void 0 ? colorLevel : options.level;
};
var ChalkClass = class {
constructor(options) {
return chalkFactory(options);
}
};
var chalkFactory = (options) => {
const chalk3 = {};
applyOptions(chalk3, options);
chalk3.template = (...arguments_) => chalkTag(chalk3.template, ...arguments_);
Object.setPrototypeOf(chalk3, Chalk.prototype);
Object.setPrototypeOf(chalk3.template, chalk3);
chalk3.template.constructor = () => {
throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.");
};
chalk3.template.Instance = ChalkClass;
return chalk3.template;
};
function Chalk(options) {
return chalkFactory(options);
}
for (const [styleName, style] of Object.entries(ansiStyles)) {
styles[styleName] = {
get() {
const builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);
Object.defineProperty(this, styleName, { value: builder });
return builder;
}
};
}
styles.visible = {
get() {
const builder = createBuilder(this, this._styler, true);
Object.defineProperty(this, "visible", { value: builder });
return builder;
}
};
var usedModels = ["rgb", "hex", "keyword", "hsl", "hsv", "hwb", "ansi", "ansi256"];
for (const model of usedModels) {
styles[model] = {
get() {
const { level } = this;
return function(...arguments_) {
const styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);
return createBuilder(this, styler, this._isEmpty);
};
}
};
}
for (const model of usedModels) {
const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
styles[bgModel] = {
get() {
const { level } = this;
return function(...arguments_) {
const styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);
return createBuilder(this, styler, this._isEmpty);
};
}
};
}
var proto = Object.defineProperties(() => {
}, {
...styles,
level: {
enumerable: true,
get() {
return this._generator.level;
},
set(level) {
this._generator.level = level;
}
}
});
var createStyler = (open, close, parent) => {
let openAll;
let closeAll;
if (parent === void 0) {
openAll = open;
closeAll = close;
} else {
openAll = parent.openAll + open;
closeAll = close + parent.closeAll;
}
return {
open,
close,
openAll,
closeAll,
parent
};
};
var createBuilder = (self2, _styler, _isEmpty) => {
const builder = (...arguments_) => {
if (isArray2(arguments_[0]) && isArray2(arguments_[0].raw)) {
return applyStyle(builder, chalkTag(builder, ...arguments_));
}
return applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
};
Object.setPrototypeOf(builder, proto);
builder._generator = self2;
builder._styler = _styler;
builder._isEmpty = _isEmpty;
return builder;
};
var applyStyle = (self2, string) => {
if (self2.level <= 0 || !string) {
return self2._isEmpty ? "" : string;
}
let styler = self2._styler;
if (styler === void 0) {
return string;
}
const { openAll, closeAll } = styler;
if (string.indexOf("\x1B") !== -1) {
while (styler !== void 0) {
string = stringReplaceAll(string, styler.close, styler.open);
styler = styler.parent;
}
}
const lfIndex = string.indexOf("\n");
if (lfIndex !== -1) {
string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
}
return openAll + string + closeAll;
};
var template;
var chalkTag = (chalk3, ...strings) => {
const [firstString] = strings;
if (!isArray2(firstString) || !isArray2(firstString.raw)) {
return strings.join(" ");
}
const arguments_ = strings.slice(1);
const parts = [firstString.raw[0]];
for (let i = 1; i < firstString.length; i++) {
parts.push(
String(arguments_[i - 1]).replace(/[{}\\]/g, "\\$&"),
String(firstString.raw[i])
);
}
if (template === void 0) {
template = require_templates();
}
return template(chalk3, parts.join(""));
};
Object.defineProperties(Chalk.prototype, styles);
var chalk2 = Chalk();
chalk2.supportsColor = stdoutColor;
chalk2.stderr = Chalk({ level: stderrColor ? stderrColor.level : 0 });
chalk2.stderr.supportsColor = stderrColor;
module2.exports = chalk2;
}
});
var require_object_assign = __commonJS2({
"node_modules/object-assign/index.js"(exports2, module2) {
"use strict";
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty2 = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === void 0) {
throw new TypeError("Object.assign cannot be called with null or undefined");
}
return Object(val);
}
function shouldUseNative() {
try {
if (!Object.assign) {
return false;
}
var test1 = new String("abc");
test1[5] = "de";
if (Object.getOwnPropertyNames(test1)[0] === "5") {
return false;
}
var test2 = {};
for (var i = 0; i < 10; i++) {
test2["_" + String.fromCharCode(i)] = i;
}
var order2 = Object.getOwnPropertyNames(test2).map(function(n) {
return test2[n];
});
if (order2.join("") !== "0123456789") {
return false;
}
var test3 = {};
"abcdefghijklmnopqrst".split("").forEach(function(letter) {
test3[letter] = letter;
});
if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") {
return false;
}
return true;
} catch (err2) {
return false;
}
}
module2.exports = shouldUseNative() ? Object.assign : function(target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty2.call(from, key)) {
to[key] = from[key];
}
}
if (getOwnPropertySymbols) {
symbols = getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
}
});
var require_lib4 = __commonJS2({
"node_modules/cors/lib/index.js"(exports2, module2) {
(function() {
"use strict";
var assign = require_object_assign();
var vary = require_vary();
var defaults2 = {
origin: "*",
methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
preflightContinue: false,
optionsSuccessStatus: 204
};
function isString2(s) {
return typeof s === "string" || s instanceof String;
}
function isOriginAllowed(origin2, allowedOrigin) {
if (Array.isArray(allowedOrigin)) {
for (var i = 0; i < allowedOrigin.length; ++i) {
if (isOriginAllowed(origin2, allowedOrigin[i])) {
return true;
}
}
return false;
} else if (isString2(allowedOrigin)) {
return origin2 === allowedOrigin;
} else if (allowedOrigin instanceof RegExp) {
return allowedOrigin.test(origin2);
} else {
return !!allowedOrigin;
}
}
function configureOrigin(options, req) {
var requestOrigin = req.headers.origin, headers = [], isAllowed;
if (!options.origin || options.origin === "*") {
headers.push([{
key: "Access-Control-Allow-Origin",
value: "*"
}]);
} else if (isString2(options.origin)) {
headers.push([{
key: "Access-Control-Allow-Origin",
value: options.origin
}]);
headers.push([{
key: "Vary",
value: "Origin"
}]);
} else {
isAllowed = isOriginAllowed(requestOrigin, options.origin);
headers.push([{
key: "Access-Control-Allow-Origin",
value: isAllowed ? requestOrigin : false
}]);
headers.push([{
key: "Vary",
value: "Origin"
}]);
}
return headers;
}
function configureMethods(options) {
var methods = options.methods;
if (methods.join) {
methods = options.methods.join(",");
}
return {
key: "Access-Control-Allow-Methods",
value: methods
};
}
function configureCredentials(options) {
if (options.credentials === true) {
return {
key: "Access-Control-Allow-Credentials",
value: "true"
};
}
return null;
}
function configureAllowedHeaders(options, req) {
var allowedHeaders = options.allowedHeaders || options.headers;
var headers = [];
if (!allowedHeaders) {
allowedHeaders = req.headers["access-control-request-headers"];
headers.push([{
key: "Vary",
value: "Access-Control-Request-Headers"
}]);
} else if (allowedHeaders.join) {
allowedHeaders = allowedHeaders.join(",");
}
if (allowedHeaders && allowedHeaders.length) {
headers.push([{
key: "Access-Control-Allow-Headers",
value: allowedHeaders
}]);
}
return headers;
}
function configureExposedHeaders(options) {
var headers = options.exposedHeaders;
if (!headers) {
return null;
} else if (headers.join) {
headers = headers.join(",");
}
if (headers && headers.length) {
return {
key: "Access-Control-Expose-Headers",
value: headers
};
}
return null;
}
function configureMaxAge(options) {
var maxAge = (typeof options.maxAge === "number" || options.maxAge) && options.maxAge.toString();
if (maxAge && maxAge.length) {
return {
key: "Access-Control-Max-Age",
value: maxAge
};
}
return null;
}
function applyHeaders(headers, res) {
for (var i = 0, n = headers.length; i < n; i++) {
var header = headers[i];
if (header) {
if (Array.isArray(header)) {
applyHeaders(header, res);
} else if (header.key === "Vary" && header.value) {
vary(res, header.value);
} else if (header.value) {
res.setHeader(header.key, header.value);
}
}
}
}
function cors2(options, req, res, next) {
var headers = [], method = req.method && req.method.toUpperCase && req.method.toUpperCase();
if (method === "OPTIONS") {
headers.push(configureOrigin(options, req));
headers.push(configureCredentials(options, req));
headers.push(configureMethods(options, req));
headers.push(configureAllowedHeaders(options, req));
headers.push(configureMaxAge(options, req));
headers.push(configureExposedHeaders(options, req));
applyHeaders(headers, res);
if (options.preflightContinue) {
next();
} else {
res.statusCode = options.optionsSuccessStatus;
res.setHeader("Content-Length", "0");
res.end();
}
} else {
headers.push(configureOrigin(options, req));
headers.push(configureCredentials(options, req));
headers.push(configureExposedHeaders(options, req));
applyHeaders(headers, res);
next();
}
}
function middlewareWrapper(o) {
var optionsCallback = null;
if (typeof o === "function") {
optionsCallback = o;
} else {
optionsCallback = function(req, cb) {
cb(null, o);
};
}
return function corsMiddleware(req, res, next) {
optionsCallback(req, function(err2, options) {
if (err2) {
next(err2);
} else {
var corsOptions = assign({}, defaults2, options);
var originCallback = null;
if (corsOptions.origin && typeof corsOptions.origin === "function") {
originCallback = corsOptions.origin;
} else if (corsOptions.origin) {
originCallback = function(origin2, cb) {
cb(null, corsOptions.origin);
};
}
if (originCallback) {
originCallback(req.headers.origin, function(err22, origin2) {
if (err22 || !origin2) {
next(err22);
} else {
corsOptions.origin = origin2;
cors2(corsOptions, req, res, next);
}
});
} else {
next();
}
}
});
};
}
module2.exports = middlewareWrapper;
})();
}
});
var util4;
(function(util22) {
util22.assertEqual = (val) => val;
function assertIs(_arg) {
}
util22.assertIs = assertIs;
function assertNever(_x) {
throw new Error();
}
util22.assertNever = assertNever;
util22.arrayToEnum = (items) => {
const obj = {};
for (const item of items) {
obj[item] = item;
}
return obj;
};
util22.getValidEnumValues = (obj) => {
const validKeys = util22.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== "number");
const filtered = {};
for (const k of validKeys) {
filtered[k] = obj[k];
}
return util22.objectValues(filtered);
};
util22.objectValues = (obj) => {
return util22.objectKeys(obj).map(function(e) {
return obj[e];
});
};
util22.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object) => {
const keys = [];
for (const key in object) {
if (Object.prototype.hasOwnProperty.call(object, key)) {
keys.push(key);
}
}
return keys;
};
util22.find = (arr, checker) => {
for (const item of arr) {
if (checker(item))
return item;
}
return void 0;
};
util22.isInteger = typeof Number.isInteger === "function" ? (val) => Number.isInteger(val) : (val) => typeof val === "number" && isFinite(val) && Math.floor(val) === val;
function joinValues(array, separator = " | ") {
return array.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator);
}
util22.joinValues = joinValues;
util22.jsonStringifyReplacer = (_2, value) => {
if (typeof value === "bigint") {
return value.toString();
}
return value;
};
})(util4 || (util4 = {}));
var objectUtil2;
(function(objectUtil22) {
objectUtil22.mergeShapes = (first, second) => {
return {
...first,
...second
// second overwrites first
};
};
})(objectUtil2 || (objectUtil2 = {}));
var ZodParsedType2 = util4.arrayToEnum([
"string",
"nan",
"number",
"integer",
"float",
"boolean",
"date",
"bigint",
"symbol",
"function",
"undefined",
"null",
"array",
"object",
"unknown",
"promise",
"void",
"never",
"map",
"set"
]);
var getParsedType2 = (data) => {
const t = typeof data;
switch (t) {
case "undefined":
return ZodParsedType2.undefined;
case "string":
return ZodParsedType2.string;
case "number":
return isNaN(data) ? ZodParsedType2.nan : ZodParsedType2.number;
case "boolean":
return ZodParsedType2.boolean;
case "function":
return ZodParsedType2.function;
case "bigint":
return ZodParsedType2.bigint;
case "symbol":
return ZodParsedType2.symbol;
case "object":
if (Array.isArray(data)) {
return ZodParsedType2.array;
}
if (data === null) {
return ZodParsedType2.null;
}
if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") {
return ZodParsedType2.promise;
}
if (typeof Map !== "undefined" && data instanceof Map) {
return ZodParsedType2.map;
}
if (typeof Set !== "undefined" && data instanceof Set) {
return ZodParsedType2.set;
}
if (typeof Date !== "undefined" && data instanceof Date) {
return ZodParsedType2.date;
}
return ZodParsedType2.object;
default:
return ZodParsedType2.unknown;
}
};
var ZodIssueCode2 = util4.arrayToEnum([
"invalid_type",
"invalid_literal",
"custom",
"invalid_union",
"invalid_union_discriminator",
"invalid_enum_value",
"unrecognized_keys",
"invalid_arguments",
"invalid_return_type",
"invalid_date",
"invalid_string",
"too_small",
"too_big",
"invalid_intersection_types",
"not_multiple_of",
"not_finite"
]);
var quotelessJson2 = (obj) => {
const json = JSON.stringify(obj, null, 2);
return json.replace(/"([^"]+)":/g, "$1:");
};
var ZodError2 = class _ZodError extends Error {
get errors() {
return this.issues;
}
constructor(issues) {
super();
this.issues = [];
this.addIssue = (sub) => {
this.issues = [...this.issues, sub];
};
this.addIssues = (subs = []) => {
this.issues = [...this.issues, ...subs];
};
const actualProto = new.target.prototype;
if (Object.setPrototypeOf) {
Object.setPrototypeOf(this, actualProto);
} else {
this.__proto__ = actualProto;
}
this.name = "ZodError";
this.issues = issues;
}
format(_mapper) {
const mapper = _mapper || function(issue) {
return issue.message;
};
const fieldErrors = { _errors: [] };
const processError = (error) => {
for (const issue of error.issues) {
if (issue.code === "invalid_union") {
issue.unionErrors.map(processError);
} else if (issue.code === "invalid_return_type") {
processError(issue.returnTypeError);
} else if (issue.code === "invalid_arguments") {
processError(issue.argumentsError);
} else if (issue.path.length === 0) {
fieldErrors._errors.push(mapper(issue));
} else {
let curr = fieldErrors;
let i = 0;
while (i < issue.path.length) {
const el = issue.path[i];
const terminal = i === issue.path.length - 1;
if (!terminal) {
curr[el] = curr[el] || { _errors: [] };
} else {
curr[el] = curr[el] || { _errors: [] };
curr[el]._errors.push(mapper(issue));
}
curr = curr[el];
i++;
}
}
}
};
processError(this);
return fieldErrors;
}
static assert(value) {
if (!(value instanceof _ZodError)) {
throw new Error(`Not a ZodError: ${value}`);
}
}
toString() {
return this.message;
}
get message() {
return JSON.stringify(this.issues, util4.jsonStringifyReplacer, 2);
}
get isEmpty() {
return this.issues.length === 0;
}
flatten(mapper = (issue) => issue.message) {
const fieldErrors = {};
const formErrors = [];
for (const sub of this.issues) {
if (sub.path.length > 0) {
fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];
fieldErrors[sub.path[0]].push(mapper(sub));
} else {
formErrors.push(mapper(sub));
}
}
return { formErrors, fieldErrors };
}
get formErrors() {
return this.flatten();
}
};
ZodError2.create = (issues) => {
const error = new ZodError2(issues);
return error;
};
var errorMap2 = (issue, _ctx) => {
let message;
switch (issue.code) {
case ZodIssueCode2.invalid_type:
if (issue.received === ZodParsedType2.undefined) {
message = "Required";
} else {
message = `Expected ${issue.expected}, received ${issue.received}`;
}
break;
case ZodIssueCode2.invalid_literal:
message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util4.jsonStringifyReplacer)}`;
break;
case ZodIssueCode2.unrecognized_keys:
message = `Unrecognized key(s) in object: ${util4.joinValues(issue.keys, ", ")}`;
break;
case ZodIssueCode2.invalid_union:
message = `Invalid input`;
break;
case ZodIssueCode2.invalid_union_discriminator:
message = `Invalid discriminator value. Expected ${util4.joinValues(issue.options)}`;
break;
case ZodIssueCode2.invalid_enum_value:
message = `Invalid enum value. Expected ${util4.joinValues(issue.options)}, received '${issue.received}'`;
break;
case ZodIssueCode2.invalid_arguments:
message = `Invalid function arguments`;
break;
case ZodIssueCode2.invalid_return_type:
message = `Invalid function return type`;
break;
case ZodIssueCode2.invalid_date:
message = `Invalid date`;
break;
case ZodIssueCode2.invalid_string:
if (typeof issue.validation === "object") {
if ("includes" in issue.validation) {
message = `Invalid input: must include "${issue.validation.includes}"`;
if (typeof issue.validation.position === "number") {
message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;
}
} else if ("startsWith" in issue.validation) {
message = `Invalid input: must start with "${issue.validation.startsWith}"`;
} else if ("endsWith" in issue.validation) {
message = `Invalid input: must end with "${issue.validation.endsWith}"`;
} else {
util4.assertNever(issue.validation);
}
} else if (issue.validation !== "regex") {
message = `Invalid ${issue.validation}`;
} else {
message = "Invalid";
}
break;
case ZodIssueCode2.too_small:
if (issue.type === "array")
message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;
else if (issue.type === "string")
message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;
else if (issue.type === "number")
message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;
else if (issue.type === "date")
message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;
else
message = "Invalid input";
break;
case ZodIssueCode2.too_big:
if (issue.type === "array")
message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;
else if (issue.type === "string")
message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;
else if (issue.type === "number")
message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
else if (issue.type === "bigint")
message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
else if (issue.type === "date")
message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;
else
message = "Invalid input";
break;
case ZodIssueCode2.custom:
message = `Invalid input`;
break;
case ZodIssueCode2.invalid_intersection_types:
message = `Intersection results could not be merged`;
break;
case ZodIssueCode2.not_multiple_of:
message = `Number must be a multiple of ${issue.multipleOf}`;
break;
case ZodIssueCode2.not_finite:
message = "Number must be finite";
break;
default:
message = _ctx.defaultError;
util4.assertNever(issue);
}
return { message };
};
var overrideErrorMap2 = errorMap2;
function setErrorMap2(map) {
overrideErrorMap2 = map;
}
function getErrorMap2() {
return overrideErrorMap2;
}
var makeIssue2 = (params) => {
const { data, path, errorMaps, issueData } = params;
const fullPath = [...path, ...issueData.path || []];
const fullIssue = {
...issueData,
path: fullPath
};
if (issueData.message !== void 0) {
return {
...issueData,
path: fullPath,
message: issueData.message
};
}
let errorMessage = "";
const maps = errorMaps.filter((m) => !!m).slice().reverse();
for (const map of maps) {
errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;
}
return {
...issueData,
path: fullPath,
message: errorMessage
};
};
var EMPTY_PATH2 = [];
function addIssueToContext2(ctx, issueData) {
const overrideMap = getErrorMap2();
const issue = makeIssue2({
issueData,
data: ctx.data,
path: ctx.path,
errorMaps: [
ctx.common.contextualErrorMap,
// contextual error map is first priority
ctx.schemaErrorMap,
// then schema-bound map if available
overrideMap,
// then global override map
overrideMap === errorMap2 ? void 0 : errorMap2
// then global default map
].filter((x) => !!x)
});
ctx.common.issues.push(issue);
}
var ParseStatus2 = class _ParseStatus {
constructor() {
this.value = "valid";
}
dirty() {
if (this.value === "valid")
this.value = "dirty";
}
abort() {
if (this.value !== "aborted")
this.value = "aborted";
}
static mergeArray(status, results) {
const arrayValue = [];
for (const s of results) {
if (s.status === "aborted")
return INVALID2;
if (s.status === "dirty")
status.dirty();
arrayValue.push(s.value);
}
return { status: status.value, value: arrayValue };
}
static async mergeObjectAsync(status, pairs) {
const syncPairs = [];
for (const pair of pairs) {
const key = await pair.key;
const value = await pair.value;
syncPairs.push({
key,
value
});
}
return _ParseStatus.mergeObjectSync(status, syncPairs);
}
static mergeObjectSync(status, pairs) {
const finalObject = {};
for (const pair of pairs) {
const { key, value } = pair;
if (key.status === "aborted")
return INVALID2;
if (value.status === "aborted")
return INVALID2;
if (key.status === "dirty")
status.dirty();
if (value.status === "dirty")
status.dirty();
if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) {
finalObject[key.value] = value.value;
}
}
return { status: status.value, value: finalObject };
}
};
var INVALID2 = Object.freeze({
status: "aborted"
});
var DIRTY2 = (value) => ({ status: "dirty", value });
var OK2 = (value) => ({ status: "valid", value });
var isAborted2 = (x) => x.status === "aborted";
var isDirty2 = (x) => x.status === "dirty";
var isValid2 = (x) => x.status === "valid";
var isAsync2 = (x) => typeof Promise !== "undefined" && x instanceof Promise;
function __classPrivateFieldGet2(receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}
function __classPrivateFieldSet2(receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
}
var errorUtil2;
(function(errorUtil22) {
errorUtil22.errToObj = (message) => typeof message === "string" ? { message } : message || {};
errorUtil22.toString = (message) => typeof message === "string" ? message : message === null || message === void 0 ? void 0 : message.message;
})(errorUtil2 || (errorUtil2 = {}));
var _ZodEnum_cache2;
var _ZodNativeEnum_cache2;
var ParseInputLazyPath2 = class {
constructor(parent, value, path, key) {
this._cachedPath = [];
this.parent = parent;
this.data = value;
this._path = path;
this._key = key;
}
get path() {
if (!this._cachedPath.length) {
if (this._key instanceof Array) {
this._cachedPath.push(...this._path, ...this._key);
} else {
this._cachedPath.push(...this._path, this._key);
}
}
return this._cachedPath;
}
};
var handleResult2 = (ctx, result) => {
if (isValid2(result)) {
return { success: true, data: result.value };
} else {
if (!ctx.common.issues.length) {
throw new Error("Validation failed but no issues detected.");
}
return {
success: false,
get error() {
if (this._error)
return this._error;
const error = new ZodError2(ctx.common.issues);
this._error = error;
return this._error;
}
};
}
};
function processCreateParams3(params) {
if (!params)
return {};
const { errorMap: errorMap22, invalid_type_error, required_error, description } = params;
if (errorMap22 && (invalid_type_error || required_error)) {
throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);
}
if (errorMap22)
return { errorMap: errorMap22, description };
const customMap = (iss, ctx) => {
var _a, _b;
const { message } = params;
if (iss.code === "invalid_enum_value") {
return { message: message !== null && message !== void 0 ? message : ctx.defaultError };
}
if (typeof ctx.data === "undefined") {
return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };
}
if (iss.code !== "invalid_type")
return { message: ctx.defaultError };
return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };
};
return { errorMap: customMap, description };
}
var ZodType2 = class {
get description() {
return this._def.description;
}
_getType(input) {
return getParsedType2(input.data);
}
_getOrReturnCtx(input, ctx) {
return ctx || {
common: input.parent.common,
data: input.data,
parsedType: getParsedType2(input.data),
schemaErrorMap: this._def.errorMap,
path: input.path,
parent: input.parent
};
}
_processInputParams(input) {
return {
status: new ParseStatus2(),
ctx: {
common: input.parent.common,
data: input.data,
parsedType: getParsedType2(input.data),
schemaErrorMap: this._def.errorMap,
path: input.path,
parent: input.parent
}
};
}
_parseSync(input) {
const result = this._parse(input);
if (isAsync2(result)) {
throw new Error("Synchronous parse encountered promise.");
}
return result;
}
_parseAsync(input) {
const result = this._parse(input);
return Promise.resolve(result);
}
parse(data, params) {
const result = this.safeParse(data, params);
if (result.success)
return result.data;
throw result.error;
}
safeParse(data, params) {
var _a;
const ctx = {
common: {
issues: [],
async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,
contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap
},
path: (params === null || params === void 0 ? void 0 : params.path) || [],
schemaErrorMap: this._def.errorMap,
parent: null,
data,
parsedType: getParsedType2(data)
};
const result = this._parseSync({ data, path: ctx.path, parent: ctx });
return handleResult2(ctx, result);
}
"~validate"(data) {
var _a, _b;
const ctx = {
common: {
issues: [],
async: !!this["~standard"].async
},
path: [],
schemaErrorMap: this._def.errorMap,
parent: null,
data,
parsedType: getParsedType2(data)
};
if (!this["~standard"].async) {
try {
const result = this._parseSync({ data, path: [], parent: ctx });
return isValid2(result) ? {
value: result.value
} : {
issues: ctx.common.issues
};
} catch (err2) {
if ((_b = (_a = err2 === null || err2 === void 0 ? void 0 : err2.message) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes("encountered")) {
this["~standard"].async = true;
}
ctx.common = {
issues: [],
async: true
};
}
}
return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid2(result) ? {
value: result.value
} : {
issues: ctx.common.issues
});
}
async parseAsync(data, params) {
const result = await this.safeParseAsync(data, params);
if (result.success)
return result.data;
throw result.error;
}
async safeParseAsync(data, params) {
const ctx = {
common: {
issues: [],
contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,
async: true
},
path: (params === null || params === void 0 ? void 0 : params.path) || [],
schemaErrorMap: this._def.errorMap,
parent: null,
data,
parsedType: getParsedType2(data)
};
const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });
const result = await (isAsync2(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));
return handleResult2(ctx, result);
}
refine(check, message) {
const getIssueProperties = (val) => {
if (typeof message === "string" || typeof message === "undefined") {
return { message };
} else if (typeof message === "function") {
return message(val);
} else {
return message;
}
};
return this._refinement((val, ctx) => {
const result = check(val);
const setError = () => ctx.addIssue({
code: ZodIssueCode2.custom,
...getIssueProperties(val)
});
if (typeof Promise !== "undefined" && result instanceof Promise) {
return result.then((data) => {
if (!data) {
setError();
return false;
} else {
return true;
}
});
}
if (!result) {
setError();
return false;
} else {
return true;
}
});
}
refinement(check, refinementData) {
return this._refinement((val, ctx) => {
if (!check(val)) {
ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData);
return false;
} else {
return true;
}
});
}
_refinement(refinement) {
return new ZodEffects2({
schema: this,
typeName: ZodFirstPartyTypeKind2.ZodEffects,
effect: { type: "refinement", refinement }
});
}
superRefine(refinement) {
return this._refinement(refinement);
}
constructor(def) {
this.spa = this.safeParseAsync;
this._def = def;
this.parse = this.parse.bind(this);
this.safeParse = this.safeParse.bind(this);
this.parseAsync = this.parseAsync.bind(this);
this.safeParseAsync = this.safeParseAsync.bind(this);
this.spa = this.spa.bind(this);
this.refine = this.refine.bind(this);
this.refinement = this.refinement.bind(this);
this.superRefine = this.superRefine.bind(this);
this.optional = this.optional.bind(this);
this.nullable = this.nullable.bind(this);
this.nullish = this.nullish.bind(this);
this.array = this.array.bind(this);
this.promise = this.promise.bind(this);
this.or = this.or.bind(this);
this.and = this.and.bind(this);
this.transform = this.transform.bind(this);
this.brand = this.brand.bind(this);
this.default = this.default.bind(this);
this.catch = this.catch.bind(this);
this.describe = this.describe.bind(this);
this.pipe = this.pipe.bind(this);
this.readonly = this.readonly.bind(this);
this.isNullable = this.isNullable.bind(this);
this.isOptional = this.isOptional.bind(this);
this["~standard"] = {
version: 1,
vendor: "zod",
validate: (data) => this["~validate"](data)
};
}
optional() {
return ZodOptional2.create(this, this._def);
}
nullable() {
return ZodNullable2.create(this, this._def);
}
nullish() {
return this.nullable().optional();
}
array() {
return ZodArray2.create(this);
}
promise() {
return ZodPromise2.create(this, this._def);
}
or(option) {
return ZodUnion2.create([this, option], this._def);
}
and(incoming) {
return ZodIntersection2.create(this, incoming, this._def);
}
transform(transform) {
return new ZodEffects2({
...processCreateParams3(this._def),
schema: this,
typeName: ZodFirstPartyTypeKind2.ZodEffects,
effect: { type: "transform", transform }
});
}
default(def) {
const defaultValueFunc = typeof def === "function" ? def : () => def;
return new ZodDefault2({
...processCreateParams3(this._def),
innerType: this,
defaultValue: defaultValueFunc,
typeName: ZodFirstPartyTypeKind2.ZodDefault
});
}
brand() {
return new ZodBranded2({
typeName: ZodFirstPartyTypeKind2.ZodBranded,
type: this,
...processCreateParams3(this._def)
});
}
catch(def) {
const catchValueFunc = typeof def === "function" ? def : () => def;
return new ZodCatch2({
...processCreateParams3(this._def),
innerType: this,
catchValue: catchValueFunc,
typeName: ZodFirstPartyTypeKind2.ZodCatch
});
}
describe(description) {
const This = this.constructor;
return new This({
...this._def,
description
});
}
pipe(target) {
return ZodPipeline2.create(this, target);
}
readonly() {
return ZodReadonly2.create(this);
}
isOptional() {
return this.safeParse(void 0).success;
}
isNullable() {
return this.safeParse(null).success;
}
};
var cuidRegex2 = /^c[^\s-]{8,}$/i;
var cuid2Regex2 = /^[0-9a-z]+$/;
var ulidRegex2 = /^[0-9A-HJKMNP-TV-Z]{26}$/i;
var uuidRegex2 = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i;
var nanoidRegex2 = /^[a-z0-9_-]{21}$/i;
var jwtRegex2 = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/;
var durationRegex2 = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;
var emailRegex2 = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;
var _emojiRegex2 = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;
var emojiRegex3;
var ipv4Regex2 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
var ipv4CidrRegex2 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/;
var ipv6Regex2 = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;
var ipv6CidrRegex2 = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;
var base64Regex2 = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
var base64urlRegex2 = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;
var dateRegexSource2 = `((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`;
var dateRegex2 = new RegExp(`^${dateRegexSource2}$`);
function timeRegexSource2(args) {
let regex = `([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d`;
if (args.precision) {
regex = `${regex}\\.\\d{${args.precision}}`;
} else if (args.precision == null) {
regex = `${regex}(\\.\\d+)?`;
}
return regex;
}
function timeRegex2(args) {
return new RegExp(`^${timeRegexSource2(args)}$`);
}
function datetimeRegex2(args) {
let regex = `${dateRegexSource2}T${timeRegexSource2(args)}`;
const opts = [];
opts.push(args.local ? `Z?` : `Z`);
if (args.offset)
opts.push(`([+-]\\d{2}:?\\d{2})`);
regex = `${regex}(${opts.join("|")})`;
return new RegExp(`^${regex}$`);
}
function isValidIP2(ip, version) {
if ((version === "v4" || !version) && ipv4Regex2.test(ip)) {
return true;
}
if ((version === "v6" || !version) && ipv6Regex2.test(ip)) {
return true;
}
return false;
}
function isValidJWT2(jwt, alg) {
if (!jwtRegex2.test(jwt))
return false;
try {
const [header] = jwt.split(".");
const base64 = header.replace(/-/g, "+").replace(/_/g, "/").padEnd(header.length + (4 - header.length % 4) % 4, "=");
const decoded = JSON.parse(atob(base64));
if (typeof decoded !== "object" || decoded === null)
return false;
if (!decoded.typ || !decoded.alg)
return false;
if (alg && decoded.alg !== alg)
return false;
return true;
} catch (_a) {
return false;
}
}
function isValidCidr2(ip, version) {
if ((version === "v4" || !version) && ipv4CidrRegex2.test(ip)) {
return true;
}
if ((version === "v6" || !version) && ipv6CidrRegex2.test(ip)) {
return true;
}
return false;
}
var ZodString2 = class _ZodString extends ZodType2 {
_parse(input) {
if (this._def.coerce) {
input.data = String(input.data);
}
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType2.string) {
const ctx2 = this._getOrReturnCtx(input);
addIssueToContext2(ctx2, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.string,
received: ctx2.parsedType
});
return INVALID2;
}
const status = new ParseStatus2();
let ctx = void 0;
for (const check of this._def.checks) {
if (check.kind === "min") {
if (input.data.length < check.value) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_small,
minimum: check.value,
type: "string",
inclusive: true,
exact: false,
message: check.message
});
status.dirty();
}
} else if (check.kind === "max") {
if (input.data.length > check.value) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_big,
maximum: check.value,
type: "string",
inclusive: true,
exact: false,
message: check.message
});
status.dirty();
}
} else if (check.kind === "length") {
const tooBig = input.data.length > check.value;
const tooSmall = input.data.length < check.value;
if (tooBig || tooSmall) {
ctx = this._getOrReturnCtx(input, ctx);
if (tooBig) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_big,
maximum: check.value,
type: "string",
inclusive: true,
exact: true,
message: check.message
});
} else if (tooSmall) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_small,
minimum: check.value,
type: "string",
inclusive: true,
exact: true,
message: check.message
});
}
status.dirty();
}
} else if (check.kind === "email") {
if (!emailRegex2.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "email",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "emoji") {
if (!emojiRegex3) {
emojiRegex3 = new RegExp(_emojiRegex2, "u");
}
if (!emojiRegex3.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "emoji",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "uuid") {
if (!uuidRegex2.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "uuid",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "nanoid") {
if (!nanoidRegex2.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "nanoid",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "cuid") {
if (!cuidRegex2.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "cuid",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "cuid2") {
if (!cuid2Regex2.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "cuid2",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "ulid") {
if (!ulidRegex2.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "ulid",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "url") {
try {
new URL(input.data);
} catch (_a) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "url",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "regex") {
check.regex.lastIndex = 0;
const testResult = check.regex.test(input.data);
if (!testResult) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "regex",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "trim") {
input.data = input.data.trim();
} else if (check.kind === "includes") {
if (!input.data.includes(check.value, check.position)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_string,
validation: { includes: check.value, position: check.position },
message: check.message
});
status.dirty();
}
} else if (check.kind === "toLowerCase") {
input.data = input.data.toLowerCase();
} else if (check.kind === "toUpperCase") {
input.data = input.data.toUpperCase();
} else if (check.kind === "startsWith") {
if (!input.data.startsWith(check.value)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_string,
validation: { startsWith: check.value },
message: check.message
});
status.dirty();
}
} else if (check.kind === "endsWith") {
if (!input.data.endsWith(check.value)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_string,
validation: { endsWith: check.value },
message: check.message
});
status.dirty();
}
} else if (check.kind === "datetime") {
const regex = datetimeRegex2(check);
if (!regex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_string,
validation: "datetime",
message: check.message
});
status.dirty();
}
} else if (check.kind === "date") {
const regex = dateRegex2;
if (!regex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_string,
validation: "date",
message: check.message
});
status.dirty();
}
} else if (check.kind === "time") {
const regex = timeRegex2(check);
if (!regex.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_string,
validation: "time",
message: check.message
});
status.dirty();
}
} else if (check.kind === "duration") {
if (!durationRegex2.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "duration",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "ip") {
if (!isValidIP2(input.data, check.version)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "ip",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "jwt") {
if (!isValidJWT2(input.data, check.alg)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "jwt",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "cidr") {
if (!isValidCidr2(input.data, check.version)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "cidr",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "base64") {
if (!base64Regex2.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "base64",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else if (check.kind === "base64url") {
if (!base64urlRegex2.test(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
validation: "base64url",
code: ZodIssueCode2.invalid_string,
message: check.message
});
status.dirty();
}
} else {
util4.assertNever(check);
}
}
return { status: status.value, value: input.data };
}
_regex(regex, validation, message) {
return this.refinement((data) => regex.test(data), {
validation,
code: ZodIssueCode2.invalid_string,
...errorUtil2.errToObj(message)
});
}
_addCheck(check) {
return new _ZodString({
...this._def,
checks: [...this._def.checks, check]
});
}
email(message) {
return this._addCheck({ kind: "email", ...errorUtil2.errToObj(message) });
}
url(message) {
return this._addCheck({ kind: "url", ...errorUtil2.errToObj(message) });
}
emoji(message) {
return this._addCheck({ kind: "emoji", ...errorUtil2.errToObj(message) });
}
uuid(message) {
return this._addCheck({ kind: "uuid", ...errorUtil2.errToObj(message) });
}
nanoid(message) {
return this._addCheck({ kind: "nanoid", ...errorUtil2.errToObj(message) });
}
cuid(message) {
return this._addCheck({ kind: "cuid", ...errorUtil2.errToObj(message) });
}
cuid2(message) {
return this._addCheck({ kind: "cuid2", ...errorUtil2.errToObj(message) });
}
ulid(message) {
return this._addCheck({ kind: "ulid", ...errorUtil2.errToObj(message) });
}
base64(message) {
return this._addCheck({ kind: "base64", ...errorUtil2.errToObj(message) });
}
base64url(message) {
return this._addCheck({
kind: "base64url",
...errorUtil2.errToObj(message)
});
}
jwt(options) {
return this._addCheck({ kind: "jwt", ...errorUtil2.errToObj(options) });
}
ip(options) {
return this._addCheck({ kind: "ip", ...errorUtil2.errToObj(options) });
}
cidr(options) {
return this._addCheck({ kind: "cidr", ...errorUtil2.errToObj(options) });
}
datetime(options) {
var _a, _b;
if (typeof options === "string") {
return this._addCheck({
kind: "datetime",
precision: null,
offset: false,
local: false,
message: options
});
}
return this._addCheck({
kind: "datetime",
precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === "undefined" ? null : options === null || options === void 0 ? void 0 : options.precision,
offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,
local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,
...errorUtil2.errToObj(options === null || options === void 0 ? void 0 : options.message)
});
}
date(message) {
return this._addCheck({ kind: "date", message });
}
time(options) {
if (typeof options === "string") {
return this._addCheck({
kind: "time",
precision: null,
message: options
});
}
return this._addCheck({
kind: "time",
precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === "undefined" ? null : options === null || options === void 0 ? void 0 : options.precision,
...errorUtil2.errToObj(options === null || options === void 0 ? void 0 : options.message)
});
}
duration(message) {
return this._addCheck({ kind: "duration", ...errorUtil2.errToObj(message) });
}
regex(regex, message) {
return this._addCheck({
kind: "regex",
regex,
...errorUtil2.errToObj(message)
});
}
includes(value, options) {
return this._addCheck({
kind: "includes",
value,
position: options === null || options === void 0 ? void 0 : options.position,
...errorUtil2.errToObj(options === null || options === void 0 ? void 0 : options.message)
});
}
startsWith(value, message) {
return this._addCheck({
kind: "startsWith",
value,
...errorUtil2.errToObj(message)
});
}
endsWith(value, message) {
return this._addCheck({
kind: "endsWith",
value,
...errorUtil2.errToObj(message)
});
}
min(minLength, message) {
return this._addCheck({
kind: "min",
value: minLength,
...errorUtil2.errToObj(message)
});
}
max(maxLength, message) {
return this._addCheck({
kind: "max",
value: maxLength,
...errorUtil2.errToObj(message)
});
}
length(len, message) {
return this._addCheck({
kind: "length",
value: len,
...errorUtil2.errToObj(message)
});
}
/**
* Equivalent to `.min(1)`
*/
nonempty(message) {
return this.min(1, errorUtil2.errToObj(message));
}
trim() {
return new _ZodString({
...this._def,
checks: [...this._def.checks, { kind: "trim" }]
});
}
toLowerCase() {
return new _ZodString({
...this._def,
checks: [...this._def.checks, { kind: "toLowerCase" }]
});
}
toUpperCase() {
return new _ZodString({
...this._def,
checks: [...this._def.checks, { kind: "toUpperCase" }]
});
}
get isDatetime() {
return !!this._def.checks.find((ch) => ch.kind === "datetime");
}
get isDate() {
return !!this._def.checks.find((ch) => ch.kind === "date");
}
get isTime() {
return !!this._def.checks.find((ch) => ch.kind === "time");
}
get isDuration() {
return !!this._def.checks.find((ch) => ch.kind === "duration");
}
get isEmail() {
return !!this._def.checks.find((ch) => ch.kind === "email");
}
get isURL() {
return !!this._def.checks.find((ch) => ch.kind === "url");
}
get isEmoji() {
return !!this._def.checks.find((ch) => ch.kind === "emoji");
}
get isUUID() {
return !!this._def.checks.find((ch) => ch.kind === "uuid");
}
get isNANOID() {
return !!this._def.checks.find((ch) => ch.kind === "nanoid");
}
get isCUID() {
return !!this._def.checks.find((ch) => ch.kind === "cuid");
}
get isCUID2() {
return !!this._def.checks.find((ch) => ch.kind === "cuid2");
}
get isULID() {
return !!this._def.checks.find((ch) => ch.kind === "ulid");
}
get isIP() {
return !!this._def.checks.find((ch) => ch.kind === "ip");
}
get isCIDR() {
return !!this._def.checks.find((ch) => ch.kind === "cidr");
}
get isBase64() {
return !!this._def.checks.find((ch) => ch.kind === "base64");
}
get isBase64url() {
return !!this._def.checks.find((ch) => ch.kind === "base64url");
}
get minLength() {
let min = null;
for (const ch of this._def.checks) {
if (ch.kind === "min") {
if (min === null || ch.value > min)
min = ch.value;
}
}
return min;
}
get maxLength() {
let max = null;
for (const ch of this._def.checks) {
if (ch.kind === "max") {
if (max === null || ch.value < max)
max = ch.value;
}
}
return max;
}
};
ZodString2.create = (params) => {
var _a;
return new ZodString2({
checks: [],
typeName: ZodFirstPartyTypeKind2.ZodString,
coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
...processCreateParams3(params)
});
};
function floatSafeRemainder2(val, step) {
const valDecCount = (val.toString().split(".")[1] || "").length;
const stepDecCount = (step.toString().split(".")[1] || "").length;
const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;
const valInt = parseInt(val.toFixed(decCount).replace(".", ""));
const stepInt = parseInt(step.toFixed(decCount).replace(".", ""));
return valInt % stepInt / Math.pow(10, decCount);
}
var ZodNumber2 = class _ZodNumber extends ZodType2 {
constructor() {
super(...arguments);
this.min = this.gte;
this.max = this.lte;
this.step = this.multipleOf;
}
_parse(input) {
if (this._def.coerce) {
input.data = Number(input.data);
}
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType2.number) {
const ctx2 = this._getOrReturnCtx(input);
addIssueToContext2(ctx2, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.number,
received: ctx2.parsedType
});
return INVALID2;
}
let ctx = void 0;
const status = new ParseStatus2();
for (const check of this._def.checks) {
if (check.kind === "int") {
if (!util4.isInteger(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: "integer",
received: "float",
message: check.message
});
status.dirty();
}
} else if (check.kind === "min") {
const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
if (tooSmall) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_small,
minimum: check.value,
type: "number",
inclusive: check.inclusive,
exact: false,
message: check.message
});
status.dirty();
}
} else if (check.kind === "max") {
const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
if (tooBig) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_big,
maximum: check.value,
type: "number",
inclusive: check.inclusive,
exact: false,
message: check.message
});
status.dirty();
}
} else if (check.kind === "multipleOf") {
if (floatSafeRemainder2(input.data, check.value) !== 0) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.not_multiple_of,
multipleOf: check.value,
message: check.message
});
status.dirty();
}
} else if (check.kind === "finite") {
if (!Number.isFinite(input.data)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.not_finite,
message: check.message
});
status.dirty();
}
} else {
util4.assertNever(check);
}
}
return { status: status.value, value: input.data };
}
gte(value, message) {
return this.setLimit("min", value, true, errorUtil2.toString(message));
}
gt(value, message) {
return this.setLimit("min", value, false, errorUtil2.toString(message));
}
lte(value, message) {
return this.setLimit("max", value, true, errorUtil2.toString(message));
}
lt(value, message) {
return this.setLimit("max", value, false, errorUtil2.toString(message));
}
setLimit(kind, value, inclusive, message) {
return new _ZodNumber({
...this._def,
checks: [
...this._def.checks,
{
kind,
value,
inclusive,
message: errorUtil2.toString(message)
}
]
});
}
_addCheck(check) {
return new _ZodNumber({
...this._def,
checks: [...this._def.checks, check]
});
}
int(message) {
return this._addCheck({
kind: "int",
message: errorUtil2.toString(message)
});
}
positive(message) {
return this._addCheck({
kind: "min",
value: 0,
inclusive: false,
message: errorUtil2.toString(message)
});
}
negative(message) {
return this._addCheck({
kind: "max",
value: 0,
inclusive: false,
message: errorUtil2.toString(message)
});
}
nonpositive(message) {
return this._addCheck({
kind: "max",
value: 0,
inclusive: true,
message: errorUtil2.toString(message)
});
}
nonnegative(message) {
return this._addCheck({
kind: "min",
value: 0,
inclusive: true,
message: errorUtil2.toString(message)
});
}
multipleOf(value, message) {
return this._addCheck({
kind: "multipleOf",
value,
message: errorUtil2.toString(message)
});
}
finite(message) {
return this._addCheck({
kind: "finite",
message: errorUtil2.toString(message)
});
}
safe(message) {
return this._addCheck({
kind: "min",
inclusive: true,
value: Number.MIN_SAFE_INTEGER,
message: errorUtil2.toString(message)
})._addCheck({
kind: "max",
inclusive: true,
value: Number.MAX_SAFE_INTEGER,
message: errorUtil2.toString(message)
});
}
get minValue() {
let min = null;
for (const ch of this._def.checks) {
if (ch.kind === "min") {
if (min === null || ch.value > min)
min = ch.value;
}
}
return min;
}
get maxValue() {
let max = null;
for (const ch of this._def.checks) {
if (ch.kind === "max") {
if (max === null || ch.value < max)
max = ch.value;
}
}
return max;
}
get isInt() {
return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util4.isInteger(ch.value));
}
get isFinite() {
let max = null, min = null;
for (const ch of this._def.checks) {
if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") {
return true;
} else if (ch.kind === "min") {
if (min === null || ch.value > min)
min = ch.value;
} else if (ch.kind === "max") {
if (max === null || ch.value < max)
max = ch.value;
}
}
return Number.isFinite(min) && Number.isFinite(max);
}
};
ZodNumber2.create = (params) => {
return new ZodNumber2({
checks: [],
typeName: ZodFirstPartyTypeKind2.ZodNumber,
coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
...processCreateParams3(params)
});
};
var ZodBigInt2 = class _ZodBigInt extends ZodType2 {
constructor() {
super(...arguments);
this.min = this.gte;
this.max = this.lte;
}
_parse(input) {
if (this._def.coerce) {
try {
input.data = BigInt(input.data);
} catch (_a) {
return this._getInvalidInput(input);
}
}
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType2.bigint) {
return this._getInvalidInput(input);
}
let ctx = void 0;
const status = new ParseStatus2();
for (const check of this._def.checks) {
if (check.kind === "min") {
const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
if (tooSmall) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_small,
type: "bigint",
minimum: check.value,
inclusive: check.inclusive,
message: check.message
});
status.dirty();
}
} else if (check.kind === "max") {
const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
if (tooBig) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_big,
type: "bigint",
maximum: check.value,
inclusive: check.inclusive,
message: check.message
});
status.dirty();
}
} else if (check.kind === "multipleOf") {
if (input.data % check.value !== BigInt(0)) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.not_multiple_of,
multipleOf: check.value,
message: check.message
});
status.dirty();
}
} else {
util4.assertNever(check);
}
}
return { status: status.value, value: input.data };
}
_getInvalidInput(input) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.bigint,
received: ctx.parsedType
});
return INVALID2;
}
gte(value, message) {
return this.setLimit("min", value, true, errorUtil2.toString(message));
}
gt(value, message) {
return this.setLimit("min", value, false, errorUtil2.toString(message));
}
lte(value, message) {
return this.setLimit("max", value, true, errorUtil2.toString(message));
}
lt(value, message) {
return this.setLimit("max", value, false, errorUtil2.toString(message));
}
setLimit(kind, value, inclusive, message) {
return new _ZodBigInt({
...this._def,
checks: [
...this._def.checks,
{
kind,
value,
inclusive,
message: errorUtil2.toString(message)
}
]
});
}
_addCheck(check) {
return new _ZodBigInt({
...this._def,
checks: [...this._def.checks, check]
});
}
positive(message) {
return this._addCheck({
kind: "min",
value: BigInt(0),
inclusive: false,
message: errorUtil2.toString(message)
});
}
negative(message) {
return this._addCheck({
kind: "max",
value: BigInt(0),
inclusive: false,
message: errorUtil2.toString(message)
});
}
nonpositive(message) {
return this._addCheck({
kind: "max",
value: BigInt(0),
inclusive: true,
message: errorUtil2.toString(message)
});
}
nonnegative(message) {
return this._addCheck({
kind: "min",
value: BigInt(0),
inclusive: true,
message: errorUtil2.toString(message)
});
}
multipleOf(value, message) {
return this._addCheck({
kind: "multipleOf",
value,
message: errorUtil2.toString(message)
});
}
get minValue() {
let min = null;
for (const ch of this._def.checks) {
if (ch.kind === "min") {
if (min === null || ch.value > min)
min = ch.value;
}
}
return min;
}
get maxValue() {
let max = null;
for (const ch of this._def.checks) {
if (ch.kind === "max") {
if (max === null || ch.value < max)
max = ch.value;
}
}
return max;
}
};
ZodBigInt2.create = (params) => {
var _a;
return new ZodBigInt2({
checks: [],
typeName: ZodFirstPartyTypeKind2.ZodBigInt,
coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,
...processCreateParams3(params)
});
};
var ZodBoolean2 = class extends ZodType2 {
_parse(input) {
if (this._def.coerce) {
input.data = Boolean(input.data);
}
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType2.boolean) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.boolean,
received: ctx.parsedType
});
return INVALID2;
}
return OK2(input.data);
}
};
ZodBoolean2.create = (params) => {
return new ZodBoolean2({
typeName: ZodFirstPartyTypeKind2.ZodBoolean,
coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
...processCreateParams3(params)
});
};
var ZodDate2 = class _ZodDate extends ZodType2 {
_parse(input) {
if (this._def.coerce) {
input.data = new Date(input.data);
}
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType2.date) {
const ctx2 = this._getOrReturnCtx(input);
addIssueToContext2(ctx2, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.date,
received: ctx2.parsedType
});
return INVALID2;
}
if (isNaN(input.data.getTime())) {
const ctx2 = this._getOrReturnCtx(input);
addIssueToContext2(ctx2, {
code: ZodIssueCode2.invalid_date
});
return INVALID2;
}
const status = new ParseStatus2();
let ctx = void 0;
for (const check of this._def.checks) {
if (check.kind === "min") {
if (input.data.getTime() < check.value) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_small,
message: check.message,
inclusive: true,
exact: false,
minimum: check.value,
type: "date"
});
status.dirty();
}
} else if (check.kind === "max") {
if (input.data.getTime() > check.value) {
ctx = this._getOrReturnCtx(input, ctx);
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_big,
message: check.message,
inclusive: true,
exact: false,
maximum: check.value,
type: "date"
});
status.dirty();
}
} else {
util4.assertNever(check);
}
}
return {
status: status.value,
value: new Date(input.data.getTime())
};
}
_addCheck(check) {
return new _ZodDate({
...this._def,
checks: [...this._def.checks, check]
});
}
min(minDate, message) {
return this._addCheck({
kind: "min",
value: minDate.getTime(),
message: errorUtil2.toString(message)
});
}
max(maxDate, message) {
return this._addCheck({
kind: "max",
value: maxDate.getTime(),
message: errorUtil2.toString(message)
});
}
get minDate() {
let min = null;
for (const ch of this._def.checks) {
if (ch.kind === "min") {
if (min === null || ch.value > min)
min = ch.value;
}
}
return min != null ? new Date(min) : null;
}
get maxDate() {
let max = null;
for (const ch of this._def.checks) {
if (ch.kind === "max") {
if (max === null || ch.value < max)
max = ch.value;
}
}
return max != null ? new Date(max) : null;
}
};
ZodDate2.create = (params) => {
return new ZodDate2({
checks: [],
coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
typeName: ZodFirstPartyTypeKind2.ZodDate,
...processCreateParams3(params)
});
};
var ZodSymbol2 = class extends ZodType2 {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType2.symbol) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.symbol,
received: ctx.parsedType
});
return INVALID2;
}
return OK2(input.data);
}
};
ZodSymbol2.create = (params) => {
return new ZodSymbol2({
typeName: ZodFirstPartyTypeKind2.ZodSymbol,
...processCreateParams3(params)
});
};
var ZodUndefined2 = class extends ZodType2 {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType2.undefined) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.undefined,
received: ctx.parsedType
});
return INVALID2;
}
return OK2(input.data);
}
};
ZodUndefined2.create = (params) => {
return new ZodUndefined2({
typeName: ZodFirstPartyTypeKind2.ZodUndefined,
...processCreateParams3(params)
});
};
var ZodNull2 = class extends ZodType2 {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType2.null) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.null,
received: ctx.parsedType
});
return INVALID2;
}
return OK2(input.data);
}
};
ZodNull2.create = (params) => {
return new ZodNull2({
typeName: ZodFirstPartyTypeKind2.ZodNull,
...processCreateParams3(params)
});
};
var ZodAny2 = class extends ZodType2 {
constructor() {
super(...arguments);
this._any = true;
}
_parse(input) {
return OK2(input.data);
}
};
ZodAny2.create = (params) => {
return new ZodAny2({
typeName: ZodFirstPartyTypeKind2.ZodAny,
...processCreateParams3(params)
});
};
var ZodUnknown2 = class extends ZodType2 {
constructor() {
super(...arguments);
this._unknown = true;
}
_parse(input) {
return OK2(input.data);
}
};
ZodUnknown2.create = (params) => {
return new ZodUnknown2({
typeName: ZodFirstPartyTypeKind2.ZodUnknown,
...processCreateParams3(params)
});
};
var ZodNever2 = class extends ZodType2 {
_parse(input) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.never,
received: ctx.parsedType
});
return INVALID2;
}
};
ZodNever2.create = (params) => {
return new ZodNever2({
typeName: ZodFirstPartyTypeKind2.ZodNever,
...processCreateParams3(params)
});
};
var ZodVoid2 = class extends ZodType2 {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType2.undefined) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.void,
received: ctx.parsedType
});
return INVALID2;
}
return OK2(input.data);
}
};
ZodVoid2.create = (params) => {
return new ZodVoid2({
typeName: ZodFirstPartyTypeKind2.ZodVoid,
...processCreateParams3(params)
});
};
var ZodArray2 = class _ZodArray extends ZodType2 {
_parse(input) {
const { ctx, status } = this._processInputParams(input);
const def = this._def;
if (ctx.parsedType !== ZodParsedType2.array) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.array,
received: ctx.parsedType
});
return INVALID2;
}
if (def.exactLength !== null) {
const tooBig = ctx.data.length > def.exactLength.value;
const tooSmall = ctx.data.length < def.exactLength.value;
if (tooBig || tooSmall) {
addIssueToContext2(ctx, {
code: tooBig ? ZodIssueCode2.too_big : ZodIssueCode2.too_small,
minimum: tooSmall ? def.exactLength.value : void 0,
maximum: tooBig ? def.exactLength.value : void 0,
type: "array",
inclusive: true,
exact: true,
message: def.exactLength.message
});
status.dirty();
}
}
if (def.minLength !== null) {
if (ctx.data.length < def.minLength.value) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_small,
minimum: def.minLength.value,
type: "array",
inclusive: true,
exact: false,
message: def.minLength.message
});
status.dirty();
}
}
if (def.maxLength !== null) {
if (ctx.data.length > def.maxLength.value) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_big,
maximum: def.maxLength.value,
type: "array",
inclusive: true,
exact: false,
message: def.maxLength.message
});
status.dirty();
}
}
if (ctx.common.async) {
return Promise.all([...ctx.data].map((item, i) => {
return def.type._parseAsync(new ParseInputLazyPath2(ctx, item, ctx.path, i));
})).then((result2) => {
return ParseStatus2.mergeArray(status, result2);
});
}
const result = [...ctx.data].map((item, i) => {
return def.type._parseSync(new ParseInputLazyPath2(ctx, item, ctx.path, i));
});
return ParseStatus2.mergeArray(status, result);
}
get element() {
return this._def.type;
}
min(minLength, message) {
return new _ZodArray({
...this._def,
minLength: { value: minLength, message: errorUtil2.toString(message) }
});
}
max(maxLength, message) {
return new _ZodArray({
...this._def,
maxLength: { value: maxLength, message: errorUtil2.toString(message) }
});
}
length(len, message) {
return new _ZodArray({
...this._def,
exactLength: { value: len, message: errorUtil2.toString(message) }
});
}
nonempty(message) {
return this.min(1, message);
}
};
ZodArray2.create = (schema, params) => {
return new ZodArray2({
type: schema,
minLength: null,
maxLength: null,
exactLength: null,
typeName: ZodFirstPartyTypeKind2.ZodArray,
...processCreateParams3(params)
});
};
function deepPartialify2(schema) {
if (schema instanceof ZodObject2) {
const newShape = {};
for (const key in schema.shape) {
const fieldSchema = schema.shape[key];
newShape[key] = ZodOptional2.create(deepPartialify2(fieldSchema));
}
return new ZodObject2({
...schema._def,
shape: () => newShape
});
} else if (schema instanceof ZodArray2) {
return new ZodArray2({
...schema._def,
type: deepPartialify2(schema.element)
});
} else if (schema instanceof ZodOptional2) {
return ZodOptional2.create(deepPartialify2(schema.unwrap()));
} else if (schema instanceof ZodNullable2) {
return ZodNullable2.create(deepPartialify2(schema.unwrap()));
} else if (schema instanceof ZodTuple2) {
return ZodTuple2.create(schema.items.map((item) => deepPartialify2(item)));
} else {
return schema;
}
}
var ZodObject2 = class _ZodObject extends ZodType2 {
constructor() {
super(...arguments);
this._cached = null;
this.nonstrict = this.passthrough;
this.augment = this.extend;
}
_getCached() {
if (this._cached !== null)
return this._cached;
const shape = this._def.shape();
const keys = util4.objectKeys(shape);
return this._cached = { shape, keys };
}
_parse(input) {
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType2.object) {
const ctx2 = this._getOrReturnCtx(input);
addIssueToContext2(ctx2, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.object,
received: ctx2.parsedType
});
return INVALID2;
}
const { status, ctx } = this._processInputParams(input);
const { shape, keys: shapeKeys } = this._getCached();
const extraKeys = [];
if (!(this._def.catchall instanceof ZodNever2 && this._def.unknownKeys === "strip")) {
for (const key in ctx.data) {
if (!shapeKeys.includes(key)) {
extraKeys.push(key);
}
}
}
const pairs = [];
for (const key of shapeKeys) {
const keyValidator = shape[key];
const value = ctx.data[key];
pairs.push({
key: { status: "valid", value: key },
value: keyValidator._parse(new ParseInputLazyPath2(ctx, value, ctx.path, key)),
alwaysSet: key in ctx.data
});
}
if (this._def.catchall instanceof ZodNever2) {
const unknownKeys = this._def.unknownKeys;
if (unknownKeys === "passthrough") {
for (const key of extraKeys) {
pairs.push({
key: { status: "valid", value: key },
value: { status: "valid", value: ctx.data[key] }
});
}
} else if (unknownKeys === "strict") {
if (extraKeys.length > 0) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.unrecognized_keys,
keys: extraKeys
});
status.dirty();
}
} else if (unknownKeys === "strip") ;
else {
throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);
}
} else {
const catchall = this._def.catchall;
for (const key of extraKeys) {
const value = ctx.data[key];
pairs.push({
key: { status: "valid", value: key },
value: catchall._parse(
new ParseInputLazyPath2(ctx, value, ctx.path, key)
//, ctx.child(key), value, getParsedType(value)
),
alwaysSet: key in ctx.data
});
}
}
if (ctx.common.async) {
return Promise.resolve().then(async () => {
const syncPairs = [];
for (const pair of pairs) {
const key = await pair.key;
const value = await pair.value;
syncPairs.push({
key,
value,
alwaysSet: pair.alwaysSet
});
}
return syncPairs;
}).then((syncPairs) => {
return ParseStatus2.mergeObjectSync(status, syncPairs);
});
} else {
return ParseStatus2.mergeObjectSync(status, pairs);
}
}
get shape() {
return this._def.shape();
}
strict(message) {
errorUtil2.errToObj;
return new _ZodObject({
...this._def,
unknownKeys: "strict",
...message !== void 0 ? {
errorMap: (issue, ctx) => {
var _a, _b, _c, _d;
const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;
if (issue.code === "unrecognized_keys")
return {
message: (_d = errorUtil2.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError
};
return {
message: defaultError
};
}
} : {}
});
}
strip() {
return new _ZodObject({
...this._def,
unknownKeys: "strip"
});
}
passthrough() {
return new _ZodObject({
...this._def,
unknownKeys: "passthrough"
});
}
// const AugmentFactory =
// <Def extends ZodObjectDef>(def: Def) =>
// <Augmentation extends ZodRawShape>(
// augmentation: Augmentation
// ): ZodObject<
// extendShape<ReturnType<Def["shape"]>, Augmentation>,
// Def["unknownKeys"],
// Def["catchall"]
// > => {
// return new ZodObject({
// ...def,
// shape: () => ({
// ...def.shape(),
// ...augmentation,
// }),
// }) as any;
// };
extend(augmentation) {
return new _ZodObject({
...this._def,
shape: () => ({
...this._def.shape(),
...augmentation
})
});
}
/**
* Prior to zod@1.0.12 there was a bug in the
* inferred type of merged objects. Please
* upgrade if you are experiencing issues.
*/
merge(merging) {
const merged = new _ZodObject({
unknownKeys: merging._def.unknownKeys,
catchall: merging._def.catchall,
shape: () => ({
...this._def.shape(),
...merging._def.shape()
}),
typeName: ZodFirstPartyTypeKind2.ZodObject
});
return merged;
}
// merge<
// Incoming extends AnyZodObject,
// Augmentation extends Incoming["shape"],
// NewOutput extends {
// [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation
// ? Augmentation[k]["_output"]
// : k extends keyof Output
// ? Output[k]
// : never;
// },
// NewInput extends {
// [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation
// ? Augmentation[k]["_input"]
// : k extends keyof Input
// ? Input[k]
// : never;
// }
// >(
// merging: Incoming
// ): ZodObject<
// extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
// Incoming["_def"]["unknownKeys"],
// Incoming["_def"]["catchall"],
// NewOutput,
// NewInput
// > {
// const merged: any = new ZodObject({
// unknownKeys: merging._def.unknownKeys,
// catchall: merging._def.catchall,
// shape: () =>
// objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
// typeName: ZodFirstPartyTypeKind.ZodObject,
// }) as any;
// return merged;
// }
setKey(key, schema) {
return this.augment({ [key]: schema });
}
// merge<Incoming extends AnyZodObject>(
// merging: Incoming
// ): //ZodObject<T & Incoming["_shape"], UnknownKeys, Catchall> = (merging) => {
// ZodObject<
// extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
// Incoming["_def"]["unknownKeys"],
// Incoming["_def"]["catchall"]
// > {
// // const mergedShape = objectUtil.mergeShapes(
// // this._def.shape(),
// // merging._def.shape()
// // );
// const merged: any = new ZodObject({
// unknownKeys: merging._def.unknownKeys,
// catchall: merging._def.catchall,
// shape: () =>
// objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
// typeName: ZodFirstPartyTypeKind.ZodObject,
// }) as any;
// return merged;
// }
catchall(index) {
return new _ZodObject({
...this._def,
catchall: index
});
}
pick(mask) {
const shape = {};
util4.objectKeys(mask).forEach((key) => {
if (mask[key] && this.shape[key]) {
shape[key] = this.shape[key];
}
});
return new _ZodObject({
...this._def,
shape: () => shape
});
}
omit(mask) {
const shape = {};
util4.objectKeys(this.shape).forEach((key) => {
if (!mask[key]) {
shape[key] = this.shape[key];
}
});
return new _ZodObject({
...this._def,
shape: () => shape
});
}
/**
* @deprecated
*/
deepPartial() {
return deepPartialify2(this);
}
partial(mask) {
const newShape = {};
util4.objectKeys(this.shape).forEach((key) => {
const fieldSchema = this.shape[key];
if (mask && !mask[key]) {
newShape[key] = fieldSchema;
} else {
newShape[key] = fieldSchema.optional();
}
});
return new _ZodObject({
...this._def,
shape: () => newShape
});
}
required(mask) {
const newShape = {};
util4.objectKeys(this.shape).forEach((key) => {
if (mask && !mask[key]) {
newShape[key] = this.shape[key];
} else {
const fieldSchema = this.shape[key];
let newField = fieldSchema;
while (newField instanceof ZodOptional2) {
newField = newField._def.innerType;
}
newShape[key] = newField;
}
});
return new _ZodObject({
...this._def,
shape: () => newShape
});
}
keyof() {
return createZodEnum2(util4.objectKeys(this.shape));
}
};
ZodObject2.create = (shape, params) => {
return new ZodObject2({
shape: () => shape,
unknownKeys: "strip",
catchall: ZodNever2.create(),
typeName: ZodFirstPartyTypeKind2.ZodObject,
...processCreateParams3(params)
});
};
ZodObject2.strictCreate = (shape, params) => {
return new ZodObject2({
shape: () => shape,
unknownKeys: "strict",
catchall: ZodNever2.create(),
typeName: ZodFirstPartyTypeKind2.ZodObject,
...processCreateParams3(params)
});
};
ZodObject2.lazycreate = (shape, params) => {
return new ZodObject2({
shape,
unknownKeys: "strip",
catchall: ZodNever2.create(),
typeName: ZodFirstPartyTypeKind2.ZodObject,
...processCreateParams3(params)
});
};
var ZodUnion2 = class extends ZodType2 {
_parse(input) {
const { ctx } = this._processInputParams(input);
const options = this._def.options;
function handleResults(results) {
for (const result of results) {
if (result.result.status === "valid") {
return result.result;
}
}
for (const result of results) {
if (result.result.status === "dirty") {
ctx.common.issues.push(...result.ctx.common.issues);
return result.result;
}
}
const unionErrors = results.map((result) => new ZodError2(result.ctx.common.issues));
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_union,
unionErrors
});
return INVALID2;
}
if (ctx.common.async) {
return Promise.all(options.map(async (option) => {
const childCtx = {
...ctx,
common: {
...ctx.common,
issues: []
},
parent: null
};
return {
result: await option._parseAsync({
data: ctx.data,
path: ctx.path,
parent: childCtx
}),
ctx: childCtx
};
})).then(handleResults);
} else {
let dirty = void 0;
const issues = [];
for (const option of options) {
const childCtx = {
...ctx,
common: {
...ctx.common,
issues: []
},
parent: null
};
const result = option._parseSync({
data: ctx.data,
path: ctx.path,
parent: childCtx
});
if (result.status === "valid") {
return result;
} else if (result.status === "dirty" && !dirty) {
dirty = { result, ctx: childCtx };
}
if (childCtx.common.issues.length) {
issues.push(childCtx.common.issues);
}
}
if (dirty) {
ctx.common.issues.push(...dirty.ctx.common.issues);
return dirty.result;
}
const unionErrors = issues.map((issues2) => new ZodError2(issues2));
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_union,
unionErrors
});
return INVALID2;
}
}
get options() {
return this._def.options;
}
};
ZodUnion2.create = (types, params) => {
return new ZodUnion2({
options: types,
typeName: ZodFirstPartyTypeKind2.ZodUnion,
...processCreateParams3(params)
});
};
var getDiscriminator2 = (type) => {
if (type instanceof ZodLazy2) {
return getDiscriminator2(type.schema);
} else if (type instanceof ZodEffects2) {
return getDiscriminator2(type.innerType());
} else if (type instanceof ZodLiteral2) {
return [type.value];
} else if (type instanceof ZodEnum2) {
return type.options;
} else if (type instanceof ZodNativeEnum2) {
return util4.objectValues(type.enum);
} else if (type instanceof ZodDefault2) {
return getDiscriminator2(type._def.innerType);
} else if (type instanceof ZodUndefined2) {
return [void 0];
} else if (type instanceof ZodNull2) {
return [null];
} else if (type instanceof ZodOptional2) {
return [void 0, ...getDiscriminator2(type.unwrap())];
} else if (type instanceof ZodNullable2) {
return [null, ...getDiscriminator2(type.unwrap())];
} else if (type instanceof ZodBranded2) {
return getDiscriminator2(type.unwrap());
} else if (type instanceof ZodReadonly2) {
return getDiscriminator2(type.unwrap());
} else if (type instanceof ZodCatch2) {
return getDiscriminator2(type._def.innerType);
} else {
return [];
}
};
var ZodDiscriminatedUnion2 = class _ZodDiscriminatedUnion extends ZodType2 {
_parse(input) {
const { ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType2.object) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.object,
received: ctx.parsedType
});
return INVALID2;
}
const discriminator = this.discriminator;
const discriminatorValue = ctx.data[discriminator];
const option = this.optionsMap.get(discriminatorValue);
if (!option) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_union_discriminator,
options: Array.from(this.optionsMap.keys()),
path: [discriminator]
});
return INVALID2;
}
if (ctx.common.async) {
return option._parseAsync({
data: ctx.data,
path: ctx.path,
parent: ctx
});
} else {
return option._parseSync({
data: ctx.data,
path: ctx.path,
parent: ctx
});
}
}
get discriminator() {
return this._def.discriminator;
}
get options() {
return this._def.options;
}
get optionsMap() {
return this._def.optionsMap;
}
/**
* The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.
* However, it only allows a union of objects, all of which need to share a discriminator property. This property must
* have a different value for each object in the union.
* @param discriminator the name of the discriminator property
* @param types an array of object schemas
* @param params
*/
static create(discriminator, options, params) {
const optionsMap = /* @__PURE__ */ new Map();
for (const type of options) {
const discriminatorValues = getDiscriminator2(type.shape[discriminator]);
if (!discriminatorValues.length) {
throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`);
}
for (const value of discriminatorValues) {
if (optionsMap.has(value)) {
throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);
}
optionsMap.set(value, type);
}
}
return new _ZodDiscriminatedUnion({
typeName: ZodFirstPartyTypeKind2.ZodDiscriminatedUnion,
discriminator,
options,
optionsMap,
...processCreateParams3(params)
});
}
};
function mergeValues2(a, b) {
const aType = getParsedType2(a);
const bType = getParsedType2(b);
if (a === b) {
return { valid: true, data: a };
} else if (aType === ZodParsedType2.object && bType === ZodParsedType2.object) {
const bKeys = util4.objectKeys(b);
const sharedKeys = util4.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);
const newObj = { ...a, ...b };
for (const key of sharedKeys) {
const sharedValue = mergeValues2(a[key], b[key]);
if (!sharedValue.valid) {
return { valid: false };
}
newObj[key] = sharedValue.data;
}
return { valid: true, data: newObj };
} else if (aType === ZodParsedType2.array && bType === ZodParsedType2.array) {
if (a.length !== b.length) {
return { valid: false };
}
const newArray = [];
for (let index = 0; index < a.length; index++) {
const itemA = a[index];
const itemB = b[index];
const sharedValue = mergeValues2(itemA, itemB);
if (!sharedValue.valid) {
return { valid: false };
}
newArray.push(sharedValue.data);
}
return { valid: true, data: newArray };
} else if (aType === ZodParsedType2.date && bType === ZodParsedType2.date && +a === +b) {
return { valid: true, data: a };
} else {
return { valid: false };
}
}
var ZodIntersection2 = class extends ZodType2 {
_parse(input) {
const { status, ctx } = this._processInputParams(input);
const handleParsed = (parsedLeft, parsedRight) => {
if (isAborted2(parsedLeft) || isAborted2(parsedRight)) {
return INVALID2;
}
const merged = mergeValues2(parsedLeft.value, parsedRight.value);
if (!merged.valid) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_intersection_types
});
return INVALID2;
}
if (isDirty2(parsedLeft) || isDirty2(parsedRight)) {
status.dirty();
}
return { status: status.value, value: merged.data };
};
if (ctx.common.async) {
return Promise.all([
this._def.left._parseAsync({
data: ctx.data,
path: ctx.path,
parent: ctx
}),
this._def.right._parseAsync({
data: ctx.data,
path: ctx.path,
parent: ctx
})
]).then(([left, right]) => handleParsed(left, right));
} else {
return handleParsed(this._def.left._parseSync({
data: ctx.data,
path: ctx.path,
parent: ctx
}), this._def.right._parseSync({
data: ctx.data,
path: ctx.path,
parent: ctx
}));
}
}
};
ZodIntersection2.create = (left, right, params) => {
return new ZodIntersection2({
left,
right,
typeName: ZodFirstPartyTypeKind2.ZodIntersection,
...processCreateParams3(params)
});
};
var ZodTuple2 = class _ZodTuple extends ZodType2 {
_parse(input) {
const { status, ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType2.array) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.array,
received: ctx.parsedType
});
return INVALID2;
}
if (ctx.data.length < this._def.items.length) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_small,
minimum: this._def.items.length,
inclusive: true,
exact: false,
type: "array"
});
return INVALID2;
}
const rest = this._def.rest;
if (!rest && ctx.data.length > this._def.items.length) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_big,
maximum: this._def.items.length,
inclusive: true,
exact: false,
type: "array"
});
status.dirty();
}
const items = [...ctx.data].map((item, itemIndex) => {
const schema = this._def.items[itemIndex] || this._def.rest;
if (!schema)
return null;
return schema._parse(new ParseInputLazyPath2(ctx, item, ctx.path, itemIndex));
}).filter((x) => !!x);
if (ctx.common.async) {
return Promise.all(items).then((results) => {
return ParseStatus2.mergeArray(status, results);
});
} else {
return ParseStatus2.mergeArray(status, items);
}
}
get items() {
return this._def.items;
}
rest(rest) {
return new _ZodTuple({
...this._def,
rest
});
}
};
ZodTuple2.create = (schemas, params) => {
if (!Array.isArray(schemas)) {
throw new Error("You must pass an array of schemas to z.tuple([ ... ])");
}
return new ZodTuple2({
items: schemas,
typeName: ZodFirstPartyTypeKind2.ZodTuple,
rest: null,
...processCreateParams3(params)
});
};
var ZodRecord2 = class _ZodRecord extends ZodType2 {
get keySchema() {
return this._def.keyType;
}
get valueSchema() {
return this._def.valueType;
}
_parse(input) {
const { status, ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType2.object) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.object,
received: ctx.parsedType
});
return INVALID2;
}
const pairs = [];
const keyType = this._def.keyType;
const valueType = this._def.valueType;
for (const key in ctx.data) {
pairs.push({
key: keyType._parse(new ParseInputLazyPath2(ctx, key, ctx.path, key)),
value: valueType._parse(new ParseInputLazyPath2(ctx, ctx.data[key], ctx.path, key)),
alwaysSet: key in ctx.data
});
}
if (ctx.common.async) {
return ParseStatus2.mergeObjectAsync(status, pairs);
} else {
return ParseStatus2.mergeObjectSync(status, pairs);
}
}
get element() {
return this._def.valueType;
}
static create(first, second, third) {
if (second instanceof ZodType2) {
return new _ZodRecord({
keyType: first,
valueType: second,
typeName: ZodFirstPartyTypeKind2.ZodRecord,
...processCreateParams3(third)
});
}
return new _ZodRecord({
keyType: ZodString2.create(),
valueType: first,
typeName: ZodFirstPartyTypeKind2.ZodRecord,
...processCreateParams3(second)
});
}
};
var ZodMap2 = class extends ZodType2 {
get keySchema() {
return this._def.keyType;
}
get valueSchema() {
return this._def.valueType;
}
_parse(input) {
const { status, ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType2.map) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.map,
received: ctx.parsedType
});
return INVALID2;
}
const keyType = this._def.keyType;
const valueType = this._def.valueType;
const pairs = [...ctx.data.entries()].map(([key, value], index) => {
return {
key: keyType._parse(new ParseInputLazyPath2(ctx, key, ctx.path, [index, "key"])),
value: valueType._parse(new ParseInputLazyPath2(ctx, value, ctx.path, [index, "value"]))
};
});
if (ctx.common.async) {
const finalMap = /* @__PURE__ */ new Map();
return Promise.resolve().then(async () => {
for (const pair of pairs) {
const key = await pair.key;
const value = await pair.value;
if (key.status === "aborted" || value.status === "aborted") {
return INVALID2;
}
if (key.status === "dirty" || value.status === "dirty") {
status.dirty();
}
finalMap.set(key.value, value.value);
}
return { status: status.value, value: finalMap };
});
} else {
const finalMap = /* @__PURE__ */ new Map();
for (const pair of pairs) {
const key = pair.key;
const value = pair.value;
if (key.status === "aborted" || value.status === "aborted") {
return INVALID2;
}
if (key.status === "dirty" || value.status === "dirty") {
status.dirty();
}
finalMap.set(key.value, value.value);
}
return { status: status.value, value: finalMap };
}
}
};
ZodMap2.create = (keyType, valueType, params) => {
return new ZodMap2({
valueType,
keyType,
typeName: ZodFirstPartyTypeKind2.ZodMap,
...processCreateParams3(params)
});
};
var ZodSet2 = class _ZodSet extends ZodType2 {
_parse(input) {
const { status, ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType2.set) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.set,
received: ctx.parsedType
});
return INVALID2;
}
const def = this._def;
if (def.minSize !== null) {
if (ctx.data.size < def.minSize.value) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_small,
minimum: def.minSize.value,
type: "set",
inclusive: true,
exact: false,
message: def.minSize.message
});
status.dirty();
}
}
if (def.maxSize !== null) {
if (ctx.data.size > def.maxSize.value) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.too_big,
maximum: def.maxSize.value,
type: "set",
inclusive: true,
exact: false,
message: def.maxSize.message
});
status.dirty();
}
}
const valueType = this._def.valueType;
function finalizeSet(elements2) {
const parsedSet = /* @__PURE__ */ new Set();
for (const element of elements2) {
if (element.status === "aborted")
return INVALID2;
if (element.status === "dirty")
status.dirty();
parsedSet.add(element.value);
}
return { status: status.value, value: parsedSet };
}
const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath2(ctx, item, ctx.path, i)));
if (ctx.common.async) {
return Promise.all(elements).then((elements2) => finalizeSet(elements2));
} else {
return finalizeSet(elements);
}
}
min(minSize, message) {
return new _ZodSet({
...this._def,
minSize: { value: minSize, message: errorUtil2.toString(message) }
});
}
max(maxSize, message) {
return new _ZodSet({
...this._def,
maxSize: { value: maxSize, message: errorUtil2.toString(message) }
});
}
size(size, message) {
return this.min(size, message).max(size, message);
}
nonempty(message) {
return this.min(1, message);
}
};
ZodSet2.create = (valueType, params) => {
return new ZodSet2({
valueType,
minSize: null,
maxSize: null,
typeName: ZodFirstPartyTypeKind2.ZodSet,
...processCreateParams3(params)
});
};
var ZodFunction2 = class _ZodFunction extends ZodType2 {
constructor() {
super(...arguments);
this.validate = this.implement;
}
_parse(input) {
const { ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType2.function) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.function,
received: ctx.parsedType
});
return INVALID2;
}
function makeArgsIssue(args, error) {
return makeIssue2({
data: args,
path: ctx.path,
errorMaps: [
ctx.common.contextualErrorMap,
ctx.schemaErrorMap,
getErrorMap2(),
errorMap2
].filter((x) => !!x),
issueData: {
code: ZodIssueCode2.invalid_arguments,
argumentsError: error
}
});
}
function makeReturnsIssue(returns, error) {
return makeIssue2({
data: returns,
path: ctx.path,
errorMaps: [
ctx.common.contextualErrorMap,
ctx.schemaErrorMap,
getErrorMap2(),
errorMap2
].filter((x) => !!x),
issueData: {
code: ZodIssueCode2.invalid_return_type,
returnTypeError: error
}
});
}
const params = { errorMap: ctx.common.contextualErrorMap };
const fn = ctx.data;
if (this._def.returns instanceof ZodPromise2) {
const me = this;
return OK2(async function(...args) {
const error = new ZodError2([]);
const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {
error.addIssue(makeArgsIssue(args, e));
throw error;
});
const result = await Reflect.apply(fn, this, parsedArgs);
const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => {
error.addIssue(makeReturnsIssue(result, e));
throw error;
});
return parsedReturns;
});
} else {
const me = this;
return OK2(function(...args) {
const parsedArgs = me._def.args.safeParse(args, params);
if (!parsedArgs.success) {
throw new ZodError2([makeArgsIssue(args, parsedArgs.error)]);
}
const result = Reflect.apply(fn, this, parsedArgs.data);
const parsedReturns = me._def.returns.safeParse(result, params);
if (!parsedReturns.success) {
throw new ZodError2([makeReturnsIssue(result, parsedReturns.error)]);
}
return parsedReturns.data;
});
}
}
parameters() {
return this._def.args;
}
returnType() {
return this._def.returns;
}
args(...items) {
return new _ZodFunction({
...this._def,
args: ZodTuple2.create(items).rest(ZodUnknown2.create())
});
}
returns(returnType) {
return new _ZodFunction({
...this._def,
returns: returnType
});
}
implement(func) {
const validatedFunc = this.parse(func);
return validatedFunc;
}
strictImplement(func) {
const validatedFunc = this.parse(func);
return validatedFunc;
}
static create(args, returns, params) {
return new _ZodFunction({
args: args ? args : ZodTuple2.create([]).rest(ZodUnknown2.create()),
returns: returns || ZodUnknown2.create(),
typeName: ZodFirstPartyTypeKind2.ZodFunction,
...processCreateParams3(params)
});
}
};
var ZodLazy2 = class extends ZodType2 {
get schema() {
return this._def.getter();
}
_parse(input) {
const { ctx } = this._processInputParams(input);
const lazySchema = this._def.getter();
return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });
}
};
ZodLazy2.create = (getter, params) => {
return new ZodLazy2({
getter,
typeName: ZodFirstPartyTypeKind2.ZodLazy,
...processCreateParams3(params)
});
};
var ZodLiteral2 = class extends ZodType2 {
_parse(input) {
if (input.data !== this._def.value) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext2(ctx, {
received: ctx.data,
code: ZodIssueCode2.invalid_literal,
expected: this._def.value
});
return INVALID2;
}
return { status: "valid", value: input.data };
}
get value() {
return this._def.value;
}
};
ZodLiteral2.create = (value, params) => {
return new ZodLiteral2({
value,
typeName: ZodFirstPartyTypeKind2.ZodLiteral,
...processCreateParams3(params)
});
};
function createZodEnum2(values, params) {
return new ZodEnum2({
values,
typeName: ZodFirstPartyTypeKind2.ZodEnum,
...processCreateParams3(params)
});
}
var ZodEnum2 = class _ZodEnum extends ZodType2 {
constructor() {
super(...arguments);
_ZodEnum_cache2.set(this, void 0);
}
_parse(input) {
if (typeof input.data !== "string") {
const ctx = this._getOrReturnCtx(input);
const expectedValues = this._def.values;
addIssueToContext2(ctx, {
expected: util4.joinValues(expectedValues),
received: ctx.parsedType,
code: ZodIssueCode2.invalid_type
});
return INVALID2;
}
if (!__classPrivateFieldGet2(this, _ZodEnum_cache2, "f")) {
__classPrivateFieldSet2(this, _ZodEnum_cache2, new Set(this._def.values), "f");
}
if (!__classPrivateFieldGet2(this, _ZodEnum_cache2, "f").has(input.data)) {
const ctx = this._getOrReturnCtx(input);
const expectedValues = this._def.values;
addIssueToContext2(ctx, {
received: ctx.data,
code: ZodIssueCode2.invalid_enum_value,
options: expectedValues
});
return INVALID2;
}
return OK2(input.data);
}
get options() {
return this._def.values;
}
get enum() {
const enumValues = {};
for (const val of this._def.values) {
enumValues[val] = val;
}
return enumValues;
}
get Values() {
const enumValues = {};
for (const val of this._def.values) {
enumValues[val] = val;
}
return enumValues;
}
get Enum() {
const enumValues = {};
for (const val of this._def.values) {
enumValues[val] = val;
}
return enumValues;
}
extract(values, newDef = this._def) {
return _ZodEnum.create(values, {
...this._def,
...newDef
});
}
exclude(values, newDef = this._def) {
return _ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {
...this._def,
...newDef
});
}
};
_ZodEnum_cache2 = /* @__PURE__ */ new WeakMap();
ZodEnum2.create = createZodEnum2;
var ZodNativeEnum2 = class extends ZodType2 {
constructor() {
super(...arguments);
_ZodNativeEnum_cache2.set(this, void 0);
}
_parse(input) {
const nativeEnumValues = util4.getValidEnumValues(this._def.values);
const ctx = this._getOrReturnCtx(input);
if (ctx.parsedType !== ZodParsedType2.string && ctx.parsedType !== ZodParsedType2.number) {
const expectedValues = util4.objectValues(nativeEnumValues);
addIssueToContext2(ctx, {
expected: util4.joinValues(expectedValues),
received: ctx.parsedType,
code: ZodIssueCode2.invalid_type
});
return INVALID2;
}
if (!__classPrivateFieldGet2(this, _ZodNativeEnum_cache2, "f")) {
__classPrivateFieldSet2(this, _ZodNativeEnum_cache2, new Set(util4.getValidEnumValues(this._def.values)), "f");
}
if (!__classPrivateFieldGet2(this, _ZodNativeEnum_cache2, "f").has(input.data)) {
const expectedValues = util4.objectValues(nativeEnumValues);
addIssueToContext2(ctx, {
received: ctx.data,
code: ZodIssueCode2.invalid_enum_value,
options: expectedValues
});
return INVALID2;
}
return OK2(input.data);
}
get enum() {
return this._def.values;
}
};
_ZodNativeEnum_cache2 = /* @__PURE__ */ new WeakMap();
ZodNativeEnum2.create = (values, params) => {
return new ZodNativeEnum2({
values,
typeName: ZodFirstPartyTypeKind2.ZodNativeEnum,
...processCreateParams3(params)
});
};
var ZodPromise2 = class extends ZodType2 {
unwrap() {
return this._def.type;
}
_parse(input) {
const { ctx } = this._processInputParams(input);
if (ctx.parsedType !== ZodParsedType2.promise && ctx.common.async === false) {
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.promise,
received: ctx.parsedType
});
return INVALID2;
}
const promisified = ctx.parsedType === ZodParsedType2.promise ? ctx.data : Promise.resolve(ctx.data);
return OK2(promisified.then((data) => {
return this._def.type.parseAsync(data, {
path: ctx.path,
errorMap: ctx.common.contextualErrorMap
});
}));
}
};
ZodPromise2.create = (schema, params) => {
return new ZodPromise2({
type: schema,
typeName: ZodFirstPartyTypeKind2.ZodPromise,
...processCreateParams3(params)
});
};
var ZodEffects2 = class extends ZodType2 {
innerType() {
return this._def.schema;
}
sourceType() {
return this._def.schema._def.typeName === ZodFirstPartyTypeKind2.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
}
_parse(input) {
const { status, ctx } = this._processInputParams(input);
const effect = this._def.effect || null;
const checkCtx = {
addIssue: (arg) => {
addIssueToContext2(ctx, arg);
if (arg.fatal) {
status.abort();
} else {
status.dirty();
}
},
get path() {
return ctx.path;
}
};
checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);
if (effect.type === "preprocess") {
const processed = effect.transform(ctx.data, checkCtx);
if (ctx.common.async) {
return Promise.resolve(processed).then(async (processed2) => {
if (status.value === "aborted")
return INVALID2;
const result = await this._def.schema._parseAsync({
data: processed2,
path: ctx.path,
parent: ctx
});
if (result.status === "aborted")
return INVALID2;
if (result.status === "dirty")
return DIRTY2(result.value);
if (status.value === "dirty")
return DIRTY2(result.value);
return result;
});
} else {
if (status.value === "aborted")
return INVALID2;
const result = this._def.schema._parseSync({
data: processed,
path: ctx.path,
parent: ctx
});
if (result.status === "aborted")
return INVALID2;
if (result.status === "dirty")
return DIRTY2(result.value);
if (status.value === "dirty")
return DIRTY2(result.value);
return result;
}
}
if (effect.type === "refinement") {
const executeRefinement = (acc) => {
const result = effect.refinement(acc, checkCtx);
if (ctx.common.async) {
return Promise.resolve(result);
}
if (result instanceof Promise) {
throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");
}
return acc;
};
if (ctx.common.async === false) {
const inner = this._def.schema._parseSync({
data: ctx.data,
path: ctx.path,
parent: ctx
});
if (inner.status === "aborted")
return INVALID2;
if (inner.status === "dirty")
status.dirty();
executeRefinement(inner.value);
return { status: status.value, value: inner.value };
} else {
return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {
if (inner.status === "aborted")
return INVALID2;
if (inner.status === "dirty")
status.dirty();
return executeRefinement(inner.value).then(() => {
return { status: status.value, value: inner.value };
});
});
}
}
if (effect.type === "transform") {
if (ctx.common.async === false) {
const base = this._def.schema._parseSync({
data: ctx.data,
path: ctx.path,
parent: ctx
});
if (!isValid2(base))
return base;
const result = effect.transform(base.value, checkCtx);
if (result instanceof Promise) {
throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);
}
return { status: status.value, value: result };
} else {
return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {
if (!isValid2(base))
return base;
return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));
});
}
}
util4.assertNever(effect);
}
};
ZodEffects2.create = (schema, effect, params) => {
return new ZodEffects2({
schema,
typeName: ZodFirstPartyTypeKind2.ZodEffects,
effect,
...processCreateParams3(params)
});
};
ZodEffects2.createWithPreprocess = (preprocess, schema, params) => {
return new ZodEffects2({
schema,
effect: { type: "preprocess", transform: preprocess },
typeName: ZodFirstPartyTypeKind2.ZodEffects,
...processCreateParams3(params)
});
};
var ZodOptional2 = class extends ZodType2 {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType === ZodParsedType2.undefined) {
return OK2(void 0);
}
return this._def.innerType._parse(input);
}
unwrap() {
return this._def.innerType;
}
};
ZodOptional2.create = (type, params) => {
return new ZodOptional2({
innerType: type,
typeName: ZodFirstPartyTypeKind2.ZodOptional,
...processCreateParams3(params)
});
};
var ZodNullable2 = class extends ZodType2 {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType === ZodParsedType2.null) {
return OK2(null);
}
return this._def.innerType._parse(input);
}
unwrap() {
return this._def.innerType;
}
};
ZodNullable2.create = (type, params) => {
return new ZodNullable2({
innerType: type,
typeName: ZodFirstPartyTypeKind2.ZodNullable,
...processCreateParams3(params)
});
};
var ZodDefault2 = class extends ZodType2 {
_parse(input) {
const { ctx } = this._processInputParams(input);
let data = ctx.data;
if (ctx.parsedType === ZodParsedType2.undefined) {
data = this._def.defaultValue();
}
return this._def.innerType._parse({
data,
path: ctx.path,
parent: ctx
});
}
removeDefault() {
return this._def.innerType;
}
};
ZodDefault2.create = (type, params) => {
return new ZodDefault2({
innerType: type,
typeName: ZodFirstPartyTypeKind2.ZodDefault,
defaultValue: typeof params.default === "function" ? params.default : () => params.default,
...processCreateParams3(params)
});
};
var ZodCatch2 = class extends ZodType2 {
_parse(input) {
const { ctx } = this._processInputParams(input);
const newCtx = {
...ctx,
common: {
...ctx.common,
issues: []
}
};
const result = this._def.innerType._parse({
data: newCtx.data,
path: newCtx.path,
parent: {
...newCtx
}
});
if (isAsync2(result)) {
return result.then((result2) => {
return {
status: "valid",
value: result2.status === "valid" ? result2.value : this._def.catchValue({
get error() {
return new ZodError2(newCtx.common.issues);
},
input: newCtx.data
})
};
});
} else {
return {
status: "valid",
value: result.status === "valid" ? result.value : this._def.catchValue({
get error() {
return new ZodError2(newCtx.common.issues);
},
input: newCtx.data
})
};
}
}
removeCatch() {
return this._def.innerType;
}
};
ZodCatch2.create = (type, params) => {
return new ZodCatch2({
innerType: type,
typeName: ZodFirstPartyTypeKind2.ZodCatch,
catchValue: typeof params.catch === "function" ? params.catch : () => params.catch,
...processCreateParams3(params)
});
};
var ZodNaN2 = class extends ZodType2 {
_parse(input) {
const parsedType = this._getType(input);
if (parsedType !== ZodParsedType2.nan) {
const ctx = this._getOrReturnCtx(input);
addIssueToContext2(ctx, {
code: ZodIssueCode2.invalid_type,
expected: ZodParsedType2.nan,
received: ctx.parsedType
});
return INVALID2;
}
return { status: "valid", value: input.data };
}
};
ZodNaN2.create = (params) => {
return new ZodNaN2({
typeName: ZodFirstPartyTypeKind2.ZodNaN,
...processCreateParams3(params)
});
};
var BRAND2 = Symbol("zod_brand");
var ZodBranded2 = class extends ZodType2 {
_parse(input) {
const { ctx } = this._processInputParams(input);
const data = ctx.data;
return this._def.type._parse({
data,
path: ctx.path,
parent: ctx
});
}
unwrap() {
return this._def.type;
}
};
var ZodPipeline2 = class _ZodPipeline extends ZodType2 {
_parse(input) {
const { status, ctx } = this._processInputParams(input);
if (ctx.common.async) {
const handleAsync = async () => {
const inResult = await this._def.in._parseAsync({
data: ctx.data,
path: ctx.path,
parent: ctx
});
if (inResult.status === "aborted")
return INVALID2;
if (inResult.status === "dirty") {
status.dirty();
return DIRTY2(inResult.value);
} else {
return this._def.out._parseAsync({
data: inResult.value,
path: ctx.path,
parent: ctx
});
}
};
return handleAsync();
} else {
const inResult = this._def.in._parseSync({
data: ctx.data,
path: ctx.path,
parent: ctx
});
if (inResult.status === "aborted")
return INVALID2;
if (inResult.status === "dirty") {
status.dirty();
return {
status: "dirty",
value: inResult.value
};
} else {
return this._def.out._parseSync({
data: inResult.value,
path: ctx.path,
parent: ctx
});
}
}
}
static create(a, b) {
return new _ZodPipeline({
in: a,
out: b,
typeName: ZodFirstPartyTypeKind2.ZodPipeline
});
}
};
var ZodReadonly2 = class extends ZodType2 {
_parse(input) {
const result = this._def.innerType._parse(input);
const freeze = (data) => {
if (isValid2(data)) {
data.value = Object.freeze(data.value);
}
return data;
};
return isAsync2(result) ? result.then((data) => freeze(data)) : freeze(result);
}
unwrap() {
return this._def.innerType;
}
};
ZodReadonly2.create = (type, params) => {
return new ZodReadonly2({
innerType: type,
typeName: ZodFirstPartyTypeKind2.ZodReadonly,
...processCreateParams3(params)
});
};
function cleanParams2(params, data) {
const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params;
const p2 = typeof p === "string" ? { message: p } : p;
return p2;
}
function custom2(check, _params = {}, fatal) {
if (check)
return ZodAny2.create().superRefine((data, ctx) => {
var _a, _b;
const r = check(data);
if (r instanceof Promise) {
return r.then((r2) => {
var _a2, _b2;
if (!r2) {
const params = cleanParams2(_params, data);
const _fatal = (_b2 = (_a2 = params.fatal) !== null && _a2 !== void 0 ? _a2 : fatal) !== null && _b2 !== void 0 ? _b2 : true;
ctx.addIssue({ code: "custom", ...params, fatal: _fatal });
}
});
}
if (!r) {
const params = cleanParams2(_params, data);
const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;
ctx.addIssue({ code: "custom", ...params, fatal: _fatal });
}
return;
});
return ZodAny2.create();
}
var late2 = {
object: ZodObject2.lazycreate
};
var ZodFirstPartyTypeKind2;
(function(ZodFirstPartyTypeKind22) {
ZodFirstPartyTypeKind22["ZodString"] = "ZodString";
ZodFirstPartyTypeKind22["ZodNumber"] = "ZodNumber";
ZodFirstPartyTypeKind22["ZodNaN"] = "ZodNaN";
ZodFirstPartyTypeKind22["ZodBigInt"] = "ZodBigInt";
ZodFirstPartyTypeKind22["ZodBoolean"] = "ZodBoolean";
ZodFirstPartyTypeKind22["ZodDate"] = "ZodDate";
ZodFirstPartyTypeKind22["ZodSymbol"] = "ZodSymbol";
ZodFirstPartyTypeKind22["ZodUndefined"] = "ZodUndefined";
ZodFirstPartyTypeKind22["ZodNull"] = "ZodNull";
ZodFirstPartyTypeKind22["ZodAny"] = "ZodAny";
ZodFirstPartyTypeKind22["ZodUnknown"] = "ZodUnknown";
ZodFirstPartyTypeKind22["ZodNever"] = "ZodNever";
ZodFirstPartyTypeKind22["ZodVoid"] = "ZodVoid";
ZodFirstPartyTypeKind22["ZodArray"] = "ZodArray";
ZodFirstPartyTypeKind22["ZodObject"] = "ZodObject";
ZodFirstPartyTypeKind22["ZodUnion"] = "ZodUnion";
ZodFirstPartyTypeKind22["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion";
ZodFirstPartyTypeKind22["ZodIntersection"] = "ZodIntersection";
ZodFirstPartyTypeKind22["ZodTuple"] = "ZodTuple";
ZodFirstPartyTypeKind22["ZodRecord"] = "ZodRecord";
ZodFirstPartyTypeKind22["ZodMap"] = "ZodMap";
ZodFirstPartyTypeKind22["ZodSet"] = "ZodSet";
ZodFirstPartyTypeKind22["ZodFunction"] = "ZodFunction";
ZodFirstPartyTypeKind22["ZodLazy"] = "ZodLazy";
ZodFirstPartyTypeKind22["ZodLiteral"] = "ZodLiteral";
ZodFirstPartyTypeKind22["ZodEnum"] = "ZodEnum";
ZodFirstPartyTypeKind22["ZodEffects"] = "ZodEffects";
ZodFirstPartyTypeKind22["ZodNativeEnum"] = "ZodNativeEnum";
ZodFirstPartyTypeKind22["ZodOptional"] = "ZodOptional";
ZodFirstPartyTypeKind22["ZodNullable"] = "ZodNullable";
ZodFirstPartyTypeKind22["ZodDefault"] = "ZodDefault";
ZodFirstPartyTypeKind22["ZodCatch"] = "ZodCatch";
ZodFirstPartyTypeKind22["ZodPromise"] = "ZodPromise";
ZodFirstPartyTypeKind22["ZodBranded"] = "ZodBranded";
ZodFirstPartyTypeKind22["ZodPipeline"] = "ZodPipeline";
ZodFirstPartyTypeKind22["ZodReadonly"] = "ZodReadonly";
})(ZodFirstPartyTypeKind2 || (ZodFirstPartyTypeKind2 = {}));
var instanceOfType2 = (cls, params = {
message: `Input not instance of ${cls.name}`
}) => custom2((data) => data instanceof cls, params);
var stringType2 = ZodString2.create;
var numberType2 = ZodNumber2.create;
var nanType2 = ZodNaN2.create;
var bigIntType2 = ZodBigInt2.create;
var booleanType2 = ZodBoolean2.create;
var dateType2 = ZodDate2.create;
var symbolType2 = ZodSymbol2.create;
var undefinedType2 = ZodUndefined2.create;
var nullType2 = ZodNull2.create;
var anyType2 = ZodAny2.create;
var unknownType2 = ZodUnknown2.create;
var neverType2 = ZodNever2.create;
var voidType2 = ZodVoid2.create;
var arrayType2 = ZodArray2.create;
var objectType2 = ZodObject2.create;
var strictObjectType2 = ZodObject2.strictCreate;
var unionType2 = ZodUnion2.create;
var discriminatedUnionType2 = ZodDiscriminatedUnion2.create;
var intersectionType2 = ZodIntersection2.create;
var tupleType2 = ZodTuple2.create;
var recordType2 = ZodRecord2.create;
var mapType2 = ZodMap2.create;
var setType2 = ZodSet2.create;
var functionType2 = ZodFunction2.create;
var lazyType2 = ZodLazy2.create;
var literalType2 = ZodLiteral2.create;
var enumType2 = ZodEnum2.create;
var nativeEnumType2 = ZodNativeEnum2.create;
var promiseType2 = ZodPromise2.create;
var effectsType2 = ZodEffects2.create;
var optionalType2 = ZodOptional2.create;
var nullableType2 = ZodNullable2.create;
var preprocessType2 = ZodEffects2.createWithPreprocess;
var pipelineType2 = ZodPipeline2.create;
var ostring2 = () => stringType2().optional();
var onumber2 = () => numberType2().optional();
var oboolean2 = () => booleanType2().optional();
var coerce2 = {
string: (arg) => ZodString2.create({ ...arg, coerce: true }),
number: (arg) => ZodNumber2.create({ ...arg, coerce: true }),
boolean: (arg) => ZodBoolean2.create({
...arg,
coerce: true
}),
bigint: (arg) => ZodBigInt2.create({ ...arg, coerce: true }),
date: (arg) => ZodDate2.create({ ...arg, coerce: true })
};
var NEVER2 = INVALID2;
var z2 = /* @__PURE__ */ Object.freeze({
__proto__: null,
defaultErrorMap: errorMap2,
setErrorMap: setErrorMap2,
getErrorMap: getErrorMap2,
makeIssue: makeIssue2,
EMPTY_PATH: EMPTY_PATH2,
addIssueToContext: addIssueToContext2,
ParseStatus: ParseStatus2,
INVALID: INVALID2,
DIRTY: DIRTY2,
OK: OK2,
isAborted: isAborted2,
isDirty: isDirty2,
isValid: isValid2,
isAsync: isAsync2,
get util() {
return util4;
},
get objectUtil() {
return objectUtil2;
},
ZodParsedType: ZodParsedType2,
getParsedType: getParsedType2,
ZodType: ZodType2,
datetimeRegex: datetimeRegex2,
ZodString: ZodString2,
ZodNumber: ZodNumber2,
ZodBigInt: ZodBigInt2,
ZodBoolean: ZodBoolean2,
ZodDate: ZodDate2,
ZodSymbol: ZodSymbol2,
ZodUndefined: ZodUndefined2,
ZodNull: ZodNull2,
ZodAny: ZodAny2,
ZodUnknown: ZodUnknown2,
ZodNever: ZodNever2,
ZodVoid: ZodVoid2,
ZodArray: ZodArray2,
ZodObject: ZodObject2,
ZodUnion: ZodUnion2,
ZodDiscriminatedUnion: ZodDiscriminatedUnion2,
ZodIntersection: ZodIntersection2,
ZodTuple: ZodTuple2,
ZodRecord: ZodRecord2,
ZodMap: ZodMap2,
ZodSet: ZodSet2,
ZodFunction: ZodFunction2,
ZodLazy: ZodLazy2,
ZodLiteral: ZodLiteral2,
ZodEnum: ZodEnum2,
ZodNativeEnum: ZodNativeEnum2,
ZodPromise: ZodPromise2,
ZodEffects: ZodEffects2,
ZodTransformer: ZodEffects2,
ZodOptional: ZodOptional2,
ZodNullable: ZodNullable2,
ZodDefault: ZodDefault2,
ZodCatch: ZodCatch2,
ZodNaN: ZodNaN2,
BRAND: BRAND2,
ZodBranded: ZodBranded2,
ZodPipeline: ZodPipeline2,
ZodReadonly: ZodReadonly2,
custom: custom2,
Schema: ZodType2,
ZodSchema: ZodType2,
late: late2,
get ZodFirstPartyTypeKind() {
return ZodFirstPartyTypeKind2;
},
coerce: coerce2,
any: anyType2,
array: arrayType2,
bigint: bigIntType2,
boolean: booleanType2,
date: dateType2,
discriminatedUnion: discriminatedUnionType2,
effect: effectsType2,
"enum": enumType2,
"function": functionType2,
"instanceof": instanceOfType2,
intersection: intersectionType2,
lazy: lazyType2,
literal: literalType2,
map: mapType2,
nan: nanType2,
nativeEnum: nativeEnumType2,
never: neverType2,
"null": nullType2,
nullable: nullableType2,
number: numberType2,
object: objectType2,
oboolean: oboolean2,
onumber: onumber2,
optional: optionalType2,
ostring: ostring2,
pipeline: pipelineType2,
preprocess: preprocessType2,
promise: promiseType2,
record: recordType2,
set: setType2,
strictObject: strictObjectType2,
string: stringType2,
symbol: symbolType2,
transformer: effectsType2,
tuple: tupleType2,
"undefined": undefinedType2,
union: unionType2,
unknown: unknownType2,
"void": voidType2,
NEVER: NEVER2,
ZodIssueCode: ZodIssueCode2,
quotelessJson: quotelessJson2,
ZodError: ZodError2
});
var LATEST_PROTOCOL_VERSION2 = "2025-06-18";
var DEFAULT_NEGOTIATED_PROTOCOL_VERSION = "2025-03-26";
var SUPPORTED_PROTOCOL_VERSIONS2 = [
LATEST_PROTOCOL_VERSION2,
"2025-03-26",
"2024-11-05",
"2024-10-07"
];
var JSONRPC_VERSION2 = "2.0";
var ProgressTokenSchema2 = z2.union([z2.string(), z2.number().int()]);
var CursorSchema2 = z2.string();
var RequestMetaSchema2 = z2.object({
/**
* If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.
*/
progressToken: z2.optional(ProgressTokenSchema2)
}).passthrough();
var BaseRequestParamsSchema2 = z2.object({
_meta: z2.optional(RequestMetaSchema2)
}).passthrough();
var RequestSchema2 = z2.object({
method: z2.string(),
params: z2.optional(BaseRequestParamsSchema2)
});
var BaseNotificationParamsSchema2 = z2.object({
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z2.optional(z2.object({}).passthrough())
}).passthrough();
var NotificationSchema2 = z2.object({
method: z2.string(),
params: z2.optional(BaseNotificationParamsSchema2)
});
var ResultSchema2 = z2.object({
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z2.optional(z2.object({}).passthrough())
}).passthrough();
var RequestIdSchema2 = z2.union([z2.string(), z2.number().int()]);
var JSONRPCRequestSchema2 = z2.object({
jsonrpc: z2.literal(JSONRPC_VERSION2),
id: RequestIdSchema2
}).merge(RequestSchema2).strict();
var isJSONRPCRequest2 = (value) => JSONRPCRequestSchema2.safeParse(value).success;
var JSONRPCNotificationSchema2 = z2.object({
jsonrpc: z2.literal(JSONRPC_VERSION2)
}).merge(NotificationSchema2).strict();
var JSONRPCResponseSchema2 = z2.object({
jsonrpc: z2.literal(JSONRPC_VERSION2),
id: RequestIdSchema2,
result: ResultSchema2
}).strict();
var isJSONRPCResponse2 = (value) => JSONRPCResponseSchema2.safeParse(value).success;
var ErrorCode2;
(function(ErrorCode22) {
ErrorCode22[ErrorCode22["ConnectionClosed"] = -32e3] = "ConnectionClosed";
ErrorCode22[ErrorCode22["RequestTimeout"] = -32001] = "RequestTimeout";
ErrorCode22[ErrorCode22["ParseError"] = -32700] = "ParseError";
ErrorCode22[ErrorCode22["InvalidRequest"] = -32600] = "InvalidRequest";
ErrorCode22[ErrorCode22["MethodNotFound"] = -32601] = "MethodNotFound";
ErrorCode22[ErrorCode22["InvalidParams"] = -32602] = "InvalidParams";
ErrorCode22[ErrorCode22["InternalError"] = -32603] = "InternalError";
})(ErrorCode2 || (ErrorCode2 = {}));
var JSONRPCErrorSchema2 = z2.object({
jsonrpc: z2.literal(JSONRPC_VERSION2),
id: RequestIdSchema2,
error: z2.object({
/**
* The error type that occurred.
*/
code: z2.number().int(),
/**
* A short description of the error. The message SHOULD be limited to a concise single sentence.
*/
message: z2.string(),
/**
* Additional information about the error. The value of this member is defined by the sender (e.g. detailed error information, nested errors etc.).
*/
data: z2.optional(z2.unknown())
})
}).strict();
var isJSONRPCError2 = (value) => JSONRPCErrorSchema2.safeParse(value).success;
var JSONRPCMessageSchema2 = z2.union([
JSONRPCRequestSchema2,
JSONRPCNotificationSchema2,
JSONRPCResponseSchema2,
JSONRPCErrorSchema2
]);
var EmptyResultSchema2 = ResultSchema2.strict();
var CancelledNotificationSchema2 = NotificationSchema2.extend({
method: z2.literal("notifications/cancelled"),
params: BaseNotificationParamsSchema2.extend({
/**
* The ID of the request to cancel.
*
* This MUST correspond to the ID of a request previously issued in the same direction.
*/
requestId: RequestIdSchema2,
/**
* An optional string describing the reason for the cancellation. This MAY be logged or presented to the user.
*/
reason: z2.string().optional()
})
});
var BaseMetadataSchema2 = z2.object({
/** Intended for programmatic or logical use, but used as a display name in past specs or fallback */
name: z2.string(),
/**
* Intended for UI and end-user contexts — optimized to be human-readable and easily understood,
* even by those unfamiliar with domain-specific terminology.
*
* If not provided, the name should be used for display (except for Tool,
* where `annotations.title` should be given precedence over using `name`,
* if present).
*/
title: z2.optional(z2.string())
}).passthrough();
var ImplementationSchema2 = BaseMetadataSchema2.extend({
version: z2.string()
});
var ClientCapabilitiesSchema2 = z2.object({
/**
* Experimental, non-standard capabilities that the client supports.
*/
experimental: z2.optional(z2.object({}).passthrough()),
/**
* Present if the client supports sampling from an LLM.
*/
sampling: z2.optional(z2.object({}).passthrough()),
/**
* Present if the client supports eliciting user input.
*/
elicitation: z2.optional(z2.object({}).passthrough()),
/**
* Present if the client supports listing roots.
*/
roots: z2.optional(z2.object({
/**
* Whether the client supports issuing notifications for changes to the roots list.
*/
listChanged: z2.optional(z2.boolean())
}).passthrough())
}).passthrough();
var InitializeRequestSchema2 = RequestSchema2.extend({
method: z2.literal("initialize"),
params: BaseRequestParamsSchema2.extend({
/**
* The latest version of the Model Context Protocol that the client supports. The client MAY decide to support older versions as well.
*/
protocolVersion: z2.string(),
capabilities: ClientCapabilitiesSchema2,
clientInfo: ImplementationSchema2
})
});
var isInitializeRequest = (value) => InitializeRequestSchema2.safeParse(value).success;
var ServerCapabilitiesSchema2 = z2.object({
/**
* Experimental, non-standard capabilities that the server supports.
*/
experimental: z2.optional(z2.object({}).passthrough()),
/**
* Present if the server supports sending log messages to the client.
*/
logging: z2.optional(z2.object({}).passthrough()),
/**
* Present if the server supports sending completions to the client.
*/
completions: z2.optional(z2.object({}).passthrough()),
/**
* Present if the server offers any prompt templates.
*/
prompts: z2.optional(z2.object({
/**
* Whether this server supports issuing notifications for changes to the prompt list.
*/
listChanged: z2.optional(z2.boolean())
}).passthrough()),
/**
* Present if the server offers any resources to read.
*/
resources: z2.optional(z2.object({
/**
* Whether this server supports clients subscribing to resource updates.
*/
subscribe: z2.optional(z2.boolean()),
/**
* Whether this server supports issuing notifications for changes to the resource list.
*/
listChanged: z2.optional(z2.boolean())
}).passthrough()),
/**
* Present if the server offers any tools to call.
*/
tools: z2.optional(z2.object({
/**
* Whether this server supports issuing notifications for changes to the tool list.
*/
listChanged: z2.optional(z2.boolean())
}).passthrough())
}).passthrough();
var InitializeResultSchema2 = ResultSchema2.extend({
/**
* The version of the Model Context Protocol that the server wants to use. This may not match the version that the client requested. If the client cannot support this version, it MUST disconnect.
*/
protocolVersion: z2.string(),
capabilities: ServerCapabilitiesSchema2,
serverInfo: ImplementationSchema2,
/**
* Instructions describing how to use the server and its features.
*
* This can be used by clients to improve the LLM's understanding of available tools, resources, etc. It can be thought of like a "hint" to the model. For example, this information MAY be added to the system prompt.
*/
instructions: z2.optional(z2.string())
});
var InitializedNotificationSchema2 = NotificationSchema2.extend({
method: z2.literal("notifications/initialized")
});
var PingRequestSchema2 = RequestSchema2.extend({
method: z2.literal("ping")
});
var ProgressSchema2 = z2.object({
/**
* The progress thus far. This should increase every time progress is made, even if the total is unknown.
*/
progress: z2.number(),
/**
* Total number of items to process (or total progress required), if known.
*/
total: z2.optional(z2.number()),
/**
* An optional message describing the current progress.
*/
message: z2.optional(z2.string())
}).passthrough();
var ProgressNotificationSchema2 = NotificationSchema2.extend({
method: z2.literal("notifications/progress"),
params: BaseNotificationParamsSchema2.merge(ProgressSchema2).extend({
/**
* The progress token which was given in the initial request, used to associate this notification with the request that is proceeding.
*/
progressToken: ProgressTokenSchema2
})
});
var PaginatedRequestSchema2 = RequestSchema2.extend({
params: BaseRequestParamsSchema2.extend({
/**
* An opaque token representing the current pagination position.
* If provided, the server should return results starting after this cursor.
*/
cursor: z2.optional(CursorSchema2)
}).optional()
});
var PaginatedResultSchema2 = ResultSchema2.extend({
/**
* An opaque token representing the pagination position after the last returned result.
* If present, there may be more results available.
*/
nextCursor: z2.optional(CursorSchema2)
});
var ResourceContentsSchema2 = z2.object({
/**
* The URI of this resource.
*/
uri: z2.string(),
/**
* The MIME type of this resource, if known.
*/
mimeType: z2.optional(z2.string()),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z2.optional(z2.object({}).passthrough())
}).passthrough();
var TextResourceContentsSchema2 = ResourceContentsSchema2.extend({
/**
* The text of the item. This must only be set if the item can actually be represented as text (not binary data).
*/
text: z2.string()
});
var Base64Schema2 = z2.string().refine((val) => {
try {
atob(val);
return true;
} catch (_a) {
return false;
}
}, { message: "Invalid Base64 string" });
var BlobResourceContentsSchema2 = ResourceContentsSchema2.extend({
/**
* A base64-encoded string representing the binary data of the item.
*/
blob: Base64Schema2
});
var ResourceSchema2 = BaseMetadataSchema2.extend({
/**
* The URI of this resource.
*/
uri: z2.string(),
/**
* A description of what this resource represents.
*
* This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a "hint" to the model.
*/
description: z2.optional(z2.string()),
/**
* The MIME type of this resource, if known.
*/
mimeType: z2.optional(z2.string()),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z2.optional(z2.object({}).passthrough())
});
var ResourceTemplateSchema2 = BaseMetadataSchema2.extend({
/**
* A URI template (according to RFC 6570) that can be used to construct resource URIs.
*/
uriTemplate: z2.string(),
/**
* A description of what this template is for.
*
* This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a "hint" to the model.
*/
description: z2.optional(z2.string()),
/**
* The MIME type for all resources that match this template. This should only be included if all resources matching this template have the same type.
*/
mimeType: z2.optional(z2.string()),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z2.optional(z2.object({}).passthrough())
});
var ListResourcesRequestSchema2 = PaginatedRequestSchema2.extend({
method: z2.literal("resources/list")
});
var ListResourcesResultSchema2 = PaginatedResultSchema2.extend({
resources: z2.array(ResourceSchema2)
});
var ListResourceTemplatesRequestSchema2 = PaginatedRequestSchema2.extend({
method: z2.literal("resources/templates/list")
});
var ListResourceTemplatesResultSchema2 = PaginatedResultSchema2.extend({
resourceTemplates: z2.array(ResourceTemplateSchema2)
});
var ReadResourceRequestSchema2 = RequestSchema2.extend({
method: z2.literal("resources/read"),
params: BaseRequestParamsSchema2.extend({
/**
* The URI of the resource to read. The URI can use any protocol; it is up to the server how to interpret it.
*/
uri: z2.string()
})
});
var ReadResourceResultSchema2 = ResultSchema2.extend({
contents: z2.array(z2.union([TextResourceContentsSchema2, BlobResourceContentsSchema2]))
});
var ResourceListChangedNotificationSchema2 = NotificationSchema2.extend({
method: z2.literal("notifications/resources/list_changed")
});
var SubscribeRequestSchema2 = RequestSchema2.extend({
method: z2.literal("resources/subscribe"),
params: BaseRequestParamsSchema2.extend({
/**
* The URI of the resource to subscribe to. The URI can use any protocol; it is up to the server how to interpret it.
*/
uri: z2.string()
})
});
var UnsubscribeRequestSchema2 = RequestSchema2.extend({
method: z2.literal("resources/unsubscribe"),
params: BaseRequestParamsSchema2.extend({
/**
* The URI of the resource to unsubscribe from.
*/
uri: z2.string()
})
});
var ResourceUpdatedNotificationSchema2 = NotificationSchema2.extend({
method: z2.literal("notifications/resources/updated"),
params: BaseNotificationParamsSchema2.extend({
/**
* The URI of the resource that has been updated. This might be a sub-resource of the one that the client actually subscribed to.
*/
uri: z2.string()
})
});
var PromptArgumentSchema2 = z2.object({
/**
* The name of the argument.
*/
name: z2.string(),
/**
* A human-readable description of the argument.
*/
description: z2.optional(z2.string()),
/**
* Whether this argument must be provided.
*/
required: z2.optional(z2.boolean())
}).passthrough();
var PromptSchema2 = BaseMetadataSchema2.extend({
/**
* An optional description of what this prompt provides
*/
description: z2.optional(z2.string()),
/**
* A list of arguments to use for templating the prompt.
*/
arguments: z2.optional(z2.array(PromptArgumentSchema2)),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z2.optional(z2.object({}).passthrough())
});
var ListPromptsRequestSchema2 = PaginatedRequestSchema2.extend({
method: z2.literal("prompts/list")
});
var ListPromptsResultSchema2 = PaginatedResultSchema2.extend({
prompts: z2.array(PromptSchema2)
});
var GetPromptRequestSchema2 = RequestSchema2.extend({
method: z2.literal("prompts/get"),
params: BaseRequestParamsSchema2.extend({
/**
* The name of the prompt or prompt template.
*/
name: z2.string(),
/**
* Arguments to use for templating the prompt.
*/
arguments: z2.optional(z2.record(z2.string()))
})
});
var TextContentSchema2 = z2.object({
type: z2.literal("text"),
/**
* The text content of the message.
*/
text: z2.string(),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z2.optional(z2.object({}).passthrough())
}).passthrough();
var ImageContentSchema2 = z2.object({
type: z2.literal("image"),
/**
* The base64-encoded image data.
*/
data: Base64Schema2,
/**
* The MIME type of the image. Different providers may support different image types.
*/
mimeType: z2.string(),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z2.optional(z2.object({}).passthrough())
}).passthrough();
var AudioContentSchema2 = z2.object({
type: z2.literal("audio"),
/**
* The base64-encoded audio data.
*/
data: Base64Schema2,
/**
* The MIME type of the audio. Different providers may support different audio types.
*/
mimeType: z2.string(),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z2.optional(z2.object({}).passthrough())
}).passthrough();
var EmbeddedResourceSchema2 = z2.object({
type: z2.literal("resource"),
resource: z2.union([TextResourceContentsSchema2, BlobResourceContentsSchema2]),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z2.optional(z2.object({}).passthrough())
}).passthrough();
var ResourceLinkSchema2 = ResourceSchema2.extend({
type: z2.literal("resource_link")
});
var ContentBlockSchema2 = z2.union([
TextContentSchema2,
ImageContentSchema2,
AudioContentSchema2,
ResourceLinkSchema2,
EmbeddedResourceSchema2
]);
var PromptMessageSchema2 = z2.object({
role: z2.enum(["user", "assistant"]),
content: ContentBlockSchema2
}).passthrough();
var GetPromptResultSchema2 = ResultSchema2.extend({
/**
* An optional description for the prompt.
*/
description: z2.optional(z2.string()),
messages: z2.array(PromptMessageSchema2)
});
var PromptListChangedNotificationSchema2 = NotificationSchema2.extend({
method: z2.literal("notifications/prompts/list_changed")
});
var ToolAnnotationsSchema2 = z2.object({
/**
* A human-readable title for the tool.
*/
title: z2.optional(z2.string()),
/**
* If true, the tool does not modify its environment.
*
* Default: false
*/
readOnlyHint: z2.optional(z2.boolean()),
/**
* If true, the tool may perform destructive updates to its environment.
* If false, the tool performs only additive updates.
*
* (This property is meaningful only when `readOnlyHint == false`)
*
* Default: true
*/
destructiveHint: z2.optional(z2.boolean()),
/**
* If true, calling the tool repeatedly with the same arguments
* will have no additional effect on the its environment.
*
* (This property is meaningful only when `readOnlyHint == false`)
*
* Default: false
*/
idempotentHint: z2.optional(z2.boolean()),
/**
* If true, this tool may interact with an "open world" of external
* entities. If false, the tool's domain of interaction is closed.
* For example, the world of a web search tool is open, whereas that
* of a memory tool is not.
*
* Default: true
*/
openWorldHint: z2.optional(z2.boolean())
}).passthrough();
var ToolSchema2 = BaseMetadataSchema2.extend({
/**
* A human-readable description of the tool.
*/
description: z2.optional(z2.string()),
/**
* A JSON Schema object defining the expected parameters for the tool.
*/
inputSchema: z2.object({
type: z2.literal("object"),
properties: z2.optional(z2.object({}).passthrough()),
required: z2.optional(z2.array(z2.string()))
}).passthrough(),
/**
* An optional JSON Schema object defining the structure of the tool's output returned in
* the structuredContent field of a CallToolResult.
*/
outputSchema: z2.optional(z2.object({
type: z2.literal("object"),
properties: z2.optional(z2.object({}).passthrough()),
required: z2.optional(z2.array(z2.string()))
}).passthrough()),
/**
* Optional additional tool information.
*/
annotations: z2.optional(ToolAnnotationsSchema2),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z2.optional(z2.object({}).passthrough())
});
var ListToolsRequestSchema2 = PaginatedRequestSchema2.extend({
method: z2.literal("tools/list")
});
var ListToolsResultSchema2 = PaginatedResultSchema2.extend({
tools: z2.array(ToolSchema2)
});
var CallToolResultSchema2 = ResultSchema2.extend({
/**
* A list of content objects that represent the result of the tool call.
*
* If the Tool does not define an outputSchema, this field MUST be present in the result.
* For backwards compatibility, this field is always present, but it may be empty.
*/
content: z2.array(ContentBlockSchema2).default([]),
/**
* An object containing structured tool output.
*
* If the Tool defines an outputSchema, this field MUST be present in the result, and contain a JSON object that matches the schema.
*/
structuredContent: z2.object({}).passthrough().optional(),
/**
* Whether the tool call ended in an error.
*
* If not set, this is assumed to be false (the call was successful).
*
* Any errors that originate from the tool SHOULD be reported inside the result
* object, with `isError` set to true, _not_ as an MCP protocol-level error
* response. Otherwise, the LLM would not be able to see that an error occurred
* and self-correct.
*
* However, any errors in _finding_ the tool, an error indicating that the
* server does not support tool calls, or any other exceptional conditions,
* should be reported as an MCP error response.
*/
isError: z2.optional(z2.boolean())
});
var CompatibilityCallToolResultSchema2 = CallToolResultSchema2.or(ResultSchema2.extend({
toolResult: z2.unknown()
}));
var CallToolRequestSchema2 = RequestSchema2.extend({
method: z2.literal("tools/call"),
params: BaseRequestParamsSchema2.extend({
name: z2.string(),
arguments: z2.optional(z2.record(z2.unknown()))
})
});
var ToolListChangedNotificationSchema2 = NotificationSchema2.extend({
method: z2.literal("notifications/tools/list_changed")
});
var LoggingLevelSchema2 = z2.enum([
"debug",
"info",
"notice",
"warning",
"error",
"critical",
"alert",
"emergency"
]);
var SetLevelRequestSchema2 = RequestSchema2.extend({
method: z2.literal("logging/setLevel"),
params: BaseRequestParamsSchema2.extend({
/**
* The level of logging that the client wants to receive from the server. The server should send all logs at this level and higher (i.e., more severe) to the client as notifications/logging/message.
*/
level: LoggingLevelSchema2
})
});
var LoggingMessageNotificationSchema2 = NotificationSchema2.extend({
method: z2.literal("notifications/message"),
params: BaseNotificationParamsSchema2.extend({
/**
* The severity of this log message.
*/
level: LoggingLevelSchema2,
/**
* An optional name of the logger issuing this message.
*/
logger: z2.optional(z2.string()),
/**
* The data to be logged, such as a string message or an object. Any JSON serializable type is allowed here.
*/
data: z2.unknown()
})
});
var ModelHintSchema2 = z2.object({
/**
* A hint for a model name.
*/
name: z2.string().optional()
}).passthrough();
var ModelPreferencesSchema2 = z2.object({
/**
* Optional hints to use for model selection.
*/
hints: z2.optional(z2.array(ModelHintSchema2)),
/**
* How much to prioritize cost when selecting a model.
*/
costPriority: z2.optional(z2.number().min(0).max(1)),
/**
* How much to prioritize sampling speed (latency) when selecting a model.
*/
speedPriority: z2.optional(z2.number().min(0).max(1)),
/**
* How much to prioritize intelligence and capabilities when selecting a model.
*/
intelligencePriority: z2.optional(z2.number().min(0).max(1))
}).passthrough();
var SamplingMessageSchema2 = z2.object({
role: z2.enum(["user", "assistant"]),
content: z2.union([TextContentSchema2, ImageContentSchema2, AudioContentSchema2])
}).passthrough();
var CreateMessageRequestSchema2 = RequestSchema2.extend({
method: z2.literal("sampling/createMessage"),
params: BaseRequestParamsSchema2.extend({
messages: z2.array(SamplingMessageSchema2),
/**
* An optional system prompt the server wants to use for sampling. The client MAY modify or omit this prompt.
*/
systemPrompt: z2.optional(z2.string()),
/**
* A request to include context from one or more MCP servers (including the caller), to be attached to the prompt. The client MAY ignore this request.
*/
includeContext: z2.optional(z2.enum(["none", "thisServer", "allServers"])),
temperature: z2.optional(z2.number()),
/**
* The maximum number of tokens to sample, as requested by the server. The client MAY choose to sample fewer tokens than requested.
*/
maxTokens: z2.number().int(),
stopSequences: z2.optional(z2.array(z2.string())),
/**
* Optional metadata to pass through to the LLM provider. The format of this metadata is provider-specific.
*/
metadata: z2.optional(z2.object({}).passthrough()),
/**
* The server's preferences for which model to select.
*/
modelPreferences: z2.optional(ModelPreferencesSchema2)
})
});
var CreateMessageResultSchema2 = ResultSchema2.extend({
/**
* The name of the model that generated the message.
*/
model: z2.string(),
/**
* The reason why sampling stopped.
*/
stopReason: z2.optional(z2.enum(["endTurn", "stopSequence", "maxTokens"]).or(z2.string())),
role: z2.enum(["user", "assistant"]),
content: z2.discriminatedUnion("type", [
TextContentSchema2,
ImageContentSchema2,
AudioContentSchema2
])
});
var BooleanSchemaSchema2 = z2.object({
type: z2.literal("boolean"),
title: z2.optional(z2.string()),
description: z2.optional(z2.string()),
default: z2.optional(z2.boolean())
}).passthrough();
var StringSchemaSchema2 = z2.object({
type: z2.literal("string"),
title: z2.optional(z2.string()),
description: z2.optional(z2.string()),
minLength: z2.optional(z2.number()),
maxLength: z2.optional(z2.number()),
format: z2.optional(z2.enum(["email", "uri", "date", "date-time"]))
}).passthrough();
var NumberSchemaSchema2 = z2.object({
type: z2.enum(["number", "integer"]),
title: z2.optional(z2.string()),
description: z2.optional(z2.string()),
minimum: z2.optional(z2.number()),
maximum: z2.optional(z2.number())
}).passthrough();
var EnumSchemaSchema2 = z2.object({
type: z2.literal("string"),
title: z2.optional(z2.string()),
description: z2.optional(z2.string()),
enum: z2.array(z2.string()),
enumNames: z2.optional(z2.array(z2.string()))
}).passthrough();
var PrimitiveSchemaDefinitionSchema2 = z2.union([
BooleanSchemaSchema2,
StringSchemaSchema2,
NumberSchemaSchema2,
EnumSchemaSchema2
]);
var ElicitRequestSchema2 = RequestSchema2.extend({
method: z2.literal("elicitation/create"),
params: BaseRequestParamsSchema2.extend({
/**
* The message to present to the user.
*/
message: z2.string(),
/**
* The schema for the requested user input.
*/
requestedSchema: z2.object({
type: z2.literal("object"),
properties: z2.record(z2.string(), PrimitiveSchemaDefinitionSchema2),
required: z2.optional(z2.array(z2.string()))
}).passthrough()
})
});
var ElicitResultSchema2 = ResultSchema2.extend({
/**
* The user's response action.
*/
action: z2.enum(["accept", "decline", "cancel"]),
/**
* The collected user input content (only present if action is "accept").
*/
content: z2.optional(z2.record(z2.string(), z2.unknown()))
});
var ResourceTemplateReferenceSchema2 = z2.object({
type: z2.literal("ref/resource"),
/**
* The URI or URI template of the resource.
*/
uri: z2.string()
}).passthrough();
var PromptReferenceSchema2 = z2.object({
type: z2.literal("ref/prompt"),
/**
* The name of the prompt or prompt template
*/
name: z2.string()
}).passthrough();
var CompleteRequestSchema2 = RequestSchema2.extend({
method: z2.literal("completion/complete"),
params: BaseRequestParamsSchema2.extend({
ref: z2.union([PromptReferenceSchema2, ResourceTemplateReferenceSchema2]),
/**
* The argument's information
*/
argument: z2.object({
/**
* The name of the argument
*/
name: z2.string(),
/**
* The value of the argument to use for completion matching.
*/
value: z2.string()
}).passthrough(),
context: z2.optional(z2.object({
/**
* Previously-resolved variables in a URI template or prompt.
*/
arguments: z2.optional(z2.record(z2.string(), z2.string()))
}))
})
});
var CompleteResultSchema2 = ResultSchema2.extend({
completion: z2.object({
/**
* An array of completion values. Must not exceed 100 items.
*/
values: z2.array(z2.string()).max(100),
/**
* The total number of completion options available. This can exceed the number of values actually sent in the response.
*/
total: z2.optional(z2.number().int()),
/**
* Indicates whether there are additional completion options beyond those provided in the current response, even if the exact total is unknown.
*/
hasMore: z2.optional(z2.boolean())
}).passthrough()
});
var RootSchema2 = z2.object({
/**
* The URI identifying the root. This *must* start with file:// for now.
*/
uri: z2.string().startsWith("file://"),
/**
* An optional name for the root.
*/
name: z2.optional(z2.string()),
/**
* See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
* for notes on _meta usage.
*/
_meta: z2.optional(z2.object({}).passthrough())
}).passthrough();
var ListRootsRequestSchema2 = RequestSchema2.extend({
method: z2.literal("roots/list")
});
var ListRootsResultSchema2 = ResultSchema2.extend({
roots: z2.array(RootSchema2)
});
var RootsListChangedNotificationSchema2 = NotificationSchema2.extend({
method: z2.literal("notifications/roots/list_changed")
});
var ClientRequestSchema2 = z2.union([
PingRequestSchema2,
InitializeRequestSchema2,
CompleteRequestSchema2,
SetLevelRequestSchema2,
GetPromptRequestSchema2,
ListPromptsRequestSchema2,
ListResourcesRequestSchema2,
ListResourceTemplatesRequestSchema2,
ReadResourceRequestSchema2,
SubscribeRequestSchema2,
UnsubscribeRequestSchema2,
CallToolRequestSchema2,
ListToolsRequestSchema2
]);
var ClientNotificationSchema2 = z2.union([
CancelledNotificationSchema2,
ProgressNotificationSchema2,
InitializedNotificationSchema2,
RootsListChangedNotificationSchema2
]);
var ClientResultSchema2 = z2.union([
EmptyResultSchema2,
CreateMessageResultSchema2,
ElicitResultSchema2,
ListRootsResultSchema2
]);
var ServerRequestSchema2 = z2.union([
PingRequestSchema2,
CreateMessageRequestSchema2,
ElicitRequestSchema2,
ListRootsRequestSchema2
]);
var ServerNotificationSchema2 = z2.union([
CancelledNotificationSchema2,
ProgressNotificationSchema2,
LoggingMessageNotificationSchema2,
ResourceUpdatedNotificationSchema2,
ResourceListChangedNotificationSchema2,
ToolListChangedNotificationSchema2,
PromptListChangedNotificationSchema2
]);
var ServerResultSchema2 = z2.union([
EmptyResultSchema2,
InitializeResultSchema2,
CompleteResultSchema2,
GetPromptResultSchema2,
ListPromptsResultSchema2,
ListResourcesResultSchema2,
ListResourceTemplatesResultSchema2,
ReadResourceResultSchema2,
CallToolResultSchema2,
ListToolsResultSchema2
]);
var import_raw_body = __toESM2(require_raw_body(), 1);
var import_content_type = __toESM2(require_content_type(), 1);
var import_node_crypto = require("node:crypto");
var MAXIMUM_MESSAGE_SIZE = "4mb";
var StreamableHTTPServerTransport = class {
constructor(options) {
var _a, _b;
this._started = false;
this._streamMapping = /* @__PURE__ */ new Map();
this._requestToStreamMapping = /* @__PURE__ */ new Map();
this._requestResponseMap = /* @__PURE__ */ new Map();
this._initialized = false;
this._enableJsonResponse = false;
this._standaloneSseStreamId = "_GET_stream";
this.sessionIdGenerator = options.sessionIdGenerator;
this._enableJsonResponse = (_a = options.enableJsonResponse) !== null && _a !== void 0 ? _a : false;
this._eventStore = options.eventStore;
this._onsessioninitialized = options.onsessioninitialized;
this._onsessionclosed = options.onsessionclosed;
this._allowedHosts = options.allowedHosts;
this._allowedOrigins = options.allowedOrigins;
this._enableDnsRebindingProtection = (_b = options.enableDnsRebindingProtection) !== null && _b !== void 0 ? _b : false;
}
/**
* Starts the transport. This is required by the Transport interface but is a no-op
* for the Streamable HTTP transport as connections are managed per-request.
*/
async start() {
if (this._started) {
throw new Error("Transport already started");
}
this._started = true;
}
/**
* Validates request headers for DNS rebinding protection.
* @returns Error message if validation fails, undefined if validation passes.
*/
validateRequestHeaders(req) {
if (!this._enableDnsRebindingProtection) {
return void 0;
}
if (this._allowedHosts && this._allowedHosts.length > 0) {
const hostHeader = req.headers.host;
if (!hostHeader || !this._allowedHosts.includes(hostHeader)) {
return `Invalid Host header: ${hostHeader}`;
}
}
if (this._allowedOrigins && this._allowedOrigins.length > 0) {
const originHeader = req.headers.origin;
if (!originHeader || !this._allowedOrigins.includes(originHeader)) {
return `Invalid Origin header: ${originHeader}`;
}
}
return void 0;
}
/**
* Handles an incoming HTTP request, whether GET or POST
*/
async handleRequest(req, res, parsedBody) {
var _a;
const validationError = this.validateRequestHeaders(req);
if (validationError) {
res.writeHead(403).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32e3,
message: validationError
},
id: null
}));
(_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, new Error(validationError));
return;
}
if (req.method === "POST") {
await this.handlePostRequest(req, res, parsedBody);
} else if (req.method === "GET") {
await this.handleGetRequest(req, res);
} else if (req.method === "DELETE") {
await this.handleDeleteRequest(req, res);
} else {
await this.handleUnsupportedRequest(res);
}
}
/**
* Handles GET requests for SSE stream
*/
async handleGetRequest(req, res) {
const acceptHeader = req.headers.accept;
if (!(acceptHeader === null || acceptHeader === void 0 ? void 0 : acceptHeader.includes("text/event-stream"))) {
res.writeHead(406).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32e3,
message: "Not Acceptable: Client must accept text/event-stream"
},
id: null
}));
return;
}
if (!this.validateSession(req, res)) {
return;
}
if (!this.validateProtocolVersion(req, res)) {
return;
}
if (this._eventStore) {
const lastEventId = req.headers["last-event-id"];
if (lastEventId) {
await this.replayEvents(lastEventId, res);
return;
}
}
const headers = {
"Content-Type": "text/event-stream",
"Cache-Control": "no-cache, no-transform",
Connection: "keep-alive"
};
if (this.sessionId !== void 0) {
headers["mcp-session-id"] = this.sessionId;
}
if (this._streamMapping.get(this._standaloneSseStreamId) !== void 0) {
res.writeHead(409).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32e3,
message: "Conflict: Only one SSE stream is allowed per session"
},
id: null
}));
return;
}
res.writeHead(200, headers).flushHeaders();
this._streamMapping.set(this._standaloneSseStreamId, res);
res.on("close", () => {
this._streamMapping.delete(this._standaloneSseStreamId);
});
}
/**
* Replays events that would have been sent after the specified event ID
* Only used when resumability is enabled
*/
async replayEvents(lastEventId, res) {
var _a, _b;
if (!this._eventStore) {
return;
}
try {
const headers = {
"Content-Type": "text/event-stream",
"Cache-Control": "no-cache, no-transform",
Connection: "keep-alive"
};
if (this.sessionId !== void 0) {
headers["mcp-session-id"] = this.sessionId;
}
res.writeHead(200, headers).flushHeaders();
const streamId = await ((_a = this._eventStore) === null || _a === void 0 ? void 0 : _a.replayEventsAfter(lastEventId, {
send: async (eventId, message) => {
var _a2;
if (!this.writeSSEEvent(res, message, eventId)) {
(_a2 = this.onerror) === null || _a2 === void 0 ? void 0 : _a2.call(this, new Error("Failed replay events"));
res.end();
}
}
}));
this._streamMapping.set(streamId, res);
} catch (error) {
(_b = this.onerror) === null || _b === void 0 ? void 0 : _b.call(this, error);
}
}
/**
* Writes an event to the SSE stream with proper formatting
*/
writeSSEEvent(res, message, eventId) {
let eventData = `event: message
`;
if (eventId) {
eventData += `id: ${eventId}
`;
}
eventData += `data: ${JSON.stringify(message)}
`;
return res.write(eventData);
}
/**
* Handles unsupported requests (PUT, PATCH, etc.)
*/
async handleUnsupportedRequest(res) {
res.writeHead(405, {
"Allow": "GET, POST, DELETE"
}).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32e3,
message: "Method not allowed."
},
id: null
}));
}
/**
* Handles POST requests containing JSON-RPC messages
*/
async handlePostRequest(req, res, parsedBody) {
var _a, _b, _c, _d, _e;
try {
const acceptHeader = req.headers.accept;
if (!(acceptHeader === null || acceptHeader === void 0 ? void 0 : acceptHeader.includes("application/json")) || !acceptHeader.includes("text/event-stream")) {
res.writeHead(406).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32e3,
message: "Not Acceptable: Client must accept both application/json and text/event-stream"
},
id: null
}));
return;
}
const ct = req.headers["content-type"];
if (!ct || !ct.includes("application/json")) {
res.writeHead(415).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32e3,
message: "Unsupported Media Type: Content-Type must be application/json"
},
id: null
}));
return;
}
const authInfo = req.auth;
const requestInfo = { headers: req.headers };
let rawMessage;
if (parsedBody !== void 0) {
rawMessage = parsedBody;
} else {
const parsedCt = import_content_type.default.parse(ct);
const body = await (0, import_raw_body.default)(req, {
limit: MAXIMUM_MESSAGE_SIZE,
encoding: (_a = parsedCt.parameters.charset) !== null && _a !== void 0 ? _a : "utf-8"
});
rawMessage = JSON.parse(body.toString());
}
let messages;
if (Array.isArray(rawMessage)) {
messages = rawMessage.map((msg) => JSONRPCMessageSchema2.parse(msg));
} else {
messages = [JSONRPCMessageSchema2.parse(rawMessage)];
}
const isInitializationRequest = messages.some(isInitializeRequest);
if (isInitializationRequest) {
if (this._initialized && this.sessionId !== void 0) {
res.writeHead(400).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32600,
message: "Invalid Request: Server already initialized"
},
id: null
}));
return;
}
if (messages.length > 1) {
res.writeHead(400).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32600,
message: "Invalid Request: Only one initialization request is allowed"
},
id: null
}));
return;
}
this.sessionId = (_b = this.sessionIdGenerator) === null || _b === void 0 ? void 0 : _b.call(this);
this._initialized = true;
if (this.sessionId && this._onsessioninitialized) {
await Promise.resolve(this._onsessioninitialized(this.sessionId));
}
}
if (!isInitializationRequest) {
if (!this.validateSession(req, res)) {
return;
}
if (!this.validateProtocolVersion(req, res)) {
return;
}
}
const hasRequests = messages.some(isJSONRPCRequest2);
if (!hasRequests) {
res.writeHead(202).end();
for (const message of messages) {
(_c = this.onmessage) === null || _c === void 0 ? void 0 : _c.call(this, message, { authInfo, requestInfo });
}
} else if (hasRequests) {
const streamId = (0, import_node_crypto.randomUUID)();
if (!this._enableJsonResponse) {
const headers = {
"Content-Type": "text/event-stream",
"Cache-Control": "no-cache",
Connection: "keep-alive"
};
if (this.sessionId !== void 0) {
headers["mcp-session-id"] = this.sessionId;
}
res.writeHead(200, headers);
}
for (const message of messages) {
if (isJSONRPCRequest2(message)) {
this._streamMapping.set(streamId, res);
this._requestToStreamMapping.set(message.id, streamId);
}
}
res.on("close", () => {
this._streamMapping.delete(streamId);
});
for (const message of messages) {
(_d = this.onmessage) === null || _d === void 0 ? void 0 : _d.call(this, message, { authInfo, requestInfo });
}
}
} catch (error) {
res.writeHead(400).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32700,
message: "Parse error",
data: String(error)
},
id: null
}));
(_e = this.onerror) === null || _e === void 0 ? void 0 : _e.call(this, error);
}
}
/**
* Handles DELETE requests to terminate sessions
*/
async handleDeleteRequest(req, res) {
var _a;
if (!this.validateSession(req, res)) {
return;
}
if (!this.validateProtocolVersion(req, res)) {
return;
}
await Promise.resolve((_a = this._onsessionclosed) === null || _a === void 0 ? void 0 : _a.call(this, this.sessionId));
await this.close();
res.writeHead(200).end();
}
/**
* Validates session ID for non-initialization requests
* Returns true if the session is valid, false otherwise
*/
validateSession(req, res) {
if (this.sessionIdGenerator === void 0) {
return true;
}
if (!this._initialized) {
res.writeHead(400).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32e3,
message: "Bad Request: Server not initialized"
},
id: null
}));
return false;
}
const sessionId = req.headers["mcp-session-id"];
if (!sessionId) {
res.writeHead(400).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32e3,
message: "Bad Request: Mcp-Session-Id header is required"
},
id: null
}));
return false;
} else if (Array.isArray(sessionId)) {
res.writeHead(400).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32e3,
message: "Bad Request: Mcp-Session-Id header must be a single value"
},
id: null
}));
return false;
} else if (sessionId !== this.sessionId) {
res.writeHead(404).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32001,
message: "Session not found"
},
id: null
}));
return false;
}
return true;
}
validateProtocolVersion(req, res) {
var _a;
let protocolVersion = (_a = req.headers["mcp-protocol-version"]) !== null && _a !== void 0 ? _a : DEFAULT_NEGOTIATED_PROTOCOL_VERSION;
if (Array.isArray(protocolVersion)) {
protocolVersion = protocolVersion[protocolVersion.length - 1];
}
if (!SUPPORTED_PROTOCOL_VERSIONS2.includes(protocolVersion)) {
res.writeHead(400).end(JSON.stringify({
jsonrpc: "2.0",
error: {
code: -32e3,
message: `Bad Request: Unsupported protocol version (supported versions: ${SUPPORTED_PROTOCOL_VERSIONS2.join(", ")})`
},
id: null
}));
return false;
}
return true;
}
async close() {
var _a;
this._streamMapping.forEach((response) => {
response.end();
});
this._streamMapping.clear();
this._requestResponseMap.clear();
(_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);
}
async send(message, options) {
let requestId = options === null || options === void 0 ? void 0 : options.relatedRequestId;
if (isJSONRPCResponse2(message) || isJSONRPCError2(message)) {
requestId = message.id;
}
if (requestId === void 0) {
if (isJSONRPCResponse2(message) || isJSONRPCError2(message)) {
throw new Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");
}
const standaloneSse = this._streamMapping.get(this._standaloneSseStreamId);
if (standaloneSse === void 0) {
return;
}
let eventId;
if (this._eventStore) {
eventId = await this._eventStore.storeEvent(this._standaloneSseStreamId, message);
}
this.writeSSEEvent(standaloneSse, message, eventId);
return;
}
const streamId = this._requestToStreamMapping.get(requestId);
const response = this._streamMapping.get(streamId);
if (!streamId) {
throw new Error(`No connection established for request ID: ${String(requestId)}`);
}
if (!this._enableJsonResponse) {
let eventId;
if (this._eventStore) {
eventId = await this._eventStore.storeEvent(streamId, message);
}
if (response) {
this.writeSSEEvent(response, message, eventId);
}
}
if (isJSONRPCResponse2(message) || isJSONRPCError2(message)) {
this._requestResponseMap.set(requestId, message);
const relatedIds = Array.from(this._requestToStreamMapping.entries()).filter(([_2, streamId2]) => this._streamMapping.get(streamId2) === response).map(([id]) => id);
const allResponsesReady = relatedIds.every((id) => this._requestResponseMap.has(id));
if (allResponsesReady) {
if (!response) {
throw new Error(`No connection established for request ID: ${String(requestId)}`);
}
if (this._enableJsonResponse) {
const headers = {
"Content-Type": "application/json"
};
if (this.sessionId !== void 0) {
headers["mcp-session-id"] = this.sessionId;
}
const responses = relatedIds.map((id) => this._requestResponseMap.get(id));
response.writeHead(200, headers);
if (responses.length === 1) {
response.end(JSON.stringify(responses[0]));
} else {
response.end(JSON.stringify(responses));
}
} else {
response.end();
}
for (const id of relatedIds) {
this._requestResponseMap.delete(id);
this._requestToStreamMapping.delete(id);
}
}
}
}
};
var import_express = __toESM2(require_express2(), 1);
var import_node_crypto2 = require("node:crypto");
var import_lodash = __toESM2(require_lodash(), 1);
function ok(value) {
return { ok: true, value };
}
function err(typeOrPayload, payload) {
if (payload !== void 0) {
return { ok: false, error: { type: typeOrPayload, ...payload } };
}
return { ok: false, error: typeOrPayload };
}
var ignoreOverride2 = Symbol("Let zodToJsonSchema decide on which parser to use");
var defaultOptions2 = {
name: void 0,
$refStrategy: "root",
basePath: ["#"],
effectStrategy: "input",
pipeStrategy: "all",
dateStrategy: "format:date-time",
mapStrategy: "entries",
removeAdditionalStrategy: "passthrough",
definitionPath: "definitions",
target: "jsonSchema7",
strictUnions: false,
definitions: {},
errorMessages: false,
markdownDescription: false,
patternStrategy: "escape",
applyRegexFlags: false,
emailStrategy: "format:email",
base64Strategy: "contentEncoding:base64",
nameStrategy: "ref"
};
var getDefaultOptions2 = (options) => typeof options === "string" ? {
...defaultOptions2,
name: options
} : {
...defaultOptions2,
...options
};
var getRefs2 = (options) => {
const _options = getDefaultOptions2(options);
const currentPath = _options.name !== void 0 ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath;
return {
..._options,
currentPath,
propertyPath: void 0,
seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [
def._def,
{
def: def._def,
path: [..._options.basePath, _options.definitionPath, name],
// Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.
jsonSchema: void 0
}
]))
};
};
function addErrorMessage2(res, key, errorMessage, refs) {
if (!refs?.errorMessages)
return;
if (errorMessage) {
res.errorMessage = {
...res.errorMessage,
[key]: errorMessage
};
}
}
function setResponseValueAndErrors2(res, key, value, errorMessage, refs) {
res[key] = value;
addErrorMessage2(res, key, errorMessage, refs);
}
function parseAnyDef2() {
return {};
}
function parseArrayDef2(def, refs) {
const res = {
type: "array"
};
if (def.type?._def && def.type?._def?.typeName !== ZodFirstPartyTypeKind2.ZodAny) {
res.items = parseDef2(def.type._def, {
...refs,
currentPath: [...refs.currentPath, "items"]
});
}
if (def.minLength) {
setResponseValueAndErrors2(res, "minItems", def.minLength.value, def.minLength.message, refs);
}
if (def.maxLength) {
setResponseValueAndErrors2(res, "maxItems", def.maxLength.value, def.maxLength.message, refs);
}
if (def.exactLength) {
setResponseValueAndErrors2(res, "minItems", def.exactLength.value, def.exactLength.message, refs);
setResponseValueAndErrors2(res, "maxItems", def.exactLength.value, def.exactLength.message, refs);
}
return res;
}
function parseBigintDef2(def, refs) {
const res = {
type: "integer",
format: "int64"
};
if (!def.checks)
return res;
for (const check of def.checks) {
switch (check.kind) {
case "min":
if (refs.target === "jsonSchema7") {
if (check.inclusive) {
setResponseValueAndErrors2(res, "minimum", check.value, check.message, refs);
} else {
setResponseValueAndErrors2(res, "exclusiveMinimum", check.value, check.message, refs);
}
} else {
if (!check.inclusive) {
res.exclusiveMinimum = true;
}
setResponseValueAndErrors2(res, "minimum", check.value, check.message, refs);
}
break;
case "max":
if (refs.target === "jsonSchema7") {
if (check.inclusive) {
setResponseValueAndErrors2(res, "maximum", check.value, check.message, refs);
} else {
setResponseValueAndErrors2(res, "exclusiveMaximum", check.value, check.message, refs);
}
} else {
if (!check.inclusive) {
res.exclusiveMaximum = true;
}
setResponseValueAndErrors2(res, "maximum", check.value, check.message, refs);
}
break;
case "multipleOf":
setResponseValueAndErrors2(res, "multipleOf", check.value, check.message, refs);
break;
}
}
return res;
}
function parseBooleanDef2() {
return {
type: "boolean"
};
}
function parseBrandedDef2(_def, refs) {
return parseDef2(_def.type._def, refs);
}
var parseCatchDef2 = (def, refs) => {
return parseDef2(def.innerType._def, refs);
};
function parseDateDef2(def, refs, overrideDateStrategy) {
const strategy = overrideDateStrategy ?? refs.dateStrategy;
if (Array.isArray(strategy)) {
return {
anyOf: strategy.map((item, i) => parseDateDef2(def, refs, item))
};
}
switch (strategy) {
case "string":
case "format:date-time":
return {
type: "string",
format: "date-time"
};
case "format:date":
return {
type: "string",
format: "date"
};
case "integer":
return integerDateParser2(def, refs);
}
}
var integerDateParser2 = (def, refs) => {
const res = {
type: "integer",
format: "unix-time"
};
if (refs.target === "openApi3") {
return res;
}
for (const check of def.checks) {
switch (check.kind) {
case "min":
setResponseValueAndErrors2(
res,
"minimum",
check.value,
// This is in milliseconds
check.message,
refs
);
break;
case "max":
setResponseValueAndErrors2(
res,
"maximum",
check.value,
// This is in milliseconds
check.message,
refs
);
break;
}
}
return res;
};
function parseDefaultDef2(_def, refs) {
return {
...parseDef2(_def.innerType._def, refs),
default: _def.defaultValue()
};
}
function parseEffectsDef2(_def, refs) {
return refs.effectStrategy === "input" ? parseDef2(_def.schema._def, refs) : {};
}
function parseEnumDef2(def) {
return {
type: "string",
enum: Array.from(def.values)
};
}
var isJsonSchema7AllOfType2 = (type) => {
if ("type" in type && type.type === "string")
return false;
return "allOf" in type;
};
function parseIntersectionDef2(def, refs) {
const allOf = [
parseDef2(def.left._def, {
...refs,
currentPath: [...refs.currentPath, "allOf", "0"]
}),
parseDef2(def.right._def, {
...refs,
currentPath: [...refs.currentPath, "allOf", "1"]
})
].filter((x) => !!x);
let unevaluatedProperties = refs.target === "jsonSchema2019-09" ? { unevaluatedProperties: false } : void 0;
const mergedAllOf = [];
allOf.forEach((schema) => {
if (isJsonSchema7AllOfType2(schema)) {
mergedAllOf.push(...schema.allOf);
if (schema.unevaluatedProperties === void 0) {
unevaluatedProperties = void 0;
}
} else {
let nestedSchema = schema;
if ("additionalProperties" in schema && schema.additionalProperties === false) {
const { additionalProperties, ...rest } = schema;
nestedSchema = rest;
} else {
unevaluatedProperties = void 0;
}
mergedAllOf.push(nestedSchema);
}
});
return mergedAllOf.length ? {
allOf: mergedAllOf,
...unevaluatedProperties
} : void 0;
}
function parseLiteralDef2(def, refs) {
const parsedType = typeof def.value;
if (parsedType !== "bigint" && parsedType !== "number" && parsedType !== "boolean" && parsedType !== "string") {
return {
type: Array.isArray(def.value) ? "array" : "object"
};
}
if (refs.target === "openApi3") {
return {
type: parsedType === "bigint" ? "integer" : parsedType,
enum: [def.value]
};
}
return {
type: parsedType === "bigint" ? "integer" : parsedType,
const: def.value
};
}
var emojiRegex22 = void 0;
var zodPatterns2 = {
/**
* `c` was changed to `[cC]` to replicate /i flag
*/
cuid: /^[cC][^\s-]{8,}$/,
cuid2: /^[0-9a-z]+$/,
ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,
/**
* `a-z` was added to replicate /i flag
*/
email: /^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,
/**
* Constructed a valid Unicode RegExp
*
* Lazily instantiate since this type of regex isn't supported
* in all envs (e.g. React Native).
*
* See:
* https://github.com/colinhacks/zod/issues/2433
* Fix in Zod:
* https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b
*/
emoji: () => {
if (emojiRegex22 === void 0) {
emojiRegex22 = RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$", "u");
}
return emojiRegex22;
},
/**
* Unused
*/
uuid: /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,
/**
* Unused
*/
ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,
ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,
/**
* Unused
*/
ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,
ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,
base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,
base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,
nanoid: /^[a-zA-Z0-9_-]{21}$/,
jwt: /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/
};
function parseStringDef2(def, refs) {
const res = {
type: "string"
};
if (def.checks) {
for (const check of def.checks) {
switch (check.kind) {
case "min":
setResponseValueAndErrors2(res, "minLength", typeof res.minLength === "number" ? Math.max(res.minLength, check.value) : check.value, check.message, refs);
break;
case "max":
setResponseValueAndErrors2(res, "maxLength", typeof res.maxLength === "number" ? Math.min(res.maxLength, check.value) : check.value, check.message, refs);
break;
case "email":
switch (refs.emailStrategy) {
case "format:email":
addFormat2(res, "email", check.message, refs);
break;
case "format:idn-email":
addFormat2(res, "idn-email", check.message, refs);
break;
case "pattern:zod":
addPattern2(res, zodPatterns2.email, check.message, refs);
break;
}
break;
case "url":
addFormat2(res, "uri", check.message, refs);
break;
case "uuid":
addFormat2(res, "uuid", check.message, refs);
break;
case "regex":
addPattern2(res, check.regex, check.message, refs);
break;
case "cuid":
addPattern2(res, zodPatterns2.cuid, check.message, refs);
break;
case "cuid2":
addPattern2(res, zodPatterns2.cuid2, check.message, refs);
break;
case "startsWith":
addPattern2(res, RegExp(`^${escapeLiteralCheckValue2(check.value, refs)}`), check.message, refs);
break;
case "endsWith":
addPattern2(res, RegExp(`${escapeLiteralCheckValue2(check.value, refs)}$`), check.message, refs);
break;
case "datetime":
addFormat2(res, "date-time", check.message, refs);
break;
case "date":
addFormat2(res, "date", check.message, refs);
break;
case "time":
addFormat2(res, "time", check.message, refs);
break;
case "duration":
addFormat2(res, "duration", check.message, refs);
break;
case "length":
setResponseValueAndErrors2(res, "minLength", typeof res.minLength === "number" ? Math.max(res.minLength, check.value) : check.value, check.message, refs);
setResponseValueAndErrors2(res, "maxLength", typeof res.maxLength === "number" ? Math.min(res.maxLength, check.value) : check.value, check.message, refs);
break;
case "includes": {
addPattern2(res, RegExp(escapeLiteralCheckValue2(check.value, refs)), check.message, refs);
break;
}
case "ip": {
if (check.version !== "v6") {
addFormat2(res, "ipv4", check.message, refs);
}
if (check.version !== "v4") {
addFormat2(res, "ipv6", check.message, refs);
}
break;
}
case "base64url":
addPattern2(res, zodPatterns2.base64url, check.message, refs);
break;
case "jwt":
addPattern2(res, zodPatterns2.jwt, check.message, refs);
break;
case "cidr": {
if (check.version !== "v6") {
addPattern2(res, zodPatterns2.ipv4Cidr, check.message, refs);
}
if (check.version !== "v4") {
addPattern2(res, zodPatterns2.ipv6Cidr, check.message, refs);
}
break;
}
case "emoji":
addPattern2(res, zodPatterns2.emoji(), check.message, refs);
break;
case "ulid": {
addPattern2(res, zodPatterns2.ulid, check.message, refs);
break;
}
case "base64": {
switch (refs.base64Strategy) {
case "format:binary": {
addFormat2(res, "binary", check.message, refs);
break;
}
case "contentEncoding:base64": {
setResponseValueAndErrors2(res, "contentEncoding", "base64", check.message, refs);
break;
}
case "pattern:zod": {
addPattern2(res, zodPatterns2.base64, check.message, refs);
break;
}
}
break;
}
case "nanoid": {
addPattern2(res, zodPatterns2.nanoid, check.message, refs);
}
case "toLowerCase":
case "toUpperCase":
case "trim":
break;
default:
/* @__PURE__ */ ((_2) => {
})(check);
}
}
}
return res;
}
function escapeLiteralCheckValue2(literal, refs) {
return refs.patternStrategy === "escape" ? escapeNonAlphaNumeric2(literal) : literal;
}
var ALPHA_NUMERIC2 = new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");
function escapeNonAlphaNumeric2(source) {
let result = "";
for (let i = 0; i < source.length; i++) {
if (!ALPHA_NUMERIC2.has(source[i])) {
result += "\\";
}
result += source[i];
}
return result;
}
function addFormat2(schema, value, message, refs) {
if (schema.format || schema.anyOf?.some((x) => x.format)) {
if (!schema.anyOf) {
schema.anyOf = [];
}
if (schema.format) {
schema.anyOf.push({
format: schema.format,
...schema.errorMessage && refs.errorMessages && {
errorMessage: { format: schema.errorMessage.format }
}
});
delete schema.format;
if (schema.errorMessage) {
delete schema.errorMessage.format;
if (Object.keys(schema.errorMessage).length === 0) {
delete schema.errorMessage;
}
}
}
schema.anyOf.push({
format: value,
...message && refs.errorMessages && { errorMessage: { format: message } }
});
} else {
setResponseValueAndErrors2(schema, "format", value, message, refs);
}
}
function addPattern2(schema, regex, message, refs) {
if (schema.pattern || schema.allOf?.some((x) => x.pattern)) {
if (!schema.allOf) {
schema.allOf = [];
}
if (schema.pattern) {
schema.allOf.push({
pattern: schema.pattern,
...schema.errorMessage && refs.errorMessages && {
errorMessage: { pattern: schema.errorMessage.pattern }
}
});
delete schema.pattern;
if (schema.errorMessage) {
delete schema.errorMessage.pattern;
if (Object.keys(schema.errorMessage).length === 0) {
delete schema.errorMessage;
}
}
}
schema.allOf.push({
pattern: stringifyRegExpWithFlags2(regex, refs),
...message && refs.errorMessages && { errorMessage: { pattern: message } }
});
} else {
setResponseValueAndErrors2(schema, "pattern", stringifyRegExpWithFlags2(regex, refs), message, refs);
}
}
function stringifyRegExpWithFlags2(regex, refs) {
if (!refs.applyRegexFlags || !regex.flags) {
return regex.source;
}
const flags = {
i: regex.flags.includes("i"),
m: regex.flags.includes("m"),
s: regex.flags.includes("s")
// `.` matches newlines
};
const source = flags.i ? regex.source.toLowerCase() : regex.source;
let pattern = "";
let isEscaped = false;
let inCharGroup = false;
let inCharRange = false;
for (let i = 0; i < source.length; i++) {
if (isEscaped) {
pattern += source[i];
isEscaped = false;
continue;
}
if (flags.i) {
if (inCharGroup) {
if (source[i].match(/[a-z]/)) {
if (inCharRange) {
pattern += source[i];
pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();
inCharRange = false;
} else if (source[i + 1] === "-" && source[i + 2]?.match(/[a-z]/)) {
pattern += source[i];
inCharRange = true;
} else {
pattern += `${source[i]}${source[i].toUpperCase()}`;
}
continue;
}
} else if (source[i].match(/[a-z]/)) {
pattern += `[${source[i]}${source[i].toUpperCase()}]`;
continue;
}
}
if (flags.m) {
if (source[i] === "^") {
pattern += `(^|(?<=[\r
]))`;
continue;
} else if (source[i] === "$") {
pattern += `($|(?=[\r
]))`;
continue;
}
}
if (flags.s && source[i] === ".") {
pattern += inCharGroup ? `${source[i]}\r
` : `[${source[i]}\r
]`;
continue;
}
pattern += source[i];
if (source[i] === "\\") {
isEscaped = true;
} else if (inCharGroup && source[i] === "]") {
inCharGroup = false;
} else if (!inCharGroup && source[i] === "[") {
inCharGroup = true;
}
}
try {
new RegExp(pattern);
} catch {
console.warn(`Could not convert regex pattern at ${refs.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`);
return regex.source;
}
return pattern;
}
function parseRecordDef2(def, refs) {
if (refs.target === "openAi") {
console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");
}
if (refs.target === "openApi3" && def.keyType?._def.typeName === ZodFirstPartyTypeKind2.ZodEnum) {
return {
type: "object",
required: def.keyType._def.values,
properties: def.keyType._def.values.reduce((acc, key) => ({
...acc,
[key]: parseDef2(def.valueType._def, {
...refs,
currentPath: [...refs.currentPath, "properties", key]
}) ?? {}
}), {}),
additionalProperties: false
};
}
const schema = {
type: "object",
additionalProperties: parseDef2(def.valueType._def, {
...refs,
currentPath: [...refs.currentPath, "additionalProperties"]
}) ?? {}
};
if (refs.target === "openApi3") {
return schema;
}
if (def.keyType?._def.typeName === ZodFirstPartyTypeKind2.ZodString && def.keyType._def.checks?.length) {
const { type, ...keyType } = parseStringDef2(def.keyType._def, refs);
return {
...schema,
propertyNames: keyType
};
} else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind2.ZodEnum) {
return {
...schema,
propertyNames: {
enum: def.keyType._def.values
}
};
} else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind2.ZodBranded && def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind2.ZodString && def.keyType._def.type._def.checks?.length) {
const { type, ...keyType } = parseBrandedDef2(def.keyType._def, refs);
return {
...schema,
propertyNames: keyType
};
}
return schema;
}
function parseMapDef2(def, refs) {
if (refs.mapStrategy === "record") {
return parseRecordDef2(def, refs);
}
const keys = parseDef2(def.keyType._def, {
...refs,
currentPath: [...refs.currentPath, "items", "items", "0"]
}) || {};
const values = parseDef2(def.valueType._def, {
...refs,
currentPath: [...refs.currentPath, "items", "items", "1"]
}) || {};
return {
type: "array",
maxItems: 125,
items: {
type: "array",
items: [keys, values],
minItems: 2,
maxItems: 2
}
};
}
function parseNativeEnumDef2(def) {
const object = def.values;
const actualKeys = Object.keys(def.values).filter((key) => {
return typeof object[object[key]] !== "number";
});
const actualValues = actualKeys.map((key) => object[key]);
const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));
return {
type: parsedTypes.length === 1 ? parsedTypes[0] === "string" ? "string" : "number" : ["string", "number"],
enum: actualValues
};
}
function parseNeverDef2() {
return {
not: {}
};
}
function parseNullDef2(refs) {
return refs.target === "openApi3" ? {
enum: ["null"],
nullable: true
} : {
type: "null"
};
}
var primitiveMappings2 = {
ZodString: "string",
ZodNumber: "number",
ZodBigInt: "integer",
ZodBoolean: "boolean",
ZodNull: "null"
};
function parseUnionDef2(def, refs) {
if (refs.target === "openApi3")
return asAnyOf2(def, refs);
const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;
if (options.every((x) => x._def.typeName in primitiveMappings2 && (!x._def.checks || !x._def.checks.length))) {
const types = options.reduce((types2, x) => {
const type = primitiveMappings2[x._def.typeName];
return type && !types2.includes(type) ? [...types2, type] : types2;
}, []);
return {
type: types.length > 1 ? types : types[0]
};
} else if (options.every((x) => x._def.typeName === "ZodLiteral" && !x.description)) {
const types = options.reduce((acc, x) => {
const type = typeof x._def.value;
switch (type) {
case "string":
case "number":
case "boolean":
return [...acc, type];
case "bigint":
return [...acc, "integer"];
case "object":
if (x._def.value === null)
return [...acc, "null"];
case "symbol":
case "undefined":
case "function":
default:
return acc;
}
}, []);
if (types.length === options.length) {
const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);
return {
type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],
enum: options.reduce((acc, x) => {
return acc.includes(x._def.value) ? acc : [...acc, x._def.value];
}, [])
};
}
} else if (options.every((x) => x._def.typeName === "ZodEnum")) {
return {
type: "string",
enum: options.reduce((acc, x) => [
...acc,
...x._def.values.filter((x2) => !acc.includes(x2))
], [])
};
}
return asAnyOf2(def, refs);
}
var asAnyOf2 = (def, refs) => {
const anyOf = (def.options instanceof Map ? Array.from(def.options.values()) : def.options).map((x, i) => parseDef2(x._def, {
...refs,
currentPath: [...refs.currentPath, "anyOf", `${i}`]
})).filter((x) => !!x && (!refs.strictUnions || typeof x === "object" && Object.keys(x).length > 0));
return anyOf.length ? { anyOf } : void 0;
};
function parseNullableDef2(def, refs) {
if (["ZodString", "ZodNumber", "ZodBigInt", "ZodBoolean", "ZodNull"].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {
if (refs.target === "openApi3") {
return {
type: primitiveMappings2[def.innerType._def.typeName],
nullable: true
};
}
return {
type: [
primitiveMappings2[def.innerType._def.typeName],
"null"
]
};
}
if (refs.target === "openApi3") {
const base2 = parseDef2(def.innerType._def, {
...refs,
currentPath: [...refs.currentPath]
});
if (base2 && "$ref" in base2)
return { allOf: [base2], nullable: true };
return base2 && { ...base2, nullable: true };
}
const base = parseDef2(def.innerType._def, {
...refs,
currentPath: [...refs.currentPath, "anyOf", "0"]
});
return base && { anyOf: [base, { type: "null" }] };
}
function parseNumberDef2(def, refs) {
const res = {
type: "number"
};
if (!def.checks)
return res;
for (const check of def.checks) {
switch (check.kind) {
case "int":
res.type = "integer";
addErrorMessage2(res, "type", check.message, refs);
break;
case "min":
if (refs.target === "jsonSchema7") {
if (check.inclusive) {
setResponseValueAndErrors2(res, "minimum", check.value, check.message, refs);
} else {
setResponseValueAndErrors2(res, "exclusiveMinimum", check.value, check.message, refs);
}
} else {
if (!check.inclusive) {
res.exclusiveMinimum = true;
}
setResponseValueAndErrors2(res, "minimum", check.value, check.message, refs);
}
break;
case "max":
if (refs.target === "jsonSchema7") {
if (check.inclusive) {
setResponseValueAndErrors2(res, "maximum", check.value, check.message, refs);
} else {
setResponseValueAndErrors2(res, "exclusiveMaximum", check.value, check.message, refs);
}
} else {
if (!check.inclusive) {
res.exclusiveMaximum = true;
}
setResponseValueAndErrors2(res, "maximum", check.value, check.message, refs);
}
break;
case "multipleOf":
setResponseValueAndErrors2(res, "multipleOf", check.value, check.message, refs);
break;
}
}
return res;
}
function decideAdditionalProperties2(def, refs) {
if (refs.removeAdditionalStrategy === "strict") {
return def.catchall._def.typeName === "ZodNever" ? def.unknownKeys !== "strict" : parseDef2(def.catchall._def, {
...refs,
currentPath: [...refs.currentPath, "additionalProperties"]
}) ?? true;
} else {
return def.catchall._def.typeName === "ZodNever" ? def.unknownKeys === "passthrough" : parseDef2(def.catchall._def, {
...refs,
currentPath: [...refs.currentPath, "additionalProperties"]
}) ?? true;
}
}
function parseObjectDef2(def, refs) {
const forceOptionalIntoNullable = refs.target === "openAi";
const result = {
type: "object",
...Object.entries(def.shape()).reduce((acc, [propName, propDef]) => {
if (propDef === void 0 || propDef._def === void 0)
return acc;
let propOptional = propDef.isOptional();
if (propOptional && forceOptionalIntoNullable) {
if (propDef instanceof ZodOptional2) {
propDef = propDef._def.innerType;
}
if (!propDef.isNullable()) {
propDef = propDef.nullable();
}
propOptional = false;
}
const parsedDef = parseDef2(propDef._def, {
...refs,
currentPath: [...refs.currentPath, "properties", propName],
propertyPath: [...refs.currentPath, "properties", propName]
});
if (parsedDef === void 0)
return acc;
return {
properties: { ...acc.properties, [propName]: parsedDef },
required: propOptional ? acc.required : [...acc.required, propName]
};
}, { properties: {}, required: [] }),
additionalProperties: decideAdditionalProperties2(def, refs)
};
if (!result.required.length)
delete result.required;
return result;
}
var parseOptionalDef2 = (def, refs) => {
if (refs.currentPath.toString() === refs.propertyPath?.toString()) {
return parseDef2(def.innerType._def, refs);
}
const innerSchema = parseDef2(def.innerType._def, {
...refs,
currentPath: [...refs.currentPath, "anyOf", "1"]
});
return innerSchema ? {
anyOf: [
{
not: {}
},
innerSchema
]
} : {};
};
var parsePipelineDef2 = (def, refs) => {
if (refs.pipeStrategy === "input") {
return parseDef2(def.in._def, refs);
} else if (refs.pipeStrategy === "output") {
return parseDef2(def.out._def, refs);
}
const a = parseDef2(def.in._def, {
...refs,
currentPath: [...refs.currentPath, "allOf", "0"]
});
const b = parseDef2(def.out._def, {
...refs,
currentPath: [...refs.currentPath, "allOf", a ? "1" : "0"]
});
return {
allOf: [a, b].filter((x) => x !== void 0)
};
};
function parsePromiseDef2(def, refs) {
return parseDef2(def.type._def, refs);
}
function parseSetDef2(def, refs) {
const items = parseDef2(def.valueType._def, {
...refs,
currentPath: [...refs.currentPath, "items"]
});
const schema = {
type: "array",
uniqueItems: true,
items
};
if (def.minSize) {
setResponseValueAndErrors2(schema, "minItems", def.minSize.value, def.minSize.message, refs);
}
if (def.maxSize) {
setResponseValueAndErrors2(schema, "maxItems", def.maxSize.value, def.maxSize.message, refs);
}
return schema;
}
function parseTupleDef2(def, refs) {
if (def.rest) {
return {
type: "array",
minItems: def.items.length,
items: def.items.map((x, i) => parseDef2(x._def, {
...refs,
currentPath: [...refs.currentPath, "items", `${i}`]
})).reduce((acc, x) => x === void 0 ? acc : [...acc, x], []),
additionalItems: parseDef2(def.rest._def, {
...refs,
currentPath: [...refs.currentPath, "additionalItems"]
})
};
} else {
return {
type: "array",
minItems: def.items.length,
maxItems: def.items.length,
items: def.items.map((x, i) => parseDef2(x._def, {
...refs,
currentPath: [...refs.currentPath, "items", `${i}`]
})).reduce((acc, x) => x === void 0 ? acc : [...acc, x], [])
};
}
}
function parseUndefinedDef2() {
return {
not: {}
};
}
function parseUnknownDef2() {
return {};
}
var parseReadonlyDef2 = (def, refs) => {
return parseDef2(def.innerType._def, refs);
};
var selectParser2 = (def, typeName, refs) => {
switch (typeName) {
case ZodFirstPartyTypeKind2.ZodString:
return parseStringDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodNumber:
return parseNumberDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodObject:
return parseObjectDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodBigInt:
return parseBigintDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodBoolean:
return parseBooleanDef2();
case ZodFirstPartyTypeKind2.ZodDate:
return parseDateDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodUndefined:
return parseUndefinedDef2();
case ZodFirstPartyTypeKind2.ZodNull:
return parseNullDef2(refs);
case ZodFirstPartyTypeKind2.ZodArray:
return parseArrayDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodUnion:
case ZodFirstPartyTypeKind2.ZodDiscriminatedUnion:
return parseUnionDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodIntersection:
return parseIntersectionDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodTuple:
return parseTupleDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodRecord:
return parseRecordDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodLiteral:
return parseLiteralDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodEnum:
return parseEnumDef2(def);
case ZodFirstPartyTypeKind2.ZodNativeEnum:
return parseNativeEnumDef2(def);
case ZodFirstPartyTypeKind2.ZodNullable:
return parseNullableDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodOptional:
return parseOptionalDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodMap:
return parseMapDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodSet:
return parseSetDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodLazy:
return () => def.getter()._def;
case ZodFirstPartyTypeKind2.ZodPromise:
return parsePromiseDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodNaN:
case ZodFirstPartyTypeKind2.ZodNever:
return parseNeverDef2();
case ZodFirstPartyTypeKind2.ZodEffects:
return parseEffectsDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodAny:
return parseAnyDef2();
case ZodFirstPartyTypeKind2.ZodUnknown:
return parseUnknownDef2();
case ZodFirstPartyTypeKind2.ZodDefault:
return parseDefaultDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodBranded:
return parseBrandedDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodReadonly:
return parseReadonlyDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodCatch:
return parseCatchDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodPipeline:
return parsePipelineDef2(def, refs);
case ZodFirstPartyTypeKind2.ZodFunction:
case ZodFirstPartyTypeKind2.ZodVoid:
case ZodFirstPartyTypeKind2.ZodSymbol:
return void 0;
default:
return /* @__PURE__ */ ((_2) => void 0)(typeName);
}
};
function parseDef2(def, refs, forceResolution = false) {
const seenItem = refs.seen.get(def);
if (refs.override) {
const overrideResult = refs.override?.(def, refs, seenItem, forceResolution);
if (overrideResult !== ignoreOverride2) {
return overrideResult;
}
}
if (seenItem && !forceResolution) {
const seenSchema = get$ref2(seenItem, refs);
if (seenSchema !== void 0) {
return seenSchema;
}
}
const newItem = { def, path: refs.currentPath, jsonSchema: void 0 };
refs.seen.set(def, newItem);
const jsonSchemaOrGetter = selectParser2(def, def.typeName, refs);
const jsonSchema = typeof jsonSchemaOrGetter === "function" ? parseDef2(jsonSchemaOrGetter(), refs) : jsonSchemaOrGetter;
if (jsonSchema) {
addMeta2(def, refs, jsonSchema);
}
newItem.jsonSchema = jsonSchema;
return jsonSchema;
}
var get$ref2 = (item, refs) => {
switch (refs.$refStrategy) {
case "root":
return { $ref: item.path.join("/") };
case "relative":
return { $ref: getRelativePath2(refs.currentPath, item.path) };
case "none":
case "seen": {
if (item.path.length < refs.currentPath.length && item.path.every((value, index) => refs.currentPath[index] === value)) {
console.warn(`Recursive reference detected at ${refs.currentPath.join("/")}! Defaulting to any`);
return {};
}
return refs.$refStrategy === "seen" ? {} : void 0;
}
}
};
var getRelativePath2 = (pathA, pathB) => {
let i = 0;
for (; i < pathA.length && i < pathB.length; i++) {
if (pathA[i] !== pathB[i])
break;
}
return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
};
var addMeta2 = (def, refs, jsonSchema) => {
if (def.description) {
jsonSchema.description = def.description;
if (refs.markdownDescription) {
jsonSchema.markdownDescription = def.description;
}
}
return jsonSchema;
};
var zodToJsonSchema2 = (schema, options) => {
const refs = getRefs2(options);
const definitions = typeof options === "object" && options.definitions ? Object.entries(options.definitions).reduce((acc, [name2, schema2]) => ({
...acc,
[name2]: parseDef2(schema2._def, {
...refs,
currentPath: [...refs.basePath, refs.definitionPath, name2]
}, true) ?? {}
}), {}) : void 0;
const name = typeof options === "string" ? options : options?.nameStrategy === "title" ? void 0 : options?.name;
const main = parseDef2(schema._def, name === void 0 ? refs : {
...refs,
currentPath: [...refs.basePath, refs.definitionPath, name]
}, false) ?? {};
const title = typeof options === "object" && options.name !== void 0 && options.nameStrategy === "title" ? options.name : void 0;
if (title !== void 0) {
main.title = title;
}
const combined = name === void 0 ? definitions ? {
...main,
[refs.definitionPath]: definitions
} : main : {
$ref: [
...refs.$refStrategy === "relative" ? [] : refs.basePath,
refs.definitionPath,
name
].join("/"),
[refs.definitionPath]: {
...definitions,
[name]: main
}
};
if (refs.target === "jsonSchema7") {
combined.$schema = "http://json-schema.org/draft-07/schema#";
} else if (refs.target === "jsonSchema2019-09" || refs.target === "openAi") {
combined.$schema = "https://json-schema.org/draft/2019-09/schema#";
}
if (refs.target === "openAi" && ("anyOf" in combined || "oneOf" in combined || "allOf" in combined || "type" in combined && Array.isArray(combined.type))) {
console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");
}
return combined;
};
function parseExpressRequestConfig(req) {
return JSON.parse(Buffer.from(req.query.config, "base64").toString());
}
function parseAndValidateConfig(req, schema) {
let config = {};
if (req.query.config) {
try {
config = parseExpressRequestConfig(req);
} catch (configError) {
return err({
title: "Invalid config parameter",
status: 400,
detail: "Failed to parse config parameter",
instance: req.originalUrl
});
}
}
for (const [key, value] of Object.entries(req.query)) {
if (key === "config" || key === "api_key" || key === "profile")
continue;
const pathParts = key.split(".");
const rawValue = Array.isArray(value) ? value[0] : value;
if (typeof rawValue !== "string")
continue;
let parsedValue = rawValue;
try {
parsedValue = JSON.parse(rawValue);
} catch {
}
import_lodash.default.set(config, pathParts, parsedValue);
}
if (schema) {
const result = schema.safeParse(config);
if (!result.success) {
const jsonSchema = zodToJsonSchema2(schema);
const errors = result.error.issues.map((issue) => {
let received = config;
for (const key of issue.path) {
if (received && typeof received === "object" && key in received) {
received = received[key];
} else {
received = void 0;
break;
}
}
return {
param: issue.path.join(".") || "root",
pointer: `/${issue.path.join("/")}`,
reason: issue.message,
received
};
});
return err({
title: "Invalid configuration parameters",
status: 422,
detail: "One or more config parameters are invalid.",
instance: req.originalUrl,
configSchema: jsonSchema,
errors
});
}
return ok(result.data);
}
return ok(config);
}
var createLRUStore = (max = 1e3) => {
const cache = /* @__PURE__ */ new Map();
return {
get: (id) => {
const t = cache.get(id);
if (!t)
return void 0;
cache.delete(id);
cache.set(id, t);
return t;
},
set: (id, transport) => {
if (cache.has(id)) {
cache.delete(id);
} else if (cache.size >= max) {
const [lruId, lruTransport] = cache.entries().next().value;
lruTransport.close?.();
cache.delete(lruId);
}
cache.set(id, transport);
},
delete: (id) => cache.delete(id)
};
};
function createStatefulServer(createMcpServer, options) {
const app = options?.app ?? (0, import_express.default)();
app.use("/mcp", import_express.default.json());
const sessionStore = options?.sessionStore ?? createLRUStore();
app.post("/mcp", async (req, res) => {
const sessionId = req.headers["mcp-session-id"];
let transport;
if (sessionId && sessionStore.get(sessionId)) {
transport = sessionStore.get(sessionId);
} else if (!sessionId && isInitializeRequest(req.body)) {
const newSessionId = (0, import_node_crypto2.randomUUID)();
transport = new StreamableHTTPServerTransport({
sessionIdGenerator: () => newSessionId,
onsessioninitialized: (sessionId2) => {
sessionStore.set(sessionId2, transport);
}
});
transport.onclose = () => {
if (transport.sessionId) {
sessionStore.delete?.(transport.sessionId);
}
};
const configResult = parseAndValidateConfig(req, options?.schema);
if (!configResult.ok) {
const status = configResult.error.status || 400;
res.status(status).json(configResult.error);
return;
}
const config = configResult.value;
try {
const server = createMcpServer({
sessionId: newSessionId,
config
});
await server.connect(transport);
} catch (error) {
console.error("Error initializing server:", error);
res.status(500).json({
jsonrpc: "2.0",
error: {
code: -32603,
message: "Error initializing server."
},
id: null
});
return;
}
} else {
res.status(400).json({
jsonrpc: "2.0",
error: {
code: -32e3,
message: "Session not found or expired"
},
id: null
});
return;
}
await transport.handleRequest(req, res, req.body);
});
app.get("/.well-known/mcp-config", (req, res) => {
res.set("Content-Type", "application/schema+json; charset=utf-8");
const baseSchema = options?.schema ? zodToJsonSchema2(options.schema) : {
type: "object",
properties: {},
required: []
};
const configSchema2 = {
$schema: "https://json-schema.org/draft/2020-12/schema",
$id: `${req.protocol}://${req.get("host")}/.well-known/mcp-config`,
title: "MCP Session Configuration",
description: "Schema for the /mcp endpoint configuration",
"x-mcp-version": "1.0",
"x-query-style": "dot+bracket",
...baseSchema
};
res.json(configSchema2);
});
app.get("/mcp", async (req, res) => {
const sessionId = req.headers["mcp-session-id"];
if (!sessionId || !sessionStore.get(sessionId)) {
res.status(400).send("Invalid or expired session ID");
return;
}
const transport = sessionStore.get(sessionId);
await transport.handleRequest(req, res);
});
app.delete("/mcp", async (req, res) => {
const sessionId = req.headers["mcp-session-id"];
if (!sessionId) {
res.status(400).json({
jsonrpc: "2.0",
error: {
code: -32600,
message: "Missing mcp-session-id header"
},
id: null
});
return;
}
const transport = sessionStore.get(sessionId);
if (!transport) {
res.status(404).json({
jsonrpc: "2.0",
error: {
code: -32e3,
message: "Session not found or expired"
},
id: null
});
return;
}
transport.close?.();
res.status(204).end();
});
return { app };
}
var import_express2 = __toESM2(require_express2(), 1);
function createStatelessServer(createMcpServer, options) {
const app = options?.app ?? (0, import_express2.default)();
app.use("/mcp", import_express2.default.json());
app.post("/mcp", async (req, res) => {
try {
const configResult = parseAndValidateConfig(req, options?.schema);
if (!configResult.ok) {
const status = configResult.error.status || 400;
res.status(status).json(configResult.error);
return;
}
const config = configResult.value;
const server = createMcpServer({
config
});
const transport = new StreamableHTTPServerTransport({
sessionIdGenerator: void 0
});
res.on("close", () => {
transport.close();
server.close();
});
await server.connect(transport);
await transport.handleRequest(req, res, req.body);
} catch (error) {
console.error("Error handling MCP request:", error);
if (!res.headersSent) {
res.status(500).json({
jsonrpc: "2.0",
error: {
code: -32603,
message: "Internal server error"
},
id: null
});
}
}
});
app.get("/mcp", async (_req, res) => {
res.status(405).json({
jsonrpc: "2.0",
error: {
code: -32e3,
message: "Method not allowed."
},
id: null
});
});
app.delete("/mcp", async (_req, res) => {
res.status(405).json({
jsonrpc: "2.0",
error: {
code: -32e3,
message: "Method not allowed."
},
id: null
});
});
app.get("/.well-known/mcp-config", (req, res) => {
res.set("Content-Type", "application/schema+json; charset=utf-8");
const baseSchema = options?.schema ? zodToJsonSchema2(options.schema) : {
type: "object",
properties: {},
required: []
};
const configSchema2 = {
$schema: "https://json-schema.org/draft/2020-12/schema",
$id: `${req.protocol}://${req.get("host")}/.well-known/mcp-config`,
title: "MCP Session Configuration",
description: "Schema for the /mcp endpoint configuration",
"x-mcp-version": "1.0",
"x-query-style": "dot+bracket",
...baseSchema
};
res.json(configSchema2);
});
return { app };
}
var import_chalk = __toESM2(require_source());
var import_cors = __toESM2(require_lib4());
var import_express3 = __toESM2(require_express2());
var _entry = __toESM2((init_src(), __toCommonJS(src_exports)));
var entry = _entry;
async function startMcpServer() {
try {
const port = process.env.PORT || "8181";
console.log(
`${import_chalk.default.blue("[smithery]")} Starting MCP server on port ${port}`
);
let server;
const app = (0, import_express3.default)();
if (true) {
console.log(`${import_chalk.default.blue("[smithery]")} Injecting cors middleware`);
app.use(
(0, import_cors.default)({
exposedHeaders: ["mcp-session-id"]
})
);
}
if (entry.default && typeof entry.default === "function") {
console.log(
`${import_chalk.default.blue("[smithery]")} Setting up ${entry.stateless ? "stateless" : "stateful"} server`
);
if (entry.stateless) {
server = createStatelessServer(
entry.default,
{
schema: entry.configSchema,
app
}
);
} else {
server = createStatefulServer(entry.default, {
schema: entry.configSchema,
app
});
}
} else {
throw new Error(
"No valid server export found. Please export:\n- export default function({ sessionId, config }) { ... } (stateful)\n- export default function({ config }) { ... } (stateless)"
);
}
server.app.listen(Number.parseInt(port));
console.log(
`${import_chalk.default.green("[smithery]")} MCP server started successfully on port ${port}`
);
} catch (error) {
console.error(
`${import_chalk.default.red("[smithery]")} Failed to start MCP server:`,
error
);
process.exit(1);
}
}
startMcpServer();
/*! Bundled license information:
bytes/index.js:
(*!
* bytes
* Copyright(c) 2012-2014 TJ Holowaychuk
* Copyright(c) 2015 Jed Watson
* MIT Licensed
*)
depd/index.js:
(*!
* depd
* Copyright(c) 2014-2018 Douglas Christopher Wilson
* MIT Licensed
*)
statuses/index.js:
(*!
* statuses
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2016 Douglas Christopher Wilson
* MIT Licensed
*)
toidentifier/index.js:
(*!
* toidentifier
* Copyright(c) 2016 Douglas Christopher Wilson
* MIT Licensed
*)
http-errors/index.js:
(*!
* http-errors
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2016 Douglas Christopher Wilson
* MIT Licensed
*)
unpipe/index.js:
(*!
* unpipe
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*)
raw-body/index.js:
(*!
* raw-body
* Copyright(c) 2013-2014 Jonathan Ong
* Copyright(c) 2014-2022 Douglas Christopher Wilson
* MIT Licensed
*)
content-type/index.js:
(*!
* content-type
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*)
ee-first/index.js:
(*!
* ee-first
* Copyright(c) 2014 Jonathan Ong
* MIT Licensed
*)
on-finished/index.js:
(*!
* on-finished
* Copyright(c) 2013 Jonathan Ong
* Copyright(c) 2014 Douglas Christopher Wilson
* MIT Licensed
*)
body-parser/lib/read.js:
body-parser/lib/types/raw.js:
body-parser/lib/types/text.js:
body-parser/index.js:
(*!
* body-parser
* Copyright(c) 2014-2015 Douglas Christopher Wilson
* MIT Licensed
*)
mime-db/index.js:
mime-db/index.js:
mime-db/index.js:
mime-db/index.js:
(*!
* mime-db
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015-2022 Douglas Christopher Wilson
* MIT Licensed
*)
mime-types/index.js:
mime-types/index.js:
mime-types/index.js:
mime-types/index.js:
(*!
* mime-types
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*)
media-typer/index.js:
(*!
* media-typer
* Copyright(c) 2014-2017 Douglas Christopher Wilson
* MIT Licensed
*)
type-is/index.js:
(*!
* type-is
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2014-2015 Douglas Christopher Wilson
* MIT Licensed
*)
body-parser/lib/types/json.js:
body-parser/lib/types/urlencoded.js:
(*!
* body-parser
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2014-2015 Douglas Christopher Wilson
* MIT Licensed
*)
encodeurl/index.js:
(*!
* encodeurl
* Copyright(c) 2016 Douglas Christopher Wilson
* MIT Licensed
*)
escape-html/index.js:
(*!
* escape-html
* Copyright(c) 2012-2013 TJ Holowaychuk
* Copyright(c) 2015 Andreas Lubbe
* Copyright(c) 2015 Tiancheng "Timothy" Gu
* MIT Licensed
*)
parseurl/index.js:
(*!
* parseurl
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2014-2017 Douglas Christopher Wilson
* MIT Licensed
*)
finalhandler/index.js:
(*!
* finalhandler
* Copyright(c) 2014-2022 Douglas Christopher Wilson
* MIT Licensed
*)
express/lib/view.js:
express/lib/application.js:
express/lib/request.js:
express/lib/express.js:
express/index.js:
(*!
* express
* Copyright(c) 2009-2013 TJ Holowaychuk
* Copyright(c) 2013 Roman Shtylman
* Copyright(c) 2014-2015 Douglas Christopher Wilson
* MIT Licensed
*)
etag/index.js:
(*!
* etag
* Copyright(c) 2014-2016 Douglas Christopher Wilson
* MIT Licensed
*)
forwarded/index.js:
(*!
* forwarded
* Copyright(c) 2014-2017 Douglas Christopher Wilson
* MIT Licensed
*)
proxy-addr/index.js:
(*!
* proxy-addr
* Copyright(c) 2014-2016 Douglas Christopher Wilson
* MIT Licensed
*)
express/lib/utils.js:
express/lib/response.js:
(*!
* express
* Copyright(c) 2009-2013 TJ Holowaychuk
* Copyright(c) 2014-2015 Douglas Christopher Wilson
* MIT Licensed
*)
router/lib/layer.js:
router/lib/route.js:
router/index.js:
(*!
* router
* Copyright(c) 2013 Roman Shtylman
* Copyright(c) 2014-2022 Douglas Christopher Wilson
* MIT Licensed
*)
negotiator/index.js:
(*!
* negotiator
* Copyright(c) 2012 Federico Romero
* Copyright(c) 2012-2014 Isaac Z. Schlueter
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*)
accepts/index.js:
(*!
* accepts
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*)
fresh/index.js:
(*!
* fresh
* Copyright(c) 2012 TJ Holowaychuk
* Copyright(c) 2016-2017 Douglas Christopher Wilson
* MIT Licensed
*)
range-parser/index.js:
(*!
* range-parser
* Copyright(c) 2012-2014 TJ Holowaychuk
* Copyright(c) 2015-2016 Douglas Christopher Wilson
* MIT Licensed
*)
safe-buffer/index.js:
(*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
content-disposition/index.js:
(*!
* content-disposition
* Copyright(c) 2014-2017 Douglas Christopher Wilson
* MIT Licensed
*)
cookie/index.js:
(*!
* cookie
* Copyright(c) 2012-2014 Roman Shtylman
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*)
send/index.js:
(*!
* send
* Copyright(c) 2012 TJ Holowaychuk
* Copyright(c) 2014-2022 Douglas Christopher Wilson
* MIT Licensed
*)
vary/index.js:
(*!
* vary
* Copyright(c) 2014-2017 Douglas Christopher Wilson
* MIT Licensed
*)
serve-static/index.js:
(*!
* serve-static
* Copyright(c) 2010 Sencha Inc.
* Copyright(c) 2011 TJ Holowaychuk
* Copyright(c) 2014-2016 Douglas Christopher Wilson
* MIT Licensed
*)
lodash/lodash.js:
(**
* @license
* Lodash <https://lodash.com/>
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
* Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*)
object-assign/index.js:
(*
object-assign
(c) Sindre Sorhus
@license MIT
*)
*/
/*! Bundled license information:
uri-js/dist/es5/uri.all.js:
(** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js *)
mime-db/index.js:
(*!
* mime-db
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015-2022 Douglas Christopher Wilson
* MIT Licensed
*)
mime-types/index.js:
(*!
* mime-types
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*)
*/
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL3pvZC9saWIvaW5kZXgubWpzIiwgIi4uL25vZGVfbW9kdWxlcy9AbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NyYy90eXBlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9zcmMvc2hhcmVkL3Byb3RvY29sLnRzIiwgIi4uL25vZGVfbW9kdWxlcy91cmktanMvc3JjL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy91cmktanMvc3JjL3NjaGVtZXMvdXJuLXV1aWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzL3VyaS1qcy9zcmMvc2NoZW1lcy91cm4udHMiLCAiLi4vbm9kZV9tb2R1bGVzL3VyaS1qcy9zcmMvc2NoZW1lcy9tYWlsdG8udHMiLCAiLi4vbm9kZV9tb2R1bGVzL3VyaS1qcy9zcmMvc2NoZW1lcy93c3MudHMiLCAiLi4vbm9kZV9tb2R1bGVzL3VyaS1qcy9zcmMvc2NoZW1lcy93cy50cyIsICIuLi9ub2RlX21vZHVsZXMvdXJpLWpzL3NyYy9zY2hlbWVzL2h0dHBzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy91cmktanMvc3JjL3NjaGVtZXMvaHR0cC50cyIsICIuLi9ub2RlX21vZHVsZXMvdXJpLWpzL3NyYy91cmkudHMiLCAiLi4vbm9kZV9tb2R1bGVzL3VyaS1qcy9ub2RlX21vZHVsZXMvcHVueWNvZGUvcHVueWNvZGUuZXM2LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91cmktanMvc3JjL3JlZ2V4cHMtaXJpLnRzIiwgIi4uL25vZGVfbW9kdWxlcy91cmktanMvc3JjL3JlZ2V4cHMtdXJpLnRzIiwgIi4uL25vZGVfbW9kdWxlcy91cmktanMvc3JjL3V0aWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzL2Zhc3QtZGVlcC1lcXVhbC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL3VjczJsZW5ndGguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS91dGlsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2NvbXBpbGUvc2NoZW1hX29iai5qcyIsICIuLi9ub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtdHJhdmVyc2UvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS9yZXNvbHZlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2NvbXBpbGUvZXJyb3JfY2xhc3Nlcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvZmFzdC1qc29uLXN0YWJsZS1zdHJpbmdpZnkvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvdmFsaWRhdGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jYWNoZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL2Zvcm1hdHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvcmVmLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2FsbE9mLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2FueU9mLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2NvbW1lbnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvY29uc3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvY29udGFpbnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvZGVwZW5kZW5jaWVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2VudW0uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvZm9ybWF0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2lmLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2l0ZW1zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL19saW1pdC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9fbGltaXRJdGVtcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9fbGltaXRMZW5ndGguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvX2xpbWl0UHJvcGVydGllcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9tdWx0aXBsZU9mLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL25vdC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9vbmVPZi5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9wYXR0ZXJuLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL3Byb3BlcnRpZXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvcHJvcGVydHlOYW1lcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9yZXF1aXJlZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy91bmlxdWVJdGVtcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL3J1bGVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RhdGEuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS9hc3luYy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9jdXN0b20uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvcmVmcy9qc29uLXNjaGVtYS1kcmFmdC0wNy5qc29uIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RlZmluaXRpb25fc2NoZW1hLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2tleXdvcmQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvcmVmcy9kYXRhLmpzb24iLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvYWp2LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NyYy9zZXJ2ZXIvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9PcHRpb25zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vUmVmcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL2Vycm9yTWVzc2FnZXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2FueS5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvYXJyYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2JpZ2ludC5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvYm9vbGVhbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvYnJhbmRlZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvY2F0Y2guanMiLCAiLi4vbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2RhdGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2RlZmF1bHQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2VmZmVjdHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2VudW0uanMiLCAiLi4vbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2ludGVyc2VjdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvbGl0ZXJhbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvc3RyaW5nLmpzIiwgIi4uL25vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9yZWNvcmQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL21hcC5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvbmF0aXZlRW51bS5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvbmV2ZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL251bGwuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL3VuaW9uLmpzIiwgIi4uL25vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9udWxsYWJsZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvbnVtYmVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9vYmplY3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL29wdGlvbmFsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9waXBlbGluZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvcHJvbWlzZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvc2V0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy90dXBsZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvdW5kZWZpbmVkLmpzIiwgIi4uL25vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy91bmtub3duLmpzIiwgIi4uL25vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9yZWFkb25seS5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3NlbGVjdFBhcnNlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlRGVmLmpzIiwgIi4uL25vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2VUeXBlcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3pvZFRvSnNvblNjaGVtYS5qcyIsICIuLi9ub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NyYy9zZXJ2ZXIvY29tcGxldGFibGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzL0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvc3JjL3NoYXJlZC91cmlUZW1wbGF0ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9zcmMvc2VydmVyL21jcC50cyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvYmluZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL3V0aWxzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9BeGlvc0Vycm9yLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9kZWxheWVkLXN0cmVhbS9saWIvZGVsYXllZF9zdHJlYW0uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2NvbWJpbmVkLXN0cmVhbS9saWIvY29tYmluZWRfc3RyZWFtLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9taW1lLWRiL2RiLmpzb24iLCAiLi4vbm9kZV9tb2R1bGVzL21pbWUtZGIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL21pbWUtdHlwZXMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2FzeW5ja2l0L2xpYi9kZWZlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXN5bmNraXQvbGliL2FzeW5jLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hc3luY2tpdC9saWIvYWJvcnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2FzeW5ja2l0L2xpYi9pdGVyYXRlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hc3luY2tpdC9saWIvc3RhdGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2FzeW5ja2l0L2xpYi90ZXJtaW5hdG9yLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hc3luY2tpdC9wYXJhbGxlbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXN5bmNraXQvc2VyaWFsT3JkZXJlZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXN5bmNraXQvc2VyaWFsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hc3luY2tpdC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZXMtb2JqZWN0LWF0b21zL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VzLWVycm9ycy9ldmFsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvcmFuZ2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VzLWVycm9ycy9yZWYuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VzLWVycm9ycy9zeW50YXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VzLWVycm9ycy90eXBlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvdXJpLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3MvYWJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3MvZmxvb3IuanMiLCAiLi4vbm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9tYXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9taW4uanMiLCAiLi4vbm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9wb3cuanMiLCAiLi4vbm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9yb3VuZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL2lzTmFOLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3Mvc2lnbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvZ29wZC9nT1BELmpzIiwgIi4uL25vZGVfbW9kdWxlcy9nb3BkL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lcy1kZWZpbmUtcHJvcGVydHkvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2hhcy1zeW1ib2xzL3NoYW1zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9oYXMtc3ltYm9scy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZ2V0LXByb3RvL1JlZmxlY3QuZ2V0UHJvdG90eXBlT2YuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2dldC1wcm90by9PYmplY3QuZ2V0UHJvdG90eXBlT2YuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Z1bmN0aW9uLWJpbmQvaW1wbGVtZW50YXRpb24uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Z1bmN0aW9uLWJpbmQvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2NhbGwtYmluZC1hcHBseS1oZWxwZXJzL2Z1bmN0aW9uQ2FsbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMvZnVuY3Rpb25BcHBseS5qcyIsICIuLi9ub2RlX21vZHVsZXMvY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMvcmVmbGVjdEFwcGx5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9jYWxsLWJpbmQtYXBwbHktaGVscGVycy9hY3R1YWxBcHBseS5qcyIsICIuLi9ub2RlX21vZHVsZXMvY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2R1bmRlci1wcm90by9nZXQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2dldC1wcm90by9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvaGFzb3duL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9nZXQtaW50cmluc2ljL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9oYXMtdG9zdHJpbmd0YWcvc2hhbXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VzLXNldC10b3N0cmluZ3RhZy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZm9ybS1kYXRhL2xpYi9wb3B1bGF0ZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvZm9ybS1kYXRhL2xpYi9mb3JtX2RhdGEuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9wbGF0Zm9ybS9ub2RlL2NsYXNzZXMvRm9ybURhdGEuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3RvRm9ybURhdGEuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL0F4aW9zVVJMU2VhcmNoUGFyYW1zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9idWlsZFVSTC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvSW50ZXJjZXB0b3JNYW5hZ2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvZGVmYXVsdHMvdHJhbnNpdGlvbmFsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vbm9kZS9jbGFzc2VzL1VSTFNlYXJjaFBhcmFtcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL3BsYXRmb3JtL25vZGUvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9wbGF0Zm9ybS9jb21tb24vdXRpbHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9wbGF0Zm9ybS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvdG9VUkxFbmNvZGVkRm9ybS5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvZm9ybURhdGFUb0pTT04uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9kZWZhdWx0cy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvcGFyc2VIZWFkZXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9BeGlvc0hlYWRlcnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL3RyYW5zZm9ybURhdGEuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jYW5jZWwvaXNDYW5jZWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jYW5jZWwvQ2FuY2VsZWRFcnJvci5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvc2V0dGxlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9pc0Fic29sdXRlVVJMLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9jb21iaW5lVVJMcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvYnVpbGRGdWxsUGF0aC5qcyIsICIuLi9ub2RlX21vZHVsZXMvcHJveHktZnJvbS1lbnYvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL21zL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvZGVidWcuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9icm93c2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvbm9kZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9mb2xsb3ctcmVkaXJlY3RzL2RlYnVnLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9mb2xsb3ctcmVkaXJlY3RzL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvZW52L2RhdGEuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3BhcnNlUHJvdG9jb2wuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2Zyb21EYXRhVVJJLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9BeGlvc1RyYW5zZm9ybVN0cmVhbS5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvcmVhZEJsb2IuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2Zvcm1EYXRhVG9TdHJlYW0uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL1psaWJIZWFkZXJUcmFuc2Zvcm1TdHJlYW0uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2NhbGxiYWNraWZ5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9zcGVlZG9tZXRlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvdGhyb3R0bGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3Byb2dyZXNzRXZlbnRSZWR1Y2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvYWRhcHRlcnMvaHR0cC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNVUkxTYW1lT3JpZ2luLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9jb29raWVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9tZXJnZUNvbmZpZy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvcmVzb2x2ZUNvbmZpZy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2FkYXB0ZXJzL3hoci5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvY29tcG9zZVNpZ25hbHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3RyYWNrU3RyZWFtLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvYWRhcHRlcnMvZmV0Y2guanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9hZGFwdGVycy9hZGFwdGVycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvZGlzcGF0Y2hSZXF1ZXN0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy92YWxpZGF0b3IuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL0F4aW9zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY2FuY2VsL0NhbmNlbFRva2VuLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9zcHJlYWQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2lzQXhpb3NFcnJvci5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvSHR0cFN0YXR1c0NvZGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9heGlvcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvaW5kZXguanMiLCAiLi4vc3JjL2luZGV4LnRzIiwgImJvb3RzdHJhcDp2aXJ0dWFsOmJvb3RzdHJhcCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIHV0aWw7XG4oZnVuY3Rpb24gKHV0aWwpIHtcbiAgICB1dGlsLmFzc2VydEVxdWFsID0gKHZhbCkgPT4gdmFsO1xuICAgIGZ1bmN0aW9uIGFzc2VydElzKF9hcmcpIHsgfVxuICAgIHV0aWwuYXNzZXJ0SXMgPSBhc3NlcnRJcztcbiAgICBmdW5jdGlvbiBhc3NlcnROZXZlcihfeCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICB9XG4gICAgdXRpbC5hc3NlcnROZXZlciA9IGFzc2VydE5ldmVyO1xuICAgIHV0aWwuYXJyYXlUb0VudW0gPSAoaXRlbXMpID0+IHtcbiAgICAgICAgY29uc3Qgb2JqID0ge307XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgb2JqW2l0ZW1dID0gaXRlbTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG4gICAgdXRpbC5nZXRWYWxpZEVudW1WYWx1ZXMgPSAob2JqKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbGlkS2V5cyA9IHV0aWwub2JqZWN0S2V5cyhvYmopLmZpbHRlcigoaykgPT4gdHlwZW9mIG9ialtvYmpba11dICE9PSBcIm51bWJlclwiKTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBrIG9mIHZhbGlkS2V5cykge1xuICAgICAgICAgICAgZmlsdGVyZWRba10gPSBvYmpba107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHV0aWwub2JqZWN0VmFsdWVzKGZpbHRlcmVkKTtcbiAgICB9O1xuICAgIHV0aWwub2JqZWN0VmFsdWVzID0gKG9iaikgPT4ge1xuICAgICAgICByZXR1cm4gdXRpbC5vYmplY3RLZXlzKG9iaikubWFwKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqW2VdO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHV0aWwub2JqZWN0S2V5cyA9IHR5cGVvZiBPYmplY3Qua2V5cyA9PT0gXCJmdW5jdGlvblwiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgYmFuL2JhblxuICAgICAgICA/IChvYmopID0+IE9iamVjdC5rZXlzKG9iaikgLy8gZXNsaW50LWRpc2FibGUtbGluZSBiYW4vYmFuXG4gICAgICAgIDogKG9iamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgICAgIH07XG4gICAgdXRpbC5maW5kID0gKGFyciwgY2hlY2tlcikgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXJyKSB7XG4gICAgICAgICAgICBpZiAoY2hlY2tlcihpdGVtKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH07XG4gICAgdXRpbC5pc0ludGVnZXIgPSB0eXBlb2YgTnVtYmVyLmlzSW50ZWdlciA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gKHZhbCkgPT4gTnVtYmVyLmlzSW50ZWdlcih2YWwpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgYmFuL2JhblxuICAgICAgICA6ICh2YWwpID0+IHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIgJiYgaXNGaW5pdGUodmFsKSAmJiBNYXRoLmZsb29yKHZhbCkgPT09IHZhbDtcbiAgICBmdW5jdGlvbiBqb2luVmFsdWVzKGFycmF5LCBzZXBhcmF0b3IgPSBcIiB8IFwiKSB7XG4gICAgICAgIHJldHVybiBhcnJheVxuICAgICAgICAgICAgLm1hcCgodmFsKSA9PiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIiA/IGAnJHt2YWx9J2AgOiB2YWwpKVxuICAgICAgICAgICAgLmpvaW4oc2VwYXJhdG9yKTtcbiAgICB9XG4gICAgdXRpbC5qb2luVmFsdWVzID0gam9pblZhbHVlcztcbiAgICB1dGlsLmpzb25TdHJpbmdpZnlSZXBsYWNlciA9IChfLCB2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcbn0pKHV0aWwgfHwgKHV0aWwgPSB7fSkpO1xudmFyIG9iamVjdFV0aWw7XG4oZnVuY3Rpb24gKG9iamVjdFV0aWwpIHtcbiAgICBvYmplY3RVdGlsLm1lcmdlU2hhcGVzID0gKGZpcnN0LCBzZWNvbmQpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmZpcnN0LFxuICAgICAgICAgICAgLi4uc2Vjb25kLCAvLyBzZWNvbmQgb3ZlcndyaXRlcyBmaXJzdFxuICAgICAgICB9O1xuICAgIH07XG59KShvYmplY3RVdGlsIHx8IChvYmplY3RVdGlsID0ge30pKTtcbmNvbnN0IFpvZFBhcnNlZFR5cGUgPSB1dGlsLmFycmF5VG9FbnVtKFtcbiAgICBcInN0cmluZ1wiLFxuICAgIFwibmFuXCIsXG4gICAgXCJudW1iZXJcIixcbiAgICBcImludGVnZXJcIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJkYXRlXCIsXG4gICAgXCJiaWdpbnRcIixcbiAgICBcInN5bWJvbFwiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcInVuZGVmaW5lZFwiLFxuICAgIFwibnVsbFwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcIm9iamVjdFwiLFxuICAgIFwidW5rbm93blwiLFxuICAgIFwicHJvbWlzZVwiLFxuICAgIFwidm9pZFwiLFxuICAgIFwibmV2ZXJcIixcbiAgICBcIm1hcFwiLFxuICAgIFwic2V0XCIsXG5dKTtcbmNvbnN0IGdldFBhcnNlZFR5cGUgPSAoZGF0YSkgPT4ge1xuICAgIGNvbnN0IHQgPSB0eXBlb2YgZGF0YTtcbiAgICBzd2l0Y2ggKHQpIHtcbiAgICAgICAgY2FzZSBcInVuZGVmaW5lZFwiOlxuICAgICAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkO1xuICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5zdHJpbmc7XG4gICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgIHJldHVybiBpc05hTihkYXRhKSA/IFpvZFBhcnNlZFR5cGUubmFuIDogWm9kUGFyc2VkVHlwZS5udW1iZXI7XG4gICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5ib29sZWFuO1xuICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLmZ1bmN0aW9uO1xuICAgICAgICBjYXNlIFwiYmlnaW50XCI6XG4gICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5iaWdpbnQ7XG4gICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLnN5bWJvbDtcbiAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5hcnJheTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUubnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLnRoZW4gJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgZGF0YS50aGVuID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgICAgICBkYXRhLmNhdGNoICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIGRhdGEuY2F0Y2ggPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLnByb21pc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIE1hcCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkYXRhIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUubWFwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBTZXQgIT09IFwidW5kZWZpbmVkXCIgJiYgZGF0YSBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgRGF0ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkYXRhIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLmRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5vYmplY3Q7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS51bmtub3duO1xuICAgIH1cbn07XG5cbmNvbnN0IFpvZElzc3VlQ29kZSA9IHV0aWwuYXJyYXlUb0VudW0oW1xuICAgIFwiaW52YWxpZF90eXBlXCIsXG4gICAgXCJpbnZhbGlkX2xpdGVyYWxcIixcbiAgICBcImN1c3RvbVwiLFxuICAgIFwiaW52YWxpZF91bmlvblwiLFxuICAgIFwiaW52YWxpZF91bmlvbl9kaXNjcmltaW5hdG9yXCIsXG4gICAgXCJpbnZhbGlkX2VudW1fdmFsdWVcIixcbiAgICBcInVucmVjb2duaXplZF9rZXlzXCIsXG4gICAgXCJpbnZhbGlkX2FyZ3VtZW50c1wiLFxuICAgIFwiaW52YWxpZF9yZXR1cm5fdHlwZVwiLFxuICAgIFwiaW52YWxpZF9kYXRlXCIsXG4gICAgXCJpbnZhbGlkX3N0cmluZ1wiLFxuICAgIFwidG9vX3NtYWxsXCIsXG4gICAgXCJ0b29fYmlnXCIsXG4gICAgXCJpbnZhbGlkX2ludGVyc2VjdGlvbl90eXBlc1wiLFxuICAgIFwibm90X211bHRpcGxlX29mXCIsXG4gICAgXCJub3RfZmluaXRlXCIsXG5dKTtcbmNvbnN0IHF1b3RlbGVzc0pzb24gPSAob2JqKSA9PiB7XG4gICAgY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KG9iaiwgbnVsbCwgMik7XG4gICAgcmV0dXJuIGpzb24ucmVwbGFjZSgvXCIoW15cIl0rKVwiOi9nLCBcIiQxOlwiKTtcbn07XG5jbGFzcyBab2RFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBnZXQgZXJyb3JzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc3N1ZXM7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGlzc3Vlcykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlzc3VlcyA9IFtdO1xuICAgICAgICB0aGlzLmFkZElzc3VlID0gKHN1YikgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc3N1ZXMgPSBbLi4udGhpcy5pc3N1ZXMsIHN1Yl07XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYWRkSXNzdWVzID0gKHN1YnMgPSBbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc3N1ZXMgPSBbLi4udGhpcy5pc3N1ZXMsIC4uLnN1YnNdO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBhY3R1YWxQcm90byA9IG5ldy50YXJnZXQucHJvdG90eXBlO1xuICAgICAgICBpZiAoT2JqZWN0LnNldFByb3RvdHlwZU9mKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgYmFuL2JhblxuICAgICAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIGFjdHVhbFByb3RvKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX19wcm90b19fID0gYWN0dWFsUHJvdG87XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5uYW1lID0gXCJab2RFcnJvclwiO1xuICAgICAgICB0aGlzLmlzc3VlcyA9IGlzc3VlcztcbiAgICB9XG4gICAgZm9ybWF0KF9tYXBwZXIpIHtcbiAgICAgICAgY29uc3QgbWFwcGVyID0gX21hcHBlciB8fFxuICAgICAgICAgICAgZnVuY3Rpb24gKGlzc3VlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzc3VlLm1lc3NhZ2U7XG4gICAgICAgICAgICB9O1xuICAgICAgICBjb25zdCBmaWVsZEVycm9ycyA9IHsgX2Vycm9yczogW10gfTtcbiAgICAgICAgY29uc3QgcHJvY2Vzc0Vycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGlzc3VlIG9mIGVycm9yLmlzc3Vlcykge1xuICAgICAgICAgICAgICAgIGlmIChpc3N1ZS5jb2RlID09PSBcImludmFsaWRfdW5pb25cIikge1xuICAgICAgICAgICAgICAgICAgICBpc3N1ZS51bmlvbkVycm9ycy5tYXAocHJvY2Vzc0Vycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUuY29kZSA9PT0gXCJpbnZhbGlkX3JldHVybl90eXBlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0Vycm9yKGlzc3VlLnJldHVyblR5cGVFcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLmNvZGUgPT09IFwiaW52YWxpZF9hcmd1bWVudHNcIikge1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRXJyb3IoaXNzdWUuYXJndW1lbnRzRXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpc3N1ZS5wYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZEVycm9ycy5fZXJyb3JzLnB1c2gobWFwcGVyKGlzc3VlKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY3VyciA9IGZpZWxkRXJyb3JzO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgaXNzdWUucGF0aC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gaXNzdWUucGF0aFtpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlcm1pbmFsID0gaSA9PT0gaXNzdWUucGF0aC5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXJtaW5hbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJbZWxdID0gY3VycltlbF0gfHwgeyBfZXJyb3JzOiBbXSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmICh0eXBlb2YgZWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGN1cnJbZWxdID0gY3VycltlbF0gfHwgeyBfZXJyb3JzOiBbXSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIH0gZWxzZSBpZiAodHlwZW9mIGVsID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBjb25zdCBlcnJvckFycmF5OiBhbnkgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGVycm9yQXJyYXkuX2Vycm9ycyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgY3VycltlbF0gPSBjdXJyW2VsXSB8fCBlcnJvckFycmF5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJbZWxdID0gY3VycltlbF0gfHwgeyBfZXJyb3JzOiBbXSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJbZWxdLl9lcnJvcnMucHVzaChtYXBwZXIoaXNzdWUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnIgPSBjdXJyW2VsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcHJvY2Vzc0Vycm9yKHRoaXMpO1xuICAgICAgICByZXR1cm4gZmllbGRFcnJvcnM7XG4gICAgfVxuICAgIHN0YXRpYyBhc3NlcnQodmFsdWUpIHtcbiAgICAgICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBab2RFcnJvcikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm90IGEgWm9kRXJyb3I6ICR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2U7XG4gICAgfVxuICAgIGdldCBtZXNzYWdlKCkge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5pc3N1ZXMsIHV0aWwuanNvblN0cmluZ2lmeVJlcGxhY2VyLCAyKTtcbiAgICB9XG4gICAgZ2V0IGlzRW1wdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzc3Vlcy5sZW5ndGggPT09IDA7XG4gICAgfVxuICAgIGZsYXR0ZW4obWFwcGVyID0gKGlzc3VlKSA9PiBpc3N1ZS5tZXNzYWdlKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0ge307XG4gICAgICAgIGNvbnN0IGZvcm1FcnJvcnMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBzdWIgb2YgdGhpcy5pc3N1ZXMpIHtcbiAgICAgICAgICAgIGlmIChzdWIucGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgZmllbGRFcnJvcnNbc3ViLnBhdGhbMF1dID0gZmllbGRFcnJvcnNbc3ViLnBhdGhbMF1dIHx8IFtdO1xuICAgICAgICAgICAgICAgIGZpZWxkRXJyb3JzW3N1Yi5wYXRoWzBdXS5wdXNoKG1hcHBlcihzdWIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvcm1FcnJvcnMucHVzaChtYXBwZXIoc3ViKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZm9ybUVycm9ycywgZmllbGRFcnJvcnMgfTtcbiAgICB9XG4gICAgZ2V0IGZvcm1FcnJvcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZsYXR0ZW4oKTtcbiAgICB9XG59XG5ab2RFcnJvci5jcmVhdGUgPSAoaXNzdWVzKSA9PiB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgWm9kRXJyb3IoaXNzdWVzKTtcbiAgICByZXR1cm4gZXJyb3I7XG59O1xuXG5jb25zdCBlcnJvck1hcCA9IChpc3N1ZSwgX2N0eCkgPT4ge1xuICAgIGxldCBtZXNzYWdlO1xuICAgIHN3aXRjaCAoaXNzdWUuY29kZSkge1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGU6XG4gICAgICAgICAgICBpZiAoaXNzdWUucmVjZWl2ZWQgPT09IFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IFwiUmVxdWlyZWRcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgRXhwZWN0ZWQgJHtpc3N1ZS5leHBlY3RlZH0sIHJlY2VpdmVkICR7aXNzdWUucmVjZWl2ZWR9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX2xpdGVyYWw6XG4gICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgbGl0ZXJhbCB2YWx1ZSwgZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeShpc3N1ZS5leHBlY3RlZCwgdXRpbC5qc29uU3RyaW5naWZ5UmVwbGFjZXIpfWA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUudW5yZWNvZ25pemVkX2tleXM6XG4gICAgICAgICAgICBtZXNzYWdlID0gYFVucmVjb2duaXplZCBrZXkocykgaW4gb2JqZWN0OiAke3V0aWwuam9pblZhbHVlcyhpc3N1ZS5rZXlzLCBcIiwgXCIpfWA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF91bmlvbjpcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBpbnB1dGA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF91bmlvbl9kaXNjcmltaW5hdG9yOlxuICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGRpc2NyaW1pbmF0b3IgdmFsdWUuIEV4cGVjdGVkICR7dXRpbC5qb2luVmFsdWVzKGlzc3VlLm9wdGlvbnMpfWA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9lbnVtX3ZhbHVlOlxuICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGVudW0gdmFsdWUuIEV4cGVjdGVkICR7dXRpbC5qb2luVmFsdWVzKGlzc3VlLm9wdGlvbnMpfSwgcmVjZWl2ZWQgJyR7aXNzdWUucmVjZWl2ZWR9J2A7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9hcmd1bWVudHM6XG4gICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgZnVuY3Rpb24gYXJndW1lbnRzYDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX3JldHVybl90eXBlOlxuICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGZ1bmN0aW9uIHJldHVybiB0eXBlYDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX2RhdGU6XG4gICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgZGF0ZWA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmc6XG4gICAgICAgICAgICBpZiAodHlwZW9mIGlzc3VlLnZhbGlkYXRpb24gPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoXCJpbmNsdWRlc1wiIGluIGlzc3VlLnZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGlucHV0OiBtdXN0IGluY2x1ZGUgXCIke2lzc3VlLnZhbGlkYXRpb24uaW5jbHVkZXN9XCJgO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGlzc3VlLnZhbGlkYXRpb24ucG9zaXRpb24gPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgJHttZXNzYWdlfSBhdCBvbmUgb3IgbW9yZSBwb3NpdGlvbnMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICR7aXNzdWUudmFsaWRhdGlvbi5wb3NpdGlvbn1gO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKFwic3RhcnRzV2l0aFwiIGluIGlzc3VlLnZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGlucHV0OiBtdXN0IHN0YXJ0IHdpdGggXCIke2lzc3VlLnZhbGlkYXRpb24uc3RhcnRzV2l0aH1cImA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKFwiZW5kc1dpdGhcIiBpbiBpc3N1ZS52YWxpZGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBpbnB1dDogbXVzdCBlbmQgd2l0aCBcIiR7aXNzdWUudmFsaWRhdGlvbi5lbmRzV2l0aH1cImA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB1dGlsLmFzc2VydE5ldmVyKGlzc3VlLnZhbGlkYXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnZhbGlkYXRpb24gIT09IFwicmVnZXhcIikge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCAke2lzc3VlLnZhbGlkYXRpb259YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBcIkludmFsaWRcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS50b29fc21hbGw6XG4gICAgICAgICAgICBpZiAoaXNzdWUudHlwZSA9PT0gXCJhcnJheVwiKVxuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgQXJyYXkgbXVzdCBjb250YWluICR7aXNzdWUuZXhhY3QgPyBcImV4YWN0bHlcIiA6IGlzc3VlLmluY2x1c2l2ZSA/IGBhdCBsZWFzdGAgOiBgbW9yZSB0aGFuYH0gJHtpc3N1ZS5taW5pbXVtfSBlbGVtZW50KHMpYDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBTdHJpbmcgbXVzdCBjb250YWluICR7aXNzdWUuZXhhY3QgPyBcImV4YWN0bHlcIiA6IGlzc3VlLmluY2x1c2l2ZSA/IGBhdCBsZWFzdGAgOiBgb3ZlcmB9ICR7aXNzdWUubWluaW11bX0gY2hhcmFjdGVyKHMpYDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwibnVtYmVyXCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBOdW1iZXIgbXVzdCBiZSAke2lzc3VlLmV4YWN0XG4gICAgICAgICAgICAgICAgICAgID8gYGV4YWN0bHkgZXF1YWwgdG8gYFxuICAgICAgICAgICAgICAgICAgICA6IGlzc3VlLmluY2x1c2l2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYGdyZWF0ZXIgdGhhbiBgfSR7aXNzdWUubWluaW11bX1gO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJkYXRlXCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBEYXRlIG11c3QgYmUgJHtpc3N1ZS5leGFjdFxuICAgICAgICAgICAgICAgICAgICA/IGBleGFjdGx5IGVxdWFsIHRvIGBcbiAgICAgICAgICAgICAgICAgICAgOiBpc3N1ZS5pbmNsdXNpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGBncmVhdGVyIHRoYW4gYH0ke25ldyBEYXRlKE51bWJlcihpc3N1ZS5taW5pbXVtKSl9YDtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gXCJJbnZhbGlkIGlucHV0XCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUudG9vX2JpZzpcbiAgICAgICAgICAgIGlmIChpc3N1ZS50eXBlID09PSBcImFycmF5XCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBBcnJheSBtdXN0IGNvbnRhaW4gJHtpc3N1ZS5leGFjdCA/IGBleGFjdGx5YCA6IGlzc3VlLmluY2x1c2l2ZSA/IGBhdCBtb3N0YCA6IGBsZXNzIHRoYW5gfSAke2lzc3VlLm1heGltdW19IGVsZW1lbnQocylgO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gYFN0cmluZyBtdXN0IGNvbnRhaW4gJHtpc3N1ZS5leGFjdCA/IGBleGFjdGx5YCA6IGlzc3VlLmluY2x1c2l2ZSA/IGBhdCBtb3N0YCA6IGB1bmRlcmB9ICR7aXNzdWUubWF4aW11bX0gY2hhcmFjdGVyKHMpYDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwibnVtYmVyXCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBOdW1iZXIgbXVzdCBiZSAke2lzc3VlLmV4YWN0XG4gICAgICAgICAgICAgICAgICAgID8gYGV4YWN0bHlgXG4gICAgICAgICAgICAgICAgICAgIDogaXNzdWUuaW5jbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGBsZXNzIHRoYW4gb3IgZXF1YWwgdG9gXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGBsZXNzIHRoYW5gfSAke2lzc3VlLm1heGltdW19YDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwiYmlnaW50XCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBCaWdJbnQgbXVzdCBiZSAke2lzc3VlLmV4YWN0XG4gICAgICAgICAgICAgICAgICAgID8gYGV4YWN0bHlgXG4gICAgICAgICAgICAgICAgICAgIDogaXNzdWUuaW5jbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGBsZXNzIHRoYW4gb3IgZXF1YWwgdG9gXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGBsZXNzIHRoYW5gfSAke2lzc3VlLm1heGltdW19YDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwiZGF0ZVwiKVxuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgRGF0ZSBtdXN0IGJlICR7aXNzdWUuZXhhY3RcbiAgICAgICAgICAgICAgICAgICAgPyBgZXhhY3RseWBcbiAgICAgICAgICAgICAgICAgICAgOiBpc3N1ZS5pbmNsdXNpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYHNtYWxsZXIgdGhhbiBvciBlcXVhbCB0b2BcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYHNtYWxsZXIgdGhhbmB9ICR7bmV3IERhdGUoTnVtYmVyKGlzc3VlLm1heGltdW0pKX1gO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBcIkludmFsaWQgaW5wdXRcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5jdXN0b206XG4gICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgaW5wdXRgO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgWm9kSXNzdWVDb2RlLmludmFsaWRfaW50ZXJzZWN0aW9uX3R5cGVzOlxuICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnRlcnNlY3Rpb24gcmVzdWx0cyBjb3VsZCBub3QgYmUgbWVyZ2VkYDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5ub3RfbXVsdGlwbGVfb2Y6XG4gICAgICAgICAgICBtZXNzYWdlID0gYE51bWJlciBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgJHtpc3N1ZS5tdWx0aXBsZU9mfWA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUubm90X2Zpbml0ZTpcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBcIk51bWJlciBtdXN0IGJlIGZpbml0ZVwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBtZXNzYWdlID0gX2N0eC5kZWZhdWx0RXJyb3I7XG4gICAgICAgICAgICB1dGlsLmFzc2VydE5ldmVyKGlzc3VlKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgbWVzc2FnZSB9O1xufTtcblxubGV0IG92ZXJyaWRlRXJyb3JNYXAgPSBlcnJvck1hcDtcbmZ1bmN0aW9uIHNldEVycm9yTWFwKG1hcCkge1xuICAgIG92ZXJyaWRlRXJyb3JNYXAgPSBtYXA7XG59XG5mdW5jdGlvbiBnZXRFcnJvck1hcCgpIHtcbiAgICByZXR1cm4gb3ZlcnJpZGVFcnJvck1hcDtcbn1cblxuY29uc3QgbWFrZUlzc3VlID0gKHBhcmFtcykgPT4ge1xuICAgIGNvbnN0IHsgZGF0YSwgcGF0aCwgZXJyb3JNYXBzLCBpc3N1ZURhdGEgfSA9IHBhcmFtcztcbiAgICBjb25zdCBmdWxsUGF0aCA9IFsuLi5wYXRoLCAuLi4oaXNzdWVEYXRhLnBhdGggfHwgW10pXTtcbiAgICBjb25zdCBmdWxsSXNzdWUgPSB7XG4gICAgICAgIC4uLmlzc3VlRGF0YSxcbiAgICAgICAgcGF0aDogZnVsbFBhdGgsXG4gICAgfTtcbiAgICBpZiAoaXNzdWVEYXRhLm1lc3NhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uaXNzdWVEYXRhLFxuICAgICAgICAgICAgcGF0aDogZnVsbFBhdGgsXG4gICAgICAgICAgICBtZXNzYWdlOiBpc3N1ZURhdGEubWVzc2FnZSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgbGV0IGVycm9yTWVzc2FnZSA9IFwiXCI7XG4gICAgY29uc3QgbWFwcyA9IGVycm9yTWFwc1xuICAgICAgICAuZmlsdGVyKChtKSA9PiAhIW0pXG4gICAgICAgIC5zbGljZSgpXG4gICAgICAgIC5yZXZlcnNlKCk7XG4gICAgZm9yIChjb25zdCBtYXAgb2YgbWFwcykge1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSBtYXAoZnVsbElzc3VlLCB7IGRhdGEsIGRlZmF1bHRFcnJvcjogZXJyb3JNZXNzYWdlIH0pLm1lc3NhZ2U7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlzc3VlRGF0YSxcbiAgICAgICAgcGF0aDogZnVsbFBhdGgsXG4gICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICB9O1xufTtcbmNvbnN0IEVNUFRZX1BBVEggPSBbXTtcbmZ1bmN0aW9uIGFkZElzc3VlVG9Db250ZXh0KGN0eCwgaXNzdWVEYXRhKSB7XG4gICAgY29uc3Qgb3ZlcnJpZGVNYXAgPSBnZXRFcnJvck1hcCgpO1xuICAgIGNvbnN0IGlzc3VlID0gbWFrZUlzc3VlKHtcbiAgICAgICAgaXNzdWVEYXRhOiBpc3N1ZURhdGEsXG4gICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgZXJyb3JNYXBzOiBbXG4gICAgICAgICAgICBjdHguY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcCwgLy8gY29udGV4dHVhbCBlcnJvciBtYXAgaXMgZmlyc3QgcHJpb3JpdHlcbiAgICAgICAgICAgIGN0eC5zY2hlbWFFcnJvck1hcCwgLy8gdGhlbiBzY2hlbWEtYm91bmQgbWFwIGlmIGF2YWlsYWJsZVxuICAgICAgICAgICAgb3ZlcnJpZGVNYXAsIC8vIHRoZW4gZ2xvYmFsIG92ZXJyaWRlIG1hcFxuICAgICAgICAgICAgb3ZlcnJpZGVNYXAgPT09IGVycm9yTWFwID8gdW5kZWZpbmVkIDogZXJyb3JNYXAsIC8vIHRoZW4gZ2xvYmFsIGRlZmF1bHQgbWFwXG4gICAgICAgIF0uZmlsdGVyKCh4KSA9PiAhIXgpLFxuICAgIH0pO1xuICAgIGN0eC5jb21tb24uaXNzdWVzLnB1c2goaXNzdWUpO1xufVxuY2xhc3MgUGFyc2VTdGF0dXMge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gXCJ2YWxpZFwiO1xuICAgIH1cbiAgICBkaXJ0eSgpIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IFwidmFsaWRcIilcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBcImRpcnR5XCI7XG4gICAgfVxuICAgIGFib3J0KCkge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAhPT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gXCJhYm9ydGVkXCI7XG4gICAgfVxuICAgIHN0YXRpYyBtZXJnZUFycmF5KHN0YXR1cywgcmVzdWx0cykge1xuICAgICAgICBjb25zdCBhcnJheVZhbHVlID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBpZiAocy5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgaWYgKHMuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICBhcnJheVZhbHVlLnB1c2gocy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBhcnJheVZhbHVlIH07XG4gICAgfVxuICAgIHN0YXRpYyBhc3luYyBtZXJnZU9iamVjdEFzeW5jKHN0YXR1cywgcGFpcnMpIHtcbiAgICAgICAgY29uc3Qgc3luY1BhaXJzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcGFpciBvZiBwYWlycykge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gYXdhaXQgcGFpci5rZXk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhaXIudmFsdWU7XG4gICAgICAgICAgICBzeW5jUGFpcnMucHVzaCh7XG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyhzdGF0dXMsIHN5bmNQYWlycyk7XG4gICAgfVxuICAgIHN0YXRpYyBtZXJnZU9iamVjdFN5bmMoc3RhdHVzLCBwYWlycykge1xuICAgICAgICBjb25zdCBmaW5hbE9iamVjdCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IHBhaXIgb2YgcGFpcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsga2V5LCB2YWx1ZSB9ID0gcGFpcjtcbiAgICAgICAgICAgIGlmIChrZXkuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgaWYgKGtleS5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgIGlmIChrZXkudmFsdWUgIT09IFwiX19wcm90b19fXCIgJiZcbiAgICAgICAgICAgICAgICAodHlwZW9mIHZhbHVlLnZhbHVlICE9PSBcInVuZGVmaW5lZFwiIHx8IHBhaXIuYWx3YXlzU2V0KSkge1xuICAgICAgICAgICAgICAgIGZpbmFsT2JqZWN0W2tleS52YWx1ZV0gPSB2YWx1ZS52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGZpbmFsT2JqZWN0IH07XG4gICAgfVxufVxuY29uc3QgSU5WQUxJRCA9IE9iamVjdC5mcmVlemUoe1xuICAgIHN0YXR1czogXCJhYm9ydGVkXCIsXG59KTtcbmNvbnN0IERJUlRZID0gKHZhbHVlKSA9PiAoeyBzdGF0dXM6IFwiZGlydHlcIiwgdmFsdWUgfSk7XG5jb25zdCBPSyA9ICh2YWx1ZSkgPT4gKHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlIH0pO1xuY29uc3QgaXNBYm9ydGVkID0gKHgpID0+IHguc3RhdHVzID09PSBcImFib3J0ZWRcIjtcbmNvbnN0IGlzRGlydHkgPSAoeCkgPT4geC5zdGF0dXMgPT09IFwiZGlydHlcIjtcbmNvbnN0IGlzVmFsaWQgPSAoeCkgPT4geC5zdGF0dXMgPT09IFwidmFsaWRcIjtcbmNvbnN0IGlzQXN5bmMgPSAoeCkgPT4gdHlwZW9mIFByb21pc2UgIT09IFwidW5kZWZpbmVkXCIgJiYgeCBpbnN0YW5jZW9mIFByb21pc2U7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxucHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG5SRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG5cclxuZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcclxufVxyXG5cclxuZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZFNldChyZWNlaXZlciwgc3RhdGUsIHZhbHVlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XHJcbn1cclxuXHJcbnR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG59O1xuXG52YXIgZXJyb3JVdGlsO1xuKGZ1bmN0aW9uIChlcnJvclV0aWwpIHtcbiAgICBlcnJvclV0aWwuZXJyVG9PYmogPSAobWVzc2FnZSkgPT4gdHlwZW9mIG1lc3NhZ2UgPT09IFwic3RyaW5nXCIgPyB7IG1lc3NhZ2UgfSA6IG1lc3NhZ2UgfHwge307XG4gICAgZXJyb3JVdGlsLnRvU3RyaW5nID0gKG1lc3NhZ2UpID0+IHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiID8gbWVzc2FnZSA6IG1lc3NhZ2UgPT09IG51bGwgfHwgbWVzc2FnZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbWVzc2FnZS5tZXNzYWdlO1xufSkoZXJyb3JVdGlsIHx8IChlcnJvclV0aWwgPSB7fSkpO1xuXG52YXIgX1pvZEVudW1fY2FjaGUsIF9ab2ROYXRpdmVFbnVtX2NhY2hlO1xuY2xhc3MgUGFyc2VJbnB1dExhenlQYXRoIHtcbiAgICBjb25zdHJ1Y3RvcihwYXJlbnQsIHZhbHVlLCBwYXRoLCBrZXkpIHtcbiAgICAgICAgdGhpcy5fY2FjaGVkUGF0aCA9IFtdO1xuICAgICAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcbiAgICAgICAgdGhpcy5kYXRhID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3BhdGggPSBwYXRoO1xuICAgICAgICB0aGlzLl9rZXkgPSBrZXk7XG4gICAgfVxuICAgIGdldCBwYXRoKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2NhY2hlZFBhdGgubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fa2V5IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRQYXRoLnB1c2goLi4udGhpcy5fcGF0aCwgLi4udGhpcy5fa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlZFBhdGgucHVzaCguLi50aGlzLl9wYXRoLCB0aGlzLl9rZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9jYWNoZWRQYXRoO1xuICAgIH1cbn1cbmNvbnN0IGhhbmRsZVJlc3VsdCA9IChjdHgsIHJlc3VsdCkgPT4ge1xuICAgIGlmIChpc1ZhbGlkKHJlc3VsdCkpIHtcbiAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogcmVzdWx0LnZhbHVlIH07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoIWN0eC5jb21tb24uaXNzdWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVmFsaWRhdGlvbiBmYWlsZWQgYnV0IG5vIGlzc3VlcyBkZXRlY3RlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgZ2V0IGVycm9yKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9lcnJvcilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9yO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFpvZEVycm9yKGN0eC5jb21tb24uaXNzdWVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvcjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufTtcbmZ1bmN0aW9uIHByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSB7XG4gICAgaWYgKCFwYXJhbXMpXG4gICAgICAgIHJldHVybiB7fTtcbiAgICBjb25zdCB7IGVycm9yTWFwLCBpbnZhbGlkX3R5cGVfZXJyb3IsIHJlcXVpcmVkX2Vycm9yLCBkZXNjcmlwdGlvbiB9ID0gcGFyYW1zO1xuICAgIGlmIChlcnJvck1hcCAmJiAoaW52YWxpZF90eXBlX2Vycm9yIHx8IHJlcXVpcmVkX2Vycm9yKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbid0IHVzZSBcImludmFsaWRfdHlwZV9lcnJvclwiIG9yIFwicmVxdWlyZWRfZXJyb3JcIiBpbiBjb25qdW5jdGlvbiB3aXRoIGN1c3RvbSBlcnJvciBtYXAuYCk7XG4gICAgfVxuICAgIGlmIChlcnJvck1hcClcbiAgICAgICAgcmV0dXJuIHsgZXJyb3JNYXA6IGVycm9yTWFwLCBkZXNjcmlwdGlvbiB9O1xuICAgIGNvbnN0IGN1c3RvbU1hcCA9IChpc3MsIGN0eCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCB7IG1lc3NhZ2UgfSA9IHBhcmFtcztcbiAgICAgICAgaWYgKGlzcy5jb2RlID09PSBcImludmFsaWRfZW51bV92YWx1ZVwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBtZXNzYWdlOiBtZXNzYWdlICE9PSBudWxsICYmIG1lc3NhZ2UgIT09IHZvaWQgMCA/IG1lc3NhZ2UgOiBjdHguZGVmYXVsdEVycm9yIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBjdHguZGF0YSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgcmV0dXJuIHsgbWVzc2FnZTogKF9hID0gbWVzc2FnZSAhPT0gbnVsbCAmJiBtZXNzYWdlICE9PSB2b2lkIDAgPyBtZXNzYWdlIDogcmVxdWlyZWRfZXJyb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGN0eC5kZWZhdWx0RXJyb3IgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNzLmNvZGUgIT09IFwiaW52YWxpZF90eXBlXCIpXG4gICAgICAgICAgICByZXR1cm4geyBtZXNzYWdlOiBjdHguZGVmYXVsdEVycm9yIH07XG4gICAgICAgIHJldHVybiB7IG1lc3NhZ2U6IChfYiA9IG1lc3NhZ2UgIT09IG51bGwgJiYgbWVzc2FnZSAhPT0gdm9pZCAwID8gbWVzc2FnZSA6IGludmFsaWRfdHlwZV9lcnJvcikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogY3R4LmRlZmF1bHRFcnJvciB9O1xuICAgIH07XG4gICAgcmV0dXJuIHsgZXJyb3JNYXA6IGN1c3RvbU1hcCwgZGVzY3JpcHRpb24gfTtcbn1cbmNsYXNzIFpvZFR5cGUge1xuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5kZXNjcmlwdGlvbjtcbiAgICB9XG4gICAgX2dldFR5cGUoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGdldFBhcnNlZFR5cGUoaW5wdXQuZGF0YSk7XG4gICAgfVxuICAgIF9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KSB7XG4gICAgICAgIHJldHVybiAoY3R4IHx8IHtcbiAgICAgICAgICAgIGNvbW1vbjogaW5wdXQucGFyZW50LmNvbW1vbixcbiAgICAgICAgICAgIGRhdGE6IGlucHV0LmRhdGEsXG4gICAgICAgICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGlucHV0LmRhdGEpLFxuICAgICAgICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgICAgICAgIHBhdGg6IGlucHV0LnBhdGgsXG4gICAgICAgICAgICBwYXJlbnQ6IGlucHV0LnBhcmVudCxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YXR1czogbmV3IFBhcnNlU3RhdHVzKCksXG4gICAgICAgICAgICBjdHg6IHtcbiAgICAgICAgICAgICAgICBjb21tb246IGlucHV0LnBhcmVudC5jb21tb24sXG4gICAgICAgICAgICAgICAgZGF0YTogaW5wdXQuZGF0YSxcbiAgICAgICAgICAgICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGlucHV0LmRhdGEpLFxuICAgICAgICAgICAgICAgIHNjaGVtYUVycm9yTWFwOiB0aGlzLl9kZWYuZXJyb3JNYXAsXG4gICAgICAgICAgICAgICAgcGF0aDogaW5wdXQucGF0aCxcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IGlucHV0LnBhcmVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9wYXJzZVN5bmMoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fcGFyc2UoaW5wdXQpO1xuICAgICAgICBpZiAoaXNBc3luYyhyZXN1bHQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJTeW5jaHJvbm91cyBwYXJzZSBlbmNvdW50ZXJlZCBwcm9taXNlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBfcGFyc2VBc3luYyhpbnB1dCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9wYXJzZShpbnB1dCk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KTtcbiAgICB9XG4gICAgcGFyc2UoZGF0YSwgcGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2FmZVBhcnNlKGRhdGEsIHBhcmFtcyk7XG4gICAgICAgIGlmIChyZXN1bHQuc3VjY2VzcylcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQuZGF0YTtcbiAgICAgICAgdGhyb3cgcmVzdWx0LmVycm9yO1xuICAgIH1cbiAgICBzYWZlUGFyc2UoZGF0YSwgcGFyYW1zKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgY3R4ID0ge1xuICAgICAgICAgICAgY29tbW9uOiB7XG4gICAgICAgICAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgICAgICAgICBhc3luYzogKF9hID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmFzeW5jKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZXh0dWFsRXJyb3JNYXA6IHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5lcnJvck1hcCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXRoOiAocGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLnBhdGgpIHx8IFtdLFxuICAgICAgICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGRhdGEpLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9wYXJzZVN5bmMoeyBkYXRhLCBwYXRoOiBjdHgucGF0aCwgcGFyZW50OiBjdHggfSk7XG4gICAgICAgIHJldHVybiBoYW5kbGVSZXN1bHQoY3R4LCByZXN1bHQpO1xuICAgIH1cbiAgICBcIn52YWxpZGF0ZVwiKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgY3R4ID0ge1xuICAgICAgICAgICAgY29tbW9uOiB7XG4gICAgICAgICAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgICAgICAgICBhc3luYzogISF0aGlzW1wifnN0YW5kYXJkXCJdLmFzeW5jLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhdGg6IFtdLFxuICAgICAgICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGRhdGEpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoIXRoaXNbXCJ+c3RhbmRhcmRcIl0uYXN5bmMpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fcGFyc2VTeW5jKHsgZGF0YSwgcGF0aDogW10sIHBhcmVudDogY3R4IH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkKHJlc3VsdClcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmVzdWx0LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVzOiBjdHguY29tbW9uLmlzc3VlcyxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICBpZiAoKF9iID0gKF9hID0gZXJyID09PSBudWxsIHx8IGVyciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXJyLm1lc3NhZ2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b0xvd2VyQ2FzZSgpKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaW5jbHVkZXMoXCJlbmNvdW50ZXJlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzW1wifnN0YW5kYXJkXCJdLmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3R4LmNvbW1vbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmM6IHRydWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyc2VBc3luYyh7IGRhdGEsIHBhdGg6IFtdLCBwYXJlbnQ6IGN0eCB9KS50aGVuKChyZXN1bHQpID0+IGlzVmFsaWQocmVzdWx0KVxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHJlc3VsdC52YWx1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIGlzc3VlczogY3R4LmNvbW1vbi5pc3N1ZXMsXG4gICAgICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgcGFyc2VBc3luYyhkYXRhLCBwYXJhbXMpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zYWZlUGFyc2VBc3luYyhkYXRhLCBwYXJhbXMpO1xuICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0LmRhdGE7XG4gICAgICAgIHRocm93IHJlc3VsdC5lcnJvcjtcbiAgICB9XG4gICAgYXN5bmMgc2FmZVBhcnNlQXN5bmMoZGF0YSwgcGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgICAgICAgIGNvbW1vbjoge1xuICAgICAgICAgICAgICAgIGlzc3VlczogW10sXG4gICAgICAgICAgICAgICAgY29udGV4dHVhbEVycm9yTWFwOiBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuZXJyb3JNYXAsXG4gICAgICAgICAgICAgICAgYXN5bmM6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGF0aDogKHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5wYXRoKSB8fCBbXSxcbiAgICAgICAgICAgIHNjaGVtYUVycm9yTWFwOiB0aGlzLl9kZWYuZXJyb3JNYXAsXG4gICAgICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgcGFyc2VkVHlwZTogZ2V0UGFyc2VkVHlwZShkYXRhKSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbWF5YmVBc3luY1Jlc3VsdCA9IHRoaXMuX3BhcnNlKHsgZGF0YSwgcGF0aDogY3R4LnBhdGgsIHBhcmVudDogY3R4IH0pO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCAoaXNBc3luYyhtYXliZUFzeW5jUmVzdWx0KVxuICAgICAgICAgICAgPyBtYXliZUFzeW5jUmVzdWx0XG4gICAgICAgICAgICA6IFByb21pc2UucmVzb2x2ZShtYXliZUFzeW5jUmVzdWx0KSk7XG4gICAgICAgIHJldHVybiBoYW5kbGVSZXN1bHQoY3R4LCByZXN1bHQpO1xuICAgIH1cbiAgICByZWZpbmUoY2hlY2ssIG1lc3NhZ2UpIHtcbiAgICAgICAgY29uc3QgZ2V0SXNzdWVQcm9wZXJ0aWVzID0gKHZhbCkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiBtZXNzYWdlID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgbWVzc2FnZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG1lc3NhZ2UgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlKHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZmluZW1lbnQoKHZhbCwgY3R4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBjaGVjayh2YWwpO1xuICAgICAgICAgICAgY29uc3Qgc2V0RXJyb3IgPSAoKSA9PiBjdHguYWRkSXNzdWUoe1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5jdXN0b20sXG4gICAgICAgICAgICAgICAgLi4uZ2V0SXNzdWVQcm9wZXJ0aWVzKHZhbCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgUHJvbWlzZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiByZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0RXJyb3IoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHNldEVycm9yKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZWZpbmVtZW50KGNoZWNrLCByZWZpbmVtZW50RGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmaW5lbWVudCgodmFsLCBjdHgpID0+IHtcbiAgICAgICAgICAgIGlmICghY2hlY2sodmFsKSkge1xuICAgICAgICAgICAgICAgIGN0eC5hZGRJc3N1ZSh0eXBlb2YgcmVmaW5lbWVudERhdGEgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICA/IHJlZmluZW1lbnREYXRhKHZhbCwgY3R4KVxuICAgICAgICAgICAgICAgICAgICA6IHJlZmluZW1lbnREYXRhKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9yZWZpbmVtZW50KHJlZmluZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RFZmZlY3RzKHtcbiAgICAgICAgICAgIHNjaGVtYTogdGhpcyxcbiAgICAgICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRWZmZWN0cyxcbiAgICAgICAgICAgIGVmZmVjdDogeyB0eXBlOiBcInJlZmluZW1lbnRcIiwgcmVmaW5lbWVudCB9LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3VwZXJSZWZpbmUocmVmaW5lbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmaW5lbWVudChyZWZpbmVtZW50KTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoZGVmKSB7XG4gICAgICAgIC8qKiBBbGlhcyBvZiBzYWZlUGFyc2VBc3luYyAqL1xuICAgICAgICB0aGlzLnNwYSA9IHRoaXMuc2FmZVBhcnNlQXN5bmM7XG4gICAgICAgIHRoaXMuX2RlZiA9IGRlZjtcbiAgICAgICAgdGhpcy5wYXJzZSA9IHRoaXMucGFyc2UuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5zYWZlUGFyc2UgPSB0aGlzLnNhZmVQYXJzZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnBhcnNlQXN5bmMgPSB0aGlzLnBhcnNlQXN5bmMuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5zYWZlUGFyc2VBc3luYyA9IHRoaXMuc2FmZVBhcnNlQXN5bmMuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5zcGEgPSB0aGlzLnNwYS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnJlZmluZSA9IHRoaXMucmVmaW5lLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucmVmaW5lbWVudCA9IHRoaXMucmVmaW5lbWVudC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnN1cGVyUmVmaW5lID0gdGhpcy5zdXBlclJlZmluZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm9wdGlvbmFsID0gdGhpcy5vcHRpb25hbC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm51bGxhYmxlID0gdGhpcy5udWxsYWJsZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm51bGxpc2ggPSB0aGlzLm51bGxpc2guYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5hcnJheSA9IHRoaXMuYXJyYXkuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5wcm9taXNlID0gdGhpcy5wcm9taXNlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMub3IgPSB0aGlzLm9yLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuYW5kID0gdGhpcy5hbmQuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy50cmFuc2Zvcm0gPSB0aGlzLnRyYW5zZm9ybS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmJyYW5kID0gdGhpcy5icmFuZC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmRlZmF1bHQgPSB0aGlzLmRlZmF1bHQuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5jYXRjaCA9IHRoaXMuY2F0Y2guYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5kZXNjcmliZSA9IHRoaXMuZGVzY3JpYmUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5waXBlID0gdGhpcy5waXBlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaXNOdWxsYWJsZSA9IHRoaXMuaXNOdWxsYWJsZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmlzT3B0aW9uYWwgPSB0aGlzLmlzT3B0aW9uYWwuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpc1tcIn5zdGFuZGFyZFwiXSA9IHtcbiAgICAgICAgICAgIHZlcnNpb246IDEsXG4gICAgICAgICAgICB2ZW5kb3I6IFwiem9kXCIsXG4gICAgICAgICAgICB2YWxpZGF0ZTogKGRhdGEpID0+IHRoaXNbXCJ+dmFsaWRhdGVcIl0oZGF0YSksXG4gICAgICAgIH07XG4gICAgfVxuICAgIG9wdGlvbmFsKCkge1xuICAgICAgICByZXR1cm4gWm9kT3B0aW9uYWwuY3JlYXRlKHRoaXMsIHRoaXMuX2RlZik7XG4gICAgfVxuICAgIG51bGxhYmxlKCkge1xuICAgICAgICByZXR1cm4gWm9kTnVsbGFibGUuY3JlYXRlKHRoaXMsIHRoaXMuX2RlZik7XG4gICAgfVxuICAgIG51bGxpc2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm51bGxhYmxlKCkub3B0aW9uYWwoKTtcbiAgICB9XG4gICAgYXJyYXkoKSB7XG4gICAgICAgIHJldHVybiBab2RBcnJheS5jcmVhdGUodGhpcyk7XG4gICAgfVxuICAgIHByb21pc2UoKSB7XG4gICAgICAgIHJldHVybiBab2RQcm9taXNlLmNyZWF0ZSh0aGlzLCB0aGlzLl9kZWYpO1xuICAgIH1cbiAgICBvcihvcHRpb24pIHtcbiAgICAgICAgcmV0dXJuIFpvZFVuaW9uLmNyZWF0ZShbdGhpcywgb3B0aW9uXSwgdGhpcy5fZGVmKTtcbiAgICB9XG4gICAgYW5kKGluY29taW5nKSB7XG4gICAgICAgIHJldHVybiBab2RJbnRlcnNlY3Rpb24uY3JlYXRlKHRoaXMsIGluY29taW5nLCB0aGlzLl9kZWYpO1xuICAgIH1cbiAgICB0cmFuc2Zvcm0odHJhbnNmb3JtKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kRWZmZWN0cyh7XG4gICAgICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHRoaXMuX2RlZiksXG4gICAgICAgICAgICBzY2hlbWE6IHRoaXMsXG4gICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVmZmVjdHMsXG4gICAgICAgICAgICBlZmZlY3Q6IHsgdHlwZTogXCJ0cmFuc2Zvcm1cIiwgdHJhbnNmb3JtIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBkZWZhdWx0KGRlZikge1xuICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWVGdW5jID0gdHlwZW9mIGRlZiA9PT0gXCJmdW5jdGlvblwiID8gZGVmIDogKCkgPT4gZGVmO1xuICAgICAgICByZXR1cm4gbmV3IFpvZERlZmF1bHQoe1xuICAgICAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyh0aGlzLl9kZWYpLFxuICAgICAgICAgICAgaW5uZXJUeXBlOiB0aGlzLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0VmFsdWVGdW5jLFxuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2REZWZhdWx0LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYnJhbmQoKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kQnJhbmRlZCh7XG4gICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJyYW5kZWQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLFxuICAgICAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyh0aGlzLl9kZWYpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY2F0Y2goZGVmKSB7XG4gICAgICAgIGNvbnN0IGNhdGNoVmFsdWVGdW5jID0gdHlwZW9mIGRlZiA9PT0gXCJmdW5jdGlvblwiID8gZGVmIDogKCkgPT4gZGVmO1xuICAgICAgICByZXR1cm4gbmV3IFpvZENhdGNoKHtcbiAgICAgICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXModGhpcy5fZGVmKSxcbiAgICAgICAgICAgIGlubmVyVHlwZTogdGhpcyxcbiAgICAgICAgICAgIGNhdGNoVmFsdWU6IGNhdGNoVmFsdWVGdW5jLFxuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RDYXRjaCxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGRlc2NyaWJlKGRlc2NyaXB0aW9uKSB7XG4gICAgICAgIGNvbnN0IFRoaXMgPSB0aGlzLmNvbnN0cnVjdG9yO1xuICAgICAgICByZXR1cm4gbmV3IFRoaXMoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwaXBlKHRhcmdldCkge1xuICAgICAgICByZXR1cm4gWm9kUGlwZWxpbmUuY3JlYXRlKHRoaXMsIHRhcmdldCk7XG4gICAgfVxuICAgIHJlYWRvbmx5KCkge1xuICAgICAgICByZXR1cm4gWm9kUmVhZG9ubHkuY3JlYXRlKHRoaXMpO1xuICAgIH1cbiAgICBpc09wdGlvbmFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlUGFyc2UodW5kZWZpbmVkKS5zdWNjZXNzO1xuICAgIH1cbiAgICBpc051bGxhYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlUGFyc2UobnVsbCkuc3VjY2VzcztcbiAgICB9XG59XG5jb25zdCBjdWlkUmVnZXggPSAvXmNbXlxccy1dezgsfSQvaTtcbmNvbnN0IGN1aWQyUmVnZXggPSAvXlswLTlhLXpdKyQvO1xuY29uc3QgdWxpZFJlZ2V4ID0gL15bMC05QS1ISktNTlAtVFYtWl17MjZ9JC9pO1xuLy8gY29uc3QgdXVpZFJlZ2V4ID1cbi8vICAgL14oW2EtZjAtOV17OH0tW2EtZjAtOV17NH0tWzEtNV1bYS1mMC05XXszfS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn18MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwKSQvaTtcbmNvbnN0IHV1aWRSZWdleCA9IC9eWzAtOWEtZkEtRl17OH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17MTJ9JC9pO1xuY29uc3QgbmFub2lkUmVnZXggPSAvXlthLXowLTlfLV17MjF9JC9pO1xuY29uc3Qgand0UmVnZXggPSAvXltBLVphLXowLTktX10rXFwuW0EtWmEtejAtOS1fXStcXC5bQS1aYS16MC05LV9dKiQvO1xuY29uc3QgZHVyYXRpb25SZWdleCA9IC9eWy0rXT9QKD8hJCkoPzooPzpbLStdP1xcZCtZKXwoPzpbLStdP1xcZCtbLixdXFxkK1kkKSk/KD86KD86Wy0rXT9cXGQrTSl8KD86Wy0rXT9cXGQrWy4sXVxcZCtNJCkpPyg/Oig/OlstK10/XFxkK1cpfCg/OlstK10/XFxkK1suLF1cXGQrVyQpKT8oPzooPzpbLStdP1xcZCtEKXwoPzpbLStdP1xcZCtbLixdXFxkK0QkKSk/KD86VCg/PVtcXGQrLV0pKD86KD86Wy0rXT9cXGQrSCl8KD86Wy0rXT9cXGQrWy4sXVxcZCtIJCkpPyg/Oig/OlstK10/XFxkK00pfCg/OlstK10/XFxkK1suLF1cXGQrTSQpKT8oPzpbLStdP1xcZCsoPzpbLixdXFxkKyk/Uyk/KT8/JC87XG4vLyBmcm9tIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80NjE4MS8xNTUwMTU1XG4vLyBvbGQgdmVyc2lvbjogdG9vIHNsb3csIGRpZG4ndCBzdXBwb3J0IHVuaWNvZGVcbi8vIGNvbnN0IGVtYWlsUmVnZXggPSAvXigoKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSsoXFwuKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSspKil8KChcXHgyMikoKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPygoW1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4N2ZdfFxceDIxfFtcXHgyMy1cXHg1Yl18W1xceDVkLVxceDdlXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSl8KFxcXFwoW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBkLVxceDdmXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkpKSkqKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPyhcXHgyMikpKUAoKChbYS16XXxcXGR8W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pfCgoW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKShbYS16XXxcXGR8LXxcXC58X3x+fFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSooW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpXFwuKSsoKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKShbYS16XXxcXGR8LXxcXC58X3x+fFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSooW2Etel18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKSkkL2k7XG4vL29sZCBlbWFpbCByZWdleFxuLy8gY29uc3QgZW1haWxSZWdleCA9IC9eKChbXjw+KClbXFxdLiw7Olxcc0BcIl0rKFxcLltePD4oKVtcXF0uLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoPyEtKShbXjw+KClbXFxdLiw7Olxcc0BcIl0rXFwuKStbXjw+KClbXFxdLiw7Olxcc0BcIl17MSx9KVteLTw+KClbXFxdLiw7Olxcc0BcIl0kL2k7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbi8vIGNvbnN0IGVtYWlsUmVnZXggPVxuLy8gICAvXigoW148PigpW1xcXVxcXFwuLDs6XFxzQFxcXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXFxcIl0rKSopfChcXFwiLitcXFwiKSlAKChcXFsoKCgyNVswLTVdKXwoMlswLTRdWzAtOV0pfCgxWzAtOV17Mn0pfChbMC05XXsxLDJ9KSlcXC4pezN9KCgyNVswLTVdKXwoMlswLTRdWzAtOV0pfCgxWzAtOV17Mn0pfChbMC05XXsxLDJ9KSlcXF0pfChcXFtJUHY2OigoW2EtZjAtOV17MSw0fTopezd9fDo6KFthLWYwLTldezEsNH06KXswLDZ9fChbYS1mMC05XXsxLDR9Oil7MX06KFthLWYwLTldezEsNH06KXswLDV9fChbYS1mMC05XXsxLDR9Oil7Mn06KFthLWYwLTldezEsNH06KXswLDR9fChbYS1mMC05XXsxLDR9Oil7M306KFthLWYwLTldezEsNH06KXswLDN9fChbYS1mMC05XXsxLDR9Oil7NH06KFthLWYwLTldezEsNH06KXswLDJ9fChbYS1mMC05XXsxLDR9Oil7NX06KFthLWYwLTldezEsNH06KXswLDF9KShbYS1mMC05XXsxLDR9fCgoKDI1WzAtNV0pfCgyWzAtNF1bMC05XSl8KDFbMC05XXsyfSl8KFswLTldezEsMn0pKVxcLil7M30oKDI1WzAtNV0pfCgyWzAtNF1bMC05XSl8KDFbMC05XXsyfSl8KFswLTldezEsMn0pKSlcXF0pfChbQS1aYS16MC05XShbQS1aYS16MC05LV0qW0EtWmEtejAtOV0pKihcXC5bQS1aYS16XXsyLH0pKykpJC87XG4vLyBjb25zdCBlbWFpbFJlZ2V4ID1cbi8vICAgL15bYS16QS1aMC05XFwuXFwhXFwjXFwkXFwlXFwmXFwnXFwqXFwrXFwvXFw9XFw/XFxeXFxfXFxgXFx7XFx8XFx9XFx+XFwtXStAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XFwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSokLztcbi8vIGNvbnN0IGVtYWlsUmVnZXggPVxuLy8gICAvXig/OlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSsoPzpcXC5bYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSp8XCIoPzpbXFx4MDEtXFx4MDhcXHgwYlxceDBjXFx4MGUtXFx4MWZcXHgyMVxceDIzLVxceDViXFx4NWQtXFx4N2ZdfFxcXFxbXFx4MDEtXFx4MDlcXHgwYlxceDBjXFx4MGUtXFx4N2ZdKSpcIilAKD86KD86W2EtejAtOV0oPzpbYS16MC05LV0qW2EtejAtOV0pP1xcLikrW2EtejAtOV0oPzpbYS16MC05LV0qW2EtejAtOV0pP3xcXFsoPzooPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldP3xbYS16MC05LV0qW2EtejAtOV06KD86W1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4MjEtXFx4NWFcXHg1My1cXHg3Zl18XFxcXFtcXHgwMS1cXHgwOVxceDBiXFx4MGNcXHgwZS1cXHg3Zl0pKylcXF0pJC9pO1xuY29uc3QgZW1haWxSZWdleCA9IC9eKD8hXFwuKSg/IS4qXFwuXFwuKShbQS1aMC05XycrXFwtXFwuXSopW0EtWjAtOV8rLV1AKFtBLVowLTldW0EtWjAtOVxcLV0qXFwuKStbQS1aXXsyLH0kL2k7XG4vLyBjb25zdCBlbWFpbFJlZ2V4ID1cbi8vICAgL15bYS16MC05LiEjJCUmXHUyMDE5KisvPT9eX2B7fH1+LV0rQFthLXowLTktXSsoPzpcXC5bYS16MC05XFwtXSspKiQvaTtcbi8vIGZyb20gaHR0cHM6Ly90aGVrZXZpbnNjb3R0LmNvbS9lbW9qaXMtaW4tamF2YXNjcmlwdC8jd3JpdGluZy1hLXJlZ3VsYXItZXhwcmVzc2lvblxuY29uc3QgX2Vtb2ppUmVnZXggPSBgXihcXFxccHtFeHRlbmRlZF9QaWN0b2dyYXBoaWN9fFxcXFxwe0Vtb2ppX0NvbXBvbmVudH0pKyRgO1xubGV0IGVtb2ppUmVnZXg7XG4vLyBmYXN0ZXIsIHNpbXBsZXIsIHNhZmVyXG5jb25zdCBpcHY0UmVnZXggPSAvXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKSQvO1xuY29uc3QgaXB2NENpZHJSZWdleCA9IC9eKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVxcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXFwvKDNbMC0yXXxbMTJdP1swLTldKSQvO1xuLy8gY29uc3QgaXB2NlJlZ2V4ID1cbi8vIC9eKChbYS1mMC05XXsxLDR9Oil7N318OjooW2EtZjAtOV17MSw0fTopezAsNn18KFthLWYwLTldezEsNH06KXsxfTooW2EtZjAtOV17MSw0fTopezAsNX18KFthLWYwLTldezEsNH06KXsyfTooW2EtZjAtOV17MSw0fTopezAsNH18KFthLWYwLTldezEsNH06KXszfTooW2EtZjAtOV17MSw0fTopezAsM318KFthLWYwLTldezEsNH06KXs0fTooW2EtZjAtOV17MSw0fTopezAsMn18KFthLWYwLTldezEsNH06KXs1fTooW2EtZjAtOV17MSw0fTopezAsMX0pKFthLWYwLTldezEsNH18KCgoMjVbMC01XSl8KDJbMC00XVswLTldKXwoMVswLTldezJ9KXwoWzAtOV17MSwyfSkpXFwuKXszfSgoMjVbMC01XSl8KDJbMC00XVswLTldKXwoMVswLTldezJ9KXwoWzAtOV17MSwyfSkpKSQvO1xuY29uc3QgaXB2NlJlZ2V4ID0gL14oKFswLTlhLWZBLUZdezEsNH06KXs3LDd9WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsN306fChbMC05YS1mQS1GXXsxLDR9Oil7MSw2fTpbMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw1fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwyfXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH0oOlswLTlhLWZBLUZdezEsNH0pezEsM318KFswLTlhLWZBLUZdezEsNH06KXsxLDN9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwyfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw1fXxbMC05YS1mQS1GXXsxLDR9OigoOlswLTlhLWZBLUZdezEsNH0pezEsNn0pfDooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDd9fDopfGZlODA6KDpbMC05YS1mQS1GXXswLDR9KXswLDR9JVswLTlhLXpBLVpdezEsfXw6OihmZmZmKDowezEsNH0pezAsMX06KXswLDF9KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pfChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fTooKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSkpJC87XG5jb25zdCBpcHY2Q2lkclJlZ2V4ID0gL14oKFswLTlhLWZBLUZdezEsNH06KXs3LDd9WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsN306fChbMC05YS1mQS1GXXsxLDR9Oil7MSw2fTpbMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw1fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwyfXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH0oOlswLTlhLWZBLUZdezEsNH0pezEsM318KFswLTlhLWZBLUZdezEsNH06KXsxLDN9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwyfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw1fXxbMC05YS1mQS1GXXsxLDR9OigoOlswLTlhLWZBLUZdezEsNH0pezEsNn0pfDooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDd9fDopfGZlODA6KDpbMC05YS1mQS1GXXswLDR9KXswLDR9JVswLTlhLXpBLVpdezEsfXw6OihmZmZmKDowezEsNH0pezAsMX06KXswLDF9KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pfChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fTooKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSkpXFwvKDEyWzAtOF18MVswMV1bMC05XXxbMS05XT9bMC05XSkkLztcbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc4NjAzOTIvZGV0ZXJtaW5lLWlmLXN0cmluZy1pcy1pbi1iYXNlNjQtdXNpbmctamF2YXNjcmlwdFxuY29uc3QgYmFzZTY0UmVnZXggPSAvXihbMC05YS16QS1aKy9dezR9KSooKFswLTlhLXpBLVorL117Mn09PSl8KFswLTlhLXpBLVorL117M309KSk/JC87XG4vLyBodHRwczovL2Jhc2U2NC5ndXJ1L3N0YW5kYXJkcy9iYXNlNjR1cmxcbmNvbnN0IGJhc2U2NHVybFJlZ2V4ID0gL14oWzAtOWEtekEtWi1fXXs0fSkqKChbMC05YS16QS1aLV9dezJ9KD09KT8pfChbMC05YS16QS1aLV9dezN9KD0pPykpPyQvO1xuLy8gc2ltcGxlXG4vLyBjb25zdCBkYXRlUmVnZXhTb3VyY2UgPSBgXFxcXGR7NH0tXFxcXGR7Mn0tXFxcXGR7Mn1gO1xuLy8gbm8gbGVhcCB5ZWFyIHZhbGlkYXRpb25cbi8vIGNvbnN0IGRhdGVSZWdleFNvdXJjZSA9IGBcXFxcZHs0fS0oKDBbMTM1NzhdfDEwfDEyKS0zMXwoMFsxMy05XXwxWzAtMl0pLTMwfCgwWzEtOV18MVswLTJdKS0oMFsxLTldfDFcXFxcZHwyXFxcXGQpKWA7XG4vLyB3aXRoIGxlYXAgeWVhciB2YWxpZGF0aW9uXG5jb25zdCBkYXRlUmVnZXhTb3VyY2UgPSBgKChcXFxcZFxcXFxkWzI0NjhdWzA0OF18XFxcXGRcXFxcZFsxMzU3OV1bMjZdfFxcXFxkXFxcXGQwWzQ4XXxbMDI0NjhdWzA0OF0wMHxbMTM1NzldWzI2XTAwKS0wMi0yOXxcXFxcZHs0fS0oKDBbMTM1NzhdfDFbMDJdKS0oMFsxLTldfFsxMl1cXFxcZHwzWzAxXSl8KDBbNDY5XXwxMSktKDBbMS05XXxbMTJdXFxcXGR8MzApfCgwMiktKDBbMS05XXwxXFxcXGR8MlswLThdKSkpYDtcbmNvbnN0IGRhdGVSZWdleCA9IG5ldyBSZWdFeHAoYF4ke2RhdGVSZWdleFNvdXJjZX0kYCk7XG5mdW5jdGlvbiB0aW1lUmVnZXhTb3VyY2UoYXJncykge1xuICAgIC8vIGxldCByZWdleCA9IGBcXFxcZHsyfTpcXFxcZHsyfTpcXFxcZHsyfWA7XG4gICAgbGV0IHJlZ2V4ID0gYChbMDFdXFxcXGR8MlswLTNdKTpbMC01XVxcXFxkOlswLTVdXFxcXGRgO1xuICAgIGlmIChhcmdzLnByZWNpc2lvbikge1xuICAgICAgICByZWdleCA9IGAke3JlZ2V4fVxcXFwuXFxcXGR7JHthcmdzLnByZWNpc2lvbn19YDtcbiAgICB9XG4gICAgZWxzZSBpZiAoYXJncy5wcmVjaXNpb24gPT0gbnVsbCkge1xuICAgICAgICByZWdleCA9IGAke3JlZ2V4fShcXFxcLlxcXFxkKyk/YDtcbiAgICB9XG4gICAgcmV0dXJuIHJlZ2V4O1xufVxuZnVuY3Rpb24gdGltZVJlZ2V4KGFyZ3MpIHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChgXiR7dGltZVJlZ2V4U291cmNlKGFyZ3MpfSRgKTtcbn1cbi8vIEFkYXB0ZWQgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzE0MzIzMVxuZnVuY3Rpb24gZGF0ZXRpbWVSZWdleChhcmdzKSB7XG4gICAgbGV0IHJlZ2V4ID0gYCR7ZGF0ZVJlZ2V4U291cmNlfVQke3RpbWVSZWdleFNvdXJjZShhcmdzKX1gO1xuICAgIGNvbnN0IG9wdHMgPSBbXTtcbiAgICBvcHRzLnB1c2goYXJncy5sb2NhbCA/IGBaP2AgOiBgWmApO1xuICAgIGlmIChhcmdzLm9mZnNldClcbiAgICAgICAgb3B0cy5wdXNoKGAoWystXVxcXFxkezJ9Oj9cXFxcZHsyfSlgKTtcbiAgICByZWdleCA9IGAke3JlZ2V4fSgke29wdHMuam9pbihcInxcIil9KWA7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoYF4ke3JlZ2V4fSRgKTtcbn1cbmZ1bmN0aW9uIGlzVmFsaWRJUChpcCwgdmVyc2lvbikge1xuICAgIGlmICgodmVyc2lvbiA9PT0gXCJ2NFwiIHx8ICF2ZXJzaW9uKSAmJiBpcHY0UmVnZXgudGVzdChpcCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICgodmVyc2lvbiA9PT0gXCJ2NlwiIHx8ICF2ZXJzaW9uKSAmJiBpcHY2UmVnZXgudGVzdChpcCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzVmFsaWRKV1Qoand0LCBhbGcpIHtcbiAgICBpZiAoIWp3dFJlZ2V4LnRlc3Qoand0KSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IFtoZWFkZXJdID0gand0LnNwbGl0KFwiLlwiKTtcbiAgICAgICAgLy8gQ29udmVydCBiYXNlNjR1cmwgdG8gYmFzZTY0XG4gICAgICAgIGNvbnN0IGJhc2U2NCA9IGhlYWRlclxuICAgICAgICAgICAgLnJlcGxhY2UoLy0vZywgXCIrXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvXy9nLCBcIi9cIilcbiAgICAgICAgICAgIC5wYWRFbmQoaGVhZGVyLmxlbmd0aCArICgoNCAtIChoZWFkZXIubGVuZ3RoICUgNCkpICUgNCksIFwiPVwiKTtcbiAgICAgICAgY29uc3QgZGVjb2RlZCA9IEpTT04ucGFyc2UoYXRvYihiYXNlNjQpKTtcbiAgICAgICAgaWYgKHR5cGVvZiBkZWNvZGVkICE9PSBcIm9iamVjdFwiIHx8IGRlY29kZWQgPT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICghZGVjb2RlZC50eXAgfHwgIWRlY29kZWQuYWxnKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoYWxnICYmIGRlY29kZWQuYWxnICE9PSBhbGcpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlzVmFsaWRDaWRyKGlwLCB2ZXJzaW9uKSB7XG4gICAgaWYgKCh2ZXJzaW9uID09PSBcInY0XCIgfHwgIXZlcnNpb24pICYmIGlwdjRDaWRyUmVnZXgudGVzdChpcCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICgodmVyc2lvbiA9PT0gXCJ2NlwiIHx8ICF2ZXJzaW9uKSAmJiBpcHY2Q2lkclJlZ2V4LnRlc3QoaXApKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5jbGFzcyBab2RTdHJpbmcgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2RlZi5jb2VyY2UpIHtcbiAgICAgICAgICAgIGlucHV0LmRhdGEgPSBTdHJpbmcoaW5wdXQuZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5zdHJpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuc3RyaW5nLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gbmV3IFBhcnNlU3RhdHVzKCk7XG4gICAgICAgIGxldCBjdHggPSB1bmRlZmluZWQ7XG4gICAgICAgIGZvciAoY29uc3QgY2hlY2sgb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoZWNrLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuZGF0YS5sZW5ndGggPCBjaGVjay52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluaW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuZGF0YS5sZW5ndGggPiBjaGVjay52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX2JpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImxlbmd0aFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vQmlnID0gaW5wdXQuZGF0YS5sZW5ndGggPiBjaGVjay52YWx1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29TbWFsbCA9IGlucHV0LmRhdGEubGVuZ3RoIDwgY2hlY2sudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKHRvb0JpZyB8fCB0b29TbWFsbCkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRvb0JpZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRvb1NtYWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImVtYWlsXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWVtYWlsUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImVtYWlsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJlbW9qaVwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFlbW9qaVJlZ2V4KSB7XG4gICAgICAgICAgICAgICAgICAgIGVtb2ppUmVnZXggPSBuZXcgUmVnRXhwKF9lbW9qaVJlZ2V4LCBcInVcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZW1vamlSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwiZW1vamlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInV1aWRcIikge1xuICAgICAgICAgICAgICAgIGlmICghdXVpZFJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJ1dWlkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJuYW5vaWRcIikge1xuICAgICAgICAgICAgICAgIGlmICghbmFub2lkUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcIm5hbm9pZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiY3VpZFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFjdWlkUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImN1aWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImN1aWQyXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWN1aWQyUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImN1aWQyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJ1bGlkXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXVsaWRSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwidWxpZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidXJsXCIpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBuZXcgVVJMKGlucHV0LmRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJ1cmxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInJlZ2V4XCIpIHtcbiAgICAgICAgICAgICAgICBjaGVjay5yZWdleC5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRlc3RSZXN1bHQgPSBjaGVjay5yZWdleC50ZXN0KGlucHV0LmRhdGEpO1xuICAgICAgICAgICAgICAgIGlmICghdGVzdFJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcInJlZ2V4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJ0cmltXCIpIHtcbiAgICAgICAgICAgICAgICBpbnB1dC5kYXRhID0gaW5wdXQuZGF0YS50cmltKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImluY2x1ZGVzXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlucHV0LmRhdGEuaW5jbHVkZXMoY2hlY2sudmFsdWUsIGNoZWNrLnBvc2l0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7IGluY2x1ZGVzOiBjaGVjay52YWx1ZSwgcG9zaXRpb246IGNoZWNrLnBvc2l0aW9uIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJ0b0xvd2VyQ2FzZVwiKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQuZGF0YSA9IGlucHV0LmRhdGEudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidG9VcHBlckNhc2VcIikge1xuICAgICAgICAgICAgICAgIGlucHV0LmRhdGEgPSBpbnB1dC5kYXRhLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInN0YXJ0c1dpdGhcIikge1xuICAgICAgICAgICAgICAgIGlmICghaW5wdXQuZGF0YS5zdGFydHNXaXRoKGNoZWNrLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7IHN0YXJ0c1dpdGg6IGNoZWNrLnZhbHVlIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJlbmRzV2l0aFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpbnB1dC5kYXRhLmVuZHNXaXRoKGNoZWNrLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7IGVuZHNXaXRoOiBjaGVjay52YWx1ZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiZGF0ZXRpbWVcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gZGF0ZXRpbWVSZWdleChjaGVjayk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwiZGF0ZXRpbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImRhdGVcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gZGF0ZVJlZ2V4O1xuICAgICAgICAgICAgICAgIGlmICghcmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImRhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInRpbWVcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gdGltZVJlZ2V4KGNoZWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJ0aW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJkdXJhdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFkdXJhdGlvblJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJkdXJhdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiaXBcIikge1xuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZElQKGlucHV0LmRhdGEsIGNoZWNrLnZlcnNpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwiaXBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImp3dFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkSldUKGlucHV0LmRhdGEsIGNoZWNrLmFsZykpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJqd3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImNpZHJcIikge1xuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZENpZHIoaW5wdXQuZGF0YSwgY2hlY2sudmVyc2lvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJjaWRyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJiYXNlNjRcIikge1xuICAgICAgICAgICAgICAgIGlmICghYmFzZTY0UmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImJhc2U2NFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiYmFzZTY0dXJsXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWJhc2U2NHVybFJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJiYXNlNjR1cmxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB1dGlsLmFzc2VydE5ldmVyKGNoZWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGlucHV0LmRhdGEgfTtcbiAgICB9XG4gICAgX3JlZ2V4KHJlZ2V4LCB2YWxpZGF0aW9uLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZmluZW1lbnQoKGRhdGEpID0+IHJlZ2V4LnRlc3QoZGF0YSksIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb24sXG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfYWRkQ2hlY2soY2hlY2spIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RTdHJpbmcoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgY2hlY2tzOiBbLi4udGhpcy5fZGVmLmNoZWNrcywgY2hlY2tdLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZW1haWwobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImVtYWlsXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgdXJsKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJ1cmxcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICAgIH1cbiAgICBlbW9qaShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiZW1vamlcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICAgIH1cbiAgICB1dWlkKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJ1dWlkXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgbmFub2lkKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJuYW5vaWRcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICAgIH1cbiAgICBjdWlkKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJjdWlkXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgY3VpZDIobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImN1aWQyXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgdWxpZChtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwidWxpZFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkgfSk7XG4gICAgfVxuICAgIGJhc2U2NChtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiYmFzZTY0XCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgYmFzZTY0dXJsKG1lc3NhZ2UpIHtcbiAgICAgICAgLy8gYmFzZTY0dXJsIGVuY29kaW5nIGlzIGEgbW9kaWZpY2F0aW9uIG9mIGJhc2U2NCB0aGF0IGNhbiBzYWZlbHkgYmUgdXNlZCBpbiBVUkxzIGFuZCBmaWxlbmFtZXNcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwiYmFzZTY0dXJsXCIsXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBqd3Qob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImp3dFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucykgfSk7XG4gICAgfVxuICAgIGlwKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJpcFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucykgfSk7XG4gICAgfVxuICAgIGNpZHIob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImNpZHJcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG9wdGlvbnMpIH0pO1xuICAgIH1cbiAgICBkYXRldGltZShvcHRpb25zKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgICAgICBraW5kOiBcImRhdGV0aW1lXCIsXG4gICAgICAgICAgICAgICAgcHJlY2lzaW9uOiBudWxsLFxuICAgICAgICAgICAgICAgIG9mZnNldDogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9jYWw6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG9wdGlvbnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJkYXRldGltZVwiLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiB0eXBlb2YgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wcmVjaXNpb24pID09PSBcInVuZGVmaW5lZFwiID8gbnVsbCA6IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wcmVjaXNpb24sXG4gICAgICAgICAgICBvZmZzZXQ6IChfYSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5vZmZzZXQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGZhbHNlLFxuICAgICAgICAgICAgbG9jYWw6IChfYiA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5sb2NhbCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZmFsc2UsXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZGF0ZShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiZGF0ZVwiLCBtZXNzYWdlIH0pO1xuICAgIH1cbiAgICB0aW1lKG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAgICAgIGtpbmQ6IFwidGltZVwiLFxuICAgICAgICAgICAgICAgIHByZWNpc2lvbjogbnVsbCxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBvcHRpb25zLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwidGltZVwiLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiB0eXBlb2YgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wcmVjaXNpb24pID09PSBcInVuZGVmaW5lZFwiID8gbnVsbCA6IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wcmVjaXNpb24sXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZHVyYXRpb24obWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImR1cmF0aW9uXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgcmVnZXgocmVnZXgsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwicmVnZXhcIixcbiAgICAgICAgICAgIHJlZ2V4OiByZWdleCxcbiAgICAgICAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGluY2x1ZGVzKHZhbHVlLCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcImluY2x1ZGVzXCIsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICBwb3NpdGlvbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnBvc2l0aW9uLFxuICAgICAgICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5tZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXJ0c1dpdGgodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwic3RhcnRzV2l0aFwiLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZW5kc1dpdGgodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwiZW5kc1dpdGhcIixcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG1pbihtaW5MZW5ndGgsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWluXCIsXG4gICAgICAgICAgICB2YWx1ZTogbWluTGVuZ3RoLFxuICAgICAgICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbWF4KG1heExlbmd0aCwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtYXhcIixcbiAgICAgICAgICAgIHZhbHVlOiBtYXhMZW5ndGgsXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBsZW5ndGgobGVuLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcImxlbmd0aFwiLFxuICAgICAgICAgICAgdmFsdWU6IGxlbixcbiAgICAgICAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVxdWl2YWxlbnQgdG8gYC5taW4oMSlgXG4gICAgICovXG4gICAgbm9uZW1wdHkobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5taW4oMSwgZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpKTtcbiAgICB9XG4gICAgdHJpbSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RTdHJpbmcoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgY2hlY2tzOiBbLi4udGhpcy5fZGVmLmNoZWNrcywgeyBraW5kOiBcInRyaW1cIiB9XSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHRvTG93ZXJDYXNlKCkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZFN0cmluZyh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCB7IGtpbmQ6IFwidG9Mb3dlckNhc2VcIiB9XSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHRvVXBwZXJDYXNlKCkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZFN0cmluZyh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCB7IGtpbmQ6IFwidG9VcHBlckNhc2VcIiB9XSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldCBpc0RhdGV0aW1lKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImRhdGV0aW1lXCIpO1xuICAgIH1cbiAgICBnZXQgaXNEYXRlKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImRhdGVcIik7XG4gICAgfVxuICAgIGdldCBpc1RpbWUoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwidGltZVwiKTtcbiAgICB9XG4gICAgZ2V0IGlzRHVyYXRpb24oKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiZHVyYXRpb25cIik7XG4gICAgfVxuICAgIGdldCBpc0VtYWlsKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImVtYWlsXCIpO1xuICAgIH1cbiAgICBnZXQgaXNVUkwoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwidXJsXCIpO1xuICAgIH1cbiAgICBnZXQgaXNFbW9qaSgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJlbW9qaVwiKTtcbiAgICB9XG4gICAgZ2V0IGlzVVVJRCgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJ1dWlkXCIpO1xuICAgIH1cbiAgICBnZXQgaXNOQU5PSUQoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwibmFub2lkXCIpO1xuICAgIH1cbiAgICBnZXQgaXNDVUlEKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImN1aWRcIik7XG4gICAgfVxuICAgIGdldCBpc0NVSUQyKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImN1aWQyXCIpO1xuICAgIH1cbiAgICBnZXQgaXNVTElEKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcInVsaWRcIik7XG4gICAgfVxuICAgIGdldCBpc0lQKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImlwXCIpO1xuICAgIH1cbiAgICBnZXQgaXNDSURSKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImNpZHJcIik7XG4gICAgfVxuICAgIGdldCBpc0Jhc2U2NCgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJiYXNlNjRcIik7XG4gICAgfVxuICAgIGdldCBpc0Jhc2U2NHVybCgpIHtcbiAgICAgICAgLy8gYmFzZTY0dXJsIGVuY29kaW5nIGlzIGEgbW9kaWZpY2F0aW9uIG9mIGJhc2U2NCB0aGF0IGNhbiBzYWZlbHkgYmUgdXNlZCBpbiBVUkxzIGFuZCBmaWxlbmFtZXNcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJiYXNlNjR1cmxcIik7XG4gICAgfVxuICAgIGdldCBtaW5MZW5ndGgoKSB7XG4gICAgICAgIGxldCBtaW4gPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgICAgICAgIGlmIChjaC5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICAgICAgICAgICAgbWluID0gY2gudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbjtcbiAgICB9XG4gICAgZ2V0IG1heExlbmd0aCgpIHtcbiAgICAgICAgbGV0IG1heCA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWF4ID09PSBudWxsIHx8IGNoLnZhbHVlIDwgbWF4KVxuICAgICAgICAgICAgICAgICAgICBtYXggPSBjaC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4O1xuICAgIH1cbn1cblpvZFN0cmluZy5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIHJldHVybiBuZXcgWm9kU3RyaW5nKHtcbiAgICAgICAgY2hlY2tzOiBbXSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTdHJpbmcsXG4gICAgICAgIGNvZXJjZTogKF9hID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmNvZXJjZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmFsc2UsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG4vLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zOTY2NDg0L3doeS1kb2VzLW1vZHVsdXMtb3BlcmF0b3ItcmV0dXJuLWZyYWN0aW9uYWwtbnVtYmVyLWluLWphdmFzY3JpcHQvMzE3MTEwMzQjMzE3MTEwMzRcbmZ1bmN0aW9uIGZsb2F0U2FmZVJlbWFpbmRlcih2YWwsIHN0ZXApIHtcbiAgICBjb25zdCB2YWxEZWNDb3VudCA9ICh2YWwudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMV0gfHwgXCJcIikubGVuZ3RoO1xuICAgIGNvbnN0IHN0ZXBEZWNDb3VudCA9IChzdGVwLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzFdIHx8IFwiXCIpLmxlbmd0aDtcbiAgICBjb25zdCBkZWNDb3VudCA9IHZhbERlY0NvdW50ID4gc3RlcERlY0NvdW50ID8gdmFsRGVjQ291bnQgOiBzdGVwRGVjQ291bnQ7XG4gICAgY29uc3QgdmFsSW50ID0gcGFyc2VJbnQodmFsLnRvRml4ZWQoZGVjQ291bnQpLnJlcGxhY2UoXCIuXCIsIFwiXCIpKTtcbiAgICBjb25zdCBzdGVwSW50ID0gcGFyc2VJbnQoc3RlcC50b0ZpeGVkKGRlY0NvdW50KS5yZXBsYWNlKFwiLlwiLCBcIlwiKSk7XG4gICAgcmV0dXJuICh2YWxJbnQgJSBzdGVwSW50KSAvIE1hdGgucG93KDEwLCBkZWNDb3VudCk7XG59XG5jbGFzcyBab2ROdW1iZXIgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5taW4gPSB0aGlzLmd0ZTtcbiAgICAgICAgdGhpcy5tYXggPSB0aGlzLmx0ZTtcbiAgICAgICAgdGhpcy5zdGVwID0gdGhpcy5tdWx0aXBsZU9mO1xuICAgIH1cbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2RlZi5jb2VyY2UpIHtcbiAgICAgICAgICAgIGlucHV0LmRhdGEgPSBOdW1iZXIoaW5wdXQuZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5udW1iZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUubnVtYmVyLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGN0eCA9IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gbmV3IFBhcnNlU3RhdHVzKCk7XG4gICAgICAgIGZvciAoY29uc3QgY2hlY2sgb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoZWNrLmtpbmQgPT09IFwiaW50XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXV0aWwuaXNJbnRlZ2VyKGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNlaXZlZDogXCJmbG9hdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29TbWFsbCA9IGNoZWNrLmluY2x1c2l2ZVxuICAgICAgICAgICAgICAgICAgICA/IGlucHV0LmRhdGEgPCBjaGVjay52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IGlucHV0LmRhdGEgPD0gY2hlY2sudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKHRvb1NtYWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5pbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IGNoZWNrLmluY2x1c2l2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vQmlnID0gY2hlY2suaW5jbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgID8gaW5wdXQuZGF0YSA+IGNoZWNrLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXQuZGF0YSA+PSBjaGVjay52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodG9vQmlnKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fYmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiBjaGVjay5pbmNsdXNpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJtdWx0aXBsZU9mXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoZmxvYXRTYWZlUmVtYWluZGVyKGlucHV0LmRhdGEsIGNoZWNrLnZhbHVlKSAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUubm90X211bHRpcGxlX29mLFxuICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVPZjogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJmaW5pdGVcIikge1xuICAgICAgICAgICAgICAgIGlmICghTnVtYmVyLmlzRmluaXRlKGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5ub3RfZmluaXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoY2hlY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogaW5wdXQuZGF0YSB9O1xuICAgIH1cbiAgICBndGUodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtaW5cIiwgdmFsdWUsIHRydWUsIGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICAgIGd0KHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWluXCIsIHZhbHVlLCBmYWxzZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgICB9XG4gICAgbHRlKHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWF4XCIsIHZhbHVlLCB0cnVlLCBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkpO1xuICAgIH1cbiAgICBsdCh2YWx1ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1heFwiLCB2YWx1ZSwgZmFsc2UsIGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICAgIHNldExpbWl0KGtpbmQsIHZhbHVlLCBpbmNsdXNpdmUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2ROdW1iZXIoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgY2hlY2tzOiBbXG4gICAgICAgICAgICAgICAgLi4udGhpcy5fZGVmLmNoZWNrcyxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmUsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9hZGRDaGVjayhjaGVjaykge1xuICAgICAgICByZXR1cm4gbmV3IFpvZE51bWJlcih7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCBjaGVja10sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpbnQobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJpbnRcIixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHBvc2l0aXZlKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWluXCIsXG4gICAgICAgICAgICB2YWx1ZTogMCxcbiAgICAgICAgICAgIGluY2x1c2l2ZTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBuZWdhdGl2ZShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcIm1heFwiLFxuICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbm9ucG9zaXRpdmUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtYXhcIixcbiAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbm9ubmVnYXRpdmUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtaW5cIixcbiAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbXVsdGlwbGVPZih2YWx1ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtdWx0aXBsZU9mXCIsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmaW5pdGUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJmaW5pdGVcIixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNhZmUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtaW5cIixcbiAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlOiBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSkuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWF4XCIsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQgbWluVmFsdWUoKSB7XG4gICAgICAgIGxldCBtaW4gPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgICAgICAgIGlmIChjaC5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICAgICAgICAgICAgbWluID0gY2gudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbjtcbiAgICB9XG4gICAgZ2V0IG1heFZhbHVlKCkge1xuICAgICAgICBsZXQgbWF4ID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2gua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICAgICAgICAgIGlmIChtYXggPT09IG51bGwgfHwgY2gudmFsdWUgPCBtYXgpXG4gICAgICAgICAgICAgICAgICAgIG1heCA9IGNoLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIGdldCBpc0ludCgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJpbnRcIiB8fFxuICAgICAgICAgICAgKGNoLmtpbmQgPT09IFwibXVsdGlwbGVPZlwiICYmIHV0aWwuaXNJbnRlZ2VyKGNoLnZhbHVlKSkpO1xuICAgIH1cbiAgICBnZXQgaXNGaW5pdGUoKSB7XG4gICAgICAgIGxldCBtYXggPSBudWxsLCBtaW4gPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgICAgICAgIGlmIChjaC5raW5kID09PSBcImZpbml0ZVwiIHx8XG4gICAgICAgICAgICAgICAgY2gua2luZCA9PT0gXCJpbnRcIiB8fFxuICAgICAgICAgICAgICAgIGNoLmtpbmQgPT09IFwibXVsdGlwbGVPZlwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaC5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICAgICAgICAgICAgbWluID0gY2gudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaC5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1heCA9PT0gbnVsbCB8fCBjaC52YWx1ZSA8IG1heClcbiAgICAgICAgICAgICAgICAgICAgbWF4ID0gY2gudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShtaW4pICYmIE51bWJlci5pc0Zpbml0ZShtYXgpO1xuICAgIH1cbn1cblpvZE51bWJlci5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2ROdW1iZXIoe1xuICAgICAgICBjaGVja3M6IFtdLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE51bWJlcixcbiAgICAgICAgY29lcmNlOiAocGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmNvZXJjZSkgfHwgZmFsc2UsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RCaWdJbnQgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5taW4gPSB0aGlzLmd0ZTtcbiAgICAgICAgdGhpcy5tYXggPSB0aGlzLmx0ZTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGlmICh0aGlzLl9kZWYuY29lcmNlKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGlucHV0LmRhdGEgPSBCaWdJbnQoaW5wdXQuZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0SW52YWxpZElucHV0KGlucHV0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmJpZ2ludCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2dldEludmFsaWRJbnB1dChpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGN0eCA9IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gbmV3IFBhcnNlU3RhdHVzKCk7XG4gICAgICAgIGZvciAoY29uc3QgY2hlY2sgb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoZWNrLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29TbWFsbCA9IGNoZWNrLmluY2x1c2l2ZVxuICAgICAgICAgICAgICAgICAgICA/IGlucHV0LmRhdGEgPCBjaGVjay52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IGlucHV0LmRhdGEgPD0gY2hlY2sudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKHRvb1NtYWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJpZ2ludFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluaW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IGNoZWNrLmluY2x1c2l2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vQmlnID0gY2hlY2suaW5jbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgID8gaW5wdXQuZGF0YSA+IGNoZWNrLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXQuZGF0YSA+PSBjaGVjay52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodG9vQmlnKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fYmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJiaWdpbnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiBjaGVjay5pbmNsdXNpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJtdWx0aXBsZU9mXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuZGF0YSAlIGNoZWNrLnZhbHVlICE9PSBCaWdJbnQoMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLm5vdF9tdWx0aXBsZV9vZixcbiAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlT2Y6IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoY2hlY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogaW5wdXQuZGF0YSB9O1xuICAgIH1cbiAgICBfZ2V0SW52YWxpZElucHV0KGlucHV0KSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuYmlnaW50LFxuICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGd0ZSh2YWx1ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1pblwiLCB2YWx1ZSwgdHJ1ZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgICB9XG4gICAgZ3QodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtaW5cIiwgdmFsdWUsIGZhbHNlLCBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkpO1xuICAgIH1cbiAgICBsdGUodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtYXhcIiwgdmFsdWUsIHRydWUsIGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICAgIGx0KHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWF4XCIsIHZhbHVlLCBmYWxzZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgICB9XG4gICAgc2V0TGltaXQoa2luZCwgdmFsdWUsIGluY2x1c2l2ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZEJpZ0ludCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBjaGVja3M6IFtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWYuY2hlY2tzLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZSxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2FkZENoZWNrKGNoZWNrKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kQmlnSW50KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIGNoZWNrczogWy4uLnRoaXMuX2RlZi5jaGVja3MsIGNoZWNrXSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHBvc2l0aXZlKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWluXCIsXG4gICAgICAgICAgICB2YWx1ZTogQmlnSW50KDApLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5lZ2F0aXZlKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWF4XCIsXG4gICAgICAgICAgICB2YWx1ZTogQmlnSW50KDApLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5vbnBvc2l0aXZlKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWF4XCIsXG4gICAgICAgICAgICB2YWx1ZTogQmlnSW50KDApLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbm9ubmVnYXRpdmUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtaW5cIixcbiAgICAgICAgICAgIHZhbHVlOiBCaWdJbnQoMCksXG4gICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBtdWx0aXBsZU9mKHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcIm11bHRpcGxlT2ZcIixcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0IG1pblZhbHVlKCkge1xuICAgICAgICBsZXQgbWluID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2gua2luZCA9PT0gXCJtaW5cIikge1xuICAgICAgICAgICAgICAgIGlmIChtaW4gPT09IG51bGwgfHwgY2gudmFsdWUgPiBtaW4pXG4gICAgICAgICAgICAgICAgICAgIG1pbiA9IGNoLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtaW47XG4gICAgfVxuICAgIGdldCBtYXhWYWx1ZSgpIHtcbiAgICAgICAgbGV0IG1heCA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWF4ID09PSBudWxsIHx8IGNoLnZhbHVlIDwgbWF4KVxuICAgICAgICAgICAgICAgICAgICBtYXggPSBjaC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4O1xuICAgIH1cbn1cblpvZEJpZ0ludC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIHJldHVybiBuZXcgWm9kQmlnSW50KHtcbiAgICAgICAgY2hlY2tzOiBbXSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RCaWdJbnQsXG4gICAgICAgIGNvZXJjZTogKF9hID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmNvZXJjZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmFsc2UsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RCb29sZWFuIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGlmICh0aGlzLl9kZWYuY29lcmNlKSB7XG4gICAgICAgICAgICBpbnB1dC5kYXRhID0gQm9vbGVhbihpbnB1dC5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmJvb2xlYW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuYm9vbGVhbixcbiAgICAgICAgICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgICB9XG59XG5ab2RCb29sZWFuLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZEJvb2xlYW4oe1xuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJvb2xlYW4sXG4gICAgICAgIGNvZXJjZTogKHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5jb2VyY2UpIHx8IGZhbHNlLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kRGF0ZSBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBpZiAodGhpcy5fZGVmLmNvZXJjZSkge1xuICAgICAgICAgICAgaW5wdXQuZGF0YSA9IG5ldyBEYXRlKGlucHV0LmRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICAgICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuZGF0ZSkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5kYXRlLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzTmFOKGlucHV0LmRhdGEuZ2V0VGltZSgpKSkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfZGF0ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gbmV3IFBhcnNlU3RhdHVzKCk7XG4gICAgICAgIGxldCBjdHggPSB1bmRlZmluZWQ7XG4gICAgICAgIGZvciAoY29uc3QgY2hlY2sgb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoZWNrLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuZGF0YS5nZXRUaW1lKCkgPCBjaGVjay52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJkYXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0LmRhdGEuZ2V0VGltZSgpID4gY2hlY2sudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImRhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoY2hlY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0dXM6IHN0YXR1cy52YWx1ZSxcbiAgICAgICAgICAgIHZhbHVlOiBuZXcgRGF0ZShpbnB1dC5kYXRhLmdldFRpbWUoKSksXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9hZGRDaGVjayhjaGVjaykge1xuICAgICAgICByZXR1cm4gbmV3IFpvZERhdGUoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgY2hlY2tzOiBbLi4udGhpcy5fZGVmLmNoZWNrcywgY2hlY2tdLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbWluKG1pbkRhdGUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWluXCIsXG4gICAgICAgICAgICB2YWx1ZTogbWluRGF0ZS5nZXRUaW1lKCksXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBtYXgobWF4RGF0ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtYXhcIixcbiAgICAgICAgICAgIHZhbHVlOiBtYXhEYXRlLmdldFRpbWUoKSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldCBtaW5EYXRlKCkge1xuICAgICAgICBsZXQgbWluID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2gua2luZCA9PT0gXCJtaW5cIikge1xuICAgICAgICAgICAgICAgIGlmIChtaW4gPT09IG51bGwgfHwgY2gudmFsdWUgPiBtaW4pXG4gICAgICAgICAgICAgICAgICAgIG1pbiA9IGNoLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtaW4gIT0gbnVsbCA/IG5ldyBEYXRlKG1pbikgOiBudWxsO1xuICAgIH1cbiAgICBnZXQgbWF4RGF0ZSgpIHtcbiAgICAgICAgbGV0IG1heCA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWF4ID09PSBudWxsIHx8IGNoLnZhbHVlIDwgbWF4KVxuICAgICAgICAgICAgICAgICAgICBtYXggPSBjaC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4ICE9IG51bGwgPyBuZXcgRGF0ZShtYXgpIDogbnVsbDtcbiAgICB9XG59XG5ab2REYXRlLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZERhdGUoe1xuICAgICAgICBjaGVja3M6IFtdLFxuICAgICAgICBjb2VyY2U6IChwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuY29lcmNlKSB8fCBmYWxzZSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2REYXRlLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kU3ltYm9sIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICAgICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuc3ltYm9sKSB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLnN5bWJvbCxcbiAgICAgICAgICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgICB9XG59XG5ab2RTeW1ib2wuY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kU3ltYm9sKHtcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTeW1ib2wsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RVbmRlZmluZWQgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS51bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICAgIH1cbn1cblpvZFVuZGVmaW5lZC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RVbmRlZmluZWQoe1xuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFVuZGVmaW5lZCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZE51bGwgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5udWxsKSB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm51bGwsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT0soaW5wdXQuZGF0YSk7XG4gICAgfVxufVxuWm9kTnVsbC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2ROdWxsKHtcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROdWxsLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kQW55IGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIC8vIHRvIHByZXZlbnQgaW5zdGFuY2VzIG9mIG90aGVyIGNsYXNzZXMgZnJvbSBleHRlbmRpbmcgWm9kQW55LiB0aGlzIGNhdXNlcyBpc3N1ZXMgd2l0aCBjYXRjaGFsbCBpbiBab2RPYmplY3QuXG4gICAgICAgIHRoaXMuX2FueSA9IHRydWU7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICByZXR1cm4gT0soaW5wdXQuZGF0YSk7XG4gICAgfVxufVxuWm9kQW55LmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZEFueSh7XG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQW55LFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kVW5rbm93biBleHRlbmRzIFpvZFR5cGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICAvLyByZXF1aXJlZFxuICAgICAgICB0aGlzLl91bmtub3duID0gdHJ1ZTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgICB9XG59XG5ab2RVbmtub3duLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZFVua25vd24oe1xuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFVua25vd24sXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2ROZXZlciBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm5ldmVyLFxuICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxufVxuWm9kTmV2ZXIuY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kTmV2ZXIoe1xuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE5ldmVyLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kVm9pZCBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS52b2lkLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICAgIH1cbn1cblpvZFZvaWQuY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kVm9pZCh7XG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kVm9pZCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZEFycmF5IGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4LCBzdGF0dXMgfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGNvbnN0IGRlZiA9IHRoaXMuX2RlZjtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmFycmF5KSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLmFycmF5LFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZi5leGFjdExlbmd0aCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgdG9vQmlnID0gY3R4LmRhdGEubGVuZ3RoID4gZGVmLmV4YWN0TGVuZ3RoLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdG9vU21hbGwgPSBjdHguZGF0YS5sZW5ndGggPCBkZWYuZXhhY3RMZW5ndGgudmFsdWU7XG4gICAgICAgICAgICBpZiAodG9vQmlnIHx8IHRvb1NtYWxsKSB7XG4gICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IHRvb0JpZyA/IFpvZElzc3VlQ29kZS50b29fYmlnIDogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgbWluaW11bTogKHRvb1NtYWxsID8gZGVmLmV4YWN0TGVuZ3RoLnZhbHVlIDogdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogKHRvb0JpZyA/IGRlZi5leGFjdExlbmd0aC52YWx1ZSA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGFjdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZGVmLmV4YWN0TGVuZ3RoLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZi5taW5MZW5ndGggIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChjdHguZGF0YS5sZW5ndGggPCBkZWYubWluTGVuZ3RoLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICAgICAgICAgIG1pbmltdW06IGRlZi5taW5MZW5ndGgudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGRlZi5taW5MZW5ndGgubWVzc2FnZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVmLm1heExlbmd0aCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGN0eC5kYXRhLmxlbmd0aCA+IGRlZi5tYXhMZW5ndGgudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICAgICAgICAgIG1heGltdW06IGRlZi5tYXhMZW5ndGgudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGRlZi5tYXhMZW5ndGgubWVzc2FnZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsuLi5jdHguZGF0YV0ubWFwKChpdGVtLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZi50eXBlLl9wYXJzZUFzeW5jKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBpdGVtLCBjdHgucGF0aCwgaSkpO1xuICAgICAgICAgICAgfSkpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZUFycmF5KHN0YXR1cywgcmVzdWx0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFsuLi5jdHguZGF0YV0ubWFwKChpdGVtLCBpKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZGVmLnR5cGUuX3BhcnNlU3luYyhuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgaXRlbSwgY3R4LnBhdGgsIGkpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZUFycmF5KHN0YXR1cywgcmVzdWx0KTtcbiAgICB9XG4gICAgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudHlwZTtcbiAgICB9XG4gICAgbWluKG1pbkxlbmd0aCwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZEFycmF5KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIG1pbkxlbmd0aDogeyB2YWx1ZTogbWluTGVuZ3RoLCBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG1heChtYXhMZW5ndGgsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RBcnJheSh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBtYXhMZW5ndGg6IHsgdmFsdWU6IG1heExlbmd0aCwgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBsZW5ndGgobGVuLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kQXJyYXkoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgZXhhY3RMZW5ndGg6IHsgdmFsdWU6IGxlbiwgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBub25lbXB0eShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbigxLCBtZXNzYWdlKTtcbiAgICB9XG59XG5ab2RBcnJheS5jcmVhdGUgPSAoc2NoZW1hLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZEFycmF5KHtcbiAgICAgICAgdHlwZTogc2NoZW1hLFxuICAgICAgICBtaW5MZW5ndGg6IG51bGwsXG4gICAgICAgIG1heExlbmd0aDogbnVsbCxcbiAgICAgICAgZXhhY3RMZW5ndGg6IG51bGwsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQXJyYXksXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5mdW5jdGlvbiBkZWVwUGFydGlhbGlmeShzY2hlbWEpIHtcbiAgICBpZiAoc2NoZW1hIGluc3RhbmNlb2YgWm9kT2JqZWN0KSB7XG4gICAgICAgIGNvbnN0IG5ld1NoYXBlID0ge307XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHNjaGVtYS5zaGFwZSkge1xuICAgICAgICAgICAgY29uc3QgZmllbGRTY2hlbWEgPSBzY2hlbWEuc2hhcGVba2V5XTtcbiAgICAgICAgICAgIG5ld1NoYXBlW2tleV0gPSBab2RPcHRpb25hbC5jcmVhdGUoZGVlcFBhcnRpYWxpZnkoZmllbGRTY2hlbWEpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi5zY2hlbWEuX2RlZixcbiAgICAgICAgICAgIHNoYXBlOiAoKSA9PiBuZXdTaGFwZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIFpvZEFycmF5KSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kQXJyYXkoe1xuICAgICAgICAgICAgLi4uc2NoZW1hLl9kZWYsXG4gICAgICAgICAgICB0eXBlOiBkZWVwUGFydGlhbGlmeShzY2hlbWEuZWxlbWVudCksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBab2RPcHRpb25hbCkge1xuICAgICAgICByZXR1cm4gWm9kT3B0aW9uYWwuY3JlYXRlKGRlZXBQYXJ0aWFsaWZ5KHNjaGVtYS51bndyYXAoKSkpO1xuICAgIH1cbiAgICBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBab2ROdWxsYWJsZSkge1xuICAgICAgICByZXR1cm4gWm9kTnVsbGFibGUuY3JlYXRlKGRlZXBQYXJ0aWFsaWZ5KHNjaGVtYS51bndyYXAoKSkpO1xuICAgIH1cbiAgICBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBab2RUdXBsZSkge1xuICAgICAgICByZXR1cm4gWm9kVHVwbGUuY3JlYXRlKHNjaGVtYS5pdGVtcy5tYXAoKGl0ZW0pID0+IGRlZXBQYXJ0aWFsaWZ5KGl0ZW0pKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cbn1cbmNsYXNzIFpvZE9iamVjdCBleHRlbmRzIFpvZFR5cGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICB0aGlzLl9jYWNoZWQgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlcHJlY2F0ZWQgSW4gbW9zdCBjYXNlcywgdGhpcyBpcyBubyBsb25nZXIgbmVlZGVkIC0gdW5rbm93biBwcm9wZXJ0aWVzIGFyZSBub3cgc2lsZW50bHkgc3RyaXBwZWQuXG4gICAgICAgICAqIElmIHlvdSB3YW50IHRvIHBhc3MgdGhyb3VnaCB1bmtub3duIHByb3BlcnRpZXMsIHVzZSBgLnBhc3N0aHJvdWdoKClgIGluc3RlYWQuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm5vbnN0cmljdCA9IHRoaXMucGFzc3Rocm91Z2g7XG4gICAgICAgIC8vIGV4dGVuZDxcbiAgICAgICAgLy8gICBBdWdtZW50YXRpb24gZXh0ZW5kcyBab2RSYXdTaGFwZSxcbiAgICAgICAgLy8gICBOZXdPdXRwdXQgZXh0ZW5kcyB1dGlsLmZsYXR0ZW48e1xuICAgICAgICAvLyAgICAgW2sgaW4ga2V5b2YgQXVnbWVudGF0aW9uIHwga2V5b2YgT3V0cHV0XTogayBleHRlbmRzIGtleW9mIEF1Z21lbnRhdGlvblxuICAgICAgICAvLyAgICAgICA/IEF1Z21lbnRhdGlvbltrXVtcIl9vdXRwdXRcIl1cbiAgICAgICAgLy8gICAgICAgOiBrIGV4dGVuZHMga2V5b2YgT3V0cHV0XG4gICAgICAgIC8vICAgICAgID8gT3V0cHV0W2tdXG4gICAgICAgIC8vICAgICAgIDogbmV2ZXI7XG4gICAgICAgIC8vICAgfT4sXG4gICAgICAgIC8vICAgTmV3SW5wdXQgZXh0ZW5kcyB1dGlsLmZsYXR0ZW48e1xuICAgICAgICAvLyAgICAgW2sgaW4ga2V5b2YgQXVnbWVudGF0aW9uIHwga2V5b2YgSW5wdXRdOiBrIGV4dGVuZHMga2V5b2YgQXVnbWVudGF0aW9uXG4gICAgICAgIC8vICAgICAgID8gQXVnbWVudGF0aW9uW2tdW1wiX2lucHV0XCJdXG4gICAgICAgIC8vICAgICAgIDogayBleHRlbmRzIGtleW9mIElucHV0XG4gICAgICAgIC8vICAgICAgID8gSW5wdXRba11cbiAgICAgICAgLy8gICAgICAgOiBuZXZlcjtcbiAgICAgICAgLy8gICB9PlxuICAgICAgICAvLyA+KFxuICAgICAgICAvLyAgIGF1Z21lbnRhdGlvbjogQXVnbWVudGF0aW9uXG4gICAgICAgIC8vICk6IFpvZE9iamVjdDxcbiAgICAgICAgLy8gICBleHRlbmRTaGFwZTxULCBBdWdtZW50YXRpb24+LFxuICAgICAgICAvLyAgIFVua25vd25LZXlzLFxuICAgICAgICAvLyAgIENhdGNoYWxsLFxuICAgICAgICAvLyAgIE5ld091dHB1dCxcbiAgICAgICAgLy8gICBOZXdJbnB1dFxuICAgICAgICAvLyA+IHtcbiAgICAgICAgLy8gICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgIC8vICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgIC8vICAgICBzaGFwZTogKCkgPT4gKHtcbiAgICAgICAgLy8gICAgICAgLi4udGhpcy5fZGVmLnNoYXBlKCksXG4gICAgICAgIC8vICAgICAgIC4uLmF1Z21lbnRhdGlvbixcbiAgICAgICAgLy8gICAgIH0pLFxuICAgICAgICAvLyAgIH0pIGFzIGFueTtcbiAgICAgICAgLy8gfVxuICAgICAgICAvKipcbiAgICAgICAgICogQGRlcHJlY2F0ZWQgVXNlIGAuZXh0ZW5kYCBpbnN0ZWFkXG4gICAgICAgICAqICAqL1xuICAgICAgICB0aGlzLmF1Z21lbnQgPSB0aGlzLmV4dGVuZDtcbiAgICB9XG4gICAgX2dldENhY2hlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2NhY2hlZCAhPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jYWNoZWQ7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gdGhpcy5fZGVmLnNoYXBlKCk7XG4gICAgICAgIGNvbnN0IGtleXMgPSB1dGlsLm9iamVjdEtleXMoc2hhcGUpO1xuICAgICAgICByZXR1cm4gKHRoaXMuX2NhY2hlZCA9IHsgc2hhcGUsIGtleXMgfSk7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm9iamVjdCkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5vYmplY3QsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHN0YXR1cywgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBjb25zdCB7IHNoYXBlLCBrZXlzOiBzaGFwZUtleXMgfSA9IHRoaXMuX2dldENhY2hlZCgpO1xuICAgICAgICBjb25zdCBleHRyYUtleXMgPSBbXTtcbiAgICAgICAgaWYgKCEodGhpcy5fZGVmLmNhdGNoYWxsIGluc3RhbmNlb2YgWm9kTmV2ZXIgJiZcbiAgICAgICAgICAgIHRoaXMuX2RlZi51bmtub3duS2V5cyA9PT0gXCJzdHJpcFwiKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gY3R4LmRhdGEpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNoYXBlS2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4dHJhS2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhaXJzID0gW107XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHNoYXBlS2V5cykge1xuICAgICAgICAgICAgY29uc3Qga2V5VmFsaWRhdG9yID0gc2hhcGVba2V5XTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY3R4LmRhdGFba2V5XTtcbiAgICAgICAgICAgIHBhaXJzLnB1c2goe1xuICAgICAgICAgICAgICAgIGtleTogeyBzdGF0dXM6IFwidmFsaWRcIiwgdmFsdWU6IGtleSB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBrZXlWYWxpZGF0b3IuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCB2YWx1ZSwgY3R4LnBhdGgsIGtleSkpLFxuICAgICAgICAgICAgICAgIGFsd2F5c1NldDoga2V5IGluIGN0eC5kYXRhLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2RlZi5jYXRjaGFsbCBpbnN0YW5jZW9mIFpvZE5ldmVyKSB7XG4gICAgICAgICAgICBjb25zdCB1bmtub3duS2V5cyA9IHRoaXMuX2RlZi51bmtub3duS2V5cztcbiAgICAgICAgICAgIGlmICh1bmtub3duS2V5cyA9PT0gXCJwYXNzdGhyb3VnaFwiKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXh0cmFLZXlzKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhaXJzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiB7IHN0YXR1czogXCJ2YWxpZFwiLCB2YWx1ZToga2V5IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogeyBzdGF0dXM6IFwidmFsaWRcIiwgdmFsdWU6IGN0eC5kYXRhW2tleV0gfSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodW5rbm93bktleXMgPT09IFwic3RyaWN0XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXh0cmFLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudW5yZWNvZ25pemVkX2tleXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlzOiBleHRyYUtleXMsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh1bmtub3duS2V5cyA9PT0gXCJzdHJpcFwiKSA7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludGVybmFsIFpvZE9iamVjdCBlcnJvcjogaW52YWxpZCB1bmtub3duS2V5cyB2YWx1ZS5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIHJ1biBjYXRjaGFsbCB2YWxpZGF0aW9uXG4gICAgICAgICAgICBjb25zdCBjYXRjaGFsbCA9IHRoaXMuX2RlZi5jYXRjaGFsbDtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGV4dHJhS2V5cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY3R4LmRhdGFba2V5XTtcbiAgICAgICAgICAgICAgICBwYWlycy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiB7IHN0YXR1czogXCJ2YWxpZFwiLCB2YWx1ZToga2V5IH0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjYXRjaGFsbC5fcGFyc2UobmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIHZhbHVlLCBjdHgucGF0aCwga2V5KSAvLywgY3R4LmNoaWxkKGtleSksIHZhbHVlLCBnZXRQYXJzZWRUeXBlKHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBhbHdheXNTZXQ6IGtleSBpbiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAgICAgICAgICAgLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN5bmNQYWlycyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFpciBvZiBwYWlycykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBhd2FpdCBwYWlyLmtleTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYWlyLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBzeW5jUGFpcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsd2F5c1NldDogcGFpci5hbHdheXNTZXQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gc3luY1BhaXJzO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoc3luY1BhaXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyhzdGF0dXMsIHN5bmNQYWlycyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZU9iamVjdFN5bmMoc3RhdHVzLCBwYWlycyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHNoYXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnNoYXBlKCk7XG4gICAgfVxuICAgIHN0cmljdChtZXNzYWdlKSB7XG4gICAgICAgIGVycm9yVXRpbC5lcnJUb09iajtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgdW5rbm93bktleXM6IFwic3RyaWN0XCIsXG4gICAgICAgICAgICAuLi4obWVzc2FnZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yTWFwOiAoaXNzdWUsIGN0eCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdEVycm9yID0gKF9jID0gKF9iID0gKF9hID0gdGhpcy5fZGVmKS5lcnJvck1hcCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIGlzc3VlLCBjdHgpLm1lc3NhZ2UpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IGN0eC5kZWZhdWx0RXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNzdWUuY29kZSA9PT0gXCJ1bnJlY29nbml6ZWRfa2V5c1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IChfZCA9IGVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKS5tZXNzYWdlKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBkZWZhdWx0RXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZGVmYXVsdEVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdHJpcCgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgdW5rbm93bktleXM6IFwic3RyaXBcIixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHBhc3N0aHJvdWdoKCkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICB1bmtub3duS2V5czogXCJwYXNzdGhyb3VnaFwiLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLy8gY29uc3QgQXVnbWVudEZhY3RvcnkgPVxuICAgIC8vICAgPERlZiBleHRlbmRzIFpvZE9iamVjdERlZj4oZGVmOiBEZWYpID0+XG4gICAgLy8gICA8QXVnbWVudGF0aW9uIGV4dGVuZHMgWm9kUmF3U2hhcGU+KFxuICAgIC8vICAgICBhdWdtZW50YXRpb246IEF1Z21lbnRhdGlvblxuICAgIC8vICAgKTogWm9kT2JqZWN0PFxuICAgIC8vICAgICBleHRlbmRTaGFwZTxSZXR1cm5UeXBlPERlZltcInNoYXBlXCJdPiwgQXVnbWVudGF0aW9uPixcbiAgICAvLyAgICAgRGVmW1widW5rbm93bktleXNcIl0sXG4gICAgLy8gICAgIERlZltcImNhdGNoYWxsXCJdXG4gICAgLy8gICA+ID0+IHtcbiAgICAvLyAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgIC8vICAgICAgIC4uLmRlZixcbiAgICAvLyAgICAgICBzaGFwZTogKCkgPT4gKHtcbiAgICAvLyAgICAgICAgIC4uLmRlZi5zaGFwZSgpLFxuICAgIC8vICAgICAgICAgLi4uYXVnbWVudGF0aW9uLFxuICAgIC8vICAgICAgIH0pLFxuICAgIC8vICAgICB9KSBhcyBhbnk7XG4gICAgLy8gICB9O1xuICAgIGV4dGVuZChhdWdtZW50YXRpb24pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgc2hhcGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5fZGVmLnNoYXBlKCksXG4gICAgICAgICAgICAgICAgLi4uYXVnbWVudGF0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQcmlvciB0byB6b2RAMS4wLjEyIHRoZXJlIHdhcyBhIGJ1ZyBpbiB0aGVcbiAgICAgKiBpbmZlcnJlZCB0eXBlIG9mIG1lcmdlZCBvYmplY3RzLiBQbGVhc2VcbiAgICAgKiB1cGdyYWRlIGlmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIGlzc3Vlcy5cbiAgICAgKi9cbiAgICBtZXJnZShtZXJnaW5nKSB7XG4gICAgICAgIGNvbnN0IG1lcmdlZCA9IG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgdW5rbm93bktleXM6IG1lcmdpbmcuX2RlZi51bmtub3duS2V5cyxcbiAgICAgICAgICAgIGNhdGNoYWxsOiBtZXJnaW5nLl9kZWYuY2F0Y2hhbGwsXG4gICAgICAgICAgICBzaGFwZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWYuc2hhcGUoKSxcbiAgICAgICAgICAgICAgICAuLi5tZXJnaW5nLl9kZWYuc2hhcGUoKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RPYmplY3QsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWVyZ2VkO1xuICAgIH1cbiAgICAvLyBtZXJnZTxcbiAgICAvLyAgIEluY29taW5nIGV4dGVuZHMgQW55Wm9kT2JqZWN0LFxuICAgIC8vICAgQXVnbWVudGF0aW9uIGV4dGVuZHMgSW5jb21pbmdbXCJzaGFwZVwiXSxcbiAgICAvLyAgIE5ld091dHB1dCBleHRlbmRzIHtcbiAgICAvLyAgICAgW2sgaW4ga2V5b2YgQXVnbWVudGF0aW9uIHwga2V5b2YgT3V0cHV0XTogayBleHRlbmRzIGtleW9mIEF1Z21lbnRhdGlvblxuICAgIC8vICAgICAgID8gQXVnbWVudGF0aW9uW2tdW1wiX291dHB1dFwiXVxuICAgIC8vICAgICAgIDogayBleHRlbmRzIGtleW9mIE91dHB1dFxuICAgIC8vICAgICAgID8gT3V0cHV0W2tdXG4gICAgLy8gICAgICAgOiBuZXZlcjtcbiAgICAvLyAgIH0sXG4gICAgLy8gICBOZXdJbnB1dCBleHRlbmRzIHtcbiAgICAvLyAgICAgW2sgaW4ga2V5b2YgQXVnbWVudGF0aW9uIHwga2V5b2YgSW5wdXRdOiBrIGV4dGVuZHMga2V5b2YgQXVnbWVudGF0aW9uXG4gICAgLy8gICAgICAgPyBBdWdtZW50YXRpb25ba11bXCJfaW5wdXRcIl1cbiAgICAvLyAgICAgICA6IGsgZXh0ZW5kcyBrZXlvZiBJbnB1dFxuICAgIC8vICAgICAgID8gSW5wdXRba11cbiAgICAvLyAgICAgICA6IG5ldmVyO1xuICAgIC8vICAgfVxuICAgIC8vID4oXG4gICAgLy8gICBtZXJnaW5nOiBJbmNvbWluZ1xuICAgIC8vICk6IFpvZE9iamVjdDxcbiAgICAvLyAgIGV4dGVuZFNoYXBlPFQsIFJldHVyblR5cGU8SW5jb21pbmdbXCJfZGVmXCJdW1wic2hhcGVcIl0+PixcbiAgICAvLyAgIEluY29taW5nW1wiX2RlZlwiXVtcInVua25vd25LZXlzXCJdLFxuICAgIC8vICAgSW5jb21pbmdbXCJfZGVmXCJdW1wiY2F0Y2hhbGxcIl0sXG4gICAgLy8gICBOZXdPdXRwdXQsXG4gICAgLy8gICBOZXdJbnB1dFxuICAgIC8vID4ge1xuICAgIC8vICAgY29uc3QgbWVyZ2VkOiBhbnkgPSBuZXcgWm9kT2JqZWN0KHtcbiAgICAvLyAgICAgdW5rbm93bktleXM6IG1lcmdpbmcuX2RlZi51bmtub3duS2V5cyxcbiAgICAvLyAgICAgY2F0Y2hhbGw6IG1lcmdpbmcuX2RlZi5jYXRjaGFsbCxcbiAgICAvLyAgICAgc2hhcGU6ICgpID0+XG4gICAgLy8gICAgICAgb2JqZWN0VXRpbC5tZXJnZVNoYXBlcyh0aGlzLl9kZWYuc2hhcGUoKSwgbWVyZ2luZy5fZGVmLnNoYXBlKCkpLFxuICAgIC8vICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdCxcbiAgICAvLyAgIH0pIGFzIGFueTtcbiAgICAvLyAgIHJldHVybiBtZXJnZWQ7XG4gICAgLy8gfVxuICAgIHNldEtleShrZXksIHNjaGVtYSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hdWdtZW50KHsgW2tleV06IHNjaGVtYSB9KTtcbiAgICB9XG4gICAgLy8gbWVyZ2U8SW5jb21pbmcgZXh0ZW5kcyBBbnlab2RPYmplY3Q+KFxuICAgIC8vICAgbWVyZ2luZzogSW5jb21pbmdcbiAgICAvLyApOiAvL1pvZE9iamVjdDxUICYgSW5jb21pbmdbXCJfc2hhcGVcIl0sIFVua25vd25LZXlzLCBDYXRjaGFsbD4gPSAobWVyZ2luZykgPT4ge1xuICAgIC8vIFpvZE9iamVjdDxcbiAgICAvLyAgIGV4dGVuZFNoYXBlPFQsIFJldHVyblR5cGU8SW5jb21pbmdbXCJfZGVmXCJdW1wic2hhcGVcIl0+PixcbiAgICAvLyAgIEluY29taW5nW1wiX2RlZlwiXVtcInVua25vd25LZXlzXCJdLFxuICAgIC8vICAgSW5jb21pbmdbXCJfZGVmXCJdW1wiY2F0Y2hhbGxcIl1cbiAgICAvLyA+IHtcbiAgICAvLyAgIC8vIGNvbnN0IG1lcmdlZFNoYXBlID0gb2JqZWN0VXRpbC5tZXJnZVNoYXBlcyhcbiAgICAvLyAgIC8vICAgdGhpcy5fZGVmLnNoYXBlKCksXG4gICAgLy8gICAvLyAgIG1lcmdpbmcuX2RlZi5zaGFwZSgpXG4gICAgLy8gICAvLyApO1xuICAgIC8vICAgY29uc3QgbWVyZ2VkOiBhbnkgPSBuZXcgWm9kT2JqZWN0KHtcbiAgICAvLyAgICAgdW5rbm93bktleXM6IG1lcmdpbmcuX2RlZi51bmtub3duS2V5cyxcbiAgICAvLyAgICAgY2F0Y2hhbGw6IG1lcmdpbmcuX2RlZi5jYXRjaGFsbCxcbiAgICAvLyAgICAgc2hhcGU6ICgpID0+XG4gICAgLy8gICAgICAgb2JqZWN0VXRpbC5tZXJnZVNoYXBlcyh0aGlzLl9kZWYuc2hhcGUoKSwgbWVyZ2luZy5fZGVmLnNoYXBlKCkpLFxuICAgIC8vICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdCxcbiAgICAvLyAgIH0pIGFzIGFueTtcbiAgICAvLyAgIHJldHVybiBtZXJnZWQ7XG4gICAgLy8gfVxuICAgIGNhdGNoYWxsKGluZGV4KSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kT2JqZWN0KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIGNhdGNoYWxsOiBpbmRleCxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHBpY2sobWFzaykge1xuICAgICAgICBjb25zdCBzaGFwZSA9IHt9O1xuICAgICAgICB1dGlsLm9iamVjdEtleXMobWFzaykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAobWFza1trZXldICYmIHRoaXMuc2hhcGVba2V5XSkge1xuICAgICAgICAgICAgICAgIHNoYXBlW2tleV0gPSB0aGlzLnNoYXBlW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBzaGFwZTogKCkgPT4gc2hhcGUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvbWl0KG1hc2spIHtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSB7fTtcbiAgICAgICAgdXRpbC5vYmplY3RLZXlzKHRoaXMuc2hhcGUpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFtYXNrW2tleV0pIHtcbiAgICAgICAgICAgICAgICBzaGFwZVtrZXldID0gdGhpcy5zaGFwZVtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgc2hhcGU6ICgpID0+IHNoYXBlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBkZWVwUGFydGlhbCgpIHtcbiAgICAgICAgcmV0dXJuIGRlZXBQYXJ0aWFsaWZ5KHRoaXMpO1xuICAgIH1cbiAgICBwYXJ0aWFsKG1hc2spIHtcbiAgICAgICAgY29uc3QgbmV3U2hhcGUgPSB7fTtcbiAgICAgICAgdXRpbC5vYmplY3RLZXlzKHRoaXMuc2hhcGUpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmllbGRTY2hlbWEgPSB0aGlzLnNoYXBlW2tleV07XG4gICAgICAgICAgICBpZiAobWFzayAmJiAhbWFza1trZXldKSB7XG4gICAgICAgICAgICAgICAgbmV3U2hhcGVba2V5XSA9IGZpZWxkU2NoZW1hO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3U2hhcGVba2V5XSA9IGZpZWxkU2NoZW1hLm9wdGlvbmFsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBzaGFwZTogKCkgPT4gbmV3U2hhcGUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXF1aXJlZChtYXNrKSB7XG4gICAgICAgIGNvbnN0IG5ld1NoYXBlID0ge307XG4gICAgICAgIHV0aWwub2JqZWN0S2V5cyh0aGlzLnNoYXBlKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChtYXNrICYmICFtYXNrW2tleV0pIHtcbiAgICAgICAgICAgICAgICBuZXdTaGFwZVtrZXldID0gdGhpcy5zaGFwZVtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRTY2hlbWEgPSB0aGlzLnNoYXBlW2tleV07XG4gICAgICAgICAgICAgICAgbGV0IG5ld0ZpZWxkID0gZmllbGRTY2hlbWE7XG4gICAgICAgICAgICAgICAgd2hpbGUgKG5ld0ZpZWxkIGluc3RhbmNlb2YgWm9kT3B0aW9uYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3RmllbGQgPSBuZXdGaWVsZC5fZGVmLmlubmVyVHlwZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmV3U2hhcGVba2V5XSA9IG5ld0ZpZWxkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgc2hhcGU6ICgpID0+IG5ld1NoYXBlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAga2V5b2YoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVab2RFbnVtKHV0aWwub2JqZWN0S2V5cyh0aGlzLnNoYXBlKSk7XG4gICAgfVxufVxuWm9kT2JqZWN0LmNyZWF0ZSA9IChzaGFwZSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICBzaGFwZTogKCkgPT4gc2hhcGUsXG4gICAgICAgIHVua25vd25LZXlzOiBcInN0cmlwXCIsXG4gICAgICAgIGNhdGNoYWxsOiBab2ROZXZlci5jcmVhdGUoKSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RPYmplY3QsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5ab2RPYmplY3Quc3RyaWN0Q3JlYXRlID0gKHNoYXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgIHNoYXBlOiAoKSA9PiBzaGFwZSxcbiAgICAgICAgdW5rbm93bktleXM6IFwic3RyaWN0XCIsXG4gICAgICAgIGNhdGNoYWxsOiBab2ROZXZlci5jcmVhdGUoKSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RPYmplY3QsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5ab2RPYmplY3QubGF6eWNyZWF0ZSA9IChzaGFwZSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICBzaGFwZSxcbiAgICAgICAgdW5rbm93bktleXM6IFwic3RyaXBcIixcbiAgICAgICAgY2F0Y2hhbGw6IFpvZE5ldmVyLmNyZWF0ZSgpLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZFVuaW9uIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fZGVmLm9wdGlvbnM7XG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZVJlc3VsdHMocmVzdWx0cykge1xuICAgICAgICAgICAgLy8gcmV0dXJuIGZpcnN0IGlzc3VlLWZyZWUgdmFsaWRhdGlvbiBpZiBpdCBleGlzdHNcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdC5zdGF0dXMgPT09IFwidmFsaWRcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHQuc3RhdHVzID09PSBcImRpcnR5XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGlzc3VlcyBmcm9tIGRpcnR5IG9wdGlvblxuICAgICAgICAgICAgICAgICAgICBjdHguY29tbW9uLmlzc3Vlcy5wdXNoKC4uLnJlc3VsdC5jdHguY29tbW9uLmlzc3Vlcyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJldHVybiBpbnZhbGlkXG4gICAgICAgICAgICBjb25zdCB1bmlvbkVycm9ycyA9IHJlc3VsdHMubWFwKChyZXN1bHQpID0+IG5ldyBab2RFcnJvcihyZXN1bHQuY3R4LmNvbW1vbi5pc3N1ZXMpKTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uLFxuICAgICAgICAgICAgICAgIHVuaW9uRXJyb3JzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKG9wdGlvbnMubWFwKGFzeW5jIChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZEN0eCA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY3R4LFxuICAgICAgICAgICAgICAgICAgICBjb21tb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmN0eC5jb21tb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IGF3YWl0IG9wdGlvbi5fcGFyc2VBc3luYyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjaGlsZEN0eCxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIGN0eDogY2hpbGRDdHgsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pKS50aGVuKGhhbmRsZVJlc3VsdHMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IGRpcnR5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaXNzdWVzID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRDdHggPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmN0eCxcbiAgICAgICAgICAgICAgICAgICAgY29tbW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5jdHguY29tbW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gb3B0aW9uLl9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogY2hpbGRDdHgsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IFwidmFsaWRcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXN1bHQuc3RhdHVzID09PSBcImRpcnR5XCIgJiYgIWRpcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgIGRpcnR5ID0geyByZXN1bHQsIGN0eDogY2hpbGRDdHggfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkQ3R4LmNvbW1vbi5pc3N1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzc3Vlcy5wdXNoKGNoaWxkQ3R4LmNvbW1vbi5pc3N1ZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgIGN0eC5jb21tb24uaXNzdWVzLnB1c2goLi4uZGlydHkuY3R4LmNvbW1vbi5pc3N1ZXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXJ0eS5yZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB1bmlvbkVycm9ycyA9IGlzc3Vlcy5tYXAoKGlzc3VlcykgPT4gbmV3IFpvZEVycm9yKGlzc3VlcykpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb24sXG4gICAgICAgICAgICAgICAgdW5pb25FcnJvcnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBvcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLm9wdGlvbnM7XG4gICAgfVxufVxuWm9kVW5pb24uY3JlYXRlID0gKHR5cGVzLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZFVuaW9uKHtcbiAgICAgICAgb3B0aW9uczogdHlwZXMsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kVW5pb24sXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLy8vLy8vLy8vXG4vLy8vLy8vLy8vICAgICAgWm9kRGlzY3JpbWluYXRlZFVuaW9uICAgICAgLy8vLy8vLy8vL1xuLy8vLy8vLy8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuY29uc3QgZ2V0RGlzY3JpbWluYXRvciA9ICh0eXBlKSA9PiB7XG4gICAgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RMYXp5KSB7XG4gICAgICAgIHJldHVybiBnZXREaXNjcmltaW5hdG9yKHR5cGUuc2NoZW1hKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZEVmZmVjdHMpIHtcbiAgICAgICAgcmV0dXJuIGdldERpc2NyaW1pbmF0b3IodHlwZS5pbm5lclR5cGUoKSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RMaXRlcmFsKSB7XG4gICAgICAgIHJldHVybiBbdHlwZS52YWx1ZV07XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RFbnVtKSB7XG4gICAgICAgIHJldHVybiB0eXBlLm9wdGlvbnM7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2ROYXRpdmVFbnVtKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBiYW4vYmFuXG4gICAgICAgIHJldHVybiB1dGlsLm9iamVjdFZhbHVlcyh0eXBlLmVudW0pO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kRGVmYXVsdCkge1xuICAgICAgICByZXR1cm4gZ2V0RGlzY3JpbWluYXRvcih0eXBlLl9kZWYuaW5uZXJUeXBlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZFVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gW3VuZGVmaW5lZF07XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2ROdWxsKSB7XG4gICAgICAgIHJldHVybiBbbnVsbF07XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RPcHRpb25hbCkge1xuICAgICAgICByZXR1cm4gW3VuZGVmaW5lZCwgLi4uZ2V0RGlzY3JpbWluYXRvcih0eXBlLnVud3JhcCgpKV07XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2ROdWxsYWJsZSkge1xuICAgICAgICByZXR1cm4gW251bGwsIC4uLmdldERpc2NyaW1pbmF0b3IodHlwZS51bndyYXAoKSldO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kQnJhbmRlZCkge1xuICAgICAgICByZXR1cm4gZ2V0RGlzY3JpbWluYXRvcih0eXBlLnVud3JhcCgpKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZFJlYWRvbmx5KSB7XG4gICAgICAgIHJldHVybiBnZXREaXNjcmltaW5hdG9yKHR5cGUudW53cmFwKCkpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kQ2F0Y2gpIHtcbiAgICAgICAgcmV0dXJuIGdldERpc2NyaW1pbmF0b3IodHlwZS5fZGVmLmlubmVyVHlwZSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxufTtcbmNsYXNzIFpvZERpc2NyaW1pbmF0ZWRVbmlvbiBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm9iamVjdCkge1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5vYmplY3QsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yID0gdGhpcy5kaXNjcmltaW5hdG9yO1xuICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yVmFsdWUgPSBjdHguZGF0YVtkaXNjcmltaW5hdG9yXTtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5vcHRpb25zTWFwLmdldChkaXNjcmltaW5hdG9yVmFsdWUpO1xuICAgICAgICBpZiAoIW9wdGlvbikge1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb25fZGlzY3JpbWluYXRvcixcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBBcnJheS5mcm9tKHRoaXMub3B0aW9uc01hcC5rZXlzKCkpLFxuICAgICAgICAgICAgICAgIHBhdGg6IFtkaXNjcmltaW5hdG9yXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb24uX3BhcnNlQXN5bmMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uLl9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGRpc2NyaW1pbmF0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuZGlzY3JpbWluYXRvcjtcbiAgICB9XG4gICAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYub3B0aW9ucztcbiAgICB9XG4gICAgZ2V0IG9wdGlvbnNNYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYub3B0aW9uc01hcDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhlIGNvbnN0cnVjdG9yIG9mIHRoZSBkaXNjcmltaW5hdGVkIHVuaW9uIHNjaGVtYS4gSXRzIGJlaGF2aW91ciBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhhdCBvZiB0aGUgbm9ybWFsIHoudW5pb24oKSBjb25zdHJ1Y3Rvci5cbiAgICAgKiBIb3dldmVyLCBpdCBvbmx5IGFsbG93cyBhIHVuaW9uIG9mIG9iamVjdHMsIGFsbCBvZiB3aGljaCBuZWVkIHRvIHNoYXJlIGEgZGlzY3JpbWluYXRvciBwcm9wZXJ0eS4gVGhpcyBwcm9wZXJ0eSBtdXN0XG4gICAgICogaGF2ZSBhIGRpZmZlcmVudCB2YWx1ZSBmb3IgZWFjaCBvYmplY3QgaW4gdGhlIHVuaW9uLlxuICAgICAqIEBwYXJhbSBkaXNjcmltaW5hdG9yIHRoZSBuYW1lIG9mIHRoZSBkaXNjcmltaW5hdG9yIHByb3BlcnR5XG4gICAgICogQHBhcmFtIHR5cGVzIGFuIGFycmF5IG9mIG9iamVjdCBzY2hlbWFzXG4gICAgICogQHBhcmFtIHBhcmFtc1xuICAgICAqL1xuICAgIHN0YXRpYyBjcmVhdGUoZGlzY3JpbWluYXRvciwgb3B0aW9ucywgcGFyYW1zKSB7XG4gICAgICAgIC8vIEdldCBhbGwgdGhlIHZhbGlkIGRpc2NyaW1pbmF0b3IgdmFsdWVzXG4gICAgICAgIGNvbnN0IG9wdGlvbnNNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIC8vIHRyeSB7XG4gICAgICAgIGZvciAoY29uc3QgdHlwZSBvZiBvcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yVmFsdWVzID0gZ2V0RGlzY3JpbWluYXRvcih0eXBlLnNoYXBlW2Rpc2NyaW1pbmF0b3JdKTtcbiAgICAgICAgICAgIGlmICghZGlzY3JpbWluYXRvclZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEEgZGlzY3JpbWluYXRvciB2YWx1ZSBmb3Iga2V5IFxcYCR7ZGlzY3JpbWluYXRvcn1cXGAgY291bGQgbm90IGJlIGV4dHJhY3RlZCBmcm9tIGFsbCBzY2hlbWEgb3B0aW9uc2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBkaXNjcmltaW5hdG9yVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnNNYXAuaGFzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYERpc2NyaW1pbmF0b3IgcHJvcGVydHkgJHtTdHJpbmcoZGlzY3JpbWluYXRvcil9IGhhcyBkdXBsaWNhdGUgdmFsdWUgJHtTdHJpbmcodmFsdWUpfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvcHRpb25zTWFwLnNldCh2YWx1ZSwgdHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBab2REaXNjcmltaW5hdGVkVW5pb24oe1xuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2REaXNjcmltaW5hdGVkVW5pb24sXG4gICAgICAgICAgICBkaXNjcmltaW5hdG9yLFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIG9wdGlvbnNNYXAsXG4gICAgICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG1lcmdlVmFsdWVzKGEsIGIpIHtcbiAgICBjb25zdCBhVHlwZSA9IGdldFBhcnNlZFR5cGUoYSk7XG4gICAgY29uc3QgYlR5cGUgPSBnZXRQYXJzZWRUeXBlKGIpO1xuICAgIGlmIChhID09PSBiKSB7XG4gICAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlLCBkYXRhOiBhIH07XG4gICAgfVxuICAgIGVsc2UgaWYgKGFUeXBlID09PSBab2RQYXJzZWRUeXBlLm9iamVjdCAmJiBiVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5vYmplY3QpIHtcbiAgICAgICAgY29uc3QgYktleXMgPSB1dGlsLm9iamVjdEtleXMoYik7XG4gICAgICAgIGNvbnN0IHNoYXJlZEtleXMgPSB1dGlsXG4gICAgICAgICAgICAub2JqZWN0S2V5cyhhKVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBiS2V5cy5pbmRleE9mKGtleSkgIT09IC0xKTtcbiAgICAgICAgY29uc3QgbmV3T2JqID0geyAuLi5hLCAuLi5iIH07XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHNoYXJlZEtleXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHNoYXJlZFZhbHVlID0gbWVyZ2VWYWx1ZXMoYVtrZXldLCBiW2tleV0pO1xuICAgICAgICAgICAgaWYgKCFzaGFyZWRWYWx1ZS52YWxpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBzaGFyZWRWYWx1ZS5kYXRhO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlLCBkYXRhOiBuZXdPYmogfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoYVR5cGUgPT09IFpvZFBhcnNlZFR5cGUuYXJyYXkgJiYgYlR5cGUgPT09IFpvZFBhcnNlZFR5cGUuYXJyYXkpIHtcbiAgICAgICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3QXJyYXkgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGEubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtQSA9IGFbaW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgaXRlbUIgPSBiW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IHNoYXJlZFZhbHVlID0gbWVyZ2VWYWx1ZXMoaXRlbUEsIGl0ZW1CKTtcbiAgICAgICAgICAgIGlmICghc2hhcmVkVmFsdWUudmFsaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyB2YWxpZDogZmFsc2UgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5ld0FycmF5LnB1c2goc2hhcmVkVmFsdWUuZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUsIGRhdGE6IG5ld0FycmF5IH07XG4gICAgfVxuICAgIGVsc2UgaWYgKGFUeXBlID09PSBab2RQYXJzZWRUeXBlLmRhdGUgJiZcbiAgICAgICAgYlR5cGUgPT09IFpvZFBhcnNlZFR5cGUuZGF0ZSAmJlxuICAgICAgICArYSA9PT0gK2IpIHtcbiAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUsIGRhdGE6IGEgfTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSB9O1xuICAgIH1cbn1cbmNsYXNzIFpvZEludGVyc2VjdGlvbiBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IHN0YXR1cywgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBjb25zdCBoYW5kbGVQYXJzZWQgPSAocGFyc2VkTGVmdCwgcGFyc2VkUmlnaHQpID0+IHtcbiAgICAgICAgICAgIGlmIChpc0Fib3J0ZWQocGFyc2VkTGVmdCkgfHwgaXNBYm9ydGVkKHBhcnNlZFJpZ2h0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWVyZ2VkID0gbWVyZ2VWYWx1ZXMocGFyc2VkTGVmdC52YWx1ZSwgcGFyc2VkUmlnaHQudmFsdWUpO1xuICAgICAgICAgICAgaWYgKCFtZXJnZWQudmFsaWQpIHtcbiAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfaW50ZXJzZWN0aW9uX3R5cGVzLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzRGlydHkocGFyc2VkTGVmdCkgfHwgaXNEaXJ0eShwYXJzZWRSaWdodCkpIHtcbiAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogbWVyZ2VkLmRhdGEgfTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVmLmxlZnQuX3BhcnNlQXN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRoaXMuX2RlZi5yaWdodC5fcGFyc2VBc3luYyh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdKS50aGVuKChbbGVmdCwgcmlnaHRdKSA9PiBoYW5kbGVQYXJzZWQobGVmdCwgcmlnaHQpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVQYXJzZWQodGhpcy5fZGVmLmxlZnQuX3BhcnNlU3luYyh7XG4gICAgICAgICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICB9KSwgdGhpcy5fZGVmLnJpZ2h0Ll9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuWm9kSW50ZXJzZWN0aW9uLmNyZWF0ZSA9IChsZWZ0LCByaWdodCwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RJbnRlcnNlY3Rpb24oe1xuICAgICAgICBsZWZ0OiBsZWZ0LFxuICAgICAgICByaWdodDogcmlnaHQsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kSW50ZXJzZWN0aW9uLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kVHVwbGUgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBzdGF0dXMsIGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmFycmF5KSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLmFycmF5LFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN0eC5kYXRhLmxlbmd0aCA8IHRoaXMuX2RlZi5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICAgICAgbWluaW11bTogdGhpcy5fZGVmLml0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdCA9IHRoaXMuX2RlZi5yZXN0O1xuICAgICAgICBpZiAoIXJlc3QgJiYgY3R4LmRhdGEubGVuZ3RoID4gdGhpcy5fZGVmLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICAgICAgbWF4aW11bTogdGhpcy5fZGVmLml0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbXMgPSBbLi4uY3R4LmRhdGFdXG4gICAgICAgICAgICAubWFwKChpdGVtLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYSA9IHRoaXMuX2RlZi5pdGVtc1tpdGVtSW5kZXhdIHx8IHRoaXMuX2RlZi5yZXN0O1xuICAgICAgICAgICAgaWYgKCFzY2hlbWEpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICByZXR1cm4gc2NoZW1hLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgaXRlbSwgY3R4LnBhdGgsIGl0ZW1JbmRleCkpO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLmZpbHRlcigoeCkgPT4gISF4KTsgLy8gZmlsdGVyIG51bGxzXG4gICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoaXRlbXMpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUGFyc2VTdGF0dXMubWVyZ2VBcnJheShzdGF0dXMsIHJlc3VsdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUGFyc2VTdGF0dXMubWVyZ2VBcnJheShzdGF0dXMsIGl0ZW1zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgaXRlbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuaXRlbXM7XG4gICAgfVxuICAgIHJlc3QocmVzdCkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZFR1cGxlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIHJlc3QsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblpvZFR1cGxlLmNyZWF0ZSA9IChzY2hlbWFzLCBwYXJhbXMpID0+IHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWW91IG11c3QgcGFzcyBhbiBhcnJheSBvZiBzY2hlbWFzIHRvIHoudHVwbGUoWyAuLi4gXSlcIik7XG4gICAgfVxuICAgIHJldHVybiBuZXcgWm9kVHVwbGUoe1xuICAgICAgICBpdGVtczogc2NoZW1hcyxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RUdXBsZSxcbiAgICAgICAgcmVzdDogbnVsbCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZFJlY29yZCBleHRlbmRzIFpvZFR5cGUge1xuICAgIGdldCBrZXlTY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYua2V5VHlwZTtcbiAgICB9XG4gICAgZ2V0IHZhbHVlU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnZhbHVlVHlwZTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5vYmplY3QpIHtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUub2JqZWN0LFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFpcnMgPSBbXTtcbiAgICAgICAgY29uc3Qga2V5VHlwZSA9IHRoaXMuX2RlZi5rZXlUeXBlO1xuICAgICAgICBjb25zdCB2YWx1ZVR5cGUgPSB0aGlzLl9kZWYudmFsdWVUeXBlO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBjdHguZGF0YSkge1xuICAgICAgICAgICAgcGFpcnMucHVzaCh7XG4gICAgICAgICAgICAgICAga2V5OiBrZXlUeXBlLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwga2V5LCBjdHgucGF0aCwga2V5KSksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlVHlwZS5fcGFyc2UobmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIGN0eC5kYXRhW2tleV0sIGN0eC5wYXRoLCBrZXkpKSxcbiAgICAgICAgICAgICAgICBhbHdheXNTZXQ6IGtleSBpbiBjdHguZGF0YSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICByZXR1cm4gUGFyc2VTdGF0dXMubWVyZ2VPYmplY3RBc3luYyhzdGF0dXMsIHBhaXJzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZU9iamVjdFN5bmMoc3RhdHVzLCBwYWlycyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudmFsdWVUeXBlO1xuICAgIH1cbiAgICBzdGF0aWMgY3JlYXRlKGZpcnN0LCBzZWNvbmQsIHRoaXJkKSB7XG4gICAgICAgIGlmIChzZWNvbmQgaW5zdGFuY2VvZiBab2RUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFpvZFJlY29yZCh7XG4gICAgICAgICAgICAgICAga2V5VHlwZTogZmlyc3QsXG4gICAgICAgICAgICAgICAgdmFsdWVUeXBlOiBzZWNvbmQsXG4gICAgICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RSZWNvcmQsXG4gICAgICAgICAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyh0aGlyZCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFpvZFJlY29yZCh7XG4gICAgICAgICAgICBrZXlUeXBlOiBab2RTdHJpbmcuY3JlYXRlKCksXG4gICAgICAgICAgICB2YWx1ZVR5cGU6IGZpcnN0LFxuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RSZWNvcmQsXG4gICAgICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHNlY29uZCksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmNsYXNzIFpvZE1hcCBleHRlbmRzIFpvZFR5cGUge1xuICAgIGdldCBrZXlTY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYua2V5VHlwZTtcbiAgICB9XG4gICAgZ2V0IHZhbHVlU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnZhbHVlVHlwZTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5tYXApIHtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUubWFwLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5VHlwZSA9IHRoaXMuX2RlZi5rZXlUeXBlO1xuICAgICAgICBjb25zdCB2YWx1ZVR5cGUgPSB0aGlzLl9kZWYudmFsdWVUeXBlO1xuICAgICAgICBjb25zdCBwYWlycyA9IFsuLi5jdHguZGF0YS5lbnRyaWVzKCldLm1hcCgoW2tleSwgdmFsdWVdLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBrZXk6IGtleVR5cGUuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBrZXksIGN0eC5wYXRoLCBbaW5kZXgsIFwia2V5XCJdKSksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlVHlwZS5fcGFyc2UobmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIHZhbHVlLCBjdHgucGF0aCwgW2luZGV4LCBcInZhbHVlXCJdKSksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbmFsTWFwID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFpciBvZiBwYWlycykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBhd2FpdCBwYWlyLmtleTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYWlyLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIgfHwgdmFsdWUuc3RhdHVzID09PSBcImFib3J0ZWRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGtleS5zdGF0dXMgPT09IFwiZGlydHlcIiB8fCB2YWx1ZS5zdGF0dXMgPT09IFwiZGlydHlcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZmluYWxNYXAuc2V0KGtleS52YWx1ZSwgdmFsdWUudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGZpbmFsTWFwIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbmFsTWFwID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBwYWlyIG9mIHBhaXJzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gcGFpci5rZXk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwYWlyLnZhbHVlO1xuICAgICAgICAgICAgICAgIGlmIChrZXkuc3RhdHVzID09PSBcImFib3J0ZWRcIiB8fCB2YWx1ZS5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoa2V5LnN0YXR1cyA9PT0gXCJkaXJ0eVwiIHx8IHZhbHVlLnN0YXR1cyA9PT0gXCJkaXJ0eVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaW5hbE1hcC5zZXQoa2V5LnZhbHVlLCB2YWx1ZS52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGZpbmFsTWFwIH07XG4gICAgICAgIH1cbiAgICB9XG59XG5ab2RNYXAuY3JlYXRlID0gKGtleVR5cGUsIHZhbHVlVHlwZSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RNYXAoe1xuICAgICAgICB2YWx1ZVR5cGUsXG4gICAgICAgIGtleVR5cGUsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTWFwLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kU2V0IGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5zZXQpIHtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuc2V0LFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGVmID0gdGhpcy5fZGVmO1xuICAgICAgICBpZiAoZGVmLm1pblNpemUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChjdHguZGF0YS5zaXplIDwgZGVmLm1pblNpemUudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgbWluaW11bTogZGVmLm1pblNpemUudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2V0XCIsXG4gICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBkZWYubWluU2l6ZS5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkZWYubWF4U2l6ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGN0eC5kYXRhLnNpemUgPiBkZWYubWF4U2l6ZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX2JpZyxcbiAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogZGVmLm1heFNpemUudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2V0XCIsXG4gICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBkZWYubWF4U2l6ZS5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IHRoaXMuX2RlZi52YWx1ZVR5cGU7XG4gICAgICAgIGZ1bmN0aW9uIGZpbmFsaXplU2V0KGVsZW1lbnRzKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWRTZXQgPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgcGFyc2VkU2V0LmFkZChlbGVtZW50LnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogcGFyc2VkU2V0IH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBbLi4uY3R4LmRhdGEudmFsdWVzKCldLm1hcCgoaXRlbSwgaSkgPT4gdmFsdWVUeXBlLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgaXRlbSwgY3R4LnBhdGgsIGkpKSk7XG4gICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoZWxlbWVudHMpLnRoZW4oKGVsZW1lbnRzKSA9PiBmaW5hbGl6ZVNldChlbGVtZW50cykpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZpbmFsaXplU2V0KGVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBtaW4obWluU2l6ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZFNldCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBtaW5TaXplOiB7IHZhbHVlOiBtaW5TaXplLCBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG1heChtYXhTaXplLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kU2V0KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIG1heFNpemU6IHsgdmFsdWU6IG1heFNpemUsIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSB9LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc2l6ZShzaXplLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbihzaXplLCBtZXNzYWdlKS5tYXgoc2l6ZSwgbWVzc2FnZSk7XG4gICAgfVxuICAgIG5vbmVtcHR5KG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWluKDEsIG1lc3NhZ2UpO1xuICAgIH1cbn1cblpvZFNldC5jcmVhdGUgPSAodmFsdWVUeXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZFNldCh7XG4gICAgICAgIHZhbHVlVHlwZSxcbiAgICAgICAgbWluU2l6ZTogbnVsbCxcbiAgICAgICAgbWF4U2l6ZTogbnVsbCxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTZXQsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RGdW5jdGlvbiBleHRlbmRzIFpvZFR5cGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICB0aGlzLnZhbGlkYXRlID0gdGhpcy5pbXBsZW1lbnQ7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmZ1bmN0aW9uKSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLmZ1bmN0aW9uLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWFrZUFyZ3NJc3N1ZShhcmdzLCBlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIG1ha2VJc3N1ZSh7XG4gICAgICAgICAgICAgICAgZGF0YTogYXJncyxcbiAgICAgICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgICAgICBlcnJvck1hcHM6IFtcbiAgICAgICAgICAgICAgICAgICAgY3R4LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsXG4gICAgICAgICAgICAgICAgICAgIGN0eC5zY2hlbWFFcnJvck1hcCxcbiAgICAgICAgICAgICAgICAgICAgZ2V0RXJyb3JNYXAoKSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JNYXAsXG4gICAgICAgICAgICAgICAgXS5maWx0ZXIoKHgpID0+ICEheCksXG4gICAgICAgICAgICAgICAgaXNzdWVEYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX2FyZ3VtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzRXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtYWtlUmV0dXJuc0lzc3VlKHJldHVybnMsIGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbWFrZUlzc3VlKHtcbiAgICAgICAgICAgICAgICBkYXRhOiByZXR1cm5zLFxuICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgIGVycm9yTWFwczogW1xuICAgICAgICAgICAgICAgICAgICBjdHguY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcCxcbiAgICAgICAgICAgICAgICAgICAgY3R4LnNjaGVtYUVycm9yTWFwLFxuICAgICAgICAgICAgICAgICAgICBnZXRFcnJvck1hcCgpLFxuICAgICAgICAgICAgICAgICAgICBlcnJvck1hcCxcbiAgICAgICAgICAgICAgICBdLmZpbHRlcigoeCkgPT4gISF4KSxcbiAgICAgICAgICAgICAgICBpc3N1ZURhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfcmV0dXJuX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblR5cGVFcnJvcjogZXJyb3IsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgZXJyb3JNYXA6IGN0eC5jb21tb24uY29udGV4dHVhbEVycm9yTWFwIH07XG4gICAgICAgIGNvbnN0IGZuID0gY3R4LmRhdGE7XG4gICAgICAgIGlmICh0aGlzLl9kZWYucmV0dXJucyBpbnN0YW5jZW9mIFpvZFByb21pc2UpIHtcbiAgICAgICAgICAgIC8vIFdvdWxkIGxvdmUgYSB3YXkgdG8gYXZvaWQgZGlzYWJsaW5nIHRoaXMgcnVsZSwgYnV0IHdlIG5lZWRcbiAgICAgICAgICAgIC8vIGFuIGFsaWFzICh1c2luZyBhbiBhcnJvdyBmdW5jdGlvbiB3YXMgd2hhdCBjYXVzZWQgMjY1MSkuXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICAgICAgICAgIGNvbnN0IG1lID0gdGhpcztcbiAgICAgICAgICAgIHJldHVybiBPSyhhc3luYyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFpvZEVycm9yKFtdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRBcmdzID0gYXdhaXQgbWUuX2RlZi5hcmdzXG4gICAgICAgICAgICAgICAgICAgIC5wYXJzZUFzeW5jKGFyZ3MsIHBhcmFtcylcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLmFkZElzc3VlKG1ha2VBcmdzSXNzdWUoYXJncywgZSkpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBSZWZsZWN0LmFwcGx5KGZuLCB0aGlzLCBwYXJzZWRBcmdzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRSZXR1cm5zID0gYXdhaXQgbWUuX2RlZi5yZXR1cm5zLl9kZWYudHlwZVxuICAgICAgICAgICAgICAgICAgICAucGFyc2VBc3luYyhyZXN1bHQsIHBhcmFtcylcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLmFkZElzc3VlKG1ha2VSZXR1cm5zSXNzdWUocmVzdWx0LCBlKSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZWRSZXR1cm5zO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBXb3VsZCBsb3ZlIGEgd2F5IHRvIGF2b2lkIGRpc2FibGluZyB0aGlzIHJ1bGUsIGJ1dCB3ZSBuZWVkXG4gICAgICAgICAgICAvLyBhbiBhbGlhcyAodXNpbmcgYW4gYXJyb3cgZnVuY3Rpb24gd2FzIHdoYXQgY2F1c2VkIDI2NTEpLlxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgICAgICAgICBjb25zdCBtZSA9IHRoaXM7XG4gICAgICAgICAgICByZXR1cm4gT0soZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRBcmdzID0gbWUuX2RlZi5hcmdzLnNhZmVQYXJzZShhcmdzLCBwYXJhbXMpO1xuICAgICAgICAgICAgICAgIGlmICghcGFyc2VkQXJncy5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBab2RFcnJvcihbbWFrZUFyZ3NJc3N1ZShhcmdzLCBwYXJzZWRBcmdzLmVycm9yKV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBSZWZsZWN0LmFwcGx5KGZuLCB0aGlzLCBwYXJzZWRBcmdzLmRhdGEpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZFJldHVybnMgPSBtZS5fZGVmLnJldHVybnMuc2FmZVBhcnNlKHJlc3VsdCwgcGFyYW1zKTtcbiAgICAgICAgICAgICAgICBpZiAoIXBhcnNlZFJldHVybnMuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgWm9kRXJyb3IoW21ha2VSZXR1cm5zSXNzdWUocmVzdWx0LCBwYXJzZWRSZXR1cm5zLmVycm9yKV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VkUmV0dXJucy5kYXRhO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGFyYW1ldGVycygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5hcmdzO1xuICAgIH1cbiAgICByZXR1cm5UeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnJldHVybnM7XG4gICAgfVxuICAgIGFyZ3MoLi4uaXRlbXMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RGdW5jdGlvbih7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBhcmdzOiBab2RUdXBsZS5jcmVhdGUoaXRlbXMpLnJlc3QoWm9kVW5rbm93bi5jcmVhdGUoKSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm5zKHJldHVyblR5cGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RGdW5jdGlvbih7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICByZXR1cm5zOiByZXR1cm5UeXBlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaW1wbGVtZW50KGZ1bmMpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGVkRnVuYyA9IHRoaXMucGFyc2UoZnVuYyk7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZWRGdW5jO1xuICAgIH1cbiAgICBzdHJpY3RJbXBsZW1lbnQoZnVuYykge1xuICAgICAgICBjb25zdCB2YWxpZGF0ZWRGdW5jID0gdGhpcy5wYXJzZShmdW5jKTtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlZEZ1bmM7XG4gICAgfVxuICAgIHN0YXRpYyBjcmVhdGUoYXJncywgcmV0dXJucywgcGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kRnVuY3Rpb24oe1xuICAgICAgICAgICAgYXJnczogKGFyZ3NcbiAgICAgICAgICAgICAgICA/IGFyZ3NcbiAgICAgICAgICAgICAgICA6IFpvZFR1cGxlLmNyZWF0ZShbXSkucmVzdChab2RVbmtub3duLmNyZWF0ZSgpKSksXG4gICAgICAgICAgICByZXR1cm5zOiByZXR1cm5zIHx8IFpvZFVua25vd24uY3JlYXRlKCksXG4gICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEZ1bmN0aW9uLFxuICAgICAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgICAgICB9KTtcbiAgICB9XG59XG5jbGFzcyBab2RMYXp5IGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgZ2V0IHNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5nZXR0ZXIoKTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBjb25zdCBsYXp5U2NoZW1hID0gdGhpcy5fZGVmLmdldHRlcigpO1xuICAgICAgICByZXR1cm4gbGF6eVNjaGVtYS5fcGFyc2UoeyBkYXRhOiBjdHguZGF0YSwgcGF0aDogY3R4LnBhdGgsIHBhcmVudDogY3R4IH0pO1xuICAgIH1cbn1cblpvZExhenkuY3JlYXRlID0gKGdldHRlciwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RMYXp5KHtcbiAgICAgICAgZ2V0dGVyOiBnZXR0ZXIsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTGF6eSxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZExpdGVyYWwgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgaWYgKGlucHV0LmRhdGEgIT09IHRoaXMuX2RlZi52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX2xpdGVyYWwsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IHRoaXMuX2RlZi52YWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlOiBpbnB1dC5kYXRhIH07XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi52YWx1ZTtcbiAgICB9XG59XG5ab2RMaXRlcmFsLmNyZWF0ZSA9ICh2YWx1ZSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RMaXRlcmFsKHtcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZExpdGVyYWwsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5mdW5jdGlvbiBjcmVhdGVab2RFbnVtKHZhbHVlcywgcGFyYW1zKSB7XG4gICAgcmV0dXJuIG5ldyBab2RFbnVtKHtcbiAgICAgICAgdmFsdWVzLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVudW0sXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn1cbmNsYXNzIFpvZEVudW0gZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgX1pvZEVudW1fY2FjaGUuc2V0KHRoaXMsIHZvaWQgMCk7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0LmRhdGEgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gdGhpcy5fZGVmLnZhbHVlcztcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiB1dGlsLmpvaW5WYWx1ZXMoZXhwZWN0ZWRWYWx1ZXMpLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIV9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX1pvZEVudW1fY2FjaGUsIFwiZlwiKSkge1xuICAgICAgICAgICAgX19jbGFzc1ByaXZhdGVGaWVsZFNldCh0aGlzLCBfWm9kRW51bV9jYWNoZSwgbmV3IFNldCh0aGlzLl9kZWYudmFsdWVzKSwgXCJmXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfWm9kRW51bV9jYWNoZSwgXCJmXCIpLmhhcyhpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSB0aGlzLl9kZWYudmFsdWVzO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX2VudW1fdmFsdWUsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogZXhwZWN0ZWRWYWx1ZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgICB9XG4gICAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudmFsdWVzO1xuICAgIH1cbiAgICBnZXQgZW51bSgpIHtcbiAgICAgICAgY29uc3QgZW51bVZhbHVlcyA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IHZhbCBvZiB0aGlzLl9kZWYudmFsdWVzKSB7XG4gICAgICAgICAgICBlbnVtVmFsdWVzW3ZhbF0gPSB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudW1WYWx1ZXM7XG4gICAgfVxuICAgIGdldCBWYWx1ZXMoKSB7XG4gICAgICAgIGNvbnN0IGVudW1WYWx1ZXMgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCB2YWwgb2YgdGhpcy5fZGVmLnZhbHVlcykge1xuICAgICAgICAgICAgZW51bVZhbHVlc1t2YWxdID0gdmFsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbnVtVmFsdWVzO1xuICAgIH1cbiAgICBnZXQgRW51bSgpIHtcbiAgICAgICAgY29uc3QgZW51bVZhbHVlcyA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IHZhbCBvZiB0aGlzLl9kZWYudmFsdWVzKSB7XG4gICAgICAgICAgICBlbnVtVmFsdWVzW3ZhbF0gPSB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudW1WYWx1ZXM7XG4gICAgfVxuICAgIGV4dHJhY3QodmFsdWVzLCBuZXdEZWYgPSB0aGlzLl9kZWYpIHtcbiAgICAgICAgcmV0dXJuIFpvZEVudW0uY3JlYXRlKHZhbHVlcywge1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgLi4ubmV3RGVmLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZXhjbHVkZSh2YWx1ZXMsIG5ld0RlZiA9IHRoaXMuX2RlZikge1xuICAgICAgICByZXR1cm4gWm9kRW51bS5jcmVhdGUodGhpcy5vcHRpb25zLmZpbHRlcigob3B0KSA9PiAhdmFsdWVzLmluY2x1ZGVzKG9wdCkpLCB7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICAuLi5uZXdEZWYsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbl9ab2RFbnVtX2NhY2hlID0gbmV3IFdlYWtNYXAoKTtcblpvZEVudW0uY3JlYXRlID0gY3JlYXRlWm9kRW51bTtcbmNsYXNzIFpvZE5hdGl2ZUVudW0gZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgX1pvZE5hdGl2ZUVudW1fY2FjaGUuc2V0KHRoaXMsIHZvaWQgMCk7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCBuYXRpdmVFbnVtVmFsdWVzID0gdXRpbC5nZXRWYWxpZEVudW1WYWx1ZXModGhpcy5fZGVmLnZhbHVlcyk7XG4gICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnN0cmluZyAmJlxuICAgICAgICAgICAgY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUubnVtYmVyKSB7XG4gICAgICAgICAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IHV0aWwub2JqZWN0VmFsdWVzKG5hdGl2ZUVudW1WYWx1ZXMpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IHV0aWwuam9pblZhbHVlcyhleHBlY3RlZFZhbHVlcyksXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfWm9kTmF0aXZlRW51bV9jYWNoZSwgXCJmXCIpKSB7XG4gICAgICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9ab2ROYXRpdmVFbnVtX2NhY2hlLCBuZXcgU2V0KHV0aWwuZ2V0VmFsaWRFbnVtVmFsdWVzKHRoaXMuX2RlZi52YWx1ZXMpKSwgXCJmXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfWm9kTmF0aXZlRW51bV9jYWNoZSwgXCJmXCIpLmhhcyhpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSB1dGlsLm9iamVjdFZhbHVlcyhuYXRpdmVFbnVtVmFsdWVzKTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9lbnVtX3ZhbHVlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IGV4cGVjdGVkVmFsdWVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT0soaW5wdXQuZGF0YSk7XG4gICAgfVxuICAgIGdldCBlbnVtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnZhbHVlcztcbiAgICB9XG59XG5fWm9kTmF0aXZlRW51bV9jYWNoZSA9IG5ldyBXZWFrTWFwKCk7XG5ab2ROYXRpdmVFbnVtLmNyZWF0ZSA9ICh2YWx1ZXMsIHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kTmF0aXZlRW51bSh7XG4gICAgICAgIHZhbHVlczogdmFsdWVzLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE5hdGl2ZUVudW0sXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RQcm9taXNlIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgdW53cmFwKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnR5cGU7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnByb21pc2UgJiZcbiAgICAgICAgICAgIGN0eC5jb21tb24uYXN5bmMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLnByb21pc2UsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcm9taXNpZmllZCA9IGN0eC5wYXJzZWRUeXBlID09PSBab2RQYXJzZWRUeXBlLnByb21pc2VcbiAgICAgICAgICAgID8gY3R4LmRhdGFcbiAgICAgICAgICAgIDogUHJvbWlzZS5yZXNvbHZlKGN0eC5kYXRhKTtcbiAgICAgICAgcmV0dXJuIE9LKHByb21pc2lmaWVkLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kZWYudHlwZS5wYXJzZUFzeW5jKGRhdGEsIHtcbiAgICAgICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgICAgICBlcnJvck1hcDogY3R4LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpO1xuICAgIH1cbn1cblpvZFByb21pc2UuY3JlYXRlID0gKHNjaGVtYSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RQcm9taXNlKHtcbiAgICAgICAgdHlwZTogc2NoZW1hLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFByb21pc2UsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RFZmZlY3RzIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgaW5uZXJUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnNjaGVtYTtcbiAgICB9XG4gICAgc291cmNlVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5zY2hlbWEuX2RlZi50eXBlTmFtZSA9PT0gWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVmZmVjdHNcbiAgICAgICAgICAgID8gdGhpcy5fZGVmLnNjaGVtYS5zb3VyY2VUeXBlKClcbiAgICAgICAgICAgIDogdGhpcy5fZGVmLnNjaGVtYTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGNvbnN0IGVmZmVjdCA9IHRoaXMuX2RlZi5lZmZlY3QgfHwgbnVsbDtcbiAgICAgICAgY29uc3QgY2hlY2tDdHggPSB7XG4gICAgICAgICAgICBhZGRJc3N1ZTogKGFyZykgPT4ge1xuICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwgYXJnKTtcbiAgICAgICAgICAgICAgICBpZiAoYXJnLmZhdGFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5hYm9ydCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBwYXRoKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdHgucGF0aDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGNoZWNrQ3R4LmFkZElzc3VlID0gY2hlY2tDdHguYWRkSXNzdWUuYmluZChjaGVja0N0eCk7XG4gICAgICAgIGlmIChlZmZlY3QudHlwZSA9PT0gXCJwcmVwcm9jZXNzXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZCA9IGVmZmVjdC50cmFuc2Zvcm0oY3R4LmRhdGEsIGNoZWNrQ3R4KTtcbiAgICAgICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwcm9jZXNzZWQpLnRoZW4oYXN5bmMgKHByb2Nlc3NlZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzLnZhbHVlID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZUFzeW5jKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHByb2Nlc3NlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBESVJUWShyZXN1bHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzLnZhbHVlID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRElSVFkocmVzdWx0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChzdGF0dXMudmFsdWUgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBwcm9jZXNzZWQsXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGN0eCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBESVJUWShyZXN1bHQudmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmIChzdGF0dXMudmFsdWUgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERJUlRZKHJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZWZmZWN0LnR5cGUgPT09IFwicmVmaW5lbWVudFwiKSB7XG4gICAgICAgICAgICBjb25zdCBleGVjdXRlUmVmaW5lbWVudCA9IChhY2MpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBlZmZlY3QucmVmaW5lbWVudChhY2MsIGNoZWNrQ3R4KTtcbiAgICAgICAgICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFzeW5jIHJlZmluZW1lbnQgZW5jb3VudGVyZWQgZHVyaW5nIHN5bmNocm9ub3VzIHBhcnNlIG9wZXJhdGlvbi4gVXNlIC5wYXJzZUFzeW5jIGluc3RlYWQuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlubmVyID0gdGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VTeW5jKHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGN0eCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoaW5uZXIuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgICAgICAgaWYgKGlubmVyLnN0YXR1cyA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICAvLyByZXR1cm4gdmFsdWUgaXMgaWdub3JlZFxuICAgICAgICAgICAgICAgIGV4ZWN1dGVSZWZpbmVtZW50KGlubmVyLnZhbHVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGlubmVyLnZhbHVlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnNjaGVtYVxuICAgICAgICAgICAgICAgICAgICAuX3BhcnNlQXN5bmMoeyBkYXRhOiBjdHguZGF0YSwgcGF0aDogY3R4LnBhdGgsIHBhcmVudDogY3R4IH0pXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChpbm5lcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5uZXIuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5uZXIuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGVSZWZpbmVtZW50KGlubmVyLnZhbHVlKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogaW5uZXIudmFsdWUgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVmZmVjdC50eXBlID09PSBcInRyYW5zZm9ybVwiKSB7XG4gICAgICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiYXNlID0gdGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VTeW5jKHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGN0eCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWQoYmFzZSkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiYXNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGVmZmVjdC50cmFuc2Zvcm0oYmFzZS52YWx1ZSwgY2hlY2tDdHgpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQXN5bmNocm9ub3VzIHRyYW5zZm9ybSBlbmNvdW50ZXJlZCBkdXJpbmcgc3luY2hyb25vdXMgcGFyc2Ugb3BlcmF0aW9uLiBVc2UgLnBhcnNlQXN5bmMgaW5zdGVhZC5gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiByZXN1bHQgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9kZWYuc2NoZW1hXG4gICAgICAgICAgICAgICAgICAgIC5fcGFyc2VBc3luYyh7IGRhdGE6IGN0eC5kYXRhLCBwYXRoOiBjdHgucGF0aCwgcGFyZW50OiBjdHggfSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGJhc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKGJhc2UpKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZWZmZWN0LnRyYW5zZm9ybShiYXNlLnZhbHVlLCBjaGVja0N0eCkpLnRoZW4oKHJlc3VsdCkgPT4gKHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiByZXN1bHQgfSkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoZWZmZWN0KTtcbiAgICB9XG59XG5ab2RFZmZlY3RzLmNyZWF0ZSA9IChzY2hlbWEsIGVmZmVjdCwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RFZmZlY3RzKHtcbiAgICAgICAgc2NoZW1hLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVmZmVjdHMsXG4gICAgICAgIGVmZmVjdCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcblpvZEVmZmVjdHMuY3JlYXRlV2l0aFByZXByb2Nlc3MgPSAocHJlcHJvY2Vzcywgc2NoZW1hLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZEVmZmVjdHMoe1xuICAgICAgICBzY2hlbWEsXG4gICAgICAgIGVmZmVjdDogeyB0eXBlOiBcInByZXByb2Nlc3NcIiwgdHJhbnNmb3JtOiBwcmVwcm9jZXNzIH0sXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRWZmZWN0cyxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZE9wdGlvbmFsIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICAgICAgaWYgKHBhcnNlZFR5cGUgPT09IFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gT0sodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2UoaW5wdXQpO1xuICAgIH1cbiAgICB1bndyYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlO1xuICAgIH1cbn1cblpvZE9wdGlvbmFsLmNyZWF0ZSA9ICh0eXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZE9wdGlvbmFsKHtcbiAgICAgICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9wdGlvbmFsLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kTnVsbGFibGUgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5udWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gT0sobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKGlucHV0KTtcbiAgICB9XG4gICAgdW53cmFwKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZTtcbiAgICB9XG59XG5ab2ROdWxsYWJsZS5jcmVhdGUgPSAodHlwZSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2ROdWxsYWJsZSh7XG4gICAgICAgIGlubmVyVHlwZTogdHlwZSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROdWxsYWJsZSxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZERlZmF1bHQgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGxldCBkYXRhID0gY3R4LmRhdGE7XG4gICAgICAgIGlmIChjdHgucGFyc2VkVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS51bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRhdGEgPSB0aGlzLl9kZWYuZGVmYXVsdFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKHtcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmVtb3ZlRGVmYXVsdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGU7XG4gICAgfVxufVxuWm9kRGVmYXVsdC5jcmVhdGUgPSAodHlwZSwgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2REZWZhdWx0KHtcbiAgICAgICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZERlZmF1bHQsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHlwZW9mIHBhcmFtcy5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgID8gcGFyYW1zLmRlZmF1bHRcbiAgICAgICAgICAgIDogKCkgPT4gcGFyYW1zLmRlZmF1bHQsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RDYXRjaCBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgLy8gbmV3Q3R4IGlzIHVzZWQgdG8gbm90IGNvbGxlY3QgaXNzdWVzIGZyb20gaW5uZXIgdHlwZXMgaW4gY3R4XG4gICAgICAgIGNvbnN0IG5ld0N0eCA9IHtcbiAgICAgICAgICAgIC4uLmN0eCxcbiAgICAgICAgICAgIGNvbW1vbjoge1xuICAgICAgICAgICAgICAgIC4uLmN0eC5jb21tb24sXG4gICAgICAgICAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKHtcbiAgICAgICAgICAgIGRhdGE6IG5ld0N0eC5kYXRhLFxuICAgICAgICAgICAgcGF0aDogbmV3Q3R4LnBhdGgsXG4gICAgICAgICAgICBwYXJlbnQ6IHtcbiAgICAgICAgICAgICAgICAuLi5uZXdDdHgsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlzQXN5bmMocmVzdWx0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IFwidmFsaWRcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJlc3VsdC5zdGF0dXMgPT09IFwidmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyByZXN1bHQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5fZGVmLmNhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldCBlcnJvcigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBab2RFcnJvcihuZXdDdHguY29tbW9uLmlzc3Vlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dDogbmV3Q3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHN0YXR1czogXCJ2YWxpZFwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiByZXN1bHQuc3RhdHVzID09PSBcInZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgPyByZXN1bHQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9kZWYuY2F0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXQgZXJyb3IoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBab2RFcnJvcihuZXdDdHguY29tbW9uLmlzc3Vlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IG5ld0N0eC5kYXRhLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVtb3ZlQ2F0Y2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlO1xuICAgIH1cbn1cblpvZENhdGNoLmNyZWF0ZSA9ICh0eXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZENhdGNoKHtcbiAgICAgICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZENhdGNoLFxuICAgICAgICBjYXRjaFZhbHVlOiB0eXBlb2YgcGFyYW1zLmNhdGNoID09PSBcImZ1bmN0aW9uXCIgPyBwYXJhbXMuY2F0Y2ggOiAoKSA9PiBwYXJhbXMuY2F0Y2gsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2ROYU4gZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5uYW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUubmFuLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlOiBpbnB1dC5kYXRhIH07XG4gICAgfVxufVxuWm9kTmFOLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZE5hTih7XG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTmFOLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY29uc3QgQlJBTkQgPSBTeW1ib2woXCJ6b2RfYnJhbmRcIik7XG5jbGFzcyBab2RCcmFuZGVkIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBjb25zdCBkYXRhID0gY3R4LmRhdGE7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudHlwZS5fcGFyc2Uoe1xuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB1bndyYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudHlwZTtcbiAgICB9XG59XG5jbGFzcyBab2RQaXBlbGluZSBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IHN0YXR1cywgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlQXN5bmMgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5SZXN1bHQgPSBhd2FpdCB0aGlzLl9kZWYuaW4uX3BhcnNlQXN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChpblJlc3VsdC5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgICAgICBpZiAoaW5SZXN1bHQuc3RhdHVzID09PSBcImRpcnR5XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBESVJUWShpblJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZGVmLm91dC5fcGFyc2VBc3luYyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBpblJlc3VsdC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlQXN5bmMoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGluUmVzdWx0ID0gdGhpcy5fZGVmLmluLl9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaW5SZXN1bHQuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgIGlmIChpblJlc3VsdC5zdGF0dXMgPT09IFwiZGlydHlcIikge1xuICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogXCJkaXJ0eVwiLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaW5SZXN1bHQudmFsdWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9kZWYub3V0Ll9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBpblJlc3VsdC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBjcmVhdGUoYSwgYikge1xuICAgICAgICByZXR1cm4gbmV3IFpvZFBpcGVsaW5lKHtcbiAgICAgICAgICAgIGluOiBhLFxuICAgICAgICAgICAgb3V0OiBiLFxuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RQaXBlbGluZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuY2xhc3MgWm9kUmVhZG9ubHkgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2UoaW5wdXQpO1xuICAgICAgICBjb25zdCBmcmVlemUgPSAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzVmFsaWQoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICBkYXRhLnZhbHVlID0gT2JqZWN0LmZyZWV6ZShkYXRhLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gaXNBc3luYyhyZXN1bHQpXG4gICAgICAgICAgICA/IHJlc3VsdC50aGVuKChkYXRhKSA9PiBmcmVlemUoZGF0YSkpXG4gICAgICAgICAgICA6IGZyZWV6ZShyZXN1bHQpO1xuICAgIH1cbiAgICB1bndyYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlO1xuICAgIH1cbn1cblpvZFJlYWRvbmx5LmNyZWF0ZSA9ICh0eXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZFJlYWRvbmx5KHtcbiAgICAgICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFJlYWRvbmx5LFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLyAgICAgICAgICAgICAgICAgICAgLy8vLy8vLy8vL1xuLy8vLy8vLy8vLyAgICAgIHouY3VzdG9tICAgICAgLy8vLy8vLy8vL1xuLy8vLy8vLy8vLyAgICAgICAgICAgICAgICAgICAgLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuZnVuY3Rpb24gY2xlYW5QYXJhbXMocGFyYW1zLCBkYXRhKSB7XG4gICAgY29uc3QgcCA9IHR5cGVvZiBwYXJhbXMgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICA/IHBhcmFtcyhkYXRhKVxuICAgICAgICA6IHR5cGVvZiBwYXJhbXMgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8geyBtZXNzYWdlOiBwYXJhbXMgfVxuICAgICAgICAgICAgOiBwYXJhbXM7XG4gICAgY29uc3QgcDIgPSB0eXBlb2YgcCA9PT0gXCJzdHJpbmdcIiA/IHsgbWVzc2FnZTogcCB9IDogcDtcbiAgICByZXR1cm4gcDI7XG59XG5mdW5jdGlvbiBjdXN0b20oY2hlY2ssIF9wYXJhbXMgPSB7fSwgXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKlxuICogUGFzcyBgZmF0YWxgIGludG8gdGhlIHBhcmFtcyBvYmplY3QgaW5zdGVhZDpcbiAqXG4gKiBgYGB0c1xuICogei5zdHJpbmcoKS5jdXN0b20oKHZhbCkgPT4gdmFsLmxlbmd0aCA+IDUsIHsgZmF0YWw6IGZhbHNlIH0pXG4gKiBgYGBcbiAqXG4gKi9cbmZhdGFsKSB7XG4gICAgaWYgKGNoZWNrKVxuICAgICAgICByZXR1cm4gWm9kQW55LmNyZWF0ZSgpLnN1cGVyUmVmaW5lKChkYXRhLCBjdHgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICBjb25zdCByID0gY2hlY2soZGF0YSk7XG4gICAgICAgICAgICBpZiAociBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gci50aGVuKChyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gY2xlYW5QYXJhbXMoX3BhcmFtcywgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBfZmF0YWwgPSAoX2IgPSAoX2EgPSBwYXJhbXMuZmF0YWwpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGZhdGFsKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LmFkZElzc3VlKHsgY29kZTogXCJjdXN0b21cIiwgLi4ucGFyYW1zLCBmYXRhbDogX2ZhdGFsIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSBjbGVhblBhcmFtcyhfcGFyYW1zLCBkYXRhKTtcbiAgICAgICAgICAgICAgICBjb25zdCBfZmF0YWwgPSAoX2IgPSAoX2EgPSBwYXJhbXMuZmF0YWwpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGZhdGFsKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB0cnVlO1xuICAgICAgICAgICAgICAgIGN0eC5hZGRJc3N1ZSh7IGNvZGU6IFwiY3VzdG9tXCIsIC4uLnBhcmFtcywgZmF0YWw6IF9mYXRhbCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSk7XG4gICAgcmV0dXJuIFpvZEFueS5jcmVhdGUoKTtcbn1cbmNvbnN0IGxhdGUgPSB7XG4gICAgb2JqZWN0OiBab2RPYmplY3QubGF6eWNyZWF0ZSxcbn07XG52YXIgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kO1xuKGZ1bmN0aW9uIChab2RGaXJzdFBhcnR5VHlwZUtpbmQpIHtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RTdHJpbmdcIl0gPSBcIlpvZFN0cmluZ1wiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZE51bWJlclwiXSA9IFwiWm9kTnVtYmVyXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kTmFOXCJdID0gXCJab2ROYU5cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RCaWdJbnRcIl0gPSBcIlpvZEJpZ0ludFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZEJvb2xlYW5cIl0gPSBcIlpvZEJvb2xlYW5cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2REYXRlXCJdID0gXCJab2REYXRlXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kU3ltYm9sXCJdID0gXCJab2RTeW1ib2xcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RVbmRlZmluZWRcIl0gPSBcIlpvZFVuZGVmaW5lZFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZE51bGxcIl0gPSBcIlpvZE51bGxcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RBbnlcIl0gPSBcIlpvZEFueVwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZFVua25vd25cIl0gPSBcIlpvZFVua25vd25cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2ROZXZlclwiXSA9IFwiWm9kTmV2ZXJcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RWb2lkXCJdID0gXCJab2RWb2lkXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kQXJyYXlcIl0gPSBcIlpvZEFycmF5XCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kT2JqZWN0XCJdID0gXCJab2RPYmplY3RcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RVbmlvblwiXSA9IFwiWm9kVW5pb25cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2REaXNjcmltaW5hdGVkVW5pb25cIl0gPSBcIlpvZERpc2NyaW1pbmF0ZWRVbmlvblwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZEludGVyc2VjdGlvblwiXSA9IFwiWm9kSW50ZXJzZWN0aW9uXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kVHVwbGVcIl0gPSBcIlpvZFR1cGxlXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kUmVjb3JkXCJdID0gXCJab2RSZWNvcmRcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RNYXBcIl0gPSBcIlpvZE1hcFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZFNldFwiXSA9IFwiWm9kU2V0XCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kRnVuY3Rpb25cIl0gPSBcIlpvZEZ1bmN0aW9uXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kTGF6eVwiXSA9IFwiWm9kTGF6eVwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZExpdGVyYWxcIl0gPSBcIlpvZExpdGVyYWxcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RFbnVtXCJdID0gXCJab2RFbnVtXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kRWZmZWN0c1wiXSA9IFwiWm9kRWZmZWN0c1wiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZE5hdGl2ZUVudW1cIl0gPSBcIlpvZE5hdGl2ZUVudW1cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RPcHRpb25hbFwiXSA9IFwiWm9kT3B0aW9uYWxcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2ROdWxsYWJsZVwiXSA9IFwiWm9kTnVsbGFibGVcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2REZWZhdWx0XCJdID0gXCJab2REZWZhdWx0XCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kQ2F0Y2hcIl0gPSBcIlpvZENhdGNoXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kUHJvbWlzZVwiXSA9IFwiWm9kUHJvbWlzZVwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZEJyYW5kZWRcIl0gPSBcIlpvZEJyYW5kZWRcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RQaXBlbGluZVwiXSA9IFwiWm9kUGlwZWxpbmVcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RSZWFkb25seVwiXSA9IFwiWm9kUmVhZG9ubHlcIjtcbn0pKFpvZEZpcnN0UGFydHlUeXBlS2luZCB8fCAoWm9kRmlyc3RQYXJ0eVR5cGVLaW5kID0ge30pKTtcbmNvbnN0IGluc3RhbmNlT2ZUeXBlID0gKFxuLy8gY29uc3QgaW5zdGFuY2VPZlR5cGUgPSA8VCBleHRlbmRzIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4oXG5jbHMsIHBhcmFtcyA9IHtcbiAgICBtZXNzYWdlOiBgSW5wdXQgbm90IGluc3RhbmNlIG9mICR7Y2xzLm5hbWV9YCxcbn0pID0+IGN1c3RvbSgoZGF0YSkgPT4gZGF0YSBpbnN0YW5jZW9mIGNscywgcGFyYW1zKTtcbmNvbnN0IHN0cmluZ1R5cGUgPSBab2RTdHJpbmcuY3JlYXRlO1xuY29uc3QgbnVtYmVyVHlwZSA9IFpvZE51bWJlci5jcmVhdGU7XG5jb25zdCBuYW5UeXBlID0gWm9kTmFOLmNyZWF0ZTtcbmNvbnN0IGJpZ0ludFR5cGUgPSBab2RCaWdJbnQuY3JlYXRlO1xuY29uc3QgYm9vbGVhblR5cGUgPSBab2RCb29sZWFuLmNyZWF0ZTtcbmNvbnN0IGRhdGVUeXBlID0gWm9kRGF0ZS5jcmVhdGU7XG5jb25zdCBzeW1ib2xUeXBlID0gWm9kU3ltYm9sLmNyZWF0ZTtcbmNvbnN0IHVuZGVmaW5lZFR5cGUgPSBab2RVbmRlZmluZWQuY3JlYXRlO1xuY29uc3QgbnVsbFR5cGUgPSBab2ROdWxsLmNyZWF0ZTtcbmNvbnN0IGFueVR5cGUgPSBab2RBbnkuY3JlYXRlO1xuY29uc3QgdW5rbm93blR5cGUgPSBab2RVbmtub3duLmNyZWF0ZTtcbmNvbnN0IG5ldmVyVHlwZSA9IFpvZE5ldmVyLmNyZWF0ZTtcbmNvbnN0IHZvaWRUeXBlID0gWm9kVm9pZC5jcmVhdGU7XG5jb25zdCBhcnJheVR5cGUgPSBab2RBcnJheS5jcmVhdGU7XG5jb25zdCBvYmplY3RUeXBlID0gWm9kT2JqZWN0LmNyZWF0ZTtcbmNvbnN0IHN0cmljdE9iamVjdFR5cGUgPSBab2RPYmplY3Quc3RyaWN0Q3JlYXRlO1xuY29uc3QgdW5pb25UeXBlID0gWm9kVW5pb24uY3JlYXRlO1xuY29uc3QgZGlzY3JpbWluYXRlZFVuaW9uVHlwZSA9IFpvZERpc2NyaW1pbmF0ZWRVbmlvbi5jcmVhdGU7XG5jb25zdCBpbnRlcnNlY3Rpb25UeXBlID0gWm9kSW50ZXJzZWN0aW9uLmNyZWF0ZTtcbmNvbnN0IHR1cGxlVHlwZSA9IFpvZFR1cGxlLmNyZWF0ZTtcbmNvbnN0IHJlY29yZFR5cGUgPSBab2RSZWNvcmQuY3JlYXRlO1xuY29uc3QgbWFwVHlwZSA9IFpvZE1hcC5jcmVhdGU7XG5jb25zdCBzZXRUeXBlID0gWm9kU2V0LmNyZWF0ZTtcbmNvbnN0IGZ1bmN0aW9uVHlwZSA9IFpvZEZ1bmN0aW9uLmNyZWF0ZTtcbmNvbnN0IGxhenlUeXBlID0gWm9kTGF6eS5jcmVhdGU7XG5jb25zdCBsaXRlcmFsVHlwZSA9IFpvZExpdGVyYWwuY3JlYXRlO1xuY29uc3QgZW51bVR5cGUgPSBab2RFbnVtLmNyZWF0ZTtcbmNvbnN0IG5hdGl2ZUVudW1UeXBlID0gWm9kTmF0aXZlRW51bS5jcmVhdGU7XG5jb25zdCBwcm9taXNlVHlwZSA9IFpvZFByb21pc2UuY3JlYXRlO1xuY29uc3QgZWZmZWN0c1R5cGUgPSBab2RFZmZlY3RzLmNyZWF0ZTtcbmNvbnN0IG9wdGlvbmFsVHlwZSA9IFpvZE9wdGlvbmFsLmNyZWF0ZTtcbmNvbnN0IG51bGxhYmxlVHlwZSA9IFpvZE51bGxhYmxlLmNyZWF0ZTtcbmNvbnN0IHByZXByb2Nlc3NUeXBlID0gWm9kRWZmZWN0cy5jcmVhdGVXaXRoUHJlcHJvY2VzcztcbmNvbnN0IHBpcGVsaW5lVHlwZSA9IFpvZFBpcGVsaW5lLmNyZWF0ZTtcbmNvbnN0IG9zdHJpbmcgPSAoKSA9PiBzdHJpbmdUeXBlKCkub3B0aW9uYWwoKTtcbmNvbnN0IG9udW1iZXIgPSAoKSA9PiBudW1iZXJUeXBlKCkub3B0aW9uYWwoKTtcbmNvbnN0IG9ib29sZWFuID0gKCkgPT4gYm9vbGVhblR5cGUoKS5vcHRpb25hbCgpO1xuY29uc3QgY29lcmNlID0ge1xuICAgIHN0cmluZzogKChhcmcpID0+IFpvZFN0cmluZy5jcmVhdGUoeyAuLi5hcmcsIGNvZXJjZTogdHJ1ZSB9KSksXG4gICAgbnVtYmVyOiAoKGFyZykgPT4gWm9kTnVtYmVyLmNyZWF0ZSh7IC4uLmFyZywgY29lcmNlOiB0cnVlIH0pKSxcbiAgICBib29sZWFuOiAoKGFyZykgPT4gWm9kQm9vbGVhbi5jcmVhdGUoe1xuICAgICAgICAuLi5hcmcsXG4gICAgICAgIGNvZXJjZTogdHJ1ZSxcbiAgICB9KSksXG4gICAgYmlnaW50OiAoKGFyZykgPT4gWm9kQmlnSW50LmNyZWF0ZSh7IC4uLmFyZywgY29lcmNlOiB0cnVlIH0pKSxcbiAgICBkYXRlOiAoKGFyZykgPT4gWm9kRGF0ZS5jcmVhdGUoeyAuLi5hcmcsIGNvZXJjZTogdHJ1ZSB9KSksXG59O1xuY29uc3QgTkVWRVIgPSBJTlZBTElEO1xuXG52YXIgeiA9IC8qI19fUFVSRV9fKi9PYmplY3QuZnJlZXplKHtcbiAgICBfX3Byb3RvX186IG51bGwsXG4gICAgZGVmYXVsdEVycm9yTWFwOiBlcnJvck1hcCxcbiAgICBzZXRFcnJvck1hcDogc2V0RXJyb3JNYXAsXG4gICAgZ2V0RXJyb3JNYXA6IGdldEVycm9yTWFwLFxuICAgIG1ha2VJc3N1ZTogbWFrZUlzc3VlLFxuICAgIEVNUFRZX1BBVEg6IEVNUFRZX1BBVEgsXG4gICAgYWRkSXNzdWVUb0NvbnRleHQ6IGFkZElzc3VlVG9Db250ZXh0LFxuICAgIFBhcnNlU3RhdHVzOiBQYXJzZVN0YXR1cyxcbiAgICBJTlZBTElEOiBJTlZBTElELFxuICAgIERJUlRZOiBESVJUWSxcbiAgICBPSzogT0ssXG4gICAgaXNBYm9ydGVkOiBpc0Fib3J0ZWQsXG4gICAgaXNEaXJ0eTogaXNEaXJ0eSxcbiAgICBpc1ZhbGlkOiBpc1ZhbGlkLFxuICAgIGlzQXN5bmM6IGlzQXN5bmMsXG4gICAgZ2V0IHV0aWwgKCkgeyByZXR1cm4gdXRpbDsgfSxcbiAgICBnZXQgb2JqZWN0VXRpbCAoKSB7IHJldHVybiBvYmplY3RVdGlsOyB9LFxuICAgIFpvZFBhcnNlZFR5cGU6IFpvZFBhcnNlZFR5cGUsXG4gICAgZ2V0UGFyc2VkVHlwZTogZ2V0UGFyc2VkVHlwZSxcbiAgICBab2RUeXBlOiBab2RUeXBlLFxuICAgIGRhdGV0aW1lUmVnZXg6IGRhdGV0aW1lUmVnZXgsXG4gICAgWm9kU3RyaW5nOiBab2RTdHJpbmcsXG4gICAgWm9kTnVtYmVyOiBab2ROdW1iZXIsXG4gICAgWm9kQmlnSW50OiBab2RCaWdJbnQsXG4gICAgWm9kQm9vbGVhbjogWm9kQm9vbGVhbixcbiAgICBab2REYXRlOiBab2REYXRlLFxuICAgIFpvZFN5bWJvbDogWm9kU3ltYm9sLFxuICAgIFpvZFVuZGVmaW5lZDogWm9kVW5kZWZpbmVkLFxuICAgIFpvZE51bGw6IFpvZE51bGwsXG4gICAgWm9kQW55OiBab2RBbnksXG4gICAgWm9kVW5rbm93bjogWm9kVW5rbm93bixcbiAgICBab2ROZXZlcjogWm9kTmV2ZXIsXG4gICAgWm9kVm9pZDogWm9kVm9pZCxcbiAgICBab2RBcnJheTogWm9kQXJyYXksXG4gICAgWm9kT2JqZWN0OiBab2RPYmplY3QsXG4gICAgWm9kVW5pb246IFpvZFVuaW9uLFxuICAgIFpvZERpc2NyaW1pbmF0ZWRVbmlvbjogWm9kRGlzY3JpbWluYXRlZFVuaW9uLFxuICAgIFpvZEludGVyc2VjdGlvbjogWm9kSW50ZXJzZWN0aW9uLFxuICAgIFpvZFR1cGxlOiBab2RUdXBsZSxcbiAgICBab2RSZWNvcmQ6IFpvZFJlY29yZCxcbiAgICBab2RNYXA6IFpvZE1hcCxcbiAgICBab2RTZXQ6IFpvZFNldCxcbiAgICBab2RGdW5jdGlvbjogWm9kRnVuY3Rpb24sXG4gICAgWm9kTGF6eTogWm9kTGF6eSxcbiAgICBab2RMaXRlcmFsOiBab2RMaXRlcmFsLFxuICAgIFpvZEVudW06IFpvZEVudW0sXG4gICAgWm9kTmF0aXZlRW51bTogWm9kTmF0aXZlRW51bSxcbiAgICBab2RQcm9taXNlOiBab2RQcm9taXNlLFxuICAgIFpvZEVmZmVjdHM6IFpvZEVmZmVjdHMsXG4gICAgWm9kVHJhbnNmb3JtZXI6IFpvZEVmZmVjdHMsXG4gICAgWm9kT3B0aW9uYWw6IFpvZE9wdGlvbmFsLFxuICAgIFpvZE51bGxhYmxlOiBab2ROdWxsYWJsZSxcbiAgICBab2REZWZhdWx0OiBab2REZWZhdWx0LFxuICAgIFpvZENhdGNoOiBab2RDYXRjaCxcbiAgICBab2ROYU46IFpvZE5hTixcbiAgICBCUkFORDogQlJBTkQsXG4gICAgWm9kQnJhbmRlZDogWm9kQnJhbmRlZCxcbiAgICBab2RQaXBlbGluZTogWm9kUGlwZWxpbmUsXG4gICAgWm9kUmVhZG9ubHk6IFpvZFJlYWRvbmx5LFxuICAgIGN1c3RvbTogY3VzdG9tLFxuICAgIFNjaGVtYTogWm9kVHlwZSxcbiAgICBab2RTY2hlbWE6IFpvZFR5cGUsXG4gICAgbGF0ZTogbGF0ZSxcbiAgICBnZXQgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kICgpIHsgcmV0dXJuIFpvZEZpcnN0UGFydHlUeXBlS2luZDsgfSxcbiAgICBjb2VyY2U6IGNvZXJjZSxcbiAgICBhbnk6IGFueVR5cGUsXG4gICAgYXJyYXk6IGFycmF5VHlwZSxcbiAgICBiaWdpbnQ6IGJpZ0ludFR5cGUsXG4gICAgYm9vbGVhbjogYm9vbGVhblR5cGUsXG4gICAgZGF0ZTogZGF0ZVR5cGUsXG4gICAgZGlzY3JpbWluYXRlZFVuaW9uOiBkaXNjcmltaW5hdGVkVW5pb25UeXBlLFxuICAgIGVmZmVjdDogZWZmZWN0c1R5cGUsXG4gICAgJ2VudW0nOiBlbnVtVHlwZSxcbiAgICAnZnVuY3Rpb24nOiBmdW5jdGlvblR5cGUsXG4gICAgJ2luc3RhbmNlb2YnOiBpbnN0YW5jZU9mVHlwZSxcbiAgICBpbnRlcnNlY3Rpb246IGludGVyc2VjdGlvblR5cGUsXG4gICAgbGF6eTogbGF6eVR5cGUsXG4gICAgbGl0ZXJhbDogbGl0ZXJhbFR5cGUsXG4gICAgbWFwOiBtYXBUeXBlLFxuICAgIG5hbjogbmFuVHlwZSxcbiAgICBuYXRpdmVFbnVtOiBuYXRpdmVFbnVtVHlwZSxcbiAgICBuZXZlcjogbmV2ZXJUeXBlLFxuICAgICdudWxsJzogbnVsbFR5cGUsXG4gICAgbnVsbGFibGU6IG51bGxhYmxlVHlwZSxcbiAgICBudW1iZXI6IG51bWJlclR5cGUsXG4gICAgb2JqZWN0OiBvYmplY3RUeXBlLFxuICAgIG9ib29sZWFuOiBvYm9vbGVhbixcbiAgICBvbnVtYmVyOiBvbnVtYmVyLFxuICAgIG9wdGlvbmFsOiBvcHRpb25hbFR5cGUsXG4gICAgb3N0cmluZzogb3N0cmluZyxcbiAgICBwaXBlbGluZTogcGlwZWxpbmVUeXBlLFxuICAgIHByZXByb2Nlc3M6IHByZXByb2Nlc3NUeXBlLFxuICAgIHByb21pc2U6IHByb21pc2VUeXBlLFxuICAgIHJlY29yZDogcmVjb3JkVHlwZSxcbiAgICBzZXQ6IHNldFR5cGUsXG4gICAgc3RyaWN0T2JqZWN0OiBzdHJpY3RPYmplY3RUeXBlLFxuICAgIHN0cmluZzogc3RyaW5nVHlwZSxcbiAgICBzeW1ib2w6IHN5bWJvbFR5cGUsXG4gICAgdHJhbnNmb3JtZXI6IGVmZmVjdHNUeXBlLFxuICAgIHR1cGxlOiB0dXBsZVR5cGUsXG4gICAgJ3VuZGVmaW5lZCc6IHVuZGVmaW5lZFR5cGUsXG4gICAgdW5pb246IHVuaW9uVHlwZSxcbiAgICB1bmtub3duOiB1bmtub3duVHlwZSxcbiAgICAndm9pZCc6IHZvaWRUeXBlLFxuICAgIE5FVkVSOiBORVZFUixcbiAgICBab2RJc3N1ZUNvZGU6IFpvZElzc3VlQ29kZSxcbiAgICBxdW90ZWxlc3NKc29uOiBxdW90ZWxlc3NKc29uLFxuICAgIFpvZEVycm9yOiBab2RFcnJvclxufSk7XG5cbmV4cG9ydCB7IEJSQU5ELCBESVJUWSwgRU1QVFlfUEFUSCwgSU5WQUxJRCwgTkVWRVIsIE9LLCBQYXJzZVN0YXR1cywgWm9kVHlwZSBhcyBTY2hlbWEsIFpvZEFueSwgWm9kQXJyYXksIFpvZEJpZ0ludCwgWm9kQm9vbGVhbiwgWm9kQnJhbmRlZCwgWm9kQ2F0Y2gsIFpvZERhdGUsIFpvZERlZmF1bHQsIFpvZERpc2NyaW1pbmF0ZWRVbmlvbiwgWm9kRWZmZWN0cywgWm9kRW51bSwgWm9kRXJyb3IsIFpvZEZpcnN0UGFydHlUeXBlS2luZCwgWm9kRnVuY3Rpb24sIFpvZEludGVyc2VjdGlvbiwgWm9kSXNzdWVDb2RlLCBab2RMYXp5LCBab2RMaXRlcmFsLCBab2RNYXAsIFpvZE5hTiwgWm9kTmF0aXZlRW51bSwgWm9kTmV2ZXIsIFpvZE51bGwsIFpvZE51bGxhYmxlLCBab2ROdW1iZXIsIFpvZE9iamVjdCwgWm9kT3B0aW9uYWwsIFpvZFBhcnNlZFR5cGUsIFpvZFBpcGVsaW5lLCBab2RQcm9taXNlLCBab2RSZWFkb25seSwgWm9kUmVjb3JkLCBab2RUeXBlIGFzIFpvZFNjaGVtYSwgWm9kU2V0LCBab2RTdHJpbmcsIFpvZFN5bWJvbCwgWm9kRWZmZWN0cyBhcyBab2RUcmFuc2Zvcm1lciwgWm9kVHVwbGUsIFpvZFR5cGUsIFpvZFVuZGVmaW5lZCwgWm9kVW5pb24sIFpvZFVua25vd24sIFpvZFZvaWQsIGFkZElzc3VlVG9Db250ZXh0LCBhbnlUeXBlIGFzIGFueSwgYXJyYXlUeXBlIGFzIGFycmF5LCBiaWdJbnRUeXBlIGFzIGJpZ2ludCwgYm9vbGVhblR5cGUgYXMgYm9vbGVhbiwgY29lcmNlLCBjdXN0b20sIGRhdGVUeXBlIGFzIGRhdGUsIGRhdGV0aW1lUmVnZXgsIHogYXMgZGVmYXVsdCwgZXJyb3JNYXAgYXMgZGVmYXVsdEVycm9yTWFwLCBkaXNjcmltaW5hdGVkVW5pb25UeXBlIGFzIGRpc2NyaW1pbmF0ZWRVbmlvbiwgZWZmZWN0c1R5cGUgYXMgZWZmZWN0LCBlbnVtVHlwZSBhcyBlbnVtLCBmdW5jdGlvblR5cGUgYXMgZnVuY3Rpb24sIGdldEVycm9yTWFwLCBnZXRQYXJzZWRUeXBlLCBpbnN0YW5jZU9mVHlwZSBhcyBpbnN0YW5jZW9mLCBpbnRlcnNlY3Rpb25UeXBlIGFzIGludGVyc2VjdGlvbiwgaXNBYm9ydGVkLCBpc0FzeW5jLCBpc0RpcnR5LCBpc1ZhbGlkLCBsYXRlLCBsYXp5VHlwZSBhcyBsYXp5LCBsaXRlcmFsVHlwZSBhcyBsaXRlcmFsLCBtYWtlSXNzdWUsIG1hcFR5cGUgYXMgbWFwLCBuYW5UeXBlIGFzIG5hbiwgbmF0aXZlRW51bVR5cGUgYXMgbmF0aXZlRW51bSwgbmV2ZXJUeXBlIGFzIG5ldmVyLCBudWxsVHlwZSBhcyBudWxsLCBudWxsYWJsZVR5cGUgYXMgbnVsbGFibGUsIG51bWJlclR5cGUgYXMgbnVtYmVyLCBvYmplY3RUeXBlIGFzIG9iamVjdCwgb2JqZWN0VXRpbCwgb2Jvb2xlYW4sIG9udW1iZXIsIG9wdGlvbmFsVHlwZSBhcyBvcHRpb25hbCwgb3N0cmluZywgcGlwZWxpbmVUeXBlIGFzIHBpcGVsaW5lLCBwcmVwcm9jZXNzVHlwZSBhcyBwcmVwcm9jZXNzLCBwcm9taXNlVHlwZSBhcyBwcm9taXNlLCBxdW90ZWxlc3NKc29uLCByZWNvcmRUeXBlIGFzIHJlY29yZCwgc2V0VHlwZSBhcyBzZXQsIHNldEVycm9yTWFwLCBzdHJpY3RPYmplY3RUeXBlIGFzIHN0cmljdE9iamVjdCwgc3RyaW5nVHlwZSBhcyBzdHJpbmcsIHN5bWJvbFR5cGUgYXMgc3ltYm9sLCBlZmZlY3RzVHlwZSBhcyB0cmFuc2Zvcm1lciwgdHVwbGVUeXBlIGFzIHR1cGxlLCB1bmRlZmluZWRUeXBlIGFzIHVuZGVmaW5lZCwgdW5pb25UeXBlIGFzIHVuaW9uLCB1bmtub3duVHlwZSBhcyB1bmtub3duLCB1dGlsLCB2b2lkVHlwZSBhcyB2b2lkLCB6IH07XG4iLCBudWxsLCBudWxsLCAiaW1wb3J0IHsgU0NIRU1FUyB9IGZyb20gXCIuL3VyaVwiO1xuXG5pbXBvcnQgaHR0cCBmcm9tIFwiLi9zY2hlbWVzL2h0dHBcIjtcblNDSEVNRVNbaHR0cC5zY2hlbWVdID0gaHR0cDtcblxuaW1wb3J0IGh0dHBzIGZyb20gXCIuL3NjaGVtZXMvaHR0cHNcIjtcblNDSEVNRVNbaHR0cHMuc2NoZW1lXSA9IGh0dHBzO1xuXG5pbXBvcnQgd3MgZnJvbSBcIi4vc2NoZW1lcy93c1wiO1xuU0NIRU1FU1t3cy5zY2hlbWVdID0gd3M7XG5cbmltcG9ydCB3c3MgZnJvbSBcIi4vc2NoZW1lcy93c3NcIjtcblNDSEVNRVNbd3NzLnNjaGVtZV0gPSB3c3M7XG5cbmltcG9ydCBtYWlsdG8gZnJvbSBcIi4vc2NoZW1lcy9tYWlsdG9cIjtcblNDSEVNRVNbbWFpbHRvLnNjaGVtZV0gPSBtYWlsdG87XG5cbmltcG9ydCB1cm4gZnJvbSBcIi4vc2NoZW1lcy91cm5cIjtcblNDSEVNRVNbdXJuLnNjaGVtZV0gPSB1cm47XG5cbmltcG9ydCB1dWlkIGZyb20gXCIuL3NjaGVtZXMvdXJuLXV1aWRcIjtcblNDSEVNRVNbdXVpZC5zY2hlbWVdID0gdXVpZDtcblxuZXhwb3J0ICogZnJvbSBcIi4vdXJpXCI7XG4iLCAiaW1wb3J0IHsgVVJJU2NoZW1lSGFuZGxlciwgVVJJQ29tcG9uZW50cywgVVJJT3B0aW9ucyB9IGZyb20gXCIuLi91cmlcIjtcbmltcG9ydCB7IFVSTkNvbXBvbmVudHMgfSBmcm9tIFwiLi91cm5cIjtcbmltcG9ydCB7IFNDSEVNRVMgfSBmcm9tIFwiLi4vdXJpXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVVVJRENvbXBvbmVudHMgZXh0ZW5kcyBVUk5Db21wb25lbnRzIHtcblx0dXVpZD86IHN0cmluZztcbn1cblxuY29uc3QgVVVJRCA9IC9eWzAtOUEtRmEtZl17OH0oPzpcXC1bMC05QS1GYS1mXXs0fSl7M31cXC1bMC05QS1GYS1mXXsxMn0kLztcbmNvbnN0IFVVSURfUEFSU0UgPSAvXlswLTlBLUZhLWZcXC1dezM2fS87XG5cbi8vUkZDIDQxMjJcbmNvbnN0IGhhbmRsZXI6VVJJU2NoZW1lSGFuZGxlcjxVVUlEQ29tcG9uZW50cywgVVJJT3B0aW9ucywgVVJOQ29tcG9uZW50cz4gPSB7XG5cdHNjaGVtZSA6IFwidXJuOnV1aWRcIixcblxuXHRwYXJzZSA6IGZ1bmN0aW9uICh1cm5Db21wb25lbnRzOlVSTkNvbXBvbmVudHMsIG9wdGlvbnM6VVJJT3B0aW9ucyk6VVVJRENvbXBvbmVudHMge1xuXHRcdGNvbnN0IHV1aWRDb21wb25lbnRzID0gdXJuQ29tcG9uZW50cyBhcyBVVUlEQ29tcG9uZW50cztcblx0XHR1dWlkQ29tcG9uZW50cy51dWlkID0gdXVpZENvbXBvbmVudHMubnNzO1xuXHRcdHV1aWRDb21wb25lbnRzLm5zcyA9IHVuZGVmaW5lZDtcblxuXHRcdGlmICghb3B0aW9ucy50b2xlcmFudCAmJiAoIXV1aWRDb21wb25lbnRzLnV1aWQgfHwgIXV1aWRDb21wb25lbnRzLnV1aWQubWF0Y2goVVVJRCkpKSB7XG5cdFx0XHR1dWlkQ29tcG9uZW50cy5lcnJvciA9IHV1aWRDb21wb25lbnRzLmVycm9yIHx8IFwiVVVJRCBpcyBub3QgdmFsaWQuXCI7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHV1aWRDb21wb25lbnRzO1xuXHR9LFxuXG5cdHNlcmlhbGl6ZSA6IGZ1bmN0aW9uICh1dWlkQ29tcG9uZW50czpVVUlEQ29tcG9uZW50cywgb3B0aW9uczpVUklPcHRpb25zKTpVUk5Db21wb25lbnRzIHtcblx0XHRjb25zdCB1cm5Db21wb25lbnRzID0gdXVpZENvbXBvbmVudHMgYXMgVVJOQ29tcG9uZW50cztcblx0XHQvL25vcm1hbGl6ZSBVVUlEXG5cdFx0dXJuQ29tcG9uZW50cy5uc3MgPSAodXVpZENvbXBvbmVudHMudXVpZCB8fCBcIlwiKS50b0xvd2VyQ2FzZSgpO1xuXHRcdHJldHVybiB1cm5Db21wb25lbnRzO1xuXHR9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgaGFuZGxlcjsiLCAiaW1wb3J0IHsgVVJJU2NoZW1lSGFuZGxlciwgVVJJQ29tcG9uZW50cywgVVJJT3B0aW9ucyB9IGZyb20gXCIuLi91cmlcIjtcbmltcG9ydCB7IHBjdEVuY0NoYXIsIFNDSEVNRVMgfSBmcm9tIFwiLi4vdXJpXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVVJOQ29tcG9uZW50cyBleHRlbmRzIFVSSUNvbXBvbmVudHMge1xuXHRuaWQ/OnN0cmluZztcblx0bnNzPzpzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVVJOT3B0aW9ucyBleHRlbmRzIFVSSU9wdGlvbnMge1xuXHRuaWQ/OnN0cmluZztcbn1cblxuY29uc3QgTklEJCA9IFwiKD86WzAtOUEtWmEtel1bMC05QS1aYS16XFxcXC1dezEsMzF9KVwiO1xuY29uc3QgUENUX0VOQ09ERUQkID0gXCIoPzpcXFxcJVswLTlBLUZhLWZdezJ9KVwiO1xuY29uc3QgVFJBTlMkJCA9IFwiWzAtOUEtWmEtelxcXFwoXFxcXClcXFxcK1xcXFwsXFxcXC1cXFxcLlxcXFw6XFxcXD1cXFxcQFxcXFw7XFxcXCRcXFxcX1xcXFwhXFxcXCpcXFxcJ1xcXFwvXFxcXD9cXFxcI11cIjtcbmNvbnN0IE5TUyQgPSBcIig/Oig/OlwiICsgUENUX0VOQ09ERUQkICsgXCJ8XCIgKyBUUkFOUyQkICsgXCIpKylcIjtcbmNvbnN0IFVSTl9TQ0hFTUUgPSBuZXcgUmVnRXhwKFwiXnVyblxcXFw6KFwiICsgTklEJCArIFwiKSRcIik7XG5jb25zdCBVUk5fUEFUSCA9IG5ldyBSZWdFeHAoXCJeKFwiICsgTklEJCArIFwiKVxcXFw6KFwiICsgTlNTJCArIFwiKSRcIik7XG5jb25zdCBVUk5fUEFSU0UgPSAvXihbXlxcOl0rKVxcOiguKikvO1xuY29uc3QgVVJOX0VYQ0xVREVEID0gL1tcXHgwMC1cXHgyMFxcXFxcXFwiXFwmXFw8XFw+XFxbXFxdXFxeXFxgXFx7XFx8XFx9XFx+XFx4N0YtXFx4RkZdL2c7XG5cbi8vUkZDIDIxNDFcbmNvbnN0IGhhbmRsZXI6VVJJU2NoZW1lSGFuZGxlcjxVUk5Db21wb25lbnRzLFVSTk9wdGlvbnM+ID0ge1xuXHRzY2hlbWUgOiBcInVyblwiLFxuXG5cdHBhcnNlIDogZnVuY3Rpb24gKGNvbXBvbmVudHM6VVJJQ29tcG9uZW50cywgb3B0aW9uczpVUk5PcHRpb25zKTpVUk5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaGVzID0gY29tcG9uZW50cy5wYXRoICYmIGNvbXBvbmVudHMucGF0aC5tYXRjaChVUk5fUEFSU0UpO1xuXHRcdGxldCB1cm5Db21wb25lbnRzID0gY29tcG9uZW50cyBhcyBVUk5Db21wb25lbnRzO1xuXG5cdFx0aWYgKG1hdGNoZXMpIHtcblx0XHRcdGNvbnN0IHNjaGVtZSA9IG9wdGlvbnMuc2NoZW1lIHx8IHVybkNvbXBvbmVudHMuc2NoZW1lIHx8IFwidXJuXCI7XG5cdFx0XHRjb25zdCBuaWQgPSBtYXRjaGVzWzFdLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRjb25zdCBuc3MgPSBtYXRjaGVzWzJdO1xuXHRcdFx0Y29uc3QgdXJuU2NoZW1lID0gYCR7c2NoZW1lfToke29wdGlvbnMubmlkIHx8IG5pZH1gO1xuXHRcdFx0Y29uc3Qgc2NoZW1lSGFuZGxlciA9IFNDSEVNRVNbdXJuU2NoZW1lXTtcblxuXHRcdFx0dXJuQ29tcG9uZW50cy5uaWQgPSBuaWQ7XG5cdFx0XHR1cm5Db21wb25lbnRzLm5zcyA9IG5zcztcblx0XHRcdHVybkNvbXBvbmVudHMucGF0aCA9IHVuZGVmaW5lZDtcblxuXHRcdFx0aWYgKHNjaGVtZUhhbmRsZXIpIHtcblx0XHRcdFx0dXJuQ29tcG9uZW50cyA9IHNjaGVtZUhhbmRsZXIucGFyc2UodXJuQ29tcG9uZW50cywgb3B0aW9ucykgYXMgVVJOQ29tcG9uZW50cztcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dXJuQ29tcG9uZW50cy5lcnJvciA9IHVybkNvbXBvbmVudHMuZXJyb3IgfHwgXCJVUk4gY2FuIG5vdCBiZSBwYXJzZWQuXCI7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHVybkNvbXBvbmVudHM7XG5cdH0sXG5cblx0c2VyaWFsaXplIDogZnVuY3Rpb24gKHVybkNvbXBvbmVudHM6VVJOQ29tcG9uZW50cywgb3B0aW9uczpVUk5PcHRpb25zKTpVUklDb21wb25lbnRzIHtcblx0XHRjb25zdCBzY2hlbWUgPSBvcHRpb25zLnNjaGVtZSB8fCB1cm5Db21wb25lbnRzLnNjaGVtZSB8fCBcInVyblwiO1xuXHRcdGNvbnN0IG5pZCA9IHVybkNvbXBvbmVudHMubmlkO1xuXHRcdGNvbnN0IHVyblNjaGVtZSA9IGAke3NjaGVtZX06JHtvcHRpb25zLm5pZCB8fCBuaWR9YDtcblx0XHRjb25zdCBzY2hlbWVIYW5kbGVyID0gU0NIRU1FU1t1cm5TY2hlbWVdO1xuXG5cdFx0aWYgKHNjaGVtZUhhbmRsZXIpIHtcblx0XHRcdHVybkNvbXBvbmVudHMgPSBzY2hlbWVIYW5kbGVyLnNlcmlhbGl6ZSh1cm5Db21wb25lbnRzLCBvcHRpb25zKSBhcyBVUk5Db21wb25lbnRzO1xuXHRcdH1cblxuXHRcdGNvbnN0IHVyaUNvbXBvbmVudHMgPSB1cm5Db21wb25lbnRzIGFzIFVSSUNvbXBvbmVudHM7XG5cdFx0Y29uc3QgbnNzID0gdXJuQ29tcG9uZW50cy5uc3M7XG5cdFx0dXJpQ29tcG9uZW50cy5wYXRoID0gYCR7bmlkIHx8IG9wdGlvbnMubmlkfToke25zc31gO1xuXG5cdFx0cmV0dXJuIHVyaUNvbXBvbmVudHM7XG5cdH0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBoYW5kbGVyOyIsICJpbXBvcnQgeyBVUklTY2hlbWVIYW5kbGVyLCBVUklDb21wb25lbnRzLCBVUklPcHRpb25zIH0gZnJvbSBcIi4uL3VyaVwiO1xuaW1wb3J0IHsgcGN0RW5jQ2hhciwgcGN0RGVjQ2hhcnMsIHVuZXNjYXBlQ29tcG9uZW50IH0gZnJvbSBcIi4uL3VyaVwiO1xuaW1wb3J0IHB1bnljb2RlIGZyb20gXCJwdW55Y29kZVwiO1xuaW1wb3J0IHsgbWVyZ2UsIHN1YmV4cCwgdG9VcHBlckNhc2UsIHRvQXJyYXkgfSBmcm9tIFwiLi4vdXRpbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1haWx0b0hlYWRlcnMge1xuXHRbaGZuYW1lOnN0cmluZ106c3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFpbHRvQ29tcG9uZW50cyBleHRlbmRzIFVSSUNvbXBvbmVudHMge1xuXHR0bzpBcnJheTxzdHJpbmc+LFxuXHRoZWFkZXJzPzpNYWlsdG9IZWFkZXJzLFxuXHRzdWJqZWN0PzpzdHJpbmcsXG5cdGJvZHk/OnN0cmluZ1xufVxuXG5jb25zdCBPOk1haWx0b0hlYWRlcnMgPSB7fTtcbmNvbnN0IGlzSVJJID0gdHJ1ZTtcblxuLy9SRkMgMzk4NlxuY29uc3QgVU5SRVNFUlZFRCQkID0gXCJbQS1aYS16MC05XFxcXC1cXFxcLlxcXFxfXFxcXH5cIiArIChpc0lSSSA/IFwiXFxcXHhBMC1cXFxcdTIwMERcXFxcdTIwMTAtXFxcXHUyMDI5XFxcXHUyMDJGLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkVGXCIgOiBcIlwiKSArIFwiXVwiO1xuY29uc3QgSEVYRElHJCQgPSBcIlswLTlBLUZhLWZdXCI7ICAvL2Nhc2UtaW5zZW5zaXRpdmVcbmNvbnN0IFBDVF9FTkNPREVEJCA9IHN1YmV4cChzdWJleHAoXCIlW0VGZWZdXCIgKyBIRVhESUckJCArIFwiJVwiICsgSEVYRElHJCQgKyBIRVhESUckJCArIFwiJVwiICsgSEVYRElHJCQgKyBIRVhESUckJCkgKyBcInxcIiArIHN1YmV4cChcIiVbODlBLUZhLWZdXCIgKyBIRVhESUckJCArIFwiJVwiICsgSEVYRElHJCQgKyBIRVhESUckJCkgKyBcInxcIiArIHN1YmV4cChcIiVcIiArIEhFWERJRyQkICsgSEVYRElHJCQpKTsgIC8vZXhwYW5kZWRcblxuLy9SRkMgNTMyMiwgZXhjZXB0IHRoZXNlIHN5bWJvbHMgYXMgcGVyIFJGQyA2MDY4OiBAIDogLyA/ICMgWyBdICYgOyA9XG4vL2NvbnN0IEFURVhUJCQgPSBcIltBLVphLXowLTlcXFxcIVxcXFwjXFxcXCRcXFxcJVxcXFwmXFxcXCdcXFxcKlxcXFwrXFxcXC1cXFxcL1xcXFw9XFxcXD9cXFxcXlxcXFxfXFxcXGBcXFxce1xcXFx8XFxcXH1cXFxcfl1cIjtcbi8vY29uc3QgV1NQJCQgPSBcIltcXFxceDIwXFxcXHgwOV1cIjtcbi8vY29uc3QgT0JTX1FURVhUJCQgPSBcIltcXFxceDAxLVxcXFx4MDhcXFxceDBCXFxcXHgwQ1xcXFx4MEUtXFxcXHgxRlxcXFx4N0ZdXCI7ICAvLyglZDEtOCAvICVkMTEtMTIgLyAlZDE0LTMxIC8gJWQxMjcpXG4vL2NvbnN0IFFURVhUJCQgPSBtZXJnZShcIltcXFxceDIxXFxcXHgyMy1cXFxceDVCXFxcXHg1RC1cXFxceDdFXVwiLCBPQlNfUVRFWFQkJCk7ICAvLyVkMzMgLyAlZDM1LTkxIC8gJWQ5My0xMjYgLyBvYnMtcXRleHRcbi8vY29uc3QgVkNIQVIkJCA9IFwiW1xcXFx4MjEtXFxcXHg3RV1cIjtcbi8vY29uc3QgV1NQJCQgPSBcIltcXFxceDIwXFxcXHgwOV1cIjtcbi8vY29uc3QgT0JTX1FQJCA9IHN1YmV4cChcIlxcXFxcXFxcXCIgKyBtZXJnZShcIltcXFxceDAwXFxcXHgwRFxcXFx4MEFdXCIsIE9CU19RVEVYVCQkKSk7ICAvLyVkMCAvIENSIC8gTEYgLyBvYnMtcXRleHRcbi8vY29uc3QgRldTJCA9IHN1YmV4cChzdWJleHAoV1NQJCQgKyBcIipcIiArIFwiXFxcXHgwRFxcXFx4MEFcIikgKyBcIj9cIiArIFdTUCQkICsgXCIrXCIpO1xuLy9jb25zdCBRVU9URURfUEFJUiQgPSBzdWJleHAoc3ViZXhwKFwiXFxcXFxcXFxcIiArIHN1YmV4cChWQ0hBUiQkICsgXCJ8XCIgKyBXU1AkJCkpICsgXCJ8XCIgKyBPQlNfUVAkKTtcbi8vY29uc3QgUVVPVEVEX1NUUklORyQgPSBzdWJleHAoJ1xcXFxcIicgKyBzdWJleHAoRldTJCArIFwiP1wiICsgUUNPTlRFTlQkKSArIFwiKlwiICsgRldTJCArIFwiP1wiICsgJ1xcXFxcIicpO1xuY29uc3QgQVRFWFQkJCA9IFwiW0EtWmEtejAtOVxcXFwhXFxcXCRcXFxcJVxcXFwnXFxcXCpcXFxcK1xcXFwtXFxcXF5cXFxcX1xcXFxgXFxcXHtcXFxcfFxcXFx9XFxcXH5dXCI7XG5jb25zdCBRVEVYVCQkID0gXCJbXFxcXCFcXFxcJFxcXFwlXFxcXCdcXFxcKFxcXFwpXFxcXCpcXFxcK1xcXFwsXFxcXC1cXFxcLjAtOVxcXFw8XFxcXD5BLVpcXFxceDVFLVxcXFx4N0VdXCI7XG5jb25zdCBWQ0hBUiQkID0gbWVyZ2UoUVRFWFQkJCwgXCJbXFxcXFxcXCJcXFxcXFxcXF1cIik7XG5jb25zdCBET1RfQVRPTV9URVhUJCA9IHN1YmV4cChBVEVYVCQkICsgXCIrXCIgKyBzdWJleHAoXCJcXFxcLlwiICsgQVRFWFQkJCArIFwiK1wiKSArIFwiKlwiKTtcbmNvbnN0IFFVT1RFRF9QQUlSJCA9IHN1YmV4cChcIlxcXFxcXFxcXCIgKyBWQ0hBUiQkKTtcbmNvbnN0IFFDT05URU5UJCA9IHN1YmV4cChRVEVYVCQkICsgXCJ8XCIgKyBRVU9URURfUEFJUiQpO1xuY29uc3QgUVVPVEVEX1NUUklORyQgPSBzdWJleHAoJ1xcXFxcIicgKyBRQ09OVEVOVCQgKyBcIipcIiArICdcXFxcXCInKTtcblxuLy9SRkMgNjA2OFxuY29uc3QgRFRFWFRfTk9fT0JTJCQgPSBcIltcXFxceDIxLVxcXFx4NUFcXFxceDVFLVxcXFx4N0VdXCI7ICAvLyVkMzMtOTAgLyAlZDk0LTEyNlxuY29uc3QgU09NRV9ERUxJTVMkJCA9IFwiW1xcXFwhXFxcXCRcXFxcJ1xcXFwoXFxcXClcXFxcKlxcXFwrXFxcXCxcXFxcO1xcXFw6XFxcXEBdXCI7XG5jb25zdCBRQ0hBUiQgPSBzdWJleHAoVU5SRVNFUlZFRCQkICsgXCJ8XCIgKyBQQ1RfRU5DT0RFRCQgKyBcInxcIiArIFNPTUVfREVMSU1TJCQpO1xuY29uc3QgRE9NQUlOJCA9IHN1YmV4cChET1RfQVRPTV9URVhUJCArIFwifFwiICsgXCJcXFxcW1wiICsgRFRFWFRfTk9fT0JTJCQgKyBcIipcIiArIFwiXFxcXF1cIik7XG5jb25zdCBMT0NBTF9QQVJUJCA9IHN1YmV4cChET1RfQVRPTV9URVhUJCArIFwifFwiICsgUVVPVEVEX1NUUklORyQpO1xuY29uc3QgQUREUl9TUEVDJCA9IHN1YmV4cChMT0NBTF9QQVJUJCArIFwiXFxcXEBcIiArIERPTUFJTiQpO1xuY29uc3QgVE8kID0gc3ViZXhwKEFERFJfU1BFQyQgKyBzdWJleHAoXCJcXFxcLFwiICsgQUREUl9TUEVDJCkgKyBcIipcIik7XG5jb25zdCBIRk5BTUUkID0gc3ViZXhwKFFDSEFSJCArIFwiKlwiKTtcbmNvbnN0IEhGVkFMVUUkID0gSEZOQU1FJDtcbmNvbnN0IEhGSUVMRCQgPSBzdWJleHAoSEZOQU1FJCArIFwiXFxcXD1cIiArIEhGVkFMVUUkKTtcbmNvbnN0IEhGSUVMRFMyJCA9IHN1YmV4cChIRklFTEQkICsgc3ViZXhwKFwiXFxcXCZcIiArIEhGSUVMRCQpICsgXCIqXCIpO1xuY29uc3QgSEZJRUxEUyQgPSBzdWJleHAoXCJcXFxcP1wiICsgSEZJRUxEUzIkKTtcbmNvbnN0IE1BSUxUT19VUkkgPSBuZXcgUmVnRXhwKFwiXm1haWx0b1xcXFw6XCIgKyBUTyQgKyBcIj9cIiArIEhGSUVMRFMkICsgXCI/JFwiKTtcblxuY29uc3QgVU5SRVNFUlZFRCA9IG5ldyBSZWdFeHAoVU5SRVNFUlZFRCQkLCBcImdcIik7XG5jb25zdCBQQ1RfRU5DT0RFRCA9IG5ldyBSZWdFeHAoUENUX0VOQ09ERUQkLCBcImdcIik7XG5jb25zdCBOT1RfTE9DQUxfUEFSVCA9IG5ldyBSZWdFeHAobWVyZ2UoXCJbXl1cIiwgQVRFWFQkJCwgXCJbXFxcXC5dXCIsICdbXFxcXFwiXScsIFZDSEFSJCQpLCBcImdcIik7XG5jb25zdCBOT1RfRE9NQUlOID0gbmV3IFJlZ0V4cChtZXJnZShcIlteXVwiLCBBVEVYVCQkLCBcIltcXFxcLl1cIiwgXCJbXFxcXFtdXCIsIERURVhUX05PX09CUyQkLCBcIltcXFxcXV1cIiksIFwiZ1wiKTtcbmNvbnN0IE5PVF9IRk5BTUUgPSBuZXcgUmVnRXhwKG1lcmdlKFwiW15dXCIsIFVOUkVTRVJWRUQkJCwgU09NRV9ERUxJTVMkJCksIFwiZ1wiKTtcbmNvbnN0IE5PVF9IRlZBTFVFID0gTk9UX0hGTkFNRTtcbmNvbnN0IFRPID0gbmV3IFJlZ0V4cChcIl5cIiArIFRPJCArIFwiJFwiKTtcbmNvbnN0IEhGSUVMRFMgPSBuZXcgUmVnRXhwKFwiXlwiICsgSEZJRUxEUzIkICsgXCIkXCIpO1xuXG5mdW5jdGlvbiBkZWNvZGVVbnJlc2VydmVkKHN0cjpzdHJpbmcpOnN0cmluZyB7XG5cdGNvbnN0IGRlY1N0ciA9IHBjdERlY0NoYXJzKHN0cik7XG5cdHJldHVybiAoIWRlY1N0ci5tYXRjaChVTlJFU0VSVkVEKSA/IHN0ciA6IGRlY1N0cik7XG59XG5cbmNvbnN0IGhhbmRsZXI6VVJJU2NoZW1lSGFuZGxlcjxNYWlsdG9Db21wb25lbnRzPiA9ICB7XG5cdHNjaGVtZSA6IFwibWFpbHRvXCIsXG5cblx0cGFyc2UgOiBmdW5jdGlvbiAoY29tcG9uZW50czpVUklDb21wb25lbnRzLCBvcHRpb25zOlVSSU9wdGlvbnMpOk1haWx0b0NvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1haWx0b0NvbXBvbmVudHMgPSBjb21wb25lbnRzIGFzIE1haWx0b0NvbXBvbmVudHM7XG5cdFx0Y29uc3QgdG8gPSBtYWlsdG9Db21wb25lbnRzLnRvID0gKG1haWx0b0NvbXBvbmVudHMucGF0aCA/IG1haWx0b0NvbXBvbmVudHMucGF0aC5zcGxpdChcIixcIikgOiBbXSk7XG5cdFx0bWFpbHRvQ29tcG9uZW50cy5wYXRoID0gdW5kZWZpbmVkO1xuXG5cdFx0aWYgKG1haWx0b0NvbXBvbmVudHMucXVlcnkpIHtcblx0XHRcdGxldCB1bmtub3duSGVhZGVycyA9IGZhbHNlXG5cdFx0XHRjb25zdCBoZWFkZXJzOk1haWx0b0hlYWRlcnMgPSB7fTtcblx0XHRcdGNvbnN0IGhmaWVsZHMgPSBtYWlsdG9Db21wb25lbnRzLnF1ZXJ5LnNwbGl0KFwiJlwiKTtcblxuXHRcdFx0Zm9yIChsZXQgeCA9IDAsIHhsID0gaGZpZWxkcy5sZW5ndGg7IHggPCB4bDsgKyt4KSB7XG5cdFx0XHRcdGNvbnN0IGhmaWVsZCA9IGhmaWVsZHNbeF0uc3BsaXQoXCI9XCIpO1xuXG5cdFx0XHRcdHN3aXRjaCAoaGZpZWxkWzBdKSB7XG5cdFx0XHRcdFx0Y2FzZSBcInRvXCI6XG5cdFx0XHRcdFx0XHRjb25zdCB0b0FkZHJzID0gaGZpZWxkWzFdLnNwbGl0KFwiLFwiKTtcblx0XHRcdFx0XHRcdGZvciAobGV0IHggPSAwLCB4bCA9IHRvQWRkcnMubGVuZ3RoOyB4IDwgeGw7ICsreCkge1xuXHRcdFx0XHRcdFx0XHR0by5wdXNoKHRvQWRkcnNbeF0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSBcInN1YmplY3RcIjpcblx0XHRcdFx0XHRcdG1haWx0b0NvbXBvbmVudHMuc3ViamVjdCA9IHVuZXNjYXBlQ29tcG9uZW50KGhmaWVsZFsxXSwgb3B0aW9ucyk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlIFwiYm9keVwiOlxuXHRcdFx0XHRcdFx0bWFpbHRvQ29tcG9uZW50cy5ib2R5ID0gdW5lc2NhcGVDb21wb25lbnQoaGZpZWxkWzFdLCBvcHRpb25zKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHR1bmtub3duSGVhZGVycyA9IHRydWU7XG5cdFx0XHRcdFx0XHRoZWFkZXJzW3VuZXNjYXBlQ29tcG9uZW50KGhmaWVsZFswXSwgb3B0aW9ucyldID0gdW5lc2NhcGVDb21wb25lbnQoaGZpZWxkWzFdLCBvcHRpb25zKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmICh1bmtub3duSGVhZGVycykgbWFpbHRvQ29tcG9uZW50cy5oZWFkZXJzID0gaGVhZGVycztcblx0XHR9XG5cblx0XHRtYWlsdG9Db21wb25lbnRzLnF1ZXJ5ID0gdW5kZWZpbmVkO1xuXG5cdFx0Zm9yIChsZXQgeCA9IDAsIHhsID0gdG8ubGVuZ3RoOyB4IDwgeGw7ICsreCkge1xuXHRcdFx0Y29uc3QgYWRkciA9IHRvW3hdLnNwbGl0KFwiQFwiKTtcblxuXHRcdFx0YWRkclswXSA9IHVuZXNjYXBlQ29tcG9uZW50KGFkZHJbMF0pO1xuXG5cdFx0XHRpZiAoIW9wdGlvbnMudW5pY29kZVN1cHBvcnQpIHtcblx0XHRcdFx0Ly9jb252ZXJ0IFVuaWNvZGUgSUROIC0+IEFTQ0lJIElETlxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGFkZHJbMV0gPSBwdW55Y29kZS50b0FTQ0lJKHVuZXNjYXBlQ29tcG9uZW50KGFkZHJbMV0sIG9wdGlvbnMpLnRvTG93ZXJDYXNlKCkpO1xuXHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0bWFpbHRvQ29tcG9uZW50cy5lcnJvciA9IG1haWx0b0NvbXBvbmVudHMuZXJyb3IgfHwgXCJFbWFpbCBhZGRyZXNzJ3MgZG9tYWluIG5hbWUgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgdmlhIHB1bnljb2RlOiBcIiArIGU7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGFkZHJbMV0gPSB1bmVzY2FwZUNvbXBvbmVudChhZGRyWzFdLCBvcHRpb25zKS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0fVxuXG5cdFx0XHR0b1t4XSA9IGFkZHIuam9pbihcIkBcIik7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1haWx0b0NvbXBvbmVudHM7XG5cdH0sXG5cblx0c2VyaWFsaXplIDogZnVuY3Rpb24gKG1haWx0b0NvbXBvbmVudHM6TWFpbHRvQ29tcG9uZW50cywgb3B0aW9uczpVUklPcHRpb25zKTpVUklDb21wb25lbnRzIHtcblx0XHRjb25zdCBjb21wb25lbnRzID0gbWFpbHRvQ29tcG9uZW50cyBhcyBVUklDb21wb25lbnRzO1xuXHRcdGNvbnN0IHRvID0gdG9BcnJheShtYWlsdG9Db21wb25lbnRzLnRvKTtcblx0XHRpZiAodG8pIHtcblx0XHRcdGZvciAobGV0IHggPSAwLCB4bCA9IHRvLmxlbmd0aDsgeCA8IHhsOyArK3gpIHtcblx0XHRcdFx0Y29uc3QgdG9BZGRyID0gU3RyaW5nKHRvW3hdKTtcblx0XHRcdFx0Y29uc3QgYXRJZHggPSB0b0FkZHIubGFzdEluZGV4T2YoXCJAXCIpO1xuXHRcdFx0XHRjb25zdCBsb2NhbFBhcnQgPSAodG9BZGRyLnNsaWNlKDAsIGF0SWR4KSkucmVwbGFjZShQQ1RfRU5DT0RFRCwgZGVjb2RlVW5yZXNlcnZlZCkucmVwbGFjZShQQ1RfRU5DT0RFRCwgdG9VcHBlckNhc2UpLnJlcGxhY2UoTk9UX0xPQ0FMX1BBUlQsIHBjdEVuY0NoYXIpO1xuXHRcdFx0XHRsZXQgZG9tYWluID0gdG9BZGRyLnNsaWNlKGF0SWR4ICsgMSk7XG5cblx0XHRcdFx0Ly9jb252ZXJ0IElETiB2aWEgcHVueWNvZGVcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRkb21haW4gPSAoIW9wdGlvbnMuaXJpID8gcHVueWNvZGUudG9BU0NJSSh1bmVzY2FwZUNvbXBvbmVudChkb21haW4sIG9wdGlvbnMpLnRvTG93ZXJDYXNlKCkpIDogcHVueWNvZGUudG9Vbmljb2RlKGRvbWFpbikpO1xuXHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0Y29tcG9uZW50cy5lcnJvciA9IGNvbXBvbmVudHMuZXJyb3IgfHwgXCJFbWFpbCBhZGRyZXNzJ3MgZG9tYWluIG5hbWUgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gXCIgKyAoIW9wdGlvbnMuaXJpID8gXCJBU0NJSVwiIDogXCJVbmljb2RlXCIpICsgXCIgdmlhIHB1bnljb2RlOiBcIiArIGU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0b1t4XSA9IGxvY2FsUGFydCArIFwiQFwiICsgZG9tYWluO1xuXHRcdFx0fVxuXG5cdFx0XHRjb21wb25lbnRzLnBhdGggPSB0by5qb2luKFwiLFwiKTtcblx0XHR9XG5cblx0XHRjb25zdCBoZWFkZXJzID0gbWFpbHRvQ29tcG9uZW50cy5oZWFkZXJzID0gbWFpbHRvQ29tcG9uZW50cy5oZWFkZXJzIHx8IHt9O1xuXG5cdFx0aWYgKG1haWx0b0NvbXBvbmVudHMuc3ViamVjdCkgaGVhZGVyc1tcInN1YmplY3RcIl0gPSBtYWlsdG9Db21wb25lbnRzLnN1YmplY3Q7XG5cdFx0aWYgKG1haWx0b0NvbXBvbmVudHMuYm9keSkgaGVhZGVyc1tcImJvZHlcIl0gPSBtYWlsdG9Db21wb25lbnRzLmJvZHk7XG5cblx0XHRjb25zdCBmaWVsZHMgPSBbXTtcblx0XHRmb3IgKGNvbnN0IG5hbWUgaW4gaGVhZGVycykge1xuXHRcdFx0aWYgKGhlYWRlcnNbbmFtZV0gIT09IE9bbmFtZV0pIHtcblx0XHRcdFx0ZmllbGRzLnB1c2goXG5cdFx0XHRcdFx0bmFtZS5yZXBsYWNlKFBDVF9FTkNPREVELCBkZWNvZGVVbnJlc2VydmVkKS5yZXBsYWNlKFBDVF9FTkNPREVELCB0b1VwcGVyQ2FzZSkucmVwbGFjZShOT1RfSEZOQU1FLCBwY3RFbmNDaGFyKSArXG5cdFx0XHRcdFx0XCI9XCIgK1xuXHRcdFx0XHRcdGhlYWRlcnNbbmFtZV0ucmVwbGFjZShQQ1RfRU5DT0RFRCwgZGVjb2RlVW5yZXNlcnZlZCkucmVwbGFjZShQQ1RfRU5DT0RFRCwgdG9VcHBlckNhc2UpLnJlcGxhY2UoTk9UX0hGVkFMVUUsIHBjdEVuY0NoYXIpXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChmaWVsZHMubGVuZ3RoKSB7XG5cdFx0XHRjb21wb25lbnRzLnF1ZXJ5ID0gZmllbGRzLmpvaW4oXCImXCIpO1xuXHRcdH1cblxuXHRcdHJldHVybiBjb21wb25lbnRzO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGhhbmRsZXI7IiwgImltcG9ydCB7IFVSSVNjaGVtZUhhbmRsZXIsIFVSSUNvbXBvbmVudHMsIFVSSU9wdGlvbnMgfSBmcm9tIFwiLi4vdXJpXCI7XG5pbXBvcnQgd3MgZnJvbSBcIi4vd3NcIjtcblxuY29uc3QgaGFuZGxlcjpVUklTY2hlbWVIYW5kbGVyID0ge1xuXHRzY2hlbWUgOiBcIndzc1wiLFxuXHRkb21haW5Ib3N0IDogd3MuZG9tYWluSG9zdCxcblx0cGFyc2UgOiB3cy5wYXJzZSxcblx0c2VyaWFsaXplIDogd3Muc2VyaWFsaXplXG59XG5cbmV4cG9ydCBkZWZhdWx0IGhhbmRsZXI7IiwgImltcG9ydCB7IFVSSVNjaGVtZUhhbmRsZXIsIFVSSUNvbXBvbmVudHMsIFVSSU9wdGlvbnMgfSBmcm9tIFwiLi4vdXJpXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV1NDb21wb25lbnRzIGV4dGVuZHMgVVJJQ29tcG9uZW50cyB7XG5cdHJlc291cmNlTmFtZT86IHN0cmluZztcblx0c2VjdXJlPzogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gaXNTZWN1cmUod3NDb21wb25lbnRzOldTQ29tcG9uZW50cyk6Ym9vbGVhbiB7XG5cdHJldHVybiB0eXBlb2Ygd3NDb21wb25lbnRzLnNlY3VyZSA9PT0gJ2Jvb2xlYW4nID8gd3NDb21wb25lbnRzLnNlY3VyZSA6IFN0cmluZyh3c0NvbXBvbmVudHMuc2NoZW1lKS50b0xvd2VyQ2FzZSgpID09PSBcIndzc1wiO1xufVxuXG4vL1JGQyA2NDU1XG5jb25zdCBoYW5kbGVyOlVSSVNjaGVtZUhhbmRsZXIgPSB7XG5cdHNjaGVtZSA6IFwid3NcIixcblxuXHRkb21haW5Ib3N0IDogdHJ1ZSxcblxuXHRwYXJzZSA6IGZ1bmN0aW9uIChjb21wb25lbnRzOlVSSUNvbXBvbmVudHMsIG9wdGlvbnM6VVJJT3B0aW9ucyk6V1NDb21wb25lbnRzIHtcblx0XHRjb25zdCB3c0NvbXBvbmVudHMgPSBjb21wb25lbnRzIGFzIFdTQ29tcG9uZW50cztcblxuXHRcdC8vaW5kaWNhdGUgaWYgdGhlIHNlY3VyZSBmbGFnIGlzIHNldFxuXHRcdHdzQ29tcG9uZW50cy5zZWN1cmUgPSBpc1NlY3VyZSh3c0NvbXBvbmVudHMpO1xuXG5cdFx0Ly9jb25zdHJ1Y3QgcmVzb3VjZSBuYW1lXG5cdFx0d3NDb21wb25lbnRzLnJlc291cmNlTmFtZSA9ICh3c0NvbXBvbmVudHMucGF0aCB8fCAnLycpICsgKHdzQ29tcG9uZW50cy5xdWVyeSA/ICc/JyArIHdzQ29tcG9uZW50cy5xdWVyeSA6ICcnKTtcblx0XHR3c0NvbXBvbmVudHMucGF0aCA9IHVuZGVmaW5lZDtcblx0XHR3c0NvbXBvbmVudHMucXVlcnkgPSB1bmRlZmluZWQ7XG5cblx0XHRyZXR1cm4gd3NDb21wb25lbnRzO1xuXHR9LFxuXG5cdHNlcmlhbGl6ZSA6IGZ1bmN0aW9uICh3c0NvbXBvbmVudHM6V1NDb21wb25lbnRzLCBvcHRpb25zOlVSSU9wdGlvbnMpOlVSSUNvbXBvbmVudHMge1xuXHRcdC8vbm9ybWFsaXplIHRoZSBkZWZhdWx0IHBvcnRcblx0XHRpZiAod3NDb21wb25lbnRzLnBvcnQgPT09IChpc1NlY3VyZSh3c0NvbXBvbmVudHMpID8gNDQzIDogODApIHx8IHdzQ29tcG9uZW50cy5wb3J0ID09PSBcIlwiKSB7XG5cdFx0XHR3c0NvbXBvbmVudHMucG9ydCA9IHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHQvL2Vuc3VyZSBzY2hlbWUgbWF0Y2hlcyBzZWN1cmUgZmxhZ1xuXHRcdGlmICh0eXBlb2Ygd3NDb21wb25lbnRzLnNlY3VyZSA9PT0gJ2Jvb2xlYW4nKSB7XG5cdFx0XHR3c0NvbXBvbmVudHMuc2NoZW1lID0gKHdzQ29tcG9uZW50cy5zZWN1cmUgPyAnd3NzJyA6ICd3cycpO1xuXHRcdFx0d3NDb21wb25lbnRzLnNlY3VyZSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHQvL3JlY29uc3RydWN0IHBhdGggZnJvbSByZXNvdXJjZSBuYW1lXG5cdFx0aWYgKHdzQ29tcG9uZW50cy5yZXNvdXJjZU5hbWUpIHtcblx0XHRcdGNvbnN0IFtwYXRoLCBxdWVyeV0gPSB3c0NvbXBvbmVudHMucmVzb3VyY2VOYW1lLnNwbGl0KCc/Jyk7XG5cdFx0XHR3c0NvbXBvbmVudHMucGF0aCA9IChwYXRoICYmIHBhdGggIT09ICcvJyA/IHBhdGggOiB1bmRlZmluZWQpO1xuXHRcdFx0d3NDb21wb25lbnRzLnF1ZXJ5ID0gcXVlcnk7XG5cdFx0XHR3c0NvbXBvbmVudHMucmVzb3VyY2VOYW1lID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdC8vZm9yYmlkIGZyYWdtZW50IGNvbXBvbmVudFxuXHRcdHdzQ29tcG9uZW50cy5mcmFnbWVudCA9IHVuZGVmaW5lZDtcblxuXHRcdHJldHVybiB3c0NvbXBvbmVudHM7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGhhbmRsZXI7IiwgImltcG9ydCB7IFVSSVNjaGVtZUhhbmRsZXIsIFVSSUNvbXBvbmVudHMsIFVSSU9wdGlvbnMgfSBmcm9tIFwiLi4vdXJpXCI7XG5pbXBvcnQgaHR0cCBmcm9tIFwiLi9odHRwXCI7XG5cbmNvbnN0IGhhbmRsZXI6VVJJU2NoZW1lSGFuZGxlciA9IHtcblx0c2NoZW1lIDogXCJodHRwc1wiLFxuXHRkb21haW5Ib3N0IDogaHR0cC5kb21haW5Ib3N0LFxuXHRwYXJzZSA6IGh0dHAucGFyc2UsXG5cdHNlcmlhbGl6ZSA6IGh0dHAuc2VyaWFsaXplXG59XG5cbmV4cG9ydCBkZWZhdWx0IGhhbmRsZXI7IiwgImltcG9ydCB7IFVSSVNjaGVtZUhhbmRsZXIsIFVSSUNvbXBvbmVudHMsIFVSSU9wdGlvbnMgfSBmcm9tIFwiLi4vdXJpXCI7XG5cbmNvbnN0IGhhbmRsZXI6VVJJU2NoZW1lSGFuZGxlciA9IHtcblx0c2NoZW1lIDogXCJodHRwXCIsXG5cblx0ZG9tYWluSG9zdCA6IHRydWUsXG5cblx0cGFyc2UgOiBmdW5jdGlvbiAoY29tcG9uZW50czpVUklDb21wb25lbnRzLCBvcHRpb25zOlVSSU9wdGlvbnMpOlVSSUNvbXBvbmVudHMge1xuXHRcdC8vcmVwb3J0IG1pc3NpbmcgaG9zdFxuXHRcdGlmICghY29tcG9uZW50cy5ob3N0KSB7XG5cdFx0XHRjb21wb25lbnRzLmVycm9yID0gY29tcG9uZW50cy5lcnJvciB8fCBcIkhUVFAgVVJJcyBtdXN0IGhhdmUgYSBob3N0LlwiO1xuXHRcdH1cblxuXHRcdHJldHVybiBjb21wb25lbnRzO1xuXHR9LFxuXG5cdHNlcmlhbGl6ZSA6IGZ1bmN0aW9uIChjb21wb25lbnRzOlVSSUNvbXBvbmVudHMsIG9wdGlvbnM6VVJJT3B0aW9ucyk6VVJJQ29tcG9uZW50cyB7XG5cdFx0Y29uc3Qgc2VjdXJlID0gU3RyaW5nKGNvbXBvbmVudHMuc2NoZW1lKS50b0xvd2VyQ2FzZSgpID09PSBcImh0dHBzXCI7XG5cblx0XHQvL25vcm1hbGl6ZSB0aGUgZGVmYXVsdCBwb3J0XG5cdFx0aWYgKGNvbXBvbmVudHMucG9ydCA9PT0gKHNlY3VyZSA/IDQ0MyA6IDgwKSB8fCBjb21wb25lbnRzLnBvcnQgPT09IFwiXCIpIHtcblx0XHRcdGNvbXBvbmVudHMucG9ydCA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0XG5cdFx0Ly9ub3JtYWxpemUgdGhlIGVtcHR5IHBhdGhcblx0XHRpZiAoIWNvbXBvbmVudHMucGF0aCkge1xuXHRcdFx0Y29tcG9uZW50cy5wYXRoID0gXCIvXCI7XG5cdFx0fVxuXG5cdFx0Ly9OT1RFOiBXZSBkbyBub3QgcGFyc2UgcXVlcnkgc3RyaW5ncyBmb3IgSFRUUCBVUklzXG5cdFx0Ly9hcyBXV1cgRm9ybSBVcmwgRW5jb2RlZCBxdWVyeSBzdHJpbmdzIGFyZSBwYXJ0IG9mIHRoZSBIVE1MNCsgc3BlYyxcblx0XHQvL2FuZCBub3QgdGhlIEhUVFAgc3BlYy5cblxuXHRcdHJldHVybiBjb21wb25lbnRzO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBoYW5kbGVyOyIsICIvKipcbiAqIFVSSS5qc1xuICpcbiAqIEBmaWxlb3ZlcnZpZXcgQW4gUkZDIDM5ODYgY29tcGxpYW50LCBzY2hlbWUgZXh0ZW5kYWJsZSBVUkkgcGFyc2luZy92YWxpZGF0aW5nL3Jlc29sdmluZyBsaWJyYXJ5IGZvciBKYXZhU2NyaXB0LlxuICogQGF1dGhvciA8YSBocmVmPVwibWFpbHRvOmdhcnkuY291cnRAZ21haWwuY29tXCI+R2FyeSBDb3VydDwvYT5cbiAqIEBzZWUgaHR0cDovL2dpdGh1Yi5jb20vZ2FyeWNvdXJ0L3VyaS1qc1xuICovXG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTEgR2FyeSBDb3VydC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmVcbiAqIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxuICpcbiAqICAgIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mXG4gKiAgICAgICBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG4gKlxuICogICAgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3RcbiAqICAgICAgIG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzXG4gKiAgICAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gKlxuICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHQVJZIENPVVJUIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRFxuICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEdBUlkgQ09VUlQgT1JcbiAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SXG4gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SXG4gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OXG4gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HXG4gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUZcbiAqIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICpcbiAqIFRoZSB2aWV3cyBhbmQgY29uY2x1c2lvbnMgY29udGFpbmVkIGluIHRoZSBzb2Z0d2FyZSBhbmQgZG9jdW1lbnRhdGlvbiBhcmUgdGhvc2Ugb2YgdGhlXG4gKiBhdXRob3JzIGFuZCBzaG91bGQgbm90IGJlIGludGVycHJldGVkIGFzIHJlcHJlc2VudGluZyBvZmZpY2lhbCBwb2xpY2llcywgZWl0aGVyIGV4cHJlc3NlZFxuICogb3IgaW1wbGllZCwgb2YgR2FyeSBDb3VydC5cbiAqL1xuXG5pbXBvcnQgVVJJX1BST1RPQ09MIGZyb20gXCIuL3JlZ2V4cHMtdXJpXCI7XG5pbXBvcnQgSVJJX1BST1RPQ09MIGZyb20gXCIuL3JlZ2V4cHMtaXJpXCI7XG5pbXBvcnQgcHVueWNvZGUgZnJvbSBcInB1bnljb2RlXCI7XG5pbXBvcnQgeyB0b1VwcGVyQ2FzZSwgdHlwZU9mLCBhc3NpZ24gfSBmcm9tIFwiLi91dGlsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVVJJQ29tcG9uZW50cyB7XG5cdHNjaGVtZT86c3RyaW5nO1xuXHR1c2VyaW5mbz86c3RyaW5nO1xuXHRob3N0PzpzdHJpbmc7XG5cdHBvcnQ/Om51bWJlcnxzdHJpbmc7XG5cdHBhdGg/OnN0cmluZztcblx0cXVlcnk/OnN0cmluZztcblx0ZnJhZ21lbnQ/OnN0cmluZztcblx0cmVmZXJlbmNlPzpzdHJpbmc7XG5cdGVycm9yPzpzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVVJJT3B0aW9ucyB7XG5cdHNjaGVtZT86c3RyaW5nO1xuXHRyZWZlcmVuY2U/OnN0cmluZztcblx0dG9sZXJhbnQ/OmJvb2xlYW47XG5cdGFic29sdXRlUGF0aD86Ym9vbGVhbjtcblx0aXJpPzpib29sZWFuO1xuXHR1bmljb2RlU3VwcG9ydD86Ym9vbGVhbjtcblx0ZG9tYWluSG9zdD86Ym9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVUklTY2hlbWVIYW5kbGVyPENvbXBvbmVudHMgZXh0ZW5kcyBVUklDb21wb25lbnRzID0gVVJJQ29tcG9uZW50cywgT3B0aW9ucyBleHRlbmRzIFVSSU9wdGlvbnMgPSBVUklPcHRpb25zLCBQYXJlbnRDb21wb25lbnRzIGV4dGVuZHMgVVJJQ29tcG9uZW50cyA9IFVSSUNvbXBvbmVudHM+IHtcblx0c2NoZW1lOnN0cmluZztcblx0cGFyc2UoY29tcG9uZW50czpQYXJlbnRDb21wb25lbnRzLCBvcHRpb25zOk9wdGlvbnMpOkNvbXBvbmVudHM7XG5cdHNlcmlhbGl6ZShjb21wb25lbnRzOkNvbXBvbmVudHMsIG9wdGlvbnM6T3B0aW9ucyk6UGFyZW50Q29tcG9uZW50cztcblx0dW5pY29kZVN1cHBvcnQ/OmJvb2xlYW47XG5cdGRvbWFpbkhvc3Q/OmJvb2xlYW47XG5cdGFic29sdXRlUGF0aD86Ym9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVUklSZWdFeHBzIHtcblx0Tk9UX1NDSEVNRSA6IFJlZ0V4cCxcblx0Tk9UX1VTRVJJTkZPIDogUmVnRXhwLFxuXHROT1RfSE9TVCA6IFJlZ0V4cCxcblx0Tk9UX1BBVEggOiBSZWdFeHAsXG5cdE5PVF9QQVRIX05PU0NIRU1FIDogUmVnRXhwLFxuXHROT1RfUVVFUlkgOiBSZWdFeHAsXG5cdE5PVF9GUkFHTUVOVCA6IFJlZ0V4cCxcblx0RVNDQVBFIDogUmVnRXhwLFxuXHRVTlJFU0VSVkVEIDogUmVnRXhwLFxuXHRPVEhFUl9DSEFSUyA6IFJlZ0V4cCxcblx0UENUX0VOQ09ERUQgOiBSZWdFeHAsXG5cdElQVjRBRERSRVNTIDogUmVnRXhwLFxuXHRJUFY2QUREUkVTUyA6IFJlZ0V4cCxcbn1cblxuZXhwb3J0IGNvbnN0IFNDSEVNRVM6e1tzY2hlbWU6c3RyaW5nXTpVUklTY2hlbWVIYW5kbGVyfSA9IHt9O1xuXG5leHBvcnQgZnVuY3Rpb24gcGN0RW5jQ2hhcihjaHI6c3RyaW5nKTpzdHJpbmcge1xuXHRjb25zdCBjID0gY2hyLmNoYXJDb2RlQXQoMCk7XG5cdGxldCBlOnN0cmluZztcblxuXHRpZiAoYyA8IDE2KSBlID0gXCIlMFwiICsgYy50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtcblx0ZWxzZSBpZiAoYyA8IDEyOCkgZSA9IFwiJVwiICsgYy50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtcblx0ZWxzZSBpZiAoYyA8IDIwNDgpIGUgPSBcIiVcIiArICgoYyA+PiA2KSB8IDE5MikudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkgKyBcIiVcIiArICgoYyAmIDYzKSB8IDEyOCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7XG5cdGVsc2UgZSA9IFwiJVwiICsgKChjID4+IDEyKSB8IDIyNCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkgKyBcIiVcIiArICgoKGMgPj4gNikgJiA2MykgfCAxMjgpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpICsgXCIlXCIgKyAoKGMgJiA2MykgfCAxMjgpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuXG5cdHJldHVybiBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGN0RGVjQ2hhcnMoc3RyOnN0cmluZyk6c3RyaW5nIHtcblx0bGV0IG5ld1N0ciA9IFwiXCI7XG5cdGxldCBpID0gMDtcblx0Y29uc3QgaWwgPSBzdHIubGVuZ3RoO1xuXG5cdHdoaWxlIChpIDwgaWwpIHtcblx0XHRjb25zdCBjID0gcGFyc2VJbnQoc3RyLnN1YnN0cihpICsgMSwgMiksIDE2KTtcblxuXHRcdGlmIChjIDwgMTI4KSB7XG5cdFx0XHRuZXdTdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjKTtcblx0XHRcdGkgKz0gMztcblx0XHR9XG5cdFx0ZWxzZSBpZiAoYyA+PSAxOTQgJiYgYyA8IDIyNCkge1xuXHRcdFx0aWYgKChpbCAtIGkpID49IDYpIHtcblx0XHRcdFx0Y29uc3QgYzIgPSBwYXJzZUludChzdHIuc3Vic3RyKGkgKyA0LCAyKSwgMTYpO1xuXHRcdFx0XHRuZXdTdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgJiAzMSkgPDwgNikgfCAoYzIgJiA2MykpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bmV3U3RyICs9IHN0ci5zdWJzdHIoaSwgNik7XG5cdFx0XHR9XG5cdFx0XHRpICs9IDY7XG5cdFx0fVxuXHRcdGVsc2UgaWYgKGMgPj0gMjI0KSB7XG5cdFx0XHRpZiAoKGlsIC0gaSkgPj0gOSkge1xuXHRcdFx0XHRjb25zdCBjMiA9IHBhcnNlSW50KHN0ci5zdWJzdHIoaSArIDQsIDIpLCAxNik7XG5cdFx0XHRcdGNvbnN0IGMzID0gcGFyc2VJbnQoc3RyLnN1YnN0cihpICsgNywgMiksIDE2KTtcblx0XHRcdFx0bmV3U3RyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjICYgMTUpIDw8IDEyKSB8ICgoYzIgJiA2MykgPDwgNikgfCAoYzMgJiA2MykpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bmV3U3RyICs9IHN0ci5zdWJzdHIoaSwgOSk7XG5cdFx0XHR9XG5cdFx0XHRpICs9IDk7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0bmV3U3RyICs9IHN0ci5zdWJzdHIoaSwgMyk7XG5cdFx0XHRpICs9IDM7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG5ld1N0cjtcbn1cblxuZnVuY3Rpb24gX25vcm1hbGl6ZUNvbXBvbmVudEVuY29kaW5nKGNvbXBvbmVudHM6VVJJQ29tcG9uZW50cywgcHJvdG9jb2w6VVJJUmVnRXhwcykge1xuXHRmdW5jdGlvbiBkZWNvZGVVbnJlc2VydmVkKHN0cjpzdHJpbmcpOnN0cmluZyB7XG5cdFx0Y29uc3QgZGVjU3RyID0gcGN0RGVjQ2hhcnMoc3RyKTtcblx0XHRyZXR1cm4gKCFkZWNTdHIubWF0Y2gocHJvdG9jb2wuVU5SRVNFUlZFRCkgPyBzdHIgOiBkZWNTdHIpO1xuXHR9XG5cblx0aWYgKGNvbXBvbmVudHMuc2NoZW1lKSBjb21wb25lbnRzLnNjaGVtZSA9IFN0cmluZyhjb21wb25lbnRzLnNjaGVtZSkucmVwbGFjZShwcm90b2NvbC5QQ1RfRU5DT0RFRCwgZGVjb2RlVW5yZXNlcnZlZCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKHByb3RvY29sLk5PVF9TQ0hFTUUsIFwiXCIpO1xuXHRpZiAoY29tcG9uZW50cy51c2VyaW5mbyAhPT0gdW5kZWZpbmVkKSBjb21wb25lbnRzLnVzZXJpbmZvID0gU3RyaW5nKGNvbXBvbmVudHMudXNlcmluZm8pLnJlcGxhY2UocHJvdG9jb2wuUENUX0VOQ09ERUQsIGRlY29kZVVucmVzZXJ2ZWQpLnJlcGxhY2UocHJvdG9jb2wuTk9UX1VTRVJJTkZPLCBwY3RFbmNDaGFyKS5yZXBsYWNlKHByb3RvY29sLlBDVF9FTkNPREVELCB0b1VwcGVyQ2FzZSk7XG5cdGlmIChjb21wb25lbnRzLmhvc3QgIT09IHVuZGVmaW5lZCkgY29tcG9uZW50cy5ob3N0ID0gU3RyaW5nKGNvbXBvbmVudHMuaG9zdCkucmVwbGFjZShwcm90b2NvbC5QQ1RfRU5DT0RFRCwgZGVjb2RlVW5yZXNlcnZlZCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKHByb3RvY29sLk5PVF9IT1NULCBwY3RFbmNDaGFyKS5yZXBsYWNlKHByb3RvY29sLlBDVF9FTkNPREVELCB0b1VwcGVyQ2FzZSk7XG5cdGlmIChjb21wb25lbnRzLnBhdGggIT09IHVuZGVmaW5lZCkgY29tcG9uZW50cy5wYXRoID0gU3RyaW5nKGNvbXBvbmVudHMucGF0aCkucmVwbGFjZShwcm90b2NvbC5QQ1RfRU5DT0RFRCwgZGVjb2RlVW5yZXNlcnZlZCkucmVwbGFjZSgoY29tcG9uZW50cy5zY2hlbWUgPyBwcm90b2NvbC5OT1RfUEFUSCA6IHByb3RvY29sLk5PVF9QQVRIX05PU0NIRU1FKSwgcGN0RW5jQ2hhcikucmVwbGFjZShwcm90b2NvbC5QQ1RfRU5DT0RFRCwgdG9VcHBlckNhc2UpO1xuXHRpZiAoY29tcG9uZW50cy5xdWVyeSAhPT0gdW5kZWZpbmVkKSBjb21wb25lbnRzLnF1ZXJ5ID0gU3RyaW5nKGNvbXBvbmVudHMucXVlcnkpLnJlcGxhY2UocHJvdG9jb2wuUENUX0VOQ09ERUQsIGRlY29kZVVucmVzZXJ2ZWQpLnJlcGxhY2UocHJvdG9jb2wuTk9UX1FVRVJZLCBwY3RFbmNDaGFyKS5yZXBsYWNlKHByb3RvY29sLlBDVF9FTkNPREVELCB0b1VwcGVyQ2FzZSk7XG5cdGlmIChjb21wb25lbnRzLmZyYWdtZW50ICE9PSB1bmRlZmluZWQpIGNvbXBvbmVudHMuZnJhZ21lbnQgPSBTdHJpbmcoY29tcG9uZW50cy5mcmFnbWVudCkucmVwbGFjZShwcm90b2NvbC5QQ1RfRU5DT0RFRCwgZGVjb2RlVW5yZXNlcnZlZCkucmVwbGFjZShwcm90b2NvbC5OT1RfRlJBR01FTlQsIHBjdEVuY0NoYXIpLnJlcGxhY2UocHJvdG9jb2wuUENUX0VOQ09ERUQsIHRvVXBwZXJDYXNlKTtcblxuXHRyZXR1cm4gY29tcG9uZW50cztcbn07XG5cbmZ1bmN0aW9uIF9zdHJpcExlYWRpbmdaZXJvcyhzdHI6c3RyaW5nKTpzdHJpbmcge1xuXHRyZXR1cm4gc3RyLnJlcGxhY2UoL14wKiguKikvLCBcIiQxXCIpIHx8IFwiMFwiO1xufVxuXG5mdW5jdGlvbiBfbm9ybWFsaXplSVB2NChob3N0OnN0cmluZywgcHJvdG9jb2w6VVJJUmVnRXhwcyk6c3RyaW5nIHtcblx0Y29uc3QgbWF0Y2hlcyA9IGhvc3QubWF0Y2gocHJvdG9jb2wuSVBWNEFERFJFU1MpIHx8IFtdO1xuXHRjb25zdCBbLCBhZGRyZXNzXSA9IG1hdGNoZXM7XG5cdFxuXHRpZiAoYWRkcmVzcykge1xuXHRcdHJldHVybiBhZGRyZXNzLnNwbGl0KFwiLlwiKS5tYXAoX3N0cmlwTGVhZGluZ1plcm9zKS5qb2luKFwiLlwiKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gaG9zdDtcblx0fVxufVxuXG5mdW5jdGlvbiBfbm9ybWFsaXplSVB2Nihob3N0OnN0cmluZywgcHJvdG9jb2w6VVJJUmVnRXhwcyk6c3RyaW5nIHtcblx0Y29uc3QgbWF0Y2hlcyA9IGhvc3QubWF0Y2gocHJvdG9jb2wuSVBWNkFERFJFU1MpIHx8IFtdO1xuXHRjb25zdCBbLCBhZGRyZXNzLCB6b25lXSA9IG1hdGNoZXM7XG5cblx0aWYgKGFkZHJlc3MpIHtcblx0XHRjb25zdCBbbGFzdCwgZmlyc3RdID0gYWRkcmVzcy50b0xvd2VyQ2FzZSgpLnNwbGl0KCc6OicpLnJldmVyc2UoKTtcblx0XHRjb25zdCBmaXJzdEZpZWxkcyA9IGZpcnN0ID8gZmlyc3Quc3BsaXQoXCI6XCIpLm1hcChfc3RyaXBMZWFkaW5nWmVyb3MpIDogW107XG5cdFx0Y29uc3QgbGFzdEZpZWxkcyA9IGxhc3Quc3BsaXQoXCI6XCIpLm1hcChfc3RyaXBMZWFkaW5nWmVyb3MpO1xuXHRcdGNvbnN0IGlzTGFzdEZpZWxkSVB2NEFkZHJlc3MgPSBwcm90b2NvbC5JUFY0QUREUkVTUy50ZXN0KGxhc3RGaWVsZHNbbGFzdEZpZWxkcy5sZW5ndGggLSAxXSk7XG5cdFx0Y29uc3QgZmllbGRDb3VudCA9IGlzTGFzdEZpZWxkSVB2NEFkZHJlc3MgPyA3IDogODtcblx0XHRjb25zdCBsYXN0RmllbGRzU3RhcnQgPSBsYXN0RmllbGRzLmxlbmd0aCAtIGZpZWxkQ291bnQ7XG5cdFx0Y29uc3QgZmllbGRzID0gQXJyYXk8c3RyaW5nPihmaWVsZENvdW50KTtcblxuXHRcdGZvciAobGV0IHggPSAwOyB4IDwgZmllbGRDb3VudDsgKyt4KSB7XG5cdFx0XHRmaWVsZHNbeF0gPSBmaXJzdEZpZWxkc1t4XSB8fCBsYXN0RmllbGRzW2xhc3RGaWVsZHNTdGFydCArIHhdIHx8ICcnO1xuXHRcdH1cblxuXHRcdGlmIChpc0xhc3RGaWVsZElQdjRBZGRyZXNzKSB7XG5cdFx0XHRmaWVsZHNbZmllbGRDb3VudCAtIDFdID0gX25vcm1hbGl6ZUlQdjQoZmllbGRzW2ZpZWxkQ291bnQgLSAxXSwgcHJvdG9jb2wpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGFsbFplcm9GaWVsZHMgPSBmaWVsZHMucmVkdWNlPEFycmF5PHtpbmRleDpudW1iZXIsbGVuZ3RoOm51bWJlcn0+PigoYWNjLCBmaWVsZCwgaW5kZXgpID0+IHtcblx0XHRcdGlmICghZmllbGQgfHwgZmllbGQgPT09IFwiMFwiKSB7XG5cdFx0XHRcdGNvbnN0IGxhc3RMb25nZXN0ID0gYWNjW2FjYy5sZW5ndGggLSAxXTtcblx0XHRcdFx0aWYgKGxhc3RMb25nZXN0ICYmIGxhc3RMb25nZXN0LmluZGV4ICsgbGFzdExvbmdlc3QubGVuZ3RoID09PSBpbmRleCkge1xuXHRcdFx0XHRcdGxhc3RMb25nZXN0Lmxlbmd0aCsrO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGFjYy5wdXNoKHsgaW5kZXgsIGxlbmd0aCA6IDEgfSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBhY2M7XG5cdFx0fSwgW10pO1xuXG5cdFx0Y29uc3QgbG9uZ2VzdFplcm9GaWVsZHMgPSBhbGxaZXJvRmllbGRzLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpWzBdO1xuXG5cdFx0bGV0IG5ld0hvc3Q6c3RyaW5nO1xuXHRcdGlmIChsb25nZXN0WmVyb0ZpZWxkcyAmJiBsb25nZXN0WmVyb0ZpZWxkcy5sZW5ndGggPiAxKSB7XG5cdFx0XHRjb25zdCBuZXdGaXJzdCA9IGZpZWxkcy5zbGljZSgwLCBsb25nZXN0WmVyb0ZpZWxkcy5pbmRleCkgO1xuXHRcdFx0Y29uc3QgbmV3TGFzdCA9IGZpZWxkcy5zbGljZShsb25nZXN0WmVyb0ZpZWxkcy5pbmRleCArIGxvbmdlc3RaZXJvRmllbGRzLmxlbmd0aCk7XG5cdFx0XHRuZXdIb3N0ID0gbmV3Rmlyc3Quam9pbihcIjpcIikgKyBcIjo6XCIgKyBuZXdMYXN0LmpvaW4oXCI6XCIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRuZXdIb3N0ID0gZmllbGRzLmpvaW4oXCI6XCIpO1xuXHRcdH1cblxuXHRcdGlmICh6b25lKSB7XG5cdFx0XHRuZXdIb3N0ICs9IFwiJVwiICsgem9uZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbmV3SG9zdDtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gaG9zdDtcblx0fVxufVxuXG5jb25zdCBVUklfUEFSU0UgPSAvXig/OihbXjpcXC8/I10rKTopPyg/OlxcL1xcLygoPzooW15cXC8/I0BdKilAKT8oXFxbW15cXC8/I1xcXV0rXFxdfFteXFwvPyM6XSopKD86XFw6KFxcZCopKT8pKT8oW14/I10qKSg/OlxcPyhbXiNdKikpPyg/OiMoKD86LnxcXG58XFxyKSopKT8vaTtcbmNvbnN0IE5PX01BVENIX0lTX1VOREVGSU5FRCA9ICg8UmVnRXhwTWF0Y2hBcnJheT4oXCJcIikubWF0Y2goLygpezB9LykpWzFdID09PSB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZSh1cmlTdHJpbmc6c3RyaW5nLCBvcHRpb25zOlVSSU9wdGlvbnMgPSB7fSk6VVJJQ29tcG9uZW50cyB7XG5cdGNvbnN0IGNvbXBvbmVudHM6VVJJQ29tcG9uZW50cyA9IHt9O1xuXHRjb25zdCBwcm90b2NvbCA9IChvcHRpb25zLmlyaSAhPT0gZmFsc2UgPyBJUklfUFJPVE9DT0wgOiBVUklfUFJPVE9DT0wpO1xuXG5cdGlmIChvcHRpb25zLnJlZmVyZW5jZSA9PT0gXCJzdWZmaXhcIikgdXJpU3RyaW5nID0gKG9wdGlvbnMuc2NoZW1lID8gb3B0aW9ucy5zY2hlbWUgKyBcIjpcIiA6IFwiXCIpICsgXCIvL1wiICsgdXJpU3RyaW5nO1xuXG5cdGNvbnN0IG1hdGNoZXMgPSB1cmlTdHJpbmcubWF0Y2goVVJJX1BBUlNFKTtcblxuXHRpZiAobWF0Y2hlcykge1xuXHRcdGlmIChOT19NQVRDSF9JU19VTkRFRklORUQpIHtcblx0XHRcdC8vc3RvcmUgZWFjaCBjb21wb25lbnRcblx0XHRcdGNvbXBvbmVudHMuc2NoZW1lID0gbWF0Y2hlc1sxXTtcblx0XHRcdGNvbXBvbmVudHMudXNlcmluZm8gPSBtYXRjaGVzWzNdO1xuXHRcdFx0Y29tcG9uZW50cy5ob3N0ID0gbWF0Y2hlc1s0XTtcblx0XHRcdGNvbXBvbmVudHMucG9ydCA9IHBhcnNlSW50KG1hdGNoZXNbNV0sIDEwKTtcblx0XHRcdGNvbXBvbmVudHMucGF0aCA9IG1hdGNoZXNbNl0gfHwgXCJcIjtcblx0XHRcdGNvbXBvbmVudHMucXVlcnkgPSBtYXRjaGVzWzddO1xuXHRcdFx0Y29tcG9uZW50cy5mcmFnbWVudCA9IG1hdGNoZXNbOF07XG5cblx0XHRcdC8vZml4IHBvcnQgbnVtYmVyXG5cdFx0XHRpZiAoaXNOYU4oY29tcG9uZW50cy5wb3J0KSkge1xuXHRcdFx0XHRjb21wb25lbnRzLnBvcnQgPSBtYXRjaGVzWzVdO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7ICAvL0lFIEZJWCBmb3IgaW1wcm9wZXIgUmVnRXhwIG1hdGNoaW5nXG5cdFx0XHQvL3N0b3JlIGVhY2ggY29tcG9uZW50XG5cdFx0XHRjb21wb25lbnRzLnNjaGVtZSA9IG1hdGNoZXNbMV0gfHwgdW5kZWZpbmVkO1xuXHRcdFx0Y29tcG9uZW50cy51c2VyaW5mbyA9ICh1cmlTdHJpbmcuaW5kZXhPZihcIkBcIikgIT09IC0xID8gbWF0Y2hlc1szXSA6IHVuZGVmaW5lZCk7XG5cdFx0XHRjb21wb25lbnRzLmhvc3QgPSAodXJpU3RyaW5nLmluZGV4T2YoXCIvL1wiKSAhPT0gLTEgPyBtYXRjaGVzWzRdIDogdW5kZWZpbmVkKTtcblx0XHRcdGNvbXBvbmVudHMucG9ydCA9IHBhcnNlSW50KG1hdGNoZXNbNV0sIDEwKTtcblx0XHRcdGNvbXBvbmVudHMucGF0aCA9IG1hdGNoZXNbNl0gfHwgXCJcIjtcblx0XHRcdGNvbXBvbmVudHMucXVlcnkgPSAodXJpU3RyaW5nLmluZGV4T2YoXCI/XCIpICE9PSAtMSA/IG1hdGNoZXNbN10gOiB1bmRlZmluZWQpO1xuXHRcdFx0Y29tcG9uZW50cy5mcmFnbWVudCA9ICh1cmlTdHJpbmcuaW5kZXhPZihcIiNcIikgIT09IC0xID8gbWF0Y2hlc1s4XSA6IHVuZGVmaW5lZCk7XG5cblx0XHRcdC8vZml4IHBvcnQgbnVtYmVyXG5cdFx0XHRpZiAoaXNOYU4oY29tcG9uZW50cy5wb3J0KSkge1xuXHRcdFx0XHRjb21wb25lbnRzLnBvcnQgPSAodXJpU3RyaW5nLm1hdGNoKC9cXC9cXC8oPzoufFxcbikqXFw6KD86XFwvfFxcP3xcXCN8JCkvKSA/IG1hdGNoZXNbNF0gOiB1bmRlZmluZWQpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChjb21wb25lbnRzLmhvc3QpIHtcblx0XHRcdC8vbm9ybWFsaXplIElQIGhvc3RzXG5cdFx0XHRjb21wb25lbnRzLmhvc3QgPSBfbm9ybWFsaXplSVB2Nihfbm9ybWFsaXplSVB2NChjb21wb25lbnRzLmhvc3QsIHByb3RvY29sKSwgcHJvdG9jb2wpO1xuXHRcdH1cblxuXHRcdC8vZGV0ZXJtaW5lIHJlZmVyZW5jZSB0eXBlXG5cdFx0aWYgKGNvbXBvbmVudHMuc2NoZW1lID09PSB1bmRlZmluZWQgJiYgY29tcG9uZW50cy51c2VyaW5mbyA9PT0gdW5kZWZpbmVkICYmIGNvbXBvbmVudHMuaG9zdCA9PT0gdW5kZWZpbmVkICYmIGNvbXBvbmVudHMucG9ydCA9PT0gdW5kZWZpbmVkICYmICFjb21wb25lbnRzLnBhdGggJiYgY29tcG9uZW50cy5xdWVyeSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRjb21wb25lbnRzLnJlZmVyZW5jZSA9IFwic2FtZS1kb2N1bWVudFwiO1xuXHRcdH0gZWxzZSBpZiAoY29tcG9uZW50cy5zY2hlbWUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29tcG9uZW50cy5yZWZlcmVuY2UgPSBcInJlbGF0aXZlXCI7XG5cdFx0fSBlbHNlIGlmIChjb21wb25lbnRzLmZyYWdtZW50ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdGNvbXBvbmVudHMucmVmZXJlbmNlID0gXCJhYnNvbHV0ZVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb21wb25lbnRzLnJlZmVyZW5jZSA9IFwidXJpXCI7XG5cdFx0fVxuXG5cdFx0Ly9jaGVjayBmb3IgcmVmZXJlbmNlIGVycm9yc1xuXHRcdGlmIChvcHRpb25zLnJlZmVyZW5jZSAmJiBvcHRpb25zLnJlZmVyZW5jZSAhPT0gXCJzdWZmaXhcIiAmJiBvcHRpb25zLnJlZmVyZW5jZSAhPT0gY29tcG9uZW50cy5yZWZlcmVuY2UpIHtcblx0XHRcdGNvbXBvbmVudHMuZXJyb3IgPSBjb21wb25lbnRzLmVycm9yIHx8IFwiVVJJIGlzIG5vdCBhIFwiICsgb3B0aW9ucy5yZWZlcmVuY2UgKyBcIiByZWZlcmVuY2UuXCI7XG5cdFx0fVxuXG5cdFx0Ly9maW5kIHNjaGVtZSBoYW5kbGVyXG5cdFx0Y29uc3Qgc2NoZW1lSGFuZGxlciA9IFNDSEVNRVNbKG9wdGlvbnMuc2NoZW1lIHx8IGNvbXBvbmVudHMuc2NoZW1lIHx8IFwiXCIpLnRvTG93ZXJDYXNlKCldO1xuXG5cdFx0Ly9jaGVjayBpZiBzY2hlbWUgY2FuJ3QgaGFuZGxlIElSSXNcblx0XHRpZiAoIW9wdGlvbnMudW5pY29kZVN1cHBvcnQgJiYgKCFzY2hlbWVIYW5kbGVyIHx8ICFzY2hlbWVIYW5kbGVyLnVuaWNvZGVTdXBwb3J0KSkge1xuXHRcdFx0Ly9pZiBob3N0IGNvbXBvbmVudCBpcyBhIGRvbWFpbiBuYW1lXG5cdFx0XHRpZiAoY29tcG9uZW50cy5ob3N0ICYmIChvcHRpb25zLmRvbWFpbkhvc3QgfHwgKHNjaGVtZUhhbmRsZXIgJiYgc2NoZW1lSGFuZGxlci5kb21haW5Ib3N0KSkpIHtcblx0XHRcdFx0Ly9jb252ZXJ0IFVuaWNvZGUgSUROIC0+IEFTQ0lJIElETlxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGNvbXBvbmVudHMuaG9zdCA9IHB1bnljb2RlLnRvQVNDSUkoY29tcG9uZW50cy5ob3N0LnJlcGxhY2UocHJvdG9jb2wuUENUX0VOQ09ERUQsIHBjdERlY0NoYXJzKS50b0xvd2VyQ2FzZSgpKTtcblx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdGNvbXBvbmVudHMuZXJyb3IgPSBjb21wb25lbnRzLmVycm9yIHx8IFwiSG9zdCdzIGRvbWFpbiBuYW1lIGNhbiBub3QgYmUgY29udmVydGVkIHRvIEFTQ0lJIHZpYSBwdW55Y29kZTogXCIgKyBlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQvL2NvbnZlcnQgSVJJIC0+IFVSSVxuXHRcdFx0X25vcm1hbGl6ZUNvbXBvbmVudEVuY29kaW5nKGNvbXBvbmVudHMsIFVSSV9QUk9UT0NPTCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vbm9ybWFsaXplIGVuY29kaW5nc1xuXHRcdFx0X25vcm1hbGl6ZUNvbXBvbmVudEVuY29kaW5nKGNvbXBvbmVudHMsIHByb3RvY29sKTtcblx0XHR9XG5cblx0XHQvL3BlcmZvcm0gc2NoZW1lIHNwZWNpZmljIHBhcnNpbmdcblx0XHRpZiAoc2NoZW1lSGFuZGxlciAmJiBzY2hlbWVIYW5kbGVyLnBhcnNlKSB7XG5cdFx0XHRzY2hlbWVIYW5kbGVyLnBhcnNlKGNvbXBvbmVudHMsIG9wdGlvbnMpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRjb21wb25lbnRzLmVycm9yID0gY29tcG9uZW50cy5lcnJvciB8fCBcIlVSSSBjYW4gbm90IGJlIHBhcnNlZC5cIjtcblx0fVxuXG5cdHJldHVybiBjb21wb25lbnRzO1xufTtcblxuZnVuY3Rpb24gX3JlY29tcG9zZUF1dGhvcml0eShjb21wb25lbnRzOlVSSUNvbXBvbmVudHMsIG9wdGlvbnM6VVJJT3B0aW9ucyk6c3RyaW5nfHVuZGVmaW5lZCB7XG5cdGNvbnN0IHByb3RvY29sID0gKG9wdGlvbnMuaXJpICE9PSBmYWxzZSA/IElSSV9QUk9UT0NPTCA6IFVSSV9QUk9UT0NPTCk7XG5cdGNvbnN0IHVyaVRva2VuczpBcnJheTxzdHJpbmc+ID0gW107XG5cblx0aWYgKGNvbXBvbmVudHMudXNlcmluZm8gIT09IHVuZGVmaW5lZCkge1xuXHRcdHVyaVRva2Vucy5wdXNoKGNvbXBvbmVudHMudXNlcmluZm8pO1xuXHRcdHVyaVRva2Vucy5wdXNoKFwiQFwiKTtcblx0fVxuXG5cdGlmIChjb21wb25lbnRzLmhvc3QgIT09IHVuZGVmaW5lZCkge1xuXHRcdC8vbm9ybWFsaXplIElQIGhvc3RzLCBhZGQgYnJhY2tldHMgYW5kIGVzY2FwZSB6b25lIHNlcGFyYXRvciBmb3IgSVB2NlxuXHRcdHVyaVRva2Vucy5wdXNoKF9ub3JtYWxpemVJUHY2KF9ub3JtYWxpemVJUHY0KFN0cmluZyhjb21wb25lbnRzLmhvc3QpLCBwcm90b2NvbCksIHByb3RvY29sKS5yZXBsYWNlKHByb3RvY29sLklQVjZBRERSRVNTLCAoXywgJDEsICQyKSA9PiBcIltcIiArICQxICsgKCQyID8gXCIlMjVcIiArICQyIDogXCJcIikgKyBcIl1cIikpO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBjb21wb25lbnRzLnBvcnQgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIGNvbXBvbmVudHMucG9ydCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHVyaVRva2Vucy5wdXNoKFwiOlwiKTtcblx0XHR1cmlUb2tlbnMucHVzaChTdHJpbmcoY29tcG9uZW50cy5wb3J0KSk7XG5cdH1cblxuXHRyZXR1cm4gdXJpVG9rZW5zLmxlbmd0aCA/IHVyaVRva2Vucy5qb2luKFwiXCIpIDogdW5kZWZpbmVkO1xufTtcblxuY29uc3QgUkRTMSA9IC9eXFwuXFwuP1xcLy87XG5jb25zdCBSRFMyID0gL15cXC9cXC4oXFwvfCQpLztcbmNvbnN0IFJEUzMgPSAvXlxcL1xcLlxcLihcXC98JCkvO1xuY29uc3QgUkRTNCA9IC9eXFwuXFwuPyQvO1xuY29uc3QgUkRTNSA9IC9eXFwvPyg/Oi58XFxuKSo/KD89XFwvfCQpLztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZURvdFNlZ21lbnRzKGlucHV0OnN0cmluZyk6c3RyaW5nIHtcblx0Y29uc3Qgb3V0cHV0OkFycmF5PHN0cmluZz4gPSBbXTtcblxuXHR3aGlsZSAoaW5wdXQubGVuZ3RoKSB7XG5cdFx0aWYgKGlucHV0Lm1hdGNoKFJEUzEpKSB7XG5cdFx0XHRpbnB1dCA9IGlucHV0LnJlcGxhY2UoUkRTMSwgXCJcIik7XG5cdFx0fSBlbHNlIGlmIChpbnB1dC5tYXRjaChSRFMyKSkge1xuXHRcdFx0aW5wdXQgPSBpbnB1dC5yZXBsYWNlKFJEUzIsIFwiL1wiKTtcblx0XHR9IGVsc2UgaWYgKGlucHV0Lm1hdGNoKFJEUzMpKSB7XG5cdFx0XHRpbnB1dCA9IGlucHV0LnJlcGxhY2UoUkRTMywgXCIvXCIpO1xuXHRcdFx0b3V0cHV0LnBvcCgpO1xuXHRcdH0gZWxzZSBpZiAoaW5wdXQgPT09IFwiLlwiIHx8IGlucHV0ID09PSBcIi4uXCIpIHtcblx0XHRcdGlucHV0ID0gXCJcIjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgaW0gPSBpbnB1dC5tYXRjaChSRFM1KTtcblx0XHRcdGlmIChpbSkge1xuXHRcdFx0XHRjb25zdCBzID0gaW1bMF07XG5cdFx0XHRcdGlucHV0ID0gaW5wdXQuc2xpY2Uocy5sZW5ndGgpO1xuXHRcdFx0XHRvdXRwdXQucHVzaChzKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgZG90IHNlZ21lbnQgY29uZGl0aW9uXCIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBvdXRwdXQuam9pbihcIlwiKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemUoY29tcG9uZW50czpVUklDb21wb25lbnRzLCBvcHRpb25zOlVSSU9wdGlvbnMgPSB7fSk6c3RyaW5nIHtcblx0Y29uc3QgcHJvdG9jb2wgPSAob3B0aW9ucy5pcmkgPyBJUklfUFJPVE9DT0wgOiBVUklfUFJPVE9DT0wpO1xuXHRjb25zdCB1cmlUb2tlbnM6QXJyYXk8c3RyaW5nPiA9IFtdO1xuXG5cdC8vZmluZCBzY2hlbWUgaGFuZGxlclxuXHRjb25zdCBzY2hlbWVIYW5kbGVyID0gU0NIRU1FU1sob3B0aW9ucy5zY2hlbWUgfHwgY29tcG9uZW50cy5zY2hlbWUgfHwgXCJcIikudG9Mb3dlckNhc2UoKV07XG5cblx0Ly9wZXJmb3JtIHNjaGVtZSBzcGVjaWZpYyBzZXJpYWxpemF0aW9uXG5cdGlmIChzY2hlbWVIYW5kbGVyICYmIHNjaGVtZUhhbmRsZXIuc2VyaWFsaXplKSBzY2hlbWVIYW5kbGVyLnNlcmlhbGl6ZShjb21wb25lbnRzLCBvcHRpb25zKTtcblxuXHRpZiAoY29tcG9uZW50cy5ob3N0KSB7XG5cdFx0Ly9pZiBob3N0IGNvbXBvbmVudCBpcyBhbiBJUHY2IGFkZHJlc3Ncblx0XHRpZiAocHJvdG9jb2wuSVBWNkFERFJFU1MudGVzdChjb21wb25lbnRzLmhvc3QpKSB7XG5cdFx0XHQvL1RPRE86IG5vcm1hbGl6ZSBJUHY2IGFkZHJlc3MgYXMgcGVyIFJGQyA1OTUyXG5cdFx0fVxuXG5cdFx0Ly9pZiBob3N0IGNvbXBvbmVudCBpcyBhIGRvbWFpbiBuYW1lXG5cdFx0ZWxzZSBpZiAob3B0aW9ucy5kb21haW5Ib3N0IHx8IChzY2hlbWVIYW5kbGVyICYmIHNjaGVtZUhhbmRsZXIuZG9tYWluSG9zdCkpIHtcblx0XHRcdC8vY29udmVydCBJRE4gdmlhIHB1bnljb2RlXG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb21wb25lbnRzLmhvc3QgPSAoIW9wdGlvbnMuaXJpID8gcHVueWNvZGUudG9BU0NJSShjb21wb25lbnRzLmhvc3QucmVwbGFjZShwcm90b2NvbC5QQ1RfRU5DT0RFRCwgcGN0RGVjQ2hhcnMpLnRvTG93ZXJDYXNlKCkpIDogcHVueWNvZGUudG9Vbmljb2RlKGNvbXBvbmVudHMuaG9zdCkpO1xuXHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRjb21wb25lbnRzLmVycm9yID0gY29tcG9uZW50cy5lcnJvciB8fCBcIkhvc3QncyBkb21haW4gbmFtZSBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBcIiArICghb3B0aW9ucy5pcmkgPyBcIkFTQ0lJXCIgOiBcIlVuaWNvZGVcIikgKyBcIiB2aWEgcHVueWNvZGU6IFwiICsgZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvL25vcm1hbGl6ZSBlbmNvZGluZ1xuXHRfbm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcoY29tcG9uZW50cywgcHJvdG9jb2wpO1xuXG5cdGlmIChvcHRpb25zLnJlZmVyZW5jZSAhPT0gXCJzdWZmaXhcIiAmJiBjb21wb25lbnRzLnNjaGVtZSkge1xuXHRcdHVyaVRva2Vucy5wdXNoKGNvbXBvbmVudHMuc2NoZW1lKTtcblx0XHR1cmlUb2tlbnMucHVzaChcIjpcIik7XG5cdH1cblxuXHRjb25zdCBhdXRob3JpdHkgPSBfcmVjb21wb3NlQXV0aG9yaXR5KGNvbXBvbmVudHMsIG9wdGlvbnMpO1xuXHRpZiAoYXV0aG9yaXR5ICE9PSB1bmRlZmluZWQpIHtcblx0XHRpZiAob3B0aW9ucy5yZWZlcmVuY2UgIT09IFwic3VmZml4XCIpIHtcblx0XHRcdHVyaVRva2Vucy5wdXNoKFwiLy9cIik7XG5cdFx0fVxuXG5cdFx0dXJpVG9rZW5zLnB1c2goYXV0aG9yaXR5KTtcblxuXHRcdGlmIChjb21wb25lbnRzLnBhdGggJiYgY29tcG9uZW50cy5wYXRoLmNoYXJBdCgwKSAhPT0gXCIvXCIpIHtcblx0XHRcdHVyaVRva2Vucy5wdXNoKFwiL1wiKTtcblx0XHR9XG5cdH1cblxuXHRpZiAoY29tcG9uZW50cy5wYXRoICE9PSB1bmRlZmluZWQpIHtcblx0XHRsZXQgcyA9IGNvbXBvbmVudHMucGF0aDtcblxuXHRcdGlmICghb3B0aW9ucy5hYnNvbHV0ZVBhdGggJiYgKCFzY2hlbWVIYW5kbGVyIHx8ICFzY2hlbWVIYW5kbGVyLmFic29sdXRlUGF0aCkpIHtcblx0XHRcdHMgPSByZW1vdmVEb3RTZWdtZW50cyhzKTtcblx0XHR9XG5cblx0XHRpZiAoYXV0aG9yaXR5ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHMgPSBzLnJlcGxhY2UoL15cXC9cXC8vLCBcIi8lMkZcIik7ICAvL2Rvbid0IGFsbG93IHRoZSBwYXRoIHRvIHN0YXJ0IHdpdGggXCIvL1wiXG5cdFx0fVxuXG5cdFx0dXJpVG9rZW5zLnB1c2gocyk7XG5cdH1cblxuXHRpZiAoY29tcG9uZW50cy5xdWVyeSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0dXJpVG9rZW5zLnB1c2goXCI/XCIpO1xuXHRcdHVyaVRva2Vucy5wdXNoKGNvbXBvbmVudHMucXVlcnkpO1xuXHR9XG5cblx0aWYgKGNvbXBvbmVudHMuZnJhZ21lbnQgIT09IHVuZGVmaW5lZCkge1xuXHRcdHVyaVRva2Vucy5wdXNoKFwiI1wiKTtcblx0XHR1cmlUb2tlbnMucHVzaChjb21wb25lbnRzLmZyYWdtZW50KTtcblx0fVxuXG5cdHJldHVybiB1cmlUb2tlbnMuam9pbihcIlwiKTsgIC8vbWVyZ2UgdG9rZW5zIGludG8gYSBzdHJpbmdcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50cyhiYXNlOlVSSUNvbXBvbmVudHMsIHJlbGF0aXZlOlVSSUNvbXBvbmVudHMsIG9wdGlvbnM6VVJJT3B0aW9ucyA9IHt9LCBza2lwTm9ybWFsaXphdGlvbj86Ym9vbGVhbik6VVJJQ29tcG9uZW50cyB7XG5cdGNvbnN0IHRhcmdldDpVUklDb21wb25lbnRzID0ge307XG5cblx0aWYgKCFza2lwTm9ybWFsaXphdGlvbikge1xuXHRcdGJhc2UgPSBwYXJzZShzZXJpYWxpemUoYmFzZSwgb3B0aW9ucyksIG9wdGlvbnMpOyAgLy9ub3JtYWxpemUgYmFzZSBjb21wb25lbnRzXG5cdFx0cmVsYXRpdmUgPSBwYXJzZShzZXJpYWxpemUocmVsYXRpdmUsIG9wdGlvbnMpLCBvcHRpb25zKTsgIC8vbm9ybWFsaXplIHJlbGF0aXZlIGNvbXBvbmVudHNcblx0fVxuXHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuXHRpZiAoIW9wdGlvbnMudG9sZXJhbnQgJiYgcmVsYXRpdmUuc2NoZW1lKSB7XG5cdFx0dGFyZ2V0LnNjaGVtZSA9IHJlbGF0aXZlLnNjaGVtZTtcblx0XHQvL3RhcmdldC5hdXRob3JpdHkgPSByZWxhdGl2ZS5hdXRob3JpdHk7XG5cdFx0dGFyZ2V0LnVzZXJpbmZvID0gcmVsYXRpdmUudXNlcmluZm87XG5cdFx0dGFyZ2V0Lmhvc3QgPSByZWxhdGl2ZS5ob3N0O1xuXHRcdHRhcmdldC5wb3J0ID0gcmVsYXRpdmUucG9ydDtcblx0XHR0YXJnZXQucGF0aCA9IHJlbW92ZURvdFNlZ21lbnRzKHJlbGF0aXZlLnBhdGggfHwgXCJcIik7XG5cdFx0dGFyZ2V0LnF1ZXJ5ID0gcmVsYXRpdmUucXVlcnk7XG5cdH0gZWxzZSB7XG5cdFx0aWYgKHJlbGF0aXZlLnVzZXJpbmZvICE9PSB1bmRlZmluZWQgfHwgcmVsYXRpdmUuaG9zdCAhPT0gdW5kZWZpbmVkIHx8IHJlbGF0aXZlLnBvcnQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Ly90YXJnZXQuYXV0aG9yaXR5ID0gcmVsYXRpdmUuYXV0aG9yaXR5O1xuXHRcdFx0dGFyZ2V0LnVzZXJpbmZvID0gcmVsYXRpdmUudXNlcmluZm87XG5cdFx0XHR0YXJnZXQuaG9zdCA9IHJlbGF0aXZlLmhvc3Q7XG5cdFx0XHR0YXJnZXQucG9ydCA9IHJlbGF0aXZlLnBvcnQ7XG5cdFx0XHR0YXJnZXQucGF0aCA9IHJlbW92ZURvdFNlZ21lbnRzKHJlbGF0aXZlLnBhdGggfHwgXCJcIik7XG5cdFx0XHR0YXJnZXQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKCFyZWxhdGl2ZS5wYXRoKSB7XG5cdFx0XHRcdHRhcmdldC5wYXRoID0gYmFzZS5wYXRoO1xuXHRcdFx0XHRpZiAocmVsYXRpdmUucXVlcnkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdHRhcmdldC5xdWVyeSA9IHJlbGF0aXZlLnF1ZXJ5O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRhcmdldC5xdWVyeSA9IGJhc2UucXVlcnk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlmIChyZWxhdGl2ZS5wYXRoLmNoYXJBdCgwKSA9PT0gXCIvXCIpIHtcblx0XHRcdFx0XHR0YXJnZXQucGF0aCA9IHJlbW92ZURvdFNlZ21lbnRzKHJlbGF0aXZlLnBhdGgpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmICgoYmFzZS51c2VyaW5mbyAhPT0gdW5kZWZpbmVkIHx8IGJhc2UuaG9zdCAhPT0gdW5kZWZpbmVkIHx8IGJhc2UucG9ydCAhPT0gdW5kZWZpbmVkKSAmJiAhYmFzZS5wYXRoKSB7XG5cdFx0XHRcdFx0XHR0YXJnZXQucGF0aCA9IFwiL1wiICsgcmVsYXRpdmUucGF0aDtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKCFiYXNlLnBhdGgpIHtcblx0XHRcdFx0XHRcdHRhcmdldC5wYXRoID0gcmVsYXRpdmUucGF0aDtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGFyZ2V0LnBhdGggPSBiYXNlLnBhdGguc2xpY2UoMCwgYmFzZS5wYXRoLmxhc3RJbmRleE9mKFwiL1wiKSArIDEpICsgcmVsYXRpdmUucGF0aDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyh0YXJnZXQucGF0aCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGFyZ2V0LnF1ZXJ5ID0gcmVsYXRpdmUucXVlcnk7XG5cdFx0XHR9XG5cdFx0XHQvL3RhcmdldC5hdXRob3JpdHkgPSBiYXNlLmF1dGhvcml0eTtcblx0XHRcdHRhcmdldC51c2VyaW5mbyA9IGJhc2UudXNlcmluZm87XG5cdFx0XHR0YXJnZXQuaG9zdCA9IGJhc2UuaG9zdDtcblx0XHRcdHRhcmdldC5wb3J0ID0gYmFzZS5wb3J0O1xuXHRcdH1cblx0XHR0YXJnZXQuc2NoZW1lID0gYmFzZS5zY2hlbWU7XG5cdH1cblxuXHR0YXJnZXQuZnJhZ21lbnQgPSByZWxhdGl2ZS5mcmFnbWVudDtcblxuXHRyZXR1cm4gdGFyZ2V0O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmUoYmFzZVVSSTpzdHJpbmcsIHJlbGF0aXZlVVJJOnN0cmluZywgb3B0aW9ucz86VVJJT3B0aW9ucyk6c3RyaW5nIHtcblx0Y29uc3Qgc2NoZW1lbGVzc09wdGlvbnMgPSBhc3NpZ24oeyBzY2hlbWUgOiAnbnVsbCcgfSwgb3B0aW9ucyk7XG5cdHJldHVybiBzZXJpYWxpemUocmVzb2x2ZUNvbXBvbmVudHMocGFyc2UoYmFzZVVSSSwgc2NoZW1lbGVzc09wdGlvbnMpLCBwYXJzZShyZWxhdGl2ZVVSSSwgc2NoZW1lbGVzc09wdGlvbnMpLCBzY2hlbWVsZXNzT3B0aW9ucywgdHJ1ZSksIHNjaGVtZWxlc3NPcHRpb25zKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemUodXJpOnN0cmluZywgb3B0aW9ucz86VVJJT3B0aW9ucyk6c3RyaW5nO1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZSh1cmk6VVJJQ29tcG9uZW50cywgb3B0aW9ucz86VVJJT3B0aW9ucyk6VVJJQ29tcG9uZW50cztcbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemUodXJpOmFueSwgb3B0aW9ucz86VVJJT3B0aW9ucyk6YW55IHtcblx0aWYgKHR5cGVvZiB1cmkgPT09IFwic3RyaW5nXCIpIHtcblx0XHR1cmkgPSBzZXJpYWxpemUocGFyc2UodXJpLCBvcHRpb25zKSwgb3B0aW9ucyk7XG5cdH0gZWxzZSBpZiAodHlwZU9mKHVyaSkgPT09IFwib2JqZWN0XCIpIHtcblx0XHR1cmkgPSBwYXJzZShzZXJpYWxpemUoPFVSSUNvbXBvbmVudHM+dXJpLCBvcHRpb25zKSwgb3B0aW9ucyk7XG5cdH1cblxuXHRyZXR1cm4gdXJpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGVxdWFsKHVyaUE6c3RyaW5nLCB1cmlCOnN0cmluZywgb3B0aW9ucz86IFVSSU9wdGlvbnMpOmJvb2xlYW47XG5leHBvcnQgZnVuY3Rpb24gZXF1YWwodXJpQTpVUklDb21wb25lbnRzLCB1cmlCOlVSSUNvbXBvbmVudHMsIG9wdGlvbnM/OlVSSU9wdGlvbnMpOmJvb2xlYW47XG5leHBvcnQgZnVuY3Rpb24gZXF1YWwodXJpQTphbnksIHVyaUI6YW55LCBvcHRpb25zPzpVUklPcHRpb25zKTpib29sZWFuIHtcblx0aWYgKHR5cGVvZiB1cmlBID09PSBcInN0cmluZ1wiKSB7XG5cdFx0dXJpQSA9IHNlcmlhbGl6ZShwYXJzZSh1cmlBLCBvcHRpb25zKSwgb3B0aW9ucyk7XG5cdH0gZWxzZSBpZiAodHlwZU9mKHVyaUEpID09PSBcIm9iamVjdFwiKSB7XG5cdFx0dXJpQSA9IHNlcmlhbGl6ZSg8VVJJQ29tcG9uZW50cz51cmlBLCBvcHRpb25zKTtcblx0fVxuXG5cdGlmICh0eXBlb2YgdXJpQiA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHVyaUIgPSBzZXJpYWxpemUocGFyc2UodXJpQiwgb3B0aW9ucyksIG9wdGlvbnMpO1xuXHR9IGVsc2UgaWYgKHR5cGVPZih1cmlCKSA9PT0gXCJvYmplY3RcIikge1xuXHRcdHVyaUIgPSBzZXJpYWxpemUoPFVSSUNvbXBvbmVudHM+dXJpQiwgb3B0aW9ucyk7XG5cdH1cblxuXHRyZXR1cm4gdXJpQSA9PT0gdXJpQjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVDb21wb25lbnQoc3RyOnN0cmluZywgb3B0aW9ucz86VVJJT3B0aW9ucyk6c3RyaW5nIHtcblx0cmV0dXJuIHN0ciAmJiBzdHIudG9TdHJpbmcoKS5yZXBsYWNlKCghb3B0aW9ucyB8fCAhb3B0aW9ucy5pcmkgPyBVUklfUFJPVE9DT0wuRVNDQVBFIDogSVJJX1BST1RPQ09MLkVTQ0FQRSksIHBjdEVuY0NoYXIpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVuZXNjYXBlQ29tcG9uZW50KHN0cjpzdHJpbmcsIG9wdGlvbnM/OlVSSU9wdGlvbnMpOnN0cmluZyB7XG5cdHJldHVybiBzdHIgJiYgc3RyLnRvU3RyaW5nKCkucmVwbGFjZSgoIW9wdGlvbnMgfHwgIW9wdGlvbnMuaXJpID8gVVJJX1BST1RPQ09MLlBDVF9FTkNPREVEIDogSVJJX1BST1RPQ09MLlBDVF9FTkNPREVEKSwgcGN0RGVjQ2hhcnMpO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBIaWdoZXN0IHBvc2l0aXZlIHNpZ25lZCAzMi1iaXQgZmxvYXQgdmFsdWUgKi9cbmNvbnN0IG1heEludCA9IDIxNDc0ODM2NDc7IC8vIGFrYS4gMHg3RkZGRkZGRiBvciAyXjMxLTFcblxuLyoqIEJvb3RzdHJpbmcgcGFyYW1ldGVycyAqL1xuY29uc3QgYmFzZSA9IDM2O1xuY29uc3QgdE1pbiA9IDE7XG5jb25zdCB0TWF4ID0gMjY7XG5jb25zdCBza2V3ID0gMzg7XG5jb25zdCBkYW1wID0gNzAwO1xuY29uc3QgaW5pdGlhbEJpYXMgPSA3MjtcbmNvbnN0IGluaXRpYWxOID0gMTI4OyAvLyAweDgwXG5jb25zdCBkZWxpbWl0ZXIgPSAnLSc7IC8vICdcXHgyRCdcblxuLyoqIFJlZ3VsYXIgZXhwcmVzc2lvbnMgKi9cbmNvbnN0IHJlZ2V4UHVueWNvZGUgPSAvXnhuLS0vO1xuY29uc3QgcmVnZXhOb25BU0NJSSA9IC9bXlxcMC1cXHg3RV0vOyAvLyBub24tQVNDSUkgY2hhcnNcbmNvbnN0IHJlZ2V4U2VwYXJhdG9ycyA9IC9bXFx4MkVcXHUzMDAyXFx1RkYwRVxcdUZGNjFdL2c7IC8vIFJGQyAzNDkwIHNlcGFyYXRvcnNcblxuLyoqIEVycm9yIG1lc3NhZ2VzICovXG5jb25zdCBlcnJvcnMgPSB7XG5cdCdvdmVyZmxvdyc6ICdPdmVyZmxvdzogaW5wdXQgbmVlZHMgd2lkZXIgaW50ZWdlcnMgdG8gcHJvY2VzcycsXG5cdCdub3QtYmFzaWMnOiAnSWxsZWdhbCBpbnB1dCA+PSAweDgwIChub3QgYSBiYXNpYyBjb2RlIHBvaW50KScsXG5cdCdpbnZhbGlkLWlucHV0JzogJ0ludmFsaWQgaW5wdXQnXG59O1xuXG4vKiogQ29udmVuaWVuY2Ugc2hvcnRjdXRzICovXG5jb25zdCBiYXNlTWludXNUTWluID0gYmFzZSAtIHRNaW47XG5jb25zdCBmbG9vciA9IE1hdGguZmxvb3I7XG5jb25zdCBzdHJpbmdGcm9tQ2hhckNvZGUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBBIGdlbmVyaWMgZXJyb3IgdXRpbGl0eSBmdW5jdGlvbi5cbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZSBUaGUgZXJyb3IgdHlwZS5cbiAqIEByZXR1cm5zIHtFcnJvcn0gVGhyb3dzIGEgYFJhbmdlRXJyb3JgIHdpdGggdGhlIGFwcGxpY2FibGUgZXJyb3IgbWVzc2FnZS5cbiAqL1xuZnVuY3Rpb24gZXJyb3IodHlwZSkge1xuXHR0aHJvdyBuZXcgUmFuZ2VFcnJvcihlcnJvcnNbdHlwZV0pO1xufVxuXG4vKipcbiAqIEEgZ2VuZXJpYyBgQXJyYXkjbWFwYCB1dGlsaXR5IGZ1bmN0aW9uLlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBUaGUgZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCBmb3IgZXZlcnkgYXJyYXlcbiAqIGl0ZW0uXG4gKiBAcmV0dXJucyB7QXJyYXl9IEEgbmV3IGFycmF5IG9mIHZhbHVlcyByZXR1cm5lZCBieSB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIG1hcChhcnJheSwgZm4pIHtcblx0Y29uc3QgcmVzdWx0ID0gW107XG5cdGxldCBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cdHdoaWxlIChsZW5ndGgtLSkge1xuXHRcdHJlc3VsdFtsZW5ndGhdID0gZm4oYXJyYXlbbGVuZ3RoXSk7XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBBIHNpbXBsZSBgQXJyYXkjbWFwYC1saWtlIHdyYXBwZXIgdG8gd29yayB3aXRoIGRvbWFpbiBuYW1lIHN0cmluZ3Mgb3IgZW1haWxcbiAqIGFkZHJlc3Nlcy5cbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge1N0cmluZ30gZG9tYWluIFRoZSBkb21haW4gbmFtZSBvciBlbWFpbCBhZGRyZXNzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIHRoYXQgZ2V0cyBjYWxsZWQgZm9yIGV2ZXJ5XG4gKiBjaGFyYWN0ZXIuXG4gKiBAcmV0dXJucyB7QXJyYXl9IEEgbmV3IHN0cmluZyBvZiBjaGFyYWN0ZXJzIHJldHVybmVkIGJ5IHRoZSBjYWxsYmFja1xuICogZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIG1hcERvbWFpbihzdHJpbmcsIGZuKSB7XG5cdGNvbnN0IHBhcnRzID0gc3RyaW5nLnNwbGl0KCdAJyk7XG5cdGxldCByZXN1bHQgPSAnJztcblx0aWYgKHBhcnRzLmxlbmd0aCA+IDEpIHtcblx0XHQvLyBJbiBlbWFpbCBhZGRyZXNzZXMsIG9ubHkgdGhlIGRvbWFpbiBuYW1lIHNob3VsZCBiZSBwdW55Y29kZWQuIExlYXZlXG5cdFx0Ly8gdGhlIGxvY2FsIHBhcnQgKGkuZS4gZXZlcnl0aGluZyB1cCB0byBgQGApIGludGFjdC5cblx0XHRyZXN1bHQgPSBwYXJ0c1swXSArICdAJztcblx0XHRzdHJpbmcgPSBwYXJ0c1sxXTtcblx0fVxuXHQvLyBBdm9pZCBgc3BsaXQocmVnZXgpYCBmb3IgSUU4IGNvbXBhdGliaWxpdHkuIFNlZSAjMTcuXG5cdHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKHJlZ2V4U2VwYXJhdG9ycywgJ1xceDJFJyk7XG5cdGNvbnN0IGxhYmVscyA9IHN0cmluZy5zcGxpdCgnLicpO1xuXHRjb25zdCBlbmNvZGVkID0gbWFwKGxhYmVscywgZm4pLmpvaW4oJy4nKTtcblx0cmV0dXJuIHJlc3VsdCArIGVuY29kZWQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBjb250YWluaW5nIHRoZSBudW1lcmljIGNvZGUgcG9pbnRzIG9mIGVhY2ggVW5pY29kZVxuICogY2hhcmFjdGVyIGluIHRoZSBzdHJpbmcuIFdoaWxlIEphdmFTY3JpcHQgdXNlcyBVQ1MtMiBpbnRlcm5hbGx5LFxuICogdGhpcyBmdW5jdGlvbiB3aWxsIGNvbnZlcnQgYSBwYWlyIG9mIHN1cnJvZ2F0ZSBoYWx2ZXMgKGVhY2ggb2Ygd2hpY2hcbiAqIFVDUy0yIGV4cG9zZXMgYXMgc2VwYXJhdGUgY2hhcmFjdGVycykgaW50byBhIHNpbmdsZSBjb2RlIHBvaW50LFxuICogbWF0Y2hpbmcgVVRGLTE2LlxuICogQHNlZSBgcHVueWNvZGUudWNzMi5lbmNvZGVgXG4gKiBAc2VlIDxodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvamF2YXNjcmlwdC1lbmNvZGluZz5cbiAqIEBtZW1iZXJPZiBwdW55Y29kZS51Y3MyXG4gKiBAbmFtZSBkZWNvZGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJpbmcgVGhlIFVuaWNvZGUgaW5wdXQgc3RyaW5nIChVQ1MtMikuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFRoZSBuZXcgYXJyYXkgb2YgY29kZSBwb2ludHMuXG4gKi9cbmZ1bmN0aW9uIHVjczJkZWNvZGUoc3RyaW5nKSB7XG5cdGNvbnN0IG91dHB1dCA9IFtdO1xuXHRsZXQgY291bnRlciA9IDA7XG5cdGNvbnN0IGxlbmd0aCA9IHN0cmluZy5sZW5ndGg7XG5cdHdoaWxlIChjb3VudGVyIDwgbGVuZ3RoKSB7XG5cdFx0Y29uc3QgdmFsdWUgPSBzdHJpbmcuY2hhckNvZGVBdChjb3VudGVyKyspO1xuXHRcdGlmICh2YWx1ZSA+PSAweEQ4MDAgJiYgdmFsdWUgPD0gMHhEQkZGICYmIGNvdW50ZXIgPCBsZW5ndGgpIHtcblx0XHRcdC8vIEl0J3MgYSBoaWdoIHN1cnJvZ2F0ZSwgYW5kIHRoZXJlIGlzIGEgbmV4dCBjaGFyYWN0ZXIuXG5cdFx0XHRjb25zdCBleHRyYSA9IHN0cmluZy5jaGFyQ29kZUF0KGNvdW50ZXIrKyk7XG5cdFx0XHRpZiAoKGV4dHJhICYgMHhGQzAwKSA9PSAweERDMDApIHsgLy8gTG93IHN1cnJvZ2F0ZS5cblx0XHRcdFx0b3V0cHV0LnB1c2goKCh2YWx1ZSAmIDB4M0ZGKSA8PCAxMCkgKyAoZXh0cmEgJiAweDNGRikgKyAweDEwMDAwKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIEl0J3MgYW4gdW5tYXRjaGVkIHN1cnJvZ2F0ZTsgb25seSBhcHBlbmQgdGhpcyBjb2RlIHVuaXQsIGluIGNhc2UgdGhlXG5cdFx0XHRcdC8vIG5leHQgY29kZSB1bml0IGlzIHRoZSBoaWdoIHN1cnJvZ2F0ZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyLlxuXHRcdFx0XHRvdXRwdXQucHVzaCh2YWx1ZSk7XG5cdFx0XHRcdGNvdW50ZXItLTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0b3V0cHV0LnB1c2godmFsdWUpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gb3V0cHV0O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzdHJpbmcgYmFzZWQgb24gYW4gYXJyYXkgb2YgbnVtZXJpYyBjb2RlIHBvaW50cy5cbiAqIEBzZWUgYHB1bnljb2RlLnVjczIuZGVjb2RlYFxuICogQG1lbWJlck9mIHB1bnljb2RlLnVjczJcbiAqIEBuYW1lIGVuY29kZVxuICogQHBhcmFtIHtBcnJheX0gY29kZVBvaW50cyBUaGUgYXJyYXkgb2YgbnVtZXJpYyBjb2RlIHBvaW50cy5cbiAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBuZXcgVW5pY29kZSBzdHJpbmcgKFVDUy0yKS5cbiAqL1xuY29uc3QgdWNzMmVuY29kZSA9IGFycmF5ID0+IFN0cmluZy5mcm9tQ29kZVBvaW50KC4uLmFycmF5KTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIGJhc2ljIGNvZGUgcG9pbnQgaW50byBhIGRpZ2l0L2ludGVnZXIuXG4gKiBAc2VlIGBkaWdpdFRvQmFzaWMoKWBcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge051bWJlcn0gY29kZVBvaW50IFRoZSBiYXNpYyBudW1lcmljIGNvZGUgcG9pbnQgdmFsdWUuXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgbnVtZXJpYyB2YWx1ZSBvZiBhIGJhc2ljIGNvZGUgcG9pbnQgKGZvciB1c2UgaW5cbiAqIHJlcHJlc2VudGluZyBpbnRlZ2VycykgaW4gdGhlIHJhbmdlIGAwYCB0byBgYmFzZSAtIDFgLCBvciBgYmFzZWAgaWZcbiAqIHRoZSBjb2RlIHBvaW50IGRvZXMgbm90IHJlcHJlc2VudCBhIHZhbHVlLlxuICovXG5jb25zdCBiYXNpY1RvRGlnaXQgPSBmdW5jdGlvbihjb2RlUG9pbnQpIHtcblx0aWYgKGNvZGVQb2ludCAtIDB4MzAgPCAweDBBKSB7XG5cdFx0cmV0dXJuIGNvZGVQb2ludCAtIDB4MTY7XG5cdH1cblx0aWYgKGNvZGVQb2ludCAtIDB4NDEgPCAweDFBKSB7XG5cdFx0cmV0dXJuIGNvZGVQb2ludCAtIDB4NDE7XG5cdH1cblx0aWYgKGNvZGVQb2ludCAtIDB4NjEgPCAweDFBKSB7XG5cdFx0cmV0dXJuIGNvZGVQb2ludCAtIDB4NjE7XG5cdH1cblx0cmV0dXJuIGJhc2U7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgZGlnaXQvaW50ZWdlciBpbnRvIGEgYmFzaWMgY29kZSBwb2ludC5cbiAqIEBzZWUgYGJhc2ljVG9EaWdpdCgpYFxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7TnVtYmVyfSBkaWdpdCBUaGUgbnVtZXJpYyB2YWx1ZSBvZiBhIGJhc2ljIGNvZGUgcG9pbnQuXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgYmFzaWMgY29kZSBwb2ludCB3aG9zZSB2YWx1ZSAod2hlbiB1c2VkIGZvclxuICogcmVwcmVzZW50aW5nIGludGVnZXJzKSBpcyBgZGlnaXRgLCB3aGljaCBuZWVkcyB0byBiZSBpbiB0aGUgcmFuZ2VcbiAqIGAwYCB0byBgYmFzZSAtIDFgLiBJZiBgZmxhZ2AgaXMgbm9uLXplcm8sIHRoZSB1cHBlcmNhc2UgZm9ybSBpc1xuICogdXNlZDsgZWxzZSwgdGhlIGxvd2VyY2FzZSBmb3JtIGlzIHVzZWQuIFRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWRcbiAqIGlmIGBmbGFnYCBpcyBub24temVybyBhbmQgYGRpZ2l0YCBoYXMgbm8gdXBwZXJjYXNlIGZvcm0uXG4gKi9cbmNvbnN0IGRpZ2l0VG9CYXNpYyA9IGZ1bmN0aW9uKGRpZ2l0LCBmbGFnKSB7XG5cdC8vICAwLi4yNSBtYXAgdG8gQVNDSUkgYS4ueiBvciBBLi5aXG5cdC8vIDI2Li4zNSBtYXAgdG8gQVNDSUkgMC4uOVxuXHRyZXR1cm4gZGlnaXQgKyAyMiArIDc1ICogKGRpZ2l0IDwgMjYpIC0gKChmbGFnICE9IDApIDw8IDUpO1xufTtcblxuLyoqXG4gKiBCaWFzIGFkYXB0YXRpb24gZnVuY3Rpb24gYXMgcGVyIHNlY3Rpb24gMy40IG9mIFJGQyAzNDkyLlxuICogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM0OTIjc2VjdGlvbi0zLjRcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IGFkYXB0ID0gZnVuY3Rpb24oZGVsdGEsIG51bVBvaW50cywgZmlyc3RUaW1lKSB7XG5cdGxldCBrID0gMDtcblx0ZGVsdGEgPSBmaXJzdFRpbWUgPyBmbG9vcihkZWx0YSAvIGRhbXApIDogZGVsdGEgPj4gMTtcblx0ZGVsdGEgKz0gZmxvb3IoZGVsdGEgLyBudW1Qb2ludHMpO1xuXHRmb3IgKC8qIG5vIGluaXRpYWxpemF0aW9uICovOyBkZWx0YSA+IGJhc2VNaW51c1RNaW4gKiB0TWF4ID4+IDE7IGsgKz0gYmFzZSkge1xuXHRcdGRlbHRhID0gZmxvb3IoZGVsdGEgLyBiYXNlTWludXNUTWluKTtcblx0fVxuXHRyZXR1cm4gZmxvb3IoayArIChiYXNlTWludXNUTWluICsgMSkgKiBkZWx0YSAvIChkZWx0YSArIHNrZXcpKTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgYSBQdW55Y29kZSBzdHJpbmcgb2YgQVNDSUktb25seSBzeW1ib2xzIHRvIGEgc3RyaW5nIG9mIFVuaWNvZGVcbiAqIHN5bWJvbHMuXG4gKiBAbWVtYmVyT2YgcHVueWNvZGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBpbnB1dCBUaGUgUHVueWNvZGUgc3RyaW5nIG9mIEFTQ0lJLW9ubHkgc3ltYm9scy5cbiAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSByZXN1bHRpbmcgc3RyaW5nIG9mIFVuaWNvZGUgc3ltYm9scy5cbiAqL1xuY29uc3QgZGVjb2RlID0gZnVuY3Rpb24oaW5wdXQpIHtcblx0Ly8gRG9uJ3QgdXNlIFVDUy0yLlxuXHRjb25zdCBvdXRwdXQgPSBbXTtcblx0Y29uc3QgaW5wdXRMZW5ndGggPSBpbnB1dC5sZW5ndGg7XG5cdGxldCBpID0gMDtcblx0bGV0IG4gPSBpbml0aWFsTjtcblx0bGV0IGJpYXMgPSBpbml0aWFsQmlhcztcblxuXHQvLyBIYW5kbGUgdGhlIGJhc2ljIGNvZGUgcG9pbnRzOiBsZXQgYGJhc2ljYCBiZSB0aGUgbnVtYmVyIG9mIGlucHV0IGNvZGVcblx0Ly8gcG9pbnRzIGJlZm9yZSB0aGUgbGFzdCBkZWxpbWl0ZXIsIG9yIGAwYCBpZiB0aGVyZSBpcyBub25lLCB0aGVuIGNvcHlcblx0Ly8gdGhlIGZpcnN0IGJhc2ljIGNvZGUgcG9pbnRzIHRvIHRoZSBvdXRwdXQuXG5cblx0bGV0IGJhc2ljID0gaW5wdXQubGFzdEluZGV4T2YoZGVsaW1pdGVyKTtcblx0aWYgKGJhc2ljIDwgMCkge1xuXHRcdGJhc2ljID0gMDtcblx0fVxuXG5cdGZvciAobGV0IGogPSAwOyBqIDwgYmFzaWM7ICsraikge1xuXHRcdC8vIGlmIGl0J3Mgbm90IGEgYmFzaWMgY29kZSBwb2ludFxuXHRcdGlmIChpbnB1dC5jaGFyQ29kZUF0KGopID49IDB4ODApIHtcblx0XHRcdGVycm9yKCdub3QtYmFzaWMnKTtcblx0XHR9XG5cdFx0b3V0cHV0LnB1c2goaW5wdXQuY2hhckNvZGVBdChqKSk7XG5cdH1cblxuXHQvLyBNYWluIGRlY29kaW5nIGxvb3A6IHN0YXJ0IGp1c3QgYWZ0ZXIgdGhlIGxhc3QgZGVsaW1pdGVyIGlmIGFueSBiYXNpYyBjb2RlXG5cdC8vIHBvaW50cyB3ZXJlIGNvcGllZDsgc3RhcnQgYXQgdGhlIGJlZ2lubmluZyBvdGhlcndpc2UuXG5cblx0Zm9yIChsZXQgaW5kZXggPSBiYXNpYyA+IDAgPyBiYXNpYyArIDEgOiAwOyBpbmRleCA8IGlucHV0TGVuZ3RoOyAvKiBubyBmaW5hbCBleHByZXNzaW9uICovKSB7XG5cblx0XHQvLyBgaW5kZXhgIGlzIHRoZSBpbmRleCBvZiB0aGUgbmV4dCBjaGFyYWN0ZXIgdG8gYmUgY29uc3VtZWQuXG5cdFx0Ly8gRGVjb2RlIGEgZ2VuZXJhbGl6ZWQgdmFyaWFibGUtbGVuZ3RoIGludGVnZXIgaW50byBgZGVsdGFgLFxuXHRcdC8vIHdoaWNoIGdldHMgYWRkZWQgdG8gYGlgLiBUaGUgb3ZlcmZsb3cgY2hlY2tpbmcgaXMgZWFzaWVyXG5cdFx0Ly8gaWYgd2UgaW5jcmVhc2UgYGlgIGFzIHdlIGdvLCB0aGVuIHN1YnRyYWN0IG9mZiBpdHMgc3RhcnRpbmdcblx0XHQvLyB2YWx1ZSBhdCB0aGUgZW5kIHRvIG9idGFpbiBgZGVsdGFgLlxuXHRcdGxldCBvbGRpID0gaTtcblx0XHRmb3IgKGxldCB3ID0gMSwgayA9IGJhc2U7IC8qIG5vIGNvbmRpdGlvbiAqLzsgayArPSBiYXNlKSB7XG5cblx0XHRcdGlmIChpbmRleCA+PSBpbnB1dExlbmd0aCkge1xuXHRcdFx0XHRlcnJvcignaW52YWxpZC1pbnB1dCcpO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBkaWdpdCA9IGJhc2ljVG9EaWdpdChpbnB1dC5jaGFyQ29kZUF0KGluZGV4KyspKTtcblxuXHRcdFx0aWYgKGRpZ2l0ID49IGJhc2UgfHwgZGlnaXQgPiBmbG9vcigobWF4SW50IC0gaSkgLyB3KSkge1xuXHRcdFx0XHRlcnJvcignb3ZlcmZsb3cnKTtcblx0XHRcdH1cblxuXHRcdFx0aSArPSBkaWdpdCAqIHc7XG5cdFx0XHRjb25zdCB0ID0gayA8PSBiaWFzID8gdE1pbiA6IChrID49IGJpYXMgKyB0TWF4ID8gdE1heCA6IGsgLSBiaWFzKTtcblxuXHRcdFx0aWYgKGRpZ2l0IDwgdCkge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgYmFzZU1pbnVzVCA9IGJhc2UgLSB0O1xuXHRcdFx0aWYgKHcgPiBmbG9vcihtYXhJbnQgLyBiYXNlTWludXNUKSkge1xuXHRcdFx0XHRlcnJvcignb3ZlcmZsb3cnKTtcblx0XHRcdH1cblxuXHRcdFx0dyAqPSBiYXNlTWludXNUO1xuXG5cdFx0fVxuXG5cdFx0Y29uc3Qgb3V0ID0gb3V0cHV0Lmxlbmd0aCArIDE7XG5cdFx0YmlhcyA9IGFkYXB0KGkgLSBvbGRpLCBvdXQsIG9sZGkgPT0gMCk7XG5cblx0XHQvLyBgaWAgd2FzIHN1cHBvc2VkIHRvIHdyYXAgYXJvdW5kIGZyb20gYG91dGAgdG8gYDBgLFxuXHRcdC8vIGluY3JlbWVudGluZyBgbmAgZWFjaCB0aW1lLCBzbyB3ZSdsbCBmaXggdGhhdCBub3c6XG5cdFx0aWYgKGZsb29yKGkgLyBvdXQpID4gbWF4SW50IC0gbikge1xuXHRcdFx0ZXJyb3IoJ292ZXJmbG93Jyk7XG5cdFx0fVxuXG5cdFx0biArPSBmbG9vcihpIC8gb3V0KTtcblx0XHRpICU9IG91dDtcblxuXHRcdC8vIEluc2VydCBgbmAgYXQgcG9zaXRpb24gYGlgIG9mIHRoZSBvdXRwdXQuXG5cdFx0b3V0cHV0LnNwbGljZShpKyssIDAsIG4pO1xuXG5cdH1cblxuXHRyZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQoLi4ub3V0cHV0KTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgYSBzdHJpbmcgb2YgVW5pY29kZSBzeW1ib2xzIChlLmcuIGEgZG9tYWluIG5hbWUgbGFiZWwpIHRvIGFcbiAqIFB1bnljb2RlIHN0cmluZyBvZiBBU0NJSS1vbmx5IHN5bWJvbHMuXG4gKiBAbWVtYmVyT2YgcHVueWNvZGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBpbnB1dCBUaGUgc3RyaW5nIG9mIFVuaWNvZGUgc3ltYm9scy5cbiAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSByZXN1bHRpbmcgUHVueWNvZGUgc3RyaW5nIG9mIEFTQ0lJLW9ubHkgc3ltYm9scy5cbiAqL1xuY29uc3QgZW5jb2RlID0gZnVuY3Rpb24oaW5wdXQpIHtcblx0Y29uc3Qgb3V0cHV0ID0gW107XG5cblx0Ly8gQ29udmVydCB0aGUgaW5wdXQgaW4gVUNTLTIgdG8gYW4gYXJyYXkgb2YgVW5pY29kZSBjb2RlIHBvaW50cy5cblx0aW5wdXQgPSB1Y3MyZGVjb2RlKGlucHV0KTtcblxuXHQvLyBDYWNoZSB0aGUgbGVuZ3RoLlxuXHRsZXQgaW5wdXRMZW5ndGggPSBpbnB1dC5sZW5ndGg7XG5cblx0Ly8gSW5pdGlhbGl6ZSB0aGUgc3RhdGUuXG5cdGxldCBuID0gaW5pdGlhbE47XG5cdGxldCBkZWx0YSA9IDA7XG5cdGxldCBiaWFzID0gaW5pdGlhbEJpYXM7XG5cblx0Ly8gSGFuZGxlIHRoZSBiYXNpYyBjb2RlIHBvaW50cy5cblx0Zm9yIChjb25zdCBjdXJyZW50VmFsdWUgb2YgaW5wdXQpIHtcblx0XHRpZiAoY3VycmVudFZhbHVlIDwgMHg4MCkge1xuXHRcdFx0b3V0cHV0LnB1c2goc3RyaW5nRnJvbUNoYXJDb2RlKGN1cnJlbnRWYWx1ZSkpO1xuXHRcdH1cblx0fVxuXG5cdGxldCBiYXNpY0xlbmd0aCA9IG91dHB1dC5sZW5ndGg7XG5cdGxldCBoYW5kbGVkQ1BDb3VudCA9IGJhc2ljTGVuZ3RoO1xuXG5cdC8vIGBoYW5kbGVkQ1BDb3VudGAgaXMgdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyB0aGF0IGhhdmUgYmVlbiBoYW5kbGVkO1xuXHQvLyBgYmFzaWNMZW5ndGhgIGlzIHRoZSBudW1iZXIgb2YgYmFzaWMgY29kZSBwb2ludHMuXG5cblx0Ly8gRmluaXNoIHRoZSBiYXNpYyBzdHJpbmcgd2l0aCBhIGRlbGltaXRlciB1bmxlc3MgaXQncyBlbXB0eS5cblx0aWYgKGJhc2ljTGVuZ3RoKSB7XG5cdFx0b3V0cHV0LnB1c2goZGVsaW1pdGVyKTtcblx0fVxuXG5cdC8vIE1haW4gZW5jb2RpbmcgbG9vcDpcblx0d2hpbGUgKGhhbmRsZWRDUENvdW50IDwgaW5wdXRMZW5ndGgpIHtcblxuXHRcdC8vIEFsbCBub24tYmFzaWMgY29kZSBwb2ludHMgPCBuIGhhdmUgYmVlbiBoYW5kbGVkIGFscmVhZHkuIEZpbmQgdGhlIG5leHRcblx0XHQvLyBsYXJnZXIgb25lOlxuXHRcdGxldCBtID0gbWF4SW50O1xuXHRcdGZvciAoY29uc3QgY3VycmVudFZhbHVlIG9mIGlucHV0KSB7XG5cdFx0XHRpZiAoY3VycmVudFZhbHVlID49IG4gJiYgY3VycmVudFZhbHVlIDwgbSkge1xuXHRcdFx0XHRtID0gY3VycmVudFZhbHVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEluY3JlYXNlIGBkZWx0YWAgZW5vdWdoIHRvIGFkdmFuY2UgdGhlIGRlY29kZXIncyA8bixpPiBzdGF0ZSB0byA8bSwwPixcblx0XHQvLyBidXQgZ3VhcmQgYWdhaW5zdCBvdmVyZmxvdy5cblx0XHRjb25zdCBoYW5kbGVkQ1BDb3VudFBsdXNPbmUgPSBoYW5kbGVkQ1BDb3VudCArIDE7XG5cdFx0aWYgKG0gLSBuID4gZmxvb3IoKG1heEludCAtIGRlbHRhKSAvIGhhbmRsZWRDUENvdW50UGx1c09uZSkpIHtcblx0XHRcdGVycm9yKCdvdmVyZmxvdycpO1xuXHRcdH1cblxuXHRcdGRlbHRhICs9IChtIC0gbikgKiBoYW5kbGVkQ1BDb3VudFBsdXNPbmU7XG5cdFx0biA9IG07XG5cblx0XHRmb3IgKGNvbnN0IGN1cnJlbnRWYWx1ZSBvZiBpbnB1dCkge1xuXHRcdFx0aWYgKGN1cnJlbnRWYWx1ZSA8IG4gJiYgKytkZWx0YSA+IG1heEludCkge1xuXHRcdFx0XHRlcnJvcignb3ZlcmZsb3cnKTtcblx0XHRcdH1cblx0XHRcdGlmIChjdXJyZW50VmFsdWUgPT0gbikge1xuXHRcdFx0XHQvLyBSZXByZXNlbnQgZGVsdGEgYXMgYSBnZW5lcmFsaXplZCB2YXJpYWJsZS1sZW5ndGggaW50ZWdlci5cblx0XHRcdFx0bGV0IHEgPSBkZWx0YTtcblx0XHRcdFx0Zm9yIChsZXQgayA9IGJhc2U7IC8qIG5vIGNvbmRpdGlvbiAqLzsgayArPSBiYXNlKSB7XG5cdFx0XHRcdFx0Y29uc3QgdCA9IGsgPD0gYmlhcyA/IHRNaW4gOiAoayA+PSBiaWFzICsgdE1heCA/IHRNYXggOiBrIC0gYmlhcyk7XG5cdFx0XHRcdFx0aWYgKHEgPCB0KSB7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Y29uc3QgcU1pbnVzVCA9IHEgLSB0O1xuXHRcdFx0XHRcdGNvbnN0IGJhc2VNaW51c1QgPSBiYXNlIC0gdDtcblx0XHRcdFx0XHRvdXRwdXQucHVzaChcblx0XHRcdFx0XHRcdHN0cmluZ0Zyb21DaGFyQ29kZShkaWdpdFRvQmFzaWModCArIHFNaW51c1QgJSBiYXNlTWludXNULCAwKSlcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHEgPSBmbG9vcihxTWludXNUIC8gYmFzZU1pbnVzVCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRvdXRwdXQucHVzaChzdHJpbmdGcm9tQ2hhckNvZGUoZGlnaXRUb0Jhc2ljKHEsIDApKSk7XG5cdFx0XHRcdGJpYXMgPSBhZGFwdChkZWx0YSwgaGFuZGxlZENQQ291bnRQbHVzT25lLCBoYW5kbGVkQ1BDb3VudCA9PSBiYXNpY0xlbmd0aCk7XG5cdFx0XHRcdGRlbHRhID0gMDtcblx0XHRcdFx0KytoYW5kbGVkQ1BDb3VudDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQrK2RlbHRhO1xuXHRcdCsrbjtcblxuXHR9XG5cdHJldHVybiBvdXRwdXQuam9pbignJyk7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgUHVueWNvZGUgc3RyaW5nIHJlcHJlc2VudGluZyBhIGRvbWFpbiBuYW1lIG9yIGFuIGVtYWlsIGFkZHJlc3NcbiAqIHRvIFVuaWNvZGUuIE9ubHkgdGhlIFB1bnljb2RlZCBwYXJ0cyBvZiB0aGUgaW5wdXQgd2lsbCBiZSBjb252ZXJ0ZWQsIGkuZS5cbiAqIGl0IGRvZXNuJ3QgbWF0dGVyIGlmIHlvdSBjYWxsIGl0IG9uIGEgc3RyaW5nIHRoYXQgaGFzIGFscmVhZHkgYmVlblxuICogY29udmVydGVkIHRvIFVuaWNvZGUuXG4gKiBAbWVtYmVyT2YgcHVueWNvZGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBpbnB1dCBUaGUgUHVueWNvZGVkIGRvbWFpbiBuYW1lIG9yIGVtYWlsIGFkZHJlc3MgdG9cbiAqIGNvbnZlcnQgdG8gVW5pY29kZS5cbiAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBVbmljb2RlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBQdW55Y29kZVxuICogc3RyaW5nLlxuICovXG5jb25zdCB0b1VuaWNvZGUgPSBmdW5jdGlvbihpbnB1dCkge1xuXHRyZXR1cm4gbWFwRG9tYWluKGlucHV0LCBmdW5jdGlvbihzdHJpbmcpIHtcblx0XHRyZXR1cm4gcmVnZXhQdW55Y29kZS50ZXN0KHN0cmluZylcblx0XHRcdD8gZGVjb2RlKHN0cmluZy5zbGljZSg0KS50b0xvd2VyQ2FzZSgpKVxuXHRcdFx0OiBzdHJpbmc7XG5cdH0pO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIFVuaWNvZGUgc3RyaW5nIHJlcHJlc2VudGluZyBhIGRvbWFpbiBuYW1lIG9yIGFuIGVtYWlsIGFkZHJlc3MgdG9cbiAqIFB1bnljb2RlLiBPbmx5IHRoZSBub24tQVNDSUkgcGFydHMgb2YgdGhlIGRvbWFpbiBuYW1lIHdpbGwgYmUgY29udmVydGVkLFxuICogaS5lLiBpdCBkb2Vzbid0IG1hdHRlciBpZiB5b3UgY2FsbCBpdCB3aXRoIGEgZG9tYWluIHRoYXQncyBhbHJlYWR5IGluXG4gKiBBU0NJSS5cbiAqIEBtZW1iZXJPZiBwdW55Y29kZVxuICogQHBhcmFtIHtTdHJpbmd9IGlucHV0IFRoZSBkb21haW4gbmFtZSBvciBlbWFpbCBhZGRyZXNzIHRvIGNvbnZlcnQsIGFzIGFcbiAqIFVuaWNvZGUgc3RyaW5nLlxuICogQHJldHVybnMge1N0cmluZ30gVGhlIFB1bnljb2RlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBkb21haW4gbmFtZSBvclxuICogZW1haWwgYWRkcmVzcy5cbiAqL1xuY29uc3QgdG9BU0NJSSA9IGZ1bmN0aW9uKGlucHV0KSB7XG5cdHJldHVybiBtYXBEb21haW4oaW5wdXQsIGZ1bmN0aW9uKHN0cmluZykge1xuXHRcdHJldHVybiByZWdleE5vbkFTQ0lJLnRlc3Qoc3RyaW5nKVxuXHRcdFx0PyAneG4tLScgKyBlbmNvZGUoc3RyaW5nKVxuXHRcdFx0OiBzdHJpbmc7XG5cdH0pO1xufTtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qKiBEZWZpbmUgdGhlIHB1YmxpYyBBUEkgKi9cbmNvbnN0IHB1bnljb2RlID0ge1xuXHQvKipcblx0ICogQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IFB1bnljb2RlLmpzIHZlcnNpb24gbnVtYmVyLlxuXHQgKiBAbWVtYmVyT2YgcHVueWNvZGVcblx0ICogQHR5cGUgU3RyaW5nXG5cdCAqL1xuXHQndmVyc2lvbic6ICcyLjEuMCcsXG5cdC8qKlxuXHQgKiBBbiBvYmplY3Qgb2YgbWV0aG9kcyB0byBjb252ZXJ0IGZyb20gSmF2YVNjcmlwdCdzIGludGVybmFsIGNoYXJhY3RlclxuXHQgKiByZXByZXNlbnRhdGlvbiAoVUNTLTIpIHRvIFVuaWNvZGUgY29kZSBwb2ludHMsIGFuZCBiYWNrLlxuXHQgKiBAc2VlIDxodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvamF2YXNjcmlwdC1lbmNvZGluZz5cblx0ICogQG1lbWJlck9mIHB1bnljb2RlXG5cdCAqIEB0eXBlIE9iamVjdFxuXHQgKi9cblx0J3VjczInOiB7XG5cdFx0J2RlY29kZSc6IHVjczJkZWNvZGUsXG5cdFx0J2VuY29kZSc6IHVjczJlbmNvZGVcblx0fSxcblx0J2RlY29kZSc6IGRlY29kZSxcblx0J2VuY29kZSc6IGVuY29kZSxcblx0J3RvQVNDSUknOiB0b0FTQ0lJLFxuXHQndG9Vbmljb2RlJzogdG9Vbmljb2RlXG59O1xuXG5leHBvcnQgZGVmYXVsdCBwdW55Y29kZTtcbiIsICJpbXBvcnQgeyBVUklSZWdFeHBzIH0gZnJvbSBcIi4vdXJpXCI7XG5pbXBvcnQgeyBidWlsZEV4cHMgfSBmcm9tIFwiLi9yZWdleHBzLXVyaVwiO1xuXG5leHBvcnQgZGVmYXVsdCBidWlsZEV4cHModHJ1ZSk7XG4iLCAiaW1wb3J0IHsgVVJJUmVnRXhwcyB9IGZyb20gXCIuL3VyaVwiO1xuaW1wb3J0IHsgbWVyZ2UsIHN1YmV4cCB9IGZyb20gXCIuL3V0aWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRXhwcyhpc0lSSTpib29sZWFuKTpVUklSZWdFeHBzIHtcblx0Y29uc3Rcblx0XHRBTFBIQSQkID0gXCJbQS1aYS16XVwiLFxuXHRcdENSJCA9IFwiW1xcXFx4MERdXCIsXG5cdFx0RElHSVQkJCA9IFwiWzAtOV1cIixcblx0XHREUVVPVEUkJCA9IFwiW1xcXFx4MjJdXCIsXG5cdFx0SEVYRElHJCQgPSBtZXJnZShESUdJVCQkLCBcIltBLUZhLWZdXCIpLCAgLy9jYXNlLWluc2Vuc2l0aXZlXG5cdFx0TEYkJCA9IFwiW1xcXFx4MEFdXCIsXG5cdFx0U1AkJCA9IFwiW1xcXFx4MjBdXCIsXG5cdFx0UENUX0VOQ09ERUQkID0gc3ViZXhwKHN1YmV4cChcIiVbRUZlZl1cIiArIEhFWERJRyQkICsgXCIlXCIgKyBIRVhESUckJCArIEhFWERJRyQkICsgXCIlXCIgKyBIRVhESUckJCArIEhFWERJRyQkKSArIFwifFwiICsgc3ViZXhwKFwiJVs4OUEtRmEtZl1cIiArIEhFWERJRyQkICsgXCIlXCIgKyBIRVhESUckJCArIEhFWERJRyQkKSArIFwifFwiICsgc3ViZXhwKFwiJVwiICsgSEVYRElHJCQgKyBIRVhESUckJCkpLCAgLy9leHBhbmRlZFxuXHRcdEdFTl9ERUxJTVMkJCA9IFwiW1xcXFw6XFxcXC9cXFxcP1xcXFwjXFxcXFtcXFxcXVxcXFxAXVwiLFxuXHRcdFNVQl9ERUxJTVMkJCA9IFwiW1xcXFwhXFxcXCRcXFxcJlxcXFwnXFxcXChcXFxcKVxcXFwqXFxcXCtcXFxcLFxcXFw7XFxcXD1dXCIsXG5cdFx0UkVTRVJWRUQkJCA9IG1lcmdlKEdFTl9ERUxJTVMkJCwgU1VCX0RFTElNUyQkKSxcblx0XHRVQ1NDSEFSJCQgPSBpc0lSSSA/IFwiW1xcXFx4QTAtXFxcXHUyMDBEXFxcXHUyMDEwLVxcXFx1MjAyOVxcXFx1MjAyRi1cXFxcdUQ3RkZcXFxcdUY5MDAtXFxcXHVGRENGXFxcXHVGREYwLVxcXFx1RkZFRl1cIiA6IFwiW11cIiwgIC8vc3Vic2V0LCBleGNsdWRlcyBiaWRpIGNvbnRyb2wgY2hhcmFjdGVyc1xuXHRcdElQUklWQVRFJCQgPSBpc0lSSSA/IFwiW1xcXFx1RTAwMC1cXFxcdUY4RkZdXCIgOiBcIltdXCIsICAvL3N1YnNldFxuXHRcdFVOUkVTRVJWRUQkJCA9IG1lcmdlKEFMUEhBJCQsIERJR0lUJCQsIFwiW1xcXFwtXFxcXC5cXFxcX1xcXFx+XVwiLCBVQ1NDSEFSJCQpLFxuXHRcdFNDSEVNRSQgPSBzdWJleHAoQUxQSEEkJCArIG1lcmdlKEFMUEhBJCQsIERJR0lUJCQsIFwiW1xcXFwrXFxcXC1cXFxcLl1cIikgKyBcIipcIiksXG5cdFx0VVNFUklORk8kID0gc3ViZXhwKHN1YmV4cChQQ1RfRU5DT0RFRCQgKyBcInxcIiArIG1lcmdlKFVOUkVTRVJWRUQkJCwgU1VCX0RFTElNUyQkLCBcIltcXFxcOl1cIikpICsgXCIqXCIpLFxuXHRcdERFQ19PQ1RFVCQgPSBzdWJleHAoc3ViZXhwKFwiMjVbMC01XVwiKSArIFwifFwiICsgc3ViZXhwKFwiMlswLTRdXCIgKyBESUdJVCQkKSArIFwifFwiICsgc3ViZXhwKFwiMVwiICsgRElHSVQkJCArIERJR0lUJCQpICsgXCJ8XCIgKyBzdWJleHAoXCJbMS05XVwiICsgRElHSVQkJCkgKyBcInxcIiArIERJR0lUJCQpLFxuXHRcdERFQ19PQ1RFVF9SRUxBWEVEJCA9IHN1YmV4cChzdWJleHAoXCIyNVswLTVdXCIpICsgXCJ8XCIgKyBzdWJleHAoXCIyWzAtNF1cIiArIERJR0lUJCQpICsgXCJ8XCIgKyBzdWJleHAoXCIxXCIgKyBESUdJVCQkICsgRElHSVQkJCkgKyBcInxcIiArIHN1YmV4cChcIjA/WzEtOV1cIiArIERJR0lUJCQpICsgXCJ8MD8wP1wiICsgRElHSVQkJCksICAvL3JlbGF4ZWQgcGFyc2luZyBydWxlc1xuXHRcdElQVjRBRERSRVNTJCA9IHN1YmV4cChERUNfT0NURVRfUkVMQVhFRCQgKyBcIlxcXFwuXCIgKyBERUNfT0NURVRfUkVMQVhFRCQgKyBcIlxcXFwuXCIgKyBERUNfT0NURVRfUkVMQVhFRCQgKyBcIlxcXFwuXCIgKyBERUNfT0NURVRfUkVMQVhFRCQpLFxuXHRcdEgxNiQgPSBzdWJleHAoSEVYRElHJCQgKyBcInsxLDR9XCIpLFxuXHRcdExTMzIkID0gc3ViZXhwKHN1YmV4cChIMTYkICsgXCJcXFxcOlwiICsgSDE2JCkgKyBcInxcIiArIElQVjRBRERSRVNTJCksXG5cdFx0SVBWNkFERFJFU1MxJCA9IHN1YmV4cCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJleHAoSDE2JCArIFwiXFxcXDpcIikgKyBcIns2fVwiICsgTFMzMiQpLCAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIDYoIGgxNiBcIjpcIiApIGxzMzJcblx0XHRJUFY2QUREUkVTUzIkID0gc3ViZXhwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcXFw6XFxcXDpcIiArIHN1YmV4cChIMTYkICsgXCJcXFxcOlwiKSArIFwiezV9XCIgKyBMUzMyJCksIC8vICAgICAgICAgICAgICAgICAgICAgIFwiOjpcIiA1KCBoMTYgXCI6XCIgKSBsczMyXG5cdFx0SVBWNkFERFJFU1MzJCA9IHN1YmV4cChzdWJleHAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSDE2JCkgKyBcIj9cXFxcOlxcXFw6XCIgKyBzdWJleHAoSDE2JCArIFwiXFxcXDpcIikgKyBcIns0fVwiICsgTFMzMiQpLCAvL1sgICAgICAgICAgICAgICBoMTYgXSBcIjo6XCIgNCggaDE2IFwiOlwiICkgbHMzMlxuXHRcdElQVjZBRERSRVNTNCQgPSBzdWJleHAoc3ViZXhwKHN1YmV4cChIMTYkICsgXCJcXFxcOlwiKSArIFwiezAsMX1cIiArIEgxNiQpICsgXCI/XFxcXDpcXFxcOlwiICsgc3ViZXhwKEgxNiQgKyBcIlxcXFw6XCIpICsgXCJ7M31cIiArIExTMzIkKSwgLy9bICoxKCBoMTYgXCI6XCIgKSBoMTYgXSBcIjo6XCIgMyggaDE2IFwiOlwiICkgbHMzMlxuXHRcdElQVjZBRERSRVNTNSQgPSBzdWJleHAoc3ViZXhwKHN1YmV4cChIMTYkICsgXCJcXFxcOlwiKSArIFwiezAsMn1cIiArIEgxNiQpICsgXCI/XFxcXDpcXFxcOlwiICsgc3ViZXhwKEgxNiQgKyBcIlxcXFw6XCIpICsgXCJ7Mn1cIiArIExTMzIkKSwgLy9bICoyKCBoMTYgXCI6XCIgKSBoMTYgXSBcIjo6XCIgMiggaDE2IFwiOlwiICkgbHMzMlxuXHRcdElQVjZBRERSRVNTNiQgPSBzdWJleHAoc3ViZXhwKHN1YmV4cChIMTYkICsgXCJcXFxcOlwiKSArIFwiezAsM31cIiArIEgxNiQpICsgXCI/XFxcXDpcXFxcOlwiICsgICAgICAgIEgxNiQgKyBcIlxcXFw6XCIgICAgICAgICAgKyBMUzMyJCksIC8vWyAqMyggaDE2IFwiOlwiICkgaDE2IF0gXCI6OlwiICAgIGgxNiBcIjpcIiAgIGxzMzJcblx0XHRJUFY2QUREUkVTUzckID0gc3ViZXhwKHN1YmV4cChzdWJleHAoSDE2JCArIFwiXFxcXDpcIikgKyBcInswLDR9XCIgKyBIMTYkKSArIFwiP1xcXFw6XFxcXDpcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBMUzMyJCksIC8vWyAqNCggaDE2IFwiOlwiICkgaDE2IF0gXCI6OlwiICAgICAgICAgICAgICBsczMyXG5cdFx0SVBWNkFERFJFU1M4JCA9IHN1YmV4cChzdWJleHAoc3ViZXhwKEgxNiQgKyBcIlxcXFw6XCIpICsgXCJ7MCw1fVwiICsgSDE2JCkgKyBcIj9cXFxcOlxcXFw6XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSDE2JCApLCAvL1sgKjUoIGgxNiBcIjpcIiApIGgxNiBdIFwiOjpcIiAgICAgICAgICAgICAgaDE2XG5cdFx0SVBWNkFERFJFU1M5JCA9IHN1YmV4cChzdWJleHAoc3ViZXhwKEgxNiQgKyBcIlxcXFw6XCIpICsgXCJ7MCw2fVwiICsgSDE2JCkgKyBcIj9cXFxcOlxcXFw6XCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLCAvL1sgKjYoIGgxNiBcIjpcIiApIGgxNiBdIFwiOjpcIlxuXHRcdElQVjZBRERSRVNTJCA9IHN1YmV4cChbSVBWNkFERFJFU1MxJCwgSVBWNkFERFJFU1MyJCwgSVBWNkFERFJFU1MzJCwgSVBWNkFERFJFU1M0JCwgSVBWNkFERFJFU1M1JCwgSVBWNkFERFJFU1M2JCwgSVBWNkFERFJFU1M3JCwgSVBWNkFERFJFU1M4JCwgSVBWNkFERFJFU1M5JF0uam9pbihcInxcIikpLFxuXHRcdFpPTkVJRCQgPSBzdWJleHAoc3ViZXhwKFVOUkVTRVJWRUQkJCArIFwifFwiICsgUENUX0VOQ09ERUQkKSArIFwiK1wiKSwgIC8vUkZDIDY4NzRcblx0XHRJUFY2QUREUlokID0gc3ViZXhwKElQVjZBRERSRVNTJCArIFwiXFxcXCUyNVwiICsgWk9ORUlEJCksICAvL1JGQyA2ODc0XG5cdFx0SVBWNkFERFJaX1JFTEFYRUQkID0gc3ViZXhwKElQVjZBRERSRVNTJCArIHN1YmV4cChcIlxcXFwlMjV8XFxcXCUoPyFcIiArIEhFWERJRyQkICsgXCJ7Mn0pXCIpICsgWk9ORUlEJCksICAvL1JGQyA2ODc0LCB3aXRoIHJlbGF4ZWQgcGFyc2luZyBydWxlc1xuXHRcdElQVkZVVFVSRSQgPSBzdWJleHAoXCJbdlZdXCIgKyBIRVhESUckJCArIFwiK1xcXFwuXCIgKyBtZXJnZShVTlJFU0VSVkVEJCQsIFNVQl9ERUxJTVMkJCwgXCJbXFxcXDpdXCIpICsgXCIrXCIpLFxuXHRcdElQX0xJVEVSQUwkID0gc3ViZXhwKFwiXFxcXFtcIiArIHN1YmV4cChJUFY2QUREUlpfUkVMQVhFRCQgKyBcInxcIiArIElQVjZBRERSRVNTJCArIFwifFwiICsgSVBWRlVUVVJFJCkgKyBcIlxcXFxdXCIpLCAgLy9SRkMgNjg3NFxuXHRcdFJFR19OQU1FJCA9IHN1YmV4cChzdWJleHAoUENUX0VOQ09ERUQkICsgXCJ8XCIgKyBtZXJnZShVTlJFU0VSVkVEJCQsIFNVQl9ERUxJTVMkJCkpICsgXCIqXCIpLFxuXHRcdEhPU1QkID0gc3ViZXhwKElQX0xJVEVSQUwkICsgXCJ8XCIgKyBJUFY0QUREUkVTUyQgKyBcIig/IVwiICsgUkVHX05BTUUkICsgXCIpXCIgKyBcInxcIiArIFJFR19OQU1FJCksXG5cdFx0UE9SVCQgPSBzdWJleHAoRElHSVQkJCArIFwiKlwiKSxcblx0XHRBVVRIT1JJVFkkID0gc3ViZXhwKHN1YmV4cChVU0VSSU5GTyQgKyBcIkBcIikgKyBcIj9cIiArIEhPU1QkICsgc3ViZXhwKFwiXFxcXDpcIiArIFBPUlQkKSArIFwiP1wiKSxcblx0XHRQQ0hBUiQgPSBzdWJleHAoUENUX0VOQ09ERUQkICsgXCJ8XCIgKyBtZXJnZShVTlJFU0VSVkVEJCQsIFNVQl9ERUxJTVMkJCwgXCJbXFxcXDpcXFxcQF1cIikpLFxuXHRcdFNFR01FTlQkID0gc3ViZXhwKFBDSEFSJCArIFwiKlwiKSxcblx0XHRTRUdNRU5UX05aJCA9IHN1YmV4cChQQ0hBUiQgKyBcIitcIiksXG5cdFx0U0VHTUVOVF9OWl9OQyQgPSBzdWJleHAoc3ViZXhwKFBDVF9FTkNPREVEJCArIFwifFwiICsgbWVyZ2UoVU5SRVNFUlZFRCQkLCBTVUJfREVMSU1TJCQsIFwiW1xcXFxAXVwiKSkgKyBcIitcIiksXG5cdFx0UEFUSF9BQkVNUFRZJCA9IHN1YmV4cChzdWJleHAoXCJcXFxcL1wiICsgU0VHTUVOVCQpICsgXCIqXCIpLFxuXHRcdFBBVEhfQUJTT0xVVEUkID0gc3ViZXhwKFwiXFxcXC9cIiArIHN1YmV4cChTRUdNRU5UX05aJCArIFBBVEhfQUJFTVBUWSQpICsgXCI/XCIpLCAgLy9zaW1wbGlmaWVkXG5cdFx0UEFUSF9OT1NDSEVNRSQgPSBzdWJleHAoU0VHTUVOVF9OWl9OQyQgKyBQQVRIX0FCRU1QVFkkKSwgIC8vc2ltcGxpZmllZFxuXHRcdFBBVEhfUk9PVExFU1MkID0gc3ViZXhwKFNFR01FTlRfTlokICsgUEFUSF9BQkVNUFRZJCksICAvL3NpbXBsaWZpZWRcblx0XHRQQVRIX0VNUFRZJCA9IFwiKD8hXCIgKyBQQ0hBUiQgKyBcIilcIixcblx0XHRQQVRIJCA9IHN1YmV4cChQQVRIX0FCRU1QVFkkICsgXCJ8XCIgKyBQQVRIX0FCU09MVVRFJCArIFwifFwiICsgUEFUSF9OT1NDSEVNRSQgKyBcInxcIiArIFBBVEhfUk9PVExFU1MkICsgXCJ8XCIgKyBQQVRIX0VNUFRZJCksXG5cdFx0UVVFUlkkID0gc3ViZXhwKHN1YmV4cChQQ0hBUiQgKyBcInxcIiArIG1lcmdlKFwiW1xcXFwvXFxcXD9dXCIsIElQUklWQVRFJCQpKSArIFwiKlwiKSxcblx0XHRGUkFHTUVOVCQgPSBzdWJleHAoc3ViZXhwKFBDSEFSJCArIFwifFtcXFxcL1xcXFw/XVwiKSArIFwiKlwiKSxcblx0XHRISUVSX1BBUlQkID0gc3ViZXhwKHN1YmV4cChcIlxcXFwvXFxcXC9cIiArIEFVVEhPUklUWSQgKyBQQVRIX0FCRU1QVFkkKSArIFwifFwiICsgUEFUSF9BQlNPTFVURSQgKyBcInxcIiArIFBBVEhfUk9PVExFU1MkICsgXCJ8XCIgKyBQQVRIX0VNUFRZJCksXG5cdFx0VVJJJCA9IHN1YmV4cChTQ0hFTUUkICsgXCJcXFxcOlwiICsgSElFUl9QQVJUJCArIHN1YmV4cChcIlxcXFw/XCIgKyBRVUVSWSQpICsgXCI/XCIgKyBzdWJleHAoXCJcXFxcI1wiICsgRlJBR01FTlQkKSArIFwiP1wiKSxcblx0XHRSRUxBVElWRV9QQVJUJCA9IHN1YmV4cChzdWJleHAoXCJcXFxcL1xcXFwvXCIgKyBBVVRIT1JJVFkkICsgUEFUSF9BQkVNUFRZJCkgKyBcInxcIiArIFBBVEhfQUJTT0xVVEUkICsgXCJ8XCIgKyBQQVRIX05PU0NIRU1FJCArIFwifFwiICsgUEFUSF9FTVBUWSQpLFxuXHRcdFJFTEFUSVZFJCA9IHN1YmV4cChSRUxBVElWRV9QQVJUJCArIHN1YmV4cChcIlxcXFw/XCIgKyBRVUVSWSQpICsgXCI/XCIgKyBzdWJleHAoXCJcXFxcI1wiICsgRlJBR01FTlQkKSArIFwiP1wiKSxcblx0XHRVUklfUkVGRVJFTkNFJCA9IHN1YmV4cChVUkkkICsgXCJ8XCIgKyBSRUxBVElWRSQpLFxuXHRcdEFCU09MVVRFX1VSSSQgPSBzdWJleHAoU0NIRU1FJCArIFwiXFxcXDpcIiArIEhJRVJfUEFSVCQgKyBzdWJleHAoXCJcXFxcP1wiICsgUVVFUlkkKSArIFwiP1wiKSxcblxuXHRcdEdFTkVSSUNfUkVGJCA9IFwiXihcIiArIFNDSEVNRSQgKyBcIilcXFxcOlwiICsgc3ViZXhwKHN1YmV4cChcIlxcXFwvXFxcXC8oXCIgKyBzdWJleHAoXCIoXCIgKyBVU0VSSU5GTyQgKyBcIilAXCIpICsgXCI/KFwiICsgSE9TVCQgKyBcIilcIiArIHN1YmV4cChcIlxcXFw6KFwiICsgUE9SVCQgKyBcIilcIikgKyBcIj8pXCIpICsgXCI/KFwiICsgUEFUSF9BQkVNUFRZJCArIFwifFwiICsgUEFUSF9BQlNPTFVURSQgKyBcInxcIiArIFBBVEhfUk9PVExFU1MkICsgXCJ8XCIgKyBQQVRIX0VNUFRZJCArIFwiKVwiKSArIHN1YmV4cChcIlxcXFw/KFwiICsgUVVFUlkkICsgXCIpXCIpICsgXCI/XCIgKyBzdWJleHAoXCJcXFxcIyhcIiArIEZSQUdNRU5UJCArIFwiKVwiKSArIFwiPyRcIixcblx0XHRSRUxBVElWRV9SRUYkID0gXCJeKCl7MH1cIiArIHN1YmV4cChzdWJleHAoXCJcXFxcL1xcXFwvKFwiICsgc3ViZXhwKFwiKFwiICsgVVNFUklORk8kICsgXCIpQFwiKSArIFwiPyhcIiArIEhPU1QkICsgXCIpXCIgKyBzdWJleHAoXCJcXFxcOihcIiArIFBPUlQkICsgXCIpXCIpICsgXCI/KVwiKSArIFwiPyhcIiArIFBBVEhfQUJFTVBUWSQgKyBcInxcIiArIFBBVEhfQUJTT0xVVEUkICsgXCJ8XCIgKyBQQVRIX05PU0NIRU1FJCArIFwifFwiICsgUEFUSF9FTVBUWSQgKyBcIilcIikgKyBzdWJleHAoXCJcXFxcPyhcIiArIFFVRVJZJCArIFwiKVwiKSArIFwiP1wiICsgc3ViZXhwKFwiXFxcXCMoXCIgKyBGUkFHTUVOVCQgKyBcIilcIikgKyBcIj8kXCIsXG5cdFx0QUJTT0xVVEVfUkVGJCA9IFwiXihcIiArIFNDSEVNRSQgKyBcIilcXFxcOlwiICsgc3ViZXhwKHN1YmV4cChcIlxcXFwvXFxcXC8oXCIgKyBzdWJleHAoXCIoXCIgKyBVU0VSSU5GTyQgKyBcIilAXCIpICsgXCI/KFwiICsgSE9TVCQgKyBcIilcIiArIHN1YmV4cChcIlxcXFw6KFwiICsgUE9SVCQgKyBcIilcIikgKyBcIj8pXCIpICsgXCI/KFwiICsgUEFUSF9BQkVNUFRZJCArIFwifFwiICsgUEFUSF9BQlNPTFVURSQgKyBcInxcIiArIFBBVEhfUk9PVExFU1MkICsgXCJ8XCIgKyBQQVRIX0VNUFRZJCArIFwiKVwiKSArIHN1YmV4cChcIlxcXFw/KFwiICsgUVVFUlkkICsgXCIpXCIpICsgXCI/JFwiLFxuXHRcdFNBTUVET0NfUkVGJCA9IFwiXlwiICsgc3ViZXhwKFwiXFxcXCMoXCIgKyBGUkFHTUVOVCQgKyBcIilcIikgKyBcIj8kXCIsXG5cdFx0QVVUSE9SSVRZX1JFRiQgPSBcIl5cIiArIHN1YmV4cChcIihcIiArIFVTRVJJTkZPJCArIFwiKUBcIikgKyBcIj8oXCIgKyBIT1NUJCArIFwiKVwiICsgc3ViZXhwKFwiXFxcXDooXCIgKyBQT1JUJCArIFwiKVwiKSArIFwiPyRcIlxuXHQ7XG5cblx0cmV0dXJuIHtcblx0XHROT1RfU0NIRU1FIDogbmV3IFJlZ0V4cChtZXJnZShcIlteXVwiLCBBTFBIQSQkLCBESUdJVCQkLCBcIltcXFxcK1xcXFwtXFxcXC5dXCIpLCBcImdcIiksXG5cdFx0Tk9UX1VTRVJJTkZPIDogbmV3IFJlZ0V4cChtZXJnZShcIlteXFxcXCVcXFxcOl1cIiwgVU5SRVNFUlZFRCQkLCBTVUJfREVMSU1TJCQpLCBcImdcIiksXG5cdFx0Tk9UX0hPU1QgOiBuZXcgUmVnRXhwKG1lcmdlKFwiW15cXFxcJVxcXFxbXFxcXF1cXFxcOl1cIiwgVU5SRVNFUlZFRCQkLCBTVUJfREVMSU1TJCQpLCBcImdcIiksXG5cdFx0Tk9UX1BBVEggOiBuZXcgUmVnRXhwKG1lcmdlKFwiW15cXFxcJVxcXFwvXFxcXDpcXFxcQF1cIiwgVU5SRVNFUlZFRCQkLCBTVUJfREVMSU1TJCQpLCBcImdcIiksXG5cdFx0Tk9UX1BBVEhfTk9TQ0hFTUUgOiBuZXcgUmVnRXhwKG1lcmdlKFwiW15cXFxcJVxcXFwvXFxcXEBdXCIsIFVOUkVTRVJWRUQkJCwgU1VCX0RFTElNUyQkKSwgXCJnXCIpLFxuXHRcdE5PVF9RVUVSWSA6IG5ldyBSZWdFeHAobWVyZ2UoXCJbXlxcXFwlXVwiLCBVTlJFU0VSVkVEJCQsIFNVQl9ERUxJTVMkJCwgXCJbXFxcXDpcXFxcQFxcXFwvXFxcXD9dXCIsIElQUklWQVRFJCQpLCBcImdcIiksXG5cdFx0Tk9UX0ZSQUdNRU5UIDogbmV3IFJlZ0V4cChtZXJnZShcIlteXFxcXCVdXCIsIFVOUkVTRVJWRUQkJCwgU1VCX0RFTElNUyQkLCBcIltcXFxcOlxcXFxAXFxcXC9cXFxcP11cIiksIFwiZ1wiKSxcblx0XHRFU0NBUEUgOiBuZXcgUmVnRXhwKG1lcmdlKFwiW15dXCIsIFVOUkVTRVJWRUQkJCwgU1VCX0RFTElNUyQkKSwgXCJnXCIpLFxuXHRcdFVOUkVTRVJWRUQgOiBuZXcgUmVnRXhwKFVOUkVTRVJWRUQkJCwgXCJnXCIpLFxuXHRcdE9USEVSX0NIQVJTIDogbmV3IFJlZ0V4cChtZXJnZShcIlteXFxcXCVdXCIsIFVOUkVTRVJWRUQkJCwgUkVTRVJWRUQkJCksIFwiZ1wiKSxcblx0XHRQQ1RfRU5DT0RFRCA6IG5ldyBSZWdFeHAoUENUX0VOQ09ERUQkLCBcImdcIiksXG5cdFx0SVBWNEFERFJFU1MgOiBuZXcgUmVnRXhwKFwiXihcIiArIElQVjRBRERSRVNTJCArIFwiKSRcIiksXG5cdFx0SVBWNkFERFJFU1MgOiBuZXcgUmVnRXhwKFwiXlxcXFxbPyhcIiArIElQVjZBRERSRVNTJCArIFwiKVwiICsgc3ViZXhwKHN1YmV4cChcIlxcXFwlMjV8XFxcXCUoPyFcIiArIEhFWERJRyQkICsgXCJ7Mn0pXCIpICsgXCIoXCIgKyBaT05FSUQkICsgXCIpXCIpICsgXCI/XFxcXF0/JFwiKSAgLy9SRkMgNjg3NCwgd2l0aCByZWxheGVkIHBhcnNpbmcgcnVsZXNcblx0fTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRFeHBzKGZhbHNlKTtcbiIsICJleHBvcnQgZnVuY3Rpb24gbWVyZ2UoLi4uc2V0czpBcnJheTxzdHJpbmc+KTpzdHJpbmcge1xuXHRpZiAoc2V0cy5sZW5ndGggPiAxKSB7XG5cdFx0c2V0c1swXSA9IHNldHNbMF0uc2xpY2UoMCwgLTEpO1xuXHRcdGNvbnN0IHhsID0gc2V0cy5sZW5ndGggLSAxO1xuXHRcdGZvciAobGV0IHggPSAxOyB4IDwgeGw7ICsreCkge1xuXHRcdFx0c2V0c1t4XSA9IHNldHNbeF0uc2xpY2UoMSwgLTEpO1xuXHRcdH1cblx0XHRzZXRzW3hsXSA9IHNldHNbeGxdLnNsaWNlKDEpO1xuXHRcdHJldHVybiBzZXRzLmpvaW4oJycpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBzZXRzWzBdO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdWJleHAoc3RyOnN0cmluZyk6c3RyaW5nIHtcblx0cmV0dXJuIFwiKD86XCIgKyBzdHIgKyBcIilcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVPZihvOmFueSk6c3RyaW5nIHtcblx0cmV0dXJuIG8gPT09IHVuZGVmaW5lZCA/IFwidW5kZWZpbmVkXCIgOiAobyA9PT0gbnVsbCA/IFwibnVsbFwiIDogT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNwbGl0KFwiIFwiKS5wb3AoKS5zcGxpdChcIl1cIikuc2hpZnQoKS50b0xvd2VyQ2FzZSgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvVXBwZXJDYXNlKHN0cjpzdHJpbmcpOnN0cmluZyB7XG5cdHJldHVybiBzdHIudG9VcHBlckNhc2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQXJyYXkob2JqOmFueSk6QXJyYXk8YW55PiB7XG5cdHJldHVybiBvYmogIT09IHVuZGVmaW5lZCAmJiBvYmogIT09IG51bGwgPyAob2JqIGluc3RhbmNlb2YgQXJyYXkgPyBvYmogOiAodHlwZW9mIG9iai5sZW5ndGggIT09IFwibnVtYmVyXCIgfHwgb2JqLnNwbGl0IHx8IG9iai5zZXRJbnRlcnZhbCB8fCBvYmouY2FsbCA/IFtvYmpdIDogQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwob2JqKSkpIDogW107XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbih0YXJnZXQ6IG9iamVjdCwgc291cmNlOiBhbnkpOiBhbnkge1xuXHRjb25zdCBvYmogPSB0YXJnZXQgYXMgYW55O1xuXHRpZiAoc291cmNlKSB7XG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XG5cdFx0XHRvYmpba2V5XSA9IHNvdXJjZVtrZXldO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gb2JqO1xufSIsICIndXNlIHN0cmljdCc7XG5cbi8vIGRvIG5vdCBlZGl0IC5qcyBmaWxlcyBkaXJlY3RseSAtIGVkaXQgc3JjL2luZGV4LmpzdFxuXG5cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBlcXVhbChhLCBiKSB7XG4gIGlmIChhID09PSBiKSByZXR1cm4gdHJ1ZTtcblxuICBpZiAoYSAmJiBiICYmIHR5cGVvZiBhID09ICdvYmplY3QnICYmIHR5cGVvZiBiID09ICdvYmplY3QnKSB7XG4gICAgaWYgKGEuY29uc3RydWN0b3IgIT09IGIuY29uc3RydWN0b3IpIHJldHVybiBmYWxzZTtcblxuICAgIHZhciBsZW5ndGgsIGksIGtleXM7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHtcbiAgICAgIGxlbmd0aCA9IGEubGVuZ3RoO1xuICAgICAgaWYgKGxlbmd0aCAhPSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KVxuICAgICAgICBpZiAoIWVxdWFsKGFbaV0sIGJbaV0pKSByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cblxuXG4gICAgaWYgKGEuY29uc3RydWN0b3IgPT09IFJlZ0V4cCkgcmV0dXJuIGEuc291cmNlID09PSBiLnNvdXJjZSAmJiBhLmZsYWdzID09PSBiLmZsYWdzO1xuICAgIGlmIChhLnZhbHVlT2YgIT09IE9iamVjdC5wcm90b3R5cGUudmFsdWVPZikgcmV0dXJuIGEudmFsdWVPZigpID09PSBiLnZhbHVlT2YoKTtcbiAgICBpZiAoYS50b1N0cmluZyAhPT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZykgcmV0dXJuIGEudG9TdHJpbmcoKSA9PT0gYi50b1N0cmluZygpO1xuXG4gICAga2V5cyA9IE9iamVjdC5rZXlzKGEpO1xuICAgIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICAgIGlmIChsZW5ndGggIT09IE9iamVjdC5rZXlzKGIpLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KVxuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwga2V5c1tpXSkpIHJldHVybiBmYWxzZTtcblxuICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOykge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV07XG5cbiAgICAgIGlmICghZXF1YWwoYVtrZXldLCBiW2tleV0pKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyB0cnVlIGlmIGJvdGggTmFOLCBmYWxzZSBvdGhlcndpc2VcbiAgcmV0dXJuIGEhPT1hICYmIGIhPT1iO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8vIGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9qYXZhc2NyaXB0LWVuY29kaW5nXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYmVzdGllanMvcHVueWNvZGUuanMgLSBwdW55Y29kZS51Y3MyLmRlY29kZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiB1Y3MybGVuZ3RoKHN0cikge1xuICB2YXIgbGVuZ3RoID0gMFxuICAgICwgbGVuID0gc3RyLmxlbmd0aFxuICAgICwgcG9zID0gMFxuICAgICwgdmFsdWU7XG4gIHdoaWxlIChwb3MgPCBsZW4pIHtcbiAgICBsZW5ndGgrKztcbiAgICB2YWx1ZSA9IHN0ci5jaGFyQ29kZUF0KHBvcysrKTtcbiAgICBpZiAodmFsdWUgPj0gMHhEODAwICYmIHZhbHVlIDw9IDB4REJGRiAmJiBwb3MgPCBsZW4pIHtcbiAgICAgIC8vIGhpZ2ggc3Vycm9nYXRlLCBhbmQgdGhlcmUgaXMgYSBuZXh0IGNoYXJhY3RlclxuICAgICAgdmFsdWUgPSBzdHIuY2hhckNvZGVBdChwb3MpO1xuICAgICAgaWYgKCh2YWx1ZSAmIDB4RkMwMCkgPT0gMHhEQzAwKSBwb3MrKzsgLy8gbG93IHN1cnJvZ2F0ZVxuICAgIH1cbiAgfVxuICByZXR1cm4gbGVuZ3RoO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGNvcHk6IGNvcHksXG4gIGNoZWNrRGF0YVR5cGU6IGNoZWNrRGF0YVR5cGUsXG4gIGNoZWNrRGF0YVR5cGVzOiBjaGVja0RhdGFUeXBlcyxcbiAgY29lcmNlVG9UeXBlczogY29lcmNlVG9UeXBlcyxcbiAgdG9IYXNoOiB0b0hhc2gsXG4gIGdldFByb3BlcnR5OiBnZXRQcm9wZXJ0eSxcbiAgZXNjYXBlUXVvdGVzOiBlc2NhcGVRdW90ZXMsXG4gIGVxdWFsOiByZXF1aXJlKCdmYXN0LWRlZXAtZXF1YWwnKSxcbiAgdWNzMmxlbmd0aDogcmVxdWlyZSgnLi91Y3MybGVuZ3RoJyksXG4gIHZhck9jY3VyZW5jZXM6IHZhck9jY3VyZW5jZXMsXG4gIHZhclJlcGxhY2U6IHZhclJlcGxhY2UsXG4gIHNjaGVtYUhhc1J1bGVzOiBzY2hlbWFIYXNSdWxlcyxcbiAgc2NoZW1hSGFzUnVsZXNFeGNlcHQ6IHNjaGVtYUhhc1J1bGVzRXhjZXB0LFxuICBzY2hlbWFVbmtub3duUnVsZXM6IHNjaGVtYVVua25vd25SdWxlcyxcbiAgdG9RdW90ZWRTdHJpbmc6IHRvUXVvdGVkU3RyaW5nLFxuICBnZXRQYXRoRXhwcjogZ2V0UGF0aEV4cHIsXG4gIGdldFBhdGg6IGdldFBhdGgsXG4gIGdldERhdGE6IGdldERhdGEsXG4gIHVuZXNjYXBlRnJhZ21lbnQ6IHVuZXNjYXBlRnJhZ21lbnQsXG4gIHVuZXNjYXBlSnNvblBvaW50ZXI6IHVuZXNjYXBlSnNvblBvaW50ZXIsXG4gIGVzY2FwZUZyYWdtZW50OiBlc2NhcGVGcmFnbWVudCxcbiAgZXNjYXBlSnNvblBvaW50ZXI6IGVzY2FwZUpzb25Qb2ludGVyXG59O1xuXG5cbmZ1bmN0aW9uIGNvcHkobywgdG8pIHtcbiAgdG8gPSB0byB8fCB7fTtcbiAgZm9yICh2YXIga2V5IGluIG8pIHRvW2tleV0gPSBvW2tleV07XG4gIHJldHVybiB0bztcbn1cblxuXG5mdW5jdGlvbiBjaGVja0RhdGFUeXBlKGRhdGFUeXBlLCBkYXRhLCBzdHJpY3ROdW1iZXJzLCBuZWdhdGUpIHtcbiAgdmFyIEVRVUFMID0gbmVnYXRlID8gJyAhPT0gJyA6ICcgPT09ICdcbiAgICAsIEFORCA9IG5lZ2F0ZSA/ICcgfHwgJyA6ICcgJiYgJ1xuICAgICwgT0sgPSBuZWdhdGUgPyAnIScgOiAnJ1xuICAgICwgTk9UID0gbmVnYXRlID8gJycgOiAnISc7XG4gIHN3aXRjaCAoZGF0YVR5cGUpIHtcbiAgICBjYXNlICdudWxsJzogcmV0dXJuIGRhdGEgKyBFUVVBTCArICdudWxsJztcbiAgICBjYXNlICdhcnJheSc6IHJldHVybiBPSyArICdBcnJheS5pc0FycmF5KCcgKyBkYXRhICsgJyknO1xuICAgIGNhc2UgJ29iamVjdCc6IHJldHVybiAnKCcgKyBPSyArIGRhdGEgKyBBTkQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZW9mICcgKyBkYXRhICsgRVFVQUwgKyAnXCJvYmplY3RcIicgKyBBTkQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICBOT1QgKyAnQXJyYXkuaXNBcnJheSgnICsgZGF0YSArICcpKSc7XG4gICAgY2FzZSAnaW50ZWdlcic6IHJldHVybiAnKHR5cGVvZiAnICsgZGF0YSArIEVRVUFMICsgJ1wibnVtYmVyXCInICsgQU5EICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PVCArICcoJyArIGRhdGEgKyAnICUgMSknICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIEFORCArIGRhdGEgKyBFUVVBTCArIGRhdGEgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmljdE51bWJlcnMgPyAoQU5EICsgT0sgKyAnaXNGaW5pdGUoJyArIGRhdGEgKyAnKScpIDogJycpICsgJyknO1xuICAgIGNhc2UgJ251bWJlcic6IHJldHVybiAnKHR5cGVvZiAnICsgZGF0YSArIEVRVUFMICsgJ1wiJyArIGRhdGFUeXBlICsgJ1wiJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpY3ROdW1iZXJzID8gKEFORCArIE9LICsgJ2lzRmluaXRlKCcgKyBkYXRhICsgJyknKSA6ICcnKSArICcpJztcbiAgICBkZWZhdWx0OiByZXR1cm4gJ3R5cGVvZiAnICsgZGF0YSArIEVRVUFMICsgJ1wiJyArIGRhdGFUeXBlICsgJ1wiJztcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIGNoZWNrRGF0YVR5cGVzKGRhdGFUeXBlcywgZGF0YSwgc3RyaWN0TnVtYmVycykge1xuICBzd2l0Y2ggKGRhdGFUeXBlcy5sZW5ndGgpIHtcbiAgICBjYXNlIDE6IHJldHVybiBjaGVja0RhdGFUeXBlKGRhdGFUeXBlc1swXSwgZGF0YSwgc3RyaWN0TnVtYmVycywgdHJ1ZSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHZhciBjb2RlID0gJyc7XG4gICAgICB2YXIgdHlwZXMgPSB0b0hhc2goZGF0YVR5cGVzKTtcbiAgICAgIGlmICh0eXBlcy5hcnJheSAmJiB0eXBlcy5vYmplY3QpIHtcbiAgICAgICAgY29kZSA9IHR5cGVzLm51bGwgPyAnKCc6ICcoIScgKyBkYXRhICsgJyB8fCAnO1xuICAgICAgICBjb2RlICs9ICd0eXBlb2YgJyArIGRhdGEgKyAnICE9PSBcIm9iamVjdFwiKSc7XG4gICAgICAgIGRlbGV0ZSB0eXBlcy5udWxsO1xuICAgICAgICBkZWxldGUgdHlwZXMuYXJyYXk7XG4gICAgICAgIGRlbGV0ZSB0eXBlcy5vYmplY3Q7XG4gICAgICB9XG4gICAgICBpZiAodHlwZXMubnVtYmVyKSBkZWxldGUgdHlwZXMuaW50ZWdlcjtcbiAgICAgIGZvciAodmFyIHQgaW4gdHlwZXMpXG4gICAgICAgIGNvZGUgKz0gKGNvZGUgPyAnICYmICcgOiAnJyApICsgY2hlY2tEYXRhVHlwZSh0LCBkYXRhLCBzdHJpY3ROdW1iZXJzLCB0cnVlKTtcblxuICAgICAgcmV0dXJuIGNvZGU7XG4gIH1cbn1cblxuXG52YXIgQ09FUkNFX1RPX1RZUEVTID0gdG9IYXNoKFsgJ3N0cmluZycsICdudW1iZXInLCAnaW50ZWdlcicsICdib29sZWFuJywgJ251bGwnIF0pO1xuZnVuY3Rpb24gY29lcmNlVG9UeXBlcyhvcHRpb25Db2VyY2VUeXBlcywgZGF0YVR5cGVzKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGRhdGFUeXBlcykpIHtcbiAgICB2YXIgdHlwZXMgPSBbXTtcbiAgICBmb3IgKHZhciBpPTA7IGk8ZGF0YVR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdCA9IGRhdGFUeXBlc1tpXTtcbiAgICAgIGlmIChDT0VSQ0VfVE9fVFlQRVNbdF0pIHR5cGVzW3R5cGVzLmxlbmd0aF0gPSB0O1xuICAgICAgZWxzZSBpZiAob3B0aW9uQ29lcmNlVHlwZXMgPT09ICdhcnJheScgJiYgdCA9PT0gJ2FycmF5JykgdHlwZXNbdHlwZXMubGVuZ3RoXSA9IHQ7XG4gICAgfVxuICAgIGlmICh0eXBlcy5sZW5ndGgpIHJldHVybiB0eXBlcztcbiAgfSBlbHNlIGlmIChDT0VSQ0VfVE9fVFlQRVNbZGF0YVR5cGVzXSkge1xuICAgIHJldHVybiBbZGF0YVR5cGVzXTtcbiAgfSBlbHNlIGlmIChvcHRpb25Db2VyY2VUeXBlcyA9PT0gJ2FycmF5JyAmJiBkYXRhVHlwZXMgPT09ICdhcnJheScpIHtcbiAgICByZXR1cm4gWydhcnJheSddO1xuICB9XG59XG5cblxuZnVuY3Rpb24gdG9IYXNoKGFycikge1xuICB2YXIgaGFzaCA9IHt9O1xuICBmb3IgKHZhciBpPTA7IGk8YXJyLmxlbmd0aDsgaSsrKSBoYXNoW2FycltpXV0gPSB0cnVlO1xuICByZXR1cm4gaGFzaDtcbn1cblxuXG52YXIgSURFTlRJRklFUiA9IC9eW2EteiRfXVthLXokXzAtOV0qJC9pO1xudmFyIFNJTkdMRV9RVU9URSA9IC8nfFxcXFwvZztcbmZ1bmN0aW9uIGdldFByb3BlcnR5KGtleSkge1xuICByZXR1cm4gdHlwZW9mIGtleSA9PSAnbnVtYmVyJ1xuICAgICAgICAgID8gJ1snICsga2V5ICsgJ10nXG4gICAgICAgICAgOiBJREVOVElGSUVSLnRlc3Qoa2V5KVxuICAgICAgICAgICAgPyAnLicgKyBrZXlcbiAgICAgICAgICAgIDogXCJbJ1wiICsgZXNjYXBlUXVvdGVzKGtleSkgKyBcIiddXCI7XG59XG5cblxuZnVuY3Rpb24gZXNjYXBlUXVvdGVzKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoU0lOR0xFX1FVT1RFLCAnXFxcXCQmJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXG4vZywgJ1xcXFxuJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXHIvZywgJ1xcXFxyJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGYvZywgJ1xcXFxmJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXHQvZywgJ1xcXFx0Jyk7XG59XG5cblxuZnVuY3Rpb24gdmFyT2NjdXJlbmNlcyhzdHIsIGRhdGFWYXIpIHtcbiAgZGF0YVZhciArPSAnW14wLTldJztcbiAgdmFyIG1hdGNoZXMgPSBzdHIubWF0Y2gobmV3IFJlZ0V4cChkYXRhVmFyLCAnZycpKTtcbiAgcmV0dXJuIG1hdGNoZXMgPyBtYXRjaGVzLmxlbmd0aCA6IDA7XG59XG5cblxuZnVuY3Rpb24gdmFyUmVwbGFjZShzdHIsIGRhdGFWYXIsIGV4cHIpIHtcbiAgZGF0YVZhciArPSAnKFteMC05XSknO1xuICBleHByID0gZXhwci5yZXBsYWNlKC9cXCQvZywgJyQkJCQnKTtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoZGF0YVZhciwgJ2cnKSwgZXhwciArICckMScpO1xufVxuXG5cbmZ1bmN0aW9uIHNjaGVtYUhhc1J1bGVzKHNjaGVtYSwgcnVsZXMpIHtcbiAgaWYgKHR5cGVvZiBzY2hlbWEgPT0gJ2Jvb2xlYW4nKSByZXR1cm4gIXNjaGVtYTtcbiAgZm9yICh2YXIga2V5IGluIHNjaGVtYSkgaWYgKHJ1bGVzW2tleV0pIHJldHVybiB0cnVlO1xufVxuXG5cbmZ1bmN0aW9uIHNjaGVtYUhhc1J1bGVzRXhjZXB0KHNjaGVtYSwgcnVsZXMsIGV4Y2VwdEtleXdvcmQpIHtcbiAgaWYgKHR5cGVvZiBzY2hlbWEgPT0gJ2Jvb2xlYW4nKSByZXR1cm4gIXNjaGVtYSAmJiBleGNlcHRLZXl3b3JkICE9ICdub3QnO1xuICBmb3IgKHZhciBrZXkgaW4gc2NoZW1hKSBpZiAoa2V5ICE9IGV4Y2VwdEtleXdvcmQgJiYgcnVsZXNba2V5XSkgcmV0dXJuIHRydWU7XG59XG5cblxuZnVuY3Rpb24gc2NoZW1hVW5rbm93blJ1bGVzKHNjaGVtYSwgcnVsZXMpIHtcbiAgaWYgKHR5cGVvZiBzY2hlbWEgPT0gJ2Jvb2xlYW4nKSByZXR1cm47XG4gIGZvciAodmFyIGtleSBpbiBzY2hlbWEpIGlmICghcnVsZXNba2V5XSkgcmV0dXJuIGtleTtcbn1cblxuXG5mdW5jdGlvbiB0b1F1b3RlZFN0cmluZyhzdHIpIHtcbiAgcmV0dXJuICdcXCcnICsgZXNjYXBlUXVvdGVzKHN0cikgKyAnXFwnJztcbn1cblxuXG5mdW5jdGlvbiBnZXRQYXRoRXhwcihjdXJyZW50UGF0aCwgZXhwciwganNvblBvaW50ZXJzLCBpc051bWJlcikge1xuICB2YXIgcGF0aCA9IGpzb25Qb2ludGVycyAvLyBmYWxzZSBieSBkZWZhdWx0XG4gICAgICAgICAgICAgID8gJ1xcJy9cXCcgKyAnICsgZXhwciArIChpc051bWJlciA/ICcnIDogJy5yZXBsYWNlKC9+L2csIFxcJ34wXFwnKS5yZXBsYWNlKC9cXFxcLy9nLCBcXCd+MVxcJyknKVxuICAgICAgICAgICAgICA6IChpc051bWJlciA/ICdcXCdbXFwnICsgJyArIGV4cHIgKyAnICsgXFwnXVxcJycgOiAnXFwnW1xcXFxcXCdcXCcgKyAnICsgZXhwciArICcgKyBcXCdcXFxcXFwnXVxcJycpO1xuICByZXR1cm4gam9pblBhdGhzKGN1cnJlbnRQYXRoLCBwYXRoKTtcbn1cblxuXG5mdW5jdGlvbiBnZXRQYXRoKGN1cnJlbnRQYXRoLCBwcm9wLCBqc29uUG9pbnRlcnMpIHtcbiAgdmFyIHBhdGggPSBqc29uUG9pbnRlcnMgLy8gZmFsc2UgYnkgZGVmYXVsdFxuICAgICAgICAgICAgICA/IHRvUXVvdGVkU3RyaW5nKCcvJyArIGVzY2FwZUpzb25Qb2ludGVyKHByb3ApKVxuICAgICAgICAgICAgICA6IHRvUXVvdGVkU3RyaW5nKGdldFByb3BlcnR5KHByb3ApKTtcbiAgcmV0dXJuIGpvaW5QYXRocyhjdXJyZW50UGF0aCwgcGF0aCk7XG59XG5cblxudmFyIEpTT05fUE9JTlRFUiA9IC9eXFwvKD86W15+XXx+MHx+MSkqJC87XG52YXIgUkVMQVRJVkVfSlNPTl9QT0lOVEVSID0gL14oWzAtOV0rKSgjfFxcLyg/Oltefl18fjB8fjEpKik/JC87XG5mdW5jdGlvbiBnZXREYXRhKCRkYXRhLCBsdmwsIHBhdGhzKSB7XG4gIHZhciB1cCwganNvblBvaW50ZXIsIGRhdGEsIG1hdGNoZXM7XG4gIGlmICgkZGF0YSA9PT0gJycpIHJldHVybiAncm9vdERhdGEnO1xuICBpZiAoJGRhdGFbMF0gPT0gJy8nKSB7XG4gICAgaWYgKCFKU09OX1BPSU5URVIudGVzdCgkZGF0YSkpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBKU09OLXBvaW50ZXI6ICcgKyAkZGF0YSk7XG4gICAganNvblBvaW50ZXIgPSAkZGF0YTtcbiAgICBkYXRhID0gJ3Jvb3REYXRhJztcbiAgfSBlbHNlIHtcbiAgICBtYXRjaGVzID0gJGRhdGEubWF0Y2goUkVMQVRJVkVfSlNPTl9QT0lOVEVSKTtcbiAgICBpZiAoIW1hdGNoZXMpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBKU09OLXBvaW50ZXI6ICcgKyAkZGF0YSk7XG4gICAgdXAgPSArbWF0Y2hlc1sxXTtcbiAgICBqc29uUG9pbnRlciA9IG1hdGNoZXNbMl07XG4gICAgaWYgKGpzb25Qb2ludGVyID09ICcjJykge1xuICAgICAgaWYgKHVwID49IGx2bCkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYWNjZXNzIHByb3BlcnR5L2luZGV4ICcgKyB1cCArICcgbGV2ZWxzIHVwLCBjdXJyZW50IGxldmVsIGlzICcgKyBsdmwpO1xuICAgICAgcmV0dXJuIHBhdGhzW2x2bCAtIHVwXTtcbiAgICB9XG5cbiAgICBpZiAodXAgPiBsdmwpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGFjY2VzcyBkYXRhICcgKyB1cCArICcgbGV2ZWxzIHVwLCBjdXJyZW50IGxldmVsIGlzICcgKyBsdmwpO1xuICAgIGRhdGEgPSAnZGF0YScgKyAoKGx2bCAtIHVwKSB8fCAnJyk7XG4gICAgaWYgKCFqc29uUG9pbnRlcikgcmV0dXJuIGRhdGE7XG4gIH1cblxuICB2YXIgZXhwciA9IGRhdGE7XG4gIHZhciBzZWdtZW50cyA9IGpzb25Qb2ludGVyLnNwbGl0KCcvJyk7XG4gIGZvciAodmFyIGk9MDsgaTxzZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzZWdtZW50ID0gc2VnbWVudHNbaV07XG4gICAgaWYgKHNlZ21lbnQpIHtcbiAgICAgIGRhdGEgKz0gZ2V0UHJvcGVydHkodW5lc2NhcGVKc29uUG9pbnRlcihzZWdtZW50KSk7XG4gICAgICBleHByICs9ICcgJiYgJyArIGRhdGE7XG4gICAgfVxuICB9XG4gIHJldHVybiBleHByO1xufVxuXG5cbmZ1bmN0aW9uIGpvaW5QYXRocyAoYSwgYikge1xuICBpZiAoYSA9PSAnXCJcIicpIHJldHVybiBiO1xuICByZXR1cm4gKGEgKyAnICsgJyArIGIpLnJlcGxhY2UoLyhbXlxcXFxdKScgXFwrICcvZywgJyQxJyk7XG59XG5cblxuZnVuY3Rpb24gdW5lc2NhcGVGcmFnbWVudChzdHIpIHtcbiAgcmV0dXJuIHVuZXNjYXBlSnNvblBvaW50ZXIoZGVjb2RlVVJJQ29tcG9uZW50KHN0cikpO1xufVxuXG5cbmZ1bmN0aW9uIGVzY2FwZUZyYWdtZW50KHN0cikge1xuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGVzY2FwZUpzb25Qb2ludGVyKHN0cikpO1xufVxuXG5cbmZ1bmN0aW9uIGVzY2FwZUpzb25Qb2ludGVyKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoL34vZywgJ34wJykucmVwbGFjZSgvXFwvL2csICd+MScpO1xufVxuXG5cbmZ1bmN0aW9uIHVuZXNjYXBlSnNvblBvaW50ZXIoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvfjEvZywgJy8nKS5yZXBsYWNlKC9+MC9nLCAnficpO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBTY2hlbWFPYmplY3Q7XG5cbmZ1bmN0aW9uIFNjaGVtYU9iamVjdChvYmopIHtcbiAgdXRpbC5jb3B5KG9iaiwgdGhpcyk7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdHJhdmVyc2UgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChzY2hlbWEsIG9wdHMsIGNiKSB7XG4gIC8vIExlZ2FjeSBzdXBwb3J0IGZvciB2MC4zLjEgYW5kIGVhcmxpZXIuXG4gIGlmICh0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKSB7XG4gICAgY2IgPSBvcHRzO1xuICAgIG9wdHMgPSB7fTtcbiAgfVxuXG4gIGNiID0gb3B0cy5jYiB8fCBjYjtcbiAgdmFyIHByZSA9ICh0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykgPyBjYiA6IGNiLnByZSB8fCBmdW5jdGlvbigpIHt9O1xuICB2YXIgcG9zdCA9IGNiLnBvc3QgfHwgZnVuY3Rpb24oKSB7fTtcblxuICBfdHJhdmVyc2Uob3B0cywgcHJlLCBwb3N0LCBzY2hlbWEsICcnLCBzY2hlbWEpO1xufTtcblxuXG50cmF2ZXJzZS5rZXl3b3JkcyA9IHtcbiAgYWRkaXRpb25hbEl0ZW1zOiB0cnVlLFxuICBpdGVtczogdHJ1ZSxcbiAgY29udGFpbnM6IHRydWUsXG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB0cnVlLFxuICBwcm9wZXJ0eU5hbWVzOiB0cnVlLFxuICBub3Q6IHRydWVcbn07XG5cbnRyYXZlcnNlLmFycmF5S2V5d29yZHMgPSB7XG4gIGl0ZW1zOiB0cnVlLFxuICBhbGxPZjogdHJ1ZSxcbiAgYW55T2Y6IHRydWUsXG4gIG9uZU9mOiB0cnVlXG59O1xuXG50cmF2ZXJzZS5wcm9wc0tleXdvcmRzID0ge1xuICBkZWZpbml0aW9uczogdHJ1ZSxcbiAgcHJvcGVydGllczogdHJ1ZSxcbiAgcGF0dGVyblByb3BlcnRpZXM6IHRydWUsXG4gIGRlcGVuZGVuY2llczogdHJ1ZVxufTtcblxudHJhdmVyc2Uuc2tpcEtleXdvcmRzID0ge1xuICBkZWZhdWx0OiB0cnVlLFxuICBlbnVtOiB0cnVlLFxuICBjb25zdDogdHJ1ZSxcbiAgcmVxdWlyZWQ6IHRydWUsXG4gIG1heGltdW06IHRydWUsXG4gIG1pbmltdW06IHRydWUsXG4gIGV4Y2x1c2l2ZU1heGltdW06IHRydWUsXG4gIGV4Y2x1c2l2ZU1pbmltdW06IHRydWUsXG4gIG11bHRpcGxlT2Y6IHRydWUsXG4gIG1heExlbmd0aDogdHJ1ZSxcbiAgbWluTGVuZ3RoOiB0cnVlLFxuICBwYXR0ZXJuOiB0cnVlLFxuICBmb3JtYXQ6IHRydWUsXG4gIG1heEl0ZW1zOiB0cnVlLFxuICBtaW5JdGVtczogdHJ1ZSxcbiAgdW5pcXVlSXRlbXM6IHRydWUsXG4gIG1heFByb3BlcnRpZXM6IHRydWUsXG4gIG1pblByb3BlcnRpZXM6IHRydWVcbn07XG5cblxuZnVuY3Rpb24gX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoZW1hLCBqc29uUHRyLCByb290U2NoZW1hLCBwYXJlbnRKc29uUHRyLCBwYXJlbnRLZXl3b3JkLCBwYXJlbnRTY2hlbWEsIGtleUluZGV4KSB7XG4gIGlmIChzY2hlbWEgJiYgdHlwZW9mIHNjaGVtYSA9PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShzY2hlbWEpKSB7XG4gICAgcHJlKHNjaGVtYSwganNvblB0ciwgcm9vdFNjaGVtYSwgcGFyZW50SnNvblB0ciwgcGFyZW50S2V5d29yZCwgcGFyZW50U2NoZW1hLCBrZXlJbmRleCk7XG4gICAgZm9yICh2YXIga2V5IGluIHNjaGVtYSkge1xuICAgICAgdmFyIHNjaCA9IHNjaGVtYVtrZXldO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoKSkge1xuICAgICAgICBpZiAoa2V5IGluIHRyYXZlcnNlLmFycmF5S2V5d29yZHMpIHtcbiAgICAgICAgICBmb3IgKHZhciBpPTA7IGk8c2NoLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoW2ldLCBqc29uUHRyICsgJy8nICsga2V5ICsgJy8nICsgaSwgcm9vdFNjaGVtYSwganNvblB0ciwga2V5LCBzY2hlbWEsIGkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGtleSBpbiB0cmF2ZXJzZS5wcm9wc0tleXdvcmRzKSB7XG4gICAgICAgIGlmIChzY2ggJiYgdHlwZW9mIHNjaCA9PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gc2NoKVxuICAgICAgICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoW3Byb3BdLCBqc29uUHRyICsgJy8nICsga2V5ICsgJy8nICsgZXNjYXBlSnNvblB0cihwcm9wKSwgcm9vdFNjaGVtYSwganNvblB0ciwga2V5LCBzY2hlbWEsIHByb3ApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGtleSBpbiB0cmF2ZXJzZS5rZXl3b3JkcyB8fCAob3B0cy5hbGxLZXlzICYmICEoa2V5IGluIHRyYXZlcnNlLnNraXBLZXl3b3JkcykpKSB7XG4gICAgICAgIF90cmF2ZXJzZShvcHRzLCBwcmUsIHBvc3QsIHNjaCwganNvblB0ciArICcvJyArIGtleSwgcm9vdFNjaGVtYSwganNvblB0ciwga2V5LCBzY2hlbWEpO1xuICAgICAgfVxuICAgIH1cbiAgICBwb3N0KHNjaGVtYSwganNvblB0ciwgcm9vdFNjaGVtYSwgcGFyZW50SnNvblB0ciwgcGFyZW50S2V5d29yZCwgcGFyZW50U2NoZW1hLCBrZXlJbmRleCk7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBlc2NhcGVKc29uUHRyKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoL34vZywgJ34wJykucmVwbGFjZSgvXFwvL2csICd+MScpO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIFVSSSA9IHJlcXVpcmUoJ3VyaS1qcycpXG4gICwgZXF1YWwgPSByZXF1aXJlKCdmYXN0LWRlZXAtZXF1YWwnKVxuICAsIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKVxuICAsIFNjaGVtYU9iamVjdCA9IHJlcXVpcmUoJy4vc2NoZW1hX29iaicpXG4gICwgdHJhdmVyc2UgPSByZXF1aXJlKCdqc29uLXNjaGVtYS10cmF2ZXJzZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlc29sdmU7XG5cbnJlc29sdmUubm9ybWFsaXplSWQgPSBub3JtYWxpemVJZDtcbnJlc29sdmUuZnVsbFBhdGggPSBnZXRGdWxsUGF0aDtcbnJlc29sdmUudXJsID0gcmVzb2x2ZVVybDtcbnJlc29sdmUuaWRzID0gcmVzb2x2ZUlkcztcbnJlc29sdmUuaW5saW5lUmVmID0gaW5saW5lUmVmO1xucmVzb2x2ZS5zY2hlbWEgPSByZXNvbHZlU2NoZW1hO1xuXG4vKipcbiAqIFtyZXNvbHZlIGFuZCBjb21waWxlIHRoZSByZWZlcmVuY2VzICgkcmVmKV1cbiAqIEB0aGlzICAgQWp2XG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gY29tcGlsZSByZWZlcmVuY2UgdG8gc2NoZW1hIGNvbXBpbGF0aW9uIGZ1bmNpdG9uIChsb2NhbENvbXBpbGUpXG4gKiBAcGFyYW0gIHtPYmplY3R9IHJvb3Qgb2JqZWN0IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJvb3Qgc2NoZW1hIGZvciB0aGUgY3VycmVudCBzY2hlbWFcbiAqIEBwYXJhbSAge1N0cmluZ30gcmVmIHJlZmVyZW5jZSB0byByZXNvbHZlXG4gKiBAcmV0dXJuIHtPYmplY3R8RnVuY3Rpb259IHNjaGVtYSBvYmplY3QgKGlmIHRoZSBzY2hlbWEgY2FuIGJlIGlubGluZWQpIG9yIHZhbGlkYXRpb24gZnVuY3Rpb25cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZShjb21waWxlLCByb290LCByZWYpIHtcbiAgLyoganNoaW50IHZhbGlkdGhpczogdHJ1ZSAqL1xuICB2YXIgcmVmVmFsID0gdGhpcy5fcmVmc1tyZWZdO1xuICBpZiAodHlwZW9mIHJlZlZhbCA9PSAnc3RyaW5nJykge1xuICAgIGlmICh0aGlzLl9yZWZzW3JlZlZhbF0pIHJlZlZhbCA9IHRoaXMuX3JlZnNbcmVmVmFsXTtcbiAgICBlbHNlIHJldHVybiByZXNvbHZlLmNhbGwodGhpcywgY29tcGlsZSwgcm9vdCwgcmVmVmFsKTtcbiAgfVxuXG4gIHJlZlZhbCA9IHJlZlZhbCB8fCB0aGlzLl9zY2hlbWFzW3JlZl07XG4gIGlmIChyZWZWYWwgaW5zdGFuY2VvZiBTY2hlbWFPYmplY3QpIHtcbiAgICByZXR1cm4gaW5saW5lUmVmKHJlZlZhbC5zY2hlbWEsIHRoaXMuX29wdHMuaW5saW5lUmVmcylcbiAgICAgICAgICAgID8gcmVmVmFsLnNjaGVtYVxuICAgICAgICAgICAgOiByZWZWYWwudmFsaWRhdGUgfHwgdGhpcy5fY29tcGlsZShyZWZWYWwpO1xuICB9XG5cbiAgdmFyIHJlcyA9IHJlc29sdmVTY2hlbWEuY2FsbCh0aGlzLCByb290LCByZWYpO1xuICB2YXIgc2NoZW1hLCB2LCBiYXNlSWQ7XG4gIGlmIChyZXMpIHtcbiAgICBzY2hlbWEgPSByZXMuc2NoZW1hO1xuICAgIHJvb3QgPSByZXMucm9vdDtcbiAgICBiYXNlSWQgPSByZXMuYmFzZUlkO1xuICB9XG5cbiAgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIFNjaGVtYU9iamVjdCkge1xuICAgIHYgPSBzY2hlbWEudmFsaWRhdGUgfHwgY29tcGlsZS5jYWxsKHRoaXMsIHNjaGVtYS5zY2hlbWEsIHJvb3QsIHVuZGVmaW5lZCwgYmFzZUlkKTtcbiAgfSBlbHNlIGlmIChzY2hlbWEgIT09IHVuZGVmaW5lZCkge1xuICAgIHYgPSBpbmxpbmVSZWYoc2NoZW1hLCB0aGlzLl9vcHRzLmlubGluZVJlZnMpXG4gICAgICAgID8gc2NoZW1hXG4gICAgICAgIDogY29tcGlsZS5jYWxsKHRoaXMsIHNjaGVtYSwgcm9vdCwgdW5kZWZpbmVkLCBiYXNlSWQpO1xuICB9XG5cbiAgcmV0dXJuIHY7XG59XG5cblxuLyoqXG4gKiBSZXNvbHZlIHNjaGVtYSwgaXRzIHJvb3QgYW5kIGJhc2VJZFxuICogQHRoaXMgQWp2XG4gKiBAcGFyYW0gIHtPYmplY3R9IHJvb3Qgcm9vdCBvYmplY3Qgd2l0aCBwcm9wZXJ0aWVzIHNjaGVtYSwgcmVmVmFsLCByZWZzXG4gKiBAcGFyYW0gIHtTdHJpbmd9IHJlZiAgcmVmZXJlbmNlIHRvIHJlc29sdmVcbiAqIEByZXR1cm4ge09iamVjdH0gb2JqZWN0IHdpdGggcHJvcGVydGllcyBzY2hlbWEsIHJvb3QsIGJhc2VJZFxuICovXG5mdW5jdGlvbiByZXNvbHZlU2NoZW1hKHJvb3QsIHJlZikge1xuICAvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXG4gIHZhciBwID0gVVJJLnBhcnNlKHJlZilcbiAgICAsIHJlZlBhdGggPSBfZ2V0RnVsbFBhdGgocClcbiAgICAsIGJhc2VJZCA9IGdldEZ1bGxQYXRoKHRoaXMuX2dldElkKHJvb3Quc2NoZW1hKSk7XG4gIGlmIChPYmplY3Qua2V5cyhyb290LnNjaGVtYSkubGVuZ3RoID09PSAwIHx8IHJlZlBhdGggIT09IGJhc2VJZCkge1xuICAgIHZhciBpZCA9IG5vcm1hbGl6ZUlkKHJlZlBhdGgpO1xuICAgIHZhciByZWZWYWwgPSB0aGlzLl9yZWZzW2lkXTtcbiAgICBpZiAodHlwZW9mIHJlZlZhbCA9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHJlc29sdmVSZWN1cnNpdmUuY2FsbCh0aGlzLCByb290LCByZWZWYWwsIHApO1xuICAgIH0gZWxzZSBpZiAocmVmVmFsIGluc3RhbmNlb2YgU2NoZW1hT2JqZWN0KSB7XG4gICAgICBpZiAoIXJlZlZhbC52YWxpZGF0ZSkgdGhpcy5fY29tcGlsZShyZWZWYWwpO1xuICAgICAgcm9vdCA9IHJlZlZhbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVmVmFsID0gdGhpcy5fc2NoZW1hc1tpZF07XG4gICAgICBpZiAocmVmVmFsIGluc3RhbmNlb2YgU2NoZW1hT2JqZWN0KSB7XG4gICAgICAgIGlmICghcmVmVmFsLnZhbGlkYXRlKSB0aGlzLl9jb21waWxlKHJlZlZhbCk7XG4gICAgICAgIGlmIChpZCA9PSBub3JtYWxpemVJZChyZWYpKVxuICAgICAgICAgIHJldHVybiB7IHNjaGVtYTogcmVmVmFsLCByb290OiByb290LCBiYXNlSWQ6IGJhc2VJZCB9O1xuICAgICAgICByb290ID0gcmVmVmFsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXJvb3Quc2NoZW1hKSByZXR1cm47XG4gICAgYmFzZUlkID0gZ2V0RnVsbFBhdGgodGhpcy5fZ2V0SWQocm9vdC5zY2hlbWEpKTtcbiAgfVxuICByZXR1cm4gZ2V0SnNvblBvaW50ZXIuY2FsbCh0aGlzLCBwLCBiYXNlSWQsIHJvb3Quc2NoZW1hLCByb290KTtcbn1cblxuXG4vKiBAdGhpcyBBanYgKi9cbmZ1bmN0aW9uIHJlc29sdmVSZWN1cnNpdmUocm9vdCwgcmVmLCBwYXJzZWRSZWYpIHtcbiAgLyoganNoaW50IHZhbGlkdGhpczogdHJ1ZSAqL1xuICB2YXIgcmVzID0gcmVzb2x2ZVNjaGVtYS5jYWxsKHRoaXMsIHJvb3QsIHJlZik7XG4gIGlmIChyZXMpIHtcbiAgICB2YXIgc2NoZW1hID0gcmVzLnNjaGVtYTtcbiAgICB2YXIgYmFzZUlkID0gcmVzLmJhc2VJZDtcbiAgICByb290ID0gcmVzLnJvb3Q7XG4gICAgdmFyIGlkID0gdGhpcy5fZ2V0SWQoc2NoZW1hKTtcbiAgICBpZiAoaWQpIGJhc2VJZCA9IHJlc29sdmVVcmwoYmFzZUlkLCBpZCk7XG4gICAgcmV0dXJuIGdldEpzb25Qb2ludGVyLmNhbGwodGhpcywgcGFyc2VkUmVmLCBiYXNlSWQsIHNjaGVtYSwgcm9vdCk7XG4gIH1cbn1cblxuXG52YXIgUFJFVkVOVF9TQ09QRV9DSEFOR0UgPSB1dGlsLnRvSGFzaChbJ3Byb3BlcnRpZXMnLCAncGF0dGVyblByb3BlcnRpZXMnLCAnZW51bScsICdkZXBlbmRlbmNpZXMnLCAnZGVmaW5pdGlvbnMnXSk7XG4vKiBAdGhpcyBBanYgKi9cbmZ1bmN0aW9uIGdldEpzb25Qb2ludGVyKHBhcnNlZFJlZiwgYmFzZUlkLCBzY2hlbWEsIHJvb3QpIHtcbiAgLyoganNoaW50IHZhbGlkdGhpczogdHJ1ZSAqL1xuICBwYXJzZWRSZWYuZnJhZ21lbnQgPSBwYXJzZWRSZWYuZnJhZ21lbnQgfHwgJyc7XG4gIGlmIChwYXJzZWRSZWYuZnJhZ21lbnQuc2xpY2UoMCwxKSAhPSAnLycpIHJldHVybjtcbiAgdmFyIHBhcnRzID0gcGFyc2VkUmVmLmZyYWdtZW50LnNwbGl0KCcvJyk7XG5cbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXJ0ID0gcGFydHNbaV07XG4gICAgaWYgKHBhcnQpIHtcbiAgICAgIHBhcnQgPSB1dGlsLnVuZXNjYXBlRnJhZ21lbnQocGFydCk7XG4gICAgICBzY2hlbWEgPSBzY2hlbWFbcGFydF07XG4gICAgICBpZiAoc2NoZW1hID09PSB1bmRlZmluZWQpIGJyZWFrO1xuICAgICAgdmFyIGlkO1xuICAgICAgaWYgKCFQUkVWRU5UX1NDT1BFX0NIQU5HRVtwYXJ0XSkge1xuICAgICAgICBpZCA9IHRoaXMuX2dldElkKHNjaGVtYSk7XG4gICAgICAgIGlmIChpZCkgYmFzZUlkID0gcmVzb2x2ZVVybChiYXNlSWQsIGlkKTtcbiAgICAgICAgaWYgKHNjaGVtYS4kcmVmKSB7XG4gICAgICAgICAgdmFyICRyZWYgPSByZXNvbHZlVXJsKGJhc2VJZCwgc2NoZW1hLiRyZWYpO1xuICAgICAgICAgIHZhciByZXMgPSByZXNvbHZlU2NoZW1hLmNhbGwodGhpcywgcm9vdCwgJHJlZik7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgc2NoZW1hID0gcmVzLnNjaGVtYTtcbiAgICAgICAgICAgIHJvb3QgPSByZXMucm9vdDtcbiAgICAgICAgICAgIGJhc2VJZCA9IHJlcy5iYXNlSWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChzY2hlbWEgIT09IHVuZGVmaW5lZCAmJiBzY2hlbWEgIT09IHJvb3Quc2NoZW1hKVxuICAgIHJldHVybiB7IHNjaGVtYTogc2NoZW1hLCByb290OiByb290LCBiYXNlSWQ6IGJhc2VJZCB9O1xufVxuXG5cbnZhciBTSU1QTEVfSU5MSU5FRCA9IHV0aWwudG9IYXNoKFtcbiAgJ3R5cGUnLCAnZm9ybWF0JywgJ3BhdHRlcm4nLFxuICAnbWF4TGVuZ3RoJywgJ21pbkxlbmd0aCcsXG4gICdtYXhQcm9wZXJ0aWVzJywgJ21pblByb3BlcnRpZXMnLFxuICAnbWF4SXRlbXMnLCAnbWluSXRlbXMnLFxuICAnbWF4aW11bScsICdtaW5pbXVtJyxcbiAgJ3VuaXF1ZUl0ZW1zJywgJ211bHRpcGxlT2YnLFxuICAncmVxdWlyZWQnLCAnZW51bSdcbl0pO1xuZnVuY3Rpb24gaW5saW5lUmVmKHNjaGVtYSwgbGltaXQpIHtcbiAgaWYgKGxpbWl0ID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlO1xuICBpZiAobGltaXQgPT09IHVuZGVmaW5lZCB8fCBsaW1pdCA9PT0gdHJ1ZSkgcmV0dXJuIGNoZWNrTm9SZWYoc2NoZW1hKTtcbiAgZWxzZSBpZiAobGltaXQpIHJldHVybiBjb3VudEtleXMoc2NoZW1hKSA8PSBsaW1pdDtcbn1cblxuXG5mdW5jdGlvbiBjaGVja05vUmVmKHNjaGVtYSkge1xuICB2YXIgaXRlbTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hKSkge1xuICAgIGZvciAodmFyIGk9MDsgaTxzY2hlbWEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGl0ZW0gPSBzY2hlbWFbaV07XG4gICAgICBpZiAodHlwZW9mIGl0ZW0gPT0gJ29iamVjdCcgJiYgIWNoZWNrTm9SZWYoaXRlbSkpIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIga2V5IGluIHNjaGVtYSkge1xuICAgICAgaWYgKGtleSA9PSAnJHJlZicpIHJldHVybiBmYWxzZTtcbiAgICAgIGl0ZW0gPSBzY2hlbWFba2V5XTtcbiAgICAgIGlmICh0eXBlb2YgaXRlbSA9PSAnb2JqZWN0JyAmJiAhY2hlY2tOb1JlZihpdGVtKSkgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuXG5mdW5jdGlvbiBjb3VudEtleXMoc2NoZW1hKSB7XG4gIHZhciBjb3VudCA9IDAsIGl0ZW07XG4gIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkpIHtcbiAgICBmb3IgKHZhciBpPTA7IGk8c2NoZW1hLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpdGVtID0gc2NoZW1hW2ldO1xuICAgICAgaWYgKHR5cGVvZiBpdGVtID09ICdvYmplY3QnKSBjb3VudCArPSBjb3VudEtleXMoaXRlbSk7XG4gICAgICBpZiAoY291bnQgPT0gSW5maW5pdHkpIHJldHVybiBJbmZpbml0eTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIga2V5IGluIHNjaGVtYSkge1xuICAgICAgaWYgKGtleSA9PSAnJHJlZicpIHJldHVybiBJbmZpbml0eTtcbiAgICAgIGlmIChTSU1QTEVfSU5MSU5FRFtrZXldKSB7XG4gICAgICAgIGNvdW50Kys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtID0gc2NoZW1hW2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PSAnb2JqZWN0JykgY291bnQgKz0gY291bnRLZXlzKGl0ZW0pICsgMTtcbiAgICAgICAgaWYgKGNvdW50ID09IEluZmluaXR5KSByZXR1cm4gSW5maW5pdHk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBjb3VudDtcbn1cblxuXG5mdW5jdGlvbiBnZXRGdWxsUGF0aChpZCwgbm9ybWFsaXplKSB7XG4gIGlmIChub3JtYWxpemUgIT09IGZhbHNlKSBpZCA9IG5vcm1hbGl6ZUlkKGlkKTtcbiAgdmFyIHAgPSBVUkkucGFyc2UoaWQpO1xuICByZXR1cm4gX2dldEZ1bGxQYXRoKHApO1xufVxuXG5cbmZ1bmN0aW9uIF9nZXRGdWxsUGF0aChwKSB7XG4gIHJldHVybiBVUkkuc2VyaWFsaXplKHApLnNwbGl0KCcjJylbMF0gKyAnIyc7XG59XG5cblxudmFyIFRSQUlMSU5HX1NMQVNIX0hBU0ggPSAvI1xcLz8kLztcbmZ1bmN0aW9uIG5vcm1hbGl6ZUlkKGlkKSB7XG4gIHJldHVybiBpZCA/IGlkLnJlcGxhY2UoVFJBSUxJTkdfU0xBU0hfSEFTSCwgJycpIDogJyc7XG59XG5cblxuZnVuY3Rpb24gcmVzb2x2ZVVybChiYXNlSWQsIGlkKSB7XG4gIGlkID0gbm9ybWFsaXplSWQoaWQpO1xuICByZXR1cm4gVVJJLnJlc29sdmUoYmFzZUlkLCBpZCk7XG59XG5cblxuLyogQHRoaXMgQWp2ICovXG5mdW5jdGlvbiByZXNvbHZlSWRzKHNjaGVtYSkge1xuICB2YXIgc2NoZW1hSWQgPSBub3JtYWxpemVJZCh0aGlzLl9nZXRJZChzY2hlbWEpKTtcbiAgdmFyIGJhc2VJZHMgPSB7Jyc6IHNjaGVtYUlkfTtcbiAgdmFyIGZ1bGxQYXRocyA9IHsnJzogZ2V0RnVsbFBhdGgoc2NoZW1hSWQsIGZhbHNlKX07XG4gIHZhciBsb2NhbFJlZnMgPSB7fTtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gIHRyYXZlcnNlKHNjaGVtYSwge2FsbEtleXM6IHRydWV9LCBmdW5jdGlvbihzY2gsIGpzb25QdHIsIHJvb3RTY2hlbWEsIHBhcmVudEpzb25QdHIsIHBhcmVudEtleXdvcmQsIHBhcmVudFNjaGVtYSwga2V5SW5kZXgpIHtcbiAgICBpZiAoanNvblB0ciA9PT0gJycpIHJldHVybjtcbiAgICB2YXIgaWQgPSBzZWxmLl9nZXRJZChzY2gpO1xuICAgIHZhciBiYXNlSWQgPSBiYXNlSWRzW3BhcmVudEpzb25QdHJdO1xuICAgIHZhciBmdWxsUGF0aCA9IGZ1bGxQYXRoc1twYXJlbnRKc29uUHRyXSArICcvJyArIHBhcmVudEtleXdvcmQ7XG4gICAgaWYgKGtleUluZGV4ICE9PSB1bmRlZmluZWQpXG4gICAgICBmdWxsUGF0aCArPSAnLycgKyAodHlwZW9mIGtleUluZGV4ID09ICdudW1iZXInID8ga2V5SW5kZXggOiB1dGlsLmVzY2FwZUZyYWdtZW50KGtleUluZGV4KSk7XG5cbiAgICBpZiAodHlwZW9mIGlkID09ICdzdHJpbmcnKSB7XG4gICAgICBpZCA9IGJhc2VJZCA9IG5vcm1hbGl6ZUlkKGJhc2VJZCA/IFVSSS5yZXNvbHZlKGJhc2VJZCwgaWQpIDogaWQpO1xuXG4gICAgICB2YXIgcmVmVmFsID0gc2VsZi5fcmVmc1tpZF07XG4gICAgICBpZiAodHlwZW9mIHJlZlZhbCA9PSAnc3RyaW5nJykgcmVmVmFsID0gc2VsZi5fcmVmc1tyZWZWYWxdO1xuICAgICAgaWYgKHJlZlZhbCAmJiByZWZWYWwuc2NoZW1hKSB7XG4gICAgICAgIGlmICghZXF1YWwoc2NoLCByZWZWYWwuc2NoZW1hKSlcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2lkIFwiJyArIGlkICsgJ1wiIHJlc29sdmVzIHRvIG1vcmUgdGhhbiBvbmUgc2NoZW1hJyk7XG4gICAgICB9IGVsc2UgaWYgKGlkICE9IG5vcm1hbGl6ZUlkKGZ1bGxQYXRoKSkge1xuICAgICAgICBpZiAoaWRbMF0gPT0gJyMnKSB7XG4gICAgICAgICAgaWYgKGxvY2FsUmVmc1tpZF0gJiYgIWVxdWFsKHNjaCwgbG9jYWxSZWZzW2lkXSkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2lkIFwiJyArIGlkICsgJ1wiIHJlc29sdmVzIHRvIG1vcmUgdGhhbiBvbmUgc2NoZW1hJyk7XG4gICAgICAgICAgbG9jYWxSZWZzW2lkXSA9IHNjaDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZWxmLl9yZWZzW2lkXSA9IGZ1bGxQYXRoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGJhc2VJZHNbanNvblB0cl0gPSBiYXNlSWQ7XG4gICAgZnVsbFBhdGhzW2pzb25QdHJdID0gZnVsbFBhdGg7XG4gIH0pO1xuXG4gIHJldHVybiBsb2NhbFJlZnM7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVzb2x2ZSA9IHJlcXVpcmUoJy4vcmVzb2x2ZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgVmFsaWRhdGlvbjogZXJyb3JTdWJjbGFzcyhWYWxpZGF0aW9uRXJyb3IpLFxuICBNaXNzaW5nUmVmOiBlcnJvclN1YmNsYXNzKE1pc3NpbmdSZWZFcnJvcilcbn07XG5cblxuZnVuY3Rpb24gVmFsaWRhdGlvbkVycm9yKGVycm9ycykge1xuICB0aGlzLm1lc3NhZ2UgPSAndmFsaWRhdGlvbiBmYWlsZWQnO1xuICB0aGlzLmVycm9ycyA9IGVycm9ycztcbiAgdGhpcy5hanYgPSB0aGlzLnZhbGlkYXRpb24gPSB0cnVlO1xufVxuXG5cbk1pc3NpbmdSZWZFcnJvci5tZXNzYWdlID0gZnVuY3Rpb24gKGJhc2VJZCwgcmVmKSB7XG4gIHJldHVybiAnY2FuXFwndCByZXNvbHZlIHJlZmVyZW5jZSAnICsgcmVmICsgJyBmcm9tIGlkICcgKyBiYXNlSWQ7XG59O1xuXG5cbmZ1bmN0aW9uIE1pc3NpbmdSZWZFcnJvcihiYXNlSWQsIHJlZiwgbWVzc2FnZSkge1xuICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlIHx8IE1pc3NpbmdSZWZFcnJvci5tZXNzYWdlKGJhc2VJZCwgcmVmKTtcbiAgdGhpcy5taXNzaW5nUmVmID0gcmVzb2x2ZS51cmwoYmFzZUlkLCByZWYpO1xuICB0aGlzLm1pc3NpbmdTY2hlbWEgPSByZXNvbHZlLm5vcm1hbGl6ZUlkKHJlc29sdmUuZnVsbFBhdGgodGhpcy5taXNzaW5nUmVmKSk7XG59XG5cblxuZnVuY3Rpb24gZXJyb3JTdWJjbGFzcyhTdWJjbGFzcykge1xuICBTdWJjbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7XG4gIFN1YmNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFN1YmNsYXNzO1xuICByZXR1cm4gU3ViY2xhc3M7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChkYXRhLCBvcHRzKSB7XG4gICAgaWYgKCFvcHRzKSBvcHRzID0ge307XG4gICAgaWYgKHR5cGVvZiBvcHRzID09PSAnZnVuY3Rpb24nKSBvcHRzID0geyBjbXA6IG9wdHMgfTtcbiAgICB2YXIgY3ljbGVzID0gKHR5cGVvZiBvcHRzLmN5Y2xlcyA9PT0gJ2Jvb2xlYW4nKSA/IG9wdHMuY3ljbGVzIDogZmFsc2U7XG5cbiAgICB2YXIgY21wID0gb3B0cy5jbXAgJiYgKGZ1bmN0aW9uIChmKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFvYmogPSB7IGtleTogYSwgdmFsdWU6IG5vZGVbYV0gfTtcbiAgICAgICAgICAgICAgICB2YXIgYm9iaiA9IHsga2V5OiBiLCB2YWx1ZTogbm9kZVtiXSB9O1xuICAgICAgICAgICAgICAgIHJldHVybiBmKGFvYmosIGJvYmopO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICB9KShvcHRzLmNtcCk7XG5cbiAgICB2YXIgc2VlbiA9IFtdO1xuICAgIHJldHVybiAoZnVuY3Rpb24gc3RyaW5naWZ5IChub2RlKSB7XG4gICAgICAgIGlmIChub2RlICYmIG5vZGUudG9KU09OICYmIHR5cGVvZiBub2RlLnRvSlNPTiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbm9kZSA9IG5vZGUudG9KU09OKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2Ygbm9kZSA9PSAnbnVtYmVyJykgcmV0dXJuIGlzRmluaXRlKG5vZGUpID8gJycgKyBub2RlIDogJ251bGwnO1xuICAgICAgICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnKSByZXR1cm4gSlNPTi5zdHJpbmdpZnkobm9kZSk7XG5cbiAgICAgICAgdmFyIGksIG91dDtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgICAgICAgIG91dCA9ICdbJztcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBub2RlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGkpIG91dCArPSAnLCc7XG4gICAgICAgICAgICAgICAgb3V0ICs9IHN0cmluZ2lmeShub2RlW2ldKSB8fCAnbnVsbCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0ICsgJ10nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vZGUgPT09IG51bGwpIHJldHVybiAnbnVsbCc7XG5cbiAgICAgICAgaWYgKHNlZW4uaW5kZXhPZihub2RlKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGlmIChjeWNsZXMpIHJldHVybiBKU09OLnN0cmluZ2lmeSgnX19jeWNsZV9fJyk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDb252ZXJ0aW5nIGNpcmN1bGFyIHN0cnVjdHVyZSB0byBKU09OJyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2VlbkluZGV4ID0gc2Vlbi5wdXNoKG5vZGUpIC0gMTtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhub2RlKS5zb3J0KGNtcCAmJiBjbXAobm9kZSkpO1xuICAgICAgICBvdXQgPSAnJztcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gc3RyaW5naWZ5KG5vZGVba2V5XSk7XG5cbiAgICAgICAgICAgIGlmICghdmFsdWUpIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKG91dCkgb3V0ICs9ICcsJztcbiAgICAgICAgICAgIG91dCArPSBKU09OLnN0cmluZ2lmeShrZXkpICsgJzonICsgdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgc2Vlbi5zcGxpY2Uoc2VlbkluZGV4LCAxKTtcbiAgICAgICAgcmV0dXJuICd7JyArIG91dCArICd9JztcbiAgICB9KShkYXRhKTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV92YWxpZGF0ZShpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyc7XG4gIHZhciAkYXN5bmMgPSBpdC5zY2hlbWEuJGFzeW5jID09PSB0cnVlLFxuICAgICRyZWZLZXl3b3JkcyA9IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXNFeGNlcHQoaXQuc2NoZW1hLCBpdC5SVUxFUy5hbGwsICckcmVmJyksXG4gICAgJGlkID0gaXQuc2VsZi5fZ2V0SWQoaXQuc2NoZW1hKTtcbiAgaWYgKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMpIHtcbiAgICB2YXIgJHVua25vd25Ld2QgPSBpdC51dGlsLnNjaGVtYVVua25vd25SdWxlcyhpdC5zY2hlbWEsIGl0LlJVTEVTLmtleXdvcmRzKTtcbiAgICBpZiAoJHVua25vd25Ld2QpIHtcbiAgICAgIHZhciAka2V5d29yZHNNc2cgPSAndW5rbm93biBrZXl3b3JkOiAnICsgJHVua25vd25Ld2Q7XG4gICAgICBpZiAoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA9PT0gJ2xvZycpIGl0LmxvZ2dlci53YXJuKCRrZXl3b3Jkc01zZyk7XG4gICAgICBlbHNlIHRocm93IG5ldyBFcnJvcigka2V5d29yZHNNc2cpO1xuICAgIH1cbiAgfVxuICBpZiAoaXQuaXNUb3ApIHtcbiAgICBvdXQgKz0gJyB2YXIgdmFsaWRhdGUgPSAnO1xuICAgIGlmICgkYXN5bmMpIHtcbiAgICAgIGl0LmFzeW5jID0gdHJ1ZTtcbiAgICAgIG91dCArPSAnYXN5bmMgJztcbiAgICB9XG4gICAgb3V0ICs9ICdmdW5jdGlvbihkYXRhLCBkYXRhUGF0aCwgcGFyZW50RGF0YSwgcGFyZW50RGF0YVByb3BlcnR5LCByb290RGF0YSkgeyBcXCd1c2Ugc3RyaWN0XFwnOyAnO1xuICAgIGlmICgkaWQgJiYgKGl0Lm9wdHMuc291cmNlQ29kZSB8fCBpdC5vcHRzLnByb2Nlc3NDb2RlKSkge1xuICAgICAgb3V0ICs9ICcgJyArICgnL1xcKiMgc291cmNlVVJMPScgKyAkaWQgKyAnICovJykgKyAnICc7XG4gICAgfVxuICB9XG4gIGlmICh0eXBlb2YgaXQuc2NoZW1hID09ICdib29sZWFuJyB8fCAhKCRyZWZLZXl3b3JkcyB8fCBpdC5zY2hlbWEuJHJlZikpIHtcbiAgICB2YXIgJGtleXdvcmQgPSAnZmFsc2Ugc2NoZW1hJztcbiAgICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICAgIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gICAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICAgIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgICB2YXIgJGVycm9yS2V5d29yZDtcbiAgICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICAgIHZhciAkdmFsaWQgPSAndmFsaWQnICsgJGx2bDtcbiAgICBpZiAoaXQuc2NoZW1hID09PSBmYWxzZSkge1xuICAgICAgaWYgKGl0LmlzVG9wKSB7XG4gICAgICAgICRicmVha09uRXJyb3IgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgdmFyICcgKyAoJHZhbGlkKSArICcgPSBmYWxzZTsgJztcbiAgICAgIH1cbiAgICAgIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgICAgICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICAgICAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJGVycm9yS2V5d29yZCB8fCAnZmFsc2Ugc2NoZW1hJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczoge30gJztcbiAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdib29sZWFuIHNjaGVtYSBpcyBmYWxzZVxcJyAnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogZmFsc2UgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICAgIH1cbiAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgIH1cbiAgICAgIHZhciBfX2VyciA9IG91dDtcbiAgICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaXQuaXNUb3ApIHtcbiAgICAgICAgaWYgKCRhc3luYykge1xuICAgICAgICAgIG91dCArPSAnIHJldHVybiBkYXRhOyAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IG51bGw7IHJldHVybiB0cnVlOyAnO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkdmFsaWQpICsgJyA9IHRydWU7ICc7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpdC5pc1RvcCkge1xuICAgICAgb3V0ICs9ICcgfTsgcmV0dXJuIHZhbGlkYXRlOyAnO1xuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuICB9XG4gIGlmIChpdC5pc1RvcCkge1xuICAgIHZhciAkdG9wID0gaXQuaXNUb3AsXG4gICAgICAkbHZsID0gaXQubGV2ZWwgPSAwLFxuICAgICAgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWwgPSAwLFxuICAgICAgJGRhdGEgPSAnZGF0YSc7XG4gICAgaXQucm9vdElkID0gaXQucmVzb2x2ZS5mdWxsUGF0aChpdC5zZWxmLl9nZXRJZChpdC5yb290LnNjaGVtYSkpO1xuICAgIGl0LmJhc2VJZCA9IGl0LmJhc2VJZCB8fCBpdC5yb290SWQ7XG4gICAgZGVsZXRlIGl0LmlzVG9wO1xuICAgIGl0LmRhdGFQYXRoQXJyID0gW1wiXCJdO1xuICAgIGlmIChpdC5zY2hlbWEuZGVmYXVsdCAhPT0gdW5kZWZpbmVkICYmIGl0Lm9wdHMudXNlRGVmYXVsdHMgJiYgaXQub3B0cy5zdHJpY3REZWZhdWx0cykge1xuICAgICAgdmFyICRkZWZhdWx0TXNnID0gJ2RlZmF1bHQgaXMgaWdub3JlZCBpbiB0aGUgc2NoZW1hIHJvb3QnO1xuICAgICAgaWYgKGl0Lm9wdHMuc3RyaWN0RGVmYXVsdHMgPT09ICdsb2cnKSBpdC5sb2dnZXIud2FybigkZGVmYXVsdE1zZyk7XG4gICAgICBlbHNlIHRocm93IG5ldyBFcnJvcigkZGVmYXVsdE1zZyk7XG4gICAgfVxuICAgIG91dCArPSAnIHZhciB2RXJyb3JzID0gbnVsbDsgJztcbiAgICBvdXQgKz0gJyB2YXIgZXJyb3JzID0gMDsgICAgICc7XG4gICAgb3V0ICs9ICcgaWYgKHJvb3REYXRhID09PSB1bmRlZmluZWQpIHJvb3REYXRhID0gZGF0YTsgJztcbiAgfSBlbHNlIHtcbiAgICB2YXIgJGx2bCA9IGl0LmxldmVsLFxuICAgICAgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWwsXG4gICAgICAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gICAgaWYgKCRpZCkgaXQuYmFzZUlkID0gaXQucmVzb2x2ZS51cmwoaXQuYmFzZUlkLCAkaWQpO1xuICAgIGlmICgkYXN5bmMgJiYgIWl0LmFzeW5jKSB0aHJvdyBuZXcgRXJyb3IoJ2FzeW5jIHNjaGVtYSBpbiBzeW5jIHNjaGVtYScpO1xuICAgIG91dCArPSAnIHZhciBlcnJzXycgKyAoJGx2bCkgKyAnID0gZXJyb3JzOyc7XG4gIH1cbiAgdmFyICR2YWxpZCA9ICd2YWxpZCcgKyAkbHZsLFxuICAgICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnMsXG4gICAgJGNsb3NpbmdCcmFjZXMxID0gJycsXG4gICAgJGNsb3NpbmdCcmFjZXMyID0gJyc7XG4gIHZhciAkZXJyb3JLZXl3b3JkO1xuICB2YXIgJHR5cGVTY2hlbWEgPSBpdC5zY2hlbWEudHlwZSxcbiAgICAkdHlwZUlzQXJyYXkgPSBBcnJheS5pc0FycmF5KCR0eXBlU2NoZW1hKTtcbiAgaWYgKCR0eXBlU2NoZW1hICYmIGl0Lm9wdHMubnVsbGFibGUgJiYgaXQuc2NoZW1hLm51bGxhYmxlID09PSB0cnVlKSB7XG4gICAgaWYgKCR0eXBlSXNBcnJheSkge1xuICAgICAgaWYgKCR0eXBlU2NoZW1hLmluZGV4T2YoJ251bGwnKSA9PSAtMSkgJHR5cGVTY2hlbWEgPSAkdHlwZVNjaGVtYS5jb25jYXQoJ251bGwnKTtcbiAgICB9IGVsc2UgaWYgKCR0eXBlU2NoZW1hICE9ICdudWxsJykge1xuICAgICAgJHR5cGVTY2hlbWEgPSBbJHR5cGVTY2hlbWEsICdudWxsJ107XG4gICAgICAkdHlwZUlzQXJyYXkgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBpZiAoJHR5cGVJc0FycmF5ICYmICR0eXBlU2NoZW1hLmxlbmd0aCA9PSAxKSB7XG4gICAgJHR5cGVTY2hlbWEgPSAkdHlwZVNjaGVtYVswXTtcbiAgICAkdHlwZUlzQXJyYXkgPSBmYWxzZTtcbiAgfVxuICBpZiAoaXQuc2NoZW1hLiRyZWYgJiYgJHJlZktleXdvcmRzKSB7XG4gICAgaWYgKGl0Lm9wdHMuZXh0ZW5kUmVmcyA9PSAnZmFpbCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignJHJlZjogdmFsaWRhdGlvbiBrZXl3b3JkcyB1c2VkIGluIHNjaGVtYSBhdCBwYXRoIFwiJyArIGl0LmVyclNjaGVtYVBhdGggKyAnXCIgKHNlZSBvcHRpb24gZXh0ZW5kUmVmcyknKTtcbiAgICB9IGVsc2UgaWYgKGl0Lm9wdHMuZXh0ZW5kUmVmcyAhPT0gdHJ1ZSkge1xuICAgICAgJHJlZktleXdvcmRzID0gZmFsc2U7XG4gICAgICBpdC5sb2dnZXIud2FybignJHJlZjoga2V5d29yZHMgaWdub3JlZCBpbiBzY2hlbWEgYXQgcGF0aCBcIicgKyBpdC5lcnJTY2hlbWFQYXRoICsgJ1wiJyk7XG4gICAgfVxuICB9XG4gIGlmIChpdC5zY2hlbWEuJGNvbW1lbnQgJiYgaXQub3B0cy4kY29tbWVudCkge1xuICAgIG91dCArPSAnICcgKyAoaXQuUlVMRVMuYWxsLiRjb21tZW50LmNvZGUoaXQsICckY29tbWVudCcpKTtcbiAgfVxuICBpZiAoJHR5cGVTY2hlbWEpIHtcbiAgICBpZiAoaXQub3B0cy5jb2VyY2VUeXBlcykge1xuICAgICAgdmFyICRjb2VyY2VUb1R5cGVzID0gaXQudXRpbC5jb2VyY2VUb1R5cGVzKGl0Lm9wdHMuY29lcmNlVHlwZXMsICR0eXBlU2NoZW1hKTtcbiAgICB9XG4gICAgdmFyICRydWxlc0dyb3VwID0gaXQuUlVMRVMudHlwZXNbJHR5cGVTY2hlbWFdO1xuICAgIGlmICgkY29lcmNlVG9UeXBlcyB8fCAkdHlwZUlzQXJyYXkgfHwgJHJ1bGVzR3JvdXAgPT09IHRydWUgfHwgKCRydWxlc0dyb3VwICYmICEkc2hvdWxkVXNlR3JvdXAoJHJ1bGVzR3JvdXApKSkge1xuICAgICAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArICcudHlwZScsXG4gICAgICAgICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvdHlwZSc7XG4gICAgICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgJy50eXBlJyxcbiAgICAgICAgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy90eXBlJyxcbiAgICAgICAgJG1ldGhvZCA9ICR0eXBlSXNBcnJheSA/ICdjaGVja0RhdGFUeXBlcycgOiAnY2hlY2tEYXRhVHlwZSc7XG4gICAgICBvdXQgKz0gJyBpZiAoJyArIChpdC51dGlsWyRtZXRob2RdKCR0eXBlU2NoZW1hLCAkZGF0YSwgaXQub3B0cy5zdHJpY3ROdW1iZXJzLCB0cnVlKSkgKyAnKSB7ICc7XG4gICAgICBpZiAoJGNvZXJjZVRvVHlwZXMpIHtcbiAgICAgICAgdmFyICRkYXRhVHlwZSA9ICdkYXRhVHlwZScgKyAkbHZsLFxuICAgICAgICAgICRjb2VyY2VkID0gJ2NvZXJjZWQnICsgJGx2bDtcbiAgICAgICAgb3V0ICs9ICcgdmFyICcgKyAoJGRhdGFUeXBlKSArICcgPSB0eXBlb2YgJyArICgkZGF0YSkgKyAnOyB2YXIgJyArICgkY29lcmNlZCkgKyAnID0gdW5kZWZpbmVkOyAnO1xuICAgICAgICBpZiAoaXQub3B0cy5jb2VyY2VUeXBlcyA9PSAnYXJyYXknKSB7XG4gICAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJGRhdGFUeXBlKSArICcgPT0gXFwnb2JqZWN0XFwnICYmIEFycmF5LmlzQXJyYXkoJyArICgkZGF0YSkgKyAnKSAmJiAnICsgKCRkYXRhKSArICcubGVuZ3RoID09IDEpIHsgJyArICgkZGF0YSkgKyAnID0gJyArICgkZGF0YSkgKyAnWzBdOyAnICsgKCRkYXRhVHlwZSkgKyAnID0gdHlwZW9mICcgKyAoJGRhdGEpICsgJzsgaWYgKCcgKyAoaXQudXRpbC5jaGVja0RhdGFUeXBlKGl0LnNjaGVtYS50eXBlLCAkZGF0YSwgaXQub3B0cy5zdHJpY3ROdW1iZXJzKSkgKyAnKSAnICsgKCRjb2VyY2VkKSArICcgPSAnICsgKCRkYXRhKSArICc7IH0gJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyBpZiAoJyArICgkY29lcmNlZCkgKyAnICE9PSB1bmRlZmluZWQpIDsgJztcbiAgICAgICAgdmFyIGFycjEgPSAkY29lcmNlVG9UeXBlcztcbiAgICAgICAgaWYgKGFycjEpIHtcbiAgICAgICAgICB2YXIgJHR5cGUsICRpID0gLTEsXG4gICAgICAgICAgICBsMSA9IGFycjEubGVuZ3RoIC0gMTtcbiAgICAgICAgICB3aGlsZSAoJGkgPCBsMSkge1xuICAgICAgICAgICAgJHR5cGUgPSBhcnIxWyRpICs9IDFdO1xuICAgICAgICAgICAgaWYgKCR0eXBlID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnIGVsc2UgaWYgKCcgKyAoJGRhdGFUeXBlKSArICcgPT0gXFwnbnVtYmVyXFwnIHx8ICcgKyAoJGRhdGFUeXBlKSArICcgPT0gXFwnYm9vbGVhblxcJykgJyArICgkY29lcmNlZCkgKyAnID0gXFwnXFwnICsgJyArICgkZGF0YSkgKyAnOyBlbHNlIGlmICgnICsgKCRkYXRhKSArICcgPT09IG51bGwpICcgKyAoJGNvZXJjZWQpICsgJyA9IFxcJ1xcJzsgJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoJHR5cGUgPT0gJ251bWJlcicgfHwgJHR5cGUgPT0gJ2ludGVnZXInKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnIGVsc2UgaWYgKCcgKyAoJGRhdGFUeXBlKSArICcgPT0gXFwnYm9vbGVhblxcJyB8fCAnICsgKCRkYXRhKSArICcgPT09IG51bGwgfHwgKCcgKyAoJGRhdGFUeXBlKSArICcgPT0gXFwnc3RyaW5nXFwnICYmICcgKyAoJGRhdGEpICsgJyAmJiAnICsgKCRkYXRhKSArICcgPT0gKycgKyAoJGRhdGEpICsgJyAnO1xuICAgICAgICAgICAgICBpZiAoJHR5cGUgPT0gJ2ludGVnZXInKSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgJiYgISgnICsgKCRkYXRhKSArICcgJSAxKSc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgb3V0ICs9ICcpKSAnICsgKCRjb2VyY2VkKSArICcgPSArJyArICgkZGF0YSkgKyAnOyAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgkdHlwZSA9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgZWxzZSBpZiAoJyArICgkZGF0YSkgKyAnID09PSBcXCdmYWxzZVxcJyB8fCAnICsgKCRkYXRhKSArICcgPT09IDAgfHwgJyArICgkZGF0YSkgKyAnID09PSBudWxsKSAnICsgKCRjb2VyY2VkKSArICcgPSBmYWxzZTsgZWxzZSBpZiAoJyArICgkZGF0YSkgKyAnID09PSBcXCd0cnVlXFwnIHx8ICcgKyAoJGRhdGEpICsgJyA9PT0gMSkgJyArICgkY29lcmNlZCkgKyAnID0gdHJ1ZTsgJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoJHR5cGUgPT0gJ251bGwnKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnIGVsc2UgaWYgKCcgKyAoJGRhdGEpICsgJyA9PT0gXFwnXFwnIHx8ICcgKyAoJGRhdGEpICsgJyA9PT0gMCB8fCAnICsgKCRkYXRhKSArICcgPT09IGZhbHNlKSAnICsgKCRjb2VyY2VkKSArICcgPSBudWxsOyAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpdC5vcHRzLmNvZXJjZVR5cGVzID09ICdhcnJheScgJiYgJHR5cGUgPT0gJ2FycmF5Jykge1xuICAgICAgICAgICAgICBvdXQgKz0gJyBlbHNlIGlmICgnICsgKCRkYXRhVHlwZSkgKyAnID09IFxcJ3N0cmluZ1xcJyB8fCAnICsgKCRkYXRhVHlwZSkgKyAnID09IFxcJ251bWJlclxcJyB8fCAnICsgKCRkYXRhVHlwZSkgKyAnID09IFxcJ2Jvb2xlYW5cXCcgfHwgJyArICgkZGF0YSkgKyAnID09IG51bGwpICcgKyAoJGNvZXJjZWQpICsgJyA9IFsnICsgKCRkYXRhKSArICddOyAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyBlbHNlIHsgICAnO1xuICAgICAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgICAgICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICAgICAgICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJGVycm9yS2V5d29yZCB8fCAndHlwZScpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgdHlwZTogXFwnJztcbiAgICAgICAgICBpZiAoJHR5cGVJc0FycmF5KSB7XG4gICAgICAgICAgICBvdXQgKz0gJycgKyAoJHR5cGVTY2hlbWEuam9pbihcIixcIikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXQgKz0gJycgKyAoJHR5cGVTY2hlbWEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvdXQgKz0gJ1xcJyB9ICc7XG4gICAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBiZSAnO1xuICAgICAgICAgICAgaWYgKCR0eXBlSXNBcnJheSkge1xuICAgICAgICAgICAgICBvdXQgKz0gJycgKyAoJHR5cGVTY2hlbWEuam9pbihcIixcIikpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcnICsgKCR0eXBlU2NoZW1hKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dCArPSAnXFwnICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnIH0gJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgKz0gJyB7fSAnO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfX2VyciA9IG91dDtcbiAgICAgICAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgICAgICAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgICAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgICAgIH1cbiAgICAgICAgb3V0ICs9ICcgfSBpZiAoJyArICgkY29lcmNlZCkgKyAnICE9PSB1bmRlZmluZWQpIHsgICc7XG4gICAgICAgIHZhciAkcGFyZW50RGF0YSA9ICRkYXRhTHZsID8gJ2RhdGEnICsgKCgkZGF0YUx2bCAtIDEpIHx8ICcnKSA6ICdwYXJlbnREYXRhJyxcbiAgICAgICAgICAkcGFyZW50RGF0YVByb3BlcnR5ID0gJGRhdGFMdmwgPyBpdC5kYXRhUGF0aEFyclskZGF0YUx2bF0gOiAncGFyZW50RGF0YVByb3BlcnR5JztcbiAgICAgICAgb3V0ICs9ICcgJyArICgkZGF0YSkgKyAnID0gJyArICgkY29lcmNlZCkgKyAnOyAnO1xuICAgICAgICBpZiAoISRkYXRhTHZsKSB7XG4gICAgICAgICAgb3V0ICs9ICdpZiAoJyArICgkcGFyZW50RGF0YSkgKyAnICE9PSB1bmRlZmluZWQpJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyAnICsgKCRwYXJlbnREYXRhKSArICdbJyArICgkcGFyZW50RGF0YVByb3BlcnR5KSArICddID0gJyArICgkY29lcmNlZCkgKyAnOyB9ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgICAgICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICAgICAgICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJGVycm9yS2V5d29yZCB8fCAndHlwZScpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgdHlwZTogXFwnJztcbiAgICAgICAgICBpZiAoJHR5cGVJc0FycmF5KSB7XG4gICAgICAgICAgICBvdXQgKz0gJycgKyAoJHR5cGVTY2hlbWEuam9pbihcIixcIikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXQgKz0gJycgKyAoJHR5cGVTY2hlbWEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvdXQgKz0gJ1xcJyB9ICc7XG4gICAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBiZSAnO1xuICAgICAgICAgICAgaWYgKCR0eXBlSXNBcnJheSkge1xuICAgICAgICAgICAgICBvdXQgKz0gJycgKyAoJHR5cGVTY2hlbWEuam9pbihcIixcIikpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcnICsgKCR0eXBlU2NoZW1hKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dCArPSAnXFwnICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnIH0gJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgKz0gJyB7fSAnO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfX2VyciA9IG91dDtcbiAgICAgICAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgICAgICAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgICAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG91dCArPSAnIH0gJztcbiAgICB9XG4gIH1cbiAgaWYgKGl0LnNjaGVtYS4kcmVmICYmICEkcmVmS2V5d29yZHMpIHtcbiAgICBvdXQgKz0gJyAnICsgKGl0LlJVTEVTLmFsbC4kcmVmLmNvZGUoaXQsICckcmVmJykpICsgJyAnO1xuICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICBvdXQgKz0gJyB9IGlmIChlcnJvcnMgPT09ICc7XG4gICAgICBpZiAoJHRvcCkge1xuICAgICAgICBvdXQgKz0gJzAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICdlcnJzXycgKyAoJGx2bCk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJykgeyAnO1xuICAgICAgJGNsb3NpbmdCcmFjZXMyICs9ICd9JztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGFycjIgPSBpdC5SVUxFUztcbiAgICBpZiAoYXJyMikge1xuICAgICAgdmFyICRydWxlc0dyb3VwLCBpMiA9IC0xLFxuICAgICAgICBsMiA9IGFycjIubGVuZ3RoIC0gMTtcbiAgICAgIHdoaWxlIChpMiA8IGwyKSB7XG4gICAgICAgICRydWxlc0dyb3VwID0gYXJyMltpMiArPSAxXTtcbiAgICAgICAgaWYgKCRzaG91bGRVc2VHcm91cCgkcnVsZXNHcm91cCkpIHtcbiAgICAgICAgICBpZiAoJHJ1bGVzR3JvdXAudHlwZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoaXQudXRpbC5jaGVja0RhdGFUeXBlKCRydWxlc0dyb3VwLnR5cGUsICRkYXRhLCBpdC5vcHRzLnN0cmljdE51bWJlcnMpKSArICcpIHsgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGl0Lm9wdHMudXNlRGVmYXVsdHMpIHtcbiAgICAgICAgICAgIGlmICgkcnVsZXNHcm91cC50eXBlID09ICdvYmplY3QnICYmIGl0LnNjaGVtYS5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgJHNjaGVtYUtleXMgPSBPYmplY3Qua2V5cygkc2NoZW1hKTtcbiAgICAgICAgICAgICAgdmFyIGFycjMgPSAkc2NoZW1hS2V5cztcbiAgICAgICAgICAgICAgaWYgKGFycjMpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHByb3BlcnR5S2V5LCBpMyA9IC0xLFxuICAgICAgICAgICAgICAgICAgbDMgPSBhcnIzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGkzIDwgbDMpIHtcbiAgICAgICAgICAgICAgICAgICRwcm9wZXJ0eUtleSA9IGFycjNbaTMgKz0gMV07XG4gICAgICAgICAgICAgICAgICB2YXIgJHNjaCA9ICRzY2hlbWFbJHByb3BlcnR5S2V5XTtcbiAgICAgICAgICAgICAgICAgIGlmICgkc2NoLmRlZmF1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgJHBhc3NEYXRhID0gJGRhdGEgKyBpdC51dGlsLmdldFByb3BlcnR5KCRwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdC5jb21wb3NpdGVSdWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMuc3RyaWN0RGVmYXVsdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciAkZGVmYXVsdE1zZyA9ICdkZWZhdWx0IGlzIGlnbm9yZWQgZm9yOiAnICsgJHBhc3NEYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMuc3RyaWN0RGVmYXVsdHMgPT09ICdsb2cnKSBpdC5sb2dnZXIud2FybigkZGVmYXVsdE1zZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHRocm93IG5ldyBFcnJvcigkZGVmYXVsdE1zZyk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIG91dCArPSAnIGlmICgnICsgKCRwYXNzRGF0YSkgKyAnID09PSB1bmRlZmluZWQgJztcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXQub3B0cy51c2VEZWZhdWx0cyA9PSAnZW1wdHknKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQgKz0gJyB8fCAnICsgKCRwYXNzRGF0YSkgKyAnID09PSBudWxsIHx8ICcgKyAoJHBhc3NEYXRhKSArICcgPT09IFxcJ1xcJyAnO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvdXQgKz0gJyApICcgKyAoJHBhc3NEYXRhKSArICcgPSAnO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpdC5vcHRzLnVzZURlZmF1bHRzID09ICdzaGFyZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQgKz0gJyAnICsgKGl0LnVzZURlZmF1bHQoJHNjaC5kZWZhdWx0KSkgKyAnICc7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dCArPSAnICcgKyAoSlNPTi5zdHJpbmdpZnkoJHNjaC5kZWZhdWx0KSkgKyAnICc7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIG91dCArPSAnOyAnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCRydWxlc0dyb3VwLnR5cGUgPT0gJ2FycmF5JyAmJiBBcnJheS5pc0FycmF5KGl0LnNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgICAgICAgdmFyIGFycjQgPSBpdC5zY2hlbWEuaXRlbXM7XG4gICAgICAgICAgICAgIGlmIChhcnI0KSB7XG4gICAgICAgICAgICAgICAgdmFyICRzY2gsICRpID0gLTEsXG4gICAgICAgICAgICAgICAgICBsNCA9IGFycjQubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgICB3aGlsZSAoJGkgPCBsNCkge1xuICAgICAgICAgICAgICAgICAgJHNjaCA9IGFycjRbJGkgKz0gMV07XG4gICAgICAgICAgICAgICAgICBpZiAoJHNjaC5kZWZhdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyICRwYXNzRGF0YSA9ICRkYXRhICsgJ1snICsgJGkgKyAnXSc7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdC5jb21wb3NpdGVSdWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMuc3RyaWN0RGVmYXVsdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciAkZGVmYXVsdE1zZyA9ICdkZWZhdWx0IGlzIGlnbm9yZWQgZm9yOiAnICsgJHBhc3NEYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMuc3RyaWN0RGVmYXVsdHMgPT09ICdsb2cnKSBpdC5sb2dnZXIud2FybigkZGVmYXVsdE1zZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHRocm93IG5ldyBFcnJvcigkZGVmYXVsdE1zZyk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIG91dCArPSAnIGlmICgnICsgKCRwYXNzRGF0YSkgKyAnID09PSB1bmRlZmluZWQgJztcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXQub3B0cy51c2VEZWZhdWx0cyA9PSAnZW1wdHknKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQgKz0gJyB8fCAnICsgKCRwYXNzRGF0YSkgKyAnID09PSBudWxsIHx8ICcgKyAoJHBhc3NEYXRhKSArICcgPT09IFxcJ1xcJyAnO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvdXQgKz0gJyApICcgKyAoJHBhc3NEYXRhKSArICcgPSAnO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpdC5vcHRzLnVzZURlZmF1bHRzID09ICdzaGFyZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQgKz0gJyAnICsgKGl0LnVzZURlZmF1bHQoJHNjaC5kZWZhdWx0KSkgKyAnICc7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dCArPSAnICcgKyAoSlNPTi5zdHJpbmdpZnkoJHNjaC5kZWZhdWx0KSkgKyAnICc7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIG91dCArPSAnOyAnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBhcnI1ID0gJHJ1bGVzR3JvdXAucnVsZXM7XG4gICAgICAgICAgaWYgKGFycjUpIHtcbiAgICAgICAgICAgIHZhciAkcnVsZSwgaTUgPSAtMSxcbiAgICAgICAgICAgICAgbDUgPSBhcnI1Lmxlbmd0aCAtIDE7XG4gICAgICAgICAgICB3aGlsZSAoaTUgPCBsNSkge1xuICAgICAgICAgICAgICAkcnVsZSA9IGFycjVbaTUgKz0gMV07XG4gICAgICAgICAgICAgIGlmICgkc2hvdWxkVXNlUnVsZSgkcnVsZSkpIHtcbiAgICAgICAgICAgICAgICB2YXIgJGNvZGUgPSAkcnVsZS5jb2RlKGl0LCAkcnVsZS5rZXl3b3JkLCAkcnVsZXNHcm91cC50eXBlKTtcbiAgICAgICAgICAgICAgICBpZiAoJGNvZGUpIHtcbiAgICAgICAgICAgICAgICAgIG91dCArPSAnICcgKyAoJGNvZGUpICsgJyAnO1xuICAgICAgICAgICAgICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgJGNsb3NpbmdCcmFjZXMxICs9ICd9JztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgICAgIG91dCArPSAnICcgKyAoJGNsb3NpbmdCcmFjZXMxKSArICcgJztcbiAgICAgICAgICAgICRjbG9zaW5nQnJhY2VzMSA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoJHJ1bGVzR3JvdXAudHlwZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICAgICAgaWYgKCR0eXBlU2NoZW1hICYmICR0eXBlU2NoZW1hID09PSAkcnVsZXNHcm91cC50eXBlICYmICEkY29lcmNlVG9UeXBlcykge1xuICAgICAgICAgICAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgICAgICAgICAgICAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArICcudHlwZScsXG4gICAgICAgICAgICAgICAgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy90eXBlJztcbiAgICAgICAgICAgICAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAgICAgICAgICAgICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgICAgICAgICAgICAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCRlcnJvcktleXdvcmQgfHwgJ3R5cGUnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IHR5cGU6IFxcJyc7XG4gICAgICAgICAgICAgICAgaWYgKCR0eXBlSXNBcnJheSkge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICcnICsgKCR0eXBlU2NoZW1hLmpvaW4oXCIsXCIpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICcnICsgKCR0eXBlU2NoZW1hKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3V0ICs9ICdcXCcgfSAnO1xuICAgICAgICAgICAgICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgYmUgJztcbiAgICAgICAgICAgICAgICAgIGlmICgkdHlwZUlzQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0ICs9ICcnICsgKCR0eXBlU2NoZW1hLmpvaW4oXCIsXCIpKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG91dCArPSAnJyArICgkdHlwZVNjaGVtYSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBvdXQgKz0gJ1xcJyAnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgX19lcnIgPSBvdXQ7XG4gICAgICAgICAgICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgICAgICAgICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgICAgICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG91dCArPSAnIH0gJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgICAgIG91dCArPSAnIGlmIChlcnJvcnMgPT09ICc7XG4gICAgICAgICAgICBpZiAoJHRvcCkge1xuICAgICAgICAgICAgICBvdXQgKz0gJzAnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICdlcnJzXycgKyAoJGx2bCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXQgKz0gJykgeyAnO1xuICAgICAgICAgICAgJGNsb3NpbmdCcmFjZXMyICs9ICd9JztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICBvdXQgKz0gJyAnICsgKCRjbG9zaW5nQnJhY2VzMikgKyAnICc7XG4gIH1cbiAgaWYgKCR0b3ApIHtcbiAgICBpZiAoJGFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyBpZiAoZXJyb3JzID09PSAwKSByZXR1cm4gZGF0YTsgICAgICAgICAgICc7XG4gICAgICBvdXQgKz0gJyBlbHNlIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IodkVycm9ycyk7ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IHZFcnJvcnM7ICc7XG4gICAgICBvdXQgKz0gJyByZXR1cm4gZXJyb3JzID09PSAwOyAgICAgICAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9OyByZXR1cm4gdmFsaWRhdGU7JztcbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB2YXIgJyArICgkdmFsaWQpICsgJyA9IGVycm9ycyA9PT0gZXJyc18nICsgKCRsdmwpICsgJzsnO1xuICB9XG5cbiAgZnVuY3Rpb24gJHNob3VsZFVzZUdyb3VwKCRydWxlc0dyb3VwKSB7XG4gICAgdmFyIHJ1bGVzID0gJHJ1bGVzR3JvdXAucnVsZXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKylcbiAgICAgIGlmICgkc2hvdWxkVXNlUnVsZShydWxlc1tpXSkpIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZnVuY3Rpb24gJHNob3VsZFVzZVJ1bGUoJHJ1bGUpIHtcbiAgICByZXR1cm4gaXQuc2NoZW1hWyRydWxlLmtleXdvcmRdICE9PSB1bmRlZmluZWQgfHwgKCRydWxlLmltcGxlbWVudHMgJiYgJHJ1bGVJbXBsZW1lbnRzU29tZUtleXdvcmQoJHJ1bGUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uICRydWxlSW1wbGVtZW50c1NvbWVLZXl3b3JkKCRydWxlKSB7XG4gICAgdmFyIGltcGwgPSAkcnVsZS5pbXBsZW1lbnRzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW1wbC5sZW5ndGg7IGkrKylcbiAgICAgIGlmIChpdC5zY2hlbWFbaW1wbFtpXV0gIT09IHVuZGVmaW5lZCkgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciByZXNvbHZlID0gcmVxdWlyZSgnLi9yZXNvbHZlJylcbiAgLCB1dGlsID0gcmVxdWlyZSgnLi91dGlsJylcbiAgLCBlcnJvckNsYXNzZXMgPSByZXF1aXJlKCcuL2Vycm9yX2NsYXNzZXMnKVxuICAsIHN0YWJsZVN0cmluZ2lmeSA9IHJlcXVpcmUoJ2Zhc3QtanNvbi1zdGFibGUtc3RyaW5naWZ5Jyk7XG5cbnZhciB2YWxpZGF0ZUdlbmVyYXRvciA9IHJlcXVpcmUoJy4uL2RvdGpzL3ZhbGlkYXRlJyk7XG5cbi8qKlxuICogRnVuY3Rpb25zIGJlbG93IGFyZSB1c2VkIGluc2lkZSBjb21waWxlZCB2YWxpZGF0aW9ucyBmdW5jdGlvblxuICovXG5cbnZhciB1Y3MybGVuZ3RoID0gdXRpbC51Y3MybGVuZ3RoO1xudmFyIGVxdWFsID0gcmVxdWlyZSgnZmFzdC1kZWVwLWVxdWFsJyk7XG5cbi8vIHRoaXMgZXJyb3IgaXMgdGhyb3duIGJ5IGFzeW5jIHNjaGVtYXMgdG8gcmV0dXJuIHZhbGlkYXRpb24gZXJyb3JzIHZpYSBleGNlcHRpb25cbnZhciBWYWxpZGF0aW9uRXJyb3IgPSBlcnJvckNsYXNzZXMuVmFsaWRhdGlvbjtcblxubW9kdWxlLmV4cG9ydHMgPSBjb21waWxlO1xuXG5cbi8qKlxuICogQ29tcGlsZXMgc2NoZW1hIHRvIHZhbGlkYXRpb24gZnVuY3Rpb25cbiAqIEB0aGlzICAgQWp2XG4gKiBAcGFyYW0gIHtPYmplY3R9IHNjaGVtYSBzY2hlbWEgb2JqZWN0XG4gKiBAcGFyYW0gIHtPYmplY3R9IHJvb3Qgb2JqZWN0IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJvb3Qgc2NoZW1hIGZvciB0aGlzIHNjaGVtYVxuICogQHBhcmFtICB7T2JqZWN0fSBsb2NhbFJlZnMgdGhlIGhhc2ggb2YgbG9jYWwgcmVmZXJlbmNlcyBpbnNpZGUgdGhlIHNjaGVtYSAoY3JlYXRlZCBieSByZXNvbHZlLmlkKSwgdXNlZCBmb3IgaW5saW5lIHJlc29sdXRpb25cbiAqIEBwYXJhbSAge1N0cmluZ30gYmFzZUlkIGJhc2UgSUQgZm9yIElEcyBpbiB0aGUgc2NoZW1hXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gdmFsaWRhdGlvbiBmdW5jdGlvblxuICovXG5mdW5jdGlvbiBjb21waWxlKHNjaGVtYSwgcm9vdCwgbG9jYWxSZWZzLCBiYXNlSWQpIHtcbiAgLyoganNoaW50IHZhbGlkdGhpczogdHJ1ZSwgZXZpbDogdHJ1ZSAqL1xuICAvKiBlc2xpbnQgbm8tc2hhZG93OiAwICovXG4gIHZhciBzZWxmID0gdGhpc1xuICAgICwgb3B0cyA9IHRoaXMuX29wdHNcbiAgICAsIHJlZlZhbCA9IFsgdW5kZWZpbmVkIF1cbiAgICAsIHJlZnMgPSB7fVxuICAgICwgcGF0dGVybnMgPSBbXVxuICAgICwgcGF0dGVybnNIYXNoID0ge31cbiAgICAsIGRlZmF1bHRzID0gW11cbiAgICAsIGRlZmF1bHRzSGFzaCA9IHt9XG4gICAgLCBjdXN0b21SdWxlcyA9IFtdO1xuXG4gIHJvb3QgPSByb290IHx8IHsgc2NoZW1hOiBzY2hlbWEsIHJlZlZhbDogcmVmVmFsLCByZWZzOiByZWZzIH07XG5cbiAgdmFyIGMgPSBjaGVja0NvbXBpbGluZy5jYWxsKHRoaXMsIHNjaGVtYSwgcm9vdCwgYmFzZUlkKTtcbiAgdmFyIGNvbXBpbGF0aW9uID0gdGhpcy5fY29tcGlsYXRpb25zW2MuaW5kZXhdO1xuICBpZiAoYy5jb21waWxpbmcpIHJldHVybiAoY29tcGlsYXRpb24uY2FsbFZhbGlkYXRlID0gY2FsbFZhbGlkYXRlKTtcblxuICB2YXIgZm9ybWF0cyA9IHRoaXMuX2Zvcm1hdHM7XG4gIHZhciBSVUxFUyA9IHRoaXMuUlVMRVM7XG5cbiAgdHJ5IHtcbiAgICB2YXIgdiA9IGxvY2FsQ29tcGlsZShzY2hlbWEsIHJvb3QsIGxvY2FsUmVmcywgYmFzZUlkKTtcbiAgICBjb21waWxhdGlvbi52YWxpZGF0ZSA9IHY7XG4gICAgdmFyIGN2ID0gY29tcGlsYXRpb24uY2FsbFZhbGlkYXRlO1xuICAgIGlmIChjdikge1xuICAgICAgY3Yuc2NoZW1hID0gdi5zY2hlbWE7XG4gICAgICBjdi5lcnJvcnMgPSBudWxsO1xuICAgICAgY3YucmVmcyA9IHYucmVmcztcbiAgICAgIGN2LnJlZlZhbCA9IHYucmVmVmFsO1xuICAgICAgY3Yucm9vdCA9IHYucm9vdDtcbiAgICAgIGN2LiRhc3luYyA9IHYuJGFzeW5jO1xuICAgICAgaWYgKG9wdHMuc291cmNlQ29kZSkgY3Yuc291cmNlID0gdi5zb3VyY2U7XG4gICAgfVxuICAgIHJldHVybiB2O1xuICB9IGZpbmFsbHkge1xuICAgIGVuZENvbXBpbGluZy5jYWxsKHRoaXMsIHNjaGVtYSwgcm9vdCwgYmFzZUlkKTtcbiAgfVxuXG4gIC8qIEB0aGlzICAgeyp9IC0gY3VzdG9tIGNvbnRleHQsIHNlZSBwYXNzQ29udGV4dCBvcHRpb24gKi9cbiAgZnVuY3Rpb24gY2FsbFZhbGlkYXRlKCkge1xuICAgIC8qIGpzaGludCB2YWxpZHRoaXM6IHRydWUgKi9cbiAgICB2YXIgdmFsaWRhdGUgPSBjb21waWxhdGlvbi52YWxpZGF0ZTtcbiAgICB2YXIgcmVzdWx0ID0gdmFsaWRhdGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBjYWxsVmFsaWRhdGUuZXJyb3JzID0gdmFsaWRhdGUuZXJyb3JzO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBsb2NhbENvbXBpbGUoX3NjaGVtYSwgX3Jvb3QsIGxvY2FsUmVmcywgYmFzZUlkKSB7XG4gICAgdmFyIGlzUm9vdCA9ICFfcm9vdCB8fCAoX3Jvb3QgJiYgX3Jvb3Quc2NoZW1hID09IF9zY2hlbWEpO1xuICAgIGlmIChfcm9vdC5zY2hlbWEgIT0gcm9vdC5zY2hlbWEpXG4gICAgICByZXR1cm4gY29tcGlsZS5jYWxsKHNlbGYsIF9zY2hlbWEsIF9yb290LCBsb2NhbFJlZnMsIGJhc2VJZCk7XG5cbiAgICB2YXIgJGFzeW5jID0gX3NjaGVtYS4kYXN5bmMgPT09IHRydWU7XG5cbiAgICB2YXIgc291cmNlQ29kZSA9IHZhbGlkYXRlR2VuZXJhdG9yKHtcbiAgICAgIGlzVG9wOiB0cnVlLFxuICAgICAgc2NoZW1hOiBfc2NoZW1hLFxuICAgICAgaXNSb290OiBpc1Jvb3QsXG4gICAgICBiYXNlSWQ6IGJhc2VJZCxcbiAgICAgIHJvb3Q6IF9yb290LFxuICAgICAgc2NoZW1hUGF0aDogJycsXG4gICAgICBlcnJTY2hlbWFQYXRoOiAnIycsXG4gICAgICBlcnJvclBhdGg6ICdcIlwiJyxcbiAgICAgIE1pc3NpbmdSZWZFcnJvcjogZXJyb3JDbGFzc2VzLk1pc3NpbmdSZWYsXG4gICAgICBSVUxFUzogUlVMRVMsXG4gICAgICB2YWxpZGF0ZTogdmFsaWRhdGVHZW5lcmF0b3IsXG4gICAgICB1dGlsOiB1dGlsLFxuICAgICAgcmVzb2x2ZTogcmVzb2x2ZSxcbiAgICAgIHJlc29sdmVSZWY6IHJlc29sdmVSZWYsXG4gICAgICB1c2VQYXR0ZXJuOiB1c2VQYXR0ZXJuLFxuICAgICAgdXNlRGVmYXVsdDogdXNlRGVmYXVsdCxcbiAgICAgIHVzZUN1c3RvbVJ1bGU6IHVzZUN1c3RvbVJ1bGUsXG4gICAgICBvcHRzOiBvcHRzLFxuICAgICAgZm9ybWF0czogZm9ybWF0cyxcbiAgICAgIGxvZ2dlcjogc2VsZi5sb2dnZXIsXG4gICAgICBzZWxmOiBzZWxmXG4gICAgfSk7XG5cbiAgICBzb3VyY2VDb2RlID0gdmFycyhyZWZWYWwsIHJlZlZhbENvZGUpICsgdmFycyhwYXR0ZXJucywgcGF0dGVybkNvZGUpXG4gICAgICAgICAgICAgICAgICAgKyB2YXJzKGRlZmF1bHRzLCBkZWZhdWx0Q29kZSkgKyB2YXJzKGN1c3RvbVJ1bGVzLCBjdXN0b21SdWxlQ29kZSlcbiAgICAgICAgICAgICAgICAgICArIHNvdXJjZUNvZGU7XG5cbiAgICBpZiAob3B0cy5wcm9jZXNzQ29kZSkgc291cmNlQ29kZSA9IG9wdHMucHJvY2Vzc0NvZGUoc291cmNlQ29kZSwgX3NjaGVtYSk7XG4gICAgLy8gY29uc29sZS5sb2coJ1xcblxcblxcbiAqKiogXFxuJywgSlNPTi5zdHJpbmdpZnkoc291cmNlQ29kZSkpO1xuICAgIHZhciB2YWxpZGF0ZTtcbiAgICB0cnkge1xuICAgICAgdmFyIG1ha2VWYWxpZGF0ZSA9IG5ldyBGdW5jdGlvbihcbiAgICAgICAgJ3NlbGYnLFxuICAgICAgICAnUlVMRVMnLFxuICAgICAgICAnZm9ybWF0cycsXG4gICAgICAgICdyb290JyxcbiAgICAgICAgJ3JlZlZhbCcsXG4gICAgICAgICdkZWZhdWx0cycsXG4gICAgICAgICdjdXN0b21SdWxlcycsXG4gICAgICAgICdlcXVhbCcsXG4gICAgICAgICd1Y3MybGVuZ3RoJyxcbiAgICAgICAgJ1ZhbGlkYXRpb25FcnJvcicsXG4gICAgICAgIHNvdXJjZUNvZGVcbiAgICAgICk7XG5cbiAgICAgIHZhbGlkYXRlID0gbWFrZVZhbGlkYXRlKFxuICAgICAgICBzZWxmLFxuICAgICAgICBSVUxFUyxcbiAgICAgICAgZm9ybWF0cyxcbiAgICAgICAgcm9vdCxcbiAgICAgICAgcmVmVmFsLFxuICAgICAgICBkZWZhdWx0cyxcbiAgICAgICAgY3VzdG9tUnVsZXMsXG4gICAgICAgIGVxdWFsLFxuICAgICAgICB1Y3MybGVuZ3RoLFxuICAgICAgICBWYWxpZGF0aW9uRXJyb3JcbiAgICAgICk7XG5cbiAgICAgIHJlZlZhbFswXSA9IHZhbGlkYXRlO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoJ0Vycm9yIGNvbXBpbGluZyBzY2hlbWEsIGZ1bmN0aW9uIGNvZGU6Jywgc291cmNlQ29kZSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIHZhbGlkYXRlLnNjaGVtYSA9IF9zY2hlbWE7XG4gICAgdmFsaWRhdGUuZXJyb3JzID0gbnVsbDtcbiAgICB2YWxpZGF0ZS5yZWZzID0gcmVmcztcbiAgICB2YWxpZGF0ZS5yZWZWYWwgPSByZWZWYWw7XG4gICAgdmFsaWRhdGUucm9vdCA9IGlzUm9vdCA/IHZhbGlkYXRlIDogX3Jvb3Q7XG4gICAgaWYgKCRhc3luYykgdmFsaWRhdGUuJGFzeW5jID0gdHJ1ZTtcbiAgICBpZiAob3B0cy5zb3VyY2VDb2RlID09PSB0cnVlKSB7XG4gICAgICB2YWxpZGF0ZS5zb3VyY2UgPSB7XG4gICAgICAgIGNvZGU6IHNvdXJjZUNvZGUsXG4gICAgICAgIHBhdHRlcm5zOiBwYXR0ZXJucyxcbiAgICAgICAgZGVmYXVsdHM6IGRlZmF1bHRzXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc29sdmVSZWYoYmFzZUlkLCByZWYsIGlzUm9vdCkge1xuICAgIHJlZiA9IHJlc29sdmUudXJsKGJhc2VJZCwgcmVmKTtcbiAgICB2YXIgcmVmSW5kZXggPSByZWZzW3JlZl07XG4gICAgdmFyIF9yZWZWYWwsIHJlZkNvZGU7XG4gICAgaWYgKHJlZkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIF9yZWZWYWwgPSByZWZWYWxbcmVmSW5kZXhdO1xuICAgICAgcmVmQ29kZSA9ICdyZWZWYWxbJyArIHJlZkluZGV4ICsgJ10nO1xuICAgICAgcmV0dXJuIHJlc29sdmVkUmVmKF9yZWZWYWwsIHJlZkNvZGUpO1xuICAgIH1cbiAgICBpZiAoIWlzUm9vdCAmJiByb290LnJlZnMpIHtcbiAgICAgIHZhciByb290UmVmSWQgPSByb290LnJlZnNbcmVmXTtcbiAgICAgIGlmIChyb290UmVmSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBfcmVmVmFsID0gcm9vdC5yZWZWYWxbcm9vdFJlZklkXTtcbiAgICAgICAgcmVmQ29kZSA9IGFkZExvY2FsUmVmKHJlZiwgX3JlZlZhbCk7XG4gICAgICAgIHJldHVybiByZXNvbHZlZFJlZihfcmVmVmFsLCByZWZDb2RlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZWZDb2RlID0gYWRkTG9jYWxSZWYocmVmKTtcbiAgICB2YXIgdiA9IHJlc29sdmUuY2FsbChzZWxmLCBsb2NhbENvbXBpbGUsIHJvb3QsIHJlZik7XG4gICAgaWYgKHYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGxvY2FsU2NoZW1hID0gbG9jYWxSZWZzICYmIGxvY2FsUmVmc1tyZWZdO1xuICAgICAgaWYgKGxvY2FsU2NoZW1hKSB7XG4gICAgICAgIHYgPSByZXNvbHZlLmlubGluZVJlZihsb2NhbFNjaGVtYSwgb3B0cy5pbmxpbmVSZWZzKVxuICAgICAgICAgICAgPyBsb2NhbFNjaGVtYVxuICAgICAgICAgICAgOiBjb21waWxlLmNhbGwoc2VsZiwgbG9jYWxTY2hlbWEsIHJvb3QsIGxvY2FsUmVmcywgYmFzZUlkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZW1vdmVMb2NhbFJlZihyZWYpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXBsYWNlTG9jYWxSZWYocmVmLCB2KTtcbiAgICAgIHJldHVybiByZXNvbHZlZFJlZih2LCByZWZDb2RlKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBhZGRMb2NhbFJlZihyZWYsIHYpIHtcbiAgICB2YXIgcmVmSWQgPSByZWZWYWwubGVuZ3RoO1xuICAgIHJlZlZhbFtyZWZJZF0gPSB2O1xuICAgIHJlZnNbcmVmXSA9IHJlZklkO1xuICAgIHJldHVybiAncmVmVmFsJyArIHJlZklkO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVtb3ZlTG9jYWxSZWYocmVmKSB7XG4gICAgZGVsZXRlIHJlZnNbcmVmXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlcGxhY2VMb2NhbFJlZihyZWYsIHYpIHtcbiAgICB2YXIgcmVmSWQgPSByZWZzW3JlZl07XG4gICAgcmVmVmFsW3JlZklkXSA9IHY7XG4gIH1cblxuICBmdW5jdGlvbiByZXNvbHZlZFJlZihyZWZWYWwsIGNvZGUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHJlZlZhbCA9PSAnb2JqZWN0JyB8fCB0eXBlb2YgcmVmVmFsID09ICdib29sZWFuJ1xuICAgICAgICAgICAgPyB7IGNvZGU6IGNvZGUsIHNjaGVtYTogcmVmVmFsLCBpbmxpbmU6IHRydWUgfVxuICAgICAgICAgICAgOiB7IGNvZGU6IGNvZGUsICRhc3luYzogcmVmVmFsICYmICEhcmVmVmFsLiRhc3luYyB9O1xuICB9XG5cbiAgZnVuY3Rpb24gdXNlUGF0dGVybihyZWdleFN0cikge1xuICAgIHZhciBpbmRleCA9IHBhdHRlcm5zSGFzaFtyZWdleFN0cl07XG4gICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGluZGV4ID0gcGF0dGVybnNIYXNoW3JlZ2V4U3RyXSA9IHBhdHRlcm5zLmxlbmd0aDtcbiAgICAgIHBhdHRlcm5zW2luZGV4XSA9IHJlZ2V4U3RyO1xuICAgIH1cbiAgICByZXR1cm4gJ3BhdHRlcm4nICsgaW5kZXg7XG4gIH1cblxuICBmdW5jdGlvbiB1c2VEZWZhdWx0KHZhbHVlKSB7XG4gICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmV0dXJuICcnICsgdmFsdWU7XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICByZXR1cm4gdXRpbC50b1F1b3RlZFN0cmluZyh2YWx1ZSk7XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiAnbnVsbCc7XG4gICAgICAgIHZhciB2YWx1ZVN0ciA9IHN0YWJsZVN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgIHZhciBpbmRleCA9IGRlZmF1bHRzSGFzaFt2YWx1ZVN0cl07XG4gICAgICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaW5kZXggPSBkZWZhdWx0c0hhc2hbdmFsdWVTdHJdID0gZGVmYXVsdHMubGVuZ3RoO1xuICAgICAgICAgIGRlZmF1bHRzW2luZGV4XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnZGVmYXVsdCcgKyBpbmRleDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB1c2VDdXN0b21SdWxlKHJ1bGUsIHNjaGVtYSwgcGFyZW50U2NoZW1hLCBpdCkge1xuICAgIGlmIChzZWxmLl9vcHRzLnZhbGlkYXRlU2NoZW1hICE9PSBmYWxzZSkge1xuICAgICAgdmFyIGRlcHMgPSBydWxlLmRlZmluaXRpb24uZGVwZW5kZW5jaWVzO1xuICAgICAgaWYgKGRlcHMgJiYgIWRlcHMuZXZlcnkoZnVuY3Rpb24oa2V5d29yZCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcmVudFNjaGVtYSwga2V5d29yZCk7XG4gICAgICB9KSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdwYXJlbnQgc2NoZW1hIG11c3QgaGF2ZSBhbGwgcmVxdWlyZWQga2V5d29yZHM6ICcgKyBkZXBzLmpvaW4oJywnKSk7XG5cbiAgICAgIHZhciB2YWxpZGF0ZVNjaGVtYSA9IHJ1bGUuZGVmaW5pdGlvbi52YWxpZGF0ZVNjaGVtYTtcbiAgICAgIGlmICh2YWxpZGF0ZVNjaGVtYSkge1xuICAgICAgICB2YXIgdmFsaWQgPSB2YWxpZGF0ZVNjaGVtYShzY2hlbWEpO1xuICAgICAgICBpZiAoIXZhbGlkKSB7XG4gICAgICAgICAgdmFyIG1lc3NhZ2UgPSAna2V5d29yZCBzY2hlbWEgaXMgaW52YWxpZDogJyArIHNlbGYuZXJyb3JzVGV4dCh2YWxpZGF0ZVNjaGVtYS5lcnJvcnMpO1xuICAgICAgICAgIGlmIChzZWxmLl9vcHRzLnZhbGlkYXRlU2NoZW1hID09ICdsb2cnKSBzZWxmLmxvZ2dlci5lcnJvcihtZXNzYWdlKTtcbiAgICAgICAgICBlbHNlIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBjb21waWxlID0gcnVsZS5kZWZpbml0aW9uLmNvbXBpbGVcbiAgICAgICwgaW5saW5lID0gcnVsZS5kZWZpbml0aW9uLmlubGluZVxuICAgICAgLCBtYWNybyA9IHJ1bGUuZGVmaW5pdGlvbi5tYWNybztcblxuICAgIHZhciB2YWxpZGF0ZTtcbiAgICBpZiAoY29tcGlsZSkge1xuICAgICAgdmFsaWRhdGUgPSBjb21waWxlLmNhbGwoc2VsZiwgc2NoZW1hLCBwYXJlbnRTY2hlbWEsIGl0KTtcbiAgICB9IGVsc2UgaWYgKG1hY3JvKSB7XG4gICAgICB2YWxpZGF0ZSA9IG1hY3JvLmNhbGwoc2VsZiwgc2NoZW1hLCBwYXJlbnRTY2hlbWEsIGl0KTtcbiAgICAgIGlmIChvcHRzLnZhbGlkYXRlU2NoZW1hICE9PSBmYWxzZSkgc2VsZi52YWxpZGF0ZVNjaGVtYSh2YWxpZGF0ZSwgdHJ1ZSk7XG4gICAgfSBlbHNlIGlmIChpbmxpbmUpIHtcbiAgICAgIHZhbGlkYXRlID0gaW5saW5lLmNhbGwoc2VsZiwgaXQsIHJ1bGUua2V5d29yZCwgc2NoZW1hLCBwYXJlbnRTY2hlbWEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWxpZGF0ZSA9IHJ1bGUuZGVmaW5pdGlvbi52YWxpZGF0ZTtcbiAgICAgIGlmICghdmFsaWRhdGUpIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGUgPT09IHVuZGVmaW5lZClcbiAgICAgIHRocm93IG5ldyBFcnJvcignY3VzdG9tIGtleXdvcmQgXCInICsgcnVsZS5rZXl3b3JkICsgJ1wiZmFpbGVkIHRvIGNvbXBpbGUnKTtcblxuICAgIHZhciBpbmRleCA9IGN1c3RvbVJ1bGVzLmxlbmd0aDtcbiAgICBjdXN0b21SdWxlc1tpbmRleF0gPSB2YWxpZGF0ZTtcblxuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiAnY3VzdG9tUnVsZScgKyBpbmRleCxcbiAgICAgIHZhbGlkYXRlOiB2YWxpZGF0ZVxuICAgIH07XG4gIH1cbn1cblxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgc2NoZW1hIGlzIGN1cnJlbnRseSBjb21waWxlZFxuICogQHRoaXMgICBBanZcbiAqIEBwYXJhbSAge09iamVjdH0gc2NoZW1hIHNjaGVtYSB0byBjb21waWxlXG4gKiBAcGFyYW0gIHtPYmplY3R9IHJvb3Qgcm9vdCBvYmplY3RcbiAqIEBwYXJhbSAge1N0cmluZ30gYmFzZUlkIGJhc2Ugc2NoZW1hIElEXG4gKiBAcmV0dXJuIHtPYmplY3R9IG9iamVjdCB3aXRoIHByb3BlcnRpZXMgXCJpbmRleFwiIChjb21waWxhdGlvbiBpbmRleCkgYW5kIFwiY29tcGlsaW5nXCIgKGJvb2xlYW4pXG4gKi9cbmZ1bmN0aW9uIGNoZWNrQ29tcGlsaW5nKHNjaGVtYSwgcm9vdCwgYmFzZUlkKSB7XG4gIC8qIGpzaGludCB2YWxpZHRoaXM6IHRydWUgKi9cbiAgdmFyIGluZGV4ID0gY29tcEluZGV4LmNhbGwodGhpcywgc2NoZW1hLCByb290LCBiYXNlSWQpO1xuICBpZiAoaW5kZXggPj0gMCkgcmV0dXJuIHsgaW5kZXg6IGluZGV4LCBjb21waWxpbmc6IHRydWUgfTtcbiAgaW5kZXggPSB0aGlzLl9jb21waWxhdGlvbnMubGVuZ3RoO1xuICB0aGlzLl9jb21waWxhdGlvbnNbaW5kZXhdID0ge1xuICAgIHNjaGVtYTogc2NoZW1hLFxuICAgIHJvb3Q6IHJvb3QsXG4gICAgYmFzZUlkOiBiYXNlSWRcbiAgfTtcbiAgcmV0dXJuIHsgaW5kZXg6IGluZGV4LCBjb21waWxpbmc6IGZhbHNlIH07XG59XG5cblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBzY2hlbWEgZnJvbSB0aGUgY3VycmVudGx5IGNvbXBpbGVkIGxpc3RcbiAqIEB0aGlzICAgQWp2XG4gKiBAcGFyYW0gIHtPYmplY3R9IHNjaGVtYSBzY2hlbWEgdG8gY29tcGlsZVxuICogQHBhcmFtICB7T2JqZWN0fSByb290IHJvb3Qgb2JqZWN0XG4gKiBAcGFyYW0gIHtTdHJpbmd9IGJhc2VJZCBiYXNlIHNjaGVtYSBJRFxuICovXG5mdW5jdGlvbiBlbmRDb21waWxpbmcoc2NoZW1hLCByb290LCBiYXNlSWQpIHtcbiAgLyoganNoaW50IHZhbGlkdGhpczogdHJ1ZSAqL1xuICB2YXIgaSA9IGNvbXBJbmRleC5jYWxsKHRoaXMsIHNjaGVtYSwgcm9vdCwgYmFzZUlkKTtcbiAgaWYgKGkgPj0gMCkgdGhpcy5fY29tcGlsYXRpb25zLnNwbGljZShpLCAxKTtcbn1cblxuXG4vKipcbiAqIEluZGV4IG9mIHNjaGVtYSBjb21waWxhdGlvbiBpbiB0aGUgY3VycmVudGx5IGNvbXBpbGVkIGxpc3RcbiAqIEB0aGlzICAgQWp2XG4gKiBAcGFyYW0gIHtPYmplY3R9IHNjaGVtYSBzY2hlbWEgdG8gY29tcGlsZVxuICogQHBhcmFtICB7T2JqZWN0fSByb290IHJvb3Qgb2JqZWN0XG4gKiBAcGFyYW0gIHtTdHJpbmd9IGJhc2VJZCBiYXNlIHNjaGVtYSBJRFxuICogQHJldHVybiB7SW50ZWdlcn0gY29tcGlsYXRpb24gaW5kZXhcbiAqL1xuZnVuY3Rpb24gY29tcEluZGV4KHNjaGVtYSwgcm9vdCwgYmFzZUlkKSB7XG4gIC8qIGpzaGludCB2YWxpZHRoaXM6IHRydWUgKi9cbiAgZm9yICh2YXIgaT0wOyBpPHRoaXMuX2NvbXBpbGF0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBjID0gdGhpcy5fY29tcGlsYXRpb25zW2ldO1xuICAgIGlmIChjLnNjaGVtYSA9PSBzY2hlbWEgJiYgYy5yb290ID09IHJvb3QgJiYgYy5iYXNlSWQgPT0gYmFzZUlkKSByZXR1cm4gaTtcbiAgfVxuICByZXR1cm4gLTE7XG59XG5cblxuZnVuY3Rpb24gcGF0dGVybkNvZGUoaSwgcGF0dGVybnMpIHtcbiAgcmV0dXJuICd2YXIgcGF0dGVybicgKyBpICsgJyA9IG5ldyBSZWdFeHAoJyArIHV0aWwudG9RdW90ZWRTdHJpbmcocGF0dGVybnNbaV0pICsgJyk7Jztcbn1cblxuXG5mdW5jdGlvbiBkZWZhdWx0Q29kZShpKSB7XG4gIHJldHVybiAndmFyIGRlZmF1bHQnICsgaSArICcgPSBkZWZhdWx0c1snICsgaSArICddOyc7XG59XG5cblxuZnVuY3Rpb24gcmVmVmFsQ29kZShpLCByZWZWYWwpIHtcbiAgcmV0dXJuIHJlZlZhbFtpXSA9PT0gdW5kZWZpbmVkID8gJycgOiAndmFyIHJlZlZhbCcgKyBpICsgJyA9IHJlZlZhbFsnICsgaSArICddOyc7XG59XG5cblxuZnVuY3Rpb24gY3VzdG9tUnVsZUNvZGUoaSkge1xuICByZXR1cm4gJ3ZhciBjdXN0b21SdWxlJyArIGkgKyAnID0gY3VzdG9tUnVsZXNbJyArIGkgKyAnXTsnO1xufVxuXG5cbmZ1bmN0aW9uIHZhcnMoYXJyLCBzdGF0ZW1lbnQpIHtcbiAgaWYgKCFhcnIubGVuZ3RoKSByZXR1cm4gJyc7XG4gIHZhciBjb2RlID0gJyc7XG4gIGZvciAodmFyIGk9MDsgaTxhcnIubGVuZ3RoOyBpKyspXG4gICAgY29kZSArPSBzdGF0ZW1lbnQoaSwgYXJyKTtcbiAgcmV0dXJuIGNvZGU7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBDYWNoZSA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gQ2FjaGUoKSB7XG4gIHRoaXMuX2NhY2hlID0ge307XG59O1xuXG5cbkNhY2hlLnByb3RvdHlwZS5wdXQgPSBmdW5jdGlvbiBDYWNoZV9wdXQoa2V5LCB2YWx1ZSkge1xuICB0aGlzLl9jYWNoZVtrZXldID0gdmFsdWU7XG59O1xuXG5cbkNhY2hlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiBDYWNoZV9nZXQoa2V5KSB7XG4gIHJldHVybiB0aGlzLl9jYWNoZVtrZXldO1xufTtcblxuXG5DYWNoZS5wcm90b3R5cGUuZGVsID0gZnVuY3Rpb24gQ2FjaGVfZGVsKGtleSkge1xuICBkZWxldGUgdGhpcy5fY2FjaGVba2V5XTtcbn07XG5cblxuQ2FjaGUucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gQ2FjaGVfY2xlYXIoKSB7XG4gIHRoaXMuX2NhY2hlID0ge307XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKTtcblxudmFyIERBVEUgPSAvXihcXGRcXGRcXGRcXGQpLShcXGRcXGQpLShcXGRcXGQpJC87XG52YXIgREFZUyA9IFswLDMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtcbnZhciBUSU1FID0gL14oXFxkXFxkKTooXFxkXFxkKTooXFxkXFxkKShcXC5cXGQrKT8oenxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPyk/JC9pO1xudmFyIEhPU1ROQU1FID0gL14oPz0uezEsMjUzfVxcLj8kKVthLXowLTldKD86W2EtejAtOS1dezAsNjF9W2EtejAtOV0pPyg/OlxcLlthLXowLTldKD86Wy0wLTlhLXpdezAsNjF9WzAtOWEtel0pPykqXFwuPyQvaTtcbnZhciBVUkkgPSAvXig/OlthLXpdW2EtejAtOStcXC0uXSo6KSg/OlxcLz9cXC8oPzooPzpbYS16MC05XFwtLl9+ISQmJygpKissOz06XXwlWzAtOWEtZl17Mn0pKkApPyg/OlxcWyg/Oig/Oig/Oig/OlswLTlhLWZdezEsNH06KXs2fXw6Oig/OlswLTlhLWZdezEsNH06KXs1fXwoPzpbMC05YS1mXXsxLDR9KT86Oig/OlswLTlhLWZdezEsNH06KXs0fXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCwxfVswLTlhLWZdezEsNH0pPzo6KD86WzAtOWEtZl17MSw0fTopezN9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDJ9WzAtOWEtZl17MSw0fSk/OjooPzpbMC05YS1mXXsxLDR9Oil7Mn18KD86KD86WzAtOWEtZl17MSw0fTopezAsM31bMC05YS1mXXsxLDR9KT86OlswLTlhLWZdezEsNH06fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDR9WzAtOWEtZl17MSw0fSk/OjopKD86WzAtOWEtZl17MSw0fTpbMC05YS1mXXsxLDR9fCg/Oig/OjI1WzAtNV18MlswLTRdXFxkfFswMV0/XFxkXFxkPylcXC4pezN9KD86MjVbMC01XXwyWzAtNF1cXGR8WzAxXT9cXGRcXGQ/KSl8KD86KD86WzAtOWEtZl17MSw0fTopezAsNX1bMC05YS1mXXsxLDR9KT86OlswLTlhLWZdezEsNH18KD86KD86WzAtOWEtZl17MSw0fTopezAsNn1bMC05YS1mXXsxLDR9KT86Oil8W1Z2XVswLTlhLWZdK1xcLlthLXowLTlcXC0uX34hJCYnKCkqKyw7PTpdKylcXF18KD86KD86MjVbMC01XXwyWzAtNF1cXGR8WzAxXT9cXGRcXGQ/KVxcLil7M30oPzoyNVswLTVdfDJbMC00XVxcZHxbMDFdP1xcZFxcZD8pfCg/OlthLXowLTlcXC0uX34hJCYnKCkqKyw7PV18JVswLTlhLWZdezJ9KSopKD86OlxcZCopPyg/OlxcLyg/OlthLXowLTlcXC0uX34hJCYnKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKikqfFxcLyg/Oig/OlthLXowLTlcXC0uX34hJCYnKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKyg/OlxcLyg/OlthLXowLTlcXC0uX34hJCYnKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKikqKT98KD86W2EtejAtOVxcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkrKD86XFwvKD86W2EtejAtOVxcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSopKD86XFw/KD86W2EtejAtOVxcLS5ffiEkJicoKSorLDs9OkAvP118JVswLTlhLWZdezJ9KSopPyg/OiMoPzpbYS16MC05XFwtLl9+ISQmJygpKissOz06QC8/XXwlWzAtOWEtZl17Mn0pKik/JC9pO1xudmFyIFVSSVJFRiA9IC9eKD86W2Etel1bYS16MC05K1xcLS5dKjopPyg/OlxcLz9cXC8oPzooPzpbYS16MC05XFwtLl9+ISQmJygpKissOz06XXwlWzAtOWEtZl17Mn0pKkApPyg/OlxcWyg/Oig/Oig/Oig/OlswLTlhLWZdezEsNH06KXs2fXw6Oig/OlswLTlhLWZdezEsNH06KXs1fXwoPzpbMC05YS1mXXsxLDR9KT86Oig/OlswLTlhLWZdezEsNH06KXs0fXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCwxfVswLTlhLWZdezEsNH0pPzo6KD86WzAtOWEtZl17MSw0fTopezN9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDJ9WzAtOWEtZl17MSw0fSk/OjooPzpbMC05YS1mXXsxLDR9Oil7Mn18KD86KD86WzAtOWEtZl17MSw0fTopezAsM31bMC05YS1mXXsxLDR9KT86OlswLTlhLWZdezEsNH06fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDR9WzAtOWEtZl17MSw0fSk/OjopKD86WzAtOWEtZl17MSw0fTpbMC05YS1mXXsxLDR9fCg/Oig/OjI1WzAtNV18MlswLTRdXFxkfFswMV0/XFxkXFxkPylcXC4pezN9KD86MjVbMC01XXwyWzAtNF1cXGR8WzAxXT9cXGRcXGQ/KSl8KD86KD86WzAtOWEtZl17MSw0fTopezAsNX1bMC05YS1mXXsxLDR9KT86OlswLTlhLWZdezEsNH18KD86KD86WzAtOWEtZl17MSw0fTopezAsNn1bMC05YS1mXXsxLDR9KT86Oil8W1Z2XVswLTlhLWZdK1xcLlthLXowLTlcXC0uX34hJCYnKCkqKyw7PTpdKylcXF18KD86KD86MjVbMC01XXwyWzAtNF1cXGR8WzAxXT9cXGRcXGQ/KVxcLil7M30oPzoyNVswLTVdfDJbMC00XVxcZHxbMDFdP1xcZFxcZD8pfCg/OlthLXowLTlcXC0uX34hJCYnXCIoKSorLDs9XXwlWzAtOWEtZl17Mn0pKikoPzo6XFxkKik/KD86XFwvKD86W2EtejAtOVxcLS5ffiEkJidcIigpKissOz06QF18JVswLTlhLWZdezJ9KSopKnxcXC8oPzooPzpbYS16MC05XFwtLl9+ISQmJ1wiKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKyg/OlxcLyg/OlthLXowLTlcXC0uX34hJCYnXCIoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSopP3woPzpbYS16MC05XFwtLl9+ISQmJ1wiKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKyg/OlxcLyg/OlthLXowLTlcXC0uX34hJCYnXCIoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSopPyg/OlxcPyg/OlthLXowLTlcXC0uX34hJCYnXCIoKSorLDs9OkAvP118JVswLTlhLWZdezJ9KSopPyg/OiMoPzpbYS16MC05XFwtLl9+ISQmJ1wiKCkqKyw7PTpALz9dfCVbMC05YS1mXXsyfSkqKT8kL2k7XG4vLyB1cmktdGVtcGxhdGU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTcwXG52YXIgVVJJVEVNUExBVEUgPSAvXig/Oig/OlteXFx4MDAtXFx4MjBcIic8PiVcXFxcXmB7fH1dfCVbMC05YS1mXXsyfSl8XFx7WysjLi87PyY9LCFAfF0/KD86W2EtejAtOV9dfCVbMC05YS1mXXsyfSkrKD86OlsxLTldWzAtOV17MCwzfXxcXCopPyg/OiwoPzpbYS16MC05X118JVswLTlhLWZdezJ9KSsoPzo6WzEtOV1bMC05XXswLDN9fFxcKik/KSpcXH0pKiQvaTtcbi8vIEZvciB0aGUgc291cmNlOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9kcGVyaW5pLzcyOTI5NFxuLy8gRm9yIHRlc3QgY2FzZXM6IGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9kZW1vL3VybC1yZWdleFxuLy8gQHRvZG8gRGVsZXRlIGN1cnJlbnQgVVJMIGluIGZhdm91ciBvZiB0aGUgY29tbWVudGVkIG91dCBVUkwgcnVsZSB3aGVuIHRoaXMgaXNzdWUgaXMgZml4ZWQgaHR0cHM6Ly9naXRodWIuY29tL2VzbGludC9lc2xpbnQvaXNzdWVzLzc5ODMuXG4vLyB2YXIgVVJMID0gL14oPzooPzpodHRwcz98ZnRwKTpcXC9cXC8pKD86XFxTKyg/OjpcXFMqKT9AKT8oPzooPyExMCg/OlxcLlxcZHsxLDN9KXszfSkoPyExMjcoPzpcXC5cXGR7MSwzfSl7M30pKD8hMTY5XFwuMjU0KD86XFwuXFxkezEsM30pezJ9KSg/ITE5MlxcLjE2OCg/OlxcLlxcZHsxLDN9KXsyfSkoPyExNzJcXC4oPzoxWzYtOV18MlxcZHwzWzAtMV0pKD86XFwuXFxkezEsM30pezJ9KSg/OlsxLTldXFxkP3wxXFxkXFxkfDJbMDFdXFxkfDIyWzAtM10pKD86XFwuKD86MT9cXGR7MSwyfXwyWzAtNF1cXGR8MjVbMC01XSkpezJ9KD86XFwuKD86WzEtOV1cXGQ/fDFcXGRcXGR8MlswLTRdXFxkfDI1WzAtNF0pKXwoPzooPzpbYS16XFx1ezAwYTF9LVxcdXtmZmZmfTAtOV0rLSkqW2EtelxcdXswMGExfS1cXHV7ZmZmZn0wLTldKykoPzpcXC4oPzpbYS16XFx1ezAwYTF9LVxcdXtmZmZmfTAtOV0rLSkqW2EtelxcdXswMGExfS1cXHV7ZmZmZn0wLTldKykqKD86XFwuKD86W2EtelxcdXswMGExfS1cXHV7ZmZmZn1dezIsfSkpKSg/OjpcXGR7Miw1fSk/KD86XFwvW15cXHNdKik/JC9pdTtcbnZhciBVUkwgPSAvXig/Oig/Omh0dHBbc1xcdTAxN0ZdP3xmdHApOlxcL1xcLykoPzooPzpbXFwwLVxceDA4XFx4MEUtXFx4MUYhLVxceDlGXFx4QTEtXFx1MTY3RlxcdTE2ODEtXFx1MUZGRlxcdTIwMEItXFx1MjAyN1xcdTIwMkEtXFx1MjAyRVxcdTIwMzAtXFx1MjA1RVxcdTIwNjAtXFx1MkZGRlxcdTMwMDEtXFx1RDdGRlxcdUUwMDAtXFx1RkVGRVxcdUZGMDAtXFx1RkZGRl18W1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXFx1RDgwMC1cXHVEQkZGXSg/IVtcXHVEQzAwLVxcdURGRkZdKXwoPzpbXlxcdUQ4MDAtXFx1REJGRl18XilbXFx1REMwMC1cXHVERkZGXSkrKD86Oig/OltcXDAtXFx4MDhcXHgwRS1cXHgxRiEtXFx4OUZcXHhBMS1cXHUxNjdGXFx1MTY4MS1cXHUxRkZGXFx1MjAwQi1cXHUyMDI3XFx1MjAyQS1cXHUyMDJFXFx1MjAzMC1cXHUyMDVFXFx1MjA2MC1cXHUyRkZGXFx1MzAwMS1cXHVEN0ZGXFx1RTAwMC1cXHVGRUZFXFx1RkYwMC1cXHVGRkZGXXxbXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdKSopP0ApPyg/Oig/ITEwKD86XFwuWzAtOV17MSwzfSl7M30pKD8hMTI3KD86XFwuWzAtOV17MSwzfSl7M30pKD8hMTY5XFwuMjU0KD86XFwuWzAtOV17MSwzfSl7Mn0pKD8hMTkyXFwuMTY4KD86XFwuWzAtOV17MSwzfSl7Mn0pKD8hMTcyXFwuKD86MVs2LTldfDJbMC05XXwzWzAxXSkoPzpcXC5bMC05XXsxLDN9KXsyfSkoPzpbMS05XVswLTldP3wxWzAtOV1bMC05XXwyWzAxXVswLTldfDIyWzAtM10pKD86XFwuKD86MT9bMC05XXsxLDJ9fDJbMC00XVswLTldfDI1WzAtNV0pKXsyfSg/OlxcLig/OlsxLTldWzAtOV0/fDFbMC05XVswLTldfDJbMC00XVswLTldfDI1WzAtNF0pKXwoPzooPzooPzpbMC05YS16XFx4QTEtXFx1RDdGRlxcdUUwMDAtXFx1RkZGRl18W1xcdUQ4MDAtXFx1REJGRl0oPyFbXFx1REMwMC1cXHVERkZGXSl8KD86W15cXHVEODAwLVxcdURCRkZdfF4pW1xcdURDMDAtXFx1REZGRl0pKy0pKig/OlswLTlhLXpcXHhBMS1cXHVEN0ZGXFx1RTAwMC1cXHVGRkZGXXxbXFx1RDgwMC1cXHVEQkZGXSg/IVtcXHVEQzAwLVxcdURGRkZdKXwoPzpbXlxcdUQ4MDAtXFx1REJGRl18XilbXFx1REMwMC1cXHVERkZGXSkrKSg/OlxcLig/Oig/OlswLTlhLXpcXHhBMS1cXHVEN0ZGXFx1RTAwMC1cXHVGRkZGXXxbXFx1RDgwMC1cXHVEQkZGXSg/IVtcXHVEQzAwLVxcdURGRkZdKXwoPzpbXlxcdUQ4MDAtXFx1REJGRl18XilbXFx1REMwMC1cXHVERkZGXSkrLSkqKD86WzAtOWEtelxceEExLVxcdUQ3RkZcXHVFMDAwLVxcdUZGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdKSspKig/OlxcLig/Oig/OlthLXpcXHhBMS1cXHVEN0ZGXFx1RTAwMC1cXHVGRkZGXXxbXFx1RDgwMC1cXHVEQkZGXSg/IVtcXHVEQzAwLVxcdURGRkZdKXwoPzpbXlxcdUQ4MDAtXFx1REJGRl18XilbXFx1REMwMC1cXHVERkZGXSl7Mix9KSkpKD86OlswLTldezIsNX0pPyg/OlxcLyg/OltcXDAtXFx4MDhcXHgwRS1cXHgxRiEtXFx4OUZcXHhBMS1cXHUxNjdGXFx1MTY4MS1cXHUxRkZGXFx1MjAwQi1cXHUyMDI3XFx1MjAyQS1cXHUyMDJFXFx1MjAzMC1cXHUyMDVFXFx1MjA2MC1cXHUyRkZGXFx1MzAwMS1cXHVEN0ZGXFx1RTAwMC1cXHVGRUZFXFx1RkYwMC1cXHVGRkZGXXxbXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdKSopPyQvaTtcbnZhciBVVUlEID0gL14oPzp1cm46dXVpZDopP1swLTlhLWZdezh9LSg/OlswLTlhLWZdezR9LSl7M31bMC05YS1mXXsxMn0kL2k7XG52YXIgSlNPTl9QT0lOVEVSID0gL14oPzpcXC8oPzpbXn4vXXx+MHx+MSkqKSokLztcbnZhciBKU09OX1BPSU5URVJfVVJJX0ZSQUdNRU5UID0gL14jKD86XFwvKD86W2EtejAtOV9cXC0uISQmJygpKissOzo9QF18JVswLTlhLWZdezJ9fH4wfH4xKSopKiQvaTtcbnZhciBSRUxBVElWRV9KU09OX1BPSU5URVIgPSAvXig/OjB8WzEtOV1bMC05XSopKD86I3woPzpcXC8oPzpbXn4vXXx+MHx+MSkqKSopJC87XG5cblxubW9kdWxlLmV4cG9ydHMgPSBmb3JtYXRzO1xuXG5mdW5jdGlvbiBmb3JtYXRzKG1vZGUpIHtcbiAgbW9kZSA9IG1vZGUgPT0gJ2Z1bGwnID8gJ2Z1bGwnIDogJ2Zhc3QnO1xuICByZXR1cm4gdXRpbC5jb3B5KGZvcm1hdHNbbW9kZV0pO1xufVxuXG5cbmZvcm1hdHMuZmFzdCA9IHtcbiAgLy8gZGF0ZTogaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSNzZWN0aW9uLTUuNlxuICBkYXRlOiAvXlxcZFxcZFxcZFxcZC1bMC0xXVxcZC1bMC0zXVxcZCQvLFxuICAvLyBkYXRlLXRpbWU6IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkjc2VjdGlvbi01LjZcbiAgdGltZTogL14oPzpbMC0yXVxcZDpbMC01XVxcZDpbMC01XVxcZHwyMzo1OTo2MCkoPzpcXC5cXGQrKT8oPzp6fFsrLV1cXGRcXGQoPzo6P1xcZFxcZCk/KT8kL2ksXG4gICdkYXRlLXRpbWUnOiAvXlxcZFxcZFxcZFxcZC1bMC0xXVxcZC1bMC0zXVxcZFt0XFxzXSg/OlswLTJdXFxkOlswLTVdXFxkOlswLTVdXFxkfDIzOjU5OjYwKSg/OlxcLlxcZCspPyg/Onp8WystXVxcZFxcZCg/Ojo/XFxkXFxkKT8pJC9pLFxuICAvLyB1cmk6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYWZpbnRvc2gvaXMtbXktanNvbi12YWxpZC9ibG9iL21hc3Rlci9mb3JtYXRzLmpzXG4gIHVyaTogL14oPzpbYS16XVthLXowLTkrXFwtLl0qOikoPzpcXC8/XFwvKT9bXlxcc10qJC9pLFxuICAndXJpLXJlZmVyZW5jZSc6IC9eKD86KD86W2Etel1bYS16MC05K1xcLS5dKjopP1xcLz9cXC8pPyg/OlteXFxcXFxccyNdW15cXHMjXSopPyg/OiNbXlxcXFxcXHNdKik/JC9pLFxuICAndXJpLXRlbXBsYXRlJzogVVJJVEVNUExBVEUsXG4gIHVybDogVVJMLFxuICAvLyBlbWFpbCAoc291cmNlcyBmcm9tIGpzZW4gdmFsaWRhdG9yKTpcbiAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMDEzMjMvdXNpbmctYS1yZWd1bGFyLWV4cHJlc3Npb24tdG8tdmFsaWRhdGUtYW4tZW1haWwtYWRkcmVzcyNhbnN3ZXItODgyOTM2M1xuICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sI3ZhbGlkLWUtbWFpbC1hZGRyZXNzIChzZWFyY2ggZm9yICd3aWxsZnVsIHZpb2xhdGlvbicpXG4gIGVtYWlsOiAvXlthLXowLTkuISMkJSYnKisvPT9eX2B7fH1+LV0rQFthLXowLTldKD86W2EtejAtOS1dezAsNjF9W2EtejAtOV0pPyg/OlxcLlthLXowLTldKD86W2EtejAtOS1dezAsNjF9W2EtejAtOV0pPykqJC9pLFxuICBob3N0bmFtZTogSE9TVE5BTUUsXG4gIC8vIG9wdGltaXplZCBodHRwczovL3d3dy5zYWZhcmlib29rc29ubGluZS5jb20vbGlicmFyeS92aWV3L3JlZ3VsYXItZXhwcmVzc2lvbnMtY29va2Jvb2svOTc4MDU5NjgwMjgzNy9jaDA3czE2Lmh0bWxcbiAgaXB2NDogL14oPzooPzoyNVswLTVdfDJbMC00XVxcZHxbMDFdP1xcZFxcZD8pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdXFxkfFswMV0/XFxkXFxkPykkLyxcbiAgLy8gb3B0aW1pemVkIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTM0OTcvcmVndWxhci1leHByZXNzaW9uLXRoYXQtbWF0Y2hlcy12YWxpZC1pcHY2LWFkZHJlc3Nlc1xuICBpcHY2OiAvXlxccyooPzooPzooPzpbMC05YS1mXXsxLDR9Oil7N30oPzpbMC05YS1mXXsxLDR9fDopKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7Nn0oPzo6WzAtOWEtZl17MSw0fXwoPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KXw6KSl8KD86KD86WzAtOWEtZl17MSw0fTopezV9KD86KD86KD86OlswLTlhLWZdezEsNH0pezEsMn0pfDooPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KXw6KSl8KD86KD86WzAtOWEtZl17MSw0fTopezR9KD86KD86KD86OlswLTlhLWZdezEsNH0pezEsM30pfCg/Oig/OjpbMC05YS1mXXsxLDR9KT86KD86KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7M30oPzooPzooPzo6WzAtOWEtZl17MSw0fSl7MSw0fSl8KD86KD86OlswLTlhLWZdezEsNH0pezAsMn06KD86KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7Mn0oPzooPzooPzo6WzAtOWEtZl17MSw0fSl7MSw1fSl8KD86KD86OlswLTlhLWZdezEsNH0pezAsM306KD86KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MX0oPzooPzooPzo6WzAtOWEtZl17MSw0fSl7MSw2fSl8KD86KD86OlswLTlhLWZdezEsNH0pezAsNH06KD86KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoPzo6KD86KD86KD86OlswLTlhLWZdezEsNH0pezEsN30pfCg/Oig/OjpbMC05YS1mXXsxLDR9KXswLDV9Oig/Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pKXw6KSkpKD86JS4rKT9cXHMqJC9pLFxuICByZWdleDogcmVnZXgsXG4gIC8vIHV1aWQ6IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQxMjJcbiAgdXVpZDogVVVJRCxcbiAgLy8gSlNPTi1wb2ludGVyOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjkwMVxuICAvLyB1cmkgZnJhZ21lbnQ6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I2FwcGVuZGl4LUFcbiAgJ2pzb24tcG9pbnRlcic6IEpTT05fUE9JTlRFUixcbiAgJ2pzb24tcG9pbnRlci11cmktZnJhZ21lbnQnOiBKU09OX1BPSU5URVJfVVJJX0ZSQUdNRU5ULFxuICAvLyByZWxhdGl2ZSBKU09OLXBvaW50ZXI6IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWx1ZmYtcmVsYXRpdmUtanNvbi1wb2ludGVyLTAwXG4gICdyZWxhdGl2ZS1qc29uLXBvaW50ZXInOiBSRUxBVElWRV9KU09OX1BPSU5URVJcbn07XG5cblxuZm9ybWF0cy5mdWxsID0ge1xuICBkYXRlOiBkYXRlLFxuICB0aW1lOiB0aW1lLFxuICAnZGF0ZS10aW1lJzogZGF0ZV90aW1lLFxuICB1cmk6IHVyaSxcbiAgJ3VyaS1yZWZlcmVuY2UnOiBVUklSRUYsXG4gICd1cmktdGVtcGxhdGUnOiBVUklURU1QTEFURSxcbiAgdXJsOiBVUkwsXG4gIGVtYWlsOiAvXlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSsoPzpcXC5bYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSpAKD86W2EtejAtOV0oPzpbYS16MC05LV0qW2EtejAtOV0pP1xcLikrW2EtejAtOV0oPzpbYS16MC05LV0qW2EtejAtOV0pPyQvaSxcbiAgaG9zdG5hbWU6IEhPU1ROQU1FLFxuICBpcHY0OiAvXig/Oig/OjI1WzAtNV18MlswLTRdXFxkfFswMV0/XFxkXFxkPylcXC4pezN9KD86MjVbMC01XXwyWzAtNF1cXGR8WzAxXT9cXGRcXGQ/KSQvLFxuICBpcHY2OiAvXlxccyooPzooPzooPzpbMC05YS1mXXsxLDR9Oil7N30oPzpbMC05YS1mXXsxLDR9fDopKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7Nn0oPzo6WzAtOWEtZl17MSw0fXwoPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KXw6KSl8KD86KD86WzAtOWEtZl17MSw0fTopezV9KD86KD86KD86OlswLTlhLWZdezEsNH0pezEsMn0pfDooPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KXw6KSl8KD86KD86WzAtOWEtZl17MSw0fTopezR9KD86KD86KD86OlswLTlhLWZdezEsNH0pezEsM30pfCg/Oig/OjpbMC05YS1mXXsxLDR9KT86KD86KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7M30oPzooPzooPzo6WzAtOWEtZl17MSw0fSl7MSw0fSl8KD86KD86OlswLTlhLWZdezEsNH0pezAsMn06KD86KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7Mn0oPzooPzooPzo6WzAtOWEtZl17MSw0fSl7MSw1fSl8KD86KD86OlswLTlhLWZdezEsNH0pezAsM306KD86KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MX0oPzooPzooPzo6WzAtOWEtZl17MSw0fSl7MSw2fSl8KD86KD86OlswLTlhLWZdezEsNH0pezAsNH06KD86KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoPzo6KD86KD86KD86OlswLTlhLWZdezEsNH0pezEsN30pfCg/Oig/OjpbMC05YS1mXXsxLDR9KXswLDV9Oig/Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pKXw6KSkpKD86JS4rKT9cXHMqJC9pLFxuICByZWdleDogcmVnZXgsXG4gIHV1aWQ6IFVVSUQsXG4gICdqc29uLXBvaW50ZXInOiBKU09OX1BPSU5URVIsXG4gICdqc29uLXBvaW50ZXItdXJpLWZyYWdtZW50JzogSlNPTl9QT0lOVEVSX1VSSV9GUkFHTUVOVCxcbiAgJ3JlbGF0aXZlLWpzb24tcG9pbnRlcic6IFJFTEFUSVZFX0pTT05fUE9JTlRFUlxufTtcblxuXG5mdW5jdGlvbiBpc0xlYXBZZWFyKHllYXIpIHtcbiAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkjYXBwZW5kaXgtQ1xuICByZXR1cm4geWVhciAlIDQgPT09IDAgJiYgKHllYXIgJSAxMDAgIT09IDAgfHwgeWVhciAlIDQwMCA9PT0gMCk7XG59XG5cblxuZnVuY3Rpb24gZGF0ZShzdHIpIHtcbiAgLy8gZnVsbC1kYXRlIGZyb20gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSNzZWN0aW9uLTUuNlxuICB2YXIgbWF0Y2hlcyA9IHN0ci5tYXRjaChEQVRFKTtcbiAgaWYgKCFtYXRjaGVzKSByZXR1cm4gZmFsc2U7XG5cbiAgdmFyIHllYXIgPSArbWF0Y2hlc1sxXTtcbiAgdmFyIG1vbnRoID0gK21hdGNoZXNbMl07XG4gIHZhciBkYXkgPSArbWF0Y2hlc1szXTtcblxuICByZXR1cm4gbW9udGggPj0gMSAmJiBtb250aCA8PSAxMiAmJiBkYXkgPj0gMSAmJlxuICAgICAgICAgIGRheSA8PSAobW9udGggPT0gMiAmJiBpc0xlYXBZZWFyKHllYXIpID8gMjkgOiBEQVlTW21vbnRoXSk7XG59XG5cblxuZnVuY3Rpb24gdGltZShzdHIsIGZ1bGwpIHtcbiAgdmFyIG1hdGNoZXMgPSBzdHIubWF0Y2goVElNRSk7XG4gIGlmICghbWF0Y2hlcykgcmV0dXJuIGZhbHNlO1xuXG4gIHZhciBob3VyID0gbWF0Y2hlc1sxXTtcbiAgdmFyIG1pbnV0ZSA9IG1hdGNoZXNbMl07XG4gIHZhciBzZWNvbmQgPSBtYXRjaGVzWzNdO1xuICB2YXIgdGltZVpvbmUgPSBtYXRjaGVzWzVdO1xuICByZXR1cm4gKChob3VyIDw9IDIzICYmIG1pbnV0ZSA8PSA1OSAmJiBzZWNvbmQgPD0gNTkpIHx8XG4gICAgICAgICAgKGhvdXIgPT0gMjMgJiYgbWludXRlID09IDU5ICYmIHNlY29uZCA9PSA2MCkpICYmXG4gICAgICAgICAoIWZ1bGwgfHwgdGltZVpvbmUpO1xufVxuXG5cbnZhciBEQVRFX1RJTUVfU0VQQVJBVE9SID0gL3R8XFxzL2k7XG5mdW5jdGlvbiBkYXRlX3RpbWUoc3RyKSB7XG4gIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkjc2VjdGlvbi01LjZcbiAgdmFyIGRhdGVUaW1lID0gc3RyLnNwbGl0KERBVEVfVElNRV9TRVBBUkFUT1IpO1xuICByZXR1cm4gZGF0ZVRpbWUubGVuZ3RoID09IDIgJiYgZGF0ZShkYXRlVGltZVswXSkgJiYgdGltZShkYXRlVGltZVsxXSwgdHJ1ZSk7XG59XG5cblxudmFyIE5PVF9VUklfRlJBR01FTlQgPSAvXFwvfDovO1xuZnVuY3Rpb24gdXJpKHN0cikge1xuICAvLyBodHRwOi8vam1yd2FyZS5jb20vYXJ0aWNsZXMvMjAwOS91cmlfcmVnZXhwL1VSSV9yZWdleC5odG1sICsgb3B0aW9uYWwgcHJvdG9jb2wgKyByZXF1aXJlZCBcIi5cIlxuICByZXR1cm4gTk9UX1VSSV9GUkFHTUVOVC50ZXN0KHN0cikgJiYgVVJJLnRlc3Qoc3RyKTtcbn1cblxuXG52YXIgWl9BTkNIT1IgPSAvW15cXFxcXVxcXFxaLztcbmZ1bmN0aW9uIHJlZ2V4KHN0cikge1xuICBpZiAoWl9BTkNIT1IudGVzdChzdHIpKSByZXR1cm4gZmFsc2U7XG4gIHRyeSB7XG4gICAgbmV3IFJlZ0V4cChzdHIpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX3JlZihpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgdmFyICR2YWxpZCA9ICd2YWxpZCcgKyAkbHZsO1xuICB2YXIgJGFzeW5jLCAkcmVmQ29kZTtcbiAgaWYgKCRzY2hlbWEgPT0gJyMnIHx8ICRzY2hlbWEgPT0gJyMvJykge1xuICAgIGlmIChpdC5pc1Jvb3QpIHtcbiAgICAgICRhc3luYyA9IGl0LmFzeW5jO1xuICAgICAgJHJlZkNvZGUgPSAndmFsaWRhdGUnO1xuICAgIH0gZWxzZSB7XG4gICAgICAkYXN5bmMgPSBpdC5yb290LnNjaGVtYS4kYXN5bmMgPT09IHRydWU7XG4gICAgICAkcmVmQ29kZSA9ICdyb290LnJlZlZhbFswXSc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciAkcmVmVmFsID0gaXQucmVzb2x2ZVJlZihpdC5iYXNlSWQsICRzY2hlbWEsIGl0LmlzUm9vdCk7XG4gICAgaWYgKCRyZWZWYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyICRtZXNzYWdlID0gaXQuTWlzc2luZ1JlZkVycm9yLm1lc3NhZ2UoaXQuYmFzZUlkLCAkc2NoZW1hKTtcbiAgICAgIGlmIChpdC5vcHRzLm1pc3NpbmdSZWZzID09ICdmYWlsJykge1xuICAgICAgICBpdC5sb2dnZXIuZXJyb3IoJG1lc3NhZ2UpO1xuICAgICAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgICAgICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICAgICAgICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJyRyZWYnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IHJlZjogXFwnJyArIChpdC51dGlsLmVzY2FwZVF1b3Rlcygkc2NoZW1hKSkgKyAnXFwnIH0gJztcbiAgICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnY2FuXFxcXFxcJ3QgcmVzb2x2ZSByZWZlcmVuY2UgJyArIChpdC51dGlsLmVzY2FwZVF1b3Rlcygkc2NoZW1hKSkgKyAnXFwnICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnICwgc2NoZW1hOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJHNjaGVtYSkpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fZXJyID0gb3V0O1xuICAgICAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgICAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgIG91dCArPSAnIGlmIChmYWxzZSkgeyAnO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0Lm9wdHMubWlzc2luZ1JlZnMgPT0gJ2lnbm9yZScpIHtcbiAgICAgICAgaXQubG9nZ2VyLndhcm4oJG1lc3NhZ2UpO1xuICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgIG91dCArPSAnIGlmICh0cnVlKSB7ICc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBpdC5NaXNzaW5nUmVmRXJyb3IoaXQuYmFzZUlkLCAkc2NoZW1hLCAkbWVzc2FnZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICgkcmVmVmFsLmlubGluZSkge1xuICAgICAgdmFyICRpdCA9IGl0LnV0aWwuY29weShpdCk7XG4gICAgICAkaXQubGV2ZWwrKztcbiAgICAgIHZhciAkbmV4dFZhbGlkID0gJ3ZhbGlkJyArICRpdC5sZXZlbDtcbiAgICAgICRpdC5zY2hlbWEgPSAkcmVmVmFsLnNjaGVtYTtcbiAgICAgICRpdC5zY2hlbWFQYXRoID0gJyc7XG4gICAgICAkaXQuZXJyU2NoZW1hUGF0aCA9ICRzY2hlbWE7XG4gICAgICB2YXIgJGNvZGUgPSBpdC52YWxpZGF0ZSgkaXQpLnJlcGxhY2UoL3ZhbGlkYXRlXFwuc2NoZW1hL2csICRyZWZWYWwuY29kZSk7XG4gICAgICBvdXQgKz0gJyAnICsgKCRjb2RlKSArICcgJztcbiAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgIG91dCArPSAnIGlmICgnICsgKCRuZXh0VmFsaWQpICsgJykgeyAnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAkYXN5bmMgPSAkcmVmVmFsLiRhc3luYyA9PT0gdHJ1ZSB8fCAoaXQuYXN5bmMgJiYgJHJlZlZhbC4kYXN5bmMgIT09IGZhbHNlKTtcbiAgICAgICRyZWZDb2RlID0gJHJlZlZhbC5jb2RlO1xuICAgIH1cbiAgfVxuICBpZiAoJHJlZkNvZGUpIHtcbiAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgb3V0ID0gJyc7XG4gICAgaWYgKGl0Lm9wdHMucGFzc0NvbnRleHQpIHtcbiAgICAgIG91dCArPSAnICcgKyAoJHJlZkNvZGUpICsgJy5jYWxsKHRoaXMsICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnICcgKyAoJHJlZkNvZGUpICsgJyggJztcbiAgICB9XG4gICAgb3V0ICs9ICcgJyArICgkZGF0YSkgKyAnLCAoZGF0YVBhdGggfHwgXFwnXFwnKSc7XG4gICAgaWYgKGl0LmVycm9yUGF0aCAhPSAnXCJcIicpIHtcbiAgICAgIG91dCArPSAnICsgJyArIChpdC5lcnJvclBhdGgpO1xuICAgIH1cbiAgICB2YXIgJHBhcmVudERhdGEgPSAkZGF0YUx2bCA/ICdkYXRhJyArICgoJGRhdGFMdmwgLSAxKSB8fCAnJykgOiAncGFyZW50RGF0YScsXG4gICAgICAkcGFyZW50RGF0YVByb3BlcnR5ID0gJGRhdGFMdmwgPyBpdC5kYXRhUGF0aEFyclskZGF0YUx2bF0gOiAncGFyZW50RGF0YVByb3BlcnR5JztcbiAgICBvdXQgKz0gJyAsICcgKyAoJHBhcmVudERhdGEpICsgJyAsICcgKyAoJHBhcmVudERhdGFQcm9wZXJ0eSkgKyAnLCByb290RGF0YSkgICc7XG4gICAgdmFyIF9fY2FsbFZhbGlkYXRlID0gb3V0O1xuICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgaWYgKCRhc3luYykge1xuICAgICAgaWYgKCFpdC5hc3luYykgdGhyb3cgbmV3IEVycm9yKCdhc3luYyBzY2hlbWEgcmVmZXJlbmNlZCBieSBzeW5jIHNjaGVtYScpO1xuICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgb3V0ICs9ICcgdmFyICcgKyAoJHZhbGlkKSArICc7ICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB0cnkgeyBhd2FpdCAnICsgKF9fY2FsbFZhbGlkYXRlKSArICc7ICc7XG4gICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICBvdXQgKz0gJyAnICsgKCR2YWxpZCkgKyAnID0gdHJ1ZTsgJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIH0gY2F0Y2ggKGUpIHsgaWYgKCEoZSBpbnN0YW5jZW9mIFZhbGlkYXRpb25FcnJvcikpIHRocm93IGU7IGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gZS5lcnJvcnM7IGVsc2UgdkVycm9ycyA9IHZFcnJvcnMuY29uY2F0KGUuZXJyb3JzKTsgZXJyb3JzID0gdkVycm9ycy5sZW5ndGg7ICc7XG4gICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICBvdXQgKz0gJyAnICsgKCR2YWxpZCkgKyAnID0gZmFsc2U7ICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICBvdXQgKz0gJyBpZiAoJyArICgkdmFsaWQpICsgJykgeyAnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyBpZiAoIScgKyAoX19jYWxsVmFsaWRhdGUpICsgJykgeyBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9ICcgKyAoJHJlZkNvZGUpICsgJy5lcnJvcnM7IGVsc2UgdkVycm9ycyA9IHZFcnJvcnMuY29uY2F0KCcgKyAoJHJlZkNvZGUpICsgJy5lcnJvcnMpOyBlcnJvcnMgPSB2RXJyb3JzLmxlbmd0aDsgfSAnO1xuICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgb3V0ICs9ICcgZWxzZSB7ICc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV9hbGxPZihpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRpdCA9IGl0LnV0aWwuY29weShpdCk7XG4gIHZhciAkY2xvc2luZ0JyYWNlcyA9ICcnO1xuICAkaXQubGV2ZWwrKztcbiAgdmFyICRuZXh0VmFsaWQgPSAndmFsaWQnICsgJGl0LmxldmVsO1xuICB2YXIgJGN1cnJlbnRCYXNlSWQgPSAkaXQuYmFzZUlkLFxuICAgICRhbGxTY2hlbWFzRW1wdHkgPSB0cnVlO1xuICB2YXIgYXJyMSA9ICRzY2hlbWE7XG4gIGlmIChhcnIxKSB7XG4gICAgdmFyICRzY2gsICRpID0gLTEsXG4gICAgICBsMSA9IGFycjEubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAoJGkgPCBsMSkge1xuICAgICAgJHNjaCA9IGFycjFbJGkgKz0gMV07XG4gICAgICBpZiAoKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMgPyAodHlwZW9mICRzY2ggPT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoJHNjaCkubGVuZ3RoID4gMCkgfHwgJHNjaCA9PT0gZmFsc2UgOiBpdC51dGlsLnNjaGVtYUhhc1J1bGVzKCRzY2gsIGl0LlJVTEVTLmFsbCkpKSB7XG4gICAgICAgICRhbGxTY2hlbWFzRW1wdHkgPSBmYWxzZTtcbiAgICAgICAgJGl0LnNjaGVtYSA9ICRzY2g7XG4gICAgICAgICRpdC5zY2hlbWFQYXRoID0gJHNjaGVtYVBhdGggKyAnWycgKyAkaSArICddJztcbiAgICAgICAgJGl0LmVyclNjaGVtYVBhdGggPSAkZXJyU2NoZW1hUGF0aCArICcvJyArICRpO1xuICAgICAgICBvdXQgKz0gJyAgJyArIChpdC52YWxpZGF0ZSgkaXQpKSArICcgJztcbiAgICAgICAgJGl0LmJhc2VJZCA9ICRjdXJyZW50QmFzZUlkO1xuICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgIG91dCArPSAnIGlmICgnICsgKCRuZXh0VmFsaWQpICsgJykgeyAnO1xuICAgICAgICAgICRjbG9zaW5nQnJhY2VzICs9ICd9JztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIGlmICgkYWxsU2NoZW1hc0VtcHR5KSB7XG4gICAgICBvdXQgKz0gJyBpZiAodHJ1ZSkgeyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyAnICsgKCRjbG9zaW5nQnJhY2VzLnNsaWNlKDAsIC0xKSkgKyAnICc7XG4gICAgfVxuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV9hbnlPZihpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJHZhbGlkID0gJ3ZhbGlkJyArICRsdmw7XG4gIHZhciAkZXJycyA9ICdlcnJzX18nICsgJGx2bDtcbiAgdmFyICRpdCA9IGl0LnV0aWwuY29weShpdCk7XG4gIHZhciAkY2xvc2luZ0JyYWNlcyA9ICcnO1xuICAkaXQubGV2ZWwrKztcbiAgdmFyICRuZXh0VmFsaWQgPSAndmFsaWQnICsgJGl0LmxldmVsO1xuICB2YXIgJG5vRW1wdHlTY2hlbWEgPSAkc2NoZW1hLmV2ZXJ5KGZ1bmN0aW9uKCRzY2gpIHtcbiAgICByZXR1cm4gKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMgPyAodHlwZW9mICRzY2ggPT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoJHNjaCkubGVuZ3RoID4gMCkgfHwgJHNjaCA9PT0gZmFsc2UgOiBpdC51dGlsLnNjaGVtYUhhc1J1bGVzKCRzY2gsIGl0LlJVTEVTLmFsbCkpO1xuICB9KTtcbiAgaWYgKCRub0VtcHR5U2NoZW1hKSB7XG4gICAgdmFyICRjdXJyZW50QmFzZUlkID0gJGl0LmJhc2VJZDtcbiAgICBvdXQgKz0gJyB2YXIgJyArICgkZXJycykgKyAnID0gZXJyb3JzOyB2YXIgJyArICgkdmFsaWQpICsgJyA9IGZhbHNlOyAgJztcbiAgICB2YXIgJHdhc0NvbXBvc2l0ZSA9IGl0LmNvbXBvc2l0ZVJ1bGU7XG4gICAgaXQuY29tcG9zaXRlUnVsZSA9ICRpdC5jb21wb3NpdGVSdWxlID0gdHJ1ZTtcbiAgICB2YXIgYXJyMSA9ICRzY2hlbWE7XG4gICAgaWYgKGFycjEpIHtcbiAgICAgIHZhciAkc2NoLCAkaSA9IC0xLFxuICAgICAgICBsMSA9IGFycjEubGVuZ3RoIC0gMTtcbiAgICAgIHdoaWxlICgkaSA8IGwxKSB7XG4gICAgICAgICRzY2ggPSBhcnIxWyRpICs9IDFdO1xuICAgICAgICAkaXQuc2NoZW1hID0gJHNjaDtcbiAgICAgICAgJGl0LnNjaGVtYVBhdGggPSAkc2NoZW1hUGF0aCArICdbJyArICRpICsgJ10nO1xuICAgICAgICAkaXQuZXJyU2NoZW1hUGF0aCA9ICRlcnJTY2hlbWFQYXRoICsgJy8nICsgJGk7XG4gICAgICAgIG91dCArPSAnICAnICsgKGl0LnZhbGlkYXRlKCRpdCkpICsgJyAnO1xuICAgICAgICAkaXQuYmFzZUlkID0gJGN1cnJlbnRCYXNlSWQ7XG4gICAgICAgIG91dCArPSAnICcgKyAoJHZhbGlkKSArICcgPSAnICsgKCR2YWxpZCkgKyAnIHx8ICcgKyAoJG5leHRWYWxpZCkgKyAnOyBpZiAoIScgKyAoJHZhbGlkKSArICcpIHsgJztcbiAgICAgICAgJGNsb3NpbmdCcmFjZXMgKz0gJ30nO1xuICAgICAgfVxuICAgIH1cbiAgICBpdC5jb21wb3NpdGVSdWxlID0gJGl0LmNvbXBvc2l0ZVJ1bGUgPSAkd2FzQ29tcG9zaXRlO1xuICAgIG91dCArPSAnICcgKyAoJGNsb3NpbmdCcmFjZXMpICsgJyBpZiAoIScgKyAoJHZhbGlkKSArICcpIHsgICB2YXIgZXJyID0gICAnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ2FueU9mJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczoge30gJztcbiAgICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBtYXRjaCBzb21lIHNjaGVtYSBpbiBhbnlPZlxcJyAnO1xuICAgICAgfVxuICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgfSAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB7fSAnO1xuICAgIH1cbiAgICBvdXQgKz0gJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKHZFcnJvcnMpOyAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gdkVycm9yczsgcmV0dXJuIGZhbHNlOyAnO1xuICAgICAgfVxuICAgIH1cbiAgICBvdXQgKz0gJyB9IGVsc2UgeyAgZXJyb3JzID0gJyArICgkZXJycykgKyAnOyBpZiAodkVycm9ycyAhPT0gbnVsbCkgeyBpZiAoJyArICgkZXJycykgKyAnKSB2RXJyb3JzLmxlbmd0aCA9ICcgKyAoJGVycnMpICsgJzsgZWxzZSB2RXJyb3JzID0gbnVsbDsgfSAnO1xuICAgIGlmIChpdC5vcHRzLmFsbEVycm9ycykge1xuICAgICAgb3V0ICs9ICcgfSAnO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgb3V0ICs9ICcgaWYgKHRydWUpIHsgJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX2NvbW1lbnQoaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGNvbW1lbnQgPSBpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRzY2hlbWEpO1xuICBpZiAoaXQub3B0cy4kY29tbWVudCA9PT0gdHJ1ZSkge1xuICAgIG91dCArPSAnIGNvbnNvbGUubG9nKCcgKyAoJGNvbW1lbnQpICsgJyk7JztcbiAgfSBlbHNlIGlmICh0eXBlb2YgaXQub3B0cy4kY29tbWVudCA9PSAnZnVuY3Rpb24nKSB7XG4gICAgb3V0ICs9ICcgc2VsZi5fb3B0cy4kY29tbWVudCgnICsgKCRjb21tZW50KSArICcsICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJywgdmFsaWRhdGUucm9vdC5zY2hlbWEpOyc7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX2NvbnN0KGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkdmFsaWQgPSAndmFsaWQnICsgJGx2bDtcbiAgdmFyICRpc0RhdGEgPSBpdC5vcHRzLiRkYXRhICYmICRzY2hlbWEgJiYgJHNjaGVtYS4kZGF0YSxcbiAgICAkc2NoZW1hVmFsdWU7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgdmFyIHNjaGVtYScgKyAoJGx2bCkgKyAnID0gJyArIChpdC51dGlsLmdldERhdGEoJHNjaGVtYS4kZGF0YSwgJGRhdGFMdmwsIGl0LmRhdGFQYXRoQXJyKSkgKyAnOyAnO1xuICAgICRzY2hlbWFWYWx1ZSA9ICdzY2hlbWEnICsgJGx2bDtcbiAgfSBlbHNlIHtcbiAgICAkc2NoZW1hVmFsdWUgPSAkc2NoZW1hO1xuICB9XG4gIGlmICghJGlzRGF0YSkge1xuICAgIG91dCArPSAnIHZhciBzY2hlbWEnICsgKCRsdmwpICsgJyA9IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJzsnO1xuICB9XG4gIG91dCArPSAndmFyICcgKyAoJHZhbGlkKSArICcgPSBlcXVhbCgnICsgKCRkYXRhKSArICcsIHNjaGVtYScgKyAoJGx2bCkgKyAnKTsgaWYgKCEnICsgKCR2YWxpZCkgKyAnKSB7ICAgJztcbiAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdjb25zdCcpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgYWxsb3dlZFZhbHVlOiBzY2hlbWEnICsgKCRsdmwpICsgJyB9ICc7XG4gICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBiZSBlcXVhbCB0byBjb25zdGFudFxcJyAnO1xuICAgIH1cbiAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9ICc7XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcge30gJztcbiAgfVxuICB2YXIgX19lcnIgPSBvdXQ7XG4gIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICB9XG4gIG91dCArPSAnIH0nO1xuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV9jb250YWlucyhpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJHZhbGlkID0gJ3ZhbGlkJyArICRsdmw7XG4gIHZhciAkZXJycyA9ICdlcnJzX18nICsgJGx2bDtcbiAgdmFyICRpdCA9IGl0LnV0aWwuY29weShpdCk7XG4gIHZhciAkY2xvc2luZ0JyYWNlcyA9ICcnO1xuICAkaXQubGV2ZWwrKztcbiAgdmFyICRuZXh0VmFsaWQgPSAndmFsaWQnICsgJGl0LmxldmVsO1xuICB2YXIgJGlkeCA9ICdpJyArICRsdmwsXG4gICAgJGRhdGFOeHQgPSAkaXQuZGF0YUxldmVsID0gaXQuZGF0YUxldmVsICsgMSxcbiAgICAkbmV4dERhdGEgPSAnZGF0YScgKyAkZGF0YU54dCxcbiAgICAkY3VycmVudEJhc2VJZCA9IGl0LmJhc2VJZCxcbiAgICAkbm9uRW1wdHlTY2hlbWEgPSAoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJHNjaGVtYSA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkc2NoZW1hKS5sZW5ndGggPiAwKSB8fCAkc2NoZW1hID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJHNjaGVtYSwgaXQuUlVMRVMuYWxsKSk7XG4gIG91dCArPSAndmFyICcgKyAoJGVycnMpICsgJyA9IGVycm9yczt2YXIgJyArICgkdmFsaWQpICsgJzsnO1xuICBpZiAoJG5vbkVtcHR5U2NoZW1hKSB7XG4gICAgdmFyICR3YXNDb21wb3NpdGUgPSBpdC5jb21wb3NpdGVSdWxlO1xuICAgIGl0LmNvbXBvc2l0ZVJ1bGUgPSAkaXQuY29tcG9zaXRlUnVsZSA9IHRydWU7XG4gICAgJGl0LnNjaGVtYSA9ICRzY2hlbWE7XG4gICAgJGl0LnNjaGVtYVBhdGggPSAkc2NoZW1hUGF0aDtcbiAgICAkaXQuZXJyU2NoZW1hUGF0aCA9ICRlcnJTY2hlbWFQYXRoO1xuICAgIG91dCArPSAnIHZhciAnICsgKCRuZXh0VmFsaWQpICsgJyA9IGZhbHNlOyBmb3IgKHZhciAnICsgKCRpZHgpICsgJyA9IDA7ICcgKyAoJGlkeCkgKyAnIDwgJyArICgkZGF0YSkgKyAnLmxlbmd0aDsgJyArICgkaWR4KSArICcrKykgeyAnO1xuICAgICRpdC5lcnJvclBhdGggPSBpdC51dGlsLmdldFBhdGhFeHByKGl0LmVycm9yUGF0aCwgJGlkeCwgaXQub3B0cy5qc29uUG9pbnRlcnMsIHRydWUpO1xuICAgIHZhciAkcGFzc0RhdGEgPSAkZGF0YSArICdbJyArICRpZHggKyAnXSc7XG4gICAgJGl0LmRhdGFQYXRoQXJyWyRkYXRhTnh0XSA9ICRpZHg7XG4gICAgdmFyICRjb2RlID0gaXQudmFsaWRhdGUoJGl0KTtcbiAgICAkaXQuYmFzZUlkID0gJGN1cnJlbnRCYXNlSWQ7XG4gICAgaWYgKGl0LnV0aWwudmFyT2NjdXJlbmNlcygkY29kZSwgJG5leHREYXRhKSA8IDIpIHtcbiAgICAgIG91dCArPSAnICcgKyAoaXQudXRpbC52YXJSZXBsYWNlKCRjb2RlLCAkbmV4dERhdGEsICRwYXNzRGF0YSkpICsgJyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB2YXIgJyArICgkbmV4dERhdGEpICsgJyA9ICcgKyAoJHBhc3NEYXRhKSArICc7ICcgKyAoJGNvZGUpICsgJyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyBpZiAoJyArICgkbmV4dFZhbGlkKSArICcpIGJyZWFrOyB9ICAnO1xuICAgIGl0LmNvbXBvc2l0ZVJ1bGUgPSAkaXQuY29tcG9zaXRlUnVsZSA9ICR3YXNDb21wb3NpdGU7XG4gICAgb3V0ICs9ICcgJyArICgkY2xvc2luZ0JyYWNlcykgKyAnIGlmICghJyArICgkbmV4dFZhbGlkKSArICcpIHsnO1xuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIGlmICgnICsgKCRkYXRhKSArICcubGVuZ3RoID09IDApIHsnO1xuICB9XG4gIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgnY29udGFpbnMnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7fSAnO1xuICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgY29udGFpbiBhIHZhbGlkIGl0ZW1cXCcgJztcbiAgICB9XG4gICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgfSAnO1xuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHt9ICc7XG4gIH1cbiAgdmFyIF9fZXJyID0gb3V0O1xuICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChpdC5hc3luYykge1xuICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgfVxuICBvdXQgKz0gJyB9IGVsc2UgeyAnO1xuICBpZiAoJG5vbkVtcHR5U2NoZW1hKSB7XG4gICAgb3V0ICs9ICcgIGVycm9ycyA9ICcgKyAoJGVycnMpICsgJzsgaWYgKHZFcnJvcnMgIT09IG51bGwpIHsgaWYgKCcgKyAoJGVycnMpICsgJykgdkVycm9ycy5sZW5ndGggPSAnICsgKCRlcnJzKSArICc7IGVsc2UgdkVycm9ycyA9IG51bGw7IH0gJztcbiAgfVxuICBpZiAoaXQub3B0cy5hbGxFcnJvcnMpIHtcbiAgICBvdXQgKz0gJyB9ICc7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX2RlcGVuZGVuY2llcyhpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJGVycnMgPSAnZXJyc19fJyArICRsdmw7XG4gIHZhciAkaXQgPSBpdC51dGlsLmNvcHkoaXQpO1xuICB2YXIgJGNsb3NpbmdCcmFjZXMgPSAnJztcbiAgJGl0LmxldmVsKys7XG4gIHZhciAkbmV4dFZhbGlkID0gJ3ZhbGlkJyArICRpdC5sZXZlbDtcbiAgdmFyICRzY2hlbWFEZXBzID0ge30sXG4gICAgJHByb3BlcnR5RGVwcyA9IHt9LFxuICAgICRvd25Qcm9wZXJ0aWVzID0gaXQub3B0cy5vd25Qcm9wZXJ0aWVzO1xuICBmb3IgKCRwcm9wZXJ0eSBpbiAkc2NoZW1hKSB7XG4gICAgaWYgKCRwcm9wZXJ0eSA9PSAnX19wcm90b19fJykgY29udGludWU7XG4gICAgdmFyICRzY2ggPSAkc2NoZW1hWyRwcm9wZXJ0eV07XG4gICAgdmFyICRkZXBzID0gQXJyYXkuaXNBcnJheSgkc2NoKSA/ICRwcm9wZXJ0eURlcHMgOiAkc2NoZW1hRGVwcztcbiAgICAkZGVwc1skcHJvcGVydHldID0gJHNjaDtcbiAgfVxuICBvdXQgKz0gJ3ZhciAnICsgKCRlcnJzKSArICcgPSBlcnJvcnM7JztcbiAgdmFyICRjdXJyZW50RXJyb3JQYXRoID0gaXQuZXJyb3JQYXRoO1xuICBvdXQgKz0gJ3ZhciBtaXNzaW5nJyArICgkbHZsKSArICc7JztcbiAgZm9yICh2YXIgJHByb3BlcnR5IGluICRwcm9wZXJ0eURlcHMpIHtcbiAgICAkZGVwcyA9ICRwcm9wZXJ0eURlcHNbJHByb3BlcnR5XTtcbiAgICBpZiAoJGRlcHMubGVuZ3RoKSB7XG4gICAgICBvdXQgKz0gJyBpZiAoICcgKyAoJGRhdGEpICsgKGl0LnV0aWwuZ2V0UHJvcGVydHkoJHByb3BlcnR5KSkgKyAnICE9PSB1bmRlZmluZWQgJztcbiAgICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgICBvdXQgKz0gJyAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoJyArICgkZGF0YSkgKyAnLCBcXCcnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRwcm9wZXJ0eSkpICsgJ1xcJykgJztcbiAgICAgIH1cbiAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgIG91dCArPSAnICYmICggJztcbiAgICAgICAgdmFyIGFycjEgPSAkZGVwcztcbiAgICAgICAgaWYgKGFycjEpIHtcbiAgICAgICAgICB2YXIgJHByb3BlcnR5S2V5LCAkaSA9IC0xLFxuICAgICAgICAgICAgbDEgPSBhcnIxLmxlbmd0aCAtIDE7XG4gICAgICAgICAgd2hpbGUgKCRpIDwgbDEpIHtcbiAgICAgICAgICAgICRwcm9wZXJ0eUtleSA9IGFycjFbJGkgKz0gMV07XG4gICAgICAgICAgICBpZiAoJGkpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgfHwgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciAkcHJvcCA9IGl0LnV0aWwuZ2V0UHJvcGVydHkoJHByb3BlcnR5S2V5KSxcbiAgICAgICAgICAgICAgJHVzZURhdGEgPSAkZGF0YSArICRwcm9wO1xuICAgICAgICAgICAgb3V0ICs9ICcgKCAoICcgKyAoJHVzZURhdGEpICsgJyA9PT0gdW5kZWZpbmVkICc7XG4gICAgICAgICAgICBpZiAoJG93blByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgfHwgISBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoJyArICgkZGF0YSkgKyAnLCBcXCcnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRwcm9wZXJ0eUtleSkpICsgJ1xcJykgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dCArPSAnKSAmJiAobWlzc2luZycgKyAoJGx2bCkgKyAnID0gJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKGl0Lm9wdHMuanNvblBvaW50ZXJzID8gJHByb3BlcnR5S2V5IDogJHByb3ApKSArICcpICkgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb3V0ICs9ICcpKSB7ICAnO1xuICAgICAgICB2YXIgJHByb3BlcnR5UGF0aCA9ICdtaXNzaW5nJyArICRsdmwsXG4gICAgICAgICAgJG1pc3NpbmdQcm9wZXJ0eSA9ICdcXCcgKyAnICsgJHByb3BlcnR5UGF0aCArICcgKyBcXCcnO1xuICAgICAgICBpZiAoaXQub3B0cy5fZXJyb3JEYXRhUGF0aFByb3BlcnR5KSB7XG4gICAgICAgICAgaXQuZXJyb3JQYXRoID0gaXQub3B0cy5qc29uUG9pbnRlcnMgPyBpdC51dGlsLmdldFBhdGhFeHByKCRjdXJyZW50RXJyb3JQYXRoLCAkcHJvcGVydHlQYXRoLCB0cnVlKSA6ICRjdXJyZW50RXJyb3JQYXRoICsgJyArICcgKyAkcHJvcGVydHlQYXRoO1xuICAgICAgICB9XG4gICAgICAgIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgICAgICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgICAgIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgnZGVwZW5kZW5jaWVzJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBwcm9wZXJ0eTogXFwnJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkcHJvcGVydHkpKSArICdcXCcsIG1pc3NpbmdQcm9wZXJ0eTogXFwnJyArICgkbWlzc2luZ1Byb3BlcnR5KSArICdcXCcsIGRlcHNDb3VudDogJyArICgkZGVwcy5sZW5ndGgpICsgJywgZGVwczogXFwnJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkZGVwcy5sZW5ndGggPT0gMSA/ICRkZXBzWzBdIDogJGRlcHMuam9pbihcIiwgXCIpKSkgKyAnXFwnIH0gJztcbiAgICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIGhhdmUgJztcbiAgICAgICAgICAgIGlmICgkZGVwcy5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgICBvdXQgKz0gJ3Byb3BlcnR5ICcgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJGRlcHNbMF0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG91dCArPSAncHJvcGVydGllcyAnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRkZXBzLmpvaW4oXCIsIFwiKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICcgd2hlbiBwcm9wZXJ0eSAnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRwcm9wZXJ0eSkpICsgJyBpcyBwcmVzZW50XFwnICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnIH0gJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgKz0gJyB7fSAnO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfX2VyciA9IG91dDtcbiAgICAgICAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgICAgICAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgICAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnICkgeyAnO1xuICAgICAgICB2YXIgYXJyMiA9ICRkZXBzO1xuICAgICAgICBpZiAoYXJyMikge1xuICAgICAgICAgIHZhciAkcHJvcGVydHlLZXksIGkyID0gLTEsXG4gICAgICAgICAgICBsMiA9IGFycjIubGVuZ3RoIC0gMTtcbiAgICAgICAgICB3aGlsZSAoaTIgPCBsMikge1xuICAgICAgICAgICAgJHByb3BlcnR5S2V5ID0gYXJyMltpMiArPSAxXTtcbiAgICAgICAgICAgIHZhciAkcHJvcCA9IGl0LnV0aWwuZ2V0UHJvcGVydHkoJHByb3BlcnR5S2V5KSxcbiAgICAgICAgICAgICAgJG1pc3NpbmdQcm9wZXJ0eSA9IGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRwcm9wZXJ0eUtleSksXG4gICAgICAgICAgICAgICR1c2VEYXRhID0gJGRhdGEgKyAkcHJvcDtcbiAgICAgICAgICAgIGlmIChpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgaXQuZXJyb3JQYXRoID0gaXQudXRpbC5nZXRQYXRoKCRjdXJyZW50RXJyb3JQYXRoLCAkcHJvcGVydHlLZXksIGl0Lm9wdHMuanNvblBvaW50ZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dCArPSAnIGlmICggJyArICgkdXNlRGF0YSkgKyAnID09PSB1bmRlZmluZWQgJztcbiAgICAgICAgICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgICAgICAgICBvdXQgKz0gJyB8fCAhIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCgnICsgKCRkYXRhKSArICcsIFxcJycgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJHByb3BlcnR5S2V5KSkgKyAnXFwnKSAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICcpIHsgIHZhciBlcnIgPSAgICc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ2RlcGVuZGVuY2llcycpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgcHJvcGVydHk6IFxcJycgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJHByb3BlcnR5KSkgKyAnXFwnLCBtaXNzaW5nUHJvcGVydHk6IFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFwnLCBkZXBzQ291bnQ6ICcgKyAoJGRlcHMubGVuZ3RoKSArICcsIGRlcHM6IFxcJycgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJGRlcHMubGVuZ3RoID09IDEgPyAkZGVwc1swXSA6ICRkZXBzLmpvaW4oXCIsIFwiKSkpICsgJ1xcJyB9ICc7XG4gICAgICAgICAgICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIGhhdmUgJztcbiAgICAgICAgICAgICAgICBpZiAoJGRlcHMubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgICAgICAgIG91dCArPSAncHJvcGVydHkgJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkZGVwc1swXSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBvdXQgKz0gJ3Byb3BlcnRpZXMgJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkZGVwcy5qb2luKFwiLCBcIikpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgd2hlbiBwcm9wZXJ0eSAnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRwcm9wZXJ0eSkpICsgJyBpcyBwcmVzZW50XFwnICc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dCArPSAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7IH0gJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG91dCArPSAnIH0gICAnO1xuICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgJGNsb3NpbmdCcmFjZXMgKz0gJ30nO1xuICAgICAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaXQuZXJyb3JQYXRoID0gJGN1cnJlbnRFcnJvclBhdGg7XG4gIHZhciAkY3VycmVudEJhc2VJZCA9ICRpdC5iYXNlSWQ7XG4gIGZvciAodmFyICRwcm9wZXJ0eSBpbiAkc2NoZW1hRGVwcykge1xuICAgIHZhciAkc2NoID0gJHNjaGVtYURlcHNbJHByb3BlcnR5XTtcbiAgICBpZiAoKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMgPyAodHlwZW9mICRzY2ggPT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoJHNjaCkubGVuZ3RoID4gMCkgfHwgJHNjaCA9PT0gZmFsc2UgOiBpdC51dGlsLnNjaGVtYUhhc1J1bGVzKCRzY2gsIGl0LlJVTEVTLmFsbCkpKSB7XG4gICAgICBvdXQgKz0gJyAnICsgKCRuZXh0VmFsaWQpICsgJyA9IHRydWU7IGlmICggJyArICgkZGF0YSkgKyAoaXQudXRpbC5nZXRQcm9wZXJ0eSgkcHJvcGVydHkpKSArICcgIT09IHVuZGVmaW5lZCAnO1xuICAgICAgaWYgKCRvd25Qcm9wZXJ0aWVzKSB7XG4gICAgICAgIG91dCArPSAnICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCgnICsgKCRkYXRhKSArICcsIFxcJycgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJHByb3BlcnR5KSkgKyAnXFwnKSAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcpIHsgJztcbiAgICAgICRpdC5zY2hlbWEgPSAkc2NoO1xuICAgICAgJGl0LnNjaGVtYVBhdGggPSAkc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJHByb3BlcnR5KTtcbiAgICAgICRpdC5lcnJTY2hlbWFQYXRoID0gJGVyclNjaGVtYVBhdGggKyAnLycgKyBpdC51dGlsLmVzY2FwZUZyYWdtZW50KCRwcm9wZXJ0eSk7XG4gICAgICBvdXQgKz0gJyAgJyArIChpdC52YWxpZGF0ZSgkaXQpKSArICcgJztcbiAgICAgICRpdC5iYXNlSWQgPSAkY3VycmVudEJhc2VJZDtcbiAgICAgIG91dCArPSAnIH0gICc7XG4gICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICBvdXQgKz0gJyBpZiAoJyArICgkbmV4dFZhbGlkKSArICcpIHsgJztcbiAgICAgICAgJGNsb3NpbmdCcmFjZXMgKz0gJ30nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnICAgJyArICgkY2xvc2luZ0JyYWNlcykgKyAnIGlmICgnICsgKCRlcnJzKSArICcgPT0gZXJyb3JzKSB7JztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfZW51bShpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJHZhbGlkID0gJ3ZhbGlkJyArICRsdmw7XG4gIHZhciAkaXNEYXRhID0gaXQub3B0cy4kZGF0YSAmJiAkc2NoZW1hICYmICRzY2hlbWEuJGRhdGEsXG4gICAgJHNjaGVtYVZhbHVlO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnIHZhciBzY2hlbWEnICsgKCRsdmwpICsgJyA9ICcgKyAoaXQudXRpbC5nZXREYXRhKCRzY2hlbWEuJGRhdGEsICRkYXRhTHZsLCBpdC5kYXRhUGF0aEFycikpICsgJzsgJztcbiAgICAkc2NoZW1hVmFsdWUgPSAnc2NoZW1hJyArICRsdmw7XG4gIH0gZWxzZSB7XG4gICAgJHNjaGVtYVZhbHVlID0gJHNjaGVtYTtcbiAgfVxuICB2YXIgJGkgPSAnaScgKyAkbHZsLFxuICAgICR2U2NoZW1hID0gJ3NjaGVtYScgKyAkbHZsO1xuICBpZiAoISRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyB2YXIgJyArICgkdlNjaGVtYSkgKyAnID0gdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnOyc7XG4gIH1cbiAgb3V0ICs9ICd2YXIgJyArICgkdmFsaWQpICsgJzsnO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnIGlmIChzY2hlbWEnICsgKCRsdmwpICsgJyA9PT0gdW5kZWZpbmVkKSAnICsgKCR2YWxpZCkgKyAnID0gdHJ1ZTsgZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hJyArICgkbHZsKSArICcpKSAnICsgKCR2YWxpZCkgKyAnID0gZmFsc2U7IGVsc2Ugeyc7XG4gIH1cbiAgb3V0ICs9ICcnICsgKCR2YWxpZCkgKyAnID0gZmFsc2U7Zm9yICh2YXIgJyArICgkaSkgKyAnPTA7ICcgKyAoJGkpICsgJzwnICsgKCR2U2NoZW1hKSArICcubGVuZ3RoOyAnICsgKCRpKSArICcrKykgaWYgKGVxdWFsKCcgKyAoJGRhdGEpICsgJywgJyArICgkdlNjaGVtYSkgKyAnWycgKyAoJGkpICsgJ10pKSB7ICcgKyAoJHZhbGlkKSArICcgPSB0cnVlOyBicmVhazsgfSc7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgIH0gICc7XG4gIH1cbiAgb3V0ICs9ICcgaWYgKCEnICsgKCR2YWxpZCkgKyAnKSB7ICAgJztcbiAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdlbnVtJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBhbGxvd2VkVmFsdWVzOiBzY2hlbWEnICsgKCRsdmwpICsgJyB9ICc7XG4gICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBiZSBlcXVhbCB0byBvbmUgb2YgdGhlIGFsbG93ZWQgdmFsdWVzXFwnICc7XG4gICAgfVxuICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgfVxuICAgIG91dCArPSAnIH0gJztcbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB7fSAnO1xuICB9XG4gIHZhciBfX2VyciA9IG91dDtcbiAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gIH1cbiAgb3V0ICs9ICcgfSc7XG4gIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgb3V0ICs9ICcgZWxzZSB7ICc7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX2Zvcm1hdChpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICBpZiAoaXQub3B0cy5mb3JtYXQgPT09IGZhbHNlKSB7XG4gICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgIG91dCArPSAnIGlmICh0cnVlKSB7ICc7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH1cbiAgdmFyICRpc0RhdGEgPSBpdC5vcHRzLiRkYXRhICYmICRzY2hlbWEgJiYgJHNjaGVtYS4kZGF0YSxcbiAgICAkc2NoZW1hVmFsdWU7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgdmFyIHNjaGVtYScgKyAoJGx2bCkgKyAnID0gJyArIChpdC51dGlsLmdldERhdGEoJHNjaGVtYS4kZGF0YSwgJGRhdGFMdmwsIGl0LmRhdGFQYXRoQXJyKSkgKyAnOyAnO1xuICAgICRzY2hlbWFWYWx1ZSA9ICdzY2hlbWEnICsgJGx2bDtcbiAgfSBlbHNlIHtcbiAgICAkc2NoZW1hVmFsdWUgPSAkc2NoZW1hO1xuICB9XG4gIHZhciAkdW5rbm93bkZvcm1hdHMgPSBpdC5vcHRzLnVua25vd25Gb3JtYXRzLFxuICAgICRhbGxvd1Vua25vd24gPSBBcnJheS5pc0FycmF5KCR1bmtub3duRm9ybWF0cyk7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgdmFyICRmb3JtYXQgPSAnZm9ybWF0JyArICRsdmwsXG4gICAgICAkaXNPYmplY3QgPSAnaXNPYmplY3QnICsgJGx2bCxcbiAgICAgICRmb3JtYXRUeXBlID0gJ2Zvcm1hdFR5cGUnICsgJGx2bDtcbiAgICBvdXQgKz0gJyB2YXIgJyArICgkZm9ybWF0KSArICcgPSBmb3JtYXRzWycgKyAoJHNjaGVtYVZhbHVlKSArICddOyB2YXIgJyArICgkaXNPYmplY3QpICsgJyA9IHR5cGVvZiAnICsgKCRmb3JtYXQpICsgJyA9PSBcXCdvYmplY3RcXCcgJiYgISgnICsgKCRmb3JtYXQpICsgJyBpbnN0YW5jZW9mIFJlZ0V4cCkgJiYgJyArICgkZm9ybWF0KSArICcudmFsaWRhdGU7IHZhciAnICsgKCRmb3JtYXRUeXBlKSArICcgPSAnICsgKCRpc09iamVjdCkgKyAnICYmICcgKyAoJGZvcm1hdCkgKyAnLnR5cGUgfHwgXFwnc3RyaW5nXFwnOyBpZiAoJyArICgkaXNPYmplY3QpICsgJykgeyAnO1xuICAgIGlmIChpdC5hc3luYykge1xuICAgICAgb3V0ICs9ICcgdmFyIGFzeW5jJyArICgkbHZsKSArICcgPSAnICsgKCRmb3JtYXQpICsgJy5hc3luYzsgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgJyArICgkZm9ybWF0KSArICcgPSAnICsgKCRmb3JtYXQpICsgJy52YWxpZGF0ZTsgfSBpZiAoICAnO1xuICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICBvdXQgKz0gJyAoJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9IFxcJ3N0cmluZ1xcJykgfHwgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgKCc7XG4gICAgaWYgKCR1bmtub3duRm9ybWF0cyAhPSAnaWdub3JlJykge1xuICAgICAgb3V0ICs9ICcgKCcgKyAoJHNjaGVtYVZhbHVlKSArICcgJiYgIScgKyAoJGZvcm1hdCkgKyAnICc7XG4gICAgICBpZiAoJGFsbG93VW5rbm93bikge1xuICAgICAgICBvdXQgKz0gJyAmJiBzZWxmLl9vcHRzLnVua25vd25Gb3JtYXRzLmluZGV4T2YoJyArICgkc2NoZW1hVmFsdWUpICsgJykgPT0gLTEgJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnKSB8fCAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyAoJyArICgkZm9ybWF0KSArICcgJiYgJyArICgkZm9ybWF0VHlwZSkgKyAnID09IFxcJycgKyAoJHJ1bGVUeXBlKSArICdcXCcgJiYgISh0eXBlb2YgJyArICgkZm9ybWF0KSArICcgPT0gXFwnZnVuY3Rpb25cXCcgPyAnO1xuICAgIGlmIChpdC5hc3luYykge1xuICAgICAgb3V0ICs9ICcgKGFzeW5jJyArICgkbHZsKSArICcgPyBhd2FpdCAnICsgKCRmb3JtYXQpICsgJygnICsgKCRkYXRhKSArICcpIDogJyArICgkZm9ybWF0KSArICcoJyArICgkZGF0YSkgKyAnKSkgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgJyArICgkZm9ybWF0KSArICcoJyArICgkZGF0YSkgKyAnKSAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyA6ICcgKyAoJGZvcm1hdCkgKyAnLnRlc3QoJyArICgkZGF0YSkgKyAnKSkpKSkgeyc7XG4gIH0gZWxzZSB7XG4gICAgdmFyICRmb3JtYXQgPSBpdC5mb3JtYXRzWyRzY2hlbWFdO1xuICAgIGlmICghJGZvcm1hdCkge1xuICAgICAgaWYgKCR1bmtub3duRm9ybWF0cyA9PSAnaWdub3JlJykge1xuICAgICAgICBpdC5sb2dnZXIud2FybigndW5rbm93biBmb3JtYXQgXCInICsgJHNjaGVtYSArICdcIiBpZ25vcmVkIGluIHNjaGVtYSBhdCBwYXRoIFwiJyArIGl0LmVyclNjaGVtYVBhdGggKyAnXCInKTtcbiAgICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgICBvdXQgKz0gJyBpZiAodHJ1ZSkgeyAnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgICB9IGVsc2UgaWYgKCRhbGxvd1Vua25vd24gJiYgJHVua25vd25Gb3JtYXRzLmluZGV4T2YoJHNjaGVtYSkgPj0gMCkge1xuICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgIG91dCArPSAnIGlmICh0cnVlKSB7ICc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndW5rbm93biBmb3JtYXQgXCInICsgJHNjaGVtYSArICdcIiBpcyB1c2VkIGluIHNjaGVtYSBhdCBwYXRoIFwiJyArIGl0LmVyclNjaGVtYVBhdGggKyAnXCInKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyICRpc09iamVjdCA9IHR5cGVvZiAkZm9ybWF0ID09ICdvYmplY3QnICYmICEoJGZvcm1hdCBpbnN0YW5jZW9mIFJlZ0V4cCkgJiYgJGZvcm1hdC52YWxpZGF0ZTtcbiAgICB2YXIgJGZvcm1hdFR5cGUgPSAkaXNPYmplY3QgJiYgJGZvcm1hdC50eXBlIHx8ICdzdHJpbmcnO1xuICAgIGlmICgkaXNPYmplY3QpIHtcbiAgICAgIHZhciAkYXN5bmMgPSAkZm9ybWF0LmFzeW5jID09PSB0cnVlO1xuICAgICAgJGZvcm1hdCA9ICRmb3JtYXQudmFsaWRhdGU7XG4gICAgfVxuICAgIGlmICgkZm9ybWF0VHlwZSAhPSAkcnVsZVR5cGUpIHtcbiAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgIG91dCArPSAnIGlmICh0cnVlKSB7ICc7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3V0O1xuICAgIH1cbiAgICBpZiAoJGFzeW5jKSB7XG4gICAgICBpZiAoIWl0LmFzeW5jKSB0aHJvdyBuZXcgRXJyb3IoJ2FzeW5jIGZvcm1hdCBpbiBzeW5jIHNjaGVtYScpO1xuICAgICAgdmFyICRmb3JtYXRSZWYgPSAnZm9ybWF0cycgKyBpdC51dGlsLmdldFByb3BlcnR5KCRzY2hlbWEpICsgJy52YWxpZGF0ZSc7XG4gICAgICBvdXQgKz0gJyBpZiAoIShhd2FpdCAnICsgKCRmb3JtYXRSZWYpICsgJygnICsgKCRkYXRhKSArICcpKSkgeyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyBpZiAoISAnO1xuICAgICAgdmFyICRmb3JtYXRSZWYgPSAnZm9ybWF0cycgKyBpdC51dGlsLmdldFByb3BlcnR5KCRzY2hlbWEpO1xuICAgICAgaWYgKCRpc09iamVjdCkgJGZvcm1hdFJlZiArPSAnLnZhbGlkYXRlJztcbiAgICAgIGlmICh0eXBlb2YgJGZvcm1hdCA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG91dCArPSAnICcgKyAoJGZvcm1hdFJlZikgKyAnKCcgKyAoJGRhdGEpICsgJykgJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnICcgKyAoJGZvcm1hdFJlZikgKyAnLnRlc3QoJyArICgkZGF0YSkgKyAnKSAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcpIHsgJztcbiAgICB9XG4gIH1cbiAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdmb3JtYXQnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IGZvcm1hdDogICc7XG4gICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgIG91dCArPSAnJyArICgkc2NoZW1hVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJycgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkc2NoZW1hKSk7XG4gICAgfVxuICAgIG91dCArPSAnICB9ICc7XG4gICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBtYXRjaCBmb3JtYXQgXCInO1xuICAgICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgICAgb3V0ICs9ICdcXCcgKyAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICsgXFwnJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnJyArIChpdC51dGlsLmVzY2FwZVF1b3Rlcygkc2NoZW1hKSk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJ1wiXFwnICc7XG4gICAgfVxuICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgIG91dCArPSAnICwgc2NoZW1hOiAgJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAndmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJycgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkc2NoZW1hKSk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyAgICAgICAgICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9ICc7XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcge30gJztcbiAgfVxuICB2YXIgX19lcnIgPSBvdXQ7XG4gIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICB9XG4gIG91dCArPSAnIH0gJztcbiAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfaWYoaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRsdmwgPSBpdC5sZXZlbDtcbiAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgdmFyICR2YWxpZCA9ICd2YWxpZCcgKyAkbHZsO1xuICB2YXIgJGVycnMgPSAnZXJyc19fJyArICRsdmw7XG4gIHZhciAkaXQgPSBpdC51dGlsLmNvcHkoaXQpO1xuICAkaXQubGV2ZWwrKztcbiAgdmFyICRuZXh0VmFsaWQgPSAndmFsaWQnICsgJGl0LmxldmVsO1xuICB2YXIgJHRoZW5TY2ggPSBpdC5zY2hlbWFbJ3RoZW4nXSxcbiAgICAkZWxzZVNjaCA9IGl0LnNjaGVtYVsnZWxzZSddLFxuICAgICR0aGVuUHJlc2VudCA9ICR0aGVuU2NoICE9PSB1bmRlZmluZWQgJiYgKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMgPyAodHlwZW9mICR0aGVuU2NoID09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKCR0aGVuU2NoKS5sZW5ndGggPiAwKSB8fCAkdGhlblNjaCA9PT0gZmFsc2UgOiBpdC51dGlsLnNjaGVtYUhhc1J1bGVzKCR0aGVuU2NoLCBpdC5SVUxFUy5hbGwpKSxcbiAgICAkZWxzZVByZXNlbnQgPSAkZWxzZVNjaCAhPT0gdW5kZWZpbmVkICYmIChpdC5vcHRzLnN0cmljdEtleXdvcmRzID8gKHR5cGVvZiAkZWxzZVNjaCA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkZWxzZVNjaCkubGVuZ3RoID4gMCkgfHwgJGVsc2VTY2ggPT09IGZhbHNlIDogaXQudXRpbC5zY2hlbWFIYXNSdWxlcygkZWxzZVNjaCwgaXQuUlVMRVMuYWxsKSksXG4gICAgJGN1cnJlbnRCYXNlSWQgPSAkaXQuYmFzZUlkO1xuICBpZiAoJHRoZW5QcmVzZW50IHx8ICRlbHNlUHJlc2VudCkge1xuICAgIHZhciAkaWZDbGF1c2U7XG4gICAgJGl0LmNyZWF0ZUVycm9ycyA9IGZhbHNlO1xuICAgICRpdC5zY2hlbWEgPSAkc2NoZW1hO1xuICAgICRpdC5zY2hlbWFQYXRoID0gJHNjaGVtYVBhdGg7XG4gICAgJGl0LmVyclNjaGVtYVBhdGggPSAkZXJyU2NoZW1hUGF0aDtcbiAgICBvdXQgKz0gJyB2YXIgJyArICgkZXJycykgKyAnID0gZXJyb3JzOyB2YXIgJyArICgkdmFsaWQpICsgJyA9IHRydWU7ICAnO1xuICAgIHZhciAkd2FzQ29tcG9zaXRlID0gaXQuY29tcG9zaXRlUnVsZTtcbiAgICBpdC5jb21wb3NpdGVSdWxlID0gJGl0LmNvbXBvc2l0ZVJ1bGUgPSB0cnVlO1xuICAgIG91dCArPSAnICAnICsgKGl0LnZhbGlkYXRlKCRpdCkpICsgJyAnO1xuICAgICRpdC5iYXNlSWQgPSAkY3VycmVudEJhc2VJZDtcbiAgICAkaXQuY3JlYXRlRXJyb3JzID0gdHJ1ZTtcbiAgICBvdXQgKz0gJyAgZXJyb3JzID0gJyArICgkZXJycykgKyAnOyBpZiAodkVycm9ycyAhPT0gbnVsbCkgeyBpZiAoJyArICgkZXJycykgKyAnKSB2RXJyb3JzLmxlbmd0aCA9ICcgKyAoJGVycnMpICsgJzsgZWxzZSB2RXJyb3JzID0gbnVsbDsgfSAgJztcbiAgICBpdC5jb21wb3NpdGVSdWxlID0gJGl0LmNvbXBvc2l0ZVJ1bGUgPSAkd2FzQ29tcG9zaXRlO1xuICAgIGlmICgkdGhlblByZXNlbnQpIHtcbiAgICAgIG91dCArPSAnIGlmICgnICsgKCRuZXh0VmFsaWQpICsgJykgeyAgJztcbiAgICAgICRpdC5zY2hlbWEgPSBpdC5zY2hlbWFbJ3RoZW4nXTtcbiAgICAgICRpdC5zY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArICcudGhlbic7XG4gICAgICAkaXQuZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnL3RoZW4nO1xuICAgICAgb3V0ICs9ICcgICcgKyAoaXQudmFsaWRhdGUoJGl0KSkgKyAnICc7XG4gICAgICAkaXQuYmFzZUlkID0gJGN1cnJlbnRCYXNlSWQ7XG4gICAgICBvdXQgKz0gJyAnICsgKCR2YWxpZCkgKyAnID0gJyArICgkbmV4dFZhbGlkKSArICc7ICc7XG4gICAgICBpZiAoJHRoZW5QcmVzZW50ICYmICRlbHNlUHJlc2VudCkge1xuICAgICAgICAkaWZDbGF1c2UgPSAnaWZDbGF1c2UnICsgJGx2bDtcbiAgICAgICAgb3V0ICs9ICcgdmFyICcgKyAoJGlmQ2xhdXNlKSArICcgPSBcXCd0aGVuXFwnOyAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgJGlmQ2xhdXNlID0gJ1xcJ3RoZW5cXCcnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgaWYgKCRlbHNlUHJlc2VudCkge1xuICAgICAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgaWYgKCEnICsgKCRuZXh0VmFsaWQpICsgJykgeyAnO1xuICAgIH1cbiAgICBpZiAoJGVsc2VQcmVzZW50KSB7XG4gICAgICAkaXQuc2NoZW1hID0gaXQuc2NoZW1hWydlbHNlJ107XG4gICAgICAkaXQuc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyAnLmVsc2UnO1xuICAgICAgJGl0LmVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy9lbHNlJztcbiAgICAgIG91dCArPSAnICAnICsgKGl0LnZhbGlkYXRlKCRpdCkpICsgJyAnO1xuICAgICAgJGl0LmJhc2VJZCA9ICRjdXJyZW50QmFzZUlkO1xuICAgICAgb3V0ICs9ICcgJyArICgkdmFsaWQpICsgJyA9ICcgKyAoJG5leHRWYWxpZCkgKyAnOyAnO1xuICAgICAgaWYgKCR0aGVuUHJlc2VudCAmJiAkZWxzZVByZXNlbnQpIHtcbiAgICAgICAgJGlmQ2xhdXNlID0gJ2lmQ2xhdXNlJyArICRsdmw7XG4gICAgICAgIG91dCArPSAnIHZhciAnICsgKCRpZkNsYXVzZSkgKyAnID0gXFwnZWxzZVxcJzsgJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICRpZkNsYXVzZSA9ICdcXCdlbHNlXFwnJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIH0gJztcbiAgICB9XG4gICAgb3V0ICs9ICcgaWYgKCEnICsgKCR2YWxpZCkgKyAnKSB7ICAgdmFyIGVyciA9ICAgJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdpZicpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgZmFpbGluZ0tleXdvcmQ6ICcgKyAoJGlmQ2xhdXNlKSArICcgfSAnO1xuICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIG1hdGNoIFwiXFwnICsgJyArICgkaWZDbGF1c2UpICsgJyArIFxcJ1wiIHNjaGVtYVxcJyAnO1xuICAgICAgfVxuICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgfSAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB7fSAnO1xuICAgIH1cbiAgICBvdXQgKz0gJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKHZFcnJvcnMpOyAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gdkVycm9yczsgcmV0dXJuIGZhbHNlOyAnO1xuICAgICAgfVxuICAgIH1cbiAgICBvdXQgKz0gJyB9ICAgJztcbiAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgb3V0ICs9ICcgZWxzZSB7ICc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICBvdXQgKz0gJyBpZiAodHJ1ZSkgeyAnO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfaXRlbXMoaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRsdmwgPSBpdC5sZXZlbDtcbiAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgdmFyICR2YWxpZCA9ICd2YWxpZCcgKyAkbHZsO1xuICB2YXIgJGVycnMgPSAnZXJyc19fJyArICRsdmw7XG4gIHZhciAkaXQgPSBpdC51dGlsLmNvcHkoaXQpO1xuICB2YXIgJGNsb3NpbmdCcmFjZXMgPSAnJztcbiAgJGl0LmxldmVsKys7XG4gIHZhciAkbmV4dFZhbGlkID0gJ3ZhbGlkJyArICRpdC5sZXZlbDtcbiAgdmFyICRpZHggPSAnaScgKyAkbHZsLFxuICAgICRkYXRhTnh0ID0gJGl0LmRhdGFMZXZlbCA9IGl0LmRhdGFMZXZlbCArIDEsXG4gICAgJG5leHREYXRhID0gJ2RhdGEnICsgJGRhdGFOeHQsXG4gICAgJGN1cnJlbnRCYXNlSWQgPSBpdC5iYXNlSWQ7XG4gIG91dCArPSAndmFyICcgKyAoJGVycnMpICsgJyA9IGVycm9yczt2YXIgJyArICgkdmFsaWQpICsgJzsnO1xuICBpZiAoQXJyYXkuaXNBcnJheSgkc2NoZW1hKSkge1xuICAgIHZhciAkYWRkaXRpb25hbEl0ZW1zID0gaXQuc2NoZW1hLmFkZGl0aW9uYWxJdGVtcztcbiAgICBpZiAoJGFkZGl0aW9uYWxJdGVtcyA9PT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnICcgKyAoJHZhbGlkKSArICcgPSAnICsgKCRkYXRhKSArICcubGVuZ3RoIDw9ICcgKyAoJHNjaGVtYS5sZW5ndGgpICsgJzsgJztcbiAgICAgIHZhciAkY3VyckVyclNjaGVtYVBhdGggPSAkZXJyU2NoZW1hUGF0aDtcbiAgICAgICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvYWRkaXRpb25hbEl0ZW1zJztcbiAgICAgIG91dCArPSAnICBpZiAoIScgKyAoJHZhbGlkKSArICcpIHsgICAnO1xuICAgICAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAgICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgnYWRkaXRpb25hbEl0ZW1zJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBsaW1pdDogJyArICgkc2NoZW1hLmxlbmd0aCkgKyAnIH0gJztcbiAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgTk9UIGhhdmUgbW9yZSB0aGFuICcgKyAoJHNjaGVtYS5sZW5ndGgpICsgJyBpdGVtc1xcJyAnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogZmFsc2UgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICAgIH1cbiAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgIH1cbiAgICAgIHZhciBfX2VyciA9IG91dDtcbiAgICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgJGVyclNjaGVtYVBhdGggPSAkY3VyckVyclNjaGVtYVBhdGg7XG4gICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAkY2xvc2luZ0JyYWNlcyArPSAnfSc7XG4gICAgICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgYXJyMSA9ICRzY2hlbWE7XG4gICAgaWYgKGFycjEpIHtcbiAgICAgIHZhciAkc2NoLCAkaSA9IC0xLFxuICAgICAgICBsMSA9IGFycjEubGVuZ3RoIC0gMTtcbiAgICAgIHdoaWxlICgkaSA8IGwxKSB7XG4gICAgICAgICRzY2ggPSBhcnIxWyRpICs9IDFdO1xuICAgICAgICBpZiAoKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMgPyAodHlwZW9mICRzY2ggPT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoJHNjaCkubGVuZ3RoID4gMCkgfHwgJHNjaCA9PT0gZmFsc2UgOiBpdC51dGlsLnNjaGVtYUhhc1J1bGVzKCRzY2gsIGl0LlJVTEVTLmFsbCkpKSB7XG4gICAgICAgICAgb3V0ICs9ICcgJyArICgkbmV4dFZhbGlkKSArICcgPSB0cnVlOyBpZiAoJyArICgkZGF0YSkgKyAnLmxlbmd0aCA+ICcgKyAoJGkpICsgJykgeyAnO1xuICAgICAgICAgIHZhciAkcGFzc0RhdGEgPSAkZGF0YSArICdbJyArICRpICsgJ10nO1xuICAgICAgICAgICRpdC5zY2hlbWEgPSAkc2NoO1xuICAgICAgICAgICRpdC5zY2hlbWFQYXRoID0gJHNjaGVtYVBhdGggKyAnWycgKyAkaSArICddJztcbiAgICAgICAgICAkaXQuZXJyU2NoZW1hUGF0aCA9ICRlcnJTY2hlbWFQYXRoICsgJy8nICsgJGk7XG4gICAgICAgICAgJGl0LmVycm9yUGF0aCA9IGl0LnV0aWwuZ2V0UGF0aEV4cHIoaXQuZXJyb3JQYXRoLCAkaSwgaXQub3B0cy5qc29uUG9pbnRlcnMsIHRydWUpO1xuICAgICAgICAgICRpdC5kYXRhUGF0aEFyclskZGF0YU54dF0gPSAkaTtcbiAgICAgICAgICB2YXIgJGNvZGUgPSBpdC52YWxpZGF0ZSgkaXQpO1xuICAgICAgICAgICRpdC5iYXNlSWQgPSAkY3VycmVudEJhc2VJZDtcbiAgICAgICAgICBpZiAoaXQudXRpbC52YXJPY2N1cmVuY2VzKCRjb2RlLCAkbmV4dERhdGEpIDwgMikge1xuICAgICAgICAgICAgb3V0ICs9ICcgJyArIChpdC51dGlsLnZhclJlcGxhY2UoJGNvZGUsICRuZXh0RGF0YSwgJHBhc3NEYXRhKSkgKyAnICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHZhciAnICsgKCRuZXh0RGF0YSkgKyAnID0gJyArICgkcGFzc0RhdGEpICsgJzsgJyArICgkY29kZSkgKyAnICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnIH0gICc7XG4gICAgICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgICAgIG91dCArPSAnIGlmICgnICsgKCRuZXh0VmFsaWQpICsgJykgeyAnO1xuICAgICAgICAgICAgJGNsb3NpbmdCcmFjZXMgKz0gJ30nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mICRhZGRpdGlvbmFsSXRlbXMgPT0gJ29iamVjdCcgJiYgKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMgPyAodHlwZW9mICRhZGRpdGlvbmFsSXRlbXMgPT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoJGFkZGl0aW9uYWxJdGVtcykubGVuZ3RoID4gMCkgfHwgJGFkZGl0aW9uYWxJdGVtcyA9PT0gZmFsc2UgOiBpdC51dGlsLnNjaGVtYUhhc1J1bGVzKCRhZGRpdGlvbmFsSXRlbXMsIGl0LlJVTEVTLmFsbCkpKSB7XG4gICAgICAkaXQuc2NoZW1hID0gJGFkZGl0aW9uYWxJdGVtcztcbiAgICAgICRpdC5zY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArICcuYWRkaXRpb25hbEl0ZW1zJztcbiAgICAgICRpdC5lcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvYWRkaXRpb25hbEl0ZW1zJztcbiAgICAgIG91dCArPSAnICcgKyAoJG5leHRWYWxpZCkgKyAnID0gdHJ1ZTsgaWYgKCcgKyAoJGRhdGEpICsgJy5sZW5ndGggPiAnICsgKCRzY2hlbWEubGVuZ3RoKSArICcpIHsgIGZvciAodmFyICcgKyAoJGlkeCkgKyAnID0gJyArICgkc2NoZW1hLmxlbmd0aCkgKyAnOyAnICsgKCRpZHgpICsgJyA8ICcgKyAoJGRhdGEpICsgJy5sZW5ndGg7ICcgKyAoJGlkeCkgKyAnKyspIHsgJztcbiAgICAgICRpdC5lcnJvclBhdGggPSBpdC51dGlsLmdldFBhdGhFeHByKGl0LmVycm9yUGF0aCwgJGlkeCwgaXQub3B0cy5qc29uUG9pbnRlcnMsIHRydWUpO1xuICAgICAgdmFyICRwYXNzRGF0YSA9ICRkYXRhICsgJ1snICsgJGlkeCArICddJztcbiAgICAgICRpdC5kYXRhUGF0aEFyclskZGF0YU54dF0gPSAkaWR4O1xuICAgICAgdmFyICRjb2RlID0gaXQudmFsaWRhdGUoJGl0KTtcbiAgICAgICRpdC5iYXNlSWQgPSAkY3VycmVudEJhc2VJZDtcbiAgICAgIGlmIChpdC51dGlsLnZhck9jY3VyZW5jZXMoJGNvZGUsICRuZXh0RGF0YSkgPCAyKSB7XG4gICAgICAgIG91dCArPSAnICcgKyAoaXQudXRpbC52YXJSZXBsYWNlKCRjb2RlLCAkbmV4dERhdGEsICRwYXNzRGF0YSkpICsgJyAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgdmFyICcgKyAoJG5leHREYXRhKSArICcgPSAnICsgKCRwYXNzRGF0YSkgKyAnOyAnICsgKCRjb2RlKSArICcgJztcbiAgICAgIH1cbiAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgIG91dCArPSAnIGlmICghJyArICgkbmV4dFZhbGlkKSArICcpIGJyZWFrOyAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgfSB9ICAnO1xuICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJG5leHRWYWxpZCkgKyAnKSB7ICc7XG4gICAgICAgICRjbG9zaW5nQnJhY2VzICs9ICd9JztcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMgPyAodHlwZW9mICRzY2hlbWEgPT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoJHNjaGVtYSkubGVuZ3RoID4gMCkgfHwgJHNjaGVtYSA9PT0gZmFsc2UgOiBpdC51dGlsLnNjaGVtYUhhc1J1bGVzKCRzY2hlbWEsIGl0LlJVTEVTLmFsbCkpKSB7XG4gICAgJGl0LnNjaGVtYSA9ICRzY2hlbWE7XG4gICAgJGl0LnNjaGVtYVBhdGggPSAkc2NoZW1hUGF0aDtcbiAgICAkaXQuZXJyU2NoZW1hUGF0aCA9ICRlcnJTY2hlbWFQYXRoO1xuICAgIG91dCArPSAnICBmb3IgKHZhciAnICsgKCRpZHgpICsgJyA9ICcgKyAoMCkgKyAnOyAnICsgKCRpZHgpICsgJyA8ICcgKyAoJGRhdGEpICsgJy5sZW5ndGg7ICcgKyAoJGlkeCkgKyAnKyspIHsgJztcbiAgICAkaXQuZXJyb3JQYXRoID0gaXQudXRpbC5nZXRQYXRoRXhwcihpdC5lcnJvclBhdGgsICRpZHgsIGl0Lm9wdHMuanNvblBvaW50ZXJzLCB0cnVlKTtcbiAgICB2YXIgJHBhc3NEYXRhID0gJGRhdGEgKyAnWycgKyAkaWR4ICsgJ10nO1xuICAgICRpdC5kYXRhUGF0aEFyclskZGF0YU54dF0gPSAkaWR4O1xuICAgIHZhciAkY29kZSA9IGl0LnZhbGlkYXRlKCRpdCk7XG4gICAgJGl0LmJhc2VJZCA9ICRjdXJyZW50QmFzZUlkO1xuICAgIGlmIChpdC51dGlsLnZhck9jY3VyZW5jZXMoJGNvZGUsICRuZXh0RGF0YSkgPCAyKSB7XG4gICAgICBvdXQgKz0gJyAnICsgKGl0LnV0aWwudmFyUmVwbGFjZSgkY29kZSwgJG5leHREYXRhLCAkcGFzc0RhdGEpKSArICcgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFyICcgKyAoJG5leHREYXRhKSArICcgPSAnICsgKCRwYXNzRGF0YSkgKyAnOyAnICsgKCRjb2RlKSArICcgJztcbiAgICB9XG4gICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgIG91dCArPSAnIGlmICghJyArICgkbmV4dFZhbGlkKSArICcpIGJyZWFrOyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9JztcbiAgfVxuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnICcgKyAoJGNsb3NpbmdCcmFjZXMpICsgJyBpZiAoJyArICgkZXJycykgKyAnID09IGVycm9ycykgeyc7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX19saW1pdChpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGVycm9yS2V5d29yZDtcbiAgdmFyICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgdmFyICRpc0RhdGEgPSBpdC5vcHRzLiRkYXRhICYmICRzY2hlbWEgJiYgJHNjaGVtYS4kZGF0YSxcbiAgICAkc2NoZW1hVmFsdWU7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgdmFyIHNjaGVtYScgKyAoJGx2bCkgKyAnID0gJyArIChpdC51dGlsLmdldERhdGEoJHNjaGVtYS4kZGF0YSwgJGRhdGFMdmwsIGl0LmRhdGFQYXRoQXJyKSkgKyAnOyAnO1xuICAgICRzY2hlbWFWYWx1ZSA9ICdzY2hlbWEnICsgJGx2bDtcbiAgfSBlbHNlIHtcbiAgICAkc2NoZW1hVmFsdWUgPSAkc2NoZW1hO1xuICB9XG4gIHZhciAkaXNNYXggPSAka2V5d29yZCA9PSAnbWF4aW11bScsXG4gICAgJGV4Y2x1c2l2ZUtleXdvcmQgPSAkaXNNYXggPyAnZXhjbHVzaXZlTWF4aW11bScgOiAnZXhjbHVzaXZlTWluaW11bScsXG4gICAgJHNjaGVtYUV4Y2wgPSBpdC5zY2hlbWFbJGV4Y2x1c2l2ZUtleXdvcmRdLFxuICAgICRpc0RhdGFFeGNsID0gaXQub3B0cy4kZGF0YSAmJiAkc2NoZW1hRXhjbCAmJiAkc2NoZW1hRXhjbC4kZGF0YSxcbiAgICAkb3AgPSAkaXNNYXggPyAnPCcgOiAnPicsXG4gICAgJG5vdE9wID0gJGlzTWF4ID8gJz4nIDogJzwnLFxuICAgICRlcnJvcktleXdvcmQgPSB1bmRlZmluZWQ7XG4gIGlmICghKCRpc0RhdGEgfHwgdHlwZW9mICRzY2hlbWEgPT0gJ251bWJlcicgfHwgJHNjaGVtYSA9PT0gdW5kZWZpbmVkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigka2V5d29yZCArICcgbXVzdCBiZSBudW1iZXInKTtcbiAgfVxuICBpZiAoISgkaXNEYXRhRXhjbCB8fCAkc2NoZW1hRXhjbCA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiAkc2NoZW1hRXhjbCA9PSAnbnVtYmVyJyB8fCB0eXBlb2YgJHNjaGVtYUV4Y2wgPT0gJ2Jvb2xlYW4nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigkZXhjbHVzaXZlS2V5d29yZCArICcgbXVzdCBiZSBudW1iZXIgb3IgYm9vbGVhbicpO1xuICB9XG4gIGlmICgkaXNEYXRhRXhjbCkge1xuICAgIHZhciAkc2NoZW1hVmFsdWVFeGNsID0gaXQudXRpbC5nZXREYXRhKCRzY2hlbWFFeGNsLiRkYXRhLCAkZGF0YUx2bCwgaXQuZGF0YVBhdGhBcnIpLFxuICAgICAgJGV4Y2x1c2l2ZSA9ICdleGNsdXNpdmUnICsgJGx2bCxcbiAgICAgICRleGNsVHlwZSA9ICdleGNsVHlwZScgKyAkbHZsLFxuICAgICAgJGV4Y2xJc051bWJlciA9ICdleGNsSXNOdW1iZXInICsgJGx2bCxcbiAgICAgICRvcEV4cHIgPSAnb3AnICsgJGx2bCxcbiAgICAgICRvcFN0ciA9ICdcXCcgKyAnICsgJG9wRXhwciArICcgKyBcXCcnO1xuICAgIG91dCArPSAnIHZhciBzY2hlbWFFeGNsJyArICgkbHZsKSArICcgPSAnICsgKCRzY2hlbWFWYWx1ZUV4Y2wpICsgJzsgJztcbiAgICAkc2NoZW1hVmFsdWVFeGNsID0gJ3NjaGVtYUV4Y2wnICsgJGx2bDtcbiAgICBvdXQgKz0gJyB2YXIgJyArICgkZXhjbHVzaXZlKSArICc7IHZhciAnICsgKCRleGNsVHlwZSkgKyAnID0gdHlwZW9mICcgKyAoJHNjaGVtYVZhbHVlRXhjbCkgKyAnOyBpZiAoJyArICgkZXhjbFR5cGUpICsgJyAhPSBcXCdib29sZWFuXFwnICYmICcgKyAoJGV4Y2xUeXBlKSArICcgIT0gXFwndW5kZWZpbmVkXFwnICYmICcgKyAoJGV4Y2xUeXBlKSArICcgIT0gXFwnbnVtYmVyXFwnKSB7ICc7XG4gICAgdmFyICRlcnJvcktleXdvcmQgPSAkZXhjbHVzaXZlS2V5d29yZDtcbiAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgkZXJyb3JLZXl3b3JkIHx8ICdfZXhjbHVzaXZlTGltaXQnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7fSAnO1xuICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnJyArICgkZXhjbHVzaXZlS2V5d29yZCkgKyAnIHNob3VsZCBiZSBib29sZWFuXFwnICc7XG4gICAgICB9XG4gICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgfVxuICAgIHZhciBfX2VyciA9IG91dDtcbiAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgfSBlbHNlIGlmICggJztcbiAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgb3V0ICs9ICcgKCcgKyAoJHNjaGVtYVZhbHVlKSArICcgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPSBcXCdudW1iZXJcXCcpIHx8ICc7XG4gICAgfVxuICAgIG91dCArPSAnICcgKyAoJGV4Y2xUeXBlKSArICcgPT0gXFwnbnVtYmVyXFwnID8gKCAoJyArICgkZXhjbHVzaXZlKSArICcgPSAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnID09PSB1bmRlZmluZWQgfHwgJyArICgkc2NoZW1hVmFsdWVFeGNsKSArICcgJyArICgkb3ApICsgJz0gJyArICgkc2NoZW1hVmFsdWUpICsgJykgPyAnICsgKCRkYXRhKSArICcgJyArICgkbm90T3ApICsgJz0gJyArICgkc2NoZW1hVmFsdWVFeGNsKSArICcgOiAnICsgKCRkYXRhKSArICcgJyArICgkbm90T3ApICsgJyAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICkgOiAoICgnICsgKCRleGNsdXNpdmUpICsgJyA9ICcgKyAoJHNjaGVtYVZhbHVlRXhjbCkgKyAnID09PSB0cnVlKSA/ICcgKyAoJGRhdGEpICsgJyAnICsgKCRub3RPcCkgKyAnPSAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnIDogJyArICgkZGF0YSkgKyAnICcgKyAoJG5vdE9wKSArICcgJyArICgkc2NoZW1hVmFsdWUpICsgJyApIHx8ICcgKyAoJGRhdGEpICsgJyAhPT0gJyArICgkZGF0YSkgKyAnKSB7IHZhciBvcCcgKyAoJGx2bCkgKyAnID0gJyArICgkZXhjbHVzaXZlKSArICcgPyBcXCcnICsgKCRvcCkgKyAnXFwnIDogXFwnJyArICgkb3ApICsgJz1cXCc7ICc7XG4gICAgaWYgKCRzY2hlbWEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgJGVycm9yS2V5d29yZCA9ICRleGNsdXNpdmVLZXl3b3JkO1xuICAgICAgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGV4Y2x1c2l2ZUtleXdvcmQ7XG4gICAgICAkc2NoZW1hVmFsdWUgPSAkc2NoZW1hVmFsdWVFeGNsO1xuICAgICAgJGlzRGF0YSA9ICRpc0RhdGFFeGNsO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgJGV4Y2xJc051bWJlciA9IHR5cGVvZiAkc2NoZW1hRXhjbCA9PSAnbnVtYmVyJyxcbiAgICAgICRvcFN0ciA9ICRvcDtcbiAgICBpZiAoJGV4Y2xJc051bWJlciAmJiAkaXNEYXRhKSB7XG4gICAgICB2YXIgJG9wRXhwciA9ICdcXCcnICsgJG9wU3RyICsgJ1xcJyc7XG4gICAgICBvdXQgKz0gJyBpZiAoICc7XG4gICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICBvdXQgKz0gJyAoJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9IFxcJ251bWJlclxcJykgfHwgJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnICggJyArICgkc2NoZW1hVmFsdWUpICsgJyA9PT0gdW5kZWZpbmVkIHx8ICcgKyAoJHNjaGVtYUV4Y2wpICsgJyAnICsgKCRvcCkgKyAnPSAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnID8gJyArICgkZGF0YSkgKyAnICcgKyAoJG5vdE9wKSArICc9ICcgKyAoJHNjaGVtYUV4Y2wpICsgJyA6ICcgKyAoJGRhdGEpICsgJyAnICsgKCRub3RPcCkgKyAnICcgKyAoJHNjaGVtYVZhbHVlKSArICcgKSB8fCAnICsgKCRkYXRhKSArICcgIT09ICcgKyAoJGRhdGEpICsgJykgeyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoJGV4Y2xJc051bWJlciAmJiAkc2NoZW1hID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgJGV4Y2x1c2l2ZSA9IHRydWU7XG4gICAgICAgICRlcnJvcktleXdvcmQgPSAkZXhjbHVzaXZlS2V5d29yZDtcbiAgICAgICAgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGV4Y2x1c2l2ZUtleXdvcmQ7XG4gICAgICAgICRzY2hlbWFWYWx1ZSA9ICRzY2hlbWFFeGNsO1xuICAgICAgICAkbm90T3AgKz0gJz0nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCRleGNsSXNOdW1iZXIpICRzY2hlbWFWYWx1ZSA9IE1hdGhbJGlzTWF4ID8gJ21pbicgOiAnbWF4J10oJHNjaGVtYUV4Y2wsICRzY2hlbWEpO1xuICAgICAgICBpZiAoJHNjaGVtYUV4Y2wgPT09ICgkZXhjbElzTnVtYmVyID8gJHNjaGVtYVZhbHVlIDogdHJ1ZSkpIHtcbiAgICAgICAgICAkZXhjbHVzaXZlID0gdHJ1ZTtcbiAgICAgICAgICAkZXJyb3JLZXl3b3JkID0gJGV4Y2x1c2l2ZUtleXdvcmQ7XG4gICAgICAgICAgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGV4Y2x1c2l2ZUtleXdvcmQ7XG4gICAgICAgICAgJG5vdE9wICs9ICc9JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAkZXhjbHVzaXZlID0gZmFsc2U7XG4gICAgICAgICAgJG9wU3RyICs9ICc9JztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFyICRvcEV4cHIgPSAnXFwnJyArICRvcFN0ciArICdcXCcnO1xuICAgICAgb3V0ICs9ICcgaWYgKCAnO1xuICAgICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgICAgb3V0ICs9ICcgKCcgKyAoJHNjaGVtYVZhbHVlKSArICcgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPSBcXCdudW1iZXJcXCcpIHx8ICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyAnICsgKCRkYXRhKSArICcgJyArICgkbm90T3ApICsgJyAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnIHx8ICcgKyAoJGRhdGEpICsgJyAhPT0gJyArICgkZGF0YSkgKyAnKSB7ICc7XG4gICAgfVxuICB9XG4gICRlcnJvcktleXdvcmQgPSAkZXJyb3JLZXl3b3JkIHx8ICRrZXl3b3JkO1xuICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJGVycm9yS2V5d29yZCB8fCAnX2xpbWl0JykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBjb21wYXJpc29uOiAnICsgKCRvcEV4cHIpICsgJywgbGltaXQ6ICcgKyAoJHNjaGVtYVZhbHVlKSArICcsIGV4Y2x1c2l2ZTogJyArICgkZXhjbHVzaXZlKSArICcgfSAnO1xuICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgYmUgJyArICgkb3BTdHIpICsgJyAnO1xuICAgICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgICAgb3V0ICs9ICdcXCcgKyAnICsgKCRzY2hlbWFWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJycgKyAoJHNjaGVtYVZhbHVlKSArICdcXCcnO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICBvdXQgKz0gJyAsIHNjaGVtYTogICc7XG4gICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICBvdXQgKz0gJ3ZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcnICsgKCRzY2hlbWEpO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgICAgICAgICAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgfSAnO1xuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHt9ICc7XG4gIH1cbiAgdmFyIF9fZXJyID0gb3V0O1xuICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChpdC5hc3luYykge1xuICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgfVxuICBvdXQgKz0gJyB9ICc7XG4gIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgb3V0ICs9ICcgZWxzZSB7ICc7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX19saW1pdEl0ZW1zKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZXJyb3JLZXl3b3JkO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJGlzRGF0YSA9IGl0Lm9wdHMuJGRhdGEgJiYgJHNjaGVtYSAmJiAkc2NoZW1hLiRkYXRhLFxuICAgICRzY2hlbWFWYWx1ZTtcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyB2YXIgc2NoZW1hJyArICgkbHZsKSArICcgPSAnICsgKGl0LnV0aWwuZ2V0RGF0YSgkc2NoZW1hLiRkYXRhLCAkZGF0YUx2bCwgaXQuZGF0YVBhdGhBcnIpKSArICc7ICc7XG4gICAgJHNjaGVtYVZhbHVlID0gJ3NjaGVtYScgKyAkbHZsO1xuICB9IGVsc2Uge1xuICAgICRzY2hlbWFWYWx1ZSA9ICRzY2hlbWE7XG4gIH1cbiAgaWYgKCEoJGlzRGF0YSB8fCB0eXBlb2YgJHNjaGVtYSA9PSAnbnVtYmVyJykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJGtleXdvcmQgKyAnIG11c3QgYmUgbnVtYmVyJyk7XG4gIH1cbiAgdmFyICRvcCA9ICRrZXl3b3JkID09ICdtYXhJdGVtcycgPyAnPicgOiAnPCc7XG4gIG91dCArPSAnaWYgKCAnO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnICgnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mICcgKyAoJHNjaGVtYVZhbHVlKSArICcgIT0gXFwnbnVtYmVyXFwnKSB8fCAnO1xuICB9XG4gIG91dCArPSAnICcgKyAoJGRhdGEpICsgJy5sZW5ndGggJyArICgkb3ApICsgJyAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnKSB7ICc7XG4gIHZhciAkZXJyb3JLZXl3b3JkID0gJGtleXdvcmQ7XG4gIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgkZXJyb3JLZXl3b3JkIHx8ICdfbGltaXRJdGVtcycpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgbGltaXQ6ICcgKyAoJHNjaGVtYVZhbHVlKSArICcgfSAnO1xuICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgTk9UIGhhdmUgJztcbiAgICAgIGlmICgka2V5d29yZCA9PSAnbWF4SXRlbXMnKSB7XG4gICAgICAgIG91dCArPSAnbW9yZSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJ2Zld2VyJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIHRoYW4gJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAnXFwnICsgJyArICgkc2NoZW1hVmFsdWUpICsgJyArIFxcJyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJycgKyAoJHNjaGVtYSk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyBpdGVtc1xcJyAnO1xuICAgIH1cbiAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICBvdXQgKz0gJyAsIHNjaGVtYTogICc7XG4gICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICBvdXQgKz0gJ3ZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcnICsgKCRzY2hlbWEpO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgICAgICAgICAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgfSAnO1xuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHt9ICc7XG4gIH1cbiAgdmFyIF9fZXJyID0gb3V0O1xuICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChpdC5hc3luYykge1xuICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgfVxuICBvdXQgKz0gJ30gJztcbiAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfX2xpbWl0TGVuZ3RoKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZXJyb3JLZXl3b3JkO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJGlzRGF0YSA9IGl0Lm9wdHMuJGRhdGEgJiYgJHNjaGVtYSAmJiAkc2NoZW1hLiRkYXRhLFxuICAgICRzY2hlbWFWYWx1ZTtcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyB2YXIgc2NoZW1hJyArICgkbHZsKSArICcgPSAnICsgKGl0LnV0aWwuZ2V0RGF0YSgkc2NoZW1hLiRkYXRhLCAkZGF0YUx2bCwgaXQuZGF0YVBhdGhBcnIpKSArICc7ICc7XG4gICAgJHNjaGVtYVZhbHVlID0gJ3NjaGVtYScgKyAkbHZsO1xuICB9IGVsc2Uge1xuICAgICRzY2hlbWFWYWx1ZSA9ICRzY2hlbWE7XG4gIH1cbiAgaWYgKCEoJGlzRGF0YSB8fCB0eXBlb2YgJHNjaGVtYSA9PSAnbnVtYmVyJykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJGtleXdvcmQgKyAnIG11c3QgYmUgbnVtYmVyJyk7XG4gIH1cbiAgdmFyICRvcCA9ICRrZXl3b3JkID09ICdtYXhMZW5ndGgnID8gJz4nIDogJzwnO1xuICBvdXQgKz0gJ2lmICggJztcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyAoJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9IFxcJ251bWJlclxcJykgfHwgJztcbiAgfVxuICBpZiAoaXQub3B0cy51bmljb2RlID09PSBmYWxzZSkge1xuICAgIG91dCArPSAnICcgKyAoJGRhdGEpICsgJy5sZW5ndGggJztcbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB1Y3MybGVuZ3RoKCcgKyAoJGRhdGEpICsgJykgJztcbiAgfVxuICBvdXQgKz0gJyAnICsgKCRvcCkgKyAnICcgKyAoJHNjaGVtYVZhbHVlKSArICcpIHsgJztcbiAgdmFyICRlcnJvcktleXdvcmQgPSAka2V5d29yZDtcbiAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCRlcnJvcktleXdvcmQgfHwgJ19saW1pdExlbmd0aCcpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgbGltaXQ6ICcgKyAoJHNjaGVtYVZhbHVlKSArICcgfSAnO1xuICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgTk9UIGJlICc7XG4gICAgICBpZiAoJGtleXdvcmQgPT0gJ21heExlbmd0aCcpIHtcbiAgICAgICAgb3V0ICs9ICdsb25nZXInO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICdzaG9ydGVyJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIHRoYW4gJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAnXFwnICsgJyArICgkc2NoZW1hVmFsdWUpICsgJyArIFxcJyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJycgKyAoJHNjaGVtYSk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyBjaGFyYWN0ZXJzXFwnICc7XG4gICAgfVxuICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgIG91dCArPSAnICwgc2NoZW1hOiAgJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAndmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJycgKyAoJHNjaGVtYSk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyAgICAgICAgICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9ICc7XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcge30gJztcbiAgfVxuICB2YXIgX19lcnIgPSBvdXQ7XG4gIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICB9XG4gIG91dCArPSAnfSAnO1xuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV9fbGltaXRQcm9wZXJ0aWVzKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZXJyb3JLZXl3b3JkO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJGlzRGF0YSA9IGl0Lm9wdHMuJGRhdGEgJiYgJHNjaGVtYSAmJiAkc2NoZW1hLiRkYXRhLFxuICAgICRzY2hlbWFWYWx1ZTtcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyB2YXIgc2NoZW1hJyArICgkbHZsKSArICcgPSAnICsgKGl0LnV0aWwuZ2V0RGF0YSgkc2NoZW1hLiRkYXRhLCAkZGF0YUx2bCwgaXQuZGF0YVBhdGhBcnIpKSArICc7ICc7XG4gICAgJHNjaGVtYVZhbHVlID0gJ3NjaGVtYScgKyAkbHZsO1xuICB9IGVsc2Uge1xuICAgICRzY2hlbWFWYWx1ZSA9ICRzY2hlbWE7XG4gIH1cbiAgaWYgKCEoJGlzRGF0YSB8fCB0eXBlb2YgJHNjaGVtYSA9PSAnbnVtYmVyJykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJGtleXdvcmQgKyAnIG11c3QgYmUgbnVtYmVyJyk7XG4gIH1cbiAgdmFyICRvcCA9ICRrZXl3b3JkID09ICdtYXhQcm9wZXJ0aWVzJyA/ICc+JyA6ICc8JztcbiAgb3V0ICs9ICdpZiAoICc7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgKCcgKyAoJHNjaGVtYVZhbHVlKSArICcgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPSBcXCdudW1iZXJcXCcpIHx8ICc7XG4gIH1cbiAgb3V0ICs9ICcgT2JqZWN0LmtleXMoJyArICgkZGF0YSkgKyAnKS5sZW5ndGggJyArICgkb3ApICsgJyAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnKSB7ICc7XG4gIHZhciAkZXJyb3JLZXl3b3JkID0gJGtleXdvcmQ7XG4gIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgkZXJyb3JLZXl3b3JkIHx8ICdfbGltaXRQcm9wZXJ0aWVzJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBsaW1pdDogJyArICgkc2NoZW1hVmFsdWUpICsgJyB9ICc7XG4gICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBOT1QgaGF2ZSAnO1xuICAgICAgaWYgKCRrZXl3b3JkID09ICdtYXhQcm9wZXJ0aWVzJykge1xuICAgICAgICBvdXQgKz0gJ21vcmUnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICdmZXdlcic7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB0aGFuICc7XG4gICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICBvdXQgKz0gJ1xcJyArICcgKyAoJHNjaGVtYVZhbHVlKSArICcgKyBcXCcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcnICsgKCRzY2hlbWEpO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgcHJvcGVydGllc1xcJyAnO1xuICAgIH1cbiAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICBvdXQgKz0gJyAsIHNjaGVtYTogICc7XG4gICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICBvdXQgKz0gJ3ZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcnICsgKCRzY2hlbWEpO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgICAgICAgICAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgfSAnO1xuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHt9ICc7XG4gIH1cbiAgdmFyIF9fZXJyID0gb3V0O1xuICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChpdC5hc3luYykge1xuICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgfVxuICBvdXQgKz0gJ30gJztcbiAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfbXVsdGlwbGVPZihpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJGlzRGF0YSA9IGl0Lm9wdHMuJGRhdGEgJiYgJHNjaGVtYSAmJiAkc2NoZW1hLiRkYXRhLFxuICAgICRzY2hlbWFWYWx1ZTtcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyB2YXIgc2NoZW1hJyArICgkbHZsKSArICcgPSAnICsgKGl0LnV0aWwuZ2V0RGF0YSgkc2NoZW1hLiRkYXRhLCAkZGF0YUx2bCwgaXQuZGF0YVBhdGhBcnIpKSArICc7ICc7XG4gICAgJHNjaGVtYVZhbHVlID0gJ3NjaGVtYScgKyAkbHZsO1xuICB9IGVsc2Uge1xuICAgICRzY2hlbWFWYWx1ZSA9ICRzY2hlbWE7XG4gIH1cbiAgaWYgKCEoJGlzRGF0YSB8fCB0eXBlb2YgJHNjaGVtYSA9PSAnbnVtYmVyJykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJGtleXdvcmQgKyAnIG11c3QgYmUgbnVtYmVyJyk7XG4gIH1cbiAgb3V0ICs9ICd2YXIgZGl2aXNpb24nICsgKCRsdmwpICsgJztpZiAoJztcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9PSB1bmRlZmluZWQgJiYgKCB0eXBlb2YgJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPSBcXCdudW1iZXJcXCcgfHwgJztcbiAgfVxuICBvdXQgKz0gJyAoZGl2aXNpb24nICsgKCRsdmwpICsgJyA9ICcgKyAoJGRhdGEpICsgJyAvICcgKyAoJHNjaGVtYVZhbHVlKSArICcsICc7XG4gIGlmIChpdC5vcHRzLm11bHRpcGxlT2ZQcmVjaXNpb24pIHtcbiAgICBvdXQgKz0gJyBNYXRoLmFicyhNYXRoLnJvdW5kKGRpdmlzaW9uJyArICgkbHZsKSArICcpIC0gZGl2aXNpb24nICsgKCRsdmwpICsgJykgPiAxZS0nICsgKGl0Lm9wdHMubXVsdGlwbGVPZlByZWNpc2lvbikgKyAnICc7XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcgZGl2aXNpb24nICsgKCRsdmwpICsgJyAhPT0gcGFyc2VJbnQoZGl2aXNpb24nICsgKCRsdmwpICsgJykgJztcbiAgfVxuICBvdXQgKz0gJyApICc7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgICkgICc7XG4gIH1cbiAgb3V0ICs9ICcgKSB7ICAgJztcbiAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdtdWx0aXBsZU9mJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBtdWx0aXBsZU9mOiAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnIH0gJztcbiAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIGJlIG11bHRpcGxlIG9mICc7XG4gICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICBvdXQgKz0gJ1xcJyArICcgKyAoJHNjaGVtYVZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnJyArICgkc2NoZW1hVmFsdWUpICsgJ1xcJyc7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgIG91dCArPSAnICwgc2NoZW1hOiAgJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAndmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJycgKyAoJHNjaGVtYSk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyAgICAgICAgICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9ICc7XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcge30gJztcbiAgfVxuICB2YXIgX19lcnIgPSBvdXQ7XG4gIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICB9XG4gIG91dCArPSAnfSAnO1xuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV9ub3QoaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRsdmwgPSBpdC5sZXZlbDtcbiAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgdmFyICRlcnJzID0gJ2VycnNfXycgKyAkbHZsO1xuICB2YXIgJGl0ID0gaXQudXRpbC5jb3B5KGl0KTtcbiAgJGl0LmxldmVsKys7XG4gIHZhciAkbmV4dFZhbGlkID0gJ3ZhbGlkJyArICRpdC5sZXZlbDtcbiAgaWYgKChpdC5vcHRzLnN0cmljdEtleXdvcmRzID8gKHR5cGVvZiAkc2NoZW1hID09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKCRzY2hlbWEpLmxlbmd0aCA+IDApIHx8ICRzY2hlbWEgPT09IGZhbHNlIDogaXQudXRpbC5zY2hlbWFIYXNSdWxlcygkc2NoZW1hLCBpdC5SVUxFUy5hbGwpKSkge1xuICAgICRpdC5zY2hlbWEgPSAkc2NoZW1hO1xuICAgICRpdC5zY2hlbWFQYXRoID0gJHNjaGVtYVBhdGg7XG4gICAgJGl0LmVyclNjaGVtYVBhdGggPSAkZXJyU2NoZW1hUGF0aDtcbiAgICBvdXQgKz0gJyB2YXIgJyArICgkZXJycykgKyAnID0gZXJyb3JzOyAgJztcbiAgICB2YXIgJHdhc0NvbXBvc2l0ZSA9IGl0LmNvbXBvc2l0ZVJ1bGU7XG4gICAgaXQuY29tcG9zaXRlUnVsZSA9ICRpdC5jb21wb3NpdGVSdWxlID0gdHJ1ZTtcbiAgICAkaXQuY3JlYXRlRXJyb3JzID0gZmFsc2U7XG4gICAgdmFyICRhbGxFcnJvcnNPcHRpb247XG4gICAgaWYgKCRpdC5vcHRzLmFsbEVycm9ycykge1xuICAgICAgJGFsbEVycm9yc09wdGlvbiA9ICRpdC5vcHRzLmFsbEVycm9ycztcbiAgICAgICRpdC5vcHRzLmFsbEVycm9ycyA9IGZhbHNlO1xuICAgIH1cbiAgICBvdXQgKz0gJyAnICsgKGl0LnZhbGlkYXRlKCRpdCkpICsgJyAnO1xuICAgICRpdC5jcmVhdGVFcnJvcnMgPSB0cnVlO1xuICAgIGlmICgkYWxsRXJyb3JzT3B0aW9uKSAkaXQub3B0cy5hbGxFcnJvcnMgPSAkYWxsRXJyb3JzT3B0aW9uO1xuICAgIGl0LmNvbXBvc2l0ZVJ1bGUgPSAkaXQuY29tcG9zaXRlUnVsZSA9ICR3YXNDb21wb3NpdGU7XG4gICAgb3V0ICs9ICcgaWYgKCcgKyAoJG5leHRWYWxpZCkgKyAnKSB7ICAgJztcbiAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgnbm90JykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczoge30gJztcbiAgICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBOT1QgYmUgdmFsaWRcXCcgJztcbiAgICAgIH1cbiAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIH0gJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcge30gJztcbiAgICB9XG4gICAgdmFyIF9fZXJyID0gb3V0O1xuICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9IGVsc2UgeyAgZXJyb3JzID0gJyArICgkZXJycykgKyAnOyBpZiAodkVycm9ycyAhPT0gbnVsbCkgeyBpZiAoJyArICgkZXJycykgKyAnKSB2RXJyb3JzLmxlbmd0aCA9ICcgKyAoJGVycnMpICsgJzsgZWxzZSB2RXJyb3JzID0gbnVsbDsgfSAnO1xuICAgIGlmIChpdC5vcHRzLmFsbEVycm9ycykge1xuICAgICAgb3V0ICs9ICcgfSAnO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyAgdmFyIGVyciA9ICAgJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdub3QnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7fSAnO1xuICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIE5PVCBiZSB2YWxpZFxcJyAnO1xuICAgICAgfVxuICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgfSAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB7fSAnO1xuICAgIH1cbiAgICBvdXQgKz0gJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICBvdXQgKz0gJyBpZiAoZmFsc2UpIHsgJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX29uZU9mKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkdmFsaWQgPSAndmFsaWQnICsgJGx2bDtcbiAgdmFyICRlcnJzID0gJ2VycnNfXycgKyAkbHZsO1xuICB2YXIgJGl0ID0gaXQudXRpbC5jb3B5KGl0KTtcbiAgdmFyICRjbG9zaW5nQnJhY2VzID0gJyc7XG4gICRpdC5sZXZlbCsrO1xuICB2YXIgJG5leHRWYWxpZCA9ICd2YWxpZCcgKyAkaXQubGV2ZWw7XG4gIHZhciAkY3VycmVudEJhc2VJZCA9ICRpdC5iYXNlSWQsXG4gICAgJHByZXZWYWxpZCA9ICdwcmV2VmFsaWQnICsgJGx2bCxcbiAgICAkcGFzc2luZ1NjaGVtYXMgPSAncGFzc2luZ1NjaGVtYXMnICsgJGx2bDtcbiAgb3V0ICs9ICd2YXIgJyArICgkZXJycykgKyAnID0gZXJyb3JzICwgJyArICgkcHJldlZhbGlkKSArICcgPSBmYWxzZSAsICcgKyAoJHZhbGlkKSArICcgPSBmYWxzZSAsICcgKyAoJHBhc3NpbmdTY2hlbWFzKSArICcgPSBudWxsOyAnO1xuICB2YXIgJHdhc0NvbXBvc2l0ZSA9IGl0LmNvbXBvc2l0ZVJ1bGU7XG4gIGl0LmNvbXBvc2l0ZVJ1bGUgPSAkaXQuY29tcG9zaXRlUnVsZSA9IHRydWU7XG4gIHZhciBhcnIxID0gJHNjaGVtYTtcbiAgaWYgKGFycjEpIHtcbiAgICB2YXIgJHNjaCwgJGkgPSAtMSxcbiAgICAgIGwxID0gYXJyMS5sZW5ndGggLSAxO1xuICAgIHdoaWxlICgkaSA8IGwxKSB7XG4gICAgICAkc2NoID0gYXJyMVskaSArPSAxXTtcbiAgICAgIGlmICgoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJHNjaCA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkc2NoKS5sZW5ndGggPiAwKSB8fCAkc2NoID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJHNjaCwgaXQuUlVMRVMuYWxsKSkpIHtcbiAgICAgICAgJGl0LnNjaGVtYSA9ICRzY2g7XG4gICAgICAgICRpdC5zY2hlbWFQYXRoID0gJHNjaGVtYVBhdGggKyAnWycgKyAkaSArICddJztcbiAgICAgICAgJGl0LmVyclNjaGVtYVBhdGggPSAkZXJyU2NoZW1hUGF0aCArICcvJyArICRpO1xuICAgICAgICBvdXQgKz0gJyAgJyArIChpdC52YWxpZGF0ZSgkaXQpKSArICcgJztcbiAgICAgICAgJGl0LmJhc2VJZCA9ICRjdXJyZW50QmFzZUlkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgdmFyICcgKyAoJG5leHRWYWxpZCkgKyAnID0gdHJ1ZTsgJztcbiAgICAgIH1cbiAgICAgIGlmICgkaSkge1xuICAgICAgICBvdXQgKz0gJyBpZiAoJyArICgkbmV4dFZhbGlkKSArICcgJiYgJyArICgkcHJldlZhbGlkKSArICcpIHsgJyArICgkdmFsaWQpICsgJyA9IGZhbHNlOyAnICsgKCRwYXNzaW5nU2NoZW1hcykgKyAnID0gWycgKyAoJHBhc3NpbmdTY2hlbWFzKSArICcsICcgKyAoJGkpICsgJ107IH0gZWxzZSB7ICc7XG4gICAgICAgICRjbG9zaW5nQnJhY2VzICs9ICd9JztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIGlmICgnICsgKCRuZXh0VmFsaWQpICsgJykgeyAnICsgKCR2YWxpZCkgKyAnID0gJyArICgkcHJldlZhbGlkKSArICcgPSB0cnVlOyAnICsgKCRwYXNzaW5nU2NoZW1hcykgKyAnID0gJyArICgkaSkgKyAnOyB9JztcbiAgICB9XG4gIH1cbiAgaXQuY29tcG9zaXRlUnVsZSA9ICRpdC5jb21wb3NpdGVSdWxlID0gJHdhc0NvbXBvc2l0ZTtcbiAgb3V0ICs9ICcnICsgKCRjbG9zaW5nQnJhY2VzKSArICdpZiAoIScgKyAoJHZhbGlkKSArICcpIHsgICB2YXIgZXJyID0gICAnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgnb25lT2YnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IHBhc3NpbmdTY2hlbWFzOiAnICsgKCRwYXNzaW5nU2NoZW1hcykgKyAnIH0gJztcbiAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIG1hdGNoIGV4YWN0bHkgb25lIHNjaGVtYSBpbiBvbmVPZlxcJyAnO1xuICAgIH1cbiAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9ICc7XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcge30gJztcbiAgfVxuICBvdXQgKz0gJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChpdC5hc3luYykge1xuICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcih2RXJyb3JzKTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gdkVycm9yczsgcmV0dXJuIGZhbHNlOyAnO1xuICAgIH1cbiAgfVxuICBvdXQgKz0gJ30gZWxzZSB7ICBlcnJvcnMgPSAnICsgKCRlcnJzKSArICc7IGlmICh2RXJyb3JzICE9PSBudWxsKSB7IGlmICgnICsgKCRlcnJzKSArICcpIHZFcnJvcnMubGVuZ3RoID0gJyArICgkZXJycykgKyAnOyBlbHNlIHZFcnJvcnMgPSBudWxsOyB9JztcbiAgaWYgKGl0Lm9wdHMuYWxsRXJyb3JzKSB7XG4gICAgb3V0ICs9ICcgfSAnO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV9wYXR0ZXJuKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkaXNEYXRhID0gaXQub3B0cy4kZGF0YSAmJiAkc2NoZW1hICYmICRzY2hlbWEuJGRhdGEsXG4gICAgJHNjaGVtYVZhbHVlO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnIHZhciBzY2hlbWEnICsgKCRsdmwpICsgJyA9ICcgKyAoaXQudXRpbC5nZXREYXRhKCRzY2hlbWEuJGRhdGEsICRkYXRhTHZsLCBpdC5kYXRhUGF0aEFycikpICsgJzsgJztcbiAgICAkc2NoZW1hVmFsdWUgPSAnc2NoZW1hJyArICRsdmw7XG4gIH0gZWxzZSB7XG4gICAgJHNjaGVtYVZhbHVlID0gJHNjaGVtYTtcbiAgfVxuICB2YXIgJHJlZ2V4cCA9ICRpc0RhdGEgPyAnKG5ldyBSZWdFeHAoJyArICRzY2hlbWFWYWx1ZSArICcpKScgOiBpdC51c2VQYXR0ZXJuKCRzY2hlbWEpO1xuICBvdXQgKz0gJ2lmICggJztcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyAoJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9IFxcJ3N0cmluZ1xcJykgfHwgJztcbiAgfVxuICBvdXQgKz0gJyAhJyArICgkcmVnZXhwKSArICcudGVzdCgnICsgKCRkYXRhKSArICcpICkgeyAgICc7XG4gIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgncGF0dGVybicpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgcGF0dGVybjogICc7XG4gICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgIG91dCArPSAnJyArICgkc2NoZW1hVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJycgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkc2NoZW1hKSk7XG4gICAgfVxuICAgIG91dCArPSAnICB9ICc7XG4gICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBtYXRjaCBwYXR0ZXJuIFwiJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAnXFwnICsgJyArICgkc2NoZW1hVmFsdWUpICsgJyArIFxcJyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJycgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJHNjaGVtYSkpO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICdcIlxcJyAnO1xuICAgIH1cbiAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICBvdXQgKz0gJyAsIHNjaGVtYTogICc7XG4gICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICBvdXQgKz0gJ3ZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJHNjaGVtYSkpO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgICAgICAgICAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgfSAnO1xuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHt9ICc7XG4gIH1cbiAgdmFyIF9fZXJyID0gb3V0O1xuICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChpdC5hc3luYykge1xuICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgfVxuICBvdXQgKz0gJ30gJztcbiAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfcHJvcGVydGllcyhpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJGVycnMgPSAnZXJyc19fJyArICRsdmw7XG4gIHZhciAkaXQgPSBpdC51dGlsLmNvcHkoaXQpO1xuICB2YXIgJGNsb3NpbmdCcmFjZXMgPSAnJztcbiAgJGl0LmxldmVsKys7XG4gIHZhciAkbmV4dFZhbGlkID0gJ3ZhbGlkJyArICRpdC5sZXZlbDtcbiAgdmFyICRrZXkgPSAna2V5JyArICRsdmwsXG4gICAgJGlkeCA9ICdpZHgnICsgJGx2bCxcbiAgICAkZGF0YU54dCA9ICRpdC5kYXRhTGV2ZWwgPSBpdC5kYXRhTGV2ZWwgKyAxLFxuICAgICRuZXh0RGF0YSA9ICdkYXRhJyArICRkYXRhTnh0LFxuICAgICRkYXRhUHJvcGVydGllcyA9ICdkYXRhUHJvcGVydGllcycgKyAkbHZsO1xuICB2YXIgJHNjaGVtYUtleXMgPSBPYmplY3Qua2V5cygkc2NoZW1hIHx8IHt9KS5maWx0ZXIobm90UHJvdG8pLFxuICAgICRwUHJvcGVydGllcyA9IGl0LnNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyB8fCB7fSxcbiAgICAkcFByb3BlcnR5S2V5cyA9IE9iamVjdC5rZXlzKCRwUHJvcGVydGllcykuZmlsdGVyKG5vdFByb3RvKSxcbiAgICAkYVByb3BlcnRpZXMgPSBpdC5zY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMsXG4gICAgJHNvbWVQcm9wZXJ0aWVzID0gJHNjaGVtYUtleXMubGVuZ3RoIHx8ICRwUHJvcGVydHlLZXlzLmxlbmd0aCxcbiAgICAkbm9BZGRpdGlvbmFsID0gJGFQcm9wZXJ0aWVzID09PSBmYWxzZSxcbiAgICAkYWRkaXRpb25hbElzU2NoZW1hID0gdHlwZW9mICRhUHJvcGVydGllcyA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkYVByb3BlcnRpZXMpLmxlbmd0aCxcbiAgICAkcmVtb3ZlQWRkaXRpb25hbCA9IGl0Lm9wdHMucmVtb3ZlQWRkaXRpb25hbCxcbiAgICAkY2hlY2tBZGRpdGlvbmFsID0gJG5vQWRkaXRpb25hbCB8fCAkYWRkaXRpb25hbElzU2NoZW1hIHx8ICRyZW1vdmVBZGRpdGlvbmFsLFxuICAgICRvd25Qcm9wZXJ0aWVzID0gaXQub3B0cy5vd25Qcm9wZXJ0aWVzLFxuICAgICRjdXJyZW50QmFzZUlkID0gaXQuYmFzZUlkO1xuICB2YXIgJHJlcXVpcmVkID0gaXQuc2NoZW1hLnJlcXVpcmVkO1xuICBpZiAoJHJlcXVpcmVkICYmICEoaXQub3B0cy4kZGF0YSAmJiAkcmVxdWlyZWQuJGRhdGEpICYmICRyZXF1aXJlZC5sZW5ndGggPCBpdC5vcHRzLmxvb3BSZXF1aXJlZCkge1xuICAgIHZhciAkcmVxdWlyZWRIYXNoID0gaXQudXRpbC50b0hhc2goJHJlcXVpcmVkKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG5vdFByb3RvKHApIHtcbiAgICByZXR1cm4gcCAhPT0gJ19fcHJvdG9fXyc7XG4gIH1cbiAgb3V0ICs9ICd2YXIgJyArICgkZXJycykgKyAnID0gZXJyb3JzO3ZhciAnICsgKCRuZXh0VmFsaWQpICsgJyA9IHRydWU7JztcbiAgaWYgKCRvd25Qcm9wZXJ0aWVzKSB7XG4gICAgb3V0ICs9ICcgdmFyICcgKyAoJGRhdGFQcm9wZXJ0aWVzKSArICcgPSB1bmRlZmluZWQ7JztcbiAgfVxuICBpZiAoJGNoZWNrQWRkaXRpb25hbCkge1xuICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgb3V0ICs9ICcgJyArICgkZGF0YVByb3BlcnRpZXMpICsgJyA9ICcgKyAoJGRhdGFQcm9wZXJ0aWVzKSArICcgfHwgT2JqZWN0LmtleXMoJyArICgkZGF0YSkgKyAnKTsgZm9yICh2YXIgJyArICgkaWR4KSArICc9MDsgJyArICgkaWR4KSArICc8JyArICgkZGF0YVByb3BlcnRpZXMpICsgJy5sZW5ndGg7ICcgKyAoJGlkeCkgKyAnKyspIHsgdmFyICcgKyAoJGtleSkgKyAnID0gJyArICgkZGF0YVByb3BlcnRpZXMpICsgJ1snICsgKCRpZHgpICsgJ107ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIGZvciAodmFyICcgKyAoJGtleSkgKyAnIGluICcgKyAoJGRhdGEpICsgJykgeyAnO1xuICAgIH1cbiAgICBpZiAoJHNvbWVQcm9wZXJ0aWVzKSB7XG4gICAgICBvdXQgKz0gJyB2YXIgaXNBZGRpdGlvbmFsJyArICgkbHZsKSArICcgPSAhKGZhbHNlICc7XG4gICAgICBpZiAoJHNjaGVtYUtleXMubGVuZ3RoKSB7XG4gICAgICAgIGlmICgkc2NoZW1hS2V5cy5sZW5ndGggPiA4KSB7XG4gICAgICAgICAgb3V0ICs9ICcgfHwgdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnLmhhc093blByb3BlcnR5KCcgKyAoJGtleSkgKyAnKSAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBhcnIxID0gJHNjaGVtYUtleXM7XG4gICAgICAgICAgaWYgKGFycjEpIHtcbiAgICAgICAgICAgIHZhciAkcHJvcGVydHlLZXksIGkxID0gLTEsXG4gICAgICAgICAgICAgIGwxID0gYXJyMS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgd2hpbGUgKGkxIDwgbDEpIHtcbiAgICAgICAgICAgICAgJHByb3BlcnR5S2V5ID0gYXJyMVtpMSArPSAxXTtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgfHwgJyArICgka2V5KSArICcgPT0gJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRwcm9wZXJ0eUtleSkpICsgJyAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCRwUHJvcGVydHlLZXlzLmxlbmd0aCkge1xuICAgICAgICB2YXIgYXJyMiA9ICRwUHJvcGVydHlLZXlzO1xuICAgICAgICBpZiAoYXJyMikge1xuICAgICAgICAgIHZhciAkcFByb3BlcnR5LCAkaSA9IC0xLFxuICAgICAgICAgICAgbDIgPSBhcnIyLmxlbmd0aCAtIDE7XG4gICAgICAgICAgd2hpbGUgKCRpIDwgbDIpIHtcbiAgICAgICAgICAgICRwUHJvcGVydHkgPSBhcnIyWyRpICs9IDFdO1xuICAgICAgICAgICAgb3V0ICs9ICcgfHwgJyArIChpdC51c2VQYXR0ZXJuKCRwUHJvcGVydHkpKSArICcudGVzdCgnICsgKCRrZXkpICsgJykgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG91dCArPSAnICk7IGlmIChpc0FkZGl0aW9uYWwnICsgKCRsdmwpICsgJykgeyAnO1xuICAgIH1cbiAgICBpZiAoJHJlbW92ZUFkZGl0aW9uYWwgPT0gJ2FsbCcpIHtcbiAgICAgIG91dCArPSAnIGRlbGV0ZSAnICsgKCRkYXRhKSArICdbJyArICgka2V5KSArICddOyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgJGN1cnJlbnRFcnJvclBhdGggPSBpdC5lcnJvclBhdGg7XG4gICAgICB2YXIgJGFkZGl0aW9uYWxQcm9wZXJ0eSA9ICdcXCcgKyAnICsgJGtleSArICcgKyBcXCcnO1xuICAgICAgaWYgKGl0Lm9wdHMuX2Vycm9yRGF0YVBhdGhQcm9wZXJ0eSkge1xuICAgICAgICBpdC5lcnJvclBhdGggPSBpdC51dGlsLmdldFBhdGhFeHByKGl0LmVycm9yUGF0aCwgJGtleSwgaXQub3B0cy5qc29uUG9pbnRlcnMpO1xuICAgICAgfVxuICAgICAgaWYgKCRub0FkZGl0aW9uYWwpIHtcbiAgICAgICAgaWYgKCRyZW1vdmVBZGRpdGlvbmFsKSB7XG4gICAgICAgICAgb3V0ICs9ICcgZGVsZXRlICcgKyAoJGRhdGEpICsgJ1snICsgKCRrZXkpICsgJ107ICc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcgJyArICgkbmV4dFZhbGlkKSArICcgPSBmYWxzZTsgJztcbiAgICAgICAgICB2YXIgJGN1cnJFcnJTY2hlbWFQYXRoID0gJGVyclNjaGVtYVBhdGg7XG4gICAgICAgICAgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy9hZGRpdGlvbmFsUHJvcGVydGllcyc7XG4gICAgICAgICAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAgICAgICAgICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICAgICAgICAgIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBhZGRpdGlvbmFsUHJvcGVydHk6IFxcJycgKyAoJGFkZGl0aW9uYWxQcm9wZXJ0eSkgKyAnXFwnIH0gJztcbiAgICAgICAgICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJyc7XG4gICAgICAgICAgICAgIGlmIChpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBvdXQgKz0gJ2lzIGFuIGludmFsaWQgYWRkaXRpb25hbCBwcm9wZXJ0eSc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICdzaG91bGQgTk9UIGhhdmUgYWRkaXRpb25hbCBwcm9wZXJ0aWVzJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBvdXQgKz0gJ1xcJyAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogZmFsc2UgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBfX2VyciA9IG91dDtcbiAgICAgICAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgICAgICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgJGVyclNjaGVtYVBhdGggPSAkY3VyckVyclNjaGVtYVBhdGg7XG4gICAgICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgICAgIG91dCArPSAnIGJyZWFrOyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICgkYWRkaXRpb25hbElzU2NoZW1hKSB7XG4gICAgICAgIGlmICgkcmVtb3ZlQWRkaXRpb25hbCA9PSAnZmFpbGluZycpIHtcbiAgICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkZXJycykgKyAnID0gZXJyb3JzOyAgJztcbiAgICAgICAgICB2YXIgJHdhc0NvbXBvc2l0ZSA9IGl0LmNvbXBvc2l0ZVJ1bGU7XG4gICAgICAgICAgaXQuY29tcG9zaXRlUnVsZSA9ICRpdC5jb21wb3NpdGVSdWxlID0gdHJ1ZTtcbiAgICAgICAgICAkaXQuc2NoZW1hID0gJGFQcm9wZXJ0aWVzO1xuICAgICAgICAgICRpdC5zY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArICcuYWRkaXRpb25hbFByb3BlcnRpZXMnO1xuICAgICAgICAgICRpdC5lcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvYWRkaXRpb25hbFByb3BlcnRpZXMnO1xuICAgICAgICAgICRpdC5lcnJvclBhdGggPSBpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkgPyBpdC5lcnJvclBhdGggOiBpdC51dGlsLmdldFBhdGhFeHByKGl0LmVycm9yUGF0aCwgJGtleSwgaXQub3B0cy5qc29uUG9pbnRlcnMpO1xuICAgICAgICAgIHZhciAkcGFzc0RhdGEgPSAkZGF0YSArICdbJyArICRrZXkgKyAnXSc7XG4gICAgICAgICAgJGl0LmRhdGFQYXRoQXJyWyRkYXRhTnh0XSA9ICRrZXk7XG4gICAgICAgICAgdmFyICRjb2RlID0gaXQudmFsaWRhdGUoJGl0KTtcbiAgICAgICAgICAkaXQuYmFzZUlkID0gJGN1cnJlbnRCYXNlSWQ7XG4gICAgICAgICAgaWYgKGl0LnV0aWwudmFyT2NjdXJlbmNlcygkY29kZSwgJG5leHREYXRhKSA8IDIpIHtcbiAgICAgICAgICAgIG91dCArPSAnICcgKyAoaXQudXRpbC52YXJSZXBsYWNlKCRjb2RlLCAkbmV4dERhdGEsICRwYXNzRGF0YSkpICsgJyAnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkbmV4dERhdGEpICsgJyA9ICcgKyAoJHBhc3NEYXRhKSArICc7ICcgKyAoJGNvZGUpICsgJyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvdXQgKz0gJyBpZiAoIScgKyAoJG5leHRWYWxpZCkgKyAnKSB7IGVycm9ycyA9ICcgKyAoJGVycnMpICsgJzsgaWYgKHZhbGlkYXRlLmVycm9ycyAhPT0gbnVsbCkgeyBpZiAoZXJyb3JzKSB2YWxpZGF0ZS5lcnJvcnMubGVuZ3RoID0gZXJyb3JzOyBlbHNlIHZhbGlkYXRlLmVycm9ycyA9IG51bGw7IH0gZGVsZXRlICcgKyAoJGRhdGEpICsgJ1snICsgKCRrZXkpICsgJ107IH0gICc7XG4gICAgICAgICAgaXQuY29tcG9zaXRlUnVsZSA9ICRpdC5jb21wb3NpdGVSdWxlID0gJHdhc0NvbXBvc2l0ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAkaXQuc2NoZW1hID0gJGFQcm9wZXJ0aWVzO1xuICAgICAgICAgICRpdC5zY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArICcuYWRkaXRpb25hbFByb3BlcnRpZXMnO1xuICAgICAgICAgICRpdC5lcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvYWRkaXRpb25hbFByb3BlcnRpZXMnO1xuICAgICAgICAgICRpdC5lcnJvclBhdGggPSBpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkgPyBpdC5lcnJvclBhdGggOiBpdC51dGlsLmdldFBhdGhFeHByKGl0LmVycm9yUGF0aCwgJGtleSwgaXQub3B0cy5qc29uUG9pbnRlcnMpO1xuICAgICAgICAgIHZhciAkcGFzc0RhdGEgPSAkZGF0YSArICdbJyArICRrZXkgKyAnXSc7XG4gICAgICAgICAgJGl0LmRhdGFQYXRoQXJyWyRkYXRhTnh0XSA9ICRrZXk7XG4gICAgICAgICAgdmFyICRjb2RlID0gaXQudmFsaWRhdGUoJGl0KTtcbiAgICAgICAgICAkaXQuYmFzZUlkID0gJGN1cnJlbnRCYXNlSWQ7XG4gICAgICAgICAgaWYgKGl0LnV0aWwudmFyT2NjdXJlbmNlcygkY29kZSwgJG5leHREYXRhKSA8IDIpIHtcbiAgICAgICAgICAgIG91dCArPSAnICcgKyAoaXQudXRpbC52YXJSZXBsYWNlKCRjb2RlLCAkbmV4dERhdGEsICRwYXNzRGF0YSkpICsgJyAnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkbmV4dERhdGEpICsgJyA9ICcgKyAoJHBhc3NEYXRhKSArICc7ICcgKyAoJGNvZGUpICsgJyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgICAgb3V0ICs9ICcgaWYgKCEnICsgKCRuZXh0VmFsaWQpICsgJykgYnJlYWs7ICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpdC5lcnJvclBhdGggPSAkY3VycmVudEVycm9yUGF0aDtcbiAgICB9XG4gICAgaWYgKCRzb21lUHJvcGVydGllcykge1xuICAgICAgb3V0ICs9ICcgfSAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9ICAnO1xuICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICBvdXQgKz0gJyBpZiAoJyArICgkbmV4dFZhbGlkKSArICcpIHsgJztcbiAgICAgICRjbG9zaW5nQnJhY2VzICs9ICd9JztcbiAgICB9XG4gIH1cbiAgdmFyICR1c2VEZWZhdWx0cyA9IGl0Lm9wdHMudXNlRGVmYXVsdHMgJiYgIWl0LmNvbXBvc2l0ZVJ1bGU7XG4gIGlmICgkc2NoZW1hS2V5cy5sZW5ndGgpIHtcbiAgICB2YXIgYXJyMyA9ICRzY2hlbWFLZXlzO1xuICAgIGlmIChhcnIzKSB7XG4gICAgICB2YXIgJHByb3BlcnR5S2V5LCBpMyA9IC0xLFxuICAgICAgICBsMyA9IGFycjMubGVuZ3RoIC0gMTtcbiAgICAgIHdoaWxlIChpMyA8IGwzKSB7XG4gICAgICAgICRwcm9wZXJ0eUtleSA9IGFycjNbaTMgKz0gMV07XG4gICAgICAgIHZhciAkc2NoID0gJHNjaGVtYVskcHJvcGVydHlLZXldO1xuICAgICAgICBpZiAoKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMgPyAodHlwZW9mICRzY2ggPT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoJHNjaCkubGVuZ3RoID4gMCkgfHwgJHNjaCA9PT0gZmFsc2UgOiBpdC51dGlsLnNjaGVtYUhhc1J1bGVzKCRzY2gsIGl0LlJVTEVTLmFsbCkpKSB7XG4gICAgICAgICAgdmFyICRwcm9wID0gaXQudXRpbC5nZXRQcm9wZXJ0eSgkcHJvcGVydHlLZXkpLFxuICAgICAgICAgICAgJHBhc3NEYXRhID0gJGRhdGEgKyAkcHJvcCxcbiAgICAgICAgICAgICRoYXNEZWZhdWx0ID0gJHVzZURlZmF1bHRzICYmICRzY2guZGVmYXVsdCAhPT0gdW5kZWZpbmVkO1xuICAgICAgICAgICRpdC5zY2hlbWEgPSAkc2NoO1xuICAgICAgICAgICRpdC5zY2hlbWFQYXRoID0gJHNjaGVtYVBhdGggKyAkcHJvcDtcbiAgICAgICAgICAkaXQuZXJyU2NoZW1hUGF0aCA9ICRlcnJTY2hlbWFQYXRoICsgJy8nICsgaXQudXRpbC5lc2NhcGVGcmFnbWVudCgkcHJvcGVydHlLZXkpO1xuICAgICAgICAgICRpdC5lcnJvclBhdGggPSBpdC51dGlsLmdldFBhdGgoaXQuZXJyb3JQYXRoLCAkcHJvcGVydHlLZXksIGl0Lm9wdHMuanNvblBvaW50ZXJzKTtcbiAgICAgICAgICAkaXQuZGF0YVBhdGhBcnJbJGRhdGFOeHRdID0gaXQudXRpbC50b1F1b3RlZFN0cmluZygkcHJvcGVydHlLZXkpO1xuICAgICAgICAgIHZhciAkY29kZSA9IGl0LnZhbGlkYXRlKCRpdCk7XG4gICAgICAgICAgJGl0LmJhc2VJZCA9ICRjdXJyZW50QmFzZUlkO1xuICAgICAgICAgIGlmIChpdC51dGlsLnZhck9jY3VyZW5jZXMoJGNvZGUsICRuZXh0RGF0YSkgPCAyKSB7XG4gICAgICAgICAgICAkY29kZSA9IGl0LnV0aWwudmFyUmVwbGFjZSgkY29kZSwgJG5leHREYXRhLCAkcGFzc0RhdGEpO1xuICAgICAgICAgICAgdmFyICR1c2VEYXRhID0gJHBhc3NEYXRhO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgJHVzZURhdGEgPSAkbmV4dERhdGE7XG4gICAgICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkbmV4dERhdGEpICsgJyA9ICcgKyAoJHBhc3NEYXRhKSArICc7ICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICgkaGFzRGVmYXVsdCkge1xuICAgICAgICAgICAgb3V0ICs9ICcgJyArICgkY29kZSkgKyAnICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICgkcmVxdWlyZWRIYXNoICYmICRyZXF1aXJlZEhhc2hbJHByb3BlcnR5S2V5XSkge1xuICAgICAgICAgICAgICBvdXQgKz0gJyBpZiAoICcgKyAoJHVzZURhdGEpICsgJyA9PT0gdW5kZWZpbmVkICc7XG4gICAgICAgICAgICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgIG91dCArPSAnIHx8ICEgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKCcgKyAoJGRhdGEpICsgJywgXFwnJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkcHJvcGVydHlLZXkpKSArICdcXCcpICc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgb3V0ICs9ICcpIHsgJyArICgkbmV4dFZhbGlkKSArICcgPSBmYWxzZTsgJztcbiAgICAgICAgICAgICAgdmFyICRjdXJyZW50RXJyb3JQYXRoID0gaXQuZXJyb3JQYXRoLFxuICAgICAgICAgICAgICAgICRjdXJyRXJyU2NoZW1hUGF0aCA9ICRlcnJTY2hlbWFQYXRoLFxuICAgICAgICAgICAgICAgICRtaXNzaW5nUHJvcGVydHkgPSBpdC51dGlsLmVzY2FwZVF1b3RlcygkcHJvcGVydHlLZXkpO1xuICAgICAgICAgICAgICBpZiAoaXQub3B0cy5fZXJyb3JEYXRhUGF0aFByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgaXQuZXJyb3JQYXRoID0gaXQudXRpbC5nZXRQYXRoKCRjdXJyZW50RXJyb3JQYXRoLCAkcHJvcGVydHlLZXksIGl0Lm9wdHMuanNvblBvaW50ZXJzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnL3JlcXVpcmVkJztcbiAgICAgICAgICAgICAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAgICAgICAgICAgICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgICAgICAgICAgICAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdyZXF1aXJlZCcpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgbWlzc2luZ1Byb3BlcnR5OiBcXCcnICsgKCRtaXNzaW5nUHJvcGVydHkpICsgJ1xcJyB9ICc7XG4gICAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJyc7XG4gICAgICAgICAgICAgICAgICBpZiAoaXQub3B0cy5fZXJyb3JEYXRhUGF0aFByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgIG91dCArPSAnaXMgYSByZXF1aXJlZCBwcm9wZXJ0eSc7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvdXQgKz0gJ3Nob3VsZCBoYXZlIHJlcXVpcmVkIHByb3BlcnR5IFxcXFxcXCcnICsgKCRtaXNzaW5nUHJvcGVydHkpICsgJ1xcXFxcXCcnO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgb3V0ICs9ICdcXCcgJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIF9fZXJyID0gb3V0O1xuICAgICAgICAgICAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgICAgICAgICAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICAgICAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAkZXJyU2NoZW1hUGF0aCA9ICRjdXJyRXJyU2NoZW1hUGF0aDtcbiAgICAgICAgICAgICAgaXQuZXJyb3JQYXRoID0gJGN1cnJlbnRFcnJvclBhdGg7XG4gICAgICAgICAgICAgIG91dCArPSAnIH0gZWxzZSB7ICc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgICAgICAgIG91dCArPSAnIGlmICggJyArICgkdXNlRGF0YSkgKyAnID09PSB1bmRlZmluZWQgJztcbiAgICAgICAgICAgICAgICBpZiAoJG93blByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgIG91dCArPSAnIHx8ICEgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKCcgKyAoJGRhdGEpICsgJywgXFwnJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkcHJvcGVydHlLZXkpKSArICdcXCcpICc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG91dCArPSAnKSB7ICcgKyAoJG5leHRWYWxpZCkgKyAnID0gdHJ1ZTsgfSBlbHNlIHsgJztcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvdXQgKz0gJyBpZiAoJyArICgkdXNlRGF0YSkgKyAnICE9PSB1bmRlZmluZWQgJztcbiAgICAgICAgICAgICAgICBpZiAoJG93blByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgIG91dCArPSAnICYmICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKCcgKyAoJGRhdGEpICsgJywgXFwnJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkcHJvcGVydHlLZXkpKSArICdcXCcpICc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG91dCArPSAnICkgeyAnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXQgKz0gJyAnICsgKCRjb2RlKSArICcgfSAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgIG91dCArPSAnIGlmICgnICsgKCRuZXh0VmFsaWQpICsgJykgeyAnO1xuICAgICAgICAgICRjbG9zaW5nQnJhY2VzICs9ICd9JztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoJHBQcm9wZXJ0eUtleXMubGVuZ3RoKSB7XG4gICAgdmFyIGFycjQgPSAkcFByb3BlcnR5S2V5cztcbiAgICBpZiAoYXJyNCkge1xuICAgICAgdmFyICRwUHJvcGVydHksIGk0ID0gLTEsXG4gICAgICAgIGw0ID0gYXJyNC5sZW5ndGggLSAxO1xuICAgICAgd2hpbGUgKGk0IDwgbDQpIHtcbiAgICAgICAgJHBQcm9wZXJ0eSA9IGFycjRbaTQgKz0gMV07XG4gICAgICAgIHZhciAkc2NoID0gJHBQcm9wZXJ0aWVzWyRwUHJvcGVydHldO1xuICAgICAgICBpZiAoKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMgPyAodHlwZW9mICRzY2ggPT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoJHNjaCkubGVuZ3RoID4gMCkgfHwgJHNjaCA9PT0gZmFsc2UgOiBpdC51dGlsLnNjaGVtYUhhc1J1bGVzKCRzY2gsIGl0LlJVTEVTLmFsbCkpKSB7XG4gICAgICAgICAgJGl0LnNjaGVtYSA9ICRzY2g7XG4gICAgICAgICAgJGl0LnNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgJy5wYXR0ZXJuUHJvcGVydGllcycgKyBpdC51dGlsLmdldFByb3BlcnR5KCRwUHJvcGVydHkpO1xuICAgICAgICAgICRpdC5lcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvcGF0dGVyblByb3BlcnRpZXMvJyArIGl0LnV0aWwuZXNjYXBlRnJhZ21lbnQoJHBQcm9wZXJ0eSk7XG4gICAgICAgICAgaWYgKCRvd25Qcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAnICsgKCRkYXRhUHJvcGVydGllcykgKyAnID0gJyArICgkZGF0YVByb3BlcnRpZXMpICsgJyB8fCBPYmplY3Qua2V5cygnICsgKCRkYXRhKSArICcpOyBmb3IgKHZhciAnICsgKCRpZHgpICsgJz0wOyAnICsgKCRpZHgpICsgJzwnICsgKCRkYXRhUHJvcGVydGllcykgKyAnLmxlbmd0aDsgJyArICgkaWR4KSArICcrKykgeyB2YXIgJyArICgka2V5KSArICcgPSAnICsgKCRkYXRhUHJvcGVydGllcykgKyAnWycgKyAoJGlkeCkgKyAnXTsgJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0ICs9ICcgZm9yICh2YXIgJyArICgka2V5KSArICcgaW4gJyArICgkZGF0YSkgKyAnKSB7ICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnIGlmICgnICsgKGl0LnVzZVBhdHRlcm4oJHBQcm9wZXJ0eSkpICsgJy50ZXN0KCcgKyAoJGtleSkgKyAnKSkgeyAnO1xuICAgICAgICAgICRpdC5lcnJvclBhdGggPSBpdC51dGlsLmdldFBhdGhFeHByKGl0LmVycm9yUGF0aCwgJGtleSwgaXQub3B0cy5qc29uUG9pbnRlcnMpO1xuICAgICAgICAgIHZhciAkcGFzc0RhdGEgPSAkZGF0YSArICdbJyArICRrZXkgKyAnXSc7XG4gICAgICAgICAgJGl0LmRhdGFQYXRoQXJyWyRkYXRhTnh0XSA9ICRrZXk7XG4gICAgICAgICAgdmFyICRjb2RlID0gaXQudmFsaWRhdGUoJGl0KTtcbiAgICAgICAgICAkaXQuYmFzZUlkID0gJGN1cnJlbnRCYXNlSWQ7XG4gICAgICAgICAgaWYgKGl0LnV0aWwudmFyT2NjdXJlbmNlcygkY29kZSwgJG5leHREYXRhKSA8IDIpIHtcbiAgICAgICAgICAgIG91dCArPSAnICcgKyAoaXQudXRpbC52YXJSZXBsYWNlKCRjb2RlLCAkbmV4dERhdGEsICRwYXNzRGF0YSkpICsgJyAnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkbmV4dERhdGEpICsgJyA9ICcgKyAoJHBhc3NEYXRhKSArICc7ICcgKyAoJGNvZGUpICsgJyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgICAgb3V0ICs9ICcgaWYgKCEnICsgKCRuZXh0VmFsaWQpICsgJykgYnJlYWs7ICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnIH0gJztcbiAgICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgICAgb3V0ICs9ICcgZWxzZSAnICsgKCRuZXh0VmFsaWQpICsgJyA9IHRydWU7ICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnIH0gICc7XG4gICAgICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgICAgIG91dCArPSAnIGlmICgnICsgKCRuZXh0VmFsaWQpICsgJykgeyAnO1xuICAgICAgICAgICAgJGNsb3NpbmdCcmFjZXMgKz0gJ30nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnICcgKyAoJGNsb3NpbmdCcmFjZXMpICsgJyBpZiAoJyArICgkZXJycykgKyAnID09IGVycm9ycykgeyc7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX3Byb3BlcnR5TmFtZXMoaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRsdmwgPSBpdC5sZXZlbDtcbiAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgdmFyICRlcnJzID0gJ2VycnNfXycgKyAkbHZsO1xuICB2YXIgJGl0ID0gaXQudXRpbC5jb3B5KGl0KTtcbiAgdmFyICRjbG9zaW5nQnJhY2VzID0gJyc7XG4gICRpdC5sZXZlbCsrO1xuICB2YXIgJG5leHRWYWxpZCA9ICd2YWxpZCcgKyAkaXQubGV2ZWw7XG4gIG91dCArPSAndmFyICcgKyAoJGVycnMpICsgJyA9IGVycm9yczsnO1xuICBpZiAoKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMgPyAodHlwZW9mICRzY2hlbWEgPT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoJHNjaGVtYSkubGVuZ3RoID4gMCkgfHwgJHNjaGVtYSA9PT0gZmFsc2UgOiBpdC51dGlsLnNjaGVtYUhhc1J1bGVzKCRzY2hlbWEsIGl0LlJVTEVTLmFsbCkpKSB7XG4gICAgJGl0LnNjaGVtYSA9ICRzY2hlbWE7XG4gICAgJGl0LnNjaGVtYVBhdGggPSAkc2NoZW1hUGF0aDtcbiAgICAkaXQuZXJyU2NoZW1hUGF0aCA9ICRlcnJTY2hlbWFQYXRoO1xuICAgIHZhciAka2V5ID0gJ2tleScgKyAkbHZsLFxuICAgICAgJGlkeCA9ICdpZHgnICsgJGx2bCxcbiAgICAgICRpID0gJ2knICsgJGx2bCxcbiAgICAgICRpbnZhbGlkTmFtZSA9ICdcXCcgKyAnICsgJGtleSArICcgKyBcXCcnLFxuICAgICAgJGRhdGFOeHQgPSAkaXQuZGF0YUxldmVsID0gaXQuZGF0YUxldmVsICsgMSxcbiAgICAgICRuZXh0RGF0YSA9ICdkYXRhJyArICRkYXRhTnh0LFxuICAgICAgJGRhdGFQcm9wZXJ0aWVzID0gJ2RhdGFQcm9wZXJ0aWVzJyArICRsdmwsXG4gICAgICAkb3duUHJvcGVydGllcyA9IGl0Lm9wdHMub3duUHJvcGVydGllcyxcbiAgICAgICRjdXJyZW50QmFzZUlkID0gaXQuYmFzZUlkO1xuICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgb3V0ICs9ICcgdmFyICcgKyAoJGRhdGFQcm9wZXJ0aWVzKSArICcgPSB1bmRlZmluZWQ7ICc7XG4gICAgfVxuICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgb3V0ICs9ICcgJyArICgkZGF0YVByb3BlcnRpZXMpICsgJyA9ICcgKyAoJGRhdGFQcm9wZXJ0aWVzKSArICcgfHwgT2JqZWN0LmtleXMoJyArICgkZGF0YSkgKyAnKTsgZm9yICh2YXIgJyArICgkaWR4KSArICc9MDsgJyArICgkaWR4KSArICc8JyArICgkZGF0YVByb3BlcnRpZXMpICsgJy5sZW5ndGg7ICcgKyAoJGlkeCkgKyAnKyspIHsgdmFyICcgKyAoJGtleSkgKyAnID0gJyArICgkZGF0YVByb3BlcnRpZXMpICsgJ1snICsgKCRpZHgpICsgJ107ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIGZvciAodmFyICcgKyAoJGtleSkgKyAnIGluICcgKyAoJGRhdGEpICsgJykgeyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB2YXIgc3RhcnRFcnJzJyArICgkbHZsKSArICcgPSBlcnJvcnM7ICc7XG4gICAgdmFyICRwYXNzRGF0YSA9ICRrZXk7XG4gICAgdmFyICR3YXNDb21wb3NpdGUgPSBpdC5jb21wb3NpdGVSdWxlO1xuICAgIGl0LmNvbXBvc2l0ZVJ1bGUgPSAkaXQuY29tcG9zaXRlUnVsZSA9IHRydWU7XG4gICAgdmFyICRjb2RlID0gaXQudmFsaWRhdGUoJGl0KTtcbiAgICAkaXQuYmFzZUlkID0gJGN1cnJlbnRCYXNlSWQ7XG4gICAgaWYgKGl0LnV0aWwudmFyT2NjdXJlbmNlcygkY29kZSwgJG5leHREYXRhKSA8IDIpIHtcbiAgICAgIG91dCArPSAnICcgKyAoaXQudXRpbC52YXJSZXBsYWNlKCRjb2RlLCAkbmV4dERhdGEsICRwYXNzRGF0YSkpICsgJyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB2YXIgJyArICgkbmV4dERhdGEpICsgJyA9ICcgKyAoJHBhc3NEYXRhKSArICc7ICcgKyAoJGNvZGUpICsgJyAnO1xuICAgIH1cbiAgICBpdC5jb21wb3NpdGVSdWxlID0gJGl0LmNvbXBvc2l0ZVJ1bGUgPSAkd2FzQ29tcG9zaXRlO1xuICAgIG91dCArPSAnIGlmICghJyArICgkbmV4dFZhbGlkKSArICcpIHsgZm9yICh2YXIgJyArICgkaSkgKyAnPXN0YXJ0RXJycycgKyAoJGx2bCkgKyAnOyAnICsgKCRpKSArICc8ZXJyb3JzOyAnICsgKCRpKSArICcrKykgeyB2RXJyb3JzWycgKyAoJGkpICsgJ10ucHJvcGVydHlOYW1lID0gJyArICgka2V5KSArICc7IH0gICB2YXIgZXJyID0gICAnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ3Byb3BlcnR5TmFtZXMnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IHByb3BlcnR5TmFtZTogXFwnJyArICgkaW52YWxpZE5hbWUpICsgJ1xcJyB9ICc7XG4gICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdwcm9wZXJ0eSBuYW1lIFxcXFxcXCcnICsgKCRpbnZhbGlkTmFtZSkgKyAnXFxcXFxcJyBpcyBpbnZhbGlkXFwnICc7XG4gICAgICB9XG4gICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgfVxuICAgIG91dCArPSAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IodkVycm9ycyk7ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSB2RXJyb3JzOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICBvdXQgKz0gJyBicmVhazsgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgfSB9JztcbiAgfVxuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnICcgKyAoJGNsb3NpbmdCcmFjZXMpICsgJyBpZiAoJyArICgkZXJycykgKyAnID09IGVycm9ycykgeyc7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX3JlcXVpcmVkKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkdmFsaWQgPSAndmFsaWQnICsgJGx2bDtcbiAgdmFyICRpc0RhdGEgPSBpdC5vcHRzLiRkYXRhICYmICRzY2hlbWEgJiYgJHNjaGVtYS4kZGF0YSxcbiAgICAkc2NoZW1hVmFsdWU7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgdmFyIHNjaGVtYScgKyAoJGx2bCkgKyAnID0gJyArIChpdC51dGlsLmdldERhdGEoJHNjaGVtYS4kZGF0YSwgJGRhdGFMdmwsIGl0LmRhdGFQYXRoQXJyKSkgKyAnOyAnO1xuICAgICRzY2hlbWFWYWx1ZSA9ICdzY2hlbWEnICsgJGx2bDtcbiAgfSBlbHNlIHtcbiAgICAkc2NoZW1hVmFsdWUgPSAkc2NoZW1hO1xuICB9XG4gIHZhciAkdlNjaGVtYSA9ICdzY2hlbWEnICsgJGx2bDtcbiAgaWYgKCEkaXNEYXRhKSB7XG4gICAgaWYgKCRzY2hlbWEubGVuZ3RoIDwgaXQub3B0cy5sb29wUmVxdWlyZWQgJiYgaXQuc2NoZW1hLnByb3BlcnRpZXMgJiYgT2JqZWN0LmtleXMoaXQuc2NoZW1hLnByb3BlcnRpZXMpLmxlbmd0aCkge1xuICAgICAgdmFyICRyZXF1aXJlZCA9IFtdO1xuICAgICAgdmFyIGFycjEgPSAkc2NoZW1hO1xuICAgICAgaWYgKGFycjEpIHtcbiAgICAgICAgdmFyICRwcm9wZXJ0eSwgaTEgPSAtMSxcbiAgICAgICAgICBsMSA9IGFycjEubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKGkxIDwgbDEpIHtcbiAgICAgICAgICAkcHJvcGVydHkgPSBhcnIxW2kxICs9IDFdO1xuICAgICAgICAgIHZhciAkcHJvcGVydHlTY2ggPSBpdC5zY2hlbWEucHJvcGVydGllc1skcHJvcGVydHldO1xuICAgICAgICAgIGlmICghKCRwcm9wZXJ0eVNjaCAmJiAoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJHByb3BlcnR5U2NoID09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKCRwcm9wZXJ0eVNjaCkubGVuZ3RoID4gMCkgfHwgJHByb3BlcnR5U2NoID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJHByb3BlcnR5U2NoLCBpdC5SVUxFUy5hbGwpKSkpIHtcbiAgICAgICAgICAgICRyZXF1aXJlZFskcmVxdWlyZWQubGVuZ3RoXSA9ICRwcm9wZXJ0eTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyICRyZXF1aXJlZCA9ICRzY2hlbWE7XG4gICAgfVxuICB9XG4gIGlmICgkaXNEYXRhIHx8ICRyZXF1aXJlZC5sZW5ndGgpIHtcbiAgICB2YXIgJGN1cnJlbnRFcnJvclBhdGggPSBpdC5lcnJvclBhdGgsXG4gICAgICAkbG9vcFJlcXVpcmVkID0gJGlzRGF0YSB8fCAkcmVxdWlyZWQubGVuZ3RoID49IGl0Lm9wdHMubG9vcFJlcXVpcmVkLFxuICAgICAgJG93blByb3BlcnRpZXMgPSBpdC5vcHRzLm93blByb3BlcnRpZXM7XG4gICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgIG91dCArPSAnIHZhciBtaXNzaW5nJyArICgkbHZsKSArICc7ICc7XG4gICAgICBpZiAoJGxvb3BSZXF1aXJlZCkge1xuICAgICAgICBpZiAoISRpc0RhdGEpIHtcbiAgICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkdlNjaGVtYSkgKyAnID0gdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnOyAnO1xuICAgICAgICB9XG4gICAgICAgIHZhciAkaSA9ICdpJyArICRsdmwsXG4gICAgICAgICAgJHByb3BlcnR5UGF0aCA9ICdzY2hlbWEnICsgJGx2bCArICdbJyArICRpICsgJ10nLFxuICAgICAgICAgICRtaXNzaW5nUHJvcGVydHkgPSAnXFwnICsgJyArICRwcm9wZXJ0eVBhdGggKyAnICsgXFwnJztcbiAgICAgICAgaWYgKGl0Lm9wdHMuX2Vycm9yRGF0YVBhdGhQcm9wZXJ0eSkge1xuICAgICAgICAgIGl0LmVycm9yUGF0aCA9IGl0LnV0aWwuZ2V0UGF0aEV4cHIoJGN1cnJlbnRFcnJvclBhdGgsICRwcm9wZXJ0eVBhdGgsIGl0Lm9wdHMuanNvblBvaW50ZXJzKTtcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkdmFsaWQpICsgJyA9IHRydWU7ICc7XG4gICAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgICAgb3V0ICs9ICcgaWYgKHNjaGVtYScgKyAoJGx2bCkgKyAnID09PSB1bmRlZmluZWQpICcgKyAoJHZhbGlkKSArICcgPSB0cnVlOyBlbHNlIGlmICghQXJyYXkuaXNBcnJheShzY2hlbWEnICsgKCRsdmwpICsgJykpICcgKyAoJHZhbGlkKSArICcgPSBmYWxzZTsgZWxzZSB7JztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyBmb3IgKHZhciAnICsgKCRpKSArICcgPSAwOyAnICsgKCRpKSArICcgPCAnICsgKCR2U2NoZW1hKSArICcubGVuZ3RoOyAnICsgKCRpKSArICcrKykgeyAnICsgKCR2YWxpZCkgKyAnID0gJyArICgkZGF0YSkgKyAnWycgKyAoJHZTY2hlbWEpICsgJ1snICsgKCRpKSArICddXSAhPT0gdW5kZWZpbmVkICc7XG4gICAgICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgICAgIG91dCArPSAnICYmICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKCcgKyAoJGRhdGEpICsgJywgJyArICgkdlNjaGVtYSkgKyAnWycgKyAoJGkpICsgJ10pICc7XG4gICAgICAgIH1cbiAgICAgICAgb3V0ICs9ICc7IGlmICghJyArICgkdmFsaWQpICsgJykgYnJlYWs7IH0gJztcbiAgICAgICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgICAgICBvdXQgKz0gJyAgfSAgJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyAgaWYgKCEnICsgKCR2YWxpZCkgKyAnKSB7ICAgJztcbiAgICAgICAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAgICAgICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgICAgICAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdyZXF1aXJlZCcpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgbWlzc2luZ1Byb3BlcnR5OiBcXCcnICsgKCRtaXNzaW5nUHJvcGVydHkpICsgJ1xcJyB9ICc7XG4gICAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJyc7XG4gICAgICAgICAgICBpZiAoaXQub3B0cy5fZXJyb3JEYXRhUGF0aFByb3BlcnR5KSB7XG4gICAgICAgICAgICAgIG91dCArPSAnaXMgYSByZXF1aXJlZCBwcm9wZXJ0eSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvdXQgKz0gJ3Nob3VsZCBoYXZlIHJlcXVpcmVkIHByb3BlcnR5IFxcXFxcXCcnICsgKCRtaXNzaW5nUHJvcGVydHkpICsgJ1xcXFxcXCcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICdcXCcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fZXJyID0gb3V0O1xuICAgICAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgICAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyB9IGVsc2UgeyAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgaWYgKCAnO1xuICAgICAgICB2YXIgYXJyMiA9ICRyZXF1aXJlZDtcbiAgICAgICAgaWYgKGFycjIpIHtcbiAgICAgICAgICB2YXIgJHByb3BlcnR5S2V5LCAkaSA9IC0xLFxuICAgICAgICAgICAgbDIgPSBhcnIyLmxlbmd0aCAtIDE7XG4gICAgICAgICAgd2hpbGUgKCRpIDwgbDIpIHtcbiAgICAgICAgICAgICRwcm9wZXJ0eUtleSA9IGFycjJbJGkgKz0gMV07XG4gICAgICAgICAgICBpZiAoJGkpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgfHwgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciAkcHJvcCA9IGl0LnV0aWwuZ2V0UHJvcGVydHkoJHByb3BlcnR5S2V5KSxcbiAgICAgICAgICAgICAgJHVzZURhdGEgPSAkZGF0YSArICRwcm9wO1xuICAgICAgICAgICAgb3V0ICs9ICcgKCAoICcgKyAoJHVzZURhdGEpICsgJyA9PT0gdW5kZWZpbmVkICc7XG4gICAgICAgICAgICBpZiAoJG93blByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgfHwgISBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoJyArICgkZGF0YSkgKyAnLCBcXCcnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRwcm9wZXJ0eUtleSkpICsgJ1xcJykgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dCArPSAnKSAmJiAobWlzc2luZycgKyAoJGx2bCkgKyAnID0gJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKGl0Lm9wdHMuanNvblBvaW50ZXJzID8gJHByb3BlcnR5S2V5IDogJHByb3ApKSArICcpICkgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb3V0ICs9ICcpIHsgICc7XG4gICAgICAgIHZhciAkcHJvcGVydHlQYXRoID0gJ21pc3NpbmcnICsgJGx2bCxcbiAgICAgICAgICAkbWlzc2luZ1Byb3BlcnR5ID0gJ1xcJyArICcgKyAkcHJvcGVydHlQYXRoICsgJyArIFxcJyc7XG4gICAgICAgIGlmIChpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkpIHtcbiAgICAgICAgICBpdC5lcnJvclBhdGggPSBpdC5vcHRzLmpzb25Qb2ludGVycyA/IGl0LnV0aWwuZ2V0UGF0aEV4cHIoJGN1cnJlbnRFcnJvclBhdGgsICRwcm9wZXJ0eVBhdGgsIHRydWUpIDogJGN1cnJlbnRFcnJvclBhdGggKyAnICsgJyArICRwcm9wZXJ0eVBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAgICAgICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgICAgICAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdyZXF1aXJlZCcpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgbWlzc2luZ1Byb3BlcnR5OiBcXCcnICsgKCRtaXNzaW5nUHJvcGVydHkpICsgJ1xcJyB9ICc7XG4gICAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJyc7XG4gICAgICAgICAgICBpZiAoaXQub3B0cy5fZXJyb3JEYXRhUGF0aFByb3BlcnR5KSB7XG4gICAgICAgICAgICAgIG91dCArPSAnaXMgYSByZXF1aXJlZCBwcm9wZXJ0eSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvdXQgKz0gJ3Nob3VsZCBoYXZlIHJlcXVpcmVkIHByb3BlcnR5IFxcXFxcXCcnICsgKCRtaXNzaW5nUHJvcGVydHkpICsgJ1xcXFxcXCcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICdcXCcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fZXJyID0gb3V0O1xuICAgICAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgICAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyB9IGVsc2UgeyAnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoJGxvb3BSZXF1aXJlZCkge1xuICAgICAgICBpZiAoISRpc0RhdGEpIHtcbiAgICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkdlNjaGVtYSkgKyAnID0gdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnOyAnO1xuICAgICAgICB9XG4gICAgICAgIHZhciAkaSA9ICdpJyArICRsdmwsXG4gICAgICAgICAgJHByb3BlcnR5UGF0aCA9ICdzY2hlbWEnICsgJGx2bCArICdbJyArICRpICsgJ10nLFxuICAgICAgICAgICRtaXNzaW5nUHJvcGVydHkgPSAnXFwnICsgJyArICRwcm9wZXJ0eVBhdGggKyAnICsgXFwnJztcbiAgICAgICAgaWYgKGl0Lm9wdHMuX2Vycm9yRGF0YVBhdGhQcm9wZXJ0eSkge1xuICAgICAgICAgIGl0LmVycm9yUGF0aCA9IGl0LnV0aWwuZ2V0UGF0aEV4cHIoJGN1cnJlbnRFcnJvclBhdGgsICRwcm9wZXJ0eVBhdGgsIGl0Lm9wdHMuanNvblBvaW50ZXJzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICAgIG91dCArPSAnIGlmICgnICsgKCR2U2NoZW1hKSArICcgJiYgIUFycmF5LmlzQXJyYXkoJyArICgkdlNjaGVtYSkgKyAnKSkgeyAgdmFyIGVyciA9ICAgJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdyZXF1aXJlZCcpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgbWlzc2luZ1Byb3BlcnR5OiBcXCcnICsgKCRtaXNzaW5nUHJvcGVydHkpICsgJ1xcJyB9ICc7XG4gICAgICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCcnO1xuICAgICAgICAgICAgICBpZiAoaXQub3B0cy5fZXJyb3JEYXRhUGF0aFByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICdpcyBhIHJlcXVpcmVkIHByb3BlcnR5JztcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvdXQgKz0gJ3Nob3VsZCBoYXZlIHJlcXVpcmVkIHByb3BlcnR5IFxcXFxcXCcnICsgKCRtaXNzaW5nUHJvcGVydHkpICsgJ1xcXFxcXCcnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG91dCArPSAnXFwnICc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7IH0gZWxzZSBpZiAoJyArICgkdlNjaGVtYSkgKyAnICE9PSB1bmRlZmluZWQpIHsgJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyBmb3IgKHZhciAnICsgKCRpKSArICcgPSAwOyAnICsgKCRpKSArICcgPCAnICsgKCR2U2NoZW1hKSArICcubGVuZ3RoOyAnICsgKCRpKSArICcrKykgeyBpZiAoJyArICgkZGF0YSkgKyAnWycgKyAoJHZTY2hlbWEpICsgJ1snICsgKCRpKSArICddXSA9PT0gdW5kZWZpbmVkICc7XG4gICAgICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgICAgIG91dCArPSAnIHx8ICEgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKCcgKyAoJGRhdGEpICsgJywgJyArICgkdlNjaGVtYSkgKyAnWycgKyAoJGkpICsgJ10pICc7XG4gICAgICAgIH1cbiAgICAgICAgb3V0ICs9ICcpIHsgIHZhciBlcnIgPSAgICc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdyZXF1aXJlZCcpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgbWlzc2luZ1Byb3BlcnR5OiBcXCcnICsgKCRtaXNzaW5nUHJvcGVydHkpICsgJ1xcJyB9ICc7XG4gICAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJyc7XG4gICAgICAgICAgICBpZiAoaXQub3B0cy5fZXJyb3JEYXRhUGF0aFByb3BlcnR5KSB7XG4gICAgICAgICAgICAgIG91dCArPSAnaXMgYSByZXF1aXJlZCBwcm9wZXJ0eSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvdXQgKz0gJ3Nob3VsZCBoYXZlIHJlcXVpcmVkIHByb3BlcnR5IFxcXFxcXCcnICsgKCRtaXNzaW5nUHJvcGVydHkpICsgJ1xcXFxcXCcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICdcXCcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgICAgIH1cbiAgICAgICAgb3V0ICs9ICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgfSB9ICc7XG4gICAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgICAgb3V0ICs9ICcgIH0gICc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBhcnIzID0gJHJlcXVpcmVkO1xuICAgICAgICBpZiAoYXJyMykge1xuICAgICAgICAgIHZhciAkcHJvcGVydHlLZXksIGkzID0gLTEsXG4gICAgICAgICAgICBsMyA9IGFycjMubGVuZ3RoIC0gMTtcbiAgICAgICAgICB3aGlsZSAoaTMgPCBsMykge1xuICAgICAgICAgICAgJHByb3BlcnR5S2V5ID0gYXJyM1tpMyArPSAxXTtcbiAgICAgICAgICAgIHZhciAkcHJvcCA9IGl0LnV0aWwuZ2V0UHJvcGVydHkoJHByb3BlcnR5S2V5KSxcbiAgICAgICAgICAgICAgJG1pc3NpbmdQcm9wZXJ0eSA9IGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRwcm9wZXJ0eUtleSksXG4gICAgICAgICAgICAgICR1c2VEYXRhID0gJGRhdGEgKyAkcHJvcDtcbiAgICAgICAgICAgIGlmIChpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgaXQuZXJyb3JQYXRoID0gaXQudXRpbC5nZXRQYXRoKCRjdXJyZW50RXJyb3JQYXRoLCAkcHJvcGVydHlLZXksIGl0Lm9wdHMuanNvblBvaW50ZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dCArPSAnIGlmICggJyArICgkdXNlRGF0YSkgKyAnID09PSB1bmRlZmluZWQgJztcbiAgICAgICAgICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgICAgICAgICBvdXQgKz0gJyB8fCAhIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCgnICsgKCRkYXRhKSArICcsIFxcJycgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJHByb3BlcnR5S2V5KSkgKyAnXFwnKSAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICcpIHsgIHZhciBlcnIgPSAgICc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ3JlcXVpcmVkJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBtaXNzaW5nUHJvcGVydHk6IFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFwnIH0gJztcbiAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCcnO1xuICAgICAgICAgICAgICAgIGlmIChpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICAgIG91dCArPSAnaXMgYSByZXF1aXJlZCBwcm9wZXJ0eSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIG91dCArPSAnc2hvdWxkIGhhdmUgcmVxdWlyZWQgcHJvcGVydHkgXFxcXFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFxcXFxcJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG91dCArPSAnXFwnICc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dCArPSAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7IH0gJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaXQuZXJyb3JQYXRoID0gJGN1cnJlbnRFcnJvclBhdGg7XG4gIH0gZWxzZSBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnIGlmICh0cnVlKSB7JztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfdW5pcXVlSXRlbXMoaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRsdmwgPSBpdC5sZXZlbDtcbiAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgdmFyICR2YWxpZCA9ICd2YWxpZCcgKyAkbHZsO1xuICB2YXIgJGlzRGF0YSA9IGl0Lm9wdHMuJGRhdGEgJiYgJHNjaGVtYSAmJiAkc2NoZW1hLiRkYXRhLFxuICAgICRzY2hlbWFWYWx1ZTtcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyB2YXIgc2NoZW1hJyArICgkbHZsKSArICcgPSAnICsgKGl0LnV0aWwuZ2V0RGF0YSgkc2NoZW1hLiRkYXRhLCAkZGF0YUx2bCwgaXQuZGF0YVBhdGhBcnIpKSArICc7ICc7XG4gICAgJHNjaGVtYVZhbHVlID0gJ3NjaGVtYScgKyAkbHZsO1xuICB9IGVsc2Uge1xuICAgICRzY2hlbWFWYWx1ZSA9ICRzY2hlbWE7XG4gIH1cbiAgaWYgKCgkc2NoZW1hIHx8ICRpc0RhdGEpICYmIGl0Lm9wdHMudW5pcXVlSXRlbXMgIT09IGZhbHNlKSB7XG4gICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgIG91dCArPSAnIHZhciAnICsgKCR2YWxpZCkgKyAnOyBpZiAoJyArICgkc2NoZW1hVmFsdWUpICsgJyA9PT0gZmFsc2UgfHwgJyArICgkc2NoZW1hVmFsdWUpICsgJyA9PT0gdW5kZWZpbmVkKSAnICsgKCR2YWxpZCkgKyAnID0gdHJ1ZTsgZWxzZSBpZiAodHlwZW9mICcgKyAoJHNjaGVtYVZhbHVlKSArICcgIT0gXFwnYm9vbGVhblxcJykgJyArICgkdmFsaWQpICsgJyA9IGZhbHNlOyBlbHNlIHsgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgdmFyIGkgPSAnICsgKCRkYXRhKSArICcubGVuZ3RoICwgJyArICgkdmFsaWQpICsgJyA9IHRydWUgLCBqOyBpZiAoaSA+IDEpIHsgJztcbiAgICB2YXIgJGl0ZW1UeXBlID0gaXQuc2NoZW1hLml0ZW1zICYmIGl0LnNjaGVtYS5pdGVtcy50eXBlLFxuICAgICAgJHR5cGVJc0FycmF5ID0gQXJyYXkuaXNBcnJheSgkaXRlbVR5cGUpO1xuICAgIGlmICghJGl0ZW1UeXBlIHx8ICRpdGVtVHlwZSA9PSAnb2JqZWN0JyB8fCAkaXRlbVR5cGUgPT0gJ2FycmF5JyB8fCAoJHR5cGVJc0FycmF5ICYmICgkaXRlbVR5cGUuaW5kZXhPZignb2JqZWN0JykgPj0gMCB8fCAkaXRlbVR5cGUuaW5kZXhPZignYXJyYXknKSA+PSAwKSkpIHtcbiAgICAgIG91dCArPSAnIG91dGVyOiBmb3IgKDtpLS07KSB7IGZvciAoaiA9IGk7IGotLTspIHsgaWYgKGVxdWFsKCcgKyAoJGRhdGEpICsgJ1tpXSwgJyArICgkZGF0YSkgKyAnW2pdKSkgeyAnICsgKCR2YWxpZCkgKyAnID0gZmFsc2U7IGJyZWFrIG91dGVyOyB9IH0gfSAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB2YXIgaXRlbUluZGljZXMgPSB7fSwgaXRlbTsgZm9yICg7aS0tOykgeyB2YXIgaXRlbSA9ICcgKyAoJGRhdGEpICsgJ1tpXTsgJztcbiAgICAgIHZhciAkbWV0aG9kID0gJ2NoZWNrRGF0YVR5cGUnICsgKCR0eXBlSXNBcnJheSA/ICdzJyA6ICcnKTtcbiAgICAgIG91dCArPSAnIGlmICgnICsgKGl0LnV0aWxbJG1ldGhvZF0oJGl0ZW1UeXBlLCAnaXRlbScsIGl0Lm9wdHMuc3RyaWN0TnVtYmVycywgdHJ1ZSkpICsgJykgY29udGludWU7ICc7XG4gICAgICBpZiAoJHR5cGVJc0FycmF5KSB7XG4gICAgICAgIG91dCArPSAnIGlmICh0eXBlb2YgaXRlbSA9PSBcXCdzdHJpbmdcXCcpIGl0ZW0gPSBcXCdcIlxcJyArIGl0ZW07ICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyBpZiAodHlwZW9mIGl0ZW1JbmRpY2VzW2l0ZW1dID09IFxcJ251bWJlclxcJykgeyAnICsgKCR2YWxpZCkgKyAnID0gZmFsc2U7IGogPSBpdGVtSW5kaWNlc1tpdGVtXTsgYnJlYWs7IH0gaXRlbUluZGljZXNbaXRlbV0gPSBpOyB9ICc7XG4gICAgfVxuICAgIG91dCArPSAnIH0gJztcbiAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgb3V0ICs9ICcgIH0gICc7XG4gICAgfVxuICAgIG91dCArPSAnIGlmICghJyArICgkdmFsaWQpICsgJykgeyAgICc7XG4gICAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAgICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICAgIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ3VuaXF1ZUl0ZW1zJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBpOiBpLCBqOiBqIH0gJztcbiAgICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBOT1QgaGF2ZSBkdXBsaWNhdGUgaXRlbXMgKGl0ZW1zICMjIFxcJyArIGogKyBcXCcgYW5kIFxcJyArIGkgKyBcXCcgYXJlIGlkZW50aWNhbClcXCcgJztcbiAgICAgIH1cbiAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6ICAnO1xuICAgICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICAgIG91dCArPSAndmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcnICsgKCRzY2hlbWEpO1xuICAgICAgICB9XG4gICAgICAgIG91dCArPSAnICAgICAgICAgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgfVxuICAgIHZhciBfX2VyciA9IG91dDtcbiAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgfSAnO1xuICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgIG91dCArPSAnIGlmICh0cnVlKSB7ICc7XG4gICAgfVxuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vL2FsbCByZXF1aXJlcyBtdXN0IGJlIGV4cGxpY2l0IGJlY2F1c2UgYnJvd3NlcmlmeSB3b24ndCB3b3JrIHdpdGggZHluYW1pYyByZXF1aXJlc1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gICckcmVmJzogcmVxdWlyZSgnLi9yZWYnKSxcbiAgYWxsT2Y6IHJlcXVpcmUoJy4vYWxsT2YnKSxcbiAgYW55T2Y6IHJlcXVpcmUoJy4vYW55T2YnKSxcbiAgJyRjb21tZW50JzogcmVxdWlyZSgnLi9jb21tZW50JyksXG4gIGNvbnN0OiByZXF1aXJlKCcuL2NvbnN0JyksXG4gIGNvbnRhaW5zOiByZXF1aXJlKCcuL2NvbnRhaW5zJyksXG4gIGRlcGVuZGVuY2llczogcmVxdWlyZSgnLi9kZXBlbmRlbmNpZXMnKSxcbiAgJ2VudW0nOiByZXF1aXJlKCcuL2VudW0nKSxcbiAgZm9ybWF0OiByZXF1aXJlKCcuL2Zvcm1hdCcpLFxuICAnaWYnOiByZXF1aXJlKCcuL2lmJyksXG4gIGl0ZW1zOiByZXF1aXJlKCcuL2l0ZW1zJyksXG4gIG1heGltdW06IHJlcXVpcmUoJy4vX2xpbWl0JyksXG4gIG1pbmltdW06IHJlcXVpcmUoJy4vX2xpbWl0JyksXG4gIG1heEl0ZW1zOiByZXF1aXJlKCcuL19saW1pdEl0ZW1zJyksXG4gIG1pbkl0ZW1zOiByZXF1aXJlKCcuL19saW1pdEl0ZW1zJyksXG4gIG1heExlbmd0aDogcmVxdWlyZSgnLi9fbGltaXRMZW5ndGgnKSxcbiAgbWluTGVuZ3RoOiByZXF1aXJlKCcuL19saW1pdExlbmd0aCcpLFxuICBtYXhQcm9wZXJ0aWVzOiByZXF1aXJlKCcuL19saW1pdFByb3BlcnRpZXMnKSxcbiAgbWluUHJvcGVydGllczogcmVxdWlyZSgnLi9fbGltaXRQcm9wZXJ0aWVzJyksXG4gIG11bHRpcGxlT2Y6IHJlcXVpcmUoJy4vbXVsdGlwbGVPZicpLFxuICBub3Q6IHJlcXVpcmUoJy4vbm90JyksXG4gIG9uZU9mOiByZXF1aXJlKCcuL29uZU9mJyksXG4gIHBhdHRlcm46IHJlcXVpcmUoJy4vcGF0dGVybicpLFxuICBwcm9wZXJ0aWVzOiByZXF1aXJlKCcuL3Byb3BlcnRpZXMnKSxcbiAgcHJvcGVydHlOYW1lczogcmVxdWlyZSgnLi9wcm9wZXJ0eU5hbWVzJyksXG4gIHJlcXVpcmVkOiByZXF1aXJlKCcuL3JlcXVpcmVkJyksXG4gIHVuaXF1ZUl0ZW1zOiByZXF1aXJlKCcuL3VuaXF1ZUl0ZW1zJyksXG4gIHZhbGlkYXRlOiByZXF1aXJlKCcuL3ZhbGlkYXRlJylcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcnVsZU1vZHVsZXMgPSByZXF1aXJlKCcuLi9kb3RqcycpXG4gICwgdG9IYXNoID0gcmVxdWlyZSgnLi91dGlsJykudG9IYXNoO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHJ1bGVzKCkge1xuICB2YXIgUlVMRVMgPSBbXG4gICAgeyB0eXBlOiAnbnVtYmVyJyxcbiAgICAgIHJ1bGVzOiBbIHsgJ21heGltdW0nOiBbJ2V4Y2x1c2l2ZU1heGltdW0nXSB9LFxuICAgICAgICAgICAgICAgeyAnbWluaW11bSc6IFsnZXhjbHVzaXZlTWluaW11bSddIH0sICdtdWx0aXBsZU9mJywgJ2Zvcm1hdCddIH0sXG4gICAgeyB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIHJ1bGVzOiBbICdtYXhMZW5ndGgnLCAnbWluTGVuZ3RoJywgJ3BhdHRlcm4nLCAnZm9ybWF0JyBdIH0sXG4gICAgeyB0eXBlOiAnYXJyYXknLFxuICAgICAgcnVsZXM6IFsgJ21heEl0ZW1zJywgJ21pbkl0ZW1zJywgJ2l0ZW1zJywgJ2NvbnRhaW5zJywgJ3VuaXF1ZUl0ZW1zJyBdIH0sXG4gICAgeyB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHJ1bGVzOiBbICdtYXhQcm9wZXJ0aWVzJywgJ21pblByb3BlcnRpZXMnLCAncmVxdWlyZWQnLCAnZGVwZW5kZW5jaWVzJywgJ3Byb3BlcnR5TmFtZXMnLFxuICAgICAgICAgICAgICAgeyAncHJvcGVydGllcyc6IFsnYWRkaXRpb25hbFByb3BlcnRpZXMnLCAncGF0dGVyblByb3BlcnRpZXMnXSB9IF0gfSxcbiAgICB7IHJ1bGVzOiBbICckcmVmJywgJ2NvbnN0JywgJ2VudW0nLCAnbm90JywgJ2FueU9mJywgJ29uZU9mJywgJ2FsbE9mJywgJ2lmJyBdIH1cbiAgXTtcblxuICB2YXIgQUxMID0gWyAndHlwZScsICckY29tbWVudCcgXTtcbiAgdmFyIEtFWVdPUkRTID0gW1xuICAgICckc2NoZW1hJywgJyRpZCcsICdpZCcsICckZGF0YScsICckYXN5bmMnLCAndGl0bGUnLFxuICAgICdkZXNjcmlwdGlvbicsICdkZWZhdWx0JywgJ2RlZmluaXRpb25zJyxcbiAgICAnZXhhbXBsZXMnLCAncmVhZE9ubHknLCAnd3JpdGVPbmx5JyxcbiAgICAnY29udGVudE1lZGlhVHlwZScsICdjb250ZW50RW5jb2RpbmcnLFxuICAgICdhZGRpdGlvbmFsSXRlbXMnLCAndGhlbicsICdlbHNlJ1xuICBdO1xuICB2YXIgVFlQRVMgPSBbICdudW1iZXInLCAnaW50ZWdlcicsICdzdHJpbmcnLCAnYXJyYXknLCAnb2JqZWN0JywgJ2Jvb2xlYW4nLCAnbnVsbCcgXTtcbiAgUlVMRVMuYWxsID0gdG9IYXNoKEFMTCk7XG4gIFJVTEVTLnR5cGVzID0gdG9IYXNoKFRZUEVTKTtcblxuICBSVUxFUy5mb3JFYWNoKGZ1bmN0aW9uIChncm91cCkge1xuICAgIGdyb3VwLnJ1bGVzID0gZ3JvdXAucnVsZXMubWFwKGZ1bmN0aW9uIChrZXl3b3JkKSB7XG4gICAgICB2YXIgaW1wbEtleXdvcmRzO1xuICAgICAgaWYgKHR5cGVvZiBrZXl3b3JkID09ICdvYmplY3QnKSB7XG4gICAgICAgIHZhciBrZXkgPSBPYmplY3Qua2V5cyhrZXl3b3JkKVswXTtcbiAgICAgICAgaW1wbEtleXdvcmRzID0ga2V5d29yZFtrZXldO1xuICAgICAgICBrZXl3b3JkID0ga2V5O1xuICAgICAgICBpbXBsS2V5d29yZHMuZm9yRWFjaChmdW5jdGlvbiAoaykge1xuICAgICAgICAgIEFMTC5wdXNoKGspO1xuICAgICAgICAgIFJVTEVTLmFsbFtrXSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgQUxMLnB1c2goa2V5d29yZCk7XG4gICAgICB2YXIgcnVsZSA9IFJVTEVTLmFsbFtrZXl3b3JkXSA9IHtcbiAgICAgICAga2V5d29yZDoga2V5d29yZCxcbiAgICAgICAgY29kZTogcnVsZU1vZHVsZXNba2V5d29yZF0sXG4gICAgICAgIGltcGxlbWVudHM6IGltcGxLZXl3b3Jkc1xuICAgICAgfTtcbiAgICAgIHJldHVybiBydWxlO1xuICAgIH0pO1xuXG4gICAgUlVMRVMuYWxsLiRjb21tZW50ID0ge1xuICAgICAga2V5d29yZDogJyRjb21tZW50JyxcbiAgICAgIGNvZGU6IHJ1bGVNb2R1bGVzLiRjb21tZW50XG4gICAgfTtcblxuICAgIGlmIChncm91cC50eXBlKSBSVUxFUy50eXBlc1tncm91cC50eXBlXSA9IGdyb3VwO1xuICB9KTtcblxuICBSVUxFUy5rZXl3b3JkcyA9IHRvSGFzaChBTEwuY29uY2F0KEtFWVdPUkRTKSk7XG4gIFJVTEVTLmN1c3RvbSA9IHt9O1xuXG4gIHJldHVybiBSVUxFUztcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgS0VZV09SRFMgPSBbXG4gICdtdWx0aXBsZU9mJyxcbiAgJ21heGltdW0nLFxuICAnZXhjbHVzaXZlTWF4aW11bScsXG4gICdtaW5pbXVtJyxcbiAgJ2V4Y2x1c2l2ZU1pbmltdW0nLFxuICAnbWF4TGVuZ3RoJyxcbiAgJ21pbkxlbmd0aCcsXG4gICdwYXR0ZXJuJyxcbiAgJ2FkZGl0aW9uYWxJdGVtcycsXG4gICdtYXhJdGVtcycsXG4gICdtaW5JdGVtcycsXG4gICd1bmlxdWVJdGVtcycsXG4gICdtYXhQcm9wZXJ0aWVzJyxcbiAgJ21pblByb3BlcnRpZXMnLFxuICAncmVxdWlyZWQnLFxuICAnYWRkaXRpb25hbFByb3BlcnRpZXMnLFxuICAnZW51bScsXG4gICdmb3JtYXQnLFxuICAnY29uc3QnXG5dO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChtZXRhU2NoZW1hLCBrZXl3b3Jkc0pzb25Qb2ludGVycykge1xuICBmb3IgKHZhciBpPTA7IGk8a2V5d29yZHNKc29uUG9pbnRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICBtZXRhU2NoZW1hID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtZXRhU2NoZW1hKSk7XG4gICAgdmFyIHNlZ21lbnRzID0ga2V5d29yZHNKc29uUG9pbnRlcnNbaV0uc3BsaXQoJy8nKTtcbiAgICB2YXIga2V5d29yZHMgPSBtZXRhU2NoZW1hO1xuICAgIHZhciBqO1xuICAgIGZvciAoaj0xOyBqPHNlZ21lbnRzLmxlbmd0aDsgaisrKVxuICAgICAga2V5d29yZHMgPSBrZXl3b3Jkc1tzZWdtZW50c1tqXV07XG5cbiAgICBmb3IgKGo9MDsgajxLRVlXT1JEUy5sZW5ndGg7IGorKykge1xuICAgICAgdmFyIGtleSA9IEtFWVdPUkRTW2pdO1xuICAgICAgdmFyIHNjaGVtYSA9IGtleXdvcmRzW2tleV07XG4gICAgICBpZiAoc2NoZW1hKSB7XG4gICAgICAgIGtleXdvcmRzW2tleV0gPSB7XG4gICAgICAgICAgYW55T2Y6IFtcbiAgICAgICAgICAgIHNjaGVtYSxcbiAgICAgICAgICAgIHsgJHJlZjogJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hanYtdmFsaWRhdG9yL2Fqdi9tYXN0ZXIvbGliL3JlZnMvZGF0YS5qc29uIycgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YVNjaGVtYTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgTWlzc2luZ1JlZkVycm9yID0gcmVxdWlyZSgnLi9lcnJvcl9jbGFzc2VzJykuTWlzc2luZ1JlZjtcblxubW9kdWxlLmV4cG9ydHMgPSBjb21waWxlQXN5bmM7XG5cblxuLyoqXG4gKiBDcmVhdGVzIHZhbGlkYXRpbmcgZnVuY3Rpb24gZm9yIHBhc3NlZCBzY2hlbWEgd2l0aCBhc3luY2hyb25vdXMgbG9hZGluZyBvZiBtaXNzaW5nIHNjaGVtYXMuXG4gKiBgbG9hZFNjaGVtYWAgb3B0aW9uIHNob3VsZCBiZSBhIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBzY2hlbWEgdXJpIGFuZCByZXR1cm5zIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBzY2hlbWEuXG4gKiBAdGhpcyAgQWp2XG4gKiBAcGFyYW0ge09iamVjdH0gICBzY2hlbWEgc2NoZW1hIG9iamVjdFxuICogQHBhcmFtIHtCb29sZWFufSAgbWV0YSBvcHRpb25hbCB0cnVlIHRvIGNvbXBpbGUgbWV0YS1zY2hlbWE7IHRoaXMgcGFyYW1ldGVyIGNhbiBiZSBza2lwcGVkXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBhbiBvcHRpb25hbCBub2RlLXN0eWxlIGNhbGxiYWNrLCBpdCBpcyBjYWxsZWQgd2l0aCAyIHBhcmFtZXRlcnM6IGVycm9yIChvciBudWxsKSBhbmQgdmFsaWRhdGluZyBmdW5jdGlvbi5cbiAqIEByZXR1cm4ge1Byb21pc2V9IHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGEgdmFsaWRhdGluZyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY29tcGlsZUFzeW5jKHNjaGVtYSwgbWV0YSwgY2FsbGJhY2spIHtcbiAgLyogZXNsaW50IG5vLXNoYWRvdzogMCAqL1xuICAvKiBnbG9iYWwgUHJvbWlzZSAqL1xuICAvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXG4gIHZhciBzZWxmID0gdGhpcztcbiAgaWYgKHR5cGVvZiB0aGlzLl9vcHRzLmxvYWRTY2hlbWEgIT0gJ2Z1bmN0aW9uJylcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ29wdGlvbnMubG9hZFNjaGVtYSBzaG91bGQgYmUgYSBmdW5jdGlvbicpO1xuXG4gIGlmICh0eXBlb2YgbWV0YSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgY2FsbGJhY2sgPSBtZXRhO1xuICAgIG1ldGEgPSB1bmRlZmluZWQ7XG4gIH1cblxuICB2YXIgcCA9IGxvYWRNZXRhU2NoZW1hT2Yoc2NoZW1hKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2NoZW1hT2JqID0gc2VsZi5fYWRkU2NoZW1hKHNjaGVtYSwgdW5kZWZpbmVkLCBtZXRhKTtcbiAgICByZXR1cm4gc2NoZW1hT2JqLnZhbGlkYXRlIHx8IF9jb21waWxlQXN5bmMoc2NoZW1hT2JqKTtcbiAgfSk7XG5cbiAgaWYgKGNhbGxiYWNrKSB7XG4gICAgcC50aGVuKFxuICAgICAgZnVuY3Rpb24odikgeyBjYWxsYmFjayhudWxsLCB2KTsgfSxcbiAgICAgIGNhbGxiYWNrXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBwO1xuXG5cbiAgZnVuY3Rpb24gbG9hZE1ldGFTY2hlbWFPZihzY2gpIHtcbiAgICB2YXIgJHNjaGVtYSA9IHNjaC4kc2NoZW1hO1xuICAgIHJldHVybiAkc2NoZW1hICYmICFzZWxmLmdldFNjaGVtYSgkc2NoZW1hKVxuICAgICAgICAgICAgPyBjb21waWxlQXN5bmMuY2FsbChzZWxmLCB7ICRyZWY6ICRzY2hlbWEgfSwgdHJ1ZSlcbiAgICAgICAgICAgIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuXG4gIGZ1bmN0aW9uIF9jb21waWxlQXN5bmMoc2NoZW1hT2JqKSB7XG4gICAgdHJ5IHsgcmV0dXJuIHNlbGYuX2NvbXBpbGUoc2NoZW1hT2JqKTsgfVxuICAgIGNhdGNoKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgTWlzc2luZ1JlZkVycm9yKSByZXR1cm4gbG9hZE1pc3NpbmdTY2hlbWEoZSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuXG4gICAgZnVuY3Rpb24gbG9hZE1pc3NpbmdTY2hlbWEoZSkge1xuICAgICAgdmFyIHJlZiA9IGUubWlzc2luZ1NjaGVtYTtcbiAgICAgIGlmIChhZGRlZChyZWYpKSB0aHJvdyBuZXcgRXJyb3IoJ1NjaGVtYSAnICsgcmVmICsgJyBpcyBsb2FkZWQgYnV0ICcgKyBlLm1pc3NpbmdSZWYgKyAnIGNhbm5vdCBiZSByZXNvbHZlZCcpO1xuXG4gICAgICB2YXIgc2NoZW1hUHJvbWlzZSA9IHNlbGYuX2xvYWRpbmdTY2hlbWFzW3JlZl07XG4gICAgICBpZiAoIXNjaGVtYVByb21pc2UpIHtcbiAgICAgICAgc2NoZW1hUHJvbWlzZSA9IHNlbGYuX2xvYWRpbmdTY2hlbWFzW3JlZl0gPSBzZWxmLl9vcHRzLmxvYWRTY2hlbWEocmVmKTtcbiAgICAgICAgc2NoZW1hUHJvbWlzZS50aGVuKHJlbW92ZVByb21pc2UsIHJlbW92ZVByb21pc2UpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2NoZW1hUHJvbWlzZS50aGVuKGZ1bmN0aW9uIChzY2gpIHtcbiAgICAgICAgaWYgKCFhZGRlZChyZWYpKSB7XG4gICAgICAgICAgcmV0dXJuIGxvYWRNZXRhU2NoZW1hT2Yoc2NoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghYWRkZWQocmVmKSkgc2VsZi5hZGRTY2hlbWEoc2NoLCByZWYsIHVuZGVmaW5lZCwgbWV0YSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29tcGlsZUFzeW5jKHNjaGVtYU9iaik7XG4gICAgICB9KTtcblxuICAgICAgZnVuY3Rpb24gcmVtb3ZlUHJvbWlzZSgpIHtcbiAgICAgICAgZGVsZXRlIHNlbGYuX2xvYWRpbmdTY2hlbWFzW3JlZl07XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGFkZGVkKHJlZikge1xuICAgICAgICByZXR1cm4gc2VsZi5fcmVmc1tyZWZdIHx8IHNlbGYuX3NjaGVtYXNbcmVmXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX2N1c3RvbShpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGVycm9yS2V5d29yZDtcbiAgdmFyICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgdmFyICR2YWxpZCA9ICd2YWxpZCcgKyAkbHZsO1xuICB2YXIgJGVycnMgPSAnZXJyc19fJyArICRsdmw7XG4gIHZhciAkaXNEYXRhID0gaXQub3B0cy4kZGF0YSAmJiAkc2NoZW1hICYmICRzY2hlbWEuJGRhdGEsXG4gICAgJHNjaGVtYVZhbHVlO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnIHZhciBzY2hlbWEnICsgKCRsdmwpICsgJyA9ICcgKyAoaXQudXRpbC5nZXREYXRhKCRzY2hlbWEuJGRhdGEsICRkYXRhTHZsLCBpdC5kYXRhUGF0aEFycikpICsgJzsgJztcbiAgICAkc2NoZW1hVmFsdWUgPSAnc2NoZW1hJyArICRsdmw7XG4gIH0gZWxzZSB7XG4gICAgJHNjaGVtYVZhbHVlID0gJHNjaGVtYTtcbiAgfVxuICB2YXIgJHJ1bGUgPSB0aGlzLFxuICAgICRkZWZpbml0aW9uID0gJ2RlZmluaXRpb24nICsgJGx2bCxcbiAgICAkckRlZiA9ICRydWxlLmRlZmluaXRpb24sXG4gICAgJGNsb3NpbmdCcmFjZXMgPSAnJztcbiAgdmFyICRjb21waWxlLCAkaW5saW5lLCAkbWFjcm8sICRydWxlVmFsaWRhdGUsICR2YWxpZGF0ZUNvZGU7XG4gIGlmICgkaXNEYXRhICYmICRyRGVmLiRkYXRhKSB7XG4gICAgJHZhbGlkYXRlQ29kZSA9ICdrZXl3b3JkVmFsaWRhdGUnICsgJGx2bDtcbiAgICB2YXIgJHZhbGlkYXRlU2NoZW1hID0gJHJEZWYudmFsaWRhdGVTY2hlbWE7XG4gICAgb3V0ICs9ICcgdmFyICcgKyAoJGRlZmluaXRpb24pICsgJyA9IFJVTEVTLmN1c3RvbVtcXCcnICsgKCRrZXl3b3JkKSArICdcXCddLmRlZmluaXRpb247IHZhciAnICsgKCR2YWxpZGF0ZUNvZGUpICsgJyA9ICcgKyAoJGRlZmluaXRpb24pICsgJy52YWxpZGF0ZTsnO1xuICB9IGVsc2Uge1xuICAgICRydWxlVmFsaWRhdGUgPSBpdC51c2VDdXN0b21SdWxlKCRydWxlLCAkc2NoZW1hLCBpdC5zY2hlbWEsIGl0KTtcbiAgICBpZiAoISRydWxlVmFsaWRhdGUpIHJldHVybjtcbiAgICAkc2NoZW1hVmFsdWUgPSAndmFsaWRhdGUuc2NoZW1hJyArICRzY2hlbWFQYXRoO1xuICAgICR2YWxpZGF0ZUNvZGUgPSAkcnVsZVZhbGlkYXRlLmNvZGU7XG4gICAgJGNvbXBpbGUgPSAkckRlZi5jb21waWxlO1xuICAgICRpbmxpbmUgPSAkckRlZi5pbmxpbmU7XG4gICAgJG1hY3JvID0gJHJEZWYubWFjcm87XG4gIH1cbiAgdmFyICRydWxlRXJycyA9ICR2YWxpZGF0ZUNvZGUgKyAnLmVycm9ycycsXG4gICAgJGkgPSAnaScgKyAkbHZsLFxuICAgICRydWxlRXJyID0gJ3J1bGVFcnInICsgJGx2bCxcbiAgICAkYXN5bmNLZXl3b3JkID0gJHJEZWYuYXN5bmM7XG4gIGlmICgkYXN5bmNLZXl3b3JkICYmICFpdC5hc3luYykgdGhyb3cgbmV3IEVycm9yKCdhc3luYyBrZXl3b3JkIGluIHN5bmMgc2NoZW1hJyk7XG4gIGlmICghKCRpbmxpbmUgfHwgJG1hY3JvKSkge1xuICAgIG91dCArPSAnJyArICgkcnVsZUVycnMpICsgJyA9IG51bGw7JztcbiAgfVxuICBvdXQgKz0gJ3ZhciAnICsgKCRlcnJzKSArICcgPSBlcnJvcnM7dmFyICcgKyAoJHZhbGlkKSArICc7JztcbiAgaWYgKCRpc0RhdGEgJiYgJHJEZWYuJGRhdGEpIHtcbiAgICAkY2xvc2luZ0JyYWNlcyArPSAnfSc7XG4gICAgb3V0ICs9ICcgaWYgKCcgKyAoJHNjaGVtYVZhbHVlKSArICcgPT09IHVuZGVmaW5lZCkgeyAnICsgKCR2YWxpZCkgKyAnID0gdHJ1ZTsgfSBlbHNlIHsgJztcbiAgICBpZiAoJHZhbGlkYXRlU2NoZW1hKSB7XG4gICAgICAkY2xvc2luZ0JyYWNlcyArPSAnfSc7XG4gICAgICBvdXQgKz0gJyAnICsgKCR2YWxpZCkgKyAnID0gJyArICgkZGVmaW5pdGlvbikgKyAnLnZhbGlkYXRlU2NoZW1hKCcgKyAoJHNjaGVtYVZhbHVlKSArICcpOyBpZiAoJyArICgkdmFsaWQpICsgJykgeyAnO1xuICAgIH1cbiAgfVxuICBpZiAoJGlubGluZSkge1xuICAgIGlmICgkckRlZi5zdGF0ZW1lbnRzKSB7XG4gICAgICBvdXQgKz0gJyAnICsgKCRydWxlVmFsaWRhdGUudmFsaWRhdGUpICsgJyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyAnICsgKCR2YWxpZCkgKyAnID0gJyArICgkcnVsZVZhbGlkYXRlLnZhbGlkYXRlKSArICc7ICc7XG4gICAgfVxuICB9IGVsc2UgaWYgKCRtYWNybykge1xuICAgIHZhciAkaXQgPSBpdC51dGlsLmNvcHkoaXQpO1xuICAgIHZhciAkY2xvc2luZ0JyYWNlcyA9ICcnO1xuICAgICRpdC5sZXZlbCsrO1xuICAgIHZhciAkbmV4dFZhbGlkID0gJ3ZhbGlkJyArICRpdC5sZXZlbDtcbiAgICAkaXQuc2NoZW1hID0gJHJ1bGVWYWxpZGF0ZS52YWxpZGF0ZTtcbiAgICAkaXQuc2NoZW1hUGF0aCA9ICcnO1xuICAgIHZhciAkd2FzQ29tcG9zaXRlID0gaXQuY29tcG9zaXRlUnVsZTtcbiAgICBpdC5jb21wb3NpdGVSdWxlID0gJGl0LmNvbXBvc2l0ZVJ1bGUgPSB0cnVlO1xuICAgIHZhciAkY29kZSA9IGl0LnZhbGlkYXRlKCRpdCkucmVwbGFjZSgvdmFsaWRhdGVcXC5zY2hlbWEvZywgJHZhbGlkYXRlQ29kZSk7XG4gICAgaXQuY29tcG9zaXRlUnVsZSA9ICRpdC5jb21wb3NpdGVSdWxlID0gJHdhc0NvbXBvc2l0ZTtcbiAgICBvdXQgKz0gJyAnICsgKCRjb2RlKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgb3V0ID0gJyc7XG4gICAgb3V0ICs9ICcgICcgKyAoJHZhbGlkYXRlQ29kZSkgKyAnLmNhbGwoICc7XG4gICAgaWYgKGl0Lm9wdHMucGFzc0NvbnRleHQpIHtcbiAgICAgIG91dCArPSAndGhpcyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnc2VsZic7XG4gICAgfVxuICAgIGlmICgkY29tcGlsZSB8fCAkckRlZi5zY2hlbWEgPT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyAsICcgKyAoJGRhdGEpICsgJyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyAsICcgKyAoJHNjaGVtYVZhbHVlKSArICcgLCAnICsgKCRkYXRhKSArICcgLCB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyAsIChkYXRhUGF0aCB8fCBcXCdcXCcpJztcbiAgICBpZiAoaXQuZXJyb3JQYXRoICE9ICdcIlwiJykge1xuICAgICAgb3V0ICs9ICcgKyAnICsgKGl0LmVycm9yUGF0aCk7XG4gICAgfVxuICAgIHZhciAkcGFyZW50RGF0YSA9ICRkYXRhTHZsID8gJ2RhdGEnICsgKCgkZGF0YUx2bCAtIDEpIHx8ICcnKSA6ICdwYXJlbnREYXRhJyxcbiAgICAgICRwYXJlbnREYXRhUHJvcGVydHkgPSAkZGF0YUx2bCA/IGl0LmRhdGFQYXRoQXJyWyRkYXRhTHZsXSA6ICdwYXJlbnREYXRhUHJvcGVydHknO1xuICAgIG91dCArPSAnICwgJyArICgkcGFyZW50RGF0YSkgKyAnICwgJyArICgkcGFyZW50RGF0YVByb3BlcnR5KSArICcgLCByb290RGF0YSApICAnO1xuICAgIHZhciBkZWZfY2FsbFJ1bGVWYWxpZGF0ZSA9IG91dDtcbiAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgIGlmICgkckRlZi5lcnJvcnMgPT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyAnICsgKCR2YWxpZCkgKyAnID0gJztcbiAgICAgIGlmICgkYXN5bmNLZXl3b3JkKSB7XG4gICAgICAgIG91dCArPSAnYXdhaXQgJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnJyArIChkZWZfY2FsbFJ1bGVWYWxpZGF0ZSkgKyAnOyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoJGFzeW5jS2V5d29yZCkge1xuICAgICAgICAkcnVsZUVycnMgPSAnY3VzdG9tRXJyb3JzJyArICRsdmw7XG4gICAgICAgIG91dCArPSAnIHZhciAnICsgKCRydWxlRXJycykgKyAnID0gbnVsbDsgdHJ5IHsgJyArICgkdmFsaWQpICsgJyA9IGF3YWl0ICcgKyAoZGVmX2NhbGxSdWxlVmFsaWRhdGUpICsgJzsgfSBjYXRjaCAoZSkgeyAnICsgKCR2YWxpZCkgKyAnID0gZmFsc2U7IGlmIChlIGluc3RhbmNlb2YgVmFsaWRhdGlvbkVycm9yKSAnICsgKCRydWxlRXJycykgKyAnID0gZS5lcnJvcnM7IGVsc2UgdGhyb3cgZTsgfSAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgJyArICgkcnVsZUVycnMpICsgJyA9IG51bGw7ICcgKyAoJHZhbGlkKSArICcgPSAnICsgKGRlZl9jYWxsUnVsZVZhbGlkYXRlKSArICc7ICc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICgkckRlZi5tb2RpZnlpbmcpIHtcbiAgICBvdXQgKz0gJyBpZiAoJyArICgkcGFyZW50RGF0YSkgKyAnKSAnICsgKCRkYXRhKSArICcgPSAnICsgKCRwYXJlbnREYXRhKSArICdbJyArICgkcGFyZW50RGF0YVByb3BlcnR5KSArICddOyc7XG4gIH1cbiAgb3V0ICs9ICcnICsgKCRjbG9zaW5nQnJhY2VzKTtcbiAgaWYgKCRyRGVmLnZhbGlkKSB7XG4gICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgIG91dCArPSAnIGlmICh0cnVlKSB7ICc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIGlmICggJztcbiAgICBpZiAoJHJEZWYudmFsaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgb3V0ICs9ICcgISc7XG4gICAgICBpZiAoJG1hY3JvKSB7XG4gICAgICAgIG91dCArPSAnJyArICgkbmV4dFZhbGlkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnJyArICgkdmFsaWQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyAnICsgKCEkckRlZi52YWxpZCkgKyAnICc7XG4gICAgfVxuICAgIG91dCArPSAnKSB7ICc7XG4gICAgJGVycm9yS2V5d29yZCA9ICRydWxlLmtleXdvcmQ7XG4gICAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAgICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICAgIG91dCA9ICcnO1xuICAgIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCRlcnJvcktleXdvcmQgfHwgJ2N1c3RvbScpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsga2V5d29yZDogXFwnJyArICgkcnVsZS5rZXl3b3JkKSArICdcXCcgfSAnO1xuICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIHBhc3MgXCInICsgKCRydWxlLmtleXdvcmQpICsgJ1wiIGtleXdvcmQgdmFsaWRhdGlvblxcJyAnO1xuICAgICAgfVxuICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgfSAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB7fSAnO1xuICAgIH1cbiAgICB2YXIgX19lcnIgPSBvdXQ7XG4gICAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgfVxuICAgIHZhciBkZWZfY3VzdG9tRXJyb3IgPSBvdXQ7XG4gICAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgICBpZiAoJGlubGluZSkge1xuICAgICAgaWYgKCRyRGVmLmVycm9ycykge1xuICAgICAgICBpZiAoJHJEZWYuZXJyb3JzICE9ICdmdWxsJykge1xuICAgICAgICAgIG91dCArPSAnICBmb3IgKHZhciAnICsgKCRpKSArICc9JyArICgkZXJycykgKyAnOyAnICsgKCRpKSArICc8ZXJyb3JzOyAnICsgKCRpKSArICcrKykgeyB2YXIgJyArICgkcnVsZUVycikgKyAnID0gdkVycm9yc1snICsgKCRpKSArICddOyBpZiAoJyArICgkcnVsZUVycikgKyAnLmRhdGFQYXRoID09PSB1bmRlZmluZWQpICcgKyAoJHJ1bGVFcnIpICsgJy5kYXRhUGF0aCA9IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJzsgaWYgKCcgKyAoJHJ1bGVFcnIpICsgJy5zY2hlbWFQYXRoID09PSB1bmRlZmluZWQpIHsgJyArICgkcnVsZUVycikgKyAnLnNjaGVtYVBhdGggPSBcIicgKyAoJGVyclNjaGVtYVBhdGgpICsgJ1wiOyB9ICc7XG4gICAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgJyArICgkcnVsZUVycikgKyAnLnNjaGVtYSA9ICcgKyAoJHNjaGVtYVZhbHVlKSArICc7ICcgKyAoJHJ1bGVFcnIpICsgJy5kYXRhID0gJyArICgkZGF0YSkgKyAnOyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICgkckRlZi5lcnJvcnMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgb3V0ICs9ICcgJyArIChkZWZfY3VzdG9tRXJyb3IpICsgJyAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIGlmICgnICsgKCRlcnJzKSArICcgPT0gZXJyb3JzKSB7ICcgKyAoZGVmX2N1c3RvbUVycm9yKSArICcgfSBlbHNlIHsgIGZvciAodmFyICcgKyAoJGkpICsgJz0nICsgKCRlcnJzKSArICc7ICcgKyAoJGkpICsgJzxlcnJvcnM7ICcgKyAoJGkpICsgJysrKSB7IHZhciAnICsgKCRydWxlRXJyKSArICcgPSB2RXJyb3JzWycgKyAoJGkpICsgJ107IGlmICgnICsgKCRydWxlRXJyKSArICcuZGF0YVBhdGggPT09IHVuZGVmaW5lZCkgJyArICgkcnVsZUVycikgKyAnLmRhdGFQYXRoID0gKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnOyBpZiAoJyArICgkcnVsZUVycikgKyAnLnNjaGVtYVBhdGggPT09IHVuZGVmaW5lZCkgeyAnICsgKCRydWxlRXJyKSArICcuc2NoZW1hUGF0aCA9IFwiJyArICgkZXJyU2NoZW1hUGF0aCkgKyAnXCI7IH0gJztcbiAgICAgICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAnICsgKCRydWxlRXJyKSArICcuc2NoZW1hID0gJyArICgkc2NoZW1hVmFsdWUpICsgJzsgJyArICgkcnVsZUVycikgKyAnLmRhdGEgPSAnICsgKCRkYXRhKSArICc7ICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnIH0gfSAnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICgkbWFjcm8pIHtcbiAgICAgIG91dCArPSAnICAgdmFyIGVyciA9ICAgJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgkZXJyb3JLZXl3b3JkIHx8ICdjdXN0b20nKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IGtleXdvcmQ6IFxcJycgKyAoJHJ1bGUua2V5d29yZCkgKyAnXFwnIH0gJztcbiAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgcGFzcyBcIicgKyAoJHJ1bGUua2V5d29yZCkgKyAnXCIga2V5d29yZCB2YWxpZGF0aW9uXFwnICc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICAgIH1cbiAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcih2RXJyb3JzKTsgJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSB2RXJyb3JzOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCRyRGVmLmVycm9ycyA9PT0gZmFsc2UpIHtcbiAgICAgICAgb3V0ICs9ICcgJyArIChkZWZfY3VzdG9tRXJyb3IpICsgJyAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgaWYgKEFycmF5LmlzQXJyYXkoJyArICgkcnVsZUVycnMpICsgJykpIHsgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSAnICsgKCRydWxlRXJycykgKyAnOyBlbHNlIHZFcnJvcnMgPSB2RXJyb3JzLmNvbmNhdCgnICsgKCRydWxlRXJycykgKyAnKTsgZXJyb3JzID0gdkVycm9ycy5sZW5ndGg7ICBmb3IgKHZhciAnICsgKCRpKSArICc9JyArICgkZXJycykgKyAnOyAnICsgKCRpKSArICc8ZXJyb3JzOyAnICsgKCRpKSArICcrKykgeyB2YXIgJyArICgkcnVsZUVycikgKyAnID0gdkVycm9yc1snICsgKCRpKSArICddOyBpZiAoJyArICgkcnVsZUVycikgKyAnLmRhdGFQYXRoID09PSB1bmRlZmluZWQpICcgKyAoJHJ1bGVFcnIpICsgJy5kYXRhUGF0aCA9IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJzsgICcgKyAoJHJ1bGVFcnIpICsgJy5zY2hlbWFQYXRoID0gXCInICsgKCRlcnJTY2hlbWFQYXRoKSArICdcIjsgICc7XG4gICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyAnICsgKCRydWxlRXJyKSArICcuc2NoZW1hID0gJyArICgkc2NoZW1hVmFsdWUpICsgJzsgJyArICgkcnVsZUVycikgKyAnLmRhdGEgPSAnICsgKCRkYXRhKSArICc7ICc7XG4gICAgICAgIH1cbiAgICAgICAgb3V0ICs9ICcgfSB9IGVsc2UgeyAnICsgKGRlZl9jdXN0b21FcnJvcikgKyAnIH0gJztcbiAgICAgIH1cbiAgICB9XG4gICAgb3V0ICs9ICcgfSAnO1xuICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICJ7XG4gICAgXCIkc2NoZW1hXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNy9zY2hlbWEjXCIsXG4gICAgXCIkaWRcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSNcIixcbiAgICBcInRpdGxlXCI6IFwiQ29yZSBzY2hlbWEgbWV0YS1zY2hlbWFcIixcbiAgICBcImRlZmluaXRpb25zXCI6IHtcbiAgICAgICAgXCJzY2hlbWFBcnJheVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7IFwiJHJlZlwiOiBcIiNcIiB9XG4gICAgICAgIH0sXG4gICAgICAgIFwibm9uTmVnYXRpdmVJbnRlZ2VyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwibWluaW11bVwiOiAwXG4gICAgICAgIH0sXG4gICAgICAgIFwibm9uTmVnYXRpdmVJbnRlZ2VyRGVmYXVsdDBcIjoge1xuICAgICAgICAgICAgXCJhbGxPZlwiOiBbXG4gICAgICAgICAgICAgICAgeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlclwiIH0sXG4gICAgICAgICAgICAgICAgeyBcImRlZmF1bHRcIjogMCB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwic2ltcGxlVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICAgICAgXCJudWxsXCIsXG4gICAgICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgICAgICBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgIFwic3RyaW5nXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzdHJpbmdBcnJheVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7IFwidHlwZVwiOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWUsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogW11cbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJ0eXBlXCI6IFtcIm9iamVjdFwiLCBcImJvb2xlYW5cIl0sXG4gICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCIkaWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaS1yZWZlcmVuY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcIiRzY2hlbWFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiJHJlZlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpLXJlZmVyZW5jZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiJGNvbW1lbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0aXRsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmYXVsdFwiOiB0cnVlLFxuICAgICAgICBcInJlYWRPbmx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBcImV4YW1wbGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtdWx0aXBsZU9mXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bWJlclwiLFxuICAgICAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IDBcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bWJlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVzaXZlTWF4aW11bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJudW1iZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVtYmVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNaW5pbXVtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bWJlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4TGVuZ3RoXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJcIiB9LFxuICAgICAgICBcIm1pbkxlbmd0aFwiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbm9uTmVnYXRpdmVJbnRlZ2VyRGVmYXVsdDBcIiB9LFxuICAgICAgICBcInBhdHRlcm5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImZvcm1hdFwiOiBcInJlZ2V4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsSXRlbXNcIjogeyBcIiRyZWZcIjogXCIjXCIgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm1heEl0ZW1zXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJcIiB9LFxuICAgICAgICBcIm1pbkl0ZW1zXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJEZWZhdWx0MFwiIH0sXG4gICAgICAgIFwidW5pcXVlSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29udGFpbnNcIjogeyBcIiRyZWZcIjogXCIjXCIgfSxcbiAgICAgICAgXCJtYXhQcm9wZXJ0aWVzXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJcIiB9LFxuICAgICAgICBcIm1pblByb3BlcnRpZXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlckRlZmF1bHQwXCIgfSxcbiAgICAgICAgXCJyZXF1aXJlZFwiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nQXJyYXlcIiB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHsgXCIkcmVmXCI6IFwiI1wiIH0sXG4gICAgICAgIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHsgXCIkcmVmXCI6IFwiI1wiIH0sXG4gICAgICAgICAgICBcImRlZmF1bHRcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHsgXCIkcmVmXCI6IFwiI1wiIH0sXG4gICAgICAgICAgICBcInByb3BlcnR5TmFtZXNcIjogeyBcImZvcm1hdFwiOiBcInJlZ2V4XCIgfSxcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nQXJyYXlcIiB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInByb3BlcnR5TmFtZXNcIjogeyBcIiRyZWZcIjogXCIjXCIgfSxcbiAgICAgICAgXCJjb25zdFwiOiB0cnVlLFxuICAgICAgICBcImVudW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NpbXBsZVR5cGVzXCIgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NpbXBsZVR5cGVzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiZm9ybWF0XCI6IHsgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgXCJjb250ZW50TWVkaWFUeXBlXCI6IHsgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgXCJjb250ZW50RW5jb2RpbmdcIjogeyBcInR5cGVcIjogXCJzdHJpbmdcIiB9LFxuICAgICAgICBcImlmXCI6IHtcIiRyZWZcIjogXCIjXCJ9LFxuICAgICAgICBcInRoZW5cIjoge1wiJHJlZlwiOiBcIiNcIn0sXG4gICAgICAgIFwiZWxzZVwiOiB7XCIkcmVmXCI6IFwiI1wifSxcbiAgICAgICAgXCJhbGxPZlwiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIiB9LFxuICAgICAgICBcImFueU9mXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiIH0sXG4gICAgICAgIFwib25lT2ZcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5XCIgfSxcbiAgICAgICAgXCJub3RcIjogeyBcIiRyZWZcIjogXCIjXCIgfVxuICAgIH0sXG4gICAgXCJkZWZhdWx0XCI6IHRydWVcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBtZXRhU2NoZW1hID0gcmVxdWlyZSgnLi9yZWZzL2pzb24tc2NoZW1hLWRyYWZ0LTA3Lmpzb24nKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICRpZDogJ2h0dHBzOi8vZ2l0aHViLmNvbS9hanYtdmFsaWRhdG9yL2Fqdi9ibG9iL21hc3Rlci9saWIvZGVmaW5pdGlvbl9zY2hlbWEuanMnLFxuICBkZWZpbml0aW9uczoge1xuICAgIHNpbXBsZVR5cGVzOiBtZXRhU2NoZW1hLmRlZmluaXRpb25zLnNpbXBsZVR5cGVzXG4gIH0sXG4gIHR5cGU6ICdvYmplY3QnLFxuICBkZXBlbmRlbmNpZXM6IHtcbiAgICBzY2hlbWE6IFsndmFsaWRhdGUnXSxcbiAgICAkZGF0YTogWyd2YWxpZGF0ZSddLFxuICAgIHN0YXRlbWVudHM6IFsnaW5saW5lJ10sXG4gICAgdmFsaWQ6IHtub3Q6IHtyZXF1aXJlZDogWydtYWNybyddfX1cbiAgfSxcbiAgcHJvcGVydGllczoge1xuICAgIHR5cGU6IG1ldGFTY2hlbWEucHJvcGVydGllcy50eXBlLFxuICAgIHNjaGVtYToge3R5cGU6ICdib29sZWFuJ30sXG4gICAgc3RhdGVtZW50czoge3R5cGU6ICdib29sZWFuJ30sXG4gICAgZGVwZW5kZW5jaWVzOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgaXRlbXM6IHt0eXBlOiAnc3RyaW5nJ31cbiAgICB9LFxuICAgIG1ldGFTY2hlbWE6IHt0eXBlOiAnb2JqZWN0J30sXG4gICAgbW9kaWZ5aW5nOiB7dHlwZTogJ2Jvb2xlYW4nfSxcbiAgICB2YWxpZDoge3R5cGU6ICdib29sZWFuJ30sXG4gICAgJGRhdGE6IHt0eXBlOiAnYm9vbGVhbid9LFxuICAgIGFzeW5jOiB7dHlwZTogJ2Jvb2xlYW4nfSxcbiAgICBlcnJvcnM6IHtcbiAgICAgIGFueU9mOiBbXG4gICAgICAgIHt0eXBlOiAnYm9vbGVhbid9LFxuICAgICAgICB7Y29uc3Q6ICdmdWxsJ31cbiAgICAgIF1cbiAgICB9XG4gIH1cbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgSURFTlRJRklFUiA9IC9eW2Etel8kXVthLXowLTlfJC1dKiQvaTtcbnZhciBjdXN0b21SdWxlQ29kZSA9IHJlcXVpcmUoJy4vZG90anMvY3VzdG9tJyk7XG52YXIgZGVmaW5pdGlvblNjaGVtYSA9IHJlcXVpcmUoJy4vZGVmaW5pdGlvbl9zY2hlbWEnKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGFkZDogYWRkS2V5d29yZCxcbiAgZ2V0OiBnZXRLZXl3b3JkLFxuICByZW1vdmU6IHJlbW92ZUtleXdvcmQsXG4gIHZhbGlkYXRlOiB2YWxpZGF0ZUtleXdvcmRcbn07XG5cblxuLyoqXG4gKiBEZWZpbmUgY3VzdG9tIGtleXdvcmRcbiAqIEB0aGlzICBBanZcbiAqIEBwYXJhbSB7U3RyaW5nfSBrZXl3b3JkIGN1c3RvbSBrZXl3b3JkLCBzaG91bGQgYmUgdW5pcXVlIChpbmNsdWRpbmcgZGlmZmVyZW50IGZyb20gYWxsIHN0YW5kYXJkLCBjdXN0b20gYW5kIG1hY3JvIGtleXdvcmRzKS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBkZWZpbml0aW9uIGtleXdvcmQgZGVmaW5pdGlvbiBvYmplY3Qgd2l0aCBwcm9wZXJ0aWVzIGB0eXBlYCAodHlwZShzKSB3aGljaCB0aGUga2V5d29yZCBhcHBsaWVzIHRvKSwgYHZhbGlkYXRlYCBvciBgY29tcGlsZWAuXG4gKiBAcmV0dXJuIHtBanZ9IHRoaXMgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICovXG5mdW5jdGlvbiBhZGRLZXl3b3JkKGtleXdvcmQsIGRlZmluaXRpb24pIHtcbiAgLyoganNoaW50IHZhbGlkdGhpczogdHJ1ZSAqL1xuICAvKiBlc2xpbnQgbm8tc2hhZG93OiAwICovXG4gIHZhciBSVUxFUyA9IHRoaXMuUlVMRVM7XG4gIGlmIChSVUxFUy5rZXl3b3Jkc1trZXl3b3JkXSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0tleXdvcmQgJyArIGtleXdvcmQgKyAnIGlzIGFscmVhZHkgZGVmaW5lZCcpO1xuXG4gIGlmICghSURFTlRJRklFUi50ZXN0KGtleXdvcmQpKVxuICAgIHRocm93IG5ldyBFcnJvcignS2V5d29yZCAnICsga2V5d29yZCArICcgaXMgbm90IGEgdmFsaWQgaWRlbnRpZmllcicpO1xuXG4gIGlmIChkZWZpbml0aW9uKSB7XG4gICAgdGhpcy52YWxpZGF0ZUtleXdvcmQoZGVmaW5pdGlvbiwgdHJ1ZSk7XG5cbiAgICB2YXIgZGF0YVR5cGUgPSBkZWZpbml0aW9uLnR5cGU7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVR5cGUpKSB7XG4gICAgICBmb3IgKHZhciBpPTA7IGk8ZGF0YVR5cGUubGVuZ3RoOyBpKyspXG4gICAgICAgIF9hZGRSdWxlKGtleXdvcmQsIGRhdGFUeXBlW2ldLCBkZWZpbml0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgX2FkZFJ1bGUoa2V5d29yZCwgZGF0YVR5cGUsIGRlZmluaXRpb24pO1xuICAgIH1cblxuICAgIHZhciBtZXRhU2NoZW1hID0gZGVmaW5pdGlvbi5tZXRhU2NoZW1hO1xuICAgIGlmIChtZXRhU2NoZW1hKSB7XG4gICAgICBpZiAoZGVmaW5pdGlvbi4kZGF0YSAmJiB0aGlzLl9vcHRzLiRkYXRhKSB7XG4gICAgICAgIG1ldGFTY2hlbWEgPSB7XG4gICAgICAgICAgYW55T2Y6IFtcbiAgICAgICAgICAgIG1ldGFTY2hlbWEsXG4gICAgICAgICAgICB7ICckcmVmJzogJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hanYtdmFsaWRhdG9yL2Fqdi9tYXN0ZXIvbGliL3JlZnMvZGF0YS5qc29uIycgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGRlZmluaXRpb24udmFsaWRhdGVTY2hlbWEgPSB0aGlzLmNvbXBpbGUobWV0YVNjaGVtYSwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgUlVMRVMua2V5d29yZHNba2V5d29yZF0gPSBSVUxFUy5hbGxba2V5d29yZF0gPSB0cnVlO1xuXG5cbiAgZnVuY3Rpb24gX2FkZFJ1bGUoa2V5d29yZCwgZGF0YVR5cGUsIGRlZmluaXRpb24pIHtcbiAgICB2YXIgcnVsZUdyb3VwO1xuICAgIGZvciAodmFyIGk9MDsgaTxSVUxFUy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHJnID0gUlVMRVNbaV07XG4gICAgICBpZiAocmcudHlwZSA9PSBkYXRhVHlwZSkge1xuICAgICAgICBydWxlR3JvdXAgPSByZztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFydWxlR3JvdXApIHtcbiAgICAgIHJ1bGVHcm91cCA9IHsgdHlwZTogZGF0YVR5cGUsIHJ1bGVzOiBbXSB9O1xuICAgICAgUlVMRVMucHVzaChydWxlR3JvdXApO1xuICAgIH1cblxuICAgIHZhciBydWxlID0ge1xuICAgICAga2V5d29yZDoga2V5d29yZCxcbiAgICAgIGRlZmluaXRpb246IGRlZmluaXRpb24sXG4gICAgICBjdXN0b206IHRydWUsXG4gICAgICBjb2RlOiBjdXN0b21SdWxlQ29kZSxcbiAgICAgIGltcGxlbWVudHM6IGRlZmluaXRpb24uaW1wbGVtZW50c1xuICAgIH07XG4gICAgcnVsZUdyb3VwLnJ1bGVzLnB1c2gocnVsZSk7XG4gICAgUlVMRVMuY3VzdG9tW2tleXdvcmRdID0gcnVsZTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufVxuXG5cbi8qKlxuICogR2V0IGtleXdvcmRcbiAqIEB0aGlzICBBanZcbiAqIEBwYXJhbSB7U3RyaW5nfSBrZXl3b3JkIHByZS1kZWZpbmVkIG9yIGN1c3RvbSBrZXl3b3JkLlxuICogQHJldHVybiB7T2JqZWN0fEJvb2xlYW59IGN1c3RvbSBrZXl3b3JkIGRlZmluaXRpb24sIGB0cnVlYCBpZiBpdCBpcyBhIHByZWRlZmluZWQga2V5d29yZCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmZ1bmN0aW9uIGdldEtleXdvcmQoa2V5d29yZCkge1xuICAvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXG4gIHZhciBydWxlID0gdGhpcy5SVUxFUy5jdXN0b21ba2V5d29yZF07XG4gIHJldHVybiBydWxlID8gcnVsZS5kZWZpbml0aW9uIDogdGhpcy5SVUxFUy5rZXl3b3Jkc1trZXl3b3JkXSB8fCBmYWxzZTtcbn1cblxuXG4vKipcbiAqIFJlbW92ZSBrZXl3b3JkXG4gKiBAdGhpcyAgQWp2XG4gKiBAcGFyYW0ge1N0cmluZ30ga2V5d29yZCBwcmUtZGVmaW5lZCBvciBjdXN0b20ga2V5d29yZC5cbiAqIEByZXR1cm4ge0Fqdn0gdGhpcyBmb3IgbWV0aG9kIGNoYWluaW5nXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUtleXdvcmQoa2V5d29yZCkge1xuICAvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXG4gIHZhciBSVUxFUyA9IHRoaXMuUlVMRVM7XG4gIGRlbGV0ZSBSVUxFUy5rZXl3b3Jkc1trZXl3b3JkXTtcbiAgZGVsZXRlIFJVTEVTLmFsbFtrZXl3b3JkXTtcbiAgZGVsZXRlIFJVTEVTLmN1c3RvbVtrZXl3b3JkXTtcbiAgZm9yICh2YXIgaT0wOyBpPFJVTEVTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHJ1bGVzID0gUlVMRVNbaV0ucnVsZXM7XG4gICAgZm9yICh2YXIgaj0wOyBqPHJ1bGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICBpZiAocnVsZXNbal0ua2V5d29yZCA9PSBrZXl3b3JkKSB7XG4gICAgICAgIHJ1bGVzLnNwbGljZShqLCAxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB0aGlzO1xufVxuXG5cbi8qKlxuICogVmFsaWRhdGUga2V5d29yZCBkZWZpbml0aW9uXG4gKiBAdGhpcyAgQWp2XG4gKiBAcGFyYW0ge09iamVjdH0gZGVmaW5pdGlvbiBrZXl3b3JkIGRlZmluaXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtCb29sZWFufSB0aHJvd0Vycm9yIHRydWUgdG8gdGhyb3cgZXhjZXB0aW9uIGlmIGRlZmluaXRpb24gaXMgaW52YWxpZFxuICogQHJldHVybiB7Ym9vbGVhbn0gdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVLZXl3b3JkKGRlZmluaXRpb24sIHRocm93RXJyb3IpIHtcbiAgdmFsaWRhdGVLZXl3b3JkLmVycm9ycyA9IG51bGw7XG4gIHZhciB2ID0gdGhpcy5fdmFsaWRhdGVLZXl3b3JkID0gdGhpcy5fdmFsaWRhdGVLZXl3b3JkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5jb21waWxlKGRlZmluaXRpb25TY2hlbWEsIHRydWUpO1xuXG4gIGlmICh2KGRlZmluaXRpb24pKSByZXR1cm4gdHJ1ZTtcbiAgdmFsaWRhdGVLZXl3b3JkLmVycm9ycyA9IHYuZXJyb3JzO1xuICBpZiAodGhyb3dFcnJvcilcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2N1c3RvbSBrZXl3b3JkIGRlZmluaXRpb24gaXMgaW52YWxpZDogJyAgKyB0aGlzLmVycm9yc1RleHQodi5lcnJvcnMpKTtcbiAgZWxzZVxuICAgIHJldHVybiBmYWxzZTtcbn1cbiIsICJ7XG4gICAgXCIkc2NoZW1hXCI6IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNy9zY2hlbWEjXCIsXG4gICAgXCIkaWRcIjogXCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYWp2LXZhbGlkYXRvci9hanYvbWFzdGVyL2xpYi9yZWZzL2RhdGEuanNvbiNcIixcbiAgICBcImRlc2NyaXB0aW9uXCI6IFwiTWV0YS1zY2hlbWEgZm9yICRkYXRhIHJlZmVyZW5jZSAoSlNPTiBTY2hlbWEgZXh0ZW5zaW9uIHByb3Bvc2FsKVwiLFxuICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgIFwicmVxdWlyZWRcIjogWyBcIiRkYXRhXCIgXSxcbiAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIiRkYXRhXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgeyBcImZvcm1hdFwiOiBcInJlbGF0aXZlLWpzb24tcG9pbnRlclwiIH0sIFxuICAgICAgICAgICAgICAgIHsgXCJmb3JtYXRcIjogXCJqc29uLXBvaW50ZXJcIiB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2Vcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjb21waWxlU2NoZW1hID0gcmVxdWlyZSgnLi9jb21waWxlJylcbiAgLCByZXNvbHZlID0gcmVxdWlyZSgnLi9jb21waWxlL3Jlc29sdmUnKVxuICAsIENhY2hlID0gcmVxdWlyZSgnLi9jYWNoZScpXG4gICwgU2NoZW1hT2JqZWN0ID0gcmVxdWlyZSgnLi9jb21waWxlL3NjaGVtYV9vYmonKVxuICAsIHN0YWJsZVN0cmluZ2lmeSA9IHJlcXVpcmUoJ2Zhc3QtanNvbi1zdGFibGUtc3RyaW5naWZ5JylcbiAgLCBmb3JtYXRzID0gcmVxdWlyZSgnLi9jb21waWxlL2Zvcm1hdHMnKVxuICAsIHJ1bGVzID0gcmVxdWlyZSgnLi9jb21waWxlL3J1bGVzJylcbiAgLCAkZGF0YU1ldGFTY2hlbWEgPSByZXF1aXJlKCcuL2RhdGEnKVxuICAsIHV0aWwgPSByZXF1aXJlKCcuL2NvbXBpbGUvdXRpbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFqdjtcblxuQWp2LnByb3RvdHlwZS52YWxpZGF0ZSA9IHZhbGlkYXRlO1xuQWp2LnByb3RvdHlwZS5jb21waWxlID0gY29tcGlsZTtcbkFqdi5wcm90b3R5cGUuYWRkU2NoZW1hID0gYWRkU2NoZW1hO1xuQWp2LnByb3RvdHlwZS5hZGRNZXRhU2NoZW1hID0gYWRkTWV0YVNjaGVtYTtcbkFqdi5wcm90b3R5cGUudmFsaWRhdGVTY2hlbWEgPSB2YWxpZGF0ZVNjaGVtYTtcbkFqdi5wcm90b3R5cGUuZ2V0U2NoZW1hID0gZ2V0U2NoZW1hO1xuQWp2LnByb3RvdHlwZS5yZW1vdmVTY2hlbWEgPSByZW1vdmVTY2hlbWE7XG5BanYucHJvdG90eXBlLmFkZEZvcm1hdCA9IGFkZEZvcm1hdDtcbkFqdi5wcm90b3R5cGUuZXJyb3JzVGV4dCA9IGVycm9yc1RleHQ7XG5cbkFqdi5wcm90b3R5cGUuX2FkZFNjaGVtYSA9IF9hZGRTY2hlbWE7XG5BanYucHJvdG90eXBlLl9jb21waWxlID0gX2NvbXBpbGU7XG5cbkFqdi5wcm90b3R5cGUuY29tcGlsZUFzeW5jID0gcmVxdWlyZSgnLi9jb21waWxlL2FzeW5jJyk7XG52YXIgY3VzdG9tS2V5d29yZCA9IHJlcXVpcmUoJy4va2V5d29yZCcpO1xuQWp2LnByb3RvdHlwZS5hZGRLZXl3b3JkID0gY3VzdG9tS2V5d29yZC5hZGQ7XG5BanYucHJvdG90eXBlLmdldEtleXdvcmQgPSBjdXN0b21LZXl3b3JkLmdldDtcbkFqdi5wcm90b3R5cGUucmVtb3ZlS2V5d29yZCA9IGN1c3RvbUtleXdvcmQucmVtb3ZlO1xuQWp2LnByb3RvdHlwZS52YWxpZGF0ZUtleXdvcmQgPSBjdXN0b21LZXl3b3JkLnZhbGlkYXRlO1xuXG52YXIgZXJyb3JDbGFzc2VzID0gcmVxdWlyZSgnLi9jb21waWxlL2Vycm9yX2NsYXNzZXMnKTtcbkFqdi5WYWxpZGF0aW9uRXJyb3IgPSBlcnJvckNsYXNzZXMuVmFsaWRhdGlvbjtcbkFqdi5NaXNzaW5nUmVmRXJyb3IgPSBlcnJvckNsYXNzZXMuTWlzc2luZ1JlZjtcbkFqdi4kZGF0YU1ldGFTY2hlbWEgPSAkZGF0YU1ldGFTY2hlbWE7XG5cbnZhciBNRVRBX1NDSEVNQV9JRCA9ICdodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSc7XG5cbnZhciBNRVRBX0lHTk9SRV9PUFRJT05TID0gWyAncmVtb3ZlQWRkaXRpb25hbCcsICd1c2VEZWZhdWx0cycsICdjb2VyY2VUeXBlcycsICdzdHJpY3REZWZhdWx0cycgXTtcbnZhciBNRVRBX1NVUFBPUlRfREFUQSA9IFsnL3Byb3BlcnRpZXMnXTtcblxuLyoqXG4gKiBDcmVhdGVzIHZhbGlkYXRvciBpbnN0YW5jZS5cbiAqIFVzYWdlOiBgQWp2KG9wdHMpYFxuICogQHBhcmFtIHtPYmplY3R9IG9wdHMgb3B0aW9uYWwgb3B0aW9uc1xuICogQHJldHVybiB7T2JqZWN0fSBhanYgaW5zdGFuY2VcbiAqL1xuZnVuY3Rpb24gQWp2KG9wdHMpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIEFqdikpIHJldHVybiBuZXcgQWp2KG9wdHMpO1xuICBvcHRzID0gdGhpcy5fb3B0cyA9IHV0aWwuY29weShvcHRzKSB8fCB7fTtcbiAgc2V0TG9nZ2VyKHRoaXMpO1xuICB0aGlzLl9zY2hlbWFzID0ge307XG4gIHRoaXMuX3JlZnMgPSB7fTtcbiAgdGhpcy5fZnJhZ21lbnRzID0ge307XG4gIHRoaXMuX2Zvcm1hdHMgPSBmb3JtYXRzKG9wdHMuZm9ybWF0KTtcblxuICB0aGlzLl9jYWNoZSA9IG9wdHMuY2FjaGUgfHwgbmV3IENhY2hlO1xuICB0aGlzLl9sb2FkaW5nU2NoZW1hcyA9IHt9O1xuICB0aGlzLl9jb21waWxhdGlvbnMgPSBbXTtcbiAgdGhpcy5SVUxFUyA9IHJ1bGVzKCk7XG4gIHRoaXMuX2dldElkID0gY2hvb3NlR2V0SWQob3B0cyk7XG5cbiAgb3B0cy5sb29wUmVxdWlyZWQgPSBvcHRzLmxvb3BSZXF1aXJlZCB8fCBJbmZpbml0eTtcbiAgaWYgKG9wdHMuZXJyb3JEYXRhUGF0aCA9PSAncHJvcGVydHknKSBvcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkgPSB0cnVlO1xuICBpZiAob3B0cy5zZXJpYWxpemUgPT09IHVuZGVmaW5lZCkgb3B0cy5zZXJpYWxpemUgPSBzdGFibGVTdHJpbmdpZnk7XG4gIHRoaXMuX21ldGFPcHRzID0gZ2V0TWV0YVNjaGVtYU9wdGlvbnModGhpcyk7XG5cbiAgaWYgKG9wdHMuZm9ybWF0cykgYWRkSW5pdGlhbEZvcm1hdHModGhpcyk7XG4gIGlmIChvcHRzLmtleXdvcmRzKSBhZGRJbml0aWFsS2V5d29yZHModGhpcyk7XG4gIGFkZERlZmF1bHRNZXRhU2NoZW1hKHRoaXMpO1xuICBpZiAodHlwZW9mIG9wdHMubWV0YSA9PSAnb2JqZWN0JykgdGhpcy5hZGRNZXRhU2NoZW1hKG9wdHMubWV0YSk7XG4gIGlmIChvcHRzLm51bGxhYmxlKSB0aGlzLmFkZEtleXdvcmQoJ251bGxhYmxlJywge21ldGFTY2hlbWE6IHt0eXBlOiAnYm9vbGVhbid9fSk7XG4gIGFkZEluaXRpYWxTY2hlbWFzKHRoaXMpO1xufVxuXG5cblxuLyoqXG4gKiBWYWxpZGF0ZSBkYXRhIHVzaW5nIHNjaGVtYVxuICogU2NoZW1hIHdpbGwgYmUgY29tcGlsZWQgYW5kIGNhY2hlZCAodXNpbmcgc2VyaWFsaXplZCBKU09OIGFzIGtleS4gW2Zhc3QtanNvbi1zdGFibGUtc3RyaW5naWZ5XShodHRwczovL2dpdGh1Yi5jb20vZXBvYmVyZXpraW4vZmFzdC1qc29uLXN0YWJsZS1zdHJpbmdpZnkpIGlzIHVzZWQgdG8gc2VyaWFsaXplLlxuICogQHRoaXMgICBBanZcbiAqIEBwYXJhbSAge1N0cmluZ3xPYmplY3R9IHNjaGVtYUtleVJlZiBrZXksIHJlZiBvciBzY2hlbWEgb2JqZWN0XG4gKiBAcGFyYW0gIHtBbnl9IGRhdGEgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJuIHtCb29sZWFufSB2YWxpZGF0aW9uIHJlc3VsdC4gRXJyb3JzIGZyb20gdGhlIGxhc3QgdmFsaWRhdGlvbiB3aWxsIGJlIGF2YWlsYWJsZSBpbiBgYWp2LmVycm9yc2AgKGFuZCBhbHNvIGluIGNvbXBpbGVkIHNjaGVtYTogYHNjaGVtYS5lcnJvcnNgKS5cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGUoc2NoZW1hS2V5UmVmLCBkYXRhKSB7XG4gIHZhciB2O1xuICBpZiAodHlwZW9mIHNjaGVtYUtleVJlZiA9PSAnc3RyaW5nJykge1xuICAgIHYgPSB0aGlzLmdldFNjaGVtYShzY2hlbWFLZXlSZWYpO1xuICAgIGlmICghdikgdGhyb3cgbmV3IEVycm9yKCdubyBzY2hlbWEgd2l0aCBrZXkgb3IgcmVmIFwiJyArIHNjaGVtYUtleVJlZiArICdcIicpO1xuICB9IGVsc2Uge1xuICAgIHZhciBzY2hlbWFPYmogPSB0aGlzLl9hZGRTY2hlbWEoc2NoZW1hS2V5UmVmKTtcbiAgICB2ID0gc2NoZW1hT2JqLnZhbGlkYXRlIHx8IHRoaXMuX2NvbXBpbGUoc2NoZW1hT2JqKTtcbiAgfVxuXG4gIHZhciB2YWxpZCA9IHYoZGF0YSk7XG4gIGlmICh2LiRhc3luYyAhPT0gdHJ1ZSkgdGhpcy5lcnJvcnMgPSB2LmVycm9ycztcbiAgcmV0dXJuIHZhbGlkO1xufVxuXG5cbi8qKlxuICogQ3JlYXRlIHZhbGlkYXRpbmcgZnVuY3Rpb24gZm9yIHBhc3NlZCBzY2hlbWEuXG4gKiBAdGhpcyAgIEFqdlxuICogQHBhcmFtICB7T2JqZWN0fSBzY2hlbWEgc2NoZW1hIG9iamVjdFxuICogQHBhcmFtICB7Qm9vbGVhbn0gX21ldGEgdHJ1ZSBpZiBzY2hlbWEgaXMgYSBtZXRhLXNjaGVtYS4gVXNlZCBpbnRlcm5hbGx5IHRvIGNvbXBpbGUgbWV0YSBzY2hlbWFzIG9mIGN1c3RvbSBrZXl3b3Jkcy5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSB2YWxpZGF0aW5nIGZ1bmN0aW9uXG4gKi9cbmZ1bmN0aW9uIGNvbXBpbGUoc2NoZW1hLCBfbWV0YSkge1xuICB2YXIgc2NoZW1hT2JqID0gdGhpcy5fYWRkU2NoZW1hKHNjaGVtYSwgdW5kZWZpbmVkLCBfbWV0YSk7XG4gIHJldHVybiBzY2hlbWFPYmoudmFsaWRhdGUgfHwgdGhpcy5fY29tcGlsZShzY2hlbWFPYmopO1xufVxuXG5cbi8qKlxuICogQWRkcyBzY2hlbWEgdG8gdGhlIGluc3RhbmNlLlxuICogQHRoaXMgICBBanZcbiAqIEBwYXJhbSB7T2JqZWN0fEFycmF5fSBzY2hlbWEgc2NoZW1hIG9yIGFycmF5IG9mIHNjaGVtYXMuIElmIGFycmF5IGlzIHBhc3NlZCwgYGtleWAgYW5kIG90aGVyIHBhcmFtZXRlcnMgd2lsbCBiZSBpZ25vcmVkLlxuICogQHBhcmFtIHtTdHJpbmd9IGtleSBPcHRpb25hbCBzY2hlbWEga2V5LiBDYW4gYmUgcGFzc2VkIHRvIGB2YWxpZGF0ZWAgbWV0aG9kIGluc3RlYWQgb2Ygc2NoZW1hIG9iamVjdCBvciBpZC9yZWYuIE9uZSBzY2hlbWEgcGVyIGluc3RhbmNlIGNhbiBoYXZlIGVtcHR5IGBpZGAgYW5kIGBrZXlgLlxuICogQHBhcmFtIHtCb29sZWFufSBfc2tpcFZhbGlkYXRpb24gdHJ1ZSB0byBza2lwIHNjaGVtYSB2YWxpZGF0aW9uLiBVc2VkIGludGVybmFsbHksIG9wdGlvbiB2YWxpZGF0ZVNjaGVtYSBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkLlxuICogQHBhcmFtIHtCb29sZWFufSBfbWV0YSB0cnVlIGlmIHNjaGVtYSBpcyBhIG1ldGEtc2NoZW1hLiBVc2VkIGludGVybmFsbHksIGFkZE1ldGFTY2hlbWEgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZC5cbiAqIEByZXR1cm4ge0Fqdn0gdGhpcyBmb3IgbWV0aG9kIGNoYWluaW5nXG4gKi9cbmZ1bmN0aW9uIGFkZFNjaGVtYShzY2hlbWEsIGtleSwgX3NraXBWYWxpZGF0aW9uLCBfbWV0YSkge1xuICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEpKXtcbiAgICBmb3IgKHZhciBpPTA7IGk8c2NoZW1hLmxlbmd0aDsgaSsrKSB0aGlzLmFkZFNjaGVtYShzY2hlbWFbaV0sIHVuZGVmaW5lZCwgX3NraXBWYWxpZGF0aW9uLCBfbWV0YSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgdmFyIGlkID0gdGhpcy5fZ2V0SWQoc2NoZW1hKTtcbiAgaWYgKGlkICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGlkICE9ICdzdHJpbmcnKVxuICAgIHRocm93IG5ldyBFcnJvcignc2NoZW1hIGlkIG11c3QgYmUgc3RyaW5nJyk7XG4gIGtleSA9IHJlc29sdmUubm9ybWFsaXplSWQoa2V5IHx8IGlkKTtcbiAgY2hlY2tVbmlxdWUodGhpcywga2V5KTtcbiAgdGhpcy5fc2NoZW1hc1trZXldID0gdGhpcy5fYWRkU2NoZW1hKHNjaGVtYSwgX3NraXBWYWxpZGF0aW9uLCBfbWV0YSwgdHJ1ZSk7XG4gIHJldHVybiB0aGlzO1xufVxuXG5cbi8qKlxuICogQWRkIHNjaGVtYSB0aGF0IHdpbGwgYmUgdXNlZCB0byB2YWxpZGF0ZSBvdGhlciBzY2hlbWFzXG4gKiBvcHRpb25zIGluIE1FVEFfSUdOT1JFX09QVElPTlMgYXJlIGFsd2F5IHNldCB0byBmYWxzZVxuICogQHRoaXMgICBBanZcbiAqIEBwYXJhbSB7T2JqZWN0fSBzY2hlbWEgc2NoZW1hIG9iamVjdFxuICogQHBhcmFtIHtTdHJpbmd9IGtleSBvcHRpb25hbCBzY2hlbWEga2V5XG4gKiBAcGFyYW0ge0Jvb2xlYW59IHNraXBWYWxpZGF0aW9uIHRydWUgdG8gc2tpcCBzY2hlbWEgdmFsaWRhdGlvbiwgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdmFsaWRhdGVTY2hlbWEgb3B0aW9uIGZvciBtZXRhLXNjaGVtYVxuICogQHJldHVybiB7QWp2fSB0aGlzIGZvciBtZXRob2QgY2hhaW5pbmdcbiAqL1xuZnVuY3Rpb24gYWRkTWV0YVNjaGVtYShzY2hlbWEsIGtleSwgc2tpcFZhbGlkYXRpb24pIHtcbiAgdGhpcy5hZGRTY2hlbWEoc2NoZW1hLCBrZXksIHNraXBWYWxpZGF0aW9uLCB0cnVlKTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cblxuLyoqXG4gKiBWYWxpZGF0ZSBzY2hlbWFcbiAqIEB0aGlzICAgQWp2XG4gKiBAcGFyYW0ge09iamVjdH0gc2NoZW1hIHNjaGVtYSB0byB2YWxpZGF0ZVxuICogQHBhcmFtIHtCb29sZWFufSB0aHJvd09yTG9nRXJyb3IgcGFzcyB0cnVlIHRvIHRocm93IChvciBsb2cpIGFuIGVycm9yIGlmIGludmFsaWRcbiAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgaWYgc2NoZW1hIGlzIHZhbGlkXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlU2NoZW1hKHNjaGVtYSwgdGhyb3dPckxvZ0Vycm9yKSB7XG4gIHZhciAkc2NoZW1hID0gc2NoZW1hLiRzY2hlbWE7XG4gIGlmICgkc2NoZW1hICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mICRzY2hlbWEgIT0gJ3N0cmluZycpXG4gICAgdGhyb3cgbmV3IEVycm9yKCckc2NoZW1hIG11c3QgYmUgYSBzdHJpbmcnKTtcbiAgJHNjaGVtYSA9ICRzY2hlbWEgfHwgdGhpcy5fb3B0cy5kZWZhdWx0TWV0YSB8fCBkZWZhdWx0TWV0YSh0aGlzKTtcbiAgaWYgKCEkc2NoZW1hKSB7XG4gICAgdGhpcy5sb2dnZXIud2FybignbWV0YS1zY2hlbWEgbm90IGF2YWlsYWJsZScpO1xuICAgIHRoaXMuZXJyb3JzID0gbnVsbDtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICB2YXIgdmFsaWQgPSB0aGlzLnZhbGlkYXRlKCRzY2hlbWEsIHNjaGVtYSk7XG4gIGlmICghdmFsaWQgJiYgdGhyb3dPckxvZ0Vycm9yKSB7XG4gICAgdmFyIG1lc3NhZ2UgPSAnc2NoZW1hIGlzIGludmFsaWQ6ICcgKyB0aGlzLmVycm9yc1RleHQoKTtcbiAgICBpZiAodGhpcy5fb3B0cy52YWxpZGF0ZVNjaGVtYSA9PSAnbG9nJykgdGhpcy5sb2dnZXIuZXJyb3IobWVzc2FnZSk7XG4gICAgZWxzZSB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH1cbiAgcmV0dXJuIHZhbGlkO1xufVxuXG5cbmZ1bmN0aW9uIGRlZmF1bHRNZXRhKHNlbGYpIHtcbiAgdmFyIG1ldGEgPSBzZWxmLl9vcHRzLm1ldGE7XG4gIHNlbGYuX29wdHMuZGVmYXVsdE1ldGEgPSB0eXBlb2YgbWV0YSA9PSAnb2JqZWN0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc2VsZi5fZ2V0SWQobWV0YSkgfHwgbWV0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc2VsZi5nZXRTY2hlbWEoTUVUQV9TQ0hFTUFfSUQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IE1FVEFfU0NIRU1BX0lEXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIHNlbGYuX29wdHMuZGVmYXVsdE1ldGE7XG59XG5cblxuLyoqXG4gKiBHZXQgY29tcGlsZWQgc2NoZW1hIGZyb20gdGhlIGluc3RhbmNlIGJ5IGBrZXlgIG9yIGByZWZgLlxuICogQHRoaXMgICBBanZcbiAqIEBwYXJhbSAge1N0cmluZ30ga2V5UmVmIGBrZXlgIHRoYXQgd2FzIHBhc3NlZCB0byBgYWRkU2NoZW1hYCBvciBmdWxsIHNjaGVtYSByZWZlcmVuY2UgKGBzY2hlbWEuaWRgIG9yIHJlc29sdmVkIGlkKS5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBzY2hlbWEgdmFsaWRhdGluZyBmdW5jdGlvbiAod2l0aCBwcm9wZXJ0eSBgc2NoZW1hYCkuXG4gKi9cbmZ1bmN0aW9uIGdldFNjaGVtYShrZXlSZWYpIHtcbiAgdmFyIHNjaGVtYU9iaiA9IF9nZXRTY2hlbWFPYmoodGhpcywga2V5UmVmKTtcbiAgc3dpdGNoICh0eXBlb2Ygc2NoZW1hT2JqKSB7XG4gICAgY2FzZSAnb2JqZWN0JzogcmV0dXJuIHNjaGVtYU9iai52YWxpZGF0ZSB8fCB0aGlzLl9jb21waWxlKHNjaGVtYU9iaik7XG4gICAgY2FzZSAnc3RyaW5nJzogcmV0dXJuIHRoaXMuZ2V0U2NoZW1hKHNjaGVtYU9iaik7XG4gICAgY2FzZSAndW5kZWZpbmVkJzogcmV0dXJuIF9nZXRTY2hlbWFGcmFnbWVudCh0aGlzLCBrZXlSZWYpO1xuICB9XG59XG5cblxuZnVuY3Rpb24gX2dldFNjaGVtYUZyYWdtZW50KHNlbGYsIHJlZikge1xuICB2YXIgcmVzID0gcmVzb2x2ZS5zY2hlbWEuY2FsbChzZWxmLCB7IHNjaGVtYToge30gfSwgcmVmKTtcbiAgaWYgKHJlcykge1xuICAgIHZhciBzY2hlbWEgPSByZXMuc2NoZW1hXG4gICAgICAsIHJvb3QgPSByZXMucm9vdFxuICAgICAgLCBiYXNlSWQgPSByZXMuYmFzZUlkO1xuICAgIHZhciB2ID0gY29tcGlsZVNjaGVtYS5jYWxsKHNlbGYsIHNjaGVtYSwgcm9vdCwgdW5kZWZpbmVkLCBiYXNlSWQpO1xuICAgIHNlbGYuX2ZyYWdtZW50c1tyZWZdID0gbmV3IFNjaGVtYU9iamVjdCh7XG4gICAgICByZWY6IHJlZixcbiAgICAgIGZyYWdtZW50OiB0cnVlLFxuICAgICAgc2NoZW1hOiBzY2hlbWEsXG4gICAgICByb290OiByb290LFxuICAgICAgYmFzZUlkOiBiYXNlSWQsXG4gICAgICB2YWxpZGF0ZTogdlxuICAgIH0pO1xuICAgIHJldHVybiB2O1xuICB9XG59XG5cblxuZnVuY3Rpb24gX2dldFNjaGVtYU9iaihzZWxmLCBrZXlSZWYpIHtcbiAga2V5UmVmID0gcmVzb2x2ZS5ub3JtYWxpemVJZChrZXlSZWYpO1xuICByZXR1cm4gc2VsZi5fc2NoZW1hc1trZXlSZWZdIHx8IHNlbGYuX3JlZnNba2V5UmVmXSB8fCBzZWxmLl9mcmFnbWVudHNba2V5UmVmXTtcbn1cblxuXG4vKipcbiAqIFJlbW92ZSBjYWNoZWQgc2NoZW1hKHMpLlxuICogSWYgbm8gcGFyYW1ldGVyIGlzIHBhc3NlZCBhbGwgc2NoZW1hcyBidXQgbWV0YS1zY2hlbWFzIGFyZSByZW1vdmVkLlxuICogSWYgUmVnRXhwIGlzIHBhc3NlZCBhbGwgc2NoZW1hcyB3aXRoIGtleS9pZCBtYXRjaGluZyBwYXR0ZXJuIGJ1dCBtZXRhLXNjaGVtYXMgYXJlIHJlbW92ZWQuXG4gKiBFdmVuIGlmIHNjaGVtYSBpcyByZWZlcmVuY2VkIGJ5IG90aGVyIHNjaGVtYXMgaXQgc3RpbGwgY2FuIGJlIHJlbW92ZWQgYXMgb3RoZXIgc2NoZW1hcyBoYXZlIGxvY2FsIHJlZmVyZW5jZXMuXG4gKiBAdGhpcyAgIEFqdlxuICogQHBhcmFtICB7U3RyaW5nfE9iamVjdHxSZWdFeHB9IHNjaGVtYUtleVJlZiBrZXksIHJlZiwgcGF0dGVybiB0byBtYXRjaCBrZXkvcmVmIG9yIHNjaGVtYSBvYmplY3RcbiAqIEByZXR1cm4ge0Fqdn0gdGhpcyBmb3IgbWV0aG9kIGNoYWluaW5nXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZVNjaGVtYShzY2hlbWFLZXlSZWYpIHtcbiAgaWYgKHNjaGVtYUtleVJlZiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgIF9yZW1vdmVBbGxTY2hlbWFzKHRoaXMsIHRoaXMuX3NjaGVtYXMsIHNjaGVtYUtleVJlZik7XG4gICAgX3JlbW92ZUFsbFNjaGVtYXModGhpcywgdGhpcy5fcmVmcywgc2NoZW1hS2V5UmVmKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBzd2l0Y2ggKHR5cGVvZiBzY2hlbWFLZXlSZWYpIHtcbiAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgX3JlbW92ZUFsbFNjaGVtYXModGhpcywgdGhpcy5fc2NoZW1hcyk7XG4gICAgICBfcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLCB0aGlzLl9yZWZzKTtcbiAgICAgIHRoaXMuX2NhY2hlLmNsZWFyKCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgdmFyIHNjaGVtYU9iaiA9IF9nZXRTY2hlbWFPYmoodGhpcywgc2NoZW1hS2V5UmVmKTtcbiAgICAgIGlmIChzY2hlbWFPYmopIHRoaXMuX2NhY2hlLmRlbChzY2hlbWFPYmouY2FjaGVLZXkpO1xuICAgICAgZGVsZXRlIHRoaXMuX3NjaGVtYXNbc2NoZW1hS2V5UmVmXTtcbiAgICAgIGRlbGV0ZSB0aGlzLl9yZWZzW3NjaGVtYUtleVJlZl07XG4gICAgICByZXR1cm4gdGhpcztcbiAgICBjYXNlICdvYmplY3QnOlxuICAgICAgdmFyIHNlcmlhbGl6ZSA9IHRoaXMuX29wdHMuc2VyaWFsaXplO1xuICAgICAgdmFyIGNhY2hlS2V5ID0gc2VyaWFsaXplID8gc2VyaWFsaXplKHNjaGVtYUtleVJlZikgOiBzY2hlbWFLZXlSZWY7XG4gICAgICB0aGlzLl9jYWNoZS5kZWwoY2FjaGVLZXkpO1xuICAgICAgdmFyIGlkID0gdGhpcy5fZ2V0SWQoc2NoZW1hS2V5UmVmKTtcbiAgICAgIGlmIChpZCkge1xuICAgICAgICBpZCA9IHJlc29sdmUubm9ybWFsaXplSWQoaWQpO1xuICAgICAgICBkZWxldGUgdGhpcy5fc2NoZW1hc1tpZF07XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9yZWZzW2lkXTtcbiAgICAgIH1cbiAgfVxuICByZXR1cm4gdGhpcztcbn1cblxuXG5mdW5jdGlvbiBfcmVtb3ZlQWxsU2NoZW1hcyhzZWxmLCBzY2hlbWFzLCByZWdleCkge1xuICBmb3IgKHZhciBrZXlSZWYgaW4gc2NoZW1hcykge1xuICAgIHZhciBzY2hlbWFPYmogPSBzY2hlbWFzW2tleVJlZl07XG4gICAgaWYgKCFzY2hlbWFPYmoubWV0YSAmJiAoIXJlZ2V4IHx8IHJlZ2V4LnRlc3Qoa2V5UmVmKSkpIHtcbiAgICAgIHNlbGYuX2NhY2hlLmRlbChzY2hlbWFPYmouY2FjaGVLZXkpO1xuICAgICAgZGVsZXRlIHNjaGVtYXNba2V5UmVmXTtcbiAgICB9XG4gIH1cbn1cblxuXG4vKiBAdGhpcyAgIEFqdiAqL1xuZnVuY3Rpb24gX2FkZFNjaGVtYShzY2hlbWEsIHNraXBWYWxpZGF0aW9uLCBtZXRhLCBzaG91bGRBZGRTY2hlbWEpIHtcbiAgaWYgKHR5cGVvZiBzY2hlbWEgIT0gJ29iamVjdCcgJiYgdHlwZW9mIHNjaGVtYSAhPSAnYm9vbGVhbicpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdzY2hlbWEgc2hvdWxkIGJlIG9iamVjdCBvciBib29sZWFuJyk7XG4gIHZhciBzZXJpYWxpemUgPSB0aGlzLl9vcHRzLnNlcmlhbGl6ZTtcbiAgdmFyIGNhY2hlS2V5ID0gc2VyaWFsaXplID8gc2VyaWFsaXplKHNjaGVtYSkgOiBzY2hlbWE7XG4gIHZhciBjYWNoZWQgPSB0aGlzLl9jYWNoZS5nZXQoY2FjaGVLZXkpO1xuICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkO1xuXG4gIHNob3VsZEFkZFNjaGVtYSA9IHNob3VsZEFkZFNjaGVtYSB8fCB0aGlzLl9vcHRzLmFkZFVzZWRTY2hlbWEgIT09IGZhbHNlO1xuXG4gIHZhciBpZCA9IHJlc29sdmUubm9ybWFsaXplSWQodGhpcy5fZ2V0SWQoc2NoZW1hKSk7XG4gIGlmIChpZCAmJiBzaG91bGRBZGRTY2hlbWEpIGNoZWNrVW5pcXVlKHRoaXMsIGlkKTtcblxuICB2YXIgd2lsbFZhbGlkYXRlID0gdGhpcy5fb3B0cy52YWxpZGF0ZVNjaGVtYSAhPT0gZmFsc2UgJiYgIXNraXBWYWxpZGF0aW9uO1xuICB2YXIgcmVjdXJzaXZlTWV0YTtcbiAgaWYgKHdpbGxWYWxpZGF0ZSAmJiAhKHJlY3Vyc2l2ZU1ldGEgPSBpZCAmJiBpZCA9PSByZXNvbHZlLm5vcm1hbGl6ZUlkKHNjaGVtYS4kc2NoZW1hKSkpXG4gICAgdGhpcy52YWxpZGF0ZVNjaGVtYShzY2hlbWEsIHRydWUpO1xuXG4gIHZhciBsb2NhbFJlZnMgPSByZXNvbHZlLmlkcy5jYWxsKHRoaXMsIHNjaGVtYSk7XG5cbiAgdmFyIHNjaGVtYU9iaiA9IG5ldyBTY2hlbWFPYmplY3Qoe1xuICAgIGlkOiBpZCxcbiAgICBzY2hlbWE6IHNjaGVtYSxcbiAgICBsb2NhbFJlZnM6IGxvY2FsUmVmcyxcbiAgICBjYWNoZUtleTogY2FjaGVLZXksXG4gICAgbWV0YTogbWV0YVxuICB9KTtcblxuICBpZiAoaWRbMF0gIT0gJyMnICYmIHNob3VsZEFkZFNjaGVtYSkgdGhpcy5fcmVmc1tpZF0gPSBzY2hlbWFPYmo7XG4gIHRoaXMuX2NhY2hlLnB1dChjYWNoZUtleSwgc2NoZW1hT2JqKTtcblxuICBpZiAod2lsbFZhbGlkYXRlICYmIHJlY3Vyc2l2ZU1ldGEpIHRoaXMudmFsaWRhdGVTY2hlbWEoc2NoZW1hLCB0cnVlKTtcblxuICByZXR1cm4gc2NoZW1hT2JqO1xufVxuXG5cbi8qIEB0aGlzICAgQWp2ICovXG5mdW5jdGlvbiBfY29tcGlsZShzY2hlbWFPYmosIHJvb3QpIHtcbiAgaWYgKHNjaGVtYU9iai5jb21waWxpbmcpIHtcbiAgICBzY2hlbWFPYmoudmFsaWRhdGUgPSBjYWxsVmFsaWRhdGU7XG4gICAgY2FsbFZhbGlkYXRlLnNjaGVtYSA9IHNjaGVtYU9iai5zY2hlbWE7XG4gICAgY2FsbFZhbGlkYXRlLmVycm9ycyA9IG51bGw7XG4gICAgY2FsbFZhbGlkYXRlLnJvb3QgPSByb290ID8gcm9vdCA6IGNhbGxWYWxpZGF0ZTtcbiAgICBpZiAoc2NoZW1hT2JqLnNjaGVtYS4kYXN5bmMgPT09IHRydWUpXG4gICAgICBjYWxsVmFsaWRhdGUuJGFzeW5jID0gdHJ1ZTtcbiAgICByZXR1cm4gY2FsbFZhbGlkYXRlO1xuICB9XG4gIHNjaGVtYU9iai5jb21waWxpbmcgPSB0cnVlO1xuXG4gIHZhciBjdXJyZW50T3B0cztcbiAgaWYgKHNjaGVtYU9iai5tZXRhKSB7XG4gICAgY3VycmVudE9wdHMgPSB0aGlzLl9vcHRzO1xuICAgIHRoaXMuX29wdHMgPSB0aGlzLl9tZXRhT3B0cztcbiAgfVxuXG4gIHZhciB2O1xuICB0cnkgeyB2ID0gY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHNjaGVtYU9iai5zY2hlbWEsIHJvb3QsIHNjaGVtYU9iai5sb2NhbFJlZnMpOyB9XG4gIGNhdGNoKGUpIHtcbiAgICBkZWxldGUgc2NoZW1hT2JqLnZhbGlkYXRlO1xuICAgIHRocm93IGU7XG4gIH1cbiAgZmluYWxseSB7XG4gICAgc2NoZW1hT2JqLmNvbXBpbGluZyA9IGZhbHNlO1xuICAgIGlmIChzY2hlbWFPYmoubWV0YSkgdGhpcy5fb3B0cyA9IGN1cnJlbnRPcHRzO1xuICB9XG5cbiAgc2NoZW1hT2JqLnZhbGlkYXRlID0gdjtcbiAgc2NoZW1hT2JqLnJlZnMgPSB2LnJlZnM7XG4gIHNjaGVtYU9iai5yZWZWYWwgPSB2LnJlZlZhbDtcbiAgc2NoZW1hT2JqLnJvb3QgPSB2LnJvb3Q7XG4gIHJldHVybiB2O1xuXG5cbiAgLyogQHRoaXMgICB7Kn0gLSBjdXN0b20gY29udGV4dCwgc2VlIHBhc3NDb250ZXh0IG9wdGlvbiAqL1xuICBmdW5jdGlvbiBjYWxsVmFsaWRhdGUoKSB7XG4gICAgLyoganNoaW50IHZhbGlkdGhpczogdHJ1ZSAqL1xuICAgIHZhciBfdmFsaWRhdGUgPSBzY2hlbWFPYmoudmFsaWRhdGU7XG4gICAgdmFyIHJlc3VsdCA9IF92YWxpZGF0ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGNhbGxWYWxpZGF0ZS5lcnJvcnMgPSBfdmFsaWRhdGUuZXJyb3JzO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBjaG9vc2VHZXRJZChvcHRzKSB7XG4gIHN3aXRjaCAob3B0cy5zY2hlbWFJZCkge1xuICAgIGNhc2UgJ2F1dG8nOiByZXR1cm4gX2dldCRJZE9ySWQ7XG4gICAgY2FzZSAnaWQnOiByZXR1cm4gX2dldElkO1xuICAgIGRlZmF1bHQ6IHJldHVybiBfZ2V0JElkO1xuICB9XG59XG5cbi8qIEB0aGlzICAgQWp2ICovXG5mdW5jdGlvbiBfZ2V0SWQoc2NoZW1hKSB7XG4gIGlmIChzY2hlbWEuJGlkKSB0aGlzLmxvZ2dlci53YXJuKCdzY2hlbWEgJGlkIGlnbm9yZWQnLCBzY2hlbWEuJGlkKTtcbiAgcmV0dXJuIHNjaGVtYS5pZDtcbn1cblxuLyogQHRoaXMgICBBanYgKi9cbmZ1bmN0aW9uIF9nZXQkSWQoc2NoZW1hKSB7XG4gIGlmIChzY2hlbWEuaWQpIHRoaXMubG9nZ2VyLndhcm4oJ3NjaGVtYSBpZCBpZ25vcmVkJywgc2NoZW1hLmlkKTtcbiAgcmV0dXJuIHNjaGVtYS4kaWQ7XG59XG5cblxuZnVuY3Rpb24gX2dldCRJZE9ySWQoc2NoZW1hKSB7XG4gIGlmIChzY2hlbWEuJGlkICYmIHNjaGVtYS5pZCAmJiBzY2hlbWEuJGlkICE9IHNjaGVtYS5pZClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NjaGVtYSAkaWQgaXMgZGlmZmVyZW50IGZyb20gaWQnKTtcbiAgcmV0dXJuIHNjaGVtYS4kaWQgfHwgc2NoZW1hLmlkO1xufVxuXG5cbi8qKlxuICogQ29udmVydCBhcnJheSBvZiBlcnJvciBtZXNzYWdlIG9iamVjdHMgdG8gc3RyaW5nXG4gKiBAdGhpcyAgIEFqdlxuICogQHBhcmFtICB7QXJyYXk8T2JqZWN0Pn0gZXJyb3JzIG9wdGlvbmFsIGFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3JzLCBpZiBub3QgcGFzc2VkIGVycm9ycyBmcm9tIHRoZSBpbnN0YW5jZSBhcmUgdXNlZC5cbiAqIEBwYXJhbSAge09iamVjdH0gb3B0aW9ucyBvcHRpb25hbCBvcHRpb25zIHdpdGggcHJvcGVydGllcyBgc2VwYXJhdG9yYCBhbmQgYGRhdGFWYXJgLlxuICogQHJldHVybiB7U3RyaW5nfSBodW1hbiByZWFkYWJsZSBzdHJpbmcgd2l0aCBhbGwgZXJyb3JzIGRlc2NyaXB0aW9uc1xuICovXG5mdW5jdGlvbiBlcnJvcnNUZXh0KGVycm9ycywgb3B0aW9ucykge1xuICBlcnJvcnMgPSBlcnJvcnMgfHwgdGhpcy5lcnJvcnM7XG4gIGlmICghZXJyb3JzKSByZXR1cm4gJ05vIGVycm9ycyc7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgc2VwYXJhdG9yID0gb3B0aW9ucy5zZXBhcmF0b3IgPT09IHVuZGVmaW5lZCA/ICcsICcgOiBvcHRpb25zLnNlcGFyYXRvcjtcbiAgdmFyIGRhdGFWYXIgPSBvcHRpb25zLmRhdGFWYXIgPT09IHVuZGVmaW5lZCA/ICdkYXRhJyA6IG9wdGlvbnMuZGF0YVZhcjtcblxuICB2YXIgdGV4dCA9ICcnO1xuICBmb3IgKHZhciBpPTA7IGk8ZXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGUgPSBlcnJvcnNbaV07XG4gICAgaWYgKGUpIHRleHQgKz0gZGF0YVZhciArIGUuZGF0YVBhdGggKyAnICcgKyBlLm1lc3NhZ2UgKyBzZXBhcmF0b3I7XG4gIH1cbiAgcmV0dXJuIHRleHQuc2xpY2UoMCwgLXNlcGFyYXRvci5sZW5ndGgpO1xufVxuXG5cbi8qKlxuICogQWRkIGN1c3RvbSBmb3JtYXRcbiAqIEB0aGlzICAgQWp2XG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZSBmb3JtYXQgbmFtZVxuICogQHBhcmFtIHtTdHJpbmd8UmVnRXhwfEZ1bmN0aW9ufSBmb3JtYXQgc3RyaW5nIGlzIGNvbnZlcnRlZCB0byBSZWdFeHA7IGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYm9vbGVhbiAodHJ1ZSB3aGVuIHZhbGlkKVxuICogQHJldHVybiB7QWp2fSB0aGlzIGZvciBtZXRob2QgY2hhaW5pbmdcbiAqL1xuZnVuY3Rpb24gYWRkRm9ybWF0KG5hbWUsIGZvcm1hdCkge1xuICBpZiAodHlwZW9mIGZvcm1hdCA9PSAnc3RyaW5nJykgZm9ybWF0ID0gbmV3IFJlZ0V4cChmb3JtYXQpO1xuICB0aGlzLl9mb3JtYXRzW25hbWVdID0gZm9ybWF0O1xuICByZXR1cm4gdGhpcztcbn1cblxuXG5mdW5jdGlvbiBhZGREZWZhdWx0TWV0YVNjaGVtYShzZWxmKSB7XG4gIHZhciAkZGF0YVNjaGVtYTtcbiAgaWYgKHNlbGYuX29wdHMuJGRhdGEpIHtcbiAgICAkZGF0YVNjaGVtYSA9IHJlcXVpcmUoJy4vcmVmcy9kYXRhLmpzb24nKTtcbiAgICBzZWxmLmFkZE1ldGFTY2hlbWEoJGRhdGFTY2hlbWEsICRkYXRhU2NoZW1hLiRpZCwgdHJ1ZSk7XG4gIH1cbiAgaWYgKHNlbGYuX29wdHMubWV0YSA9PT0gZmFsc2UpIHJldHVybjtcbiAgdmFyIG1ldGFTY2hlbWEgPSByZXF1aXJlKCcuL3JlZnMvanNvbi1zY2hlbWEtZHJhZnQtMDcuanNvbicpO1xuICBpZiAoc2VsZi5fb3B0cy4kZGF0YSkgbWV0YVNjaGVtYSA9ICRkYXRhTWV0YVNjaGVtYShtZXRhU2NoZW1hLCBNRVRBX1NVUFBPUlRfREFUQSk7XG4gIHNlbGYuYWRkTWV0YVNjaGVtYShtZXRhU2NoZW1hLCBNRVRBX1NDSEVNQV9JRCwgdHJ1ZSk7XG4gIHNlbGYuX3JlZnNbJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvc2NoZW1hJ10gPSBNRVRBX1NDSEVNQV9JRDtcbn1cblxuXG5mdW5jdGlvbiBhZGRJbml0aWFsU2NoZW1hcyhzZWxmKSB7XG4gIHZhciBvcHRzU2NoZW1hcyA9IHNlbGYuX29wdHMuc2NoZW1hcztcbiAgaWYgKCFvcHRzU2NoZW1hcykgcmV0dXJuO1xuICBpZiAoQXJyYXkuaXNBcnJheShvcHRzU2NoZW1hcykpIHNlbGYuYWRkU2NoZW1hKG9wdHNTY2hlbWFzKTtcbiAgZWxzZSBmb3IgKHZhciBrZXkgaW4gb3B0c1NjaGVtYXMpIHNlbGYuYWRkU2NoZW1hKG9wdHNTY2hlbWFzW2tleV0sIGtleSk7XG59XG5cblxuZnVuY3Rpb24gYWRkSW5pdGlhbEZvcm1hdHMoc2VsZikge1xuICBmb3IgKHZhciBuYW1lIGluIHNlbGYuX29wdHMuZm9ybWF0cykge1xuICAgIHZhciBmb3JtYXQgPSBzZWxmLl9vcHRzLmZvcm1hdHNbbmFtZV07XG4gICAgc2VsZi5hZGRGb3JtYXQobmFtZSwgZm9ybWF0KTtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIGFkZEluaXRpYWxLZXl3b3JkcyhzZWxmKSB7XG4gIGZvciAodmFyIG5hbWUgaW4gc2VsZi5fb3B0cy5rZXl3b3Jkcykge1xuICAgIHZhciBrZXl3b3JkID0gc2VsZi5fb3B0cy5rZXl3b3Jkc1tuYW1lXTtcbiAgICBzZWxmLmFkZEtleXdvcmQobmFtZSwga2V5d29yZCk7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBjaGVja1VuaXF1ZShzZWxmLCBpZCkge1xuICBpZiAoc2VsZi5fc2NoZW1hc1tpZF0gfHwgc2VsZi5fcmVmc1tpZF0pXG4gICAgdGhyb3cgbmV3IEVycm9yKCdzY2hlbWEgd2l0aCBrZXkgb3IgaWQgXCInICsgaWQgKyAnXCIgYWxyZWFkeSBleGlzdHMnKTtcbn1cblxuXG5mdW5jdGlvbiBnZXRNZXRhU2NoZW1hT3B0aW9ucyhzZWxmKSB7XG4gIHZhciBtZXRhT3B0cyA9IHV0aWwuY29weShzZWxmLl9vcHRzKTtcbiAgZm9yICh2YXIgaT0wOyBpPE1FVEFfSUdOT1JFX09QVElPTlMubGVuZ3RoOyBpKyspXG4gICAgZGVsZXRlIG1ldGFPcHRzW01FVEFfSUdOT1JFX09QVElPTlNbaV1dO1xuICByZXR1cm4gbWV0YU9wdHM7XG59XG5cblxuZnVuY3Rpb24gc2V0TG9nZ2VyKHNlbGYpIHtcbiAgdmFyIGxvZ2dlciA9IHNlbGYuX29wdHMubG9nZ2VyO1xuICBpZiAobG9nZ2VyID09PSBmYWxzZSkge1xuICAgIHNlbGYubG9nZ2VyID0ge2xvZzogbm9vcCwgd2Fybjogbm9vcCwgZXJyb3I6IG5vb3B9O1xuICB9IGVsc2Uge1xuICAgIGlmIChsb2dnZXIgPT09IHVuZGVmaW5lZCkgbG9nZ2VyID0gY29uc29sZTtcbiAgICBpZiAoISh0eXBlb2YgbG9nZ2VyID09ICdvYmplY3QnICYmIGxvZ2dlci5sb2cgJiYgbG9nZ2VyLndhcm4gJiYgbG9nZ2VyLmVycm9yKSlcbiAgICAgIHRocm93IG5ldyBFcnJvcignbG9nZ2VyIG11c3QgaW1wbGVtZW50IGxvZywgd2FybiBhbmQgZXJyb3IgbWV0aG9kcycpO1xuICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyO1xuICB9XG59XG5cblxuZnVuY3Rpb24gbm9vcCgpIHt9XG4iLCBudWxsLCAiZXhwb3J0IGNvbnN0IGlnbm9yZU92ZXJyaWRlID0gU3ltYm9sKFwiTGV0IHpvZFRvSnNvblNjaGVtYSBkZWNpZGUgb24gd2hpY2ggcGFyc2VyIHRvIHVzZVwiKTtcbmV4cG9ydCBjb25zdCBqc29uRGVzY3JpcHRpb24gPSAoanNvblNjaGVtYSwgZGVmKSA9PiB7XG4gICAgaWYgKGRlZi5kZXNjcmlwdGlvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5qc29uU2NoZW1hLFxuICAgICAgICAgICAgICAgIC4uLkpTT04ucGFyc2UoZGVmLmRlc2NyaXB0aW9uKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggeyB9XG4gICAgfVxuICAgIHJldHVybiBqc29uU2NoZW1hO1xufTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcbiAgICBuYW1lOiB1bmRlZmluZWQsXG4gICAgJHJlZlN0cmF0ZWd5OiBcInJvb3RcIixcbiAgICBiYXNlUGF0aDogW1wiI1wiXSxcbiAgICBlZmZlY3RTdHJhdGVneTogXCJpbnB1dFwiLFxuICAgIHBpcGVTdHJhdGVneTogXCJhbGxcIixcbiAgICBkYXRlU3RyYXRlZ3k6IFwiZm9ybWF0OmRhdGUtdGltZVwiLFxuICAgIG1hcFN0cmF0ZWd5OiBcImVudHJpZXNcIixcbiAgICByZW1vdmVBZGRpdGlvbmFsU3RyYXRlZ3k6IFwicGFzc3Rocm91Z2hcIixcbiAgICBhbGxvd2VkQWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsXG4gICAgcmVqZWN0ZWRBZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgZGVmaW5pdGlvblBhdGg6IFwiZGVmaW5pdGlvbnNcIixcbiAgICB0YXJnZXQ6IFwianNvblNjaGVtYTdcIixcbiAgICBzdHJpY3RVbmlvbnM6IGZhbHNlLFxuICAgIGRlZmluaXRpb25zOiB7fSxcbiAgICBlcnJvck1lc3NhZ2VzOiBmYWxzZSxcbiAgICBtYXJrZG93bkRlc2NyaXB0aW9uOiBmYWxzZSxcbiAgICBwYXR0ZXJuU3RyYXRlZ3k6IFwiZXNjYXBlXCIsXG4gICAgYXBwbHlSZWdleEZsYWdzOiBmYWxzZSxcbiAgICBlbWFpbFN0cmF0ZWd5OiBcImZvcm1hdDplbWFpbFwiLFxuICAgIGJhc2U2NFN0cmF0ZWd5OiBcImNvbnRlbnRFbmNvZGluZzpiYXNlNjRcIixcbiAgICBuYW1lU3RyYXRlZ3k6IFwicmVmXCIsXG59O1xuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRPcHRpb25zID0gKG9wdGlvbnMpID0+ICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJzdHJpbmdcIlxuICAgID8ge1xuICAgICAgICAuLi5kZWZhdWx0T3B0aW9ucyxcbiAgICAgICAgbmFtZTogb3B0aW9ucyxcbiAgICB9XG4gICAgOiB7XG4gICAgICAgIC4uLmRlZmF1bHRPcHRpb25zLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuIiwgImltcG9ydCB7IGdldERlZmF1bHRPcHRpb25zIH0gZnJvbSBcIi4vT3B0aW9ucy5qc1wiO1xuZXhwb3J0IGNvbnN0IGdldFJlZnMgPSAob3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IF9vcHRpb25zID0gZ2V0RGVmYXVsdE9wdGlvbnMob3B0aW9ucyk7XG4gICAgY29uc3QgY3VycmVudFBhdGggPSBfb3B0aW9ucy5uYW1lICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBbLi4uX29wdGlvbnMuYmFzZVBhdGgsIF9vcHRpb25zLmRlZmluaXRpb25QYXRoLCBfb3B0aW9ucy5uYW1lXVxuICAgICAgICA6IF9vcHRpb25zLmJhc2VQYXRoO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLl9vcHRpb25zLFxuICAgICAgICBjdXJyZW50UGF0aDogY3VycmVudFBhdGgsXG4gICAgICAgIHByb3BlcnR5UGF0aDogdW5kZWZpbmVkLFxuICAgICAgICBzZWVuOiBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKF9vcHRpb25zLmRlZmluaXRpb25zKS5tYXAoKFtuYW1lLCBkZWZdKSA9PiBbXG4gICAgICAgICAgICBkZWYuX2RlZixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkZWY6IGRlZi5fZGVmLFxuICAgICAgICAgICAgICAgIHBhdGg6IFsuLi5fb3B0aW9ucy5iYXNlUGF0aCwgX29wdGlvbnMuZGVmaW5pdGlvblBhdGgsIG5hbWVdLFxuICAgICAgICAgICAgICAgIC8vIFJlc29sdXRpb24gb2YgcmVmZXJlbmNlcyB3aWxsIGJlIGZvcmNlZCBldmVuIHRob3VnaCBzZWVuLCBzbyBpdCdzIG9rIHRoYXQgdGhlIHNjaGVtYSBpcyB1bmRlZmluZWQgaGVyZSBmb3Igbm93LlxuICAgICAgICAgICAgICAgIGpzb25TY2hlbWE6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0pKSxcbiAgICB9O1xufTtcbiIsICJleHBvcnQgZnVuY3Rpb24gYWRkRXJyb3JNZXNzYWdlKHJlcywga2V5LCBlcnJvck1lc3NhZ2UsIHJlZnMpIHtcbiAgICBpZiAoIXJlZnM/LmVycm9yTWVzc2FnZXMpXG4gICAgICAgIHJldHVybjtcbiAgICBpZiAoZXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIHJlcy5lcnJvck1lc3NhZ2UgPSB7XG4gICAgICAgICAgICAuLi5yZXMuZXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgW2tleV06IGVycm9yTWVzc2FnZSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIGtleSwgdmFsdWUsIGVycm9yTWVzc2FnZSwgcmVmcykge1xuICAgIHJlc1trZXldID0gdmFsdWU7XG4gICAgYWRkRXJyb3JNZXNzYWdlKHJlcywga2V5LCBlcnJvck1lc3NhZ2UsIHJlZnMpO1xufVxuIiwgImV4cG9ydCBmdW5jdGlvbiBwYXJzZUFueURlZigpIHtcbiAgICByZXR1cm4ge307XG59XG4iLCAiaW1wb3J0IHsgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kIH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyB9IGZyb20gXCIuLi9lcnJvck1lc3NhZ2VzLmpzXCI7XG5pbXBvcnQgeyBwYXJzZURlZiB9IGZyb20gXCIuLi9wYXJzZURlZi5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQXJyYXlEZWYoZGVmLCByZWZzKSB7XG4gICAgY29uc3QgcmVzID0ge1xuICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgfTtcbiAgICBpZiAoZGVmLnR5cGU/Ll9kZWYgJiZcbiAgICAgICAgZGVmLnR5cGU/Ll9kZWY/LnR5cGVOYW1lICE9PSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQW55KSB7XG4gICAgICAgIHJlcy5pdGVtcyA9IHBhcnNlRGVmKGRlZi50eXBlLl9kZWYsIHtcbiAgICAgICAgICAgIC4uLnJlZnMsXG4gICAgICAgICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiaXRlbXNcIl0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoZGVmLm1pbkxlbmd0aCkge1xuICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtaW5JdGVtc1wiLCBkZWYubWluTGVuZ3RoLnZhbHVlLCBkZWYubWluTGVuZ3RoLm1lc3NhZ2UsIHJlZnMpO1xuICAgIH1cbiAgICBpZiAoZGVmLm1heExlbmd0aCkge1xuICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtYXhJdGVtc1wiLCBkZWYubWF4TGVuZ3RoLnZhbHVlLCBkZWYubWF4TGVuZ3RoLm1lc3NhZ2UsIHJlZnMpO1xuICAgIH1cbiAgICBpZiAoZGVmLmV4YWN0TGVuZ3RoKSB7XG4gICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1pbkl0ZW1zXCIsIGRlZi5leGFjdExlbmd0aC52YWx1ZSwgZGVmLmV4YWN0TGVuZ3RoLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtYXhJdGVtc1wiLCBkZWYuZXhhY3RMZW5ndGgudmFsdWUsIGRlZi5leGFjdExlbmd0aC5tZXNzYWdlLCByZWZzKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn1cbiIsICJpbXBvcnQgeyBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzIH0gZnJvbSBcIi4uL2Vycm9yTWVzc2FnZXMuanNcIjtcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJpZ2ludERlZihkZWYsIHJlZnMpIHtcbiAgICBjb25zdCByZXMgPSB7XG4gICAgICAgIHR5cGU6IFwiaW50ZWdlclwiLFxuICAgICAgICBmb3JtYXQ6IFwiaW50NjRcIixcbiAgICB9O1xuICAgIGlmICghZGVmLmNoZWNrcylcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICBmb3IgKGNvbnN0IGNoZWNrIG9mIGRlZi5jaGVja3MpIHtcbiAgICAgICAgc3dpdGNoIChjaGVjay5raW5kKSB7XG4gICAgICAgICAgICBjYXNlIFwibWluXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZnMudGFyZ2V0ID09PSBcImpzb25TY2hlbWE3XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNrLmluY2x1c2l2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWluaW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJleGNsdXNpdmVNaW5pbXVtXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGVjay5pbmNsdXNpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5leGNsdXNpdmVNaW5pbXVtID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtaW5pbXVtXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibWF4XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZnMudGFyZ2V0ID09PSBcImpzb25TY2hlbWE3XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNrLmluY2x1c2l2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWF4aW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJleGNsdXNpdmVNYXhpbXVtXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGVjay5pbmNsdXNpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5leGNsdXNpdmVNYXhpbXVtID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtYXhpbXVtXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibXVsdGlwbGVPZlwiOlxuICAgICAgICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm11bHRpcGxlT2ZcIiwgY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQm9vbGVhbkRlZigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICB9O1xufVxuIiwgImltcG9ydCB7IHBhcnNlRGVmIH0gZnJvbSBcIi4uL3BhcnNlRGVmLmpzXCI7XG5leHBvcnQgZnVuY3Rpb24gcGFyc2VCcmFuZGVkRGVmKF9kZWYsIHJlZnMpIHtcbiAgICByZXR1cm4gcGFyc2VEZWYoX2RlZi50eXBlLl9kZWYsIHJlZnMpO1xufVxuIiwgImltcG9ydCB7IHBhcnNlRGVmIH0gZnJvbSBcIi4uL3BhcnNlRGVmLmpzXCI7XG5leHBvcnQgY29uc3QgcGFyc2VDYXRjaERlZiA9IChkZWYsIHJlZnMpID0+IHtcbiAgICByZXR1cm4gcGFyc2VEZWYoZGVmLmlubmVyVHlwZS5fZGVmLCByZWZzKTtcbn07XG4iLCAiaW1wb3J0IHsgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyB9IGZyb20gXCIuLi9lcnJvck1lc3NhZ2VzLmpzXCI7XG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEYXRlRGVmKGRlZiwgcmVmcywgb3ZlcnJpZGVEYXRlU3RyYXRlZ3kpIHtcbiAgICBjb25zdCBzdHJhdGVneSA9IG92ZXJyaWRlRGF0ZVN0cmF0ZWd5ID8/IHJlZnMuZGF0ZVN0cmF0ZWd5O1xuICAgIGlmIChBcnJheS5pc0FycmF5KHN0cmF0ZWd5KSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYW55T2Y6IHN0cmF0ZWd5Lm1hcCgoaXRlbSwgaSkgPT4gcGFyc2VEYXRlRGVmKGRlZiwgcmVmcywgaXRlbSkpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBzd2l0Y2ggKHN0cmF0ZWd5KSB7XG4gICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgY2FzZSBcImZvcm1hdDpkYXRlLXRpbWVcIjpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICBmb3JtYXQ6IFwiZGF0ZS10aW1lXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICBjYXNlIFwiZm9ybWF0OmRhdGVcIjpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICBmb3JtYXQ6IFwiZGF0ZVwiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgY2FzZSBcImludGVnZXJcIjpcbiAgICAgICAgICAgIHJldHVybiBpbnRlZ2VyRGF0ZVBhcnNlcihkZWYsIHJlZnMpO1xuICAgIH1cbn1cbmNvbnN0IGludGVnZXJEYXRlUGFyc2VyID0gKGRlZiwgcmVmcykgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgICAgdHlwZTogXCJpbnRlZ2VyXCIsXG4gICAgICAgIGZvcm1hdDogXCJ1bml4LXRpbWVcIixcbiAgICB9O1xuICAgIGlmIChyZWZzLnRhcmdldCA9PT0gXCJvcGVuQXBpM1wiKSB7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGZvciAoY29uc3QgY2hlY2sgb2YgZGVmLmNoZWNrcykge1xuICAgICAgICBzd2l0Y2ggKGNoZWNrLmtpbmQpIHtcbiAgICAgICAgICAgIGNhc2UgXCJtaW5cIjpcbiAgICAgICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtaW5pbXVtXCIsIGNoZWNrLnZhbHVlLCAvLyBUaGlzIGlzIGluIG1pbGxpc2Vjb25kc1xuICAgICAgICAgICAgICAgIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm1heFwiOlxuICAgICAgICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1heGltdW1cIiwgY2hlY2sudmFsdWUsIC8vIFRoaXMgaXMgaW4gbWlsbGlzZWNvbmRzXG4gICAgICAgICAgICAgICAgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn07XG4iLCAiaW1wb3J0IHsgcGFyc2VEZWYgfSBmcm9tIFwiLi4vcGFyc2VEZWYuanNcIjtcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZURlZmF1bHREZWYoX2RlZiwgcmVmcykge1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLnBhcnNlRGVmKF9kZWYuaW5uZXJUeXBlLl9kZWYsIHJlZnMpLFxuICAgICAgICBkZWZhdWx0OiBfZGVmLmRlZmF1bHRWYWx1ZSgpLFxuICAgIH07XG59XG4iLCAiaW1wb3J0IHsgcGFyc2VEZWYgfSBmcm9tIFwiLi4vcGFyc2VEZWYuanNcIjtcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUVmZmVjdHNEZWYoX2RlZiwgcmVmcykge1xuICAgIHJldHVybiByZWZzLmVmZmVjdFN0cmF0ZWd5ID09PSBcImlucHV0XCJcbiAgICAgICAgPyBwYXJzZURlZihfZGVmLnNjaGVtYS5fZGVmLCByZWZzKVxuICAgICAgICA6IHt9O1xufVxuIiwgImV4cG9ydCBmdW5jdGlvbiBwYXJzZUVudW1EZWYoZGVmKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgZW51bTogQXJyYXkuZnJvbShkZWYudmFsdWVzKSxcbiAgICB9O1xufVxuIiwgImltcG9ydCB7IHBhcnNlRGVmIH0gZnJvbSBcIi4uL3BhcnNlRGVmLmpzXCI7XG5jb25zdCBpc0pzb25TY2hlbWE3QWxsT2ZUeXBlID0gKHR5cGUpID0+IHtcbiAgICBpZiAoXCJ0eXBlXCIgaW4gdHlwZSAmJiB0eXBlLnR5cGUgPT09IFwic3RyaW5nXCIpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gXCJhbGxPZlwiIGluIHR5cGU7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW50ZXJzZWN0aW9uRGVmKGRlZiwgcmVmcykge1xuICAgIGNvbnN0IGFsbE9mID0gW1xuICAgICAgICBwYXJzZURlZihkZWYubGVmdC5fZGVmLCB7XG4gICAgICAgICAgICAuLi5yZWZzLFxuICAgICAgICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcImFsbE9mXCIsIFwiMFwiXSxcbiAgICAgICAgfSksXG4gICAgICAgIHBhcnNlRGVmKGRlZi5yaWdodC5fZGVmLCB7XG4gICAgICAgICAgICAuLi5yZWZzLFxuICAgICAgICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcImFsbE9mXCIsIFwiMVwiXSxcbiAgICAgICAgfSksXG4gICAgXS5maWx0ZXIoKHgpID0+ICEheCk7XG4gICAgbGV0IHVuZXZhbHVhdGVkUHJvcGVydGllcyA9IHJlZnMudGFyZ2V0ID09PSBcImpzb25TY2hlbWEyMDE5LTA5XCJcbiAgICAgICAgPyB7IHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2UgfVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBtZXJnZWRBbGxPZiA9IFtdO1xuICAgIC8vIElmIGVpdGhlciBvZiB0aGUgc2NoZW1hcyBpcyBhbiBhbGxPZiwgbWVyZ2UgdGhlbSBpbnRvIGEgc2luZ2xlIGFsbE9mXG4gICAgYWxsT2YuZm9yRWFjaCgoc2NoZW1hKSA9PiB7XG4gICAgICAgIGlmIChpc0pzb25TY2hlbWE3QWxsT2ZUeXBlKHNjaGVtYSkpIHtcbiAgICAgICAgICAgIG1lcmdlZEFsbE9mLnB1c2goLi4uc2NoZW1hLmFsbE9mKTtcbiAgICAgICAgICAgIGlmIChzY2hlbWEudW5ldmFsdWF0ZWRQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBvbmUgb2YgdGhlIHNjaGVtYXMgaGFzIG5vIHVuZXZhbHVhdGVkUHJvcGVydGllcyBzZXQsXG4gICAgICAgICAgICAgICAgLy8gdGhlIG1lcmdlZCBzY2hlbWEgc2hvdWxkIGFsc28gaGF2ZSBubyB1bmV2YWx1YXRlZFByb3BlcnRpZXMgc2V0XG4gICAgICAgICAgICAgICAgdW5ldmFsdWF0ZWRQcm9wZXJ0aWVzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IG5lc3RlZFNjaGVtYSA9IHNjaGVtYTtcbiAgICAgICAgICAgIGlmIChcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIgaW4gc2NoZW1hICYmXG4gICAgICAgICAgICAgICAgc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgYWRkaXRpb25hbFByb3BlcnRpZXMsIC4uLnJlc3QgfSA9IHNjaGVtYTtcbiAgICAgICAgICAgICAgICBuZXN0ZWRTY2hlbWEgPSByZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gQXMgc29vbiBhcyBvbmUgb2YgdGhlIHNjaGVtYXMgaGFzIGFkZGl0aW9uYWxQcm9wZXJ0aWVzIHNldCBub3QgdG8gZmFsc2UsIHdlIGFsbG93IHVuZXZhbHVhdGVkUHJvcGVydGllc1xuICAgICAgICAgICAgICAgIHVuZXZhbHVhdGVkUHJvcGVydGllcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1lcmdlZEFsbE9mLnB1c2gobmVzdGVkU2NoZW1hKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBtZXJnZWRBbGxPZi5sZW5ndGhcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBhbGxPZjogbWVyZ2VkQWxsT2YsXG4gICAgICAgICAgICAuLi51bmV2YWx1YXRlZFByb3BlcnRpZXMsXG4gICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTGl0ZXJhbERlZihkZWYsIHJlZnMpIHtcbiAgICBjb25zdCBwYXJzZWRUeXBlID0gdHlwZW9mIGRlZi52YWx1ZTtcbiAgICBpZiAocGFyc2VkVHlwZSAhPT0gXCJiaWdpbnRcIiAmJlxuICAgICAgICBwYXJzZWRUeXBlICE9PSBcIm51bWJlclwiICYmXG4gICAgICAgIHBhcnNlZFR5cGUgIT09IFwiYm9vbGVhblwiICYmXG4gICAgICAgIHBhcnNlZFR5cGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IEFycmF5LmlzQXJyYXkoZGVmLnZhbHVlKSA/IFwiYXJyYXlcIiA6IFwib2JqZWN0XCIsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChyZWZzLnRhcmdldCA9PT0gXCJvcGVuQXBpM1wiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBwYXJzZWRUeXBlID09PSBcImJpZ2ludFwiID8gXCJpbnRlZ2VyXCIgOiBwYXJzZWRUeXBlLFxuICAgICAgICAgICAgZW51bTogW2RlZi52YWx1ZV0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IHBhcnNlZFR5cGUgPT09IFwiYmlnaW50XCIgPyBcImludGVnZXJcIiA6IHBhcnNlZFR5cGUsXG4gICAgICAgIGNvbnN0OiBkZWYudmFsdWUsXG4gICAgfTtcbn1cbiIsICJpbXBvcnQgeyBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzIH0gZnJvbSBcIi4uL2Vycm9yTWVzc2FnZXMuanNcIjtcbmxldCBlbW9qaVJlZ2V4ID0gdW5kZWZpbmVkO1xuLyoqXG4gKiBHZW5lcmF0ZWQgZnJvbSB0aGUgcmVndWxhciBleHByZXNzaW9ucyBmb3VuZCBoZXJlIGFzIG9mIDIwMjQtMDUtMjI6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vY29saW5oYWNrcy96b2QvYmxvYi9tYXN0ZXIvc3JjL3R5cGVzLnRzLlxuICpcbiAqIEV4cHJlc3Npb25zIHdpdGggL2kgZmxhZyBoYXZlIGJlZW4gY2hhbmdlZCBhY2NvcmRpbmdseS5cbiAqL1xuZXhwb3J0IGNvbnN0IHpvZFBhdHRlcm5zID0ge1xuICAgIC8qKlxuICAgICAqIGBjYCB3YXMgY2hhbmdlZCB0byBgW2NDXWAgdG8gcmVwbGljYXRlIC9pIGZsYWdcbiAgICAgKi9cbiAgICBjdWlkOiAvXltjQ11bXlxccy1dezgsfSQvLFxuICAgIGN1aWQyOiAvXlswLTlhLXpdKyQvLFxuICAgIHVsaWQ6IC9eWzAtOUEtSEpLTU5QLVRWLVpdezI2fSQvLFxuICAgIC8qKlxuICAgICAqIGBhLXpgIHdhcyBhZGRlZCB0byByZXBsaWNhdGUgL2kgZmxhZ1xuICAgICAqL1xuICAgIGVtYWlsOiAvXig/IVxcLikoPyEuKlxcLlxcLikoW2EtekEtWjAtOV8nK1xcLVxcLl0qKVthLXpBLVowLTlfKy1dQChbYS16QS1aMC05XVthLXpBLVowLTlcXC1dKlxcLikrW2EtekEtWl17Mix9JC8sXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0ZWQgYSB2YWxpZCBVbmljb2RlIFJlZ0V4cFxuICAgICAqXG4gICAgICogTGF6aWx5IGluc3RhbnRpYXRlIHNpbmNlIHRoaXMgdHlwZSBvZiByZWdleCBpc24ndCBzdXBwb3J0ZWRcbiAgICAgKiBpbiBhbGwgZW52cyAoZS5nLiBSZWFjdCBOYXRpdmUpLlxuICAgICAqXG4gICAgICogU2VlOlxuICAgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9jb2xpbmhhY2tzL3pvZC9pc3N1ZXMvMjQzM1xuICAgICAqIEZpeCBpbiBab2Q6XG4gICAgICogaHR0cHM6Ly9naXRodWIuY29tL2NvbGluaGFja3Mvem9kL2NvbW1pdC85MzQwZmQ1MWU0ODU3NmE3NWFkYzkxOWJmZjY1ZGJjNGE1ZDRjOTliXG4gICAgICovXG4gICAgZW1vamk6ICgpID0+IHtcbiAgICAgICAgaWYgKGVtb2ppUmVnZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZW1vamlSZWdleCA9IFJlZ0V4cChcIl4oXFxcXHB7RXh0ZW5kZWRfUGljdG9ncmFwaGljfXxcXFxccHtFbW9qaV9Db21wb25lbnR9KSskXCIsIFwidVwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW1vamlSZWdleDtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVudXNlZFxuICAgICAqL1xuICAgIHV1aWQ6IC9eWzAtOWEtZkEtRl17OH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17MTJ9JC8sXG4gICAgLyoqXG4gICAgICogVW51c2VkXG4gICAgICovXG4gICAgaXB2NDogL14oPzooPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSkkLyxcbiAgICBpcHY0Q2lkcjogL14oPzooPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcXC8oM1swLTJdfFsxMl0/WzAtOV0pJC8sXG4gICAgLyoqXG4gICAgICogVW51c2VkXG4gICAgICovXG4gICAgaXB2NjogL14oKFthLWYwLTldezEsNH06KXs3fXw6OihbYS1mMC05XXsxLDR9Oil7MCw2fXwoW2EtZjAtOV17MSw0fTopezF9OihbYS1mMC05XXsxLDR9Oil7MCw1fXwoW2EtZjAtOV17MSw0fTopezJ9OihbYS1mMC05XXsxLDR9Oil7MCw0fXwoW2EtZjAtOV17MSw0fTopezN9OihbYS1mMC05XXsxLDR9Oil7MCwzfXwoW2EtZjAtOV17MSw0fTopezR9OihbYS1mMC05XXsxLDR9Oil7MCwyfXwoW2EtZjAtOV17MSw0fTopezV9OihbYS1mMC05XXsxLDR9Oil7MCwxfSkoW2EtZjAtOV17MSw0fXwoKCgyNVswLTVdKXwoMlswLTRdWzAtOV0pfCgxWzAtOV17Mn0pfChbMC05XXsxLDJ9KSlcXC4pezN9KCgyNVswLTVdKXwoMlswLTRdWzAtOV0pfCgxWzAtOV17Mn0pfChbMC05XXsxLDJ9KSkpJC8sXG4gICAgaXB2NkNpZHI6IC9eKChbMC05YS1mQS1GXXsxLDR9Oil7Nyw3fVswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDd9OnwoWzAtOWEtZkEtRl17MSw0fTopezEsNn06WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsNX0oOlswLTlhLWZBLUZdezEsNH0pezEsMn18KFswLTlhLWZBLUZdezEsNH06KXsxLDR9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDN9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwzfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsMn0oOlswLTlhLWZBLUZdezEsNH0pezEsNX18WzAtOWEtZkEtRl17MSw0fTooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDZ9KXw6KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw3fXw6KXxmZTgwOig6WzAtOWEtZkEtRl17MCw0fSl7MCw0fSVbMC05YS16QS1aXXsxLH18OjooZmZmZig6MHsxLDR9KXswLDF9Oil7MCwxfSgoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH06KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pKVxcLygxMlswLThdfDFbMDFdWzAtOV18WzEtOV0/WzAtOV0pJC8sXG4gICAgYmFzZTY0OiAvXihbMC05YS16QS1aKy9dezR9KSooKFswLTlhLXpBLVorL117Mn09PSl8KFswLTlhLXpBLVorL117M309KSk/JC8sXG4gICAgYmFzZTY0dXJsOiAvXihbMC05YS16QS1aLV9dezR9KSooKFswLTlhLXpBLVotX117Mn0oPT0pPyl8KFswLTlhLXpBLVotX117M30oPSk/KSk/JC8sXG4gICAgbmFub2lkOiAvXlthLXpBLVowLTlfLV17MjF9JC8sXG4gICAgand0OiAvXltBLVphLXowLTktX10rXFwuW0EtWmEtejAtOS1fXStcXC5bQS1aYS16MC05LV9dKiQvLFxufTtcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN0cmluZ0RlZihkZWYsIHJlZnMpIHtcbiAgICBjb25zdCByZXMgPSB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgfTtcbiAgICBpZiAoZGVmLmNoZWNrcykge1xuICAgICAgICBmb3IgKGNvbnN0IGNoZWNrIG9mIGRlZi5jaGVja3MpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoY2hlY2sua2luZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtaW5cIjpcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWluTGVuZ3RoXCIsIHR5cGVvZiByZXMubWluTGVuZ3RoID09PSBcIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA/IE1hdGgubWF4KHJlcy5taW5MZW5ndGgsIGNoZWNrLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtYXhcIjpcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWF4TGVuZ3RoXCIsIHR5cGVvZiByZXMubWF4TGVuZ3RoID09PSBcIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA/IE1hdGgubWluKHJlcy5tYXhMZW5ndGgsIGNoZWNrLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJlbWFpbFwiOlxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlZnMuZW1haWxTdHJhdGVneSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImZvcm1hdDplbWFpbFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwiZW1haWxcIiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZm9ybWF0Omlkbi1lbWFpbFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwiaWRuLWVtYWlsXCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcInBhdHRlcm46em9kXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkUGF0dGVybihyZXMsIHpvZFBhdHRlcm5zLmVtYWlsLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwidXJsXCI6XG4gICAgICAgICAgICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwidXJpXCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwidXVpZFwiOlxuICAgICAgICAgICAgICAgICAgICBhZGRGb3JtYXQocmVzLCBcInV1aWRcIiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJyZWdleFwiOlxuICAgICAgICAgICAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgY2hlY2sucmVnZXgsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiY3VpZFwiOlxuICAgICAgICAgICAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgem9kUGF0dGVybnMuY3VpZCwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJjdWlkMlwiOlxuICAgICAgICAgICAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgem9kUGF0dGVybnMuY3VpZDIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwic3RhcnRzV2l0aFwiOlxuICAgICAgICAgICAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgUmVnRXhwKGBeJHtlc2NhcGVMaXRlcmFsQ2hlY2tWYWx1ZShjaGVjay52YWx1ZSwgcmVmcyl9YCksIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZW5kc1dpdGhcIjpcbiAgICAgICAgICAgICAgICAgICAgYWRkUGF0dGVybihyZXMsIFJlZ0V4cChgJHtlc2NhcGVMaXRlcmFsQ2hlY2tWYWx1ZShjaGVjay52YWx1ZSwgcmVmcyl9JGApLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRhdGV0aW1lXCI6XG4gICAgICAgICAgICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwiZGF0ZS10aW1lXCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGF0ZVwiOlxuICAgICAgICAgICAgICAgICAgICBhZGRGb3JtYXQocmVzLCBcImRhdGVcIiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ0aW1lXCI6XG4gICAgICAgICAgICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwidGltZVwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImR1cmF0aW9uXCI6XG4gICAgICAgICAgICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwiZHVyYXRpb25cIiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJsZW5ndGhcIjpcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWluTGVuZ3RoXCIsIHR5cGVvZiByZXMubWluTGVuZ3RoID09PSBcIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA/IE1hdGgubWF4KHJlcy5taW5MZW5ndGgsIGNoZWNrLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1heExlbmd0aFwiLCB0eXBlb2YgcmVzLm1heExlbmd0aCA9PT0gXCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyBNYXRoLm1pbihyZXMubWF4TGVuZ3RoLCBjaGVjay52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiaW5jbHVkZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgUmVnRXhwKGVzY2FwZUxpdGVyYWxDaGVja1ZhbHVlKGNoZWNrLnZhbHVlLCByZWZzKSksIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBcImlwXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNrLnZlcnNpb24gIT09IFwidjZcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkRm9ybWF0KHJlcywgXCJpcHY0XCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGVjay52ZXJzaW9uICE9PSBcInY0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwiaXB2NlwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBcImJhc2U2NHVybFwiOlxuICAgICAgICAgICAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgem9kUGF0dGVybnMuYmFzZTY0dXJsLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImp3dFwiOlxuICAgICAgICAgICAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgem9kUGF0dGVybnMuand0LCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImNpZHJcIjoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hlY2sudmVyc2lvbiAhPT0gXCJ2NlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgem9kUGF0dGVybnMuaXB2NENpZHIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGVjay52ZXJzaW9uICE9PSBcInY0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZFBhdHRlcm4ocmVzLCB6b2RQYXR0ZXJucy5pcHY2Q2lkciwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgXCJlbW9qaVwiOlxuICAgICAgICAgICAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgem9kUGF0dGVybnMuZW1vamkoKSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ1bGlkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgYWRkUGF0dGVybihyZXMsIHpvZFBhdHRlcm5zLnVsaWQsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBcImJhc2U2NFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAocmVmcy5iYXNlNjRTdHJhdGVneSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImZvcm1hdDpiaW5hcnlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwiYmluYXJ5XCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImNvbnRlbnRFbmNvZGluZzpiYXNlNjRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcImNvbnRlbnRFbmNvZGluZ1wiLCBcImJhc2U2NFwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJwYXR0ZXJuOnpvZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkUGF0dGVybihyZXMsIHpvZFBhdHRlcm5zLmJhc2U2NCwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgXCJuYW5vaWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgem9kUGF0dGVybnMubmFub2lkLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBcInRvTG93ZXJDYXNlXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInRvVXBwZXJDYXNlXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInRyaW1cIjpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgLyogYzggaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgICAgICAgICAgKChfKSA9PiB7IH0pKGNoZWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuZnVuY3Rpb24gZXNjYXBlTGl0ZXJhbENoZWNrVmFsdWUobGl0ZXJhbCwgcmVmcykge1xuICAgIHJldHVybiByZWZzLnBhdHRlcm5TdHJhdGVneSA9PT0gXCJlc2NhcGVcIlxuICAgICAgICA/IGVzY2FwZU5vbkFscGhhTnVtZXJpYyhsaXRlcmFsKVxuICAgICAgICA6IGxpdGVyYWw7XG59XG5jb25zdCBBTFBIQV9OVU1FUklDID0gbmV3IFNldChcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2eHl6MDEyMzQ1Njc4OVwiKTtcbmZ1bmN0aW9uIGVzY2FwZU5vbkFscGhhTnVtZXJpYyhzb3VyY2UpIHtcbiAgICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoIUFMUEhBX05VTUVSSUMuaGFzKHNvdXJjZVtpXSkpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBcIlxcXFxcIjtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgKz0gc291cmNlW2ldO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuLy8gQWRkcyBhIFwiZm9ybWF0XCIga2V5d29yZCB0byB0aGUgc2NoZW1hLiBJZiBhIGZvcm1hdCBleGlzdHMsIGJvdGggZm9ybWF0cyB3aWxsIGJlIGpvaW5lZCBpbiBhbiBhbGxPZi1ub2RlLCBhbG9uZyB3aXRoIHN1YnNlcXVlbnQgb25lcy5cbmZ1bmN0aW9uIGFkZEZvcm1hdChzY2hlbWEsIHZhbHVlLCBtZXNzYWdlLCByZWZzKSB7XG4gICAgaWYgKHNjaGVtYS5mb3JtYXQgfHwgc2NoZW1hLmFueU9mPy5zb21lKCh4KSA9PiB4LmZvcm1hdCkpIHtcbiAgICAgICAgaWYgKCFzY2hlbWEuYW55T2YpIHtcbiAgICAgICAgICAgIHNjaGVtYS5hbnlPZiA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzY2hlbWEuZm9ybWF0KSB7XG4gICAgICAgICAgICBzY2hlbWEuYW55T2YucHVzaCh7XG4gICAgICAgICAgICAgICAgZm9ybWF0OiBzY2hlbWEuZm9ybWF0LFxuICAgICAgICAgICAgICAgIC4uLihzY2hlbWEuZXJyb3JNZXNzYWdlICYmXG4gICAgICAgICAgICAgICAgICAgIHJlZnMuZXJyb3JNZXNzYWdlcyAmJiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogeyBmb3JtYXQ6IHNjaGVtYS5lcnJvck1lc3NhZ2UuZm9ybWF0IH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGRlbGV0ZSBzY2hlbWEuZm9ybWF0O1xuICAgICAgICAgICAgaWYgKHNjaGVtYS5lcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgc2NoZW1hLmVycm9yTWVzc2FnZS5mb3JtYXQ7XG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHNjaGVtYS5lcnJvck1lc3NhZ2UpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgc2NoZW1hLmVycm9yTWVzc2FnZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2NoZW1hLmFueU9mLnB1c2goe1xuICAgICAgICAgICAgZm9ybWF0OiB2YWx1ZSxcbiAgICAgICAgICAgIC4uLihtZXNzYWdlICYmXG4gICAgICAgICAgICAgICAgcmVmcy5lcnJvck1lc3NhZ2VzICYmIHsgZXJyb3JNZXNzYWdlOiB7IGZvcm1hdDogbWVzc2FnZSB9IH0pLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMoc2NoZW1hLCBcImZvcm1hdFwiLCB2YWx1ZSwgbWVzc2FnZSwgcmVmcyk7XG4gICAgfVxufVxuLy8gQWRkcyBhIFwicGF0dGVyblwiIGtleXdvcmQgdG8gdGhlIHNjaGVtYS4gSWYgYSBwYXR0ZXJuIGV4aXN0cywgYm90aCBwYXR0ZXJucyB3aWxsIGJlIGpvaW5lZCBpbiBhbiBhbGxPZi1ub2RlLCBhbG9uZyB3aXRoIHN1YnNlcXVlbnQgb25lcy5cbmZ1bmN0aW9uIGFkZFBhdHRlcm4oc2NoZW1hLCByZWdleCwgbWVzc2FnZSwgcmVmcykge1xuICAgIGlmIChzY2hlbWEucGF0dGVybiB8fCBzY2hlbWEuYWxsT2Y/LnNvbWUoKHgpID0+IHgucGF0dGVybikpIHtcbiAgICAgICAgaWYgKCFzY2hlbWEuYWxsT2YpIHtcbiAgICAgICAgICAgIHNjaGVtYS5hbGxPZiA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzY2hlbWEucGF0dGVybikge1xuICAgICAgICAgICAgc2NoZW1hLmFsbE9mLnB1c2goe1xuICAgICAgICAgICAgICAgIHBhdHRlcm46IHNjaGVtYS5wYXR0ZXJuLFxuICAgICAgICAgICAgICAgIC4uLihzY2hlbWEuZXJyb3JNZXNzYWdlICYmXG4gICAgICAgICAgICAgICAgICAgIHJlZnMuZXJyb3JNZXNzYWdlcyAmJiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogeyBwYXR0ZXJuOiBzY2hlbWEuZXJyb3JNZXNzYWdlLnBhdHRlcm4gfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGVsZXRlIHNjaGVtYS5wYXR0ZXJuO1xuICAgICAgICAgICAgaWYgKHNjaGVtYS5lcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgc2NoZW1hLmVycm9yTWVzc2FnZS5wYXR0ZXJuO1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhzY2hlbWEuZXJyb3JNZXNzYWdlKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHNjaGVtYS5lcnJvck1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNjaGVtYS5hbGxPZi5wdXNoKHtcbiAgICAgICAgICAgIHBhdHRlcm46IHN0cmluZ2lmeVJlZ0V4cFdpdGhGbGFncyhyZWdleCwgcmVmcyksXG4gICAgICAgICAgICAuLi4obWVzc2FnZSAmJlxuICAgICAgICAgICAgICAgIHJlZnMuZXJyb3JNZXNzYWdlcyAmJiB7IGVycm9yTWVzc2FnZTogeyBwYXR0ZXJuOiBtZXNzYWdlIH0gfSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhzY2hlbWEsIFwicGF0dGVyblwiLCBzdHJpbmdpZnlSZWdFeHBXaXRoRmxhZ3MocmVnZXgsIHJlZnMpLCBtZXNzYWdlLCByZWZzKTtcbiAgICB9XG59XG4vLyBNdXRhdGUgei5zdHJpbmcucmVnZXgoKSBpbiBhIGJlc3QgYXR0ZW1wdCB0byBhY2NvbW1vZGF0ZSBmb3IgcmVnZXggZmxhZ3Mgd2hlbiBhcHBseVJlZ2V4RmxhZ3MgaXMgdHJ1ZVxuZnVuY3Rpb24gc3RyaW5naWZ5UmVnRXhwV2l0aEZsYWdzKHJlZ2V4LCByZWZzKSB7XG4gICAgaWYgKCFyZWZzLmFwcGx5UmVnZXhGbGFncyB8fCAhcmVnZXguZmxhZ3MpIHtcbiAgICAgICAgcmV0dXJuIHJlZ2V4LnNvdXJjZTtcbiAgICB9XG4gICAgLy8gQ3VycmVudGx5IGhhbmRsZWQgZmxhZ3NcbiAgICBjb25zdCBmbGFncyA9IHtcbiAgICAgICAgaTogcmVnZXguZmxhZ3MuaW5jbHVkZXMoXCJpXCIpLFxuICAgICAgICBtOiByZWdleC5mbGFncy5pbmNsdWRlcyhcIm1cIiksXG4gICAgICAgIHM6IHJlZ2V4LmZsYWdzLmluY2x1ZGVzKFwic1wiKSwgLy8gYC5gIG1hdGNoZXMgbmV3bGluZXNcbiAgICB9O1xuICAgIC8vIFRoZSBnZW5lcmFsIHByaW5jaXBsZSBoZXJlIGlzIHRvIHN0ZXAgdGhyb3VnaCBlYWNoIGNoYXJhY3Rlciwgb25lIGF0IGEgdGltZSwgYXBwbHlpbmcgbXV0YXRpb25zIGFzIGZsYWdzIHJlcXVpcmUuIFdlIGtlZXAgdHJhY2sgd2hlbiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaXMgZXNjYXBlZCwgYW5kIHdoZW4gaXQncyBpbnNpZGUgYSBncm91cCAvbGlrZSBbdGhpc10vIG9yIChhbHNvKSBhIHJhbmdlIGxpa2UgL1thLXpdLy4gVGhlIGZvbGxvd2luZyBpcyBmYWlybHkgYnJpdHRsZSBpbXBlcmF0aXZlIGNvZGU7IGVkaXQgYXQgeW91ciBwZXJpbCFcbiAgICBjb25zdCBzb3VyY2UgPSBmbGFncy5pID8gcmVnZXguc291cmNlLnRvTG93ZXJDYXNlKCkgOiByZWdleC5zb3VyY2U7XG4gICAgbGV0IHBhdHRlcm4gPSBcIlwiO1xuICAgIGxldCBpc0VzY2FwZWQgPSBmYWxzZTtcbiAgICBsZXQgaW5DaGFyR3JvdXAgPSBmYWxzZTtcbiAgICBsZXQgaW5DaGFyUmFuZ2UgPSBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaXNFc2NhcGVkKSB7XG4gICAgICAgICAgICBwYXR0ZXJuICs9IHNvdXJjZVtpXTtcbiAgICAgICAgICAgIGlzRXNjYXBlZCA9IGZhbHNlO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZsYWdzLmkpIHtcbiAgICAgICAgICAgIGlmIChpbkNoYXJHcm91cCkge1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbaV0ubWF0Y2goL1thLXpdLykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluQ2hhclJhbmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuICs9IHNvdXJjZVtpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gKz0gYCR7c291cmNlW2kgLSAyXX0tJHtzb3VyY2VbaV19YC50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5DaGFyUmFuZ2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzb3VyY2VbaSArIDFdID09PSBcIi1cIiAmJiBzb3VyY2VbaSArIDJdPy5tYXRjaCgvW2Etel0vKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybiArPSBzb3VyY2VbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICBpbkNoYXJSYW5nZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuICs9IGAke3NvdXJjZVtpXX0ke3NvdXJjZVtpXS50b1VwcGVyQ2FzZSgpfWA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoc291cmNlW2ldLm1hdGNoKC9bYS16XS8pKSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybiArPSBgWyR7c291cmNlW2ldfSR7c291cmNlW2ldLnRvVXBwZXJDYXNlKCl9XWA7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZsYWdzLm0pIHtcbiAgICAgICAgICAgIGlmIChzb3VyY2VbaV0gPT09IFwiXlwiKSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybiArPSBgKF58KD88PVtcXHJcXG5dKSlgO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoc291cmNlW2ldID09PSBcIiRcIikge1xuICAgICAgICAgICAgICAgIHBhdHRlcm4gKz0gYCgkfCg/PVtcXHJcXG5dKSlgO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChmbGFncy5zICYmIHNvdXJjZVtpXSA9PT0gXCIuXCIpIHtcbiAgICAgICAgICAgIHBhdHRlcm4gKz0gaW5DaGFyR3JvdXAgPyBgJHtzb3VyY2VbaV19XFxyXFxuYCA6IGBbJHtzb3VyY2VbaV19XFxyXFxuXWA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBwYXR0ZXJuICs9IHNvdXJjZVtpXTtcbiAgICAgICAgaWYgKHNvdXJjZVtpXSA9PT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICAgIGlzRXNjYXBlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaW5DaGFyR3JvdXAgJiYgc291cmNlW2ldID09PSBcIl1cIikge1xuICAgICAgICAgICAgaW5DaGFyR3JvdXAgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghaW5DaGFyR3JvdXAgJiYgc291cmNlW2ldID09PSBcIltcIikge1xuICAgICAgICAgICAgaW5DaGFyR3JvdXAgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIG5ldyBSZWdFeHAocGF0dGVybik7XG4gICAgfVxuICAgIGNhdGNoIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBDb3VsZCBub3QgY29udmVydCByZWdleCBwYXR0ZXJuIGF0ICR7cmVmcy5jdXJyZW50UGF0aC5qb2luKFwiL1wiKX0gdG8gYSBmbGFnLWluZGVwZW5kZW50IGZvcm0hIEZhbGxpbmcgYmFjayB0byB0aGUgZmxhZy1pZ25vcmFudCBzb3VyY2VgKTtcbiAgICAgICAgcmV0dXJuIHJlZ2V4LnNvdXJjZTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdHRlcm47XG59XG4iLCAiaW1wb3J0IHsgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLCB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IHBhcnNlRGVmIH0gZnJvbSBcIi4uL3BhcnNlRGVmLmpzXCI7XG5pbXBvcnQgeyBwYXJzZVN0cmluZ0RlZiB9IGZyb20gXCIuL3N0cmluZy5qc1wiO1xuaW1wb3J0IHsgcGFyc2VCcmFuZGVkRGVmIH0gZnJvbSBcIi4vYnJhbmRlZC5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVjb3JkRGVmKGRlZiwgcmVmcykge1xuICAgIGlmIChyZWZzLnRhcmdldCA9PT0gXCJvcGVuQWlcIikge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBPcGVuQUkgbWF5IG5vdCBzdXBwb3J0IHJlY29yZHMgaW4gc2NoZW1hcyEgVHJ5IGFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyBpbnN0ZWFkLlwiKTtcbiAgICB9XG4gICAgaWYgKHJlZnMudGFyZ2V0ID09PSBcIm9wZW5BcGkzXCIgJiZcbiAgICAgICAgZGVmLmtleVR5cGU/Ll9kZWYudHlwZU5hbWUgPT09IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFbnVtKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGRlZi5rZXlUeXBlLl9kZWYudmFsdWVzLFxuICAgICAgICAgICAgcHJvcGVydGllczogZGVmLmtleVR5cGUuX2RlZi52YWx1ZXMucmVkdWNlKChhY2MsIGtleSkgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICAgICAgW2tleV06IHBhcnNlRGVmKGRlZi52YWx1ZVR5cGUuX2RlZiwge1xuICAgICAgICAgICAgICAgICAgICAuLi5yZWZzLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwicHJvcGVydGllc1wiLCBrZXldLFxuICAgICAgICAgICAgICAgIH0pID8/IHt9LFxuICAgICAgICAgICAgfSksIHt9KSxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiByZWZzLnJlamVjdGVkQWRkaXRpb25hbFByb3BlcnRpZXMsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHNjaGVtYSA9IHtcbiAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHBhcnNlRGVmKGRlZi52YWx1ZVR5cGUuX2RlZiwge1xuICAgICAgICAgICAgLi4ucmVmcyxcbiAgICAgICAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiXSxcbiAgICAgICAgfSkgPz8gcmVmcy5hbGxvd2VkQWRkaXRpb25hbFByb3BlcnRpZXMsXG4gICAgfTtcbiAgICBpZiAocmVmcy50YXJnZXQgPT09IFwib3BlbkFwaTNcIikge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cbiAgICBpZiAoZGVmLmtleVR5cGU/Ll9kZWYudHlwZU5hbWUgPT09IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTdHJpbmcgJiZcbiAgICAgICAgZGVmLmtleVR5cGUuX2RlZi5jaGVja3M/Lmxlbmd0aCkge1xuICAgICAgICBjb25zdCB7IHR5cGUsIC4uLmtleVR5cGUgfSA9IHBhcnNlU3RyaW5nRGVmKGRlZi5rZXlUeXBlLl9kZWYsIHJlZnMpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uc2NoZW1hLFxuICAgICAgICAgICAgcHJvcGVydHlOYW1lczoga2V5VHlwZSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZGVmLmtleVR5cGU/Ll9kZWYudHlwZU5hbWUgPT09IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFbnVtKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zY2hlbWEsXG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWVzOiB7XG4gICAgICAgICAgICAgICAgZW51bTogZGVmLmtleVR5cGUuX2RlZi52YWx1ZXMsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmIChkZWYua2V5VHlwZT8uX2RlZi50eXBlTmFtZSA9PT0gWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJyYW5kZWQgJiZcbiAgICAgICAgZGVmLmtleVR5cGUuX2RlZi50eXBlLl9kZWYudHlwZU5hbWUgPT09IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTdHJpbmcgJiZcbiAgICAgICAgZGVmLmtleVR5cGUuX2RlZi50eXBlLl9kZWYuY2hlY2tzPy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgeyB0eXBlLCAuLi5rZXlUeXBlIH0gPSBwYXJzZUJyYW5kZWREZWYoZGVmLmtleVR5cGUuX2RlZiwgcmVmcyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zY2hlbWEsXG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWVzOiBrZXlUeXBlLFxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gc2NoZW1hO1xufVxuIiwgImltcG9ydCB7IHBhcnNlRGVmIH0gZnJvbSBcIi4uL3BhcnNlRGVmLmpzXCI7XG5pbXBvcnQgeyBwYXJzZVJlY29yZERlZiB9IGZyb20gXCIuL3JlY29yZC5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTWFwRGVmKGRlZiwgcmVmcykge1xuICAgIGlmIChyZWZzLm1hcFN0cmF0ZWd5ID09PSBcInJlY29yZFwiKSB7XG4gICAgICAgIHJldHVybiBwYXJzZVJlY29yZERlZihkZWYsIHJlZnMpO1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gcGFyc2VEZWYoZGVmLmtleVR5cGUuX2RlZiwge1xuICAgICAgICAuLi5yZWZzLFxuICAgICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiaXRlbXNcIiwgXCJpdGVtc1wiLCBcIjBcIl0sXG4gICAgfSkgfHwge307XG4gICAgY29uc3QgdmFsdWVzID0gcGFyc2VEZWYoZGVmLnZhbHVlVHlwZS5fZGVmLCB7XG4gICAgICAgIC4uLnJlZnMsXG4gICAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJpdGVtc1wiLCBcIml0ZW1zXCIsIFwiMVwiXSxcbiAgICB9KSB8fCB7fTtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgIG1heEl0ZW1zOiAxMjUsXG4gICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBpdGVtczogW2tleXMsIHZhbHVlc10sXG4gICAgICAgICAgICBtaW5JdGVtczogMixcbiAgICAgICAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgICB9LFxuICAgIH07XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTmF0aXZlRW51bURlZihkZWYpIHtcbiAgICBjb25zdCBvYmplY3QgPSBkZWYudmFsdWVzO1xuICAgIGNvbnN0IGFjdHVhbEtleXMgPSBPYmplY3Qua2V5cyhkZWYudmFsdWVzKS5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIG9iamVjdFtvYmplY3Rba2V5XV0gIT09IFwibnVtYmVyXCI7XG4gICAgfSk7XG4gICAgY29uc3QgYWN0dWFsVmFsdWVzID0gYWN0dWFsS2V5cy5tYXAoKGtleSkgPT4gb2JqZWN0W2tleV0pO1xuICAgIGNvbnN0IHBhcnNlZFR5cGVzID0gQXJyYXkuZnJvbShuZXcgU2V0KGFjdHVhbFZhbHVlcy5tYXAoKHZhbHVlcykgPT4gdHlwZW9mIHZhbHVlcykpKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBwYXJzZWRUeXBlcy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgID8gcGFyc2VkVHlwZXNbMF0gPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICA/IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICA6IFwibnVtYmVyXCJcbiAgICAgICAgICAgIDogW1wic3RyaW5nXCIsIFwibnVtYmVyXCJdLFxuICAgICAgICBlbnVtOiBhY3R1YWxWYWx1ZXMsXG4gICAgfTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gcGFyc2VOZXZlckRlZigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBub3Q6IHt9LFxuICAgIH07XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTnVsbERlZihyZWZzKSB7XG4gICAgcmV0dXJuIHJlZnMudGFyZ2V0ID09PSBcIm9wZW5BcGkzXCJcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBlbnVtOiBbXCJudWxsXCJdLFxuICAgICAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm51bGxcIixcbiAgICAgICAgfTtcbn1cbiIsICJpbXBvcnQgeyBwYXJzZURlZiB9IGZyb20gXCIuLi9wYXJzZURlZi5qc1wiO1xuZXhwb3J0IGNvbnN0IHByaW1pdGl2ZU1hcHBpbmdzID0ge1xuICAgIFpvZFN0cmluZzogXCJzdHJpbmdcIixcbiAgICBab2ROdW1iZXI6IFwibnVtYmVyXCIsXG4gICAgWm9kQmlnSW50OiBcImludGVnZXJcIixcbiAgICBab2RCb29sZWFuOiBcImJvb2xlYW5cIixcbiAgICBab2ROdWxsOiBcIm51bGxcIixcbn07XG5leHBvcnQgZnVuY3Rpb24gcGFyc2VVbmlvbkRlZihkZWYsIHJlZnMpIHtcbiAgICBpZiAocmVmcy50YXJnZXQgPT09IFwib3BlbkFwaTNcIilcbiAgICAgICAgcmV0dXJuIGFzQW55T2YoZGVmLCByZWZzKTtcbiAgICBjb25zdCBvcHRpb25zID0gZGVmLm9wdGlvbnMgaW5zdGFuY2VvZiBNYXAgPyBBcnJheS5mcm9tKGRlZi5vcHRpb25zLnZhbHVlcygpKSA6IGRlZi5vcHRpb25zO1xuICAgIC8vIFRoaXMgYmxvY2tzIHRyaWVzIHRvIGxvb2sgYWhlYWQgYSBiaXQgdG8gcHJvZHVjZSBuaWNlciBsb29raW5nIHNjaGVtYXMgd2l0aCB0eXBlIGFycmF5IGluc3RlYWQgb2YgYW55T2YuXG4gICAgaWYgKG9wdGlvbnMuZXZlcnkoKHgpID0+IHguX2RlZi50eXBlTmFtZSBpbiBwcmltaXRpdmVNYXBwaW5ncyAmJlxuICAgICAgICAoIXguX2RlZi5jaGVja3MgfHwgIXguX2RlZi5jaGVja3MubGVuZ3RoKSkpIHtcbiAgICAgICAgLy8gYWxsIHR5cGVzIGluIHVuaW9uIGFyZSBwcmltaXRpdmUgYW5kIGxhY2sgY2hlY2tzLCBzbyBtaWdodCBhcyB3ZWxsIHNxdWFzaCBpbnRvIHt0eXBlOiBbLi4uXX1cbiAgICAgICAgY29uc3QgdHlwZXMgPSBvcHRpb25zLnJlZHVjZSgodHlwZXMsIHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBwcmltaXRpdmVNYXBwaW5nc1t4Ll9kZWYudHlwZU5hbWVdOyAvL0NhbiBiZSBzYWZlbHkgY2FzdGVkIGR1ZSB0byByb3cgNDNcbiAgICAgICAgICAgIHJldHVybiB0eXBlICYmICF0eXBlcy5pbmNsdWRlcyh0eXBlKSA/IFsuLi50eXBlcywgdHlwZV0gOiB0eXBlcztcbiAgICAgICAgfSwgW10pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogdHlwZXMubGVuZ3RoID4gMSA/IHR5cGVzIDogdHlwZXNbMF0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIGVsc2UgaWYgKG9wdGlvbnMuZXZlcnkoKHgpID0+IHguX2RlZi50eXBlTmFtZSA9PT0gXCJab2RMaXRlcmFsXCIgJiYgIXguZGVzY3JpcHRpb24pKSB7XG4gICAgICAgIC8vIGFsbCBvcHRpb25zIGxpdGVyYWxzXG4gICAgICAgIGNvbnN0IHR5cGVzID0gb3B0aW9ucy5yZWR1Y2UoKGFjYywgeCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdHlwZSA9IHR5cGVvZiB4Ll9kZWYudmFsdWU7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uYWNjLCB0eXBlXTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiYmlnaW50XCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uYWNjLCBcImludGVnZXJcIl07XG4gICAgICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICAgICAgICBpZiAoeC5fZGVmLnZhbHVlID09PSBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5hY2MsIFwibnVsbFwiXTtcbiAgICAgICAgICAgICAgICBjYXNlIFwic3ltYm9sXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInVuZGVmaW5lZFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtdKTtcbiAgICAgICAgaWYgKHR5cGVzLmxlbmd0aCA9PT0gb3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGFsbCB0aGUgbGl0ZXJhbHMgYXJlIHByaW1pdGl2ZSwgYXMgZmFyIGFzIG51bGwgY2FuIGJlIGNvbnNpZGVyZWQgcHJpbWl0aXZlXG4gICAgICAgICAgICBjb25zdCB1bmlxdWVUeXBlcyA9IHR5cGVzLmZpbHRlcigoeCwgaSwgYSkgPT4gYS5pbmRleE9mKHgpID09PSBpKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogdW5pcXVlVHlwZXMubGVuZ3RoID4gMSA/IHVuaXF1ZVR5cGVzIDogdW5pcXVlVHlwZXNbMF0sXG4gICAgICAgICAgICAgICAgZW51bTogb3B0aW9ucy5yZWR1Y2UoKGFjYywgeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjLmluY2x1ZGVzKHguX2RlZi52YWx1ZSkgPyBhY2MgOiBbLi4uYWNjLCB4Ll9kZWYudmFsdWVdO1xuICAgICAgICAgICAgICAgIH0sIFtdKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAob3B0aW9ucy5ldmVyeSgoeCkgPT4geC5fZGVmLnR5cGVOYW1lID09PSBcIlpvZEVudW1cIikpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBlbnVtOiBvcHRpb25zLnJlZHVjZSgoYWNjLCB4KSA9PiBbXG4gICAgICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgICAgIC4uLnguX2RlZi52YWx1ZXMuZmlsdGVyKCh4KSA9PiAhYWNjLmluY2x1ZGVzKHgpKSxcbiAgICAgICAgICAgIF0sIFtdKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGFzQW55T2YoZGVmLCByZWZzKTtcbn1cbmNvbnN0IGFzQW55T2YgPSAoZGVmLCByZWZzKSA9PiB7XG4gICAgY29uc3QgYW55T2YgPSAoZGVmLm9wdGlvbnMgaW5zdGFuY2VvZiBNYXBcbiAgICAgICAgPyBBcnJheS5mcm9tKGRlZi5vcHRpb25zLnZhbHVlcygpKVxuICAgICAgICA6IGRlZi5vcHRpb25zKVxuICAgICAgICAubWFwKCh4LCBpKSA9PiBwYXJzZURlZih4Ll9kZWYsIHtcbiAgICAgICAgLi4ucmVmcyxcbiAgICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcImFueU9mXCIsIGAke2l9YF0sXG4gICAgfSkpXG4gICAgICAgIC5maWx0ZXIoKHgpID0+ICEheCAmJlxuICAgICAgICAoIXJlZnMuc3RyaWN0VW5pb25zIHx8XG4gICAgICAgICAgICAodHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgT2JqZWN0LmtleXMoeCkubGVuZ3RoID4gMCkpKTtcbiAgICByZXR1cm4gYW55T2YubGVuZ3RoID8geyBhbnlPZiB9IDogdW5kZWZpbmVkO1xufTtcbiIsICJpbXBvcnQgeyBwYXJzZURlZiB9IGZyb20gXCIuLi9wYXJzZURlZi5qc1wiO1xuaW1wb3J0IHsgcHJpbWl0aXZlTWFwcGluZ3MgfSBmcm9tIFwiLi91bmlvbi5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTnVsbGFibGVEZWYoZGVmLCByZWZzKSB7XG4gICAgaWYgKFtcIlpvZFN0cmluZ1wiLCBcIlpvZE51bWJlclwiLCBcIlpvZEJpZ0ludFwiLCBcIlpvZEJvb2xlYW5cIiwgXCJab2ROdWxsXCJdLmluY2x1ZGVzKGRlZi5pbm5lclR5cGUuX2RlZi50eXBlTmFtZSkgJiZcbiAgICAgICAgKCFkZWYuaW5uZXJUeXBlLl9kZWYuY2hlY2tzIHx8ICFkZWYuaW5uZXJUeXBlLl9kZWYuY2hlY2tzLmxlbmd0aCkpIHtcbiAgICAgICAgaWYgKHJlZnMudGFyZ2V0ID09PSBcIm9wZW5BcGkzXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogcHJpbWl0aXZlTWFwcGluZ3NbZGVmLmlubmVyVHlwZS5fZGVmLnR5cGVOYW1lXSxcbiAgICAgICAgICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFtcbiAgICAgICAgICAgICAgICBwcmltaXRpdmVNYXBwaW5nc1tkZWYuaW5uZXJUeXBlLl9kZWYudHlwZU5hbWVdLFxuICAgICAgICAgICAgICAgIFwibnVsbFwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHJlZnMudGFyZ2V0ID09PSBcIm9wZW5BcGkzXCIpIHtcbiAgICAgICAgY29uc3QgYmFzZSA9IHBhcnNlRGVmKGRlZi5pbm5lclR5cGUuX2RlZiwge1xuICAgICAgICAgICAgLi4ucmVmcyxcbiAgICAgICAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aF0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoYmFzZSAmJiBcIiRyZWZcIiBpbiBiYXNlKVxuICAgICAgICAgICAgcmV0dXJuIHsgYWxsT2Y6IFtiYXNlXSwgbnVsbGFibGU6IHRydWUgfTtcbiAgICAgICAgcmV0dXJuIGJhc2UgJiYgeyAuLi5iYXNlLCBudWxsYWJsZTogdHJ1ZSB9O1xuICAgIH1cbiAgICBjb25zdCBiYXNlID0gcGFyc2VEZWYoZGVmLmlubmVyVHlwZS5fZGVmLCB7XG4gICAgICAgIC4uLnJlZnMsXG4gICAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhbnlPZlwiLCBcIjBcIl0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGJhc2UgJiYgeyBhbnlPZjogW2Jhc2UsIHsgdHlwZTogXCJudWxsXCIgfV0gfTtcbn1cbiIsICJpbXBvcnQgeyBhZGRFcnJvck1lc3NhZ2UsIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMsIH0gZnJvbSBcIi4uL2Vycm9yTWVzc2FnZXMuanNcIjtcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU51bWJlckRlZihkZWYsIHJlZnMpIHtcbiAgICBjb25zdCByZXMgPSB7XG4gICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgfTtcbiAgICBpZiAoIWRlZi5jaGVja3MpXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgZm9yIChjb25zdCBjaGVjayBvZiBkZWYuY2hlY2tzKSB7XG4gICAgICAgIHN3aXRjaCAoY2hlY2sua2luZCkge1xuICAgICAgICAgICAgY2FzZSBcImludFwiOlxuICAgICAgICAgICAgICAgIHJlcy50eXBlID0gXCJpbnRlZ2VyXCI7XG4gICAgICAgICAgICAgICAgYWRkRXJyb3JNZXNzYWdlKHJlcywgXCJ0eXBlXCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm1pblwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZzLnRhcmdldCA9PT0gXCJqc29uU2NoZW1hN1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGVjay5pbmNsdXNpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1pbmltdW1cIiwgY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwiZXhjbHVzaXZlTWluaW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2hlY2suaW5jbHVzaXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZXhjbHVzaXZlTWluaW11bSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWluaW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm1heFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZzLnRhcmdldCA9PT0gXCJqc29uU2NoZW1hN1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGVjay5pbmNsdXNpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1heGltdW1cIiwgY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwiZXhjbHVzaXZlTWF4aW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2hlY2suaW5jbHVzaXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZXhjbHVzaXZlTWF4aW11bSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWF4aW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm11bHRpcGxlT2ZcIjpcbiAgICAgICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtdWx0aXBsZU9mXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuIiwgImltcG9ydCB7IFpvZE9wdGlvbmFsIH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgcGFyc2VEZWYgfSBmcm9tIFwiLi4vcGFyc2VEZWYuanNcIjtcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU9iamVjdERlZihkZWYsIHJlZnMpIHtcbiAgICBjb25zdCBmb3JjZU9wdGlvbmFsSW50b051bGxhYmxlID0gcmVmcy50YXJnZXQgPT09IFwib3BlbkFpXCI7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICB9O1xuICAgIGNvbnN0IHJlcXVpcmVkID0gW107XG4gICAgY29uc3Qgc2hhcGUgPSBkZWYuc2hhcGUoKTtcbiAgICBmb3IgKGNvbnN0IHByb3BOYW1lIGluIHNoYXBlKSB7XG4gICAgICAgIGxldCBwcm9wRGVmID0gc2hhcGVbcHJvcE5hbWVdO1xuICAgICAgICBpZiAocHJvcERlZiA9PT0gdW5kZWZpbmVkIHx8IHByb3BEZWYuX2RlZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcHJvcE9wdGlvbmFsID0gc2FmZUlzT3B0aW9uYWwocHJvcERlZik7XG4gICAgICAgIGlmIChwcm9wT3B0aW9uYWwgJiYgZm9yY2VPcHRpb25hbEludG9OdWxsYWJsZSkge1xuICAgICAgICAgICAgaWYgKHByb3BEZWYgaW5zdGFuY2VvZiBab2RPcHRpb25hbCkge1xuICAgICAgICAgICAgICAgIHByb3BEZWYgPSBwcm9wRGVmLl9kZWYuaW5uZXJUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFwcm9wRGVmLmlzTnVsbGFibGUoKSkge1xuICAgICAgICAgICAgICAgIHByb3BEZWYgPSBwcm9wRGVmLm51bGxhYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcm9wT3B0aW9uYWwgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJzZWREZWYgPSBwYXJzZURlZihwcm9wRGVmLl9kZWYsIHtcbiAgICAgICAgICAgIC4uLnJlZnMsXG4gICAgICAgICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwicHJvcGVydGllc1wiLCBwcm9wTmFtZV0sXG4gICAgICAgICAgICBwcm9wZXJ0eVBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcInByb3BlcnRpZXNcIiwgcHJvcE5hbWVdLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHBhcnNlZERlZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHJvcGVydGllc1twcm9wTmFtZV0gPSBwYXJzZWREZWY7XG4gICAgICAgIGlmICghcHJvcE9wdGlvbmFsKSB7XG4gICAgICAgICAgICByZXF1aXJlZC5wdXNoKHByb3BOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocmVxdWlyZWQubGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdC5yZXF1aXJlZCA9IHJlcXVpcmVkO1xuICAgIH1cbiAgICBjb25zdCBhZGRpdGlvbmFsUHJvcGVydGllcyA9IGRlY2lkZUFkZGl0aW9uYWxQcm9wZXJ0aWVzKGRlZiwgcmVmcyk7XG4gICAgaWYgKGFkZGl0aW9uYWxQcm9wZXJ0aWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVzdWx0LmFkZGl0aW9uYWxQcm9wZXJ0aWVzID0gYWRkaXRpb25hbFByb3BlcnRpZXM7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBkZWNpZGVBZGRpdGlvbmFsUHJvcGVydGllcyhkZWYsIHJlZnMpIHtcbiAgICBpZiAoZGVmLmNhdGNoYWxsLl9kZWYudHlwZU5hbWUgIT09IFwiWm9kTmV2ZXJcIikge1xuICAgICAgICByZXR1cm4gcGFyc2VEZWYoZGVmLmNhdGNoYWxsLl9kZWYsIHtcbiAgICAgICAgICAgIC4uLnJlZnMsXG4gICAgICAgICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIl0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzd2l0Y2ggKGRlZi51bmtub3duS2V5cykge1xuICAgICAgICBjYXNlIFwicGFzc3Rocm91Z2hcIjpcbiAgICAgICAgICAgIHJldHVybiByZWZzLmFsbG93ZWRBZGRpdGlvbmFsUHJvcGVydGllcztcbiAgICAgICAgY2FzZSBcInN0cmljdFwiOlxuICAgICAgICAgICAgcmV0dXJuIHJlZnMucmVqZWN0ZWRBZGRpdGlvbmFsUHJvcGVydGllcztcbiAgICAgICAgY2FzZSBcInN0cmlwXCI6XG4gICAgICAgICAgICByZXR1cm4gcmVmcy5yZW1vdmVBZGRpdGlvbmFsU3RyYXRlZ3kgPT09IFwic3RyaWN0XCJcbiAgICAgICAgICAgICAgICA/IHJlZnMuYWxsb3dlZEFkZGl0aW9uYWxQcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgOiByZWZzLnJlamVjdGVkQWRkaXRpb25hbFByb3BlcnRpZXM7XG4gICAgfVxufVxuZnVuY3Rpb24gc2FmZUlzT3B0aW9uYWwoc2NoZW1hKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYS5pc09wdGlvbmFsKCk7XG4gICAgfVxuICAgIGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IHBhcnNlRGVmIH0gZnJvbSBcIi4uL3BhcnNlRGVmLmpzXCI7XG5leHBvcnQgY29uc3QgcGFyc2VPcHRpb25hbERlZiA9IChkZWYsIHJlZnMpID0+IHtcbiAgICBpZiAocmVmcy5jdXJyZW50UGF0aC50b1N0cmluZygpID09PSByZWZzLnByb3BlcnR5UGF0aD8udG9TdHJpbmcoKSkge1xuICAgICAgICByZXR1cm4gcGFyc2VEZWYoZGVmLmlubmVyVHlwZS5fZGVmLCByZWZzKTtcbiAgICB9XG4gICAgY29uc3QgaW5uZXJTY2hlbWEgPSBwYXJzZURlZihkZWYuaW5uZXJUeXBlLl9kZWYsIHtcbiAgICAgICAgLi4ucmVmcyxcbiAgICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcImFueU9mXCIsIFwiMVwiXSxcbiAgICB9KTtcbiAgICByZXR1cm4gaW5uZXJTY2hlbWFcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBhbnlPZjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbm90OiB7fSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlubmVyU2NoZW1hLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgICA6IHt9O1xufTtcbiIsICJpbXBvcnQgeyBwYXJzZURlZiB9IGZyb20gXCIuLi9wYXJzZURlZi5qc1wiO1xuZXhwb3J0IGNvbnN0IHBhcnNlUGlwZWxpbmVEZWYgPSAoZGVmLCByZWZzKSA9PiB7XG4gICAgaWYgKHJlZnMucGlwZVN0cmF0ZWd5ID09PSBcImlucHV0XCIpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlRGVmKGRlZi5pbi5fZGVmLCByZWZzKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocmVmcy5waXBlU3RyYXRlZ3kgPT09IFwib3V0cHV0XCIpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlRGVmKGRlZi5vdXQuX2RlZiwgcmVmcyk7XG4gICAgfVxuICAgIGNvbnN0IGEgPSBwYXJzZURlZihkZWYuaW4uX2RlZiwge1xuICAgICAgICAuLi5yZWZzLFxuICAgICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiYWxsT2ZcIiwgXCIwXCJdLFxuICAgIH0pO1xuICAgIGNvbnN0IGIgPSBwYXJzZURlZihkZWYub3V0Ll9kZWYsIHtcbiAgICAgICAgLi4ucmVmcyxcbiAgICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcImFsbE9mXCIsIGEgPyBcIjFcIiA6IFwiMFwiXSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBhbGxPZjogW2EsIGJdLmZpbHRlcigoeCkgPT4geCAhPT0gdW5kZWZpbmVkKSxcbiAgICB9O1xufTtcbiIsICJpbXBvcnQgeyBwYXJzZURlZiB9IGZyb20gXCIuLi9wYXJzZURlZi5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUHJvbWlzZURlZihkZWYsIHJlZnMpIHtcbiAgICByZXR1cm4gcGFyc2VEZWYoZGVmLnR5cGUuX2RlZiwgcmVmcyk7XG59XG4iLCAiaW1wb3J0IHsgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyB9IGZyb20gXCIuLi9lcnJvck1lc3NhZ2VzLmpzXCI7XG5pbXBvcnQgeyBwYXJzZURlZiB9IGZyb20gXCIuLi9wYXJzZURlZi5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU2V0RGVmKGRlZiwgcmVmcykge1xuICAgIGNvbnN0IGl0ZW1zID0gcGFyc2VEZWYoZGVmLnZhbHVlVHlwZS5fZGVmLCB7XG4gICAgICAgIC4uLnJlZnMsXG4gICAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJpdGVtc1wiXSxcbiAgICB9KTtcbiAgICBjb25zdCBzY2hlbWEgPSB7XG4gICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgdW5pcXVlSXRlbXM6IHRydWUsXG4gICAgICAgIGl0ZW1zLFxuICAgIH07XG4gICAgaWYgKGRlZi5taW5TaXplKSB7XG4gICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMoc2NoZW1hLCBcIm1pbkl0ZW1zXCIsIGRlZi5taW5TaXplLnZhbHVlLCBkZWYubWluU2l6ZS5tZXNzYWdlLCByZWZzKTtcbiAgICB9XG4gICAgaWYgKGRlZi5tYXhTaXplKSB7XG4gICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMoc2NoZW1hLCBcIm1heEl0ZW1zXCIsIGRlZi5tYXhTaXplLnZhbHVlLCBkZWYubWF4U2l6ZS5tZXNzYWdlLCByZWZzKTtcbiAgICB9XG4gICAgcmV0dXJuIHNjaGVtYTtcbn1cbiIsICJpbXBvcnQgeyBwYXJzZURlZiB9IGZyb20gXCIuLi9wYXJzZURlZi5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVHVwbGVEZWYoZGVmLCByZWZzKSB7XG4gICAgaWYgKGRlZi5yZXN0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBtaW5JdGVtczogZGVmLml0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgIGl0ZW1zOiBkZWYuaXRlbXNcbiAgICAgICAgICAgICAgICAubWFwKCh4LCBpKSA9PiBwYXJzZURlZih4Ll9kZWYsIHtcbiAgICAgICAgICAgICAgICAuLi5yZWZzLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJpdGVtc1wiLCBgJHtpfWBdLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCB4KSA9PiAoeCA9PT0gdW5kZWZpbmVkID8gYWNjIDogWy4uLmFjYywgeF0pLCBbXSksXG4gICAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IHBhcnNlRGVmKGRlZi5yZXN0Ll9kZWYsIHtcbiAgICAgICAgICAgICAgICAuLi5yZWZzLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhZGRpdGlvbmFsSXRlbXNcIl0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBtaW5JdGVtczogZGVmLml0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgIG1heEl0ZW1zOiBkZWYuaXRlbXMubGVuZ3RoLFxuICAgICAgICAgICAgaXRlbXM6IGRlZi5pdGVtc1xuICAgICAgICAgICAgICAgIC5tYXAoKHgsIGkpID0+IHBhcnNlRGVmKHguX2RlZiwge1xuICAgICAgICAgICAgICAgIC4uLnJlZnMsXG4gICAgICAgICAgICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcIml0ZW1zXCIsIGAke2l9YF0sXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAucmVkdWNlKChhY2MsIHgpID0+ICh4ID09PSB1bmRlZmluZWQgPyBhY2MgOiBbLi4uYWNjLCB4XSksIFtdKSxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVW5kZWZpbmVkRGVmKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5vdDoge30sXG4gICAgfTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gcGFyc2VVbmtub3duRGVmKCkge1xuICAgIHJldHVybiB7fTtcbn1cbiIsICJpbXBvcnQgeyBwYXJzZURlZiB9IGZyb20gXCIuLi9wYXJzZURlZi5qc1wiO1xuZXhwb3J0IGNvbnN0IHBhcnNlUmVhZG9ubHlEZWYgPSAoZGVmLCByZWZzKSA9PiB7XG4gICAgcmV0dXJuIHBhcnNlRGVmKGRlZi5pbm5lclR5cGUuX2RlZiwgcmVmcyk7XG59O1xuIiwgImltcG9ydCB7IFpvZEZpcnN0UGFydHlUeXBlS2luZCB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IHBhcnNlQW55RGVmIH0gZnJvbSBcIi4vcGFyc2Vycy9hbnkuanNcIjtcbmltcG9ydCB7IHBhcnNlQXJyYXlEZWYgfSBmcm9tIFwiLi9wYXJzZXJzL2FycmF5LmpzXCI7XG5pbXBvcnQgeyBwYXJzZUJpZ2ludERlZiB9IGZyb20gXCIuL3BhcnNlcnMvYmlnaW50LmpzXCI7XG5pbXBvcnQgeyBwYXJzZUJvb2xlYW5EZWYgfSBmcm9tIFwiLi9wYXJzZXJzL2Jvb2xlYW4uanNcIjtcbmltcG9ydCB7IHBhcnNlQnJhbmRlZERlZiB9IGZyb20gXCIuL3BhcnNlcnMvYnJhbmRlZC5qc1wiO1xuaW1wb3J0IHsgcGFyc2VDYXRjaERlZiB9IGZyb20gXCIuL3BhcnNlcnMvY2F0Y2guanNcIjtcbmltcG9ydCB7IHBhcnNlRGF0ZURlZiB9IGZyb20gXCIuL3BhcnNlcnMvZGF0ZS5qc1wiO1xuaW1wb3J0IHsgcGFyc2VEZWZhdWx0RGVmIH0gZnJvbSBcIi4vcGFyc2Vycy9kZWZhdWx0LmpzXCI7XG5pbXBvcnQgeyBwYXJzZUVmZmVjdHNEZWYgfSBmcm9tIFwiLi9wYXJzZXJzL2VmZmVjdHMuanNcIjtcbmltcG9ydCB7IHBhcnNlRW51bURlZiB9IGZyb20gXCIuL3BhcnNlcnMvZW51bS5qc1wiO1xuaW1wb3J0IHsgcGFyc2VJbnRlcnNlY3Rpb25EZWYgfSBmcm9tIFwiLi9wYXJzZXJzL2ludGVyc2VjdGlvbi5qc1wiO1xuaW1wb3J0IHsgcGFyc2VMaXRlcmFsRGVmIH0gZnJvbSBcIi4vcGFyc2Vycy9saXRlcmFsLmpzXCI7XG5pbXBvcnQgeyBwYXJzZU1hcERlZiB9IGZyb20gXCIuL3BhcnNlcnMvbWFwLmpzXCI7XG5pbXBvcnQgeyBwYXJzZU5hdGl2ZUVudW1EZWYgfSBmcm9tIFwiLi9wYXJzZXJzL25hdGl2ZUVudW0uanNcIjtcbmltcG9ydCB7IHBhcnNlTmV2ZXJEZWYgfSBmcm9tIFwiLi9wYXJzZXJzL25ldmVyLmpzXCI7XG5pbXBvcnQgeyBwYXJzZU51bGxEZWYgfSBmcm9tIFwiLi9wYXJzZXJzL251bGwuanNcIjtcbmltcG9ydCB7IHBhcnNlTnVsbGFibGVEZWYgfSBmcm9tIFwiLi9wYXJzZXJzL251bGxhYmxlLmpzXCI7XG5pbXBvcnQgeyBwYXJzZU51bWJlckRlZiB9IGZyb20gXCIuL3BhcnNlcnMvbnVtYmVyLmpzXCI7XG5pbXBvcnQgeyBwYXJzZU9iamVjdERlZiB9IGZyb20gXCIuL3BhcnNlcnMvb2JqZWN0LmpzXCI7XG5pbXBvcnQgeyBwYXJzZU9wdGlvbmFsRGVmIH0gZnJvbSBcIi4vcGFyc2Vycy9vcHRpb25hbC5qc1wiO1xuaW1wb3J0IHsgcGFyc2VQaXBlbGluZURlZiB9IGZyb20gXCIuL3BhcnNlcnMvcGlwZWxpbmUuanNcIjtcbmltcG9ydCB7IHBhcnNlUHJvbWlzZURlZiB9IGZyb20gXCIuL3BhcnNlcnMvcHJvbWlzZS5qc1wiO1xuaW1wb3J0IHsgcGFyc2VSZWNvcmREZWYgfSBmcm9tIFwiLi9wYXJzZXJzL3JlY29yZC5qc1wiO1xuaW1wb3J0IHsgcGFyc2VTZXREZWYgfSBmcm9tIFwiLi9wYXJzZXJzL3NldC5qc1wiO1xuaW1wb3J0IHsgcGFyc2VTdHJpbmdEZWYgfSBmcm9tIFwiLi9wYXJzZXJzL3N0cmluZy5qc1wiO1xuaW1wb3J0IHsgcGFyc2VUdXBsZURlZiB9IGZyb20gXCIuL3BhcnNlcnMvdHVwbGUuanNcIjtcbmltcG9ydCB7IHBhcnNlVW5kZWZpbmVkRGVmIH0gZnJvbSBcIi4vcGFyc2Vycy91bmRlZmluZWQuanNcIjtcbmltcG9ydCB7IHBhcnNlVW5pb25EZWYgfSBmcm9tIFwiLi9wYXJzZXJzL3VuaW9uLmpzXCI7XG5pbXBvcnQgeyBwYXJzZVVua25vd25EZWYgfSBmcm9tIFwiLi9wYXJzZXJzL3Vua25vd24uanNcIjtcbmltcG9ydCB7IHBhcnNlUmVhZG9ubHlEZWYgfSBmcm9tIFwiLi9wYXJzZXJzL3JlYWRvbmx5LmpzXCI7XG5leHBvcnQgY29uc3Qgc2VsZWN0UGFyc2VyID0gKGRlZiwgdHlwZU5hbWUsIHJlZnMpID0+IHtcbiAgICBzd2l0Y2ggKHR5cGVOYW1lKSB7XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFN0cmluZzpcbiAgICAgICAgICAgIHJldHVybiBwYXJzZVN0cmluZ0RlZihkZWYsIHJlZnMpO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROdW1iZXI6XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VOdW1iZXJEZWYoZGVmLCByZWZzKTtcbiAgICAgICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kT2JqZWN0OlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlT2JqZWN0RGVmKGRlZiwgcmVmcyk7XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJpZ0ludDpcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUJpZ2ludERlZihkZWYsIHJlZnMpO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RCb29sZWFuOlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlQm9vbGVhbkRlZigpO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2REYXRlOlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlRGF0ZURlZihkZWYsIHJlZnMpO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RVbmRlZmluZWQ6XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VVbmRlZmluZWREZWYoKTtcbiAgICAgICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTnVsbDpcbiAgICAgICAgICAgIHJldHVybiBwYXJzZU51bGxEZWYocmVmcyk7XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEFycmF5OlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlQXJyYXlEZWYoZGVmLCByZWZzKTtcbiAgICAgICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kVW5pb246XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZERpc2NyaW1pbmF0ZWRVbmlvbjpcbiAgICAgICAgICAgIHJldHVybiBwYXJzZVVuaW9uRGVmKGRlZiwgcmVmcyk7XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEludGVyc2VjdGlvbjpcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludGVyc2VjdGlvbkRlZihkZWYsIHJlZnMpO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RUdXBsZTpcbiAgICAgICAgICAgIHJldHVybiBwYXJzZVR1cGxlRGVmKGRlZiwgcmVmcyk7XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFJlY29yZDpcbiAgICAgICAgICAgIHJldHVybiBwYXJzZVJlY29yZERlZihkZWYsIHJlZnMpO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RMaXRlcmFsOlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlTGl0ZXJhbERlZihkZWYsIHJlZnMpO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFbnVtOlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlRW51bURlZihkZWYpO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROYXRpdmVFbnVtOlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlTmF0aXZlRW51bURlZihkZWYpO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROdWxsYWJsZTpcbiAgICAgICAgICAgIHJldHVybiBwYXJzZU51bGxhYmxlRGVmKGRlZiwgcmVmcyk7XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9wdGlvbmFsOlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlT3B0aW9uYWxEZWYoZGVmLCByZWZzKTtcbiAgICAgICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTWFwOlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlTWFwRGVmKGRlZiwgcmVmcyk7XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFNldDpcbiAgICAgICAgICAgIHJldHVybiBwYXJzZVNldERlZihkZWYsIHJlZnMpO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RMYXp5OlxuICAgICAgICAgICAgcmV0dXJuICgpID0+IGRlZi5nZXR0ZXIoKS5fZGVmO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RQcm9taXNlOlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlUHJvbWlzZURlZihkZWYsIHJlZnMpO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROYU46XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE5ldmVyOlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlTmV2ZXJEZWYoKTtcbiAgICAgICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRWZmZWN0czpcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUVmZmVjdHNEZWYoZGVmLCByZWZzKTtcbiAgICAgICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQW55OlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlQW55RGVmKCk7XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFVua25vd246XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VVbmtub3duRGVmKCk7XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZERlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VEZWZhdWx0RGVmKGRlZiwgcmVmcyk7XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJyYW5kZWQ6XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VCcmFuZGVkRGVmKGRlZiwgcmVmcyk7XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFJlYWRvbmx5OlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlUmVhZG9ubHlEZWYoZGVmLCByZWZzKTtcbiAgICAgICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQ2F0Y2g6XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VDYXRjaERlZihkZWYsIHJlZnMpO1xuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RQaXBlbGluZTpcbiAgICAgICAgICAgIHJldHVybiBwYXJzZVBpcGVsaW5lRGVmKGRlZiwgcmVmcyk7XG4gICAgICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEZ1bmN0aW9uOlxuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RWb2lkOlxuICAgICAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTeW1ib2w6XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLyogYzggaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIHJldHVybiAoKF8pID0+IHVuZGVmaW5lZCkodHlwZU5hbWUpO1xuICAgIH1cbn07XG4iLCAiaW1wb3J0IHsgaWdub3JlT3ZlcnJpZGUgfSBmcm9tIFwiLi9PcHRpb25zLmpzXCI7XG5pbXBvcnQgeyBzZWxlY3RQYXJzZXIgfSBmcm9tIFwiLi9zZWxlY3RQYXJzZXIuanNcIjtcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZURlZihkZWYsIHJlZnMsIGZvcmNlUmVzb2x1dGlvbiA9IGZhbHNlKSB7XG4gICAgY29uc3Qgc2Vlbkl0ZW0gPSByZWZzLnNlZW4uZ2V0KGRlZik7XG4gICAgaWYgKHJlZnMub3ZlcnJpZGUpIHtcbiAgICAgICAgY29uc3Qgb3ZlcnJpZGVSZXN1bHQgPSByZWZzLm92ZXJyaWRlPy4oZGVmLCByZWZzLCBzZWVuSXRlbSwgZm9yY2VSZXNvbHV0aW9uKTtcbiAgICAgICAgaWYgKG92ZXJyaWRlUmVzdWx0ICE9PSBpZ25vcmVPdmVycmlkZSkge1xuICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlUmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChzZWVuSXRlbSAmJiAhZm9yY2VSZXNvbHV0aW9uKSB7XG4gICAgICAgIGNvbnN0IHNlZW5TY2hlbWEgPSBnZXQkcmVmKHNlZW5JdGVtLCByZWZzKTtcbiAgICAgICAgaWYgKHNlZW5TY2hlbWEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNlZW5TY2hlbWE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmV3SXRlbSA9IHsgZGVmLCBwYXRoOiByZWZzLmN1cnJlbnRQYXRoLCBqc29uU2NoZW1hOiB1bmRlZmluZWQgfTtcbiAgICByZWZzLnNlZW4uc2V0KGRlZiwgbmV3SXRlbSk7XG4gICAgY29uc3QganNvblNjaGVtYU9yR2V0dGVyID0gc2VsZWN0UGFyc2VyKGRlZiwgZGVmLnR5cGVOYW1lLCByZWZzKTtcbiAgICAvLyBJZiB0aGUgcmV0dXJuIHdhcyBhIGZ1bmN0aW9uLCB0aGVuIHRoZSBpbm5lciBkZWZpbml0aW9uIG5lZWRzIHRvIGJlIGV4dHJhY3RlZCBiZWZvcmUgYSBjYWxsIHRvIHBhcnNlRGVmIChyZWN1cnNpdmUpXG4gICAgY29uc3QganNvblNjaGVtYSA9IHR5cGVvZiBqc29uU2NoZW1hT3JHZXR0ZXIgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICA/IHBhcnNlRGVmKGpzb25TY2hlbWFPckdldHRlcigpLCByZWZzKVxuICAgICAgICA6IGpzb25TY2hlbWFPckdldHRlcjtcbiAgICBpZiAoanNvblNjaGVtYSkge1xuICAgICAgICBhZGRNZXRhKGRlZiwgcmVmcywganNvblNjaGVtYSk7XG4gICAgfVxuICAgIGlmIChyZWZzLnBvc3RQcm9jZXNzKSB7XG4gICAgICAgIGNvbnN0IHBvc3RQcm9jZXNzUmVzdWx0ID0gcmVmcy5wb3N0UHJvY2Vzcyhqc29uU2NoZW1hLCBkZWYsIHJlZnMpO1xuICAgICAgICBuZXdJdGVtLmpzb25TY2hlbWEgPSBqc29uU2NoZW1hO1xuICAgICAgICByZXR1cm4gcG9zdFByb2Nlc3NSZXN1bHQ7XG4gICAgfVxuICAgIG5ld0l0ZW0uanNvblNjaGVtYSA9IGpzb25TY2hlbWE7XG4gICAgcmV0dXJuIGpzb25TY2hlbWE7XG59XG5jb25zdCBnZXQkcmVmID0gKGl0ZW0sIHJlZnMpID0+IHtcbiAgICBzd2l0Y2ggKHJlZnMuJHJlZlN0cmF0ZWd5KSB7XG4gICAgICAgIGNhc2UgXCJyb290XCI6XG4gICAgICAgICAgICByZXR1cm4geyAkcmVmOiBpdGVtLnBhdGguam9pbihcIi9cIikgfTtcbiAgICAgICAgY2FzZSBcInJlbGF0aXZlXCI6XG4gICAgICAgICAgICByZXR1cm4geyAkcmVmOiBnZXRSZWxhdGl2ZVBhdGgocmVmcy5jdXJyZW50UGF0aCwgaXRlbS5wYXRoKSB9O1xuICAgICAgICBjYXNlIFwibm9uZVwiOlxuICAgICAgICBjYXNlIFwic2VlblwiOiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5wYXRoLmxlbmd0aCA8IHJlZnMuY3VycmVudFBhdGgubGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgaXRlbS5wYXRoLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHJlZnMuY3VycmVudFBhdGhbaW5kZXhdID09PSB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFJlY3Vyc2l2ZSByZWZlcmVuY2UgZGV0ZWN0ZWQgYXQgJHtyZWZzLmN1cnJlbnRQYXRoLmpvaW4oXCIvXCIpfSEgRGVmYXVsdGluZyB0byBhbnlgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVmcy4kcmVmU3RyYXRlZ3kgPT09IFwic2VlblwiID8ge30gOiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59O1xuY29uc3QgZ2V0UmVsYXRpdmVQYXRoID0gKHBhdGhBLCBwYXRoQikgPT4ge1xuICAgIGxldCBpID0gMDtcbiAgICBmb3IgKDsgaSA8IHBhdGhBLmxlbmd0aCAmJiBpIDwgcGF0aEIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHBhdGhBW2ldICE9PSBwYXRoQltpXSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gWyhwYXRoQS5sZW5ndGggLSBpKS50b1N0cmluZygpLCAuLi5wYXRoQi5zbGljZShpKV0uam9pbihcIi9cIik7XG59O1xuY29uc3QgYWRkTWV0YSA9IChkZWYsIHJlZnMsIGpzb25TY2hlbWEpID0+IHtcbiAgICBpZiAoZGVmLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgIGpzb25TY2hlbWEuZGVzY3JpcHRpb24gPSBkZWYuZGVzY3JpcHRpb247XG4gICAgICAgIGlmIChyZWZzLm1hcmtkb3duRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIGpzb25TY2hlbWEubWFya2Rvd25EZXNjcmlwdGlvbiA9IGRlZi5kZXNjcmlwdGlvbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ganNvblNjaGVtYTtcbn07XG4iLCAiZXhwb3J0IHt9O1xuIiwgImltcG9ydCB7IHBhcnNlRGVmIH0gZnJvbSBcIi4vcGFyc2VEZWYuanNcIjtcbmltcG9ydCB7IGdldFJlZnMgfSBmcm9tIFwiLi9SZWZzLmpzXCI7XG5jb25zdCB6b2RUb0pzb25TY2hlbWEgPSAoc2NoZW1hLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgcmVmcyA9IGdldFJlZnMob3B0aW9ucyk7XG4gICAgY29uc3QgZGVmaW5pdGlvbnMgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gXCJvYmplY3RcIiAmJiBvcHRpb25zLmRlZmluaXRpb25zXG4gICAgICAgID8gT2JqZWN0LmVudHJpZXMob3B0aW9ucy5kZWZpbml0aW9ucykucmVkdWNlKChhY2MsIFtuYW1lLCBzY2hlbWFdKSA9PiAoe1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgW25hbWVdOiBwYXJzZURlZihzY2hlbWEuX2RlZiwge1xuICAgICAgICAgICAgICAgIC4uLnJlZnMsXG4gICAgICAgICAgICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmJhc2VQYXRoLCByZWZzLmRlZmluaXRpb25QYXRoLCBuYW1lXSxcbiAgICAgICAgICAgIH0sIHRydWUpID8/IHt9LFxuICAgICAgICB9KSwge30pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG5hbWUgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IG9wdGlvbnNcbiAgICAgICAgOiBvcHRpb25zPy5uYW1lU3RyYXRlZ3kgPT09IFwidGl0bGVcIlxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogb3B0aW9ucz8ubmFtZTtcbiAgICBjb25zdCBtYWluID0gcGFyc2VEZWYoc2NoZW1hLl9kZWYsIG5hbWUgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHJlZnNcbiAgICAgICAgOiB7XG4gICAgICAgICAgICAuLi5yZWZzLFxuICAgICAgICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmJhc2VQYXRoLCByZWZzLmRlZmluaXRpb25QYXRoLCBuYW1lXSxcbiAgICAgICAgfSwgZmFsc2UpID8/IHt9O1xuICAgIGNvbnN0IHRpdGxlID0gdHlwZW9mIG9wdGlvbnMgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgb3B0aW9ucy5uYW1lICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgb3B0aW9ucy5uYW1lU3RyYXRlZ3kgPT09IFwidGl0bGVcIlxuICAgICAgICA/IG9wdGlvbnMubmFtZVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGl0bGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBtYWluLnRpdGxlID0gdGl0bGU7XG4gICAgfVxuICAgIGNvbnN0IGNvbWJpbmVkID0gbmFtZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gZGVmaW5pdGlvbnNcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIC4uLm1haW4sXG4gICAgICAgICAgICAgICAgW3JlZnMuZGVmaW5pdGlvblBhdGhdOiBkZWZpbml0aW9ucyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogbWFpblxuICAgICAgICA6IHtcbiAgICAgICAgICAgICRyZWY6IFtcbiAgICAgICAgICAgICAgICAuLi4ocmVmcy4kcmVmU3RyYXRlZ3kgPT09IFwicmVsYXRpdmVcIiA/IFtdIDogcmVmcy5iYXNlUGF0aCksXG4gICAgICAgICAgICAgICAgcmVmcy5kZWZpbml0aW9uUGF0aCxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgXS5qb2luKFwiL1wiKSxcbiAgICAgICAgICAgIFtyZWZzLmRlZmluaXRpb25QYXRoXToge1xuICAgICAgICAgICAgICAgIC4uLmRlZmluaXRpb25zLFxuICAgICAgICAgICAgICAgIFtuYW1lXTogbWFpbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgaWYgKHJlZnMudGFyZ2V0ID09PSBcImpzb25TY2hlbWE3XCIpIHtcbiAgICAgICAgY29tYmluZWQuJHNjaGVtYSA9IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNy9zY2hlbWEjXCI7XG4gICAgfVxuICAgIGVsc2UgaWYgKHJlZnMudGFyZ2V0ID09PSBcImpzb25TY2hlbWEyMDE5LTA5XCIgfHwgcmVmcy50YXJnZXQgPT09IFwib3BlbkFpXCIpIHtcbiAgICAgICAgY29tYmluZWQuJHNjaGVtYSA9IFwiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAxOS0wOS9zY2hlbWEjXCI7XG4gICAgfVxuICAgIGlmIChyZWZzLnRhcmdldCA9PT0gXCJvcGVuQWlcIiAmJlxuICAgICAgICAoXCJhbnlPZlwiIGluIGNvbWJpbmVkIHx8XG4gICAgICAgICAgICBcIm9uZU9mXCIgaW4gY29tYmluZWQgfHxcbiAgICAgICAgICAgIFwiYWxsT2ZcIiBpbiBjb21iaW5lZCB8fFxuICAgICAgICAgICAgKFwidHlwZVwiIGluIGNvbWJpbmVkICYmIEFycmF5LmlzQXJyYXkoY29tYmluZWQudHlwZSkpKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBPcGVuQUkgbWF5IG5vdCBzdXBwb3J0IHNjaGVtYXMgd2l0aCB1bmlvbnMgYXMgcm9vdHMhIFRyeSB3cmFwcGluZyBpdCBpbiBhbiBvYmplY3QgcHJvcGVydHkuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gY29tYmluZWQ7XG59O1xuZXhwb3J0IHsgem9kVG9Kc29uU2NoZW1hIH07XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vT3B0aW9ucy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vUmVmcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JNZXNzYWdlcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2VEZWYuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlVHlwZXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlcnMvYW55LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYXJzZXJzL2FycmF5LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYXJzZXJzL2JpZ2ludC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2Vycy9ib29sZWFuLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYXJzZXJzL2JyYW5kZWQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlcnMvY2F0Y2guanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlcnMvZGF0ZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2Vycy9kZWZhdWx0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYXJzZXJzL2VmZmVjdHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlcnMvZW51bS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2Vycy9pbnRlcnNlY3Rpb24uanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlcnMvbGl0ZXJhbC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2Vycy9tYXAuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlcnMvbmF0aXZlRW51bS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2Vycy9uZXZlci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2Vycy9udWxsLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYXJzZXJzL251bGxhYmxlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYXJzZXJzL251bWJlci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2Vycy9vYmplY3QuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlcnMvb3B0aW9uYWwuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlcnMvcGlwZWxpbmUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlcnMvcHJvbWlzZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2Vycy9yZWFkb25seS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2Vycy9yZWNvcmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlcnMvc2V0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYXJzZXJzL3N0cmluZy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2Vycy90dXBsZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2Vycy91bmRlZmluZWQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlcnMvdW5pb24uanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlcnMvdW5rbm93bi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VsZWN0UGFyc2VyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi96b2RUb0pzb25TY2hlbWEuanNcIjtcbmltcG9ydCB7IHpvZFRvSnNvblNjaGVtYSB9IGZyb20gXCIuL3pvZFRvSnNvblNjaGVtYS5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgem9kVG9Kc29uU2NoZW1hO1xuIiwgbnVsbCwgbnVsbCwgbnVsbCwgIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYmluZChmbiwgdGhpc0FyZykge1xuICByZXR1cm4gZnVuY3Rpb24gd3JhcCgpIHtcbiAgICByZXR1cm4gZm4uYXBwbHkodGhpc0FyZywgYXJndW1lbnRzKTtcbiAgfTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBiaW5kIGZyb20gJy4vaGVscGVycy9iaW5kLmpzJztcblxuLy8gdXRpbHMgaXMgYSBsaWJyYXJ5IG9mIGdlbmVyaWMgaGVscGVyIGZ1bmN0aW9ucyBub24tc3BlY2lmaWMgdG8gYXhpb3NcblxuY29uc3Qge3RvU3RyaW5nfSA9IE9iamVjdC5wcm90b3R5cGU7XG5jb25zdCB7Z2V0UHJvdG90eXBlT2Z9ID0gT2JqZWN0O1xuXG5jb25zdCBraW5kT2YgPSAoY2FjaGUgPT4gdGhpbmcgPT4ge1xuICAgIGNvbnN0IHN0ciA9IHRvU3RyaW5nLmNhbGwodGhpbmcpO1xuICAgIHJldHVybiBjYWNoZVtzdHJdIHx8IChjYWNoZVtzdHJdID0gc3RyLnNsaWNlKDgsIC0xKS50b0xvd2VyQ2FzZSgpKTtcbn0pKE9iamVjdC5jcmVhdGUobnVsbCkpO1xuXG5jb25zdCBraW5kT2ZUZXN0ID0gKHR5cGUpID0+IHtcbiAgdHlwZSA9IHR5cGUudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuICh0aGluZykgPT4ga2luZE9mKHRoaW5nKSA9PT0gdHlwZVxufVxuXG5jb25zdCB0eXBlT2ZUZXN0ID0gdHlwZSA9PiB0aGluZyA9PiB0eXBlb2YgdGhpbmcgPT09IHR5cGU7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYW4gQXJyYXlcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gQXJyYXksIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCB7aXNBcnJheX0gPSBBcnJheTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyB1bmRlZmluZWRcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB1bmRlZmluZWQsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc1VuZGVmaW5lZCA9IHR5cGVPZlRlc3QoJ3VuZGVmaW5lZCcpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgQnVmZmVyXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEJ1ZmZlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQnVmZmVyKHZhbCkge1xuICByZXR1cm4gdmFsICE9PSBudWxsICYmICFpc1VuZGVmaW5lZCh2YWwpICYmIHZhbC5jb25zdHJ1Y3RvciAhPT0gbnVsbCAmJiAhaXNVbmRlZmluZWQodmFsLmNvbnN0cnVjdG9yKVxuICAgICYmIGlzRnVuY3Rpb24odmFsLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSAmJiB2YWwuY29uc3RydWN0b3IuaXNCdWZmZXIodmFsKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhbiBBcnJheUJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gQXJyYXlCdWZmZXIsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc0FycmF5QnVmZmVyID0ga2luZE9mVGVzdCgnQXJyYXlCdWZmZXInKTtcblxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgdmlldyBvbiBhbiBBcnJheUJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSB2aWV3IG9uIGFuIEFycmF5QnVmZmVyLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUJ1ZmZlclZpZXcodmFsKSB7XG4gIGxldCByZXN1bHQ7XG4gIGlmICgodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJykgJiYgKEFycmF5QnVmZmVyLmlzVmlldykpIHtcbiAgICByZXN1bHQgPSBBcnJheUJ1ZmZlci5pc1ZpZXcodmFsKTtcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSAodmFsKSAmJiAodmFsLmJ1ZmZlcikgJiYgKGlzQXJyYXlCdWZmZXIodmFsLmJ1ZmZlcikpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBTdHJpbmdcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgU3RyaW5nLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNTdHJpbmcgPSB0eXBlT2ZUZXN0KCdzdHJpbmcnKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRnVuY3Rpb24sIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc0Z1bmN0aW9uID0gdHlwZU9mVGVzdCgnZnVuY3Rpb24nKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIE51bWJlclxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBOdW1iZXIsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc051bWJlciA9IHR5cGVPZlRlc3QoJ251bWJlcicpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGFuIE9iamVjdFxuICpcbiAqIEBwYXJhbSB7Kn0gdGhpbmcgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhbiBPYmplY3QsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc09iamVjdCA9ICh0aGluZykgPT4gdGhpbmcgIT09IG51bGwgJiYgdHlwZW9mIHRoaW5nID09PSAnb2JqZWN0JztcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEJvb2xlYW5cbiAqXG4gKiBAcGFyYW0geyp9IHRoaW5nIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEJvb2xlYW4sIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc0Jvb2xlYW4gPSB0aGluZyA9PiB0aGluZyA9PT0gdHJ1ZSB8fCB0aGluZyA9PT0gZmFsc2U7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBwbGFpbiBPYmplY3RcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgcGxhaW4gT2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNQbGFpbk9iamVjdCA9ICh2YWwpID0+IHtcbiAgaWYgKGtpbmRPZih2YWwpICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKHZhbCk7XG4gIHJldHVybiAocHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZSB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG90eXBlKSA9PT0gbnVsbCkgJiYgIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gdmFsKSAmJiAhKFN5bWJvbC5pdGVyYXRvciBpbiB2YWwpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRGF0ZVxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBEYXRlLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNEYXRlID0ga2luZE9mVGVzdCgnRGF0ZScpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRmlsZVxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBGaWxlLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNGaWxlID0ga2luZE9mVGVzdCgnRmlsZScpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgQmxvYlxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBCbG9iLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNCbG9iID0ga2luZE9mVGVzdCgnQmxvYicpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRmlsZUxpc3RcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRmlsZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzRmlsZUxpc3QgPSBraW5kT2ZUZXN0KCdGaWxlTGlzdCcpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgU3RyZWFtXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFN0cmVhbSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzU3RyZWFtID0gKHZhbCkgPT4gaXNPYmplY3QodmFsKSAmJiBpc0Z1bmN0aW9uKHZhbC5waXBlKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEZvcm1EYXRhXG4gKlxuICogQHBhcmFtIHsqfSB0aGluZyBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGFuIEZvcm1EYXRhLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNGb3JtRGF0YSA9ICh0aGluZykgPT4ge1xuICBsZXQga2luZDtcbiAgcmV0dXJuIHRoaW5nICYmIChcbiAgICAodHlwZW9mIEZvcm1EYXRhID09PSAnZnVuY3Rpb24nICYmIHRoaW5nIGluc3RhbmNlb2YgRm9ybURhdGEpIHx8IChcbiAgICAgIGlzRnVuY3Rpb24odGhpbmcuYXBwZW5kKSAmJiAoXG4gICAgICAgIChraW5kID0ga2luZE9mKHRoaW5nKSkgPT09ICdmb3JtZGF0YScgfHxcbiAgICAgICAgLy8gZGV0ZWN0IGZvcm0tZGF0YSBpbnN0YW5jZVxuICAgICAgICAoa2luZCA9PT0gJ29iamVjdCcgJiYgaXNGdW5jdGlvbih0aGluZy50b1N0cmluZykgJiYgdGhpbmcudG9TdHJpbmcoKSA9PT0gJ1tvYmplY3QgRm9ybURhdGFdJylcbiAgICAgIClcbiAgICApXG4gIClcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIFVSTFNlYXJjaFBhcmFtcyBvYmplY3RcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgVVJMU2VhcmNoUGFyYW1zIG9iamVjdCwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzVVJMU2VhcmNoUGFyYW1zID0ga2luZE9mVGVzdCgnVVJMU2VhcmNoUGFyYW1zJyk7XG5cbmNvbnN0IFtpc1JlYWRhYmxlU3RyZWFtLCBpc1JlcXVlc3QsIGlzUmVzcG9uc2UsIGlzSGVhZGVyc10gPSBbJ1JlYWRhYmxlU3RyZWFtJywgJ1JlcXVlc3QnLCAnUmVzcG9uc2UnLCAnSGVhZGVycyddLm1hcChraW5kT2ZUZXN0KTtcblxuLyoqXG4gKiBUcmltIGV4Y2VzcyB3aGl0ZXNwYWNlIG9mZiB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgYSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyIFRoZSBTdHJpbmcgdG8gdHJpbVxuICpcbiAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBTdHJpbmcgZnJlZWQgb2YgZXhjZXNzIHdoaXRlc3BhY2VcbiAqL1xuY29uc3QgdHJpbSA9IChzdHIpID0+IHN0ci50cmltID9cbiAgc3RyLnRyaW0oKSA6IHN0ci5yZXBsYWNlKC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZywgJycpO1xuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciBhbiBBcnJheSBvciBhbiBPYmplY3QgaW52b2tpbmcgYSBmdW5jdGlvbiBmb3IgZWFjaCBpdGVtLlxuICpcbiAqIElmIGBvYmpgIGlzIGFuIEFycmF5IGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHBhc3NpbmdcbiAqIHRoZSB2YWx1ZSwgaW5kZXgsIGFuZCBjb21wbGV0ZSBhcnJheSBmb3IgZWFjaCBpdGVtLlxuICpcbiAqIElmICdvYmonIGlzIGFuIE9iamVjdCBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBwYXNzaW5nXG4gKiB0aGUgdmFsdWUsIGtleSwgYW5kIGNvbXBsZXRlIG9iamVjdCBmb3IgZWFjaCBwcm9wZXJ0eS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdHxBcnJheX0gb2JqIFRoZSBvYmplY3QgdG8gaXRlcmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGNhbGxiYWNrIHRvIGludm9rZSBmb3IgZWFjaCBpdGVtXG4gKlxuICogQHBhcmFtIHtCb29sZWFufSBbYWxsT3duS2V5cyA9IGZhbHNlXVxuICogQHJldHVybnMge2FueX1cbiAqL1xuZnVuY3Rpb24gZm9yRWFjaChvYmosIGZuLCB7YWxsT3duS2V5cyA9IGZhbHNlfSA9IHt9KSB7XG4gIC8vIERvbid0IGJvdGhlciBpZiBubyB2YWx1ZSBwcm92aWRlZFxuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGk7XG4gIGxldCBsO1xuXG4gIC8vIEZvcmNlIGFuIGFycmF5IGlmIG5vdCBhbHJlYWR5IHNvbWV0aGluZyBpdGVyYWJsZVxuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICAvKmVzbGludCBuby1wYXJhbS1yZWFzc2lnbjowKi9cbiAgICBvYmogPSBbb2JqXTtcbiAgfVxuXG4gIGlmIChpc0FycmF5KG9iaikpIHtcbiAgICAvLyBJdGVyYXRlIG92ZXIgYXJyYXkgdmFsdWVzXG4gICAgZm9yIChpID0gMCwgbCA9IG9iai5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGZuLmNhbGwobnVsbCwgb2JqW2ldLCBpLCBvYmopO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJdGVyYXRlIG92ZXIgb2JqZWN0IGtleXNcbiAgICBjb25zdCBrZXlzID0gYWxsT3duS2V5cyA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikgOiBPYmplY3Qua2V5cyhvYmopO1xuICAgIGNvbnN0IGxlbiA9IGtleXMubGVuZ3RoO1xuICAgIGxldCBrZXk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICBmbi5jYWxsKG51bGwsIG9ialtrZXldLCBrZXksIG9iaik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmRLZXkob2JqLCBrZXkpIHtcbiAga2V5ID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICBsZXQgaSA9IGtleXMubGVuZ3RoO1xuICBsZXQgX2tleTtcbiAgd2hpbGUgKGktLSA+IDApIHtcbiAgICBfa2V5ID0ga2V5c1tpXTtcbiAgICBpZiAoa2V5ID09PSBfa2V5LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHJldHVybiBfa2V5O1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuY29uc3QgX2dsb2JhbCA9ICgoKSA9PiB7XG4gIC8qZXNsaW50IG5vLXVuZGVmOjAqL1xuICBpZiAodHlwZW9mIGdsb2JhbFRoaXMgIT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBnbG9iYWxUaGlzO1xuICByZXR1cm4gdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgPyBzZWxmIDogKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93IDogZ2xvYmFsKVxufSkoKTtcblxuY29uc3QgaXNDb250ZXh0RGVmaW5lZCA9IChjb250ZXh0KSA9PiAhaXNVbmRlZmluZWQoY29udGV4dCkgJiYgY29udGV4dCAhPT0gX2dsb2JhbDtcblxuLyoqXG4gKiBBY2NlcHRzIHZhcmFyZ3MgZXhwZWN0aW5nIGVhY2ggYXJndW1lbnQgdG8gYmUgYW4gb2JqZWN0LCB0aGVuXG4gKiBpbW11dGFibHkgbWVyZ2VzIHRoZSBwcm9wZXJ0aWVzIG9mIGVhY2ggb2JqZWN0IGFuZCByZXR1cm5zIHJlc3VsdC5cbiAqXG4gKiBXaGVuIG11bHRpcGxlIG9iamVjdHMgY29udGFpbiB0aGUgc2FtZSBrZXkgdGhlIGxhdGVyIG9iamVjdCBpblxuICogdGhlIGFyZ3VtZW50cyBsaXN0IHdpbGwgdGFrZSBwcmVjZWRlbmNlLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBganNcbiAqIHZhciByZXN1bHQgPSBtZXJnZSh7Zm9vOiAxMjN9LCB7Zm9vOiA0NTZ9KTtcbiAqIGNvbnNvbGUubG9nKHJlc3VsdC5mb28pOyAvLyBvdXRwdXRzIDQ1NlxuICogYGBgXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9iajEgT2JqZWN0IHRvIG1lcmdlXG4gKlxuICogQHJldHVybnMge09iamVjdH0gUmVzdWx0IG9mIGFsbCBtZXJnZSBwcm9wZXJ0aWVzXG4gKi9cbmZ1bmN0aW9uIG1lcmdlKC8qIG9iajEsIG9iajIsIG9iajMsIC4uLiAqLykge1xuICBjb25zdCB7Y2FzZWxlc3N9ID0gaXNDb250ZXh0RGVmaW5lZCh0aGlzKSAmJiB0aGlzIHx8IHt9O1xuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgY29uc3QgYXNzaWduVmFsdWUgPSAodmFsLCBrZXkpID0+IHtcbiAgICBjb25zdCB0YXJnZXRLZXkgPSBjYXNlbGVzcyAmJiBmaW5kS2V5KHJlc3VsdCwga2V5KSB8fCBrZXk7XG4gICAgaWYgKGlzUGxhaW5PYmplY3QocmVzdWx0W3RhcmdldEtleV0pICYmIGlzUGxhaW5PYmplY3QodmFsKSkge1xuICAgICAgcmVzdWx0W3RhcmdldEtleV0gPSBtZXJnZShyZXN1bHRbdGFyZ2V0S2V5XSwgdmFsKTtcbiAgICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QodmFsKSkge1xuICAgICAgcmVzdWx0W3RhcmdldEtleV0gPSBtZXJnZSh7fSwgdmFsKTtcbiAgICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsKSkge1xuICAgICAgcmVzdWx0W3RhcmdldEtleV0gPSB2YWwuc2xpY2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W3RhcmdldEtleV0gPSB2YWw7XG4gICAgfVxuICB9XG5cbiAgZm9yIChsZXQgaSA9IDAsIGwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgYXJndW1lbnRzW2ldICYmIGZvckVhY2goYXJndW1lbnRzW2ldLCBhc3NpZ25WYWx1ZSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBFeHRlbmRzIG9iamVjdCBhIGJ5IG11dGFibHkgYWRkaW5nIHRvIGl0IHRoZSBwcm9wZXJ0aWVzIG9mIG9iamVjdCBiLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBhIFRoZSBvYmplY3QgdG8gYmUgZXh0ZW5kZWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBiIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb21cbiAqIEBwYXJhbSB7T2JqZWN0fSB0aGlzQXJnIFRoZSBvYmplY3QgdG8gYmluZCBmdW5jdGlvbiB0b1xuICpcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW2FsbE93bktleXNdXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgcmVzdWx0aW5nIHZhbHVlIG9mIG9iamVjdCBhXG4gKi9cbmNvbnN0IGV4dGVuZCA9IChhLCBiLCB0aGlzQXJnLCB7YWxsT3duS2V5c309IHt9KSA9PiB7XG4gIGZvckVhY2goYiwgKHZhbCwga2V5KSA9PiB7XG4gICAgaWYgKHRoaXNBcmcgJiYgaXNGdW5jdGlvbih2YWwpKSB7XG4gICAgICBhW2tleV0gPSBiaW5kKHZhbCwgdGhpc0FyZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFba2V5XSA9IHZhbDtcbiAgICB9XG4gIH0sIHthbGxPd25LZXlzfSk7XG4gIHJldHVybiBhO1xufVxuXG4vKipcbiAqIFJlbW92ZSBieXRlIG9yZGVyIG1hcmtlci4gVGhpcyBjYXRjaGVzIEVGIEJCIEJGICh0aGUgVVRGLTggQk9NKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZW50IHdpdGggQk9NXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gY29udGVudCB2YWx1ZSB3aXRob3V0IEJPTVxuICovXG5jb25zdCBzdHJpcEJPTSA9IChjb250ZW50KSA9PiB7XG4gIGlmIChjb250ZW50LmNoYXJDb2RlQXQoMCkgPT09IDB4RkVGRikge1xuICAgIGNvbnRlbnQgPSBjb250ZW50LnNsaWNlKDEpO1xuICB9XG4gIHJldHVybiBjb250ZW50O1xufVxuXG4vKipcbiAqIEluaGVyaXQgdGhlIHByb3RvdHlwZSBtZXRob2RzIGZyb20gb25lIGNvbnN0cnVjdG9yIGludG8gYW5vdGhlclxuICogQHBhcmFtIHtmdW5jdGlvbn0gY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IHN1cGVyQ29uc3RydWN0b3JcbiAqIEBwYXJhbSB7b2JqZWN0fSBbcHJvcHNdXG4gKiBAcGFyYW0ge29iamVjdH0gW2Rlc2NyaXB0b3JzXVxuICpcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5jb25zdCBpbmhlcml0cyA9IChjb25zdHJ1Y3Rvciwgc3VwZXJDb25zdHJ1Y3RvciwgcHJvcHMsIGRlc2NyaXB0b3JzKSA9PiB7XG4gIGNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIGRlc2NyaXB0b3JzKTtcbiAgY29uc3RydWN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY29uc3RydWN0b3I7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25zdHJ1Y3RvciwgJ3N1cGVyJywge1xuICAgIHZhbHVlOiBzdXBlckNvbnN0cnVjdG9yLnByb3RvdHlwZVxuICB9KTtcbiAgcHJvcHMgJiYgT2JqZWN0LmFzc2lnbihjb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3BzKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIG9iamVjdCB3aXRoIGRlZXAgcHJvdG90eXBlIGNoYWluIHRvIGEgZmxhdCBvYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2VPYmogc291cmNlIG9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IFtkZXN0T2JqXVxuICogQHBhcmFtIHtGdW5jdGlvbnxCb29sZWFufSBbZmlsdGVyXVxuICogQHBhcmFtIHtGdW5jdGlvbn0gW3Byb3BGaWx0ZXJdXG4gKlxuICogQHJldHVybnMge09iamVjdH1cbiAqL1xuY29uc3QgdG9GbGF0T2JqZWN0ID0gKHNvdXJjZU9iaiwgZGVzdE9iaiwgZmlsdGVyLCBwcm9wRmlsdGVyKSA9PiB7XG4gIGxldCBwcm9wcztcbiAgbGV0IGk7XG4gIGxldCBwcm9wO1xuICBjb25zdCBtZXJnZWQgPSB7fTtcblxuICBkZXN0T2JqID0gZGVzdE9iaiB8fCB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVxLW51bGwsZXFlcWVxXG4gIGlmIChzb3VyY2VPYmogPT0gbnVsbCkgcmV0dXJuIGRlc3RPYmo7XG5cbiAgZG8ge1xuICAgIHByb3BzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoc291cmNlT2JqKTtcbiAgICBpID0gcHJvcHMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgICBwcm9wID0gcHJvcHNbaV07XG4gICAgICBpZiAoKCFwcm9wRmlsdGVyIHx8IHByb3BGaWx0ZXIocHJvcCwgc291cmNlT2JqLCBkZXN0T2JqKSkgJiYgIW1lcmdlZFtwcm9wXSkge1xuICAgICAgICBkZXN0T2JqW3Byb3BdID0gc291cmNlT2JqW3Byb3BdO1xuICAgICAgICBtZXJnZWRbcHJvcF0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3VyY2VPYmogPSBmaWx0ZXIgIT09IGZhbHNlICYmIGdldFByb3RvdHlwZU9mKHNvdXJjZU9iaik7XG4gIH0gd2hpbGUgKHNvdXJjZU9iaiAmJiAoIWZpbHRlciB8fCBmaWx0ZXIoc291cmNlT2JqLCBkZXN0T2JqKSkgJiYgc291cmNlT2JqICE9PSBPYmplY3QucHJvdG90eXBlKTtcblxuICByZXR1cm4gZGVzdE9iajtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBzdHJpbmcgZW5kcyB3aXRoIHRoZSBjaGFyYWN0ZXJzIG9mIGEgc3BlY2lmaWVkIHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWFyY2hTdHJpbmdcbiAqIEBwYXJhbSB7TnVtYmVyfSBbcG9zaXRpb249IDBdXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmNvbnN0IGVuZHNXaXRoID0gKHN0ciwgc2VhcmNoU3RyaW5nLCBwb3NpdGlvbikgPT4ge1xuICBzdHIgPSBTdHJpbmcoc3RyKTtcbiAgaWYgKHBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgcG9zaXRpb24gPiBzdHIubGVuZ3RoKSB7XG4gICAgcG9zaXRpb24gPSBzdHIubGVuZ3RoO1xuICB9XG4gIHBvc2l0aW9uIC09IHNlYXJjaFN0cmluZy5sZW5ndGg7XG4gIGNvbnN0IGxhc3RJbmRleCA9IHN0ci5pbmRleE9mKHNlYXJjaFN0cmluZywgcG9zaXRpb24pO1xuICByZXR1cm4gbGFzdEluZGV4ICE9PSAtMSAmJiBsYXN0SW5kZXggPT09IHBvc2l0aW9uO1xufVxuXG5cbi8qKlxuICogUmV0dXJucyBuZXcgYXJyYXkgZnJvbSBhcnJheSBsaWtlIG9iamVjdCBvciBudWxsIGlmIGZhaWxlZFxuICpcbiAqIEBwYXJhbSB7Kn0gW3RoaW5nXVxuICpcbiAqIEByZXR1cm5zIHs/QXJyYXl9XG4gKi9cbmNvbnN0IHRvQXJyYXkgPSAodGhpbmcpID0+IHtcbiAgaWYgKCF0aGluZykgcmV0dXJuIG51bGw7XG4gIGlmIChpc0FycmF5KHRoaW5nKSkgcmV0dXJuIHRoaW5nO1xuICBsZXQgaSA9IHRoaW5nLmxlbmd0aDtcbiAgaWYgKCFpc051bWJlcihpKSkgcmV0dXJuIG51bGw7XG4gIGNvbnN0IGFyciA9IG5ldyBBcnJheShpKTtcbiAgd2hpbGUgKGktLSA+IDApIHtcbiAgICBhcnJbaV0gPSB0aGluZ1tpXTtcbiAgfVxuICByZXR1cm4gYXJyO1xufVxuXG4vKipcbiAqIENoZWNraW5nIGlmIHRoZSBVaW50OEFycmF5IGV4aXN0cyBhbmQgaWYgaXQgZG9lcywgaXQgcmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIHRoZVxuICogdGhpbmcgcGFzc2VkIGluIGlzIGFuIGluc3RhbmNlIG9mIFVpbnQ4QXJyYXlcbiAqXG4gKiBAcGFyYW0ge1R5cGVkQXJyYXl9XG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuY29uc3QgaXNUeXBlZEFycmF5ID0gKFR5cGVkQXJyYXkgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICByZXR1cm4gdGhpbmcgPT4ge1xuICAgIHJldHVybiBUeXBlZEFycmF5ICYmIHRoaW5nIGluc3RhbmNlb2YgVHlwZWRBcnJheTtcbiAgfTtcbn0pKHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJyAmJiBnZXRQcm90b3R5cGVPZihVaW50OEFycmF5KSk7XG5cbi8qKlxuICogRm9yIGVhY2ggZW50cnkgaW4gdGhlIG9iamVjdCwgY2FsbCB0aGUgZnVuY3Rpb24gd2l0aCB0aGUga2V5IGFuZCB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdDxhbnksIGFueT59IG9iaiAtIFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gY2FsbCBmb3IgZWFjaCBlbnRyeS5cbiAqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuY29uc3QgZm9yRWFjaEVudHJ5ID0gKG9iaiwgZm4pID0+IHtcbiAgY29uc3QgZ2VuZXJhdG9yID0gb2JqICYmIG9ialtTeW1ib2wuaXRlcmF0b3JdO1xuXG4gIGNvbnN0IGl0ZXJhdG9yID0gZ2VuZXJhdG9yLmNhbGwob2JqKTtcblxuICBsZXQgcmVzdWx0O1xuXG4gIHdoaWxlICgocmVzdWx0ID0gaXRlcmF0b3IubmV4dCgpKSAmJiAhcmVzdWx0LmRvbmUpIHtcbiAgICBjb25zdCBwYWlyID0gcmVzdWx0LnZhbHVlO1xuICAgIGZuLmNhbGwob2JqLCBwYWlyWzBdLCBwYWlyWzFdKTtcbiAgfVxufVxuXG4vKipcbiAqIEl0IHRha2VzIGEgcmVndWxhciBleHByZXNzaW9uIGFuZCBhIHN0cmluZywgYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgYWxsIHRoZSBtYXRjaGVzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHJlZ0V4cCAtIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggYWdhaW5zdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBUaGUgc3RyaW5nIHRvIHNlYXJjaC5cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXk8Ym9vbGVhbj59XG4gKi9cbmNvbnN0IG1hdGNoQWxsID0gKHJlZ0V4cCwgc3RyKSA9PiB7XG4gIGxldCBtYXRjaGVzO1xuICBjb25zdCBhcnIgPSBbXTtcblxuICB3aGlsZSAoKG1hdGNoZXMgPSByZWdFeHAuZXhlYyhzdHIpKSAhPT0gbnVsbCkge1xuICAgIGFyci5wdXNoKG1hdGNoZXMpO1xuICB9XG5cbiAgcmV0dXJuIGFycjtcbn1cblxuLyogQ2hlY2tpbmcgaWYgdGhlIGtpbmRPZlRlc3QgZnVuY3Rpb24gcmV0dXJucyB0cnVlIHdoZW4gcGFzc2VkIGFuIEhUTUxGb3JtRWxlbWVudC4gKi9cbmNvbnN0IGlzSFRNTEZvcm0gPSBraW5kT2ZUZXN0KCdIVE1MRm9ybUVsZW1lbnQnKTtcblxuY29uc3QgdG9DYW1lbENhc2UgPSBzdHIgPT4ge1xuICByZXR1cm4gc3RyLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxcbiAgICBmdW5jdGlvbiByZXBsYWNlcihtLCBwMSwgcDIpIHtcbiAgICAgIHJldHVybiBwMS50b1VwcGVyQ2FzZSgpICsgcDI7XG4gICAgfVxuICApO1xufTtcblxuLyogQ3JlYXRpbmcgYSBmdW5jdGlvbiB0aGF0IHdpbGwgY2hlY2sgaWYgYW4gb2JqZWN0IGhhcyBhIHByb3BlcnR5LiAqL1xuY29uc3QgaGFzT3duUHJvcGVydHkgPSAoKHtoYXNPd25Qcm9wZXJ0eX0pID0+IChvYmosIHByb3ApID0+IGhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkoT2JqZWN0LnByb3RvdHlwZSk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBSZWdFeHAgb2JqZWN0XG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFJlZ0V4cCBvYmplY3QsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc1JlZ0V4cCA9IGtpbmRPZlRlc3QoJ1JlZ0V4cCcpO1xuXG5jb25zdCByZWR1Y2VEZXNjcmlwdG9ycyA9IChvYmosIHJlZHVjZXIpID0+IHtcbiAgY29uc3QgZGVzY3JpcHRvcnMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhvYmopO1xuICBjb25zdCByZWR1Y2VkRGVzY3JpcHRvcnMgPSB7fTtcblxuICBmb3JFYWNoKGRlc2NyaXB0b3JzLCAoZGVzY3JpcHRvciwgbmFtZSkgPT4ge1xuICAgIGxldCByZXQ7XG4gICAgaWYgKChyZXQgPSByZWR1Y2VyKGRlc2NyaXB0b3IsIG5hbWUsIG9iaikpICE9PSBmYWxzZSkge1xuICAgICAgcmVkdWNlZERlc2NyaXB0b3JzW25hbWVdID0gcmV0IHx8IGRlc2NyaXB0b3I7XG4gICAgfVxuICB9KTtcblxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhvYmosIHJlZHVjZWREZXNjcmlwdG9ycyk7XG59XG5cbi8qKlxuICogTWFrZXMgYWxsIG1ldGhvZHMgcmVhZC1vbmx5XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKi9cblxuY29uc3QgZnJlZXplTWV0aG9kcyA9IChvYmopID0+IHtcbiAgcmVkdWNlRGVzY3JpcHRvcnMob2JqLCAoZGVzY3JpcHRvciwgbmFtZSkgPT4ge1xuICAgIC8vIHNraXAgcmVzdHJpY3RlZCBwcm9wcyBpbiBzdHJpY3QgbW9kZVxuICAgIGlmIChpc0Z1bmN0aW9uKG9iaikgJiYgWydhcmd1bWVudHMnLCAnY2FsbGVyJywgJ2NhbGxlZSddLmluZGV4T2YobmFtZSkgIT09IC0xKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBvYmpbbmFtZV07XG5cbiAgICBpZiAoIWlzRnVuY3Rpb24odmFsdWUpKSByZXR1cm47XG5cbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBmYWxzZTtcblxuICAgIGlmICgnd3JpdGFibGUnIGluIGRlc2NyaXB0b3IpIHtcbiAgICAgIGRlc2NyaXB0b3Iud3JpdGFibGUgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWRlc2NyaXB0b3Iuc2V0KSB7XG4gICAgICBkZXNjcmlwdG9yLnNldCA9ICgpID0+IHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ0NhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kIFxcJycgKyBuYW1lICsgJ1xcJycpO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xufVxuXG5jb25zdCB0b09iamVjdFNldCA9IChhcnJheU9yU3RyaW5nLCBkZWxpbWl0ZXIpID0+IHtcbiAgY29uc3Qgb2JqID0ge307XG5cbiAgY29uc3QgZGVmaW5lID0gKGFycikgPT4ge1xuICAgIGFyci5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgIG9ialt2YWx1ZV0gPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgaXNBcnJheShhcnJheU9yU3RyaW5nKSA/IGRlZmluZShhcnJheU9yU3RyaW5nKSA6IGRlZmluZShTdHJpbmcoYXJyYXlPclN0cmluZykuc3BsaXQoZGVsaW1pdGVyKSk7XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbmNvbnN0IHRvRmluaXRlTnVtYmVyID0gKHZhbHVlLCBkZWZhdWx0VmFsdWUpID0+IHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlID0gK3ZhbHVlKSA/IHZhbHVlIDogZGVmYXVsdFZhbHVlO1xufVxuXG4vKipcbiAqIElmIHRoZSB0aGluZyBpcyBhIEZvcm1EYXRhIG9iamVjdCwgcmV0dXJuIHRydWUsIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB0aGluZyAtIFRoZSB0aGluZyB0byBjaGVjay5cbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNTcGVjQ29tcGxpYW50Rm9ybSh0aGluZykge1xuICByZXR1cm4gISEodGhpbmcgJiYgaXNGdW5jdGlvbih0aGluZy5hcHBlbmQpICYmIHRoaW5nW1N5bWJvbC50b1N0cmluZ1RhZ10gPT09ICdGb3JtRGF0YScgJiYgdGhpbmdbU3ltYm9sLml0ZXJhdG9yXSk7XG59XG5cbmNvbnN0IHRvSlNPTk9iamVjdCA9IChvYmopID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgQXJyYXkoMTApO1xuXG4gIGNvbnN0IHZpc2l0ID0gKHNvdXJjZSwgaSkgPT4ge1xuXG4gICAgaWYgKGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgIGlmIChzdGFjay5pbmRleE9mKHNvdXJjZSkgPj0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmKCEoJ3RvSlNPTicgaW4gc291cmNlKSkge1xuICAgICAgICBzdGFja1tpXSA9IHNvdXJjZTtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gaXNBcnJheShzb3VyY2UpID8gW10gOiB7fTtcblxuICAgICAgICBmb3JFYWNoKHNvdXJjZSwgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICBjb25zdCByZWR1Y2VkVmFsdWUgPSB2aXNpdCh2YWx1ZSwgaSArIDEpO1xuICAgICAgICAgICFpc1VuZGVmaW5lZChyZWR1Y2VkVmFsdWUpICYmICh0YXJnZXRba2V5XSA9IHJlZHVjZWRWYWx1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0YWNrW2ldID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIHJldHVybiB2aXNpdChvYmosIDApO1xufVxuXG5jb25zdCBpc0FzeW5jRm4gPSBraW5kT2ZUZXN0KCdBc3luY0Z1bmN0aW9uJyk7XG5cbmNvbnN0IGlzVGhlbmFibGUgPSAodGhpbmcpID0+XG4gIHRoaW5nICYmIChpc09iamVjdCh0aGluZykgfHwgaXNGdW5jdGlvbih0aGluZykpICYmIGlzRnVuY3Rpb24odGhpbmcudGhlbikgJiYgaXNGdW5jdGlvbih0aGluZy5jYXRjaCk7XG5cbi8vIG9yaWdpbmFsIGNvZGVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9EaWdpdGFsQnJhaW5KUy9BeGlvc1Byb21pc2UvYmxvYi8xNmRlYWIxMzcxMGVjMDk3Nzk5MjIxMzFmM2ZhNTk1NDMyMGY4M2FiL2xpYi91dGlscy5qcyNMMTEtTDM0XG5cbmNvbnN0IF9zZXRJbW1lZGlhdGUgPSAoKHNldEltbWVkaWF0ZVN1cHBvcnRlZCwgcG9zdE1lc3NhZ2VTdXBwb3J0ZWQpID0+IHtcbiAgaWYgKHNldEltbWVkaWF0ZVN1cHBvcnRlZCkge1xuICAgIHJldHVybiBzZXRJbW1lZGlhdGU7XG4gIH1cblxuICByZXR1cm4gcG9zdE1lc3NhZ2VTdXBwb3J0ZWQgPyAoKHRva2VuLCBjYWxsYmFja3MpID0+IHtcbiAgICBfZ2xvYmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsICh7c291cmNlLCBkYXRhfSkgPT4ge1xuICAgICAgaWYgKHNvdXJjZSA9PT0gX2dsb2JhbCAmJiBkYXRhID09PSB0b2tlbikge1xuICAgICAgICBjYWxsYmFja3MubGVuZ3RoICYmIGNhbGxiYWNrcy5zaGlmdCgpKCk7XG4gICAgICB9XG4gICAgfSwgZmFsc2UpO1xuXG4gICAgcmV0dXJuIChjYikgPT4ge1xuICAgICAgY2FsbGJhY2tzLnB1c2goY2IpO1xuICAgICAgX2dsb2JhbC5wb3N0TWVzc2FnZSh0b2tlbiwgXCIqXCIpO1xuICAgIH1cbiAgfSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLCBbXSkgOiAoY2IpID0+IHNldFRpbWVvdXQoY2IpO1xufSkoXG4gIHR5cGVvZiBzZXRJbW1lZGlhdGUgPT09ICdmdW5jdGlvbicsXG4gIGlzRnVuY3Rpb24oX2dsb2JhbC5wb3N0TWVzc2FnZSlcbik7XG5cbmNvbnN0IGFzYXAgPSB0eXBlb2YgcXVldWVNaWNyb3Rhc2sgIT09ICd1bmRlZmluZWQnID9cbiAgcXVldWVNaWNyb3Rhc2suYmluZChfZ2xvYmFsKSA6ICggdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MubmV4dFRpY2sgfHwgX3NldEltbWVkaWF0ZSk7XG5cbi8vICoqKioqKioqKioqKioqKioqKioqKlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGlzQXJyYXksXG4gIGlzQXJyYXlCdWZmZXIsXG4gIGlzQnVmZmVyLFxuICBpc0Zvcm1EYXRhLFxuICBpc0FycmF5QnVmZmVyVmlldyxcbiAgaXNTdHJpbmcsXG4gIGlzTnVtYmVyLFxuICBpc0Jvb2xlYW4sXG4gIGlzT2JqZWN0LFxuICBpc1BsYWluT2JqZWN0LFxuICBpc1JlYWRhYmxlU3RyZWFtLFxuICBpc1JlcXVlc3QsXG4gIGlzUmVzcG9uc2UsXG4gIGlzSGVhZGVycyxcbiAgaXNVbmRlZmluZWQsXG4gIGlzRGF0ZSxcbiAgaXNGaWxlLFxuICBpc0Jsb2IsXG4gIGlzUmVnRXhwLFxuICBpc0Z1bmN0aW9uLFxuICBpc1N0cmVhbSxcbiAgaXNVUkxTZWFyY2hQYXJhbXMsXG4gIGlzVHlwZWRBcnJheSxcbiAgaXNGaWxlTGlzdCxcbiAgZm9yRWFjaCxcbiAgbWVyZ2UsXG4gIGV4dGVuZCxcbiAgdHJpbSxcbiAgc3RyaXBCT00sXG4gIGluaGVyaXRzLFxuICB0b0ZsYXRPYmplY3QsXG4gIGtpbmRPZixcbiAga2luZE9mVGVzdCxcbiAgZW5kc1dpdGgsXG4gIHRvQXJyYXksXG4gIGZvckVhY2hFbnRyeSxcbiAgbWF0Y2hBbGwsXG4gIGlzSFRNTEZvcm0sXG4gIGhhc093blByb3BlcnR5LFxuICBoYXNPd25Qcm9wOiBoYXNPd25Qcm9wZXJ0eSwgLy8gYW4gYWxpYXMgdG8gYXZvaWQgRVNMaW50IG5vLXByb3RvdHlwZS1idWlsdGlucyBkZXRlY3Rpb25cbiAgcmVkdWNlRGVzY3JpcHRvcnMsXG4gIGZyZWV6ZU1ldGhvZHMsXG4gIHRvT2JqZWN0U2V0LFxuICB0b0NhbWVsQ2FzZSxcbiAgbm9vcCxcbiAgdG9GaW5pdGVOdW1iZXIsXG4gIGZpbmRLZXksXG4gIGdsb2JhbDogX2dsb2JhbCxcbiAgaXNDb250ZXh0RGVmaW5lZCxcbiAgaXNTcGVjQ29tcGxpYW50Rm9ybSxcbiAgdG9KU09OT2JqZWN0LFxuICBpc0FzeW5jRm4sXG4gIGlzVGhlbmFibGUsXG4gIHNldEltbWVkaWF0ZTogX3NldEltbWVkaWF0ZSxcbiAgYXNhcFxufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5cbi8qKlxuICogQ3JlYXRlIGFuIEVycm9yIHdpdGggdGhlIHNwZWNpZmllZCBtZXNzYWdlLCBjb25maWcsIGVycm9yIGNvZGUsIHJlcXVlc3QgYW5kIHJlc3BvbnNlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2RlXSBUaGUgZXJyb3IgY29kZSAoZm9yIGV4YW1wbGUsICdFQ09OTkFCT1JURUQnKS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbY29uZmlnXSBUaGUgY29uZmlnLlxuICogQHBhcmFtIHtPYmplY3R9IFtyZXF1ZXN0XSBUaGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbcmVzcG9uc2VdIFRoZSByZXNwb25zZS5cbiAqXG4gKiBAcmV0dXJucyB7RXJyb3J9IFRoZSBjcmVhdGVkIGVycm9yLlxuICovXG5mdW5jdGlvbiBBeGlvc0Vycm9yKG1lc3NhZ2UsIGNvZGUsIGNvbmZpZywgcmVxdWVzdCwgcmVzcG9uc2UpIHtcbiAgRXJyb3IuY2FsbCh0aGlzKTtcblxuICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHtcbiAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCB0aGlzLmNvbnN0cnVjdG9yKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnN0YWNrID0gKG5ldyBFcnJvcigpKS5zdGFjaztcbiAgfVxuXG4gIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gIHRoaXMubmFtZSA9ICdBeGlvc0Vycm9yJztcbiAgY29kZSAmJiAodGhpcy5jb2RlID0gY29kZSk7XG4gIGNvbmZpZyAmJiAodGhpcy5jb25maWcgPSBjb25maWcpO1xuICByZXF1ZXN0ICYmICh0aGlzLnJlcXVlc3QgPSByZXF1ZXN0KTtcbiAgaWYgKHJlc3BvbnNlKSB7XG4gICAgdGhpcy5yZXNwb25zZSA9IHJlc3BvbnNlO1xuICAgIHRoaXMuc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzID8gcmVzcG9uc2Uuc3RhdHVzIDogbnVsbDtcbiAgfVxufVxuXG51dGlscy5pbmhlcml0cyhBeGlvc0Vycm9yLCBFcnJvciwge1xuICB0b0pTT046IGZ1bmN0aW9uIHRvSlNPTigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLy8gU3RhbmRhcmRcbiAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIC8vIE1pY3Jvc29mdFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBudW1iZXI6IHRoaXMubnVtYmVyLFxuICAgICAgLy8gTW96aWxsYVxuICAgICAgZmlsZU5hbWU6IHRoaXMuZmlsZU5hbWUsXG4gICAgICBsaW5lTnVtYmVyOiB0aGlzLmxpbmVOdW1iZXIsXG4gICAgICBjb2x1bW5OdW1iZXI6IHRoaXMuY29sdW1uTnVtYmVyLFxuICAgICAgc3RhY2s6IHRoaXMuc3RhY2ssXG4gICAgICAvLyBBeGlvc1xuICAgICAgY29uZmlnOiB1dGlscy50b0pTT05PYmplY3QodGhpcy5jb25maWcpLFxuICAgICAgY29kZTogdGhpcy5jb2RlLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1c1xuICAgIH07XG4gIH1cbn0pO1xuXG5jb25zdCBwcm90b3R5cGUgPSBBeGlvc0Vycm9yLnByb3RvdHlwZTtcbmNvbnN0IGRlc2NyaXB0b3JzID0ge307XG5cbltcbiAgJ0VSUl9CQURfT1BUSU9OX1ZBTFVFJyxcbiAgJ0VSUl9CQURfT1BUSU9OJyxcbiAgJ0VDT05OQUJPUlRFRCcsXG4gICdFVElNRURPVVQnLFxuICAnRVJSX05FVFdPUksnLFxuICAnRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUycsXG4gICdFUlJfREVQUkVDQVRFRCcsXG4gICdFUlJfQkFEX1JFU1BPTlNFJyxcbiAgJ0VSUl9CQURfUkVRVUVTVCcsXG4gICdFUlJfQ0FOQ0VMRUQnLFxuICAnRVJSX05PVF9TVVBQT1JUJyxcbiAgJ0VSUl9JTlZBTElEX1VSTCdcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5dLmZvckVhY2goY29kZSA9PiB7XG4gIGRlc2NyaXB0b3JzW2NvZGVdID0ge3ZhbHVlOiBjb2RlfTtcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhBeGlvc0Vycm9yLCBkZXNjcmlwdG9ycyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCAnaXNBeGlvc0Vycm9yJywge3ZhbHVlOiB0cnVlfSk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5BeGlvc0Vycm9yLmZyb20gPSAoZXJyb3IsIGNvZGUsIGNvbmZpZywgcmVxdWVzdCwgcmVzcG9uc2UsIGN1c3RvbVByb3BzKSA9PiB7XG4gIGNvbnN0IGF4aW9zRXJyb3IgPSBPYmplY3QuY3JlYXRlKHByb3RvdHlwZSk7XG5cbiAgdXRpbHMudG9GbGF0T2JqZWN0KGVycm9yLCBheGlvc0Vycm9yLCBmdW5jdGlvbiBmaWx0ZXIob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAhPT0gRXJyb3IucHJvdG90eXBlO1xuICB9LCBwcm9wID0+IHtcbiAgICByZXR1cm4gcHJvcCAhPT0gJ2lzQXhpb3NFcnJvcic7XG4gIH0pO1xuXG4gIEF4aW9zRXJyb3IuY2FsbChheGlvc0Vycm9yLCBlcnJvci5tZXNzYWdlLCBjb2RlLCBjb25maWcsIHJlcXVlc3QsIHJlc3BvbnNlKTtcblxuICBheGlvc0Vycm9yLmNhdXNlID0gZXJyb3I7XG5cbiAgYXhpb3NFcnJvci5uYW1lID0gZXJyb3IubmFtZTtcblxuICBjdXN0b21Qcm9wcyAmJiBPYmplY3QuYXNzaWduKGF4aW9zRXJyb3IsIGN1c3RvbVByb3BzKTtcblxuICByZXR1cm4gYXhpb3NFcnJvcjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEF4aW9zRXJyb3I7XG4iLCAidmFyIFN0cmVhbSA9IHJlcXVpcmUoJ3N0cmVhbScpLlN0cmVhbTtcbnZhciB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERlbGF5ZWRTdHJlYW07XG5mdW5jdGlvbiBEZWxheWVkU3RyZWFtKCkge1xuICB0aGlzLnNvdXJjZSA9IG51bGw7XG4gIHRoaXMuZGF0YVNpemUgPSAwO1xuICB0aGlzLm1heERhdGFTaXplID0gMTAyNCAqIDEwMjQ7XG4gIHRoaXMucGF1c2VTdHJlYW0gPSB0cnVlO1xuXG4gIHRoaXMuX21heERhdGFTaXplRXhjZWVkZWQgPSBmYWxzZTtcbiAgdGhpcy5fcmVsZWFzZWQgPSBmYWxzZTtcbiAgdGhpcy5fYnVmZmVyZWRFdmVudHMgPSBbXTtcbn1cbnV0aWwuaW5oZXJpdHMoRGVsYXllZFN0cmVhbSwgU3RyZWFtKTtcblxuRGVsYXllZFN0cmVhbS5jcmVhdGUgPSBmdW5jdGlvbihzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGRlbGF5ZWRTdHJlYW0gPSBuZXcgdGhpcygpO1xuXG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBmb3IgKHZhciBvcHRpb24gaW4gb3B0aW9ucykge1xuICAgIGRlbGF5ZWRTdHJlYW1bb3B0aW9uXSA9IG9wdGlvbnNbb3B0aW9uXTtcbiAgfVxuXG4gIGRlbGF5ZWRTdHJlYW0uc291cmNlID0gc291cmNlO1xuXG4gIHZhciByZWFsRW1pdCA9IHNvdXJjZS5lbWl0O1xuICBzb3VyY2UuZW1pdCA9IGZ1bmN0aW9uKCkge1xuICAgIGRlbGF5ZWRTdHJlYW0uX2hhbmRsZUVtaXQoYXJndW1lbnRzKTtcbiAgICByZXR1cm4gcmVhbEVtaXQuYXBwbHkoc291cmNlLCBhcmd1bWVudHMpO1xuICB9O1xuXG4gIHNvdXJjZS5vbignZXJyb3InLCBmdW5jdGlvbigpIHt9KTtcbiAgaWYgKGRlbGF5ZWRTdHJlYW0ucGF1c2VTdHJlYW0pIHtcbiAgICBzb3VyY2UucGF1c2UoKTtcbiAgfVxuXG4gIHJldHVybiBkZWxheWVkU3RyZWFtO1xufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KERlbGF5ZWRTdHJlYW0ucHJvdG90eXBlLCAncmVhZGFibGUnLCB7XG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zb3VyY2UucmVhZGFibGU7XG4gIH1cbn0pO1xuXG5EZWxheWVkU3RyZWFtLnByb3RvdHlwZS5zZXRFbmNvZGluZyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5zb3VyY2Uuc2V0RW5jb2RpbmcuYXBwbHkodGhpcy5zb3VyY2UsIGFyZ3VtZW50cyk7XG59O1xuXG5EZWxheWVkU3RyZWFtLnByb3RvdHlwZS5yZXN1bWUgPSBmdW5jdGlvbigpIHtcbiAgaWYgKCF0aGlzLl9yZWxlYXNlZCkge1xuICAgIHRoaXMucmVsZWFzZSgpO1xuICB9XG5cbiAgdGhpcy5zb3VyY2UucmVzdW1lKCk7XG59O1xuXG5EZWxheWVkU3RyZWFtLnByb3RvdHlwZS5wYXVzZSA9IGZ1bmN0aW9uKCkge1xuICB0aGlzLnNvdXJjZS5wYXVzZSgpO1xufTtcblxuRGVsYXllZFN0cmVhbS5wcm90b3R5cGUucmVsZWFzZSA9IGZ1bmN0aW9uKCkge1xuICB0aGlzLl9yZWxlYXNlZCA9IHRydWU7XG5cbiAgdGhpcy5fYnVmZmVyZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihhcmdzKSB7XG4gICAgdGhpcy5lbWl0LmFwcGx5KHRoaXMsIGFyZ3MpO1xuICB9LmJpbmQodGhpcykpO1xuICB0aGlzLl9idWZmZXJlZEV2ZW50cyA9IFtdO1xufTtcblxuRGVsYXllZFN0cmVhbS5wcm90b3R5cGUucGlwZSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgciA9IFN0cmVhbS5wcm90b3R5cGUucGlwZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB0aGlzLnJlc3VtZSgpO1xuICByZXR1cm4gcjtcbn07XG5cbkRlbGF5ZWRTdHJlYW0ucHJvdG90eXBlLl9oYW5kbGVFbWl0ID0gZnVuY3Rpb24oYXJncykge1xuICBpZiAodGhpcy5fcmVsZWFzZWQpIHtcbiAgICB0aGlzLmVtaXQuYXBwbHkodGhpcywgYXJncyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGFyZ3NbMF0gPT09ICdkYXRhJykge1xuICAgIHRoaXMuZGF0YVNpemUgKz0gYXJnc1sxXS5sZW5ndGg7XG4gICAgdGhpcy5fY2hlY2tJZk1heERhdGFTaXplRXhjZWVkZWQoKTtcbiAgfVxuXG4gIHRoaXMuX2J1ZmZlcmVkRXZlbnRzLnB1c2goYXJncyk7XG59O1xuXG5EZWxheWVkU3RyZWFtLnByb3RvdHlwZS5fY2hlY2tJZk1heERhdGFTaXplRXhjZWVkZWQgPSBmdW5jdGlvbigpIHtcbiAgaWYgKHRoaXMuX21heERhdGFTaXplRXhjZWVkZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodGhpcy5kYXRhU2l6ZSA8PSB0aGlzLm1heERhdGFTaXplKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdGhpcy5fbWF4RGF0YVNpemVFeGNlZWRlZCA9IHRydWU7XG4gIHZhciBtZXNzYWdlID1cbiAgICAnRGVsYXllZFN0cmVhbSNtYXhEYXRhU2l6ZSBvZiAnICsgdGhpcy5tYXhEYXRhU2l6ZSArICcgYnl0ZXMgZXhjZWVkZWQuJ1xuICB0aGlzLmVtaXQoJ2Vycm9yJywgbmV3IEVycm9yKG1lc3NhZ2UpKTtcbn07XG4iLCAidmFyIHV0aWwgPSByZXF1aXJlKCd1dGlsJyk7XG52YXIgU3RyZWFtID0gcmVxdWlyZSgnc3RyZWFtJykuU3RyZWFtO1xudmFyIERlbGF5ZWRTdHJlYW0gPSByZXF1aXJlKCdkZWxheWVkLXN0cmVhbScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IENvbWJpbmVkU3RyZWFtO1xuZnVuY3Rpb24gQ29tYmluZWRTdHJlYW0oKSB7XG4gIHRoaXMud3JpdGFibGUgPSBmYWxzZTtcbiAgdGhpcy5yZWFkYWJsZSA9IHRydWU7XG4gIHRoaXMuZGF0YVNpemUgPSAwO1xuICB0aGlzLm1heERhdGFTaXplID0gMiAqIDEwMjQgKiAxMDI0O1xuICB0aGlzLnBhdXNlU3RyZWFtcyA9IHRydWU7XG5cbiAgdGhpcy5fcmVsZWFzZWQgPSBmYWxzZTtcbiAgdGhpcy5fc3RyZWFtcyA9IFtdO1xuICB0aGlzLl9jdXJyZW50U3RyZWFtID0gbnVsbDtcbiAgdGhpcy5faW5zaWRlTG9vcCA9IGZhbHNlO1xuICB0aGlzLl9wZW5kaW5nTmV4dCA9IGZhbHNlO1xufVxudXRpbC5pbmhlcml0cyhDb21iaW5lZFN0cmVhbSwgU3RyZWFtKTtcblxuQ29tYmluZWRTdHJlYW0uY3JlYXRlID0gZnVuY3Rpb24ob3B0aW9ucykge1xuICB2YXIgY29tYmluZWRTdHJlYW0gPSBuZXcgdGhpcygpO1xuXG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBmb3IgKHZhciBvcHRpb24gaW4gb3B0aW9ucykge1xuICAgIGNvbWJpbmVkU3RyZWFtW29wdGlvbl0gPSBvcHRpb25zW29wdGlvbl07XG4gIH1cblxuICByZXR1cm4gY29tYmluZWRTdHJlYW07XG59O1xuXG5Db21iaW5lZFN0cmVhbS5pc1N0cmVhbUxpa2UgPSBmdW5jdGlvbihzdHJlYW0pIHtcbiAgcmV0dXJuICh0eXBlb2Ygc3RyZWFtICE9PSAnZnVuY3Rpb24nKVxuICAgICYmICh0eXBlb2Ygc3RyZWFtICE9PSAnc3RyaW5nJylcbiAgICAmJiAodHlwZW9mIHN0cmVhbSAhPT0gJ2Jvb2xlYW4nKVxuICAgICYmICh0eXBlb2Ygc3RyZWFtICE9PSAnbnVtYmVyJylcbiAgICAmJiAoIUJ1ZmZlci5pc0J1ZmZlcihzdHJlYW0pKTtcbn07XG5cbkNvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5hcHBlbmQgPSBmdW5jdGlvbihzdHJlYW0pIHtcbiAgdmFyIGlzU3RyZWFtTGlrZSA9IENvbWJpbmVkU3RyZWFtLmlzU3RyZWFtTGlrZShzdHJlYW0pO1xuXG4gIGlmIChpc1N0cmVhbUxpa2UpIHtcbiAgICBpZiAoIShzdHJlYW0gaW5zdGFuY2VvZiBEZWxheWVkU3RyZWFtKSkge1xuICAgICAgdmFyIG5ld1N0cmVhbSA9IERlbGF5ZWRTdHJlYW0uY3JlYXRlKHN0cmVhbSwge1xuICAgICAgICBtYXhEYXRhU2l6ZTogSW5maW5pdHksXG4gICAgICAgIHBhdXNlU3RyZWFtOiB0aGlzLnBhdXNlU3RyZWFtcyxcbiAgICAgIH0pO1xuICAgICAgc3RyZWFtLm9uKCdkYXRhJywgdGhpcy5fY2hlY2tEYXRhU2l6ZS5iaW5kKHRoaXMpKTtcbiAgICAgIHN0cmVhbSA9IG5ld1N0cmVhbTtcbiAgICB9XG5cbiAgICB0aGlzLl9oYW5kbGVFcnJvcnMoc3RyZWFtKTtcblxuICAgIGlmICh0aGlzLnBhdXNlU3RyZWFtcykge1xuICAgICAgc3RyZWFtLnBhdXNlKCk7XG4gICAgfVxuICB9XG5cbiAgdGhpcy5fc3RyZWFtcy5wdXNoKHN0cmVhbSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuQ29tYmluZWRTdHJlYW0ucHJvdG90eXBlLnBpcGUgPSBmdW5jdGlvbihkZXN0LCBvcHRpb25zKSB7XG4gIFN0cmVhbS5wcm90b3R5cGUucGlwZS5jYWxsKHRoaXMsIGRlc3QsIG9wdGlvbnMpO1xuICB0aGlzLnJlc3VtZSgpO1xuICByZXR1cm4gZGVzdDtcbn07XG5cbkNvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5fZ2V0TmV4dCA9IGZ1bmN0aW9uKCkge1xuICB0aGlzLl9jdXJyZW50U3RyZWFtID0gbnVsbDtcblxuICBpZiAodGhpcy5faW5zaWRlTG9vcCkge1xuICAgIHRoaXMuX3BlbmRpbmdOZXh0ID0gdHJ1ZTtcbiAgICByZXR1cm47IC8vIGRlZmVyIGNhbGxcbiAgfVxuXG4gIHRoaXMuX2luc2lkZUxvb3AgPSB0cnVlO1xuICB0cnkge1xuICAgIGRvIHtcbiAgICAgIHRoaXMuX3BlbmRpbmdOZXh0ID0gZmFsc2U7XG4gICAgICB0aGlzLl9yZWFsR2V0TmV4dCgpO1xuICAgIH0gd2hpbGUgKHRoaXMuX3BlbmRpbmdOZXh0KTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0aGlzLl9pbnNpZGVMb29wID0gZmFsc2U7XG4gIH1cbn07XG5cbkNvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5fcmVhbEdldE5leHQgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHN0cmVhbSA9IHRoaXMuX3N0cmVhbXMuc2hpZnQoKTtcblxuXG4gIGlmICh0eXBlb2Ygc3RyZWFtID09ICd1bmRlZmluZWQnKSB7XG4gICAgdGhpcy5lbmQoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodHlwZW9mIHN0cmVhbSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRoaXMuX3BpcGVOZXh0KHN0cmVhbSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGdldFN0cmVhbSA9IHN0cmVhbTtcbiAgZ2V0U3RyZWFtKGZ1bmN0aW9uKHN0cmVhbSkge1xuICAgIHZhciBpc1N0cmVhbUxpa2UgPSBDb21iaW5lZFN0cmVhbS5pc1N0cmVhbUxpa2Uoc3RyZWFtKTtcbiAgICBpZiAoaXNTdHJlYW1MaWtlKSB7XG4gICAgICBzdHJlYW0ub24oJ2RhdGEnLCB0aGlzLl9jaGVja0RhdGFTaXplLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5faGFuZGxlRXJyb3JzKHN0cmVhbSk7XG4gICAgfVxuXG4gICAgdGhpcy5fcGlwZU5leHQoc3RyZWFtKTtcbiAgfS5iaW5kKHRoaXMpKTtcbn07XG5cbkNvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5fcGlwZU5leHQgPSBmdW5jdGlvbihzdHJlYW0pIHtcbiAgdGhpcy5fY3VycmVudFN0cmVhbSA9IHN0cmVhbTtcblxuICB2YXIgaXNTdHJlYW1MaWtlID0gQ29tYmluZWRTdHJlYW0uaXNTdHJlYW1MaWtlKHN0cmVhbSk7XG4gIGlmIChpc1N0cmVhbUxpa2UpIHtcbiAgICBzdHJlYW0ub24oJ2VuZCcsIHRoaXMuX2dldE5leHQuYmluZCh0aGlzKSk7XG4gICAgc3RyZWFtLnBpcGUodGhpcywge2VuZDogZmFsc2V9KTtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgdmFsdWUgPSBzdHJlYW07XG4gIHRoaXMud3JpdGUodmFsdWUpO1xuICB0aGlzLl9nZXROZXh0KCk7XG59O1xuXG5Db21iaW5lZFN0cmVhbS5wcm90b3R5cGUuX2hhbmRsZUVycm9ycyA9IGZ1bmN0aW9uKHN0cmVhbSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbihlcnIpIHtcbiAgICBzZWxmLl9lbWl0RXJyb3IoZXJyKTtcbiAgfSk7XG59O1xuXG5Db21iaW5lZFN0cmVhbS5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihkYXRhKSB7XG4gIHRoaXMuZW1pdCgnZGF0YScsIGRhdGEpO1xufTtcblxuQ29tYmluZWRTdHJlYW0ucHJvdG90eXBlLnBhdXNlID0gZnVuY3Rpb24oKSB7XG4gIGlmICghdGhpcy5wYXVzZVN0cmVhbXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZih0aGlzLnBhdXNlU3RyZWFtcyAmJiB0aGlzLl9jdXJyZW50U3RyZWFtICYmIHR5cGVvZih0aGlzLl9jdXJyZW50U3RyZWFtLnBhdXNlKSA9PSAnZnVuY3Rpb24nKSB0aGlzLl9jdXJyZW50U3RyZWFtLnBhdXNlKCk7XG4gIHRoaXMuZW1pdCgncGF1c2UnKTtcbn07XG5cbkNvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5yZXN1bWUgPSBmdW5jdGlvbigpIHtcbiAgaWYgKCF0aGlzLl9yZWxlYXNlZCkge1xuICAgIHRoaXMuX3JlbGVhc2VkID0gdHJ1ZTtcbiAgICB0aGlzLndyaXRhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLl9nZXROZXh0KCk7XG4gIH1cblxuICBpZih0aGlzLnBhdXNlU3RyZWFtcyAmJiB0aGlzLl9jdXJyZW50U3RyZWFtICYmIHR5cGVvZih0aGlzLl9jdXJyZW50U3RyZWFtLnJlc3VtZSkgPT0gJ2Z1bmN0aW9uJykgdGhpcy5fY3VycmVudFN0cmVhbS5yZXN1bWUoKTtcbiAgdGhpcy5lbWl0KCdyZXN1bWUnKTtcbn07XG5cbkNvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5fcmVzZXQoKTtcbiAgdGhpcy5lbWl0KCdlbmQnKTtcbn07XG5cbkNvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7XG4gIHRoaXMuX3Jlc2V0KCk7XG4gIHRoaXMuZW1pdCgnY2xvc2UnKTtcbn07XG5cbkNvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5fcmVzZXQgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy53cml0YWJsZSA9IGZhbHNlO1xuICB0aGlzLl9zdHJlYW1zID0gW107XG4gIHRoaXMuX2N1cnJlbnRTdHJlYW0gPSBudWxsO1xufTtcblxuQ29tYmluZWRTdHJlYW0ucHJvdG90eXBlLl9jaGVja0RhdGFTaXplID0gZnVuY3Rpb24oKSB7XG4gIHRoaXMuX3VwZGF0ZURhdGFTaXplKCk7XG4gIGlmICh0aGlzLmRhdGFTaXplIDw9IHRoaXMubWF4RGF0YVNpemUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgbWVzc2FnZSA9XG4gICAgJ0RlbGF5ZWRTdHJlYW0jbWF4RGF0YVNpemUgb2YgJyArIHRoaXMubWF4RGF0YVNpemUgKyAnIGJ5dGVzIGV4Y2VlZGVkLic7XG4gIHRoaXMuX2VtaXRFcnJvcihuZXcgRXJyb3IobWVzc2FnZSkpO1xufTtcblxuQ29tYmluZWRTdHJlYW0ucHJvdG90eXBlLl91cGRhdGVEYXRhU2l6ZSA9IGZ1bmN0aW9uKCkge1xuICB0aGlzLmRhdGFTaXplID0gMDtcblxuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuX3N0cmVhbXMuZm9yRWFjaChmdW5jdGlvbihzdHJlYW0pIHtcbiAgICBpZiAoIXN0cmVhbS5kYXRhU2l6ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNlbGYuZGF0YVNpemUgKz0gc3RyZWFtLmRhdGFTaXplO1xuICB9KTtcblxuICBpZiAodGhpcy5fY3VycmVudFN0cmVhbSAmJiB0aGlzLl9jdXJyZW50U3RyZWFtLmRhdGFTaXplKSB7XG4gICAgdGhpcy5kYXRhU2l6ZSArPSB0aGlzLl9jdXJyZW50U3RyZWFtLmRhdGFTaXplO1xuICB9XG59O1xuXG5Db21iaW5lZFN0cmVhbS5wcm90b3R5cGUuX2VtaXRFcnJvciA9IGZ1bmN0aW9uKGVycikge1xuICB0aGlzLl9yZXNldCgpO1xuICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTtcbn07XG4iLCAie1xuICBcImFwcGxpY2F0aW9uLzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi8zZ3BkYXNoLXFvZS1yZXBvcnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi8zZ3BwLWltcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi8zZ3BwaGFsK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi8zZ3BwaGFsZm9ybXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2EybFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hY2UrY2JvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hY3RpdmVtZXNzYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FjdGl2aXR5K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLWNvc3RtYXAranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FsdG8tY29zdG1hcGZpbHRlcitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by1kaXJlY3RvcnkranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRjb3N0K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50Y29zdHBhcmFtcytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludHByb3AranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRwcm9wcGFyYW1zK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLWVycm9yK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLW5ldHdvcmttYXAranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FsdG8tbmV0d29ya21hcGZpbHRlcitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by11cGRhdGVzdHJlYW1jb250cm9sK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLXVwZGF0ZXN0cmVhbXBhcmFtcytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYW1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FuZHJldy1pbnNldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXBwbGVmaWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FwcGxpeHdhcmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXQrand0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdGZ4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0b20reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhdG9tXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXRvbWNhdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF0b21jYXRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdG9tZGVsZXRlZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF0b21kZWxldGVkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXRvbWljbWFpbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdG9tc3ZjK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXRvbXN2Y1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0c2MtZHdkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHdkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXRzYy1keW5hbWljLWV2ZW50LW1lc3NhZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXRzYy1oZWxkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGVsZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0c2MtcmR0K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdHNjLXJzYXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyc2F0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXR4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXV0aC1wb2xpY3kreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYmFjbmV0LXhkZCt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYmF0Y2gtc210cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9iZG9jXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYmRvY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2JlZXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jYWxlbmRhcitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2FsZW5kYXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4Y3NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jYWxsLWNvbXBsZXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2Fscy0xODQwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NhcHRpdmUranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2Jvci1zZXFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2NjZXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2NtcCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jY3htbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNjeG1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2RmeCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNkZnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jZG1pLWNhcGFiaWxpdHlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjZG1pYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NkbWktY29udGFpbmVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2RtaWNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jZG1pLWRvbWFpblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNkbWlkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2RtaS1vYmplY3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjZG1pb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NkbWktcXVldWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjZG1pcVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NkbmlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2VhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NlYS0yMDE4K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NlbGxtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jZndcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2l0eStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2xyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NsdWUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2x1ZV9pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Ntc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jbnJwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NvYXAtZ3JvdXAranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NvYXAtcGF5bG9hZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jb21tb25ncm91bmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY29uZmVyZW5jZS1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Nvc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY29zZS1rZXlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY29zZS1rZXktc2V0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NwbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNwbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NzcmF0dHJzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NzdGEreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY3N0YWRhdGEreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY3N2bStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY3Utc2VlbWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImN1XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY3d0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2N5YmVyY2FzaFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kYXJ0XCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGFzaCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rhc2gtcGF0Y2greG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kYXNoZGVsdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGF2bW91bnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkYXZtb3VudFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2RjYS1yZnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGNkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2RlYy1keFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kaWFsb2ctaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kaWNvbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kaWNvbStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGljb20reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGlpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2RpdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kbnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZG5zK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kbnMtbWVzc2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kb2Nib29rK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkYmtcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kb3RzK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZHNrcHAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZHNzYytkZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkc3NjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZHNzYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhkc3NjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZHZjc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lY21hc2NyaXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlc1wiLFwiZWNtYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VkaS1jb25zZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VkaS14MTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZWRpZmFjdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lZmlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZWxtK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VsbSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5jYXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5jb21tZW50K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmNvbnRyb2wreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuZGV2aWNlaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5lY2FsbC5tc2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEucHJvdmlkZXJpbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnNlcnZpY2VpbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnN1YnNjcmliZXJpbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnZlZHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZW1tYSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVtbWFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbW90aW9ubWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlbW90aW9ubWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbmNhcHJ0cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lcHAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZXB1Yit6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlcHViXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZXNob3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZXhpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXhpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZXhwZWN0LWN0LXJlcG9ydCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZXhwcmVzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV4cFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Zhc3RpbmZvc2V0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Zhc3Rzb2FwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2ZkdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZkdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2ZoaXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZmhpcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2ZpZG8udHJ1c3RlZC1hcHBzK2pzb25cIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9maXRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2ZsZXhmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZm9udC1zZm50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2ZvbnQtdGRwZnJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwZnJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9mb250LXdvZmZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZnJhbWV3b3JrLWF0dHJpYnV0ZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZ2VvK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdlb2pzb25cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9nZW8ranNvbi1zZXFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZ2VvcGFja2FnZStzcWxpdGUzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2dlb3hhY21sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2dsdGYtYnVmZmVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2dtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2dweCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3B4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZ3hmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJneGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9nemlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3pcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9oMjI0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2hlbGQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaGpzb25cIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoanNvblwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2h0dHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaHlwZXJzdHVkaW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdGtcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9pYmUta2V5LXJlcXVlc3QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaWJlLXBrZy1yZXBseSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9pYmUtcHAtZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9pZ2VzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2ltLWlzY29tcG9zaW5nK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaW5kZXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaW5kZXguY21kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2luZGV4Lm9ialwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9pbmRleC5yZXNwb25zZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9pbmRleC52bmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaW5rbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpbmtcIixcImlua21sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaW90cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9pcGZpeFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImlwZml4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaXBwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2lzdXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaXRzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaXRzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vamF2YS1hcmNoaXZlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqYXJcIixcIndhclwiLFwiZWFyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vamF2YS1zZXJpYWxpemVkLW9iamVjdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vamF2YS12bVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2xhc3NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpzXCIsXCJtanNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qZjJmZWVkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qb3NlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2pvc2UranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2pyZCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vanNjYWxlbmRhcitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqc29uXCIsXCJtYXBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qc29uLXBhdGNoK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qc29uLXNlcVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qc29uNVwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpzb241XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vanNvbm1sK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianNvbm1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vandrK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qd2stc2V0K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qd3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24va3BtbC1yZXF1ZXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2twbWwtcmVzcG9uc2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbGQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianNvbmxkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbGdyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibGdyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbGluay1mb3JtYXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbG9hZC1jb250cm9sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2xvc3QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsb3N0eG1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbG9zdHN5bmMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbHBmK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9seGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWFjLWJpbmhleDQwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHF4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWFjLWNvbXBhY3Rwcm9cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNwdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21hY3dyaXRlaWlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWFkcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1hZHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYW5pZmVzdCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndlYm1hbmlmZXN0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWFyY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1yY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21hcmN4bWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcmN4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWF0aGVtYXRpY2FcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtYVwiLFwibmJcIixcIm1iXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWF0aG1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWF0aG1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWF0aG1sLWNvbnRlbnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWF0aG1sLXByZXNlbnRhdGlvbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYm1zLWFzc29jaWF0ZWQtcHJvY2VkdXJlLWRlc2NyaXB0aW9uK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ibXMtZGVyZWdpc3Rlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYm1zLWVudmVsb3BlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ibXMtbXNrK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ibXMtbXNrLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ibXMtcHJvdGVjdGlvbi1kZXNjcmlwdGlvbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYm1zLXJlY2VwdGlvbi1yZXBvcnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWJtcy1yZWdpc3Rlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYm1zLXJlZ2lzdGVyLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ibXMtc2NoZWR1bGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWJtcy11c2VyLXNlcnZpY2UtZGVzY3JpcHRpb24reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWJveFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1ib3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tZWRpYS1wb2xpY3ktZGF0YXNldCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21lZGlhX2NvbnRyb2wreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWVkaWFzZXJ2ZXJjb250cm9sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXNjbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tZXJnZS1wYXRjaCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWV0YWxpbmsreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1ldGFsaW5rXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWV0YWxpbms0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWV0YTRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tZXRzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWV0c1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21mNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9taWtleVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9taXBjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL21pc3NpbmctYmxvY2tzK2Nib3Itc2VxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL21tdC1hZWkreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtYWVpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbW10LXVzZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm11c2RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tb2RzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibW9kc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21vc3Mta2V5c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tb3NzLXNpZ25hdHVyZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tb3Nza2V5LWRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbW9zc2tleS1yZXF1ZXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL21wMjFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtMjFcIixcIm1wMjFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tcDRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcDRzXCIsXCJtNHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tcGVnNC1nZW5lcmljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL21wZWc0LWlvZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tcGVnNC1pb2QteG10XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL21yYi1jb25zdW1lcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tcmItcHVibGlzaCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tc2MtaXZyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXNjLW1peGVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXN3b3JkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZG9jXCIsXCJkb3RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tdWQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL211bHRpcGFydC1jb3JlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL214ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm14ZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL24tcXVhZHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJucVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL24tdHJpcGxlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm50XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbmFzZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9uZXdzLWNoZWNrZ3JvdXBzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVUy1BU0NJSVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbmV3cy1ncm91cGluZm9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVTLUFTQ0lJXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9uZXdzLXRyYW5zbWlzc2lvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9ubHNtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9ub2RlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2pzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbnNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL29hdXRoLWF1dGh6LXJlcStqd3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vb2JsaXZpb3VzLWRucy1tZXNzYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL29jc3AtcmVxdWVzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vY3NwLXJlc3BvbnNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJpblwiLFwiZG1zXCIsXCJscmZcIixcIm1hclwiLFwic29cIixcImRpc3RcIixcImRpc3R6XCIsXCJwa2dcIixcImJwa1wiLFwiZHVtcFwiLFwiZWxjXCIsXCJkZXBsb3lcIixcImV4ZVwiLFwiZGxsXCIsXCJkZWJcIixcImRtZ1wiLFwiaXNvXCIsXCJpbWdcIixcIm1zaVwiLFwibXNwXCIsXCJtc21cIixcImJ1ZmZlclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL29kYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9kYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL29kbSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vZHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vb2VicHMtcGFja2FnZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9wZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL29nZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9neFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL29tZG9jK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvbWRvY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL29uZW5vdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9uZXRvY1wiLFwib25ldG9jMlwiLFwib25ldG1wXCIsXCJvbmVwa2dcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vcGMtbm9kZXNldCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vc2NvcmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vb3hwc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm94cHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wMjFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcDIxK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wMnAtb3ZlcmxheSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJlbG9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wYXJpdHlmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGFzc3BvcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGF0Y2gtb3BzLWVycm9yK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGVyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGRmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGRmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BlbS1jZXJ0aWZpY2F0ZS1jaGFpblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wZ3AtZW5jcnlwdGVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGdwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGdwLWtleXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhc2NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXNjXCIsXCJzaWdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9waWNzLXJ1bGVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcmZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9waWRmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGlkZi1kaWZmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGtjczEwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicDEwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGtjczEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BrY3M3LW1pbWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwN21cIixcInA3Y1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BrY3M3LXNpZ25hdHVyZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInA3c1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BrY3M4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicDhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wa2NzOC1lbmNyeXB0ZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGtpeC1hdHRyLWNlcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BraXgtY2VydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNlclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BraXgtY3JsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3JsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGtpeC1wa2lwYXRoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGtpcGF0aFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BraXhjbXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwa2lcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wbHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwbHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wb2Mtc2V0dGluZ3MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wb3N0c2NyaXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhaVwiLFwiZXBzXCIsXCJwc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bwc3AtdHJhY2tlcitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJvYmxlbStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJvYmxlbSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcm92ZW5hbmNlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHJvdnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcnMuYWx2ZXN0cmFuZC50aXRyYXgtc2hlZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJzLmN3d1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImN3d1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bycy5jeW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIjctQklUXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcnMuaHB1Yit6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJzLm5wcmVuZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcnMucGx1Y2tlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcnMucmRmLXhtbC1jcnlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcnMueHNmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bza2MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwc2tjeG1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHZkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9xc2lnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3JhbWwreWFtbFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmFtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3JhcHRvcmZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yZGFwK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yZGYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyZGZcIixcIm93bFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3JlZ2luZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyaWZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yZWxheC1uZy1jb21wYWN0LXN5bnRheFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJuY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3JlbW90ZS1wcmludGluZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yZXB1dG9uK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yZXNvdXJjZS1saXN0cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmVzb3VyY2UtbGlzdHMtZGlmZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJsZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3JmYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yaXNjb3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmxtaSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9ybHMtc2VydmljZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3JvdXRlLWFwZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJhcGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yb3V0ZS1zLXRzaWQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yb3V0ZS11c2QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJydXNkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcnBraS1naG9zdGJ1c3RlcnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnYnJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9ycGtpLW1hbmlmZXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWZ0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcnBraS1wdWJsaWNhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9ycGtpLXJvYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJvYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Jwa2ktdXBkb3duXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3JzZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnNkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcnNzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyc3NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9ydGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJ0ZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3J0cGxvb3BiYWNrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3J0eFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zYW1sYXNzZXJ0aW9uK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NhbWxtZXRhZGF0YSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zYXJpZitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2FyaWYtZXh0ZXJuYWwtcHJvcGVydGllcytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2JlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NibWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzYm1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2NhaXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2NpbStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2N2cC1jdi1yZXF1ZXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2NxXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2N2cC1jdi1yZXNwb25zZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNjc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NjdnAtdnAtcmVxdWVzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNwcVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NjdnAtdnAtcmVzcG9uc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzcHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZWNldmVudCtqd3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2VubWwrY2JvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZW5tbCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2VubWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZW5tbHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZW5tbC1ldGNoK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2VubWwtZXRjaCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2VubWwtZXhpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NlbnNtbCtjYm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NlbnNtbCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2Vuc21sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2Vuc21seFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NlbnNtbC1leGlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2VwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NlcC1leGlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2Vzc2lvbi1pbmZvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NldC1wYXltZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NldC1wYXltZW50LWluaXRpYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZXRwYXlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZXQtcmVnaXN0cmF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NldC1yZWdpc3RyYXRpb24taW5pdGlhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNldHJlZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NnbWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2dtbC1vcGVuLWNhdGFsb2dcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2hmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2hmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2lldmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzaXZcIixcInNpZXZlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2ltcGxlLWZpbHRlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zaW1wbGUtbWVzc2FnZS1zdW1tYXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NpbXBsZXN5bWJvbGNvbnRhaW5lclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zaXBjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NtaWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc21pbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNtaVwiLFwic21pbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NtcHRlMzM2bVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zb2FwK2Zhc3RpbmZvc2V0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NvYXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3BhcnFsLXF1ZXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zcGFycWwtcmVzdWx0cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNyeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NwZHgranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NwaXJpdHMtZXZlbnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3FsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NyZ3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJncmFtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3Jncyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdyeG1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3J1K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3J1XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3NkbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3NkbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NzbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzc21sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3RpeCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3dpZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN3aWR0YWdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLWFwZXgtdXBkYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhbXAtYXBleC11cGRhdGUtY29uZmlybVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLWNvbW11bml0eS11cGRhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGFtcC1jb21tdW5pdHktdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGFtcC1lcnJvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLXNlcXVlbmNlLWFkanVzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLXNlcXVlbmNlLWFkanVzdC1jb25maXJtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhbXAtc3RhdHVzLXF1ZXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhbXAtc3RhdHVzLXJlc3BvbnNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhbXAtdXBkYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhbXAtdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGFyXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGF4aWkranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90ZWkreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0ZWlcIixcInRlaWNvcnB1c1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RldHJhX2lzaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90aHJhdWQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0ZmlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90aW1lc3RhbXAtcXVlcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGltZXN0YW1wLXJlcGx5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RpbWVzdGFtcGVkLWRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0c2RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90bHNycHQrZ3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90bHNycHQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RuYXV0aGxpc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdG9rZW4taW50cm9zcGVjdGlvbitqd3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdG9tbFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widG9tbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RyaWNrbGUtaWNlLXNkcGZyYWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdHJpZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRyaWdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90dG1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHRtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3R2ZS10cmlnZ2VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3R6aWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdHppZi1sZWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3VianNvblwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInVialwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3VscGZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi91cmMtZ3Jwc2hlZXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdXJjLXJlc3NoZWV0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnNoZWV0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdXJjLXRhcmdldGRlc2MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0ZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3VyYy11aXNvY2tldGRlc2MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdmNhcmQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZjYXJkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZlbW1pXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZpdmlkZW5jZS5zY3JpcHRmaWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjEwMDBtaW5kcy5kZWNpc2lvbi1tb2RlbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIjFrbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjM2NoK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXYyeC1sb2NhbC1zZXJ2aWNlLWluZm9ybWF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnbmFzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmFjY2Vzcy10cmFuc2Zlci1ldmVudHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuYnNmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmdtb3AreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuZ3RwY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5pbnRlcndvcmtpbmctZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5scHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWMtc2lnbmFsbGluZy1lYXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLWFmZmlsaWF0aW9uLWNvbW1hbmQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXBheWxvYWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXNlcnZpY2UtY29uZmlnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1zaWduYWxsaW5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS11ZS1jb25maWcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXVzZXItcHJvZmlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1hZmZpbGlhdGlvbi1jb21tYW5kK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWZsb29yLXJlcXVlc3QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1sb2NhdGlvbi1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LW1ibXMtdXNhZ2UtaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1zaWduZWQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtdWUtY29uZmlnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVlLWluaXQtY29uZmlnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVzZXItcHJvZmlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLWFmZmlsaWF0aW9uLWNvbW1hbmQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1hZmZpbGlhdGlvbi1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8taW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLWxvY2F0aW9uLWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1tYm1zLXVzYWdlLWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXRyYW5zbWlzc2lvbi1yZXF1ZXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdWUtY29uZmlnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdXNlci1wcm9maWxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1pZC1jYWxsK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm5nYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGZjcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctbGFyZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwbGJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctc21hbGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwc2JcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctdmFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHZiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuczFhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zbXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc21zK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNydmNjLWV4dCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zcnZjYy1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnN0YXRlLWFuZC1ldmVudC1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnVzc2QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAyLmJjbWNzaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcDIuc21zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwMi50Y2FwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGNhcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zbGlnaHRzc29mdHdhcmUuaW1hZ2VzY2FsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zbS5wb3N0LWl0LW5vdGVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHduXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFjY3BhYy5zaW1wbHkuYXNvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXNvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFjY3BhYy5zaW1wbHkuaW1wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaW1wXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFjdWNvYm9sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWN1XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFjdWNvcnBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhdGNcIixcImFjdXRjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmFpci1hcHBsaWNhdGlvbi1pbnN0YWxsZXItcGFja2FnZSt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFpclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5mbGFzaC5tb3ZpZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUuZm9ybXNjZW50cmFsLmZjZHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmY2R0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmZ4cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZ4cFwiLFwiZnhwbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5wYXJ0aWFsLXVwbG9hZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUueGRwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGRwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLnhmZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4ZmRmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFldGhlci5pbXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuYWZwbGluZWRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuYWZwbGluZWRhdGEtcGFnZWRlZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5jbW9jYS1jbXJlc291cmNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmZvY2EtY2hhcnNldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5mb2NhLWNvZGVkZm9udFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5mb2NhLWNvZGVwYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLWNtdGFibGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtZm9ybWRlZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1tZWRpdW1tYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2Etb2JqZWN0Y29udGFpbmVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLW92ZXJsYXlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtcGFnZXNlZ21lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFnZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5haC1iYXJjb2RlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5haGVhZC5zcGFjZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFoZWFkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFpcnppcC5maWxlc2VjdXJlLmF6ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF6ZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5haXJ6aXAuZmlsZXNlY3VyZS5henNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhenNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYW1hZGV1cytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFtYXpvbi5lYm9va1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXp3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFtYXpvbi5tb2JpOC1lYm9va1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYW1lcmljYW5keW5hbWljcy5hY2NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhY2NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYW1pZ2EuYW1pXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYW1pXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFtdW5kc2VuLm1hemUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFuZHJvaWQub3RhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbmRyb2lkLnBhY2thZ2UtYXJjaGl2ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXBrXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFua2lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFuc2VyLXdlYi1jZXJ0aWZpY2F0ZS1pc3N1ZS1pbml0aWF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2lpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFuc2VyLXdlYi1mdW5kcy10cmFuc2Zlci1pbml0aWF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmdGlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYW50aXguZ2FtZS1jb21wb25lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhdHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLmFycm93LmZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS5hcnJvdy5zdHJlYW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS50aHJpZnQuYmluYXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUudGhyaWZ0LmNvbXBhY3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS50aHJpZnQuanNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBpK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBsZXh0b3Iud2FycnAranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcG90aGVrZW5kZS5yZXNlcnZhdGlvbitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLmluc3RhbGxlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wa2dcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUua2V5bm90ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImtleVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibTN1OFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5udW1iZXJzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibnVtYmVyc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5wYWdlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBhZ2VzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLnBrcGFzc1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBrcGFzc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcmFzdHJhLnN3aVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXJpc3RhbmV0d29ya3Muc3dpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3dpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFydGlzYW4ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcnRzcXVhcmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFzdHJhZWEtc29mdHdhcmUuaW90YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImlvdGFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXVkaW9ncmFwaFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFlcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hdXRvcGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXZhbG9uK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXZpc3Rhcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmFsc2FtaXEuYm1tbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJtbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmFsc2FtaXEuYm1wclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmFuYW5hLWFjY291bnRpbmdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AuZXJyb3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AubXNnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5iYmYudXNwLm1zZytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJla2l0enVyLXN0ZWNoK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmludC5tZWQtY29udGVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmlvcGF4LnJkZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmxpbmstaWRiLXZhbHVlLXdyYXBwZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJsdWVpY2UubXVsdGlwYXNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXBtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJsdWV0b290aC5lcC5vb2JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJsdWV0b290aC5sZS5vb2JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJtaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJtaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5icGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJwZjNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJ1c2luZXNzb2JqZWN0c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJlcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ieXUudWFwaStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNhYi1qc2NyaXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jYW5vbi1jcGRsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jYW5vbi1saXBzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jYXBhc3lzdGVtcy1wZytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNlbmRpby50aGlubGluYy5jbGllbnRjb25mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jZW50dXJ5LXN5c3RlbXMudGNwX3N0cmVhbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2hlbWRyYXcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjZHhtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jaGVzcy1wZ25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNoaXBudXRzLmthcmFva2UtbW1kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibW1kXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNpZWRpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jaW5kZXJlbGxhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2R5XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNpcnBhY2suaXNkbi1leHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNpdGF0aW9uc3R5bGVzLnN0eWxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3NsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNsYXltb3JlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2xhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNsb2FudG8ucnA5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnA5XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNsb25rLmM0Z3JvdXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjNGdcIixcImM0ZFwiLFwiYzRmXCIsXCJjNHBcIixcImM0dVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jbHVldHJ1c3QuY2FydG9tb2JpbGUtY29uZmlnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYzExYW1jXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNsdWV0cnVzdC5jYXJ0b21vYmlsZS1jb25maWctcGtnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYzExYW16XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvZmZlZXNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuZG9jdW1lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLmRvY3VtZW50LXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5wcmVzZW50YXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnByZXNlbnRhdGlvbi10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuc3ByZWFkc2hlZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnNwcmVhZHNoZWV0LXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGVjdGlvbi5kb2MranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uLm5leHQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb21pY2Jvb2sremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb21pY2Jvb2stcmFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb21tZXJjZS1iYXR0ZWxsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29tbW9uc3BhY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjc3BcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29udGFjdC5jbXNnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2RiY21zZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb3Jlb3MuaWduaXRpb24ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb3Ntb2NhbGxlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNtY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2xreFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLmtleWJvYXJkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2xra1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLnBhbGV0dGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjbGtwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIudGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjbGt0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIud29yZGJhbmtcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjbGt3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNyaXRpY2FsdG9vbHMud2JzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2JzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0aWkucGlwZStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0by1zaGFkZS1maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG9tYXRvci5lbmNyeXB0ZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0b21hdG9yLnZhdWx0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jdGMtcG9zbWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3RjdC53cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1wZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcG9zdHNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1wcGRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1yYXN0ZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcmF3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsLmNhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2FyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN1cmwucGN1cmxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBjdXJsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN5YW4uZGVhbi5yb290K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jeWJhbmtcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN5Y2xvbmVkeCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN5Y2xvbmVkeCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZDJsLmNvdXJzZXBhY2thZ2UxcDAremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kM20tZGF0YXNldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZDNtLXByb2JsZW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRhcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRhcnRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YS12aXNpb24ucmR6XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmR6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRhdGFwYWNrYWdlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YXJlc291cmNlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGJmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGJmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRlYmlhbi5iaW5hcnktcGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS5kYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXZmXCIsXCJ1dnZmXCIsXCJ1dmRcIixcInV2dmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS50dG1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXZ0XCIsXCJ1dnZ0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRlY2UudW5zcGVjaWZpZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dnhcIixcInV2dnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS56aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dnpcIixcInV2dnpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGVub3ZvLmZjc2VsYXlvdXQtbGlua1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZlX2xhdW5jaFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kZXNtdW1lLm1vdmllXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kaXItYmkucGxhdGUtZGwtbm9zdWZmaXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRtLmRlbGVnYXRpb24reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRuYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRuYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kb2N1bWVudCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1scFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWxwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1vYmlsZS4xXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tb2JpbGUuMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZG9yZW1pci5zY29yZWNsb3VkLWJpbmFyeS1kb2N1bWVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHBncmFwaFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRwZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kcmVhbWZhY3RvcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkZmFjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRyaXZlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHMta2V5cG9pbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImtweHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHRnLmxvY2FsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdGcubG9jYWwuZmxhc2hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR0Zy5sb2NhbC5odG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuYWl0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWl0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5kdmJpc2wreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5kdmJqXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZXNnY29udGFpbmVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2RmdG5vdGlmYWNjZXNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2VzZ2FjY2Vzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dhY2Nlc3MyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2VzZ3BkZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNyb2FtaW5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXB0di5hbGZlYy1iYXNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXB0di5hbGZlYy1lbmhhbmNlbWVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWFnZ3JlZ2F0ZS1yb290K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtY29udGFpbmVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtZ2VuZXJpYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWlhLW1zZ2xpc3QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1yZWdpc3RyYXRpb24tcmVxdWVzdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWlhLXJlZ2lzdHJhdGlvbi1yZXNwb25zZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWluaXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5wZnJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5zZXJ2aWNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3ZjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR4clwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHluYWdlb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdlb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kenJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVhc3lrYXJhb2tlLmNkZ2Rvd25sb2FkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lY2Rpcy11cGRhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVjaXAucmxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lY2xpcHNlLmRpdHRvK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmNoYXJ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWFnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5maWxlcmVxdWVzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmZpbGV1cGRhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5zZXJpZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5zZXJpZXNyZXF1ZXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uc2VyaWVzdXBkYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lZmkuaW1nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lZmkuaXNvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lbWNsaWVudC5hY2Nlc3NyZXF1ZXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lbmxpdmVuXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibm1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVucGhhc2UuZW52b3lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVwcmludHMuZGF0YSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24uZXNmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXNmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLm1zZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1zZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5xdWlja2FuaW1lXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicWFtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLnNhbHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24uc3NmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3NmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVyaWNzc29uLnF1aWNrY2FsbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXNwYXNzLWVzcGFzcyt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVzemlnbm8zK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXMzXCIsXCJldDNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5hb2MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYXNpYy1lK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5hc2ljLXMremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmN1Zyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2Y29tbWFuZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2ZGlzY292ZXJ5K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZwcm9maWxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtYmMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNhZC1jb2QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNhZC1ucHZyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzZXJ2aWNlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzeW5jK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZ1ZXByb2ZpbGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kubWNpZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5taGVnNVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5vdmVybG9hZC1jb250cm9sLXBvbGljeS1kYXRhc2V0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnBzdG4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuc2NpK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnNpbXNlcnZzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnRpbWVzdGFtcC10b2tlblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS50c2wreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kudHNsLmRlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXUua2FzcGFyaWFuLmNhcitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV1ZG9yYS5kYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnByb2ZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV2b2x2LmVjaWcuc2V0dGluZ3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV2b2x2LmVjaWcudGhlbWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV4c3RyZWFtLWVtcG93ZXIremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5leHN0cmVhbS1wYWNrYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lenBpeC1hbGJ1bVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV6MlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lenBpeC1wYWNrYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXozXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmYtc2VjdXJlLm1vYmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZmFtaWx5c2VhcmNoLmdlZGNvbSt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZhc3Rjb3B5LWRpc2staW1hZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZkZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZkZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mZHNuLm1zZWVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXNlZWRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5zZWVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VlZFwiLFwiZGF0YWxlc3NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZmZzbnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZpY2xhYi5mbGIremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5maWxtaXQuemZjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5maW50c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZmlyZW1vbmtleXMuY2xvdWRjZWxsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mbG9ncmFwaGl0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3BoXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZsdXh0aW1lLmNsaXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmdGNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZm9udC1mb250Zm9yZ2Utc2ZkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mcmFtZW1ha2VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZm1cIixcImZyYW1lXCIsXCJtYWtlclwiLFwiYm9va1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mcm9nYW5zLmZuY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZuY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mcm9nYW5zLmx0ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImx0ZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mc2Mud2VibGF1bmNoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZnNjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmRvY3V3b3Jrc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuZG9jdXdvcmtzLmJpbmRlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuZG9jdXdvcmtzLmNvbnRhaW5lclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuamZpK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2FzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXMyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2EyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXMzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2EzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXNncFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZnNVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzcHJzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYmgyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5hcnQtZXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5hcnQ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZGRkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGRkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kb2N1d29ya3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4ZHdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRvY3V3b3Jrcy5iaW5kZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4YmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRvY3V3b3Jrcy5jb250YWluZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5oYnBsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdXQtbWlzbmV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdXRvaW4rY2JvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnV0b2luK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnV6enlzaGVldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZ6c1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZW5vbWF0aXgudHV4ZWRvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHhkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlbnRpY3MuZ3JkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvY3ViZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEuZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdnYlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS5zbGlkZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLnRvb2xcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZ3RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvbWV0cnktZXhwbG9yZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZXhcIixcImdyZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9uZXh0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3h0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlb3BsYW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnMndcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2Vvc3BhY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnM3dcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2VyYmVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nbG9iYWxwbGF0Zm9ybS5jYXJkLWNvbnRlbnQtbWd0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nbG9iYWxwbGF0Zm9ybS5jYXJkLWNvbnRlbnQtbWd0LXJlc3BvbnNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nbXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnbXhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZG9jdW1lbnRcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZG9jXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnByZXNlbnRhdGlvblwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdzbGlkZXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc3ByZWFkc2hlZXRcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnc2hlZXRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImttbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua216XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia216XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvdi5zay5lLWZvcm0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvdi5zay5lLWZvcm0remlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb3Yuc2sueG1sZGF0YWNvbnRhaW5lcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ3JhZmVxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3FmXCIsXCJncXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ3JpZG1wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtYWNjb3VudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdhY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaGVscFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdoZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaWRlbnRpdHktbWVzc2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdpbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaW5qZWN0b3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJncnZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXRvb2wtbWVzc2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImd0bVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdG9vbC10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRwbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdmNhcmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2Y2dcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaGFsK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaGFsK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGFsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhhbmRoZWxkLWVudGVydGFpbm1lbnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ6bW1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaGJjaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhiY2lcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaGMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5oY2wtYmlyZXBvcnRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5oZHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhlcm9rdStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhoZS5sZXNzb24tcGxheWVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibGVzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhsN2NkYSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5obDd2Mit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1ocGdsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHBnbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1ocGlkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHBpZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1ocHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJocHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHAtamx5dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpsdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1wY2xcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwY2xcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHAtcGNseGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwY2x4bFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5odHRwaG9uZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHlkcm9zdGF0aXguc29mLWRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZmQtaGRzdHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHlwZXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5oeXBlci1pdGVtK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHlwZXJkcml2ZStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmh6bi0zZC1jcm9zc3dvcmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlibS5hZnBsaW5lZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLmVsZWN0cm9uaWMtbWVkaWFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlibS5taW5pcGF5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXB5XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlibS5tb2RjYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhZnBcIixcImxpc3RhZnBcIixcImxpc3QzODIwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlibS5yaWdodHMtbWFuYWdlbWVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImlybVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0uc2VjdXJlLWNvbnRhaW5lclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmljY3Byb2ZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpY2NcIixcImljbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pZWVlLjE5MDVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlnbG9hZGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWdsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltYWdlbWV0ZXIuZm9sZGVyK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1hZ2VtZXRlci5pbWFnZSt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltbWVydmlzaW9uLWl2cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIml2cFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbW1lcnZpc2lvbi1pdnVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpdnVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmltc2NjdjFwMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmltc2NjdjFwMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmltc2NjdjFwM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmxpcy52Mi5yZXN1bHQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xjb25zdW1lcnByb2ZpbGUranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xwcm94eStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHByb3h5LmlkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sc2V0dGluZ3MranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xzZXR0aW5ncy5zaW1wbGUranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvcm1lZGNvbnRyb2wucm1zK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvcm1peC12aXNpb25hcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmluZm90ZWNoLnByb2plY3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmluZm90ZWNoLnByb2plY3QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlubm9wYXRoLndhbXAubm90aWZpY2F0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbnNvcnMuaWdtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWdtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmludGVyY29uLmZvcm1uZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4cHdcIixcInhweFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcmdlb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImkyZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcnRydXN0LmRpZ2lib3hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmludGVydHJ1c3Qubm5jcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW50dS5xYm9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJxYm9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW50dS5xZnhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJxZnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5jYXRhbG9naXRlbSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5jb25jZXB0aXRlbSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5rbm93bGVkZ2VpdGVtK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLm5ld3NpdGVtK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLm5ld3NtZXNzYWdlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLnBhY2thZ2VpdGVtK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLnBsYW5uaW5naXRlbSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXB1bnBsdWdnZWQucmNwcm9maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmNwcm9maWxlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlyZXBvc2l0b3J5LnBhY2thZ2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpcnBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXMteHByXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHByXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlzYWMuZmNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmNzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlzbzExNzgzLTEwK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuamFtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiamFtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LWRpcmVjdG9yeS1zZXJ2aWNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1qcG5zdG9yZS13YWtldXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXBheW1lbnQtd2FrZXVwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1yZWdpc3RyYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXJlZ2lzdHJhdGlvbi13YWtldXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXNldHN0b3JlLXdha2V1cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtdmVyaWZpY2F0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC12ZXJpZmljYXRpb24td2FrZXVwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qY3AuamF2YW1lLm1pZGxldC1ybXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJybXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuamlzcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImppc3BcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuam9vc3Quam9kYS1hcmNoaXZlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiam9kYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qc2suaXNkbi1uZ25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmthaG9vdHpcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrdHpcIixcImt0clwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2FyYm9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia2FyYm9uXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rY2hhcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjaHJ0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rZm9ybXVsYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImtmb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2l2aW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmbHdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtvbnRvdXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrb25cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtwcmVzZW50ZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrcHJcIixcImtwdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua3NwcmVhZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImtzcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua3dvcmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrd2RcIixcImt3dFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5rZW5hbWVhYXBwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHRrZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5raWRzcGlyYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJraWFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2luYXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrbmVcIixcImtucFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5rb2FuXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2twXCIsXCJza2RcIixcInNrdFwiLFwic2ttXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtvZGFrLWRlc2NyaXB0b3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzc2VcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubGFzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sYXMubGFzK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubGFzLmxhcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImxhc3htbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sYXN6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxlYXAranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5saWJlcnR5LXJlcXVlc3QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxsYW1hZ3JhcGhpY3MubGlmZS1iYWxhbmNlLmRlc2t0b3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsYmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubGxhbWFncmFwaGljcy5saWZlLWJhbGFuY2UuZXhjaGFuZ2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsYmVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubG9naXBpcGUuY2lyY3VpdCt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxvb21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLTEtMi0zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiMTIzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLWFwcHJvYWNoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXByXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLWZyZWVsYW5jZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInByZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1ub3Rlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5zZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1vcmdhbml6ZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvcmdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtc2NyZWVuY2FtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2NtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLXdvcmRwcm9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsd3BcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWFjcG9ydHMucG9ydHBrZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBvcnRwa2dcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWFwYm94LXZlY3Rvci10aWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXZ0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0uYWN0aW9udG9rZW4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0uY29uZnRva2VuK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLmxpY2Vuc2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0ubWRjZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWFzb24ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tYXhhci5hcmNoaXZlLjN0eit6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1heG1pbmQubWF4bWluZC1kYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWNkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWNkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1lZGNhbGNkYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWMxXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1lZGlhc3RhdGlvbi5jZGtleVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNka2V5XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1lcmlkaWFuLXNsaW5nc2hvdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWZlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm13ZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tZm1wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWZtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pY3JvK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9ncmFmeC5mbG9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmbG9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9ncmFmeC5pZ3hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpZ3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9zb2Z0LnBvcnRhYmxlLWV4ZWN1dGFibGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pY3Jvc29mdC53aW5kb3dzLnRodW1ibmFpbC1jYWNoZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWllbGUranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5taWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtaWZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWluaXNvZnQtaHAzMDAwLXNhdmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pdHN1YmlzaGkubWlzdHktZ3VhcmQudHJ1c3R3ZWJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5kYWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkYWZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLmRpc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRpc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMubWJrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWJrXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5tcXlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcXlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1zbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1zbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMucGxjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGxjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy50eGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0eGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW9waHVuLmFwcGxpY2F0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXBuXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vcGh1bi5jZXJ0aWZpY2F0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5hZHNpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUuZmlzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUuZ290YXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5rbXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS50dGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS53ZW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmlwcm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vemlsbGEueHVsK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHVsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLTNtZmRvY3VtZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1hcnRnYWxyeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNpbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1hc2ZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLWNhYi1jb21wcmVzc2VkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2FiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLWNvbG9yLmljY3Byb2ZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bHNcIixcInhsbVwiLFwieGxhXCIsXCJ4bGNcIixcInhsdFwiLFwieGx3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhsYW1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQuYmluYXJ5Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhsc2JcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGxzbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50ZW1wbGF0ZS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bHRtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVvdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1odG1saGVscFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNobVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1pbXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpbXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtbHJtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibHJtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5hY3RpdmV4K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2V0aGVtZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRobXhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtb3BlbnR5cGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vdXRsb29rXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXNnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXBhY2thZ2Uub2JmdXNjYXRlZC1vcGVudHlwZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wa2kuc2VjY2F0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjYXRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGtpLnN0bFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3RsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXBsYXlyZWFkeS5pbml0aWF0b3IreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcHRcIixcInBwc1wiLFwicG90XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuYWRkaW4ubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHBhbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnByZXNlbnRhdGlvbi5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcHRtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuc2xpZGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2xkbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlc2hvdy5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcHNtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQudGVtcGxhdGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicG90bVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcmludGRldmljZWNhcGFiaWxpdGllcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJpbnRpbmcucHJpbnR0aWNrZXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJpbnRzY2hlbWF0aWNrZXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXByb2plY3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcHBcIixcIm1wdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy10bmVmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLmRldmljZXBhaXJpbmdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3MubndwcmludGluZy5vb2JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3MucHJpbnRlcnBhaXJpbmdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3Mud3NkLm9vYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubGljLWNobGctcmVxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5saWMtcmVzcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubWV0ZXItY2hsZy1yZXFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLm1ldGVyLXJlc3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmQuZG9jdW1lbnQubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZG9jbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRvdG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtd29ya3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3cHNcIixcIndrc1wiLFwid2NtXCIsXCJ3ZGJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtd3BsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid3BsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXhwc2RvY3VtZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHBzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zYS1kaXNrLWltYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tc2VxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXNlcVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tc2lnblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXVsdGlhZC5jcmVhdG9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tdWx0aWFkLmNyZWF0b3IuY2lmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tdXNpYy1uaWZmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tdXNpY2lhblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm11c1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tdXZlZS5zdHlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1zdHlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXluZmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0YWdsZXRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmFjYW1hci55YnJpZCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5jZC5jb250cm9sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uY2QucmVmZXJlbmNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uZWFyc3QuaW52K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmVidW1pbmQubGluZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmVydmFuYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmV0ZnB4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uZXVyb2xhbmd1YWdlLm5sdVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5sdVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uaW1uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uaW50ZW5kby5uaXRyby5yb21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5pbnRlbmRvLnNuZXMucm9tXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uaXRmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibnRmXCIsXCJuaXRmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5vYmxlbmV0LWRpcmVjdG9yeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5uZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC1zZWFsZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJubnNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtd2ViXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibm53XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmNhdGFsb2dzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5jb25tbCt3YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuY29ubWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmlwdHYuY29uZmlnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5pc2RzLXJhZGlvLXByZXNldHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmxhbmRtYXJrK3dieG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5sYW5kbWFyayt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubGFuZG1hcmtjb2xsZWN0aW9uK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2UuYWMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2UuZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5nZGF0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5zeW1iaWFuLmluc3RhbGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJuLWdhZ2VcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubmNkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5wY2Qrd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnBjZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucmFkaW8tcHJlc2V0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnBzdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5yYWRpby1wcmVzZXRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnBzc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5lZG1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlZG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm92YWRpZ20uZWR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZWR4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmV4dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV4dFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuY29udGVudC1zaGFyZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLmZpbGUtdHJhbnNmZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5vZ3dfcmVtb3RlLWFjY2Vzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLnNpcC10YV9yZW1vdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5zaXAtdGFfdGNwX3N0cmVhbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmNoYXJ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2RjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5jaGFydC10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm90Y1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZGF0YWJhc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZGJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmZvcm11bGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmZvcm11bGEtdGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZGZ0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5ncmFwaGljc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9kZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZ3JhcGhpY3MtdGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvdGdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmltYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2RpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5pbWFnZS10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm90aVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2RwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5wcmVzZW50YXRpb24tdGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvdHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2RzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldC10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm90c1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9kdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC1tYXN0ZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtdGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvdHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtd2ViXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3RoXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9iblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2NmK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9jaS5pbWFnZS5tYW5pZmVzdC52MStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9mdG4ubDEwbitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuY29udGVudGFjY2Vzc2Rvd25sb2FkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNvbnRlbnRhY2Nlc3NzdHJlYW1pbmcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuY3NwZy1oZXhiaW5hcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuZGFlLnN2Zyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5kYWUueGh0bWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9pcGYubWlwcHZjb250cm9sbWVzc2FnZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5wYWUuZ2VtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnNwZGlzY292ZXJ5K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnNwZGxpc3QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9pcGYudWVwcm9maWxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnVzZXJwcm9maWxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbHBjLXN1Z2FyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieG9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLXNjd3MtY29uZmlnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEtc2N3cy1odHRwLXJlcXVlc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS1zY3dzLWh0dHAtcmVzcG9uc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5hc3NvY2lhdGVkLXByb2NlZHVyZS1wYXJhbWV0ZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5kcm0tdHJpZ2dlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LmltZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0Lmx0a21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5ub3RpZmljYXRpb24reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5wcm92aXNpb25pbmd0cmlnZ2VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2dib290XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2dkZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNnZHVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zaW1wbGUtc3ltYm9sLWNvbnRhaW5lclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNtYXJ0Y2FyZC10cmlnZ2VyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc3Byb3YreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zdGttXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLWFkZHJlc3MtYm9vayt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1mZWF0dXJlLWhhbmRsZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItcGNjK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLXN1YnMtaW52aXRlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLXVzZXItcHJlZnMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kY2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kY2RjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZGQyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGQyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kcm0ucmlzZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmdyb3VwLXVzYWdlLWxpc3QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5sd20ybStjYm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEubHdtMm0ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEubHdtMm0rdGx2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucGFsK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLmRldGFpbGVkLXByb2dyZXNzLXJlcG9ydCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5maW5hbC1yZXBvcnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuZ3JvdXBzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLmludm9jYXRpb24tZGVzY3JpcHRvcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5vcHRpbWl6ZWQtcHJvZ3Jlc3MtcmVwb3J0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucHVzaFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLnNjaWRtLm1lc3NhZ2VzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEueGNhcC1kaXJlY3RvcnkreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYWRzLWVtYWlsK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYWRzLWZpbGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hZHMtZm9sZGVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYWxvYy1zdXBsLWluaXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhbXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGFteFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGF0cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YXR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuYmxveC5nYW1lK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2JneFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuYmxveC5nYW1lLWJpbmFyeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmV5ZS5vZWJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW5vZmZpY2VvcmcuZXh0ZW5zaW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJveHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnN0cmVldG1hcC5kYXRhK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3NtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW50aW1lc3RhbXBzLm90c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuY3VzdG9tLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmN1c3RvbXhtbHByb3BlcnRpZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5jaGFydCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0c2hhcGVzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbWNvbG9ycyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1kYXRhK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbWxheW91dCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1zdHlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZXh0ZW5kZWQtcHJvcGVydGllcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuY29tbWVudGF1dGhvcnMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLmNvbW1lbnRzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5oYW5kb3V0bWFzdGVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5ub3Rlc21hc3Rlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwubm90ZXNzbGlkZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHB0eFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24ubWFpbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc3Byb3BzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNsZHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlbGF5b3V0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZW1hc3Rlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHBzeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3cubWFpbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGV1cGRhdGVpbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50YWJsZXN0eWxlcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGFncyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwb3R4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlLm1haW4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnZpZXdwcm9wcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jYWxjY2hhaW4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY2hhcnRzaGVldCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb21tZW50cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb25uZWN0aW9ucyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5kaWFsb2dzaGVldCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbGxpbmsreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RjYWNoZWRlZmluaXRpb24reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RjYWNoZXJlY29yZHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3R0YWJsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5xdWVyeXRhYmxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9uaGVhZGVycyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbmxvZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGFyZWRzdHJpbmdzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGxzeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Lm1haW4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXRtZXRhZGF0YSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGVzaW5nbGVjZWxscyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhsdHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50ZW1wbGF0ZS5tYWluK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnVzZXJuYW1lcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC52b2xhdGlsZWRlcGVuZGVuY2llcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZW92ZXJyaWRlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC52bWxkcmF3aW5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmNvbW1lbnRzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZG9jeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50Lmdsb3NzYXJ5K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50Lm1haW4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZW5kbm90ZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZm9udHRhYmxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmZvb3Rlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5mb290bm90ZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwubnVtYmVyaW5nK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnNldHRpbmdzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnN0eWxlcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRvdHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZS5tYWluK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLndlYnNldHRpbmdzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmNvcmUtcHJvcGVydGllcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5kaWdpdGFsLXNpZ25hdHVyZS14bWxzaWduYXR1cmUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UucmVsYXRpb25zaGlwcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3JhY2xlLnJlc291cmNlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3JhbmdlLmluZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3NhLm5ldGRlcGxveVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3NnZW8ubWFwZ3VpZGUucGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1ncFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dpLmJ1bmRsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3NnaS5kcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9zZ2kuc3Vic3lzdGVtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXNhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm90cHMuY3Qta2lwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5veGxpLmNvdW50Z3JhcGhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBhZ2VyZHV0eStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBhbG1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwZGJcIixcInBxYVwiLFwib3ByY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wYW5vcGx5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wYW9zLnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGF0ZW50ZGl2ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGF0aWVudGVjb21tc2RvY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGF3YWFmaWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGF3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBjb3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBnLmZvcm1hdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN0clwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wZy5vc2FzbGlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlaTZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGlhY2Nlc3MuYXBwbGljYXRpb24tbGljZW5jZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGljc2VsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZWZpZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wbWkud2lkZ2V0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2dcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucG9jLmdyb3VwLWFkdmVydGlzZW1lbnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBvY2tldGxlYXJuXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGxmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwYmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNi1zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3LXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjc1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3NS1zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wcmVtaW5ldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucHJldmlld3N5c3RlbXMuYm94XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYm94XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnByb3RldXMubWFnYXppbmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtZ3pcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucHNmc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucHVibGlzaGFyZS1kZWx0YS10cmVlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicXBzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnB2aS5wdGlkMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInB0aWRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucHdnLW11bHRpcGxleGVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wd2cteGh0bWwtcHJpbnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnF1YWxjb21tLmJyZXctYXBwLXJlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucXVhcmFudGFpbmVuZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnF1YXJrLnF1YXJreHByZXNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicXhkXCIsXCJxeHRcIixcInF3ZFwiLFwicXd0XCIsXCJxeGxcIixcInF4YlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5xdW9iamVjdC1xdW94ZG9jdW1lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubW9tbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1jb25mK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQtY29ubit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LWRpYWxvZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LXN0cmVhbSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWNvbmYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2creG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctYmFzZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1mYXgtZGV0ZWN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWZheC1zZW5kcmVjdit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1ncm91cCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1zcGVlY2greG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctdHJhbnNmb3JtK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWluc3Rvci5kYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYXBpZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmFyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJlYWx2bmMuYmVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYmVkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJlY29yZGFyZS5tdXNpY3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm14bFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yZWNvcmRhcmUubXVzaWN4bWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtdXNpY3htbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yZW5sZWFybi5ybHByaW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yZXNpbGllbnQubG9naWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJlc3RmdWwranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yaWcuY3J5cHRvbm90ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNyeXB0b25vdGVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmltLmNvZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY29kXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJuLXJlYWxtZWRpYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicm1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucm4tcmVhbG1lZGlhLXZiclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicm12YlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yb3V0ZTY2Lmxpbms2Nit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImxpbms2NlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ycy0yNzR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ydWNrdXMuZG93bmxvYWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnMzc21zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zYWlsaW5ndHJhY2tlci50cmFja1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2JtLmNpZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2JtLm1pZDJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNjcmlidXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC4zZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5jc2ZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5kb2NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5lbWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5taHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5uZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5wcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC50aWZmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQueGxzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5odG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5wZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlZW1haWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZWVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2Vpcytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlbWFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZW1hXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlbWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZW1kXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlbWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZW1mXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNoYWRlLXNhdmUtZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuZm9ybWRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpZm1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuZm9ybXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaXRwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmludGVyY2hhbmdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWlmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLnBhY2thZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpcGtcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2hvb3Rwcm9vZitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNob3BraWNrK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2hwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zaHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNpZ3Jvay5zZXNzaW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zaW10ZWNoLW1pbmRtYXBwZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0d2RcIixcInR3ZHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2lyZW4ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibW1mXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNtYXJ0Lm5vdGVib29rXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFydC50ZWFjaGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGVhY2hlclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zbmVzZGV2LXBhZ2UtdGFibGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNvZnR3YXJlNjAyLmZpbGxlci5mb3JtK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZm9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc29mdHdhcmU2MDIuZmlsbGVyLmZvcm0teG1sLXppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc29sZW50LnNka20reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZGttXCIsXCJzZGtkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNwb3RmaXJlLmR4cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR4cFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zcG90ZmlyZS5zZnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZnNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3FsaXRlM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3NzLWNvZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3NzLWR0ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3NzLW50ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmNhbGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNkY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uZHJhd1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2RhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5pbXByZXNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLm1hdGhcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNtZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ud3JpdGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZHdcIixcInZvclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ud3JpdGVyLWdsb2JhbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2dsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN0ZXBtYW5pYS5wYWNrYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic216aXBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3RlcG1hbmlhLnN0ZXBjaGFydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN0cmVldC1zdHJlYW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN1bi53YWRsK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2FkbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmNhbGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN4Y1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmNhbGMudGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN0Y1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmRyYXdcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN4ZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmRyYXcudGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN0ZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmltcHJlc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN4aVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmltcHJlc3MudGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN0aVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLm1hdGhcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN4bVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3h3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwud3JpdGVyLmdsb2JhbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3hnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwud3JpdGVyLnRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdHdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VzLWNhbGVuZGFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3VzXCIsXCJzdXNwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN2ZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN2ZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zd2lmdHZpZXctaWNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeWNsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3lmdCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5bWJpYW4uaW5zdGFsbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2lzXCIsXCJzaXN4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHNtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbSt3YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYmRtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGRtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbS5ub3RpZmljYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbWRkZit3YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtZGRmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkZGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtdG5kcyt3YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtdG5kcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZHMubm90aWZpY2F0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50YWJsZXNjaGVtYStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnRhby5pbnRlbnQtbW9kdWxlLWFyY2hpdmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0YW9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudGNwZHVtcC5wY2FwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGNhcFwiLFwiY2FwXCIsXCJkbXBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudGhpbmstY2VsbC5wcHR0Yytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnRtZC5tZWRpYWZsZXguYXBpK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnRtb2JpbGUtbGl2ZXR2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widG1vXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnRyaS5vbmVzb3VyY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnRyaWQudHB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHB0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnRyaXNjYXBlLm14c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm14c1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50cnVlYXBwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHJhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnRydWVkb2NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnViaXNvZnQud2VicGxheWVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51ZmRsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widWZkXCIsXCJ1ZmRsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVpcS50aGVtZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV0elwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51bWFqaW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1bWpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudW5pdHlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1bml0eXdlYlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51b21sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widW9tbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmFsZXJ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmFsZXJ0LXdieG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmJlYXJlci1jaG9pY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuYmVhcmVyLWNob2ljZS13YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jYWNoZW9wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNhY2hlb3Atd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2hhbm5lbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jaGFubmVsLXdieG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdC13YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0Y21kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3RjbWQtd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuc2lnbmFsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cmktbWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52YWx2ZS5zb3VyY2UubWF0ZXJpYWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZjeFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZjeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52ZC1zdHVkeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudmVjdG9yd29ya3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZlbCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZlcmltYXRyaXgudmNhc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudmVyaXRvbmUuYWlvbitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZlcnlhbnQudGhpblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudmVzLmVuY3J5cHRlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudmlkc29mdC52aWRjb25mZXJlbmNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52aXNpb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZzZFwiLFwidnN0XCIsXCJ2c3NcIixcInZzd1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52aXNpb25hcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2aXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudml2aWRlbmNlLnNjcmlwdGZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZzZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZzZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53YXAuc2ljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53YXAuc2xjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndieG1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndhcC53bWxjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid21sY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud21sc2NyaXB0Y1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndtbHNjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndlYnR1cmJvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid3RiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndmYS5kcHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndmYS5wMnBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndmYS53c2NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndpbmRvd3MuZGV2aWNlcGFpcmluZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud21jXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53bWYuYm9vdHN0cmFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLm1hdGhlbWF0aWNhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLm1hdGhlbWF0aWNhLnBhY2thZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndvbGZyYW0ucGxheWVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibmJwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndvcmRwZXJmZWN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid3BkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndxZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndxZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53cnEtaHAzMDAwLWxhYmVsbGVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53dC5zdGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud3YuY3NwK3dieG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53di5jc3AreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnd2LnNzcCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueGFjbWwranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC54YXJhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGFyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnhmZGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4ZmRsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnhmZGwud2ViZm9ybVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueG1pK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5jcGtnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5kcGtnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5wbGFuXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5wcGtnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS54bGltXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtZGljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHZkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5odi1zY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJodnNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LXZvaWNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHZwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5vcGVuc2NvcmVmb3JtYXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvc2ZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLm9wZW5zY29yZWZvcm1hdC5vc2ZwdmcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvc2ZwdmdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnJlbW90ZS1zZXR1cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnNtYWYtYXVkaW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzYWZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnNtYWYtcGhyYXNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3BmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS50aHJvdWdoLW5nblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnR1bm5lbC11ZHBlbmNhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueWFvd2VtZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueWVsbG93cml2ZXItY3VzdG9tLW1lbnVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjbXBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueW91dHViZS55dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuenVsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiemlyXCIsXCJ6aXJ6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnp6YXp6LmRlY2sreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ6YXpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92b2ljZXhtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZ4bWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92b3VjaGVyLWNtcytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdnEtcnRjcHhyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3dhc21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndhc21cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi93YXRjaGVyaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndpZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3dlYnB1c2gtb3B0aW9ucytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vd2hvaXNwcC1xdWVyeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi93aG9pc3BwLXJlc3BvbnNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3dpZGdldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndndFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3dpbmhscFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGxwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vd2l0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi93b3JkcGVyZmVjdDUuMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi93c2RsK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid3NkbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3dzcG9saWN5K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid3Nwb2xpY3lcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LTd6LWNvbXByZXNzZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIjd6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1hYml3b3JkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhYndcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWFjZS1jb21wcmVzc2VkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhY2VcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWFtZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYXBwbGUtZGlza2ltYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkbWdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWFyalwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFyalwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1iaW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFhYlwiLFwieDMyXCIsXCJ1MzJcIixcInZveFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1tYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFhbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1zZWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFhc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYmNwaW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJjcGlvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1iZG9jXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYmRvY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYml0dG9ycmVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widG9ycmVudFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYmxvcmJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJsYlwiLFwiYmxvcmJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWJ6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJ6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1iemlwMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYnoyXCIsXCJib3pcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWNiclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2JyXCIsXCJjYmFcIixcImNidFwiLFwiY2J6XCIsXCJjYjdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWNkbGlua1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmNkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1jZnMtY29tcHJlc3NlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2ZzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1jaGF0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjaGF0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1jaGVzcy1wZ25cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBnblwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY2hyb21lLWV4dGVuc2lvblwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNyeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY29jb2FcIjoge1xuICAgIFwic291cmNlXCI6IFwibmdpbnhcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2NvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1jb21wcmVzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY29uZmVyZW5jZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibnNjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1jcGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjcGlvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1jc2hcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNzaFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZGViXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZGViaWFuLXBhY2thZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRlYlwiLFwidWRlYlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZGdjLWNvbXByZXNzZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRnY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZGlyZWN0b3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRpclwiLFwiZGNyXCIsXCJkeHJcIixcImNzdFwiLFwiY2N0XCIsXCJjeHRcIixcInczZFwiLFwiZmdkXCIsXCJzd2FcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWRvb21cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndhZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZHRibmN4K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJuY3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWR0Ym9vayt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHRiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1kdGJyZXNvdXJjZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmVzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1kdmlcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR2aVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZW52b3lcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV2eVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZXZhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJldmFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZvbnQtYmRmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJiZGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZvbnQtZG9zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LWZyYW1lbWFrZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZvbnQtZ2hvc3RzY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdzZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZm9udC1saWJncnhcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZvbnQtbGludXgtcHNmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwc2ZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZvbnQtcGNmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwY2ZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZvbnQtc25mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbmZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZvbnQtc3BlZWRvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LXN1bm9zLW5ld3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZvbnQtdHlwZTFcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBmYVwiLFwicGZiXCIsXCJwZm1cIixcImFmbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZm9udC12Zm9udFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZnJlZWFyY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXJjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mdXR1cmVzcGxhc2hcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNwbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZ2NhLWNvbXByZXNzZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdjYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZ2x1bHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInVseFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZ251bWVyaWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdudW1lcmljXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1ncmFtcHMteG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJncmFtcHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWd0YXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImd0YXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWd6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWhkZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGRmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1odHRwZC1waHBcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBocFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtaW5zdGFsbC1pbnN0cnVjdGlvbnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImluc3RhbGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWlzbzk2NjAtaW1hZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImlzb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtaXdvcmsta2V5bm90ZS1zZmZrZXlcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrZXlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWl3b3JrLW51bWJlcnMtc2ZmbnVtYmVyc1wiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm51bWJlcnNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWl3b3JrLXBhZ2VzLXNmZnBhZ2VzXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGFnZXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWphdmEtYXJjaGl2ZS1kaWZmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImphcmRpZmZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWphdmEtam5scC1maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqbmxwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1qYXZhc2NyaXB0XCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1rZWVwYXNzMlwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImtkYnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWxhdGV4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsYXRleFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbHVhLWJ5dGVjb2RlXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibHVhY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbHpoLWNvbXByZXNzZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImx6aFwiLFwibGhhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tYWtlc2VsZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJydW5cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1pZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWllXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tb2JpcG9ja2V0LWVib29rXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcmNcIixcIm1vYmlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1wZWd1cmxcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tcy1hcHBsaWNhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXBwbGljYXRpb25cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zLXNob3J0Y3V0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsbmtcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zLXdtZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid21kXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tcy13bXpcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndtelwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXMteGJhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGJhcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXNhY2Nlc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1kYlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXNiaW5kZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9iZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXNjYXJkZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3JkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc2NsaXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNscFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXNkb3MtcHJvZ3JhbVwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV4ZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXNkb3dubG9hZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXhlXCIsXCJkbGxcIixcImNvbVwiLFwiYmF0XCIsXCJtc2lcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zbWVkaWF2aWV3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtdmJcIixcIm0xM1wiLFwibTE0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc21ldGFmaWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3bWZcIixcIndtelwiLFwiZW1mXCIsXCJlbXpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zbW9uZXlcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1ueVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXNwdWJsaXNoZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInB1YlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXNzY2hlZHVsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2NkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc3Rlcm1pbmFsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0cm1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zd3JpdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndyaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbmV0Y2RmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJuY1wiLFwiY2RmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1ucy1wcm94eS1hdXRvY29uZmlnXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwYWNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW56YlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibnpiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1wZXJsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBsXCIsXCJwbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtcGlsb3RcIjoge1xuICAgIFwic291cmNlXCI6IFwibmdpbnhcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHJjXCIsXCJwZGJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXBrY3MxMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicDEyXCIsXCJwZnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXBrY3M3LWNlcnRpZmljYXRlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicDdiXCIsXCJzcGNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXBrY3M3LWNlcnRyZXFyZXNwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwN3JcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXBraS1tZXNzYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtcmFyLWNvbXByZXNzZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJhclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtcmVkaGF0LXBhY2thZ2UtbWFuYWdlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJycG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXJlc2VhcmNoLWluZm8tc3lzdGVtc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmlzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1zZWFcIjoge1xuICAgIFwic291cmNlXCI6IFwibmdpbnhcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1zaFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzaFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtc2hhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2hhclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzd2ZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXNpbHZlcmxpZ2h0LWFwcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGFwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1zcWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNxbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtc3R1ZmZpdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2l0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1zdHVmZml0eFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2l0eFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtc3VicmlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzcnRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXN2NGNwaW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN2NGNwaW9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXN2NGNyY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3Y0Y3JjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC10M3ZtLWltYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0M1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdGFkc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2FtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC10YXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGFyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC10Y2xcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRjbFwiLFwidGtcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXRleFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGV4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC10ZXgtdGZtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0Zm1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXRleGluZm9cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRleGluZm9cIixcInRleGlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXRnaWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9ialwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdXN0YXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInVzdGFyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LWhkZFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGRkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LW92YVwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3ZhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LW92ZlwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3ZmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZib3hcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZib3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmJveC1leHRwYWNrXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmJveC1leHRwYWNrXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZkaVwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmRpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZoZFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmhkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZtZGtcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZtZGtcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXdhaXMtc291cmNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzcmNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXdlYi1hcHAtbWFuaWZlc3QranNvblwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2ViYXBwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC14NTA5LWNhLWNlcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkZXJcIixcImNydFwiLFwicGVtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC14NTA5LWNhLXJhLWNlcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC14NTA5LW5leHQtY2EtY2VydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXhmaWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZpZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gteGxpZmYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhsZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gteHBpbnN0YWxsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4cGlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXh6XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4elwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtem1hY2hpbmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInoxXCIsXCJ6MlwiLFwiejNcIixcIno0XCIsXCJ6NVwiLFwiejZcIixcIno3XCIsXCJ6OFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3g0MDAtYnBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGFjbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGFtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGFtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hjYXAtYXR0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGF2XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGNhcC1jYXBzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGNhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGNhcC1kaWZmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGRmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGNhcC1lbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhlbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hjYXAtZXJyb3IreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGNhcC1ucyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhuc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hjb24tY29uZmVyZW5jZS1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hjb24tY29uZmVyZW5jZS1pbmZvLWRpZmYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGVuYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhlbmNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94aHRtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhodG1sXCIsXCJ4aHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94aHRtbC12b2ljZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hsaWZmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGxmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bWxcIixcInhzbFwiLFwieHNkXCIsXCJybmdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94bWwtZHRkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkdGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94bWwtZXh0ZXJuYWwtcGFyc2VkLWVudGl0eVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94bWwtcGF0Y2greG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veG1wcCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94b3AreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4b3BcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94cHJvYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHBsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veHNsdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhzbFwiLFwieHNsdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hzcGYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhzcGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94dit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm14bWxcIixcInhodm1sXCIsXCJ4dm1sXCIsXCJ4dm1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi95YW5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieWFuZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3lhbmctZGF0YStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veWFuZy1kYXRhK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3lhbmctcGF0Y2granNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3lhbmctcGF0Y2greG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veWluK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieWluXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vemlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiemlwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vemxpYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi96c3RkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvLzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby8zMmthZHBjbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby8zZ3BwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiM2dwcFwiXVxuICB9LFxuICBcImF1ZGlvLzNncHAyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2FhY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9hYzNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vYWRwY21cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFkcFwiXVxuICB9LFxuICBcImF1ZGlvL2FtclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFtclwiXVxuICB9LFxuICBcImF1ZGlvL2Ftci13YlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9hbXItd2IrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2FwdHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vYXNjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2F0cmFjLWFkdmFuY2VkLWxvc3NsZXNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2F0cmFjLXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vYXRyYWMzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2Jhc2ljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXVcIixcInNuZFwiXVxuICB9LFxuICBcImF1ZGlvL2J2MTZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vYnYzMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9jbGVhcm1vZGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vY25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZGF0MTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZGxzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2Rzci1lczIwMTEwOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9kc3ItZXMyMDIwNTBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZHNyLWVzMjAyMjExXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2Rzci1lczIwMjIxMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9kdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9kdmk0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2VhYzNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZW5jYXBydHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjLXFjcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjYjBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyY2IxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmNud1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjbncwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmNudzFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyY3diXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmN3YjBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyY3diMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZmxleGZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9md2RyZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZzcxMS0wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MTlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZzcyMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzIyMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzIzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MjYtMTZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZzcyNi0yNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzI2LTMyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MjYtNDBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZzcyOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzI5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MjkxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MjlkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MjllXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2dzbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nc20tZWZyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2dzbS1oci0wOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9pbGJjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2lwLW1yX3YyLjVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vaXNhY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImF1ZGlvL2wxNlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9sMjBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vbDI0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImF1ZGlvL2w4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2xwY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9tZWxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL21lbHAxMjAwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL21lbHAyNDAwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL21lbHA2MDBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vbWhhc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9taWRpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtaWRcIixcIm1pZGlcIixcImthclwiLFwicm1pXCJdXG4gIH0sXG4gIFwiYXVkaW8vbW9iaWxlLXhtZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm14bWZcIl1cbiAgfSxcbiAgXCJhdWRpby9tcDNcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcDNcIl1cbiAgfSxcbiAgXCJhdWRpby9tcDRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtNGFcIixcIm1wNGFcIl1cbiAgfSxcbiAgXCJhdWRpby9tcDRhLWxhdG1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vbXBhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL21wYS1yb2J1c3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vbXBlZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wZ2FcIixcIm1wMlwiLFwibXAyYVwiLFwibXAzXCIsXCJtMmFcIixcIm0zYVwiXVxuICB9LFxuICBcImF1ZGlvL21wZWc0LWdlbmVyaWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vbXVzZXBhY2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhdWRpby9vZ2dcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZ2FcIixcIm9nZ1wiLFwic3B4XCIsXCJvcHVzXCJdXG4gIH0sXG4gIFwiYXVkaW8vb3B1c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9wYXJpdHlmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcGNtYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9wY21hLXdiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3BjbXVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcGNtdS13YlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9wcnMuc2lkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3FjZWxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3JhcHRvcmZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9yZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcnRwLWVuYy1hZXNjbTEyOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ydHAtbWlkaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ydHBsb29wYmFja1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ydHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vczNtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzM21cIl1cbiAgfSxcbiAgXCJhdWRpby9zY2lwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3NpbGtcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNpbFwiXVxuICB9LFxuICBcImF1ZGlvL3NtdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9zbXYtcWNwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3NtdjBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vc29mYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9zcC1taWRpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3NwZWV4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3QxNDBjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3QzOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby90ZWxlcGhvbmUtZXZlbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdGV0cmFfYWNlbHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdGV0cmFfYWNlbHBfYmJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdG9uZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby90c3ZjaXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdWVtY2xpcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby91bHBmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdXNhY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92ZHZpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3Ztci13YlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuM2dwcC5pdWZwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC40c2JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmF1ZGlva296XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5jZWxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5jaXNjby5uc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmNtbGVzLnJhZGlvLWV2ZW50c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuY25zLmFucDFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmNucy5pbmYxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5kZWNlLmF1ZGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXZhXCIsXCJ1dnZhXCJdXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmRpZ2l0YWwtd2luZHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlb2xcIl1cbiAgfSxcbiAgXCJhdWRpby92bmQuZGxuYS5hZHRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5kb2xieS5oZWFhYy4xXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5kb2xieS5oZWFhYy4yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5kb2xieS5tbHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmRvbGJ5Lm1wc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkucGwyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5kb2xieS5wbDJ4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5kb2xieS5wbDJ6XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5kb2xieS5wdWxzZS4xXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5kcmFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkcmFcIl1cbiAgfSxcbiAgXCJhdWRpby92bmQuZHRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHRzXCJdXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmR0cy5oZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR0c2hkXCJdXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmR0cy51aGRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmR2Yi5maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5ldmVyYWQucGxqXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5obnMuYXVkaW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmx1Y2VudC52b2ljZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImx2cFwiXVxuICB9LFxuICBcImF1ZGlvL3ZuZC5tcy1wbGF5cmVhZHkubWVkaWEucHlhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHlhXCJdXG4gIH0sXG4gIFwiYXVkaW8vdm5kLm5va2lhLm1vYmlsZS14bWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLm5vcnRlbC52YmtcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLm51ZXJhLmVjZWxwNDgwMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVjZWxwNDgwMFwiXVxuICB9LFxuICBcImF1ZGlvL3ZuZC5udWVyYS5lY2VscDc0NzBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlY2VscDc0NzBcIl1cbiAgfSxcbiAgXCJhdWRpby92bmQubnVlcmEuZWNlbHA5NjAwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZWNlbHA5NjAwXCJdXG4gIH0sXG4gIFwiYXVkaW8vdm5kLm9jdGVsLnNiY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQucHJlc29udXMubXVsdGl0cmFja1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQucWNlbHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLnJoZXRvcmV4LjMya2FkcGNtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5yaXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyaXBcIl1cbiAgfSxcbiAgXCJhdWRpby92bmQucm4tcmVhbGF1ZGlvXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImF1ZGlvL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5tcGVnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC52bXguY3ZzZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQud2F2ZVwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhdWRpby92b3JiaXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXVkaW8vdm9yYmlzLWNvbmZpZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby93YXZcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3YXZcIl1cbiAgfSxcbiAgXCJhdWRpby93YXZlXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2F2XCJdXG4gIH0sXG4gIFwiYXVkaW8vd2VibVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2ViYVwiXVxuICB9LFxuICBcImF1ZGlvL3gtYWFjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhYWNcIl1cbiAgfSxcbiAgXCJhdWRpby94LWFpZmZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFpZlwiLFwiYWlmZlwiLFwiYWlmY1wiXVxuICB9LFxuICBcImF1ZGlvL3gtY2FmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjYWZcIl1cbiAgfSxcbiAgXCJhdWRpby94LWZsYWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZsYWNcIl1cbiAgfSxcbiAgXCJhdWRpby94LW00YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtNGFcIl1cbiAgfSxcbiAgXCJhdWRpby94LW1hdHJvc2thXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJta2FcIl1cbiAgfSxcbiAgXCJhdWRpby94LW1wZWd1cmxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm0zdVwiXVxuICB9LFxuICBcImF1ZGlvL3gtbXMtd2F4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3YXhcIl1cbiAgfSxcbiAgXCJhdWRpby94LW1zLXdtYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid21hXCJdXG4gIH0sXG4gIFwiYXVkaW8veC1wbi1yZWFsYXVkaW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJhbVwiLFwicmFcIl1cbiAgfSxcbiAgXCJhdWRpby94LXBuLXJlYWxhdWRpby1wbHVnaW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJtcFwiXVxuICB9LFxuICBcImF1ZGlvL3gtcmVhbGF1ZGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJhXCJdXG4gIH0sXG4gIFwiYXVkaW8veC10dGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhdWRpby94LXdhdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2F2XCJdXG4gIH0sXG4gIFwiYXVkaW8veG1cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhtXCJdXG4gIH0sXG4gIFwiY2hlbWljYWwveC1jZHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNkeFwiXVxuICB9LFxuICBcImNoZW1pY2FsL3gtY2lmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjaWZcIl1cbiAgfSxcbiAgXCJjaGVtaWNhbC94LWNtZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNtZGZcIl1cbiAgfSxcbiAgXCJjaGVtaWNhbC94LWNtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY21sXCJdXG4gIH0sXG4gIFwiY2hlbWljYWwveC1jc21sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjc21sXCJdXG4gIH0sXG4gIFwiY2hlbWljYWwveC1wZGJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJjaGVtaWNhbC94LXh5elwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHl6XCJdXG4gIH0sXG4gIFwiZm9udC9jb2xsZWN0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHRjXCJdXG4gIH0sXG4gIFwiZm9udC9vdGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm90ZlwiXVxuICB9LFxuICBcImZvbnQvc2ZudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJmb250L3R0ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHRmXCJdXG4gIH0sXG4gIFwiZm9udC93b2ZmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid29mZlwiXVxuICB9LFxuICBcImZvbnQvd29mZjJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3b2ZmMlwiXVxuICB9LFxuICBcImltYWdlL2FjZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJleHJcIl1cbiAgfSxcbiAgXCJpbWFnZS9hcG5nXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXBuZ1wiXVxuICB9LFxuICBcImltYWdlL2F2Y2lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhdmNpXCJdXG4gIH0sXG4gIFwiaW1hZ2UvYXZjc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF2Y3NcIl1cbiAgfSxcbiAgXCJpbWFnZS9hdmlmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXZpZlwiXVxuICB9LFxuICBcImltYWdlL2JtcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYm1wXCJdXG4gIH0sXG4gIFwiaW1hZ2UvY2dtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2dtXCJdXG4gIH0sXG4gIFwiaW1hZ2UvZGljb20tcmxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHJsZVwiXVxuICB9LFxuICBcImltYWdlL2VtZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVtZlwiXVxuICB9LFxuICBcImltYWdlL2ZpdHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmaXRzXCJdXG4gIH0sXG4gIFwiaW1hZ2UvZzNmYXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnM1wiXVxuICB9LFxuICBcImltYWdlL2dpZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdpZlwiXVxuICB9LFxuICBcImltYWdlL2hlaWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoZWljXCJdXG4gIH0sXG4gIFwiaW1hZ2UvaGVpYy1zZXF1ZW5jZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhlaWNzXCJdXG4gIH0sXG4gIFwiaW1hZ2UvaGVpZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhlaWZcIl1cbiAgfSxcbiAgXCJpbWFnZS9oZWlmLXNlcXVlbmNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGVpZnNcIl1cbiAgfSxcbiAgXCJpbWFnZS9oZWoya1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhlajJcIl1cbiAgfSxcbiAgXCJpbWFnZS9oc2oyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHNqMlwiXVxuICB9LFxuICBcImltYWdlL2llZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImllZlwiXVxuICB9LFxuICBcImltYWdlL2psc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpsc1wiXVxuICB9LFxuICBcImltYWdlL2pwMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpwMlwiLFwianBnMlwiXVxuICB9LFxuICBcImltYWdlL2pwZWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqcGVnXCIsXCJqcGdcIixcImpwZVwiXVxuICB9LFxuICBcImltYWdlL2pwaFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpwaFwiXVxuICB9LFxuICBcImltYWdlL2pwaGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqaGNcIl1cbiAgfSxcbiAgXCJpbWFnZS9qcG1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqcG1cIl1cbiAgfSxcbiAgXCJpbWFnZS9qcHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqcHhcIixcImpwZlwiXVxuICB9LFxuICBcImltYWdlL2p4clwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImp4clwiXVxuICB9LFxuICBcImltYWdlL2p4cmFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqeHJhXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvanhyc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImp4cnNcIl1cbiAgfSxcbiAgXCJpbWFnZS9qeHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqeHNcIl1cbiAgfSxcbiAgXCJpbWFnZS9qeHNjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianhzY1wiXVxuICB9LFxuICBcImltYWdlL2p4c2lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqeHNpXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvanhzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImp4c3NcIl1cbiAgfSxcbiAgXCJpbWFnZS9rdHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrdHhcIl1cbiAgfSxcbiAgXCJpbWFnZS9rdHgyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia3R4MlwiXVxuICB9LFxuICBcImltYWdlL25hcGxwc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS9wanBlZ1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJpbWFnZS9wbmdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwbmdcIl1cbiAgfSxcbiAgXCJpbWFnZS9wcnMuYnRpZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJ0aWZcIl1cbiAgfSxcbiAgXCJpbWFnZS9wcnMucHRpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHRpXCJdXG4gIH0sXG4gIFwiaW1hZ2UvcHdnLXJhc3RlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS9zZ2lcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNnaVwiXVxuICB9LFxuICBcImltYWdlL3N2Zyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN2Z1wiLFwic3ZnelwiXVxuICB9LFxuICBcImltYWdlL3QzOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInQzOFwiXVxuICB9LFxuICBcImltYWdlL3RpZmZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0aWZcIixcInRpZmZcIl1cbiAgfSxcbiAgXCJpbWFnZS90aWZmLWZ4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGZ4XCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmFkb2JlLnBob3Rvc2hvcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHNkXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmFpcnppcC5hY2NlbGVyYXRvci5henZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhenZcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQuY25zLmluZjJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmRlY2UuZ3JhcGhpY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV2aVwiLFwidXZ2aVwiLFwidXZnXCIsXCJ1dnZnXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmRqdnVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkanZ1XCIsXCJkanZcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQuZHZiLnN1YnRpdGxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3ViXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmR3Z1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR3Z1wiXVxuICB9LFxuICBcImltYWdlL3ZuZC5keGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkeGZcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQuZmFzdGJpZHNoZWV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmJzXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmZweFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZweFwiXVxuICB9LFxuICBcImltYWdlL3ZuZC5mc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmc3RcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQuZnVqaXhlcm94LmVkbWljcy1tbXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtbXJcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQuZnVqaXhlcm94LmVkbWljcy1ybGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJybGNcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQuZ2xvYmFsZ3JhcGhpY3MucGdiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImltYWdlL3ZuZC5taWNyb3NvZnQuaWNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWNvXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLm1peFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS92bmQubW96aWxsYS5hcG5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImltYWdlL3ZuZC5tcy1kZHNcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRkc1wiXVxuICB9LFxuICBcImltYWdlL3ZuZC5tcy1tb2RpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWRpXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLm1zLXBob3RvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3ZHBcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQubmV0LWZweFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5weFwiXVxuICB9LFxuICBcImltYWdlL3ZuZC5wY28uYjE2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYjE2XCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLnJhZGlhbmNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImltYWdlL3ZuZC5zZWFsZWQucG5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImltYWdlL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5naWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLmpwZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS92bmQuc3ZmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImltYWdlL3ZuZC50ZW5jZW50LnRhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRhcFwiXVxuICB9LFxuICBcImltYWdlL3ZuZC52YWx2ZS5zb3VyY2UudGV4dHVyZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZ0ZlwiXVxuICB9LFxuICBcImltYWdlL3ZuZC53YXAud2JtcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndibXBcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQueGlmZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhpZlwiXVxuICB9LFxuICBcImltYWdlL3ZuZC56YnJ1c2gucGN4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGN4XCJdXG4gIH0sXG4gIFwiaW1hZ2Uvd2VicFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2VicFwiXVxuICB9LFxuICBcImltYWdlL3dtZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndtZlwiXVxuICB9LFxuICBcImltYWdlL3gtM2RzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCIzZHNcIl1cbiAgfSxcbiAgXCJpbWFnZS94LWNtdS1yYXN0ZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJhc1wiXVxuICB9LFxuICBcImltYWdlL3gtY214XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjbXhcIl1cbiAgfSxcbiAgXCJpbWFnZS94LWZyZWVoYW5kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmaFwiLFwiZmhjXCIsXCJmaDRcIixcImZoNVwiLFwiZmg3XCJdXG4gIH0sXG4gIFwiaW1hZ2UveC1pY29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImljb1wiXVxuICB9LFxuICBcImltYWdlL3gtam5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpuZ1wiXVxuICB9LFxuICBcImltYWdlL3gtbXJzaWQtaW1hZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNpZFwiXVxuICB9LFxuICBcImltYWdlL3gtbXMtYm1wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYm1wXCJdXG4gIH0sXG4gIFwiaW1hZ2UveC1wY3hcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBjeFwiXVxuICB9LFxuICBcImltYWdlL3gtcGljdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGljXCIsXCJwY3RcIl1cbiAgfSxcbiAgXCJpbWFnZS94LXBvcnRhYmxlLWFueW1hcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicG5tXCJdXG4gIH0sXG4gIFwiaW1hZ2UveC1wb3J0YWJsZS1iaXRtYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBibVwiXVxuICB9LFxuICBcImltYWdlL3gtcG9ydGFibGUtZ3JheW1hcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGdtXCJdXG4gIH0sXG4gIFwiaW1hZ2UveC1wb3J0YWJsZS1waXhtYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBwbVwiXVxuICB9LFxuICBcImltYWdlL3gtcmdiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyZ2JcIl1cbiAgfSxcbiAgXCJpbWFnZS94LXRnYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGdhXCJdXG4gIH0sXG4gIFwiaW1hZ2UveC14Yml0bWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4Ym1cIl1cbiAgfSxcbiAgXCJpbWFnZS94LXhjZlwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJpbWFnZS94LXhwaXhtYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhwbVwiXVxuICB9LFxuICBcImltYWdlL3gteHdpbmRvd2R1bXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInh3ZFwiXVxuICB9LFxuICBcIm1lc3NhZ2UvY3BpbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtZXNzYWdlL2RlbGl2ZXJ5LXN0YXR1c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtZXNzYWdlL2Rpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcbiAgICAgIFwiZGlzcG9zaXRpb24tbm90aWZpY2F0aW9uXCJcbiAgICBdXG4gIH0sXG4gIFwibWVzc2FnZS9leHRlcm5hbC1ib2R5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1lc3NhZ2UvZmVlZGJhY2stcmVwb3J0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1lc3NhZ2UvZ2xvYmFsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widThtc2dcIl1cbiAgfSxcbiAgXCJtZXNzYWdlL2dsb2JhbC1kZWxpdmVyeS1zdGF0dXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1OGRzblwiXVxuICB9LFxuICBcIm1lc3NhZ2UvZ2xvYmFsLWRpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInU4bWRuXCJdXG4gIH0sXG4gIFwibWVzc2FnZS9nbG9iYWwtaGVhZGVyc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInU4aGRyXCJdXG4gIH0sXG4gIFwibWVzc2FnZS9odHRwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcIm1lc3NhZ2UvaW1kbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJtZXNzYWdlL25ld3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibWVzc2FnZS9wYXJ0aWFsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcIm1lc3NhZ2UvcmZjODIyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlbWxcIixcIm1pbWVcIl1cbiAgfSxcbiAgXCJtZXNzYWdlL3MtaHR0cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtZXNzYWdlL3NpcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtZXNzYWdlL3NpcGZyYWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibWVzc2FnZS90cmFja2luZy1zdGF0dXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibWVzc2FnZS92bmQuc2kuc2ltcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtZXNzYWdlL3ZuZC53ZmEud3NjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid3NjXCJdXG4gIH0sXG4gIFwibW9kZWwvM21mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiM21mXCJdXG4gIH0sXG4gIFwibW9kZWwvZTU3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1vZGVsL2dsdGYranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2x0ZlwiXVxuICB9LFxuICBcIm1vZGVsL2dsdGYtYmluYXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnbGJcIl1cbiAgfSxcbiAgXCJtb2RlbC9pZ2VzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWdzXCIsXCJpZ2VzXCJdXG4gIH0sXG4gIFwibW9kZWwvbWVzaFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1zaFwiLFwibWVzaFwiLFwic2lsb1wiXVxuICB9LFxuICBcIm1vZGVsL210bFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm10bFwiXVxuICB9LFxuICBcIm1vZGVsL29ialwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9ialwiXVxuICB9LFxuICBcIm1vZGVsL3N0ZXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibW9kZWwvc3RlcCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN0cHhcIl1cbiAgfSxcbiAgXCJtb2RlbC9zdGVwK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN0cHpcIl1cbiAgfSxcbiAgXCJtb2RlbC9zdGVwLXhtbCt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdHB4elwiXVxuICB9LFxuICBcIm1vZGVsL3N0bFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN0bFwiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC5jb2xsYWRhK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGFlXCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLmR3ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR3ZlwiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC5mbGF0bGFuZC4zZG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1vZGVsL3ZuZC5nZGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZGxcIl1cbiAgfSxcbiAgXCJtb2RlbC92bmQuZ3MtZ2RsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwibW9kZWwvdm5kLmdzLmdkbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtb2RlbC92bmQuZ3R3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3R3XCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLm1vbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwibW9kZWwvdm5kLm10c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm10c1wiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC5vcGVuZ2V4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2dleFwiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC5wYXJhc29saWQudHJhbnNtaXQuYmluYXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieF9iXCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLnBhcmFzb2xpZC50cmFuc21pdC50ZXh0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieF90XCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLnB5dGhhLnB5b3hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibW9kZWwvdm5kLnJvc2V0dGUuYW5ub3RhdGVkLWRhdGEtbW9kZWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibW9kZWwvdm5kLnNhcC52ZHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2ZHNcIl1cbiAgfSxcbiAgXCJtb2RlbC92bmQudXNkeit6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1c2R6XCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLnZhbHZlLnNvdXJjZS5jb21waWxlZC1tYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJic3BcIl1cbiAgfSxcbiAgXCJtb2RlbC92bmQudnR1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widnR1XCJdXG4gIH0sXG4gIFwibW9kZWwvdnJtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndybFwiLFwidnJtbFwiXVxuICB9LFxuICBcIm1vZGVsL3gzZCtiaW5hcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIngzZGJcIixcIngzZGJ6XCJdXG4gIH0sXG4gIFwibW9kZWwveDNkK2Zhc3RpbmZvc2V0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieDNkYlwiXVxuICB9LFxuICBcIm1vZGVsL3gzZCt2cm1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4M2R2XCIsXCJ4M2R2elwiXVxuICB9LFxuICBcIm1vZGVsL3gzZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIngzZFwiLFwieDNkelwiXVxuICB9LFxuICBcIm1vZGVsL3gzZC12cm1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieDNkdlwiXVxuICB9LFxuICBcIm11bHRpcGFydC9hbHRlcm5hdGl2ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJtdWx0aXBhcnQvYXBwbGVkb3VibGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibXVsdGlwYXJ0L2J5dGVyYW5nZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibXVsdGlwYXJ0L2RpZ2VzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtdWx0aXBhcnQvZW5jcnlwdGVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcIm11bHRpcGFydC9mb3JtLWRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwibXVsdGlwYXJ0L2hlYWRlci1zZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibXVsdGlwYXJ0L21peGVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm11bHRpcGFydC9tdWx0aWxpbmd1YWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibXVsdGlwYXJ0L3BhcmFsbGVsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm11bHRpcGFydC9yZWxhdGVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcIm11bHRpcGFydC9yZXBvcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibXVsdGlwYXJ0L3NpZ25lZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJtdWx0aXBhcnQvdm5kLmJpbnQubWVkLXBsdXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibXVsdGlwYXJ0L3ZvaWNlLW1lc3NhZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibXVsdGlwYXJ0L3gtbWl4ZWQtcmVwbGFjZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0LzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2NhY2hlLW1hbmlmZXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhcHBjYWNoZVwiLFwibWFuaWZlc3RcIl1cbiAgfSxcbiAgXCJ0ZXh0L2NhbGVuZGFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWNzXCIsXCJpZmJcIl1cbiAgfSxcbiAgXCJ0ZXh0L2NhbGVuZGVyXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwidGV4dC9jbWRcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJ0ZXh0L2NvZmZlZXNjcmlwdFwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNvZmZlZVwiLFwibGl0Y29mZmVlXCJdXG4gIH0sXG4gIFwidGV4dC9jcWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9jcWwtZXhwcmVzc2lvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2NxbC1pZGVudGlmaWVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvY3NzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNzc1wiXVxuICB9LFxuICBcInRleHQvY3N2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjc3ZcIl1cbiAgfSxcbiAgXCJ0ZXh0L2Nzdi1zY2hlbWFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9kaXJlY3RvcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9kbnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9lY21hc2NyaXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvZW5jYXBydHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9lbnJpY2hlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2ZoaXJwYXRoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvZmxleGZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2Z3ZHJlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2dmZjNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9ncmFtbWFyLXJlZi1saXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvaHRtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHRtbFwiLFwiaHRtXCIsXCJzaHRtbFwiXVxuICB9LFxuICBcInRleHQvamFkZVwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImphZGVcIl1cbiAgfSxcbiAgXCJ0ZXh0L2phdmFzY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJ0ZXh0L2pjci1jbmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9qc3hcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpzeFwiXVxuICB9LFxuICBcInRleHQvbGVzc1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibGVzc1wiXVxuICB9LFxuICBcInRleHQvbWFya2Rvd25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1hcmtkb3duXCIsXCJtZFwiXVxuICB9LFxuICBcInRleHQvbWF0aG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1tbFwiXVxuICB9LFxuICBcInRleHQvbWR4XCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtZHhcIl1cbiAgfSxcbiAgXCJ0ZXh0L21pemFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvbjNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibjNcIl1cbiAgfSxcbiAgXCJ0ZXh0L3BhcmFtZXRlcnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCJcbiAgfSxcbiAgXCJ0ZXh0L3Bhcml0eWZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3BsYWluXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0eHRcIixcInRleHRcIixcImNvbmZcIixcImRlZlwiLFwibGlzdFwiLFwibG9nXCIsXCJpblwiLFwiaW5pXCJdXG4gIH0sXG4gIFwidGV4dC9wcm92ZW5hbmNlLW5vdGF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiXG4gIH0sXG4gIFwidGV4dC9wcnMuZmFsbGVuc3RlaW4ucnN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvcHJzLmxpbmVzLnRhZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRzY1wiXVxuICB9LFxuICBcInRleHQvcHJzLnByb3AubG9naWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9yYXB0b3JmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9yZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9yZmM4MjItaGVhZGVyc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3JpY2h0ZXh0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJydHhcIl1cbiAgfSxcbiAgXCJ0ZXh0L3J0ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnRmXCJdXG4gIH0sXG4gIFwidGV4dC9ydHAtZW5jLWFlc2NtMTI4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvcnRwbG9vcGJhY2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9ydHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9zZ21sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2dtbFwiLFwic2dtXCJdXG4gIH0sXG4gIFwidGV4dC9zaGFjbGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9zaGV4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2hleFwiXVxuICB9LFxuICBcInRleHQvc2xpbVwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNsaW1cIixcInNsbVwiXVxuICB9LFxuICBcInRleHQvc3BkeFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNwZHhcIl1cbiAgfSxcbiAgXCJ0ZXh0L3N0cmluZ3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9zdHlsdXNcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdHlsdXNcIixcInN0eWxcIl1cbiAgfSxcbiAgXCJ0ZXh0L3QxNDBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC90YWItc2VwYXJhdGVkLXZhbHVlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHN2XCJdXG4gIH0sXG4gIFwidGV4dC90cm9mZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRcIixcInRyXCIsXCJyb2ZmXCIsXCJtYW5cIixcIm1lXCIsXCJtc1wiXVxuICB9LFxuICBcInRleHQvdHVydGxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0dGxcIl1cbiAgfSxcbiAgXCJ0ZXh0L3VscGZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3VyaS1saXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1cmlcIixcInVyaXNcIixcInVybHNcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZjYXJkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2Y2FyZFwiXVxuICB9LFxuICBcInRleHQvdm5kLmFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuYWJjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLmFzY2lpLWFydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5jdXJsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3VybFwiXVxuICB9LFxuICBcInRleHQvdm5kLmN1cmwuZGN1cmxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRjdXJsXCJdXG4gIH0sXG4gIFwidGV4dC92bmQuY3VybC5tY3VybFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWN1cmxcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5jdXJsLnNjdXJsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzY3VybFwiXVxuICB9LFxuICBcInRleHQvdm5kLmRlYmlhbi5jb3B5cmlnaHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5kbWNsaWVudHNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5kdmIuc3VidGl0bGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdWJcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5lc21lcnRlYy50aGVtZS1kZXNjcmlwdG9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiXG4gIH0sXG4gIFwidGV4dC92bmQuZmFtaWx5c2VhcmNoLmdlZGNvbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdlZFwiXVxuICB9LFxuICBcInRleHQvdm5kLmZpY2xhYi5mbHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuZmx5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmx5XCJdXG4gIH0sXG4gIFwidGV4dC92bmQuZm1pLmZsZXhzdG9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmx4XCJdXG4gIH0sXG4gIFwidGV4dC92bmQuZ21sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLmdyYXBodml6XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3ZcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5oYW5zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLmhnbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5pbjNkLjNkbWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCIzZG1sXCJdXG4gIH0sXG4gIFwidGV4dC92bmQuaW4zZC5zcG90XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3BvdFwiXVxuICB9LFxuICBcInRleHQvdm5kLmlwdGMubmV3c21sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLmlwdGMubml0ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5sYXRleC16XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLm1vdG9yb2xhLnJlZmxleFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5tcy1tZWRpYXBhY2thZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQubmV0MnBob25lLmNvbW1jZW50ZXIuY29tbWFuZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5yYWRpc3lzLm1zbWwtYmFzaWMtbGF5b3V0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLnNlbngud2FycHNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5zaS51cmljYXRhbG9ndWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuc29zaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5zdW4uajJtZS5hcHAtZGVzY3JpcHRvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiamFkXCJdXG4gIH0sXG4gIFwidGV4dC92bmQudHJvbGx0ZWNoLmxpbmd1aXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiXG4gIH0sXG4gIFwidGV4dC92bmQud2FwLnNpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLndhcC5zbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC53YXAud21sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid21sXCJdXG4gIH0sXG4gIFwidGV4dC92bmQud2FwLndtbHNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndtbHNcIl1cbiAgfSxcbiAgXCJ0ZXh0L3Z0dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2dHRcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtYXNtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzXCIsXCJhc21cIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY1wiLFwiY2NcIixcImN4eFwiLFwiY3BwXCIsXCJoXCIsXCJoaFwiLFwiZGljXCJdXG4gIH0sXG4gIFwidGV4dC94LWNvbXBvbmVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJodGNcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtZm9ydHJhblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZlwiLFwiZm9yXCIsXCJmNzdcIixcImY5MFwiXVxuICB9LFxuICBcInRleHQveC1nd3QtcnBjXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwidGV4dC94LWhhbmRsZWJhcnMtdGVtcGxhdGVcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoYnNcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtamF2YS1zb3VyY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImphdmFcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtanF1ZXJ5LXRtcGxcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJ0ZXh0L3gtbHVhXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibHVhXCJdXG4gIH0sXG4gIFwidGV4dC94LW1hcmtkb3duXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJta2RcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtbmZvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJuZm9cIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtb3BtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3BtbFwiXVxuICB9LFxuICBcInRleHQveC1vcmdcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9yZ1wiXVxuICB9LFxuICBcInRleHQveC1wYXNjYWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBcIixcInBhc1wiXVxuICB9LFxuICBcInRleHQveC1wcm9jZXNzaW5nXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwZGVcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtc2Fzc1wiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNhc3NcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtc2Nzc1wiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNjc3NcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtc2V0ZXh0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJldHhcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtc2Z2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZnZcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtc3VzZS15bXBcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInltcFwiXVxuICB9LFxuICBcInRleHQveC11dWVuY29kZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXVcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtdmNhbGVuZGFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2Y3NcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtdmNhcmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZjZlwiXVxuICB9LFxuICBcInRleHQveG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bWxcIl1cbiAgfSxcbiAgXCJ0ZXh0L3htbC1leHRlcm5hbC1wYXJzZWQtZW50aXR5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQveWFtbFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieWFtbFwiLFwieW1sXCJdXG4gIH0sXG4gIFwidmlkZW8vMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvLzNncHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCIzZ3BcIixcIjNncHBcIl1cbiAgfSxcbiAgXCJ2aWRlby8zZ3BwLXR0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvLzNncHAyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiM2cyXCJdXG4gIH0sXG4gIFwidmlkZW8vYXYxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2JtcGVnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2J0NjU2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2NlbGJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vZHZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vZW5jYXBydHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vZmZ2MVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9mbGV4ZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2gyNjFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoMjYxXCJdXG4gIH0sXG4gIFwidmlkZW8vaDI2M1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImgyNjNcIl1cbiAgfSxcbiAgXCJ2aWRlby9oMjYzLTE5OThcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vaDI2My0yMDAwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2gyNjRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoMjY0XCJdXG4gIH0sXG4gIFwidmlkZW8vaDI2NC1yY2RvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2gyNjQtc3ZjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2gyNjVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vaXNvLnNlZ21lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtNHNcIl1cbiAgfSxcbiAgXCJ2aWRlby9qcGVnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianBndlwiXVxuICB9LFxuICBcInZpZGVvL2pwZWcyMDAwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2pwbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianBtXCIsXCJqcGdtXCJdXG4gIH0sXG4gIFwidmlkZW8vanhzdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9tajJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtajJcIixcIm1qcDJcIl1cbiAgfSxcbiAgXCJ2aWRlby9tcDFzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL21wMnBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vbXAydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRzXCJdXG4gIH0sXG4gIFwidmlkZW8vbXA0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXA0XCIsXCJtcDR2XCIsXCJtcGc0XCJdXG4gIH0sXG4gIFwidmlkZW8vbXA0di1lc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9tcGVnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXBlZ1wiLFwibXBnXCIsXCJtcGVcIixcIm0xdlwiLFwibTJ2XCJdXG4gIH0sXG4gIFwidmlkZW8vbXBlZzQtZ2VuZXJpY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9tcHZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vbnZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vb2dnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2d2XCJdXG4gIH0sXG4gIFwidmlkZW8vcGFyaXR5ZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3BvaW50ZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vcXVpY2t0aW1lXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicXRcIixcIm1vdlwiXVxuICB9LFxuICBcInZpZGVvL3JhcHRvcmZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9yYXdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vcnRwLWVuYy1hZXNjbTEyOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9ydHBsb29wYmFja1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9ydHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vc2NpcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9zbXB0ZTI5MVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9zbXB0ZTI5Mm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdWxwZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZjMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92YzJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLmNjdHZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLmRlY2UuaGRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dmhcIixcInV2dmhcIl1cbiAgfSxcbiAgXCJ2aWRlby92bmQuZGVjZS5tb2JpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dm1cIixcInV2dm1cIl1cbiAgfSxcbiAgXCJ2aWRlby92bmQuZGVjZS5tcDRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLmRlY2UucGRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dnBcIixcInV2dnBcIl1cbiAgfSxcbiAgXCJ2aWRlby92bmQuZGVjZS5zZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV2c1wiLFwidXZ2c1wiXVxuICB9LFxuICBcInZpZGVvL3ZuZC5kZWNlLnZpZGVvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXZ2XCIsXCJ1dnZ2XCJdXG4gIH0sXG4gIFwidmlkZW8vdm5kLmRpcmVjdHYubXBlZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuZGlyZWN0di5tcGVnLXR0c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuZGxuYS5tcGVnLXR0c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuZHZiLmZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkdmJcIl1cbiAgfSxcbiAgXCJ2aWRlby92bmQuZnZ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZnZ0XCJdXG4gIH0sXG4gIFwidmlkZW8vdm5kLmhucy52aWRlb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjFkcGFyaXR5ZmVjLTEwMTBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4xZHBhcml0eWZlYy0yMDA1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0uMmRwYXJpdHlmZWMtMTAxMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjJkcGFyaXR5ZmVjLTIwMDVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLmlwdHZmb3J1bS50dHNhdmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLmlwdHZmb3J1bS50dHNtcGVnMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQubW90b3JvbGEudmlkZW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLm1vdG9yb2xhLnZpZGVvcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQubXBlZ3VybFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm14dVwiLFwibTR1XCJdXG4gIH0sXG4gIFwidmlkZW8vdm5kLm1zLXBsYXlyZWFkeS5tZWRpYS5weXZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJweXZcIl1cbiAgfSxcbiAgXCJ2aWRlby92bmQubm9raWEuaW50ZXJsZWF2ZWQtbXVsdGltZWRpYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQubm9raWEubXA0dnJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLm5va2lhLnZpZGVvdm9pcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQub2JqZWN0dmlkZW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLnJhZGdhbWV0dG9vbHMuYmlua1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQucmFkZ2FtZXR0b29scy5zbWFja2VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5zZWFsZWQubXBlZzFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLnNlYWxlZC5tcGVnNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuc2VhbGVkLnN3ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwubW92XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC51dnZ1Lm1wNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV2dVwiLFwidXZ2dVwiXVxuICB9LFxuICBcInZpZGVvL3ZuZC52aXZvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widml2XCJdXG4gIH0sXG4gIFwidmlkZW8vdm5kLnlvdXR1YmUueXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdnA4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZwOVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby93ZWJtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3ZWJtXCJdXG4gIH0sXG4gIFwidmlkZW8veC1mNHZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImY0dlwiXVxuICB9LFxuICBcInZpZGVvL3gtZmxpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmbGlcIl1cbiAgfSxcbiAgXCJ2aWRlby94LWZsdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmx2XCJdXG4gIH0sXG4gIFwidmlkZW8veC1tNHZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm00dlwiXVxuICB9LFxuICBcInZpZGVvL3gtbWF0cm9za2FcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1rdlwiLFwibWszZFwiLFwibWtzXCJdXG4gIH0sXG4gIFwidmlkZW8veC1tbmdcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1uZ1wiXVxuICB9LFxuICBcInZpZGVvL3gtbXMtYXNmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhc2ZcIixcImFzeFwiXVxuICB9LFxuICBcInZpZGVvL3gtbXMtdm9iXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2b2JcIl1cbiAgfSxcbiAgXCJ2aWRlby94LW1zLXdtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3bVwiXVxuICB9LFxuICBcInZpZGVvL3gtbXMtd212XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3bXZcIl1cbiAgfSxcbiAgXCJ2aWRlby94LW1zLXdteFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid214XCJdXG4gIH0sXG4gIFwidmlkZW8veC1tcy13dnhcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInd2eFwiXVxuICB9LFxuICBcInZpZGVvL3gtbXN2aWRlb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXZpXCJdXG4gIH0sXG4gIFwidmlkZW8veC1zZ2ktbW92aWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1vdmllXCJdXG4gIH0sXG4gIFwidmlkZW8veC1zbXZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNtdlwiXVxuICB9LFxuICBcIngtY29uZmVyZW5jZS94LWNvb2x0YWxrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpY2VcIl1cbiAgfSxcbiAgXCJ4LXNoYWRlci94LWZyYWdtZW50XCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwieC1zaGFkZXIveC12ZXJ0ZXhcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfVxufVxuIiwgIi8qIVxuICogbWltZS1kYlxuICogQ29weXJpZ2h0KGMpIDIwMTQgSm9uYXRoYW4gT25nXG4gKiBDb3B5cmlnaHQoYykgMjAxNS0yMDIyIERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL1xuXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kYi5qc29uJylcbiIsICIvKiFcbiAqIG1pbWUtdHlwZXNcbiAqIENvcHlyaWdodChjKSAyMDE0IEpvbmF0aGFuIE9uZ1xuICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbid1c2Ugc3RyaWN0J1xuXG4vKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbnZhciBkYiA9IHJlcXVpcmUoJ21pbWUtZGInKVxudmFyIGV4dG5hbWUgPSByZXF1aXJlKCdwYXRoJykuZXh0bmFtZVxuXG4vKipcbiAqIE1vZHVsZSB2YXJpYWJsZXMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbnZhciBFWFRSQUNUX1RZUEVfUkVHRVhQID0gL15cXHMqKFteO1xcc10qKSg/Ojt8XFxzfCQpL1xudmFyIFRFWFRfVFlQRV9SRUdFWFAgPSAvXnRleHRcXC8vaVxuXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICogQHB1YmxpY1xuICovXG5cbmV4cG9ydHMuY2hhcnNldCA9IGNoYXJzZXRcbmV4cG9ydHMuY2hhcnNldHMgPSB7IGxvb2t1cDogY2hhcnNldCB9XG5leHBvcnRzLmNvbnRlbnRUeXBlID0gY29udGVudFR5cGVcbmV4cG9ydHMuZXh0ZW5zaW9uID0gZXh0ZW5zaW9uXG5leHBvcnRzLmV4dGVuc2lvbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpXG5leHBvcnRzLmxvb2t1cCA9IGxvb2t1cFxuZXhwb3J0cy50eXBlcyA9IE9iamVjdC5jcmVhdGUobnVsbClcblxuLy8gUG9wdWxhdGUgdGhlIGV4dGVuc2lvbnMvdHlwZXMgbWFwc1xucG9wdWxhdGVNYXBzKGV4cG9ydHMuZXh0ZW5zaW9ucywgZXhwb3J0cy50eXBlcylcblxuLyoqXG4gKiBHZXQgdGhlIGRlZmF1bHQgY2hhcnNldCBmb3IgYSBNSU1FIHR5cGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcbiAqIEByZXR1cm4ge2Jvb2xlYW58c3RyaW5nfVxuICovXG5cbmZ1bmN0aW9uIGNoYXJzZXQgKHR5cGUpIHtcbiAgaWYgKCF0eXBlIHx8IHR5cGVvZiB0eXBlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLy8gVE9ETzogdXNlIG1lZGlhLXR5cGVyXG4gIHZhciBtYXRjaCA9IEVYVFJBQ1RfVFlQRV9SRUdFWFAuZXhlYyh0eXBlKVxuICB2YXIgbWltZSA9IG1hdGNoICYmIGRiW21hdGNoWzFdLnRvTG93ZXJDYXNlKCldXG5cbiAgaWYgKG1pbWUgJiYgbWltZS5jaGFyc2V0KSB7XG4gICAgcmV0dXJuIG1pbWUuY2hhcnNldFxuICB9XG5cbiAgLy8gZGVmYXVsdCB0ZXh0LyogdG8gdXRmLThcbiAgaWYgKG1hdGNoICYmIFRFWFRfVFlQRV9SRUdFWFAudGVzdChtYXRjaFsxXSkpIHtcbiAgICByZXR1cm4gJ1VURi04J1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKlxuICogQ3JlYXRlIGEgZnVsbCBDb250ZW50LVR5cGUgaGVhZGVyIGdpdmVuIGEgTUlNRSB0eXBlIG9yIGV4dGVuc2lvbi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtib29sZWFufHN0cmluZ31cbiAqL1xuXG5mdW5jdGlvbiBjb250ZW50VHlwZSAoc3RyKSB7XG4gIC8vIFRPRE86IHNob3VsZCB0aGlzIGV2ZW4gYmUgaW4gdGhpcyBtb2R1bGU/XG4gIGlmICghc3RyIHx8IHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICB2YXIgbWltZSA9IHN0ci5pbmRleE9mKCcvJykgPT09IC0xXG4gICAgPyBleHBvcnRzLmxvb2t1cChzdHIpXG4gICAgOiBzdHJcblxuICBpZiAoIW1pbWUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8vIFRPRE86IHVzZSBjb250ZW50LXR5cGUgb3Igb3RoZXIgbW9kdWxlXG4gIGlmIChtaW1lLmluZGV4T2YoJ2NoYXJzZXQnKSA9PT0gLTEpIHtcbiAgICB2YXIgY2hhcnNldCA9IGV4cG9ydHMuY2hhcnNldChtaW1lKVxuICAgIGlmIChjaGFyc2V0KSBtaW1lICs9ICc7IGNoYXJzZXQ9JyArIGNoYXJzZXQudG9Mb3dlckNhc2UoKVxuICB9XG5cbiAgcmV0dXJuIG1pbWVcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGRlZmF1bHQgZXh0ZW5zaW9uIGZvciBhIE1JTUUgdHlwZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdHlwZVxuICogQHJldHVybiB7Ym9vbGVhbnxzdHJpbmd9XG4gKi9cblxuZnVuY3Rpb24gZXh0ZW5zaW9uICh0eXBlKSB7XG4gIGlmICghdHlwZSB8fCB0eXBlb2YgdHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8vIFRPRE86IHVzZSBtZWRpYS10eXBlclxuICB2YXIgbWF0Y2ggPSBFWFRSQUNUX1RZUEVfUkVHRVhQLmV4ZWModHlwZSlcblxuICAvLyBnZXQgZXh0ZW5zaW9uc1xuICB2YXIgZXh0cyA9IG1hdGNoICYmIGV4cG9ydHMuZXh0ZW5zaW9uc1ttYXRjaFsxXS50b0xvd2VyQ2FzZSgpXVxuXG4gIGlmICghZXh0cyB8fCAhZXh0cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBleHRzWzBdXG59XG5cbi8qKlxuICogTG9va3VwIHRoZSBNSU1FIHR5cGUgZm9yIGEgZmlsZSBwYXRoL2V4dGVuc2lvbi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogQHJldHVybiB7Ym9vbGVhbnxzdHJpbmd9XG4gKi9cblxuZnVuY3Rpb24gbG9va3VwIChwYXRoKSB7XG4gIGlmICghcGF0aCB8fCB0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8vIGdldCB0aGUgZXh0ZW5zaW9uIChcImV4dFwiIG9yIFwiLmV4dFwiIG9yIGZ1bGwgcGF0aClcbiAgdmFyIGV4dGVuc2lvbiA9IGV4dG5hbWUoJ3guJyArIHBhdGgpXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAuc3Vic3RyKDEpXG5cbiAgaWYgKCFleHRlbnNpb24pIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBleHBvcnRzLnR5cGVzW2V4dGVuc2lvbl0gfHwgZmFsc2Vcbn1cblxuLyoqXG4gKiBQb3B1bGF0ZSB0aGUgZXh0ZW5zaW9ucyBhbmQgdHlwZXMgbWFwcy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcG9wdWxhdGVNYXBzIChleHRlbnNpb25zLCB0eXBlcykge1xuICAvLyBzb3VyY2UgcHJlZmVyZW5jZSAobGVhc3QgLT4gbW9zdClcbiAgdmFyIHByZWZlcmVuY2UgPSBbJ25naW54JywgJ2FwYWNoZScsIHVuZGVmaW5lZCwgJ2lhbmEnXVxuXG4gIE9iamVjdC5rZXlzKGRiKS5mb3JFYWNoKGZ1bmN0aW9uIGZvckVhY2hNaW1lVHlwZSAodHlwZSkge1xuICAgIHZhciBtaW1lID0gZGJbdHlwZV1cbiAgICB2YXIgZXh0cyA9IG1pbWUuZXh0ZW5zaW9uc1xuXG4gICAgaWYgKCFleHRzIHx8ICFleHRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gbWltZSAtPiBleHRlbnNpb25zXG4gICAgZXh0ZW5zaW9uc1t0eXBlXSA9IGV4dHNcblxuICAgIC8vIGV4dGVuc2lvbiAtPiBtaW1lXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZXh0ZW5zaW9uID0gZXh0c1tpXVxuXG4gICAgICBpZiAodHlwZXNbZXh0ZW5zaW9uXSkge1xuICAgICAgICB2YXIgZnJvbSA9IHByZWZlcmVuY2UuaW5kZXhPZihkYlt0eXBlc1tleHRlbnNpb25dXS5zb3VyY2UpXG4gICAgICAgIHZhciB0byA9IHByZWZlcmVuY2UuaW5kZXhPZihtaW1lLnNvdXJjZSlcblxuICAgICAgICBpZiAodHlwZXNbZXh0ZW5zaW9uXSAhPT0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScgJiZcbiAgICAgICAgICAoZnJvbSA+IHRvIHx8IChmcm9tID09PSB0byAmJiB0eXBlc1tleHRlbnNpb25dLnN1YnN0cigwLCAxMikgPT09ICdhcHBsaWNhdGlvbi8nKSkpIHtcbiAgICAgICAgICAvLyBza2lwIHRoZSByZW1hcHBpbmdcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIHNldCB0aGUgZXh0ZW5zaW9uIC0+IG1pbWVcbiAgICAgIHR5cGVzW2V4dGVuc2lvbl0gPSB0eXBlXG4gICAgfVxuICB9KVxufVxuIiwgIm1vZHVsZS5leHBvcnRzID0gZGVmZXI7XG5cbi8qKlxuICogUnVucyBwcm92aWRlZCBmdW5jdGlvbiBvbiBuZXh0IGl0ZXJhdGlvbiBvZiB0aGUgZXZlbnQgbG9vcFxuICpcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGZuIC0gZnVuY3Rpb24gdG8gcnVuXG4gKi9cbmZ1bmN0aW9uIGRlZmVyKGZuKVxue1xuICB2YXIgbmV4dFRpY2sgPSB0eXBlb2Ygc2V0SW1tZWRpYXRlID09ICdmdW5jdGlvbidcbiAgICA/IHNldEltbWVkaWF0ZVxuICAgIDogKFxuICAgICAgdHlwZW9mIHByb2Nlc3MgPT0gJ29iamVjdCcgJiYgdHlwZW9mIHByb2Nlc3MubmV4dFRpY2sgPT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyBwcm9jZXNzLm5leHRUaWNrXG4gICAgICA6IG51bGxcbiAgICApO1xuXG4gIGlmIChuZXh0VGljaylcbiAge1xuICAgIG5leHRUaWNrKGZuKTtcbiAgfVxuICBlbHNlXG4gIHtcbiAgICBzZXRUaW1lb3V0KGZuLCAwKTtcbiAgfVxufVxuIiwgInZhciBkZWZlciA9IHJlcXVpcmUoJy4vZGVmZXIuanMnKTtcblxuLy8gQVBJXG5tb2R1bGUuZXhwb3J0cyA9IGFzeW5jO1xuXG4vKipcbiAqIFJ1bnMgcHJvdmlkZWQgY2FsbGJhY2sgYXN5bmNocm9ub3VzbHlcbiAqIGV2ZW4gaWYgY2FsbGJhY2sgaXRzZWxmIGlzIG5vdFxuICpcbiAqIEBwYXJhbSAgIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBjYWxsYmFjayB0byBpbnZva2VcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gLSBhdWdtZW50ZWQgY2FsbGJhY2tcbiAqL1xuZnVuY3Rpb24gYXN5bmMoY2FsbGJhY2spXG57XG4gIHZhciBpc0FzeW5jID0gZmFsc2U7XG5cbiAgLy8gY2hlY2sgaWYgYXN5bmMgaGFwcGVuZWRcbiAgZGVmZXIoZnVuY3Rpb24oKSB7IGlzQXN5bmMgPSB0cnVlOyB9KTtcblxuICByZXR1cm4gZnVuY3Rpb24gYXN5bmNfY2FsbGJhY2soZXJyLCByZXN1bHQpXG4gIHtcbiAgICBpZiAoaXNBc3luYylcbiAgICB7XG4gICAgICBjYWxsYmFjayhlcnIsIHJlc3VsdCk7XG4gICAgfVxuICAgIGVsc2VcbiAgICB7XG4gICAgICBkZWZlcihmdW5jdGlvbiBuZXh0VGlja19jYWxsYmFjaygpXG4gICAgICB7XG4gICAgICAgIGNhbGxiYWNrKGVyciwgcmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cbiIsICIvLyBBUElcbm1vZHVsZS5leHBvcnRzID0gYWJvcnQ7XG5cbi8qKlxuICogQWJvcnRzIGxlZnRvdmVyIGFjdGl2ZSBqb2JzXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHN0YXRlIC0gY3VycmVudCBzdGF0ZSBvYmplY3RcbiAqL1xuZnVuY3Rpb24gYWJvcnQoc3RhdGUpXG57XG4gIE9iamVjdC5rZXlzKHN0YXRlLmpvYnMpLmZvckVhY2goY2xlYW4uYmluZChzdGF0ZSkpO1xuXG4gIC8vIHJlc2V0IGxlZnRvdmVyIGpvYnNcbiAgc3RhdGUuam9icyA9IHt9O1xufVxuXG4vKipcbiAqIENsZWFucyB1cCBsZWZ0b3ZlciBqb2IgYnkgaW52b2tpbmcgYWJvcnQgZnVuY3Rpb24gZm9yIHRoZSBwcm92aWRlZCBqb2IgaWRcbiAqXG4gKiBAdGhpcyAgc3RhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0ga2V5IC0gam9iIGlkIHRvIGFib3J0XG4gKi9cbmZ1bmN0aW9uIGNsZWFuKGtleSlcbntcbiAgaWYgKHR5cGVvZiB0aGlzLmpvYnNba2V5XSA9PSAnZnVuY3Rpb24nKVxuICB7XG4gICAgdGhpcy5qb2JzW2tleV0oKTtcbiAgfVxufVxuIiwgInZhciBhc3luYyA9IHJlcXVpcmUoJy4vYXN5bmMuanMnKVxuICAsIGFib3J0ID0gcmVxdWlyZSgnLi9hYm9ydC5qcycpXG4gIDtcblxuLy8gQVBJXG5tb2R1bGUuZXhwb3J0cyA9IGl0ZXJhdGU7XG5cbi8qKlxuICogSXRlcmF0ZXMgb3ZlciBlYWNoIGpvYiBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge2FycmF5fG9iamVjdH0gbGlzdCAtIGFycmF5IG9yIG9iamVjdCAobmFtZWQgbGlzdCkgdG8gaXRlcmF0ZSBvdmVyXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBpdGVyYXRvciAtIGl0ZXJhdG9yIHRvIHJ1blxuICogQHBhcmFtIHtvYmplY3R9IHN0YXRlIC0gY3VycmVudCBqb2Igc3RhdHVzXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGludm9rZWQgd2hlbiBhbGwgZWxlbWVudHMgcHJvY2Vzc2VkXG4gKi9cbmZ1bmN0aW9uIGl0ZXJhdGUobGlzdCwgaXRlcmF0b3IsIHN0YXRlLCBjYWxsYmFjaylcbntcbiAgLy8gc3RvcmUgY3VycmVudCBpbmRleFxuICB2YXIga2V5ID0gc3RhdGVbJ2tleWVkTGlzdCddID8gc3RhdGVbJ2tleWVkTGlzdCddW3N0YXRlLmluZGV4XSA6IHN0YXRlLmluZGV4O1xuXG4gIHN0YXRlLmpvYnNba2V5XSA9IHJ1bkpvYihpdGVyYXRvciwga2V5LCBsaXN0W2tleV0sIGZ1bmN0aW9uKGVycm9yLCBvdXRwdXQpXG4gIHtcbiAgICAvLyBkb24ndCByZXBlYXQgeW91cnNlbGZcbiAgICAvLyBza2lwIHNlY29uZGFyeSBjYWxsYmFja3NcbiAgICBpZiAoIShrZXkgaW4gc3RhdGUuam9icykpXG4gICAge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGNsZWFuIHVwIGpvYnNcbiAgICBkZWxldGUgc3RhdGUuam9ic1trZXldO1xuXG4gICAgaWYgKGVycm9yKVxuICAgIHtcbiAgICAgIC8vIGRvbid0IHByb2Nlc3MgcmVzdCBvZiB0aGUgcmVzdWx0c1xuICAgICAgLy8gc3RvcCBzdGlsbCBhY3RpdmUgam9ic1xuICAgICAgLy8gYW5kIHJlc2V0IHRoZSBsaXN0XG4gICAgICBhYm9ydChzdGF0ZSk7XG4gICAgfVxuICAgIGVsc2VcbiAgICB7XG4gICAgICBzdGF0ZS5yZXN1bHRzW2tleV0gPSBvdXRwdXQ7XG4gICAgfVxuXG4gICAgLy8gcmV0dXJuIHNhbHZhZ2VkIHJlc3VsdHNcbiAgICBjYWxsYmFjayhlcnJvciwgc3RhdGUucmVzdWx0cyk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFJ1bnMgaXRlcmF0b3Igb3ZlciBwcm92aWRlZCBqb2IgZWxlbWVudFxuICpcbiAqIEBwYXJhbSAgIHtmdW5jdGlvbn0gaXRlcmF0b3IgLSBpdGVyYXRvciB0byBpbnZva2VcbiAqIEBwYXJhbSAgIHtzdHJpbmd8bnVtYmVyfSBrZXkgLSBrZXkvaW5kZXggb2YgdGhlIGVsZW1lbnQgaW4gdGhlIGxpc3Qgb2Ygam9ic1xuICogQHBhcmFtICAge21peGVkfSBpdGVtIC0gam9iIGRlc2NyaXB0aW9uXG4gKiBAcGFyYW0gICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gaW52b2tlZCBhZnRlciBpdGVyYXRvciBpcyBkb25lIHdpdGggdGhlIGpvYlxuICogQHJldHVybnMge2Z1bmN0aW9ufG1peGVkfSAtIGpvYiBhYm9ydCBmdW5jdGlvbiBvciBzb21ldGhpbmcgZWxzZVxuICovXG5mdW5jdGlvbiBydW5Kb2IoaXRlcmF0b3IsIGtleSwgaXRlbSwgY2FsbGJhY2spXG57XG4gIHZhciBhYm9ydGVyO1xuXG4gIC8vIGFsbG93IHNob3J0Y3V0IGlmIGl0ZXJhdG9yIGV4cGVjdHMgb25seSB0d28gYXJndW1lbnRzXG4gIGlmIChpdGVyYXRvci5sZW5ndGggPT0gMilcbiAge1xuICAgIGFib3J0ZXIgPSBpdGVyYXRvcihpdGVtLCBhc3luYyhjYWxsYmFjaykpO1xuICB9XG4gIC8vIG90aGVyd2lzZSBnbyB3aXRoIGZ1bGwgdGhyZWUgYXJndW1lbnRzXG4gIGVsc2VcbiAge1xuICAgIGFib3J0ZXIgPSBpdGVyYXRvcihpdGVtLCBrZXksIGFzeW5jKGNhbGxiYWNrKSk7XG4gIH1cblxuICByZXR1cm4gYWJvcnRlcjtcbn1cbiIsICIvLyBBUElcbm1vZHVsZS5leHBvcnRzID0gc3RhdGU7XG5cbi8qKlxuICogQ3JlYXRlcyBpbml0aWFsIHN0YXRlIG9iamVjdFxuICogZm9yIGl0ZXJhdGlvbiBvdmVyIGxpc3RcbiAqXG4gKiBAcGFyYW0gICB7YXJyYXl8b2JqZWN0fSBsaXN0IC0gbGlzdCB0byBpdGVyYXRlIG92ZXJcbiAqIEBwYXJhbSAgIHtmdW5jdGlvbnxudWxsfSBzb3J0TWV0aG9kIC0gZnVuY3Rpb24gdG8gdXNlIGZvciBrZXlzIHNvcnQsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBgbnVsbGAgdG8ga2VlcCB0aGVtIGFzIGlzXG4gKiBAcmV0dXJucyB7b2JqZWN0fSAtIGluaXRpYWwgc3RhdGUgb2JqZWN0XG4gKi9cbmZ1bmN0aW9uIHN0YXRlKGxpc3QsIHNvcnRNZXRob2QpXG57XG4gIHZhciBpc05hbWVkTGlzdCA9ICFBcnJheS5pc0FycmF5KGxpc3QpXG4gICAgLCBpbml0U3RhdGUgPVxuICAgIHtcbiAgICAgIGluZGV4ICAgIDogMCxcbiAgICAgIGtleWVkTGlzdDogaXNOYW1lZExpc3QgfHwgc29ydE1ldGhvZCA/IE9iamVjdC5rZXlzKGxpc3QpIDogbnVsbCxcbiAgICAgIGpvYnMgICAgIDoge30sXG4gICAgICByZXN1bHRzICA6IGlzTmFtZWRMaXN0ID8ge30gOiBbXSxcbiAgICAgIHNpemUgICAgIDogaXNOYW1lZExpc3QgPyBPYmplY3Qua2V5cyhsaXN0KS5sZW5ndGggOiBsaXN0Lmxlbmd0aFxuICAgIH1cbiAgICA7XG5cbiAgaWYgKHNvcnRNZXRob2QpXG4gIHtcbiAgICAvLyBzb3J0IGFycmF5IGtleXMgYmFzZWQgb24gaXQncyB2YWx1ZXNcbiAgICAvLyBzb3J0IG9iamVjdCdzIGtleXMganVzdCBvbiBvd24gbWVyaXRcbiAgICBpbml0U3RhdGUua2V5ZWRMaXN0LnNvcnQoaXNOYW1lZExpc3QgPyBzb3J0TWV0aG9kIDogZnVuY3Rpb24oYSwgYilcbiAgICB7XG4gICAgICByZXR1cm4gc29ydE1ldGhvZChsaXN0W2FdLCBsaXN0W2JdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBpbml0U3RhdGU7XG59XG4iLCAidmFyIGFib3J0ID0gcmVxdWlyZSgnLi9hYm9ydC5qcycpXG4gICwgYXN5bmMgPSByZXF1aXJlKCcuL2FzeW5jLmpzJylcbiAgO1xuXG4vLyBBUElcbm1vZHVsZS5leHBvcnRzID0gdGVybWluYXRvcjtcblxuLyoqXG4gKiBUZXJtaW5hdGVzIGpvYnMgaW4gdGhlIGF0dGFjaGVkIHN0YXRlIGNvbnRleHRcbiAqXG4gKiBAdGhpcyAgQXN5bmNLaXRTdGF0ZSNcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gZmluYWwgY2FsbGJhY2sgdG8gaW52b2tlIGFmdGVyIHRlcm1pbmF0aW9uXG4gKi9cbmZ1bmN0aW9uIHRlcm1pbmF0b3IoY2FsbGJhY2spXG57XG4gIGlmICghT2JqZWN0LmtleXModGhpcy5qb2JzKS5sZW5ndGgpXG4gIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBmYXN0IGZvcndhcmQgaXRlcmF0aW9uIGluZGV4XG4gIHRoaXMuaW5kZXggPSB0aGlzLnNpemU7XG5cbiAgLy8gYWJvcnQgam9ic1xuICBhYm9ydCh0aGlzKTtcblxuICAvLyBzZW5kIGJhY2sgcmVzdWx0cyB3ZSBoYXZlIHNvIGZhclxuICBhc3luYyhjYWxsYmFjaykobnVsbCwgdGhpcy5yZXN1bHRzKTtcbn1cbiIsICJ2YXIgaXRlcmF0ZSAgICA9IHJlcXVpcmUoJy4vbGliL2l0ZXJhdGUuanMnKVxuICAsIGluaXRTdGF0ZSAgPSByZXF1aXJlKCcuL2xpYi9zdGF0ZS5qcycpXG4gICwgdGVybWluYXRvciA9IHJlcXVpcmUoJy4vbGliL3Rlcm1pbmF0b3IuanMnKVxuICA7XG5cbi8vIFB1YmxpYyBBUElcbm1vZHVsZS5leHBvcnRzID0gcGFyYWxsZWw7XG5cbi8qKlxuICogUnVucyBpdGVyYXRvciBvdmVyIHByb3ZpZGVkIGFycmF5IGVsZW1lbnRzIGluIHBhcmFsbGVsXG4gKlxuICogQHBhcmFtICAge2FycmF5fG9iamVjdH0gbGlzdCAtIGFycmF5IG9yIG9iamVjdCAobmFtZWQgbGlzdCkgdG8gaXRlcmF0ZSBvdmVyXG4gKiBAcGFyYW0gICB7ZnVuY3Rpb259IGl0ZXJhdG9yIC0gaXRlcmF0b3IgdG8gcnVuXG4gKiBAcGFyYW0gICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gaW52b2tlZCB3aGVuIGFsbCBlbGVtZW50cyBwcm9jZXNzZWRcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gLSBqb2JzIHRlcm1pbmF0b3JcbiAqL1xuZnVuY3Rpb24gcGFyYWxsZWwobGlzdCwgaXRlcmF0b3IsIGNhbGxiYWNrKVxue1xuICB2YXIgc3RhdGUgPSBpbml0U3RhdGUobGlzdCk7XG5cbiAgd2hpbGUgKHN0YXRlLmluZGV4IDwgKHN0YXRlWydrZXllZExpc3QnXSB8fCBsaXN0KS5sZW5ndGgpXG4gIHtcbiAgICBpdGVyYXRlKGxpc3QsIGl0ZXJhdG9yLCBzdGF0ZSwgZnVuY3Rpb24oZXJyb3IsIHJlc3VsdClcbiAgICB7XG4gICAgICBpZiAoZXJyb3IpXG4gICAgICB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yLCByZXN1bHQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGxvb2tzIGxpa2UgaXQncyB0aGUgbGFzdCBvbmVcbiAgICAgIGlmIChPYmplY3Qua2V5cyhzdGF0ZS5qb2JzKS5sZW5ndGggPT09IDApXG4gICAgICB7XG4gICAgICAgIGNhbGxiYWNrKG51bGwsIHN0YXRlLnJlc3VsdHMpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBzdGF0ZS5pbmRleCsrO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1pbmF0b3IuYmluZChzdGF0ZSwgY2FsbGJhY2spO1xufVxuIiwgInZhciBpdGVyYXRlICAgID0gcmVxdWlyZSgnLi9saWIvaXRlcmF0ZS5qcycpXG4gICwgaW5pdFN0YXRlICA9IHJlcXVpcmUoJy4vbGliL3N0YXRlLmpzJylcbiAgLCB0ZXJtaW5hdG9yID0gcmVxdWlyZSgnLi9saWIvdGVybWluYXRvci5qcycpXG4gIDtcblxuLy8gUHVibGljIEFQSVxubW9kdWxlLmV4cG9ydHMgPSBzZXJpYWxPcmRlcmVkO1xuLy8gc29ydGluZyBoZWxwZXJzXG5tb2R1bGUuZXhwb3J0cy5hc2NlbmRpbmcgID0gYXNjZW5kaW5nO1xubW9kdWxlLmV4cG9ydHMuZGVzY2VuZGluZyA9IGRlc2NlbmRpbmc7XG5cbi8qKlxuICogUnVucyBpdGVyYXRvciBvdmVyIHByb3ZpZGVkIHNvcnRlZCBhcnJheSBlbGVtZW50cyBpbiBzZXJpZXNcbiAqXG4gKiBAcGFyYW0gICB7YXJyYXl8b2JqZWN0fSBsaXN0IC0gYXJyYXkgb3Igb2JqZWN0IChuYW1lZCBsaXN0KSB0byBpdGVyYXRlIG92ZXJcbiAqIEBwYXJhbSAgIHtmdW5jdGlvbn0gaXRlcmF0b3IgLSBpdGVyYXRvciB0byBydW5cbiAqIEBwYXJhbSAgIHtmdW5jdGlvbn0gc29ydE1ldGhvZCAtIGN1c3RvbSBzb3J0IGZ1bmN0aW9uXG4gKiBAcGFyYW0gICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gaW52b2tlZCB3aGVuIGFsbCBlbGVtZW50cyBwcm9jZXNzZWRcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gLSBqb2JzIHRlcm1pbmF0b3JcbiAqL1xuZnVuY3Rpb24gc2VyaWFsT3JkZXJlZChsaXN0LCBpdGVyYXRvciwgc29ydE1ldGhvZCwgY2FsbGJhY2spXG57XG4gIHZhciBzdGF0ZSA9IGluaXRTdGF0ZShsaXN0LCBzb3J0TWV0aG9kKTtcblxuICBpdGVyYXRlKGxpc3QsIGl0ZXJhdG9yLCBzdGF0ZSwgZnVuY3Rpb24gaXRlcmF0b3JIYW5kbGVyKGVycm9yLCByZXN1bHQpXG4gIHtcbiAgICBpZiAoZXJyb3IpXG4gICAge1xuICAgICAgY2FsbGJhY2soZXJyb3IsIHJlc3VsdCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3RhdGUuaW5kZXgrKztcblxuICAgIC8vIGFyZSB3ZSB0aGVyZSB5ZXQ/XG4gICAgaWYgKHN0YXRlLmluZGV4IDwgKHN0YXRlWydrZXllZExpc3QnXSB8fCBsaXN0KS5sZW5ndGgpXG4gICAge1xuICAgICAgaXRlcmF0ZShsaXN0LCBpdGVyYXRvciwgc3RhdGUsIGl0ZXJhdG9ySGFuZGxlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZG9uZSBoZXJlXG4gICAgY2FsbGJhY2sobnVsbCwgc3RhdGUucmVzdWx0cyk7XG4gIH0pO1xuXG4gIHJldHVybiB0ZXJtaW5hdG9yLmJpbmQoc3RhdGUsIGNhbGxiYWNrKTtcbn1cblxuLypcbiAqIC0tIFNvcnQgbWV0aG9kc1xuICovXG5cbi8qKlxuICogc29ydCBoZWxwZXIgdG8gc29ydCBhcnJheSBlbGVtZW50cyBpbiBhc2NlbmRpbmcgb3JkZXJcbiAqXG4gKiBAcGFyYW0gICB7bWl4ZWR9IGEgLSBhbiBpdGVtIHRvIGNvbXBhcmVcbiAqIEBwYXJhbSAgIHttaXhlZH0gYiAtIGFuIGl0ZW0gdG8gY29tcGFyZVxuICogQHJldHVybnMge251bWJlcn0gLSBjb21wYXJpc29uIHJlc3VsdFxuICovXG5mdW5jdGlvbiBhc2NlbmRpbmcoYSwgYilcbntcbiAgcmV0dXJuIGEgPCBiID8gLTEgOiBhID4gYiA/IDEgOiAwO1xufVxuXG4vKipcbiAqIHNvcnQgaGVscGVyIHRvIHNvcnQgYXJyYXkgZWxlbWVudHMgaW4gZGVzY2VuZGluZyBvcmRlclxuICpcbiAqIEBwYXJhbSAgIHttaXhlZH0gYSAtIGFuIGl0ZW0gdG8gY29tcGFyZVxuICogQHBhcmFtICAge21peGVkfSBiIC0gYW4gaXRlbSB0byBjb21wYXJlXG4gKiBAcmV0dXJucyB7bnVtYmVyfSAtIGNvbXBhcmlzb24gcmVzdWx0XG4gKi9cbmZ1bmN0aW9uIGRlc2NlbmRpbmcoYSwgYilcbntcbiAgcmV0dXJuIC0xICogYXNjZW5kaW5nKGEsIGIpO1xufVxuIiwgInZhciBzZXJpYWxPcmRlcmVkID0gcmVxdWlyZSgnLi9zZXJpYWxPcmRlcmVkLmpzJyk7XG5cbi8vIFB1YmxpYyBBUElcbm1vZHVsZS5leHBvcnRzID0gc2VyaWFsO1xuXG4vKipcbiAqIFJ1bnMgaXRlcmF0b3Igb3ZlciBwcm92aWRlZCBhcnJheSBlbGVtZW50cyBpbiBzZXJpZXNcbiAqXG4gKiBAcGFyYW0gICB7YXJyYXl8b2JqZWN0fSBsaXN0IC0gYXJyYXkgb3Igb2JqZWN0IChuYW1lZCBsaXN0KSB0byBpdGVyYXRlIG92ZXJcbiAqIEBwYXJhbSAgIHtmdW5jdGlvbn0gaXRlcmF0b3IgLSBpdGVyYXRvciB0byBydW5cbiAqIEBwYXJhbSAgIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBpbnZva2VkIHdoZW4gYWxsIGVsZW1lbnRzIHByb2Nlc3NlZFxuICogQHJldHVybnMge2Z1bmN0aW9ufSAtIGpvYnMgdGVybWluYXRvclxuICovXG5mdW5jdGlvbiBzZXJpYWwobGlzdCwgaXRlcmF0b3IsIGNhbGxiYWNrKVxue1xuICByZXR1cm4gc2VyaWFsT3JkZXJlZChsaXN0LCBpdGVyYXRvciwgbnVsbCwgY2FsbGJhY2spO1xufVxuIiwgIm1vZHVsZS5leHBvcnRzID1cbntcbiAgcGFyYWxsZWwgICAgICA6IHJlcXVpcmUoJy4vcGFyYWxsZWwuanMnKSxcbiAgc2VyaWFsICAgICAgICA6IHJlcXVpcmUoJy4vc2VyaWFsLmpzJyksXG4gIHNlcmlhbE9yZGVyZWQgOiByZXF1aXJlKCcuL3NlcmlhbE9yZGVyZWQuanMnKVxufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdDtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IEVycm9yO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vZXZhbCcpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBFdmFsRXJyb3I7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9yYW5nZScpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBSYW5nZUVycm9yO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vcmVmJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IFJlZmVyZW5jZUVycm9yO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vc3ludGF4Jyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IFN5bnRheEVycm9yO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vdHlwZScpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBUeXBlRXJyb3I7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi91cmknKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gVVJJRXJyb3I7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9hYnMnKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gTWF0aC5hYnM7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9mbG9vcicpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBNYXRoLmZsb29yO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vbWF4Jyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IE1hdGgubWF4O1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vbWluJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IE1hdGgubWluO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vcG93Jyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IE1hdGgucG93O1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vcm91bmQnKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gTWF0aC5yb3VuZDtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2lzTmFOJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBpc05hTihhKSB7XG5cdHJldHVybiBhICE9PSBhO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciAkaXNOYU4gPSByZXF1aXJlKCcuL2lzTmFOJyk7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL3NpZ24nKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gc2lnbihudW1iZXIpIHtcblx0aWYgKCRpc05hTihudW1iZXIpIHx8IG51bWJlciA9PT0gMCkge1xuXHRcdHJldHVybiBudW1iZXI7XG5cdH1cblx0cmV0dXJuIG51bWJlciA8IDAgPyAtMSA6ICsxO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2dPUEQnKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuJyl9ICovXG52YXIgJGdPUEQgPSByZXF1aXJlKCcuL2dPUEQnKTtcblxuaWYgKCRnT1BEKSB7XG5cdHRyeSB7XG5cdFx0JGdPUEQoW10sICdsZW5ndGgnKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdC8vIElFIDggaGFzIGEgYnJva2VuIGdPUERcblx0XHQkZ09QRCA9IG51bGw7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSAkZ09QRDtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuJyl9ICovXG52YXIgJGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5IHx8IGZhbHNlO1xuaWYgKCRkZWZpbmVQcm9wZXJ0eSkge1xuXHR0cnkge1xuXHRcdCRkZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7IHZhbHVlOiAxIH0pO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0Ly8gSUUgOCBoYXMgYSBicm9rZW4gZGVmaW5lUHJvcGVydHlcblx0XHQkZGVmaW5lUHJvcGVydHkgPSBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9ICRkZWZpbmVQcm9wZXJ0eTtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL3NoYW1zJyl9ICovXG4vKiBlc2xpbnQgY29tcGxleGl0eTogWzIsIDE4XSwgbWF4LXN0YXRlbWVudHM6IFsyLCAzM10gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaGFzU3ltYm9scygpIHtcblx0aWYgKHR5cGVvZiBTeW1ib2wgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgIT09ICdmdW5jdGlvbicpIHsgcmV0dXJuIGZhbHNlOyB9XG5cdGlmICh0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSAnc3ltYm9sJykgeyByZXR1cm4gdHJ1ZTsgfVxuXG5cdC8qKiBAdHlwZSB7eyBbayBpbiBzeW1ib2xdPzogdW5rbm93biB9fSAqL1xuXHR2YXIgb2JqID0ge307XG5cdHZhciBzeW0gPSBTeW1ib2woJ3Rlc3QnKTtcblx0dmFyIHN5bU9iaiA9IE9iamVjdChzeW0pO1xuXHRpZiAodHlwZW9mIHN5bSA9PT0gJ3N0cmluZycpIHsgcmV0dXJuIGZhbHNlOyB9XG5cblx0aWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzeW0pICE9PSAnW29iamVjdCBTeW1ib2xdJykgeyByZXR1cm4gZmFsc2U7IH1cblx0aWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzeW1PYmopICE9PSAnW29iamVjdCBTeW1ib2xdJykgeyByZXR1cm4gZmFsc2U7IH1cblxuXHQvLyB0ZW1wIGRpc2FibGVkIHBlciBodHRwczovL2dpdGh1Yi5jb20vbGpoYXJiL29iamVjdC5hc3NpZ24vaXNzdWVzLzE3XG5cdC8vIGlmIChzeW0gaW5zdGFuY2VvZiBTeW1ib2wpIHsgcmV0dXJuIGZhbHNlOyB9XG5cdC8vIHRlbXAgZGlzYWJsZWQgcGVyIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJSZWZsZWN0aW9uL2dldC1vd24tcHJvcGVydHktc3ltYm9scy9pc3N1ZXMvNFxuXHQvLyBpZiAoIShzeW1PYmogaW5zdGFuY2VvZiBTeW1ib2wpKSB7IHJldHVybiBmYWxzZTsgfVxuXG5cdC8vIGlmICh0eXBlb2YgU3ltYm9sLnByb3RvdHlwZS50b1N0cmluZyAhPT0gJ2Z1bmN0aW9uJykgeyByZXR1cm4gZmFsc2U7IH1cblx0Ly8gaWYgKFN0cmluZyhzeW0pICE9PSBTeW1ib2wucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoc3ltKSkgeyByZXR1cm4gZmFsc2U7IH1cblxuXHR2YXIgc3ltVmFsID0gNDI7XG5cdG9ialtzeW1dID0gc3ltVmFsO1xuXHRmb3IgKHZhciBfIGluIG9iaikgeyByZXR1cm4gZmFsc2U7IH0gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheCwgbm8tdW5yZWFjaGFibGUtbG9vcFxuXHRpZiAodHlwZW9mIE9iamVjdC5rZXlzID09PSAnZnVuY3Rpb24nICYmIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoICE9PSAwKSB7IHJldHVybiBmYWxzZTsgfVxuXG5cdGlmICh0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgPT09ICdmdW5jdGlvbicgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5sZW5ndGggIT09IDApIHsgcmV0dXJuIGZhbHNlOyB9XG5cblx0dmFyIHN5bXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iaik7XG5cdGlmIChzeW1zLmxlbmd0aCAhPT0gMSB8fCBzeW1zWzBdICE9PSBzeW0pIHsgcmV0dXJuIGZhbHNlOyB9XG5cblx0aWYgKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwob2JqLCBzeW0pKSB7IHJldHVybiBmYWxzZTsgfVxuXG5cdGlmICh0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1leHRyYS1wYXJlbnNcblx0XHR2YXIgZGVzY3JpcHRvciA9IC8qKiBAdHlwZSB7UHJvcGVydHlEZXNjcmlwdG9yfSAqLyAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIHN5bSkpO1xuXHRcdGlmIChkZXNjcmlwdG9yLnZhbHVlICE9PSBzeW1WYWwgfHwgZGVzY3JpcHRvci5lbnVtZXJhYmxlICE9PSB0cnVlKSB7IHJldHVybiBmYWxzZTsgfVxuXHR9XG5cblx0cmV0dXJuIHRydWU7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG9yaWdTeW1ib2wgPSB0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2w7XG52YXIgaGFzU3ltYm9sU2hhbSA9IHJlcXVpcmUoJy4vc2hhbXMnKTtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4nKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaGFzTmF0aXZlU3ltYm9scygpIHtcblx0aWYgKHR5cGVvZiBvcmlnU3ltYm9sICE9PSAnZnVuY3Rpb24nKSB7IHJldHVybiBmYWxzZTsgfVxuXHRpZiAodHlwZW9mIFN5bWJvbCAhPT0gJ2Z1bmN0aW9uJykgeyByZXR1cm4gZmFsc2U7IH1cblx0aWYgKHR5cGVvZiBvcmlnU3ltYm9sKCdmb28nKSAhPT0gJ3N5bWJvbCcpIHsgcmV0dXJuIGZhbHNlOyB9XG5cdGlmICh0eXBlb2YgU3ltYm9sKCdiYXInKSAhPT0gJ3N5bWJvbCcpIHsgcmV0dXJuIGZhbHNlOyB9XG5cblx0cmV0dXJuIGhhc1N5bWJvbFNoYW0oKTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9SZWZsZWN0LmdldFByb3RvdHlwZU9mJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9ICh0eXBlb2YgUmVmbGVjdCAhPT0gJ3VuZGVmaW5lZCcgJiYgUmVmbGVjdC5nZXRQcm90b3R5cGVPZikgfHwgbnVsbDtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciAkT2JqZWN0ID0gcmVxdWlyZSgnZXMtb2JqZWN0LWF0b21zJyk7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL09iamVjdC5nZXRQcm90b3R5cGVPZicpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSAkT2JqZWN0LmdldFByb3RvdHlwZU9mIHx8IG51bGw7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiBlc2xpbnQgbm8taW52YWxpZC10aGlzOiAxICovXG5cbnZhciBFUlJPUl9NRVNTQUdFID0gJ0Z1bmN0aW9uLnByb3RvdHlwZS5iaW5kIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgJztcbnZhciB0b1N0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgZnVuY1R5cGUgPSAnW29iamVjdCBGdW5jdGlvbl0nO1xuXG52YXIgY29uY2F0dHkgPSBmdW5jdGlvbiBjb25jYXR0eShhLCBiKSB7XG4gICAgdmFyIGFyciA9IFtdO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGFycltpXSA9IGFbaV07XG4gICAgfVxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgYi5sZW5ndGg7IGogKz0gMSkge1xuICAgICAgICBhcnJbaiArIGEubGVuZ3RoXSA9IGJbal07XG4gICAgfVxuXG4gICAgcmV0dXJuIGFycjtcbn07XG5cbnZhciBzbGljeSA9IGZ1bmN0aW9uIHNsaWN5KGFyckxpa2UsIG9mZnNldCkge1xuICAgIHZhciBhcnIgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gb2Zmc2V0IHx8IDAsIGogPSAwOyBpIDwgYXJyTGlrZS5sZW5ndGg7IGkgKz0gMSwgaiArPSAxKSB7XG4gICAgICAgIGFycltqXSA9IGFyckxpa2VbaV07XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG59O1xuXG52YXIgam9pbnkgPSBmdW5jdGlvbiAoYXJyLCBqb2luZXIpIHtcbiAgICB2YXIgc3RyID0gJyc7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgc3RyICs9IGFycltpXTtcbiAgICAgICAgaWYgKGkgKyAxIDwgYXJyLmxlbmd0aCkge1xuICAgICAgICAgICAgc3RyICs9IGpvaW5lcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3RyO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBiaW5kKHRoYXQpIHtcbiAgICB2YXIgdGFyZ2V0ID0gdGhpcztcbiAgICBpZiAodHlwZW9mIHRhcmdldCAhPT0gJ2Z1bmN0aW9uJyB8fCB0b1N0ci5hcHBseSh0YXJnZXQpICE9PSBmdW5jVHlwZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEVSUk9SX01FU1NBR0UgKyB0YXJnZXQpO1xuICAgIH1cbiAgICB2YXIgYXJncyA9IHNsaWN5KGFyZ3VtZW50cywgMSk7XG5cbiAgICB2YXIgYm91bmQ7XG4gICAgdmFyIGJpbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBib3VuZCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRhcmdldC5hcHBseShcbiAgICAgICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgICAgIGNvbmNhdHR5KGFyZ3MsIGFyZ3VtZW50cylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoT2JqZWN0KHJlc3VsdCkgPT09IHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFyZ2V0LmFwcGx5KFxuICAgICAgICAgICAgdGhhdCxcbiAgICAgICAgICAgIGNvbmNhdHR5KGFyZ3MsIGFyZ3VtZW50cylcbiAgICAgICAgKTtcblxuICAgIH07XG5cbiAgICB2YXIgYm91bmRMZW5ndGggPSBtYXgoMCwgdGFyZ2V0Lmxlbmd0aCAtIGFyZ3MubGVuZ3RoKTtcbiAgICB2YXIgYm91bmRBcmdzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib3VuZExlbmd0aDsgaSsrKSB7XG4gICAgICAgIGJvdW5kQXJnc1tpXSA9ICckJyArIGk7XG4gICAgfVxuXG4gICAgYm91bmQgPSBGdW5jdGlvbignYmluZGVyJywgJ3JldHVybiBmdW5jdGlvbiAoJyArIGpvaW55KGJvdW5kQXJncywgJywnKSArICcpeyByZXR1cm4gYmluZGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTsgfScpKGJpbmRlcik7XG5cbiAgICBpZiAodGFyZ2V0LnByb3RvdHlwZSkge1xuICAgICAgICB2YXIgRW1wdHkgPSBmdW5jdGlvbiBFbXB0eSgpIHt9O1xuICAgICAgICBFbXB0eS5wcm90b3R5cGUgPSB0YXJnZXQucHJvdG90eXBlO1xuICAgICAgICBib3VuZC5wcm90b3R5cGUgPSBuZXcgRW1wdHkoKTtcbiAgICAgICAgRW1wdHkucHJvdG90eXBlID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gYm91bmQ7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGltcGxlbWVudGF0aW9uID0gcmVxdWlyZSgnLi9pbXBsZW1lbnRhdGlvbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kIHx8IGltcGxlbWVudGF0aW9uO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vZnVuY3Rpb25DYWxsJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vZnVuY3Rpb25BcHBseScpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9yZWZsZWN0QXBwbHknKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gdHlwZW9mIFJlZmxlY3QgIT09ICd1bmRlZmluZWQnICYmIFJlZmxlY3QgJiYgUmVmbGVjdC5hcHBseTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBiaW5kID0gcmVxdWlyZSgnZnVuY3Rpb24tYmluZCcpO1xuXG52YXIgJGFwcGx5ID0gcmVxdWlyZSgnLi9mdW5jdGlvbkFwcGx5Jyk7XG52YXIgJGNhbGwgPSByZXF1aXJlKCcuL2Z1bmN0aW9uQ2FsbCcpO1xudmFyICRyZWZsZWN0QXBwbHkgPSByZXF1aXJlKCcuL3JlZmxlY3RBcHBseScpO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9hY3R1YWxBcHBseScpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSAkcmVmbGVjdEFwcGx5IHx8IGJpbmQuY2FsbCgkY2FsbCwgJGFwcGx5KTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBiaW5kID0gcmVxdWlyZSgnZnVuY3Rpb24tYmluZCcpO1xudmFyICRUeXBlRXJyb3IgPSByZXF1aXJlKCdlcy1lcnJvcnMvdHlwZScpO1xuXG52YXIgJGNhbGwgPSByZXF1aXJlKCcuL2Z1bmN0aW9uQ2FsbCcpO1xudmFyICRhY3R1YWxBcHBseSA9IHJlcXVpcmUoJy4vYWN0dWFsQXBwbHknKTtcblxuLyoqIEB0eXBlIHsoYXJnczogW0Z1bmN0aW9uLCB0aGlzQXJnPzogdW5rbm93biwgLi4uYXJnczogdW5rbm93bltdXSkgPT4gRnVuY3Rpb259IFRPRE8gRklYTUUsIGZpbmQgYSB3YXkgdG8gdXNlIGltcG9ydCgnLicpICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNhbGxCaW5kQmFzaWMoYXJncykge1xuXHRpZiAoYXJncy5sZW5ndGggPCAxIHx8IHR5cGVvZiBhcmdzWzBdICE9PSAnZnVuY3Rpb24nKSB7XG5cdFx0dGhyb3cgbmV3ICRUeXBlRXJyb3IoJ2EgZnVuY3Rpb24gaXMgcmVxdWlyZWQnKTtcblx0fVxuXHRyZXR1cm4gJGFjdHVhbEFwcGx5KGJpbmQsICRjYWxsLCBhcmdzKTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2FsbEJpbmQgPSByZXF1aXJlKCdjYWxsLWJpbmQtYXBwbHktaGVscGVycycpO1xudmFyIGdPUEQgPSByZXF1aXJlKCdnb3BkJyk7XG5cbnZhciBoYXNQcm90b0FjY2Vzc29yO1xudHJ5IHtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV4dHJhLXBhcmVucywgbm8tcHJvdG9cblx0aGFzUHJvdG9BY2Nlc3NvciA9IC8qKiBAdHlwZSB7eyBfX3Byb3RvX18/OiB0eXBlb2YgQXJyYXkucHJvdG90eXBlIH19ICovIChbXSkuX19wcm90b19fID09PSBBcnJheS5wcm90b3R5cGU7XG59IGNhdGNoIChlKSB7XG5cdGlmICghZSB8fCB0eXBlb2YgZSAhPT0gJ29iamVjdCcgfHwgISgnY29kZScgaW4gZSkgfHwgZS5jb2RlICE9PSAnRVJSX1BST1RPX0FDQ0VTUycpIHtcblx0XHR0aHJvdyBlO1xuXHR9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1leHRyYS1wYXJlbnNcbnZhciBkZXNjID0gISFoYXNQcm90b0FjY2Vzc29yICYmIGdPUEQgJiYgZ09QRChPYmplY3QucHJvdG90eXBlLCAvKiogQHR5cGUge2tleW9mIHR5cGVvZiBPYmplY3QucHJvdG90eXBlfSAqLyAoJ19fcHJvdG9fXycpKTtcblxudmFyICRPYmplY3QgPSBPYmplY3Q7XG52YXIgJGdldFByb3RvdHlwZU9mID0gJE9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vZ2V0Jyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IGRlc2MgJiYgdHlwZW9mIGRlc2MuZ2V0ID09PSAnZnVuY3Rpb24nXG5cdD8gY2FsbEJpbmQoW2Rlc2MuZ2V0XSlcblx0OiB0eXBlb2YgJGdldFByb3RvdHlwZU9mID09PSAnZnVuY3Rpb24nXG5cdFx0PyAvKiogQHR5cGUge2ltcG9ydCgnLi9nZXQnKX0gKi8gZnVuY3Rpb24gZ2V0RHVuZGVyKHZhbHVlKSB7XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdFx0XHRyZXR1cm4gJGdldFByb3RvdHlwZU9mKHZhbHVlID09IG51bGwgPyB2YWx1ZSA6ICRPYmplY3QodmFsdWUpKTtcblx0XHR9XG5cdFx0OiBmYWxzZTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciByZWZsZWN0R2V0UHJvdG8gPSByZXF1aXJlKCcuL1JlZmxlY3QuZ2V0UHJvdG90eXBlT2YnKTtcbnZhciBvcmlnaW5hbEdldFByb3RvID0gcmVxdWlyZSgnLi9PYmplY3QuZ2V0UHJvdG90eXBlT2YnKTtcblxudmFyIGdldER1bmRlclByb3RvID0gcmVxdWlyZSgnZHVuZGVyLXByb3RvL2dldCcpO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLicpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSByZWZsZWN0R2V0UHJvdG9cblx0PyBmdW5jdGlvbiBnZXRQcm90byhPKSB7XG5cdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciBUUyBjYW4ndCBuYXJyb3cgaW5zaWRlIGEgY2xvc3VyZSwgZm9yIHNvbWUgcmVhc29uXG5cdFx0cmV0dXJuIHJlZmxlY3RHZXRQcm90byhPKTtcblx0fVxuXHQ6IG9yaWdpbmFsR2V0UHJvdG9cblx0XHQ/IGZ1bmN0aW9uIGdldFByb3RvKE8pIHtcblx0XHRcdGlmICghTyB8fCAodHlwZW9mIE8gIT09ICdvYmplY3QnICYmIHR5cGVvZiBPICE9PSAnZnVuY3Rpb24nKSkge1xuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdnZXRQcm90bzogbm90IGFuIG9iamVjdCcpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciBUUyBjYW4ndCBuYXJyb3cgaW5zaWRlIGEgY2xvc3VyZSwgZm9yIHNvbWUgcmVhc29uXG5cdFx0XHRyZXR1cm4gb3JpZ2luYWxHZXRQcm90byhPKTtcblx0XHR9XG5cdFx0OiBnZXREdW5kZXJQcm90b1xuXHRcdFx0PyBmdW5jdGlvbiBnZXRQcm90byhPKSB7XG5cdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgVFMgY2FuJ3QgbmFycm93IGluc2lkZSBhIGNsb3N1cmUsIGZvciBzb21lIHJlYXNvblxuXHRcdFx0XHRyZXR1cm4gZ2V0RHVuZGVyUHJvdG8oTyk7XG5cdFx0XHR9XG5cdFx0XHQ6IG51bGw7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2FsbCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO1xudmFyICRoYXNPd24gPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIGJpbmQgPSByZXF1aXJlKCdmdW5jdGlvbi1iaW5kJyk7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IGJpbmQuY2FsbChjYWxsLCAkaGFzT3duKTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciB1bmRlZmluZWQ7XG5cbnZhciAkT2JqZWN0ID0gcmVxdWlyZSgnZXMtb2JqZWN0LWF0b21zJyk7XG5cbnZhciAkRXJyb3IgPSByZXF1aXJlKCdlcy1lcnJvcnMnKTtcbnZhciAkRXZhbEVycm9yID0gcmVxdWlyZSgnZXMtZXJyb3JzL2V2YWwnKTtcbnZhciAkUmFuZ2VFcnJvciA9IHJlcXVpcmUoJ2VzLWVycm9ycy9yYW5nZScpO1xudmFyICRSZWZlcmVuY2VFcnJvciA9IHJlcXVpcmUoJ2VzLWVycm9ycy9yZWYnKTtcbnZhciAkU3ludGF4RXJyb3IgPSByZXF1aXJlKCdlcy1lcnJvcnMvc3ludGF4Jyk7XG52YXIgJFR5cGVFcnJvciA9IHJlcXVpcmUoJ2VzLWVycm9ycy90eXBlJyk7XG52YXIgJFVSSUVycm9yID0gcmVxdWlyZSgnZXMtZXJyb3JzL3VyaScpO1xuXG52YXIgYWJzID0gcmVxdWlyZSgnbWF0aC1pbnRyaW5zaWNzL2FicycpO1xudmFyIGZsb29yID0gcmVxdWlyZSgnbWF0aC1pbnRyaW5zaWNzL2Zsb29yJyk7XG52YXIgbWF4ID0gcmVxdWlyZSgnbWF0aC1pbnRyaW5zaWNzL21heCcpO1xudmFyIG1pbiA9IHJlcXVpcmUoJ21hdGgtaW50cmluc2ljcy9taW4nKTtcbnZhciBwb3cgPSByZXF1aXJlKCdtYXRoLWludHJpbnNpY3MvcG93Jyk7XG52YXIgcm91bmQgPSByZXF1aXJlKCdtYXRoLWludHJpbnNpY3Mvcm91bmQnKTtcbnZhciBzaWduID0gcmVxdWlyZSgnbWF0aC1pbnRyaW5zaWNzL3NpZ24nKTtcblxudmFyICRGdW5jdGlvbiA9IEZ1bmN0aW9uO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29uc2lzdGVudC1yZXR1cm5cbnZhciBnZXRFdmFsbGVkQ29uc3RydWN0b3IgPSBmdW5jdGlvbiAoZXhwcmVzc2lvblN5bnRheCkge1xuXHR0cnkge1xuXHRcdHJldHVybiAkRnVuY3Rpb24oJ1widXNlIHN0cmljdFwiOyByZXR1cm4gKCcgKyBleHByZXNzaW9uU3ludGF4ICsgJykuY29uc3RydWN0b3I7JykoKTtcblx0fSBjYXRjaCAoZSkge31cbn07XG5cbnZhciAkZ09QRCA9IHJlcXVpcmUoJ2dvcGQnKTtcbnZhciAkZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCdlcy1kZWZpbmUtcHJvcGVydHknKTtcblxudmFyIHRocm93VHlwZUVycm9yID0gZnVuY3Rpb24gKCkge1xuXHR0aHJvdyBuZXcgJFR5cGVFcnJvcigpO1xufTtcbnZhciBUaHJvd1R5cGVFcnJvciA9ICRnT1BEXG5cdD8gKGZ1bmN0aW9uICgpIHtcblx0XHR0cnkge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC1leHByZXNzaW9ucywgbm8tY2FsbGVyLCBuby1yZXN0cmljdGVkLXByb3BlcnRpZXNcblx0XHRcdGFyZ3VtZW50cy5jYWxsZWU7IC8vIElFIDggZG9lcyBub3QgdGhyb3cgaGVyZVxuXHRcdFx0cmV0dXJuIHRocm93VHlwZUVycm9yO1xuXHRcdH0gY2F0Y2ggKGNhbGxlZVRocm93cykge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Ly8gSUUgOCB0aHJvd3Mgb24gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhcmd1bWVudHMsICcnKVxuXHRcdFx0XHRyZXR1cm4gJGdPUEQoYXJndW1lbnRzLCAnY2FsbGVlJykuZ2V0O1xuXHRcdFx0fSBjYXRjaCAoZ09QRHRocm93cykge1xuXHRcdFx0XHRyZXR1cm4gdGhyb3dUeXBlRXJyb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KCkpXG5cdDogdGhyb3dUeXBlRXJyb3I7XG5cbnZhciBoYXNTeW1ib2xzID0gcmVxdWlyZSgnaGFzLXN5bWJvbHMnKSgpO1xuXG52YXIgZ2V0UHJvdG8gPSByZXF1aXJlKCdnZXQtcHJvdG8nKTtcbnZhciAkT2JqZWN0R1BPID0gcmVxdWlyZSgnZ2V0LXByb3RvL09iamVjdC5nZXRQcm90b3R5cGVPZicpO1xudmFyICRSZWZsZWN0R1BPID0gcmVxdWlyZSgnZ2V0LXByb3RvL1JlZmxlY3QuZ2V0UHJvdG90eXBlT2YnKTtcblxudmFyICRhcHBseSA9IHJlcXVpcmUoJ2NhbGwtYmluZC1hcHBseS1oZWxwZXJzL2Z1bmN0aW9uQXBwbHknKTtcbnZhciAkY2FsbCA9IHJlcXVpcmUoJ2NhbGwtYmluZC1hcHBseS1oZWxwZXJzL2Z1bmN0aW9uQ2FsbCcpO1xuXG52YXIgbmVlZHNFdmFsID0ge307XG5cbnZhciBUeXBlZEFycmF5ID0gdHlwZW9mIFVpbnQ4QXJyYXkgPT09ICd1bmRlZmluZWQnIHx8ICFnZXRQcm90byA/IHVuZGVmaW5lZCA6IGdldFByb3RvKFVpbnQ4QXJyYXkpO1xuXG52YXIgSU5UUklOU0lDUyA9IHtcblx0X19wcm90b19fOiBudWxsLFxuXHQnJUFnZ3JlZ2F0ZUVycm9yJSc6IHR5cGVvZiBBZ2dyZWdhdGVFcnJvciA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBBZ2dyZWdhdGVFcnJvcixcblx0JyVBcnJheSUnOiBBcnJheSxcblx0JyVBcnJheUJ1ZmZlciUnOiB0eXBlb2YgQXJyYXlCdWZmZXIgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogQXJyYXlCdWZmZXIsXG5cdCclQXJyYXlJdGVyYXRvclByb3RvdHlwZSUnOiBoYXNTeW1ib2xzICYmIGdldFByb3RvID8gZ2V0UHJvdG8oW11bU3ltYm9sLml0ZXJhdG9yXSgpKSA6IHVuZGVmaW5lZCxcblx0JyVBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUlJzogdW5kZWZpbmVkLFxuXHQnJUFzeW5jRnVuY3Rpb24lJzogbmVlZHNFdmFsLFxuXHQnJUFzeW5jR2VuZXJhdG9yJSc6IG5lZWRzRXZhbCxcblx0JyVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJSc6IG5lZWRzRXZhbCxcblx0JyVBc3luY0l0ZXJhdG9yUHJvdG90eXBlJSc6IG5lZWRzRXZhbCxcblx0JyVBdG9taWNzJSc6IHR5cGVvZiBBdG9taWNzID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IEF0b21pY3MsXG5cdCclQmlnSW50JSc6IHR5cGVvZiBCaWdJbnQgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogQmlnSW50LFxuXHQnJUJpZ0ludDY0QXJyYXklJzogdHlwZW9mIEJpZ0ludDY0QXJyYXkgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogQmlnSW50NjRBcnJheSxcblx0JyVCaWdVaW50NjRBcnJheSUnOiB0eXBlb2YgQmlnVWludDY0QXJyYXkgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogQmlnVWludDY0QXJyYXksXG5cdCclQm9vbGVhbiUnOiBCb29sZWFuLFxuXHQnJURhdGFWaWV3JSc6IHR5cGVvZiBEYXRhVmlldyA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBEYXRhVmlldyxcblx0JyVEYXRlJSc6IERhdGUsXG5cdCclZGVjb2RlVVJJJSc6IGRlY29kZVVSSSxcblx0JyVkZWNvZGVVUklDb21wb25lbnQlJzogZGVjb2RlVVJJQ29tcG9uZW50LFxuXHQnJWVuY29kZVVSSSUnOiBlbmNvZGVVUkksXG5cdCclZW5jb2RlVVJJQ29tcG9uZW50JSc6IGVuY29kZVVSSUNvbXBvbmVudCxcblx0JyVFcnJvciUnOiAkRXJyb3IsXG5cdCclZXZhbCUnOiBldmFsLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWV2YWxcblx0JyVFdmFsRXJyb3IlJzogJEV2YWxFcnJvcixcblx0JyVGbG9hdDE2QXJyYXklJzogdHlwZW9mIEZsb2F0MTZBcnJheSA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBGbG9hdDE2QXJyYXksXG5cdCclRmxvYXQzMkFycmF5JSc6IHR5cGVvZiBGbG9hdDMyQXJyYXkgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogRmxvYXQzMkFycmF5LFxuXHQnJUZsb2F0NjRBcnJheSUnOiB0eXBlb2YgRmxvYXQ2NEFycmF5ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IEZsb2F0NjRBcnJheSxcblx0JyVGaW5hbGl6YXRpb25SZWdpc3RyeSUnOiB0eXBlb2YgRmluYWxpemF0aW9uUmVnaXN0cnkgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogRmluYWxpemF0aW9uUmVnaXN0cnksXG5cdCclRnVuY3Rpb24lJzogJEZ1bmN0aW9uLFxuXHQnJUdlbmVyYXRvckZ1bmN0aW9uJSc6IG5lZWRzRXZhbCxcblx0JyVJbnQ4QXJyYXklJzogdHlwZW9mIEludDhBcnJheSA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBJbnQ4QXJyYXksXG5cdCclSW50MTZBcnJheSUnOiB0eXBlb2YgSW50MTZBcnJheSA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBJbnQxNkFycmF5LFxuXHQnJUludDMyQXJyYXklJzogdHlwZW9mIEludDMyQXJyYXkgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogSW50MzJBcnJheSxcblx0JyVpc0Zpbml0ZSUnOiBpc0Zpbml0ZSxcblx0JyVpc05hTiUnOiBpc05hTixcblx0JyVJdGVyYXRvclByb3RvdHlwZSUnOiBoYXNTeW1ib2xzICYmIGdldFByb3RvID8gZ2V0UHJvdG8oZ2V0UHJvdG8oW11bU3ltYm9sLml0ZXJhdG9yXSgpKSkgOiB1bmRlZmluZWQsXG5cdCclSlNPTiUnOiB0eXBlb2YgSlNPTiA9PT0gJ29iamVjdCcgPyBKU09OIDogdW5kZWZpbmVkLFxuXHQnJU1hcCUnOiB0eXBlb2YgTWFwID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IE1hcCxcblx0JyVNYXBJdGVyYXRvclByb3RvdHlwZSUnOiB0eXBlb2YgTWFwID09PSAndW5kZWZpbmVkJyB8fCAhaGFzU3ltYm9scyB8fCAhZ2V0UHJvdG8gPyB1bmRlZmluZWQgOiBnZXRQcm90byhuZXcgTWFwKClbU3ltYm9sLml0ZXJhdG9yXSgpKSxcblx0JyVNYXRoJSc6IE1hdGgsXG5cdCclTnVtYmVyJSc6IE51bWJlcixcblx0JyVPYmplY3QlJzogJE9iamVjdCxcblx0JyVPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yJSc6ICRnT1BELFxuXHQnJXBhcnNlRmxvYXQlJzogcGFyc2VGbG9hdCxcblx0JyVwYXJzZUludCUnOiBwYXJzZUludCxcblx0JyVQcm9taXNlJSc6IHR5cGVvZiBQcm9taXNlID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFByb21pc2UsXG5cdCclUHJveHklJzogdHlwZW9mIFByb3h5ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFByb3h5LFxuXHQnJVJhbmdlRXJyb3IlJzogJFJhbmdlRXJyb3IsXG5cdCclUmVmZXJlbmNlRXJyb3IlJzogJFJlZmVyZW5jZUVycm9yLFxuXHQnJVJlZmxlY3QlJzogdHlwZW9mIFJlZmxlY3QgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogUmVmbGVjdCxcblx0JyVSZWdFeHAlJzogUmVnRXhwLFxuXHQnJVNldCUnOiB0eXBlb2YgU2V0ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFNldCxcblx0JyVTZXRJdGVyYXRvclByb3RvdHlwZSUnOiB0eXBlb2YgU2V0ID09PSAndW5kZWZpbmVkJyB8fCAhaGFzU3ltYm9scyB8fCAhZ2V0UHJvdG8gPyB1bmRlZmluZWQgOiBnZXRQcm90byhuZXcgU2V0KClbU3ltYm9sLml0ZXJhdG9yXSgpKSxcblx0JyVTaGFyZWRBcnJheUJ1ZmZlciUnOiB0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXIgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogU2hhcmVkQXJyYXlCdWZmZXIsXG5cdCclU3RyaW5nJSc6IFN0cmluZyxcblx0JyVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSUnOiBoYXNTeW1ib2xzICYmIGdldFByb3RvID8gZ2V0UHJvdG8oJydbU3ltYm9sLml0ZXJhdG9yXSgpKSA6IHVuZGVmaW5lZCxcblx0JyVTeW1ib2wlJzogaGFzU3ltYm9scyA/IFN5bWJvbCA6IHVuZGVmaW5lZCxcblx0JyVTeW50YXhFcnJvciUnOiAkU3ludGF4RXJyb3IsXG5cdCclVGhyb3dUeXBlRXJyb3IlJzogVGhyb3dUeXBlRXJyb3IsXG5cdCclVHlwZWRBcnJheSUnOiBUeXBlZEFycmF5LFxuXHQnJVR5cGVFcnJvciUnOiAkVHlwZUVycm9yLFxuXHQnJVVpbnQ4QXJyYXklJzogdHlwZW9mIFVpbnQ4QXJyYXkgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogVWludDhBcnJheSxcblx0JyVVaW50OENsYW1wZWRBcnJheSUnOiB0eXBlb2YgVWludDhDbGFtcGVkQXJyYXkgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogVWludDhDbGFtcGVkQXJyYXksXG5cdCclVWludDE2QXJyYXklJzogdHlwZW9mIFVpbnQxNkFycmF5ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFVpbnQxNkFycmF5LFxuXHQnJVVpbnQzMkFycmF5JSc6IHR5cGVvZiBVaW50MzJBcnJheSA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBVaW50MzJBcnJheSxcblx0JyVVUklFcnJvciUnOiAkVVJJRXJyb3IsXG5cdCclV2Vha01hcCUnOiB0eXBlb2YgV2Vha01hcCA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBXZWFrTWFwLFxuXHQnJVdlYWtSZWYlJzogdHlwZW9mIFdlYWtSZWYgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogV2Vha1JlZixcblx0JyVXZWFrU2V0JSc6IHR5cGVvZiBXZWFrU2V0ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFdlYWtTZXQsXG5cblx0JyVGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCUnOiAkY2FsbCxcblx0JyVGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHklJzogJGFwcGx5LFxuXHQnJU9iamVjdC5kZWZpbmVQcm9wZXJ0eSUnOiAkZGVmaW5lUHJvcGVydHksXG5cdCclT2JqZWN0LmdldFByb3RvdHlwZU9mJSc6ICRPYmplY3RHUE8sXG5cdCclTWF0aC5hYnMlJzogYWJzLFxuXHQnJU1hdGguZmxvb3IlJzogZmxvb3IsXG5cdCclTWF0aC5tYXglJzogbWF4LFxuXHQnJU1hdGgubWluJSc6IG1pbixcblx0JyVNYXRoLnBvdyUnOiBwb3csXG5cdCclTWF0aC5yb3VuZCUnOiByb3VuZCxcblx0JyVNYXRoLnNpZ24lJzogc2lnbixcblx0JyVSZWZsZWN0LmdldFByb3RvdHlwZU9mJSc6ICRSZWZsZWN0R1BPXG59O1xuXG5pZiAoZ2V0UHJvdG8pIHtcblx0dHJ5IHtcblx0XHRudWxsLmVycm9yOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC1leHByZXNzaW9uc1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtc2hhZG93cmVhbG0vcHVsbC8zODQjaXNzdWVjb21tZW50LTEzNjQyNjQyMjlcblx0XHR2YXIgZXJyb3JQcm90byA9IGdldFByb3RvKGdldFByb3RvKGUpKTtcblx0XHRJTlRSSU5TSUNTWyclRXJyb3IucHJvdG90eXBlJSddID0gZXJyb3JQcm90bztcblx0fVxufVxuXG52YXIgZG9FdmFsID0gZnVuY3Rpb24gZG9FdmFsKG5hbWUpIHtcblx0dmFyIHZhbHVlO1xuXHRpZiAobmFtZSA9PT0gJyVBc3luY0Z1bmN0aW9uJScpIHtcblx0XHR2YWx1ZSA9IGdldEV2YWxsZWRDb25zdHJ1Y3RvcignYXN5bmMgZnVuY3Rpb24gKCkge30nKTtcblx0fSBlbHNlIGlmIChuYW1lID09PSAnJUdlbmVyYXRvckZ1bmN0aW9uJScpIHtcblx0XHR2YWx1ZSA9IGdldEV2YWxsZWRDb25zdHJ1Y3RvcignZnVuY3Rpb24qICgpIHt9Jyk7XG5cdH0gZWxzZSBpZiAobmFtZSA9PT0gJyVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJScpIHtcblx0XHR2YWx1ZSA9IGdldEV2YWxsZWRDb25zdHJ1Y3RvcignYXN5bmMgZnVuY3Rpb24qICgpIHt9Jyk7XG5cdH0gZWxzZSBpZiAobmFtZSA9PT0gJyVBc3luY0dlbmVyYXRvciUnKSB7XG5cdFx0dmFyIGZuID0gZG9FdmFsKCclQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiUnKTtcblx0XHRpZiAoZm4pIHtcblx0XHRcdHZhbHVlID0gZm4ucHJvdG90eXBlO1xuXHRcdH1cblx0fSBlbHNlIGlmIChuYW1lID09PSAnJUFzeW5jSXRlcmF0b3JQcm90b3R5cGUlJykge1xuXHRcdHZhciBnZW4gPSBkb0V2YWwoJyVBc3luY0dlbmVyYXRvciUnKTtcblx0XHRpZiAoZ2VuICYmIGdldFByb3RvKSB7XG5cdFx0XHR2YWx1ZSA9IGdldFByb3RvKGdlbi5wcm90b3R5cGUpO1xuXHRcdH1cblx0fVxuXG5cdElOVFJJTlNJQ1NbbmFtZV0gPSB2YWx1ZTtcblxuXHRyZXR1cm4gdmFsdWU7XG59O1xuXG52YXIgTEVHQUNZX0FMSUFTRVMgPSB7XG5cdF9fcHJvdG9fXzogbnVsbCxcblx0JyVBcnJheUJ1ZmZlclByb3RvdHlwZSUnOiBbJ0FycmF5QnVmZmVyJywgJ3Byb3RvdHlwZSddLFxuXHQnJUFycmF5UHJvdG90eXBlJSc6IFsnQXJyYXknLCAncHJvdG90eXBlJ10sXG5cdCclQXJyYXlQcm90b19lbnRyaWVzJSc6IFsnQXJyYXknLCAncHJvdG90eXBlJywgJ2VudHJpZXMnXSxcblx0JyVBcnJheVByb3RvX2ZvckVhY2glJzogWydBcnJheScsICdwcm90b3R5cGUnLCAnZm9yRWFjaCddLFxuXHQnJUFycmF5UHJvdG9fa2V5cyUnOiBbJ0FycmF5JywgJ3Byb3RvdHlwZScsICdrZXlzJ10sXG5cdCclQXJyYXlQcm90b192YWx1ZXMlJzogWydBcnJheScsICdwcm90b3R5cGUnLCAndmFsdWVzJ10sXG5cdCclQXN5bmNGdW5jdGlvblByb3RvdHlwZSUnOiBbJ0FzeW5jRnVuY3Rpb24nLCAncHJvdG90eXBlJ10sXG5cdCclQXN5bmNHZW5lcmF0b3IlJzogWydBc3luY0dlbmVyYXRvckZ1bmN0aW9uJywgJ3Byb3RvdHlwZSddLFxuXHQnJUFzeW5jR2VuZXJhdG9yUHJvdG90eXBlJSc6IFsnQXN5bmNHZW5lcmF0b3JGdW5jdGlvbicsICdwcm90b3R5cGUnLCAncHJvdG90eXBlJ10sXG5cdCclQm9vbGVhblByb3RvdHlwZSUnOiBbJ0Jvb2xlYW4nLCAncHJvdG90eXBlJ10sXG5cdCclRGF0YVZpZXdQcm90b3R5cGUlJzogWydEYXRhVmlldycsICdwcm90b3R5cGUnXSxcblx0JyVEYXRlUHJvdG90eXBlJSc6IFsnRGF0ZScsICdwcm90b3R5cGUnXSxcblx0JyVFcnJvclByb3RvdHlwZSUnOiBbJ0Vycm9yJywgJ3Byb3RvdHlwZSddLFxuXHQnJUV2YWxFcnJvclByb3RvdHlwZSUnOiBbJ0V2YWxFcnJvcicsICdwcm90b3R5cGUnXSxcblx0JyVGbG9hdDMyQXJyYXlQcm90b3R5cGUlJzogWydGbG9hdDMyQXJyYXknLCAncHJvdG90eXBlJ10sXG5cdCclRmxvYXQ2NEFycmF5UHJvdG90eXBlJSc6IFsnRmxvYXQ2NEFycmF5JywgJ3Byb3RvdHlwZSddLFxuXHQnJUZ1bmN0aW9uUHJvdG90eXBlJSc6IFsnRnVuY3Rpb24nLCAncHJvdG90eXBlJ10sXG5cdCclR2VuZXJhdG9yJSc6IFsnR2VuZXJhdG9yRnVuY3Rpb24nLCAncHJvdG90eXBlJ10sXG5cdCclR2VuZXJhdG9yUHJvdG90eXBlJSc6IFsnR2VuZXJhdG9yRnVuY3Rpb24nLCAncHJvdG90eXBlJywgJ3Byb3RvdHlwZSddLFxuXHQnJUludDhBcnJheVByb3RvdHlwZSUnOiBbJ0ludDhBcnJheScsICdwcm90b3R5cGUnXSxcblx0JyVJbnQxNkFycmF5UHJvdG90eXBlJSc6IFsnSW50MTZBcnJheScsICdwcm90b3R5cGUnXSxcblx0JyVJbnQzMkFycmF5UHJvdG90eXBlJSc6IFsnSW50MzJBcnJheScsICdwcm90b3R5cGUnXSxcblx0JyVKU09OUGFyc2UlJzogWydKU09OJywgJ3BhcnNlJ10sXG5cdCclSlNPTlN0cmluZ2lmeSUnOiBbJ0pTT04nLCAnc3RyaW5naWZ5J10sXG5cdCclTWFwUHJvdG90eXBlJSc6IFsnTWFwJywgJ3Byb3RvdHlwZSddLFxuXHQnJU51bWJlclByb3RvdHlwZSUnOiBbJ051bWJlcicsICdwcm90b3R5cGUnXSxcblx0JyVPYmplY3RQcm90b3R5cGUlJzogWydPYmplY3QnLCAncHJvdG90eXBlJ10sXG5cdCclT2JqUHJvdG9fdG9TdHJpbmclJzogWydPYmplY3QnLCAncHJvdG90eXBlJywgJ3RvU3RyaW5nJ10sXG5cdCclT2JqUHJvdG9fdmFsdWVPZiUnOiBbJ09iamVjdCcsICdwcm90b3R5cGUnLCAndmFsdWVPZiddLFxuXHQnJVByb21pc2VQcm90b3R5cGUlJzogWydQcm9taXNlJywgJ3Byb3RvdHlwZSddLFxuXHQnJVByb21pc2VQcm90b190aGVuJSc6IFsnUHJvbWlzZScsICdwcm90b3R5cGUnLCAndGhlbiddLFxuXHQnJVByb21pc2VfYWxsJSc6IFsnUHJvbWlzZScsICdhbGwnXSxcblx0JyVQcm9taXNlX3JlamVjdCUnOiBbJ1Byb21pc2UnLCAncmVqZWN0J10sXG5cdCclUHJvbWlzZV9yZXNvbHZlJSc6IFsnUHJvbWlzZScsICdyZXNvbHZlJ10sXG5cdCclUmFuZ2VFcnJvclByb3RvdHlwZSUnOiBbJ1JhbmdlRXJyb3InLCAncHJvdG90eXBlJ10sXG5cdCclUmVmZXJlbmNlRXJyb3JQcm90b3R5cGUlJzogWydSZWZlcmVuY2VFcnJvcicsICdwcm90b3R5cGUnXSxcblx0JyVSZWdFeHBQcm90b3R5cGUlJzogWydSZWdFeHAnLCAncHJvdG90eXBlJ10sXG5cdCclU2V0UHJvdG90eXBlJSc6IFsnU2V0JywgJ3Byb3RvdHlwZSddLFxuXHQnJVNoYXJlZEFycmF5QnVmZmVyUHJvdG90eXBlJSc6IFsnU2hhcmVkQXJyYXlCdWZmZXInLCAncHJvdG90eXBlJ10sXG5cdCclU3RyaW5nUHJvdG90eXBlJSc6IFsnU3RyaW5nJywgJ3Byb3RvdHlwZSddLFxuXHQnJVN5bWJvbFByb3RvdHlwZSUnOiBbJ1N5bWJvbCcsICdwcm90b3R5cGUnXSxcblx0JyVTeW50YXhFcnJvclByb3RvdHlwZSUnOiBbJ1N5bnRheEVycm9yJywgJ3Byb3RvdHlwZSddLFxuXHQnJVR5cGVkQXJyYXlQcm90b3R5cGUlJzogWydUeXBlZEFycmF5JywgJ3Byb3RvdHlwZSddLFxuXHQnJVR5cGVFcnJvclByb3RvdHlwZSUnOiBbJ1R5cGVFcnJvcicsICdwcm90b3R5cGUnXSxcblx0JyVVaW50OEFycmF5UHJvdG90eXBlJSc6IFsnVWludDhBcnJheScsICdwcm90b3R5cGUnXSxcblx0JyVVaW50OENsYW1wZWRBcnJheVByb3RvdHlwZSUnOiBbJ1VpbnQ4Q2xhbXBlZEFycmF5JywgJ3Byb3RvdHlwZSddLFxuXHQnJVVpbnQxNkFycmF5UHJvdG90eXBlJSc6IFsnVWludDE2QXJyYXknLCAncHJvdG90eXBlJ10sXG5cdCclVWludDMyQXJyYXlQcm90b3R5cGUlJzogWydVaW50MzJBcnJheScsICdwcm90b3R5cGUnXSxcblx0JyVVUklFcnJvclByb3RvdHlwZSUnOiBbJ1VSSUVycm9yJywgJ3Byb3RvdHlwZSddLFxuXHQnJVdlYWtNYXBQcm90b3R5cGUlJzogWydXZWFrTWFwJywgJ3Byb3RvdHlwZSddLFxuXHQnJVdlYWtTZXRQcm90b3R5cGUlJzogWydXZWFrU2V0JywgJ3Byb3RvdHlwZSddXG59O1xuXG52YXIgYmluZCA9IHJlcXVpcmUoJ2Z1bmN0aW9uLWJpbmQnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCdoYXNvd24nKTtcbnZhciAkY29uY2F0ID0gYmluZC5jYWxsKCRjYWxsLCBBcnJheS5wcm90b3R5cGUuY29uY2F0KTtcbnZhciAkc3BsaWNlQXBwbHkgPSBiaW5kLmNhbGwoJGFwcGx5LCBBcnJheS5wcm90b3R5cGUuc3BsaWNlKTtcbnZhciAkcmVwbGFjZSA9IGJpbmQuY2FsbCgkY2FsbCwgU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKTtcbnZhciAkc3RyU2xpY2UgPSBiaW5kLmNhbGwoJGNhbGwsIFN0cmluZy5wcm90b3R5cGUuc2xpY2UpO1xudmFyICRleGVjID0gYmluZC5jYWxsKCRjYWxsLCBSZWdFeHAucHJvdG90eXBlLmV4ZWMpO1xuXG4vKiBhZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi80LjE3LjE1L2Rpc3QvbG9kYXNoLmpzI0w2NzM1LUw2NzQ0ICovXG52YXIgcmVQcm9wTmFtZSA9IC9bXiUuW1xcXV0rfFxcWyg/OigtP1xcZCsoPzpcXC5cXGQrKT8pfChbXCInXSkoKD86KD8hXFwyKVteXFxcXF18XFxcXC4pKj8pXFwyKVxcXXwoPz0oPzpcXC58XFxbXFxdKSg/OlxcLnxcXFtcXF18JSQpKS9nO1xudmFyIHJlRXNjYXBlQ2hhciA9IC9cXFxcKFxcXFwpPy9nOyAvKiogVXNlZCB0byBtYXRjaCBiYWNrc2xhc2hlcyBpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciBzdHJpbmdUb1BhdGggPSBmdW5jdGlvbiBzdHJpbmdUb1BhdGgoc3RyaW5nKSB7XG5cdHZhciBmaXJzdCA9ICRzdHJTbGljZShzdHJpbmcsIDAsIDEpO1xuXHR2YXIgbGFzdCA9ICRzdHJTbGljZShzdHJpbmcsIC0xKTtcblx0aWYgKGZpcnN0ID09PSAnJScgJiYgbGFzdCAhPT0gJyUnKSB7XG5cdFx0dGhyb3cgbmV3ICRTeW50YXhFcnJvcignaW52YWxpZCBpbnRyaW5zaWMgc3ludGF4LCBleHBlY3RlZCBjbG9zaW5nIGAlYCcpO1xuXHR9IGVsc2UgaWYgKGxhc3QgPT09ICclJyAmJiBmaXJzdCAhPT0gJyUnKSB7XG5cdFx0dGhyb3cgbmV3ICRTeW50YXhFcnJvcignaW52YWxpZCBpbnRyaW5zaWMgc3ludGF4LCBleHBlY3RlZCBvcGVuaW5nIGAlYCcpO1xuXHR9XG5cdHZhciByZXN1bHQgPSBbXTtcblx0JHJlcGxhY2Uoc3RyaW5nLCByZVByb3BOYW1lLCBmdW5jdGlvbiAobWF0Y2gsIG51bWJlciwgcXVvdGUsIHN1YlN0cmluZykge1xuXHRcdHJlc3VsdFtyZXN1bHQubGVuZ3RoXSA9IHF1b3RlID8gJHJlcGxhY2Uoc3ViU3RyaW5nLCByZUVzY2FwZUNoYXIsICckMScpIDogbnVtYmVyIHx8IG1hdGNoO1xuXHR9KTtcblx0cmV0dXJuIHJlc3VsdDtcbn07XG4vKiBlbmQgYWRhcHRhdGlvbiAqL1xuXG52YXIgZ2V0QmFzZUludHJpbnNpYyA9IGZ1bmN0aW9uIGdldEJhc2VJbnRyaW5zaWMobmFtZSwgYWxsb3dNaXNzaW5nKSB7XG5cdHZhciBpbnRyaW5zaWNOYW1lID0gbmFtZTtcblx0dmFyIGFsaWFzO1xuXHRpZiAoaGFzT3duKExFR0FDWV9BTElBU0VTLCBpbnRyaW5zaWNOYW1lKSkge1xuXHRcdGFsaWFzID0gTEVHQUNZX0FMSUFTRVNbaW50cmluc2ljTmFtZV07XG5cdFx0aW50cmluc2ljTmFtZSA9ICclJyArIGFsaWFzWzBdICsgJyUnO1xuXHR9XG5cblx0aWYgKGhhc093bihJTlRSSU5TSUNTLCBpbnRyaW5zaWNOYW1lKSkge1xuXHRcdHZhciB2YWx1ZSA9IElOVFJJTlNJQ1NbaW50cmluc2ljTmFtZV07XG5cdFx0aWYgKHZhbHVlID09PSBuZWVkc0V2YWwpIHtcblx0XHRcdHZhbHVlID0gZG9FdmFsKGludHJpbnNpY05hbWUpO1xuXHRcdH1cblx0XHRpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyAmJiAhYWxsb3dNaXNzaW5nKSB7XG5cdFx0XHR0aHJvdyBuZXcgJFR5cGVFcnJvcignaW50cmluc2ljICcgKyBuYW1lICsgJyBleGlzdHMsIGJ1dCBpcyBub3QgYXZhaWxhYmxlLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZSEnKTtcblx0XHR9XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0YWxpYXM6IGFsaWFzLFxuXHRcdFx0bmFtZTogaW50cmluc2ljTmFtZSxcblx0XHRcdHZhbHVlOiB2YWx1ZVxuXHRcdH07XG5cdH1cblxuXHR0aHJvdyBuZXcgJFN5bnRheEVycm9yKCdpbnRyaW5zaWMgJyArIG5hbWUgKyAnIGRvZXMgbm90IGV4aXN0IScpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBHZXRJbnRyaW5zaWMobmFtZSwgYWxsb3dNaXNzaW5nKSB7XG5cdGlmICh0eXBlb2YgbmFtZSAhPT0gJ3N0cmluZycgfHwgbmFtZS5sZW5ndGggPT09IDApIHtcblx0XHR0aHJvdyBuZXcgJFR5cGVFcnJvcignaW50cmluc2ljIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnKTtcblx0fVxuXHRpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgdHlwZW9mIGFsbG93TWlzc2luZyAhPT0gJ2Jvb2xlYW4nKSB7XG5cdFx0dGhyb3cgbmV3ICRUeXBlRXJyb3IoJ1wiYWxsb3dNaXNzaW5nXCIgYXJndW1lbnQgbXVzdCBiZSBhIGJvb2xlYW4nKTtcblx0fVxuXG5cdGlmICgkZXhlYygvXiU/W14lXSolPyQvLCBuYW1lKSA9PT0gbnVsbCkge1xuXHRcdHRocm93IG5ldyAkU3ludGF4RXJyb3IoJ2AlYCBtYXkgbm90IGJlIHByZXNlbnQgYW55d2hlcmUgYnV0IGF0IHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgaW50cmluc2ljIG5hbWUnKTtcblx0fVxuXHR2YXIgcGFydHMgPSBzdHJpbmdUb1BhdGgobmFtZSk7XG5cdHZhciBpbnRyaW5zaWNCYXNlTmFtZSA9IHBhcnRzLmxlbmd0aCA+IDAgPyBwYXJ0c1swXSA6ICcnO1xuXG5cdHZhciBpbnRyaW5zaWMgPSBnZXRCYXNlSW50cmluc2ljKCclJyArIGludHJpbnNpY0Jhc2VOYW1lICsgJyUnLCBhbGxvd01pc3NpbmcpO1xuXHR2YXIgaW50cmluc2ljUmVhbE5hbWUgPSBpbnRyaW5zaWMubmFtZTtcblx0dmFyIHZhbHVlID0gaW50cmluc2ljLnZhbHVlO1xuXHR2YXIgc2tpcEZ1cnRoZXJDYWNoaW5nID0gZmFsc2U7XG5cblx0dmFyIGFsaWFzID0gaW50cmluc2ljLmFsaWFzO1xuXHRpZiAoYWxpYXMpIHtcblx0XHRpbnRyaW5zaWNCYXNlTmFtZSA9IGFsaWFzWzBdO1xuXHRcdCRzcGxpY2VBcHBseShwYXJ0cywgJGNvbmNhdChbMCwgMV0sIGFsaWFzKSk7XG5cdH1cblxuXHRmb3IgKHZhciBpID0gMSwgaXNPd24gPSB0cnVlOyBpIDwgcGFydHMubGVuZ3RoOyBpICs9IDEpIHtcblx0XHR2YXIgcGFydCA9IHBhcnRzW2ldO1xuXHRcdHZhciBmaXJzdCA9ICRzdHJTbGljZShwYXJ0LCAwLCAxKTtcblx0XHR2YXIgbGFzdCA9ICRzdHJTbGljZShwYXJ0LCAtMSk7XG5cdFx0aWYgKFxuXHRcdFx0KFxuXHRcdFx0XHQoZmlyc3QgPT09ICdcIicgfHwgZmlyc3QgPT09IFwiJ1wiIHx8IGZpcnN0ID09PSAnYCcpXG5cdFx0XHRcdHx8IChsYXN0ID09PSAnXCInIHx8IGxhc3QgPT09IFwiJ1wiIHx8IGxhc3QgPT09ICdgJylcblx0XHRcdClcblx0XHRcdCYmIGZpcnN0ICE9PSBsYXN0XG5cdFx0KSB7XG5cdFx0XHR0aHJvdyBuZXcgJFN5bnRheEVycm9yKCdwcm9wZXJ0eSBuYW1lcyB3aXRoIHF1b3RlcyBtdXN0IGhhdmUgbWF0Y2hpbmcgcXVvdGVzJyk7XG5cdFx0fVxuXHRcdGlmIChwYXJ0ID09PSAnY29uc3RydWN0b3InIHx8ICFpc093bikge1xuXHRcdFx0c2tpcEZ1cnRoZXJDYWNoaW5nID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRpbnRyaW5zaWNCYXNlTmFtZSArPSAnLicgKyBwYXJ0O1xuXHRcdGludHJpbnNpY1JlYWxOYW1lID0gJyUnICsgaW50cmluc2ljQmFzZU5hbWUgKyAnJSc7XG5cblx0XHRpZiAoaGFzT3duKElOVFJJTlNJQ1MsIGludHJpbnNpY1JlYWxOYW1lKSkge1xuXHRcdFx0dmFsdWUgPSBJTlRSSU5TSUNTW2ludHJpbnNpY1JlYWxOYW1lXTtcblx0XHR9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcblx0XHRcdGlmICghKHBhcnQgaW4gdmFsdWUpKSB7XG5cdFx0XHRcdGlmICghYWxsb3dNaXNzaW5nKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3ICRUeXBlRXJyb3IoJ2Jhc2UgaW50cmluc2ljIGZvciAnICsgbmFtZSArICcgZXhpc3RzLCBidXQgdGhlIHByb3BlcnR5IGlzIG5vdCBhdmFpbGFibGUuJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHZvaWQgdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCRnT1BEICYmIChpICsgMSkgPj0gcGFydHMubGVuZ3RoKSB7XG5cdFx0XHRcdHZhciBkZXNjID0gJGdPUEQodmFsdWUsIHBhcnQpO1xuXHRcdFx0XHRpc093biA9ICEhZGVzYztcblxuXHRcdFx0XHQvLyBCeSBjb252ZW50aW9uLCB3aGVuIGEgZGF0YSBwcm9wZXJ0eSBpcyBjb252ZXJ0ZWQgdG8gYW4gYWNjZXNzb3Jcblx0XHRcdFx0Ly8gcHJvcGVydHkgdG8gZW11bGF0ZSBhIGRhdGEgcHJvcGVydHkgdGhhdCBkb2VzIG5vdCBzdWZmZXIgZnJvbVxuXHRcdFx0XHQvLyB0aGUgb3ZlcnJpZGUgbWlzdGFrZSwgdGhhdCBhY2Nlc3NvcidzIGdldHRlciBpcyBtYXJrZWQgd2l0aFxuXHRcdFx0XHQvLyBhbiBgb3JpZ2luYWxWYWx1ZWAgcHJvcGVydHkuIEhlcmUsIHdoZW4gd2UgZGV0ZWN0IHRoaXMsIHdlXG5cdFx0XHRcdC8vIHVwaG9sZCB0aGUgaWxsdXNpb24gYnkgcHJldGVuZGluZyB0byBzZWUgdGhhdCBvcmlnaW5hbCBkYXRhXG5cdFx0XHRcdC8vIHByb3BlcnR5LCBpLmUuLCByZXR1cm5pbmcgdGhlIHZhbHVlIHJhdGhlciB0aGFuIHRoZSBnZXR0ZXJcblx0XHRcdFx0Ly8gaXRzZWxmLlxuXHRcdFx0XHRpZiAoaXNPd24gJiYgJ2dldCcgaW4gZGVzYyAmJiAhKCdvcmlnaW5hbFZhbHVlJyBpbiBkZXNjLmdldCkpIHtcblx0XHRcdFx0XHR2YWx1ZSA9IGRlc2MuZ2V0O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHZhbHVlID0gdmFsdWVbcGFydF07XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlzT3duID0gaGFzT3duKHZhbHVlLCBwYXJ0KTtcblx0XHRcdFx0dmFsdWUgPSB2YWx1ZVtwYXJ0XTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGlzT3duICYmICFza2lwRnVydGhlckNhY2hpbmcpIHtcblx0XHRcdFx0SU5UUklOU0lDU1tpbnRyaW5zaWNSZWFsTmFtZV0gPSB2YWx1ZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0cmV0dXJuIHZhbHVlO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBoYXNTeW1ib2xzID0gcmVxdWlyZSgnaGFzLXN5bWJvbHMvc2hhbXMnKTtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4nKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaGFzVG9TdHJpbmdUYWdTaGFtcygpIHtcblx0cmV0dXJuIGhhc1N5bWJvbHMoKSAmJiAhIVN5bWJvbC50b1N0cmluZ1RhZztcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgR2V0SW50cmluc2ljID0gcmVxdWlyZSgnZ2V0LWludHJpbnNpYycpO1xuXG52YXIgJGRlZmluZVByb3BlcnR5ID0gR2V0SW50cmluc2ljKCclT2JqZWN0LmRlZmluZVByb3BlcnR5JScsIHRydWUpO1xuXG52YXIgaGFzVG9TdHJpbmdUYWcgPSByZXF1aXJlKCdoYXMtdG9zdHJpbmd0YWcvc2hhbXMnKSgpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJ2hhc293bicpO1xudmFyICRUeXBlRXJyb3IgPSByZXF1aXJlKCdlcy1lcnJvcnMvdHlwZScpO1xuXG52YXIgdG9TdHJpbmdUYWcgPSBoYXNUb1N0cmluZ1RhZyA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IG51bGw7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHNldFRvU3RyaW5nVGFnKG9iamVjdCwgdmFsdWUpIHtcblx0dmFyIG92ZXJyaWRlSWZTZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiAhIWFyZ3VtZW50c1syXSAmJiBhcmd1bWVudHNbMl0uZm9yY2U7XG5cdHZhciBub25Db25maWd1cmFibGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiAhIWFyZ3VtZW50c1syXSAmJiBhcmd1bWVudHNbMl0ubm9uQ29uZmlndXJhYmxlO1xuXHRpZiAoXG5cdFx0KHR5cGVvZiBvdmVycmlkZUlmU2V0ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygb3ZlcnJpZGVJZlNldCAhPT0gJ2Jvb2xlYW4nKVxuXHRcdHx8ICh0eXBlb2Ygbm9uQ29uZmlndXJhYmxlICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygbm9uQ29uZmlndXJhYmxlICE9PSAnYm9vbGVhbicpXG5cdCkge1xuXHRcdHRocm93IG5ldyAkVHlwZUVycm9yKCdpZiBwcm92aWRlZCwgdGhlIGBvdmVycmlkZUlmU2V0YCBhbmQgYG5vbkNvbmZpZ3VyYWJsZWAgb3B0aW9ucyBtdXN0IGJlIGJvb2xlYW5zJyk7XG5cdH1cblx0aWYgKHRvU3RyaW5nVGFnICYmIChvdmVycmlkZUlmU2V0IHx8ICFoYXNPd24ob2JqZWN0LCB0b1N0cmluZ1RhZykpKSB7XG5cdFx0aWYgKCRkZWZpbmVQcm9wZXJ0eSkge1xuXHRcdFx0JGRlZmluZVByb3BlcnR5KG9iamVjdCwgdG9TdHJpbmdUYWcsIHtcblx0XHRcdFx0Y29uZmlndXJhYmxlOiAhbm9uQ29uZmlndXJhYmxlLFxuXHRcdFx0XHRlbnVtZXJhYmxlOiBmYWxzZSxcblx0XHRcdFx0dmFsdWU6IHZhbHVlLFxuXHRcdFx0XHR3cml0YWJsZTogZmFsc2Vcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvYmplY3RbdG9TdHJpbmdUYWddID0gdmFsdWU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cblx0XHR9XG5cdH1cbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vLyBwb3B1bGF0ZXMgbWlzc2luZyB2YWx1ZXNcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGRzdCwgc3JjKSB7XG4gIE9iamVjdC5rZXlzKHNyYykuZm9yRWFjaChmdW5jdGlvbiAocHJvcCkge1xuICAgIGRzdFtwcm9wXSA9IGRzdFtwcm9wXSB8fCBzcmNbcHJvcF07IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgfSk7XG5cbiAgcmV0dXJuIGRzdDtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgQ29tYmluZWRTdHJlYW0gPSByZXF1aXJlKCdjb21iaW5lZC1zdHJlYW0nKTtcbnZhciB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xudmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG52YXIgaHR0cCA9IHJlcXVpcmUoJ2h0dHAnKTtcbnZhciBodHRwcyA9IHJlcXVpcmUoJ2h0dHBzJyk7XG52YXIgcGFyc2VVcmwgPSByZXF1aXJlKCd1cmwnKS5wYXJzZTtcbnZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG52YXIgU3RyZWFtID0gcmVxdWlyZSgnc3RyZWFtJykuU3RyZWFtO1xudmFyIGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpO1xudmFyIG1pbWUgPSByZXF1aXJlKCdtaW1lLXR5cGVzJyk7XG52YXIgYXN5bmNraXQgPSByZXF1aXJlKCdhc3luY2tpdCcpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnZXMtc2V0LXRvc3RyaW5ndGFnJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnaGFzb3duJyk7XG52YXIgcG9wdWxhdGUgPSByZXF1aXJlKCcuL3BvcHVsYXRlLmpzJyk7XG5cbi8qKlxuICogQ3JlYXRlIHJlYWRhYmxlIFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiIHN0cmVhbXMuXG4gKiBDYW4gYmUgdXNlZCB0byBzdWJtaXQgZm9ybXNcbiAqIGFuZCBmaWxlIHVwbG9hZHMgdG8gb3RoZXIgd2ViIGFwcGxpY2F0aW9ucy5cbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gUHJvcGVydGllcyB0byBiZSBhZGRlZC9vdmVycmlkZW4gZm9yIEZvcm1EYXRhIGFuZCBDb21iaW5lZFN0cmVhbVxuICovXG5mdW5jdGlvbiBGb3JtRGF0YShvcHRpb25zKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBGb3JtRGF0YSkpIHtcbiAgICByZXR1cm4gbmV3IEZvcm1EYXRhKG9wdGlvbnMpO1xuICB9XG5cbiAgdGhpcy5fb3ZlcmhlYWRMZW5ndGggPSAwO1xuICB0aGlzLl92YWx1ZUxlbmd0aCA9IDA7XG4gIHRoaXMuX3ZhbHVlc1RvTWVhc3VyZSA9IFtdO1xuXG4gIENvbWJpbmVkU3RyZWFtLmNhbGwodGhpcyk7XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZm9yICh2YXIgb3B0aW9uIGluIG9wdGlvbnMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgIHRoaXNbb3B0aW9uXSA9IG9wdGlvbnNbb3B0aW9uXTtcbiAgfVxufVxuXG4vLyBtYWtlIGl0IGEgU3RyZWFtXG51dGlsLmluaGVyaXRzKEZvcm1EYXRhLCBDb21iaW5lZFN0cmVhbSk7XG5cbkZvcm1EYXRhLkxJTkVfQlJFQUsgPSAnXFxyXFxuJztcbkZvcm1EYXRhLkRFRkFVTFRfQ09OVEVOVF9UWVBFID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5hcHBlbmQgPSBmdW5jdGlvbiAoZmllbGQsIHZhbHVlLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG5cbiAgLy8gYWxsb3cgZmlsZW5hbWUgYXMgc2luZ2xlIG9wdGlvblxuICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0aW9ucyA9IHsgZmlsZW5hbWU6IG9wdGlvbnMgfTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICB9XG5cbiAgdmFyIGFwcGVuZCA9IENvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5hcHBlbmQuYmluZCh0aGlzKTtcblxuICAvLyBhbGwgdGhhdCBzdHJlYW15IGJ1c2luZXNzIGNhbid0IGhhbmRsZSBudW1iZXJzXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IHZhbHVlID09IG51bGwpIHtcbiAgICB2YWx1ZSA9IFN0cmluZyh2YWx1ZSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgfVxuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mZWxpeGdlL25vZGUtZm9ybS1kYXRhL2lzc3Vlcy8zOFxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAvKlxuICAgICAqIFBsZWFzZSBjb252ZXJ0IHlvdXIgYXJyYXkgaW50byBzdHJpbmdcbiAgICAgKiB0aGUgd2F5IHdlYiBzZXJ2ZXIgZXhwZWN0cyBpdFxuICAgICAqL1xuICAgIHRoaXMuX2Vycm9yKG5ldyBFcnJvcignQXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkLicpKTtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgaGVhZGVyID0gdGhpcy5fbXVsdGlQYXJ0SGVhZGVyKGZpZWxkLCB2YWx1ZSwgb3B0aW9ucyk7XG4gIHZhciBmb290ZXIgPSB0aGlzLl9tdWx0aVBhcnRGb290ZXIoKTtcblxuICBhcHBlbmQoaGVhZGVyKTtcbiAgYXBwZW5kKHZhbHVlKTtcbiAgYXBwZW5kKGZvb3Rlcik7XG5cbiAgLy8gcGFzcyBhbG9uZyBvcHRpb25zLmtub3duTGVuZ3RoXG4gIHRoaXMuX3RyYWNrTGVuZ3RoKGhlYWRlciwgdmFsdWUsIG9wdGlvbnMpO1xufTtcblxuRm9ybURhdGEucHJvdG90eXBlLl90cmFja0xlbmd0aCA9IGZ1bmN0aW9uIChoZWFkZXIsIHZhbHVlLCBvcHRpb25zKSB7XG4gIHZhciB2YWx1ZUxlbmd0aCA9IDA7XG5cbiAgLypcbiAgICogdXNlZCB3LyBnZXRMZW5ndGhTeW5jKCksIHdoZW4gbGVuZ3RoIGlzIGtub3duLlxuICAgKiBlLmcuIGZvciBzdHJlYW1pbmcgZGlyZWN0bHkgZnJvbSBhIHJlbW90ZSBzZXJ2ZXIsXG4gICAqIHcvIGEga25vd24gZmlsZSBhIHNpemUsIGFuZCBub3Qgd2FudGluZyB0byB3YWl0IGZvclxuICAgKiBpbmNvbWluZyBmaWxlIHRvIGZpbmlzaCB0byBnZXQgaXRzIHNpemUuXG4gICAqL1xuICBpZiAob3B0aW9ucy5rbm93bkxlbmd0aCAhPSBudWxsKSB7XG4gICAgdmFsdWVMZW5ndGggKz0gTnVtYmVyKG9wdGlvbnMua25vd25MZW5ndGgpO1xuICB9IGVsc2UgaWYgKEJ1ZmZlci5pc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICB2YWx1ZUxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFsdWVMZW5ndGggPSBCdWZmZXIuYnl0ZUxlbmd0aCh2YWx1ZSk7XG4gIH1cblxuICB0aGlzLl92YWx1ZUxlbmd0aCArPSB2YWx1ZUxlbmd0aDtcblxuICAvLyBAY2hlY2sgd2h5IGFkZCBDUkxGPyBkb2VzIHRoaXMgYWNjb3VudCBmb3IgY3VzdG9tL211bHRpcGxlIENSTEZzP1xuICB0aGlzLl9vdmVyaGVhZExlbmd0aCArPSBCdWZmZXIuYnl0ZUxlbmd0aChoZWFkZXIpICsgRm9ybURhdGEuTElORV9CUkVBSy5sZW5ndGg7XG5cbiAgLy8gZW1wdHkgb3IgZWl0aGVyIGRvZXNuJ3QgaGF2ZSBwYXRoIG9yIG5vdCBhbiBodHRwIHJlc3BvbnNlIG9yIG5vdCBhIHN0cmVhbVxuICBpZiAoIXZhbHVlIHx8ICghdmFsdWUucGF0aCAmJiAhKHZhbHVlLnJlYWRhYmxlICYmIGhhc093bih2YWx1ZSwgJ2h0dHBWZXJzaW9uJykpICYmICEodmFsdWUgaW5zdGFuY2VvZiBTdHJlYW0pKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIG5vIG5lZWQgdG8gYm90aGVyIHdpdGggdGhlIGxlbmd0aFxuICBpZiAoIW9wdGlvbnMua25vd25MZW5ndGgpIHtcbiAgICB0aGlzLl92YWx1ZXNUb01lYXN1cmUucHVzaCh2YWx1ZSk7XG4gIH1cbn07XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5fbGVuZ3RoUmV0cmlldmVyID0gZnVuY3Rpb24gKHZhbHVlLCBjYWxsYmFjaykge1xuICBpZiAoaGFzT3duKHZhbHVlLCAnZmQnKSkge1xuICAgIC8vIHRha2UgcmVhZCByYW5nZSBpbnRvIGEgYWNjb3VudFxuICAgIC8vIGBlbmRgID0gSW5maW5pdHkgXHUyMDEzPiByZWFkIGZpbGUgdGlsbCB0aGUgZW5kXG4gICAgLy9cbiAgICAvLyBUT0RPOiBMb29rcyBsaWtlIHRoZXJlIGlzIGJ1ZyBpbiBOb2RlIGZzLmNyZWF0ZVJlYWRTdHJlYW1cbiAgICAvLyBpdCBkb2Vzbid0IHJlc3BlY3QgYGVuZGAgb3B0aW9ucyB3aXRob3V0IGBzdGFydGAgb3B0aW9uc1xuICAgIC8vIEZpeCBpdCB3aGVuIG5vZGUgZml4ZXMgaXQuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2pveWVudC9ub2RlL2lzc3Vlcy83ODE5XG4gICAgaWYgKHZhbHVlLmVuZCAhPSB1bmRlZmluZWQgJiYgdmFsdWUuZW5kICE9IEluZmluaXR5ICYmIHZhbHVlLnN0YXJ0ICE9IHVuZGVmaW5lZCkge1xuICAgICAgLy8gd2hlbiBlbmQgc3BlY2lmaWVkXG4gICAgICAvLyBubyBuZWVkIHRvIGNhbGN1bGF0ZSByYW5nZVxuICAgICAgLy8gaW5jbHVzaXZlLCBzdGFydHMgd2l0aCAwXG4gICAgICBjYWxsYmFjayhudWxsLCB2YWx1ZS5lbmQgKyAxIC0gKHZhbHVlLnN0YXJ0ID8gdmFsdWUuc3RhcnQgOiAwKSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FsbGJhY2stcmV0dXJuXG5cbiAgICAgIC8vIG5vdCB0aGF0IGZhc3Qgc25vb3B5XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHN0aWxsIG5lZWQgdG8gZmV0Y2ggZmlsZSBzaXplIGZyb20gZnNcbiAgICAgIGZzLnN0YXQodmFsdWUucGF0aCwgZnVuY3Rpb24gKGVyciwgc3RhdCkge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyB1cGRhdGUgZmluYWwgc2l6ZSBiYXNlZCBvbiB0aGUgcmFuZ2Ugb3B0aW9uc1xuICAgICAgICB2YXIgZmlsZVNpemUgPSBzdGF0LnNpemUgLSAodmFsdWUuc3RhcnQgPyB2YWx1ZS5zdGFydCA6IDApO1xuICAgICAgICBjYWxsYmFjayhudWxsLCBmaWxlU2l6ZSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBvciBodHRwIHJlc3BvbnNlXG4gIH0gZWxzZSBpZiAoaGFzT3duKHZhbHVlLCAnaHR0cFZlcnNpb24nKSkge1xuICAgIGNhbGxiYWNrKG51bGwsIE51bWJlcih2YWx1ZS5oZWFkZXJzWydjb250ZW50LWxlbmd0aCddKSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FsbGJhY2stcmV0dXJuXG5cbiAgICAvLyBvciByZXF1ZXN0IHN0cmVhbSBodHRwOi8vZ2l0aHViLmNvbS9taWtlYWwvcmVxdWVzdFxuICB9IGVsc2UgaWYgKGhhc093bih2YWx1ZSwgJ2h0dHBNb2R1bGUnKSkge1xuICAgIC8vIHdhaXQgdGlsbCByZXNwb25zZSBjb21lIGJhY2tcbiAgICB2YWx1ZS5vbigncmVzcG9uc2UnLCBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgIHZhbHVlLnBhdXNlKCk7XG4gICAgICBjYWxsYmFjayhudWxsLCBOdW1iZXIocmVzcG9uc2UuaGVhZGVyc1snY29udGVudC1sZW5ndGgnXSkpO1xuICAgIH0pO1xuICAgIHZhbHVlLnJlc3VtZSgpO1xuXG4gICAgLy8gc29tZXRoaW5nIGVsc2VcbiAgfSBlbHNlIHtcbiAgICBjYWxsYmFjaygnVW5rbm93biBzdHJlYW0nKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjYWxsYmFjay1yZXR1cm5cbiAgfVxufTtcblxuRm9ybURhdGEucHJvdG90eXBlLl9tdWx0aVBhcnRIZWFkZXIgPSBmdW5jdGlvbiAoZmllbGQsIHZhbHVlLCBvcHRpb25zKSB7XG4gIC8qXG4gICAqIGN1c3RvbSBoZWFkZXIgc3BlY2lmaWVkIChhcyBzdHJpbmcpP1xuICAgKiBpdCBiZWNvbWVzIHJlc3BvbnNpYmxlIGZvciBib3VuZGFyeVxuICAgKiAoZS5nLiB0byBoYW5kbGUgZXh0cmEgQ1JMRnMgb24gLk5FVCBzZXJ2ZXJzKVxuICAgKi9cbiAgaWYgKHR5cGVvZiBvcHRpb25zLmhlYWRlciA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5oZWFkZXI7XG4gIH1cblxuICB2YXIgY29udGVudERpc3Bvc2l0aW9uID0gdGhpcy5fZ2V0Q29udGVudERpc3Bvc2l0aW9uKHZhbHVlLCBvcHRpb25zKTtcbiAgdmFyIGNvbnRlbnRUeXBlID0gdGhpcy5fZ2V0Q29udGVudFR5cGUodmFsdWUsIG9wdGlvbnMpO1xuXG4gIHZhciBjb250ZW50cyA9ICcnO1xuICB2YXIgaGVhZGVycyA9IHtcbiAgICAvLyBhZGQgY3VzdG9tIGRpc3Bvc2l0aW9uIGFzIHRoaXJkIGVsZW1lbnQgb3Iga2VlcCBpdCB0d28gZWxlbWVudHMgaWYgbm90XG4gICAgJ0NvbnRlbnQtRGlzcG9zaXRpb24nOiBbJ2Zvcm0tZGF0YScsICduYW1lPVwiJyArIGZpZWxkICsgJ1wiJ10uY29uY2F0KGNvbnRlbnREaXNwb3NpdGlvbiB8fCBbXSksXG4gICAgLy8gaWYgbm8gY29udGVudCB0eXBlLiBhbGxvdyBpdCB0byBiZSBlbXB0eSBhcnJheVxuICAgICdDb250ZW50LVR5cGUnOiBbXS5jb25jYXQoY29udGVudFR5cGUgfHwgW10pXG4gIH07XG5cbiAgLy8gYWxsb3cgY3VzdG9tIGhlYWRlcnMuXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5oZWFkZXIgPT09ICdvYmplY3QnKSB7XG4gICAgcG9wdWxhdGUoaGVhZGVycywgb3B0aW9ucy5oZWFkZXIpO1xuICB9XG5cbiAgdmFyIGhlYWRlcjtcbiAgZm9yICh2YXIgcHJvcCBpbiBoZWFkZXJzKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICBpZiAoaGFzT3duKGhlYWRlcnMsIHByb3ApKSB7XG4gICAgICBoZWFkZXIgPSBoZWFkZXJzW3Byb3BdO1xuXG4gICAgICAvLyBza2lwIG51bGxpc2ggaGVhZGVycy5cbiAgICAgIGlmIChoZWFkZXIgPT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheCwgbm8tY29udGludWVcbiAgICAgIH1cblxuICAgICAgLy8gY29udmVydCBhbGwgaGVhZGVycyB0byBhcnJheXMuXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaGVhZGVyKSkge1xuICAgICAgICBoZWFkZXIgPSBbaGVhZGVyXTtcbiAgICAgIH1cblxuICAgICAgLy8gYWRkIG5vbi1lbXB0eSBoZWFkZXJzLlxuICAgICAgaWYgKGhlYWRlci5sZW5ndGgpIHtcbiAgICAgICAgY29udGVudHMgKz0gcHJvcCArICc6ICcgKyBoZWFkZXIuam9pbignOyAnKSArIEZvcm1EYXRhLkxJTkVfQlJFQUs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICctLScgKyB0aGlzLmdldEJvdW5kYXJ5KCkgKyBGb3JtRGF0YS5MSU5FX0JSRUFLICsgY29udGVudHMgKyBGb3JtRGF0YS5MSU5FX0JSRUFLO1xufTtcblxuRm9ybURhdGEucHJvdG90eXBlLl9nZXRDb250ZW50RGlzcG9zaXRpb24gPSBmdW5jdGlvbiAodmFsdWUsIG9wdGlvbnMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICB2YXIgZmlsZW5hbWU7XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLmZpbGVwYXRoID09PSAnc3RyaW5nJykge1xuICAgIC8vIGN1c3RvbSBmaWxlcGF0aCBmb3IgcmVsYXRpdmUgcGF0aHNcbiAgICBmaWxlbmFtZSA9IHBhdGgubm9ybWFsaXplKG9wdGlvbnMuZmlsZXBhdGgpLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgfSBlbHNlIGlmIChvcHRpb25zLmZpbGVuYW1lIHx8ICh2YWx1ZSAmJiAodmFsdWUubmFtZSB8fCB2YWx1ZS5wYXRoKSkpIHtcbiAgICAvKlxuICAgICAqIGN1c3RvbSBmaWxlbmFtZSB0YWtlIHByZWNlZGVuY2VcbiAgICAgKiBmb3JtaWRhYmxlIGFuZCB0aGUgYnJvd3NlciBhZGQgYSBuYW1lIHByb3BlcnR5XG4gICAgICogZnMtIGFuZCByZXF1ZXN0LSBzdHJlYW1zIGhhdmUgcGF0aCBwcm9wZXJ0eVxuICAgICAqL1xuICAgIGZpbGVuYW1lID0gcGF0aC5iYXNlbmFtZShvcHRpb25zLmZpbGVuYW1lIHx8ICh2YWx1ZSAmJiAodmFsdWUubmFtZSB8fCB2YWx1ZS5wYXRoKSkpO1xuICB9IGVsc2UgaWYgKHZhbHVlICYmIHZhbHVlLnJlYWRhYmxlICYmIGhhc093bih2YWx1ZSwgJ2h0dHBWZXJzaW9uJykpIHtcbiAgICAvLyBvciB0cnkgaHR0cCByZXNwb25zZVxuICAgIGZpbGVuYW1lID0gcGF0aC5iYXNlbmFtZSh2YWx1ZS5jbGllbnQuX2h0dHBNZXNzYWdlLnBhdGggfHwgJycpO1xuICB9XG5cbiAgaWYgKGZpbGVuYW1lKSB7XG4gICAgcmV0dXJuICdmaWxlbmFtZT1cIicgKyBmaWxlbmFtZSArICdcIic7XG4gIH1cbn07XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5fZ2V0Q29udGVudFR5cGUgPSBmdW5jdGlvbiAodmFsdWUsIG9wdGlvbnMpIHtcbiAgLy8gdXNlIGN1c3RvbSBjb250ZW50LXR5cGUgYWJvdmUgYWxsXG4gIHZhciBjb250ZW50VHlwZSA9IG9wdGlvbnMuY29udGVudFR5cGU7XG5cbiAgLy8gb3IgdHJ5IGBuYW1lYCBmcm9tIGZvcm1pZGFibGUsIGJyb3dzZXJcbiAgaWYgKCFjb250ZW50VHlwZSAmJiB2YWx1ZSAmJiB2YWx1ZS5uYW1lKSB7XG4gICAgY29udGVudFR5cGUgPSBtaW1lLmxvb2t1cCh2YWx1ZS5uYW1lKTtcbiAgfVxuXG4gIC8vIG9yIHRyeSBgcGF0aGAgZnJvbSBmcy0sIHJlcXVlc3QtIHN0cmVhbXNcbiAgaWYgKCFjb250ZW50VHlwZSAmJiB2YWx1ZSAmJiB2YWx1ZS5wYXRoKSB7XG4gICAgY29udGVudFR5cGUgPSBtaW1lLmxvb2t1cCh2YWx1ZS5wYXRoKTtcbiAgfVxuXG4gIC8vIG9yIGlmIGl0J3MgaHR0cC1yZXBvbnNlXG4gIGlmICghY29udGVudFR5cGUgJiYgdmFsdWUgJiYgdmFsdWUucmVhZGFibGUgJiYgaGFzT3duKHZhbHVlLCAnaHR0cFZlcnNpb24nKSkge1xuICAgIGNvbnRlbnRUeXBlID0gdmFsdWUuaGVhZGVyc1snY29udGVudC10eXBlJ107XG4gIH1cblxuICAvLyBvciBndWVzcyBpdCBmcm9tIHRoZSBmaWxlcGF0aCBvciBmaWxlbmFtZVxuICBpZiAoIWNvbnRlbnRUeXBlICYmIChvcHRpb25zLmZpbGVwYXRoIHx8IG9wdGlvbnMuZmlsZW5hbWUpKSB7XG4gICAgY29udGVudFR5cGUgPSBtaW1lLmxvb2t1cChvcHRpb25zLmZpbGVwYXRoIHx8IG9wdGlvbnMuZmlsZW5hbWUpO1xuICB9XG5cbiAgLy8gZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgY29udGVudCB0eXBlIGlmIGB2YWx1ZWAgaXMgbm90IHNpbXBsZSB2YWx1ZVxuICBpZiAoIWNvbnRlbnRUeXBlICYmIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb250ZW50VHlwZSA9IEZvcm1EYXRhLkRFRkFVTFRfQ09OVEVOVF9UWVBFO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRlbnRUeXBlO1xufTtcblxuRm9ybURhdGEucHJvdG90eXBlLl9tdWx0aVBhcnRGb290ZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBmdW5jdGlvbiAobmV4dCkge1xuICAgIHZhciBmb290ZXIgPSBGb3JtRGF0YS5MSU5FX0JSRUFLO1xuXG4gICAgdmFyIGxhc3RQYXJ0ID0gdGhpcy5fc3RyZWFtcy5sZW5ndGggPT09IDA7XG4gICAgaWYgKGxhc3RQYXJ0KSB7XG4gICAgICBmb290ZXIgKz0gdGhpcy5fbGFzdEJvdW5kYXJ5KCk7XG4gICAgfVxuXG4gICAgbmV4dChmb290ZXIpO1xuICB9LmJpbmQodGhpcyk7XG59O1xuXG5Gb3JtRGF0YS5wcm90b3R5cGUuX2xhc3RCb3VuZGFyeSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICctLScgKyB0aGlzLmdldEJvdW5kYXJ5KCkgKyAnLS0nICsgRm9ybURhdGEuTElORV9CUkVBSztcbn07XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5nZXRIZWFkZXJzID0gZnVuY3Rpb24gKHVzZXJIZWFkZXJzKSB7XG4gIHZhciBoZWFkZXI7XG4gIHZhciBmb3JtSGVhZGVycyA9IHtcbiAgICAnY29udGVudC10eXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PScgKyB0aGlzLmdldEJvdW5kYXJ5KClcbiAgfTtcblxuICBmb3IgKGhlYWRlciBpbiB1c2VySGVhZGVycykgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgaWYgKGhhc093bih1c2VySGVhZGVycywgaGVhZGVyKSkge1xuICAgICAgZm9ybUhlYWRlcnNbaGVhZGVyLnRvTG93ZXJDYXNlKCldID0gdXNlckhlYWRlcnNbaGVhZGVyXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZm9ybUhlYWRlcnM7XG59O1xuXG5Gb3JtRGF0YS5wcm90b3R5cGUuc2V0Qm91bmRhcnkgPSBmdW5jdGlvbiAoYm91bmRhcnkpIHtcbiAgaWYgKHR5cGVvZiBib3VuZGFyeSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdGb3JtRGF0YSBib3VuZGFyeSBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gIH1cbiAgdGhpcy5fYm91bmRhcnkgPSBib3VuZGFyeTtcbn07XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5nZXRCb3VuZGFyeSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKCF0aGlzLl9ib3VuZGFyeSkge1xuICAgIHRoaXMuX2dlbmVyYXRlQm91bmRhcnkoKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLl9ib3VuZGFyeTtcbn07XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5nZXRCdWZmZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBkYXRhQnVmZmVyID0gbmV3IEJ1ZmZlci5hbGxvYygwKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuZXctY2FwXG4gIHZhciBib3VuZGFyeSA9IHRoaXMuZ2V0Qm91bmRhcnkoKTtcblxuICAvLyBDcmVhdGUgdGhlIGZvcm0gY29udGVudC4gQWRkIExpbmUgYnJlYWtzIHRvIHRoZSBlbmQgb2YgZGF0YS5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHRoaXMuX3N0cmVhbXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuX3N0cmVhbXNbaV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIEFkZCBjb250ZW50IHRvIHRoZSBidWZmZXIuXG4gICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHRoaXMuX3N0cmVhbXNbaV0pKSB7XG4gICAgICAgIGRhdGFCdWZmZXIgPSBCdWZmZXIuY29uY2F0KFtkYXRhQnVmZmVyLCB0aGlzLl9zdHJlYW1zW2ldXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhQnVmZmVyID0gQnVmZmVyLmNvbmNhdChbZGF0YUJ1ZmZlciwgQnVmZmVyLmZyb20odGhpcy5fc3RyZWFtc1tpXSldKTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIGJyZWFrIGFmdGVyIGNvbnRlbnQuXG4gICAgICBpZiAodHlwZW9mIHRoaXMuX3N0cmVhbXNbaV0gIT09ICdzdHJpbmcnIHx8IHRoaXMuX3N0cmVhbXNbaV0uc3Vic3RyaW5nKDIsIGJvdW5kYXJ5Lmxlbmd0aCArIDIpICE9PSBib3VuZGFyeSkge1xuICAgICAgICBkYXRhQnVmZmVyID0gQnVmZmVyLmNvbmNhdChbZGF0YUJ1ZmZlciwgQnVmZmVyLmZyb20oRm9ybURhdGEuTElORV9CUkVBSyldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBBZGQgdGhlIGZvb3RlciBhbmQgcmV0dXJuIHRoZSBCdWZmZXIgb2JqZWN0LlxuICByZXR1cm4gQnVmZmVyLmNvbmNhdChbZGF0YUJ1ZmZlciwgQnVmZmVyLmZyb20odGhpcy5fbGFzdEJvdW5kYXJ5KCkpXSk7XG59O1xuXG5Gb3JtRGF0YS5wcm90b3R5cGUuX2dlbmVyYXRlQm91bmRhcnkgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRoaXMgZ2VuZXJhdGVzIGEgNTAgY2hhcmFjdGVyIGJvdW5kYXJ5IHNpbWlsYXIgdG8gdGhvc2UgdXNlZCBieSBGaXJlZm94LlxuXG4gIC8vIFRoZXkgYXJlIG9wdGltaXplZCBmb3IgYm95ZXItbW9vcmUgcGFyc2luZy5cbiAgdGhpcy5fYm91bmRhcnkgPSAnLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0nICsgY3J5cHRvLnJhbmRvbUJ5dGVzKDEyKS50b1N0cmluZygnaGV4Jyk7XG59O1xuXG4vLyBOb3RlOiBnZXRMZW5ndGhTeW5jIERPRVNOJ1QgY2FsY3VsYXRlIHN0cmVhbXMgbGVuZ3RoXG4vLyBBcyB3b3JrYXJvdW5kIG9uZSBjYW4gY2FsY3VsYXRlIGZpbGUgc2l6ZSBtYW51YWxseSBhbmQgYWRkIGl0IGFzIGtub3duTGVuZ3RoIG9wdGlvblxuRm9ybURhdGEucHJvdG90eXBlLmdldExlbmd0aFN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBrbm93bkxlbmd0aCA9IHRoaXMuX292ZXJoZWFkTGVuZ3RoICsgdGhpcy5fdmFsdWVMZW5ndGg7XG5cbiAgLy8gRG9uJ3QgZ2V0IGNvbmZ1c2VkLCB0aGVyZSBhcmUgMyBcImludGVybmFsXCIgc3RyZWFtcyBmb3IgZWFjaCBrZXl2YWwgcGFpciBzbyBpdCBiYXNpY2FsbHkgY2hlY2tzIGlmIHRoZXJlIGlzIGFueSB2YWx1ZSBhZGRlZCB0byB0aGUgZm9ybVxuICBpZiAodGhpcy5fc3RyZWFtcy5sZW5ndGgpIHtcbiAgICBrbm93bkxlbmd0aCArPSB0aGlzLl9sYXN0Qm91bmRhcnkoKS5sZW5ndGg7XG4gIH1cblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm9ybS1kYXRhL2Zvcm0tZGF0YS9pc3N1ZXMvNDBcbiAgaWYgKCF0aGlzLmhhc0tub3duTGVuZ3RoKCkpIHtcbiAgICAvKlxuICAgICAqIFNvbWUgYXN5bmMgbGVuZ3RoIHJldHJpZXZlcnMgYXJlIHByZXNlbnRcbiAgICAgKiB0aGVyZWZvcmUgc3luY2hyb25vdXMgbGVuZ3RoIGNhbGN1bGF0aW9uIGlzIGZhbHNlLlxuICAgICAqIFBsZWFzZSB1c2UgZ2V0TGVuZ3RoKGNhbGxiYWNrKSB0byBnZXQgcHJvcGVyIGxlbmd0aFxuICAgICAqL1xuICAgIHRoaXMuX2Vycm9yKG5ldyBFcnJvcignQ2Fubm90IGNhbGN1bGF0ZSBwcm9wZXIgbGVuZ3RoIGluIHN5bmNocm9ub3VzIHdheS4nKSk7XG4gIH1cblxuICByZXR1cm4ga25vd25MZW5ndGg7XG59O1xuXG4vLyBQdWJsaWMgQVBJIHRvIGNoZWNrIGlmIGxlbmd0aCBvZiBhZGRlZCB2YWx1ZXMgaXMga25vd25cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JtLWRhdGEvZm9ybS1kYXRhL2lzc3Vlcy8xOTZcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JtLWRhdGEvZm9ybS1kYXRhL2lzc3Vlcy8yNjJcbkZvcm1EYXRhLnByb3RvdHlwZS5oYXNLbm93bkxlbmd0aCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhhc0tub3duTGVuZ3RoID0gdHJ1ZTtcblxuICBpZiAodGhpcy5fdmFsdWVzVG9NZWFzdXJlLmxlbmd0aCkge1xuICAgIGhhc0tub3duTGVuZ3RoID0gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gaGFzS25vd25MZW5ndGg7XG59O1xuXG5Gb3JtRGF0YS5wcm90b3R5cGUuZ2V0TGVuZ3RoID0gZnVuY3Rpb24gKGNiKSB7XG4gIHZhciBrbm93bkxlbmd0aCA9IHRoaXMuX292ZXJoZWFkTGVuZ3RoICsgdGhpcy5fdmFsdWVMZW5ndGg7XG5cbiAgaWYgKHRoaXMuX3N0cmVhbXMubGVuZ3RoKSB7XG4gICAga25vd25MZW5ndGggKz0gdGhpcy5fbGFzdEJvdW5kYXJ5KCkubGVuZ3RoO1xuICB9XG5cbiAgaWYgKCF0aGlzLl92YWx1ZXNUb01lYXN1cmUubGVuZ3RoKSB7XG4gICAgcHJvY2Vzcy5uZXh0VGljayhjYi5iaW5kKHRoaXMsIG51bGwsIGtub3duTGVuZ3RoKSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYXN5bmNraXQucGFyYWxsZWwodGhpcy5fdmFsdWVzVG9NZWFzdXJlLCB0aGlzLl9sZW5ndGhSZXRyaWV2ZXIsIGZ1bmN0aW9uIChlcnIsIHZhbHVlcykge1xuICAgIGlmIChlcnIpIHtcbiAgICAgIGNiKGVycik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFsdWVzLmZvckVhY2goZnVuY3Rpb24gKGxlbmd0aCkge1xuICAgICAga25vd25MZW5ndGggKz0gbGVuZ3RoO1xuICAgIH0pO1xuXG4gICAgY2IobnVsbCwga25vd25MZW5ndGgpO1xuICB9KTtcbn07XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5zdWJtaXQgPSBmdW5jdGlvbiAocGFyYW1zLCBjYikge1xuICB2YXIgcmVxdWVzdDtcbiAgdmFyIG9wdGlvbnM7XG4gIHZhciBkZWZhdWx0cyA9IHsgbWV0aG9kOiAncG9zdCcgfTtcblxuICAvLyBwYXJzZSBwcm92aWRlZCB1cmwgaWYgaXQncyBzdHJpbmcgb3IgdHJlYXQgaXQgYXMgb3B0aW9ucyBvYmplY3RcbiAgaWYgKHR5cGVvZiBwYXJhbXMgPT09ICdzdHJpbmcnKSB7XG4gICAgcGFyYW1zID0gcGFyc2VVcmwocGFyYW1zKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIC8qIGVzbGludCBzb3J0LWtleXM6IDAgKi9cbiAgICBvcHRpb25zID0gcG9wdWxhdGUoe1xuICAgICAgcG9ydDogcGFyYW1zLnBvcnQsXG4gICAgICBwYXRoOiBwYXJhbXMucGF0aG5hbWUsXG4gICAgICBob3N0OiBwYXJhbXMuaG9zdG5hbWUsXG4gICAgICBwcm90b2NvbDogcGFyYW1zLnByb3RvY29sXG4gICAgfSwgZGVmYXVsdHMpO1xuICB9IGVsc2UgeyAvLyB1c2UgY3VzdG9tIHBhcmFtc1xuICAgIG9wdGlvbnMgPSBwb3B1bGF0ZShwYXJhbXMsIGRlZmF1bHRzKTtcbiAgICAvLyBpZiBubyBwb3J0IHByb3ZpZGVkIHVzZSBkZWZhdWx0IG9uZVxuICAgIGlmICghb3B0aW9ucy5wb3J0KSB7XG4gICAgICBvcHRpb25zLnBvcnQgPSBvcHRpb25zLnByb3RvY29sID09PSAnaHR0cHM6JyA/IDQ0MyA6IDgwO1xuICAgIH1cbiAgfVxuXG4gIC8vIHB1dCB0aGF0IGdvb2QgY29kZSBpbiBnZXRIZWFkZXJzIHRvIHNvbWUgdXNlXG4gIG9wdGlvbnMuaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycyhwYXJhbXMuaGVhZGVycyk7XG5cbiAgLy8gaHR0cHMgaWYgc3BlY2lmaWVkLCBmYWxsYmFjayB0byBodHRwIGluIGFueSBvdGhlciBjYXNlXG4gIGlmIChvcHRpb25zLnByb3RvY29sID09PSAnaHR0cHM6Jykge1xuICAgIHJlcXVlc3QgPSBodHRwcy5yZXF1ZXN0KG9wdGlvbnMpO1xuICB9IGVsc2Uge1xuICAgIHJlcXVlc3QgPSBodHRwLnJlcXVlc3Qob3B0aW9ucyk7XG4gIH1cblxuICAvLyBnZXQgY29udGVudCBsZW5ndGggYW5kIGZpcmUgYXdheVxuICB0aGlzLmdldExlbmd0aChmdW5jdGlvbiAoZXJyLCBsZW5ndGgpIHtcbiAgICBpZiAoZXJyICYmIGVyciAhPT0gJ1Vua25vd24gc3RyZWFtJykge1xuICAgICAgdGhpcy5fZXJyb3IoZXJyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBhZGQgY29udGVudCBsZW5ndGhcbiAgICBpZiAobGVuZ3RoKSB7XG4gICAgICByZXF1ZXN0LnNldEhlYWRlcignQ29udGVudC1MZW5ndGgnLCBsZW5ndGgpO1xuICAgIH1cblxuICAgIHRoaXMucGlwZShyZXF1ZXN0KTtcbiAgICBpZiAoY2IpIHtcbiAgICAgIHZhciBvblJlc3BvbnNlO1xuXG4gICAgICB2YXIgY2FsbGJhY2sgPSBmdW5jdGlvbiAoZXJyb3IsIHJlc3BvbmNlKSB7XG4gICAgICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgY2FsbGJhY2spO1xuICAgICAgICByZXF1ZXN0LnJlbW92ZUxpc3RlbmVyKCdyZXNwb25zZScsIG9uUmVzcG9uc2UpO1xuXG4gICAgICAgIHJldHVybiBjYi5jYWxsKHRoaXMsIGVycm9yLCByZXNwb25jZSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8taW52YWxpZC10aGlzXG4gICAgICB9O1xuXG4gICAgICBvblJlc3BvbnNlID0gY2FsbGJhY2suYmluZCh0aGlzLCBudWxsKTtcblxuICAgICAgcmVxdWVzdC5vbignZXJyb3InLCBjYWxsYmFjayk7XG4gICAgICByZXF1ZXN0Lm9uKCdyZXNwb25zZScsIG9uUmVzcG9uc2UpO1xuICAgIH1cbiAgfS5iaW5kKHRoaXMpKTtcblxuICByZXR1cm4gcmVxdWVzdDtcbn07XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5fZXJyb3IgPSBmdW5jdGlvbiAoZXJyKSB7XG4gIGlmICghdGhpcy5lcnJvcikge1xuICAgIHRoaXMuZXJyb3IgPSBlcnI7XG4gICAgdGhpcy5wYXVzZSgpO1xuICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpO1xuICB9XG59O1xuXG5Gb3JtRGF0YS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAnW29iamVjdCBGb3JtRGF0YV0nO1xufTtcbnNldFRvU3RyaW5nVGFnKEZvcm1EYXRhLCAnRm9ybURhdGEnKTtcblxuLy8gUHVibGljIEFQSVxubW9kdWxlLmV4cG9ydHMgPSBGb3JtRGF0YTtcbiIsICJpbXBvcnQgRm9ybURhdGEgZnJvbSAnZm9ybS1kYXRhJztcblxuZXhwb3J0IGRlZmF1bHQgRm9ybURhdGE7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSAnLi4vY29yZS9BeGlvc0Vycm9yLmpzJztcbi8vIHRlbXBvcmFyeSBob3RmaXggdG8gYXZvaWQgY2lyY3VsYXIgcmVmZXJlbmNlcyB1bnRpbCBBeGlvc1VSTFNlYXJjaFBhcmFtcyBpcyByZWZhY3RvcmVkXG5pbXBvcnQgUGxhdGZvcm1Gb3JtRGF0YSBmcm9tICcuLi9wbGF0Zm9ybS9ub2RlL2NsYXNzZXMvRm9ybURhdGEuanMnO1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHRoaW5nIGlzIGEgYXJyYXkgb3IganMgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0aGluZyAtIFRoZSBvYmplY3Qgb3IgYXJyYXkgdG8gYmUgdmlzaXRlZC5cbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNWaXNpdGFibGUodGhpbmcpIHtcbiAgcmV0dXJuIHV0aWxzLmlzUGxhaW5PYmplY3QodGhpbmcpIHx8IHV0aWxzLmlzQXJyYXkodGhpbmcpO1xufVxuXG4vKipcbiAqIEl0IHJlbW92ZXMgdGhlIGJyYWNrZXRzIGZyb20gdGhlIGVuZCBvZiBhIHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBwYXJhbWV0ZXIuXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gdGhlIGtleSB3aXRob3V0IHRoZSBicmFja2V0cy5cbiAqL1xuZnVuY3Rpb24gcmVtb3ZlQnJhY2tldHMoa2V5KSB7XG4gIHJldHVybiB1dGlscy5lbmRzV2l0aChrZXksICdbXScpID8ga2V5LnNsaWNlKDAsIC0yKSA6IGtleTtcbn1cblxuLyoqXG4gKiBJdCB0YWtlcyBhIHBhdGgsIGEga2V5LCBhbmQgYSBib29sZWFuLCBhbmQgcmV0dXJucyBhIHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIGN1cnJlbnQga2V5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIGN1cnJlbnQgb2JqZWN0IGJlaW5nIGl0ZXJhdGVkIG92ZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gZG90cyAtIElmIHRydWUsIHRoZSBrZXkgd2lsbCBiZSByZW5kZXJlZCB3aXRoIGRvdHMgaW5zdGVhZCBvZiBicmFja2V0cy5cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgcGF0aCB0byB0aGUgY3VycmVudCBrZXkuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlcktleShwYXRoLCBrZXksIGRvdHMpIHtcbiAgaWYgKCFwYXRoKSByZXR1cm4ga2V5O1xuICByZXR1cm4gcGF0aC5jb25jYXQoa2V5KS5tYXAoZnVuY3Rpb24gZWFjaCh0b2tlbiwgaSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIHRva2VuID0gcmVtb3ZlQnJhY2tldHModG9rZW4pO1xuICAgIHJldHVybiAhZG90cyAmJiBpID8gJ1snICsgdG9rZW4gKyAnXScgOiB0b2tlbjtcbiAgfSkuam9pbihkb3RzID8gJy4nIDogJycpO1xufVxuXG4vKipcbiAqIElmIHRoZSBhcnJheSBpcyBhbiBhcnJheSBhbmQgbm9uZSBvZiBpdHMgZWxlbWVudHMgYXJlIHZpc2l0YWJsZSwgdGhlbiBpdCdzIGEgZmxhdCBhcnJheS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PGFueT59IGFyciAtIFRoZSBhcnJheSB0byBjaGVja1xuICpcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBpc0ZsYXRBcnJheShhcnIpIHtcbiAgcmV0dXJuIHV0aWxzLmlzQXJyYXkoYXJyKSAmJiAhYXJyLnNvbWUoaXNWaXNpdGFibGUpO1xufVxuXG5jb25zdCBwcmVkaWNhdGVzID0gdXRpbHMudG9GbGF0T2JqZWN0KHV0aWxzLCB7fSwgbnVsbCwgZnVuY3Rpb24gZmlsdGVyKHByb3ApIHtcbiAgcmV0dXJuIC9eaXNbQS1aXS8udGVzdChwcm9wKTtcbn0pO1xuXG4vKipcbiAqIENvbnZlcnQgYSBkYXRhIG9iamVjdCB0byBGb3JtRGF0YVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEBwYXJhbSB7P09iamVjdH0gW2Zvcm1EYXRhXVxuICogQHBhcmFtIHs/T2JqZWN0fSBbb3B0aW9uc11cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLnZpc2l0b3JdXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLm1ldGFUb2tlbnMgPSB0cnVlXVxuICogQHBhcmFtIHtCb29sZWFufSBbb3B0aW9ucy5kb3RzID0gZmFsc2VdXG4gKiBAcGFyYW0gez9Cb29sZWFufSBbb3B0aW9ucy5pbmRleGVzID0gZmFsc2VdXG4gKlxuICogQHJldHVybnMge09iamVjdH1cbiAqKi9cblxuLyoqXG4gKiBJdCBjb252ZXJ0cyBhbiBvYmplY3QgaW50byBhIEZvcm1EYXRhIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0PGFueSwgYW55Pn0gb2JqIC0gVGhlIG9iamVjdCB0byBjb252ZXJ0IHRvIGZvcm0gZGF0YS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtRGF0YSAtIFRoZSBGb3JtRGF0YSBvYmplY3QgdG8gYXBwZW5kIHRvLlxuICogQHBhcmFtIHtPYmplY3Q8c3RyaW5nLCBhbnk+fSBvcHRpb25zXG4gKlxuICogQHJldHVybnNcbiAqL1xuZnVuY3Rpb24gdG9Gb3JtRGF0YShvYmosIGZvcm1EYXRhLCBvcHRpb25zKSB7XG4gIGlmICghdXRpbHMuaXNPYmplY3Qob2JqKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3RhcmdldCBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGZvcm1EYXRhID0gZm9ybURhdGEgfHwgbmV3IChQbGF0Zm9ybUZvcm1EYXRhIHx8IEZvcm1EYXRhKSgpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBvcHRpb25zID0gdXRpbHMudG9GbGF0T2JqZWN0KG9wdGlvbnMsIHtcbiAgICBtZXRhVG9rZW5zOiB0cnVlLFxuICAgIGRvdHM6IGZhbHNlLFxuICAgIGluZGV4ZXM6IGZhbHNlXG4gIH0sIGZhbHNlLCBmdW5jdGlvbiBkZWZpbmVkKG9wdGlvbiwgc291cmNlKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVxLW51bGwsZXFlcWVxXG4gICAgcmV0dXJuICF1dGlscy5pc1VuZGVmaW5lZChzb3VyY2Vbb3B0aW9uXSk7XG4gIH0pO1xuXG4gIGNvbnN0IG1ldGFUb2tlbnMgPSBvcHRpb25zLm1ldGFUb2tlbnM7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICBjb25zdCB2aXNpdG9yID0gb3B0aW9ucy52aXNpdG9yIHx8IGRlZmF1bHRWaXNpdG9yO1xuICBjb25zdCBkb3RzID0gb3B0aW9ucy5kb3RzO1xuICBjb25zdCBpbmRleGVzID0gb3B0aW9ucy5pbmRleGVzO1xuICBjb25zdCBfQmxvYiA9IG9wdGlvbnMuQmxvYiB8fCB0eXBlb2YgQmxvYiAhPT0gJ3VuZGVmaW5lZCcgJiYgQmxvYjtcbiAgY29uc3QgdXNlQmxvYiA9IF9CbG9iICYmIHV0aWxzLmlzU3BlY0NvbXBsaWFudEZvcm0oZm9ybURhdGEpO1xuXG4gIGlmICghdXRpbHMuaXNGdW5jdGlvbih2aXNpdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3Zpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gIH1cblxuICBmdW5jdGlvbiBjb252ZXJ0VmFsdWUodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiAnJztcblxuICAgIGlmICh1dGlscy5pc0RhdGUodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUudG9JU09TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAoIXVzZUJsb2IgJiYgdXRpbHMuaXNCbG9iKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEF4aW9zRXJyb3IoJ0Jsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuJyk7XG4gICAgfVxuXG4gICAgaWYgKHV0aWxzLmlzQXJyYXlCdWZmZXIodmFsdWUpIHx8IHV0aWxzLmlzVHlwZWRBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB1c2VCbG9iICYmIHR5cGVvZiBCbG9iID09PSAnZnVuY3Rpb24nID8gbmV3IEJsb2IoW3ZhbHVlXSkgOiBCdWZmZXIuZnJvbSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgdmlzaXRvci5cbiAgICpcbiAgICogQHBhcmFtIHsqfSB2YWx1ZVxuICAgKiBAcGFyYW0ge1N0cmluZ3xOdW1iZXJ9IGtleVxuICAgKiBAcGFyYW0ge0FycmF5PFN0cmluZ3xOdW1iZXI+fSBwYXRoXG4gICAqIEB0aGlzIHtGb3JtRGF0YX1cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHJldHVybiB0cnVlIHRvIHZpc2l0IHRoZSBlYWNoIHByb3Agb2YgdGhlIHZhbHVlIHJlY3Vyc2l2ZWx5XG4gICAqL1xuICBmdW5jdGlvbiBkZWZhdWx0VmlzaXRvcih2YWx1ZSwga2V5LCBwYXRoKSB7XG4gICAgbGV0IGFyciA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlICYmICFwYXRoICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmICh1dGlscy5lbmRzV2l0aChrZXksICd7fScpKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICBrZXkgPSBtZXRhVG9rZW5zID8ga2V5IDoga2V5LnNsaWNlKDAsIC0yKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHZhbHVlID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgKHV0aWxzLmlzQXJyYXkodmFsdWUpICYmIGlzRmxhdEFycmF5KHZhbHVlKSkgfHxcbiAgICAgICAgKCh1dGlscy5pc0ZpbGVMaXN0KHZhbHVlKSB8fCB1dGlscy5lbmRzV2l0aChrZXksICdbXScpKSAmJiAoYXJyID0gdXRpbHMudG9BcnJheSh2YWx1ZSkpXG4gICAgICAgICkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIGtleSA9IHJlbW92ZUJyYWNrZXRzKGtleSk7XG5cbiAgICAgICAgYXJyLmZvckVhY2goZnVuY3Rpb24gZWFjaChlbCwgaW5kZXgpIHtcbiAgICAgICAgICAhKHV0aWxzLmlzVW5kZWZpbmVkKGVsKSB8fCBlbCA9PT0gbnVsbCkgJiYgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5lc3RlZC10ZXJuYXJ5XG4gICAgICAgICAgICBpbmRleGVzID09PSB0cnVlID8gcmVuZGVyS2V5KFtrZXldLCBpbmRleCwgZG90cykgOiAoaW5kZXhlcyA9PT0gbnVsbCA/IGtleSA6IGtleSArICdbXScpLFxuICAgICAgICAgICAgY29udmVydFZhbHVlKGVsKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzVmlzaXRhYmxlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZm9ybURhdGEuYXBwZW5kKHJlbmRlcktleShwYXRoLCBrZXksIGRvdHMpLCBjb252ZXJ0VmFsdWUodmFsdWUpKTtcblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHN0YWNrID0gW107XG5cbiAgY29uc3QgZXhwb3NlZEhlbHBlcnMgPSBPYmplY3QuYXNzaWduKHByZWRpY2F0ZXMsIHtcbiAgICBkZWZhdWx0VmlzaXRvcixcbiAgICBjb252ZXJ0VmFsdWUsXG4gICAgaXNWaXNpdGFibGVcbiAgfSk7XG5cbiAgZnVuY3Rpb24gYnVpbGQodmFsdWUsIHBhdGgpIHtcbiAgICBpZiAodXRpbHMuaXNVbmRlZmluZWQodmFsdWUpKSByZXR1cm47XG5cbiAgICBpZiAoc3RhY2suaW5kZXhPZih2YWx1ZSkgIT09IC0xKSB7XG4gICAgICB0aHJvdyBFcnJvcignQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICcgKyBwYXRoLmpvaW4oJy4nKSk7XG4gICAgfVxuXG4gICAgc3RhY2sucHVzaCh2YWx1ZSk7XG5cbiAgICB1dGlscy5mb3JFYWNoKHZhbHVlLCBmdW5jdGlvbiBlYWNoKGVsLCBrZXkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9ICEodXRpbHMuaXNVbmRlZmluZWQoZWwpIHx8IGVsID09PSBudWxsKSAmJiB2aXNpdG9yLmNhbGwoXG4gICAgICAgIGZvcm1EYXRhLCBlbCwgdXRpbHMuaXNTdHJpbmcoa2V5KSA/IGtleS50cmltKCkgOiBrZXksIHBhdGgsIGV4cG9zZWRIZWxwZXJzXG4gICAgICApO1xuXG4gICAgICBpZiAocmVzdWx0ID09PSB0cnVlKSB7XG4gICAgICAgIGJ1aWxkKGVsLCBwYXRoID8gcGF0aC5jb25jYXQoa2V5KSA6IFtrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHN0YWNrLnBvcCgpO1xuICB9XG5cbiAgaWYgKCF1dGlscy5pc09iamVjdChvYmopKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGF0YSBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICB9XG5cbiAgYnVpbGQob2JqKTtcblxuICByZXR1cm4gZm9ybURhdGE7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRvRm9ybURhdGE7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdG9Gb3JtRGF0YSBmcm9tICcuL3RvRm9ybURhdGEuanMnO1xuXG4vKipcbiAqIEl0IGVuY29kZXMgYSBzdHJpbmcgYnkgcmVwbGFjaW5nIGFsbCBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBpbiB0aGUgdW5yZXNlcnZlZCBzZXQgd2l0aFxuICogdGhlaXIgcGVyY2VudC1lbmNvZGVkIGVxdWl2YWxlbnRzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0ciAtIFRoZSBzdHJpbmcgdG8gZW5jb2RlLlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBlbmNvZGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZW5jb2RlKHN0cikge1xuICBjb25zdCBjaGFyTWFwID0ge1xuICAgICchJzogJyUyMScsXG4gICAgXCInXCI6ICclMjcnLFxuICAgICcoJzogJyUyOCcsXG4gICAgJyknOiAnJTI5JyxcbiAgICAnfic6ICclN0UnLFxuICAgICclMjAnOiAnKycsXG4gICAgJyUwMCc6ICdcXHgwMCdcbiAgfTtcbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnJlcGxhY2UoL1shJygpfl18JTIwfCUwMC9nLCBmdW5jdGlvbiByZXBsYWNlcihtYXRjaCkge1xuICAgIHJldHVybiBjaGFyTWFwW21hdGNoXTtcbiAgfSk7XG59XG5cbi8qKlxuICogSXQgdGFrZXMgYSBwYXJhbXMgb2JqZWN0IGFuZCBjb252ZXJ0cyBpdCB0byBhIEZvcm1EYXRhIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0PHN0cmluZywgYW55Pn0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdG8gYmUgY29udmVydGVkIHRvIGEgRm9ybURhdGEgb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3Q8c3RyaW5nLCBhbnk+fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgb2JqZWN0IHBhc3NlZCB0byB0aGUgQXhpb3MgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIEF4aW9zVVJMU2VhcmNoUGFyYW1zKHBhcmFtcywgb3B0aW9ucykge1xuICB0aGlzLl9wYWlycyA9IFtdO1xuXG4gIHBhcmFtcyAmJiB0b0Zvcm1EYXRhKHBhcmFtcywgdGhpcywgb3B0aW9ucyk7XG59XG5cbmNvbnN0IHByb3RvdHlwZSA9IEF4aW9zVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZTtcblxucHJvdG90eXBlLmFwcGVuZCA9IGZ1bmN0aW9uIGFwcGVuZChuYW1lLCB2YWx1ZSkge1xuICB0aGlzLl9wYWlycy5wdXNoKFtuYW1lLCB2YWx1ZV0pO1xufTtcblxucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoZW5jb2Rlcikge1xuICBjb25zdCBfZW5jb2RlID0gZW5jb2RlciA/IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIGVuY29kZXIuY2FsbCh0aGlzLCB2YWx1ZSwgZW5jb2RlKTtcbiAgfSA6IGVuY29kZTtcblxuICByZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uIGVhY2gocGFpcikge1xuICAgIHJldHVybiBfZW5jb2RlKHBhaXJbMF0pICsgJz0nICsgX2VuY29kZShwYWlyWzFdKTtcbiAgfSwgJycpLmpvaW4oJyYnKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEF4aW9zVVJMU2VhcmNoUGFyYW1zO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcbmltcG9ydCBBeGlvc1VSTFNlYXJjaFBhcmFtcyBmcm9tICcuLi9oZWxwZXJzL0F4aW9zVVJMU2VhcmNoUGFyYW1zLmpzJztcblxuLyoqXG4gKiBJdCByZXBsYWNlcyBhbGwgaW5zdGFuY2VzIG9mIHRoZSBjaGFyYWN0ZXJzIGA6YCwgYCRgLCBgLGAsIGArYCwgYFtgLCBhbmQgYF1gIHdpdGggdGhlaXJcbiAqIFVSSSBlbmNvZGVkIGNvdW50ZXJwYXJ0c1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWwgVGhlIHZhbHVlIHRvIGJlIGVuY29kZWQuXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGVuY29kZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGVuY29kZSh2YWwpIHtcbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh2YWwpLlxuICAgIHJlcGxhY2UoLyUzQS9naSwgJzonKS5cbiAgICByZXBsYWNlKC8lMjQvZywgJyQnKS5cbiAgICByZXBsYWNlKC8lMkMvZ2ksICcsJykuXG4gICAgcmVwbGFjZSgvJTIwL2csICcrJykuXG4gICAgcmVwbGFjZSgvJTVCL2dpLCAnWycpLlxuICAgIHJlcGxhY2UoLyU1RC9naSwgJ10nKTtcbn1cblxuLyoqXG4gKiBCdWlsZCBhIFVSTCBieSBhcHBlbmRpbmcgcGFyYW1zIHRvIHRoZSBlbmRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBiYXNlIG9mIHRoZSB1cmwgKGUuZy4sIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbSlcbiAqIEBwYXJhbSB7b2JqZWN0fSBbcGFyYW1zXSBUaGUgcGFyYW1zIHRvIGJlIGFwcGVuZGVkXG4gKiBAcGFyYW0gez8ob2JqZWN0fEZ1bmN0aW9uKX0gb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBmb3JtYXR0ZWQgdXJsXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJ1aWxkVVJMKHVybCwgcGFyYW1zLCBvcHRpb25zKSB7XG4gIC8qZXNsaW50IG5vLXBhcmFtLXJlYXNzaWduOjAqL1xuICBpZiAoIXBhcmFtcykge1xuICAgIHJldHVybiB1cmw7XG4gIH1cbiAgXG4gIGNvbnN0IF9lbmNvZGUgPSBvcHRpb25zICYmIG9wdGlvbnMuZW5jb2RlIHx8IGVuY29kZTtcblxuICBpZiAodXRpbHMuaXNGdW5jdGlvbihvcHRpb25zKSkge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICBzZXJpYWxpemU6IG9wdGlvbnNcbiAgICB9O1xuICB9IFxuXG4gIGNvbnN0IHNlcmlhbGl6ZUZuID0gb3B0aW9ucyAmJiBvcHRpb25zLnNlcmlhbGl6ZTtcblxuICBsZXQgc2VyaWFsaXplZFBhcmFtcztcblxuICBpZiAoc2VyaWFsaXplRm4pIHtcbiAgICBzZXJpYWxpemVkUGFyYW1zID0gc2VyaWFsaXplRm4ocGFyYW1zLCBvcHRpb25zKTtcbiAgfSBlbHNlIHtcbiAgICBzZXJpYWxpemVkUGFyYW1zID0gdXRpbHMuaXNVUkxTZWFyY2hQYXJhbXMocGFyYW1zKSA/XG4gICAgICBwYXJhbXMudG9TdHJpbmcoKSA6XG4gICAgICBuZXcgQXhpb3NVUkxTZWFyY2hQYXJhbXMocGFyYW1zLCBvcHRpb25zKS50b1N0cmluZyhfZW5jb2RlKTtcbiAgfVxuXG4gIGlmIChzZXJpYWxpemVkUGFyYW1zKSB7XG4gICAgY29uc3QgaGFzaG1hcmtJbmRleCA9IHVybC5pbmRleE9mKFwiI1wiKTtcblxuICAgIGlmIChoYXNobWFya0luZGV4ICE9PSAtMSkge1xuICAgICAgdXJsID0gdXJsLnNsaWNlKDAsIGhhc2htYXJrSW5kZXgpO1xuICAgIH1cbiAgICB1cmwgKz0gKHVybC5pbmRleE9mKCc/JykgPT09IC0xID8gJz8nIDogJyYnKSArIHNlcmlhbGl6ZWRQYXJhbXM7XG4gIH1cblxuICByZXR1cm4gdXJsO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4vLi4vdXRpbHMuanMnO1xuXG5jbGFzcyBJbnRlcmNlcHRvck1hbmFnZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmhhbmRsZXJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IGludGVyY2VwdG9yIHRvIHRoZSBzdGFja1xuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdWxmaWxsZWQgVGhlIGZ1bmN0aW9uIHRvIGhhbmRsZSBgdGhlbmAgZm9yIGEgYFByb21pc2VgXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHJlamVjdGVkIFRoZSBmdW5jdGlvbiB0byBoYW5kbGUgYHJlamVjdGAgZm9yIGEgYFByb21pc2VgXG4gICAqXG4gICAqIEByZXR1cm4ge051bWJlcn0gQW4gSUQgdXNlZCB0byByZW1vdmUgaW50ZXJjZXB0b3IgbGF0ZXJcbiAgICovXG4gIHVzZShmdWxmaWxsZWQsIHJlamVjdGVkLCBvcHRpb25zKSB7XG4gICAgdGhpcy5oYW5kbGVycy5wdXNoKHtcbiAgICAgIGZ1bGZpbGxlZCxcbiAgICAgIHJlamVjdGVkLFxuICAgICAgc3luY2hyb25vdXM6IG9wdGlvbnMgPyBvcHRpb25zLnN5bmNocm9ub3VzIDogZmFsc2UsXG4gICAgICBydW5XaGVuOiBvcHRpb25zID8gb3B0aW9ucy5ydW5XaGVuIDogbnVsbFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmhhbmRsZXJzLmxlbmd0aCAtIDE7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIGludGVyY2VwdG9yIGZyb20gdGhlIHN0YWNrXG4gICAqXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBpZCBUaGUgSUQgdGhhdCB3YXMgcmV0dXJuZWQgYnkgYHVzZWBcbiAgICpcbiAgICogQHJldHVybnMge0Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgaW50ZXJjZXB0b3Igd2FzIHJlbW92ZWQsIGBmYWxzZWAgb3RoZXJ3aXNlXG4gICAqL1xuICBlamVjdChpZCkge1xuICAgIGlmICh0aGlzLmhhbmRsZXJzW2lkXSkge1xuICAgICAgdGhpcy5oYW5kbGVyc1tpZF0gPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhbGwgaW50ZXJjZXB0b3JzIGZyb20gdGhlIHN0YWNrXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgaWYgKHRoaXMuaGFuZGxlcnMpIHtcbiAgICAgIHRoaXMuaGFuZGxlcnMgPSBbXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSXRlcmF0ZSBvdmVyIGFsbCB0aGUgcmVnaXN0ZXJlZCBpbnRlcmNlcHRvcnNcbiAgICpcbiAgICogVGhpcyBtZXRob2QgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3Igc2tpcHBpbmcgb3ZlciBhbnlcbiAgICogaW50ZXJjZXB0b3JzIHRoYXQgbWF5IGhhdmUgYmVjb21lIGBudWxsYCBjYWxsaW5nIGBlamVjdGAuXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBjYWxsIGZvciBlYWNoIGludGVyY2VwdG9yXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZm9yRWFjaChmbikge1xuICAgIHV0aWxzLmZvckVhY2godGhpcy5oYW5kbGVycywgZnVuY3Rpb24gZm9yRWFjaEhhbmRsZXIoaCkge1xuICAgICAgaWYgKGggIT09IG51bGwpIHtcbiAgICAgICAgZm4oaCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSW50ZXJjZXB0b3JNYW5hZ2VyO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBzaWxlbnRKU09OUGFyc2luZzogdHJ1ZSxcbiAgZm9yY2VkSlNPTlBhcnNpbmc6IHRydWUsXG4gIGNsYXJpZnlUaW1lb3V0RXJyb3I6IGZhbHNlXG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuZXhwb3J0IGRlZmF1bHQgdXJsLlVSTFNlYXJjaFBhcmFtcztcbiIsICJpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgVVJMU2VhcmNoUGFyYW1zIGZyb20gJy4vY2xhc3Nlcy9VUkxTZWFyY2hQYXJhbXMuanMnXG5pbXBvcnQgRm9ybURhdGEgZnJvbSAnLi9jbGFzc2VzL0Zvcm1EYXRhLmpzJ1xuXG5jb25zdCBBTFBIQSA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidcblxuY29uc3QgRElHSVQgPSAnMDEyMzQ1Njc4OSc7XG5cbmNvbnN0IEFMUEhBQkVUID0ge1xuICBESUdJVCxcbiAgQUxQSEEsXG4gIEFMUEhBX0RJR0lUOiBBTFBIQSArIEFMUEhBLnRvVXBwZXJDYXNlKCkgKyBESUdJVFxufVxuXG5jb25zdCBnZW5lcmF0ZVN0cmluZyA9IChzaXplID0gMTYsIGFscGhhYmV0ID0gQUxQSEFCRVQuQUxQSEFfRElHSVQpID0+IHtcbiAgbGV0IHN0ciA9ICcnO1xuICBjb25zdCB7bGVuZ3RofSA9IGFscGhhYmV0O1xuICBjb25zdCByYW5kb21WYWx1ZXMgPSBuZXcgVWludDMyQXJyYXkoc2l6ZSk7XG4gIGNyeXB0by5yYW5kb21GaWxsU3luYyhyYW5kb21WYWx1ZXMpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykge1xuICAgIHN0ciArPSBhbHBoYWJldFtyYW5kb21WYWx1ZXNbaV0gJSBsZW5ndGhdO1xuICB9XG5cbiAgcmV0dXJuIHN0cjtcbn1cblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGlzTm9kZTogdHJ1ZSxcbiAgY2xhc3Nlczoge1xuICAgIFVSTFNlYXJjaFBhcmFtcyxcbiAgICBGb3JtRGF0YSxcbiAgICBCbG9iOiB0eXBlb2YgQmxvYiAhPT0gJ3VuZGVmaW5lZCcgJiYgQmxvYiB8fCBudWxsXG4gIH0sXG4gIEFMUEhBQkVULFxuICBnZW5lcmF0ZVN0cmluZyxcbiAgcHJvdG9jb2xzOiBbICdodHRwJywgJ2h0dHBzJywgJ2ZpbGUnLCAnZGF0YScgXVxufTtcbiIsICJjb25zdCBoYXNCcm93c2VyRW52ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJztcblxuY29uc3QgX25hdmlnYXRvciA9IHR5cGVvZiBuYXZpZ2F0b3IgPT09ICdvYmplY3QnICYmIG5hdmlnYXRvciB8fCB1bmRlZmluZWQ7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBzdGFuZGFyZCBicm93c2VyIGVudmlyb25tZW50XG4gKlxuICogVGhpcyBhbGxvd3MgYXhpb3MgdG8gcnVuIGluIGEgd2ViIHdvcmtlciwgYW5kIHJlYWN0LW5hdGl2ZS5cbiAqIEJvdGggZW52aXJvbm1lbnRzIHN1cHBvcnQgWE1MSHR0cFJlcXVlc3QsIGJ1dCBub3QgZnVsbHkgc3RhbmRhcmQgZ2xvYmFscy5cbiAqXG4gKiB3ZWIgd29ya2VyczpcbiAqICB0eXBlb2Ygd2luZG93IC0+IHVuZGVmaW5lZFxuICogIHR5cGVvZiBkb2N1bWVudCAtPiB1bmRlZmluZWRcbiAqXG4gKiByZWFjdC1uYXRpdmU6XG4gKiAgbmF2aWdhdG9yLnByb2R1Y3QgLT4gJ1JlYWN0TmF0aXZlJ1xuICogbmF0aXZlc2NyaXB0XG4gKiAgbmF2aWdhdG9yLnByb2R1Y3QgLT4gJ05hdGl2ZVNjcmlwdCcgb3IgJ05TJ1xuICpcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5jb25zdCBoYXNTdGFuZGFyZEJyb3dzZXJFbnYgPSBoYXNCcm93c2VyRW52ICYmXG4gICghX25hdmlnYXRvciB8fCBbJ1JlYWN0TmF0aXZlJywgJ05hdGl2ZVNjcmlwdCcsICdOUyddLmluZGV4T2YoX25hdmlnYXRvci5wcm9kdWN0KSA8IDApO1xuXG4vKipcbiAqIERldGVybWluZSBpZiB3ZSdyZSBydW5uaW5nIGluIGEgc3RhbmRhcmQgYnJvd3NlciB3ZWJXb3JrZXIgZW52aXJvbm1lbnRcbiAqXG4gKiBBbHRob3VnaCB0aGUgYGlzU3RhbmRhcmRCcm93c2VyRW52YCBtZXRob2QgaW5kaWNhdGVzIHRoYXRcbiAqIGBhbGxvd3MgYXhpb3MgdG8gcnVuIGluIGEgd2ViIHdvcmtlcmAsIHRoZSBXZWJXb3JrZXIgd2lsbCBzdGlsbCBiZVxuICogZmlsdGVyZWQgb3V0IGR1ZSB0byBpdHMganVkZ21lbnQgc3RhbmRhcmRcbiAqIGB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnYC5cbiAqIFRoaXMgbGVhZHMgdG8gYSBwcm9ibGVtIHdoZW4gYXhpb3MgcG9zdCBgRm9ybURhdGFgIGluIHdlYldvcmtlclxuICovXG5jb25zdCBoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYgPSAoKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICBzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUgJiZcbiAgICB0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzID09PSAnZnVuY3Rpb24nXG4gICk7XG59KSgpO1xuXG5jb25zdCBvcmlnaW4gPSBoYXNCcm93c2VyRW52ICYmIHdpbmRvdy5sb2NhdGlvbi5ocmVmIHx8ICdodHRwOi8vbG9jYWxob3N0JztcblxuZXhwb3J0IHtcbiAgaGFzQnJvd3NlckVudixcbiAgaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52LFxuICBoYXNTdGFuZGFyZEJyb3dzZXJFbnYsXG4gIF9uYXZpZ2F0b3IgYXMgbmF2aWdhdG9yLFxuICBvcmlnaW5cbn1cbiIsICJpbXBvcnQgcGxhdGZvcm0gZnJvbSAnLi9ub2RlL2luZGV4LmpzJztcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJy4vY29tbW9uL3V0aWxzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICAuLi51dGlscyxcbiAgLi4ucGxhdGZvcm1cbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgdG9Gb3JtRGF0YSBmcm9tICcuL3RvRm9ybURhdGEuanMnO1xuaW1wb3J0IHBsYXRmb3JtIGZyb20gJy4uL3BsYXRmb3JtL2luZGV4LmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9VUkxFbmNvZGVkRm9ybShkYXRhLCBvcHRpb25zKSB7XG4gIHJldHVybiB0b0Zvcm1EYXRhKGRhdGEsIG5ldyBwbGF0Zm9ybS5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcygpLCBPYmplY3QuYXNzaWduKHtcbiAgICB2aXNpdG9yOiBmdW5jdGlvbih2YWx1ZSwga2V5LCBwYXRoLCBoZWxwZXJzKSB7XG4gICAgICBpZiAocGxhdGZvcm0uaXNOb2RlICYmIHV0aWxzLmlzQnVmZmVyKHZhbHVlKSkge1xuICAgICAgICB0aGlzLmFwcGVuZChrZXksIHZhbHVlLnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGhlbHBlcnMuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG4gIH0sIG9wdGlvbnMpKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5cbi8qKlxuICogSXQgdGFrZXMgYSBzdHJpbmcgbGlrZSBgZm9vW3hdW3ldW3pdYCBhbmQgcmV0dXJucyBhbiBhcnJheSBsaWtlIGBbJ2ZvbycsICd4JywgJ3knLCAneiddXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICpcbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlUHJvcFBhdGgobmFtZSkge1xuICAvLyBmb29beF1beV1bel1cbiAgLy8gZm9vLngueS56XG4gIC8vIGZvby14LXktelxuICAvLyBmb28geCB5IHpcbiAgcmV0dXJuIHV0aWxzLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZywgbmFtZSkubWFwKG1hdGNoID0+IHtcbiAgICByZXR1cm4gbWF0Y2hbMF0gPT09ICdbXScgPyAnJyA6IG1hdGNoWzFdIHx8IG1hdGNoWzBdO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGFuIGFycmF5IHRvIGFuIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PGFueT59IGFyciAtIFRoZSBhcnJheSB0byBjb252ZXJ0IHRvIGFuIG9iamVjdC5cbiAqXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCB0aGUgc2FtZSBrZXlzIGFuZCB2YWx1ZXMgYXMgdGhlIGFycmF5LlxuICovXG5mdW5jdGlvbiBhcnJheVRvT2JqZWN0KGFycikge1xuICBjb25zdCBvYmogPSB7fTtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGFycik7XG4gIGxldCBpO1xuICBjb25zdCBsZW4gPSBrZXlzLmxlbmd0aDtcbiAgbGV0IGtleTtcbiAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAga2V5ID0ga2V5c1tpXTtcbiAgICBvYmpba2V5XSA9IGFycltrZXldO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogSXQgdGFrZXMgYSBGb3JtRGF0YSBvYmplY3QgYW5kIHJldHVybnMgYSBKYXZhU2NyaXB0IG9iamVjdFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtRGF0YSBUaGUgRm9ybURhdGEgb2JqZWN0IHRvIGNvbnZlcnQgdG8gSlNPTi5cbiAqXG4gKiBAcmV0dXJucyB7T2JqZWN0PHN0cmluZywgYW55PiB8IG51bGx9IFRoZSBjb252ZXJ0ZWQgb2JqZWN0LlxuICovXG5mdW5jdGlvbiBmb3JtRGF0YVRvSlNPTihmb3JtRGF0YSkge1xuICBmdW5jdGlvbiBidWlsZFBhdGgocGF0aCwgdmFsdWUsIHRhcmdldCwgaW5kZXgpIHtcbiAgICBsZXQgbmFtZSA9IHBhdGhbaW5kZXgrK107XG5cbiAgICBpZiAobmFtZSA9PT0gJ19fcHJvdG9fXycpIHJldHVybiB0cnVlO1xuXG4gICAgY29uc3QgaXNOdW1lcmljS2V5ID0gTnVtYmVyLmlzRmluaXRlKCtuYW1lKTtcbiAgICBjb25zdCBpc0xhc3QgPSBpbmRleCA+PSBwYXRoLmxlbmd0aDtcbiAgICBuYW1lID0gIW5hbWUgJiYgdXRpbHMuaXNBcnJheSh0YXJnZXQpID8gdGFyZ2V0Lmxlbmd0aCA6IG5hbWU7XG5cbiAgICBpZiAoaXNMYXN0KSB7XG4gICAgICBpZiAodXRpbHMuaGFzT3duUHJvcCh0YXJnZXQsIG5hbWUpKSB7XG4gICAgICAgIHRhcmdldFtuYW1lXSA9IFt0YXJnZXRbbmFtZV0sIHZhbHVlXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhcmdldFtuYW1lXSA9IHZhbHVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gIWlzTnVtZXJpY0tleTtcbiAgICB9XG5cbiAgICBpZiAoIXRhcmdldFtuYW1lXSB8fCAhdXRpbHMuaXNPYmplY3QodGFyZ2V0W25hbWVdKSkge1xuICAgICAgdGFyZ2V0W25hbWVdID0gW107XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYnVpbGRQYXRoKHBhdGgsIHZhbHVlLCB0YXJnZXRbbmFtZV0sIGluZGV4KTtcblxuICAgIGlmIChyZXN1bHQgJiYgdXRpbHMuaXNBcnJheSh0YXJnZXRbbmFtZV0pKSB7XG4gICAgICB0YXJnZXRbbmFtZV0gPSBhcnJheVRvT2JqZWN0KHRhcmdldFtuYW1lXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuICFpc051bWVyaWNLZXk7XG4gIH1cblxuICBpZiAodXRpbHMuaXNGb3JtRGF0YShmb3JtRGF0YSkgJiYgdXRpbHMuaXNGdW5jdGlvbihmb3JtRGF0YS5lbnRyaWVzKSkge1xuICAgIGNvbnN0IG9iaiA9IHt9O1xuXG4gICAgdXRpbHMuZm9yRWFjaEVudHJ5KGZvcm1EYXRhLCAobmFtZSwgdmFsdWUpID0+IHtcbiAgICAgIGJ1aWxkUGF0aChwYXJzZVByb3BQYXRoKG5hbWUpLCB2YWx1ZSwgb2JqLCAwKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZm9ybURhdGFUb0pTT047XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSAnLi4vY29yZS9BeGlvc0Vycm9yLmpzJztcbmltcG9ydCB0cmFuc2l0aW9uYWxEZWZhdWx0cyBmcm9tICcuL3RyYW5zaXRpb25hbC5qcyc7XG5pbXBvcnQgdG9Gb3JtRGF0YSBmcm9tICcuLi9oZWxwZXJzL3RvRm9ybURhdGEuanMnO1xuaW1wb3J0IHRvVVJMRW5jb2RlZEZvcm0gZnJvbSAnLi4vaGVscGVycy90b1VSTEVuY29kZWRGb3JtLmpzJztcbmltcG9ydCBwbGF0Zm9ybSBmcm9tICcuLi9wbGF0Zm9ybS9pbmRleC5qcyc7XG5pbXBvcnQgZm9ybURhdGFUb0pTT04gZnJvbSAnLi4vaGVscGVycy9mb3JtRGF0YVRvSlNPTi5qcyc7XG5cbi8qKlxuICogSXQgdGFrZXMgYSBzdHJpbmcsIHRyaWVzIHRvIHBhcnNlIGl0LCBhbmQgaWYgaXQgZmFpbHMsIGl0IHJldHVybnMgdGhlIHN0cmluZ2lmaWVkIHZlcnNpb25cbiAqIG9mIHRoZSBpbnB1dFxuICpcbiAqIEBwYXJhbSB7YW55fSByYXdWYWx1ZSAtIFRoZSB2YWx1ZSB0byBiZSBzdHJpbmdpZmllZC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHBhcnNlciAtIEEgZnVuY3Rpb24gdGhhdCBwYXJzZXMgYSBzdHJpbmcgaW50byBhIEphdmFTY3JpcHQgb2JqZWN0LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZW5jb2RlciAtIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHZhbHVlIGFuZCByZXR1cm5zIGEgc3RyaW5nLlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgc3RyaW5naWZpZWQgdmVyc2lvbiBvZiB0aGUgcmF3VmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHN0cmluZ2lmeVNhZmVseShyYXdWYWx1ZSwgcGFyc2VyLCBlbmNvZGVyKSB7XG4gIGlmICh1dGlscy5pc1N0cmluZyhyYXdWYWx1ZSkpIHtcbiAgICB0cnkge1xuICAgICAgKHBhcnNlciB8fCBKU09OLnBhcnNlKShyYXdWYWx1ZSk7XG4gICAgICByZXR1cm4gdXRpbHMudHJpbShyYXdWYWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUubmFtZSAhPT0gJ1N5bnRheEVycm9yJykge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAoZW5jb2RlciB8fCBKU09OLnN0cmluZ2lmeSkocmF3VmFsdWUpO1xufVxuXG5jb25zdCBkZWZhdWx0cyA9IHtcblxuICB0cmFuc2l0aW9uYWw6IHRyYW5zaXRpb25hbERlZmF1bHRzLFxuXG4gIGFkYXB0ZXI6IFsneGhyJywgJ2h0dHAnLCAnZmV0Y2gnXSxcblxuICB0cmFuc2Zvcm1SZXF1ZXN0OiBbZnVuY3Rpb24gdHJhbnNmb3JtUmVxdWVzdChkYXRhLCBoZWFkZXJzKSB7XG4gICAgY29uc3QgY29udGVudFR5cGUgPSBoZWFkZXJzLmdldENvbnRlbnRUeXBlKCkgfHwgJyc7XG4gICAgY29uc3QgaGFzSlNPTkNvbnRlbnRUeXBlID0gY29udGVudFR5cGUuaW5kZXhPZignYXBwbGljYXRpb24vanNvbicpID4gLTE7XG4gICAgY29uc3QgaXNPYmplY3RQYXlsb2FkID0gdXRpbHMuaXNPYmplY3QoZGF0YSk7XG5cbiAgICBpZiAoaXNPYmplY3RQYXlsb2FkICYmIHV0aWxzLmlzSFRNTEZvcm0oZGF0YSkpIHtcbiAgICAgIGRhdGEgPSBuZXcgRm9ybURhdGEoZGF0YSk7XG4gICAgfVxuXG4gICAgY29uc3QgaXNGb3JtRGF0YSA9IHV0aWxzLmlzRm9ybURhdGEoZGF0YSk7XG5cbiAgICBpZiAoaXNGb3JtRGF0YSkge1xuICAgICAgcmV0dXJuIGhhc0pTT05Db250ZW50VHlwZSA/IEpTT04uc3RyaW5naWZ5KGZvcm1EYXRhVG9KU09OKGRhdGEpKSA6IGRhdGE7XG4gICAgfVxuXG4gICAgaWYgKHV0aWxzLmlzQXJyYXlCdWZmZXIoZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzQnVmZmVyKGRhdGEpIHx8XG4gICAgICB1dGlscy5pc1N0cmVhbShkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNGaWxlKGRhdGEpIHx8XG4gICAgICB1dGlscy5pc0Jsb2IoZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzUmVhZGFibGVTdHJlYW0oZGF0YSlcbiAgICApIHtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBpZiAodXRpbHMuaXNBcnJheUJ1ZmZlclZpZXcoZGF0YSkpIHtcbiAgICAgIHJldHVybiBkYXRhLmJ1ZmZlcjtcbiAgICB9XG4gICAgaWYgKHV0aWxzLmlzVVJMU2VhcmNoUGFyYW1zKGRhdGEpKSB7XG4gICAgICBoZWFkZXJzLnNldENvbnRlbnRUeXBlKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCcsIGZhbHNlKTtcbiAgICAgIHJldHVybiBkYXRhLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgbGV0IGlzRmlsZUxpc3Q7XG5cbiAgICBpZiAoaXNPYmplY3RQYXlsb2FkKSB7XG4gICAgICBpZiAoY29udGVudFR5cGUuaW5kZXhPZignYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJykgPiAtMSkge1xuICAgICAgICByZXR1cm4gdG9VUkxFbmNvZGVkRm9ybShkYXRhLCB0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO1xuICAgICAgfVxuXG4gICAgICBpZiAoKGlzRmlsZUxpc3QgPSB1dGlscy5pc0ZpbGVMaXN0KGRhdGEpKSB8fCBjb250ZW50VHlwZS5pbmRleE9mKCdtdWx0aXBhcnQvZm9ybS1kYXRhJykgPiAtMSkge1xuICAgICAgICBjb25zdCBfRm9ybURhdGEgPSB0aGlzLmVudiAmJiB0aGlzLmVudi5Gb3JtRGF0YTtcblxuICAgICAgICByZXR1cm4gdG9Gb3JtRGF0YShcbiAgICAgICAgICBpc0ZpbGVMaXN0ID8geydmaWxlc1tdJzogZGF0YX0gOiBkYXRhLFxuICAgICAgICAgIF9Gb3JtRGF0YSAmJiBuZXcgX0Zvcm1EYXRhKCksXG4gICAgICAgICAgdGhpcy5mb3JtU2VyaWFsaXplclxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc09iamVjdFBheWxvYWQgfHwgaGFzSlNPTkNvbnRlbnRUeXBlICkge1xuICAgICAgaGVhZGVycy5zZXRDb250ZW50VHlwZSgnYXBwbGljYXRpb24vanNvbicsIGZhbHNlKTtcbiAgICAgIHJldHVybiBzdHJpbmdpZnlTYWZlbHkoZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1dLFxuXG4gIHRyYW5zZm9ybVJlc3BvbnNlOiBbZnVuY3Rpb24gdHJhbnNmb3JtUmVzcG9uc2UoZGF0YSkge1xuICAgIGNvbnN0IHRyYW5zaXRpb25hbCA9IHRoaXMudHJhbnNpdGlvbmFsIHx8IGRlZmF1bHRzLnRyYW5zaXRpb25hbDtcbiAgICBjb25zdCBmb3JjZWRKU09OUGFyc2luZyA9IHRyYW5zaXRpb25hbCAmJiB0cmFuc2l0aW9uYWwuZm9yY2VkSlNPTlBhcnNpbmc7XG4gICAgY29uc3QgSlNPTlJlcXVlc3RlZCA9IHRoaXMucmVzcG9uc2VUeXBlID09PSAnanNvbic7XG5cbiAgICBpZiAodXRpbHMuaXNSZXNwb25zZShkYXRhKSB8fCB1dGlscy5pc1JlYWRhYmxlU3RyZWFtKGRhdGEpKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBpZiAoZGF0YSAmJiB1dGlscy5pc1N0cmluZyhkYXRhKSAmJiAoKGZvcmNlZEpTT05QYXJzaW5nICYmICF0aGlzLnJlc3BvbnNlVHlwZSkgfHwgSlNPTlJlcXVlc3RlZCkpIHtcbiAgICAgIGNvbnN0IHNpbGVudEpTT05QYXJzaW5nID0gdHJhbnNpdGlvbmFsICYmIHRyYW5zaXRpb25hbC5zaWxlbnRKU09OUGFyc2luZztcbiAgICAgIGNvbnN0IHN0cmljdEpTT05QYXJzaW5nID0gIXNpbGVudEpTT05QYXJzaW5nICYmIEpTT05SZXF1ZXN0ZWQ7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoc3RyaWN0SlNPTlBhcnNpbmcpIHtcbiAgICAgICAgICBpZiAoZS5uYW1lID09PSAnU3ludGF4RXJyb3InKSB7XG4gICAgICAgICAgICB0aHJvdyBBeGlvc0Vycm9yLmZyb20oZSwgQXhpb3NFcnJvci5FUlJfQkFEX1JFU1BPTlNFLCB0aGlzLCBudWxsLCB0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XSxcblxuICAvKipcbiAgICogQSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyB0byBhYm9ydCBhIHJlcXVlc3QuIElmIHNldCB0byAwIChkZWZhdWx0KSBhXG4gICAqIHRpbWVvdXQgaXMgbm90IGNyZWF0ZWQuXG4gICAqL1xuICB0aW1lb3V0OiAwLFxuXG4gIHhzcmZDb29raWVOYW1lOiAnWFNSRi1UT0tFTicsXG4gIHhzcmZIZWFkZXJOYW1lOiAnWC1YU1JGLVRPS0VOJyxcblxuICBtYXhDb250ZW50TGVuZ3RoOiAtMSxcbiAgbWF4Qm9keUxlbmd0aDogLTEsXG5cbiAgZW52OiB7XG4gICAgRm9ybURhdGE6IHBsYXRmb3JtLmNsYXNzZXMuRm9ybURhdGEsXG4gICAgQmxvYjogcGxhdGZvcm0uY2xhc3Nlcy5CbG9iXG4gIH0sXG5cbiAgdmFsaWRhdGVTdGF0dXM6IGZ1bmN0aW9uIHZhbGlkYXRlU3RhdHVzKHN0YXR1cykge1xuICAgIHJldHVybiBzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMDtcbiAgfSxcblxuICBoZWFkZXJzOiB7XG4gICAgY29tbW9uOiB7XG4gICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKicsXG4gICAgICAnQ29udGVudC1UeXBlJzogdW5kZWZpbmVkXG4gICAgfVxuICB9XG59O1xuXG51dGlscy5mb3JFYWNoKFsnZGVsZXRlJywgJ2dldCcsICdoZWFkJywgJ3Bvc3QnLCAncHV0JywgJ3BhdGNoJ10sIChtZXRob2QpID0+IHtcbiAgZGVmYXVsdHMuaGVhZGVyc1ttZXRob2RdID0ge307XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgZGVmYXVsdHM7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi8uLi91dGlscy5qcyc7XG5cbi8vIFJhd0F4aW9zSGVhZGVycyB3aG9zZSBkdXBsaWNhdGVzIGFyZSBpZ25vcmVkIGJ5IG5vZGVcbi8vIGMuZi4gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9odHRwLmh0bWwjaHR0cF9tZXNzYWdlX2hlYWRlcnNcbmNvbnN0IGlnbm9yZUR1cGxpY2F0ZU9mID0gdXRpbHMudG9PYmplY3RTZXQoW1xuICAnYWdlJywgJ2F1dGhvcml6YXRpb24nLCAnY29udGVudC1sZW5ndGgnLCAnY29udGVudC10eXBlJywgJ2V0YWcnLFxuICAnZXhwaXJlcycsICdmcm9tJywgJ2hvc3QnLCAnaWYtbW9kaWZpZWQtc2luY2UnLCAnaWYtdW5tb2RpZmllZC1zaW5jZScsXG4gICdsYXN0LW1vZGlmaWVkJywgJ2xvY2F0aW9uJywgJ21heC1mb3J3YXJkcycsICdwcm94eS1hdXRob3JpemF0aW9uJyxcbiAgJ3JlZmVyZXInLCAncmV0cnktYWZ0ZXInLCAndXNlci1hZ2VudCdcbl0pO1xuXG4vKipcbiAqIFBhcnNlIGhlYWRlcnMgaW50byBhbiBvYmplY3RcbiAqXG4gKiBgYGBcbiAqIERhdGU6IFdlZCwgMjcgQXVnIDIwMTQgMDg6NTg6NDkgR01UXG4gKiBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25cbiAqIENvbm5lY3Rpb246IGtlZXAtYWxpdmVcbiAqIFRyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gcmF3SGVhZGVycyBIZWFkZXJzIG5lZWRpbmcgdG8gYmUgcGFyc2VkXG4gKlxuICogQHJldHVybnMge09iamVjdH0gSGVhZGVycyBwYXJzZWQgaW50byBhbiBvYmplY3RcbiAqL1xuZXhwb3J0IGRlZmF1bHQgcmF3SGVhZGVycyA9PiB7XG4gIGNvbnN0IHBhcnNlZCA9IHt9O1xuICBsZXQga2V5O1xuICBsZXQgdmFsO1xuICBsZXQgaTtcblxuICByYXdIZWFkZXJzICYmIHJhd0hlYWRlcnMuc3BsaXQoJ1xcbicpLmZvckVhY2goZnVuY3Rpb24gcGFyc2VyKGxpbmUpIHtcbiAgICBpID0gbGluZS5pbmRleE9mKCc6Jyk7XG4gICAga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgaSkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFsID0gbGluZS5zdWJzdHJpbmcoaSArIDEpLnRyaW0oKTtcblxuICAgIGlmICgha2V5IHx8IChwYXJzZWRba2V5XSAmJiBpZ25vcmVEdXBsaWNhdGVPZltrZXldKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChrZXkgPT09ICdzZXQtY29va2llJykge1xuICAgICAgaWYgKHBhcnNlZFtrZXldKSB7XG4gICAgICAgIHBhcnNlZFtrZXldLnB1c2godmFsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcnNlZFtrZXldID0gW3ZhbF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlZFtrZXldID0gcGFyc2VkW2tleV0gPyBwYXJzZWRba2V5XSArICcsICcgKyB2YWwgOiB2YWw7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcGFyc2VkO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgcGFyc2VIZWFkZXJzIGZyb20gJy4uL2hlbHBlcnMvcGFyc2VIZWFkZXJzLmpzJztcblxuY29uc3QgJGludGVybmFscyA9IFN5bWJvbCgnaW50ZXJuYWxzJyk7XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUhlYWRlcihoZWFkZXIpIHtcbiAgcmV0dXJuIGhlYWRlciAmJiBTdHJpbmcoaGVhZGVyKS50cmltKCkudG9Mb3dlckNhc2UoKTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplVmFsdWUodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09PSBmYWxzZSB8fCB2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHV0aWxzLmlzQXJyYXkodmFsdWUpID8gdmFsdWUubWFwKG5vcm1hbGl6ZVZhbHVlKSA6IFN0cmluZyh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVG9rZW5zKHN0cikge1xuICBjb25zdCB0b2tlbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBjb25zdCB0b2tlbnNSRSA9IC8oW15cXHMsOz1dKylcXHMqKD86PVxccyooW14sO10rKSk/L2c7XG4gIGxldCBtYXRjaDtcblxuICB3aGlsZSAoKG1hdGNoID0gdG9rZW5zUkUuZXhlYyhzdHIpKSkge1xuICAgIHRva2Vuc1ttYXRjaFsxXV0gPSBtYXRjaFsyXTtcbiAgfVxuXG4gIHJldHVybiB0b2tlbnM7XG59XG5cbmNvbnN0IGlzVmFsaWRIZWFkZXJOYW1lID0gKHN0cikgPT4gL15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChzdHIudHJpbSgpKTtcblxuZnVuY3Rpb24gbWF0Y2hIZWFkZXJWYWx1ZShjb250ZXh0LCB2YWx1ZSwgaGVhZGVyLCBmaWx0ZXIsIGlzSGVhZGVyTmFtZUZpbHRlcikge1xuICBpZiAodXRpbHMuaXNGdW5jdGlvbihmaWx0ZXIpKSB7XG4gICAgcmV0dXJuIGZpbHRlci5jYWxsKHRoaXMsIHZhbHVlLCBoZWFkZXIpO1xuICB9XG5cbiAgaWYgKGlzSGVhZGVyTmFtZUZpbHRlcikge1xuICAgIHZhbHVlID0gaGVhZGVyO1xuICB9XG5cbiAgaWYgKCF1dGlscy5pc1N0cmluZyh2YWx1ZSkpIHJldHVybjtcblxuICBpZiAodXRpbHMuaXNTdHJpbmcoZmlsdGVyKSkge1xuICAgIHJldHVybiB2YWx1ZS5pbmRleE9mKGZpbHRlcikgIT09IC0xO1xuICB9XG5cbiAgaWYgKHV0aWxzLmlzUmVnRXhwKGZpbHRlcikpIHtcbiAgICByZXR1cm4gZmlsdGVyLnRlc3QodmFsdWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEhlYWRlcihoZWFkZXIpIHtcbiAgcmV0dXJuIGhlYWRlci50cmltKClcbiAgICAudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxcZF0pKFxcdyopL2csICh3LCBjaGFyLCBzdHIpID0+IHtcbiAgICAgIHJldHVybiBjaGFyLnRvVXBwZXJDYXNlKCkgKyBzdHI7XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQWNjZXNzb3JzKG9iaiwgaGVhZGVyKSB7XG4gIGNvbnN0IGFjY2Vzc29yTmFtZSA9IHV0aWxzLnRvQ2FtZWxDYXNlKCcgJyArIGhlYWRlcik7XG5cbiAgWydnZXQnLCAnc2V0JywgJ2hhcyddLmZvckVhY2gobWV0aG9kTmFtZSA9PiB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgbWV0aG9kTmFtZSArIGFjY2Vzc29yTmFtZSwge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uKGFyZzEsIGFyZzIsIGFyZzMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbbWV0aG9kTmFtZV0uY2FsbCh0aGlzLCBoZWFkZXIsIGFyZzEsIGFyZzIsIGFyZzMpO1xuICAgICAgfSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9KTtcbn1cblxuY2xhc3MgQXhpb3NIZWFkZXJzIHtcbiAgY29uc3RydWN0b3IoaGVhZGVycykge1xuICAgIGhlYWRlcnMgJiYgdGhpcy5zZXQoaGVhZGVycyk7XG4gIH1cblxuICBzZXQoaGVhZGVyLCB2YWx1ZU9yUmV3cml0ZSwgcmV3cml0ZSkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuXG4gICAgZnVuY3Rpb24gc2V0SGVhZGVyKF92YWx1ZSwgX2hlYWRlciwgX3Jld3JpdGUpIHtcbiAgICAgIGNvbnN0IGxIZWFkZXIgPSBub3JtYWxpemVIZWFkZXIoX2hlYWRlcik7XG5cbiAgICAgIGlmICghbEhlYWRlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2hlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGtleSA9IHV0aWxzLmZpbmRLZXkoc2VsZiwgbEhlYWRlcik7XG5cbiAgICAgIGlmKCFrZXkgfHwgc2VsZltrZXldID09PSB1bmRlZmluZWQgfHwgX3Jld3JpdGUgPT09IHRydWUgfHwgKF9yZXdyaXRlID09PSB1bmRlZmluZWQgJiYgc2VsZltrZXldICE9PSBmYWxzZSkpIHtcbiAgICAgICAgc2VsZltrZXkgfHwgX2hlYWRlcl0gPSBub3JtYWxpemVWYWx1ZShfdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNldEhlYWRlcnMgPSAoaGVhZGVycywgX3Jld3JpdGUpID0+XG4gICAgICB1dGlscy5mb3JFYWNoKGhlYWRlcnMsIChfdmFsdWUsIF9oZWFkZXIpID0+IHNldEhlYWRlcihfdmFsdWUsIF9oZWFkZXIsIF9yZXdyaXRlKSk7XG5cbiAgICBpZiAodXRpbHMuaXNQbGFpbk9iamVjdChoZWFkZXIpIHx8IGhlYWRlciBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpIHtcbiAgICAgIHNldEhlYWRlcnMoaGVhZGVyLCB2YWx1ZU9yUmV3cml0ZSlcbiAgICB9IGVsc2UgaWYodXRpbHMuaXNTdHJpbmcoaGVhZGVyKSAmJiAoaGVhZGVyID0gaGVhZGVyLnRyaW0oKSkgJiYgIWlzVmFsaWRIZWFkZXJOYW1lKGhlYWRlcikpIHtcbiAgICAgIHNldEhlYWRlcnMocGFyc2VIZWFkZXJzKGhlYWRlciksIHZhbHVlT3JSZXdyaXRlKTtcbiAgICB9IGVsc2UgaWYgKHV0aWxzLmlzSGVhZGVycyhoZWFkZXIpKSB7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBoZWFkZXIuZW50cmllcygpKSB7XG4gICAgICAgIHNldEhlYWRlcih2YWx1ZSwga2V5LCByZXdyaXRlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVyICE9IG51bGwgJiYgc2V0SGVhZGVyKHZhbHVlT3JSZXdyaXRlLCBoZWFkZXIsIHJld3JpdGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2V0KGhlYWRlciwgcGFyc2VyKSB7XG4gICAgaGVhZGVyID0gbm9ybWFsaXplSGVhZGVyKGhlYWRlcik7XG5cbiAgICBpZiAoaGVhZGVyKSB7XG4gICAgICBjb25zdCBrZXkgPSB1dGlscy5maW5kS2V5KHRoaXMsIGhlYWRlcik7XG5cbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzW2tleV07XG5cbiAgICAgICAgaWYgKCFwYXJzZXIpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFyc2VyID09PSB0cnVlKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5zKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1dGlscy5pc0Z1bmN0aW9uKHBhcnNlcikpIHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VyLmNhbGwodGhpcywgdmFsdWUsIGtleSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodXRpbHMuaXNSZWdFeHAocGFyc2VyKSkge1xuICAgICAgICAgIHJldHVybiBwYXJzZXIuZXhlYyh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhcyhoZWFkZXIsIG1hdGNoZXIpIHtcbiAgICBoZWFkZXIgPSBub3JtYWxpemVIZWFkZXIoaGVhZGVyKTtcblxuICAgIGlmIChoZWFkZXIpIHtcbiAgICAgIGNvbnN0IGtleSA9IHV0aWxzLmZpbmRLZXkodGhpcywgaGVhZGVyKTtcblxuICAgICAgcmV0dXJuICEhKGtleSAmJiB0aGlzW2tleV0gIT09IHVuZGVmaW5lZCAmJiAoIW1hdGNoZXIgfHwgbWF0Y2hIZWFkZXJWYWx1ZSh0aGlzLCB0aGlzW2tleV0sIGtleSwgbWF0Y2hlcikpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBkZWxldGUoaGVhZGVyLCBtYXRjaGVyKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgbGV0IGRlbGV0ZWQgPSBmYWxzZTtcblxuICAgIGZ1bmN0aW9uIGRlbGV0ZUhlYWRlcihfaGVhZGVyKSB7XG4gICAgICBfaGVhZGVyID0gbm9ybWFsaXplSGVhZGVyKF9oZWFkZXIpO1xuXG4gICAgICBpZiAoX2hlYWRlcikge1xuICAgICAgICBjb25zdCBrZXkgPSB1dGlscy5maW5kS2V5KHNlbGYsIF9oZWFkZXIpO1xuXG4gICAgICAgIGlmIChrZXkgJiYgKCFtYXRjaGVyIHx8IG1hdGNoSGVhZGVyVmFsdWUoc2VsZiwgc2VsZltrZXldLCBrZXksIG1hdGNoZXIpKSkge1xuICAgICAgICAgIGRlbGV0ZSBzZWxmW2tleV07XG5cbiAgICAgICAgICBkZWxldGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1dGlscy5pc0FycmF5KGhlYWRlcikpIHtcbiAgICAgIGhlYWRlci5mb3JFYWNoKGRlbGV0ZUhlYWRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZUhlYWRlcihoZWFkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxldGVkO1xuICB9XG5cbiAgY2xlYXIobWF0Y2hlcikge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzKTtcbiAgICBsZXQgaSA9IGtleXMubGVuZ3RoO1xuICAgIGxldCBkZWxldGVkID0gZmFsc2U7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgICAgaWYoIW1hdGNoZXIgfHwgbWF0Y2hIZWFkZXJWYWx1ZSh0aGlzLCB0aGlzW2tleV0sIGtleSwgbWF0Y2hlciwgdHJ1ZSkpIHtcbiAgICAgICAgZGVsZXRlIHRoaXNba2V5XTtcbiAgICAgICAgZGVsZXRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbGV0ZWQ7XG4gIH1cblxuICBub3JtYWxpemUoZm9ybWF0KSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uc3QgaGVhZGVycyA9IHt9O1xuXG4gICAgdXRpbHMuZm9yRWFjaCh0aGlzLCAodmFsdWUsIGhlYWRlcikgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gdXRpbHMuZmluZEtleShoZWFkZXJzLCBoZWFkZXIpO1xuXG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIHNlbGZba2V5XSA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgZGVsZXRlIHNlbGZbaGVhZGVyXTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBub3JtYWxpemVkID0gZm9ybWF0ID8gZm9ybWF0SGVhZGVyKGhlYWRlcikgOiBTdHJpbmcoaGVhZGVyKS50cmltKCk7XG5cbiAgICAgIGlmIChub3JtYWxpemVkICE9PSBoZWFkZXIpIHtcbiAgICAgICAgZGVsZXRlIHNlbGZbaGVhZGVyXTtcbiAgICAgIH1cblxuICAgICAgc2VsZltub3JtYWxpemVkXSA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcblxuICAgICAgaGVhZGVyc1tub3JtYWxpemVkXSA9IHRydWU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvbmNhdCguLi50YXJnZXRzKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsIC4uLnRhcmdldHMpO1xuICB9XG5cbiAgdG9KU09OKGFzU3RyaW5ncykge1xuICAgIGNvbnN0IG9iaiA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgICB1dGlscy5mb3JFYWNoKHRoaXMsICh2YWx1ZSwgaGVhZGVyKSA9PiB7XG4gICAgICB2YWx1ZSAhPSBudWxsICYmIHZhbHVlICE9PSBmYWxzZSAmJiAob2JqW2hlYWRlcl0gPSBhc1N0cmluZ3MgJiYgdXRpbHMuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5qb2luKCcsICcpIDogdmFsdWUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbaGVhZGVyLCB2YWx1ZV0pID0+IGhlYWRlciArICc6ICcgKyB2YWx1ZSkuam9pbignXFxuJyk7XG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdBeGlvc0hlYWRlcnMnO1xuICB9XG5cbiAgc3RhdGljIGZyb20odGhpbmcpIHtcbiAgICByZXR1cm4gdGhpbmcgaW5zdGFuY2VvZiB0aGlzID8gdGhpbmcgOiBuZXcgdGhpcyh0aGluZyk7XG4gIH1cblxuICBzdGF0aWMgY29uY2F0KGZpcnN0LCAuLi50YXJnZXRzKSB7XG4gICAgY29uc3QgY29tcHV0ZWQgPSBuZXcgdGhpcyhmaXJzdCk7XG5cbiAgICB0YXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4gY29tcHV0ZWQuc2V0KHRhcmdldCkpO1xuXG4gICAgcmV0dXJuIGNvbXB1dGVkO1xuICB9XG5cbiAgc3RhdGljIGFjY2Vzc29yKGhlYWRlcikge1xuICAgIGNvbnN0IGludGVybmFscyA9IHRoaXNbJGludGVybmFsc10gPSAodGhpc1skaW50ZXJuYWxzXSA9IHtcbiAgICAgIGFjY2Vzc29yczoge31cbiAgICB9KTtcblxuICAgIGNvbnN0IGFjY2Vzc29ycyA9IGludGVybmFscy5hY2Nlc3NvcnM7XG4gICAgY29uc3QgcHJvdG90eXBlID0gdGhpcy5wcm90b3R5cGU7XG5cbiAgICBmdW5jdGlvbiBkZWZpbmVBY2Nlc3NvcihfaGVhZGVyKSB7XG4gICAgICBjb25zdCBsSGVhZGVyID0gbm9ybWFsaXplSGVhZGVyKF9oZWFkZXIpO1xuXG4gICAgICBpZiAoIWFjY2Vzc29yc1tsSGVhZGVyXSkge1xuICAgICAgICBidWlsZEFjY2Vzc29ycyhwcm90b3R5cGUsIF9oZWFkZXIpO1xuICAgICAgICBhY2Nlc3NvcnNbbEhlYWRlcl0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHV0aWxzLmlzQXJyYXkoaGVhZGVyKSA/IGhlYWRlci5mb3JFYWNoKGRlZmluZUFjY2Vzc29yKSA6IGRlZmluZUFjY2Vzc29yKGhlYWRlcik7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuXG5BeGlvc0hlYWRlcnMuYWNjZXNzb3IoWydDb250ZW50LVR5cGUnLCAnQ29udGVudC1MZW5ndGgnLCAnQWNjZXB0JywgJ0FjY2VwdC1FbmNvZGluZycsICdVc2VyLUFnZW50JywgJ0F1dGhvcml6YXRpb24nXSk7XG5cbi8vIHJlc2VydmVkIG5hbWVzIGhvdGZpeFxudXRpbHMucmVkdWNlRGVzY3JpcHRvcnMoQXhpb3NIZWFkZXJzLnByb3RvdHlwZSwgKHt2YWx1ZX0sIGtleSkgPT4ge1xuICBsZXQgbWFwcGVkID0ga2V5WzBdLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7IC8vIG1hcCBgc2V0YCA9PiBgU2V0YFxuICByZXR1cm4ge1xuICAgIGdldDogKCkgPT4gdmFsdWUsXG4gICAgc2V0KGhlYWRlclZhbHVlKSB7XG4gICAgICB0aGlzW21hcHBlZF0gPSBoZWFkZXJWYWx1ZTtcbiAgICB9XG4gIH1cbn0pO1xuXG51dGlscy5mcmVlemVNZXRob2RzKEF4aW9zSGVhZGVycyk7XG5cbmV4cG9ydCBkZWZhdWx0IEF4aW9zSGVhZGVycztcbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLy4uL3V0aWxzLmpzJztcbmltcG9ydCBkZWZhdWx0cyBmcm9tICcuLi9kZWZhdWx0cy9pbmRleC5qcyc7XG5pbXBvcnQgQXhpb3NIZWFkZXJzIGZyb20gJy4uL2NvcmUvQXhpb3NIZWFkZXJzLmpzJztcblxuLyoqXG4gKiBUcmFuc2Zvcm0gdGhlIGRhdGEgZm9yIGEgcmVxdWVzdCBvciBhIHJlc3BvbnNlXG4gKlxuICogQHBhcmFtIHtBcnJheXxGdW5jdGlvbn0gZm5zIEEgc2luZ2xlIGZ1bmN0aW9uIG9yIEFycmF5IG9mIGZ1bmN0aW9uc1xuICogQHBhcmFtIHs/T2JqZWN0fSByZXNwb25zZSBUaGUgcmVzcG9uc2Ugb2JqZWN0XG4gKlxuICogQHJldHVybnMgeyp9IFRoZSByZXN1bHRpbmcgdHJhbnNmb3JtZWQgZGF0YVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRhKGZucywgcmVzcG9uc2UpIHtcbiAgY29uc3QgY29uZmlnID0gdGhpcyB8fCBkZWZhdWx0cztcbiAgY29uc3QgY29udGV4dCA9IHJlc3BvbnNlIHx8IGNvbmZpZztcbiAgY29uc3QgaGVhZGVycyA9IEF4aW9zSGVhZGVycy5mcm9tKGNvbnRleHQuaGVhZGVycyk7XG4gIGxldCBkYXRhID0gY29udGV4dC5kYXRhO1xuXG4gIHV0aWxzLmZvckVhY2goZm5zLCBmdW5jdGlvbiB0cmFuc2Zvcm0oZm4pIHtcbiAgICBkYXRhID0gZm4uY2FsbChjb25maWcsIGRhdGEsIGhlYWRlcnMubm9ybWFsaXplKCksIHJlc3BvbnNlID8gcmVzcG9uc2Uuc3RhdHVzIDogdW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgaGVhZGVycy5ub3JtYWxpemUoKTtcblxuICByZXR1cm4gZGF0YTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzQ2FuY2VsKHZhbHVlKSB7XG4gIHJldHVybiAhISh2YWx1ZSAmJiB2YWx1ZS5fX0NBTkNFTF9fKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4uL2NvcmUvQXhpb3NFcnJvci5qcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuXG4vKipcbiAqIEEgYENhbmNlbGVkRXJyb3JgIGlzIGFuIG9iamVjdCB0aGF0IGlzIHRocm93biB3aGVuIGFuIG9wZXJhdGlvbiBpcyBjYW5jZWxlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZz19IG1lc3NhZ2UgVGhlIG1lc3NhZ2UuXG4gKiBAcGFyYW0ge09iamVjdD19IGNvbmZpZyBUaGUgY29uZmlnLlxuICogQHBhcmFtIHtPYmplY3Q9fSByZXF1ZXN0IFRoZSByZXF1ZXN0LlxuICpcbiAqIEByZXR1cm5zIHtDYW5jZWxlZEVycm9yfSBUaGUgY3JlYXRlZCBlcnJvci5cbiAqL1xuZnVuY3Rpb24gQ2FuY2VsZWRFcnJvcihtZXNzYWdlLCBjb25maWcsIHJlcXVlc3QpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVxLW51bGwsZXFlcWVxXG4gIEF4aW9zRXJyb3IuY2FsbCh0aGlzLCBtZXNzYWdlID09IG51bGwgPyAnY2FuY2VsZWQnIDogbWVzc2FnZSwgQXhpb3NFcnJvci5FUlJfQ0FOQ0VMRUQsIGNvbmZpZywgcmVxdWVzdCk7XG4gIHRoaXMubmFtZSA9ICdDYW5jZWxlZEVycm9yJztcbn1cblxudXRpbHMuaW5oZXJpdHMoQ2FuY2VsZWRFcnJvciwgQXhpb3NFcnJvciwge1xuICBfX0NBTkNFTF9fOiB0cnVlXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FuY2VsZWRFcnJvcjtcbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4vQXhpb3NFcnJvci5qcyc7XG5cbi8qKlxuICogUmVzb2x2ZSBvciByZWplY3QgYSBQcm9taXNlIGJhc2VkIG9uIHJlc3BvbnNlIHN0YXR1cy5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSByZXNvbHZlIEEgZnVuY3Rpb24gdGhhdCByZXNvbHZlcyB0aGUgcHJvbWlzZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHJlamVjdCBBIGZ1bmN0aW9uIHRoYXQgcmVqZWN0cyB0aGUgcHJvbWlzZS5cbiAqIEBwYXJhbSB7b2JqZWN0fSByZXNwb25zZSBUaGUgcmVzcG9uc2UuXG4gKlxuICogQHJldHVybnMge29iamVjdH0gVGhlIHJlc3BvbnNlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCByZXNwb25zZSkge1xuICBjb25zdCB2YWxpZGF0ZVN0YXR1cyA9IHJlc3BvbnNlLmNvbmZpZy52YWxpZGF0ZVN0YXR1cztcbiAgaWYgKCFyZXNwb25zZS5zdGF0dXMgfHwgIXZhbGlkYXRlU3RhdHVzIHx8IHZhbGlkYXRlU3RhdHVzKHJlc3BvbnNlLnN0YXR1cykpIHtcbiAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgfSBlbHNlIHtcbiAgICByZWplY3QobmV3IEF4aW9zRXJyb3IoXG4gICAgICAnUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAnICsgcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgW0F4aW9zRXJyb3IuRVJSX0JBRF9SRVFVRVNULCBBeGlvc0Vycm9yLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IocmVzcG9uc2Uuc3RhdHVzIC8gMTAwKSAtIDRdLFxuICAgICAgcmVzcG9uc2UuY29uZmlnLFxuICAgICAgcmVzcG9uc2UucmVxdWVzdCxcbiAgICAgIHJlc3BvbnNlXG4gICAgKSk7XG4gIH1cbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgVVJMIGlzIGFic29sdXRlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgVVJMIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIFVSTCBpcyBhYnNvbHV0ZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzQWJzb2x1dGVVUkwodXJsKSB7XG4gIC8vIEEgVVJMIGlzIGNvbnNpZGVyZWQgYWJzb2x1dGUgaWYgaXQgYmVnaW5zIHdpdGggXCI8c2NoZW1lPjovL1wiIG9yIFwiLy9cIiAocHJvdG9jb2wtcmVsYXRpdmUgVVJMKS5cbiAgLy8gUkZDIDM5ODYgZGVmaW5lcyBzY2hlbWUgbmFtZSBhcyBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgYmVnaW5uaW5nIHdpdGggYSBsZXR0ZXIgYW5kIGZvbGxvd2VkXG4gIC8vIGJ5IGFueSBjb21iaW5hdGlvbiBvZiBsZXR0ZXJzLCBkaWdpdHMsIHBsdXMsIHBlcmlvZCwgb3IgaHlwaGVuLlxuICByZXR1cm4gL14oW2Etel1bYS16XFxkK1xcLS5dKjopP1xcL1xcLy9pLnRlc3QodXJsKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBVUkwgYnkgY29tYmluaW5nIHRoZSBzcGVjaWZpZWQgVVJMc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlVVJMIFRoZSBiYXNlIFVSTFxuICogQHBhcmFtIHtzdHJpbmd9IHJlbGF0aXZlVVJMIFRoZSByZWxhdGl2ZSBVUkxcbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29tYmluZWQgVVJMXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbWJpbmVVUkxzKGJhc2VVUkwsIHJlbGF0aXZlVVJMKSB7XG4gIHJldHVybiByZWxhdGl2ZVVSTFxuICAgID8gYmFzZVVSTC5yZXBsYWNlKC9cXC8/XFwvJC8sICcnKSArICcvJyArIHJlbGF0aXZlVVJMLnJlcGxhY2UoL15cXC8rLywgJycpXG4gICAgOiBiYXNlVVJMO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IGlzQWJzb2x1dGVVUkwgZnJvbSAnLi4vaGVscGVycy9pc0Fic29sdXRlVVJMLmpzJztcbmltcG9ydCBjb21iaW5lVVJMcyBmcm9tICcuLi9oZWxwZXJzL2NvbWJpbmVVUkxzLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IFVSTCBieSBjb21iaW5pbmcgdGhlIGJhc2VVUkwgd2l0aCB0aGUgcmVxdWVzdGVkVVJMLFxuICogb25seSB3aGVuIHRoZSByZXF1ZXN0ZWRVUkwgaXMgbm90IGFscmVhZHkgYW4gYWJzb2x1dGUgVVJMLlxuICogSWYgdGhlIHJlcXVlc3RVUkwgaXMgYWJzb2x1dGUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgcmVxdWVzdGVkVVJMIHVudG91Y2hlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYmFzZVVSTCBUaGUgYmFzZSBVUkxcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXF1ZXN0ZWRVUkwgQWJzb2x1dGUgb3IgcmVsYXRpdmUgVVJMIHRvIGNvbWJpbmVcbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29tYmluZWQgZnVsbCBwYXRoXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJ1aWxkRnVsbFBhdGgoYmFzZVVSTCwgcmVxdWVzdGVkVVJMLCBhbGxvd0Fic29sdXRlVXJscykge1xuICBsZXQgaXNSZWxhdGl2ZVVybCA9ICFpc0Fic29sdXRlVVJMKHJlcXVlc3RlZFVSTCk7XG4gIGlmIChiYXNlVVJMICYmIChpc1JlbGF0aXZlVXJsIHx8IGFsbG93QWJzb2x1dGVVcmxzID09IGZhbHNlKSkge1xuICAgIHJldHVybiBjb21iaW5lVVJMcyhiYXNlVVJMLCByZXF1ZXN0ZWRVUkwpO1xuICB9XG4gIHJldHVybiByZXF1ZXN0ZWRVUkw7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcGFyc2VVcmwgPSByZXF1aXJlKCd1cmwnKS5wYXJzZTtcblxudmFyIERFRkFVTFRfUE9SVFMgPSB7XG4gIGZ0cDogMjEsXG4gIGdvcGhlcjogNzAsXG4gIGh0dHA6IDgwLFxuICBodHRwczogNDQzLFxuICB3czogODAsXG4gIHdzczogNDQzLFxufTtcblxudmFyIHN0cmluZ0VuZHNXaXRoID0gU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aCB8fCBmdW5jdGlvbihzKSB7XG4gIHJldHVybiBzLmxlbmd0aCA8PSB0aGlzLmxlbmd0aCAmJlxuICAgIHRoaXMuaW5kZXhPZihzLCB0aGlzLmxlbmd0aCAtIHMubGVuZ3RoKSAhPT0gLTE7XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfG9iamVjdH0gdXJsIC0gVGhlIFVSTCwgb3IgdGhlIHJlc3VsdCBmcm9tIHVybC5wYXJzZS5cbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCBvZiB0aGUgcHJveHkgdGhhdCBzaG91bGQgaGFuZGxlIHRoZSByZXF1ZXN0IHRvIHRoZVxuICogIGdpdmVuIFVSTC4gSWYgbm8gcHJveHkgaXMgc2V0LCB0aGlzIHdpbGwgYmUgYW4gZW1wdHkgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBnZXRQcm94eUZvclVybCh1cmwpIHtcbiAgdmFyIHBhcnNlZFVybCA9IHR5cGVvZiB1cmwgPT09ICdzdHJpbmcnID8gcGFyc2VVcmwodXJsKSA6IHVybCB8fCB7fTtcbiAgdmFyIHByb3RvID0gcGFyc2VkVXJsLnByb3RvY29sO1xuICB2YXIgaG9zdG5hbWUgPSBwYXJzZWRVcmwuaG9zdDtcbiAgdmFyIHBvcnQgPSBwYXJzZWRVcmwucG9ydDtcbiAgaWYgKHR5cGVvZiBob3N0bmFtZSAhPT0gJ3N0cmluZycgfHwgIWhvc3RuYW1lIHx8IHR5cGVvZiBwcm90byAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gJyc7ICAvLyBEb24ndCBwcm94eSBVUkxzIHdpdGhvdXQgYSB2YWxpZCBzY2hlbWUgb3IgaG9zdC5cbiAgfVxuXG4gIHByb3RvID0gcHJvdG8uc3BsaXQoJzonLCAxKVswXTtcbiAgLy8gU3RyaXBwaW5nIHBvcnRzIGluIHRoaXMgd2F5IGluc3RlYWQgb2YgdXNpbmcgcGFyc2VkVXJsLmhvc3RuYW1lIHRvIG1ha2VcbiAgLy8gc3VyZSB0aGF0IHRoZSBicmFja2V0cyBhcm91bmQgSVB2NiBhZGRyZXNzZXMgYXJlIGtlcHQuXG4gIGhvc3RuYW1lID0gaG9zdG5hbWUucmVwbGFjZSgvOlxcZCokLywgJycpO1xuICBwb3J0ID0gcGFyc2VJbnQocG9ydCkgfHwgREVGQVVMVF9QT1JUU1twcm90b10gfHwgMDtcbiAgaWYgKCFzaG91bGRQcm94eShob3N0bmFtZSwgcG9ydCkpIHtcbiAgICByZXR1cm4gJyc7ICAvLyBEb24ndCBwcm94eSBVUkxzIHRoYXQgbWF0Y2ggTk9fUFJPWFkuXG4gIH1cblxuICB2YXIgcHJveHkgPVxuICAgIGdldEVudignbnBtX2NvbmZpZ18nICsgcHJvdG8gKyAnX3Byb3h5JykgfHxcbiAgICBnZXRFbnYocHJvdG8gKyAnX3Byb3h5JykgfHxcbiAgICBnZXRFbnYoJ25wbV9jb25maWdfcHJveHknKSB8fFxuICAgIGdldEVudignYWxsX3Byb3h5Jyk7XG4gIGlmIChwcm94eSAmJiBwcm94eS5pbmRleE9mKCc6Ly8nKSA9PT0gLTEpIHtcbiAgICAvLyBNaXNzaW5nIHNjaGVtZSBpbiBwcm94eSwgZGVmYXVsdCB0byB0aGUgcmVxdWVzdGVkIFVSTCdzIHNjaGVtZS5cbiAgICBwcm94eSA9IHByb3RvICsgJzovLycgKyBwcm94eTtcbiAgfVxuICByZXR1cm4gcHJveHk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZ2l2ZW4gVVJMIHNob3VsZCBiZSBwcm94aWVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBob3N0bmFtZSAtIFRoZSBob3N0IG5hbWUgb2YgdGhlIFVSTC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBwb3J0IC0gVGhlIGVmZmVjdGl2ZSBwb3J0IG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciB0aGUgZ2l2ZW4gVVJMIHNob3VsZCBiZSBwcm94aWVkLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gc2hvdWxkUHJveHkoaG9zdG5hbWUsIHBvcnQpIHtcbiAgdmFyIE5PX1BST1hZID1cbiAgICAoZ2V0RW52KCducG1fY29uZmlnX25vX3Byb3h5JykgfHwgZ2V0RW52KCdub19wcm94eScpKS50b0xvd2VyQ2FzZSgpO1xuICBpZiAoIU5PX1BST1hZKSB7XG4gICAgcmV0dXJuIHRydWU7ICAvLyBBbHdheXMgcHJveHkgaWYgTk9fUFJPWFkgaXMgbm90IHNldC5cbiAgfVxuICBpZiAoTk9fUFJPWFkgPT09ICcqJykge1xuICAgIHJldHVybiBmYWxzZTsgIC8vIE5ldmVyIHByb3h5IGlmIHdpbGRjYXJkIGlzIHNldC5cbiAgfVxuXG4gIHJldHVybiBOT19QUk9YWS5zcGxpdCgvWyxcXHNdLykuZXZlcnkoZnVuY3Rpb24ocHJveHkpIHtcbiAgICBpZiAoIXByb3h5KSB7XG4gICAgICByZXR1cm4gdHJ1ZTsgIC8vIFNraXAgemVyby1sZW5ndGggaG9zdHMuXG4gICAgfVxuICAgIHZhciBwYXJzZWRQcm94eSA9IHByb3h5Lm1hdGNoKC9eKC4rKTooXFxkKykkLyk7XG4gICAgdmFyIHBhcnNlZFByb3h5SG9zdG5hbWUgPSBwYXJzZWRQcm94eSA/IHBhcnNlZFByb3h5WzFdIDogcHJveHk7XG4gICAgdmFyIHBhcnNlZFByb3h5UG9ydCA9IHBhcnNlZFByb3h5ID8gcGFyc2VJbnQocGFyc2VkUHJveHlbMl0pIDogMDtcbiAgICBpZiAocGFyc2VkUHJveHlQb3J0ICYmIHBhcnNlZFByb3h5UG9ydCAhPT0gcG9ydCkge1xuICAgICAgcmV0dXJuIHRydWU7ICAvLyBTa2lwIGlmIHBvcnRzIGRvbid0IG1hdGNoLlxuICAgIH1cblxuICAgIGlmICghL15bLipdLy50ZXN0KHBhcnNlZFByb3h5SG9zdG5hbWUpKSB7XG4gICAgICAvLyBObyB3aWxkY2FyZHMsIHNvIHN0b3AgcHJveHlpbmcgaWYgdGhlcmUgaXMgYW4gZXhhY3QgbWF0Y2guXG4gICAgICByZXR1cm4gaG9zdG5hbWUgIT09IHBhcnNlZFByb3h5SG9zdG5hbWU7XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZFByb3h5SG9zdG5hbWUuY2hhckF0KDApID09PSAnKicpIHtcbiAgICAgIC8vIFJlbW92ZSBsZWFkaW5nIHdpbGRjYXJkLlxuICAgICAgcGFyc2VkUHJveHlIb3N0bmFtZSA9IHBhcnNlZFByb3h5SG9zdG5hbWUuc2xpY2UoMSk7XG4gICAgfVxuICAgIC8vIFN0b3AgcHJveHlpbmcgaWYgdGhlIGhvc3RuYW1lIGVuZHMgd2l0aCB0aGUgbm9fcHJveHkgaG9zdC5cbiAgICByZXR1cm4gIXN0cmluZ0VuZHNXaXRoLmNhbGwoaG9zdG5hbWUsIHBhcnNlZFByb3h5SG9zdG5hbWUpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHZhbHVlIGZvciBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIG5hbWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgdmFsdWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gZ2V0RW52KGtleSkge1xuICByZXR1cm4gcHJvY2Vzcy5lbnZba2V5LnRvTG93ZXJDYXNlKCldIHx8IHByb2Nlc3MuZW52W2tleS50b1VwcGVyQ2FzZSgpXSB8fCAnJztcbn1cblxuZXhwb3J0cy5nZXRQcm94eUZvclVybCA9IGdldFByb3h5Rm9yVXJsO1xuIiwgIi8qKlxuICogSGVscGVycy5cbiAqL1xuXG52YXIgcyA9IDEwMDA7XG52YXIgbSA9IHMgKiA2MDtcbnZhciBoID0gbSAqIDYwO1xudmFyIGQgPSBoICogMjQ7XG52YXIgeSA9IGQgKiAzNjUuMjU7XG5cbi8qKlxuICogUGFyc2Ugb3IgZm9ybWF0IHRoZSBnaXZlbiBgdmFsYC5cbiAqXG4gKiBPcHRpb25zOlxuICpcbiAqICAtIGBsb25nYCB2ZXJib3NlIGZvcm1hdHRpbmcgW2ZhbHNlXVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfE51bWJlcn0gdmFsXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdXG4gKiBAdGhyb3dzIHtFcnJvcn0gdGhyb3cgYW4gZXJyb3IgaWYgdmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSBudW1iZXJcbiAqIEByZXR1cm4ge1N0cmluZ3xOdW1iZXJ9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odmFsLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWw7XG4gIGlmICh0eXBlID09PSAnc3RyaW5nJyAmJiB2YWwubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBwYXJzZSh2YWwpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInICYmIGlzTmFOKHZhbCkgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMubG9uZyA/IGZtdExvbmcodmFsKSA6IGZtdFNob3J0KHZhbCk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgICd2YWwgaXMgbm90IGEgbm9uLWVtcHR5IHN0cmluZyBvciBhIHZhbGlkIG51bWJlci4gdmFsPScgK1xuICAgICAgSlNPTi5zdHJpbmdpZnkodmFsKVxuICApO1xufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgZ2l2ZW4gYHN0cmAgYW5kIHJldHVybiBtaWxsaXNlY29uZHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7TnVtYmVyfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2Uoc3RyKSB7XG4gIHN0ciA9IFN0cmluZyhzdHIpO1xuICBpZiAoc3RyLmxlbmd0aCA+IDEwMCkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgbWF0Y2ggPSAvXigoPzpcXGQrKT9cXC4/XFxkKykgKihtaWxsaXNlY29uZHM/fG1zZWNzP3xtc3xzZWNvbmRzP3xzZWNzP3xzfG1pbnV0ZXM/fG1pbnM/fG18aG91cnM/fGhycz98aHxkYXlzP3xkfHllYXJzP3x5cnM/fHkpPyQvaS5leGVjKFxuICAgIHN0clxuICApO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBuID0gcGFyc2VGbG9hdChtYXRjaFsxXSk7XG4gIHZhciB0eXBlID0gKG1hdGNoWzJdIHx8ICdtcycpLnRvTG93ZXJDYXNlKCk7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3llYXJzJzpcbiAgICBjYXNlICd5ZWFyJzpcbiAgICBjYXNlICd5cnMnOlxuICAgIGNhc2UgJ3lyJzpcbiAgICBjYXNlICd5JzpcbiAgICAgIHJldHVybiBuICogeTtcbiAgICBjYXNlICdkYXlzJzpcbiAgICBjYXNlICdkYXknOlxuICAgIGNhc2UgJ2QnOlxuICAgICAgcmV0dXJuIG4gKiBkO1xuICAgIGNhc2UgJ2hvdXJzJzpcbiAgICBjYXNlICdob3VyJzpcbiAgICBjYXNlICdocnMnOlxuICAgIGNhc2UgJ2hyJzpcbiAgICBjYXNlICdoJzpcbiAgICAgIHJldHVybiBuICogaDtcbiAgICBjYXNlICdtaW51dGVzJzpcbiAgICBjYXNlICdtaW51dGUnOlxuICAgIGNhc2UgJ21pbnMnOlxuICAgIGNhc2UgJ21pbic6XG4gICAgY2FzZSAnbSc6XG4gICAgICByZXR1cm4gbiAqIG07XG4gICAgY2FzZSAnc2Vjb25kcyc6XG4gICAgY2FzZSAnc2Vjb25kJzpcbiAgICBjYXNlICdzZWNzJzpcbiAgICBjYXNlICdzZWMnOlxuICAgIGNhc2UgJ3MnOlxuICAgICAgcmV0dXJuIG4gKiBzO1xuICAgIGNhc2UgJ21pbGxpc2Vjb25kcyc6XG4gICAgY2FzZSAnbWlsbGlzZWNvbmQnOlxuICAgIGNhc2UgJ21zZWNzJzpcbiAgICBjYXNlICdtc2VjJzpcbiAgICBjYXNlICdtcyc6XG4gICAgICByZXR1cm4gbjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFNob3J0IGZvcm1hdCBmb3IgYG1zYC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gbXNcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGZtdFNob3J0KG1zKSB7XG4gIGlmIChtcyA+PSBkKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBkKSArICdkJztcbiAgfVxuICBpZiAobXMgPj0gaCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gaCkgKyAnaCc7XG4gIH1cbiAgaWYgKG1zID49IG0pIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChtcyAvIG0pICsgJ20nO1xuICB9XG4gIGlmIChtcyA+PSBzKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBzKSArICdzJztcbiAgfVxuICByZXR1cm4gbXMgKyAnbXMnO1xufVxuXG4vKipcbiAqIExvbmcgZm9ybWF0IGZvciBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZm10TG9uZyhtcykge1xuICByZXR1cm4gcGx1cmFsKG1zLCBkLCAnZGF5JykgfHxcbiAgICBwbHVyYWwobXMsIGgsICdob3VyJykgfHxcbiAgICBwbHVyYWwobXMsIG0sICdtaW51dGUnKSB8fFxuICAgIHBsdXJhbChtcywgcywgJ3NlY29uZCcpIHx8XG4gICAgbXMgKyAnIG1zJztcbn1cblxuLyoqXG4gKiBQbHVyYWxpemF0aW9uIGhlbHBlci5cbiAqL1xuXG5mdW5jdGlvbiBwbHVyYWwobXMsIG4sIG5hbWUpIHtcbiAgaWYgKG1zIDwgbikge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAobXMgPCBuICogMS41KSB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IobXMgLyBuKSArICcgJyArIG5hbWU7XG4gIH1cbiAgcmV0dXJuIE1hdGguY2VpbChtcyAvIG4pICsgJyAnICsgbmFtZSArICdzJztcbn1cbiIsICJcbi8qKlxuICogVGhpcyBpcyB0aGUgY29tbW9uIGxvZ2ljIGZvciBib3RoIHRoZSBOb2RlLmpzIGFuZCB3ZWIgYnJvd3NlclxuICogaW1wbGVtZW50YXRpb25zIG9mIGBkZWJ1ZygpYC5cbiAqXG4gKiBFeHBvc2UgYGRlYnVnKClgIGFzIHRoZSBtb2R1bGUuXG4gKi9cblxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gY3JlYXRlRGVidWcuZGVidWcgPSBjcmVhdGVEZWJ1Z1snZGVmYXVsdCddID0gY3JlYXRlRGVidWc7XG5leHBvcnRzLmNvZXJjZSA9IGNvZXJjZTtcbmV4cG9ydHMuZGlzYWJsZSA9IGRpc2FibGU7XG5leHBvcnRzLmVuYWJsZSA9IGVuYWJsZTtcbmV4cG9ydHMuZW5hYmxlZCA9IGVuYWJsZWQ7XG5leHBvcnRzLmh1bWFuaXplID0gcmVxdWlyZSgnbXMnKTtcblxuLyoqXG4gKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBkZWJ1ZyBtb2RlIG5hbWVzLCBhbmQgbmFtZXMgdG8gc2tpcC5cbiAqL1xuXG5leHBvcnRzLm5hbWVzID0gW107XG5leHBvcnRzLnNraXBzID0gW107XG5cbi8qKlxuICogTWFwIG9mIHNwZWNpYWwgXCIlblwiIGhhbmRsaW5nIGZ1bmN0aW9ucywgZm9yIHRoZSBkZWJ1ZyBcImZvcm1hdFwiIGFyZ3VtZW50LlxuICpcbiAqIFZhbGlkIGtleSBuYW1lcyBhcmUgYSBzaW5nbGUsIGxvd2VyIG9yIHVwcGVyLWNhc2UgbGV0dGVyLCBpLmUuIFwiblwiIGFuZCBcIk5cIi5cbiAqL1xuXG5leHBvcnRzLmZvcm1hdHRlcnMgPSB7fTtcblxuLyoqXG4gKiBQcmV2aW91cyBsb2cgdGltZXN0YW1wLlxuICovXG5cbnZhciBwcmV2VGltZTtcblxuLyoqXG4gKiBTZWxlY3QgYSBjb2xvci5cbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNlbGVjdENvbG9yKG5hbWVzcGFjZSkge1xuICB2YXIgaGFzaCA9IDAsIGk7XG5cbiAgZm9yIChpIGluIG5hbWVzcGFjZSkge1xuICAgIGhhc2ggID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBuYW1lc3BhY2UuY2hhckNvZGVBdChpKTtcbiAgICBoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlclxuICB9XG5cbiAgcmV0dXJuIGV4cG9ydHMuY29sb3JzW01hdGguYWJzKGhhc2gpICUgZXhwb3J0cy5jb2xvcnMubGVuZ3RoXTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBkZWJ1Z2dlciB3aXRoIHRoZSBnaXZlbiBgbmFtZXNwYWNlYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlRGVidWcobmFtZXNwYWNlKSB7XG5cbiAgZnVuY3Rpb24gZGVidWcoKSB7XG4gICAgLy8gZGlzYWJsZWQ/XG4gICAgaWYgKCFkZWJ1Zy5lbmFibGVkKSByZXR1cm47XG5cbiAgICB2YXIgc2VsZiA9IGRlYnVnO1xuXG4gICAgLy8gc2V0IGBkaWZmYCB0aW1lc3RhbXBcbiAgICB2YXIgY3VyciA9ICtuZXcgRGF0ZSgpO1xuICAgIHZhciBtcyA9IGN1cnIgLSAocHJldlRpbWUgfHwgY3Vycik7XG4gICAgc2VsZi5kaWZmID0gbXM7XG4gICAgc2VsZi5wcmV2ID0gcHJldlRpbWU7XG4gICAgc2VsZi5jdXJyID0gY3VycjtcbiAgICBwcmV2VGltZSA9IGN1cnI7XG5cbiAgICAvLyB0dXJuIHRoZSBgYXJndW1lbnRzYCBpbnRvIGEgcHJvcGVyIEFycmF5XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgIH1cblxuICAgIGFyZ3NbMF0gPSBleHBvcnRzLmNvZXJjZShhcmdzWzBdKTtcblxuICAgIGlmICgnc3RyaW5nJyAhPT0gdHlwZW9mIGFyZ3NbMF0pIHtcbiAgICAgIC8vIGFueXRoaW5nIGVsc2UgbGV0J3MgaW5zcGVjdCB3aXRoICVPXG4gICAgICBhcmdzLnVuc2hpZnQoJyVPJyk7XG4gICAgfVxuXG4gICAgLy8gYXBwbHkgYW55IGBmb3JtYXR0ZXJzYCB0cmFuc2Zvcm1hdGlvbnNcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIGFyZ3NbMF0gPSBhcmdzWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLCBmdW5jdGlvbihtYXRjaCwgZm9ybWF0KSB7XG4gICAgICAvLyBpZiB3ZSBlbmNvdW50ZXIgYW4gZXNjYXBlZCAlIHRoZW4gZG9uJ3QgaW5jcmVhc2UgdGhlIGFycmF5IGluZGV4XG4gICAgICBpZiAobWF0Y2ggPT09ICclJScpIHJldHVybiBtYXRjaDtcbiAgICAgIGluZGV4Kys7XG4gICAgICB2YXIgZm9ybWF0dGVyID0gZXhwb3J0cy5mb3JtYXR0ZXJzW2Zvcm1hdF07XG4gICAgICBpZiAoJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIGZvcm1hdHRlcikge1xuICAgICAgICB2YXIgdmFsID0gYXJnc1tpbmRleF07XG4gICAgICAgIG1hdGNoID0gZm9ybWF0dGVyLmNhbGwoc2VsZiwgdmFsKTtcblxuICAgICAgICAvLyBub3cgd2UgbmVlZCB0byByZW1vdmUgYGFyZ3NbaW5kZXhdYCBzaW5jZSBpdCdzIGlubGluZWQgaW4gdGhlIGBmb3JtYXRgXG4gICAgICAgIGFyZ3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgaW5kZXgtLTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtYXRjaDtcbiAgICB9KTtcblxuICAgIC8vIGFwcGx5IGVudi1zcGVjaWZpYyBmb3JtYXR0aW5nIChjb2xvcnMsIGV0Yy4pXG4gICAgZXhwb3J0cy5mb3JtYXRBcmdzLmNhbGwoc2VsZiwgYXJncyk7XG5cbiAgICB2YXIgbG9nRm4gPSBkZWJ1Zy5sb2cgfHwgZXhwb3J0cy5sb2cgfHwgY29uc29sZS5sb2cuYmluZChjb25zb2xlKTtcbiAgICBsb2dGbi5hcHBseShzZWxmLCBhcmdzKTtcbiAgfVxuXG4gIGRlYnVnLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcbiAgZGVidWcuZW5hYmxlZCA9IGV4cG9ydHMuZW5hYmxlZChuYW1lc3BhY2UpO1xuICBkZWJ1Zy51c2VDb2xvcnMgPSBleHBvcnRzLnVzZUNvbG9ycygpO1xuICBkZWJ1Zy5jb2xvciA9IHNlbGVjdENvbG9yKG5hbWVzcGFjZSk7XG5cbiAgLy8gZW52LXNwZWNpZmljIGluaXRpYWxpemF0aW9uIGxvZ2ljIGZvciBkZWJ1ZyBpbnN0YW5jZXNcbiAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiBleHBvcnRzLmluaXQpIHtcbiAgICBleHBvcnRzLmluaXQoZGVidWcpO1xuICB9XG5cbiAgcmV0dXJuIGRlYnVnO1xufVxuXG4vKipcbiAqIEVuYWJsZXMgYSBkZWJ1ZyBtb2RlIGJ5IG5hbWVzcGFjZXMuIFRoaXMgY2FuIGluY2x1ZGUgbW9kZXNcbiAqIHNlcGFyYXRlZCBieSBhIGNvbG9uIGFuZCB3aWxkY2FyZHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZW5hYmxlKG5hbWVzcGFjZXMpIHtcbiAgZXhwb3J0cy5zYXZlKG5hbWVzcGFjZXMpO1xuXG4gIGV4cG9ydHMubmFtZXMgPSBbXTtcbiAgZXhwb3J0cy5za2lwcyA9IFtdO1xuXG4gIHZhciBzcGxpdCA9ICh0eXBlb2YgbmFtZXNwYWNlcyA9PT0gJ3N0cmluZycgPyBuYW1lc3BhY2VzIDogJycpLnNwbGl0KC9bXFxzLF0rLyk7XG4gIHZhciBsZW4gPSBzcGxpdC5sZW5ndGg7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGlmICghc3BsaXRbaV0pIGNvbnRpbnVlOyAvLyBpZ25vcmUgZW1wdHkgc3RyaW5nc1xuICAgIG5hbWVzcGFjZXMgPSBzcGxpdFtpXS5yZXBsYWNlKC9cXCovZywgJy4qPycpO1xuICAgIGlmIChuYW1lc3BhY2VzWzBdID09PSAnLScpIHtcbiAgICAgIGV4cG9ydHMuc2tpcHMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMuc3Vic3RyKDEpICsgJyQnKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cG9ydHMubmFtZXMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMgKyAnJCcpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBEaXNhYmxlIGRlYnVnIG91dHB1dC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGRpc2FibGUoKSB7XG4gIGV4cG9ydHMuZW5hYmxlKCcnKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIG1vZGUgbmFtZSBpcyBlbmFibGVkLCBmYWxzZSBvdGhlcndpc2UuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGVuYWJsZWQobmFtZSkge1xuICB2YXIgaSwgbGVuO1xuICBmb3IgKGkgPSAwLCBsZW4gPSBleHBvcnRzLnNraXBzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGV4cG9ydHMuc2tpcHNbaV0udGVzdChuYW1lKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBmb3IgKGkgPSAwLCBsZW4gPSBleHBvcnRzLm5hbWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGV4cG9ydHMubmFtZXNbaV0udGVzdChuYW1lKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDb2VyY2UgYHZhbGAuXG4gKlxuICogQHBhcmFtIHtNaXhlZH0gdmFsXG4gKiBAcmV0dXJuIHtNaXhlZH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGNvZXJjZSh2YWwpIHtcbiAgaWYgKHZhbCBpbnN0YW5jZW9mIEVycm9yKSByZXR1cm4gdmFsLnN0YWNrIHx8IHZhbC5tZXNzYWdlO1xuICByZXR1cm4gdmFsO1xufVxuIiwgIi8qKlxuICogVGhpcyBpcyB0aGUgd2ViIGJyb3dzZXIgaW1wbGVtZW50YXRpb24gb2YgYGRlYnVnKClgLlxuICpcbiAqIEV4cG9zZSBgZGVidWcoKWAgYXMgdGhlIG1vZHVsZS5cbiAqL1xuXG5leHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2RlYnVnJyk7XG5leHBvcnRzLmxvZyA9IGxvZztcbmV4cG9ydHMuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG5leHBvcnRzLnNhdmUgPSBzYXZlO1xuZXhwb3J0cy5sb2FkID0gbG9hZDtcbmV4cG9ydHMudXNlQ29sb3JzID0gdXNlQ29sb3JzO1xuZXhwb3J0cy5zdG9yYWdlID0gJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIGNocm9tZVxuICAgICAgICAgICAgICAgJiYgJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIGNocm9tZS5zdG9yYWdlXG4gICAgICAgICAgICAgICAgICA/IGNocm9tZS5zdG9yYWdlLmxvY2FsXG4gICAgICAgICAgICAgICAgICA6IGxvY2Fsc3RvcmFnZSgpO1xuXG4vKipcbiAqIENvbG9ycy5cbiAqL1xuXG5leHBvcnRzLmNvbG9ycyA9IFtcbiAgJ2xpZ2h0c2VhZ3JlZW4nLFxuICAnZm9yZXN0Z3JlZW4nLFxuICAnZ29sZGVucm9kJyxcbiAgJ2RvZGdlcmJsdWUnLFxuICAnZGFya29yY2hpZCcsXG4gICdjcmltc29uJ1xuXTtcblxuLyoqXG4gKiBDdXJyZW50bHkgb25seSBXZWJLaXQtYmFzZWQgV2ViIEluc3BlY3RvcnMsIEZpcmVmb3ggPj0gdjMxLFxuICogYW5kIHRoZSBGaXJlYnVnIGV4dGVuc2lvbiAoYW55IEZpcmVmb3ggdmVyc2lvbikgYXJlIGtub3duXG4gKiB0byBzdXBwb3J0IFwiJWNcIiBDU1MgY3VzdG9taXphdGlvbnMuXG4gKlxuICogVE9ETzogYWRkIGEgYGxvY2FsU3RvcmFnZWAgdmFyaWFibGUgdG8gZXhwbGljaXRseSBlbmFibGUvZGlzYWJsZSBjb2xvcnNcbiAqL1xuXG5mdW5jdGlvbiB1c2VDb2xvcnMoKSB7XG4gIC8vIE5COiBJbiBhbiBFbGVjdHJvbiBwcmVsb2FkIHNjcmlwdCwgZG9jdW1lbnQgd2lsbCBiZSBkZWZpbmVkIGJ1dCBub3QgZnVsbHlcbiAgLy8gaW5pdGlhbGl6ZWQuIFNpbmNlIHdlIGtub3cgd2UncmUgaW4gQ2hyb21lLCB3ZSdsbCBqdXN0IGRldGVjdCB0aGlzIGNhc2VcbiAgLy8gZXhwbGljaXRseVxuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LnByb2Nlc3MgJiYgd2luZG93LnByb2Nlc3MudHlwZSA9PT0gJ3JlbmRlcmVyJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gaXMgd2Via2l0PyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xNjQ1OTYwNi8zNzY3NzNcbiAgLy8gZG9jdW1lbnQgaXMgdW5kZWZpbmVkIGluIHJlYWN0LW5hdGl2ZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0LW5hdGl2ZS9wdWxsLzE2MzJcbiAgcmV0dXJuICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2UpIHx8XG4gICAgLy8gaXMgZmlyZWJ1Zz8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzk4MTIwLzM3Njc3M1xuICAgICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuY29uc29sZSAmJiAod2luZG93LmNvbnNvbGUuZmlyZWJ1ZyB8fCAod2luZG93LmNvbnNvbGUuZXhjZXB0aW9uICYmIHdpbmRvdy5jb25zb2xlLnRhYmxlKSkpIHx8XG4gICAgLy8gaXMgZmlyZWZveCA+PSB2MzE/XG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Ub29scy9XZWJfQ29uc29sZSNTdHlsaW5nX21lc3NhZ2VzXG4gICAgKHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XFwvKFxcZCspLykgJiYgcGFyc2VJbnQoUmVnRXhwLiQxLCAxMCkgPj0gMzEpIHx8XG4gICAgLy8gZG91YmxlIGNoZWNrIHdlYmtpdCBpbiB1c2VyQWdlbnQganVzdCBpbiBjYXNlIHdlIGFyZSBpbiBhIHdvcmtlclxuICAgICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvYXBwbGV3ZWJraXRcXC8oXFxkKykvKSk7XG59XG5cbi8qKlxuICogTWFwICVqIHRvIGBKU09OLnN0cmluZ2lmeSgpYCwgc2luY2Ugbm8gV2ViIEluc3BlY3RvcnMgZG8gdGhhdCBieSBkZWZhdWx0LlxuICovXG5cbmV4cG9ydHMuZm9ybWF0dGVycy5qID0gZnVuY3Rpb24odikge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuICdbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogJyArIGVyci5tZXNzYWdlO1xuICB9XG59O1xuXG5cbi8qKlxuICogQ29sb3JpemUgbG9nIGFyZ3VtZW50cyBpZiBlbmFibGVkLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZm9ybWF0QXJncyhhcmdzKSB7XG4gIHZhciB1c2VDb2xvcnMgPSB0aGlzLnVzZUNvbG9ycztcblxuICBhcmdzWzBdID0gKHVzZUNvbG9ycyA/ICclYycgOiAnJylcbiAgICArIHRoaXMubmFtZXNwYWNlXG4gICAgKyAodXNlQ29sb3JzID8gJyAlYycgOiAnICcpXG4gICAgKyBhcmdzWzBdXG4gICAgKyAodXNlQ29sb3JzID8gJyVjICcgOiAnICcpXG4gICAgKyAnKycgKyBleHBvcnRzLmh1bWFuaXplKHRoaXMuZGlmZik7XG5cbiAgaWYgKCF1c2VDb2xvcnMpIHJldHVybjtcblxuICB2YXIgYyA9ICdjb2xvcjogJyArIHRoaXMuY29sb3I7XG4gIGFyZ3Muc3BsaWNlKDEsIDAsIGMsICdjb2xvcjogaW5oZXJpdCcpXG5cbiAgLy8gdGhlIGZpbmFsIFwiJWNcIiBpcyBzb21ld2hhdCB0cmlja3ksIGJlY2F1c2UgdGhlcmUgY291bGQgYmUgb3RoZXJcbiAgLy8gYXJndW1lbnRzIHBhc3NlZCBlaXRoZXIgYmVmb3JlIG9yIGFmdGVyIHRoZSAlYywgc28gd2UgbmVlZCB0b1xuICAvLyBmaWd1cmUgb3V0IHRoZSBjb3JyZWN0IGluZGV4IHRvIGluc2VydCB0aGUgQ1NTIGludG9cbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGxhc3RDID0gMDtcbiAgYXJnc1swXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csIGZ1bmN0aW9uKG1hdGNoKSB7XG4gICAgaWYgKCclJScgPT09IG1hdGNoKSByZXR1cm47XG4gICAgaW5kZXgrKztcbiAgICBpZiAoJyVjJyA9PT0gbWF0Y2gpIHtcbiAgICAgIC8vIHdlIG9ubHkgYXJlIGludGVyZXN0ZWQgaW4gdGhlICpsYXN0KiAlY1xuICAgICAgLy8gKHRoZSB1c2VyIG1heSBoYXZlIHByb3ZpZGVkIHRoZWlyIG93bilcbiAgICAgIGxhc3RDID0gaW5kZXg7XG4gICAgfVxuICB9KTtcblxuICBhcmdzLnNwbGljZShsYXN0QywgMCwgYyk7XG59XG5cbi8qKlxuICogSW52b2tlcyBgY29uc29sZS5sb2coKWAgd2hlbiBhdmFpbGFibGUuXG4gKiBOby1vcCB3aGVuIGBjb25zb2xlLmxvZ2AgaXMgbm90IGEgXCJmdW5jdGlvblwiLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gbG9nKCkge1xuICAvLyB0aGlzIGhhY2tlcnkgaXMgcmVxdWlyZWQgZm9yIElFOC85LCB3aGVyZVxuICAvLyB0aGUgYGNvbnNvbGUubG9nYCBmdW5jdGlvbiBkb2Vzbid0IGhhdmUgJ2FwcGx5J1xuICByZXR1cm4gJ29iamVjdCcgPT09IHR5cGVvZiBjb25zb2xlXG4gICAgJiYgY29uc29sZS5sb2dcbiAgICAmJiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlLmxvZywgY29uc29sZSwgYXJndW1lbnRzKTtcbn1cblxuLyoqXG4gKiBTYXZlIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2F2ZShuYW1lc3BhY2VzKSB7XG4gIHRyeSB7XG4gICAgaWYgKG51bGwgPT0gbmFtZXNwYWNlcykge1xuICAgICAgZXhwb3J0cy5zdG9yYWdlLnJlbW92ZUl0ZW0oJ2RlYnVnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cG9ydHMuc3RvcmFnZS5kZWJ1ZyA9IG5hbWVzcGFjZXM7XG4gICAgfVxuICB9IGNhdGNoKGUpIHt9XG59XG5cbi8qKlxuICogTG9hZCBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm5zIHRoZSBwcmV2aW91c2x5IHBlcnNpc3RlZCBkZWJ1ZyBtb2Rlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9hZCgpIHtcbiAgdmFyIHI7XG4gIHRyeSB7XG4gICAgciA9IGV4cG9ydHMuc3RvcmFnZS5kZWJ1ZztcbiAgfSBjYXRjaChlKSB7fVxuXG4gIC8vIElmIGRlYnVnIGlzbid0IHNldCBpbiBMUywgYW5kIHdlJ3JlIGluIEVsZWN0cm9uLCB0cnkgdG8gbG9hZCAkREVCVUdcbiAgaWYgKCFyICYmIHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiAnZW52JyBpbiBwcm9jZXNzKSB7XG4gICAgciA9IHByb2Nlc3MuZW52LkRFQlVHO1xuICB9XG5cbiAgcmV0dXJuIHI7XG59XG5cbi8qKlxuICogRW5hYmxlIG5hbWVzcGFjZXMgbGlzdGVkIGluIGBsb2NhbFN0b3JhZ2UuZGVidWdgIGluaXRpYWxseS5cbiAqL1xuXG5leHBvcnRzLmVuYWJsZShsb2FkKCkpO1xuXG4vKipcbiAqIExvY2Fsc3RvcmFnZSBhdHRlbXB0cyB0byByZXR1cm4gdGhlIGxvY2Fsc3RvcmFnZS5cbiAqXG4gKiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHNhZmFyaSB0aHJvd3NcbiAqIHdoZW4gYSB1c2VyIGRpc2FibGVzIGNvb2tpZXMvbG9jYWxzdG9yYWdlXG4gKiBhbmQgeW91IGF0dGVtcHQgdG8gYWNjZXNzIGl0LlxuICpcbiAqIEByZXR1cm4ge0xvY2FsU3RvcmFnZX1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGxvY2Fsc3RvcmFnZSgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZTtcbiAgfSBjYXRjaCAoZSkge31cbn1cbiIsICIvKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKi9cblxudmFyIHR0eSA9IHJlcXVpcmUoJ3R0eScpO1xudmFyIHV0aWwgPSByZXF1aXJlKCd1dGlsJyk7XG5cbi8qKlxuICogVGhpcyBpcyB0aGUgTm9kZS5qcyBpbXBsZW1lbnRhdGlvbiBvZiBgZGVidWcoKWAuXG4gKlxuICogRXhwb3NlIGBkZWJ1ZygpYCBhcyB0aGUgbW9kdWxlLlxuICovXG5cbmV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZGVidWcnKTtcbmV4cG9ydHMuaW5pdCA9IGluaXQ7XG5leHBvcnRzLmxvZyA9IGxvZztcbmV4cG9ydHMuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG5leHBvcnRzLnNhdmUgPSBzYXZlO1xuZXhwb3J0cy5sb2FkID0gbG9hZDtcbmV4cG9ydHMudXNlQ29sb3JzID0gdXNlQ29sb3JzO1xuXG4vKipcbiAqIENvbG9ycy5cbiAqL1xuXG5leHBvcnRzLmNvbG9ycyA9IFs2LCAyLCAzLCA0LCA1LCAxXTtcblxuLyoqXG4gKiBCdWlsZCB1cCB0aGUgZGVmYXVsdCBgaW5zcGVjdE9wdHNgIG9iamVjdCBmcm9tIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gKlxuICogICAkIERFQlVHX0NPTE9SUz1ubyBERUJVR19ERVBUSD0xMCBERUJVR19TSE9XX0hJRERFTj1lbmFibGVkIG5vZGUgc2NyaXB0LmpzXG4gKi9cblxuZXhwb3J0cy5pbnNwZWN0T3B0cyA9IE9iamVjdC5rZXlzKHByb2Nlc3MuZW52KS5maWx0ZXIoZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gL15kZWJ1Z18vaS50ZXN0KGtleSk7XG59KS5yZWR1Y2UoZnVuY3Rpb24gKG9iaiwga2V5KSB7XG4gIC8vIGNhbWVsLWNhc2VcbiAgdmFyIHByb3AgPSBrZXlcbiAgICAuc3Vic3RyaW5nKDYpXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAucmVwbGFjZSgvXyhbYS16XSkvZywgZnVuY3Rpb24gKF8sIGspIHsgcmV0dXJuIGsudG9VcHBlckNhc2UoKSB9KTtcblxuICAvLyBjb2VyY2Ugc3RyaW5nIHZhbHVlIGludG8gSlMgdmFsdWVcbiAgdmFyIHZhbCA9IHByb2Nlc3MuZW52W2tleV07XG4gIGlmICgvXih5ZXN8b258dHJ1ZXxlbmFibGVkKSQvaS50ZXN0KHZhbCkpIHZhbCA9IHRydWU7XG4gIGVsc2UgaWYgKC9eKG5vfG9mZnxmYWxzZXxkaXNhYmxlZCkkL2kudGVzdCh2YWwpKSB2YWwgPSBmYWxzZTtcbiAgZWxzZSBpZiAodmFsID09PSAnbnVsbCcpIHZhbCA9IG51bGw7XG4gIGVsc2UgdmFsID0gTnVtYmVyKHZhbCk7XG5cbiAgb2JqW3Byb3BdID0gdmFsO1xuICByZXR1cm4gb2JqO1xufSwge30pO1xuXG4vKipcbiAqIFRoZSBmaWxlIGRlc2NyaXB0b3IgdG8gd3JpdGUgdGhlIGBkZWJ1ZygpYCBjYWxscyB0by5cbiAqIFNldCB0aGUgYERFQlVHX0ZEYCBlbnYgdmFyaWFibGUgdG8gb3ZlcnJpZGUgd2l0aCBhbm90aGVyIHZhbHVlLiBpLmUuOlxuICpcbiAqICAgJCBERUJVR19GRD0zIG5vZGUgc2NyaXB0LmpzIDM+ZGVidWcubG9nXG4gKi9cblxudmFyIGZkID0gcGFyc2VJbnQocHJvY2Vzcy5lbnYuREVCVUdfRkQsIDEwKSB8fCAyO1xuXG5pZiAoMSAhPT0gZmQgJiYgMiAhPT0gZmQpIHtcbiAgdXRpbC5kZXByZWNhdGUoZnVuY3Rpb24oKXt9LCAnZXhjZXB0IGZvciBzdGRlcnIoMikgYW5kIHN0ZG91dCgxKSwgYW55IG90aGVyIHVzYWdlIG9mIERFQlVHX0ZEIGlzIGRlcHJlY2F0ZWQuIE92ZXJyaWRlIGRlYnVnLmxvZyBpZiB5b3Ugd2FudCB0byB1c2UgYSBkaWZmZXJlbnQgbG9nIGZ1bmN0aW9uIChodHRwczovL2dpdC5pby9kZWJ1Z19mZCknKSgpXG59XG5cbnZhciBzdHJlYW0gPSAxID09PSBmZCA/IHByb2Nlc3Muc3Rkb3V0IDpcbiAgICAgICAgICAgICAyID09PSBmZCA/IHByb2Nlc3Muc3RkZXJyIDpcbiAgICAgICAgICAgICBjcmVhdGVXcml0YWJsZVN0ZGlvU3RyZWFtKGZkKTtcblxuLyoqXG4gKiBJcyBzdGRvdXQgYSBUVFk/IENvbG9yZWQgb3V0cHV0IGlzIGVuYWJsZWQgd2hlbiBgdHJ1ZWAuXG4gKi9cblxuZnVuY3Rpb24gdXNlQ29sb3JzKCkge1xuICByZXR1cm4gJ2NvbG9ycycgaW4gZXhwb3J0cy5pbnNwZWN0T3B0c1xuICAgID8gQm9vbGVhbihleHBvcnRzLmluc3BlY3RPcHRzLmNvbG9ycylcbiAgICA6IHR0eS5pc2F0dHkoZmQpO1xufVxuXG4vKipcbiAqIE1hcCAlbyB0byBgdXRpbC5pbnNwZWN0KClgLCBhbGwgb24gYSBzaW5nbGUgbGluZS5cbiAqL1xuXG5leHBvcnRzLmZvcm1hdHRlcnMubyA9IGZ1bmN0aW9uKHYpIHtcbiAgdGhpcy5pbnNwZWN0T3B0cy5jb2xvcnMgPSB0aGlzLnVzZUNvbG9ycztcbiAgcmV0dXJuIHV0aWwuaW5zcGVjdCh2LCB0aGlzLmluc3BlY3RPcHRzKVxuICAgIC5zcGxpdCgnXFxuJykubWFwKGZ1bmN0aW9uKHN0cikge1xuICAgICAgcmV0dXJuIHN0ci50cmltKClcbiAgICB9KS5qb2luKCcgJyk7XG59O1xuXG4vKipcbiAqIE1hcCAlbyB0byBgdXRpbC5pbnNwZWN0KClgLCBhbGxvd2luZyBtdWx0aXBsZSBsaW5lcyBpZiBuZWVkZWQuXG4gKi9cblxuZXhwb3J0cy5mb3JtYXR0ZXJzLk8gPSBmdW5jdGlvbih2KSB7XG4gIHRoaXMuaW5zcGVjdE9wdHMuY29sb3JzID0gdGhpcy51c2VDb2xvcnM7XG4gIHJldHVybiB1dGlsLmluc3BlY3QodiwgdGhpcy5pbnNwZWN0T3B0cyk7XG59O1xuXG4vKipcbiAqIEFkZHMgQU5TSSBjb2xvciBlc2NhcGUgY29kZXMgaWYgZW5hYmxlZC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGZvcm1hdEFyZ3MoYXJncykge1xuICB2YXIgbmFtZSA9IHRoaXMubmFtZXNwYWNlO1xuICB2YXIgdXNlQ29sb3JzID0gdGhpcy51c2VDb2xvcnM7XG5cbiAgaWYgKHVzZUNvbG9ycykge1xuICAgIHZhciBjID0gdGhpcy5jb2xvcjtcbiAgICB2YXIgcHJlZml4ID0gJyAgXFx1MDAxYlszJyArIGMgKyAnOzFtJyArIG5hbWUgKyAnICcgKyAnXFx1MDAxYlswbSc7XG5cbiAgICBhcmdzWzBdID0gcHJlZml4ICsgYXJnc1swXS5zcGxpdCgnXFxuJykuam9pbignXFxuJyArIHByZWZpeCk7XG4gICAgYXJncy5wdXNoKCdcXHUwMDFiWzMnICsgYyArICdtKycgKyBleHBvcnRzLmh1bWFuaXplKHRoaXMuZGlmZikgKyAnXFx1MDAxYlswbScpO1xuICB9IGVsc2Uge1xuICAgIGFyZ3NbMF0gPSBuZXcgRGF0ZSgpLnRvVVRDU3RyaW5nKClcbiAgICAgICsgJyAnICsgbmFtZSArICcgJyArIGFyZ3NbMF07XG4gIH1cbn1cblxuLyoqXG4gKiBJbnZva2VzIGB1dGlsLmZvcm1hdCgpYCB3aXRoIHRoZSBzcGVjaWZpZWQgYXJndW1lbnRzIGFuZCB3cml0ZXMgdG8gYHN0cmVhbWAuXG4gKi9cblxuZnVuY3Rpb24gbG9nKCkge1xuICByZXR1cm4gc3RyZWFtLndyaXRlKHV0aWwuZm9ybWF0LmFwcGx5KHV0aWwsIGFyZ3VtZW50cykgKyAnXFxuJyk7XG59XG5cbi8qKlxuICogU2F2ZSBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNhdmUobmFtZXNwYWNlcykge1xuICBpZiAobnVsbCA9PSBuYW1lc3BhY2VzKSB7XG4gICAgLy8gSWYgeW91IHNldCBhIHByb2Nlc3MuZW52IGZpZWxkIHRvIG51bGwgb3IgdW5kZWZpbmVkLCBpdCBnZXRzIGNhc3QgdG8gdGhlXG4gICAgLy8gc3RyaW5nICdudWxsJyBvciAndW5kZWZpbmVkJy4gSnVzdCBkZWxldGUgaW5zdGVhZC5cbiAgICBkZWxldGUgcHJvY2Vzcy5lbnYuREVCVUc7XG4gIH0gZWxzZSB7XG4gICAgcHJvY2Vzcy5lbnYuREVCVUcgPSBuYW1lc3BhY2VzO1xuICB9XG59XG5cbi8qKlxuICogTG9hZCBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm5zIHRoZSBwcmV2aW91c2x5IHBlcnNpc3RlZCBkZWJ1ZyBtb2Rlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9hZCgpIHtcbiAgcmV0dXJuIHByb2Nlc3MuZW52LkRFQlVHO1xufVxuXG4vKipcbiAqIENvcGllZCBmcm9tIGBub2RlL3NyYy9ub2RlLmpzYC5cbiAqXG4gKiBYWFg6IEl0J3MgbGFtZSB0aGF0IG5vZGUgZG9lc24ndCBleHBvc2UgdGhpcyBBUEkgb3V0LW9mLXRoZS1ib3guIEl0IGFsc29cbiAqIHJlbGllcyBvbiB0aGUgdW5kb2N1bWVudGVkIGB0dHlfd3JhcC5ndWVzc0hhbmRsZVR5cGUoKWAgd2hpY2ggaXMgYWxzbyBsYW1lLlxuICovXG5cbmZ1bmN0aW9uIGNyZWF0ZVdyaXRhYmxlU3RkaW9TdHJlYW0gKGZkKSB7XG4gIHZhciBzdHJlYW07XG4gIHZhciB0dHlfd3JhcCA9IHByb2Nlc3MuYmluZGluZygndHR5X3dyYXAnKTtcblxuICAvLyBOb3RlIHN0cmVhbS5fdHlwZSBpcyB1c2VkIGZvciB0ZXN0LW1vZHVsZS1sb2FkLWxpc3QuanNcblxuICBzd2l0Y2ggKHR0eV93cmFwLmd1ZXNzSGFuZGxlVHlwZShmZCkpIHtcbiAgICBjYXNlICdUVFknOlxuICAgICAgc3RyZWFtID0gbmV3IHR0eS5Xcml0ZVN0cmVhbShmZCk7XG4gICAgICBzdHJlYW0uX3R5cGUgPSAndHR5JztcblxuICAgICAgLy8gSGFjayB0byBoYXZlIHN0cmVhbSBub3Qga2VlcCB0aGUgZXZlbnQgbG9vcCBhbGl2ZS5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vam95ZW50L25vZGUvaXNzdWVzLzE3MjZcbiAgICAgIGlmIChzdHJlYW0uX2hhbmRsZSAmJiBzdHJlYW0uX2hhbmRsZS51bnJlZikge1xuICAgICAgICBzdHJlYW0uX2hhbmRsZS51bnJlZigpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdGSUxFJzpcbiAgICAgIHZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG4gICAgICBzdHJlYW0gPSBuZXcgZnMuU3luY1dyaXRlU3RyZWFtKGZkLCB7IGF1dG9DbG9zZTogZmFsc2UgfSk7XG4gICAgICBzdHJlYW0uX3R5cGUgPSAnZnMnO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdQSVBFJzpcbiAgICBjYXNlICdUQ1AnOlxuICAgICAgdmFyIG5ldCA9IHJlcXVpcmUoJ25ldCcpO1xuICAgICAgc3RyZWFtID0gbmV3IG5ldC5Tb2NrZXQoe1xuICAgICAgICBmZDogZmQsXG4gICAgICAgIHJlYWRhYmxlOiBmYWxzZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH0pO1xuXG4gICAgICAvLyBGSVhNRSBTaG91bGQgcHJvYmFibHkgaGF2ZSBhbiBvcHRpb24gaW4gbmV0LlNvY2tldCB0byBjcmVhdGUgYVxuICAgICAgLy8gc3RyZWFtIGZyb20gYW4gZXhpc3RpbmcgZmQgd2hpY2ggaXMgd3JpdGFibGUgb25seS4gQnV0IGZvciBub3dcbiAgICAgIC8vIHdlJ2xsIGp1c3QgYWRkIHRoaXMgaGFjayBhbmQgc2V0IHRoZSBgcmVhZGFibGVgIG1lbWJlciB0byBmYWxzZS5cbiAgICAgIC8vIFRlc3Q6IC4vbm9kZSB0ZXN0L2ZpeHR1cmVzL2VjaG8uanMgPCAvZXRjL3Bhc3N3ZFxuICAgICAgc3RyZWFtLnJlYWRhYmxlID0gZmFsc2U7XG4gICAgICBzdHJlYW0ucmVhZCA9IG51bGw7XG4gICAgICBzdHJlYW0uX3R5cGUgPSAncGlwZSc7XG5cbiAgICAgIC8vIEZJWE1FIEhhY2sgdG8gaGF2ZSBzdHJlYW0gbm90IGtlZXAgdGhlIGV2ZW50IGxvb3AgYWxpdmUuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2pveWVudC9ub2RlL2lzc3Vlcy8xNzI2XG4gICAgICBpZiAoc3RyZWFtLl9oYW5kbGUgJiYgc3RyZWFtLl9oYW5kbGUudW5yZWYpIHtcbiAgICAgICAgc3RyZWFtLl9oYW5kbGUudW5yZWYoKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIFByb2JhYmx5IGFuIGVycm9yIG9uIGluIHV2X2d1ZXNzX2hhbmRsZSgpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ltcGxlbWVudCBtZS4gVW5rbm93biBzdHJlYW0gZmlsZSB0eXBlIScpO1xuICB9XG5cbiAgLy8gRm9yIHN1cHBvcnRpbmcgbGVnYWN5IEFQSSB3ZSBwdXQgdGhlIEZEIGhlcmUuXG4gIHN0cmVhbS5mZCA9IGZkO1xuXG4gIHN0cmVhbS5faXNTdGRpbyA9IHRydWU7XG5cbiAgcmV0dXJuIHN0cmVhbTtcbn1cblxuLyoqXG4gKiBJbml0IGxvZ2ljIGZvciBgZGVidWdgIGluc3RhbmNlcy5cbiAqXG4gKiBDcmVhdGUgYSBuZXcgYGluc3BlY3RPcHRzYCBvYmplY3QgaW4gY2FzZSBgdXNlQ29sb3JzYCBpcyBzZXRcbiAqIGRpZmZlcmVudGx5IGZvciBhIHBhcnRpY3VsYXIgYGRlYnVnYCBpbnN0YW5jZS5cbiAqL1xuXG5mdW5jdGlvbiBpbml0IChkZWJ1Zykge1xuICBkZWJ1Zy5pbnNwZWN0T3B0cyA9IHt9O1xuXG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXhwb3J0cy5pbnNwZWN0T3B0cyk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGRlYnVnLmluc3BlY3RPcHRzW2tleXNbaV1dID0gZXhwb3J0cy5pbnNwZWN0T3B0c1trZXlzW2ldXTtcbiAgfVxufVxuXG4vKipcbiAqIEVuYWJsZSBuYW1lc3BhY2VzIGxpc3RlZCBpbiBgcHJvY2Vzcy5lbnYuREVCVUdgIGluaXRpYWxseS5cbiAqL1xuXG5leHBvcnRzLmVuYWJsZShsb2FkKCkpO1xuIiwgIi8qKlxuICogRGV0ZWN0IEVsZWN0cm9uIHJlbmRlcmVyIHByb2Nlc3MsIHdoaWNoIGlzIG5vZGUsIGJ1dCB3ZSBzaG91bGRcbiAqIHRyZWF0IGFzIGEgYnJvd3Nlci5cbiAqL1xuXG5pZiAodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MudHlwZSA9PT0gJ3JlbmRlcmVyJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vYnJvd3Nlci5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL25vZGUuanMnKTtcbn1cbiIsICJ2YXIgZGVidWc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICBpZiAoIWRlYnVnKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8qIGVzbGludCBnbG9iYWwtcmVxdWlyZTogb2ZmICovXG4gICAgICBkZWJ1ZyA9IHJlcXVpcmUoXCJkZWJ1Z1wiKShcImZvbGxvdy1yZWRpcmVjdHNcIik7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikgeyAvKiAqLyB9XG4gICAgaWYgKHR5cGVvZiBkZWJ1ZyAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBkZWJ1ZyA9IGZ1bmN0aW9uICgpIHsgLyogKi8gfTtcbiAgICB9XG4gIH1cbiAgZGVidWcuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn07XG4iLCAidmFyIHVybCA9IHJlcXVpcmUoXCJ1cmxcIik7XG52YXIgVVJMID0gdXJsLlVSTDtcbnZhciBodHRwID0gcmVxdWlyZShcImh0dHBcIik7XG52YXIgaHR0cHMgPSByZXF1aXJlKFwiaHR0cHNcIik7XG52YXIgV3JpdGFibGUgPSByZXF1aXJlKFwic3RyZWFtXCIpLldyaXRhYmxlO1xudmFyIGFzc2VydCA9IHJlcXVpcmUoXCJhc3NlcnRcIik7XG52YXIgZGVidWcgPSByZXF1aXJlKFwiLi9kZWJ1Z1wiKTtcblxuLy8gUHJldmVudGl2ZSBwbGF0Zm9ybSBkZXRlY3Rpb25cbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4oZnVuY3Rpb24gZGV0ZWN0VW5zdXBwb3J0ZWRFbnZpcm9ubWVudCgpIHtcbiAgdmFyIGxvb2tzTGlrZU5vZGUgPSB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgdmFyIGxvb2tzTGlrZUJyb3dzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgdmFyIGxvb2tzTGlrZVY4ID0gaXNGdW5jdGlvbihFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSk7XG4gIGlmICghbG9va3NMaWtlTm9kZSAmJiAobG9va3NMaWtlQnJvd3NlciB8fCAhbG9va3NMaWtlVjgpKSB7XG4gICAgY29uc29sZS53YXJuKFwiVGhlIGZvbGxvdy1yZWRpcmVjdHMgcGFja2FnZSBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBicm93c2VyIGJ1aWxkcy5cIik7XG4gIH1cbn0oKSk7XG5cbi8vIFdoZXRoZXIgdG8gdXNlIHRoZSBuYXRpdmUgVVJMIG9iamVjdCBvciB0aGUgbGVnYWN5IHVybCBtb2R1bGVcbnZhciB1c2VOYXRpdmVVUkwgPSBmYWxzZTtcbnRyeSB7XG4gIGFzc2VydChuZXcgVVJMKFwiXCIpKTtcbn1cbmNhdGNoIChlcnJvcikge1xuICB1c2VOYXRpdmVVUkwgPSBlcnJvci5jb2RlID09PSBcIkVSUl9JTlZBTElEX1VSTFwiO1xufVxuXG4vLyBVUkwgZmllbGRzIHRvIHByZXNlcnZlIGluIGNvcHkgb3BlcmF0aW9uc1xudmFyIHByZXNlcnZlZFVybEZpZWxkcyA9IFtcbiAgXCJhdXRoXCIsXG4gIFwiaG9zdFwiLFxuICBcImhvc3RuYW1lXCIsXG4gIFwiaHJlZlwiLFxuICBcInBhdGhcIixcbiAgXCJwYXRobmFtZVwiLFxuICBcInBvcnRcIixcbiAgXCJwcm90b2NvbFwiLFxuICBcInF1ZXJ5XCIsXG4gIFwic2VhcmNoXCIsXG4gIFwiaGFzaFwiLFxuXTtcblxuLy8gQ3JlYXRlIGhhbmRsZXJzIHRoYXQgcGFzcyBldmVudHMgZnJvbSBuYXRpdmUgcmVxdWVzdHNcbnZhciBldmVudHMgPSBbXCJhYm9ydFwiLCBcImFib3J0ZWRcIiwgXCJjb25uZWN0XCIsIFwiZXJyb3JcIiwgXCJzb2NrZXRcIiwgXCJ0aW1lb3V0XCJdO1xudmFyIGV2ZW50SGFuZGxlcnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuZXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKGV2ZW50KSB7XG4gIGV2ZW50SGFuZGxlcnNbZXZlbnRdID0gZnVuY3Rpb24gKGFyZzEsIGFyZzIsIGFyZzMpIHtcbiAgICB0aGlzLl9yZWRpcmVjdGFibGUuZW1pdChldmVudCwgYXJnMSwgYXJnMiwgYXJnMyk7XG4gIH07XG59KTtcblxuLy8gRXJyb3IgdHlwZXMgd2l0aCBjb2Rlc1xudmFyIEludmFsaWRVcmxFcnJvciA9IGNyZWF0ZUVycm9yVHlwZShcbiAgXCJFUlJfSU5WQUxJRF9VUkxcIixcbiAgXCJJbnZhbGlkIFVSTFwiLFxuICBUeXBlRXJyb3Jcbik7XG52YXIgUmVkaXJlY3Rpb25FcnJvciA9IGNyZWF0ZUVycm9yVHlwZShcbiAgXCJFUlJfRlJfUkVESVJFQ1RJT05fRkFJTFVSRVwiLFxuICBcIlJlZGlyZWN0ZWQgcmVxdWVzdCBmYWlsZWRcIlxuKTtcbnZhciBUb29NYW55UmVkaXJlY3RzRXJyb3IgPSBjcmVhdGVFcnJvclR5cGUoXG4gIFwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUU1wiLFxuICBcIk1heGltdW0gbnVtYmVyIG9mIHJlZGlyZWN0cyBleGNlZWRlZFwiLFxuICBSZWRpcmVjdGlvbkVycm9yXG4pO1xudmFyIE1heEJvZHlMZW5ndGhFeGNlZWRlZEVycm9yID0gY3JlYXRlRXJyb3JUeXBlKFxuICBcIkVSUl9GUl9NQVhfQk9EWV9MRU5HVEhfRVhDRUVERURcIixcbiAgXCJSZXF1ZXN0IGJvZHkgbGFyZ2VyIHRoYW4gbWF4Qm9keUxlbmd0aCBsaW1pdFwiXG4pO1xudmFyIFdyaXRlQWZ0ZXJFbmRFcnJvciA9IGNyZWF0ZUVycm9yVHlwZShcbiAgXCJFUlJfU1RSRUFNX1dSSVRFX0FGVEVSX0VORFwiLFxuICBcIndyaXRlIGFmdGVyIGVuZFwiXG4pO1xuXG4vLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxudmFyIGRlc3Ryb3kgPSBXcml0YWJsZS5wcm90b3R5cGUuZGVzdHJveSB8fCBub29wO1xuXG4vLyBBbiBIVFRQKFMpIHJlcXVlc3QgdGhhdCBjYW4gYmUgcmVkaXJlY3RlZFxuZnVuY3Rpb24gUmVkaXJlY3RhYmxlUmVxdWVzdChvcHRpb25zLCByZXNwb25zZUNhbGxiYWNrKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIHJlcXVlc3RcbiAgV3JpdGFibGUuY2FsbCh0aGlzKTtcbiAgdGhpcy5fc2FuaXRpemVPcHRpb25zKG9wdGlvbnMpO1xuICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgdGhpcy5fZW5kZWQgPSBmYWxzZTtcbiAgdGhpcy5fZW5kaW5nID0gZmFsc2U7XG4gIHRoaXMuX3JlZGlyZWN0Q291bnQgPSAwO1xuICB0aGlzLl9yZWRpcmVjdHMgPSBbXTtcbiAgdGhpcy5fcmVxdWVzdEJvZHlMZW5ndGggPSAwO1xuICB0aGlzLl9yZXF1ZXN0Qm9keUJ1ZmZlcnMgPSBbXTtcblxuICAvLyBBdHRhY2ggYSBjYWxsYmFjayBpZiBwYXNzZWRcbiAgaWYgKHJlc3BvbnNlQ2FsbGJhY2spIHtcbiAgICB0aGlzLm9uKFwicmVzcG9uc2VcIiwgcmVzcG9uc2VDYWxsYmFjayk7XG4gIH1cblxuICAvLyBSZWFjdCB0byByZXNwb25zZXMgb2YgbmF0aXZlIHJlcXVlc3RzXG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5fb25OYXRpdmVSZXNwb25zZSA9IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgIHRyeSB7XG4gICAgICBzZWxmLl9wcm9jZXNzUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgIH1cbiAgICBjYXRjaCAoY2F1c2UpIHtcbiAgICAgIHNlbGYuZW1pdChcImVycm9yXCIsIGNhdXNlIGluc3RhbmNlb2YgUmVkaXJlY3Rpb25FcnJvciA/XG4gICAgICAgIGNhdXNlIDogbmV3IFJlZGlyZWN0aW9uRXJyb3IoeyBjYXVzZTogY2F1c2UgfSkpO1xuICAgIH1cbiAgfTtcblxuICAvLyBQZXJmb3JtIHRoZSBmaXJzdCByZXF1ZXN0XG4gIHRoaXMuX3BlcmZvcm1SZXF1ZXN0KCk7XG59XG5SZWRpcmVjdGFibGVSZXF1ZXN0LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoV3JpdGFibGUucHJvdG90eXBlKTtcblxuUmVkaXJlY3RhYmxlUmVxdWVzdC5wcm90b3R5cGUuYWJvcnQgPSBmdW5jdGlvbiAoKSB7XG4gIGRlc3Ryb3lSZXF1ZXN0KHRoaXMuX2N1cnJlbnRSZXF1ZXN0KTtcbiAgdGhpcy5fY3VycmVudFJlcXVlc3QuYWJvcnQoKTtcbiAgdGhpcy5lbWl0KFwiYWJvcnRcIik7XG59O1xuXG5SZWRpcmVjdGFibGVSZXF1ZXN0LnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKGVycm9yKSB7XG4gIGRlc3Ryb3lSZXF1ZXN0KHRoaXMuX2N1cnJlbnRSZXF1ZXN0LCBlcnJvcik7XG4gIGRlc3Ryb3kuY2FsbCh0aGlzLCBlcnJvcik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLy8gV3JpdGVzIGJ1ZmZlcmVkIGRhdGEgdG8gdGhlIGN1cnJlbnQgbmF0aXZlIHJlcXVlc3RcblJlZGlyZWN0YWJsZVJlcXVlc3QucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24gKGRhdGEsIGVuY29kaW5nLCBjYWxsYmFjaykge1xuICAvLyBXcml0aW5nIGlzIG5vdCBhbGxvd2VkIGlmIGVuZCBoYXMgYmVlbiBjYWxsZWRcbiAgaWYgKHRoaXMuX2VuZGluZykge1xuICAgIHRocm93IG5ldyBXcml0ZUFmdGVyRW5kRXJyb3IoKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIGlucHV0IGFuZCBzaGlmdCBwYXJhbWV0ZXJzIGlmIG5lY2Vzc2FyeVxuICBpZiAoIWlzU3RyaW5nKGRhdGEpICYmICFpc0J1ZmZlcihkYXRhKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJkYXRhIHNob3VsZCBiZSBhIHN0cmluZywgQnVmZmVyIG9yIFVpbnQ4QXJyYXlcIik7XG4gIH1cbiAgaWYgKGlzRnVuY3Rpb24oZW5jb2RpbmcpKSB7XG4gICAgY2FsbGJhY2sgPSBlbmNvZGluZztcbiAgICBlbmNvZGluZyA9IG51bGw7XG4gIH1cblxuICAvLyBJZ25vcmUgZW1wdHkgYnVmZmVycywgc2luY2Ugd3JpdGluZyB0aGVtIGRvZXNuJ3QgaW52b2tlIHRoZSBjYWxsYmFja1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvaXNzdWVzLzIyMDY2XG4gIGlmIChkYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG4gIC8vIE9ubHkgd3JpdGUgd2hlbiB3ZSBkb24ndCBleGNlZWQgdGhlIG1heGltdW0gYm9keSBsZW5ndGhcbiAgaWYgKHRoaXMuX3JlcXVlc3RCb2R5TGVuZ3RoICsgZGF0YS5sZW5ndGggPD0gdGhpcy5fb3B0aW9ucy5tYXhCb2R5TGVuZ3RoKSB7XG4gICAgdGhpcy5fcmVxdWVzdEJvZHlMZW5ndGggKz0gZGF0YS5sZW5ndGg7XG4gICAgdGhpcy5fcmVxdWVzdEJvZHlCdWZmZXJzLnB1c2goeyBkYXRhOiBkYXRhLCBlbmNvZGluZzogZW5jb2RpbmcgfSk7XG4gICAgdGhpcy5fY3VycmVudFJlcXVlc3Qud3JpdGUoZGF0YSwgZW5jb2RpbmcsIGNhbGxiYWNrKTtcbiAgfVxuICAvLyBFcnJvciB3aGVuIHdlIGV4Y2VlZCB0aGUgbWF4aW11bSBib2R5IGxlbmd0aFxuICBlbHNlIHtcbiAgICB0aGlzLmVtaXQoXCJlcnJvclwiLCBuZXcgTWF4Qm9keUxlbmd0aEV4Y2VlZGVkRXJyb3IoKSk7XG4gICAgdGhpcy5hYm9ydCgpO1xuICB9XG59O1xuXG4vLyBFbmRzIHRoZSBjdXJyZW50IG5hdGl2ZSByZXF1ZXN0XG5SZWRpcmVjdGFibGVSZXF1ZXN0LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbiAoZGF0YSwgZW5jb2RpbmcsIGNhbGxiYWNrKSB7XG4gIC8vIFNoaWZ0IHBhcmFtZXRlcnMgaWYgbmVjZXNzYXJ5XG4gIGlmIChpc0Z1bmN0aW9uKGRhdGEpKSB7XG4gICAgY2FsbGJhY2sgPSBkYXRhO1xuICAgIGRhdGEgPSBlbmNvZGluZyA9IG51bGw7XG4gIH1cbiAgZWxzZSBpZiAoaXNGdW5jdGlvbihlbmNvZGluZykpIHtcbiAgICBjYWxsYmFjayA9IGVuY29kaW5nO1xuICAgIGVuY29kaW5nID0gbnVsbDtcbiAgfVxuXG4gIC8vIFdyaXRlIGRhdGEgaWYgbmVlZGVkIGFuZCBlbmRcbiAgaWYgKCFkYXRhKSB7XG4gICAgdGhpcy5fZW5kZWQgPSB0aGlzLl9lbmRpbmcgPSB0cnVlO1xuICAgIHRoaXMuX2N1cnJlbnRSZXF1ZXN0LmVuZChudWxsLCBudWxsLCBjYWxsYmFjayk7XG4gIH1cbiAgZWxzZSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciBjdXJyZW50UmVxdWVzdCA9IHRoaXMuX2N1cnJlbnRSZXF1ZXN0O1xuICAgIHRoaXMud3JpdGUoZGF0YSwgZW5jb2RpbmcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHNlbGYuX2VuZGVkID0gdHJ1ZTtcbiAgICAgIGN1cnJlbnRSZXF1ZXN0LmVuZChudWxsLCBudWxsLCBjYWxsYmFjayk7XG4gICAgfSk7XG4gICAgdGhpcy5fZW5kaW5nID0gdHJ1ZTtcbiAgfVxufTtcblxuLy8gU2V0cyBhIGhlYWRlciB2YWx1ZSBvbiB0aGUgY3VycmVudCBuYXRpdmUgcmVxdWVzdFxuUmVkaXJlY3RhYmxlUmVxdWVzdC5wcm90b3R5cGUuc2V0SGVhZGVyID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gIHRoaXMuX29wdGlvbnMuaGVhZGVyc1tuYW1lXSA9IHZhbHVlO1xuICB0aGlzLl9jdXJyZW50UmVxdWVzdC5zZXRIZWFkZXIobmFtZSwgdmFsdWUpO1xufTtcblxuLy8gQ2xlYXJzIGEgaGVhZGVyIHZhbHVlIG9uIHRoZSBjdXJyZW50IG5hdGl2ZSByZXF1ZXN0XG5SZWRpcmVjdGFibGVSZXF1ZXN0LnByb3RvdHlwZS5yZW1vdmVIZWFkZXIgPSBmdW5jdGlvbiAobmFtZSkge1xuICBkZWxldGUgdGhpcy5fb3B0aW9ucy5oZWFkZXJzW25hbWVdO1xuICB0aGlzLl9jdXJyZW50UmVxdWVzdC5yZW1vdmVIZWFkZXIobmFtZSk7XG59O1xuXG4vLyBHbG9iYWwgdGltZW91dCBmb3IgYWxsIHVuZGVybHlpbmcgcmVxdWVzdHNcblJlZGlyZWN0YWJsZVJlcXVlc3QucHJvdG90eXBlLnNldFRpbWVvdXQgPSBmdW5jdGlvbiAobXNlY3MsIGNhbGxiYWNrKSB7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICAvLyBEZXN0cm95cyB0aGUgc29ja2V0IG9uIHRpbWVvdXRcbiAgZnVuY3Rpb24gZGVzdHJveU9uVGltZW91dChzb2NrZXQpIHtcbiAgICBzb2NrZXQuc2V0VGltZW91dChtc2Vjcyk7XG4gICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKFwidGltZW91dFwiLCBzb2NrZXQuZGVzdHJveSk7XG4gICAgc29ja2V0LmFkZExpc3RlbmVyKFwidGltZW91dFwiLCBzb2NrZXQuZGVzdHJveSk7XG4gIH1cblxuICAvLyBTZXRzIHVwIGEgdGltZXIgdG8gdHJpZ2dlciBhIHRpbWVvdXQgZXZlbnRcbiAgZnVuY3Rpb24gc3RhcnRUaW1lcihzb2NrZXQpIHtcbiAgICBpZiAoc2VsZi5fdGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHNlbGYuX3RpbWVvdXQpO1xuICAgIH1cbiAgICBzZWxmLl90aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLmVtaXQoXCJ0aW1lb3V0XCIpO1xuICAgICAgY2xlYXJUaW1lcigpO1xuICAgIH0sIG1zZWNzKTtcbiAgICBkZXN0cm95T25UaW1lb3V0KHNvY2tldCk7XG4gIH1cblxuICAvLyBTdG9wcyBhIHRpbWVvdXQgZnJvbSB0cmlnZ2VyaW5nXG4gIGZ1bmN0aW9uIGNsZWFyVGltZXIoKSB7XG4gICAgLy8gQ2xlYXIgdGhlIHRpbWVvdXRcbiAgICBpZiAoc2VsZi5fdGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHNlbGYuX3RpbWVvdXQpO1xuICAgICAgc2VsZi5fdGltZW91dCA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gQ2xlYW4gdXAgYWxsIGF0dGFjaGVkIGxpc3RlbmVyc1xuICAgIHNlbGYucmVtb3ZlTGlzdGVuZXIoXCJhYm9ydFwiLCBjbGVhclRpbWVyKTtcbiAgICBzZWxmLnJlbW92ZUxpc3RlbmVyKFwiZXJyb3JcIiwgY2xlYXJUaW1lcik7XG4gICAgc2VsZi5yZW1vdmVMaXN0ZW5lcihcInJlc3BvbnNlXCIsIGNsZWFyVGltZXIpO1xuICAgIHNlbGYucmVtb3ZlTGlzdGVuZXIoXCJjbG9zZVwiLCBjbGVhclRpbWVyKTtcbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIHNlbGYucmVtb3ZlTGlzdGVuZXIoXCJ0aW1lb3V0XCIsIGNhbGxiYWNrKTtcbiAgICB9XG4gICAgaWYgKCFzZWxmLnNvY2tldCkge1xuICAgICAgc2VsZi5fY3VycmVudFJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoXCJzb2NrZXRcIiwgc3RhcnRUaW1lcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQXR0YWNoIGNhbGxiYWNrIGlmIHBhc3NlZFxuICBpZiAoY2FsbGJhY2spIHtcbiAgICB0aGlzLm9uKFwidGltZW91dFwiLCBjYWxsYmFjayk7XG4gIH1cblxuICAvLyBTdGFydCB0aGUgdGltZXIgaWYgb3Igd2hlbiB0aGUgc29ja2V0IGlzIG9wZW5lZFxuICBpZiAodGhpcy5zb2NrZXQpIHtcbiAgICBzdGFydFRpbWVyKHRoaXMuc29ja2V0KTtcbiAgfVxuICBlbHNlIHtcbiAgICB0aGlzLl9jdXJyZW50UmVxdWVzdC5vbmNlKFwic29ja2V0XCIsIHN0YXJ0VGltZXIpO1xuICB9XG5cbiAgLy8gQ2xlYW4gdXAgb24gZXZlbnRzXG4gIHRoaXMub24oXCJzb2NrZXRcIiwgZGVzdHJveU9uVGltZW91dCk7XG4gIHRoaXMub24oXCJhYm9ydFwiLCBjbGVhclRpbWVyKTtcbiAgdGhpcy5vbihcImVycm9yXCIsIGNsZWFyVGltZXIpO1xuICB0aGlzLm9uKFwicmVzcG9uc2VcIiwgY2xlYXJUaW1lcik7XG4gIHRoaXMub24oXCJjbG9zZVwiLCBjbGVhclRpbWVyKTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8vIFByb3h5IGFsbCBvdGhlciBwdWJsaWMgQ2xpZW50UmVxdWVzdCBtZXRob2RzXG5bXG4gIFwiZmx1c2hIZWFkZXJzXCIsIFwiZ2V0SGVhZGVyXCIsXG4gIFwic2V0Tm9EZWxheVwiLCBcInNldFNvY2tldEtlZXBBbGl2ZVwiLFxuXS5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcbiAgUmVkaXJlY3RhYmxlUmVxdWVzdC5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRSZXF1ZXN0W21ldGhvZF0oYSwgYik7XG4gIH07XG59KTtcblxuLy8gUHJveHkgYWxsIHB1YmxpYyBDbGllbnRSZXF1ZXN0IHByb3BlcnRpZXNcbltcImFib3J0ZWRcIiwgXCJjb25uZWN0aW9uXCIsIFwic29ja2V0XCJdLmZvckVhY2goZnVuY3Rpb24gKHByb3BlcnR5KSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWRpcmVjdGFibGVSZXF1ZXN0LnByb3RvdHlwZSwgcHJvcGVydHksIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX2N1cnJlbnRSZXF1ZXN0W3Byb3BlcnR5XTsgfSxcbiAgfSk7XG59KTtcblxuUmVkaXJlY3RhYmxlUmVxdWVzdC5wcm90b3R5cGUuX3Nhbml0aXplT3B0aW9ucyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIC8vIEVuc3VyZSBoZWFkZXJzIGFyZSBhbHdheXMgcHJlc2VudFxuICBpZiAoIW9wdGlvbnMuaGVhZGVycykge1xuICAgIG9wdGlvbnMuaGVhZGVycyA9IHt9O1xuICB9XG5cbiAgLy8gU2luY2UgaHR0cC5yZXF1ZXN0IHRyZWF0cyBob3N0IGFzIGFuIGFsaWFzIG9mIGhvc3RuYW1lLFxuICAvLyBidXQgdGhlIHVybCBtb2R1bGUgaW50ZXJwcmV0cyBob3N0IGFzIGhvc3RuYW1lIHBsdXMgcG9ydCxcbiAgLy8gZWxpbWluYXRlIHRoZSBob3N0IHByb3BlcnR5IHRvIGF2b2lkIGNvbmZ1c2lvbi5cbiAgaWYgKG9wdGlvbnMuaG9zdCkge1xuICAgIC8vIFVzZSBob3N0bmFtZSBpZiBzZXQsIGJlY2F1c2UgaXQgaGFzIHByZWNlZGVuY2VcbiAgICBpZiAoIW9wdGlvbnMuaG9zdG5hbWUpIHtcbiAgICAgIG9wdGlvbnMuaG9zdG5hbWUgPSBvcHRpb25zLmhvc3Q7XG4gICAgfVxuICAgIGRlbGV0ZSBvcHRpb25zLmhvc3Q7XG4gIH1cblxuICAvLyBDb21wbGV0ZSB0aGUgVVJMIG9iamVjdCB3aGVuIG5lY2Vzc2FyeVxuICBpZiAoIW9wdGlvbnMucGF0aG5hbWUgJiYgb3B0aW9ucy5wYXRoKSB7XG4gICAgdmFyIHNlYXJjaFBvcyA9IG9wdGlvbnMucGF0aC5pbmRleE9mKFwiP1wiKTtcbiAgICBpZiAoc2VhcmNoUG9zIDwgMCkge1xuICAgICAgb3B0aW9ucy5wYXRobmFtZSA9IG9wdGlvbnMucGF0aDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBvcHRpb25zLnBhdGhuYW1lID0gb3B0aW9ucy5wYXRoLnN1YnN0cmluZygwLCBzZWFyY2hQb3MpO1xuICAgICAgb3B0aW9ucy5zZWFyY2ggPSBvcHRpb25zLnBhdGguc3Vic3RyaW5nKHNlYXJjaFBvcyk7XG4gICAgfVxuICB9XG59O1xuXG5cbi8vIEV4ZWN1dGVzIHRoZSBuZXh0IG5hdGl2ZSByZXF1ZXN0IChpbml0aWFsIG9yIHJlZGlyZWN0KVxuUmVkaXJlY3RhYmxlUmVxdWVzdC5wcm90b3R5cGUuX3BlcmZvcm1SZXF1ZXN0ID0gZnVuY3Rpb24gKCkge1xuICAvLyBMb2FkIHRoZSBuYXRpdmUgcHJvdG9jb2xcbiAgdmFyIHByb3RvY29sID0gdGhpcy5fb3B0aW9ucy5wcm90b2NvbDtcbiAgdmFyIG5hdGl2ZVByb3RvY29sID0gdGhpcy5fb3B0aW9ucy5uYXRpdmVQcm90b2NvbHNbcHJvdG9jb2xdO1xuICBpZiAoIW5hdGl2ZVByb3RvY29sKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVuc3VwcG9ydGVkIHByb3RvY29sIFwiICsgcHJvdG9jb2wpO1xuICB9XG5cbiAgLy8gSWYgc3BlY2lmaWVkLCB1c2UgdGhlIGFnZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHByb3RvY29sXG4gIC8vIChIVFRQIGFuZCBIVFRQUyB1c2UgZGlmZmVyZW50IHR5cGVzIG9mIGFnZW50cylcbiAgaWYgKHRoaXMuX29wdGlvbnMuYWdlbnRzKSB7XG4gICAgdmFyIHNjaGVtZSA9IHByb3RvY29sLnNsaWNlKDAsIC0xKTtcbiAgICB0aGlzLl9vcHRpb25zLmFnZW50ID0gdGhpcy5fb3B0aW9ucy5hZ2VudHNbc2NoZW1lXTtcbiAgfVxuXG4gIC8vIENyZWF0ZSB0aGUgbmF0aXZlIHJlcXVlc3QgYW5kIHNldCB1cCBpdHMgZXZlbnQgaGFuZGxlcnNcbiAgdmFyIHJlcXVlc3QgPSB0aGlzLl9jdXJyZW50UmVxdWVzdCA9XG4gICAgICAgIG5hdGl2ZVByb3RvY29sLnJlcXVlc3QodGhpcy5fb3B0aW9ucywgdGhpcy5fb25OYXRpdmVSZXNwb25zZSk7XG4gIHJlcXVlc3QuX3JlZGlyZWN0YWJsZSA9IHRoaXM7XG4gIGZvciAodmFyIGV2ZW50IG9mIGV2ZW50cykge1xuICAgIHJlcXVlc3Qub24oZXZlbnQsIGV2ZW50SGFuZGxlcnNbZXZlbnRdKTtcbiAgfVxuXG4gIC8vIFJGQzcyMzBcdTAwQTc1LjMuMTogV2hlbiBtYWtpbmcgYSByZXF1ZXN0IGRpcmVjdGx5IHRvIGFuIG9yaWdpbiBzZXJ2ZXIsIFtcdTIwMjZdXG4gIC8vIGEgY2xpZW50IE1VU1Qgc2VuZCBvbmx5IHRoZSBhYnNvbHV0ZSBwYXRoIFtcdTIwMjZdIGFzIHRoZSByZXF1ZXN0LXRhcmdldC5cbiAgdGhpcy5fY3VycmVudFVybCA9IC9eXFwvLy50ZXN0KHRoaXMuX29wdGlvbnMucGF0aCkgP1xuICAgIHVybC5mb3JtYXQodGhpcy5fb3B0aW9ucykgOlxuICAgIC8vIFdoZW4gbWFraW5nIGEgcmVxdWVzdCB0byBhIHByb3h5LCBbXHUyMDI2XVxuICAgIC8vIGEgY2xpZW50IE1VU1Qgc2VuZCB0aGUgdGFyZ2V0IFVSSSBpbiBhYnNvbHV0ZS1mb3JtIFtcdTIwMjZdLlxuICAgIHRoaXMuX29wdGlvbnMucGF0aDtcblxuICAvLyBFbmQgYSByZWRpcmVjdGVkIHJlcXVlc3RcbiAgLy8gKFRoZSBmaXJzdCByZXF1ZXN0IG11c3QgYmUgZW5kZWQgZXhwbGljaXRseSB3aXRoIFJlZGlyZWN0YWJsZVJlcXVlc3QjZW5kKVxuICBpZiAodGhpcy5faXNSZWRpcmVjdCkge1xuICAgIC8vIFdyaXRlIHRoZSByZXF1ZXN0IGVudGl0eSBhbmQgZW5kXG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgYnVmZmVycyA9IHRoaXMuX3JlcXVlc3RCb2R5QnVmZmVycztcbiAgICAoZnVuY3Rpb24gd3JpdGVOZXh0KGVycm9yKSB7XG4gICAgICAvLyBPbmx5IHdyaXRlIGlmIHRoaXMgcmVxdWVzdCBoYXMgbm90IGJlZW4gcmVkaXJlY3RlZCB5ZXRcbiAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlXG4gICAgICBpZiAocmVxdWVzdCA9PT0gc2VsZi5fY3VycmVudFJlcXVlc3QpIHtcbiAgICAgICAgLy8gUmVwb3J0IGFueSB3cml0ZSBlcnJvcnNcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHNlbGYuZW1pdChcImVycm9yXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXcml0ZSB0aGUgbmV4dCBidWZmZXIgaWYgdGhlcmUgYXJlIHN0aWxsIGxlZnRcbiAgICAgICAgZWxzZSBpZiAoaSA8IGJ1ZmZlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIGJ1ZmZlciA9IGJ1ZmZlcnNbaSsrXTtcbiAgICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgZWxzZVxuICAgICAgICAgIGlmICghcmVxdWVzdC5maW5pc2hlZCkge1xuICAgICAgICAgICAgcmVxdWVzdC53cml0ZShidWZmZXIuZGF0YSwgYnVmZmVyLmVuY29kaW5nLCB3cml0ZU5leHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBFbmQgdGhlIHJlcXVlc3QgaWYgYGVuZGAgaGFzIGJlZW4gY2FsbGVkIG9uIHVzXG4gICAgICAgIGVsc2UgaWYgKHNlbGYuX2VuZGVkKSB7XG4gICAgICAgICAgcmVxdWVzdC5lbmQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0oKSk7XG4gIH1cbn07XG5cbi8vIFByb2Nlc3NlcyBhIHJlc3BvbnNlIGZyb20gdGhlIGN1cnJlbnQgbmF0aXZlIHJlcXVlc3RcblJlZGlyZWN0YWJsZVJlcXVlc3QucHJvdG90eXBlLl9wcm9jZXNzUmVzcG9uc2UgPSBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgLy8gU3RvcmUgdGhlIHJlZGlyZWN0ZWQgcmVzcG9uc2VcbiAgdmFyIHN0YXR1c0NvZGUgPSByZXNwb25zZS5zdGF0dXNDb2RlO1xuICBpZiAodGhpcy5fb3B0aW9ucy50cmFja1JlZGlyZWN0cykge1xuICAgIHRoaXMuX3JlZGlyZWN0cy5wdXNoKHtcbiAgICAgIHVybDogdGhpcy5fY3VycmVudFVybCxcbiAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLmhlYWRlcnMsXG4gICAgICBzdGF0dXNDb2RlOiBzdGF0dXNDb2RlLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gUkZDNzIzMVx1MDBBNzYuNDogVGhlIDN4eCAoUmVkaXJlY3Rpb24pIGNsYXNzIG9mIHN0YXR1cyBjb2RlIGluZGljYXRlc1xuICAvLyB0aGF0IGZ1cnRoZXIgYWN0aW9uIG5lZWRzIHRvIGJlIHRha2VuIGJ5IHRoZSB1c2VyIGFnZW50IGluIG9yZGVyIHRvXG4gIC8vIGZ1bGZpbGwgdGhlIHJlcXVlc3QuIElmIGEgTG9jYXRpb24gaGVhZGVyIGZpZWxkIGlzIHByb3ZpZGVkLFxuICAvLyB0aGUgdXNlciBhZ2VudCBNQVkgYXV0b21hdGljYWxseSByZWRpcmVjdCBpdHMgcmVxdWVzdCB0byB0aGUgVVJJXG4gIC8vIHJlZmVyZW5jZWQgYnkgdGhlIExvY2F0aW9uIGZpZWxkIHZhbHVlLFxuICAvLyBldmVuIGlmIHRoZSBzcGVjaWZpYyBzdGF0dXMgY29kZSBpcyBub3QgdW5kZXJzdG9vZC5cblxuICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgbm90IGEgcmVkaXJlY3Q7IHJldHVybiBpdCBhcy1pc1xuICB2YXIgbG9jYXRpb24gPSByZXNwb25zZS5oZWFkZXJzLmxvY2F0aW9uO1xuICBpZiAoIWxvY2F0aW9uIHx8IHRoaXMuX29wdGlvbnMuZm9sbG93UmVkaXJlY3RzID09PSBmYWxzZSB8fFxuICAgICAgc3RhdHVzQ29kZSA8IDMwMCB8fCBzdGF0dXNDb2RlID49IDQwMCkge1xuICAgIHJlc3BvbnNlLnJlc3BvbnNlVXJsID0gdGhpcy5fY3VycmVudFVybDtcbiAgICByZXNwb25zZS5yZWRpcmVjdHMgPSB0aGlzLl9yZWRpcmVjdHM7XG4gICAgdGhpcy5lbWl0KFwicmVzcG9uc2VcIiwgcmVzcG9uc2UpO1xuXG4gICAgLy8gQ2xlYW4gdXBcbiAgICB0aGlzLl9yZXF1ZXN0Qm9keUJ1ZmZlcnMgPSBbXTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBUaGUgcmVzcG9uc2UgaXMgYSByZWRpcmVjdCwgc28gYWJvcnQgdGhlIGN1cnJlbnQgcmVxdWVzdFxuICBkZXN0cm95UmVxdWVzdCh0aGlzLl9jdXJyZW50UmVxdWVzdCk7XG4gIC8vIERpc2NhcmQgdGhlIHJlbWFpbmRlciBvZiB0aGUgcmVzcG9uc2UgdG8gYXZvaWQgd2FpdGluZyBmb3IgZGF0YVxuICByZXNwb25zZS5kZXN0cm95KCk7XG5cbiAgLy8gUkZDNzIzMVx1MDBBNzYuNDogQSBjbGllbnQgU0hPVUxEIGRldGVjdCBhbmQgaW50ZXJ2ZW5lXG4gIC8vIGluIGN5Y2xpY2FsIHJlZGlyZWN0aW9ucyAoaS5lLiwgXCJpbmZpbml0ZVwiIHJlZGlyZWN0aW9uIGxvb3BzKS5cbiAgaWYgKCsrdGhpcy5fcmVkaXJlY3RDb3VudCA+IHRoaXMuX29wdGlvbnMubWF4UmVkaXJlY3RzKSB7XG4gICAgdGhyb3cgbmV3IFRvb01hbnlSZWRpcmVjdHNFcnJvcigpO1xuICB9XG5cbiAgLy8gU3RvcmUgdGhlIHJlcXVlc3QgaGVhZGVycyBpZiBhcHBsaWNhYmxlXG4gIHZhciByZXF1ZXN0SGVhZGVycztcbiAgdmFyIGJlZm9yZVJlZGlyZWN0ID0gdGhpcy5fb3B0aW9ucy5iZWZvcmVSZWRpcmVjdDtcbiAgaWYgKGJlZm9yZVJlZGlyZWN0KSB7XG4gICAgcmVxdWVzdEhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgIC8vIFRoZSBIb3N0IGhlYWRlciB3YXMgc2V0IGJ5IG5hdGl2ZVByb3RvY29sLnJlcXVlc3RcbiAgICAgIEhvc3Q6IHJlc3BvbnNlLnJlcS5nZXRIZWFkZXIoXCJob3N0XCIpLFxuICAgIH0sIHRoaXMuX29wdGlvbnMuaGVhZGVycyk7XG4gIH1cblxuICAvLyBSRkM3MjMxXHUwMEE3Ni40OiBBdXRvbWF0aWMgcmVkaXJlY3Rpb24gbmVlZHMgdG8gZG9uZSB3aXRoXG4gIC8vIGNhcmUgZm9yIG1ldGhvZHMgbm90IGtub3duIHRvIGJlIHNhZmUsIFtcdTIwMjZdXG4gIC8vIFJGQzcyMzFcdTAwQTc2LjQuMlx1MjAxMzM6IEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGEgdXNlciBhZ2VudCBNQVkgY2hhbmdlXG4gIC8vIHRoZSByZXF1ZXN0IG1ldGhvZCBmcm9tIFBPU1QgdG8gR0VUIGZvciB0aGUgc3Vic2VxdWVudCByZXF1ZXN0LlxuICB2YXIgbWV0aG9kID0gdGhpcy5fb3B0aW9ucy5tZXRob2Q7XG4gIGlmICgoc3RhdHVzQ29kZSA9PT0gMzAxIHx8IHN0YXR1c0NvZGUgPT09IDMwMikgJiYgdGhpcy5fb3B0aW9ucy5tZXRob2QgPT09IFwiUE9TVFwiIHx8XG4gICAgICAvLyBSRkM3MjMxXHUwMEE3Ni40LjQ6IFRoZSAzMDMgKFNlZSBPdGhlcikgc3RhdHVzIGNvZGUgaW5kaWNhdGVzIHRoYXRcbiAgICAgIC8vIHRoZSBzZXJ2ZXIgaXMgcmVkaXJlY3RpbmcgdGhlIHVzZXIgYWdlbnQgdG8gYSBkaWZmZXJlbnQgcmVzb3VyY2UgW1x1MjAyNl1cbiAgICAgIC8vIEEgdXNlciBhZ2VudCBjYW4gcGVyZm9ybSBhIHJldHJpZXZhbCByZXF1ZXN0IHRhcmdldGluZyB0aGF0IFVSSVxuICAgICAgLy8gKGEgR0VUIG9yIEhFQUQgcmVxdWVzdCBpZiB1c2luZyBIVFRQKSBbXHUyMDI2XVxuICAgICAgKHN0YXR1c0NvZGUgPT09IDMwMykgJiYgIS9eKD86R0VUfEhFQUQpJC8udGVzdCh0aGlzLl9vcHRpb25zLm1ldGhvZCkpIHtcbiAgICB0aGlzLl9vcHRpb25zLm1ldGhvZCA9IFwiR0VUXCI7XG4gICAgLy8gRHJvcCBhIHBvc3NpYmxlIGVudGl0eSBhbmQgaGVhZGVycyByZWxhdGVkIHRvIGl0XG4gICAgdGhpcy5fcmVxdWVzdEJvZHlCdWZmZXJzID0gW107XG4gICAgcmVtb3ZlTWF0Y2hpbmdIZWFkZXJzKC9eY29udGVudC0vaSwgdGhpcy5fb3B0aW9ucy5oZWFkZXJzKTtcbiAgfVxuXG4gIC8vIERyb3AgdGhlIEhvc3QgaGVhZGVyLCBhcyB0aGUgcmVkaXJlY3QgbWlnaHQgbGVhZCB0byBhIGRpZmZlcmVudCBob3N0XG4gIHZhciBjdXJyZW50SG9zdEhlYWRlciA9IHJlbW92ZU1hdGNoaW5nSGVhZGVycygvXmhvc3QkL2ksIHRoaXMuX29wdGlvbnMuaGVhZGVycyk7XG5cbiAgLy8gSWYgdGhlIHJlZGlyZWN0IGlzIHJlbGF0aXZlLCBjYXJyeSBvdmVyIHRoZSBob3N0IG9mIHRoZSBsYXN0IHJlcXVlc3RcbiAgdmFyIGN1cnJlbnRVcmxQYXJ0cyA9IHBhcnNlVXJsKHRoaXMuX2N1cnJlbnRVcmwpO1xuICB2YXIgY3VycmVudEhvc3QgPSBjdXJyZW50SG9zdEhlYWRlciB8fCBjdXJyZW50VXJsUGFydHMuaG9zdDtcbiAgdmFyIGN1cnJlbnRVcmwgPSAvXlxcdys6Ly50ZXN0KGxvY2F0aW9uKSA/IHRoaXMuX2N1cnJlbnRVcmwgOlxuICAgIHVybC5mb3JtYXQoT2JqZWN0LmFzc2lnbihjdXJyZW50VXJsUGFydHMsIHsgaG9zdDogY3VycmVudEhvc3QgfSkpO1xuXG4gIC8vIENyZWF0ZSB0aGUgcmVkaXJlY3RlZCByZXF1ZXN0XG4gIHZhciByZWRpcmVjdFVybCA9IHJlc29sdmVVcmwobG9jYXRpb24sIGN1cnJlbnRVcmwpO1xuICBkZWJ1ZyhcInJlZGlyZWN0aW5nIHRvXCIsIHJlZGlyZWN0VXJsLmhyZWYpO1xuICB0aGlzLl9pc1JlZGlyZWN0ID0gdHJ1ZTtcbiAgc3ByZWFkVXJsT2JqZWN0KHJlZGlyZWN0VXJsLCB0aGlzLl9vcHRpb25zKTtcblxuICAvLyBEcm9wIGNvbmZpZGVudGlhbCBoZWFkZXJzIHdoZW4gcmVkaXJlY3RpbmcgdG8gYSBsZXNzIHNlY3VyZSBwcm90b2NvbFxuICAvLyBvciB0byBhIGRpZmZlcmVudCBkb21haW4gdGhhdCBpcyBub3QgYSBzdXBlcmRvbWFpblxuICBpZiAocmVkaXJlY3RVcmwucHJvdG9jb2wgIT09IGN1cnJlbnRVcmxQYXJ0cy5wcm90b2NvbCAmJlxuICAgICByZWRpcmVjdFVybC5wcm90b2NvbCAhPT0gXCJodHRwczpcIiB8fFxuICAgICByZWRpcmVjdFVybC5ob3N0ICE9PSBjdXJyZW50SG9zdCAmJlxuICAgICAhaXNTdWJkb21haW4ocmVkaXJlY3RVcmwuaG9zdCwgY3VycmVudEhvc3QpKSB7XG4gICAgcmVtb3ZlTWF0Y2hpbmdIZWFkZXJzKC9eKD86KD86cHJveHktKT9hdXRob3JpemF0aW9ufGNvb2tpZSkkL2ksIHRoaXMuX29wdGlvbnMuaGVhZGVycyk7XG4gIH1cblxuICAvLyBFdmFsdWF0ZSB0aGUgYmVmb3JlUmVkaXJlY3QgY2FsbGJhY2tcbiAgaWYgKGlzRnVuY3Rpb24oYmVmb3JlUmVkaXJlY3QpKSB7XG4gICAgdmFyIHJlc3BvbnNlRGV0YWlscyA9IHtcbiAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLmhlYWRlcnMsXG4gICAgICBzdGF0dXNDb2RlOiBzdGF0dXNDb2RlLFxuICAgIH07XG4gICAgdmFyIHJlcXVlc3REZXRhaWxzID0ge1xuICAgICAgdXJsOiBjdXJyZW50VXJsLFxuICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICBoZWFkZXJzOiByZXF1ZXN0SGVhZGVycyxcbiAgICB9O1xuICAgIGJlZm9yZVJlZGlyZWN0KHRoaXMuX29wdGlvbnMsIHJlc3BvbnNlRGV0YWlscywgcmVxdWVzdERldGFpbHMpO1xuICAgIHRoaXMuX3Nhbml0aXplT3B0aW9ucyh0aGlzLl9vcHRpb25zKTtcbiAgfVxuXG4gIC8vIFBlcmZvcm0gdGhlIHJlZGlyZWN0ZWQgcmVxdWVzdFxuICB0aGlzLl9wZXJmb3JtUmVxdWVzdCgpO1xufTtcblxuLy8gV3JhcHMgdGhlIGtleS92YWx1ZSBvYmplY3Qgb2YgcHJvdG9jb2xzIHdpdGggcmVkaXJlY3QgZnVuY3Rpb25hbGl0eVxuZnVuY3Rpb24gd3JhcChwcm90b2NvbHMpIHtcbiAgLy8gRGVmYXVsdCBzZXR0aW5nc1xuICB2YXIgZXhwb3J0cyA9IHtcbiAgICBtYXhSZWRpcmVjdHM6IDIxLFxuICAgIG1heEJvZHlMZW5ndGg6IDEwICogMTAyNCAqIDEwMjQsXG4gIH07XG5cbiAgLy8gV3JhcCBlYWNoIHByb3RvY29sXG4gIHZhciBuYXRpdmVQcm90b2NvbHMgPSB7fTtcbiAgT2JqZWN0LmtleXMocHJvdG9jb2xzKS5mb3JFYWNoKGZ1bmN0aW9uIChzY2hlbWUpIHtcbiAgICB2YXIgcHJvdG9jb2wgPSBzY2hlbWUgKyBcIjpcIjtcbiAgICB2YXIgbmF0aXZlUHJvdG9jb2wgPSBuYXRpdmVQcm90b2NvbHNbcHJvdG9jb2xdID0gcHJvdG9jb2xzW3NjaGVtZV07XG4gICAgdmFyIHdyYXBwZWRQcm90b2NvbCA9IGV4cG9ydHNbc2NoZW1lXSA9IE9iamVjdC5jcmVhdGUobmF0aXZlUHJvdG9jb2wpO1xuXG4gICAgLy8gRXhlY3V0ZXMgYSByZXF1ZXN0LCBmb2xsb3dpbmcgcmVkaXJlY3RzXG4gICAgZnVuY3Rpb24gcmVxdWVzdChpbnB1dCwgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgICAgIC8vIFBhcnNlIHBhcmFtZXRlcnMsIGVuc3VyaW5nIHRoYXQgaW5wdXQgaXMgYW4gb2JqZWN0XG4gICAgICBpZiAoaXNVUkwoaW5wdXQpKSB7XG4gICAgICAgIGlucHV0ID0gc3ByZWFkVXJsT2JqZWN0KGlucHV0KTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKGlucHV0KSkge1xuICAgICAgICBpbnB1dCA9IHNwcmVhZFVybE9iamVjdChwYXJzZVVybChpbnB1dCkpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGNhbGxiYWNrID0gb3B0aW9ucztcbiAgICAgICAgb3B0aW9ucyA9IHZhbGlkYXRlVXJsKGlucHV0KTtcbiAgICAgICAgaW5wdXQgPSB7IHByb3RvY29sOiBwcm90b2NvbCB9O1xuICAgICAgfVxuICAgICAgaWYgKGlzRnVuY3Rpb24ob3B0aW9ucykpIHtcbiAgICAgICAgY2FsbGJhY2sgPSBvcHRpb25zO1xuICAgICAgICBvcHRpb25zID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8gU2V0IGRlZmF1bHRzXG4gICAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIG1heFJlZGlyZWN0czogZXhwb3J0cy5tYXhSZWRpcmVjdHMsXG4gICAgICAgIG1heEJvZHlMZW5ndGg6IGV4cG9ydHMubWF4Qm9keUxlbmd0aCxcbiAgICAgIH0sIGlucHV0LCBvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMubmF0aXZlUHJvdG9jb2xzID0gbmF0aXZlUHJvdG9jb2xzO1xuICAgICAgaWYgKCFpc1N0cmluZyhvcHRpb25zLmhvc3QpICYmICFpc1N0cmluZyhvcHRpb25zLmhvc3RuYW1lKSkge1xuICAgICAgICBvcHRpb25zLmhvc3RuYW1lID0gXCI6OjFcIjtcbiAgICAgIH1cblxuICAgICAgYXNzZXJ0LmVxdWFsKG9wdGlvbnMucHJvdG9jb2wsIHByb3RvY29sLCBcInByb3RvY29sIG1pc21hdGNoXCIpO1xuICAgICAgZGVidWcoXCJvcHRpb25zXCIsIG9wdGlvbnMpO1xuICAgICAgcmV0dXJuIG5ldyBSZWRpcmVjdGFibGVSZXF1ZXN0KG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICAvLyBFeGVjdXRlcyBhIEdFVCByZXF1ZXN0LCBmb2xsb3dpbmcgcmVkaXJlY3RzXG4gICAgZnVuY3Rpb24gZ2V0KGlucHV0LCBvcHRpb25zLCBjYWxsYmFjaykge1xuICAgICAgdmFyIHdyYXBwZWRSZXF1ZXN0ID0gd3JhcHBlZFByb3RvY29sLnJlcXVlc3QoaW5wdXQsIG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgIHdyYXBwZWRSZXF1ZXN0LmVuZCgpO1xuICAgICAgcmV0dXJuIHdyYXBwZWRSZXF1ZXN0O1xuICAgIH1cblxuICAgIC8vIEV4cG9zZSB0aGUgcHJvcGVydGllcyBvbiB0aGUgd3JhcHBlZCBwcm90b2NvbFxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHdyYXBwZWRQcm90b2NvbCwge1xuICAgICAgcmVxdWVzdDogeyB2YWx1ZTogcmVxdWVzdCwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9LFxuICAgICAgZ2V0OiB7IHZhbHVlOiBnZXQsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSxcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBleHBvcnRzO1xufVxuXG5mdW5jdGlvbiBub29wKCkgeyAvKiBlbXB0eSAqLyB9XG5cbmZ1bmN0aW9uIHBhcnNlVXJsKGlucHV0KSB7XG4gIHZhciBwYXJzZWQ7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlXG4gIGlmICh1c2VOYXRpdmVVUkwpIHtcbiAgICBwYXJzZWQgPSBuZXcgVVJMKGlucHV0KTtcbiAgfVxuICBlbHNlIHtcbiAgICAvLyBFbnN1cmUgdGhlIFVSTCBpcyB2YWxpZCBhbmQgYWJzb2x1dGVcbiAgICBwYXJzZWQgPSB2YWxpZGF0ZVVybCh1cmwucGFyc2UoaW5wdXQpKTtcbiAgICBpZiAoIWlzU3RyaW5nKHBhcnNlZC5wcm90b2NvbCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVXJsRXJyb3IoeyBpbnB1dCB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhcnNlZDtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVVybChyZWxhdGl2ZSwgYmFzZSkge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICByZXR1cm4gdXNlTmF0aXZlVVJMID8gbmV3IFVSTChyZWxhdGl2ZSwgYmFzZSkgOiBwYXJzZVVybCh1cmwucmVzb2x2ZShiYXNlLCByZWxhdGl2ZSkpO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVVybChpbnB1dCkge1xuICBpZiAoL15cXFsvLnRlc3QoaW5wdXQuaG9zdG5hbWUpICYmICEvXlxcW1s6MC05YS1mXStcXF0kL2kudGVzdChpbnB1dC5ob3N0bmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZFVybEVycm9yKHsgaW5wdXQ6IGlucHV0LmhyZWYgfHwgaW5wdXQgfSk7XG4gIH1cbiAgaWYgKC9eXFxbLy50ZXN0KGlucHV0Lmhvc3QpICYmICEvXlxcW1s6MC05YS1mXStcXF0oOlxcZCspPyQvaS50ZXN0KGlucHV0Lmhvc3QpKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRVcmxFcnJvcih7IGlucHV0OiBpbnB1dC5ocmVmIHx8IGlucHV0IH0pO1xuICB9XG4gIHJldHVybiBpbnB1dDtcbn1cblxuZnVuY3Rpb24gc3ByZWFkVXJsT2JqZWN0KHVybE9iamVjdCwgdGFyZ2V0KSB7XG4gIHZhciBzcHJlYWQgPSB0YXJnZXQgfHwge307XG4gIGZvciAodmFyIGtleSBvZiBwcmVzZXJ2ZWRVcmxGaWVsZHMpIHtcbiAgICBzcHJlYWRba2V5XSA9IHVybE9iamVjdFtrZXldO1xuICB9XG5cbiAgLy8gRml4IElQdjYgaG9zdG5hbWVcbiAgaWYgKHNwcmVhZC5ob3N0bmFtZS5zdGFydHNXaXRoKFwiW1wiKSkge1xuICAgIHNwcmVhZC5ob3N0bmFtZSA9IHNwcmVhZC5ob3N0bmFtZS5zbGljZSgxLCAtMSk7XG4gIH1cbiAgLy8gRW5zdXJlIHBvcnQgaXMgYSBudW1iZXJcbiAgaWYgKHNwcmVhZC5wb3J0ICE9PSBcIlwiKSB7XG4gICAgc3ByZWFkLnBvcnQgPSBOdW1iZXIoc3ByZWFkLnBvcnQpO1xuICB9XG4gIC8vIENvbmNhdGVuYXRlIHBhdGhcbiAgc3ByZWFkLnBhdGggPSBzcHJlYWQuc2VhcmNoID8gc3ByZWFkLnBhdGhuYW1lICsgc3ByZWFkLnNlYXJjaCA6IHNwcmVhZC5wYXRobmFtZTtcblxuICByZXR1cm4gc3ByZWFkO1xufVxuXG5mdW5jdGlvbiByZW1vdmVNYXRjaGluZ0hlYWRlcnMocmVnZXgsIGhlYWRlcnMpIHtcbiAgdmFyIGxhc3RWYWx1ZTtcbiAgZm9yICh2YXIgaGVhZGVyIGluIGhlYWRlcnMpIHtcbiAgICBpZiAocmVnZXgudGVzdChoZWFkZXIpKSB7XG4gICAgICBsYXN0VmFsdWUgPSBoZWFkZXJzW2hlYWRlcl07XG4gICAgICBkZWxldGUgaGVhZGVyc1toZWFkZXJdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gKGxhc3RWYWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgbGFzdFZhbHVlID09PSBcInVuZGVmaW5lZFwiKSA/XG4gICAgdW5kZWZpbmVkIDogU3RyaW5nKGxhc3RWYWx1ZSkudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVFcnJvclR5cGUoY29kZSwgbWVzc2FnZSwgYmFzZUNsYXNzKSB7XG4gIC8vIENyZWF0ZSBjb25zdHJ1Y3RvclxuICBmdW5jdGlvbiBDdXN0b21FcnJvcihwcm9wZXJ0aWVzKSB7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2VcbiAgICBpZiAoaXNGdW5jdGlvbihFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSkpIHtcbiAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpO1xuICAgIH1cbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHByb3BlcnRpZXMgfHwge30pO1xuICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gICAgdGhpcy5tZXNzYWdlID0gdGhpcy5jYXVzZSA/IG1lc3NhZ2UgKyBcIjogXCIgKyB0aGlzLmNhdXNlLm1lc3NhZ2UgOiBtZXNzYWdlO1xuICB9XG5cbiAgLy8gQXR0YWNoIGNvbnN0cnVjdG9yIGFuZCBzZXQgZGVmYXVsdCBwcm9wZXJ0aWVzXG4gIEN1c3RvbUVycm9yLnByb3RvdHlwZSA9IG5ldyAoYmFzZUNsYXNzIHx8IEVycm9yKSgpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhDdXN0b21FcnJvci5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IEN1c3RvbUVycm9yLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgfSxcbiAgICBuYW1lOiB7XG4gICAgICB2YWx1ZTogXCJFcnJvciBbXCIgKyBjb2RlICsgXCJdXCIsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICB9LFxuICB9KTtcbiAgcmV0dXJuIEN1c3RvbUVycm9yO1xufVxuXG5mdW5jdGlvbiBkZXN0cm95UmVxdWVzdChyZXF1ZXN0LCBlcnJvcikge1xuICBmb3IgKHZhciBldmVudCBvZiBldmVudHMpIHtcbiAgICByZXF1ZXN0LnJlbW92ZUxpc3RlbmVyKGV2ZW50LCBldmVudEhhbmRsZXJzW2V2ZW50XSk7XG4gIH1cbiAgcmVxdWVzdC5vbihcImVycm9yXCIsIG5vb3ApO1xuICByZXF1ZXN0LmRlc3Ryb3koZXJyb3IpO1xufVxuXG5mdW5jdGlvbiBpc1N1YmRvbWFpbihzdWJkb21haW4sIGRvbWFpbikge1xuICBhc3NlcnQoaXNTdHJpbmcoc3ViZG9tYWluKSAmJiBpc1N0cmluZyhkb21haW4pKTtcbiAgdmFyIGRvdCA9IHN1YmRvbWFpbi5sZW5ndGggLSBkb21haW4ubGVuZ3RoIC0gMTtcbiAgcmV0dXJuIGRvdCA+IDAgJiYgc3ViZG9tYWluW2RvdF0gPT09IFwiLlwiICYmIHN1YmRvbWFpbi5lbmRzV2l0aChkb21haW4pO1xufVxuXG5mdW5jdGlvbiBpc1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nO1xufVxuXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIjtcbn1cblxuZnVuY3Rpb24gaXNCdWZmZXIodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiAoXCJsZW5ndGhcIiBpbiB2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIGlzVVJMKHZhbHVlKSB7XG4gIHJldHVybiBVUkwgJiYgdmFsdWUgaW5zdGFuY2VvZiBVUkw7XG59XG5cbi8vIEV4cG9ydHNcbm1vZHVsZS5leHBvcnRzID0gd3JhcCh7IGh0dHA6IGh0dHAsIGh0dHBzOiBodHRwcyB9KTtcbm1vZHVsZS5leHBvcnRzLndyYXAgPSB3cmFwO1xuIiwgImV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIxLjguNFwiOyIsICIndXNlIHN0cmljdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBhcnNlUHJvdG9jb2wodXJsKSB7XG4gIGNvbnN0IG1hdGNoID0gL14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWModXJsKTtcbiAgcmV0dXJuIG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSAnLi4vY29yZS9BeGlvc0Vycm9yLmpzJztcbmltcG9ydCBwYXJzZVByb3RvY29sIGZyb20gJy4vcGFyc2VQcm90b2NvbC5qcyc7XG5pbXBvcnQgcGxhdGZvcm0gZnJvbSAnLi4vcGxhdGZvcm0vaW5kZXguanMnO1xuXG5jb25zdCBEQVRBX1VSTF9QQVRURVJOID0gL14oPzooW147XSspOyk/KD86W147XSs7KT8oYmFzZTY0fCksKFtcXHNcXFNdKikkLztcblxuLyoqXG4gKiBQYXJzZSBkYXRhIHVyaSB0byBhIEJ1ZmZlciBvciBCbG9iXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVyaVxuICogQHBhcmFtIHs/Qm9vbGVhbn0gYXNCbG9iXG4gKiBAcGFyYW0gez9PYmplY3R9IG9wdGlvbnNcbiAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBvcHRpb25zLkJsb2JcbiAqXG4gKiBAcmV0dXJucyB7QnVmZmVyfEJsb2J9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZyb21EYXRhVVJJKHVyaSwgYXNCbG9iLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9CbG9iID0gb3B0aW9ucyAmJiBvcHRpb25zLkJsb2IgfHwgcGxhdGZvcm0uY2xhc3Nlcy5CbG9iO1xuICBjb25zdCBwcm90b2NvbCA9IHBhcnNlUHJvdG9jb2wodXJpKTtcblxuICBpZiAoYXNCbG9iID09PSB1bmRlZmluZWQgJiYgX0Jsb2IpIHtcbiAgICBhc0Jsb2IgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3RvY29sID09PSAnZGF0YScpIHtcbiAgICB1cmkgPSBwcm90b2NvbC5sZW5ndGggPyB1cmkuc2xpY2UocHJvdG9jb2wubGVuZ3RoICsgMSkgOiB1cmk7XG5cbiAgICBjb25zdCBtYXRjaCA9IERBVEFfVVJMX1BBVFRFUk4uZXhlYyh1cmkpO1xuXG4gICAgaWYgKCFtYXRjaCkge1xuICAgICAgdGhyb3cgbmV3IEF4aW9zRXJyb3IoJ0ludmFsaWQgVVJMJywgQXhpb3NFcnJvci5FUlJfSU5WQUxJRF9VUkwpO1xuICAgIH1cblxuICAgIGNvbnN0IG1pbWUgPSBtYXRjaFsxXTtcbiAgICBjb25zdCBpc0Jhc2U2NCA9IG1hdGNoWzJdO1xuICAgIGNvbnN0IGJvZHkgPSBtYXRjaFszXTtcbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuZnJvbShkZWNvZGVVUklDb21wb25lbnQoYm9keSksIGlzQmFzZTY0ID8gJ2Jhc2U2NCcgOiAndXRmOCcpO1xuXG4gICAgaWYgKGFzQmxvYikge1xuICAgICAgaWYgKCFfQmxvYikge1xuICAgICAgICB0aHJvdyBuZXcgQXhpb3NFcnJvcignQmxvYiBpcyBub3Qgc3VwcG9ydGVkJywgQXhpb3NFcnJvci5FUlJfTk9UX1NVUFBPUlQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IF9CbG9iKFtidWZmZXJdLCB7dHlwZTogbWltZX0pO1xuICAgIH1cblxuICAgIHJldHVybiBidWZmZXI7XG4gIH1cblxuICB0aHJvdyBuZXcgQXhpb3NFcnJvcignVW5zdXBwb3J0ZWQgcHJvdG9jb2wgJyArIHByb3RvY29sLCBBeGlvc0Vycm9yLkVSUl9OT1RfU1VQUE9SVCk7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgc3RyZWFtIGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuXG5jb25zdCBrSW50ZXJuYWxzID0gU3ltYm9sKCdpbnRlcm5hbHMnKTtcblxuY2xhc3MgQXhpb3NUcmFuc2Zvcm1TdHJlYW0gZXh0ZW5kcyBzdHJlYW0uVHJhbnNmb3Jte1xuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHV0aWxzLnRvRmxhdE9iamVjdChvcHRpb25zLCB7XG4gICAgICBtYXhSYXRlOiAwLFxuICAgICAgY2h1bmtTaXplOiA2NCAqIDEwMjQsXG4gICAgICBtaW5DaHVua1NpemU6IDEwMCxcbiAgICAgIHRpbWVXaW5kb3c6IDUwMCxcbiAgICAgIHRpY2tzUmF0ZTogMixcbiAgICAgIHNhbXBsZXNDb3VudDogMTVcbiAgICB9LCBudWxsLCAocHJvcCwgc291cmNlKSA9PiB7XG4gICAgICByZXR1cm4gIXV0aWxzLmlzVW5kZWZpbmVkKHNvdXJjZVtwcm9wXSk7XG4gICAgfSk7XG5cbiAgICBzdXBlcih7XG4gICAgICByZWFkYWJsZUhpZ2hXYXRlck1hcms6IG9wdGlvbnMuY2h1bmtTaXplXG4gICAgfSk7XG5cbiAgICBjb25zdCBpbnRlcm5hbHMgPSB0aGlzW2tJbnRlcm5hbHNdID0ge1xuICAgICAgdGltZVdpbmRvdzogb3B0aW9ucy50aW1lV2luZG93LFxuICAgICAgY2h1bmtTaXplOiBvcHRpb25zLmNodW5rU2l6ZSxcbiAgICAgIG1heFJhdGU6IG9wdGlvbnMubWF4UmF0ZSxcbiAgICAgIG1pbkNodW5rU2l6ZTogb3B0aW9ucy5taW5DaHVua1NpemUsXG4gICAgICBieXRlc1NlZW46IDAsXG4gICAgICBpc0NhcHR1cmVkOiBmYWxzZSxcbiAgICAgIG5vdGlmaWVkQnl0ZXNMb2FkZWQ6IDAsXG4gICAgICB0czogRGF0ZS5ub3coKSxcbiAgICAgIGJ5dGVzOiAwLFxuICAgICAgb25SZWFkQ2FsbGJhY2s6IG51bGxcbiAgICB9O1xuXG4gICAgdGhpcy5vbignbmV3TGlzdGVuZXInLCBldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQgPT09ICdwcm9ncmVzcycpIHtcbiAgICAgICAgaWYgKCFpbnRlcm5hbHMuaXNDYXB0dXJlZCkge1xuICAgICAgICAgIGludGVybmFscy5pc0NhcHR1cmVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgX3JlYWQoc2l6ZSkge1xuICAgIGNvbnN0IGludGVybmFscyA9IHRoaXNba0ludGVybmFsc107XG5cbiAgICBpZiAoaW50ZXJuYWxzLm9uUmVhZENhbGxiYWNrKSB7XG4gICAgICBpbnRlcm5hbHMub25SZWFkQ2FsbGJhY2soKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIuX3JlYWQoc2l6ZSk7XG4gIH1cblxuICBfdHJhbnNmb3JtKGNodW5rLCBlbmNvZGluZywgY2FsbGJhY2spIHtcbiAgICBjb25zdCBpbnRlcm5hbHMgPSB0aGlzW2tJbnRlcm5hbHNdO1xuICAgIGNvbnN0IG1heFJhdGUgPSBpbnRlcm5hbHMubWF4UmF0ZTtcblxuICAgIGNvbnN0IHJlYWRhYmxlSGlnaFdhdGVyTWFyayA9IHRoaXMucmVhZGFibGVIaWdoV2F0ZXJNYXJrO1xuXG4gICAgY29uc3QgdGltZVdpbmRvdyA9IGludGVybmFscy50aW1lV2luZG93O1xuXG4gICAgY29uc3QgZGl2aWRlciA9IDEwMDAgLyB0aW1lV2luZG93O1xuICAgIGNvbnN0IGJ5dGVzVGhyZXNob2xkID0gKG1heFJhdGUgLyBkaXZpZGVyKTtcbiAgICBjb25zdCBtaW5DaHVua1NpemUgPSBpbnRlcm5hbHMubWluQ2h1bmtTaXplICE9PSBmYWxzZSA/IE1hdGgubWF4KGludGVybmFscy5taW5DaHVua1NpemUsIGJ5dGVzVGhyZXNob2xkICogMC4wMSkgOiAwO1xuXG4gICAgY29uc3QgcHVzaENodW5rID0gKF9jaHVuaywgX2NhbGxiYWNrKSA9PiB7XG4gICAgICBjb25zdCBieXRlcyA9IEJ1ZmZlci5ieXRlTGVuZ3RoKF9jaHVuayk7XG4gICAgICBpbnRlcm5hbHMuYnl0ZXNTZWVuICs9IGJ5dGVzO1xuICAgICAgaW50ZXJuYWxzLmJ5dGVzICs9IGJ5dGVzO1xuXG4gICAgICBpbnRlcm5hbHMuaXNDYXB0dXJlZCAmJiB0aGlzLmVtaXQoJ3Byb2dyZXNzJywgaW50ZXJuYWxzLmJ5dGVzU2Vlbik7XG5cbiAgICAgIGlmICh0aGlzLnB1c2goX2NodW5rKSkge1xuICAgICAgICBwcm9jZXNzLm5leHRUaWNrKF9jYWxsYmFjayk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnRlcm5hbHMub25SZWFkQ2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICAgICAgaW50ZXJuYWxzLm9uUmVhZENhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgICBwcm9jZXNzLm5leHRUaWNrKF9jYWxsYmFjayk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNmb3JtQ2h1bmsgPSAoX2NodW5rLCBfY2FsbGJhY2spID0+IHtcbiAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IEJ1ZmZlci5ieXRlTGVuZ3RoKF9jaHVuayk7XG4gICAgICBsZXQgY2h1bmtSZW1haW5kZXIgPSBudWxsO1xuICAgICAgbGV0IG1heENodW5rU2l6ZSA9IHJlYWRhYmxlSGlnaFdhdGVyTWFyaztcbiAgICAgIGxldCBieXRlc0xlZnQ7XG4gICAgICBsZXQgcGFzc2VkID0gMDtcblxuICAgICAgaWYgKG1heFJhdGUpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgICAgICBpZiAoIWludGVybmFscy50cyB8fCAocGFzc2VkID0gKG5vdyAtIGludGVybmFscy50cykpID49IHRpbWVXaW5kb3cpIHtcbiAgICAgICAgICBpbnRlcm5hbHMudHMgPSBub3c7XG4gICAgICAgICAgYnl0ZXNMZWZ0ID0gYnl0ZXNUaHJlc2hvbGQgLSBpbnRlcm5hbHMuYnl0ZXM7XG4gICAgICAgICAgaW50ZXJuYWxzLmJ5dGVzID0gYnl0ZXNMZWZ0IDwgMCA/IC1ieXRlc0xlZnQgOiAwO1xuICAgICAgICAgIHBhc3NlZCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBieXRlc0xlZnQgPSBieXRlc1RocmVzaG9sZCAtIGludGVybmFscy5ieXRlcztcbiAgICAgIH1cblxuICAgICAgaWYgKG1heFJhdGUpIHtcbiAgICAgICAgaWYgKGJ5dGVzTGVmdCA8PSAwKSB7XG4gICAgICAgICAgLy8gbmV4dCB0aW1lIHdpbmRvd1xuICAgICAgICAgIHJldHVybiBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIF9jYWxsYmFjayhudWxsLCBfY2h1bmspO1xuICAgICAgICAgIH0sIHRpbWVXaW5kb3cgLSBwYXNzZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJ5dGVzTGVmdCA8IG1heENodW5rU2l6ZSkge1xuICAgICAgICAgIG1heENodW5rU2l6ZSA9IGJ5dGVzTGVmdDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAobWF4Q2h1bmtTaXplICYmIGNodW5rU2l6ZSA+IG1heENodW5rU2l6ZSAmJiAoY2h1bmtTaXplIC0gbWF4Q2h1bmtTaXplKSA+IG1pbkNodW5rU2l6ZSkge1xuICAgICAgICBjaHVua1JlbWFpbmRlciA9IF9jaHVuay5zdWJhcnJheShtYXhDaHVua1NpemUpO1xuICAgICAgICBfY2h1bmsgPSBfY2h1bmsuc3ViYXJyYXkoMCwgbWF4Q2h1bmtTaXplKTtcbiAgICAgIH1cblxuICAgICAgcHVzaENodW5rKF9jaHVuaywgY2h1bmtSZW1haW5kZXIgPyAoKSA9PiB7XG4gICAgICAgIHByb2Nlc3MubmV4dFRpY2soX2NhbGxiYWNrLCBudWxsLCBjaHVua1JlbWFpbmRlcik7XG4gICAgICB9IDogX2NhbGxiYWNrKTtcbiAgICB9O1xuXG4gICAgdHJhbnNmb3JtQ2h1bmsoY2h1bmssIGZ1bmN0aW9uIHRyYW5zZm9ybU5leHRDaHVuayhlcnIsIF9jaHVuaykge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKF9jaHVuaykge1xuICAgICAgICB0cmFuc2Zvcm1DaHVuayhfY2h1bmssIHRyYW5zZm9ybU5leHRDaHVuayk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjYWxsYmFjayhudWxsKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBeGlvc1RyYW5zZm9ybVN0cmVhbTtcbiIsICJjb25zdCB7YXN5bmNJdGVyYXRvcn0gPSBTeW1ib2w7XG5cbmNvbnN0IHJlYWRCbG9iID0gYXN5bmMgZnVuY3Rpb24qIChibG9iKSB7XG4gIGlmIChibG9iLnN0cmVhbSkge1xuICAgIHlpZWxkKiBibG9iLnN0cmVhbSgpXG4gIH0gZWxzZSBpZiAoYmxvYi5hcnJheUJ1ZmZlcikge1xuICAgIHlpZWxkIGF3YWl0IGJsb2IuYXJyYXlCdWZmZXIoKVxuICB9IGVsc2UgaWYgKGJsb2JbYXN5bmNJdGVyYXRvcl0pIHtcbiAgICB5aWVsZCogYmxvYlthc3luY0l0ZXJhdG9yXSgpO1xuICB9IGVsc2Uge1xuICAgIHlpZWxkIGJsb2I7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgcmVhZEJsb2I7XG4iLCAiaW1wb3J0IHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQge1JlYWRhYmxlfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0IHV0aWxzIGZyb20gXCIuLi91dGlscy5qc1wiO1xuaW1wb3J0IHJlYWRCbG9iIGZyb20gXCIuL3JlYWRCbG9iLmpzXCI7XG5pbXBvcnQgcGxhdGZvcm0gZnJvbSBcIi4uL3BsYXRmb3JtL2luZGV4LmpzXCI7XG5cbmNvbnN0IEJPVU5EQVJZX0FMUEhBQkVUID0gcGxhdGZvcm0uQUxQSEFCRVQuQUxQSEFfRElHSVQgKyAnLV8nO1xuXG5jb25zdCB0ZXh0RW5jb2RlciA9IHR5cGVvZiBUZXh0RW5jb2RlciA9PT0gJ2Z1bmN0aW9uJyA/IG5ldyBUZXh0RW5jb2RlcigpIDogbmV3IHV0aWwuVGV4dEVuY29kZXIoKTtcblxuY29uc3QgQ1JMRiA9ICdcXHJcXG4nO1xuY29uc3QgQ1JMRl9CWVRFUyA9IHRleHRFbmNvZGVyLmVuY29kZShDUkxGKTtcbmNvbnN0IENSTEZfQllURVNfQ09VTlQgPSAyO1xuXG5jbGFzcyBGb3JtRGF0YVBhcnQge1xuICBjb25zdHJ1Y3RvcihuYW1lLCB2YWx1ZSkge1xuICAgIGNvbnN0IHtlc2NhcGVOYW1lfSA9IHRoaXMuY29uc3RydWN0b3I7XG4gICAgY29uc3QgaXNTdHJpbmdWYWx1ZSA9IHV0aWxzLmlzU3RyaW5nKHZhbHVlKTtcblxuICAgIGxldCBoZWFkZXJzID0gYENvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT1cIiR7ZXNjYXBlTmFtZShuYW1lKX1cIiR7XG4gICAgICAhaXNTdHJpbmdWYWx1ZSAmJiB2YWx1ZS5uYW1lID8gYDsgZmlsZW5hbWU9XCIke2VzY2FwZU5hbWUodmFsdWUubmFtZSl9XCJgIDogJydcbiAgICB9JHtDUkxGfWA7XG5cbiAgICBpZiAoaXNTdHJpbmdWYWx1ZSkge1xuICAgICAgdmFsdWUgPSB0ZXh0RW5jb2Rlci5lbmNvZGUoU3RyaW5nKHZhbHVlKS5yZXBsYWNlKC9cXHI/XFxufFxcclxcbj8vZywgQ1JMRikpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoZWFkZXJzICs9IGBDb250ZW50LVR5cGU6ICR7dmFsdWUudHlwZSB8fCBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwifSR7Q1JMRn1gXG4gICAgfVxuXG4gICAgdGhpcy5oZWFkZXJzID0gdGV4dEVuY29kZXIuZW5jb2RlKGhlYWRlcnMgKyBDUkxGKTtcblxuICAgIHRoaXMuY29udGVudExlbmd0aCA9IGlzU3RyaW5nVmFsdWUgPyB2YWx1ZS5ieXRlTGVuZ3RoIDogdmFsdWUuc2l6ZTtcblxuICAgIHRoaXMuc2l6ZSA9IHRoaXMuaGVhZGVycy5ieXRlTGVuZ3RoICsgdGhpcy5jb250ZW50TGVuZ3RoICsgQ1JMRl9CWVRFU19DT1VOVDtcblxuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgYXN5bmMgKmVuY29kZSgpe1xuICAgIHlpZWxkIHRoaXMuaGVhZGVycztcblxuICAgIGNvbnN0IHt2YWx1ZX0gPSB0aGlzO1xuXG4gICAgaWYodXRpbHMuaXNUeXBlZEFycmF5KHZhbHVlKSkge1xuICAgICAgeWllbGQgdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHlpZWxkKiByZWFkQmxvYih2YWx1ZSk7XG4gICAgfVxuXG4gICAgeWllbGQgQ1JMRl9CWVRFUztcbiAgfVxuXG4gIHN0YXRpYyBlc2NhcGVOYW1lKG5hbWUpIHtcbiAgICAgIHJldHVybiBTdHJpbmcobmFtZSkucmVwbGFjZSgvW1xcclxcblwiXS9nLCAobWF0Y2gpID0+ICh7XG4gICAgICAgICdcXHInIDogJyUwRCcsXG4gICAgICAgICdcXG4nIDogJyUwQScsXG4gICAgICAgICdcIicgOiAnJTIyJyxcbiAgICAgIH1bbWF0Y2hdKSk7XG4gIH1cbn1cblxuY29uc3QgZm9ybURhdGFUb1N0cmVhbSA9IChmb3JtLCBoZWFkZXJzSGFuZGxlciwgb3B0aW9ucykgPT4ge1xuICBjb25zdCB7XG4gICAgdGFnID0gJ2Zvcm0tZGF0YS1ib3VuZGFyeScsXG4gICAgc2l6ZSA9IDI1LFxuICAgIGJvdW5kYXJ5ID0gdGFnICsgJy0nICsgcGxhdGZvcm0uZ2VuZXJhdGVTdHJpbmcoc2l6ZSwgQk9VTkRBUllfQUxQSEFCRVQpXG4gIH0gPSBvcHRpb25zIHx8IHt9O1xuXG4gIGlmKCF1dGlscy5pc0Zvcm1EYXRhKGZvcm0pKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKCdGb3JtRGF0YSBpbnN0YW5jZSByZXF1aXJlZCcpO1xuICB9XG5cbiAgaWYgKGJvdW5kYXJ5Lmxlbmd0aCA8IDEgfHwgYm91bmRhcnkubGVuZ3RoID4gNzApIHtcbiAgICB0aHJvdyBFcnJvcignYm91bmRhcnkgbXVzdCBiZSAxMC03MCBjaGFyYWN0ZXJzIGxvbmcnKVxuICB9XG5cbiAgY29uc3QgYm91bmRhcnlCeXRlcyA9IHRleHRFbmNvZGVyLmVuY29kZSgnLS0nICsgYm91bmRhcnkgKyBDUkxGKTtcbiAgY29uc3QgZm9vdGVyQnl0ZXMgPSB0ZXh0RW5jb2Rlci5lbmNvZGUoJy0tJyArIGJvdW5kYXJ5ICsgJy0tJyArIENSTEYgKyBDUkxGKTtcbiAgbGV0IGNvbnRlbnRMZW5ndGggPSBmb290ZXJCeXRlcy5ieXRlTGVuZ3RoO1xuXG4gIGNvbnN0IHBhcnRzID0gQXJyYXkuZnJvbShmb3JtLmVudHJpZXMoKSkubWFwKChbbmFtZSwgdmFsdWVdKSA9PiB7XG4gICAgY29uc3QgcGFydCA9IG5ldyBGb3JtRGF0YVBhcnQobmFtZSwgdmFsdWUpO1xuICAgIGNvbnRlbnRMZW5ndGggKz0gcGFydC5zaXplO1xuICAgIHJldHVybiBwYXJ0O1xuICB9KTtcblxuICBjb250ZW50TGVuZ3RoICs9IGJvdW5kYXJ5Qnl0ZXMuYnl0ZUxlbmd0aCAqIHBhcnRzLmxlbmd0aDtcblxuICBjb250ZW50TGVuZ3RoID0gdXRpbHMudG9GaW5pdGVOdW1iZXIoY29udGVudExlbmd0aCk7XG5cbiAgY29uc3QgY29tcHV0ZWRIZWFkZXJzID0ge1xuICAgICdDb250ZW50LVR5cGUnOiBgbXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9JHtib3VuZGFyeX1gXG4gIH1cblxuICBpZiAoTnVtYmVyLmlzRmluaXRlKGNvbnRlbnRMZW5ndGgpKSB7XG4gICAgY29tcHV0ZWRIZWFkZXJzWydDb250ZW50LUxlbmd0aCddID0gY29udGVudExlbmd0aDtcbiAgfVxuXG4gIGhlYWRlcnNIYW5kbGVyICYmIGhlYWRlcnNIYW5kbGVyKGNvbXB1dGVkSGVhZGVycyk7XG5cbiAgcmV0dXJuIFJlYWRhYmxlLmZyb20oKGFzeW5jIGZ1bmN0aW9uICooKSB7XG4gICAgZm9yKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgIHlpZWxkIGJvdW5kYXJ5Qnl0ZXM7XG4gICAgICB5aWVsZCogcGFydC5lbmNvZGUoKTtcbiAgICB9XG5cbiAgICB5aWVsZCBmb290ZXJCeXRlcztcbiAgfSkoKSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmb3JtRGF0YVRvU3RyZWFtO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc3RyZWFtIGZyb20gXCJzdHJlYW1cIjtcblxuY2xhc3MgWmxpYkhlYWRlclRyYW5zZm9ybVN0cmVhbSBleHRlbmRzIHN0cmVhbS5UcmFuc2Zvcm0ge1xuICBfX3RyYW5zZm9ybShjaHVuaywgZW5jb2RpbmcsIGNhbGxiYWNrKSB7XG4gICAgdGhpcy5wdXNoKGNodW5rKTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgX3RyYW5zZm9ybShjaHVuaywgZW5jb2RpbmcsIGNhbGxiYWNrKSB7XG4gICAgaWYgKGNodW5rLmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhpcy5fdHJhbnNmb3JtID0gdGhpcy5fX3RyYW5zZm9ybTtcblxuICAgICAgLy8gQWRkIERlZmF1bHQgQ29tcHJlc3Npb24gaGVhZGVycyBpZiBubyB6bGliIGhlYWRlcnMgYXJlIHByZXNlbnRcbiAgICAgIGlmIChjaHVua1swXSAhPT0gMTIwKSB7IC8vIEhleDogNzhcbiAgICAgICAgY29uc3QgaGVhZGVyID0gQnVmZmVyLmFsbG9jKDIpO1xuICAgICAgICBoZWFkZXJbMF0gPSAxMjA7IC8vIEhleDogNzhcbiAgICAgICAgaGVhZGVyWzFdID0gMTU2OyAvLyBIZXg6IDlDIFxuICAgICAgICB0aGlzLnB1c2goaGVhZGVyLCBlbmNvZGluZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fX3RyYW5zZm9ybShjaHVuaywgZW5jb2RpbmcsIGNhbGxiYWNrKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBabGliSGVhZGVyVHJhbnNmb3JtU3RyZWFtO1xuIiwgImltcG9ydCB1dGlscyBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuY29uc3QgY2FsbGJhY2tpZnkgPSAoZm4sIHJlZHVjZXIpID0+IHtcbiAgcmV0dXJuIHV0aWxzLmlzQXN5bmNGbihmbikgPyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgIGNvbnN0IGNiID0gYXJncy5wb3AoKTtcbiAgICBmbi5hcHBseSh0aGlzLCBhcmdzKS50aGVuKCh2YWx1ZSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmVkdWNlciA/IGNiKG51bGwsIC4uLnJlZHVjZXIodmFsdWUpKSA6IGNiKG51bGwsIHZhbHVlKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjYihlcnIpO1xuICAgICAgfVxuICAgIH0sIGNiKTtcbiAgfSA6IGZuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjYWxsYmFja2lmeTtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogQ2FsY3VsYXRlIGRhdGEgbWF4UmF0ZVxuICogQHBhcmFtIHtOdW1iZXJ9IFtzYW1wbGVzQ291bnQ9IDEwXVxuICogQHBhcmFtIHtOdW1iZXJ9IFttaW49IDEwMDBdXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XG4gKi9cbmZ1bmN0aW9uIHNwZWVkb21ldGVyKHNhbXBsZXNDb3VudCwgbWluKSB7XG4gIHNhbXBsZXNDb3VudCA9IHNhbXBsZXNDb3VudCB8fCAxMDtcbiAgY29uc3QgYnl0ZXMgPSBuZXcgQXJyYXkoc2FtcGxlc0NvdW50KTtcbiAgY29uc3QgdGltZXN0YW1wcyA9IG5ldyBBcnJheShzYW1wbGVzQ291bnQpO1xuICBsZXQgaGVhZCA9IDA7XG4gIGxldCB0YWlsID0gMDtcbiAgbGV0IGZpcnN0U2FtcGxlVFM7XG5cbiAgbWluID0gbWluICE9PSB1bmRlZmluZWQgPyBtaW4gOiAxMDAwO1xuXG4gIHJldHVybiBmdW5jdGlvbiBwdXNoKGNodW5rTGVuZ3RoKSB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgIGNvbnN0IHN0YXJ0ZWRBdCA9IHRpbWVzdGFtcHNbdGFpbF07XG5cbiAgICBpZiAoIWZpcnN0U2FtcGxlVFMpIHtcbiAgICAgIGZpcnN0U2FtcGxlVFMgPSBub3c7XG4gICAgfVxuXG4gICAgYnl0ZXNbaGVhZF0gPSBjaHVua0xlbmd0aDtcbiAgICB0aW1lc3RhbXBzW2hlYWRdID0gbm93O1xuXG4gICAgbGV0IGkgPSB0YWlsO1xuICAgIGxldCBieXRlc0NvdW50ID0gMDtcblxuICAgIHdoaWxlIChpICE9PSBoZWFkKSB7XG4gICAgICBieXRlc0NvdW50ICs9IGJ5dGVzW2krK107XG4gICAgICBpID0gaSAlIHNhbXBsZXNDb3VudDtcbiAgICB9XG5cbiAgICBoZWFkID0gKGhlYWQgKyAxKSAlIHNhbXBsZXNDb3VudDtcblxuICAgIGlmIChoZWFkID09PSB0YWlsKSB7XG4gICAgICB0YWlsID0gKHRhaWwgKyAxKSAlIHNhbXBsZXNDb3VudDtcbiAgICB9XG5cbiAgICBpZiAobm93IC0gZmlyc3RTYW1wbGVUUyA8IG1pbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhc3NlZCA9IHN0YXJ0ZWRBdCAmJiBub3cgLSBzdGFydGVkQXQ7XG5cbiAgICByZXR1cm4gcGFzc2VkID8gTWF0aC5yb3VuZChieXRlc0NvdW50ICogMTAwMCAvIHBhc3NlZCkgOiB1bmRlZmluZWQ7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHNwZWVkb21ldGVyO1xuIiwgIi8qKlxuICogVGhyb3R0bGUgZGVjb3JhdG9yXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHBhcmFtIHtOdW1iZXJ9IGZyZXFcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufVxuICovXG5mdW5jdGlvbiB0aHJvdHRsZShmbiwgZnJlcSkge1xuICBsZXQgdGltZXN0YW1wID0gMDtcbiAgbGV0IHRocmVzaG9sZCA9IDEwMDAgLyBmcmVxO1xuICBsZXQgbGFzdEFyZ3M7XG4gIGxldCB0aW1lcjtcblxuICBjb25zdCBpbnZva2UgPSAoYXJncywgbm93ID0gRGF0ZS5ub3coKSkgPT4ge1xuICAgIHRpbWVzdGFtcCA9IG5vdztcbiAgICBsYXN0QXJncyA9IG51bGw7XG4gICAgaWYgKHRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgdGltZXIgPSBudWxsO1xuICAgIH1cbiAgICBmbi5hcHBseShudWxsLCBhcmdzKTtcbiAgfVxuXG4gIGNvbnN0IHRocm90dGxlZCA9ICguLi5hcmdzKSA9PiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBwYXNzZWQgPSBub3cgLSB0aW1lc3RhbXA7XG4gICAgaWYgKCBwYXNzZWQgPj0gdGhyZXNob2xkKSB7XG4gICAgICBpbnZva2UoYXJncywgbm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGFzdEFyZ3MgPSBhcmdzO1xuICAgICAgaWYgKCF0aW1lcikge1xuICAgICAgICB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRpbWVyID0gbnVsbDtcbiAgICAgICAgICBpbnZva2UobGFzdEFyZ3MpXG4gICAgICAgIH0sIHRocmVzaG9sZCAtIHBhc3NlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZmx1c2ggPSAoKSA9PiBsYXN0QXJncyAmJiBpbnZva2UobGFzdEFyZ3MpO1xuXG4gIHJldHVybiBbdGhyb3R0bGVkLCBmbHVzaF07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRocm90dGxlO1xuIiwgImltcG9ydCBzcGVlZG9tZXRlciBmcm9tIFwiLi9zcGVlZG9tZXRlci5qc1wiO1xuaW1wb3J0IHRocm90dGxlIGZyb20gXCIuL3Rocm90dGxlLmpzXCI7XG5pbXBvcnQgdXRpbHMgZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCBjb25zdCBwcm9ncmVzc0V2ZW50UmVkdWNlciA9IChsaXN0ZW5lciwgaXNEb3dubG9hZFN0cmVhbSwgZnJlcSA9IDMpID0+IHtcbiAgbGV0IGJ5dGVzTm90aWZpZWQgPSAwO1xuICBjb25zdCBfc3BlZWRvbWV0ZXIgPSBzcGVlZG9tZXRlcig1MCwgMjUwKTtcblxuICByZXR1cm4gdGhyb3R0bGUoZSA9PiB7XG4gICAgY29uc3QgbG9hZGVkID0gZS5sb2FkZWQ7XG4gICAgY29uc3QgdG90YWwgPSBlLmxlbmd0aENvbXB1dGFibGUgPyBlLnRvdGFsIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHByb2dyZXNzQnl0ZXMgPSBsb2FkZWQgLSBieXRlc05vdGlmaWVkO1xuICAgIGNvbnN0IHJhdGUgPSBfc3BlZWRvbWV0ZXIocHJvZ3Jlc3NCeXRlcyk7XG4gICAgY29uc3QgaW5SYW5nZSA9IGxvYWRlZCA8PSB0b3RhbDtcblxuICAgIGJ5dGVzTm90aWZpZWQgPSBsb2FkZWQ7XG5cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgbG9hZGVkLFxuICAgICAgdG90YWwsXG4gICAgICBwcm9ncmVzczogdG90YWwgPyAobG9hZGVkIC8gdG90YWwpIDogdW5kZWZpbmVkLFxuICAgICAgYnl0ZXM6IHByb2dyZXNzQnl0ZXMsXG4gICAgICByYXRlOiByYXRlID8gcmF0ZSA6IHVuZGVmaW5lZCxcbiAgICAgIGVzdGltYXRlZDogcmF0ZSAmJiB0b3RhbCAmJiBpblJhbmdlID8gKHRvdGFsIC0gbG9hZGVkKSAvIHJhdGUgOiB1bmRlZmluZWQsXG4gICAgICBldmVudDogZSxcbiAgICAgIGxlbmd0aENvbXB1dGFibGU6IHRvdGFsICE9IG51bGwsXG4gICAgICBbaXNEb3dubG9hZFN0cmVhbSA/ICdkb3dubG9hZCcgOiAndXBsb2FkJ106IHRydWVcbiAgICB9O1xuXG4gICAgbGlzdGVuZXIoZGF0YSk7XG4gIH0sIGZyZXEpO1xufVxuXG5leHBvcnQgY29uc3QgcHJvZ3Jlc3NFdmVudERlY29yYXRvciA9ICh0b3RhbCwgdGhyb3R0bGVkKSA9PiB7XG4gIGNvbnN0IGxlbmd0aENvbXB1dGFibGUgPSB0b3RhbCAhPSBudWxsO1xuXG4gIHJldHVybiBbKGxvYWRlZCkgPT4gdGhyb3R0bGVkWzBdKHtcbiAgICBsZW5ndGhDb21wdXRhYmxlLFxuICAgIHRvdGFsLFxuICAgIGxvYWRlZFxuICB9KSwgdGhyb3R0bGVkWzFdXTtcbn1cblxuZXhwb3J0IGNvbnN0IGFzeW5jRGVjb3JhdG9yID0gKGZuKSA9PiAoLi4uYXJncykgPT4gdXRpbHMuYXNhcCgoKSA9PiBmbiguLi5hcmdzKSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi8uLi91dGlscy5qcyc7XG5pbXBvcnQgc2V0dGxlIGZyb20gJy4vLi4vY29yZS9zZXR0bGUuanMnO1xuaW1wb3J0IGJ1aWxkRnVsbFBhdGggZnJvbSAnLi4vY29yZS9idWlsZEZ1bGxQYXRoLmpzJztcbmltcG9ydCBidWlsZFVSTCBmcm9tICcuLy4uL2hlbHBlcnMvYnVpbGRVUkwuanMnO1xuaW1wb3J0IHByb3h5RnJvbUVudiBmcm9tICdwcm94eS1mcm9tLWVudic7XG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCBmb2xsb3dSZWRpcmVjdHMgZnJvbSAnZm9sbG93LXJlZGlyZWN0cyc7XG5pbXBvcnQgemxpYiBmcm9tICd6bGliJztcbmltcG9ydCB7VkVSU0lPTn0gZnJvbSAnLi4vZW52L2RhdGEuanMnO1xuaW1wb3J0IHRyYW5zaXRpb25hbERlZmF1bHRzIGZyb20gJy4uL2RlZmF1bHRzL3RyYW5zaXRpb25hbC5qcyc7XG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tICcuLi9jb3JlL0F4aW9zRXJyb3IuanMnO1xuaW1wb3J0IENhbmNlbGVkRXJyb3IgZnJvbSAnLi4vY2FuY2VsL0NhbmNlbGVkRXJyb3IuanMnO1xuaW1wb3J0IHBsYXRmb3JtIGZyb20gJy4uL3BsYXRmb3JtL2luZGV4LmpzJztcbmltcG9ydCBmcm9tRGF0YVVSSSBmcm9tICcuLi9oZWxwZXJzL2Zyb21EYXRhVVJJLmpzJztcbmltcG9ydCBzdHJlYW0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCBBeGlvc0hlYWRlcnMgZnJvbSAnLi4vY29yZS9BeGlvc0hlYWRlcnMuanMnO1xuaW1wb3J0IEF4aW9zVHJhbnNmb3JtU3RyZWFtIGZyb20gJy4uL2hlbHBlcnMvQXhpb3NUcmFuc2Zvcm1TdHJlYW0uanMnO1xuaW1wb3J0IHtFdmVudEVtaXR0ZXJ9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgZm9ybURhdGFUb1N0cmVhbSBmcm9tIFwiLi4vaGVscGVycy9mb3JtRGF0YVRvU3RyZWFtLmpzXCI7XG5pbXBvcnQgcmVhZEJsb2IgZnJvbSBcIi4uL2hlbHBlcnMvcmVhZEJsb2IuanNcIjtcbmltcG9ydCBabGliSGVhZGVyVHJhbnNmb3JtU3RyZWFtIGZyb20gJy4uL2hlbHBlcnMvWmxpYkhlYWRlclRyYW5zZm9ybVN0cmVhbS5qcyc7XG5pbXBvcnQgY2FsbGJhY2tpZnkgZnJvbSBcIi4uL2hlbHBlcnMvY2FsbGJhY2tpZnkuanNcIjtcbmltcG9ydCB7cHJvZ3Jlc3NFdmVudFJlZHVjZXIsIHByb2dyZXNzRXZlbnREZWNvcmF0b3IsIGFzeW5jRGVjb3JhdG9yfSBmcm9tIFwiLi4vaGVscGVycy9wcm9ncmVzc0V2ZW50UmVkdWNlci5qc1wiO1xuXG5jb25zdCB6bGliT3B0aW9ucyA9IHtcbiAgZmx1c2g6IHpsaWIuY29uc3RhbnRzLlpfU1lOQ19GTFVTSCxcbiAgZmluaXNoRmx1c2g6IHpsaWIuY29uc3RhbnRzLlpfU1lOQ19GTFVTSFxufTtcblxuY29uc3QgYnJvdGxpT3B0aW9ucyA9IHtcbiAgZmx1c2g6IHpsaWIuY29uc3RhbnRzLkJST1RMSV9PUEVSQVRJT05fRkxVU0gsXG4gIGZpbmlzaEZsdXNoOiB6bGliLmNvbnN0YW50cy5CUk9UTElfT1BFUkFUSU9OX0ZMVVNIXG59XG5cbmNvbnN0IGlzQnJvdGxpU3VwcG9ydGVkID0gdXRpbHMuaXNGdW5jdGlvbih6bGliLmNyZWF0ZUJyb3RsaURlY29tcHJlc3MpO1xuXG5jb25zdCB7aHR0cDogaHR0cEZvbGxvdywgaHR0cHM6IGh0dHBzRm9sbG93fSA9IGZvbGxvd1JlZGlyZWN0cztcblxuY29uc3QgaXNIdHRwcyA9IC9odHRwczo/LztcblxuY29uc3Qgc3VwcG9ydGVkUHJvdG9jb2xzID0gcGxhdGZvcm0ucHJvdG9jb2xzLm1hcChwcm90b2NvbCA9PiB7XG4gIHJldHVybiBwcm90b2NvbCArICc6Jztcbn0pO1xuXG5jb25zdCBmbHVzaE9uRmluaXNoID0gKHN0cmVhbSwgW3Rocm90dGxlZCwgZmx1c2hdKSA9PiB7XG4gIHN0cmVhbVxuICAgIC5vbignZW5kJywgZmx1c2gpXG4gICAgLm9uKCdlcnJvcicsIGZsdXNoKTtcblxuICByZXR1cm4gdGhyb3R0bGVkO1xufVxuXG4vKipcbiAqIElmIHRoZSBwcm94eSBvciBjb25maWcgYmVmb3JlUmVkaXJlY3RzIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCwgY2FsbCB0aGVtIHdpdGggdGhlIG9wdGlvbnNcbiAqIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdDxzdHJpbmcsIGFueT59IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBvYmplY3QgdGhhdCB3YXMgcGFzc2VkIHRvIHRoZSByZXF1ZXN0LlxuICpcbiAqIEByZXR1cm5zIHtPYmplY3Q8c3RyaW5nLCBhbnk+fVxuICovXG5mdW5jdGlvbiBkaXNwYXRjaEJlZm9yZVJlZGlyZWN0KG9wdGlvbnMsIHJlc3BvbnNlRGV0YWlscykge1xuICBpZiAob3B0aW9ucy5iZWZvcmVSZWRpcmVjdHMucHJveHkpIHtcbiAgICBvcHRpb25zLmJlZm9yZVJlZGlyZWN0cy5wcm94eShvcHRpb25zKTtcbiAgfVxuICBpZiAob3B0aW9ucy5iZWZvcmVSZWRpcmVjdHMuY29uZmlnKSB7XG4gICAgb3B0aW9ucy5iZWZvcmVSZWRpcmVjdHMuY29uZmlnKG9wdGlvbnMsIHJlc3BvbnNlRGV0YWlscyk7XG4gIH1cbn1cblxuLyoqXG4gKiBJZiB0aGUgcHJveHkgb3IgY29uZmlnIGFmdGVyUmVkaXJlY3RzIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCwgY2FsbCB0aGVtIHdpdGggdGhlIG9wdGlvbnNcbiAqXG4gKiBAcGFyYW0ge2h0dHAuQ2xpZW50UmVxdWVzdEFyZ3N9IG9wdGlvbnNcbiAqIEBwYXJhbSB7QXhpb3NQcm94eUNvbmZpZ30gY29uZmlnUHJveHkgY29uZmlndXJhdGlvbiBmcm9tIEF4aW9zIG9wdGlvbnMgb2JqZWN0XG4gKiBAcGFyYW0ge3N0cmluZ30gbG9jYXRpb25cbiAqXG4gKiBAcmV0dXJucyB7aHR0cC5DbGllbnRSZXF1ZXN0QXJnc31cbiAqL1xuZnVuY3Rpb24gc2V0UHJveHkob3B0aW9ucywgY29uZmlnUHJveHksIGxvY2F0aW9uKSB7XG4gIGxldCBwcm94eSA9IGNvbmZpZ1Byb3h5O1xuICBpZiAoIXByb3h5ICYmIHByb3h5ICE9PSBmYWxzZSkge1xuICAgIGNvbnN0IHByb3h5VXJsID0gcHJveHlGcm9tRW52LmdldFByb3h5Rm9yVXJsKGxvY2F0aW9uKTtcbiAgICBpZiAocHJveHlVcmwpIHtcbiAgICAgIHByb3h5ID0gbmV3IFVSTChwcm94eVVybCk7XG4gICAgfVxuICB9XG4gIGlmIChwcm94eSkge1xuICAgIC8vIEJhc2ljIHByb3h5IGF1dGhvcml6YXRpb25cbiAgICBpZiAocHJveHkudXNlcm5hbWUpIHtcbiAgICAgIHByb3h5LmF1dGggPSAocHJveHkudXNlcm5hbWUgfHwgJycpICsgJzonICsgKHByb3h5LnBhc3N3b3JkIHx8ICcnKTtcbiAgICB9XG5cbiAgICBpZiAocHJveHkuYXV0aCkge1xuICAgICAgLy8gU3VwcG9ydCBwcm94eSBhdXRoIG9iamVjdCBmb3JtXG4gICAgICBpZiAocHJveHkuYXV0aC51c2VybmFtZSB8fCBwcm94eS5hdXRoLnBhc3N3b3JkKSB7XG4gICAgICAgIHByb3h5LmF1dGggPSAocHJveHkuYXV0aC51c2VybmFtZSB8fCAnJykgKyAnOicgKyAocHJveHkuYXV0aC5wYXNzd29yZCB8fCAnJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBiYXNlNjQgPSBCdWZmZXJcbiAgICAgICAgLmZyb20ocHJveHkuYXV0aCwgJ3V0ZjgnKVxuICAgICAgICAudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgb3B0aW9ucy5oZWFkZXJzWydQcm94eS1BdXRob3JpemF0aW9uJ10gPSAnQmFzaWMgJyArIGJhc2U2NDtcbiAgICB9XG5cbiAgICBvcHRpb25zLmhlYWRlcnMuaG9zdCA9IG9wdGlvbnMuaG9zdG5hbWUgKyAob3B0aW9ucy5wb3J0ID8gJzonICsgb3B0aW9ucy5wb3J0IDogJycpO1xuICAgIGNvbnN0IHByb3h5SG9zdCA9IHByb3h5Lmhvc3RuYW1lIHx8IHByb3h5Lmhvc3Q7XG4gICAgb3B0aW9ucy5ob3N0bmFtZSA9IHByb3h5SG9zdDtcbiAgICAvLyBSZXBsYWNlICdob3N0JyBzaW5jZSBvcHRpb25zIGlzIG5vdCBhIFVSTCBvYmplY3RcbiAgICBvcHRpb25zLmhvc3QgPSBwcm94eUhvc3Q7XG4gICAgb3B0aW9ucy5wb3J0ID0gcHJveHkucG9ydDtcbiAgICBvcHRpb25zLnBhdGggPSBsb2NhdGlvbjtcbiAgICBpZiAocHJveHkucHJvdG9jb2wpIHtcbiAgICAgIG9wdGlvbnMucHJvdG9jb2wgPSBwcm94eS5wcm90b2NvbC5pbmNsdWRlcygnOicpID8gcHJveHkucHJvdG9jb2wgOiBgJHtwcm94eS5wcm90b2NvbH06YDtcbiAgICB9XG4gIH1cblxuICBvcHRpb25zLmJlZm9yZVJlZGlyZWN0cy5wcm94eSA9IGZ1bmN0aW9uIGJlZm9yZVJlZGlyZWN0KHJlZGlyZWN0T3B0aW9ucykge1xuICAgIC8vIENvbmZpZ3VyZSBwcm94eSBmb3IgcmVkaXJlY3RlZCByZXF1ZXN0LCBwYXNzaW5nIHRoZSBvcmlnaW5hbCBjb25maWcgcHJveHkgdG8gYXBwbHlcbiAgICAvLyB0aGUgZXhhY3Qgc2FtZSBsb2dpYyBhcyBpZiB0aGUgcmVkaXJlY3RlZCByZXF1ZXN0IHdhcyBwZXJmb3JtZWQgYnkgYXhpb3MgZGlyZWN0bHkuXG4gICAgc2V0UHJveHkocmVkaXJlY3RPcHRpb25zLCBjb25maWdQcm94eSwgcmVkaXJlY3RPcHRpb25zLmhyZWYpO1xuICB9O1xufVxuXG5jb25zdCBpc0h0dHBBZGFwdGVyU3VwcG9ydGVkID0gdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHV0aWxzLmtpbmRPZihwcm9jZXNzKSA9PT0gJ3Byb2Nlc3MnO1xuXG4vLyB0ZW1wb3JhcnkgaG90Zml4XG5cbmNvbnN0IHdyYXBBc3luYyA9IChhc3luY0V4ZWN1dG9yKSA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgbGV0IG9uRG9uZTtcbiAgICBsZXQgaXNEb25lO1xuXG4gICAgY29uc3QgZG9uZSA9ICh2YWx1ZSwgaXNSZWplY3RlZCkgPT4ge1xuICAgICAgaWYgKGlzRG9uZSkgcmV0dXJuO1xuICAgICAgaXNEb25lID0gdHJ1ZTtcbiAgICAgIG9uRG9uZSAmJiBvbkRvbmUodmFsdWUsIGlzUmVqZWN0ZWQpO1xuICAgIH1cblxuICAgIGNvbnN0IF9yZXNvbHZlID0gKHZhbHVlKSA9PiB7XG4gICAgICBkb25lKHZhbHVlKTtcbiAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgIH07XG5cbiAgICBjb25zdCBfcmVqZWN0ID0gKHJlYXNvbikgPT4ge1xuICAgICAgZG9uZShyZWFzb24sIHRydWUpO1xuICAgICAgcmVqZWN0KHJlYXNvbik7XG4gICAgfVxuXG4gICAgYXN5bmNFeGVjdXRvcihfcmVzb2x2ZSwgX3JlamVjdCwgKG9uRG9uZUhhbmRsZXIpID0+IChvbkRvbmUgPSBvbkRvbmVIYW5kbGVyKSkuY2F0Y2goX3JlamVjdCk7XG4gIH0pXG59O1xuXG5jb25zdCByZXNvbHZlRmFtaWx5ID0gKHthZGRyZXNzLCBmYW1pbHl9KSA9PiB7XG4gIGlmICghdXRpbHMuaXNTdHJpbmcoYWRkcmVzcykpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ2FkZHJlc3MgbXVzdCBiZSBhIHN0cmluZycpO1xuICB9XG4gIHJldHVybiAoe1xuICAgIGFkZHJlc3MsXG4gICAgZmFtaWx5OiBmYW1pbHkgfHwgKGFkZHJlc3MuaW5kZXhPZignLicpIDwgMCA/IDYgOiA0KVxuICB9KTtcbn1cblxuY29uc3QgYnVpbGRBZGRyZXNzRW50cnkgPSAoYWRkcmVzcywgZmFtaWx5KSA9PiByZXNvbHZlRmFtaWx5KHV0aWxzLmlzT2JqZWN0KGFkZHJlc3MpID8gYWRkcmVzcyA6IHthZGRyZXNzLCBmYW1pbHl9KTtcblxuLyplc2xpbnQgY29uc2lzdGVudC1yZXR1cm46MCovXG5leHBvcnQgZGVmYXVsdCBpc0h0dHBBZGFwdGVyU3VwcG9ydGVkICYmIGZ1bmN0aW9uIGh0dHBBZGFwdGVyKGNvbmZpZykge1xuICByZXR1cm4gd3JhcEFzeW5jKGFzeW5jIGZ1bmN0aW9uIGRpc3BhdGNoSHR0cFJlcXVlc3QocmVzb2x2ZSwgcmVqZWN0LCBvbkRvbmUpIHtcbiAgICBsZXQge2RhdGEsIGxvb2t1cCwgZmFtaWx5fSA9IGNvbmZpZztcbiAgICBjb25zdCB7cmVzcG9uc2VUeXBlLCByZXNwb25zZUVuY29kaW5nfSA9IGNvbmZpZztcbiAgICBjb25zdCBtZXRob2QgPSBjb25maWcubWV0aG9kLnRvVXBwZXJDYXNlKCk7XG4gICAgbGV0IGlzRG9uZTtcbiAgICBsZXQgcmVqZWN0ZWQgPSBmYWxzZTtcbiAgICBsZXQgcmVxO1xuXG4gICAgaWYgKGxvb2t1cCkge1xuICAgICAgY29uc3QgX2xvb2t1cCA9IGNhbGxiYWNraWZ5KGxvb2t1cCwgKHZhbHVlKSA9PiB1dGlscy5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXSk7XG4gICAgICAvLyBob3RmaXggdG8gc3VwcG9ydCBvcHQuYWxsIG9wdGlvbiB3aGljaCBpcyByZXF1aXJlZCBmb3Igbm9kZSAyMC54XG4gICAgICBsb29rdXAgPSAoaG9zdG5hbWUsIG9wdCwgY2IpID0+IHtcbiAgICAgICAgX2xvb2t1cChob3N0bmFtZSwgb3B0LCAoZXJyLCBhcmcwLCBhcmcxKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIGNiKGVycik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYWRkcmVzc2VzID0gdXRpbHMuaXNBcnJheShhcmcwKSA/IGFyZzAubWFwKGFkZHIgPT4gYnVpbGRBZGRyZXNzRW50cnkoYWRkcikpIDogW2J1aWxkQWRkcmVzc0VudHJ5KGFyZzAsIGFyZzEpXTtcblxuICAgICAgICAgIG9wdC5hbGwgPyBjYihlcnIsIGFkZHJlc3NlcykgOiBjYihlcnIsIGFkZHJlc3Nlc1swXS5hZGRyZXNzLCBhZGRyZXNzZXNbMF0uZmFtaWx5KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gdGVtcG9yYXJ5IGludGVybmFsIGVtaXR0ZXIgdW50aWwgdGhlIEF4aW9zUmVxdWVzdCBjbGFzcyB3aWxsIGJlIGltcGxlbWVudGVkXG4gICAgY29uc3QgZW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGNvbnN0IG9uRmluaXNoZWQgPSAoKSA9PiB7XG4gICAgICBpZiAoY29uZmlnLmNhbmNlbFRva2VuKSB7XG4gICAgICAgIGNvbmZpZy5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShhYm9ydCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb25maWcuc2lnbmFsKSB7XG4gICAgICAgIGNvbmZpZy5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBhYm9ydCk7XG4gICAgICB9XG5cbiAgICAgIGVtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgb25Eb25lKCh2YWx1ZSwgaXNSZWplY3RlZCkgPT4ge1xuICAgICAgaXNEb25lID0gdHJ1ZTtcbiAgICAgIGlmIChpc1JlamVjdGVkKSB7XG4gICAgICAgIHJlamVjdGVkID0gdHJ1ZTtcbiAgICAgICAgb25GaW5pc2hlZCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gYWJvcnQocmVhc29uKSB7XG4gICAgICBlbWl0dGVyLmVtaXQoJ2Fib3J0JywgIXJlYXNvbiB8fCByZWFzb24udHlwZSA/IG5ldyBDYW5jZWxlZEVycm9yKG51bGwsIGNvbmZpZywgcmVxKSA6IHJlYXNvbik7XG4gICAgfVxuXG4gICAgZW1pdHRlci5vbmNlKCdhYm9ydCcsIHJlamVjdCk7XG5cbiAgICBpZiAoY29uZmlnLmNhbmNlbFRva2VuIHx8IGNvbmZpZy5zaWduYWwpIHtcbiAgICAgIGNvbmZpZy5jYW5jZWxUb2tlbiAmJiBjb25maWcuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKGFib3J0KTtcbiAgICAgIGlmIChjb25maWcuc2lnbmFsKSB7XG4gICAgICAgIGNvbmZpZy5zaWduYWwuYWJvcnRlZCA/IGFib3J0KCkgOiBjb25maWcuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgYWJvcnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBhcnNlIHVybFxuICAgIGNvbnN0IGZ1bGxQYXRoID0gYnVpbGRGdWxsUGF0aChjb25maWcuYmFzZVVSTCwgY29uZmlnLnVybCwgY29uZmlnLmFsbG93QWJzb2x1dGVVcmxzKTtcbiAgICBjb25zdCBwYXJzZWQgPSBuZXcgVVJMKGZ1bGxQYXRoLCBwbGF0Zm9ybS5oYXNCcm93c2VyRW52ID8gcGxhdGZvcm0ub3JpZ2luIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBwcm90b2NvbCA9IHBhcnNlZC5wcm90b2NvbCB8fCBzdXBwb3J0ZWRQcm90b2NvbHNbMF07XG5cbiAgICBpZiAocHJvdG9jb2wgPT09ICdkYXRhOicpIHtcbiAgICAgIGxldCBjb252ZXJ0ZWREYXRhO1xuXG4gICAgICBpZiAobWV0aG9kICE9PSAnR0VUJykge1xuICAgICAgICByZXR1cm4gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwge1xuICAgICAgICAgIHN0YXR1czogNDA1LFxuICAgICAgICAgIHN0YXR1c1RleHQ6ICdtZXRob2Qgbm90IGFsbG93ZWQnLFxuICAgICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICAgIGNvbmZpZ1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29udmVydGVkRGF0YSA9IGZyb21EYXRhVVJJKGNvbmZpZy51cmwsIHJlc3BvbnNlVHlwZSA9PT0gJ2Jsb2InLCB7XG4gICAgICAgICAgQmxvYjogY29uZmlnLmVudiAmJiBjb25maWcuZW52LkJsb2JcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgdGhyb3cgQXhpb3NFcnJvci5mcm9tKGVyciwgQXhpb3NFcnJvci5FUlJfQkFEX1JFUVVFU1QsIGNvbmZpZyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNwb25zZVR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICBjb252ZXJ0ZWREYXRhID0gY29udmVydGVkRGF0YS50b1N0cmluZyhyZXNwb25zZUVuY29kaW5nKTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlRW5jb2RpbmcgfHwgcmVzcG9uc2VFbmNvZGluZyA9PT0gJ3V0ZjgnKSB7XG4gICAgICAgICAgY29udmVydGVkRGF0YSA9IHV0aWxzLnN0cmlwQk9NKGNvbnZlcnRlZERhdGEpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlVHlwZSA9PT0gJ3N0cmVhbScpIHtcbiAgICAgICAgY29udmVydGVkRGF0YSA9IHN0cmVhbS5SZWFkYWJsZS5mcm9tKGNvbnZlcnRlZERhdGEpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwge1xuICAgICAgICBkYXRhOiBjb252ZXJ0ZWREYXRhLFxuICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgc3RhdHVzVGV4dDogJ09LJyxcbiAgICAgICAgaGVhZGVyczogbmV3IEF4aW9zSGVhZGVycygpLFxuICAgICAgICBjb25maWdcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChzdXBwb3J0ZWRQcm90b2NvbHMuaW5kZXhPZihwcm90b2NvbCkgPT09IC0xKSB7XG4gICAgICByZXR1cm4gcmVqZWN0KG5ldyBBeGlvc0Vycm9yKFxuICAgICAgICAnVW5zdXBwb3J0ZWQgcHJvdG9jb2wgJyArIHByb3RvY29sLFxuICAgICAgICBBeGlvc0Vycm9yLkVSUl9CQURfUkVRVUVTVCxcbiAgICAgICAgY29uZmlnXG4gICAgICApKTtcbiAgICB9XG5cbiAgICBjb25zdCBoZWFkZXJzID0gQXhpb3NIZWFkZXJzLmZyb20oY29uZmlnLmhlYWRlcnMpLm5vcm1hbGl6ZSgpO1xuXG4gICAgLy8gU2V0IFVzZXItQWdlbnQgKHJlcXVpcmVkIGJ5IHNvbWUgc2VydmVycylcbiAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2F4aW9zL2F4aW9zL2lzc3Vlcy82OVxuICAgIC8vIFVzZXItQWdlbnQgaXMgc3BlY2lmaWVkOyBoYW5kbGUgY2FzZSB3aGVyZSBubyBVQSBoZWFkZXIgaXMgZGVzaXJlZFxuICAgIC8vIE9ubHkgc2V0IGhlYWRlciBpZiBpdCBoYXNuJ3QgYmVlbiBzZXQgaW4gY29uZmlnXG4gICAgaGVhZGVycy5zZXQoJ1VzZXItQWdlbnQnLCAnYXhpb3MvJyArIFZFUlNJT04sIGZhbHNlKTtcblxuICAgIGNvbnN0IHtvblVwbG9hZFByb2dyZXNzLCBvbkRvd25sb2FkUHJvZ3Jlc3N9ID0gY29uZmlnO1xuICAgIGNvbnN0IG1heFJhdGUgPSBjb25maWcubWF4UmF0ZTtcbiAgICBsZXQgbWF4VXBsb2FkUmF0ZSA9IHVuZGVmaW5lZDtcbiAgICBsZXQgbWF4RG93bmxvYWRSYXRlID0gdW5kZWZpbmVkO1xuXG4gICAgLy8gc3VwcG9ydCBmb3Igc3BlYyBjb21wbGlhbnQgRm9ybURhdGEgb2JqZWN0c1xuICAgIGlmICh1dGlscy5pc1NwZWNDb21wbGlhbnRGb3JtKGRhdGEpKSB7XG4gICAgICBjb25zdCB1c2VyQm91bmRhcnkgPSBoZWFkZXJzLmdldENvbnRlbnRUeXBlKC9ib3VuZGFyeT0oWy1fXFx3XFxkXXsxMCw3MH0pL2kpO1xuXG4gICAgICBkYXRhID0gZm9ybURhdGFUb1N0cmVhbShkYXRhLCAoZm9ybUhlYWRlcnMpID0+IHtcbiAgICAgICAgaGVhZGVycy5zZXQoZm9ybUhlYWRlcnMpO1xuICAgICAgfSwge1xuICAgICAgICB0YWc6IGBheGlvcy0ke1ZFUlNJT059LWJvdW5kYXJ5YCxcbiAgICAgICAgYm91bmRhcnk6IHVzZXJCb3VuZGFyeSAmJiB1c2VyQm91bmRhcnlbMV0gfHwgdW5kZWZpbmVkXG4gICAgICB9KTtcbiAgICAgIC8vIHN1cHBvcnQgZm9yIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2Zvcm0tZGF0YSBhcGlcbiAgICB9IGVsc2UgaWYgKHV0aWxzLmlzRm9ybURhdGEoZGF0YSkgJiYgdXRpbHMuaXNGdW5jdGlvbihkYXRhLmdldEhlYWRlcnMpKSB7XG4gICAgICBoZWFkZXJzLnNldChkYXRhLmdldEhlYWRlcnMoKSk7XG5cbiAgICAgIGlmICghaGVhZGVycy5oYXNDb250ZW50TGVuZ3RoKCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBrbm93bkxlbmd0aCA9IGF3YWl0IHV0aWwucHJvbWlzaWZ5KGRhdGEuZ2V0TGVuZ3RoKS5jYWxsKGRhdGEpO1xuICAgICAgICAgIE51bWJlci5pc0Zpbml0ZShrbm93bkxlbmd0aCkgJiYga25vd25MZW5ndGggPj0gMCAmJiBoZWFkZXJzLnNldENvbnRlbnRMZW5ndGgoa25vd25MZW5ndGgpO1xuICAgICAgICAgIC8qZXNsaW50IG5vLWVtcHR5OjAqL1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHV0aWxzLmlzQmxvYihkYXRhKSB8fCB1dGlscy5pc0ZpbGUoZGF0YSkpIHtcbiAgICAgIGRhdGEuc2l6ZSAmJiBoZWFkZXJzLnNldENvbnRlbnRUeXBlKGRhdGEudHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7XG4gICAgICBoZWFkZXJzLnNldENvbnRlbnRMZW5ndGgoZGF0YS5zaXplIHx8IDApO1xuICAgICAgZGF0YSA9IHN0cmVhbS5SZWFkYWJsZS5mcm9tKHJlYWRCbG9iKGRhdGEpKTtcbiAgICB9IGVsc2UgaWYgKGRhdGEgJiYgIXV0aWxzLmlzU3RyZWFtKGRhdGEpKSB7XG4gICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKGRhdGEpKSB7XG4gICAgICAgIC8vIE5vdGhpbmcgdG8gZG8uLi5cbiAgICAgIH0gZWxzZSBpZiAodXRpbHMuaXNBcnJheUJ1ZmZlcihkYXRhKSkge1xuICAgICAgICBkYXRhID0gQnVmZmVyLmZyb20obmV3IFVpbnQ4QXJyYXkoZGF0YSkpO1xuICAgICAgfSBlbHNlIGlmICh1dGlscy5pc1N0cmluZyhkYXRhKSkge1xuICAgICAgICBkYXRhID0gQnVmZmVyLmZyb20oZGF0YSwgJ3V0Zi04Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBBeGlvc0Vycm9yKFxuICAgICAgICAgICdEYXRhIGFmdGVyIHRyYW5zZm9ybWF0aW9uIG11c3QgYmUgYSBzdHJpbmcsIGFuIEFycmF5QnVmZmVyLCBhIEJ1ZmZlciwgb3IgYSBTdHJlYW0nLFxuICAgICAgICAgIEF4aW9zRXJyb3IuRVJSX0JBRF9SRVFVRVNULFxuICAgICAgICAgIGNvbmZpZ1xuICAgICAgICApKTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIENvbnRlbnQtTGVuZ3RoIGhlYWRlciBpZiBkYXRhIGV4aXN0c1xuICAgICAgaGVhZGVycy5zZXRDb250ZW50TGVuZ3RoKGRhdGEubGVuZ3RoLCBmYWxzZSk7XG5cbiAgICAgIGlmIChjb25maWcubWF4Qm9keUxlbmd0aCA+IC0xICYmIGRhdGEubGVuZ3RoID4gY29uZmlnLm1heEJvZHlMZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgQXhpb3NFcnJvcihcbiAgICAgICAgICAnUmVxdWVzdCBib2R5IGxhcmdlciB0aGFuIG1heEJvZHlMZW5ndGggbGltaXQnLFxuICAgICAgICAgIEF4aW9zRXJyb3IuRVJSX0JBRF9SRVFVRVNULFxuICAgICAgICAgIGNvbmZpZ1xuICAgICAgICApKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250ZW50TGVuZ3RoID0gdXRpbHMudG9GaW5pdGVOdW1iZXIoaGVhZGVycy5nZXRDb250ZW50TGVuZ3RoKCkpO1xuXG4gICAgaWYgKHV0aWxzLmlzQXJyYXkobWF4UmF0ZSkpIHtcbiAgICAgIG1heFVwbG9hZFJhdGUgPSBtYXhSYXRlWzBdO1xuICAgICAgbWF4RG93bmxvYWRSYXRlID0gbWF4UmF0ZVsxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWF4VXBsb2FkUmF0ZSA9IG1heERvd25sb2FkUmF0ZSA9IG1heFJhdGU7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEgJiYgKG9uVXBsb2FkUHJvZ3Jlc3MgfHwgbWF4VXBsb2FkUmF0ZSkpIHtcbiAgICAgIGlmICghdXRpbHMuaXNTdHJlYW0oZGF0YSkpIHtcbiAgICAgICAgZGF0YSA9IHN0cmVhbS5SZWFkYWJsZS5mcm9tKGRhdGEsIHtvYmplY3RNb2RlOiBmYWxzZX0pO1xuICAgICAgfVxuXG4gICAgICBkYXRhID0gc3RyZWFtLnBpcGVsaW5lKFtkYXRhLCBuZXcgQXhpb3NUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICBtYXhSYXRlOiB1dGlscy50b0Zpbml0ZU51bWJlcihtYXhVcGxvYWRSYXRlKVxuICAgICAgfSldLCB1dGlscy5ub29wKTtcblxuICAgICAgb25VcGxvYWRQcm9ncmVzcyAmJiBkYXRhLm9uKCdwcm9ncmVzcycsIGZsdXNoT25GaW5pc2goXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHByb2dyZXNzRXZlbnREZWNvcmF0b3IoXG4gICAgICAgICAgY29udGVudExlbmd0aCxcbiAgICAgICAgICBwcm9ncmVzc0V2ZW50UmVkdWNlcihhc3luY0RlY29yYXRvcihvblVwbG9hZFByb2dyZXNzKSwgZmFsc2UsIDMpXG4gICAgICAgIClcbiAgICAgICkpO1xuICAgIH1cblxuICAgIC8vIEhUVFAgYmFzaWMgYXV0aGVudGljYXRpb25cbiAgICBsZXQgYXV0aCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoY29uZmlnLmF1dGgpIHtcbiAgICAgIGNvbnN0IHVzZXJuYW1lID0gY29uZmlnLmF1dGgudXNlcm5hbWUgfHwgJyc7XG4gICAgICBjb25zdCBwYXNzd29yZCA9IGNvbmZpZy5hdXRoLnBhc3N3b3JkIHx8ICcnO1xuICAgICAgYXV0aCA9IHVzZXJuYW1lICsgJzonICsgcGFzc3dvcmQ7XG4gICAgfVxuXG4gICAgaWYgKCFhdXRoICYmIHBhcnNlZC51c2VybmFtZSkge1xuICAgICAgY29uc3QgdXJsVXNlcm5hbWUgPSBwYXJzZWQudXNlcm5hbWU7XG4gICAgICBjb25zdCB1cmxQYXNzd29yZCA9IHBhcnNlZC5wYXNzd29yZDtcbiAgICAgIGF1dGggPSB1cmxVc2VybmFtZSArICc6JyArIHVybFBhc3N3b3JkO1xuICAgIH1cblxuICAgIGF1dGggJiYgaGVhZGVycy5kZWxldGUoJ2F1dGhvcml6YXRpb24nKTtcblxuICAgIGxldCBwYXRoO1xuXG4gICAgdHJ5IHtcbiAgICAgIHBhdGggPSBidWlsZFVSTChcbiAgICAgICAgcGFyc2VkLnBhdGhuYW1lICsgcGFyc2VkLnNlYXJjaCxcbiAgICAgICAgY29uZmlnLnBhcmFtcyxcbiAgICAgICAgY29uZmlnLnBhcmFtc1NlcmlhbGl6ZXJcbiAgICAgICkucmVwbGFjZSgvXlxcPy8sICcnKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IGN1c3RvbUVyciA9IG5ldyBFcnJvcihlcnIubWVzc2FnZSk7XG4gICAgICBjdXN0b21FcnIuY29uZmlnID0gY29uZmlnO1xuICAgICAgY3VzdG9tRXJyLnVybCA9IGNvbmZpZy51cmw7XG4gICAgICBjdXN0b21FcnIuZXhpc3RzID0gdHJ1ZTtcbiAgICAgIHJldHVybiByZWplY3QoY3VzdG9tRXJyKTtcbiAgICB9XG5cbiAgICBoZWFkZXJzLnNldChcbiAgICAgICdBY2NlcHQtRW5jb2RpbmcnLFxuICAgICAgJ2d6aXAsIGNvbXByZXNzLCBkZWZsYXRlJyArIChpc0Jyb3RsaVN1cHBvcnRlZCA/ICcsIGJyJyA6ICcnKSwgZmFsc2VcbiAgICAgICk7XG5cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgcGF0aCxcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgaGVhZGVyczogaGVhZGVycy50b0pTT04oKSxcbiAgICAgIGFnZW50czogeyBodHRwOiBjb25maWcuaHR0cEFnZW50LCBodHRwczogY29uZmlnLmh0dHBzQWdlbnQgfSxcbiAgICAgIGF1dGgsXG4gICAgICBwcm90b2NvbCxcbiAgICAgIGZhbWlseSxcbiAgICAgIGJlZm9yZVJlZGlyZWN0OiBkaXNwYXRjaEJlZm9yZVJlZGlyZWN0LFxuICAgICAgYmVmb3JlUmVkaXJlY3RzOiB7fVxuICAgIH07XG5cbiAgICAvLyBjYWNoZWFibGUtbG9va3VwIGludGVncmF0aW9uIGhvdGZpeFxuICAgICF1dGlscy5pc1VuZGVmaW5lZChsb29rdXApICYmIChvcHRpb25zLmxvb2t1cCA9IGxvb2t1cCk7XG5cbiAgICBpZiAoY29uZmlnLnNvY2tldFBhdGgpIHtcbiAgICAgIG9wdGlvbnMuc29ja2V0UGF0aCA9IGNvbmZpZy5zb2NrZXRQYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zLmhvc3RuYW1lID0gcGFyc2VkLmhvc3RuYW1lLnN0YXJ0c1dpdGgoXCJbXCIpID8gcGFyc2VkLmhvc3RuYW1lLnNsaWNlKDEsIC0xKSA6IHBhcnNlZC5ob3N0bmFtZTtcbiAgICAgIG9wdGlvbnMucG9ydCA9IHBhcnNlZC5wb3J0O1xuICAgICAgc2V0UHJveHkob3B0aW9ucywgY29uZmlnLnByb3h5LCBwcm90b2NvbCArICcvLycgKyBwYXJzZWQuaG9zdG5hbWUgKyAocGFyc2VkLnBvcnQgPyAnOicgKyBwYXJzZWQucG9ydCA6ICcnKSArIG9wdGlvbnMucGF0aCk7XG4gICAgfVxuXG4gICAgbGV0IHRyYW5zcG9ydDtcbiAgICBjb25zdCBpc0h0dHBzUmVxdWVzdCA9IGlzSHR0cHMudGVzdChvcHRpb25zLnByb3RvY29sKTtcbiAgICBvcHRpb25zLmFnZW50ID0gaXNIdHRwc1JlcXVlc3QgPyBjb25maWcuaHR0cHNBZ2VudCA6IGNvbmZpZy5odHRwQWdlbnQ7XG4gICAgaWYgKGNvbmZpZy50cmFuc3BvcnQpIHtcbiAgICAgIHRyYW5zcG9ydCA9IGNvbmZpZy50cmFuc3BvcnQ7XG4gICAgfSBlbHNlIGlmIChjb25maWcubWF4UmVkaXJlY3RzID09PSAwKSB7XG4gICAgICB0cmFuc3BvcnQgPSBpc0h0dHBzUmVxdWVzdCA/IGh0dHBzIDogaHR0cDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGNvbmZpZy5tYXhSZWRpcmVjdHMpIHtcbiAgICAgICAgb3B0aW9ucy5tYXhSZWRpcmVjdHMgPSBjb25maWcubWF4UmVkaXJlY3RzO1xuICAgICAgfVxuICAgICAgaWYgKGNvbmZpZy5iZWZvcmVSZWRpcmVjdCkge1xuICAgICAgICBvcHRpb25zLmJlZm9yZVJlZGlyZWN0cy5jb25maWcgPSBjb25maWcuYmVmb3JlUmVkaXJlY3Q7XG4gICAgICB9XG4gICAgICB0cmFuc3BvcnQgPSBpc0h0dHBzUmVxdWVzdCA/IGh0dHBzRm9sbG93IDogaHR0cEZvbGxvdztcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLm1heEJvZHlMZW5ndGggPiAtMSkge1xuICAgICAgb3B0aW9ucy5tYXhCb2R5TGVuZ3RoID0gY29uZmlnLm1heEJvZHlMZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZvbGxvdy1yZWRpcmVjdHMgZG9lcyBub3Qgc2tpcCBjb21wYXJpc29uLCBzbyBpdCBzaG91bGQgYWx3YXlzIHN1Y2NlZWQgZm9yIGF4aW9zIC0xIHVubGltaXRlZFxuICAgICAgb3B0aW9ucy5tYXhCb2R5TGVuZ3RoID0gSW5maW5pdHk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5pbnNlY3VyZUhUVFBQYXJzZXIpIHtcbiAgICAgIG9wdGlvbnMuaW5zZWN1cmVIVFRQUGFyc2VyID0gY29uZmlnLmluc2VjdXJlSFRUUFBhcnNlcjtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIHJlcXVlc3RcbiAgICByZXEgPSB0cmFuc3BvcnQucmVxdWVzdChvcHRpb25zLCBmdW5jdGlvbiBoYW5kbGVSZXNwb25zZShyZXMpIHtcbiAgICAgIGlmIChyZXEuZGVzdHJveWVkKSByZXR1cm47XG5cbiAgICAgIGNvbnN0IHN0cmVhbXMgPSBbcmVzXTtcblxuICAgICAgY29uc3QgcmVzcG9uc2VMZW5ndGggPSArcmVzLmhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ107XG5cbiAgICAgIGlmIChvbkRvd25sb2FkUHJvZ3Jlc3MgfHwgbWF4RG93bmxvYWRSYXRlKSB7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybVN0cmVhbSA9IG5ldyBBeGlvc1RyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgICAgbWF4UmF0ZTogdXRpbHMudG9GaW5pdGVOdW1iZXIobWF4RG93bmxvYWRSYXRlKVxuICAgICAgICB9KTtcblxuICAgICAgICBvbkRvd25sb2FkUHJvZ3Jlc3MgJiYgdHJhbnNmb3JtU3RyZWFtLm9uKCdwcm9ncmVzcycsIGZsdXNoT25GaW5pc2goXG4gICAgICAgICAgdHJhbnNmb3JtU3RyZWFtLFxuICAgICAgICAgIHByb2dyZXNzRXZlbnREZWNvcmF0b3IoXG4gICAgICAgICAgICByZXNwb25zZUxlbmd0aCxcbiAgICAgICAgICAgIHByb2dyZXNzRXZlbnRSZWR1Y2VyKGFzeW5jRGVjb3JhdG9yKG9uRG93bmxvYWRQcm9ncmVzcyksIHRydWUsIDMpXG4gICAgICAgICAgKVxuICAgICAgICApKTtcblxuICAgICAgICBzdHJlYW1zLnB1c2godHJhbnNmb3JtU3RyZWFtKTtcbiAgICAgIH1cblxuICAgICAgLy8gZGVjb21wcmVzcyB0aGUgcmVzcG9uc2UgYm9keSB0cmFuc3BhcmVudGx5IGlmIHJlcXVpcmVkXG4gICAgICBsZXQgcmVzcG9uc2VTdHJlYW0gPSByZXM7XG5cbiAgICAgIC8vIHJldHVybiB0aGUgbGFzdCByZXF1ZXN0IGluIGNhc2Ugb2YgcmVkaXJlY3RzXG4gICAgICBjb25zdCBsYXN0UmVxdWVzdCA9IHJlcy5yZXEgfHwgcmVxO1xuXG4gICAgICAvLyBpZiBkZWNvbXByZXNzIGRpc2FibGVkIHdlIHNob3VsZCBub3QgZGVjb21wcmVzc1xuICAgICAgaWYgKGNvbmZpZy5kZWNvbXByZXNzICE9PSBmYWxzZSAmJiByZXMuaGVhZGVyc1snY29udGVudC1lbmNvZGluZyddKSB7XG4gICAgICAgIC8vIGlmIG5vIGNvbnRlbnQsIGJ1dCBoZWFkZXJzIHN0aWxsIHNheSB0aGF0IGl0IGlzIGVuY29kZWQsXG4gICAgICAgIC8vIHJlbW92ZSB0aGUgaGVhZGVyIG5vdCBjb25mdXNlIGRvd25zdHJlYW0gb3BlcmF0aW9uc1xuICAgICAgICBpZiAobWV0aG9kID09PSAnSEVBRCcgfHwgcmVzLnN0YXR1c0NvZGUgPT09IDIwNCkge1xuICAgICAgICAgIGRlbGV0ZSByZXMuaGVhZGVyc1snY29udGVudC1lbmNvZGluZyddO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoICgocmVzLmhlYWRlcnNbJ2NvbnRlbnQtZW5jb2RpbmcnXSB8fCAnJykudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAvKmVzbGludCBkZWZhdWx0LWNhc2U6MCovXG4gICAgICAgIGNhc2UgJ2d6aXAnOlxuICAgICAgICBjYXNlICd4LWd6aXAnOlxuICAgICAgICBjYXNlICdjb21wcmVzcyc6XG4gICAgICAgIGNhc2UgJ3gtY29tcHJlc3MnOlxuICAgICAgICAgIC8vIGFkZCB0aGUgdW56aXBwZXIgdG8gdGhlIGJvZHkgc3RyZWFtIHByb2Nlc3NpbmcgcGlwZWxpbmVcbiAgICAgICAgICBzdHJlYW1zLnB1c2goemxpYi5jcmVhdGVVbnppcCh6bGliT3B0aW9ucykpO1xuXG4gICAgICAgICAgLy8gcmVtb3ZlIHRoZSBjb250ZW50LWVuY29kaW5nIGluIG9yZGVyIHRvIG5vdCBjb25mdXNlIGRvd25zdHJlYW0gb3BlcmF0aW9uc1xuICAgICAgICAgIGRlbGV0ZSByZXMuaGVhZGVyc1snY29udGVudC1lbmNvZGluZyddO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkZWZsYXRlJzpcbiAgICAgICAgICBzdHJlYW1zLnB1c2gobmV3IFpsaWJIZWFkZXJUcmFuc2Zvcm1TdHJlYW0oKSk7XG5cbiAgICAgICAgICAvLyBhZGQgdGhlIHVuemlwcGVyIHRvIHRoZSBib2R5IHN0cmVhbSBwcm9jZXNzaW5nIHBpcGVsaW5lXG4gICAgICAgICAgc3RyZWFtcy5wdXNoKHpsaWIuY3JlYXRlVW56aXAoemxpYk9wdGlvbnMpKTtcblxuICAgICAgICAgIC8vIHJlbW92ZSB0aGUgY29udGVudC1lbmNvZGluZyBpbiBvcmRlciB0byBub3QgY29uZnVzZSBkb3duc3RyZWFtIG9wZXJhdGlvbnNcbiAgICAgICAgICBkZWxldGUgcmVzLmhlYWRlcnNbJ2NvbnRlbnQtZW5jb2RpbmcnXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYnInOlxuICAgICAgICAgIGlmIChpc0Jyb3RsaVN1cHBvcnRlZCkge1xuICAgICAgICAgICAgc3RyZWFtcy5wdXNoKHpsaWIuY3JlYXRlQnJvdGxpRGVjb21wcmVzcyhicm90bGlPcHRpb25zKSk7XG4gICAgICAgICAgICBkZWxldGUgcmVzLmhlYWRlcnNbJ2NvbnRlbnQtZW5jb2RpbmcnXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmVzcG9uc2VTdHJlYW0gPSBzdHJlYW1zLmxlbmd0aCA+IDEgPyBzdHJlYW0ucGlwZWxpbmUoc3RyZWFtcywgdXRpbHMubm9vcCkgOiBzdHJlYW1zWzBdO1xuXG4gICAgICBjb25zdCBvZmZMaXN0ZW5lcnMgPSBzdHJlYW0uZmluaXNoZWQocmVzcG9uc2VTdHJlYW0sICgpID0+IHtcbiAgICAgICAgb2ZmTGlzdGVuZXJzKCk7XG4gICAgICAgIG9uRmluaXNoZWQoKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzQ29kZSxcbiAgICAgICAgc3RhdHVzVGV4dDogcmVzLnN0YXR1c01lc3NhZ2UsXG4gICAgICAgIGhlYWRlcnM6IG5ldyBBeGlvc0hlYWRlcnMocmVzLmhlYWRlcnMpLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIHJlcXVlc3Q6IGxhc3RSZXF1ZXN0XG4gICAgICB9O1xuXG4gICAgICBpZiAocmVzcG9uc2VUeXBlID09PSAnc3RyZWFtJykge1xuICAgICAgICByZXNwb25zZS5kYXRhID0gcmVzcG9uc2VTdHJlYW07XG4gICAgICAgIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHJlc3BvbnNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlQnVmZmVyID0gW107XG4gICAgICAgIGxldCB0b3RhbFJlc3BvbnNlQnl0ZXMgPSAwO1xuXG4gICAgICAgIHJlc3BvbnNlU3RyZWFtLm9uKCdkYXRhJywgZnVuY3Rpb24gaGFuZGxlU3RyZWFtRGF0YShjaHVuaykge1xuICAgICAgICAgIHJlc3BvbnNlQnVmZmVyLnB1c2goY2h1bmspO1xuICAgICAgICAgIHRvdGFsUmVzcG9uc2VCeXRlcyArPSBjaHVuay5sZW5ndGg7XG5cbiAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlIGNvbnRlbnQgbGVuZ3RoIGlzIG5vdCBvdmVyIHRoZSBtYXhDb250ZW50TGVuZ3RoIGlmIHNwZWNpZmllZFxuICAgICAgICAgIGlmIChjb25maWcubWF4Q29udGVudExlbmd0aCA+IC0xICYmIHRvdGFsUmVzcG9uc2VCeXRlcyA+IGNvbmZpZy5tYXhDb250ZW50TGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBzdHJlYW0uZGVzdHJveSgpIGVtaXQgYWJvcnRlZCBldmVudCBiZWZvcmUgY2FsbGluZyByZWplY3QoKSBvbiBOb2RlLmpzIHYxNlxuICAgICAgICAgICAgcmVqZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVzcG9uc2VTdHJlYW0uZGVzdHJveSgpO1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBBeGlvc0Vycm9yKCdtYXhDb250ZW50TGVuZ3RoIHNpemUgb2YgJyArIGNvbmZpZy5tYXhDb250ZW50TGVuZ3RoICsgJyBleGNlZWRlZCcsXG4gICAgICAgICAgICAgIEF4aW9zRXJyb3IuRVJSX0JBRF9SRVNQT05TRSwgY29uZmlnLCBsYXN0UmVxdWVzdCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVzcG9uc2VTdHJlYW0ub24oJ2Fib3J0ZWQnLCBmdW5jdGlvbiBoYW5kbGVyU3RyZWFtQWJvcnRlZCgpIHtcbiAgICAgICAgICBpZiAocmVqZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgQXhpb3NFcnJvcihcbiAgICAgICAgICAgICdzdHJlYW0gaGFzIGJlZW4gYWJvcnRlZCcsXG4gICAgICAgICAgICBBeGlvc0Vycm9yLkVSUl9CQURfUkVTUE9OU0UsXG4gICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICBsYXN0UmVxdWVzdFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmVzcG9uc2VTdHJlYW0uZGVzdHJveShlcnIpO1xuICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXNwb25zZVN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbiBoYW5kbGVTdHJlYW1FcnJvcihlcnIpIHtcbiAgICAgICAgICBpZiAocmVxLmRlc3Ryb3llZCkgcmV0dXJuO1xuICAgICAgICAgIHJlamVjdChBeGlvc0Vycm9yLmZyb20oZXJyLCBudWxsLCBjb25maWcsIGxhc3RSZXF1ZXN0KSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJlc3BvbnNlU3RyZWFtLm9uKCdlbmQnLCBmdW5jdGlvbiBoYW5kbGVTdHJlYW1FbmQoKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCByZXNwb25zZURhdGEgPSByZXNwb25zZUJ1ZmZlci5sZW5ndGggPT09IDEgPyByZXNwb25zZUJ1ZmZlclswXSA6IEJ1ZmZlci5jb25jYXQocmVzcG9uc2VCdWZmZXIpO1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlVHlwZSAhPT0gJ2FycmF5YnVmZmVyJykge1xuICAgICAgICAgICAgICByZXNwb25zZURhdGEgPSByZXNwb25zZURhdGEudG9TdHJpbmcocmVzcG9uc2VFbmNvZGluZyk7XG4gICAgICAgICAgICAgIGlmICghcmVzcG9uc2VFbmNvZGluZyB8fCByZXNwb25zZUVuY29kaW5nID09PSAndXRmOCcpIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZURhdGEgPSB1dGlscy5zdHJpcEJPTShyZXNwb25zZURhdGEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNwb25zZS5kYXRhID0gcmVzcG9uc2VEYXRhO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIHJlamVjdChBeGlvc0Vycm9yLmZyb20oZXJyLCBudWxsLCBjb25maWcsIHJlc3BvbnNlLnJlcXVlc3QsIHJlc3BvbnNlKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHJlc3BvbnNlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGVtaXR0ZXIub25jZSgnYWJvcnQnLCBlcnIgPT4ge1xuICAgICAgICBpZiAoIXJlc3BvbnNlU3RyZWFtLmRlc3Ryb3llZCkge1xuICAgICAgICAgIHJlc3BvbnNlU3RyZWFtLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgICAgICAgICByZXNwb25zZVN0cmVhbS5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZW1pdHRlci5vbmNlKCdhYm9ydCcsIGVyciA9PiB7XG4gICAgICByZWplY3QoZXJyKTtcbiAgICAgIHJlcS5kZXN0cm95KGVycik7XG4gICAgfSk7XG5cbiAgICAvLyBIYW5kbGUgZXJyb3JzXG4gICAgcmVxLm9uKCdlcnJvcicsIGZ1bmN0aW9uIGhhbmRsZVJlcXVlc3RFcnJvcihlcnIpIHtcbiAgICAgIC8vIEB0b2RvIHJlbW92ZVxuICAgICAgLy8gaWYgKHJlcS5hYm9ydGVkICYmIGVyci5jb2RlICE9PSBBeGlvc0Vycm9yLkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMpIHJldHVybjtcbiAgICAgIHJlamVjdChBeGlvc0Vycm9yLmZyb20oZXJyLCBudWxsLCBjb25maWcsIHJlcSkpO1xuICAgIH0pO1xuXG4gICAgLy8gc2V0IHRjcCBrZWVwIGFsaXZlIHRvIHByZXZlbnQgZHJvcCBjb25uZWN0aW9uIGJ5IHBlZXJcbiAgICByZXEub24oJ3NvY2tldCcsIGZ1bmN0aW9uIGhhbmRsZVJlcXVlc3RTb2NrZXQoc29ja2V0KSB7XG4gICAgICAvLyBkZWZhdWx0IGludGVydmFsIG9mIHNlbmRpbmcgYWNrIHBhY2tldCBpcyAxIG1pbnV0ZVxuICAgICAgc29ja2V0LnNldEtlZXBBbGl2ZSh0cnVlLCAxMDAwICogNjApO1xuICAgIH0pO1xuXG4gICAgLy8gSGFuZGxlIHJlcXVlc3QgdGltZW91dFxuICAgIGlmIChjb25maWcudGltZW91dCkge1xuICAgICAgLy8gVGhpcyBpcyBmb3JjaW5nIGEgaW50IHRpbWVvdXQgdG8gYXZvaWQgcHJvYmxlbXMgaWYgdGhlIGByZXFgIGludGVyZmFjZSBkb2Vzbid0IGhhbmRsZSBvdGhlciB0eXBlcy5cbiAgICAgIGNvbnN0IHRpbWVvdXQgPSBwYXJzZUludChjb25maWcudGltZW91dCwgMTApO1xuXG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKHRpbWVvdXQpKSB7XG4gICAgICAgIHJlamVjdChuZXcgQXhpb3NFcnJvcihcbiAgICAgICAgICAnZXJyb3IgdHJ5aW5nIHRvIHBhcnNlIGBjb25maWcudGltZW91dGAgdG8gaW50JyxcbiAgICAgICAgICBBeGlvc0Vycm9yLkVSUl9CQURfT1BUSU9OX1ZBTFVFLFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICByZXFcbiAgICAgICAgKSk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBTb21ldGltZSwgdGhlIHJlc3BvbnNlIHdpbGwgYmUgdmVyeSBzbG93LCBhbmQgZG9lcyBub3QgcmVzcG9uZCwgdGhlIGNvbm5lY3QgZXZlbnQgd2lsbCBiZSBibG9jayBieSBldmVudCBsb29wIHN5c3RlbS5cbiAgICAgIC8vIEFuZCB0aW1lciBjYWxsYmFjayB3aWxsIGJlIGZpcmVkLCBhbmQgYWJvcnQoKSB3aWxsIGJlIGludm9rZWQgYmVmb3JlIGNvbm5lY3Rpb24sIHRoZW4gZ2V0IFwic29ja2V0IGhhbmcgdXBcIiBhbmQgY29kZSBFQ09OTlJFU0VULlxuICAgICAgLy8gQXQgdGhpcyB0aW1lLCBpZiB3ZSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIHJlcXVlc3QsIG5vZGVqcyB3aWxsIGhhbmcgdXAgc29tZSBzb2NrZXQgb24gYmFja2dyb3VuZC4gYW5kIHRoZSBudW1iZXIgd2lsbCB1cCBhbmQgdXAuXG4gICAgICAvLyBBbmQgdGhlbiB0aGVzZSBzb2NrZXQgd2hpY2ggYmUgaGFuZyB1cCB3aWxsIGRldm91cmluZyBDUFUgbGl0dGxlIGJ5IGxpdHRsZS5cbiAgICAgIC8vIENsaWVudFJlcXVlc3Quc2V0VGltZW91dCB3aWxsIGJlIGZpcmVkIG9uIHRoZSBzcGVjaWZ5IG1pbGxpc2Vjb25kcywgYW5kIGNhbiBtYWtlIHN1cmUgdGhhdCBhYm9ydCgpIHdpbGwgYmUgZmlyZWQgYWZ0ZXIgY29ubmVjdC5cbiAgICAgIHJlcS5zZXRUaW1lb3V0KHRpbWVvdXQsIGZ1bmN0aW9uIGhhbmRsZVJlcXVlc3RUaW1lb3V0KCkge1xuICAgICAgICBpZiAoaXNEb25lKSByZXR1cm47XG4gICAgICAgIGxldCB0aW1lb3V0RXJyb3JNZXNzYWdlID0gY29uZmlnLnRpbWVvdXQgPyAndGltZW91dCBvZiAnICsgY29uZmlnLnRpbWVvdXQgKyAnbXMgZXhjZWVkZWQnIDogJ3RpbWVvdXQgZXhjZWVkZWQnO1xuICAgICAgICBjb25zdCB0cmFuc2l0aW9uYWwgPSBjb25maWcudHJhbnNpdGlvbmFsIHx8IHRyYW5zaXRpb25hbERlZmF1bHRzO1xuICAgICAgICBpZiAoY29uZmlnLnRpbWVvdXRFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgICB0aW1lb3V0RXJyb3JNZXNzYWdlID0gY29uZmlnLnRpbWVvdXRFcnJvck1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICAgICAgcmVqZWN0KG5ldyBBeGlvc0Vycm9yKFxuICAgICAgICAgIHRpbWVvdXRFcnJvck1lc3NhZ2UsXG4gICAgICAgICAgdHJhbnNpdGlvbmFsLmNsYXJpZnlUaW1lb3V0RXJyb3IgPyBBeGlvc0Vycm9yLkVUSU1FRE9VVCA6IEF4aW9zRXJyb3IuRUNPTk5BQk9SVEVELFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICByZXFcbiAgICAgICAgKSk7XG4gICAgICAgIGFib3J0KCk7XG4gICAgICB9KTtcbiAgICB9XG5cblxuICAgIC8vIFNlbmQgdGhlIHJlcXVlc3RcbiAgICBpZiAodXRpbHMuaXNTdHJlYW0oZGF0YSkpIHtcbiAgICAgIGxldCBlbmRlZCA9IGZhbHNlO1xuICAgICAgbGV0IGVycm9yZWQgPSBmYWxzZTtcblxuICAgICAgZGF0YS5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICBlbmRlZCA9IHRydWU7XG4gICAgICB9KTtcblxuICAgICAgZGF0YS5vbmNlKCdlcnJvcicsIGVyciA9PiB7XG4gICAgICAgIGVycm9yZWQgPSB0cnVlO1xuICAgICAgICByZXEuZGVzdHJveShlcnIpO1xuICAgICAgfSk7XG5cbiAgICAgIGRhdGEub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgICBpZiAoIWVuZGVkICYmICFlcnJvcmVkKSB7XG4gICAgICAgICAgYWJvcnQobmV3IENhbmNlbGVkRXJyb3IoJ1JlcXVlc3Qgc3RyZWFtIGhhcyBiZWVuIGFib3J0ZWQnLCBjb25maWcsIHJlcSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgZGF0YS5waXBlKHJlcSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcS5lbmQoZGF0YSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IF9fc2V0UHJveHkgPSBzZXRQcm94eTtcbiIsICJpbXBvcnQgcGxhdGZvcm0gZnJvbSAnLi4vcGxhdGZvcm0vaW5kZXguanMnO1xuXG5leHBvcnQgZGVmYXVsdCBwbGF0Zm9ybS5oYXNTdGFuZGFyZEJyb3dzZXJFbnYgPyAoKG9yaWdpbiwgaXNNU0lFKSA9PiAodXJsKSA9PiB7XG4gIHVybCA9IG5ldyBVUkwodXJsLCBwbGF0Zm9ybS5vcmlnaW4pO1xuXG4gIHJldHVybiAoXG4gICAgb3JpZ2luLnByb3RvY29sID09PSB1cmwucHJvdG9jb2wgJiZcbiAgICBvcmlnaW4uaG9zdCA9PT0gdXJsLmhvc3QgJiZcbiAgICAoaXNNU0lFIHx8IG9yaWdpbi5wb3J0ID09PSB1cmwucG9ydClcbiAgKTtcbn0pKFxuICBuZXcgVVJMKHBsYXRmb3JtLm9yaWdpbiksXG4gIHBsYXRmb3JtLm5hdmlnYXRvciAmJiAvKG1zaWV8dHJpZGVudCkvaS50ZXN0KHBsYXRmb3JtLm5hdmlnYXRvci51c2VyQWdlbnQpXG4pIDogKCkgPT4gdHJ1ZTtcbiIsICJpbXBvcnQgdXRpbHMgZnJvbSAnLi8uLi91dGlscy5qcyc7XG5pbXBvcnQgcGxhdGZvcm0gZnJvbSAnLi4vcGxhdGZvcm0vaW5kZXguanMnO1xuXG5leHBvcnQgZGVmYXVsdCBwbGF0Zm9ybS5oYXNTdGFuZGFyZEJyb3dzZXJFbnYgP1xuXG4gIC8vIFN0YW5kYXJkIGJyb3dzZXIgZW52cyBzdXBwb3J0IGRvY3VtZW50LmNvb2tpZVxuICB7XG4gICAgd3JpdGUobmFtZSwgdmFsdWUsIGV4cGlyZXMsIHBhdGgsIGRvbWFpbiwgc2VjdXJlKSB7XG4gICAgICBjb25zdCBjb29raWUgPSBbbmFtZSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSldO1xuXG4gICAgICB1dGlscy5pc051bWJlcihleHBpcmVzKSAmJiBjb29raWUucHVzaCgnZXhwaXJlcz0nICsgbmV3IERhdGUoZXhwaXJlcykudG9HTVRTdHJpbmcoKSk7XG5cbiAgICAgIHV0aWxzLmlzU3RyaW5nKHBhdGgpICYmIGNvb2tpZS5wdXNoKCdwYXRoPScgKyBwYXRoKTtcblxuICAgICAgdXRpbHMuaXNTdHJpbmcoZG9tYWluKSAmJiBjb29raWUucHVzaCgnZG9tYWluPScgKyBkb21haW4pO1xuXG4gICAgICBzZWN1cmUgPT09IHRydWUgJiYgY29va2llLnB1c2goJ3NlY3VyZScpO1xuXG4gICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUuam9pbignOyAnKTtcbiAgICB9LFxuXG4gICAgcmVhZChuYW1lKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IGRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCcoXnw7XFxcXHMqKSgnICsgbmFtZSArICcpPShbXjtdKiknKSk7XG4gICAgICByZXR1cm4gKG1hdGNoID8gZGVjb2RlVVJJQ29tcG9uZW50KG1hdGNoWzNdKSA6IG51bGwpO1xuICAgIH0sXG5cbiAgICByZW1vdmUobmFtZSkge1xuICAgICAgdGhpcy53cml0ZShuYW1lLCAnJywgRGF0ZS5ub3coKSAtIDg2NDAwMDAwKTtcbiAgICB9XG4gIH1cblxuICA6XG5cbiAgLy8gTm9uLXN0YW5kYXJkIGJyb3dzZXIgZW52ICh3ZWIgd29ya2VycywgcmVhY3QtbmF0aXZlKSBsYWNrIG5lZWRlZCBzdXBwb3J0LlxuICB7XG4gICAgd3JpdGUoKSB7fSxcbiAgICByZWFkKCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSxcbiAgICByZW1vdmUoKSB7fVxuICB9O1xuXG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tIFwiLi9BeGlvc0hlYWRlcnMuanNcIjtcblxuY29uc3QgaGVhZGVyc1RvT2JqZWN0ID0gKHRoaW5nKSA9PiB0aGluZyBpbnN0YW5jZW9mIEF4aW9zSGVhZGVycyA/IHsgLi4udGhpbmcgfSA6IHRoaW5nO1xuXG4vKipcbiAqIENvbmZpZy1zcGVjaWZpYyBtZXJnZS1mdW5jdGlvbiB3aGljaCBjcmVhdGVzIGEgbmV3IGNvbmZpZy1vYmplY3RcbiAqIGJ5IG1lcmdpbmcgdHdvIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0b2dldGhlci5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnMVxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZzJcbiAqXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBOZXcgb2JqZWN0IHJlc3VsdGluZyBmcm9tIG1lcmdpbmcgY29uZmlnMiB0byBjb25maWcxXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlQ29uZmlnKGNvbmZpZzEsIGNvbmZpZzIpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGNvbmZpZzIgPSBjb25maWcyIHx8IHt9O1xuICBjb25zdCBjb25maWcgPSB7fTtcblxuICBmdW5jdGlvbiBnZXRNZXJnZWRWYWx1ZSh0YXJnZXQsIHNvdXJjZSwgcHJvcCwgY2FzZWxlc3MpIHtcbiAgICBpZiAodXRpbHMuaXNQbGFpbk9iamVjdCh0YXJnZXQpICYmIHV0aWxzLmlzUGxhaW5PYmplY3Qoc291cmNlKSkge1xuICAgICAgcmV0dXJuIHV0aWxzLm1lcmdlLmNhbGwoe2Nhc2VsZXNzfSwgdGFyZ2V0LCBzb3VyY2UpO1xuICAgIH0gZWxzZSBpZiAodXRpbHMuaXNQbGFpbk9iamVjdChzb3VyY2UpKSB7XG4gICAgICByZXR1cm4gdXRpbHMubWVyZ2Uoe30sIHNvdXJjZSk7XG4gICAgfSBlbHNlIGlmICh1dGlscy5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgIHJldHVybiBzb3VyY2Uuc2xpY2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICBmdW5jdGlvbiBtZXJnZURlZXBQcm9wZXJ0aWVzKGEsIGIsIHByb3AgLCBjYXNlbGVzcykge1xuICAgIGlmICghdXRpbHMuaXNVbmRlZmluZWQoYikpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZShhLCBiLCBwcm9wICwgY2FzZWxlc3MpO1xuICAgIH0gZWxzZSBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGEpKSB7XG4gICAgICByZXR1cm4gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBhLCBwcm9wICwgY2FzZWxlc3MpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICBmdW5jdGlvbiB2YWx1ZUZyb21Db25maWcyKGEsIGIpIHtcbiAgICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGIpKSB7XG4gICAgICByZXR1cm4gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBiKTtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29uc2lzdGVudC1yZXR1cm5cbiAgZnVuY3Rpb24gZGVmYXVsdFRvQ29uZmlnMihhLCBiKSB7XG4gICAgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChiKSkge1xuICAgICAgcmV0dXJuIGdldE1lcmdlZFZhbHVlKHVuZGVmaW5lZCwgYik7XG4gICAgfSBlbHNlIGlmICghdXRpbHMuaXNVbmRlZmluZWQoYSkpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZSh1bmRlZmluZWQsIGEpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICBmdW5jdGlvbiBtZXJnZURpcmVjdEtleXMoYSwgYiwgcHJvcCkge1xuICAgIGlmIChwcm9wIGluIGNvbmZpZzIpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZShhLCBiKTtcbiAgICB9IGVsc2UgaWYgKHByb3AgaW4gY29uZmlnMSkge1xuICAgICAgcmV0dXJuIGdldE1lcmdlZFZhbHVlKHVuZGVmaW5lZCwgYSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbWVyZ2VNYXAgPSB7XG4gICAgdXJsOiB2YWx1ZUZyb21Db25maWcyLFxuICAgIG1ldGhvZDogdmFsdWVGcm9tQ29uZmlnMixcbiAgICBkYXRhOiB2YWx1ZUZyb21Db25maWcyLFxuICAgIGJhc2VVUkw6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgdHJhbnNmb3JtUmVxdWVzdDogZGVmYXVsdFRvQ29uZmlnMixcbiAgICB0cmFuc2Zvcm1SZXNwb25zZTogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBwYXJhbXNTZXJpYWxpemVyOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHRpbWVvdXQ6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgdGltZW91dE1lc3NhZ2U6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgd2l0aENyZWRlbnRpYWxzOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHdpdGhYU1JGVG9rZW46IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgYWRhcHRlcjogZGVmYXVsdFRvQ29uZmlnMixcbiAgICByZXNwb25zZVR5cGU6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgeHNyZkNvb2tpZU5hbWU6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgeHNyZkhlYWRlck5hbWU6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgb25VcGxvYWRQcm9ncmVzczogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBvbkRvd25sb2FkUHJvZ3Jlc3M6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgZGVjb21wcmVzczogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBtYXhDb250ZW50TGVuZ3RoOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIG1heEJvZHlMZW5ndGg6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgYmVmb3JlUmVkaXJlY3Q6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgdHJhbnNwb3J0OiBkZWZhdWx0VG9Db25maWcyLFxuICAgIGh0dHBBZ2VudDogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBodHRwc0FnZW50OiBkZWZhdWx0VG9Db25maWcyLFxuICAgIGNhbmNlbFRva2VuOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHNvY2tldFBhdGg6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgcmVzcG9uc2VFbmNvZGluZzogZGVmYXVsdFRvQ29uZmlnMixcbiAgICB2YWxpZGF0ZVN0YXR1czogbWVyZ2VEaXJlY3RLZXlzLFxuICAgIGhlYWRlcnM6IChhLCBiICwgcHJvcCkgPT4gbWVyZ2VEZWVwUHJvcGVydGllcyhoZWFkZXJzVG9PYmplY3QoYSksIGhlYWRlcnNUb09iamVjdChiKSxwcm9wLCB0cnVlKVxuICB9O1xuXG4gIHV0aWxzLmZvckVhY2goT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnMSwgY29uZmlnMikpLCBmdW5jdGlvbiBjb21wdXRlQ29uZmlnVmFsdWUocHJvcCkge1xuICAgIGNvbnN0IG1lcmdlID0gbWVyZ2VNYXBbcHJvcF0gfHwgbWVyZ2VEZWVwUHJvcGVydGllcztcbiAgICBjb25zdCBjb25maWdWYWx1ZSA9IG1lcmdlKGNvbmZpZzFbcHJvcF0sIGNvbmZpZzJbcHJvcF0sIHByb3ApO1xuICAgICh1dGlscy5pc1VuZGVmaW5lZChjb25maWdWYWx1ZSkgJiYgbWVyZ2UgIT09IG1lcmdlRGlyZWN0S2V5cykgfHwgKGNvbmZpZ1twcm9wXSA9IGNvbmZpZ1ZhbHVlKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cbiIsICJpbXBvcnQgcGxhdGZvcm0gZnJvbSBcIi4uL3BsYXRmb3JtL2luZGV4LmpzXCI7XG5pbXBvcnQgdXRpbHMgZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5pbXBvcnQgaXNVUkxTYW1lT3JpZ2luIGZyb20gXCIuL2lzVVJMU2FtZU9yaWdpbi5qc1wiO1xuaW1wb3J0IGNvb2tpZXMgZnJvbSBcIi4vY29va2llcy5qc1wiO1xuaW1wb3J0IGJ1aWxkRnVsbFBhdGggZnJvbSBcIi4uL2NvcmUvYnVpbGRGdWxsUGF0aC5qc1wiO1xuaW1wb3J0IG1lcmdlQ29uZmlnIGZyb20gXCIuLi9jb3JlL21lcmdlQ29uZmlnLmpzXCI7XG5pbXBvcnQgQXhpb3NIZWFkZXJzIGZyb20gXCIuLi9jb3JlL0F4aW9zSGVhZGVycy5qc1wiO1xuaW1wb3J0IGJ1aWxkVVJMIGZyb20gXCIuL2J1aWxkVVJMLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IChjb25maWcpID0+IHtcbiAgY29uc3QgbmV3Q29uZmlnID0gbWVyZ2VDb25maWcoe30sIGNvbmZpZyk7XG5cbiAgbGV0IHtkYXRhLCB3aXRoWFNSRlRva2VuLCB4c3JmSGVhZGVyTmFtZSwgeHNyZkNvb2tpZU5hbWUsIGhlYWRlcnMsIGF1dGh9ID0gbmV3Q29uZmlnO1xuXG4gIG5ld0NvbmZpZy5oZWFkZXJzID0gaGVhZGVycyA9IEF4aW9zSGVhZGVycy5mcm9tKGhlYWRlcnMpO1xuXG4gIG5ld0NvbmZpZy51cmwgPSBidWlsZFVSTChidWlsZEZ1bGxQYXRoKG5ld0NvbmZpZy5iYXNlVVJMLCBuZXdDb25maWcudXJsLCBuZXdDb25maWcuYWxsb3dBYnNvbHV0ZVVybHMpLCBjb25maWcucGFyYW1zLCBjb25maWcucGFyYW1zU2VyaWFsaXplcik7XG5cbiAgLy8gSFRUUCBiYXNpYyBhdXRoZW50aWNhdGlvblxuICBpZiAoYXV0aCkge1xuICAgIGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0Jhc2ljICcgK1xuICAgICAgYnRvYSgoYXV0aC51c2VybmFtZSB8fCAnJykgKyAnOicgKyAoYXV0aC5wYXNzd29yZCA/IHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChhdXRoLnBhc3N3b3JkKSkgOiAnJykpXG4gICAgKTtcbiAgfVxuXG4gIGxldCBjb250ZW50VHlwZTtcblxuICBpZiAodXRpbHMuaXNGb3JtRGF0YShkYXRhKSkge1xuICAgIGlmIChwbGF0Zm9ybS5oYXNTdGFuZGFyZEJyb3dzZXJFbnYgfHwgcGxhdGZvcm0uaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KSB7XG4gICAgICBoZWFkZXJzLnNldENvbnRlbnRUeXBlKHVuZGVmaW5lZCk7IC8vIExldCB0aGUgYnJvd3NlciBzZXQgaXRcbiAgICB9IGVsc2UgaWYgKChjb250ZW50VHlwZSA9IGhlYWRlcnMuZ2V0Q29udGVudFR5cGUoKSkgIT09IGZhbHNlKSB7XG4gICAgICAvLyBmaXggc2VtaWNvbG9uIGR1cGxpY2F0aW9uIGlzc3VlIGZvciBSZWFjdE5hdGl2ZSBGb3JtRGF0YSBpbXBsZW1lbnRhdGlvblxuICAgICAgY29uc3QgW3R5cGUsIC4uLnRva2Vuc10gPSBjb250ZW50VHlwZSA/IGNvbnRlbnRUeXBlLnNwbGl0KCc7JykubWFwKHRva2VuID0+IHRva2VuLnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pIDogW107XG4gICAgICBoZWFkZXJzLnNldENvbnRlbnRUeXBlKFt0eXBlIHx8ICdtdWx0aXBhcnQvZm9ybS1kYXRhJywgLi4udG9rZW5zXS5qb2luKCc7ICcpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgeHNyZiBoZWFkZXJcbiAgLy8gVGhpcyBpcyBvbmx5IGRvbmUgaWYgcnVubmluZyBpbiBhIHN0YW5kYXJkIGJyb3dzZXIgZW52aXJvbm1lbnQuXG4gIC8vIFNwZWNpZmljYWxseSBub3QgaWYgd2UncmUgaW4gYSB3ZWIgd29ya2VyLCBvciByZWFjdC1uYXRpdmUuXG5cbiAgaWYgKHBsYXRmb3JtLmhhc1N0YW5kYXJkQnJvd3NlckVudikge1xuICAgIHdpdGhYU1JGVG9rZW4gJiYgdXRpbHMuaXNGdW5jdGlvbih3aXRoWFNSRlRva2VuKSAmJiAod2l0aFhTUkZUb2tlbiA9IHdpdGhYU1JGVG9rZW4obmV3Q29uZmlnKSk7XG5cbiAgICBpZiAod2l0aFhTUkZUb2tlbiB8fCAod2l0aFhTUkZUb2tlbiAhPT0gZmFsc2UgJiYgaXNVUkxTYW1lT3JpZ2luKG5ld0NvbmZpZy51cmwpKSkge1xuICAgICAgLy8gQWRkIHhzcmYgaGVhZGVyXG4gICAgICBjb25zdCB4c3JmVmFsdWUgPSB4c3JmSGVhZGVyTmFtZSAmJiB4c3JmQ29va2llTmFtZSAmJiBjb29raWVzLnJlYWQoeHNyZkNvb2tpZU5hbWUpO1xuXG4gICAgICBpZiAoeHNyZlZhbHVlKSB7XG4gICAgICAgIGhlYWRlcnMuc2V0KHhzcmZIZWFkZXJOYW1lLCB4c3JmVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXdDb25maWc7XG59XG5cbiIsICJpbXBvcnQgdXRpbHMgZnJvbSAnLi8uLi91dGlscy5qcyc7XG5pbXBvcnQgc2V0dGxlIGZyb20gJy4vLi4vY29yZS9zZXR0bGUuanMnO1xuaW1wb3J0IHRyYW5zaXRpb25hbERlZmF1bHRzIGZyb20gJy4uL2RlZmF1bHRzL3RyYW5zaXRpb25hbC5qcyc7XG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tICcuLi9jb3JlL0F4aW9zRXJyb3IuanMnO1xuaW1wb3J0IENhbmNlbGVkRXJyb3IgZnJvbSAnLi4vY2FuY2VsL0NhbmNlbGVkRXJyb3IuanMnO1xuaW1wb3J0IHBhcnNlUHJvdG9jb2wgZnJvbSAnLi4vaGVscGVycy9wYXJzZVByb3RvY29sLmpzJztcbmltcG9ydCBwbGF0Zm9ybSBmcm9tICcuLi9wbGF0Zm9ybS9pbmRleC5qcyc7XG5pbXBvcnQgQXhpb3NIZWFkZXJzIGZyb20gJy4uL2NvcmUvQXhpb3NIZWFkZXJzLmpzJztcbmltcG9ydCB7cHJvZ3Jlc3NFdmVudFJlZHVjZXJ9IGZyb20gJy4uL2hlbHBlcnMvcHJvZ3Jlc3NFdmVudFJlZHVjZXIuanMnO1xuaW1wb3J0IHJlc29sdmVDb25maWcgZnJvbSBcIi4uL2hlbHBlcnMvcmVzb2x2ZUNvbmZpZy5qc1wiO1xuXG5jb25zdCBpc1hIUkFkYXB0ZXJTdXBwb3J0ZWQgPSB0eXBlb2YgWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnO1xuXG5leHBvcnQgZGVmYXVsdCBpc1hIUkFkYXB0ZXJTdXBwb3J0ZWQgJiYgZnVuY3Rpb24gKGNvbmZpZykge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gZGlzcGF0Y2hYaHJSZXF1ZXN0KHJlc29sdmUsIHJlamVjdCkge1xuICAgIGNvbnN0IF9jb25maWcgPSByZXNvbHZlQ29uZmlnKGNvbmZpZyk7XG4gICAgbGV0IHJlcXVlc3REYXRhID0gX2NvbmZpZy5kYXRhO1xuICAgIGNvbnN0IHJlcXVlc3RIZWFkZXJzID0gQXhpb3NIZWFkZXJzLmZyb20oX2NvbmZpZy5oZWFkZXJzKS5ub3JtYWxpemUoKTtcbiAgICBsZXQge3Jlc3BvbnNlVHlwZSwgb25VcGxvYWRQcm9ncmVzcywgb25Eb3dubG9hZFByb2dyZXNzfSA9IF9jb25maWc7XG4gICAgbGV0IG9uQ2FuY2VsZWQ7XG4gICAgbGV0IHVwbG9hZFRocm90dGxlZCwgZG93bmxvYWRUaHJvdHRsZWQ7XG4gICAgbGV0IGZsdXNoVXBsb2FkLCBmbHVzaERvd25sb2FkO1xuXG4gICAgZnVuY3Rpb24gZG9uZSgpIHtcbiAgICAgIGZsdXNoVXBsb2FkICYmIGZsdXNoVXBsb2FkKCk7IC8vIGZsdXNoIGV2ZW50c1xuICAgICAgZmx1c2hEb3dubG9hZCAmJiBmbHVzaERvd25sb2FkKCk7IC8vIGZsdXNoIGV2ZW50c1xuXG4gICAgICBfY29uZmlnLmNhbmNlbFRva2VuICYmIF9jb25maWcuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUob25DYW5jZWxlZCk7XG5cbiAgICAgIF9jb25maWcuc2lnbmFsICYmIF9jb25maWcuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25DYW5jZWxlZCk7XG4gICAgfVxuXG4gICAgbGV0IHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICAgIHJlcXVlc3Qub3BlbihfY29uZmlnLm1ldGhvZC50b1VwcGVyQ2FzZSgpLCBfY29uZmlnLnVybCwgdHJ1ZSk7XG5cbiAgICAvLyBTZXQgdGhlIHJlcXVlc3QgdGltZW91dCBpbiBNU1xuICAgIHJlcXVlc3QudGltZW91dCA9IF9jb25maWcudGltZW91dDtcblxuICAgIGZ1bmN0aW9uIG9ubG9hZGVuZCgpIHtcbiAgICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyBQcmVwYXJlIHRoZSByZXNwb25zZVxuICAgICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzID0gQXhpb3NIZWFkZXJzLmZyb20oXG4gICAgICAgICdnZXRBbGxSZXNwb25zZUhlYWRlcnMnIGluIHJlcXVlc3QgJiYgcmVxdWVzdC5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9ICFyZXNwb25zZVR5cGUgfHwgcmVzcG9uc2VUeXBlID09PSAndGV4dCcgfHwgcmVzcG9uc2VUeXBlID09PSAnanNvbicgP1xuICAgICAgICByZXF1ZXN0LnJlc3BvbnNlVGV4dCA6IHJlcXVlc3QucmVzcG9uc2U7XG4gICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgZGF0YTogcmVzcG9uc2VEYXRhLFxuICAgICAgICBzdGF0dXM6IHJlcXVlc3Quc3RhdHVzLFxuICAgICAgICBzdGF0dXNUZXh0OiByZXF1ZXN0LnN0YXR1c1RleHQsXG4gICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICByZXF1ZXN0XG4gICAgICB9O1xuXG4gICAgICBzZXR0bGUoZnVuY3Rpb24gX3Jlc29sdmUodmFsdWUpIHtcbiAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH0sIGZ1bmN0aW9uIF9yZWplY3QoZXJyKSB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICBkb25lKCk7XG4gICAgICB9LCByZXNwb25zZSk7XG5cbiAgICAgIC8vIENsZWFuIHVwIHJlcXVlc3RcbiAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICgnb25sb2FkZW5kJyBpbiByZXF1ZXN0KSB7XG4gICAgICAvLyBVc2Ugb25sb2FkZW5kIGlmIGF2YWlsYWJsZVxuICAgICAgcmVxdWVzdC5vbmxvYWRlbmQgPSBvbmxvYWRlbmQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIExpc3RlbiBmb3IgcmVhZHkgc3RhdGUgdG8gZW11bGF0ZSBvbmxvYWRlbmRcbiAgICAgIHJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gaGFuZGxlTG9hZCgpIHtcbiAgICAgICAgaWYgKCFyZXF1ZXN0IHx8IHJlcXVlc3QucmVhZHlTdGF0ZSAhPT0gNCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSByZXF1ZXN0IGVycm9yZWQgb3V0IGFuZCB3ZSBkaWRuJ3QgZ2V0IGEgcmVzcG9uc2UsIHRoaXMgd2lsbCBiZVxuICAgICAgICAvLyBoYW5kbGVkIGJ5IG9uZXJyb3IgaW5zdGVhZFxuICAgICAgICAvLyBXaXRoIG9uZSBleGNlcHRpb246IHJlcXVlc3QgdGhhdCB1c2luZyBmaWxlOiBwcm90b2NvbCwgbW9zdCBicm93c2Vyc1xuICAgICAgICAvLyB3aWxsIHJldHVybiBzdGF0dXMgYXMgMCBldmVuIHRob3VnaCBpdCdzIGEgc3VjY2Vzc2Z1bCByZXF1ZXN0XG4gICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1cyA9PT0gMCAmJiAhKHJlcXVlc3QucmVzcG9uc2VVUkwgJiYgcmVxdWVzdC5yZXNwb25zZVVSTC5pbmRleE9mKCdmaWxlOicpID09PSAwKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyByZWFkeXN0YXRlIGhhbmRsZXIgaXMgY2FsbGluZyBiZWZvcmUgb25lcnJvciBvciBvbnRpbWVvdXQgaGFuZGxlcnMsXG4gICAgICAgIC8vIHNvIHdlIHNob3VsZCBjYWxsIG9ubG9hZGVuZCBvbiB0aGUgbmV4dCAndGljaydcbiAgICAgICAgc2V0VGltZW91dChvbmxvYWRlbmQpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgYnJvd3NlciByZXF1ZXN0IGNhbmNlbGxhdGlvbiAoYXMgb3Bwb3NlZCB0byBhIG1hbnVhbCBjYW5jZWxsYXRpb24pXG4gICAgcmVxdWVzdC5vbmFib3J0ID0gZnVuY3Rpb24gaGFuZGxlQWJvcnQoKSB7XG4gICAgICBpZiAoIXJlcXVlc3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZWplY3QobmV3IEF4aW9zRXJyb3IoJ1JlcXVlc3QgYWJvcnRlZCcsIEF4aW9zRXJyb3IuRUNPTk5BQk9SVEVELCBjb25maWcsIHJlcXVlc3QpKTtcblxuICAgICAgLy8gQ2xlYW4gdXAgcmVxdWVzdFxuICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgfTtcblxuICAgIC8vIEhhbmRsZSBsb3cgbGV2ZWwgbmV0d29yayBlcnJvcnNcbiAgICByZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbiBoYW5kbGVFcnJvcigpIHtcbiAgICAgIC8vIFJlYWwgZXJyb3JzIGFyZSBoaWRkZW4gZnJvbSB1cyBieSB0aGUgYnJvd3NlclxuICAgICAgLy8gb25lcnJvciBzaG91bGQgb25seSBmaXJlIGlmIGl0J3MgYSBuZXR3b3JrIGVycm9yXG4gICAgICByZWplY3QobmV3IEF4aW9zRXJyb3IoJ05ldHdvcmsgRXJyb3InLCBBeGlvc0Vycm9yLkVSUl9ORVRXT1JLLCBjb25maWcsIHJlcXVlc3QpKTtcblxuICAgICAgLy8gQ2xlYW4gdXAgcmVxdWVzdFxuICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgfTtcblxuICAgIC8vIEhhbmRsZSB0aW1lb3V0XG4gICAgcmVxdWVzdC5vbnRpbWVvdXQgPSBmdW5jdGlvbiBoYW5kbGVUaW1lb3V0KCkge1xuICAgICAgbGV0IHRpbWVvdXRFcnJvck1lc3NhZ2UgPSBfY29uZmlnLnRpbWVvdXQgPyAndGltZW91dCBvZiAnICsgX2NvbmZpZy50aW1lb3V0ICsgJ21zIGV4Y2VlZGVkJyA6ICd0aW1lb3V0IGV4Y2VlZGVkJztcbiAgICAgIGNvbnN0IHRyYW5zaXRpb25hbCA9IF9jb25maWcudHJhbnNpdGlvbmFsIHx8IHRyYW5zaXRpb25hbERlZmF1bHRzO1xuICAgICAgaWYgKF9jb25maWcudGltZW91dEVycm9yTWVzc2FnZSkge1xuICAgICAgICB0aW1lb3V0RXJyb3JNZXNzYWdlID0gX2NvbmZpZy50aW1lb3V0RXJyb3JNZXNzYWdlO1xuICAgICAgfVxuICAgICAgcmVqZWN0KG5ldyBBeGlvc0Vycm9yKFxuICAgICAgICB0aW1lb3V0RXJyb3JNZXNzYWdlLFxuICAgICAgICB0cmFuc2l0aW9uYWwuY2xhcmlmeVRpbWVvdXRFcnJvciA/IEF4aW9zRXJyb3IuRVRJTUVET1VUIDogQXhpb3NFcnJvci5FQ09OTkFCT1JURUQsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgcmVxdWVzdCkpO1xuXG4gICAgICAvLyBDbGVhbiB1cCByZXF1ZXN0XG4gICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICB9O1xuXG4gICAgLy8gUmVtb3ZlIENvbnRlbnQtVHlwZSBpZiBkYXRhIGlzIHVuZGVmaW5lZFxuICAgIHJlcXVlc3REYXRhID09PSB1bmRlZmluZWQgJiYgcmVxdWVzdEhlYWRlcnMuc2V0Q29udGVudFR5cGUobnVsbCk7XG5cbiAgICAvLyBBZGQgaGVhZGVycyB0byB0aGUgcmVxdWVzdFxuICAgIGlmICgnc2V0UmVxdWVzdEhlYWRlcicgaW4gcmVxdWVzdCkge1xuICAgICAgdXRpbHMuZm9yRWFjaChyZXF1ZXN0SGVhZGVycy50b0pTT04oKSwgZnVuY3Rpb24gc2V0UmVxdWVzdEhlYWRlcih2YWwsIGtleSkge1xuICAgICAgICByZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoa2V5LCB2YWwpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIHdpdGhDcmVkZW50aWFscyB0byByZXF1ZXN0IGlmIG5lZWRlZFxuICAgIGlmICghdXRpbHMuaXNVbmRlZmluZWQoX2NvbmZpZy53aXRoQ3JlZGVudGlhbHMpKSB7XG4gICAgICByZXF1ZXN0LndpdGhDcmVkZW50aWFscyA9ICEhX2NvbmZpZy53aXRoQ3JlZGVudGlhbHM7XG4gICAgfVxuXG4gICAgLy8gQWRkIHJlc3BvbnNlVHlwZSB0byByZXF1ZXN0IGlmIG5lZWRlZFxuICAgIGlmIChyZXNwb25zZVR5cGUgJiYgcmVzcG9uc2VUeXBlICE9PSAnanNvbicpIHtcbiAgICAgIHJlcXVlc3QucmVzcG9uc2VUeXBlID0gX2NvbmZpZy5yZXNwb25zZVR5cGU7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHByb2dyZXNzIGlmIG5lZWRlZFxuICAgIGlmIChvbkRvd25sb2FkUHJvZ3Jlc3MpIHtcbiAgICAgIChbZG93bmxvYWRUaHJvdHRsZWQsIGZsdXNoRG93bmxvYWRdID0gcHJvZ3Jlc3NFdmVudFJlZHVjZXIob25Eb3dubG9hZFByb2dyZXNzLCB0cnVlKSk7XG4gICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoJ3Byb2dyZXNzJywgZG93bmxvYWRUaHJvdHRsZWQpO1xuICAgIH1cblxuICAgIC8vIE5vdCBhbGwgYnJvd3NlcnMgc3VwcG9ydCB1cGxvYWQgZXZlbnRzXG4gICAgaWYgKG9uVXBsb2FkUHJvZ3Jlc3MgJiYgcmVxdWVzdC51cGxvYWQpIHtcbiAgICAgIChbdXBsb2FkVGhyb3R0bGVkLCBmbHVzaFVwbG9hZF0gPSBwcm9ncmVzc0V2ZW50UmVkdWNlcihvblVwbG9hZFByb2dyZXNzKSk7XG5cbiAgICAgIHJlcXVlc3QudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoJ3Byb2dyZXNzJywgdXBsb2FkVGhyb3R0bGVkKTtcblxuICAgICAgcmVxdWVzdC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVuZCcsIGZsdXNoVXBsb2FkKTtcbiAgICB9XG5cbiAgICBpZiAoX2NvbmZpZy5jYW5jZWxUb2tlbiB8fCBfY29uZmlnLnNpZ25hbCkge1xuICAgICAgLy8gSGFuZGxlIGNhbmNlbGxhdGlvblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgICAgIG9uQ2FuY2VsZWQgPSBjYW5jZWwgPT4ge1xuICAgICAgICBpZiAoIXJlcXVlc3QpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmVqZWN0KCFjYW5jZWwgfHwgY2FuY2VsLnR5cGUgPyBuZXcgQ2FuY2VsZWRFcnJvcihudWxsLCBjb25maWcsIHJlcXVlc3QpIDogY2FuY2VsKTtcbiAgICAgICAgcmVxdWVzdC5hYm9ydCgpO1xuICAgICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICAgIH07XG5cbiAgICAgIF9jb25maWcuY2FuY2VsVG9rZW4gJiYgX2NvbmZpZy5jYW5jZWxUb2tlbi5zdWJzY3JpYmUob25DYW5jZWxlZCk7XG4gICAgICBpZiAoX2NvbmZpZy5zaWduYWwpIHtcbiAgICAgICAgX2NvbmZpZy5zaWduYWwuYWJvcnRlZCA/IG9uQ2FuY2VsZWQoKSA6IF9jb25maWcuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25DYW5jZWxlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcHJvdG9jb2wgPSBwYXJzZVByb3RvY29sKF9jb25maWcudXJsKTtcblxuICAgIGlmIChwcm90b2NvbCAmJiBwbGF0Zm9ybS5wcm90b2NvbHMuaW5kZXhPZihwcm90b2NvbCkgPT09IC0xKSB7XG4gICAgICByZWplY3QobmV3IEF4aW9zRXJyb3IoJ1Vuc3VwcG9ydGVkIHByb3RvY29sICcgKyBwcm90b2NvbCArICc6JywgQXhpb3NFcnJvci5FUlJfQkFEX1JFUVVFU1QsIGNvbmZpZykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuXG4gICAgLy8gU2VuZCB0aGUgcmVxdWVzdFxuICAgIHJlcXVlc3Quc2VuZChyZXF1ZXN0RGF0YSB8fCBudWxsKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IENhbmNlbGVkRXJyb3IgZnJvbSBcIi4uL2NhbmNlbC9DYW5jZWxlZEVycm9yLmpzXCI7XG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tIFwiLi4vY29yZS9BeGlvc0Vycm9yLmpzXCI7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuXG5jb25zdCBjb21wb3NlU2lnbmFscyA9IChzaWduYWxzLCB0aW1lb3V0KSA9PiB7XG4gIGNvbnN0IHtsZW5ndGh9ID0gKHNpZ25hbHMgPSBzaWduYWxzID8gc2lnbmFscy5maWx0ZXIoQm9vbGVhbikgOiBbXSk7XG5cbiAgaWYgKHRpbWVvdXQgfHwgbGVuZ3RoKSB7XG4gICAgbGV0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICBsZXQgYWJvcnRlZDtcblxuICAgIGNvbnN0IG9uYWJvcnQgPSBmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICBpZiAoIWFib3J0ZWQpIHtcbiAgICAgICAgYWJvcnRlZCA9IHRydWU7XG4gICAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGNvbnN0IGVyciA9IHJlYXNvbiBpbnN0YW5jZW9mIEVycm9yID8gcmVhc29uIDogdGhpcy5yZWFzb247XG4gICAgICAgIGNvbnRyb2xsZXIuYWJvcnQoZXJyIGluc3RhbmNlb2YgQXhpb3NFcnJvciA/IGVyciA6IG5ldyBDYW5jZWxlZEVycm9yKGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBlcnIpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgdGltZXIgPSB0aW1lb3V0ICYmIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGltZXIgPSBudWxsO1xuICAgICAgb25hYm9ydChuZXcgQXhpb3NFcnJvcihgdGltZW91dCAke3RpbWVvdXR9IG9mIG1zIGV4Y2VlZGVkYCwgQXhpb3NFcnJvci5FVElNRURPVVQpKVxuICAgIH0sIHRpbWVvdXQpXG5cbiAgICBjb25zdCB1bnN1YnNjcmliZSA9ICgpID0+IHtcbiAgICAgIGlmIChzaWduYWxzKSB7XG4gICAgICAgIHRpbWVyICYmIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgIHRpbWVyID0gbnVsbDtcbiAgICAgICAgc2lnbmFscy5mb3JFYWNoKHNpZ25hbCA9PiB7XG4gICAgICAgICAgc2lnbmFsLnVuc3Vic2NyaWJlID8gc2lnbmFsLnVuc3Vic2NyaWJlKG9uYWJvcnQpIDogc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25hYm9ydCk7XG4gICAgICAgIH0pO1xuICAgICAgICBzaWduYWxzID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzaWduYWxzLmZvckVhY2goKHNpZ25hbCkgPT4gc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25hYm9ydCkpO1xuXG4gICAgY29uc3Qge3NpZ25hbH0gPSBjb250cm9sbGVyO1xuXG4gICAgc2lnbmFsLnVuc3Vic2NyaWJlID0gKCkgPT4gdXRpbHMuYXNhcCh1bnN1YnNjcmliZSk7XG5cbiAgICByZXR1cm4gc2lnbmFsO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvc2VTaWduYWxzO1xuIiwgIlxuZXhwb3J0IGNvbnN0IHN0cmVhbUNodW5rID0gZnVuY3Rpb24qIChjaHVuaywgY2h1bmtTaXplKSB7XG4gIGxldCBsZW4gPSBjaHVuay5ieXRlTGVuZ3RoO1xuXG4gIGlmICghY2h1bmtTaXplIHx8IGxlbiA8IGNodW5rU2l6ZSkge1xuICAgIHlpZWxkIGNodW5rO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBwb3MgPSAwO1xuICBsZXQgZW5kO1xuXG4gIHdoaWxlIChwb3MgPCBsZW4pIHtcbiAgICBlbmQgPSBwb3MgKyBjaHVua1NpemU7XG4gICAgeWllbGQgY2h1bmsuc2xpY2UocG9zLCBlbmQpO1xuICAgIHBvcyA9IGVuZDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcmVhZEJ5dGVzID0gYXN5bmMgZnVuY3Rpb24qIChpdGVyYWJsZSwgY2h1bmtTaXplKSB7XG4gIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2YgcmVhZFN0cmVhbShpdGVyYWJsZSkpIHtcbiAgICB5aWVsZCogc3RyZWFtQ2h1bmsoY2h1bmssIGNodW5rU2l6ZSk7XG4gIH1cbn1cblxuY29uc3QgcmVhZFN0cmVhbSA9IGFzeW5jIGZ1bmN0aW9uKiAoc3RyZWFtKSB7XG4gIGlmIChzdHJlYW1bU3ltYm9sLmFzeW5jSXRlcmF0b3JdKSB7XG4gICAgeWllbGQqIHN0cmVhbTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gIHRyeSB7XG4gICAgZm9yICg7Oykge1xuICAgICAgY29uc3Qge2RvbmUsIHZhbHVlfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICBpZiAoZG9uZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHlpZWxkIHZhbHVlO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCByZWFkZXIuY2FuY2VsKCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHRyYWNrU3RyZWFtID0gKHN0cmVhbSwgY2h1bmtTaXplLCBvblByb2dyZXNzLCBvbkZpbmlzaCkgPT4ge1xuICBjb25zdCBpdGVyYXRvciA9IHJlYWRCeXRlcyhzdHJlYW0sIGNodW5rU2l6ZSk7XG5cbiAgbGV0IGJ5dGVzID0gMDtcbiAgbGV0IGRvbmU7XG4gIGxldCBfb25GaW5pc2ggPSAoZSkgPT4ge1xuICAgIGlmICghZG9uZSkge1xuICAgICAgZG9uZSA9IHRydWU7XG4gICAgICBvbkZpbmlzaCAmJiBvbkZpbmlzaChlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICBhc3luYyBwdWxsKGNvbnRyb2xsZXIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHtkb25lLCB2YWx1ZX0gPSBhd2FpdCBpdGVyYXRvci5uZXh0KCk7XG5cbiAgICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgIF9vbkZpbmlzaCgpO1xuICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGVuID0gdmFsdWUuYnl0ZUxlbmd0aDtcbiAgICAgICAgaWYgKG9uUHJvZ3Jlc3MpIHtcbiAgICAgICAgICBsZXQgbG9hZGVkQnl0ZXMgPSBieXRlcyArPSBsZW47XG4gICAgICAgICAgb25Qcm9ncmVzcyhsb2FkZWRCeXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHZhbHVlKSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgX29uRmluaXNoKGVycik7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9LFxuICAgIGNhbmNlbChyZWFzb24pIHtcbiAgICAgIF9vbkZpbmlzaChyZWFzb24pO1xuICAgICAgcmV0dXJuIGl0ZXJhdG9yLnJldHVybigpO1xuICAgIH1cbiAgfSwge1xuICAgIGhpZ2hXYXRlck1hcms6IDJcbiAgfSlcbn1cbiIsICJpbXBvcnQgcGxhdGZvcm0gZnJvbSBcIi4uL3BsYXRmb3JtL2luZGV4LmpzXCI7XG5pbXBvcnQgdXRpbHMgZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tIFwiLi4vY29yZS9BeGlvc0Vycm9yLmpzXCI7XG5pbXBvcnQgY29tcG9zZVNpZ25hbHMgZnJvbSBcIi4uL2hlbHBlcnMvY29tcG9zZVNpZ25hbHMuanNcIjtcbmltcG9ydCB7dHJhY2tTdHJlYW19IGZyb20gXCIuLi9oZWxwZXJzL3RyYWNrU3RyZWFtLmpzXCI7XG5pbXBvcnQgQXhpb3NIZWFkZXJzIGZyb20gXCIuLi9jb3JlL0F4aW9zSGVhZGVycy5qc1wiO1xuaW1wb3J0IHtwcm9ncmVzc0V2ZW50UmVkdWNlciwgcHJvZ3Jlc3NFdmVudERlY29yYXRvciwgYXN5bmNEZWNvcmF0b3J9IGZyb20gXCIuLi9oZWxwZXJzL3Byb2dyZXNzRXZlbnRSZWR1Y2VyLmpzXCI7XG5pbXBvcnQgcmVzb2x2ZUNvbmZpZyBmcm9tIFwiLi4vaGVscGVycy9yZXNvbHZlQ29uZmlnLmpzXCI7XG5pbXBvcnQgc2V0dGxlIGZyb20gXCIuLi9jb3JlL3NldHRsZS5qc1wiO1xuXG5jb25zdCBpc0ZldGNoU3VwcG9ydGVkID0gdHlwZW9mIGZldGNoID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBSZXF1ZXN0ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBSZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJztcbmNvbnN0IGlzUmVhZGFibGVTdHJlYW1TdXBwb3J0ZWQgPSBpc0ZldGNoU3VwcG9ydGVkICYmIHR5cGVvZiBSZWFkYWJsZVN0cmVhbSA9PT0gJ2Z1bmN0aW9uJztcblxuLy8gdXNlZCBvbmx5IGluc2lkZSB0aGUgZmV0Y2ggYWRhcHRlclxuY29uc3QgZW5jb2RlVGV4dCA9IGlzRmV0Y2hTdXBwb3J0ZWQgJiYgKHR5cGVvZiBUZXh0RW5jb2RlciA9PT0gJ2Z1bmN0aW9uJyA/XG4gICAgKChlbmNvZGVyKSA9PiAoc3RyKSA9PiBlbmNvZGVyLmVuY29kZShzdHIpKShuZXcgVGV4dEVuY29kZXIoKSkgOlxuICAgIGFzeW5jIChzdHIpID0+IG5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBSZXNwb25zZShzdHIpLmFycmF5QnVmZmVyKCkpXG4pO1xuXG5jb25zdCB0ZXN0ID0gKGZuLCAuLi5hcmdzKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZm4oLi4uYXJncyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5jb25zdCBzdXBwb3J0c1JlcXVlc3RTdHJlYW0gPSBpc1JlYWRhYmxlU3RyZWFtU3VwcG9ydGVkICYmIHRlc3QoKCkgPT4ge1xuICBsZXQgZHVwbGV4QWNjZXNzZWQgPSBmYWxzZTtcblxuICBjb25zdCBoYXNDb250ZW50VHlwZSA9IG5ldyBSZXF1ZXN0KHBsYXRmb3JtLm9yaWdpbiwge1xuICAgIGJvZHk6IG5ldyBSZWFkYWJsZVN0cmVhbSgpLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGdldCBkdXBsZXgoKSB7XG4gICAgICBkdXBsZXhBY2Nlc3NlZCA9IHRydWU7XG4gICAgICByZXR1cm4gJ2hhbGYnO1xuICAgIH0sXG4gIH0pLmhlYWRlcnMuaGFzKCdDb250ZW50LVR5cGUnKTtcblxuICByZXR1cm4gZHVwbGV4QWNjZXNzZWQgJiYgIWhhc0NvbnRlbnRUeXBlO1xufSk7XG5cbmNvbnN0IERFRkFVTFRfQ0hVTktfU0laRSA9IDY0ICogMTAyNDtcblxuY29uc3Qgc3VwcG9ydHNSZXNwb25zZVN0cmVhbSA9IGlzUmVhZGFibGVTdHJlYW1TdXBwb3J0ZWQgJiZcbiAgdGVzdCgoKSA9PiB1dGlscy5pc1JlYWRhYmxlU3RyZWFtKG5ldyBSZXNwb25zZSgnJykuYm9keSkpO1xuXG5cbmNvbnN0IHJlc29sdmVycyA9IHtcbiAgc3RyZWFtOiBzdXBwb3J0c1Jlc3BvbnNlU3RyZWFtICYmICgocmVzKSA9PiByZXMuYm9keSlcbn07XG5cbmlzRmV0Y2hTdXBwb3J0ZWQgJiYgKCgocmVzKSA9PiB7XG4gIFsndGV4dCcsICdhcnJheUJ1ZmZlcicsICdibG9iJywgJ2Zvcm1EYXRhJywgJ3N0cmVhbSddLmZvckVhY2godHlwZSA9PiB7XG4gICAgIXJlc29sdmVyc1t0eXBlXSAmJiAocmVzb2x2ZXJzW3R5cGVdID0gdXRpbHMuaXNGdW5jdGlvbihyZXNbdHlwZV0pID8gKHJlcykgPT4gcmVzW3R5cGVdKCkgOlxuICAgICAgKF8sIGNvbmZpZykgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgQXhpb3NFcnJvcihgUmVzcG9uc2UgdHlwZSAnJHt0eXBlfScgaXMgbm90IHN1cHBvcnRlZGAsIEF4aW9zRXJyb3IuRVJSX05PVF9TVVBQT1JULCBjb25maWcpO1xuICAgICAgfSlcbiAgfSk7XG59KShuZXcgUmVzcG9uc2UpKTtcblxuY29uc3QgZ2V0Qm9keUxlbmd0aCA9IGFzeW5jIChib2R5KSA9PiB7XG4gIGlmIChib2R5ID09IG51bGwpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGlmKHV0aWxzLmlzQmxvYihib2R5KSkge1xuICAgIHJldHVybiBib2R5LnNpemU7XG4gIH1cblxuICBpZih1dGlscy5pc1NwZWNDb21wbGlhbnRGb3JtKGJvZHkpKSB7XG4gICAgY29uc3QgX3JlcXVlc3QgPSBuZXcgUmVxdWVzdChwbGF0Zm9ybS5vcmlnaW4sIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keSxcbiAgICB9KTtcbiAgICByZXR1cm4gKGF3YWl0IF9yZXF1ZXN0LmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7XG4gIH1cblxuICBpZih1dGlscy5pc0FycmF5QnVmZmVyVmlldyhib2R5KSB8fCB1dGlscy5pc0FycmF5QnVmZmVyKGJvZHkpKSB7XG4gICAgcmV0dXJuIGJvZHkuYnl0ZUxlbmd0aDtcbiAgfVxuXG4gIGlmKHV0aWxzLmlzVVJMU2VhcmNoUGFyYW1zKGJvZHkpKSB7XG4gICAgYm9keSA9IGJvZHkgKyAnJztcbiAgfVxuXG4gIGlmKHV0aWxzLmlzU3RyaW5nKGJvZHkpKSB7XG4gICAgcmV0dXJuIChhd2FpdCBlbmNvZGVUZXh0KGJvZHkpKS5ieXRlTGVuZ3RoO1xuICB9XG59XG5cbmNvbnN0IHJlc29sdmVCb2R5TGVuZ3RoID0gYXN5bmMgKGhlYWRlcnMsIGJvZHkpID0+IHtcbiAgY29uc3QgbGVuZ3RoID0gdXRpbHMudG9GaW5pdGVOdW1iZXIoaGVhZGVycy5nZXRDb250ZW50TGVuZ3RoKCkpO1xuXG4gIHJldHVybiBsZW5ndGggPT0gbnVsbCA/IGdldEJvZHlMZW5ndGgoYm9keSkgOiBsZW5ndGg7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzRmV0Y2hTdXBwb3J0ZWQgJiYgKGFzeW5jIChjb25maWcpID0+IHtcbiAgbGV0IHtcbiAgICB1cmwsXG4gICAgbWV0aG9kLFxuICAgIGRhdGEsXG4gICAgc2lnbmFsLFxuICAgIGNhbmNlbFRva2VuLFxuICAgIHRpbWVvdXQsXG4gICAgb25Eb3dubG9hZFByb2dyZXNzLFxuICAgIG9uVXBsb2FkUHJvZ3Jlc3MsXG4gICAgcmVzcG9uc2VUeXBlLFxuICAgIGhlYWRlcnMsXG4gICAgd2l0aENyZWRlbnRpYWxzID0gJ3NhbWUtb3JpZ2luJyxcbiAgICBmZXRjaE9wdGlvbnNcbiAgfSA9IHJlc29sdmVDb25maWcoY29uZmlnKTtcblxuICByZXNwb25zZVR5cGUgPSByZXNwb25zZVR5cGUgPyAocmVzcG9uc2VUeXBlICsgJycpLnRvTG93ZXJDYXNlKCkgOiAndGV4dCc7XG5cbiAgbGV0IGNvbXBvc2VkU2lnbmFsID0gY29tcG9zZVNpZ25hbHMoW3NpZ25hbCwgY2FuY2VsVG9rZW4gJiYgY2FuY2VsVG9rZW4udG9BYm9ydFNpZ25hbCgpXSwgdGltZW91dCk7XG5cbiAgbGV0IHJlcXVlc3Q7XG5cbiAgY29uc3QgdW5zdWJzY3JpYmUgPSBjb21wb3NlZFNpZ25hbCAmJiBjb21wb3NlZFNpZ25hbC51bnN1YnNjcmliZSAmJiAoKCkgPT4ge1xuICAgICAgY29tcG9zZWRTaWduYWwudW5zdWJzY3JpYmUoKTtcbiAgfSk7XG5cbiAgbGV0IHJlcXVlc3RDb250ZW50TGVuZ3RoO1xuXG4gIHRyeSB7XG4gICAgaWYgKFxuICAgICAgb25VcGxvYWRQcm9ncmVzcyAmJiBzdXBwb3J0c1JlcXVlc3RTdHJlYW0gJiYgbWV0aG9kICE9PSAnZ2V0JyAmJiBtZXRob2QgIT09ICdoZWFkJyAmJlxuICAgICAgKHJlcXVlc3RDb250ZW50TGVuZ3RoID0gYXdhaXQgcmVzb2x2ZUJvZHlMZW5ndGgoaGVhZGVycywgZGF0YSkpICE9PSAwXG4gICAgKSB7XG4gICAgICBsZXQgX3JlcXVlc3QgPSBuZXcgUmVxdWVzdCh1cmwsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIGR1cGxleDogXCJoYWxmXCJcbiAgICAgIH0pO1xuXG4gICAgICBsZXQgY29udGVudFR5cGVIZWFkZXI7XG5cbiAgICAgIGlmICh1dGlscy5pc0Zvcm1EYXRhKGRhdGEpICYmIChjb250ZW50VHlwZUhlYWRlciA9IF9yZXF1ZXN0LmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSkpIHtcbiAgICAgICAgaGVhZGVycy5zZXRDb250ZW50VHlwZShjb250ZW50VHlwZUhlYWRlcilcbiAgICAgIH1cblxuICAgICAgaWYgKF9yZXF1ZXN0LmJvZHkpIHtcbiAgICAgICAgY29uc3QgW29uUHJvZ3Jlc3MsIGZsdXNoXSA9IHByb2dyZXNzRXZlbnREZWNvcmF0b3IoXG4gICAgICAgICAgcmVxdWVzdENvbnRlbnRMZW5ndGgsXG4gICAgICAgICAgcHJvZ3Jlc3NFdmVudFJlZHVjZXIoYXN5bmNEZWNvcmF0b3Iob25VcGxvYWRQcm9ncmVzcykpXG4gICAgICAgICk7XG5cbiAgICAgICAgZGF0YSA9IHRyYWNrU3RyZWFtKF9yZXF1ZXN0LmJvZHksIERFRkFVTFRfQ0hVTktfU0laRSwgb25Qcm9ncmVzcywgZmx1c2gpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdXRpbHMuaXNTdHJpbmcod2l0aENyZWRlbnRpYWxzKSkge1xuICAgICAgd2l0aENyZWRlbnRpYWxzID0gd2l0aENyZWRlbnRpYWxzID8gJ2luY2x1ZGUnIDogJ29taXQnO1xuICAgIH1cblxuICAgIC8vIENsb3VkZmxhcmUgV29ya2VycyB0aHJvd3Mgd2hlbiBjcmVkZW50aWFscyBhcmUgZGVmaW5lZFxuICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2xvdWRmbGFyZS93b3JrZXJkL2lzc3Vlcy85MDJcbiAgICBjb25zdCBpc0NyZWRlbnRpYWxzU3VwcG9ydGVkID0gXCJjcmVkZW50aWFsc1wiIGluIFJlcXVlc3QucHJvdG90eXBlO1xuICAgIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCh1cmwsIHtcbiAgICAgIC4uLmZldGNoT3B0aW9ucyxcbiAgICAgIHNpZ25hbDogY29tcG9zZWRTaWduYWwsXG4gICAgICBtZXRob2Q6IG1ldGhvZC50b1VwcGVyQ2FzZSgpLFxuICAgICAgaGVhZGVyczogaGVhZGVycy5ub3JtYWxpemUoKS50b0pTT04oKSxcbiAgICAgIGJvZHk6IGRhdGEsXG4gICAgICBkdXBsZXg6IFwiaGFsZlwiLFxuICAgICAgY3JlZGVudGlhbHM6IGlzQ3JlZGVudGlhbHNTdXBwb3J0ZWQgPyB3aXRoQ3JlZGVudGlhbHMgOiB1bmRlZmluZWRcbiAgICB9KTtcblxuICAgIGxldCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHJlcXVlc3QpO1xuXG4gICAgY29uc3QgaXNTdHJlYW1SZXNwb25zZSA9IHN1cHBvcnRzUmVzcG9uc2VTdHJlYW0gJiYgKHJlc3BvbnNlVHlwZSA9PT0gJ3N0cmVhbScgfHwgcmVzcG9uc2VUeXBlID09PSAncmVzcG9uc2UnKTtcblxuICAgIGlmIChzdXBwb3J0c1Jlc3BvbnNlU3RyZWFtICYmIChvbkRvd25sb2FkUHJvZ3Jlc3MgfHwgKGlzU3RyZWFtUmVzcG9uc2UgJiYgdW5zdWJzY3JpYmUpKSkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuXG4gICAgICBbJ3N0YXR1cycsICdzdGF0dXNUZXh0JywgJ2hlYWRlcnMnXS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICBvcHRpb25zW3Byb3BdID0gcmVzcG9uc2VbcHJvcF07XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcmVzcG9uc2VDb250ZW50TGVuZ3RoID0gdXRpbHMudG9GaW5pdGVOdW1iZXIocmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtbGVuZ3RoJykpO1xuXG4gICAgICBjb25zdCBbb25Qcm9ncmVzcywgZmx1c2hdID0gb25Eb3dubG9hZFByb2dyZXNzICYmIHByb2dyZXNzRXZlbnREZWNvcmF0b3IoXG4gICAgICAgIHJlc3BvbnNlQ29udGVudExlbmd0aCxcbiAgICAgICAgcHJvZ3Jlc3NFdmVudFJlZHVjZXIoYXN5bmNEZWNvcmF0b3Iob25Eb3dubG9hZFByb2dyZXNzKSwgdHJ1ZSlcbiAgICAgICkgfHwgW107XG5cbiAgICAgIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKFxuICAgICAgICB0cmFja1N0cmVhbShyZXNwb25zZS5ib2R5LCBERUZBVUxUX0NIVU5LX1NJWkUsIG9uUHJvZ3Jlc3MsICgpID0+IHtcbiAgICAgICAgICBmbHVzaCAmJiBmbHVzaCgpO1xuICAgICAgICAgIHVuc3Vic2NyaWJlICYmIHVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pLFxuICAgICAgICBvcHRpb25zXG4gICAgICApO1xuICAgIH1cblxuICAgIHJlc3BvbnNlVHlwZSA9IHJlc3BvbnNlVHlwZSB8fCAndGV4dCc7XG5cbiAgICBsZXQgcmVzcG9uc2VEYXRhID0gYXdhaXQgcmVzb2x2ZXJzW3V0aWxzLmZpbmRLZXkocmVzb2x2ZXJzLCByZXNwb25zZVR5cGUpIHx8ICd0ZXh0J10ocmVzcG9uc2UsIGNvbmZpZyk7XG5cbiAgICAhaXNTdHJlYW1SZXNwb25zZSAmJiB1bnN1YnNjcmliZSAmJiB1bnN1YnNjcmliZSgpO1xuXG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHtcbiAgICAgICAgZGF0YTogcmVzcG9uc2VEYXRhLFxuICAgICAgICBoZWFkZXJzOiBBeGlvc0hlYWRlcnMuZnJvbShyZXNwb25zZS5oZWFkZXJzKSxcbiAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgIHN0YXR1c1RleHQ6IHJlc3BvbnNlLnN0YXR1c1RleHQsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgcmVxdWVzdFxuICAgICAgfSlcbiAgICB9KVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICB1bnN1YnNjcmliZSAmJiB1bnN1YnNjcmliZSgpO1xuXG4gICAgaWYgKGVyciAmJiBlcnIubmFtZSA9PT0gJ1R5cGVFcnJvcicgJiYgL2ZldGNoL2kudGVzdChlcnIubWVzc2FnZSkpIHtcbiAgICAgIHRocm93IE9iamVjdC5hc3NpZ24oXG4gICAgICAgIG5ldyBBeGlvc0Vycm9yKCdOZXR3b3JrIEVycm9yJywgQXhpb3NFcnJvci5FUlJfTkVUV09SSywgY29uZmlnLCByZXF1ZXN0KSxcbiAgICAgICAge1xuICAgICAgICAgIGNhdXNlOiBlcnIuY2F1c2UgfHwgZXJyXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG5cbiAgICB0aHJvdyBBeGlvc0Vycm9yLmZyb20oZXJyLCBlcnIgJiYgZXJyLmNvZGUsIGNvbmZpZywgcmVxdWVzdCk7XG4gIH1cbn0pO1xuXG5cbiIsICJpbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuaW1wb3J0IGh0dHBBZGFwdGVyIGZyb20gJy4vaHR0cC5qcyc7XG5pbXBvcnQgeGhyQWRhcHRlciBmcm9tICcuL3hoci5qcyc7XG5pbXBvcnQgZmV0Y2hBZGFwdGVyIGZyb20gJy4vZmV0Y2guanMnO1xuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSBcIi4uL2NvcmUvQXhpb3NFcnJvci5qc1wiO1xuXG5jb25zdCBrbm93bkFkYXB0ZXJzID0ge1xuICBodHRwOiBodHRwQWRhcHRlcixcbiAgeGhyOiB4aHJBZGFwdGVyLFxuICBmZXRjaDogZmV0Y2hBZGFwdGVyXG59XG5cbnV0aWxzLmZvckVhY2goa25vd25BZGFwdGVycywgKGZuLCB2YWx1ZSkgPT4ge1xuICBpZiAoZm4pIHtcbiAgICB0cnkge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZuLCAnbmFtZScsIHt2YWx1ZX0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eVxuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZm4sICdhZGFwdGVyTmFtZScsIHt2YWx1ZX0pO1xuICB9XG59KTtcblxuY29uc3QgcmVuZGVyUmVhc29uID0gKHJlYXNvbikgPT4gYC0gJHtyZWFzb259YDtcblxuY29uc3QgaXNSZXNvbHZlZEhhbmRsZSA9IChhZGFwdGVyKSA9PiB1dGlscy5pc0Z1bmN0aW9uKGFkYXB0ZXIpIHx8IGFkYXB0ZXIgPT09IG51bGwgfHwgYWRhcHRlciA9PT0gZmFsc2U7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZ2V0QWRhcHRlcjogKGFkYXB0ZXJzKSA9PiB7XG4gICAgYWRhcHRlcnMgPSB1dGlscy5pc0FycmF5KGFkYXB0ZXJzKSA/IGFkYXB0ZXJzIDogW2FkYXB0ZXJzXTtcblxuICAgIGNvbnN0IHtsZW5ndGh9ID0gYWRhcHRlcnM7XG4gICAgbGV0IG5hbWVPckFkYXB0ZXI7XG4gICAgbGV0IGFkYXB0ZXI7XG5cbiAgICBjb25zdCByZWplY3RlZFJlYXNvbnMgPSB7fTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIG5hbWVPckFkYXB0ZXIgPSBhZGFwdGVyc1tpXTtcbiAgICAgIGxldCBpZDtcblxuICAgICAgYWRhcHRlciA9IG5hbWVPckFkYXB0ZXI7XG5cbiAgICAgIGlmICghaXNSZXNvbHZlZEhhbmRsZShuYW1lT3JBZGFwdGVyKSkge1xuICAgICAgICBhZGFwdGVyID0ga25vd25BZGFwdGVyc1soaWQgPSBTdHJpbmcobmFtZU9yQWRhcHRlcikpLnRvTG93ZXJDYXNlKCldO1xuXG4gICAgICAgIGlmIChhZGFwdGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQXhpb3NFcnJvcihgVW5rbm93biBhZGFwdGVyICcke2lkfSdgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYWRhcHRlcikge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcmVqZWN0ZWRSZWFzb25zW2lkIHx8ICcjJyArIGldID0gYWRhcHRlcjtcbiAgICB9XG5cbiAgICBpZiAoIWFkYXB0ZXIpIHtcblxuICAgICAgY29uc3QgcmVhc29ucyA9IE9iamVjdC5lbnRyaWVzKHJlamVjdGVkUmVhc29ucylcbiAgICAgICAgLm1hcCgoW2lkLCBzdGF0ZV0pID0+IGBhZGFwdGVyICR7aWR9IGAgK1xuICAgICAgICAgIChzdGF0ZSA9PT0gZmFsc2UgPyAnaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQnIDogJ2lzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkJylcbiAgICAgICAgKTtcblxuICAgICAgbGV0IHMgPSBsZW5ndGggP1xuICAgICAgICAocmVhc29ucy5sZW5ndGggPiAxID8gJ3NpbmNlIDpcXG4nICsgcmVhc29ucy5tYXAocmVuZGVyUmVhc29uKS5qb2luKCdcXG4nKSA6ICcgJyArIHJlbmRlclJlYXNvbihyZWFzb25zWzBdKSkgOlxuICAgICAgICAnYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQnO1xuXG4gICAgICB0aHJvdyBuZXcgQXhpb3NFcnJvcihcbiAgICAgICAgYFRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgYCArIHMsXG4gICAgICAgICdFUlJfTk9UX1NVUFBPUlQnXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBhZGFwdGVyO1xuICB9LFxuICBhZGFwdGVyczoga25vd25BZGFwdGVyc1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHRyYW5zZm9ybURhdGEgZnJvbSAnLi90cmFuc2Zvcm1EYXRhLmpzJztcbmltcG9ydCBpc0NhbmNlbCBmcm9tICcuLi9jYW5jZWwvaXNDYW5jZWwuanMnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4uL2RlZmF1bHRzL2luZGV4LmpzJztcbmltcG9ydCBDYW5jZWxlZEVycm9yIGZyb20gJy4uL2NhbmNlbC9DYW5jZWxlZEVycm9yLmpzJztcbmltcG9ydCBBeGlvc0hlYWRlcnMgZnJvbSAnLi4vY29yZS9BeGlvc0hlYWRlcnMuanMnO1xuaW1wb3J0IGFkYXB0ZXJzIGZyb20gXCIuLi9hZGFwdGVycy9hZGFwdGVycy5qc1wiO1xuXG4vKipcbiAqIFRocm93cyBhIGBDYW5jZWxlZEVycm9yYCBpZiBjYW5jZWxsYXRpb24gaGFzIGJlZW4gcmVxdWVzdGVkLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgVGhlIGNvbmZpZyB0aGF0IGlzIHRvIGJlIHVzZWQgZm9yIHRoZSByZXF1ZXN0XG4gKlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIHRocm93SWZDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoY29uZmlnKSB7XG4gIGlmIChjb25maWcuY2FuY2VsVG9rZW4pIHtcbiAgICBjb25maWcuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpO1xuICB9XG5cbiAgaWYgKGNvbmZpZy5zaWduYWwgJiYgY29uZmlnLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgdGhyb3cgbmV3IENhbmNlbGVkRXJyb3IobnVsbCwgY29uZmlnKTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BhdGNoIGEgcmVxdWVzdCB0byB0aGUgc2VydmVyIHVzaW5nIHRoZSBjb25maWd1cmVkIGFkYXB0ZXIuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGNvbmZpZyBUaGUgY29uZmlnIHRoYXQgaXMgdG8gYmUgdXNlZCBmb3IgdGhlIHJlcXVlc3RcbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZX0gVGhlIFByb21pc2UgdG8gYmUgZnVsZmlsbGVkXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRpc3BhdGNoUmVxdWVzdChjb25maWcpIHtcbiAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gIGNvbmZpZy5oZWFkZXJzID0gQXhpb3NIZWFkZXJzLmZyb20oY29uZmlnLmhlYWRlcnMpO1xuXG4gIC8vIFRyYW5zZm9ybSByZXF1ZXN0IGRhdGFcbiAgY29uZmlnLmRhdGEgPSB0cmFuc2Zvcm1EYXRhLmNhbGwoXG4gICAgY29uZmlnLFxuICAgIGNvbmZpZy50cmFuc2Zvcm1SZXF1ZXN0XG4gICk7XG5cbiAgaWYgKFsncG9zdCcsICdwdXQnLCAncGF0Y2gnXS5pbmRleE9mKGNvbmZpZy5tZXRob2QpICE9PSAtMSkge1xuICAgIGNvbmZpZy5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLCBmYWxzZSk7XG4gIH1cblxuICBjb25zdCBhZGFwdGVyID0gYWRhcHRlcnMuZ2V0QWRhcHRlcihjb25maWcuYWRhcHRlciB8fCBkZWZhdWx0cy5hZGFwdGVyKTtcblxuICByZXR1cm4gYWRhcHRlcihjb25maWcpLnRoZW4oZnVuY3Rpb24gb25BZGFwdGVyUmVzb2x1dGlvbihyZXNwb25zZSkge1xuICAgIHRocm93SWZDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoY29uZmlnKTtcblxuICAgIC8vIFRyYW5zZm9ybSByZXNwb25zZSBkYXRhXG4gICAgcmVzcG9uc2UuZGF0YSA9IHRyYW5zZm9ybURhdGEuY2FsbChcbiAgICAgIGNvbmZpZyxcbiAgICAgIGNvbmZpZy50cmFuc2Zvcm1SZXNwb25zZSxcbiAgICAgIHJlc3BvbnNlXG4gICAgKTtcblxuICAgIHJlc3BvbnNlLmhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShyZXNwb25zZS5oZWFkZXJzKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfSwgZnVuY3Rpb24gb25BZGFwdGVyUmVqZWN0aW9uKHJlYXNvbikge1xuICAgIGlmICghaXNDYW5jZWwocmVhc29uKSkge1xuICAgICAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gICAgICAvLyBUcmFuc2Zvcm0gcmVzcG9uc2UgZGF0YVxuICAgICAgaWYgKHJlYXNvbiAmJiByZWFzb24ucmVzcG9uc2UpIHtcbiAgICAgICAgcmVhc29uLnJlc3BvbnNlLmRhdGEgPSB0cmFuc2Zvcm1EYXRhLmNhbGwoXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGNvbmZpZy50cmFuc2Zvcm1SZXNwb25zZSxcbiAgICAgICAgICByZWFzb24ucmVzcG9uc2VcbiAgICAgICAgKTtcbiAgICAgICAgcmVhc29uLnJlc3BvbnNlLmhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShyZWFzb24ucmVzcG9uc2UuaGVhZGVycyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHJlYXNvbik7XG4gIH0pO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHtWRVJTSU9OfSBmcm9tICcuLi9lbnYvZGF0YS5qcyc7XG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tICcuLi9jb3JlL0F4aW9zRXJyb3IuanMnO1xuXG5jb25zdCB2YWxpZGF0b3JzID0ge307XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5bJ29iamVjdCcsICdib29sZWFuJywgJ251bWJlcicsICdmdW5jdGlvbicsICdzdHJpbmcnLCAnc3ltYm9sJ10uZm9yRWFjaCgodHlwZSwgaSkgPT4ge1xuICB2YWxpZGF0b3JzW3R5cGVdID0gZnVuY3Rpb24gdmFsaWRhdG9yKHRoaW5nKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGluZyA9PT0gdHlwZSB8fCAnYScgKyAoaSA8IDEgPyAnbiAnIDogJyAnKSArIHR5cGU7XG4gIH07XG59KTtcblxuY29uc3QgZGVwcmVjYXRlZFdhcm5pbmdzID0ge307XG5cbi8qKlxuICogVHJhbnNpdGlvbmFsIG9wdGlvbiB2YWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufGJvb2xlYW4/fSB2YWxpZGF0b3IgLSBzZXQgdG8gZmFsc2UgaWYgdGhlIHRyYW5zaXRpb25hbCBvcHRpb24gaGFzIGJlZW4gcmVtb3ZlZFxuICogQHBhcmFtIHtzdHJpbmc/fSB2ZXJzaW9uIC0gZGVwcmVjYXRlZCB2ZXJzaW9uIC8gcmVtb3ZlZCBzaW5jZSB2ZXJzaW9uXG4gKiBAcGFyYW0ge3N0cmluZz99IG1lc3NhZ2UgLSBzb21lIG1lc3NhZ2Ugd2l0aCBhZGRpdGlvbmFsIGluZm9cbiAqXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259XG4gKi9cbnZhbGlkYXRvcnMudHJhbnNpdGlvbmFsID0gZnVuY3Rpb24gdHJhbnNpdGlvbmFsKHZhbGlkYXRvciwgdmVyc2lvbiwgbWVzc2FnZSkge1xuICBmdW5jdGlvbiBmb3JtYXRNZXNzYWdlKG9wdCwgZGVzYykge1xuICAgIHJldHVybiAnW0F4aW9zIHYnICsgVkVSU0lPTiArICddIFRyYW5zaXRpb25hbCBvcHRpb24gXFwnJyArIG9wdCArICdcXCcnICsgZGVzYyArIChtZXNzYWdlID8gJy4gJyArIG1lc3NhZ2UgOiAnJyk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICByZXR1cm4gKHZhbHVlLCBvcHQsIG9wdHMpID0+IHtcbiAgICBpZiAodmFsaWRhdG9yID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgbmV3IEF4aW9zRXJyb3IoXG4gICAgICAgIGZvcm1hdE1lc3NhZ2Uob3B0LCAnIGhhcyBiZWVuIHJlbW92ZWQnICsgKHZlcnNpb24gPyAnIGluICcgKyB2ZXJzaW9uIDogJycpKSxcbiAgICAgICAgQXhpb3NFcnJvci5FUlJfREVQUkVDQVRFRFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodmVyc2lvbiAmJiAhZGVwcmVjYXRlZFdhcm5pbmdzW29wdF0pIHtcbiAgICAgIGRlcHJlY2F0ZWRXYXJuaW5nc1tvcHRdID0gdHJ1ZTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGZvcm1hdE1lc3NhZ2UoXG4gICAgICAgICAgb3B0LFxuICAgICAgICAgICcgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2JyArIHZlcnNpb24gKyAnIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlJ1xuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0b3IgPyB2YWxpZGF0b3IodmFsdWUsIG9wdCwgb3B0cykgOiB0cnVlO1xuICB9O1xufTtcblxudmFsaWRhdG9ycy5zcGVsbGluZyA9IGZ1bmN0aW9uIHNwZWxsaW5nKGNvcnJlY3RTcGVsbGluZykge1xuICByZXR1cm4gKHZhbHVlLCBvcHQpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUud2FybihgJHtvcHR9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7Y29ycmVjdFNwZWxsaW5nfWApO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuXG4vKipcbiAqIEFzc2VydCBvYmplY3QncyBwcm9wZXJ0aWVzIHR5cGVcbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9uc1xuICogQHBhcmFtIHtvYmplY3R9IHNjaGVtYVxuICogQHBhcmFtIHtib29sZWFuP30gYWxsb3dVbmtub3duXG4gKlxuICogQHJldHVybnMge29iamVjdH1cbiAqL1xuXG5mdW5jdGlvbiBhc3NlcnRPcHRpb25zKG9wdGlvbnMsIHNjaGVtYSwgYWxsb3dVbmtub3duKSB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBuZXcgQXhpb3NFcnJvcignb3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCcsIEF4aW9zRXJyb3IuRVJSX0JBRF9PUFRJT05fVkFMVUUpO1xuICB9XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvcHRpb25zKTtcbiAgbGV0IGkgPSBrZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGktLSA+IDApIHtcbiAgICBjb25zdCBvcHQgPSBrZXlzW2ldO1xuICAgIGNvbnN0IHZhbGlkYXRvciA9IHNjaGVtYVtvcHRdO1xuICAgIGlmICh2YWxpZGF0b3IpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gb3B0aW9uc1tvcHRdO1xuICAgICAgY29uc3QgcmVzdWx0ID0gdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWxpZGF0b3IodmFsdWUsIG9wdCwgb3B0aW9ucyk7XG4gICAgICBpZiAocmVzdWx0ICE9PSB0cnVlKSB7XG4gICAgICAgIHRocm93IG5ldyBBeGlvc0Vycm9yKCdvcHRpb24gJyArIG9wdCArICcgbXVzdCBiZSAnICsgcmVzdWx0LCBBeGlvc0Vycm9yLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoYWxsb3dVbmtub3duICE9PSB0cnVlKSB7XG4gICAgICB0aHJvdyBuZXcgQXhpb3NFcnJvcignVW5rbm93biBvcHRpb24gJyArIG9wdCwgQXhpb3NFcnJvci5FUlJfQkFEX09QVElPTik7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgYXNzZXJ0T3B0aW9ucyxcbiAgdmFsaWRhdG9yc1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLy4uL3V0aWxzLmpzJztcbmltcG9ydCBidWlsZFVSTCBmcm9tICcuLi9oZWxwZXJzL2J1aWxkVVJMLmpzJztcbmltcG9ydCBJbnRlcmNlcHRvck1hbmFnZXIgZnJvbSAnLi9JbnRlcmNlcHRvck1hbmFnZXIuanMnO1xuaW1wb3J0IGRpc3BhdGNoUmVxdWVzdCBmcm9tICcuL2Rpc3BhdGNoUmVxdWVzdC5qcyc7XG5pbXBvcnQgbWVyZ2VDb25maWcgZnJvbSAnLi9tZXJnZUNvbmZpZy5qcyc7XG5pbXBvcnQgYnVpbGRGdWxsUGF0aCBmcm9tICcuL2J1aWxkRnVsbFBhdGguanMnO1xuaW1wb3J0IHZhbGlkYXRvciBmcm9tICcuLi9oZWxwZXJzL3ZhbGlkYXRvci5qcyc7XG5pbXBvcnQgQXhpb3NIZWFkZXJzIGZyb20gJy4vQXhpb3NIZWFkZXJzLmpzJztcblxuY29uc3QgdmFsaWRhdG9ycyA9IHZhbGlkYXRvci52YWxpZGF0b3JzO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiBBeGlvc1xuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBpbnN0YW5jZUNvbmZpZyBUaGUgZGVmYXVsdCBjb25maWcgZm9yIHRoZSBpbnN0YW5jZVxuICpcbiAqIEByZXR1cm4ge0F4aW9zfSBBIG5ldyBpbnN0YW5jZSBvZiBBeGlvc1xuICovXG5jbGFzcyBBeGlvcyB7XG4gIGNvbnN0cnVjdG9yKGluc3RhbmNlQ29uZmlnKSB7XG4gICAgdGhpcy5kZWZhdWx0cyA9IGluc3RhbmNlQ29uZmlnO1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzID0ge1xuICAgICAgcmVxdWVzdDogbmV3IEludGVyY2VwdG9yTWFuYWdlcigpLFxuICAgICAgcmVzcG9uc2U6IG5ldyBJbnRlcmNlcHRvck1hbmFnZXIoKVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRGlzcGF0Y2ggYSByZXF1ZXN0XG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gY29uZmlnT3JVcmwgVGhlIGNvbmZpZyBzcGVjaWZpYyBmb3IgdGhpcyByZXF1ZXN0IChtZXJnZWQgd2l0aCB0aGlzLmRlZmF1bHRzKVxuICAgKiBAcGFyYW0gez9PYmplY3R9IGNvbmZpZ1xuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gVGhlIFByb21pc2UgdG8gYmUgZnVsZmlsbGVkXG4gICAqL1xuICBhc3luYyByZXF1ZXN0KGNvbmZpZ09yVXJsLCBjb25maWcpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QoY29uZmlnT3JVcmwsIGNvbmZpZyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgbGV0IGR1bW15ID0ge307XG5cbiAgICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UgPyBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShkdW1teSkgOiAoZHVtbXkgPSBuZXcgRXJyb3IoKSk7XG5cbiAgICAgICAgLy8gc2xpY2Ugb2ZmIHRoZSBFcnJvcjogLi4uIGxpbmVcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBkdW1teS5zdGFjayA/IGR1bW15LnN0YWNrLnJlcGxhY2UoL14uK1xcbi8sICcnKSA6ICcnO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICghZXJyLnN0YWNrKSB7XG4gICAgICAgICAgICBlcnIuc3RhY2sgPSBzdGFjaztcbiAgICAgICAgICAgIC8vIG1hdGNoIHdpdGhvdXQgdGhlIDIgdG9wIHN0YWNrIGxpbmVzXG4gICAgICAgICAgfSBlbHNlIGlmIChzdGFjayAmJiAhU3RyaW5nKGVyci5zdGFjaykuZW5kc1dpdGgoc3RhY2sucmVwbGFjZSgvXi4rXFxuLitcXG4vLCAnJykpKSB7XG4gICAgICAgICAgICBlcnIuc3RhY2sgKz0gJ1xcbicgKyBzdGFja1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIGlnbm9yZSB0aGUgY2FzZSB3aGVyZSBcInN0YWNrXCIgaXMgYW4gdW4td3JpdGFibGUgcHJvcGVydHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgX3JlcXVlc3QoY29uZmlnT3JVcmwsIGNvbmZpZykge1xuICAgIC8qZXNsaW50IG5vLXBhcmFtLXJlYXNzaWduOjAqL1xuICAgIC8vIEFsbG93IGZvciBheGlvcygnZXhhbXBsZS91cmwnWywgY29uZmlnXSkgYSBsYSBmZXRjaCBBUElcbiAgICBpZiAodHlwZW9mIGNvbmZpZ09yVXJsID09PSAnc3RyaW5nJykge1xuICAgICAgY29uZmlnID0gY29uZmlnIHx8IHt9O1xuICAgICAgY29uZmlnLnVybCA9IGNvbmZpZ09yVXJsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25maWcgPSBjb25maWdPclVybCB8fCB7fTtcbiAgICB9XG5cbiAgICBjb25maWcgPSBtZXJnZUNvbmZpZyh0aGlzLmRlZmF1bHRzLCBjb25maWcpO1xuXG4gICAgY29uc3Qge3RyYW5zaXRpb25hbCwgcGFyYW1zU2VyaWFsaXplciwgaGVhZGVyc30gPSBjb25maWc7XG5cbiAgICBpZiAodHJhbnNpdGlvbmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhbGlkYXRvci5hc3NlcnRPcHRpb25zKHRyYW5zaXRpb25hbCwge1xuICAgICAgICBzaWxlbnRKU09OUGFyc2luZzogdmFsaWRhdG9ycy50cmFuc2l0aW9uYWwodmFsaWRhdG9ycy5ib29sZWFuKSxcbiAgICAgICAgZm9yY2VkSlNPTlBhcnNpbmc6IHZhbGlkYXRvcnMudHJhbnNpdGlvbmFsKHZhbGlkYXRvcnMuYm9vbGVhbiksXG4gICAgICAgIGNsYXJpZnlUaW1lb3V0RXJyb3I6IHZhbGlkYXRvcnMudHJhbnNpdGlvbmFsKHZhbGlkYXRvcnMuYm9vbGVhbilcbiAgICAgIH0sIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zU2VyaWFsaXplciAhPSBudWxsKSB7XG4gICAgICBpZiAodXRpbHMuaXNGdW5jdGlvbihwYXJhbXNTZXJpYWxpemVyKSkge1xuICAgICAgICBjb25maWcucGFyYW1zU2VyaWFsaXplciA9IHtcbiAgICAgICAgICBzZXJpYWxpemU6IHBhcmFtc1NlcmlhbGl6ZXJcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsaWRhdG9yLmFzc2VydE9wdGlvbnMocGFyYW1zU2VyaWFsaXplciwge1xuICAgICAgICAgIGVuY29kZTogdmFsaWRhdG9ycy5mdW5jdGlvbixcbiAgICAgICAgICBzZXJpYWxpemU6IHZhbGlkYXRvcnMuZnVuY3Rpb25cbiAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0IGNvbmZpZy5hbGxvd0Fic29sdXRlVXJsc1xuICAgIGlmIChjb25maWcuYWxsb3dBYnNvbHV0ZVVybHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gZG8gbm90aGluZ1xuICAgIH0gZWxzZSBpZiAodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25maWcuYWxsb3dBYnNvbHV0ZVVybHMgPSB0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25maWcuYWxsb3dBYnNvbHV0ZVVybHMgPSB0cnVlO1xuICAgIH1cblxuICAgIHZhbGlkYXRvci5hc3NlcnRPcHRpb25zKGNvbmZpZywge1xuICAgICAgYmFzZVVybDogdmFsaWRhdG9ycy5zcGVsbGluZygnYmFzZVVSTCcpLFxuICAgICAgd2l0aFhzcmZUb2tlbjogdmFsaWRhdG9ycy5zcGVsbGluZygnd2l0aFhTUkZUb2tlbicpXG4gICAgfSwgdHJ1ZSk7XG5cbiAgICAvLyBTZXQgY29uZmlnLm1ldGhvZFxuICAgIGNvbmZpZy5tZXRob2QgPSAoY29uZmlnLm1ldGhvZCB8fCB0aGlzLmRlZmF1bHRzLm1ldGhvZCB8fCAnZ2V0JykudG9Mb3dlckNhc2UoKTtcblxuICAgIC8vIEZsYXR0ZW4gaGVhZGVyc1xuICAgIGxldCBjb250ZXh0SGVhZGVycyA9IGhlYWRlcnMgJiYgdXRpbHMubWVyZ2UoXG4gICAgICBoZWFkZXJzLmNvbW1vbixcbiAgICAgIGhlYWRlcnNbY29uZmlnLm1ldGhvZF1cbiAgICApO1xuXG4gICAgaGVhZGVycyAmJiB1dGlscy5mb3JFYWNoKFxuICAgICAgWydkZWxldGUnLCAnZ2V0JywgJ2hlYWQnLCAncG9zdCcsICdwdXQnLCAncGF0Y2gnLCAnY29tbW9uJ10sXG4gICAgICAobWV0aG9kKSA9PiB7XG4gICAgICAgIGRlbGV0ZSBoZWFkZXJzW21ldGhvZF07XG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbmZpZy5oZWFkZXJzID0gQXhpb3NIZWFkZXJzLmNvbmNhdChjb250ZXh0SGVhZGVycywgaGVhZGVycyk7XG5cbiAgICAvLyBmaWx0ZXIgb3V0IHNraXBwZWQgaW50ZXJjZXB0b3JzXG4gICAgY29uc3QgcmVxdWVzdEludGVyY2VwdG9yQ2hhaW4gPSBbXTtcbiAgICBsZXQgc3luY2hyb25vdXNSZXF1ZXN0SW50ZXJjZXB0b3JzID0gdHJ1ZTtcbiAgICB0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24gdW5zaGlmdFJlcXVlc3RJbnRlcmNlcHRvcnMoaW50ZXJjZXB0b3IpIHtcbiAgICAgIGlmICh0eXBlb2YgaW50ZXJjZXB0b3IucnVuV2hlbiA9PT0gJ2Z1bmN0aW9uJyAmJiBpbnRlcmNlcHRvci5ydW5XaGVuKGNvbmZpZykgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc3luY2hyb25vdXNSZXF1ZXN0SW50ZXJjZXB0b3JzID0gc3luY2hyb25vdXNSZXF1ZXN0SW50ZXJjZXB0b3JzICYmIGludGVyY2VwdG9yLnN5bmNocm9ub3VzO1xuXG4gICAgICByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbi51bnNoaWZ0KGludGVyY2VwdG9yLmZ1bGZpbGxlZCwgaW50ZXJjZXB0b3IucmVqZWN0ZWQpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluID0gW107XG4gICAgdGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbiBwdXNoUmVzcG9uc2VJbnRlcmNlcHRvcnMoaW50ZXJjZXB0b3IpIHtcbiAgICAgIHJlc3BvbnNlSW50ZXJjZXB0b3JDaGFpbi5wdXNoKGludGVyY2VwdG9yLmZ1bGZpbGxlZCwgaW50ZXJjZXB0b3IucmVqZWN0ZWQpO1xuICAgIH0pO1xuXG4gICAgbGV0IHByb21pc2U7XG4gICAgbGV0IGkgPSAwO1xuICAgIGxldCBsZW47XG5cbiAgICBpZiAoIXN5bmNocm9ub3VzUmVxdWVzdEludGVyY2VwdG9ycykge1xuICAgICAgY29uc3QgY2hhaW4gPSBbZGlzcGF0Y2hSZXF1ZXN0LmJpbmQodGhpcyksIHVuZGVmaW5lZF07XG4gICAgICBjaGFpbi51bnNoaWZ0LmFwcGx5KGNoYWluLCByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbik7XG4gICAgICBjaGFpbi5wdXNoLmFwcGx5KGNoYWluLCByZXNwb25zZUludGVyY2VwdG9yQ2hhaW4pO1xuICAgICAgbGVuID0gY2hhaW4ubGVuZ3RoO1xuXG4gICAgICBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKGNvbmZpZyk7XG5cbiAgICAgIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4oY2hhaW5baSsrXSwgY2hhaW5baSsrXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cblxuICAgIGxlbiA9IHJlcXVlc3RJbnRlcmNlcHRvckNoYWluLmxlbmd0aDtcblxuICAgIGxldCBuZXdDb25maWcgPSBjb25maWc7XG5cbiAgICBpID0gMDtcblxuICAgIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgICBjb25zdCBvbkZ1bGZpbGxlZCA9IHJlcXVlc3RJbnRlcmNlcHRvckNoYWluW2krK107XG4gICAgICBjb25zdCBvblJlamVjdGVkID0gcmVxdWVzdEludGVyY2VwdG9yQ2hhaW5baSsrXTtcbiAgICAgIHRyeSB7XG4gICAgICAgIG5ld0NvbmZpZyA9IG9uRnVsZmlsbGVkKG5ld0NvbmZpZyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBvblJlamVjdGVkLmNhbGwodGhpcywgZXJyb3IpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcHJvbWlzZSA9IGRpc3BhdGNoUmVxdWVzdC5jYWxsKHRoaXMsIG5ld0NvbmZpZyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgfVxuXG4gICAgaSA9IDA7XG4gICAgbGVuID0gcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluLmxlbmd0aDtcblxuICAgIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKHJlc3BvbnNlSW50ZXJjZXB0b3JDaGFpbltpKytdLCByZXNwb25zZUludGVyY2VwdG9yQ2hhaW5baSsrXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuICBnZXRVcmkoY29uZmlnKSB7XG4gICAgY29uZmlnID0gbWVyZ2VDb25maWcodGhpcy5kZWZhdWx0cywgY29uZmlnKTtcbiAgICBjb25zdCBmdWxsUGF0aCA9IGJ1aWxkRnVsbFBhdGgoY29uZmlnLmJhc2VVUkwsIGNvbmZpZy51cmwsIGNvbmZpZy5hbGxvd0Fic29sdXRlVXJscyk7XG4gICAgcmV0dXJuIGJ1aWxkVVJMKGZ1bGxQYXRoLCBjb25maWcucGFyYW1zLCBjb25maWcucGFyYW1zU2VyaWFsaXplcik7XG4gIH1cbn1cblxuLy8gUHJvdmlkZSBhbGlhc2VzIGZvciBzdXBwb3J0ZWQgcmVxdWVzdCBtZXRob2RzXG51dGlscy5mb3JFYWNoKFsnZGVsZXRlJywgJ2dldCcsICdoZWFkJywgJ29wdGlvbnMnXSwgZnVuY3Rpb24gZm9yRWFjaE1ldGhvZE5vRGF0YShtZXRob2QpIHtcbiAgLyplc2xpbnQgZnVuYy1uYW1lczowKi9cbiAgQXhpb3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbih1cmwsIGNvbmZpZykge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QobWVyZ2VDb25maWcoY29uZmlnIHx8IHt9LCB7XG4gICAgICBtZXRob2QsXG4gICAgICB1cmwsXG4gICAgICBkYXRhOiAoY29uZmlnIHx8IHt9KS5kYXRhXG4gICAgfSkpO1xuICB9O1xufSk7XG5cbnV0aWxzLmZvckVhY2goWydwb3N0JywgJ3B1dCcsICdwYXRjaCddLCBmdW5jdGlvbiBmb3JFYWNoTWV0aG9kV2l0aERhdGEobWV0aG9kKSB7XG4gIC8qZXNsaW50IGZ1bmMtbmFtZXM6MCovXG5cbiAgZnVuY3Rpb24gZ2VuZXJhdGVIVFRQTWV0aG9kKGlzRm9ybSkge1xuICAgIHJldHVybiBmdW5jdGlvbiBodHRwTWV0aG9kKHVybCwgZGF0YSwgY29uZmlnKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KG1lcmdlQ29uZmlnKGNvbmZpZyB8fCB7fSwge1xuICAgICAgICBtZXRob2QsXG4gICAgICAgIGhlYWRlcnM6IGlzRm9ybSA/IHtcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnXG4gICAgICAgIH0gOiB7fSxcbiAgICAgICAgdXJsLFxuICAgICAgICBkYXRhXG4gICAgICB9KSk7XG4gICAgfTtcbiAgfVxuXG4gIEF4aW9zLnByb3RvdHlwZVttZXRob2RdID0gZ2VuZXJhdGVIVFRQTWV0aG9kKCk7XG5cbiAgQXhpb3MucHJvdG90eXBlW21ldGhvZCArICdGb3JtJ10gPSBnZW5lcmF0ZUhUVFBNZXRob2QodHJ1ZSk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgQXhpb3M7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgQ2FuY2VsZWRFcnJvciBmcm9tICcuL0NhbmNlbGVkRXJyb3IuanMnO1xuXG4vKipcbiAqIEEgYENhbmNlbFRva2VuYCBpcyBhbiBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byByZXF1ZXN0IGNhbmNlbGxhdGlvbiBvZiBhbiBvcGVyYXRpb24uXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZXhlY3V0b3IgVGhlIGV4ZWN1dG9yIGZ1bmN0aW9uLlxuICpcbiAqIEByZXR1cm5zIHtDYW5jZWxUb2tlbn1cbiAqL1xuY2xhc3MgQ2FuY2VsVG9rZW4ge1xuICBjb25zdHJ1Y3RvcihleGVjdXRvcikge1xuICAgIGlmICh0eXBlb2YgZXhlY3V0b3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2V4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4nKTtcbiAgICB9XG5cbiAgICBsZXQgcmVzb2x2ZVByb21pc2U7XG5cbiAgICB0aGlzLnByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiBwcm9taXNlRXhlY3V0b3IocmVzb2x2ZSkge1xuICAgICAgcmVzb2x2ZVByb21pc2UgPSByZXNvbHZlO1xuICAgIH0pO1xuXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgICB0aGlzLnByb21pc2UudGhlbihjYW5jZWwgPT4ge1xuICAgICAgaWYgKCF0b2tlbi5fbGlzdGVuZXJzKSByZXR1cm47XG5cbiAgICAgIGxldCBpID0gdG9rZW4uX2xpc3RlbmVycy5sZW5ndGg7XG5cbiAgICAgIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgICAgIHRva2VuLl9saXN0ZW5lcnNbaV0oY2FuY2VsKTtcbiAgICAgIH1cbiAgICAgIHRva2VuLl9saXN0ZW5lcnMgPSBudWxsO1xuICAgIH0pO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgICB0aGlzLnByb21pc2UudGhlbiA9IG9uZnVsZmlsbGVkID0+IHtcbiAgICAgIGxldCBfcmVzb2x2ZTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG4gICAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIHRva2VuLnN1YnNjcmliZShyZXNvbHZlKTtcbiAgICAgICAgX3Jlc29sdmUgPSByZXNvbHZlO1xuICAgICAgfSkudGhlbihvbmZ1bGZpbGxlZCk7XG5cbiAgICAgIHByb21pc2UuY2FuY2VsID0gZnVuY3Rpb24gcmVqZWN0KCkge1xuICAgICAgICB0b2tlbi51bnN1YnNjcmliZShfcmVzb2x2ZSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9O1xuXG4gICAgZXhlY3V0b3IoZnVuY3Rpb24gY2FuY2VsKG1lc3NhZ2UsIGNvbmZpZywgcmVxdWVzdCkge1xuICAgICAgaWYgKHRva2VuLnJlYXNvbikge1xuICAgICAgICAvLyBDYW5jZWxsYXRpb24gaGFzIGFscmVhZHkgYmVlbiByZXF1ZXN0ZWRcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0b2tlbi5yZWFzb24gPSBuZXcgQ2FuY2VsZWRFcnJvcihtZXNzYWdlLCBjb25maWcsIHJlcXVlc3QpO1xuICAgICAgcmVzb2x2ZVByb21pc2UodG9rZW4ucmVhc29uKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYSBgQ2FuY2VsZWRFcnJvcmAgaWYgY2FuY2VsbGF0aW9uIGhhcyBiZWVuIHJlcXVlc3RlZC5cbiAgICovXG4gIHRocm93SWZSZXF1ZXN0ZWQoKSB7XG4gICAgaWYgKHRoaXMucmVhc29uKSB7XG4gICAgICB0aHJvdyB0aGlzLnJlYXNvbjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIHRoZSBjYW5jZWwgc2lnbmFsXG4gICAqL1xuXG4gIHN1YnNjcmliZShsaXN0ZW5lcikge1xuICAgIGlmICh0aGlzLnJlYXNvbikge1xuICAgICAgbGlzdGVuZXIodGhpcy5yZWFzb24pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9saXN0ZW5lcnMpIHtcbiAgICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGlzdGVuZXJzID0gW2xpc3RlbmVyXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgZnJvbSB0aGUgY2FuY2VsIHNpZ25hbFxuICAgKi9cblxuICB1bnN1YnNjcmliZShsaXN0ZW5lcikge1xuICAgIGlmICghdGhpcy5fbGlzdGVuZXJzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fbGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMuX2xpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIHRvQWJvcnRTaWduYWwoKSB7XG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIGNvbnN0IGFib3J0ID0gKGVycikgPT4ge1xuICAgICAgY29udHJvbGxlci5hYm9ydChlcnIpO1xuICAgIH07XG5cbiAgICB0aGlzLnN1YnNjcmliZShhYm9ydCk7XG5cbiAgICBjb250cm9sbGVyLnNpZ25hbC51bnN1YnNjcmliZSA9ICgpID0+IHRoaXMudW5zdWJzY3JpYmUoYWJvcnQpO1xuXG4gICAgcmV0dXJuIGNvbnRyb2xsZXIuc2lnbmFsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgYSBuZXcgYENhbmNlbFRva2VuYCBhbmQgYSBmdW5jdGlvbiB0aGF0LCB3aGVuIGNhbGxlZCxcbiAgICogY2FuY2VscyB0aGUgYENhbmNlbFRva2VuYC5cbiAgICovXG4gIHN0YXRpYyBzb3VyY2UoKSB7XG4gICAgbGV0IGNhbmNlbDtcbiAgICBjb25zdCB0b2tlbiA9IG5ldyBDYW5jZWxUb2tlbihmdW5jdGlvbiBleGVjdXRvcihjKSB7XG4gICAgICBjYW5jZWwgPSBjO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICB0b2tlbixcbiAgICAgIGNhbmNlbFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2FuY2VsVG9rZW47XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFN5bnRhY3RpYyBzdWdhciBmb3IgaW52b2tpbmcgYSBmdW5jdGlvbiBhbmQgZXhwYW5kaW5nIGFuIGFycmF5IGZvciBhcmd1bWVudHMuXG4gKlxuICogQ29tbW9uIHVzZSBjYXNlIHdvdWxkIGJlIHRvIHVzZSBgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5YC5cbiAqXG4gKiAgYGBganNcbiAqICBmdW5jdGlvbiBmKHgsIHksIHopIHt9XG4gKiAgdmFyIGFyZ3MgPSBbMSwgMiwgM107XG4gKiAgZi5hcHBseShudWxsLCBhcmdzKTtcbiAqICBgYGBcbiAqXG4gKiBXaXRoIGBzcHJlYWRgIHRoaXMgZXhhbXBsZSBjYW4gYmUgcmUtd3JpdHRlbi5cbiAqXG4gKiAgYGBganNcbiAqICBzcHJlYWQoZnVuY3Rpb24oeCwgeSwgeikge30pKFsxLCAyLCAzXSk7XG4gKiAgYGBgXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNwcmVhZChjYWxsYmFjaykge1xuICByZXR1cm4gZnVuY3Rpb24gd3JhcChhcnIpIHtcbiAgICByZXR1cm4gY2FsbGJhY2suYXBwbHkobnVsbCwgYXJyKTtcbiAgfTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLy4uL3V0aWxzLmpzJztcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHBheWxvYWQgaXMgYW4gZXJyb3IgdGhyb3duIGJ5IEF4aW9zXG4gKlxuICogQHBhcmFtIHsqfSBwYXlsb2FkIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHBheWxvYWQgaXMgYW4gZXJyb3IgdGhyb3duIGJ5IEF4aW9zLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNBeGlvc0Vycm9yKHBheWxvYWQpIHtcbiAgcmV0dXJuIHV0aWxzLmlzT2JqZWN0KHBheWxvYWQpICYmIChwYXlsb2FkLmlzQXhpb3NFcnJvciA9PT0gdHJ1ZSk7XG59XG4iLCAiY29uc3QgSHR0cFN0YXR1c0NvZGUgPSB7XG4gIENvbnRpbnVlOiAxMDAsXG4gIFN3aXRjaGluZ1Byb3RvY29sczogMTAxLFxuICBQcm9jZXNzaW5nOiAxMDIsXG4gIEVhcmx5SGludHM6IDEwMyxcbiAgT2s6IDIwMCxcbiAgQ3JlYXRlZDogMjAxLFxuICBBY2NlcHRlZDogMjAyLFxuICBOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246IDIwMyxcbiAgTm9Db250ZW50OiAyMDQsXG4gIFJlc2V0Q29udGVudDogMjA1LFxuICBQYXJ0aWFsQ29udGVudDogMjA2LFxuICBNdWx0aVN0YXR1czogMjA3LFxuICBBbHJlYWR5UmVwb3J0ZWQ6IDIwOCxcbiAgSW1Vc2VkOiAyMjYsXG4gIE11bHRpcGxlQ2hvaWNlczogMzAwLFxuICBNb3ZlZFBlcm1hbmVudGx5OiAzMDEsXG4gIEZvdW5kOiAzMDIsXG4gIFNlZU90aGVyOiAzMDMsXG4gIE5vdE1vZGlmaWVkOiAzMDQsXG4gIFVzZVByb3h5OiAzMDUsXG4gIFVudXNlZDogMzA2LFxuICBUZW1wb3JhcnlSZWRpcmVjdDogMzA3LFxuICBQZXJtYW5lbnRSZWRpcmVjdDogMzA4LFxuICBCYWRSZXF1ZXN0OiA0MDAsXG4gIFVuYXV0aG9yaXplZDogNDAxLFxuICBQYXltZW50UmVxdWlyZWQ6IDQwMixcbiAgRm9yYmlkZGVuOiA0MDMsXG4gIE5vdEZvdW5kOiA0MDQsXG4gIE1ldGhvZE5vdEFsbG93ZWQ6IDQwNSxcbiAgTm90QWNjZXB0YWJsZTogNDA2LFxuICBQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6IDQwNyxcbiAgUmVxdWVzdFRpbWVvdXQ6IDQwOCxcbiAgQ29uZmxpY3Q6IDQwOSxcbiAgR29uZTogNDEwLFxuICBMZW5ndGhSZXF1aXJlZDogNDExLFxuICBQcmVjb25kaXRpb25GYWlsZWQ6IDQxMixcbiAgUGF5bG9hZFRvb0xhcmdlOiA0MTMsXG4gIFVyaVRvb0xvbmc6IDQxNCxcbiAgVW5zdXBwb3J0ZWRNZWRpYVR5cGU6IDQxNSxcbiAgUmFuZ2VOb3RTYXRpc2ZpYWJsZTogNDE2LFxuICBFeHBlY3RhdGlvbkZhaWxlZDogNDE3LFxuICBJbUFUZWFwb3Q6IDQxOCxcbiAgTWlzZGlyZWN0ZWRSZXF1ZXN0OiA0MjEsXG4gIFVucHJvY2Vzc2FibGVFbnRpdHk6IDQyMixcbiAgTG9ja2VkOiA0MjMsXG4gIEZhaWxlZERlcGVuZGVuY3k6IDQyNCxcbiAgVG9vRWFybHk6IDQyNSxcbiAgVXBncmFkZVJlcXVpcmVkOiA0MjYsXG4gIFByZWNvbmRpdGlvblJlcXVpcmVkOiA0MjgsXG4gIFRvb01hbnlSZXF1ZXN0czogNDI5LFxuICBSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6IDQzMSxcbiAgVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6IDQ1MSxcbiAgSW50ZXJuYWxTZXJ2ZXJFcnJvcjogNTAwLFxuICBOb3RJbXBsZW1lbnRlZDogNTAxLFxuICBCYWRHYXRld2F5OiA1MDIsXG4gIFNlcnZpY2VVbmF2YWlsYWJsZTogNTAzLFxuICBHYXRld2F5VGltZW91dDogNTA0LFxuICBIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDogNTA1LFxuICBWYXJpYW50QWxzb05lZ290aWF0ZXM6IDUwNixcbiAgSW5zdWZmaWNpZW50U3RvcmFnZTogNTA3LFxuICBMb29wRGV0ZWN0ZWQ6IDUwOCxcbiAgTm90RXh0ZW5kZWQ6IDUxMCxcbiAgTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6IDUxMSxcbn07XG5cbk9iamVjdC5lbnRyaWVzKEh0dHBTdGF0dXNDb2RlKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgSHR0cFN0YXR1c0NvZGVbdmFsdWVdID0ga2V5O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEh0dHBTdGF0dXNDb2RlO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMuanMnO1xuaW1wb3J0IGJpbmQgZnJvbSAnLi9oZWxwZXJzL2JpbmQuanMnO1xuaW1wb3J0IEF4aW9zIGZyb20gJy4vY29yZS9BeGlvcy5qcyc7XG5pbXBvcnQgbWVyZ2VDb25maWcgZnJvbSAnLi9jb3JlL21lcmdlQ29uZmlnLmpzJztcbmltcG9ydCBkZWZhdWx0cyBmcm9tICcuL2RlZmF1bHRzL2luZGV4LmpzJztcbmltcG9ydCBmb3JtRGF0YVRvSlNPTiBmcm9tICcuL2hlbHBlcnMvZm9ybURhdGFUb0pTT04uanMnO1xuaW1wb3J0IENhbmNlbGVkRXJyb3IgZnJvbSAnLi9jYW5jZWwvQ2FuY2VsZWRFcnJvci5qcyc7XG5pbXBvcnQgQ2FuY2VsVG9rZW4gZnJvbSAnLi9jYW5jZWwvQ2FuY2VsVG9rZW4uanMnO1xuaW1wb3J0IGlzQ2FuY2VsIGZyb20gJy4vY2FuY2VsL2lzQ2FuY2VsLmpzJztcbmltcG9ydCB7VkVSU0lPTn0gZnJvbSAnLi9lbnYvZGF0YS5qcyc7XG5pbXBvcnQgdG9Gb3JtRGF0YSBmcm9tICcuL2hlbHBlcnMvdG9Gb3JtRGF0YS5qcyc7XG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tICcuL2NvcmUvQXhpb3NFcnJvci5qcyc7XG5pbXBvcnQgc3ByZWFkIGZyb20gJy4vaGVscGVycy9zcHJlYWQuanMnO1xuaW1wb3J0IGlzQXhpb3NFcnJvciBmcm9tICcuL2hlbHBlcnMvaXNBeGlvc0Vycm9yLmpzJztcbmltcG9ydCBBeGlvc0hlYWRlcnMgZnJvbSBcIi4vY29yZS9BeGlvc0hlYWRlcnMuanNcIjtcbmltcG9ydCBhZGFwdGVycyBmcm9tICcuL2FkYXB0ZXJzL2FkYXB0ZXJzLmpzJztcbmltcG9ydCBIdHRwU3RhdHVzQ29kZSBmcm9tICcuL2hlbHBlcnMvSHR0cFN0YXR1c0NvZGUuanMnO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBeGlvc1xuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBkZWZhdWx0Q29uZmlnIFRoZSBkZWZhdWx0IGNvbmZpZyBmb3IgdGhlIGluc3RhbmNlXG4gKlxuICogQHJldHVybnMge0F4aW9zfSBBIG5ldyBpbnN0YW5jZSBvZiBBeGlvc1xuICovXG5mdW5jdGlvbiBjcmVhdGVJbnN0YW5jZShkZWZhdWx0Q29uZmlnKSB7XG4gIGNvbnN0IGNvbnRleHQgPSBuZXcgQXhpb3MoZGVmYXVsdENvbmZpZyk7XG4gIGNvbnN0IGluc3RhbmNlID0gYmluZChBeGlvcy5wcm90b3R5cGUucmVxdWVzdCwgY29udGV4dCk7XG5cbiAgLy8gQ29weSBheGlvcy5wcm90b3R5cGUgdG8gaW5zdGFuY2VcbiAgdXRpbHMuZXh0ZW5kKGluc3RhbmNlLCBBeGlvcy5wcm90b3R5cGUsIGNvbnRleHQsIHthbGxPd25LZXlzOiB0cnVlfSk7XG5cbiAgLy8gQ29weSBjb250ZXh0IHRvIGluc3RhbmNlXG4gIHV0aWxzLmV4dGVuZChpbnN0YW5jZSwgY29udGV4dCwgbnVsbCwge2FsbE93bktleXM6IHRydWV9KTtcblxuICAvLyBGYWN0b3J5IGZvciBjcmVhdGluZyBuZXcgaW5zdGFuY2VzXG4gIGluc3RhbmNlLmNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShpbnN0YW5jZUNvbmZpZykge1xuICAgIHJldHVybiBjcmVhdGVJbnN0YW5jZShtZXJnZUNvbmZpZyhkZWZhdWx0Q29uZmlnLCBpbnN0YW5jZUNvbmZpZykpO1xuICB9O1xuXG4gIHJldHVybiBpbnN0YW5jZTtcbn1cblxuLy8gQ3JlYXRlIHRoZSBkZWZhdWx0IGluc3RhbmNlIHRvIGJlIGV4cG9ydGVkXG5jb25zdCBheGlvcyA9IGNyZWF0ZUluc3RhbmNlKGRlZmF1bHRzKTtcblxuLy8gRXhwb3NlIEF4aW9zIGNsYXNzIHRvIGFsbG93IGNsYXNzIGluaGVyaXRhbmNlXG5heGlvcy5BeGlvcyA9IEF4aW9zO1xuXG4vLyBFeHBvc2UgQ2FuY2VsICYgQ2FuY2VsVG9rZW5cbmF4aW9zLkNhbmNlbGVkRXJyb3IgPSBDYW5jZWxlZEVycm9yO1xuYXhpb3MuQ2FuY2VsVG9rZW4gPSBDYW5jZWxUb2tlbjtcbmF4aW9zLmlzQ2FuY2VsID0gaXNDYW5jZWw7XG5heGlvcy5WRVJTSU9OID0gVkVSU0lPTjtcbmF4aW9zLnRvRm9ybURhdGEgPSB0b0Zvcm1EYXRhO1xuXG4vLyBFeHBvc2UgQXhpb3NFcnJvciBjbGFzc1xuYXhpb3MuQXhpb3NFcnJvciA9IEF4aW9zRXJyb3I7XG5cbi8vIGFsaWFzIGZvciBDYW5jZWxlZEVycm9yIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG5heGlvcy5DYW5jZWwgPSBheGlvcy5DYW5jZWxlZEVycm9yO1xuXG4vLyBFeHBvc2UgYWxsL3NwcmVhZFxuYXhpb3MuYWxsID0gZnVuY3Rpb24gYWxsKHByb21pc2VzKSB7XG4gIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG59O1xuXG5heGlvcy5zcHJlYWQgPSBzcHJlYWQ7XG5cbi8vIEV4cG9zZSBpc0F4aW9zRXJyb3JcbmF4aW9zLmlzQXhpb3NFcnJvciA9IGlzQXhpb3NFcnJvcjtcblxuLy8gRXhwb3NlIG1lcmdlQ29uZmlnXG5heGlvcy5tZXJnZUNvbmZpZyA9IG1lcmdlQ29uZmlnO1xuXG5heGlvcy5BeGlvc0hlYWRlcnMgPSBBeGlvc0hlYWRlcnM7XG5cbmF4aW9zLmZvcm1Ub0pTT04gPSB0aGluZyA9PiBmb3JtRGF0YVRvSlNPTih1dGlscy5pc0hUTUxGb3JtKHRoaW5nKSA/IG5ldyBGb3JtRGF0YSh0aGluZykgOiB0aGluZyk7XG5cbmF4aW9zLmdldEFkYXB0ZXIgPSBhZGFwdGVycy5nZXRBZGFwdGVyO1xuXG5heGlvcy5IdHRwU3RhdHVzQ29kZSA9IEh0dHBTdGF0dXNDb2RlO1xuXG5heGlvcy5kZWZhdWx0ID0gYXhpb3M7XG5cbi8vIHRoaXMgbW9kdWxlIHNob3VsZCBvbmx5IGhhdmUgYSBkZWZhdWx0IGV4cG9ydFxuZXhwb3J0IGRlZmF1bHQgYXhpb3NcbiIsICJpbXBvcnQgYXhpb3MgZnJvbSAnLi9saWIvYXhpb3MuanMnO1xuXG4vLyBUaGlzIG1vZHVsZSBpcyBpbnRlbmRlZCB0byB1bndyYXAgQXhpb3MgZGVmYXVsdCBleHBvcnQgYXMgbmFtZWQuXG4vLyBLZWVwIHRvcC1sZXZlbCBleHBvcnQgc2FtZSB3aXRoIHN0YXRpYyBwcm9wZXJ0aWVzXG4vLyBzbyB0aGF0IGl0IGNhbiBrZWVwIHNhbWUgd2l0aCBlcyBtb2R1bGUgb3IgY2pzXG5jb25zdCB7XG4gIEF4aW9zLFxuICBBeGlvc0Vycm9yLFxuICBDYW5jZWxlZEVycm9yLFxuICBpc0NhbmNlbCxcbiAgQ2FuY2VsVG9rZW4sXG4gIFZFUlNJT04sXG4gIGFsbCxcbiAgQ2FuY2VsLFxuICBpc0F4aW9zRXJyb3IsXG4gIHNwcmVhZCxcbiAgdG9Gb3JtRGF0YSxcbiAgQXhpb3NIZWFkZXJzLFxuICBIdHRwU3RhdHVzQ29kZSxcbiAgZm9ybVRvSlNPTixcbiAgZ2V0QWRhcHRlcixcbiAgbWVyZ2VDb25maWdcbn0gPSBheGlvcztcblxuZXhwb3J0IHtcbiAgYXhpb3MgYXMgZGVmYXVsdCxcbiAgQXhpb3MsXG4gIEF4aW9zRXJyb3IsXG4gIENhbmNlbGVkRXJyb3IsXG4gIGlzQ2FuY2VsLFxuICBDYW5jZWxUb2tlbixcbiAgVkVSU0lPTixcbiAgYWxsLFxuICBDYW5jZWwsXG4gIGlzQXhpb3NFcnJvcixcbiAgc3ByZWFkLFxuICB0b0Zvcm1EYXRhLFxuICBBeGlvc0hlYWRlcnMsXG4gIEh0dHBTdGF0dXNDb2RlLFxuICBmb3JtVG9KU09OLFxuICBnZXRBZGFwdGVyLFxuICBtZXJnZUNvbmZpZ1xufVxuIiwgImltcG9ydCB7IE1jcFNlcnZlciB9IGZyb20gXCJAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NlcnZlci9tY3AuanNcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgYXhpb3MgZnJvbSBcImF4aW9zXCI7XG5cbi8vIENvbmZpZ3VyYXRpb24gc2NoZW1hIGZvciBzbWl0aGVyeS55YW1sXG5leHBvcnQgY29uc3QgY29uZmlnU2NoZW1hID0gei5vYmplY3Qoe1xuICBLRVlXT1JEU19FVkVSWVdIRVJFX0FQSV9LRVk6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJBUEkga2V5IGZvciBLZXl3b3JkcyBFdmVyeXdoZXJlXCIpXG59KTtcblxuLy8gQ29uc3RhbnRzXG5jb25zdCBCQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkua2V5d29yZHNldmVyeXdoZXJlLmNvbS92MVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTZXJ2ZXIoe1xuICBjb25maWcsXG59OiB7XG4gIGNvbmZpZzogei5pbmZlcjx0eXBlb2YgY29uZmlnU2NoZW1hPjtcbn0pIHtcbiAgY29uc3Qgc2VydmVyID0gbmV3IE1jcFNlcnZlcih7XG4gICAgbmFtZTogXCJtY3Ata2V5d29yZHMtZXZlcnl3aGVyZVwiLFxuICAgIHZlcnNpb246IFwiMS4xLjBcIixcbiAgfSk7XG5cbiAgLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBBUEkgY2FsbHNcbiAgYXN5bmMgZnVuY3Rpb24gbWFrZUFwaUNhbGwoZW5kcG9pbnQ6IHN0cmluZywgZGF0YTogYW55ID0gbnVsbCwgcmV0cnlDb3VudCA9IDApIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXJsID0gYCR7QkFTRV9VUkx9LyR7ZW5kcG9pbnR9YDtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYENhbGxpbmcgS2V5d29yZHMgRXZlcnl3aGVyZSBBUEk6ICR7ZW5kcG9pbnR9YCk7XG4gICAgICBcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgbWV0aG9kOiBkYXRhID8gJ3Bvc3QnIDogJ2dldCcsXG4gICAgICAgIHVybCxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIFwiQXV0aG9yaXphdGlvblwiOiBgQmVhcmVyICR7cHJvY2Vzcy5lbnYuS0VZV09SRFNfRVZFUllXSEVSRV9BUElfS0VZfWAsXG4gICAgICAgICAgXCJBY2NlcHRcIjogXCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgfVxuICAgICAgfSBhcyBhbnk7XG4gICAgICBcbiAgICAgIC8vIEhhbmRsZSBkaWZmZXJlbnQgdHlwZXMgb2YgZGF0YVxuICAgICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgY29uZmlnLmRhdGEgPSBkYXRhO1xuICAgICAgICBjb25maWcuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJztcbiAgICAgIH0gZWxzZSBpZiAoZGF0YSkge1xuICAgICAgICBjb25maWcuZGF0YSA9IGRhdGE7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MoY29uZmlnKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFQSSBSZXNwb25zZSBTdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgICAgXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBFeHRyYWN0IGRldGFpbGVkIGVycm9yIGluZm9ybWF0aW9uXG4gICAgICBjb25zdCBzdGF0dXNDb2RlID0gZXJyb3IucmVzcG9uc2U/LnN0YXR1cztcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yLnJlc3BvbnNlPy5kYXRhPy5tZXNzYWdlIHx8IGVycm9yLnJlc3BvbnNlPy5kYXRhIHx8IGVycm9yLm1lc3NhZ2U7XG4gICAgICBcbiAgICAgIC8vIExvZyBkZXRhaWxlZCBlcnJvciBpbmZvcm1hdGlvblxuICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgY2FsbGluZyBLZXl3b3JkcyBFdmVyeXdoZXJlIEFQSSAoJHtlbmRwb2ludH0pOmAsIHtcbiAgICAgICAgc3RhdHVzQ29kZSxcbiAgICAgICAgZXJyb3JNZXNzYWdlLFxuICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgZGF0YVxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIEhhbmRsZSBzcGVjaWZpYyBlcnJvciBjb2Rlc1xuICAgICAgaWYgKHN0YXR1c0NvZGUgPT09IDQwMCkge1xuICAgICAgICAvLyBGb3IgNDAwIEJhZCBSZXF1ZXN0IGVycm9ycywgcHJvdmlkZSBtb3JlIGhlbHBmdWwgZXJyb3IgbWVzc2FnZXNcbiAgICAgICAgbGV0IGVuaGFuY2VkTWVzc2FnZSA9IGBCYWQgUmVxdWVzdCAoNDAwKTogJHtlcnJvck1lc3NhZ2V9YDtcbiAgICAgICAgXG4gICAgICAgIC8vIEFkZCBzcGVjaWZpYyBndWlkYW5jZSBiYXNlZCBvbiBjb21tb24gNDAwIGVycm9yc1xuICAgICAgICBpZiAoZXJyb3JNZXNzYWdlLmluY2x1ZGVzKFwiY3JlZGl0XCIpIHx8IGVycm9yTWVzc2FnZS5pbmNsdWRlcyhcImNyZWRpdHNcIikpIHtcbiAgICAgICAgICBlbmhhbmNlZE1lc3NhZ2UgKz0gXCIuIFlvdSBtYXkgbmVlZCB0byBhZGQgbW9yZSBjcmVkaXRzIHRvIHlvdXIgS2V5d29yZHMgRXZlcnl3aGVyZSBhY2NvdW50LlwiO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yTWVzc2FnZS5pbmNsdWRlcyhcInN1YnNjcmlwdGlvblwiKSB8fCBlcnJvck1lc3NhZ2UuaW5jbHVkZXMoXCJwbGFuXCIpKSB7XG4gICAgICAgICAgZW5oYW5jZWRNZXNzYWdlICs9IFwiLiBUaGlzIG1heSBiZSBkdWUgdG8gYSBzdWJzY3JpcHRpb24gcGxhbiBsaW1pdGF0aW9uLiBQbGVhc2UgY2hlY2sgeW91ciBjdXJyZW50IHBsYW4uXCI7XG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3JNZXNzYWdlLmluY2x1ZGVzKFwibGltaXRcIikgfHwgZXJyb3JNZXNzYWdlLmluY2x1ZGVzKFwicmF0ZVwiKSkge1xuICAgICAgICAgIGVuaGFuY2VkTWVzc2FnZSArPSBcIi4gWW91IG1heSBoYXZlIGhpdCBhIHJhdGUgbGltaXQuIFRyeSBhZ2FpbiBsYXRlci5cIjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgY29uc3QgY3VzdG9tRXJyb3IgPSBuZXcgRXJyb3IoZW5oYW5jZWRNZXNzYWdlKTtcbiAgICAgICAgKGN1c3RvbUVycm9yIGFzIGFueSkuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gICAgICAgIChjdXN0b21FcnJvciBhcyBhbnkpLm9yaWdpbmFsRXJyb3IgPSBlcnJvcjtcbiAgICAgICAgdGhyb3cgY3VzdG9tRXJyb3I7XG4gICAgICB9IGVsc2UgaWYgKHN0YXR1c0NvZGUgPT09IDQwMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEF1dGhlbnRpY2F0aW9uIGZhaWxlZCAoNDAxKTogUGxlYXNlIGNoZWNrIHlvdXIgQVBJIGtleWApO1xuICAgICAgfSBlbHNlIGlmIChzdGF0dXNDb2RlID09PSA0MjkpIHtcbiAgICAgICAgLy8gUmF0ZSBsaW1pdGluZyAtIGltcGxlbWVudCByZXRyeSB3aXRoIGV4cG9uZW50aWFsIGJhY2tvZmZcbiAgICAgICAgaWYgKHJldHJ5Q291bnQgPCAzKSB7XG4gICAgICAgICAgY29uc3QgZGVsYXkgPSBNYXRoLnBvdygyLCByZXRyeUNvdW50KSAqIDEwMDA7IC8vIEV4cG9uZW50aWFsIGJhY2tvZmY6IDFzLCAycywgNHNcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBSYXRlIGxpbWl0ZWQuIFJldHJ5aW5nIGluICR7ZGVsYXl9bXMuLi5gKTtcbiAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpKTtcbiAgICAgICAgICByZXR1cm4gbWFrZUFwaUNhbGwoZW5kcG9pbnQsIGRhdGEsIHJldHJ5Q291bnQgKyAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJhdGUgbGltaXQgZXhjZWVkZWQgKDQyOSk6IFRvbyBtYW55IHJlcXVlc3RzLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLmApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGb3Igb3RoZXIgZXJyb3JzLCBwYXNzIHRocm91Z2ggd2l0aCBzb21lIGFkZGl0aW9uYWwgY29udGV4dFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFQSSBFcnJvciAoJHtzdGF0dXNDb2RlIHx8ICd1bmtub3duJ30pOiAke2Vycm9yTWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBGb3JtYXQgcmVzcG9uc2UgZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBkYXRhXG4gIGZ1bmN0aW9uIGZvcm1hdFJlc3BvbnNlKHRvb2xOYW1lOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICAgIHN3aXRjaCAodG9vbE5hbWUpIHtcbiAgICAgIGNhc2UgJ2dldF9jcmVkaXRzJzpcbiAgICAgICAgcmV0dXJuIGBDcmVkaXQgQmFsYW5jZTogJHtkYXRhWzBdfWA7XG4gICAgICBcbiAgICAgIGNhc2UgJ2dldF9jb3VudHJpZXMnOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgIHJldHVybiBkYXRhLm1hcChjb3VudHJ5ID0+IGAke2NvdW50cnkuY29kZX06ICR7Y291bnRyeS5uYW1lfWApLmpvaW4oJ1xcbicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKTtcbiAgICAgIFxuICAgICAgY2FzZSAnZ2V0X2N1cnJlbmNpZXMnOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgIHJldHVybiBkYXRhLm1hcChjdXJyZW5jeSA9PiBgJHtjdXJyZW5jeS5jb2RlfTogJHtjdXJyZW5jeS5uYW1lfWApLmpvaW4oJ1xcbicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKTtcbiAgICAgIFxuICAgICAgY2FzZSAnZ2V0X2tleXdvcmRfZGF0YSc6XG4gICAgICAgIGlmIChkYXRhLmRhdGEgJiYgQXJyYXkuaXNBcnJheShkYXRhLmRhdGEpKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGEuZGF0YS5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGAke2l0ZW0ua2V5d29yZH06XG4tIFNlYXJjaCBWb2x1bWU6ICR7aXRlbS52b2wgfHwgMH1cbi0gQ1BDOiAke2l0ZW0uY3BjPy5jdXJyZW5jeSA/IGl0ZW0uY3BjLmN1cnJlbmN5IDogJ1JNJ30ke2l0ZW0uY3BjPy52YWx1ZSB8fCAnMC4wMCd9XG4tIENvbXBldGl0aW9uOiAke2l0ZW0uY29tcGV0aXRpb24gfHwgMH1cbi0gVHJlbmQ6ICR7aXRlbS50cmVuZCAmJiBpdGVtLnRyZW5kLmxlbmd0aCA+IDAgPyBKU09OLnN0cmluZ2lmeShpdGVtLnRyZW5kKSA6ICdbXSd9YDtcbiAgICAgICAgICB9KS5qb2luKFwiXFxuXFxuXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZhbGxiYWNrIGZvciB1bmV4cGVjdGVkIHJlc3BvbnNlIHN0cnVjdHVyZVxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMik7XG4gICAgICBcbiAgICAgIGNhc2UgJ2dldF9yZWxhdGVkX2tleXdvcmRzJzpcbiAgICAgIGNhc2UgJ2dldF9wYXNmX2tleXdvcmRzJzpcbiAgICAgIGNhc2UgJ2dldF9kb21haW5fa2V5d29yZHMnOlxuICAgICAgY2FzZSAnZ2V0X3VybF9rZXl3b3Jkcyc6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGEubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgJHtpbmRleCArIDF9LiAke2l0ZW0ua2V5d29yZH1cbiAgIC0gU2VhcmNoIFZvbHVtZTogJHtpdGVtLnZvbCB8fCAwfVxuICAgLSBDUEM6ICR7aXRlbS5jcGM/LmN1cnJlbmN5ID8gaXRlbS5jcGMuY3VycmVuY3kgOiAnUk0nfSR7aXRlbS5jcGM/LnZhbHVlIHx8ICcwLjAwJ31cbiAgIC0gQ29tcGV0aXRpb246ICR7aXRlbS5jb21wZXRpdGlvbiB8fCAwfWA7XG4gICAgICAgICAgfSkuam9pbihcIlxcblxcblwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMik7XG4gICAgICBcbiAgICAgIGNhc2UgJ2dldF9kb21haW5fdHJhZmZpYyc6XG4gICAgICBjYXNlICdnZXRfdXJsX3RyYWZmaWMnOlxuICAgICAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICByZXR1cm4gYFRyYWZmaWMgTWV0cmljczpcbi0gVG90YWwgS2V5d29yZHM6ICR7ZGF0YS50b3RhbEtleXdvcmRzIHx8IDB9XG4tIFRvdGFsIFRyYWZmaWM6ICR7ZGF0YS50b3RhbFRyYWZmaWMgfHwgMH1cbi0gVHJhZmZpYyBDb3N0OiBSTSR7ZGF0YS50cmFmZmljQ29zdCB8fCAwfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpO1xuICAgICAgXG4gICAgICBjYXNlICdnZXRfZG9tYWluX2JhY2tsaW5rcyc6XG4gICAgICBjYXNlICdnZXRfdW5pcXVlX2RvbWFpbl9iYWNrbGlua3MnOlxuICAgICAgY2FzZSAnZ2V0X3BhZ2VfYmFja2xpbmtzJzpcbiAgICAgIGNhc2UgJ2dldF91bmlxdWVfcGFnZV9iYWNrbGlua3MnOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgIHJldHVybiBkYXRhLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7aW5kZXggKyAxfS4gJHtpdGVtLnVybH1cbiAgIC0gRG9tYWluIEF1dGhvcml0eTogJHtpdGVtLmRhIHx8IDB9XG4gICAtIFBhZ2UgQXV0aG9yaXR5OiAke2l0ZW0ucGEgfHwgMH1cbiAgIC0gU3BhbSBTY29yZTogJHtpdGVtLnNwYW1TY29yZSB8fCAwfWA7XG4gICAgICAgICAgfSkuam9pbihcIlxcblxcblwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMik7XG4gICAgICBcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKTtcbiAgICB9XG4gIH1cblxuICAvLyBSZWdpc3RlciB0b29sc1xuICAvLyBUb29sOiBnZXRfY3JlZGl0c1xuICBzZXJ2ZXIucmVnaXN0ZXJUb29sKFxuICAgIFwiZ2V0X2NyZWRpdHNcIixcbiAgICB7XG4gICAgICB0aXRsZTogXCJHZXQgQ3JlZGl0c1wiLFxuICAgICAgZGVzY3JpcHRpb246IFwiR2V0IHlvdXIgYWNjb3VudCdzIGNyZWRpdCBiYWxhbmNlXCIsXG4gICAgICBpbnB1dFNjaGVtYToge31cbiAgICB9LFxuICAgIGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1ha2VBcGlDYWxsKFwiYWNjb3VudC9jcmVkaXRzXCIpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRSZXN1bHQgPSBmb3JtYXRSZXNwb25zZShcImdldF9jcmVkaXRzXCIsIHJlc3VsdCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgdGV4dDogZm9ybWF0dGVkUmVzdWx0XG4gICAgICAgICAgfV1cbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIgYXMgY29uc3QsXG4gICAgICAgICAgICB0ZXh0OiBcIkVycm9yOiBcIiArIChlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcikpXG4gICAgICAgICAgfV0sXG4gICAgICAgICAgaXNFcnJvcjogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICAvLyBUb29sOiBnZXRfY291bnRyaWVzXG4gIHNlcnZlci5yZWdpc3RlclRvb2woXG4gICAgXCJnZXRfY291bnRyaWVzXCIsXG4gICAge1xuICAgICAgdGl0bGU6IFwiR2V0IENvdW50cmllc1wiLFxuICAgICAgZGVzY3JpcHRpb246IFwiR2V0IGxpc3Qgb2Ygc3VwcG9ydGVkIGNvdW50cmllc1wiLFxuICAgICAgaW5wdXRTY2hlbWE6IHt9XG4gICAgfSxcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtYWtlQXBpQ2FsbChcImNvdW50cmllc1wiKTtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkUmVzdWx0ID0gZm9ybWF0UmVzcG9uc2UoXCJnZXRfY291bnRyaWVzXCIsIHJlc3VsdCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgdGV4dDogZm9ybWF0dGVkUmVzdWx0XG4gICAgICAgICAgfV1cbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIgYXMgY29uc3QsXG4gICAgICAgICAgICB0ZXh0OiBcIkVycm9yOiBcIiArIChlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcikpXG4gICAgICAgICAgfV0sXG4gICAgICAgICAgaXNFcnJvcjogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICAvLyBUb29sOiBnZXRfY3VycmVuY2llc1xuICBzZXJ2ZXIucmVnaXN0ZXJUb29sKFxuICAgIFwiZ2V0X2N1cnJlbmNpZXNcIixcbiAgICB7XG4gICAgICB0aXRsZTogXCJHZXQgQ3VycmVuY2llc1wiLFxuICAgICAgZGVzY3JpcHRpb246IFwiR2V0IGxpc3Qgb2Ygc3VwcG9ydGVkIGN1cnJlbmNpZXNcIixcbiAgICAgIGlucHV0U2NoZW1hOiB7fVxuICAgIH0sXG4gICAgYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbWFrZUFwaUNhbGwoXCJjdXJyZW5jaWVzXCIpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRSZXN1bHQgPSBmb3JtYXRSZXNwb25zZShcImdldF9jdXJyZW5jaWVzXCIsIHJlc3VsdCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgdGV4dDogZm9ybWF0dGVkUmVzdWx0XG4gICAgICAgICAgfV1cbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIgYXMgY29uc3QsXG4gICAgICAgICAgICB0ZXh0OiBcIkVycm9yOiBcIiArIChlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcikpXG4gICAgICAgICAgfV0sXG4gICAgICAgICAgaXNFcnJvcjogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICAvLyBUb29sOiBnZXRfa2V5d29yZF9kYXRhXG4gIHNlcnZlci5yZWdpc3RlclRvb2woXG4gICAgXCJnZXRfa2V5d29yZF9kYXRhXCIsXG4gICAge1xuICAgICAgdGl0bGU6IFwiR2V0IEtleXdvcmQgRGF0YVwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiR2V0IFZvbHVtZSwgQ1BDIGFuZCBjb21wZXRpdGlvbiBmb3IgYSBzZXQgb2Yga2V5d29yZHNcIixcbiAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgIGtleXdvcmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLmRlc2NyaWJlKFwiTGlzdCBvZiBrZXl3b3JkcyB0byBhbmFseXplXCIpLFxuICAgICAgICBjb3VudHJ5OiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJDb3VudHJ5IGNvZGUgKGVtcHR5IHN0cmluZyBmb3IgR2xvYmFsLCAndXMnIGZvciBVbml0ZWQgU3RhdGVzLCBldGMuKVwiKSxcbiAgICAgICAgY3VycmVuY3k6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIkN1cnJlbmN5IGNvZGUgKGUuZy4sICdteXInIGZvciBNYWxheXNpYW4gUmluZ2dpdClcIilcbiAgICAgIH1cbiAgICB9LFxuICAgIGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBLZXl3b3JkcyBFdmVyeXdoZXJlIEFQSSBleHBlY3RzIFwia3dbXVwiIGZvcm1hdCBmb3IgZWFjaCBrZXl3b3JkXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICAgICAgXG4gICAgICAgIC8vIEFkZCBlYWNoIGtleXdvcmQgaW5kaXZpZHVhbGx5IHRvIG1hdGNoIEFQSSBleHBlY3RhdGlvbnNcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVxdWVzdC5rZXl3b3JkcykpIHtcbiAgICAgICAgICByZXF1ZXN0LmtleXdvcmRzLmZvckVhY2goa2V5d29yZCA9PiB7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKFwia3dbXVwiLCBrZXl3b3JkKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gQWRkIG90aGVyIHBhcmFtZXRlcnNcbiAgICAgICAgcGFyYW1zLmFwcGVuZChcImNvdW50cnlcIiwgcmVxdWVzdC5jb3VudHJ5IHx8IFwiXCIpOyAgLy8gRGVmYXVsdCB0byBnbG9iYWwgaWYgbm90IHNwZWNpZmllZFxuICAgICAgICBwYXJhbXMuYXBwZW5kKFwiY3VycmVuY3lcIiwgcmVxdWVzdC5jdXJyZW5jeSB8fCBcIm15clwiKTsgIC8vIERlZmF1bHQgdG8gTWFsYXlzaWFuIFJpbmdnaXRcbiAgICAgICAgcGFyYW1zLmFwcGVuZChcImRhdGFTb3VyY2VcIiwgXCJjbGlcIik7ICAvLyBVc2UgR29vZ2xlIEtleXdvcmQgUGxhbm5lciAmIENsaWNrc3RyZWFtIGRhdGFcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1ha2VBcGlDYWxsKFwiZ2V0X2tleXdvcmRfZGF0YVwiLCBwYXJhbXMpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRSZXN1bHQgPSBmb3JtYXRSZXNwb25zZShcImdldF9rZXl3b3JkX2RhdGFcIiwgcmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIgYXMgY29uc3QsXG4gICAgICAgICAgICB0ZXh0OiBmb3JtYXR0ZWRSZXN1bHRcbiAgICAgICAgICB9XVxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgICAgICB0eXBlOiBcInRleHRcIiBhcyBjb25zdCxcbiAgICAgICAgICAgIHRleHQ6IFwiRXJyb3I6IFwiICsgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKSlcbiAgICAgICAgICB9XSxcbiAgICAgICAgICBpc0Vycm9yOiB0cnVlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIC8vIFRvb2w6IGdldF9yZWxhdGVkX2tleXdvcmRzXG4gIHNlcnZlci5yZWdpc3RlclRvb2woXG4gICAgXCJnZXRfcmVsYXRlZF9rZXl3b3Jkc1wiLFxuICAgIHtcbiAgICAgIHRpdGxlOiBcIkdldCBSZWxhdGVkIEtleXdvcmRzXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJHZXQgcmVsYXRlZCBrZXl3b3JkcyBiYXNlZCBvbiBhIHNlZWQga2V5d29yZFwiLFxuICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAga2V5d29yZDogei5zdHJpbmcoKS5kZXNjcmliZShcIlNlZWQga2V5d29yZCB0byBmaW5kIHJlbGF0ZWQgdGVybXMgZm9yXCIpLFxuICAgICAgICBudW06IHoubnVtYmVyKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIk51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybiAobWF4IDEwMDApXCIpXG4gICAgICB9XG4gICAgfSxcbiAgICBhc3luYyAocmVxdWVzdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICBrZXl3b3JkOiByZXF1ZXN0LmtleXdvcmQsXG4gICAgICAgICAgbnVtOiByZXF1ZXN0Lm51bSB8fCAxMFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtYWtlQXBpQ2FsbChcImdldF9yZWxhdGVkX2tleXdvcmRzXCIsIGRhdGEpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRSZXN1bHQgPSBmb3JtYXRSZXNwb25zZShcImdldF9yZWxhdGVkX2tleXdvcmRzXCIsIHJlc3VsdCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgdGV4dDogZm9ybWF0dGVkUmVzdWx0XG4gICAgICAgICAgfV1cbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIgYXMgY29uc3QsXG4gICAgICAgICAgICB0ZXh0OiBcIkVycm9yOiBcIiArIChlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcikpXG4gICAgICAgICAgfV0sXG4gICAgICAgICAgaXNFcnJvcjogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICAvLyBUb29sOiBnZXRfcGFzZl9rZXl3b3Jkc1xuICBzZXJ2ZXIucmVnaXN0ZXJUb29sKFxuICAgIFwiZ2V0X3Bhc2Zfa2V5d29yZHNcIixcbiAgICB7XG4gICAgICB0aXRsZTogXCJHZXQgUEFTRiBLZXl3b3Jkc1wiLFxuICAgICAgZGVzY3JpcHRpb246IFwiR2V0ICdQZW9wbGUgQWxzbyBTZWFyY2ggRm9yJyBrZXl3b3JkcyBiYXNlZCBvbiBhIHNlZWQga2V5d29yZFwiLFxuICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAga2V5d29yZDogei5zdHJpbmcoKS5kZXNjcmliZShcIlNlZWQga2V5d29yZCB0byBmaW5kIFBBU0YgdGVybXMgZm9yXCIpLFxuICAgICAgICBudW06IHoubnVtYmVyKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIk51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybiAobWF4IDEwMDApXCIpXG4gICAgICB9XG4gICAgfSxcbiAgICBhc3luYyAocmVxdWVzdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICBrZXl3b3JkOiByZXF1ZXN0LmtleXdvcmQsXG4gICAgICAgICAgbnVtOiByZXF1ZXN0Lm51bSB8fCAxMFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtYWtlQXBpQ2FsbChcImdldF9wYXNmX2tleXdvcmRzXCIsIGRhdGEpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRSZXN1bHQgPSBmb3JtYXRSZXNwb25zZShcImdldF9wYXNmX2tleXdvcmRzXCIsIHJlc3VsdCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgdGV4dDogZm9ybWF0dGVkUmVzdWx0XG4gICAgICAgICAgfV1cbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIgYXMgY29uc3QsXG4gICAgICAgICAgICB0ZXh0OiBcIkVycm9yOiBcIiArIChlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcikpXG4gICAgICAgICAgfV0sXG4gICAgICAgICAgaXNFcnJvcjogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICAvLyBUb29sOiBnZXRfZG9tYWluX2tleXdvcmRzXG4gIHNlcnZlci5yZWdpc3RlclRvb2woXG4gICAgXCJnZXRfZG9tYWluX2tleXdvcmRzXCIsXG4gICAge1xuICAgICAgdGl0bGU6IFwiR2V0IERvbWFpbiBLZXl3b3Jkc1wiLFxuICAgICAgZGVzY3JpcHRpb246IFwiR2V0IGtleXdvcmRzIHRoYXQgYSBkb21haW4gcmFua3MgZm9yXCIsXG4gICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICBkb21haW46IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJEb21haW4gdG8gYW5hbHl6ZSAoZS5nLiwgZXhhbXBsZS5jb20pXCIpLFxuICAgICAgICBjb3VudHJ5OiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJDb3VudHJ5IGNvZGUgKGVtcHR5IHN0cmluZyBmb3IgR2xvYmFsLCAndXMnIGZvciBVbml0ZWQgU3RhdGVzLCBldGMuKVwiKSxcbiAgICAgICAgbnVtOiB6Lm51bWJlcigpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJOdW1iZXIgb2YgcmVzdWx0cyB0byByZXR1cm4gKG1heCAxMDAwKVwiKVxuICAgICAgfVxuICAgIH0sXG4gICAgYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgZG9tYWluOiByZXF1ZXN0LmRvbWFpbixcbiAgICAgICAgICBjb3VudHJ5OiByZXF1ZXN0LmNvdW50cnkgfHwgXCJcIixcbiAgICAgICAgICBudW06IHJlcXVlc3QubnVtIHx8IDEwXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1ha2VBcGlDYWxsKFwiZ2V0X2RvbWFpbl9rZXl3b3Jkc1wiLCBkYXRhKTtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkUmVzdWx0ID0gZm9ybWF0UmVzcG9uc2UoXCJnZXRfZG9tYWluX2tleXdvcmRzXCIsIHJlc3VsdCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgdGV4dDogZm9ybWF0dGVkUmVzdWx0XG4gICAgICAgICAgfV1cbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIgYXMgY29uc3QsXG4gICAgICAgICAgICB0ZXh0OiBcIkVycm9yOiBcIiArIChlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcikpXG4gICAgICAgICAgfV0sXG4gICAgICAgICAgaXNFcnJvcjogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICAvLyBUb29sOiBnZXRfdXJsX2tleXdvcmRzXG4gIHNlcnZlci5yZWdpc3RlclRvb2woXG4gICAgXCJnZXRfdXJsX2tleXdvcmRzXCIsXG4gICAge1xuICAgICAgdGl0bGU6IFwiR2V0IFVSTCBLZXl3b3Jkc1wiLFxuICAgICAgZGVzY3JpcHRpb246IFwiR2V0IGtleXdvcmRzIHRoYXQgYSBVUkwgcmFua3MgZm9yXCIsXG4gICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICB1cmw6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJVUkwgdG8gYW5hbHl6ZVwiKSxcbiAgICAgICAgY291bnRyeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiQ291bnRyeSBjb2RlIChlbXB0eSBzdHJpbmcgZm9yIEdsb2JhbCwgJ3VzJyBmb3IgVW5pdGVkIFN0YXRlcywgZXRjLilcIiksXG4gICAgICAgIG51bTogei5udW1iZXIoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiTnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuIChtYXggMTAwMClcIilcbiAgICAgIH1cbiAgICB9LFxuICAgIGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgIHVybDogcmVxdWVzdC51cmwsXG4gICAgICAgICAgY291bnRyeTogcmVxdWVzdC5jb3VudHJ5IHx8IFwiXCIsXG4gICAgICAgICAgbnVtOiByZXF1ZXN0Lm51bSB8fCAxMFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtYWtlQXBpQ2FsbChcImdldF91cmxfa2V5d29yZHNcIiwgZGF0YSk7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFJlc3VsdCA9IGZvcm1hdFJlc3BvbnNlKFwiZ2V0X3VybF9rZXl3b3Jkc1wiLCByZXN1bHQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgICAgICB0eXBlOiBcInRleHRcIiBhcyBjb25zdCxcbiAgICAgICAgICAgIHRleHQ6IGZvcm1hdHRlZFJlc3VsdFxuICAgICAgICAgIH1dXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgdGV4dDogXCJFcnJvcjogXCIgKyAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpKVxuICAgICAgICAgIH1dLFxuICAgICAgICAgIGlzRXJyb3I6IHRydWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgLy8gVG9vbDogZ2V0X2RvbWFpbl90cmFmZmljXG4gIHNlcnZlci5yZWdpc3RlclRvb2woXG4gICAgXCJnZXRfZG9tYWluX3RyYWZmaWNcIixcbiAgICB7XG4gICAgICB0aXRsZTogXCJHZXQgRG9tYWluIFRyYWZmaWNcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkdldCB0cmFmZmljIG1ldHJpY3MgZm9yIGEgZG9tYWluXCIsXG4gICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICBkb21haW46IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJEb21haW4gdG8gYW5hbHl6ZSAoZS5nLiwgZXhhbXBsZS5jb20pXCIpLFxuICAgICAgICBjb3VudHJ5OiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJDb3VudHJ5IGNvZGUgKGVtcHR5IHN0cmluZyBmb3IgR2xvYmFsLCAndXMnIGZvciBVbml0ZWQgU3RhdGVzLCBldGMuKVwiKVxuICAgICAgfVxuICAgIH0sXG4gICAgYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgZG9tYWluOiByZXF1ZXN0LmRvbWFpbixcbiAgICAgICAgICBjb3VudHJ5OiByZXF1ZXN0LmNvdW50cnkgfHwgXCJcIlxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtYWtlQXBpQ2FsbChcImdldF9kb21haW5fdHJhZmZpY1wiLCBkYXRhKTtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkUmVzdWx0ID0gZm9ybWF0UmVzcG9uc2UoXCJnZXRfZG9tYWluX3RyYWZmaWNcIiwgcmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIgYXMgY29uc3QsXG4gICAgICAgICAgICB0ZXh0OiBmb3JtYXR0ZWRSZXN1bHRcbiAgICAgICAgICB9XVxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgICAgICB0eXBlOiBcInRleHRcIiBhcyBjb25zdCxcbiAgICAgICAgICAgIHRleHQ6IFwiRXJyb3I6IFwiICsgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKSlcbiAgICAgICAgICB9XSxcbiAgICAgICAgICBpc0Vycm9yOiB0cnVlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIC8vIFRvb2w6IGdldF91cmxfdHJhZmZpY1xuICBzZXJ2ZXIucmVnaXN0ZXJUb29sKFxuICAgIFwiZ2V0X3VybF90cmFmZmljXCIsXG4gICAge1xuICAgICAgdGl0bGU6IFwiR2V0IFVSTCBUcmFmZmljXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJHZXQgdHJhZmZpYyBtZXRyaWNzIGZvciBhIFVSTFwiLFxuICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgdXJsOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVVJMIHRvIGFuYWx5emVcIiksXG4gICAgICAgIGNvdW50cnk6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIkNvdW50cnkgY29kZSAoZW1wdHkgc3RyaW5nIGZvciBHbG9iYWwsICd1cycgZm9yIFVuaXRlZCBTdGF0ZXMsIGV0Yy4pXCIpXG4gICAgICB9XG4gICAgfSxcbiAgICBhc3luYyAocmVxdWVzdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICB1cmw6IHJlcXVlc3QudXJsLFxuICAgICAgICAgIGNvdW50cnk6IHJlcXVlc3QuY291bnRyeSB8fCBcIlwiXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1ha2VBcGlDYWxsKFwiZ2V0X3VybF90cmFmZmljXCIsIGRhdGEpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRSZXN1bHQgPSBmb3JtYXRSZXNwb25zZShcImdldF91cmxfdHJhZmZpY1wiLCByZXN1bHQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgICAgICB0eXBlOiBcInRleHRcIiBhcyBjb25zdCxcbiAgICAgICAgICAgIHRleHQ6IGZvcm1hdHRlZFJlc3VsdFxuICAgICAgICAgIH1dXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgdGV4dDogXCJFcnJvcjogXCIgKyAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpKVxuICAgICAgICAgIH1dLFxuICAgICAgICAgIGlzRXJyb3I6IHRydWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgLy8gVG9vbDogZ2V0X2RvbWFpbl9iYWNrbGlua3NcbiAgc2VydmVyLnJlZ2lzdGVyVG9vbChcbiAgICBcImdldF9kb21haW5fYmFja2xpbmtzXCIsXG4gICAge1xuICAgICAgdGl0bGU6IFwiR2V0IERvbWFpbiBCYWNrbGlua3NcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkdldCBiYWNrbGlua3MgZm9yIGEgZG9tYWluXCIsXG4gICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICBkb21haW46IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJEb21haW4gdG8gYW5hbHl6ZSAoZS5nLiwgZXhhbXBsZS5jb20pXCIpLFxuICAgICAgICBudW06IHoubnVtYmVyKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIk51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybiAobWF4IDEwMDApXCIpXG4gICAgICB9XG4gICAgfSxcbiAgICBhc3luYyAocmVxdWVzdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICBkb21haW46IHJlcXVlc3QuZG9tYWluLFxuICAgICAgICAgIG51bTogcmVxdWVzdC5udW0gfHwgMTBcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbWFrZUFwaUNhbGwoXCJnZXRfZG9tYWluX2JhY2tsaW5rc1wiLCBkYXRhKTtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkUmVzdWx0ID0gZm9ybWF0UmVzcG9uc2UoXCJnZXRfZG9tYWluX2JhY2tsaW5rc1wiLCByZXN1bHQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgICAgICB0eXBlOiBcInRleHRcIiBhcyBjb25zdCxcbiAgICAgICAgICAgIHRleHQ6IGZvcm1hdHRlZFJlc3VsdFxuICAgICAgICAgIH1dXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgdGV4dDogXCJFcnJvcjogXCIgKyAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpKVxuICAgICAgICAgIH1dLFxuICAgICAgICAgIGlzRXJyb3I6IHRydWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgLy8gVG9vbDogZ2V0X3VuaXF1ZV9kb21haW5fYmFja2xpbmtzXG4gIHNlcnZlci5yZWdpc3RlclRvb2woXG4gICAgXCJnZXRfdW5pcXVlX2RvbWFpbl9iYWNrbGlua3NcIixcbiAgICB7XG4gICAgICB0aXRsZTogXCJHZXQgVW5pcXVlIERvbWFpbiBCYWNrbGlua3NcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkdldCB1bmlxdWUgZG9tYWluIGJhY2tsaW5rc1wiLFxuICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgZG9tYWluOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiRG9tYWluIHRvIGFuYWx5emUgKGUuZy4sIGV4YW1wbGUuY29tKVwiKSxcbiAgICAgICAgbnVtOiB6Lm51bWJlcigpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJOdW1iZXIgb2YgcmVzdWx0cyB0byByZXR1cm4gKG1heCAxMDAwKVwiKVxuICAgICAgfVxuICAgIH0sXG4gICAgYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgZG9tYWluOiByZXF1ZXN0LmRvbWFpbixcbiAgICAgICAgICBudW06IHJlcXVlc3QubnVtIHx8IDEwXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1ha2VBcGlDYWxsKFwiZ2V0X3VuaXF1ZV9kb21haW5fYmFja2xpbmtzXCIsIGRhdGEpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRSZXN1bHQgPSBmb3JtYXRSZXNwb25zZShcImdldF91bmlxdWVfZG9tYWluX2JhY2tsaW5rc1wiLCByZXN1bHQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgICAgICB0eXBlOiBcInRleHRcIiBhcyBjb25zdCxcbiAgICAgICAgICAgIHRleHQ6IGZvcm1hdHRlZFJlc3VsdFxuICAgICAgICAgIH1dXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgdGV4dDogXCJFcnJvcjogXCIgKyAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpKVxuICAgICAgICAgIH1dLFxuICAgICAgICAgIGlzRXJyb3I6IHRydWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgLy8gVG9vbDogZ2V0X3BhZ2VfYmFja2xpbmtzXG4gIHNlcnZlci5yZWdpc3RlclRvb2woXG4gICAgXCJnZXRfcGFnZV9iYWNrbGlua3NcIixcbiAgICB7XG4gICAgICB0aXRsZTogXCJHZXQgUGFnZSBCYWNrbGlua3NcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkdldCBiYWNrbGlua3MgZm9yIGEgc3BlY2lmaWMgVVJMXCIsXG4gICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICB1cmw6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJVUkwgdG8gYW5hbHl6ZVwiKSxcbiAgICAgICAgbnVtOiB6Lm51bWJlcigpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJOdW1iZXIgb2YgcmVzdWx0cyB0byByZXR1cm4gKG1heCAxMDAwKVwiKVxuICAgICAgfVxuICAgIH0sXG4gICAgYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgdXJsOiByZXF1ZXN0LnVybCxcbiAgICAgICAgICBudW06IHJlcXVlc3QubnVtIHx8IDEwXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1ha2VBcGlDYWxsKFwiZ2V0X3BhZ2VfYmFja2xpbmtzXCIsIGRhdGEpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRSZXN1bHQgPSBmb3JtYXRSZXNwb25zZShcImdldF9wYWdlX2JhY2tsaW5rc1wiLCByZXN1bHQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgICAgICB0eXBlOiBcInRleHRcIiBhcyBjb25zdCxcbiAgICAgICAgICAgIHRleHQ6IGZvcm1hdHRlZFJlc3VsdFxuICAgICAgICAgIH1dXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgdGV4dDogXCJFcnJvcjogXCIgKyAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpKVxuICAgICAgICAgIH1dLFxuICAgICAgICAgIGlzRXJyb3I6IHRydWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgLy8gVG9vbDogZ2V0X3VuaXF1ZV9wYWdlX2JhY2tsaW5rc1xuICBzZXJ2ZXIucmVnaXN0ZXJUb29sKFxuICAgIFwiZ2V0X3VuaXF1ZV9wYWdlX2JhY2tsaW5rc1wiLFxuICAgIHtcbiAgICAgIHRpdGxlOiBcIkdldCBVbmlxdWUgUGFnZSBCYWNrbGlua3NcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkdldCB1bmlxdWUgYmFja2xpbmtzIGZvciBhIHNwZWNpZmljIFVSTFwiLFxuICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgdXJsOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVVJMIHRvIGFuYWx5emVcIiksXG4gICAgICAgIG51bTogei5udW1iZXIoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiTnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuIChtYXggMTAwMClcIilcbiAgICAgIH1cbiAgICB9LFxuICAgIGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgIHVybDogcmVxdWVzdC51cmwsXG4gICAgICAgICAgbnVtOiByZXF1ZXN0Lm51bSB8fCAxMFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtYWtlQXBpQ2FsbChcImdldF91bmlxdWVfcGFnZV9iYWNrbGlua3NcIiwgZGF0YSk7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFJlc3VsdCA9IGZvcm1hdFJlc3BvbnNlKFwiZ2V0X3VuaXF1ZV9wYWdlX2JhY2tsaW5rc1wiLCByZXN1bHQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgICAgICB0eXBlOiBcInRleHRcIiBhcyBjb25zdCxcbiAgICAgICAgICAgIHRleHQ6IGZvcm1hdHRlZFJlc3VsdFxuICAgICAgICAgIH1dXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgdGV4dDogXCJFcnJvcjogXCIgKyAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpKVxuICAgICAgICAgIH1dLFxuICAgICAgICAgIGlzRXJyb3I6IHRydWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgcmV0dXJuIHNlcnZlci5zZXJ2ZXI7XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGUgPSBPYmplY3QuY3JlYXRlO1xudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2dldE93blByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbnZhciBfX2dldE93blByb3BOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xudmFyIF9fZ2V0UHJvdG9PZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fY29tbW9uSlMgPSAoY2IsIG1vZCkgPT4gZnVuY3Rpb24gX19yZXF1aXJlKCkge1xuICByZXR1cm4gbW9kIHx8ICgwLCBjYltfX2dldE93blByb3BOYW1lcyhjYilbMF1dKSgobW9kID0geyBleHBvcnRzOiB7fSB9KS5leHBvcnRzLCBtb2QpLCBtb2QuZXhwb3J0cztcbn07XG52YXIgX19jb3B5UHJvcHMgPSAodG8sIGZyb20sIGV4Y2VwdCwgZGVzYykgPT4ge1xuICBpZiAoZnJvbSAmJiB0eXBlb2YgZnJvbSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgZnJvbSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgZm9yIChsZXQga2V5IG9mIF9fZ2V0T3duUHJvcE5hbWVzKGZyb20pKVxuICAgICAgaWYgKCFfX2hhc093blByb3AuY2FsbCh0bywga2V5KSAmJiBrZXkgIT09IGV4Y2VwdClcbiAgICAgICAgX19kZWZQcm9wKHRvLCBrZXksIHsgZ2V0OiAoKSA9PiBmcm9tW2tleV0sIGVudW1lcmFibGU6ICEoZGVzYyA9IF9fZ2V0T3duUHJvcERlc2MoZnJvbSwga2V5KSkgfHwgZGVzYy5lbnVtZXJhYmxlIH0pO1xuICB9XG4gIHJldHVybiB0bztcbn07XG52YXIgX190b0VTTSA9IChtb2QsIGlzTm9kZU1vZGUsIHRhcmdldCkgPT4gKHRhcmdldCA9IG1vZCAhPSBudWxsID8gX19jcmVhdGUoX19nZXRQcm90b09mKG1vZCkpIDoge30sIF9fY29weVByb3BzKFxuICAvLyBJZiB0aGUgaW1wb3J0ZXIgaXMgaW4gbm9kZSBjb21wYXRpYmlsaXR5IG1vZGUgb3IgdGhpcyBpcyBub3QgYW4gRVNNXG4gIC8vIGZpbGUgdGhhdCBoYXMgYmVlbiBjb252ZXJ0ZWQgdG8gYSBDb21tb25KUyBmaWxlIHVzaW5nIGEgQmFiZWwtXG4gIC8vIGNvbXBhdGlibGUgdHJhbnNmb3JtIChpLmUuIFwiX19lc01vZHVsZVwiIGhhcyBub3QgYmVlbiBzZXQpLCB0aGVuIHNldFxuICAvLyBcImRlZmF1bHRcIiB0byB0aGUgQ29tbW9uSlMgXCJtb2R1bGUuZXhwb3J0c1wiIGZvciBub2RlIGNvbXBhdGliaWxpdHkuXG4gIGlzTm9kZU1vZGUgfHwgIW1vZCB8fCAhbW9kLl9fZXNNb2R1bGUgPyBfX2RlZlByb3AodGFyZ2V0LCBcImRlZmF1bHRcIiwgeyB2YWx1ZTogbW9kLCBlbnVtZXJhYmxlOiB0cnVlIH0pIDogdGFyZ2V0LFxuICBtb2RcbikpO1xuXG4vLyBub2RlX21vZHVsZXMvYnl0ZXMvaW5kZXguanNcbnZhciByZXF1aXJlX2J5dGVzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2J5dGVzL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBieXRlcztcbiAgICBtb2R1bGUyLmV4cG9ydHMuZm9ybWF0ID0gZm9ybWF0O1xuICAgIG1vZHVsZTIuZXhwb3J0cy5wYXJzZSA9IHBhcnNlO1xuICAgIHZhciBmb3JtYXRUaG91c2FuZHNSZWdFeHAgPSAvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZztcbiAgICB2YXIgZm9ybWF0RGVjaW1hbHNSZWdFeHAgPSAvKD86XFwuMCp8KFxcLlteMF0rKTArKSQvO1xuICAgIHZhciBtYXAgPSB7XG4gICAgICBiOiAxLFxuICAgICAga2I6IDEgPDwgMTAsXG4gICAgICBtYjogMSA8PCAyMCxcbiAgICAgIGdiOiAxIDw8IDMwLFxuICAgICAgdGI6IE1hdGgucG93KDEwMjQsIDQpLFxuICAgICAgcGI6IE1hdGgucG93KDEwMjQsIDUpXG4gICAgfTtcbiAgICB2YXIgcGFyc2VSZWdFeHAgPSAvXigoLXxcXCspPyhcXGQrKD86XFwuXFxkKyk/KSkgKihrYnxtYnxnYnx0YnxwYikkL2k7XG4gICAgZnVuY3Rpb24gYnl0ZXModmFsdWUsIG9wdGlvbnMpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdCh2YWx1ZSwgb3B0aW9ucyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZm9ybWF0KHZhbHVlLCBvcHRpb25zKSB7XG4gICAgICBpZiAoIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB2YXIgbWFnID0gTWF0aC5hYnModmFsdWUpO1xuICAgICAgdmFyIHRob3VzYW5kc1NlcGFyYXRvciA9IG9wdGlvbnMgJiYgb3B0aW9ucy50aG91c2FuZHNTZXBhcmF0b3IgfHwgXCJcIjtcbiAgICAgIHZhciB1bml0U2VwYXJhdG9yID0gb3B0aW9ucyAmJiBvcHRpb25zLnVuaXRTZXBhcmF0b3IgfHwgXCJcIjtcbiAgICAgIHZhciBkZWNpbWFsUGxhY2VzID0gb3B0aW9ucyAmJiBvcHRpb25zLmRlY2ltYWxQbGFjZXMgIT09IHZvaWQgMCA/IG9wdGlvbnMuZGVjaW1hbFBsYWNlcyA6IDI7XG4gICAgICB2YXIgZml4ZWREZWNpbWFscyA9IEJvb2xlYW4ob3B0aW9ucyAmJiBvcHRpb25zLmZpeGVkRGVjaW1hbHMpO1xuICAgICAgdmFyIHVuaXQgPSBvcHRpb25zICYmIG9wdGlvbnMudW5pdCB8fCBcIlwiO1xuICAgICAgaWYgKCF1bml0IHx8ICFtYXBbdW5pdC50b0xvd2VyQ2FzZSgpXSkge1xuICAgICAgICBpZiAobWFnID49IG1hcC5wYikge1xuICAgICAgICAgIHVuaXQgPSBcIlBCXCI7XG4gICAgICAgIH0gZWxzZSBpZiAobWFnID49IG1hcC50Yikge1xuICAgICAgICAgIHVuaXQgPSBcIlRCXCI7XG4gICAgICAgIH0gZWxzZSBpZiAobWFnID49IG1hcC5nYikge1xuICAgICAgICAgIHVuaXQgPSBcIkdCXCI7XG4gICAgICAgIH0gZWxzZSBpZiAobWFnID49IG1hcC5tYikge1xuICAgICAgICAgIHVuaXQgPSBcIk1CXCI7XG4gICAgICAgIH0gZWxzZSBpZiAobWFnID49IG1hcC5rYikge1xuICAgICAgICAgIHVuaXQgPSBcIktCXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdW5pdCA9IFwiQlwiO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgdmFsID0gdmFsdWUgLyBtYXBbdW5pdC50b0xvd2VyQ2FzZSgpXTtcbiAgICAgIHZhciBzdHIgPSB2YWwudG9GaXhlZChkZWNpbWFsUGxhY2VzKTtcbiAgICAgIGlmICghZml4ZWREZWNpbWFscykge1xuICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShmb3JtYXREZWNpbWFsc1JlZ0V4cCwgXCIkMVwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aG91c2FuZHNTZXBhcmF0b3IpIHtcbiAgICAgICAgc3RyID0gc3RyLnNwbGl0KFwiLlwiKS5tYXAoZnVuY3Rpb24ocywgaSkge1xuICAgICAgICAgIHJldHVybiBpID09PSAwID8gcy5yZXBsYWNlKGZvcm1hdFRob3VzYW5kc1JlZ0V4cCwgdGhvdXNhbmRzU2VwYXJhdG9yKSA6IHM7XG4gICAgICAgIH0pLmpvaW4oXCIuXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0ciArIHVuaXRTZXBhcmF0b3IgKyB1bml0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZSh2YWwpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiICYmICFpc05hTih2YWwpKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHRzID0gcGFyc2VSZWdFeHAuZXhlYyh2YWwpO1xuICAgICAgdmFyIGZsb2F0VmFsdWU7XG4gICAgICB2YXIgdW5pdCA9IFwiYlwiO1xuICAgICAgaWYgKCFyZXN1bHRzKSB7XG4gICAgICAgIGZsb2F0VmFsdWUgPSBwYXJzZUludCh2YWwsIDEwKTtcbiAgICAgICAgdW5pdCA9IFwiYlwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmxvYXRWYWx1ZSA9IHBhcnNlRmxvYXQocmVzdWx0c1sxXSk7XG4gICAgICAgIHVuaXQgPSByZXN1bHRzWzRdLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICBpZiAoaXNOYU4oZmxvYXRWYWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gTWF0aC5mbG9vcihtYXBbdW5pdF0gKiBmbG9hdFZhbHVlKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZGVwZC9pbmRleC5qc1xudmFyIHJlcXVpcmVfZGVwZCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9kZXBkL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICB2YXIgcmVsYXRpdmUgPSByZXF1aXJlKFwicGF0aFwiKS5yZWxhdGl2ZTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBkZXBkO1xuICAgIHZhciBiYXNlUGF0aCA9IHByb2Nlc3MuY3dkKCk7XG4gICAgZnVuY3Rpb24gY29udGFpbnNOYW1lc3BhY2Uoc3RyLCBuYW1lc3BhY2UpIHtcbiAgICAgIHZhciB2YWxzID0gc3RyLnNwbGl0KC9bICxdKy8pO1xuICAgICAgdmFyIG5zID0gU3RyaW5nKG5hbWVzcGFjZSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFscy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgdmFsID0gdmFsc1tpXTtcbiAgICAgICAgaWYgKHZhbCAmJiAodmFsID09PSBcIipcIiB8fCB2YWwudG9Mb3dlckNhc2UoKSA9PT0gbnMpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29udmVydERhdGFEZXNjcmlwdG9yVG9BY2Nlc3NvcihvYmosIHByb3AsIG1lc3NhZ2UpIHtcbiAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIHByb3ApO1xuICAgICAgdmFyIHZhbHVlID0gZGVzY3JpcHRvci52YWx1ZTtcbiAgICAgIGRlc2NyaXB0b3IuZ2V0ID0gZnVuY3Rpb24gZ2V0dGVyKCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9O1xuICAgICAgaWYgKGRlc2NyaXB0b3Iud3JpdGFibGUpIHtcbiAgICAgICAgZGVzY3JpcHRvci5zZXQgPSBmdW5jdGlvbiBzZXR0ZXIodmFsKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID0gdmFsO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZGVsZXRlIGRlc2NyaXB0b3IudmFsdWU7XG4gICAgICBkZWxldGUgZGVzY3JpcHRvci53cml0YWJsZTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIHByb3AsIGRlc2NyaXB0b3IpO1xuICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUFyZ3VtZW50c1N0cmluZyhhcml0eSkge1xuICAgICAgdmFyIHN0ciA9IFwiXCI7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyaXR5OyBpKyspIHtcbiAgICAgICAgc3RyICs9IFwiLCBhcmdcIiArIGk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyLnN1YnN0cigyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlU3RhY2tTdHJpbmcoc3RhY2spIHtcbiAgICAgIHZhciBzdHIgPSB0aGlzLm5hbWUgKyBcIjogXCIgKyB0aGlzLm5hbWVzcGFjZTtcbiAgICAgIGlmICh0aGlzLm1lc3NhZ2UpIHtcbiAgICAgICAgc3RyICs9IFwiIGRlcHJlY2F0ZWQgXCIgKyB0aGlzLm1lc3NhZ2U7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YWNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHN0ciArPSBcIlxcbiAgICBhdCBcIiArIHN0YWNrW2ldLnRvU3RyaW5nKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXBkKG5hbWVzcGFjZSkge1xuICAgICAgaWYgKCFuYW1lc3BhY2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IG5hbWVzcGFjZSBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBzdGFjayA9IGdldFN0YWNrKCk7XG4gICAgICB2YXIgc2l0ZSA9IGNhbGxTaXRlTG9jYXRpb24oc3RhY2tbMV0pO1xuICAgICAgdmFyIGZpbGUgPSBzaXRlWzBdO1xuICAgICAgZnVuY3Rpb24gZGVwcmVjYXRlKG1lc3NhZ2UpIHtcbiAgICAgICAgbG9nLmNhbGwoZGVwcmVjYXRlLCBtZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIGRlcHJlY2F0ZS5fZmlsZSA9IGZpbGU7XG4gICAgICBkZXByZWNhdGUuX2lnbm9yZWQgPSBpc2lnbm9yZWQobmFtZXNwYWNlKTtcbiAgICAgIGRlcHJlY2F0ZS5fbmFtZXNwYWNlID0gbmFtZXNwYWNlO1xuICAgICAgZGVwcmVjYXRlLl90cmFjZWQgPSBpc3RyYWNlZChuYW1lc3BhY2UpO1xuICAgICAgZGVwcmVjYXRlLl93YXJuZWQgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIGRlcHJlY2F0ZS5mdW5jdGlvbiA9IHdyYXBmdW5jdGlvbjtcbiAgICAgIGRlcHJlY2F0ZS5wcm9wZXJ0eSA9IHdyYXBwcm9wZXJ0eTtcbiAgICAgIHJldHVybiBkZXByZWNhdGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVlaGFzbGlzdGVuZXJzKGVtaXR0ZXIsIHR5cGUpIHtcbiAgICAgIHZhciBjb3VudCA9IHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgIT09IFwiZnVuY3Rpb25cIiA/IGVtaXR0ZXIubGlzdGVuZXJzKHR5cGUpLmxlbmd0aCA6IGVtaXR0ZXIubGlzdGVuZXJDb3VudCh0eXBlKTtcbiAgICAgIHJldHVybiBjb3VudCA+IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzaWdub3JlZChuYW1lc3BhY2UpIHtcbiAgICAgIGlmIChwcm9jZXNzLm5vRGVwcmVjYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICB2YXIgc3RyID0gcHJvY2Vzcy5lbnYuTk9fREVQUkVDQVRJT04gfHwgXCJcIjtcbiAgICAgIHJldHVybiBjb250YWluc05hbWVzcGFjZShzdHIsIG5hbWVzcGFjZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzdHJhY2VkKG5hbWVzcGFjZSkge1xuICAgICAgaWYgKHByb2Nlc3MudHJhY2VEZXByZWNhdGlvbikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHZhciBzdHIgPSBwcm9jZXNzLmVudi5UUkFDRV9ERVBSRUNBVElPTiB8fCBcIlwiO1xuICAgICAgcmV0dXJuIGNvbnRhaW5zTmFtZXNwYWNlKHN0ciwgbmFtZXNwYWNlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UsIHNpdGUpIHtcbiAgICAgIHZhciBoYXNsaXN0ZW5lcnMgPSBlZWhhc2xpc3RlbmVycyhwcm9jZXNzLCBcImRlcHJlY2F0aW9uXCIpO1xuICAgICAgaWYgKCFoYXNsaXN0ZW5lcnMgJiYgdGhpcy5faWdub3JlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIgY2FsbGVyO1xuICAgICAgdmFyIGNhbGxGaWxlO1xuICAgICAgdmFyIGNhbGxTaXRlO1xuICAgICAgdmFyIGRlcFNpdGU7XG4gICAgICB2YXIgaSA9IDA7XG4gICAgICB2YXIgc2VlbiA9IGZhbHNlO1xuICAgICAgdmFyIHN0YWNrID0gZ2V0U3RhY2soKTtcbiAgICAgIHZhciBmaWxlID0gdGhpcy5fZmlsZTtcbiAgICAgIGlmIChzaXRlKSB7XG4gICAgICAgIGRlcFNpdGUgPSBzaXRlO1xuICAgICAgICBjYWxsU2l0ZSA9IGNhbGxTaXRlTG9jYXRpb24oc3RhY2tbMV0pO1xuICAgICAgICBjYWxsU2l0ZS5uYW1lID0gZGVwU2l0ZS5uYW1lO1xuICAgICAgICBmaWxlID0gY2FsbFNpdGVbMF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpID0gMjtcbiAgICAgICAgZGVwU2l0ZSA9IGNhbGxTaXRlTG9jYXRpb24oc3RhY2tbaV0pO1xuICAgICAgICBjYWxsU2l0ZSA9IGRlcFNpdGU7XG4gICAgICB9XG4gICAgICBmb3IgKDsgaSA8IHN0YWNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNhbGxlciA9IGNhbGxTaXRlTG9jYXRpb24oc3RhY2tbaV0pO1xuICAgICAgICBjYWxsRmlsZSA9IGNhbGxlclswXTtcbiAgICAgICAgaWYgKGNhbGxGaWxlID09PSBmaWxlKSB7XG4gICAgICAgICAgc2VlbiA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoY2FsbEZpbGUgPT09IHRoaXMuX2ZpbGUpIHtcbiAgICAgICAgICBmaWxlID0gdGhpcy5fZmlsZTtcbiAgICAgICAgfSBlbHNlIGlmIChzZWVuKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciBrZXkgPSBjYWxsZXIgPyBkZXBTaXRlLmpvaW4oXCI6XCIpICsgXCJfX1wiICsgY2FsbGVyLmpvaW4oXCI6XCIpIDogdm9pZCAwO1xuICAgICAgaWYgKGtleSAhPT0gdm9pZCAwICYmIGtleSBpbiB0aGlzLl93YXJuZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5fd2FybmVkW2tleV0gPSB0cnVlO1xuICAgICAgdmFyIG1zZyA9IG1lc3NhZ2U7XG4gICAgICBpZiAoIW1zZykge1xuICAgICAgICBtc2cgPSBjYWxsU2l0ZSA9PT0gZGVwU2l0ZSB8fCAhY2FsbFNpdGUubmFtZSA/IGRlZmF1bHRNZXNzYWdlKGRlcFNpdGUpIDogZGVmYXVsdE1lc3NhZ2UoY2FsbFNpdGUpO1xuICAgICAgfVxuICAgICAgaWYgKGhhc2xpc3RlbmVycykge1xuICAgICAgICB2YXIgZXJyMiA9IERlcHJlY2F0aW9uRXJyb3IodGhpcy5fbmFtZXNwYWNlLCBtc2csIHN0YWNrLnNsaWNlKGkpKTtcbiAgICAgICAgcHJvY2Vzcy5lbWl0KFwiZGVwcmVjYXRpb25cIiwgZXJyMik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBmb3JtYXQgPSBwcm9jZXNzLnN0ZGVyci5pc1RUWSA/IGZvcm1hdENvbG9yIDogZm9ybWF0UGxhaW47XG4gICAgICB2YXIgb3V0cHV0ID0gZm9ybWF0LmNhbGwodGhpcywgbXNnLCBjYWxsZXIsIHN0YWNrLnNsaWNlKGkpKTtcbiAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKG91dHB1dCArIFwiXFxuXCIsIFwidXRmOFwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FsbFNpdGVMb2NhdGlvbihjYWxsU2l0ZSkge1xuICAgICAgdmFyIGZpbGUgPSBjYWxsU2l0ZS5nZXRGaWxlTmFtZSgpIHx8IFwiPGFub255bW91cz5cIjtcbiAgICAgIHZhciBsaW5lID0gY2FsbFNpdGUuZ2V0TGluZU51bWJlcigpO1xuICAgICAgdmFyIGNvbG0gPSBjYWxsU2l0ZS5nZXRDb2x1bW5OdW1iZXIoKTtcbiAgICAgIGlmIChjYWxsU2l0ZS5pc0V2YWwoKSkge1xuICAgICAgICBmaWxlID0gY2FsbFNpdGUuZ2V0RXZhbE9yaWdpbigpICsgXCIsIFwiICsgZmlsZTtcbiAgICAgIH1cbiAgICAgIHZhciBzaXRlID0gW2ZpbGUsIGxpbmUsIGNvbG1dO1xuICAgICAgc2l0ZS5jYWxsU2l0ZSA9IGNhbGxTaXRlO1xuICAgICAgc2l0ZS5uYW1lID0gY2FsbFNpdGUuZ2V0RnVuY3Rpb25OYW1lKCk7XG4gICAgICByZXR1cm4gc2l0ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVmYXVsdE1lc3NhZ2Uoc2l0ZSkge1xuICAgICAgdmFyIGNhbGxTaXRlID0gc2l0ZS5jYWxsU2l0ZTtcbiAgICAgIHZhciBmdW5jTmFtZSA9IHNpdGUubmFtZTtcbiAgICAgIGlmICghZnVuY05hbWUpIHtcbiAgICAgICAgZnVuY05hbWUgPSBcIjxhbm9ueW1vdXNAXCIgKyBmb3JtYXRMb2NhdGlvbihzaXRlKSArIFwiPlwiO1xuICAgICAgfVxuICAgICAgdmFyIGNvbnRleHQgPSBjYWxsU2l0ZS5nZXRUaGlzKCk7XG4gICAgICB2YXIgdHlwZU5hbWUgPSBjb250ZXh0ICYmIGNhbGxTaXRlLmdldFR5cGVOYW1lKCk7XG4gICAgICBpZiAodHlwZU5hbWUgPT09IFwiT2JqZWN0XCIpIHtcbiAgICAgICAgdHlwZU5hbWUgPSB2b2lkIDA7XG4gICAgICB9XG4gICAgICBpZiAodHlwZU5hbWUgPT09IFwiRnVuY3Rpb25cIikge1xuICAgICAgICB0eXBlTmFtZSA9IGNvbnRleHQubmFtZSB8fCB0eXBlTmFtZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0eXBlTmFtZSAmJiBjYWxsU2l0ZS5nZXRNZXRob2ROYW1lKCkgPyB0eXBlTmFtZSArIFwiLlwiICsgZnVuY05hbWUgOiBmdW5jTmFtZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZm9ybWF0UGxhaW4obXNnLCBjYWxsZXIsIHN0YWNrKSB7XG4gICAgICB2YXIgdGltZXN0YW1wID0gKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpKS50b1VUQ1N0cmluZygpO1xuICAgICAgdmFyIGZvcm1hdHRlZCA9IHRpbWVzdGFtcCArIFwiIFwiICsgdGhpcy5fbmFtZXNwYWNlICsgXCIgZGVwcmVjYXRlZCBcIiArIG1zZztcbiAgICAgIGlmICh0aGlzLl90cmFjZWQpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGFjay5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGZvcm1hdHRlZCArPSBcIlxcbiAgICBhdCBcIiArIHN0YWNrW2ldLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1hdHRlZDtcbiAgICAgIH1cbiAgICAgIGlmIChjYWxsZXIpIHtcbiAgICAgICAgZm9ybWF0dGVkICs9IFwiIGF0IFwiICsgZm9ybWF0TG9jYXRpb24oY2FsbGVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZvcm1hdENvbG9yKG1zZywgY2FsbGVyLCBzdGFjaykge1xuICAgICAgdmFyIGZvcm1hdHRlZCA9IFwiXFx4MUJbMzY7MW1cIiArIHRoaXMuX25hbWVzcGFjZSArIFwiXFx4MUJbMjI7MzltIFxceDFCWzMzOzFtZGVwcmVjYXRlZFxceDFCWzIyOzM5bSBcXHgxQlswbVwiICsgbXNnICsgXCJcXHgxQlszOW1cIjtcbiAgICAgIGlmICh0aGlzLl90cmFjZWQpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGFjay5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGZvcm1hdHRlZCArPSBcIlxcbiAgICBcXHgxQlszNm1hdCBcIiArIHN0YWNrW2ldLnRvU3RyaW5nKCkgKyBcIlxceDFCWzM5bVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgICB9XG4gICAgICBpZiAoY2FsbGVyKSB7XG4gICAgICAgIGZvcm1hdHRlZCArPSBcIiBcXHgxQlszNm1cIiArIGZvcm1hdExvY2F0aW9uKGNhbGxlcikgKyBcIlxceDFCWzM5bVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZvcm1hdHRlZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZm9ybWF0TG9jYXRpb24oY2FsbFNpdGUpIHtcbiAgICAgIHJldHVybiByZWxhdGl2ZShiYXNlUGF0aCwgY2FsbFNpdGVbMF0pICsgXCI6XCIgKyBjYWxsU2l0ZVsxXSArIFwiOlwiICsgY2FsbFNpdGVbMl07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFN0YWNrKCkge1xuICAgICAgdmFyIGxpbWl0ID0gRXJyb3Iuc3RhY2tUcmFjZUxpbWl0O1xuICAgICAgdmFyIG9iaiA9IHt9O1xuICAgICAgdmFyIHByZXAgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTtcbiAgICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gcHJlcGFyZU9iamVjdFN0YWNrVHJhY2U7XG4gICAgICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSBNYXRoLm1heCgxMCwgbGltaXQpO1xuICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uob2JqKTtcbiAgICAgIHZhciBzdGFjayA9IG9iai5zdGFjay5zbGljZSgxKTtcbiAgICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gcHJlcDtcbiAgICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IGxpbWl0O1xuICAgICAgcmV0dXJuIHN0YWNrO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcmVwYXJlT2JqZWN0U3RhY2tUcmFjZShvYmosIHN0YWNrKSB7XG4gICAgICByZXR1cm4gc3RhY2s7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdyYXBmdW5jdGlvbihmbiwgbWVzc2FnZSkge1xuICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBmbiBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4gICAgICB9XG4gICAgICB2YXIgYXJncyA9IGNyZWF0ZUFyZ3VtZW50c1N0cmluZyhmbi5sZW5ndGgpO1xuICAgICAgdmFyIHN0YWNrID0gZ2V0U3RhY2soKTtcbiAgICAgIHZhciBzaXRlID0gY2FsbFNpdGVMb2NhdGlvbihzdGFja1sxXSk7XG4gICAgICBzaXRlLm5hbWUgPSBmbi5uYW1lO1xuICAgICAgdmFyIGRlcHJlY2F0ZWRmbiA9IG5ldyBGdW5jdGlvbihcbiAgICAgICAgXCJmblwiLFxuICAgICAgICBcImxvZ1wiLFxuICAgICAgICBcImRlcHJlY2F0ZVwiLFxuICAgICAgICBcIm1lc3NhZ2VcIixcbiAgICAgICAgXCJzaXRlXCIsXG4gICAgICAgICdcInVzZSBzdHJpY3RcIlxcbnJldHVybiBmdW5jdGlvbiAoJyArIGFyZ3MgKyBcIikge2xvZy5jYWxsKGRlcHJlY2F0ZSwgbWVzc2FnZSwgc2l0ZSlcXG5yZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKVxcbn1cIlxuICAgICAgKShmbiwgbG9nLCB0aGlzLCBtZXNzYWdlLCBzaXRlKTtcbiAgICAgIHJldHVybiBkZXByZWNhdGVkZm47XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdyYXBwcm9wZXJ0eShvYmosIHByb3AsIG1lc3NhZ2UpIHtcbiAgICAgIGlmICghb2JqIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBvYmogbXVzdCBiZSBvYmplY3RcIik7XG4gICAgICB9XG4gICAgICB2YXIgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBwcm9wKTtcbiAgICAgIGlmICghZGVzY3JpcHRvcikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwibXVzdCBjYWxsIHByb3BlcnR5IG9uIG93bmVyIG9iamVjdFwiKTtcbiAgICAgIH1cbiAgICAgIGlmICghZGVzY3JpcHRvci5jb25maWd1cmFibGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInByb3BlcnR5IG11c3QgYmUgY29uZmlndXJhYmxlXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGRlcHJlY2F0ZSA9IHRoaXM7XG4gICAgICB2YXIgc3RhY2sgPSBnZXRTdGFjaygpO1xuICAgICAgdmFyIHNpdGUgPSBjYWxsU2l0ZUxvY2F0aW9uKHN0YWNrWzFdKTtcbiAgICAgIHNpdGUubmFtZSA9IHByb3A7XG4gICAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIHtcbiAgICAgICAgZGVzY3JpcHRvciA9IGNvbnZlcnREYXRhRGVzY3JpcHRvclRvQWNjZXNzb3Iob2JqLCBwcm9wLCBtZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHZhciBnZXQgPSBkZXNjcmlwdG9yLmdldDtcbiAgICAgIHZhciBzZXQgPSBkZXNjcmlwdG9yLnNldDtcbiAgICAgIGlmICh0eXBlb2YgZ2V0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgZGVzY3JpcHRvci5nZXQgPSBmdW5jdGlvbiBnZXR0ZXIoKSB7XG4gICAgICAgICAgbG9nLmNhbGwoZGVwcmVjYXRlLCBtZXNzYWdlLCBzaXRlKTtcbiAgICAgICAgICByZXR1cm4gZ2V0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHNldCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGRlc2NyaXB0b3Iuc2V0ID0gZnVuY3Rpb24gc2V0dGVyKCkge1xuICAgICAgICAgIGxvZy5jYWxsKGRlcHJlY2F0ZSwgbWVzc2FnZSwgc2l0ZSk7XG4gICAgICAgICAgcmV0dXJuIHNldC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgcHJvcCwgZGVzY3JpcHRvcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIERlcHJlY2F0aW9uRXJyb3IobmFtZXNwYWNlLCBtZXNzYWdlLCBzdGFjaykge1xuICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKCk7XG4gICAgICB2YXIgc3RhY2tTdHJpbmc7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyb3IsIFwiY29uc3RydWN0b3JcIiwge1xuICAgICAgICB2YWx1ZTogRGVwcmVjYXRpb25FcnJvclxuICAgICAgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyb3IsIFwibWVzc2FnZVwiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHZhbHVlOiBtZXNzYWdlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyb3IsIFwibmFtZVwiLCB7XG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiBcIkRlcHJlY2F0aW9uRXJyb3JcIixcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycm9yLCBcIm5hbWVzcGFjZVwiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHZhbHVlOiBuYW1lc3BhY2UsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnJvciwgXCJzdGFja1wiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgaWYgKHN0YWNrU3RyaW5nICE9PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHJldHVybiBzdGFja1N0cmluZztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHN0YWNrU3RyaW5nID0gY3JlYXRlU3RhY2tTdHJpbmcuY2FsbCh0aGlzLCBzdGFjayk7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gc2V0dGVyKHZhbCkge1xuICAgICAgICAgIHN0YWNrU3RyaW5nID0gdmFsO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvc2V0cHJvdG90eXBlb2YvaW5kZXguanNcbnZhciByZXF1aXJlX3NldHByb3RvdHlwZW9mID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NldHByb3RvdHlwZW9mL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgPyBzZXRQcm90b09mIDogbWl4aW5Qcm9wZXJ0aWVzKTtcbiAgICBmdW5jdGlvbiBzZXRQcm90b09mKG9iaiwgcHJvdG8pIHtcbiAgICAgIG9iai5fX3Byb3RvX18gPSBwcm90bztcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1peGluUHJvcGVydGllcyhvYmosIHByb3RvKSB7XG4gICAgICBmb3IgKHZhciBwcm9wIGluIHByb3RvKSB7XG4gICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIHtcbiAgICAgICAgICBvYmpbcHJvcF0gPSBwcm90b1twcm9wXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvc3RhdHVzZXMvY29kZXMuanNvblxudmFyIHJlcXVpcmVfY29kZXMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc3RhdHVzZXMvY29kZXMuanNvblwiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgXCIxMDBcIjogXCJDb250aW51ZVwiLFxuICAgICAgXCIxMDFcIjogXCJTd2l0Y2hpbmcgUHJvdG9jb2xzXCIsXG4gICAgICBcIjEwMlwiOiBcIlByb2Nlc3NpbmdcIixcbiAgICAgIFwiMTAzXCI6IFwiRWFybHkgSGludHNcIixcbiAgICAgIFwiMjAwXCI6IFwiT0tcIixcbiAgICAgIFwiMjAxXCI6IFwiQ3JlYXRlZFwiLFxuICAgICAgXCIyMDJcIjogXCJBY2NlcHRlZFwiLFxuICAgICAgXCIyMDNcIjogXCJOb24tQXV0aG9yaXRhdGl2ZSBJbmZvcm1hdGlvblwiLFxuICAgICAgXCIyMDRcIjogXCJObyBDb250ZW50XCIsXG4gICAgICBcIjIwNVwiOiBcIlJlc2V0IENvbnRlbnRcIixcbiAgICAgIFwiMjA2XCI6IFwiUGFydGlhbCBDb250ZW50XCIsXG4gICAgICBcIjIwN1wiOiBcIk11bHRpLVN0YXR1c1wiLFxuICAgICAgXCIyMDhcIjogXCJBbHJlYWR5IFJlcG9ydGVkXCIsXG4gICAgICBcIjIyNlwiOiBcIklNIFVzZWRcIixcbiAgICAgIFwiMzAwXCI6IFwiTXVsdGlwbGUgQ2hvaWNlc1wiLFxuICAgICAgXCIzMDFcIjogXCJNb3ZlZCBQZXJtYW5lbnRseVwiLFxuICAgICAgXCIzMDJcIjogXCJGb3VuZFwiLFxuICAgICAgXCIzMDNcIjogXCJTZWUgT3RoZXJcIixcbiAgICAgIFwiMzA0XCI6IFwiTm90IE1vZGlmaWVkXCIsXG4gICAgICBcIjMwNVwiOiBcIlVzZSBQcm94eVwiLFxuICAgICAgXCIzMDdcIjogXCJUZW1wb3JhcnkgUmVkaXJlY3RcIixcbiAgICAgIFwiMzA4XCI6IFwiUGVybWFuZW50IFJlZGlyZWN0XCIsXG4gICAgICBcIjQwMFwiOiBcIkJhZCBSZXF1ZXN0XCIsXG4gICAgICBcIjQwMVwiOiBcIlVuYXV0aG9yaXplZFwiLFxuICAgICAgXCI0MDJcIjogXCJQYXltZW50IFJlcXVpcmVkXCIsXG4gICAgICBcIjQwM1wiOiBcIkZvcmJpZGRlblwiLFxuICAgICAgXCI0MDRcIjogXCJOb3QgRm91bmRcIixcbiAgICAgIFwiNDA1XCI6IFwiTWV0aG9kIE5vdCBBbGxvd2VkXCIsXG4gICAgICBcIjQwNlwiOiBcIk5vdCBBY2NlcHRhYmxlXCIsXG4gICAgICBcIjQwN1wiOiBcIlByb3h5IEF1dGhlbnRpY2F0aW9uIFJlcXVpcmVkXCIsXG4gICAgICBcIjQwOFwiOiBcIlJlcXVlc3QgVGltZW91dFwiLFxuICAgICAgXCI0MDlcIjogXCJDb25mbGljdFwiLFxuICAgICAgXCI0MTBcIjogXCJHb25lXCIsXG4gICAgICBcIjQxMVwiOiBcIkxlbmd0aCBSZXF1aXJlZFwiLFxuICAgICAgXCI0MTJcIjogXCJQcmVjb25kaXRpb24gRmFpbGVkXCIsXG4gICAgICBcIjQxM1wiOiBcIlBheWxvYWQgVG9vIExhcmdlXCIsXG4gICAgICBcIjQxNFwiOiBcIlVSSSBUb28gTG9uZ1wiLFxuICAgICAgXCI0MTVcIjogXCJVbnN1cHBvcnRlZCBNZWRpYSBUeXBlXCIsXG4gICAgICBcIjQxNlwiOiBcIlJhbmdlIE5vdCBTYXRpc2ZpYWJsZVwiLFxuICAgICAgXCI0MTdcIjogXCJFeHBlY3RhdGlvbiBGYWlsZWRcIixcbiAgICAgIFwiNDE4XCI6IFwiSSdtIGEgVGVhcG90XCIsXG4gICAgICBcIjQyMVwiOiBcIk1pc2RpcmVjdGVkIFJlcXVlc3RcIixcbiAgICAgIFwiNDIyXCI6IFwiVW5wcm9jZXNzYWJsZSBFbnRpdHlcIixcbiAgICAgIFwiNDIzXCI6IFwiTG9ja2VkXCIsXG4gICAgICBcIjQyNFwiOiBcIkZhaWxlZCBEZXBlbmRlbmN5XCIsXG4gICAgICBcIjQyNVwiOiBcIlRvbyBFYXJseVwiLFxuICAgICAgXCI0MjZcIjogXCJVcGdyYWRlIFJlcXVpcmVkXCIsXG4gICAgICBcIjQyOFwiOiBcIlByZWNvbmRpdGlvbiBSZXF1aXJlZFwiLFxuICAgICAgXCI0MjlcIjogXCJUb28gTWFueSBSZXF1ZXN0c1wiLFxuICAgICAgXCI0MzFcIjogXCJSZXF1ZXN0IEhlYWRlciBGaWVsZHMgVG9vIExhcmdlXCIsXG4gICAgICBcIjQ1MVwiOiBcIlVuYXZhaWxhYmxlIEZvciBMZWdhbCBSZWFzb25zXCIsXG4gICAgICBcIjUwMFwiOiBcIkludGVybmFsIFNlcnZlciBFcnJvclwiLFxuICAgICAgXCI1MDFcIjogXCJOb3QgSW1wbGVtZW50ZWRcIixcbiAgICAgIFwiNTAyXCI6IFwiQmFkIEdhdGV3YXlcIixcbiAgICAgIFwiNTAzXCI6IFwiU2VydmljZSBVbmF2YWlsYWJsZVwiLFxuICAgICAgXCI1MDRcIjogXCJHYXRld2F5IFRpbWVvdXRcIixcbiAgICAgIFwiNTA1XCI6IFwiSFRUUCBWZXJzaW9uIE5vdCBTdXBwb3J0ZWRcIixcbiAgICAgIFwiNTA2XCI6IFwiVmFyaWFudCBBbHNvIE5lZ290aWF0ZXNcIixcbiAgICAgIFwiNTA3XCI6IFwiSW5zdWZmaWNpZW50IFN0b3JhZ2VcIixcbiAgICAgIFwiNTA4XCI6IFwiTG9vcCBEZXRlY3RlZFwiLFxuICAgICAgXCI1MDlcIjogXCJCYW5kd2lkdGggTGltaXQgRXhjZWVkZWRcIixcbiAgICAgIFwiNTEwXCI6IFwiTm90IEV4dGVuZGVkXCIsXG4gICAgICBcIjUxMVwiOiBcIk5ldHdvcmsgQXV0aGVudGljYXRpb24gUmVxdWlyZWRcIlxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvc3RhdHVzZXMvaW5kZXguanNcbnZhciByZXF1aXJlX3N0YXR1c2VzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3N0YXR1c2VzL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgY29kZXMgPSByZXF1aXJlX2NvZGVzKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gc3RhdHVzO1xuICAgIHN0YXR1cy5tZXNzYWdlID0gY29kZXM7XG4gICAgc3RhdHVzLmNvZGUgPSBjcmVhdGVNZXNzYWdlVG9TdGF0dXNDb2RlTWFwKGNvZGVzKTtcbiAgICBzdGF0dXMuY29kZXMgPSBjcmVhdGVTdGF0dXNDb2RlTGlzdChjb2Rlcyk7XG4gICAgc3RhdHVzLnJlZGlyZWN0ID0ge1xuICAgICAgMzAwOiB0cnVlLFxuICAgICAgMzAxOiB0cnVlLFxuICAgICAgMzAyOiB0cnVlLFxuICAgICAgMzAzOiB0cnVlLFxuICAgICAgMzA1OiB0cnVlLFxuICAgICAgMzA3OiB0cnVlLFxuICAgICAgMzA4OiB0cnVlXG4gICAgfTtcbiAgICBzdGF0dXMuZW1wdHkgPSB7XG4gICAgICAyMDQ6IHRydWUsXG4gICAgICAyMDU6IHRydWUsXG4gICAgICAzMDQ6IHRydWVcbiAgICB9O1xuICAgIHN0YXR1cy5yZXRyeSA9IHtcbiAgICAgIDUwMjogdHJ1ZSxcbiAgICAgIDUwMzogdHJ1ZSxcbiAgICAgIDUwNDogdHJ1ZVxuICAgIH07XG4gICAgZnVuY3Rpb24gY3JlYXRlTWVzc2FnZVRvU3RhdHVzQ29kZU1hcChjb2RlczIpIHtcbiAgICAgIHZhciBtYXAgPSB7fTtcbiAgICAgIE9iamVjdC5rZXlzKGNvZGVzMikuZm9yRWFjaChmdW5jdGlvbiBmb3JFYWNoQ29kZShjb2RlKSB7XG4gICAgICAgIHZhciBtZXNzYWdlID0gY29kZXMyW2NvZGVdO1xuICAgICAgICB2YXIgc3RhdHVzMiA9IE51bWJlcihjb2RlKTtcbiAgICAgICAgbWFwW21lc3NhZ2UudG9Mb3dlckNhc2UoKV0gPSBzdGF0dXMyO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbWFwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVTdGF0dXNDb2RlTGlzdChjb2RlczIpIHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhjb2RlczIpLm1hcChmdW5jdGlvbiBtYXBDb2RlKGNvZGUpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcihjb2RlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRTdGF0dXNDb2RlKG1lc3NhZ2UpIHtcbiAgICAgIHZhciBtc2cgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGF0dXMuY29kZSwgbXNnKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgc3RhdHVzIG1lc3NhZ2U6IFwiJyArIG1lc3NhZ2UgKyAnXCInKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdGF0dXMuY29kZVttc2ddO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRTdGF0dXNNZXNzYWdlKGNvZGUpIHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXR1cy5tZXNzYWdlLCBjb2RlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIHN0YXR1cyBjb2RlOiBcIiArIGNvZGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0YXR1cy5tZXNzYWdlW2NvZGVdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdGF0dXMoY29kZSkge1xuICAgICAgaWYgKHR5cGVvZiBjb2RlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHJldHVybiBnZXRTdGF0dXNNZXNzYWdlKGNvZGUpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBjb2RlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJjb2RlIG11c3QgYmUgYSBudW1iZXIgb3Igc3RyaW5nXCIpO1xuICAgICAgfVxuICAgICAgdmFyIG4gPSBwYXJzZUludChjb2RlLCAxMCk7XG4gICAgICBpZiAoIWlzTmFOKG4pKSB7XG4gICAgICAgIHJldHVybiBnZXRTdGF0dXNNZXNzYWdlKG4pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGdldFN0YXR1c0NvZGUoY29kZSk7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanNcbnZhciByZXF1aXJlX2luaGVyaXRzX2Jyb3dzZXIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvaW5oZXJpdHMvaW5oZXJpdHNfYnJvd3Nlci5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgaWYgKHR5cGVvZiBPYmplY3QuY3JlYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgICAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3I7XG4gICAgICAgICAgY3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ3Rvci5wcm90b3R5cGUsIHtcbiAgICAgICAgICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICAgICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yO1xuICAgICAgICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIH07XG4gICAgICAgICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZTtcbiAgICAgICAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpO1xuICAgICAgICAgIGN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY3RvcjtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvaW5oZXJpdHMvaW5oZXJpdHMuanNcbnZhciByZXF1aXJlX2luaGVyaXRzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICB0cnkge1xuICAgICAgdXRpbDIgPSByZXF1aXJlKFwidXRpbFwiKTtcbiAgICAgIGlmICh0eXBlb2YgdXRpbDIuaW5oZXJpdHMgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgXCJcIjtcbiAgICAgIG1vZHVsZTIuZXhwb3J0cyA9IHV0aWwyLmluaGVyaXRzO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIG1vZHVsZTIuZXhwb3J0cyA9IHJlcXVpcmVfaW5oZXJpdHNfYnJvd3NlcigpO1xuICAgIH1cbiAgICB2YXIgdXRpbDI7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdG9pZGVudGlmaWVyL2luZGV4LmpzXG52YXIgcmVxdWlyZV90b2lkZW50aWZpZXIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvdG9pZGVudGlmaWVyL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB0b0lkZW50aWZpZXI7XG4gICAgZnVuY3Rpb24gdG9JZGVudGlmaWVyKHN0cikge1xuICAgICAgcmV0dXJuIHN0ci5zcGxpdChcIiBcIikubWFwKGZ1bmN0aW9uKHRva2VuKSB7XG4gICAgICAgIHJldHVybiB0b2tlbi5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpICsgdG9rZW4uc2xpY2UoMSk7XG4gICAgICB9KS5qb2luKFwiXCIpLnJlcGxhY2UoL1teIF8wLTlhLXpdL2dpLCBcIlwiKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvaHR0cC1lcnJvcnMvaW5kZXguanNcbnZhciByZXF1aXJlX2h0dHBfZXJyb3JzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2h0dHAtZXJyb3JzL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZGVwcmVjYXRlID0gcmVxdWlyZV9kZXBkKCkoXCJodHRwLWVycm9yc1wiKTtcbiAgICB2YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlX3NldHByb3RvdHlwZW9mKCk7XG4gICAgdmFyIHN0YXR1c2VzID0gcmVxdWlyZV9zdGF0dXNlcygpO1xuICAgIHZhciBpbmhlcml0cyA9IHJlcXVpcmVfaW5oZXJpdHMoKTtcbiAgICB2YXIgdG9JZGVudGlmaWVyID0gcmVxdWlyZV90b2lkZW50aWZpZXIoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBjcmVhdGVFcnJvcjtcbiAgICBtb2R1bGUyLmV4cG9ydHMuSHR0cEVycm9yID0gY3JlYXRlSHR0cEVycm9yQ29uc3RydWN0b3IoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMuaXNIdHRwRXJyb3IgPSBjcmVhdGVJc0h0dHBFcnJvckZ1bmN0aW9uKG1vZHVsZTIuZXhwb3J0cy5IdHRwRXJyb3IpO1xuICAgIHBvcHVsYXRlQ29uc3RydWN0b3JFeHBvcnRzKG1vZHVsZTIuZXhwb3J0cywgc3RhdHVzZXMuY29kZXMsIG1vZHVsZTIuZXhwb3J0cy5IdHRwRXJyb3IpO1xuICAgIGZ1bmN0aW9uIGNvZGVDbGFzcyhzdGF0dXMpIHtcbiAgICAgIHJldHVybiBOdW1iZXIoU3RyaW5nKHN0YXR1cykuY2hhckF0KDApICsgXCIwMFwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlRXJyb3IoKSB7XG4gICAgICB2YXIgZXJyMjtcbiAgICAgIHZhciBtc2c7XG4gICAgICB2YXIgc3RhdHVzID0gNTAwO1xuICAgICAgdmFyIHByb3BzID0ge307XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgYXJnID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB2YXIgdHlwZSA9IHR5cGVvZiBhcmc7XG4gICAgICAgIGlmICh0eXBlID09PSBcIm9iamVjdFwiICYmIGFyZyBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgZXJyMiA9IGFyZztcbiAgICAgICAgICBzdGF0dXMgPSBlcnIyLnN0YXR1cyB8fCBlcnIyLnN0YXR1c0NvZGUgfHwgc3RhdHVzO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwibnVtYmVyXCIgJiYgaSA9PT0gMCkge1xuICAgICAgICAgIHN0YXR1cyA9IGFyZztcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgbXNnID0gYXJnO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICBwcm9wcyA9IGFyZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgI1wiICsgKGkgKyAxKSArIFwiIHVuc3VwcG9ydGVkIHR5cGUgXCIgKyB0eXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBzdGF0dXMgPT09IFwibnVtYmVyXCIgJiYgKHN0YXR1cyA8IDQwMCB8fCBzdGF0dXMgPj0gNjAwKSkge1xuICAgICAgICBkZXByZWNhdGUoXCJub24tZXJyb3Igc3RhdHVzIGNvZGU7IHVzZSBvbmx5IDR4eCBvciA1eHggc3RhdHVzIGNvZGVzXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBzdGF0dXMgIT09IFwibnVtYmVyXCIgfHwgIXN0YXR1c2VzLm1lc3NhZ2Vbc3RhdHVzXSAmJiAoc3RhdHVzIDwgNDAwIHx8IHN0YXR1cyA+PSA2MDApKSB7XG4gICAgICAgIHN0YXR1cyA9IDUwMDtcbiAgICAgIH1cbiAgICAgIHZhciBIdHRwRXJyb3IgPSBjcmVhdGVFcnJvcltzdGF0dXNdIHx8IGNyZWF0ZUVycm9yW2NvZGVDbGFzcyhzdGF0dXMpXTtcbiAgICAgIGlmICghZXJyMikge1xuICAgICAgICBlcnIyID0gSHR0cEVycm9yID8gbmV3IEh0dHBFcnJvcihtc2cpIDogbmV3IEVycm9yKG1zZyB8fCBzdGF0dXNlcy5tZXNzYWdlW3N0YXR1c10pO1xuICAgICAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShlcnIyLCBjcmVhdGVFcnJvcik7XG4gICAgICB9XG4gICAgICBpZiAoIUh0dHBFcnJvciB8fCAhKGVycjIgaW5zdGFuY2VvZiBIdHRwRXJyb3IpIHx8IGVycjIuc3RhdHVzICE9PSBzdGF0dXMpIHtcbiAgICAgICAgZXJyMi5leHBvc2UgPSBzdGF0dXMgPCA1MDA7XG4gICAgICAgIGVycjIuc3RhdHVzID0gZXJyMi5zdGF0dXNDb2RlID0gc3RhdHVzO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIga2V5IGluIHByb3BzKSB7XG4gICAgICAgIGlmIChrZXkgIT09IFwic3RhdHVzXCIgJiYga2V5ICE9PSBcInN0YXR1c0NvZGVcIikge1xuICAgICAgICAgIGVycjJba2V5XSA9IHByb3BzW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBlcnIyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVIdHRwRXJyb3JDb25zdHJ1Y3RvcigpIHtcbiAgICAgIGZ1bmN0aW9uIEh0dHBFcnJvcigpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImNhbm5vdCBjb25zdHJ1Y3QgYWJzdHJhY3QgY2xhc3NcIik7XG4gICAgICB9XG4gICAgICBpbmhlcml0cyhIdHRwRXJyb3IsIEVycm9yKTtcbiAgICAgIHJldHVybiBIdHRwRXJyb3I7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUNsaWVudEVycm9yQ29uc3RydWN0b3IoSHR0cEVycm9yLCBuYW1lLCBjb2RlKSB7XG4gICAgICB2YXIgY2xhc3NOYW1lID0gdG9DbGFzc05hbWUobmFtZSk7XG4gICAgICBmdW5jdGlvbiBDbGllbnRFcnJvcihtZXNzYWdlKSB7XG4gICAgICAgIHZhciBtc2cgPSBtZXNzYWdlICE9IG51bGwgPyBtZXNzYWdlIDogc3RhdHVzZXMubWVzc2FnZVtjb2RlXTtcbiAgICAgICAgdmFyIGVycjIgPSBuZXcgRXJyb3IobXNnKTtcbiAgICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZXJyMiwgQ2xpZW50RXJyb3IpO1xuICAgICAgICBzZXRQcm90b3R5cGVPZihlcnIyLCBDbGllbnRFcnJvci5wcm90b3R5cGUpO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyMiwgXCJtZXNzYWdlXCIsIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogbXNnLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyMiwgXCJuYW1lXCIsIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgdmFsdWU6IGNsYXNzTmFtZSxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGVycjI7XG4gICAgICB9XG4gICAgICBpbmhlcml0cyhDbGllbnRFcnJvciwgSHR0cEVycm9yKTtcbiAgICAgIG5hbWVGdW5jKENsaWVudEVycm9yLCBjbGFzc05hbWUpO1xuICAgICAgQ2xpZW50RXJyb3IucHJvdG90eXBlLnN0YXR1cyA9IGNvZGU7XG4gICAgICBDbGllbnRFcnJvci5wcm90b3R5cGUuc3RhdHVzQ29kZSA9IGNvZGU7XG4gICAgICBDbGllbnRFcnJvci5wcm90b3R5cGUuZXhwb3NlID0gdHJ1ZTtcbiAgICAgIHJldHVybiBDbGllbnRFcnJvcjtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlSXNIdHRwRXJyb3JGdW5jdGlvbihIdHRwRXJyb3IpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiBpc0h0dHBFcnJvcih2YWwpIHtcbiAgICAgICAgaWYgKCF2YWwgfHwgdHlwZW9mIHZhbCAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsIGluc3RhbmNlb2YgSHR0cEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIEVycm9yICYmIHR5cGVvZiB2YWwuZXhwb3NlID09PSBcImJvb2xlYW5cIiAmJiB0eXBlb2YgdmFsLnN0YXR1c0NvZGUgPT09IFwibnVtYmVyXCIgJiYgdmFsLnN0YXR1cyA9PT0gdmFsLnN0YXR1c0NvZGU7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVTZXJ2ZXJFcnJvckNvbnN0cnVjdG9yKEh0dHBFcnJvciwgbmFtZSwgY29kZSkge1xuICAgICAgdmFyIGNsYXNzTmFtZSA9IHRvQ2xhc3NOYW1lKG5hbWUpO1xuICAgICAgZnVuY3Rpb24gU2VydmVyRXJyb3IobWVzc2FnZSkge1xuICAgICAgICB2YXIgbXNnID0gbWVzc2FnZSAhPSBudWxsID8gbWVzc2FnZSA6IHN0YXR1c2VzLm1lc3NhZ2VbY29kZV07XG4gICAgICAgIHZhciBlcnIyID0gbmV3IEVycm9yKG1zZyk7XG4gICAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKGVycjIsIFNlcnZlckVycm9yKTtcbiAgICAgICAgc2V0UHJvdG90eXBlT2YoZXJyMiwgU2VydmVyRXJyb3IucHJvdG90eXBlKTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycjIsIFwibWVzc2FnZVwiLCB7XG4gICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgdmFsdWU6IG1zZyxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycjIsIFwibmFtZVwiLCB7XG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIHZhbHVlOiBjbGFzc05hbWUsXG4gICAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBlcnIyO1xuICAgICAgfVxuICAgICAgaW5oZXJpdHMoU2VydmVyRXJyb3IsIEh0dHBFcnJvcik7XG4gICAgICBuYW1lRnVuYyhTZXJ2ZXJFcnJvciwgY2xhc3NOYW1lKTtcbiAgICAgIFNlcnZlckVycm9yLnByb3RvdHlwZS5zdGF0dXMgPSBjb2RlO1xuICAgICAgU2VydmVyRXJyb3IucHJvdG90eXBlLnN0YXR1c0NvZGUgPSBjb2RlO1xuICAgICAgU2VydmVyRXJyb3IucHJvdG90eXBlLmV4cG9zZSA9IGZhbHNlO1xuICAgICAgcmV0dXJuIFNlcnZlckVycm9yO1xuICAgIH1cbiAgICBmdW5jdGlvbiBuYW1lRnVuYyhmdW5jLCBuYW1lKSB7XG4gICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZnVuYywgXCJuYW1lXCIpO1xuICAgICAgaWYgKGRlc2MgJiYgZGVzYy5jb25maWd1cmFibGUpIHtcbiAgICAgICAgZGVzYy52YWx1ZSA9IG5hbWU7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jLCBcIm5hbWVcIiwgZGVzYyk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBvcHVsYXRlQ29uc3RydWN0b3JFeHBvcnRzKGV4cG9ydHMzLCBjb2RlcywgSHR0cEVycm9yKSB7XG4gICAgICBjb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIGZvckVhY2hDb2RlKGNvZGUpIHtcbiAgICAgICAgdmFyIENvZGVFcnJvcjtcbiAgICAgICAgdmFyIG5hbWUgPSB0b0lkZW50aWZpZXIoc3RhdHVzZXMubWVzc2FnZVtjb2RlXSk7XG4gICAgICAgIHN3aXRjaCAoY29kZUNsYXNzKGNvZGUpKSB7XG4gICAgICAgICAgY2FzZSA0MDA6XG4gICAgICAgICAgICBDb2RlRXJyb3IgPSBjcmVhdGVDbGllbnRFcnJvckNvbnN0cnVjdG9yKEh0dHBFcnJvciwgbmFtZSwgY29kZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDUwMDpcbiAgICAgICAgICAgIENvZGVFcnJvciA9IGNyZWF0ZVNlcnZlckVycm9yQ29uc3RydWN0b3IoSHR0cEVycm9yLCBuYW1lLCBjb2RlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChDb2RlRXJyb3IpIHtcbiAgICAgICAgICBleHBvcnRzM1tjb2RlXSA9IENvZGVFcnJvcjtcbiAgICAgICAgICBleHBvcnRzM1tuYW1lXSA9IENvZGVFcnJvcjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRvQ2xhc3NOYW1lKG5hbWUpIHtcbiAgICAgIHJldHVybiBuYW1lLnN1YnN0cigtNSkgIT09IFwiRXJyb3JcIiA/IG5hbWUgKyBcIkVycm9yXCIgOiBuYW1lO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9zYWZlci1idWZmZXIvc2FmZXIuanNcbnZhciByZXF1aXJlX3NhZmVyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NhZmVyLWJ1ZmZlci9zYWZlci5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGJ1ZmZlciA9IHJlcXVpcmUoXCJidWZmZXJcIik7XG4gICAgdmFyIEJ1ZmZlcjIgPSBidWZmZXIuQnVmZmVyO1xuICAgIHZhciBzYWZlciA9IHt9O1xuICAgIHZhciBrZXk7XG4gICAgZm9yIChrZXkgaW4gYnVmZmVyKSB7XG4gICAgICBpZiAoIWJ1ZmZlci5oYXNPd25Qcm9wZXJ0eShrZXkpKSBjb250aW51ZTtcbiAgICAgIGlmIChrZXkgPT09IFwiU2xvd0J1ZmZlclwiIHx8IGtleSA9PT0gXCJCdWZmZXJcIikgY29udGludWU7XG4gICAgICBzYWZlcltrZXldID0gYnVmZmVyW2tleV07XG4gICAgfVxuICAgIHZhciBTYWZlciA9IHNhZmVyLkJ1ZmZlciA9IHt9O1xuICAgIGZvciAoa2V5IGluIEJ1ZmZlcjIpIHtcbiAgICAgIGlmICghQnVmZmVyMi5oYXNPd25Qcm9wZXJ0eShrZXkpKSBjb250aW51ZTtcbiAgICAgIGlmIChrZXkgPT09IFwiYWxsb2NVbnNhZmVcIiB8fCBrZXkgPT09IFwiYWxsb2NVbnNhZmVTbG93XCIpIGNvbnRpbnVlO1xuICAgICAgU2FmZXJba2V5XSA9IEJ1ZmZlcjJba2V5XTtcbiAgICB9XG4gICAgc2FmZXIuQnVmZmVyLnByb3RvdHlwZSA9IEJ1ZmZlcjIucHJvdG90eXBlO1xuICAgIGlmICghU2FmZXIuZnJvbSB8fCBTYWZlci5mcm9tID09PSBVaW50OEFycmF5LmZyb20pIHtcbiAgICAgIFNhZmVyLmZyb20gPSBmdW5jdGlvbih2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJ2YWx1ZVwiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUubGVuZ3RoID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlIFwiICsgdHlwZW9mIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQnVmZmVyMih2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICghU2FmZXIuYWxsb2MpIHtcbiAgICAgIFNhZmVyLmFsbG9jID0gZnVuY3Rpb24oc2l6ZSwgZmlsbCwgZW5jb2RpbmcpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzaXplICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwic2l6ZVwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBzaXplKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2l6ZSA8IDAgfHwgc2l6ZSA+PSAyICogKDEgPDwgMzApKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBcIicgKyBzaXplICsgJ1wiIGlzIGludmFsaWQgZm9yIG9wdGlvbiBcInNpemVcIicpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBidWYgPSBCdWZmZXIyKHNpemUpO1xuICAgICAgICBpZiAoIWZpbGwgfHwgZmlsbC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBidWYuZmlsbCgwKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICBidWYuZmlsbChmaWxsLCBlbmNvZGluZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnVmLmZpbGwoZmlsbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ1ZjtcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICghc2FmZXIua1N0cmluZ01heExlbmd0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgc2FmZXIua1N0cmluZ01heExlbmd0aCA9IHByb2Nlc3MuYmluZGluZyhcImJ1ZmZlclwiKS5rU3RyaW5nTWF4TGVuZ3RoO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXNhZmVyLmNvbnN0YW50cykge1xuICAgICAgc2FmZXIuY29uc3RhbnRzID0ge1xuICAgICAgICBNQVhfTEVOR1RIOiBzYWZlci5rTWF4TGVuZ3RoXG4gICAgICB9O1xuICAgICAgaWYgKHNhZmVyLmtTdHJpbmdNYXhMZW5ndGgpIHtcbiAgICAgICAgc2FmZXIuY29uc3RhbnRzLk1BWF9TVFJJTkdfTEVOR1RIID0gc2FmZXIua1N0cmluZ01heExlbmd0aDtcbiAgICAgIH1cbiAgICB9XG4gICAgbW9kdWxlMi5leHBvcnRzID0gc2FmZXI7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvbGliL2JvbS1oYW5kbGluZy5qc1xudmFyIHJlcXVpcmVfYm9tX2hhbmRsaW5nID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2xpYi9ib20taGFuZGxpbmcuanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBCT01DaGFyID0gXCJcXHVGRUZGXCI7XG4gICAgZXhwb3J0czIuUHJlcGVuZEJPTSA9IFByZXBlbmRCT01XcmFwcGVyO1xuICAgIGZ1bmN0aW9uIFByZXBlbmRCT01XcmFwcGVyKGVuY29kZXIsIG9wdGlvbnMpIHtcbiAgICAgIHRoaXMuZW5jb2RlciA9IGVuY29kZXI7XG4gICAgICB0aGlzLmFkZEJPTSA9IHRydWU7XG4gICAgfVxuICAgIFByZXBlbmRCT01XcmFwcGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgaWYgKHRoaXMuYWRkQk9NKSB7XG4gICAgICAgIHN0ciA9IEJPTUNoYXIgKyBzdHI7XG4gICAgICAgIHRoaXMuYWRkQk9NID0gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5lbmNvZGVyLndyaXRlKHN0cik7XG4gICAgfTtcbiAgICBQcmVwZW5kQk9NV3JhcHBlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbmNvZGVyLmVuZCgpO1xuICAgIH07XG4gICAgZXhwb3J0czIuU3RyaXBCT00gPSBTdHJpcEJPTVdyYXBwZXI7XG4gICAgZnVuY3Rpb24gU3RyaXBCT01XcmFwcGVyKGRlY29kZXIsIG9wdGlvbnMpIHtcbiAgICAgIHRoaXMuZGVjb2RlciA9IGRlY29kZXI7XG4gICAgICB0aGlzLnBhc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgfVxuICAgIFN0cmlwQk9NV3JhcHBlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIHZhciByZXMgPSB0aGlzLmRlY29kZXIud3JpdGUoYnVmKTtcbiAgICAgIGlmICh0aGlzLnBhc3MgfHwgIXJlcylcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIGlmIChyZXNbMF0gPT09IEJPTUNoYXIpIHtcbiAgICAgICAgcmVzID0gcmVzLnNsaWNlKDEpO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5zdHJpcEJPTSA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgIHRoaXMub3B0aW9ucy5zdHJpcEJPTSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5wYXNzID0gdHJ1ZTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgICBTdHJpcEJPTVdyYXBwZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVjb2Rlci5lbmQoKTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9pbnRlcm5hbC5qc1xudmFyIHJlcXVpcmVfaW50ZXJuYWwgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL2ludGVybmFsLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQnVmZmVyMiA9IHJlcXVpcmVfc2FmZXIoKS5CdWZmZXI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgLy8gRW5jb2RpbmdzXG4gICAgICB1dGY4OiB7IHR5cGU6IFwiX2ludGVybmFsXCIsIGJvbUF3YXJlOiB0cnVlIH0sXG4gICAgICBjZXN1ODogeyB0eXBlOiBcIl9pbnRlcm5hbFwiLCBib21Bd2FyZTogdHJ1ZSB9LFxuICAgICAgdW5pY29kZTExdXRmODogXCJ1dGY4XCIsXG4gICAgICB1Y3MyOiB7IHR5cGU6IFwiX2ludGVybmFsXCIsIGJvbUF3YXJlOiB0cnVlIH0sXG4gICAgICB1dGYxNmxlOiBcInVjczJcIixcbiAgICAgIGJpbmFyeTogeyB0eXBlOiBcIl9pbnRlcm5hbFwiIH0sXG4gICAgICBiYXNlNjQ6IHsgdHlwZTogXCJfaW50ZXJuYWxcIiB9LFxuICAgICAgaGV4OiB7IHR5cGU6IFwiX2ludGVybmFsXCIgfSxcbiAgICAgIC8vIENvZGVjLlxuICAgICAgX2ludGVybmFsOiBJbnRlcm5hbENvZGVjXG4gICAgfTtcbiAgICBmdW5jdGlvbiBJbnRlcm5hbENvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICAgIHRoaXMuZW5jID0gY29kZWNPcHRpb25zLmVuY29kaW5nTmFtZTtcbiAgICAgIHRoaXMuYm9tQXdhcmUgPSBjb2RlY09wdGlvbnMuYm9tQXdhcmU7XG4gICAgICBpZiAodGhpcy5lbmMgPT09IFwiYmFzZTY0XCIpXG4gICAgICAgIHRoaXMuZW5jb2RlciA9IEludGVybmFsRW5jb2RlckJhc2U2NDtcbiAgICAgIGVsc2UgaWYgKHRoaXMuZW5jID09PSBcImNlc3U4XCIpIHtcbiAgICAgICAgdGhpcy5lbmMgPSBcInV0ZjhcIjtcbiAgICAgICAgdGhpcy5lbmNvZGVyID0gSW50ZXJuYWxFbmNvZGVyQ2VzdTg7XG4gICAgICAgIGlmIChCdWZmZXIyLmZyb20oXCJlZGEwYmRlZGIyYTlcIiwgXCJoZXhcIikudG9TdHJpbmcoKSAhPT0gXCJcXHV7MUY0QTl9XCIpIHtcbiAgICAgICAgICB0aGlzLmRlY29kZXIgPSBJbnRlcm5hbERlY29kZXJDZXN1ODtcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZSA9IGljb252LmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBJbnRlcm5hbENvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gSW50ZXJuYWxFbmNvZGVyO1xuICAgIEludGVybmFsQ29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBJbnRlcm5hbERlY29kZXI7XG4gICAgdmFyIFN0cmluZ0RlY29kZXIgPSByZXF1aXJlKFwic3RyaW5nX2RlY29kZXJcIikuU3RyaW5nRGVjb2RlcjtcbiAgICBpZiAoIVN0cmluZ0RlY29kZXIucHJvdG90eXBlLmVuZClcbiAgICAgIFN0cmluZ0RlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgfTtcbiAgICBmdW5jdGlvbiBJbnRlcm5hbERlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuZGVjb2RlciA9IG5ldyBTdHJpbmdEZWNvZGVyKGNvZGVjLmVuYyk7XG4gICAgfVxuICAgIEludGVybmFsRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIGlmICghQnVmZmVyMi5pc0J1ZmZlcihidWYpKSB7XG4gICAgICAgIGJ1ZiA9IEJ1ZmZlcjIuZnJvbShidWYpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZGVjb2Rlci53cml0ZShidWYpO1xuICAgIH07XG4gICAgSW50ZXJuYWxEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIuZW5kKCk7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBJbnRlcm5hbEVuY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuZW5jID0gY29kZWMuZW5jO1xuICAgIH1cbiAgICBJbnRlcm5hbEVuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICByZXR1cm4gQnVmZmVyMi5mcm9tKHN0ciwgdGhpcy5lbmMpO1xuICAgIH07XG4gICAgSW50ZXJuYWxFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIEludGVybmFsRW5jb2RlckJhc2U2NChvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5wcmV2U3RyID0gXCJcIjtcbiAgICB9XG4gICAgSW50ZXJuYWxFbmNvZGVyQmFzZTY0LnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgc3RyID0gdGhpcy5wcmV2U3RyICsgc3RyO1xuICAgICAgdmFyIGNvbXBsZXRlUXVhZHMgPSBzdHIubGVuZ3RoIC0gc3RyLmxlbmd0aCAlIDQ7XG4gICAgICB0aGlzLnByZXZTdHIgPSBzdHIuc2xpY2UoY29tcGxldGVRdWFkcyk7XG4gICAgICBzdHIgPSBzdHIuc2xpY2UoMCwgY29tcGxldGVRdWFkcyk7XG4gICAgICByZXR1cm4gQnVmZmVyMi5mcm9tKHN0ciwgXCJiYXNlNjRcIik7XG4gICAgfTtcbiAgICBJbnRlcm5hbEVuY29kZXJCYXNlNjQucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIEJ1ZmZlcjIuZnJvbSh0aGlzLnByZXZTdHIsIFwiYmFzZTY0XCIpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gSW50ZXJuYWxFbmNvZGVyQ2VzdTgob3B0aW9ucywgY29kZWMpIHtcbiAgICB9XG4gICAgSW50ZXJuYWxFbmNvZGVyQ2VzdTgucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICB2YXIgYnVmID0gQnVmZmVyMi5hbGxvYyhzdHIubGVuZ3RoICogMyksIGJ1ZklkeCA9IDA7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hhckNvZGUgPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaWYgKGNoYXJDb2RlIDwgMTI4KVxuICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSBjaGFyQ29kZTtcbiAgICAgICAgZWxzZSBpZiAoY2hhckNvZGUgPCAyMDQ4KSB7XG4gICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IDE5MiArIChjaGFyQ29kZSA+Pj4gNik7XG4gICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IDEyOCArIChjaGFyQ29kZSAmIDYzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBidWZbYnVmSWR4KytdID0gMjI0ICsgKGNoYXJDb2RlID4+PiAxMik7XG4gICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IDEyOCArIChjaGFyQ29kZSA+Pj4gNiAmIDYzKTtcbiAgICAgICAgICBidWZbYnVmSWR4KytdID0gMTI4ICsgKGNoYXJDb2RlICYgNjMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYnVmLnNsaWNlKDAsIGJ1ZklkeCk7XG4gICAgfTtcbiAgICBJbnRlcm5hbEVuY29kZXJDZXN1OC5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBJbnRlcm5hbERlY29kZXJDZXN1OChvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5hY2MgPSAwO1xuICAgICAgdGhpcy5jb250Qnl0ZXMgPSAwO1xuICAgICAgdGhpcy5hY2NCeXRlcyA9IDA7XG4gICAgICB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZSA9IGNvZGVjLmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICB9XG4gICAgSW50ZXJuYWxEZWNvZGVyQ2VzdTgucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgICB2YXIgYWNjID0gdGhpcy5hY2MsIGNvbnRCeXRlcyA9IHRoaXMuY29udEJ5dGVzLCBhY2NCeXRlcyA9IHRoaXMuYWNjQnl0ZXMsIHJlcyA9IFwiXCI7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1Zi5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY3VyQnl0ZSA9IGJ1ZltpXTtcbiAgICAgICAgaWYgKChjdXJCeXRlICYgMTkyKSAhPT0gMTI4KSB7XG4gICAgICAgICAgaWYgKGNvbnRCeXRlcyA+IDApIHtcbiAgICAgICAgICAgIHJlcyArPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgICAgICAgIGNvbnRCeXRlcyA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjdXJCeXRlIDwgMTI4KSB7XG4gICAgICAgICAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjdXJCeXRlKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGN1ckJ5dGUgPCAyMjQpIHtcbiAgICAgICAgICAgIGFjYyA9IGN1ckJ5dGUgJiAzMTtcbiAgICAgICAgICAgIGNvbnRCeXRlcyA9IDE7XG4gICAgICAgICAgICBhY2NCeXRlcyA9IDE7XG4gICAgICAgICAgfSBlbHNlIGlmIChjdXJCeXRlIDwgMjQwKSB7XG4gICAgICAgICAgICBhY2MgPSBjdXJCeXRlICYgMTU7XG4gICAgICAgICAgICBjb250Qnl0ZXMgPSAyO1xuICAgICAgICAgICAgYWNjQnl0ZXMgPSAxO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXMgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChjb250Qnl0ZXMgPiAwKSB7XG4gICAgICAgICAgICBhY2MgPSBhY2MgPDwgNiB8IGN1ckJ5dGUgJiA2MztcbiAgICAgICAgICAgIGNvbnRCeXRlcy0tO1xuICAgICAgICAgICAgYWNjQnl0ZXMrKztcbiAgICAgICAgICAgIGlmIChjb250Qnl0ZXMgPT09IDApIHtcbiAgICAgICAgICAgICAgaWYgKGFjY0J5dGVzID09PSAyICYmIGFjYyA8IDEyOCAmJiBhY2MgPiAwKVxuICAgICAgICAgICAgICAgIHJlcyArPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgICAgICAgICAgZWxzZSBpZiAoYWNjQnl0ZXMgPT09IDMgJiYgYWNjIDwgMjA0OClcbiAgICAgICAgICAgICAgICByZXMgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShhY2MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXMgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmFjYyA9IGFjYztcbiAgICAgIHRoaXMuY29udEJ5dGVzID0gY29udEJ5dGVzO1xuICAgICAgdGhpcy5hY2NCeXRlcyA9IGFjY0J5dGVzO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9O1xuICAgIEludGVybmFsRGVjb2RlckNlc3U4LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciByZXMgPSAwO1xuICAgICAgaWYgKHRoaXMuY29udEJ5dGVzID4gMClcbiAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy91dGYzMi5qc1xudmFyIHJlcXVpcmVfdXRmMzIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3V0ZjMyLmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQnVmZmVyMiA9IHJlcXVpcmVfc2FmZXIoKS5CdWZmZXI7XG4gICAgZXhwb3J0czIuX3V0ZjMyID0gVXRmMzJDb2RlYztcbiAgICBmdW5jdGlvbiBVdGYzMkNvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBpY29udjtcbiAgICAgIHRoaXMuYm9tQXdhcmUgPSB0cnVlO1xuICAgICAgdGhpcy5pc0xFID0gY29kZWNPcHRpb25zLmlzTEU7XG4gICAgfVxuICAgIGV4cG9ydHMyLnV0ZjMybGUgPSB7IHR5cGU6IFwiX3V0ZjMyXCIsIGlzTEU6IHRydWUgfTtcbiAgICBleHBvcnRzMi51dGYzMmJlID0geyB0eXBlOiBcIl91dGYzMlwiLCBpc0xFOiBmYWxzZSB9O1xuICAgIGV4cG9ydHMyLnVjczRsZSA9IFwidXRmMzJsZVwiO1xuICAgIGV4cG9ydHMyLnVjczRiZSA9IFwidXRmMzJiZVwiO1xuICAgIFV0ZjMyQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGYzMkVuY29kZXI7XG4gICAgVXRmMzJDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFV0ZjMyRGVjb2RlcjtcbiAgICBmdW5jdGlvbiBVdGYzMkVuY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuaXNMRSA9IGNvZGVjLmlzTEU7XG4gICAgICB0aGlzLmhpZ2hTdXJyb2dhdGUgPSAwO1xuICAgIH1cbiAgICBVdGYzMkVuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICB2YXIgc3JjID0gQnVmZmVyMi5mcm9tKHN0ciwgXCJ1Y3MyXCIpO1xuICAgICAgdmFyIGRzdCA9IEJ1ZmZlcjIuYWxsb2Moc3JjLmxlbmd0aCAqIDIpO1xuICAgICAgdmFyIHdyaXRlMzIgPSB0aGlzLmlzTEUgPyBkc3Qud3JpdGVVSW50MzJMRSA6IGRzdC53cml0ZVVJbnQzMkJFO1xuICAgICAgdmFyIG9mZnNldCA9IDA7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNyYy5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgICB2YXIgY29kZSA9IHNyYy5yZWFkVUludDE2TEUoaSk7XG4gICAgICAgIHZhciBpc0hpZ2hTdXJyb2dhdGUgPSA1NTI5NiA8PSBjb2RlICYmIGNvZGUgPCA1NjMyMDtcbiAgICAgICAgdmFyIGlzTG93U3Vycm9nYXRlID0gNTYzMjAgPD0gY29kZSAmJiBjb2RlIDwgNTczNDQ7XG4gICAgICAgIGlmICh0aGlzLmhpZ2hTdXJyb2dhdGUpIHtcbiAgICAgICAgICBpZiAoaXNIaWdoU3Vycm9nYXRlIHx8ICFpc0xvd1N1cnJvZ2F0ZSkge1xuICAgICAgICAgICAgd3JpdGUzMi5jYWxsKGRzdCwgdGhpcy5oaWdoU3Vycm9nYXRlLCBvZmZzZXQpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IDQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBjb2RlcG9pbnQgPSAodGhpcy5oaWdoU3Vycm9nYXRlIC0gNTUyOTYgPDwgMTAgfCBjb2RlIC0gNTYzMjApICsgNjU1MzY7XG4gICAgICAgICAgICB3cml0ZTMyLmNhbGwoZHN0LCBjb2RlcG9pbnQsIG9mZnNldCk7XG4gICAgICAgICAgICBvZmZzZXQgKz0gNDtcbiAgICAgICAgICAgIHRoaXMuaGlnaFN1cnJvZ2F0ZSA9IDA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzSGlnaFN1cnJvZ2F0ZSlcbiAgICAgICAgICB0aGlzLmhpZ2hTdXJyb2dhdGUgPSBjb2RlO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB3cml0ZTMyLmNhbGwoZHN0LCBjb2RlLCBvZmZzZXQpO1xuICAgICAgICAgIG9mZnNldCArPSA0O1xuICAgICAgICAgIHRoaXMuaGlnaFN1cnJvZ2F0ZSA9IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChvZmZzZXQgPCBkc3QubGVuZ3RoKVxuICAgICAgICBkc3QgPSBkc3Quc2xpY2UoMCwgb2Zmc2V0KTtcbiAgICAgIHJldHVybiBkc3Q7XG4gICAgfTtcbiAgICBVdGYzMkVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKCF0aGlzLmhpZ2hTdXJyb2dhdGUpXG4gICAgICAgIHJldHVybjtcbiAgICAgIHZhciBidWYgPSBCdWZmZXIyLmFsbG9jKDQpO1xuICAgICAgaWYgKHRoaXMuaXNMRSlcbiAgICAgICAgYnVmLndyaXRlVUludDMyTEUodGhpcy5oaWdoU3Vycm9nYXRlLCAwKTtcbiAgICAgIGVsc2VcbiAgICAgICAgYnVmLndyaXRlVUludDMyQkUodGhpcy5oaWdoU3Vycm9nYXRlLCAwKTtcbiAgICAgIHRoaXMuaGlnaFN1cnJvZ2F0ZSA9IDA7XG4gICAgICByZXR1cm4gYnVmO1xuICAgIH07XG4gICAgZnVuY3Rpb24gVXRmMzJEZWNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmlzTEUgPSBjb2RlYy5pc0xFO1xuICAgICAgdGhpcy5iYWRDaGFyID0gY29kZWMuaWNvbnYuZGVmYXVsdENoYXJVbmljb2RlLmNoYXJDb2RlQXQoMCk7XG4gICAgICB0aGlzLm92ZXJmbG93ID0gW107XG4gICAgfVxuICAgIFV0ZjMyRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzcmMpIHtcbiAgICAgIGlmIChzcmMubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIHZhciBpID0gMDtcbiAgICAgIHZhciBjb2RlcG9pbnQgPSAwO1xuICAgICAgdmFyIGRzdCA9IEJ1ZmZlcjIuYWxsb2Moc3JjLmxlbmd0aCArIDQpO1xuICAgICAgdmFyIG9mZnNldCA9IDA7XG4gICAgICB2YXIgaXNMRSA9IHRoaXMuaXNMRTtcbiAgICAgIHZhciBvdmVyZmxvdyA9IHRoaXMub3ZlcmZsb3c7XG4gICAgICB2YXIgYmFkQ2hhciA9IHRoaXMuYmFkQ2hhcjtcbiAgICAgIGlmIChvdmVyZmxvdy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoOyBpIDwgc3JjLmxlbmd0aCAmJiBvdmVyZmxvdy5sZW5ndGggPCA0OyBpKyspXG4gICAgICAgICAgb3ZlcmZsb3cucHVzaChzcmNbaV0pO1xuICAgICAgICBpZiAob3ZlcmZsb3cubGVuZ3RoID09PSA0KSB7XG4gICAgICAgICAgaWYgKGlzTEUpIHtcbiAgICAgICAgICAgIGNvZGVwb2ludCA9IG92ZXJmbG93W2ldIHwgb3ZlcmZsb3dbaSArIDFdIDw8IDggfCBvdmVyZmxvd1tpICsgMl0gPDwgMTYgfCBvdmVyZmxvd1tpICsgM10gPDwgMjQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvZGVwb2ludCA9IG92ZXJmbG93W2kgKyAzXSB8IG92ZXJmbG93W2kgKyAyXSA8PCA4IHwgb3ZlcmZsb3dbaSArIDFdIDw8IDE2IHwgb3ZlcmZsb3dbaV0gPDwgMjQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIG92ZXJmbG93Lmxlbmd0aCA9IDA7XG4gICAgICAgICAgb2Zmc2V0ID0gX3dyaXRlQ29kZXBvaW50KGRzdCwgb2Zmc2V0LCBjb2RlcG9pbnQsIGJhZENoYXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKDsgaSA8IHNyYy5sZW5ndGggLSAzOyBpICs9IDQpIHtcbiAgICAgICAgaWYgKGlzTEUpIHtcbiAgICAgICAgICBjb2RlcG9pbnQgPSBzcmNbaV0gfCBzcmNbaSArIDFdIDw8IDggfCBzcmNbaSArIDJdIDw8IDE2IHwgc3JjW2kgKyAzXSA8PCAyNDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb2RlcG9pbnQgPSBzcmNbaSArIDNdIHwgc3JjW2kgKyAyXSA8PCA4IHwgc3JjW2kgKyAxXSA8PCAxNiB8IHNyY1tpXSA8PCAyNDtcbiAgICAgICAgfVxuICAgICAgICBvZmZzZXQgPSBfd3JpdGVDb2RlcG9pbnQoZHN0LCBvZmZzZXQsIGNvZGVwb2ludCwgYmFkQ2hhcik7XG4gICAgICB9XG4gICAgICBmb3IgKDsgaSA8IHNyYy5sZW5ndGg7IGkrKykge1xuICAgICAgICBvdmVyZmxvdy5wdXNoKHNyY1tpXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZHN0LnNsaWNlKDAsIG9mZnNldCkudG9TdHJpbmcoXCJ1Y3MyXCIpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gX3dyaXRlQ29kZXBvaW50KGRzdCwgb2Zmc2V0LCBjb2RlcG9pbnQsIGJhZENoYXIpIHtcbiAgICAgIGlmIChjb2RlcG9pbnQgPCAwIHx8IGNvZGVwb2ludCA+IDExMTQxMTEpIHtcbiAgICAgICAgY29kZXBvaW50ID0gYmFkQ2hhcjtcbiAgICAgIH1cbiAgICAgIGlmIChjb2RlcG9pbnQgPj0gNjU1MzYpIHtcbiAgICAgICAgY29kZXBvaW50IC09IDY1NTM2O1xuICAgICAgICB2YXIgaGlnaCA9IDU1Mjk2IHwgY29kZXBvaW50ID4+IDEwO1xuICAgICAgICBkc3Rbb2Zmc2V0KytdID0gaGlnaCAmIDI1NTtcbiAgICAgICAgZHN0W29mZnNldCsrXSA9IGhpZ2ggPj4gODtcbiAgICAgICAgdmFyIGNvZGVwb2ludCA9IDU2MzIwIHwgY29kZXBvaW50ICYgMTAyMztcbiAgICAgIH1cbiAgICAgIGRzdFtvZmZzZXQrK10gPSBjb2RlcG9pbnQgJiAyNTU7XG4gICAgICBkc3Rbb2Zmc2V0KytdID0gY29kZXBvaW50ID4+IDg7XG4gICAgICByZXR1cm4gb2Zmc2V0O1xuICAgIH1cbiAgICBVdGYzMkRlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdGhpcy5vdmVyZmxvdy5sZW5ndGggPSAwO1xuICAgIH07XG4gICAgZXhwb3J0czIudXRmMzIgPSBVdGYzMkF1dG9Db2RlYztcbiAgICBleHBvcnRzMi51Y3M0ID0gXCJ1dGYzMlwiO1xuICAgIGZ1bmN0aW9uIFV0ZjMyQXV0b0NvZGVjKG9wdGlvbnMsIGljb252KSB7XG4gICAgICB0aGlzLmljb252ID0gaWNvbnY7XG4gICAgfVxuICAgIFV0ZjMyQXV0b0NvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gVXRmMzJBdXRvRW5jb2RlcjtcbiAgICBVdGYzMkF1dG9Db2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFV0ZjMyQXV0b0RlY29kZXI7XG4gICAgZnVuY3Rpb24gVXRmMzJBdXRvRW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICBpZiAob3B0aW9ucy5hZGRCT00gPT09IHZvaWQgMClcbiAgICAgICAgb3B0aW9ucy5hZGRCT00gPSB0cnVlO1xuICAgICAgdGhpcy5lbmNvZGVyID0gY29kZWMuaWNvbnYuZ2V0RW5jb2RlcihvcHRpb25zLmRlZmF1bHRFbmNvZGluZyB8fCBcInV0Zi0zMmxlXCIsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBVdGYzMkF1dG9FbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgcmV0dXJuIHRoaXMuZW5jb2Rlci53cml0ZShzdHIpO1xuICAgIH07XG4gICAgVXRmMzJBdXRvRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbmNvZGVyLmVuZCgpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gVXRmMzJBdXRvRGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5kZWNvZGVyID0gbnVsbDtcbiAgICAgIHRoaXMuaW5pdGlhbEJ1ZnMgPSBbXTtcbiAgICAgIHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPSAwO1xuICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjtcbiAgICB9XG4gICAgVXRmMzJBdXRvRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIGlmICghdGhpcy5kZWNvZGVyKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbEJ1ZnMucHVzaChidWYpO1xuICAgICAgICB0aGlzLmluaXRpYWxCdWZzTGVuICs9IGJ1Zi5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxCdWZzTGVuIDwgMzIpXG4gICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIHZhciBlbmNvZGluZyA9IGRldGVjdEVuY29kaW5nKHRoaXMuaW5pdGlhbEJ1ZnMsIHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO1xuICAgICAgICB0aGlzLmRlY29kZXIgPSB0aGlzLmljb252LmdldERlY29kZXIoZW5jb2RpbmcsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHZhciByZXNTdHIgPSBcIlwiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW5pdGlhbEJ1ZnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgcmVzU3RyICs9IHRoaXMuZGVjb2Rlci53cml0ZSh0aGlzLmluaXRpYWxCdWZzW2ldKTtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGggPSB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgICAgcmV0dXJuIHJlc1N0cjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIud3JpdGUoYnVmKTtcbiAgICB9O1xuICAgIFV0ZjMyQXV0b0RlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKCF0aGlzLmRlY29kZXIpIHtcbiAgICAgICAgdmFyIGVuY29kaW5nID0gZGV0ZWN0RW5jb2RpbmcodGhpcy5pbml0aWFsQnVmcywgdGhpcy5vcHRpb25zLmRlZmF1bHRFbmNvZGluZyk7XG4gICAgICAgIHRoaXMuZGVjb2RlciA9IHRoaXMuaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgdmFyIHJlc1N0ciA9IFwiXCI7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGg7IGkrKylcbiAgICAgICAgICByZXNTdHIgKz0gdGhpcy5kZWNvZGVyLndyaXRlKHRoaXMuaW5pdGlhbEJ1ZnNbaV0pO1xuICAgICAgICB2YXIgdHJhaWwgPSB0aGlzLmRlY29kZXIuZW5kKCk7XG4gICAgICAgIGlmICh0cmFpbClcbiAgICAgICAgICByZXNTdHIgKz0gdHJhaWw7XG4gICAgICAgIHRoaXMuaW5pdGlhbEJ1ZnMubGVuZ3RoID0gdGhpcy5pbml0aWFsQnVmc0xlbiA9IDA7XG4gICAgICAgIHJldHVybiByZXNTdHI7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5kZWNvZGVyLmVuZCgpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gZGV0ZWN0RW5jb2RpbmcoYnVmcywgZGVmYXVsdEVuY29kaW5nKSB7XG4gICAgICB2YXIgYiA9IFtdO1xuICAgICAgdmFyIGNoYXJzUHJvY2Vzc2VkID0gMDtcbiAgICAgIHZhciBpbnZhbGlkTEUgPSAwLCBpbnZhbGlkQkUgPSAwO1xuICAgICAgdmFyIGJtcENoYXJzTEUgPSAwLCBibXBDaGFyc0JFID0gMDtcbiAgICAgIG91dGVyX2xvb3A6XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBidWYgPSBidWZzW2ldO1xuICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYnVmLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBiLnB1c2goYnVmW2pdKTtcbiAgICAgICAgICAgIGlmIChiLmxlbmd0aCA9PT0gNCkge1xuICAgICAgICAgICAgICBpZiAoY2hhcnNQcm9jZXNzZWQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMjU1ICYmIGJbMV0gPT09IDI1NCAmJiBiWzJdID09PSAwICYmIGJbM10gPT09IDApIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBcInV0Zi0zMmxlXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChiWzBdID09PSAwICYmIGJbMV0gPT09IDAgJiYgYlsyXSA9PT0gMjU0ICYmIGJbM10gPT09IDI1NSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIFwidXRmLTMyYmVcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGJbMF0gIT09IDAgfHwgYlsxXSA+IDE2KSBpbnZhbGlkQkUrKztcbiAgICAgICAgICAgICAgaWYgKGJbM10gIT09IDAgfHwgYlsyXSA+IDE2KSBpbnZhbGlkTEUrKztcbiAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDAgJiYgYlsxXSA9PT0gMCAmJiAoYlsyXSAhPT0gMCB8fCBiWzNdICE9PSAwKSkgYm1wQ2hhcnNCRSsrO1xuICAgICAgICAgICAgICBpZiAoKGJbMF0gIT09IDAgfHwgYlsxXSAhPT0gMCkgJiYgYlsyXSA9PT0gMCAmJiBiWzNdID09PSAwKSBibXBDaGFyc0xFKys7XG4gICAgICAgICAgICAgIGIubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgY2hhcnNQcm9jZXNzZWQrKztcbiAgICAgICAgICAgICAgaWYgKGNoYXJzUHJvY2Vzc2VkID49IDEwMCkge1xuICAgICAgICAgICAgICAgIGJyZWFrIG91dGVyX2xvb3A7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIGlmIChibXBDaGFyc0JFIC0gaW52YWxpZEJFID4gYm1wQ2hhcnNMRSAtIGludmFsaWRMRSkgcmV0dXJuIFwidXRmLTMyYmVcIjtcbiAgICAgIGlmIChibXBDaGFyc0JFIC0gaW52YWxpZEJFIDwgYm1wQ2hhcnNMRSAtIGludmFsaWRMRSkgcmV0dXJuIFwidXRmLTMybGVcIjtcbiAgICAgIHJldHVybiBkZWZhdWx0RW5jb2RpbmcgfHwgXCJ1dGYtMzJsZVwiO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdXRmMTYuanNcbnZhciByZXF1aXJlX3V0ZjE2ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy91dGYxNi5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVyKCkuQnVmZmVyO1xuICAgIGV4cG9ydHMyLnV0ZjE2YmUgPSBVdGYxNkJFQ29kZWM7XG4gICAgZnVuY3Rpb24gVXRmMTZCRUNvZGVjKCkge1xuICAgIH1cbiAgICBVdGYxNkJFQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGYxNkJFRW5jb2RlcjtcbiAgICBVdGYxNkJFQ29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBVdGYxNkJFRGVjb2RlcjtcbiAgICBVdGYxNkJFQ29kZWMucHJvdG90eXBlLmJvbUF3YXJlID0gdHJ1ZTtcbiAgICBmdW5jdGlvbiBVdGYxNkJFRW5jb2RlcigpIHtcbiAgICB9XG4gICAgVXRmMTZCRUVuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICB2YXIgYnVmID0gQnVmZmVyMi5mcm9tKHN0ciwgXCJ1Y3MyXCIpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWYubGVuZ3RoOyBpICs9IDIpIHtcbiAgICAgICAgdmFyIHRtcCA9IGJ1ZltpXTtcbiAgICAgICAgYnVmW2ldID0gYnVmW2kgKyAxXTtcbiAgICAgICAgYnVmW2kgKyAxXSA9IHRtcDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBidWY7XG4gICAgfTtcbiAgICBVdGYxNkJFRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBVdGYxNkJFRGVjb2RlcigpIHtcbiAgICAgIHRoaXMub3ZlcmZsb3dCeXRlID0gLTE7XG4gICAgfVxuICAgIFV0ZjE2QkVEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgaWYgKGJ1Zi5sZW5ndGggPT0gMClcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB2YXIgYnVmMiA9IEJ1ZmZlcjIuYWxsb2MoYnVmLmxlbmd0aCArIDEpLCBpID0gMCwgaiA9IDA7XG4gICAgICBpZiAodGhpcy5vdmVyZmxvd0J5dGUgIT09IC0xKSB7XG4gICAgICAgIGJ1ZjJbMF0gPSBidWZbMF07XG4gICAgICAgIGJ1ZjJbMV0gPSB0aGlzLm92ZXJmbG93Qnl0ZTtcbiAgICAgICAgaSA9IDE7XG4gICAgICAgIGogPSAyO1xuICAgICAgfVxuICAgICAgZm9yICg7IGkgPCBidWYubGVuZ3RoIC0gMTsgaSArPSAyLCBqICs9IDIpIHtcbiAgICAgICAgYnVmMltqXSA9IGJ1ZltpICsgMV07XG4gICAgICAgIGJ1ZjJbaiArIDFdID0gYnVmW2ldO1xuICAgICAgfVxuICAgICAgdGhpcy5vdmVyZmxvd0J5dGUgPSBpID09IGJ1Zi5sZW5ndGggLSAxID8gYnVmW2J1Zi5sZW5ndGggLSAxXSA6IC0xO1xuICAgICAgcmV0dXJuIGJ1ZjIuc2xpY2UoMCwgaikudG9TdHJpbmcoXCJ1Y3MyXCIpO1xuICAgIH07XG4gICAgVXRmMTZCRURlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdGhpcy5vdmVyZmxvd0J5dGUgPSAtMTtcbiAgICB9O1xuICAgIGV4cG9ydHMyLnV0ZjE2ID0gVXRmMTZDb2RlYztcbiAgICBmdW5jdGlvbiBVdGYxNkNvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBpY29udjtcbiAgICB9XG4gICAgVXRmMTZDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IFV0ZjE2RW5jb2RlcjtcbiAgICBVdGYxNkNvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmMTZEZWNvZGVyO1xuICAgIGZ1bmN0aW9uIFV0ZjE2RW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICBpZiAob3B0aW9ucy5hZGRCT00gPT09IHZvaWQgMClcbiAgICAgICAgb3B0aW9ucy5hZGRCT00gPSB0cnVlO1xuICAgICAgdGhpcy5lbmNvZGVyID0gY29kZWMuaWNvbnYuZ2V0RW5jb2RlcihcInV0Zi0xNmxlXCIsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBVdGYxNkVuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbmNvZGVyLndyaXRlKHN0cik7XG4gICAgfTtcbiAgICBVdGYxNkVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZW5jb2Rlci5lbmQoKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIFV0ZjE2RGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5kZWNvZGVyID0gbnVsbDtcbiAgICAgIHRoaXMuaW5pdGlhbEJ1ZnMgPSBbXTtcbiAgICAgIHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPSAwO1xuICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjtcbiAgICB9XG4gICAgVXRmMTZEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgaWYgKCF0aGlzLmRlY29kZXIpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5wdXNoKGJ1Zik7XG4gICAgICAgIHRoaXMuaW5pdGlhbEJ1ZnNMZW4gKz0gYnVmLmxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPCAxNilcbiAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgdmFyIGVuY29kaW5nID0gZGV0ZWN0RW5jb2RpbmcodGhpcy5pbml0aWFsQnVmcywgdGhpcy5vcHRpb25zLmRlZmF1bHRFbmNvZGluZyk7XG4gICAgICAgIHRoaXMuZGVjb2RlciA9IHRoaXMuaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgdmFyIHJlc1N0ciA9IFwiXCI7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGg7IGkrKylcbiAgICAgICAgICByZXNTdHIgKz0gdGhpcy5kZWNvZGVyLndyaXRlKHRoaXMuaW5pdGlhbEJ1ZnNbaV0pO1xuICAgICAgICB0aGlzLmluaXRpYWxCdWZzLmxlbmd0aCA9IHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPSAwO1xuICAgICAgICByZXR1cm4gcmVzU3RyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZGVjb2Rlci53cml0ZShidWYpO1xuICAgIH07XG4gICAgVXRmMTZEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIGlmICghdGhpcy5kZWNvZGVyKSB7XG4gICAgICAgIHZhciBlbmNvZGluZyA9IGRldGVjdEVuY29kaW5nKHRoaXMuaW5pdGlhbEJ1ZnMsIHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO1xuICAgICAgICB0aGlzLmRlY29kZXIgPSB0aGlzLmljb252LmdldERlY29kZXIoZW5jb2RpbmcsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHZhciByZXNTdHIgPSBcIlwiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW5pdGlhbEJ1ZnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgcmVzU3RyICs9IHRoaXMuZGVjb2Rlci53cml0ZSh0aGlzLmluaXRpYWxCdWZzW2ldKTtcbiAgICAgICAgdmFyIHRyYWlsID0gdGhpcy5kZWNvZGVyLmVuZCgpO1xuICAgICAgICBpZiAodHJhaWwpXG4gICAgICAgICAgcmVzU3RyICs9IHRyYWlsO1xuICAgICAgICB0aGlzLmluaXRpYWxCdWZzLmxlbmd0aCA9IHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPSAwO1xuICAgICAgICByZXR1cm4gcmVzU3RyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZGVjb2Rlci5lbmQoKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGRldGVjdEVuY29kaW5nKGJ1ZnMsIGRlZmF1bHRFbmNvZGluZykge1xuICAgICAgdmFyIGIgPSBbXTtcbiAgICAgIHZhciBjaGFyc1Byb2Nlc3NlZCA9IDA7XG4gICAgICB2YXIgYXNjaWlDaGFyc0xFID0gMCwgYXNjaWlDaGFyc0JFID0gMDtcbiAgICAgIG91dGVyX2xvb3A6XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBidWYgPSBidWZzW2ldO1xuICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYnVmLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBiLnB1c2goYnVmW2pdKTtcbiAgICAgICAgICAgIGlmIChiLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICBpZiAoY2hhcnNQcm9jZXNzZWQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMjU1ICYmIGJbMV0gPT09IDI1NCkgcmV0dXJuIFwidXRmLTE2bGVcIjtcbiAgICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMjU0ICYmIGJbMV0gPT09IDI1NSkgcmV0dXJuIFwidXRmLTE2YmVcIjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMCAmJiBiWzFdICE9PSAwKSBhc2NpaUNoYXJzQkUrKztcbiAgICAgICAgICAgICAgaWYgKGJbMF0gIT09IDAgJiYgYlsxXSA9PT0gMCkgYXNjaWlDaGFyc0xFKys7XG4gICAgICAgICAgICAgIGIubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgY2hhcnNQcm9jZXNzZWQrKztcbiAgICAgICAgICAgICAgaWYgKGNoYXJzUHJvY2Vzc2VkID49IDEwMCkge1xuICAgICAgICAgICAgICAgIGJyZWFrIG91dGVyX2xvb3A7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIGlmIChhc2NpaUNoYXJzQkUgPiBhc2NpaUNoYXJzTEUpIHJldHVybiBcInV0Zi0xNmJlXCI7XG4gICAgICBpZiAoYXNjaWlDaGFyc0JFIDwgYXNjaWlDaGFyc0xFKSByZXR1cm4gXCJ1dGYtMTZsZVwiO1xuICAgICAgcmV0dXJuIGRlZmF1bHRFbmNvZGluZyB8fCBcInV0Zi0xNmxlXCI7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy91dGY3LmpzXG52YXIgcmVxdWlyZV91dGY3ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy91dGY3LmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQnVmZmVyMiA9IHJlcXVpcmVfc2FmZXIoKS5CdWZmZXI7XG4gICAgZXhwb3J0czIudXRmNyA9IFV0ZjdDb2RlYztcbiAgICBleHBvcnRzMi51bmljb2RlMTF1dGY3ID0gXCJ1dGY3XCI7XG4gICAgZnVuY3Rpb24gVXRmN0NvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBpY29udjtcbiAgICB9XG4gICAgVXRmN0NvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gVXRmN0VuY29kZXI7XG4gICAgVXRmN0NvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmN0RlY29kZXI7XG4gICAgVXRmN0NvZGVjLnByb3RvdHlwZS5ib21Bd2FyZSA9IHRydWU7XG4gICAgdmFyIG5vbkRpcmVjdENoYXJzID0gL1teQS1aYS16MC05J1xcKFxcKSwtXFwuXFwvOlxcPyBcXG5cXHJcXHRdKy9nO1xuICAgIGZ1bmN0aW9uIFV0ZjdFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmljb252ID0gY29kZWMuaWNvbnY7XG4gICAgfVxuICAgIFV0ZjdFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgcmV0dXJuIEJ1ZmZlcjIuZnJvbShzdHIucmVwbGFjZShub25EaXJlY3RDaGFycywgZnVuY3Rpb24oY2h1bmspIHtcbiAgICAgICAgcmV0dXJuIFwiK1wiICsgKGNodW5rID09PSBcIitcIiA/IFwiXCIgOiB0aGlzLmljb252LmVuY29kZShjaHVuaywgXCJ1dGYxNi1iZVwiKS50b1N0cmluZyhcImJhc2U2NFwiKS5yZXBsYWNlKC89KyQvLCBcIlwiKSkgKyBcIi1cIjtcbiAgICAgIH0uYmluZCh0aGlzKSkpO1xuICAgIH07XG4gICAgVXRmN0VuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIH07XG4gICAgZnVuY3Rpb24gVXRmN0RlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjtcbiAgICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgIHRoaXMuYmFzZTY0QWNjdW0gPSBcIlwiO1xuICAgIH1cbiAgICB2YXIgYmFzZTY0UmVnZXgyID0gL1tBLVphLXowLTlcXC8rXS87XG4gICAgdmFyIGJhc2U2NENoYXJzID0gW107XG4gICAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKVxuICAgICAgYmFzZTY0Q2hhcnNbaV0gPSBiYXNlNjRSZWdleDIudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGkpKTtcbiAgICB2YXIgaTtcbiAgICB2YXIgcGx1c0NoYXIgPSBcIitcIi5jaGFyQ29kZUF0KDApO1xuICAgIHZhciBtaW51c0NoYXIgPSBcIi1cIi5jaGFyQ29kZUF0KDApO1xuICAgIHZhciBhbmRDaGFyID0gXCImXCIuY2hhckNvZGVBdCgwKTtcbiAgICBVdGY3RGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIHZhciByZXMgPSBcIlwiLCBsYXN0SSA9IDAsIGluQmFzZTY0ID0gdGhpcy5pbkJhc2U2NCwgYmFzZTY0QWNjdW0gPSB0aGlzLmJhc2U2NEFjY3VtO1xuICAgICAgZm9yICh2YXIgaTIgPSAwOyBpMiA8IGJ1Zi5sZW5ndGg7IGkyKyspIHtcbiAgICAgICAgaWYgKCFpbkJhc2U2NCkge1xuICAgICAgICAgIGlmIChidWZbaTJdID09IHBsdXNDaGFyKSB7XG4gICAgICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJLCBpMiksIFwiYXNjaWlcIik7XG4gICAgICAgICAgICBsYXN0SSA9IGkyICsgMTtcbiAgICAgICAgICAgIGluQmFzZTY0ID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFiYXNlNjRDaGFyc1tidWZbaTJdXSkge1xuICAgICAgICAgICAgaWYgKGkyID09IGxhc3RJICYmIGJ1ZltpMl0gPT0gbWludXNDaGFyKSB7XG4gICAgICAgICAgICAgIHJlcyArPSBcIitcIjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhciBiNjRzdHIgPSBiYXNlNjRBY2N1bSArIHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSwgaTIpLCBcImFzY2lpXCIpO1xuICAgICAgICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoQnVmZmVyMi5mcm9tKGI2NHN0ciwgXCJiYXNlNjRcIiksIFwidXRmMTYtYmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYnVmW2kyXSAhPSBtaW51c0NoYXIpXG4gICAgICAgICAgICAgIGkyLS07XG4gICAgICAgICAgICBsYXN0SSA9IGkyICsgMTtcbiAgICAgICAgICAgIGluQmFzZTY0ID0gZmFsc2U7XG4gICAgICAgICAgICBiYXNlNjRBY2N1bSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWluQmFzZTY0KSB7XG4gICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEkpLCBcImFzY2lpXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGI2NHN0ciA9IGJhc2U2NEFjY3VtICsgdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJKSwgXCJhc2NpaVwiKTtcbiAgICAgICAgdmFyIGNhbkJlRGVjb2RlZCA9IGI2NHN0ci5sZW5ndGggLSBiNjRzdHIubGVuZ3RoICUgODtcbiAgICAgICAgYmFzZTY0QWNjdW0gPSBiNjRzdHIuc2xpY2UoY2FuQmVEZWNvZGVkKTtcbiAgICAgICAgYjY0c3RyID0gYjY0c3RyLnNsaWNlKDAsIGNhbkJlRGVjb2RlZCk7XG4gICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShCdWZmZXIyLmZyb20oYjY0c3RyLCBcImJhc2U2NFwiKSwgXCJ1dGYxNi1iZVwiKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5CYXNlNjQgPSBpbkJhc2U2NDtcbiAgICAgIHRoaXMuYmFzZTY0QWNjdW0gPSBiYXNlNjRBY2N1bTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgICBVdGY3RGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgcmVzID0gXCJcIjtcbiAgICAgIGlmICh0aGlzLmluQmFzZTY0ICYmIHRoaXMuYmFzZTY0QWNjdW0ubGVuZ3RoID4gMClcbiAgICAgICAgcmVzID0gdGhpcy5pY29udi5kZWNvZGUoQnVmZmVyMi5mcm9tKHRoaXMuYmFzZTY0QWNjdW0sIFwiYmFzZTY0XCIpLCBcInV0ZjE2LWJlXCIpO1xuICAgICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bSA9IFwiXCI7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH07XG4gICAgZXhwb3J0czIudXRmN2ltYXAgPSBVdGY3SU1BUENvZGVjO1xuICAgIGZ1bmN0aW9uIFV0ZjdJTUFQQ29kZWMoY29kZWNPcHRpb25zLCBpY29udikge1xuICAgICAgdGhpcy5pY29udiA9IGljb252O1xuICAgIH1cbiAgICBVdGY3SU1BUENvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gVXRmN0lNQVBFbmNvZGVyO1xuICAgIFV0ZjdJTUFQQ29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBVdGY3SU1BUERlY29kZXI7XG4gICAgVXRmN0lNQVBDb2RlYy5wcm90b3R5cGUuYm9tQXdhcmUgPSB0cnVlO1xuICAgIGZ1bmN0aW9uIFV0ZjdJTUFQRW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5pY29udiA9IGNvZGVjLmljb252O1xuICAgICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bSA9IEJ1ZmZlcjIuYWxsb2MoNik7XG4gICAgICB0aGlzLmJhc2U2NEFjY3VtSWR4ID0gMDtcbiAgICB9XG4gICAgVXRmN0lNQVBFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgdmFyIGluQmFzZTY0ID0gdGhpcy5pbkJhc2U2NCwgYmFzZTY0QWNjdW0gPSB0aGlzLmJhc2U2NEFjY3VtLCBiYXNlNjRBY2N1bUlkeCA9IHRoaXMuYmFzZTY0QWNjdW1JZHgsIGJ1ZiA9IEJ1ZmZlcjIuYWxsb2Moc3RyLmxlbmd0aCAqIDUgKyAxMCksIGJ1ZklkeCA9IDA7XG4gICAgICBmb3IgKHZhciBpMiA9IDA7IGkyIDwgc3RyLmxlbmd0aDsgaTIrKykge1xuICAgICAgICB2YXIgdUNoYXIgPSBzdHIuY2hhckNvZGVBdChpMik7XG4gICAgICAgIGlmICgzMiA8PSB1Q2hhciAmJiB1Q2hhciA8PSAxMjYpIHtcbiAgICAgICAgICBpZiAoaW5CYXNlNjQpIHtcbiAgICAgICAgICAgIGlmIChiYXNlNjRBY2N1bUlkeCA+IDApIHtcbiAgICAgICAgICAgICAgYnVmSWR4ICs9IGJ1Zi53cml0ZShiYXNlNjRBY2N1bS5zbGljZSgwLCBiYXNlNjRBY2N1bUlkeCkudG9TdHJpbmcoXCJiYXNlNjRcIikucmVwbGFjZSgvXFwvL2csIFwiLFwiKS5yZXBsYWNlKC89KyQvLCBcIlwiKSwgYnVmSWR4KTtcbiAgICAgICAgICAgICAgYmFzZTY0QWNjdW1JZHggPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IG1pbnVzQ2hhcjtcbiAgICAgICAgICAgIGluQmFzZTY0ID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSB1Q2hhcjtcbiAgICAgICAgICAgIGlmICh1Q2hhciA9PT0gYW5kQ2hhcilcbiAgICAgICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IG1pbnVzQ2hhcjtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFpbkJhc2U2NCkge1xuICAgICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IGFuZENoYXI7XG4gICAgICAgICAgICBpbkJhc2U2NCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbkJhc2U2NCkge1xuICAgICAgICAgICAgYmFzZTY0QWNjdW1bYmFzZTY0QWNjdW1JZHgrK10gPSB1Q2hhciA+PiA4O1xuICAgICAgICAgICAgYmFzZTY0QWNjdW1bYmFzZTY0QWNjdW1JZHgrK10gPSB1Q2hhciAmIDI1NTtcbiAgICAgICAgICAgIGlmIChiYXNlNjRBY2N1bUlkeCA9PSBiYXNlNjRBY2N1bS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgYnVmSWR4ICs9IGJ1Zi53cml0ZShiYXNlNjRBY2N1bS50b1N0cmluZyhcImJhc2U2NFwiKS5yZXBsYWNlKC9cXC8vZywgXCIsXCIpLCBidWZJZHgpO1xuICAgICAgICAgICAgICBiYXNlNjRBY2N1bUlkeCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmluQmFzZTY0ID0gaW5CYXNlNjQ7XG4gICAgICB0aGlzLmJhc2U2NEFjY3VtSWR4ID0gYmFzZTY0QWNjdW1JZHg7XG4gICAgICByZXR1cm4gYnVmLnNsaWNlKDAsIGJ1ZklkeCk7XG4gICAgfTtcbiAgICBVdGY3SU1BUEVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGJ1ZiA9IEJ1ZmZlcjIuYWxsb2MoMTApLCBidWZJZHggPSAwO1xuICAgICAgaWYgKHRoaXMuaW5CYXNlNjQpIHtcbiAgICAgICAgaWYgKHRoaXMuYmFzZTY0QWNjdW1JZHggPiAwKSB7XG4gICAgICAgICAgYnVmSWR4ICs9IGJ1Zi53cml0ZSh0aGlzLmJhc2U2NEFjY3VtLnNsaWNlKDAsIHRoaXMuYmFzZTY0QWNjdW1JZHgpLnRvU3RyaW5nKFwiYmFzZTY0XCIpLnJlcGxhY2UoL1xcLy9nLCBcIixcIikucmVwbGFjZSgvPSskLywgXCJcIiksIGJ1ZklkeCk7XG4gICAgICAgICAgdGhpcy5iYXNlNjRBY2N1bUlkeCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgYnVmW2J1ZklkeCsrXSA9IG1pbnVzQ2hhcjtcbiAgICAgICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJ1Zi5zbGljZSgwLCBidWZJZHgpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gVXRmN0lNQVBEZWNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmljb252ID0gY29kZWMuaWNvbnY7XG4gICAgICB0aGlzLmluQmFzZTY0ID0gZmFsc2U7XG4gICAgICB0aGlzLmJhc2U2NEFjY3VtID0gXCJcIjtcbiAgICB9XG4gICAgdmFyIGJhc2U2NElNQVBDaGFycyA9IGJhc2U2NENoYXJzLnNsaWNlKCk7XG4gICAgYmFzZTY0SU1BUENoYXJzW1wiLFwiLmNoYXJDb2RlQXQoMCldID0gdHJ1ZTtcbiAgICBVdGY3SU1BUERlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgICB2YXIgcmVzID0gXCJcIiwgbGFzdEkgPSAwLCBpbkJhc2U2NCA9IHRoaXMuaW5CYXNlNjQsIGJhc2U2NEFjY3VtID0gdGhpcy5iYXNlNjRBY2N1bTtcbiAgICAgIGZvciAodmFyIGkyID0gMDsgaTIgPCBidWYubGVuZ3RoOyBpMisrKSB7XG4gICAgICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgICBpZiAoYnVmW2kyXSA9PSBhbmRDaGFyKSB7XG4gICAgICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJLCBpMiksIFwiYXNjaWlcIik7XG4gICAgICAgICAgICBsYXN0SSA9IGkyICsgMTtcbiAgICAgICAgICAgIGluQmFzZTY0ID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFiYXNlNjRJTUFQQ2hhcnNbYnVmW2kyXV0pIHtcbiAgICAgICAgICAgIGlmIChpMiA9PSBsYXN0SSAmJiBidWZbaTJdID09IG1pbnVzQ2hhcikge1xuICAgICAgICAgICAgICByZXMgKz0gXCImXCI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2YXIgYjY0c3RyID0gYmFzZTY0QWNjdW0gKyB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEksIGkyKSwgXCJhc2NpaVwiKS5yZXBsYWNlKC8sL2csIFwiL1wiKTtcbiAgICAgICAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKEJ1ZmZlcjIuZnJvbShiNjRzdHIsIFwiYmFzZTY0XCIpLCBcInV0ZjE2LWJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGJ1ZltpMl0gIT0gbWludXNDaGFyKVxuICAgICAgICAgICAgICBpMi0tO1xuICAgICAgICAgICAgbGFzdEkgPSBpMiArIDE7XG4gICAgICAgICAgICBpbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgICAgICAgYmFzZTY0QWNjdW0gPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFpbkJhc2U2NCkge1xuICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJKSwgXCJhc2NpaVwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBiNjRzdHIgPSBiYXNlNjRBY2N1bSArIHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSksIFwiYXNjaWlcIikucmVwbGFjZSgvLC9nLCBcIi9cIik7XG4gICAgICAgIHZhciBjYW5CZURlY29kZWQgPSBiNjRzdHIubGVuZ3RoIC0gYjY0c3RyLmxlbmd0aCAlIDg7XG4gICAgICAgIGJhc2U2NEFjY3VtID0gYjY0c3RyLnNsaWNlKGNhbkJlRGVjb2RlZCk7XG4gICAgICAgIGI2NHN0ciA9IGI2NHN0ci5zbGljZSgwLCBjYW5CZURlY29kZWQpO1xuICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoQnVmZmVyMi5mcm9tKGI2NHN0ciwgXCJiYXNlNjRcIiksIFwidXRmMTYtYmVcIik7XG4gICAgICB9XG4gICAgICB0aGlzLmluQmFzZTY0ID0gaW5CYXNlNjQ7XG4gICAgICB0aGlzLmJhc2U2NEFjY3VtID0gYmFzZTY0QWNjdW07XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH07XG4gICAgVXRmN0lNQVBEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciByZXMgPSBcIlwiO1xuICAgICAgaWYgKHRoaXMuaW5CYXNlNjQgJiYgdGhpcy5iYXNlNjRBY2N1bS5sZW5ndGggPiAwKVxuICAgICAgICByZXMgPSB0aGlzLmljb252LmRlY29kZShCdWZmZXIyLmZyb20odGhpcy5iYXNlNjRBY2N1bSwgXCJiYXNlNjRcIiksIFwidXRmMTYtYmVcIik7XG4gICAgICB0aGlzLmluQmFzZTY0ID0gZmFsc2U7XG4gICAgICB0aGlzLmJhc2U2NEFjY3VtID0gXCJcIjtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3Mvc2Jjcy1jb2RlYy5qc1xudmFyIHJlcXVpcmVfc2Jjc19jb2RlYyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3Mvc2Jjcy1jb2RlYy5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVyKCkuQnVmZmVyO1xuICAgIGV4cG9ydHMyLl9zYmNzID0gU0JDU0NvZGVjO1xuICAgIGZ1bmN0aW9uIFNCQ1NDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgICBpZiAoIWNvZGVjT3B0aW9ucylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU0JDUyBjb2RlYyBpcyBjYWxsZWQgd2l0aG91dCB0aGUgZGF0YS5cIik7XG4gICAgICBpZiAoIWNvZGVjT3B0aW9ucy5jaGFycyB8fCBjb2RlY09wdGlvbnMuY2hhcnMubGVuZ3RoICE9PSAxMjggJiYgY29kZWNPcHRpb25zLmNoYXJzLmxlbmd0aCAhPT0gMjU2KVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmNvZGluZyAnXCIgKyBjb2RlY09wdGlvbnMudHlwZSArIFwiJyBoYXMgaW5jb3JyZWN0ICdjaGFycycgKG11c3QgYmUgb2YgbGVuIDEyOCBvciAyNTYpXCIpO1xuICAgICAgaWYgKGNvZGVjT3B0aW9ucy5jaGFycy5sZW5ndGggPT09IDEyOCkge1xuICAgICAgICB2YXIgYXNjaWlTdHJpbmcgPSBcIlwiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEyODsgaSsrKVxuICAgICAgICAgIGFzY2lpU3RyaW5nICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoaSk7XG4gICAgICAgIGNvZGVjT3B0aW9ucy5jaGFycyA9IGFzY2lpU3RyaW5nICsgY29kZWNPcHRpb25zLmNoYXJzO1xuICAgICAgfVxuICAgICAgdGhpcy5kZWNvZGVCdWYgPSBCdWZmZXIyLmZyb20oY29kZWNPcHRpb25zLmNoYXJzLCBcInVjczJcIik7XG4gICAgICB2YXIgZW5jb2RlQnVmID0gQnVmZmVyMi5hbGxvYyg2NTUzNiwgaWNvbnYuZGVmYXVsdENoYXJTaW5nbGVCeXRlLmNoYXJDb2RlQXQoMCkpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2RlY09wdGlvbnMuY2hhcnMubGVuZ3RoOyBpKyspXG4gICAgICAgIGVuY29kZUJ1Zltjb2RlY09wdGlvbnMuY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpO1xuICAgICAgdGhpcy5lbmNvZGVCdWYgPSBlbmNvZGVCdWY7XG4gICAgfVxuICAgIFNCQ1NDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IFNCQ1NFbmNvZGVyO1xuICAgIFNCQ1NDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFNCQ1NEZWNvZGVyO1xuICAgIGZ1bmN0aW9uIFNCQ1NFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmVuY29kZUJ1ZiA9IGNvZGVjLmVuY29kZUJ1ZjtcbiAgICB9XG4gICAgU0JDU0VuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICB2YXIgYnVmID0gQnVmZmVyMi5hbGxvYyhzdHIubGVuZ3RoKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKVxuICAgICAgICBidWZbaV0gPSB0aGlzLmVuY29kZUJ1ZltzdHIuY2hhckNvZGVBdChpKV07XG4gICAgICByZXR1cm4gYnVmO1xuICAgIH07XG4gICAgU0JDU0VuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIH07XG4gICAgZnVuY3Rpb24gU0JDU0RlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuZGVjb2RlQnVmID0gY29kZWMuZGVjb2RlQnVmO1xuICAgIH1cbiAgICBTQkNTRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIHZhciBkZWNvZGVCdWYgPSB0aGlzLmRlY29kZUJ1ZjtcbiAgICAgIHZhciBuZXdCdWYgPSBCdWZmZXIyLmFsbG9jKGJ1Zi5sZW5ndGggKiAyKTtcbiAgICAgIHZhciBpZHgxID0gMCwgaWR4MiA9IDA7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1Zi5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZHgxID0gYnVmW2ldICogMjtcbiAgICAgICAgaWR4MiA9IGkgKiAyO1xuICAgICAgICBuZXdCdWZbaWR4Ml0gPSBkZWNvZGVCdWZbaWR4MV07XG4gICAgICAgIG5ld0J1ZltpZHgyICsgMV0gPSBkZWNvZGVCdWZbaWR4MSArIDFdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ld0J1Zi50b1N0cmluZyhcInVjczJcIik7XG4gICAgfTtcbiAgICBTQkNTRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3Mvc2Jjcy1kYXRhLmpzXG52YXIgcmVxdWlyZV9zYmNzX2RhdGEgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3NiY3MtZGF0YS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgLy8gTm90IHN1cHBvcnRlZCBieSBpY29udiwgbm90IHN1cmUgd2h5LlxuICAgICAgXCIxMDAyOVwiOiBcIm1hY2NlbnRldXJvXCIsXG4gICAgICBcIm1hY2NlbnRldXJvXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM0XFx1MDEwMFxcdTAxMDFcXHhDOVxcdTAxMDRcXHhENlxceERDXFx4RTFcXHUwMTA1XFx1MDEwQ1xceEU0XFx1MDEwRFxcdTAxMDZcXHUwMTA3XFx4RTlcXHUwMTc5XFx1MDE3QVxcdTAxMEVcXHhFRFxcdTAxMEZcXHUwMTEyXFx1MDExM1xcdTAxMTZcXHhGM1xcdTAxMTdcXHhGNFxceEY2XFx4RjVcXHhGQVxcdTAxMUFcXHUwMTFCXFx4RkNcXHUyMDIwXFx4QjBcXHUwMTE4XFx4QTNcXHhBN1xcdTIwMjJcXHhCNlxceERGXFx4QUVcXHhBOVxcdTIxMjJcXHUwMTE5XFx4QThcXHUyMjYwXFx1MDEyM1xcdTAxMkVcXHUwMTJGXFx1MDEyQVxcdTIyNjRcXHUyMjY1XFx1MDEyQlxcdTAxMzZcXHUyMjAyXFx1MjIxMVxcdTAxNDJcXHUwMTNCXFx1MDEzQ1xcdTAxM0RcXHUwMTNFXFx1MDEzOVxcdTAxM0FcXHUwMTQ1XFx1MDE0NlxcdTAxNDNcXHhBQ1xcdTIyMUFcXHUwMTQ0XFx1MDE0N1xcdTIyMDZcXHhBQlxceEJCXFx1MjAyNlxceEEwXFx1MDE0OFxcdTAxNTBcXHhENVxcdTAxNTFcXHUwMTRDXFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx1MDE0RFxcdTAxNTRcXHUwMTU1XFx1MDE1OFxcdTIwMzlcXHUyMDNBXFx1MDE1OVxcdTAxNTZcXHUwMTU3XFx1MDE2MFxcdTIwMUFcXHUyMDFFXFx1MDE2MVxcdTAxNUFcXHUwMTVCXFx4QzFcXHUwMTY0XFx1MDE2NVxceENEXFx1MDE3RFxcdTAxN0VcXHUwMTZBXFx4RDNcXHhENFxcdTAxNkJcXHUwMTZFXFx4REFcXHUwMTZGXFx1MDE3MFxcdTAxNzFcXHUwMTcyXFx1MDE3M1xceEREXFx4RkRcXHUwMTM3XFx1MDE3QlxcdTAxNDFcXHUwMTdDXFx1MDEyMlxcdTAyQzdcIlxuICAgICAgfSxcbiAgICAgIFwiODA4XCI6IFwiY3A4MDhcIixcbiAgICAgIFwiaWJtODA4XCI6IFwiY3A4MDhcIixcbiAgICAgIFwiY3A4MDhcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQxMFxcdTA0MTFcXHUwNDEyXFx1MDQxM1xcdTA0MTRcXHUwNDE1XFx1MDQxNlxcdTA0MTdcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDI0XFx1MDQyNVxcdTA0MjZcXHUwNDI3XFx1MDQyOFxcdTA0MjlcXHUwNDJBXFx1MDQyQlxcdTA0MkNcXHUwNDJEXFx1MDQyRVxcdTA0MkZcXHUwNDMwXFx1MDQzMVxcdTA0MzJcXHUwNDMzXFx1MDQzNFxcdTA0MzVcXHUwNDM2XFx1MDQzN1xcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0NDRcXHUwNDQ1XFx1MDQ0NlxcdTA0NDdcXHUwNDQ4XFx1MDQ0OVxcdTA0NEFcXHUwNDRCXFx1MDQ0Q1xcdTA0NERcXHUwNDRFXFx1MDQ0RlxcdTA0MDFcXHUwNDUxXFx1MDQwNFxcdTA0NTRcXHUwNDA3XFx1MDQ1N1xcdTA0MEVcXHUwNDVFXFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjExNlxcdTIwQUNcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwibWlrXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTYzXFx1MjU1MVxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTEwXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyMTE2XFx4QTdcXHUyNTU3XFx1MjU1RFxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwM0IxXFx4REZcXHUwMzkzXFx1MDNDMFxcdTAzQTNcXHUwM0MzXFx4QjVcXHUwM0M0XFx1MDNBNlxcdTAzOThcXHUwM0E5XFx1MDNCNFxcdTIyMUVcXHUwM0M2XFx1MDNCNVxcdTIyMjlcXHUyMjYxXFx4QjFcXHUyMjY1XFx1MjI2NFxcdTIzMjBcXHUyMzIxXFx4RjdcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImNwNzIwXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHhFOVxceEUyXFx4ODRcXHhFMFxceDg2XFx4RTdcXHhFQVxceEVCXFx4RThcXHhFRlxceEVFXFx4OERcXHg4RVxceDhGXFx4OTBcXHUwNjUxXFx1MDY1MlxceEY0XFx4QTRcXHUwNjQwXFx4RkJcXHhGOVxcdTA2MjFcXHUwNjIyXFx1MDYyM1xcdTA2MjRcXHhBM1xcdTA2MjVcXHUwNjI2XFx1MDYyN1xcdTA2MjhcXHUwNjI5XFx1MDYyQVxcdTA2MkJcXHUwNjJDXFx1MDYyRFxcdTA2MkVcXHUwNjJGXFx1MDYzMFxcdTA2MzFcXHUwNjMyXFx1MDYzM1xcdTA2MzRcXHUwNjM1XFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTA2MzZcXHUwNjM3XFx1MDYzOFxcdTA2MzlcXHUwNjNBXFx1MDY0MVxceEI1XFx1MDY0MlxcdTA2NDNcXHUwNjQ0XFx1MDY0NVxcdTA2NDZcXHUwNjQ3XFx1MDY0OFxcdTA2NDlcXHUwNjRBXFx1MjI2MVxcdTA2NEJcXHUwNjRDXFx1MDY0RFxcdTA2NEVcXHUwNjRGXFx1MDY1MFxcdTIyNDhcXHhCMFxcdTIyMTlcXHhCN1xcdTIyMUFcXHUyMDdGXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIC8vIEFsaWFzZXMgb2YgZ2VuZXJhdGVkIGVuY29kaW5ncy5cbiAgICAgIFwiYXNjaWk4Yml0XCI6IFwiYXNjaWlcIixcbiAgICAgIFwidXNhc2NpaVwiOiBcImFzY2lpXCIsXG4gICAgICBcImFuc2l4MzRcIjogXCJhc2NpaVwiLFxuICAgICAgXCJhbnNpeDM0MTk2OFwiOiBcImFzY2lpXCIsXG4gICAgICBcImFuc2l4MzQxOTg2XCI6IFwiYXNjaWlcIixcbiAgICAgIFwiY3Nhc2NpaVwiOiBcImFzY2lpXCIsXG4gICAgICBcImNwMzY3XCI6IFwiYXNjaWlcIixcbiAgICAgIFwiaWJtMzY3XCI6IFwiYXNjaWlcIixcbiAgICAgIFwiaXNvaXI2XCI6IFwiYXNjaWlcIixcbiAgICAgIFwiaXNvNjQ2dXNcIjogXCJhc2NpaVwiLFxuICAgICAgXCJpc282NDZpcnZcIjogXCJhc2NpaVwiLFxuICAgICAgXCJ1c1wiOiBcImFzY2lpXCIsXG4gICAgICBcImxhdGluMVwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImxhdGluMlwiOiBcImlzbzg4NTkyXCIsXG4gICAgICBcImxhdGluM1wiOiBcImlzbzg4NTkzXCIsXG4gICAgICBcImxhdGluNFwiOiBcImlzbzg4NTk0XCIsXG4gICAgICBcImxhdGluNVwiOiBcImlzbzg4NTk5XCIsXG4gICAgICBcImxhdGluNlwiOiBcImlzbzg4NTkxMFwiLFxuICAgICAgXCJsYXRpbjdcIjogXCJpc284ODU5MTNcIixcbiAgICAgIFwibGF0aW44XCI6IFwiaXNvODg1OTE0XCIsXG4gICAgICBcImxhdGluOVwiOiBcImlzbzg4NTkxNVwiLFxuICAgICAgXCJsYXRpbjEwXCI6IFwiaXNvODg1OTE2XCIsXG4gICAgICBcImNzaXNvbGF0aW4xXCI6IFwiaXNvODg1OTFcIixcbiAgICAgIFwiY3Npc29sYXRpbjJcIjogXCJpc284ODU5MlwiLFxuICAgICAgXCJjc2lzb2xhdGluM1wiOiBcImlzbzg4NTkzXCIsXG4gICAgICBcImNzaXNvbGF0aW40XCI6IFwiaXNvODg1OTRcIixcbiAgICAgIFwiY3Npc29sYXRpbmN5cmlsbGljXCI6IFwiaXNvODg1OTVcIixcbiAgICAgIFwiY3Npc29sYXRpbmFyYWJpY1wiOiBcImlzbzg4NTk2XCIsXG4gICAgICBcImNzaXNvbGF0aW5ncmVla1wiOiBcImlzbzg4NTk3XCIsXG4gICAgICBcImNzaXNvbGF0aW5oZWJyZXdcIjogXCJpc284ODU5OFwiLFxuICAgICAgXCJjc2lzb2xhdGluNVwiOiBcImlzbzg4NTk5XCIsXG4gICAgICBcImNzaXNvbGF0aW42XCI6IFwiaXNvODg1OTEwXCIsXG4gICAgICBcImwxXCI6IFwiaXNvODg1OTFcIixcbiAgICAgIFwibDJcIjogXCJpc284ODU5MlwiLFxuICAgICAgXCJsM1wiOiBcImlzbzg4NTkzXCIsXG4gICAgICBcImw0XCI6IFwiaXNvODg1OTRcIixcbiAgICAgIFwibDVcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCJsNlwiOiBcImlzbzg4NTkxMFwiLFxuICAgICAgXCJsN1wiOiBcImlzbzg4NTkxM1wiLFxuICAgICAgXCJsOFwiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJsOVwiOiBcImlzbzg4NTkxNVwiLFxuICAgICAgXCJsMTBcIjogXCJpc284ODU5MTZcIixcbiAgICAgIFwiaXNvaXIxNFwiOiBcImlzbzY0NmpwXCIsXG4gICAgICBcImlzb2lyNTdcIjogXCJpc282NDZjblwiLFxuICAgICAgXCJpc29pcjEwMFwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImlzb2lyMTAxXCI6IFwiaXNvODg1OTJcIixcbiAgICAgIFwiaXNvaXIxMDlcIjogXCJpc284ODU5M1wiLFxuICAgICAgXCJpc29pcjExMFwiOiBcImlzbzg4NTk0XCIsXG4gICAgICBcImlzb2lyMTQ0XCI6IFwiaXNvODg1OTVcIixcbiAgICAgIFwiaXNvaXIxMjdcIjogXCJpc284ODU5NlwiLFxuICAgICAgXCJpc29pcjEyNlwiOiBcImlzbzg4NTk3XCIsXG4gICAgICBcImlzb2lyMTM4XCI6IFwiaXNvODg1OThcIixcbiAgICAgIFwiaXNvaXIxNDhcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCJpc29pcjE1N1wiOiBcImlzbzg4NTkxMFwiLFxuICAgICAgXCJpc29pcjE2NlwiOiBcInRpczYyMFwiLFxuICAgICAgXCJpc29pcjE3OVwiOiBcImlzbzg4NTkxM1wiLFxuICAgICAgXCJpc29pcjE5OVwiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJpc29pcjIwM1wiOiBcImlzbzg4NTkxNVwiLFxuICAgICAgXCJpc29pcjIyNlwiOiBcImlzbzg4NTkxNlwiLFxuICAgICAgXCJjcDgxOVwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImlibTgxOVwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImN5cmlsbGljXCI6IFwiaXNvODg1OTVcIixcbiAgICAgIFwiYXJhYmljXCI6IFwiaXNvODg1OTZcIixcbiAgICAgIFwiYXJhYmljOFwiOiBcImlzbzg4NTk2XCIsXG4gICAgICBcImVjbWExMTRcIjogXCJpc284ODU5NlwiLFxuICAgICAgXCJhc21vNzA4XCI6IFwiaXNvODg1OTZcIixcbiAgICAgIFwiZ3JlZWtcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCJncmVlazhcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCJlY21hMTE4XCI6IFwiaXNvODg1OTdcIixcbiAgICAgIFwiZWxvdDkyOFwiOiBcImlzbzg4NTk3XCIsXG4gICAgICBcImhlYnJld1wiOiBcImlzbzg4NTk4XCIsXG4gICAgICBcImhlYnJldzhcIjogXCJpc284ODU5OFwiLFxuICAgICAgXCJ0dXJraXNoXCI6IFwiaXNvODg1OTlcIixcbiAgICAgIFwidHVya2lzaDhcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCJ0aGFpXCI6IFwiaXNvODg1OTExXCIsXG4gICAgICBcInRoYWk4XCI6IFwiaXNvODg1OTExXCIsXG4gICAgICBcImNlbHRpY1wiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJjZWx0aWM4XCI6IFwiaXNvODg1OTE0XCIsXG4gICAgICBcImlzb2NlbHRpY1wiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJ0aXM2MjAwXCI6IFwidGlzNjIwXCIsXG4gICAgICBcInRpczYyMDI1MjkxXCI6IFwidGlzNjIwXCIsXG4gICAgICBcInRpczYyMDI1MzMwXCI6IFwidGlzNjIwXCIsXG4gICAgICBcIjEwMDAwXCI6IFwibWFjcm9tYW5cIixcbiAgICAgIFwiMTAwMDZcIjogXCJtYWNncmVla1wiLFxuICAgICAgXCIxMDAwN1wiOiBcIm1hY2N5cmlsbGljXCIsXG4gICAgICBcIjEwMDc5XCI6IFwibWFjaWNlbGFuZFwiLFxuICAgICAgXCIxMDA4MVwiOiBcIm1hY3R1cmtpc2hcIixcbiAgICAgIFwiY3NwYzhjb2RlcGFnZTQzN1wiOiBcImNwNDM3XCIsXG4gICAgICBcImNzcGM3NzViYWx0aWNcIjogXCJjcDc3NVwiLFxuICAgICAgXCJjc3BjODUwbXVsdGlsaW5ndWFsXCI6IFwiY3A4NTBcIixcbiAgICAgIFwiY3NwY3A4NTJcIjogXCJjcDg1MlwiLFxuICAgICAgXCJjc3BjODYybGF0aW5oZWJyZXdcIjogXCJjcDg2MlwiLFxuICAgICAgXCJjcGdyXCI6IFwiY3A4NjlcIixcbiAgICAgIFwibXNlZVwiOiBcImNwMTI1MFwiLFxuICAgICAgXCJtc2N5cmxcIjogXCJjcDEyNTFcIixcbiAgICAgIFwibXNhbnNpXCI6IFwiY3AxMjUyXCIsXG4gICAgICBcIm1zZ3JlZWtcIjogXCJjcDEyNTNcIixcbiAgICAgIFwibXN0dXJrXCI6IFwiY3AxMjU0XCIsXG4gICAgICBcIm1zaGViclwiOiBcImNwMTI1NVwiLFxuICAgICAgXCJtc2FyYWJcIjogXCJjcDEyNTZcIixcbiAgICAgIFwid2luYmFsdHJpbVwiOiBcImNwMTI1N1wiLFxuICAgICAgXCJjcDIwODY2XCI6IFwia29pOHJcIixcbiAgICAgIFwiMjA4NjZcIjogXCJrb2k4clwiLFxuICAgICAgXCJpYm04NzhcIjogXCJrb2k4clwiLFxuICAgICAgXCJjc2tvaThyXCI6IFwia29pOHJcIixcbiAgICAgIFwiY3AyMTg2NlwiOiBcImtvaTh1XCIsXG4gICAgICBcIjIxODY2XCI6IFwia29pOHVcIixcbiAgICAgIFwiaWJtMTE2OFwiOiBcImtvaTh1XCIsXG4gICAgICBcInN0cmsxMDQ4MjAwMlwiOiBcInJrMTA0OFwiLFxuICAgICAgXCJ0Y3ZuNTcxMlwiOiBcInRjdm5cIixcbiAgICAgIFwidGN2bjU3MTIxXCI6IFwidGN2blwiLFxuICAgICAgXCJnYjE5ODg4MFwiOiBcImlzbzY0NmNuXCIsXG4gICAgICBcImNuXCI6IFwiaXNvNjQ2Y25cIixcbiAgICAgIFwiY3Npc28xNGppc2M2MjIwcm9cIjogXCJpc282NDZqcFwiLFxuICAgICAgXCJqaXNjNjIyMDE5Njlyb1wiOiBcImlzbzY0NmpwXCIsXG4gICAgICBcImpwXCI6IFwiaXNvNjQ2anBcIixcbiAgICAgIFwiY3NocHJvbWFuOFwiOiBcImhwcm9tYW44XCIsXG4gICAgICBcInI4XCI6IFwiaHByb21hbjhcIixcbiAgICAgIFwicm9tYW44XCI6IFwiaHByb21hbjhcIixcbiAgICAgIFwieHJvbWFuOFwiOiBcImhwcm9tYW44XCIsXG4gICAgICBcImlibTEwNTFcIjogXCJocHJvbWFuOFwiLFxuICAgICAgXCJtYWNcIjogXCJtYWNpbnRvc2hcIixcbiAgICAgIFwiY3NtYWNpbnRvc2hcIjogXCJtYWNpbnRvc2hcIlxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3NiY3MtZGF0YS1nZW5lcmF0ZWQuanNcbnZhciByZXF1aXJlX3NiY3NfZGF0YV9nZW5lcmF0ZWQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3NiY3MtZGF0YS1nZW5lcmF0ZWQuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIFwiNDM3XCI6IFwiY3A0MzdcIixcbiAgICAgIFwiNzM3XCI6IFwiY3A3MzdcIixcbiAgICAgIFwiNzc1XCI6IFwiY3A3NzVcIixcbiAgICAgIFwiODUwXCI6IFwiY3A4NTBcIixcbiAgICAgIFwiODUyXCI6IFwiY3A4NTJcIixcbiAgICAgIFwiODU1XCI6IFwiY3A4NTVcIixcbiAgICAgIFwiODU2XCI6IFwiY3A4NTZcIixcbiAgICAgIFwiODU3XCI6IFwiY3A4NTdcIixcbiAgICAgIFwiODU4XCI6IFwiY3A4NThcIixcbiAgICAgIFwiODYwXCI6IFwiY3A4NjBcIixcbiAgICAgIFwiODYxXCI6IFwiY3A4NjFcIixcbiAgICAgIFwiODYyXCI6IFwiY3A4NjJcIixcbiAgICAgIFwiODYzXCI6IFwiY3A4NjNcIixcbiAgICAgIFwiODY0XCI6IFwiY3A4NjRcIixcbiAgICAgIFwiODY1XCI6IFwiY3A4NjVcIixcbiAgICAgIFwiODY2XCI6IFwiY3A4NjZcIixcbiAgICAgIFwiODY5XCI6IFwiY3A4NjlcIixcbiAgICAgIFwiODc0XCI6IFwid2luZG93czg3NFwiLFxuICAgICAgXCI5MjJcIjogXCJjcDkyMlwiLFxuICAgICAgXCIxMDQ2XCI6IFwiY3AxMDQ2XCIsXG4gICAgICBcIjExMjRcIjogXCJjcDExMjRcIixcbiAgICAgIFwiMTEyNVwiOiBcImNwMTEyNVwiLFxuICAgICAgXCIxMTI5XCI6IFwiY3AxMTI5XCIsXG4gICAgICBcIjExMzNcIjogXCJjcDExMzNcIixcbiAgICAgIFwiMTE2MVwiOiBcImNwMTE2MVwiLFxuICAgICAgXCIxMTYyXCI6IFwiY3AxMTYyXCIsXG4gICAgICBcIjExNjNcIjogXCJjcDExNjNcIixcbiAgICAgIFwiMTI1MFwiOiBcIndpbmRvd3MxMjUwXCIsXG4gICAgICBcIjEyNTFcIjogXCJ3aW5kb3dzMTI1MVwiLFxuICAgICAgXCIxMjUyXCI6IFwid2luZG93czEyNTJcIixcbiAgICAgIFwiMTI1M1wiOiBcIndpbmRvd3MxMjUzXCIsXG4gICAgICBcIjEyNTRcIjogXCJ3aW5kb3dzMTI1NFwiLFxuICAgICAgXCIxMjU1XCI6IFwid2luZG93czEyNTVcIixcbiAgICAgIFwiMTI1NlwiOiBcIndpbmRvd3MxMjU2XCIsXG4gICAgICBcIjEyNTdcIjogXCJ3aW5kb3dzMTI1N1wiLFxuICAgICAgXCIxMjU4XCI6IFwid2luZG93czEyNThcIixcbiAgICAgIFwiMjg1OTFcIjogXCJpc284ODU5MVwiLFxuICAgICAgXCIyODU5MlwiOiBcImlzbzg4NTkyXCIsXG4gICAgICBcIjI4NTkzXCI6IFwiaXNvODg1OTNcIixcbiAgICAgIFwiMjg1OTRcIjogXCJpc284ODU5NFwiLFxuICAgICAgXCIyODU5NVwiOiBcImlzbzg4NTk1XCIsXG4gICAgICBcIjI4NTk2XCI6IFwiaXNvODg1OTZcIixcbiAgICAgIFwiMjg1OTdcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCIyODU5OFwiOiBcImlzbzg4NTk4XCIsXG4gICAgICBcIjI4NTk5XCI6IFwiaXNvODg1OTlcIixcbiAgICAgIFwiMjg2MDBcIjogXCJpc284ODU5MTBcIixcbiAgICAgIFwiMjg2MDFcIjogXCJpc284ODU5MTFcIixcbiAgICAgIFwiMjg2MDNcIjogXCJpc284ODU5MTNcIixcbiAgICAgIFwiMjg2MDRcIjogXCJpc284ODU5MTRcIixcbiAgICAgIFwiMjg2MDVcIjogXCJpc284ODU5MTVcIixcbiAgICAgIFwiMjg2MDZcIjogXCJpc284ODU5MTZcIixcbiAgICAgIFwid2luZG93czg3NFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyMEFDXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTIwMjZcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxceEEwXFx1MEUwMVxcdTBFMDJcXHUwRTAzXFx1MEUwNFxcdTBFMDVcXHUwRTA2XFx1MEUwN1xcdTBFMDhcXHUwRTA5XFx1MEUwQVxcdTBFMEJcXHUwRTBDXFx1MEUwRFxcdTBFMEVcXHUwRTBGXFx1MEUxMFxcdTBFMTFcXHUwRTEyXFx1MEUxM1xcdTBFMTRcXHUwRTE1XFx1MEUxNlxcdTBFMTdcXHUwRTE4XFx1MEUxOVxcdTBFMUFcXHUwRTFCXFx1MEUxQ1xcdTBFMURcXHUwRTFFXFx1MEUxRlxcdTBFMjBcXHUwRTIxXFx1MEUyMlxcdTBFMjNcXHUwRTI0XFx1MEUyNVxcdTBFMjZcXHUwRTI3XFx1MEUyOFxcdTBFMjlcXHUwRTJBXFx1MEUyQlxcdTBFMkNcXHUwRTJEXFx1MEUyRVxcdTBFMkZcXHUwRTMwXFx1MEUzMVxcdTBFMzJcXHUwRTMzXFx1MEUzNFxcdTBFMzVcXHUwRTM2XFx1MEUzN1xcdTBFMzhcXHUwRTM5XFx1MEUzQVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwRTNGXFx1MEU0MFxcdTBFNDFcXHUwRTQyXFx1MEU0M1xcdTBFNDRcXHUwRTQ1XFx1MEU0NlxcdTBFNDdcXHUwRTQ4XFx1MEU0OVxcdTBFNEFcXHUwRTRCXFx1MEU0Q1xcdTBFNERcXHUwRTRFXFx1MEU0RlxcdTBFNTBcXHUwRTUxXFx1MEU1MlxcdTBFNTNcXHUwRTU0XFx1MEU1NVxcdTBFNTZcXHUwRTU3XFx1MEU1OFxcdTBFNTlcXHUwRTVBXFx1MEU1QlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwid2luODc0XCI6IFwid2luZG93czg3NFwiLFxuICAgICAgXCJjcDg3NFwiOiBcIndpbmRvd3M4NzRcIixcbiAgICAgIFwid2luZG93czEyNTBcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdUZGRkRcXHUyMDFBXFx1RkZGRFxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHVGRkZEXFx1MjAzMFxcdTAxNjBcXHUyMDM5XFx1MDE1QVxcdTAxNjRcXHUwMTdEXFx1MDE3OVxcdUZGRkRcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1RkZGRFxcdTIxMjJcXHUwMTYxXFx1MjAzQVxcdTAxNUJcXHUwMTY1XFx1MDE3RVxcdTAxN0FcXHhBMFxcdTAyQzdcXHUwMkQ4XFx1MDE0MVxceEE0XFx1MDEwNFxceEE2XFx4QTdcXHhBOFxceEE5XFx1MDE1RVxceEFCXFx4QUNcXHhBRFxceEFFXFx1MDE3QlxceEIwXFx4QjFcXHUwMkRCXFx1MDE0MlxceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHUwMTA1XFx1MDE1RlxceEJCXFx1MDEzRFxcdTAyRERcXHUwMTNFXFx1MDE3Q1xcdTAxNTRcXHhDMVxceEMyXFx1MDEwMlxceEM0XFx1MDEzOVxcdTAxMDZcXHhDN1xcdTAxMENcXHhDOVxcdTAxMThcXHhDQlxcdTAxMUFcXHhDRFxceENFXFx1MDEwRVxcdTAxMTBcXHUwMTQzXFx1MDE0N1xceEQzXFx4RDRcXHUwMTUwXFx4RDZcXHhEN1xcdTAxNThcXHUwMTZFXFx4REFcXHUwMTcwXFx4RENcXHhERFxcdTAxNjJcXHhERlxcdTAxNTVcXHhFMVxceEUyXFx1MDEwM1xceEU0XFx1MDEzQVxcdTAxMDdcXHhFN1xcdTAxMERcXHhFOVxcdTAxMTlcXHhFQlxcdTAxMUJcXHhFRFxceEVFXFx1MDEwRlxcdTAxMTFcXHUwMTQ0XFx1MDE0OFxceEYzXFx4RjRcXHUwMTUxXFx4RjZcXHhGN1xcdTAxNTlcXHUwMTZGXFx4RkFcXHUwMTcxXFx4RkNcXHhGRFxcdTAxNjNcXHUwMkQ5XCJcbiAgICAgIH0sXG4gICAgICBcIndpbjEyNTBcIjogXCJ3aW5kb3dzMTI1MFwiLFxuICAgICAgXCJjcDEyNTBcIjogXCJ3aW5kb3dzMTI1MFwiLFxuICAgICAgXCJ3aW5kb3dzMTI1MVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDAyXFx1MDQwM1xcdTIwMUFcXHUwNDUzXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdTIwQUNcXHUyMDMwXFx1MDQwOVxcdTIwMzlcXHUwNDBBXFx1MDQwQ1xcdTA0MEJcXHUwNDBGXFx1MDQ1MlxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHVGRkZEXFx1MjEyMlxcdTA0NTlcXHUyMDNBXFx1MDQ1QVxcdTA0NUNcXHUwNDVCXFx1MDQ1RlxceEEwXFx1MDQwRVxcdTA0NUVcXHUwNDA4XFx4QTRcXHUwNDkwXFx4QTZcXHhBN1xcdTA0MDFcXHhBOVxcdTA0MDRcXHhBQlxceEFDXFx4QURcXHhBRVxcdTA0MDdcXHhCMFxceEIxXFx1MDQwNlxcdTA0NTZcXHUwNDkxXFx4QjVcXHhCNlxceEI3XFx1MDQ1MVxcdTIxMTZcXHUwNDU0XFx4QkJcXHUwNDU4XFx1MDQwNVxcdTA0NTVcXHUwNDU3XFx1MDQxMFxcdTA0MTFcXHUwNDEyXFx1MDQxM1xcdTA0MTRcXHUwNDE1XFx1MDQxNlxcdTA0MTdcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDI0XFx1MDQyNVxcdTA0MjZcXHUwNDI3XFx1MDQyOFxcdTA0MjlcXHUwNDJBXFx1MDQyQlxcdTA0MkNcXHUwNDJEXFx1MDQyRVxcdTA0MkZcXHUwNDMwXFx1MDQzMVxcdTA0MzJcXHUwNDMzXFx1MDQzNFxcdTA0MzVcXHUwNDM2XFx1MDQzN1xcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0NDRcXHUwNDQ1XFx1MDQ0NlxcdTA0NDdcXHUwNDQ4XFx1MDQ0OVxcdTA0NEFcXHUwNDRCXFx1MDQ0Q1xcdTA0NERcXHUwNDRFXFx1MDQ0RlwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjUxXCI6IFwid2luZG93czEyNTFcIixcbiAgICAgIFwiY3AxMjUxXCI6IFwid2luZG93czEyNTFcIixcbiAgICAgIFwid2luZG93czEyNTJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdUZGRkRcXHUyMDFBXFx1MDE5MlxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUwMkM2XFx1MjAzMFxcdTAxNjBcXHUyMDM5XFx1MDE1MlxcdUZGRkRcXHUwMTdEXFx1RkZGRFxcdUZGRkRcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDJEQ1xcdTIxMjJcXHUwMTYxXFx1MjAzQVxcdTAxNTNcXHVGRkZEXFx1MDE3RVxcdTAxNzhcXHhBMFxceEExXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4QkFcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx4QzBcXHhDMVxceEMyXFx4QzNcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx4Q0NcXHhDRFxceENFXFx4Q0ZcXHhEMFxceEQxXFx4RDJcXHhEM1xceEQ0XFx4RDVcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xceEREXFx4REVcXHhERlxceEUwXFx4RTFcXHhFMlxceEUzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx4RjBcXHhGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHhGRFxceEZFXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwid2luMTI1MlwiOiBcIndpbmRvd3MxMjUyXCIsXG4gICAgICBcImNwMTI1MlwiOiBcIndpbmRvd3MxMjUyXCIsXG4gICAgICBcIndpbmRvd3MxMjUzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHVGRkZEXFx1MjAxQVxcdTAxOTJcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1RkZGRFxcdTIwMzBcXHVGRkZEXFx1MjAzOVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdUZGRkRcXHUyMTIyXFx1RkZGRFxcdTIwM0FcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QTBcXHUwMzg1XFx1MDM4NlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx1RkZGRFxceEFCXFx4QUNcXHhBRFxceEFFXFx1MjAxNVxceEIwXFx4QjFcXHhCMlxceEIzXFx1MDM4NFxceEI1XFx4QjZcXHhCN1xcdTAzODhcXHUwMzg5XFx1MDM4QVxceEJCXFx1MDM4Q1xceEJEXFx1MDM4RVxcdTAzOEZcXHUwMzkwXFx1MDM5MVxcdTAzOTJcXHUwMzkzXFx1MDM5NFxcdTAzOTVcXHUwMzk2XFx1MDM5N1xcdTAzOThcXHUwMzk5XFx1MDM5QVxcdTAzOUJcXHUwMzlDXFx1MDM5RFxcdTAzOUVcXHUwMzlGXFx1MDNBMFxcdTAzQTFcXHVGRkZEXFx1MDNBM1xcdTAzQTRcXHUwM0E1XFx1MDNBNlxcdTAzQTdcXHUwM0E4XFx1MDNBOVxcdTAzQUFcXHUwM0FCXFx1MDNBQ1xcdTAzQURcXHUwM0FFXFx1MDNBRlxcdTAzQjBcXHUwM0IxXFx1MDNCMlxcdTAzQjNcXHUwM0I0XFx1MDNCNVxcdTAzQjZcXHUwM0I3XFx1MDNCOFxcdTAzQjlcXHUwM0JBXFx1MDNCQlxcdTAzQkNcXHUwM0JEXFx1MDNCRVxcdTAzQkZcXHUwM0MwXFx1MDNDMVxcdTAzQzJcXHUwM0MzXFx1MDNDNFxcdTAzQzVcXHUwM0M2XFx1MDNDN1xcdTAzQzhcXHUwM0M5XFx1MDNDQVxcdTAzQ0JcXHUwM0NDXFx1MDNDRFxcdTAzQ0VcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcIndpbjEyNTNcIjogXCJ3aW5kb3dzMTI1M1wiLFxuICAgICAgXCJjcDEyNTNcIjogXCJ3aW5kb3dzMTI1M1wiLFxuICAgICAgXCJ3aW5kb3dzMTI1NFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyMEFDXFx1RkZGRFxcdTIwMUFcXHUwMTkyXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdTAyQzZcXHUyMDMwXFx1MDE2MFxcdTIwMzlcXHUwMTUyXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHUwMkRDXFx1MjEyMlxcdTAxNjFcXHUyMDNBXFx1MDE1M1xcdUZGRkRcXHVGRkZEXFx1MDE3OFxceEEwXFx4QTFcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx4QjlcXHhCQVxceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHhDMFxceEMxXFx4QzJcXHhDM1xceEM0XFx4QzVcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHhDQ1xceENEXFx4Q0VcXHhDRlxcdTAxMUVcXHhEMVxceEQyXFx4RDNcXHhENFxceEQ1XFx4RDZcXHhEN1xceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHUwMTMwXFx1MDE1RVxceERGXFx4RTBcXHhFMVxceEUyXFx4RTNcXHhFNFxceEU1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHUwMTFGXFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx1MDEzMVxcdTAxNUZcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjU0XCI6IFwid2luZG93czEyNTRcIixcbiAgICAgIFwiY3AxMjU0XCI6IFwid2luZG93czEyNTRcIixcbiAgICAgIFwid2luZG93czEyNTVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdUZGRkRcXHUyMDFBXFx1MDE5MlxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUwMkM2XFx1MjAzMFxcdUZGRkRcXHUyMDM5XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDJEQ1xcdTIxMjJcXHVGRkZEXFx1MjAzQVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBMFxceEExXFx4QTJcXHhBM1xcdTIwQUFcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx4RDdcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx4QjlcXHhGN1xceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHUwNUIwXFx1MDVCMVxcdTA1QjJcXHUwNUIzXFx1MDVCNFxcdTA1QjVcXHUwNUI2XFx1MDVCN1xcdTA1QjhcXHUwNUI5XFx1MDVCQVxcdTA1QkJcXHUwNUJDXFx1MDVCRFxcdTA1QkVcXHUwNUJGXFx1MDVDMFxcdTA1QzFcXHUwNUMyXFx1MDVDM1xcdTA1RjBcXHUwNUYxXFx1MDVGMlxcdTA1RjNcXHUwNUY0XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTA1RDBcXHUwNUQxXFx1MDVEMlxcdTA1RDNcXHUwNUQ0XFx1MDVENVxcdTA1RDZcXHUwNUQ3XFx1MDVEOFxcdTA1RDlcXHUwNURBXFx1MDVEQlxcdTA1RENcXHUwNUREXFx1MDVERVxcdTA1REZcXHUwNUUwXFx1MDVFMVxcdTA1RTJcXHUwNUUzXFx1MDVFNFxcdTA1RTVcXHUwNUU2XFx1MDVFN1xcdTA1RThcXHUwNUU5XFx1MDVFQVxcdUZGRkRcXHVGRkZEXFx1MjAwRVxcdTIwMEZcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcIndpbjEyNTVcIjogXCJ3aW5kb3dzMTI1NVwiLFxuICAgICAgXCJjcDEyNTVcIjogXCJ3aW5kb3dzMTI1NVwiLFxuICAgICAgXCJ3aW5kb3dzMTI1NlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyMEFDXFx1MDY3RVxcdTIwMUFcXHUwMTkyXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdTAyQzZcXHUyMDMwXFx1MDY3OVxcdTIwMzlcXHUwMTUyXFx1MDY4NlxcdTA2OThcXHUwNjg4XFx1MDZBRlxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHUwNkE5XFx1MjEyMlxcdTA2OTFcXHUyMDNBXFx1MDE1M1xcdTIwMENcXHUyMDBEXFx1MDZCQVxceEEwXFx1MDYwQ1xceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHUwNkJFXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx1MDYxQlxceEJCXFx4QkNcXHhCRFxceEJFXFx1MDYxRlxcdTA2QzFcXHUwNjIxXFx1MDYyMlxcdTA2MjNcXHUwNjI0XFx1MDYyNVxcdTA2MjZcXHUwNjI3XFx1MDYyOFxcdTA2MjlcXHUwNjJBXFx1MDYyQlxcdTA2MkNcXHUwNjJEXFx1MDYyRVxcdTA2MkZcXHUwNjMwXFx1MDYzMVxcdTA2MzJcXHUwNjMzXFx1MDYzNFxcdTA2MzVcXHUwNjM2XFx4RDdcXHUwNjM3XFx1MDYzOFxcdTA2MzlcXHUwNjNBXFx1MDY0MFxcdTA2NDFcXHUwNjQyXFx1MDY0M1xceEUwXFx1MDY0NFxceEUyXFx1MDY0NVxcdTA2NDZcXHUwNjQ3XFx1MDY0OFxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHUwNjQ5XFx1MDY0QVxceEVFXFx4RUZcXHUwNjRCXFx1MDY0Q1xcdTA2NERcXHUwNjRFXFx4RjRcXHUwNjRGXFx1MDY1MFxceEY3XFx1MDY1MVxceEY5XFx1MDY1MlxceEZCXFx4RkNcXHUyMDBFXFx1MjAwRlxcdTA2RDJcIlxuICAgICAgfSxcbiAgICAgIFwid2luMTI1NlwiOiBcIndpbmRvd3MxMjU2XCIsXG4gICAgICBcImNwMTI1NlwiOiBcIndpbmRvd3MxMjU2XCIsXG4gICAgICBcIndpbmRvd3MxMjU3XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHVGRkZEXFx1MjAxQVxcdUZGRkRcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1RkZGRFxcdTIwMzBcXHVGRkZEXFx1MjAzOVxcdUZGRkRcXHhBOFxcdTAyQzdcXHhCOFxcdUZGRkRcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1RkZGRFxcdTIxMjJcXHVGRkZEXFx1MjAzQVxcdUZGRkRcXHhBRlxcdTAyREJcXHVGRkZEXFx4QTBcXHVGRkZEXFx4QTJcXHhBM1xceEE0XFx1RkZGRFxceEE2XFx4QTdcXHhEOFxceEE5XFx1MDE1NlxceEFCXFx4QUNcXHhBRFxceEFFXFx4QzZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4RjhcXHhCOVxcdTAxNTdcXHhCQlxceEJDXFx4QkRcXHhCRVxceEU2XFx1MDEwNFxcdTAxMkVcXHUwMTAwXFx1MDEwNlxceEM0XFx4QzVcXHUwMTE4XFx1MDExMlxcdTAxMENcXHhDOVxcdTAxNzlcXHUwMTE2XFx1MDEyMlxcdTAxMzZcXHUwMTJBXFx1MDEzQlxcdTAxNjBcXHUwMTQzXFx1MDE0NVxceEQzXFx1MDE0Q1xceEQ1XFx4RDZcXHhEN1xcdTAxNzJcXHUwMTQxXFx1MDE1QVxcdTAxNkFcXHhEQ1xcdTAxN0JcXHUwMTdEXFx4REZcXHUwMTA1XFx1MDEyRlxcdTAxMDFcXHUwMTA3XFx4RTRcXHhFNVxcdTAxMTlcXHUwMTEzXFx1MDEwRFxceEU5XFx1MDE3QVxcdTAxMTdcXHUwMTIzXFx1MDEzN1xcdTAxMkJcXHUwMTNDXFx1MDE2MVxcdTAxNDRcXHUwMTQ2XFx4RjNcXHUwMTREXFx4RjVcXHhGNlxceEY3XFx1MDE3M1xcdTAxNDJcXHUwMTVCXFx1MDE2QlxceEZDXFx1MDE3Q1xcdTAxN0VcXHUwMkQ5XCJcbiAgICAgIH0sXG4gICAgICBcIndpbjEyNTdcIjogXCJ3aW5kb3dzMTI1N1wiLFxuICAgICAgXCJjcDEyNTdcIjogXCJ3aW5kb3dzMTI1N1wiLFxuICAgICAgXCJ3aW5kb3dzMTI1OFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyMEFDXFx1RkZGRFxcdTIwMUFcXHUwMTkyXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdTAyQzZcXHUyMDMwXFx1RkZGRFxcdTIwMzlcXHUwMTUyXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHUwMkRDXFx1MjEyMlxcdUZGRkRcXHUyMDNBXFx1MDE1M1xcdUZGRkRcXHVGRkZEXFx1MDE3OFxceEEwXFx4QTFcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx4QjlcXHhCQVxceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHhDMFxceEMxXFx4QzJcXHUwMTAyXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxcdTAzMDBcXHhDRFxceENFXFx4Q0ZcXHUwMTEwXFx4RDFcXHUwMzA5XFx4RDNcXHhENFxcdTAxQTBcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xcdTAxQUZcXHUwMzAzXFx4REZcXHhFMFxceEUxXFx4RTJcXHUwMTAzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxcdTAzMDFcXHhFRFxceEVFXFx4RUZcXHUwMTExXFx4RjFcXHUwMzIzXFx4RjNcXHhGNFxcdTAxQTFcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xcdTAxQjBcXHUyMEFCXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwid2luMTI1OFwiOiBcIndpbmRvd3MxMjU4XCIsXG4gICAgICBcImNwMTI1OFwiOiBcIndpbmRvd3MxMjU4XCIsXG4gICAgICBcImlzbzg4NTkxXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxceEExXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4QkFcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx4QzBcXHhDMVxceEMyXFx4QzNcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx4Q0NcXHhDRFxceENFXFx4Q0ZcXHhEMFxceEQxXFx4RDJcXHhEM1xceEQ0XFx4RDVcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xceEREXFx4REVcXHhERlxceEUwXFx4RTFcXHhFMlxceEUzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx4RjBcXHhGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHhGRFxceEZFXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODU5MVwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImlzbzg4NTkyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTAxMDRcXHUwMkQ4XFx1MDE0MVxceEE0XFx1MDEzRFxcdTAxNUFcXHhBN1xceEE4XFx1MDE2MFxcdTAxNUVcXHUwMTY0XFx1MDE3OVxceEFEXFx1MDE3RFxcdTAxN0JcXHhCMFxcdTAxMDVcXHUwMkRCXFx1MDE0MlxceEI0XFx1MDEzRVxcdTAxNUJcXHUwMkM3XFx4QjhcXHUwMTYxXFx1MDE1RlxcdTAxNjVcXHUwMTdBXFx1MDJERFxcdTAxN0VcXHUwMTdDXFx1MDE1NFxceEMxXFx4QzJcXHUwMTAyXFx4QzRcXHUwMTM5XFx1MDEwNlxceEM3XFx1MDEwQ1xceEM5XFx1MDExOFxceENCXFx1MDExQVxceENEXFx4Q0VcXHUwMTBFXFx1MDExMFxcdTAxNDNcXHUwMTQ3XFx4RDNcXHhENFxcdTAxNTBcXHhENlxceEQ3XFx1MDE1OFxcdTAxNkVcXHhEQVxcdTAxNzBcXHhEQ1xceEREXFx1MDE2MlxceERGXFx1MDE1NVxceEUxXFx4RTJcXHUwMTAzXFx4RTRcXHUwMTNBXFx1MDEwN1xceEU3XFx1MDEwRFxceEU5XFx1MDExOVxceEVCXFx1MDExQlxceEVEXFx4RUVcXHUwMTBGXFx1MDExMVxcdTAxNDRcXHUwMTQ4XFx4RjNcXHhGNFxcdTAxNTFcXHhGNlxceEY3XFx1MDE1OVxcdTAxNkZcXHhGQVxcdTAxNzFcXHhGQ1xceEZEXFx1MDE2M1xcdTAyRDlcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODU5MlwiOiBcImlzbzg4NTkyXCIsXG4gICAgICBcImlzbzg4NTkzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTAxMjZcXHUwMkQ4XFx4QTNcXHhBNFxcdUZGRkRcXHUwMTI0XFx4QTdcXHhBOFxcdTAxMzBcXHUwMTVFXFx1MDExRVxcdTAxMzRcXHhBRFxcdUZGRkRcXHUwMTdCXFx4QjBcXHUwMTI3XFx4QjJcXHhCM1xceEI0XFx4QjVcXHUwMTI1XFx4QjdcXHhCOFxcdTAxMzFcXHUwMTVGXFx1MDExRlxcdTAxMzVcXHhCRFxcdUZGRkRcXHUwMTdDXFx4QzBcXHhDMVxceEMyXFx1RkZGRFxceEM0XFx1MDEwQVxcdTAxMDhcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx4Q0NcXHhDRFxceENFXFx4Q0ZcXHVGRkZEXFx4RDFcXHhEMlxceEQzXFx4RDRcXHUwMTIwXFx4RDZcXHhEN1xcdTAxMUNcXHhEOVxceERBXFx4REJcXHhEQ1xcdTAxNkNcXHUwMTVDXFx4REZcXHhFMFxceEUxXFx4RTJcXHVGRkZEXFx4RTRcXHUwMTBCXFx1MDEwOVxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxcdUZGRkRcXHhGMVxceEYyXFx4RjNcXHhGNFxcdTAxMjFcXHhGNlxceEY3XFx1MDExRFxceEY5XFx4RkFcXHhGQlxceEZDXFx1MDE2RFxcdTAxNURcXHUwMkQ5XCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OTNcIjogXCJpc284ODU5M1wiLFxuICAgICAgXCJpc284ODU5NFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUwMTA0XFx1MDEzOFxcdTAxNTZcXHhBNFxcdTAxMjhcXHUwMTNCXFx4QTdcXHhBOFxcdTAxNjBcXHUwMTEyXFx1MDEyMlxcdTAxNjZcXHhBRFxcdTAxN0RcXHhBRlxceEIwXFx1MDEwNVxcdTAyREJcXHUwMTU3XFx4QjRcXHUwMTI5XFx1MDEzQ1xcdTAyQzdcXHhCOFxcdTAxNjFcXHUwMTEzXFx1MDEyM1xcdTAxNjdcXHUwMTRBXFx1MDE3RVxcdTAxNEJcXHUwMTAwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx1MDEyRVxcdTAxMENcXHhDOVxcdTAxMThcXHhDQlxcdTAxMTZcXHhDRFxceENFXFx1MDEyQVxcdTAxMTBcXHUwMTQ1XFx1MDE0Q1xcdTAxMzZcXHhENFxceEQ1XFx4RDZcXHhEN1xceEQ4XFx1MDE3MlxceERBXFx4REJcXHhEQ1xcdTAxNjhcXHUwMTZBXFx4REZcXHUwMTAxXFx4RTFcXHhFMlxceEUzXFx4RTRcXHhFNVxceEU2XFx1MDEyRlxcdTAxMERcXHhFOVxcdTAxMTlcXHhFQlxcdTAxMTdcXHhFRFxceEVFXFx1MDEyQlxcdTAxMTFcXHUwMTQ2XFx1MDE0RFxcdTAxMzdcXHhGNFxceEY1XFx4RjZcXHhGN1xceEY4XFx1MDE3M1xceEZBXFx4RkJcXHhGQ1xcdTAxNjlcXHUwMTZCXFx1MDJEOVwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NTk0XCI6IFwiaXNvODg1OTRcIixcbiAgICAgIFwiaXNvODg1OTVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MDQwMVxcdTA0MDJcXHUwNDAzXFx1MDQwNFxcdTA0MDVcXHUwNDA2XFx1MDQwN1xcdTA0MDhcXHUwNDA5XFx1MDQwQVxcdTA0MEJcXHUwNDBDXFx4QURcXHUwNDBFXFx1MDQwRlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcXHUyMTE2XFx1MDQ1MVxcdTA0NTJcXHUwNDUzXFx1MDQ1NFxcdTA0NTVcXHUwNDU2XFx1MDQ1N1xcdTA0NThcXHUwNDU5XFx1MDQ1QVxcdTA0NUJcXHUwNDVDXFx4QTdcXHUwNDVFXFx1MDQ1RlwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NTk1XCI6IFwiaXNvODg1OTVcIixcbiAgICAgIFwiaXNvODg1OTZcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QTRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MDYwQ1xceEFEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTA2MUJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwNjFGXFx1RkZGRFxcdTA2MjFcXHUwNjIyXFx1MDYyM1xcdTA2MjRcXHUwNjI1XFx1MDYyNlxcdTA2MjdcXHUwNjI4XFx1MDYyOVxcdTA2MkFcXHUwNjJCXFx1MDYyQ1xcdTA2MkRcXHUwNjJFXFx1MDYyRlxcdTA2MzBcXHUwNjMxXFx1MDYzMlxcdTA2MzNcXHUwNjM0XFx1MDYzNVxcdTA2MzZcXHUwNjM3XFx1MDYzOFxcdTA2MzlcXHUwNjNBXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwNjQwXFx1MDY0MVxcdTA2NDJcXHUwNjQzXFx1MDY0NFxcdTA2NDVcXHUwNjQ2XFx1MDY0N1xcdTA2NDhcXHUwNjQ5XFx1MDY0QVxcdTA2NEJcXHUwNjRDXFx1MDY0RFxcdTA2NEVcXHUwNjRGXFx1MDY1MFxcdTA2NTFcXHUwNjUyXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NTk2XCI6IFwiaXNvODg1OTZcIixcbiAgICAgIFwiaXNvODg1OTdcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MjAxOFxcdTIwMTlcXHhBM1xcdTIwQUNcXHUyMEFGXFx4QTZcXHhBN1xceEE4XFx4QTlcXHUwMzdBXFx4QUJcXHhBQ1xceEFEXFx1RkZGRFxcdTIwMTVcXHhCMFxceEIxXFx4QjJcXHhCM1xcdTAzODRcXHUwMzg1XFx1MDM4NlxceEI3XFx1MDM4OFxcdTAzODlcXHUwMzhBXFx4QkJcXHUwMzhDXFx4QkRcXHUwMzhFXFx1MDM4RlxcdTAzOTBcXHUwMzkxXFx1MDM5MlxcdTAzOTNcXHUwMzk0XFx1MDM5NVxcdTAzOTZcXHUwMzk3XFx1MDM5OFxcdTAzOTlcXHUwMzlBXFx1MDM5QlxcdTAzOUNcXHUwMzlEXFx1MDM5RVxcdTAzOUZcXHUwM0EwXFx1MDNBMVxcdUZGRkRcXHUwM0EzXFx1MDNBNFxcdTAzQTVcXHUwM0E2XFx1MDNBN1xcdTAzQThcXHUwM0E5XFx1MDNBQVxcdTAzQUJcXHUwM0FDXFx1MDNBRFxcdTAzQUVcXHUwM0FGXFx1MDNCMFxcdTAzQjFcXHUwM0IyXFx1MDNCM1xcdTAzQjRcXHUwM0I1XFx1MDNCNlxcdTAzQjdcXHUwM0I4XFx1MDNCOVxcdTAzQkFcXHUwM0JCXFx1MDNCQ1xcdTAzQkRcXHUwM0JFXFx1MDNCRlxcdTAzQzBcXHUwM0MxXFx1MDNDMlxcdTAzQzNcXHUwM0M0XFx1MDNDNVxcdTAzQzZcXHUwM0M3XFx1MDNDOFxcdTAzQzlcXHUwM0NBXFx1MDNDQlxcdTAzQ0NcXHUwM0NEXFx1MDNDRVxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODU5N1wiOiBcImlzbzg4NTk3XCIsXG4gICAgICBcImlzbzg4NTk4XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdUZGRkRcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx4RDdcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx4QjlcXHhGN1xceEJCXFx4QkNcXHhCRFxceEJFXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUyMDE3XFx1MDVEMFxcdTA1RDFcXHUwNUQyXFx1MDVEM1xcdTA1RDRcXHUwNUQ1XFx1MDVENlxcdTA1RDdcXHUwNUQ4XFx1MDVEOVxcdTA1REFcXHUwNURCXFx1MDVEQ1xcdTA1RERcXHUwNURFXFx1MDVERlxcdTA1RTBcXHUwNUUxXFx1MDVFMlxcdTA1RTNcXHUwNUU0XFx1MDVFNVxcdTA1RTZcXHUwNUU3XFx1MDVFOFxcdTA1RTlcXHUwNUVBXFx1RkZGRFxcdUZGRkRcXHUyMDBFXFx1MjAwRlxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODU5OFwiOiBcImlzbzg4NTk4XCIsXG4gICAgICBcImlzbzg4NTk5XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxceEExXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4QkFcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx4QzBcXHhDMVxceEMyXFx4QzNcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx4Q0NcXHhDRFxceENFXFx4Q0ZcXHUwMTFFXFx4RDFcXHhEMlxceEQzXFx4RDRcXHhENVxceEQ2XFx4RDdcXHhEOFxceEQ5XFx4REFcXHhEQlxceERDXFx1MDEzMFxcdTAxNUVcXHhERlxceEUwXFx4RTFcXHhFMlxceEUzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx1MDExRlxceEYxXFx4RjJcXHhGM1xceEY0XFx4RjVcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xcdTAxMzFcXHUwMTVGXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODU5OVwiOiBcImlzbzg4NTk5XCIsXG4gICAgICBcImlzbzg4NTkxMFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUwMTA0XFx1MDExMlxcdTAxMjJcXHUwMTJBXFx1MDEyOFxcdTAxMzZcXHhBN1xcdTAxM0JcXHUwMTEwXFx1MDE2MFxcdTAxNjZcXHUwMTdEXFx4QURcXHUwMTZBXFx1MDE0QVxceEIwXFx1MDEwNVxcdTAxMTNcXHUwMTIzXFx1MDEyQlxcdTAxMjlcXHUwMTM3XFx4QjdcXHUwMTNDXFx1MDExMVxcdTAxNjFcXHUwMTY3XFx1MDE3RVxcdTIwMTVcXHUwMTZCXFx1MDE0QlxcdTAxMDBcXHhDMVxceEMyXFx4QzNcXHhDNFxceEM1XFx4QzZcXHUwMTJFXFx1MDEwQ1xceEM5XFx1MDExOFxceENCXFx1MDExNlxceENEXFx4Q0VcXHhDRlxceEQwXFx1MDE0NVxcdTAxNENcXHhEM1xceEQ0XFx4RDVcXHhENlxcdTAxNjhcXHhEOFxcdTAxNzJcXHhEQVxceERCXFx4RENcXHhERFxceERFXFx4REZcXHUwMTAxXFx4RTFcXHhFMlxceEUzXFx4RTRcXHhFNVxceEU2XFx1MDEyRlxcdTAxMERcXHhFOVxcdTAxMTlcXHhFQlxcdTAxMTdcXHhFRFxceEVFXFx4RUZcXHhGMFxcdTAxNDZcXHUwMTREXFx4RjNcXHhGNFxceEY1XFx4RjZcXHUwMTY5XFx4RjhcXHUwMTczXFx4RkFcXHhGQlxceEZDXFx4RkRcXHhGRVxcdTAxMzhcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODYwMFwiOiBcImlzbzg4NTkxMFwiLFxuICAgICAgXCJpc284ODU5MTFcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MEUwMVxcdTBFMDJcXHUwRTAzXFx1MEUwNFxcdTBFMDVcXHUwRTA2XFx1MEUwN1xcdTBFMDhcXHUwRTA5XFx1MEUwQVxcdTBFMEJcXHUwRTBDXFx1MEUwRFxcdTBFMEVcXHUwRTBGXFx1MEUxMFxcdTBFMTFcXHUwRTEyXFx1MEUxM1xcdTBFMTRcXHUwRTE1XFx1MEUxNlxcdTBFMTdcXHUwRTE4XFx1MEUxOVxcdTBFMUFcXHUwRTFCXFx1MEUxQ1xcdTBFMURcXHUwRTFFXFx1MEUxRlxcdTBFMjBcXHUwRTIxXFx1MEUyMlxcdTBFMjNcXHUwRTI0XFx1MEUyNVxcdTBFMjZcXHUwRTI3XFx1MEUyOFxcdTBFMjlcXHUwRTJBXFx1MEUyQlxcdTBFMkNcXHUwRTJEXFx1MEUyRVxcdTBFMkZcXHUwRTMwXFx1MEUzMVxcdTBFMzJcXHUwRTMzXFx1MEUzNFxcdTBFMzVcXHUwRTM2XFx1MEUzN1xcdTBFMzhcXHUwRTM5XFx1MEUzQVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwRTNGXFx1MEU0MFxcdTBFNDFcXHUwRTQyXFx1MEU0M1xcdTBFNDRcXHUwRTQ1XFx1MEU0NlxcdTBFNDdcXHUwRTQ4XFx1MEU0OVxcdTBFNEFcXHUwRTRCXFx1MEU0Q1xcdTBFNERcXHUwRTRFXFx1MEU0RlxcdTBFNTBcXHUwRTUxXFx1MEU1MlxcdTBFNTNcXHUwRTU0XFx1MEU1NVxcdTBFNTZcXHUwRTU3XFx1MEU1OFxcdTBFNTlcXHUwRTVBXFx1MEU1QlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODYwMVwiOiBcImlzbzg4NTkxMVwiLFxuICAgICAgXCJpc284ODU5MTNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MjAxRFxceEEyXFx4QTNcXHhBNFxcdTIwMUVcXHhBNlxceEE3XFx4RDhcXHhBOVxcdTAxNTZcXHhBQlxceEFDXFx4QURcXHhBRVxceEM2XFx4QjBcXHhCMVxceEIyXFx4QjNcXHUyMDFDXFx4QjVcXHhCNlxceEI3XFx4RjhcXHhCOVxcdTAxNTdcXHhCQlxceEJDXFx4QkRcXHhCRVxceEU2XFx1MDEwNFxcdTAxMkVcXHUwMTAwXFx1MDEwNlxceEM0XFx4QzVcXHUwMTE4XFx1MDExMlxcdTAxMENcXHhDOVxcdTAxNzlcXHUwMTE2XFx1MDEyMlxcdTAxMzZcXHUwMTJBXFx1MDEzQlxcdTAxNjBcXHUwMTQzXFx1MDE0NVxceEQzXFx1MDE0Q1xceEQ1XFx4RDZcXHhEN1xcdTAxNzJcXHUwMTQxXFx1MDE1QVxcdTAxNkFcXHhEQ1xcdTAxN0JcXHUwMTdEXFx4REZcXHUwMTA1XFx1MDEyRlxcdTAxMDFcXHUwMTA3XFx4RTRcXHhFNVxcdTAxMTlcXHUwMTEzXFx1MDEwRFxceEU5XFx1MDE3QVxcdTAxMTdcXHUwMTIzXFx1MDEzN1xcdTAxMkJcXHUwMTNDXFx1MDE2MVxcdTAxNDRcXHUwMTQ2XFx4RjNcXHUwMTREXFx4RjVcXHhGNlxceEY3XFx1MDE3M1xcdTAxNDJcXHUwMTVCXFx1MDE2QlxceEZDXFx1MDE3Q1xcdTAxN0VcXHUyMDE5XCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg2MDNcIjogXCJpc284ODU5MTNcIixcbiAgICAgIFwiaXNvODg1OTE0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTFFMDJcXHUxRTAzXFx4QTNcXHUwMTBBXFx1MDEwQlxcdTFFMEFcXHhBN1xcdTFFODBcXHhBOVxcdTFFODJcXHUxRTBCXFx1MUVGMlxceEFEXFx4QUVcXHUwMTc4XFx1MUUxRVxcdTFFMUZcXHUwMTIwXFx1MDEyMVxcdTFFNDBcXHUxRTQxXFx4QjZcXHUxRTU2XFx1MUU4MVxcdTFFNTdcXHUxRTgzXFx1MUU2MFxcdTFFRjNcXHUxRTg0XFx1MUU4NVxcdTFFNjFcXHhDMFxceEMxXFx4QzJcXHhDM1xceEM0XFx4QzVcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHhDQ1xceENEXFx4Q0VcXHhDRlxcdTAxNzRcXHhEMVxceEQyXFx4RDNcXHhENFxceEQ1XFx4RDZcXHUxRTZBXFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xceEREXFx1MDE3NlxceERGXFx4RTBcXHhFMVxceEUyXFx4RTNcXHhFNFxceEU1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHUwMTc1XFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx1MUU2QlxceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHhGRFxcdTAxNzdcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NjA0XCI6IFwiaXNvODg1OTE0XCIsXG4gICAgICBcImlzbzg4NTkxNVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHhBMVxceEEyXFx4QTNcXHUyMEFDXFx4QTVcXHUwMTYwXFx4QTdcXHUwMTYxXFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xcdTAxN0RcXHhCNVxceEI2XFx4QjdcXHUwMTdFXFx4QjlcXHhCQVxceEJCXFx1MDE1MlxcdTAxNTNcXHUwMTc4XFx4QkZcXHhDMFxceEMxXFx4QzJcXHhDM1xceEM0XFx4QzVcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHhDQ1xceENEXFx4Q0VcXHhDRlxceEQwXFx4RDFcXHhEMlxceEQzXFx4RDRcXHhENVxceEQ2XFx4RDdcXHhEOFxceEQ5XFx4REFcXHhEQlxceERDXFx4RERcXHhERVxceERGXFx4RTBcXHhFMVxceEUyXFx4RTNcXHhFNFxceEU1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHhGMFxceEYxXFx4RjJcXHhGM1xceEY0XFx4RjVcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xceEZEXFx4RkVcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NjA1XCI6IFwiaXNvODg1OTE1XCIsXG4gICAgICBcImlzbzg4NTkxNlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUwMTA0XFx1MDEwNVxcdTAxNDFcXHUyMEFDXFx1MjAxRVxcdTAxNjBcXHhBN1xcdTAxNjFcXHhBOVxcdTAyMThcXHhBQlxcdTAxNzlcXHhBRFxcdTAxN0FcXHUwMTdCXFx4QjBcXHhCMVxcdTAxMENcXHUwMTQyXFx1MDE3RFxcdTIwMURcXHhCNlxceEI3XFx1MDE3RVxcdTAxMERcXHUwMjE5XFx4QkJcXHUwMTUyXFx1MDE1M1xcdTAxNzhcXHUwMTdDXFx4QzBcXHhDMVxceEMyXFx1MDEwMlxceEM0XFx1MDEwNlxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx1MDExMFxcdTAxNDNcXHhEMlxceEQzXFx4RDRcXHUwMTUwXFx4RDZcXHUwMTVBXFx1MDE3MFxceEQ5XFx4REFcXHhEQlxceERDXFx1MDExOFxcdTAyMUFcXHhERlxceEUwXFx4RTFcXHhFMlxcdTAxMDNcXHhFNFxcdTAxMDdcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxcdTAxMTFcXHUwMTQ0XFx4RjJcXHhGM1xceEY0XFx1MDE1MVxceEY2XFx1MDE1QlxcdTAxNzFcXHhGOVxceEZBXFx4RkJcXHhGQ1xcdTAxMTlcXHUwMjFCXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODYwNlwiOiBcImlzbzg4NTkxNlwiLFxuICAgICAgXCJjcDQzN1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDN1xceEZDXFx4RTlcXHhFMlxceEU0XFx4RTBcXHhFNVxceEU3XFx4RUFcXHhFQlxceEU4XFx4RUZcXHhFRVxceEVDXFx4QzRcXHhDNVxceEM5XFx4RTZcXHhDNlxceEY0XFx4RjZcXHhGMlxceEZCXFx4RjlcXHhGRlxceEQ2XFx4RENcXHhBMlxceEEzXFx4QTVcXHUyMEE3XFx1MDE5MlxceEUxXFx4RURcXHhGM1xceEZBXFx4RjFcXHhEMVxceEFBXFx4QkFcXHhCRlxcdTIzMTBcXHhBQ1xceEJEXFx4QkNcXHhBMVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwM0IxXFx4REZcXHUwMzkzXFx1MDNDMFxcdTAzQTNcXHUwM0MzXFx4QjVcXHUwM0M0XFx1MDNBNlxcdTAzOThcXHUwM0E5XFx1MDNCNFxcdTIyMUVcXHUwM0M2XFx1MDNCNVxcdTIyMjlcXHUyMjYxXFx4QjFcXHUyMjY1XFx1MjI2NFxcdTIzMjBcXHUyMzIxXFx4RjdcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTQzN1wiOiBcImNwNDM3XCIsXG4gICAgICBcImNzaWJtNDM3XCI6IFwiY3A0MzdcIixcbiAgICAgIFwiY3A3MzdcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDM5MVxcdTAzOTJcXHUwMzkzXFx1MDM5NFxcdTAzOTVcXHUwMzk2XFx1MDM5N1xcdTAzOThcXHUwMzk5XFx1MDM5QVxcdTAzOUJcXHUwMzlDXFx1MDM5RFxcdTAzOUVcXHUwMzlGXFx1MDNBMFxcdTAzQTFcXHUwM0EzXFx1MDNBNFxcdTAzQTVcXHUwM0E2XFx1MDNBN1xcdTAzQThcXHUwM0E5XFx1MDNCMVxcdTAzQjJcXHUwM0IzXFx1MDNCNFxcdTAzQjVcXHUwM0I2XFx1MDNCN1xcdTAzQjhcXHUwM0I5XFx1MDNCQVxcdTAzQkJcXHUwM0JDXFx1MDNCRFxcdTAzQkVcXHUwM0JGXFx1MDNDMFxcdTAzQzFcXHUwM0MzXFx1MDNDMlxcdTAzQzRcXHUwM0M1XFx1MDNDNlxcdTAzQzdcXHUwM0M4XFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDNDOVxcdTAzQUNcXHUwM0FEXFx1MDNBRVxcdTAzQ0FcXHUwM0FGXFx1MDNDQ1xcdTAzQ0RcXHUwM0NCXFx1MDNDRVxcdTAzODZcXHUwMzg4XFx1MDM4OVxcdTAzOEFcXHUwMzhDXFx1MDM4RVxcdTAzOEZcXHhCMVxcdTIyNjVcXHUyMjY0XFx1MDNBQVxcdTAzQUJcXHhGN1xcdTIyNDhcXHhCMFxcdTIyMTlcXHhCN1xcdTIyMUFcXHUyMDdGXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtNzM3XCI6IFwiY3A3MzdcIixcbiAgICAgIFwiY3NpYm03MzdcIjogXCJjcDczN1wiLFxuICAgICAgXCJjcDc3NVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwMTA2XFx4RkNcXHhFOVxcdTAxMDFcXHhFNFxcdTAxMjNcXHhFNVxcdTAxMDdcXHUwMTQyXFx1MDExM1xcdTAxNTZcXHUwMTU3XFx1MDEyQlxcdTAxNzlcXHhDNFxceEM1XFx4QzlcXHhFNlxceEM2XFx1MDE0RFxceEY2XFx1MDEyMlxceEEyXFx1MDE1QVxcdTAxNUJcXHhENlxceERDXFx4RjhcXHhBM1xceEQ4XFx4RDdcXHhBNFxcdTAxMDBcXHUwMTJBXFx4RjNcXHUwMTdCXFx1MDE3Q1xcdTAxN0FcXHUyMDFEXFx4QTZcXHhBOVxceEFFXFx4QUNcXHhCRFxceEJDXFx1MDE0MVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTAxMDRcXHUwMTBDXFx1MDExOFxcdTAxMTZcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MDEyRVxcdTAxNjBcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MDE3MlxcdTAxNkFcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MDE3RFxcdTAxMDVcXHUwMTBEXFx1MDExOVxcdTAxMTdcXHUwMTJGXFx1MDE2MVxcdTAxNzNcXHUwMTZCXFx1MDE3RVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHhEM1xceERGXFx1MDE0Q1xcdTAxNDNcXHhGNVxceEQ1XFx4QjVcXHUwMTQ0XFx1MDEzNlxcdTAxMzdcXHUwMTNCXFx1MDEzQ1xcdTAxNDZcXHUwMTEyXFx1MDE0NVxcdTIwMTlcXHhBRFxceEIxXFx1MjAxQ1xceEJFXFx4QjZcXHhBN1xceEY3XFx1MjAxRVxceEIwXFx1MjIxOVxceEI3XFx4QjlcXHhCM1xceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTc3NVwiOiBcImNwNzc1XCIsXG4gICAgICBcImNzaWJtNzc1XCI6IFwiY3A3NzVcIixcbiAgICAgIFwiY3A4NTBcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhFNFxceEUwXFx4RTVcXHhFN1xceEVBXFx4RUJcXHhFOFxceEVGXFx4RUVcXHhFQ1xceEM0XFx4QzVcXHhDOVxceEU2XFx4QzZcXHhGNFxceEY2XFx4RjJcXHhGQlxceEY5XFx4RkZcXHhENlxceERDXFx4RjhcXHhBM1xceEQ4XFx4RDdcXHUwMTkyXFx4RTFcXHhFRFxceEYzXFx4RkFcXHhGMVxceEQxXFx4QUFcXHhCQVxceEJGXFx4QUVcXHhBQ1xceEJEXFx4QkNcXHhBMVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxceEMxXFx4QzJcXHhDMFxceEE5XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxceEEyXFx4QTVcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx4RTNcXHhDM1xcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHhBNFxceEYwXFx4RDBcXHhDQVxceENCXFx4QzhcXHUwMTMxXFx4Q0RcXHhDRVxceENGXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxceEE2XFx4Q0NcXHUyNTgwXFx4RDNcXHhERlxceEQ0XFx4RDJcXHhGNVxceEQ1XFx4QjVcXHhGRVxceERFXFx4REFcXHhEQlxceEQ5XFx4RkRcXHhERFxceEFGXFx4QjRcXHhBRFxceEIxXFx1MjAxN1xceEJFXFx4QjZcXHhBN1xceEY3XFx4QjhcXHhCMFxceEE4XFx4QjdcXHhCOVxceEIzXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODUwXCI6IFwiY3A4NTBcIixcbiAgICAgIFwiY3NpYm04NTBcIjogXCJjcDg1MFwiLFxuICAgICAgXCJjcDg1MlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDN1xceEZDXFx4RTlcXHhFMlxceEU0XFx1MDE2RlxcdTAxMDdcXHhFN1xcdTAxNDJcXHhFQlxcdTAxNTBcXHUwMTUxXFx4RUVcXHUwMTc5XFx4QzRcXHUwMTA2XFx4QzlcXHUwMTM5XFx1MDEzQVxceEY0XFx4RjZcXHUwMTNEXFx1MDEzRVxcdTAxNUFcXHUwMTVCXFx4RDZcXHhEQ1xcdTAxNjRcXHUwMTY1XFx1MDE0MVxceEQ3XFx1MDEwRFxceEUxXFx4RURcXHhGM1xceEZBXFx1MDEwNFxcdTAxMDVcXHUwMTdEXFx1MDE3RVxcdTAxMThcXHUwMTE5XFx4QUNcXHUwMTdBXFx1MDEwQ1xcdTAxNUZcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHhDMVxceEMyXFx1MDExQVxcdTAxNUVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MDE3QlxcdTAxN0NcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MDEwMlxcdTAxMDNcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx4QTRcXHUwMTExXFx1MDExMFxcdTAxMEVcXHhDQlxcdTAxMEZcXHUwMTQ3XFx4Q0RcXHhDRVxcdTAxMUJcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MDE2MlxcdTAxNkVcXHUyNTgwXFx4RDNcXHhERlxceEQ0XFx1MDE0M1xcdTAxNDRcXHUwMTQ4XFx1MDE2MFxcdTAxNjFcXHUwMTU0XFx4REFcXHUwMTU1XFx1MDE3MFxceEZEXFx4RERcXHUwMTYzXFx4QjRcXHhBRFxcdTAyRERcXHUwMkRCXFx1MDJDN1xcdTAyRDhcXHhBN1xceEY3XFx4QjhcXHhCMFxceEE4XFx1MDJEOVxcdTAxNzFcXHUwMTU4XFx1MDE1OVxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NTJcIjogXCJjcDg1MlwiLFxuICAgICAgXCJjc2libTg1MlwiOiBcImNwODUyXCIsXG4gICAgICBcImNwODU1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0NTJcXHUwNDAyXFx1MDQ1M1xcdTA0MDNcXHUwNDUxXFx1MDQwMVxcdTA0NTRcXHUwNDA0XFx1MDQ1NVxcdTA0MDVcXHUwNDU2XFx1MDQwNlxcdTA0NTdcXHUwNDA3XFx1MDQ1OFxcdTA0MDhcXHUwNDU5XFx1MDQwOVxcdTA0NUFcXHUwNDBBXFx1MDQ1QlxcdTA0MEJcXHUwNDVDXFx1MDQwQ1xcdTA0NUVcXHUwNDBFXFx1MDQ1RlxcdTA0MEZcXHUwNDRFXFx1MDQyRVxcdTA0NEFcXHUwNDJBXFx1MDQzMFxcdTA0MTBcXHUwNDMxXFx1MDQxMVxcdTA0NDZcXHUwNDI2XFx1MDQzNFxcdTA0MTRcXHUwNDM1XFx1MDQxNVxcdTA0NDRcXHUwNDI0XFx1MDQzM1xcdTA0MTNcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUwNDQ1XFx1MDQyNVxcdTA0MzhcXHUwNDE4XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTA0MzlcXHUwNDE5XFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTA0M0FcXHUwNDFBXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xceEE0XFx1MDQzQlxcdTA0MUJcXHUwNDNDXFx1MDQxQ1xcdTA0M0RcXHUwNDFEXFx1MDQzRVxcdTA0MUVcXHUwNDNGXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTA0MUZcXHUwNDRGXFx1MjU4MFxcdTA0MkZcXHUwNDQwXFx1MDQyMFxcdTA0NDFcXHUwNDIxXFx1MDQ0MlxcdTA0MjJcXHUwNDQzXFx1MDQyM1xcdTA0MzZcXHUwNDE2XFx1MDQzMlxcdTA0MTJcXHUwNDRDXFx1MDQyQ1xcdTIxMTZcXHhBRFxcdTA0NEJcXHUwNDJCXFx1MDQzN1xcdTA0MTdcXHUwNDQ4XFx1MDQyOFxcdTA0NERcXHUwNDJEXFx1MDQ0OVxcdTA0MjlcXHUwNDQ3XFx1MDQyN1xceEE3XFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg1NVwiOiBcImNwODU1XCIsXG4gICAgICBcImNzaWJtODU1XCI6IFwiY3A4NTVcIixcbiAgICAgIFwiY3A4NTZcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDVEMFxcdTA1RDFcXHUwNUQyXFx1MDVEM1xcdTA1RDRcXHUwNUQ1XFx1MDVENlxcdTA1RDdcXHUwNUQ4XFx1MDVEOVxcdTA1REFcXHUwNURCXFx1MDVEQ1xcdTA1RERcXHUwNURFXFx1MDVERlxcdTA1RTBcXHUwNUUxXFx1MDVFMlxcdTA1RTNcXHUwNUU0XFx1MDVFNVxcdTA1RTZcXHUwNUU3XFx1MDVFOFxcdTA1RTlcXHUwNUVBXFx1RkZGRFxceEEzXFx1RkZGRFxceEQ3XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxceEFFXFx4QUNcXHhCRFxceEJDXFx1RkZGRFxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxceEE5XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxceEEyXFx4QTVcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1RkZGRFxcdUZGRkRcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx4QTRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx4QTZcXHVGRkZEXFx1MjU4MFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxceEI1XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxceEFGXFx4QjRcXHhBRFxceEIxXFx1MjAxN1xceEJFXFx4QjZcXHhBN1xceEY3XFx4QjhcXHhCMFxceEE4XFx4QjdcXHhCOVxceEIzXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODU2XCI6IFwiY3A4NTZcIixcbiAgICAgIFwiY3NpYm04NTZcIjogXCJjcDg1NlwiLFxuICAgICAgXCJjcDg1N1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDN1xceEZDXFx4RTlcXHhFMlxceEU0XFx4RTBcXHhFNVxceEU3XFx4RUFcXHhFQlxceEU4XFx4RUZcXHhFRVxcdTAxMzFcXHhDNFxceEM1XFx4QzlcXHhFNlxceEM2XFx4RjRcXHhGNlxceEYyXFx4RkJcXHhGOVxcdTAxMzBcXHhENlxceERDXFx4RjhcXHhBM1xceEQ4XFx1MDE1RVxcdTAxNUZcXHhFMVxceEVEXFx4RjNcXHhGQVxceEYxXFx4RDFcXHUwMTFFXFx1MDExRlxceEJGXFx4QUVcXHhBQ1xceEJEXFx4QkNcXHhBMVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxceEMxXFx4QzJcXHhDMFxceEE5XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxceEEyXFx4QTVcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx4RTNcXHhDM1xcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHhBNFxceEJBXFx4QUFcXHhDQVxceENCXFx4QzhcXHVGRkZEXFx4Q0RcXHhDRVxceENGXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxceEE2XFx4Q0NcXHUyNTgwXFx4RDNcXHhERlxceEQ0XFx4RDJcXHhGNVxceEQ1XFx4QjVcXHVGRkZEXFx4RDdcXHhEQVxceERCXFx4RDlcXHhFQ1xceEZGXFx4QUZcXHhCNFxceEFEXFx4QjFcXHVGRkZEXFx4QkVcXHhCNlxceEE3XFx4RjdcXHhCOFxceEIwXFx4QThcXHhCN1xceEI5XFx4QjNcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NTdcIjogXCJjcDg1N1wiLFxuICAgICAgXCJjc2libTg1N1wiOiBcImNwODU3XCIsXG4gICAgICBcImNwODU4XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM3XFx4RkNcXHhFOVxceEUyXFx4RTRcXHhFMFxceEU1XFx4RTdcXHhFQVxceEVCXFx4RThcXHhFRlxceEVFXFx4RUNcXHhDNFxceEM1XFx4QzlcXHhFNlxceEM2XFx4RjRcXHhGNlxceEYyXFx4RkJcXHhGOVxceEZGXFx4RDZcXHhEQ1xceEY4XFx4QTNcXHhEOFxceEQ3XFx1MDE5MlxceEUxXFx4RURcXHhGM1xceEZBXFx4RjFcXHhEMVxceEFBXFx4QkFcXHhCRlxceEFFXFx4QUNcXHhCRFxceEJDXFx4QTFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHhDMVxceEMyXFx4QzBcXHhBOVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHhBMlxceEE1XFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xceEUzXFx4QzNcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx4QTRcXHhGMFxceEQwXFx4Q0FcXHhDQlxceEM4XFx1MjBBQ1xceENEXFx4Q0VcXHhDRlxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHhBNlxceENDXFx1MjU4MFxceEQzXFx4REZcXHhENFxceEQyXFx4RjVcXHhENVxceEI1XFx4RkVcXHhERVxceERBXFx4REJcXHhEOVxceEZEXFx4RERcXHhBRlxceEI0XFx4QURcXHhCMVxcdTIwMTdcXHhCRVxceEI2XFx4QTdcXHhGN1xceEI4XFx4QjBcXHhBOFxceEI3XFx4QjlcXHhCM1xceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg1OFwiOiBcImNwODU4XCIsXG4gICAgICBcImNzaWJtODU4XCI6IFwiY3A4NThcIixcbiAgICAgIFwiY3A4NjBcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhFM1xceEUwXFx4QzFcXHhFN1xceEVBXFx4Q0FcXHhFOFxceENEXFx4RDRcXHhFQ1xceEMzXFx4QzJcXHhDOVxceEMwXFx4QzhcXHhGNFxceEY1XFx4RjJcXHhEQVxceEY5XFx4Q0NcXHhENVxceERDXFx4QTJcXHhBM1xceEQ5XFx1MjBBN1xceEQzXFx4RTFcXHhFRFxceEYzXFx4RkFcXHhGMVxceEQxXFx4QUFcXHhCQVxceEJGXFx4RDJcXHhBQ1xceEJEXFx4QkNcXHhBMVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwM0IxXFx4REZcXHUwMzkzXFx1MDNDMFxcdTAzQTNcXHUwM0MzXFx4QjVcXHUwM0M0XFx1MDNBNlxcdTAzOThcXHUwM0E5XFx1MDNCNFxcdTIyMUVcXHUwM0M2XFx1MDNCNVxcdTIyMjlcXHUyMjYxXFx4QjFcXHUyMjY1XFx1MjI2NFxcdTIzMjBcXHUyMzIxXFx4RjdcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg2MFwiOiBcImNwODYwXCIsXG4gICAgICBcImNzaWJtODYwXCI6IFwiY3A4NjBcIixcbiAgICAgIFwiY3A4NjFcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhFNFxceEUwXFx4RTVcXHhFN1xceEVBXFx4RUJcXHhFOFxceEQwXFx4RjBcXHhERVxceEM0XFx4QzVcXHhDOVxceEU2XFx4QzZcXHhGNFxceEY2XFx4RkVcXHhGQlxceEREXFx4RkRcXHhENlxceERDXFx4RjhcXHhBM1xceEQ4XFx1MjBBN1xcdTAxOTJcXHhFMVxceEVEXFx4RjNcXHhGQVxceEMxXFx4Q0RcXHhEM1xceERBXFx4QkZcXHUyMzEwXFx4QUNcXHhCRFxceEJDXFx4QTFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDNCMVxceERGXFx1MDM5M1xcdTAzQzBcXHUwM0EzXFx1MDNDM1xceEI1XFx1MDNDNFxcdTAzQTZcXHUwMzk4XFx1MDNBOVxcdTAzQjRcXHUyMjFFXFx1MDNDNlxcdTAzQjVcXHUyMjI5XFx1MjI2MVxceEIxXFx1MjI2NVxcdTIyNjRcXHUyMzIwXFx1MjMyMVxceEY3XFx1MjI0OFxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIwN0ZcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NjFcIjogXCJjcDg2MVwiLFxuICAgICAgXCJjc2libTg2MVwiOiBcImNwODYxXCIsXG4gICAgICBcImNwODYyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA1RDBcXHUwNUQxXFx1MDVEMlxcdTA1RDNcXHUwNUQ0XFx1MDVENVxcdTA1RDZcXHUwNUQ3XFx1MDVEOFxcdTA1RDlcXHUwNURBXFx1MDVEQlxcdTA1RENcXHUwNUREXFx1MDVERVxcdTA1REZcXHUwNUUwXFx1MDVFMVxcdTA1RTJcXHUwNUUzXFx1MDVFNFxcdTA1RTVcXHUwNUU2XFx1MDVFN1xcdTA1RThcXHUwNUU5XFx1MDVFQVxceEEyXFx4QTNcXHhBNVxcdTIwQTdcXHUwMTkyXFx4RTFcXHhFRFxceEYzXFx4RkFcXHhGMVxceEQxXFx4QUFcXHhCQVxceEJGXFx1MjMxMFxceEFDXFx4QkRcXHhCQ1xceEExXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTAzQjFcXHhERlxcdTAzOTNcXHUwM0MwXFx1MDNBM1xcdTAzQzNcXHhCNVxcdTAzQzRcXHUwM0E2XFx1MDM5OFxcdTAzQTlcXHUwM0I0XFx1MjIxRVxcdTAzQzZcXHUwM0I1XFx1MjIyOVxcdTIyNjFcXHhCMVxcdTIyNjVcXHUyMjY0XFx1MjMyMFxcdTIzMjFcXHhGN1xcdTIyNDhcXHhCMFxcdTIyMTlcXHhCN1xcdTIyMUFcXHUyMDdGXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODYyXCI6IFwiY3A4NjJcIixcbiAgICAgIFwiY3NpYm04NjJcIjogXCJjcDg2MlwiLFxuICAgICAgXCJjcDg2M1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDN1xceEZDXFx4RTlcXHhFMlxceEMyXFx4RTBcXHhCNlxceEU3XFx4RUFcXHhFQlxceEU4XFx4RUZcXHhFRVxcdTIwMTdcXHhDMFxceEE3XFx4QzlcXHhDOFxceENBXFx4RjRcXHhDQlxceENGXFx4RkJcXHhGOVxceEE0XFx4RDRcXHhEQ1xceEEyXFx4QTNcXHhEOVxceERCXFx1MDE5MlxceEE2XFx4QjRcXHhGM1xceEZBXFx4QThcXHhCOFxceEIzXFx4QUZcXHhDRVxcdTIzMTBcXHhBQ1xceEJEXFx4QkNcXHhCRVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwM0IxXFx4REZcXHUwMzkzXFx1MDNDMFxcdTAzQTNcXHUwM0MzXFx4QjVcXHUwM0M0XFx1MDNBNlxcdTAzOThcXHUwM0E5XFx1MDNCNFxcdTIyMUVcXHUwM0M2XFx1MDNCNVxcdTIyMjlcXHUyMjYxXFx4QjFcXHUyMjY1XFx1MjI2NFxcdTIzMjBcXHUyMzIxXFx4RjdcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg2M1wiOiBcImNwODYzXCIsXG4gICAgICBcImNzaWJtODYzXCI6IFwiY3A4NjNcIixcbiAgICAgIFwiY3A4NjRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFwwXHUwMDAxXHUwMDAyXHUwMDAzXHUwMDA0XHUwMDA1XHUwMDA2XFx4MDdcXGJcdFxcblxcdlxcZlxcclx1MDAwRVx1MDAwRlx1MDAxMFx1MDAxMVx1MDAxMlx1MDAxM1x1MDAxNFx1MDAxNVx1MDAxNlx1MDAxN1x1MDAxOFx1MDAxOVx1MDAxQVxceDFCXHUwMDFDXHUwMDFEXHUwMDFFXHUwMDFGICFcXFwiIyRcXHUwNjZBJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5cXHg3RlxceEIwXFx4QjdcXHUyMjE5XFx1MjIxQVxcdTI1OTJcXHUyNTAwXFx1MjUwMlxcdTI1M0NcXHUyNTI0XFx1MjUyQ1xcdTI1MUNcXHUyNTM0XFx1MjUxMFxcdTI1MENcXHUyNTE0XFx1MjUxOFxcdTAzQjJcXHUyMjFFXFx1MDNDNlxceEIxXFx4QkRcXHhCQ1xcdTIyNDhcXHhBQlxceEJCXFx1RkVGN1xcdUZFRjhcXHVGRkZEXFx1RkZGRFxcdUZFRkJcXHVGRUZDXFx1RkZGRFxceEEwXFx4QURcXHVGRTgyXFx4QTNcXHhBNFxcdUZFODRcXHVGRkZEXFx1RkZGRFxcdUZFOEVcXHVGRThGXFx1RkU5NVxcdUZFOTlcXHUwNjBDXFx1RkU5RFxcdUZFQTFcXHVGRUE1XFx1MDY2MFxcdTA2NjFcXHUwNjYyXFx1MDY2M1xcdTA2NjRcXHUwNjY1XFx1MDY2NlxcdTA2NjdcXHUwNjY4XFx1MDY2OVxcdUZFRDFcXHUwNjFCXFx1RkVCMVxcdUZFQjVcXHVGRUI5XFx1MDYxRlxceEEyXFx1RkU4MFxcdUZFODFcXHVGRTgzXFx1RkU4NVxcdUZFQ0FcXHVGRThCXFx1RkU4RFxcdUZFOTFcXHVGRTkzXFx1RkU5N1xcdUZFOUJcXHVGRTlGXFx1RkVBM1xcdUZFQTdcXHVGRUE5XFx1RkVBQlxcdUZFQURcXHVGRUFGXFx1RkVCM1xcdUZFQjdcXHVGRUJCXFx1RkVCRlxcdUZFQzFcXHVGRUM1XFx1RkVDQlxcdUZFQ0ZcXHhBNlxceEFDXFx4RjdcXHhEN1xcdUZFQzlcXHUwNjQwXFx1RkVEM1xcdUZFRDdcXHVGRURCXFx1RkVERlxcdUZFRTNcXHVGRUU3XFx1RkVFQlxcdUZFRURcXHVGRUVGXFx1RkVGM1xcdUZFQkRcXHVGRUNDXFx1RkVDRVxcdUZFQ0RcXHVGRUUxXFx1RkU3RFxcdTA2NTFcXHVGRUU1XFx1RkVFOVxcdUZFRUNcXHVGRUYwXFx1RkVGMlxcdUZFRDBcXHVGRUQ1XFx1RkVGNVxcdUZFRjZcXHVGRUREXFx1RkVEOVxcdUZFRjFcXHUyNUEwXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NjRcIjogXCJjcDg2NFwiLFxuICAgICAgXCJjc2libTg2NFwiOiBcImNwODY0XCIsXG4gICAgICBcImNwODY1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM3XFx4RkNcXHhFOVxceEUyXFx4RTRcXHhFMFxceEU1XFx4RTdcXHhFQVxceEVCXFx4RThcXHhFRlxceEVFXFx4RUNcXHhDNFxceEM1XFx4QzlcXHhFNlxceEM2XFx4RjRcXHhGNlxceEYyXFx4RkJcXHhGOVxceEZGXFx4RDZcXHhEQ1xceEY4XFx4QTNcXHhEOFxcdTIwQTdcXHUwMTkyXFx4RTFcXHhFRFxceEYzXFx4RkFcXHhGMVxceEQxXFx4QUFcXHhCQVxceEJGXFx1MjMxMFxceEFDXFx4QkRcXHhCQ1xceEExXFx4QUJcXHhBNFxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTAzQjFcXHhERlxcdTAzOTNcXHUwM0MwXFx1MDNBM1xcdTAzQzNcXHhCNVxcdTAzQzRcXHUwM0E2XFx1MDM5OFxcdTAzQTlcXHUwM0I0XFx1MjIxRVxcdTAzQzZcXHUwM0I1XFx1MjIyOVxcdTIyNjFcXHhCMVxcdTIyNjVcXHUyMjY0XFx1MjMyMFxcdTIzMjFcXHhGN1xcdTIyNDhcXHhCMFxcdTIyMTlcXHhCN1xcdTIyMUFcXHUyMDdGXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODY1XCI6IFwiY3A4NjVcIixcbiAgICAgIFwiY3NpYm04NjVcIjogXCJjcDg2NVwiLFxuICAgICAgXCJjcDg2NlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXFx1MDQwMVxcdTA0NTFcXHUwNDA0XFx1MDQ1NFxcdTA0MDdcXHUwNDU3XFx1MDQwRVxcdTA0NUVcXHhCMFxcdTIyMTlcXHhCN1xcdTIyMUFcXHUyMTE2XFx4QTRcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODY2XCI6IFwiY3A4NjZcIixcbiAgICAgIFwiY3NpYm04NjZcIjogXCJjcDg2NlwiLFxuICAgICAgXCJjcDg2OVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwMzg2XFx1RkZGRFxceEI3XFx4QUNcXHhBNlxcdTIwMThcXHUyMDE5XFx1MDM4OFxcdTIwMTVcXHUwMzg5XFx1MDM4QVxcdTAzQUFcXHUwMzhDXFx1RkZGRFxcdUZGRkRcXHUwMzhFXFx1MDNBQlxceEE5XFx1MDM4RlxceEIyXFx4QjNcXHUwM0FDXFx4QTNcXHUwM0FEXFx1MDNBRVxcdTAzQUZcXHUwM0NBXFx1MDM5MFxcdTAzQ0NcXHUwM0NEXFx1MDM5MVxcdTAzOTJcXHUwMzkzXFx1MDM5NFxcdTAzOTVcXHUwMzk2XFx1MDM5N1xceEJEXFx1MDM5OFxcdTAzOTlcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUwMzlBXFx1MDM5QlxcdTAzOUNcXHUwMzlEXFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTAzOUVcXHUwMzlGXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTAzQTBcXHUwM0ExXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTAzQTNcXHUwM0E0XFx1MDNBNVxcdTAzQTZcXHUwM0E3XFx1MDNBOFxcdTAzQTlcXHUwM0IxXFx1MDNCMlxcdTAzQjNcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MDNCNFxcdTAzQjVcXHUyNTgwXFx1MDNCNlxcdTAzQjdcXHUwM0I4XFx1MDNCOVxcdTAzQkFcXHUwM0JCXFx1MDNCQ1xcdTAzQkRcXHUwM0JFXFx1MDNCRlxcdTAzQzBcXHUwM0MxXFx1MDNDM1xcdTAzQzJcXHUwM0M0XFx1MDM4NFxceEFEXFx4QjFcXHUwM0M1XFx1MDNDNlxcdTAzQzdcXHhBN1xcdTAzQzhcXHUwMzg1XFx4QjBcXHhBOFxcdTAzQzlcXHUwM0NCXFx1MDNCMFxcdTAzQ0VcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODY5XCI6IFwiY3A4NjlcIixcbiAgICAgIFwiY3NpYm04NjlcIjogXCJjcDg2OVwiLFxuICAgICAgXCJjcDkyMlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx1MjAzRVxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4QkFcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx4QzBcXHhDMVxceEMyXFx4QzNcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx4Q0NcXHhDRFxceENFXFx4Q0ZcXHUwMTYwXFx4RDFcXHhEMlxceEQzXFx4RDRcXHhENVxceEQ2XFx4RDdcXHhEOFxceEQ5XFx4REFcXHhEQlxceERDXFx4RERcXHUwMTdEXFx4REZcXHhFMFxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxcdTAxNjFcXHhGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHhGRFxcdTAxN0VcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJpYm05MjJcIjogXCJjcDkyMlwiLFxuICAgICAgXCJjc2libTkyMlwiOiBcImNwOTIyXCIsXG4gICAgICBcImNwMTA0NlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHVGRTg4XFx4RDdcXHhGN1xcdUY4RjZcXHVGOEY1XFx1RjhGNFxcdUY4RjdcXHVGRTcxXFx4ODhcXHUyNUEwXFx1MjUwMlxcdTI1MDBcXHUyNTEwXFx1MjUwQ1xcdTI1MTRcXHUyNTE4XFx1RkU3OVxcdUZFN0JcXHVGRTdEXFx1RkU3RlxcdUZFNzdcXHVGRThBXFx1RkVGMFxcdUZFRjNcXHVGRUYyXFx1RkVDRVxcdUZFQ0ZcXHVGRUQwXFx1RkVGNlxcdUZFRjhcXHVGRUZBXFx1RkVGQ1xceEEwXFx1RjhGQVxcdUY4RjlcXHVGOEY4XFx4QTRcXHVGOEZCXFx1RkU4QlxcdUZFOTFcXHVGRTk3XFx1RkU5QlxcdUZFOUZcXHVGRUEzXFx1MDYwQ1xceEFEXFx1RkVBN1xcdUZFQjNcXHUwNjYwXFx1MDY2MVxcdTA2NjJcXHUwNjYzXFx1MDY2NFxcdTA2NjVcXHUwNjY2XFx1MDY2N1xcdTA2NjhcXHUwNjY5XFx1RkVCN1xcdTA2MUJcXHVGRUJCXFx1RkVCRlxcdUZFQ0FcXHUwNjFGXFx1RkVDQlxcdTA2MjFcXHUwNjIyXFx1MDYyM1xcdTA2MjRcXHUwNjI1XFx1MDYyNlxcdTA2MjdcXHUwNjI4XFx1MDYyOVxcdTA2MkFcXHUwNjJCXFx1MDYyQ1xcdTA2MkRcXHUwNjJFXFx1MDYyRlxcdTA2MzBcXHUwNjMxXFx1MDYzMlxcdTA2MzNcXHUwNjM0XFx1MDYzNVxcdTA2MzZcXHUwNjM3XFx1RkVDN1xcdTA2MzlcXHUwNjNBXFx1RkVDQ1xcdUZFODJcXHVGRTg0XFx1RkU4RVxcdUZFRDNcXHUwNjQwXFx1MDY0MVxcdTA2NDJcXHUwNjQzXFx1MDY0NFxcdTA2NDVcXHUwNjQ2XFx1MDY0N1xcdTA2NDhcXHUwNjQ5XFx1MDY0QVxcdTA2NEJcXHUwNjRDXFx1MDY0RFxcdTA2NEVcXHUwNjRGXFx1MDY1MFxcdTA2NTFcXHUwNjUyXFx1RkVEN1xcdUZFREJcXHVGRURGXFx1RjhGQ1xcdUZFRjVcXHVGRUY3XFx1RkVGOVxcdUZFRkJcXHVGRUUzXFx1RkVFN1xcdUZFRUNcXHVGRUU5XFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJpYm0xMDQ2XCI6IFwiY3AxMDQ2XCIsXG4gICAgICBcImNzaWJtMTA0NlwiOiBcImNwMTA0NlwiLFxuICAgICAgXCJjcDExMjRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MDQwMVxcdTA0MDJcXHUwNDkwXFx1MDQwNFxcdTA0MDVcXHUwNDA2XFx1MDQwN1xcdTA0MDhcXHUwNDA5XFx1MDQwQVxcdTA0MEJcXHUwNDBDXFx4QURcXHUwNDBFXFx1MDQwRlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcXHUyMTE2XFx1MDQ1MVxcdTA0NTJcXHUwNDkxXFx1MDQ1NFxcdTA0NTVcXHUwNDU2XFx1MDQ1N1xcdTA0NThcXHUwNDU5XFx1MDQ1QVxcdTA0NUJcXHUwNDVDXFx4QTdcXHUwNDVFXFx1MDQ1RlwiXG4gICAgICB9LFxuICAgICAgXCJpYm0xMTI0XCI6IFwiY3AxMTI0XCIsXG4gICAgICBcImNzaWJtMTEyNFwiOiBcImNwMTEyNFwiLFxuICAgICAgXCJjcDExMjVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQxMFxcdTA0MTFcXHUwNDEyXFx1MDQxM1xcdTA0MTRcXHUwNDE1XFx1MDQxNlxcdTA0MTdcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDI0XFx1MDQyNVxcdTA0MjZcXHUwNDI3XFx1MDQyOFxcdTA0MjlcXHUwNDJBXFx1MDQyQlxcdTA0MkNcXHUwNDJEXFx1MDQyRVxcdTA0MkZcXHUwNDMwXFx1MDQzMVxcdTA0MzJcXHUwNDMzXFx1MDQzNFxcdTA0MzVcXHUwNDM2XFx1MDQzN1xcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0NDRcXHUwNDQ1XFx1MDQ0NlxcdTA0NDdcXHUwNDQ4XFx1MDQ0OVxcdTA0NEFcXHUwNDRCXFx1MDQ0Q1xcdTA0NERcXHUwNDRFXFx1MDQ0RlxcdTA0MDFcXHUwNDUxXFx1MDQ5MFxcdTA0OTFcXHUwNDA0XFx1MDQ1NFxcdTA0MDZcXHUwNDU2XFx1MDQwN1xcdTA0NTdcXHhCN1xcdTIyMUFcXHUyMTE2XFx4QTRcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTEyNVwiOiBcImNwMTEyNVwiLFxuICAgICAgXCJjc2libTExMjVcIjogXCJjcDExMjVcIixcbiAgICAgIFwiY3AxMTI5XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxceEExXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx1MDE1M1xceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHUwMTc4XFx4QjVcXHhCNlxceEI3XFx1MDE1MlxceEI5XFx4QkFcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx4QzBcXHhDMVxceEMyXFx1MDEwMlxceEM0XFx4QzVcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHUwMzAwXFx4Q0RcXHhDRVxceENGXFx1MDExMFxceEQxXFx1MDMwOVxceEQzXFx4RDRcXHUwMUEwXFx4RDZcXHhEN1xceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHUwMUFGXFx1MDMwM1xceERGXFx4RTBcXHhFMVxceEUyXFx1MDEwM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHUwMzAxXFx4RURcXHhFRVxceEVGXFx1MDExMVxceEYxXFx1MDMyM1xceEYzXFx4RjRcXHUwMUExXFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHUwMUIwXFx1MjBBQlxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImlibTExMjlcIjogXCJjcDExMjlcIixcbiAgICAgIFwiY3NpYm0xMTI5XCI6IFwiY3AxMTI5XCIsXG4gICAgICBcImNwMTEzM1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFQUFcXHUwRThBXFx1MEU4RFxcdTBFOTRcXHUwRTk1XFx1MEU5NlxcdTBFOTdcXHUwRTk5XFx1MEU5QVxcdTBFOUJcXHUwRTlDXFx1MEU5RFxcdTBFOUVcXHUwRTlGXFx1MEVBMVxcdTBFQTJcXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFCXFx1MEVBRFxcdTBFQUVcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwRUFGXFx1MEVCMFxcdTBFQjJcXHUwRUIzXFx1MEVCNFxcdTBFQjVcXHUwRUI2XFx1MEVCN1xcdTBFQjhcXHUwRUI5XFx1MEVCQ1xcdTBFQjFcXHUwRUJCXFx1MEVCRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTBFQzBcXHUwRUMxXFx1MEVDMlxcdTBFQzNcXHUwRUM0XFx1MEVDOFxcdTBFQzlcXHUwRUNBXFx1MEVDQlxcdTBFQ0NcXHUwRUNEXFx1MEVDNlxcdUZGRkRcXHUwRURDXFx1MEVERFxcdTIwQURcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEVEMFxcdTBFRDFcXHUwRUQyXFx1MEVEM1xcdTBFRDRcXHUwRUQ1XFx1MEVENlxcdTBFRDdcXHUwRUQ4XFx1MEVEOVxcdUZGRkRcXHVGRkZEXFx4QTJcXHhBQ1xceEE2XFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJpYm0xMTMzXCI6IFwiY3AxMTMzXCIsXG4gICAgICBcImNzaWJtMTEzM1wiOiBcImNwMTEzM1wiLFxuICAgICAgXCJjcDExNjFcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwRTQ4XFx1MEUwMVxcdTBFMDJcXHUwRTAzXFx1MEUwNFxcdTBFMDVcXHUwRTA2XFx1MEUwN1xcdTBFMDhcXHUwRTA5XFx1MEUwQVxcdTBFMEJcXHUwRTBDXFx1MEUwRFxcdTBFMEVcXHUwRTBGXFx1MEUxMFxcdTBFMTFcXHUwRTEyXFx1MEUxM1xcdTBFMTRcXHUwRTE1XFx1MEUxNlxcdTBFMTdcXHUwRTE4XFx1MEUxOVxcdTBFMUFcXHUwRTFCXFx1MEUxQ1xcdTBFMURcXHUwRTFFXFx1MEUxRlxcdTBFMjBcXHUwRTIxXFx1MEUyMlxcdTBFMjNcXHUwRTI0XFx1MEUyNVxcdTBFMjZcXHUwRTI3XFx1MEUyOFxcdTBFMjlcXHUwRTJBXFx1MEUyQlxcdTBFMkNcXHUwRTJEXFx1MEUyRVxcdTBFMkZcXHUwRTMwXFx1MEUzMVxcdTBFMzJcXHUwRTMzXFx1MEUzNFxcdTBFMzVcXHUwRTM2XFx1MEUzN1xcdTBFMzhcXHUwRTM5XFx1MEUzQVxcdTBFNDlcXHUwRTRBXFx1MEU0QlxcdTIwQUNcXHUwRTNGXFx1MEU0MFxcdTBFNDFcXHUwRTQyXFx1MEU0M1xcdTBFNDRcXHUwRTQ1XFx1MEU0NlxcdTBFNDdcXHUwRTQ4XFx1MEU0OVxcdTBFNEFcXHUwRTRCXFx1MEU0Q1xcdTBFNERcXHUwRTRFXFx1MEU0RlxcdTBFNTBcXHUwRTUxXFx1MEU1MlxcdTBFNTNcXHUwRTU0XFx1MEU1NVxcdTBFNTZcXHUwRTU3XFx1MEU1OFxcdTBFNTlcXHUwRTVBXFx1MEU1QlxceEEyXFx4QUNcXHhBNlxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTExNjFcIjogXCJjcDExNjFcIixcbiAgICAgIFwiY3NpYm0xMTYxXCI6IFwiY3AxMTYxXCIsXG4gICAgICBcImNwMTE2MlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyMEFDXFx4ODFcXHg4MlxceDgzXFx4ODRcXHUyMDI2XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUwRTAxXFx1MEUwMlxcdTBFMDNcXHUwRTA0XFx1MEUwNVxcdTBFMDZcXHUwRTA3XFx1MEUwOFxcdTBFMDlcXHUwRTBBXFx1MEUwQlxcdTBFMENcXHUwRTBEXFx1MEUwRVxcdTBFMEZcXHUwRTEwXFx1MEUxMVxcdTBFMTJcXHUwRTEzXFx1MEUxNFxcdTBFMTVcXHUwRTE2XFx1MEUxN1xcdTBFMThcXHUwRTE5XFx1MEUxQVxcdTBFMUJcXHUwRTFDXFx1MEUxRFxcdTBFMUVcXHUwRTFGXFx1MEUyMFxcdTBFMjFcXHUwRTIyXFx1MEUyM1xcdTBFMjRcXHUwRTI1XFx1MEUyNlxcdTBFMjdcXHUwRTI4XFx1MEUyOVxcdTBFMkFcXHUwRTJCXFx1MEUyQ1xcdTBFMkRcXHUwRTJFXFx1MEUyRlxcdTBFMzBcXHUwRTMxXFx1MEUzMlxcdTBFMzNcXHUwRTM0XFx1MEUzNVxcdTBFMzZcXHUwRTM3XFx1MEUzOFxcdTBFMzlcXHUwRTNBXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTBFM0ZcXHUwRTQwXFx1MEU0MVxcdTBFNDJcXHUwRTQzXFx1MEU0NFxcdTBFNDVcXHUwRTQ2XFx1MEU0N1xcdTBFNDhcXHUwRTQ5XFx1MEU0QVxcdTBFNEJcXHUwRTRDXFx1MEU0RFxcdTBFNEVcXHUwRTRGXFx1MEU1MFxcdTBFNTFcXHUwRTUyXFx1MEU1M1xcdTBFNTRcXHUwRTU1XFx1MEU1NlxcdTBFNTdcXHUwRTU4XFx1MEU1OVxcdTBFNUFcXHUwRTVCXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJpYm0xMTYyXCI6IFwiY3AxMTYyXCIsXG4gICAgICBcImNzaWJtMTE2MlwiOiBcImNwMTE2MlwiLFxuICAgICAgXCJjcDExNjNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx4QTFcXHhBMlxceEEzXFx1MjBBQ1xceEE1XFx4QTZcXHhBN1xcdTAxNTNcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx1MDE3OFxceEI1XFx4QjZcXHhCN1xcdTAxNTJcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxcdTAxMDJcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx1MDMwMFxceENEXFx4Q0VcXHhDRlxcdTAxMTBcXHhEMVxcdTAzMDlcXHhEM1xceEQ0XFx1MDFBMFxceEQ2XFx4RDdcXHhEOFxceEQ5XFx4REFcXHhEQlxceERDXFx1MDFBRlxcdTAzMDNcXHhERlxceEUwXFx4RTFcXHhFMlxcdTAxMDNcXHhFNFxceEU1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx1MDMwMVxceEVEXFx4RUVcXHhFRlxcdTAxMTFcXHhGMVxcdTAzMjNcXHhGM1xceEY0XFx1MDFBMVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx1MDFCMFxcdTIwQUJcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJpYm0xMTYzXCI6IFwiY3AxMTYzXCIsXG4gICAgICBcImNzaWJtMTE2M1wiOiBcImNwMTE2M1wiLFxuICAgICAgXCJtYWNjcm9hdGlhblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDNFxceEM1XFx4QzdcXHhDOVxceEQxXFx4RDZcXHhEQ1xceEUxXFx4RTBcXHhFMlxceEU0XFx4RTNcXHhFNVxceEU3XFx4RTlcXHhFOFxceEVBXFx4RUJcXHhFRFxceEVDXFx4RUVcXHhFRlxceEYxXFx4RjNcXHhGMlxceEY0XFx4RjZcXHhGNVxceEZBXFx4RjlcXHhGQlxceEZDXFx1MjAyMFxceEIwXFx4QTJcXHhBM1xceEE3XFx1MjAyMlxceEI2XFx4REZcXHhBRVxcdTAxNjBcXHUyMTIyXFx4QjRcXHhBOFxcdTIyNjBcXHUwMTdEXFx4RDhcXHUyMjFFXFx4QjFcXHUyMjY0XFx1MjI2NVxcdTIyMDZcXHhCNVxcdTIyMDJcXHUyMjExXFx1MjIwRlxcdTAxNjFcXHUyMjJCXFx4QUFcXHhCQVxcdTIxMjZcXHUwMTdFXFx4RjhcXHhCRlxceEExXFx4QUNcXHUyMjFBXFx1MDE5MlxcdTIyNDhcXHUwMTA2XFx4QUJcXHUwMTBDXFx1MjAyNlxceEEwXFx4QzBcXHhDM1xceEQ1XFx1MDE1MlxcdTAxNTNcXHUwMTEwXFx1MjAxNFxcdTIwMUNcXHUyMDFEXFx1MjAxOFxcdTIwMTlcXHhGN1xcdTI1Q0FcXHVGRkZEXFx4QTlcXHUyMDQ0XFx4QTRcXHUyMDM5XFx1MjAzQVxceEM2XFx4QkJcXHUyMDEzXFx4QjdcXHUyMDFBXFx1MjAxRVxcdTIwMzBcXHhDMlxcdTAxMDdcXHhDMVxcdTAxMERcXHhDOFxceENEXFx4Q0VcXHhDRlxceENDXFx4RDNcXHhENFxcdTAxMTFcXHhEMlxceERBXFx4REJcXHhEOVxcdTAxMzFcXHUwMkM2XFx1MDJEQ1xceEFGXFx1MDNDMFxceENCXFx1MDJEQVxceEI4XFx4Q0FcXHhFNlxcdTAyQzdcIlxuICAgICAgfSxcbiAgICAgIFwibWFjY3lyaWxsaWNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQxMFxcdTA0MTFcXHUwNDEyXFx1MDQxM1xcdTA0MTRcXHUwNDE1XFx1MDQxNlxcdTA0MTdcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDI0XFx1MDQyNVxcdTA0MjZcXHUwNDI3XFx1MDQyOFxcdTA0MjlcXHUwNDJBXFx1MDQyQlxcdTA0MkNcXHUwNDJEXFx1MDQyRVxcdTA0MkZcXHUyMDIwXFx4QjBcXHhBMlxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHUwNDA2XFx4QUVcXHhBOVxcdTIxMjJcXHUwNDAyXFx1MDQ1MlxcdTIyNjBcXHUwNDAzXFx1MDQ1M1xcdTIyMUVcXHhCMVxcdTIyNjRcXHUyMjY1XFx1MDQ1NlxceEI1XFx1MjIwMlxcdTA0MDhcXHUwNDA0XFx1MDQ1NFxcdTA0MDdcXHUwNDU3XFx1MDQwOVxcdTA0NTlcXHUwNDBBXFx1MDQ1QVxcdTA0NThcXHUwNDA1XFx4QUNcXHUyMjFBXFx1MDE5MlxcdTIyNDhcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxcdTA0MEJcXHUwNDVCXFx1MDQwQ1xcdTA0NUNcXHUwNDU1XFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyMDFFXFx1MDQwRVxcdTA0NUVcXHUwNDBGXFx1MDQ1RlxcdTIxMTZcXHUwNDAxXFx1MDQ1MVxcdTA0NEZcXHUwNDMwXFx1MDQzMVxcdTA0MzJcXHUwNDMzXFx1MDQzNFxcdTA0MzVcXHUwNDM2XFx1MDQzN1xcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0NDRcXHUwNDQ1XFx1MDQ0NlxcdTA0NDdcXHUwNDQ4XFx1MDQ0OVxcdTA0NEFcXHUwNDRCXFx1MDQ0Q1xcdTA0NERcXHUwNDRFXFx4QTRcIlxuICAgICAgfSxcbiAgICAgIFwibWFjZ3JlZWtcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzRcXHhCOVxceEIyXFx4QzlcXHhCM1xceEQ2XFx4RENcXHUwMzg1XFx4RTBcXHhFMlxceEU0XFx1MDM4NFxceEE4XFx4RTdcXHhFOVxceEU4XFx4RUFcXHhFQlxceEEzXFx1MjEyMlxceEVFXFx4RUZcXHUyMDIyXFx4QkRcXHUyMDMwXFx4RjRcXHhGNlxceEE2XFx4QURcXHhGOVxceEZCXFx4RkNcXHUyMDIwXFx1MDM5M1xcdTAzOTRcXHUwMzk4XFx1MDM5QlxcdTAzOUVcXHUwM0EwXFx4REZcXHhBRVxceEE5XFx1MDNBM1xcdTAzQUFcXHhBN1xcdTIyNjBcXHhCMFxcdTAzODdcXHUwMzkxXFx4QjFcXHUyMjY0XFx1MjI2NVxceEE1XFx1MDM5MlxcdTAzOTVcXHUwMzk2XFx1MDM5N1xcdTAzOTlcXHUwMzlBXFx1MDM5Q1xcdTAzQTZcXHUwM0FCXFx1MDNBOFxcdTAzQTlcXHUwM0FDXFx1MDM5RFxceEFDXFx1MDM5RlxcdTAzQTFcXHUyMjQ4XFx1MDNBNFxceEFCXFx4QkJcXHUyMDI2XFx4QTBcXHUwM0E1XFx1MDNBN1xcdTAzODZcXHUwMzg4XFx1MDE1M1xcdTIwMTNcXHUyMDE1XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MDM4OVxcdTAzOEFcXHUwMzhDXFx1MDM4RVxcdTAzQURcXHUwM0FFXFx1MDNBRlxcdTAzQ0NcXHUwMzhGXFx1MDNDRFxcdTAzQjFcXHUwM0IyXFx1MDNDOFxcdTAzQjRcXHUwM0I1XFx1MDNDNlxcdTAzQjNcXHUwM0I3XFx1MDNCOVxcdTAzQkVcXHUwM0JBXFx1MDNCQlxcdTAzQkNcXHUwM0JEXFx1MDNCRlxcdTAzQzBcXHUwM0NFXFx1MDNDMVxcdTAzQzNcXHUwM0M0XFx1MDNCOFxcdTAzQzlcXHUwM0MyXFx1MDNDN1xcdTAzQzVcXHUwM0I2XFx1MDNDQVxcdTAzQ0JcXHUwMzkwXFx1MDNCMFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwibWFjaWNlbGFuZFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDNFxceEM1XFx4QzdcXHhDOVxceEQxXFx4RDZcXHhEQ1xceEUxXFx4RTBcXHhFMlxceEU0XFx4RTNcXHhFNVxceEU3XFx4RTlcXHhFOFxceEVBXFx4RUJcXHhFRFxceEVDXFx4RUVcXHhFRlxceEYxXFx4RjNcXHhGMlxceEY0XFx4RjZcXHhGNVxceEZBXFx4RjlcXHhGQlxceEZDXFx4RERcXHhCMFxceEEyXFx4QTNcXHhBN1xcdTIwMjJcXHhCNlxceERGXFx4QUVcXHhBOVxcdTIxMjJcXHhCNFxceEE4XFx1MjI2MFxceEM2XFx4RDhcXHUyMjFFXFx4QjFcXHUyMjY0XFx1MjI2NVxceEE1XFx4QjVcXHUyMjAyXFx1MjIxMVxcdTIyMEZcXHUwM0MwXFx1MjIyQlxceEFBXFx4QkFcXHUyMTI2XFx4RTZcXHhGOFxceEJGXFx4QTFcXHhBQ1xcdTIyMUFcXHUwMTkyXFx1MjI0OFxcdTIyMDZcXHhBQlxceEJCXFx1MjAyNlxceEEwXFx4QzBcXHhDM1xceEQ1XFx1MDE1MlxcdTAxNTNcXHUyMDEzXFx1MjAxNFxcdTIwMUNcXHUyMDFEXFx1MjAxOFxcdTIwMTlcXHhGN1xcdTI1Q0FcXHhGRlxcdTAxNzhcXHUyMDQ0XFx4QTRcXHhEMFxceEYwXFx4REVcXHhGRVxceEZEXFx4QjdcXHUyMDFBXFx1MjAxRVxcdTIwMzBcXHhDMlxceENBXFx4QzFcXHhDQlxceEM4XFx4Q0RcXHhDRVxceENGXFx4Q0NcXHhEM1xceEQ0XFx1RkZGRFxceEQyXFx4REFcXHhEQlxceEQ5XFx1MDEzMVxcdTAyQzZcXHUwMkRDXFx4QUZcXHUwMkQ4XFx1MDJEOVxcdTAyREFcXHhCOFxcdTAyRERcXHUwMkRCXFx1MDJDN1wiXG4gICAgICB9LFxuICAgICAgXCJtYWNyb21hblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDNFxceEM1XFx4QzdcXHhDOVxceEQxXFx4RDZcXHhEQ1xceEUxXFx4RTBcXHhFMlxceEU0XFx4RTNcXHhFNVxceEU3XFx4RTlcXHhFOFxceEVBXFx4RUJcXHhFRFxceEVDXFx4RUVcXHhFRlxceEYxXFx4RjNcXHhGMlxceEY0XFx4RjZcXHhGNVxceEZBXFx4RjlcXHhGQlxceEZDXFx1MjAyMFxceEIwXFx4QTJcXHhBM1xceEE3XFx1MjAyMlxceEI2XFx4REZcXHhBRVxceEE5XFx1MjEyMlxceEI0XFx4QThcXHUyMjYwXFx4QzZcXHhEOFxcdTIyMUVcXHhCMVxcdTIyNjRcXHUyMjY1XFx4QTVcXHhCNVxcdTIyMDJcXHUyMjExXFx1MjIwRlxcdTAzQzBcXHUyMjJCXFx4QUFcXHhCQVxcdTIxMjZcXHhFNlxceEY4XFx4QkZcXHhBMVxceEFDXFx1MjIxQVxcdTAxOTJcXHUyMjQ4XFx1MjIwNlxceEFCXFx4QkJcXHUyMDI2XFx4QTBcXHhDMFxceEMzXFx4RDVcXHUwMTUyXFx1MDE1M1xcdTIwMTNcXHUyMDE0XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MjVDQVxceEZGXFx1MDE3OFxcdTIwNDRcXHhBNFxcdTIwMzlcXHUyMDNBXFx1RkIwMVxcdUZCMDJcXHUyMDIxXFx4QjdcXHUyMDFBXFx1MjAxRVxcdTIwMzBcXHhDMlxceENBXFx4QzFcXHhDQlxceEM4XFx4Q0RcXHhDRVxceENGXFx4Q0NcXHhEM1xceEQ0XFx1RkZGRFxceEQyXFx4REFcXHhEQlxceEQ5XFx1MDEzMVxcdTAyQzZcXHUwMkRDXFx4QUZcXHUwMkQ4XFx1MDJEOVxcdTAyREFcXHhCOFxcdTAyRERcXHUwMkRCXFx1MDJDN1wiXG4gICAgICB9LFxuICAgICAgXCJtYWNyb21hbmlhXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM0XFx4QzVcXHhDN1xceEM5XFx4RDFcXHhENlxceERDXFx4RTFcXHhFMFxceEUyXFx4RTRcXHhFM1xceEU1XFx4RTdcXHhFOVxceEU4XFx4RUFcXHhFQlxceEVEXFx4RUNcXHhFRVxceEVGXFx4RjFcXHhGM1xceEYyXFx4RjRcXHhGNlxceEY1XFx4RkFcXHhGOVxceEZCXFx4RkNcXHUyMDIwXFx4QjBcXHhBMlxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHhERlxceEFFXFx4QTlcXHUyMTIyXFx4QjRcXHhBOFxcdTIyNjBcXHUwMTAyXFx1MDE1RVxcdTIyMUVcXHhCMVxcdTIyNjRcXHUyMjY1XFx4QTVcXHhCNVxcdTIyMDJcXHUyMjExXFx1MjIwRlxcdTAzQzBcXHUyMjJCXFx4QUFcXHhCQVxcdTIxMjZcXHUwMTAzXFx1MDE1RlxceEJGXFx4QTFcXHhBQ1xcdTIyMUFcXHUwMTkyXFx1MjI0OFxcdTIyMDZcXHhBQlxceEJCXFx1MjAyNlxceEEwXFx4QzBcXHhDM1xceEQ1XFx1MDE1MlxcdTAxNTNcXHUyMDEzXFx1MjAxNFxcdTIwMUNcXHUyMDFEXFx1MjAxOFxcdTIwMTlcXHhGN1xcdTI1Q0FcXHhGRlxcdTAxNzhcXHUyMDQ0XFx4QTRcXHUyMDM5XFx1MjAzQVxcdTAxNjJcXHUwMTYzXFx1MjAyMVxceEI3XFx1MjAxQVxcdTIwMUVcXHUyMDMwXFx4QzJcXHhDQVxceEMxXFx4Q0JcXHhDOFxceENEXFx4Q0VcXHhDRlxceENDXFx4RDNcXHhENFxcdUZGRkRcXHhEMlxceERBXFx4REJcXHhEOVxcdTAxMzFcXHUwMkM2XFx1MDJEQ1xceEFGXFx1MDJEOFxcdTAyRDlcXHUwMkRBXFx4QjhcXHUwMkREXFx1MDJEQlxcdTAyQzdcIlxuICAgICAgfSxcbiAgICAgIFwibWFjdGhhaVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhBQlxceEJCXFx1MjAyNlxcdUY4OENcXHVGODhGXFx1Rjg5MlxcdUY4OTVcXHVGODk4XFx1Rjg4QlxcdUY4OEVcXHVGODkxXFx1Rjg5NFxcdUY4OTdcXHUyMDFDXFx1MjAxRFxcdUY4OTlcXHVGRkZEXFx1MjAyMlxcdUY4ODRcXHVGODg5XFx1Rjg4NVxcdUY4ODZcXHVGODg3XFx1Rjg4OFxcdUY4OEFcXHVGODhEXFx1Rjg5MFxcdUY4OTNcXHVGODk2XFx1MjAxOFxcdTIwMTlcXHVGRkZEXFx4QTBcXHUwRTAxXFx1MEUwMlxcdTBFMDNcXHUwRTA0XFx1MEUwNVxcdTBFMDZcXHUwRTA3XFx1MEUwOFxcdTBFMDlcXHUwRTBBXFx1MEUwQlxcdTBFMENcXHUwRTBEXFx1MEUwRVxcdTBFMEZcXHUwRTEwXFx1MEUxMVxcdTBFMTJcXHUwRTEzXFx1MEUxNFxcdTBFMTVcXHUwRTE2XFx1MEUxN1xcdTBFMThcXHUwRTE5XFx1MEUxQVxcdTBFMUJcXHUwRTFDXFx1MEUxRFxcdTBFMUVcXHUwRTFGXFx1MEUyMFxcdTBFMjFcXHUwRTIyXFx1MEUyM1xcdTBFMjRcXHUwRTI1XFx1MEUyNlxcdTBFMjdcXHUwRTI4XFx1MEUyOVxcdTBFMkFcXHUwRTJCXFx1MEUyQ1xcdTBFMkRcXHUwRTJFXFx1MEUyRlxcdTBFMzBcXHUwRTMxXFx1MEUzMlxcdTBFMzNcXHUwRTM0XFx1MEUzNVxcdTBFMzZcXHUwRTM3XFx1MEUzOFxcdTBFMzlcXHUwRTNBXFx1RkVGRlxcdTIwMEJcXHUyMDEzXFx1MjAxNFxcdTBFM0ZcXHUwRTQwXFx1MEU0MVxcdTBFNDJcXHUwRTQzXFx1MEU0NFxcdTBFNDVcXHUwRTQ2XFx1MEU0N1xcdTBFNDhcXHUwRTQ5XFx1MEU0QVxcdTBFNEJcXHUwRTRDXFx1MEU0RFxcdTIxMjJcXHUwRTRGXFx1MEU1MFxcdTBFNTFcXHUwRTUyXFx1MEU1M1xcdTBFNTRcXHUwRTU1XFx1MEU1NlxcdTBFNTdcXHUwRTU4XFx1MEU1OVxceEFFXFx4QTlcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcIm1hY3R1cmtpc2hcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzRcXHhDNVxceEM3XFx4QzlcXHhEMVxceEQ2XFx4RENcXHhFMVxceEUwXFx4RTJcXHhFNFxceEUzXFx4RTVcXHhFN1xceEU5XFx4RThcXHhFQVxceEVCXFx4RURcXHhFQ1xceEVFXFx4RUZcXHhGMVxceEYzXFx4RjJcXHhGNFxceEY2XFx4RjVcXHhGQVxceEY5XFx4RkJcXHhGQ1xcdTIwMjBcXHhCMFxceEEyXFx4QTNcXHhBN1xcdTIwMjJcXHhCNlxceERGXFx4QUVcXHhBOVxcdTIxMjJcXHhCNFxceEE4XFx1MjI2MFxceEM2XFx4RDhcXHUyMjFFXFx4QjFcXHUyMjY0XFx1MjI2NVxceEE1XFx4QjVcXHUyMjAyXFx1MjIxMVxcdTIyMEZcXHUwM0MwXFx1MjIyQlxceEFBXFx4QkFcXHUyMTI2XFx4RTZcXHhGOFxceEJGXFx4QTFcXHhBQ1xcdTIyMUFcXHUwMTkyXFx1MjI0OFxcdTIyMDZcXHhBQlxceEJCXFx1MjAyNlxceEEwXFx4QzBcXHhDM1xceEQ1XFx1MDE1MlxcdTAxNTNcXHUyMDEzXFx1MjAxNFxcdTIwMUNcXHUyMDFEXFx1MjAxOFxcdTIwMTlcXHhGN1xcdTI1Q0FcXHhGRlxcdTAxNzhcXHUwMTFFXFx1MDExRlxcdTAxMzBcXHUwMTMxXFx1MDE1RVxcdTAxNUZcXHUyMDIxXFx4QjdcXHUyMDFBXFx1MjAxRVxcdTIwMzBcXHhDMlxceENBXFx4QzFcXHhDQlxceEM4XFx4Q0RcXHhDRVxceENGXFx4Q0NcXHhEM1xceEQ0XFx1RkZGRFxceEQyXFx4REFcXHhEQlxceEQ5XFx1RkZGRFxcdTAyQzZcXHUwMkRDXFx4QUZcXHUwMkQ4XFx1MDJEOVxcdTAyREFcXHhCOFxcdTAyRERcXHUwMkRCXFx1MDJDN1wiXG4gICAgICB9LFxuICAgICAgXCJtYWN1a3JhaW5lXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MjAyMFxceEIwXFx1MDQ5MFxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHUwNDA2XFx4QUVcXHhBOVxcdTIxMjJcXHUwNDAyXFx1MDQ1MlxcdTIyNjBcXHUwNDAzXFx1MDQ1M1xcdTIyMUVcXHhCMVxcdTIyNjRcXHUyMjY1XFx1MDQ1NlxceEI1XFx1MDQ5MVxcdTA0MDhcXHUwNDA0XFx1MDQ1NFxcdTA0MDdcXHUwNDU3XFx1MDQwOVxcdTA0NTlcXHUwNDBBXFx1MDQ1QVxcdTA0NThcXHUwNDA1XFx4QUNcXHUyMjFBXFx1MDE5MlxcdTIyNDhcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxcdTA0MEJcXHUwNDVCXFx1MDQwQ1xcdTA0NUNcXHUwNDU1XFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyMDFFXFx1MDQwRVxcdTA0NUVcXHUwNDBGXFx1MDQ1RlxcdTIxMTZcXHUwNDAxXFx1MDQ1MVxcdTA0NEZcXHUwNDMwXFx1MDQzMVxcdTA0MzJcXHUwNDMzXFx1MDQzNFxcdTA0MzVcXHUwNDM2XFx1MDQzN1xcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0NDRcXHUwNDQ1XFx1MDQ0NlxcdTA0NDdcXHUwNDQ4XFx1MDQ0OVxcdTA0NEFcXHUwNDRCXFx1MDQ0Q1xcdTA0NERcXHUwNDRFXFx4QTRcIlxuICAgICAgfSxcbiAgICAgIFwia29pOHJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjUwMFxcdTI1MDJcXHUyNTBDXFx1MjUxMFxcdTI1MTRcXHUyNTE4XFx1MjUxQ1xcdTI1MjRcXHUyNTJDXFx1MjUzNFxcdTI1M0NcXHUyNTgwXFx1MjU4NFxcdTI1ODhcXHUyNThDXFx1MjU5MFxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTIzMjBcXHUyNUEwXFx1MjIxOVxcdTIyMUFcXHUyMjQ4XFx1MjI2NFxcdTIyNjVcXHhBMFxcdTIzMjFcXHhCMFxceEIyXFx4QjdcXHhGN1xcdTI1NTBcXHUyNTUxXFx1MjU1MlxcdTA0NTFcXHUyNTUzXFx1MjU1NFxcdTI1NTVcXHUyNTU2XFx1MjU1N1xcdTI1NThcXHUyNTU5XFx1MjU1QVxcdTI1NUJcXHUyNTVDXFx1MjU1RFxcdTI1NUVcXHUyNTVGXFx1MjU2MFxcdTI1NjFcXHUwNDAxXFx1MjU2MlxcdTI1NjNcXHUyNTY0XFx1MjU2NVxcdTI1NjZcXHUyNTY3XFx1MjU2OFxcdTI1NjlcXHUyNTZBXFx1MjU2QlxcdTI1NkNcXHhBOVxcdTA0NEVcXHUwNDMwXFx1MDQzMVxcdTA0NDZcXHUwNDM0XFx1MDQzNVxcdTA0NDRcXHUwNDMzXFx1MDQ0NVxcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MDQ0RlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDM2XFx1MDQzMlxcdTA0NENcXHUwNDRCXFx1MDQzN1xcdTA0NDhcXHUwNDREXFx1MDQ0OVxcdTA0NDdcXHUwNDRBXFx1MDQyRVxcdTA0MTBcXHUwNDExXFx1MDQyNlxcdTA0MTRcXHUwNDE1XFx1MDQyNFxcdTA0MTNcXHUwNDI1XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDJGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MTZcXHUwNDEyXFx1MDQyQ1xcdTA0MkJcXHUwNDE3XFx1MDQyOFxcdTA0MkRcXHUwNDI5XFx1MDQyN1xcdTA0MkFcIlxuICAgICAgfSxcbiAgICAgIFwia29pOHVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjUwMFxcdTI1MDJcXHUyNTBDXFx1MjUxMFxcdTI1MTRcXHUyNTE4XFx1MjUxQ1xcdTI1MjRcXHUyNTJDXFx1MjUzNFxcdTI1M0NcXHUyNTgwXFx1MjU4NFxcdTI1ODhcXHUyNThDXFx1MjU5MFxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTIzMjBcXHUyNUEwXFx1MjIxOVxcdTIyMUFcXHUyMjQ4XFx1MjI2NFxcdTIyNjVcXHhBMFxcdTIzMjFcXHhCMFxceEIyXFx4QjdcXHhGN1xcdTI1NTBcXHUyNTUxXFx1MjU1MlxcdTA0NTFcXHUwNDU0XFx1MjU1NFxcdTA0NTZcXHUwNDU3XFx1MjU1N1xcdTI1NThcXHUyNTU5XFx1MjU1QVxcdTI1NUJcXHUwNDkxXFx1MjU1RFxcdTI1NUVcXHUyNTVGXFx1MjU2MFxcdTI1NjFcXHUwNDAxXFx1MDQwNFxcdTI1NjNcXHUwNDA2XFx1MDQwN1xcdTI1NjZcXHUyNTY3XFx1MjU2OFxcdTI1NjlcXHUyNTZBXFx1MDQ5MFxcdTI1NkNcXHhBOVxcdTA0NEVcXHUwNDMwXFx1MDQzMVxcdTA0NDZcXHUwNDM0XFx1MDQzNVxcdTA0NDRcXHUwNDMzXFx1MDQ0NVxcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MDQ0RlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDM2XFx1MDQzMlxcdTA0NENcXHUwNDRCXFx1MDQzN1xcdTA0NDhcXHUwNDREXFx1MDQ0OVxcdTA0NDdcXHUwNDRBXFx1MDQyRVxcdTA0MTBcXHUwNDExXFx1MDQyNlxcdTA0MTRcXHUwNDE1XFx1MDQyNFxcdTA0MTNcXHUwNDI1XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDJGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MTZcXHUwNDEyXFx1MDQyQ1xcdTA0MkJcXHUwNDE3XFx1MDQyOFxcdTA0MkRcXHUwNDI5XFx1MDQyN1xcdTA0MkFcIlxuICAgICAgfSxcbiAgICAgIFwia29pOHJ1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTI1MDBcXHUyNTAyXFx1MjUwQ1xcdTI1MTBcXHUyNTE0XFx1MjUxOFxcdTI1MUNcXHUyNTI0XFx1MjUyQ1xcdTI1MzRcXHUyNTNDXFx1MjU4MFxcdTI1ODRcXHUyNTg4XFx1MjU4Q1xcdTI1OTBcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyMzIwXFx1MjVBMFxcdTIyMTlcXHUyMjFBXFx1MjI0OFxcdTIyNjRcXHUyMjY1XFx4QTBcXHUyMzIxXFx4QjBcXHhCMlxceEI3XFx4RjdcXHUyNTUwXFx1MjU1MVxcdTI1NTJcXHUwNDUxXFx1MDQ1NFxcdTI1NTRcXHUwNDU2XFx1MDQ1N1xcdTI1NTdcXHUyNTU4XFx1MjU1OVxcdTI1NUFcXHUyNTVCXFx1MDQ5MVxcdTA0NUVcXHUyNTVFXFx1MjU1RlxcdTI1NjBcXHUyNTYxXFx1MDQwMVxcdTA0MDRcXHUyNTYzXFx1MDQwNlxcdTA0MDdcXHUyNTY2XFx1MjU2N1xcdTI1NjhcXHUyNTY5XFx1MjU2QVxcdTA0OTBcXHUwNDBFXFx4QTlcXHUwNDRFXFx1MDQzMFxcdTA0MzFcXHUwNDQ2XFx1MDQzNFxcdTA0MzVcXHUwNDQ0XFx1MDQzM1xcdTA0NDVcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NEZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQzNlxcdTA0MzJcXHUwNDRDXFx1MDQ0QlxcdTA0MzdcXHUwNDQ4XFx1MDQ0RFxcdTA0NDlcXHUwNDQ3XFx1MDQ0QVxcdTA0MkVcXHUwNDEwXFx1MDQxMVxcdTA0MjZcXHUwNDE0XFx1MDQxNVxcdTA0MjRcXHUwNDEzXFx1MDQyNVxcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDE2XFx1MDQxMlxcdTA0MkNcXHUwNDJCXFx1MDQxN1xcdTA0MjhcXHUwNDJEXFx1MDQyOVxcdTA0MjdcXHUwNDJBXCJcbiAgICAgIH0sXG4gICAgICBcImtvaTh0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0OUJcXHUwNDkzXFx1MjAxQVxcdTA0OTJcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1RkZGRFxcdTIwMzBcXHUwNEIzXFx1MjAzOVxcdTA0QjJcXHUwNEI3XFx1MDRCNlxcdUZGRkRcXHUwNDlBXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdUZGRkRcXHUyMTIyXFx1RkZGRFxcdTIwM0FcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTA0RUZcXHUwNEVFXFx1MDQ1MVxceEE0XFx1MDRFM1xceEE2XFx4QTdcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBQlxceEFDXFx4QURcXHhBRVxcdUZGRkRcXHhCMFxceEIxXFx4QjJcXHUwNDAxXFx1RkZGRFxcdTA0RTJcXHhCNlxceEI3XFx1RkZGRFxcdTIxMTZcXHVGRkZEXFx4QkJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBOVxcdTA0NEVcXHUwNDMwXFx1MDQzMVxcdTA0NDZcXHUwNDM0XFx1MDQzNVxcdTA0NDRcXHUwNDMzXFx1MDQ0NVxcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MDQ0RlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDM2XFx1MDQzMlxcdTA0NENcXHUwNDRCXFx1MDQzN1xcdTA0NDhcXHUwNDREXFx1MDQ0OVxcdTA0NDdcXHUwNDRBXFx1MDQyRVxcdTA0MTBcXHUwNDExXFx1MDQyNlxcdTA0MTRcXHUwNDE1XFx1MDQyNFxcdTA0MTNcXHUwNDI1XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDJGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MTZcXHUwNDEyXFx1MDQyQ1xcdTA0MkJcXHUwNDE3XFx1MDQyOFxcdTA0MkRcXHUwNDI5XFx1MDQyN1xcdTA0MkFcIlxuICAgICAgfSxcbiAgICAgIFwiYXJtc2NpaThcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1RkZGRFxcdTA1ODdcXHUwNTg5KShcXHhCQlxceEFCXFx1MjAxNC5cXHUwNTVELC1cXHUwNThBXFx1MjAyNlxcdTA1NUNcXHUwNTVCXFx1MDU1RVxcdTA1MzFcXHUwNTYxXFx1MDUzMlxcdTA1NjJcXHUwNTMzXFx1MDU2M1xcdTA1MzRcXHUwNTY0XFx1MDUzNVxcdTA1NjVcXHUwNTM2XFx1MDU2NlxcdTA1MzdcXHUwNTY3XFx1MDUzOFxcdTA1NjhcXHUwNTM5XFx1MDU2OVxcdTA1M0FcXHUwNTZBXFx1MDUzQlxcdTA1NkJcXHUwNTNDXFx1MDU2Q1xcdTA1M0RcXHUwNTZEXFx1MDUzRVxcdTA1NkVcXHUwNTNGXFx1MDU2RlxcdTA1NDBcXHUwNTcwXFx1MDU0MVxcdTA1NzFcXHUwNTQyXFx1MDU3MlxcdTA1NDNcXHUwNTczXFx1MDU0NFxcdTA1NzRcXHUwNTQ1XFx1MDU3NVxcdTA1NDZcXHUwNTc2XFx1MDU0N1xcdTA1NzdcXHUwNTQ4XFx1MDU3OFxcdTA1NDlcXHUwNTc5XFx1MDU0QVxcdTA1N0FcXHUwNTRCXFx1MDU3QlxcdTA1NENcXHUwNTdDXFx1MDU0RFxcdTA1N0RcXHUwNTRFXFx1MDU3RVxcdTA1NEZcXHUwNTdGXFx1MDU1MFxcdTA1ODBcXHUwNTUxXFx1MDU4MVxcdTA1NTJcXHUwNTgyXFx1MDU1M1xcdTA1ODNcXHUwNTU0XFx1MDU4NFxcdTA1NTVcXHUwNTg1XFx1MDU1NlxcdTA1ODZcXHUwNTVBXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJyazEwNDhcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQwMlxcdTA0MDNcXHUyMDFBXFx1MDQ1M1xcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUyMEFDXFx1MjAzMFxcdTA0MDlcXHUyMDM5XFx1MDQwQVxcdTA0OUFcXHUwNEJBXFx1MDQwRlxcdTA0NTJcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1RkZGRFxcdTIxMjJcXHUwNDU5XFx1MjAzQVxcdTA0NUFcXHUwNDlCXFx1MDRCQlxcdTA0NUZcXHhBMFxcdTA0QjBcXHUwNEIxXFx1MDREOFxceEE0XFx1MDRFOFxceEE2XFx4QTdcXHUwNDAxXFx4QTlcXHUwNDkyXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHUwNEFFXFx4QjBcXHhCMVxcdTA0MDZcXHUwNDU2XFx1MDRFOVxceEI1XFx4QjZcXHhCN1xcdTA0NTFcXHUyMTE2XFx1MDQ5M1xceEJCXFx1MDREOVxcdTA0QTJcXHUwNEEzXFx1MDRBRlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcIlxuICAgICAgfSxcbiAgICAgIFwidGN2blwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXDBcXHhEQVxcdTFFRTRcdTAwMDNcXHUxRUVBXFx1MUVFQ1xcdTFFRUVcXHgwN1xcYlx0XFxuXFx2XFxmXFxyXHUwMDBFXHUwMDBGXHUwMDEwXFx1MUVFOFxcdTFFRjBcXHUxRUYyXFx1MUVGNlxcdTFFRjhcXHhERFxcdTFFRjRcdTAwMThcdTAwMTlcdTAwMUFcXHgxQlx1MDAxQ1x1MDAxRFx1MDAxRVx1MDAxRiAhXFxcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XFx4N0ZcXHhDMFxcdTFFQTJcXHhDM1xceEMxXFx1MUVBMFxcdTFFQjZcXHUxRUFDXFx4QzhcXHUxRUJBXFx1MUVCQ1xceEM5XFx1MUVCOFxcdTFFQzZcXHhDQ1xcdTFFQzhcXHUwMTI4XFx4Q0RcXHUxRUNBXFx4RDJcXHUxRUNFXFx4RDVcXHhEM1xcdTFFQ0NcXHUxRUQ4XFx1MUVEQ1xcdTFFREVcXHUxRUUwXFx1MUVEQVxcdTFFRTJcXHhEOVxcdTFFRTZcXHUwMTY4XFx4QTBcXHUwMTAyXFx4QzJcXHhDQVxceEQ0XFx1MDFBMFxcdTAxQUZcXHUwMTEwXFx1MDEwM1xceEUyXFx4RUFcXHhGNFxcdTAxQTFcXHUwMUIwXFx1MDExMVxcdTFFQjBcXHUwMzAwXFx1MDMwOVxcdTAzMDNcXHUwMzAxXFx1MDMyM1xceEUwXFx1MUVBM1xceEUzXFx4RTFcXHUxRUExXFx1MUVCMlxcdTFFQjFcXHUxRUIzXFx1MUVCNVxcdTFFQUZcXHUxRUI0XFx1MUVBRVxcdTFFQTZcXHUxRUE4XFx1MUVBQVxcdTFFQTRcXHUxRUMwXFx1MUVCN1xcdTFFQTdcXHUxRUE5XFx1MUVBQlxcdTFFQTVcXHUxRUFEXFx4RThcXHUxRUMyXFx1MUVCQlxcdTFFQkRcXHhFOVxcdTFFQjlcXHUxRUMxXFx1MUVDM1xcdTFFQzVcXHUxRUJGXFx1MUVDN1xceEVDXFx1MUVDOVxcdTFFQzRcXHUxRUJFXFx1MUVEMlxcdTAxMjlcXHhFRFxcdTFFQ0JcXHhGMlxcdTFFRDRcXHUxRUNGXFx4RjVcXHhGM1xcdTFFQ0RcXHUxRUQzXFx1MUVENVxcdTFFRDdcXHUxRUQxXFx1MUVEOVxcdTFFRERcXHUxRURGXFx1MUVFMVxcdTFFREJcXHUxRUUzXFx4RjlcXHUxRUQ2XFx1MUVFN1xcdTAxNjlcXHhGQVxcdTFFRTVcXHUxRUVCXFx1MUVFRFxcdTFFRUZcXHUxRUU5XFx1MUVGMVxcdTFFRjNcXHUxRUY3XFx1MUVGOVxceEZEXFx1MUVGNVxcdTFFRDBcIlxuICAgICAgfSxcbiAgICAgIFwiZ2VvcmdpYW5hY2FkZW15XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHUyMDFBXFx1MDE5MlxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUwMkM2XFx1MjAzMFxcdTAxNjBcXHUyMDM5XFx1MDE1MlxceDhEXFx4OEVcXHg4RlxceDkwXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdTAyRENcXHUyMTIyXFx1MDE2MVxcdTIwM0FcXHUwMTUzXFx4OURcXHg5RVxcdTAxNzhcXHhBMFxceEExXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4QkFcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx1MTBEMFxcdTEwRDFcXHUxMEQyXFx1MTBEM1xcdTEwRDRcXHUxMEQ1XFx1MTBENlxcdTEwRDdcXHUxMEQ4XFx1MTBEOVxcdTEwREFcXHUxMERCXFx1MTBEQ1xcdTEwRERcXHUxMERFXFx1MTBERlxcdTEwRTBcXHUxMEUxXFx1MTBFMlxcdTEwRTNcXHUxMEU0XFx1MTBFNVxcdTEwRTZcXHUxMEU3XFx1MTBFOFxcdTEwRTlcXHUxMEVBXFx1MTBFQlxcdTEwRUNcXHUxMEVEXFx1MTBFRVxcdTEwRUZcXHUxMEYwXFx1MTBGMVxcdTEwRjJcXHUxMEYzXFx1MTBGNFxcdTEwRjVcXHUxMEY2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx4RjBcXHhGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHhGRFxceEZFXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiZ2VvcmdpYW5wc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx1MjAxQVxcdTAxOTJcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MDJDNlxcdTIwMzBcXHUwMTYwXFx1MjAzOVxcdTAxNTJcXHg4RFxceDhFXFx4OEZcXHg5MFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHUwMkRDXFx1MjEyMlxcdTAxNjFcXHUyMDNBXFx1MDE1M1xceDlEXFx4OUVcXHUwMTc4XFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxcdTEwRDBcXHUxMEQxXFx1MTBEMlxcdTEwRDNcXHUxMEQ0XFx1MTBENVxcdTEwRDZcXHUxMEYxXFx1MTBEN1xcdTEwRDhcXHUxMEQ5XFx1MTBEQVxcdTEwREJcXHUxMERDXFx1MTBGMlxcdTEwRERcXHUxMERFXFx1MTBERlxcdTEwRTBcXHUxMEUxXFx1MTBFMlxcdTEwRjNcXHUxMEUzXFx1MTBFNFxcdTEwRTVcXHUxMEU2XFx1MTBFN1xcdTEwRThcXHUxMEU5XFx1MTBFQVxcdTEwRUJcXHUxMEVDXFx1MTBFRFxcdTEwRUVcXHUxMEY0XFx1MTBFRlxcdTEwRjBcXHUxMEY1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHhGMFxceEYxXFx4RjJcXHhGM1xceEY0XFx4RjVcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xceEZEXFx4RkVcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJwdDE1NFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDk2XFx1MDQ5MlxcdTA0RUVcXHUwNDkzXFx1MjAxRVxcdTIwMjZcXHUwNEI2XFx1MDRBRVxcdTA0QjJcXHUwNEFGXFx1MDRBMFxcdTA0RTJcXHUwNEEyXFx1MDQ5QVxcdTA0QkFcXHUwNEI4XFx1MDQ5N1xcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHUwNEIzXFx1MDRCN1xcdTA0QTFcXHUwNEUzXFx1MDRBM1xcdTA0OUJcXHUwNEJCXFx1MDRCOVxceEEwXFx1MDQwRVxcdTA0NUVcXHUwNDA4XFx1MDRFOFxcdTA0OThcXHUwNEIwXFx4QTdcXHUwNDAxXFx4QTlcXHUwNEQ4XFx4QUJcXHhBQ1xcdTA0RUZcXHhBRVxcdTA0OUNcXHhCMFxcdTA0QjFcXHUwNDA2XFx1MDQ1NlxcdTA0OTlcXHUwNEU5XFx4QjZcXHhCN1xcdTA0NTFcXHUyMTE2XFx1MDREOVxceEJCXFx1MDQ1OFxcdTA0QUFcXHUwNEFCXFx1MDQ5RFxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcIlxuICAgICAgfSxcbiAgICAgIFwidmlzY2lpXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcMFx1MDAwMVxcdTFFQjJcdTAwMDNcdTAwMDRcXHUxRUI0XFx1MUVBQVxceDA3XFxiXHRcXG5cXHZcXGZcXHJcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcXHUxRUY2XHUwMDE1XHUwMDE2XHUwMDE3XHUwMDE4XFx1MUVGOFx1MDAxQVxceDFCXHUwMDFDXHUwMDFEXFx1MUVGNFx1MDAxRiAhXFxcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XFx4N0ZcXHUxRUEwXFx1MUVBRVxcdTFFQjBcXHUxRUI2XFx1MUVBNFxcdTFFQTZcXHUxRUE4XFx1MUVBQ1xcdTFFQkNcXHUxRUI4XFx1MUVCRVxcdTFFQzBcXHUxRUMyXFx1MUVDNFxcdTFFQzZcXHUxRUQwXFx1MUVEMlxcdTFFRDRcXHUxRUQ2XFx1MUVEOFxcdTFFRTJcXHUxRURBXFx1MUVEQ1xcdTFFREVcXHUxRUNBXFx1MUVDRVxcdTFFQ0NcXHUxRUM4XFx1MUVFNlxcdTAxNjhcXHUxRUU0XFx1MUVGMlxceEQ1XFx1MUVBRlxcdTFFQjFcXHUxRUI3XFx1MUVBNVxcdTFFQTdcXHUxRUE5XFx1MUVBRFxcdTFFQkRcXHUxRUI5XFx1MUVCRlxcdTFFQzFcXHUxRUMzXFx1MUVDNVxcdTFFQzdcXHUxRUQxXFx1MUVEM1xcdTFFRDVcXHUxRUQ3XFx1MUVFMFxcdTAxQTBcXHUxRUQ5XFx1MUVERFxcdTFFREZcXHUxRUNCXFx1MUVGMFxcdTFFRThcXHUxRUVBXFx1MUVFQ1xcdTAxQTFcXHUxRURCXFx1MDFBRlxceEMwXFx4QzFcXHhDMlxceEMzXFx1MUVBMlxcdTAxMDJcXHUxRUIzXFx1MUVCNVxceEM4XFx4QzlcXHhDQVxcdTFFQkFcXHhDQ1xceENEXFx1MDEyOFxcdTFFRjNcXHUwMTEwXFx1MUVFOVxceEQyXFx4RDNcXHhENFxcdTFFQTFcXHUxRUY3XFx1MUVFQlxcdTFFRURcXHhEOVxceERBXFx1MUVGOVxcdTFFRjVcXHhERFxcdTFFRTFcXHUwMUIwXFx4RTBcXHhFMVxceEUyXFx4RTNcXHUxRUEzXFx1MDEwM1xcdTFFRUZcXHUxRUFCXFx4RThcXHhFOVxceEVBXFx1MUVCQlxceEVDXFx4RURcXHUwMTI5XFx1MUVDOVxcdTAxMTFcXHUxRUYxXFx4RjJcXHhGM1xceEY0XFx4RjVcXHUxRUNGXFx1MUVDRFxcdTFFRTVcXHhGOVxceEZBXFx1MDE2OVxcdTFFRTdcXHhGRFxcdTFFRTNcXHUxRUVFXCJcbiAgICAgIH0sXG4gICAgICBcImlzbzY0NmNuXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcMFx1MDAwMVx1MDAwMlx1MDAwM1x1MDAwNFx1MDAwNVx1MDAwNlxceDA3XFxiXHRcXG5cXHZcXGZcXHJcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcXHgxQlx1MDAxQ1x1MDAxRFx1MDAxRVx1MDAxRiAhXFxcIiNcXHhBNSUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXFxcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9XFx1MjAzRVxceDdGXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiaXNvNjQ2anBcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFwwXHUwMDAxXHUwMDAyXHUwMDAzXHUwMDA0XHUwMDA1XHUwMDA2XFx4MDdcXGJcdFxcblxcdlxcZlxcclx1MDAwRVx1MDAwRlx1MDAxMFx1MDAxMVx1MDAxMlx1MDAxM1x1MDAxNFx1MDAxNVx1MDAxNlx1MDAxN1x1MDAxOFx1MDAxOVx1MDAxQVxceDFCXHUwMDFDXHUwMDFEXHUwMDFFXHUwMDFGICFcXFwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFx4QTVdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1cXHUyMDNFXFx4N0ZcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJocHJvbWFuOFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHhDMFxceEMyXFx4QzhcXHhDQVxceENCXFx4Q0VcXHhDRlxceEI0XFx1MDJDQlxcdTAyQzZcXHhBOFxcdTAyRENcXHhEOVxceERCXFx1MjBBNFxceEFGXFx4RERcXHhGRFxceEIwXFx4QzdcXHhFN1xceEQxXFx4RjFcXHhBMVxceEJGXFx4QTRcXHhBM1xceEE1XFx4QTdcXHUwMTkyXFx4QTJcXHhFMlxceEVBXFx4RjRcXHhGQlxceEUxXFx4RTlcXHhGM1xceEZBXFx4RTBcXHhFOFxceEYyXFx4RjlcXHhFNFxceEVCXFx4RjZcXHhGQ1xceEM1XFx4RUVcXHhEOFxceEM2XFx4RTVcXHhFRFxceEY4XFx4RTZcXHhDNFxceEVDXFx4RDZcXHhEQ1xceEM5XFx4RUZcXHhERlxceEQ0XFx4QzFcXHhDM1xceEUzXFx4RDBcXHhGMFxceENEXFx4Q0NcXHhEM1xceEQyXFx4RDVcXHhGNVxcdTAxNjBcXHUwMTYxXFx4REFcXHUwMTc4XFx4RkZcXHhERVxceEZFXFx4QjdcXHhCNVxceEI2XFx4QkVcXHUyMDE0XFx4QkNcXHhCRFxceEFBXFx4QkFcXHhBQlxcdTI1QTBcXHhCQlxceEIxXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJtYWNpbnRvc2hcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzRcXHhDNVxceEM3XFx4QzlcXHhEMVxceEQ2XFx4RENcXHhFMVxceEUwXFx4RTJcXHhFNFxceEUzXFx4RTVcXHhFN1xceEU5XFx4RThcXHhFQVxceEVCXFx4RURcXHhFQ1xceEVFXFx4RUZcXHhGMVxceEYzXFx4RjJcXHhGNFxceEY2XFx4RjVcXHhGQVxceEY5XFx4RkJcXHhGQ1xcdTIwMjBcXHhCMFxceEEyXFx4QTNcXHhBN1xcdTIwMjJcXHhCNlxceERGXFx4QUVcXHhBOVxcdTIxMjJcXHhCNFxceEE4XFx1MjI2MFxceEM2XFx4RDhcXHUyMjFFXFx4QjFcXHUyMjY0XFx1MjI2NVxceEE1XFx4QjVcXHUyMjAyXFx1MjIxMVxcdTIyMEZcXHUwM0MwXFx1MjIyQlxceEFBXFx4QkFcXHUyMTI2XFx4RTZcXHhGOFxceEJGXFx4QTFcXHhBQ1xcdTIyMUFcXHUwMTkyXFx1MjI0OFxcdTIyMDZcXHhBQlxceEJCXFx1MjAyNlxceEEwXFx4QzBcXHhDM1xceEQ1XFx1MDE1MlxcdTAxNTNcXHUyMDEzXFx1MjAxNFxcdTIwMUNcXHUyMDFEXFx1MjAxOFxcdTIwMTlcXHhGN1xcdTI1Q0FcXHhGRlxcdTAxNzhcXHUyMDQ0XFx4QTRcXHUyMDM5XFx1MjAzQVxcdUZCMDFcXHVGQjAyXFx1MjAyMVxceEI3XFx1MjAxQVxcdTIwMUVcXHUyMDMwXFx4QzJcXHhDQVxceEMxXFx4Q0JcXHhDOFxceENEXFx4Q0VcXHhDRlxceENDXFx4RDNcXHhENFxcdUZGRkRcXHhEMlxceERBXFx4REJcXHhEOVxcdTAxMzFcXHUwMkM2XFx1MDJEQ1xceEFGXFx1MDJEOFxcdTAyRDlcXHUwMkRBXFx4QjhcXHUwMkREXFx1MDJEQlxcdTAyQzdcIlxuICAgICAgfSxcbiAgICAgIFwiYXNjaWlcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwidGlzNjIwXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTBFMDFcXHUwRTAyXFx1MEUwM1xcdTBFMDRcXHUwRTA1XFx1MEUwNlxcdTBFMDdcXHUwRTA4XFx1MEUwOVxcdTBFMEFcXHUwRTBCXFx1MEUwQ1xcdTBFMERcXHUwRTBFXFx1MEUwRlxcdTBFMTBcXHUwRTExXFx1MEUxMlxcdTBFMTNcXHUwRTE0XFx1MEUxNVxcdTBFMTZcXHUwRTE3XFx1MEUxOFxcdTBFMTlcXHUwRTFBXFx1MEUxQlxcdTBFMUNcXHUwRTFEXFx1MEUxRVxcdTBFMUZcXHUwRTIwXFx1MEUyMVxcdTBFMjJcXHUwRTIzXFx1MEUyNFxcdTBFMjVcXHUwRTI2XFx1MEUyN1xcdTBFMjhcXHUwRTI5XFx1MEUyQVxcdTBFMkJcXHUwRTJDXFx1MEUyRFxcdTBFMkVcXHUwRTJGXFx1MEUzMFxcdTBFMzFcXHUwRTMyXFx1MEUzM1xcdTBFMzRcXHUwRTM1XFx1MEUzNlxcdTBFMzdcXHUwRTM4XFx1MEUzOVxcdTBFM0FcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEUzRlxcdTBFNDBcXHUwRTQxXFx1MEU0MlxcdTBFNDNcXHUwRTQ0XFx1MEU0NVxcdTBFNDZcXHUwRTQ3XFx1MEU0OFxcdTBFNDlcXHUwRTRBXFx1MEU0QlxcdTBFNENcXHUwRTREXFx1MEU0RVxcdTBFNEZcXHUwRTUwXFx1MEU1MVxcdTBFNTJcXHUwRTUzXFx1MEU1NFxcdTBFNTVcXHUwRTU2XFx1MEU1N1xcdTBFNThcXHUwRTU5XFx1MEU1QVxcdTBFNUJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH1cbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9kYmNzLWNvZGVjLmpzXG52YXIgcmVxdWlyZV9kYmNzX2NvZGVjID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9kYmNzLWNvZGVjLmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQnVmZmVyMiA9IHJlcXVpcmVfc2FmZXIoKS5CdWZmZXI7XG4gICAgZXhwb3J0czIuX2RiY3MgPSBEQkNTQ29kZWM7XG4gICAgdmFyIFVOQVNTSUdORUQgPSAtMTtcbiAgICB2YXIgR0IxODAzMF9DT0RFID0gLTI7XG4gICAgdmFyIFNFUV9TVEFSVCA9IC0xMDtcbiAgICB2YXIgTk9ERV9TVEFSVCA9IC0xZTM7XG4gICAgdmFyIFVOQVNTSUdORURfTk9ERSA9IG5ldyBBcnJheSgyNTYpO1xuICAgIHZhciBERUZfQ0hBUiA9IC0xO1xuICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKylcbiAgICAgIFVOQVNTSUdORURfTk9ERVtpXSA9IFVOQVNTSUdORUQ7XG4gICAgdmFyIGk7XG4gICAgZnVuY3Rpb24gREJDU0NvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICAgIHRoaXMuZW5jb2RpbmdOYW1lID0gY29kZWNPcHRpb25zLmVuY29kaW5nTmFtZTtcbiAgICAgIGlmICghY29kZWNPcHRpb25zKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEQkNTIGNvZGVjIGlzIGNhbGxlZCB3aXRob3V0IHRoZSBkYXRhLlwiKTtcbiAgICAgIGlmICghY29kZWNPcHRpb25zLnRhYmxlKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmNvZGluZyAnXCIgKyB0aGlzLmVuY29kaW5nTmFtZSArIFwiJyBoYXMgbm8gZGF0YS5cIik7XG4gICAgICB2YXIgbWFwcGluZ1RhYmxlID0gY29kZWNPcHRpb25zLnRhYmxlKCk7XG4gICAgICB0aGlzLmRlY29kZVRhYmxlcyA9IFtdO1xuICAgICAgdGhpcy5kZWNvZGVUYWJsZXNbMF0gPSBVTkFTU0lHTkVEX05PREUuc2xpY2UoMCk7XG4gICAgICB0aGlzLmRlY29kZVRhYmxlU2VxID0gW107XG4gICAgICBmb3IgKHZhciBpMiA9IDA7IGkyIDwgbWFwcGluZ1RhYmxlLmxlbmd0aDsgaTIrKylcbiAgICAgICAgdGhpcy5fYWRkRGVjb2RlQ2h1bmsobWFwcGluZ1RhYmxlW2kyXSk7XG4gICAgICBpZiAodHlwZW9mIGNvZGVjT3B0aW9ucy5nYjE4MDMwID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhpcy5nYjE4MDMwID0gY29kZWNPcHRpb25zLmdiMTgwMzAoKTtcbiAgICAgICAgdmFyIGNvbW1vblRoaXJkQnl0ZU5vZGVJZHggPSB0aGlzLmRlY29kZVRhYmxlcy5sZW5ndGg7XG4gICAgICAgIHRoaXMuZGVjb2RlVGFibGVzLnB1c2goVU5BU1NJR05FRF9OT0RFLnNsaWNlKDApKTtcbiAgICAgICAgdmFyIGNvbW1vbkZvdXJ0aEJ5dGVOb2RlSWR4ID0gdGhpcy5kZWNvZGVUYWJsZXMubGVuZ3RoO1xuICAgICAgICB0aGlzLmRlY29kZVRhYmxlcy5wdXNoKFVOQVNTSUdORURfTk9ERS5zbGljZSgwKSk7XG4gICAgICAgIHZhciBmaXJzdEJ5dGVOb2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbMF07XG4gICAgICAgIGZvciAodmFyIGkyID0gMTI5OyBpMiA8PSAyNTQ7IGkyKyspIHtcbiAgICAgICAgICB2YXIgc2Vjb25kQnl0ZU5vZGUgPSB0aGlzLmRlY29kZVRhYmxlc1tOT0RFX1NUQVJUIC0gZmlyc3RCeXRlTm9kZVtpMl1dO1xuICAgICAgICAgIGZvciAodmFyIGogPSA0ODsgaiA8PSA1NzsgaisrKSB7XG4gICAgICAgICAgICBpZiAoc2Vjb25kQnl0ZU5vZGVbal0gPT09IFVOQVNTSUdORUQpIHtcbiAgICAgICAgICAgICAgc2Vjb25kQnl0ZU5vZGVbal0gPSBOT0RFX1NUQVJUIC0gY29tbW9uVGhpcmRCeXRlTm9kZUlkeDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2Vjb25kQnl0ZU5vZGVbal0gPiBOT0RFX1NUQVJUKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdiMTgwMzAgZGVjb2RlIHRhYmxlcyBjb25mbGljdCBhdCBieXRlIDJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdGhpcmRCeXRlTm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzW05PREVfU1RBUlQgLSBzZWNvbmRCeXRlTm9kZVtqXV07XG4gICAgICAgICAgICBmb3IgKHZhciBrID0gMTI5OyBrIDw9IDI1NDsgaysrKSB7XG4gICAgICAgICAgICAgIGlmICh0aGlyZEJ5dGVOb2RlW2tdID09PSBVTkFTU0lHTkVEKSB7XG4gICAgICAgICAgICAgICAgdGhpcmRCeXRlTm9kZVtrXSA9IE5PREVfU1RBUlQgLSBjb21tb25Gb3VydGhCeXRlTm9kZUlkeDtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlyZEJ5dGVOb2RlW2tdID09PSBOT0RFX1NUQVJUIC0gY29tbW9uRm91cnRoQnl0ZU5vZGVJZHgpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlyZEJ5dGVOb2RlW2tdID4gTk9ERV9TVEFSVCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdiMTgwMzAgZGVjb2RlIHRhYmxlcyBjb25mbGljdCBhdCBieXRlIDNcIik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIGZvdXJ0aEJ5dGVOb2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbTk9ERV9TVEFSVCAtIHRoaXJkQnl0ZU5vZGVba11dO1xuICAgICAgICAgICAgICBmb3IgKHZhciBsID0gNDg7IGwgPD0gNTc7IGwrKykge1xuICAgICAgICAgICAgICAgIGlmIChmb3VydGhCeXRlTm9kZVtsXSA9PT0gVU5BU1NJR05FRClcbiAgICAgICAgICAgICAgICAgIGZvdXJ0aEJ5dGVOb2RlW2xdID0gR0IxODAzMF9DT0RFO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZSA9IGljb252LmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgIHRoaXMuZW5jb2RlVGFibGUgPSBbXTtcbiAgICAgIHRoaXMuZW5jb2RlVGFibGVTZXEgPSBbXTtcbiAgICAgIHZhciBza2lwRW5jb2RlQ2hhcnMgPSB7fTtcbiAgICAgIGlmIChjb2RlY09wdGlvbnMuZW5jb2RlU2tpcFZhbHMpXG4gICAgICAgIGZvciAodmFyIGkyID0gMDsgaTIgPCBjb2RlY09wdGlvbnMuZW5jb2RlU2tpcFZhbHMubGVuZ3RoOyBpMisrKSB7XG4gICAgICAgICAgdmFyIHZhbCA9IGNvZGVjT3B0aW9ucy5lbmNvZGVTa2lwVmFsc1tpMl07XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIpXG4gICAgICAgICAgICBza2lwRW5jb2RlQ2hhcnNbdmFsXSA9IHRydWU7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZm9yICh2YXIgaiA9IHZhbC5mcm9tOyBqIDw9IHZhbC50bzsgaisrKVxuICAgICAgICAgICAgICBza2lwRW5jb2RlQ2hhcnNbal0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB0aGlzLl9maWxsRW5jb2RlVGFibGUoMCwgMCwgc2tpcEVuY29kZUNoYXJzKTtcbiAgICAgIGlmIChjb2RlY09wdGlvbnMuZW5jb2RlQWRkKSB7XG4gICAgICAgIGZvciAodmFyIHVDaGFyIGluIGNvZGVjT3B0aW9ucy5lbmNvZGVBZGQpXG4gICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjb2RlY09wdGlvbnMuZW5jb2RlQWRkLCB1Q2hhcikpXG4gICAgICAgICAgICB0aGlzLl9zZXRFbmNvZGVDaGFyKHVDaGFyLmNoYXJDb2RlQXQoMCksIGNvZGVjT3B0aW9ucy5lbmNvZGVBZGRbdUNoYXJdKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGVmQ2hhclNCID0gdGhpcy5lbmNvZGVUYWJsZVswXVtpY29udi5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUuY2hhckNvZGVBdCgwKV07XG4gICAgICBpZiAodGhpcy5kZWZDaGFyU0IgPT09IFVOQVNTSUdORUQpIHRoaXMuZGVmQ2hhclNCID0gdGhpcy5lbmNvZGVUYWJsZVswXVtcIj9cIl07XG4gICAgICBpZiAodGhpcy5kZWZDaGFyU0IgPT09IFVOQVNTSUdORUQpIHRoaXMuZGVmQ2hhclNCID0gXCI/XCIuY2hhckNvZGVBdCgwKTtcbiAgICB9XG4gICAgREJDU0NvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gREJDU0VuY29kZXI7XG4gICAgREJDU0NvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gREJDU0RlY29kZXI7XG4gICAgREJDU0NvZGVjLnByb3RvdHlwZS5fZ2V0RGVjb2RlVHJpZU5vZGUgPSBmdW5jdGlvbihhZGRyKSB7XG4gICAgICB2YXIgYnl0ZXMgPSBbXTtcbiAgICAgIGZvciAoOyBhZGRyID4gMDsgYWRkciA+Pj49IDgpXG4gICAgICAgIGJ5dGVzLnB1c2goYWRkciAmIDI1NSk7XG4gICAgICBpZiAoYnl0ZXMubGVuZ3RoID09IDApXG4gICAgICAgIGJ5dGVzLnB1c2goMCk7XG4gICAgICB2YXIgbm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzWzBdO1xuICAgICAgZm9yICh2YXIgaTIgPSBieXRlcy5sZW5ndGggLSAxOyBpMiA+IDA7IGkyLS0pIHtcbiAgICAgICAgdmFyIHZhbCA9IG5vZGVbYnl0ZXNbaTJdXTtcbiAgICAgICAgaWYgKHZhbCA9PSBVTkFTU0lHTkVEKSB7XG4gICAgICAgICAgbm9kZVtieXRlc1tpMl1dID0gTk9ERV9TVEFSVCAtIHRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aDtcbiAgICAgICAgICB0aGlzLmRlY29kZVRhYmxlcy5wdXNoKG5vZGUgPSBVTkFTU0lHTkVEX05PREUuc2xpY2UoMCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbCA8PSBOT0RFX1NUQVJUKSB7XG4gICAgICAgICAgbm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzW05PREVfU1RBUlQgLSB2YWxdO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPdmVyd3JpdGUgYnl0ZSBpbiBcIiArIHRoaXMuZW5jb2RpbmdOYW1lICsgXCIsIGFkZHI6IFwiICsgYWRkci50b1N0cmluZygxNikpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfTtcbiAgICBEQkNTQ29kZWMucHJvdG90eXBlLl9hZGREZWNvZGVDaHVuayA9IGZ1bmN0aW9uKGNodW5rKSB7XG4gICAgICB2YXIgY3VyQWRkciA9IHBhcnNlSW50KGNodW5rWzBdLCAxNik7XG4gICAgICB2YXIgd3JpdGVUYWJsZSA9IHRoaXMuX2dldERlY29kZVRyaWVOb2RlKGN1ckFkZHIpO1xuICAgICAgY3VyQWRkciA9IGN1ckFkZHIgJiAyNTU7XG4gICAgICBmb3IgKHZhciBrID0gMTsgayA8IGNodW5rLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBwYXJ0ID0gY2h1bmtba107XG4gICAgICAgIGlmICh0eXBlb2YgcGFydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGZvciAodmFyIGwgPSAwOyBsIDwgcGFydC5sZW5ndGg7ICkge1xuICAgICAgICAgICAgdmFyIGNvZGUgPSBwYXJ0LmNoYXJDb2RlQXQobCsrKTtcbiAgICAgICAgICAgIGlmICg1NTI5NiA8PSBjb2RlICYmIGNvZGUgPCA1NjMyMCkge1xuICAgICAgICAgICAgICB2YXIgY29kZVRyYWlsID0gcGFydC5jaGFyQ29kZUF0KGwrKyk7XG4gICAgICAgICAgICAgIGlmICg1NjMyMCA8PSBjb2RlVHJhaWwgJiYgY29kZVRyYWlsIDwgNTczNDQpXG4gICAgICAgICAgICAgICAgd3JpdGVUYWJsZVtjdXJBZGRyKytdID0gNjU1MzYgKyAoY29kZSAtIDU1Mjk2KSAqIDEwMjQgKyAoY29kZVRyYWlsIC0gNTYzMjApO1xuICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW5jb3JyZWN0IHN1cnJvZ2F0ZSBwYWlyIGluIFwiICsgdGhpcy5lbmNvZGluZ05hbWUgKyBcIiBhdCBjaHVuayBcIiArIGNodW5rWzBdKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoNDA4MCA8IGNvZGUgJiYgY29kZSA8PSA0MDk1KSB7XG4gICAgICAgICAgICAgIHZhciBsZW4gPSA0MDk1IC0gY29kZSArIDI7XG4gICAgICAgICAgICAgIHZhciBzZXEgPSBbXTtcbiAgICAgICAgICAgICAgZm9yICh2YXIgbSA9IDA7IG0gPCBsZW47IG0rKylcbiAgICAgICAgICAgICAgICBzZXEucHVzaChwYXJ0LmNoYXJDb2RlQXQobCsrKSk7XG4gICAgICAgICAgICAgIHdyaXRlVGFibGVbY3VyQWRkcisrXSA9IFNFUV9TVEFSVCAtIHRoaXMuZGVjb2RlVGFibGVTZXEubGVuZ3RoO1xuICAgICAgICAgICAgICB0aGlzLmRlY29kZVRhYmxlU2VxLnB1c2goc2VxKTtcbiAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICB3cml0ZVRhYmxlW2N1ckFkZHIrK10gPSBjb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcGFydCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIHZhciBjaGFyQ29kZSA9IHdyaXRlVGFibGVbY3VyQWRkciAtIDFdICsgMTtcbiAgICAgICAgICBmb3IgKHZhciBsID0gMDsgbCA8IHBhcnQ7IGwrKylcbiAgICAgICAgICAgIHdyaXRlVGFibGVbY3VyQWRkcisrXSA9IGNoYXJDb2RlKys7XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkluY29ycmVjdCB0eXBlICdcIiArIHR5cGVvZiBwYXJ0ICsgXCInIGdpdmVuIGluIFwiICsgdGhpcy5lbmNvZGluZ05hbWUgKyBcIiBhdCBjaHVuayBcIiArIGNodW5rWzBdKTtcbiAgICAgIH1cbiAgICAgIGlmIChjdXJBZGRyID4gMjU1KVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmNvcnJlY3QgY2h1bmsgaW4gXCIgKyB0aGlzLmVuY29kaW5nTmFtZSArIFwiIGF0IGFkZHIgXCIgKyBjaHVua1swXSArIFwiOiB0b28gbG9uZ1wiICsgY3VyQWRkcik7XG4gICAgfTtcbiAgICBEQkNTQ29kZWMucHJvdG90eXBlLl9nZXRFbmNvZGVCdWNrZXQgPSBmdW5jdGlvbih1Q29kZSkge1xuICAgICAgdmFyIGhpZ2ggPSB1Q29kZSA+PiA4O1xuICAgICAgaWYgKHRoaXMuZW5jb2RlVGFibGVbaGlnaF0gPT09IHZvaWQgMClcbiAgICAgICAgdGhpcy5lbmNvZGVUYWJsZVtoaWdoXSA9IFVOQVNTSUdORURfTk9ERS5zbGljZSgwKTtcbiAgICAgIHJldHVybiB0aGlzLmVuY29kZVRhYmxlW2hpZ2hdO1xuICAgIH07XG4gICAgREJDU0NvZGVjLnByb3RvdHlwZS5fc2V0RW5jb2RlQ2hhciA9IGZ1bmN0aW9uKHVDb2RlLCBkYmNzQ29kZSkge1xuICAgICAgdmFyIGJ1Y2tldCA9IHRoaXMuX2dldEVuY29kZUJ1Y2tldCh1Q29kZSk7XG4gICAgICB2YXIgbG93ID0gdUNvZGUgJiAyNTU7XG4gICAgICBpZiAoYnVja2V0W2xvd10gPD0gU0VRX1NUQVJUKVxuICAgICAgICB0aGlzLmVuY29kZVRhYmxlU2VxW1NFUV9TVEFSVCAtIGJ1Y2tldFtsb3ddXVtERUZfQ0hBUl0gPSBkYmNzQ29kZTtcbiAgICAgIGVsc2UgaWYgKGJ1Y2tldFtsb3ddID09IFVOQVNTSUdORUQpXG4gICAgICAgIGJ1Y2tldFtsb3ddID0gZGJjc0NvZGU7XG4gICAgfTtcbiAgICBEQkNTQ29kZWMucHJvdG90eXBlLl9zZXRFbmNvZGVTZXF1ZW5jZSA9IGZ1bmN0aW9uKHNlcSwgZGJjc0NvZGUpIHtcbiAgICAgIHZhciB1Q29kZSA9IHNlcVswXTtcbiAgICAgIHZhciBidWNrZXQgPSB0aGlzLl9nZXRFbmNvZGVCdWNrZXQodUNvZGUpO1xuICAgICAgdmFyIGxvdyA9IHVDb2RlICYgMjU1O1xuICAgICAgdmFyIG5vZGU7XG4gICAgICBpZiAoYnVja2V0W2xvd10gPD0gU0VRX1NUQVJUKSB7XG4gICAgICAgIG5vZGUgPSB0aGlzLmVuY29kZVRhYmxlU2VxW1NFUV9TVEFSVCAtIGJ1Y2tldFtsb3ddXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUgPSB7fTtcbiAgICAgICAgaWYgKGJ1Y2tldFtsb3ddICE9PSBVTkFTU0lHTkVEKSBub2RlW0RFRl9DSEFSXSA9IGJ1Y2tldFtsb3ddO1xuICAgICAgICBidWNrZXRbbG93XSA9IFNFUV9TVEFSVCAtIHRoaXMuZW5jb2RlVGFibGVTZXEubGVuZ3RoO1xuICAgICAgICB0aGlzLmVuY29kZVRhYmxlU2VxLnB1c2gobm9kZSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBqID0gMTsgaiA8IHNlcS5sZW5ndGggLSAxOyBqKyspIHtcbiAgICAgICAgdmFyIG9sZFZhbCA9IG5vZGVbdUNvZGVdO1xuICAgICAgICBpZiAodHlwZW9mIG9sZFZhbCA9PT0gXCJvYmplY3RcIilcbiAgICAgICAgICBub2RlID0gb2xkVmFsO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBub2RlID0gbm9kZVt1Q29kZV0gPSB7fTtcbiAgICAgICAgICBpZiAob2xkVmFsICE9PSB2b2lkIDApXG4gICAgICAgICAgICBub2RlW0RFRl9DSEFSXSA9IG9sZFZhbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdUNvZGUgPSBzZXFbc2VxLmxlbmd0aCAtIDFdO1xuICAgICAgbm9kZVt1Q29kZV0gPSBkYmNzQ29kZTtcbiAgICB9O1xuICAgIERCQ1NDb2RlYy5wcm90b3R5cGUuX2ZpbGxFbmNvZGVUYWJsZSA9IGZ1bmN0aW9uKG5vZGVJZHgsIHByZWZpeCwgc2tpcEVuY29kZUNoYXJzKSB7XG4gICAgICB2YXIgbm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzW25vZGVJZHhdO1xuICAgICAgdmFyIGhhc1ZhbHVlcyA9IGZhbHNlO1xuICAgICAgdmFyIHN1Yk5vZGVFbXB0eSA9IHt9O1xuICAgICAgZm9yICh2YXIgaTIgPSAwOyBpMiA8IDI1NjsgaTIrKykge1xuICAgICAgICB2YXIgdUNvZGUgPSBub2RlW2kyXTtcbiAgICAgICAgdmFyIG1iQ29kZSA9IHByZWZpeCArIGkyO1xuICAgICAgICBpZiAoc2tpcEVuY29kZUNoYXJzW21iQ29kZV0pXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGlmICh1Q29kZSA+PSAwKSB7XG4gICAgICAgICAgdGhpcy5fc2V0RW5jb2RlQ2hhcih1Q29kZSwgbWJDb2RlKTtcbiAgICAgICAgICBoYXNWYWx1ZXMgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlIDw9IE5PREVfU1RBUlQpIHtcbiAgICAgICAgICB2YXIgc3ViTm9kZUlkeCA9IE5PREVfU1RBUlQgLSB1Q29kZTtcbiAgICAgICAgICBpZiAoIXN1Yk5vZGVFbXB0eVtzdWJOb2RlSWR4XSkge1xuICAgICAgICAgICAgdmFyIG5ld1ByZWZpeCA9IG1iQ29kZSA8PCA4ID4+PiAwO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2ZpbGxFbmNvZGVUYWJsZShzdWJOb2RlSWR4LCBuZXdQcmVmaXgsIHNraXBFbmNvZGVDaGFycykpXG4gICAgICAgICAgICAgIGhhc1ZhbHVlcyA9IHRydWU7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHN1Yk5vZGVFbXB0eVtzdWJOb2RlSWR4XSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlIDw9IFNFUV9TVEFSVCkge1xuICAgICAgICAgIHRoaXMuX3NldEVuY29kZVNlcXVlbmNlKHRoaXMuZGVjb2RlVGFibGVTZXFbU0VRX1NUQVJUIC0gdUNvZGVdLCBtYkNvZGUpO1xuICAgICAgICAgIGhhc1ZhbHVlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNWYWx1ZXM7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBEQkNTRW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5sZWFkU3Vycm9nYXRlID0gLTE7XG4gICAgICB0aGlzLnNlcU9iaiA9IHZvaWQgMDtcbiAgICAgIHRoaXMuZW5jb2RlVGFibGUgPSBjb2RlYy5lbmNvZGVUYWJsZTtcbiAgICAgIHRoaXMuZW5jb2RlVGFibGVTZXEgPSBjb2RlYy5lbmNvZGVUYWJsZVNlcTtcbiAgICAgIHRoaXMuZGVmYXVsdENoYXJTaW5nbGVCeXRlID0gY29kZWMuZGVmQ2hhclNCO1xuICAgICAgdGhpcy5nYjE4MDMwID0gY29kZWMuZ2IxODAzMDtcbiAgICB9XG4gICAgREJDU0VuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICB2YXIgbmV3QnVmID0gQnVmZmVyMi5hbGxvYyhzdHIubGVuZ3RoICogKHRoaXMuZ2IxODAzMCA/IDQgOiAzKSksIGxlYWRTdXJyb2dhdGUgPSB0aGlzLmxlYWRTdXJyb2dhdGUsIHNlcU9iaiA9IHRoaXMuc2VxT2JqLCBuZXh0Q2hhciA9IC0xLCBpMiA9IDAsIGogPSAwO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgaWYgKG5leHRDaGFyID09PSAtMSkge1xuICAgICAgICAgIGlmIChpMiA9PSBzdHIubGVuZ3RoKSBicmVhaztcbiAgICAgICAgICB2YXIgdUNvZGUgPSBzdHIuY2hhckNvZGVBdChpMisrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgdUNvZGUgPSBuZXh0Q2hhcjtcbiAgICAgICAgICBuZXh0Q2hhciA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmICg1NTI5NiA8PSB1Q29kZSAmJiB1Q29kZSA8IDU3MzQ0KSB7XG4gICAgICAgICAgaWYgKHVDb2RlIDwgNTYzMjApIHtcbiAgICAgICAgICAgIGlmIChsZWFkU3Vycm9nYXRlID09PSAtMSkge1xuICAgICAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gdUNvZGU7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IHVDb2RlO1xuICAgICAgICAgICAgICB1Q29kZSA9IFVOQVNTSUdORUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChsZWFkU3Vycm9nYXRlICE9PSAtMSkge1xuICAgICAgICAgICAgICB1Q29kZSA9IDY1NTM2ICsgKGxlYWRTdXJyb2dhdGUgLSA1NTI5NikgKiAxMDI0ICsgKHVDb2RlIC0gNTYzMjApO1xuICAgICAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gLTE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB1Q29kZSA9IFVOQVNTSUdORUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGxlYWRTdXJyb2dhdGUgIT09IC0xKSB7XG4gICAgICAgICAgbmV4dENoYXIgPSB1Q29kZTtcbiAgICAgICAgICB1Q29kZSA9IFVOQVNTSUdORUQ7XG4gICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkYmNzQ29kZSA9IFVOQVNTSUdORUQ7XG4gICAgICAgIGlmIChzZXFPYmogIT09IHZvaWQgMCAmJiB1Q29kZSAhPSBVTkFTU0lHTkVEKSB7XG4gICAgICAgICAgdmFyIHJlc0NvZGUgPSBzZXFPYmpbdUNvZGVdO1xuICAgICAgICAgIGlmICh0eXBlb2YgcmVzQ29kZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgc2VxT2JqID0gcmVzQ29kZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlc0NvZGUgPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgZGJjc0NvZGUgPSByZXNDb2RlO1xuICAgICAgICAgIH0gZWxzZSBpZiAocmVzQ29kZSA9PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHJlc0NvZGUgPSBzZXFPYmpbREVGX0NIQVJdO1xuICAgICAgICAgICAgaWYgKHJlc0NvZGUgIT09IHZvaWQgMCkge1xuICAgICAgICAgICAgICBkYmNzQ29kZSA9IHJlc0NvZGU7XG4gICAgICAgICAgICAgIG5leHRDaGFyID0gdUNvZGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBzZXFPYmogPSB2b2lkIDA7XG4gICAgICAgIH0gZWxzZSBpZiAodUNvZGUgPj0gMCkge1xuICAgICAgICAgIHZhciBzdWJ0YWJsZSA9IHRoaXMuZW5jb2RlVGFibGVbdUNvZGUgPj4gOF07XG4gICAgICAgICAgaWYgKHN1YnRhYmxlICE9PSB2b2lkIDApXG4gICAgICAgICAgICBkYmNzQ29kZSA9IHN1YnRhYmxlW3VDb2RlICYgMjU1XTtcbiAgICAgICAgICBpZiAoZGJjc0NvZGUgPD0gU0VRX1NUQVJUKSB7XG4gICAgICAgICAgICBzZXFPYmogPSB0aGlzLmVuY29kZVRhYmxlU2VxW1NFUV9TVEFSVCAtIGRiY3NDb2RlXTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGJjc0NvZGUgPT0gVU5BU1NJR05FRCAmJiB0aGlzLmdiMTgwMzApIHtcbiAgICAgICAgICAgIHZhciBpZHggPSBmaW5kSWR4KHRoaXMuZ2IxODAzMC51Q2hhcnMsIHVDb2RlKTtcbiAgICAgICAgICAgIGlmIChpZHggIT0gLTEpIHtcbiAgICAgICAgICAgICAgdmFyIGRiY3NDb2RlID0gdGhpcy5nYjE4MDMwLmdiQ2hhcnNbaWR4XSArICh1Q29kZSAtIHRoaXMuZ2IxODAzMC51Q2hhcnNbaWR4XSk7XG4gICAgICAgICAgICAgIG5ld0J1ZltqKytdID0gMTI5ICsgTWF0aC5mbG9vcihkYmNzQ29kZSAvIDEyNjAwKTtcbiAgICAgICAgICAgICAgZGJjc0NvZGUgPSBkYmNzQ29kZSAlIDEyNjAwO1xuICAgICAgICAgICAgICBuZXdCdWZbaisrXSA9IDQ4ICsgTWF0aC5mbG9vcihkYmNzQ29kZSAvIDEyNjApO1xuICAgICAgICAgICAgICBkYmNzQ29kZSA9IGRiY3NDb2RlICUgMTI2MDtcbiAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSAxMjkgKyBNYXRoLmZsb29yKGRiY3NDb2RlIC8gMTApO1xuICAgICAgICAgICAgICBkYmNzQ29kZSA9IGRiY3NDb2RlICUgMTA7XG4gICAgICAgICAgICAgIG5ld0J1ZltqKytdID0gNDggKyBkYmNzQ29kZTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkYmNzQ29kZSA9PT0gVU5BU1NJR05FRClcbiAgICAgICAgICBkYmNzQ29kZSA9IHRoaXMuZGVmYXVsdENoYXJTaW5nbGVCeXRlO1xuICAgICAgICBpZiAoZGJjc0NvZGUgPCAyNTYpIHtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlO1xuICAgICAgICB9IGVsc2UgaWYgKGRiY3NDb2RlIDwgNjU1MzYpIHtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+IDg7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSAmIDI1NTtcbiAgICAgICAgfSBlbHNlIGlmIChkYmNzQ29kZSA8IDE2Nzc3MjE2KSB7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSA+PiAxNjtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+IDggJiAyNTU7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSAmIDI1NTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+PiAyNDtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+PiAxNiAmIDI1NTtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+PiA4ICYgMjU1O1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgJiAyNTU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuc2VxT2JqID0gc2VxT2JqO1xuICAgICAgdGhpcy5sZWFkU3Vycm9nYXRlID0gbGVhZFN1cnJvZ2F0ZTtcbiAgICAgIHJldHVybiBuZXdCdWYuc2xpY2UoMCwgaik7XG4gICAgfTtcbiAgICBEQkNTRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAodGhpcy5sZWFkU3Vycm9nYXRlID09PSAtMSAmJiB0aGlzLnNlcU9iaiA9PT0gdm9pZCAwKVxuICAgICAgICByZXR1cm47XG4gICAgICB2YXIgbmV3QnVmID0gQnVmZmVyMi5hbGxvYygxMCksIGogPSAwO1xuICAgICAgaWYgKHRoaXMuc2VxT2JqKSB7XG4gICAgICAgIHZhciBkYmNzQ29kZSA9IHRoaXMuc2VxT2JqW0RFRl9DSEFSXTtcbiAgICAgICAgaWYgKGRiY3NDb2RlICE9PSB2b2lkIDApIHtcbiAgICAgICAgICBpZiAoZGJjc0NvZGUgPCAyNTYpIHtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgPj4gODtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgJiAyNTU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VxT2JqID0gdm9pZCAwO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubGVhZFN1cnJvZ2F0ZSAhPT0gLTEpIHtcbiAgICAgICAgbmV3QnVmW2orK10gPSB0aGlzLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZTtcbiAgICAgICAgdGhpcy5sZWFkU3Vycm9nYXRlID0gLTE7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3QnVmLnNsaWNlKDAsIGopO1xuICAgIH07XG4gICAgREJDU0VuY29kZXIucHJvdG90eXBlLmZpbmRJZHggPSBmaW5kSWR4O1xuICAgIGZ1bmN0aW9uIERCQ1NEZWNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLm5vZGVJZHggPSAwO1xuICAgICAgdGhpcy5wcmV2Qnl0ZXMgPSBbXTtcbiAgICAgIHRoaXMuZGVjb2RlVGFibGVzID0gY29kZWMuZGVjb2RlVGFibGVzO1xuICAgICAgdGhpcy5kZWNvZGVUYWJsZVNlcSA9IGNvZGVjLmRlY29kZVRhYmxlU2VxO1xuICAgICAgdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUgPSBjb2RlYy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICB0aGlzLmdiMTgwMzAgPSBjb2RlYy5nYjE4MDMwO1xuICAgIH1cbiAgICBEQkNTRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIHZhciBuZXdCdWYgPSBCdWZmZXIyLmFsbG9jKGJ1Zi5sZW5ndGggKiAyKSwgbm9kZUlkeCA9IHRoaXMubm9kZUlkeCwgcHJldkJ5dGVzID0gdGhpcy5wcmV2Qnl0ZXMsIHByZXZPZmZzZXQgPSB0aGlzLnByZXZCeXRlcy5sZW5ndGgsIHNlcVN0YXJ0ID0gLXRoaXMucHJldkJ5dGVzLmxlbmd0aCwgdUNvZGU7XG4gICAgICBmb3IgKHZhciBpMiA9IDAsIGogPSAwOyBpMiA8IGJ1Zi5sZW5ndGg7IGkyKyspIHtcbiAgICAgICAgdmFyIGN1ckJ5dGUgPSBpMiA+PSAwID8gYnVmW2kyXSA6IHByZXZCeXRlc1tpMiArIHByZXZPZmZzZXRdO1xuICAgICAgICB2YXIgdUNvZGUgPSB0aGlzLmRlY29kZVRhYmxlc1tub2RlSWR4XVtjdXJCeXRlXTtcbiAgICAgICAgaWYgKHVDb2RlID49IDApIHtcbiAgICAgICAgfSBlbHNlIGlmICh1Q29kZSA9PT0gVU5BU1NJR05FRCkge1xuICAgICAgICAgIHVDb2RlID0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgICBpMiA9IHNlcVN0YXJ0O1xuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlID09PSBHQjE4MDMwX0NPREUpIHtcbiAgICAgICAgICBpZiAoaTIgPj0gMykge1xuICAgICAgICAgICAgdmFyIHB0ciA9IChidWZbaTIgLSAzXSAtIDEyOSkgKiAxMjYwMCArIChidWZbaTIgLSAyXSAtIDQ4KSAqIDEyNjAgKyAoYnVmW2kyIC0gMV0gLSAxMjkpICogMTAgKyAoY3VyQnl0ZSAtIDQ4KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIHB0ciA9IChwcmV2Qnl0ZXNbaTIgLSAzICsgcHJldk9mZnNldF0gLSAxMjkpICogMTI2MDAgKyAoKGkyIC0gMiA+PSAwID8gYnVmW2kyIC0gMl0gOiBwcmV2Qnl0ZXNbaTIgLSAyICsgcHJldk9mZnNldF0pIC0gNDgpICogMTI2MCArICgoaTIgLSAxID49IDAgPyBidWZbaTIgLSAxXSA6IHByZXZCeXRlc1tpMiAtIDEgKyBwcmV2T2Zmc2V0XSkgLSAxMjkpICogMTAgKyAoY3VyQnl0ZSAtIDQ4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGlkeCA9IGZpbmRJZHgodGhpcy5nYjE4MDMwLmdiQ2hhcnMsIHB0cik7XG4gICAgICAgICAgdUNvZGUgPSB0aGlzLmdiMTgwMzAudUNoYXJzW2lkeF0gKyBwdHIgLSB0aGlzLmdiMTgwMzAuZ2JDaGFyc1tpZHhdO1xuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlIDw9IE5PREVfU1RBUlQpIHtcbiAgICAgICAgICBub2RlSWR4ID0gTk9ERV9TVEFSVCAtIHVDb2RlO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlIDw9IFNFUV9TVEFSVCkge1xuICAgICAgICAgIHZhciBzZXEgPSB0aGlzLmRlY29kZVRhYmxlU2VxW1NFUV9TVEFSVCAtIHVDb2RlXTtcbiAgICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IHNlcS5sZW5ndGggLSAxOyBrKyspIHtcbiAgICAgICAgICAgIHVDb2RlID0gc2VxW2tdO1xuICAgICAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZSAmIDI1NTtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gdUNvZGUgPj4gODtcbiAgICAgICAgICB9XG4gICAgICAgICAgdUNvZGUgPSBzZXFbc2VxLmxlbmd0aCAtIDFdO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpY29udi1saXRlIGludGVybmFsIGVycm9yOiBpbnZhbGlkIGRlY29kaW5nIHRhYmxlIHZhbHVlIFwiICsgdUNvZGUgKyBcIiBhdCBcIiArIG5vZGVJZHggKyBcIi9cIiArIGN1ckJ5dGUpO1xuICAgICAgICBpZiAodUNvZGUgPj0gNjU1MzYpIHtcbiAgICAgICAgICB1Q29kZSAtPSA2NTUzNjtcbiAgICAgICAgICB2YXIgdUNvZGVMZWFkID0gNTUyOTYgfCB1Q29kZSA+PiAxMDtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IHVDb2RlTGVhZCAmIDI1NTtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IHVDb2RlTGVhZCA+PiA4O1xuICAgICAgICAgIHVDb2RlID0gNTYzMjAgfCB1Q29kZSAmIDEwMjM7XG4gICAgICAgIH1cbiAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZSAmIDI1NTtcbiAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZSA+PiA4O1xuICAgICAgICBub2RlSWR4ID0gMDtcbiAgICAgICAgc2VxU3RhcnQgPSBpMiArIDE7XG4gICAgICB9XG4gICAgICB0aGlzLm5vZGVJZHggPSBub2RlSWR4O1xuICAgICAgdGhpcy5wcmV2Qnl0ZXMgPSBzZXFTdGFydCA+PSAwID8gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYnVmLCBzZXFTdGFydCkgOiBwcmV2Qnl0ZXMuc2xpY2Uoc2VxU3RhcnQgKyBwcmV2T2Zmc2V0KS5jb25jYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYnVmKSk7XG4gICAgICByZXR1cm4gbmV3QnVmLnNsaWNlKDAsIGopLnRvU3RyaW5nKFwidWNzMlwiKTtcbiAgICB9O1xuICAgIERCQ1NEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciByZXQgPSBcIlwiO1xuICAgICAgd2hpbGUgKHRoaXMucHJldkJ5dGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0ICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICB2YXIgYnl0ZXNBcnIgPSB0aGlzLnByZXZCeXRlcy5zbGljZSgxKTtcbiAgICAgICAgdGhpcy5wcmV2Qnl0ZXMgPSBbXTtcbiAgICAgICAgdGhpcy5ub2RlSWR4ID0gMDtcbiAgICAgICAgaWYgKGJ5dGVzQXJyLmxlbmd0aCA+IDApXG4gICAgICAgICAgcmV0ICs9IHRoaXMud3JpdGUoYnl0ZXNBcnIpO1xuICAgICAgfVxuICAgICAgdGhpcy5wcmV2Qnl0ZXMgPSBbXTtcbiAgICAgIHRoaXMubm9kZUlkeCA9IDA7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH07XG4gICAgZnVuY3Rpb24gZmluZElkeCh0YWJsZSwgdmFsKSB7XG4gICAgICBpZiAodGFibGVbMF0gPiB2YWwpXG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIHZhciBsID0gMCwgciA9IHRhYmxlLmxlbmd0aDtcbiAgICAgIHdoaWxlIChsIDwgciAtIDEpIHtcbiAgICAgICAgdmFyIG1pZCA9IGwgKyAociAtIGwgKyAxID4+IDEpO1xuICAgICAgICBpZiAodGFibGVbbWlkXSA8PSB2YWwpXG4gICAgICAgICAgbCA9IG1pZDtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHIgPSBtaWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gbDtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9zaGlmdGppcy5qc29uXG52YXIgcmVxdWlyZV9zaGlmdGppcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL3NoaWZ0amlzLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFtcbiAgICAgIFtcIjBcIiwgXCJcXDBcIiwgMTI4XSxcbiAgICAgIFtcImExXCIsIFwiXFx1RkY2MVwiLCA2Ml0sXG4gICAgICBbXCI4MTQwXCIsIFwiXFx1MzAwMFxcdTMwMDFcXHUzMDAyXFx1RkYwQ1xcdUZGMEVcXHUzMEZCXFx1RkYxQVxcdUZGMUJcXHVGRjFGXFx1RkYwMVxcdTMwOUJcXHUzMDlDXFx4QjRcXHVGRjQwXFx4QThcXHVGRjNFXFx1RkZFM1xcdUZGM0ZcXHUzMEZEXFx1MzBGRVxcdTMwOURcXHUzMDlFXFx1MzAwM1xcdTRFRERcXHUzMDA1XFx1MzAwNlxcdTMwMDdcXHUzMEZDXFx1MjAxNVxcdTIwMTBcXHVGRjBGXFx1RkYzQ1xcdUZGNUVcXHUyMjI1XFx1RkY1Q1xcdTIwMjZcXHUyMDI1XFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdUZGMDhcXHVGRjA5XFx1MzAxNFxcdTMwMTVcXHVGRjNCXFx1RkYzRFxcdUZGNUJcXHVGRjVEXFx1MzAwOFwiLCA5LCBcIlxcdUZGMEJcXHVGRjBEXFx4QjFcXHhEN1wiXSxcbiAgICAgIFtcIjgxODBcIiwgXCJcXHhGN1xcdUZGMURcXHUyMjYwXFx1RkYxQ1xcdUZGMUVcXHUyMjY2XFx1MjI2N1xcdTIyMUVcXHUyMjM0XFx1MjY0MlxcdTI2NDBcXHhCMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGRTVcXHVGRjA0XFx1RkZFMFxcdUZGRTFcXHVGRjA1XFx1RkYwM1xcdUZGMDZcXHVGRjBBXFx1RkYyMFxceEE3XFx1MjYwNlxcdTI2MDVcXHUyNUNCXFx1MjVDRlxcdTI1Q0VcXHUyNUM3XFx1MjVDNlxcdTI1QTFcXHUyNUEwXFx1MjVCM1xcdTI1QjJcXHUyNUJEXFx1MjVCQ1xcdTIwM0JcXHUzMDEyXFx1MjE5MlxcdTIxOTBcXHUyMTkxXFx1MjE5M1xcdTMwMTNcIl0sXG4gICAgICBbXCI4MWI4XCIsIFwiXFx1MjIwOFxcdTIyMEJcXHUyMjg2XFx1MjI4N1xcdTIyODJcXHUyMjgzXFx1MjIyQVxcdTIyMjlcIl0sXG4gICAgICBbXCI4MWM4XCIsIFwiXFx1MjIyN1xcdTIyMjhcXHVGRkUyXFx1MjFEMlxcdTIxRDRcXHUyMjAwXFx1MjIwM1wiXSxcbiAgICAgIFtcIjgxZGFcIiwgXCJcXHUyMjIwXFx1MjJBNVxcdTIzMTJcXHUyMjAyXFx1MjIwN1xcdTIyNjFcXHUyMjUyXFx1MjI2QVxcdTIyNkJcXHUyMjFBXFx1MjIzRFxcdTIyMURcXHUyMjM1XFx1MjIyQlxcdTIyMkNcIl0sXG4gICAgICBbXCI4MWYwXCIsIFwiXFx1MjEyQlxcdTIwMzBcXHUyNjZGXFx1MjY2RFxcdTI2NkFcXHUyMDIwXFx1MjAyMVxceEI2XCJdLFxuICAgICAgW1wiODFmY1wiLCBcIlxcdTI1RUZcIl0sXG4gICAgICBbXCI4MjRmXCIsIFwiXFx1RkYxMFwiLCA5XSxcbiAgICAgIFtcIjgyNjBcIiwgXCJcXHVGRjIxXCIsIDI1XSxcbiAgICAgIFtcIjgyODFcIiwgXCJcXHVGRjQxXCIsIDI1XSxcbiAgICAgIFtcIjgyOWZcIiwgXCJcXHUzMDQxXCIsIDgyXSxcbiAgICAgIFtcIjgzNDBcIiwgXCJcXHUzMEExXCIsIDYyXSxcbiAgICAgIFtcIjgzODBcIiwgXCJcXHUzMEUwXCIsIDIyXSxcbiAgICAgIFtcIjgzOWZcIiwgXCJcXHUwMzkxXCIsIDE2LCBcIlxcdTAzQTNcIiwgNl0sXG4gICAgICBbXCI4M2JmXCIsIFwiXFx1MDNCMVwiLCAxNiwgXCJcXHUwM0MzXCIsIDZdLFxuICAgICAgW1wiODQ0MFwiLCBcIlxcdTA0MTBcIiwgNSwgXCJcXHUwNDAxXFx1MDQxNlwiLCAyNV0sXG4gICAgICBbXCI4NDcwXCIsIFwiXFx1MDQzMFwiLCA1LCBcIlxcdTA0NTFcXHUwNDM2XCIsIDddLFxuICAgICAgW1wiODQ4MFwiLCBcIlxcdTA0M0VcIiwgMTddLFxuICAgICAgW1wiODQ5ZlwiLCBcIlxcdTI1MDBcXHUyNTAyXFx1MjUwQ1xcdTI1MTBcXHUyNTE4XFx1MjUxNFxcdTI1MUNcXHUyNTJDXFx1MjUyNFxcdTI1MzRcXHUyNTNDXFx1MjUwMVxcdTI1MDNcXHUyNTBGXFx1MjUxM1xcdTI1MUJcXHUyNTE3XFx1MjUyM1xcdTI1MzNcXHUyNTJCXFx1MjUzQlxcdTI1NEJcXHUyNTIwXFx1MjUyRlxcdTI1MjhcXHUyNTM3XFx1MjUzRlxcdTI1MURcXHUyNTMwXFx1MjUyNVxcdTI1MzhcXHUyNTQyXCJdLFxuICAgICAgW1wiODc0MFwiLCBcIlxcdTI0NjBcIiwgMTksIFwiXFx1MjE2MFwiLCA5XSxcbiAgICAgIFtcIjg3NWZcIiwgXCJcXHUzMzQ5XFx1MzMxNFxcdTMzMjJcXHUzMzREXFx1MzMxOFxcdTMzMjdcXHUzMzAzXFx1MzMzNlxcdTMzNTFcXHUzMzU3XFx1MzMwRFxcdTMzMjZcXHUzMzIzXFx1MzMyQlxcdTMzNEFcXHUzMzNCXFx1MzM5Q1xcdTMzOURcXHUzMzlFXFx1MzM4RVxcdTMzOEZcXHUzM0M0XFx1MzNBMVwiXSxcbiAgICAgIFtcIjg3N2VcIiwgXCJcXHUzMzdCXCJdLFxuICAgICAgW1wiODc4MFwiLCBcIlxcdTMwMURcXHUzMDFGXFx1MjExNlxcdTMzQ0RcXHUyMTIxXFx1MzJBNFwiLCA0LCBcIlxcdTMyMzFcXHUzMjMyXFx1MzIzOVxcdTMzN0VcXHUzMzdEXFx1MzM3Q1xcdTIyNTJcXHUyMjYxXFx1MjIyQlxcdTIyMkVcXHUyMjExXFx1MjIxQVxcdTIyQTVcXHUyMjIwXFx1MjIxRlxcdTIyQkZcXHUyMjM1XFx1MjIyOVxcdTIyMkFcIl0sXG4gICAgICBbXCI4ODlmXCIsIFwiXFx1NEU5Q1xcdTU1MTZcXHU1QTAzXFx1OTYzRlxcdTU0QzBcXHU2MTFCXFx1NjMyOFxcdTU5RjZcXHU5MDIyXFx1ODQ3NVxcdTgzMUNcXHU3QTUwXFx1NjBBQVxcdTYzRTFcXHU2RTI1XFx1NjVFRFxcdTg0NjZcXHU4MkE2XFx1OUJGNVxcdTY4OTNcXHU1NzI3XFx1NjVBMVxcdTYyNzFcXHU1QjlCXFx1NTlEMFxcdTg2N0JcXHU5OEY0XFx1N0Q2MlxcdTdEQkVcXHU5QjhFXFx1NjIxNlxcdTdDOUZcXHU4OEI3XFx1NUI4OVxcdTVFQjVcXHU2MzA5XFx1NjY5N1xcdTY4NDhcXHU5NUM3XFx1OTc4RFxcdTY3NEZcXHU0RUU1XFx1NEYwQVxcdTRGNERcXHU0RjlEXFx1NTA0OVxcdTU2RjJcXHU1OTM3XFx1NTlENFxcdTVBMDFcXHU1QzA5XFx1NjBERlxcdTYxMEZcXHU2MTcwXFx1NjYxM1xcdTY5MDVcXHU3MEJBXFx1NzU0RlxcdTc1NzBcXHU3OUZCXFx1N0RBRFxcdTdERUZcXHU4MEMzXFx1ODQwRVxcdTg4NjNcXHU4QjAyXFx1OTA1NVxcdTkwN0FcXHU1MzNCXFx1NEU5NVxcdTRFQTVcXHU1N0RGXFx1ODBCMlxcdTkwQzFcXHU3OEVGXFx1NEUwMFxcdTU4RjFcXHU2RUEyXFx1OTAzOFxcdTdBMzJcXHU4MzI4XFx1ODI4QlxcdTlDMkZcXHU1MTQxXFx1NTM3MFxcdTU0QkRcXHU1NEUxXFx1NTZFMFxcdTU5RkJcXHU1RjE1XFx1OThGMlxcdTZERUJcXHU4MEU0XFx1ODUyRFwiXSxcbiAgICAgIFtcIjg5NDBcIiwgXCJcXHU5NjYyXFx1OTY3MFxcdTk2QTBcXHU5N0ZCXFx1NTQwQlxcdTUzRjNcXHU1Qjg3XFx1NzBDRlxcdTdGQkRcXHU4RkMyXFx1OTZFOFxcdTUzNkZcXHU5RDVDXFx1N0FCQVxcdTRFMTFcXHU3ODkzXFx1ODFGQ1xcdTZFMjZcXHU1NjE4XFx1NTUwNFxcdTZCMURcXHU4NTFBXFx1OUMzQlxcdTU5RTVcXHU1M0E5XFx1NkQ2NlxcdTc0RENcXHU5NThGXFx1NTY0MlxcdTRFOTFcXHU5MDRCXFx1OTZGMlxcdTgzNEZcXHU5OTBDXFx1NTNFMVxcdTU1QjZcXHU1QjMwXFx1NUY3MVxcdTY2MjBcXHU2NkYzXFx1NjgwNFxcdTZDMzhcXHU2Q0YzXFx1NkQyOVxcdTc0NUJcXHU3NkM4XFx1N0E0RVxcdTk4MzRcXHU4MkYxXFx1ODg1QlxcdThBNjBcXHU5MkVEXFx1NkRCMlxcdTc1QUJcXHU3NkNBXFx1OTlDNVxcdTYwQTZcXHU4QjAxXFx1OEQ4QVxcdTk1QjJcXHU2OThFXFx1NTNBRFxcdTUxODZcIl0sXG4gICAgICBbXCI4OTgwXCIsIFwiXFx1NTcxMlxcdTU4MzBcXHU1OTQ0XFx1NUJCNFxcdTVFRjZcXHU2MDI4XFx1NjNBOVxcdTYzRjRcXHU2Q0JGXFx1NkYxNFxcdTcwOEVcXHU3MTE0XFx1NzE1OVxcdTcxRDVcXHU3MzNGXFx1N0UwMVxcdTgyNzZcXHU4MkQxXFx1ODU5N1xcdTkwNjBcXHU5MjVCXFx1OUQxQlxcdTU4NjlcXHU2NUJDXFx1NkM1QVxcdTc1MjVcXHU1MUY5XFx1NTkyRVxcdTU5NjVcXHU1RjgwXFx1NUZEQ1xcdTYyQkNcXHU2NUZBXFx1NkEyQVxcdTZCMjdcXHU2QkI0XFx1NzM4QlxcdTdGQzFcXHU4OTU2XFx1OUQyQ1xcdTlEMEVcXHU5RUM0XFx1NUNBMVxcdTZDOTZcXHU4MzdCXFx1NTEwNFxcdTVDNEJcXHU2MUI2XFx1ODFDNlxcdTY4NzZcXHU3MjYxXFx1NEU1OVxcdTRGRkFcXHU1Mzc4XFx1NjA2OVxcdTZFMjlcXHU3QTRGXFx1OTdGM1xcdTRFMEJcXHU1MzE2XFx1NEVFRVxcdTRGNTVcXHU0RjNEXFx1NEZBMVxcdTRGNzNcXHU1MkEwXFx1NTNFRlxcdTU2MDlcXHU1OTBGXFx1NUFDMVxcdTVCQjZcXHU1QkUxXFx1NzlEMVxcdTY2ODdcXHU2NzlDXFx1NjdCNlxcdTZCNENcXHU2Q0IzXFx1NzA2QlxcdTczQzJcXHU3OThEXFx1NzlCRVxcdTdBM0NcXHU3Qjg3XFx1ODJCMVxcdTgyREJcXHU4MzA0XFx1ODM3N1xcdTgzRUZcXHU4M0QzXFx1ODc2NlxcdThBQjJcXHU1NjI5XFx1OENBOFxcdThGRTZcXHU5MDRFXFx1OTcxRVxcdTg2OEFcXHU0RkM0XFx1NUNFOFxcdTYyMTFcXHU3MjU5XFx1NzUzQlxcdTgxRTVcXHU4MkJEXFx1ODZGRVxcdThDQzBcXHU5NkM1XFx1OTkxM1xcdTk5RDVcXHU0RUNCXFx1NEYxQVxcdTg5RTNcXHU1NkRFXFx1NTg0QVxcdTU4Q0FcXHU1RUZCXFx1NUZFQlxcdTYwMkFcXHU2MDk0XFx1NjA2MlxcdTYxRDBcXHU2MjEyXFx1NjJEMFxcdTY1MzlcIl0sXG4gICAgICBbXCI4YTQwXCIsIFwiXFx1OUI0MVxcdTY2NjZcXHU2OEIwXFx1NkQ3N1xcdTcwNzBcXHU3NTRDXFx1NzY4NlxcdTdENzVcXHU4MkE1XFx1ODdGOVxcdTk1OEJcXHU5NjhFXFx1OEM5RFxcdTUxRjFcXHU1MkJFXFx1NTkxNlxcdTU0QjNcXHU1QkIzXFx1NUQxNlxcdTYxNjhcXHU2OTgyXFx1NkRBRlxcdTc4OERcXHU4NENCXFx1ODg1N1xcdThBNzJcXHU5M0E3XFx1OUFCOFxcdTZENkNcXHU5OUE4XFx1ODZEOVxcdTU3QTNcXHU2N0ZGXFx1ODZDRVxcdTkyMEVcXHU1MjgzXFx1NTY4N1xcdTU0MDRcXHU1RUQzXFx1NjJFMVxcdTY0QjlcXHU2ODNDXFx1NjgzOFxcdTZCQkJcXHU3MzcyXFx1NzhCQVxcdTdBNkJcXHU4OTlBXFx1ODlEMlxcdThENkJcXHU4RjAzXFx1OTBFRFxcdTk1QTNcXHU5Njk0XFx1OTc2OVxcdTVCNjZcXHU1Q0IzXFx1Njk3RFxcdTk4NERcXHU5ODRFXFx1NjM5QlxcdTdCMjBcXHU2QTJCXCJdLFxuICAgICAgW1wiOGE4MFwiLCBcIlxcdTZBN0ZcXHU2OEI2XFx1OUMwRFxcdTZGNUZcXHU1MjcyXFx1NTU5RFxcdTYwNzBcXHU2MkVDXFx1NkQzQlxcdTZFMDdcXHU2RUQxXFx1ODQ1QlxcdTg5MTBcXHU4RjQ0XFx1NEUxNFxcdTlDMzlcXHU1M0Y2XFx1NjkxQlxcdTZBM0FcXHU5Nzg0XFx1NjgyQVxcdTUxNUNcXHU3QUMzXFx1ODRCMlxcdTkxRENcXHU5MzhDXFx1NTY1QlxcdTlEMjhcXHU2ODIyXFx1ODMwNVxcdTg0MzFcXHU3Q0E1XFx1NTIwOFxcdTgyQzVcXHU3NEU2XFx1NEU3RVxcdTRGODNcXHU1MUEwXFx1NUJEMlxcdTUyMEFcXHU1MkQ4XFx1NTJFN1xcdTVERkJcXHU1NTlBXFx1NTgyQVxcdTU5RTZcXHU1QjhDXFx1NUI5OFxcdTVCREJcXHU1RTcyXFx1NUU3OVxcdTYwQTNcXHU2MTFGXFx1NjE2M1xcdTYxQkVcXHU2M0RCXFx1NjU2MlxcdTY3RDFcXHU2ODUzXFx1NjhGQVxcdTZCM0VcXHU2QjUzXFx1NkM1N1xcdTZGMjJcXHU2Rjk3XFx1NkY0NVxcdTc0QjBcXHU3NTE4XFx1NzZFM1xcdTc3MEJcXHU3QUZGXFx1N0JBMVxcdTdDMjFcXHU3REU5XFx1N0YzNlxcdTdGRjBcXHU4MDlEXFx1ODI2NlxcdTgzOUVcXHU4OUIzXFx1OEFDQ1xcdThDQUJcXHU5MDg0XFx1OTQ1MVxcdTk1OTNcXHU5NTkxXFx1OTVBMlxcdTk2NjVcXHU5N0QzXFx1OTkyOFxcdTgyMThcXHU0RTM4XFx1NTQyQlxcdTVDQjhcXHU1RENDXFx1NzNBOVxcdTc2NENcXHU3NzNDXFx1NUNBOVxcdTdGRUJcXHU4RDBCXFx1OTZDMVxcdTk4MTFcXHU5ODU0XFx1OTg1OFxcdTRGMDFcXHU0RjBFXFx1NTM3MVxcdTU1OUNcXHU1NjY4XFx1NTdGQVxcdTU5NDdcXHU1QjA5XFx1NUJDNFxcdTVDOTBcXHU1RTBDXFx1NUU3RVxcdTVGQ0NcXHU2M0VFXFx1NjczQVxcdTY1RDdcXHU2NUUyXFx1NjcxRlxcdTY4Q0JcXHU2OEM0XCJdLFxuICAgICAgW1wiOGI0MFwiLCBcIlxcdTZBNUZcXHU1RTMwXFx1NkJDNVxcdTZDMTdcXHU2QzdEXFx1NzU3RlxcdTc5NDhcXHU1QjYzXFx1N0EwMFxcdTdEMDBcXHU1RkJEXFx1ODk4RlxcdThBMThcXHU4Q0I0XFx1OEQ3N1xcdThFQ0NcXHU4RjFEXFx1OThFMlxcdTlBMEVcXHU5QjNDXFx1NEU4MFxcdTUwN0RcXHU1MTAwXFx1NTk5M1xcdTVCOUNcXHU2MjJGXFx1NjI4MFxcdTY0RUNcXHU2QjNBXFx1NzJBMFxcdTc1OTFcXHU3OTQ3XFx1N0ZBOVxcdTg3RkJcXHU4QUJDXFx1OEI3MFxcdTYzQUNcXHU4M0NBXFx1OTdBMFxcdTU0MDlcXHU1NDAzXFx1NTVBQlxcdTY4NTRcXHU2QTU4XFx1OEE3MFxcdTc4MjdcXHU2Nzc1XFx1OUVDRFxcdTUzNzRcXHU1QkEyXFx1ODExQVxcdTg2NTBcXHU5MDA2XFx1NEUxOFxcdTRFNDVcXHU0RUM3XFx1NEYxMVxcdTUzQ0FcXHU1NDM4XFx1NUJBRVxcdTVGMTNcXHU2MDI1XFx1NjU1MVwiXSxcbiAgICAgIFtcIjhiODBcIiwgXCJcXHU2NzNEXFx1NkM0MlxcdTZDNzJcXHU2Q0UzXFx1NzA3OFxcdTc0MDNcXHU3QTc2XFx1N0FBRVxcdTdCMDhcXHU3RDFBXFx1N0NGRVxcdTdENjZcXHU2NUU3XFx1NzI1QlxcdTUzQkJcXHU1QzQ1XFx1NURFOFxcdTYyRDJcXHU2MkUwXFx1NjMxOVxcdTZFMjBcXHU4NjVBXFx1OEEzMVxcdThERERcXHU5MkY4XFx1NkYwMVxcdTc5QTZcXHU5QjVBXFx1NEVBOFxcdTRFQUJcXHU0RUFDXFx1NEY5QlxcdTRGQTBcXHU1MEQxXFx1NTE0N1xcdTdBRjZcXHU1MTcxXFx1NTFGNlxcdTUzNTRcXHU1MzIxXFx1NTM3RlxcdTUzRUJcXHU1NUFDXFx1NTg4M1xcdTVDRTFcXHU1RjM3XFx1NUY0QVxcdTYwMkZcXHU2MDUwXFx1NjA2RFxcdTYzMUZcXHU2NTU5XFx1NkE0QlxcdTZDQzFcXHU3MkMyXFx1NzJFRFxcdTc3RUZcXHU4MEY4XFx1ODEwNVxcdTgyMDhcXHU4NTRFXFx1OTBGN1xcdTkzRTFcXHU5N0ZGXFx1OTk1N1xcdTlBNUFcXHU0RUYwXFx1NTFERFxcdTVDMkRcXHU2NjgxXFx1Njk2RFxcdTVDNDBcXHU2NkYyXFx1Njk3NVxcdTczODlcXHU2ODUwXFx1N0M4MVxcdTUwQzVcXHU1MkU0XFx1NTc0N1xcdTVERkVcXHU5MzI2XFx1NjVBNFxcdTZCMjNcXHU2QjNEXFx1NzQzNFxcdTc5ODFcXHU3OUJEXFx1N0I0QlxcdTdEQ0FcXHU4MkI5XFx1ODNDQ1xcdTg4N0ZcXHU4OTVGXFx1OEIzOVxcdThGRDFcXHU5MUQxXFx1NTQxRlxcdTkyODBcXHU0RTVEXFx1NTAzNlxcdTUzRTVcXHU1MzNBXFx1NzJEN1xcdTczOTZcXHU3N0U5XFx1ODJFNlxcdThFQUZcXHU5OUM2XFx1OTlDOFxcdTk5RDJcXHU1MTc3XFx1NjExQVxcdTg2NUVcXHU1NUIwXFx1N0E3QVxcdTUwNzZcXHU1QkQzXFx1OTA0N1xcdTk2ODVcXHU0RTMyXFx1NkFEQlxcdTkxRTdcXHU1QzUxXFx1NUM0OFwiXSxcbiAgICAgIFtcIjhjNDBcIiwgXCJcXHU2Mzk4XFx1N0E5RlxcdTZDOTNcXHU5Nzc0XFx1OEY2MVxcdTdBQUFcXHU3MThBXFx1OTY4OFxcdTdDODJcXHU2ODE3XFx1N0U3MFxcdTY4NTFcXHU5MzZDXFx1NTJGMlxcdTU0MUJcXHU4NUFCXFx1OEExM1xcdTdGQTRcXHU4RUNEXFx1OTBFMVxcdTUzNjZcXHU4ODg4XFx1Nzk0MVxcdTRGQzJcXHU1MEJFXFx1NTIxMVxcdTUxNDRcXHU1NTUzXFx1NTcyRFxcdTczRUFcXHU1NzhCXFx1NTk1MVxcdTVGNjJcXHU1Rjg0XFx1NjA3NVxcdTYxNzZcXHU2MTY3XFx1NjFBOVxcdTYzQjJcXHU2NDNBXFx1NjU2Q1xcdTY2NkZcXHU2ODQyXFx1NkUxM1xcdTc1NjZcXHU3QTNEXFx1N0NGQlxcdTdENENcXHU3RDk5XFx1N0U0QlxcdTdGNkJcXHU4MzBFXFx1ODM0QVxcdTg2Q0RcXHU4QTA4XFx1OEE2M1xcdThCNjZcXHU4RUZEXFx1OTgxQVxcdTlEOEZcXHU4MkI4XFx1OEZDRVxcdTlCRThcIl0sXG4gICAgICBbXCI4YzgwXCIsIFwiXFx1NTI4N1xcdTYyMUZcXHU2NDgzXFx1NkZDMFxcdTk2OTlcXHU2ODQxXFx1NTA5MVxcdTZCMjBcXHU2QzdBXFx1NkY1NFxcdTdBNzRcXHU3RDUwXFx1ODg0MFxcdThBMjNcXHU2NzA4XFx1NEVGNlxcdTUwMzlcXHU1MDI2XFx1NTA2NVxcdTUxN0NcXHU1MjM4XFx1NTI2M1xcdTU1QTdcXHU1NzBGXFx1NTgwNVxcdTVBQ0NcXHU1RUZBXFx1NjFCMlxcdTYxRjhcXHU2MkYzXFx1NjM3MlxcdTY5MUNcXHU2QTI5XFx1NzI3RFxcdTcyQUNcXHU3MzJFXFx1NzgxNFxcdTc4NkZcXHU3RDc5XFx1NzcwQ1xcdTgwQTlcXHU4OThCXFx1OEIxOVxcdThDRTJcXHU4RUQyXFx1OTA2M1xcdTkzNzVcXHU5NjdBXFx1OTg1NVxcdTlBMTNcXHU5RTc4XFx1NTE0M1xcdTUzOUZcXHU1M0IzXFx1NUU3QlxcdTVGMjZcXHU2RTFCXFx1NkU5MFxcdTczODRcXHU3M0ZFXFx1N0Q0M1xcdTgyMzdcXHU4QTAwXFx1OEFGQVxcdTk2NTBcXHU0RTRFXFx1NTAwQlxcdTUzRTRcXHU1NDdDXFx1NTZGQVxcdTU5RDFcXHU1QjY0XFx1NURGMVxcdTVFQUJcXHU1RjI3XFx1NjIzOFxcdTY1NDVcXHU2N0FGXFx1NkU1NlxcdTcyRDBcXHU3Q0NBXFx1ODhCNFxcdTgwQTFcXHU4MEUxXFx1ODNGMFxcdTg2NEVcXHU4QTg3XFx1OERFOFxcdTkyMzdcXHU5NkM3XFx1OTg2N1xcdTlGMTNcXHU0RTk0XFx1NEU5MlxcdTRGMERcXHU1MzQ4XFx1NTQ0OVxcdTU0M0VcXHU1QTJGXFx1NUY4Q1xcdTVGQTFcXHU2MDlGXFx1NjhBN1xcdTZBOEVcXHU3NDVBXFx1Nzg4MVxcdThBOUVcXHU4QUE0XFx1OEI3N1xcdTkxOTBcXHU0RTVFXFx1OUJDOVxcdTRFQTRcXHU0RjdDXFx1NEZBRlxcdTUwMTlcXHU1MDE2XFx1NTE0OVxcdTUxNkNcXHU1MjlGXFx1NTJCOVxcdTUyRkVcXHU1MzlBXFx1NTNFM1xcdTU0MTFcIl0sXG4gICAgICBbXCI4ZDQwXCIsIFwiXFx1NTQwRVxcdTU1ODlcXHU1NzUxXFx1NTdBMlxcdTU5N0RcXHU1QjU0XFx1NUI1RFxcdTVCOEZcXHU1REU1XFx1NURFN1xcdTVERjdcXHU1RTc4XFx1NUU4M1xcdTVFOUFcXHU1RUI3XFx1NUYxOFxcdTYwNTJcXHU2MTRDXFx1NjI5N1xcdTYyRDhcXHU2M0E3XFx1NjUzQlxcdTY2MDJcXHU2NjQzXFx1NjZGNFxcdTY3NkRcXHU2ODIxXFx1Njg5N1xcdTY5Q0JcXHU2QzVGXFx1NkQyQVxcdTZENjlcXHU2RTJGXFx1NkU5RFxcdTc1MzJcXHU3Njg3XFx1Nzg2Q1xcdTdBM0ZcXHU3Q0UwXFx1N0QwNVxcdTdEMThcXHU3RDVFXFx1N0RCMVxcdTgwMTVcXHU4MDAzXFx1ODBBRlxcdTgwQjFcXHU4MTU0XFx1ODE4RlxcdTgyMkFcXHU4MzUyXFx1ODg0Q1xcdTg4NjFcXHU4QjFCXFx1OENBMlxcdThDRkNcXHU5MENBXFx1OTE3NVxcdTkyNzFcXHU3ODNGXFx1OTJGQ1xcdTk1QTRcXHU5NjREXCJdLFxuICAgICAgW1wiOGQ4MFwiLCBcIlxcdTk4MDVcXHU5OTk5XFx1OUFEOFxcdTlEM0JcXHU1MjVCXFx1NTJBQlxcdTUzRjdcXHU1NDA4XFx1NThENVxcdTYyRjdcXHU2RkUwXFx1OEM2QVxcdThGNUZcXHU5RUI5XFx1NTE0QlxcdTUyM0JcXHU1NDRBXFx1NTZGRFxcdTdBNDBcXHU5MTc3XFx1OUQ2MFxcdTlFRDJcXHU3MzQ0XFx1NkYwOVxcdTgxNzBcXHU3NTExXFx1NUZGRFxcdTYwREFcXHU5QUE4XFx1NzJEQlxcdThGQkNcXHU2QjY0XFx1OTgwM1xcdTRFQ0FcXHU1NkYwXFx1NTc2NFxcdTU4QkVcXHU1QTVBXFx1NjA2OFxcdTYxQzdcXHU2NjBGXFx1NjYwNlxcdTY4MzlcXHU2OEIxXFx1NkRGN1xcdTc1RDVcXHU3RDNBXFx1ODI2RVxcdTlCNDJcXHU0RTlCXFx1NEY1MFxcdTUzQzlcXHU1NTA2XFx1NUQ2RlxcdTVERTZcXHU1REVFXFx1NjdGQlxcdTZDOTlcXHU3NDczXFx1NzgwMlxcdThBNTBcXHU5Mzk2XFx1ODhERlxcdTU3NTBcXHU1RUE3XFx1NjMyQlxcdTUwQjVcXHU1MEFDXFx1NTE4RFxcdTY3MDBcXHU1NEM5XFx1NTg1RVxcdTU5QkJcXHU1QkIwXFx1NUY2OVxcdTYyNERcXHU2M0ExXFx1NjgzRFxcdTZCNzNcXHU2RTA4XFx1NzA3RFxcdTkxQzdcXHU3MjgwXFx1NzgxNVxcdTc4MjZcXHU3OTZEXFx1NjU4RVxcdTdEMzBcXHU4M0RDXFx1ODhDMVxcdThGMDlcXHU5NjlCXFx1NTI2NFxcdTU3MjhcXHU2NzUwXFx1N0Y2QVxcdThDQTFcXHU1MUI0XFx1NTc0MlxcdTk2MkFcXHU1ODNBXFx1Njk4QVxcdTgwQjRcXHU1NEIyXFx1NUQwRVxcdTU3RkNcXHU3ODk1XFx1OURGQVxcdTRGNUNcXHU1MjRBXFx1NTQ4QlxcdTY0M0VcXHU2NjI4XFx1NjcxNFxcdTY3RjVcXHU3QTg0XFx1N0I1NlxcdTdEMjJcXHU5MzJGXFx1Njg1Q1xcdTlCQURcXHU3QjM5XFx1NTMxOVxcdTUxOEFcXHU1MjM3XCJdLFxuICAgICAgW1wiOGU0MFwiLCBcIlxcdTVCREZcXHU2MkY2XFx1NjRBRVxcdTY0RTZcXHU2NzJEXFx1NkJCQVxcdTg1QTlcXHU5NkQxXFx1NzY5MFxcdTlCRDZcXHU2MzRDXFx1OTMwNlxcdTlCQUJcXHU3NkJGXFx1NjY1MlxcdTRFMDlcXHU1MDk4XFx1NTNDMlxcdTVDNzFcXHU2MEU4XFx1NjQ5MlxcdTY1NjNcXHU2ODVGXFx1NzFFNlxcdTczQ0FcXHU3NTIzXFx1N0I5N1xcdTdFODJcXHU4Njk1XFx1OEI4M1xcdThDREJcXHU5MTc4XFx1OTkxMFxcdTY1QUNcXHU2NkFCXFx1NkI4QlxcdTRFRDVcXHU0RUQ0XFx1NEYzQVxcdTRGN0ZcXHU1MjNBXFx1NTNGOFxcdTUzRjJcXHU1NUUzXFx1NTZEQlxcdTU4RUJcXHU1OUNCXFx1NTlDOVxcdTU5RkZcXHU1QjUwXFx1NUM0RFxcdTVFMDJcXHU1RTJCXFx1NUZEN1xcdTYwMURcXHU2MzA3XFx1NjUyRlxcdTVCNUNcXHU2NUFGXFx1NjVCRFxcdTY1RThcXHU2NzlEXFx1NkI2MlwiXSxcbiAgICAgIFtcIjhlODBcIiwgXCJcXHU2QjdCXFx1NkMwRlxcdTczNDVcXHU3OTQ5XFx1NzlDMVxcdTdDRjhcXHU3RDE5XFx1N0QyQlxcdTgwQTJcXHU4MTAyXFx1ODFGM1xcdTg5OTZcXHU4QTVFXFx1OEE2OVxcdThBNjZcXHU4QThDXFx1OEFFRVxcdThDQzdcXHU4Q0RDXFx1OTZDQ1xcdTk4RkNcXHU2QjZGXFx1NEU4QlxcdTRGM0NcXHU0RjhEXFx1NTE1MFxcdTVCNTdcXHU1QkZBXFx1NjE0OFxcdTYzMDFcXHU2NjQyXFx1NkIyMVxcdTZFQ0JcXHU2Q0JCXFx1NzIzRVxcdTc0QkRcXHU3NUQ0XFx1NzhDMVxcdTc5M0FcXHU4MDBDXFx1ODAzM1xcdTgxRUFcXHU4NDk0XFx1OEY5RVxcdTZDNTBcXHU5RTdGXFx1NUYwRlxcdThCNThcXHU5RDJCXFx1N0FGQVxcdThFRjhcXHU1QjhEXFx1OTZFQlxcdTRFMDNcXHU1M0YxXFx1NTdGN1xcdTU5MzFcXHU1QUM5XFx1NUJBNFxcdTYwODlcXHU2RTdGXFx1NkYwNlxcdTc1QkVcXHU4Q0VBXFx1NUI5RlxcdTg1MDBcXHU3QkUwXFx1NTA3MlxcdTY3RjRcXHU4MjlEXFx1NUM2MVxcdTg1NEFcXHU3RTFFXFx1ODIwRVxcdTUxOTlcXHU1QzA0XFx1NjM2OFxcdThENjZcXHU2NTlDXFx1NzE2RVxcdTc5M0VcXHU3RDE3XFx1ODAwNVxcdThCMURcXHU4RUNBXFx1OTA2RVxcdTg2QzdcXHU5MEFBXFx1NTAxRlxcdTUyRkFcXHU1QzNBXFx1Njc1M1xcdTcwN0NcXHU3MjM1XFx1OTE0Q1xcdTkxQzhcXHU5MzJCXFx1ODJFNVxcdTVCQzJcXHU1RjMxXFx1NjBGOVxcdTRFM0JcXHU1M0Q2XFx1NUI4OFxcdTYyNEJcXHU2NzMxXFx1NkI4QVxcdTcyRTlcXHU3M0UwXFx1N0EyRVxcdTgxNkJcXHU4REEzXFx1OTE1MlxcdTk5OTZcXHU1MTEyXFx1NTNEN1xcdTU0NkFcXHU1QkZGXFx1NjM4OFxcdTZBMzlcXHU3REFDXFx1OTcwMFxcdTU2REFcXHU1M0NFXFx1NTQ2OFwiXSxcbiAgICAgIFtcIjhmNDBcIiwgXCJcXHU1Qjk3XFx1NUMzMVxcdTVEREVcXHU0RkVFXFx1NjEwMVxcdTYyRkVcXHU2RDMyXFx1NzlDMFxcdTc5Q0JcXHU3RDQyXFx1N0U0RFxcdTdGRDJcXHU4MUVEXFx1ODIxRlxcdTg0OTBcXHU4ODQ2XFx1ODk3MlxcdThCOTBcXHU4RTc0XFx1OEYyRlxcdTkwMzFcXHU5MTRCXFx1OTE2Q1xcdTk2QzZcXHU5MTlDXFx1NEVDMFxcdTRGNEZcXHU1MTQ1XFx1NTM0MVxcdTVGOTNcXHU2MjBFXFx1NjdENFxcdTZDNDFcXHU2RTBCXFx1NzM2M1xcdTdFMjZcXHU5MUNEXFx1OTI4M1xcdTUzRDRcXHU1OTE5XFx1NUJCRlxcdTZERDFcXHU3OTVEXFx1N0UyRVxcdTdDOUJcXHU1ODdFXFx1NzE5RlxcdTUxRkFcXHU4ODUzXFx1OEZGMFxcdTRGQ0FcXHU1Q0ZCXFx1NjYyNVxcdTc3QUNcXHU3QUUzXFx1ODIxQ1xcdTk5RkZcXHU1MUM2XFx1NUZBQVxcdTY1RUNcXHU2OTZGXFx1NkI4OVxcdTZERjNcIl0sXG4gICAgICBbXCI4ZjgwXCIsIFwiXFx1NkU5NlxcdTZGNjRcXHU3NkZFXFx1N0QxNFxcdTVERTFcXHU5MDc1XFx1OTE4N1xcdTk4MDZcXHU1MUU2XFx1NTIxRFxcdTYyNDBcXHU2NjkxXFx1NjZEOVxcdTZFMUFcXHU1RUI2XFx1N0REMlxcdTdGNzJcXHU2NkY4XFx1ODVBRlxcdTg1RjdcXHU4QUY4XFx1NTJBOVxcdTUzRDlcXHU1OTczXFx1NUU4RlxcdTVGOTBcXHU2MDU1XFx1OTJFNFxcdTk2NjRcXHU1MEI3XFx1NTExRlxcdTUyRERcXHU1MzIwXFx1NTM0N1xcdTUzRUNcXHU1NEU4XFx1NTU0NlxcdTU1MzFcXHU1NjE3XFx1NTk2OFxcdTU5QkVcXHU1QTNDXFx1NUJCNVxcdTVDMDZcXHU1QzBGXFx1NUMxMVxcdTVDMUFcXHU1RTg0XFx1NUU4QVxcdTVFRTBcXHU1RjcwXFx1NjI3RlxcdTYyODRcXHU2MkRCXFx1NjM4Q1xcdTYzNzdcXHU2NjA3XFx1NjYwQ1xcdTY2MkRcXHU2Njc2XFx1Njc3RVxcdTY4QTJcXHU2QTFGXFx1NkEzNVxcdTZDQkNcXHU2RDg4XFx1NkUwOVxcdTZFNThcXHU3MTNDXFx1NzEyNlxcdTcxNjdcXHU3NUM3XFx1NzcwMVxcdTc4NURcXHU3OTAxXFx1Nzk2NVxcdTc5RjBcXHU3QUUwXFx1N0IxMVxcdTdDQTdcXHU3RDM5XFx1ODA5NlxcdTgzRDZcXHU4NDhCXFx1ODU0OVxcdTg4NURcXHU4OEYzXFx1OEExRlxcdThBM0NcXHU4QTU0XFx1OEE3M1xcdThDNjFcXHU4Q0RFXFx1OTFBNFxcdTkyNjZcXHU5MzdFXFx1OTQxOFxcdTk2OUNcXHU5Nzk4XFx1NEUwQVxcdTRFMDhcXHU0RTFFXFx1NEU1N1xcdTUxOTdcXHU1MjcwXFx1NTdDRVxcdTU4MzRcXHU1OENDXFx1NUIyMlxcdTVFMzhcXHU2MEM1XFx1NjRGRVxcdTY3NjFcXHU2NzU2XFx1NkQ0NFxcdTcyQjZcXHU3NTczXFx1N0E2M1xcdTg0QjhcXHU4QjcyXFx1OTFCOFxcdTkzMjBcXHU1NjMxXFx1NTdGNFxcdTk4RkVcIl0sXG4gICAgICBbXCI5MDQwXCIsIFwiXFx1NjJFRFxcdTY5MERcXHU2Qjk2XFx1NzFFRFxcdTdFNTRcXHU4MDc3XFx1ODI3MlxcdTg5RTZcXHU5OERGXFx1ODc1NVxcdThGQjFcXHU1QzNCXFx1NEYzOFxcdTRGRTFcXHU0RkI1XFx1NTUwN1xcdTVBMjBcXHU1QkREXFx1NUJFOVxcdTVGQzNcXHU2MTRFXFx1NjMyRlxcdTY1QjBcXHU2NjRCXFx1NjhFRVxcdTY5OUJcXHU2RDc4XFx1NkRGMVxcdTc1MzNcXHU3NUI5XFx1NzcxRlxcdTc5NUVcXHU3OUU2XFx1N0QzM1xcdTgxRTNcXHU4MkFGXFx1ODVBQVxcdTg5QUFcXHU4QTNBXFx1OEVBQlxcdThGOUJcXHU5MDMyXFx1OTFERFxcdTk3MDdcXHU0RUJBXFx1NEVDMVxcdTUyMDNcXHU1ODc1XFx1NThFQ1xcdTVDMEJcXHU3NTFBXFx1NUMzRFxcdTgxNEVcXHU4QTBBXFx1OEZDNVxcdTk2NjNcXHU5NzZEXFx1N0IyNVxcdThBQ0ZcXHU5ODA4XFx1OTE2MlxcdTU2RjNcXHU1M0E4XCJdLFxuICAgICAgW1wiOTA4MFwiLCBcIlxcdTkwMTdcXHU1NDM5XFx1NTc4MlxcdTVFMjVcXHU2M0E4XFx1NkMzNFxcdTcwOEFcXHU3NzYxXFx1N0M4QlxcdTdGRTBcXHU4ODcwXFx1OTA0MlxcdTkxNTRcXHU5MzEwXFx1OTMxOFxcdTk2OEZcXHU3NDVFXFx1OUFDNFxcdTVEMDdcXHU1RDY5XFx1NjU3MFxcdTY3QTJcXHU4REE4XFx1OTZEQlxcdTYzNkVcXHU2NzQ5XFx1NjkxOVxcdTgzQzVcXHU5ODE3XFx1OTZDMFxcdTg4RkVcXHU2Rjg0XFx1NjQ3QVxcdTVCRjhcXHU0RTE2XFx1NzAyQ1xcdTc1NURcXHU2NjJGXFx1NTFDNFxcdTUyMzZcXHU1MkUyXFx1NTlEM1xcdTVGODFcXHU2MDI3XFx1NjIxMFxcdTY1M0ZcXHU2NTc0XFx1NjYxRlxcdTY2NzRcXHU2OEYyXFx1NjgxNlxcdTZCNjNcXHU2RTA1XFx1NzI3MlxcdTc1MUZcXHU3NkRCXFx1N0NCRVxcdTgwNTZcXHU1OEYwXFx1ODhGRFxcdTg5N0ZcXHU4QUEwXFx1OEE5M1xcdThBQ0JcXHU5MDFEXFx1OTE5MlxcdTk3NTJcXHU5NzU5XFx1NjU4OVxcdTdBMEVcXHU4MTA2XFx1OTZCQlxcdTVFMkRcXHU2MERDXFx1NjIxQVxcdTY1QTVcXHU2NjE0XFx1Njc5MFxcdTc3RjNcXHU3QTREXFx1N0M0RFxcdTdFM0VcXHU4MTBBXFx1OENBQ1xcdThENjRcXHU4REUxXFx1OEU1RlxcdTc4QTlcXHU1MjA3XFx1NjJEOVxcdTYzQTVcXHU2NDQyXFx1NjI5OFxcdThBMkRcXHU3QTgzXFx1N0JDMFxcdThBQUNcXHU5NkVBXFx1N0Q3NlxcdTgyMENcXHU4NzQ5XFx1NEVEOVxcdTUxNDhcXHU1MzQzXFx1NTM2MFxcdTVCQTNcXHU1QzAyXFx1NUMxNlxcdTVERERcXHU2MjI2XFx1NjI0N1xcdTY0QjBcXHU2ODEzXFx1NjgzNFxcdTZDQzlcXHU2RDQ1XFx1NkQxN1xcdTY3RDNcXHU2RjVDXFx1NzE0RVxcdTcxN0RcXHU2NUNCXFx1N0E3RlxcdTdCQURcXHU3RERBXCJdLFxuICAgICAgW1wiOTE0MFwiLCBcIlxcdTdFNEFcXHU3RkE4XFx1ODE3QVxcdTgyMUJcXHU4MjM5XFx1ODVBNlxcdThBNkVcXHU4Q0NFXFx1OERGNVxcdTkwNzhcXHU5MDc3XFx1OTJBRFxcdTkyOTFcXHU5NTgzXFx1OUJBRVxcdTUyNERcXHU1NTg0XFx1NkYzOFxcdTcxMzZcXHU1MTY4XFx1Nzk4NVxcdTdFNTVcXHU4MUIzXFx1N0NDRVxcdTU2NENcXHU1ODUxXFx1NUNBOFxcdTYzQUFcXHU2NkZFXFx1NjZGRFxcdTY5NUFcXHU3MkQ5XFx1NzU4RlxcdTc1OEVcXHU3OTBFXFx1Nzk1NlxcdTc5REZcXHU3Qzk3XFx1N0QyMFxcdTdENDRcXHU4NjA3XFx1OEEzNFxcdTk2M0JcXHU5MDYxXFx1OUYyMFxcdTUwRTdcXHU1Mjc1XFx1NTNDQ1xcdTUzRTJcXHU1MDA5XFx1NTVBQVxcdTU4RUVcXHU1OTRGXFx1NzIzRFxcdTVCOEJcXHU1QzY0XFx1NTMxRFxcdTYwRTNcXHU2MEYzXFx1NjM1Q1xcdTYzODNcXHU2MzNGXFx1NjNCQlwiXSxcbiAgICAgIFtcIjkxODBcIiwgXCJcXHU2NENEXFx1NjVFOVxcdTY2RjlcXHU1REUzXFx1NjlDRFxcdTY5RkRcXHU2RjE1XFx1NzFFNVxcdTRFODlcXHU3NUU5XFx1NzZGOFxcdTdBOTNcXHU3Q0RGXFx1N0RDRlxcdTdEOUNcXHU4MDYxXFx1ODM0OVxcdTgzNThcXHU4NDZDXFx1ODRCQ1xcdTg1RkJcXHU4OEM1XFx1OEQ3MFxcdTkwMDFcXHU5MDZEXFx1OTM5N1xcdTk3MUNcXHU5QTEyXFx1NTBDRlxcdTU4OTdcXHU2MThFXFx1ODFEM1xcdTg1MzVcXHU4RDA4XFx1OTAyMFxcdTRGQzNcXHU1MDc0XFx1NTI0N1xcdTUzNzNcXHU2MDZGXFx1NjM0OVxcdTY3NUZcXHU2RTJDXFx1OERCM1xcdTkwMUZcXHU0RkQ3XFx1NUM1RVxcdThDQ0FcXHU2NUNGXFx1N0Q5QVxcdTUzNTJcXHU4ODk2XFx1NTE3NlxcdTYzQzNcXHU1QjU4XFx1NUI2QlxcdTVDMEFcXHU2NDBEXFx1Njc1MVxcdTkwNUNcXHU0RUQ2XFx1NTkxQVxcdTU5MkFcXHU2QzcwXFx1OEE1MVxcdTU1M0VcXHU1ODE1XFx1NTlBNVxcdTYwRjBcXHU2MjUzXFx1NjdDMVxcdTgyMzVcXHU2OTU1XFx1OTY0MFxcdTk5QzRcXHU5QTI4XFx1NEY1M1xcdTU4MDZcXHU1QkZFXFx1ODAxMFxcdTVDQjFcXHU1RTJGXFx1NUY4NVxcdTYwMjBcXHU2MTRCXFx1NjIzNFxcdTY2RkZcXHU2Q0YwXFx1NkVERVxcdTgwQ0VcXHU4MTdGXFx1ODJENFxcdTg4OEJcXHU4Q0I4XFx1OTAwMFxcdTkwMkVcXHU5NjhBXFx1OUVEQlxcdTlCREJcXHU0RUUzXFx1NTNGMFxcdTU5MjdcXHU3QjJDXFx1OTE4RFxcdTk4NENcXHU5REY5XFx1NkVERFxcdTcwMjdcXHU1MzUzXFx1NTU0NFxcdTVCODVcXHU2MjU4XFx1NjI5RVxcdTYyRDNcXHU2Q0EyXFx1NkZFRlxcdTc0MjJcXHU4QTE3XFx1OTQzOFxcdTZGQzFcXHU4QUZFXFx1ODMzOFxcdTUxRTdcXHU4NkY4XFx1NTNFQVwiXSxcbiAgICAgIFtcIjkyNDBcIiwgXCJcXHU1M0U5XFx1NEY0NlxcdTkwNTRcXHU4RkIwXFx1NTk2QVxcdTgxMzFcXHU1REZEXFx1N0FFQVxcdThGQkZcXHU2OERBXFx1OEMzN1xcdTcyRjhcXHU5QzQ4XFx1NkEzRFxcdThBQjBcXHU0RTM5XFx1NTM1OFxcdTU2MDZcXHU1NzY2XFx1NjJDNVxcdTYzQTJcXHU2NUU2XFx1NkI0RVxcdTZERTFcXHU2RTVCXFx1NzBBRFxcdTc3RURcXHU3QUVGXFx1N0JBQVxcdTdEQkJcXHU4MDNEXFx1ODBDNlxcdTg2Q0JcXHU4QTk1XFx1OTM1QlxcdTU2RTNcXHU1OEM3XFx1NUYzRVxcdTY1QURcXHU2Njk2XFx1NkE4MFxcdTZCQjVcXHU3NTM3XFx1OEFDN1xcdTUwMjRcXHU3N0U1XFx1NTczMFxcdTVGMUJcXHU2MDY1XFx1NjY3QVxcdTZDNjBcXHU3NUY0XFx1N0ExQVxcdTdGNkVcXHU4MUY0XFx1ODcxOFxcdTkwNDVcXHU5OUIzXFx1N0JDOVxcdTc1NUNcXHU3QUY5XFx1N0I1MVxcdTg0QzRcIl0sXG4gICAgICBbXCI5MjgwXCIsIFwiXFx1OTAxMFxcdTc5RTlcXHU3QTkyXFx1ODMzNlxcdTVBRTFcXHU3NzQwXFx1NEUyRFxcdTRFRjJcXHU1Qjk5XFx1NUZFMFxcdTYyQkRcXHU2NjNDXFx1NjdGMVxcdTZDRThcXHU4NjZCXFx1ODg3N1xcdThBM0JcXHU5MTRFXFx1OTJGM1xcdTk5RDBcXHU2QTE3XFx1NzAyNlxcdTczMkFcXHU4MkU3XFx1ODQ1N1xcdThDQUZcXHU0RTAxXFx1NTE0NlxcdTUxQ0JcXHU1NThCXFx1NUJGNVxcdTVFMTZcXHU1RTMzXFx1NUU4MVxcdTVGMTRcXHU1RjM1XFx1NUY2QlxcdTVGQjRcXHU2MUYyXFx1NjMxMVxcdTY2QTJcXHU2NzFEXFx1NkY2RVxcdTcyNTJcXHU3NTNBXFx1NzczQVxcdTgwNzRcXHU4MTM5XFx1ODE3OFxcdTg3NzZcXHU4QUJGXFx1OEFEQ1xcdThEODVcXHU4REYzXFx1OTI5QVxcdTk1NzdcXHU5ODAyXFx1OUNFNVxcdTUyQzVcXHU2MzU3XFx1NzZGNFxcdTY3MTVcXHU2Qzg4XFx1NzNDRFxcdThDQzNcXHU5M0FFXFx1OTY3M1xcdTZEMjVcXHU1ODlDXFx1NjkwRVxcdTY5Q0NcXHU4RkZEXFx1OTM5QVxcdTc1REJcXHU5MDFBXFx1NTg1QVxcdTY4MDJcXHU2M0I0XFx1NjlGQlxcdTRGNDNcXHU2RjJDXFx1NjdEOFxcdThGQkJcXHU4NTI2XFx1N0RCNFxcdTkzNTRcXHU2OTNGXFx1NkY3MFxcdTU3NkFcXHU1OEY3XFx1NUIyQ1xcdTdEMkNcXHU3MjJBXFx1NTQwQVxcdTkxRTNcXHU5REI0XFx1NEVBRFxcdTRGNEVcXHU1MDVDXFx1NTA3NVxcdTUyNDNcXHU4QzlFXFx1NTQ0OFxcdTU4MjRcXHU1QjlBXFx1NUUxRFxcdTVFOTVcXHU1RUFEXFx1NUVGN1xcdTVGMUZcXHU2MDhDXFx1NjJCNVxcdTYzM0FcXHU2M0QwXFx1NjhBRlxcdTZDNDBcXHU3ODg3XFx1Nzk4RVxcdTdBMEJcXHU3REUwXFx1ODI0N1xcdThBMDJcXHU4QUU2XFx1OEU0NFxcdTkwMTNcIl0sXG4gICAgICBbXCI5MzQwXCIsIFwiXFx1OTBCOFxcdTkxMkRcXHU5MUQ4XFx1OUYwRVxcdTZDRTVcXHU2NDU4XFx1NjRFMlxcdTY1NzVcXHU2RUY0XFx1NzY4NFxcdTdCMUJcXHU5MDY5XFx1OTNEMVxcdTZFQkFcXHU1NEYyXFx1NUZCOVxcdTY0QTRcXHU4RjREXFx1OEZFRFxcdTkyNDRcXHU1MTc4XFx1NTg2QlxcdTU5MjlcXHU1QzU1XFx1NUU5N1xcdTZERkJcXHU3RThGXFx1NzUxQ1xcdThDQkNcXHU4RUUyXFx1OTg1QlxcdTcwQjlcXHU0RjFEXFx1NkJCRlxcdTZGQjFcXHU3NTMwXFx1OTZGQlxcdTUxNEVcXHU1NDEwXFx1NTgzNVxcdTU4NTdcXHU1OUFDXFx1NUM2MFxcdTVGOTJcXHU2NTk3XFx1Njc1Q1xcdTZFMjFcXHU3NjdCXFx1ODNERlxcdThDRURcXHU5MDE0XFx1OTBGRFxcdTkzNERcXHU3ODI1XFx1NzgzQVxcdTUyQUFcXHU1RUE2XFx1NTcxRlxcdTU5NzRcXHU2MDEyXFx1NTAxMlxcdTUxNUFcXHU1MUFDXCJdLFxuICAgICAgW1wiOTM4MFwiLCBcIlxcdTUxQ0RcXHU1MjAwXFx1NTUxMFxcdTU4NTRcXHU1ODU4XFx1NTk1N1xcdTVCOTVcXHU1Q0Y2XFx1NUQ4QlxcdTYwQkNcXHU2Mjk1XFx1NjQyRFxcdTY3NzFcXHU2ODQzXFx1NjhCQ1xcdTY4REZcXHU3NkQ3XFx1NkREOFxcdTZFNkZcXHU2RDlCXFx1NzA2RlxcdTcxQzhcXHU1RjUzXFx1NzVEOFxcdTc5NzdcXHU3QjQ5XFx1N0I1NFxcdTdCNTJcXHU3Q0Q2XFx1N0Q3MVxcdTUyMzBcXHU4NDYzXFx1ODU2OVxcdTg1RTRcXHU4QTBFXFx1OEIwNFxcdThDNDZcXHU4RTBGXFx1OTAwM1xcdTkwMEZcXHU5NDE5XFx1OTY3NlxcdTk4MkRcXHU5QTMwXFx1OTVEOFxcdTUwQ0RcXHU1MkQ1XFx1NTQwQ1xcdTU4MDJcXHU1QzBFXFx1NjFBN1xcdTY0OUVcXHU2RDFFXFx1NzdCM1xcdTdBRTVcXHU4MEY0XFx1ODQwNFxcdTkwNTNcXHU5Mjg1XFx1NUNFMFxcdTlEMDdcXHU1MzNGXFx1NUY5N1xcdTVGQjNcXHU2RDlDXFx1NzI3OVxcdTc3NjNcXHU3OUJGXFx1N0JFNFxcdTZCRDJcXHU3MkVDXFx1OEFBRFxcdTY4MDNcXHU2QTYxXFx1NTFGOFxcdTdBODFcXHU2OTM0XFx1NUM0QVxcdTlDRjZcXHU4MkVCXFx1NUJDNVxcdTkxNDlcXHU3MDFFXFx1NTY3OFxcdTVDNkZcXHU2MEM3XFx1NjU2NlxcdTZDOENcXHU4QzVBXFx1OTA0MVxcdTk4MTNcXHU1NDUxXFx1NjZDN1xcdTkyMERcXHU1OTQ4XFx1OTBBM1xcdTUxODVcXHU0RTREXFx1NTFFQVxcdTg1OTlcXHU4QjBFXFx1NzA1OFxcdTYzN0FcXHU5MzRCXFx1Njk2MlxcdTk5QjRcXHU3RTA0XFx1NzU3N1xcdTUzNTdcXHU2OTYwXFx1OEVERlxcdTk2RTNcXHU2QzVEXFx1NEU4Q1xcdTVDM0NcXHU1RjEwXFx1OEZFOVxcdTUzMDJcXHU4Q0QxXFx1ODA4OVxcdTg2NzlcXHU1RUZGXFx1NjVFNVxcdTRFNzNcXHU1MTY1XCJdLFxuICAgICAgW1wiOTQ0MFwiLCBcIlxcdTU5ODJcXHU1QzNGXFx1OTdFRVxcdTRFRkJcXHU1OThBXFx1NUZDRFxcdThBOERcXHU2RkUxXFx1NzlCMFxcdTc5NjJcXHU1QkU3XFx1ODQ3MVxcdTczMkJcXHU3MUIxXFx1NUU3NFxcdTVGRjVcXHU2MzdCXFx1NjQ5QVxcdTcxQzNcXHU3Qzk4XFx1NEU0M1xcdTVFRkNcXHU0RTRCXFx1NTdEQ1xcdTU2QTJcXHU2MEE5XFx1NkZDM1xcdTdEMERcXHU4MEZEXFx1ODEzM1xcdTgxQkZcXHU4RkIyXFx1ODk5N1xcdTg2QTRcXHU1REY0XFx1NjI4QVxcdTY0QURcXHU4OTg3XFx1Njc3N1xcdTZDRTJcXHU2RDNFXFx1NzQzNlxcdTc4MzRcXHU1QTQ2XFx1N0Y3NVxcdTgyQURcXHU5OUFDXFx1NEZGM1xcdTVFQzNcXHU2MkREXFx1NjM5MlxcdTY1NTdcXHU2NzZGXFx1NzZDM1xcdTcyNENcXHU4MENDXFx1ODBCQVxcdThGMjlcXHU5MTREXFx1NTAwRFxcdTU3RjlcXHU1QTkyXFx1Njg4NVwiXSxcbiAgICAgIFtcIjk0ODBcIiwgXCJcXHU2OTczXFx1NzE2NFxcdTcyRkRcXHU4Q0I3XFx1NThGMlxcdThDRTBcXHU5NjZBXFx1OTAxOVxcdTg3N0ZcXHU3OUU0XFx1NzdFN1xcdTg0MjlcXHU0RjJGXFx1NTI2NVxcdTUzNUFcXHU2MkNEXFx1NjdDRlxcdTZDQ0FcXHU3NjdEXFx1N0I5NFxcdTdDOTVcXHU4MjM2XFx1ODU4NFxcdThGRUJcXHU2NkREXFx1NkYyMFxcdTcyMDZcXHU3RTFCXFx1ODNBQlxcdTk5QzFcXHU5RUE2XFx1NTFGRFxcdTdCQjFcXHU3ODcyXFx1N0JCOFxcdTgwODdcXHU3QjQ4XFx1NkFFOFxcdTVFNjFcXHU4MDhDXFx1NzU1MVxcdTc1NjBcXHU1MTZCXFx1OTI2MlxcdTZFOENcXHU3NjdBXFx1OTE5N1xcdTlBRUFcXHU0RjEwXFx1N0Y3MFxcdTYyOUNcXHU3QjRGXFx1OTVBNVxcdTlDRTlcXHU1NjdBXFx1NTg1OVxcdTg2RTRcXHU5NkJDXFx1NEYzNFxcdTUyMjRcXHU1MzRBXFx1NTNDRFxcdTUzREJcXHU1RTA2XFx1NjQyQ1xcdTY1OTFcXHU2NzdGXFx1NkMzRVxcdTZDNEVcXHU3MjQ4XFx1NzJBRlxcdTczRURcXHU3NTU0XFx1N0U0MVxcdTgyMkNcXHU4NUU5XFx1OENBOVxcdTdCQzRcXHU5MUM2XFx1NzE2OVxcdTk4MTJcXHU5OEVGXFx1NjMzRFxcdTY2NjlcXHU3NTZBXFx1NzZFNFxcdTc4RDBcXHU4NTQzXFx1ODZFRVxcdTUzMkFcXHU1MzUxXFx1NTQyNlxcdTU5ODNcXHU1RTg3XFx1NUY3Q1xcdTYwQjJcXHU2MjQ5XFx1NjI3OVxcdTYyQUJcXHU2NTkwXFx1NkJENFxcdTZDQ0NcXHU3NUIyXFx1NzZBRVxcdTc4OTFcXHU3OUQ4XFx1N0RDQlxcdTdGNzdcXHU4MEE1XFx1ODhBQlxcdThBQjlcXHU4Q0JCXFx1OTA3RlxcdTk3NUVcXHU5OERCXFx1NkEwQlxcdTdDMzhcXHU1MDk5XFx1NUMzRVxcdTVGQUVcXHU2Nzg3XFx1NkJEOFxcdTc0MzVcXHU3NzA5XFx1N0Y4RVwiXSxcbiAgICAgIFtcIjk1NDBcIiwgXCJcXHU5RjNCXFx1NjdDQVxcdTdBMTdcXHU1MzM5XFx1NzU4QlxcdTlBRURcXHU1RjY2XFx1ODE5RFxcdTgzRjFcXHU4MDk4XFx1NUYzQ1xcdTVGQzVcXHU3NTYyXFx1N0I0NlxcdTkwM0NcXHU2ODY3XFx1NTlFQlxcdTVBOUJcXHU3RDEwXFx1NzY3RVxcdThCMkNcXHU0RkY1XFx1NUY2QVxcdTZBMTlcXHU2QzM3XFx1NkYwMlxcdTc0RTJcXHU3OTY4XFx1ODg2OFxcdThBNTVcXHU4Qzc5XFx1NUVERlxcdTYzQ0ZcXHU3NUM1XFx1NzlEMlxcdTgyRDdcXHU5MzI4XFx1OTJGMlxcdTg0OUNcXHU4NkVEXFx1OUMyRFxcdTU0QzFcXHU1RjZDXFx1NjU4Q1xcdTZENUNcXHU3MDE1XFx1OENBN1xcdThDRDNcXHU5ODNCXFx1NjU0RlxcdTc0RjZcXHU0RTBEXFx1NEVEOFxcdTU3RTBcXHU1OTJCXFx1NUE2NlxcdTVCQ0NcXHU1MUE4XFx1NUUwM1xcdTVFOUNcXHU2MDE2XFx1NjI3NlxcdTY1NzdcIl0sXG4gICAgICBbXCI5NTgwXCIsIFwiXFx1NjVBN1xcdTY2NkVcXHU2RDZFXFx1NzIzNlxcdTdCMjZcXHU4MTUwXFx1ODE5QVxcdTgyOTlcXHU4QjVDXFx1OENBMFxcdThDRTZcXHU4RDc0XFx1OTYxQ1xcdTk2NDRcXHU0RkFFXFx1NjRBQlxcdTZCNjZcXHU4MjFFXFx1ODQ2MVxcdTg1NkFcXHU5MEU4XFx1NUMwMVxcdTY5NTNcXHU5OEE4XFx1ODQ3QVxcdTg1NTdcXHU0RjBGXFx1NTI2RlxcdTVGQTlcXHU1RTQ1XFx1NjcwRFxcdTc5OEZcXHU4MTc5XFx1ODkwN1xcdTg5ODZcXHU2REY1XFx1NUYxN1xcdTYyNTVcXHU2Q0I4XFx1NEVDRlxcdTcyNjlcXHU5QjkyXFx1NTIwNlxcdTU0M0JcXHU1Njc0XFx1NThCM1xcdTYxQTRcXHU2MjZFXFx1NzExQVxcdTU5NkVcXHU3Qzg5XFx1N0NERVxcdTdEMUJcXHU5NkYwXFx1NjU4N1xcdTgwNUVcXHU0RTE5XFx1NEY3NVxcdTUxNzVcXHU1ODQwXFx1NUU2M1xcdTVFNzNcXHU1RjBBXFx1NjdDNFxcdTRFMjZcXHU4NTNEXFx1OTU4OVxcdTk2NUJcXHU3QzczXFx1OTgwMVxcdTUwRkJcXHU1OEMxXFx1NzY1NlxcdTc4QTdcXHU1MjI1XFx1NzdBNVxcdTg1MTFcXHU3Qjg2XFx1NTA0RlxcdTU5MDlcXHU3MjQ3XFx1N0JDN1xcdTdERThcXHU4RkJBXFx1OEZENFxcdTkwNERcXHU0RkJGXFx1NTJDOVxcdTVBMjlcXHU1RjAxXFx1OTdBRFxcdTRGRERcXHU4MjE3XFx1OTJFQVxcdTU3MDNcXHU2MzU1XFx1NkI2OVxcdTc1MkJcXHU4OERDXFx1OEYxNFxcdTdBNDJcXHU1MkRGXFx1NTg5M1xcdTYxNTVcXHU2MjBBXFx1NjZBRVxcdTZCQ0RcXHU3QzNGXFx1ODNFOVxcdTUwMjNcXHU0RkY4XFx1NTMwNVxcdTU0NDZcXHU1ODMxXFx1NTk0OVxcdTVCOURcXHU1Q0YwXFx1NUNFRlxcdTVEMjlcXHU1RTk2XFx1NjJCMVxcdTYzNjdcXHU2NTNFXFx1NjVCOVxcdTY3MEJcIl0sXG4gICAgICBbXCI5NjQwXCIsIFwiXFx1NkNENVxcdTZDRTFcXHU3MEY5XFx1NzgzMlxcdTdFMkJcXHU4MERFXFx1ODJCM1xcdTg0MENcXHU4NEVDXFx1ODcwMlxcdTg5MTJcXHU4QTJBXFx1OEM0QVxcdTkwQTZcXHU5MkQyXFx1OThGRFxcdTlDRjNcXHU5RDZDXFx1NEU0RlxcdTRFQTFcXHU1MDhEXFx1NTI1NlxcdTU3NEFcXHU1OUE4XFx1NUUzRFxcdTVGRDhcXHU1RkQ5XFx1NjIzRlxcdTY2QjRcXHU2NzFCXFx1NjdEMFxcdTY4RDJcXHU1MTkyXFx1N0QyMVxcdTgwQUFcXHU4MUE4XFx1OEIwMFxcdThDOENcXHU4Q0JGXFx1OTI3RVxcdTk2MzJcXHU1NDIwXFx1OTgyQ1xcdTUzMTdcXHU1MEQ1XFx1NTM1Q1xcdTU4QThcXHU2NEIyXFx1NjczNFxcdTcyNjdcXHU3NzY2XFx1N0E0NlxcdTkxRTZcXHU1MkMzXFx1NkNBMVxcdTZCODZcXHU1ODAwXFx1NUU0Q1xcdTU5NTRcXHU2NzJDXFx1N0ZGQlxcdTUxRTFcXHU3NkM2XCJdLFxuICAgICAgW1wiOTY4MFwiLCBcIlxcdTY0NjlcXHU3OEU4XFx1OUI1NFxcdTlFQkJcXHU1N0NCXFx1NTlCOVxcdTY2MjdcXHU2NzlBXFx1NkJDRVxcdTU0RTlcXHU2OUQ5XFx1NUU1NVxcdTgxOUNcXHU2Nzk1XFx1OUJBQVxcdTY3RkVcXHU5QzUyXFx1Njg1RFxcdTRFQTZcXHU0RkUzXFx1NTNDOFxcdTYyQjlcXHU2NzJCXFx1NkNBQlxcdThGQzRcXHU0RkFEXFx1N0U2RFxcdTlFQkZcXHU0RTA3XFx1NjE2MlxcdTZFODBcXHU2RjJCXFx1ODUxM1xcdTU0NzNcXHU2NzJBXFx1OUI0NVxcdTVERjNcXHU3Qjk1XFx1NUNBQ1xcdTVCQzZcXHU4NzFDXFx1NkU0QVxcdTg0RDFcXHU3QTE0XFx1ODEwOFxcdTU5OTlcXHU3QzhEXFx1NkMxMVxcdTc3MjBcXHU1MkQ5XFx1NTkyMlxcdTcxMjFcXHU3MjVGXFx1NzdEQlxcdTk3MjdcXHU5RDYxXFx1NjkwQlxcdTVBN0ZcXHU1QTE4XFx1NTFBNVxcdTU0MERcXHU1NDdEXFx1NjYwRVxcdTc2REZcXHU4RkY3XFx1OTI5OFxcdTlDRjRcXHU1OUVBXFx1NzI1RFxcdTZFQzVcXHU1MTREXFx1NjhDOVxcdTdEQkZcXHU3REVDXFx1OTc2MlxcdTlFQkFcXHU2NDc4XFx1NkEyMVxcdTgzMDJcXHU1OTg0XFx1NUI1RlxcdTZCREJcXHU3MzFCXFx1NzZGMlxcdTdEQjJcXHU4MDE3XFx1ODQ5OVxcdTUxMzJcXHU2NzI4XFx1OUVEOVxcdTc2RUVcXHU2NzYyXFx1NTJGRlxcdTk5MDVcXHU1QzI0XFx1NjIzQlxcdTdDN0VcXHU4Q0IwXFx1NTU0RlxcdTYwQjZcXHU3RDBCXFx1OTU4MFxcdTUzMDFcXHU0RTVGXFx1NTFCNlxcdTU5MUNcXHU3MjNBXFx1ODAzNlxcdTkxQ0VcXHU1RjI1XFx1NzdFMlxcdTUzODRcXHU1Rjc5XFx1N0QwNFxcdTg1QUNcXHU4QTMzXFx1OEU4RFxcdTk3NTZcXHU2N0YzXFx1ODVBRVxcdTk0NTNcXHU2MTA5XFx1NjEwOFxcdTZDQjlcXHU3NjUyXCJdLFxuICAgICAgW1wiOTc0MFwiLCBcIlxcdThBRURcXHU4RjM4XFx1NTUyRlxcdTRGNTFcXHU1MTJBXFx1NTJDN1xcdTUzQ0JcXHU1QkE1XFx1NUU3RFxcdTYwQTBcXHU2MTgyXFx1NjNENlxcdTY3MDlcXHU2N0RBXFx1NkU2N1xcdTZEOENcXHU3MzM2XFx1NzMzN1xcdTc1MzFcXHU3OTUwXFx1ODhENVxcdThBOThcXHU5MDRBXFx1OTA5MVxcdTkwRjVcXHU5NkM0XFx1ODc4RFxcdTU5MTVcXHU0RTg4XFx1NEY1OVxcdTRFMEVcXHU4QTg5XFx1OEYzRlxcdTk4MTBcXHU1MEFEXFx1NUU3Q1xcdTU5OTZcXHU1QkI5XFx1NUVCOFxcdTYzREFcXHU2M0ZBXFx1NjRDMVxcdTY2RENcXHU2OTRBXFx1NjlEOFxcdTZEMEJcXHU2RUI2XFx1NzE5NFxcdTc1MjhcXHU3QUFGXFx1N0Y4QVxcdTgwMDBcXHU4NDQ5XFx1ODRDOVxcdTg5ODFcXHU4QjIxXFx1OEUwQVxcdTkwNjVcXHU5NjdEXFx1OTkwQVxcdTYxN0VcXHU2MjkxXFx1NkIzMlwiXSxcbiAgICAgIFtcIjk3ODBcIiwgXCJcXHU2QzgzXFx1NkQ3NFxcdTdGQ0NcXHU3RkZDXFx1NkRDMFxcdTdGODVcXHU4N0JBXFx1ODhGOFxcdTY3NjVcXHU4M0IxXFx1OTgzQ1xcdTk2RjdcXHU2RDFCXFx1N0Q2MVxcdTg0M0RcXHU5MTZBXFx1NEU3MVxcdTUzNzVcXHU1RDUwXFx1NkIwNFxcdTZGRUJcXHU4NUNEXFx1ODYyRFxcdTg5QTdcXHU1MjI5XFx1NTQwRlxcdTVDNjVcXHU2NzRFXFx1NjhBOFxcdTc0MDZcXHU3NDgzXFx1NzVFMlxcdTg4Q0ZcXHU4OEUxXFx1OTFDQ1xcdTk2RTJcXHU5Njc4XFx1NUY4QlxcdTczODdcXHU3QUNCXFx1ODQ0RVxcdTYzQTBcXHU3NTY1XFx1NTI4OVxcdTZENDFcXHU2RTlDXFx1NzQwOVxcdTc1NTlcXHU3ODZCXFx1N0M5MlxcdTk2ODZcXHU3QURDXFx1OUY4RFxcdTRGQjZcXHU2MTZFXFx1NjVDNVxcdTg2NUNcXHU0RTg2XFx1NEVBRVxcdTUwREFcXHU0RTIxXFx1NTFDQ1xcdTVCRUVcXHU2NTk5XFx1Njg4MVxcdTZEQkNcXHU3MzFGXFx1NzY0MlxcdTc3QURcXHU3QTFDXFx1N0NFN1xcdTgyNkZcXHU4QUQyXFx1OTA3Q1xcdTkxQ0ZcXHU5Njc1XFx1OTgxOFxcdTUyOUJcXHU3REQxXFx1NTAyQlxcdTUzOThcXHU2Nzk3XFx1NkRDQlxcdTcxRDBcXHU3NDMzXFx1ODFFOFxcdThGMkFcXHU5NkEzXFx1OUM1N1xcdTlFOUZcXHU3NDYwXFx1NTg0MVxcdTZEOTlcXHU3RDJGXFx1OTg1RVxcdTRFRTRcXHU0RjM2XFx1NEY4QlxcdTUxQjdcXHU1MkIxXFx1NURCQVxcdTYwMUNcXHU3M0IyXFx1NzkzQ1xcdTgyRDNcXHU5MjM0XFx1OTZCN1xcdTk2RjZcXHU5NzBBXFx1OUU5N1xcdTlGNjJcXHU2NkE2XFx1NkI3NFxcdTUyMTdcXHU1MkEzXFx1NzBDOFxcdTg4QzJcXHU1RUM5XFx1NjA0QlxcdTYxOTBcXHU2RjIzXFx1NzE0OVxcdTdDM0VcXHU3REY0XFx1ODA2RlwiXSxcbiAgICAgIFtcIjk4NDBcIiwgXCJcXHU4NEVFXFx1OTAyM1xcdTkzMkNcXHU1NDQyXFx1OUI2RlxcdTZBRDNcXHU3MDg5XFx1OENDMlxcdThERUZcXHU5NzMyXFx1NTJCNFxcdTVBNDFcXHU1RUNBXFx1NUYwNFxcdTY3MTdcXHU2OTdDXFx1Njk5NFxcdTZENkFcXHU2RjBGXFx1NzI2MlxcdTcyRkNcXHU3QkVEXFx1ODAwMVxcdTgwN0VcXHU4NzRCXFx1OTBDRVxcdTUxNkRcXHU5RTkzXFx1Nzk4NFxcdTgwOEJcXHU5MzMyXFx1OEFENlxcdTUwMkRcXHU1NDhDXFx1OEE3MVxcdTZCNkFcXHU4Q0M0XFx1ODEwN1xcdTYwRDFcXHU2N0EwXFx1OURGMlxcdTRFOTlcXHU0RTk4XFx1OUMxMFxcdThBNkJcXHU4NUMxXFx1ODU2OFxcdTY5MDBcXHU2RTdFXFx1Nzg5N1xcdTgxNTVcIl0sXG4gICAgICBbXCI5ODlmXCIsIFwiXFx1NUYwQ1xcdTRFMTBcXHU0RTE1XFx1NEUyQVxcdTRFMzFcXHU0RTM2XFx1NEUzQ1xcdTRFM0ZcXHU0RTQyXFx1NEU1NlxcdTRFNThcXHU0RTgyXFx1NEU4NVxcdThDNkJcXHU0RThBXFx1ODIxMlxcdTVGMERcXHU0RThFXFx1NEU5RVxcdTRFOUZcXHU0RUEwXFx1NEVBMlxcdTRFQjBcXHU0RUIzXFx1NEVCNlxcdTRFQ0VcXHU0RUNEXFx1NEVDNFxcdTRFQzZcXHU0RUMyXFx1NEVEN1xcdTRFREVcXHU0RUVEXFx1NEVERlxcdTRFRjdcXHU0RjA5XFx1NEY1QVxcdTRGMzBcXHU0RjVCXFx1NEY1RFxcdTRGNTdcXHU0RjQ3XFx1NEY3NlxcdTRGODhcXHU0RjhGXFx1NEY5OFxcdTRGN0JcXHU0RjY5XFx1NEY3MFxcdTRGOTFcXHU0RjZGXFx1NEY4NlxcdTRGOTZcXHU1MTE4XFx1NEZENFxcdTRGREZcXHU0RkNFXFx1NEZEOFxcdTRGREJcXHU0RkQxXFx1NEZEQVxcdTRGRDBcXHU0RkU0XFx1NEZFNVxcdTUwMUFcXHU1MDI4XFx1NTAxNFxcdTUwMkFcXHU1MDI1XFx1NTAwNVxcdTRGMUNcXHU0RkY2XFx1NTAyMVxcdTUwMjlcXHU1MDJDXFx1NEZGRVxcdTRGRUZcXHU1MDExXFx1NTAwNlxcdTUwNDNcXHU1MDQ3XFx1NjcwM1xcdTUwNTVcXHU1MDUwXFx1NTA0OFxcdTUwNUFcXHU1MDU2XFx1NTA2Q1xcdTUwNzhcXHU1MDgwXFx1NTA5QVxcdTUwODVcXHU1MEI0XFx1NTBCMlwiXSxcbiAgICAgIFtcIjk5NDBcIiwgXCJcXHU1MEM5XFx1NTBDQVxcdTUwQjNcXHU1MEMyXFx1NTBENlxcdTUwREVcXHU1MEU1XFx1NTBFRFxcdTUwRTNcXHU1MEVFXFx1NTBGOVxcdTUwRjVcXHU1MTA5XFx1NTEwMVxcdTUxMDJcXHU1MTE2XFx1NTExNVxcdTUxMTRcXHU1MTFBXFx1NTEyMVxcdTUxM0FcXHU1MTM3XFx1NTEzQ1xcdTUxM0JcXHU1MTNGXFx1NTE0MFxcdTUxNTJcXHU1MTRDXFx1NTE1NFxcdTUxNjJcXHU3QUY4XFx1NTE2OVxcdTUxNkFcXHU1MTZFXFx1NTE4MFxcdTUxODJcXHU1NkQ4XFx1NTE4Q1xcdTUxODlcXHU1MThGXFx1NTE5MVxcdTUxOTNcXHU1MTk1XFx1NTE5NlxcdTUxQTRcXHU1MUE2XFx1NTFBMlxcdTUxQTlcXHU1MUFBXFx1NTFBQlxcdTUxQjNcXHU1MUIxXFx1NTFCMlxcdTUxQjBcXHU1MUI1XFx1NTFCRFxcdTUxQzVcXHU1MUM5XFx1NTFEQlxcdTUxRTBcXHU4NjU1XFx1NTFFOVxcdTUxRURcIl0sXG4gICAgICBbXCI5OTgwXCIsIFwiXFx1NTFGMFxcdTUxRjVcXHU1MUZFXFx1NTIwNFxcdTUyMEJcXHU1MjE0XFx1NTIwRVxcdTUyMjdcXHU1MjJBXFx1NTIyRVxcdTUyMzNcXHU1MjM5XFx1NTI0RlxcdTUyNDRcXHU1MjRCXFx1NTI0Q1xcdTUyNUVcXHU1MjU0XFx1NTI2QVxcdTUyNzRcXHU1MjY5XFx1NTI3M1xcdTUyN0ZcXHU1MjdEXFx1NTI4RFxcdTUyOTRcXHU1MjkyXFx1NTI3MVxcdTUyODhcXHU1MjkxXFx1OEZBOFxcdThGQTdcXHU1MkFDXFx1NTJBRFxcdTUyQkNcXHU1MkI1XFx1NTJDMVxcdTUyQ0RcXHU1MkQ3XFx1NTJERVxcdTUyRTNcXHU1MkU2XFx1OThFRFxcdTUyRTBcXHU1MkYzXFx1NTJGNVxcdTUyRjhcXHU1MkY5XFx1NTMwNlxcdTUzMDhcXHU3NTM4XFx1NTMwRFxcdTUzMTBcXHU1MzBGXFx1NTMxNVxcdTUzMUFcXHU1MzIzXFx1NTMyRlxcdTUzMzFcXHU1MzMzXFx1NTMzOFxcdTUzNDBcXHU1MzQ2XFx1NTM0NVxcdTRFMTdcXHU1MzQ5XFx1NTM0RFxcdTUxRDZcXHU1MzVFXFx1NTM2OVxcdTUzNkVcXHU1OTE4XFx1NTM3QlxcdTUzNzdcXHU1MzgyXFx1NTM5NlxcdTUzQTBcXHU1M0E2XFx1NTNBNVxcdTUzQUVcXHU1M0IwXFx1NTNCNlxcdTUzQzNcXHU3QzEyXFx1OTZEOVxcdTUzREZcXHU2NkZDXFx1NzFFRVxcdTUzRUVcXHU1M0U4XFx1NTNFRFxcdTUzRkFcXHU1NDAxXFx1NTQzRFxcdTU0NDBcXHU1NDJDXFx1NTQyRFxcdTU0M0NcXHU1NDJFXFx1NTQzNlxcdTU0MjlcXHU1NDFEXFx1NTQ0RVxcdTU0OEZcXHU1NDc1XFx1NTQ4RVxcdTU0NUZcXHU1NDcxXFx1NTQ3N1xcdTU0NzBcXHU1NDkyXFx1NTQ3QlxcdTU0ODBcXHU1NDc2XFx1NTQ4NFxcdTU0OTBcXHU1NDg2XFx1NTRDN1xcdTU0QTJcXHU1NEI4XFx1NTRBNVxcdTU0QUNcXHU1NEM0XFx1NTRDOFxcdTU0QThcIl0sXG4gICAgICBbXCI5YTQwXCIsIFwiXFx1NTRBQlxcdTU0QzJcXHU1NEE0XFx1NTRCRVxcdTU0QkNcXHU1NEQ4XFx1NTRFNVxcdTU0RTZcXHU1NTBGXFx1NTUxNFxcdTU0RkRcXHU1NEVFXFx1NTRFRFxcdTU0RkFcXHU1NEUyXFx1NTUzOVxcdTU1NDBcXHU1NTYzXFx1NTU0Q1xcdTU1MkVcXHU1NTVDXFx1NTU0NVxcdTU1NTZcXHU1NTU3XFx1NTUzOFxcdTU1MzNcXHU1NTVEXFx1NTU5OVxcdTU1ODBcXHU1NEFGXFx1NTU4QVxcdTU1OUZcXHU1NTdCXFx1NTU3RVxcdTU1OThcXHU1NTlFXFx1NTVBRVxcdTU1N0NcXHU1NTgzXFx1NTVBOVxcdTU1ODdcXHU1NUE4XFx1NTVEQVxcdTU1QzVcXHU1NURGXFx1NTVDNFxcdTU1RENcXHU1NUU0XFx1NTVENFxcdTU2MTRcXHU1NUY3XFx1NTYxNlxcdTU1RkVcXHU1NUZEXFx1NTYxQlxcdTU1RjlcXHU1NjRFXFx1NTY1MFxcdTcxREZcXHU1NjM0XFx1NTYzNlxcdTU2MzJcXHU1NjM4XCJdLFxuICAgICAgW1wiOWE4MFwiLCBcIlxcdTU2NkJcXHU1NjY0XFx1NTYyRlxcdTU2NkNcXHU1NjZBXFx1NTY4NlxcdTU2ODBcXHU1NjhBXFx1NTZBMFxcdTU2OTRcXHU1NjhGXFx1NTZBNVxcdTU2QUVcXHU1NkI2XFx1NTZCNFxcdTU2QzJcXHU1NkJDXFx1NTZDMVxcdTU2QzNcXHU1NkMwXFx1NTZDOFxcdTU2Q0VcXHU1NkQxXFx1NTZEM1xcdTU2RDdcXHU1NkVFXFx1NTZGOVxcdTU3MDBcXHU1NkZGXFx1NTcwNFxcdTU3MDlcXHU1NzA4XFx1NTcwQlxcdTU3MERcXHU1NzEzXFx1NTcxOFxcdTU3MTZcXHU1NUM3XFx1NTcxQ1xcdTU3MjZcXHU1NzM3XFx1NTczOFxcdTU3NEVcXHU1NzNCXFx1NTc0MFxcdTU3NEZcXHU1NzY5XFx1NTdDMFxcdTU3ODhcXHU1NzYxXFx1NTc3RlxcdTU3ODlcXHU1NzkzXFx1NTdBMFxcdTU3QjNcXHU1N0E0XFx1NTdBQVxcdTU3QjBcXHU1N0MzXFx1NTdDNlxcdTU3RDRcXHU1N0QyXFx1NTdEM1xcdTU4MEFcXHU1N0Q2XFx1NTdFM1xcdTU4MEJcXHU1ODE5XFx1NTgxRFxcdTU4NzJcXHU1ODIxXFx1NTg2MlxcdTU4NEJcXHU1ODcwXFx1NkJDMFxcdTU4NTJcXHU1ODNEXFx1NTg3OVxcdTU4ODVcXHU1OEI5XFx1NTg5RlxcdTU4QUJcXHU1OEJBXFx1NThERVxcdTU4QkJcXHU1OEI4XFx1NThBRVxcdTU4QzVcXHU1OEQzXFx1NThEMVxcdTU4RDdcXHU1OEQ5XFx1NThEOFxcdTU4RTVcXHU1OERDXFx1NThFNFxcdTU4REZcXHU1OEVGXFx1NThGQVxcdTU4RjlcXHU1OEZCXFx1NThGQ1xcdTU4RkRcXHU1OTAyXFx1NTkwQVxcdTU5MTBcXHU1OTFCXFx1NjhBNlxcdTU5MjVcXHU1OTJDXFx1NTkyRFxcdTU5MzJcXHU1OTM4XFx1NTkzRVxcdTdBRDJcXHU1OTU1XFx1NTk1MFxcdTU5NEVcXHU1OTVBXFx1NTk1OFxcdTU5NjJcXHU1OTYwXFx1NTk2N1xcdTU5NkNcXHU1OTY5XCJdLFxuICAgICAgW1wiOWI0MFwiLCBcIlxcdTU5NzhcXHU1OTgxXFx1NTk5RFxcdTRGNUVcXHU0RkFCXFx1NTlBM1xcdTU5QjJcXHU1OUM2XFx1NTlFOFxcdTU5RENcXHU1OThEXFx1NTlEOVxcdTU5REFcXHU1QTI1XFx1NUExRlxcdTVBMTFcXHU1QTFDXFx1NUEwOVxcdTVBMUFcXHU1QTQwXFx1NUE2Q1xcdTVBNDlcXHU1QTM1XFx1NUEzNlxcdTVBNjJcXHU1QTZBXFx1NUE5QVxcdTVBQkNcXHU1QUJFXFx1NUFDQlxcdTVBQzJcXHU1QUJEXFx1NUFFM1xcdTVBRDdcXHU1QUU2XFx1NUFFOVxcdTVBRDZcXHU1QUZBXFx1NUFGQlxcdTVCMENcXHU1QjBCXFx1NUIxNlxcdTVCMzJcXHU1QUQwXFx1NUIyQVxcdTVCMzZcXHU1QjNFXFx1NUI0M1xcdTVCNDVcXHU1QjQwXFx1NUI1MVxcdTVCNTVcXHU1QjVBXFx1NUI1QlxcdTVCNjVcXHU1QjY5XFx1NUI3MFxcdTVCNzNcXHU1Qjc1XFx1NUI3OFxcdTY1ODhcXHU1QjdBXFx1NUI4MFwiXSxcbiAgICAgIFtcIjliODBcIiwgXCJcXHU1QjgzXFx1NUJBNlxcdTVCQjhcXHU1QkMzXFx1NUJDN1xcdTVCQzlcXHU1QkQ0XFx1NUJEMFxcdTVCRTRcXHU1QkU2XFx1NUJFMlxcdTVCREVcXHU1QkU1XFx1NUJFQlxcdTVCRjBcXHU1QkY2XFx1NUJGM1xcdTVDMDVcXHU1QzA3XFx1NUMwOFxcdTVDMERcXHU1QzEzXFx1NUMyMFxcdTVDMjJcXHU1QzI4XFx1NUMzOFxcdTVDMzlcXHU1QzQxXFx1NUM0NlxcdTVDNEVcXHU1QzUzXFx1NUM1MFxcdTVDNEZcXHU1QjcxXFx1NUM2Q1xcdTVDNkVcXHU0RTYyXFx1NUM3NlxcdTVDNzlcXHU1QzhDXFx1NUM5MVxcdTVDOTRcXHU1OTlCXFx1NUNBQlxcdTVDQkJcXHU1Q0I2XFx1NUNCQ1xcdTVDQjdcXHU1Q0M1XFx1NUNCRVxcdTVDQzdcXHU1Q0Q5XFx1NUNFOVxcdTVDRkRcXHU1Q0ZBXFx1NUNFRFxcdTVEOENcXHU1Q0VBXFx1NUQwQlxcdTVEMTVcXHU1RDE3XFx1NUQ1Q1xcdTVEMUZcXHU1RDFCXFx1NUQxMVxcdTVEMTRcXHU1RDIyXFx1NUQxQVxcdTVEMTlcXHU1RDE4XFx1NUQ0Q1xcdTVENTJcXHU1RDRFXFx1NUQ0QlxcdTVENkNcXHU1RDczXFx1NUQ3NlxcdTVEODdcXHU1RDg0XFx1NUQ4MlxcdTVEQTJcXHU1RDlEXFx1NURBQ1xcdTVEQUVcXHU1REJEXFx1NUQ5MFxcdTVEQjdcXHU1REJDXFx1NURDOVxcdTVEQ0RcXHU1REQzXFx1NUREMlxcdTVERDZcXHU1RERCXFx1NURFQlxcdTVERjJcXHU1REY1XFx1NUUwQlxcdTVFMUFcXHU1RTE5XFx1NUUxMVxcdTVFMUJcXHU1RTM2XFx1NUUzN1xcdTVFNDRcXHU1RTQzXFx1NUU0MFxcdTVFNEVcXHU1RTU3XFx1NUU1NFxcdTVFNUZcXHU1RTYyXFx1NUU2NFxcdTVFNDdcXHU1RTc1XFx1NUU3NlxcdTVFN0FcXHU5RUJDXFx1NUU3RlxcdTVFQTBcXHU1RUMxXFx1NUVDMlxcdTVFQzhcXHU1RUQwXFx1NUVDRlwiXSxcbiAgICAgIFtcIjljNDBcIiwgXCJcXHU1RUQ2XFx1NUVFM1xcdTVFRERcXHU1RURBXFx1NUVEQlxcdTVFRTJcXHU1RUUxXFx1NUVFOFxcdTVFRTlcXHU1RUVDXFx1NUVGMVxcdTVFRjNcXHU1RUYwXFx1NUVGNFxcdTVFRjhcXHU1RUZFXFx1NUYwM1xcdTVGMDlcXHU1RjVEXFx1NUY1Q1xcdTVGMEJcXHU1RjExXFx1NUYxNlxcdTVGMjlcXHU1RjJEXFx1NUYzOFxcdTVGNDFcXHU1RjQ4XFx1NUY0Q1xcdTVGNEVcXHU1RjJGXFx1NUY1MVxcdTVGNTZcXHU1RjU3XFx1NUY1OVxcdTVGNjFcXHU1RjZEXFx1NUY3M1xcdTVGNzdcXHU1RjgzXFx1NUY4MlxcdTVGN0ZcXHU1RjhBXFx1NUY4OFxcdTVGOTFcXHU1Rjg3XFx1NUY5RVxcdTVGOTlcXHU1Rjk4XFx1NUZBMFxcdTVGQThcXHU1RkFEXFx1NUZCQ1xcdTVGRDZcXHU1RkZCXFx1NUZFNFxcdTVGRjhcXHU1RkYxXFx1NUZERFxcdTYwQjNcXHU1RkZGXFx1NjAyMVxcdTYwNjBcIl0sXG4gICAgICBbXCI5YzgwXCIsIFwiXFx1NjAxOVxcdTYwMTBcXHU2MDI5XFx1NjAwRVxcdTYwMzFcXHU2MDFCXFx1NjAxNVxcdTYwMkJcXHU2MDI2XFx1NjAwRlxcdTYwM0FcXHU2MDVBXFx1NjA0MVxcdTYwNkFcXHU2MDc3XFx1NjA1RlxcdTYwNEFcXHU2MDQ2XFx1NjA0RFxcdTYwNjNcXHU2MDQzXFx1NjA2NFxcdTYwNDJcXHU2MDZDXFx1NjA2QlxcdTYwNTlcXHU2MDgxXFx1NjA4RFxcdTYwRTdcXHU2MDgzXFx1NjA5QVxcdTYwODRcXHU2MDlCXFx1NjA5NlxcdTYwOTdcXHU2MDkyXFx1NjBBN1xcdTYwOEJcXHU2MEUxXFx1NjBCOFxcdTYwRTBcXHU2MEQzXFx1NjBCNFxcdTVGRjBcXHU2MEJEXFx1NjBDNlxcdTYwQjVcXHU2MEQ4XFx1NjE0RFxcdTYxMTVcXHU2MTA2XFx1NjBGNlxcdTYwRjdcXHU2MTAwXFx1NjBGNFxcdTYwRkFcXHU2MTAzXFx1NjEyMVxcdTYwRkJcXHU2MEYxXFx1NjEwRFxcdTYxMEVcXHU2MTQ3XFx1NjEzRVxcdTYxMjhcXHU2MTI3XFx1NjE0QVxcdTYxM0ZcXHU2MTNDXFx1NjEyQ1xcdTYxMzRcXHU2MTNEXFx1NjE0MlxcdTYxNDRcXHU2MTczXFx1NjE3N1xcdTYxNThcXHU2MTU5XFx1NjE1QVxcdTYxNkJcXHU2MTc0XFx1NjE2RlxcdTYxNjVcXHU2MTcxXFx1NjE1RlxcdTYxNURcXHU2MTUzXFx1NjE3NVxcdTYxOTlcXHU2MTk2XFx1NjE4N1xcdTYxQUNcXHU2MTk0XFx1NjE5QVxcdTYxOEFcXHU2MTkxXFx1NjFBQlxcdTYxQUVcXHU2MUNDXFx1NjFDQVxcdTYxQzlcXHU2MUY3XFx1NjFDOFxcdTYxQzNcXHU2MUM2XFx1NjFCQVxcdTYxQ0JcXHU3Rjc5XFx1NjFDRFxcdTYxRTZcXHU2MUUzXFx1NjFGNlxcdTYxRkFcXHU2MUY0XFx1NjFGRlxcdTYxRkRcXHU2MUZDXFx1NjFGRVxcdTYyMDBcXHU2MjA4XFx1NjIwOVxcdTYyMERcXHU2MjBDXFx1NjIxNFxcdTYyMUJcIl0sXG4gICAgICBbXCI5ZDQwXCIsIFwiXFx1NjIxRVxcdTYyMjFcXHU2MjJBXFx1NjIyRVxcdTYyMzBcXHU2MjMyXFx1NjIzM1xcdTYyNDFcXHU2MjRFXFx1NjI1RVxcdTYyNjNcXHU2MjVCXFx1NjI2MFxcdTYyNjhcXHU2MjdDXFx1NjI4MlxcdTYyODlcXHU2MjdFXFx1NjI5MlxcdTYyOTNcXHU2Mjk2XFx1NjJENFxcdTYyODNcXHU2Mjk0XFx1NjJEN1xcdTYyRDFcXHU2MkJCXFx1NjJDRlxcdTYyRkZcXHU2MkM2XFx1NjRENFxcdTYyQzhcXHU2MkRDXFx1NjJDQ1xcdTYyQ0FcXHU2MkMyXFx1NjJDN1xcdTYyOUJcXHU2MkM5XFx1NjMwQ1xcdTYyRUVcXHU2MkYxXFx1NjMyN1xcdTYzMDJcXHU2MzA4XFx1NjJFRlxcdTYyRjVcXHU2MzUwXFx1NjMzRVxcdTYzNERcXHU2NDFDXFx1NjM0RlxcdTYzOTZcXHU2MzhFXFx1NjM4MFxcdTYzQUJcXHU2Mzc2XFx1NjNBM1xcdTYzOEZcXHU2Mzg5XFx1NjM5RlxcdTYzQjVcXHU2MzZCXCJdLFxuICAgICAgW1wiOWQ4MFwiLCBcIlxcdTYzNjlcXHU2M0JFXFx1NjNFOVxcdTYzQzBcXHU2M0M2XFx1NjNFM1xcdTYzQzlcXHU2M0QyXFx1NjNGNlxcdTYzQzRcXHU2NDE2XFx1NjQzNFxcdTY0MDZcXHU2NDEzXFx1NjQyNlxcdTY0MzZcXHU2NTFEXFx1NjQxN1xcdTY0MjhcXHU2NDBGXFx1NjQ2N1xcdTY0NkZcXHU2NDc2XFx1NjQ0RVxcdTY1MkFcXHU2NDk1XFx1NjQ5M1xcdTY0QTVcXHU2NEE5XFx1NjQ4OFxcdTY0QkNcXHU2NERBXFx1NjREMlxcdTY0QzVcXHU2NEM3XFx1NjRCQlxcdTY0RDhcXHU2NEMyXFx1NjRGMVxcdTY0RTdcXHU4MjA5XFx1NjRFMFxcdTY0RTFcXHU2MkFDXFx1NjRFM1xcdTY0RUZcXHU2NTJDXFx1NjRGNlxcdTY0RjRcXHU2NEYyXFx1NjRGQVxcdTY1MDBcXHU2NEZEXFx1NjUxOFxcdTY1MUNcXHU2NTA1XFx1NjUyNFxcdTY1MjNcXHU2NTJCXFx1NjUzNFxcdTY1MzVcXHU2NTM3XFx1NjUzNlxcdTY1MzhcXHU3NTRCXFx1NjU0OFxcdTY1NTZcXHU2NTU1XFx1NjU0RFxcdTY1NThcXHU2NTVFXFx1NjU1RFxcdTY1NzJcXHU2NTc4XFx1NjU4MlxcdTY1ODNcXHU4QjhBXFx1NjU5QlxcdTY1OUZcXHU2NUFCXFx1NjVCN1xcdTY1QzNcXHU2NUM2XFx1NjVDMVxcdTY1QzRcXHU2NUNDXFx1NjVEMlxcdTY1REJcXHU2NUQ5XFx1NjVFMFxcdTY1RTFcXHU2NUYxXFx1Njc3MlxcdTY2MEFcXHU2NjAzXFx1NjVGQlxcdTY3NzNcXHU2NjM1XFx1NjYzNlxcdTY2MzRcXHU2NjFDXFx1NjY0RlxcdTY2NDRcXHU2NjQ5XFx1NjY0MVxcdTY2NUVcXHU2NjVEXFx1NjY2NFxcdTY2NjdcXHU2NjY4XFx1NjY1RlxcdTY2NjJcXHU2NjcwXFx1NjY4M1xcdTY2ODhcXHU2NjhFXFx1NjY4OVxcdTY2ODRcXHU2Njk4XFx1NjY5RFxcdTY2QzFcXHU2NkI5XFx1NjZDOVxcdTY2QkVcXHU2NkJDXCJdLFxuICAgICAgW1wiOWU0MFwiLCBcIlxcdTY2QzRcXHU2NkI4XFx1NjZENlxcdTY2REFcXHU2NkUwXFx1NjYzRlxcdTY2RTZcXHU2NkU5XFx1NjZGMFxcdTY2RjVcXHU2NkY3XFx1NjcwRlxcdTY3MTZcXHU2NzFFXFx1NjcyNlxcdTY3MjdcXHU5NzM4XFx1NjcyRVxcdTY3M0ZcXHU2NzM2XFx1Njc0MVxcdTY3MzhcXHU2NzM3XFx1Njc0NlxcdTY3NUVcXHU2NzYwXFx1Njc1OVxcdTY3NjNcXHU2NzY0XFx1Njc4OVxcdTY3NzBcXHU2N0E5XFx1Njc3Q1xcdTY3NkFcXHU2NzhDXFx1Njc4QlxcdTY3QTZcXHU2N0ExXFx1Njc4NVxcdTY3QjdcXHU2N0VGXFx1NjdCNFxcdTY3RUNcXHU2N0IzXFx1NjdFOVxcdTY3QjhcXHU2N0U0XFx1NjdERVxcdTY3RERcXHU2N0UyXFx1NjdFRVxcdTY3QjlcXHU2N0NFXFx1NjdDNlxcdTY3RTdcXHU2QTlDXFx1NjgxRVxcdTY4NDZcXHU2ODI5XFx1Njg0MFxcdTY4NERcXHU2ODMyXFx1Njg0RVwiXSxcbiAgICAgIFtcIjllODBcIiwgXCJcXHU2OEIzXFx1NjgyQlxcdTY4NTlcXHU2ODYzXFx1Njg3N1xcdTY4N0ZcXHU2ODlGXFx1Njg4RlxcdTY4QURcXHU2ODk0XFx1Njg5RFxcdTY4OUJcXHU2ODgzXFx1NkFBRVxcdTY4QjlcXHU2ODc0XFx1NjhCNVxcdTY4QTBcXHU2OEJBXFx1NjkwRlxcdTY4OERcXHU2ODdFXFx1NjkwMVxcdTY4Q0FcXHU2OTA4XFx1NjhEOFxcdTY5MjJcXHU2OTI2XFx1NjhFMVxcdTY5MENcXHU2OENEXFx1NjhENFxcdTY4RTdcXHU2OEQ1XFx1NjkzNlxcdTY5MTJcXHU2OTA0XFx1NjhEN1xcdTY4RTNcXHU2OTI1XFx1NjhGOVxcdTY4RTBcXHU2OEVGXFx1NjkyOFxcdTY5MkFcXHU2OTFBXFx1NjkyM1xcdTY5MjFcXHU2OEM2XFx1Njk3OVxcdTY5NzdcXHU2OTVDXFx1Njk3OFxcdTY5NkJcXHU2OTU0XFx1Njk3RVxcdTY5NkVcXHU2OTM5XFx1Njk3NFxcdTY5M0RcXHU2OTU5XFx1NjkzMFxcdTY5NjFcXHU2OTVFXFx1Njk1RFxcdTY5ODFcXHU2OTZBXFx1NjlCMlxcdTY5QUVcXHU2OUQwXFx1NjlCRlxcdTY5QzFcXHU2OUQzXFx1NjlCRVxcdTY5Q0VcXHU1QkU4XFx1NjlDQVxcdTY5RERcXHU2OUJCXFx1NjlDM1xcdTY5QTdcXHU2QTJFXFx1Njk5MVxcdTY5QTBcXHU2OTlDXFx1Njk5NVxcdTY5QjRcXHU2OURFXFx1NjlFOFxcdTZBMDJcXHU2QTFCXFx1NjlGRlxcdTZCMEFcXHU2OUY5XFx1NjlGMlxcdTY5RTdcXHU2QTA1XFx1NjlCMVxcdTZBMUVcXHU2OUVEXFx1NkExNFxcdTY5RUJcXHU2QTBBXFx1NkExMlxcdTZBQzFcXHU2QTIzXFx1NkExM1xcdTZBNDRcXHU2QTBDXFx1NkE3MlxcdTZBMzZcXHU2QTc4XFx1NkE0N1xcdTZBNjJcXHU2QTU5XFx1NkE2NlxcdTZBNDhcXHU2QTM4XFx1NkEyMlxcdTZBOTBcXHU2QThEXFx1NkFBMFxcdTZBODRcXHU2QUEyXFx1NkFBM1wiXSxcbiAgICAgIFtcIjlmNDBcIiwgXCJcXHU2QTk3XFx1ODYxN1xcdTZBQkJcXHU2QUMzXFx1NkFDMlxcdTZBQjhcXHU2QUIzXFx1NkFBQ1xcdTZBREVcXHU2QUQxXFx1NkFERlxcdTZBQUFcXHU2QURBXFx1NkFFQVxcdTZBRkJcXHU2QjA1XFx1ODYxNlxcdTZBRkFcXHU2QjEyXFx1NkIxNlxcdTlCMzFcXHU2QjFGXFx1NkIzOFxcdTZCMzdcXHU3NkRDXFx1NkIzOVxcdTk4RUVcXHU2QjQ3XFx1NkI0M1xcdTZCNDlcXHU2QjUwXFx1NkI1OVxcdTZCNTRcXHU2QjVCXFx1NkI1RlxcdTZCNjFcXHU2Qjc4XFx1NkI3OVxcdTZCN0ZcXHU2QjgwXFx1NkI4NFxcdTZCODNcXHU2QjhEXFx1NkI5OFxcdTZCOTVcXHU2QjlFXFx1NkJBNFxcdTZCQUFcXHU2QkFCXFx1NkJBRlxcdTZCQjJcXHU2QkIxXFx1NkJCM1xcdTZCQjdcXHU2QkJDXFx1NkJDNlxcdTZCQ0JcXHU2QkQzXFx1NkJERlxcdTZCRUNcXHU2QkVCXFx1NkJGM1xcdTZCRUZcIl0sXG4gICAgICBbXCI5ZjgwXCIsIFwiXFx1OUVCRVxcdTZDMDhcXHU2QzEzXFx1NkMxNFxcdTZDMUJcXHU2QzI0XFx1NkMyM1xcdTZDNUVcXHU2QzU1XFx1NkM2MlxcdTZDNkFcXHU2QzgyXFx1NkM4RFxcdTZDOUFcXHU2QzgxXFx1NkM5QlxcdTZDN0VcXHU2QzY4XFx1NkM3M1xcdTZDOTJcXHU2QzkwXFx1NkNDNFxcdTZDRjFcXHU2Q0QzXFx1NkNCRFxcdTZDRDdcXHU2Q0M1XFx1NkNERFxcdTZDQUVcXHU2Q0IxXFx1NkNCRVxcdTZDQkFcXHU2Q0RCXFx1NkNFRlxcdTZDRDlcXHU2Q0VBXFx1NkQxRlxcdTg4NERcXHU2RDM2XFx1NkQyQlxcdTZEM0RcXHU2RDM4XFx1NkQxOVxcdTZEMzVcXHU2RDMzXFx1NkQxMlxcdTZEMENcXHU2RDYzXFx1NkQ5M1xcdTZENjRcXHU2RDVBXFx1NkQ3OVxcdTZENTlcXHU2RDhFXFx1NkQ5NVxcdTZGRTRcXHU2RDg1XFx1NkRGOVxcdTZFMTVcXHU2RTBBXFx1NkRCNVxcdTZEQzdcXHU2REU2XFx1NkRCOFxcdTZEQzZcXHU2REVDXFx1NkRERVxcdTZEQ0NcXHU2REU4XFx1NkREMlxcdTZEQzVcXHU2REZBXFx1NkREOVxcdTZERTRcXHU2REQ1XFx1NkRFQVxcdTZERUVcXHU2RTJEXFx1NkU2RVxcdTZFMkVcXHU2RTE5XFx1NkU3MlxcdTZFNUZcXHU2RTNFXFx1NkUyM1xcdTZFNkJcXHU2RTJCXFx1NkU3NlxcdTZFNERcXHU2RTFGXFx1NkU0M1xcdTZFM0FcXHU2RTRFXFx1NkUyNFxcdTZFRkZcXHU2RTFEXFx1NkUzOFxcdTZFODJcXHU2RUFBXFx1NkU5OFxcdTZFQzlcXHU2RUI3XFx1NkVEM1xcdTZFQkRcXHU2RUFGXFx1NkVDNFxcdTZFQjJcXHU2RUQ0XFx1NkVENVxcdTZFOEZcXHU2RUE1XFx1NkVDMlxcdTZFOUZcXHU2RjQxXFx1NkYxMVxcdTcwNENcXHU2RUVDXFx1NkVGOFxcdTZFRkVcXHU2RjNGXFx1NkVGMlxcdTZGMzFcXHU2RUVGXFx1NkYzMlxcdTZFQ0NcIl0sXG4gICAgICBbXCJlMDQwXCIsIFwiXFx1NkYzRVxcdTZGMTNcXHU2RUY3XFx1NkY4NlxcdTZGN0FcXHU2Rjc4XFx1NkY4MVxcdTZGODBcXHU2RjZGXFx1NkY1QlxcdTZGRjNcXHU2RjZEXFx1NkY4MlxcdTZGN0NcXHU2RjU4XFx1NkY4RVxcdTZGOTFcXHU2RkMyXFx1NkY2NlxcdTZGQjNcXHU2RkEzXFx1NkZBMVxcdTZGQTRcXHU2RkI5XFx1NkZDNlxcdTZGQUFcXHU2RkRGXFx1NkZENVxcdTZGRUNcXHU2RkQ0XFx1NkZEOFxcdTZGRjFcXHU2RkVFXFx1NkZEQlxcdTcwMDlcXHU3MDBCXFx1NkZGQVxcdTcwMTFcXHU3MDAxXFx1NzAwRlxcdTZGRkVcXHU3MDFCXFx1NzAxQVxcdTZGNzRcXHU3MDFEXFx1NzAxOFxcdTcwMUZcXHU3MDMwXFx1NzAzRVxcdTcwMzJcXHU3MDUxXFx1NzA2M1xcdTcwOTlcXHU3MDkyXFx1NzBBRlxcdTcwRjFcXHU3MEFDXFx1NzBCOFxcdTcwQjNcXHU3MEFFXFx1NzBERlxcdTcwQ0JcXHU3MEREXCJdLFxuICAgICAgW1wiZTA4MFwiLCBcIlxcdTcwRDlcXHU3MTA5XFx1NzBGRFxcdTcxMUNcXHU3MTE5XFx1NzE2NVxcdTcxNTVcXHU3MTg4XFx1NzE2NlxcdTcxNjJcXHU3MTRDXFx1NzE1NlxcdTcxNkNcXHU3MThGXFx1NzFGQlxcdTcxODRcXHU3MTk1XFx1NzFBOFxcdTcxQUNcXHU3MUQ3XFx1NzFCOVxcdTcxQkVcXHU3MUQyXFx1NzFDOVxcdTcxRDRcXHU3MUNFXFx1NzFFMFxcdTcxRUNcXHU3MUU3XFx1NzFGNVxcdTcxRkNcXHU3MUY5XFx1NzFGRlxcdTcyMERcXHU3MjEwXFx1NzIxQlxcdTcyMjhcXHU3MjJEXFx1NzIyQ1xcdTcyMzBcXHU3MjMyXFx1NzIzQlxcdTcyM0NcXHU3MjNGXFx1NzI0MFxcdTcyNDZcXHU3MjRCXFx1NzI1OFxcdTcyNzRcXHU3MjdFXFx1NzI4MlxcdTcyODFcXHU3Mjg3XFx1NzI5MlxcdTcyOTZcXHU3MkEyXFx1NzJBN1xcdTcyQjlcXHU3MkIyXFx1NzJDM1xcdTcyQzZcXHU3MkM0XFx1NzJDRVxcdTcyRDJcXHU3MkUyXFx1NzJFMFxcdTcyRTFcXHU3MkY5XFx1NzJGN1xcdTUwMEZcXHU3MzE3XFx1NzMwQVxcdTczMUNcXHU3MzE2XFx1NzMxRFxcdTczMzRcXHU3MzJGXFx1NzMyOVxcdTczMjVcXHU3MzNFXFx1NzM0RVxcdTczNEZcXHU5RUQ4XFx1NzM1N1xcdTczNkFcXHU3MzY4XFx1NzM3MFxcdTczNzhcXHU3Mzc1XFx1NzM3QlxcdTczN0FcXHU3M0M4XFx1NzNCM1xcdTczQ0VcXHU3M0JCXFx1NzNDMFxcdTczRTVcXHU3M0VFXFx1NzNERVxcdTc0QTJcXHU3NDA1XFx1NzQ2RlxcdTc0MjVcXHU3M0Y4XFx1NzQzMlxcdTc0M0FcXHU3NDU1XFx1NzQzRlxcdTc0NUZcXHU3NDU5XFx1NzQ0MVxcdTc0NUNcXHU3NDY5XFx1NzQ3MFxcdTc0NjNcXHU3NDZBXFx1NzQ3NlxcdTc0N0VcXHU3NDhCXFx1NzQ5RVxcdTc0QTdcXHU3NENBXFx1NzRDRlxcdTc0RDRcXHU3M0YxXCJdLFxuICAgICAgW1wiZTE0MFwiLCBcIlxcdTc0RTBcXHU3NEUzXFx1NzRFN1xcdTc0RTlcXHU3NEVFXFx1NzRGMlxcdTc0RjBcXHU3NEYxXFx1NzRGOFxcdTc0RjdcXHU3NTA0XFx1NzUwM1xcdTc1MDVcXHU3NTBDXFx1NzUwRVxcdTc1MERcXHU3NTE1XFx1NzUxM1xcdTc1MUVcXHU3NTI2XFx1NzUyQ1xcdTc1M0NcXHU3NTQ0XFx1NzU0RFxcdTc1NEFcXHU3NTQ5XFx1NzU1QlxcdTc1NDZcXHU3NTVBXFx1NzU2OVxcdTc1NjRcXHU3NTY3XFx1NzU2QlxcdTc1NkRcXHU3NTc4XFx1NzU3NlxcdTc1ODZcXHU3NTg3XFx1NzU3NFxcdTc1OEFcXHU3NTg5XFx1NzU4MlxcdTc1OTRcXHU3NTlBXFx1NzU5RFxcdTc1QTVcXHU3NUEzXFx1NzVDMlxcdTc1QjNcXHU3NUMzXFx1NzVCNVxcdTc1QkRcXHU3NUI4XFx1NzVCQ1xcdTc1QjFcXHU3NUNEXFx1NzVDQVxcdTc1RDJcXHU3NUQ5XFx1NzVFM1xcdTc1REVcXHU3NUZFXFx1NzVGRlwiXSxcbiAgICAgIFtcImUxODBcIiwgXCJcXHU3NUZDXFx1NzYwMVxcdTc1RjBcXHU3NUZBXFx1NzVGMlxcdTc1RjNcXHU3NjBCXFx1NzYwRFxcdTc2MDlcXHU3NjFGXFx1NzYyN1xcdTc2MjBcXHU3NjIxXFx1NzYyMlxcdTc2MjRcXHU3NjM0XFx1NzYzMFxcdTc2M0JcXHU3NjQ3XFx1NzY0OFxcdTc2NDZcXHU3NjVDXFx1NzY1OFxcdTc2NjFcXHU3NjYyXFx1NzY2OFxcdTc2NjlcXHU3NjZBXFx1NzY2N1xcdTc2NkNcXHU3NjcwXFx1NzY3MlxcdTc2NzZcXHU3Njc4XFx1NzY3Q1xcdTc2ODBcXHU3NjgzXFx1NzY4OFxcdTc2OEJcXHU3NjhFXFx1NzY5NlxcdTc2OTNcXHU3Njk5XFx1NzY5QVxcdTc2QjBcXHU3NkI0XFx1NzZCOFxcdTc2QjlcXHU3NkJBXFx1NzZDMlxcdTc2Q0RcXHU3NkQ2XFx1NzZEMlxcdTc2REVcXHU3NkUxXFx1NzZFNVxcdTc2RTdcXHU3NkVBXFx1ODYyRlxcdTc2RkJcXHU3NzA4XFx1NzcwN1xcdTc3MDRcXHU3NzI5XFx1NzcyNFxcdTc3MUVcXHU3NzI1XFx1NzcyNlxcdTc3MUJcXHU3NzM3XFx1NzczOFxcdTc3NDdcXHU3NzVBXFx1Nzc2OFxcdTc3NkJcXHU3NzVCXFx1Nzc2NVxcdTc3N0ZcXHU3NzdFXFx1Nzc3OVxcdTc3OEVcXHU3NzhCXFx1Nzc5MVxcdTc3QTBcXHU3NzlFXFx1NzdCMFxcdTc3QjZcXHU3N0I5XFx1NzdCRlxcdTc3QkNcXHU3N0JEXFx1NzdCQlxcdTc3QzdcXHU3N0NEXFx1NzdEN1xcdTc3REFcXHU3N0RDXFx1NzdFM1xcdTc3RUVcXHU3N0ZDXFx1NzgwQ1xcdTc4MTJcXHU3OTI2XFx1NzgyMFxcdTc5MkFcXHU3ODQ1XFx1Nzg4RVxcdTc4NzRcXHU3ODg2XFx1Nzg3Q1xcdTc4OUFcXHU3ODhDXFx1NzhBM1xcdTc4QjVcXHU3OEFBXFx1NzhBRlxcdTc4RDFcXHU3OEM2XFx1NzhDQlxcdTc4RDRcXHU3OEJFXFx1NzhCQ1xcdTc4QzVcXHU3OENBXFx1NzhFQ1wiXSxcbiAgICAgIFtcImUyNDBcIiwgXCJcXHU3OEU3XFx1NzhEQVxcdTc4RkRcXHU3OEY0XFx1NzkwN1xcdTc5MTJcXHU3OTExXFx1NzkxOVxcdTc5MkNcXHU3OTJCXFx1Nzk0MFxcdTc5NjBcXHU3OTU3XFx1Nzk1RlxcdTc5NUFcXHU3OTU1XFx1Nzk1M1xcdTc5N0FcXHU3OTdGXFx1Nzk4QVxcdTc5OURcXHU3OUE3XFx1OUY0QlxcdTc5QUFcXHU3OUFFXFx1NzlCM1xcdTc5QjlcXHU3OUJBXFx1NzlDOVxcdTc5RDVcXHU3OUU3XFx1NzlFQ1xcdTc5RTFcXHU3OUUzXFx1N0EwOFxcdTdBMERcXHU3QTE4XFx1N0ExOVxcdTdBMjBcXHU3QTFGXFx1Nzk4MFxcdTdBMzFcXHU3QTNCXFx1N0EzRVxcdTdBMzdcXHU3QTQzXFx1N0E1N1xcdTdBNDlcXHU3QTYxXFx1N0E2MlxcdTdBNjlcXHU5RjlEXFx1N0E3MFxcdTdBNzlcXHU3QTdEXFx1N0E4OFxcdTdBOTdcXHU3QTk1XFx1N0E5OFxcdTdBOTZcXHU3QUE5XFx1N0FDOFxcdTdBQjBcIl0sXG4gICAgICBbXCJlMjgwXCIsIFwiXFx1N0FCNlxcdTdBQzVcXHU3QUM0XFx1N0FCRlxcdTkwODNcXHU3QUM3XFx1N0FDQVxcdTdBQ0RcXHU3QUNGXFx1N0FENVxcdTdBRDNcXHU3QUQ5XFx1N0FEQVxcdTdBRERcXHU3QUUxXFx1N0FFMlxcdTdBRTZcXHU3QUVEXFx1N0FGMFxcdTdCMDJcXHU3QjBGXFx1N0IwQVxcdTdCMDZcXHU3QjMzXFx1N0IxOFxcdTdCMTlcXHU3QjFFXFx1N0IzNVxcdTdCMjhcXHU3QjM2XFx1N0I1MFxcdTdCN0FcXHU3QjA0XFx1N0I0RFxcdTdCMEJcXHU3QjRDXFx1N0I0NVxcdTdCNzVcXHU3QjY1XFx1N0I3NFxcdTdCNjdcXHU3QjcwXFx1N0I3MVxcdTdCNkNcXHU3QjZFXFx1N0I5RFxcdTdCOThcXHU3QjlGXFx1N0I4RFxcdTdCOUNcXHU3QjlBXFx1N0I4QlxcdTdCOTJcXHU3QjhGXFx1N0I1RFxcdTdCOTlcXHU3QkNCXFx1N0JDMVxcdTdCQ0NcXHU3QkNGXFx1N0JCNFxcdTdCQzZcXHU3QkREXFx1N0JFOVxcdTdDMTFcXHU3QzE0XFx1N0JFNlxcdTdCRTVcXHU3QzYwXFx1N0MwMFxcdTdDMDdcXHU3QzEzXFx1N0JGM1xcdTdCRjdcXHU3QzE3XFx1N0MwRFxcdTdCRjZcXHU3QzIzXFx1N0MyN1xcdTdDMkFcXHU3QzFGXFx1N0MzN1xcdTdDMkJcXHU3QzNEXFx1N0M0Q1xcdTdDNDNcXHU3QzU0XFx1N0M0RlxcdTdDNDBcXHU3QzUwXFx1N0M1OFxcdTdDNUZcXHU3QzY0XFx1N0M1NlxcdTdDNjVcXHU3QzZDXFx1N0M3NVxcdTdDODNcXHU3QzkwXFx1N0NBNFxcdTdDQURcXHU3Q0EyXFx1N0NBQlxcdTdDQTFcXHU3Q0E4XFx1N0NCM1xcdTdDQjJcXHU3Q0IxXFx1N0NBRVxcdTdDQjlcXHU3Q0JEXFx1N0NDMFxcdTdDQzVcXHU3Q0MyXFx1N0NEOFxcdTdDRDJcXHU3Q0RDXFx1N0NFMlxcdTlCM0JcXHU3Q0VGXFx1N0NGMlxcdTdDRjRcXHU3Q0Y2XFx1N0NGQVxcdTdEMDZcIl0sXG4gICAgICBbXCJlMzQwXCIsIFwiXFx1N0QwMlxcdTdEMUNcXHU3RDE1XFx1N0QwQVxcdTdENDVcXHU3RDRCXFx1N0QyRVxcdTdEMzJcXHU3RDNGXFx1N0QzNVxcdTdENDZcXHU3RDczXFx1N0Q1NlxcdTdENEVcXHU3RDcyXFx1N0Q2OFxcdTdENkVcXHU3RDRGXFx1N0Q2M1xcdTdEOTNcXHU3RDg5XFx1N0Q1QlxcdTdEOEZcXHU3RDdEXFx1N0Q5QlxcdTdEQkFcXHU3REFFXFx1N0RBM1xcdTdEQjVcXHU3REM3XFx1N0RCRFxcdTdEQUJcXHU3RTNEXFx1N0RBMlxcdTdEQUZcXHU3RERDXFx1N0RCOFxcdTdEOUZcXHU3REIwXFx1N0REOFxcdTdERERcXHU3REU0XFx1N0RERVxcdTdERkJcXHU3REYyXFx1N0RFMVxcdTdFMDVcXHU3RTBBXFx1N0UyM1xcdTdFMjFcXHU3RTEyXFx1N0UzMVxcdTdFMUZcXHU3RTA5XFx1N0UwQlxcdTdFMjJcXHU3RTQ2XFx1N0U2NlxcdTdFM0JcXHU3RTM1XFx1N0UzOVxcdTdFNDNcXHU3RTM3XCJdLFxuICAgICAgW1wiZTM4MFwiLCBcIlxcdTdFMzJcXHU3RTNBXFx1N0U2N1xcdTdFNURcXHU3RTU2XFx1N0U1RVxcdTdFNTlcXHU3RTVBXFx1N0U3OVxcdTdFNkFcXHU3RTY5XFx1N0U3Q1xcdTdFN0JcXHU3RTgzXFx1N0RENVxcdTdFN0RcXHU4RkFFXFx1N0U3RlxcdTdFODhcXHU3RTg5XFx1N0U4Q1xcdTdFOTJcXHU3RTkwXFx1N0U5M1xcdTdFOTRcXHU3RTk2XFx1N0U4RVxcdTdFOUJcXHU3RTlDXFx1N0YzOFxcdTdGM0FcXHU3RjQ1XFx1N0Y0Q1xcdTdGNERcXHU3RjRFXFx1N0Y1MFxcdTdGNTFcXHU3RjU1XFx1N0Y1NFxcdTdGNThcXHU3RjVGXFx1N0Y2MFxcdTdGNjhcXHU3RjY5XFx1N0Y2N1xcdTdGNzhcXHU3RjgyXFx1N0Y4NlxcdTdGODNcXHU3Rjg4XFx1N0Y4N1xcdTdGOENcXHU3Rjk0XFx1N0Y5RVxcdTdGOURcXHU3RjlBXFx1N0ZBM1xcdTdGQUZcXHU3RkIyXFx1N0ZCOVxcdTdGQUVcXHU3RkI2XFx1N0ZCOFxcdThCNzFcXHU3RkM1XFx1N0ZDNlxcdTdGQ0FcXHU3RkQ1XFx1N0ZENFxcdTdGRTFcXHU3RkU2XFx1N0ZFOVxcdTdGRjNcXHU3RkY5XFx1OThEQ1xcdTgwMDZcXHU4MDA0XFx1ODAwQlxcdTgwMTJcXHU4MDE4XFx1ODAxOVxcdTgwMUNcXHU4MDIxXFx1ODAyOFxcdTgwM0ZcXHU4MDNCXFx1ODA0QVxcdTgwNDZcXHU4MDUyXFx1ODA1OFxcdTgwNUFcXHU4MDVGXFx1ODA2MlxcdTgwNjhcXHU4MDczXFx1ODA3MlxcdTgwNzBcXHU4MDc2XFx1ODA3OVxcdTgwN0RcXHU4MDdGXFx1ODA4NFxcdTgwODZcXHU4MDg1XFx1ODA5QlxcdTgwOTNcXHU4MDlBXFx1ODBBRFxcdTUxOTBcXHU4MEFDXFx1ODBEQlxcdTgwRTVcXHU4MEQ5XFx1ODBERFxcdTgwQzRcXHU4MERBXFx1ODBENlxcdTgxMDlcXHU4MEVGXFx1ODBGMVxcdTgxMUJcXHU4MTI5XFx1ODEyM1xcdTgxMkZcXHU4MTRCXCJdLFxuICAgICAgW1wiZTQ0MFwiLCBcIlxcdTk2OEJcXHU4MTQ2XFx1ODEzRVxcdTgxNTNcXHU4MTUxXFx1ODBGQ1xcdTgxNzFcXHU4MTZFXFx1ODE2NVxcdTgxNjZcXHU4MTc0XFx1ODE4M1xcdTgxODhcXHU4MThBXFx1ODE4MFxcdTgxODJcXHU4MUEwXFx1ODE5NVxcdTgxQTRcXHU4MUEzXFx1ODE1RlxcdTgxOTNcXHU4MUE5XFx1ODFCMFxcdTgxQjVcXHU4MUJFXFx1ODFCOFxcdTgxQkRcXHU4MUMwXFx1ODFDMlxcdTgxQkFcXHU4MUM5XFx1ODFDRFxcdTgxRDFcXHU4MUQ5XFx1ODFEOFxcdTgxQzhcXHU4MURBXFx1ODFERlxcdTgxRTBcXHU4MUU3XFx1ODFGQVxcdTgxRkJcXHU4MUZFXFx1ODIwMVxcdTgyMDJcXHU4MjA1XFx1ODIwN1xcdTgyMEFcXHU4MjBEXFx1ODIxMFxcdTgyMTZcXHU4MjI5XFx1ODIyQlxcdTgyMzhcXHU4MjMzXFx1ODI0MFxcdTgyNTlcXHU4MjU4XFx1ODI1RFxcdTgyNUFcXHU4MjVGXFx1ODI2NFwiXSxcbiAgICAgIFtcImU0ODBcIiwgXCJcXHU4MjYyXFx1ODI2OFxcdTgyNkFcXHU4MjZCXFx1ODIyRVxcdTgyNzFcXHU4Mjc3XFx1ODI3OFxcdTgyN0VcXHU4MjhEXFx1ODI5MlxcdTgyQUJcXHU4MjlGXFx1ODJCQlxcdTgyQUNcXHU4MkUxXFx1ODJFM1xcdTgyREZcXHU4MkQyXFx1ODJGNFxcdTgyRjNcXHU4MkZBXFx1ODM5M1xcdTgzMDNcXHU4MkZCXFx1ODJGOVxcdTgyREVcXHU4MzA2XFx1ODJEQ1xcdTgzMDlcXHU4MkQ5XFx1ODMzNVxcdTgzMzRcXHU4MzE2XFx1ODMzMlxcdTgzMzFcXHU4MzQwXFx1ODMzOVxcdTgzNTBcXHU4MzQ1XFx1ODMyRlxcdTgzMkJcXHU4MzE3XFx1ODMxOFxcdTgzODVcXHU4MzlBXFx1ODNBQVxcdTgzOUZcXHU4M0EyXFx1ODM5NlxcdTgzMjNcXHU4MzhFXFx1ODM4N1xcdTgzOEFcXHU4MzdDXFx1ODNCNVxcdTgzNzNcXHU4Mzc1XFx1ODNBMFxcdTgzODlcXHU4M0E4XFx1ODNGNFxcdTg0MTNcXHU4M0VCXFx1ODNDRVxcdTgzRkRcXHU4NDAzXFx1ODNEOFxcdTg0MEJcXHU4M0MxXFx1ODNGN1xcdTg0MDdcXHU4M0UwXFx1ODNGMlxcdTg0MERcXHU4NDIyXFx1ODQyMFxcdTgzQkRcXHU4NDM4XFx1ODUwNlxcdTgzRkJcXHU4NDZEXFx1ODQyQVxcdTg0M0NcXHU4NTVBXFx1ODQ4NFxcdTg0NzdcXHU4NDZCXFx1ODRBRFxcdTg0NkVcXHU4NDgyXFx1ODQ2OVxcdTg0NDZcXHU4NDJDXFx1ODQ2RlxcdTg0NzlcXHU4NDM1XFx1ODRDQVxcdTg0NjJcXHU4NEI5XFx1ODRCRlxcdTg0OUZcXHU4NEQ5XFx1ODRDRFxcdTg0QkJcXHU4NERBXFx1ODREMFxcdTg0QzFcXHU4NEM2XFx1ODRENlxcdTg0QTFcXHU4NTIxXFx1ODRGRlxcdTg0RjRcXHU4NTE3XFx1ODUxOFxcdTg1MkNcXHU4NTFGXFx1ODUxNVxcdTg1MTRcXHU4NEZDXFx1ODU0MFxcdTg1NjNcXHU4NTU4XFx1ODU0OFwiXSxcbiAgICAgIFtcImU1NDBcIiwgXCJcXHU4NTQxXFx1ODYwMlxcdTg1NEJcXHU4NTU1XFx1ODU4MFxcdTg1QTRcXHU4NTg4XFx1ODU5MVxcdTg1OEFcXHU4NUE4XFx1ODU2RFxcdTg1OTRcXHU4NTlCXFx1ODVFQVxcdTg1ODdcXHU4NTlDXFx1ODU3N1xcdTg1N0VcXHU4NTkwXFx1ODVDOVxcdTg1QkFcXHU4NUNGXFx1ODVCOVxcdTg1RDBcXHU4NUQ1XFx1ODVERFxcdTg1RTVcXHU4NURDXFx1ODVGOVxcdTg2MEFcXHU4NjEzXFx1ODYwQlxcdTg1RkVcXHU4NUZBXFx1ODYwNlxcdTg2MjJcXHU4NjFBXFx1ODYzMFxcdTg2M0ZcXHU4NjREXFx1NEU1NVxcdTg2NTRcXHU4NjVGXFx1ODY2N1xcdTg2NzFcXHU4NjkzXFx1ODZBM1xcdTg2QTlcXHU4NkFBXFx1ODY4QlxcdTg2OENcXHU4NkI2XFx1ODZBRlxcdTg2QzRcXHU4NkM2XFx1ODZCMFxcdTg2QzlcXHU4ODIzXFx1ODZBQlxcdTg2RDRcXHU4NkRFXFx1ODZFOVxcdTg2RUNcIl0sXG4gICAgICBbXCJlNTgwXCIsIFwiXFx1ODZERlxcdTg2REJcXHU4NkVGXFx1ODcxMlxcdTg3MDZcXHU4NzA4XFx1ODcwMFxcdTg3MDNcXHU4NkZCXFx1ODcxMVxcdTg3MDlcXHU4NzBEXFx1ODZGOVxcdTg3MEFcXHU4NzM0XFx1ODczRlxcdTg3MzdcXHU4NzNCXFx1ODcyNVxcdTg3MjlcXHU4NzFBXFx1ODc2MFxcdTg3NUZcXHU4Nzc4XFx1ODc0Q1xcdTg3NEVcXHU4Nzc0XFx1ODc1N1xcdTg3NjhcXHU4NzZFXFx1ODc1OVxcdTg3NTNcXHU4NzYzXFx1ODc2QVxcdTg4MDVcXHU4N0EyXFx1ODc5RlxcdTg3ODJcXHU4N0FGXFx1ODdDQlxcdTg3QkRcXHU4N0MwXFx1ODdEMFxcdTk2RDZcXHU4N0FCXFx1ODdDNFxcdTg3QjNcXHU4N0M3XFx1ODdDNlxcdTg3QkJcXHU4N0VGXFx1ODdGMlxcdTg3RTBcXHU4ODBGXFx1ODgwRFxcdTg3RkVcXHU4N0Y2XFx1ODdGN1xcdTg4MEVcXHU4N0QyXFx1ODgxMVxcdTg4MTZcXHU4ODE1XFx1ODgyMlxcdTg4MjFcXHU4ODMxXFx1ODgzNlxcdTg4MzlcXHU4ODI3XFx1ODgzQlxcdTg4NDRcXHU4ODQyXFx1ODg1MlxcdTg4NTlcXHU4ODVFXFx1ODg2MlxcdTg4NkJcXHU4ODgxXFx1ODg3RVxcdTg4OUVcXHU4ODc1XFx1ODg3RFxcdTg4QjVcXHU4ODcyXFx1ODg4MlxcdTg4OTdcXHU4ODkyXFx1ODhBRVxcdTg4OTlcXHU4OEEyXFx1ODg4RFxcdTg4QTRcXHU4OEIwXFx1ODhCRlxcdTg4QjFcXHU4OEMzXFx1ODhDNFxcdTg4RDRcXHU4OEQ4XFx1ODhEOVxcdTg4RERcXHU4OEY5XFx1ODkwMlxcdTg4RkNcXHU4OEY0XFx1ODhFOFxcdTg4RjJcXHU4OTA0XFx1ODkwQ1xcdTg5MEFcXHU4OTEzXFx1ODk0M1xcdTg5MUVcXHU4OTI1XFx1ODkyQVxcdTg5MkJcXHU4OTQxXFx1ODk0NFxcdTg5M0JcXHU4OTM2XFx1ODkzOFxcdTg5NENcXHU4OTFEXFx1ODk2MFxcdTg5NUVcIl0sXG4gICAgICBbXCJlNjQwXCIsIFwiXFx1ODk2NlxcdTg5NjRcXHU4OTZEXFx1ODk2QVxcdTg5NkZcXHU4OTc0XFx1ODk3N1xcdTg5N0VcXHU4OTgzXFx1ODk4OFxcdTg5OEFcXHU4OTkzXFx1ODk5OFxcdTg5QTFcXHU4OUE5XFx1ODlBNlxcdTg5QUNcXHU4OUFGXFx1ODlCMlxcdTg5QkFcXHU4OUJEXFx1ODlCRlxcdTg5QzBcXHU4OURBXFx1ODlEQ1xcdTg5RERcXHU4OUU3XFx1ODlGNFxcdTg5RjhcXHU4QTAzXFx1OEExNlxcdThBMTBcXHU4QTBDXFx1OEExQlxcdThBMURcXHU4QTI1XFx1OEEzNlxcdThBNDFcXHU4QTVCXFx1OEE1MlxcdThBNDZcXHU4QTQ4XFx1OEE3Q1xcdThBNkRcXHU4QTZDXFx1OEE2MlxcdThBODVcXHU4QTgyXFx1OEE4NFxcdThBQThcXHU4QUExXFx1OEE5MVxcdThBQTVcXHU4QUE2XFx1OEE5QVxcdThBQTNcXHU4QUM0XFx1OEFDRFxcdThBQzJcXHU4QURBXFx1OEFFQlxcdThBRjNcXHU4QUU3XCJdLFxuICAgICAgW1wiZTY4MFwiLCBcIlxcdThBRTRcXHU4QUYxXFx1OEIxNFxcdThBRTBcXHU4QUUyXFx1OEFGN1xcdThBREVcXHU4QURCXFx1OEIwQ1xcdThCMDdcXHU4QjFBXFx1OEFFMVxcdThCMTZcXHU4QjEwXFx1OEIxN1xcdThCMjBcXHU4QjMzXFx1OTdBQlxcdThCMjZcXHU4QjJCXFx1OEIzRVxcdThCMjhcXHU4QjQxXFx1OEI0Q1xcdThCNEZcXHU4QjRFXFx1OEI0OVxcdThCNTZcXHU4QjVCXFx1OEI1QVxcdThCNkJcXHU4QjVGXFx1OEI2Q1xcdThCNkZcXHU4Qjc0XFx1OEI3RFxcdThCODBcXHU4QjhDXFx1OEI4RVxcdThCOTJcXHU4QjkzXFx1OEI5NlxcdThCOTlcXHU4QjlBXFx1OEMzQVxcdThDNDFcXHU4QzNGXFx1OEM0OFxcdThDNENcXHU4QzRFXFx1OEM1MFxcdThDNTVcXHU4QzYyXFx1OEM2Q1xcdThDNzhcXHU4QzdBXFx1OEM4MlxcdThDODlcXHU4Qzg1XFx1OEM4QVxcdThDOERcXHU4QzhFXFx1OEM5NFxcdThDN0NcXHU4Qzk4XFx1NjIxRFxcdThDQURcXHU4Q0FBXFx1OENCRFxcdThDQjJcXHU4Q0IzXFx1OENBRVxcdThDQjZcXHU4Q0M4XFx1OENDMVxcdThDRTRcXHU4Q0UzXFx1OENEQVxcdThDRkRcXHU4Q0ZBXFx1OENGQlxcdThEMDRcXHU4RDA1XFx1OEQwQVxcdThEMDdcXHU4RDBGXFx1OEQwRFxcdThEMTBcXHU5RjRFXFx1OEQxM1xcdThDQ0RcXHU4RDE0XFx1OEQxNlxcdThENjdcXHU4RDZEXFx1OEQ3MVxcdThENzNcXHU4RDgxXFx1OEQ5OVxcdThEQzJcXHU4REJFXFx1OERCQVxcdThEQ0ZcXHU4RERBXFx1OERENlxcdThEQ0NcXHU4RERCXFx1OERDQlxcdThERUFcXHU4REVCXFx1OERERlxcdThERTNcXHU4REZDXFx1OEUwOFxcdThFMDlcXHU4REZGXFx1OEUxRFxcdThFMUVcXHU4RTEwXFx1OEUxRlxcdThFNDJcXHU4RTM1XFx1OEUzMFxcdThFMzRcXHU4RTRBXCJdLFxuICAgICAgW1wiZTc0MFwiLCBcIlxcdThFNDdcXHU4RTQ5XFx1OEU0Q1xcdThFNTBcXHU4RTQ4XFx1OEU1OVxcdThFNjRcXHU4RTYwXFx1OEUyQVxcdThFNjNcXHU4RTU1XFx1OEU3NlxcdThFNzJcXHU4RTdDXFx1OEU4MVxcdThFODdcXHU4RTg1XFx1OEU4NFxcdThFOEJcXHU4RThBXFx1OEU5M1xcdThFOTFcXHU4RTk0XFx1OEU5OVxcdThFQUFcXHU4RUExXFx1OEVBQ1xcdThFQjBcXHU4RUM2XFx1OEVCMVxcdThFQkVcXHU4RUM1XFx1OEVDOFxcdThFQ0JcXHU4RURCXFx1OEVFM1xcdThFRkNcXHU4RUZCXFx1OEVFQlxcdThFRkVcXHU4RjBBXFx1OEYwNVxcdThGMTVcXHU4RjEyXFx1OEYxOVxcdThGMTNcXHU4RjFDXFx1OEYxRlxcdThGMUJcXHU4RjBDXFx1OEYyNlxcdThGMzNcXHU4RjNCXFx1OEYzOVxcdThGNDVcXHU4RjQyXFx1OEYzRVxcdThGNENcXHU4RjQ5XFx1OEY0NlxcdThGNEVcXHU4RjU3XFx1OEY1Q1wiXSxcbiAgICAgIFtcImU3ODBcIiwgXCJcXHU4RjYyXFx1OEY2M1xcdThGNjRcXHU4RjlDXFx1OEY5RlxcdThGQTNcXHU4RkFEXFx1OEZBRlxcdThGQjdcXHU4RkRBXFx1OEZFNVxcdThGRTJcXHU4RkVBXFx1OEZFRlxcdTkwODdcXHU4RkY0XFx1OTAwNVxcdThGRjlcXHU4RkZBXFx1OTAxMVxcdTkwMTVcXHU5MDIxXFx1OTAwRFxcdTkwMUVcXHU5MDE2XFx1OTAwQlxcdTkwMjdcXHU5MDM2XFx1OTAzNVxcdTkwMzlcXHU4RkY4XFx1OTA0RlxcdTkwNTBcXHU5MDUxXFx1OTA1MlxcdTkwMEVcXHU5MDQ5XFx1OTAzRVxcdTkwNTZcXHU5MDU4XFx1OTA1RVxcdTkwNjhcXHU5MDZGXFx1OTA3NlxcdTk2QThcXHU5MDcyXFx1OTA4MlxcdTkwN0RcXHU5MDgxXFx1OTA4MFxcdTkwOEFcXHU5MDg5XFx1OTA4RlxcdTkwQThcXHU5MEFGXFx1OTBCMVxcdTkwQjVcXHU5MEUyXFx1OTBFNFxcdTYyNDhcXHU5MERCXFx1OTEwMlxcdTkxMTJcXHU5MTE5XFx1OTEzMlxcdTkxMzBcXHU5MTRBXFx1OTE1NlxcdTkxNThcXHU5MTYzXFx1OTE2NVxcdTkxNjlcXHU5MTczXFx1OTE3MlxcdTkxOEJcXHU5MTg5XFx1OTE4MlxcdTkxQTJcXHU5MUFCXFx1OTFBRlxcdTkxQUFcXHU5MUI1XFx1OTFCNFxcdTkxQkFcXHU5MUMwXFx1OTFDMVxcdTkxQzlcXHU5MUNCXFx1OTFEMFxcdTkxRDZcXHU5MURGXFx1OTFFMVxcdTkxREJcXHU5MUZDXFx1OTFGNVxcdTkxRjZcXHU5MjFFXFx1OTFGRlxcdTkyMTRcXHU5MjJDXFx1OTIxNVxcdTkyMTFcXHU5MjVFXFx1OTI1N1xcdTkyNDVcXHU5MjQ5XFx1OTI2NFxcdTkyNDhcXHU5Mjk1XFx1OTIzRlxcdTkyNEJcXHU5MjUwXFx1OTI5Q1xcdTkyOTZcXHU5MjkzXFx1OTI5QlxcdTkyNUFcXHU5MkNGXFx1OTJCOVxcdTkyQjdcXHU5MkU5XFx1OTMwRlxcdTkyRkFcXHU5MzQ0XFx1OTMyRVwiXSxcbiAgICAgIFtcImU4NDBcIiwgXCJcXHU5MzE5XFx1OTMyMlxcdTkzMUFcXHU5MzIzXFx1OTMzQVxcdTkzMzVcXHU5MzNCXFx1OTM1Q1xcdTkzNjBcXHU5MzdDXFx1OTM2RVxcdTkzNTZcXHU5M0IwXFx1OTNBQ1xcdTkzQURcXHU5Mzk0XFx1OTNCOVxcdTkzRDZcXHU5M0Q3XFx1OTNFOFxcdTkzRTVcXHU5M0Q4XFx1OTNDM1xcdTkzRERcXHU5M0QwXFx1OTNDOFxcdTkzRTRcXHU5NDFBXFx1OTQxNFxcdTk0MTNcXHU5NDAzXFx1OTQwN1xcdTk0MTBcXHU5NDM2XFx1OTQyQlxcdTk0MzVcXHU5NDIxXFx1OTQzQVxcdTk0NDFcXHU5NDUyXFx1OTQ0NFxcdTk0NUJcXHU5NDYwXFx1OTQ2MlxcdTk0NUVcXHU5NDZBXFx1OTIyOVxcdTk0NzBcXHU5NDc1XFx1OTQ3N1xcdTk0N0RcXHU5NDVBXFx1OTQ3Q1xcdTk0N0VcXHU5NDgxXFx1OTQ3RlxcdTk1ODJcXHU5NTg3XFx1OTU4QVxcdTk1OTRcXHU5NTk2XFx1OTU5OFxcdTk1OTlcIl0sXG4gICAgICBbXCJlODgwXCIsIFwiXFx1OTVBMFxcdTk1QThcXHU5NUE3XFx1OTVBRFxcdTk1QkNcXHU5NUJCXFx1OTVCOVxcdTk1QkVcXHU5NUNBXFx1NkZGNlxcdTk1QzNcXHU5NUNEXFx1OTVDQ1xcdTk1RDVcXHU5NUQ0XFx1OTVENlxcdTk1RENcXHU5NUUxXFx1OTVFNVxcdTk1RTJcXHU5NjIxXFx1OTYyOFxcdTk2MkVcXHU5NjJGXFx1OTY0MlxcdTk2NENcXHU5NjRGXFx1OTY0QlxcdTk2NzdcXHU5NjVDXFx1OTY1RVxcdTk2NURcXHU5NjVGXFx1OTY2NlxcdTk2NzJcXHU5NjZDXFx1OTY4RFxcdTk2OThcXHU5Njk1XFx1OTY5N1xcdTk2QUFcXHU5NkE3XFx1OTZCMVxcdTk2QjJcXHU5NkIwXFx1OTZCNFxcdTk2QjZcXHU5NkI4XFx1OTZCOVxcdTk2Q0VcXHU5NkNCXFx1OTZDOVxcdTk2Q0RcXHU4OTREXFx1OTZEQ1xcdTk3MERcXHU5NkQ1XFx1OTZGOVxcdTk3MDRcXHU5NzA2XFx1OTcwOFxcdTk3MTNcXHU5NzBFXFx1OTcxMVxcdTk3MEZcXHU5NzE2XFx1OTcxOVxcdTk3MjRcXHU5NzJBXFx1OTczMFxcdTk3MzlcXHU5NzNEXFx1OTczRVxcdTk3NDRcXHU5NzQ2XFx1OTc0OFxcdTk3NDJcXHU5NzQ5XFx1OTc1Q1xcdTk3NjBcXHU5NzY0XFx1OTc2NlxcdTk3NjhcXHU1MkQyXFx1OTc2QlxcdTk3NzFcXHU5Nzc5XFx1OTc4NVxcdTk3N0NcXHU5NzgxXFx1OTc3QVxcdTk3ODZcXHU5NzhCXFx1OTc4RlxcdTk3OTBcXHU5NzlDXFx1OTdBOFxcdTk3QTZcXHU5N0EzXFx1OTdCM1xcdTk3QjRcXHU5N0MzXFx1OTdDNlxcdTk3QzhcXHU5N0NCXFx1OTdEQ1xcdTk3RURcXHU5RjRGXFx1OTdGMlxcdTdBREZcXHU5N0Y2XFx1OTdGNVxcdTk4MEZcXHU5ODBDXFx1OTgzOFxcdTk4MjRcXHU5ODIxXFx1OTgzN1xcdTk4M0RcXHU5ODQ2XFx1OTg0RlxcdTk4NEJcXHU5ODZCXFx1OTg2RlxcdTk4NzBcIl0sXG4gICAgICBbXCJlOTQwXCIsIFwiXFx1OTg3MVxcdTk4NzRcXHU5ODczXFx1OThBQVxcdTk4QUZcXHU5OEIxXFx1OThCNlxcdTk4QzRcXHU5OEMzXFx1OThDNlxcdTk4RTlcXHU5OEVCXFx1OTkwM1xcdTk5MDlcXHU5OTEyXFx1OTkxNFxcdTk5MThcXHU5OTIxXFx1OTkxRFxcdTk5MUVcXHU5OTI0XFx1OTkyMFxcdTk5MkNcXHU5OTJFXFx1OTkzRFxcdTk5M0VcXHU5OTQyXFx1OTk0OVxcdTk5NDVcXHU5OTUwXFx1OTk0QlxcdTk5NTFcXHU5OTUyXFx1OTk0Q1xcdTk5NTVcXHU5OTk3XFx1OTk5OFxcdTk5QTVcXHU5OUFEXFx1OTlBRVxcdTk5QkNcXHU5OURGXFx1OTlEQlxcdTk5RERcXHU5OUQ4XFx1OTlEMVxcdTk5RURcXHU5OUVFXFx1OTlGMVxcdTk5RjJcXHU5OUZCXFx1OTlGOFxcdTlBMDFcXHU5QTBGXFx1OUEwNVxcdTk5RTJcXHU5QTE5XFx1OUEyQlxcdTlBMzdcXHU5QTQ1XFx1OUE0MlxcdTlBNDBcXHU5QTQzXCJdLFxuICAgICAgW1wiZTk4MFwiLCBcIlxcdTlBM0VcXHU5QTU1XFx1OUE0RFxcdTlBNUJcXHU5QTU3XFx1OUE1RlxcdTlBNjJcXHU5QTY1XFx1OUE2NFxcdTlBNjlcXHU5QTZCXFx1OUE2QVxcdTlBQURcXHU5QUIwXFx1OUFCQ1xcdTlBQzBcXHU5QUNGXFx1OUFEMVxcdTlBRDNcXHU5QUQ0XFx1OUFERVxcdTlBREZcXHU5QUUyXFx1OUFFM1xcdTlBRTZcXHU5QUVGXFx1OUFFQlxcdTlBRUVcXHU5QUY0XFx1OUFGMVxcdTlBRjdcXHU5QUZCXFx1OUIwNlxcdTlCMThcXHU5QjFBXFx1OUIxRlxcdTlCMjJcXHU5QjIzXFx1OUIyNVxcdTlCMjdcXHU5QjI4XFx1OUIyOVxcdTlCMkFcXHU5QjJFXFx1OUIyRlxcdTlCMzJcXHU5QjQ0XFx1OUI0M1xcdTlCNEZcXHU5QjREXFx1OUI0RVxcdTlCNTFcXHU5QjU4XFx1OUI3NFxcdTlCOTNcXHU5QjgzXFx1OUI5MVxcdTlCOTZcXHU5Qjk3XFx1OUI5RlxcdTlCQTBcXHU5QkE4XFx1OUJCNFxcdTlCQzBcXHU5QkNBXFx1OUJCOVxcdTlCQzZcXHU5QkNGXFx1OUJEMVxcdTlCRDJcXHU5QkUzXFx1OUJFMlxcdTlCRTRcXHU5QkQ0XFx1OUJFMVxcdTlDM0FcXHU5QkYyXFx1OUJGMVxcdTlCRjBcXHU5QzE1XFx1OUMxNFxcdTlDMDlcXHU5QzEzXFx1OUMwQ1xcdTlDMDZcXHU5QzA4XFx1OUMxMlxcdTlDMEFcXHU5QzA0XFx1OUMyRVxcdTlDMUJcXHU5QzI1XFx1OUMyNFxcdTlDMjFcXHU5QzMwXFx1OUM0N1xcdTlDMzJcXHU5QzQ2XFx1OUMzRVxcdTlDNUFcXHU5QzYwXFx1OUM2N1xcdTlDNzZcXHU5Qzc4XFx1OUNFN1xcdTlDRUNcXHU5Q0YwXFx1OUQwOVxcdTlEMDhcXHU5Q0VCXFx1OUQwM1xcdTlEMDZcXHU5RDJBXFx1OUQyNlxcdTlEQUZcXHU5RDIzXFx1OUQxRlxcdTlENDRcXHU5RDE1XFx1OUQxMlxcdTlENDFcXHU5RDNGXFx1OUQzRVxcdTlENDZcXHU5RDQ4XCJdLFxuICAgICAgW1wiZWE0MFwiLCBcIlxcdTlENURcXHU5RDVFXFx1OUQ2NFxcdTlENTFcXHU5RDUwXFx1OUQ1OVxcdTlENzJcXHU5RDg5XFx1OUQ4N1xcdTlEQUJcXHU5RDZGXFx1OUQ3QVxcdTlEOUFcXHU5REE0XFx1OURBOVxcdTlEQjJcXHU5REM0XFx1OURDMVxcdTlEQkJcXHU5REI4XFx1OURCQVxcdTlEQzZcXHU5RENGXFx1OURDMlxcdTlERDlcXHU5REQzXFx1OURGOFxcdTlERTZcXHU5REVEXFx1OURFRlxcdTlERkRcXHU5RTFBXFx1OUUxQlxcdTlFMUVcXHU5RTc1XFx1OUU3OVxcdTlFN0RcXHU5RTgxXFx1OUU4OFxcdTlFOEJcXHU5RThDXFx1OUU5MlxcdTlFOTVcXHU5RTkxXFx1OUU5RFxcdTlFQTVcXHU5RUE5XFx1OUVCOFxcdTlFQUFcXHU5RUFEXFx1OTc2MVxcdTlFQ0NcXHU5RUNFXFx1OUVDRlxcdTlFRDBcXHU5RUQ0XFx1OUVEQ1xcdTlFREVcXHU5RUREXFx1OUVFMFxcdTlFRTVcXHU5RUU4XFx1OUVFRlwiXSxcbiAgICAgIFtcImVhODBcIiwgXCJcXHU5RUY0XFx1OUVGNlxcdTlFRjdcXHU5RUY5XFx1OUVGQlxcdTlFRkNcXHU5RUZEXFx1OUYwN1xcdTlGMDhcXHU3NkI3XFx1OUYxNVxcdTlGMjFcXHU5RjJDXFx1OUYzRVxcdTlGNEFcXHU5RjUyXFx1OUY1NFxcdTlGNjNcXHU5RjVGXFx1OUY2MFxcdTlGNjFcXHU5RjY2XFx1OUY2N1xcdTlGNkNcXHU5RjZBXFx1OUY3N1xcdTlGNzJcXHU5Rjc2XFx1OUY5NVxcdTlGOUNcXHU5RkEwXFx1NTgyRlxcdTY5QzdcXHU5MDU5XFx1NzQ2NFxcdTUxRENcXHU3MTk5XCJdLFxuICAgICAgW1wiZWQ0MFwiLCBcIlxcdTdFOEFcXHU4OTFDXFx1OTM0OFxcdTkyODhcXHU4NERDXFx1NEZDOVxcdTcwQkJcXHU2NjMxXFx1NjhDOFxcdTkyRjlcXHU2NkZCXFx1NUY0NVxcdTRFMjhcXHU0RUUxXFx1NEVGQ1xcdTRGMDBcXHU0RjAzXFx1NEYzOVxcdTRGNTZcXHU0RjkyXFx1NEY4QVxcdTRGOUFcXHU0Rjk0XFx1NEZDRFxcdTUwNDBcXHU1MDIyXFx1NEZGRlxcdTUwMUVcXHU1MDQ2XFx1NTA3MFxcdTUwNDJcXHU1MDk0XFx1NTBGNFxcdTUwRDhcXHU1MTRBXFx1NTE2NFxcdTUxOURcXHU1MUJFXFx1NTFFQ1xcdTUyMTVcXHU1MjlDXFx1NTJBNlxcdTUyQzBcXHU1MkRCXFx1NTMwMFxcdTUzMDdcXHU1MzI0XFx1NTM3MlxcdTUzOTNcXHU1M0IyXFx1NTNERFxcdUZBMEVcXHU1NDlDXFx1NTQ4QVxcdTU0QTlcXHU1NEZGXFx1NTU4NlxcdTU3NTlcXHU1NzY1XFx1NTdBQ1xcdTU3QzhcXHU1N0M3XFx1RkEwRlwiXSxcbiAgICAgIFtcImVkODBcIiwgXCJcXHVGQTEwXFx1NTg5RVxcdTU4QjJcXHU1OTBCXFx1NTk1M1xcdTU5NUJcXHU1OTVEXFx1NTk2M1xcdTU5QTRcXHU1OUJBXFx1NUI1NlxcdTVCQzBcXHU3NTJGXFx1NUJEOFxcdTVCRUNcXHU1QzFFXFx1NUNBNlxcdTVDQkFcXHU1Q0Y1XFx1NUQyN1xcdTVENTNcXHVGQTExXFx1NUQ0MlxcdTVENkRcXHU1REI4XFx1NURCOVxcdTVERDBcXHU1RjIxXFx1NUYzNFxcdTVGNjdcXHU1RkI3XFx1NUZERVxcdTYwNURcXHU2MDg1XFx1NjA4QVxcdTYwREVcXHU2MEQ1XFx1NjEyMFxcdTYwRjJcXHU2MTExXFx1NjEzN1xcdTYxMzBcXHU2MTk4XFx1NjIxM1xcdTYyQTZcXHU2M0Y1XFx1NjQ2MFxcdTY0OURcXHU2NENFXFx1NjU0RVxcdTY2MDBcXHU2NjE1XFx1NjYzQlxcdTY2MDlcXHU2NjJFXFx1NjYxRVxcdTY2MjRcXHU2NjY1XFx1NjY1N1xcdTY2NTlcXHVGQTEyXFx1NjY3M1xcdTY2OTlcXHU2NkEwXFx1NjZCMlxcdTY2QkZcXHU2NkZBXFx1NjcwRVxcdUY5MjlcXHU2NzY2XFx1NjdCQlxcdTY4NTJcXHU2N0MwXFx1NjgwMVxcdTY4NDRcXHU2OENGXFx1RkExM1xcdTY5NjhcXHVGQTE0XFx1Njk5OFxcdTY5RTJcXHU2QTMwXFx1NkE2QlxcdTZBNDZcXHU2QTczXFx1NkE3RVxcdTZBRTJcXHU2QUU0XFx1NkJENlxcdTZDM0ZcXHU2QzVDXFx1NkM4NlxcdTZDNkZcXHU2Q0RBXFx1NkQwNFxcdTZEODdcXHU2RDZGXFx1NkQ5NlxcdTZEQUNcXHU2RENGXFx1NkRGOFxcdTZERjJcXHU2REZDXFx1NkUzOVxcdTZFNUNcXHU2RTI3XFx1NkUzQ1xcdTZFQkZcXHU2Rjg4XFx1NkZCNVxcdTZGRjVcXHU3MDA1XFx1NzAwN1xcdTcwMjhcXHU3MDg1XFx1NzBBQlxcdTcxMEZcXHU3MTA0XFx1NzE1Q1xcdTcxNDZcXHU3MTQ3XFx1RkExNVxcdTcxQzFcXHU3MUZFXFx1NzJCMVwiXSxcbiAgICAgIFtcImVlNDBcIiwgXCJcXHU3MkJFXFx1NzMyNFxcdUZBMTZcXHU3Mzc3XFx1NzNCRFxcdTczQzlcXHU3M0Q2XFx1NzNFM1xcdTczRDJcXHU3NDA3XFx1NzNGNVxcdTc0MjZcXHU3NDJBXFx1NzQyOVxcdTc0MkVcXHU3NDYyXFx1NzQ4OVxcdTc0OUZcXHU3NTAxXFx1NzU2RlxcdTc2ODJcXHU3NjlDXFx1NzY5RVxcdTc2OUJcXHU3NkE2XFx1RkExN1xcdTc3NDZcXHU1MkFGXFx1NzgyMVxcdTc4NEVcXHU3ODY0XFx1Nzg3QVxcdTc5MzBcXHVGQTE4XFx1RkExOVxcdUZBMUFcXHU3OTk0XFx1RkExQlxcdTc5OUJcXHU3QUQxXFx1N0FFN1xcdUZBMUNcXHU3QUVCXFx1N0I5RVxcdUZBMURcXHU3RDQ4XFx1N0Q1Q1xcdTdEQjdcXHU3REEwXFx1N0RENlxcdTdFNTJcXHU3RjQ3XFx1N0ZBMVxcdUZBMUVcXHU4MzAxXFx1ODM2MlxcdTgzN0ZcXHU4M0M3XFx1ODNGNlxcdTg0NDhcXHU4NEI0XFx1ODU1M1xcdTg1NTlcIl0sXG4gICAgICBbXCJlZTgwXCIsIFwiXFx1ODU2QlxcdUZBMUZcXHU4NUIwXFx1RkEyMFxcdUZBMjFcXHU4ODA3XFx1ODhGNVxcdThBMTJcXHU4QTM3XFx1OEE3OVxcdThBQTdcXHU4QUJFXFx1OEFERlxcdUZBMjJcXHU4QUY2XFx1OEI1M1xcdThCN0ZcXHU4Q0YwXFx1OENGNFxcdThEMTJcXHU4RDc2XFx1RkEyM1xcdThFQ0ZcXHVGQTI0XFx1RkEyNVxcdTkwNjdcXHU5MERFXFx1RkEyNlxcdTkxMTVcXHU5MTI3XFx1OTFEQVxcdTkxRDdcXHU5MURFXFx1OTFFRFxcdTkxRUVcXHU5MUU0XFx1OTFFNVxcdTkyMDZcXHU5MjEwXFx1OTIwQVxcdTkyM0FcXHU5MjQwXFx1OTIzQ1xcdTkyNEVcXHU5MjU5XFx1OTI1MVxcdTkyMzlcXHU5MjY3XFx1OTJBN1xcdTkyNzdcXHU5Mjc4XFx1OTJFN1xcdTkyRDdcXHU5MkQ5XFx1OTJEMFxcdUZBMjdcXHU5MkQ1XFx1OTJFMFxcdTkyRDNcXHU5MzI1XFx1OTMyMVxcdTkyRkJcXHVGQTI4XFx1OTMxRVxcdTkyRkZcXHU5MzFEXFx1OTMwMlxcdTkzNzBcXHU5MzU3XFx1OTNBNFxcdTkzQzZcXHU5M0RFXFx1OTNGOFxcdTk0MzFcXHU5NDQ1XFx1OTQ0OFxcdTk1OTJcXHVGOURDXFx1RkEyOVxcdTk2OURcXHU5NkFGXFx1OTczM1xcdTk3M0JcXHU5NzQzXFx1OTc0RFxcdTk3NEZcXHU5NzUxXFx1OTc1NVxcdTk4NTdcXHU5ODY1XFx1RkEyQVxcdUZBMkJcXHU5OTI3XFx1RkEyQ1xcdTk5OUVcXHU5QTRFXFx1OUFEOVxcdTlBRENcXHU5Qjc1XFx1OUI3MlxcdTlCOEZcXHU5QkIxXFx1OUJCQlxcdTlDMDBcXHU5RDcwXFx1OUQ2QlxcdUZBMkRcXHU5RTE5XFx1OUVEMVwiXSxcbiAgICAgIFtcImVlZWZcIiwgXCJcXHUyMTcwXCIsIDksIFwiXFx1RkZFMlxcdUZGRTRcXHVGRjA3XFx1RkYwMlwiXSxcbiAgICAgIFtcImYwNDBcIiwgXCJcXHVFMDAwXCIsIDYyXSxcbiAgICAgIFtcImYwODBcIiwgXCJcXHVFMDNGXCIsIDEyNF0sXG4gICAgICBbXCJmMTQwXCIsIFwiXFx1RTBCQ1wiLCA2Ml0sXG4gICAgICBbXCJmMTgwXCIsIFwiXFx1RTBGQlwiLCAxMjRdLFxuICAgICAgW1wiZjI0MFwiLCBcIlxcdUUxNzhcIiwgNjJdLFxuICAgICAgW1wiZjI4MFwiLCBcIlxcdUUxQjdcIiwgMTI0XSxcbiAgICAgIFtcImYzNDBcIiwgXCJcXHVFMjM0XCIsIDYyXSxcbiAgICAgIFtcImYzODBcIiwgXCJcXHVFMjczXCIsIDEyNF0sXG4gICAgICBbXCJmNDQwXCIsIFwiXFx1RTJGMFwiLCA2Ml0sXG4gICAgICBbXCJmNDgwXCIsIFwiXFx1RTMyRlwiLCAxMjRdLFxuICAgICAgW1wiZjU0MFwiLCBcIlxcdUUzQUNcIiwgNjJdLFxuICAgICAgW1wiZjU4MFwiLCBcIlxcdUUzRUJcIiwgMTI0XSxcbiAgICAgIFtcImY2NDBcIiwgXCJcXHVFNDY4XCIsIDYyXSxcbiAgICAgIFtcImY2ODBcIiwgXCJcXHVFNEE3XCIsIDEyNF0sXG4gICAgICBbXCJmNzQwXCIsIFwiXFx1RTUyNFwiLCA2Ml0sXG4gICAgICBbXCJmNzgwXCIsIFwiXFx1RTU2M1wiLCAxMjRdLFxuICAgICAgW1wiZjg0MFwiLCBcIlxcdUU1RTBcIiwgNjJdLFxuICAgICAgW1wiZjg4MFwiLCBcIlxcdUU2MUZcIiwgMTI0XSxcbiAgICAgIFtcImY5NDBcIiwgXCJcXHVFNjlDXCJdLFxuICAgICAgW1wiZmE0MFwiLCBcIlxcdTIxNzBcIiwgOSwgXCJcXHUyMTYwXCIsIDksIFwiXFx1RkZFMlxcdUZGRTRcXHVGRjA3XFx1RkYwMlxcdTMyMzFcXHUyMTE2XFx1MjEyMVxcdTIyMzVcXHU3RThBXFx1ODkxQ1xcdTkzNDhcXHU5Mjg4XFx1ODREQ1xcdTRGQzlcXHU3MEJCXFx1NjYzMVxcdTY4QzhcXHU5MkY5XFx1NjZGQlxcdTVGNDVcXHU0RTI4XFx1NEVFMVxcdTRFRkNcXHU0RjAwXFx1NEYwM1xcdTRGMzlcXHU0RjU2XFx1NEY5MlxcdTRGOEFcXHU0RjlBXFx1NEY5NFxcdTRGQ0RcXHU1MDQwXFx1NTAyMlxcdTRGRkZcXHU1MDFFXFx1NTA0NlxcdTUwNzBcXHU1MDQyXFx1NTA5NFxcdTUwRjRcXHU1MEQ4XFx1NTE0QVwiXSxcbiAgICAgIFtcImZhODBcIiwgXCJcXHU1MTY0XFx1NTE5RFxcdTUxQkVcXHU1MUVDXFx1NTIxNVxcdTUyOUNcXHU1MkE2XFx1NTJDMFxcdTUyREJcXHU1MzAwXFx1NTMwN1xcdTUzMjRcXHU1MzcyXFx1NTM5M1xcdTUzQjJcXHU1M0REXFx1RkEwRVxcdTU0OUNcXHU1NDhBXFx1NTRBOVxcdTU0RkZcXHU1NTg2XFx1NTc1OVxcdTU3NjVcXHU1N0FDXFx1NTdDOFxcdTU3QzdcXHVGQTBGXFx1RkExMFxcdTU4OUVcXHU1OEIyXFx1NTkwQlxcdTU5NTNcXHU1OTVCXFx1NTk1RFxcdTU5NjNcXHU1OUE0XFx1NTlCQVxcdTVCNTZcXHU1QkMwXFx1NzUyRlxcdTVCRDhcXHU1QkVDXFx1NUMxRVxcdTVDQTZcXHU1Q0JBXFx1NUNGNVxcdTVEMjdcXHU1RDUzXFx1RkExMVxcdTVENDJcXHU1RDZEXFx1NURCOFxcdTVEQjlcXHU1REQwXFx1NUYyMVxcdTVGMzRcXHU1RjY3XFx1NUZCN1xcdTVGREVcXHU2MDVEXFx1NjA4NVxcdTYwOEFcXHU2MERFXFx1NjBENVxcdTYxMjBcXHU2MEYyXFx1NjExMVxcdTYxMzdcXHU2MTMwXFx1NjE5OFxcdTYyMTNcXHU2MkE2XFx1NjNGNVxcdTY0NjBcXHU2NDlEXFx1NjRDRVxcdTY1NEVcXHU2NjAwXFx1NjYxNVxcdTY2M0JcXHU2NjA5XFx1NjYyRVxcdTY2MUVcXHU2NjI0XFx1NjY2NVxcdTY2NTdcXHU2NjU5XFx1RkExMlxcdTY2NzNcXHU2Njk5XFx1NjZBMFxcdTY2QjJcXHU2NkJGXFx1NjZGQVxcdTY3MEVcXHVGOTI5XFx1Njc2NlxcdTY3QkJcXHU2ODUyXFx1NjdDMFxcdTY4MDFcXHU2ODQ0XFx1NjhDRlxcdUZBMTNcXHU2OTY4XFx1RkExNFxcdTY5OThcXHU2OUUyXFx1NkEzMFxcdTZBNkJcXHU2QTQ2XFx1NkE3M1xcdTZBN0VcXHU2QUUyXFx1NkFFNFxcdTZCRDZcXHU2QzNGXFx1NkM1Q1xcdTZDODZcXHU2QzZGXFx1NkNEQVxcdTZEMDRcXHU2RDg3XFx1NkQ2RlwiXSxcbiAgICAgIFtcImZiNDBcIiwgXCJcXHU2RDk2XFx1NkRBQ1xcdTZEQ0ZcXHU2REY4XFx1NkRGMlxcdTZERkNcXHU2RTM5XFx1NkU1Q1xcdTZFMjdcXHU2RTNDXFx1NkVCRlxcdTZGODhcXHU2RkI1XFx1NkZGNVxcdTcwMDVcXHU3MDA3XFx1NzAyOFxcdTcwODVcXHU3MEFCXFx1NzEwRlxcdTcxMDRcXHU3MTVDXFx1NzE0NlxcdTcxNDdcXHVGQTE1XFx1NzFDMVxcdTcxRkVcXHU3MkIxXFx1NzJCRVxcdTczMjRcXHVGQTE2XFx1NzM3N1xcdTczQkRcXHU3M0M5XFx1NzNENlxcdTczRTNcXHU3M0QyXFx1NzQwN1xcdTczRjVcXHU3NDI2XFx1NzQyQVxcdTc0MjlcXHU3NDJFXFx1NzQ2MlxcdTc0ODlcXHU3NDlGXFx1NzUwMVxcdTc1NkZcXHU3NjgyXFx1NzY5Q1xcdTc2OUVcXHU3NjlCXFx1NzZBNlxcdUZBMTdcXHU3NzQ2XFx1NTJBRlxcdTc4MjFcXHU3ODRFXFx1Nzg2NFxcdTc4N0FcXHU3OTMwXFx1RkExOFxcdUZBMTlcIl0sXG4gICAgICBbXCJmYjgwXCIsIFwiXFx1RkExQVxcdTc5OTRcXHVGQTFCXFx1Nzk5QlxcdTdBRDFcXHU3QUU3XFx1RkExQ1xcdTdBRUJcXHU3QjlFXFx1RkExRFxcdTdENDhcXHU3RDVDXFx1N0RCN1xcdTdEQTBcXHU3REQ2XFx1N0U1MlxcdTdGNDdcXHU3RkExXFx1RkExRVxcdTgzMDFcXHU4MzYyXFx1ODM3RlxcdTgzQzdcXHU4M0Y2XFx1ODQ0OFxcdTg0QjRcXHU4NTUzXFx1ODU1OVxcdTg1NkJcXHVGQTFGXFx1ODVCMFxcdUZBMjBcXHVGQTIxXFx1ODgwN1xcdTg4RjVcXHU4QTEyXFx1OEEzN1xcdThBNzlcXHU4QUE3XFx1OEFCRVxcdThBREZcXHVGQTIyXFx1OEFGNlxcdThCNTNcXHU4QjdGXFx1OENGMFxcdThDRjRcXHU4RDEyXFx1OEQ3NlxcdUZBMjNcXHU4RUNGXFx1RkEyNFxcdUZBMjVcXHU5MDY3XFx1OTBERVxcdUZBMjZcXHU5MTE1XFx1OTEyN1xcdTkxREFcXHU5MUQ3XFx1OTFERVxcdTkxRURcXHU5MUVFXFx1OTFFNFxcdTkxRTVcXHU5MjA2XFx1OTIxMFxcdTkyMEFcXHU5MjNBXFx1OTI0MFxcdTkyM0NcXHU5MjRFXFx1OTI1OVxcdTkyNTFcXHU5MjM5XFx1OTI2N1xcdTkyQTdcXHU5Mjc3XFx1OTI3OFxcdTkyRTdcXHU5MkQ3XFx1OTJEOVxcdTkyRDBcXHVGQTI3XFx1OTJENVxcdTkyRTBcXHU5MkQzXFx1OTMyNVxcdTkzMjFcXHU5MkZCXFx1RkEyOFxcdTkzMUVcXHU5MkZGXFx1OTMxRFxcdTkzMDJcXHU5MzcwXFx1OTM1N1xcdTkzQTRcXHU5M0M2XFx1OTNERVxcdTkzRjhcXHU5NDMxXFx1OTQ0NVxcdTk0NDhcXHU5NTkyXFx1RjlEQ1xcdUZBMjlcXHU5NjlEXFx1OTZBRlxcdTk3MzNcXHU5NzNCXFx1OTc0M1xcdTk3NERcXHU5NzRGXFx1OTc1MVxcdTk3NTVcXHU5ODU3XFx1OTg2NVxcdUZBMkFcXHVGQTJCXFx1OTkyN1xcdUZBMkNcXHU5OTlFXFx1OUE0RVxcdTlBRDlcIl0sXG4gICAgICBbXCJmYzQwXCIsIFwiXFx1OUFEQ1xcdTlCNzVcXHU5QjcyXFx1OUI4RlxcdTlCQjFcXHU5QkJCXFx1OUMwMFxcdTlENzBcXHU5RDZCXFx1RkEyRFxcdTlFMTlcXHU5RUQxXCJdXG4gICAgXTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2V1Y2pwLmpzb25cbnZhciByZXF1aXJlX2V1Y2pwID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvZXVjanAuanNvblwiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gW1xuICAgICAgW1wiMFwiLCBcIlxcMFwiLCAxMjddLFxuICAgICAgW1wiOGVhMVwiLCBcIlxcdUZGNjFcIiwgNjJdLFxuICAgICAgW1wiYTFhMVwiLCBcIlxcdTMwMDBcXHUzMDAxXFx1MzAwMlxcdUZGMENcXHVGRjBFXFx1MzBGQlxcdUZGMUFcXHVGRjFCXFx1RkYxRlxcdUZGMDFcXHUzMDlCXFx1MzA5Q1xceEI0XFx1RkY0MFxceEE4XFx1RkYzRVxcdUZGRTNcXHVGRjNGXFx1MzBGRFxcdTMwRkVcXHUzMDlEXFx1MzA5RVxcdTMwMDNcXHU0RUREXFx1MzAwNVxcdTMwMDZcXHUzMDA3XFx1MzBGQ1xcdTIwMTVcXHUyMDEwXFx1RkYwRlxcdUZGM0NcXHVGRjVFXFx1MjIyNVxcdUZGNUNcXHUyMDI2XFx1MjAyNVxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHVGRjA4XFx1RkYwOVxcdTMwMTRcXHUzMDE1XFx1RkYzQlxcdUZGM0RcXHVGRjVCXFx1RkY1RFxcdTMwMDhcIiwgOSwgXCJcXHVGRjBCXFx1RkYwRFxceEIxXFx4RDdcXHhGN1xcdUZGMURcXHUyMjYwXFx1RkYxQ1xcdUZGMUVcXHUyMjY2XFx1MjI2N1xcdTIyMUVcXHUyMjM0XFx1MjY0MlxcdTI2NDBcXHhCMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGRTVcXHVGRjA0XFx1RkZFMFxcdUZGRTFcXHVGRjA1XFx1RkYwM1xcdUZGMDZcXHVGRjBBXFx1RkYyMFxceEE3XFx1MjYwNlxcdTI2MDVcXHUyNUNCXFx1MjVDRlxcdTI1Q0VcXHUyNUM3XCJdLFxuICAgICAgW1wiYTJhMVwiLCBcIlxcdTI1QzZcXHUyNUExXFx1MjVBMFxcdTI1QjNcXHUyNUIyXFx1MjVCRFxcdTI1QkNcXHUyMDNCXFx1MzAxMlxcdTIxOTJcXHUyMTkwXFx1MjE5MVxcdTIxOTNcXHUzMDEzXCJdLFxuICAgICAgW1wiYTJiYVwiLCBcIlxcdTIyMDhcXHUyMjBCXFx1MjI4NlxcdTIyODdcXHUyMjgyXFx1MjI4M1xcdTIyMkFcXHUyMjI5XCJdLFxuICAgICAgW1wiYTJjYVwiLCBcIlxcdTIyMjdcXHUyMjI4XFx1RkZFMlxcdTIxRDJcXHUyMUQ0XFx1MjIwMFxcdTIyMDNcIl0sXG4gICAgICBbXCJhMmRjXCIsIFwiXFx1MjIyMFxcdTIyQTVcXHUyMzEyXFx1MjIwMlxcdTIyMDdcXHUyMjYxXFx1MjI1MlxcdTIyNkFcXHUyMjZCXFx1MjIxQVxcdTIyM0RcXHUyMjFEXFx1MjIzNVxcdTIyMkJcXHUyMjJDXCJdLFxuICAgICAgW1wiYTJmMlwiLCBcIlxcdTIxMkJcXHUyMDMwXFx1MjY2RlxcdTI2NkRcXHUyNjZBXFx1MjAyMFxcdTIwMjFcXHhCNlwiXSxcbiAgICAgIFtcImEyZmVcIiwgXCJcXHUyNUVGXCJdLFxuICAgICAgW1wiYTNiMFwiLCBcIlxcdUZGMTBcIiwgOV0sXG4gICAgICBbXCJhM2MxXCIsIFwiXFx1RkYyMVwiLCAyNV0sXG4gICAgICBbXCJhM2UxXCIsIFwiXFx1RkY0MVwiLCAyNV0sXG4gICAgICBbXCJhNGExXCIsIFwiXFx1MzA0MVwiLCA4Ml0sXG4gICAgICBbXCJhNWExXCIsIFwiXFx1MzBBMVwiLCA4NV0sXG4gICAgICBbXCJhNmExXCIsIFwiXFx1MDM5MVwiLCAxNiwgXCJcXHUwM0EzXCIsIDZdLFxuICAgICAgW1wiYTZjMVwiLCBcIlxcdTAzQjFcIiwgMTYsIFwiXFx1MDNDM1wiLCA2XSxcbiAgICAgIFtcImE3YTFcIiwgXCJcXHUwNDEwXCIsIDUsIFwiXFx1MDQwMVxcdTA0MTZcIiwgMjVdLFxuICAgICAgW1wiYTdkMVwiLCBcIlxcdTA0MzBcIiwgNSwgXCJcXHUwNDUxXFx1MDQzNlwiLCAyNV0sXG4gICAgICBbXCJhOGExXCIsIFwiXFx1MjUwMFxcdTI1MDJcXHUyNTBDXFx1MjUxMFxcdTI1MThcXHUyNTE0XFx1MjUxQ1xcdTI1MkNcXHUyNTI0XFx1MjUzNFxcdTI1M0NcXHUyNTAxXFx1MjUwM1xcdTI1MEZcXHUyNTEzXFx1MjUxQlxcdTI1MTdcXHUyNTIzXFx1MjUzM1xcdTI1MkJcXHUyNTNCXFx1MjU0QlxcdTI1MjBcXHUyNTJGXFx1MjUyOFxcdTI1MzdcXHUyNTNGXFx1MjUxRFxcdTI1MzBcXHUyNTI1XFx1MjUzOFxcdTI1NDJcIl0sXG4gICAgICBbXCJhZGExXCIsIFwiXFx1MjQ2MFwiLCAxOSwgXCJcXHUyMTYwXCIsIDldLFxuICAgICAgW1wiYWRjMFwiLCBcIlxcdTMzNDlcXHUzMzE0XFx1MzMyMlxcdTMzNERcXHUzMzE4XFx1MzMyN1xcdTMzMDNcXHUzMzM2XFx1MzM1MVxcdTMzNTdcXHUzMzBEXFx1MzMyNlxcdTMzMjNcXHUzMzJCXFx1MzM0QVxcdTMzM0JcXHUzMzlDXFx1MzM5RFxcdTMzOUVcXHUzMzhFXFx1MzM4RlxcdTMzQzRcXHUzM0ExXCJdLFxuICAgICAgW1wiYWRkZlwiLCBcIlxcdTMzN0JcXHUzMDFEXFx1MzAxRlxcdTIxMTZcXHUzM0NEXFx1MjEyMVxcdTMyQTRcIiwgNCwgXCJcXHUzMjMxXFx1MzIzMlxcdTMyMzlcXHUzMzdFXFx1MzM3RFxcdTMzN0NcXHUyMjUyXFx1MjI2MVxcdTIyMkJcXHUyMjJFXFx1MjIxMVxcdTIyMUFcXHUyMkE1XFx1MjIyMFxcdTIyMUZcXHUyMkJGXFx1MjIzNVxcdTIyMjlcXHUyMjJBXCJdLFxuICAgICAgW1wiYjBhMVwiLCBcIlxcdTRFOUNcXHU1NTE2XFx1NUEwM1xcdTk2M0ZcXHU1NEMwXFx1NjExQlxcdTYzMjhcXHU1OUY2XFx1OTAyMlxcdTg0NzVcXHU4MzFDXFx1N0E1MFxcdTYwQUFcXHU2M0UxXFx1NkUyNVxcdTY1RURcXHU4NDY2XFx1ODJBNlxcdTlCRjVcXHU2ODkzXFx1NTcyN1xcdTY1QTFcXHU2MjcxXFx1NUI5QlxcdTU5RDBcXHU4NjdCXFx1OThGNFxcdTdENjJcXHU3REJFXFx1OUI4RVxcdTYyMTZcXHU3QzlGXFx1ODhCN1xcdTVCODlcXHU1RUI1XFx1NjMwOVxcdTY2OTdcXHU2ODQ4XFx1OTVDN1xcdTk3OERcXHU2NzRGXFx1NEVFNVxcdTRGMEFcXHU0RjREXFx1NEY5RFxcdTUwNDlcXHU1NkYyXFx1NTkzN1xcdTU5RDRcXHU1QTAxXFx1NUMwOVxcdTYwREZcXHU2MTBGXFx1NjE3MFxcdTY2MTNcXHU2OTA1XFx1NzBCQVxcdTc1NEZcXHU3NTcwXFx1NzlGQlxcdTdEQURcXHU3REVGXFx1ODBDM1xcdTg0MEVcXHU4ODYzXFx1OEIwMlxcdTkwNTVcXHU5MDdBXFx1NTMzQlxcdTRFOTVcXHU0RUE1XFx1NTdERlxcdTgwQjJcXHU5MEMxXFx1NzhFRlxcdTRFMDBcXHU1OEYxXFx1NkVBMlxcdTkwMzhcXHU3QTMyXFx1ODMyOFxcdTgyOEJcXHU5QzJGXFx1NTE0MVxcdTUzNzBcXHU1NEJEXFx1NTRFMVxcdTU2RTBcXHU1OUZCXFx1NUYxNVxcdTk4RjJcXHU2REVCXFx1ODBFNFxcdTg1MkRcIl0sXG4gICAgICBbXCJiMWExXCIsIFwiXFx1OTY2MlxcdTk2NzBcXHU5NkEwXFx1OTdGQlxcdTU0MEJcXHU1M0YzXFx1NUI4N1xcdTcwQ0ZcXHU3RkJEXFx1OEZDMlxcdTk2RThcXHU1MzZGXFx1OUQ1Q1xcdTdBQkFcXHU0RTExXFx1Nzg5M1xcdTgxRkNcXHU2RTI2XFx1NTYxOFxcdTU1MDRcXHU2QjFEXFx1ODUxQVxcdTlDM0JcXHU1OUU1XFx1NTNBOVxcdTZENjZcXHU3NERDXFx1OTU4RlxcdTU2NDJcXHU0RTkxXFx1OTA0QlxcdTk2RjJcXHU4MzRGXFx1OTkwQ1xcdTUzRTFcXHU1NUI2XFx1NUIzMFxcdTVGNzFcXHU2NjIwXFx1NjZGM1xcdTY4MDRcXHU2QzM4XFx1NkNGM1xcdTZEMjlcXHU3NDVCXFx1NzZDOFxcdTdBNEVcXHU5ODM0XFx1ODJGMVxcdTg4NUJcXHU4QTYwXFx1OTJFRFxcdTZEQjJcXHU3NUFCXFx1NzZDQVxcdTk5QzVcXHU2MEE2XFx1OEIwMVxcdThEOEFcXHU5NUIyXFx1Njk4RVxcdTUzQURcXHU1MTg2XFx1NTcxMlxcdTU4MzBcXHU1OTQ0XFx1NUJCNFxcdTVFRjZcXHU2MDI4XFx1NjNBOVxcdTYzRjRcXHU2Q0JGXFx1NkYxNFxcdTcwOEVcXHU3MTE0XFx1NzE1OVxcdTcxRDVcXHU3MzNGXFx1N0UwMVxcdTgyNzZcXHU4MkQxXFx1ODU5N1xcdTkwNjBcXHU5MjVCXFx1OUQxQlxcdTU4NjlcXHU2NUJDXFx1NkM1QVxcdTc1MjVcXHU1MUY5XFx1NTkyRVxcdTU5NjVcXHU1RjgwXFx1NUZEQ1wiXSxcbiAgICAgIFtcImIyYTFcIiwgXCJcXHU2MkJDXFx1NjVGQVxcdTZBMkFcXHU2QjI3XFx1NkJCNFxcdTczOEJcXHU3RkMxXFx1ODk1NlxcdTlEMkNcXHU5RDBFXFx1OUVDNFxcdTVDQTFcXHU2Qzk2XFx1ODM3QlxcdTUxMDRcXHU1QzRCXFx1NjFCNlxcdTgxQzZcXHU2ODc2XFx1NzI2MVxcdTRFNTlcXHU0RkZBXFx1NTM3OFxcdTYwNjlcXHU2RTI5XFx1N0E0RlxcdTk3RjNcXHU0RTBCXFx1NTMxNlxcdTRFRUVcXHU0RjU1XFx1NEYzRFxcdTRGQTFcXHU0RjczXFx1NTJBMFxcdTUzRUZcXHU1NjA5XFx1NTkwRlxcdTVBQzFcXHU1QkI2XFx1NUJFMVxcdTc5RDFcXHU2Njg3XFx1Njc5Q1xcdTY3QjZcXHU2QjRDXFx1NkNCM1xcdTcwNkJcXHU3M0MyXFx1Nzk4RFxcdTc5QkVcXHU3QTNDXFx1N0I4N1xcdTgyQjFcXHU4MkRCXFx1ODMwNFxcdTgzNzdcXHU4M0VGXFx1ODNEM1xcdTg3NjZcXHU4QUIyXFx1NTYyOVxcdThDQThcXHU4RkU2XFx1OTA0RVxcdTk3MUVcXHU4NjhBXFx1NEZDNFxcdTVDRThcXHU2MjExXFx1NzI1OVxcdTc1M0JcXHU4MUU1XFx1ODJCRFxcdTg2RkVcXHU4Q0MwXFx1OTZDNVxcdTk5MTNcXHU5OUQ1XFx1NEVDQlxcdTRGMUFcXHU4OUUzXFx1NTZERVxcdTU4NEFcXHU1OENBXFx1NUVGQlxcdTVGRUJcXHU2MDJBXFx1NjA5NFxcdTYwNjJcXHU2MUQwXFx1NjIxMlxcdTYyRDBcXHU2NTM5XCJdLFxuICAgICAgW1wiYjNhMVwiLCBcIlxcdTlCNDFcXHU2NjY2XFx1NjhCMFxcdTZENzdcXHU3MDcwXFx1NzU0Q1xcdTc2ODZcXHU3RDc1XFx1ODJBNVxcdTg3RjlcXHU5NThCXFx1OTY4RVxcdThDOURcXHU1MUYxXFx1NTJCRVxcdTU5MTZcXHU1NEIzXFx1NUJCM1xcdTVEMTZcXHU2MTY4XFx1Njk4MlxcdTZEQUZcXHU3ODhEXFx1ODRDQlxcdTg4NTdcXHU4QTcyXFx1OTNBN1xcdTlBQjhcXHU2RDZDXFx1OTlBOFxcdTg2RDlcXHU1N0EzXFx1NjdGRlxcdTg2Q0VcXHU5MjBFXFx1NTI4M1xcdTU2ODdcXHU1NDA0XFx1NUVEM1xcdTYyRTFcXHU2NEI5XFx1NjgzQ1xcdTY4MzhcXHU2QkJCXFx1NzM3MlxcdTc4QkFcXHU3QTZCXFx1ODk5QVxcdTg5RDJcXHU4RDZCXFx1OEYwM1xcdTkwRURcXHU5NUEzXFx1OTY5NFxcdTk3NjlcXHU1QjY2XFx1NUNCM1xcdTY5N0RcXHU5ODREXFx1OTg0RVxcdTYzOUJcXHU3QjIwXFx1NkEyQlxcdTZBN0ZcXHU2OEI2XFx1OUMwRFxcdTZGNUZcXHU1MjcyXFx1NTU5RFxcdTYwNzBcXHU2MkVDXFx1NkQzQlxcdTZFMDdcXHU2RUQxXFx1ODQ1QlxcdTg5MTBcXHU4RjQ0XFx1NEUxNFxcdTlDMzlcXHU1M0Y2XFx1NjkxQlxcdTZBM0FcXHU5Nzg0XFx1NjgyQVxcdTUxNUNcXHU3QUMzXFx1ODRCMlxcdTkxRENcXHU5MzhDXFx1NTY1QlxcdTlEMjhcXHU2ODIyXFx1ODMwNVxcdTg0MzFcIl0sXG4gICAgICBbXCJiNGExXCIsIFwiXFx1N0NBNVxcdTUyMDhcXHU4MkM1XFx1NzRFNlxcdTRFN0VcXHU0RjgzXFx1NTFBMFxcdTVCRDJcXHU1MjBBXFx1NTJEOFxcdTUyRTdcXHU1REZCXFx1NTU5QVxcdTU4MkFcXHU1OUU2XFx1NUI4Q1xcdTVCOThcXHU1QkRCXFx1NUU3MlxcdTVFNzlcXHU2MEEzXFx1NjExRlxcdTYxNjNcXHU2MUJFXFx1NjNEQlxcdTY1NjJcXHU2N0QxXFx1Njg1M1xcdTY4RkFcXHU2QjNFXFx1NkI1M1xcdTZDNTdcXHU2RjIyXFx1NkY5N1xcdTZGNDVcXHU3NEIwXFx1NzUxOFxcdTc2RTNcXHU3NzBCXFx1N0FGRlxcdTdCQTFcXHU3QzIxXFx1N0RFOVxcdTdGMzZcXHU3RkYwXFx1ODA5RFxcdTgyNjZcXHU4MzlFXFx1ODlCM1xcdThBQ0NcXHU4Q0FCXFx1OTA4NFxcdTk0NTFcXHU5NTkzXFx1OTU5MVxcdTk1QTJcXHU5NjY1XFx1OTdEM1xcdTk5MjhcXHU4MjE4XFx1NEUzOFxcdTU0MkJcXHU1Q0I4XFx1NURDQ1xcdTczQTlcXHU3NjRDXFx1NzczQ1xcdTVDQTlcXHU3RkVCXFx1OEQwQlxcdTk2QzFcXHU5ODExXFx1OTg1NFxcdTk4NThcXHU0RjAxXFx1NEYwRVxcdTUzNzFcXHU1NTlDXFx1NTY2OFxcdTU3RkFcXHU1OTQ3XFx1NUIwOVxcdTVCQzRcXHU1QzkwXFx1NUUwQ1xcdTVFN0VcXHU1RkNDXFx1NjNFRVxcdTY3M0FcXHU2NUQ3XFx1NjVFMlxcdTY3MUZcXHU2OENCXFx1NjhDNFwiXSxcbiAgICAgIFtcImI1YTFcIiwgXCJcXHU2QTVGXFx1NUUzMFxcdTZCQzVcXHU2QzE3XFx1NkM3RFxcdTc1N0ZcXHU3OTQ4XFx1NUI2M1xcdTdBMDBcXHU3RDAwXFx1NUZCRFxcdTg5OEZcXHU4QTE4XFx1OENCNFxcdThENzdcXHU4RUNDXFx1OEYxRFxcdTk4RTJcXHU5QTBFXFx1OUIzQ1xcdTRFODBcXHU1MDdEXFx1NTEwMFxcdTU5OTNcXHU1QjlDXFx1NjIyRlxcdTYyODBcXHU2NEVDXFx1NkIzQVxcdTcyQTBcXHU3NTkxXFx1Nzk0N1xcdTdGQTlcXHU4N0ZCXFx1OEFCQ1xcdThCNzBcXHU2M0FDXFx1ODNDQVxcdTk3QTBcXHU1NDA5XFx1NTQwM1xcdTU1QUJcXHU2ODU0XFx1NkE1OFxcdThBNzBcXHU3ODI3XFx1Njc3NVxcdTlFQ0RcXHU1Mzc0XFx1NUJBMlxcdTgxMUFcXHU4NjUwXFx1OTAwNlxcdTRFMThcXHU0RTQ1XFx1NEVDN1xcdTRGMTFcXHU1M0NBXFx1NTQzOFxcdTVCQUVcXHU1RjEzXFx1NjAyNVxcdTY1NTFcXHU2NzNEXFx1NkM0MlxcdTZDNzJcXHU2Q0UzXFx1NzA3OFxcdTc0MDNcXHU3QTc2XFx1N0FBRVxcdTdCMDhcXHU3RDFBXFx1N0NGRVxcdTdENjZcXHU2NUU3XFx1NzI1QlxcdTUzQkJcXHU1QzQ1XFx1NURFOFxcdTYyRDJcXHU2MkUwXFx1NjMxOVxcdTZFMjBcXHU4NjVBXFx1OEEzMVxcdThERERcXHU5MkY4XFx1NkYwMVxcdTc5QTZcXHU5QjVBXFx1NEVBOFxcdTRFQUJcXHU0RUFDXCJdLFxuICAgICAgW1wiYjZhMVwiLCBcIlxcdTRGOUJcXHU0RkEwXFx1NTBEMVxcdTUxNDdcXHU3QUY2XFx1NTE3MVxcdTUxRjZcXHU1MzU0XFx1NTMyMVxcdTUzN0ZcXHU1M0VCXFx1NTVBQ1xcdTU4ODNcXHU1Q0UxXFx1NUYzN1xcdTVGNEFcXHU2MDJGXFx1NjA1MFxcdTYwNkRcXHU2MzFGXFx1NjU1OVxcdTZBNEJcXHU2Q0MxXFx1NzJDMlxcdTcyRURcXHU3N0VGXFx1ODBGOFxcdTgxMDVcXHU4MjA4XFx1ODU0RVxcdTkwRjdcXHU5M0UxXFx1OTdGRlxcdTk5NTdcXHU5QTVBXFx1NEVGMFxcdTUxRERcXHU1QzJEXFx1NjY4MVxcdTY5NkRcXHU1QzQwXFx1NjZGMlxcdTY5NzVcXHU3Mzg5XFx1Njg1MFxcdTdDODFcXHU1MEM1XFx1NTJFNFxcdTU3NDdcXHU1REZFXFx1OTMyNlxcdTY1QTRcXHU2QjIzXFx1NkIzRFxcdTc0MzRcXHU3OTgxXFx1NzlCRFxcdTdCNEJcXHU3RENBXFx1ODJCOVxcdTgzQ0NcXHU4ODdGXFx1ODk1RlxcdThCMzlcXHU4RkQxXFx1OTFEMVxcdTU0MUZcXHU5MjgwXFx1NEU1RFxcdTUwMzZcXHU1M0U1XFx1NTMzQVxcdTcyRDdcXHU3Mzk2XFx1NzdFOVxcdTgyRTZcXHU4RUFGXFx1OTlDNlxcdTk5QzhcXHU5OUQyXFx1NTE3N1xcdTYxMUFcXHU4NjVFXFx1NTVCMFxcdTdBN0FcXHU1MDc2XFx1NUJEM1xcdTkwNDdcXHU5Njg1XFx1NEUzMlxcdTZBREJcXHU5MUU3XFx1NUM1MVxcdTVDNDhcIl0sXG4gICAgICBbXCJiN2ExXCIsIFwiXFx1NjM5OFxcdTdBOUZcXHU2QzkzXFx1OTc3NFxcdThGNjFcXHU3QUFBXFx1NzE4QVxcdTk2ODhcXHU3QzgyXFx1NjgxN1xcdTdFNzBcXHU2ODUxXFx1OTM2Q1xcdTUyRjJcXHU1NDFCXFx1ODVBQlxcdThBMTNcXHU3RkE0XFx1OEVDRFxcdTkwRTFcXHU1MzY2XFx1ODg4OFxcdTc5NDFcXHU0RkMyXFx1NTBCRVxcdTUyMTFcXHU1MTQ0XFx1NTU1M1xcdTU3MkRcXHU3M0VBXFx1NTc4QlxcdTU5NTFcXHU1RjYyXFx1NUY4NFxcdTYwNzVcXHU2MTc2XFx1NjE2N1xcdTYxQTlcXHU2M0IyXFx1NjQzQVxcdTY1NkNcXHU2NjZGXFx1Njg0MlxcdTZFMTNcXHU3NTY2XFx1N0EzRFxcdTdDRkJcXHU3RDRDXFx1N0Q5OVxcdTdFNEJcXHU3RjZCXFx1ODMwRVxcdTgzNEFcXHU4NkNEXFx1OEEwOFxcdThBNjNcXHU4QjY2XFx1OEVGRFxcdTk4MUFcXHU5RDhGXFx1ODJCOFxcdThGQ0VcXHU5QkU4XFx1NTI4N1xcdTYyMUZcXHU2NDgzXFx1NkZDMFxcdTk2OTlcXHU2ODQxXFx1NTA5MVxcdTZCMjBcXHU2QzdBXFx1NkY1NFxcdTdBNzRcXHU3RDUwXFx1ODg0MFxcdThBMjNcXHU2NzA4XFx1NEVGNlxcdTUwMzlcXHU1MDI2XFx1NTA2NVxcdTUxN0NcXHU1MjM4XFx1NTI2M1xcdTU1QTdcXHU1NzBGXFx1NTgwNVxcdTVBQ0NcXHU1RUZBXFx1NjFCMlxcdTYxRjhcXHU2MkYzXFx1NjM3MlwiXSxcbiAgICAgIFtcImI4YTFcIiwgXCJcXHU2OTFDXFx1NkEyOVxcdTcyN0RcXHU3MkFDXFx1NzMyRVxcdTc4MTRcXHU3ODZGXFx1N0Q3OVxcdTc3MENcXHU4MEE5XFx1ODk4QlxcdThCMTlcXHU4Q0UyXFx1OEVEMlxcdTkwNjNcXHU5Mzc1XFx1OTY3QVxcdTk4NTVcXHU5QTEzXFx1OUU3OFxcdTUxNDNcXHU1MzlGXFx1NTNCM1xcdTVFN0JcXHU1RjI2XFx1NkUxQlxcdTZFOTBcXHU3Mzg0XFx1NzNGRVxcdTdENDNcXHU4MjM3XFx1OEEwMFxcdThBRkFcXHU5NjUwXFx1NEU0RVxcdTUwMEJcXHU1M0U0XFx1NTQ3Q1xcdTU2RkFcXHU1OUQxXFx1NUI2NFxcdTVERjFcXHU1RUFCXFx1NUYyN1xcdTYyMzhcXHU2NTQ1XFx1NjdBRlxcdTZFNTZcXHU3MkQwXFx1N0NDQVxcdTg4QjRcXHU4MEExXFx1ODBFMVxcdTgzRjBcXHU4NjRFXFx1OEE4N1xcdThERThcXHU5MjM3XFx1OTZDN1xcdTk4NjdcXHU5RjEzXFx1NEU5NFxcdTRFOTJcXHU0RjBEXFx1NTM0OFxcdTU0NDlcXHU1NDNFXFx1NUEyRlxcdTVGOENcXHU1RkExXFx1NjA5RlxcdTY4QTdcXHU2QThFXFx1NzQ1QVxcdTc4ODFcXHU4QTlFXFx1OEFBNFxcdThCNzdcXHU5MTkwXFx1NEU1RVxcdTlCQzlcXHU0RUE0XFx1NEY3Q1xcdTRGQUZcXHU1MDE5XFx1NTAxNlxcdTUxNDlcXHU1MTZDXFx1NTI5RlxcdTUyQjlcXHU1MkZFXFx1NTM5QVxcdTUzRTNcXHU1NDExXCJdLFxuICAgICAgW1wiYjlhMVwiLCBcIlxcdTU0MEVcXHU1NTg5XFx1NTc1MVxcdTU3QTJcXHU1OTdEXFx1NUI1NFxcdTVCNURcXHU1QjhGXFx1NURFNVxcdTVERTdcXHU1REY3XFx1NUU3OFxcdTVFODNcXHU1RTlBXFx1NUVCN1xcdTVGMThcXHU2MDUyXFx1NjE0Q1xcdTYyOTdcXHU2MkQ4XFx1NjNBN1xcdTY1M0JcXHU2NjAyXFx1NjY0M1xcdTY2RjRcXHU2NzZEXFx1NjgyMVxcdTY4OTdcXHU2OUNCXFx1NkM1RlxcdTZEMkFcXHU2RDY5XFx1NkUyRlxcdTZFOURcXHU3NTMyXFx1NzY4N1xcdTc4NkNcXHU3QTNGXFx1N0NFMFxcdTdEMDVcXHU3RDE4XFx1N0Q1RVxcdTdEQjFcXHU4MDE1XFx1ODAwM1xcdTgwQUZcXHU4MEIxXFx1ODE1NFxcdTgxOEZcXHU4MjJBXFx1ODM1MlxcdTg4NENcXHU4ODYxXFx1OEIxQlxcdThDQTJcXHU4Q0ZDXFx1OTBDQVxcdTkxNzVcXHU5MjcxXFx1NzgzRlxcdTkyRkNcXHU5NUE0XFx1OTY0RFxcdTk4MDVcXHU5OTk5XFx1OUFEOFxcdTlEM0JcXHU1MjVCXFx1NTJBQlxcdTUzRjdcXHU1NDA4XFx1NThENVxcdTYyRjdcXHU2RkUwXFx1OEM2QVxcdThGNUZcXHU5RUI5XFx1NTE0QlxcdTUyM0JcXHU1NDRBXFx1NTZGRFxcdTdBNDBcXHU5MTc3XFx1OUQ2MFxcdTlFRDJcXHU3MzQ0XFx1NkYwOVxcdTgxNzBcXHU3NTExXFx1NUZGRFxcdTYwREFcXHU5QUE4XFx1NzJEQlxcdThGQkNcIl0sXG4gICAgICBbXCJiYWExXCIsIFwiXFx1NkI2NFxcdTk4MDNcXHU0RUNBXFx1NTZGMFxcdTU3NjRcXHU1OEJFXFx1NUE1QVxcdTYwNjhcXHU2MUM3XFx1NjYwRlxcdTY2MDZcXHU2ODM5XFx1NjhCMVxcdTZERjdcXHU3NUQ1XFx1N0QzQVxcdTgyNkVcXHU5QjQyXFx1NEU5QlxcdTRGNTBcXHU1M0M5XFx1NTUwNlxcdTVENkZcXHU1REU2XFx1NURFRVxcdTY3RkJcXHU2Qzk5XFx1NzQ3M1xcdTc4MDJcXHU4QTUwXFx1OTM5NlxcdTg4REZcXHU1NzUwXFx1NUVBN1xcdTYzMkJcXHU1MEI1XFx1NTBBQ1xcdTUxOERcXHU2NzAwXFx1NTRDOVxcdTU4NUVcXHU1OUJCXFx1NUJCMFxcdTVGNjlcXHU2MjREXFx1NjNBMVxcdTY4M0RcXHU2QjczXFx1NkUwOFxcdTcwN0RcXHU5MUM3XFx1NzI4MFxcdTc4MTVcXHU3ODI2XFx1Nzk2RFxcdTY1OEVcXHU3RDMwXFx1ODNEQ1xcdTg4QzFcXHU4RjA5XFx1OTY5QlxcdTUyNjRcXHU1NzI4XFx1Njc1MFxcdTdGNkFcXHU4Q0ExXFx1NTFCNFxcdTU3NDJcXHU5NjJBXFx1NTgzQVxcdTY5OEFcXHU4MEI0XFx1NTRCMlxcdTVEMEVcXHU1N0ZDXFx1Nzg5NVxcdTlERkFcXHU0RjVDXFx1NTI0QVxcdTU0OEJcXHU2NDNFXFx1NjYyOFxcdTY3MTRcXHU2N0Y1XFx1N0E4NFxcdTdCNTZcXHU3RDIyXFx1OTMyRlxcdTY4NUNcXHU5QkFEXFx1N0IzOVxcdTUzMTlcXHU1MThBXFx1NTIzN1wiXSxcbiAgICAgIFtcImJiYTFcIiwgXCJcXHU1QkRGXFx1NjJGNlxcdTY0QUVcXHU2NEU2XFx1NjcyRFxcdTZCQkFcXHU4NUE5XFx1OTZEMVxcdTc2OTBcXHU5QkQ2XFx1NjM0Q1xcdTkzMDZcXHU5QkFCXFx1NzZCRlxcdTY2NTJcXHU0RTA5XFx1NTA5OFxcdTUzQzJcXHU1QzcxXFx1NjBFOFxcdTY0OTJcXHU2NTYzXFx1Njg1RlxcdTcxRTZcXHU3M0NBXFx1NzUyM1xcdTdCOTdcXHU3RTgyXFx1ODY5NVxcdThCODNcXHU4Q0RCXFx1OTE3OFxcdTk5MTBcXHU2NUFDXFx1NjZBQlxcdTZCOEJcXHU0RUQ1XFx1NEVENFxcdTRGM0FcXHU0RjdGXFx1NTIzQVxcdTUzRjhcXHU1M0YyXFx1NTVFM1xcdTU2REJcXHU1OEVCXFx1NTlDQlxcdTU5QzlcXHU1OUZGXFx1NUI1MFxcdTVDNERcXHU1RTAyXFx1NUUyQlxcdTVGRDdcXHU2MDFEXFx1NjMwN1xcdTY1MkZcXHU1QjVDXFx1NjVBRlxcdTY1QkRcXHU2NUU4XFx1Njc5RFxcdTZCNjJcXHU2QjdCXFx1NkMwRlxcdTczNDVcXHU3OTQ5XFx1NzlDMVxcdTdDRjhcXHU3RDE5XFx1N0QyQlxcdTgwQTJcXHU4MTAyXFx1ODFGM1xcdTg5OTZcXHU4QTVFXFx1OEE2OVxcdThBNjZcXHU4QThDXFx1OEFFRVxcdThDQzdcXHU4Q0RDXFx1OTZDQ1xcdTk4RkNcXHU2QjZGXFx1NEU4QlxcdTRGM0NcXHU0RjhEXFx1NTE1MFxcdTVCNTdcXHU1QkZBXFx1NjE0OFxcdTYzMDFcXHU2NjQyXCJdLFxuICAgICAgW1wiYmNhMVwiLCBcIlxcdTZCMjFcXHU2RUNCXFx1NkNCQlxcdTcyM0VcXHU3NEJEXFx1NzVENFxcdTc4QzFcXHU3OTNBXFx1ODAwQ1xcdTgwMzNcXHU4MUVBXFx1ODQ5NFxcdThGOUVcXHU2QzUwXFx1OUU3RlxcdTVGMEZcXHU4QjU4XFx1OUQyQlxcdTdBRkFcXHU4RUY4XFx1NUI4RFxcdTk2RUJcXHU0RTAzXFx1NTNGMVxcdTU3RjdcXHU1OTMxXFx1NUFDOVxcdTVCQTRcXHU2MDg5XFx1NkU3RlxcdTZGMDZcXHU3NUJFXFx1OENFQVxcdTVCOUZcXHU4NTAwXFx1N0JFMFxcdTUwNzJcXHU2N0Y0XFx1ODI5RFxcdTVDNjFcXHU4NTRBXFx1N0UxRVxcdTgyMEVcXHU1MTk5XFx1NUMwNFxcdTYzNjhcXHU4RDY2XFx1NjU5Q1xcdTcxNkVcXHU3OTNFXFx1N0QxN1xcdTgwMDVcXHU4QjFEXFx1OEVDQVxcdTkwNkVcXHU4NkM3XFx1OTBBQVxcdTUwMUZcXHU1MkZBXFx1NUMzQVxcdTY3NTNcXHU3MDdDXFx1NzIzNVxcdTkxNENcXHU5MUM4XFx1OTMyQlxcdTgyRTVcXHU1QkMyXFx1NUYzMVxcdTYwRjlcXHU0RTNCXFx1NTNENlxcdTVCODhcXHU2MjRCXFx1NjczMVxcdTZCOEFcXHU3MkU5XFx1NzNFMFxcdTdBMkVcXHU4MTZCXFx1OERBM1xcdTkxNTJcXHU5OTk2XFx1NTExMlxcdTUzRDdcXHU1NDZBXFx1NUJGRlxcdTYzODhcXHU2QTM5XFx1N0RBQ1xcdTk3MDBcXHU1NkRBXFx1NTNDRVxcdTU0NjhcIl0sXG4gICAgICBbXCJiZGExXCIsIFwiXFx1NUI5N1xcdTVDMzFcXHU1RERFXFx1NEZFRVxcdTYxMDFcXHU2MkZFXFx1NkQzMlxcdTc5QzBcXHU3OUNCXFx1N0Q0MlxcdTdFNERcXHU3RkQyXFx1ODFFRFxcdTgyMUZcXHU4NDkwXFx1ODg0NlxcdTg5NzJcXHU4QjkwXFx1OEU3NFxcdThGMkZcXHU5MDMxXFx1OTE0QlxcdTkxNkNcXHU5NkM2XFx1OTE5Q1xcdTRFQzBcXHU0RjRGXFx1NTE0NVxcdTUzNDFcXHU1RjkzXFx1NjIwRVxcdTY3RDRcXHU2QzQxXFx1NkUwQlxcdTczNjNcXHU3RTI2XFx1OTFDRFxcdTkyODNcXHU1M0Q0XFx1NTkxOVxcdTVCQkZcXHU2REQxXFx1Nzk1RFxcdTdFMkVcXHU3QzlCXFx1NTg3RVxcdTcxOUZcXHU1MUZBXFx1ODg1M1xcdThGRjBcXHU0RkNBXFx1NUNGQlxcdTY2MjVcXHU3N0FDXFx1N0FFM1xcdTgyMUNcXHU5OUZGXFx1NTFDNlxcdTVGQUFcXHU2NUVDXFx1Njk2RlxcdTZCODlcXHU2REYzXFx1NkU5NlxcdTZGNjRcXHU3NkZFXFx1N0QxNFxcdTVERTFcXHU5MDc1XFx1OTE4N1xcdTk4MDZcXHU1MUU2XFx1NTIxRFxcdTYyNDBcXHU2NjkxXFx1NjZEOVxcdTZFMUFcXHU1RUI2XFx1N0REMlxcdTdGNzJcXHU2NkY4XFx1ODVBRlxcdTg1RjdcXHU4QUY4XFx1NTJBOVxcdTUzRDlcXHU1OTczXFx1NUU4RlxcdTVGOTBcXHU2MDU1XFx1OTJFNFxcdTk2NjRcXHU1MEI3XFx1NTExRlwiXSxcbiAgICAgIFtcImJlYTFcIiwgXCJcXHU1MkREXFx1NTMyMFxcdTUzNDdcXHU1M0VDXFx1NTRFOFxcdTU1NDZcXHU1NTMxXFx1NTYxN1xcdTU5NjhcXHU1OUJFXFx1NUEzQ1xcdTVCQjVcXHU1QzA2XFx1NUMwRlxcdTVDMTFcXHU1QzFBXFx1NUU4NFxcdTVFOEFcXHU1RUUwXFx1NUY3MFxcdTYyN0ZcXHU2Mjg0XFx1NjJEQlxcdTYzOENcXHU2Mzc3XFx1NjYwN1xcdTY2MENcXHU2NjJEXFx1NjY3NlxcdTY3N0VcXHU2OEEyXFx1NkExRlxcdTZBMzVcXHU2Q0JDXFx1NkQ4OFxcdTZFMDlcXHU2RTU4XFx1NzEzQ1xcdTcxMjZcXHU3MTY3XFx1NzVDN1xcdTc3MDFcXHU3ODVEXFx1NzkwMVxcdTc5NjVcXHU3OUYwXFx1N0FFMFxcdTdCMTFcXHU3Q0E3XFx1N0QzOVxcdTgwOTZcXHU4M0Q2XFx1ODQ4QlxcdTg1NDlcXHU4ODVEXFx1ODhGM1xcdThBMUZcXHU4QTNDXFx1OEE1NFxcdThBNzNcXHU4QzYxXFx1OENERVxcdTkxQTRcXHU5MjY2XFx1OTM3RVxcdTk0MThcXHU5NjlDXFx1OTc5OFxcdTRFMEFcXHU0RTA4XFx1NEUxRVxcdTRFNTdcXHU1MTk3XFx1NTI3MFxcdTU3Q0VcXHU1ODM0XFx1NThDQ1xcdTVCMjJcXHU1RTM4XFx1NjBDNVxcdTY0RkVcXHU2NzYxXFx1Njc1NlxcdTZENDRcXHU3MkI2XFx1NzU3M1xcdTdBNjNcXHU4NEI4XFx1OEI3MlxcdTkxQjhcXHU5MzIwXFx1NTYzMVxcdTU3RjRcXHU5OEZFXCJdLFxuICAgICAgW1wiYmZhMVwiLCBcIlxcdTYyRURcXHU2OTBEXFx1NkI5NlxcdTcxRURcXHU3RTU0XFx1ODA3N1xcdTgyNzJcXHU4OUU2XFx1OThERlxcdTg3NTVcXHU4RkIxXFx1NUMzQlxcdTRGMzhcXHU0RkUxXFx1NEZCNVxcdTU1MDdcXHU1QTIwXFx1NUJERFxcdTVCRTlcXHU1RkMzXFx1NjE0RVxcdTYzMkZcXHU2NUIwXFx1NjY0QlxcdTY4RUVcXHU2OTlCXFx1NkQ3OFxcdTZERjFcXHU3NTMzXFx1NzVCOVxcdTc3MUZcXHU3OTVFXFx1NzlFNlxcdTdEMzNcXHU4MUUzXFx1ODJBRlxcdTg1QUFcXHU4OUFBXFx1OEEzQVxcdThFQUJcXHU4RjlCXFx1OTAzMlxcdTkxRERcXHU5NzA3XFx1NEVCQVxcdTRFQzFcXHU1MjAzXFx1NTg3NVxcdTU4RUNcXHU1QzBCXFx1NzUxQVxcdTVDM0RcXHU4MTRFXFx1OEEwQVxcdThGQzVcXHU5NjYzXFx1OTc2RFxcdTdCMjVcXHU4QUNGXFx1OTgwOFxcdTkxNjJcXHU1NkYzXFx1NTNBOFxcdTkwMTdcXHU1NDM5XFx1NTc4MlxcdTVFMjVcXHU2M0E4XFx1NkMzNFxcdTcwOEFcXHU3NzYxXFx1N0M4QlxcdTdGRTBcXHU4ODcwXFx1OTA0MlxcdTkxNTRcXHU5MzEwXFx1OTMxOFxcdTk2OEZcXHU3NDVFXFx1OUFDNFxcdTVEMDdcXHU1RDY5XFx1NjU3MFxcdTY3QTJcXHU4REE4XFx1OTZEQlxcdTYzNkVcXHU2NzQ5XFx1NjkxOVxcdTgzQzVcXHU5ODE3XFx1OTZDMFxcdTg4RkVcIl0sXG4gICAgICBbXCJjMGExXCIsIFwiXFx1NkY4NFxcdTY0N0FcXHU1QkY4XFx1NEUxNlxcdTcwMkNcXHU3NTVEXFx1NjYyRlxcdTUxQzRcXHU1MjM2XFx1NTJFMlxcdTU5RDNcXHU1RjgxXFx1NjAyN1xcdTYyMTBcXHU2NTNGXFx1NjU3NFxcdTY2MUZcXHU2Njc0XFx1NjhGMlxcdTY4MTZcXHU2QjYzXFx1NkUwNVxcdTcyNzJcXHU3NTFGXFx1NzZEQlxcdTdDQkVcXHU4MDU2XFx1NThGMFxcdTg4RkRcXHU4OTdGXFx1OEFBMFxcdThBOTNcXHU4QUNCXFx1OTAxRFxcdTkxOTJcXHU5NzUyXFx1OTc1OVxcdTY1ODlcXHU3QTBFXFx1ODEwNlxcdTk2QkJcXHU1RTJEXFx1NjBEQ1xcdTYyMUFcXHU2NUE1XFx1NjYxNFxcdTY3OTBcXHU3N0YzXFx1N0E0RFxcdTdDNERcXHU3RTNFXFx1ODEwQVxcdThDQUNcXHU4RDY0XFx1OERFMVxcdThFNUZcXHU3OEE5XFx1NTIwN1xcdTYyRDlcXHU2M0E1XFx1NjQ0MlxcdTYyOThcXHU4QTJEXFx1N0E4M1xcdTdCQzBcXHU4QUFDXFx1OTZFQVxcdTdENzZcXHU4MjBDXFx1ODc0OVxcdTRFRDlcXHU1MTQ4XFx1NTM0M1xcdTUzNjBcXHU1QkEzXFx1NUMwMlxcdTVDMTZcXHU1REREXFx1NjIyNlxcdTYyNDdcXHU2NEIwXFx1NjgxM1xcdTY4MzRcXHU2Q0M5XFx1NkQ0NVxcdTZEMTdcXHU2N0QzXFx1NkY1Q1xcdTcxNEVcXHU3MTdEXFx1NjVDQlxcdTdBN0ZcXHU3QkFEXFx1N0REQVwiXSxcbiAgICAgIFtcImMxYTFcIiwgXCJcXHU3RTRBXFx1N0ZBOFxcdTgxN0FcXHU4MjFCXFx1ODIzOVxcdTg1QTZcXHU4QTZFXFx1OENDRVxcdThERjVcXHU5MDc4XFx1OTA3N1xcdTkyQURcXHU5MjkxXFx1OTU4M1xcdTlCQUVcXHU1MjREXFx1NTU4NFxcdTZGMzhcXHU3MTM2XFx1NTE2OFxcdTc5ODVcXHU3RTU1XFx1ODFCM1xcdTdDQ0VcXHU1NjRDXFx1NTg1MVxcdTVDQThcXHU2M0FBXFx1NjZGRVxcdTY2RkRcXHU2OTVBXFx1NzJEOVxcdTc1OEZcXHU3NThFXFx1NzkwRVxcdTc5NTZcXHU3OURGXFx1N0M5N1xcdTdEMjBcXHU3RDQ0XFx1ODYwN1xcdThBMzRcXHU5NjNCXFx1OTA2MVxcdTlGMjBcXHU1MEU3XFx1NTI3NVxcdTUzQ0NcXHU1M0UyXFx1NTAwOVxcdTU1QUFcXHU1OEVFXFx1NTk0RlxcdTcyM0RcXHU1QjhCXFx1NUM2NFxcdTUzMURcXHU2MEUzXFx1NjBGM1xcdTYzNUNcXHU2MzgzXFx1NjMzRlxcdTYzQkJcXHU2NENEXFx1NjVFOVxcdTY2RjlcXHU1REUzXFx1NjlDRFxcdTY5RkRcXHU2RjE1XFx1NzFFNVxcdTRFODlcXHU3NUU5XFx1NzZGOFxcdTdBOTNcXHU3Q0RGXFx1N0RDRlxcdTdEOUNcXHU4MDYxXFx1ODM0OVxcdTgzNThcXHU4NDZDXFx1ODRCQ1xcdTg1RkJcXHU4OEM1XFx1OEQ3MFxcdTkwMDFcXHU5MDZEXFx1OTM5N1xcdTk3MUNcXHU5QTEyXFx1NTBDRlxcdTU4OTdcXHU2MThFXCJdLFxuICAgICAgW1wiYzJhMVwiLCBcIlxcdTgxRDNcXHU4NTM1XFx1OEQwOFxcdTkwMjBcXHU0RkMzXFx1NTA3NFxcdTUyNDdcXHU1MzczXFx1NjA2RlxcdTYzNDlcXHU2NzVGXFx1NkUyQ1xcdThEQjNcXHU5MDFGXFx1NEZEN1xcdTVDNUVcXHU4Q0NBXFx1NjVDRlxcdTdEOUFcXHU1MzUyXFx1ODg5NlxcdTUxNzZcXHU2M0MzXFx1NUI1OFxcdTVCNkJcXHU1QzBBXFx1NjQwRFxcdTY3NTFcXHU5MDVDXFx1NEVENlxcdTU5MUFcXHU1OTJBXFx1NkM3MFxcdThBNTFcXHU1NTNFXFx1NTgxNVxcdTU5QTVcXHU2MEYwXFx1NjI1M1xcdTY3QzFcXHU4MjM1XFx1Njk1NVxcdTk2NDBcXHU5OUM0XFx1OUEyOFxcdTRGNTNcXHU1ODA2XFx1NUJGRVxcdTgwMTBcXHU1Q0IxXFx1NUUyRlxcdTVGODVcXHU2MDIwXFx1NjE0QlxcdTYyMzRcXHU2NkZGXFx1NkNGMFxcdTZFREVcXHU4MENFXFx1ODE3RlxcdTgyRDRcXHU4ODhCXFx1OENCOFxcdTkwMDBcXHU5MDJFXFx1OTY4QVxcdTlFREJcXHU5QkRCXFx1NEVFM1xcdTUzRjBcXHU1OTI3XFx1N0IyQ1xcdTkxOERcXHU5ODRDXFx1OURGOVxcdTZFRERcXHU3MDI3XFx1NTM1M1xcdTU1NDRcXHU1Qjg1XFx1NjI1OFxcdTYyOUVcXHU2MkQzXFx1NkNBMlxcdTZGRUZcXHU3NDIyXFx1OEExN1xcdTk0MzhcXHU2RkMxXFx1OEFGRVxcdTgzMzhcXHU1MUU3XFx1ODZGOFxcdTUzRUFcIl0sXG4gICAgICBbXCJjM2ExXCIsIFwiXFx1NTNFOVxcdTRGNDZcXHU5MDU0XFx1OEZCMFxcdTU5NkFcXHU4MTMxXFx1NURGRFxcdTdBRUFcXHU4RkJGXFx1NjhEQVxcdThDMzdcXHU3MkY4XFx1OUM0OFxcdTZBM0RcXHU4QUIwXFx1NEUzOVxcdTUzNThcXHU1NjA2XFx1NTc2NlxcdTYyQzVcXHU2M0EyXFx1NjVFNlxcdTZCNEVcXHU2REUxXFx1NkU1QlxcdTcwQURcXHU3N0VEXFx1N0FFRlxcdTdCQUFcXHU3REJCXFx1ODAzRFxcdTgwQzZcXHU4NkNCXFx1OEE5NVxcdTkzNUJcXHU1NkUzXFx1NThDN1xcdTVGM0VcXHU2NUFEXFx1NjY5NlxcdTZBODBcXHU2QkI1XFx1NzUzN1xcdThBQzdcXHU1MDI0XFx1NzdFNVxcdTU3MzBcXHU1RjFCXFx1NjA2NVxcdTY2N0FcXHU2QzYwXFx1NzVGNFxcdTdBMUFcXHU3RjZFXFx1ODFGNFxcdTg3MThcXHU5MDQ1XFx1OTlCM1xcdTdCQzlcXHU3NTVDXFx1N0FGOVxcdTdCNTFcXHU4NEM0XFx1OTAxMFxcdTc5RTlcXHU3QTkyXFx1ODMzNlxcdTVBRTFcXHU3NzQwXFx1NEUyRFxcdTRFRjJcXHU1Qjk5XFx1NUZFMFxcdTYyQkRcXHU2NjNDXFx1NjdGMVxcdTZDRThcXHU4NjZCXFx1ODg3N1xcdThBM0JcXHU5MTRFXFx1OTJGM1xcdTk5RDBcXHU2QTE3XFx1NzAyNlxcdTczMkFcXHU4MkU3XFx1ODQ1N1xcdThDQUZcXHU0RTAxXFx1NTE0NlxcdTUxQ0JcXHU1NThCXFx1NUJGNVwiXSxcbiAgICAgIFtcImM0YTFcIiwgXCJcXHU1RTE2XFx1NUUzM1xcdTVFODFcXHU1RjE0XFx1NUYzNVxcdTVGNkJcXHU1RkI0XFx1NjFGMlxcdTYzMTFcXHU2NkEyXFx1NjcxRFxcdTZGNkVcXHU3MjUyXFx1NzUzQVxcdTc3M0FcXHU4MDc0XFx1ODEzOVxcdTgxNzhcXHU4Nzc2XFx1OEFCRlxcdThBRENcXHU4RDg1XFx1OERGM1xcdTkyOUFcXHU5NTc3XFx1OTgwMlxcdTlDRTVcXHU1MkM1XFx1NjM1N1xcdTc2RjRcXHU2NzE1XFx1NkM4OFxcdTczQ0RcXHU4Q0MzXFx1OTNBRVxcdTk2NzNcXHU2RDI1XFx1NTg5Q1xcdTY5MEVcXHU2OUNDXFx1OEZGRFxcdTkzOUFcXHU3NURCXFx1OTAxQVxcdTU4NUFcXHU2ODAyXFx1NjNCNFxcdTY5RkJcXHU0RjQzXFx1NkYyQ1xcdTY3RDhcXHU4RkJCXFx1ODUyNlxcdTdEQjRcXHU5MzU0XFx1NjkzRlxcdTZGNzBcXHU1NzZBXFx1NThGN1xcdTVCMkNcXHU3RDJDXFx1NzIyQVxcdTU0MEFcXHU5MUUzXFx1OURCNFxcdTRFQURcXHU0RjRFXFx1NTA1Q1xcdTUwNzVcXHU1MjQzXFx1OEM5RVxcdTU0NDhcXHU1ODI0XFx1NUI5QVxcdTVFMURcXHU1RTk1XFx1NUVBRFxcdTVFRjdcXHU1RjFGXFx1NjA4Q1xcdTYyQjVcXHU2MzNBXFx1NjNEMFxcdTY4QUZcXHU2QzQwXFx1Nzg4N1xcdTc5OEVcXHU3QTBCXFx1N0RFMFxcdTgyNDdcXHU4QTAyXFx1OEFFNlxcdThFNDRcXHU5MDEzXCJdLFxuICAgICAgW1wiYzVhMVwiLCBcIlxcdTkwQjhcXHU5MTJEXFx1OTFEOFxcdTlGMEVcXHU2Q0U1XFx1NjQ1OFxcdTY0RTJcXHU2NTc1XFx1NkVGNFxcdTc2ODRcXHU3QjFCXFx1OTA2OVxcdTkzRDFcXHU2RUJBXFx1NTRGMlxcdTVGQjlcXHU2NEE0XFx1OEY0RFxcdThGRURcXHU5MjQ0XFx1NTE3OFxcdTU4NkJcXHU1OTI5XFx1NUM1NVxcdTVFOTdcXHU2REZCXFx1N0U4RlxcdTc1MUNcXHU4Q0JDXFx1OEVFMlxcdTk4NUJcXHU3MEI5XFx1NEYxRFxcdTZCQkZcXHU2RkIxXFx1NzUzMFxcdTk2RkJcXHU1MTRFXFx1NTQxMFxcdTU4MzVcXHU1ODU3XFx1NTlBQ1xcdTVDNjBcXHU1RjkyXFx1NjU5N1xcdTY3NUNcXHU2RTIxXFx1NzY3QlxcdTgzREZcXHU4Q0VEXFx1OTAxNFxcdTkwRkRcXHU5MzREXFx1NzgyNVxcdTc4M0FcXHU1MkFBXFx1NUVBNlxcdTU3MUZcXHU1OTc0XFx1NjAxMlxcdTUwMTJcXHU1MTVBXFx1NTFBQ1xcdTUxQ0RcXHU1MjAwXFx1NTUxMFxcdTU4NTRcXHU1ODU4XFx1NTk1N1xcdTVCOTVcXHU1Q0Y2XFx1NUQ4QlxcdTYwQkNcXHU2Mjk1XFx1NjQyRFxcdTY3NzFcXHU2ODQzXFx1NjhCQ1xcdTY4REZcXHU3NkQ3XFx1NkREOFxcdTZFNkZcXHU2RDlCXFx1NzA2RlxcdTcxQzhcXHU1RjUzXFx1NzVEOFxcdTc5NzdcXHU3QjQ5XFx1N0I1NFxcdTdCNTJcXHU3Q0Q2XFx1N0Q3MVxcdTUyMzBcIl0sXG4gICAgICBbXCJjNmExXCIsIFwiXFx1ODQ2M1xcdTg1NjlcXHU4NUU0XFx1OEEwRVxcdThCMDRcXHU4QzQ2XFx1OEUwRlxcdTkwMDNcXHU5MDBGXFx1OTQxOVxcdTk2NzZcXHU5ODJEXFx1OUEzMFxcdTk1RDhcXHU1MENEXFx1NTJENVxcdTU0MENcXHU1ODAyXFx1NUMwRVxcdTYxQTdcXHU2NDlFXFx1NkQxRVxcdTc3QjNcXHU3QUU1XFx1ODBGNFxcdTg0MDRcXHU5MDUzXFx1OTI4NVxcdTVDRTBcXHU5RDA3XFx1NTMzRlxcdTVGOTdcXHU1RkIzXFx1NkQ5Q1xcdTcyNzlcXHU3NzYzXFx1NzlCRlxcdTdCRTRcXHU2QkQyXFx1NzJFQ1xcdThBQURcXHU2ODAzXFx1NkE2MVxcdTUxRjhcXHU3QTgxXFx1NjkzNFxcdTVDNEFcXHU5Q0Y2XFx1ODJFQlxcdTVCQzVcXHU5MTQ5XFx1NzAxRVxcdTU2NzhcXHU1QzZGXFx1NjBDN1xcdTY1NjZcXHU2QzhDXFx1OEM1QVxcdTkwNDFcXHU5ODEzXFx1NTQ1MVxcdTY2QzdcXHU5MjBEXFx1NTk0OFxcdTkwQTNcXHU1MTg1XFx1NEU0RFxcdTUxRUFcXHU4NTk5XFx1OEIwRVxcdTcwNThcXHU2MzdBXFx1OTM0QlxcdTY5NjJcXHU5OUI0XFx1N0UwNFxcdTc1NzdcXHU1MzU3XFx1Njk2MFxcdThFREZcXHU5NkUzXFx1NkM1RFxcdTRFOENcXHU1QzNDXFx1NUYxMFxcdThGRTlcXHU1MzAyXFx1OENEMVxcdTgwODlcXHU4Njc5XFx1NUVGRlxcdTY1RTVcXHU0RTczXFx1NTE2NVwiXSxcbiAgICAgIFtcImM3YTFcIiwgXCJcXHU1OTgyXFx1NUMzRlxcdTk3RUVcXHU0RUZCXFx1NTk4QVxcdTVGQ0RcXHU4QThEXFx1NkZFMVxcdTc5QjBcXHU3OTYyXFx1NUJFN1xcdTg0NzFcXHU3MzJCXFx1NzFCMVxcdTVFNzRcXHU1RkY1XFx1NjM3QlxcdTY0OUFcXHU3MUMzXFx1N0M5OFxcdTRFNDNcXHU1RUZDXFx1NEU0QlxcdTU3RENcXHU1NkEyXFx1NjBBOVxcdTZGQzNcXHU3RDBEXFx1ODBGRFxcdTgxMzNcXHU4MUJGXFx1OEZCMlxcdTg5OTdcXHU4NkE0XFx1NURGNFxcdTYyOEFcXHU2NEFEXFx1ODk4N1xcdTY3NzdcXHU2Q0UyXFx1NkQzRVxcdTc0MzZcXHU3ODM0XFx1NUE0NlxcdTdGNzVcXHU4MkFEXFx1OTlBQ1xcdTRGRjNcXHU1RUMzXFx1NjJERFxcdTYzOTJcXHU2NTU3XFx1Njc2RlxcdTc2QzNcXHU3MjRDXFx1ODBDQ1xcdTgwQkFcXHU4RjI5XFx1OTE0RFxcdTUwMERcXHU1N0Y5XFx1NUE5MlxcdTY4ODVcXHU2OTczXFx1NzE2NFxcdTcyRkRcXHU4Q0I3XFx1NThGMlxcdThDRTBcXHU5NjZBXFx1OTAxOVxcdTg3N0ZcXHU3OUU0XFx1NzdFN1xcdTg0MjlcXHU0RjJGXFx1NTI2NVxcdTUzNUFcXHU2MkNEXFx1NjdDRlxcdTZDQ0FcXHU3NjdEXFx1N0I5NFxcdTdDOTVcXHU4MjM2XFx1ODU4NFxcdThGRUJcXHU2NkREXFx1NkYyMFxcdTcyMDZcXHU3RTFCXFx1ODNBQlxcdTk5QzFcXHU5RUE2XCJdLFxuICAgICAgW1wiYzhhMVwiLCBcIlxcdTUxRkRcXHU3QkIxXFx1Nzg3MlxcdTdCQjhcXHU4MDg3XFx1N0I0OFxcdTZBRThcXHU1RTYxXFx1ODA4Q1xcdTc1NTFcXHU3NTYwXFx1NTE2QlxcdTkyNjJcXHU2RThDXFx1NzY3QVxcdTkxOTdcXHU5QUVBXFx1NEYxMFxcdTdGNzBcXHU2MjlDXFx1N0I0RlxcdTk1QTVcXHU5Q0U5XFx1NTY3QVxcdTU4NTlcXHU4NkU0XFx1OTZCQ1xcdTRGMzRcXHU1MjI0XFx1NTM0QVxcdTUzQ0RcXHU1M0RCXFx1NUUwNlxcdTY0MkNcXHU2NTkxXFx1Njc3RlxcdTZDM0VcXHU2QzRFXFx1NzI0OFxcdTcyQUZcXHU3M0VEXFx1NzU1NFxcdTdFNDFcXHU4MjJDXFx1ODVFOVxcdThDQTlcXHU3QkM0XFx1OTFDNlxcdTcxNjlcXHU5ODEyXFx1OThFRlxcdTYzM0RcXHU2NjY5XFx1NzU2QVxcdTc2RTRcXHU3OEQwXFx1ODU0M1xcdTg2RUVcXHU1MzJBXFx1NTM1MVxcdTU0MjZcXHU1OTgzXFx1NUU4N1xcdTVGN0NcXHU2MEIyXFx1NjI0OVxcdTYyNzlcXHU2MkFCXFx1NjU5MFxcdTZCRDRcXHU2Q0NDXFx1NzVCMlxcdTc2QUVcXHU3ODkxXFx1NzlEOFxcdTdEQ0JcXHU3Rjc3XFx1ODBBNVxcdTg4QUJcXHU4QUI5XFx1OENCQlxcdTkwN0ZcXHU5NzVFXFx1OThEQlxcdTZBMEJcXHU3QzM4XFx1NTA5OVxcdTVDM0VcXHU1RkFFXFx1Njc4N1xcdTZCRDhcXHU3NDM1XFx1NzcwOVxcdTdGOEVcIl0sXG4gICAgICBbXCJjOWExXCIsIFwiXFx1OUYzQlxcdTY3Q0FcXHU3QTE3XFx1NTMzOVxcdTc1OEJcXHU5QUVEXFx1NUY2NlxcdTgxOURcXHU4M0YxXFx1ODA5OFxcdTVGM0NcXHU1RkM1XFx1NzU2MlxcdTdCNDZcXHU5MDNDXFx1Njg2N1xcdTU5RUJcXHU1QTlCXFx1N0QxMFxcdTc2N0VcXHU4QjJDXFx1NEZGNVxcdTVGNkFcXHU2QTE5XFx1NkMzN1xcdTZGMDJcXHU3NEUyXFx1Nzk2OFxcdTg4NjhcXHU4QTU1XFx1OEM3OVxcdTVFREZcXHU2M0NGXFx1NzVDNVxcdTc5RDJcXHU4MkQ3XFx1OTMyOFxcdTkyRjJcXHU4NDlDXFx1ODZFRFxcdTlDMkRcXHU1NEMxXFx1NUY2Q1xcdTY1OENcXHU2RDVDXFx1NzAxNVxcdThDQTdcXHU4Q0QzXFx1OTgzQlxcdTY1NEZcXHU3NEY2XFx1NEUwRFxcdTRFRDhcXHU1N0UwXFx1NTkyQlxcdTVBNjZcXHU1QkNDXFx1NTFBOFxcdTVFMDNcXHU1RTlDXFx1NjAxNlxcdTYyNzZcXHU2NTc3XFx1NjVBN1xcdTY2NkVcXHU2RDZFXFx1NzIzNlxcdTdCMjZcXHU4MTUwXFx1ODE5QVxcdTgyOTlcXHU4QjVDXFx1OENBMFxcdThDRTZcXHU4RDc0XFx1OTYxQ1xcdTk2NDRcXHU0RkFFXFx1NjRBQlxcdTZCNjZcXHU4MjFFXFx1ODQ2MVxcdTg1NkFcXHU5MEU4XFx1NUMwMVxcdTY5NTNcXHU5OEE4XFx1ODQ3QVxcdTg1NTdcXHU0RjBGXFx1NTI2RlxcdTVGQTlcXHU1RTQ1XFx1NjcwRFwiXSxcbiAgICAgIFtcImNhYTFcIiwgXCJcXHU3OThGXFx1ODE3OVxcdTg5MDdcXHU4OTg2XFx1NkRGNVxcdTVGMTdcXHU2MjU1XFx1NkNCOFxcdTRFQ0ZcXHU3MjY5XFx1OUI5MlxcdTUyMDZcXHU1NDNCXFx1NTY3NFxcdTU4QjNcXHU2MUE0XFx1NjI2RVxcdTcxMUFcXHU1OTZFXFx1N0M4OVxcdTdDREVcXHU3RDFCXFx1OTZGMFxcdTY1ODdcXHU4MDVFXFx1NEUxOVxcdTRGNzVcXHU1MTc1XFx1NTg0MFxcdTVFNjNcXHU1RTczXFx1NUYwQVxcdTY3QzRcXHU0RTI2XFx1ODUzRFxcdTk1ODlcXHU5NjVCXFx1N0M3M1xcdTk4MDFcXHU1MEZCXFx1NThDMVxcdTc2NTZcXHU3OEE3XFx1NTIyNVxcdTc3QTVcXHU4NTExXFx1N0I4NlxcdTUwNEZcXHU1OTA5XFx1NzI0N1xcdTdCQzdcXHU3REU4XFx1OEZCQVxcdThGRDRcXHU5MDREXFx1NEZCRlxcdTUyQzlcXHU1QTI5XFx1NUYwMVxcdTk3QURcXHU0RkREXFx1ODIxN1xcdTkyRUFcXHU1NzAzXFx1NjM1NVxcdTZCNjlcXHU3NTJCXFx1ODhEQ1xcdThGMTRcXHU3QTQyXFx1NTJERlxcdTU4OTNcXHU2MTU1XFx1NjIwQVxcdTY2QUVcXHU2QkNEXFx1N0MzRlxcdTgzRTlcXHU1MDIzXFx1NEZGOFxcdTUzMDVcXHU1NDQ2XFx1NTgzMVxcdTU5NDlcXHU1QjlEXFx1NUNGMFxcdTVDRUZcXHU1RDI5XFx1NUU5NlxcdTYyQjFcXHU2MzY3XFx1NjUzRVxcdTY1QjlcXHU2NzBCXCJdLFxuICAgICAgW1wiY2JhMVwiLCBcIlxcdTZDRDVcXHU2Q0UxXFx1NzBGOVxcdTc4MzJcXHU3RTJCXFx1ODBERVxcdTgyQjNcXHU4NDBDXFx1ODRFQ1xcdTg3MDJcXHU4OTEyXFx1OEEyQVxcdThDNEFcXHU5MEE2XFx1OTJEMlxcdTk4RkRcXHU5Q0YzXFx1OUQ2Q1xcdTRFNEZcXHU0RUExXFx1NTA4RFxcdTUyNTZcXHU1NzRBXFx1NTlBOFxcdTVFM0RcXHU1RkQ4XFx1NUZEOVxcdTYyM0ZcXHU2NkI0XFx1NjcxQlxcdTY3RDBcXHU2OEQyXFx1NTE5MlxcdTdEMjFcXHU4MEFBXFx1ODFBOFxcdThCMDBcXHU4QzhDXFx1OENCRlxcdTkyN0VcXHU5NjMyXFx1NTQyMFxcdTk4MkNcXHU1MzE3XFx1NTBENVxcdTUzNUNcXHU1OEE4XFx1NjRCMlxcdTY3MzRcXHU3MjY3XFx1Nzc2NlxcdTdBNDZcXHU5MUU2XFx1NTJDM1xcdTZDQTFcXHU2Qjg2XFx1NTgwMFxcdTVFNENcXHU1OTU0XFx1NjcyQ1xcdTdGRkJcXHU1MUUxXFx1NzZDNlxcdTY0NjlcXHU3OEU4XFx1OUI1NFxcdTlFQkJcXHU1N0NCXFx1NTlCOVxcdTY2MjdcXHU2NzlBXFx1NkJDRVxcdTU0RTlcXHU2OUQ5XFx1NUU1NVxcdTgxOUNcXHU2Nzk1XFx1OUJBQVxcdTY3RkVcXHU5QzUyXFx1Njg1RFxcdTRFQTZcXHU0RkUzXFx1NTNDOFxcdTYyQjlcXHU2NzJCXFx1NkNBQlxcdThGQzRcXHU0RkFEXFx1N0U2RFxcdTlFQkZcXHU0RTA3XFx1NjE2MlxcdTZFODBcIl0sXG4gICAgICBbXCJjY2ExXCIsIFwiXFx1NkYyQlxcdTg1MTNcXHU1NDczXFx1NjcyQVxcdTlCNDVcXHU1REYzXFx1N0I5NVxcdTVDQUNcXHU1QkM2XFx1ODcxQ1xcdTZFNEFcXHU4NEQxXFx1N0ExNFxcdTgxMDhcXHU1OTk5XFx1N0M4RFxcdTZDMTFcXHU3NzIwXFx1NTJEOVxcdTU5MjJcXHU3MTIxXFx1NzI1RlxcdTc3REJcXHU5NzI3XFx1OUQ2MVxcdTY5MEJcXHU1QTdGXFx1NUExOFxcdTUxQTVcXHU1NDBEXFx1NTQ3RFxcdTY2MEVcXHU3NkRGXFx1OEZGN1xcdTkyOThcXHU5Q0Y0XFx1NTlFQVxcdTcyNURcXHU2RUM1XFx1NTE0RFxcdTY4QzlcXHU3REJGXFx1N0RFQ1xcdTk3NjJcXHU5RUJBXFx1NjQ3OFxcdTZBMjFcXHU4MzAyXFx1NTk4NFxcdTVCNUZcXHU2QkRCXFx1NzMxQlxcdTc2RjJcXHU3REIyXFx1ODAxN1xcdTg0OTlcXHU1MTMyXFx1NjcyOFxcdTlFRDlcXHU3NkVFXFx1Njc2MlxcdTUyRkZcXHU5OTA1XFx1NUMyNFxcdTYyM0JcXHU3QzdFXFx1OENCMFxcdTU1NEZcXHU2MEI2XFx1N0QwQlxcdTk1ODBcXHU1MzAxXFx1NEU1RlxcdTUxQjZcXHU1OTFDXFx1NzIzQVxcdTgwMzZcXHU5MUNFXFx1NUYyNVxcdTc3RTJcXHU1Mzg0XFx1NUY3OVxcdTdEMDRcXHU4NUFDXFx1OEEzM1xcdThFOERcXHU5NzU2XFx1NjdGM1xcdTg1QUVcXHU5NDUzXFx1NjEwOVxcdTYxMDhcXHU2Q0I5XFx1NzY1MlwiXSxcbiAgICAgIFtcImNkYTFcIiwgXCJcXHU4QUVEXFx1OEYzOFxcdTU1MkZcXHU0RjUxXFx1NTEyQVxcdTUyQzdcXHU1M0NCXFx1NUJBNVxcdTVFN0RcXHU2MEEwXFx1NjE4MlxcdTYzRDZcXHU2NzA5XFx1NjdEQVxcdTZFNjdcXHU2RDhDXFx1NzMzNlxcdTczMzdcXHU3NTMxXFx1Nzk1MFxcdTg4RDVcXHU4QTk4XFx1OTA0QVxcdTkwOTFcXHU5MEY1XFx1OTZDNFxcdTg3OERcXHU1OTE1XFx1NEU4OFxcdTRGNTlcXHU0RTBFXFx1OEE4OVxcdThGM0ZcXHU5ODEwXFx1NTBBRFxcdTVFN0NcXHU1OTk2XFx1NUJCOVxcdTVFQjhcXHU2M0RBXFx1NjNGQVxcdTY0QzFcXHU2NkRDXFx1Njk0QVxcdTY5RDhcXHU2RDBCXFx1NkVCNlxcdTcxOTRcXHU3NTI4XFx1N0FBRlxcdTdGOEFcXHU4MDAwXFx1ODQ0OVxcdTg0QzlcXHU4OTgxXFx1OEIyMVxcdThFMEFcXHU5MDY1XFx1OTY3RFxcdTk5MEFcXHU2MTdFXFx1NjI5MVxcdTZCMzJcXHU2QzgzXFx1NkQ3NFxcdTdGQ0NcXHU3RkZDXFx1NkRDMFxcdTdGODVcXHU4N0JBXFx1ODhGOFxcdTY3NjVcXHU4M0IxXFx1OTgzQ1xcdTk2RjdcXHU2RDFCXFx1N0Q2MVxcdTg0M0RcXHU5MTZBXFx1NEU3MVxcdTUzNzVcXHU1RDUwXFx1NkIwNFxcdTZGRUJcXHU4NUNEXFx1ODYyRFxcdTg5QTdcXHU1MjI5XFx1NTQwRlxcdTVDNjVcXHU2NzRFXFx1NjhBOFxcdTc0MDZcXHU3NDgzXCJdLFxuICAgICAgW1wiY2VhMVwiLCBcIlxcdTc1RTJcXHU4OENGXFx1ODhFMVxcdTkxQ0NcXHU5NkUyXFx1OTY3OFxcdTVGOEJcXHU3Mzg3XFx1N0FDQlxcdTg0NEVcXHU2M0EwXFx1NzU2NVxcdTUyODlcXHU2RDQxXFx1NkU5Q1xcdTc0MDlcXHU3NTU5XFx1Nzg2QlxcdTdDOTJcXHU5Njg2XFx1N0FEQ1xcdTlGOERcXHU0RkI2XFx1NjE2RVxcdTY1QzVcXHU4NjVDXFx1NEU4NlxcdTRFQUVcXHU1MERBXFx1NEUyMVxcdTUxQ0NcXHU1QkVFXFx1NjU5OVxcdTY4ODFcXHU2REJDXFx1NzMxRlxcdTc2NDJcXHU3N0FEXFx1N0ExQ1xcdTdDRTdcXHU4MjZGXFx1OEFEMlxcdTkwN0NcXHU5MUNGXFx1OTY3NVxcdTk4MThcXHU1MjlCXFx1N0REMVxcdTUwMkJcXHU1Mzk4XFx1Njc5N1xcdTZEQ0JcXHU3MUQwXFx1NzQzM1xcdTgxRThcXHU4RjJBXFx1OTZBM1xcdTlDNTdcXHU5RTlGXFx1NzQ2MFxcdTU4NDFcXHU2RDk5XFx1N0QyRlxcdTk4NUVcXHU0RUU0XFx1NEYzNlxcdTRGOEJcXHU1MUI3XFx1NTJCMVxcdTVEQkFcXHU2MDFDXFx1NzNCMlxcdTc5M0NcXHU4MkQzXFx1OTIzNFxcdTk2QjdcXHU5NkY2XFx1OTcwQVxcdTlFOTdcXHU5RjYyXFx1NjZBNlxcdTZCNzRcXHU1MjE3XFx1NTJBM1xcdTcwQzhcXHU4OEMyXFx1NUVDOVxcdTYwNEJcXHU2MTkwXFx1NkYyM1xcdTcxNDlcXHU3QzNFXFx1N0RGNFxcdTgwNkZcIl0sXG4gICAgICBbXCJjZmExXCIsIFwiXFx1ODRFRVxcdTkwMjNcXHU5MzJDXFx1NTQ0MlxcdTlCNkZcXHU2QUQzXFx1NzA4OVxcdThDQzJcXHU4REVGXFx1OTczMlxcdTUyQjRcXHU1QTQxXFx1NUVDQVxcdTVGMDRcXHU2NzE3XFx1Njk3Q1xcdTY5OTRcXHU2RDZBXFx1NkYwRlxcdTcyNjJcXHU3MkZDXFx1N0JFRFxcdTgwMDFcXHU4MDdFXFx1ODc0QlxcdTkwQ0VcXHU1MTZEXFx1OUU5M1xcdTc5ODRcXHU4MDhCXFx1OTMzMlxcdThBRDZcXHU1MDJEXFx1NTQ4Q1xcdThBNzFcXHU2QjZBXFx1OENDNFxcdTgxMDdcXHU2MEQxXFx1NjdBMFxcdTlERjJcXHU0RTk5XFx1NEU5OFxcdTlDMTBcXHU4QTZCXFx1ODVDMVxcdTg1NjhcXHU2OTAwXFx1NkU3RVxcdTc4OTdcXHU4MTU1XCJdLFxuICAgICAgW1wiZDBhMVwiLCBcIlxcdTVGMENcXHU0RTEwXFx1NEUxNVxcdTRFMkFcXHU0RTMxXFx1NEUzNlxcdTRFM0NcXHU0RTNGXFx1NEU0MlxcdTRFNTZcXHU0RTU4XFx1NEU4MlxcdTRFODVcXHU4QzZCXFx1NEU4QVxcdTgyMTJcXHU1RjBEXFx1NEU4RVxcdTRFOUVcXHU0RTlGXFx1NEVBMFxcdTRFQTJcXHU0RUIwXFx1NEVCM1xcdTRFQjZcXHU0RUNFXFx1NEVDRFxcdTRFQzRcXHU0RUM2XFx1NEVDMlxcdTRFRDdcXHU0RURFXFx1NEVFRFxcdTRFREZcXHU0RUY3XFx1NEYwOVxcdTRGNUFcXHU0RjMwXFx1NEY1QlxcdTRGNURcXHU0RjU3XFx1NEY0N1xcdTRGNzZcXHU0Rjg4XFx1NEY4RlxcdTRGOThcXHU0RjdCXFx1NEY2OVxcdTRGNzBcXHU0RjkxXFx1NEY2RlxcdTRGODZcXHU0Rjk2XFx1NTExOFxcdTRGRDRcXHU0RkRGXFx1NEZDRVxcdTRGRDhcXHU0RkRCXFx1NEZEMVxcdTRGREFcXHU0RkQwXFx1NEZFNFxcdTRGRTVcXHU1MDFBXFx1NTAyOFxcdTUwMTRcXHU1MDJBXFx1NTAyNVxcdTUwMDVcXHU0RjFDXFx1NEZGNlxcdTUwMjFcXHU1MDI5XFx1NTAyQ1xcdTRGRkVcXHU0RkVGXFx1NTAxMVxcdTUwMDZcXHU1MDQzXFx1NTA0N1xcdTY3MDNcXHU1MDU1XFx1NTA1MFxcdTUwNDhcXHU1MDVBXFx1NTA1NlxcdTUwNkNcXHU1MDc4XFx1NTA4MFxcdTUwOUFcXHU1MDg1XFx1NTBCNFxcdTUwQjJcIl0sXG4gICAgICBbXCJkMWExXCIsIFwiXFx1NTBDOVxcdTUwQ0FcXHU1MEIzXFx1NTBDMlxcdTUwRDZcXHU1MERFXFx1NTBFNVxcdTUwRURcXHU1MEUzXFx1NTBFRVxcdTUwRjlcXHU1MEY1XFx1NTEwOVxcdTUxMDFcXHU1MTAyXFx1NTExNlxcdTUxMTVcXHU1MTE0XFx1NTExQVxcdTUxMjFcXHU1MTNBXFx1NTEzN1xcdTUxM0NcXHU1MTNCXFx1NTEzRlxcdTUxNDBcXHU1MTUyXFx1NTE0Q1xcdTUxNTRcXHU1MTYyXFx1N0FGOFxcdTUxNjlcXHU1MTZBXFx1NTE2RVxcdTUxODBcXHU1MTgyXFx1NTZEOFxcdTUxOENcXHU1MTg5XFx1NTE4RlxcdTUxOTFcXHU1MTkzXFx1NTE5NVxcdTUxOTZcXHU1MUE0XFx1NTFBNlxcdTUxQTJcXHU1MUE5XFx1NTFBQVxcdTUxQUJcXHU1MUIzXFx1NTFCMVxcdTUxQjJcXHU1MUIwXFx1NTFCNVxcdTUxQkRcXHU1MUM1XFx1NTFDOVxcdTUxREJcXHU1MUUwXFx1ODY1NVxcdTUxRTlcXHU1MUVEXFx1NTFGMFxcdTUxRjVcXHU1MUZFXFx1NTIwNFxcdTUyMEJcXHU1MjE0XFx1NTIwRVxcdTUyMjdcXHU1MjJBXFx1NTIyRVxcdTUyMzNcXHU1MjM5XFx1NTI0RlxcdTUyNDRcXHU1MjRCXFx1NTI0Q1xcdTUyNUVcXHU1MjU0XFx1NTI2QVxcdTUyNzRcXHU1MjY5XFx1NTI3M1xcdTUyN0ZcXHU1MjdEXFx1NTI4RFxcdTUyOTRcXHU1MjkyXFx1NTI3MVxcdTUyODhcXHU1MjkxXFx1OEZBOFwiXSxcbiAgICAgIFtcImQyYTFcIiwgXCJcXHU4RkE3XFx1NTJBQ1xcdTUyQURcXHU1MkJDXFx1NTJCNVxcdTUyQzFcXHU1MkNEXFx1NTJEN1xcdTUyREVcXHU1MkUzXFx1NTJFNlxcdTk4RURcXHU1MkUwXFx1NTJGM1xcdTUyRjVcXHU1MkY4XFx1NTJGOVxcdTUzMDZcXHU1MzA4XFx1NzUzOFxcdTUzMERcXHU1MzEwXFx1NTMwRlxcdTUzMTVcXHU1MzFBXFx1NTMyM1xcdTUzMkZcXHU1MzMxXFx1NTMzM1xcdTUzMzhcXHU1MzQwXFx1NTM0NlxcdTUzNDVcXHU0RTE3XFx1NTM0OVxcdTUzNERcXHU1MUQ2XFx1NTM1RVxcdTUzNjlcXHU1MzZFXFx1NTkxOFxcdTUzN0JcXHU1Mzc3XFx1NTM4MlxcdTUzOTZcXHU1M0EwXFx1NTNBNlxcdTUzQTVcXHU1M0FFXFx1NTNCMFxcdTUzQjZcXHU1M0MzXFx1N0MxMlxcdTk2RDlcXHU1M0RGXFx1NjZGQ1xcdTcxRUVcXHU1M0VFXFx1NTNFOFxcdTUzRURcXHU1M0ZBXFx1NTQwMVxcdTU0M0RcXHU1NDQwXFx1NTQyQ1xcdTU0MkRcXHU1NDNDXFx1NTQyRVxcdTU0MzZcXHU1NDI5XFx1NTQxRFxcdTU0NEVcXHU1NDhGXFx1NTQ3NVxcdTU0OEVcXHU1NDVGXFx1NTQ3MVxcdTU0NzdcXHU1NDcwXFx1NTQ5MlxcdTU0N0JcXHU1NDgwXFx1NTQ3NlxcdTU0ODRcXHU1NDkwXFx1NTQ4NlxcdTU0QzdcXHU1NEEyXFx1NTRCOFxcdTU0QTVcXHU1NEFDXFx1NTRDNFxcdTU0QzhcXHU1NEE4XCJdLFxuICAgICAgW1wiZDNhMVwiLCBcIlxcdTU0QUJcXHU1NEMyXFx1NTRBNFxcdTU0QkVcXHU1NEJDXFx1NTREOFxcdTU0RTVcXHU1NEU2XFx1NTUwRlxcdTU1MTRcXHU1NEZEXFx1NTRFRVxcdTU0RURcXHU1NEZBXFx1NTRFMlxcdTU1MzlcXHU1NTQwXFx1NTU2M1xcdTU1NENcXHU1NTJFXFx1NTU1Q1xcdTU1NDVcXHU1NTU2XFx1NTU1N1xcdTU1MzhcXHU1NTMzXFx1NTU1RFxcdTU1OTlcXHU1NTgwXFx1NTRBRlxcdTU1OEFcXHU1NTlGXFx1NTU3QlxcdTU1N0VcXHU1NTk4XFx1NTU5RVxcdTU1QUVcXHU1NTdDXFx1NTU4M1xcdTU1QTlcXHU1NTg3XFx1NTVBOFxcdTU1REFcXHU1NUM1XFx1NTVERlxcdTU1QzRcXHU1NURDXFx1NTVFNFxcdTU1RDRcXHU1NjE0XFx1NTVGN1xcdTU2MTZcXHU1NUZFXFx1NTVGRFxcdTU2MUJcXHU1NUY5XFx1NTY0RVxcdTU2NTBcXHU3MURGXFx1NTYzNFxcdTU2MzZcXHU1NjMyXFx1NTYzOFxcdTU2NkJcXHU1NjY0XFx1NTYyRlxcdTU2NkNcXHU1NjZBXFx1NTY4NlxcdTU2ODBcXHU1NjhBXFx1NTZBMFxcdTU2OTRcXHU1NjhGXFx1NTZBNVxcdTU2QUVcXHU1NkI2XFx1NTZCNFxcdTU2QzJcXHU1NkJDXFx1NTZDMVxcdTU2QzNcXHU1NkMwXFx1NTZDOFxcdTU2Q0VcXHU1NkQxXFx1NTZEM1xcdTU2RDdcXHU1NkVFXFx1NTZGOVxcdTU3MDBcXHU1NkZGXFx1NTcwNFxcdTU3MDlcIl0sXG4gICAgICBbXCJkNGExXCIsIFwiXFx1NTcwOFxcdTU3MEJcXHU1NzBEXFx1NTcxM1xcdTU3MThcXHU1NzE2XFx1NTVDN1xcdTU3MUNcXHU1NzI2XFx1NTczN1xcdTU3MzhcXHU1NzRFXFx1NTczQlxcdTU3NDBcXHU1NzRGXFx1NTc2OVxcdTU3QzBcXHU1Nzg4XFx1NTc2MVxcdTU3N0ZcXHU1Nzg5XFx1NTc5M1xcdTU3QTBcXHU1N0IzXFx1NTdBNFxcdTU3QUFcXHU1N0IwXFx1NTdDM1xcdTU3QzZcXHU1N0Q0XFx1NTdEMlxcdTU3RDNcXHU1ODBBXFx1NTdENlxcdTU3RTNcXHU1ODBCXFx1NTgxOVxcdTU4MURcXHU1ODcyXFx1NTgyMVxcdTU4NjJcXHU1ODRCXFx1NTg3MFxcdTZCQzBcXHU1ODUyXFx1NTgzRFxcdTU4NzlcXHU1ODg1XFx1NThCOVxcdTU4OUZcXHU1OEFCXFx1NThCQVxcdTU4REVcXHU1OEJCXFx1NThCOFxcdTU4QUVcXHU1OEM1XFx1NThEM1xcdTU4RDFcXHU1OEQ3XFx1NThEOVxcdTU4RDhcXHU1OEU1XFx1NThEQ1xcdTU4RTRcXHU1OERGXFx1NThFRlxcdTU4RkFcXHU1OEY5XFx1NThGQlxcdTU4RkNcXHU1OEZEXFx1NTkwMlxcdTU5MEFcXHU1OTEwXFx1NTkxQlxcdTY4QTZcXHU1OTI1XFx1NTkyQ1xcdTU5MkRcXHU1OTMyXFx1NTkzOFxcdTU5M0VcXHU3QUQyXFx1NTk1NVxcdTU5NTBcXHU1OTRFXFx1NTk1QVxcdTU5NThcXHU1OTYyXFx1NTk2MFxcdTU5NjdcXHU1OTZDXFx1NTk2OVwiXSxcbiAgICAgIFtcImQ1YTFcIiwgXCJcXHU1OTc4XFx1NTk4MVxcdTU5OURcXHU0RjVFXFx1NEZBQlxcdTU5QTNcXHU1OUIyXFx1NTlDNlxcdTU5RThcXHU1OURDXFx1NTk4RFxcdTU5RDlcXHU1OURBXFx1NUEyNVxcdTVBMUZcXHU1QTExXFx1NUExQ1xcdTVBMDlcXHU1QTFBXFx1NUE0MFxcdTVBNkNcXHU1QTQ5XFx1NUEzNVxcdTVBMzZcXHU1QTYyXFx1NUE2QVxcdTVBOUFcXHU1QUJDXFx1NUFCRVxcdTVBQ0JcXHU1QUMyXFx1NUFCRFxcdTVBRTNcXHU1QUQ3XFx1NUFFNlxcdTVBRTlcXHU1QUQ2XFx1NUFGQVxcdTVBRkJcXHU1QjBDXFx1NUIwQlxcdTVCMTZcXHU1QjMyXFx1NUFEMFxcdTVCMkFcXHU1QjM2XFx1NUIzRVxcdTVCNDNcXHU1QjQ1XFx1NUI0MFxcdTVCNTFcXHU1QjU1XFx1NUI1QVxcdTVCNUJcXHU1QjY1XFx1NUI2OVxcdTVCNzBcXHU1QjczXFx1NUI3NVxcdTVCNzhcXHU2NTg4XFx1NUI3QVxcdTVCODBcXHU1QjgzXFx1NUJBNlxcdTVCQjhcXHU1QkMzXFx1NUJDN1xcdTVCQzlcXHU1QkQ0XFx1NUJEMFxcdTVCRTRcXHU1QkU2XFx1NUJFMlxcdTVCREVcXHU1QkU1XFx1NUJFQlxcdTVCRjBcXHU1QkY2XFx1NUJGM1xcdTVDMDVcXHU1QzA3XFx1NUMwOFxcdTVDMERcXHU1QzEzXFx1NUMyMFxcdTVDMjJcXHU1QzI4XFx1NUMzOFxcdTVDMzlcXHU1QzQxXFx1NUM0NlxcdTVDNEVcXHU1QzUzXCJdLFxuICAgICAgW1wiZDZhMVwiLCBcIlxcdTVDNTBcXHU1QzRGXFx1NUI3MVxcdTVDNkNcXHU1QzZFXFx1NEU2MlxcdTVDNzZcXHU1Qzc5XFx1NUM4Q1xcdTVDOTFcXHU1Qzk0XFx1NTk5QlxcdTVDQUJcXHU1Q0JCXFx1NUNCNlxcdTVDQkNcXHU1Q0I3XFx1NUNDNVxcdTVDQkVcXHU1Q0M3XFx1NUNEOVxcdTVDRTlcXHU1Q0ZEXFx1NUNGQVxcdTVDRURcXHU1RDhDXFx1NUNFQVxcdTVEMEJcXHU1RDE1XFx1NUQxN1xcdTVENUNcXHU1RDFGXFx1NUQxQlxcdTVEMTFcXHU1RDE0XFx1NUQyMlxcdTVEMUFcXHU1RDE5XFx1NUQxOFxcdTVENENcXHU1RDUyXFx1NUQ0RVxcdTVENEJcXHU1RDZDXFx1NUQ3M1xcdTVENzZcXHU1RDg3XFx1NUQ4NFxcdTVEODJcXHU1REEyXFx1NUQ5RFxcdTVEQUNcXHU1REFFXFx1NURCRFxcdTVEOTBcXHU1REI3XFx1NURCQ1xcdTVEQzlcXHU1RENEXFx1NUREM1xcdTVERDJcXHU1REQ2XFx1NUREQlxcdTVERUJcXHU1REYyXFx1NURGNVxcdTVFMEJcXHU1RTFBXFx1NUUxOVxcdTVFMTFcXHU1RTFCXFx1NUUzNlxcdTVFMzdcXHU1RTQ0XFx1NUU0M1xcdTVFNDBcXHU1RTRFXFx1NUU1N1xcdTVFNTRcXHU1RTVGXFx1NUU2MlxcdTVFNjRcXHU1RTQ3XFx1NUU3NVxcdTVFNzZcXHU1RTdBXFx1OUVCQ1xcdTVFN0ZcXHU1RUEwXFx1NUVDMVxcdTVFQzJcXHU1RUM4XFx1NUVEMFxcdTVFQ0ZcIl0sXG4gICAgICBbXCJkN2ExXCIsIFwiXFx1NUVENlxcdTVFRTNcXHU1RUREXFx1NUVEQVxcdTVFREJcXHU1RUUyXFx1NUVFMVxcdTVFRThcXHU1RUU5XFx1NUVFQ1xcdTVFRjFcXHU1RUYzXFx1NUVGMFxcdTVFRjRcXHU1RUY4XFx1NUVGRVxcdTVGMDNcXHU1RjA5XFx1NUY1RFxcdTVGNUNcXHU1RjBCXFx1NUYxMVxcdTVGMTZcXHU1RjI5XFx1NUYyRFxcdTVGMzhcXHU1RjQxXFx1NUY0OFxcdTVGNENcXHU1RjRFXFx1NUYyRlxcdTVGNTFcXHU1RjU2XFx1NUY1N1xcdTVGNTlcXHU1RjYxXFx1NUY2RFxcdTVGNzNcXHU1Rjc3XFx1NUY4M1xcdTVGODJcXHU1RjdGXFx1NUY4QVxcdTVGODhcXHU1RjkxXFx1NUY4N1xcdTVGOUVcXHU1Rjk5XFx1NUY5OFxcdTVGQTBcXHU1RkE4XFx1NUZBRFxcdTVGQkNcXHU1RkQ2XFx1NUZGQlxcdTVGRTRcXHU1RkY4XFx1NUZGMVxcdTVGRERcXHU2MEIzXFx1NUZGRlxcdTYwMjFcXHU2MDYwXFx1NjAxOVxcdTYwMTBcXHU2MDI5XFx1NjAwRVxcdTYwMzFcXHU2MDFCXFx1NjAxNVxcdTYwMkJcXHU2MDI2XFx1NjAwRlxcdTYwM0FcXHU2MDVBXFx1NjA0MVxcdTYwNkFcXHU2MDc3XFx1NjA1RlxcdTYwNEFcXHU2MDQ2XFx1NjA0RFxcdTYwNjNcXHU2MDQzXFx1NjA2NFxcdTYwNDJcXHU2MDZDXFx1NjA2QlxcdTYwNTlcXHU2MDgxXFx1NjA4RFxcdTYwRTdcXHU2MDgzXFx1NjA5QVwiXSxcbiAgICAgIFtcImQ4YTFcIiwgXCJcXHU2MDg0XFx1NjA5QlxcdTYwOTZcXHU2MDk3XFx1NjA5MlxcdTYwQTdcXHU2MDhCXFx1NjBFMVxcdTYwQjhcXHU2MEUwXFx1NjBEM1xcdTYwQjRcXHU1RkYwXFx1NjBCRFxcdTYwQzZcXHU2MEI1XFx1NjBEOFxcdTYxNERcXHU2MTE1XFx1NjEwNlxcdTYwRjZcXHU2MEY3XFx1NjEwMFxcdTYwRjRcXHU2MEZBXFx1NjEwM1xcdTYxMjFcXHU2MEZCXFx1NjBGMVxcdTYxMERcXHU2MTBFXFx1NjE0N1xcdTYxM0VcXHU2MTI4XFx1NjEyN1xcdTYxNEFcXHU2MTNGXFx1NjEzQ1xcdTYxMkNcXHU2MTM0XFx1NjEzRFxcdTYxNDJcXHU2MTQ0XFx1NjE3M1xcdTYxNzdcXHU2MTU4XFx1NjE1OVxcdTYxNUFcXHU2MTZCXFx1NjE3NFxcdTYxNkZcXHU2MTY1XFx1NjE3MVxcdTYxNUZcXHU2MTVEXFx1NjE1M1xcdTYxNzVcXHU2MTk5XFx1NjE5NlxcdTYxODdcXHU2MUFDXFx1NjE5NFxcdTYxOUFcXHU2MThBXFx1NjE5MVxcdTYxQUJcXHU2MUFFXFx1NjFDQ1xcdTYxQ0FcXHU2MUM5XFx1NjFGN1xcdTYxQzhcXHU2MUMzXFx1NjFDNlxcdTYxQkFcXHU2MUNCXFx1N0Y3OVxcdTYxQ0RcXHU2MUU2XFx1NjFFM1xcdTYxRjZcXHU2MUZBXFx1NjFGNFxcdTYxRkZcXHU2MUZEXFx1NjFGQ1xcdTYxRkVcXHU2MjAwXFx1NjIwOFxcdTYyMDlcXHU2MjBEXFx1NjIwQ1xcdTYyMTRcXHU2MjFCXCJdLFxuICAgICAgW1wiZDlhMVwiLCBcIlxcdTYyMUVcXHU2MjIxXFx1NjIyQVxcdTYyMkVcXHU2MjMwXFx1NjIzMlxcdTYyMzNcXHU2MjQxXFx1NjI0RVxcdTYyNUVcXHU2MjYzXFx1NjI1QlxcdTYyNjBcXHU2MjY4XFx1NjI3Q1xcdTYyODJcXHU2Mjg5XFx1NjI3RVxcdTYyOTJcXHU2MjkzXFx1NjI5NlxcdTYyRDRcXHU2MjgzXFx1NjI5NFxcdTYyRDdcXHU2MkQxXFx1NjJCQlxcdTYyQ0ZcXHU2MkZGXFx1NjJDNlxcdTY0RDRcXHU2MkM4XFx1NjJEQ1xcdTYyQ0NcXHU2MkNBXFx1NjJDMlxcdTYyQzdcXHU2MjlCXFx1NjJDOVxcdTYzMENcXHU2MkVFXFx1NjJGMVxcdTYzMjdcXHU2MzAyXFx1NjMwOFxcdTYyRUZcXHU2MkY1XFx1NjM1MFxcdTYzM0VcXHU2MzREXFx1NjQxQ1xcdTYzNEZcXHU2Mzk2XFx1NjM4RVxcdTYzODBcXHU2M0FCXFx1NjM3NlxcdTYzQTNcXHU2MzhGXFx1NjM4OVxcdTYzOUZcXHU2M0I1XFx1NjM2QlxcdTYzNjlcXHU2M0JFXFx1NjNFOVxcdTYzQzBcXHU2M0M2XFx1NjNFM1xcdTYzQzlcXHU2M0QyXFx1NjNGNlxcdTYzQzRcXHU2NDE2XFx1NjQzNFxcdTY0MDZcXHU2NDEzXFx1NjQyNlxcdTY0MzZcXHU2NTFEXFx1NjQxN1xcdTY0MjhcXHU2NDBGXFx1NjQ2N1xcdTY0NkZcXHU2NDc2XFx1NjQ0RVxcdTY1MkFcXHU2NDk1XFx1NjQ5M1xcdTY0QTVcXHU2NEE5XFx1NjQ4OFxcdTY0QkNcIl0sXG4gICAgICBbXCJkYWExXCIsIFwiXFx1NjREQVxcdTY0RDJcXHU2NEM1XFx1NjRDN1xcdTY0QkJcXHU2NEQ4XFx1NjRDMlxcdTY0RjFcXHU2NEU3XFx1ODIwOVxcdTY0RTBcXHU2NEUxXFx1NjJBQ1xcdTY0RTNcXHU2NEVGXFx1NjUyQ1xcdTY0RjZcXHU2NEY0XFx1NjRGMlxcdTY0RkFcXHU2NTAwXFx1NjRGRFxcdTY1MThcXHU2NTFDXFx1NjUwNVxcdTY1MjRcXHU2NTIzXFx1NjUyQlxcdTY1MzRcXHU2NTM1XFx1NjUzN1xcdTY1MzZcXHU2NTM4XFx1NzU0QlxcdTY1NDhcXHU2NTU2XFx1NjU1NVxcdTY1NERcXHU2NTU4XFx1NjU1RVxcdTY1NURcXHU2NTcyXFx1NjU3OFxcdTY1ODJcXHU2NTgzXFx1OEI4QVxcdTY1OUJcXHU2NTlGXFx1NjVBQlxcdTY1QjdcXHU2NUMzXFx1NjVDNlxcdTY1QzFcXHU2NUM0XFx1NjVDQ1xcdTY1RDJcXHU2NURCXFx1NjVEOVxcdTY1RTBcXHU2NUUxXFx1NjVGMVxcdTY3NzJcXHU2NjBBXFx1NjYwM1xcdTY1RkJcXHU2NzczXFx1NjYzNVxcdTY2MzZcXHU2NjM0XFx1NjYxQ1xcdTY2NEZcXHU2NjQ0XFx1NjY0OVxcdTY2NDFcXHU2NjVFXFx1NjY1RFxcdTY2NjRcXHU2NjY3XFx1NjY2OFxcdTY2NUZcXHU2NjYyXFx1NjY3MFxcdTY2ODNcXHU2Njg4XFx1NjY4RVxcdTY2ODlcXHU2Njg0XFx1NjY5OFxcdTY2OURcXHU2NkMxXFx1NjZCOVxcdTY2QzlcXHU2NkJFXFx1NjZCQ1wiXSxcbiAgICAgIFtcImRiYTFcIiwgXCJcXHU2NkM0XFx1NjZCOFxcdTY2RDZcXHU2NkRBXFx1NjZFMFxcdTY2M0ZcXHU2NkU2XFx1NjZFOVxcdTY2RjBcXHU2NkY1XFx1NjZGN1xcdTY3MEZcXHU2NzE2XFx1NjcxRVxcdTY3MjZcXHU2NzI3XFx1OTczOFxcdTY3MkVcXHU2NzNGXFx1NjczNlxcdTY3NDFcXHU2NzM4XFx1NjczN1xcdTY3NDZcXHU2NzVFXFx1Njc2MFxcdTY3NTlcXHU2NzYzXFx1Njc2NFxcdTY3ODlcXHU2NzcwXFx1NjdBOVxcdTY3N0NcXHU2NzZBXFx1Njc4Q1xcdTY3OEJcXHU2N0E2XFx1NjdBMVxcdTY3ODVcXHU2N0I3XFx1NjdFRlxcdTY3QjRcXHU2N0VDXFx1NjdCM1xcdTY3RTlcXHU2N0I4XFx1NjdFNFxcdTY3REVcXHU2N0REXFx1NjdFMlxcdTY3RUVcXHU2N0I5XFx1NjdDRVxcdTY3QzZcXHU2N0U3XFx1NkE5Q1xcdTY4MUVcXHU2ODQ2XFx1NjgyOVxcdTY4NDBcXHU2ODREXFx1NjgzMlxcdTY4NEVcXHU2OEIzXFx1NjgyQlxcdTY4NTlcXHU2ODYzXFx1Njg3N1xcdTY4N0ZcXHU2ODlGXFx1Njg4RlxcdTY4QURcXHU2ODk0XFx1Njg5RFxcdTY4OUJcXHU2ODgzXFx1NkFBRVxcdTY4QjlcXHU2ODc0XFx1NjhCNVxcdTY4QTBcXHU2OEJBXFx1NjkwRlxcdTY4OERcXHU2ODdFXFx1NjkwMVxcdTY4Q0FcXHU2OTA4XFx1NjhEOFxcdTY5MjJcXHU2OTI2XFx1NjhFMVxcdTY5MENcXHU2OENEXCJdLFxuICAgICAgW1wiZGNhMVwiLCBcIlxcdTY4RDRcXHU2OEU3XFx1NjhENVxcdTY5MzZcXHU2OTEyXFx1NjkwNFxcdTY4RDdcXHU2OEUzXFx1NjkyNVxcdTY4RjlcXHU2OEUwXFx1NjhFRlxcdTY5MjhcXHU2OTJBXFx1NjkxQVxcdTY5MjNcXHU2OTIxXFx1NjhDNlxcdTY5NzlcXHU2OTc3XFx1Njk1Q1xcdTY5NzhcXHU2OTZCXFx1Njk1NFxcdTY5N0VcXHU2OTZFXFx1NjkzOVxcdTY5NzRcXHU2OTNEXFx1Njk1OVxcdTY5MzBcXHU2OTYxXFx1Njk1RVxcdTY5NURcXHU2OTgxXFx1Njk2QVxcdTY5QjJcXHU2OUFFXFx1NjlEMFxcdTY5QkZcXHU2OUMxXFx1NjlEM1xcdTY5QkVcXHU2OUNFXFx1NUJFOFxcdTY5Q0FcXHU2OUREXFx1NjlCQlxcdTY5QzNcXHU2OUE3XFx1NkEyRVxcdTY5OTFcXHU2OUEwXFx1Njk5Q1xcdTY5OTVcXHU2OUI0XFx1NjlERVxcdTY5RThcXHU2QTAyXFx1NkExQlxcdTY5RkZcXHU2QjBBXFx1NjlGOVxcdTY5RjJcXHU2OUU3XFx1NkEwNVxcdTY5QjFcXHU2QTFFXFx1NjlFRFxcdTZBMTRcXHU2OUVCXFx1NkEwQVxcdTZBMTJcXHU2QUMxXFx1NkEyM1xcdTZBMTNcXHU2QTQ0XFx1NkEwQ1xcdTZBNzJcXHU2QTM2XFx1NkE3OFxcdTZBNDdcXHU2QTYyXFx1NkE1OVxcdTZBNjZcXHU2QTQ4XFx1NkEzOFxcdTZBMjJcXHU2QTkwXFx1NkE4RFxcdTZBQTBcXHU2QTg0XFx1NkFBMlxcdTZBQTNcIl0sXG4gICAgICBbXCJkZGExXCIsIFwiXFx1NkE5N1xcdTg2MTdcXHU2QUJCXFx1NkFDM1xcdTZBQzJcXHU2QUI4XFx1NkFCM1xcdTZBQUNcXHU2QURFXFx1NkFEMVxcdTZBREZcXHU2QUFBXFx1NkFEQVxcdTZBRUFcXHU2QUZCXFx1NkIwNVxcdTg2MTZcXHU2QUZBXFx1NkIxMlxcdTZCMTZcXHU5QjMxXFx1NkIxRlxcdTZCMzhcXHU2QjM3XFx1NzZEQ1xcdTZCMzlcXHU5OEVFXFx1NkI0N1xcdTZCNDNcXHU2QjQ5XFx1NkI1MFxcdTZCNTlcXHU2QjU0XFx1NkI1QlxcdTZCNUZcXHU2QjYxXFx1NkI3OFxcdTZCNzlcXHU2QjdGXFx1NkI4MFxcdTZCODRcXHU2QjgzXFx1NkI4RFxcdTZCOThcXHU2Qjk1XFx1NkI5RVxcdTZCQTRcXHU2QkFBXFx1NkJBQlxcdTZCQUZcXHU2QkIyXFx1NkJCMVxcdTZCQjNcXHU2QkI3XFx1NkJCQ1xcdTZCQzZcXHU2QkNCXFx1NkJEM1xcdTZCREZcXHU2QkVDXFx1NkJFQlxcdTZCRjNcXHU2QkVGXFx1OUVCRVxcdTZDMDhcXHU2QzEzXFx1NkMxNFxcdTZDMUJcXHU2QzI0XFx1NkMyM1xcdTZDNUVcXHU2QzU1XFx1NkM2MlxcdTZDNkFcXHU2QzgyXFx1NkM4RFxcdTZDOUFcXHU2QzgxXFx1NkM5QlxcdTZDN0VcXHU2QzY4XFx1NkM3M1xcdTZDOTJcXHU2QzkwXFx1NkNDNFxcdTZDRjFcXHU2Q0QzXFx1NkNCRFxcdTZDRDdcXHU2Q0M1XFx1NkNERFxcdTZDQUVcXHU2Q0IxXFx1NkNCRVwiXSxcbiAgICAgIFtcImRlYTFcIiwgXCJcXHU2Q0JBXFx1NkNEQlxcdTZDRUZcXHU2Q0Q5XFx1NkNFQVxcdTZEMUZcXHU4ODREXFx1NkQzNlxcdTZEMkJcXHU2RDNEXFx1NkQzOFxcdTZEMTlcXHU2RDM1XFx1NkQzM1xcdTZEMTJcXHU2RDBDXFx1NkQ2M1xcdTZEOTNcXHU2RDY0XFx1NkQ1QVxcdTZENzlcXHU2RDU5XFx1NkQ4RVxcdTZEOTVcXHU2RkU0XFx1NkQ4NVxcdTZERjlcXHU2RTE1XFx1NkUwQVxcdTZEQjVcXHU2REM3XFx1NkRFNlxcdTZEQjhcXHU2REM2XFx1NkRFQ1xcdTZEREVcXHU2RENDXFx1NkRFOFxcdTZERDJcXHU2REM1XFx1NkRGQVxcdTZERDlcXHU2REU0XFx1NkRENVxcdTZERUFcXHU2REVFXFx1NkUyRFxcdTZFNkVcXHU2RTJFXFx1NkUxOVxcdTZFNzJcXHU2RTVGXFx1NkUzRVxcdTZFMjNcXHU2RTZCXFx1NkUyQlxcdTZFNzZcXHU2RTREXFx1NkUxRlxcdTZFNDNcXHU2RTNBXFx1NkU0RVxcdTZFMjRcXHU2RUZGXFx1NkUxRFxcdTZFMzhcXHU2RTgyXFx1NkVBQVxcdTZFOThcXHU2RUM5XFx1NkVCN1xcdTZFRDNcXHU2RUJEXFx1NkVBRlxcdTZFQzRcXHU2RUIyXFx1NkVENFxcdTZFRDVcXHU2RThGXFx1NkVBNVxcdTZFQzJcXHU2RTlGXFx1NkY0MVxcdTZGMTFcXHU3MDRDXFx1NkVFQ1xcdTZFRjhcXHU2RUZFXFx1NkYzRlxcdTZFRjJcXHU2RjMxXFx1NkVFRlxcdTZGMzJcXHU2RUNDXCJdLFxuICAgICAgW1wiZGZhMVwiLCBcIlxcdTZGM0VcXHU2RjEzXFx1NkVGN1xcdTZGODZcXHU2RjdBXFx1NkY3OFxcdTZGODFcXHU2RjgwXFx1NkY2RlxcdTZGNUJcXHU2RkYzXFx1NkY2RFxcdTZGODJcXHU2RjdDXFx1NkY1OFxcdTZGOEVcXHU2RjkxXFx1NkZDMlxcdTZGNjZcXHU2RkIzXFx1NkZBM1xcdTZGQTFcXHU2RkE0XFx1NkZCOVxcdTZGQzZcXHU2RkFBXFx1NkZERlxcdTZGRDVcXHU2RkVDXFx1NkZENFxcdTZGRDhcXHU2RkYxXFx1NkZFRVxcdTZGREJcXHU3MDA5XFx1NzAwQlxcdTZGRkFcXHU3MDExXFx1NzAwMVxcdTcwMEZcXHU2RkZFXFx1NzAxQlxcdTcwMUFcXHU2Rjc0XFx1NzAxRFxcdTcwMThcXHU3MDFGXFx1NzAzMFxcdTcwM0VcXHU3MDMyXFx1NzA1MVxcdTcwNjNcXHU3MDk5XFx1NzA5MlxcdTcwQUZcXHU3MEYxXFx1NzBBQ1xcdTcwQjhcXHU3MEIzXFx1NzBBRVxcdTcwREZcXHU3MENCXFx1NzBERFxcdTcwRDlcXHU3MTA5XFx1NzBGRFxcdTcxMUNcXHU3MTE5XFx1NzE2NVxcdTcxNTVcXHU3MTg4XFx1NzE2NlxcdTcxNjJcXHU3MTRDXFx1NzE1NlxcdTcxNkNcXHU3MThGXFx1NzFGQlxcdTcxODRcXHU3MTk1XFx1NzFBOFxcdTcxQUNcXHU3MUQ3XFx1NzFCOVxcdTcxQkVcXHU3MUQyXFx1NzFDOVxcdTcxRDRcXHU3MUNFXFx1NzFFMFxcdTcxRUNcXHU3MUU3XFx1NzFGNVxcdTcxRkNcIl0sXG4gICAgICBbXCJlMGExXCIsIFwiXFx1NzFGOVxcdTcxRkZcXHU3MjBEXFx1NzIxMFxcdTcyMUJcXHU3MjI4XFx1NzIyRFxcdTcyMkNcXHU3MjMwXFx1NzIzMlxcdTcyM0JcXHU3MjNDXFx1NzIzRlxcdTcyNDBcXHU3MjQ2XFx1NzI0QlxcdTcyNThcXHU3Mjc0XFx1NzI3RVxcdTcyODJcXHU3MjgxXFx1NzI4N1xcdTcyOTJcXHU3Mjk2XFx1NzJBMlxcdTcyQTdcXHU3MkI5XFx1NzJCMlxcdTcyQzNcXHU3MkM2XFx1NzJDNFxcdTcyQ0VcXHU3MkQyXFx1NzJFMlxcdTcyRTBcXHU3MkUxXFx1NzJGOVxcdTcyRjdcXHU1MDBGXFx1NzMxN1xcdTczMEFcXHU3MzFDXFx1NzMxNlxcdTczMURcXHU3MzM0XFx1NzMyRlxcdTczMjlcXHU3MzI1XFx1NzMzRVxcdTczNEVcXHU3MzRGXFx1OUVEOFxcdTczNTdcXHU3MzZBXFx1NzM2OFxcdTczNzBcXHU3Mzc4XFx1NzM3NVxcdTczN0JcXHU3MzdBXFx1NzNDOFxcdTczQjNcXHU3M0NFXFx1NzNCQlxcdTczQzBcXHU3M0U1XFx1NzNFRVxcdTczREVcXHU3NEEyXFx1NzQwNVxcdTc0NkZcXHU3NDI1XFx1NzNGOFxcdTc0MzJcXHU3NDNBXFx1NzQ1NVxcdTc0M0ZcXHU3NDVGXFx1NzQ1OVxcdTc0NDFcXHU3NDVDXFx1NzQ2OVxcdTc0NzBcXHU3NDYzXFx1NzQ2QVxcdTc0NzZcXHU3NDdFXFx1NzQ4QlxcdTc0OUVcXHU3NEE3XFx1NzRDQVxcdTc0Q0ZcXHU3NEQ0XFx1NzNGMVwiXSxcbiAgICAgIFtcImUxYTFcIiwgXCJcXHU3NEUwXFx1NzRFM1xcdTc0RTdcXHU3NEU5XFx1NzRFRVxcdTc0RjJcXHU3NEYwXFx1NzRGMVxcdTc0RjhcXHU3NEY3XFx1NzUwNFxcdTc1MDNcXHU3NTA1XFx1NzUwQ1xcdTc1MEVcXHU3NTBEXFx1NzUxNVxcdTc1MTNcXHU3NTFFXFx1NzUyNlxcdTc1MkNcXHU3NTNDXFx1NzU0NFxcdTc1NERcXHU3NTRBXFx1NzU0OVxcdTc1NUJcXHU3NTQ2XFx1NzU1QVxcdTc1NjlcXHU3NTY0XFx1NzU2N1xcdTc1NkJcXHU3NTZEXFx1NzU3OFxcdTc1NzZcXHU3NTg2XFx1NzU4N1xcdTc1NzRcXHU3NThBXFx1NzU4OVxcdTc1ODJcXHU3NTk0XFx1NzU5QVxcdTc1OURcXHU3NUE1XFx1NzVBM1xcdTc1QzJcXHU3NUIzXFx1NzVDM1xcdTc1QjVcXHU3NUJEXFx1NzVCOFxcdTc1QkNcXHU3NUIxXFx1NzVDRFxcdTc1Q0FcXHU3NUQyXFx1NzVEOVxcdTc1RTNcXHU3NURFXFx1NzVGRVxcdTc1RkZcXHU3NUZDXFx1NzYwMVxcdTc1RjBcXHU3NUZBXFx1NzVGMlxcdTc1RjNcXHU3NjBCXFx1NzYwRFxcdTc2MDlcXHU3NjFGXFx1NzYyN1xcdTc2MjBcXHU3NjIxXFx1NzYyMlxcdTc2MjRcXHU3NjM0XFx1NzYzMFxcdTc2M0JcXHU3NjQ3XFx1NzY0OFxcdTc2NDZcXHU3NjVDXFx1NzY1OFxcdTc2NjFcXHU3NjYyXFx1NzY2OFxcdTc2NjlcXHU3NjZBXFx1NzY2N1xcdTc2NkNcXHU3NjcwXCJdLFxuICAgICAgW1wiZTJhMVwiLCBcIlxcdTc2NzJcXHU3Njc2XFx1NzY3OFxcdTc2N0NcXHU3NjgwXFx1NzY4M1xcdTc2ODhcXHU3NjhCXFx1NzY4RVxcdTc2OTZcXHU3NjkzXFx1NzY5OVxcdTc2OUFcXHU3NkIwXFx1NzZCNFxcdTc2QjhcXHU3NkI5XFx1NzZCQVxcdTc2QzJcXHU3NkNEXFx1NzZENlxcdTc2RDJcXHU3NkRFXFx1NzZFMVxcdTc2RTVcXHU3NkU3XFx1NzZFQVxcdTg2MkZcXHU3NkZCXFx1NzcwOFxcdTc3MDdcXHU3NzA0XFx1NzcyOVxcdTc3MjRcXHU3NzFFXFx1NzcyNVxcdTc3MjZcXHU3NzFCXFx1NzczN1xcdTc3MzhcXHU3NzQ3XFx1Nzc1QVxcdTc3NjhcXHU3NzZCXFx1Nzc1QlxcdTc3NjVcXHU3NzdGXFx1Nzc3RVxcdTc3NzlcXHU3NzhFXFx1Nzc4QlxcdTc3OTFcXHU3N0EwXFx1Nzc5RVxcdTc3QjBcXHU3N0I2XFx1NzdCOVxcdTc3QkZcXHU3N0JDXFx1NzdCRFxcdTc3QkJcXHU3N0M3XFx1NzdDRFxcdTc3RDdcXHU3N0RBXFx1NzdEQ1xcdTc3RTNcXHU3N0VFXFx1NzdGQ1xcdTc4MENcXHU3ODEyXFx1NzkyNlxcdTc4MjBcXHU3OTJBXFx1Nzg0NVxcdTc4OEVcXHU3ODc0XFx1Nzg4NlxcdTc4N0NcXHU3ODlBXFx1Nzg4Q1xcdTc4QTNcXHU3OEI1XFx1NzhBQVxcdTc4QUZcXHU3OEQxXFx1NzhDNlxcdTc4Q0JcXHU3OEQ0XFx1NzhCRVxcdTc4QkNcXHU3OEM1XFx1NzhDQVxcdTc4RUNcIl0sXG4gICAgICBbXCJlM2ExXCIsIFwiXFx1NzhFN1xcdTc4REFcXHU3OEZEXFx1NzhGNFxcdTc5MDdcXHU3OTEyXFx1NzkxMVxcdTc5MTlcXHU3OTJDXFx1NzkyQlxcdTc5NDBcXHU3OTYwXFx1Nzk1N1xcdTc5NUZcXHU3OTVBXFx1Nzk1NVxcdTc5NTNcXHU3OTdBXFx1Nzk3RlxcdTc5OEFcXHU3OTlEXFx1NzlBN1xcdTlGNEJcXHU3OUFBXFx1NzlBRVxcdTc5QjNcXHU3OUI5XFx1NzlCQVxcdTc5QzlcXHU3OUQ1XFx1NzlFN1xcdTc5RUNcXHU3OUUxXFx1NzlFM1xcdTdBMDhcXHU3QTBEXFx1N0ExOFxcdTdBMTlcXHU3QTIwXFx1N0ExRlxcdTc5ODBcXHU3QTMxXFx1N0EzQlxcdTdBM0VcXHU3QTM3XFx1N0E0M1xcdTdBNTdcXHU3QTQ5XFx1N0E2MVxcdTdBNjJcXHU3QTY5XFx1OUY5RFxcdTdBNzBcXHU3QTc5XFx1N0E3RFxcdTdBODhcXHU3QTk3XFx1N0E5NVxcdTdBOThcXHU3QTk2XFx1N0FBOVxcdTdBQzhcXHU3QUIwXFx1N0FCNlxcdTdBQzVcXHU3QUM0XFx1N0FCRlxcdTkwODNcXHU3QUM3XFx1N0FDQVxcdTdBQ0RcXHU3QUNGXFx1N0FENVxcdTdBRDNcXHU3QUQ5XFx1N0FEQVxcdTdBRERcXHU3QUUxXFx1N0FFMlxcdTdBRTZcXHU3QUVEXFx1N0FGMFxcdTdCMDJcXHU3QjBGXFx1N0IwQVxcdTdCMDZcXHU3QjMzXFx1N0IxOFxcdTdCMTlcXHU3QjFFXFx1N0IzNVxcdTdCMjhcXHU3QjM2XFx1N0I1MFwiXSxcbiAgICAgIFtcImU0YTFcIiwgXCJcXHU3QjdBXFx1N0IwNFxcdTdCNERcXHU3QjBCXFx1N0I0Q1xcdTdCNDVcXHU3Qjc1XFx1N0I2NVxcdTdCNzRcXHU3QjY3XFx1N0I3MFxcdTdCNzFcXHU3QjZDXFx1N0I2RVxcdTdCOURcXHU3Qjk4XFx1N0I5RlxcdTdCOERcXHU3QjlDXFx1N0I5QVxcdTdCOEJcXHU3QjkyXFx1N0I4RlxcdTdCNURcXHU3Qjk5XFx1N0JDQlxcdTdCQzFcXHU3QkNDXFx1N0JDRlxcdTdCQjRcXHU3QkM2XFx1N0JERFxcdTdCRTlcXHU3QzExXFx1N0MxNFxcdTdCRTZcXHU3QkU1XFx1N0M2MFxcdTdDMDBcXHU3QzA3XFx1N0MxM1xcdTdCRjNcXHU3QkY3XFx1N0MxN1xcdTdDMERcXHU3QkY2XFx1N0MyM1xcdTdDMjdcXHU3QzJBXFx1N0MxRlxcdTdDMzdcXHU3QzJCXFx1N0MzRFxcdTdDNENcXHU3QzQzXFx1N0M1NFxcdTdDNEZcXHU3QzQwXFx1N0M1MFxcdTdDNThcXHU3QzVGXFx1N0M2NFxcdTdDNTZcXHU3QzY1XFx1N0M2Q1xcdTdDNzVcXHU3QzgzXFx1N0M5MFxcdTdDQTRcXHU3Q0FEXFx1N0NBMlxcdTdDQUJcXHU3Q0ExXFx1N0NBOFxcdTdDQjNcXHU3Q0IyXFx1N0NCMVxcdTdDQUVcXHU3Q0I5XFx1N0NCRFxcdTdDQzBcXHU3Q0M1XFx1N0NDMlxcdTdDRDhcXHU3Q0QyXFx1N0NEQ1xcdTdDRTJcXHU5QjNCXFx1N0NFRlxcdTdDRjJcXHU3Q0Y0XFx1N0NGNlxcdTdDRkFcXHU3RDA2XCJdLFxuICAgICAgW1wiZTVhMVwiLCBcIlxcdTdEMDJcXHU3RDFDXFx1N0QxNVxcdTdEMEFcXHU3RDQ1XFx1N0Q0QlxcdTdEMkVcXHU3RDMyXFx1N0QzRlxcdTdEMzVcXHU3RDQ2XFx1N0Q3M1xcdTdENTZcXHU3RDRFXFx1N0Q3MlxcdTdENjhcXHU3RDZFXFx1N0Q0RlxcdTdENjNcXHU3RDkzXFx1N0Q4OVxcdTdENUJcXHU3RDhGXFx1N0Q3RFxcdTdEOUJcXHU3REJBXFx1N0RBRVxcdTdEQTNcXHU3REI1XFx1N0RDN1xcdTdEQkRcXHU3REFCXFx1N0UzRFxcdTdEQTJcXHU3REFGXFx1N0REQ1xcdTdEQjhcXHU3RDlGXFx1N0RCMFxcdTdERDhcXHU3REREXFx1N0RFNFxcdTdEREVcXHU3REZCXFx1N0RGMlxcdTdERTFcXHU3RTA1XFx1N0UwQVxcdTdFMjNcXHU3RTIxXFx1N0UxMlxcdTdFMzFcXHU3RTFGXFx1N0UwOVxcdTdFMEJcXHU3RTIyXFx1N0U0NlxcdTdFNjZcXHU3RTNCXFx1N0UzNVxcdTdFMzlcXHU3RTQzXFx1N0UzN1xcdTdFMzJcXHU3RTNBXFx1N0U2N1xcdTdFNURcXHU3RTU2XFx1N0U1RVxcdTdFNTlcXHU3RTVBXFx1N0U3OVxcdTdFNkFcXHU3RTY5XFx1N0U3Q1xcdTdFN0JcXHU3RTgzXFx1N0RENVxcdTdFN0RcXHU4RkFFXFx1N0U3RlxcdTdFODhcXHU3RTg5XFx1N0U4Q1xcdTdFOTJcXHU3RTkwXFx1N0U5M1xcdTdFOTRcXHU3RTk2XFx1N0U4RVxcdTdFOUJcXHU3RTlDXFx1N0YzOFxcdTdGM0FcIl0sXG4gICAgICBbXCJlNmExXCIsIFwiXFx1N0Y0NVxcdTdGNENcXHU3RjREXFx1N0Y0RVxcdTdGNTBcXHU3RjUxXFx1N0Y1NVxcdTdGNTRcXHU3RjU4XFx1N0Y1RlxcdTdGNjBcXHU3RjY4XFx1N0Y2OVxcdTdGNjdcXHU3Rjc4XFx1N0Y4MlxcdTdGODZcXHU3RjgzXFx1N0Y4OFxcdTdGODdcXHU3RjhDXFx1N0Y5NFxcdTdGOUVcXHU3RjlEXFx1N0Y5QVxcdTdGQTNcXHU3RkFGXFx1N0ZCMlxcdTdGQjlcXHU3RkFFXFx1N0ZCNlxcdTdGQjhcXHU4QjcxXFx1N0ZDNVxcdTdGQzZcXHU3RkNBXFx1N0ZENVxcdTdGRDRcXHU3RkUxXFx1N0ZFNlxcdTdGRTlcXHU3RkYzXFx1N0ZGOVxcdTk4RENcXHU4MDA2XFx1ODAwNFxcdTgwMEJcXHU4MDEyXFx1ODAxOFxcdTgwMTlcXHU4MDFDXFx1ODAyMVxcdTgwMjhcXHU4MDNGXFx1ODAzQlxcdTgwNEFcXHU4MDQ2XFx1ODA1MlxcdTgwNThcXHU4MDVBXFx1ODA1RlxcdTgwNjJcXHU4MDY4XFx1ODA3M1xcdTgwNzJcXHU4MDcwXFx1ODA3NlxcdTgwNzlcXHU4MDdEXFx1ODA3RlxcdTgwODRcXHU4MDg2XFx1ODA4NVxcdTgwOUJcXHU4MDkzXFx1ODA5QVxcdTgwQURcXHU1MTkwXFx1ODBBQ1xcdTgwREJcXHU4MEU1XFx1ODBEOVxcdTgwRERcXHU4MEM0XFx1ODBEQVxcdTgwRDZcXHU4MTA5XFx1ODBFRlxcdTgwRjFcXHU4MTFCXFx1ODEyOVxcdTgxMjNcXHU4MTJGXFx1ODE0QlwiXSxcbiAgICAgIFtcImU3YTFcIiwgXCJcXHU5NjhCXFx1ODE0NlxcdTgxM0VcXHU4MTUzXFx1ODE1MVxcdTgwRkNcXHU4MTcxXFx1ODE2RVxcdTgxNjVcXHU4MTY2XFx1ODE3NFxcdTgxODNcXHU4MTg4XFx1ODE4QVxcdTgxODBcXHU4MTgyXFx1ODFBMFxcdTgxOTVcXHU4MUE0XFx1ODFBM1xcdTgxNUZcXHU4MTkzXFx1ODFBOVxcdTgxQjBcXHU4MUI1XFx1ODFCRVxcdTgxQjhcXHU4MUJEXFx1ODFDMFxcdTgxQzJcXHU4MUJBXFx1ODFDOVxcdTgxQ0RcXHU4MUQxXFx1ODFEOVxcdTgxRDhcXHU4MUM4XFx1ODFEQVxcdTgxREZcXHU4MUUwXFx1ODFFN1xcdTgxRkFcXHU4MUZCXFx1ODFGRVxcdTgyMDFcXHU4MjAyXFx1ODIwNVxcdTgyMDdcXHU4MjBBXFx1ODIwRFxcdTgyMTBcXHU4MjE2XFx1ODIyOVxcdTgyMkJcXHU4MjM4XFx1ODIzM1xcdTgyNDBcXHU4MjU5XFx1ODI1OFxcdTgyNURcXHU4MjVBXFx1ODI1RlxcdTgyNjRcXHU4MjYyXFx1ODI2OFxcdTgyNkFcXHU4MjZCXFx1ODIyRVxcdTgyNzFcXHU4Mjc3XFx1ODI3OFxcdTgyN0VcXHU4MjhEXFx1ODI5MlxcdTgyQUJcXHU4MjlGXFx1ODJCQlxcdTgyQUNcXHU4MkUxXFx1ODJFM1xcdTgyREZcXHU4MkQyXFx1ODJGNFxcdTgyRjNcXHU4MkZBXFx1ODM5M1xcdTgzMDNcXHU4MkZCXFx1ODJGOVxcdTgyREVcXHU4MzA2XFx1ODJEQ1xcdTgzMDlcXHU4MkQ5XCJdLFxuICAgICAgW1wiZThhMVwiLCBcIlxcdTgzMzVcXHU4MzM0XFx1ODMxNlxcdTgzMzJcXHU4MzMxXFx1ODM0MFxcdTgzMzlcXHU4MzUwXFx1ODM0NVxcdTgzMkZcXHU4MzJCXFx1ODMxN1xcdTgzMThcXHU4Mzg1XFx1ODM5QVxcdTgzQUFcXHU4MzlGXFx1ODNBMlxcdTgzOTZcXHU4MzIzXFx1ODM4RVxcdTgzODdcXHU4MzhBXFx1ODM3Q1xcdTgzQjVcXHU4MzczXFx1ODM3NVxcdTgzQTBcXHU4Mzg5XFx1ODNBOFxcdTgzRjRcXHU4NDEzXFx1ODNFQlxcdTgzQ0VcXHU4M0ZEXFx1ODQwM1xcdTgzRDhcXHU4NDBCXFx1ODNDMVxcdTgzRjdcXHU4NDA3XFx1ODNFMFxcdTgzRjJcXHU4NDBEXFx1ODQyMlxcdTg0MjBcXHU4M0JEXFx1ODQzOFxcdTg1MDZcXHU4M0ZCXFx1ODQ2RFxcdTg0MkFcXHU4NDNDXFx1ODU1QVxcdTg0ODRcXHU4NDc3XFx1ODQ2QlxcdTg0QURcXHU4NDZFXFx1ODQ4MlxcdTg0NjlcXHU4NDQ2XFx1ODQyQ1xcdTg0NkZcXHU4NDc5XFx1ODQzNVxcdTg0Q0FcXHU4NDYyXFx1ODRCOVxcdTg0QkZcXHU4NDlGXFx1ODREOVxcdTg0Q0RcXHU4NEJCXFx1ODREQVxcdTg0RDBcXHU4NEMxXFx1ODRDNlxcdTg0RDZcXHU4NEExXFx1ODUyMVxcdTg0RkZcXHU4NEY0XFx1ODUxN1xcdTg1MThcXHU4NTJDXFx1ODUxRlxcdTg1MTVcXHU4NTE0XFx1ODRGQ1xcdTg1NDBcXHU4NTYzXFx1ODU1OFxcdTg1NDhcIl0sXG4gICAgICBbXCJlOWExXCIsIFwiXFx1ODU0MVxcdTg2MDJcXHU4NTRCXFx1ODU1NVxcdTg1ODBcXHU4NUE0XFx1ODU4OFxcdTg1OTFcXHU4NThBXFx1ODVBOFxcdTg1NkRcXHU4NTk0XFx1ODU5QlxcdTg1RUFcXHU4NTg3XFx1ODU5Q1xcdTg1NzdcXHU4NTdFXFx1ODU5MFxcdTg1QzlcXHU4NUJBXFx1ODVDRlxcdTg1QjlcXHU4NUQwXFx1ODVENVxcdTg1RERcXHU4NUU1XFx1ODVEQ1xcdTg1RjlcXHU4NjBBXFx1ODYxM1xcdTg2MEJcXHU4NUZFXFx1ODVGQVxcdTg2MDZcXHU4NjIyXFx1ODYxQVxcdTg2MzBcXHU4NjNGXFx1ODY0RFxcdTRFNTVcXHU4NjU0XFx1ODY1RlxcdTg2NjdcXHU4NjcxXFx1ODY5M1xcdTg2QTNcXHU4NkE5XFx1ODZBQVxcdTg2OEJcXHU4NjhDXFx1ODZCNlxcdTg2QUZcXHU4NkM0XFx1ODZDNlxcdTg2QjBcXHU4NkM5XFx1ODgyM1xcdTg2QUJcXHU4NkQ0XFx1ODZERVxcdTg2RTlcXHU4NkVDXFx1ODZERlxcdTg2REJcXHU4NkVGXFx1ODcxMlxcdTg3MDZcXHU4NzA4XFx1ODcwMFxcdTg3MDNcXHU4NkZCXFx1ODcxMVxcdTg3MDlcXHU4NzBEXFx1ODZGOVxcdTg3MEFcXHU4NzM0XFx1ODczRlxcdTg3MzdcXHU4NzNCXFx1ODcyNVxcdTg3MjlcXHU4NzFBXFx1ODc2MFxcdTg3NUZcXHU4Nzc4XFx1ODc0Q1xcdTg3NEVcXHU4Nzc0XFx1ODc1N1xcdTg3NjhcXHU4NzZFXFx1ODc1OVwiXSxcbiAgICAgIFtcImVhYTFcIiwgXCJcXHU4NzUzXFx1ODc2M1xcdTg3NkFcXHU4ODA1XFx1ODdBMlxcdTg3OUZcXHU4NzgyXFx1ODdBRlxcdTg3Q0JcXHU4N0JEXFx1ODdDMFxcdTg3RDBcXHU5NkQ2XFx1ODdBQlxcdTg3QzRcXHU4N0IzXFx1ODdDN1xcdTg3QzZcXHU4N0JCXFx1ODdFRlxcdTg3RjJcXHU4N0UwXFx1ODgwRlxcdTg4MERcXHU4N0ZFXFx1ODdGNlxcdTg3RjdcXHU4ODBFXFx1ODdEMlxcdTg4MTFcXHU4ODE2XFx1ODgxNVxcdTg4MjJcXHU4ODIxXFx1ODgzMVxcdTg4MzZcXHU4ODM5XFx1ODgyN1xcdTg4M0JcXHU4ODQ0XFx1ODg0MlxcdTg4NTJcXHU4ODU5XFx1ODg1RVxcdTg4NjJcXHU4ODZCXFx1ODg4MVxcdTg4N0VcXHU4ODlFXFx1ODg3NVxcdTg4N0RcXHU4OEI1XFx1ODg3MlxcdTg4ODJcXHU4ODk3XFx1ODg5MlxcdTg4QUVcXHU4ODk5XFx1ODhBMlxcdTg4OERcXHU4OEE0XFx1ODhCMFxcdTg4QkZcXHU4OEIxXFx1ODhDM1xcdTg4QzRcXHU4OEQ0XFx1ODhEOFxcdTg4RDlcXHU4OEREXFx1ODhGOVxcdTg5MDJcXHU4OEZDXFx1ODhGNFxcdTg4RThcXHU4OEYyXFx1ODkwNFxcdTg5MENcXHU4OTBBXFx1ODkxM1xcdTg5NDNcXHU4OTFFXFx1ODkyNVxcdTg5MkFcXHU4OTJCXFx1ODk0MVxcdTg5NDRcXHU4OTNCXFx1ODkzNlxcdTg5MzhcXHU4OTRDXFx1ODkxRFxcdTg5NjBcXHU4OTVFXCJdLFxuICAgICAgW1wiZWJhMVwiLCBcIlxcdTg5NjZcXHU4OTY0XFx1ODk2RFxcdTg5NkFcXHU4OTZGXFx1ODk3NFxcdTg5NzdcXHU4OTdFXFx1ODk4M1xcdTg5ODhcXHU4OThBXFx1ODk5M1xcdTg5OThcXHU4OUExXFx1ODlBOVxcdTg5QTZcXHU4OUFDXFx1ODlBRlxcdTg5QjJcXHU4OUJBXFx1ODlCRFxcdTg5QkZcXHU4OUMwXFx1ODlEQVxcdTg5RENcXHU4OUREXFx1ODlFN1xcdTg5RjRcXHU4OUY4XFx1OEEwM1xcdThBMTZcXHU4QTEwXFx1OEEwQ1xcdThBMUJcXHU4QTFEXFx1OEEyNVxcdThBMzZcXHU4QTQxXFx1OEE1QlxcdThBNTJcXHU4QTQ2XFx1OEE0OFxcdThBN0NcXHU4QTZEXFx1OEE2Q1xcdThBNjJcXHU4QTg1XFx1OEE4MlxcdThBODRcXHU4QUE4XFx1OEFBMVxcdThBOTFcXHU4QUE1XFx1OEFBNlxcdThBOUFcXHU4QUEzXFx1OEFDNFxcdThBQ0RcXHU4QUMyXFx1OEFEQVxcdThBRUJcXHU4QUYzXFx1OEFFN1xcdThBRTRcXHU4QUYxXFx1OEIxNFxcdThBRTBcXHU4QUUyXFx1OEFGN1xcdThBREVcXHU4QURCXFx1OEIwQ1xcdThCMDdcXHU4QjFBXFx1OEFFMVxcdThCMTZcXHU4QjEwXFx1OEIxN1xcdThCMjBcXHU4QjMzXFx1OTdBQlxcdThCMjZcXHU4QjJCXFx1OEIzRVxcdThCMjhcXHU4QjQxXFx1OEI0Q1xcdThCNEZcXHU4QjRFXFx1OEI0OVxcdThCNTZcXHU4QjVCXFx1OEI1QVxcdThCNkJcIl0sXG4gICAgICBbXCJlY2ExXCIsIFwiXFx1OEI1RlxcdThCNkNcXHU4QjZGXFx1OEI3NFxcdThCN0RcXHU4QjgwXFx1OEI4Q1xcdThCOEVcXHU4QjkyXFx1OEI5M1xcdThCOTZcXHU4Qjk5XFx1OEI5QVxcdThDM0FcXHU4QzQxXFx1OEMzRlxcdThDNDhcXHU4QzRDXFx1OEM0RVxcdThDNTBcXHU4QzU1XFx1OEM2MlxcdThDNkNcXHU4Qzc4XFx1OEM3QVxcdThDODJcXHU4Qzg5XFx1OEM4NVxcdThDOEFcXHU4QzhEXFx1OEM4RVxcdThDOTRcXHU4QzdDXFx1OEM5OFxcdTYyMURcXHU4Q0FEXFx1OENBQVxcdThDQkRcXHU4Q0IyXFx1OENCM1xcdThDQUVcXHU4Q0I2XFx1OENDOFxcdThDQzFcXHU4Q0U0XFx1OENFM1xcdThDREFcXHU4Q0ZEXFx1OENGQVxcdThDRkJcXHU4RDA0XFx1OEQwNVxcdThEMEFcXHU4RDA3XFx1OEQwRlxcdThEMERcXHU4RDEwXFx1OUY0RVxcdThEMTNcXHU4Q0NEXFx1OEQxNFxcdThEMTZcXHU4RDY3XFx1OEQ2RFxcdThENzFcXHU4RDczXFx1OEQ4MVxcdThEOTlcXHU4REMyXFx1OERCRVxcdThEQkFcXHU4RENGXFx1OEREQVxcdThERDZcXHU4RENDXFx1OEREQlxcdThEQ0JcXHU4REVBXFx1OERFQlxcdThEREZcXHU4REUzXFx1OERGQ1xcdThFMDhcXHU4RTA5XFx1OERGRlxcdThFMURcXHU4RTFFXFx1OEUxMFxcdThFMUZcXHU4RTQyXFx1OEUzNVxcdThFMzBcXHU4RTM0XFx1OEU0QVwiXSxcbiAgICAgIFtcImVkYTFcIiwgXCJcXHU4RTQ3XFx1OEU0OVxcdThFNENcXHU4RTUwXFx1OEU0OFxcdThFNTlcXHU4RTY0XFx1OEU2MFxcdThFMkFcXHU4RTYzXFx1OEU1NVxcdThFNzZcXHU4RTcyXFx1OEU3Q1xcdThFODFcXHU4RTg3XFx1OEU4NVxcdThFODRcXHU4RThCXFx1OEU4QVxcdThFOTNcXHU4RTkxXFx1OEU5NFxcdThFOTlcXHU4RUFBXFx1OEVBMVxcdThFQUNcXHU4RUIwXFx1OEVDNlxcdThFQjFcXHU4RUJFXFx1OEVDNVxcdThFQzhcXHU4RUNCXFx1OEVEQlxcdThFRTNcXHU4RUZDXFx1OEVGQlxcdThFRUJcXHU4RUZFXFx1OEYwQVxcdThGMDVcXHU4RjE1XFx1OEYxMlxcdThGMTlcXHU4RjEzXFx1OEYxQ1xcdThGMUZcXHU4RjFCXFx1OEYwQ1xcdThGMjZcXHU4RjMzXFx1OEYzQlxcdThGMzlcXHU4RjQ1XFx1OEY0MlxcdThGM0VcXHU4RjRDXFx1OEY0OVxcdThGNDZcXHU4RjRFXFx1OEY1N1xcdThGNUNcXHU4RjYyXFx1OEY2M1xcdThGNjRcXHU4RjlDXFx1OEY5RlxcdThGQTNcXHU4RkFEXFx1OEZBRlxcdThGQjdcXHU4RkRBXFx1OEZFNVxcdThGRTJcXHU4RkVBXFx1OEZFRlxcdTkwODdcXHU4RkY0XFx1OTAwNVxcdThGRjlcXHU4RkZBXFx1OTAxMVxcdTkwMTVcXHU5MDIxXFx1OTAwRFxcdTkwMUVcXHU5MDE2XFx1OTAwQlxcdTkwMjdcXHU5MDM2XFx1OTAzNVxcdTkwMzlcXHU4RkY4XCJdLFxuICAgICAgW1wiZWVhMVwiLCBcIlxcdTkwNEZcXHU5MDUwXFx1OTA1MVxcdTkwNTJcXHU5MDBFXFx1OTA0OVxcdTkwM0VcXHU5MDU2XFx1OTA1OFxcdTkwNUVcXHU5MDY4XFx1OTA2RlxcdTkwNzZcXHU5NkE4XFx1OTA3MlxcdTkwODJcXHU5MDdEXFx1OTA4MVxcdTkwODBcXHU5MDhBXFx1OTA4OVxcdTkwOEZcXHU5MEE4XFx1OTBBRlxcdTkwQjFcXHU5MEI1XFx1OTBFMlxcdTkwRTRcXHU2MjQ4XFx1OTBEQlxcdTkxMDJcXHU5MTEyXFx1OTExOVxcdTkxMzJcXHU5MTMwXFx1OTE0QVxcdTkxNTZcXHU5MTU4XFx1OTE2M1xcdTkxNjVcXHU5MTY5XFx1OTE3M1xcdTkxNzJcXHU5MThCXFx1OTE4OVxcdTkxODJcXHU5MUEyXFx1OTFBQlxcdTkxQUZcXHU5MUFBXFx1OTFCNVxcdTkxQjRcXHU5MUJBXFx1OTFDMFxcdTkxQzFcXHU5MUM5XFx1OTFDQlxcdTkxRDBcXHU5MUQ2XFx1OTFERlxcdTkxRTFcXHU5MURCXFx1OTFGQ1xcdTkxRjVcXHU5MUY2XFx1OTIxRVxcdTkxRkZcXHU5MjE0XFx1OTIyQ1xcdTkyMTVcXHU5MjExXFx1OTI1RVxcdTkyNTdcXHU5MjQ1XFx1OTI0OVxcdTkyNjRcXHU5MjQ4XFx1OTI5NVxcdTkyM0ZcXHU5MjRCXFx1OTI1MFxcdTkyOUNcXHU5Mjk2XFx1OTI5M1xcdTkyOUJcXHU5MjVBXFx1OTJDRlxcdTkyQjlcXHU5MkI3XFx1OTJFOVxcdTkzMEZcXHU5MkZBXFx1OTM0NFxcdTkzMkVcIl0sXG4gICAgICBbXCJlZmExXCIsIFwiXFx1OTMxOVxcdTkzMjJcXHU5MzFBXFx1OTMyM1xcdTkzM0FcXHU5MzM1XFx1OTMzQlxcdTkzNUNcXHU5MzYwXFx1OTM3Q1xcdTkzNkVcXHU5MzU2XFx1OTNCMFxcdTkzQUNcXHU5M0FEXFx1OTM5NFxcdTkzQjlcXHU5M0Q2XFx1OTNEN1xcdTkzRThcXHU5M0U1XFx1OTNEOFxcdTkzQzNcXHU5M0REXFx1OTNEMFxcdTkzQzhcXHU5M0U0XFx1OTQxQVxcdTk0MTRcXHU5NDEzXFx1OTQwM1xcdTk0MDdcXHU5NDEwXFx1OTQzNlxcdTk0MkJcXHU5NDM1XFx1OTQyMVxcdTk0M0FcXHU5NDQxXFx1OTQ1MlxcdTk0NDRcXHU5NDVCXFx1OTQ2MFxcdTk0NjJcXHU5NDVFXFx1OTQ2QVxcdTkyMjlcXHU5NDcwXFx1OTQ3NVxcdTk0NzdcXHU5NDdEXFx1OTQ1QVxcdTk0N0NcXHU5NDdFXFx1OTQ4MVxcdTk0N0ZcXHU5NTgyXFx1OTU4N1xcdTk1OEFcXHU5NTk0XFx1OTU5NlxcdTk1OThcXHU5NTk5XFx1OTVBMFxcdTk1QThcXHU5NUE3XFx1OTVBRFxcdTk1QkNcXHU5NUJCXFx1OTVCOVxcdTk1QkVcXHU5NUNBXFx1NkZGNlxcdTk1QzNcXHU5NUNEXFx1OTVDQ1xcdTk1RDVcXHU5NUQ0XFx1OTVENlxcdTk1RENcXHU5NUUxXFx1OTVFNVxcdTk1RTJcXHU5NjIxXFx1OTYyOFxcdTk2MkVcXHU5NjJGXFx1OTY0MlxcdTk2NENcXHU5NjRGXFx1OTY0QlxcdTk2NzdcXHU5NjVDXFx1OTY1RVwiXSxcbiAgICAgIFtcImYwYTFcIiwgXCJcXHU5NjVEXFx1OTY1RlxcdTk2NjZcXHU5NjcyXFx1OTY2Q1xcdTk2OERcXHU5Njk4XFx1OTY5NVxcdTk2OTdcXHU5NkFBXFx1OTZBN1xcdTk2QjFcXHU5NkIyXFx1OTZCMFxcdTk2QjRcXHU5NkI2XFx1OTZCOFxcdTk2QjlcXHU5NkNFXFx1OTZDQlxcdTk2QzlcXHU5NkNEXFx1ODk0RFxcdTk2RENcXHU5NzBEXFx1OTZENVxcdTk2RjlcXHU5NzA0XFx1OTcwNlxcdTk3MDhcXHU5NzEzXFx1OTcwRVxcdTk3MTFcXHU5NzBGXFx1OTcxNlxcdTk3MTlcXHU5NzI0XFx1OTcyQVxcdTk3MzBcXHU5NzM5XFx1OTczRFxcdTk3M0VcXHU5NzQ0XFx1OTc0NlxcdTk3NDhcXHU5NzQyXFx1OTc0OVxcdTk3NUNcXHU5NzYwXFx1OTc2NFxcdTk3NjZcXHU5NzY4XFx1NTJEMlxcdTk3NkJcXHU5NzcxXFx1OTc3OVxcdTk3ODVcXHU5NzdDXFx1OTc4MVxcdTk3N0FcXHU5Nzg2XFx1OTc4QlxcdTk3OEZcXHU5NzkwXFx1OTc5Q1xcdTk3QThcXHU5N0E2XFx1OTdBM1xcdTk3QjNcXHU5N0I0XFx1OTdDM1xcdTk3QzZcXHU5N0M4XFx1OTdDQlxcdTk3RENcXHU5N0VEXFx1OUY0RlxcdTk3RjJcXHU3QURGXFx1OTdGNlxcdTk3RjVcXHU5ODBGXFx1OTgwQ1xcdTk4MzhcXHU5ODI0XFx1OTgyMVxcdTk4MzdcXHU5ODNEXFx1OTg0NlxcdTk4NEZcXHU5ODRCXFx1OTg2QlxcdTk4NkZcXHU5ODcwXCJdLFxuICAgICAgW1wiZjFhMVwiLCBcIlxcdTk4NzFcXHU5ODc0XFx1OTg3M1xcdTk4QUFcXHU5OEFGXFx1OThCMVxcdTk4QjZcXHU5OEM0XFx1OThDM1xcdTk4QzZcXHU5OEU5XFx1OThFQlxcdTk5MDNcXHU5OTA5XFx1OTkxMlxcdTk5MTRcXHU5OTE4XFx1OTkyMVxcdTk5MURcXHU5OTFFXFx1OTkyNFxcdTk5MjBcXHU5OTJDXFx1OTkyRVxcdTk5M0RcXHU5OTNFXFx1OTk0MlxcdTk5NDlcXHU5OTQ1XFx1OTk1MFxcdTk5NEJcXHU5OTUxXFx1OTk1MlxcdTk5NENcXHU5OTU1XFx1OTk5N1xcdTk5OThcXHU5OUE1XFx1OTlBRFxcdTk5QUVcXHU5OUJDXFx1OTlERlxcdTk5REJcXHU5OUREXFx1OTlEOFxcdTk5RDFcXHU5OUVEXFx1OTlFRVxcdTk5RjFcXHU5OUYyXFx1OTlGQlxcdTk5RjhcXHU5QTAxXFx1OUEwRlxcdTlBMDVcXHU5OUUyXFx1OUExOVxcdTlBMkJcXHU5QTM3XFx1OUE0NVxcdTlBNDJcXHU5QTQwXFx1OUE0M1xcdTlBM0VcXHU5QTU1XFx1OUE0RFxcdTlBNUJcXHU5QTU3XFx1OUE1RlxcdTlBNjJcXHU5QTY1XFx1OUE2NFxcdTlBNjlcXHU5QTZCXFx1OUE2QVxcdTlBQURcXHU5QUIwXFx1OUFCQ1xcdTlBQzBcXHU5QUNGXFx1OUFEMVxcdTlBRDNcXHU5QUQ0XFx1OUFERVxcdTlBREZcXHU5QUUyXFx1OUFFM1xcdTlBRTZcXHU5QUVGXFx1OUFFQlxcdTlBRUVcXHU5QUY0XFx1OUFGMVxcdTlBRjdcIl0sXG4gICAgICBbXCJmMmExXCIsIFwiXFx1OUFGQlxcdTlCMDZcXHU5QjE4XFx1OUIxQVxcdTlCMUZcXHU5QjIyXFx1OUIyM1xcdTlCMjVcXHU5QjI3XFx1OUIyOFxcdTlCMjlcXHU5QjJBXFx1OUIyRVxcdTlCMkZcXHU5QjMyXFx1OUI0NFxcdTlCNDNcXHU5QjRGXFx1OUI0RFxcdTlCNEVcXHU5QjUxXFx1OUI1OFxcdTlCNzRcXHU5QjkzXFx1OUI4M1xcdTlCOTFcXHU5Qjk2XFx1OUI5N1xcdTlCOUZcXHU5QkEwXFx1OUJBOFxcdTlCQjRcXHU5QkMwXFx1OUJDQVxcdTlCQjlcXHU5QkM2XFx1OUJDRlxcdTlCRDFcXHU5QkQyXFx1OUJFM1xcdTlCRTJcXHU5QkU0XFx1OUJENFxcdTlCRTFcXHU5QzNBXFx1OUJGMlxcdTlCRjFcXHU5QkYwXFx1OUMxNVxcdTlDMTRcXHU5QzA5XFx1OUMxM1xcdTlDMENcXHU5QzA2XFx1OUMwOFxcdTlDMTJcXHU5QzBBXFx1OUMwNFxcdTlDMkVcXHU5QzFCXFx1OUMyNVxcdTlDMjRcXHU5QzIxXFx1OUMzMFxcdTlDNDdcXHU5QzMyXFx1OUM0NlxcdTlDM0VcXHU5QzVBXFx1OUM2MFxcdTlDNjdcXHU5Qzc2XFx1OUM3OFxcdTlDRTdcXHU5Q0VDXFx1OUNGMFxcdTlEMDlcXHU5RDA4XFx1OUNFQlxcdTlEMDNcXHU5RDA2XFx1OUQyQVxcdTlEMjZcXHU5REFGXFx1OUQyM1xcdTlEMUZcXHU5RDQ0XFx1OUQxNVxcdTlEMTJcXHU5RDQxXFx1OUQzRlxcdTlEM0VcXHU5RDQ2XFx1OUQ0OFwiXSxcbiAgICAgIFtcImYzYTFcIiwgXCJcXHU5RDVEXFx1OUQ1RVxcdTlENjRcXHU5RDUxXFx1OUQ1MFxcdTlENTlcXHU5RDcyXFx1OUQ4OVxcdTlEODdcXHU5REFCXFx1OUQ2RlxcdTlEN0FcXHU5RDlBXFx1OURBNFxcdTlEQTlcXHU5REIyXFx1OURDNFxcdTlEQzFcXHU5REJCXFx1OURCOFxcdTlEQkFcXHU5REM2XFx1OURDRlxcdTlEQzJcXHU5REQ5XFx1OUREM1xcdTlERjhcXHU5REU2XFx1OURFRFxcdTlERUZcXHU5REZEXFx1OUUxQVxcdTlFMUJcXHU5RTFFXFx1OUU3NVxcdTlFNzlcXHU5RTdEXFx1OUU4MVxcdTlFODhcXHU5RThCXFx1OUU4Q1xcdTlFOTJcXHU5RTk1XFx1OUU5MVxcdTlFOURcXHU5RUE1XFx1OUVBOVxcdTlFQjhcXHU5RUFBXFx1OUVBRFxcdTk3NjFcXHU5RUNDXFx1OUVDRVxcdTlFQ0ZcXHU5RUQwXFx1OUVENFxcdTlFRENcXHU5RURFXFx1OUVERFxcdTlFRTBcXHU5RUU1XFx1OUVFOFxcdTlFRUZcXHU5RUY0XFx1OUVGNlxcdTlFRjdcXHU5RUY5XFx1OUVGQlxcdTlFRkNcXHU5RUZEXFx1OUYwN1xcdTlGMDhcXHU3NkI3XFx1OUYxNVxcdTlGMjFcXHU5RjJDXFx1OUYzRVxcdTlGNEFcXHU5RjUyXFx1OUY1NFxcdTlGNjNcXHU5RjVGXFx1OUY2MFxcdTlGNjFcXHU5RjY2XFx1OUY2N1xcdTlGNkNcXHU5RjZBXFx1OUY3N1xcdTlGNzJcXHU5Rjc2XFx1OUY5NVxcdTlGOUNcXHU5RkEwXCJdLFxuICAgICAgW1wiZjRhMVwiLCBcIlxcdTU4MkZcXHU2OUM3XFx1OTA1OVxcdTc0NjRcXHU1MURDXFx1NzE5OVwiXSxcbiAgICAgIFtcImY5YTFcIiwgXCJcXHU3RThBXFx1ODkxQ1xcdTkzNDhcXHU5Mjg4XFx1ODREQ1xcdTRGQzlcXHU3MEJCXFx1NjYzMVxcdTY4QzhcXHU5MkY5XFx1NjZGQlxcdTVGNDVcXHU0RTI4XFx1NEVFMVxcdTRFRkNcXHU0RjAwXFx1NEYwM1xcdTRGMzlcXHU0RjU2XFx1NEY5MlxcdTRGOEFcXHU0RjlBXFx1NEY5NFxcdTRGQ0RcXHU1MDQwXFx1NTAyMlxcdTRGRkZcXHU1MDFFXFx1NTA0NlxcdTUwNzBcXHU1MDQyXFx1NTA5NFxcdTUwRjRcXHU1MEQ4XFx1NTE0QVxcdTUxNjRcXHU1MTlEXFx1NTFCRVxcdTUxRUNcXHU1MjE1XFx1NTI5Q1xcdTUyQTZcXHU1MkMwXFx1NTJEQlxcdTUzMDBcXHU1MzA3XFx1NTMyNFxcdTUzNzJcXHU1MzkzXFx1NTNCMlxcdTUzRERcXHVGQTBFXFx1NTQ5Q1xcdTU0OEFcXHU1NEE5XFx1NTRGRlxcdTU1ODZcXHU1NzU5XFx1NTc2NVxcdTU3QUNcXHU1N0M4XFx1NTdDN1xcdUZBMEZcXHVGQTEwXFx1NTg5RVxcdTU4QjJcXHU1OTBCXFx1NTk1M1xcdTU5NUJcXHU1OTVEXFx1NTk2M1xcdTU5QTRcXHU1OUJBXFx1NUI1NlxcdTVCQzBcXHU3NTJGXFx1NUJEOFxcdTVCRUNcXHU1QzFFXFx1NUNBNlxcdTVDQkFcXHU1Q0Y1XFx1NUQyN1xcdTVENTNcXHVGQTExXFx1NUQ0MlxcdTVENkRcXHU1REI4XFx1NURCOVxcdTVERDBcXHU1RjIxXFx1NUYzNFxcdTVGNjdcXHU1RkI3XCJdLFxuICAgICAgW1wiZmFhMVwiLCBcIlxcdTVGREVcXHU2MDVEXFx1NjA4NVxcdTYwOEFcXHU2MERFXFx1NjBENVxcdTYxMjBcXHU2MEYyXFx1NjExMVxcdTYxMzdcXHU2MTMwXFx1NjE5OFxcdTYyMTNcXHU2MkE2XFx1NjNGNVxcdTY0NjBcXHU2NDlEXFx1NjRDRVxcdTY1NEVcXHU2NjAwXFx1NjYxNVxcdTY2M0JcXHU2NjA5XFx1NjYyRVxcdTY2MUVcXHU2NjI0XFx1NjY2NVxcdTY2NTdcXHU2NjU5XFx1RkExMlxcdTY2NzNcXHU2Njk5XFx1NjZBMFxcdTY2QjJcXHU2NkJGXFx1NjZGQVxcdTY3MEVcXHVGOTI5XFx1Njc2NlxcdTY3QkJcXHU2ODUyXFx1NjdDMFxcdTY4MDFcXHU2ODQ0XFx1NjhDRlxcdUZBMTNcXHU2OTY4XFx1RkExNFxcdTY5OThcXHU2OUUyXFx1NkEzMFxcdTZBNkJcXHU2QTQ2XFx1NkE3M1xcdTZBN0VcXHU2QUUyXFx1NkFFNFxcdTZCRDZcXHU2QzNGXFx1NkM1Q1xcdTZDODZcXHU2QzZGXFx1NkNEQVxcdTZEMDRcXHU2RDg3XFx1NkQ2RlxcdTZEOTZcXHU2REFDXFx1NkRDRlxcdTZERjhcXHU2REYyXFx1NkRGQ1xcdTZFMzlcXHU2RTVDXFx1NkUyN1xcdTZFM0NcXHU2RUJGXFx1NkY4OFxcdTZGQjVcXHU2RkY1XFx1NzAwNVxcdTcwMDdcXHU3MDI4XFx1NzA4NVxcdTcwQUJcXHU3MTBGXFx1NzEwNFxcdTcxNUNcXHU3MTQ2XFx1NzE0N1xcdUZBMTVcXHU3MUMxXFx1NzFGRVxcdTcyQjFcIl0sXG4gICAgICBbXCJmYmExXCIsIFwiXFx1NzJCRVxcdTczMjRcXHVGQTE2XFx1NzM3N1xcdTczQkRcXHU3M0M5XFx1NzNENlxcdTczRTNcXHU3M0QyXFx1NzQwN1xcdTczRjVcXHU3NDI2XFx1NzQyQVxcdTc0MjlcXHU3NDJFXFx1NzQ2MlxcdTc0ODlcXHU3NDlGXFx1NzUwMVxcdTc1NkZcXHU3NjgyXFx1NzY5Q1xcdTc2OUVcXHU3NjlCXFx1NzZBNlxcdUZBMTdcXHU3NzQ2XFx1NTJBRlxcdTc4MjFcXHU3ODRFXFx1Nzg2NFxcdTc4N0FcXHU3OTMwXFx1RkExOFxcdUZBMTlcXHVGQTFBXFx1Nzk5NFxcdUZBMUJcXHU3OTlCXFx1N0FEMVxcdTdBRTdcXHVGQTFDXFx1N0FFQlxcdTdCOUVcXHVGQTFEXFx1N0Q0OFxcdTdENUNcXHU3REI3XFx1N0RBMFxcdTdERDZcXHU3RTUyXFx1N0Y0N1xcdTdGQTFcXHVGQTFFXFx1ODMwMVxcdTgzNjJcXHU4MzdGXFx1ODNDN1xcdTgzRjZcXHU4NDQ4XFx1ODRCNFxcdTg1NTNcXHU4NTU5XFx1ODU2QlxcdUZBMUZcXHU4NUIwXFx1RkEyMFxcdUZBMjFcXHU4ODA3XFx1ODhGNVxcdThBMTJcXHU4QTM3XFx1OEE3OVxcdThBQTdcXHU4QUJFXFx1OEFERlxcdUZBMjJcXHU4QUY2XFx1OEI1M1xcdThCN0ZcXHU4Q0YwXFx1OENGNFxcdThEMTJcXHU4RDc2XFx1RkEyM1xcdThFQ0ZcXHVGQTI0XFx1RkEyNVxcdTkwNjdcXHU5MERFXFx1RkEyNlxcdTkxMTVcXHU5MTI3XFx1OTFEQVwiXSxcbiAgICAgIFtcImZjYTFcIiwgXCJcXHU5MUQ3XFx1OTFERVxcdTkxRURcXHU5MUVFXFx1OTFFNFxcdTkxRTVcXHU5MjA2XFx1OTIxMFxcdTkyMEFcXHU5MjNBXFx1OTI0MFxcdTkyM0NcXHU5MjRFXFx1OTI1OVxcdTkyNTFcXHU5MjM5XFx1OTI2N1xcdTkyQTdcXHU5Mjc3XFx1OTI3OFxcdTkyRTdcXHU5MkQ3XFx1OTJEOVxcdTkyRDBcXHVGQTI3XFx1OTJENVxcdTkyRTBcXHU5MkQzXFx1OTMyNVxcdTkzMjFcXHU5MkZCXFx1RkEyOFxcdTkzMUVcXHU5MkZGXFx1OTMxRFxcdTkzMDJcXHU5MzcwXFx1OTM1N1xcdTkzQTRcXHU5M0M2XFx1OTNERVxcdTkzRjhcXHU5NDMxXFx1OTQ0NVxcdTk0NDhcXHU5NTkyXFx1RjlEQ1xcdUZBMjlcXHU5NjlEXFx1OTZBRlxcdTk3MzNcXHU5NzNCXFx1OTc0M1xcdTk3NERcXHU5NzRGXFx1OTc1MVxcdTk3NTVcXHU5ODU3XFx1OTg2NVxcdUZBMkFcXHVGQTJCXFx1OTkyN1xcdUZBMkNcXHU5OTlFXFx1OUE0RVxcdTlBRDlcXHU5QURDXFx1OUI3NVxcdTlCNzJcXHU5QjhGXFx1OUJCMVxcdTlCQkJcXHU5QzAwXFx1OUQ3MFxcdTlENkJcXHVGQTJEXFx1OUUxOVxcdTlFRDFcIl0sXG4gICAgICBbXCJmY2YxXCIsIFwiXFx1MjE3MFwiLCA5LCBcIlxcdUZGRTJcXHVGRkU0XFx1RkYwN1xcdUZGMDJcIl0sXG4gICAgICBbXCI4ZmEyYWZcIiwgXCJcXHUwMkQ4XFx1MDJDN1xceEI4XFx1MDJEOVxcdTAyRERcXHhBRlxcdTAyREJcXHUwMkRBXFx1RkY1RVxcdTAzODRcXHUwMzg1XCJdLFxuICAgICAgW1wiOGZhMmMyXCIsIFwiXFx4QTFcXHhBNlxceEJGXCJdLFxuICAgICAgW1wiOGZhMmViXCIsIFwiXFx4QkFcXHhBQVxceEE5XFx4QUVcXHUyMTIyXFx4QTRcXHUyMTE2XCJdLFxuICAgICAgW1wiOGZhNmUxXCIsIFwiXFx1MDM4NlxcdTAzODhcXHUwMzg5XFx1MDM4QVxcdTAzQUFcIl0sXG4gICAgICBbXCI4ZmE2ZTdcIiwgXCJcXHUwMzhDXCJdLFxuICAgICAgW1wiOGZhNmU5XCIsIFwiXFx1MDM4RVxcdTAzQUJcIl0sXG4gICAgICBbXCI4ZmE2ZWNcIiwgXCJcXHUwMzhGXCJdLFxuICAgICAgW1wiOGZhNmYxXCIsIFwiXFx1MDNBQ1xcdTAzQURcXHUwM0FFXFx1MDNBRlxcdTAzQ0FcXHUwMzkwXFx1MDNDQ1xcdTAzQzJcXHUwM0NEXFx1MDNDQlxcdTAzQjBcXHUwM0NFXCJdLFxuICAgICAgW1wiOGZhN2MyXCIsIFwiXFx1MDQwMlwiLCAxMCwgXCJcXHUwNDBFXFx1MDQwRlwiXSxcbiAgICAgIFtcIjhmYTdmMlwiLCBcIlxcdTA0NTJcIiwgMTAsIFwiXFx1MDQ1RVxcdTA0NUZcIl0sXG4gICAgICBbXCI4ZmE5YTFcIiwgXCJcXHhDNlxcdTAxMTBcIl0sXG4gICAgICBbXCI4ZmE5YTRcIiwgXCJcXHUwMTI2XCJdLFxuICAgICAgW1wiOGZhOWE2XCIsIFwiXFx1MDEzMlwiXSxcbiAgICAgIFtcIjhmYTlhOFwiLCBcIlxcdTAxNDFcXHUwMTNGXCJdLFxuICAgICAgW1wiOGZhOWFiXCIsIFwiXFx1MDE0QVxceEQ4XFx1MDE1MlwiXSxcbiAgICAgIFtcIjhmYTlhZlwiLCBcIlxcdTAxNjZcXHhERVwiXSxcbiAgICAgIFtcIjhmYTljMVwiLCBcIlxceEU2XFx1MDExMVxceEYwXFx1MDEyN1xcdTAxMzFcXHUwMTMzXFx1MDEzOFxcdTAxNDJcXHUwMTQwXFx1MDE0OVxcdTAxNEJcXHhGOFxcdTAxNTNcXHhERlxcdTAxNjdcXHhGRVwiXSxcbiAgICAgIFtcIjhmYWFhMVwiLCBcIlxceEMxXFx4QzBcXHhDNFxceEMyXFx1MDEwMlxcdTAxQ0RcXHUwMTAwXFx1MDEwNFxceEM1XFx4QzNcXHUwMTA2XFx1MDEwOFxcdTAxMENcXHhDN1xcdTAxMEFcXHUwMTBFXFx4QzlcXHhDOFxceENCXFx4Q0FcXHUwMTFBXFx1MDExNlxcdTAxMTJcXHUwMTE4XCJdLFxuICAgICAgW1wiOGZhYWJhXCIsIFwiXFx1MDExQ1xcdTAxMUVcXHUwMTIyXFx1MDEyMFxcdTAxMjRcXHhDRFxceENDXFx4Q0ZcXHhDRVxcdTAxQ0ZcXHUwMTMwXFx1MDEyQVxcdTAxMkVcXHUwMTI4XFx1MDEzNFxcdTAxMzZcXHUwMTM5XFx1MDEzRFxcdTAxM0JcXHUwMTQzXFx1MDE0N1xcdTAxNDVcXHhEMVxceEQzXFx4RDJcXHhENlxceEQ0XFx1MDFEMVxcdTAxNTBcXHUwMTRDXFx4RDVcXHUwMTU0XFx1MDE1OFxcdTAxNTZcXHUwMTVBXFx1MDE1Q1xcdTAxNjBcXHUwMTVFXFx1MDE2NFxcdTAxNjJcXHhEQVxceEQ5XFx4RENcXHhEQlxcdTAxNkNcXHUwMUQzXFx1MDE3MFxcdTAxNkFcXHUwMTcyXFx1MDE2RVxcdTAxNjhcXHUwMUQ3XFx1MDFEQlxcdTAxRDlcXHUwMUQ1XFx1MDE3NFxceEREXFx1MDE3OFxcdTAxNzZcXHUwMTc5XFx1MDE3RFxcdTAxN0JcIl0sXG4gICAgICBbXCI4ZmFiYTFcIiwgXCJcXHhFMVxceEUwXFx4RTRcXHhFMlxcdTAxMDNcXHUwMUNFXFx1MDEwMVxcdTAxMDVcXHhFNVxceEUzXFx1MDEwN1xcdTAxMDlcXHUwMTBEXFx4RTdcXHUwMTBCXFx1MDEwRlxceEU5XFx4RThcXHhFQlxceEVBXFx1MDExQlxcdTAxMTdcXHUwMTEzXFx1MDExOVxcdTAxRjVcXHUwMTFEXFx1MDExRlwiXSxcbiAgICAgIFtcIjhmYWJiZFwiLCBcIlxcdTAxMjFcXHUwMTI1XFx4RURcXHhFQ1xceEVGXFx4RUVcXHUwMUQwXCJdLFxuICAgICAgW1wiOGZhYmM1XCIsIFwiXFx1MDEyQlxcdTAxMkZcXHUwMTI5XFx1MDEzNVxcdTAxMzdcXHUwMTNBXFx1MDEzRVxcdTAxM0NcXHUwMTQ0XFx1MDE0OFxcdTAxNDZcXHhGMVxceEYzXFx4RjJcXHhGNlxceEY0XFx1MDFEMlxcdTAxNTFcXHUwMTREXFx4RjVcXHUwMTU1XFx1MDE1OVxcdTAxNTdcXHUwMTVCXFx1MDE1RFxcdTAxNjFcXHUwMTVGXFx1MDE2NVxcdTAxNjNcXHhGQVxceEY5XFx4RkNcXHhGQlxcdTAxNkRcXHUwMUQ0XFx1MDE3MVxcdTAxNkJcXHUwMTczXFx1MDE2RlxcdTAxNjlcXHUwMUQ4XFx1MDFEQ1xcdTAxREFcXHUwMUQ2XFx1MDE3NVxceEZEXFx4RkZcXHUwMTc3XFx1MDE3QVxcdTAxN0VcXHUwMTdDXCJdLFxuICAgICAgW1wiOGZiMGExXCIsIFwiXFx1NEUwMlxcdTRFMDRcXHU0RTA1XFx1NEUwQ1xcdTRFMTJcXHU0RTFGXFx1NEUyM1xcdTRFMjRcXHU0RTI4XFx1NEUyQlxcdTRFMkVcXHU0RTJGXFx1NEUzMFxcdTRFMzVcXHU0RTQwXFx1NEU0MVxcdTRFNDRcXHU0RTQ3XFx1NEU1MVxcdTRFNUFcXHU0RTVDXFx1NEU2M1xcdTRFNjhcXHU0RTY5XFx1NEU3NFxcdTRFNzVcXHU0RTc5XFx1NEU3RlxcdTRFOERcXHU0RTk2XFx1NEU5N1xcdTRFOURcXHU0RUFGXFx1NEVCOVxcdTRFQzNcXHU0RUQwXFx1NEVEQVxcdTRFREJcXHU0RUUwXFx1NEVFMVxcdTRFRTJcXHU0RUU4XFx1NEVFRlxcdTRFRjFcXHU0RUYzXFx1NEVGNVxcdTRFRkRcXHU0RUZFXFx1NEVGRlxcdTRGMDBcXHU0RjAyXFx1NEYwM1xcdTRGMDhcXHU0RjBCXFx1NEYwQ1xcdTRGMTJcXHU0RjE1XFx1NEYxNlxcdTRGMTdcXHU0RjE5XFx1NEYyRVxcdTRGMzFcXHU0RjYwXFx1NEYzM1xcdTRGMzVcXHU0RjM3XFx1NEYzOVxcdTRGM0JcXHU0RjNFXFx1NEY0MFxcdTRGNDJcXHU0RjQ4XFx1NEY0OVxcdTRGNEJcXHU0RjRDXFx1NEY1MlxcdTRGNTRcXHU0RjU2XFx1NEY1OFxcdTRGNUZcXHU0RjYzXFx1NEY2QVxcdTRGNkNcXHU0RjZFXFx1NEY3MVxcdTRGNzdcXHU0Rjc4XFx1NEY3OVxcdTRGN0FcXHU0RjdEXFx1NEY3RVxcdTRGODFcXHU0RjgyXFx1NEY4NFwiXSxcbiAgICAgIFtcIjhmYjFhMVwiLCBcIlxcdTRGODVcXHU0Rjg5XFx1NEY4QVxcdTRGOENcXHU0RjhFXFx1NEY5MFxcdTRGOTJcXHU0RjkzXFx1NEY5NFxcdTRGOTdcXHU0Rjk5XFx1NEY5QVxcdTRGOUVcXHU0RjlGXFx1NEZCMlxcdTRGQjdcXHU0RkI5XFx1NEZCQlxcdTRGQkNcXHU0RkJEXFx1NEZCRVxcdTRGQzBcXHU0RkMxXFx1NEZDNVxcdTRGQzZcXHU0RkM4XFx1NEZDOVxcdTRGQ0JcXHU0RkNDXFx1NEZDRFxcdTRGQ0ZcXHU0RkQyXFx1NEZEQ1xcdTRGRTBcXHU0RkUyXFx1NEZGMFxcdTRGRjJcXHU0RkZDXFx1NEZGRFxcdTRGRkZcXHU1MDAwXFx1NTAwMVxcdTUwMDRcXHU1MDA3XFx1NTAwQVxcdTUwMENcXHU1MDBFXFx1NTAxMFxcdTUwMTNcXHU1MDE3XFx1NTAxOFxcdTUwMUJcXHU1MDFDXFx1NTAxRFxcdTUwMUVcXHU1MDIyXFx1NTAyN1xcdTUwMkVcXHU1MDMwXFx1NTAzMlxcdTUwMzNcXHU1MDM1XFx1NTA0MFxcdTUwNDFcXHU1MDQyXFx1NTA0NVxcdTUwNDZcXHU1MDRBXFx1NTA0Q1xcdTUwNEVcXHU1MDUxXFx1NTA1MlxcdTUwNTNcXHU1MDU3XFx1NTA1OVxcdTUwNUZcXHU1MDYwXFx1NTA2MlxcdTUwNjNcXHU1MDY2XFx1NTA2N1xcdTUwNkFcXHU1MDZEXFx1NTA3MFxcdTUwNzFcXHU1MDNCXFx1NTA4MVxcdTUwODNcXHU1MDg0XFx1NTA4NlxcdTUwOEFcXHU1MDhFXFx1NTA4RlxcdTUwOTBcIl0sXG4gICAgICBbXCI4ZmIyYTFcIiwgXCJcXHU1MDkyXFx1NTA5M1xcdTUwOTRcXHU1MDk2XFx1NTA5QlxcdTUwOUNcXHU1MDlFXCIsIDQsIFwiXFx1NTBBQVxcdTUwQUZcXHU1MEIwXFx1NTBCOVxcdTUwQkFcXHU1MEJEXFx1NTBDMFxcdTUwQzNcXHU1MEM0XFx1NTBDN1xcdTUwQ0NcXHU1MENFXFx1NTBEMFxcdTUwRDNcXHU1MEQ0XFx1NTBEOFxcdTUwRENcXHU1MEREXFx1NTBERlxcdTUwRTJcXHU1MEU0XFx1NTBFNlxcdTUwRThcXHU1MEU5XFx1NTBFRlxcdTUwRjFcXHU1MEY2XFx1NTBGQVxcdTUwRkVcXHU1MTAzXFx1NTEwNlxcdTUxMDdcXHU1MTA4XFx1NTEwQlxcdTUxMENcXHU1MTBEXFx1NTEwRVxcdTUwRjJcXHU1MTEwXFx1NTExN1xcdTUxMTlcXHU1MTFCXFx1NTExQ1xcdTUxMURcXHU1MTFFXFx1NTEyM1xcdTUxMjdcXHU1MTI4XFx1NTEyQ1xcdTUxMkRcXHU1MTJGXFx1NTEzMVxcdTUxMzNcXHU1MTM0XFx1NTEzNVxcdTUxMzhcXHU1MTM5XFx1NTE0MlxcdTUxNEFcXHU1MTRGXFx1NTE1M1xcdTUxNTVcXHU1MTU3XFx1NTE1OFxcdTUxNUZcXHU1MTY0XFx1NTE2NlxcdTUxN0VcXHU1MTgzXFx1NTE4NFxcdTUxOEJcXHU1MThFXFx1NTE5OFxcdTUxOURcXHU1MUExXFx1NTFBM1xcdTUxQURcXHU1MUI4XFx1NTFCQVxcdTUxQkNcXHU1MUJFXFx1NTFCRlxcdTUxQzJcIl0sXG4gICAgICBbXCI4ZmIzYTFcIiwgXCJcXHU1MUM4XFx1NTFDRlxcdTUxRDFcXHU1MUQyXFx1NTFEM1xcdTUxRDVcXHU1MUQ4XFx1NTFERVxcdTUxRTJcXHU1MUU1XFx1NTFFRVxcdTUxRjJcXHU1MUYzXFx1NTFGNFxcdTUxRjdcXHU1MjAxXFx1NTIwMlxcdTUyMDVcXHU1MjEyXFx1NTIxM1xcdTUyMTVcXHU1MjE2XFx1NTIxOFxcdTUyMjJcXHU1MjI4XFx1NTIzMVxcdTUyMzJcXHU1MjM1XFx1NTIzQ1xcdTUyNDVcXHU1MjQ5XFx1NTI1NVxcdTUyNTdcXHU1MjU4XFx1NTI1QVxcdTUyNUNcXHU1MjVGXFx1NTI2MFxcdTUyNjFcXHU1MjY2XFx1NTI2RVxcdTUyNzdcXHU1Mjc4XFx1NTI3OVxcdTUyODBcXHU1MjgyXFx1NTI4NVxcdTUyOEFcXHU1MjhDXFx1NTI5M1xcdTUyOTVcXHU1Mjk2XFx1NTI5N1xcdTUyOThcXHU1MjlBXFx1NTI5Q1xcdTUyQTRcXHU1MkE1XFx1NTJBNlxcdTUyQTdcXHU1MkFGXFx1NTJCMFxcdTUyQjZcXHU1MkI3XFx1NTJCOFxcdTUyQkFcXHU1MkJCXFx1NTJCRFxcdTUyQzBcXHU1MkM0XFx1NTJDNlxcdTUyQzhcXHU1MkNDXFx1NTJDRlxcdTUyRDFcXHU1MkQ0XFx1NTJENlxcdTUyREJcXHU1MkRDXFx1NTJFMVxcdTUyRTVcXHU1MkU4XFx1NTJFOVxcdTUyRUFcXHU1MkVDXFx1NTJGMFxcdTUyRjFcXHU1MkY0XFx1NTJGNlxcdTUyRjdcXHU1MzAwXFx1NTMwM1xcdTUzMEFcXHU1MzBCXCJdLFxuICAgICAgW1wiOGZiNGExXCIsIFwiXFx1NTMwQ1xcdTUzMTFcXHU1MzEzXFx1NTMxOFxcdTUzMUJcXHU1MzFDXFx1NTMxRVxcdTUzMUZcXHU1MzI1XFx1NTMyN1xcdTUzMjhcXHU1MzI5XFx1NTMyQlxcdTUzMkNcXHU1MzJEXFx1NTMzMFxcdTUzMzJcXHU1MzM1XFx1NTMzQ1xcdTUzM0RcXHU1MzNFXFx1NTM0MlxcdTUzNENcXHU1MzRCXFx1NTM1OVxcdTUzNUJcXHU1MzYxXFx1NTM2M1xcdTUzNjVcXHU1MzZDXFx1NTM2RFxcdTUzNzJcXHU1Mzc5XFx1NTM3RVxcdTUzODNcXHU1Mzg3XFx1NTM4OFxcdTUzOEVcXHU1MzkzXFx1NTM5NFxcdTUzOTlcXHU1MzlEXFx1NTNBMVxcdTUzQTRcXHU1M0FBXFx1NTNBQlxcdTUzQUZcXHU1M0IyXFx1NTNCNFxcdTUzQjVcXHU1M0I3XFx1NTNCOFxcdTUzQkFcXHU1M0JEXFx1NTNDMFxcdTUzQzVcXHU1M0NGXFx1NTNEMlxcdTUzRDNcXHU1M0Q1XFx1NTNEQVxcdTUzRERcXHU1M0RFXFx1NTNFMFxcdTUzRTZcXHU1M0U3XFx1NTNGNVxcdTU0MDJcXHU1NDEzXFx1NTQxQVxcdTU0MjFcXHU1NDI3XFx1NTQyOFxcdTU0MkFcXHU1NDJGXFx1NTQzMVxcdTU0MzRcXHU1NDM1XFx1NTQ0M1xcdTU0NDRcXHU1NDQ3XFx1NTQ0RFxcdTU0NEZcXHU1NDVFXFx1NTQ2MlxcdTU0NjRcXHU1NDY2XFx1NTQ2N1xcdTU0NjlcXHU1NDZCXFx1NTQ2RFxcdTU0NkVcXHU1NDc0XFx1NTQ3RlwiXSxcbiAgICAgIFtcIjhmYjVhMVwiLCBcIlxcdTU0ODFcXHU1NDgzXFx1NTQ4NVxcdTU0ODhcXHU1NDg5XFx1NTQ4RFxcdTU0OTFcXHU1NDk1XFx1NTQ5NlxcdTU0OUNcXHU1NDlGXFx1NTRBMVxcdTU0QTZcXHU1NEE3XFx1NTRBOVxcdTU0QUFcXHU1NEFEXFx1NTRBRVxcdTU0QjFcXHU1NEI3XFx1NTRCOVxcdTU0QkFcXHU1NEJCXFx1NTRCRlxcdTU0QzZcXHU1NENBXFx1NTRDRFxcdTU0Q0VcXHU1NEUwXFx1NTRFQVxcdTU0RUNcXHU1NEVGXFx1NTRGNlxcdTU0RkNcXHU1NEZFXFx1NTRGRlxcdTU1MDBcXHU1NTAxXFx1NTUwNVxcdTU1MDhcXHU1NTA5XFx1NTUwQ1xcdTU1MERcXHU1NTBFXFx1NTUxNVxcdTU1MkFcXHU1NTJCXFx1NTUzMlxcdTU1MzVcXHU1NTM2XFx1NTUzQlxcdTU1M0NcXHU1NTNEXFx1NTU0MVxcdTU1NDdcXHU1NTQ5XFx1NTU0QVxcdTU1NERcXHU1NTUwXFx1NTU1MVxcdTU1NThcXHU1NTVBXFx1NTU1QlxcdTU1NUVcXHU1NTYwXFx1NTU2MVxcdTU1NjRcXHU1NTY2XFx1NTU3RlxcdTU1ODFcXHU1NTgyXFx1NTU4NlxcdTU1ODhcXHU1NThFXFx1NTU4RlxcdTU1OTFcXHU1NTkyXFx1NTU5M1xcdTU1OTRcXHU1NTk3XFx1NTVBM1xcdTU1QTRcXHU1NUFEXFx1NTVCMlxcdTU1QkZcXHU1NUMxXFx1NTVDM1xcdTU1QzZcXHU1NUM5XFx1NTVDQlxcdTU1Q0NcXHU1NUNFXFx1NTVEMVxcdTU1RDJcIl0sXG4gICAgICBbXCI4ZmI2YTFcIiwgXCJcXHU1NUQzXFx1NTVEN1xcdTU1RDhcXHU1NURCXFx1NTVERVxcdTU1RTJcXHU1NUU5XFx1NTVGNlxcdTU1RkZcXHU1NjA1XFx1NTYwOFxcdTU2MEFcXHU1NjBEXCIsIDUsIFwiXFx1NTYxOVxcdTU2MkNcXHU1NjMwXFx1NTYzM1xcdTU2MzVcXHU1NjM3XFx1NTYzOVxcdTU2M0JcXHU1NjNDXFx1NTYzRFxcdTU2M0ZcXHU1NjQwXFx1NTY0MVxcdTU2NDNcXHU1NjQ0XFx1NTY0NlxcdTU2NDlcXHU1NjRCXFx1NTY0RFxcdTU2NEZcXHU1NjU0XFx1NTY1RVxcdTU2NjBcXHU1NjYxXFx1NTY2MlxcdTU2NjNcXHU1NjY2XFx1NTY2OVxcdTU2NkRcXHU1NjZGXFx1NTY3MVxcdTU2NzJcXHU1Njc1XFx1NTY4NFxcdTU2ODVcXHU1Njg4XFx1NTY4QlxcdTU2OENcXHU1Njk1XFx1NTY5OVxcdTU2OUFcXHU1NjlEXFx1NTY5RVxcdTU2OUZcXHU1NkE2XFx1NTZBN1xcdTU2QThcXHU1NkE5XFx1NTZBQlxcdTU2QUNcXHU1NkFEXFx1NTZCMVxcdTU2QjNcXHU1NkI3XFx1NTZCRVxcdTU2QzVcXHU1NkM5XFx1NTZDQVxcdTU2Q0JcXHU1NkNGXFx1NTZEMFxcdTU2Q0NcXHU1NkNEXFx1NTZEOVxcdTU2RENcXHU1NkREXFx1NTZERlxcdTU2RTFcXHU1NkU0XCIsIDQsIFwiXFx1NTZGMVxcdTU2RUJcXHU1NkVEXCJdLFxuICAgICAgW1wiOGZiN2ExXCIsIFwiXFx1NTZGNlxcdTU2RjdcXHU1NzAxXFx1NTcwMlxcdTU3MDdcXHU1NzBBXFx1NTcwQ1xcdTU3MTFcXHU1NzE1XFx1NTcxQVxcdTU3MUJcXHU1NzFEXFx1NTcyMFxcdTU3MjJcXHU1NzIzXFx1NTcyNFxcdTU3MjVcXHU1NzI5XFx1NTcyQVxcdTU3MkNcXHU1NzJFXFx1NTcyRlxcdTU3MzNcXHU1NzM0XFx1NTczRFxcdTU3M0VcXHU1NzNGXFx1NTc0NVxcdTU3NDZcXHU1NzRDXFx1NTc0RFxcdTU3NTJcXHU1NzYyXFx1NTc2NVxcdTU3NjdcXHU1NzY4XFx1NTc2QlxcdTU3NkRcIiwgNCwgXCJcXHU1NzczXFx1NTc3NFxcdTU3NzVcXHU1Nzc3XFx1NTc3OVxcdTU3N0FcXHU1NzdCXFx1NTc3Q1xcdTU3N0VcXHU1NzgxXFx1NTc4M1xcdTU3OENcXHU1Nzk0XFx1NTc5N1xcdTU3OTlcXHU1NzlBXFx1NTc5Q1xcdTU3OURcXHU1NzlFXFx1NTc5RlxcdTU3QTFcXHU1Nzk1XFx1NTdBN1xcdTU3QThcXHU1N0E5XFx1NTdBQ1xcdTU3QjhcXHU1N0JEXFx1NTdDN1xcdTU3QzhcXHU1N0NDXFx1NTdDRlxcdTU3RDVcXHU1N0REXFx1NTdERVxcdTU3RTRcXHU1N0U2XFx1NTdFN1xcdTU3RTlcXHU1N0VEXFx1NTdGMFxcdTU3RjVcXHU1N0Y2XFx1NTdGOFxcdTU3RkRcXHU1N0ZFXFx1NTdGRlxcdTU4MDNcXHU1ODA0XFx1NTgwOFxcdTU4MDlcXHU1N0UxXCJdLFxuICAgICAgW1wiOGZiOGExXCIsIFwiXFx1NTgwQ1xcdTU4MERcXHU1ODFCXFx1NTgxRVxcdTU4MUZcXHU1ODIwXFx1NTgyNlxcdTU4MjdcXHU1ODJEXFx1NTgzMlxcdTU4MzlcXHU1ODNGXFx1NTg0OVxcdTU4NENcXHU1ODREXFx1NTg0RlxcdTU4NTBcXHU1ODU1XFx1NTg1RlxcdTU4NjFcXHU1ODY0XFx1NTg2N1xcdTU4NjhcXHU1ODc4XFx1NTg3Q1xcdTU4N0ZcXHU1ODgwXFx1NTg4MVxcdTU4ODdcXHU1ODg4XFx1NTg4OVxcdTU4OEFcXHU1ODhDXFx1NTg4RFxcdTU4OEZcXHU1ODkwXFx1NTg5NFxcdTU4OTZcXHU1ODlEXFx1NThBMFxcdTU4QTFcXHU1OEEyXFx1NThBNlxcdTU4QTlcXHU1OEIxXFx1NThCMlxcdTU4QzRcXHU1OEJDXFx1NThDMlxcdTU4QzhcXHU1OENEXFx1NThDRVxcdTU4RDBcXHU1OEQyXFx1NThENFxcdTU4RDZcXHU1OERBXFx1NThERFxcdTU4RTFcXHU1OEUyXFx1NThFOVxcdTU4RjNcXHU1OTA1XFx1NTkwNlxcdTU5MEJcXHU1OTBDXFx1NTkxMlxcdTU5MTNcXHU1OTE0XFx1ODY0MVxcdTU5MURcXHU1OTIxXFx1NTkyM1xcdTU5MjRcXHU1OTI4XFx1NTkyRlxcdTU5MzBcXHU1OTMzXFx1NTkzNVxcdTU5MzZcXHU1OTNGXFx1NTk0M1xcdTU5NDZcXHU1OTUyXFx1NTk1M1xcdTU5NTlcXHU1OTVCXFx1NTk1RFxcdTU5NUVcXHU1OTVGXFx1NTk2MVxcdTU5NjNcXHU1OTZCXFx1NTk2RFwiXSxcbiAgICAgIFtcIjhmYjlhMVwiLCBcIlxcdTU5NkZcXHU1OTcyXFx1NTk3NVxcdTU5NzZcXHU1OTc5XFx1NTk3QlxcdTU5N0NcXHU1OThCXFx1NTk4Q1xcdTU5OEVcXHU1OTkyXFx1NTk5NVxcdTU5OTdcXHU1OTlGXFx1NTlBNFxcdTU5QTdcXHU1OUFEXFx1NTlBRVxcdTU5QUZcXHU1OUIwXFx1NTlCM1xcdTU5QjdcXHU1OUJBXFx1NTlCQ1xcdTU5QzFcXHU1OUMzXFx1NTlDNFxcdTU5QzhcXHU1OUNBXFx1NTlDRFxcdTU5RDJcXHU1OUREXFx1NTlERVxcdTU5REZcXHU1OUUzXFx1NTlFNFxcdTU5RTdcXHU1OUVFXFx1NTlFRlxcdTU5RjFcXHU1OUYyXFx1NTlGNFxcdTU5RjdcXHU1QTAwXFx1NUEwNFxcdTVBMENcXHU1QTBEXFx1NUEwRVxcdTVBMTJcXHU1QTEzXFx1NUExRVxcdTVBMjNcXHU1QTI0XFx1NUEyN1xcdTVBMjhcXHU1QTJBXFx1NUEyRFxcdTVBMzBcXHU1QTQ0XFx1NUE0NVxcdTVBNDdcXHU1QTQ4XFx1NUE0Q1xcdTVBNTBcXHU1QTU1XFx1NUE1RVxcdTVBNjNcXHU1QTY1XFx1NUE2N1xcdTVBNkRcXHU1QTc3XFx1NUE3QVxcdTVBN0JcXHU1QTdFXFx1NUE4QlxcdTVBOTBcXHU1QTkzXFx1NUE5NlxcdTVBOTlcXHU1QTlDXFx1NUE5RVxcdTVBOUZcXHU1QUEwXFx1NUFBMlxcdTVBQTdcXHU1QUFDXFx1NUFCMVxcdTVBQjJcXHU1QUIzXFx1NUFCNVxcdTVBQjhcXHU1QUJBXFx1NUFCQlxcdTVBQkZcIl0sXG4gICAgICBbXCI4ZmJhYTFcIiwgXCJcXHU1QUM0XFx1NUFDNlxcdTVBQzhcXHU1QUNGXFx1NUFEQVxcdTVBRENcXHU1QUUwXFx1NUFFNVxcdTVBRUFcXHU1QUVFXFx1NUFGNVxcdTVBRjZcXHU1QUZEXFx1NUIwMFxcdTVCMDFcXHU1QjA4XFx1NUIxN1xcdTVCMzRcXHU1QjE5XFx1NUIxQlxcdTVCMURcXHU1QjIxXFx1NUIyNVxcdTVCMkRcXHU1QjM4XFx1NUI0MVxcdTVCNEJcXHU1QjRDXFx1NUI1MlxcdTVCNTZcXHU1QjVFXFx1NUI2OFxcdTVCNkVcXHU1QjZGXFx1NUI3Q1xcdTVCN0RcXHU1QjdFXFx1NUI3RlxcdTVCODFcXHU1Qjg0XFx1NUI4NlxcdTVCOEFcXHU1QjhFXFx1NUI5MFxcdTVCOTFcXHU1QjkzXFx1NUI5NFxcdTVCOTZcXHU1QkE4XFx1NUJBOVxcdTVCQUNcXHU1QkFEXFx1NUJBRlxcdTVCQjFcXHU1QkIyXFx1NUJCN1xcdTVCQkFcXHU1QkJDXFx1NUJDMFxcdTVCQzFcXHU1QkNEXFx1NUJDRlxcdTVCRDZcIiwgNCwgXCJcXHU1QkUwXFx1NUJFRlxcdTVCRjFcXHU1QkY0XFx1NUJGRFxcdTVDMENcXHU1QzE3XFx1NUMxRVxcdTVDMUZcXHU1QzIzXFx1NUMyNlxcdTVDMjlcXHU1QzJCXFx1NUMyQ1xcdTVDMkVcXHU1QzMwXFx1NUMzMlxcdTVDMzVcXHU1QzM2XFx1NUM1OVxcdTVDNUFcXHU1QzVDXFx1NUM2MlxcdTVDNjNcXHU1QzY3XFx1NUM2OFxcdTVDNjlcIl0sXG4gICAgICBbXCI4ZmJiYTFcIiwgXCJcXHU1QzZEXFx1NUM3MFxcdTVDNzRcXHU1Qzc1XFx1NUM3QVxcdTVDN0JcXHU1QzdDXFx1NUM3RFxcdTVDODdcXHU1Qzg4XFx1NUM4QVxcdTVDOEZcXHU1QzkyXFx1NUM5RFxcdTVDOUZcXHU1Q0EwXFx1NUNBMlxcdTVDQTNcXHU1Q0E2XFx1NUNBQVxcdTVDQjJcXHU1Q0I0XFx1NUNCNVxcdTVDQkFcXHU1Q0M5XFx1NUNDQlxcdTVDRDJcXHU1Q0REXFx1NUNEN1xcdTVDRUVcXHU1Q0YxXFx1NUNGMlxcdTVDRjRcXHU1RDAxXFx1NUQwNlxcdTVEMERcXHU1RDEyXFx1NUQyQlxcdTVEMjNcXHU1RDI0XFx1NUQyNlxcdTVEMjdcXHU1RDMxXFx1NUQzNFxcdTVEMzlcXHU1RDNEXFx1NUQzRlxcdTVENDJcXHU1RDQzXFx1NUQ0NlxcdTVENDhcXHU1RDU1XFx1NUQ1MVxcdTVENTlcXHU1RDRBXFx1NUQ1RlxcdTVENjBcXHU1RDYxXFx1NUQ2MlxcdTVENjRcXHU1RDZBXFx1NUQ2RFxcdTVENzBcXHU1RDc5XFx1NUQ3QVxcdTVEN0VcXHU1RDdGXFx1NUQ4MVxcdTVEODNcXHU1RDg4XFx1NUQ4QVxcdTVEOTJcXHU1RDkzXFx1NUQ5NFxcdTVEOTVcXHU1RDk5XFx1NUQ5QlxcdTVEOUZcXHU1REEwXFx1NURBN1xcdTVEQUJcXHU1REIwXFx1NURCNFxcdTVEQjhcXHU1REI5XFx1NURDM1xcdTVEQzdcXHU1RENCXFx1NUREMFxcdTVEQ0VcXHU1REQ4XFx1NUREOVxcdTVERTBcXHU1REU0XCJdLFxuICAgICAgW1wiOGZiY2ExXCIsIFwiXFx1NURFOVxcdTVERjhcXHU1REY5XFx1NUUwMFxcdTVFMDdcXHU1RTBEXFx1NUUxMlxcdTVFMTRcXHU1RTE1XFx1NUUxOFxcdTVFMUZcXHU1RTIwXFx1NUUyRVxcdTVFMjhcXHU1RTMyXFx1NUUzNVxcdTVFM0VcXHU1RTRCXFx1NUU1MFxcdTVFNDlcXHU1RTUxXFx1NUU1NlxcdTVFNThcXHU1RTVCXFx1NUU1Q1xcdTVFNUVcXHU1RTY4XFx1NUU2QVwiLCA0LCBcIlxcdTVFNzBcXHU1RTgwXFx1NUU4QlxcdTVFOEVcXHU1RUEyXFx1NUVBNFxcdTVFQTVcXHU1RUE4XFx1NUVBQVxcdTVFQUNcXHU1RUIxXFx1NUVCM1xcdTVFQkRcXHU1RUJFXFx1NUVCRlxcdTVFQzZcXHU1RUNDXFx1NUVDQlxcdTVFQ0VcXHU1RUQxXFx1NUVEMlxcdTVFRDRcXHU1RUQ1XFx1NUVEQ1xcdTVFREVcXHU1RUU1XFx1NUVFQlxcdTVGMDJcXHU1RjA2XFx1NUYwN1xcdTVGMDhcXHU1RjBFXFx1NUYxOVxcdTVGMUNcXHU1RjFEXFx1NUYyMVxcdTVGMjJcXHU1RjIzXFx1NUYyNFxcdTVGMjhcXHU1RjJCXFx1NUYyQ1xcdTVGMkVcXHU1RjMwXFx1NUYzNFxcdTVGMzZcXHU1RjNCXFx1NUYzRFxcdTVGM0ZcXHU1RjQwXFx1NUY0NFxcdTVGNDVcXHU1RjQ3XFx1NUY0RFxcdTVGNTBcXHU1RjU0XFx1NUY1OFxcdTVGNUJcXHU1RjYwXFx1NUY2M1xcdTVGNjRcXHU1RjY3XCJdLFxuICAgICAgW1wiOGZiZGExXCIsIFwiXFx1NUY2RlxcdTVGNzJcXHU1Rjc0XFx1NUY3NVxcdTVGNzhcXHU1RjdBXFx1NUY3RFxcdTVGN0VcXHU1Rjg5XFx1NUY4RFxcdTVGOEZcXHU1Rjk2XFx1NUY5Q1xcdTVGOURcXHU1RkEyXFx1NUZBN1xcdTVGQUJcXHU1RkE0XFx1NUZBQ1xcdTVGQUZcXHU1RkIwXFx1NUZCMVxcdTVGQjhcXHU1RkM0XFx1NUZDN1xcdTVGQzhcXHU1RkM5XFx1NUZDQlxcdTVGRDBcIiwgNCwgXCJcXHU1RkRFXFx1NUZFMVxcdTVGRTJcXHU1RkU4XFx1NUZFOVxcdTVGRUFcXHU1RkVDXFx1NUZFRFxcdTVGRUVcXHU1RkVGXFx1NUZGMlxcdTVGRjNcXHU1RkY2XFx1NUZGQVxcdTVGRkNcXHU2MDA3XFx1NjAwQVxcdTYwMERcXHU2MDEzXFx1NjAxNFxcdTYwMTdcXHU2MDE4XFx1NjAxQVxcdTYwMUZcXHU2MDI0XFx1NjAyRFxcdTYwMzNcXHU2MDM1XFx1NjA0MFxcdTYwNDdcXHU2MDQ4XFx1NjA0OVxcdTYwNENcXHU2MDUxXFx1NjA1NFxcdTYwNTZcXHU2MDU3XFx1NjA1RFxcdTYwNjFcXHU2MDY3XFx1NjA3MVxcdTYwN0VcXHU2MDdGXFx1NjA4MlxcdTYwODZcXHU2MDg4XFx1NjA4QVxcdTYwOEVcXHU2MDkxXFx1NjA5M1xcdTYwOTVcXHU2MDk4XFx1NjA5RFxcdTYwOUVcXHU2MEEyXFx1NjBBNFxcdTYwQTVcXHU2MEE4XFx1NjBCMFxcdTYwQjFcXHU2MEI3XCJdLFxuICAgICAgW1wiOGZiZWExXCIsIFwiXFx1NjBCQlxcdTYwQkVcXHU2MEMyXFx1NjBDNFxcdTYwQzhcXHU2MEM5XFx1NjBDQVxcdTYwQ0JcXHU2MENFXFx1NjBDRlxcdTYwRDRcXHU2MEQ1XFx1NjBEOVxcdTYwREJcXHU2MEREXFx1NjBERVxcdTYwRTJcXHU2MEU1XFx1NjBGMlxcdTYwRjVcXHU2MEY4XFx1NjBGQ1xcdTYwRkRcXHU2MTAyXFx1NjEwN1xcdTYxMEFcXHU2MTBDXFx1NjExMFwiLCA0LCBcIlxcdTYxMTZcXHU2MTE3XFx1NjExOVxcdTYxMUNcXHU2MTFFXFx1NjEyMlxcdTYxMkFcXHU2MTJCXFx1NjEzMFxcdTYxMzFcXHU2MTM1XFx1NjEzNlxcdTYxMzdcXHU2MTM5XFx1NjE0MVxcdTYxNDVcXHU2MTQ2XFx1NjE0OVxcdTYxNUVcXHU2MTYwXFx1NjE2Q1xcdTYxNzJcXHU2MTc4XFx1NjE3QlxcdTYxN0NcXHU2MTdGXFx1NjE4MFxcdTYxODFcXHU2MTgzXFx1NjE4NFxcdTYxOEJcXHU2MThEXFx1NjE5MlxcdTYxOTNcXHU2MTk3XFx1NjE5OFxcdTYxOUNcXHU2MTlEXFx1NjE5RlxcdTYxQTBcXHU2MUE1XFx1NjFBOFxcdTYxQUFcXHU2MUFEXFx1NjFCOFxcdTYxQjlcXHU2MUJDXFx1NjFDMFxcdTYxQzFcXHU2MUMyXFx1NjFDRVxcdTYxQ0ZcXHU2MUQ1XFx1NjFEQ1xcdTYxRERcXHU2MURFXFx1NjFERlxcdTYxRTFcXHU2MUUyXFx1NjFFN1xcdTYxRTlcXHU2MUU1XCJdLFxuICAgICAgW1wiOGZiZmExXCIsIFwiXFx1NjFFQ1xcdTYxRURcXHU2MUVGXFx1NjIwMVxcdTYyMDNcXHU2MjA0XFx1NjIwN1xcdTYyMTNcXHU2MjE1XFx1NjIxQ1xcdTYyMjBcXHU2MjIyXFx1NjIyM1xcdTYyMjdcXHU2MjI5XFx1NjIyQlxcdTYyMzlcXHU2MjNEXFx1NjI0MlxcdTYyNDNcXHU2MjQ0XFx1NjI0NlxcdTYyNENcXHU2MjUwXFx1NjI1MVxcdTYyNTJcXHU2MjU0XFx1NjI1NlxcdTYyNUFcXHU2MjVDXFx1NjI2NFxcdTYyNkRcXHU2MjZGXFx1NjI3M1xcdTYyN0FcXHU2MjdEXFx1NjI4RFxcdTYyOEVcXHU2MjhGXFx1NjI5MFxcdTYyQTZcXHU2MkE4XFx1NjJCM1xcdTYyQjZcXHU2MkI3XFx1NjJCQVxcdTYyQkVcXHU2MkJGXFx1NjJDNFxcdTYyQ0VcXHU2MkQ1XFx1NjJENlxcdTYyREFcXHU2MkVBXFx1NjJGMlxcdTYyRjRcXHU2MkZDXFx1NjJGRFxcdTYzMDNcXHU2MzA0XFx1NjMwQVxcdTYzMEJcXHU2MzBEXFx1NjMxMFxcdTYzMTNcXHU2MzE2XFx1NjMxOFxcdTYzMjlcXHU2MzJBXFx1NjMyRFxcdTYzMzVcXHU2MzM2XFx1NjMzOVxcdTYzM0NcXHU2MzQxXFx1NjM0MlxcdTYzNDNcXHU2MzQ0XFx1NjM0NlxcdTYzNEFcXHU2MzRCXFx1NjM0RVxcdTYzNTJcXHU2MzUzXFx1NjM1NFxcdTYzNThcXHU2MzVCXFx1NjM2NVxcdTYzNjZcXHU2MzZDXFx1NjM2RFxcdTYzNzFcXHU2Mzc0XFx1NjM3NVwiXSxcbiAgICAgIFtcIjhmYzBhMVwiLCBcIlxcdTYzNzhcXHU2MzdDXFx1NjM3RFxcdTYzN0ZcXHU2MzgyXFx1NjM4NFxcdTYzODdcXHU2MzhBXFx1NjM5MFxcdTYzOTRcXHU2Mzk1XFx1NjM5OVxcdTYzOUFcXHU2MzlFXFx1NjNBNFxcdTYzQTZcXHU2M0FEXFx1NjNBRVxcdTYzQUZcXHU2M0JEXFx1NjNDMVxcdTYzQzVcXHU2M0M4XFx1NjNDRVxcdTYzRDFcXHU2M0QzXFx1NjNENFxcdTYzRDVcXHU2M0RDXFx1NjNFMFxcdTYzRTVcXHU2M0VBXFx1NjNFQ1xcdTYzRjJcXHU2M0YzXFx1NjNGNVxcdTYzRjhcXHU2M0Y5XFx1NjQwOVxcdTY0MEFcXHU2NDEwXFx1NjQxMlxcdTY0MTRcXHU2NDE4XFx1NjQxRVxcdTY0MjBcXHU2NDIyXFx1NjQyNFxcdTY0MjVcXHU2NDI5XFx1NjQyQVxcdTY0MkZcXHU2NDMwXFx1NjQzNVxcdTY0M0RcXHU2NDNGXFx1NjQ0QlxcdTY0NEZcXHU2NDUxXFx1NjQ1MlxcdTY0NTNcXHU2NDU0XFx1NjQ1QVxcdTY0NUJcXHU2NDVDXFx1NjQ1RFxcdTY0NUZcXHU2NDYwXFx1NjQ2MVxcdTY0NjNcXHU2NDZEXFx1NjQ3M1xcdTY0NzRcXHU2NDdCXFx1NjQ3RFxcdTY0ODVcXHU2NDg3XFx1NjQ4RlxcdTY0OTBcXHU2NDkxXFx1NjQ5OFxcdTY0OTlcXHU2NDlCXFx1NjQ5RFxcdTY0OUZcXHU2NEExXFx1NjRBM1xcdTY0QTZcXHU2NEE4XFx1NjRBQ1xcdTY0QjNcXHU2NEJEXFx1NjRCRVxcdTY0QkZcIl0sXG4gICAgICBbXCI4ZmMxYTFcIiwgXCJcXHU2NEM0XFx1NjRDOVxcdTY0Q0FcXHU2NENCXFx1NjRDQ1xcdTY0Q0VcXHU2NEQwXFx1NjREMVxcdTY0RDVcXHU2NEQ3XFx1NjRFNFxcdTY0RTVcXHU2NEU5XFx1NjRFQVxcdTY0RURcXHU2NEYwXFx1NjRGNVxcdTY0RjdcXHU2NEZCXFx1NjRGRlxcdTY1MDFcXHU2NTA0XFx1NjUwOFxcdTY1MDlcXHU2NTBBXFx1NjUwRlxcdTY1MTNcXHU2NTE0XFx1NjUxNlxcdTY1MTlcXHU2NTFCXFx1NjUxRVxcdTY1MUZcXHU2NTIyXFx1NjUyNlxcdTY1MjlcXHU2NTJFXFx1NjUzMVxcdTY1M0FcXHU2NTNDXFx1NjUzRFxcdTY1NDNcXHU2NTQ3XFx1NjU0OVxcdTY1NTBcXHU2NTUyXFx1NjU1NFxcdTY1NUZcXHU2NTYwXFx1NjU2N1xcdTY1NkJcXHU2NTdBXFx1NjU3RFxcdTY1ODFcXHU2NTg1XFx1NjU4QVxcdTY1OTJcXHU2NTk1XFx1NjU5OFxcdTY1OURcXHU2NUEwXFx1NjVBM1xcdTY1QTZcXHU2NUFFXFx1NjVCMlxcdTY1QjNcXHU2NUI0XFx1NjVCRlxcdTY1QzJcXHU2NUM4XFx1NjVDOVxcdTY1Q0VcXHU2NUQwXFx1NjVENFxcdTY1RDZcXHU2NUQ4XFx1NjVERlxcdTY1RjBcXHU2NUYyXFx1NjVGNFxcdTY1RjVcXHU2NUY5XFx1NjVGRVxcdTY1RkZcXHU2NjAwXFx1NjYwNFxcdTY2MDhcXHU2NjA5XFx1NjYwRFxcdTY2MTFcXHU2NjEyXFx1NjYxNVxcdTY2MTZcXHU2NjFEXCJdLFxuICAgICAgW1wiOGZjMmExXCIsIFwiXFx1NjYxRVxcdTY2MjFcXHU2NjIyXFx1NjYyM1xcdTY2MjRcXHU2NjI2XFx1NjYyOVxcdTY2MkFcXHU2NjJCXFx1NjYyQ1xcdTY2MkVcXHU2NjMwXFx1NjYzMVxcdTY2MzNcXHU2NjM5XFx1NjYzN1xcdTY2NDBcXHU2NjQ1XFx1NjY0NlxcdTY2NEFcXHU2NjRDXFx1NjY1MVxcdTY2NEVcXHU2NjU3XFx1NjY1OFxcdTY2NTlcXHU2NjVCXFx1NjY1Q1xcdTY2NjBcXHU2NjYxXFx1NjZGQlxcdTY2NkFcXHU2NjZCXFx1NjY2Q1xcdTY2N0VcXHU2NjczXFx1NjY3NVxcdTY2N0ZcXHU2Njc3XFx1NjY3OFxcdTY2NzlcXHU2NjdCXFx1NjY4MFxcdTY2N0NcXHU2NjhCXFx1NjY4Q1xcdTY2OERcXHU2NjkwXFx1NjY5MlxcdTY2OTlcXHU2NjlBXFx1NjY5QlxcdTY2OUNcXHU2NjlGXFx1NjZBMFxcdTY2QTRcXHU2NkFEXFx1NjZCMVxcdTY2QjJcXHU2NkI1XFx1NjZCQlxcdTY2QkZcXHU2NkMwXFx1NjZDMlxcdTY2QzNcXHU2NkM4XFx1NjZDQ1xcdTY2Q0VcXHU2NkNGXFx1NjZENFxcdTY2REJcXHU2NkRGXFx1NjZFOFxcdTY2RUJcXHU2NkVDXFx1NjZFRVxcdTY2RkFcXHU2NzA1XFx1NjcwN1xcdTY3MEVcXHU2NzEzXFx1NjcxOVxcdTY3MUNcXHU2NzIwXFx1NjcyMlxcdTY3MzNcXHU2NzNFXFx1Njc0NVxcdTY3NDdcXHU2NzQ4XFx1Njc0Q1xcdTY3NTRcXHU2NzU1XFx1Njc1RFwiXSxcbiAgICAgIFtcIjhmYzNhMVwiLCBcIlxcdTY3NjZcXHU2NzZDXFx1Njc2RVxcdTY3NzRcXHU2Nzc2XFx1Njc3QlxcdTY3ODFcXHU2Nzg0XFx1Njc4RVxcdTY3OEZcXHU2NzkxXFx1Njc5M1xcdTY3OTZcXHU2Nzk4XFx1Njc5OVxcdTY3OUJcXHU2N0IwXFx1NjdCMVxcdTY3QjJcXHU2N0I1XFx1NjdCQlxcdTY3QkNcXHU2N0JEXFx1NjdGOVxcdTY3QzBcXHU2N0MyXFx1NjdDM1xcdTY3QzVcXHU2N0M4XFx1NjdDOVxcdTY3RDJcXHU2N0Q3XFx1NjdEOVxcdTY3RENcXHU2N0UxXFx1NjdFNlxcdTY3RjBcXHU2N0YyXFx1NjdGNlxcdTY3RjdcXHU2ODUyXFx1NjgxNFxcdTY4MTlcXHU2ODFEXFx1NjgxRlxcdTY4MjhcXHU2ODI3XFx1NjgyQ1xcdTY4MkRcXHU2ODJGXFx1NjgzMFxcdTY4MzFcXHU2ODMzXFx1NjgzQlxcdTY4M0ZcXHU2ODQ0XFx1Njg0NVxcdTY4NEFcXHU2ODRDXFx1Njg1NVxcdTY4NTdcXHU2ODU4XFx1Njg1QlxcdTY4NkJcXHU2ODZFXCIsIDQsIFwiXFx1Njg3NVxcdTY4NzlcXHU2ODdBXFx1Njg3QlxcdTY4N0NcXHU2ODgyXFx1Njg4NFxcdTY4ODZcXHU2ODg4XFx1Njg5NlxcdTY4OThcXHU2ODlBXFx1Njg5Q1xcdTY4QTFcXHU2OEEzXFx1NjhBNVxcdTY4QTlcXHU2OEFBXFx1NjhBRVxcdTY4QjJcXHU2OEJCXFx1NjhDNVxcdTY4QzhcXHU2OENDXFx1NjhDRlwiXSxcbiAgICAgIFtcIjhmYzRhMVwiLCBcIlxcdTY4RDBcXHU2OEQxXFx1NjhEM1xcdTY4RDZcXHU2OEQ5XFx1NjhEQ1xcdTY4RERcXHU2OEU1XFx1NjhFOFxcdTY4RUFcXHU2OEVCXFx1NjhFQ1xcdTY4RURcXHU2OEYwXFx1NjhGMVxcdTY4RjVcXHU2OEY2XFx1NjhGQlxcdTY4RkNcXHU2OEZEXFx1NjkwNlxcdTY5MDlcXHU2OTBBXFx1NjkxMFxcdTY5MTFcXHU2OTEzXFx1NjkxNlxcdTY5MTdcXHU2OTMxXFx1NjkzM1xcdTY5MzVcXHU2OTM4XFx1NjkzQlxcdTY5NDJcXHU2OTQ1XFx1Njk0OVxcdTY5NEVcXHU2OTU3XFx1Njk1QlxcdTY5NjNcXHU2OTY0XFx1Njk2NVxcdTY5NjZcXHU2OTY4XFx1Njk2OVxcdTY5NkNcXHU2OTcwXFx1Njk3MVxcdTY5NzJcXHU2OTdBXFx1Njk3QlxcdTY5N0ZcXHU2OTgwXFx1Njk4RFxcdTY5OTJcXHU2OTk2XFx1Njk5OFxcdTY5QTFcXHU2OUE1XFx1NjlBNlxcdTY5QThcXHU2OUFCXFx1NjlBRFxcdTY5QUZcXHU2OUI3XFx1NjlCOFxcdTY5QkFcXHU2OUJDXFx1NjlDNVxcdTY5QzhcXHU2OUQxXFx1NjlENlxcdTY5RDdcXHU2OUUyXFx1NjlFNVxcdTY5RUVcXHU2OUVGXFx1NjlGMVxcdTY5RjNcXHU2OUY1XFx1NjlGRVxcdTZBMDBcXHU2QTAxXFx1NkEwM1xcdTZBMEZcXHU2QTExXFx1NkExNVxcdTZBMUFcXHU2QTFEXFx1NkEyMFxcdTZBMjRcXHU2QTI4XFx1NkEzMFxcdTZBMzJcIl0sXG4gICAgICBbXCI4ZmM1YTFcIiwgXCJcXHU2QTM0XFx1NkEzN1xcdTZBM0JcXHU2QTNFXFx1NkEzRlxcdTZBNDVcXHU2QTQ2XFx1NkE0OVxcdTZBNEFcXHU2QTRFXFx1NkE1MFxcdTZBNTFcXHU2QTUyXFx1NkE1NVxcdTZBNTZcXHU2QTVCXFx1NkE2NFxcdTZBNjdcXHU2QTZBXFx1NkE3MVxcdTZBNzNcXHU2QTdFXFx1NkE4MVxcdTZBODNcXHU2QTg2XFx1NkE4N1xcdTZBODlcXHU2QThCXFx1NkE5MVxcdTZBOUJcXHU2QTlEXFx1NkE5RVxcdTZBOUZcXHU2QUE1XFx1NkFBQlxcdTZBQUZcXHU2QUIwXFx1NkFCMVxcdTZBQjRcXHU2QUJEXFx1NkFCRVxcdTZBQkZcXHU2QUM2XFx1NkFDOVxcdTZBQzhcXHU2QUNDXFx1NkFEMFxcdTZBRDRcXHU2QUQ1XFx1NkFENlxcdTZBRENcXHU2QUREXFx1NkFFNFxcdTZBRTdcXHU2QUVDXFx1NkFGMFxcdTZBRjFcXHU2QUYyXFx1NkFGQ1xcdTZBRkRcXHU2QjAyXFx1NkIwM1xcdTZCMDZcXHU2QjA3XFx1NkIwOVxcdTZCMEZcXHU2QjEwXFx1NkIxMVxcdTZCMTdcXHU2QjFCXFx1NkIxRVxcdTZCMjRcXHU2QjI4XFx1NkIyQlxcdTZCMkNcXHU2QjJGXFx1NkIzNVxcdTZCMzZcXHU2QjNCXFx1NkIzRlxcdTZCNDZcXHU2QjRBXFx1NkI0RFxcdTZCNTJcXHU2QjU2XFx1NkI1OFxcdTZCNURcXHU2QjYwXFx1NkI2N1xcdTZCNkJcXHU2QjZFXFx1NkI3MFxcdTZCNzVcXHU2QjdEXCJdLFxuICAgICAgW1wiOGZjNmExXCIsIFwiXFx1NkI3RVxcdTZCODJcXHU2Qjg1XFx1NkI5N1xcdTZCOUJcXHU2QjlGXFx1NkJBMFxcdTZCQTJcXHU2QkEzXFx1NkJBOFxcdTZCQTlcXHU2QkFDXFx1NkJBRFxcdTZCQUVcXHU2QkIwXFx1NkJCOFxcdTZCQjlcXHU2QkJEXFx1NkJCRVxcdTZCQzNcXHU2QkM0XFx1NkJDOVxcdTZCQ0NcXHU2QkQ2XFx1NkJEQVxcdTZCRTFcXHU2QkUzXFx1NkJFNlxcdTZCRTdcXHU2QkVFXFx1NkJGMVxcdTZCRjdcXHU2QkY5XFx1NkJGRlxcdTZDMDJcXHU2QzA0XFx1NkMwNVxcdTZDMDlcXHU2QzBEXFx1NkMwRVxcdTZDMTBcXHU2QzEyXFx1NkMxOVxcdTZDMUZcXHU2QzI2XFx1NkMyN1xcdTZDMjhcXHU2QzJDXFx1NkMyRVxcdTZDMzNcXHU2QzM1XFx1NkMzNlxcdTZDM0FcXHU2QzNCXFx1NkMzRlxcdTZDNEFcXHU2QzRCXFx1NkM0RFxcdTZDNEZcXHU2QzUyXFx1NkM1NFxcdTZDNTlcXHU2QzVCXFx1NkM1Q1xcdTZDNkJcXHU2QzZEXFx1NkM2RlxcdTZDNzRcXHU2Qzc2XFx1NkM3OFxcdTZDNzlcXHU2QzdCXFx1NkM4NVxcdTZDODZcXHU2Qzg3XFx1NkM4OVxcdTZDOTRcXHU2Qzk1XFx1NkM5N1xcdTZDOThcXHU2QzlDXFx1NkM5RlxcdTZDQjBcXHU2Q0IyXFx1NkNCNFxcdTZDQzJcXHU2Q0M2XFx1NkNDRFxcdTZDQ0ZcXHU2Q0QwXFx1NkNEMVxcdTZDRDJcXHU2Q0Q0XFx1NkNENlwiXSxcbiAgICAgIFtcIjhmYzdhMVwiLCBcIlxcdTZDREFcXHU2Q0RDXFx1NkNFMFxcdTZDRTdcXHU2Q0U5XFx1NkNFQlxcdTZDRUNcXHU2Q0VFXFx1NkNGMlxcdTZDRjRcXHU2RDA0XFx1NkQwN1xcdTZEMEFcXHU2RDBFXFx1NkQwRlxcdTZEMTFcXHU2RDEzXFx1NkQxQVxcdTZEMjZcXHU2RDI3XFx1NkQyOFxcdTZDNjdcXHU2RDJFXFx1NkQyRlxcdTZEMzFcXHU2RDM5XFx1NkQzQ1xcdTZEM0ZcXHU2RDU3XFx1NkQ1RVxcdTZENUZcXHU2RDYxXFx1NkQ2NVxcdTZENjdcXHU2RDZGXFx1NkQ3MFxcdTZEN0NcXHU2RDgyXFx1NkQ4N1xcdTZEOTFcXHU2RDkyXFx1NkQ5NFxcdTZEOTZcXHU2RDk3XFx1NkQ5OFxcdTZEQUFcXHU2REFDXFx1NkRCNFxcdTZEQjdcXHU2REI5XFx1NkRCRFxcdTZEQkZcXHU2REM0XFx1NkRDOFxcdTZEQ0FcXHU2RENFXFx1NkRDRlxcdTZERDZcXHU2RERCXFx1NkRERFxcdTZEREZcXHU2REUwXFx1NkRFMlxcdTZERTVcXHU2REU5XFx1NkRFRlxcdTZERjBcXHU2REY0XFx1NkRGNlxcdTZERkNcXHU2RTAwXFx1NkUwNFxcdTZFMUVcXHU2RTIyXFx1NkUyN1xcdTZFMzJcXHU2RTM2XFx1NkUzOVxcdTZFM0JcXHU2RTNDXFx1NkU0NFxcdTZFNDVcXHU2RTQ4XFx1NkU0OVxcdTZFNEJcXHU2RTRGXFx1NkU1MVxcdTZFNTJcXHU2RTUzXFx1NkU1NFxcdTZFNTdcXHU2RTVDXFx1NkU1RFxcdTZFNUVcIl0sXG4gICAgICBbXCI4ZmM4YTFcIiwgXCJcXHU2RTYyXFx1NkU2M1xcdTZFNjhcXHU2RTczXFx1NkU3QlxcdTZFN0RcXHU2RThEXFx1NkU5M1xcdTZFOTlcXHU2RUEwXFx1NkVBN1xcdTZFQURcXHU2RUFFXFx1NkVCMVxcdTZFQjNcXHU2RUJCXFx1NkVCRlxcdTZFQzBcXHU2RUMxXFx1NkVDM1xcdTZFQzdcXHU2RUM4XFx1NkVDQVxcdTZFQ0RcXHU2RUNFXFx1NkVDRlxcdTZFRUJcXHU2RUVEXFx1NkVFRVxcdTZFRjlcXHU2RUZCXFx1NkVGRFxcdTZGMDRcXHU2RjA4XFx1NkYwQVxcdTZGMENcXHU2RjBEXFx1NkYxNlxcdTZGMThcXHU2RjFBXFx1NkYxQlxcdTZGMjZcXHU2RjI5XFx1NkYyQVxcdTZGMkZcXHU2RjMwXFx1NkYzM1xcdTZGMzZcXHU2RjNCXFx1NkYzQ1xcdTZGMkRcXHU2RjRGXFx1NkY1MVxcdTZGNTJcXHU2RjUzXFx1NkY1N1xcdTZGNTlcXHU2RjVBXFx1NkY1RFxcdTZGNUVcXHU2RjYxXFx1NkY2MlxcdTZGNjhcXHU2RjZDXFx1NkY3RFxcdTZGN0VcXHU2RjgzXFx1NkY4N1xcdTZGODhcXHU2RjhCXFx1NkY4Q1xcdTZGOERcXHU2RjkwXFx1NkY5MlxcdTZGOTNcXHU2Rjk0XFx1NkY5NlxcdTZGOUFcXHU2RjlGXFx1NkZBMFxcdTZGQTVcXHU2RkE2XFx1NkZBN1xcdTZGQThcXHU2RkFFXFx1NkZBRlxcdTZGQjBcXHU2RkI1XFx1NkZCNlxcdTZGQkNcXHU2RkM1XFx1NkZDN1xcdTZGQzhcXHU2RkNBXCJdLFxuICAgICAgW1wiOGZjOWExXCIsIFwiXFx1NkZEQVxcdTZGREVcXHU2RkU4XFx1NkZFOVxcdTZGRjBcXHU2RkY1XFx1NkZGOVxcdTZGRkNcXHU2RkZEXFx1NzAwMFxcdTcwMDVcXHU3MDA2XFx1NzAwN1xcdTcwMERcXHU3MDE3XFx1NzAyMFxcdTcwMjNcXHU3MDJGXFx1NzAzNFxcdTcwMzdcXHU3MDM5XFx1NzAzQ1xcdTcwNDNcXHU3MDQ0XFx1NzA0OFxcdTcwNDlcXHU3MDRBXFx1NzA0QlxcdTcwNTRcXHU3MDU1XFx1NzA1RFxcdTcwNUVcXHU3MDRFXFx1NzA2NFxcdTcwNjVcXHU3MDZDXFx1NzA2RVxcdTcwNzVcXHU3MDc2XFx1NzA3RVxcdTcwODFcXHU3MDg1XFx1NzA4NlxcdTcwOTRcIiwgNCwgXCJcXHU3MDlCXFx1NzBBNFxcdTcwQUJcXHU3MEIwXFx1NzBCMVxcdTcwQjRcXHU3MEI3XFx1NzBDQVxcdTcwRDFcXHU3MEQzXFx1NzBENFxcdTcwRDVcXHU3MEQ2XFx1NzBEOFxcdTcwRENcXHU3MEU0XFx1NzBGQVxcdTcxMDNcIiwgNCwgXCJcXHU3MTBCXFx1NzEwQ1xcdTcxMEZcXHU3MTFFXFx1NzEyMFxcdTcxMkJcXHU3MTJEXFx1NzEyRlxcdTcxMzBcXHU3MTMxXFx1NzEzOFxcdTcxNDFcXHU3MTQ1XFx1NzE0NlxcdTcxNDdcXHU3MTRBXFx1NzE0QlxcdTcxNTBcXHU3MTUyXFx1NzE1N1xcdTcxNUFcXHU3MTVDXFx1NzE1RVxcdTcxNjBcIl0sXG4gICAgICBbXCI4ZmNhYTFcIiwgXCJcXHU3MTY4XFx1NzE3OVxcdTcxODBcXHU3MTg1XFx1NzE4N1xcdTcxOENcXHU3MTkyXFx1NzE5QVxcdTcxOUJcXHU3MUEwXFx1NzFBMlxcdTcxQUZcXHU3MUIwXFx1NzFCMlxcdTcxQjNcXHU3MUJBXFx1NzFCRlxcdTcxQzBcXHU3MUMxXFx1NzFDNFxcdTcxQ0JcXHU3MUNDXFx1NzFEM1xcdTcxRDZcXHU3MUQ5XFx1NzFEQVxcdTcxRENcXHU3MUY4XFx1NzFGRVxcdTcyMDBcXHU3MjA3XFx1NzIwOFxcdTcyMDlcXHU3MjEzXFx1NzIxN1xcdTcyMUFcXHU3MjFEXFx1NzIxRlxcdTcyMjRcXHU3MjJCXFx1NzIyRlxcdTcyMzRcXHU3MjM4XFx1NzIzOVxcdTcyNDFcXHU3MjQyXFx1NzI0M1xcdTcyNDVcXHU3MjRFXFx1NzI0RlxcdTcyNTBcXHU3MjUzXFx1NzI1NVxcdTcyNTZcXHU3MjVBXFx1NzI1Q1xcdTcyNUVcXHU3MjYwXFx1NzI2M1xcdTcyNjhcXHU3MjZCXFx1NzI2RVxcdTcyNkZcXHU3MjcxXFx1NzI3N1xcdTcyNzhcXHU3MjdCXFx1NzI3Q1xcdTcyN0ZcXHU3Mjg0XFx1NzI4OVxcdTcyOERcXHU3MjhFXFx1NzI5M1xcdTcyOUJcXHU3MkE4XFx1NzJBRFxcdTcyQUVcXHU3MkIxXFx1NzJCNFxcdTcyQkVcXHU3MkMxXFx1NzJDN1xcdTcyQzlcXHU3MkNDXFx1NzJENVxcdTcyRDZcXHU3MkQ4XFx1NzJERlxcdTcyRTVcXHU3MkYzXFx1NzJGNFxcdTcyRkFcXHU3MkZCXCJdLFxuICAgICAgW1wiOGZjYmExXCIsIFwiXFx1NzJGRVxcdTczMDJcXHU3MzA0XFx1NzMwNVxcdTczMDdcXHU3MzBCXFx1NzMwRFxcdTczMTJcXHU3MzEzXFx1NzMxOFxcdTczMTlcXHU3MzFFXFx1NzMyMlxcdTczMjRcXHU3MzI3XFx1NzMyOFxcdTczMkNcXHU3MzMxXFx1NzMzMlxcdTczMzVcXHU3MzNBXFx1NzMzQlxcdTczM0RcXHU3MzQzXFx1NzM0RFxcdTczNTBcXHU3MzUyXFx1NzM1NlxcdTczNThcXHU3MzVEXFx1NzM1RVxcdTczNUZcXHU3MzYwXFx1NzM2NlxcdTczNjdcXHU3MzY5XFx1NzM2QlxcdTczNkNcXHU3MzZFXFx1NzM2RlxcdTczNzFcXHU3Mzc3XFx1NzM3OVxcdTczN0NcXHU3MzgwXFx1NzM4MVxcdTczODNcXHU3Mzg1XFx1NzM4NlxcdTczOEVcXHU3MzkwXFx1NzM5M1xcdTczOTVcXHU3Mzk3XFx1NzM5OFxcdTczOUNcXHU3MzlFXFx1NzM5RlxcdTczQTBcXHU3M0EyXFx1NzNBNVxcdTczQTZcXHU3M0FBXFx1NzNBQlxcdTczQURcXHU3M0I1XFx1NzNCN1xcdTczQjlcXHU3M0JDXFx1NzNCRFxcdTczQkZcXHU3M0M1XFx1NzNDNlxcdTczQzlcXHU3M0NCXFx1NzNDQ1xcdTczQ0ZcXHU3M0QyXFx1NzNEM1xcdTczRDZcXHU3M0Q5XFx1NzNERFxcdTczRTFcXHU3M0UzXFx1NzNFNlxcdTczRTdcXHU3M0U5XFx1NzNGNFxcdTczRjVcXHU3M0Y3XFx1NzNGOVxcdTczRkFcXHU3M0ZCXFx1NzNGRFwiXSxcbiAgICAgIFtcIjhmY2NhMVwiLCBcIlxcdTczRkZcXHU3NDAwXFx1NzQwMVxcdTc0MDRcXHU3NDA3XFx1NzQwQVxcdTc0MTFcXHU3NDFBXFx1NzQxQlxcdTc0MjRcXHU3NDI2XFx1NzQyOFwiLCA5LCBcIlxcdTc0MzlcXHU3NDQwXFx1NzQ0M1xcdTc0NDRcXHU3NDQ2XFx1NzQ0N1xcdTc0NEJcXHU3NDREXFx1NzQ1MVxcdTc0NTJcXHU3NDU3XFx1NzQ1RFxcdTc0NjJcXHU3NDY2XFx1NzQ2N1xcdTc0NjhcXHU3NDZCXFx1NzQ2RFxcdTc0NkVcXHU3NDcxXFx1NzQ3MlxcdTc0ODBcXHU3NDgxXFx1NzQ4NVxcdTc0ODZcXHU3NDg3XFx1NzQ4OVxcdTc0OEZcXHU3NDkwXFx1NzQ5MVxcdTc0OTJcXHU3NDk4XFx1NzQ5OVxcdTc0OUFcXHU3NDlDXFx1NzQ5RlxcdTc0QTBcXHU3NEExXFx1NzRBM1xcdTc0QTZcXHU3NEE4XFx1NzRBOVxcdTc0QUFcXHU3NEFCXFx1NzRBRVxcdTc0QUZcXHU3NEIxXFx1NzRCMlxcdTc0QjVcXHU3NEI5XFx1NzRCQlxcdTc0QkZcXHU3NEM4XFx1NzRDOVxcdTc0Q0NcXHU3NEQwXFx1NzREM1xcdTc0RDhcXHU3NERBXFx1NzREQlxcdTc0REVcXHU3NERGXFx1NzRFNFxcdTc0RThcXHU3NEVBXFx1NzRFQlxcdTc0RUZcXHU3NEY0XFx1NzRGQVxcdTc0RkJcXHU3NEZDXFx1NzRGRlxcdTc1MDZcIl0sXG4gICAgICBbXCI4ZmNkYTFcIiwgXCJcXHU3NTEyXFx1NzUxNlxcdTc1MTdcXHU3NTIwXFx1NzUyMVxcdTc1MjRcXHU3NTI3XFx1NzUyOVxcdTc1MkFcXHU3NTJGXFx1NzUzNlxcdTc1MzlcXHU3NTNEXFx1NzUzRVxcdTc1M0ZcXHU3NTQwXFx1NzU0M1xcdTc1NDdcXHU3NTQ4XFx1NzU0RVxcdTc1NTBcXHU3NTUyXFx1NzU1N1xcdTc1NUVcXHU3NTVGXFx1NzU2MVxcdTc1NkZcXHU3NTcxXFx1NzU3OVwiLCA1LCBcIlxcdTc1ODFcXHU3NTg1XFx1NzU5MFxcdTc1OTJcXHU3NTkzXFx1NzU5NVxcdTc1OTlcXHU3NTlDXFx1NzVBMlxcdTc1QTRcXHU3NUI0XFx1NzVCQVxcdTc1QkZcXHU3NUMwXFx1NzVDMVxcdTc1QzRcXHU3NUM2XFx1NzVDQ1xcdTc1Q0VcXHU3NUNGXFx1NzVEN1xcdTc1RENcXHU3NURGXFx1NzVFMFxcdTc1RTFcXHU3NUU0XFx1NzVFN1xcdTc1RUNcXHU3NUVFXFx1NzVFRlxcdTc1RjFcXHU3NUY5XFx1NzYwMFxcdTc2MDJcXHU3NjAzXFx1NzYwNFxcdTc2MDdcXHU3NjA4XFx1NzYwQVxcdTc2MENcXHU3NjBGXFx1NzYxMlxcdTc2MTNcXHU3NjE1XFx1NzYxNlxcdTc2MTlcXHU3NjFCXFx1NzYxQ1xcdTc2MURcXHU3NjFFXFx1NzYyM1xcdTc2MjVcXHU3NjI2XFx1NzYyOVxcdTc2MkRcXHU3NjMyXFx1NzYzM1xcdTc2MzVcXHU3NjM4XFx1NzYzOVwiXSxcbiAgICAgIFtcIjhmY2VhMVwiLCBcIlxcdTc2M0FcXHU3NjNDXFx1NzY0QVxcdTc2NDBcXHU3NjQxXFx1NzY0M1xcdTc2NDRcXHU3NjQ1XFx1NzY0OVxcdTc2NEJcXHU3NjU1XFx1NzY1OVxcdTc2NUZcXHU3NjY0XFx1NzY2NVxcdTc2NkRcXHU3NjZFXFx1NzY2RlxcdTc2NzFcXHU3Njc0XFx1NzY4MVxcdTc2ODVcXHU3NjhDXFx1NzY4RFxcdTc2OTVcXHU3NjlCXFx1NzY5Q1xcdTc2OURcXHU3NjlGXFx1NzZBMFxcdTc2QTJcIiwgNiwgXCJcXHU3NkFBXFx1NzZBRFxcdTc2QkRcXHU3NkMxXFx1NzZDNVxcdTc2QzlcXHU3NkNCXFx1NzZDQ1xcdTc2Q0VcXHU3NkQ0XFx1NzZEOVxcdTc2RTBcXHU3NkU2XFx1NzZFOFxcdTc2RUNcXHU3NkYwXFx1NzZGMVxcdTc2RjZcXHU3NkY5XFx1NzZGQ1xcdTc3MDBcXHU3NzA2XFx1NzcwQVxcdTc3MEVcXHU3NzEyXFx1NzcxNFxcdTc3MTVcXHU3NzE3XFx1NzcxOVxcdTc3MUFcXHU3NzFDXFx1NzcyMlxcdTc3MjhcXHU3NzJEXFx1NzcyRVxcdTc3MkZcXHU3NzM0XFx1NzczNVxcdTc3MzZcXHU3NzM5XFx1NzczRFxcdTc3M0VcXHU3NzQyXFx1Nzc0NVxcdTc3NDZcXHU3NzRBXFx1Nzc0RFxcdTc3NEVcXHU3NzRGXFx1Nzc1MlxcdTc3NTZcXHU3NzU3XFx1Nzc1Q1xcdTc3NUVcXHU3NzVGXFx1Nzc2MFxcdTc3NjJcIl0sXG4gICAgICBbXCI4ZmNmYTFcIiwgXCJcXHU3NzY0XFx1Nzc2N1xcdTc3NkFcXHU3NzZDXFx1Nzc3MFxcdTc3NzJcXHU3NzczXFx1Nzc3NFxcdTc3N0FcXHU3NzdEXFx1Nzc4MFxcdTc3ODRcXHU3NzhDXFx1Nzc4RFxcdTc3OTRcXHU3Nzk1XFx1Nzc5NlxcdTc3OUFcXHU3NzlGXFx1NzdBMlxcdTc3QTdcXHU3N0FBXFx1NzdBRVxcdTc3QUZcXHU3N0IxXFx1NzdCNVxcdTc3QkVcXHU3N0MzXFx1NzdDOVxcdTc3RDFcXHU3N0QyXFx1NzdENVxcdTc3RDlcXHU3N0RFXFx1NzdERlxcdTc3RTBcXHU3N0U0XFx1NzdFNlxcdTc3RUFcXHU3N0VDXFx1NzdGMFxcdTc3RjFcXHU3N0Y0XFx1NzdGOFxcdTc3RkJcXHU3ODA1XFx1NzgwNlxcdTc4MDlcXHU3ODBEXFx1NzgwRVxcdTc4MTFcXHU3ODFEXFx1NzgyMVxcdTc4MjJcXHU3ODIzXFx1NzgyRFxcdTc4MkVcXHU3ODMwXFx1NzgzNVxcdTc4MzdcXHU3ODQzXFx1Nzg0NFxcdTc4NDdcXHU3ODQ4XFx1Nzg0Q1xcdTc4NEVcXHU3ODUyXFx1Nzg1Q1xcdTc4NUVcXHU3ODYwXFx1Nzg2MVxcdTc4NjNcXHU3ODY0XFx1Nzg2OFxcdTc4NkFcXHU3ODZFXFx1Nzg3QVxcdTc4N0VcXHU3ODhBXFx1Nzg4RlxcdTc4OTRcXHU3ODk4XFx1NzhBMVxcdTc4OURcXHU3ODlFXFx1Nzg5RlxcdTc4QTRcXHU3OEE4XFx1NzhBQ1xcdTc4QURcXHU3OEIwXFx1NzhCMVxcdTc4QjJcXHU3OEIzXCJdLFxuICAgICAgW1wiOGZkMGExXCIsIFwiXFx1NzhCQlxcdTc4QkRcXHU3OEJGXFx1NzhDN1xcdTc4QzhcXHU3OEM5XFx1NzhDQ1xcdTc4Q0VcXHU3OEQyXFx1NzhEM1xcdTc4RDVcXHU3OEQ2XFx1NzhFNFxcdTc4REJcXHU3OERGXFx1NzhFMFxcdTc4RTFcXHU3OEU2XFx1NzhFQVxcdTc4RjJcXHU3OEYzXFx1NzkwMFxcdTc4RjZcXHU3OEY3XFx1NzhGQVxcdTc4RkJcXHU3OEZGXFx1NzkwNlxcdTc5MENcXHU3OTEwXFx1NzkxQVxcdTc5MUNcXHU3OTFFXFx1NzkxRlxcdTc5MjBcXHU3OTI1XFx1NzkyN1xcdTc5MjlcXHU3OTJEXFx1NzkzMVxcdTc5MzRcXHU3OTM1XFx1NzkzQlxcdTc5M0RcXHU3OTNGXFx1Nzk0NFxcdTc5NDVcXHU3OTQ2XFx1Nzk0QVxcdTc5NEJcXHU3OTRGXFx1Nzk1MVxcdTc5NTRcXHU3OTU4XFx1Nzk1QlxcdTc5NUNcXHU3OTY3XFx1Nzk2OVxcdTc5NkJcXHU3OTcyXFx1Nzk3OVxcdTc5N0JcXHU3OTdDXFx1Nzk3RVxcdTc5OEJcXHU3OThDXFx1Nzk5MVxcdTc5OTNcXHU3OTk0XFx1Nzk5NVxcdTc5OTZcXHU3OTk4XFx1Nzk5QlxcdTc5OUNcXHU3OUExXFx1NzlBOFxcdTc5QTlcXHU3OUFCXFx1NzlBRlxcdTc5QjFcXHU3OUI0XFx1NzlCOFxcdTc5QkJcXHU3OUMyXFx1NzlDNFxcdTc5QzdcXHU3OUM4XFx1NzlDQVxcdTc5Q0ZcXHU3OUQ0XFx1NzlENlxcdTc5REFcXHU3OUREXFx1NzlERVwiXSxcbiAgICAgIFtcIjhmZDFhMVwiLCBcIlxcdTc5RTBcXHU3OUUyXFx1NzlFNVxcdTc5RUFcXHU3OUVCXFx1NzlFRFxcdTc5RjFcXHU3OUY4XFx1NzlGQ1xcdTdBMDJcXHU3QTAzXFx1N0EwN1xcdTdBMDlcXHU3QTBBXFx1N0EwQ1xcdTdBMTFcXHU3QTE1XFx1N0ExQlxcdTdBMUVcXHU3QTIxXFx1N0EyN1xcdTdBMkJcXHU3QTJEXFx1N0EyRlxcdTdBMzBcXHU3QTM0XFx1N0EzNVxcdTdBMzhcXHU3QTM5XFx1N0EzQVxcdTdBNDRcXHU3QTQ1XFx1N0E0N1xcdTdBNDhcXHU3QTRDXFx1N0E1NVxcdTdBNTZcXHU3QTU5XFx1N0E1Q1xcdTdBNURcXHU3QTVGXFx1N0E2MFxcdTdBNjVcXHU3QTY3XFx1N0E2QVxcdTdBNkRcXHU3QTc1XFx1N0E3OFxcdTdBN0VcXHU3QTgwXFx1N0E4MlxcdTdBODVcXHU3QTg2XFx1N0E4QVxcdTdBOEJcXHU3QTkwXFx1N0E5MVxcdTdBOTRcXHU3QTlFXFx1N0FBMFxcdTdBQTNcXHU3QUFDXFx1N0FCM1xcdTdBQjVcXHU3QUI5XFx1N0FCQlxcdTdBQkNcXHU3QUM2XFx1N0FDOVxcdTdBQ0NcXHU3QUNFXFx1N0FEMVxcdTdBREJcXHU3QUU4XFx1N0FFOVxcdTdBRUJcXHU3QUVDXFx1N0FGMVxcdTdBRjRcXHU3QUZCXFx1N0FGRFxcdTdBRkVcXHU3QjA3XFx1N0IxNFxcdTdCMUZcXHU3QjIzXFx1N0IyN1xcdTdCMjlcXHU3QjJBXFx1N0IyQlxcdTdCMkRcXHU3QjJFXFx1N0IyRlxcdTdCMzBcIl0sXG4gICAgICBbXCI4ZmQyYTFcIiwgXCJcXHU3QjMxXFx1N0IzNFxcdTdCM0RcXHU3QjNGXFx1N0I0MFxcdTdCNDFcXHU3QjQ3XFx1N0I0RVxcdTdCNTVcXHU3QjYwXFx1N0I2NFxcdTdCNjZcXHU3QjY5XFx1N0I2QVxcdTdCNkRcXHU3QjZGXFx1N0I3MlxcdTdCNzNcXHU3Qjc3XFx1N0I4NFxcdTdCODlcXHU3QjhFXFx1N0I5MFxcdTdCOTFcXHU3Qjk2XFx1N0I5QlxcdTdCOUVcXHU3QkEwXFx1N0JBNVxcdTdCQUNcXHU3QkFGXFx1N0JCMFxcdTdCQjJcXHU3QkI1XFx1N0JCNlxcdTdCQkFcXHU3QkJCXFx1N0JCQ1xcdTdCQkRcXHU3QkMyXFx1N0JDNVxcdTdCQzhcXHU3QkNBXFx1N0JENFxcdTdCRDZcXHU3QkQ3XFx1N0JEOVxcdTdCREFcXHU3QkRCXFx1N0JFOFxcdTdCRUFcXHU3QkYyXFx1N0JGNFxcdTdCRjVcXHU3QkY4XFx1N0JGOVxcdTdCRkFcXHU3QkZDXFx1N0JGRVxcdTdDMDFcXHU3QzAyXFx1N0MwM1xcdTdDMDRcXHU3QzA2XFx1N0MwOVxcdTdDMEJcXHU3QzBDXFx1N0MwRVxcdTdDMEZcXHU3QzE5XFx1N0MxQlxcdTdDMjBcXHU3QzI1XFx1N0MyNlxcdTdDMjhcXHU3QzJDXFx1N0MzMVxcdTdDMzNcXHU3QzM0XFx1N0MzNlxcdTdDMzlcXHU3QzNBXFx1N0M0NlxcdTdDNEFcXHU3QzU1XFx1N0M1MVxcdTdDNTJcXHU3QzUzXFx1N0M1OVwiLCA1XSxcbiAgICAgIFtcIjhmZDNhMVwiLCBcIlxcdTdDNjFcXHU3QzYzXFx1N0M2N1xcdTdDNjlcXHU3QzZEXFx1N0M2RVxcdTdDNzBcXHU3QzcyXFx1N0M3OVxcdTdDN0NcXHU3QzdEXFx1N0M4NlxcdTdDODdcXHU3QzhGXFx1N0M5NFxcdTdDOUVcXHU3Q0EwXFx1N0NBNlxcdTdDQjBcXHU3Q0I2XFx1N0NCN1xcdTdDQkFcXHU3Q0JCXFx1N0NCQ1xcdTdDQkZcXHU3Q0M0XFx1N0NDN1xcdTdDQzhcXHU3Q0M5XFx1N0NDRFxcdTdDQ0ZcXHU3Q0QzXFx1N0NENFxcdTdDRDVcXHU3Q0Q3XFx1N0NEOVxcdTdDREFcXHU3Q0REXFx1N0NFNlxcdTdDRTlcXHU3Q0VCXFx1N0NGNVxcdTdEMDNcXHU3RDA3XFx1N0QwOFxcdTdEMDlcXHU3RDBGXFx1N0QxMVxcdTdEMTJcXHU3RDEzXFx1N0QxNlxcdTdEMURcXHU3RDFFXFx1N0QyM1xcdTdEMjZcXHU3RDJBXFx1N0QyRFxcdTdEMzFcXHU3RDNDXFx1N0QzRFxcdTdEM0VcXHU3RDQwXFx1N0Q0MVxcdTdENDdcXHU3RDQ4XFx1N0Q0RFxcdTdENTFcXHU3RDUzXFx1N0Q1N1xcdTdENTlcXHU3RDVBXFx1N0Q1Q1xcdTdENURcXHU3RDY1XFx1N0Q2N1xcdTdENkFcXHU3RDcwXFx1N0Q3OFxcdTdEN0FcXHU3RDdCXFx1N0Q3RlxcdTdEODFcXHU3RDgyXFx1N0Q4M1xcdTdEODVcXHU3RDg2XFx1N0Q4OFxcdTdEOEJcXHU3RDhDXFx1N0Q4RFxcdTdEOTFcXHU3RDk2XFx1N0Q5N1xcdTdEOURcIl0sXG4gICAgICBbXCI4ZmQ0YTFcIiwgXCJcXHU3RDlFXFx1N0RBNlxcdTdEQTdcXHU3REFBXFx1N0RCM1xcdTdEQjZcXHU3REI3XFx1N0RCOVxcdTdEQzJcIiwgNCwgXCJcXHU3RENDXFx1N0RDRFxcdTdEQ0VcXHU3REQ3XFx1N0REOVxcdTdFMDBcXHU3REUyXFx1N0RFNVxcdTdERTZcXHU3REVBXFx1N0RFQlxcdTdERURcXHU3REYxXFx1N0RGNVxcdTdERjZcXHU3REY5XFx1N0RGQVxcdTdFMDhcXHU3RTEwXFx1N0UxMVxcdTdFMTVcXHU3RTE3XFx1N0UxQ1xcdTdFMURcXHU3RTIwXFx1N0UyN1xcdTdFMjhcXHU3RTJDXFx1N0UyRFxcdTdFMkZcXHU3RTMzXFx1N0UzNlxcdTdFM0ZcXHU3RTQ0XFx1N0U0NVxcdTdFNDdcXHU3RTRFXFx1N0U1MFxcdTdFNTJcXHU3RTU4XFx1N0U1RlxcdTdFNjFcXHU3RTYyXFx1N0U2NVxcdTdFNkJcXHU3RTZFXFx1N0U2RlxcdTdFNzNcXHU3RTc4XFx1N0U3RVxcdTdFODFcXHU3RTg2XFx1N0U4N1xcdTdFOEFcXHU3RThEXFx1N0U5MVxcdTdFOTVcXHU3RTk4XFx1N0U5QVxcdTdFOURcXHU3RTlFXFx1N0YzQ1xcdTdGM0JcXHU3RjNEXFx1N0YzRVxcdTdGM0ZcXHU3RjQzXFx1N0Y0NFxcdTdGNDdcXHU3RjRGXFx1N0Y1MlxcdTdGNTNcXHU3RjVCXFx1N0Y1Q1xcdTdGNURcXHU3RjYxXFx1N0Y2M1xcdTdGNjRcXHU3RjY1XFx1N0Y2NlxcdTdGNkRcIl0sXG4gICAgICBbXCI4ZmQ1YTFcIiwgXCJcXHU3RjcxXFx1N0Y3RFxcdTdGN0VcXHU3RjdGXFx1N0Y4MFxcdTdGOEJcXHU3RjhEXFx1N0Y4RlxcdTdGOTBcXHU3RjkxXFx1N0Y5NlxcdTdGOTdcXHU3RjlDXFx1N0ZBMVxcdTdGQTJcXHU3RkE2XFx1N0ZBQVxcdTdGQURcXHU3RkI0XFx1N0ZCQ1xcdTdGQkZcXHU3RkMwXFx1N0ZDM1xcdTdGQzhcXHU3RkNFXFx1N0ZDRlxcdTdGREJcXHU3RkRGXFx1N0ZFM1xcdTdGRTVcXHU3RkU4XFx1N0ZFQ1xcdTdGRUVcXHU3RkVGXFx1N0ZGMlxcdTdGRkFcXHU3RkZEXFx1N0ZGRVxcdTdGRkZcXHU4MDA3XFx1ODAwOFxcdTgwMEFcXHU4MDBEXFx1ODAwRVxcdTgwMEZcXHU4MDExXFx1ODAxM1xcdTgwMTRcXHU4MDE2XFx1ODAxRFxcdTgwMUVcXHU4MDFGXFx1ODAyMFxcdTgwMjRcXHU4MDI2XFx1ODAyQ1xcdTgwMkVcXHU4MDMwXFx1ODAzNFxcdTgwMzVcXHU4MDM3XFx1ODAzOVxcdTgwM0FcXHU4MDNDXFx1ODAzRVxcdTgwNDBcXHU4MDQ0XFx1ODA2MFxcdTgwNjRcXHU4MDY2XFx1ODA2RFxcdTgwNzFcXHU4MDc1XFx1ODA4MVxcdTgwODhcXHU4MDhFXFx1ODA5Q1xcdTgwOUVcXHU4MEE2XFx1ODBBN1xcdTgwQUJcXHU4MEI4XFx1ODBCOVxcdTgwQzhcXHU4MENEXFx1ODBDRlxcdTgwRDJcXHU4MEQ0XFx1ODBENVxcdTgwRDdcXHU4MEQ4XFx1ODBFMFxcdTgwRURcXHU4MEVFXCJdLFxuICAgICAgW1wiOGZkNmExXCIsIFwiXFx1ODBGMFxcdTgwRjJcXHU4MEYzXFx1ODBGNlxcdTgwRjlcXHU4MEZBXFx1ODBGRVxcdTgxMDNcXHU4MTBCXFx1ODExNlxcdTgxMTdcXHU4MTE4XFx1ODExQ1xcdTgxMUVcXHU4MTIwXFx1ODEyNFxcdTgxMjdcXHU4MTJDXFx1ODEzMFxcdTgxMzVcXHU4MTNBXFx1ODEzQ1xcdTgxNDVcXHU4MTQ3XFx1ODE0QVxcdTgxNENcXHU4MTUyXFx1ODE1N1xcdTgxNjBcXHU4MTYxXFx1ODE2N1xcdTgxNjhcXHU4MTY5XFx1ODE2RFxcdTgxNkZcXHU4MTc3XFx1ODE4MVxcdTgxOTBcXHU4MTg0XFx1ODE4NVxcdTgxODZcXHU4MThCXFx1ODE4RVxcdTgxOTZcXHU4MTk4XFx1ODE5QlxcdTgxOUVcXHU4MUEyXFx1ODFBRVxcdTgxQjJcXHU4MUI0XFx1ODFCQlxcdTgxQ0JcXHU4MUMzXFx1ODFDNVxcdTgxQ0FcXHU4MUNFXFx1ODFDRlxcdTgxRDVcXHU4MUQ3XFx1ODFEQlxcdTgxRERcXHU4MURFXFx1ODFFMVxcdTgxRTRcXHU4MUVCXFx1ODFFQ1xcdTgxRjBcXHU4MUYxXFx1ODFGMlxcdTgxRjVcXHU4MUY2XFx1ODFGOFxcdTgxRjlcXHU4MUZEXFx1ODFGRlxcdTgyMDBcXHU4MjAzXFx1ODIwRlxcdTgyMTNcXHU4MjE0XFx1ODIxOVxcdTgyMUFcXHU4MjFEXFx1ODIyMVxcdTgyMjJcXHU4MjI4XFx1ODIzMlxcdTgyMzRcXHU4MjNBXFx1ODI0M1xcdTgyNDRcXHU4MjQ1XFx1ODI0NlwiXSxcbiAgICAgIFtcIjhmZDdhMVwiLCBcIlxcdTgyNEJcXHU4MjRFXFx1ODI0RlxcdTgyNTFcXHU4MjU2XFx1ODI1Q1xcdTgyNjBcXHU4MjYzXFx1ODI2N1xcdTgyNkRcXHU4Mjc0XFx1ODI3QlxcdTgyN0RcXHU4MjdGXFx1ODI4MFxcdTgyODFcXHU4MjgzXFx1ODI4NFxcdTgyODdcXHU4Mjg5XFx1ODI4QVxcdTgyOEVcXHU4MjkxXFx1ODI5NFxcdTgyOTZcXHU4Mjk4XFx1ODI5QVxcdTgyOUJcXHU4MkEwXFx1ODJBMVxcdTgyQTNcXHU4MkE0XFx1ODJBN1xcdTgyQThcXHU4MkE5XFx1ODJBQVxcdTgyQUVcXHU4MkIwXFx1ODJCMlxcdTgyQjRcXHU4MkI3XFx1ODJCQVxcdTgyQkNcXHU4MkJFXFx1ODJCRlxcdTgyQzZcXHU4MkQwXFx1ODJENVxcdTgyREFcXHU4MkUwXFx1ODJFMlxcdTgyRTRcXHU4MkU4XFx1ODJFQVxcdTgyRURcXHU4MkVGXFx1ODJGNlxcdTgyRjdcXHU4MkZEXFx1ODJGRVxcdTgzMDBcXHU4MzAxXFx1ODMwN1xcdTgzMDhcXHU4MzBBXFx1ODMwQlxcdTgzNTRcXHU4MzFCXFx1ODMxRFxcdTgzMUVcXHU4MzFGXFx1ODMyMVxcdTgzMjJcXHU4MzJDXFx1ODMyRFxcdTgzMkVcXHU4MzMwXFx1ODMzM1xcdTgzMzdcXHU4MzNBXFx1ODMzQ1xcdTgzM0RcXHU4MzQyXFx1ODM0M1xcdTgzNDRcXHU4MzQ3XFx1ODM0RFxcdTgzNEVcXHU4MzUxXFx1ODM1NVxcdTgzNTZcXHU4MzU3XFx1ODM3MFxcdTgzNzhcIl0sXG4gICAgICBbXCI4ZmQ4YTFcIiwgXCJcXHU4MzdEXFx1ODM3RlxcdTgzODBcXHU4MzgyXFx1ODM4NFxcdTgzODZcXHU4MzhEXFx1ODM5MlxcdTgzOTRcXHU4Mzk1XFx1ODM5OFxcdTgzOTlcXHU4MzlCXFx1ODM5Q1xcdTgzOURcXHU4M0E2XFx1ODNBN1xcdTgzQTlcXHU4M0FDXFx1ODNCRVxcdTgzQkZcXHU4M0MwXFx1ODNDN1xcdTgzQzlcXHU4M0NGXFx1ODNEMFxcdTgzRDFcXHU4M0Q0XFx1ODNERFxcdTgzNTNcXHU4M0U4XFx1ODNFQVxcdTgzRjZcXHU4M0Y4XFx1ODNGOVxcdTgzRkNcXHU4NDAxXFx1ODQwNlxcdTg0MEFcXHU4NDBGXFx1ODQxMVxcdTg0MTVcXHU4NDE5XFx1ODNBRFxcdTg0MkZcXHU4NDM5XFx1ODQ0NVxcdTg0NDdcXHU4NDQ4XFx1ODQ0QVxcdTg0NERcXHU4NDRGXFx1ODQ1MVxcdTg0NTJcXHU4NDU2XFx1ODQ1OFxcdTg0NTlcXHU4NDVBXFx1ODQ1Q1xcdTg0NjBcXHU4NDY0XFx1ODQ2NVxcdTg0NjdcXHU4NDZBXFx1ODQ3MFxcdTg0NzNcXHU4NDc0XFx1ODQ3NlxcdTg0NzhcXHU4NDdDXFx1ODQ3RFxcdTg0ODFcXHU4NDg1XFx1ODQ5MlxcdTg0OTNcXHU4NDk1XFx1ODQ5RVxcdTg0QTZcXHU4NEE4XFx1ODRBOVxcdTg0QUFcXHU4NEFGXFx1ODRCMVxcdTg0QjRcXHU4NEJBXFx1ODRCRFxcdTg0QkVcXHU4NEMwXFx1ODRDMlxcdTg0QzdcXHU4NEM4XFx1ODRDQ1xcdTg0Q0ZcXHU4NEQzXCJdLFxuICAgICAgW1wiOGZkOWExXCIsIFwiXFx1ODREQ1xcdTg0RTdcXHU4NEVBXFx1ODRFRlxcdTg0RjBcXHU4NEYxXFx1ODRGMlxcdTg0RjdcXHU4NTMyXFx1ODRGQVxcdTg0RkJcXHU4NEZEXFx1ODUwMlxcdTg1MDNcXHU4NTA3XFx1ODUwQ1xcdTg1MEVcXHU4NTEwXFx1ODUxQ1xcdTg1MUVcXHU4NTIyXFx1ODUyM1xcdTg1MjRcXHU4NTI1XFx1ODUyN1xcdTg1MkFcXHU4NTJCXFx1ODUyRlxcdTg1MzNcXHU4NTM0XFx1ODUzNlxcdTg1M0ZcXHU4NTQ2XFx1ODU0RlwiLCA0LCBcIlxcdTg1NTZcXHU4NTU5XFx1ODU1Q1wiLCA2LCBcIlxcdTg1NjRcXHU4NTZCXFx1ODU2RlxcdTg1NzlcXHU4NTdBXFx1ODU3QlxcdTg1N0RcXHU4NTdGXFx1ODU4MVxcdTg1ODVcXHU4NTg2XFx1ODU4OVxcdTg1OEJcXHU4NThDXFx1ODU4RlxcdTg1OTNcXHU4NTk4XFx1ODU5RFxcdTg1OUZcXHU4NUEwXFx1ODVBMlxcdTg1QTVcXHU4NUE3XFx1ODVCNFxcdTg1QjZcXHU4NUI3XFx1ODVCOFxcdTg1QkNcXHU4NUJEXFx1ODVCRVxcdTg1QkZcXHU4NUMyXFx1ODVDN1xcdTg1Q0FcXHU4NUNCXFx1ODVDRVxcdTg1QURcXHU4NUQ4XFx1ODVEQVxcdTg1REZcXHU4NUUwXFx1ODVFNlxcdTg1RThcXHU4NUVEXFx1ODVGM1xcdTg1RjZcXHU4NUZDXCJdLFxuICAgICAgW1wiOGZkYWExXCIsIFwiXFx1ODVGRlxcdTg2MDBcXHU4NjA0XFx1ODYwNVxcdTg2MERcXHU4NjBFXFx1ODYxMFxcdTg2MTFcXHU4NjEyXFx1ODYxOFxcdTg2MTlcXHU4NjFCXFx1ODYxRVxcdTg2MjFcXHU4NjI3XFx1ODYyOVxcdTg2MzZcXHU4NjM4XFx1ODYzQVxcdTg2M0NcXHU4NjNEXFx1ODY0MFxcdTg2NDJcXHU4NjQ2XFx1ODY1MlxcdTg2NTNcXHU4NjU2XFx1ODY1N1xcdTg2NThcXHU4NjU5XFx1ODY1RFxcdTg2NjBcIiwgNCwgXCJcXHU4NjY5XFx1ODY2Q1xcdTg2NkZcXHU4Njc1XFx1ODY3NlxcdTg2NzdcXHU4NjdBXFx1ODY4RFxcdTg2OTFcXHU4Njk2XFx1ODY5OFxcdTg2OUFcXHU4NjlDXFx1ODZBMVxcdTg2QTZcXHU4NkE3XFx1ODZBOFxcdTg2QURcXHU4NkIxXFx1ODZCM1xcdTg2QjRcXHU4NkI1XFx1ODZCN1xcdTg2QjhcXHU4NkI5XFx1ODZCRlxcdTg2QzBcXHU4NkMxXFx1ODZDM1xcdTg2QzVcXHU4NkQxXFx1ODZEMlxcdTg2RDVcXHU4NkQ3XFx1ODZEQVxcdTg2RENcXHU4NkUwXFx1ODZFM1xcdTg2RTVcXHU4NkU3XFx1ODY4OFxcdTg2RkFcXHU4NkZDXFx1ODZGRFxcdTg3MDRcXHU4NzA1XFx1ODcwN1xcdTg3MEJcXHU4NzBFXFx1ODcwRlxcdTg3MTBcXHU4NzEzXFx1ODcxNFxcdTg3MTlcXHU4NzFFXFx1ODcxRlxcdTg3MjFcXHU4NzIzXCJdLFxuICAgICAgW1wiOGZkYmExXCIsIFwiXFx1ODcyOFxcdTg3MkVcXHU4NzJGXFx1ODczMVxcdTg3MzJcXHU4NzM5XFx1ODczQVxcdTg3M0NcXHU4NzNEXFx1ODczRVxcdTg3NDBcXHU4NzQzXFx1ODc0NVxcdTg3NERcXHU4NzU4XFx1ODc1RFxcdTg3NjFcXHU4NzY0XFx1ODc2NVxcdTg3NkZcXHU4NzcxXFx1ODc3MlxcdTg3N0JcXHU4NzgzXCIsIDYsIFwiXFx1ODc4QlxcdTg3OENcXHU4NzkwXFx1ODc5M1xcdTg3OTVcXHU4Nzk3XFx1ODc5OFxcdTg3OTlcXHU4NzlFXFx1ODdBMFxcdTg3QTNcXHU4N0E3XFx1ODdBQ1xcdTg3QURcXHU4N0FFXFx1ODdCMVxcdTg3QjVcXHU4N0JFXFx1ODdCRlxcdTg3QzFcXHU4N0M4XFx1ODdDOVxcdTg3Q0FcXHU4N0NFXFx1ODdENVxcdTg3RDZcXHU4N0Q5XFx1ODdEQVxcdTg3RENcXHU4N0RGXFx1ODdFMlxcdTg3RTNcXHU4N0U0XFx1ODdFQVxcdTg3RUJcXHU4N0VEXFx1ODdGMVxcdTg3RjNcXHU4N0Y4XFx1ODdGQVxcdTg3RkZcXHU4ODAxXFx1ODgwM1xcdTg4MDZcXHU4ODA5XFx1ODgwQVxcdTg4MEJcXHU4ODEwXFx1ODgxOVxcdTg4MTJcXHU4ODEzXFx1ODgxNFxcdTg4MThcXHU4ODFBXFx1ODgxQlxcdTg4MUNcXHU4ODFFXFx1ODgxRlxcdTg4MjhcXHU4ODJEXFx1ODgyRVxcdTg4MzBcXHU4ODMyXFx1ODgzNVwiXSxcbiAgICAgIFtcIjhmZGNhMVwiLCBcIlxcdTg4M0FcXHU4ODNDXFx1ODg0MVxcdTg4NDNcXHU4ODQ1XFx1ODg0OFxcdTg4NDlcXHU4ODRBXFx1ODg0QlxcdTg4NEVcXHU4ODUxXFx1ODg1NVxcdTg4NTZcXHU4ODU4XFx1ODg1QVxcdTg4NUNcXHU4ODVGXFx1ODg2MFxcdTg4NjRcXHU4ODY5XFx1ODg3MVxcdTg4NzlcXHU4ODdCXFx1ODg4MFxcdTg4OThcXHU4ODlBXFx1ODg5QlxcdTg4OUNcXHU4ODlGXFx1ODhBMFxcdTg4QThcXHU4OEFBXFx1ODhCQVxcdTg4QkRcXHU4OEJFXFx1ODhDMFxcdTg4Q0FcIiwgNCwgXCJcXHU4OEQxXFx1ODhEMlxcdTg4RDNcXHU4OERCXFx1ODhERVxcdTg4RTdcXHU4OEVGXFx1ODhGMFxcdTg4RjFcXHU4OEY1XFx1ODhGN1xcdTg5MDFcXHU4OTA2XFx1ODkwRFxcdTg5MEVcXHU4OTBGXFx1ODkxNVxcdTg5MTZcXHU4OTE4XFx1ODkxOVxcdTg5MUFcXHU4OTFDXFx1ODkyMFxcdTg5MjZcXHU4OTI3XFx1ODkyOFxcdTg5MzBcXHU4OTMxXFx1ODkzMlxcdTg5MzVcXHU4OTM5XFx1ODkzQVxcdTg5M0VcXHU4OTQwXFx1ODk0MlxcdTg5NDVcXHU4OTQ2XFx1ODk0OVxcdTg5NEZcXHU4OTUyXFx1ODk1N1xcdTg5NUFcXHU4OTVCXFx1ODk1Q1xcdTg5NjFcXHU4OTYyXFx1ODk2M1xcdTg5NkJcXHU4OTZFXFx1ODk3MFxcdTg5NzNcXHU4OTc1XFx1ODk3QVwiXSxcbiAgICAgIFtcIjhmZGRhMVwiLCBcIlxcdTg5N0JcXHU4OTdDXFx1ODk3RFxcdTg5ODlcXHU4OThEXFx1ODk5MFxcdTg5OTRcXHU4OTk1XFx1ODk5QlxcdTg5OUNcXHU4OTlGXFx1ODlBMFxcdTg5QTVcXHU4OUIwXFx1ODlCNFxcdTg5QjVcXHU4OUI2XFx1ODlCN1xcdTg5QkNcXHU4OUQ0XCIsIDQsIFwiXFx1ODlFNVxcdTg5RTlcXHU4OUVCXFx1ODlFRFxcdTg5RjFcXHU4OUYzXFx1ODlGNlxcdTg5RjlcXHU4OUZEXFx1ODlGRlxcdThBMDRcXHU4QTA1XFx1OEEwN1xcdThBMEZcXHU4QTExXFx1OEExMlxcdThBMTRcXHU4QTE1XFx1OEExRVxcdThBMjBcXHU4QTIyXFx1OEEyNFxcdThBMjZcXHU4QTJCXFx1OEEyQ1xcdThBMkZcXHU4QTM1XFx1OEEzN1xcdThBM0RcXHU4QTNFXFx1OEE0MFxcdThBNDNcXHU4QTQ1XFx1OEE0N1xcdThBNDlcXHU4QTREXFx1OEE0RVxcdThBNTNcXHU4QTU2XFx1OEE1N1xcdThBNThcXHU4QTVDXFx1OEE1RFxcdThBNjFcXHU4QTY1XFx1OEE2N1xcdThBNzVcXHU4QTc2XFx1OEE3N1xcdThBNzlcXHU4QTdBXFx1OEE3QlxcdThBN0VcXHU4QTdGXFx1OEE4MFxcdThBODNcXHU4QTg2XFx1OEE4QlxcdThBOEZcXHU4QTkwXFx1OEE5MlxcdThBOTZcXHU4QTk3XFx1OEE5OVxcdThBOUZcXHU4QUE3XFx1OEFBOVxcdThBQUVcXHU4QUFGXFx1OEFCM1wiXSxcbiAgICAgIFtcIjhmZGVhMVwiLCBcIlxcdThBQjZcXHU4QUI3XFx1OEFCQlxcdThBQkVcXHU4QUMzXFx1OEFDNlxcdThBQzhcXHU4QUM5XFx1OEFDQVxcdThBRDFcXHU4QUQzXFx1OEFENFxcdThBRDVcXHU4QUQ3XFx1OEFERFxcdThBREZcXHU4QUVDXFx1OEFGMFxcdThBRjRcXHU4QUY1XFx1OEFGNlxcdThBRkNcXHU4QUZGXFx1OEIwNVxcdThCMDZcXHU4QjBCXFx1OEIxMVxcdThCMUNcXHU4QjFFXFx1OEIxRlxcdThCMEFcXHU4QjJEXFx1OEIzMFxcdThCMzdcXHU4QjNDXFx1OEI0MlwiLCA0LCBcIlxcdThCNDhcXHU4QjUyXFx1OEI1M1xcdThCNTRcXHU4QjU5XFx1OEI0RFxcdThCNUVcXHU4QjYzXFx1OEI2RFxcdThCNzZcXHU4Qjc4XFx1OEI3OVxcdThCN0NcXHU4QjdFXFx1OEI4MVxcdThCODRcXHU4Qjg1XFx1OEI4QlxcdThCOERcXHU4QjhGXFx1OEI5NFxcdThCOTVcXHU4QjlDXFx1OEI5RVxcdThCOUZcXHU4QzM4XFx1OEMzOVxcdThDM0RcXHU4QzNFXFx1OEM0NVxcdThDNDdcXHU4QzQ5XFx1OEM0QlxcdThDNEZcXHU4QzUxXFx1OEM1M1xcdThDNTRcXHU4QzU3XFx1OEM1OFxcdThDNUJcXHU4QzVEXFx1OEM1OVxcdThDNjNcXHU4QzY0XFx1OEM2NlxcdThDNjhcXHU4QzY5XFx1OEM2RFxcdThDNzNcXHU4Qzc1XFx1OEM3NlxcdThDN0JcXHU4QzdFXFx1OEM4NlwiXSxcbiAgICAgIFtcIjhmZGZhMVwiLCBcIlxcdThDODdcXHU4QzhCXFx1OEM5MFxcdThDOTJcXHU4QzkzXFx1OEM5OVxcdThDOUJcXHU4QzlDXFx1OENBNFxcdThDQjlcXHU4Q0JBXFx1OENDNVxcdThDQzZcXHU4Q0M5XFx1OENDQlxcdThDQ0ZcXHU4Q0Q2XFx1OENENVxcdThDRDlcXHU4Q0REXFx1OENFMVxcdThDRThcXHU4Q0VDXFx1OENFRlxcdThDRjBcXHU4Q0YyXFx1OENGNVxcdThDRjdcXHU4Q0Y4XFx1OENGRVxcdThDRkZcXHU4RDAxXFx1OEQwM1xcdThEMDlcXHU4RDEyXFx1OEQxN1xcdThEMUJcXHU4RDY1XFx1OEQ2OVxcdThENkNcXHU4RDZFXFx1OEQ3RlxcdThEODJcXHU4RDg0XFx1OEQ4OFxcdThEOERcXHU4RDkwXFx1OEQ5MVxcdThEOTVcXHU4RDlFXFx1OEQ5RlxcdThEQTBcXHU4REE2XFx1OERBQlxcdThEQUNcXHU4REFGXFx1OERCMlxcdThEQjVcXHU4REI3XFx1OERCOVxcdThEQkJcXHU4REMwXFx1OERDNVxcdThEQzZcXHU4REM3XFx1OERDOFxcdThEQ0FcXHU4RENFXFx1OEREMVxcdThERDRcXHU4REQ1XFx1OEREN1xcdThERDlcXHU4REU0XFx1OERFNVxcdThERTdcXHU4REVDXFx1OERGMFxcdThEQkNcXHU4REYxXFx1OERGMlxcdThERjRcXHU4REZEXFx1OEUwMVxcdThFMDRcXHU4RTA1XFx1OEUwNlxcdThFMEJcXHU4RTExXFx1OEUxNFxcdThFMTZcXHU4RTIwXFx1OEUyMVxcdThFMjJcIl0sXG4gICAgICBbXCI4ZmUwYTFcIiwgXCJcXHU4RTIzXFx1OEUyNlxcdThFMjdcXHU4RTMxXFx1OEUzM1xcdThFMzZcXHU4RTM3XFx1OEUzOFxcdThFMzlcXHU4RTNEXFx1OEU0MFxcdThFNDFcXHU4RTRCXFx1OEU0RFxcdThFNEVcXHU4RTRGXFx1OEU1NFxcdThFNUJcXHU4RTVDXFx1OEU1RFxcdThFNUVcXHU4RTYxXFx1OEU2MlxcdThFNjlcXHU4RTZDXFx1OEU2RFxcdThFNkZcXHU4RTcwXFx1OEU3MVxcdThFNzlcXHU4RTdBXFx1OEU3QlxcdThFODJcXHU4RTgzXFx1OEU4OVxcdThFOTBcXHU4RTkyXFx1OEU5NVxcdThFOUFcXHU4RTlCXFx1OEU5RFxcdThFOUVcXHU4RUEyXFx1OEVBN1xcdThFQTlcXHU4RUFEXFx1OEVBRVxcdThFQjNcXHU4RUI1XFx1OEVCQVxcdThFQkJcXHU4RUMwXFx1OEVDMVxcdThFQzNcXHU4RUM0XFx1OEVDN1xcdThFQ0ZcXHU4RUQxXFx1OEVENFxcdThFRENcXHU4RUU4XFx1OEVFRVxcdThFRjBcXHU4RUYxXFx1OEVGN1xcdThFRjlcXHU4RUZBXFx1OEVFRFxcdThGMDBcXHU4RjAyXFx1OEYwN1xcdThGMDhcXHU4RjBGXFx1OEYxMFxcdThGMTZcXHU4RjE3XFx1OEYxOFxcdThGMUVcXHU4RjIwXFx1OEYyMVxcdThGMjNcXHU4RjI1XFx1OEYyN1xcdThGMjhcXHU4RjJDXFx1OEYyRFxcdThGMkVcXHU4RjM0XFx1OEYzNVxcdThGMzZcXHU4RjM3XFx1OEYzQVxcdThGNDBcXHU4RjQxXCJdLFxuICAgICAgW1wiOGZlMWExXCIsIFwiXFx1OEY0M1xcdThGNDdcXHU4RjRGXFx1OEY1MVwiLCA0LCBcIlxcdThGNThcXHU4RjVEXFx1OEY1RVxcdThGNjVcXHU4RjlEXFx1OEZBMFxcdThGQTFcXHU4RkE0XFx1OEZBNVxcdThGQTZcXHU4RkI1XFx1OEZCNlxcdThGQjhcXHU4RkJFXFx1OEZDMFxcdThGQzFcXHU4RkM2XFx1OEZDQVxcdThGQ0JcXHU4RkNEXFx1OEZEMFxcdThGRDJcXHU4RkQzXFx1OEZENVxcdThGRTBcXHU4RkUzXFx1OEZFNFxcdThGRThcXHU4RkVFXFx1OEZGMVxcdThGRjVcXHU4RkY2XFx1OEZGQlxcdThGRkVcXHU5MDAyXFx1OTAwNFxcdTkwMDhcXHU5MDBDXFx1OTAxOFxcdTkwMUJcXHU5MDI4XFx1OTAyOVxcdTkwMkZcXHU5MDJBXFx1OTAyQ1xcdTkwMkRcXHU5MDMzXFx1OTAzNFxcdTkwMzdcXHU5MDNGXFx1OTA0M1xcdTkwNDRcXHU5MDRDXFx1OTA1QlxcdTkwNURcXHU5MDYyXFx1OTA2NlxcdTkwNjdcXHU5MDZDXFx1OTA3MFxcdTkwNzRcXHU5MDc5XFx1OTA4NVxcdTkwODhcXHU5MDhCXFx1OTA4Q1xcdTkwOEVcXHU5MDkwXFx1OTA5NVxcdTkwOTdcXHU5MDk4XFx1OTA5OVxcdTkwOUJcXHU5MEEwXFx1OTBBMVxcdTkwQTJcXHU5MEE1XFx1OTBCMFxcdTkwQjJcXHU5MEIzXFx1OTBCNFxcdTkwQjZcXHU5MEJEXFx1OTBDQ1xcdTkwQkVcXHU5MEMzXCJdLFxuICAgICAgW1wiOGZlMmExXCIsIFwiXFx1OTBDNFxcdTkwQzVcXHU5MEM3XFx1OTBDOFxcdTkwRDVcXHU5MEQ3XFx1OTBEOFxcdTkwRDlcXHU5MERDXFx1OTBERFxcdTkwREZcXHU5MEU1XFx1OTBEMlxcdTkwRjZcXHU5MEVCXFx1OTBFRlxcdTkwRjBcXHU5MEY0XFx1OTBGRVxcdTkwRkZcXHU5MTAwXFx1OTEwNFxcdTkxMDVcXHU5MTA2XFx1OTEwOFxcdTkxMERcXHU5MTEwXFx1OTExNFxcdTkxMTZcXHU5MTE3XFx1OTExOFxcdTkxMUFcXHU5MTFDXFx1OTExRVxcdTkxMjBcXHU5MTI1XFx1OTEyMlxcdTkxMjNcXHU5MTI3XFx1OTEyOVxcdTkxMkVcXHU5MTJGXFx1OTEzMVxcdTkxMzRcXHU5MTM2XFx1OTEzN1xcdTkxMzlcXHU5MTNBXFx1OTEzQ1xcdTkxM0RcXHU5MTQzXFx1OTE0N1xcdTkxNDhcXHU5MTRGXFx1OTE1M1xcdTkxNTdcXHU5MTU5XFx1OTE1QVxcdTkxNUJcXHU5MTYxXFx1OTE2NFxcdTkxNjdcXHU5MTZEXFx1OTE3NFxcdTkxNzlcXHU5MTdBXFx1OTE3QlxcdTkxODFcXHU5MTgzXFx1OTE4NVxcdTkxODZcXHU5MThBXFx1OTE4RVxcdTkxOTFcXHU5MTkzXFx1OTE5NFxcdTkxOTVcXHU5MTk4XFx1OTE5RVxcdTkxQTFcXHU5MUE2XFx1OTFBOFxcdTkxQUNcXHU5MUFEXFx1OTFBRVxcdTkxQjBcXHU5MUIxXFx1OTFCMlxcdTkxQjNcXHU5MUI2XFx1OTFCQlxcdTkxQkNcXHU5MUJEXFx1OTFCRlwiXSxcbiAgICAgIFtcIjhmZTNhMVwiLCBcIlxcdTkxQzJcXHU5MUMzXFx1OTFDNVxcdTkxRDNcXHU5MUQ0XFx1OTFEN1xcdTkxRDlcXHU5MURBXFx1OTFERVxcdTkxRTRcXHU5MUU1XFx1OTFFOVxcdTkxRUFcXHU5MUVDXCIsIDUsIFwiXFx1OTFGN1xcdTkxRjlcXHU5MUZCXFx1OTFGRFxcdTkyMDBcXHU5MjAxXFx1OTIwNFxcdTkyMDVcXHU5MjA2XFx1OTIwN1xcdTkyMDlcXHU5MjBBXFx1OTIwQ1xcdTkyMTBcXHU5MjEyXFx1OTIxM1xcdTkyMTZcXHU5MjE4XFx1OTIxQ1xcdTkyMURcXHU5MjIzXFx1OTIyNFxcdTkyMjVcXHU5MjI2XFx1OTIyOFxcdTkyMkVcXHU5MjJGXFx1OTIzMFxcdTkyMzNcXHU5MjM1XFx1OTIzNlxcdTkyMzhcXHU5MjM5XFx1OTIzQVxcdTkyM0NcXHU5MjNFXFx1OTI0MFxcdTkyNDJcXHU5MjQzXFx1OTI0NlxcdTkyNDdcXHU5MjRBXFx1OTI0RFxcdTkyNEVcXHU5MjRGXFx1OTI1MVxcdTkyNThcXHU5MjU5XFx1OTI1Q1xcdTkyNURcXHU5MjYwXFx1OTI2MVxcdTkyNjVcXHU5MjY3XFx1OTI2OFxcdTkyNjlcXHU5MjZFXFx1OTI2RlxcdTkyNzBcXHU5Mjc1XCIsIDQsIFwiXFx1OTI3QlxcdTkyN0NcXHU5MjdEXFx1OTI3RlxcdTkyODhcXHU5Mjg5XFx1OTI4QVxcdTkyOERcXHU5MjhFXFx1OTI5MlxcdTkyOTdcIl0sXG4gICAgICBbXCI4ZmU0YTFcIiwgXCJcXHU5Mjk5XFx1OTI5RlxcdTkyQTBcXHU5MkE0XFx1OTJBNVxcdTkyQTdcXHU5MkE4XFx1OTJBQlxcdTkyQUZcXHU5MkIyXFx1OTJCNlxcdTkyQjhcXHU5MkJBXFx1OTJCQlxcdTkyQkNcXHU5MkJEXFx1OTJCRlwiLCA0LCBcIlxcdTkyQzVcXHU5MkM2XFx1OTJDN1xcdTkyQzhcXHU5MkNCXFx1OTJDQ1xcdTkyQ0RcXHU5MkNFXFx1OTJEMFxcdTkyRDNcXHU5MkQ1XFx1OTJEN1xcdTkyRDhcXHU5MkQ5XFx1OTJEQ1xcdTkyRERcXHU5MkRGXFx1OTJFMFxcdTkyRTFcXHU5MkUzXFx1OTJFNVxcdTkyRTdcXHU5MkU4XFx1OTJFQ1xcdTkyRUVcXHU5MkYwXFx1OTJGOVxcdTkyRkJcXHU5MkZGXFx1OTMwMFxcdTkzMDJcXHU5MzA4XFx1OTMwRFxcdTkzMTFcXHU5MzE0XFx1OTMxNVxcdTkzMUNcXHU5MzFEXFx1OTMxRVxcdTkzMUZcXHU5MzIxXFx1OTMyNFxcdTkzMjVcXHU5MzI3XFx1OTMyOVxcdTkzMkFcXHU5MzMzXFx1OTMzNFxcdTkzMzZcXHU5MzM3XFx1OTM0N1xcdTkzNDhcXHU5MzQ5XFx1OTM1MFxcdTkzNTFcXHU5MzUyXFx1OTM1NVxcdTkzNTdcXHU5MzU4XFx1OTM1QVxcdTkzNUVcXHU5MzY0XFx1OTM2NVxcdTkzNjdcXHU5MzY5XFx1OTM2QVxcdTkzNkRcXHU5MzZGXFx1OTM3MFxcdTkzNzFcXHU5MzczXFx1OTM3NFxcdTkzNzZcIl0sXG4gICAgICBbXCI4ZmU1YTFcIiwgXCJcXHU5MzdBXFx1OTM3RFxcdTkzN0ZcXHU5MzgwXFx1OTM4MVxcdTkzODJcXHU5Mzg4XFx1OTM4QVxcdTkzOEJcXHU5MzhEXFx1OTM4RlxcdTkzOTJcXHU5Mzk1XFx1OTM5OFxcdTkzOUJcXHU5MzlFXFx1OTNBMVxcdTkzQTNcXHU5M0E0XFx1OTNBNlxcdTkzQThcXHU5M0FCXFx1OTNCNFxcdTkzQjVcXHU5M0I2XFx1OTNCQVxcdTkzQTlcXHU5M0MxXFx1OTNDNFxcdTkzQzVcXHU5M0M2XFx1OTNDN1xcdTkzQzlcIiwgNCwgXCJcXHU5M0QzXFx1OTNEOVxcdTkzRENcXHU5M0RFXFx1OTNERlxcdTkzRTJcXHU5M0U2XFx1OTNFN1xcdTkzRjlcXHU5M0Y3XFx1OTNGOFxcdTkzRkFcXHU5M0ZCXFx1OTNGRFxcdTk0MDFcXHU5NDAyXFx1OTQwNFxcdTk0MDhcXHU5NDA5XFx1OTQwRFxcdTk0MEVcXHU5NDBGXFx1OTQxNVxcdTk0MTZcXHU5NDE3XFx1OTQxRlxcdTk0MkVcXHU5NDJGXFx1OTQzMVxcdTk0MzJcXHU5NDMzXFx1OTQzNFxcdTk0M0JcXHU5NDNGXFx1OTQzRFxcdTk0NDNcXHU5NDQ1XFx1OTQ0OFxcdTk0NEFcXHU5NDRDXFx1OTQ1NVxcdTk0NTlcXHU5NDVDXFx1OTQ1RlxcdTk0NjFcXHU5NDYzXFx1OTQ2OFxcdTk0NkJcXHU5NDZEXFx1OTQ2RVxcdTk0NkZcXHU5NDcxXFx1OTQ3MlxcdTk0ODRcXHU5NDgzXFx1OTU3OFxcdTk1NzlcIl0sXG4gICAgICBbXCI4ZmU2YTFcIiwgXCJcXHU5NTdFXFx1OTU4NFxcdTk1ODhcXHU5NThDXFx1OTU4RFxcdTk1OEVcXHU5NTlEXFx1OTU5RVxcdTk1OUZcXHU5NUExXFx1OTVBNlxcdTk1QTlcXHU5NUFCXFx1OTVBQ1xcdTk1QjRcXHU5NUI2XFx1OTVCQVxcdTk1QkRcXHU5NUJGXFx1OTVDNlxcdTk1QzhcXHU5NUM5XFx1OTVDQlxcdTk1RDBcXHU5NUQxXFx1OTVEMlxcdTk1RDNcXHU5NUQ5XFx1OTVEQVxcdTk1RERcXHU5NURFXFx1OTVERlxcdTk1RTBcXHU5NUU0XFx1OTVFNlxcdTk2MURcXHU5NjFFXFx1OTYyMlxcdTk2MjRcXHU5NjI1XFx1OTYyNlxcdTk2MkNcXHU5NjMxXFx1OTYzM1xcdTk2MzdcXHU5NjM4XFx1OTYzOVxcdTk2M0FcXHU5NjNDXFx1OTYzRFxcdTk2NDFcXHU5NjUyXFx1OTY1NFxcdTk2NTZcXHU5NjU3XFx1OTY1OFxcdTk2NjFcXHU5NjZFXFx1OTY3NFxcdTk2N0JcXHU5NjdDXFx1OTY3RVxcdTk2N0ZcXHU5NjgxXFx1OTY4MlxcdTk2ODNcXHU5Njg0XFx1OTY4OVxcdTk2OTFcXHU5Njk2XFx1OTY5QVxcdTk2OURcXHU5NjlGXFx1OTZBNFxcdTk2QTVcXHU5NkE2XFx1OTZBOVxcdTk2QUVcXHU5NkFGXFx1OTZCM1xcdTk2QkFcXHU5NkNBXFx1OTZEMlxcdTVEQjJcXHU5NkQ4XFx1OTZEQVxcdTk2RERcXHU5NkRFXFx1OTZERlxcdTk2RTlcXHU5NkVGXFx1OTZGMVxcdTk2RkFcXHU5NzAyXCJdLFxuICAgICAgW1wiOGZlN2ExXCIsIFwiXFx1OTcwM1xcdTk3MDVcXHU5NzA5XFx1OTcxQVxcdTk3MUJcXHU5NzFEXFx1OTcyMVxcdTk3MjJcXHU5NzIzXFx1OTcyOFxcdTk3MzFcXHU5NzMzXFx1OTc0MVxcdTk3NDNcXHU5NzRBXFx1OTc0RVxcdTk3NEZcXHU5NzU1XFx1OTc1N1xcdTk3NThcXHU5NzVBXFx1OTc1QlxcdTk3NjNcXHU5NzY3XFx1OTc2QVxcdTk3NkVcXHU5NzczXFx1OTc3NlxcdTk3NzdcXHU5Nzc4XFx1OTc3QlxcdTk3N0RcXHU5NzdGXFx1OTc4MFxcdTk3ODlcXHU5Nzk1XFx1OTc5NlxcdTk3OTdcXHU5Nzk5XFx1OTc5QVxcdTk3OUVcXHU5NzlGXFx1OTdBMlxcdTk3QUNcXHU5N0FFXFx1OTdCMVxcdTk3QjJcXHU5N0I1XFx1OTdCNlxcdTk3QjhcXHU5N0I5XFx1OTdCQVxcdTk3QkNcXHU5N0JFXFx1OTdCRlxcdTk3QzFcXHU5N0M0XFx1OTdDNVxcdTk3QzdcXHU5N0M5XFx1OTdDQVxcdTk3Q0NcXHU5N0NEXFx1OTdDRVxcdTk3RDBcXHU5N0QxXFx1OTdENFxcdTk3RDdcXHU5N0Q4XFx1OTdEOVxcdTk3RERcXHU5N0RFXFx1OTdFMFxcdTk3REJcXHU5N0UxXFx1OTdFNFxcdTk3RUZcXHU5N0YxXFx1OTdGNFxcdTk3RjdcXHU5N0Y4XFx1OTdGQVxcdTk4MDdcXHU5ODBBXFx1OTgxOVxcdTk4MERcXHU5ODBFXFx1OTgxNFxcdTk4MTZcXHU5ODFDXFx1OTgxRVxcdTk4MjBcXHU5ODIzXFx1OTgyNlwiXSxcbiAgICAgIFtcIjhmZThhMVwiLCBcIlxcdTk4MkJcXHU5ODJFXFx1OTgyRlxcdTk4MzBcXHU5ODMyXFx1OTgzM1xcdTk4MzVcXHU5ODI1XFx1OTgzRVxcdTk4NDRcXHU5ODQ3XFx1OTg0QVxcdTk4NTFcXHU5ODUyXFx1OTg1M1xcdTk4NTZcXHU5ODU3XFx1OTg1OVxcdTk4NUFcXHU5ODYyXFx1OTg2M1xcdTk4NjVcXHU5ODY2XFx1OTg2QVxcdTk4NkNcXHU5OEFCXFx1OThBRFxcdTk4QUVcXHU5OEIwXFx1OThCNFxcdTk4QjdcXHU5OEI4XFx1OThCQVxcdTk4QkJcXHU5OEJGXFx1OThDMlxcdTk4QzVcXHU5OEM4XFx1OThDQ1xcdTk4RTFcXHU5OEUzXFx1OThFNVxcdTk4RTZcXHU5OEU3XFx1OThFQVxcdTk4RjNcXHU5OEY2XFx1OTkwMlxcdTk5MDdcXHU5OTA4XFx1OTkxMVxcdTk5MTVcXHU5OTE2XFx1OTkxN1xcdTk5MUFcXHU5OTFCXFx1OTkxQ1xcdTk5MUZcXHU5OTIyXFx1OTkyNlxcdTk5MjdcXHU5OTJCXFx1OTkzMVwiLCA0LCBcIlxcdTk5MzlcXHU5OTNBXFx1OTkzQlxcdTk5M0NcXHU5OTQwXFx1OTk0MVxcdTk5NDZcXHU5OTQ3XFx1OTk0OFxcdTk5NERcXHU5OTRFXFx1OTk1NFxcdTk5NThcXHU5OTU5XFx1OTk1QlxcdTk5NUNcXHU5OTVFXFx1OTk1RlxcdTk5NjBcXHU5OTlCXFx1OTk5RFxcdTk5OUZcXHU5OUE2XFx1OTlCMFxcdTk5QjFcXHU5OUIyXFx1OTlCNVwiXSxcbiAgICAgIFtcIjhmZTlhMVwiLCBcIlxcdTk5QjlcXHU5OUJBXFx1OTlCRFxcdTk5QkZcXHU5OUMzXFx1OTlDOVxcdTk5RDNcXHU5OUQ0XFx1OTlEOVxcdTk5REFcXHU5OURDXFx1OTlERVxcdTk5RTdcXHU5OUVBXFx1OTlFQlxcdTk5RUNcXHU5OUYwXFx1OTlGNFxcdTk5RjVcXHU5OUY5XFx1OTlGRFxcdTk5RkVcXHU5QTAyXFx1OUEwM1xcdTlBMDRcXHU5QTBCXFx1OUEwQ1xcdTlBMTBcXHU5QTExXFx1OUExNlxcdTlBMUVcXHU5QTIwXFx1OUEyMlxcdTlBMjNcXHU5QTI0XFx1OUEyN1xcdTlBMkRcXHU5QTJFXFx1OUEzM1xcdTlBMzVcXHU5QTM2XFx1OUEzOFxcdTlBNDdcXHU5QTQxXFx1OUE0NFxcdTlBNEFcXHU5QTRCXFx1OUE0Q1xcdTlBNEVcXHU5QTUxXFx1OUE1NFxcdTlBNTZcXHU5QTVEXFx1OUFBQVxcdTlBQUNcXHU5QUFFXFx1OUFBRlxcdTlBQjJcXHU5QUI0XFx1OUFCNVxcdTlBQjZcXHU5QUI5XFx1OUFCQlxcdTlBQkVcXHU5QUJGXFx1OUFDMVxcdTlBQzNcXHU5QUM2XFx1OUFDOFxcdTlBQ0VcXHU5QUQwXFx1OUFEMlxcdTlBRDVcXHU5QUQ2XFx1OUFEN1xcdTlBREJcXHU5QURDXFx1OUFFMFxcdTlBRTRcXHU5QUU1XFx1OUFFN1xcdTlBRTlcXHU5QUVDXFx1OUFGMlxcdTlBRjNcXHU5QUY1XFx1OUFGOVxcdTlBRkFcXHU5QUZEXFx1OUFGRlwiLCA0XSxcbiAgICAgIFtcIjhmZWFhMVwiLCBcIlxcdTlCMDRcXHU5QjA1XFx1OUIwOFxcdTlCMDlcXHU5QjBCXFx1OUIwQ1xcdTlCMERcXHU5QjBFXFx1OUIxMFxcdTlCMTJcXHU5QjE2XFx1OUIxOVxcdTlCMUJcXHU5QjFDXFx1OUIyMFxcdTlCMjZcXHU5QjJCXFx1OUIyRFxcdTlCMzNcXHU5QjM0XFx1OUIzNVxcdTlCMzdcXHU5QjM5XFx1OUIzQVxcdTlCM0RcXHU5QjQ4XFx1OUI0QlxcdTlCNENcXHU5QjU1XFx1OUI1NlxcdTlCNTdcXHU5QjVCXFx1OUI1RVxcdTlCNjFcXHU5QjYzXFx1OUI2NVxcdTlCNjZcXHU5QjY4XFx1OUI2QVwiLCA0LCBcIlxcdTlCNzNcXHU5Qjc1XFx1OUI3N1xcdTlCNzhcXHU5Qjc5XFx1OUI3RlxcdTlCODBcXHU5Qjg0XFx1OUI4NVxcdTlCODZcXHU5Qjg3XFx1OUI4OVxcdTlCOEFcXHU5QjhCXFx1OUI4RFxcdTlCOEZcXHU5QjkwXFx1OUI5NFxcdTlCOUFcXHU5QjlEXFx1OUI5RVxcdTlCQTZcXHU5QkE3XFx1OUJBOVxcdTlCQUNcXHU5QkIwXFx1OUJCMVxcdTlCQjJcXHU5QkI3XFx1OUJCOFxcdTlCQkJcXHU5QkJDXFx1OUJCRVxcdTlCQkZcXHU5QkMxXFx1OUJDN1xcdTlCQzhcXHU5QkNFXFx1OUJEMFxcdTlCRDdcXHU5QkQ4XFx1OUJERFxcdTlCREZcXHU5QkU1XFx1OUJFN1xcdTlCRUFcXHU5QkVCXFx1OUJFRlxcdTlCRjNcXHU5QkY3XFx1OUJGOFwiXSxcbiAgICAgIFtcIjhmZWJhMVwiLCBcIlxcdTlCRjlcXHU5QkZBXFx1OUJGRFxcdTlCRkZcXHU5QzAwXFx1OUMwMlxcdTlDMEJcXHU5QzBGXFx1OUMxMVxcdTlDMTZcXHU5QzE4XFx1OUMxOVxcdTlDMUFcXHU5QzFDXFx1OUMxRVxcdTlDMjJcXHU5QzIzXFx1OUMyNlwiLCA0LCBcIlxcdTlDMzFcXHU5QzM1XFx1OUMzNlxcdTlDMzdcXHU5QzNEXFx1OUM0MVxcdTlDNDNcXHU5QzQ0XFx1OUM0NVxcdTlDNDlcXHU5QzRBXFx1OUM0RVxcdTlDNEZcXHU5QzUwXFx1OUM1M1xcdTlDNTRcXHU5QzU2XFx1OUM1OFxcdTlDNUJcXHU5QzVEXFx1OUM1RVxcdTlDNUZcXHU5QzYzXFx1OUM2OVxcdTlDNkFcXHU5QzVDXFx1OUM2QlxcdTlDNjhcXHU5QzZFXFx1OUM3MFxcdTlDNzJcXHU5Qzc1XFx1OUM3N1xcdTlDN0JcXHU5Q0U2XFx1OUNGMlxcdTlDRjdcXHU5Q0Y5XFx1OUQwQlxcdTlEMDJcXHU5RDExXFx1OUQxN1xcdTlEMThcXHU5RDFDXFx1OUQxRFxcdTlEMUVcXHU5RDJGXFx1OUQzMFxcdTlEMzJcXHU5RDMzXFx1OUQzNFxcdTlEM0FcXHU5RDNDXFx1OUQ0NVxcdTlEM0RcXHU5RDQyXFx1OUQ0M1xcdTlENDdcXHU5RDRBXFx1OUQ1M1xcdTlENTRcXHU5RDVGXFx1OUQ2M1xcdTlENjJcXHU5RDY1XFx1OUQ2OVxcdTlENkFcXHU5RDZCXFx1OUQ3MFxcdTlENzZcXHU5RDc3XFx1OUQ3QlwiXSxcbiAgICAgIFtcIjhmZWNhMVwiLCBcIlxcdTlEN0NcXHU5RDdFXFx1OUQ4M1xcdTlEODRcXHU5RDg2XFx1OUQ4QVxcdTlEOERcXHU5RDhFXFx1OUQ5MlxcdTlEOTNcXHU5RDk1XFx1OUQ5NlxcdTlEOTdcXHU5RDk4XFx1OURBMVxcdTlEQUFcXHU5REFDXFx1OURBRVxcdTlEQjFcXHU5REI1XFx1OURCOVxcdTlEQkNcXHU5REJGXFx1OURDM1xcdTlEQzdcXHU5REM5XFx1OURDQVxcdTlERDRcXHU5REQ1XFx1OURENlxcdTlERDdcXHU5RERBXFx1OURERVxcdTlEREZcXHU5REUwXFx1OURFNVxcdTlERTdcXHU5REU5XFx1OURFQlxcdTlERUVcXHU5REYwXFx1OURGM1xcdTlERjRcXHU5REZFXFx1OUUwQVxcdTlFMDJcXHU5RTA3XFx1OUUwRVxcdTlFMTBcXHU5RTExXFx1OUUxMlxcdTlFMTVcXHU5RTE2XFx1OUUxOVxcdTlFMUNcXHU5RTFEXFx1OUU3QVxcdTlFN0JcXHU5RTdDXFx1OUU4MFxcdTlFODJcXHU5RTgzXFx1OUU4NFxcdTlFODVcXHU5RTg3XFx1OUU4RVxcdTlFOEZcXHU5RTk2XFx1OUU5OFxcdTlFOUJcXHU5RTlFXFx1OUVBNFxcdTlFQThcXHU5RUFDXFx1OUVBRVxcdTlFQUZcXHU5RUIwXFx1OUVCM1xcdTlFQjRcXHU5RUI1XFx1OUVDNlxcdTlFQzhcXHU5RUNCXFx1OUVENVxcdTlFREZcXHU5RUU0XFx1OUVFN1xcdTlFRUNcXHU5RUVEXFx1OUVFRVxcdTlFRjBcXHU5RUYxXFx1OUVGMlxcdTlFRjVcIl0sXG4gICAgICBbXCI4ZmVkYTFcIiwgXCJcXHU5RUY4XFx1OUVGRlxcdTlGMDJcXHU5RjAzXFx1OUYwOVxcdTlGMEZcXHU5RjEwXFx1OUYxMVxcdTlGMTJcXHU5RjE0XFx1OUYxNlxcdTlGMTdcXHU5RjE5XFx1OUYxQVxcdTlGMUJcXHU5RjFGXFx1OUYyMlxcdTlGMjZcXHU5RjJBXFx1OUYyQlxcdTlGMkZcXHU5RjMxXFx1OUYzMlxcdTlGMzRcXHU5RjM3XFx1OUYzOVxcdTlGM0FcXHU5RjNDXFx1OUYzRFxcdTlGM0ZcXHU5RjQxXFx1OUY0M1wiLCA0LCBcIlxcdTlGNTNcXHU5RjU1XFx1OUY1NlxcdTlGNTdcXHU5RjU4XFx1OUY1QVxcdTlGNURcXHU5RjVFXFx1OUY2OFxcdTlGNjlcXHU5RjZEXCIsIDQsIFwiXFx1OUY3M1xcdTlGNzVcXHU5RjdBXFx1OUY3RFxcdTlGOEZcXHU5RjkwXFx1OUY5MVxcdTlGOTJcXHU5Rjk0XFx1OUY5NlxcdTlGOTdcXHU5RjlFXFx1OUZBMVxcdTlGQTJcXHU5RkEzXFx1OUZBNVwiXVxuICAgIF07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9jcDkzNi5qc29uXG52YXIgcmVxdWlyZV9jcDkzNiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2NwOTM2Lmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFtcbiAgICAgIFtcIjBcIiwgXCJcXDBcIiwgMTI3LCBcIlxcdTIwQUNcIl0sXG4gICAgICBbXCI4MTQwXCIsIFwiXFx1NEUwMlxcdTRFMDRcXHU0RTA1XFx1NEUwNlxcdTRFMEZcXHU0RTEyXFx1NEUxN1xcdTRFMUZcXHU0RTIwXFx1NEUyMVxcdTRFMjNcXHU0RTI2XFx1NEUyOVxcdTRFMkVcXHU0RTJGXFx1NEUzMVxcdTRFMzNcXHU0RTM1XFx1NEUzN1xcdTRFM0NcXHU0RTQwXFx1NEU0MVxcdTRFNDJcXHU0RTQ0XFx1NEU0NlxcdTRFNEFcXHU0RTUxXFx1NEU1NVxcdTRFNTdcXHU0RTVBXFx1NEU1QlxcdTRFNjJcXHU0RTYzXFx1NEU2NFxcdTRFNjVcXHU0RTY3XFx1NEU2OFxcdTRFNkFcIiwgNSwgXCJcXHU0RTcyXFx1NEU3NFwiLCA5LCBcIlxcdTRFN0ZcIiwgNiwgXCJcXHU0RTg3XFx1NEU4QVwiXSxcbiAgICAgIFtcIjgxODBcIiwgXCJcXHU0RTkwXFx1NEU5NlxcdTRFOTdcXHU0RTk5XFx1NEU5Q1xcdTRFOURcXHU0RTlFXFx1NEVBM1xcdTRFQUFcXHU0RUFGXFx1NEVCMFxcdTRFQjFcXHU0RUI0XFx1NEVCNlxcdTRFQjdcXHU0RUI4XFx1NEVCOVxcdTRFQkNcXHU0RUJEXFx1NEVCRVxcdTRFQzhcXHU0RUNDXFx1NEVDRlxcdTRFRDBcXHU0RUQyXFx1NEVEQVxcdTRFREJcXHU0RURDXFx1NEVFMFxcdTRFRTJcXHU0RUU2XFx1NEVFN1xcdTRFRTlcXHU0RUVEXFx1NEVFRVxcdTRFRUZcXHU0RUYxXFx1NEVGNFxcdTRFRjhcXHU0RUY5XFx1NEVGQVxcdTRFRkNcXHU0RUZFXFx1NEYwMFxcdTRGMDJcIiwgNiwgXCJcXHU0RjBCXFx1NEYwQ1xcdTRGMTJcIiwgNCwgXCJcXHU0RjFDXFx1NEYxRFxcdTRGMjFcXHU0RjIzXFx1NEYyOFxcdTRGMjlcXHU0RjJDXFx1NEYyRFxcdTRGMkVcXHU0RjMxXFx1NEYzM1xcdTRGMzVcXHU0RjM3XFx1NEYzOVxcdTRGM0JcXHU0RjNFXCIsIDQsIFwiXFx1NEY0NFxcdTRGNDVcXHU0RjQ3XCIsIDUsIFwiXFx1NEY1MlxcdTRGNTRcXHU0RjU2XFx1NEY2MVxcdTRGNjJcXHU0RjY2XFx1NEY2OFxcdTRGNkFcXHU0RjZCXFx1NEY2RFxcdTRGNkVcXHU0RjcxXFx1NEY3MlxcdTRGNzVcXHU0Rjc3XFx1NEY3OFxcdTRGNzlcXHU0RjdBXFx1NEY3RFxcdTRGODBcXHU0RjgxXFx1NEY4MlxcdTRGODVcXHU0Rjg2XFx1NEY4N1xcdTRGOEFcXHU0RjhDXFx1NEY4RVxcdTRGOTBcXHU0RjkyXFx1NEY5M1xcdTRGOTVcXHU0Rjk2XFx1NEY5OFxcdTRGOTlcXHU0RjlBXFx1NEY5Q1xcdTRGOUVcXHU0RjlGXFx1NEZBMVxcdTRGQTJcIl0sXG4gICAgICBbXCI4MjQwXCIsIFwiXFx1NEZBNFxcdTRGQUJcXHU0RkFEXFx1NEZCMFwiLCA0LCBcIlxcdTRGQjZcIiwgOCwgXCJcXHU0RkMwXFx1NEZDMVxcdTRGQzJcXHU0RkM2XFx1NEZDN1xcdTRGQzhcXHU0RkM5XFx1NEZDQlxcdTRGQ0NcXHU0RkNEXFx1NEZEMlwiLCA0LCBcIlxcdTRGRDlcXHU0RkRCXFx1NEZFMFxcdTRGRTJcXHU0RkU0XFx1NEZFNVxcdTRGRTdcXHU0RkVCXFx1NEZFQ1xcdTRGRjBcXHU0RkYyXFx1NEZGNFxcdTRGRjVcXHU0RkY2XFx1NEZGN1xcdTRGRjlcXHU0RkZCXFx1NEZGQ1xcdTRGRkRcXHU0RkZGXCIsIDExXSxcbiAgICAgIFtcIjgyODBcIiwgXCJcXHU1MDBCXFx1NTAwRVxcdTUwMTBcXHU1MDExXFx1NTAxM1xcdTUwMTVcXHU1MDE2XFx1NTAxN1xcdTUwMUJcXHU1MDFEXFx1NTAxRVxcdTUwMjBcXHU1MDIyXFx1NTAyM1xcdTUwMjRcXHU1MDI3XFx1NTAyQlxcdTUwMkZcIiwgMTAsIFwiXFx1NTAzQlxcdTUwM0RcXHU1MDNGXFx1NTA0MFxcdTUwNDFcXHU1MDQyXFx1NTA0NFxcdTUwNDVcXHU1MDQ2XFx1NTA0OVxcdTUwNEFcXHU1MDRCXFx1NTA0RFxcdTUwNTBcIiwgNCwgXCJcXHU1MDU2XFx1NTA1N1xcdTUwNThcXHU1MDU5XFx1NTA1QlxcdTUwNURcIiwgNywgXCJcXHU1MDY2XCIsIDUsIFwiXFx1NTA2RFwiLCA4LCBcIlxcdTUwNzhcXHU1MDc5XFx1NTA3QVxcdTUwN0NcXHU1MDdEXFx1NTA4MVxcdTUwODJcXHU1MDgzXFx1NTA4NFxcdTUwODZcXHU1MDg3XFx1NTA4OVxcdTUwOEFcXHU1MDhCXFx1NTA4Q1xcdTUwOEVcIiwgMjAsIFwiXFx1NTBBNFxcdTUwQTZcXHU1MEFBXFx1NTBBQlxcdTUwQURcIiwgNCwgXCJcXHU1MEIzXCIsIDYsIFwiXFx1NTBCQ1wiXSxcbiAgICAgIFtcIjgzNDBcIiwgXCJcXHU1MEJEXCIsIDE3LCBcIlxcdTUwRDBcIiwgNSwgXCJcXHU1MEQ3XFx1NTBEOFxcdTUwRDlcXHU1MERCXCIsIDEwLCBcIlxcdTUwRThcXHU1MEU5XFx1NTBFQVxcdTUwRUJcXHU1MEVGXFx1NTBGMFxcdTUwRjFcXHU1MEYyXFx1NTBGNFxcdTUwRjZcIiwgNCwgXCJcXHU1MEZDXCIsIDksIFwiXFx1NTEwOFwiXSxcbiAgICAgIFtcIjgzODBcIiwgXCJcXHU1MTA5XFx1NTEwQVxcdTUxMENcIiwgNSwgXCJcXHU1MTEzXCIsIDEzLCBcIlxcdTUxMjJcIiwgMjgsIFwiXFx1NTE0MlxcdTUxNDdcXHU1MTRBXFx1NTE0Q1xcdTUxNEVcXHU1MTRGXFx1NTE1MFxcdTUxNTJcXHU1MTUzXFx1NTE1N1xcdTUxNThcXHU1MTU5XFx1NTE1QlxcdTUxNURcIiwgNCwgXCJcXHU1MTYzXFx1NTE2NFxcdTUxNjZcXHU1MTY3XFx1NTE2OVxcdTUxNkFcXHU1MTZGXFx1NTE3MlxcdTUxN0FcXHU1MTdFXFx1NTE3RlxcdTUxODNcXHU1MTg0XFx1NTE4NlxcdTUxODdcXHU1MThBXFx1NTE4QlxcdTUxOEVcXHU1MThGXFx1NTE5MFxcdTUxOTFcXHU1MTkzXFx1NTE5NFxcdTUxOThcXHU1MTlBXFx1NTE5RFxcdTUxOUVcXHU1MTlGXFx1NTFBMVxcdTUxQTNcXHU1MUE2XCIsIDQsIFwiXFx1NTFBRFxcdTUxQUVcXHU1MUI0XFx1NTFCOFxcdTUxQjlcXHU1MUJBXFx1NTFCRVxcdTUxQkZcXHU1MUMxXFx1NTFDMlxcdTUxQzNcXHU1MUM1XFx1NTFDOFxcdTUxQ0FcXHU1MUNEXFx1NTFDRVxcdTUxRDBcXHU1MUQyXCIsIDVdLFxuICAgICAgW1wiODQ0MFwiLCBcIlxcdTUxRDhcXHU1MUQ5XFx1NTFEQVxcdTUxRENcXHU1MURFXFx1NTFERlxcdTUxRTJcXHU1MUUzXFx1NTFFNVwiLCA1LCBcIlxcdTUxRUNcXHU1MUVFXFx1NTFGMVxcdTUxRjJcXHU1MUY0XFx1NTFGN1xcdTUxRkVcXHU1MjA0XFx1NTIwNVxcdTUyMDlcXHU1MjBCXFx1NTIwQ1xcdTUyMEZcXHU1MjEwXFx1NTIxM1xcdTUyMTRcXHU1MjE1XFx1NTIxQ1xcdTUyMUVcXHU1MjFGXFx1NTIyMVxcdTUyMjJcXHU1MjIzXFx1NTIyNVxcdTUyMjZcXHU1MjI3XFx1NTIyQVxcdTUyMkNcXHU1MjJGXFx1NTIzMVxcdTUyMzJcXHU1MjM0XFx1NTIzNVxcdTUyM0NcXHU1MjNFXFx1NTI0NFwiLCA1LCBcIlxcdTUyNEJcXHU1MjRFXFx1NTI0RlxcdTUyNTJcXHU1MjUzXFx1NTI1NVxcdTUyNTdcXHU1MjU4XCJdLFxuICAgICAgW1wiODQ4MFwiLCBcIlxcdTUyNTlcXHU1MjVBXFx1NTI1QlxcdTUyNURcXHU1MjVGXFx1NTI2MFxcdTUyNjJcXHU1MjYzXFx1NTI2NFxcdTUyNjZcXHU1MjY4XFx1NTI2QlxcdTUyNkNcXHU1MjZEXFx1NTI2RVxcdTUyNzBcXHU1MjcxXFx1NTI3M1wiLCA5LCBcIlxcdTUyN0VcXHU1MjgwXFx1NTI4M1wiLCA0LCBcIlxcdTUyODlcIiwgNiwgXCJcXHU1MjkxXFx1NTI5MlxcdTUyOTRcIiwgNiwgXCJcXHU1MjlDXFx1NTJBNFxcdTUyQTVcXHU1MkE2XFx1NTJBN1xcdTUyQUVcXHU1MkFGXFx1NTJCMFxcdTUyQjRcIiwgOSwgXCJcXHU1MkMwXFx1NTJDMVxcdTUyQzJcXHU1MkM0XFx1NTJDNVxcdTUyQzZcXHU1MkM4XFx1NTJDQVxcdTUyQ0NcXHU1MkNEXFx1NTJDRVxcdTUyQ0ZcXHU1MkQxXFx1NTJEM1xcdTUyRDRcXHU1MkQ1XFx1NTJEN1xcdTUyRDlcIiwgNSwgXCJcXHU1MkUwXFx1NTJFMVxcdTUyRTJcXHU1MkUzXFx1NTJFNVwiLCAxMCwgXCJcXHU1MkYxXCIsIDcsIFwiXFx1NTJGQlxcdTUyRkNcXHU1MkZEXFx1NTMwMVxcdTUzMDJcXHU1MzAzXFx1NTMwNFxcdTUzMDdcXHU1MzA5XFx1NTMwQVxcdTUzMEJcXHU1MzBDXFx1NTMwRVwiXSxcbiAgICAgIFtcIjg1NDBcIiwgXCJcXHU1MzExXFx1NTMxMlxcdTUzMTNcXHU1MzE0XFx1NTMxOFxcdTUzMUJcXHU1MzFDXFx1NTMxRVxcdTUzMUZcXHU1MzIyXFx1NTMyNFxcdTUzMjVcXHU1MzI3XFx1NTMyOFxcdTUzMjlcXHU1MzJCXFx1NTMyQ1xcdTUzMkRcXHU1MzJGXCIsIDksIFwiXFx1NTMzQ1xcdTUzM0RcXHU1MzQwXFx1NTM0MlxcdTUzNDRcXHU1MzQ2XFx1NTM0QlxcdTUzNENcXHU1MzREXFx1NTM1MFxcdTUzNTRcXHU1MzU4XFx1NTM1OVxcdTUzNUJcXHU1MzVEXFx1NTM2NVxcdTUzNjhcXHU1MzZBXFx1NTM2Q1xcdTUzNkRcXHU1MzcyXFx1NTM3NlxcdTUzNzlcXHU1MzdCXFx1NTM3Q1xcdTUzN0RcXHU1MzdFXFx1NTM4MFxcdTUzODFcXHU1MzgzXFx1NTM4N1xcdTUzODhcXHU1MzhBXFx1NTM4RVxcdTUzOEZcIl0sXG4gICAgICBbXCI4NTgwXCIsIFwiXFx1NTM5MFwiLCA0LCBcIlxcdTUzOTZcXHU1Mzk3XFx1NTM5OVxcdTUzOUJcXHU1MzlDXFx1NTM5RVxcdTUzQTBcXHU1M0ExXFx1NTNBNFxcdTUzQTdcXHU1M0FBXFx1NTNBQlxcdTUzQUNcXHU1M0FEXFx1NTNBRlwiLCA2LCBcIlxcdTUzQjdcXHU1M0I4XFx1NTNCOVxcdTUzQkFcXHU1M0JDXFx1NTNCRFxcdTUzQkVcXHU1M0MwXFx1NTNDM1wiLCA0LCBcIlxcdTUzQ0VcXHU1M0NGXFx1NTNEMFxcdTUzRDJcXHU1M0QzXFx1NTNENVxcdTUzREFcXHU1M0RDXFx1NTNERFxcdTUzREVcXHU1M0UxXFx1NTNFMlxcdTUzRTdcXHU1M0Y0XFx1NTNGQVxcdTUzRkVcXHU1M0ZGXFx1NTQwMFxcdTU0MDJcXHU1NDA1XFx1NTQwN1xcdTU0MEJcXHU1NDE0XFx1NTQxOFxcdTU0MTlcXHU1NDFBXFx1NTQxQ1xcdTU0MjJcXHU1NDI0XFx1NTQyNVxcdTU0MkFcXHU1NDMwXFx1NTQzM1xcdTU0MzZcXHU1NDM3XFx1NTQzQVxcdTU0M0RcXHU1NDNGXFx1NTQ0MVxcdTU0NDJcXHU1NDQ0XFx1NTQ0NVxcdTU0NDdcXHU1NDQ5XFx1NTQ0Q1xcdTU0NERcXHU1NDRFXFx1NTQ0RlxcdTU0NTFcXHU1NDVBXFx1NTQ1RFwiLCA0LCBcIlxcdTU0NjNcXHU1NDY1XFx1NTQ2N1xcdTU0NjlcIiwgNywgXCJcXHU1NDc0XFx1NTQ3OVxcdTU0N0FcXHU1NDdFXFx1NTQ3RlxcdTU0ODFcXHU1NDgzXFx1NTQ4NVxcdTU0ODdcXHU1NDg4XFx1NTQ4OVxcdTU0OEFcXHU1NDhEXFx1NTQ5MVxcdTU0OTNcXHU1NDk3XFx1NTQ5OFxcdTU0OUNcXHU1NDlFXFx1NTQ5RlxcdTU0QTBcXHU1NEExXCJdLFxuICAgICAgW1wiODY0MFwiLCBcIlxcdTU0QTJcXHU1NEE1XFx1NTRBRVxcdTU0QjBcXHU1NEIyXFx1NTRCNVxcdTU0QjZcXHU1NEI3XFx1NTRCOVxcdTU0QkFcXHU1NEJDXFx1NTRCRVxcdTU0QzNcXHU1NEM1XFx1NTRDQVxcdTU0Q0JcXHU1NEQ2XFx1NTREOFxcdTU0REJcXHU1NEUwXCIsIDQsIFwiXFx1NTRFQlxcdTU0RUNcXHU1NEVGXFx1NTRGMFxcdTU0RjFcXHU1NEY0XCIsIDUsIFwiXFx1NTRGQlxcdTU0RkVcXHU1NTAwXFx1NTUwMlxcdTU1MDNcXHU1NTA0XFx1NTUwNVxcdTU1MDhcXHU1NTBBXCIsIDQsIFwiXFx1NTUxMlxcdTU1MTNcXHU1NTE1XCIsIDUsIFwiXFx1NTUxQ1xcdTU1MURcXHU1NTFFXFx1NTUxRlxcdTU1MjFcXHU1NTI1XFx1NTUyNlwiXSxcbiAgICAgIFtcIjg2ODBcIiwgXCJcXHU1NTI4XFx1NTUyOVxcdTU1MkJcXHU1NTJEXFx1NTUzMlxcdTU1MzRcXHU1NTM1XFx1NTUzNlxcdTU1MzhcXHU1NTM5XFx1NTUzQVxcdTU1M0JcXHU1NTNEXFx1NTU0MFxcdTU1NDJcXHU1NTQ1XFx1NTU0N1xcdTU1NDhcXHU1NTRCXCIsIDQsIFwiXFx1NTU1MVxcdTU1NTJcXHU1NTUzXFx1NTU1NFxcdTU1NTdcIiwgNCwgXCJcXHU1NTVEXFx1NTU1RVxcdTU1NUZcXHU1NTYwXFx1NTU2MlxcdTU1NjNcXHU1NTY4XFx1NTU2OVxcdTU1NkJcXHU1NTZGXCIsIDUsIFwiXFx1NTU3OVxcdTU1N0FcXHU1NTdEXFx1NTU3RlxcdTU1ODVcXHU1NTg2XFx1NTU4Q1xcdTU1OERcXHU1NThFXFx1NTU5MFxcdTU1OTJcXHU1NTkzXFx1NTU5NVxcdTU1OTZcXHU1NTk3XFx1NTU5QVxcdTU1OUJcXHU1NTlFXFx1NTVBMFwiLCA2LCBcIlxcdTU1QThcIiwgOCwgXCJcXHU1NUIyXFx1NTVCNFxcdTU1QjZcXHU1NUI4XFx1NTVCQVxcdTU1QkNcXHU1NUJGXCIsIDQsIFwiXFx1NTVDNlxcdTU1QzdcXHU1NUM4XFx1NTVDQVxcdTU1Q0JcXHU1NUNFXFx1NTVDRlxcdTU1RDBcXHU1NUQ1XFx1NTVEN1wiLCA0LCBcIlxcdTU1REVcXHU1NUUwXFx1NTVFMlxcdTU1RTdcXHU1NUU5XFx1NTVFRFxcdTU1RUVcXHU1NUYwXFx1NTVGMVxcdTU1RjRcXHU1NUY2XFx1NTVGOFwiLCA0LCBcIlxcdTU1RkZcXHU1NjAyXFx1NTYwM1xcdTU2MDRcXHU1NjA1XCJdLFxuICAgICAgW1wiODc0MFwiLCBcIlxcdTU2MDZcXHU1NjA3XFx1NTYwQVxcdTU2MEJcXHU1NjBEXFx1NTYxMFwiLCA3LCBcIlxcdTU2MTlcXHU1NjFBXFx1NTYxQ1xcdTU2MURcXHU1NjIwXFx1NTYyMVxcdTU2MjJcXHU1NjI1XFx1NTYyNlxcdTU2MjhcXHU1NjI5XFx1NTYyQVxcdTU2MkJcXHU1NjJFXFx1NTYyRlxcdTU2MzBcXHU1NjMzXFx1NTYzNVxcdTU2MzdcXHU1NjM4XFx1NTYzQVxcdTU2M0NcXHU1NjNEXFx1NTYzRVxcdTU2NDBcIiwgMTEsIFwiXFx1NTY0RlwiLCA0LCBcIlxcdTU2NTVcXHU1NjU2XFx1NTY1QVxcdTU2NUJcXHU1NjVEXCIsIDRdLFxuICAgICAgW1wiODc4MFwiLCBcIlxcdTU2NjNcXHU1NjY1XFx1NTY2NlxcdTU2NjdcXHU1NjZEXFx1NTY2RVxcdTU2NkZcXHU1NjcwXFx1NTY3MlxcdTU2NzNcXHU1Njc0XFx1NTY3NVxcdTU2NzdcXHU1Njc4XFx1NTY3OVxcdTU2N0FcXHU1NjdEXCIsIDcsIFwiXFx1NTY4N1wiLCA2LCBcIlxcdTU2OTBcXHU1NjkxXFx1NTY5MlxcdTU2OTRcIiwgMTQsIFwiXFx1NTZBNFwiLCAxMCwgXCJcXHU1NkIwXCIsIDYsIFwiXFx1NTZCOFxcdTU2QjlcXHU1NkJBXFx1NTZCQlxcdTU2QkRcIiwgMTIsIFwiXFx1NTZDQlwiLCA4LCBcIlxcdTU2RDVcXHU1NkQ2XFx1NTZEOFxcdTU2RDlcXHU1NkRDXFx1NTZFM1xcdTU2RTVcIiwgNSwgXCJcXHU1NkVDXFx1NTZFRVxcdTU2RUZcXHU1NkYyXFx1NTZGM1xcdTU2RjZcXHU1NkY3XFx1NTZGOFxcdTU2RkJcXHU1NkZDXFx1NTcwMFxcdTU3MDFcXHU1NzAyXFx1NTcwNVxcdTU3MDdcXHU1NzBCXCIsIDZdLFxuICAgICAgW1wiODg0MFwiLCBcIlxcdTU3MTJcIiwgOSwgXCJcXHU1NzFEXFx1NTcxRVxcdTU3MjBcXHU1NzIxXFx1NTcyMlxcdTU3MjRcXHU1NzI1XFx1NTcyNlxcdTU3MjdcXHU1NzJCXFx1NTczMVxcdTU3MzJcXHU1NzM0XCIsIDQsIFwiXFx1NTczQ1xcdTU3M0RcXHU1NzNGXFx1NTc0MVxcdTU3NDNcXHU1NzQ0XFx1NTc0NVxcdTU3NDZcXHU1NzQ4XFx1NTc0OVxcdTU3NEJcXHU1NzUyXCIsIDQsIFwiXFx1NTc1OFxcdTU3NTlcXHU1NzYyXFx1NTc2M1xcdTU3NjVcXHU1NzY3XFx1NTc2Q1xcdTU3NkVcXHU1NzcwXFx1NTc3MVxcdTU3NzJcXHU1Nzc0XFx1NTc3NVxcdTU3NzhcXHU1Nzc5XFx1NTc3QVxcdTU3N0RcXHU1NzdFXFx1NTc3RlxcdTU3ODBcIl0sXG4gICAgICBbXCI4ODgwXCIsIFwiXFx1NTc4MVxcdTU3ODdcXHU1Nzg4XFx1NTc4OVxcdTU3OEFcXHU1NzhEXCIsIDQsIFwiXFx1NTc5NFwiLCA2LCBcIlxcdTU3OUNcXHU1NzlEXFx1NTc5RVxcdTU3OUZcXHU1N0E1XFx1NTdBOFxcdTU3QUFcXHU1N0FDXFx1NTdBRlxcdTU3QjBcXHU1N0IxXFx1NTdCM1xcdTU3QjVcXHU1N0I2XFx1NTdCN1xcdTU3QjlcIiwgOCwgXCJcXHU1N0M0XCIsIDYsIFwiXFx1NTdDQ1xcdTU3Q0RcXHU1N0QwXFx1NTdEMVxcdTU3RDNcXHU1N0Q2XFx1NTdEN1xcdTU3REJcXHU1N0RDXFx1NTdERVxcdTU3RTFcXHU1N0UyXFx1NTdFM1xcdTU3RTVcIiwgNywgXCJcXHU1N0VFXFx1NTdGMFxcdTU3RjFcXHU1N0YyXFx1NTdGM1xcdTU3RjVcXHU1N0Y2XFx1NTdGN1xcdTU3RkJcXHU1N0ZDXFx1NTdGRVxcdTU3RkZcXHU1ODAxXFx1NTgwM1xcdTU4MDRcXHU1ODA1XFx1NTgwOFxcdTU4MDlcXHU1ODBBXFx1NTgwQ1xcdTU4MEVcXHU1ODBGXFx1NTgxMFxcdTU4MTJcXHU1ODEzXFx1NTgxNFxcdTU4MTZcXHU1ODE3XFx1NTgxOFxcdTU4MUFcXHU1ODFCXFx1NTgxQ1xcdTU4MURcXHU1ODFGXFx1NTgyMlxcdTU4MjNcXHU1ODI1XCIsIDQsIFwiXFx1NTgyQlwiLCA0LCBcIlxcdTU4MzFcXHU1ODMyXFx1NTgzM1xcdTU4MzRcXHU1ODM2XCIsIDddLFxuICAgICAgW1wiODk0MFwiLCBcIlxcdTU4M0VcIiwgNSwgXCJcXHU1ODQ1XCIsIDYsIFwiXFx1NTg0RVxcdTU4NEZcXHU1ODUwXFx1NTg1MlxcdTU4NTNcXHU1ODU1XFx1NTg1NlxcdTU4NTdcXHU1ODU5XCIsIDQsIFwiXFx1NTg1RlwiLCA1LCBcIlxcdTU4NjZcIiwgNCwgXCJcXHU1ODZEXCIsIDE2LCBcIlxcdTU4N0ZcXHU1ODgyXFx1NTg4NFxcdTU4ODZcXHU1ODg3XFx1NTg4OFxcdTU4OEFcXHU1ODhCXFx1NTg4Q1wiXSxcbiAgICAgIFtcIjg5ODBcIiwgXCJcXHU1ODhEXCIsIDQsIFwiXFx1NTg5NFwiLCA0LCBcIlxcdTU4OUJcXHU1ODlDXFx1NTg5RFxcdTU4QTBcIiwgNywgXCJcXHU1OEFBXCIsIDE3LCBcIlxcdTU4QkRcXHU1OEJFXFx1NThCRlxcdTU4QzBcXHU1OEMyXFx1NThDM1xcdTU4QzRcXHU1OEM2XCIsIDEwLCBcIlxcdTU4RDJcXHU1OEQzXFx1NThENFxcdTU4RDZcIiwgMTMsIFwiXFx1NThFNVwiLCA1LCBcIlxcdTU4RURcXHU1OEVGXFx1NThGMVxcdTU4RjJcXHU1OEY0XFx1NThGNVxcdTU4RjdcXHU1OEY4XFx1NThGQVwiLCA3LCBcIlxcdTU5MDNcXHU1OTA1XFx1NTkwNlxcdTU5MDhcIiwgNCwgXCJcXHU1OTBFXFx1NTkxMFxcdTU5MTFcXHU1OTEyXFx1NTkxM1xcdTU5MTdcXHU1OTE4XFx1NTkxQlxcdTU5MURcXHU1OTFFXFx1NTkyMFxcdTU5MjFcXHU1OTIyXFx1NTkyM1xcdTU5MjZcXHU1OTI4XFx1NTkyQ1xcdTU5MzBcXHU1OTMyXFx1NTkzM1xcdTU5MzVcXHU1OTM2XFx1NTkzQlwiXSxcbiAgICAgIFtcIjhhNDBcIiwgXCJcXHU1OTNEXFx1NTkzRVxcdTU5M0ZcXHU1OTQwXFx1NTk0M1xcdTU5NDVcXHU1OTQ2XFx1NTk0QVxcdTU5NENcXHU1OTREXFx1NTk1MFxcdTU5NTJcXHU1OTUzXFx1NTk1OVxcdTU5NUJcIiwgNCwgXCJcXHU1OTYxXFx1NTk2M1xcdTU5NjRcXHU1OTY2XCIsIDEyLCBcIlxcdTU5NzVcXHU1OTc3XFx1NTk3QVxcdTU5N0JcXHU1OTdDXFx1NTk3RVxcdTU5N0ZcXHU1OTgwXFx1NTk4NVxcdTU5ODlcXHU1OThCXFx1NTk4Q1xcdTU5OEVcXHU1OThGXFx1NTk5MFxcdTU5OTFcXHU1OTk0XFx1NTk5NVxcdTU5OThcXHU1OTlBXFx1NTk5QlxcdTU5OUNcXHU1OTlEXFx1NTk5RlxcdTU5QTBcXHU1OUExXFx1NTlBMlxcdTU5QTZcIl0sXG4gICAgICBbXCI4YTgwXCIsIFwiXFx1NTlBN1xcdTU5QUNcXHU1OUFEXFx1NTlCMFxcdTU5QjFcXHU1OUIzXCIsIDUsIFwiXFx1NTlCQVxcdTU5QkNcXHU1OUJEXFx1NTlCRlwiLCA2LCBcIlxcdTU5QzdcXHU1OUM4XFx1NTlDOVxcdTU5Q0NcXHU1OUNEXFx1NTlDRVxcdTU5Q0ZcXHU1OUQ1XFx1NTlENlxcdTU5RDlcXHU1OURCXFx1NTlERVwiLCA0LCBcIlxcdTU5RTRcXHU1OUU2XFx1NTlFN1xcdTU5RTlcXHU1OUVBXFx1NTlFQlxcdTU5RURcIiwgMTEsIFwiXFx1NTlGQVxcdTU5RkNcXHU1OUZEXFx1NTlGRVxcdTVBMDBcXHU1QTAyXFx1NUEwQVxcdTVBMEJcXHU1QTBEXFx1NUEwRVxcdTVBMEZcXHU1QTEwXFx1NUExMlxcdTVBMTRcXHU1QTE1XFx1NUExNlxcdTVBMTdcXHU1QTE5XFx1NUExQVxcdTVBMUJcXHU1QTFEXFx1NUExRVxcdTVBMjFcXHU1QTIyXFx1NUEyNFxcdTVBMjZcXHU1QTI3XFx1NUEyOFxcdTVBMkFcIiwgNiwgXCJcXHU1QTMzXFx1NUEzNVxcdTVBMzdcIiwgNCwgXCJcXHU1QTNEXFx1NUEzRVxcdTVBM0ZcXHU1QTQxXCIsIDQsIFwiXFx1NUE0N1xcdTVBNDhcXHU1QTRCXCIsIDksIFwiXFx1NUE1NlxcdTVBNTdcXHU1QTU4XFx1NUE1OVxcdTVBNUJcIiwgNV0sXG4gICAgICBbXCI4YjQwXCIsIFwiXFx1NUE2MVxcdTVBNjNcXHU1QTY0XFx1NUE2NVxcdTVBNjZcXHU1QTY4XFx1NUE2OVxcdTVBNkJcIiwgOCwgXCJcXHU1QTc4XFx1NUE3OVxcdTVBN0JcXHU1QTdDXFx1NUE3RFxcdTVBN0VcXHU1QTgwXCIsIDE3LCBcIlxcdTVBOTNcIiwgNiwgXCJcXHU1QTlDXCIsIDEzLCBcIlxcdTVBQUJcXHU1QUFDXCJdLFxuICAgICAgW1wiOGI4MFwiLCBcIlxcdTVBQURcIiwgNCwgXCJcXHU1QUI0XFx1NUFCNlxcdTVBQjdcXHU1QUI5XCIsIDQsIFwiXFx1NUFCRlxcdTVBQzBcXHU1QUMzXCIsIDUsIFwiXFx1NUFDQVxcdTVBQ0JcXHU1QUNEXCIsIDQsIFwiXFx1NUFEM1xcdTVBRDVcXHU1QUQ3XFx1NUFEOVxcdTVBREFcXHU1QURCXFx1NUFERFxcdTVBREVcXHU1QURGXFx1NUFFMlxcdTVBRTRcXHU1QUU1XFx1NUFFN1xcdTVBRThcXHU1QUVBXFx1NUFFQ1wiLCA0LCBcIlxcdTVBRjJcIiwgMjIsIFwiXFx1NUIwQVwiLCAxMSwgXCJcXHU1QjE4XCIsIDI1LCBcIlxcdTVCMzNcXHU1QjM1XFx1NUIzNlxcdTVCMzhcIiwgNywgXCJcXHU1QjQxXCIsIDZdLFxuICAgICAgW1wiOGM0MFwiLCBcIlxcdTVCNDhcIiwgNywgXCJcXHU1QjUyXFx1NUI1NlxcdTVCNUVcXHU1QjYwXFx1NUI2MVxcdTVCNjdcXHU1QjY4XFx1NUI2QlxcdTVCNkRcXHU1QjZFXFx1NUI2RlxcdTVCNzJcXHU1Qjc0XFx1NUI3NlxcdTVCNzdcXHU1Qjc4XFx1NUI3OVxcdTVCN0JcXHU1QjdDXFx1NUI3RVxcdTVCN0ZcXHU1QjgyXFx1NUI4NlxcdTVCOEFcXHU1QjhEXFx1NUI4RVxcdTVCOTBcXHU1QjkxXFx1NUI5MlxcdTVCOTRcXHU1Qjk2XFx1NUI5RlxcdTVCQTdcXHU1QkE4XFx1NUJBOVxcdTVCQUNcXHU1QkFEXFx1NUJBRVxcdTVCQUZcXHU1QkIxXFx1NUJCMlxcdTVCQjdcXHU1QkJBXFx1NUJCQlxcdTVCQkNcXHU1QkMwXFx1NUJDMVxcdTVCQzNcXHU1QkM4XFx1NUJDOVxcdTVCQ0FcXHU1QkNCXFx1NUJDRFxcdTVCQ0VcXHU1QkNGXCJdLFxuICAgICAgW1wiOGM4MFwiLCBcIlxcdTVCRDFcXHU1QkQ0XCIsIDgsIFwiXFx1NUJFMFxcdTVCRTJcXHU1QkUzXFx1NUJFNlxcdTVCRTdcXHU1QkU5XCIsIDQsIFwiXFx1NUJFRlxcdTVCRjFcIiwgNiwgXCJcXHU1QkZEXFx1NUJGRVxcdTVDMDBcXHU1QzAyXFx1NUMwM1xcdTVDMDVcXHU1QzA3XFx1NUMwOFxcdTVDMEJcXHU1QzBDXFx1NUMwRFxcdTVDMEVcXHU1QzEwXFx1NUMxMlxcdTVDMTNcXHU1QzE3XFx1NUMxOVxcdTVDMUJcXHU1QzFFXFx1NUMxRlxcdTVDMjBcXHU1QzIxXFx1NUMyM1xcdTVDMjZcXHU1QzI4XFx1NUMyOVxcdTVDMkFcXHU1QzJCXFx1NUMyRFxcdTVDMkVcXHU1QzJGXFx1NUMzMFxcdTVDMzJcXHU1QzMzXFx1NUMzNVxcdTVDMzZcXHU1QzM3XFx1NUM0M1xcdTVDNDRcXHU1QzQ2XFx1NUM0N1xcdTVDNENcXHU1QzREXFx1NUM1MlxcdTVDNTNcXHU1QzU0XFx1NUM1NlxcdTVDNTdcXHU1QzU4XFx1NUM1QVxcdTVDNUJcXHU1QzVDXFx1NUM1RFxcdTVDNUZcXHU1QzYyXFx1NUM2NFxcdTVDNjdcIiwgNiwgXCJcXHU1QzcwXFx1NUM3MlwiLCA2LCBcIlxcdTVDN0JcXHU1QzdDXFx1NUM3RFxcdTVDN0VcXHU1QzgwXFx1NUM4M1wiLCA0LCBcIlxcdTVDODlcXHU1QzhBXFx1NUM4QlxcdTVDOEVcXHU1QzhGXFx1NUM5MlxcdTVDOTNcXHU1Qzk1XFx1NUM5RFwiLCA0LCBcIlxcdTVDQTRcIiwgNF0sXG4gICAgICBbXCI4ZDQwXCIsIFwiXFx1NUNBQVxcdTVDQUVcXHU1Q0FGXFx1NUNCMFxcdTVDQjJcXHU1Q0I0XFx1NUNCNlxcdTVDQjlcXHU1Q0JBXFx1NUNCQlxcdTVDQkNcXHU1Q0JFXFx1NUNDMFxcdTVDQzJcXHU1Q0MzXFx1NUNDNVwiLCA1LCBcIlxcdTVDQ0NcIiwgNSwgXCJcXHU1Q0QzXCIsIDUsIFwiXFx1NUNEQVwiLCA2LCBcIlxcdTVDRTJcXHU1Q0UzXFx1NUNFN1xcdTVDRTlcXHU1Q0VCXFx1NUNFQ1xcdTVDRUVcXHU1Q0VGXFx1NUNGMVwiLCA5LCBcIlxcdTVDRkNcIiwgNF0sXG4gICAgICBbXCI4ZDgwXCIsIFwiXFx1NUQwMVxcdTVEMDRcXHU1RDA1XFx1NUQwOFwiLCA1LCBcIlxcdTVEMEZcIiwgNCwgXCJcXHU1RDE1XFx1NUQxN1xcdTVEMThcXHU1RDE5XFx1NUQxQVxcdTVEMUNcXHU1RDFEXFx1NUQxRlwiLCA0LCBcIlxcdTVEMjVcXHU1RDI4XFx1NUQyQVxcdTVEMkJcXHU1RDJDXFx1NUQyRlwiLCA0LCBcIlxcdTVEMzVcIiwgNywgXCJcXHU1RDNGXCIsIDcsIFwiXFx1NUQ0OFxcdTVENDlcXHU1RDREXCIsIDEwLCBcIlxcdTVENTlcXHU1RDVBXFx1NUQ1Q1xcdTVENUVcIiwgMTAsIFwiXFx1NUQ2QVxcdTVENkRcXHU1RDZFXFx1NUQ3MFxcdTVENzFcXHU1RDcyXFx1NUQ3M1xcdTVENzVcIiwgMTIsIFwiXFx1NUQ4M1wiLCAyMSwgXCJcXHU1RDlBXFx1NUQ5QlxcdTVEOUNcXHU1RDlFXFx1NUQ5RlxcdTVEQTBcIl0sXG4gICAgICBbXCI4ZTQwXCIsIFwiXFx1NURBMVwiLCAyMSwgXCJcXHU1REI4XCIsIDEyLCBcIlxcdTVEQzZcIiwgNiwgXCJcXHU1RENFXCIsIDEyLCBcIlxcdTVERENcXHU1RERGXFx1NURFMFxcdTVERTNcXHU1REU0XFx1NURFQVxcdTVERUNcXHU1REVEXCJdLFxuICAgICAgW1wiOGU4MFwiLCBcIlxcdTVERjBcXHU1REY1XFx1NURGNlxcdTVERjhcIiwgNCwgXCJcXHU1REZGXFx1NUUwMFxcdTVFMDRcXHU1RTA3XFx1NUUwOVxcdTVFMEFcXHU1RTBCXFx1NUUwRFxcdTVFMEVcXHU1RTEyXFx1NUUxM1xcdTVFMTdcXHU1RTFFXCIsIDcsIFwiXFx1NUUyOFwiLCA0LCBcIlxcdTVFMkZcXHU1RTMwXFx1NUUzMlwiLCA0LCBcIlxcdTVFMzlcXHU1RTNBXFx1NUUzRVxcdTVFM0ZcXHU1RTQwXFx1NUU0MVxcdTVFNDNcXHU1RTQ2XCIsIDUsIFwiXFx1NUU0RFwiLCA2LCBcIlxcdTVFNTZcIiwgNCwgXCJcXHU1RTVDXFx1NUU1RFxcdTVFNUZcXHU1RTYwXFx1NUU2M1wiLCAxNCwgXCJcXHU1RTc1XFx1NUU3N1xcdTVFNzlcXHU1RTdFXFx1NUU4MVxcdTVFODJcXHU1RTgzXFx1NUU4NVxcdTVFODhcXHU1RTg5XFx1NUU4Q1xcdTVFOERcXHU1RThFXFx1NUU5MlxcdTVFOThcXHU1RTlCXFx1NUU5RFxcdTVFQTFcXHU1RUEyXFx1NUVBM1xcdTVFQTRcXHU1RUE4XCIsIDQsIFwiXFx1NUVBRVwiLCA0LCBcIlxcdTVFQjRcXHU1RUJBXFx1NUVCQlxcdTVFQkNcXHU1RUJEXFx1NUVCRlwiLCA2XSxcbiAgICAgIFtcIjhmNDBcIiwgXCJcXHU1RUM2XFx1NUVDN1xcdTVFQzhcXHU1RUNCXCIsIDUsIFwiXFx1NUVENFxcdTVFRDVcXHU1RUQ3XFx1NUVEOFxcdTVFRDlcXHU1RURBXFx1NUVEQ1wiLCAxMSwgXCJcXHU1RUU5XFx1NUVFQlwiLCA4LCBcIlxcdTVFRjVcXHU1RUY4XFx1NUVGOVxcdTVFRkJcXHU1RUZDXFx1NUVGRFxcdTVGMDVcXHU1RjA2XFx1NUYwN1xcdTVGMDlcXHU1RjBDXFx1NUYwRFxcdTVGMEVcXHU1RjEwXFx1NUYxMlxcdTVGMTRcXHU1RjE2XFx1NUYxOVxcdTVGMUFcXHU1RjFDXFx1NUYxRFxcdTVGMUVcXHU1RjIxXFx1NUYyMlxcdTVGMjNcXHU1RjI0XCJdLFxuICAgICAgW1wiOGY4MFwiLCBcIlxcdTVGMjhcXHU1RjJCXFx1NUYyQ1xcdTVGMkVcXHU1RjMwXFx1NUYzMlwiLCA2LCBcIlxcdTVGM0JcXHU1RjNEXFx1NUYzRVxcdTVGM0ZcXHU1RjQxXCIsIDE0LCBcIlxcdTVGNTFcXHU1RjU0XFx1NUY1OVxcdTVGNUFcXHU1RjVCXFx1NUY1Q1xcdTVGNUVcXHU1RjVGXFx1NUY2MFxcdTVGNjNcXHU1RjY1XFx1NUY2N1xcdTVGNjhcXHU1RjZCXFx1NUY2RVxcdTVGNkZcXHU1RjcyXFx1NUY3NFxcdTVGNzVcXHU1Rjc2XFx1NUY3OFxcdTVGN0FcXHU1RjdEXFx1NUY3RVxcdTVGN0ZcXHU1RjgzXFx1NUY4NlxcdTVGOERcXHU1RjhFXFx1NUY4RlxcdTVGOTFcXHU1RjkzXFx1NUY5NFxcdTVGOTZcXHU1RjlBXFx1NUY5QlxcdTVGOURcXHU1RjlFXFx1NUY5RlxcdTVGQTBcXHU1RkEyXCIsIDUsIFwiXFx1NUZBOVxcdTVGQUJcXHU1RkFDXFx1NUZBRlwiLCA1LCBcIlxcdTVGQjZcXHU1RkI4XFx1NUZCOVxcdTVGQkFcXHU1RkJCXFx1NUZCRVwiLCA0LCBcIlxcdTVGQzdcXHU1RkM4XFx1NUZDQVxcdTVGQ0JcXHU1RkNFXFx1NUZEM1xcdTVGRDRcXHU1RkQ1XFx1NUZEQVxcdTVGREJcXHU1RkRDXFx1NUZERVxcdTVGREZcXHU1RkUyXFx1NUZFM1xcdTVGRTVcXHU1RkU2XFx1NUZFOFxcdTVGRTlcXHU1RkVDXFx1NUZFRlxcdTVGRjBcXHU1RkYyXFx1NUZGM1xcdTVGRjRcXHU1RkY2XFx1NUZGN1xcdTVGRjlcXHU1RkZBXFx1NUZGQ1xcdTYwMDdcIl0sXG4gICAgICBbXCI5MDQwXCIsIFwiXFx1NjAwOFxcdTYwMDlcXHU2MDBCXFx1NjAwQ1xcdTYwMTBcXHU2MDExXFx1NjAxM1xcdTYwMTdcXHU2MDE4XFx1NjAxQVxcdTYwMUVcXHU2MDFGXFx1NjAyMlxcdTYwMjNcXHU2MDI0XFx1NjAyQ1xcdTYwMkRcXHU2MDJFXFx1NjAzMFwiLCA0LCBcIlxcdTYwMzZcIiwgNCwgXCJcXHU2MDNEXFx1NjAzRVxcdTYwNDBcXHU2MDQ0XCIsIDYsIFwiXFx1NjA0Q1xcdTYwNEVcXHU2MDRGXFx1NjA1MVxcdTYwNTNcXHU2MDU0XFx1NjA1NlxcdTYwNTdcXHU2MDU4XFx1NjA1QlxcdTYwNUNcXHU2MDVFXFx1NjA1RlxcdTYwNjBcXHU2MDYxXFx1NjA2NVxcdTYwNjZcXHU2MDZFXFx1NjA3MVxcdTYwNzJcXHU2MDc0XFx1NjA3NVxcdTYwNzdcXHU2MDdFXFx1NjA4MFwiXSxcbiAgICAgIFtcIjkwODBcIiwgXCJcXHU2MDgxXFx1NjA4MlxcdTYwODVcXHU2MDg2XFx1NjA4N1xcdTYwODhcXHU2MDhBXFx1NjA4QlxcdTYwOEVcXHU2MDhGXFx1NjA5MFxcdTYwOTFcXHU2MDkzXFx1NjA5NVxcdTYwOTdcXHU2MDk4XFx1NjA5OVxcdTYwOUNcXHU2MDlFXFx1NjBBMVxcdTYwQTJcXHU2MEE0XFx1NjBBNVxcdTYwQTdcXHU2MEE5XFx1NjBBQVxcdTYwQUVcXHU2MEIwXFx1NjBCM1xcdTYwQjVcXHU2MEI2XFx1NjBCN1xcdTYwQjlcXHU2MEJBXFx1NjBCRFwiLCA3LCBcIlxcdTYwQzdcXHU2MEM4XFx1NjBDOVxcdTYwQ0NcIiwgNCwgXCJcXHU2MEQyXFx1NjBEM1xcdTYwRDRcXHU2MEQ2XFx1NjBEN1xcdTYwRDlcXHU2MERCXFx1NjBERVxcdTYwRTFcIiwgNCwgXCJcXHU2MEVBXFx1NjBGMVxcdTYwRjJcXHU2MEY1XFx1NjBGN1xcdTYwRjhcXHU2MEZCXCIsIDQsIFwiXFx1NjEwMlxcdTYxMDNcXHU2MTA0XFx1NjEwNVxcdTYxMDdcXHU2MTBBXFx1NjEwQlxcdTYxMENcXHU2MTEwXCIsIDQsIFwiXFx1NjExNlxcdTYxMTdcXHU2MTE4XFx1NjExOVxcdTYxMUJcXHU2MTFDXFx1NjExRFxcdTYxMUVcXHU2MTIxXFx1NjEyMlxcdTYxMjVcXHU2MTI4XFx1NjEyOVxcdTYxMkFcXHU2MTJDXCIsIDE4LCBcIlxcdTYxNDBcIiwgNl0sXG4gICAgICBbXCI5MTQwXCIsIFwiXFx1NjE0N1xcdTYxNDlcXHU2MTRCXFx1NjE0RFxcdTYxNEZcXHU2MTUwXFx1NjE1MlxcdTYxNTNcXHU2MTU0XFx1NjE1NlwiLCA2LCBcIlxcdTYxNUVcXHU2MTVGXFx1NjE2MFxcdTYxNjFcXHU2MTYzXFx1NjE2NFxcdTYxNjVcXHU2MTY2XFx1NjE2OVwiLCA2LCBcIlxcdTYxNzFcXHU2MTcyXFx1NjE3M1xcdTYxNzRcXHU2MTc2XFx1NjE3OFwiLCAxOCwgXCJcXHU2MThDXFx1NjE4RFxcdTYxOEZcIiwgNCwgXCJcXHU2MTk1XCJdLFxuICAgICAgW1wiOTE4MFwiLCBcIlxcdTYxOTZcIiwgNiwgXCJcXHU2MTlFXCIsIDgsIFwiXFx1NjFBQVxcdTYxQUJcXHU2MUFEXCIsIDksIFwiXFx1NjFCOFwiLCA1LCBcIlxcdTYxQkZcXHU2MUMwXFx1NjFDMVxcdTYxQzNcIiwgNCwgXCJcXHU2MUM5XFx1NjFDQ1wiLCA0LCBcIlxcdTYxRDNcXHU2MUQ1XCIsIDE2LCBcIlxcdTYxRTdcIiwgMTMsIFwiXFx1NjFGNlwiLCA4LCBcIlxcdTYyMDBcIiwgNSwgXCJcXHU2MjA3XFx1NjIwOVxcdTYyMTNcXHU2MjE0XFx1NjIxOVxcdTYyMUNcXHU2MjFEXFx1NjIxRVxcdTYyMjBcXHU2MjIzXFx1NjIyNlxcdTYyMjdcXHU2MjI4XFx1NjIyOVxcdTYyMkJcXHU2MjJEXFx1NjIyRlxcdTYyMzBcXHU2MjMxXFx1NjIzMlxcdTYyMzVcXHU2MjM2XFx1NjIzOFwiLCA0LCBcIlxcdTYyNDJcXHU2MjQ0XFx1NjI0NVxcdTYyNDZcXHU2MjRBXCJdLFxuICAgICAgW1wiOTI0MFwiLCBcIlxcdTYyNEZcXHU2MjUwXFx1NjI1NVxcdTYyNTZcXHU2MjU3XFx1NjI1OVxcdTYyNUFcXHU2MjVDXCIsIDYsIFwiXFx1NjI2NFxcdTYyNjVcXHU2MjY4XFx1NjI3MVxcdTYyNzJcXHU2Mjc0XFx1NjI3NVxcdTYyNzdcXHU2Mjc4XFx1NjI3QVxcdTYyN0JcXHU2MjdEXFx1NjI4MVxcdTYyODJcXHU2MjgzXFx1NjI4NVxcdTYyODZcXHU2Mjg3XFx1NjI4OFxcdTYyOEJcIiwgNSwgXCJcXHU2Mjk0XFx1NjI5OVxcdTYyOUNcXHU2MjlEXFx1NjI5RVxcdTYyQTNcXHU2MkE2XFx1NjJBN1xcdTYyQTlcXHU2MkFBXFx1NjJBRFxcdTYyQUVcXHU2MkFGXFx1NjJCMFxcdTYyQjJcXHU2MkIzXFx1NjJCNFxcdTYyQjZcXHU2MkI3XFx1NjJCOFxcdTYyQkFcXHU2MkJFXFx1NjJDMFxcdTYyQzFcIl0sXG4gICAgICBbXCI5MjgwXCIsIFwiXFx1NjJDM1xcdTYyQ0JcXHU2MkNGXFx1NjJEMVxcdTYyRDVcXHU2MkREXFx1NjJERVxcdTYyRTBcXHU2MkUxXFx1NjJFNFxcdTYyRUFcXHU2MkVCXFx1NjJGMFxcdTYyRjJcXHU2MkY1XFx1NjJGOFxcdTYyRjlcXHU2MkZBXFx1NjJGQlxcdTYzMDBcXHU2MzAzXFx1NjMwNFxcdTYzMDVcXHU2MzA2XFx1NjMwQVxcdTYzMEJcXHU2MzBDXFx1NjMwRFxcdTYzMEZcXHU2MzEwXFx1NjMxMlxcdTYzMTNcXHU2MzE0XFx1NjMxNVxcdTYzMTdcXHU2MzE4XFx1NjMxOVxcdTYzMUNcXHU2MzI2XFx1NjMyN1xcdTYzMjlcXHU2MzJDXFx1NjMyRFxcdTYzMkVcXHU2MzMwXFx1NjMzMVxcdTYzMzNcIiwgNSwgXCJcXHU2MzNCXFx1NjMzQ1xcdTYzM0VcXHU2MzNGXFx1NjM0MFxcdTYzNDFcXHU2MzQ0XFx1NjM0N1xcdTYzNDhcXHU2MzRBXFx1NjM1MVxcdTYzNTJcXHU2MzUzXFx1NjM1NFxcdTYzNTZcIiwgNywgXCJcXHU2MzYwXFx1NjM2NFxcdTYzNjVcXHU2MzY2XFx1NjM2OFxcdTYzNkFcXHU2MzZCXFx1NjM2Q1xcdTYzNkZcXHU2MzcwXFx1NjM3MlxcdTYzNzNcXHU2Mzc0XFx1NjM3NVxcdTYzNzhcXHU2Mzc5XFx1NjM3Q1xcdTYzN0RcXHU2MzdFXFx1NjM3RlxcdTYzODFcXHU2MzgzXFx1NjM4NFxcdTYzODVcXHU2Mzg2XFx1NjM4QlxcdTYzOERcXHU2MzkxXFx1NjM5M1xcdTYzOTRcXHU2Mzk1XFx1NjM5N1xcdTYzOTlcIiwgNiwgXCJcXHU2M0ExXFx1NjNBNFxcdTYzQTZcXHU2M0FCXFx1NjNBRlxcdTYzQjFcXHU2M0IyXFx1NjNCNVxcdTYzQjZcXHU2M0I5XFx1NjNCQlxcdTYzQkRcXHU2M0JGXFx1NjNDMFwiXSxcbiAgICAgIFtcIjkzNDBcIiwgXCJcXHU2M0MxXFx1NjNDMlxcdTYzQzNcXHU2M0M1XFx1NjNDN1xcdTYzQzhcXHU2M0NBXFx1NjNDQlxcdTYzQ0NcXHU2M0QxXFx1NjNEM1xcdTYzRDRcXHU2M0Q1XFx1NjNEN1wiLCA2LCBcIlxcdTYzREZcXHU2M0UyXFx1NjNFNFwiLCA0LCBcIlxcdTYzRUJcXHU2M0VDXFx1NjNFRVxcdTYzRUZcXHU2M0YwXFx1NjNGMVxcdTYzRjNcXHU2M0Y1XFx1NjNGN1xcdTYzRjlcXHU2M0ZBXFx1NjNGQlxcdTYzRkNcXHU2M0ZFXFx1NjQwM1xcdTY0MDRcXHU2NDA2XCIsIDQsIFwiXFx1NjQwRFxcdTY0MEVcXHU2NDExXFx1NjQxMlxcdTY0MTVcIiwgNSwgXCJcXHU2NDFEXFx1NjQxRlxcdTY0MjJcXHU2NDIzXFx1NjQyNFwiXSxcbiAgICAgIFtcIjkzODBcIiwgXCJcXHU2NDI1XFx1NjQyN1xcdTY0MjhcXHU2NDI5XFx1NjQyQlxcdTY0MkVcIiwgNSwgXCJcXHU2NDM1XCIsIDQsIFwiXFx1NjQzQlxcdTY0M0NcXHU2NDNFXFx1NjQ0MFxcdTY0NDJcXHU2NDQzXFx1NjQ0OVxcdTY0NEJcIiwgNiwgXCJcXHU2NDUzXFx1NjQ1NVxcdTY0NTZcXHU2NDU3XFx1NjQ1OVwiLCA0LCBcIlxcdTY0NUZcIiwgNywgXCJcXHU2NDY4XFx1NjQ2QVxcdTY0NkJcXHU2NDZDXFx1NjQ2RVwiLCA5LCBcIlxcdTY0N0JcIiwgNiwgXCJcXHU2NDgzXFx1NjQ4NlxcdTY0ODhcIiwgOCwgXCJcXHU2NDkzXFx1NjQ5NFxcdTY0OTdcXHU2NDk4XFx1NjQ5QVxcdTY0OUJcXHU2NDlDXFx1NjQ5RFxcdTY0OUZcIiwgNCwgXCJcXHU2NEE1XFx1NjRBNlxcdTY0QTdcXHU2NEE4XFx1NjRBQVxcdTY0QUJcXHU2NEFGXFx1NjRCMVxcdTY0QjJcXHU2NEIzXFx1NjRCNFxcdTY0QjZcXHU2NEI5XFx1NjRCQlxcdTY0QkRcXHU2NEJFXFx1NjRCRlxcdTY0QzFcXHU2NEMzXFx1NjRDNFxcdTY0QzZcIiwgNiwgXCJcXHU2NENGXFx1NjREMVxcdTY0RDNcXHU2NEQ0XFx1NjRENVxcdTY0RDZcXHU2NEQ5XFx1NjREQVwiXSxcbiAgICAgIFtcIjk0NDBcIiwgXCJcXHU2NERCXFx1NjREQ1xcdTY0RERcXHU2NERGXFx1NjRFMFxcdTY0RTFcXHU2NEUzXFx1NjRFNVxcdTY0RTdcIiwgMjQsIFwiXFx1NjUwMVwiLCA3LCBcIlxcdTY1MEFcIiwgNywgXCJcXHU2NTEzXCIsIDQsIFwiXFx1NjUxOVwiLCA4XSxcbiAgICAgIFtcIjk0ODBcIiwgXCJcXHU2NTIyXFx1NjUyM1xcdTY1MjRcXHU2NTI2XCIsIDQsIFwiXFx1NjUyQ1xcdTY1MkRcXHU2NTMwXFx1NjUzMVxcdTY1MzJcXHU2NTMzXFx1NjUzN1xcdTY1M0FcXHU2NTNDXFx1NjUzRFxcdTY1NDBcIiwgNCwgXCJcXHU2NTQ2XFx1NjU0N1xcdTY1NEFcXHU2NTRCXFx1NjU0RFxcdTY1NEVcXHU2NTUwXFx1NjU1MlxcdTY1NTNcXHU2NTU0XFx1NjU1N1xcdTY1NThcXHU2NTVBXFx1NjU1Q1xcdTY1NUZcXHU2NTYwXFx1NjU2MVxcdTY1NjRcXHU2NTY1XFx1NjU2N1xcdTY1NjhcXHU2NTY5XFx1NjU2QVxcdTY1NkRcXHU2NTZFXFx1NjU2RlxcdTY1NzFcXHU2NTczXFx1NjU3NVxcdTY1NzZcXHU2NTc4XCIsIDE0LCBcIlxcdTY1ODhcXHU2NTg5XFx1NjU4QVxcdTY1OERcXHU2NThFXFx1NjU4RlxcdTY1OTJcXHU2NTk0XFx1NjU5NVxcdTY1OTZcXHU2NTk4XFx1NjU5QVxcdTY1OURcXHU2NTlFXFx1NjVBMFxcdTY1QTJcXHU2NUEzXFx1NjVBNlxcdTY1QThcXHU2NUFBXFx1NjVBQ1xcdTY1QUVcXHU2NUIxXCIsIDcsIFwiXFx1NjVCQVxcdTY1QkJcXHU2NUJFXFx1NjVCRlxcdTY1QzBcXHU2NUMyXFx1NjVDN1xcdTY1QzhcXHU2NUM5XFx1NjVDQVxcdTY1Q0RcXHU2NUQwXFx1NjVEMVxcdTY1RDNcXHU2NUQ0XFx1NjVENVxcdTY1RDhcIiwgNywgXCJcXHU2NUUxXFx1NjVFM1xcdTY1RTRcXHU2NUVBXFx1NjVFQlwiXSxcbiAgICAgIFtcIjk1NDBcIiwgXCJcXHU2NUYyXFx1NjVGM1xcdTY1RjRcXHU2NUY1XFx1NjVGOFxcdTY1RjlcXHU2NUZCXCIsIDQsIFwiXFx1NjYwMVxcdTY2MDRcXHU2NjA1XFx1NjYwN1xcdTY2MDhcXHU2NjA5XFx1NjYwQlxcdTY2MERcXHU2NjEwXFx1NjYxMVxcdTY2MTJcXHU2NjE2XFx1NjYxN1xcdTY2MThcXHU2NjFBXFx1NjYxQlxcdTY2MUNcXHU2NjFFXFx1NjYyMVxcdTY2MjJcXHU2NjIzXFx1NjYyNFxcdTY2MjZcXHU2NjI5XFx1NjYyQVxcdTY2MkJcXHU2NjJDXFx1NjYyRVxcdTY2MzBcXHU2NjMyXFx1NjYzM1xcdTY2MzdcIiwgNCwgXCJcXHU2NjNEXFx1NjYzRlxcdTY2NDBcXHU2NjQyXFx1NjY0NFwiLCA2LCBcIlxcdTY2NERcXHU2NjRFXFx1NjY1MFxcdTY2NTFcXHU2NjU4XCJdLFxuICAgICAgW1wiOTU4MFwiLCBcIlxcdTY2NTlcXHU2NjVCXFx1NjY1Q1xcdTY2NURcXHU2NjVFXFx1NjY2MFxcdTY2NjJcXHU2NjYzXFx1NjY2NVxcdTY2NjdcXHU2NjY5XCIsIDQsIFwiXFx1NjY3MVxcdTY2NzJcXHU2NjczXFx1NjY3NVxcdTY2NzhcXHU2Njc5XFx1NjY3QlxcdTY2N0NcXHU2NjdEXFx1NjY3RlxcdTY2ODBcXHU2NjgxXFx1NjY4M1xcdTY2ODVcXHU2Njg2XFx1NjY4OFxcdTY2ODlcXHU2NjhBXFx1NjY4QlxcdTY2OERcXHU2NjhFXFx1NjY4RlxcdTY2OTBcXHU2NjkyXFx1NjY5M1xcdTY2OTRcXHU2Njk1XFx1NjY5OFwiLCA0LCBcIlxcdTY2OUVcIiwgOCwgXCJcXHU2NkE5XCIsIDQsIFwiXFx1NjZBRlwiLCA0LCBcIlxcdTY2QjVcXHU2NkI2XFx1NjZCN1xcdTY2QjhcXHU2NkJBXFx1NjZCQlxcdTY2QkNcXHU2NkJEXFx1NjZCRlwiLCAyNSwgXCJcXHU2NkRBXFx1NjZERVwiLCA3LCBcIlxcdTY2RTdcXHU2NkU4XFx1NjZFQVwiLCA1LCBcIlxcdTY2RjFcXHU2NkY1XFx1NjZGNlxcdTY2RjhcXHU2NkZBXFx1NjZGQlxcdTY2RkRcXHU2NzAxXFx1NjcwMlxcdTY3MDNcIl0sXG4gICAgICBbXCI5NjQwXCIsIFwiXFx1NjcwNFxcdTY3MDVcXHU2NzA2XFx1NjcwN1xcdTY3MENcXHU2NzBFXFx1NjcwRlxcdTY3MTFcXHU2NzEyXFx1NjcxM1xcdTY3MTZcXHU2NzE4XFx1NjcxOVxcdTY3MUFcXHU2NzFDXFx1NjcxRVxcdTY3MjBcIiwgNSwgXCJcXHU2NzI3XFx1NjcyOVxcdTY3MkVcXHU2NzMwXFx1NjczMlxcdTY3MzNcXHU2NzM2XFx1NjczN1xcdTY3MzhcXHU2NzM5XFx1NjczQlxcdTY3M0NcXHU2NzNFXFx1NjczRlxcdTY3NDFcXHU2NzQ0XFx1Njc0NVxcdTY3NDdcXHU2NzRBXFx1Njc0QlxcdTY3NERcXHU2NzUyXFx1Njc1NFxcdTY3NTVcXHU2NzU3XCIsIDQsIFwiXFx1Njc1RFxcdTY3NjJcXHU2NzYzXFx1Njc2NFxcdTY3NjZcXHU2NzY3XFx1Njc2QlxcdTY3NkNcXHU2NzZFXFx1Njc3MVxcdTY3NzRcXHU2Nzc2XCJdLFxuICAgICAgW1wiOTY4MFwiLCBcIlxcdTY3NzhcXHU2Nzc5XFx1Njc3QVxcdTY3N0JcXHU2NzdEXFx1Njc4MFxcdTY3ODJcXHU2NzgzXFx1Njc4NVxcdTY3ODZcXHU2Nzg4XFx1Njc4QVxcdTY3OENcXHU2NzhEXFx1Njc4RVxcdTY3OEZcXHU2NzkxXFx1Njc5MlxcdTY3OTNcXHU2Nzk0XFx1Njc5NlxcdTY3OTlcXHU2NzlCXFx1Njc5RlxcdTY3QTBcXHU2N0ExXFx1NjdBNFxcdTY3QTZcXHU2N0E5XFx1NjdBQ1xcdTY3QUVcXHU2N0IxXFx1NjdCMlxcdTY3QjRcXHU2N0I5XCIsIDcsIFwiXFx1NjdDMlxcdTY3QzVcIiwgOSwgXCJcXHU2N0Q1XFx1NjdENlxcdTY3RDdcXHU2N0RCXFx1NjdERlxcdTY3RTFcXHU2N0UzXFx1NjdFNFxcdTY3RTZcXHU2N0U3XFx1NjdFOFxcdTY3RUFcXHU2N0VCXFx1NjdFRFxcdTY3RUVcXHU2N0YyXFx1NjdGNVwiLCA3LCBcIlxcdTY3RkVcXHU2ODAxXFx1NjgwMlxcdTY4MDNcXHU2ODA0XFx1NjgwNlxcdTY4MERcXHU2ODEwXFx1NjgxMlxcdTY4MTRcXHU2ODE1XFx1NjgxOFwiLCA0LCBcIlxcdTY4MUVcXHU2ODFGXFx1NjgyMFxcdTY4MjJcIiwgNiwgXCJcXHU2ODJCXCIsIDYsIFwiXFx1NjgzNFxcdTY4MzVcXHU2ODM2XFx1NjgzQVxcdTY4M0JcXHU2ODNGXFx1Njg0N1xcdTY4NEJcXHU2ODREXFx1Njg0RlxcdTY4NTJcXHU2ODU2XCIsIDVdLFxuICAgICAgW1wiOTc0MFwiLCBcIlxcdTY4NUNcXHU2ODVEXFx1Njg1RVxcdTY4NUZcXHU2ODZBXFx1Njg2Q1wiLCA3LCBcIlxcdTY4NzVcXHU2ODc4XCIsIDgsIFwiXFx1Njg4MlxcdTY4ODRcXHU2ODg3XCIsIDcsIFwiXFx1Njg5MFxcdTY4OTFcXHU2ODkyXFx1Njg5NFxcdTY4OTVcXHU2ODk2XFx1Njg5OFwiLCA5LCBcIlxcdTY4QTNcXHU2OEE0XFx1NjhBNVxcdTY4QTlcXHU2OEFBXFx1NjhBQlxcdTY4QUNcXHU2OEFFXFx1NjhCMVxcdTY4QjJcXHU2OEI0XFx1NjhCNlxcdTY4QjdcXHU2OEI4XCJdLFxuICAgICAgW1wiOTc4MFwiLCBcIlxcdTY4QjlcIiwgNiwgXCJcXHU2OEMxXFx1NjhDM1wiLCA1LCBcIlxcdTY4Q0FcXHU2OENDXFx1NjhDRVxcdTY4Q0ZcXHU2OEQwXFx1NjhEMVxcdTY4RDNcXHU2OEQ0XFx1NjhENlxcdTY4RDdcXHU2OEQ5XFx1NjhEQlwiLCA0LCBcIlxcdTY4RTFcXHU2OEUyXFx1NjhFNFwiLCA5LCBcIlxcdTY4RUZcXHU2OEYyXFx1NjhGM1xcdTY4RjRcXHU2OEY2XFx1NjhGN1xcdTY4RjhcXHU2OEZCXFx1NjhGRFxcdTY4RkVcXHU2OEZGXFx1NjkwMFxcdTY5MDJcXHU2OTAzXFx1NjkwNFxcdTY5MDZcIiwgNCwgXCJcXHU2OTBDXFx1NjkwRlxcdTY5MTFcXHU2OTEzXCIsIDExLCBcIlxcdTY5MjFcXHU2OTIyXFx1NjkyM1xcdTY5MjVcIiwgNywgXCJcXHU2OTJFXFx1NjkyRlxcdTY5MzFcXHU2OTMyXFx1NjkzM1xcdTY5MzVcXHU2OTM2XFx1NjkzN1xcdTY5MzhcXHU2OTNBXFx1NjkzQlxcdTY5M0NcXHU2OTNFXFx1Njk0MFxcdTY5NDFcXHU2OTQzXCIsIDE2LCBcIlxcdTY5NTVcXHU2OTU2XFx1Njk1OFxcdTY5NTlcXHU2OTVCXFx1Njk1Q1xcdTY5NUZcIl0sXG4gICAgICBbXCI5ODQwXCIsIFwiXFx1Njk2MVxcdTY5NjJcXHU2OTY0XFx1Njk2NVxcdTY5NjdcXHU2OTY4XFx1Njk2OVxcdTY5NkFcXHU2OTZDXFx1Njk2RFxcdTY5NkZcXHU2OTcwXFx1Njk3MlwiLCA0LCBcIlxcdTY5N0FcXHU2OTdCXFx1Njk3RFxcdTY5N0VcXHU2OTdGXFx1Njk4MVxcdTY5ODNcXHU2OTg1XFx1Njk4QVxcdTY5OEJcXHU2OThDXFx1Njk4RVwiLCA1LCBcIlxcdTY5OTZcXHU2OTk3XFx1Njk5OVxcdTY5OUFcXHU2OTlEXCIsIDksIFwiXFx1NjlBOVxcdTY5QUFcXHU2OUFDXFx1NjlBRVxcdTY5QUZcXHU2OUIwXFx1NjlCMlxcdTY5QjNcXHU2OUI1XFx1NjlCNlxcdTY5QjhcXHU2OUI5XFx1NjlCQVxcdTY5QkNcXHU2OUJEXCJdLFxuICAgICAgW1wiOTg4MFwiLCBcIlxcdTY5QkVcXHU2OUJGXFx1NjlDMFxcdTY5QzJcIiwgNywgXCJcXHU2OUNCXFx1NjlDRFxcdTY5Q0ZcXHU2OUQxXFx1NjlEMlxcdTY5RDNcXHU2OUQ1XCIsIDUsIFwiXFx1NjlEQ1xcdTY5RERcXHU2OURFXFx1NjlFMVwiLCAxMSwgXCJcXHU2OUVFXFx1NjlFRlxcdTY5RjBcXHU2OUYxXFx1NjlGM1wiLCA5LCBcIlxcdTY5RkVcXHU2QTAwXCIsIDksIFwiXFx1NkEwQlwiLCAxMSwgXCJcXHU2QTE5XCIsIDUsIFwiXFx1NkEyMFxcdTZBMjJcIiwgNSwgXCJcXHU2QTI5XFx1NkEyQlxcdTZBMkNcXHU2QTJEXFx1NkEyRVxcdTZBMzBcXHU2QTMyXFx1NkEzM1xcdTZBMzRcXHU2QTM2XCIsIDYsIFwiXFx1NkEzRlwiLCA0LCBcIlxcdTZBNDVcXHU2QTQ2XFx1NkE0OFwiLCA3LCBcIlxcdTZBNTFcIiwgNiwgXCJcXHU2QTVBXCJdLFxuICAgICAgW1wiOTk0MFwiLCBcIlxcdTZBNUNcIiwgNCwgXCJcXHU2QTYyXFx1NkE2M1xcdTZBNjRcXHU2QTY2XCIsIDEwLCBcIlxcdTZBNzJcIiwgNiwgXCJcXHU2QTdBXFx1NkE3QlxcdTZBN0RcXHU2QTdFXFx1NkE3RlxcdTZBODFcXHU2QTgyXFx1NkE4M1xcdTZBODVcIiwgOCwgXCJcXHU2QThGXFx1NkE5MlwiLCA0LCBcIlxcdTZBOThcIiwgNywgXCJcXHU2QUExXCIsIDVdLFxuICAgICAgW1wiOTk4MFwiLCBcIlxcdTZBQTdcXHU2QUE4XFx1NkFBQVxcdTZBQURcIiwgMTE0LCBcIlxcdTZCMjVcXHU2QjI2XFx1NkIyOFwiLCA2XSxcbiAgICAgIFtcIjlhNDBcIiwgXCJcXHU2QjJGXFx1NkIzMFxcdTZCMzFcXHU2QjMzXFx1NkIzNFxcdTZCMzVcXHU2QjM2XFx1NkIzOFxcdTZCM0JcXHU2QjNDXFx1NkIzRFxcdTZCM0ZcXHU2QjQwXFx1NkI0MVxcdTZCNDJcXHU2QjQ0XFx1NkI0NVxcdTZCNDhcXHU2QjRBXFx1NkI0QlxcdTZCNERcIiwgMTEsIFwiXFx1NkI1QVwiLCA3LCBcIlxcdTZCNjhcXHU2QjY5XFx1NkI2QlwiLCAxMywgXCJcXHU2QjdBXFx1NkI3RFxcdTZCN0VcXHU2QjdGXFx1NkI4MFxcdTZCODVcXHU2Qjg4XCJdLFxuICAgICAgW1wiOWE4MFwiLCBcIlxcdTZCOENcXHU2QjhFXFx1NkI4RlxcdTZCOTBcXHU2QjkxXFx1NkI5NFxcdTZCOTVcXHU2Qjk3XFx1NkI5OFxcdTZCOTlcXHU2QjlDXCIsIDQsIFwiXFx1NkJBMlwiLCA3LCBcIlxcdTZCQUJcIiwgNywgXCJcXHU2QkI2XFx1NkJCOFwiLCA2LCBcIlxcdTZCQzBcXHU2QkMzXFx1NkJDNFxcdTZCQzZcIiwgNCwgXCJcXHU2QkNDXFx1NkJDRVxcdTZCRDBcXHU2QkQxXFx1NkJEOFxcdTZCREFcXHU2QkRDXCIsIDQsIFwiXFx1NkJFMlwiLCA3LCBcIlxcdTZCRUNcXHU2QkVEXFx1NkJFRVxcdTZCRjBcXHU2QkYxXFx1NkJGMlxcdTZCRjRcXHU2QkY2XFx1NkJGN1xcdTZCRjhcXHU2QkZBXFx1NkJGQlxcdTZCRkNcXHU2QkZFXCIsIDYsIFwiXFx1NkMwOFwiLCA0LCBcIlxcdTZDMEVcXHU2QzEyXFx1NkMxN1xcdTZDMUNcXHU2QzFEXFx1NkMxRVxcdTZDMjBcXHU2QzIzXFx1NkMyNVxcdTZDMkJcXHU2QzJDXFx1NkMyRFxcdTZDMzFcXHU2QzMzXFx1NkMzNlxcdTZDMzdcXHU2QzM5XFx1NkMzQVxcdTZDM0JcXHU2QzNDXFx1NkMzRVxcdTZDM0ZcXHU2QzQzXFx1NkM0NFxcdTZDNDVcXHU2QzQ4XFx1NkM0QlwiLCA0LCBcIlxcdTZDNTFcXHU2QzUyXFx1NkM1M1xcdTZDNTZcXHU2QzU4XCJdLFxuICAgICAgW1wiOWI0MFwiLCBcIlxcdTZDNTlcXHU2QzVBXFx1NkM2MlxcdTZDNjNcXHU2QzY1XFx1NkM2NlxcdTZDNjdcXHU2QzZCXCIsIDQsIFwiXFx1NkM3MVxcdTZDNzNcXHU2Qzc1XFx1NkM3N1xcdTZDNzhcXHU2QzdBXFx1NkM3QlxcdTZDN0NcXHU2QzdGXFx1NkM4MFxcdTZDODRcXHU2Qzg3XFx1NkM4QVxcdTZDOEJcXHU2QzhEXFx1NkM4RVxcdTZDOTFcXHU2QzkyXFx1NkM5NVxcdTZDOTZcXHU2Qzk3XFx1NkM5OFxcdTZDOUFcXHU2QzlDXFx1NkM5RFxcdTZDOUVcXHU2Q0EwXFx1NkNBMlxcdTZDQThcXHU2Q0FDXFx1NkNBRlxcdTZDQjBcXHU2Q0I0XFx1NkNCNVxcdTZDQjZcXHU2Q0I3XFx1NkNCQVxcdTZDQzBcXHU2Q0MxXFx1NkNDMlxcdTZDQzNcXHU2Q0M2XFx1NkNDN1xcdTZDQzhcXHU2Q0NCXFx1NkNDRFxcdTZDQ0VcXHU2Q0NGXFx1NkNEMVxcdTZDRDJcXHU2Q0Q4XCJdLFxuICAgICAgW1wiOWI4MFwiLCBcIlxcdTZDRDlcXHU2Q0RBXFx1NkNEQ1xcdTZDRERcXHU2Q0RGXFx1NkNFNFxcdTZDRTZcXHU2Q0U3XFx1NkNFOVxcdTZDRUNcXHU2Q0VEXFx1NkNGMlxcdTZDRjRcXHU2Q0Y5XFx1NkNGRlxcdTZEMDBcXHU2RDAyXFx1NkQwM1xcdTZEMDVcXHU2RDA2XFx1NkQwOFxcdTZEMDlcXHU2RDBBXFx1NkQwRFxcdTZEMEZcXHU2RDEwXFx1NkQxMVxcdTZEMTNcXHU2RDE0XFx1NkQxNVxcdTZEMTZcXHU2RDE4XFx1NkQxQ1xcdTZEMURcXHU2RDFGXCIsIDUsIFwiXFx1NkQyNlxcdTZEMjhcXHU2RDI5XFx1NkQyQ1xcdTZEMkRcXHU2RDJGXFx1NkQzMFxcdTZEMzRcXHU2RDM2XFx1NkQzN1xcdTZEMzhcXHU2RDNBXFx1NkQzRlxcdTZENDBcXHU2RDQyXFx1NkQ0NFxcdTZENDlcXHU2RDRDXFx1NkQ1MFxcdTZENTVcXHU2RDU2XFx1NkQ1N1xcdTZENThcXHU2RDVCXFx1NkQ1RFxcdTZENUZcXHU2RDYxXFx1NkQ2MlxcdTZENjRcXHU2RDY1XFx1NkQ2N1xcdTZENjhcXHU2RDZCXFx1NkQ2Q1xcdTZENkRcXHU2RDcwXFx1NkQ3MVxcdTZENzJcXHU2RDczXFx1NkQ3NVxcdTZENzZcXHU2RDc5XFx1NkQ3QVxcdTZEN0JcXHU2RDdEXCIsIDQsIFwiXFx1NkQ4M1xcdTZEODRcXHU2RDg2XFx1NkQ4N1xcdTZEOEFcXHU2RDhCXFx1NkQ4RFxcdTZEOEZcXHU2RDkwXFx1NkQ5MlxcdTZEOTZcIiwgNCwgXCJcXHU2RDlDXFx1NkRBMlxcdTZEQTVcXHU2REFDXFx1NkRBRFxcdTZEQjBcXHU2REIxXFx1NkRCM1xcdTZEQjRcXHU2REI2XFx1NkRCN1xcdTZEQjlcIiwgNSwgXCJcXHU2REMxXFx1NkRDMlxcdTZEQzNcXHU2REM4XFx1NkRDOVxcdTZEQ0FcIl0sXG4gICAgICBbXCI5YzQwXCIsIFwiXFx1NkRDRFxcdTZEQ0VcXHU2RENGXFx1NkREMFxcdTZERDJcXHU2REQzXFx1NkRENFxcdTZERDVcXHU2REQ3XFx1NkREQVxcdTZEREJcXHU2RERDXFx1NkRERlxcdTZERTJcXHU2REUzXFx1NkRFNVxcdTZERTdcXHU2REU4XFx1NkRFOVxcdTZERUFcXHU2REVEXFx1NkRFRlxcdTZERjBcXHU2REYyXFx1NkRGNFxcdTZERjVcXHU2REY2XFx1NkRGOFxcdTZERkFcXHU2REZEXCIsIDcsIFwiXFx1NkUwNlxcdTZFMDdcXHU2RTA4XFx1NkUwOVxcdTZFMEJcXHU2RTBGXFx1NkUxMlxcdTZFMTNcXHU2RTE1XFx1NkUxOFxcdTZFMTlcXHU2RTFCXFx1NkUxQ1xcdTZFMUVcXHU2RTFGXFx1NkUyMlxcdTZFMjZcXHU2RTI3XFx1NkUyOFxcdTZFMkFcXHU2RTJDXFx1NkUyRVxcdTZFMzBcXHU2RTMxXFx1NkUzM1xcdTZFMzVcIl0sXG4gICAgICBbXCI5YzgwXCIsIFwiXFx1NkUzNlxcdTZFMzdcXHU2RTM5XFx1NkUzQlwiLCA3LCBcIlxcdTZFNDVcIiwgNywgXCJcXHU2RTRGXFx1NkU1MFxcdTZFNTFcXHU2RTUyXFx1NkU1NVxcdTZFNTdcXHU2RTU5XFx1NkU1QVxcdTZFNUNcXHU2RTVEXFx1NkU1RVxcdTZFNjBcIiwgMTAsIFwiXFx1NkU2Q1xcdTZFNkRcXHU2RTZGXCIsIDE0LCBcIlxcdTZFODBcXHU2RTgxXFx1NkU4MlxcdTZFODRcXHU2RTg3XFx1NkU4OFxcdTZFOEFcIiwgNCwgXCJcXHU2RTkxXCIsIDYsIFwiXFx1NkU5OVxcdTZFOUFcXHU2RTlCXFx1NkU5RFxcdTZFOUVcXHU2RUEwXFx1NkVBMVxcdTZFQTNcXHU2RUE0XFx1NkVBNlxcdTZFQThcXHU2RUE5XFx1NkVBQlxcdTZFQUNcXHU2RUFEXFx1NkVBRVxcdTZFQjBcXHU2RUIzXFx1NkVCNVxcdTZFQjhcXHU2RUI5XFx1NkVCQ1xcdTZFQkVcXHU2RUJGXFx1NkVDMFxcdTZFQzNcXHU2RUM0XFx1NkVDNVxcdTZFQzZcXHU2RUM4XFx1NkVDOVxcdTZFQ0FcXHU2RUNDXFx1NkVDRFxcdTZFQ0VcXHU2RUQwXFx1NkVEMlxcdTZFRDZcXHU2RUQ4XFx1NkVEOVxcdTZFREJcXHU2RURDXFx1NkVERFxcdTZFRTNcXHU2RUU3XFx1NkVFQVwiLCA1XSxcbiAgICAgIFtcIjlkNDBcIiwgXCJcXHU2RUYwXFx1NkVGMVxcdTZFRjJcXHU2RUYzXFx1NkVGNVxcdTZFRjZcXHU2RUY3XFx1NkVGOFxcdTZFRkFcIiwgNywgXCJcXHU2RjAzXFx1NkYwNFxcdTZGMDVcXHU2RjA3XFx1NkYwOFxcdTZGMEFcIiwgNCwgXCJcXHU2RjEwXFx1NkYxMVxcdTZGMTJcXHU2RjE2XCIsIDksIFwiXFx1NkYyMVxcdTZGMjJcXHU2RjIzXFx1NkYyNVxcdTZGMjZcXHU2RjI3XFx1NkYyOFxcdTZGMkNcXHU2RjJFXFx1NkYzMFxcdTZGMzJcXHU2RjM0XFx1NkYzNVxcdTZGMzdcIiwgNiwgXCJcXHU2RjNGXFx1NkY0MFxcdTZGNDFcXHU2RjQyXCJdLFxuICAgICAgW1wiOWQ4MFwiLCBcIlxcdTZGNDNcXHU2RjQ0XFx1NkY0NVxcdTZGNDhcXHU2RjQ5XFx1NkY0QVxcdTZGNENcXHU2RjRFXCIsIDksIFwiXFx1NkY1OVxcdTZGNUFcXHU2RjVCXFx1NkY1RFxcdTZGNUZcXHU2RjYwXFx1NkY2MVxcdTZGNjNcXHU2RjY0XFx1NkY2NVxcdTZGNjdcIiwgNSwgXCJcXHU2RjZGXFx1NkY3MFxcdTZGNzFcXHU2RjczXFx1NkY3NVxcdTZGNzZcXHU2Rjc3XFx1NkY3OVxcdTZGN0JcXHU2RjdEXCIsIDYsIFwiXFx1NkY4NVxcdTZGODZcXHU2Rjg3XFx1NkY4QVxcdTZGOEJcXHU2RjhGXCIsIDEyLCBcIlxcdTZGOURcXHU2RjlFXFx1NkY5RlxcdTZGQTBcXHU2RkEyXCIsIDQsIFwiXFx1NkZBOFwiLCAxMCwgXCJcXHU2RkI0XFx1NkZCNVxcdTZGQjdcXHU2RkI4XFx1NkZCQVwiLCA1LCBcIlxcdTZGQzFcXHU2RkMzXCIsIDUsIFwiXFx1NkZDQVwiLCA2LCBcIlxcdTZGRDNcIiwgMTAsIFwiXFx1NkZERlxcdTZGRTJcXHU2RkUzXFx1NkZFNFxcdTZGRTVcIl0sXG4gICAgICBbXCI5ZTQwXCIsIFwiXFx1NkZFNlwiLCA3LCBcIlxcdTZGRjBcIiwgMzIsIFwiXFx1NzAxMlwiLCA3LCBcIlxcdTcwMUNcIiwgNiwgXCJcXHU3MDI0XCIsIDZdLFxuICAgICAgW1wiOWU4MFwiLCBcIlxcdTcwMkJcIiwgOSwgXCJcXHU3MDM2XFx1NzAzN1xcdTcwMzhcXHU3MDNBXCIsIDE3LCBcIlxcdTcwNERcXHU3MDRFXFx1NzA1MFwiLCAxMywgXCJcXHU3MDVGXCIsIDExLCBcIlxcdTcwNkVcXHU3MDcxXFx1NzA3MlxcdTcwNzNcXHU3MDc0XFx1NzA3N1xcdTcwNzlcXHU3MDdBXFx1NzA3QlxcdTcwN0RcXHU3MDgxXFx1NzA4MlxcdTcwODNcXHU3MDg0XFx1NzA4NlxcdTcwODdcXHU3MDg4XFx1NzA4QlxcdTcwOENcXHU3MDhEXFx1NzA4RlxcdTcwOTBcXHU3MDkxXFx1NzA5M1xcdTcwOTdcXHU3MDk4XFx1NzA5QVxcdTcwOUJcXHU3MDlFXCIsIDEyLCBcIlxcdTcwQjBcXHU3MEIyXFx1NzBCNFxcdTcwQjVcXHU3MEI2XFx1NzBCQVxcdTcwQkVcXHU3MEJGXFx1NzBDNFxcdTcwQzVcXHU3MEM2XFx1NzBDN1xcdTcwQzlcXHU3MENCXCIsIDEyLCBcIlxcdTcwREFcIl0sXG4gICAgICBbXCI5ZjQwXCIsIFwiXFx1NzBEQ1xcdTcwRERcXHU3MERFXFx1NzBFMFxcdTcwRTFcXHU3MEUyXFx1NzBFM1xcdTcwRTVcXHU3MEVBXFx1NzBFRVxcdTcwRjBcIiwgNiwgXCJcXHU3MEY4XFx1NzBGQVxcdTcwRkJcXHU3MEZDXFx1NzBGRVwiLCAxMCwgXCJcXHU3MTBCXCIsIDQsIFwiXFx1NzExMVxcdTcxMTJcXHU3MTE0XFx1NzExN1xcdTcxMUJcIiwgMTAsIFwiXFx1NzEyN1wiLCA3LCBcIlxcdTcxMzJcXHU3MTMzXFx1NzEzNFwiXSxcbiAgICAgIFtcIjlmODBcIiwgXCJcXHU3MTM1XFx1NzEzN1wiLCAxMywgXCJcXHU3MTQ2XFx1NzE0N1xcdTcxNDhcXHU3MTQ5XFx1NzE0QlxcdTcxNERcXHU3MTRGXCIsIDEyLCBcIlxcdTcxNURcXHU3MTVGXCIsIDQsIFwiXFx1NzE2NVxcdTcxNjlcIiwgNCwgXCJcXHU3MTZGXFx1NzE3MFxcdTcxNzFcXHU3MTc0XFx1NzE3NVxcdTcxNzZcXHU3MTc3XFx1NzE3OVxcdTcxN0JcXHU3MTdDXFx1NzE3RVwiLCA1LCBcIlxcdTcxODVcIiwgNCwgXCJcXHU3MThCXFx1NzE4Q1xcdTcxOERcXHU3MThFXFx1NzE5MFxcdTcxOTFcXHU3MTkyXFx1NzE5M1xcdTcxOTVcXHU3MTk2XFx1NzE5N1xcdTcxOUFcIiwgNCwgXCJcXHU3MUExXCIsIDYsIFwiXFx1NzFBOVxcdTcxQUFcXHU3MUFCXFx1NzFBRFwiLCA1LCBcIlxcdTcxQjRcXHU3MUI2XFx1NzFCN1xcdTcxQjhcXHU3MUJBXCIsIDgsIFwiXFx1NzFDNFwiLCA5LCBcIlxcdTcxQ0ZcIiwgNF0sXG4gICAgICBbXCJhMDQwXCIsIFwiXFx1NzFENlwiLCA5LCBcIlxcdTcxRTFcXHU3MUUyXFx1NzFFM1xcdTcxRTRcXHU3MUU2XFx1NzFFOFwiLCA1LCBcIlxcdTcxRUZcIiwgOSwgXCJcXHU3MUZBXCIsIDExLCBcIlxcdTcyMDdcIiwgMTldLFxuICAgICAgW1wiYTA4MFwiLCBcIlxcdTcyMUJcXHU3MjFDXFx1NzIxRVwiLCA5LCBcIlxcdTcyMjlcXHU3MjJCXFx1NzIyRFxcdTcyMkVcXHU3MjJGXFx1NzIzMlxcdTcyMzNcXHU3MjM0XFx1NzIzQVxcdTcyM0NcXHU3MjNFXFx1NzI0MFwiLCA2LCBcIlxcdTcyNDlcXHU3MjRBXFx1NzI0QlxcdTcyNEVcXHU3MjRGXFx1NzI1MFxcdTcyNTFcXHU3MjUzXFx1NzI1NFxcdTcyNTVcXHU3MjU3XFx1NzI1OFxcdTcyNUFcXHU3MjVDXFx1NzI1RVxcdTcyNjBcXHU3MjYzXFx1NzI2NFxcdTcyNjVcXHU3MjY4XFx1NzI2QVxcdTcyNkJcXHU3MjZDXFx1NzI2RFxcdTcyNzBcXHU3MjcxXFx1NzI3M1xcdTcyNzRcXHU3Mjc2XFx1NzI3N1xcdTcyNzhcXHU3MjdCXFx1NzI3Q1xcdTcyN0RcXHU3MjgyXFx1NzI4M1xcdTcyODVcIiwgNCwgXCJcXHU3MjhDXFx1NzI4RVxcdTcyOTBcXHU3MjkxXFx1NzI5M1wiLCAxMSwgXCJcXHU3MkEwXCIsIDExLCBcIlxcdTcyQUVcXHU3MkIxXFx1NzJCMlxcdTcyQjNcXHU3MkI1XFx1NzJCQVwiLCA2LCBcIlxcdTcyQzVcXHU3MkM2XFx1NzJDN1xcdTcyQzlcXHU3MkNBXFx1NzJDQlxcdTcyQ0NcXHU3MkNGXFx1NzJEMVxcdTcyRDNcXHU3MkQ0XFx1NzJENVxcdTcyRDZcXHU3MkQ4XFx1NzJEQVxcdTcyREJcIl0sXG4gICAgICBbXCJhMWExXCIsIFwiXFx1MzAwMFxcdTMwMDFcXHUzMDAyXFx4QjdcXHUwMkM5XFx1MDJDN1xceEE4XFx1MzAwM1xcdTMwMDVcXHUyMDE0XFx1RkY1RVxcdTIwMTZcXHUyMDI2XFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTMwMTRcXHUzMDE1XFx1MzAwOFwiLCA3LCBcIlxcdTMwMTZcXHUzMDE3XFx1MzAxMFxcdTMwMTFcXHhCMVxceEQ3XFx4RjdcXHUyMjM2XFx1MjIyN1xcdTIyMjhcXHUyMjExXFx1MjIwRlxcdTIyMkFcXHUyMjI5XFx1MjIwOFxcdTIyMzdcXHUyMjFBXFx1MjJBNVxcdTIyMjVcXHUyMjIwXFx1MjMxMlxcdTIyOTlcXHUyMjJCXFx1MjIyRVxcdTIyNjFcXHUyMjRDXFx1MjI0OFxcdTIyM0RcXHUyMjFEXFx1MjI2MFxcdTIyNkVcXHUyMjZGXFx1MjI2NFxcdTIyNjVcXHUyMjFFXFx1MjIzNVxcdTIyMzRcXHUyNjQyXFx1MjY0MFxceEIwXFx1MjAzMlxcdTIwMzNcXHUyMTAzXFx1RkYwNFxceEE0XFx1RkZFMFxcdUZGRTFcXHUyMDMwXFx4QTdcXHUyMTE2XFx1MjYwNlxcdTI2MDVcXHUyNUNCXFx1MjVDRlxcdTI1Q0VcXHUyNUM3XFx1MjVDNlxcdTI1QTFcXHUyNUEwXFx1MjVCM1xcdTI1QjJcXHUyMDNCXFx1MjE5MlxcdTIxOTBcXHUyMTkxXFx1MjE5M1xcdTMwMTNcIl0sXG4gICAgICBbXCJhMmExXCIsIFwiXFx1MjE3MFwiLCA5XSxcbiAgICAgIFtcImEyYjFcIiwgXCJcXHUyNDg4XCIsIDE5LCBcIlxcdTI0NzRcIiwgMTksIFwiXFx1MjQ2MFwiLCA5XSxcbiAgICAgIFtcImEyZTVcIiwgXCJcXHUzMjIwXCIsIDldLFxuICAgICAgW1wiYTJmMVwiLCBcIlxcdTIxNjBcIiwgMTFdLFxuICAgICAgW1wiYTNhMVwiLCBcIlxcdUZGMDFcXHVGRjAyXFx1RkYwM1xcdUZGRTVcXHVGRjA1XCIsIDg4LCBcIlxcdUZGRTNcIl0sXG4gICAgICBbXCJhNGExXCIsIFwiXFx1MzA0MVwiLCA4Ml0sXG4gICAgICBbXCJhNWExXCIsIFwiXFx1MzBBMVwiLCA4NV0sXG4gICAgICBbXCJhNmExXCIsIFwiXFx1MDM5MVwiLCAxNiwgXCJcXHUwM0EzXCIsIDZdLFxuICAgICAgW1wiYTZjMVwiLCBcIlxcdTAzQjFcIiwgMTYsIFwiXFx1MDNDM1wiLCA2XSxcbiAgICAgIFtcImE2ZTBcIiwgXCJcXHVGRTM1XFx1RkUzNlxcdUZFMzlcXHVGRTNBXFx1RkUzRlxcdUZFNDBcXHVGRTNEXFx1RkUzRVxcdUZFNDFcXHVGRTQyXFx1RkU0M1xcdUZFNDRcIl0sXG4gICAgICBbXCJhNmVlXCIsIFwiXFx1RkUzQlxcdUZFM0NcXHVGRTM3XFx1RkUzOFxcdUZFMzFcIl0sXG4gICAgICBbXCJhNmY0XCIsIFwiXFx1RkUzM1xcdUZFMzRcIl0sXG4gICAgICBbXCJhN2ExXCIsIFwiXFx1MDQxMFwiLCA1LCBcIlxcdTA0MDFcXHUwNDE2XCIsIDI1XSxcbiAgICAgIFtcImE3ZDFcIiwgXCJcXHUwNDMwXCIsIDUsIFwiXFx1MDQ1MVxcdTA0MzZcIiwgMjVdLFxuICAgICAgW1wiYTg0MFwiLCBcIlxcdTAyQ0FcXHUwMkNCXFx1MDJEOVxcdTIwMTNcXHUyMDE1XFx1MjAyNVxcdTIwMzVcXHUyMTA1XFx1MjEwOVxcdTIxOTZcXHUyMTk3XFx1MjE5OFxcdTIxOTlcXHUyMjE1XFx1MjIxRlxcdTIyMjNcXHUyMjUyXFx1MjI2NlxcdTIyNjdcXHUyMkJGXFx1MjU1MFwiLCAzNSwgXCJcXHUyNTgxXCIsIDZdLFxuICAgICAgW1wiYTg4MFwiLCBcIlxcdTI1ODhcIiwgNywgXCJcXHUyNTkzXFx1MjU5NFxcdTI1OTVcXHUyNUJDXFx1MjVCRFxcdTI1RTJcXHUyNUUzXFx1MjVFNFxcdTI1RTVcXHUyNjA5XFx1MjI5NVxcdTMwMTJcXHUzMDFEXFx1MzAxRVwiXSxcbiAgICAgIFtcImE4YTFcIiwgXCJcXHUwMTAxXFx4RTFcXHUwMUNFXFx4RTBcXHUwMTEzXFx4RTlcXHUwMTFCXFx4RThcXHUwMTJCXFx4RURcXHUwMUQwXFx4RUNcXHUwMTREXFx4RjNcXHUwMUQyXFx4RjJcXHUwMTZCXFx4RkFcXHUwMUQ0XFx4RjlcXHUwMUQ2XFx1MDFEOFxcdTAxREFcXHUwMURDXFx4RkNcXHhFQVxcdTAyNTFcIl0sXG4gICAgICBbXCJhOGJkXCIsIFwiXFx1MDE0NFxcdTAxNDhcIl0sXG4gICAgICBbXCJhOGMwXCIsIFwiXFx1MDI2MVwiXSxcbiAgICAgIFtcImE4YzVcIiwgXCJcXHUzMTA1XCIsIDM2XSxcbiAgICAgIFtcImE5NDBcIiwgXCJcXHUzMDIxXCIsIDgsIFwiXFx1MzJBM1xcdTMzOEVcXHUzMzhGXFx1MzM5Q1xcdTMzOURcXHUzMzlFXFx1MzNBMVxcdTMzQzRcXHUzM0NFXFx1MzNEMVxcdTMzRDJcXHUzM0Q1XFx1RkUzMFxcdUZGRTJcXHVGRkU0XCJdLFxuICAgICAgW1wiYTk1OVwiLCBcIlxcdTIxMjFcXHUzMjMxXCJdLFxuICAgICAgW1wiYTk1Y1wiLCBcIlxcdTIwMTBcIl0sXG4gICAgICBbXCJhOTYwXCIsIFwiXFx1MzBGQ1xcdTMwOUJcXHUzMDlDXFx1MzBGRFxcdTMwRkVcXHUzMDA2XFx1MzA5RFxcdTMwOUVcXHVGRTQ5XCIsIDksIFwiXFx1RkU1NFxcdUZFNTVcXHVGRTU2XFx1RkU1N1xcdUZFNTlcIiwgOF0sXG4gICAgICBbXCJhOTgwXCIsIFwiXFx1RkU2MlwiLCA0LCBcIlxcdUZFNjhcXHVGRTY5XFx1RkU2QVxcdUZFNkJcIl0sXG4gICAgICBbXCJhOTk2XCIsIFwiXFx1MzAwN1wiXSxcbiAgICAgIFtcImE5YTRcIiwgXCJcXHUyNTAwXCIsIDc1XSxcbiAgICAgIFtcImFhNDBcIiwgXCJcXHU3MkRDXFx1NzJERFxcdTcyREZcXHU3MkUyXCIsIDUsIFwiXFx1NzJFQVxcdTcyRUJcXHU3MkY1XFx1NzJGNlxcdTcyRjlcXHU3MkZEXFx1NzJGRVxcdTcyRkZcXHU3MzAwXFx1NzMwMlxcdTczMDRcIiwgNSwgXCJcXHU3MzBCXFx1NzMwQ1xcdTczMERcXHU3MzBGXFx1NzMxMFxcdTczMTFcXHU3MzEyXFx1NzMxNFxcdTczMThcXHU3MzE5XFx1NzMxQVxcdTczMUZcXHU3MzIwXFx1NzMyM1xcdTczMjRcXHU3MzI2XFx1NzMyN1xcdTczMjhcXHU3MzJEXFx1NzMyRlxcdTczMzBcXHU3MzMyXFx1NzMzM1xcdTczMzVcXHU3MzM2XFx1NzMzQVxcdTczM0JcXHU3MzNDXFx1NzMzRFxcdTczNDBcIiwgOF0sXG4gICAgICBbXCJhYTgwXCIsIFwiXFx1NzM0OVxcdTczNEFcXHU3MzRCXFx1NzM0Q1xcdTczNEVcXHU3MzRGXFx1NzM1MVxcdTczNTNcXHU3MzU0XFx1NzM1NVxcdTczNTZcXHU3MzU4XCIsIDcsIFwiXFx1NzM2MVwiLCAxMCwgXCJcXHU3MzZFXFx1NzM3MFxcdTczNzFcIl0sXG4gICAgICBbXCJhYjQwXCIsIFwiXFx1NzM3MlwiLCAxMSwgXCJcXHU3MzdGXCIsIDQsIFwiXFx1NzM4NVxcdTczODZcXHU3Mzg4XFx1NzM4QVxcdTczOENcXHU3MzhEXFx1NzM4RlxcdTczOTBcXHU3MzkyXFx1NzM5M1xcdTczOTRcXHU3Mzk1XFx1NzM5N1xcdTczOThcXHU3Mzk5XFx1NzM5QVxcdTczOUNcXHU3MzlEXFx1NzM5RVxcdTczQTBcXHU3M0ExXFx1NzNBM1wiLCA1LCBcIlxcdTczQUFcXHU3M0FDXFx1NzNBRFxcdTczQjFcXHU3M0I0XFx1NzNCNVxcdTczQjZcXHU3M0I4XFx1NzNCOVxcdTczQkNcXHU3M0JEXFx1NzNCRVxcdTczQkZcXHU3M0MxXFx1NzNDM1wiLCA0XSxcbiAgICAgIFtcImFiODBcIiwgXCJcXHU3M0NCXFx1NzNDQ1xcdTczQ0VcXHU3M0QyXCIsIDYsIFwiXFx1NzNEQVxcdTczREJcXHU3M0RDXFx1NzNERFxcdTczREZcXHU3M0UxXFx1NzNFMlxcdTczRTNcXHU3M0U0XFx1NzNFNlxcdTczRThcXHU3M0VBXFx1NzNFQlxcdTczRUNcXHU3M0VFXFx1NzNFRlxcdTczRjBcXHU3M0YxXFx1NzNGM1wiLCA0XSxcbiAgICAgIFtcImFjNDBcIiwgXCJcXHU3M0Y4XCIsIDEwLCBcIlxcdTc0MDRcXHU3NDA3XFx1NzQwOFxcdTc0MEJcXHU3NDBDXFx1NzQwRFxcdTc0MEVcXHU3NDExXCIsIDgsIFwiXFx1NzQxQ1wiLCA1LCBcIlxcdTc0MjNcXHU3NDI0XFx1NzQyN1xcdTc0MjlcXHU3NDJCXFx1NzQyRFxcdTc0MkZcXHU3NDMxXFx1NzQzMlxcdTc0MzdcIiwgNCwgXCJcXHU3NDNEXFx1NzQzRVxcdTc0M0ZcXHU3NDQwXFx1NzQ0MlwiLCAxMV0sXG4gICAgICBbXCJhYzgwXCIsIFwiXFx1NzQ0RVwiLCA2LCBcIlxcdTc0NTZcXHU3NDU4XFx1NzQ1RFxcdTc0NjBcIiwgMTIsIFwiXFx1NzQ2RVxcdTc0NkZcXHU3NDcxXCIsIDQsIFwiXFx1NzQ3OFxcdTc0NzlcXHU3NDdBXCJdLFxuICAgICAgW1wiYWQ0MFwiLCBcIlxcdTc0N0JcXHU3NDdDXFx1NzQ3RFxcdTc0N0ZcXHU3NDgyXFx1NzQ4NFxcdTc0ODVcXHU3NDg2XFx1NzQ4OFxcdTc0ODlcXHU3NDhBXFx1NzQ4Q1xcdTc0OERcXHU3NDhGXFx1NzQ5MVwiLCAxMCwgXCJcXHU3NDlEXFx1NzQ5RlwiLCA3LCBcIlxcdTc0QUFcIiwgMTUsIFwiXFx1NzRCQlwiLCAxMl0sXG4gICAgICBbXCJhZDgwXCIsIFwiXFx1NzRDOFwiLCA5LCBcIlxcdTc0RDNcIiwgOCwgXCJcXHU3NEREXFx1NzRERlxcdTc0RTFcXHU3NEU1XFx1NzRFN1wiLCA2LCBcIlxcdTc0RjBcXHU3NEYxXFx1NzRGMlwiXSxcbiAgICAgIFtcImFlNDBcIiwgXCJcXHU3NEYzXFx1NzRGNVxcdTc0RjhcIiwgNiwgXCJcXHU3NTAwXFx1NzUwMVxcdTc1MDJcXHU3NTAzXFx1NzUwNVwiLCA3LCBcIlxcdTc1MEVcXHU3NTEwXFx1NzUxMlxcdTc1MTRcXHU3NTE1XFx1NzUxNlxcdTc1MTdcXHU3NTFCXFx1NzUxRFxcdTc1MUVcXHU3NTIwXCIsIDQsIFwiXFx1NzUyNlxcdTc1MjdcXHU3NTJBXFx1NzUyRVxcdTc1MzRcXHU3NTM2XFx1NzUzOVxcdTc1M0NcXHU3NTNEXFx1NzUzRlxcdTc1NDFcXHU3NTQyXFx1NzU0M1xcdTc1NDRcXHU3NTQ2XFx1NzU0N1xcdTc1NDlcXHU3NTRBXFx1NzU0RFxcdTc1NTBcXHU3NTUxXFx1NzU1MlxcdTc1NTNcXHU3NTU1XFx1NzU1NlxcdTc1NTdcXHU3NTU4XCJdLFxuICAgICAgW1wiYWU4MFwiLCBcIlxcdTc1NURcIiwgNywgXCJcXHU3NTY3XFx1NzU2OFxcdTc1NjlcXHU3NTZCXCIsIDYsIFwiXFx1NzU3M1xcdTc1NzVcXHU3NTc2XFx1NzU3N1xcdTc1N0FcIiwgNCwgXCJcXHU3NTgwXFx1NzU4MVxcdTc1ODJcXHU3NTg0XFx1NzU4NVxcdTc1ODdcIl0sXG4gICAgICBbXCJhZjQwXCIsIFwiXFx1NzU4OFxcdTc1ODlcXHU3NThBXFx1NzU4Q1xcdTc1OERcXHU3NThFXFx1NzU5MFxcdTc1OTNcXHU3NTk1XFx1NzU5OFxcdTc1OUJcXHU3NTlDXFx1NzU5RVxcdTc1QTJcXHU3NUE2XCIsIDQsIFwiXFx1NzVBRFxcdTc1QjZcXHU3NUI3XFx1NzVCQVxcdTc1QkJcXHU3NUJGXFx1NzVDMFxcdTc1QzFcXHU3NUM2XFx1NzVDQlxcdTc1Q0NcXHU3NUNFXFx1NzVDRlxcdTc1RDBcXHU3NUQxXFx1NzVEM1xcdTc1RDdcXHU3NUQ5XFx1NzVEQVxcdTc1RENcXHU3NUREXFx1NzVERlxcdTc1RTBcXHU3NUUxXFx1NzVFNVxcdTc1RTlcXHU3NUVDXFx1NzVFRFxcdTc1RUVcXHU3NUVGXFx1NzVGMlxcdTc1RjNcXHU3NUY1XFx1NzVGNlxcdTc1RjdcXHU3NUY4XFx1NzVGQVxcdTc1RkJcXHU3NUZEXFx1NzVGRVxcdTc2MDJcXHU3NjA0XFx1NzYwNlxcdTc2MDdcIl0sXG4gICAgICBbXCJhZjgwXCIsIFwiXFx1NzYwOFxcdTc2MDlcXHU3NjBCXFx1NzYwRFxcdTc2MEVcXHU3NjBGXFx1NzYxMVxcdTc2MTJcXHU3NjEzXFx1NzYxNFxcdTc2MTZcXHU3NjFBXFx1NzYxQ1xcdTc2MURcXHU3NjFFXFx1NzYyMVxcdTc2MjNcXHU3NjI3XFx1NzYyOFxcdTc2MkNcXHU3NjJFXFx1NzYyRlxcdTc2MzFcXHU3NjMyXFx1NzYzNlxcdTc2MzdcXHU3NjM5XFx1NzYzQVxcdTc2M0JcXHU3NjNEXFx1NzY0MVxcdTc2NDJcXHU3NjQ0XCJdLFxuICAgICAgW1wiYjA0MFwiLCBcIlxcdTc2NDVcIiwgNiwgXCJcXHU3NjRFXCIsIDUsIFwiXFx1NzY1NVxcdTc2NTdcIiwgNCwgXCJcXHU3NjVEXFx1NzY1RlxcdTc2NjBcXHU3NjYxXFx1NzY2MlxcdTc2NjRcIiwgNiwgXCJcXHU3NjZDXFx1NzY2RFxcdTc2NkVcXHU3NjcwXCIsIDcsIFwiXFx1NzY3OVxcdTc2N0FcXHU3NjdDXFx1NzY3RlxcdTc2ODBcXHU3NjgxXFx1NzY4M1xcdTc2ODVcXHU3Njg5XFx1NzY4QVxcdTc2OENcXHU3NjhEXFx1NzY4RlxcdTc2OTBcXHU3NjkyXFx1NzY5NFxcdTc2OTVcXHU3Njk3XFx1NzY5OFxcdTc2OUFcXHU3NjlCXCJdLFxuICAgICAgW1wiYjA4MFwiLCBcIlxcdTc2OUNcIiwgNywgXCJcXHU3NkE1XCIsIDgsIFwiXFx1NzZBRlxcdTc2QjBcXHU3NkIzXFx1NzZCNVwiLCA5LCBcIlxcdTc2QzBcXHU3NkMxXFx1NzZDM1xcdTU1NEFcXHU5NjNGXFx1NTdDM1xcdTYzMjhcXHU1NENFXFx1NTUwOVxcdTU0QzBcXHU3NjkxXFx1NzY0Q1xcdTg1M0NcXHU3N0VFXFx1ODI3RVxcdTc4OERcXHU3MjMxXFx1OTY5OFxcdTk3OERcXHU2QzI4XFx1NUI4OVxcdTRGRkFcXHU2MzA5XFx1NjY5N1xcdTVDQjhcXHU4MEZBXFx1Njg0OFxcdTgwQUVcXHU2NjAyXFx1NzZDRVxcdTUxRjlcXHU2NTU2XFx1NzFBQ1xcdTdGRjFcXHU4ODg0XFx1NTBCMlxcdTU5NjVcXHU2MUNBXFx1NkZCM1xcdTgyQURcXHU2MzRDXFx1NjI1MlxcdTUzRURcXHU1NDI3XFx1N0IwNlxcdTUxNkJcXHU3NUE0XFx1NURGNFxcdTYyRDRcXHU4RENCXFx1OTc3NlxcdTYyOEFcXHU4MDE5XFx1NTc1RFxcdTk3MzhcXHU3RjYyXFx1NzIzOFxcdTc2N0RcXHU2N0NGXFx1NzY3RVxcdTY0NDZcXHU0RjcwXFx1OEQyNVxcdTYyRENcXHU3QTE3XFx1NjU5MVxcdTczRURcXHU2NDJDXFx1NjI3M1xcdTgyMkNcXHU5ODgxXFx1Njc3RlxcdTcyNDhcXHU2MjZFXFx1NjJDQ1xcdTRGMzRcXHU3NEUzXFx1NTM0QVxcdTUyOUVcXHU3RUNBXFx1OTBBNlxcdTVFMkVcXHU2ODg2XFx1Njk5Q1xcdTgxODBcXHU3RUQxXFx1NjhEMlxcdTc4QzVcXHU4NjhDXFx1OTU1MVxcdTUwOERcXHU4QzI0XFx1ODJERVxcdTgwREVcXHU1MzA1XFx1ODkxMlxcdTUyNjVcIl0sXG4gICAgICBbXCJiMTQwXCIsIFwiXFx1NzZDNFxcdTc2QzdcXHU3NkM5XFx1NzZDQlxcdTc2Q0NcXHU3NkQzXFx1NzZENVxcdTc2RDlcXHU3NkRBXFx1NzZEQ1xcdTc2RERcXHU3NkRFXFx1NzZFMFwiLCA0LCBcIlxcdTc2RTZcIiwgNywgXCJcXHU3NkYwXFx1NzZGM1xcdTc2RjVcXHU3NkY2XFx1NzZGN1xcdTc2RkFcXHU3NkZCXFx1NzZGRFxcdTc2RkZcXHU3NzAwXFx1NzcwMlxcdTc3MDNcXHU3NzA1XFx1NzcwNlxcdTc3MEFcXHU3NzBDXFx1NzcwRVwiLCAxMCwgXCJcXHU3NzFCXFx1NzcxQ1xcdTc3MURcXHU3NzFFXFx1NzcyMVxcdTc3MjNcXHU3NzI0XFx1NzcyNVxcdTc3MjdcXHU3NzJBXFx1NzcyQlwiXSxcbiAgICAgIFtcImIxODBcIiwgXCJcXHU3NzJDXFx1NzcyRVxcdTc3MzBcIiwgNCwgXCJcXHU3NzM5XFx1NzczQlxcdTc3M0RcXHU3NzNFXFx1NzczRlxcdTc3NDJcXHU3NzQ0XFx1Nzc0NVxcdTc3NDZcXHU3NzQ4XCIsIDcsIFwiXFx1Nzc1MlwiLCA3LCBcIlxcdTc3NUNcXHU4NTg0XFx1OTZGOVxcdTRGRERcXHU1ODIxXFx1OTk3MVxcdTVCOURcXHU2MkIxXFx1NjJBNVxcdTY2QjRcXHU4Qzc5XFx1OUM4RFxcdTcyMDZcXHU2NzZGXFx1Nzg5MVxcdTYwQjJcXHU1MzUxXFx1NTMxN1xcdThGODhcXHU4MENDXFx1OEQxRFxcdTk0QTFcXHU1MDBEXFx1NzJDOFxcdTU5MDdcXHU2MEVCXFx1NzExOVxcdTg4QUJcXHU1OTU0XFx1ODJFRlxcdTY3MkNcXHU3QjI4XFx1NUQyOVxcdTdFRjdcXHU3NTJEXFx1NkNGNVxcdThFNjZcXHU4RkY4XFx1OTAzQ1xcdTlGM0JcXHU2QkQ0XFx1OTExOVxcdTdCMTRcXHU1RjdDXFx1NzhBN1xcdTg0RDZcXHU4NTNEXFx1NkJENVxcdTZCRDlcXHU2QkQ2XFx1NUUwMVxcdTVFODdcXHU3NUY5XFx1OTVFRFxcdTY1NURcXHU1RjBBXFx1NUZDNVxcdThGOUZcXHU1OEMxXFx1ODFDMlxcdTkwN0ZcXHU5NjVCXFx1OTdBRFxcdThGQjlcXHU3RjE2XFx1OEQyQ1xcdTYyNDFcXHU0RkJGXFx1NTNEOFxcdTUzNUVcXHU4RkE4XFx1OEZBOVxcdThGQUJcXHU5MDREXFx1NjgwN1xcdTVGNkFcXHU4MTk4XFx1ODg2OFxcdTlDRDZcXHU2MThCXFx1NTIyQlxcdTc2MkFcXHU1RjZDXFx1NjU4Q1xcdTZGRDJcXHU2RUU4XFx1NUJCRVxcdTY0NDhcXHU1MTc1XFx1NTFCMFxcdTY3QzRcXHU0RTE5XFx1NzlDOVxcdTk5N0NcXHU3MEIzXCJdLFxuICAgICAgW1wiYjI0MFwiLCBcIlxcdTc3NURcXHU3NzVFXFx1Nzc1RlxcdTc3NjBcXHU3NzY0XFx1Nzc2N1xcdTc3NjlcXHU3NzZBXFx1Nzc2RFwiLCAxMSwgXCJcXHU3NzdBXFx1Nzc3QlxcdTc3N0NcXHU3NzgxXFx1Nzc4MlxcdTc3ODNcXHU3Nzg2XCIsIDUsIFwiXFx1Nzc4RlxcdTc3OTBcXHU3NzkzXCIsIDExLCBcIlxcdTc3QTFcXHU3N0EzXFx1NzdBNFxcdTc3QTZcXHU3N0E4XFx1NzdBQlxcdTc3QURcXHU3N0FFXFx1NzdBRlxcdTc3QjFcXHU3N0IyXFx1NzdCNFxcdTc3QjZcIiwgNF0sXG4gICAgICBbXCJiMjgwXCIsIFwiXFx1NzdCQ1xcdTc3QkVcXHU3N0MwXCIsIDEyLCBcIlxcdTc3Q0VcIiwgOCwgXCJcXHU3N0Q4XFx1NzdEOVxcdTc3REFcXHU3N0REXCIsIDQsIFwiXFx1NzdFNFxcdTc1QzVcXHU1RTc2XFx1NzNCQlxcdTgzRTBcXHU2NEFEXFx1NjJFOFxcdTk0QjVcXHU2Q0UyXFx1NTM1QVxcdTUyQzNcXHU2NDBGXFx1OTRDMlxcdTdCOTRcXHU0RjJGXFx1NUUxQlxcdTgyMzZcXHU4MTE2XFx1ODE4QVxcdTZFMjRcXHU2Q0NBXFx1OUE3M1xcdTYzNTVcXHU1MzVDXFx1NTRGQVxcdTg4NjVcXHU1N0UwXFx1NEUwRFxcdTVFMDNcXHU2QjY1XFx1N0MzRlxcdTkwRThcXHU2MDE2XFx1NjRFNlxcdTczMUNcXHU4OEMxXFx1Njc1MFxcdTYyNERcXHU4RDIyXFx1Nzc2Q1xcdThFMjlcXHU5MUM3XFx1NUY2OVxcdTgzRENcXHU4NTIxXFx1OTkxMFxcdTUzQzJcXHU4Njk1XFx1NkI4QlxcdTYwRURcXHU2MEU4XFx1NzA3RlxcdTgyQ0RcXHU4MjMxXFx1NEVEM1xcdTZDQTdcXHU4NUNGXFx1NjRDRFxcdTdDRDlcXHU2OUZEXFx1NjZGOVxcdTgzNDlcXHU1Mzk1XFx1N0I1NlxcdTRGQTdcXHU1MThDXFx1NkQ0QlxcdTVDNDJcXHU4RTZEXFx1NjNEMlxcdTUzQzlcXHU4MzJDXFx1ODMzNlxcdTY3RTVcXHU3OEI0XFx1NjQzRFxcdTVCREZcXHU1Qzk0XFx1NURFRVxcdThCRTdcXHU2MkM2XFx1NjdGNFxcdThDN0FcXHU2NDAwXFx1NjNCQVxcdTg3NDlcXHU5OThCXFx1OEMxN1xcdTdGMjBcXHU5NEYyXFx1NEVBN1xcdTk2MTBcXHU5OEE0XFx1NjYwQ1xcdTczMTZcIl0sXG4gICAgICBbXCJiMzQwXCIsIFwiXFx1NzdFNlxcdTc3RThcXHU3N0VBXFx1NzdFRlxcdTc3RjBcXHU3N0YxXFx1NzdGMlxcdTc3RjRcXHU3N0Y1XFx1NzdGN1xcdTc3RjlcXHU3N0ZBXFx1NzdGQlxcdTc3RkNcXHU3ODAzXCIsIDUsIFwiXFx1NzgwQVxcdTc4MEJcXHU3ODBFXFx1NzgwRlxcdTc4MTBcXHU3ODEzXFx1NzgxNVxcdTc4MTlcXHU3ODFCXFx1NzgxRVxcdTc4MjBcXHU3ODIxXFx1NzgyMlxcdTc4MjRcXHU3ODI4XFx1NzgyQVxcdTc4MkJcXHU3ODJFXFx1NzgyRlxcdTc4MzFcXHU3ODMyXFx1NzgzM1xcdTc4MzVcXHU3ODM2XFx1NzgzRFxcdTc4M0ZcXHU3ODQxXFx1Nzg0MlxcdTc4NDNcXHU3ODQ0XFx1Nzg0NlxcdTc4NDhcXHU3ODQ5XFx1Nzg0QVxcdTc4NEJcXHU3ODREXFx1Nzg0RlxcdTc4NTFcXHU3ODUzXFx1Nzg1NFxcdTc4NThcXHU3ODU5XFx1Nzg1QVwiXSxcbiAgICAgIFtcImIzODBcIiwgXCJcXHU3ODVCXFx1Nzg1Q1xcdTc4NUVcIiwgMTEsIFwiXFx1Nzg2RlwiLCA3LCBcIlxcdTc4NzhcXHU3ODc5XFx1Nzg3QVxcdTc4N0JcXHU3ODdEXCIsIDYsIFwiXFx1NTczQVxcdTVDMURcXHU1RTM4XFx1OTU3RlxcdTUwN0ZcXHU4MEEwXFx1NTM4MlxcdTY1NUVcXHU3NTQ1XFx1NTUzMVxcdTUwMjFcXHU4RDg1XFx1NjI4NFxcdTk0OUVcXHU2NzFEXFx1NTYzMlxcdTZGNkVcXHU1REUyXFx1NTQzNVxcdTcwOTJcXHU4RjY2XFx1NjI2RlxcdTY0QTRcXHU2M0EzXFx1NUY3QlxcdTZGODhcXHU5MEY0XFx1ODFFM1xcdThGQjBcXHU1QzE4XFx1NjY2OFxcdTVGRjFcXHU2Qzg5XFx1OTY0OFxcdThEODFcXHU4ODZDXFx1NjQ5MVxcdTc5RjBcXHU1N0NFXFx1NkE1OVxcdTYyMTBcXHU1NDQ4XFx1NEU1OFxcdTdBMEJcXHU2MEU5XFx1NkY4NFxcdThCREFcXHU2MjdGXFx1OTAxRVxcdTlBOEJcXHU3OUU0XFx1NTQwM1xcdTc1RjRcXHU2MzAxXFx1NTMxOVxcdTZDNjBcXHU4RkRGXFx1NUYxQlxcdTlBNzBcXHU4MDNCXFx1OUY3RlxcdTRGODhcXHU1QzNBXFx1OEQ2NFxcdTdGQzVcXHU2NUE1XFx1NzBCRFxcdTUxNDVcXHU1MUIyXFx1ODY2QlxcdTVEMDdcXHU1QkEwXFx1NjJCRFxcdTkxNkNcXHU3NTc0XFx1OEUwQ1xcdTdBMjBcXHU2MTAxXFx1N0I3OVxcdTRFQzdcXHU3RUY4XFx1Nzc4NVxcdTRFMTFcXHU4MUVEXFx1NTIxRFxcdTUxRkFcXHU2QTcxXFx1NTNBOFxcdThFODdcXHU5NTA0XFx1OTZDRlxcdTZFQzFcXHU5NjY0XFx1Njk1QVwiXSxcbiAgICAgIFtcImI0NDBcIiwgXCJcXHU3ODg0XFx1Nzg4NVxcdTc4ODZcXHU3ODg4XFx1Nzg4QVxcdTc4OEJcXHU3ODhGXFx1Nzg5MFxcdTc4OTJcXHU3ODk0XFx1Nzg5NVxcdTc4OTZcXHU3ODk5XFx1Nzg5RFxcdTc4OUVcXHU3OEEwXFx1NzhBMlxcdTc4QTRcXHU3OEE2XFx1NzhBOFwiLCA3LCBcIlxcdTc4QjVcXHU3OEI2XFx1NzhCN1xcdTc4QjhcXHU3OEJBXFx1NzhCQlxcdTc4QkNcXHU3OEJEXFx1NzhCRlxcdTc4QzBcXHU3OEMyXFx1NzhDM1xcdTc4QzRcXHU3OEM2XFx1NzhDN1xcdTc4QzhcXHU3OENDXFx1NzhDRFxcdTc4Q0VcXHU3OENGXFx1NzhEMVxcdTc4RDJcXHU3OEQzXFx1NzhENlxcdTc4RDdcXHU3OEQ4XFx1NzhEQVwiLCA5XSxcbiAgICAgIFtcImI0ODBcIiwgXCJcXHU3OEU0XFx1NzhFNVxcdTc4RTZcXHU3OEU3XFx1NzhFOVxcdTc4RUFcXHU3OEVCXFx1NzhFRFwiLCA0LCBcIlxcdTc4RjNcXHU3OEY1XFx1NzhGNlxcdTc4RjhcXHU3OEY5XFx1NzhGQlwiLCA1LCBcIlxcdTc5MDJcXHU3OTAzXFx1NzkwNFxcdTc5MDZcIiwgNiwgXCJcXHU3ODQwXFx1NTBBOFxcdTc3RDdcXHU2NDEwXFx1ODlFNlxcdTU5MDRcXHU2M0UzXFx1NURERFxcdTdBN0ZcXHU2OTNEXFx1NEYyMFxcdTgyMzlcXHU1NTk4XFx1NEUzMlxcdTc1QUVcXHU3QTk3XFx1NUU2MlxcdTVFOEFcXHU5NUVGXFx1NTIxQlxcdTU0MzlcXHU3MDhBXFx1NjM3NlxcdTk1MjRcXHU1NzgyXFx1NjYyNVxcdTY5M0ZcXHU5MTg3XFx1NTUwN1xcdTZERjNcXHU3RUFGXFx1ODgyMlxcdTYyMzNcXHU3RUYwXFx1NzVCNVxcdTgzMjhcXHU3OEMxXFx1OTZDQ1xcdThGOUVcXHU2MTQ4XFx1NzRGN1xcdThCQ0RcXHU2QjY0XFx1NTIzQVxcdThENTBcXHU2QjIxXFx1ODA2QVxcdTg0NzFcXHU1NkYxXFx1NTMwNlxcdTRFQ0VcXHU0RTFCXFx1NTFEMVxcdTdDOTdcXHU5MThCXFx1N0MwN1xcdTRGQzNcXHU4RTdGXFx1N0JFMVxcdTdBOUNcXHU2NDY3XFx1NUQxNFxcdTUwQUNcXHU4MTA2XFx1NzYwMVxcdTdDQjlcXHU2REVDXFx1N0ZFMFxcdTY3NTFcXHU1QjU4XFx1NUJGOFxcdTc4Q0JcXHU2NEFFXFx1NjQxM1xcdTYzQUFcXHU2MzJCXFx1OTUxOVxcdTY0MkRcXHU4RkJFXFx1N0I1NFxcdTc2MjlcXHU2MjUzXFx1NTkyN1xcdTU0NDZcXHU2Qjc5XFx1NTBBM1xcdTYyMzRcXHU1RTI2XFx1NkI4NlxcdTRFRTNcXHU4RDM3XFx1ODg4QlxcdTVGODVcXHU5MDJFXCJdLFxuICAgICAgW1wiYjU0MFwiLCBcIlxcdTc5MERcIiwgNSwgXCJcXHU3OTE0XCIsIDksIFwiXFx1NzkxRlwiLCA0LCBcIlxcdTc5MjVcIiwgMTQsIFwiXFx1NzkzNVwiLCA0LCBcIlxcdTc5M0RcXHU3OTNGXFx1Nzk0MlxcdTc5NDNcXHU3OTQ0XFx1Nzk0NVxcdTc5NDdcXHU3OTRBXCIsIDgsIFwiXFx1Nzk1NFxcdTc5NTVcXHU3OTU4XFx1Nzk1OVxcdTc5NjFcXHU3OTYzXCJdLFxuICAgICAgW1wiYjU4MFwiLCBcIlxcdTc5NjRcXHU3OTY2XFx1Nzk2OVxcdTc5NkFcXHU3OTZCXFx1Nzk2Q1xcdTc5NkVcXHU3OTcwXCIsIDYsIFwiXFx1Nzk3OVxcdTc5N0JcIiwgNCwgXCJcXHU3OTgyXFx1Nzk4M1xcdTc5ODZcXHU3OTg3XFx1Nzk4OFxcdTc5ODlcXHU3OThCXFx1Nzk4Q1xcdTc5OERcXHU3OThFXFx1Nzk5MFxcdTc5OTFcXHU3OTkyXFx1NjAyMFxcdTgwM0RcXHU2MkM1XFx1NEUzOVxcdTUzNTVcXHU5MEY4XFx1NjNCOFxcdTgwQzZcXHU2NUU2XFx1NkMyRVxcdTRGNDZcXHU2MEVFXFx1NkRFMVxcdThCREVcXHU1RjM5XFx1ODZDQlxcdTVGNTNcXHU2MzIxXFx1NTE1QVxcdTgzNjFcXHU2ODYzXFx1NTIwMFxcdTYzNjNcXHU4RTQ4XFx1NTAxMlxcdTVDOUJcXHU3OTc3XFx1NUJGQ1xcdTUyMzBcXHU3QTNCXFx1NjBCQ1xcdTkwNTNcXHU3NkQ3XFx1NUZCN1xcdTVGOTdcXHU3Njg0XFx1OEU2Q1xcdTcwNkZcXHU3NjdCXFx1N0I0OVxcdTc3QUFcXHU1MUYzXFx1OTA5M1xcdTU4MjRcXHU0RjRFXFx1NkVGNFxcdThGRUFcXHU2NTRDXFx1N0IxQlxcdTcyQzRcXHU2REE0XFx1N0ZERlxcdTVBRTFcXHU2MkI1XFx1NUU5NVxcdTU3MzBcXHU4NDgyXFx1N0IyQ1xcdTVFMURcXHU1RjFGXFx1OTAxMlxcdTdGMTRcXHU5OEEwXFx1NjM4MlxcdTZFQzdcXHU3ODk4XFx1NzBCOVxcdTUxNzhcXHU5NzVCXFx1NTdBQlxcdTc1MzVcXHU0RjQzXFx1NzUzOFxcdTVFOTdcXHU2MEU2XFx1NTk2MFxcdTZEQzBcXHU2QkJGXFx1Nzg4OVxcdTUzRkNcXHU5NkQ1XFx1NTFDQlxcdTUyMDFcXHU2Mzg5XFx1NTQwQVxcdTk0OTNcXHU4QzAzXFx1OERDQ1xcdTcyMzlcXHU3ODlGXFx1ODc3NlxcdThGRURcXHU4QzBEXFx1NTNFMFwiXSxcbiAgICAgIFtcImI2NDBcIiwgXCJcXHU3OTkzXCIsIDYsIFwiXFx1Nzk5QlwiLCAxMSwgXCJcXHU3OUE4XCIsIDEwLCBcIlxcdTc5QjRcIiwgNCwgXCJcXHU3OUJDXFx1NzlCRlxcdTc5QzJcXHU3OUM0XFx1NzlDNVxcdTc5QzdcXHU3OUM4XFx1NzlDQVxcdTc5Q0NcXHU3OUNFXFx1NzlDRlxcdTc5RDBcXHU3OUQzXFx1NzlENFxcdTc5RDZcXHU3OUQ3XFx1NzlEOVwiLCA1LCBcIlxcdTc5RTBcXHU3OUUxXFx1NzlFMlxcdTc5RTVcXHU3OUU4XFx1NzlFQVwiXSxcbiAgICAgIFtcImI2ODBcIiwgXCJcXHU3OUVDXFx1NzlFRVxcdTc5RjFcIiwgNiwgXCJcXHU3OUY5XFx1NzlGQVxcdTc5RkNcXHU3OUZFXFx1NzlGRlxcdTdBMDFcXHU3QTA0XFx1N0EwNVxcdTdBMDdcXHU3QTA4XFx1N0EwOVxcdTdBMEFcXHU3QTBDXFx1N0EwRlwiLCA0LCBcIlxcdTdBMTVcXHU3QTE2XFx1N0ExOFxcdTdBMTlcXHU3QTFCXFx1N0ExQ1xcdTRFMDFcXHU3NkVGXFx1NTNFRVxcdTk0ODlcXHU5ODc2XFx1OUYwRVxcdTk1MkRcXHU1QjlBXFx1OEJBMlxcdTRFMjJcXHU0RTFDXFx1NTFBQ1xcdTg0NjNcXHU2MUMyXFx1NTJBOFxcdTY4MEJcXHU0Rjk3XFx1NjA2QlxcdTUxQkJcXHU2RDFFXFx1NTE1Q1xcdTYyOTZcXHU2NTk3XFx1OTY2MVxcdThDNDZcXHU5MDE3XFx1NzVEOFxcdTkwRkRcXHU3NzYzXFx1NkJEMlxcdTcyOEFcXHU3MkVDXFx1OEJGQlxcdTU4MzVcXHU3Nzc5XFx1OEQ0Q1xcdTY3NUNcXHU5NTQwXFx1ODA5QVxcdTVFQTZcXHU2RTIxXFx1NTk5MlxcdTdBRUZcXHU3N0VEXFx1OTUzQlxcdTZCQjVcXHU2NUFEXFx1N0YwRVxcdTU4MDZcXHU1MTUxXFx1OTYxRlxcdTVCRjlcXHU1OEE5XFx1NTQyOFxcdThFNzJcXHU2NTY2XFx1OTg3RlxcdTU2RTRcXHU5NDlEXFx1NzZGRVxcdTkwNDFcXHU2Mzg3XFx1NTRDNlxcdTU5MUFcXHU1OTNBXFx1NTc5QlxcdThFQjJcXHU2NzM1XFx1OERGQVxcdTgyMzVcXHU1MjQxXFx1NjBGMFxcdTU4MTVcXHU4NkZFXFx1NUNFOFxcdTlFNDVcXHU0RkM0XFx1OTg5RFxcdThCQjlcXHU1QTI1XFx1NjA3NlxcdTUzODRcXHU2MjdDXFx1OTA0RlxcdTkxMDJcXHU5OTdGXFx1NjA2OVxcdTgwMENcXHU1MTNGXFx1ODAzM1xcdTVDMTRcXHU5OTc1XFx1NkQzMVxcdTRFOENcIl0sXG4gICAgICBbXCJiNzQwXCIsIFwiXFx1N0ExRFxcdTdBMUZcXHU3QTIxXFx1N0EyMlxcdTdBMjRcIiwgMTQsIFwiXFx1N0EzNFxcdTdBMzVcXHU3QTM2XFx1N0EzOFxcdTdBM0FcXHU3QTNFXFx1N0E0MFwiLCA1LCBcIlxcdTdBNDdcIiwgOSwgXCJcXHU3QTUyXCIsIDQsIFwiXFx1N0E1OFwiLCAxNl0sXG4gICAgICBbXCJiNzgwXCIsIFwiXFx1N0E2OVwiLCA2LCBcIlxcdTdBNzFcXHU3QTcyXFx1N0E3M1xcdTdBNzVcXHU3QTdCXFx1N0E3Q1xcdTdBN0RcXHU3QTdFXFx1N0E4MlxcdTdBODVcXHU3QTg3XFx1N0E4OVxcdTdBOEFcXHU3QThCXFx1N0E4Q1xcdTdBOEVcXHU3QThGXFx1N0E5MFxcdTdBOTNcXHU3QTk0XFx1N0E5OVxcdTdBOUFcXHU3QTlCXFx1N0E5RVxcdTdBQTFcXHU3QUEyXFx1OEQzMFxcdTUzRDFcXHU3RjVBXFx1N0I0RlxcdTRGMTBcXHU0RTRGXFx1OTYwMFxcdTZDRDVcXHU3M0QwXFx1ODVFOVxcdTVFMDZcXHU3NTZBXFx1N0ZGQlxcdTZBMEFcXHU3N0ZFXFx1OTQ5MlxcdTdFNDFcXHU1MUUxXFx1NzBFNlxcdTUzQ0RcXHU4RkQ0XFx1ODMwM1xcdThEMjlcXHU3MkFGXFx1OTk2RFxcdTZDREJcXHU1NzRBXFx1ODJCM1xcdTY1QjlcXHU4MEFBXFx1NjIzRlxcdTk2MzJcXHU1OUE4XFx1NEVGRlxcdThCQkZcXHU3RUJBXFx1NjUzRVxcdTgzRjJcXHU5NzVFXFx1NTU2MVxcdTk4REVcXHU4MEE1XFx1NTMyQVxcdThCRkRcXHU1NDIwXFx1ODBCQVxcdTVFOUZcXHU2Q0I4XFx1OEQzOVxcdTgyQUNcXHU5MTVBXFx1NTQyOVxcdTZDMUJcXHU1MjA2XFx1N0VCN1xcdTU3NUZcXHU3MTFBXFx1NkM3RVxcdTdDODlcXHU1OTRCXFx1NEVGRFxcdTVGRkZcXHU2MTI0XFx1N0NBQVxcdTRFMzBcXHU1QzAxXFx1NjdBQlxcdTg3MDJcXHU1Q0YwXFx1OTUwQlxcdTk4Q0VcXHU3NUFGXFx1NzBGRFxcdTkwMjJcXHU1MUFGXFx1N0YxRFxcdThCQkRcXHU1OTQ5XFx1NTFFNFxcdTRGNUJcXHU1NDI2XFx1NTkyQlxcdTY1NzdcXHU4MEE0XFx1NUI3NVxcdTYyNzZcXHU2MkMyXFx1OEY5MFxcdTVFNDVcXHU2QzFGXFx1N0IyNlxcdTRGMEZcXHU0RkQ4XFx1NjcwRFwiXSxcbiAgICAgIFtcImI4NDBcIiwgXCJcXHU3QUEzXFx1N0FBNFxcdTdBQTdcXHU3QUE5XFx1N0FBQVxcdTdBQUJcXHU3QUFFXCIsIDQsIFwiXFx1N0FCNFwiLCAxMCwgXCJcXHU3QUMwXCIsIDEwLCBcIlxcdTdBQ0NcIiwgOSwgXCJcXHU3QUQ3XFx1N0FEOFxcdTdBREFcXHU3QURCXFx1N0FEQ1xcdTdBRERcXHU3QUUxXFx1N0FFMlxcdTdBRTRcXHU3QUU3XCIsIDUsIFwiXFx1N0FFRVxcdTdBRjBcXHU3QUYxXFx1N0FGMlxcdTdBRjNcIl0sXG4gICAgICBbXCJiODgwXCIsIFwiXFx1N0FGNFwiLCA0LCBcIlxcdTdBRkJcXHU3QUZDXFx1N0FGRVxcdTdCMDBcXHU3QjAxXFx1N0IwMlxcdTdCMDVcXHU3QjA3XFx1N0IwOVxcdTdCMENcXHU3QjBEXFx1N0IwRVxcdTdCMTBcXHU3QjEyXFx1N0IxM1xcdTdCMTZcXHU3QjE3XFx1N0IxOFxcdTdCMUFcXHU3QjFDXFx1N0IxRFxcdTdCMUZcXHU3QjIxXFx1N0IyMlxcdTdCMjNcXHU3QjI3XFx1N0IyOVxcdTdCMkRcXHU2RDZFXFx1NkRBQVxcdTc5OEZcXHU4OEIxXFx1NUYxN1xcdTc1MkJcXHU2MjlBXFx1OEY4NVxcdTRGRUZcXHU5MURDXFx1NjVBN1xcdTgxMkZcXHU4MTUxXFx1NUU5Q1xcdTgxNTBcXHU4RDc0XFx1NTI2RlxcdTg5ODZcXHU4RDRCXFx1NTkwRFxcdTUwODVcXHU0RUQ4XFx1OTYxQ1xcdTcyMzZcXHU4MTc5XFx1OEQxRlxcdTVCQ0NcXHU4QkEzXFx1OTY0NFxcdTU5ODdcXHU3RjFBXFx1NTQ5MFxcdTU2NzZcXHU1NjBFXFx1OEJFNVxcdTY1MzlcXHU2OTgyXFx1OTQ5OVxcdTc2RDZcXHU2RTg5XFx1NUU3MlxcdTc1MThcXHU2NzQ2XFx1NjdEMVxcdTdBRkZcXHU4MDlEXFx1OEQ3NlxcdTYxMUZcXHU3OUM2XFx1NjU2MlxcdThENjNcXHU1MTg4XFx1NTIxQVxcdTk0QTJcXHU3RjM4XFx1ODA5QlxcdTdFQjJcXHU1Qzk3XFx1NkUyRlxcdTY3NjBcXHU3QkQ5XFx1NzY4QlxcdTlBRDhcXHU4MThGXFx1N0Y5NFxcdTdDRDVcXHU2NDFFXFx1OTU1MFxcdTdBM0ZcXHU1NDRBXFx1NTRFNVxcdTZCNENcXHU2NDAxXFx1NjIwOFxcdTlFM0RcXHU4MEYzXFx1NzU5OVxcdTUyNzJcXHU5NzY5XFx1ODQ1QlxcdTY4M0NcXHU4NkU0XFx1OTYwMVxcdTk2OTRcXHU5NEVDXFx1NEUyQVxcdTU0MDRcXHU3RUQ5XFx1NjgzOVxcdThEREZcXHU4MDE1XFx1NjZGNFxcdTVFOUFcXHU3RkI5XCJdLFxuICAgICAgW1wiYjk0MFwiLCBcIlxcdTdCMkZcXHU3QjMwXFx1N0IzMlxcdTdCMzRcXHU3QjM1XFx1N0IzNlxcdTdCMzdcXHU3QjM5XFx1N0IzQlxcdTdCM0RcXHU3QjNGXCIsIDUsIFwiXFx1N0I0NlxcdTdCNDhcXHU3QjRBXFx1N0I0RFxcdTdCNEVcXHU3QjUzXFx1N0I1NVxcdTdCNTdcXHU3QjU5XFx1N0I1Q1xcdTdCNUVcXHU3QjVGXFx1N0I2MVxcdTdCNjNcIiwgMTAsIFwiXFx1N0I2RlxcdTdCNzBcXHU3QjczXFx1N0I3NFxcdTdCNzZcXHU3Qjc4XFx1N0I3QVxcdTdCN0NcXHU3QjdEXFx1N0I3RlxcdTdCODFcXHU3QjgyXFx1N0I4M1xcdTdCODRcXHU3Qjg2XCIsIDYsIFwiXFx1N0I4RVxcdTdCOEZcIl0sXG4gICAgICBbXCJiOTgwXCIsIFwiXFx1N0I5MVxcdTdCOTJcXHU3QjkzXFx1N0I5NlxcdTdCOThcXHU3Qjk5XFx1N0I5QVxcdTdCOUJcXHU3QjlFXFx1N0I5RlxcdTdCQTBcXHU3QkEzXFx1N0JBNFxcdTdCQTVcXHU3QkFFXFx1N0JBRlxcdTdCQjBcXHU3QkIyXFx1N0JCM1xcdTdCQjVcXHU3QkI2XFx1N0JCN1xcdTdCQjlcIiwgNywgXCJcXHU3QkMyXFx1N0JDM1xcdTdCQzRcXHU1N0MyXFx1ODAzRlxcdTY4OTdcXHU1REU1XFx1NjUzQlxcdTUyOUZcXHU2MDZEXFx1OUY5QVxcdTRGOUJcXHU4RUFDXFx1NTE2Q1xcdTVCQUJcXHU1RjEzXFx1NURFOVxcdTZDNUVcXHU2MkYxXFx1OEQyMVxcdTUxNzFcXHU5NEE5XFx1NTJGRVxcdTZDOUZcXHU4MkRGXFx1NzJEN1xcdTU3QTJcXHU2Nzg0XFx1OEQyRFxcdTU5MUZcXHU4RjlDXFx1ODNDN1xcdTU0OTVcXHU3QjhEXFx1NEYzMFxcdTZDQkRcXHU1QjY0XFx1NTlEMVxcdTlGMTNcXHU1M0U0XFx1ODZDQVxcdTlBQThcXHU4QzM3XFx1ODBBMVxcdTY1NDVcXHU5ODdFXFx1NTZGQVxcdTk2QzdcXHU1MjJFXFx1NzREQ1xcdTUyNTBcXHU1QkUxXFx1NjMwMlxcdTg5MDJcXHU0RTU2XFx1NjJEMFxcdTYwMkFcXHU2OEZBXFx1NTE3M1xcdTVCOThcXHU1MUEwXFx1ODlDMlxcdTdCQTFcXHU5OTg2XFx1N0Y1MFxcdTYwRUZcXHU3MDRDXFx1OEQyRlxcdTUxNDlcXHU1RTdGXFx1OTAxQlxcdTc0NzBcXHU4OUM0XFx1NTcyRFxcdTc4NDVcXHU1RjUyXFx1OUY5RlxcdTk1RkFcXHU4RjY4XFx1OUIzQ1xcdThCRTFcXHU3Njc4XFx1Njg0MlxcdTY3RENcXHU4REVBXFx1OEQzNVxcdTUyM0RcXHU4RjhBXFx1NkVEQVxcdTY4Q0RcXHU5NTA1XFx1OTBFRFxcdTU2RkRcXHU2NzlDXFx1ODhGOVxcdThGQzdcXHU1NEM4XCJdLFxuICAgICAgW1wiYmE0MFwiLCBcIlxcdTdCQzVcXHU3QkM4XFx1N0JDOVxcdTdCQ0FcXHU3QkNCXFx1N0JDRFxcdTdCQ0VcXHU3QkNGXFx1N0JEMFxcdTdCRDJcXHU3QkQ0XCIsIDQsIFwiXFx1N0JEQlxcdTdCRENcXHU3QkRFXFx1N0JERlxcdTdCRTBcXHU3QkUyXFx1N0JFM1xcdTdCRTRcXHU3QkU3XFx1N0JFOFxcdTdCRTlcXHU3QkVCXFx1N0JFQ1xcdTdCRURcXHU3QkVGXFx1N0JGMFxcdTdCRjJcIiwgNCwgXCJcXHU3QkY4XFx1N0JGOVxcdTdCRkFcXHU3QkZCXFx1N0JGRFxcdTdCRkZcIiwgNywgXCJcXHU3QzA4XFx1N0MwOVxcdTdDMEFcXHU3QzBEXFx1N0MwRVxcdTdDMTBcIiwgNSwgXCJcXHU3QzE3XFx1N0MxOFxcdTdDMTlcIl0sXG4gICAgICBbXCJiYTgwXCIsIFwiXFx1N0MxQVwiLCA0LCBcIlxcdTdDMjBcIiwgNSwgXCJcXHU3QzI4XFx1N0MyOVxcdTdDMkJcIiwgMTIsIFwiXFx1N0MzOVwiLCA1LCBcIlxcdTdDNDJcXHU5QUI4XFx1NUI2OVxcdTZENzdcXHU2QzI2XFx1NEVBNVxcdTVCQjNcXHU5QTg3XFx1OTE2M1xcdTYxQThcXHU5MEFGXFx1OTdFOVxcdTU0MkJcXHU2REI1XFx1NUJEMlxcdTUxRkRcXHU1NThBXFx1N0Y1NVxcdTdGRjBcXHU2NEJDXFx1NjM0RFxcdTY1RjFcXHU2MUJFXFx1NjA4RFxcdTcxMEFcXHU2QzU3XFx1NkM0OVxcdTU5MkZcXHU2NzZEXFx1ODIyQVxcdTU4RDVcXHU1NjhFXFx1OEM2QVxcdTZCRUJcXHU5MEREXFx1NTk3RFxcdTgwMTdcXHU1M0Y3XFx1NkQ2OVxcdTU0NzVcXHU1NTlEXFx1ODM3N1xcdTgzQ0ZcXHU2ODM4XFx1NzlCRVxcdTU0OENcXHU0RjU1XFx1NTQwOFxcdTc2RDJcXHU4Qzg5XFx1OTYwMlxcdTZDQjNcXHU2REI4XFx1OEQ2QlxcdTg5MTBcXHU5RTY0XFx1OEQzQVxcdTU2M0ZcXHU5RUQxXFx1NzVENVxcdTVGODhcXHU3MkUwXFx1NjA2OFxcdTU0RkNcXHU0RUE4XFx1NkEyQVxcdTg4NjFcXHU2MDUyXFx1OEY3MFxcdTU0QzRcXHU3MEQ4XFx1ODY3OVxcdTlFM0ZcXHU2RDJBXFx1NUI4RlxcdTVGMThcXHU3RUEyXFx1NTU4OVxcdTRGQUZcXHU3MzM0XFx1NTQzQ1xcdTUzOUFcXHU1MDE5XFx1NTQwRVxcdTU0N0NcXHU0RTRFXFx1NUZGRFxcdTc0NUFcXHU1OEY2XFx1ODQ2QlxcdTgwRTFcXHU4Nzc0XFx1NzJEMFxcdTdDQ0FcXHU2RTU2XCJdLFxuICAgICAgW1wiYmI0MFwiLCBcIlxcdTdDNDNcIiwgOSwgXCJcXHU3QzRFXCIsIDM2LCBcIlxcdTdDNzVcIiwgNSwgXCJcXHU3QzdFXCIsIDldLFxuICAgICAgW1wiYmI4MFwiLCBcIlxcdTdDODhcXHU3QzhBXCIsIDYsIFwiXFx1N0M5M1xcdTdDOTRcXHU3Qzk2XFx1N0M5OVxcdTdDOUFcXHU3QzlCXFx1N0NBMFxcdTdDQTFcXHU3Q0EzXFx1N0NBNlxcdTdDQTdcXHU3Q0E4XFx1N0NBOVxcdTdDQUJcXHU3Q0FDXFx1N0NBRFxcdTdDQUZcXHU3Q0IwXFx1N0NCNFwiLCA0LCBcIlxcdTdDQkFcXHU3Q0JCXFx1NUYyN1xcdTg2NEVcXHU1NTJDXFx1NjJBNFxcdTRFOTJcXHU2Q0FBXFx1NjIzN1xcdTgyQjFcXHU1NEQ3XFx1NTM0RVxcdTczM0VcXHU2RUQxXFx1NzUzQlxcdTUyMTJcXHU1MzE2XFx1OEJERFxcdTY5RDBcXHU1RjhBXFx1NjAwMFxcdTZERUVcXHU1NzRGXFx1NkIyMlxcdTczQUZcXHU2ODUzXFx1OEZEOFxcdTdGMTNcXHU2MzYyXFx1NjBBM1xcdTU1MjRcXHU3NUVBXFx1OEM2MlxcdTcxMTVcXHU2REEzXFx1NUJBNlxcdTVFN0JcXHU4MzUyXFx1NjE0Q1xcdTlFQzRcXHU3OEZBXFx1ODc1N1xcdTdDMjdcXHU3Njg3XFx1NTFGMFxcdTYwRjZcXHU3MTRDXFx1NjY0M1xcdTVFNENcXHU2MDREXFx1OEMwRVxcdTcwNzBcXHU2MzI1XFx1OEY4OVxcdTVGQkRcXHU2MDYyXFx1ODZENFxcdTU2REVcXHU2QkMxXFx1NjA5NFxcdTYxNjdcXHU1MzQ5XFx1NjBFMFxcdTY2NjZcXHU4RDNGXFx1NzlGRFxcdTRGMUFcXHU3MEU5XFx1NkM0N1xcdThCQjNcXHU4QkYyXFx1N0VEOFxcdTgzNjRcXHU2NjBGXFx1NUE1QVxcdTlCNDJcXHU2RDUxXFx1NkRGN1xcdThDNDFcXHU2RDNCXFx1NEYxOVxcdTcwNkJcXHU4M0I3XFx1NjIxNlxcdTYwRDFcXHU5NzBEXFx1OEQyN1xcdTc5NzhcXHU1MUZCXFx1NTczRVxcdTU3RkFcXHU2NzNBXFx1NzU3OFxcdTdBM0RcXHU3OUVGXFx1N0I5NVwiXSxcbiAgICAgIFtcImJjNDBcIiwgXCJcXHU3Q0JGXFx1N0NDMFxcdTdDQzJcXHU3Q0MzXFx1N0NDNFxcdTdDQzZcXHU3Q0M5XFx1N0NDQlxcdTdDQ0VcIiwgNiwgXCJcXHU3Q0Q4XFx1N0NEQVxcdTdDREJcXHU3Q0REXFx1N0NERVxcdTdDRTFcIiwgNiwgXCJcXHU3Q0U5XCIsIDUsIFwiXFx1N0NGMFwiLCA3LCBcIlxcdTdDRjlcXHU3Q0ZBXFx1N0NGQ1wiLCAxMywgXCJcXHU3RDBCXCIsIDVdLFxuICAgICAgW1wiYmM4MFwiLCBcIlxcdTdEMTFcIiwgMTQsIFwiXFx1N0QyMVxcdTdEMjNcXHU3RDI0XFx1N0QyNVxcdTdEMjZcXHU3RDI4XFx1N0QyOVxcdTdEMkFcXHU3RDJDXFx1N0QyRFxcdTdEMkVcXHU3RDMwXCIsIDYsIFwiXFx1ODA4Q1xcdTk5NjVcXHU4RkY5XFx1NkZDMFxcdThCQTVcXHU5RTIxXFx1NTlFQ1xcdTdFRTlcXHU3RjA5XFx1NTQwOVxcdTY3ODFcXHU2OEQ4XFx1OEY5MVxcdTdDNERcXHU5NkM2XFx1NTNDQVxcdTYwMjVcXHU3NUJFXFx1NkM3MlxcdTUzNzNcXHU1QUM5XFx1N0VBN1xcdTYzMjRcXHU1MUUwXFx1ODEwQVxcdTVERjFcXHU4NERGXFx1NjI4MFxcdTUxODBcXHU1QjYzXFx1NEYwRVxcdTc5NkRcXHU1MjQyXFx1NjBCOFxcdTZENEVcXHU1QkM0XFx1NUJDMlxcdThCQTFcXHU4QkIwXFx1NjVFMlxcdTVGQ0NcXHU5NjQ1XFx1NTk5M1xcdTdFRTdcXHU3RUFBXFx1NTYwOVxcdTY3QjdcXHU1OTM5XFx1NEY3M1xcdTVCQjZcXHU1MkEwXFx1ODM1QVxcdTk4OEFcXHU4RDNFXFx1NzUzMlxcdTk0QkVcXHU1MDQ3XFx1N0EzQ1xcdTRFRjdcXHU2N0I2XFx1OUE3RVxcdTVBQzFcXHU2QjdDXFx1NzZEMVxcdTU3NUFcXHU1QzE2XFx1N0IzQVxcdTk1RjRcXHU3MTRFXFx1NTE3Q1xcdTgwQTlcXHU4MjcwXFx1NTk3OFxcdTdGMDRcXHU4MzI3XFx1NjhDMFxcdTY3RUNcXHU3OEIxXFx1Nzg3N1xcdTYyRTNcXHU2MzYxXFx1N0I4MFxcdTRGRURcXHU1MjZBXFx1NTFDRlxcdTgzNTBcXHU2OURCXFx1OTI3NFxcdThERjVcXHU4RDMxXFx1ODlDMVxcdTk1MkVcXHU3QkFEXFx1NEVGNlwiXSxcbiAgICAgIFtcImJkNDBcIiwgXCJcXHU3RDM3XCIsIDU0LCBcIlxcdTdENkZcIiwgN10sXG4gICAgICBbXCJiZDgwXCIsIFwiXFx1N0Q3OFwiLCAzMiwgXCJcXHU1MDY1XFx1ODIzMFxcdTUyNTFcXHU5OTZGXFx1NkUxMFxcdTZFODVcXHU2REE3XFx1NUVGQVxcdTUwRjVcXHU1OURDXFx1NUMwNlxcdTZENDZcXHU2QzVGXFx1NzU4NlxcdTg0OEJcXHU2ODY4XFx1NTk1NlxcdThCQjJcXHU1MzIwXFx1OTE3MVxcdTk2NERcXHU4NTQ5XFx1NjkxMlxcdTc5MDFcXHU3MTI2XFx1ODBGNlxcdTRFQTRcXHU5MENBXFx1NkQ0N1xcdTlBODRcXHU1QTA3XFx1NTZCQ1xcdTY0MDVcXHU5NEYwXFx1NzdFQlxcdTRGQTVcXHU4MTFBXFx1NzJFMVxcdTg5RDJcXHU5OTdBXFx1N0YzNFxcdTdFREVcXHU1MjdGXFx1NjU1OVxcdTkxNzVcXHU4RjdGXFx1OEY4M1xcdTUzRUJcXHU3QTk2XFx1NjNFRFxcdTYzQTVcXHU3Njg2XFx1NzlGOFxcdTg4NTdcXHU5NjM2XFx1NjIyQVxcdTUyQUJcXHU4MjgyXFx1Njg1NFxcdTY3NzBcXHU2Mzc3XFx1Nzc2QlxcdTdBRURcXHU2RDAxXFx1N0VEM1xcdTg5RTNcXHU1OUQwXFx1NjIxMlxcdTg1QzlcXHU4MkE1XFx1NzU0Q1xcdTUwMUZcXHU0RUNCXFx1NzVBNVxcdThCRUJcXHU1QzRBXFx1NURGRVxcdTdCNEJcXHU2NUE0XFx1OTFEMVxcdTRFQ0FcXHU2RDI1XFx1ODk1RlxcdTdEMjdcXHU5NTI2XFx1NEVDNVxcdThDMjhcXHU4RkRCXFx1OTc3M1xcdTY2NEJcXHU3OTgxXFx1OEZEMVxcdTcwRUNcXHU2RDc4XCJdLFxuICAgICAgW1wiYmU0MFwiLCBcIlxcdTdEOTlcIiwgMTIsIFwiXFx1N0RBN1wiLCA2LCBcIlxcdTdEQUZcIiwgNDJdLFxuICAgICAgW1wiYmU4MFwiLCBcIlxcdTdEREFcIiwgMzIsIFwiXFx1NUMzRFxcdTUyQjJcXHU4MzQ2XFx1NTE2MlxcdTgzMEVcXHU3NzVCXFx1NjY3NlxcdTlDQjhcXHU0RUFDXFx1NjBDQVxcdTdDQkVcXHU3Q0IzXFx1N0VDRlxcdTRFOTVcXHU4QjY2XFx1NjY2RlxcdTk4ODhcXHU5NzU5XFx1NTg4M1xcdTY1NkNcXHU5NTVDXFx1NUY4NFxcdTc1QzlcXHU5NzU2XFx1N0FERlxcdTdBREVcXHU1MUMwXFx1NzBBRlxcdTdBOThcXHU2M0VBXFx1N0E3NlxcdTdFQTBcXHU3Mzk2XFx1OTdFRFxcdTRFNDVcXHU3MDc4XFx1NEU1RFxcdTkxNTJcXHU1M0E5XFx1NjU1MVxcdTY1RTdcXHU4MUZDXFx1ODIwNVxcdTU0OEVcXHU1QzMxXFx1NzU5QVxcdTk3QTBcXHU2MkQ4XFx1NzJEOVxcdTc1QkRcXHU1QzQ1XFx1OUE3OVxcdTgzQ0FcXHU1QzQwXFx1NTQ4MFxcdTc3RTlcXHU0RTNFXFx1NkNBRVxcdTgwNUFcXHU2MkQyXFx1NjM2RVxcdTVERThcXHU1MTc3XFx1OERERFxcdThFMUVcXHU5NTJGXFx1NEZGMVxcdTUzRTVcXHU2MEU3XFx1NzBBQ1xcdTUyNjdcXHU2MzUwXFx1OUU0M1xcdTVBMUZcXHU1MDI2XFx1NzczN1xcdTUzNzdcXHU3RUUyXFx1NjQ4NVxcdTY1MkJcXHU2Mjg5XFx1NjM5OFxcdTUwMTRcXHU3MjM1XFx1ODlDOVxcdTUxQjNcXHU4QkMwXFx1N0VERFxcdTU3NDdcXHU4M0NDXFx1OTRBN1xcdTUxOUJcXHU1NDFCXFx1NUNGQlwiXSxcbiAgICAgIFtcImJmNDBcIiwgXCJcXHU3REZCXCIsIDYyXSxcbiAgICAgIFtcImJmODBcIiwgXCJcXHU3RTNBXFx1N0UzQ1wiLCA0LCBcIlxcdTdFNDJcIiwgNCwgXCJcXHU3RTQ4XCIsIDIxLCBcIlxcdTRGQ0FcXHU3QUUzXFx1NkQ1QVxcdTkwRTFcXHU5QThGXFx1NTU4MFxcdTU0OTZcXHU1MzYxXFx1NTRBRlxcdTVGMDBcXHU2M0U5XFx1Njk3N1xcdTUxRUZcXHU2MTY4XFx1NTIwQVxcdTU4MkFcXHU1MkQ4XFx1NTc0RVxcdTc4MERcXHU3NzBCXFx1NUVCN1xcdTYxNzdcXHU3Q0UwXFx1NjI1QlxcdTYyOTdcXHU0RUEyXFx1NzA5NVxcdTgwMDNcXHU2MkY3XFx1NzBFNFxcdTk3NjBcXHU1Nzc3XFx1ODJEQlxcdTY3RUZcXHU2OEY1XFx1NzhENVxcdTk4OTdcXHU3OUQxXFx1NThGM1xcdTU0QjNcXHU1M0VGXFx1NkUzNFxcdTUxNEJcXHU1MjNCXFx1NUJBMlxcdThCRkVcXHU4MEFGXFx1NTU0M1xcdTU3QTZcXHU2MDczXFx1NTc1MVxcdTU0MkRcXHU3QTdBXFx1NjA1MFxcdTVCNTRcXHU2M0E3XFx1NjJBMFxcdTUzRTNcXHU2MjYzXFx1NUJDN1xcdTY3QUZcXHU1NEVEXFx1N0E5RlxcdTgyRTZcXHU5MTc3XFx1NUU5M1xcdTg4RTRcXHU1OTM4XFx1NTdBRVxcdTYzMEVcXHU4REU4XFx1ODBFRlxcdTU3NTdcXHU3Qjc3XFx1NEZBOVxcdTVGRUJcXHU1QkJEXFx1NkIzRVxcdTUzMjFcXHU3QjUwXFx1NzJDMlxcdTY4NDZcXHU3N0ZGXFx1NzczNlxcdTY1RjdcXHU1MUI1XFx1NEU4RlxcdTc2RDRcXHU1Q0JGXFx1N0FBNVxcdTg0NzVcXHU1OTRFXFx1OUI0MVxcdTUwODBcIl0sXG4gICAgICBbXCJjMDQwXCIsIFwiXFx1N0U1RVwiLCAzNSwgXCJcXHU3RTgzXCIsIDIzLCBcIlxcdTdFOUNcXHU3RTlEXFx1N0U5RVwiXSxcbiAgICAgIFtcImMwODBcIiwgXCJcXHU3RUFFXFx1N0VCNFxcdTdFQkJcXHU3RUJDXFx1N0VENlxcdTdFRTRcXHU3RUVDXFx1N0VGOVxcdTdGMEFcXHU3RjEwXFx1N0YxRVxcdTdGMzdcXHU3RjM5XFx1N0YzQlwiLCA2LCBcIlxcdTdGNDNcXHU3RjQ2XCIsIDksIFwiXFx1N0Y1MlxcdTdGNTNcXHU5OTg4XFx1NjEyN1xcdTZFODNcXHU1NzY0XFx1NjYwNlxcdTYzNDZcXHU1NkYwXFx1NjJFQ1xcdTYyNjlcXHU1RUQzXFx1OTYxNFxcdTU3ODNcXHU2MkM5XFx1NTU4N1xcdTg3MjFcXHU4MTRBXFx1OEZBM1xcdTU1NjZcXHU4M0IxXFx1Njc2NVxcdThENTZcXHU4NEREXFx1NUE2QVxcdTY4MEZcXHU2MkU2XFx1N0JFRVxcdTk2MTFcXHU1MTcwXFx1NkY5Q1xcdThDMzBcXHU2M0ZEXFx1ODlDOFxcdTYxRDJcXHU3RjA2XFx1NzBDMlxcdTZFRTVcXHU3NDA1XFx1Njk5NFxcdTcyRkNcXHU1RUNBXFx1OTBDRVxcdTY3MTdcXHU2RDZBXFx1NjM1RVxcdTUyQjNcXHU3MjYyXFx1ODAwMVxcdTRGNkNcXHU1OUU1XFx1OTE2QVxcdTcwRDlcXHU2RDlEXFx1NTJEMlxcdTRFNTBcXHU5NkY3XFx1OTU2RFxcdTg1N0VcXHU3OENBXFx1N0QyRlxcdTUxMjFcXHU1NzkyXFx1NjRDMlxcdTgwOEJcXHU3QzdCXFx1NkNFQVxcdTY4RjFcXHU2OTVFXFx1NTFCN1xcdTUzOThcXHU2OEE4XFx1NzI4MVxcdTlFQ0VcXHU3QkYxXFx1NzJGOFxcdTc5QkJcXHU2RjEzXFx1NzQwNlxcdTY3NEVcXHU5MUNDXFx1OUNBNFxcdTc5M0NcXHU4Mzg5XFx1ODM1NFxcdTU0MEZcXHU2ODE3XFx1NEUzRFxcdTUzODlcXHU1MkIxXFx1NzgzRVxcdTUzODZcXHU1MjI5XFx1NTA4OFxcdTRGOEJcXHU0RkQwXCJdLFxuICAgICAgW1wiYzE0MFwiLCBcIlxcdTdGNTZcXHU3RjU5XFx1N0Y1QlxcdTdGNUNcXHU3RjVEXFx1N0Y1RVxcdTdGNjBcXHU3RjYzXCIsIDQsIFwiXFx1N0Y2QlxcdTdGNkNcXHU3RjZEXFx1N0Y2RlxcdTdGNzBcXHU3RjczXFx1N0Y3NVxcdTdGNzZcXHU3Rjc3XFx1N0Y3OFxcdTdGN0FcXHU3RjdCXFx1N0Y3Q1xcdTdGN0RcXHU3RjdGXFx1N0Y4MFxcdTdGODJcIiwgNywgXCJcXHU3RjhCXFx1N0Y4RFxcdTdGOEZcIiwgNCwgXCJcXHU3Rjk1XCIsIDQsIFwiXFx1N0Y5QlxcdTdGOUNcXHU3RkEwXFx1N0ZBMlxcdTdGQTNcXHU3RkE1XFx1N0ZBNlxcdTdGQThcIiwgNiwgXCJcXHU3RkIxXCJdLFxuICAgICAgW1wiYzE4MFwiLCBcIlxcdTdGQjNcIiwgNCwgXCJcXHU3RkJBXFx1N0ZCQlxcdTdGQkVcXHU3RkMwXFx1N0ZDMlxcdTdGQzNcXHU3RkM0XFx1N0ZDNlxcdTdGQzdcXHU3RkM4XFx1N0ZDOVxcdTdGQ0JcXHU3RkNEXFx1N0ZDRlwiLCA0LCBcIlxcdTdGRDZcXHU3RkQ3XFx1N0ZEOVwiLCA1LCBcIlxcdTdGRTJcXHU3RkUzXFx1NzVFMlxcdTdBQ0JcXHU3QzkyXFx1NkNBNVxcdTk2QjZcXHU1MjlCXFx1NzQ4M1xcdTU0RTlcXHU0RkU5XFx1ODA1NFxcdTgzQjJcXHU4RkRFXFx1OTU3MFxcdTVFQzlcXHU2MDFDXFx1NkQ5RlxcdTVFMThcXHU2NTVCXFx1ODEzOFxcdTk0RkVcXHU2MDRCXFx1NzBCQ1xcdTdFQzNcXHU3Q0FFXFx1NTFDOVxcdTY4ODFcXHU3Q0IxXFx1ODI2RlxcdTRFMjRcXHU4Rjg2XFx1OTFDRlxcdTY2N0VcXHU0RUFFXFx1OEMwNVxcdTY0QTlcXHU4MDRBXFx1NTBEQVxcdTc1OTdcXHU3MUNFXFx1NUJFNVxcdThGQkRcXHU2RjY2XFx1NEU4NlxcdTY0ODJcXHU5NTYzXFx1NUVENlxcdTY1OTlcXHU1MjE3XFx1ODhDMlxcdTcwQzhcXHU1MkEzXFx1NzMwRVxcdTc0MzNcXHU2Nzk3XFx1NzhGN1xcdTk3MTZcXHU0RTM0XFx1OTBCQlxcdTlDREVcXHU2RENCXFx1NTFEQlxcdThENDFcXHU1NDFEXFx1NjJDRVxcdTczQjJcXHU4M0YxXFx1OTZGNlxcdTlGODRcXHU5NEMzXFx1NEYzNlxcdTdGOUFcXHU1MUNDXFx1NzA3NVxcdTk2NzVcXHU1Q0FEXFx1OTg4NlxcdTUzRTZcXHU0RUU0XFx1NkU5Q1xcdTc0MDlcXHU2OUI0XFx1Nzg2QlxcdTk5OEZcXHU3NTU5XFx1NTIxOFxcdTc2MjRcXHU2RDQxXFx1NjdGM1xcdTUxNkRcXHU5Rjk5XFx1ODA0QlxcdTU0OTlcXHU3QjNDXFx1N0FCRlwiXSxcbiAgICAgIFtcImMyNDBcIiwgXCJcXHU3RkU0XFx1N0ZFN1xcdTdGRThcXHU3RkVBXFx1N0ZFQlxcdTdGRUNcXHU3RkVEXFx1N0ZFRlxcdTdGRjJcXHU3RkY0XCIsIDYsIFwiXFx1N0ZGRFxcdTdGRkVcXHU3RkZGXFx1ODAwMlxcdTgwMDdcXHU4MDA4XFx1ODAwOVxcdTgwMEFcXHU4MDBFXFx1ODAwRlxcdTgwMTFcXHU4MDEzXFx1ODAxQVxcdTgwMUJcXHU4MDFEXFx1ODAxRVxcdTgwMUZcXHU4MDIxXFx1ODAyM1xcdTgwMjRcXHU4MDJCXCIsIDUsIFwiXFx1ODAzMlxcdTgwMzRcXHU4MDM5XFx1ODAzQVxcdTgwM0NcXHU4MDNFXFx1ODA0MFxcdTgwNDFcXHU4MDQ0XFx1ODA0NVxcdTgwNDdcXHU4MDQ4XFx1ODA0OVxcdTgwNEVcXHU4MDRGXFx1ODA1MFxcdTgwNTFcXHU4MDUzXFx1ODA1NVxcdTgwNTZcXHU4MDU3XCJdLFxuICAgICAgW1wiYzI4MFwiLCBcIlxcdTgwNTlcXHU4MDVCXCIsIDEzLCBcIlxcdTgwNkJcIiwgNSwgXCJcXHU4MDcyXCIsIDExLCBcIlxcdTk2ODZcXHU1Nzg0XFx1NjJFMlxcdTk2NDdcXHU2OTdDXFx1NUEwNFxcdTY0MDJcXHU3QkQzXFx1NkYwRlxcdTk2NEJcXHU4MkE2XFx1NTM2MlxcdTk4ODVcXHU1RTkwXFx1NzA4OVxcdTYzQjNcXHU1MzY0XFx1ODY0RlxcdTlDODFcXHU5RTkzXFx1Nzg4Q1xcdTk3MzJcXHU4REVGXFx1OEQ0MlxcdTlFN0ZcXHU2RjVFXFx1Nzk4NFxcdTVGNTVcXHU5NjQ2XFx1NjIyRVxcdTlBNzRcXHU1NDE1XFx1OTRERFxcdTRGQTNcXHU2NUM1XFx1NUM2NVxcdTVDNjFcXHU3RjE1XFx1ODY1MVxcdTZDMkZcXHU1RjhCXFx1NzM4N1xcdTZFRTRcXHU3RUZGXFx1NUNFNlxcdTYzMUJcXHU1QjZBXFx1NkVFNlxcdTUzNzVcXHU0RTcxXFx1NjNBMFxcdTc1NjVcXHU2MkExXFx1OEY2RVxcdTRGMjZcXHU0RUQxXFx1NkNBNlxcdTdFQjZcXHU4QkJBXFx1ODQxRFxcdTg3QkFcXHU3RjU3XFx1OTAzQlxcdTk1MjNcXHU3QkE5XFx1OUFBMVxcdTg4RjhcXHU4NDNEXFx1NkQxQlxcdTlBODZcXHU3RURDXFx1NTk4OFxcdTlFQkJcXHU3MzlCXFx1NzgwMVxcdTg2ODJcXHU5QTZDXFx1OUE4MlxcdTU2MUJcXHU1NDE3XFx1NTdDQlxcdTRFNzBcXHU5RUE2XFx1NTM1NlxcdThGQzhcXHU4MTA5XFx1Nzc5MlxcdTk5OTJcXHU4NkVFXFx1NkVFMVxcdTg1MTNcXHU2NkZDXFx1NjE2MlxcdTZGMkJcIl0sXG4gICAgICBbXCJjMzQwXCIsIFwiXFx1ODA3RVxcdTgwODFcXHU4MDgyXFx1ODA4NVxcdTgwODhcXHU4MDhBXFx1ODA4RFwiLCA1LCBcIlxcdTgwOTRcXHU4MDk1XFx1ODA5N1xcdTgwOTlcXHU4MDlFXFx1ODBBM1xcdTgwQTZcXHU4MEE3XFx1ODBBOFxcdTgwQUNcXHU4MEIwXFx1ODBCM1xcdTgwQjVcXHU4MEI2XFx1ODBCOFxcdTgwQjlcXHU4MEJCXFx1ODBDNVxcdTgwQzdcIiwgNCwgXCJcXHU4MENGXCIsIDYsIFwiXFx1ODBEOFxcdTgwREZcXHU4MEUwXFx1ODBFMlxcdTgwRTNcXHU4MEU2XFx1ODBFRVxcdTgwRjVcXHU4MEY3XFx1ODBGOVxcdTgwRkJcXHU4MEZFXFx1ODBGRlxcdTgxMDBcXHU4MTAxXFx1ODEwM1xcdTgxMDRcXHU4MTA1XFx1ODEwN1xcdTgxMDhcXHU4MTBCXCJdLFxuICAgICAgW1wiYzM4MFwiLCBcIlxcdTgxMENcXHU4MTE1XFx1ODExN1xcdTgxMTlcXHU4MTFCXFx1ODExQ1xcdTgxMURcXHU4MTFGXCIsIDEyLCBcIlxcdTgxMkRcXHU4MTJFXFx1ODEzMFxcdTgxMzNcXHU4MTM0XFx1ODEzNVxcdTgxMzdcXHU4MTM5XCIsIDQsIFwiXFx1ODEzRlxcdThDMjlcXHU4MjkyXFx1ODMyQlxcdTc2RjJcXHU2QzEzXFx1NUZEOVxcdTgzQkRcXHU3MzJCXFx1ODMwNVxcdTk1MUFcXHU2QkRCXFx1NzdEQlxcdTk0QzZcXHU1MzZGXFx1ODMwMlxcdTUxOTJcXHU1RTNEXFx1OEM4Q1xcdThEMzhcXHU0RTQ4XFx1NzNBQlxcdTY3OUFcXHU2ODg1XFx1OTE3NlxcdTk3MDlcXHU3MTY0XFx1NkNBMVxcdTc3MDlcXHU1QTkyXFx1OTU0MVxcdTZCQ0ZcXHU3RjhFXFx1NjYyN1xcdTVCRDBcXHU1OUI5XFx1NUE5QVxcdTk1RThcXHU5NUY3XFx1NEVFQ1xcdTg0MENcXHU4NDk5XFx1NkFBQ1xcdTc2REZcXHU5NTMwXFx1NzMxQlxcdTY4QTZcXHU1QjVGXFx1NzcyRlxcdTkxOUFcXHU5NzYxXFx1N0NEQ1xcdThGRjdcXHU4QzFDXFx1NUYyNVxcdTdDNzNcXHU3OUQ4XFx1ODlDNVxcdTZDQ0NcXHU4NzFDXFx1NUJDNlxcdTVFNDJcXHU2OEM5XFx1NzcyMFxcdTdFRjVcXHU1MTk1XFx1NTE0RFxcdTUyQzlcXHU1QTI5XFx1N0YwNVxcdTk3NjJcXHU4MkQ3XFx1NjNDRlxcdTc3ODRcXHU4NUQwXFx1NzlEMlxcdTZFM0FcXHU1RTk5XFx1NTk5OVxcdTg1MTFcXHU3MDZEXFx1NkMxMVxcdTYyQkZcXHU3NkJGXFx1NjU0RlxcdTYwQUZcXHU5NUZEXFx1NjYwRVxcdTg3OUZcXHU5RTIzXFx1OTRFRFxcdTU0MERcXHU1NDdEXFx1OEMyQ1xcdTY0NzhcIl0sXG4gICAgICBbXCJjNDQwXCIsIFwiXFx1ODE0MFwiLCA1LCBcIlxcdTgxNDdcXHU4MTQ5XFx1ODE0RFxcdTgxNEVcXHU4MTRGXFx1ODE1MlxcdTgxNTZcXHU4MTU3XFx1ODE1OFxcdTgxNUJcIiwgNCwgXCJcXHU4MTYxXFx1ODE2MlxcdTgxNjNcXHU4MTY0XFx1ODE2NlxcdTgxNjhcXHU4MTZBXFx1ODE2QlxcdTgxNkNcXHU4MTZGXFx1ODE3MlxcdTgxNzNcXHU4MTc1XFx1ODE3NlxcdTgxNzdcXHU4MTc4XFx1ODE4MVxcdTgxODNcIiwgNCwgXCJcXHU4MTg5XFx1ODE4QlxcdTgxOENcXHU4MThEXFx1ODE4RVxcdTgxOTBcXHU4MTkyXCIsIDUsIFwiXFx1ODE5OVxcdTgxOUFcXHU4MTlFXCIsIDQsIFwiXFx1ODFBNFxcdTgxQTVcIl0sXG4gICAgICBbXCJjNDgwXCIsIFwiXFx1ODFBN1xcdTgxQTlcXHU4MUFCXCIsIDcsIFwiXFx1ODFCNFwiLCA1LCBcIlxcdTgxQkNcXHU4MUJEXFx1ODFCRVxcdTgxQkZcXHU4MUM0XFx1ODFDNVxcdTgxQzdcXHU4MUM4XFx1ODFDOVxcdTgxQ0JcXHU4MUNEXCIsIDYsIFwiXFx1NjQ3OVxcdTg2MTFcXHU2QTIxXFx1ODE5Q1xcdTc4RThcXHU2NDY5XFx1OUI1NFxcdTYyQjlcXHU2NzJCXFx1ODNBQlxcdTU4QThcXHU5RUQ4XFx1NkNBQlxcdTZGMjBcXHU1QkRFXFx1OTY0Q1xcdThDMEJcXHU3MjVGXFx1NjdEMFxcdTYyQzdcXHU3MjYxXFx1NEVBOVxcdTU5QzZcXHU2QkNEXFx1NTg5M1xcdTY2QUVcXHU1RTU1XFx1NTJERlxcdTYxNTVcXHU2NzI4XFx1NzZFRVxcdTc3NjZcXHU3MjY3XFx1N0E0NlxcdTYyRkZcXHU1NEVBXFx1NTQ1MFxcdTk0QTBcXHU5MEEzXFx1NUExQ1xcdTdFQjNcXHU2QzE2XFx1NEU0M1xcdTU5NzZcXHU4MDEwXFx1NTk0OFxcdTUzNTdcXHU3NTM3XFx1OTZCRVxcdTU2Q0FcXHU2MzIwXFx1ODExMVxcdTYwN0NcXHU5NUY5XFx1NkRENlxcdTU0NjJcXHU5OTgxXFx1NTE4NVxcdTVBRTlcXHU4MEZEXFx1NTlBRVxcdTk3MTNcXHU1MDJBXFx1NkNFNVxcdTVDM0NcXHU2MkRGXFx1NEY2MFxcdTUzM0ZcXHU4MTdCXFx1OTAwNlxcdTZFQkFcXHU4NTJCXFx1NjJDOFxcdTVFNzRcXHU3OEJFXFx1NjRCNVxcdTYzN0JcXHU1RkY1XFx1NUExOFxcdTkxN0ZcXHU5RTFGXFx1NUMzRlxcdTYzNEZcXHU4MDQyXFx1NUI3RFxcdTU1NkVcXHU5NTRBXFx1OTU0RFxcdTZEODVcXHU2MEE4XFx1NjdFMFxcdTcyREVcXHU1MUREXFx1NUI4MVwiXSxcbiAgICAgIFtcImM1NDBcIiwgXCJcXHU4MUQ0XCIsIDE0LCBcIlxcdTgxRTRcXHU4MUU1XFx1ODFFNlxcdTgxRThcXHU4MUU5XFx1ODFFQlxcdTgxRUVcIiwgNCwgXCJcXHU4MUY1XCIsIDUsIFwiXFx1ODFGRFxcdTgxRkZcXHU4MjAzXFx1ODIwN1wiLCA0LCBcIlxcdTgyMEVcXHU4MjBGXFx1ODIxMVxcdTgyMTNcXHU4MjE1XCIsIDUsIFwiXFx1ODIxRFxcdTgyMjBcXHU4MjI0XFx1ODIyNVxcdTgyMjZcXHU4MjI3XFx1ODIyOVxcdTgyMkVcXHU4MjMyXFx1ODIzQVxcdTgyM0NcXHU4MjNEXFx1ODIzRlwiXSxcbiAgICAgIFtcImM1ODBcIiwgXCJcXHU4MjQwXFx1ODI0MVxcdTgyNDJcXHU4MjQzXFx1ODI0NVxcdTgyNDZcXHU4MjQ4XFx1ODI0QVxcdTgyNENcXHU4MjREXFx1ODI0RVxcdTgyNTBcIiwgNywgXCJcXHU4MjU5XFx1ODI1QlxcdTgyNUNcXHU4MjVEXFx1ODI1RVxcdTgyNjBcIiwgNywgXCJcXHU4MjY5XFx1NjJFN1xcdTZDREVcXHU3MjVCXFx1NjI2RFxcdTk0QUVcXHU3RUJEXFx1ODExM1xcdTZENTNcXHU1MTlDXFx1NUYwNFxcdTU5NzRcXHU1MkFBXFx1NjAxMlxcdTU5NzNcXHU2Njk2XFx1ODY1MFxcdTc1OUZcXHU2MzJBXFx1NjFFNlxcdTdDRUZcXHU4QkZBXFx1NTRFNlxcdTZCMjdcXHU5RTI1XFx1NkJCNFxcdTg1RDVcXHU1NDU1XFx1NTA3NlxcdTZDQTRcXHU1NTZBXFx1OERCNFxcdTcyMkNcXHU1RTE1XFx1NjAxNVxcdTc0MzZcXHU2MkNEXFx1NjM5MlxcdTcyNENcXHU1Rjk4XFx1NkU0M1xcdTZEM0VcXHU2NTAwXFx1NkY1OFxcdTc2RDhcXHU3OEQwXFx1NzZGQ1xcdTc1NTRcXHU1MjI0XFx1NTNEQlxcdTRFNTNcXHU1RTlFXFx1NjVDMVxcdTgwMkFcXHU4MEQ2XFx1NjI5QlxcdTU0ODZcXHU1MjI4XFx1NzBBRVxcdTg4OERcXHU4REQxXFx1NkNFMVxcdTU0NzhcXHU4MERBXFx1NTdGOVxcdTg4RjRcXHU4RDU0XFx1OTY2QVxcdTkxNERcXHU0RjY5XFx1NkM5QlxcdTU1QjdcXHU3NkM2XFx1NzgzMFxcdTYyQThcXHU3MEY5XFx1NkY4RVxcdTVGNkRcXHU4NEVDXFx1NjhEQVxcdTc4N0NcXHU3QkY3XFx1ODFBOFxcdTY3MEJcXHU5RTRGXFx1NjM2N1xcdTc4QjBcXHU1NzZGXFx1NzgxMlxcdTk3MzlcXHU2Mjc5XFx1NjJBQlxcdTUyODhcXHU3NDM1XFx1NkJEN1wiXSxcbiAgICAgIFtcImM2NDBcIiwgXCJcXHU4MjZBXFx1ODI2QlxcdTgyNkNcXHU4MjZEXFx1ODI3MVxcdTgyNzVcXHU4Mjc2XFx1ODI3N1xcdTgyNzhcXHU4MjdCXFx1ODI3Q1xcdTgyODBcXHU4MjgxXFx1ODI4M1xcdTgyODVcXHU4Mjg2XFx1ODI4N1xcdTgyODlcXHU4MjhDXFx1ODI5MFxcdTgyOTNcXHU4Mjk0XFx1ODI5NVxcdTgyOTZcXHU4MjlBXFx1ODI5QlxcdTgyOUVcXHU4MkEwXFx1ODJBMlxcdTgyQTNcXHU4MkE3XFx1ODJCMlxcdTgyQjVcXHU4MkI2XFx1ODJCQVxcdTgyQkJcXHU4MkJDXFx1ODJCRlxcdTgyQzBcXHU4MkMyXFx1ODJDM1xcdTgyQzVcXHU4MkM2XFx1ODJDOVxcdTgyRDBcXHU4MkQ2XFx1ODJEOVxcdTgyREFcXHU4MkREXFx1ODJFMlxcdTgyRTdcXHU4MkU4XFx1ODJFOVxcdTgyRUFcXHU4MkVDXFx1ODJFRFxcdTgyRUVcXHU4MkYwXFx1ODJGMlxcdTgyRjNcXHU4MkY1XFx1ODJGNlxcdTgyRjhcIl0sXG4gICAgICBbXCJjNjgwXCIsIFwiXFx1ODJGQVxcdTgyRkNcIiwgNCwgXCJcXHU4MzBBXFx1ODMwQlxcdTgzMERcXHU4MzEwXFx1ODMxMlxcdTgzMTNcXHU4MzE2XFx1ODMxOFxcdTgzMTlcXHU4MzFEXCIsIDksIFwiXFx1ODMyOVxcdTgzMkFcXHU4MzJFXFx1ODMzMFxcdTgzMzJcXHU4MzM3XFx1ODMzQlxcdTgzM0RcXHU1NTY0XFx1ODEzRVxcdTc1QjJcXHU3NkFFXFx1NTMzOVxcdTc1REVcXHU1MEZCXFx1NUM0MVxcdThCNkNcXHU3QkM3XFx1NTA0RlxcdTcyNDdcXHU5QTk3XFx1OThEOFxcdTZGMDJcXHU3NEUyXFx1Nzk2OFxcdTY0ODdcXHU3N0E1XFx1NjJGQ1xcdTk4OTFcXHU4RDJCXFx1NTRDMVxcdTgwNThcXHU0RTUyXFx1NTc2QVxcdTgyRjlcXHU4NDBEXFx1NUU3M1xcdTUxRURcXHU3NEY2XFx1OEJDNFxcdTVDNEZcXHU1NzYxXFx1NkNGQ1xcdTk4ODdcXHU1QTQ2XFx1NzgzNFxcdTlCNDRcXHU4RkVCXFx1N0M5NVxcdTUyNTZcXHU2MjUxXFx1OTRGQVxcdTRFQzZcXHU4Mzg2XFx1ODQ2MVxcdTgzRTlcXHU4NEIyXFx1NTdENFxcdTY3MzRcXHU1NzAzXFx1NjY2RVxcdTZENjZcXHU4QzMxXFx1NjZERFxcdTcwMTFcXHU2NzFGXFx1NkIzQVxcdTY4MTZcXHU2MjFBXFx1NTlCQlxcdTRFMDNcXHU1MUM0XFx1NkYwNlxcdTY3RDJcXHU2QzhGXFx1NTE3NlxcdTY4Q0JcXHU1OTQ3XFx1NkI2N1xcdTc1NjZcXHU1RDBFXFx1ODExMFxcdTlGNTBcXHU2NUQ3XFx1Nzk0OFxcdTc5NDFcXHU5QTkxXFx1OEQ3N1xcdTVDODJcXHU0RTVFXFx1NEYwMVxcdTU0MkZcXHU1OTUxXFx1NzgwQ1xcdTU2NjhcXHU2QzE0XFx1OEZDNFxcdTVGMDNcXHU2QzdEXFx1NkNFM1xcdThCQUJcXHU2MzkwXCJdLFxuICAgICAgW1wiYzc0MFwiLCBcIlxcdTgzM0VcXHU4MzNGXFx1ODM0MVxcdTgzNDJcXHU4MzQ0XFx1ODM0NVxcdTgzNDhcXHU4MzRBXCIsIDQsIFwiXFx1ODM1M1xcdTgzNTVcIiwgNCwgXCJcXHU4MzVEXFx1ODM2MlxcdTgzNzBcIiwgNiwgXCJcXHU4Mzc5XFx1ODM3QVxcdTgzN0VcIiwgNiwgXCJcXHU4Mzg3XFx1ODM4OFxcdTgzOEFcXHU4MzhCXFx1ODM4Q1xcdTgzOERcXHU4MzhGXFx1ODM5MFxcdTgzOTFcXHU4Mzk0XFx1ODM5NVxcdTgzOTZcXHU4Mzk3XFx1ODM5OVxcdTgzOUFcXHU4MzlEXFx1ODM5RlxcdTgzQTFcIiwgNiwgXCJcXHU4M0FDXFx1ODNBRFxcdTgzQUVcIl0sXG4gICAgICBbXCJjNzgwXCIsIFwiXFx1ODNBRlxcdTgzQjVcXHU4M0JCXFx1ODNCRVxcdTgzQkZcXHU4M0MyXFx1ODNDM1xcdTgzQzRcXHU4M0M2XFx1ODNDOFxcdTgzQzlcXHU4M0NCXFx1ODNDRFxcdTgzQ0VcXHU4M0QwXFx1ODNEMVxcdTgzRDJcXHU4M0QzXFx1ODNENVxcdTgzRDdcXHU4M0Q5XFx1ODNEQVxcdTgzREJcXHU4M0RFXFx1ODNFMlxcdTgzRTNcXHU4M0U0XFx1ODNFNlxcdTgzRTdcXHU4M0U4XFx1ODNFQlxcdTgzRUNcXHU4M0VEXFx1NjA3MFxcdTZEM0RcXHU3Mjc1XFx1NjI2NlxcdTk0OEVcXHU5NEM1XFx1NTM0M1xcdThGQzFcXHU3QjdFXFx1NEVERlxcdThDMjZcXHU0RTdFXFx1OUVENFxcdTk0QjFcXHU5NEIzXFx1NTI0RFxcdTZGNUNcXHU5MDYzXFx1NkQ0NVxcdThDMzRcXHU1ODExXFx1NUQ0Q1xcdTZCMjBcXHU2QjQ5XFx1NjdBQVxcdTU0NUJcXHU4MTU0XFx1N0Y4Q1xcdTU4OTlcXHU4NTM3XFx1NUYzQVxcdTYyQTJcXHU2QTQ3XFx1OTUzOVxcdTY1NzJcXHU2MDg0XFx1Njg2NVxcdTc3QTdcXHU0RTU0XFx1NEZBOFxcdTVERTdcXHU5Nzk4XFx1NjRBQ1xcdTdGRDhcXHU1Q0VEXFx1NEZDRlxcdTdBOERcXHU1MjA3XFx1ODMwNFxcdTRFMTRcXHU2MDJGXFx1N0E4M1xcdTk0QTZcXHU0RkI1XFx1NEVCMlxcdTc5RTZcXHU3NDM0XFx1NTJFNFxcdTgyQjlcXHU2NEQyXFx1NzlCRFxcdTVCRERcXHU2QzgxXFx1OTc1MlxcdThGN0JcXHU2QzIyXFx1NTAzRVxcdTUzN0ZcXHU2RTA1XFx1NjRDRVxcdTY2NzRcXHU2QzMwXFx1NjBDNVxcdTk4NzdcXHU4QkY3XFx1NUU4NlxcdTc0M0NcXHU3QTc3XFx1NzlDQlxcdTRFMThcXHU5MEIxXFx1NzQwM1xcdTZDNDJcXHU1NkRBXFx1OTE0QlxcdTZDQzVcXHU4RDhCXFx1NTMzQVxcdTg2QzZcXHU2NkYyXFx1OEVBRlxcdTVDNDhcXHU5QTcxXFx1NkUyMFwiXSxcbiAgICAgIFtcImM4NDBcIiwgXCJcXHU4M0VFXFx1ODNFRlxcdTgzRjNcIiwgNCwgXCJcXHU4M0ZBXFx1ODNGQlxcdTgzRkNcXHU4M0ZFXFx1ODNGRlxcdTg0MDBcXHU4NDAyXFx1ODQwNVxcdTg0MDdcXHU4NDA4XFx1ODQwOVxcdTg0MEFcXHU4NDEwXFx1ODQxMlwiLCA1LCBcIlxcdTg0MTlcXHU4NDFBXFx1ODQxQlxcdTg0MUVcIiwgNSwgXCJcXHU4NDI5XCIsIDcsIFwiXFx1ODQzMlwiLCA1LCBcIlxcdTg0MzlcXHU4NDNBXFx1ODQzQlxcdTg0M0VcIiwgNywgXCJcXHU4NDQ3XFx1ODQ0OFxcdTg0NDlcIl0sXG4gICAgICBbXCJjODgwXCIsIFwiXFx1ODQ0QVwiLCA2LCBcIlxcdTg0NTJcIiwgNCwgXCJcXHU4NDU4XFx1ODQ1RFxcdTg0NUVcXHU4NDVGXFx1ODQ2MFxcdTg0NjJcXHU4NDY0XCIsIDQsIFwiXFx1ODQ2QVxcdTg0NkVcXHU4NDZGXFx1ODQ3MFxcdTg0NzJcXHU4NDc0XFx1ODQ3N1xcdTg0NzlcXHU4NDdCXFx1ODQ3Q1xcdTUzRDZcXHU1QTM2XFx1OUY4QlxcdThEQTNcXHU1M0JCXFx1NTcwOFxcdTk4QTdcXHU2NzQzXFx1OTE5QlxcdTZDQzlcXHU1MTY4XFx1NzVDQVxcdTYyRjNcXHU3MkFDXFx1NTIzOFxcdTUyOURcXHU3RjNBXFx1NzA5NFxcdTc2MzhcXHU1Mzc0XFx1OUU0QVxcdTY5QjdcXHU3ODZFXFx1OTZDMFxcdTg4RDlcXHU3RkE0XFx1NzEzNlxcdTcxQzNcXHU1MTg5XFx1NjdEM1xcdTc0RTRcXHU1OEU0XFx1NjUxOFxcdTU2QjdcXHU4QkE5XFx1OTk3NlxcdTYyNzBcXHU3RUQ1XFx1NjBGOVxcdTcwRURcXHU1OEVDXFx1NEVDMVxcdTRFQkFcXHU1RkNEXFx1OTdFN1xcdTRFRkJcXHU4QkE0XFx1NTIwM1xcdTU5OEFcXHU3RUFCXFx1NjI1NFxcdTRFQ0RcXHU2NUU1XFx1NjIwRVxcdTgzMzhcXHU4NEM5XFx1ODM2M1xcdTg3OERcXHU3MTk0XFx1NkVCNlxcdTVCQjlcXHU3RUQyXFx1NTE5N1xcdTYzQzlcXHU2N0Q0XFx1ODA4OVxcdTgzMzlcXHU4ODE1XFx1NTExMlxcdTVCN0FcXHU1OTgyXFx1OEZCMVxcdTRFNzNcXHU2QzVEXFx1NTE2NVxcdTg5MjVcXHU4RjZGXFx1OTYyRVxcdTg1NEFcXHU3NDVFXFx1OTUxMFxcdTk1RjBcXHU2REE2XFx1ODJFNVxcdTVGMzFcXHU2NDkyXFx1NkQxMlxcdTg0MjhcXHU4MTZFXFx1OUNDM1xcdTU4NUVcXHU4RDVCXFx1NEUwOVxcdTUzQzFcIl0sXG4gICAgICBbXCJjOTQwXCIsIFwiXFx1ODQ3RFwiLCA0LCBcIlxcdTg0ODNcXHU4NDg0XFx1ODQ4NVxcdTg0ODZcXHU4NDhBXFx1ODQ4RFxcdTg0OEZcIiwgNywgXCJcXHU4NDk4XFx1ODQ5QVxcdTg0OUJcXHU4NDlEXFx1ODQ5RVxcdTg0OUZcXHU4NEEwXFx1ODRBMlwiLCAxMiwgXCJcXHU4NEIwXFx1ODRCMVxcdTg0QjNcXHU4NEI1XFx1ODRCNlxcdTg0QjdcXHU4NEJCXFx1ODRCQ1xcdTg0QkVcXHU4NEMwXFx1ODRDMlxcdTg0QzNcXHU4NEM1XFx1ODRDNlxcdTg0QzdcXHU4NEM4XFx1ODRDQlxcdTg0Q0NcXHU4NENFXFx1ODRDRlxcdTg0RDJcXHU4NEQ0XFx1ODRENVxcdTg0RDdcIl0sXG4gICAgICBbXCJjOTgwXCIsIFwiXFx1ODREOFwiLCA0LCBcIlxcdTg0REVcXHU4NEUxXFx1ODRFMlxcdTg0RTRcXHU4NEU3XCIsIDQsIFwiXFx1ODRFRFxcdTg0RUVcXHU4NEVGXFx1ODRGMVwiLCAxMCwgXCJcXHU4NEZEXFx1ODRGRVxcdTg1MDBcXHU4NTAxXFx1ODUwMlxcdTRGMUVcXHU2NTYzXFx1Njg1MVxcdTU1RDNcXHU0RTI3XFx1NjQxNFxcdTlBOUFcXHU2MjZCXFx1NUFDMlxcdTc0NUZcXHU4MjcyXFx1NkRBOVxcdTY4RUVcXHU1MEU3XFx1ODM4RVxcdTc4MDJcXHU2NzQwXFx1NTIzOVxcdTZDOTlcXHU3RUIxXFx1NTBCQlxcdTU1NjVcXHU3MTVFXFx1N0I1QlxcdTY2NTJcXHU3M0NBXFx1ODJFQlxcdTY3NDlcXHU1QzcxXFx1NTIyMFxcdTcxN0RcXHU4ODZCXFx1OTVFQVxcdTk2NTVcXHU2NEM1XFx1OEQ2MVxcdTgxQjNcXHU1NTg0XFx1NkM1NVxcdTYyNDdcXHU3RjJFXFx1NTg5MlxcdTRGMjRcXHU1NTQ2XFx1OEQ0RlxcdTY2NENcXHU0RTBBXFx1NUMxQVxcdTg4RjNcXHU2OEEyXFx1NjM0RVxcdTdBMERcXHU3MEU3XFx1ODI4RFxcdTUyRkFcXHU5N0Y2XFx1NUMxMVxcdTU0RThcXHU5MEI1XFx1N0VDRFxcdTU5NjJcXHU4RDRBXFx1ODZDN1xcdTgyMENcXHU4MjBEXFx1OEQ2NlxcdTY0NDRcXHU1QzA0XFx1NjE1MVxcdTZEODlcXHU3OTNFXFx1OEJCRVxcdTc4MzdcXHU3NTMzXFx1NTQ3QlxcdTRGMzhcXHU4RUFCXFx1NkRGMVxcdTVBMjBcXHU3RUM1XFx1Nzk1RVxcdTZDODhcXHU1QkExXFx1NUE3NlxcdTc1MUFcXHU4MEJFXFx1NjE0RVxcdTZFMTdcXHU1OEYwXFx1NzUxRlxcdTc1MjVcXHU3MjcyXFx1NTM0N1xcdTdFRjNcIl0sXG4gICAgICBbXCJjYTQwXCIsIFwiXFx1ODUwM1wiLCA4LCBcIlxcdTg1MERcXHU4NTBFXFx1ODUwRlxcdTg1MTBcXHU4NTEyXFx1ODUxNFxcdTg1MTVcXHU4NTE2XFx1ODUxOFxcdTg1MTlcXHU4NTFCXFx1ODUxQ1xcdTg1MURcXHU4NTFFXFx1ODUyMFxcdTg1MjJcIiwgOCwgXCJcXHU4NTJEXCIsIDksIFwiXFx1ODUzRVwiLCA0LCBcIlxcdTg1NDRcXHU4NTQ1XFx1ODU0NlxcdTg1NDdcXHU4NTRCXCIsIDEwXSxcbiAgICAgIFtcImNhODBcIiwgXCJcXHU4NTU3XFx1ODU1OFxcdTg1NUFcXHU4NTVCXFx1ODU1Q1xcdTg1NURcXHU4NTVGXCIsIDQsIFwiXFx1ODU2NVxcdTg1NjZcXHU4NTY3XFx1ODU2OVwiLCA4LCBcIlxcdTg1NzNcXHU4NTc1XFx1ODU3NlxcdTg1NzdcXHU4NTc4XFx1ODU3Q1xcdTg1N0RcXHU4NTdGXFx1ODU4MFxcdTg1ODFcXHU3NzAxXFx1NzZEQlxcdTUyNjlcXHU4MERDXFx1NTcyM1xcdTVFMDhcXHU1OTMxXFx1NzJFRVxcdTY1QkRcXHU2RTdGXFx1OEJEN1xcdTVDMzhcXHU4NjcxXFx1NTM0MVxcdTc3RjNcXHU2MkZFXFx1NjVGNlxcdTRFQzBcXHU5OERGXFx1ODY4MFxcdTVCOUVcXHU4QkM2XFx1NTNGMlxcdTc3RTJcXHU0RjdGXFx1NUM0RVxcdTlBNzZcXHU1OUNCXFx1NUYwRlxcdTc5M0FcXHU1OEVCXFx1NEUxNlxcdTY3RkZcXHU0RThCXFx1NjJFRFxcdThBOTNcXHU5MDFEXFx1NTJCRlxcdTY2MkZcXHU1NURDXFx1NTY2Q1xcdTkwMDJcXHU0RUQ1XFx1NEY4RFxcdTkxQ0FcXHU5OTcwXFx1NkMwRlxcdTVFMDJcXHU2MDQzXFx1NUJBNFxcdTg5QzZcXHU4QkQ1XFx1NjUzNlxcdTYyNEJcXHU5OTk2XFx1NUI4OFxcdTVCRkZcXHU2Mzg4XFx1NTUyRVxcdTUzRDdcXHU3NjI2XFx1NTE3RFxcdTg1MkNcXHU2N0EyXFx1NjhCM1xcdTZCOEFcXHU2MjkyXFx1OEY5M1xcdTUzRDRcXHU4MjEyXFx1NkREMVxcdTc1OEZcXHU0RTY2XFx1OEQ0RVxcdTVCNzBcXHU3MTlGXFx1ODVBRlxcdTY2OTFcXHU2NkQ5XFx1N0Y3MlxcdTg3MDBcXHU5RUNEXFx1OUYyMFxcdTVDNUVcXHU2NzJGXFx1OEZGMFxcdTY4MTFcXHU2NzVGXFx1NjIwRFxcdTdBRDZcXHU1ODg1XFx1NUVCNlxcdTY1NzBcXHU2RjMxXCJdLFxuICAgICAgW1wiY2I0MFwiLCBcIlxcdTg1ODJcXHU4NTgzXFx1ODU4NlxcdTg1ODhcIiwgNiwgXCJcXHU4NTkwXCIsIDEwLCBcIlxcdTg1OURcIiwgNiwgXCJcXHU4NUE1XFx1ODVBNlxcdTg1QTdcXHU4NUE5XFx1ODVBQlxcdTg1QUNcXHU4NUFEXFx1ODVCMVwiLCA1LCBcIlxcdTg1QjhcXHU4NUJBXCIsIDYsIFwiXFx1ODVDMlwiLCA2LCBcIlxcdTg1Q0FcIiwgNCwgXCJcXHU4NUQxXFx1ODVEMlwiXSxcbiAgICAgIFtcImNiODBcIiwgXCJcXHU4NUQ0XFx1ODVENlwiLCA1LCBcIlxcdTg1RERcIiwgNiwgXCJcXHU4NUU1XFx1ODVFNlxcdTg1RTdcXHU4NUU4XFx1ODVFQVwiLCAxNCwgXCJcXHU2MDU1XFx1NTIzN1xcdTgwMERcXHU2NDU0XFx1ODg3MFxcdTc1MjlcXHU1RTA1XFx1NjgxM1xcdTYyRjRcXHU5NzFDXFx1NTNDQ1xcdTcyM0RcXHU4QzAxXFx1NkMzNFxcdTc3NjFcXHU3QTBFXFx1NTQyRVxcdTc3QUNcXHU5ODdBXFx1ODIxQ1xcdThCRjRcXHU3ODU1XFx1NjcxNFxcdTcwQzFcXHU2NUFGXFx1NjQ5NVxcdTU2MzZcXHU2MDFEXFx1NzlDMVxcdTUzRjhcXHU0RTFEXFx1NkI3QlxcdTgwODZcXHU1QkZBXFx1NTVFM1xcdTU2REJcXHU0RjNBXFx1NEYzQ1xcdTk5NzJcXHU1REYzXFx1Njc3RVxcdTgwMzhcXHU2MDAyXFx1OTg4MlxcdTkwMDFcXHU1QjhCXFx1OEJCQ1xcdThCRjVcXHU2NDFDXFx1ODI1OFxcdTY0REVcXHU1NUZEXFx1ODJDRlxcdTkxNjVcXHU0RkQ3XFx1N0QyMFxcdTkwMUZcXHU3QzlGXFx1NTBGM1xcdTU4NTFcXHU2RUFGXFx1NUJCRlxcdThCQzlcXHU4MDgzXFx1OTE3OFxcdTg0OUNcXHU3Qjk3XFx1ODY3RFxcdTk2OEJcXHU5NjhGXFx1N0VFNVxcdTlBRDNcXHU3ODhFXFx1NUM4MVxcdTdBNTdcXHU5MDQyXFx1OTZBN1xcdTc5NUZcXHU1QjU5XFx1NjM1RlxcdTdCMEJcXHU4NEQxXFx1NjhBRFxcdTU1MDZcXHU3RjI5XFx1NzQxMFxcdTdEMjJcXHU5NTAxXFx1NjI0MFxcdTU4NENcXHU0RUQ2XFx1NUI4M1xcdTU5NzlcXHU1ODU0XCJdLFxuICAgICAgW1wiY2M0MFwiLCBcIlxcdTg1RjlcXHU4NUZBXFx1ODVGQ1xcdTg1RkRcXHU4NUZFXFx1ODYwMFwiLCA0LCBcIlxcdTg2MDZcIiwgMTAsIFwiXFx1ODYxMlxcdTg2MTNcXHU4NjE0XFx1ODYxNVxcdTg2MTdcIiwgMTUsIFwiXFx1ODYyOFxcdTg2MkFcIiwgMTMsIFwiXFx1ODYzOVxcdTg2M0FcXHU4NjNCXFx1ODYzRFxcdTg2M0VcXHU4NjNGXFx1ODY0MFwiXSxcbiAgICAgIFtcImNjODBcIiwgXCJcXHU4NjQxXCIsIDExLCBcIlxcdTg2NTJcXHU4NjUzXFx1ODY1NVwiLCA0LCBcIlxcdTg2NUJcXHU4NjVDXFx1ODY1RFxcdTg2NUZcXHU4NjYwXFx1ODY2MVxcdTg2NjNcIiwgNywgXCJcXHU3MzZEXFx1NjMxRVxcdThFNEJcXHU4RTBGXFx1ODBDRVxcdTgyRDRcXHU2MkFDXFx1NTNGMFxcdTZDRjBcXHU5MTVFXFx1NTkyQVxcdTYwMDFcXHU2QzcwXFx1NTc0RFxcdTY0NEFcXHU4RDJBXFx1NzYyQlxcdTZFRTlcXHU1NzVCXFx1NkE4MFxcdTc1RjBcXHU2RjZEXFx1OEMyRFxcdThDMDhcXHU1NzY2XFx1NkJFRlxcdTg4OTJcXHU3OEIzXFx1NjNBMlxcdTUzRjlcXHU3MEFEXFx1NkM2NFxcdTU4NThcXHU2NDJBXFx1NTgwMlxcdTY4RTBcXHU4MTlCXFx1NTUxMFxcdTdDRDZcXHU1MDE4XFx1OEVCQVxcdTZEQ0NcXHU4RDlGXFx1NzBFQlxcdTYzOEZcXHU2RDlCXFx1NkVENFxcdTdFRTZcXHU4NDA0XFx1Njg0M1xcdTkwMDNcXHU2REQ4XFx1OTY3NlxcdThCQThcXHU1OTU3XFx1NzI3OVxcdTg1RTRcXHU4MTdFXFx1NzVCQ1xcdThBOEFcXHU2OEFGXFx1NTI1NFxcdThFMjJcXHU5NTExXFx1NjNEMFxcdTk4OThcXHU4RTQ0XFx1NTU3Q1xcdTRGNTNcXHU2NkZGXFx1NTY4RlxcdTYwRDVcXHU2RDk1XFx1NTI0M1xcdTVDNDlcXHU1OTI5XFx1NkRGQlxcdTU4NkJcXHU3NTMwXFx1NzUxQ1xcdTYwNkNcXHU4MjE0XFx1ODE0NlxcdTYzMTFcXHU2NzYxXFx1OEZFMlxcdTc3M0FcXHU4REYzXFx1OEQzNFxcdTk0QzFcXHU1RTE2XFx1NTM4NVxcdTU0MkNcXHU3MEMzXCJdLFxuICAgICAgW1wiY2Q0MFwiLCBcIlxcdTg2NkRcXHU4NjZGXFx1ODY3MFxcdTg2NzJcIiwgNiwgXCJcXHU4NjgzXCIsIDYsIFwiXFx1ODY4RVwiLCA0LCBcIlxcdTg2OTRcXHU4Njk2XCIsIDUsIFwiXFx1ODY5RVwiLCA0LCBcIlxcdTg2QTVcXHU4NkE2XFx1ODZBQlxcdTg2QURcXHU4NkFFXFx1ODZCMlxcdTg2QjNcXHU4NkI3XFx1ODZCOFxcdTg2QjlcXHU4NkJCXCIsIDQsIFwiXFx1ODZDMVxcdTg2QzJcXHU4NkMzXFx1ODZDNVxcdTg2QzhcXHU4NkNDXFx1ODZDRFxcdTg2RDJcXHU4NkQzXFx1ODZENVxcdTg2RDZcXHU4NkQ3XFx1ODZEQVxcdTg2RENcIl0sXG4gICAgICBbXCJjZDgwXCIsIFwiXFx1ODZERFxcdTg2RTBcXHU4NkUxXFx1ODZFMlxcdTg2RTNcXHU4NkU1XFx1ODZFNlxcdTg2RTdcXHU4NkU4XFx1ODZFQVxcdTg2RUJcXHU4NkVDXFx1ODZFRlxcdTg2RjVcXHU4NkY2XFx1ODZGN1xcdTg2RkFcXHU4NkZCXFx1ODZGQ1xcdTg2RkRcXHU4NkZGXFx1ODcwMVxcdTg3MDRcXHU4NzA1XFx1ODcwNlxcdTg3MEJcXHU4NzBDXFx1ODcwRVxcdTg3MEZcXHU4NzEwXFx1ODcxMVxcdTg3MTRcXHU4NzE2XFx1NkM0MFxcdTVFRjdcXHU1MDVDXFx1NEVBRFxcdTVFQURcXHU2MzNBXFx1ODI0N1xcdTkwMUFcXHU2ODUwXFx1OTE2RVxcdTc3QjNcXHU1NDBDXFx1OTREQ1xcdTVGNjRcXHU3QUU1XFx1Njg3NlxcdTYzNDVcXHU3QjUyXFx1N0VERlxcdTc1REJcXHU1MDc3XFx1NjI5NVxcdTU5MzRcXHU5MDBGXFx1NTFGOFxcdTc5QzNcXHU3QTgxXFx1NTZGRVxcdTVGOTJcXHU5MDE0XFx1NkQ4MlxcdTVDNjBcXHU1NzFGXFx1NTQxMFxcdTUxNTRcXHU2RTREXFx1NTZFMlxcdTYzQThcXHU5ODkzXFx1ODE3RlxcdTg3MTVcXHU4OTJBXFx1OTAwMFxcdTU0MUVcXHU1QzZGXFx1ODFDMFxcdTYyRDZcXHU2MjU4XFx1ODEzMVxcdTlFMzVcXHU5NjQwXFx1OUE2RVxcdTlBN0NcXHU2OTJEXFx1NTlBNVxcdTYyRDNcXHU1NTNFXFx1NjMxNlxcdTU0QzdcXHU4NkQ5XFx1NkQzQ1xcdTVBMDNcXHU3NEU2XFx1ODg5Q1xcdTZCNkFcXHU1OTE2XFx1OEM0Q1xcdTVGMkZcXHU2RTdFXFx1NzNBOVxcdTk4N0RcXHU0RTM4XFx1NzBGN1xcdTVCOENcXHU3ODk3XFx1NjMzRFxcdTY2NUFcXHU3Njk2XFx1NjBDQlxcdTVCOUJcXHU1QTQ5XFx1NEUwN1xcdTgxNTVcXHU2QzZBXFx1NzM4QlxcdTRFQTFcXHU2Nzg5XFx1N0Y1MVxcdTVGODBcXHU2NUZBXFx1NjcxQlxcdTVGRDhcXHU1OTg0XFx1NUEwMVwiXSxcbiAgICAgIFtcImNlNDBcIiwgXCJcXHU4NzE5XFx1ODcxQlxcdTg3MURcXHU4NzFGXFx1ODcyMFxcdTg3MjRcXHU4NzI2XFx1ODcyN1xcdTg3MjhcXHU4NzJBXFx1ODcyQlxcdTg3MkNcXHU4NzJEXFx1ODcyRlxcdTg3MzBcXHU4NzMyXFx1ODczM1xcdTg3MzVcXHU4NzM2XFx1ODczOFxcdTg3MzlcXHU4NzNBXFx1ODczQ1xcdTg3M0RcXHU4NzQwXCIsIDYsIFwiXFx1ODc0QVxcdTg3NEJcXHU4NzREXFx1ODc0RlxcdTg3NTBcXHU4NzUxXFx1ODc1MlxcdTg3NTRcXHU4NzU1XFx1ODc1NlxcdTg3NThcXHU4NzVBXCIsIDUsIFwiXFx1ODc2MVxcdTg3NjJcXHU4NzY2XCIsIDcsIFwiXFx1ODc2RlxcdTg3NzFcXHU4NzcyXFx1ODc3M1xcdTg3NzVcIl0sXG4gICAgICBbXCJjZTgwXCIsIFwiXFx1ODc3N1xcdTg3NzhcXHU4Nzc5XFx1ODc3QVxcdTg3N0ZcXHU4NzgwXFx1ODc4MVxcdTg3ODRcXHU4Nzg2XFx1ODc4N1xcdTg3ODlcXHU4NzhBXFx1ODc4Q1xcdTg3OEVcIiwgNCwgXCJcXHU4Nzk0XFx1ODc5NVxcdTg3OTZcXHU4Nzk4XCIsIDYsIFwiXFx1ODdBMFwiLCA0LCBcIlxcdTVEQ0RcXHU1RkFFXFx1NTM3MVxcdTk3RTZcXHU4RkREXFx1Njg0NVxcdTU2RjRcXHU1NTJGXFx1NjBERlxcdTRFM0FcXHU2RjREXFx1N0VGNFxcdTgyQzdcXHU4NDBFXFx1NTlENFxcdTRGMUZcXHU0RjJBXFx1NUMzRVxcdTdFQUNcXHU2NzJBXFx1ODUxQVxcdTU0NzNcXHU3NTRGXFx1ODBDM1xcdTU1ODJcXHU5QjRGXFx1NEY0RFxcdTZFMkRcXHU4QzEzXFx1NUMwOVxcdTYxNzBcXHU1MzZCXFx1NzYxRlxcdTZFMjlcXHU4NjhBXFx1NjU4N1xcdTk1RkJcXHU3RUI5XFx1NTQzQlxcdTdBMzNcXHU3RDBBXFx1OTVFRVxcdTU1RTFcXHU3RkMxXFx1NzRFRVxcdTYzMURcXHU4NzE3XFx1NkRBMVxcdTdBOURcXHU2MjExXFx1NjVBMVxcdTUzNjdcXHU2M0UxXFx1NkM4M1xcdTVERUJcXHU1NDVDXFx1OTRBOFxcdTRFNENcXHU2QzYxXFx1OEJFQ1xcdTVDNEJcXHU2NUUwXFx1ODI5Q1xcdTY4QTdcXHU1NDNFXFx1NTQzNFxcdTZCQ0JcXHU2QjY2XFx1NEU5NFxcdTYzNDJcXHU1MzQ4XFx1ODIxRVxcdTRGMERcXHU0RkFFXFx1NTc1RVxcdTYyMEFcXHU5NkZFXFx1NjY2NFxcdTcyNjlcXHU1MkZGXFx1NTJBMVxcdTYwOUZcXHU4QkVGXFx1NjYxNFxcdTcxOTlcXHU2NzkwXFx1ODk3RlxcdTc4NTJcXHU3N0ZEXFx1NjY3MFxcdTU2M0JcXHU1NDM4XFx1OTUyMVxcdTcyN0FcIl0sXG4gICAgICBbXCJjZjQwXCIsIFwiXFx1ODdBNVxcdTg3QTZcXHU4N0E3XFx1ODdBOVxcdTg3QUFcXHU4N0FFXFx1ODdCMFxcdTg3QjFcXHU4N0IyXFx1ODdCNFxcdTg3QjZcXHU4N0I3XFx1ODdCOFxcdTg3QjlcXHU4N0JCXFx1ODdCQ1xcdTg3QkVcXHU4N0JGXFx1ODdDMVwiLCA0LCBcIlxcdTg3QzdcXHU4N0M4XFx1ODdDOVxcdTg3Q0NcIiwgNCwgXCJcXHU4N0Q0XCIsIDYsIFwiXFx1ODdEQ1xcdTg3RERcXHU4N0RFXFx1ODdERlxcdTg3RTFcXHU4N0UyXFx1ODdFM1xcdTg3RTRcXHU4N0U2XFx1ODdFN1xcdTg3RThcXHU4N0U5XFx1ODdFQlxcdTg3RUNcXHU4N0VEXFx1ODdFRlwiLCA5XSxcbiAgICAgIFtcImNmODBcIiwgXCJcXHU4N0ZBXFx1ODdGQlxcdTg3RkNcXHU4N0ZEXFx1ODdGRlxcdTg4MDBcXHU4ODAxXFx1ODgwMlxcdTg4MDRcIiwgNSwgXCJcXHU4ODBCXCIsIDcsIFwiXFx1ODgxNFxcdTg4MTdcXHU4ODE4XFx1ODgxOVxcdTg4MUFcXHU4ODFDXCIsIDQsIFwiXFx1ODgyM1xcdTdBMDBcXHU2MDZGXFx1NUUwQ1xcdTYwODlcXHU4MTlEXFx1NTkxNVxcdTYwRENcXHU3MTg0XFx1NzBFRlxcdTZFQUFcXHU2QzUwXFx1NzI4MFxcdTZBODRcXHU4OEFEXFx1NUUyRFxcdTRFNjBcXHU1QUIzXFx1NTU5Q1xcdTk0RTNcXHU2RDE3XFx1N0NGQlxcdTk2OTlcXHU2MjBGXFx1N0VDNlxcdTc3OEVcXHU4NjdFXFx1NTMyM1xcdTk3MUVcXHU4Rjk2XFx1NjY4N1xcdTVDRTFcXHU0RkEwXFx1NzJFRFxcdTRFMEJcXHU1M0E2XFx1NTkwRlxcdTU0MTNcXHU2MzgwXFx1OTUyOFxcdTUxNDhcXHU0RUQ5XFx1OUM5Q1xcdTdFQTRcXHU1NEI4XFx1OEQyNFxcdTg4NTRcXHU4MjM3XFx1OTVGMlxcdTZEOEVcXHU1RjI2XFx1NUFDQ1xcdTY2M0VcXHU5NjY5XFx1NzNCMFxcdTczMkVcXHU1M0JGXFx1ODE3QVxcdTk5ODVcXHU3RkExXFx1NUJBQVxcdTk2NzdcXHU5NjUwXFx1N0VCRlxcdTc2RjhcXHU1M0EyXFx1OTU3NlxcdTk5OTlcXHU3QkIxXFx1ODk0NFxcdTZFNThcXHU0RTYxXFx1N0ZENFxcdTc5NjVcXHU4QkU2XFx1NjBGM1xcdTU0Q0RcXHU0RUFCXFx1OTg3OVxcdTVERjdcXHU2QTYxXFx1NTBDRlxcdTU0MTFcXHU4QzYxXFx1ODQyN1xcdTc4NURcXHU5NzA0XFx1NTI0QVxcdTU0RUVcXHU1NkEzXFx1OTUwMFxcdTZEODhcXHU1QkI1XFx1NkRDNlxcdTY2NTNcIl0sXG4gICAgICBbXCJkMDQwXCIsIFwiXFx1ODgyNFwiLCAxMywgXCJcXHU4ODMzXCIsIDUsIFwiXFx1ODgzQVxcdTg4M0JcXHU4ODNEXFx1ODgzRVxcdTg4M0ZcXHU4ODQxXFx1ODg0MlxcdTg4NDNcXHU4ODQ2XCIsIDUsIFwiXFx1ODg0RVwiLCA1LCBcIlxcdTg4NTVcXHU4ODU2XFx1ODg1OFxcdTg4NUFcIiwgNiwgXCJcXHU4ODY2XFx1ODg2N1xcdTg4NkFcXHU4ODZEXFx1ODg2RlxcdTg4NzFcXHU4ODczXFx1ODg3NFxcdTg4NzVcXHU4ODc2XFx1ODg3OFxcdTg4NzlcXHU4ODdBXCJdLFxuICAgICAgW1wiZDA4MFwiLCBcIlxcdTg4N0JcXHU4ODdDXFx1ODg4MFxcdTg4ODNcXHU4ODg2XFx1ODg4N1xcdTg4ODlcXHU4ODhBXFx1ODg4Q1xcdTg4OEVcXHU4ODhGXFx1ODg5MFxcdTg4OTFcXHU4ODkzXFx1ODg5NFxcdTg4OTVcXHU4ODk3XCIsIDQsIFwiXFx1ODg5RFwiLCA0LCBcIlxcdTg4QTNcXHU4OEE1XCIsIDUsIFwiXFx1NUMwRlxcdTVCNURcXHU2ODIxXFx1ODA5NlxcdTU1NzhcXHU3QjExXFx1NjU0OFxcdTY5NTRcXHU0RTlCXFx1NkI0N1xcdTg3NEVcXHU5NzhCXFx1NTM0RlxcdTYzMUZcXHU2NDNBXFx1OTBBQVxcdTY1OUNcXHU4MEMxXFx1OEMxMFxcdTUxOTlcXHU2OEIwXFx1NTM3OFxcdTg3RjlcXHU2MUM4XFx1NkNDNFxcdTZDRkJcXHU4QzIyXFx1NUM1MVxcdTg1QUFcXHU4MkFGXFx1OTUwQ1xcdTZCMjNcXHU4RjlCXFx1NjVCMFxcdTVGRkJcXHU1RkMzXFx1NEZFMVxcdTg4NDVcXHU2NjFGXFx1ODE2NVxcdTczMjlcXHU2MEZBXFx1NTE3NFxcdTUyMTFcXHU1NzhCXFx1NUY2MlxcdTkwQTJcXHU4ODRDXFx1OTE5MlxcdTVFNzhcXHU2NzRGXFx1NjAyN1xcdTU5RDNcXHU1MTQ0XFx1NTFGNlxcdTgwRjhcXHU1MzA4XFx1NkM3OVxcdTk2QzRcXHU3MThBXFx1NEYxMVxcdTRGRUVcXHU3RjlFXFx1NjczRFxcdTU1QzVcXHU5NTA4XFx1NzlDMFxcdTg4OTZcXHU3RUUzXFx1NTg5RlxcdTYyMENcXHU5NzAwXFx1ODY1QVxcdTU2MThcXHU5ODdCXFx1NUY5MFxcdThCQjhcXHU4NEM0XFx1OTE1N1xcdTUzRDlcXHU2NUVEXFx1NUU4RlxcdTc1NUNcXHU2MDY0XFx1N0Q2RVxcdTVBN0ZcXHU3RUVBXFx1N0VFRFxcdThGNjlcXHU1NUE3XFx1NUJBM1xcdTYwQUNcXHU2NUNCXFx1NzM4NFwiXSxcbiAgICAgIFtcImQxNDBcIiwgXCJcXHU4OEFDXFx1ODhBRVxcdTg4QUZcXHU4OEIwXFx1ODhCMlwiLCA0LCBcIlxcdTg4QjhcXHU4OEI5XFx1ODhCQVxcdTg4QkJcXHU4OEJEXFx1ODhCRVxcdTg4QkZcXHU4OEMwXFx1ODhDM1xcdTg4QzRcXHU4OEM3XFx1ODhDOFxcdTg4Q0FcXHU4OENCXFx1ODhDQ1xcdTg4Q0RcXHU4OENGXFx1ODhEMFxcdTg4RDFcXHU4OEQzXFx1ODhENlxcdTg4RDdcXHU4OERBXCIsIDQsIFwiXFx1ODhFMFxcdTg4RTFcXHU4OEU2XFx1ODhFN1xcdTg4RTlcIiwgNiwgXCJcXHU4OEYyXFx1ODhGNVxcdTg4RjZcXHU4OEY3XFx1ODhGQVxcdTg4RkJcXHU4OEZEXFx1ODhGRlxcdTg5MDBcXHU4OTAxXFx1ODkwM1wiLCA1XSxcbiAgICAgIFtcImQxODBcIiwgXCJcXHU4OTA5XFx1ODkwQlwiLCA0LCBcIlxcdTg5MTFcXHU4OTE0XCIsIDQsIFwiXFx1ODkxQ1wiLCA0LCBcIlxcdTg5MjJcXHU4OTIzXFx1ODkyNFxcdTg5MjZcXHU4OTI3XFx1ODkyOFxcdTg5MjlcXHU4OTJDXFx1ODkyRFxcdTg5MkVcXHU4OTJGXFx1ODkzMVxcdTg5MzJcXHU4OTMzXFx1ODkzNVxcdTg5MzdcXHU5MDA5XFx1NzY2M1xcdTc3MjlcXHU3RURBXFx1OTc3NFxcdTg1OUJcXHU1QjY2XFx1N0E3NFxcdTk2RUFcXHU4ODQwXFx1NTJDQlxcdTcxOEZcXHU1RkFBXFx1NjVFQ1xcdThCRTJcXHU1QkZCXFx1OUE2RlxcdTVERTFcXHU2Qjg5XFx1NkM1QlxcdThCQURcXHU4QkFGXFx1OTAwQVxcdThGQzVcXHU1MzhCXFx1NjJCQ1xcdTlFMjZcXHU5RTJEXFx1NTQ0MFxcdTRFMkJcXHU4MkJEXFx1NzI1OVxcdTg2OUNcXHU1RDE2XFx1ODg1OVxcdTZEQUZcXHU5NkM1XFx1NTREMVxcdTRFOUFcXHU4QkI2XFx1NzEwOVxcdTU0QkRcXHU5NjA5XFx1NzBERlxcdTZERjlcXHU3NkQwXFx1NEUyNVxcdTc4MTRcXHU4NzEyXFx1NUNBOVxcdTVFRjZcXHU4QTAwXFx1OTg5Q1xcdTk2MEVcXHU3MDhFXFx1NkNCRlxcdTU5NDRcXHU2M0E5XFx1NzczQ1xcdTg4NERcXHU2RjE0XFx1ODI3M1xcdTU4MzBcXHU3MUQ1XFx1NTM4Q1xcdTc4MUFcXHU5NkMxXFx1NTUwMVxcdTVGNjZcXHU3MTMwXFx1NUJCNFxcdThDMUFcXHU5QThDXFx1NkI4M1xcdTU5MkVcXHU5RTJGXFx1NzlFN1xcdTY3NjhcXHU2MjZDXFx1NEY2RlxcdTc1QTFcXHU3RjhBXFx1NkQwQlxcdTk2MzNcXHU2QzI3XFx1NEVGMFxcdTc1RDJcXHU1MTdCXFx1NjgzN1xcdTZGM0VcXHU5MDgwXFx1ODE3MFxcdTU5OTZcXHU3NDc2XCJdLFxuICAgICAgW1wiZDI0MFwiLCBcIlxcdTg5MzhcIiwgOCwgXCJcXHU4OTQyXFx1ODk0M1xcdTg5NDVcIiwgMjQsIFwiXFx1ODk2MFwiLCA1LCBcIlxcdTg5NjdcIiwgMTksIFwiXFx1ODk3Q1wiXSxcbiAgICAgIFtcImQyODBcIiwgXCJcXHU4OTdEXFx1ODk3RVxcdTg5ODBcXHU4OTgyXFx1ODk4NFxcdTg5ODVcXHU4OTg3XCIsIDI2LCBcIlxcdTY0NDdcXHU1QzI3XFx1OTA2NVxcdTdBOTFcXHU4QzIzXFx1NTlEQVxcdTU0QUNcXHU4MjAwXFx1ODM2RlxcdTg5ODFcXHU4MDAwXFx1NjkzMFxcdTU2NEVcXHU4MDM2XFx1NzIzN1xcdTkxQ0VcXHU1MUI2XFx1NEU1RlxcdTk4NzVcXHU2Mzk2XFx1NEUxQVxcdTUzRjZcXHU2NkYzXFx1ODE0QlxcdTU5MUNcXHU2REIyXFx1NEUwMFxcdTU4RjlcXHU1MzNCXFx1NjNENlxcdTk0RjFcXHU0RjlEXFx1NEYwQVxcdTg4NjNcXHU5ODkwXFx1NTkzN1xcdTkwNTdcXHU3OUZCXFx1NEVFQVxcdTgwRjBcXHU3NTkxXFx1NkM4MlxcdTVCOUNcXHU1OUU4XFx1NUY1RFxcdTY5MDVcXHU4NjgxXFx1NTAxQVxcdTVERjJcXHU0RTU5XFx1NzdFM1xcdTRFRTVcXHU4MjdBXFx1NjI5MVxcdTY2MTNcXHU5MDkxXFx1NUM3OVxcdTRFQkZcXHU1Rjc5XFx1ODFDNlxcdTkwMzhcXHU4MDg0XFx1NzVBQlxcdTRFQTZcXHU4OEQ0XFx1NjEwRlxcdTZCQzVcXHU1RkM2XFx1NEU0OVxcdTc2Q0FcXHU2RUEyXFx1OEJFM1xcdThCQUVcXHU4QzBBXFx1OEJEMVxcdTVGMDJcXHU3RkZDXFx1N0ZDQ1xcdTdFQ0VcXHU4MzM1XFx1ODM2QlxcdTU2RTBcXHU2QkI3XFx1OTdGM1xcdTk2MzRcXHU1OUZCXFx1NTQxRlxcdTk0RjZcXHU2REVCXFx1NUJDNVxcdTk5NkVcXHU1QzM5XFx1NUYxNVxcdTk2OTBcIl0sXG4gICAgICBbXCJkMzQwXCIsIFwiXFx1ODlBMlwiLCAzMCwgXCJcXHU4OUMzXFx1ODlDRFxcdTg5RDNcXHU4OUQ0XFx1ODlENVxcdTg5RDdcXHU4OUQ4XFx1ODlEOVxcdTg5REJcXHU4OUREXFx1ODlERlxcdTg5RTBcXHU4OUUxXFx1ODlFMlxcdTg5RTRcXHU4OUU3XFx1ODlFOFxcdTg5RTlcXHU4OUVBXFx1ODlFQ1xcdTg5RURcXHU4OUVFXFx1ODlGMFxcdTg5RjFcXHU4OUYyXFx1ODlGNFwiLCA2XSxcbiAgICAgIFtcImQzODBcIiwgXCJcXHU4OUZCXCIsIDQsIFwiXFx1OEEwMVwiLCA1LCBcIlxcdThBMDhcIiwgMjEsIFwiXFx1NTM3MFxcdTgyRjFcXHU2QTMxXFx1NUE3NFxcdTlFNzBcXHU1RTk0XFx1N0YyOFxcdTgzQjlcXHU4NDI0XFx1ODQyNVxcdTgzNjdcXHU4NzQ3XFx1OEZDRVxcdThENjJcXHU3NkM4XFx1NUY3MVxcdTk4OTZcXHU3ODZDXFx1NjYyMFxcdTU0REZcXHU2MkU1XFx1NEY2M1xcdTgxQzNcXHU3NUM4XFx1NUVCOFxcdTk2Q0RcXHU4RTBBXFx1ODZGOVxcdTU0OEZcXHU2Q0YzXFx1NkQ4Q1xcdTZDMzhcXHU2MDdGXFx1NTJDN1xcdTc1MjhcXHU1RTdEXFx1NEYxOFxcdTYwQTBcXHU1RkU3XFx1NUMyNFxcdTc1MzFcXHU5MEFFXFx1OTRDMFxcdTcyQjlcXHU2Q0I5XFx1NkUzOFxcdTkxNDlcXHU2NzA5XFx1NTNDQlxcdTUzRjNcXHU0RjUxXFx1OTFDOVxcdThCRjFcXHU1M0M4XFx1NUU3Q1xcdThGQzJcXHU2REU0XFx1NEU4RVxcdTc2QzJcXHU2OTg2XFx1ODY1RVxcdTYxMUFcXHU4MjA2XFx1NEY1OVxcdTRGREVcXHU5MDNFXFx1OUM3Q1xcdTYxMDlcXHU2RTFEXFx1NkUxNFxcdTk2ODVcXHU0RTg4XFx1NUEzMVxcdTk2RThcXHU0RTBFXFx1NUM3RlxcdTc5QjlcXHU1Qjg3XFx1OEJFRFxcdTdGQkRcXHU3Mzg5XFx1NTdERlxcdTgyOEJcXHU5MEMxXFx1NTQwMVxcdTkwNDdcXHU1NUJCXFx1NUNFQVxcdTVGQTFcXHU2MTA4XFx1NkIzMlxcdTcyRjFcXHU4MEIyXFx1OEE4OVwiXSxcbiAgICAgIFtcImQ0NDBcIiwgXCJcXHU4QTFFXCIsIDMxLCBcIlxcdThBM0ZcIiwgOCwgXCJcXHU4QTQ5XCIsIDIxXSxcbiAgICAgIFtcImQ0ODBcIiwgXCJcXHU4QTVGXCIsIDI1LCBcIlxcdThBN0FcIiwgNiwgXCJcXHU2RDc0XFx1NUJEM1xcdTg4RDVcXHU5ODg0XFx1OEM2QlxcdTlBNkRcXHU5RTMzXFx1NkUwQVxcdTUxQTRcXHU1MTQzXFx1NTdBM1xcdTg4ODFcXHU1MzlGXFx1NjNGNFxcdThGOTVcXHU1NkVEXFx1NTQ1OFxcdTU3MDZcXHU3MzNGXFx1NkU5MFxcdTdGMThcXHU4RkRDXFx1ODJEMVxcdTYxM0ZcXHU2MDI4XFx1OTY2MlxcdTY2RjBcXHU3RUE2XFx1OEQ4QVxcdThEQzNcXHU5NEE1XFx1NUNCM1xcdTdDQTRcXHU2NzA4XFx1NjBBNlxcdTk2MDVcXHU4MDE4XFx1NEU5MVxcdTkwRTdcXHU1MzAwXFx1OTY2OFxcdTUxNDFcXHU4RkQwXFx1ODU3NFxcdTkxNURcXHU2NjU1XFx1OTdGNVxcdTVCNTVcXHU1MzFEXFx1NzgzOFxcdTY3NDJcXHU2ODNEXFx1NTRDOVxcdTcwN0VcXHU1QkIwXFx1OEY3RFxcdTUxOERcXHU1NzI4XFx1NTRCMVxcdTY1MTJcXHU2NjgyXFx1OEQ1RVxcdThENDNcXHU4MTBGXFx1ODQ2Q1xcdTkwNkRcXHU3Q0RGXFx1NTFGRlxcdTg1RkJcXHU2N0EzXFx1NjVFOVxcdTZGQTFcXHU4NkE0XFx1OEU4MVxcdTU2NkFcXHU5MDIwXFx1NzY4MlxcdTcwNzZcXHU3MUU1XFx1OEQyM1xcdTYyRTlcXHU1MjE5XFx1NkNGRFxcdThEM0NcXHU2MDBFXFx1NTg5RVxcdTYxOEVcXHU2NkZFXFx1OEQ2MFxcdTYyNEVcXHU1NUIzXFx1NkUyM1xcdTY3MkRcXHU4RjY3XCJdLFxuICAgICAgW1wiZDU0MFwiLCBcIlxcdThBODFcIiwgNywgXCJcXHU4QThCXCIsIDcsIFwiXFx1OEE5NFwiLCA0Nl0sXG4gICAgICBbXCJkNTgwXCIsIFwiXFx1OEFDM1wiLCAzMiwgXCJcXHU5NEUxXFx1OTVGOFxcdTc3MjhcXHU2ODA1XFx1NjlBOFxcdTU0OEJcXHU0RTREXFx1NzBCOFxcdThCQzhcXHU2NDU4XFx1NjU4QlxcdTVCODVcXHU3QTg0XFx1NTAzQVxcdTVCRThcXHU3N0JCXFx1NkJFMVxcdThBNzlcXHU3Qzk4XFx1NkNCRVxcdTc2Q0ZcXHU2NUE5XFx1OEY5N1xcdTVEMkRcXHU1QzU1XFx1ODYzOFxcdTY4MDhcXHU1MzYwXFx1NjIxOFxcdTdBRDlcXHU2RTVCXFx1N0VGRFxcdTZBMUZcXHU3QUUwXFx1NUY3MFxcdTZGMzNcXHU1RjIwXFx1NjM4Q1xcdTZEQThcXHU2NzU2XFx1NEUwOFxcdTVFMTBcXHU4RDI2XFx1NEVEN1xcdTgwQzBcXHU3NjM0XFx1OTY5Q1xcdTYyREJcXHU2NjJEXFx1NjI3RVxcdTZDQkNcXHU4RDc1XFx1NzE2N1xcdTdGNjlcXHU1MTQ2XFx1ODA4N1xcdTUzRUNcXHU5MDZFXFx1NjI5OFxcdTU0RjJcXHU4NkYwXFx1OEY5OVxcdTgwMDVcXHU5NTE3XFx1ODUxN1xcdThGRDlcXHU2RDU5XFx1NzNDRFxcdTY1OUZcXHU3NzFGXFx1NzUwNFxcdTc4MjdcXHU4MUZCXFx1OEQxRVxcdTk0ODhcXHU0RkE2XFx1Njc5NVxcdTc1QjlcXHU4QkNBXFx1OTcwN1xcdTYzMkZcXHU5NTQ3XFx1OTYzNVxcdTg0QjhcXHU2MzIzXFx1Nzc0MVxcdTVGODFcXHU3MkYwXFx1NEU4OVxcdTYwMTRcXHU2NTc0XFx1NjJFRlxcdTZCNjNcXHU2NTNGXCJdLFxuICAgICAgW1wiZDY0MFwiLCBcIlxcdThBRTRcIiwgMzQsIFwiXFx1OEIwOFwiLCAyN10sXG4gICAgICBbXCJkNjgwXCIsIFwiXFx1OEIyNFxcdThCMjVcXHU4QjI3XCIsIDMwLCBcIlxcdTVFMjdcXHU3NUM3XFx1OTBEMVxcdThCQzFcXHU4MjlEXFx1Njc5RFxcdTY1MkZcXHU1NDMxXFx1ODcxOFxcdTc3RTVcXHU4MEEyXFx1ODEwMlxcdTZDNDFcXHU0RTRCXFx1N0VDN1xcdTgwNENcXHU3NkY0XFx1NjkwRFxcdTZCOTZcXHU2MjY3XFx1NTAzQ1xcdTRGODRcXHU1NzQwXFx1NjMwN1xcdTZCNjJcXHU4REJFXFx1NTNFQVxcdTY1RThcXHU3RUI4XFx1NUZEN1xcdTYzMUFcXHU2M0I3XFx1ODFGM1xcdTgxRjRcXHU3RjZFXFx1NUUxQ1xcdTVDRDlcXHU1MjM2XFx1NjY3QVxcdTc5RTlcXHU3QTFBXFx1OEQyOFxcdTcwOTlcXHU3NUQ0XFx1NkVERVxcdTZDQkJcXHU3QTkyXFx1NEUyRFxcdTc2QzVcXHU1RkUwXFx1OTQ5RlxcdTg4NzdcXHU3RUM4XFx1NzlDRFxcdTgwQkZcXHU5MUNEXFx1NEVGMlxcdTRGMTdcXHU4MjFGXFx1NTQ2OFxcdTVEREVcXHU2RDMyXFx1OEJDQ1xcdTdDQTVcXHU4Rjc0XFx1ODA5OFxcdTVFMUFcXHU1NDkyXFx1NzZCMVxcdTVCOTlcXHU2NjNDXFx1OUFBNFxcdTczRTBcXHU2ODJBXFx1ODZEQlxcdTY3MzFcXHU3MzJBXFx1OEJGOFxcdThCREJcXHU5MDEwXFx1N0FGOVxcdTcwREJcXHU3MTZFXFx1NjJDNFxcdTc3QTlcXHU1NjMxXFx1NEUzQlxcdTg0NTdcXHU2N0YxXFx1NTJBOVxcdTg2QzBcXHU4RDJFXFx1OTRGOFxcdTdCNTFcIl0sXG4gICAgICBbXCJkNzQwXCIsIFwiXFx1OEI0NlwiLCAzMSwgXCJcXHU4QjY3XCIsIDQsIFwiXFx1OEI2RFwiLCAyNV0sXG4gICAgICBbXCJkNzgwXCIsIFwiXFx1OEI4N1wiLCAyNCwgXCJcXHU4QkFDXFx1OEJCMVxcdThCQkJcXHU4QkM3XFx1OEJEMFxcdThCRUFcXHU4QzA5XFx1OEMxRVxcdTRGNEZcXHU2Q0U4XFx1Nzk1RFxcdTlBN0JcXHU2MjkzXFx1NzIyQVxcdTYyRkRcXHU0RTEzXFx1NzgxNlxcdThGNkNcXHU2NEIwXFx1OEQ1QVxcdTdCQzZcXHU2ODY5XFx1NUU4NFxcdTg4QzVcXHU1OTg2XFx1NjQ5RVxcdTU4RUVcXHU3MkI2XFx1NjkwRVxcdTk1MjVcXHU4RkZEXFx1OEQ1OFxcdTU3NjBcXHU3RjAwXFx1OEMwNlxcdTUxQzZcXHU2MzQ5XFx1NjJEOVxcdTUzNTNcXHU2ODRDXFx1NzQyMlxcdTgzMDFcXHU5MTRDXFx1NTU0NFxcdTc3NDBcXHU3MDdDXFx1NkQ0QVxcdTUxNzlcXHU1NEE4XFx1OEQ0NFxcdTU5RkZcXHU2RUNCXFx1NkRDNFxcdTVCNUNcXHU3RDJCXFx1NEVENFxcdTdDN0RcXHU2RUQzXFx1NUI1MFxcdTgxRUFcXHU2RTBEXFx1NUI1N1xcdTlCMDNcXHU2OEQ1XFx1OEUyQVxcdTVCOTdcXHU3RUZDXFx1NjAzQlxcdTdFQjVcXHU5MEI5XFx1OEQ3MFxcdTU5NEZcXHU2M0NEXFx1NzlERlxcdThEQjNcXHU1MzUyXFx1NjVDRlxcdTc5NTZcXHU4QkM1XFx1OTYzQlxcdTdFQzRcXHU5NEJCXFx1N0U4MlxcdTU2MzRcXHU5MTg5XFx1NjcwMFxcdTdGNkFcXHU1QzBBXFx1OTA3NVxcdTY2MjhcXHU1REU2XFx1NEY1MFxcdTY3REVcXHU1MDVBXFx1NEY1Q1xcdTU3NTBcXHU1RUE3XCJdLFxuICAgICAgW1wiZDg0MFwiLCBcIlxcdThDMzhcIiwgOCwgXCJcXHU4QzQyXFx1OEM0M1xcdThDNDRcXHU4QzQ1XFx1OEM0OFxcdThDNEFcXHU4QzRCXFx1OEM0RFwiLCA3LCBcIlxcdThDNTZcXHU4QzU3XFx1OEM1OFxcdThDNTlcXHU4QzVCXCIsIDUsIFwiXFx1OEM2M1wiLCA2LCBcIlxcdThDNkNcIiwgNiwgXCJcXHU4Qzc0XFx1OEM3NVxcdThDNzZcXHU4Qzc3XFx1OEM3QlwiLCA2LCBcIlxcdThDODNcXHU4Qzg0XFx1OEM4NlxcdThDODdcIl0sXG4gICAgICBbXCJkODgwXCIsIFwiXFx1OEM4OFxcdThDOEJcXHU4QzhEXCIsIDYsIFwiXFx1OEM5NVxcdThDOTZcXHU4Qzk3XFx1OEM5OVwiLCAyMCwgXCJcXHU0RThEXFx1NEUwQ1xcdTUxNDBcXHU0RTEwXFx1NUVGRlxcdTUzNDVcXHU0RTE1XFx1NEU5OFxcdTRFMUVcXHU5QjMyXFx1NUI2Q1xcdTU2NjlcXHU0RTI4XFx1NzlCQVxcdTRFM0ZcXHU1MzE1XFx1NEU0N1xcdTU5MkRcXHU3MjNCXFx1NTM2RVxcdTZDMTBcXHU1NkRGXFx1ODBFNFxcdTk5OTdcXHU2QkQzXFx1Nzc3RVxcdTlGMTdcXHU0RTM2XFx1NEU5RlxcdTlGMTBcXHU0RTVDXFx1NEU2OVxcdTRFOTNcXHU4Mjg4XFx1NUI1QlxcdTU1NkNcXHU1NjBGXFx1NEVDNFxcdTUzOERcXHU1MzlEXFx1NTNBM1xcdTUzQTVcXHU1M0FFXFx1OTc2NVxcdThENURcXHU1MzFBXFx1NTNGNVxcdTUzMjZcXHU1MzJFXFx1NTMzRVxcdThENUNcXHU1MzY2XFx1NTM2M1xcdTUyMDJcXHU1MjA4XFx1NTIwRVxcdTUyMkRcXHU1MjMzXFx1NTIzRlxcdTUyNDBcXHU1MjRDXFx1NTI1RVxcdTUyNjFcXHU1MjVDXFx1ODRBRlxcdTUyN0RcXHU1MjgyXFx1NTI4MVxcdTUyOTBcXHU1MjkzXFx1NTE4MlxcdTdGNTRcXHU0RUJCXFx1NEVDM1xcdTRFQzlcXHU0RUMyXFx1NEVFOFxcdTRFRTFcXHU0RUVCXFx1NEVERVxcdTRGMUJcXHU0RUYzXFx1NEYyMlxcdTRGNjRcXHU0RUY1XFx1NEYyNVxcdTRGMjdcXHU0RjA5XFx1NEYyQlxcdTRGNUVcXHU0RjY3XFx1NjUzOFxcdTRGNUFcXHU0RjVEXCJdLFxuICAgICAgW1wiZDk0MFwiLCBcIlxcdThDQUVcIiwgNjJdLFxuICAgICAgW1wiZDk4MFwiLCBcIlxcdThDRURcIiwgMzIsIFwiXFx1NEY1RlxcdTRGNTdcXHU0RjMyXFx1NEYzRFxcdTRGNzZcXHU0Rjc0XFx1NEY5MVxcdTRGODlcXHU0RjgzXFx1NEY4RlxcdTRGN0VcXHU0RjdCXFx1NEZBQVxcdTRGN0NcXHU0RkFDXFx1NEY5NFxcdTRGRTZcXHU0RkU4XFx1NEZFQVxcdTRGQzVcXHU0RkRBXFx1NEZFM1xcdTRGRENcXHU0RkQxXFx1NEZERlxcdTRGRjhcXHU1MDI5XFx1NTA0Q1xcdTRGRjNcXHU1MDJDXFx1NTAwRlxcdTUwMkVcXHU1MDJEXFx1NEZGRVxcdTUwMUNcXHU1MDBDXFx1NTAyNVxcdTUwMjhcXHU1MDdFXFx1NTA0M1xcdTUwNTVcXHU1MDQ4XFx1NTA0RVxcdTUwNkNcXHU1MDdCXFx1NTBBNVxcdTUwQTdcXHU1MEE5XFx1NTBCQVxcdTUwRDZcXHU1MTA2XFx1NTBFRFxcdTUwRUNcXHU1MEU2XFx1NTBFRVxcdTUxMDdcXHU1MTBCXFx1NEVERFxcdTZDM0RcXHU0RjU4XFx1NEY2NVxcdTRGQ0VcXHU5RkEwXFx1NkM0NlxcdTdDNzRcXHU1MTZFXFx1NURGRFxcdTlFQzlcXHU5OTk4XFx1NTE4MVxcdTU5MTRcXHU1MkY5XFx1NTMwRFxcdThBMDdcXHU1MzEwXFx1NTFFQlxcdTU5MTlcXHU1MTU1XFx1NEVBMFxcdTUxNTZcXHU0RUIzXFx1ODg2RVxcdTg4QTRcXHU0RUI1XFx1ODExNFxcdTg4RDJcXHU3OTgwXFx1NUIzNFxcdTg4MDNcXHU3RkI4XFx1NTFBQlxcdTUxQjFcXHU1MUJEXFx1NTFCQ1wiXSxcbiAgICAgIFtcImRhNDBcIiwgXCJcXHU4RDBFXCIsIDE0LCBcIlxcdThEMjBcXHU4RDUxXFx1OEQ1MlxcdThENTdcXHU4RDVGXFx1OEQ2NVxcdThENjhcXHU4RDY5XFx1OEQ2QVxcdThENkNcXHU4RDZFXFx1OEQ2RlxcdThENzFcXHU4RDcyXFx1OEQ3OFwiLCA4LCBcIlxcdThEODJcXHU4RDgzXFx1OEQ4NlxcdThEODdcXHU4RDg4XFx1OEQ4OVxcdThEOENcIiwgNCwgXCJcXHU4RDkyXFx1OEQ5M1xcdThEOTVcIiwgOSwgXCJcXHU4REEwXFx1OERBMVwiXSxcbiAgICAgIFtcImRhODBcIiwgXCJcXHU4REEyXFx1OERBNFwiLCAxMiwgXCJcXHU4REIyXFx1OERCNlxcdThEQjdcXHU4REI5XFx1OERCQlxcdThEQkRcXHU4REMwXFx1OERDMVxcdThEQzJcXHU4REM1XFx1OERDN1xcdThEQzhcXHU4REM5XFx1OERDQVxcdThEQ0RcXHU4REQwXFx1OEREMlxcdThERDNcXHU4REQ0XFx1NTFDN1xcdTUxOTZcXHU1MUEyXFx1NTFBNVxcdThCQTBcXHU4QkE2XFx1OEJBN1xcdThCQUFcXHU4QkI0XFx1OEJCNVxcdThCQjdcXHU4QkMyXFx1OEJDM1xcdThCQ0JcXHU4QkNGXFx1OEJDRVxcdThCRDJcXHU4QkQzXFx1OEJENFxcdThCRDZcXHU4QkQ4XFx1OEJEOVxcdThCRENcXHU4QkRGXFx1OEJFMFxcdThCRTRcXHU4QkU4XFx1OEJFOVxcdThCRUVcXHU4QkYwXFx1OEJGM1xcdThCRjZcXHU4QkY5XFx1OEJGQ1xcdThCRkZcXHU4QzAwXFx1OEMwMlxcdThDMDRcXHU4QzA3XFx1OEMwQ1xcdThDMEZcXHU4QzExXFx1OEMxMlxcdThDMTRcXHU4QzE1XFx1OEMxNlxcdThDMTlcXHU4QzFCXFx1OEMxOFxcdThDMURcXHU4QzFGXFx1OEMyMFxcdThDMjFcXHU4QzI1XFx1OEMyN1xcdThDMkFcXHU4QzJCXFx1OEMyRVxcdThDMkZcXHU4QzMyXFx1OEMzM1xcdThDMzVcXHU4QzM2XFx1NTM2OVxcdTUzN0FcXHU5NjFEXFx1OTYyMlxcdTk2MjFcXHU5NjMxXFx1OTYyQVxcdTk2M0RcXHU5NjNDXFx1OTY0MlxcdTk2NDlcXHU5NjU0XFx1OTY1RlxcdTk2NjdcXHU5NjZDXFx1OTY3MlxcdTk2NzRcXHU5Njg4XFx1OTY4RFxcdTk2OTdcXHU5NkIwXFx1OTA5N1xcdTkwOUJcXHU5MDlEXFx1OTA5OVxcdTkwQUNcXHU5MEExXFx1OTBCNFxcdTkwQjNcXHU5MEI2XFx1OTBCQVwiXSxcbiAgICAgIFtcImRiNDBcIiwgXCJcXHU4REQ1XFx1OEREOFxcdThERDlcXHU4RERDXFx1OERFMFxcdThERTFcXHU4REUyXFx1OERFNVxcdThERTZcXHU4REU3XFx1OERFOVxcdThERURcXHU4REVFXFx1OERGMFxcdThERjFcXHU4REYyXFx1OERGNFxcdThERjZcXHU4REZDXFx1OERGRVwiLCA2LCBcIlxcdThFMDZcXHU4RTA3XFx1OEUwOFxcdThFMEJcXHU4RTBEXFx1OEUwRVxcdThFMTBcXHU4RTExXFx1OEUxMlxcdThFMTNcXHU4RTE1XCIsIDcsIFwiXFx1OEUyMFxcdThFMjFcXHU4RTI0XCIsIDQsIFwiXFx1OEUyQlxcdThFMkRcXHU4RTMwXFx1OEUzMlxcdThFMzNcXHU4RTM0XFx1OEUzNlxcdThFMzdcXHU4RTM4XFx1OEUzQlxcdThFM0NcXHU4RTNFXCJdLFxuICAgICAgW1wiZGI4MFwiLCBcIlxcdThFM0ZcXHU4RTQzXFx1OEU0NVxcdThFNDZcXHU4RTRDXCIsIDQsIFwiXFx1OEU1M1wiLCA1LCBcIlxcdThFNUFcIiwgMTEsIFwiXFx1OEU2N1xcdThFNjhcXHU4RTZBXFx1OEU2QlxcdThFNkVcXHU4RTcxXFx1OTBCOFxcdTkwQjBcXHU5MENGXFx1OTBDNVxcdTkwQkVcXHU5MEQwXFx1OTBDNFxcdTkwQzdcXHU5MEQzXFx1OTBFNlxcdTkwRTJcXHU5MERDXFx1OTBEN1xcdTkwREJcXHU5MEVCXFx1OTBFRlxcdTkwRkVcXHU5MTA0XFx1OTEyMlxcdTkxMUVcXHU5MTIzXFx1OTEzMVxcdTkxMkZcXHU5MTM5XFx1OTE0M1xcdTkxNDZcXHU1MjBEXFx1NTk0MlxcdTUyQTJcXHU1MkFDXFx1NTJBRFxcdTUyQkVcXHU1NEZGXFx1NTJEMFxcdTUyRDZcXHU1MkYwXFx1NTNERlxcdTcxRUVcXHU3N0NEXFx1NUVGNFxcdTUxRjVcXHU1MUZDXFx1OUIyRlxcdTUzQjZcXHU1RjAxXFx1NzU1QVxcdTVERUZcXHU1NzRDXFx1NTdBOVxcdTU3QTFcXHU1ODdFXFx1NThCQ1xcdTU4QzVcXHU1OEQxXFx1NTcyOVxcdTU3MkNcXHU1NzJBXFx1NTczM1xcdTU3MzlcXHU1NzJFXFx1NTcyRlxcdTU3NUNcXHU1NzNCXFx1NTc0MlxcdTU3NjlcXHU1Nzg1XFx1NTc2QlxcdTU3ODZcXHU1NzdDXFx1NTc3QlxcdTU3NjhcXHU1NzZEXFx1NTc3NlxcdTU3NzNcXHU1N0FEXFx1NTdBNFxcdTU3OENcXHU1N0IyXFx1NTdDRlxcdTU3QTdcXHU1N0I0XFx1NTc5M1xcdTU3QTBcXHU1N0Q1XFx1NTdEOFxcdTU3REFcXHU1N0Q5XFx1NTdEMlxcdTU3QjhcXHU1N0Y0XFx1NTdFRlxcdTU3RjhcXHU1N0U0XFx1NTdERFwiXSxcbiAgICAgIFtcImRjNDBcIiwgXCJcXHU4RTczXFx1OEU3NVxcdThFNzdcIiwgNCwgXCJcXHU4RTdEXFx1OEU3RVxcdThFODBcXHU4RTgyXFx1OEU4M1xcdThFODRcXHU4RTg2XFx1OEU4OFwiLCA2LCBcIlxcdThFOTFcXHU4RTkyXFx1OEU5M1xcdThFOTVcIiwgNiwgXCJcXHU4RTlEXFx1OEU5RlwiLCAxMSwgXCJcXHU4RUFEXFx1OEVBRVxcdThFQjBcXHU4RUIxXFx1OEVCM1wiLCA2LCBcIlxcdThFQkJcIiwgN10sXG4gICAgICBbXCJkYzgwXCIsIFwiXFx1OEVDM1wiLCAxMCwgXCJcXHU4RUNGXCIsIDIxLCBcIlxcdTU4MEJcXHU1ODBEXFx1NTdGRFxcdTU3RURcXHU1ODAwXFx1NTgxRVxcdTU4MTlcXHU1ODQ0XFx1NTgyMFxcdTU4NjVcXHU1ODZDXFx1NTg4MVxcdTU4ODlcXHU1ODlBXFx1NTg4MFxcdTk5QThcXHU5RjE5XFx1NjFGRlxcdTgyNzlcXHU4MjdEXFx1ODI3RlxcdTgyOEZcXHU4MjhBXFx1ODJBOFxcdTgyODRcXHU4MjhFXFx1ODI5MVxcdTgyOTdcXHU4Mjk5XFx1ODJBQlxcdTgyQjhcXHU4MkJFXFx1ODJCMFxcdTgyQzhcXHU4MkNBXFx1ODJFM1xcdTgyOThcXHU4MkI3XFx1ODJBRVxcdTgyQ0JcXHU4MkNDXFx1ODJDMVxcdTgyQTlcXHU4MkI0XFx1ODJBMVxcdTgyQUFcXHU4MjlGXFx1ODJDNFxcdTgyQ0VcXHU4MkE0XFx1ODJFMVxcdTgzMDlcXHU4MkY3XFx1ODJFNFxcdTgzMEZcXHU4MzA3XFx1ODJEQ1xcdTgyRjRcXHU4MkQyXFx1ODJEOFxcdTgzMENcXHU4MkZCXFx1ODJEM1xcdTgzMTFcXHU4MzFBXFx1ODMwNlxcdTgzMTRcXHU4MzE1XFx1ODJFMFxcdTgyRDVcXHU4MzFDXFx1ODM1MVxcdTgzNUJcXHU4MzVDXFx1ODMwOFxcdTgzOTJcXHU4MzNDXFx1ODMzNFxcdTgzMzFcXHU4MzlCXFx1ODM1RVxcdTgzMkZcXHU4MzRGXFx1ODM0N1xcdTgzNDNcXHU4MzVGXFx1ODM0MFxcdTgzMTdcXHU4MzYwXFx1ODMyRFxcdTgzM0FcXHU4MzMzXFx1ODM2NlxcdTgzNjVcIl0sXG4gICAgICBbXCJkZDQwXCIsIFwiXFx1OEVFNVwiLCA2Ml0sXG4gICAgICBbXCJkZDgwXCIsIFwiXFx1OEYyNFwiLCAzMiwgXCJcXHU4MzY4XFx1ODMxQlxcdTgzNjlcXHU4MzZDXFx1ODM2QVxcdTgzNkRcXHU4MzZFXFx1ODNCMFxcdTgzNzhcXHU4M0IzXFx1ODNCNFxcdTgzQTBcXHU4M0FBXFx1ODM5M1xcdTgzOUNcXHU4Mzg1XFx1ODM3Q1xcdTgzQjZcXHU4M0E5XFx1ODM3RFxcdTgzQjhcXHU4MzdCXFx1ODM5OFxcdTgzOUVcXHU4M0E4XFx1ODNCQVxcdTgzQkNcXHU4M0MxXFx1ODQwMVxcdTgzRTVcXHU4M0Q4XFx1NTgwN1xcdTg0MThcXHU4NDBCXFx1ODNERFxcdTgzRkRcXHU4M0Q2XFx1ODQxQ1xcdTg0MzhcXHU4NDExXFx1ODQwNlxcdTgzRDRcXHU4M0RGXFx1ODQwRlxcdTg0MDNcXHU4M0Y4XFx1ODNGOVxcdTgzRUFcXHU4M0M1XFx1ODNDMFxcdTg0MjZcXHU4M0YwXFx1ODNFMVxcdTg0NUNcXHU4NDUxXFx1ODQ1QVxcdTg0NTlcXHU4NDczXFx1ODQ4N1xcdTg0ODhcXHU4NDdBXFx1ODQ4OVxcdTg0NzhcXHU4NDNDXFx1ODQ0NlxcdTg0NjlcXHU4NDc2XFx1ODQ4Q1xcdTg0OEVcXHU4NDMxXFx1ODQ2RFxcdTg0QzFcXHU4NENEXFx1ODREMFxcdTg0RTZcXHU4NEJEXFx1ODREM1xcdTg0Q0FcXHU4NEJGXFx1ODRCQVxcdTg0RTBcXHU4NEExXFx1ODRCOVxcdTg0QjRcXHU4NDk3XFx1ODRFNVxcdTg0RTNcXHU4NTBDXFx1NzUwRFxcdTg1MzhcXHU4NEYwXFx1ODUzOVxcdTg1MUZcXHU4NTNBXCJdLFxuICAgICAgW1wiZGU0MFwiLCBcIlxcdThGNDVcIiwgMzIsIFwiXFx1OEY2QVxcdThGODBcXHU4RjhDXFx1OEY5MlxcdThGOURcXHU4RkEwXFx1OEZBMVxcdThGQTJcXHU4RkE0XFx1OEZBNVxcdThGQTZcXHU4RkE3XFx1OEZBQVxcdThGQUNcXHU4RkFEXFx1OEZBRVxcdThGQUZcXHU4RkIyXFx1OEZCM1xcdThGQjRcXHU4RkI1XFx1OEZCN1xcdThGQjhcXHU4RkJBXFx1OEZCQlxcdThGQkNcXHU4RkJGXFx1OEZDMFxcdThGQzNcXHU4RkM2XCJdLFxuICAgICAgW1wiZGU4MFwiLCBcIlxcdThGQzlcIiwgNCwgXCJcXHU4RkNGXFx1OEZEMlxcdThGRDZcXHU4RkQ3XFx1OEZEQVxcdThGRTBcXHU4RkUxXFx1OEZFM1xcdThGRTdcXHU4RkVDXFx1OEZFRlxcdThGRjFcXHU4RkYyXFx1OEZGNFxcdThGRjVcXHU4RkY2XFx1OEZGQVxcdThGRkJcXHU4RkZDXFx1OEZGRVxcdThGRkZcXHU5MDA3XFx1OTAwOFxcdTkwMENcXHU5MDBFXFx1OTAxM1xcdTkwMTVcXHU5MDE4XFx1ODU1NlxcdTg1M0JcXHU4NEZGXFx1ODRGQ1xcdTg1NTlcXHU4NTQ4XFx1ODU2OFxcdTg1NjRcXHU4NTVFXFx1ODU3QVxcdTc3QTJcXHU4NTQzXFx1ODU3MlxcdTg1N0JcXHU4NUE0XFx1ODVBOFxcdTg1ODdcXHU4NThGXFx1ODU3OVxcdTg1QUVcXHU4NTlDXFx1ODU4NVxcdTg1QjlcXHU4NUI3XFx1ODVCMFxcdTg1RDNcXHU4NUMxXFx1ODVEQ1xcdTg1RkZcXHU4NjI3XFx1ODYwNVxcdTg2MjlcXHU4NjE2XFx1ODYzQ1xcdTVFRkVcXHU1RjA4XFx1NTkzQ1xcdTU5NDFcXHU4MDM3XFx1NTk1NVxcdTU5NUFcXHU1OTU4XFx1NTMwRlxcdTVDMjJcXHU1QzI1XFx1NUMyQ1xcdTVDMzRcXHU2MjRDXFx1NjI2QVxcdTYyOUZcXHU2MkJCXFx1NjJDQVxcdTYyREFcXHU2MkQ3XFx1NjJFRVxcdTYzMjJcXHU2MkY2XFx1NjMzOVxcdTYzNEJcXHU2MzQzXFx1NjNBRFxcdTYzRjZcXHU2MzcxXFx1NjM3QVxcdTYzOEVcXHU2M0I0XFx1NjM2RFxcdTYzQUNcXHU2MzhBXFx1NjM2OVxcdTYzQUVcXHU2M0JDXFx1NjNGMlxcdTYzRjhcXHU2M0UwXFx1NjNGRlxcdTYzQzRcXHU2M0RFXFx1NjNDRVxcdTY0NTJcXHU2M0M2XFx1NjNCRVxcdTY0NDVcXHU2NDQxXFx1NjQwQlxcdTY0MUJcXHU2NDIwXFx1NjQwQ1xcdTY0MjZcXHU2NDIxXFx1NjQ1RVxcdTY0ODRcXHU2NDZEXFx1NjQ5NlwiXSxcbiAgICAgIFtcImRmNDBcIiwgXCJcXHU5MDE5XFx1OTAxQ1xcdTkwMjNcXHU5MDI0XFx1OTAyNVxcdTkwMjdcIiwgNSwgXCJcXHU5MDMwXCIsIDQsIFwiXFx1OTAzN1xcdTkwMzlcXHU5MDNBXFx1OTAzRFxcdTkwM0ZcXHU5MDQwXFx1OTA0M1xcdTkwNDVcXHU5MDQ2XFx1OTA0OFwiLCA0LCBcIlxcdTkwNEVcXHU5MDU0XFx1OTA1NVxcdTkwNTZcXHU5MDU5XFx1OTA1QVxcdTkwNUNcIiwgNSwgXCJcXHU5MDY0XFx1OTA2NlxcdTkwNjdcXHU5MDY5XFx1OTA2QVxcdTkwNkJcXHU5MDZDXFx1OTA2RlwiLCA0LCBcIlxcdTkwNzZcIiwgNiwgXCJcXHU5MDdFXFx1OTA4MVwiXSxcbiAgICAgIFtcImRmODBcIiwgXCJcXHU5MDg0XFx1OTA4NVxcdTkwODZcXHU5MDg3XFx1OTA4OVxcdTkwOEFcXHU5MDhDXCIsIDQsIFwiXFx1OTA5MlxcdTkwOTRcXHU5MDk2XFx1OTA5OFxcdTkwOUFcXHU5MDlDXFx1OTA5RVxcdTkwOUZcXHU5MEEwXFx1OTBBNFxcdTkwQTVcXHU5MEE3XFx1OTBBOFxcdTkwQTlcXHU5MEFCXFx1OTBBRFxcdTkwQjJcXHU5MEI3XFx1OTBCQ1xcdTkwQkRcXHU5MEJGXFx1OTBDMFxcdTY0N0FcXHU2NEI3XFx1NjRCOFxcdTY0OTlcXHU2NEJBXFx1NjRDMFxcdTY0RDBcXHU2NEQ3XFx1NjRFNFxcdTY0RTJcXHU2NTA5XFx1NjUyNVxcdTY1MkVcXHU1RjBCXFx1NUZEMlxcdTc1MTlcXHU1RjExXFx1NTM1RlxcdTUzRjFcXHU1M0ZEXFx1NTNFOVxcdTUzRThcXHU1M0ZCXFx1NTQxMlxcdTU0MTZcXHU1NDA2XFx1NTQ0QlxcdTU0NTJcXHU1NDUzXFx1NTQ1NFxcdTU0NTZcXHU1NDQzXFx1NTQyMVxcdTU0NTdcXHU1NDU5XFx1NTQyM1xcdTU0MzJcXHU1NDgyXFx1NTQ5NFxcdTU0NzdcXHU1NDcxXFx1NTQ2NFxcdTU0OUFcXHU1NDlCXFx1NTQ4NFxcdTU0NzZcXHU1NDY2XFx1NTQ5RFxcdTU0RDBcXHU1NEFEXFx1NTRDMlxcdTU0QjRcXHU1NEQyXFx1NTRBN1xcdTU0QTZcXHU1NEQzXFx1NTRENFxcdTU0NzJcXHU1NEEzXFx1NTRENVxcdTU0QkJcXHU1NEJGXFx1NTRDQ1xcdTU0RDlcXHU1NERBXFx1NTREQ1xcdTU0QTlcXHU1NEFBXFx1NTRBNFxcdTU0RERcXHU1NENGXFx1NTRERVxcdTU1MUJcXHU1NEU3XFx1NTUyMFxcdTU0RkRcXHU1NTE0XFx1NTRGM1xcdTU1MjJcXHU1NTIzXFx1NTUwRlxcdTU1MTFcXHU1NTI3XFx1NTUyQVxcdTU1NjdcXHU1NThGXFx1NTVCNVxcdTU1NDlcXHU1NTZEXFx1NTU0MVxcdTU1NTVcXHU1NTNGXFx1NTU1MFxcdTU1M0NcIl0sXG4gICAgICBbXCJlMDQwXCIsIFwiXFx1OTBDMlxcdTkwQzNcXHU5MEM2XFx1OTBDOFxcdTkwQzlcXHU5MENCXFx1OTBDQ1xcdTkwQ0RcXHU5MEQyXFx1OTBENFxcdTkwRDVcXHU5MEQ2XFx1OTBEOFxcdTkwRDlcXHU5MERBXFx1OTBERVxcdTkwREZcXHU5MEUwXFx1OTBFM1xcdTkwRTRcXHU5MEU1XFx1OTBFOVxcdTkwRUFcXHU5MEVDXFx1OTBFRVxcdTkwRjBcXHU5MEYxXFx1OTBGMlxcdTkwRjNcXHU5MEY1XFx1OTBGNlxcdTkwRjdcXHU5MEY5XFx1OTBGQVxcdTkwRkJcXHU5MEZDXFx1OTBGRlxcdTkxMDBcXHU5MTAxXFx1OTEwM1xcdTkxMDVcIiwgMTksIFwiXFx1OTExQVxcdTkxMUJcXHU5MTFDXCJdLFxuICAgICAgW1wiZTA4MFwiLCBcIlxcdTkxMURcXHU5MTFGXFx1OTEyMFxcdTkxMjFcXHU5MTI0XCIsIDEwLCBcIlxcdTkxMzBcXHU5MTMyXCIsIDYsIFwiXFx1OTEzQVwiLCA4LCBcIlxcdTkxNDRcXHU1NTM3XFx1NTU1NlxcdTU1NzVcXHU1NTc2XFx1NTU3N1xcdTU1MzNcXHU1NTMwXFx1NTU1Q1xcdTU1OEJcXHU1NUQyXFx1NTU4M1xcdTU1QjFcXHU1NUI5XFx1NTU4OFxcdTU1ODFcXHU1NTlGXFx1NTU3RVxcdTU1RDZcXHU1NTkxXFx1NTU3QlxcdTU1REZcXHU1NUJEXFx1NTVCRVxcdTU1OTRcXHU1NTk5XFx1NTVFQVxcdTU1RjdcXHU1NUM5XFx1NTYxRlxcdTU1RDFcXHU1NUVCXFx1NTVFQ1xcdTU1RDRcXHU1NUU2XFx1NTVERFxcdTU1QzRcXHU1NUVGXFx1NTVFNVxcdTU1RjJcXHU1NUYzXFx1NTVDQ1xcdTU1Q0RcXHU1NUU4XFx1NTVGNVxcdTU1RTRcXHU4Rjk0XFx1NTYxRVxcdTU2MDhcXHU1NjBDXFx1NTYwMVxcdTU2MjRcXHU1NjIzXFx1NTVGRVxcdTU2MDBcXHU1NjI3XFx1NTYyRFxcdTU2NThcXHU1NjM5XFx1NTY1N1xcdTU2MkNcXHU1NjREXFx1NTY2MlxcdTU2NTlcXHU1NjVDXFx1NTY0Q1xcdTU2NTRcXHU1Njg2XFx1NTY2NFxcdTU2NzFcXHU1NjZCXFx1NTY3QlxcdTU2N0NcXHU1Njg1XFx1NTY5M1xcdTU2QUZcXHU1NkQ0XFx1NTZEN1xcdTU2RERcXHU1NkUxXFx1NTZGNVxcdTU2RUJcXHU1NkY5XFx1NTZGRlxcdTU3MDRcXHU1NzBBXFx1NTcwOVxcdTU3MUNcXHU1RTBGXFx1NUUxOVxcdTVFMTRcXHU1RTExXFx1NUUzMVxcdTVFM0JcXHU1RTNDXCJdLFxuICAgICAgW1wiZTE0MFwiLCBcIlxcdTkxNDVcXHU5MTQ3XFx1OTE0OFxcdTkxNTFcXHU5MTUzXFx1OTE1NFxcdTkxNTVcXHU5MTU2XFx1OTE1OFxcdTkxNTlcXHU5MTVCXFx1OTE1Q1xcdTkxNUZcXHU5MTYwXFx1OTE2NlxcdTkxNjdcXHU5MTY4XFx1OTE2QlxcdTkxNkRcXHU5MTczXFx1OTE3QVxcdTkxN0JcXHU5MTdDXFx1OTE4MFwiLCA0LCBcIlxcdTkxODZcXHU5MTg4XFx1OTE4QVxcdTkxOEVcXHU5MThGXFx1OTE5M1wiLCA2LCBcIlxcdTkxOUNcIiwgNSwgXCJcXHU5MUE0XCIsIDUsIFwiXFx1OTFBQlxcdTkxQUNcXHU5MUIwXFx1OTFCMVxcdTkxQjJcXHU5MUIzXFx1OTFCNlxcdTkxQjdcXHU5MUI4XFx1OTFCOVxcdTkxQkJcIl0sXG4gICAgICBbXCJlMTgwXCIsIFwiXFx1OTFCQ1wiLCAxMCwgXCJcXHU5MUM4XFx1OTFDQlxcdTkxRDBcXHU5MUQyXCIsIDksIFwiXFx1OTFERFwiLCA4LCBcIlxcdTVFMzdcXHU1RTQ0XFx1NUU1NFxcdTVFNUJcXHU1RTVFXFx1NUU2MVxcdTVDOENcXHU1QzdBXFx1NUM4RFxcdTVDOTBcXHU1Qzk2XFx1NUM4OFxcdTVDOThcXHU1Qzk5XFx1NUM5MVxcdTVDOUFcXHU1QzlDXFx1NUNCNVxcdTVDQTJcXHU1Q0JEXFx1NUNBQ1xcdTVDQUJcXHU1Q0IxXFx1NUNBM1xcdTVDQzFcXHU1Q0I3XFx1NUNDNFxcdTVDRDJcXHU1Q0U0XFx1NUNDQlxcdTVDRTVcXHU1RDAyXFx1NUQwM1xcdTVEMjdcXHU1RDI2XFx1NUQyRVxcdTVEMjRcXHU1RDFFXFx1NUQwNlxcdTVEMUJcXHU1RDU4XFx1NUQzRVxcdTVEMzRcXHU1RDNEXFx1NUQ2Q1xcdTVENUJcXHU1RDZGXFx1NUQ1RFxcdTVENkJcXHU1RDRCXFx1NUQ0QVxcdTVENjlcXHU1RDc0XFx1NUQ4MlxcdTVEOTlcXHU1RDlEXFx1OEM3M1xcdTVEQjdcXHU1REM1XFx1NUY3M1xcdTVGNzdcXHU1RjgyXFx1NUY4N1xcdTVGODlcXHU1RjhDXFx1NUY5NVxcdTVGOTlcXHU1RjlDXFx1NUZBOFxcdTVGQURcXHU1RkI1XFx1NUZCQ1xcdTg4NjJcXHU1RjYxXFx1NzJBRFxcdTcyQjBcXHU3MkI0XFx1NzJCN1xcdTcyQjhcXHU3MkMzXFx1NzJDMVxcdTcyQ0VcXHU3MkNEXFx1NzJEMlxcdTcyRThcXHU3MkVGXFx1NzJFOVxcdTcyRjJcXHU3MkY0XFx1NzJGN1xcdTczMDFcXHU3MkYzXFx1NzMwM1xcdTcyRkFcIl0sXG4gICAgICBbXCJlMjQwXCIsIFwiXFx1OTFFNlwiLCA2Ml0sXG4gICAgICBbXCJlMjgwXCIsIFwiXFx1OTIyNVwiLCAzMiwgXCJcXHU3MkZCXFx1NzMxN1xcdTczMTNcXHU3MzIxXFx1NzMwQVxcdTczMUVcXHU3MzFEXFx1NzMxNVxcdTczMjJcXHU3MzM5XFx1NzMyNVxcdTczMkNcXHU3MzM4XFx1NzMzMVxcdTczNTBcXHU3MzREXFx1NzM1N1xcdTczNjBcXHU3MzZDXFx1NzM2RlxcdTczN0VcXHU4MjFCXFx1NTkyNVxcdTk4RTdcXHU1OTI0XFx1NTkwMlxcdTk5NjNcXHU5OTY3XCIsIDUsIFwiXFx1OTk3NFxcdTk5NzdcXHU5OTdEXFx1OTk4MFxcdTk5ODRcXHU5OTg3XFx1OTk4QVxcdTk5OERcXHU5OTkwXFx1OTk5MVxcdTk5OTNcXHU5OTk0XFx1OTk5NVxcdTVFODBcXHU1RTkxXFx1NUU4QlxcdTVFOTZcXHU1RUE1XFx1NUVBMFxcdTVFQjlcXHU1RUI1XFx1NUVCRVxcdTVFQjNcXHU4RDUzXFx1NUVEMlxcdTVFRDFcXHU1RURCXFx1NUVFOFxcdTVFRUFcXHU4MUJBXFx1NUZDNFxcdTVGQzlcXHU1RkQ2XFx1NUZDRlxcdTYwMDNcXHU1RkVFXFx1NjAwNFxcdTVGRTFcXHU1RkU0XFx1NUZGRVxcdTYwMDVcXHU2MDA2XFx1NUZFQVxcdTVGRURcXHU1RkY4XFx1NjAxOVxcdTYwMzVcXHU2MDI2XFx1NjAxQlxcdTYwMEZcXHU2MDBEXFx1NjAyOVxcdTYwMkJcXHU2MDBBXFx1NjAzRlxcdTYwMjFcXHU2MDc4XFx1NjA3OVxcdTYwN0JcXHU2MDdBXFx1NjA0MlwiXSxcbiAgICAgIFtcImUzNDBcIiwgXCJcXHU5MjQ2XCIsIDQ1LCBcIlxcdTkyNzVcIiwgMTZdLFxuICAgICAgW1wiZTM4MFwiLCBcIlxcdTkyODZcIiwgNywgXCJcXHU5MjhGXCIsIDI0LCBcIlxcdTYwNkFcXHU2MDdEXFx1NjA5NlxcdTYwOUFcXHU2MEFEXFx1NjA5RFxcdTYwODNcXHU2MDkyXFx1NjA4Q1xcdTYwOUJcXHU2MEVDXFx1NjBCQlxcdTYwQjFcXHU2MEREXFx1NjBEOFxcdTYwQzZcXHU2MERBXFx1NjBCNFxcdTYxMjBcXHU2MTI2XFx1NjExNVxcdTYxMjNcXHU2MEY0XFx1NjEwMFxcdTYxMEVcXHU2MTJCXFx1NjE0QVxcdTYxNzVcXHU2MUFDXFx1NjE5NFxcdTYxQTdcXHU2MUI3XFx1NjFENFxcdTYxRjVcXHU1RkREXFx1OTZCM1xcdTk1RTlcXHU5NUVCXFx1OTVGMVxcdTk1RjNcXHU5NUY1XFx1OTVGNlxcdTk1RkNcXHU5NUZFXFx1OTYwM1xcdTk2MDRcXHU5NjA2XFx1OTYwOFxcdTk2MEFcXHU5NjBCXFx1OTYwQ1xcdTk2MERcXHU5NjBGXFx1OTYxMlxcdTk2MTVcXHU5NjE2XFx1OTYxN1xcdTk2MTlcXHU5NjFBXFx1NEUyQ1xcdTcyM0ZcXHU2MjE1XFx1NkMzNVxcdTZDNTRcXHU2QzVDXFx1NkM0QVxcdTZDQTNcXHU2Qzg1XFx1NkM5MFxcdTZDOTRcXHU2QzhDXFx1NkM2OFxcdTZDNjlcXHU2Qzc0XFx1NkM3NlxcdTZDODZcXHU2Q0E5XFx1NkNEMFxcdTZDRDRcXHU2Q0FEXFx1NkNGN1xcdTZDRjhcXHU2Q0YxXFx1NkNEN1xcdTZDQjJcXHU2Q0UwXFx1NkNENlxcdTZDRkFcXHU2Q0VCXFx1NkNFRVxcdTZDQjFcXHU2Q0QzXFx1NkNFRlxcdTZDRkVcIl0sXG4gICAgICBbXCJlNDQwXCIsIFwiXFx1OTJBOFwiLCA1LCBcIlxcdTkyQUZcIiwgMjQsIFwiXFx1OTJDOVwiLCAzMV0sXG4gICAgICBbXCJlNDgwXCIsIFwiXFx1OTJFOVwiLCAzMiwgXCJcXHU2RDM5XFx1NkQyN1xcdTZEMENcXHU2RDQzXFx1NkQ0OFxcdTZEMDdcXHU2RDA0XFx1NkQxOVxcdTZEMEVcXHU2RDJCXFx1NkQ0RFxcdTZEMkVcXHU2RDM1XFx1NkQxQVxcdTZENEZcXHU2RDUyXFx1NkQ1NFxcdTZEMzNcXHU2RDkxXFx1NkQ2RlxcdTZEOUVcXHU2REEwXFx1NkQ1RVxcdTZEOTNcXHU2RDk0XFx1NkQ1Q1xcdTZENjBcXHU2RDdDXFx1NkQ2M1xcdTZFMUFcXHU2REM3XFx1NkRDNVxcdTZEREVcXHU2RTBFXFx1NkRCRlxcdTZERTBcXHU2RTExXFx1NkRFNlxcdTZERERcXHU2REQ5XFx1NkUxNlxcdTZEQUJcXHU2RTBDXFx1NkRBRVxcdTZFMkJcXHU2RTZFXFx1NkU0RVxcdTZFNkJcXHU2RUIyXFx1NkU1RlxcdTZFODZcXHU2RTUzXFx1NkU1NFxcdTZFMzJcXHU2RTI1XFx1NkU0NFxcdTZFREZcXHU2RUIxXFx1NkU5OFxcdTZFRTBcXHU2RjJEXFx1NkVFMlxcdTZFQTVcXHU2RUE3XFx1NkVCRFxcdTZFQkJcXHU2RUI3XFx1NkVEN1xcdTZFQjRcXHU2RUNGXFx1NkU4RlxcdTZFQzJcXHU2RTlGXFx1NkY2MlxcdTZGNDZcXHU2RjQ3XFx1NkYyNFxcdTZGMTVcXHU2RUY5XFx1NkYyRlxcdTZGMzZcXHU2RjRCXFx1NkY3NFxcdTZGMkFcXHU2RjA5XFx1NkYyOVxcdTZGODlcXHU2RjhEXFx1NkY4Q1xcdTZGNzhcXHU2RjcyXFx1NkY3Q1xcdTZGN0FcXHU2RkQxXCJdLFxuICAgICAgW1wiZTU0MFwiLCBcIlxcdTkzMEFcIiwgNTEsIFwiXFx1OTMzRlwiLCAxMF0sXG4gICAgICBbXCJlNTgwXCIsIFwiXFx1OTM0QVwiLCAzMSwgXCJcXHU5MzZCXFx1NkZDOVxcdTZGQTdcXHU2RkI5XFx1NkZCNlxcdTZGQzJcXHU2RkUxXFx1NkZFRVxcdTZGREVcXHU2RkUwXFx1NkZFRlxcdTcwMUFcXHU3MDIzXFx1NzAxQlxcdTcwMzlcXHU3MDM1XFx1NzA0RlxcdTcwNUVcXHU1QjgwXFx1NUI4NFxcdTVCOTVcXHU1QjkzXFx1NUJBNVxcdTVCQjhcXHU3NTJGXFx1OUE5RVxcdTY0MzRcXHU1QkU0XFx1NUJFRVxcdTg5MzBcXHU1QkYwXFx1OEU0N1xcdThCMDdcXHU4RkI2XFx1OEZEM1xcdThGRDVcXHU4RkU1XFx1OEZFRVxcdThGRTRcXHU4RkU5XFx1OEZFNlxcdThGRjNcXHU4RkU4XFx1OTAwNVxcdTkwMDRcXHU5MDBCXFx1OTAyNlxcdTkwMTFcXHU5MDBEXFx1OTAxNlxcdTkwMjFcXHU5MDM1XFx1OTAzNlxcdTkwMkRcXHU5MDJGXFx1OTA0NFxcdTkwNTFcXHU5MDUyXFx1OTA1MFxcdTkwNjhcXHU5MDU4XFx1OTA2MlxcdTkwNUJcXHU2NkI5XFx1OTA3NFxcdTkwN0RcXHU5MDgyXFx1OTA4OFxcdTkwODNcXHU5MDhCXFx1NUY1MFxcdTVGNTdcXHU1RjU2XFx1NUY1OFxcdTVDM0JcXHU1NEFCXFx1NUM1MFxcdTVDNTlcXHU1QjcxXFx1NUM2M1xcdTVDNjZcXHU3RkJDXFx1NUYyQVxcdTVGMjlcXHU1RjJEXFx1ODI3NFxcdTVGM0NcXHU5QjNCXFx1NUM2RVxcdTU5ODFcXHU1OTgzXFx1NTk4RFxcdTU5QTlcXHU1OUFBXFx1NTlBM1wiXSxcbiAgICAgIFtcImU2NDBcIiwgXCJcXHU5MzZDXCIsIDM0LCBcIlxcdTkzOTBcIiwgMjddLFxuICAgICAgW1wiZTY4MFwiLCBcIlxcdTkzQUNcIiwgMjksIFwiXFx1OTNDQlxcdTkzQ0NcXHU5M0NEXFx1NTk5N1xcdTU5Q0FcXHU1OUFCXFx1NTk5RVxcdTU5QTRcXHU1OUQyXFx1NTlCMlxcdTU5QUZcXHU1OUQ3XFx1NTlCRVxcdTVBMDVcXHU1QTA2XFx1NTlERFxcdTVBMDhcXHU1OUUzXFx1NTlEOFxcdTU5RjlcXHU1QTBDXFx1NUEwOVxcdTVBMzJcXHU1QTM0XFx1NUExMVxcdTVBMjNcXHU1QTEzXFx1NUE0MFxcdTVBNjdcXHU1QTRBXFx1NUE1NVxcdTVBM0NcXHU1QTYyXFx1NUE3NVxcdTgwRUNcXHU1QUFBXFx1NUE5QlxcdTVBNzdcXHU1QTdBXFx1NUFCRVxcdTVBRUJcXHU1QUIyXFx1NUFEMlxcdTVBRDRcXHU1QUI4XFx1NUFFMFxcdTVBRTNcXHU1QUYxXFx1NUFENlxcdTVBRTZcXHU1QUQ4XFx1NUFEQ1xcdTVCMDlcXHU1QjE3XFx1NUIxNlxcdTVCMzJcXHU1QjM3XFx1NUI0MFxcdTVDMTVcXHU1QzFDXFx1NUI1QVxcdTVCNjVcXHU1QjczXFx1NUI1MVxcdTVCNTNcXHU1QjYyXFx1OUE3NVxcdTlBNzdcXHU5QTc4XFx1OUE3QVxcdTlBN0ZcXHU5QTdEXFx1OUE4MFxcdTlBODFcXHU5QTg1XFx1OUE4OFxcdTlBOEFcXHU5QTkwXFx1OUE5MlxcdTlBOTNcXHU5QTk2XFx1OUE5OFxcdTlBOUJcXHU5QTlDXFx1OUE5RFxcdTlBOUZcXHU5QUEwXFx1OUFBMlxcdTlBQTNcXHU5QUE1XFx1OUFBN1xcdTdFOUZcXHU3RUExXFx1N0VBM1xcdTdFQTVcXHU3RUE4XFx1N0VBOVwiXSxcbiAgICAgIFtcImU3NDBcIiwgXCJcXHU5M0NFXCIsIDcsIFwiXFx1OTNEN1wiLCA1NF0sXG4gICAgICBbXCJlNzgwXCIsIFwiXFx1OTQwRVwiLCAzMiwgXCJcXHU3RUFEXFx1N0VCMFxcdTdFQkVcXHU3RUMwXFx1N0VDMVxcdTdFQzJcXHU3RUM5XFx1N0VDQlxcdTdFQ0NcXHU3RUQwXFx1N0VENFxcdTdFRDdcXHU3RURCXFx1N0VFMFxcdTdFRTFcXHU3RUU4XFx1N0VFQlxcdTdFRUVcXHU3RUVGXFx1N0VGMVxcdTdFRjJcXHU3RjBEXFx1N0VGNlxcdTdFRkFcXHU3RUZCXFx1N0VGRVxcdTdGMDFcXHU3RjAyXFx1N0YwM1xcdTdGMDdcXHU3RjA4XFx1N0YwQlxcdTdGMENcXHU3RjBGXFx1N0YxMVxcdTdGMTJcXHU3RjE3XFx1N0YxOVxcdTdGMUNcXHU3RjFCXFx1N0YxRlxcdTdGMjFcIiwgNiwgXCJcXHU3RjJBXFx1N0YyQlxcdTdGMkNcXHU3RjJEXFx1N0YyRlwiLCA0LCBcIlxcdTdGMzVcXHU1RTdBXFx1NzU3RlxcdTVEREJcXHU3NTNFXFx1OTA5NVxcdTczOEVcXHU3MzkxXFx1NzNBRVxcdTczQTJcXHU3MzlGXFx1NzNDRlxcdTczQzJcXHU3M0QxXFx1NzNCN1xcdTczQjNcXHU3M0MwXFx1NzNDOVxcdTczQzhcXHU3M0U1XFx1NzNEOVxcdTk4N0NcXHU3NDBBXFx1NzNFOVxcdTczRTdcXHU3M0RFXFx1NzNCQVxcdTczRjJcXHU3NDBGXFx1NzQyQVxcdTc0NUJcXHU3NDI2XFx1NzQyNVxcdTc0MjhcXHU3NDMwXFx1NzQyRVxcdTc0MkNcIl0sXG4gICAgICBbXCJlODQwXCIsIFwiXFx1OTQyRlwiLCAxNCwgXCJcXHU5NDNGXCIsIDQzLCBcIlxcdTk0NkNcXHU5NDZEXFx1OTQ2RVxcdTk0NkZcIl0sXG4gICAgICBbXCJlODgwXCIsIFwiXFx1OTQ3MFwiLCAyMCwgXCJcXHU5NDkxXFx1OTQ5NlxcdTk0OThcXHU5NEM3XFx1OTRDRlxcdTk0RDNcXHU5NEQ0XFx1OTREQVxcdTk0RTZcXHU5NEZCXFx1OTUxQ1xcdTk1MjBcXHU3NDFCXFx1NzQxQVxcdTc0NDFcXHU3NDVDXFx1NzQ1N1xcdTc0NTVcXHU3NDU5XFx1NzQ3N1xcdTc0NkRcXHU3NDdFXFx1NzQ5Q1xcdTc0OEVcXHU3NDgwXFx1NzQ4MVxcdTc0ODdcXHU3NDhCXFx1NzQ5RVxcdTc0QThcXHU3NEE5XFx1NzQ5MFxcdTc0QTdcXHU3NEQyXFx1NzRCQVxcdTk3RUFcXHU5N0VCXFx1OTdFQ1xcdTY3NENcXHU2NzUzXFx1Njc1RVxcdTY3NDhcXHU2NzY5XFx1NjdBNVxcdTY3ODdcXHU2NzZBXFx1Njc3M1xcdTY3OThcXHU2N0E3XFx1Njc3NVxcdTY3QThcXHU2NzlFXFx1NjdBRFxcdTY3OEJcXHU2Nzc3XFx1Njc3Q1xcdTY3RjBcXHU2ODA5XFx1NjdEOFxcdTY4MEFcXHU2N0U5XFx1NjdCMFxcdTY4MENcXHU2N0Q5XFx1NjdCNVxcdTY3REFcXHU2N0IzXFx1NjdERFxcdTY4MDBcXHU2N0MzXFx1NjdCOFxcdTY3RTJcXHU2ODBFXFx1NjdDMVxcdTY3RkRcXHU2ODMyXFx1NjgzM1xcdTY4NjBcXHU2ODYxXFx1Njg0RVxcdTY4NjJcXHU2ODQ0XFx1Njg2NFxcdTY4ODNcXHU2ODFEXFx1Njg1NVxcdTY4NjZcXHU2ODQxXFx1Njg2N1xcdTY4NDBcXHU2ODNFXFx1Njg0QVxcdTY4NDlcXHU2ODI5XFx1NjhCNVxcdTY4OEZcXHU2ODc0XFx1Njg3N1xcdTY4OTNcXHU2ODZCXFx1NjhDMlxcdTY5NkVcXHU2OEZDXFx1NjkxRlxcdTY5MjBcXHU2OEY5XCJdLFxuICAgICAgW1wiZTk0MFwiLCBcIlxcdTk1MjdcXHU5NTMzXFx1OTUzRFxcdTk1NDNcXHU5NTQ4XFx1OTU0QlxcdTk1NTVcXHU5NTVBXFx1OTU2MFxcdTk1NkVcXHU5NTc0XFx1OTU3NVxcdTk1NzdcIiwgNywgXCJcXHU5NTgwXCIsIDQyXSxcbiAgICAgIFtcImU5ODBcIiwgXCJcXHU5NUFCXCIsIDMyLCBcIlxcdTY5MjRcXHU2OEYwXFx1NjkwQlxcdTY5MDFcXHU2OTU3XFx1NjhFM1xcdTY5MTBcXHU2OTcxXFx1NjkzOVxcdTY5NjBcXHU2OTQyXFx1Njk1RFxcdTY5ODRcXHU2OTZCXFx1Njk4MFxcdTY5OThcXHU2OTc4XFx1NjkzNFxcdTY5Q0NcXHU2OTg3XFx1Njk4OFxcdTY5Q0VcXHU2OTg5XFx1Njk2NlxcdTY5NjNcXHU2OTc5XFx1Njk5QlxcdTY5QTdcXHU2OUJCXFx1NjlBQlxcdTY5QURcXHU2OUQ0XFx1NjlCMVxcdTY5QzFcXHU2OUNBXFx1NjlERlxcdTY5OTVcXHU2OUUwXFx1Njk4RFxcdTY5RkZcXHU2QTJGXFx1NjlFRFxcdTZBMTdcXHU2QTE4XFx1NkE2NVxcdTY5RjJcXHU2QTQ0XFx1NkEzRVxcdTZBQTBcXHU2QTUwXFx1NkE1QlxcdTZBMzVcXHU2QThFXFx1NkE3OVxcdTZBM0RcXHU2QTI4XFx1NkE1OFxcdTZBN0NcXHU2QTkxXFx1NkE5MFxcdTZBQTlcXHU2QTk3XFx1NkFBQlxcdTczMzdcXHU3MzUyXFx1NkI4MVxcdTZCODJcXHU2Qjg3XFx1NkI4NFxcdTZCOTJcXHU2QjkzXFx1NkI4RFxcdTZCOUFcXHU2QjlCXFx1NkJBMVxcdTZCQUFcXHU4RjZCXFx1OEY2RFxcdThGNzFcXHU4RjcyXFx1OEY3M1xcdThGNzVcXHU4Rjc2XFx1OEY3OFxcdThGNzdcXHU4Rjc5XFx1OEY3QVxcdThGN0NcXHU4RjdFXFx1OEY4MVxcdThGODJcXHU4Rjg0XFx1OEY4N1xcdThGOEJcIl0sXG4gICAgICBbXCJlYTQwXCIsIFwiXFx1OTVDQ1wiLCAyNywgXCJcXHU5NUVDXFx1OTVGRlxcdTk2MDdcXHU5NjEzXFx1OTYxOFxcdTk2MUJcXHU5NjFFXFx1OTYyMFxcdTk2MjNcIiwgNiwgXCJcXHU5NjJCXFx1OTYyQ1xcdTk2MkRcXHU5NjJGXFx1OTYzMFxcdTk2MzdcXHU5NjM4XFx1OTYzOVxcdTk2M0FcXHU5NjNFXFx1OTY0MVxcdTk2NDNcXHU5NjRBXFx1OTY0RVxcdTk2NEZcXHU5NjUxXFx1OTY1MlxcdTk2NTNcXHU5NjU2XFx1OTY1N1wiXSxcbiAgICAgIFtcImVhODBcIiwgXCJcXHU5NjU4XFx1OTY1OVxcdTk2NUFcXHU5NjVDXFx1OTY1RFxcdTk2NUVcXHU5NjYwXFx1OTY2M1xcdTk2NjVcXHU5NjY2XFx1OTY2QlxcdTk2NkRcIiwgNCwgXCJcXHU5NjczXFx1OTY3OFwiLCAxMiwgXCJcXHU5Njg3XFx1OTY4OVxcdTk2OEFcXHU4RjhEXFx1OEY4RVxcdThGOEZcXHU4Rjk4XFx1OEY5QVxcdThFQ0VcXHU2MjBCXFx1NjIxN1xcdTYyMUJcXHU2MjFGXFx1NjIyMlxcdTYyMjFcXHU2MjI1XFx1NjIyNFxcdTYyMkNcXHU4MUU3XFx1NzRFRlxcdTc0RjRcXHU3NEZGXFx1NzUwRlxcdTc1MTFcXHU3NTEzXFx1NjUzNFxcdTY1RUVcXHU2NUVGXFx1NjVGMFxcdTY2MEFcXHU2NjE5XFx1Njc3MlxcdTY2MDNcXHU2NjE1XFx1NjYwMFxcdTcwODVcXHU2NkY3XFx1NjYxRFxcdTY2MzRcXHU2NjMxXFx1NjYzNlxcdTY2MzVcXHU4MDA2XFx1NjY1RlxcdTY2NTRcXHU2NjQxXFx1NjY0RlxcdTY2NTZcXHU2NjYxXFx1NjY1N1xcdTY2NzdcXHU2Njg0XFx1NjY4Q1xcdTY2QTdcXHU2NjlEXFx1NjZCRVxcdTY2REJcXHU2NkRDXFx1NjZFNlxcdTY2RTlcXHU4RDMyXFx1OEQzM1xcdThEMzZcXHU4RDNCXFx1OEQzRFxcdThENDBcXHU4RDQ1XFx1OEQ0NlxcdThENDhcXHU4RDQ5XFx1OEQ0N1xcdThENERcXHU4RDU1XFx1OEQ1OVxcdTg5QzdcXHU4OUNBXFx1ODlDQlxcdTg5Q0NcXHU4OUNFXFx1ODlDRlxcdTg5RDBcXHU4OUQxXFx1NzI2RVxcdTcyOUZcXHU3MjVEXFx1NzI2NlxcdTcyNkZcXHU3MjdFXFx1NzI3RlxcdTcyODRcXHU3MjhCXFx1NzI4RFxcdTcyOEZcXHU3MjkyXFx1NjMwOFxcdTYzMzJcXHU2M0IwXCJdLFxuICAgICAgW1wiZWI0MFwiLCBcIlxcdTk2OENcXHU5NjhFXFx1OTY5MVxcdTk2OTJcXHU5NjkzXFx1OTY5NVxcdTk2OTZcXHU5NjlBXFx1OTY5QlxcdTk2OURcIiwgOSwgXCJcXHU5NkE4XCIsIDcsIFwiXFx1OTZCMVxcdTk2QjJcXHU5NkI0XFx1OTZCNVxcdTk2QjdcXHU5NkI4XFx1OTZCQVxcdTk2QkJcXHU5NkJGXFx1OTZDMlxcdTk2QzNcXHU5NkM4XFx1OTZDQVxcdTk2Q0JcXHU5NkQwXFx1OTZEMVxcdTk2RDNcXHU5NkQ0XFx1OTZENlwiLCA5LCBcIlxcdTk2RTFcIiwgNiwgXCJcXHU5NkVCXCJdLFxuICAgICAgW1wiZWI4MFwiLCBcIlxcdTk2RUNcXHU5NkVEXFx1OTZFRVxcdTk2RjBcXHU5NkYxXFx1OTZGMlxcdTk2RjRcXHU5NkY1XFx1OTZGOFxcdTk2RkFcXHU5NkZCXFx1OTZGQ1xcdTk2RkRcXHU5NkZGXFx1OTcwMlxcdTk3MDNcXHU5NzA1XFx1OTcwQVxcdTk3MEJcXHU5NzBDXFx1OTcxMFxcdTk3MTFcXHU5NzEyXFx1OTcxNFxcdTk3MTVcXHU5NzE3XCIsIDQsIFwiXFx1OTcxRFxcdTk3MUZcXHU5NzIwXFx1NjQzRlxcdTY0RDhcXHU4MDA0XFx1NkJFQVxcdTZCRjNcXHU2QkZEXFx1NkJGNVxcdTZCRjlcXHU2QzA1XFx1NkMwN1xcdTZDMDZcXHU2QzBEXFx1NkMxNVxcdTZDMThcXHU2QzE5XFx1NkMxQVxcdTZDMjFcXHU2QzI5XFx1NkMyNFxcdTZDMkFcXHU2QzMyXFx1NjUzNVxcdTY1NTVcXHU2NTZCXFx1NzI0RFxcdTcyNTJcXHU3MjU2XFx1NzIzMFxcdTg2NjJcXHU1MjE2XFx1ODA5RlxcdTgwOUNcXHU4MDkzXFx1ODBCQ1xcdTY3MEFcXHU4MEJEXFx1ODBCMVxcdTgwQUJcXHU4MEFEXFx1ODBCNFxcdTgwQjdcXHU4MEU3XFx1ODBFOFxcdTgwRTlcXHU4MEVBXFx1ODBEQlxcdTgwQzJcXHU4MEM0XFx1ODBEOVxcdTgwQ0RcXHU4MEQ3XFx1NjcxMFxcdTgwRERcXHU4MEVCXFx1ODBGMVxcdTgwRjRcXHU4MEVEXFx1ODEwRFxcdTgxMEVcXHU4MEYyXFx1ODBGQ1xcdTY3MTVcXHU4MTEyXFx1OEM1QVxcdTgxMzZcXHU4MTFFXFx1ODEyQ1xcdTgxMThcXHU4MTMyXFx1ODE0OFxcdTgxNENcXHU4MTUzXFx1ODE3NFxcdTgxNTlcXHU4MTVBXFx1ODE3MVxcdTgxNjBcXHU4MTY5XFx1ODE3Q1xcdTgxN0RcXHU4MTZEXFx1ODE2N1xcdTU4NERcXHU1QUI1XFx1ODE4OFxcdTgxODJcXHU4MTkxXFx1NkVENVxcdTgxQTNcXHU4MUFBXFx1ODFDQ1xcdTY3MjZcXHU4MUNBXFx1ODFCQlwiXSxcbiAgICAgIFtcImVjNDBcIiwgXCJcXHU5NzIxXCIsIDgsIFwiXFx1OTcyQlxcdTk3MkNcXHU5NzJFXFx1OTcyRlxcdTk3MzFcXHU5NzMzXCIsIDQsIFwiXFx1OTczQVxcdTk3M0JcXHU5NzNDXFx1OTczRFxcdTk3M0ZcIiwgMTgsIFwiXFx1OTc1NFxcdTk3NTVcXHU5NzU3XFx1OTc1OFxcdTk3NUFcXHU5NzVDXFx1OTc1RFxcdTk3NUZcXHU5NzYzXFx1OTc2NFxcdTk3NjZcXHU5NzY3XFx1OTc2OFxcdTk3NkFcIiwgN10sXG4gICAgICBbXCJlYzgwXCIsIFwiXFx1OTc3MlxcdTk3NzVcXHU5Nzc3XCIsIDQsIFwiXFx1OTc3RFwiLCA3LCBcIlxcdTk3ODZcIiwgNCwgXCJcXHU5NzhDXFx1OTc4RVxcdTk3OEZcXHU5NzkwXFx1OTc5M1xcdTk3OTVcXHU5Nzk2XFx1OTc5N1xcdTk3OTlcIiwgNCwgXCJcXHU4MUMxXFx1ODFBNlxcdTZCMjRcXHU2QjM3XFx1NkIzOVxcdTZCNDNcXHU2QjQ2XFx1NkI1OVxcdTk4RDFcXHU5OEQyXFx1OThEM1xcdTk4RDVcXHU5OEQ5XFx1OThEQVxcdTZCQjNcXHU1RjQwXFx1NkJDMlxcdTg5RjNcXHU2NTkwXFx1OUY1MVxcdTY1OTNcXHU2NUJDXFx1NjVDNlxcdTY1QzRcXHU2NUMzXFx1NjVDQ1xcdTY1Q0VcXHU2NUQyXFx1NjVENlxcdTcwODBcXHU3MDlDXFx1NzA5NlxcdTcwOURcXHU3MEJCXFx1NzBDMFxcdTcwQjdcXHU3MEFCXFx1NzBCMVxcdTcwRThcXHU3MENBXFx1NzExMFxcdTcxMTNcXHU3MTE2XFx1NzEyRlxcdTcxMzFcXHU3MTczXFx1NzE1Q1xcdTcxNjhcXHU3MTQ1XFx1NzE3MlxcdTcxNEFcXHU3MTc4XFx1NzE3QVxcdTcxOThcXHU3MUIzXFx1NzFCNVxcdTcxQThcXHU3MUEwXFx1NzFFMFxcdTcxRDRcXHU3MUU3XFx1NzFGOVxcdTcyMURcXHU3MjI4XFx1NzA2Q1xcdTcxMThcXHU3MTY2XFx1NzFCOVxcdTYyM0VcXHU2MjNEXFx1NjI0M1xcdTYyNDhcXHU2MjQ5XFx1NzkzQlxcdTc5NDBcXHU3OTQ2XFx1Nzk0OVxcdTc5NUJcXHU3OTVDXFx1Nzk1M1xcdTc5NUFcXHU3OTYyXFx1Nzk1N1xcdTc5NjBcXHU3OTZGXFx1Nzk2N1xcdTc5N0FcXHU3OTg1XFx1Nzk4QVxcdTc5OUFcXHU3OUE3XFx1NzlCM1xcdTVGRDFcXHU1RkQwXCJdLFxuICAgICAgW1wiZWQ0MFwiLCBcIlxcdTk3OUVcXHU5NzlGXFx1OTdBMVxcdTk3QTJcXHU5N0E0XCIsIDYsIFwiXFx1OTdBQ1xcdTk3QUVcXHU5N0IwXFx1OTdCMVxcdTk3QjNcXHU5N0I1XCIsIDQ2XSxcbiAgICAgIFtcImVkODBcIiwgXCJcXHU5N0U0XFx1OTdFNVxcdTk3RThcXHU5N0VFXCIsIDQsIFwiXFx1OTdGNFxcdTk3RjdcIiwgMjMsIFwiXFx1NjAzQ1xcdTYwNURcXHU2MDVBXFx1NjA2N1xcdTYwNDFcXHU2MDU5XFx1NjA2M1xcdTYwQUJcXHU2MTA2XFx1NjEwRFxcdTYxNURcXHU2MUE5XFx1NjE5RFxcdTYxQ0JcXHU2MUQxXFx1NjIwNlxcdTgwODBcXHU4MDdGXFx1NkM5M1xcdTZDRjZcXHU2REZDXFx1NzdGNlxcdTc3RjhcXHU3ODAwXFx1NzgwOVxcdTc4MTdcXHU3ODE4XFx1NzgxMVxcdTY1QUJcXHU3ODJEXFx1NzgxQ1xcdTc4MURcXHU3ODM5XFx1NzgzQVxcdTc4M0JcXHU3ODFGXFx1NzgzQ1xcdTc4MjVcXHU3ODJDXFx1NzgyM1xcdTc4MjlcXHU3ODRFXFx1Nzg2RFxcdTc4NTZcXHU3ODU3XFx1NzgyNlxcdTc4NTBcXHU3ODQ3XFx1Nzg0Q1xcdTc4NkFcXHU3ODlCXFx1Nzg5M1xcdTc4OUFcXHU3ODg3XFx1Nzg5Q1xcdTc4QTFcXHU3OEEzXFx1NzhCMlxcdTc4QjlcXHU3OEE1XFx1NzhENFxcdTc4RDlcXHU3OEM5XFx1NzhFQ1xcdTc4RjJcXHU3OTA1XFx1NzhGNFxcdTc5MTNcXHU3OTI0XFx1NzkxRVxcdTc5MzRcXHU5RjlCXFx1OUVGOVxcdTlFRkJcXHU5RUZDXFx1NzZGMVxcdTc3MDRcXHU3NzBEXFx1NzZGOVxcdTc3MDdcXHU3NzA4XFx1NzcxQVxcdTc3MjJcXHU3NzE5XFx1NzcyRFxcdTc3MjZcXHU3NzM1XFx1NzczOFxcdTc3NTBcXHU3NzUxXFx1Nzc0N1xcdTc3NDNcXHU3NzVBXFx1Nzc2OFwiXSxcbiAgICAgIFtcImVlNDBcIiwgXCJcXHU5ODBGXCIsIDYyXSxcbiAgICAgIFtcImVlODBcIiwgXCJcXHU5ODRFXCIsIDMyLCBcIlxcdTc3NjJcXHU3NzY1XFx1Nzc3RlxcdTc3OERcXHU3NzdEXFx1Nzc4MFxcdTc3OENcXHU3NzkxXFx1Nzc5RlxcdTc3QTBcXHU3N0IwXFx1NzdCNVxcdTc3QkRcXHU3NTNBXFx1NzU0MFxcdTc1NEVcXHU3NTRCXFx1NzU0OFxcdTc1NUJcXHU3NTcyXFx1NzU3OVxcdTc1ODNcXHU3RjU4XFx1N0Y2MVxcdTdGNUZcXHU4QTQ4XFx1N0Y2OFxcdTdGNzRcXHU3RjcxXFx1N0Y3OVxcdTdGODFcXHU3RjdFXFx1NzZDRFxcdTc2RTVcXHU4ODMyXFx1OTQ4NVxcdTk0ODZcXHU5NDg3XFx1OTQ4QlxcdTk0OEFcXHU5NDhDXFx1OTQ4RFxcdTk0OEZcXHU5NDkwXFx1OTQ5NFxcdTk0OTdcXHU5NDk1XFx1OTQ5QVxcdTk0OUJcXHU5NDlDXFx1OTRBM1xcdTk0QTRcXHU5NEFCXFx1OTRBQVxcdTk0QURcXHU5NEFDXFx1OTRBRlxcdTk0QjBcXHU5NEIyXFx1OTRCNFxcdTk0QjZcIiwgNCwgXCJcXHU5NEJDXFx1OTRCRFxcdTk0QkZcXHU5NEM0XFx1OTRDOFwiLCA2LCBcIlxcdTk0RDBcXHU5NEQxXFx1OTREMlxcdTk0RDVcXHU5NEQ2XFx1OTREN1xcdTk0RDlcXHU5NEQ4XFx1OTREQlxcdTk0REVcXHU5NERGXFx1OTRFMFxcdTk0RTJcXHU5NEU0XFx1OTRFNVxcdTk0RTdcXHU5NEU4XFx1OTRFQVwiXSxcbiAgICAgIFtcImVmNDBcIiwgXCJcXHU5ODZGXCIsIDUsIFwiXFx1OTg4QlxcdTk4OEVcXHU5ODkyXFx1OTg5NVxcdTk4OTlcXHU5OEEzXFx1OThBOFwiLCAzNywgXCJcXHU5OENGXFx1OThEMFxcdTk4RDRcXHU5OEQ2XFx1OThEN1xcdTk4REJcXHU5OERDXFx1OThERFxcdTk4RTBcIiwgNF0sXG4gICAgICBbXCJlZjgwXCIsIFwiXFx1OThFNVxcdTk4RTZcXHU5OEU5XCIsIDMwLCBcIlxcdTk0RTlcXHU5NEVCXFx1OTRFRVxcdTk0RUZcXHU5NEYzXFx1OTRGNFxcdTk0RjVcXHU5NEY3XFx1OTRGOVxcdTk0RkNcXHU5NEZEXFx1OTRGRlxcdTk1MDNcXHU5NTAyXFx1OTUwNlxcdTk1MDdcXHU5NTA5XFx1OTUwQVxcdTk1MERcXHU5NTBFXFx1OTUwRlxcdTk1MTJcIiwgNCwgXCJcXHU5NTE4XFx1OTUxQlxcdTk1MURcXHU5NTFFXFx1OTUxRlxcdTk1MjJcXHU5NTJBXFx1OTUyQlxcdTk1MjlcXHU5NTJDXFx1OTUzMVxcdTk1MzJcXHU5NTM0XFx1OTUzNlxcdTk1MzdcXHU5NTM4XFx1OTUzQ1xcdTk1M0VcXHU5NTNGXFx1OTU0MlxcdTk1MzVcXHU5NTQ0XFx1OTU0NVxcdTk1NDZcXHU5NTQ5XFx1OTU0Q1xcdTk1NEVcXHU5NTRGXFx1OTU1MlxcdTk1NTNcXHU5NTU0XFx1OTU1NlxcdTk1NTdcXHU5NTU4XFx1OTU1OVxcdTk1NUJcXHU5NTVFXFx1OTU1RlxcdTk1NURcXHU5NTYxXFx1OTU2MlxcdTk1NjRcIiwgOCwgXCJcXHU5NTZGXFx1OTU3MVxcdTk1NzJcXHU5NTczXFx1OTUzQVxcdTc3RTdcXHU3N0VDXFx1OTZDOVxcdTc5RDVcXHU3OUVEXFx1NzlFM1xcdTc5RUJcXHU3QTA2XFx1NUQ0N1xcdTdBMDNcXHU3QTAyXFx1N0ExRVxcdTdBMTRcIl0sXG4gICAgICBbXCJmMDQwXCIsIFwiXFx1OTkwOFwiLCA0LCBcIlxcdTk5MEVcXHU5OTBGXFx1OTkxMVwiLCAyOCwgXCJcXHU5OTJGXCIsIDI2XSxcbiAgICAgIFtcImYwODBcIiwgXCJcXHU5OTRBXCIsIDksIFwiXFx1OTk1NlwiLCAxMiwgXCJcXHU5OTY0XFx1OTk2NlxcdTk5NzNcXHU5OTc4XFx1OTk3OVxcdTk5N0JcXHU5OTdFXFx1OTk4MlxcdTk5ODNcXHU5OTg5XFx1N0EzOVxcdTdBMzdcXHU3QTUxXFx1OUVDRlxcdTk5QTVcXHU3QTcwXFx1NzY4OFxcdTc2OEVcXHU3NjkzXFx1NzY5OVxcdTc2QTRcXHU3NERFXFx1NzRFMFxcdTc1MkNcXHU5RTIwXFx1OUUyMlxcdTlFMjhcIiwgNCwgXCJcXHU5RTMyXFx1OUUzMVxcdTlFMzZcXHU5RTM4XFx1OUUzN1xcdTlFMzlcXHU5RTNBXFx1OUUzRVxcdTlFNDFcXHU5RTQyXFx1OUU0NFxcdTlFNDZcXHU5RTQ3XFx1OUU0OFxcdTlFNDlcXHU5RTRCXFx1OUU0Q1xcdTlFNEVcXHU5RTUxXFx1OUU1NVxcdTlFNTdcXHU5RTVBXFx1OUU1QlxcdTlFNUNcXHU5RTVFXFx1OUU2M1xcdTlFNjZcIiwgNiwgXCJcXHU5RTcxXFx1OUU2RFxcdTlFNzNcXHU3NTkyXFx1NzU5NFxcdTc1OTZcXHU3NUEwXFx1NzU5RFxcdTc1QUNcXHU3NUEzXFx1NzVCM1xcdTc1QjRcXHU3NUI4XFx1NzVDNFxcdTc1QjFcXHU3NUIwXFx1NzVDM1xcdTc1QzJcXHU3NUQ2XFx1NzVDRFxcdTc1RTNcXHU3NUU4XFx1NzVFNlxcdTc1RTRcXHU3NUVCXFx1NzVFN1xcdTc2MDNcXHU3NUYxXFx1NzVGQ1xcdTc1RkZcXHU3NjEwXFx1NzYwMFxcdTc2MDVcXHU3NjBDXFx1NzYxN1xcdTc2MEFcXHU3NjI1XFx1NzYxOFxcdTc2MTVcXHU3NjE5XCJdLFxuICAgICAgW1wiZjE0MFwiLCBcIlxcdTk5OENcXHU5OThFXFx1OTk5QVwiLCAxMCwgXCJcXHU5OUE2XFx1OTlBN1xcdTk5QTlcIiwgNDddLFxuICAgICAgW1wiZjE4MFwiLCBcIlxcdTk5RDlcIiwgMzIsIFwiXFx1NzYxQlxcdTc2M0NcXHU3NjIyXFx1NzYyMFxcdTc2NDBcXHU3NjJEXFx1NzYzMFxcdTc2M0ZcXHU3NjM1XFx1NzY0M1xcdTc2M0VcXHU3NjMzXFx1NzY0RFxcdTc2NUVcXHU3NjU0XFx1NzY1Q1xcdTc2NTZcXHU3NjZCXFx1NzY2RlxcdTdGQ0FcXHU3QUU2XFx1N0E3OFxcdTdBNzlcXHU3QTgwXFx1N0E4NlxcdTdBODhcXHU3QTk1XFx1N0FBNlxcdTdBQTBcXHU3QUFDXFx1N0FBOFxcdTdBQURcXHU3QUIzXFx1ODg2NFxcdTg4NjlcXHU4ODcyXFx1ODg3RFxcdTg4N0ZcXHU4ODgyXFx1ODhBMlxcdTg4QzZcXHU4OEI3XFx1ODhCQ1xcdTg4QzlcXHU4OEUyXFx1ODhDRVxcdTg4RTNcXHU4OEU1XFx1ODhGMVxcdTg5MUFcXHU4OEZDXFx1ODhFOFxcdTg4RkVcXHU4OEYwXFx1ODkyMVxcdTg5MTlcXHU4OTEzXFx1ODkxQlxcdTg5MEFcXHU4OTM0XFx1ODkyQlxcdTg5MzZcXHU4OTQxXFx1ODk2NlxcdTg5N0JcXHU3NThCXFx1ODBFNVxcdTc2QjJcXHU3NkI0XFx1NzdEQ1xcdTgwMTJcXHU4MDE0XFx1ODAxNlxcdTgwMUNcXHU4MDIwXFx1ODAyMlxcdTgwMjVcXHU4MDI2XFx1ODAyN1xcdTgwMjlcXHU4MDI4XFx1ODAzMVxcdTgwMEJcXHU4MDM1XFx1ODA0M1xcdTgwNDZcXHU4MDREXFx1ODA1MlxcdTgwNjlcXHU4MDcxXFx1ODk4M1xcdTk4NzhcXHU5ODgwXFx1OTg4M1wiXSxcbiAgICAgIFtcImYyNDBcIiwgXCJcXHU5OUZBXCIsIDYyXSxcbiAgICAgIFtcImYyODBcIiwgXCJcXHU5QTM5XCIsIDMyLCBcIlxcdTk4ODlcXHU5ODhDXFx1OTg4RFxcdTk4OEZcXHU5ODk0XFx1OTg5QVxcdTk4OUJcXHU5ODlFXFx1OTg5RlxcdTk4QTFcXHU5OEEyXFx1OThBNVxcdTk4QTZcXHU4NjREXFx1ODY1NFxcdTg2NkNcXHU4NjZFXFx1ODY3RlxcdTg2N0FcXHU4NjdDXFx1ODY3QlxcdTg2QThcXHU4NjhEXFx1ODY4QlxcdTg2QUNcXHU4NjlEXFx1ODZBN1xcdTg2QTNcXHU4NkFBXFx1ODY5M1xcdTg2QTlcXHU4NkI2XFx1ODZDNFxcdTg2QjVcXHU4NkNFXFx1ODZCMFxcdTg2QkFcXHU4NkIxXFx1ODZBRlxcdTg2QzlcXHU4NkNGXFx1ODZCNFxcdTg2RTlcXHU4NkYxXFx1ODZGMlxcdTg2RURcXHU4NkYzXFx1ODZEMFxcdTg3MTNcXHU4NkRFXFx1ODZGNFxcdTg2REZcXHU4NkQ4XFx1ODZEMVxcdTg3MDNcXHU4NzA3XFx1ODZGOFxcdTg3MDhcXHU4NzBBXFx1ODcwRFxcdTg3MDlcXHU4NzIzXFx1ODczQlxcdTg3MUVcXHU4NzI1XFx1ODcyRVxcdTg3MUFcXHU4NzNFXFx1ODc0OFxcdTg3MzRcXHU4NzMxXFx1ODcyOVxcdTg3MzdcXHU4NzNGXFx1ODc4MlxcdTg3MjJcXHU4NzdEXFx1ODc3RVxcdTg3N0JcXHU4NzYwXFx1ODc3MFxcdTg3NENcXHU4NzZFXFx1ODc4QlxcdTg3NTNcXHU4NzYzXFx1ODc3Q1xcdTg3NjRcXHU4NzU5XFx1ODc2NVxcdTg3OTNcXHU4N0FGXFx1ODdBOFxcdTg3RDJcIl0sXG4gICAgICBbXCJmMzQwXCIsIFwiXFx1OUE1QVwiLCAxNywgXCJcXHU5QTcyXFx1OUE4M1xcdTlBODlcXHU5QThEXFx1OUE4RVxcdTlBOTRcXHU5QTk1XFx1OUE5OVxcdTlBQTZcXHU5QUE5XCIsIDYsIFwiXFx1OUFCMlxcdTlBQjNcXHU5QUI0XFx1OUFCNVxcdTlBQjlcXHU5QUJCXFx1OUFCRFxcdTlBQkVcXHU5QUJGXFx1OUFDM1xcdTlBQzRcXHU5QUM2XCIsIDQsIFwiXFx1OUFDRFxcdTlBQ0VcXHU5QUNGXFx1OUFEMFxcdTlBRDJcXHU5QUQ0XFx1OUFENVxcdTlBRDZcXHU5QUQ3XFx1OUFEOVxcdTlBREFcXHU5QURCXFx1OUFEQ1wiXSxcbiAgICAgIFtcImYzODBcIiwgXCJcXHU5QUREXFx1OUFERVxcdTlBRTBcXHU5QUUyXFx1OUFFM1xcdTlBRTRcXHU5QUU1XFx1OUFFN1xcdTlBRThcXHU5QUU5XFx1OUFFQVxcdTlBRUNcXHU5QUVFXFx1OUFGMFwiLCA4LCBcIlxcdTlBRkFcXHU5QUZDXCIsIDYsIFwiXFx1OUIwNFxcdTlCMDVcXHU5QjA2XFx1ODdDNlxcdTg3ODhcXHU4Nzg1XFx1ODdBRFxcdTg3OTdcXHU4NzgzXFx1ODdBQlxcdTg3RTVcXHU4N0FDXFx1ODdCNVxcdTg3QjNcXHU4N0NCXFx1ODdEM1xcdTg3QkRcXHU4N0QxXFx1ODdDMFxcdTg3Q0FcXHU4N0RCXFx1ODdFQVxcdTg3RTBcXHU4N0VFXFx1ODgxNlxcdTg4MTNcXHU4N0ZFXFx1ODgwQVxcdTg4MUJcXHU4ODIxXFx1ODgzOVxcdTg4M0NcXHU3RjM2XFx1N0Y0MlxcdTdGNDRcXHU3RjQ1XFx1ODIxMFxcdTdBRkFcXHU3QUZEXFx1N0IwOFxcdTdCMDNcXHU3QjA0XFx1N0IxNVxcdTdCMEFcXHU3QjJCXFx1N0IwRlxcdTdCNDdcXHU3QjM4XFx1N0IyQVxcdTdCMTlcXHU3QjJFXFx1N0IzMVxcdTdCMjBcXHU3QjI1XFx1N0IyNFxcdTdCMzNcXHU3QjNFXFx1N0IxRVxcdTdCNThcXHU3QjVBXFx1N0I0NVxcdTdCNzVcXHU3QjRDXFx1N0I1RFxcdTdCNjBcXHU3QjZFXFx1N0I3QlxcdTdCNjJcXHU3QjcyXFx1N0I3MVxcdTdCOTBcXHU3QkE2XFx1N0JBN1xcdTdCQjhcXHU3QkFDXFx1N0I5RFxcdTdCQThcXHU3Qjg1XFx1N0JBQVxcdTdCOUNcXHU3QkEyXFx1N0JBQlxcdTdCQjRcXHU3QkQxXFx1N0JDMVxcdTdCQ0NcXHU3QkREXFx1N0JEQVxcdTdCRTVcXHU3QkU2XFx1N0JFQVxcdTdDMENcXHU3QkZFXFx1N0JGQ1xcdTdDMEZcXHU3QzE2XFx1N0MwQlwiXSxcbiAgICAgIFtcImY0NDBcIiwgXCJcXHU5QjA3XFx1OUIwOVwiLCA1LCBcIlxcdTlCMTBcXHU5QjExXFx1OUIxMlxcdTlCMTRcIiwgMTAsIFwiXFx1OUIyMFxcdTlCMjFcXHU5QjIyXFx1OUIyNFwiLCAxMCwgXCJcXHU5QjMwXFx1OUIzMVxcdTlCMzNcIiwgNywgXCJcXHU5QjNEXFx1OUIzRVxcdTlCM0ZcXHU5QjQwXFx1OUI0NlxcdTlCNEFcXHU5QjRCXFx1OUI0Q1xcdTlCNEVcXHU5QjUwXFx1OUI1MlxcdTlCNTNcXHU5QjU1XCIsIDVdLFxuICAgICAgW1wiZjQ4MFwiLCBcIlxcdTlCNUJcIiwgMzIsIFwiXFx1N0MxRlxcdTdDMkFcXHU3QzI2XFx1N0MzOFxcdTdDNDFcXHU3QzQwXFx1ODFGRVxcdTgyMDFcXHU4MjAyXFx1ODIwNFxcdTgxRUNcXHU4ODQ0XFx1ODIyMVxcdTgyMjJcXHU4MjIzXFx1ODIyRFxcdTgyMkZcXHU4MjI4XFx1ODIyQlxcdTgyMzhcXHU4MjNCXFx1ODIzM1xcdTgyMzRcXHU4MjNFXFx1ODI0NFxcdTgyNDlcXHU4MjRCXFx1ODI0RlxcdTgyNUFcXHU4MjVGXFx1ODI2OFxcdTg4N0VcXHU4ODg1XFx1ODg4OFxcdTg4RDhcXHU4OERGXFx1ODk1RVxcdTdGOURcXHU3RjlGXFx1N0ZBN1xcdTdGQUZcXHU3RkIwXFx1N0ZCMlxcdTdDN0NcXHU2NTQ5XFx1N0M5MVxcdTdDOURcXHU3QzlDXFx1N0M5RVxcdTdDQTJcXHU3Q0IyXFx1N0NCQ1xcdTdDQkRcXHU3Q0MxXFx1N0NDN1xcdTdDQ0NcXHU3Q0NEXFx1N0NDOFxcdTdDQzVcXHU3Q0Q3XFx1N0NFOFxcdTgyNkVcXHU2NkE4XFx1N0ZCRlxcdTdGQ0VcXHU3RkQ1XFx1N0ZFNVxcdTdGRTFcXHU3RkU2XFx1N0ZFOVxcdTdGRUVcXHU3RkYzXFx1N0NGOFxcdTdENzdcXHU3REE2XFx1N0RBRVxcdTdFNDdcXHU3RTlCXFx1OUVCOFxcdTlFQjRcXHU4RDczXFx1OEQ4NFxcdThEOTRcXHU4RDkxXFx1OERCMVxcdThENjdcXHU4RDZEXFx1OEM0N1xcdThDNDlcXHU5MTRBXFx1OTE1MFxcdTkxNEVcXHU5MTRGXFx1OTE2NFwiXSxcbiAgICAgIFtcImY1NDBcIiwgXCJcXHU5QjdDXCIsIDYyXSxcbiAgICAgIFtcImY1ODBcIiwgXCJcXHU5QkJCXCIsIDMyLCBcIlxcdTkxNjJcXHU5MTYxXFx1OTE3MFxcdTkxNjlcXHU5MTZGXFx1OTE3RFxcdTkxN0VcXHU5MTcyXFx1OTE3NFxcdTkxNzlcXHU5MThDXFx1OTE4NVxcdTkxOTBcXHU5MThEXFx1OTE5MVxcdTkxQTJcXHU5MUEzXFx1OTFBQVxcdTkxQURcXHU5MUFFXFx1OTFBRlxcdTkxQjVcXHU5MUI0XFx1OTFCQVxcdThDNTVcXHU5RTdFXFx1OERCOFxcdThERUJcXHU4RTA1XFx1OEU1OVxcdThFNjlcXHU4REI1XFx1OERCRlxcdThEQkNcXHU4REJBXFx1OERDNFxcdThERDZcXHU4REQ3XFx1OEREQVxcdThEREVcXHU4RENFXFx1OERDRlxcdThEREJcXHU4REM2XFx1OERFQ1xcdThERjdcXHU4REY4XFx1OERFM1xcdThERjlcXHU4REZCXFx1OERFNFxcdThFMDlcXHU4REZEXFx1OEUxNFxcdThFMURcXHU4RTFGXFx1OEUyQ1xcdThFMkVcXHU4RTIzXFx1OEUyRlxcdThFM0FcXHU4RTQwXFx1OEUzOVxcdThFMzVcXHU4RTNEXFx1OEUzMVxcdThFNDlcXHU4RTQxXFx1OEU0MlxcdThFNTFcXHU4RTUyXFx1OEU0QVxcdThFNzBcXHU4RTc2XFx1OEU3Q1xcdThFNkZcXHU4RTc0XFx1OEU4NVxcdThFOEZcXHU4RTk0XFx1OEU5MFxcdThFOUNcXHU4RTlFXFx1OEM3OFxcdThDODJcXHU4QzhBXFx1OEM4NVxcdThDOThcXHU4Qzk0XFx1NjU5QlxcdTg5RDZcXHU4OURFXFx1ODlEQVxcdTg5RENcIl0sXG4gICAgICBbXCJmNjQwXCIsIFwiXFx1OUJEQ1wiLCA2Ml0sXG4gICAgICBbXCJmNjgwXCIsIFwiXFx1OUMxQlwiLCAzMiwgXCJcXHU4OUU1XFx1ODlFQlxcdTg5RUZcXHU4QTNFXFx1OEIyNlxcdTk3NTNcXHU5NkU5XFx1OTZGM1xcdTk2RUZcXHU5NzA2XFx1OTcwMVxcdTk3MDhcXHU5NzBGXFx1OTcwRVxcdTk3MkFcXHU5NzJEXFx1OTczMFxcdTk3M0VcXHU5RjgwXFx1OUY4M1xcdTlGODVcIiwgNSwgXCJcXHU5RjhDXFx1OUVGRVxcdTlGMEJcXHU5RjBEXFx1OTZCOVxcdTk2QkNcXHU5NkJEXFx1OTZDRVxcdTk2RDJcXHU3N0JGXFx1OTZFMFxcdTkyOEVcXHU5MkFFXFx1OTJDOFxcdTkzM0VcXHU5MzZBXFx1OTNDQVxcdTkzOEZcXHU5NDNFXFx1OTQ2QlxcdTlDN0ZcXHU5QzgyXFx1OUM4NVxcdTlDODZcXHU5Qzg3XFx1OUM4OFxcdTdBMjNcXHU5QzhCXFx1OUM4RVxcdTlDOTBcXHU5QzkxXFx1OUM5MlxcdTlDOTRcXHU5Qzk1XFx1OUM5QVxcdTlDOUJcXHU5QzlFXCIsIDUsIFwiXFx1OUNBNVwiLCA0LCBcIlxcdTlDQUJcXHU5Q0FEXFx1OUNBRVxcdTlDQjBcIiwgNywgXCJcXHU5Q0JBXFx1OUNCQlxcdTlDQkNcXHU5Q0JEXFx1OUNDNFxcdTlDQzVcXHU5Q0M2XFx1OUNDN1xcdTlDQ0FcXHU5Q0NCXCJdLFxuICAgICAgW1wiZjc0MFwiLCBcIlxcdTlDM0NcIiwgNjJdLFxuICAgICAgW1wiZjc4MFwiLCBcIlxcdTlDN0JcXHU5QzdEXFx1OUM3RVxcdTlDODBcXHU5QzgzXFx1OUM4NFxcdTlDODlcXHU5QzhBXFx1OUM4Q1xcdTlDOEZcXHU5QzkzXFx1OUM5NlxcdTlDOTdcXHU5Qzk4XFx1OUM5OVxcdTlDOURcXHU5Q0FBXFx1OUNBQ1xcdTlDQUZcXHU5Q0I5XFx1OUNCRVwiLCA0LCBcIlxcdTlDQzhcXHU5Q0M5XFx1OUNEMVxcdTlDRDJcXHU5Q0RBXFx1OUNEQlxcdTlDRTBcXHU5Q0UxXFx1OUNDQ1wiLCA0LCBcIlxcdTlDRDNcXHU5Q0Q0XFx1OUNENVxcdTlDRDdcXHU5Q0Q4XFx1OUNEOVxcdTlDRENcXHU5Q0REXFx1OUNERlxcdTlDRTJcXHU5NzdDXFx1OTc4NVxcdTk3OTFcXHU5NzkyXFx1OTc5NFxcdTk3QUZcXHU5N0FCXFx1OTdBM1xcdTk3QjJcXHU5N0I0XFx1OUFCMVxcdTlBQjBcXHU5QUI3XFx1OUU1OFxcdTlBQjZcXHU5QUJBXFx1OUFCQ1xcdTlBQzFcXHU5QUMwXFx1OUFDNVxcdTlBQzJcXHU5QUNCXFx1OUFDQ1xcdTlBRDFcXHU5QjQ1XFx1OUI0M1xcdTlCNDdcXHU5QjQ5XFx1OUI0OFxcdTlCNERcXHU5QjUxXFx1OThFOFxcdTk5MERcXHU5OTJFXFx1OTk1NVxcdTk5NTRcXHU5QURGXFx1OUFFMVxcdTlBRTZcXHU5QUVGXFx1OUFFQlxcdTlBRkJcXHU5QUVEXFx1OUFGOVxcdTlCMDhcXHU5QjBGXFx1OUIxM1xcdTlCMUZcXHU5QjIzXFx1OUVCRFxcdTlFQkVcXHU3RTNCXFx1OUU4MlxcdTlFODdcXHU5RTg4XFx1OUU4QlxcdTlFOTJcXHU5M0Q2XFx1OUU5RFxcdTlFOUZcXHU5RURCXFx1OUVEQ1xcdTlFRERcXHU5RUUwXFx1OUVERlxcdTlFRTJcXHU5RUU5XFx1OUVFN1xcdTlFRTVcXHU5RUVBXFx1OUVFRlxcdTlGMjJcXHU5RjJDXFx1OUYyRlxcdTlGMzlcXHU5RjM3XFx1OUYzRFxcdTlGM0VcXHU5RjQ0XCJdLFxuICAgICAgW1wiZjg0MFwiLCBcIlxcdTlDRTNcIiwgNjJdLFxuICAgICAgW1wiZjg4MFwiLCBcIlxcdTlEMjJcIiwgMzJdLFxuICAgICAgW1wiZjk0MFwiLCBcIlxcdTlENDNcIiwgNjJdLFxuICAgICAgW1wiZjk4MFwiLCBcIlxcdTlEODJcIiwgMzJdLFxuICAgICAgW1wiZmE0MFwiLCBcIlxcdTlEQTNcIiwgNjJdLFxuICAgICAgW1wiZmE4MFwiLCBcIlxcdTlERTJcIiwgMzJdLFxuICAgICAgW1wiZmI0MFwiLCBcIlxcdTlFMDNcIiwgMjcsIFwiXFx1OUUyNFxcdTlFMjdcXHU5RTJFXFx1OUUzMFxcdTlFMzRcXHU5RTNCXFx1OUUzQ1xcdTlFNDBcXHU5RTREXFx1OUU1MFxcdTlFNTJcXHU5RTUzXFx1OUU1NFxcdTlFNTZcXHU5RTU5XFx1OUU1RFxcdTlFNUZcXHU5RTYwXFx1OUU2MVxcdTlFNjJcXHU5RTY1XFx1OUU2RVxcdTlFNkZcXHU5RTcyXFx1OUU3NFwiLCA5LCBcIlxcdTlFODBcIl0sXG4gICAgICBbXCJmYjgwXCIsIFwiXFx1OUU4MVxcdTlFODNcXHU5RTg0XFx1OUU4NVxcdTlFODZcXHU5RTg5XFx1OUU4QVxcdTlFOENcIiwgNSwgXCJcXHU5RTk0XCIsIDgsIFwiXFx1OUU5RVxcdTlFQTBcIiwgNSwgXCJcXHU5RUE3XFx1OUVBOFxcdTlFQTlcXHU5RUFBXCJdLFxuICAgICAgW1wiZmM0MFwiLCBcIlxcdTlFQUJcIiwgOCwgXCJcXHU5RUI1XFx1OUVCNlxcdTlFQjdcXHU5RUI5XFx1OUVCQVxcdTlFQkNcXHU5RUJGXCIsIDQsIFwiXFx1OUVDNVxcdTlFQzZcXHU5RUM3XFx1OUVDOFxcdTlFQ0FcXHU5RUNCXFx1OUVDQ1xcdTlFRDBcXHU5RUQyXFx1OUVEM1xcdTlFRDVcXHU5RUQ2XFx1OUVEN1xcdTlFRDlcXHU5RURBXFx1OUVERVxcdTlFRTFcXHU5RUUzXFx1OUVFNFxcdTlFRTZcXHU5RUU4XFx1OUVFQlxcdTlFRUNcXHU5RUVEXFx1OUVFRVxcdTlFRjBcIiwgOCwgXCJcXHU5RUZBXFx1OUVGRFxcdTlFRkZcIiwgNl0sXG4gICAgICBbXCJmYzgwXCIsIFwiXFx1OUYwNlwiLCA0LCBcIlxcdTlGMENcXHU5RjBGXFx1OUYxMVxcdTlGMTJcXHU5RjE0XFx1OUYxNVxcdTlGMTZcXHU5RjE4XFx1OUYxQVwiLCA1LCBcIlxcdTlGMjFcXHU5RjIzXCIsIDgsIFwiXFx1OUYyRFxcdTlGMkVcXHU5RjMwXFx1OUYzMVwiXSxcbiAgICAgIFtcImZkNDBcIiwgXCJcXHU5RjMyXCIsIDQsIFwiXFx1OUYzOFxcdTlGM0FcXHU5RjNDXFx1OUYzRlwiLCA0LCBcIlxcdTlGNDVcIiwgMTAsIFwiXFx1OUY1MlwiLCAzOF0sXG4gICAgICBbXCJmZDgwXCIsIFwiXFx1OUY3OVwiLCA1LCBcIlxcdTlGODFcXHU5RjgyXFx1OUY4RFwiLCAxMSwgXCJcXHU5RjlDXFx1OUY5RFxcdTlGOUVcXHU5RkExXCIsIDQsIFwiXFx1RjkyQ1xcdUY5NzlcXHVGOTk1XFx1RjlFN1xcdUY5RjFcIl0sXG4gICAgICBbXCJmZTQwXCIsIFwiXFx1RkEwQ1xcdUZBMERcXHVGQTBFXFx1RkEwRlxcdUZBMTFcXHVGQTEzXFx1RkExNFxcdUZBMThcXHVGQTFGXFx1RkEyMFxcdUZBMjFcXHVGQTIzXFx1RkEyNFxcdUZBMjdcXHVGQTI4XFx1RkEyOVwiXVxuICAgIF07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9nYmstYWRkZWQuanNvblxudmFyIHJlcXVpcmVfZ2JrX2FkZGVkID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvZ2JrLWFkZGVkLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFtcbiAgICAgIFtcImExNDBcIiwgXCJcXHVFNEM2XCIsIDYyXSxcbiAgICAgIFtcImExODBcIiwgXCJcXHVFNTA1XCIsIDMyXSxcbiAgICAgIFtcImEyNDBcIiwgXCJcXHVFNTI2XCIsIDYyXSxcbiAgICAgIFtcImEyODBcIiwgXCJcXHVFNTY1XCIsIDMyXSxcbiAgICAgIFtcImEyYWJcIiwgXCJcXHVFNzY2XCIsIDVdLFxuICAgICAgW1wiYTJlM1wiLCBcIlxcdTIwQUNcXHVFNzZEXCJdLFxuICAgICAgW1wiYTJlZlwiLCBcIlxcdUU3NkVcXHVFNzZGXCJdLFxuICAgICAgW1wiYTJmZFwiLCBcIlxcdUU3NzBcXHVFNzcxXCJdLFxuICAgICAgW1wiYTM0MFwiLCBcIlxcdUU1ODZcIiwgNjJdLFxuICAgICAgW1wiYTM4MFwiLCBcIlxcdUU1QzVcIiwgMzEsIFwiXFx1MzAwMFwiXSxcbiAgICAgIFtcImE0NDBcIiwgXCJcXHVFNUU2XCIsIDYyXSxcbiAgICAgIFtcImE0ODBcIiwgXCJcXHVFNjI1XCIsIDMyXSxcbiAgICAgIFtcImE0ZjRcIiwgXCJcXHVFNzcyXCIsIDEwXSxcbiAgICAgIFtcImE1NDBcIiwgXCJcXHVFNjQ2XCIsIDYyXSxcbiAgICAgIFtcImE1ODBcIiwgXCJcXHVFNjg1XCIsIDMyXSxcbiAgICAgIFtcImE1ZjdcIiwgXCJcXHVFNzdEXCIsIDddLFxuICAgICAgW1wiYTY0MFwiLCBcIlxcdUU2QTZcIiwgNjJdLFxuICAgICAgW1wiYTY4MFwiLCBcIlxcdUU2RTVcIiwgMzJdLFxuICAgICAgW1wiYTZiOVwiLCBcIlxcdUU3ODVcIiwgN10sXG4gICAgICBbXCJhNmQ5XCIsIFwiXFx1RTc4RFwiLCA2XSxcbiAgICAgIFtcImE2ZWNcIiwgXCJcXHVFNzk0XFx1RTc5NVwiXSxcbiAgICAgIFtcImE2ZjNcIiwgXCJcXHVFNzk2XCJdLFxuICAgICAgW1wiYTZmNlwiLCBcIlxcdUU3OTdcIiwgOF0sXG4gICAgICBbXCJhNzQwXCIsIFwiXFx1RTcwNlwiLCA2Ml0sXG4gICAgICBbXCJhNzgwXCIsIFwiXFx1RTc0NVwiLCAzMl0sXG4gICAgICBbXCJhN2MyXCIsIFwiXFx1RTdBMFwiLCAxNF0sXG4gICAgICBbXCJhN2YyXCIsIFwiXFx1RTdBRlwiLCAxMl0sXG4gICAgICBbXCJhODk2XCIsIFwiXFx1RTdCQ1wiLCAxMF0sXG4gICAgICBbXCJhOGJjXCIsIFwiXFx1MUUzRlwiXSxcbiAgICAgIFtcImE4YmZcIiwgXCJcXHUwMUY5XCJdLFxuICAgICAgW1wiYThjMVwiLCBcIlxcdUU3QzlcXHVFN0NBXFx1RTdDQlxcdUU3Q0NcIl0sXG4gICAgICBbXCJhOGVhXCIsIFwiXFx1RTdDRFwiLCAyMF0sXG4gICAgICBbXCJhOTU4XCIsIFwiXFx1RTdFMlwiXSxcbiAgICAgIFtcImE5NWJcIiwgXCJcXHVFN0UzXCJdLFxuICAgICAgW1wiYTk1ZFwiLCBcIlxcdUU3RTRcXHVFN0U1XFx1RTdFNlwiXSxcbiAgICAgIFtcImE5ODlcIiwgXCJcXHUzMDNFXFx1MkZGMFwiLCAxMV0sXG4gICAgICBbXCJhOTk3XCIsIFwiXFx1RTdGNFwiLCAxMl0sXG4gICAgICBbXCJhOWYwXCIsIFwiXFx1RTgwMVwiLCAxNF0sXG4gICAgICBbXCJhYWExXCIsIFwiXFx1RTAwMFwiLCA5M10sXG4gICAgICBbXCJhYmExXCIsIFwiXFx1RTA1RVwiLCA5M10sXG4gICAgICBbXCJhY2ExXCIsIFwiXFx1RTBCQ1wiLCA5M10sXG4gICAgICBbXCJhZGExXCIsIFwiXFx1RTExQVwiLCA5M10sXG4gICAgICBbXCJhZWExXCIsIFwiXFx1RTE3OFwiLCA5M10sXG4gICAgICBbXCJhZmExXCIsIFwiXFx1RTFENlwiLCA5M10sXG4gICAgICBbXCJkN2ZhXCIsIFwiXFx1RTgxMFwiLCA0XSxcbiAgICAgIFtcImY4YTFcIiwgXCJcXHVFMjM0XCIsIDkzXSxcbiAgICAgIFtcImY5YTFcIiwgXCJcXHVFMjkyXCIsIDkzXSxcbiAgICAgIFtcImZhYTFcIiwgXCJcXHVFMkYwXCIsIDkzXSxcbiAgICAgIFtcImZiYTFcIiwgXCJcXHVFMzRFXCIsIDkzXSxcbiAgICAgIFtcImZjYTFcIiwgXCJcXHVFM0FDXCIsIDkzXSxcbiAgICAgIFtcImZkYTFcIiwgXCJcXHVFNDBBXCIsIDkzXSxcbiAgICAgIFtcImZlNTBcIiwgXCJcXHUyRTgxXFx1RTgxNlxcdUU4MTdcXHVFODE4XFx1MkU4NFxcdTM0NzNcXHUzNDQ3XFx1MkU4OFxcdTJFOEJcXHVFODFFXFx1MzU5RVxcdTM2MUFcXHUzNjBFXFx1MkU4Q1xcdTJFOTdcXHUzOTZFXFx1MzkxOFxcdUU4MjZcXHUzOUNGXFx1MzlERlxcdTNBNzNcXHUzOUQwXFx1RTgyQlxcdUU4MkNcXHUzQjRFXFx1M0M2RVxcdTNDRTBcXHUyRUE3XFx1RTgzMVxcdUU4MzJcXHUyRUFBXFx1NDA1NlxcdTQxNUZcXHUyRUFFXFx1NDMzN1xcdTJFQjNcXHUyRUI2XFx1MkVCN1xcdUU4M0JcXHU0M0IxXFx1NDNBQ1xcdTJFQkJcXHU0M0REXFx1NDRENlxcdTQ2NjFcXHU0NjRDXFx1RTg0M1wiXSxcbiAgICAgIFtcImZlODBcIiwgXCJcXHU0NzIzXFx1NDcyOVxcdTQ3N0NcXHU0NzhEXFx1MkVDQVxcdTQ5NDdcXHU0OTdBXFx1NDk3RFxcdTQ5ODJcXHU0OTgzXFx1NDk4NVxcdTQ5ODZcXHU0OTlGXFx1NDk5QlxcdTQ5QjdcXHU0OUI2XFx1RTg1NFxcdUU4NTVcXHU0Q0EzXFx1NEM5RlxcdTRDQTBcXHU0Q0ExXFx1NEM3N1xcdTRDQTJcXHU0RDEzXCIsIDYsIFwiXFx1NERBRVxcdUU4NjRcXHVFNDY4XCIsIDkzXSxcbiAgICAgIFtcIjgxMzVmNDM3XCIsIFwiXFx1RTdDN1wiXVxuICAgIF07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9nYjE4MDMwLXJhbmdlcy5qc29uXG52YXIgcmVxdWlyZV9nYjE4MDMwX3JhbmdlcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2diMTgwMzAtcmFuZ2VzLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHsgdUNoYXJzOiBbMTI4LCAxNjUsIDE2OSwgMTc4LCAxODQsIDIxNiwgMjI2LCAyMzUsIDIzOCwgMjQ0LCAyNDgsIDI1MSwgMjUzLCAyNTgsIDI3NiwgMjg0LCAzMDAsIDMyNSwgMzI5LCAzMzQsIDM2NCwgNDYzLCA0NjUsIDQ2NywgNDY5LCA0NzEsIDQ3MywgNDc1LCA0NzcsIDUwNiwgNTk0LCA2MTAsIDcxMiwgNzE2LCA3MzAsIDkzMCwgOTM4LCA5NjIsIDk3MCwgMTAyNiwgMTEwNCwgMTEwNiwgODIwOSwgODIxNSwgODIxOCwgODIyMiwgODIzMSwgODI0MSwgODI0NCwgODI0NiwgODI1MiwgODM2NSwgODQ1MiwgODQ1NCwgODQ1OCwgODQ3MSwgODQ4MiwgODU1NiwgODU3MCwgODU5NiwgODYwMiwgODcxMywgODcyMCwgODcyMiwgODcyNiwgODczMSwgODczNywgODc0MCwgODc0MiwgODc0OCwgODc1MSwgODc2MCwgODc2NiwgODc3NywgODc4MSwgODc4NywgODgwMiwgODgwOCwgODgxNiwgODg1NCwgODg1OCwgODg3MCwgODg5NiwgODk3OSwgOTMyMiwgOTM3MiwgOTU0OCwgOTU4OCwgOTYxNiwgOTYyMiwgOTYzNCwgOTY1MiwgOTY2MiwgOTY3MiwgOTY3NiwgOTY4MCwgOTcwMiwgOTczNSwgOTczOCwgOTc5MywgOTc5NSwgMTE5MDYsIDExOTA5LCAxMTkxMywgMTE5MTcsIDExOTI4LCAxMTk0NCwgMTE5NDcsIDExOTUxLCAxMTk1NiwgMTE5NjAsIDExOTY0LCAxMTk3OSwgMTIyODQsIDEyMjkyLCAxMjMxMiwgMTIzMTksIDEyMzMwLCAxMjM1MSwgMTI0MzYsIDEyNDQ3LCAxMjUzNSwgMTI1NDMsIDEyNTg2LCAxMjg0MiwgMTI4NTAsIDEyOTY0LCAxMzIwMCwgMTMyMTUsIDEzMjE4LCAxMzI1MywgMTMyNjMsIDEzMjY3LCAxMzI3MCwgMTMzODQsIDEzNDI4LCAxMzcyNywgMTM4MzksIDEzODUxLCAxNDYxNywgMTQ3MDMsIDE0ODAxLCAxNDgxNiwgMTQ5NjQsIDE1MTgzLCAxNTQ3MSwgMTU1ODUsIDE2NDcxLCAxNjczNiwgMTcyMDgsIDE3MzI1LCAxNzMzMCwgMTczNzQsIDE3NjIzLCAxNzk5NywgMTgwMTgsIDE4MjEyLCAxODIxOCwgMTgzMDEsIDE4MzE4LCAxODc2MCwgMTg4MTEsIDE4ODE0LCAxODgyMCwgMTg4MjMsIDE4ODQ0LCAxODg0OCwgMTg4NzIsIDE5NTc2LCAxOTYyMCwgMTk3MzgsIDE5ODg3LCA0MDg3MCwgNTkyNDQsIDU5MzM2LCA1OTM2NywgNTk0MTMsIDU5NDE3LCA1OTQyMywgNTk0MzEsIDU5NDM3LCA1OTQ0MywgNTk0NTIsIDU5NDYwLCA1OTQ3OCwgNTk0OTMsIDYzNzg5LCA2Mzg2NiwgNjM4OTQsIDYzOTc2LCA2Mzk4NiwgNjQwMTYsIDY0MDE4LCA2NDAyMSwgNjQwMjUsIDY0MDM0LCA2NDAzNywgNjQwNDIsIDY1MDc0LCA2NTA5MywgNjUxMDcsIDY1MTEyLCA2NTEyNywgNjUxMzIsIDY1Mzc1LCA2NTUxMCwgNjU1MzZdLCBnYkNoYXJzOiBbMCwgMzYsIDM4LCA0NSwgNTAsIDgxLCA4OSwgOTUsIDk2LCAxMDAsIDEwMywgMTA0LCAxMDUsIDEwOSwgMTI2LCAxMzMsIDE0OCwgMTcyLCAxNzUsIDE3OSwgMjA4LCAzMDYsIDMwNywgMzA4LCAzMDksIDMxMCwgMzExLCAzMTIsIDMxMywgMzQxLCA0MjgsIDQ0MywgNTQ0LCA1NDUsIDU1OCwgNzQxLCA3NDIsIDc0OSwgNzUwLCA4MDUsIDgxOSwgODIwLCA3OTIyLCA3OTI0LCA3OTI1LCA3OTI3LCA3OTM0LCA3OTQzLCA3OTQ0LCA3OTQ1LCA3OTUwLCA4MDYyLCA4MTQ4LCA4MTQ5LCA4MTUyLCA4MTY0LCA4MTc0LCA4MjM2LCA4MjQwLCA4MjYyLCA4MjY0LCA4Mzc0LCA4MzgwLCA4MzgxLCA4Mzg0LCA4Mzg4LCA4MzkwLCA4MzkyLCA4MzkzLCA4Mzk0LCA4Mzk2LCA4NDAxLCA4NDA2LCA4NDE2LCA4NDE5LCA4NDI0LCA4NDM3LCA4NDM5LCA4NDQ1LCA4NDgyLCA4NDg1LCA4NDk2LCA4NTIxLCA4NjAzLCA4OTM2LCA4OTQ2LCA5MDQ2LCA5MDUwLCA5MDYzLCA5MDY2LCA5MDc2LCA5MDkyLCA5MTAwLCA5MTA4LCA5MTExLCA5MTEzLCA5MTMxLCA5MTYyLCA5MTY0LCA5MjE4LCA5MjE5LCAxMTMyOSwgMTEzMzEsIDExMzM0LCAxMTMzNiwgMTEzNDYsIDExMzYxLCAxMTM2MywgMTEzNjYsIDExMzcwLCAxMTM3MiwgMTEzNzUsIDExMzg5LCAxMTY4MiwgMTE2ODYsIDExNjg3LCAxMTY5MiwgMTE2OTQsIDExNzE0LCAxMTcxNiwgMTE3MjMsIDExNzI1LCAxMTczMCwgMTE3MzYsIDExOTgyLCAxMTk4OSwgMTIxMDIsIDEyMzM2LCAxMjM0OCwgMTIzNTAsIDEyMzg0LCAxMjM5MywgMTIzOTUsIDEyMzk3LCAxMjUxMCwgMTI1NTMsIDEyODUxLCAxMjk2MiwgMTI5NzMsIDEzNzM4LCAxMzgyMywgMTM5MTksIDEzOTMzLCAxNDA4MCwgMTQyOTgsIDE0NTg1LCAxNDY5OCwgMTU1ODMsIDE1ODQ3LCAxNjMxOCwgMTY0MzQsIDE2NDM4LCAxNjQ4MSwgMTY3MjksIDE3MTAyLCAxNzEyMiwgMTczMTUsIDE3MzIwLCAxNzQwMiwgMTc0MTgsIDE3ODU5LCAxNzkwOSwgMTc5MTEsIDE3OTE1LCAxNzkxNiwgMTc5MzYsIDE3OTM5LCAxNzk2MSwgMTg2NjQsIDE4NzAzLCAxODgxNCwgMTg5NjIsIDE5MDQzLCAzMzQ2OSwgMzM0NzAsIDMzNDcxLCAzMzQ4NCwgMzM0ODUsIDMzNDkwLCAzMzQ5NywgMzM1MDEsIDMzNTA1LCAzMzUxMywgMzM1MjAsIDMzNTM2LCAzMzU1MCwgMzc4NDUsIDM3OTIxLCAzNzk0OCwgMzgwMjksIDM4MDM4LCAzODA2NCwgMzgwNjUsIDM4MDY2LCAzODA2OSwgMzgwNzUsIDM4MDc2LCAzODA3OCwgMzkxMDgsIDM5MTA5LCAzOTExMywgMzkxMTQsIDM5MTE1LCAzOTExNiwgMzkyNjUsIDM5Mzk0LCAxODllM10gfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2NwOTQ5Lmpzb25cbnZhciByZXF1aXJlX2NwOTQ5ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvY3A5NDkuanNvblwiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gW1xuICAgICAgW1wiMFwiLCBcIlxcMFwiLCAxMjddLFxuICAgICAgW1wiODE0MVwiLCBcIlxcdUFDMDJcXHVBQzAzXFx1QUMwNVxcdUFDMDZcXHVBQzBCXCIsIDQsIFwiXFx1QUMxOFxcdUFDMUVcXHVBQzFGXFx1QUMyMVxcdUFDMjJcXHVBQzIzXFx1QUMyNVwiLCA2LCBcIlxcdUFDMkVcXHVBQzMyXFx1QUMzM1xcdUFDMzRcIl0sXG4gICAgICBbXCI4MTYxXCIsIFwiXFx1QUMzNVxcdUFDMzZcXHVBQzM3XFx1QUMzQVxcdUFDM0JcXHVBQzNEXFx1QUMzRVxcdUFDM0ZcXHVBQzQxXCIsIDksIFwiXFx1QUM0Q1xcdUFDNEVcIiwgNSwgXCJcXHVBQzU1XCJdLFxuICAgICAgW1wiODE4MVwiLCBcIlxcdUFDNTZcXHVBQzU3XFx1QUM1OVxcdUFDNUFcXHVBQzVCXFx1QUM1RFwiLCAxOCwgXCJcXHVBQzcyXFx1QUM3M1xcdUFDNzVcXHVBQzc2XFx1QUM3OVxcdUFDN0JcIiwgNCwgXCJcXHVBQzgyXFx1QUM4N1xcdUFDODhcXHVBQzhEXFx1QUM4RVxcdUFDOEZcXHVBQzkxXFx1QUM5MlxcdUFDOTNcXHVBQzk1XCIsIDYsIFwiXFx1QUM5RVxcdUFDQTJcIiwgNSwgXCJcXHVBQ0FCXFx1QUNBRFxcdUFDQUVcXHVBQ0IxXCIsIDYsIFwiXFx1QUNCQVxcdUFDQkVcXHVBQ0JGXFx1QUNDMFxcdUFDQzJcXHVBQ0MzXFx1QUNDNVxcdUFDQzZcXHVBQ0M3XFx1QUNDOVxcdUFDQ0FcXHVBQ0NCXFx1QUNDRFwiLCA3LCBcIlxcdUFDRDZcXHVBQ0Q4XCIsIDcsIFwiXFx1QUNFMlxcdUFDRTNcXHVBQ0U1XFx1QUNFNlxcdUFDRTlcXHVBQ0VCXFx1QUNFRFxcdUFDRUVcXHVBQ0YyXFx1QUNGNFxcdUFDRjdcIiwgNCwgXCJcXHVBQ0ZFXFx1QUNGRlxcdUFEMDFcXHVBRDAyXFx1QUQwM1xcdUFEMDVcXHVBRDA3XCIsIDQsIFwiXFx1QUQwRVxcdUFEMTBcXHVBRDEyXFx1QUQxM1wiXSxcbiAgICAgIFtcIjgyNDFcIiwgXCJcXHVBRDE0XFx1QUQxNVxcdUFEMTZcXHVBRDE3XFx1QUQxOVxcdUFEMUFcXHVBRDFCXFx1QUQxRFxcdUFEMUVcXHVBRDFGXFx1QUQyMVwiLCA3LCBcIlxcdUFEMkFcXHVBRDJCXFx1QUQyRVwiLCA1XSxcbiAgICAgIFtcIjgyNjFcIiwgXCJcXHVBRDM2XFx1QUQzN1xcdUFEMzlcXHVBRDNBXFx1QUQzQlxcdUFEM0RcIiwgNiwgXCJcXHVBRDQ2XFx1QUQ0OFxcdUFENEFcIiwgNSwgXCJcXHVBRDUxXFx1QUQ1MlxcdUFENTNcXHVBRDU1XFx1QUQ1NlxcdUFENTdcIl0sXG4gICAgICBbXCI4MjgxXCIsIFwiXFx1QUQ1OVwiLCA3LCBcIlxcdUFENjJcXHVBRDY0XCIsIDcsIFwiXFx1QUQ2RVxcdUFENkZcXHVBRDcxXFx1QUQ3MlxcdUFENzdcXHVBRDc4XFx1QUQ3OVxcdUFEN0FcXHVBRDdFXFx1QUQ4MFxcdUFEODNcIiwgNCwgXCJcXHVBRDhBXFx1QUQ4QlxcdUFEOERcXHVBRDhFXFx1QUQ4RlxcdUFEOTFcIiwgMTAsIFwiXFx1QUQ5RVwiLCA1LCBcIlxcdUFEQTVcIiwgMTcsIFwiXFx1QURCOFwiLCA3LCBcIlxcdUFEQzJcXHVBREMzXFx1QURDNVxcdUFEQzZcXHVBREM3XFx1QURDOVwiLCA2LCBcIlxcdUFERDJcXHVBREQ0XCIsIDcsIFwiXFx1QURERFxcdUFEREVcXHVBRERGXFx1QURFMVxcdUFERTJcXHVBREUzXFx1QURFNVwiLCAxOF0sXG4gICAgICBbXCI4MzQxXCIsIFwiXFx1QURGQVxcdUFERkJcXHVBREZEXFx1QURGRVxcdUFFMDJcIiwgNSwgXCJcXHVBRTBBXFx1QUUwQ1xcdUFFMEVcIiwgNSwgXCJcXHVBRTE1XCIsIDddLFxuICAgICAgW1wiODM2MVwiLCBcIlxcdUFFMURcIiwgMTgsIFwiXFx1QUUzMlxcdUFFMzNcXHVBRTM1XFx1QUUzNlxcdUFFMzlcXHVBRTNCXFx1QUUzQ1wiXSxcbiAgICAgIFtcIjgzODFcIiwgXCJcXHVBRTNEXFx1QUUzRVxcdUFFM0ZcXHVBRTQyXFx1QUU0NFxcdUFFNDdcXHVBRTQ4XFx1QUU0OVxcdUFFNEJcXHVBRTRGXFx1QUU1MVxcdUFFNTJcXHVBRTUzXFx1QUU1NVxcdUFFNTdcIiwgNCwgXCJcXHVBRTVFXFx1QUU2MlxcdUFFNjNcXHVBRTY0XFx1QUU2NlxcdUFFNjdcXHVBRTZBXFx1QUU2QlxcdUFFNkRcXHVBRTZFXFx1QUU2RlxcdUFFNzFcIiwgNiwgXCJcXHVBRTdBXFx1QUU3RVwiLCA1LCBcIlxcdUFFODZcIiwgNSwgXCJcXHVBRThEXCIsIDQ2LCBcIlxcdUFFQkZcXHVBRUMxXFx1QUVDMlxcdUFFQzNcXHVBRUM1XCIsIDYsIFwiXFx1QUVDRVxcdUFFRDJcIiwgNSwgXCJcXHVBRURBXFx1QUVEQlxcdUFFRERcIiwgOF0sXG4gICAgICBbXCI4NDQxXCIsIFwiXFx1QUVFNlxcdUFFRTdcXHVBRUU5XFx1QUVFQVxcdUFFRUNcXHVBRUVFXCIsIDUsIFwiXFx1QUVGNVxcdUFFRjZcXHVBRUY3XFx1QUVGOVxcdUFFRkFcXHVBRUZCXFx1QUVGRFwiLCA4XSxcbiAgICAgIFtcIjg0NjFcIiwgXCJcXHVBRjA2XFx1QUYwOVxcdUFGMEFcXHVBRjBCXFx1QUYwQ1xcdUFGMEVcXHVBRjBGXFx1QUYxMVwiLCAxOF0sXG4gICAgICBbXCI4NDgxXCIsIFwiXFx1QUYyNFwiLCA3LCBcIlxcdUFGMkVcXHVBRjJGXFx1QUYzMVxcdUFGMzNcXHVBRjM1XCIsIDYsIFwiXFx1QUYzRVxcdUFGNDBcXHVBRjQ0XFx1QUY0NVxcdUFGNDZcXHVBRjQ3XFx1QUY0QVwiLCA1LCBcIlxcdUFGNTFcIiwgMTAsIFwiXFx1QUY1RVwiLCA1LCBcIlxcdUFGNjZcIiwgMTgsIFwiXFx1QUY3QVwiLCA1LCBcIlxcdUFGODFcXHVBRjgyXFx1QUY4M1xcdUFGODVcXHVBRjg2XFx1QUY4N1xcdUFGODlcIiwgNiwgXCJcXHVBRjkyXFx1QUY5M1xcdUFGOTRcXHVBRjk2XCIsIDUsIFwiXFx1QUY5RFwiLCAyNiwgXCJcXHVBRkJBXFx1QUZCQlxcdUFGQkRcXHVBRkJFXCJdLFxuICAgICAgW1wiODU0MVwiLCBcIlxcdUFGQkZcXHVBRkMxXCIsIDUsIFwiXFx1QUZDQVxcdUFGQ0NcXHVBRkNGXCIsIDQsIFwiXFx1QUZENVwiLCA2LCBcIlxcdUFGRERcIiwgNF0sXG4gICAgICBbXCI4NTYxXCIsIFwiXFx1QUZFMlwiLCA1LCBcIlxcdUFGRUFcIiwgNSwgXCJcXHVBRkYyXFx1QUZGM1xcdUFGRjVcXHVBRkY2XFx1QUZGN1xcdUFGRjlcIiwgNiwgXCJcXHVCMDAyXFx1QjAwM1wiXSxcbiAgICAgIFtcIjg1ODFcIiwgXCJcXHVCMDA1XCIsIDYsIFwiXFx1QjAwRFxcdUIwMEVcXHVCMDBGXFx1QjAxMVxcdUIwMTJcXHVCMDEzXFx1QjAxNVwiLCA2LCBcIlxcdUIwMUVcIiwgOSwgXCJcXHVCMDI5XCIsIDI2LCBcIlxcdUIwNDZcXHVCMDQ3XFx1QjA0OVxcdUIwNEJcXHVCMDREXFx1QjA0RlxcdUIwNTBcXHVCMDUxXFx1QjA1MlxcdUIwNTZcXHVCMDU4XFx1QjA1QVxcdUIwNUJcXHVCMDVDXFx1QjA1RVwiLCAyOSwgXCJcXHVCMDdFXFx1QjA3RlxcdUIwODFcXHVCMDgyXFx1QjA4M1xcdUIwODVcIiwgNiwgXCJcXHVCMDhFXFx1QjA5MFxcdUIwOTJcIiwgNSwgXCJcXHVCMDlCXFx1QjA5RFxcdUIwOUVcXHVCMEEzXFx1QjBBNFwiXSxcbiAgICAgIFtcIjg2NDFcIiwgXCJcXHVCMEE1XFx1QjBBNlxcdUIwQTdcXHVCMEFBXFx1QjBCMFxcdUIwQjJcXHVCMEI2XFx1QjBCN1xcdUIwQjlcXHVCMEJBXFx1QjBCQlxcdUIwQkRcIiwgNiwgXCJcXHVCMEM2XFx1QjBDQVwiLCA1LCBcIlxcdUIwRDJcIl0sXG4gICAgICBbXCI4NjYxXCIsIFwiXFx1QjBEM1xcdUIwRDVcXHVCMEQ2XFx1QjBEN1xcdUIwRDlcIiwgNiwgXCJcXHVCMEUxXFx1QjBFMlxcdUIwRTNcXHVCMEU0XFx1QjBFNlwiLCAxMF0sXG4gICAgICBbXCI4NjgxXCIsIFwiXFx1QjBGMVwiLCAyMiwgXCJcXHVCMTBBXFx1QjEwRFxcdUIxMEVcXHVCMTBGXFx1QjExMVxcdUIxMTRcXHVCMTE1XFx1QjExNlxcdUIxMTdcXHVCMTFBXFx1QjExRVwiLCA0LCBcIlxcdUIxMjZcXHVCMTI3XFx1QjEyOVxcdUIxMkFcXHVCMTJCXFx1QjEyRFwiLCA2LCBcIlxcdUIxMzZcXHVCMTNBXCIsIDUsIFwiXFx1QjE0MlxcdUIxNDNcXHVCMTQ1XFx1QjE0NlxcdUIxNDdcXHVCMTQ5XCIsIDYsIFwiXFx1QjE1MlxcdUIxNTNcXHVCMTU2XFx1QjE1N1xcdUIxNTlcXHVCMTVBXFx1QjE1QlxcdUIxNURcXHVCMTVFXFx1QjE1RlxcdUIxNjFcIiwgMjIsIFwiXFx1QjE3QVxcdUIxN0JcXHVCMTdEXFx1QjE3RVxcdUIxN0ZcXHVCMTgxXFx1QjE4M1wiLCA0LCBcIlxcdUIxOEFcXHVCMThDXFx1QjE4RVxcdUIxOEZcXHVCMTkwXFx1QjE5MVxcdUIxOTVcXHVCMTk2XFx1QjE5N1xcdUIxOTlcXHVCMTlBXFx1QjE5QlxcdUIxOURcIl0sXG4gICAgICBbXCI4NzQxXCIsIFwiXFx1QjE5RVwiLCA5LCBcIlxcdUIxQTlcIiwgMTVdLFxuICAgICAgW1wiODc2MVwiLCBcIlxcdUIxQjlcIiwgMTgsIFwiXFx1QjFDRFxcdUIxQ0VcXHVCMUNGXFx1QjFEMVxcdUIxRDJcXHVCMUQzXFx1QjFENVwiXSxcbiAgICAgIFtcIjg3ODFcIiwgXCJcXHVCMUQ2XCIsIDUsIFwiXFx1QjFERVxcdUIxRTBcIiwgNywgXCJcXHVCMUVBXFx1QjFFQlxcdUIxRURcXHVCMUVFXFx1QjFFRlxcdUIxRjFcIiwgNywgXCJcXHVCMUZBXFx1QjFGQ1xcdUIxRkVcIiwgNSwgXCJcXHVCMjA2XFx1QjIwN1xcdUIyMDlcXHVCMjBBXFx1QjIwRFwiLCA2LCBcIlxcdUIyMTZcXHVCMjE4XFx1QjIxQVwiLCA1LCBcIlxcdUIyMjFcIiwgMTgsIFwiXFx1QjIzNVwiLCA2LCBcIlxcdUIyM0RcIiwgMjYsIFwiXFx1QjI1OVxcdUIyNUFcXHVCMjVCXFx1QjI1RFxcdUIyNUVcXHVCMjVGXFx1QjI2MVwiLCA2LCBcIlxcdUIyNkFcIiwgNF0sXG4gICAgICBbXCI4ODQxXCIsIFwiXFx1QjI2RlwiLCA0LCBcIlxcdUIyNzZcIiwgNSwgXCJcXHVCMjdEXCIsIDYsIFwiXFx1QjI4NlxcdUIyODdcXHVCMjg4XFx1QjI4QVwiLCA0XSxcbiAgICAgIFtcIjg4NjFcIiwgXCJcXHVCMjhGXFx1QjI5MlxcdUIyOTNcXHVCMjk1XFx1QjI5NlxcdUIyOTdcXHVCMjlCXCIsIDQsIFwiXFx1QjJBMlxcdUIyQTRcXHVCMkE3XFx1QjJBOFxcdUIyQTlcXHVCMkFCXFx1QjJBRFxcdUIyQUVcXHVCMkFGXFx1QjJCMVxcdUIyQjJcXHVCMkIzXFx1QjJCNVxcdUIyQjZcXHVCMkI3XCJdLFxuICAgICAgW1wiODg4MVwiLCBcIlxcdUIyQjhcIiwgMTUsIFwiXFx1QjJDQVxcdUIyQ0JcXHVCMkNEXFx1QjJDRVxcdUIyQ0ZcXHVCMkQxXFx1QjJEM1wiLCA0LCBcIlxcdUIyREFcXHVCMkRDXFx1QjJERVxcdUIyREZcXHVCMkUwXFx1QjJFMVxcdUIyRTNcXHVCMkU3XFx1QjJFOVxcdUIyRUFcXHVCMkYwXFx1QjJGMVxcdUIyRjJcXHVCMkY2XFx1QjJGQ1xcdUIyRkRcXHVCMkZFXFx1QjMwMlxcdUIzMDNcXHVCMzA1XFx1QjMwNlxcdUIzMDdcXHVCMzA5XCIsIDYsIFwiXFx1QjMxMlxcdUIzMTZcIiwgNSwgXCJcXHVCMzFEXCIsIDU0LCBcIlxcdUIzNTdcXHVCMzU5XFx1QjM1QVxcdUIzNURcXHVCMzYwXFx1QjM2MVxcdUIzNjJcXHVCMzYzXCJdLFxuICAgICAgW1wiODk0MVwiLCBcIlxcdUIzNjZcXHVCMzY4XFx1QjM2QVxcdUIzNkNcXHVCMzZEXFx1QjM2RlxcdUIzNzJcXHVCMzczXFx1QjM3NVxcdUIzNzZcXHVCMzc3XFx1QjM3OVwiLCA2LCBcIlxcdUIzODJcXHVCMzg2XCIsIDUsIFwiXFx1QjM4RFwiXSxcbiAgICAgIFtcIjg5NjFcIiwgXCJcXHVCMzhFXFx1QjM4RlxcdUIzOTFcXHVCMzkyXFx1QjM5M1xcdUIzOTVcIiwgMTAsIFwiXFx1QjNBMlwiLCA1LCBcIlxcdUIzQTlcXHVCM0FBXFx1QjNBQlxcdUIzQURcIl0sXG4gICAgICBbXCI4OTgxXCIsIFwiXFx1QjNBRVwiLCAyMSwgXCJcXHVCM0M2XFx1QjNDN1xcdUIzQzlcXHVCM0NBXFx1QjNDRFxcdUIzQ0ZcXHVCM0QxXFx1QjNEMlxcdUIzRDNcXHVCM0Q2XFx1QjNEOFxcdUIzREFcXHVCM0RDXFx1QjNERVxcdUIzREZcXHVCM0UxXFx1QjNFMlxcdUIzRTNcXHVCM0U1XFx1QjNFNlxcdUIzRTdcXHVCM0U5XCIsIDE4LCBcIlxcdUIzRkRcIiwgMTgsIFwiXFx1QjQxMVwiLCA2LCBcIlxcdUI0MTlcXHVCNDFBXFx1QjQxQlxcdUI0MURcXHVCNDFFXFx1QjQxRlxcdUI0MjFcIiwgNiwgXCJcXHVCNDJBXFx1QjQyQ1wiLCA3LCBcIlxcdUI0MzVcIiwgMTVdLFxuICAgICAgW1wiOGE0MVwiLCBcIlxcdUI0NDVcIiwgMTAsIFwiXFx1QjQ1MlxcdUI0NTNcXHVCNDU1XFx1QjQ1NlxcdUI0NTdcXHVCNDU5XCIsIDYsIFwiXFx1QjQ2MlxcdUI0NjRcXHVCNDY2XCJdLFxuICAgICAgW1wiOGE2MVwiLCBcIlxcdUI0NjdcIiwgNCwgXCJcXHVCNDZEXCIsIDE4LCBcIlxcdUI0ODFcXHVCNDgyXCJdLFxuICAgICAgW1wiOGE4MVwiLCBcIlxcdUI0ODNcIiwgNCwgXCJcXHVCNDg5XCIsIDE5LCBcIlxcdUI0OUVcIiwgNSwgXCJcXHVCNEE1XFx1QjRBNlxcdUI0QTdcXHVCNEE5XFx1QjRBQVxcdUI0QUJcXHVCNEFEXCIsIDcsIFwiXFx1QjRCNlxcdUI0QjhcXHVCNEJBXCIsIDUsIFwiXFx1QjRDMVxcdUI0QzJcXHVCNEMzXFx1QjRDNVxcdUI0QzZcXHVCNEM3XFx1QjRDOVwiLCA2LCBcIlxcdUI0RDFcXHVCNEQyXFx1QjREM1xcdUI0RDRcXHVCNEQ2XCIsIDUsIFwiXFx1QjRERVxcdUI0REZcXHVCNEUxXFx1QjRFMlxcdUI0RTVcXHVCNEU3XCIsIDQsIFwiXFx1QjRFRVxcdUI0RjBcXHVCNEYyXCIsIDUsIFwiXFx1QjRGOVwiLCAyNiwgXCJcXHVCNTE2XFx1QjUxN1xcdUI1MTlcXHVCNTFBXFx1QjUxRFwiXSxcbiAgICAgIFtcIjhiNDFcIiwgXCJcXHVCNTFFXCIsIDUsIFwiXFx1QjUyNlxcdUI1MkJcIiwgNCwgXCJcXHVCNTMyXFx1QjUzM1xcdUI1MzVcXHVCNTM2XFx1QjUzN1xcdUI1MzlcIiwgNiwgXCJcXHVCNTQyXFx1QjU0NlwiXSxcbiAgICAgIFtcIjhiNjFcIiwgXCJcXHVCNTQ3XFx1QjU0OFxcdUI1NDlcXHVCNTRBXFx1QjU0RVxcdUI1NEZcXHVCNTUxXFx1QjU1MlxcdUI1NTNcXHVCNTU1XCIsIDYsIFwiXFx1QjU1RVxcdUI1NjJcIiwgOF0sXG4gICAgICBbXCI4YjgxXCIsIFwiXFx1QjU2QlwiLCA1MiwgXCJcXHVCNUEyXFx1QjVBM1xcdUI1QTVcXHVCNUE2XFx1QjVBN1xcdUI1QTlcXHVCNUFDXFx1QjVBRFxcdUI1QUVcXHVCNUFGXFx1QjVCMlxcdUI1QjZcIiwgNCwgXCJcXHVCNUJFXFx1QjVCRlxcdUI1QzFcXHVCNUMyXFx1QjVDM1xcdUI1QzVcIiwgNiwgXCJcXHVCNUNFXFx1QjVEMlwiLCA1LCBcIlxcdUI1RDlcIiwgMTgsIFwiXFx1QjVFRFwiLCAxOF0sXG4gICAgICBbXCI4YzQxXCIsIFwiXFx1QjYwMFwiLCAxNSwgXCJcXHVCNjEyXFx1QjYxM1xcdUI2MTVcXHVCNjE2XFx1QjYxN1xcdUI2MTlcIiwgNF0sXG4gICAgICBbXCI4YzYxXCIsIFwiXFx1QjYxRVwiLCA2LCBcIlxcdUI2MjZcIiwgNSwgXCJcXHVCNjJEXCIsIDYsIFwiXFx1QjYzNVwiLCA1XSxcbiAgICAgIFtcIjhjODFcIiwgXCJcXHVCNjNCXCIsIDEyLCBcIlxcdUI2NDlcIiwgMjYsIFwiXFx1QjY2NVxcdUI2NjZcXHVCNjY3XFx1QjY2OVwiLCA1MCwgXCJcXHVCNjlFXFx1QjY5RlxcdUI2QTFcXHVCNkEyXFx1QjZBM1xcdUI2QTVcIiwgNSwgXCJcXHVCNkFEXFx1QjZBRVxcdUI2QUZcXHVCNkIwXFx1QjZCMlwiLCAxNl0sXG4gICAgICBbXCI4ZDQxXCIsIFwiXFx1QjZDM1wiLCAxNiwgXCJcXHVCNkQ1XCIsIDhdLFxuICAgICAgW1wiOGQ2MVwiLCBcIlxcdUI2REVcIiwgMTcsIFwiXFx1QjZGMVxcdUI2RjJcXHVCNkYzXFx1QjZGNVxcdUI2RjZcXHVCNkY3XFx1QjZGOVxcdUI2RkFcIl0sXG4gICAgICBbXCI4ZDgxXCIsIFwiXFx1QjZGQlwiLCA0LCBcIlxcdUI3MDJcXHVCNzAzXFx1QjcwNFxcdUI3MDZcIiwgMzMsIFwiXFx1QjcyQVxcdUI3MkJcXHVCNzJEXFx1QjcyRVxcdUI3MzFcIiwgNiwgXCJcXHVCNzNBXFx1QjczQ1wiLCA3LCBcIlxcdUI3NDVcXHVCNzQ2XFx1Qjc0N1xcdUI3NDlcXHVCNzRBXFx1Qjc0QlxcdUI3NERcIiwgNiwgXCJcXHVCNzU2XCIsIDksIFwiXFx1Qjc2MVxcdUI3NjJcXHVCNzYzXFx1Qjc2NVxcdUI3NjZcXHVCNzY3XFx1Qjc2OVwiLCA2LCBcIlxcdUI3NzJcXHVCNzc0XFx1Qjc3NlwiLCA1LCBcIlxcdUI3N0VcXHVCNzdGXFx1Qjc4MVxcdUI3ODJcXHVCNzgzXFx1Qjc4NVwiLCA2LCBcIlxcdUI3OEVcXHVCNzkzXFx1Qjc5NFxcdUI3OTVcXHVCNzlBXFx1Qjc5QlxcdUI3OURcXHVCNzlFXCJdLFxuICAgICAgW1wiOGU0MVwiLCBcIlxcdUI3OUZcXHVCN0ExXCIsIDYsIFwiXFx1QjdBQVxcdUI3QUVcIiwgNSwgXCJcXHVCN0I2XFx1QjdCN1xcdUI3QjlcIiwgOF0sXG4gICAgICBbXCI4ZTYxXCIsIFwiXFx1QjdDMlwiLCA0LCBcIlxcdUI3QzhcXHVCN0NBXCIsIDE5XSxcbiAgICAgIFtcIjhlODFcIiwgXCJcXHVCN0RFXCIsIDEzLCBcIlxcdUI3RUVcXHVCN0VGXFx1QjdGMVxcdUI3RjJcXHVCN0YzXFx1QjdGNVwiLCA2LCBcIlxcdUI3RkVcXHVCODAyXCIsIDQsIFwiXFx1QjgwQVxcdUI4MEJcXHVCODBEXFx1QjgwRVxcdUI4MEZcXHVCODExXCIsIDYsIFwiXFx1QjgxQVxcdUI4MUNcXHVCODFFXCIsIDUsIFwiXFx1QjgyNlxcdUI4MjdcXHVCODI5XFx1QjgyQVxcdUI4MkJcXHVCODJEXCIsIDYsIFwiXFx1QjgzNlxcdUI4M0FcIiwgNSwgXCJcXHVCODQxXFx1Qjg0MlxcdUI4NDNcXHVCODQ1XCIsIDExLCBcIlxcdUI4NTJcXHVCODU0XCIsIDcsIFwiXFx1Qjg1RVxcdUI4NUZcXHVCODYxXFx1Qjg2MlxcdUI4NjNcXHVCODY1XCIsIDYsIFwiXFx1Qjg2RVxcdUI4NzBcXHVCODcyXCIsIDUsIFwiXFx1Qjg3OVxcdUI4N0FcXHVCODdCXFx1Qjg3RFwiLCA3XSxcbiAgICAgIFtcIjhmNDFcIiwgXCJcXHVCODg1XCIsIDcsIFwiXFx1Qjg4RVwiLCAxN10sXG4gICAgICBbXCI4ZjYxXCIsIFwiXFx1QjhBMFwiLCA3LCBcIlxcdUI4QTlcIiwgNiwgXCJcXHVCOEIxXFx1QjhCMlxcdUI4QjNcXHVCOEI1XFx1QjhCNlxcdUI4QjdcXHVCOEI5XCIsIDRdLFxuICAgICAgW1wiOGY4MVwiLCBcIlxcdUI4QkVcXHVCOEJGXFx1QjhDMlxcdUI4QzRcXHVCOEM2XCIsIDUsIFwiXFx1QjhDRFxcdUI4Q0VcXHVCOENGXFx1QjhEMVxcdUI4RDJcXHVCOEQzXFx1QjhENVwiLCA3LCBcIlxcdUI4REVcXHVCOEUwXFx1QjhFMlwiLCA1LCBcIlxcdUI4RUFcXHVCOEVCXFx1QjhFRFxcdUI4RUVcXHVCOEVGXFx1QjhGMVwiLCA2LCBcIlxcdUI4RkFcXHVCOEZDXFx1QjhGRVwiLCA1LCBcIlxcdUI5MDVcIiwgMTgsIFwiXFx1QjkxOVwiLCA2LCBcIlxcdUI5MjFcIiwgMjYsIFwiXFx1QjkzRVxcdUI5M0ZcXHVCOTQxXFx1Qjk0MlxcdUI5NDNcXHVCOTQ1XCIsIDYsIFwiXFx1Qjk0RFxcdUI5NEVcXHVCOTUwXFx1Qjk1MlwiLCA1XSxcbiAgICAgIFtcIjkwNDFcIiwgXCJcXHVCOTVBXFx1Qjk1QlxcdUI5NURcXHVCOTVFXFx1Qjk1RlxcdUI5NjFcIiwgNiwgXCJcXHVCOTZBXFx1Qjk2Q1xcdUI5NkVcIiwgNSwgXCJcXHVCOTc2XFx1Qjk3N1xcdUI5NzlcXHVCOTdBXFx1Qjk3QlxcdUI5N0RcIl0sXG4gICAgICBbXCI5MDYxXCIsIFwiXFx1Qjk3RVwiLCA1LCBcIlxcdUI5ODZcXHVCOTg4XFx1Qjk4QlxcdUI5OENcXHVCOThGXCIsIDE1XSxcbiAgICAgIFtcIjkwODFcIiwgXCJcXHVCOTlGXCIsIDEyLCBcIlxcdUI5QUVcXHVCOUFGXFx1QjlCMVxcdUI5QjJcXHVCOUIzXFx1QjlCNVwiLCA2LCBcIlxcdUI5QkVcXHVCOUMwXFx1QjlDMlwiLCA1LCBcIlxcdUI5Q0FcXHVCOUNCXFx1QjlDRFxcdUI5RDNcIiwgNCwgXCJcXHVCOURBXFx1QjlEQ1xcdUI5REZcXHVCOUUwXFx1QjlFMlxcdUI5RTZcXHVCOUU3XFx1QjlFOVxcdUI5RUFcXHVCOUVCXFx1QjlFRFwiLCA2LCBcIlxcdUI5RjZcXHVCOUZCXCIsIDQsIFwiXFx1QkEwMlwiLCA1LCBcIlxcdUJBMDlcIiwgMTEsIFwiXFx1QkExNlwiLCAzMywgXCJcXHVCQTNBXFx1QkEzQlxcdUJBM0RcXHVCQTNFXFx1QkEzRlxcdUJBNDFcXHVCQTQzXFx1QkE0NFxcdUJBNDVcXHVCQTQ2XCJdLFxuICAgICAgW1wiOTE0MVwiLCBcIlxcdUJBNDdcXHVCQTRBXFx1QkE0Q1xcdUJBNEZcXHVCQTUwXFx1QkE1MVxcdUJBNTJcXHVCQTU2XFx1QkE1N1xcdUJBNTlcXHVCQTVBXFx1QkE1QlxcdUJBNURcIiwgNiwgXCJcXHVCQTY2XFx1QkE2QVwiLCA1XSxcbiAgICAgIFtcIjkxNjFcIiwgXCJcXHVCQTcyXFx1QkE3M1xcdUJBNzVcXHVCQTc2XFx1QkE3N1xcdUJBNzlcIiwgOSwgXCJcXHVCQTg2XFx1QkE4OFxcdUJBODlcXHVCQThBXFx1QkE4QlxcdUJBOERcIiwgNV0sXG4gICAgICBbXCI5MTgxXCIsIFwiXFx1QkE5M1wiLCAyMCwgXCJcXHVCQUFBXFx1QkFBRFxcdUJBQUVcXHVCQUFGXFx1QkFCMVxcdUJBQjNcIiwgNCwgXCJcXHVCQUJBXFx1QkFCQ1xcdUJBQkVcIiwgNSwgXCJcXHVCQUM1XFx1QkFDNlxcdUJBQzdcXHVCQUM5XCIsIDE0LCBcIlxcdUJBREFcIiwgMzMsIFwiXFx1QkFGRFxcdUJBRkVcXHVCQUZGXFx1QkIwMVxcdUJCMDJcXHVCQjAzXFx1QkIwNVwiLCA3LCBcIlxcdUJCMEVcXHVCQjEwXFx1QkIxMlwiLCA1LCBcIlxcdUJCMTlcXHVCQjFBXFx1QkIxQlxcdUJCMURcXHVCQjFFXFx1QkIxRlxcdUJCMjFcIiwgNl0sXG4gICAgICBbXCI5MjQxXCIsIFwiXFx1QkIyOFxcdUJCMkFcXHVCQjJDXCIsIDcsIFwiXFx1QkIzN1xcdUJCMzlcXHVCQjNBXFx1QkIzRlwiLCA0LCBcIlxcdUJCNDZcXHVCQjQ4XFx1QkI0QVxcdUJCNEJcXHVCQjRDXFx1QkI0RVxcdUJCNTFcXHVCQjUyXCJdLFxuICAgICAgW1wiOTI2MVwiLCBcIlxcdUJCNTNcXHVCQjU1XFx1QkI1NlxcdUJCNTdcXHVCQjU5XCIsIDcsIFwiXFx1QkI2MlxcdUJCNjRcIiwgNywgXCJcXHVCQjZEXCIsIDRdLFxuICAgICAgW1wiOTI4MVwiLCBcIlxcdUJCNzJcIiwgMjEsIFwiXFx1QkI4OVxcdUJCOEFcXHVCQjhCXFx1QkI4RFxcdUJCOEVcXHVCQjhGXFx1QkI5MVwiLCAxOCwgXCJcXHVCQkE1XFx1QkJBNlxcdUJCQTdcXHVCQkE5XFx1QkJBQVxcdUJCQUJcXHVCQkFEXCIsIDYsIFwiXFx1QkJCNVxcdUJCQjZcXHVCQkI4XCIsIDcsIFwiXFx1QkJDMVxcdUJCQzJcXHVCQkMzXFx1QkJDNVxcdUJCQzZcXHVCQkM3XFx1QkJDOVwiLCA2LCBcIlxcdUJCRDFcXHVCQkQyXFx1QkJENFwiLCAzNSwgXCJcXHVCQkZBXFx1QkJGQlxcdUJCRkRcXHVCQkZFXFx1QkMwMVwiXSxcbiAgICAgIFtcIjkzNDFcIiwgXCJcXHVCQzAzXCIsIDQsIFwiXFx1QkMwQVxcdUJDMEVcXHVCQzEwXFx1QkMxMlxcdUJDMTNcXHVCQzE5XFx1QkMxQVxcdUJDMjBcXHVCQzIxXFx1QkMyMlxcdUJDMjNcXHVCQzI2XFx1QkMyOFxcdUJDMkFcXHVCQzJCXFx1QkMyQ1xcdUJDMkVcXHVCQzJGXFx1QkMzMlxcdUJDMzNcXHVCQzM1XCJdLFxuICAgICAgW1wiOTM2MVwiLCBcIlxcdUJDMzZcXHVCQzM3XFx1QkMzOVwiLCA2LCBcIlxcdUJDNDJcXHVCQzQ2XFx1QkM0N1xcdUJDNDhcXHVCQzRBXFx1QkM0QlxcdUJDNEVcXHVCQzRGXFx1QkM1MVwiLCA4XSxcbiAgICAgIFtcIjkzODFcIiwgXCJcXHVCQzVBXFx1QkM1QlxcdUJDNUNcXHVCQzVFXCIsIDM3LCBcIlxcdUJDODZcXHVCQzg3XFx1QkM4OVxcdUJDOEFcXHVCQzhEXFx1QkM4RlwiLCA0LCBcIlxcdUJDOTZcXHVCQzk4XFx1QkM5QlwiLCA0LCBcIlxcdUJDQTJcXHVCQ0EzXFx1QkNBNVxcdUJDQTZcXHVCQ0E5XCIsIDYsIFwiXFx1QkNCMlxcdUJDQjZcIiwgNSwgXCJcXHVCQ0JFXFx1QkNCRlxcdUJDQzFcXHVCQ0MyXFx1QkNDM1xcdUJDQzVcIiwgNywgXCJcXHVCQ0NFXFx1QkNEMlxcdUJDRDNcXHVCQ0Q0XFx1QkNENlxcdUJDRDdcXHVCQ0Q5XFx1QkNEQVxcdUJDREJcXHVCQ0REXCIsIDIyLCBcIlxcdUJDRjdcXHVCQ0Y5XFx1QkNGQVxcdUJDRkJcXHVCQ0ZEXCJdLFxuICAgICAgW1wiOTQ0MVwiLCBcIlxcdUJDRkVcIiwgNSwgXCJcXHVCRDA2XFx1QkQwOFxcdUJEMEFcIiwgNSwgXCJcXHVCRDExXFx1QkQxMlxcdUJEMTNcXHVCRDE1XCIsIDhdLFxuICAgICAgW1wiOTQ2MVwiLCBcIlxcdUJEMUVcIiwgNSwgXCJcXHVCRDI1XCIsIDYsIFwiXFx1QkQyRFwiLCAxMl0sXG4gICAgICBbXCI5NDgxXCIsIFwiXFx1QkQzQVwiLCA1LCBcIlxcdUJENDFcIiwgNiwgXCJcXHVCRDRBXFx1QkQ0QlxcdUJENERcXHVCRDRFXFx1QkQ0RlxcdUJENTFcIiwgNiwgXCJcXHVCRDVBXCIsIDksIFwiXFx1QkQ2NVxcdUJENjZcXHVCRDY3XFx1QkQ2OVwiLCAyMiwgXCJcXHVCRDgyXFx1QkQ4M1xcdUJEODVcXHVCRDg2XFx1QkQ4QlwiLCA0LCBcIlxcdUJEOTJcXHVCRDk0XFx1QkQ5NlxcdUJEOTdcXHVCRDk4XFx1QkQ5QlxcdUJEOURcIiwgNiwgXCJcXHVCREE1XCIsIDEwLCBcIlxcdUJEQjFcIiwgNiwgXCJcXHVCREI5XCIsIDI0XSxcbiAgICAgIFtcIjk1NDFcIiwgXCJcXHVCREQyXFx1QkREM1xcdUJERDZcXHVCREQ3XFx1QkREOVxcdUJEREFcXHVCRERCXFx1QkRERFwiLCAxMSwgXCJcXHVCREVBXCIsIDUsIFwiXFx1QkRGMVwiXSxcbiAgICAgIFtcIjk1NjFcIiwgXCJcXHVCREYyXFx1QkRGM1xcdUJERjVcXHVCREY2XFx1QkRGN1xcdUJERjlcIiwgNiwgXCJcXHVCRTAxXFx1QkUwMlxcdUJFMDRcXHVCRTA2XCIsIDUsIFwiXFx1QkUwRVxcdUJFMEZcXHVCRTExXFx1QkUxMlxcdUJFMTNcIl0sXG4gICAgICBbXCI5NTgxXCIsIFwiXFx1QkUxNVwiLCA2LCBcIlxcdUJFMUVcXHVCRTIwXCIsIDM1LCBcIlxcdUJFNDZcXHVCRTQ3XFx1QkU0OVxcdUJFNEFcXHVCRTRCXFx1QkU0RFxcdUJFNEZcIiwgNCwgXCJcXHVCRTU2XFx1QkU1OFxcdUJFNUNcXHVCRTVEXFx1QkU1RVxcdUJFNUZcXHVCRTYyXFx1QkU2M1xcdUJFNjVcXHVCRTY2XFx1QkU2N1xcdUJFNjlcXHVCRTZCXCIsIDQsIFwiXFx1QkU3MlxcdUJFNzZcIiwgNCwgXCJcXHVCRTdFXFx1QkU3RlxcdUJFODFcXHVCRTgyXFx1QkU4M1xcdUJFODVcIiwgNiwgXCJcXHVCRThFXFx1QkU5MlwiLCA1LCBcIlxcdUJFOUFcIiwgMTMsIFwiXFx1QkVBOVwiLCAxNF0sXG4gICAgICBbXCI5NjQxXCIsIFwiXFx1QkVCOFwiLCAyMywgXCJcXHVCRUQyXFx1QkVEM1wiXSxcbiAgICAgIFtcIjk2NjFcIiwgXCJcXHVCRUQ1XFx1QkVENlxcdUJFRDlcIiwgNiwgXCJcXHVCRUUxXFx1QkVFMlxcdUJFRTZcIiwgNSwgXCJcXHVCRUVEXCIsIDhdLFxuICAgICAgW1wiOTY4MVwiLCBcIlxcdUJFRjZcIiwgMTAsIFwiXFx1QkYwMlwiLCA1LCBcIlxcdUJGMEFcIiwgMTMsIFwiXFx1QkYxQVxcdUJGMUVcIiwgMzMsIFwiXFx1QkY0MlxcdUJGNDNcXHVCRjQ1XFx1QkY0NlxcdUJGNDdcXHVCRjQ5XCIsIDYsIFwiXFx1QkY1MlxcdUJGNTNcXHVCRjU0XFx1QkY1NlwiLCA0NF0sXG4gICAgICBbXCI5NzQxXCIsIFwiXFx1QkY4M1wiLCAxNiwgXCJcXHVCRjk1XCIsIDhdLFxuICAgICAgW1wiOTc2MVwiLCBcIlxcdUJGOUVcIiwgMTcsIFwiXFx1QkZCMVwiLCA3XSxcbiAgICAgIFtcIjk3ODFcIiwgXCJcXHVCRkI5XCIsIDExLCBcIlxcdUJGQzZcIiwgNSwgXCJcXHVCRkNFXFx1QkZDRlxcdUJGRDFcXHVCRkQyXFx1QkZEM1xcdUJGRDVcIiwgNiwgXCJcXHVCRkREXFx1QkZERVxcdUJGRTBcXHVCRkUyXCIsIDg5LCBcIlxcdUMwM0RcXHVDMDNFXFx1QzAzRlwiXSxcbiAgICAgIFtcIjk4NDFcIiwgXCJcXHVDMDQwXCIsIDE2LCBcIlxcdUMwNTJcIiwgNSwgXCJcXHVDMDU5XFx1QzA1QVxcdUMwNUJcIl0sXG4gICAgICBbXCI5ODYxXCIsIFwiXFx1QzA1RFxcdUMwNUVcXHVDMDVGXFx1QzA2MVwiLCA2LCBcIlxcdUMwNkFcIiwgMTVdLFxuICAgICAgW1wiOTg4MVwiLCBcIlxcdUMwN0FcIiwgMjEsIFwiXFx1QzA5MlxcdUMwOTNcXHVDMDk1XFx1QzA5NlxcdUMwOTdcXHVDMDk5XCIsIDYsIFwiXFx1QzBBMlxcdUMwQTRcXHVDMEE2XCIsIDUsIFwiXFx1QzBBRVxcdUMwQjFcXHVDMEIyXFx1QzBCN1wiLCA0LCBcIlxcdUMwQkVcXHVDMEMyXFx1QzBDM1xcdUMwQzRcXHVDMEM2XFx1QzBDN1xcdUMwQ0FcXHVDMENCXFx1QzBDRFxcdUMwQ0VcXHVDMENGXFx1QzBEMVwiLCA2LCBcIlxcdUMwREFcXHVDMERFXCIsIDUsIFwiXFx1QzBFNlxcdUMwRTdcXHVDMEU5XFx1QzBFQVxcdUMwRUJcXHVDMEVEXCIsIDYsIFwiXFx1QzBGNlxcdUMwRjhcXHVDMEZBXCIsIDUsIFwiXFx1QzEwMVxcdUMxMDJcXHVDMTAzXFx1QzEwNVxcdUMxMDZcXHVDMTA3XFx1QzEwOVwiLCA2LCBcIlxcdUMxMTFcXHVDMTEyXFx1QzExM1xcdUMxMTRcXHVDMTE2XCIsIDUsIFwiXFx1QzEyMVxcdUMxMjJcXHVDMTI1XFx1QzEyOFxcdUMxMjlcXHVDMTJBXFx1QzEyQlxcdUMxMkVcIl0sXG4gICAgICBbXCI5OTQxXCIsIFwiXFx1QzEzMlxcdUMxMzNcXHVDMTM0XFx1QzEzNVxcdUMxMzdcXHVDMTNBXFx1QzEzQlxcdUMxM0RcXHVDMTNFXFx1QzEzRlxcdUMxNDFcIiwgNiwgXCJcXHVDMTRBXFx1QzE0RVwiLCA1LCBcIlxcdUMxNTZcXHVDMTU3XCJdLFxuICAgICAgW1wiOTk2MVwiLCBcIlxcdUMxNTlcXHVDMTVBXFx1QzE1QlxcdUMxNURcIiwgNiwgXCJcXHVDMTY2XFx1QzE2QVwiLCA1LCBcIlxcdUMxNzFcXHVDMTcyXFx1QzE3M1xcdUMxNzVcXHVDMTc2XFx1QzE3N1xcdUMxNzlcXHVDMTdBXFx1QzE3QlwiXSxcbiAgICAgIFtcIjk5ODFcIiwgXCJcXHVDMTdDXCIsIDgsIFwiXFx1QzE4NlwiLCA1LCBcIlxcdUMxOEZcXHVDMTkxXFx1QzE5MlxcdUMxOTNcXHVDMTk1XFx1QzE5N1wiLCA0LCBcIlxcdUMxOUVcXHVDMUEwXFx1QzFBMlxcdUMxQTNcXHVDMUE0XFx1QzFBNlxcdUMxQTdcXHVDMUFBXFx1QzFBQlxcdUMxQURcXHVDMUFFXFx1QzFBRlxcdUMxQjFcIiwgMTEsIFwiXFx1QzFCRVwiLCA1LCBcIlxcdUMxQzVcXHVDMUM2XFx1QzFDN1xcdUMxQzlcXHVDMUNBXFx1QzFDQlxcdUMxQ0RcIiwgNiwgXCJcXHVDMUQ1XFx1QzFENlxcdUMxRDlcIiwgNiwgXCJcXHVDMUUxXFx1QzFFMlxcdUMxRTNcXHVDMUU1XFx1QzFFNlxcdUMxRTdcXHVDMUU5XCIsIDYsIFwiXFx1QzFGMlxcdUMxRjRcIiwgNywgXCJcXHVDMUZFXFx1QzFGRlxcdUMyMDFcXHVDMjAyXFx1QzIwM1xcdUMyMDVcIiwgNiwgXCJcXHVDMjBFXFx1QzIxMFxcdUMyMTJcIiwgNSwgXCJcXHVDMjFBXFx1QzIxQlxcdUMyMURcXHVDMjFFXFx1QzIyMVxcdUMyMjJcXHVDMjIzXCJdLFxuICAgICAgW1wiOWE0MVwiLCBcIlxcdUMyMjRcXHVDMjI1XFx1QzIyNlxcdUMyMjdcXHVDMjJBXFx1QzIyQ1xcdUMyMkVcXHVDMjMwXFx1QzIzM1xcdUMyMzVcIiwgMTZdLFxuICAgICAgW1wiOWE2MVwiLCBcIlxcdUMyNDZcXHVDMjQ3XFx1QzI0OVwiLCA2LCBcIlxcdUMyNTJcXHVDMjUzXFx1QzI1NVxcdUMyNTZcXHVDMjU3XFx1QzI1OVwiLCA2LCBcIlxcdUMyNjFcXHVDMjYyXFx1QzI2M1xcdUMyNjRcXHVDMjY2XCJdLFxuICAgICAgW1wiOWE4MVwiLCBcIlxcdUMyNjdcIiwgNCwgXCJcXHVDMjZFXFx1QzI2RlxcdUMyNzFcXHVDMjcyXFx1QzI3M1xcdUMyNzVcIiwgNiwgXCJcXHVDMjdFXFx1QzI4MFxcdUMyODJcIiwgNSwgXCJcXHVDMjhBXCIsIDUsIFwiXFx1QzI5MVwiLCA2LCBcIlxcdUMyOTlcXHVDMjlBXFx1QzI5Q1xcdUMyOUVcIiwgNSwgXCJcXHVDMkE2XFx1QzJBN1xcdUMyQTlcXHVDMkFBXFx1QzJBQlxcdUMyQUVcIiwgNSwgXCJcXHVDMkI2XFx1QzJCOFxcdUMyQkFcIiwgMzMsIFwiXFx1QzJERVxcdUMyREZcXHVDMkUxXFx1QzJFMlxcdUMyRTVcIiwgNSwgXCJcXHVDMkVFXFx1QzJGMFxcdUMyRjJcXHVDMkYzXFx1QzJGNFxcdUMyRjVcXHVDMkY3XFx1QzJGQVxcdUMyRkRcXHVDMkZFXFx1QzJGRlxcdUMzMDFcIiwgNiwgXCJcXHVDMzBBXFx1QzMwQlxcdUMzMEVcXHVDMzBGXCJdLFxuICAgICAgW1wiOWI0MVwiLCBcIlxcdUMzMTBcXHVDMzExXFx1QzMxMlxcdUMzMTZcXHVDMzE3XFx1QzMxOVxcdUMzMUFcXHVDMzFCXFx1QzMxRFwiLCA2LCBcIlxcdUMzMjZcXHVDMzI3XFx1QzMyQVwiLCA4XSxcbiAgICAgIFtcIjliNjFcIiwgXCJcXHVDMzMzXCIsIDE3LCBcIlxcdUMzNDZcIiwgN10sXG4gICAgICBbXCI5YjgxXCIsIFwiXFx1QzM0RVwiLCAyNSwgXCJcXHVDMzZBXFx1QzM2QlxcdUMzNkRcXHVDMzZFXFx1QzM2RlxcdUMzNzFcXHVDMzczXCIsIDQsIFwiXFx1QzM3QVxcdUMzN0JcXHVDMzdFXCIsIDUsIFwiXFx1QzM4NVxcdUMzODZcXHVDMzg3XFx1QzM4OVxcdUMzOEFcXHVDMzhCXFx1QzM4RFwiLCA1MCwgXCJcXHVDM0MxXCIsIDIyLCBcIlxcdUMzREFcIl0sXG4gICAgICBbXCI5YzQxXCIsIFwiXFx1QzNEQlxcdUMzRERcXHVDM0RFXFx1QzNFMVxcdUMzRTNcIiwgNCwgXCJcXHVDM0VBXFx1QzNFQlxcdUMzRUNcXHVDM0VFXCIsIDUsIFwiXFx1QzNGNlxcdUMzRjdcXHVDM0Y5XCIsIDVdLFxuICAgICAgW1wiOWM2MVwiLCBcIlxcdUMzRkZcIiwgOCwgXCJcXHVDNDA5XCIsIDYsIFwiXFx1QzQxMVwiLCA5XSxcbiAgICAgIFtcIjljODFcIiwgXCJcXHVDNDFCXCIsIDgsIFwiXFx1QzQyNVwiLCA2LCBcIlxcdUM0MkRcXHVDNDJFXFx1QzQyRlxcdUM0MzFcXHVDNDMyXFx1QzQzM1xcdUM0MzVcIiwgNiwgXCJcXHVDNDNFXCIsIDksIFwiXFx1QzQ0OVwiLCAyNiwgXCJcXHVDNDY2XFx1QzQ2N1xcdUM0NjlcXHVDNDZBXFx1QzQ2QlxcdUM0NkRcIiwgNiwgXCJcXHVDNDc2XFx1QzQ3N1xcdUM0NzhcXHVDNDdBXCIsIDUsIFwiXFx1QzQ4MVwiLCAxOCwgXCJcXHVDNDk1XCIsIDYsIFwiXFx1QzQ5RFwiLCAxMl0sXG4gICAgICBbXCI5ZDQxXCIsIFwiXFx1QzRBQVwiLCAxMywgXCJcXHVDNEI5XFx1QzRCQVxcdUM0QkJcXHVDNEJEXCIsIDhdLFxuICAgICAgW1wiOWQ2MVwiLCBcIlxcdUM0QzZcIiwgMjVdLFxuICAgICAgW1wiOWQ4MVwiLCBcIlxcdUM0RTBcIiwgOCwgXCJcXHVDNEVBXCIsIDUsIFwiXFx1QzRGMlxcdUM0RjNcXHVDNEY1XFx1QzRGNlxcdUM0RjdcXHVDNEY5XFx1QzRGQlxcdUM0RkNcXHVDNEZEXFx1QzRGRVxcdUM1MDJcIiwgOSwgXCJcXHVDNTBEXFx1QzUwRVxcdUM1MEZcXHVDNTExXFx1QzUxMlxcdUM1MTNcXHVDNTE1XCIsIDYsIFwiXFx1QzUxRFwiLCAxMCwgXCJcXHVDNTJBXFx1QzUyQlxcdUM1MkRcXHVDNTJFXFx1QzUyRlxcdUM1MzFcIiwgNiwgXCJcXHVDNTNBXFx1QzUzQ1xcdUM1M0VcIiwgNSwgXCJcXHVDNTQ2XFx1QzU0N1xcdUM1NEJcXHVDNTRGXFx1QzU1MFxcdUM1NTFcXHVDNTUyXFx1QzU1NlxcdUM1NUFcXHVDNTVCXFx1QzU1Q1xcdUM1NUZcXHVDNTYyXFx1QzU2M1xcdUM1NjVcXHVDNTY2XFx1QzU2N1xcdUM1NjlcIiwgNiwgXCJcXHVDNTcyXFx1QzU3NlwiLCA1LCBcIlxcdUM1N0VcXHVDNTdGXFx1QzU4MVxcdUM1ODJcXHVDNTgzXFx1QzU4NVxcdUM1ODZcXHVDNTg4XFx1QzU4OVxcdUM1OEFcXHVDNThCXFx1QzU4RVxcdUM1OTBcXHVDNTkyXFx1QzU5M1xcdUM1OTRcIl0sXG4gICAgICBbXCI5ZTQxXCIsIFwiXFx1QzU5NlxcdUM1OTlcXHVDNTlBXFx1QzU5QlxcdUM1OURcXHVDNTlFXFx1QzU5RlxcdUM1QTFcIiwgNywgXCJcXHVDNUFBXCIsIDksIFwiXFx1QzVCNlwiXSxcbiAgICAgIFtcIjllNjFcIiwgXCJcXHVDNUI3XFx1QzVCQVxcdUM1QkZcIiwgNCwgXCJcXHVDNUNCXFx1QzVDRFxcdUM1Q0ZcXHVDNUQyXFx1QzVEM1xcdUM1RDVcXHVDNUQ2XFx1QzVEN1xcdUM1RDlcIiwgNiwgXCJcXHVDNUUyXFx1QzVFNFxcdUM1RTZcXHVDNUU3XCJdLFxuICAgICAgW1wiOWU4MVwiLCBcIlxcdUM1RThcXHVDNUU5XFx1QzVFQVxcdUM1RUJcXHVDNUVGXFx1QzVGMVxcdUM1RjJcXHVDNUYzXFx1QzVGNVxcdUM1RjhcXHVDNUY5XFx1QzVGQVxcdUM1RkJcXHVDNjAyXFx1QzYwM1xcdUM2MDRcXHVDNjA5XFx1QzYwQVxcdUM2MEJcXHVDNjBEXFx1QzYwRVxcdUM2MEZcXHVDNjExXCIsIDYsIFwiXFx1QzYxQVxcdUM2MURcIiwgNiwgXCJcXHVDNjI2XFx1QzYyN1xcdUM2MjlcXHVDNjJBXFx1QzYyQlxcdUM2MkZcXHVDNjMxXFx1QzYzMlxcdUM2MzZcXHVDNjM4XFx1QzYzQVxcdUM2M0NcXHVDNjNEXFx1QzYzRVxcdUM2M0ZcXHVDNjQyXFx1QzY0M1xcdUM2NDVcXHVDNjQ2XFx1QzY0N1xcdUM2NDlcIiwgNiwgXCJcXHVDNjUyXFx1QzY1NlwiLCA1LCBcIlxcdUM2NUVcXHVDNjVGXFx1QzY2MVwiLCAxMCwgXCJcXHVDNjZEXFx1QzY2RVxcdUM2NzBcXHVDNjcyXCIsIDUsIFwiXFx1QzY3QVxcdUM2N0JcXHVDNjdEXFx1QzY3RVxcdUM2N0ZcXHVDNjgxXCIsIDYsIFwiXFx1QzY4QVxcdUM2OENcXHVDNjhFXCIsIDUsIFwiXFx1QzY5NlxcdUM2OTdcXHVDNjk5XFx1QzY5QVxcdUM2OUJcXHVDNjlEXCIsIDYsIFwiXFx1QzZBNlwiXSxcbiAgICAgIFtcIjlmNDFcIiwgXCJcXHVDNkE4XFx1QzZBQVwiLCA1LCBcIlxcdUM2QjJcXHVDNkIzXFx1QzZCNVxcdUM2QjZcXHVDNkI3XFx1QzZCQlwiLCA0LCBcIlxcdUM2QzJcXHVDNkM0XFx1QzZDNlwiLCA1LCBcIlxcdUM2Q0VcIl0sXG4gICAgICBbXCI5ZjYxXCIsIFwiXFx1QzZDRlxcdUM2RDFcXHVDNkQyXFx1QzZEM1xcdUM2RDVcIiwgNiwgXCJcXHVDNkRFXFx1QzZERlxcdUM2RTJcIiwgNSwgXCJcXHVDNkVBXFx1QzZFQlxcdUM2RURcXHVDNkVFXFx1QzZFRlxcdUM2RjFcXHVDNkYyXCJdLFxuICAgICAgW1wiOWY4MVwiLCBcIlxcdUM2RjNcIiwgNCwgXCJcXHVDNkZBXFx1QzZGQlxcdUM2RkNcXHVDNkZFXCIsIDUsIFwiXFx1QzcwNlxcdUM3MDdcXHVDNzA5XFx1QzcwQVxcdUM3MEJcXHVDNzBEXCIsIDYsIFwiXFx1QzcxNlxcdUM3MThcXHVDNzFBXCIsIDUsIFwiXFx1QzcyMlxcdUM3MjNcXHVDNzI1XFx1QzcyNlxcdUM3MjdcXHVDNzI5XCIsIDYsIFwiXFx1QzczMlxcdUM3MzRcXHVDNzM2XFx1QzczOFxcdUM3MzlcXHVDNzNBXFx1QzczQlxcdUM3M0VcXHVDNzNGXFx1Qzc0MVxcdUM3NDJcXHVDNzQzXFx1Qzc0NVwiLCA0LCBcIlxcdUM3NEJcXHVDNzRFXFx1Qzc1MFxcdUM3NTlcXHVDNzVBXFx1Qzc1QlxcdUM3NURcXHVDNzVFXFx1Qzc1RlxcdUM3NjFcIiwgNiwgXCJcXHVDNzY5XFx1Qzc2QVxcdUM3NkNcIiwgNywgXCJcXHVDNzc2XFx1Qzc3N1xcdUM3NzlcXHVDNzdBXFx1Qzc3QlxcdUM3N0ZcXHVDNzgwXFx1Qzc4MVxcdUM3ODJcXHVDNzg2XFx1Qzc4QlxcdUM3OENcXHVDNzhEXFx1Qzc4RlxcdUM3OTJcXHVDNzkzXFx1Qzc5NVxcdUM3OTlcXHVDNzlCXCIsIDQsIFwiXFx1QzdBMlxcdUM3QTdcIiwgNCwgXCJcXHVDN0FFXFx1QzdBRlxcdUM3QjFcXHVDN0IyXFx1QzdCM1xcdUM3QjVcXHVDN0I2XFx1QzdCN1wiXSxcbiAgICAgIFtcImEwNDFcIiwgXCJcXHVDN0I4XFx1QzdCOVxcdUM3QkFcXHVDN0JCXFx1QzdCRVxcdUM3QzJcIiwgNSwgXCJcXHVDN0NBXFx1QzdDQlxcdUM3Q0RcXHVDN0NGXFx1QzdEMVwiLCA2LCBcIlxcdUM3RDlcXHVDN0RBXFx1QzdEQlxcdUM3RENcIl0sXG4gICAgICBbXCJhMDYxXCIsIFwiXFx1QzdERVwiLCA1LCBcIlxcdUM3RTVcXHVDN0U2XFx1QzdFN1xcdUM3RTlcXHVDN0VBXFx1QzdFQlxcdUM3RURcIiwgMTNdLFxuICAgICAgW1wiYTA4MVwiLCBcIlxcdUM3RkJcIiwgNCwgXCJcXHVDODAyXFx1QzgwM1xcdUM4MDVcXHVDODA2XFx1QzgwN1xcdUM4MDlcXHVDODBCXCIsIDQsIFwiXFx1QzgxMlxcdUM4MTRcXHVDODE3XCIsIDQsIFwiXFx1QzgxRVxcdUM4MUZcXHVDODIxXFx1QzgyMlxcdUM4MjNcXHVDODI1XCIsIDYsIFwiXFx1QzgyRVxcdUM4MzBcXHVDODMyXCIsIDUsIFwiXFx1QzgzOVxcdUM4M0FcXHVDODNCXFx1QzgzRFxcdUM4M0VcXHVDODNGXFx1Qzg0MVwiLCA2LCBcIlxcdUM4NEFcXHVDODRCXFx1Qzg0RVwiLCA1LCBcIlxcdUM4NTVcIiwgMjYsIFwiXFx1Qzg3MlxcdUM4NzNcXHVDODc1XFx1Qzg3NlxcdUM4NzdcXHVDODc5XFx1Qzg3QlwiLCA0LCBcIlxcdUM4ODJcXHVDODg0XFx1Qzg4OFxcdUM4ODlcXHVDODhBXFx1Qzg4RVwiLCA1LCBcIlxcdUM4OTVcIiwgNywgXCJcXHVDODlFXFx1QzhBMFxcdUM4QTJcXHVDOEEzXFx1QzhBNFwiXSxcbiAgICAgIFtcImExNDFcIiwgXCJcXHVDOEE1XFx1QzhBNlxcdUM4QTdcXHVDOEE5XCIsIDE4LCBcIlxcdUM4QkVcXHVDOEJGXFx1QzhDMFxcdUM4QzFcIl0sXG4gICAgICBbXCJhMTYxXCIsIFwiXFx1QzhDMlxcdUM4QzNcXHVDOEM1XFx1QzhDNlxcdUM4QzdcXHVDOEM5XFx1QzhDQVxcdUM4Q0JcXHVDOENEXCIsIDYsIFwiXFx1QzhENlxcdUM4RDhcXHVDOERBXCIsIDUsIFwiXFx1QzhFMlxcdUM4RTNcXHVDOEU1XCJdLFxuICAgICAgW1wiYTE4MVwiLCBcIlxcdUM4RTZcIiwgMTQsIFwiXFx1QzhGNlwiLCA1LCBcIlxcdUM4RkVcXHVDOEZGXFx1QzkwMVxcdUM5MDJcXHVDOTAzXFx1QzkwN1wiLCA0LCBcIlxcdUM5MEVcXHUzMDAwXFx1MzAwMVxcdTMwMDJcXHhCN1xcdTIwMjVcXHUyMDI2XFx4QThcXHUzMDAzXFx4QURcXHUyMDE1XFx1MjIyNVxcdUZGM0NcXHUyMjNDXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTMwMTRcXHUzMDE1XFx1MzAwOFwiLCA5LCBcIlxceEIxXFx4RDdcXHhGN1xcdTIyNjBcXHUyMjY0XFx1MjI2NVxcdTIyMUVcXHUyMjM0XFx4QjBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHUyMTJCXFx1RkZFMFxcdUZGRTFcXHVGRkU1XFx1MjY0MlxcdTI2NDBcXHUyMjIwXFx1MjJBNVxcdTIzMTJcXHUyMjAyXFx1MjIwN1xcdTIyNjFcXHUyMjUyXFx4QTdcXHUyMDNCXFx1MjYwNlxcdTI2MDVcXHUyNUNCXFx1MjVDRlxcdTI1Q0VcXHUyNUM3XFx1MjVDNlxcdTI1QTFcXHUyNUEwXFx1MjVCM1xcdTI1QjJcXHUyNUJEXFx1MjVCQ1xcdTIxOTJcXHUyMTkwXFx1MjE5MVxcdTIxOTNcXHUyMTk0XFx1MzAxM1xcdTIyNkFcXHUyMjZCXFx1MjIxQVxcdTIyM0RcXHUyMjFEXFx1MjIzNVxcdTIyMkJcXHUyMjJDXFx1MjIwOFxcdTIyMEJcXHUyMjg2XFx1MjI4N1xcdTIyODJcXHUyMjgzXFx1MjIyQVxcdTIyMjlcXHUyMjI3XFx1MjIyOFxcdUZGRTJcIl0sXG4gICAgICBbXCJhMjQxXCIsIFwiXFx1QzkxMFxcdUM5MTJcIiwgNSwgXCJcXHVDOTE5XCIsIDE4XSxcbiAgICAgIFtcImEyNjFcIiwgXCJcXHVDOTJEXCIsIDYsIFwiXFx1QzkzNVwiLCAxOF0sXG4gICAgICBbXCJhMjgxXCIsIFwiXFx1Qzk0OFwiLCA3LCBcIlxcdUM5NTJcXHVDOTUzXFx1Qzk1NVxcdUM5NTZcXHVDOTU3XFx1Qzk1OVwiLCA2LCBcIlxcdUM5NjJcXHVDOTY0XCIsIDcsIFwiXFx1Qzk2RFxcdUM5NkVcXHVDOTZGXFx1MjFEMlxcdTIxRDRcXHUyMjAwXFx1MjIwM1xceEI0XFx1RkY1RVxcdTAyQzdcXHUwMkQ4XFx1MDJERFxcdTAyREFcXHUwMkQ5XFx4QjhcXHUwMkRCXFx4QTFcXHhCRlxcdTAyRDBcXHUyMjJFXFx1MjIxMVxcdTIyMEZcXHhBNFxcdTIxMDlcXHUyMDMwXFx1MjVDMVxcdTI1QzBcXHUyNUI3XFx1MjVCNlxcdTI2NjRcXHUyNjYwXFx1MjY2MVxcdTI2NjVcXHUyNjY3XFx1MjY2M1xcdTIyOTlcXHUyNUM4XFx1MjVBM1xcdTI1RDBcXHUyNUQxXFx1MjU5MlxcdTI1QTRcXHUyNUE1XFx1MjVBOFxcdTI1QTdcXHUyNUE2XFx1MjVBOVxcdTI2NjhcXHUyNjBGXFx1MjYwRVxcdTI2MUNcXHUyNjFFXFx4QjZcXHUyMDIwXFx1MjAyMVxcdTIxOTVcXHUyMTk3XFx1MjE5OVxcdTIxOTZcXHUyMTk4XFx1MjY2RFxcdTI2NjlcXHUyNjZBXFx1MjY2Q1xcdTMyN0ZcXHUzMjFDXFx1MjExNlxcdTMzQzdcXHUyMTIyXFx1MzNDMlxcdTMzRDhcXHUyMTIxXFx1MjBBQ1xceEFFXCJdLFxuICAgICAgW1wiYTM0MVwiLCBcIlxcdUM5NzFcXHVDOTcyXFx1Qzk3M1xcdUM5NzVcIiwgNiwgXCJcXHVDOTdEXCIsIDEwLCBcIlxcdUM5OEFcXHVDOThCXFx1Qzk4RFxcdUM5OEVcXHVDOThGXCJdLFxuICAgICAgW1wiYTM2MVwiLCBcIlxcdUM5OTFcIiwgNiwgXCJcXHVDOTlBXFx1Qzk5Q1xcdUM5OUVcIiwgMTZdLFxuICAgICAgW1wiYTM4MVwiLCBcIlxcdUM5QUZcIiwgMTYsIFwiXFx1QzlDMlxcdUM5QzNcXHVDOUM1XFx1QzlDNlxcdUM5QzlcXHVDOUNCXCIsIDQsIFwiXFx1QzlEMlxcdUM5RDRcXHVDOUQ3XFx1QzlEOFxcdUM5REJcXHVGRjAxXCIsIDU4LCBcIlxcdUZGRTZcXHVGRjNEXCIsIDMyLCBcIlxcdUZGRTNcIl0sXG4gICAgICBbXCJhNDQxXCIsIFwiXFx1QzlERVxcdUM5REZcXHVDOUUxXFx1QzlFM1xcdUM5RTVcXHVDOUU2XFx1QzlFOFxcdUM5RTlcXHVDOUVBXFx1QzlFQlxcdUM5RUVcXHVDOUYyXCIsIDUsIFwiXFx1QzlGQVxcdUM5RkJcXHVDOUZEXFx1QzlGRVxcdUM5RkZcXHVDQTAxXFx1Q0EwMlxcdUNBMDNcXHVDQTA0XCJdLFxuICAgICAgW1wiYTQ2MVwiLCBcIlxcdUNBMDVcXHVDQTA2XFx1Q0EwN1xcdUNBMEFcXHVDQTBFXCIsIDUsIFwiXFx1Q0ExNVxcdUNBMTZcXHVDQTE3XFx1Q0ExOVwiLCAxMl0sXG4gICAgICBbXCJhNDgxXCIsIFwiXFx1Q0EyNlxcdUNBMjdcXHVDQTI4XFx1Q0EyQVwiLCAyOCwgXCJcXHUzMTMxXCIsIDkzXSxcbiAgICAgIFtcImE1NDFcIiwgXCJcXHVDQTQ3XCIsIDQsIFwiXFx1Q0E0RVxcdUNBNEZcXHVDQTUxXFx1Q0E1MlxcdUNBNTNcXHVDQTU1XCIsIDYsIFwiXFx1Q0E1RVxcdUNBNjJcIiwgNSwgXCJcXHVDQTY5XFx1Q0E2QVwiXSxcbiAgICAgIFtcImE1NjFcIiwgXCJcXHVDQTZCXCIsIDE3LCBcIlxcdUNBN0VcIiwgNSwgXCJcXHVDQTg1XFx1Q0E4NlwiXSxcbiAgICAgIFtcImE1ODFcIiwgXCJcXHVDQTg3XCIsIDE2LCBcIlxcdUNBOTlcIiwgMTQsIFwiXFx1MjE3MFwiLCA5XSxcbiAgICAgIFtcImE1YjBcIiwgXCJcXHUyMTYwXCIsIDldLFxuICAgICAgW1wiYTVjMVwiLCBcIlxcdTAzOTFcIiwgMTYsIFwiXFx1MDNBM1wiLCA2XSxcbiAgICAgIFtcImE1ZTFcIiwgXCJcXHUwM0IxXCIsIDE2LCBcIlxcdTAzQzNcIiwgNl0sXG4gICAgICBbXCJhNjQxXCIsIFwiXFx1Q0FBOFwiLCAxOSwgXCJcXHVDQUJFXFx1Q0FCRlxcdUNBQzFcXHVDQUMyXFx1Q0FDM1xcdUNBQzVcIl0sXG4gICAgICBbXCJhNjYxXCIsIFwiXFx1Q0FDNlwiLCA1LCBcIlxcdUNBQ0VcXHVDQUQwXFx1Q0FEMlxcdUNBRDRcXHVDQUQ1XFx1Q0FENlxcdUNBRDdcXHVDQURBXCIsIDUsIFwiXFx1Q0FFMVwiLCA2XSxcbiAgICAgIFtcImE2ODFcIiwgXCJcXHVDQUU4XFx1Q0FFOVxcdUNBRUFcXHVDQUVCXFx1Q0FFRFwiLCA2LCBcIlxcdUNBRjVcIiwgMTgsIFwiXFx1Q0IwOVxcdUNCMEFcXHUyNTAwXFx1MjUwMlxcdTI1MENcXHUyNTEwXFx1MjUxOFxcdTI1MTRcXHUyNTFDXFx1MjUyQ1xcdTI1MjRcXHUyNTM0XFx1MjUzQ1xcdTI1MDFcXHUyNTAzXFx1MjUwRlxcdTI1MTNcXHUyNTFCXFx1MjUxN1xcdTI1MjNcXHUyNTMzXFx1MjUyQlxcdTI1M0JcXHUyNTRCXFx1MjUyMFxcdTI1MkZcXHUyNTI4XFx1MjUzN1xcdTI1M0ZcXHUyNTFEXFx1MjUzMFxcdTI1MjVcXHUyNTM4XFx1MjU0MlxcdTI1MTJcXHUyNTExXFx1MjUxQVxcdTI1MTlcXHUyNTE2XFx1MjUxNVxcdTI1MEVcXHUyNTBEXFx1MjUxRVxcdTI1MUZcXHUyNTIxXFx1MjUyMlxcdTI1MjZcXHUyNTI3XFx1MjUyOVxcdTI1MkFcXHUyNTJEXFx1MjUyRVxcdTI1MzFcXHUyNTMyXFx1MjUzNVxcdTI1MzZcXHUyNTM5XFx1MjUzQVxcdTI1M0RcXHUyNTNFXFx1MjU0MFxcdTI1NDFcXHUyNTQzXCIsIDddLFxuICAgICAgW1wiYTc0MVwiLCBcIlxcdUNCMEJcIiwgNCwgXCJcXHVDQjExXFx1Q0IxMlxcdUNCMTNcXHVDQjE1XFx1Q0IxNlxcdUNCMTdcXHVDQjE5XCIsIDYsIFwiXFx1Q0IyMlwiLCA3XSxcbiAgICAgIFtcImE3NjFcIiwgXCJcXHVDQjJBXCIsIDIyLCBcIlxcdUNCNDJcXHVDQjQzXFx1Q0I0NFwiXSxcbiAgICAgIFtcImE3ODFcIiwgXCJcXHVDQjQ1XFx1Q0I0NlxcdUNCNDdcXHVDQjRBXFx1Q0I0QlxcdUNCNERcXHVDQjRFXFx1Q0I0RlxcdUNCNTFcIiwgNiwgXCJcXHVDQjVBXFx1Q0I1QlxcdUNCNUNcXHVDQjVFXCIsIDUsIFwiXFx1Q0I2NVwiLCA3LCBcIlxcdTMzOTVcXHUzMzk2XFx1MzM5N1xcdTIxMTNcXHUzMzk4XFx1MzNDNFxcdTMzQTNcXHUzM0E0XFx1MzNBNVxcdTMzQTZcXHUzMzk5XCIsIDksIFwiXFx1MzNDQVxcdTMzOERcXHUzMzhFXFx1MzM4RlxcdTMzQ0ZcXHUzMzg4XFx1MzM4OVxcdTMzQzhcXHUzM0E3XFx1MzNBOFxcdTMzQjBcIiwgOSwgXCJcXHUzMzgwXCIsIDQsIFwiXFx1MzNCQVwiLCA1LCBcIlxcdTMzOTBcIiwgNCwgXCJcXHUyMTI2XFx1MzNDMFxcdTMzQzFcXHUzMzhBXFx1MzM4QlxcdTMzOENcXHUzM0Q2XFx1MzNDNVxcdTMzQURcXHUzM0FFXFx1MzNBRlxcdTMzREJcXHUzM0E5XFx1MzNBQVxcdTMzQUJcXHUzM0FDXFx1MzNERFxcdTMzRDBcXHUzM0QzXFx1MzNDM1xcdTMzQzlcXHUzM0RDXFx1MzNDNlwiXSxcbiAgICAgIFtcImE4NDFcIiwgXCJcXHVDQjZEXCIsIDEwLCBcIlxcdUNCN0FcIiwgMTRdLFxuICAgICAgW1wiYTg2MVwiLCBcIlxcdUNCODlcIiwgMTgsIFwiXFx1Q0I5RFwiLCA2XSxcbiAgICAgIFtcImE4ODFcIiwgXCJcXHVDQkE0XCIsIDE5LCBcIlxcdUNCQjlcIiwgMTEsIFwiXFx4QzZcXHhEMFxceEFBXFx1MDEyNlwiXSxcbiAgICAgIFtcImE4YTZcIiwgXCJcXHUwMTMyXCJdLFxuICAgICAgW1wiYThhOFwiLCBcIlxcdTAxM0ZcXHUwMTQxXFx4RDhcXHUwMTUyXFx4QkFcXHhERVxcdTAxNjZcXHUwMTRBXCJdLFxuICAgICAgW1wiYThiMVwiLCBcIlxcdTMyNjBcIiwgMjcsIFwiXFx1MjREMFwiLCAyNSwgXCJcXHUyNDYwXCIsIDE0LCBcIlxceEJEXFx1MjE1M1xcdTIxNTRcXHhCQ1xceEJFXFx1MjE1QlxcdTIxNUNcXHUyMTVEXFx1MjE1RVwiXSxcbiAgICAgIFtcImE5NDFcIiwgXCJcXHVDQkM1XCIsIDE0LCBcIlxcdUNCRDVcIiwgMTBdLFxuICAgICAgW1wiYTk2MVwiLCBcIlxcdUNCRTBcXHVDQkUxXFx1Q0JFMlxcdUNCRTNcXHVDQkU1XFx1Q0JFNlxcdUNCRThcXHVDQkVBXCIsIDE4XSxcbiAgICAgIFtcImE5ODFcIiwgXCJcXHVDQkZEXCIsIDE0LCBcIlxcdUNDMEVcXHVDQzBGXFx1Q0MxMVxcdUNDMTJcXHVDQzEzXFx1Q0MxNVwiLCA2LCBcIlxcdUNDMUVcXHVDQzFGXFx1Q0MyMFxcdUNDMjNcXHVDQzI0XFx4RTZcXHUwMTExXFx4RjBcXHUwMTI3XFx1MDEzMVxcdTAxMzNcXHUwMTM4XFx1MDE0MFxcdTAxNDJcXHhGOFxcdTAxNTNcXHhERlxceEZFXFx1MDE2N1xcdTAxNEJcXHUwMTQ5XFx1MzIwMFwiLCAyNywgXCJcXHUyNDlDXCIsIDI1LCBcIlxcdTI0NzRcIiwgMTQsIFwiXFx4QjlcXHhCMlxceEIzXFx1MjA3NFxcdTIwN0ZcXHUyMDgxXFx1MjA4MlxcdTIwODNcXHUyMDg0XCJdLFxuICAgICAgW1wiYWE0MVwiLCBcIlxcdUNDMjVcXHVDQzI2XFx1Q0MyQVxcdUNDMkJcXHVDQzJEXFx1Q0MyRlxcdUNDMzFcIiwgNiwgXCJcXHVDQzNBXFx1Q0MzRlwiLCA0LCBcIlxcdUNDNDZcXHVDQzQ3XFx1Q0M0OVxcdUNDNEFcXHVDQzRCXFx1Q0M0RFxcdUNDNEVcIl0sXG4gICAgICBbXCJhYTYxXCIsIFwiXFx1Q0M0RlwiLCA0LCBcIlxcdUNDNTZcXHVDQzVBXCIsIDUsIFwiXFx1Q0M2MVxcdUNDNjJcXHVDQzYzXFx1Q0M2NVxcdUNDNjdcXHVDQzY5XCIsIDYsIFwiXFx1Q0M3MVxcdUNDNzJcIl0sXG4gICAgICBbXCJhYTgxXCIsIFwiXFx1Q0M3M1xcdUNDNzRcXHVDQzc2XCIsIDI5LCBcIlxcdTMwNDFcIiwgODJdLFxuICAgICAgW1wiYWI0MVwiLCBcIlxcdUNDOTRcXHVDQzk1XFx1Q0M5NlxcdUNDOTdcXHVDQzlBXFx1Q0M5QlxcdUNDOURcXHVDQzlFXFx1Q0M5RlxcdUNDQTFcIiwgNiwgXCJcXHVDQ0FBXFx1Q0NBRVwiLCA1LCBcIlxcdUNDQjZcXHVDQ0I3XFx1Q0NCOVwiXSxcbiAgICAgIFtcImFiNjFcIiwgXCJcXHVDQ0JBXFx1Q0NCQlxcdUNDQkRcIiwgNiwgXCJcXHVDQ0M2XFx1Q0NDOFxcdUNDQ0FcIiwgNSwgXCJcXHVDQ0QxXFx1Q0NEMlxcdUNDRDNcXHVDQ0Q1XCIsIDVdLFxuICAgICAgW1wiYWI4MVwiLCBcIlxcdUNDREJcIiwgOCwgXCJcXHVDQ0U1XCIsIDYsIFwiXFx1Q0NFRFxcdUNDRUVcXHVDQ0VGXFx1Q0NGMVwiLCAxMiwgXCJcXHUzMEExXCIsIDg1XSxcbiAgICAgIFtcImFjNDFcIiwgXCJcXHVDQ0ZFXFx1Q0NGRlxcdUNEMDBcXHVDRDAyXCIsIDUsIFwiXFx1Q0QwQVxcdUNEMEJcXHVDRDBEXFx1Q0QwRVxcdUNEMEZcXHVDRDExXCIsIDYsIFwiXFx1Q0QxQVxcdUNEMUNcXHVDRDFFXFx1Q0QxRlxcdUNEMjBcIl0sXG4gICAgICBbXCJhYzYxXCIsIFwiXFx1Q0QyMVxcdUNEMjJcXHVDRDIzXFx1Q0QyNVxcdUNEMjZcXHVDRDI3XFx1Q0QyOVxcdUNEMkFcXHVDRDJCXFx1Q0QyRFwiLCAxMSwgXCJcXHVDRDNBXCIsIDRdLFxuICAgICAgW1wiYWM4MVwiLCBcIlxcdUNEM0ZcIiwgMjgsIFwiXFx1Q0Q1RFxcdUNENUVcXHVDRDVGXFx1MDQxMFwiLCA1LCBcIlxcdTA0MDFcXHUwNDE2XCIsIDI1XSxcbiAgICAgIFtcImFjZDFcIiwgXCJcXHUwNDMwXCIsIDUsIFwiXFx1MDQ1MVxcdTA0MzZcIiwgMjVdLFxuICAgICAgW1wiYWQ0MVwiLCBcIlxcdUNENjFcXHVDRDYyXFx1Q0Q2M1xcdUNENjVcIiwgNiwgXCJcXHVDRDZFXFx1Q0Q3MFxcdUNENzJcIiwgNSwgXCJcXHVDRDc5XCIsIDddLFxuICAgICAgW1wiYWQ2MVwiLCBcIlxcdUNEODFcIiwgNiwgXCJcXHVDRDg5XCIsIDEwLCBcIlxcdUNEOTZcXHVDRDk3XFx1Q0Q5OVxcdUNEOUFcXHVDRDlCXFx1Q0Q5RFxcdUNEOUVcXHVDRDlGXCJdLFxuICAgICAgW1wiYWQ4MVwiLCBcIlxcdUNEQTBcXHVDREExXFx1Q0RBMlxcdUNEQTNcXHVDREE2XFx1Q0RBOFxcdUNEQUFcIiwgNSwgXCJcXHVDREIxXCIsIDE4LCBcIlxcdUNEQzVcIl0sXG4gICAgICBbXCJhZTQxXCIsIFwiXFx1Q0RDNlwiLCA1LCBcIlxcdUNEQ0RcXHVDRENFXFx1Q0RDRlxcdUNERDFcIiwgMTZdLFxuICAgICAgW1wiYWU2MVwiLCBcIlxcdUNERTJcIiwgNSwgXCJcXHVDREU5XFx1Q0RFQVxcdUNERUJcXHVDREVEXFx1Q0RFRVxcdUNERUZcXHVDREYxXCIsIDYsIFwiXFx1Q0RGQVxcdUNERkNcXHVDREZFXCIsIDRdLFxuICAgICAgW1wiYWU4MVwiLCBcIlxcdUNFMDNcXHVDRTA1XFx1Q0UwNlxcdUNFMDdcXHVDRTA5XFx1Q0UwQVxcdUNFMEJcXHVDRTBEXCIsIDYsIFwiXFx1Q0UxNVxcdUNFMTZcXHVDRTE3XFx1Q0UxOFxcdUNFMUFcIiwgNSwgXCJcXHVDRTIyXFx1Q0UyM1xcdUNFMjVcXHVDRTI2XFx1Q0UyN1xcdUNFMjlcXHVDRTJBXFx1Q0UyQlwiXSxcbiAgICAgIFtcImFmNDFcIiwgXCJcXHVDRTJDXFx1Q0UyRFxcdUNFMkVcXHVDRTJGXFx1Q0UzMlxcdUNFMzRcXHVDRTM2XCIsIDE5XSxcbiAgICAgIFtcImFmNjFcIiwgXCJcXHVDRTRBXCIsIDEzLCBcIlxcdUNFNUFcXHVDRTVCXFx1Q0U1RFxcdUNFNUVcXHVDRTYyXCIsIDUsIFwiXFx1Q0U2QVxcdUNFNkNcIl0sXG4gICAgICBbXCJhZjgxXCIsIFwiXFx1Q0U2RVwiLCA1LCBcIlxcdUNFNzZcXHVDRTc3XFx1Q0U3OVxcdUNFN0FcXHVDRTdCXFx1Q0U3RFwiLCA2LCBcIlxcdUNFODZcXHVDRTg4XFx1Q0U4QVwiLCA1LCBcIlxcdUNFOTJcXHVDRTkzXFx1Q0U5NVxcdUNFOTZcXHVDRTk3XFx1Q0U5OVwiXSxcbiAgICAgIFtcImIwNDFcIiwgXCJcXHVDRTlBXCIsIDUsIFwiXFx1Q0VBMlxcdUNFQTZcIiwgNSwgXCJcXHVDRUFFXCIsIDEyXSxcbiAgICAgIFtcImIwNjFcIiwgXCJcXHVDRUJCXCIsIDUsIFwiXFx1Q0VDMlwiLCAxOV0sXG4gICAgICBbXCJiMDgxXCIsIFwiXFx1Q0VENlwiLCAxMywgXCJcXHVDRUU2XFx1Q0VFN1xcdUNFRTlcXHVDRUVBXFx1Q0VFRFwiLCA2LCBcIlxcdUNFRjZcXHVDRUZBXCIsIDUsIFwiXFx1QUMwMFxcdUFDMDFcXHVBQzA0XFx1QUMwN1xcdUFDMDhcXHVBQzA5XFx1QUMwQVxcdUFDMTBcIiwgNywgXCJcXHVBQzE5XCIsIDQsIFwiXFx1QUMyMFxcdUFDMjRcXHVBQzJDXFx1QUMyRFxcdUFDMkZcXHVBQzMwXFx1QUMzMVxcdUFDMzhcXHVBQzM5XFx1QUMzQ1xcdUFDNDBcXHVBQzRCXFx1QUM0RFxcdUFDNTRcXHVBQzU4XFx1QUM1Q1xcdUFDNzBcXHVBQzcxXFx1QUM3NFxcdUFDNzdcXHVBQzc4XFx1QUM3QVxcdUFDODBcXHVBQzgxXFx1QUM4M1xcdUFDODRcXHVBQzg1XFx1QUM4NlxcdUFDODlcXHVBQzhBXFx1QUM4QlxcdUFDOENcXHVBQzkwXFx1QUM5NFxcdUFDOUNcXHVBQzlEXFx1QUM5RlxcdUFDQTBcXHVBQ0ExXFx1QUNBOFxcdUFDQTlcXHVBQ0FBXFx1QUNBQ1xcdUFDQUZcXHVBQ0IwXFx1QUNCOFxcdUFDQjlcXHVBQ0JCXFx1QUNCQ1xcdUFDQkRcXHVBQ0MxXFx1QUNDNFxcdUFDQzhcXHVBQ0NDXFx1QUNENVxcdUFDRDdcXHVBQ0UwXFx1QUNFMVxcdUFDRTRcXHVBQ0U3XFx1QUNFOFxcdUFDRUFcXHVBQ0VDXFx1QUNFRlxcdUFDRjBcXHVBQ0YxXFx1QUNGM1xcdUFDRjVcXHVBQ0Y2XFx1QUNGQ1xcdUFDRkRcXHVBRDAwXFx1QUQwNFxcdUFEMDZcIl0sXG4gICAgICBbXCJiMTQxXCIsIFwiXFx1Q0YwMlxcdUNGMDNcXHVDRjA1XFx1Q0YwNlxcdUNGMDdcXHVDRjA5XCIsIDYsIFwiXFx1Q0YxMlxcdUNGMTRcXHVDRjE2XCIsIDUsIFwiXFx1Q0YxRFxcdUNGMUVcXHVDRjFGXFx1Q0YyMVxcdUNGMjJcXHVDRjIzXCJdLFxuICAgICAgW1wiYjE2MVwiLCBcIlxcdUNGMjVcIiwgNiwgXCJcXHVDRjJFXFx1Q0YzMlwiLCA1LCBcIlxcdUNGMzlcIiwgMTFdLFxuICAgICAgW1wiYjE4MVwiLCBcIlxcdUNGNDVcIiwgMTQsIFwiXFx1Q0Y1NlxcdUNGNTdcXHVDRjU5XFx1Q0Y1QVxcdUNGNUJcXHVDRjVEXCIsIDYsIFwiXFx1Q0Y2NlxcdUNGNjhcXHVDRjZBXFx1Q0Y2QlxcdUNGNkNcXHVBRDBDXFx1QUQwRFxcdUFEMEZcXHVBRDExXFx1QUQxOFxcdUFEMUNcXHVBRDIwXFx1QUQyOVxcdUFEMkNcXHVBRDJEXFx1QUQzNFxcdUFEMzVcXHVBRDM4XFx1QUQzQ1xcdUFENDRcXHVBRDQ1XFx1QUQ0N1xcdUFENDlcXHVBRDUwXFx1QUQ1NFxcdUFENThcXHVBRDYxXFx1QUQ2M1xcdUFENkNcXHVBRDZEXFx1QUQ3MFxcdUFENzNcXHVBRDc0XFx1QUQ3NVxcdUFENzZcXHVBRDdCXFx1QUQ3Q1xcdUFEN0RcXHVBRDdGXFx1QUQ4MVxcdUFEODJcXHVBRDg4XFx1QUQ4OVxcdUFEOENcXHVBRDkwXFx1QUQ5Q1xcdUFEOURcXHVBREE0XFx1QURCN1xcdUFEQzBcXHVBREMxXFx1QURDNFxcdUFEQzhcXHVBREQwXFx1QUREMVxcdUFERDNcXHVBRERDXFx1QURFMFxcdUFERTRcXHVBREY4XFx1QURGOVxcdUFERkNcXHVBREZGXFx1QUUwMFxcdUFFMDFcXHVBRTA4XFx1QUUwOVxcdUFFMEJcXHVBRTBEXFx1QUUxNFxcdUFFMzBcXHVBRTMxXFx1QUUzNFxcdUFFMzdcXHVBRTM4XFx1QUUzQVxcdUFFNDBcXHVBRTQxXFx1QUU0M1xcdUFFNDVcXHVBRTQ2XFx1QUU0QVxcdUFFNENcXHVBRTREXFx1QUU0RVxcdUFFNTBcXHVBRTU0XFx1QUU1NlxcdUFFNUNcXHVBRTVEXFx1QUU1RlxcdUFFNjBcXHVBRTYxXFx1QUU2NVxcdUFFNjhcXHVBRTY5XFx1QUU2Q1xcdUFFNzBcXHVBRTc4XCJdLFxuICAgICAgW1wiYjI0MVwiLCBcIlxcdUNGNkRcXHVDRjZFXFx1Q0Y2RlxcdUNGNzJcXHVDRjczXFx1Q0Y3NVxcdUNGNzZcXHVDRjc3XFx1Q0Y3OVwiLCA2LCBcIlxcdUNGODFcXHVDRjgyXFx1Q0Y4M1xcdUNGODRcXHVDRjg2XCIsIDUsIFwiXFx1Q0Y4RFwiXSxcbiAgICAgIFtcImIyNjFcIiwgXCJcXHVDRjhFXCIsIDE4LCBcIlxcdUNGQTJcIiwgNSwgXCJcXHVDRkE5XCJdLFxuICAgICAgW1wiYjI4MVwiLCBcIlxcdUNGQUFcIiwgNSwgXCJcXHVDRkIxXCIsIDE4LCBcIlxcdUNGQzVcIiwgNiwgXCJcXHVBRTc5XFx1QUU3QlxcdUFFN0NcXHVBRTdEXFx1QUU4NFxcdUFFODVcXHVBRThDXFx1QUVCQ1xcdUFFQkRcXHVBRUJFXFx1QUVDMFxcdUFFQzRcXHVBRUNDXFx1QUVDRFxcdUFFQ0ZcXHVBRUQwXFx1QUVEMVxcdUFFRDhcXHVBRUQ5XFx1QUVEQ1xcdUFFRThcXHVBRUVCXFx1QUVFRFxcdUFFRjRcXHVBRUY4XFx1QUVGQ1xcdUFGMDdcXHVBRjA4XFx1QUYwRFxcdUFGMTBcXHVBRjJDXFx1QUYyRFxcdUFGMzBcXHVBRjMyXFx1QUYzNFxcdUFGM0NcXHVBRjNEXFx1QUYzRlxcdUFGNDFcXHVBRjQyXFx1QUY0M1xcdUFGNDhcXHVBRjQ5XFx1QUY1MFxcdUFGNUNcXHVBRjVEXFx1QUY2NFxcdUFGNjVcXHVBRjc5XFx1QUY4MFxcdUFGODRcXHVBRjg4XFx1QUY5MFxcdUFGOTFcXHVBRjk1XFx1QUY5Q1xcdUFGQjhcXHVBRkI5XFx1QUZCQ1xcdUFGQzBcXHVBRkM3XFx1QUZDOFxcdUFGQzlcXHVBRkNCXFx1QUZDRFxcdUFGQ0VcXHVBRkQ0XFx1QUZEQ1xcdUFGRThcXHVBRkU5XFx1QUZGMFxcdUFGRjFcXHVBRkY0XFx1QUZGOFxcdUIwMDBcXHVCMDAxXFx1QjAwNFxcdUIwMENcXHVCMDEwXFx1QjAxNFxcdUIwMUNcXHVCMDFEXFx1QjAyOFxcdUIwNDRcXHVCMDQ1XFx1QjA0OFxcdUIwNEFcXHVCMDRDXFx1QjA0RVxcdUIwNTNcXHVCMDU0XFx1QjA1NVxcdUIwNTdcXHVCMDU5XCJdLFxuICAgICAgW1wiYjM0MVwiLCBcIlxcdUNGQ0NcIiwgMTksIFwiXFx1Q0ZFMlxcdUNGRTNcXHVDRkU1XFx1Q0ZFNlxcdUNGRTdcXHVDRkU5XCJdLFxuICAgICAgW1wiYjM2MVwiLCBcIlxcdUNGRUFcIiwgNSwgXCJcXHVDRkYyXFx1Q0ZGNFxcdUNGRjZcIiwgNSwgXCJcXHVDRkZEXFx1Q0ZGRVxcdUNGRkZcXHVEMDAxXFx1RDAwMlxcdUQwMDNcXHVEMDA1XCIsIDVdLFxuICAgICAgW1wiYjM4MVwiLCBcIlxcdUQwMEJcIiwgNSwgXCJcXHVEMDEyXCIsIDUsIFwiXFx1RDAxOVwiLCAxOSwgXCJcXHVCMDVEXFx1QjA3Q1xcdUIwN0RcXHVCMDgwXFx1QjA4NFxcdUIwOENcXHVCMDhEXFx1QjA4RlxcdUIwOTFcXHVCMDk4XFx1QjA5OVxcdUIwOUFcXHVCMDlDXFx1QjA5RlxcdUIwQTBcXHVCMEExXFx1QjBBMlxcdUIwQThcXHVCMEE5XFx1QjBBQlwiLCA0LCBcIlxcdUIwQjFcXHVCMEIzXFx1QjBCNFxcdUIwQjVcXHVCMEI4XFx1QjBCQ1xcdUIwQzRcXHVCMEM1XFx1QjBDN1xcdUIwQzhcXHVCMEM5XFx1QjBEMFxcdUIwRDFcXHVCMEQ0XFx1QjBEOFxcdUIwRTBcXHVCMEU1XFx1QjEwOFxcdUIxMDlcXHVCMTBCXFx1QjEwQ1xcdUIxMTBcXHVCMTEyXFx1QjExM1xcdUIxMThcXHVCMTE5XFx1QjExQlxcdUIxMUNcXHVCMTFEXFx1QjEyM1xcdUIxMjRcXHVCMTI1XFx1QjEyOFxcdUIxMkNcXHVCMTM0XFx1QjEzNVxcdUIxMzdcXHVCMTM4XFx1QjEzOVxcdUIxNDBcXHVCMTQxXFx1QjE0NFxcdUIxNDhcXHVCMTUwXFx1QjE1MVxcdUIxNTRcXHVCMTU1XFx1QjE1OFxcdUIxNUNcXHVCMTYwXFx1QjE3OFxcdUIxNzlcXHVCMTdDXFx1QjE4MFxcdUIxODJcXHVCMTg4XFx1QjE4OVxcdUIxOEJcXHVCMThEXFx1QjE5MlxcdUIxOTNcXHVCMTk0XFx1QjE5OFxcdUIxOUNcXHVCMUE4XFx1QjFDQ1xcdUIxRDBcXHVCMUQ0XFx1QjFEQ1xcdUIxRERcIl0sXG4gICAgICBbXCJiNDQxXCIsIFwiXFx1RDAyRVwiLCA1LCBcIlxcdUQwMzZcXHVEMDM3XFx1RDAzOVxcdUQwM0FcXHVEMDNCXFx1RDAzRFwiLCA2LCBcIlxcdUQwNDZcXHVEMDQ4XFx1RDA0QVwiLCA1XSxcbiAgICAgIFtcImI0NjFcIiwgXCJcXHVEMDUxXFx1RDA1MlxcdUQwNTNcXHVEMDU1XFx1RDA1NlxcdUQwNTdcXHVEMDU5XCIsIDYsIFwiXFx1RDA2MVwiLCAxMCwgXCJcXHVEMDZFXFx1RDA2RlwiXSxcbiAgICAgIFtcImI0ODFcIiwgXCJcXHVEMDcxXFx1RDA3MlxcdUQwNzNcXHVEMDc1XCIsIDYsIFwiXFx1RDA3RVxcdUQwN0ZcXHVEMDgwXFx1RDA4MlwiLCAxOCwgXCJcXHVCMURGXFx1QjFFOFxcdUIxRTlcXHVCMUVDXFx1QjFGMFxcdUIxRjlcXHVCMUZCXFx1QjFGRFxcdUIyMDRcXHVCMjA1XFx1QjIwOFxcdUIyMEJcXHVCMjBDXFx1QjIxNFxcdUIyMTVcXHVCMjE3XFx1QjIxOVxcdUIyMjBcXHVCMjM0XFx1QjIzQ1xcdUIyNThcXHVCMjVDXFx1QjI2MFxcdUIyNjhcXHVCMjY5XFx1QjI3NFxcdUIyNzVcXHVCMjdDXFx1QjI4NFxcdUIyODVcXHVCMjg5XFx1QjI5MFxcdUIyOTFcXHVCMjk0XFx1QjI5OFxcdUIyOTlcXHVCMjlBXFx1QjJBMFxcdUIyQTFcXHVCMkEzXFx1QjJBNVxcdUIyQTZcXHVCMkFBXFx1QjJBQ1xcdUIyQjBcXHVCMkI0XFx1QjJDOFxcdUIyQzlcXHVCMkNDXFx1QjJEMFxcdUIyRDJcXHVCMkQ4XFx1QjJEOVxcdUIyREJcXHVCMkREXFx1QjJFMlxcdUIyRTRcXHVCMkU1XFx1QjJFNlxcdUIyRThcXHVCMkVCXCIsIDQsIFwiXFx1QjJGM1xcdUIyRjRcXHVCMkY1XFx1QjJGN1wiLCA0LCBcIlxcdUIyRkZcXHVCMzAwXFx1QjMwMVxcdUIzMDRcXHVCMzA4XFx1QjMxMFxcdUIzMTFcXHVCMzEzXFx1QjMxNFxcdUIzMTVcXHVCMzFDXFx1QjM1NFxcdUIzNTVcXHVCMzU2XFx1QjM1OFxcdUIzNUJcXHVCMzVDXFx1QjM1RVxcdUIzNUZcXHVCMzY0XFx1QjM2NVwiXSxcbiAgICAgIFtcImI1NDFcIiwgXCJcXHVEMDk1XCIsIDE0LCBcIlxcdUQwQTZcXHVEMEE3XFx1RDBBOVxcdUQwQUFcXHVEMEFCXFx1RDBBRFwiLCA1XSxcbiAgICAgIFtcImI1NjFcIiwgXCJcXHVEMEIzXFx1RDBCNlxcdUQwQjhcXHVEMEJBXCIsIDUsIFwiXFx1RDBDMlxcdUQwQzNcXHVEMEM1XFx1RDBDNlxcdUQwQzdcXHVEMENBXCIsIDUsIFwiXFx1RDBEMlxcdUQwRDZcIiwgNF0sXG4gICAgICBbXCJiNTgxXCIsIFwiXFx1RDBEQlxcdUQwREVcXHVEMERGXFx1RDBFMVxcdUQwRTJcXHVEMEUzXFx1RDBFNVwiLCA2LCBcIlxcdUQwRUVcXHVEMEYyXCIsIDUsIFwiXFx1RDBGOVwiLCAxMSwgXCJcXHVCMzY3XFx1QjM2OVxcdUIzNkJcXHVCMzZFXFx1QjM3MFxcdUIzNzFcXHVCMzc0XFx1QjM3OFxcdUIzODBcXHVCMzgxXFx1QjM4M1xcdUIzODRcXHVCMzg1XFx1QjM4Q1xcdUIzOTBcXHVCMzk0XFx1QjNBMFxcdUIzQTFcXHVCM0E4XFx1QjNBQ1xcdUIzQzRcXHVCM0M1XFx1QjNDOFxcdUIzQ0JcXHVCM0NDXFx1QjNDRVxcdUIzRDBcXHVCM0Q0XFx1QjNENVxcdUIzRDdcXHVCM0Q5XFx1QjNEQlxcdUIzRERcXHVCM0UwXFx1QjNFNFxcdUIzRThcXHVCM0ZDXFx1QjQxMFxcdUI0MThcXHVCNDFDXFx1QjQyMFxcdUI0MjhcXHVCNDI5XFx1QjQyQlxcdUI0MzRcXHVCNDUwXFx1QjQ1MVxcdUI0NTRcXHVCNDU4XFx1QjQ2MFxcdUI0NjFcXHVCNDYzXFx1QjQ2NVxcdUI0NkNcXHVCNDgwXFx1QjQ4OFxcdUI0OURcXHVCNEE0XFx1QjRBOFxcdUI0QUNcXHVCNEI1XFx1QjRCN1xcdUI0QjlcXHVCNEMwXFx1QjRDNFxcdUI0QzhcXHVCNEQwXFx1QjRENVxcdUI0RENcXHVCNEREXFx1QjRFMFxcdUI0RTNcXHVCNEU0XFx1QjRFNlxcdUI0RUNcXHVCNEVEXFx1QjRFRlxcdUI0RjFcXHVCNEY4XFx1QjUxNFxcdUI1MTVcXHVCNTE4XFx1QjUxQlxcdUI1MUNcXHVCNTI0XFx1QjUyNVxcdUI1MjdcXHVCNTI4XFx1QjUyOVxcdUI1MkFcXHVCNTMwXFx1QjUzMVxcdUI1MzRcXHVCNTM4XCJdLFxuICAgICAgW1wiYjY0MVwiLCBcIlxcdUQxMDVcIiwgNywgXCJcXHVEMTBFXCIsIDE3XSxcbiAgICAgIFtcImI2NjFcIiwgXCJcXHVEMTIwXCIsIDE1LCBcIlxcdUQxMzJcXHVEMTMzXFx1RDEzNVxcdUQxMzZcXHVEMTM3XFx1RDEzOVxcdUQxM0JcXHVEMTNDXFx1RDEzRFxcdUQxM0VcIl0sXG4gICAgICBbXCJiNjgxXCIsIFwiXFx1RDEzRlxcdUQxNDJcXHVEMTQ2XCIsIDUsIFwiXFx1RDE0RVxcdUQxNEZcXHVEMTUxXFx1RDE1MlxcdUQxNTNcXHVEMTU1XCIsIDYsIFwiXFx1RDE1RVxcdUQxNjBcXHVEMTYyXCIsIDUsIFwiXFx1RDE2OVxcdUQxNkFcXHVEMTZCXFx1RDE2RFxcdUI1NDBcXHVCNTQxXFx1QjU0M1xcdUI1NDRcXHVCNTQ1XFx1QjU0QlxcdUI1NENcXHVCNTREXFx1QjU1MFxcdUI1NTRcXHVCNTVDXFx1QjU1RFxcdUI1NUZcXHVCNTYwXFx1QjU2MVxcdUI1QTBcXHVCNUExXFx1QjVBNFxcdUI1QThcXHVCNUFBXFx1QjVBQlxcdUI1QjBcXHVCNUIxXFx1QjVCM1xcdUI1QjRcXHVCNUI1XFx1QjVCQlxcdUI1QkNcXHVCNUJEXFx1QjVDMFxcdUI1QzRcXHVCNUNDXFx1QjVDRFxcdUI1Q0ZcXHVCNUQwXFx1QjVEMVxcdUI1RDhcXHVCNUVDXFx1QjYxMFxcdUI2MTFcXHVCNjE0XFx1QjYxOFxcdUI2MjVcXHVCNjJDXFx1QjYzNFxcdUI2NDhcXHVCNjY0XFx1QjY2OFxcdUI2OUNcXHVCNjlEXFx1QjZBMFxcdUI2QTRcXHVCNkFCXFx1QjZBQ1xcdUI2QjFcXHVCNkQ0XFx1QjZGMFxcdUI2RjRcXHVCNkY4XFx1QjcwMFxcdUI3MDFcXHVCNzA1XFx1QjcyOFxcdUI3MjlcXHVCNzJDXFx1QjcyRlxcdUI3MzBcXHVCNzM4XFx1QjczOVxcdUI3M0JcXHVCNzQ0XFx1Qjc0OFxcdUI3NENcXHVCNzU0XFx1Qjc1NVxcdUI3NjBcXHVCNzY0XFx1Qjc2OFxcdUI3NzBcXHVCNzcxXFx1Qjc3M1xcdUI3NzVcXHVCNzdDXFx1Qjc3RFxcdUI3ODBcXHVCNzg0XFx1Qjc4Q1xcdUI3OERcXHVCNzhGXFx1Qjc5MFxcdUI3OTFcXHVCNzkyXFx1Qjc5NlxcdUI3OTdcIl0sXG4gICAgICBbXCJiNzQxXCIsIFwiXFx1RDE2RVwiLCAxMywgXCJcXHVEMTdEXCIsIDYsIFwiXFx1RDE4NVxcdUQxODZcXHVEMTg3XFx1RDE4OVxcdUQxOEFcIl0sXG4gICAgICBbXCJiNzYxXCIsIFwiXFx1RDE4QlwiLCAyMCwgXCJcXHVEMUEyXFx1RDFBM1xcdUQxQTVcXHVEMUE2XFx1RDFBN1wiXSxcbiAgICAgIFtcImI3ODFcIiwgXCJcXHVEMUE5XCIsIDYsIFwiXFx1RDFCMlxcdUQxQjRcXHVEMUI2XFx1RDFCN1xcdUQxQjhcXHVEMUI5XFx1RDFCQlxcdUQxQkRcXHVEMUJFXFx1RDFCRlxcdUQxQzFcIiwgMTQsIFwiXFx1Qjc5OFxcdUI3OTlcXHVCNzlDXFx1QjdBMFxcdUI3QThcXHVCN0E5XFx1QjdBQlxcdUI3QUNcXHVCN0FEXFx1QjdCNFxcdUI3QjVcXHVCN0I4XFx1QjdDN1xcdUI3QzlcXHVCN0VDXFx1QjdFRFxcdUI3RjBcXHVCN0Y0XFx1QjdGQ1xcdUI3RkRcXHVCN0ZGXFx1QjgwMFxcdUI4MDFcXHVCODA3XFx1QjgwOFxcdUI4MDlcXHVCODBDXFx1QjgxMFxcdUI4MThcXHVCODE5XFx1QjgxQlxcdUI4MURcXHVCODI0XFx1QjgyNVxcdUI4MjhcXHVCODJDXFx1QjgzNFxcdUI4MzVcXHVCODM3XFx1QjgzOFxcdUI4MzlcXHVCODQwXFx1Qjg0NFxcdUI4NTFcXHVCODUzXFx1Qjg1Q1xcdUI4NURcXHVCODYwXFx1Qjg2NFxcdUI4NkNcXHVCODZEXFx1Qjg2RlxcdUI4NzFcXHVCODc4XFx1Qjg3Q1xcdUI4OERcXHVCOEE4XFx1QjhCMFxcdUI4QjRcXHVCOEI4XFx1QjhDMFxcdUI4QzFcXHVCOEMzXFx1QjhDNVxcdUI4Q0NcXHVCOEQwXFx1QjhENFxcdUI4RERcXHVCOERGXFx1QjhFMVxcdUI4RThcXHVCOEU5XFx1QjhFQ1xcdUI4RjBcXHVCOEY4XFx1QjhGOVxcdUI4RkJcXHVCOEZEXFx1QjkwNFxcdUI5MThcXHVCOTIwXFx1QjkzQ1xcdUI5M0RcXHVCOTQwXFx1Qjk0NFxcdUI5NENcXHVCOTRGXFx1Qjk1MVxcdUI5NThcXHVCOTU5XFx1Qjk1Q1xcdUI5NjBcXHVCOTY4XFx1Qjk2OVwiXSxcbiAgICAgIFtcImI4NDFcIiwgXCJcXHVEMUQwXCIsIDcsIFwiXFx1RDFEOVwiLCAxN10sXG4gICAgICBbXCJiODYxXCIsIFwiXFx1RDFFQlwiLCA4LCBcIlxcdUQxRjVcXHVEMUY2XFx1RDFGN1xcdUQxRjlcIiwgMTNdLFxuICAgICAgW1wiYjg4MVwiLCBcIlxcdUQyMDhcXHVEMjBBXCIsIDUsIFwiXFx1RDIxMVwiLCAyNCwgXCJcXHVCOTZCXFx1Qjk2RFxcdUI5NzRcXHVCOTc1XFx1Qjk3OFxcdUI5N0NcXHVCOTg0XFx1Qjk4NVxcdUI5ODdcXHVCOTg5XFx1Qjk4QVxcdUI5OERcXHVCOThFXFx1QjlBQ1xcdUI5QURcXHVCOUIwXFx1QjlCNFxcdUI5QkNcXHVCOUJEXFx1QjlCRlxcdUI5QzFcXHVCOUM4XFx1QjlDOVxcdUI5Q0NcXHVCOUNFXCIsIDQsIFwiXFx1QjlEOFxcdUI5RDlcXHVCOURCXFx1QjlERFxcdUI5REVcXHVCOUUxXFx1QjlFM1xcdUI5RTRcXHVCOUU1XFx1QjlFOFxcdUI5RUNcXHVCOUY0XFx1QjlGNVxcdUI5RjdcXHVCOUY4XFx1QjlGOVxcdUI5RkFcXHVCQTAwXFx1QkEwMVxcdUJBMDhcXHVCQTE1XFx1QkEzOFxcdUJBMzlcXHVCQTNDXFx1QkE0MFxcdUJBNDJcXHVCQTQ4XFx1QkE0OVxcdUJBNEJcXHVCQTREXFx1QkE0RVxcdUJBNTNcXHVCQTU0XFx1QkE1NVxcdUJBNThcXHVCQTVDXFx1QkE2NFxcdUJBNjVcXHVCQTY3XFx1QkE2OFxcdUJBNjlcXHVCQTcwXFx1QkE3MVxcdUJBNzRcXHVCQTc4XFx1QkE4M1xcdUJBODRcXHVCQTg1XFx1QkE4N1xcdUJBOENcXHVCQUE4XFx1QkFBOVxcdUJBQUJcXHVCQUFDXFx1QkFCMFxcdUJBQjJcXHVCQUI4XFx1QkFCOVxcdUJBQkJcXHVCQUJEXFx1QkFDNFxcdUJBQzhcXHVCQUQ4XFx1QkFEOVxcdUJBRkNcIl0sXG4gICAgICBbXCJiOTQxXCIsIFwiXFx1RDIyQVxcdUQyMkJcXHVEMjJFXFx1RDIyRlxcdUQyMzFcXHVEMjMyXFx1RDIzM1xcdUQyMzVcIiwgNiwgXCJcXHVEMjNFXFx1RDI0MFxcdUQyNDJcIiwgNSwgXCJcXHVEMjQ5XFx1RDI0QVxcdUQyNEJcXHVEMjRDXCJdLFxuICAgICAgW1wiYjk2MVwiLCBcIlxcdUQyNERcIiwgMTQsIFwiXFx1RDI1RFwiLCA2LCBcIlxcdUQyNjVcXHVEMjY2XFx1RDI2N1xcdUQyNjhcIl0sXG4gICAgICBbXCJiOTgxXCIsIFwiXFx1RDI2OVwiLCAyMiwgXCJcXHVEMjgyXFx1RDI4M1xcdUQyODVcXHVEMjg2XFx1RDI4N1xcdUQyODlcXHVEMjhBXFx1RDI4QlxcdUQyOENcXHVCQjAwXFx1QkIwNFxcdUJCMERcXHVCQjBGXFx1QkIxMVxcdUJCMThcXHVCQjFDXFx1QkIyMFxcdUJCMjlcXHVCQjJCXFx1QkIzNFxcdUJCMzVcXHVCQjM2XFx1QkIzOFxcdUJCM0JcXHVCQjNDXFx1QkIzRFxcdUJCM0VcXHVCQjQ0XFx1QkI0NVxcdUJCNDdcXHVCQjQ5XFx1QkI0RFxcdUJCNEZcXHVCQjUwXFx1QkI1NFxcdUJCNThcXHVCQjYxXFx1QkI2M1xcdUJCNkNcXHVCQjg4XFx1QkI4Q1xcdUJCOTBcXHVCQkE0XFx1QkJBOFxcdUJCQUNcXHVCQkI0XFx1QkJCN1xcdUJCQzBcXHVCQkM0XFx1QkJDOFxcdUJCRDBcXHVCQkQzXFx1QkJGOFxcdUJCRjlcXHVCQkZDXFx1QkJGRlxcdUJDMDBcXHVCQzAyXFx1QkMwOFxcdUJDMDlcXHVCQzBCXFx1QkMwQ1xcdUJDMERcXHVCQzBGXFx1QkMxMVxcdUJDMTRcIiwgNCwgXCJcXHVCQzFCXCIsIDQsIFwiXFx1QkMyNFxcdUJDMjVcXHVCQzI3XFx1QkMyOVxcdUJDMkRcXHVCQzMwXFx1QkMzMVxcdUJDMzRcXHVCQzM4XFx1QkM0MFxcdUJDNDFcXHVCQzQzXFx1QkM0NFxcdUJDNDVcXHVCQzQ5XFx1QkM0Q1xcdUJDNERcXHVCQzUwXFx1QkM1RFxcdUJDODRcXHVCQzg1XFx1QkM4OFxcdUJDOEJcXHVCQzhDXFx1QkM4RVxcdUJDOTRcXHVCQzk1XFx1QkM5N1wiXSxcbiAgICAgIFtcImJhNDFcIiwgXCJcXHVEMjhEXFx1RDI4RVxcdUQyOEZcXHVEMjkyXFx1RDI5M1xcdUQyOTRcXHVEMjk2XCIsIDUsIFwiXFx1RDI5RFxcdUQyOUVcXHVEMjlGXFx1RDJBMVxcdUQyQTJcXHVEMkEzXFx1RDJBNVwiLCA2LCBcIlxcdUQyQURcIl0sXG4gICAgICBbXCJiYTYxXCIsIFwiXFx1RDJBRVxcdUQyQUZcXHVEMkIwXFx1RDJCMlwiLCA1LCBcIlxcdUQyQkFcXHVEMkJCXFx1RDJCRFxcdUQyQkVcXHVEMkMxXFx1RDJDM1wiLCA0LCBcIlxcdUQyQ0FcXHVEMkNDXCIsIDVdLFxuICAgICAgW1wiYmE4MVwiLCBcIlxcdUQyRDJcXHVEMkQzXFx1RDJENVxcdUQyRDZcXHVEMkQ3XFx1RDJEOVxcdUQyREFcXHVEMkRCXFx1RDJERFwiLCA2LCBcIlxcdUQyRTZcIiwgOSwgXCJcXHVEMkYyXFx1RDJGM1xcdUQyRjVcXHVEMkY2XFx1RDJGN1xcdUQyRjlcXHVEMkZBXFx1QkM5OVxcdUJDOUFcXHVCQ0EwXFx1QkNBMVxcdUJDQTRcXHVCQ0E3XFx1QkNBOFxcdUJDQjBcXHVCQ0IxXFx1QkNCM1xcdUJDQjRcXHVCQ0I1XFx1QkNCQ1xcdUJDQkRcXHVCQ0MwXFx1QkNDNFxcdUJDQ0RcXHVCQ0NGXFx1QkNEMFxcdUJDRDFcXHVCQ0Q1XFx1QkNEOFxcdUJDRENcXHVCQ0Y0XFx1QkNGNVxcdUJDRjZcXHVCQ0Y4XFx1QkNGQ1xcdUJEMDRcXHVCRDA1XFx1QkQwN1xcdUJEMDlcXHVCRDEwXFx1QkQxNFxcdUJEMjRcXHVCRDJDXFx1QkQ0MFxcdUJENDhcXHVCRDQ5XFx1QkQ0Q1xcdUJENTBcXHVCRDU4XFx1QkQ1OVxcdUJENjRcXHVCRDY4XFx1QkQ4MFxcdUJEODFcXHVCRDg0XFx1QkQ4N1xcdUJEODhcXHVCRDg5XFx1QkQ4QVxcdUJEOTBcXHVCRDkxXFx1QkQ5M1xcdUJEOTVcXHVCRDk5XFx1QkQ5QVxcdUJEOUNcXHVCREE0XFx1QkRCMFxcdUJEQjhcXHVCREQ0XFx1QkRENVxcdUJERDhcXHVCRERDXFx1QkRFOVxcdUJERjBcXHVCREY0XFx1QkRGOFxcdUJFMDBcXHVCRTAzXFx1QkUwNVxcdUJFMENcXHVCRTBEXFx1QkUxMFxcdUJFMTRcXHVCRTFDXFx1QkUxRFxcdUJFMUZcXHVCRTQ0XFx1QkU0NVxcdUJFNDhcXHVCRTRDXFx1QkU0RVxcdUJFNTRcXHVCRTU1XFx1QkU1N1xcdUJFNTlcXHVCRTVBXFx1QkU1QlxcdUJFNjBcXHVCRTYxXFx1QkU2NFwiXSxcbiAgICAgIFtcImJiNDFcIiwgXCJcXHVEMkZCXCIsIDQsIFwiXFx1RDMwMlxcdUQzMDRcXHVEMzA2XCIsIDUsIFwiXFx1RDMwRlxcdUQzMTFcXHVEMzEyXFx1RDMxM1xcdUQzMTVcXHVEMzE3XCIsIDQsIFwiXFx1RDMxRVxcdUQzMjJcXHVEMzIzXCJdLFxuICAgICAgW1wiYmI2MVwiLCBcIlxcdUQzMjRcXHVEMzI2XFx1RDMyN1xcdUQzMkFcXHVEMzJCXFx1RDMyRFxcdUQzMkVcXHVEMzJGXFx1RDMzMVwiLCA2LCBcIlxcdUQzM0FcXHVEMzNFXCIsIDUsIFwiXFx1RDM0NlxcdUQzNDdcXHVEMzQ4XFx1RDM0OVwiXSxcbiAgICAgIFtcImJiODFcIiwgXCJcXHVEMzRBXCIsIDMxLCBcIlxcdUJFNjhcXHVCRTZBXFx1QkU3MFxcdUJFNzFcXHVCRTczXFx1QkU3NFxcdUJFNzVcXHVCRTdCXFx1QkU3Q1xcdUJFN0RcXHVCRTgwXFx1QkU4NFxcdUJFOENcXHVCRThEXFx1QkU4RlxcdUJFOTBcXHVCRTkxXFx1QkU5OFxcdUJFOTlcXHVCRUE4XFx1QkVEMFxcdUJFRDFcXHVCRUQ0XFx1QkVEN1xcdUJFRDhcXHVCRUUwXFx1QkVFM1xcdUJFRTRcXHVCRUU1XFx1QkVFQ1xcdUJGMDFcXHVCRjA4XFx1QkYwOVxcdUJGMThcXHVCRjE5XFx1QkYxQlxcdUJGMUNcXHVCRjFEXFx1QkY0MFxcdUJGNDFcXHVCRjQ0XFx1QkY0OFxcdUJGNTBcXHVCRjUxXFx1QkY1NVxcdUJGOTRcXHVCRkIwXFx1QkZDNVxcdUJGQ0NcXHVCRkNEXFx1QkZEMFxcdUJGRDRcXHVCRkRDXFx1QkZERlxcdUJGRTFcXHVDMDNDXFx1QzA1MVxcdUMwNThcXHVDMDVDXFx1QzA2MFxcdUMwNjhcXHVDMDY5XFx1QzA5MFxcdUMwOTFcXHVDMDk0XFx1QzA5OFxcdUMwQTBcXHVDMEExXFx1QzBBM1xcdUMwQTVcXHVDMEFDXFx1QzBBRFxcdUMwQUZcXHVDMEIwXFx1QzBCM1xcdUMwQjRcXHVDMEI1XFx1QzBCNlxcdUMwQkNcXHVDMEJEXFx1QzBCRlxcdUMwQzBcXHVDMEMxXFx1QzBDNVxcdUMwQzhcXHVDMEM5XFx1QzBDQ1xcdUMwRDBcXHVDMEQ4XFx1QzBEOVxcdUMwREJcXHVDMERDXFx1QzBERFxcdUMwRTRcIl0sXG4gICAgICBbXCJiYzQxXCIsIFwiXFx1RDM2QVwiLCAxNywgXCJcXHVEMzdFXFx1RDM3RlxcdUQzODFcXHVEMzgyXFx1RDM4M1xcdUQzODVcXHVEMzg2XFx1RDM4N1wiXSxcbiAgICAgIFtcImJjNjFcIiwgXCJcXHVEMzg4XFx1RDM4OVxcdUQzOEFcXHVEMzhCXFx1RDM4RVxcdUQzOTJcIiwgNSwgXCJcXHVEMzlBXFx1RDM5QlxcdUQzOURcXHVEMzlFXFx1RDM5RlxcdUQzQTFcIiwgNiwgXCJcXHVEM0FBXFx1RDNBQ1xcdUQzQUVcIl0sXG4gICAgICBbXCJiYzgxXCIsIFwiXFx1RDNBRlwiLCA0LCBcIlxcdUQzQjVcXHVEM0I2XFx1RDNCN1xcdUQzQjlcXHVEM0JBXFx1RDNCQlxcdUQzQkRcIiwgNiwgXCJcXHVEM0M2XFx1RDNDN1xcdUQzQ0FcIiwgNSwgXCJcXHVEM0QxXCIsIDUsIFwiXFx1QzBFNVxcdUMwRThcXHVDMEVDXFx1QzBGNFxcdUMwRjVcXHVDMEY3XFx1QzBGOVxcdUMxMDBcXHVDMTA0XFx1QzEwOFxcdUMxMTBcXHVDMTE1XFx1QzExQ1wiLCA0LCBcIlxcdUMxMjNcXHVDMTI0XFx1QzEyNlxcdUMxMjdcXHVDMTJDXFx1QzEyRFxcdUMxMkZcXHVDMTMwXFx1QzEzMVxcdUMxMzZcXHVDMTM4XFx1QzEzOVxcdUMxM0NcXHVDMTQwXFx1QzE0OFxcdUMxNDlcXHVDMTRCXFx1QzE0Q1xcdUMxNERcXHVDMTU0XFx1QzE1NVxcdUMxNThcXHVDMTVDXFx1QzE2NFxcdUMxNjVcXHVDMTY3XFx1QzE2OFxcdUMxNjlcXHVDMTcwXFx1QzE3NFxcdUMxNzhcXHVDMTg1XFx1QzE4Q1xcdUMxOERcXHVDMThFXFx1QzE5MFxcdUMxOTRcXHVDMTk2XFx1QzE5Q1xcdUMxOURcXHVDMTlGXFx1QzFBMVxcdUMxQTVcXHVDMUE4XFx1QzFBOVxcdUMxQUNcXHVDMUIwXFx1QzFCRFxcdUMxQzRcXHVDMUM4XFx1QzFDQ1xcdUMxRDRcXHVDMUQ3XFx1QzFEOFxcdUMxRTBcXHVDMUU0XFx1QzFFOFxcdUMxRjBcXHVDMUYxXFx1QzFGM1xcdUMxRkNcXHVDMUZEXFx1QzIwMFxcdUMyMDRcXHVDMjBDXFx1QzIwRFxcdUMyMEZcXHVDMjExXFx1QzIxOFxcdUMyMTlcXHVDMjFDXFx1QzIxRlxcdUMyMjBcXHVDMjI4XFx1QzIyOVxcdUMyMkJcXHVDMjJEXCJdLFxuICAgICAgW1wiYmQ0MVwiLCBcIlxcdUQzRDdcXHVEM0Q5XCIsIDcsIFwiXFx1RDNFMlxcdUQzRTRcIiwgNywgXCJcXHVEM0VFXFx1RDNFRlxcdUQzRjFcXHVEM0YyXFx1RDNGM1xcdUQzRjVcXHVEM0Y2XFx1RDNGN1wiXSxcbiAgICAgIFtcImJkNjFcIiwgXCJcXHVEM0Y4XFx1RDNGOVxcdUQzRkFcXHVEM0ZCXFx1RDNGRVxcdUQ0MDBcXHVENDAyXCIsIDUsIFwiXFx1RDQwOVwiLCAxM10sXG4gICAgICBbXCJiZDgxXCIsIFwiXFx1RDQxN1wiLCA1LCBcIlxcdUQ0MUVcIiwgMjUsIFwiXFx1QzIyRlxcdUMyMzFcXHVDMjMyXFx1QzIzNFxcdUMyNDhcXHVDMjUwXFx1QzI1MVxcdUMyNTRcXHVDMjU4XFx1QzI2MFxcdUMyNjVcXHVDMjZDXFx1QzI2RFxcdUMyNzBcXHVDMjc0XFx1QzI3Q1xcdUMyN0RcXHVDMjdGXFx1QzI4MVxcdUMyODhcXHVDMjg5XFx1QzI5MFxcdUMyOThcXHVDMjlCXFx1QzI5RFxcdUMyQTRcXHVDMkE1XFx1QzJBOFxcdUMyQUNcXHVDMkFEXFx1QzJCNFxcdUMyQjVcXHVDMkI3XFx1QzJCOVxcdUMyRENcXHVDMkREXFx1QzJFMFxcdUMyRTNcXHVDMkU0XFx1QzJFQlxcdUMyRUNcXHVDMkVEXFx1QzJFRlxcdUMyRjFcXHVDMkY2XFx1QzJGOFxcdUMyRjlcXHVDMkZCXFx1QzJGQ1xcdUMzMDBcXHVDMzA4XFx1QzMwOVxcdUMzMENcXHVDMzBEXFx1QzMxM1xcdUMzMTRcXHVDMzE1XFx1QzMxOFxcdUMzMUNcXHVDMzI0XFx1QzMyNVxcdUMzMjhcXHVDMzI5XFx1QzM0NVxcdUMzNjhcXHVDMzY5XFx1QzM2Q1xcdUMzNzBcXHVDMzcyXFx1QzM3OFxcdUMzNzlcXHVDMzdDXFx1QzM3RFxcdUMzODRcXHVDMzg4XFx1QzM4Q1xcdUMzQzBcXHVDM0Q4XFx1QzNEOVxcdUMzRENcXHVDM0RGXFx1QzNFMFxcdUMzRTJcXHVDM0U4XFx1QzNFOVxcdUMzRURcXHVDM0Y0XFx1QzNGNVxcdUMzRjhcXHVDNDA4XFx1QzQxMFxcdUM0MjRcXHVDNDJDXFx1QzQzMFwiXSxcbiAgICAgIFtcImJlNDFcIiwgXCJcXHVENDM4XCIsIDcsIFwiXFx1RDQ0MVxcdUQ0NDJcXHVENDQzXFx1RDQ0NVwiLCAxNF0sXG4gICAgICBbXCJiZTYxXCIsIFwiXFx1RDQ1NFwiLCA3LCBcIlxcdUQ0NURcXHVENDVFXFx1RDQ1RlxcdUQ0NjFcXHVENDYyXFx1RDQ2M1xcdUQ0NjVcIiwgNywgXCJcXHVENDZFXFx1RDQ3MFxcdUQ0NzFcXHVENDcyXCJdLFxuICAgICAgW1wiYmU4MVwiLCBcIlxcdUQ0NzNcIiwgNCwgXCJcXHVENDdBXFx1RDQ3QlxcdUQ0N0RcXHVENDdFXFx1RDQ4MVxcdUQ0ODNcIiwgNCwgXCJcXHVENDhBXFx1RDQ4Q1xcdUQ0OEVcIiwgNSwgXCJcXHVENDk1XCIsIDgsIFwiXFx1QzQzNFxcdUM0M0NcXHVDNDNEXFx1QzQ0OFxcdUM0NjRcXHVDNDY1XFx1QzQ2OFxcdUM0NkNcXHVDNDc0XFx1QzQ3NVxcdUM0NzlcXHVDNDgwXFx1QzQ5NFxcdUM0OUNcXHVDNEI4XFx1QzRCQ1xcdUM0RTlcXHVDNEYwXFx1QzRGMVxcdUM0RjRcXHVDNEY4XFx1QzRGQVxcdUM0RkZcXHVDNTAwXFx1QzUwMVxcdUM1MENcXHVDNTEwXFx1QzUxNFxcdUM1MUNcXHVDNTI4XFx1QzUyOVxcdUM1MkNcXHVDNTMwXFx1QzUzOFxcdUM1MzlcXHVDNTNCXFx1QzUzRFxcdUM1NDRcXHVDNTQ1XFx1QzU0OFxcdUM1NDlcXHVDNTRBXFx1QzU0Q1xcdUM1NERcXHVDNTRFXFx1QzU1M1xcdUM1NTRcXHVDNTU1XFx1QzU1N1xcdUM1NThcXHVDNTU5XFx1QzU1RFxcdUM1NUVcXHVDNTYwXFx1QzU2MVxcdUM1NjRcXHVDNTY4XFx1QzU3MFxcdUM1NzFcXHVDNTczXFx1QzU3NFxcdUM1NzVcXHVDNTdDXFx1QzU3RFxcdUM1ODBcXHVDNTg0XFx1QzU4N1xcdUM1OENcXHVDNThEXFx1QzU4RlxcdUM1OTFcXHVDNTk1XFx1QzU5N1xcdUM1OThcXHVDNTlDXFx1QzVBMFxcdUM1QTlcXHVDNUI0XFx1QzVCNVxcdUM1QjhcXHVDNUI5XFx1QzVCQlxcdUM1QkNcXHVDNUJEXFx1QzVCRVxcdUM1QzRcIiwgNiwgXCJcXHVDNUNDXFx1QzVDRVwiXSxcbiAgICAgIFtcImJmNDFcIiwgXCJcXHVENDlFXCIsIDEwLCBcIlxcdUQ0QUFcIiwgMTRdLFxuICAgICAgW1wiYmY2MVwiLCBcIlxcdUQ0QjlcIiwgMTgsIFwiXFx1RDRDRFxcdUQ0Q0VcXHVENENGXFx1RDREMVxcdUQ0RDJcXHVENEQzXFx1RDRENVwiXSxcbiAgICAgIFtcImJmODFcIiwgXCJcXHVENEQ2XCIsIDUsIFwiXFx1RDRERFxcdUQ0REVcXHVENEUwXCIsIDcsIFwiXFx1RDRFOVxcdUQ0RUFcXHVENEVCXFx1RDRFRFxcdUQ0RUVcXHVENEVGXFx1RDRGMVwiLCA2LCBcIlxcdUQ0RjlcXHVENEZBXFx1RDRGQ1xcdUM1RDBcXHVDNUQxXFx1QzVENFxcdUM1RDhcXHVDNUUwXFx1QzVFMVxcdUM1RTNcXHVDNUU1XFx1QzVFQ1xcdUM1RURcXHVDNUVFXFx1QzVGMFxcdUM1RjRcXHVDNUY2XFx1QzVGN1xcdUM1RkNcIiwgNSwgXCJcXHVDNjA1XFx1QzYwNlxcdUM2MDdcXHVDNjA4XFx1QzYwQ1xcdUM2MTBcXHVDNjE4XFx1QzYxOVxcdUM2MUJcXHVDNjFDXFx1QzYyNFxcdUM2MjVcXHVDNjI4XFx1QzYyQ1xcdUM2MkRcXHVDNjJFXFx1QzYzMFxcdUM2MzNcXHVDNjM0XFx1QzYzNVxcdUM2MzdcXHVDNjM5XFx1QzYzQlxcdUM2NDBcXHVDNjQxXFx1QzY0NFxcdUM2NDhcXHVDNjUwXFx1QzY1MVxcdUM2NTNcXHVDNjU0XFx1QzY1NVxcdUM2NUNcXHVDNjVEXFx1QzY2MFxcdUM2NkNcXHVDNjZGXFx1QzY3MVxcdUM2NzhcXHVDNjc5XFx1QzY3Q1xcdUM2ODBcXHVDNjg4XFx1QzY4OVxcdUM2OEJcXHVDNjhEXFx1QzY5NFxcdUM2OTVcXHVDNjk4XFx1QzY5Q1xcdUM2QTRcXHVDNkE1XFx1QzZBN1xcdUM2QTlcXHVDNkIwXFx1QzZCMVxcdUM2QjRcXHVDNkI4XFx1QzZCOVxcdUM2QkFcXHVDNkMwXFx1QzZDMVxcdUM2QzNcXHVDNkM1XFx1QzZDQ1xcdUM2Q0RcXHVDNkQwXFx1QzZENFxcdUM2RENcXHVDNkREXFx1QzZFMFxcdUM2RTFcXHVDNkU4XCJdLFxuICAgICAgW1wiYzA0MVwiLCBcIlxcdUQ0RkVcIiwgNSwgXCJcXHVENTA1XFx1RDUwNlxcdUQ1MDdcXHVENTA5XFx1RDUwQVxcdUQ1MEJcXHVENTBEXCIsIDYsIFwiXFx1RDUxNlxcdUQ1MThcIiwgNV0sXG4gICAgICBbXCJjMDYxXCIsIFwiXFx1RDUxRVwiLCAyNV0sXG4gICAgICBbXCJjMDgxXCIsIFwiXFx1RDUzOFxcdUQ1MzlcXHVENTNBXFx1RDUzQlxcdUQ1M0VcXHVENTNGXFx1RDU0MVxcdUQ1NDJcXHVENTQzXFx1RDU0NVwiLCA2LCBcIlxcdUQ1NEVcXHVENTUwXFx1RDU1MlwiLCA1LCBcIlxcdUQ1NUFcXHVENTVCXFx1RDU1RFxcdUQ1NUVcXHVENTVGXFx1RDU2MVxcdUQ1NjJcXHVENTYzXFx1QzZFOVxcdUM2RUNcXHVDNkYwXFx1QzZGOFxcdUM2RjlcXHVDNkZEXFx1QzcwNFxcdUM3MDVcXHVDNzA4XFx1QzcwQ1xcdUM3MTRcXHVDNzE1XFx1QzcxN1xcdUM3MTlcXHVDNzIwXFx1QzcyMVxcdUM3MjRcXHVDNzI4XFx1QzczMFxcdUM3MzFcXHVDNzMzXFx1QzczNVxcdUM3MzdcXHVDNzNDXFx1QzczRFxcdUM3NDBcXHVDNzQ0XFx1Qzc0QVxcdUM3NENcXHVDNzREXFx1Qzc0RlxcdUM3NTFcIiwgNywgXCJcXHVDNzVDXFx1Qzc2MFxcdUM3NjhcXHVDNzZCXFx1Qzc3NFxcdUM3NzVcXHVDNzc4XFx1Qzc3Q1xcdUM3N0RcXHVDNzdFXFx1Qzc4M1xcdUM3ODRcXHVDNzg1XFx1Qzc4N1xcdUM3ODhcXHVDNzg5XFx1Qzc4QVxcdUM3OEVcXHVDNzkwXFx1Qzc5MVxcdUM3OTRcXHVDNzk2XFx1Qzc5N1xcdUM3OThcXHVDNzlBXFx1QzdBMFxcdUM3QTFcXHVDN0EzXFx1QzdBNFxcdUM3QTVcXHVDN0E2XFx1QzdBQ1xcdUM3QURcXHVDN0IwXFx1QzdCNFxcdUM3QkNcXHVDN0JEXFx1QzdCRlxcdUM3QzBcXHVDN0MxXFx1QzdDOFxcdUM3QzlcXHVDN0NDXFx1QzdDRVxcdUM3RDBcXHVDN0Q4XFx1QzdERFxcdUM3RTRcXHVDN0U4XFx1QzdFQ1xcdUM4MDBcXHVDODAxXFx1QzgwNFxcdUM4MDhcXHVDODBBXCJdLFxuICAgICAgW1wiYzE0MVwiLCBcIlxcdUQ1NjRcXHVENTY2XFx1RDU2N1xcdUQ1NkFcXHVENTZDXFx1RDU2RVwiLCA1LCBcIlxcdUQ1NzZcXHVENTc3XFx1RDU3OVxcdUQ1N0FcXHVENTdCXFx1RDU3RFwiLCA2LCBcIlxcdUQ1ODZcXHVENThBXFx1RDU4QlwiXSxcbiAgICAgIFtcImMxNjFcIiwgXCJcXHVENThDXFx1RDU4RFxcdUQ1OEVcXHVENThGXFx1RDU5MVwiLCAxOSwgXCJcXHVENUE2XFx1RDVBN1wiXSxcbiAgICAgIFtcImMxODFcIiwgXCJcXHVENUE4XCIsIDMxLCBcIlxcdUM4MTBcXHVDODExXFx1QzgxM1xcdUM4MTVcXHVDODE2XFx1QzgxQ1xcdUM4MURcXHVDODIwXFx1QzgyNFxcdUM4MkNcXHVDODJEXFx1QzgyRlxcdUM4MzFcXHVDODM4XFx1QzgzQ1xcdUM4NDBcXHVDODQ4XFx1Qzg0OVxcdUM4NENcXHVDODREXFx1Qzg1NFxcdUM4NzBcXHVDODcxXFx1Qzg3NFxcdUM4NzhcXHVDODdBXFx1Qzg4MFxcdUM4ODFcXHVDODgzXFx1Qzg4NVxcdUM4ODZcXHVDODg3XFx1Qzg4QlxcdUM4OENcXHVDODhEXFx1Qzg5NFxcdUM4OURcXHVDODlGXFx1QzhBMVxcdUM4QThcXHVDOEJDXFx1QzhCRFxcdUM4QzRcXHVDOEM4XFx1QzhDQ1xcdUM4RDRcXHVDOEQ1XFx1QzhEN1xcdUM4RDlcXHVDOEUwXFx1QzhFMVxcdUM4RTRcXHVDOEY1XFx1QzhGQ1xcdUM4RkRcXHVDOTAwXFx1QzkwNFxcdUM5MDVcXHVDOTA2XFx1QzkwQ1xcdUM5MERcXHVDOTBGXFx1QzkxMVxcdUM5MThcXHVDOTJDXFx1QzkzNFxcdUM5NTBcXHVDOTUxXFx1Qzk1NFxcdUM5NThcXHVDOTYwXFx1Qzk2MVxcdUM5NjNcXHVDOTZDXFx1Qzk3MFxcdUM5NzRcXHVDOTdDXFx1Qzk4OFxcdUM5ODlcXHVDOThDXFx1Qzk5MFxcdUM5OThcXHVDOTk5XFx1Qzk5QlxcdUM5OURcXHVDOUMwXFx1QzlDMVxcdUM5QzRcXHVDOUM3XFx1QzlDOFxcdUM5Q0FcXHVDOUQwXFx1QzlEMVxcdUM5RDNcIl0sXG4gICAgICBbXCJjMjQxXCIsIFwiXFx1RDVDQVxcdUQ1Q0JcXHVENUNEXFx1RDVDRVxcdUQ1Q0ZcXHVENUQxXFx1RDVEM1wiLCA0LCBcIlxcdUQ1REFcXHVENURDXFx1RDVERVwiLCA1LCBcIlxcdUQ1RTZcXHVENUU3XFx1RDVFOVxcdUQ1RUFcXHVENUVCXFx1RDVFRFxcdUQ1RUVcIl0sXG4gICAgICBbXCJjMjYxXCIsIFwiXFx1RDVFRlwiLCA0LCBcIlxcdUQ1RjZcXHVENUY4XFx1RDVGQVwiLCA1LCBcIlxcdUQ2MDJcXHVENjAzXFx1RDYwNVxcdUQ2MDZcXHVENjA3XFx1RDYwOVwiLCA2LCBcIlxcdUQ2MTJcIl0sXG4gICAgICBbXCJjMjgxXCIsIFwiXFx1RDYxNlwiLCA1LCBcIlxcdUQ2MURcXHVENjFFXFx1RDYxRlxcdUQ2MjFcXHVENjIyXFx1RDYyM1xcdUQ2MjVcIiwgNywgXCJcXHVENjJFXCIsIDksIFwiXFx1RDYzQVxcdUQ2M0JcXHVDOUQ1XFx1QzlENlxcdUM5RDlcXHVDOURBXFx1QzlEQ1xcdUM5RERcXHVDOUUwXFx1QzlFMlxcdUM5RTRcXHVDOUU3XFx1QzlFQ1xcdUM5RURcXHVDOUVGXFx1QzlGMFxcdUM5RjFcXHVDOUY4XFx1QzlGOVxcdUM5RkNcXHVDQTAwXFx1Q0EwOFxcdUNBMDlcXHVDQTBCXFx1Q0EwQ1xcdUNBMERcXHVDQTE0XFx1Q0ExOFxcdUNBMjlcXHVDQTRDXFx1Q0E0RFxcdUNBNTBcXHVDQTU0XFx1Q0E1Q1xcdUNBNURcXHVDQTVGXFx1Q0E2MFxcdUNBNjFcXHVDQTY4XFx1Q0E3RFxcdUNBODRcXHVDQTk4XFx1Q0FCQ1xcdUNBQkRcXHVDQUMwXFx1Q0FDNFxcdUNBQ0NcXHVDQUNEXFx1Q0FDRlxcdUNBRDFcXHVDQUQzXFx1Q0FEOFxcdUNBRDlcXHVDQUUwXFx1Q0FFQ1xcdUNBRjRcXHVDQjA4XFx1Q0IxMFxcdUNCMTRcXHVDQjE4XFx1Q0IyMFxcdUNCMjFcXHVDQjQxXFx1Q0I0OFxcdUNCNDlcXHVDQjRDXFx1Q0I1MFxcdUNCNThcXHVDQjU5XFx1Q0I1RFxcdUNCNjRcXHVDQjc4XFx1Q0I3OVxcdUNCOUNcXHVDQkI4XFx1Q0JENFxcdUNCRTRcXHVDQkU3XFx1Q0JFOVxcdUNDMENcXHVDQzBEXFx1Q0MxMFxcdUNDMTRcXHVDQzFDXFx1Q0MxRFxcdUNDMjFcXHVDQzIyXFx1Q0MyN1xcdUNDMjhcXHVDQzI5XFx1Q0MyQ1xcdUNDMkVcXHVDQzMwXFx1Q0MzOFxcdUNDMzlcXHVDQzNCXCJdLFxuICAgICAgW1wiYzM0MVwiLCBcIlxcdUQ2M0RcXHVENjNFXFx1RDYzRlxcdUQ2NDFcXHVENjQyXFx1RDY0M1xcdUQ2NDRcXHVENjQ2XFx1RDY0N1xcdUQ2NEFcXHVENjRDXFx1RDY0RVxcdUQ2NEZcXHVENjUwXFx1RDY1MlxcdUQ2NTNcXHVENjU2XFx1RDY1N1xcdUQ2NTlcXHVENjVBXFx1RDY1QlxcdUQ2NURcIiwgNF0sXG4gICAgICBbXCJjMzYxXCIsIFwiXFx1RDY2MlwiLCA0LCBcIlxcdUQ2NjhcXHVENjZBXCIsIDUsIFwiXFx1RDY3MlxcdUQ2NzNcXHVENjc1XCIsIDExXSxcbiAgICAgIFtcImMzODFcIiwgXCJcXHVENjgxXFx1RDY4MlxcdUQ2ODRcXHVENjg2XCIsIDUsIFwiXFx1RDY4RVxcdUQ2OEZcXHVENjkxXFx1RDY5MlxcdUQ2OTNcXHVENjk1XCIsIDcsIFwiXFx1RDY5RVxcdUQ2QTBcXHVENkEyXCIsIDUsIFwiXFx1RDZBOVxcdUQ2QUFcXHVDQzNDXFx1Q0MzRFxcdUNDM0VcXHVDQzQ0XFx1Q0M0NVxcdUNDNDhcXHVDQzRDXFx1Q0M1NFxcdUNDNTVcXHVDQzU3XFx1Q0M1OFxcdUNDNTlcXHVDQzYwXFx1Q0M2NFxcdUNDNjZcXHVDQzY4XFx1Q0M3MFxcdUNDNzVcXHVDQzk4XFx1Q0M5OVxcdUNDOUNcXHVDQ0EwXFx1Q0NBOFxcdUNDQTlcXHVDQ0FCXFx1Q0NBQ1xcdUNDQURcXHVDQ0I0XFx1Q0NCNVxcdUNDQjhcXHVDQ0JDXFx1Q0NDNFxcdUNDQzVcXHVDQ0M3XFx1Q0NDOVxcdUNDRDBcXHVDQ0Q0XFx1Q0NFNFxcdUNDRUNcXHVDQ0YwXFx1Q0QwMVxcdUNEMDhcXHVDRDA5XFx1Q0QwQ1xcdUNEMTBcXHVDRDE4XFx1Q0QxOVxcdUNEMUJcXHVDRDFEXFx1Q0QyNFxcdUNEMjhcXHVDRDJDXFx1Q0QzOVxcdUNENUNcXHVDRDYwXFx1Q0Q2NFxcdUNENkNcXHVDRDZEXFx1Q0Q2RlxcdUNENzFcXHVDRDc4XFx1Q0Q4OFxcdUNEOTRcXHVDRDk1XFx1Q0Q5OFxcdUNEOUNcXHVDREE0XFx1Q0RBNVxcdUNEQTdcXHVDREE5XFx1Q0RCMFxcdUNEQzRcXHVDRENDXFx1Q0REMFxcdUNERThcXHVDREVDXFx1Q0RGMFxcdUNERjhcXHVDREY5XFx1Q0RGQlxcdUNERkRcXHVDRTA0XFx1Q0UwOFxcdUNFMENcXHVDRTE0XFx1Q0UxOVxcdUNFMjBcXHVDRTIxXFx1Q0UyNFxcdUNFMjhcXHVDRTMwXFx1Q0UzMVxcdUNFMzNcXHVDRTM1XCJdLFxuICAgICAgW1wiYzQ0MVwiLCBcIlxcdUQ2QUJcXHVENkFEXFx1RDZBRVxcdUQ2QUZcXHVENkIxXCIsIDcsIFwiXFx1RDZCQVxcdUQ2QkNcIiwgNywgXCJcXHVENkM2XFx1RDZDN1xcdUQ2QzlcXHVENkNBXFx1RDZDQlwiXSxcbiAgICAgIFtcImM0NjFcIiwgXCJcXHVENkNEXFx1RDZDRVxcdUQ2Q0ZcXHVENkQwXFx1RDZEMlxcdUQ2RDNcXHVENkQ1XFx1RDZENlxcdUQ2RDhcXHVENkRBXCIsIDUsIFwiXFx1RDZFMVxcdUQ2RTJcXHVENkUzXFx1RDZFNVxcdUQ2RTZcXHVENkU3XFx1RDZFOVwiLCA0XSxcbiAgICAgIFtcImM0ODFcIiwgXCJcXHVENkVFXFx1RDZFRlxcdUQ2RjFcXHVENkYyXFx1RDZGM1xcdUQ2RjRcXHVENkY2XCIsIDUsIFwiXFx1RDZGRVxcdUQ2RkZcXHVENzAxXFx1RDcwMlxcdUQ3MDNcXHVENzA1XCIsIDExLCBcIlxcdUQ3MTJcXHVENzEzXFx1RDcxNFxcdUNFNThcXHVDRTU5XFx1Q0U1Q1xcdUNFNUZcXHVDRTYwXFx1Q0U2MVxcdUNFNjhcXHVDRTY5XFx1Q0U2QlxcdUNFNkRcXHVDRTc0XFx1Q0U3NVxcdUNFNzhcXHVDRTdDXFx1Q0U4NFxcdUNFODVcXHVDRTg3XFx1Q0U4OVxcdUNFOTBcXHVDRTkxXFx1Q0U5NFxcdUNFOThcXHVDRUEwXFx1Q0VBMVxcdUNFQTNcXHVDRUE0XFx1Q0VBNVxcdUNFQUNcXHVDRUFEXFx1Q0VDMVxcdUNFRTRcXHVDRUU1XFx1Q0VFOFxcdUNFRUJcXHVDRUVDXFx1Q0VGNFxcdUNFRjVcXHVDRUY3XFx1Q0VGOFxcdUNFRjlcXHVDRjAwXFx1Q0YwMVxcdUNGMDRcXHVDRjA4XFx1Q0YxMFxcdUNGMTFcXHVDRjEzXFx1Q0YxNVxcdUNGMUNcXHVDRjIwXFx1Q0YyNFxcdUNGMkNcXHVDRjJEXFx1Q0YyRlxcdUNGMzBcXHVDRjMxXFx1Q0YzOFxcdUNGNTRcXHVDRjU1XFx1Q0Y1OFxcdUNGNUNcXHVDRjY0XFx1Q0Y2NVxcdUNGNjdcXHVDRjY5XFx1Q0Y3MFxcdUNGNzFcXHVDRjc0XFx1Q0Y3OFxcdUNGODBcXHVDRjg1XFx1Q0Y4Q1xcdUNGQTFcXHVDRkE4XFx1Q0ZCMFxcdUNGQzRcXHVDRkUwXFx1Q0ZFMVxcdUNGRTRcXHVDRkU4XFx1Q0ZGMFxcdUNGRjFcXHVDRkYzXFx1Q0ZGNVxcdUNGRkNcXHVEMDAwXFx1RDAwNFxcdUQwMTFcXHVEMDE4XFx1RDAyRFxcdUQwMzRcXHVEMDM1XFx1RDAzOFxcdUQwM0NcIl0sXG4gICAgICBbXCJjNTQxXCIsIFwiXFx1RDcxNVxcdUQ3MTZcXHVENzE3XFx1RDcxQVxcdUQ3MUJcXHVENzFEXFx1RDcxRVxcdUQ3MUZcXHVENzIxXCIsIDYsIFwiXFx1RDcyQVxcdUQ3MkNcXHVENzJFXCIsIDUsIFwiXFx1RDczNlxcdUQ3MzdcXHVENzM5XCJdLFxuICAgICAgW1wiYzU2MVwiLCBcIlxcdUQ3M0FcXHVENzNCXFx1RDczRFwiLCA2LCBcIlxcdUQ3NDVcXHVENzQ2XFx1RDc0OFxcdUQ3NEFcIiwgNSwgXCJcXHVENzUyXFx1RDc1M1xcdUQ3NTVcXHVENzVBXCIsIDRdLFxuICAgICAgW1wiYzU4MVwiLCBcIlxcdUQ3NUZcXHVENzYyXFx1RDc2NFxcdUQ3NjZcXHVENzY3XFx1RDc2OFxcdUQ3NkFcXHVENzZCXFx1RDc2RFxcdUQ3NkVcXHVENzZGXFx1RDc3MVxcdUQ3NzJcXHVENzczXFx1RDc3NVwiLCA2LCBcIlxcdUQ3N0VcXHVENzdGXFx1RDc4MFxcdUQ3ODJcIiwgNSwgXCJcXHVENzhBXFx1RDc4QlxcdUQwNDRcXHVEMDQ1XFx1RDA0N1xcdUQwNDlcXHVEMDUwXFx1RDA1NFxcdUQwNThcXHVEMDYwXFx1RDA2Q1xcdUQwNkRcXHVEMDcwXFx1RDA3NFxcdUQwN0NcXHVEMDdEXFx1RDA4MVxcdUQwQTRcXHVEMEE1XFx1RDBBOFxcdUQwQUNcXHVEMEI0XFx1RDBCNVxcdUQwQjdcXHVEMEI5XFx1RDBDMFxcdUQwQzFcXHVEMEM0XFx1RDBDOFxcdUQwQzlcXHVEMEQwXFx1RDBEMVxcdUQwRDNcXHVEMEQ0XFx1RDBENVxcdUQwRENcXHVEMEREXFx1RDBFMFxcdUQwRTRcXHVEMEVDXFx1RDBFRFxcdUQwRUZcXHVEMEYwXFx1RDBGMVxcdUQwRjhcXHVEMTBEXFx1RDEzMFxcdUQxMzFcXHVEMTM0XFx1RDEzOFxcdUQxM0FcXHVEMTQwXFx1RDE0MVxcdUQxNDNcXHVEMTQ0XFx1RDE0NVxcdUQxNENcXHVEMTREXFx1RDE1MFxcdUQxNTRcXHVEMTVDXFx1RDE1RFxcdUQxNUZcXHVEMTYxXFx1RDE2OFxcdUQxNkNcXHVEMTdDXFx1RDE4NFxcdUQxODhcXHVEMUEwXFx1RDFBMVxcdUQxQTRcXHVEMUE4XFx1RDFCMFxcdUQxQjFcXHVEMUIzXFx1RDFCNVxcdUQxQkFcXHVEMUJDXFx1RDFDMFxcdUQxRDhcXHVEMUY0XFx1RDFGOFxcdUQyMDdcXHVEMjA5XFx1RDIxMFxcdUQyMkNcXHVEMjJEXFx1RDIzMFxcdUQyMzRcXHVEMjNDXFx1RDIzRFxcdUQyM0ZcXHVEMjQxXFx1RDI0OFxcdUQyNUNcIl0sXG4gICAgICBbXCJjNjQxXCIsIFwiXFx1RDc4RFxcdUQ3OEVcXHVENzhGXFx1RDc5MVwiLCA2LCBcIlxcdUQ3OUFcXHVENzlDXFx1RDc5RVwiLCA1XSxcbiAgICAgIFtcImM2YTFcIiwgXCJcXHVEMjY0XFx1RDI4MFxcdUQyODFcXHVEMjg0XFx1RDI4OFxcdUQyOTBcXHVEMjkxXFx1RDI5NVxcdUQyOUNcXHVEMkEwXFx1RDJBNFxcdUQyQUNcXHVEMkIxXFx1RDJCOFxcdUQyQjlcXHVEMkJDXFx1RDJCRlxcdUQyQzBcXHVEMkMyXFx1RDJDOFxcdUQyQzlcXHVEMkNCXFx1RDJENFxcdUQyRDhcXHVEMkRDXFx1RDJFNFxcdUQyRTVcXHVEMkYwXFx1RDJGMVxcdUQyRjRcXHVEMkY4XFx1RDMwMFxcdUQzMDFcXHVEMzAzXFx1RDMwNVxcdUQzMENcXHVEMzBEXFx1RDMwRVxcdUQzMTBcXHVEMzE0XFx1RDMxNlxcdUQzMUNcXHVEMzFEXFx1RDMxRlxcdUQzMjBcXHVEMzIxXFx1RDMyNVxcdUQzMjhcXHVEMzI5XFx1RDMyQ1xcdUQzMzBcXHVEMzM4XFx1RDMzOVxcdUQzM0JcXHVEMzNDXFx1RDMzRFxcdUQzNDRcXHVEMzQ1XFx1RDM3Q1xcdUQzN0RcXHVEMzgwXFx1RDM4NFxcdUQzOENcXHVEMzhEXFx1RDM4RlxcdUQzOTBcXHVEMzkxXFx1RDM5OFxcdUQzOTlcXHVEMzlDXFx1RDNBMFxcdUQzQThcXHVEM0E5XFx1RDNBQlxcdUQzQURcXHVEM0I0XFx1RDNCOFxcdUQzQkNcXHVEM0M0XFx1RDNDNVxcdUQzQzhcXHVEM0M5XFx1RDNEMFxcdUQzRDhcXHVEM0UxXFx1RDNFM1xcdUQzRUNcXHVEM0VEXFx1RDNGMFxcdUQzRjRcXHVEM0ZDXFx1RDNGRFxcdUQzRkZcXHVENDAxXCJdLFxuICAgICAgW1wiYzdhMVwiLCBcIlxcdUQ0MDhcXHVENDFEXFx1RDQ0MFxcdUQ0NDRcXHVENDVDXFx1RDQ2MFxcdUQ0NjRcXHVENDZEXFx1RDQ2RlxcdUQ0NzhcXHVENDc5XFx1RDQ3Q1xcdUQ0N0ZcXHVENDgwXFx1RDQ4MlxcdUQ0ODhcXHVENDg5XFx1RDQ4QlxcdUQ0OERcXHVENDk0XFx1RDRBOVxcdUQ0Q0NcXHVENEQwXFx1RDRENFxcdUQ0RENcXHVENERGXFx1RDRFOFxcdUQ0RUNcXHVENEYwXFx1RDRGOFxcdUQ0RkJcXHVENEZEXFx1RDUwNFxcdUQ1MDhcXHVENTBDXFx1RDUxNFxcdUQ1MTVcXHVENTE3XFx1RDUzQ1xcdUQ1M0RcXHVENTQwXFx1RDU0NFxcdUQ1NENcXHVENTREXFx1RDU0RlxcdUQ1NTFcXHVENTU4XFx1RDU1OVxcdUQ1NUNcXHVENTYwXFx1RDU2NVxcdUQ1NjhcXHVENTY5XFx1RDU2QlxcdUQ1NkRcXHVENTc0XFx1RDU3NVxcdUQ1NzhcXHVENTdDXFx1RDU4NFxcdUQ1ODVcXHVENTg3XFx1RDU4OFxcdUQ1ODlcXHVENTkwXFx1RDVBNVxcdUQ1QzhcXHVENUM5XFx1RDVDQ1xcdUQ1RDBcXHVENUQyXFx1RDVEOFxcdUQ1RDlcXHVENURCXFx1RDVERFxcdUQ1RTRcXHVENUU1XFx1RDVFOFxcdUQ1RUNcXHVENUY0XFx1RDVGNVxcdUQ1RjdcXHVENUY5XFx1RDYwMFxcdUQ2MDFcXHVENjA0XFx1RDYwOFxcdUQ2MTBcXHVENjExXFx1RDYxM1xcdUQ2MTRcXHVENjE1XFx1RDYxQ1xcdUQ2MjBcIl0sXG4gICAgICBbXCJjOGExXCIsIFwiXFx1RDYyNFxcdUQ2MkRcXHVENjM4XFx1RDYzOVxcdUQ2M0NcXHVENjQwXFx1RDY0NVxcdUQ2NDhcXHVENjQ5XFx1RDY0QlxcdUQ2NERcXHVENjUxXFx1RDY1NFxcdUQ2NTVcXHVENjU4XFx1RDY1Q1xcdUQ2NjdcXHVENjY5XFx1RDY3MFxcdUQ2NzFcXHVENjc0XFx1RDY4M1xcdUQ2ODVcXHVENjhDXFx1RDY4RFxcdUQ2OTBcXHVENjk0XFx1RDY5RFxcdUQ2OUZcXHVENkExXFx1RDZBOFxcdUQ2QUNcXHVENkIwXFx1RDZCOVxcdUQ2QkJcXHVENkM0XFx1RDZDNVxcdUQ2QzhcXHVENkNDXFx1RDZEMVxcdUQ2RDRcXHVENkQ3XFx1RDZEOVxcdUQ2RTBcXHVENkU0XFx1RDZFOFxcdUQ2RjBcXHVENkY1XFx1RDZGQ1xcdUQ2RkRcXHVENzAwXFx1RDcwNFxcdUQ3MTFcXHVENzE4XFx1RDcxOVxcdUQ3MUNcXHVENzIwXFx1RDcyOFxcdUQ3MjlcXHVENzJCXFx1RDcyRFxcdUQ3MzRcXHVENzM1XFx1RDczOFxcdUQ3M0NcXHVENzQ0XFx1RDc0N1xcdUQ3NDlcXHVENzUwXFx1RDc1MVxcdUQ3NTRcXHVENzU2XFx1RDc1N1xcdUQ3NThcXHVENzU5XFx1RDc2MFxcdUQ3NjFcXHVENzYzXFx1RDc2NVxcdUQ3NjlcXHVENzZDXFx1RDc3MFxcdUQ3NzRcXHVENzdDXFx1RDc3RFxcdUQ3ODFcXHVENzg4XFx1RDc4OVxcdUQ3OENcXHVENzkwXFx1RDc5OFxcdUQ3OTlcXHVENzlCXFx1RDc5RFwiXSxcbiAgICAgIFtcImNhYTFcIiwgXCJcXHU0RjNEXFx1NEY3M1xcdTUwNDdcXHU1MEY5XFx1NTJBMFxcdTUzRUZcXHU1NDc1XFx1NTRFNVxcdTU2MDlcXHU1QUMxXFx1NUJCNlxcdTY2ODdcXHU2N0I2XFx1NjdCN1xcdTY3RUZcXHU2QjRDXFx1NzNDMlxcdTc1QzJcXHU3QTNDXFx1ODJEQlxcdTgzMDRcXHU4ODU3XFx1ODg4OFxcdThBMzZcXHU4Q0M4XFx1OERDRlxcdThFRkJcXHU4RkU2XFx1OTlENVxcdTUyM0JcXHU1Mzc0XFx1NTQwNFxcdTYwNkFcXHU2MTY0XFx1NkJCQ1xcdTczQ0ZcXHU4MTFBXFx1ODlCQVxcdTg5RDJcXHU5NUEzXFx1NEY4M1xcdTUyMEFcXHU1OEJFXFx1NTk3OFxcdTU5RTZcXHU1RTcyXFx1NUU3OVxcdTYxQzdcXHU2M0MwXFx1Njc0NlxcdTY3RUNcXHU2ODdGXFx1NkY5N1xcdTc2NEVcXHU3NzBCXFx1NzhGNVxcdTdBMDhcXHU3QUZGXFx1N0MyMVxcdTgwOURcXHU4MjZFXFx1ODI3MVxcdThBRUJcXHU5NTkzXFx1NEU2QlxcdTU1OURcXHU2NkY3XFx1NkUzNFxcdTc4QTNcXHU3QUVEXFx1ODQ1QlxcdTg5MTBcXHU4NzRFXFx1OTdBOFxcdTUyRDhcXHU1NzRFXFx1NTgyQVxcdTVENENcXHU2MTFGXFx1NjFCRVxcdTYyMjFcXHU2NTYyXFx1NjdEMVxcdTZBNDRcXHU2RTFCXFx1NzUxOFxcdTc1QjNcXHU3NkUzXFx1NzdCMFxcdTdEM0FcXHU5MEFGXFx1OTQ1MVxcdTk0NTJcXHU5Rjk1XCJdLFxuICAgICAgW1wiY2JhMVwiLCBcIlxcdTUzMjNcXHU1Q0FDXFx1NzUzMlxcdTgwREJcXHU5MjQwXFx1OTU5OFxcdTUyNUJcXHU1ODA4XFx1NTlEQ1xcdTVDQTFcXHU1RDE3XFx1NUVCN1xcdTVGM0FcXHU1RjRBXFx1NjE3N1xcdTZDNUZcXHU3NTdBXFx1NzU4NlxcdTdDRTBcXHU3RDczXFx1N0RCMVxcdTdGOENcXHU4MTU0XFx1ODIyMVxcdTg1OTFcXHU4OTQxXFx1OEIxQlxcdTkyRkNcXHU5NjREXFx1OUM0N1xcdTRFQ0JcXHU0RUY3XFx1NTAwQlxcdTUxRjFcXHU1ODRGXFx1NjEzN1xcdTYxM0VcXHU2MTY4XFx1NjUzOVxcdTY5RUFcXHU2RjExXFx1NzVBNVxcdTc2ODZcXHU3NkQ2XFx1N0I4N1xcdTgyQTVcXHU4NENCXFx1RjkwMFxcdTkzQTdcXHU5NThCXFx1NTU4MFxcdTVCQTJcXHU1NzUxXFx1RjkwMVxcdTdDQjNcXHU3RkI5XFx1OTFCNVxcdTUwMjhcXHU1M0JCXFx1NUM0NVxcdTVERThcXHU2MkQyXFx1NjM2RVxcdTY0REFcXHU2NEU3XFx1NkUyMFxcdTcwQUNcXHU3OTVCXFx1OERERFxcdThFMUVcXHVGOTAyXFx1OTA3RFxcdTkyNDVcXHU5MkY4XFx1NEU3RVxcdTRFRjZcXHU1MDY1XFx1NURGRVxcdTVFRkFcXHU2MTA2XFx1Njk1N1xcdTgxNzFcXHU4NjU0XFx1OEU0N1xcdTkzNzVcXHU5QTJCXFx1NEU1RVxcdTUwOTFcXHU2NzcwXFx1Njg0MFxcdTUxMDlcXHU1MjhEXFx1NTI5MlxcdTZBQTJcIl0sXG4gICAgICBbXCJjY2ExXCIsIFwiXFx1NzdCQ1xcdTkyMTBcXHU5RUQ0XFx1NTJBQlxcdTYwMkZcXHU4RkYyXFx1NTA0OFxcdTYxQTlcXHU2M0VEXFx1NjRDQVxcdTY4M0NcXHU2QTg0XFx1NkZDMFxcdTgxODhcXHU4OUExXFx1OTY5NFxcdTU4MDVcXHU3MjdEXFx1NzJBQ1xcdTc1MDRcXHU3RDc5XFx1N0U2RFxcdTgwQTlcXHU4OThCXFx1OEI3NFxcdTkwNjNcXHU5RDUxXFx1NjI4OVxcdTZDN0FcXHU2RjU0XFx1N0Q1MFxcdTdGM0FcXHU4QTIzXFx1NTE3Q1xcdTYxNEFcXHU3QjlEXFx1OEIxOVxcdTkyNTdcXHU5MzhDXFx1NEVBQ1xcdTRGRDNcXHU1MDFFXFx1NTBCRVxcdTUxMDZcXHU1MkMxXFx1NTJDRFxcdTUzN0ZcXHU1NzcwXFx1NTg4M1xcdTVFOUFcXHU1RjkxXFx1NjE3NlxcdTYxQUNcXHU2NENFXFx1NjU2Q1xcdTY2NkZcXHU2NkJCXFx1NjZGNFxcdTY4OTdcXHU2RDg3XFx1NzA4NVxcdTcwRjFcXHU3NDlGXFx1NzRBNVxcdTc0Q0FcXHU3NUQ5XFx1Nzg2Q1xcdTc4RUNcXHU3QURGXFx1N0FGNlxcdTdENDVcXHU3RDkzXFx1ODAxNVxcdTgwM0ZcXHU4MTFCXFx1ODM5NlxcdThCNjZcXHU4RjE1XFx1OTAxNVxcdTkzRTFcXHU5ODAzXFx1OTgzOFxcdTlBNUFcXHU5QkU4XFx1NEZDMlxcdTU1NTNcXHU1ODNBXFx1NTk1MVxcdTVCNjNcXHU1QzQ2XFx1NjBCOFxcdTYyMTJcXHU2ODQyXFx1NjhCMFwiXSxcbiAgICAgIFtcImNkYTFcIiwgXCJcXHU2OEU4XFx1NkVBQVxcdTc1NENcXHU3Njc4XFx1NzhDRVxcdTdBM0RcXHU3Q0ZCXFx1N0U2QlxcdTdFN0NcXHU4QTA4XFx1OEFBMVxcdThDM0ZcXHU5NjhFXFx1OURDNFxcdTUzRTRcXHU1M0U5XFx1NTQ0QVxcdTU0NzFcXHU1NkZBXFx1NTlEMVxcdTVCNjRcXHU1QzNCXFx1NUVBQlxcdTYyRjdcXHU2NTM3XFx1NjU0NVxcdTY1NzJcXHU2NkEwXFx1NjdBRlxcdTY5QzFcXHU2Q0JEXFx1NzVGQ1xcdTc2OTBcXHU3NzdFXFx1N0EzRlxcdTdGOTRcXHU4MDAzXFx1ODBBMVxcdTgxOEZcXHU4MkU2XFx1ODJGRFxcdTgzRjBcXHU4NUMxXFx1ODgzMVxcdTg4QjRcXHU4QUE1XFx1RjkwM1xcdThGOUNcXHU5MzJFXFx1OTZDN1xcdTk4NjdcXHU5QUQ4XFx1OUYxM1xcdTU0RURcXHU2NTlCXFx1NjZGMlxcdTY4OEZcXHU3QTQwXFx1OEMzN1xcdTlENjBcXHU1NkYwXFx1NTc2NFxcdTVEMTFcXHU2NjA2XFx1NjhCMVxcdTY4Q0RcXHU2RUZFXFx1NzQyOFxcdTg4OUVcXHU5QkU0XFx1NkM2OFxcdUY5MDRcXHU5QUE4XFx1NEY5QlxcdTUxNkNcXHU1MTcxXFx1NTI5RlxcdTVCNTRcXHU1REU1XFx1NjA1MFxcdTYwNkRcXHU2MkYxXFx1NjNBN1xcdTY1M0JcXHU3M0Q5XFx1N0E3QVxcdTg2QTNcXHU4Q0EyXFx1OTc4RlxcdTRFMzJcXHU1QkUxXFx1NjIwOFxcdTY3OUNcXHU3NERDXCJdLFxuICAgICAgW1wiY2VhMVwiLCBcIlxcdTc5RDFcXHU4M0QzXFx1OEE4N1xcdThBQjJcXHU4REU4XFx1OTA0RVxcdTkzNEJcXHU5ODQ2XFx1NUVEM1xcdTY5RThcXHU4NUZGXFx1OTBFRFxcdUY5MDVcXHU1MUEwXFx1NUI5OFxcdTVCRUNcXHU2MTYzXFx1NjhGQVxcdTZCM0VcXHU3MDRDXFx1NzQyRlxcdTc0RDhcXHU3QkExXFx1N0Y1MFxcdTgzQzVcXHU4OUMwXFx1OENBQlxcdTk1RENcXHU5OTI4XFx1NTIyRVxcdTYwNURcXHU2MkVDXFx1OTAwMlxcdTRGOEFcXHU1MTQ5XFx1NTMyMVxcdTU4RDlcXHU1RUUzXFx1NjZFMFxcdTZEMzhcXHU3MDlBXFx1NzJDMlxcdTczRDZcXHU3QjUwXFx1ODBGMVxcdTk0NUJcXHU1MzY2XFx1NjM5QlxcdTdGNkJcXHU0RTU2XFx1NTA4MFxcdTU4NEFcXHU1OERFXFx1NjAyQVxcdTYxMjdcXHU2MkQwXFx1NjlEMFxcdTlCNDFcXHU1QjhGXFx1N0QxOFxcdTgwQjFcXHU4RjVGXFx1NEVBNFxcdTUwRDFcXHU1NEFDXFx1NTVBQ1xcdTVCMENcXHU1REEwXFx1NURFN1xcdTY1MkFcXHU2NTRFXFx1NjgyMVxcdTZBNEJcXHU3MkUxXFx1NzY4RVxcdTc3RUZcXHU3RDVFXFx1N0ZGOVxcdTgxQTBcXHU4NTRFXFx1ODZERlxcdThGMDNcXHU4RjRFXFx1OTBDQVxcdTk5MDNcXHU5QTU1XFx1OUJBQlxcdTRFMThcXHU0RTQ1XFx1NEU1RFxcdTRFQzdcXHU0RkYxXFx1NTE3N1xcdTUyRkVcIl0sXG4gICAgICBbXCJjZmExXCIsIFwiXFx1NTM0MFxcdTUzRTNcXHU1M0U1XFx1NTQ4RVxcdTU2MTRcXHU1Nzc1XFx1NTdBMlxcdTVCQzdcXHU1RDg3XFx1NUVEMFxcdTYxRkNcXHU2MkQ4XFx1NjU1MVxcdTY3QjhcXHU2N0U5XFx1NjlDQlxcdTZCNTBcXHU2QkM2XFx1NkJFQ1xcdTZDNDJcXHU2RTlEXFx1NzA3OFxcdTcyRDdcXHU3Mzk2XFx1NzQwM1xcdTc3QkZcXHU3N0U5XFx1N0E3NlxcdTdEN0ZcXHU4MDA5XFx1ODFGQ1xcdTgyMDVcXHU4MjBBXFx1ODJERlxcdTg4NjJcXHU4QjMzXFx1OENGQ1xcdThFQzBcXHU5MDExXFx1OTBCMVxcdTkyNjRcXHU5MkI2XFx1OTlEMlxcdTlBNDVcXHU5Q0U5XFx1OUREN1xcdTlGOUNcXHU1NzBCXFx1NUM0MFxcdTgzQ0FcXHU5N0EwXFx1OTdBQlxcdTlFQjRcXHU1NDFCXFx1N0E5OFxcdTdGQTRcXHU4OEQ5XFx1OEVDRFxcdTkwRTFcXHU1ODAwXFx1NUM0OFxcdTYzOThcXHU3QTlGXFx1NUJBRVxcdTVGMTNcXHU3QTc5XFx1N0FBRVxcdTgyOEVcXHU4RUFDXFx1NTAyNlxcdTUyMzhcXHU1MkY4XFx1NTM3N1xcdTU3MDhcXHU2MkYzXFx1NjM3MlxcdTZCMEFcXHU2REMzXFx1NzczN1xcdTUzQTVcXHU3MzU3XFx1ODU2OFxcdThFNzZcXHU5NUQ1XFx1NjczQVxcdTZBQzNcXHU2RjcwXFx1OEE2RFxcdThFQ0NcXHU5OTRCXFx1RjkwNlxcdTY2NzdcXHU2Qjc4XFx1OENCNFwiXSxcbiAgICAgIFtcImQwYTFcIiwgXCJcXHU5QjNDXFx1RjkwN1xcdTUzRUJcXHU1NzJEXFx1NTk0RVxcdTYzQzZcXHU2OUZCXFx1NzNFQVxcdTc4NDVcXHU3QUJBXFx1N0FDNVxcdTdDRkVcXHU4NDc1XFx1ODk4RlxcdThENzNcXHU5MDM1XFx1OTVBOFxcdTUyRkJcXHU1NzQ3XFx1NzU0N1xcdTdCNjBcXHU4M0NDXFx1OTIxRVxcdUY5MDhcXHU2QTU4XFx1NTE0QlxcdTUyNEJcXHU1Mjg3XFx1NjIxRlxcdTY4RDhcXHU2OTc1XFx1OTY5OVxcdTUwQzVcXHU1MkE0XFx1NTJFNFxcdTYxQzNcXHU2NUE0XFx1NjgzOVxcdTY5RkZcXHU3NDdFXFx1N0I0QlxcdTgyQjlcXHU4M0VCXFx1ODlCMlxcdThCMzlcXHU4RkQxXFx1OTk0OVxcdUY5MDlcXHU0RUNBXFx1NTk5N1xcdTY0RDJcXHU2NjExXFx1NkE4RVxcdTc0MzRcXHU3OTgxXFx1NzlCRFxcdTgyQTlcXHU4ODdFXFx1ODg3RlxcdTg5NUZcXHVGOTBBXFx1OTMyNlxcdTRGMEJcXHU1M0NBXFx1NjAyNVxcdTYyNzFcXHU2QzcyXFx1N0QxQVxcdTdENjZcXHU0RTk4XFx1NTE2MlxcdTc3RENcXHU4MEFGXFx1NEYwMVxcdTRGMEVcXHU1MTc2XFx1NTE4MFxcdTU1RENcXHU1NjY4XFx1NTczQlxcdTU3RkFcXHU1N0ZDXFx1NTkxNFxcdTU5NDdcXHU1OTkzXFx1NUJDNFxcdTVDOTBcXHU1RDBFXFx1NURGMVxcdTVFN0VcXHU1RkNDXFx1NjI4MFxcdTY1RDdcXHU2NUUzXCJdLFxuICAgICAgW1wiZDFhMVwiLCBcIlxcdTY3MUVcXHU2NzFGXFx1Njc1RVxcdTY4Q0JcXHU2OEM0XFx1NkE1RlxcdTZCM0FcXHU2QzIzXFx1NkM3RFxcdTZDODJcXHU2REM3XFx1NzM5OFxcdTc0MjZcXHU3NDJBXFx1NzQ4MlxcdTc0QTNcXHU3NTc4XFx1NzU3RlxcdTc4ODFcXHU3OEVGXFx1Nzk0MVxcdTc5NDdcXHU3OTQ4XFx1Nzk3QVxcdTdCOTVcXHU3RDAwXFx1N0RCQVxcdTdGODhcXHU4MDA2XFx1ODAyRFxcdTgwOENcXHU4QTE4XFx1OEI0RlxcdThDNDhcXHU4RDc3XFx1OTMyMVxcdTkzMjRcXHU5OEUyXFx1OTk1MVxcdTlBMEVcXHU5QTBGXFx1OUE2NVxcdTlFOTJcXHU3RENBXFx1NEY3NlxcdTU0MDlcXHU2MkVFXFx1Njg1NFxcdTkxRDFcXHU1NUFCXFx1NTEzQVxcdUY5MEJcXHVGOTBDXFx1NUExQ1xcdTYxRTZcXHVGOTBEXFx1NjJDRlxcdTYyRkZcXHVGOTBFXCIsIDUsIFwiXFx1OTBBM1xcdUY5MTRcIiwgNCwgXCJcXHU4QUZFXFx1RjkxOVxcdUY5MUFcXHVGOTFCXFx1RjkxQ1xcdTY2OTZcXHVGOTFEXFx1NzE1NlxcdUY5MUVcXHVGOTFGXFx1OTZFM1xcdUY5MjBcXHU2MzRGXFx1NjM3QVxcdTUzNTdcXHVGOTIxXFx1Njc4RlxcdTY5NjBcXHU2RTczXFx1RjkyMlxcdTc1MzdcXHVGOTIzXFx1RjkyNFxcdUY5MjVcIl0sXG4gICAgICBbXCJkMmExXCIsIFwiXFx1N0QwRFxcdUY5MjZcXHVGOTI3XFx1ODg3MlxcdTU2Q0FcXHU1QTE4XFx1RjkyOFwiLCA0LCBcIlxcdTRFNDNcXHVGOTJEXFx1NTE2N1xcdTU5NDhcXHU2N0YwXFx1ODAxMFxcdUY5MkVcXHU1OTczXFx1NUU3NFxcdTY0OUFcXHU3OUNBXFx1NUZGNVxcdTYwNkNcXHU2MkM4XFx1NjM3QlxcdTVCRTdcXHU1QkQ3XFx1NTJBQVxcdUY5MkZcXHU1OTc0XFx1NUYyOVxcdTYwMTJcXHVGOTMwXFx1RjkzMVxcdUY5MzJcXHU3NDU5XFx1RjkzM1wiLCA1LCBcIlxcdTk5RDFcXHVGOTM5XCIsIDEwLCBcIlxcdTZGQzNcXHVGOTQ0XFx1Rjk0NVxcdTgxQkZcXHU4RkIyXFx1NjBGMVxcdUY5NDZcXHVGOTQ3XFx1ODE2NlxcdUY5NDhcXHVGOTQ5XFx1NUMzRlxcdUY5NEFcIiwgNywgXCJcXHU1QUU5XFx1OEEyNVxcdTY3N0JcXHU3RDEwXFx1Rjk1MlwiLCA1LCBcIlxcdTgwRkRcXHVGOTU4XFx1Rjk1OVxcdTVDM0NcXHU2Q0U1XFx1NTMzRlxcdTZFQkFcXHU1OTFBXFx1ODMzNlwiXSxcbiAgICAgIFtcImQzYTFcIiwgXCJcXHU0RTM5XFx1NEVCNlxcdTRGNDZcXHU1NUFFXFx1NTcxOFxcdTU4QzdcXHU1RjU2XFx1NjVCN1xcdTY1RTZcXHU2QTgwXFx1NkJCNVxcdTZFNERcXHU3N0VEXFx1N0FFRlxcdTdDMUVcXHU3RERFXFx1ODZDQlxcdTg4OTJcXHU5MTMyXFx1OTM1QlxcdTY0QkJcXHU2RkJFXFx1NzM3QVxcdTc1QjhcXHU5MDU0XFx1NTU1NlxcdTU3NERcXHU2MUJBXFx1NjRENFxcdTY2QzdcXHU2REUxXFx1NkU1QlxcdTZGNkRcXHU2RkI5XFx1NzVGMFxcdTgwNDNcXHU4MUJEXFx1ODU0MVxcdTg5ODNcXHU4QUM3XFx1OEI1QVxcdTkzMUZcXHU2QzkzXFx1NzU1M1xcdTdCNTRcXHU4RTBGXFx1OTA1RFxcdTU1MTBcXHU1ODAyXFx1NTg1OFxcdTVFNjJcXHU2MjA3XFx1NjQ5RVxcdTY4RTBcXHU3NTc2XFx1N0NENlxcdTg3QjNcXHU5RUU4XFx1NEVFM1xcdTU3ODhcXHU1NzZFXFx1NTkyN1xcdTVDMERcXHU1Q0IxXFx1NUUzNlxcdTVGODVcXHU2MjM0XFx1NjRFMVxcdTczQjNcXHU4MUZBXFx1ODg4QlxcdThDQjhcXHU5NjhBXFx1OUVEQlxcdTVCODVcXHU1RkI3XFx1NjBCM1xcdTUwMTJcXHU1MjAwXFx1NTIzMFxcdTU3MTZcXHU1ODM1XFx1NTg1N1xcdTVDMEVcXHU1QzYwXFx1NUNGNlxcdTVEOEJcXHU1RUE2XFx1NUY5MlxcdTYwQkNcXHU2MzExXFx1NjM4OVxcdTY0MTdcXHU2ODQzXCJdLFxuICAgICAgW1wiZDRhMVwiLCBcIlxcdTY4RjlcXHU2QUMyXFx1NkREOFxcdTZFMjFcXHU2RUQ0XFx1NkZFNFxcdTcxRkVcXHU3NkRDXFx1Nzc3OVxcdTc5QjFcXHU3QTNCXFx1ODQwNFxcdTg5QTlcXHU4Q0VEXFx1OERGM1xcdThFNDhcXHU5MDAzXFx1OTAxNFxcdTkwNTNcXHU5MEZEXFx1OTM0RFxcdTk2NzZcXHU5N0RDXFx1NkJEMlxcdTcwMDZcXHU3MjU4XFx1NzJBMlxcdTczNjhcXHU3NzYzXFx1NzlCRlxcdTdCRTRcXHU3RTlCXFx1OEI4MFxcdTU4QTlcXHU2MEM3XFx1NjU2NlxcdTY1RkRcXHU2NkJFXFx1NkM4Q1xcdTcxMUVcXHU3MUM5XFx1OEM1QVxcdTk4MTNcXHU0RTZEXFx1N0E4MVxcdTRFRERcXHU1MUFDXFx1NTFDRFxcdTUyRDVcXHU1NDBDXFx1NjFBN1xcdTY3NzFcXHU2ODUwXFx1NjhERlxcdTZEMUVcXHU2RjdDXFx1NzVCQ1xcdTc3QjNcXHU3QUU1XFx1ODBGNFxcdTg0NjNcXHU5Mjg1XFx1NTE1Q1xcdTY1OTdcXHU2NzVDXFx1Njc5M1xcdTc1RDhcXHU3QUM3XFx1ODM3M1xcdUY5NUFcXHU4QzQ2XFx1OTAxN1xcdTk4MkRcXHU1QzZGXFx1ODFDMFxcdTgyOUFcXHU5MDQxXFx1OTA2RlxcdTkyMERcXHU1Rjk3XFx1NUQ5RFxcdTZBNTlcXHU3MUM4XFx1NzY3QlxcdTdCNDlcXHU4NUU0XFx1OEIwNFxcdTkxMjdcXHU5QTMwXFx1NTU4N1xcdTYxRjZcXHVGOTVCXFx1NzY2OVxcdTdGODVcIl0sXG4gICAgICBbXCJkNWExXCIsIFwiXFx1ODYzRlxcdTg3QkFcXHU4OEY4XFx1OTA4RlxcdUY5NUNcXHU2RDFCXFx1NzBEOVxcdTczREVcXHU3RDYxXFx1ODQzRFxcdUY5NURcXHU5MTZBXFx1OTlGMVxcdUY5NUVcXHU0RTgyXFx1NTM3NVxcdTZCMDRcXHU2QjEyXFx1NzAzRVxcdTcyMUJcXHU4NjJEXFx1OUUxRVxcdTUyNENcXHU4RkEzXFx1NUQ1MFxcdTY0RTVcXHU2NTJDXFx1NkIxNlxcdTZGRUJcXHU3QzQzXFx1N0U5Q1xcdTg1Q0RcXHU4OTY0XFx1ODlCRFxcdTYyQzlcXHU4MUQ4XFx1ODgxRlxcdTVFQ0FcXHU2NzE3XFx1NkQ2QVxcdTcyRkNcXHU3NDA1XFx1NzQ2RlxcdTg3ODJcXHU5MERFXFx1NEY4NlxcdTVEMERcXHU1RkEwXFx1ODQwQVxcdTUxQjdcXHU2M0EwXFx1NzU2NVxcdTRFQUVcXHU1MDA2XFx1NTE2OVxcdTUxQzlcXHU2ODgxXFx1NkExMVxcdTdDQUVcXHU3Q0IxXFx1N0NFN1xcdTgyNkZcXHU4QUQyXFx1OEYxQlxcdTkxQ0ZcXHU0RkI2XFx1NTEzN1xcdTUyRjVcXHU1NDQyXFx1NUVFQ1xcdTYxNkVcXHU2MjNFXFx1NjVDNVxcdTZBREFcXHU2RkZFXFx1NzkyQVxcdTg1RENcXHU4ODIzXFx1OTVBRFxcdTlBNjJcXHU5QTZBXFx1OUU5N1xcdTlFQ0VcXHU1MjlCXFx1NjZDNlxcdTZCNzdcXHU3MDFEXFx1NzkyQlxcdThGNjJcXHU5NzQyXFx1NjE5MFxcdTYyMDBcXHU2NTIzXFx1NkYyM1wiXSxcbiAgICAgIFtcImQ2YTFcIiwgXCJcXHU3MTQ5XFx1NzQ4OVxcdTdERjRcXHU4MDZGXFx1ODRFRVxcdThGMjZcXHU5MDIzXFx1OTM0QVxcdTUxQkRcXHU1MjE3XFx1NTJBM1xcdTZEMENcXHU3MEM4XFx1ODhDMlxcdTVFQzlcXHU2NTgyXFx1NkJBRVxcdTZGQzJcXHU3QzNFXFx1NzM3NVxcdTRFRTRcXHU0RjM2XFx1NTZGOVxcdUY5NUZcXHU1Q0JBXFx1NURCQVxcdTYwMUNcXHU3M0IyXFx1N0IyRFxcdTdGOUFcXHU3RkNFXFx1ODA0NlxcdTkwMUVcXHU5MjM0XFx1OTZGNlxcdTk3NDhcXHU5ODE4XFx1OUY2MVxcdTRGOEJcXHU2RkE3XFx1NzlBRVxcdTkxQjRcXHU5NkI3XFx1NTJERVxcdUY5NjBcXHU2NDg4XFx1NjRDNFxcdTZBRDNcXHU2RjVFXFx1NzAxOFxcdTcyMTBcXHU3NkU3XFx1ODAwMVxcdTg2MDZcXHU4NjVDXFx1OERFRlxcdThGMDVcXHU5NzMyXFx1OUI2RlxcdTlERkFcXHU5RTc1XFx1Nzg4Q1xcdTc5N0ZcXHU3REEwXFx1ODNDOVxcdTkzMDRcXHU5RTdGXFx1OUU5M1xcdThBRDZcXHU1OERGXFx1NUYwNFxcdTY3MjdcXHU3MDI3XFx1NzRDRlxcdTdDNjBcXHU4MDdFXFx1NTEyMVxcdTcwMjhcXHU3MjYyXFx1NzhDQVxcdThDQzJcXHU4Q0RBXFx1OENGNFxcdTk2RjdcXHU0RTg2XFx1NTBEQVxcdTVCRUVcXHU1RUQ2XFx1NjU5OVxcdTcxQ0VcXHU3NjQyXFx1NzdBRFxcdTgwNEFcXHU4NEZDXCJdLFxuICAgICAgW1wiZDdhMVwiLCBcIlxcdTkwN0NcXHU5QjI3XFx1OUY4RFxcdTU4RDhcXHU1QTQxXFx1NUM2MlxcdTZBMTNcXHU2RERBXFx1NkYwRlxcdTc2M0JcXHU3RDJGXFx1N0UzN1xcdTg1MUVcXHU4OTM4XFx1OTNFNFxcdTk2NEJcXHU1Mjg5XFx1NjVEMlxcdTY3RjNcXHU2OUI0XFx1NkQ0MVxcdTZFOUNcXHU3MDBGXFx1NzQwOVxcdTc0NjBcXHU3NTU5XFx1NzYyNFxcdTc4NkJcXHU4QjJDXFx1OTg1RVxcdTUxNkRcXHU2MjJFXFx1OTY3OFxcdTRGOTZcXHU1MDJCXFx1NUQxOVxcdTZERUFcXHU3REI4XFx1OEYyQVxcdTVGOEJcXHU2MTQ0XFx1NjgxN1xcdUY5NjFcXHU5Njg2XFx1NTJEMlxcdTgwOEJcXHU1MURDXFx1NTFDQ1xcdTY5NUVcXHU3QTFDXFx1N0RCRVxcdTgzRjFcXHU5Njc1XFx1NEZEQVxcdTUyMjlcXHU1Mzk4XFx1NTQwRlxcdTU1MEVcXHU1QzY1XFx1NjBBN1xcdTY3NEVcXHU2OEE4XFx1NkQ2Q1xcdTcyODFcXHU3MkY4XFx1NzQwNlxcdTc0ODNcXHVGOTYyXFx1NzVFMlxcdTdDNkNcXHU3Rjc5XFx1N0ZCOFxcdTgzODlcXHU4OENGXFx1ODhFMVxcdTkxQ0NcXHU5MUQwXFx1OTZFMlxcdTlCQzlcXHU1NDFEXFx1NkY3RVxcdTcxRDBcXHU3NDk4XFx1ODVGQVxcdThFQUFcXHU5NkEzXFx1OUM1N1xcdTlFOUZcXHU2Nzk3XFx1NkRDQlxcdTc0MzNcXHU4MUU4XFx1OTcxNlxcdTc4MkNcIl0sXG4gICAgICBbXCJkOGExXCIsIFwiXFx1N0FDQlxcdTdCMjBcXHU3QzkyXFx1NjQ2OVxcdTc0NkFcXHU3NUYyXFx1NzhCQ1xcdTc4RThcXHU5OUFDXFx1OUI1NFxcdTlFQkJcXHU1QkRFXFx1NUU1NVxcdTZGMjBcXHU4MTlDXFx1ODNBQlxcdTkwODhcXHU0RTA3XFx1NTM0RFxcdTVBMjlcXHU1REQyXFx1NUY0RVxcdTYxNjJcXHU2MzNEXFx1NjY2OVxcdTY2RkNcXHU2RUZGXFx1NkYyQlxcdTcwNjNcXHU3NzlFXFx1ODQyQ1xcdTg1MTNcXHU4ODNCXFx1OEYxM1xcdTk5NDVcXHU5QzNCXFx1NTUxQ1xcdTYyQjlcXHU2NzJCXFx1NkNBQlxcdTgzMDlcXHU4OTZBXFx1OTc3QVxcdTRFQTFcXHU1OTg0XFx1NUZEOFxcdTVGRDlcXHU2NzFCXFx1N0RCMlxcdTdGNTRcXHU4MjkyXFx1ODMyQlxcdTgzQkRcXHU4RjFFXFx1OTA5OVxcdTU3Q0JcXHU1OUI5XFx1NUE5MlxcdTVCRDBcXHU2NjI3XFx1Njc5QVxcdTY4ODVcXHU2QkNGXFx1NzE2NFxcdTdGNzVcXHU4Q0I3XFx1OENFM1xcdTkwODFcXHU5QjQ1XFx1ODEwOFxcdThDOEFcXHU5NjRDXFx1OUE0MFxcdTlFQTVcXHU1QjVGXFx1NkMxM1xcdTczMUJcXHU3NkYyXFx1NzZERlxcdTg0MENcXHU1MUFBXFx1ODk5M1xcdTUxNERcXHU1MTk1XFx1NTJDOVxcdTY4QzlcXHU2Qzk0XFx1NzcwNFxcdTc3MjBcXHU3REJGXFx1N0RFQ1xcdTk3NjJcXHU5RUI1XFx1NkVDNVwiXSxcbiAgICAgIFtcImQ5YTFcIiwgXCJcXHU4NTExXFx1NTFBNVxcdTU0MERcXHU1NDdEXFx1NjYwRVxcdTY2OURcXHU2OTI3XFx1NkU5RlxcdTc2QkZcXHU3NzkxXFx1ODMxN1xcdTg0QzJcXHU4NzlGXFx1OTE2OVxcdTkyOThcXHU5Q0Y0XFx1ODg4MlxcdTRGQUVcXHU1MTkyXFx1NTJERlxcdTU5QzZcXHU1RTNEXFx1NjE1NVxcdTY0NzhcXHU2NDc5XFx1NjZBRVxcdTY3RDBcXHU2QTIxXFx1NkJDRFxcdTZCREJcXHU3MjVGXFx1NzI2MVxcdTc0NDFcXHU3NzM4XFx1NzdEQlxcdTgwMTdcXHU4MkJDXFx1ODMwNVxcdThCMDBcXHU4QjI4XFx1OEM4Q1xcdTY3MjhcXHU2QzkwXFx1NzI2N1xcdTc2RUVcXHU3NzY2XFx1N0E0NlxcdTlEQTlcXHU2QjdGXFx1NkM5MlxcdTU5MjJcXHU2NzI2XFx1ODQ5OVxcdTUzNkZcXHU1ODkzXFx1NTk5OVxcdTVFREZcXHU2M0NGXFx1NjYzNFxcdTY3NzNcXHU2RTNBXFx1NzMyQlxcdTdBRDdcXHU4MkQ3XFx1OTMyOFxcdTUyRDlcXHU1REVCXFx1NjFBRVxcdTYxQ0JcXHU2MjBBXFx1NjJDN1xcdTY0QUJcXHU2NUUwXFx1Njk1OVxcdTZCNjZcXHU2QkNCXFx1NzEyMVxcdTczRjdcXHU3NTVEXFx1N0U0NlxcdTgyMUVcXHU4MzAyXFx1ODU2QVxcdThBQTNcXHU4Q0JGXFx1OTcyN1xcdTlENjFcXHU1OEE4XFx1OUVEOFxcdTUwMTFcXHU1MjBFXFx1NTQzQlxcdTU1NEZcXHU2NTg3XCJdLFxuICAgICAgW1wiZGFhMVwiLCBcIlxcdTZDNzZcXHU3RDBBXFx1N0QwQlxcdTgwNUVcXHU4NjhBXFx1OTU4MFxcdTk2RUZcXHU1MkZGXFx1NkM5NVxcdTcyNjlcXHU1NDczXFx1NUE5QVxcdTVDM0VcXHU1RDRCXFx1NUY0Q1xcdTVGQUVcXHU2NzJBXFx1NjhCNlxcdTY5NjNcXHU2RTNDXFx1NkU0NFxcdTc3MDlcXHU3QzczXFx1N0Y4RVxcdTg1ODdcXHU4QjBFXFx1OEZGN1xcdTk3NjFcXHU5RUY0XFx1NUNCN1xcdTYwQjZcXHU2MTBEXFx1NjFBQlxcdTY1NEZcXHU2NUZCXFx1NjVGQ1xcdTZDMTFcXHU2Q0VGXFx1NzM5RlxcdTczQzlcXHU3REUxXFx1OTU5NFxcdTVCQzZcXHU4NzFDXFx1OEIxMFxcdTUyNURcXHU1MzVBXFx1NjJDRFxcdTY0MEZcXHU2NEIyXFx1NjczNFxcdTZBMzhcXHU2Q0NBXFx1NzNDMFxcdTc0OUVcXHU3Qjk0XFx1N0M5NVxcdTdFMUJcXHU4MThBXFx1ODIzNlxcdTg1ODRcXHU4RkVCXFx1OTZGOVxcdTk5QzFcXHU0RjM0XFx1NTM0QVxcdTUzQ0RcXHU1M0RCXFx1NjJDQ1xcdTY0MkNcXHU2NTAwXFx1NjU5MVxcdTY5QzNcXHU2Q0VFXFx1NkY1OFxcdTczRURcXHU3NTU0XFx1NzYyMlxcdTc2RTRcXHU3NkZDXFx1NzhEMFxcdTc4RkJcXHU3OTJDXFx1N0Q0NlxcdTgyMkNcXHU4N0UwXFx1OEZENFxcdTk4MTJcXHU5OEVGXFx1NTJDM1xcdTYyRDRcXHU2NEE1XFx1NkUyNFxcdTZGNTFcIl0sXG4gICAgICBbXCJkYmExXCIsIFwiXFx1NzY3Q1xcdThEQ0JcXHU5MUIxXFx1OTI2MlxcdTlBRUVcXHU5QjQzXFx1NTAyM1xcdTUwOERcXHU1NzRBXFx1NTlBOFxcdTVDMjhcXHU1RTQ3XFx1NUY3N1xcdTYyM0ZcXHU2NTNFXFx1NjVCOVxcdTY1QzFcXHU2NjA5XFx1Njc4QlxcdTY5OUNcXHU2RUMyXFx1NzhDNVxcdTdEMjFcXHU4MEFBXFx1ODE4MFxcdTgyMkJcXHU4MkIzXFx1ODRBMVxcdTg2OENcXHU4QTJBXFx1OEIxN1xcdTkwQTZcXHU5NjMyXFx1OUY5MFxcdTUwMERcXHU0RkYzXFx1Rjk2M1xcdTU3RjlcXHU1Rjk4XFx1NjJEQ1xcdTYzOTJcXHU2NzZGXFx1NkU0M1xcdTcxMTlcXHU3NkMzXFx1ODBDQ1xcdTgwREFcXHU4OEY0XFx1ODhGNVxcdTg5MTlcXHU4Q0UwXFx1OEYyOVxcdTkxNERcXHU5NjZBXFx1NEYyRlxcdTRGNzBcXHU1RTFCXFx1NjdDRlxcdTY4MjJcXHU3NjdEXFx1NzY3RVxcdTlCNDRcXHU1RTYxXFx1NkEwQVxcdTcxNjlcXHU3MUQ0XFx1NzU2QVxcdUY5NjRcXHU3RTQxXFx1ODU0M1xcdTg1RTlcXHU5OERDXFx1NEYxMFxcdTdCNEZcXHU3RjcwXFx1OTVBNVxcdTUxRTFcXHU1RTA2XFx1NjhCNVxcdTZDM0VcXHU2QzRFXFx1NkNEQlxcdTcyQUZcXHU3QkM0XFx1ODMwM1xcdTZDRDVcXHU3NDNBXFx1NTBGQlxcdTUyODhcXHU1OEMxXFx1NjREOFxcdTZBOTdcXHU3NEE3XFx1NzY1NlwiXSxcbiAgICAgIFtcImRjYTFcIiwgXCJcXHU3OEE3XFx1ODYxN1xcdTk1RTJcXHU5NzM5XFx1Rjk2NVxcdTUzNUVcXHU1RjAxXFx1OEI4QVxcdThGQThcXHU4RkFGXFx1OTA4QVxcdTUyMjVcXHU3N0E1XFx1OUM0OVxcdTlGMDhcXHU0RTE5XFx1NTAwMlxcdTUxNzVcXHU1QzVCXFx1NUU3N1xcdTY2MUVcXHU2NjNBXFx1NjdDNFxcdTY4QzVcXHU3MEIzXFx1NzUwMVxcdTc1QzVcXHU3OUM5XFx1N0FERFxcdThGMjdcXHU5OTIwXFx1OUEwOFxcdTRGRERcXHU1ODIxXFx1NTgzMVxcdTVCRjZcXHU2NjZFXFx1NkI2NVxcdTZEMTFcXHU2RTdBXFx1NkY3RFxcdTczRTRcXHU3NTJCXFx1ODNFOVxcdTg4RENcXHU4OTEzXFx1OEI1Q1xcdThGMTRcXHU0RjBGXFx1NTBENVxcdTUzMTBcXHU1MzVDXFx1NUI5M1xcdTVGQTlcXHU2NzBEXFx1Nzk4RlxcdTgxNzlcXHU4MzJGXFx1ODUxNFxcdTg5MDdcXHU4OTg2XFx1OEYzOVxcdThGM0JcXHU5OUE1XFx1OUMxMlxcdTY3MkNcXHU0RTc2XFx1NEZGOFxcdTU5NDlcXHU1QzAxXFx1NUNFRlxcdTVDRjBcXHU2MzY3XFx1NjhEMlxcdTcwRkRcXHU3MUEyXFx1NzQyQlxcdTdFMkJcXHU4NEVDXFx1ODcwMlxcdTkwMjJcXHU5MkQyXFx1OUNGM1xcdTRFMERcXHU0RUQ4XFx1NEZFRlxcdTUwODVcXHU1MjU2XFx1NTI2RlxcdTU0MjZcXHU1NDkwXFx1NTdFMFxcdTU5MkJcXHU1QTY2XCJdLFxuICAgICAgW1wiZGRhMVwiLCBcIlxcdTVCNUFcXHU1Qjc1XFx1NUJDQ1xcdTVFOUNcXHVGOTY2XFx1NjI3NlxcdTY1NzdcXHU2NUE3XFx1NkQ2RVxcdTZFQTVcXHU3MjM2XFx1N0IyNlxcdTdDM0ZcXHU3RjM2XFx1ODE1MFxcdTgxNTFcXHU4MTlBXFx1ODI0MFxcdTgyOTlcXHU4M0E5XFx1OEEwM1xcdThDQTBcXHU4Q0U2XFx1OENGQlxcdThENzRcXHU4REJBXFx1OTBFOFxcdTkxRENcXHU5NjFDXFx1OTY0NFxcdTk5RDlcXHU5Q0U3XFx1NTMxN1xcdTUyMDZcXHU1NDI5XFx1NTY3NFxcdTU4QjNcXHU1OTU0XFx1NTk2RVxcdTVGRkZcXHU2MUE0XFx1NjI2RVxcdTY2MTBcXHU2QzdFXFx1NzExQVxcdTc2QzZcXHU3Qzg5XFx1N0NERVxcdTdEMUJcXHU4MkFDXFx1OENDMVxcdTk2RjBcXHVGOTY3XFx1NEY1QlxcdTVGMTdcXHU1RjdGXFx1NjJDMlxcdTVEMjlcXHU2NzBCXFx1NjhEQVxcdTc4N0NcXHU3RTQzXFx1OUQ2Q1xcdTRFMTVcXHU1MDk5XFx1NTMxNVxcdTUzMkFcXHU1MzUxXFx1NTk4M1xcdTVBNjJcXHU1RTg3XFx1NjBCMlxcdTYxOEFcXHU2MjQ5XFx1NjI3OVxcdTY1OTBcXHU2Nzg3XFx1NjlBN1xcdTZCRDRcXHU2QkQ2XFx1NkJEN1xcdTZCRDhcXHU2Q0I4XFx1Rjk2OFxcdTc0MzVcXHU3NUZBXFx1NzgxMlxcdTc4OTFcXHU3OUQ1XFx1NzlEOFxcdTdDODNcXHU3RENCXFx1N0ZFMVxcdTgwQTVcIl0sXG4gICAgICBbXCJkZWExXCIsIFwiXFx1ODEzRVxcdTgxQzJcXHU4M0YyXFx1ODcxQVxcdTg4RThcXHU4QUI5XFx1OEI2Q1xcdThDQkJcXHU5MTE5XFx1OTc1RVxcdTk4REJcXHU5RjNCXFx1NTZBQ1xcdTVCMkFcXHU1RjZDXFx1NjU4Q1xcdTZBQjNcXHU2QkFGXFx1NkQ1Q1xcdTZGRjFcXHU3MDE1XFx1NzI1RFxcdTczQURcXHU4Q0E3XFx1OENEM1xcdTk4M0JcXHU2MTkxXFx1NkMzN1xcdTgwNThcXHU5QTAxXFx1NEU0RFxcdTRFOEJcXHU0RTlCXFx1NEVENVxcdTRGM0FcXHU0RjNDXFx1NEY3RlxcdTRGREZcXHU1MEZGXFx1NTNGMlxcdTUzRjhcXHU1NTA2XFx1NTVFM1xcdTU2REJcXHU1OEVCXFx1NTk2MlxcdTVBMTFcXHU1QkVCXFx1NUJGQVxcdTVDMDRcXHU1REYzXFx1NUUyQlxcdTVGOTlcXHU2MDFEXFx1NjM2OFxcdTY1OUNcXHU2NUFGXFx1NjdGNlxcdTY3RkJcXHU2OEFEXFx1NkI3QlxcdTZDOTlcXHU2Q0Q3XFx1NkUyM1xcdTcwMDlcXHU3MzQ1XFx1NzgwMlxcdTc5M0VcXHU3OTQwXFx1Nzk2MFxcdTc5QzFcXHU3QkU5XFx1N0QxN1xcdTdENzJcXHU4MDg2XFx1ODIwRFxcdTgzOEVcXHU4NEQxXFx1ODZDN1xcdTg4REZcXHU4QTUwXFx1OEE1RVxcdThCMURcXHU4Q0RDXFx1OEQ2NlxcdThGQURcXHU5MEFBXFx1OThGQ1xcdTk5REZcXHU5RTlEXFx1NTI0QVxcdUY5NjlcXHU2NzE0XFx1Rjk2QVwiXSxcbiAgICAgIFtcImRmYTFcIiwgXCJcXHU1MDk4XFx1NTIyQVxcdTVDNzFcXHU2NTYzXFx1NkM1NVxcdTczQ0FcXHU3NTIzXFx1NzU5RFxcdTdCOTdcXHU4NDlDXFx1OTE3OFxcdTk3MzBcXHU0RTc3XFx1NjQ5MlxcdTZCQkFcXHU3MTVFXFx1ODVBOVxcdTRFMDlcXHVGOTZCXFx1Njc0OVxcdTY4RUVcXHU2RTE3XFx1ODI5RlxcdTg1MThcXHU4ODZCXFx1NjNGN1xcdTZGODFcXHU5MjEyXFx1OThBRlxcdTRFMEFcXHU1MEI3XFx1NTBDRlxcdTUxMUZcXHU1NTQ2XFx1NTVBQVxcdTU2MTdcXHU1QjQwXFx1NUMxOVxcdTVDRTBcXHU1RTM4XFx1NUU4QVxcdTVFQTBcXHU1RUMyXFx1NjBGM1xcdTY4NTFcXHU2QTYxXFx1NkU1OFxcdTcyM0RcXHU3MjQwXFx1NzJDMFxcdTc2RjhcXHU3OTY1XFx1N0JCMVxcdTdGRDRcXHU4OEYzXFx1ODlGNFxcdThBNzNcXHU4QzYxXFx1OENERVxcdTk3MUNcXHU1ODVFXFx1NzRCRFxcdThDRkRcXHU1NUM3XFx1Rjk2Q1xcdTdBNjFcXHU3RDIyXFx1ODI3MlxcdTcyNzJcXHU3NTFGXFx1NzUyNVxcdUY5NkRcXHU3QjE5XFx1NTg4NVxcdTU4RkJcXHU1REJDXFx1NUU4RlxcdTVFQjZcXHU1RjkwXFx1NjA1NVxcdTYyOTJcXHU2MzdGXFx1NjU0RFxcdTY2OTFcXHU2NkQ5XFx1NjZGOFxcdTY4MTZcXHU2OEYyXFx1NzI4MFxcdTc0NUVcXHU3QjZFXFx1N0Q2RVxcdTdERDZcXHU3RjcyXCJdLFxuICAgICAgW1wiZTBhMVwiLCBcIlxcdTgwRTVcXHU4MjEyXFx1ODVBRlxcdTg5N0ZcXHU4QTkzXFx1OTAxRFxcdTkyRTRcXHU5RUNEXFx1OUYyMFxcdTU5MTVcXHU1OTZEXFx1NUUyRFxcdTYwRENcXHU2NjE0XFx1NjY3M1xcdTY3OTBcXHU2QzUwXFx1NkRDNVxcdTZGNUZcXHU3N0YzXFx1NzhBOVxcdTg0QzZcXHU5MUNCXFx1OTMyQlxcdTRFRDlcXHU1MENBXFx1NTE0OFxcdTU1ODRcXHU1QjBCXFx1NUJBM1xcdTYyNDdcXHU2NTdFXFx1NjVDQlxcdTZFMzJcXHU3MTdEXFx1NzQwMVxcdTc0NDRcXHU3NDg3XFx1NzRCRlxcdTc2NkNcXHU3OUFBXFx1N0REQVxcdTdFNTVcXHU3RkE4XFx1ODE3QVxcdTgxQjNcXHU4MjM5XFx1ODYxQVxcdTg3RUNcXHU4QTc1XFx1OERFM1xcdTkwNzhcXHU5MjkxXFx1OTQyNVxcdTk5NERcXHU5QkFFXFx1NTM2OFxcdTVDNTFcXHU2OTU0XFx1NkNDNFxcdTZEMjlcXHU2RTJCXFx1ODIwQ1xcdTg1OUJcXHU4OTNCXFx1OEEyRFxcdThBQUFcXHU5NkVBXFx1OUY2N1xcdTUyNjFcXHU2NkI5XFx1NkJCMlxcdTdFOTZcXHU4N0ZFXFx1OEQwRFxcdTk1ODNcXHU5NjVEXFx1NjUxRFxcdTZEODlcXHU3MUVFXFx1Rjk2RVxcdTU3Q0VcXHU1OUQzXFx1NUJBQ1xcdTYwMjdcXHU2MEZBXFx1NjIxMFxcdTY2MUZcXHU2NjVGXFx1NzMyOVxcdTczRjlcXHU3NkRCXFx1NzcwMVxcdTdCNkNcIl0sXG4gICAgICBbXCJlMWExXCIsIFwiXFx1ODA1NlxcdTgwNzJcXHU4MTY1XFx1OEFBMFxcdTkxOTJcXHU0RTE2XFx1NTJFMlxcdTZCNzJcXHU2RDE3XFx1N0EwNVxcdTdCMzlcXHU3RDMwXFx1Rjk2RlxcdThDQjBcXHU1M0VDXFx1NTYyRlxcdTU4NTFcXHU1QkI1XFx1NUMwRlxcdTVDMTFcXHU1REUyXFx1NjI0MFxcdTYzODNcXHU2NDE0XFx1NjYyRFxcdTY4QjNcXHU2Q0JDXFx1NkQ4OFxcdTZFQUZcXHU3MDFGXFx1NzBBNFxcdTcxRDJcXHU3NTI2XFx1NzU4RlxcdTc1OEVcXHU3NjE5XFx1N0IxMVxcdTdCRTBcXHU3QzJCXFx1N0QyMFxcdTdEMzlcXHU4NTJDXFx1ODU2RFxcdTg2MDdcXHU4QTM0XFx1OTAwRFxcdTkwNjFcXHU5MEI1XFx1OTJCN1xcdTk3RjZcXHU5QTM3XFx1NEZEN1xcdTVDNkNcXHU2NzVGXFx1NkQ5MVxcdTdDOUZcXHU3RThDXFx1OEIxNlxcdThEMTZcXHU5MDFGXFx1NUI2QlxcdTVERkRcXHU2NDBEXFx1ODRDMFxcdTkwNUNcXHU5OEUxXFx1NzM4N1xcdTVCOEJcXHU2MDlBXFx1Njc3RVxcdTZEREVcXHU4QTFGXFx1OEFBNlxcdTkwMDFcXHU5ODBDXFx1NTIzN1xcdUY5NzBcXHU3MDUxXFx1Nzg4RVxcdTkzOTZcXHU4ODcwXFx1OTFEN1xcdTRGRUVcXHU1M0Q3XFx1NTVGRFxcdTU2REFcXHU1NzgyXFx1NThGRFxcdTVBQzJcXHU1Qjg4XFx1NUNBQlxcdTVDQzBcXHU1RTI1XFx1NjEwMVwiXSxcbiAgICAgIFtcImUyYTFcIiwgXCJcXHU2MjBEXFx1NjI0QlxcdTYzODhcXHU2NDFDXFx1NjUzNlxcdTY1NzhcXHU2QTM5XFx1NkI4QVxcdTZDMzRcXHU2RDE5XFx1NkYzMVxcdTcxRTdcXHU3MkU5XFx1NzM3OFxcdTc0MDdcXHU3NEIyXFx1NzYyNlxcdTc3NjFcXHU3OUMwXFx1N0E1N1xcdTdBRUFcXHU3Q0I5XFx1N0Q4RlxcdTdEQUNcXHU3RTYxXFx1N0Y5RVxcdTgxMjlcXHU4MzMxXFx1ODQ5MFxcdTg0REFcXHU4NUVBXFx1ODg5NlxcdThBQjBcXHU4QjkwXFx1OEYzOFxcdTkwNDJcXHU5MDgzXFx1OTE2Q1xcdTkyOTZcXHU5MkI5XFx1OTY4QlxcdTk2QTdcXHU5NkE4XFx1OTZENlxcdTk3MDBcXHU5ODA4XFx1OTk5NlxcdTlBRDNcXHU5QjFBXFx1NTNENFxcdTU4N0VcXHU1OTE5XFx1NUI3MFxcdTVCQkZcXHU2REQxXFx1NkY1QVxcdTcxOUZcXHU3NDIxXFx1NzRCOVxcdTgwODVcXHU4M0ZEXFx1NURFMVxcdTVGODdcXHU1RkFBXFx1NjA0MlxcdTY1RUNcXHU2ODEyXFx1Njk2RlxcdTZBNTNcXHU2Qjg5XFx1NkQzNVxcdTZERjNcXHU3M0UzXFx1NzZGRVxcdTc3QUNcXHU3QjREXFx1N0QxNFxcdTgxMjNcXHU4MjFDXFx1ODM0MFxcdTg0RjRcXHU4NTYzXFx1OEE2MlxcdThBQzRcXHU5MTg3XFx1OTMxRVxcdTk4MDZcXHU5OUI0XFx1NjIwQ1xcdTg4NTNcXHU4RkYwXFx1OTI2NVxcdTVEMDdcXHU1RDI3XCJdLFxuICAgICAgW1wiZTNhMVwiLCBcIlxcdTVENjlcXHU3NDVGXFx1ODE5RFxcdTg3NjhcXHU2RkQ1XFx1NjJGRVxcdTdGRDJcXHU4OTM2XFx1ODk3MlxcdTRFMUVcXHU0RTU4XFx1NTBFN1xcdTUyRERcXHU1MzQ3XFx1NjI3RlxcdTY2MDdcXHU3RTY5XFx1ODgwNVxcdTk2NUVcXHU0RjhEXFx1NTMxOVxcdTU2MzZcXHU1OUNCXFx1NUFBNFxcdTVDMzhcXHU1QzRFXFx1NUM0RFxcdTVFMDJcXHU1RjExXFx1NjA0M1xcdTY1QkRcXHU2NjJGXFx1NjY0MlxcdTY3QkVcXHU2N0Y0XFx1NzMxQ1xcdTc3RTJcXHU3OTNBXFx1N0ZDNVxcdTg0OTRcXHU4NENEXFx1ODk5NlxcdThBNjZcXHU4QTY5XFx1OEFFMVxcdThDNTVcXHU4QzdBXFx1NTdGNFxcdTVCRDRcXHU1RjBGXFx1NjA2RlxcdTYyRURcXHU2OTBEXFx1NkI5NlxcdTZFNUNcXHU3MTg0XFx1N0JEMlxcdTg3NTVcXHU4QjU4XFx1OEVGRVxcdTk4REZcXHU5OEZFXFx1NEYzOFxcdTRGODFcXHU0RkUxXFx1NTQ3QlxcdTVBMjBcXHU1QkI4XFx1NjEzQ1xcdTY1QjBcXHU2NjY4XFx1NzFGQ1xcdTc1MzNcXHU3OTVFXFx1N0QzM1xcdTgxNEVcXHU4MUUzXFx1ODM5OFxcdTg1QUFcXHU4NUNFXFx1ODcwM1xcdThBMEFcXHU4RUFCXFx1OEY5QlxcdUY5NzFcXHU4RkM1XFx1NTkzMVxcdTVCQTRcXHU1QkU2XFx1NjA4OVxcdTVCRTlcXHU1QzBCXFx1NUZDM1xcdTZDODFcIl0sXG4gICAgICBbXCJlNGExXCIsIFwiXFx1Rjk3MlxcdTZERjFcXHU3MDBCXFx1NzUxQVxcdTgyQUZcXHU4QUY2XFx1NEVDMFxcdTUzNDFcXHVGOTczXFx1OTZEOVxcdTZDMEZcXHU0RTlFXFx1NEZDNFxcdTUxNTJcXHU1NTVFXFx1NUEyNVxcdTVDRThcXHU2MjExXFx1NzI1OVxcdTgyQkRcXHU4M0FBXFx1ODZGRVxcdTg4NTlcXHU4QTFEXFx1OTYzRlxcdTk2QzVcXHU5OTEzXFx1OUQwOVxcdTlENURcXHU1ODBBXFx1NUNCM1xcdTVEQkRcXHU1RTQ0XFx1NjBFMVxcdTYxMTVcXHU2M0UxXFx1NkEwMlxcdTZFMjVcXHU5MTAyXFx1OTM1NFxcdTk4NEVcXHU5QzEwXFx1OUY3N1xcdTVCODlcXHU1Q0I4XFx1NjMwOVxcdTY2NEZcXHU2ODQ4XFx1NzczQ1xcdTk2QzFcXHU5NzhEXFx1OTg1NFxcdTlCOUZcXHU2NUExXFx1OEIwMVxcdThFQ0JcXHU5NUJDXFx1NTUzNVxcdTVDQTlcXHU1REQ2XFx1NUVCNVxcdTY2OTdcXHU3NjRDXFx1ODNGNFxcdTk1QzdcXHU1OEQzXFx1NjJCQ1xcdTcyQ0VcXHU5RDI4XFx1NEVGMFxcdTU5MkVcXHU2MDBGXFx1NjYzQlxcdTZCODNcXHU3OUU3XFx1OUQyNlxcdTUzOTNcXHU1NEMwXFx1NTdDM1xcdTVEMTZcXHU2MTFCXFx1NjZENlxcdTZEQUZcXHU3ODhEXFx1ODI3RVxcdTk2OThcXHU5NzQ0XFx1NTM4NFxcdTYyN0NcXHU2Mzk2XFx1NkRCMlxcdTdFMEFcXHU4MTRCXFx1OTg0RFwiXSxcbiAgICAgIFtcImU1YTFcIiwgXCJcXHU2QUZCXFx1N0Y0Q1xcdTlEQUZcXHU5RTFBXFx1NEU1RlxcdTUwM0JcXHU1MUI2XFx1NTkxQ1xcdTYwRjlcXHU2M0Y2XFx1NjkzMFxcdTcyM0FcXHU4MDM2XFx1Rjk3NFxcdTkxQ0VcXHU1RjMxXFx1Rjk3NVxcdUY5NzZcXHU3RDA0XFx1ODJFNVxcdTg0NkZcXHU4NEJCXFx1ODVFNVxcdThFOERcXHVGOTc3XFx1NEY2RlxcdUY5NzhcXHVGOTc5XFx1NThFNFxcdTVCNDNcXHU2MDU5XFx1NjNEQVxcdTY1MThcXHU2NTZEXFx1NjY5OFxcdUY5N0FcXHU2OTRBXFx1NkEyM1xcdTZEMEJcXHU3MDAxXFx1NzE2Q1xcdTc1RDJcXHU3NjBEXFx1NzlCM1xcdTdBNzBcXHVGOTdCXFx1N0Y4QVxcdUY5N0NcXHU4OTQ0XFx1Rjk3RFxcdThCOTNcXHU5MUMwXFx1OTY3RFxcdUY5N0VcXHU5OTBBXFx1NTcwNFxcdTVGQTFcXHU2NUJDXFx1NkYwMVxcdTc2MDBcXHU3OUE2XFx1OEE5RVxcdTk5QURcXHU5QjVBXFx1OUY2Q1xcdTUxMDRcXHU2MUI2XFx1NjI5MVxcdTZBOERcXHU4MUM2XFx1NTA0M1xcdTU4MzBcXHU1RjY2XFx1NzEwOVxcdThBMDBcXHU4QUZBXFx1NUI3Q1xcdTg2MTZcXHU0RkZBXFx1NTEzQ1xcdTU2QjRcXHU1OTQ0XFx1NjNBOVxcdTZERjlcXHU1REFBXFx1Njk2RFxcdTUxODZcXHU0RTg4XFx1NEY1OVxcdUY5N0ZcXHVGOTgwXFx1Rjk4MVxcdTU5ODJcXHVGOTgyXCJdLFxuICAgICAgW1wiZTZhMVwiLCBcIlxcdUY5ODNcXHU2QjVGXFx1NkM1RFxcdUY5ODRcXHU3NEI1XFx1NzkxNlxcdUY5ODVcXHU4MjA3XFx1ODI0NVxcdTgzMzlcXHU4RjNGXFx1OEY1RFxcdUY5ODZcXHU5OTE4XFx1Rjk4N1xcdUY5ODhcXHVGOTg5XFx1NEVBNlxcdUY5OEFcXHU1N0RGXFx1NUY3OVxcdTY2MTNcXHVGOThCXFx1Rjk4Q1xcdTc1QUJcXHU3RTc5XFx1OEI2RlxcdUY5OERcXHU5MDA2XFx1OUE1QlxcdTU2QTVcXHU1ODI3XFx1NTlGOFxcdTVBMUZcXHU1QkI0XFx1Rjk4RVxcdTVFRjZcXHVGOThGXFx1Rjk5MFxcdTYzNTBcXHU2MzNCXFx1Rjk5MVxcdTY5M0RcXHU2Qzg3XFx1NkNCRlxcdTZEOEVcXHU2RDkzXFx1NkRGNVxcdTZGMTRcXHVGOTkyXFx1NzBERlxcdTcxMzZcXHU3MTU5XFx1Rjk5M1xcdTcxQzNcXHU3MUQ1XFx1Rjk5NFxcdTc4NEZcXHU3ODZGXFx1Rjk5NVxcdTdCNzVcXHU3REUzXFx1Rjk5NlxcdTdFMkZcXHVGOTk3XFx1ODg0RFxcdThFREZcXHVGOTk4XFx1Rjk5OVxcdUY5OUFcXHU5MjVCXFx1Rjk5QlxcdTlDRjZcXHVGOTlDXFx1Rjk5RFxcdUY5OUVcXHU2MDg1XFx1NkQ4NVxcdUY5OUZcXHU3MUIxXFx1RjlBMFxcdUY5QTFcXHU5NUIxXFx1NTNBRFxcdUY5QTJcXHVGOUEzXFx1RjlBNFxcdTY3RDNcXHVGOUE1XFx1NzA4RVxcdTcxMzBcXHU3NDMwXFx1ODI3NlxcdTgyRDJcIl0sXG4gICAgICBbXCJlN2ExXCIsIFwiXFx1RjlBNlxcdTk1QkJcXHU5QUU1XFx1OUU3RFxcdTY2QzRcXHVGOUE3XFx1NzFDMVxcdTg0NDlcXHVGOUE4XFx1RjlBOVxcdTU4NEJcXHVGOUFBXFx1RjlBQlxcdTVEQjhcXHU1RjcxXFx1RjlBQ1xcdTY2MjBcXHU2NjhFXFx1Njk3OVxcdTY5QUVcXHU2QzM4XFx1NkNGM1xcdTZFMzZcXHU2RjQxXFx1NkZEQVxcdTcwMUJcXHU3MDJGXFx1NzE1MFxcdTcxREZcXHU3MzcwXFx1RjlBRFxcdTc0NUJcXHVGOUFFXFx1NzRENFxcdTc2QzhcXHU3QTRFXFx1N0U5M1xcdUY5QUZcXHVGOUIwXFx1ODJGMVxcdThBNjBcXHU4RkNFXFx1RjlCMVxcdTkzNDhcXHVGOUIyXFx1OTcxOVxcdUY5QjNcXHVGOUI0XFx1NEU0MlxcdTUwMkFcXHVGOUI1XFx1NTIwOFxcdTUzRTFcXHU2NkYzXFx1NkM2RFxcdTZGQ0FcXHU3MzBBXFx1Nzc3RlxcdTdBNjJcXHU4MkFFXFx1ODVERFxcdTg2MDJcXHVGOUI2XFx1ODhENFxcdThBNjNcXHU4QjdEXFx1OEM2QlxcdUY5QjdcXHU5MkIzXFx1RjlCOFxcdTk3MTNcXHU5ODEwXFx1NEU5NFxcdTRGMERcXHU0RkM5XFx1NTBCMlxcdTUzNDhcXHU1NDNFXFx1NTQzM1xcdTU1REFcXHU1ODYyXFx1NThCQVxcdTU5NjdcXHU1QTFCXFx1NUJFNFxcdTYwOUZcXHVGOUI5XFx1NjFDQVxcdTY1NTZcXHU2NUZGXFx1NjY2NFxcdTY4QTdcXHU2QzVBXFx1NkZCM1wiXSxcbiAgICAgIFtcImU4YTFcIiwgXCJcXHU3MENGXFx1NzFBQ1xcdTczNTJcXHU3QjdEXFx1ODcwOFxcdThBQTRcXHU5QzMyXFx1OUYwN1xcdTVDNEJcXHU2QzgzXFx1NzM0NFxcdTczODlcXHU5MjNBXFx1NkVBQlxcdTc0NjVcXHU3NjFGXFx1N0E2OVxcdTdFMTVcXHU4NjBBXFx1NTE0MFxcdTU4QzVcXHU2NEMxXFx1NzRFRVxcdTc1MTVcXHU3NjcwXFx1N0ZDMVxcdTkwOTVcXHU5NkNEXFx1OTk1NFxcdTZFMjZcXHU3NEU2XFx1N0FBOVxcdTdBQUFcXHU4MUU1XFx1ODZEOVxcdTg3NzhcXHU4QTFCXFx1NUE0OVxcdTVCOENcXHU1QjlCXFx1NjhBMVxcdTY5MDBcXHU2RDYzXFx1NzNBOVxcdTc0MTNcXHU3NDJDXFx1Nzg5N1xcdTdERTlcXHU3RkVCXFx1ODExOFxcdTgxNTVcXHU4MzlFXFx1OEM0Q1xcdTk2MkVcXHU5ODExXFx1NjZGMFxcdTVGODBcXHU2NUZBXFx1Njc4OVxcdTZDNkFcXHU3MzhCXFx1NTAyRFxcdTVBMDNcXHU2QjZBXFx1NzdFRVxcdTU5MTZcXHU1RDZDXFx1NURDRFxcdTczMjVcXHU3NTRGXFx1RjlCQVxcdUY5QkJcXHU1MEU1XFx1NTFGOVxcdTU4MkZcXHU1OTJEXFx1NTk5NlxcdTU5REFcXHU1QkU1XFx1RjlCQ1xcdUY5QkRcXHU1REEyXFx1NjJEN1xcdTY0MTZcXHU2NDkzXFx1NjRGRVxcdUY5QkVcXHU2NkRDXFx1RjlCRlxcdTZBNDhcXHVGOUMwXFx1NzFGRlxcdTc0NjRcXHVGOUMxXCJdLFxuICAgICAgW1wiZTlhMVwiLCBcIlxcdTdBODhcXHU3QUFGXFx1N0U0N1xcdTdFNUVcXHU4MDAwXFx1ODE3MFxcdUY5QzJcXHU4N0VGXFx1ODk4MVxcdThCMjBcXHU5MDU5XFx1RjlDM1xcdTkwODBcXHU5OTUyXFx1NjE3RVxcdTZCMzJcXHU2RDc0XFx1N0UxRlxcdTg5MjVcXHU4RkIxXFx1NEZEMVxcdTUwQURcXHU1MTk3XFx1NTJDN1xcdTU3QzdcXHU1ODg5XFx1NUJCOVxcdTVFQjhcXHU2MTQyXFx1Njk5NVxcdTZEOENcXHU2RTY3XFx1NkVCNlxcdTcxOTRcXHU3NDYyXFx1NzUyOFxcdTc1MkNcXHU4MDczXFx1ODMzOFxcdTg0QzlcXHU4RTBBXFx1OTM5NFxcdTkzREVcXHVGOUM0XFx1NEU4RVxcdTRGNTFcXHU1MDc2XFx1NTEyQVxcdTUzQzhcXHU1M0NCXFx1NTNGM1xcdTVCODdcXHU1QkQzXFx1NUMyNFxcdTYxMUFcXHU2MTgyXFx1NjVGNFxcdTcyNUJcXHU3Mzk3XFx1NzQ0MFxcdTc2QzJcXHU3OTUwXFx1Nzk5MVxcdTc5QjlcXHU3RDA2XFx1N0ZCRFxcdTgyOEJcXHU4NUQ1XFx1ODY1RVxcdThGQzJcXHU5MDQ3XFx1OTBGNVxcdTkxRUFcXHU5Njg1XFx1OTZFOFxcdTk2RTlcXHU1MkQ2XFx1NUY2N1xcdTY1RURcXHU2NjMxXFx1NjgyRlxcdTcxNUNcXHU3QTM2XFx1OTBDMVxcdTk4MEFcXHU0RTkxXFx1RjlDNVxcdTZBNTJcXHU2QjlFXFx1NkY5MFxcdTcxODlcXHU4MDE4XFx1ODJCOFxcdTg1NTNcIl0sXG4gICAgICBbXCJlYWExXCIsIFwiXFx1OTA0QlxcdTk2OTVcXHU5NkYyXFx1OTdGQlxcdTg1MUFcXHU5QjMxXFx1NEU5MFxcdTcxOEFcXHU5NkM0XFx1NTE0M1xcdTUzOUZcXHU1NEUxXFx1NTcxM1xcdTU3MTJcXHU1N0EzXFx1NUE5QlxcdTVBQzRcXHU1QkMzXFx1NjAyOFxcdTYxM0ZcXHU2M0Y0XFx1NkM4NVxcdTZEMzlcXHU2RTcyXFx1NkU5MFxcdTcyMzBcXHU3MzNGXFx1NzQ1N1xcdTgyRDFcXHU4ODgxXFx1OEY0NVxcdTkwNjBcXHVGOUM2XFx1OTY2MlxcdTk4NThcXHU5RDFCXFx1NjcwOFxcdThEOEFcXHU5MjVFXFx1NEY0RFxcdTUwNDlcXHU1MERFXFx1NTM3MVxcdTU3MERcXHU1OUQ0XFx1NUEwMVxcdTVDMDlcXHU2MTcwXFx1NjY5MFxcdTZFMkRcXHU3MjMyXFx1NzQ0QlxcdTdERUZcXHU4MEMzXFx1ODQwRVxcdTg0NjZcXHU4NTNGXFx1ODc1RlxcdTg4NUJcXHU4OTE4XFx1OEIwMlxcdTkwNTVcXHU5N0NCXFx1OUI0RlxcdTRFNzNcXHU0RjkxXFx1NTExMlxcdTUxNkFcXHVGOUM3XFx1NTUyRlxcdTU1QTlcXHU1QjdBXFx1NUJBNVxcdTVFN0NcXHU1RTdEXFx1NUVCRVxcdTYwQTBcXHU2MERGXFx1NjEwOFxcdTYxMDlcXHU2M0M0XFx1NjUzOFxcdTY3MDlcXHVGOUM4XFx1NjdENFxcdTY3REFcXHVGOUM5XFx1Njk2MVxcdTY5NjJcXHU2Q0I5XFx1NkQyN1xcdUY5Q0FcXHU2RTM4XFx1RjlDQlwiXSxcbiAgICAgIFtcImViYTFcIiwgXCJcXHU2RkUxXFx1NzMzNlxcdTczMzdcXHVGOUNDXFx1NzQ1Q1xcdTc1MzFcXHVGOUNEXFx1NzY1MlxcdUY5Q0VcXHVGOUNGXFx1N0RBRFxcdTgxRkVcXHU4NDM4XFx1ODhENVxcdThBOThcXHU4QURCXFx1OEFFRFxcdThFMzBcXHU4RTQyXFx1OTA0QVxcdTkwM0VcXHU5MDdBXFx1OTE0OVxcdTkxQzlcXHU5MzZFXFx1RjlEMFxcdUY5RDFcXHU1ODA5XFx1RjlEMlxcdTZCRDNcXHU4MDg5XFx1ODBCMlxcdUY5RDNcXHVGOUQ0XFx1NTE0MVxcdTU5NkJcXHU1QzM5XFx1RjlENVxcdUY5RDZcXHU2RjY0XFx1NzNBN1xcdTgwRTRcXHU4RDA3XFx1RjlEN1xcdTkyMTdcXHU5NThGXFx1RjlEOFxcdUY5RDlcXHVGOURBXFx1RjlEQlxcdTgwN0ZcXHU2MjBFXFx1NzAxQ1xcdTdENjhcXHU4NzhEXFx1RjlEQ1xcdTU3QTBcXHU2MDY5XFx1NjE0N1xcdTZCQjdcXHU4QUJFXFx1OTI4MFxcdTk2QjFcXHU0RTU5XFx1NTQxRlxcdTZERUJcXHU4NTJEXFx1OTY3MFxcdTk3RjNcXHU5OEVFXFx1NjNENlxcdTZDRTNcXHU5MDkxXFx1NTFERFxcdTYxQzlcXHU4MUJBXFx1OURGOVxcdTRGOURcXHU1MDFBXFx1NTEwMFxcdTVCOUNcXHU2MTBGXFx1NjFGRlxcdTY0RUNcXHU2OTA1XFx1NkJDNVxcdTc1OTFcXHU3N0UzXFx1N0ZBOVxcdTgyNjRcXHU4NThGXFx1ODdGQlxcdTg4NjNcXHU4QUJDXCJdLFxuICAgICAgW1wiZWNhMVwiLCBcIlxcdThCNzBcXHU5MUFCXFx1NEU4Q1xcdTRFRTVcXHU0RjBBXFx1RjlERFxcdUY5REVcXHU1OTM3XFx1NTlFOFxcdUY5REZcXHU1REYyXFx1NUYxQlxcdTVGNUJcXHU2MDIxXFx1RjlFMFxcdUY5RTFcXHVGOUUyXFx1RjlFM1xcdTcyM0VcXHU3M0U1XFx1RjlFNFxcdTc1NzBcXHU3NUNEXFx1RjlFNVxcdTc5RkJcXHVGOUU2XFx1ODAwQ1xcdTgwMzNcXHU4MDg0XFx1ODJFMVxcdTgzNTFcXHVGOUU3XFx1RjlFOFxcdThDQkRcXHU4Q0IzXFx1OTA4N1xcdUY5RTlcXHVGOUVBXFx1OThGNFxcdTk5MENcXHVGOUVCXFx1RjlFQ1xcdTcwMzdcXHU3NkNBXFx1N0ZDQVxcdTdGQ0NcXHU3RkZDXFx1OEIxQVxcdTRFQkFcXHU0RUMxXFx1NTIwM1xcdTUzNzBcXHVGOUVEXFx1NTRCRFxcdTU2RTBcXHU1OUZCXFx1NUJDNVxcdTVGMTVcXHU1RkNEXFx1NkU2RVxcdUY5RUVcXHVGOUVGXFx1N0Q2QVxcdTgzMzVcXHVGOUYwXFx1ODY5M1xcdThBOERcXHVGOUYxXFx1OTc2RFxcdTk3NzdcXHVGOUYyXFx1RjlGM1xcdTRFMDBcXHU0RjVBXFx1NEY3RVxcdTU4RjlcXHU2NUU1XFx1NkVBMlxcdTkwMzhcXHU5M0IwXFx1OTlCOVxcdTRFRkJcXHU1OEVDXFx1NTk4QVxcdTU5RDlcXHU2MDQxXFx1RjlGNFxcdUY5RjVcXHU3QTE0XFx1RjlGNlxcdTgzNEZcXHU4Q0MzXFx1NTE2NVxcdTUzNDRcIl0sXG4gICAgICBbXCJlZGExXCIsIFwiXFx1RjlGN1xcdUY5RjhcXHVGOUY5XFx1NEVDRFxcdTUyNjlcXHU1QjU1XFx1ODJCRlxcdTRFRDRcXHU1MjNBXFx1NTRBOFxcdTU5QzlcXHU1OUZGXFx1NUI1MFxcdTVCNTdcXHU1QjVDXFx1NjA2M1xcdTYxNDhcXHU2RUNCXFx1NzA5OVxcdTcxNkVcXHU3Mzg2XFx1NzRGN1xcdTc1QjVcXHU3OEMxXFx1N0QyQlxcdTgwMDVcXHU4MUVBXFx1ODMyOFxcdTg1MTdcXHU4NUM5XFx1OEFFRVxcdThDQzdcXHU5NkNDXFx1NEY1Q1xcdTUyRkFcXHU1NkJDXFx1NjVBQlxcdTY2MjhcXHU3MDdDXFx1NzBCOFxcdTcyMzVcXHU3REJEXFx1ODI4RFxcdTkxNENcXHU5NkMwXFx1OUQ3MlxcdTVCNzFcXHU2OEU3XFx1NkI5OFxcdTZGN0FcXHU3NkRFXFx1NUM5MVxcdTY2QUJcXHU2RjVCXFx1N0JCNFxcdTdDMkFcXHU4ODM2XFx1OTZEQ1xcdTRFMDhcXHU0RUQ3XFx1NTMyMFxcdTU4MzRcXHU1OEJCXFx1NThFRlxcdTU5NkNcXHU1QzA3XFx1NUUzM1xcdTVFODRcXHU1RjM1XFx1NjM4Q1xcdTY2QjJcXHU2NzU2XFx1NkExRlxcdTZBQTNcXHU2QjBDXFx1NkYzRlxcdTcyNDZcXHVGOUZBXFx1NzM1MFxcdTc0OEJcXHU3QUUwXFx1N0NBN1xcdTgxNzhcXHU4MURGXFx1ODFFN1xcdTgzOEFcXHU4NDZDXFx1ODUyM1xcdTg1OTRcXHU4NUNGXFx1ODhERFxcdThEMTNcXHU5MUFDXFx1OTU3N1wiXSxcbiAgICAgIFtcImVlYTFcIiwgXCJcXHU5NjlDXFx1NTE4RFxcdTU0QzlcXHU1NzI4XFx1NUJCMFxcdTYyNERcXHU2NzUwXFx1NjgzRFxcdTY4OTNcXHU2RTNEXFx1NkVEM1xcdTcwN0RcXHU3RTIxXFx1ODhDMVxcdThDQTFcXHU4RjA5XFx1OUY0QlxcdTlGNEVcXHU3MjJEXFx1N0I4RlxcdThBQ0RcXHU5MzFBXFx1NEY0N1xcdTRGNEVcXHU1MTMyXFx1NTQ4MFxcdTU5RDBcXHU1RTk1XFx1NjJCNVxcdTY3NzVcXHU2OTZFXFx1NkExN1xcdTZDQUVcXHU2RTFBXFx1NzJEOVxcdTczMkFcXHU3NUJEXFx1N0JCOFxcdTdEMzVcXHU4MkU3XFx1ODNGOVxcdTg0NTdcXHU4NUY3XFx1OEE1QlxcdThDQUZcXHU4RTg3XFx1OTAxOVxcdTkwQjhcXHU5NkNFXFx1OUY1RlxcdTUyRTNcXHU1NDBBXFx1NUFFMVxcdTVCQzJcXHU2NDU4XFx1NjU3NVxcdTZFRjRcXHU3MkM0XFx1RjlGQlxcdTc2ODRcXHU3QTREXFx1N0IxQlxcdTdDNERcXHU3RTNFXFx1N0ZERlxcdTgzN0JcXHU4QjJCXFx1OENDQVxcdThENjRcXHU4REUxXFx1OEU1RlxcdThGRUFcXHU4RkY5XFx1OTA2OVxcdTkzRDFcXHU0RjQzXFx1NEY3QVxcdTUwQjNcXHU1MTY4XFx1NTE3OFxcdTUyNERcXHU1MjZBXFx1NTg2MVxcdTU4N0NcXHU1OTYwXFx1NUMwOFxcdTVDNTVcXHU1RURCXFx1NjA5QlxcdTYyMzBcXHU2ODEzXFx1NkJCRlxcdTZDMDhcXHU2RkIxXCJdLFxuICAgICAgW1wiZWZhMVwiLCBcIlxcdTcxNEVcXHU3NDIwXFx1NzUzMFxcdTc1MzhcXHU3NTUxXFx1NzY3MlxcdTdCNENcXHU3QjhCXFx1N0JBRFxcdTdCQzZcXHU3RThGXFx1OEE2RVxcdThGM0VcXHU4RjQ5XFx1OTIzRlxcdTkyOTNcXHU5MzIyXFx1OTQyQlxcdTk2RkJcXHU5ODVBXFx1OTg2QlxcdTk5MUVcXHU1MjA3XFx1NjIyQVxcdTYyOThcXHU2RDU5XFx1NzY2NFxcdTdBQ0FcXHU3QkMwXFx1N0Q3NlxcdTUzNjBcXHU1Q0JFXFx1NUU5N1xcdTZGMzhcXHU3MEI5XFx1N0M5OFxcdTk3MTFcXHU5QjhFXFx1OUVERVxcdTYzQTVcXHU2NDdBXFx1ODc3NlxcdTRFMDFcXHU0RTk1XFx1NEVBRFxcdTUwNUNcXHU1MDc1XFx1NTQ0OFxcdTU5QzNcXHU1QjlBXFx1NUU0MFxcdTVFQURcXHU1RUY3XFx1NUY4MVxcdTYwQzVcXHU2MzNBXFx1NjUzRlxcdTY1NzRcXHU2NUNDXFx1NjY3NlxcdTY2NzhcXHU2N0ZFXFx1Njk2OFxcdTZBODlcXHU2QjYzXFx1NkM0MFxcdTZEQzBcXHU2REU4XFx1NkUxRlxcdTZFNUVcXHU3MDFFXFx1NzBBMVxcdTczOEVcXHU3M0ZEXFx1NzUzQVxcdTc3NUJcXHU3ODg3XFx1Nzk4RVxcdTdBMEJcXHU3QTdEXFx1N0NCRVxcdTdEOEVcXHU4MjQ3XFx1OEEwMlxcdThBRUFcXHU4QzlFXFx1OTEyRFxcdTkxNEFcXHU5MUQ4XFx1OTI2NlxcdTkyQ0NcXHU5MzIwXFx1OTcwNlxcdTk3NTZcIl0sXG4gICAgICBbXCJmMGExXCIsIFwiXFx1OTc1Q1xcdTk4MDJcXHU5RjBFXFx1NTIzNlxcdTUyOTFcXHU1NTdDXFx1NTgyNFxcdTVFMURcXHU1RjFGXFx1NjA4Q1xcdTYzRDBcXHU2OEFGXFx1NkZERlxcdTc5NkRcXHU3QjJDXFx1ODFDRFxcdTg1QkFcXHU4OEZEXFx1OEFGOFxcdThFNDRcXHU5MThEXFx1OTY2NFxcdTk2OUJcXHU5NzNEXFx1OTg0Q1xcdTlGNEFcXHU0RkNFXFx1NTE0NlxcdTUxQ0JcXHU1MkE5XFx1NTYzMlxcdTVGMTRcXHU1RjZCXFx1NjNBQVxcdTY0Q0RcXHU2NUU5XFx1NjY0MVxcdTY2RkFcXHU2NkY5XFx1NjcxRFxcdTY4OURcXHU2OEQ3XFx1NjlGRFxcdTZGMTVcXHU2RjZFXFx1NzE2N1xcdTcxRTVcXHU3MjJBXFx1NzRBQVxcdTc3M0FcXHU3OTU2XFx1Nzk1QVxcdTc5REZcXHU3QTIwXFx1N0E5NVxcdTdDOTdcXHU3Q0RGXFx1N0Q0NFxcdTdFNzBcXHU4MDg3XFx1ODVGQlxcdTg2QTRcXHU4QTU0XFx1OEFCRlxcdThEOTlcXHU4RTgxXFx1OTAyMFxcdTkwNkRcXHU5MUUzXFx1OTYzQlxcdTk2RDVcXHU5Q0U1XFx1NjVDRlxcdTdDMDdcXHU4REIzXFx1OTNDM1xcdTVCNThcXHU1QzBBXFx1NTM1MlxcdTYyRDlcXHU3MzFEXFx1NTAyN1xcdTVCOTdcXHU1RjlFXFx1NjBCMFxcdTYxNkJcXHU2OEQ1XFx1NkREOVxcdTc0MkVcXHU3QTJFXFx1N0Q0MlxcdTdEOUNcXHU3RTMxXFx1ODE2QlwiXSxcbiAgICAgIFtcImYxYTFcIiwgXCJcXHU4RTJBXFx1OEUzNVxcdTkzN0VcXHU5NDE4XFx1NEY1MFxcdTU3NTBcXHU1REU2XFx1NUVBN1xcdTYzMkJcXHU3RjZBXFx1NEUzQlxcdTRGNEZcXHU0RjhGXFx1NTA1QVxcdTU5RERcXHU4MEM0XFx1NTQ2QVxcdTU0NjhcXHU1NUZFXFx1NTk0RlxcdTVCOTlcXHU1RERFXFx1NUVEQVxcdTY2NURcXHU2NzMxXFx1NjdGMVxcdTY4MkFcXHU2Q0U4XFx1NkQzMlxcdTZFNEFcXHU2RjhEXFx1NzBCN1xcdTczRTBcXHU3NTg3XFx1N0M0Q1xcdTdEMDJcXHU3RDJDXFx1N0RBMlxcdTgyMUZcXHU4NkRCXFx1OEEzQlxcdThBODVcXHU4RDcwXFx1OEU4QVxcdThGMzNcXHU5MDMxXFx1OTE0RVxcdTkxNTJcXHU5NDQ0XFx1OTlEMFxcdTdBRjlcXHU3Q0E1XFx1NEZDQVxcdTUxMDFcXHU1MUM2XFx1NTdDOFxcdTVCRUZcXHU1Q0ZCXFx1NjY1OVxcdTZBM0RcXHU2RDVBXFx1NkU5NlxcdTZGRUNcXHU3MTBDXFx1NzU2RlxcdTdBRTNcXHU4ODIyXFx1OTAyMVxcdTkwNzVcXHU5NkNCXFx1OTlGRlxcdTgzMDFcXHU0RTJEXFx1NEVGMlxcdTg4NDZcXHU5MUNEXFx1NTM3RFxcdTZBREJcXHU2OTZCXFx1NkM0MVxcdTg0N0FcXHU1ODlFXFx1NjE4RVxcdTY2RkVcXHU2MkVGXFx1NzBERFxcdTc1MTFcXHU3NUM3XFx1N0U1MlxcdTg0QjhcXHU4QjQ5XFx1OEQwOFxcdTRFNEJcXHU1M0VBXCJdLFxuICAgICAgW1wiZjJhMVwiLCBcIlxcdTU0QUJcXHU1NzMwXFx1NTc0MFxcdTVGRDdcXHU2MzAxXFx1NjMwN1xcdTY0NkZcXHU2NTJGXFx1NjVFOFxcdTY2N0FcXHU2NzlEXFx1NjdCM1xcdTZCNjJcXHU2QzYwXFx1NkM5QVxcdTZGMkNcXHU3N0U1XFx1NzgyNVxcdTc5NDlcXHU3OTU3XFx1N0QxOVxcdTgwQTJcXHU4MTAyXFx1ODFGM1xcdTgyOURcXHU4MkI3XFx1ODcxOFxcdThBOENcXHVGOUZDXFx1OEQwNFxcdThEQkVcXHU5MDcyXFx1NzZGNFxcdTdBMTlcXHU3QTM3XFx1N0U1NFxcdTgwNzdcXHU1NTA3XFx1NTVENFxcdTU4NzVcXHU2MzJGXFx1NjQyMlxcdTY2NDlcXHU2NjRCXFx1Njg2RFxcdTY5OUJcXHU2Qjg0XFx1NkQyNVxcdTZFQjFcXHU3M0NEXFx1NzQ2OFxcdTc0QTFcXHU3NTVCXFx1NzVCOVxcdTc2RTFcXHU3NzFFXFx1Nzc4QlxcdTc5RTZcXHU3RTA5XFx1N0UxRFxcdTgxRkJcXHU4NTJGXFx1ODg5N1xcdThBM0FcXHU4Q0QxXFx1OEVFQlxcdThGQjBcXHU5MDMyXFx1OTNBRFxcdTk2NjNcXHU5NjczXFx1OTcwN1xcdTRGODRcXHU1M0YxXFx1NTlFQVxcdTVBQzlcXHU1RTE5XFx1Njg0RVxcdTc0QzZcXHU3NUJFXFx1NzlFOVxcdTdBOTJcXHU4MUEzXFx1ODZFRFxcdThDRUFcXHU4RENDXFx1OEZFRFxcdTY1OUZcXHU2NzE1XFx1RjlGRFxcdTU3RjdcXHU2RjU3XFx1N0RERFxcdThGMkZcIl0sXG4gICAgICBbXCJmM2ExXCIsIFwiXFx1OTNGNlxcdTk2QzZcXHU1RkI1XFx1NjFGMlxcdTZGODRcXHU0RTE0XFx1NEY5OFxcdTUwMUZcXHU1M0M5XFx1NTVERlxcdTVENkZcXHU1REVFXFx1NkIyMVxcdTZCNjRcXHU3OENCXFx1N0I5QVxcdUY5RkVcXHU4RTQ5XFx1OEVDQVxcdTkwNkVcXHU2MzQ5XFx1NjQzRVxcdTc3NDBcXHU3QTg0XFx1OTMyRlxcdTk0N0ZcXHU5RjZBXFx1NjRCMFxcdTZGQUZcXHU3MUU2XFx1NzRBOFxcdTc0REFcXHU3QUM0XFx1N0MxMlxcdTdFODJcXHU3Q0IyXFx1N0U5OFxcdThCOUFcXHU4RDBBXFx1OTQ3RFxcdTk5MTBcXHU5OTRDXFx1NTIzOVxcdTVCREZcXHU2NEU2XFx1NjcyRFxcdTdEMkVcXHU1MEVEXFx1NTNDM1xcdTU4NzlcXHU2MTU4XFx1NjE1OVxcdTYxRkFcXHU2NUFDXFx1N0FEOVxcdThCOTJcXHU4Qjk2XFx1NTAwOVxcdTUwMjFcXHU1Mjc1XFx1NTUzMVxcdTVBM0NcXHU1RUUwXFx1NUY3MFxcdTYxMzRcXHU2NTVFXFx1NjYwQ1xcdTY2MzZcXHU2NkEyXFx1NjlDRFxcdTZFQzRcXHU2RjMyXFx1NzMxNlxcdTc2MjFcXHU3QTkzXFx1ODEzOVxcdTgyNTlcXHU4M0Q2XFx1ODRCQ1xcdTUwQjVcXHU1N0YwXFx1NUJDMFxcdTVCRThcXHU1RjY5XFx1NjNBMVxcdTc4MjZcXHU3REI1XFx1ODNEQ1xcdTg1MjFcXHU5MUM3XFx1OTFGNVxcdTUxOEFcXHU2N0Y1XFx1N0I1NlwiXSxcbiAgICAgIFtcImY0YTFcIiwgXCJcXHU4Q0FDXFx1NTFDNFxcdTU5QkJcXHU2MEJEXFx1ODY1NVxcdTUwMUNcXHVGOUZGXFx1NTI1NFxcdTVDM0FcXHU2MTdEXFx1NjIxQVxcdTYyRDNcXHU2NEYyXFx1NjVBNVxcdTZFQ0NcXHU3NjIwXFx1ODEwQVxcdThFNjBcXHU5NjVGXFx1OTZCQlxcdTRFREZcXHU1MzQzXFx1NTU5OFxcdTU5MjlcXHU1REREXFx1NjRDNVxcdTZDQzlcXHU2REZBXFx1NzM5NFxcdTdBN0ZcXHU4MjFCXFx1ODVBNlxcdThDRTRcXHU4RTEwXFx1OTA3N1xcdTkxRTdcXHU5NUUxXFx1OTYyMVxcdTk3QzZcXHU1MUY4XFx1NTRGMlxcdTU1ODZcXHU1RkI5XFx1NjRBNFxcdTZGODhcXHU3REI0XFx1OEYxRlxcdThGNERcXHU5NDM1XFx1NTBDOVxcdTVDMTZcXHU2Q0JFXFx1NkRGQlxcdTc1MUJcXHU3N0JCXFx1N0MzRFxcdTdDNjRcXHU4QTc5XFx1OEFDMlxcdTU4MUVcXHU1OUJFXFx1NUUxNlxcdTYzNzdcXHU3MjUyXFx1NzU4QVxcdTc3NkJcXHU4QURDXFx1OENCQ1xcdThGMTJcXHU1RUYzXFx1NjY3NFxcdTZERjhcXHU4MDdEXFx1ODNDMVxcdThBQ0JcXHU5NzUxXFx1OUJENlxcdUZBMDBcXHU1MjQzXFx1NjZGRlxcdTZEOTVcXHU2RUVGXFx1N0RFMFxcdThBRTZcXHU5MDJFXFx1OTA1RVxcdTlBRDRcXHU1MjFEXFx1NTI3RlxcdTU0RThcXHU2MTk0XFx1NjI4NFxcdTYyREJcXHU2OEEyXCJdLFxuICAgICAgW1wiZjVhMVwiLCBcIlxcdTY5MTJcXHU2OTVBXFx1NkEzNVxcdTcwOTJcXHU3MTI2XFx1Nzg1RFxcdTc5MDFcXHU3OTBFXFx1NzlEMlxcdTdBMERcXHU4MDk2XFx1ODI3OFxcdTgyRDVcXHU4MzQ5XFx1ODU0OVxcdThDODJcXHU4RDg1XFx1OTE2MlxcdTkxOEJcXHU5MUFFXFx1NEZDM1xcdTU2RDFcXHU3MUVEXFx1NzdEN1xcdTg3MDBcXHU4OUY4XFx1NUJGOFxcdTVGRDZcXHU2NzUxXFx1OTBBOFxcdTUzRTJcXHU1ODVBXFx1NUJGNVxcdTYwQTRcXHU2MTgxXFx1NjQ2MFxcdTdFM0RcXHU4MDcwXFx1ODUyNVxcdTkyODNcXHU2NEFFXFx1NTBBQ1xcdTVEMTRcXHU2NzAwXFx1NTg5Q1xcdTYyQkRcXHU2M0E4XFx1NjkwRVxcdTY5NzhcXHU2QTFFXFx1NkU2QlxcdTc2QkFcXHU3OUNCXFx1ODJCQlxcdTg0MjlcXHU4QUNGXFx1OERBOFxcdThGRkRcXHU5MTEyXFx1OTE0QlxcdTkxOUNcXHU5MzEwXFx1OTMxOFxcdTkzOUFcXHU5NkRCXFx1OUEzNlxcdTlDMERcXHU0RTExXFx1NzU1Q1xcdTc5NURcXHU3QUZBXFx1N0I1MVxcdTdCQzlcXHU3RTJFXFx1ODRDNFxcdThFNTlcXHU4RTc0XFx1OEVGOFxcdTkwMTBcXHU2NjI1XFx1NjkzRlxcdTc0NDNcXHU1MUZBXFx1NjcyRVxcdTlFRENcXHU1MTQ1XFx1NUZFMFxcdTZDOTZcXHU4N0YyXFx1ODg1RFxcdTg4NzdcXHU2MEI0XFx1ODFCNVxcdTg0MDNcIl0sXG4gICAgICBbXCJmNmExXCIsIFwiXFx1OEQwNVxcdTUzRDZcXHU1NDM5XFx1NTYzNFxcdTVBMzZcXHU1QzMxXFx1NzA4QVxcdTdGRTBcXHU4MDVBXFx1ODEwNlxcdTgxRURcXHU4REEzXFx1OTE4OVxcdTlBNUZcXHU5REYyXFx1NTA3NFxcdTRFQzRcXHU1M0EwXFx1NjBGQlxcdTZFMkNcXHU1QzY0XFx1NEY4OFxcdTUwMjRcXHU1NUU0XFx1NUNEOVxcdTVFNUZcXHU2MDY1XFx1Njg5NFxcdTZDQkJcXHU2REM0XFx1NzFCRVxcdTc1RDRcXHU3NUY0XFx1NzY2MVxcdTdBMUFcXHU3QTQ5XFx1N0RDN1xcdTdERkJcXHU3RjZFXFx1ODFGNFxcdTg2QTlcXHU4RjFDXFx1OTZDOVxcdTk5QjNcXHU5RjUyXFx1NTI0N1xcdTUyQzVcXHU5OEVEXFx1ODlBQVxcdTRFMDNcXHU2N0QyXFx1NkYwNlxcdTRGQjVcXHU1QkUyXFx1Njc5NVxcdTZDODhcXHU2RDc4XFx1NzQxQlxcdTc4MjdcXHU5MUREXFx1OTM3Q1xcdTg3QzRcXHU3OUU0XFx1N0EzMVxcdTVGRUJcXHU0RUQ2XFx1NTRBNFxcdTU1M0VcXHU1OEFFXFx1NTlBNVxcdTYwRjBcXHU2MjUzXFx1NjJENlxcdTY3MzZcXHU2OTU1XFx1ODIzNVxcdTk2NDBcXHU5OUIxXFx1OTlERFxcdTUwMkNcXHU1MzUzXFx1NTU0NFxcdTU3N0NcXHVGQTAxXFx1NjI1OFxcdUZBMDJcXHU2NEUyXFx1NjY2QlxcdTY3RERcXHU2RkMxXFx1NkZFRlxcdTc0MjJcXHU3NDM4XFx1OEExN1wiXSxcbiAgICAgIFtcImY3YTFcIiwgXCJcXHU5NDM4XFx1NTQ1MVxcdTU2MDZcXHU1NzY2XFx1NUY0OFxcdTYxOUFcXHU2QjRFXFx1NzA1OFxcdTcwQURcXHU3REJCXFx1OEE5NVxcdTU5NkFcXHU4MTJCXFx1NjNBMlxcdTc3MDhcXHU4MDNEXFx1OENBQVxcdTU4NTRcXHU2NDJEXFx1NjlCQlxcdTVCOTVcXHU1RTExXFx1NkU2RlxcdUZBMDNcXHU4NTY5XFx1NTE0Q1xcdTUzRjBcXHU1OTJBXFx1NjAyMFxcdTYxNEJcXHU2Qjg2XFx1NkM3MFxcdTZDRjBcXHU3QjFFXFx1ODBDRVxcdTgyRDRcXHU4REM2XFx1OTBCMFxcdTk4QjFcXHVGQTA0XFx1NjRDN1xcdTZGQTRcXHU2NDkxXFx1NjUwNFxcdTUxNEVcXHU1NDEwXFx1NTcxRlxcdThBMEVcXHU2MTVGXFx1Njg3NlxcdUZBMDVcXHU3NURCXFx1N0I1MlxcdTdENzFcXHU5MDFBXFx1NTgwNlxcdTY5Q0NcXHU4MTdGXFx1ODkyQVxcdTkwMDBcXHU5ODM5XFx1NTA3OFxcdTU5NTdcXHU1OUFDXFx1NjI5NVxcdTkwMEZcXHU5QjJBXFx1NjE1RFxcdTcyNzlcXHU5NUQ2XFx1NTc2MVxcdTVBNDZcXHU1REY0XFx1NjI4QVxcdTY0QURcXHU2NEZBXFx1Njc3N1xcdTZDRTJcXHU2RDNFXFx1NzIyQ1xcdTc0MzZcXHU3ODM0XFx1N0Y3N1xcdTgyQURcXHU4RERCXFx1OTgxN1xcdTUyMjRcXHU1NzQyXFx1Njc3RlxcdTcyNDhcXHU3NEUzXFx1OENBOVxcdThGQTZcXHU5MjExXCJdLFxuICAgICAgW1wiZjhhMVwiLCBcIlxcdTk2MkFcXHU1MTZCXFx1NTNFRFxcdTYzNENcXHU0RjY5XFx1NTUwNFxcdTYwOTZcXHU2NTU3XFx1NkM5QlxcdTZEN0ZcXHU3MjRDXFx1NzJGRFxcdTdBMTdcXHU4OTg3XFx1OEM5RFxcdTVGNkRcXHU2RjhFXFx1NzBGOVxcdTgxQThcXHU2MTBFXFx1NEZCRlxcdTUwNEZcXHU2MjQxXFx1NzI0N1xcdTdCQzdcXHU3REU4XFx1N0ZFOVxcdTkwNERcXHU5N0FEXFx1OUExOVxcdThDQjZcXHU1NzZBXFx1NUU3M1xcdTY3QjBcXHU4NDBEXFx1OEE1NVxcdTU0MjBcXHU1QjE2XFx1NUU2M1xcdTVFRTJcXHU1RjBBXFx1NjU4M1xcdTgwQkFcXHU4NTNEXFx1OTU4OVxcdTk2NUJcXHU0RjQ4XFx1NTMwNVxcdTUzMERcXHU1MzBGXFx1NTQ4NlxcdTU0RkFcXHU1NzAzXFx1NUUwM1xcdTYwMTZcXHU2MjlCXFx1NjJCMVxcdTYzNTVcXHVGQTA2XFx1NkNFMVxcdTZENjZcXHU3NUIxXFx1NzgzMlxcdTgwREVcXHU4MTJGXFx1ODJERVxcdTg0NjFcXHU4NEIyXFx1ODg4RFxcdTg5MTJcXHU5MDBCXFx1OTJFQVxcdTk4RkRcXHU5QjkxXFx1NUU0NVxcdTY2QjRcXHU2NkREXFx1NzAxMVxcdTcyMDZcXHVGQTA3XFx1NEZGNVxcdTUyN0RcXHU1RjZBXFx1NjE1M1xcdTY3NTNcXHU2QTE5XFx1NkYwMlxcdTc0RTJcXHU3OTY4XFx1ODg2OFxcdThDNzlcXHU5OEM3XFx1OThDNFxcdTlBNDNcIl0sXG4gICAgICBbXCJmOWExXCIsIFwiXFx1NTRDMVxcdTdBMUZcXHU2OTUzXFx1OEFGN1xcdThDNEFcXHU5OEE4XFx1OTlBRVxcdTVGN0NcXHU2MkFCXFx1NzVCMlxcdTc2QUVcXHU4OEFCXFx1OTA3RlxcdTk2NDJcXHU1MzM5XFx1NUYzQ1xcdTVGQzVcXHU2Q0NDXFx1NzNDQ1xcdTc1NjJcXHU3NThCXFx1N0I0NlxcdTgyRkVcXHU5OTlEXFx1NEU0RlxcdTkwM0NcXHU0RTBCXFx1NEY1NVxcdTUzQTZcXHU1OTBGXFx1NUVDOFxcdTY2MzBcXHU2Q0IzXFx1NzQ1NVxcdTgzNzdcXHU4NzY2XFx1OENDMFxcdTkwNTBcXHU5NzFFXFx1OUMxNVxcdTU4RDFcXHU1Qjc4XFx1ODY1MFxcdThCMTRcXHU5REI0XFx1NUJEMlxcdTYwNjhcXHU2MDhEXFx1NjVGMVxcdTZDNTdcXHU2RjIyXFx1NkZBM1xcdTcwMUFcXHU3RjU1XFx1N0ZGMFxcdTk1OTFcXHU5NTkyXFx1OTY1MFxcdTk3RDNcXHU1MjcyXFx1OEY0NFxcdTUxRkRcXHU1NDJCXFx1NTRCOFxcdTU1NjNcXHU1NThBXFx1NkFCQlxcdTZEQjVcXHU3REQ4XFx1ODI2NlxcdTkyOUNcXHU5Njc3XFx1OUU3OVxcdTU0MDhcXHU1NEM4XFx1NzZEMlxcdTg2RTRcXHU5NUE0XFx1OTVENFxcdTk2NUNcXHU0RUEyXFx1NEYwOVxcdTU5RUVcXHU1QUU2XFx1NURGN1xcdTYwNTJcXHU2Mjk3XFx1Njc2RFxcdTY4NDFcXHU2Qzg2XFx1NkUyRlxcdTdGMzhcXHU4MDlCXFx1ODIyQVwiXSxcbiAgICAgIFtcImZhYTFcIiwgXCJcXHVGQTA4XFx1RkEwOVxcdTk4MDVcXHU0RUE1XFx1NTA1NVxcdTU0QjNcXHU1NzkzXFx1NTk1QVxcdTVCNjlcXHU1QkIzXFx1NjFDOFxcdTY5NzdcXHU2RDc3XFx1NzAyM1xcdTg3RjlcXHU4OUUzXFx1OEE3MlxcdThBRTdcXHU5MDgyXFx1OTlFRFxcdTlBQjhcXHU1MkJFXFx1NjgzOFxcdTUwMTZcXHU1RTc4XFx1Njc0RlxcdTgzNDdcXHU4ODRDXFx1NEVBQlxcdTU0MTFcXHU1NkFFXFx1NzNFNlxcdTkxMTVcXHU5N0ZGXFx1OTkwOVxcdTk5NTdcXHU5OTk5XFx1NTY1M1xcdTU4OUZcXHU4NjVCXFx1OEEzMVxcdTYxQjJcXHU2QUY2XFx1NzM3QlxcdThFRDJcXHU2QjQ3XFx1OTZBQVxcdTlBNTdcXHU1OTU1XFx1NzIwMFxcdThENkJcXHU5NzY5XFx1NEZENFxcdTVDRjRcXHU1RjI2XFx1NjFGOFxcdTY2NUJcXHU2Q0VCXFx1NzBBQlxcdTczODRcXHU3M0I5XFx1NzNGRVxcdTc3MjlcXHU3NzREXFx1N0Q0M1xcdTdENjJcXHU3RTIzXFx1ODIzN1xcdTg4NTJcXHVGQTBBXFx1OENFMlxcdTkyNDlcXHU5ODZGXFx1NUI1MVxcdTdBNzRcXHU4ODQwXFx1OTgwMVxcdTVBQ0NcXHU0RkUwXFx1NTM1NFxcdTU5M0VcXHU1Q0ZEXFx1NjMzRVxcdTZENzlcXHU3MkY5XFx1ODEwNVxcdTgxMDdcXHU4M0EyXFx1OTJDRlxcdTk4MzBcXHU0RUE4XFx1NTE0NFxcdTUyMTFcXHU1NzhCXCJdLFxuICAgICAgW1wiZmJhMVwiLCBcIlxcdTVGNjJcXHU2Q0MyXFx1NkVDRVxcdTcwMDVcXHU3MDUwXFx1NzBBRlxcdTcxOTJcXHU3M0U5XFx1NzQ2OVxcdTgzNEFcXHU4N0EyXFx1ODg2MVxcdTkwMDhcXHU5MEEyXFx1OTNBM1xcdTk5QThcXHU1MTZFXFx1NUY1N1xcdTYwRTBcXHU2MTY3XFx1NjZCM1xcdTg1NTlcXHU4RTRBXFx1OTFBRlxcdTk3OEJcXHU0RTRFXFx1NEU5MlxcdTU0N0NcXHU1OEQ1XFx1NThGQVxcdTU5N0RcXHU1Q0I1XFx1NUYyN1xcdTYyMzZcXHU2MjQ4XFx1NjYwQVxcdTY2NjdcXHU2QkVCXFx1NkQ2OVxcdTZEQ0ZcXHU2RTU2XFx1NkVGOFxcdTZGOTRcXHU2RkUwXFx1NkZFOVxcdTcwNURcXHU3MkQwXFx1NzQyNVxcdTc0NUFcXHU3NEUwXFx1NzY5M1xcdTc5NUNcXHU3Q0NBXFx1N0UxRVxcdTgwRTFcXHU4MkE2XFx1ODQ2QlxcdTg0QkZcXHU4NjRFXFx1ODY1RlxcdTg3NzRcXHU4Qjc3XFx1OEM2QVxcdTkzQUNcXHU5ODAwXFx1OTg2NVxcdTYwRDFcXHU2MjE2XFx1OTE3N1xcdTVBNUFcXHU2NjBGXFx1NkRGN1xcdTZFM0VcXHU3NDNGXFx1OUI0MlxcdTVGRkRcXHU2MERBXFx1N0IwRlxcdTU0QzRcXHU1RjE4XFx1NkM1RVxcdTZDRDNcXHU2RDJBXFx1NzBEOFxcdTdEMDVcXHU4Njc5XFx1OEEwQ1xcdTlEM0JcXHU1MzE2XFx1NTQ4Q1xcdTVCMDVcXHU2QTNBXFx1NzA2QlxcdTc1NzVcIl0sXG4gICAgICBbXCJmY2ExXCIsIFwiXFx1Nzk4RFxcdTc5QkVcXHU4MkIxXFx1ODNFRlxcdThBNzFcXHU4QjQxXFx1OENBOFxcdTk3NzRcXHVGQTBCXFx1NjRGNFxcdTY1MkJcXHU3OEJBXFx1NzhCQlxcdTdBNkJcXHU0RTM4XFx1NTU5QVxcdTU5NTBcXHU1QkE2XFx1NUU3QlxcdTYwQTNcXHU2M0RCXFx1NkI2MVxcdTY2NjVcXHU2ODUzXFx1NkUxOVxcdTcxNjVcXHU3NEIwXFx1N0QwOFxcdTkwODRcXHU5QTY5XFx1OUMyNVxcdTZEM0JcXHU2RUQxXFx1NzMzRVxcdThDNDFcXHU5NUNBXFx1NTFGMFxcdTVFNENcXHU1RkE4XFx1NjA0RFxcdTYwRjZcXHU2MTMwXFx1NjE0Q1xcdTY2NDNcXHU2NjQ0XFx1NjlBNVxcdTZDQzFcXHU2RTVGXFx1NkVDOVxcdTZGNjJcXHU3MTRDXFx1NzQ5Q1xcdTc2ODdcXHU3QkMxXFx1N0MyN1xcdTgzNTJcXHU4NzU3XFx1OTA1MVxcdTk2OERcXHU5RUMzXFx1NTMyRlxcdTU2REVcXHU1RUZCXFx1NUY4QVxcdTYwNjJcXHU2MDk0XFx1NjFGN1xcdTY2NjZcXHU2NzAzXFx1NkE5Q1xcdTZERUVcXHU2RkFFXFx1NzA3MFxcdTczNkFcXHU3RTZBXFx1ODFCRVxcdTgzMzRcXHU4NkQ0XFx1OEFBOFxcdThDQzRcXHU1MjgzXFx1NzM3MlxcdTVCOTZcXHU2QTZCXFx1OTQwNFxcdTU0RUVcXHU1Njg2XFx1NUI1RFxcdTY1NDhcXHU2NTg1XFx1NjZDOVxcdTY4OUZcXHU2RDhEXFx1NkRDNlwiXSxcbiAgICAgIFtcImZkYTFcIiwgXCJcXHU3MjNCXFx1ODBCNFxcdTkxNzVcXHU5QTREXFx1NEZBRlxcdTUwMTlcXHU1MzlBXFx1NTQwRVxcdTU0M0NcXHU1NTg5XFx1NTVDNVxcdTVFM0ZcXHU1RjhDXFx1NjczRFxcdTcxNjZcXHU3M0REXFx1OTAwNVxcdTUyREJcXHU1MkYzXFx1NTg2NFxcdTU4Q0VcXHU3MTA0XFx1NzE4RlxcdTcxRkJcXHU4NUIwXFx1OEExM1xcdTY2ODhcXHU4NUE4XFx1NTVBN1xcdTY2ODRcXHU3MTRBXFx1ODQzMVxcdTUzNDlcXHU1NTk5XFx1NkJDMVxcdTVGNTlcXHU1RkJEXFx1NjNFRVxcdTY2ODlcXHU3MTQ3XFx1OEFGMVxcdThGMURcXHU5RUJFXFx1NEYxMVxcdTY0M0FcXHU3MENCXFx1NzU2NlxcdTg2NjdcXHU2MDY0XFx1OEI0RVxcdTlERjhcXHU1MTQ3XFx1NTFGNlxcdTUzMDhcXHU2RDM2XFx1ODBGOFxcdTlFRDFcXHU2NjE1XFx1NkIyM1xcdTcwOThcXHU3NUQ1XFx1NTQwM1xcdTVDNzlcXHU3RDA3XFx1OEExNlxcdTZCMjBcXHU2QjNEXFx1NkI0NlxcdTU0MzhcXHU2MDcwXFx1NkQzRFxcdTdGRDVcXHU4MjA4XFx1NTBENlxcdTUxREVcXHU1NTlDXFx1NTY2QlxcdTU2Q0RcXHU1OUVDXFx1NUIwOVxcdTVFMENcXHU2MTk5XFx1NjE5OFxcdTYyMzFcXHU2NjVFXFx1NjZFNlxcdTcxOTlcXHU3MUI5XFx1NzFCQVxcdTcyQTdcXHU3OUE3XFx1N0EwMFxcdTdGQjJcXHU4QTcwXCJdXG4gICAgXTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2NwOTUwLmpzb25cbnZhciByZXF1aXJlX2NwOTUwID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvY3A5NTAuanNvblwiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gW1xuICAgICAgW1wiMFwiLCBcIlxcMFwiLCAxMjddLFxuICAgICAgW1wiYTE0MFwiLCBcIlxcdTMwMDBcXHVGRjBDXFx1MzAwMVxcdTMwMDJcXHVGRjBFXFx1MjAyN1xcdUZGMUJcXHVGRjFBXFx1RkYxRlxcdUZGMDFcXHVGRTMwXFx1MjAyNlxcdTIwMjVcXHVGRTUwXFx1RkU1MVxcdUZFNTJcXHhCN1xcdUZFNTRcXHVGRTU1XFx1RkU1NlxcdUZFNTdcXHVGRjVDXFx1MjAxM1xcdUZFMzFcXHUyMDE0XFx1RkUzM1xcdTI1NzRcXHVGRTM0XFx1RkU0RlxcdUZGMDhcXHVGRjA5XFx1RkUzNVxcdUZFMzZcXHVGRjVCXFx1RkY1RFxcdUZFMzdcXHVGRTM4XFx1MzAxNFxcdTMwMTVcXHVGRTM5XFx1RkUzQVxcdTMwMTBcXHUzMDExXFx1RkUzQlxcdUZFM0NcXHUzMDBBXFx1MzAwQlxcdUZFM0RcXHVGRTNFXFx1MzAwOFxcdTMwMDlcXHVGRTNGXFx1RkU0MFxcdTMwMENcXHUzMDBEXFx1RkU0MVxcdUZFNDJcXHUzMDBFXFx1MzAwRlxcdUZFNDNcXHVGRTQ0XFx1RkU1OVxcdUZFNUFcIl0sXG4gICAgICBbXCJhMWExXCIsIFwiXFx1RkU1QlxcdUZFNUNcXHVGRTVEXFx1RkU1RVxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUzMDFEXFx1MzAxRVxcdTIwMzVcXHUyMDMyXFx1RkYwM1xcdUZGMDZcXHVGRjBBXFx1MjAzQlxceEE3XFx1MzAwM1xcdTI1Q0JcXHUyNUNGXFx1MjVCM1xcdTI1QjJcXHUyNUNFXFx1MjYwNlxcdTI2MDVcXHUyNUM3XFx1MjVDNlxcdTI1QTFcXHUyNUEwXFx1MjVCRFxcdTI1QkNcXHUzMkEzXFx1MjEwNVxceEFGXFx1RkZFM1xcdUZGM0ZcXHUwMkNEXFx1RkU0OVxcdUZFNEFcXHVGRTREXFx1RkU0RVxcdUZFNEJcXHVGRTRDXFx1RkU1RlxcdUZFNjBcXHVGRTYxXFx1RkYwQlxcdUZGMERcXHhEN1xceEY3XFx4QjFcXHUyMjFBXFx1RkYxQ1xcdUZGMUVcXHVGRjFEXFx1MjI2NlxcdTIyNjdcXHUyMjYwXFx1MjIxRVxcdTIyNTJcXHUyMjYxXFx1RkU2MlwiLCA0LCBcIlxcdUZGNUVcXHUyMjI5XFx1MjIyQVxcdTIyQTVcXHUyMjIwXFx1MjIxRlxcdTIyQkZcXHUzM0QyXFx1MzNEMVxcdTIyMkJcXHUyMjJFXFx1MjIzNVxcdTIyMzRcXHUyNjQwXFx1MjY0MlxcdTIyOTVcXHUyMjk5XFx1MjE5MVxcdTIxOTNcXHUyMTkwXFx1MjE5MlxcdTIxOTZcXHUyMTk3XFx1MjE5OVxcdTIxOThcXHUyMjI1XFx1MjIyM1xcdUZGMEZcIl0sXG4gICAgICBbXCJhMjQwXCIsIFwiXFx1RkYzQ1xcdTIyMTVcXHVGRTY4XFx1RkYwNFxcdUZGRTVcXHUzMDEyXFx1RkZFMFxcdUZGRTFcXHVGRjA1XFx1RkYyMFxcdTIxMDNcXHUyMTA5XFx1RkU2OVxcdUZFNkFcXHVGRTZCXFx1MzNENVxcdTMzOUNcXHUzMzlEXFx1MzM5RVxcdTMzQ0VcXHUzM0ExXFx1MzM4RVxcdTMzOEZcXHUzM0M0XFx4QjBcXHU1MTU5XFx1NTE1QlxcdTUxNUVcXHU1MTVEXFx1NTE2MVxcdTUxNjNcXHU1NUU3XFx1NzRFOVxcdTdDQ0VcXHUyNTgxXCIsIDcsIFwiXFx1MjU4RlxcdTI1OEVcXHUyNThEXFx1MjU4Q1xcdTI1OEJcXHUyNThBXFx1MjU4OVxcdTI1M0NcXHUyNTM0XFx1MjUyQ1xcdTI1MjRcXHUyNTFDXFx1MjU5NFxcdTI1MDBcXHUyNTAyXFx1MjU5NVxcdTI1MENcXHUyNTEwXFx1MjUxNFxcdTI1MThcXHUyNTZEXCJdLFxuICAgICAgW1wiYTJhMVwiLCBcIlxcdTI1NkVcXHUyNTcwXFx1MjU2RlxcdTI1NTBcXHUyNTVFXFx1MjU2QVxcdTI1NjFcXHUyNUUyXFx1MjVFM1xcdTI1RTVcXHUyNUU0XFx1MjU3MVxcdTI1NzJcXHUyNTczXFx1RkYxMFwiLCA5LCBcIlxcdTIxNjBcIiwgOSwgXCJcXHUzMDIxXCIsIDgsIFwiXFx1NTM0MVxcdTUzNDRcXHU1MzQ1XFx1RkYyMVwiLCAyNSwgXCJcXHVGRjQxXCIsIDIxXSxcbiAgICAgIFtcImEzNDBcIiwgXCJcXHVGRjU3XFx1RkY1OFxcdUZGNTlcXHVGRjVBXFx1MDM5MVwiLCAxNiwgXCJcXHUwM0EzXCIsIDYsIFwiXFx1MDNCMVwiLCAxNiwgXCJcXHUwM0MzXCIsIDYsIFwiXFx1MzEwNVwiLCAxMF0sXG4gICAgICBbXCJhM2ExXCIsIFwiXFx1MzExMFwiLCAyNSwgXCJcXHUwMkQ5XFx1MDJDOVxcdTAyQ0FcXHUwMkM3XFx1MDJDQlwiXSxcbiAgICAgIFtcImEzZTFcIiwgXCJcXHUyMEFDXCJdLFxuICAgICAgW1wiYTQ0MFwiLCBcIlxcdTRFMDBcXHU0RTU5XFx1NEUwMVxcdTRFMDNcXHU0RTQzXFx1NEU1RFxcdTRFODZcXHU0RThDXFx1NEVCQVxcdTUxM0ZcXHU1MTY1XFx1NTE2QlxcdTUxRTBcXHU1MjAwXFx1NTIwMVxcdTUyOUJcXHU1MzE1XFx1NTM0MVxcdTUzNUNcXHU1M0M4XFx1NEUwOVxcdTRFMEJcXHU0RTA4XFx1NEUwQVxcdTRFMkJcXHU0RTM4XFx1NTFFMVxcdTRFNDVcXHU0RTQ4XFx1NEU1RlxcdTRFNUVcXHU0RThFXFx1NEVBMVxcdTUxNDBcXHU1MjAzXFx1NTJGQVxcdTUzNDNcXHU1M0M5XFx1NTNFM1xcdTU3MUZcXHU1OEVCXFx1NTkxNVxcdTU5MjdcXHU1OTczXFx1NUI1MFxcdTVCNTFcXHU1QjUzXFx1NUJGOFxcdTVDMEZcXHU1QzIyXFx1NUMzOFxcdTVDNzFcXHU1REREXFx1NURFNVxcdTVERjFcXHU1REYyXFx1NURGM1xcdTVERkVcXHU1RTcyXFx1NUVGRVxcdTVGMEJcXHU1RjEzXFx1NjI0RFwiXSxcbiAgICAgIFtcImE0YTFcIiwgXCJcXHU0RTExXFx1NEUxMFxcdTRFMERcXHU0RTJEXFx1NEUzMFxcdTRFMzlcXHU0RTRCXFx1NUMzOVxcdTRFODhcXHU0RTkxXFx1NEU5NVxcdTRFOTJcXHU0RTk0XFx1NEVBMlxcdTRFQzFcXHU0RUMwXFx1NEVDM1xcdTRFQzZcXHU0RUM3XFx1NEVDRFxcdTRFQ0FcXHU0RUNCXFx1NEVDNFxcdTUxNDNcXHU1MTQxXFx1NTE2N1xcdTUxNkRcXHU1MTZFXFx1NTE2Q1xcdTUxOTdcXHU1MUY2XFx1NTIwNlxcdTUyMDdcXHU1MjA4XFx1NTJGQlxcdTUyRkVcXHU1MkZGXFx1NTMxNlxcdTUzMzlcXHU1MzQ4XFx1NTM0N1xcdTUzNDVcXHU1MzVFXFx1NTM4NFxcdTUzQ0JcXHU1M0NBXFx1NTNDRFxcdTU4RUNcXHU1OTI5XFx1NTkyQlxcdTU5MkFcXHU1OTJEXFx1NUI1NFxcdTVDMTFcXHU1QzI0XFx1NUMzQVxcdTVDNkZcXHU1REY0XFx1NUU3QlxcdTVFRkZcXHU1RjE0XFx1NUYxNVxcdTVGQzNcXHU2MjA4XFx1NjIzNlxcdTYyNEJcXHU2MjRFXFx1NjUyRlxcdTY1ODdcXHU2NTk3XFx1NjVBNFxcdTY1QjlcXHU2NUU1XFx1NjZGMFxcdTY3MDhcXHU2NzI4XFx1NkIyMFxcdTZCNjJcXHU2Qjc5XFx1NkJDQlxcdTZCRDRcXHU2QkRCXFx1NkMwRlxcdTZDMzRcXHU3MDZCXFx1NzIyQVxcdTcyMzZcXHU3MjNCXFx1NzI0N1xcdTcyNTlcXHU3MjVCXFx1NzJBQ1xcdTczOEJcXHU0RTE5XCJdLFxuICAgICAgW1wiYTU0MFwiLCBcIlxcdTRFMTZcXHU0RTE1XFx1NEUxNFxcdTRFMThcXHU0RTNCXFx1NEU0RFxcdTRFNEZcXHU0RTRFXFx1NEVFNVxcdTRFRDhcXHU0RUQ0XFx1NEVENVxcdTRFRDZcXHU0RUQ3XFx1NEVFM1xcdTRFRTRcXHU0RUQ5XFx1NEVERVxcdTUxNDVcXHU1MTQ0XFx1NTE4OVxcdTUxOEFcXHU1MUFDXFx1NTFGOVxcdTUxRkFcXHU1MUY4XFx1NTIwQVxcdTUyQTBcXHU1MjlGXFx1NTMwNVxcdTUzMDZcXHU1MzE3XFx1NTMxRFxcdTRFREZcXHU1MzRBXFx1NTM0OVxcdTUzNjFcXHU1MzYwXFx1NTM2RlxcdTUzNkVcXHU1M0JCXFx1NTNFRlxcdTUzRTRcXHU1M0YzXFx1NTNFQ1xcdTUzRUVcXHU1M0U5XFx1NTNFOFxcdTUzRkNcXHU1M0Y4XFx1NTNGNVxcdTUzRUJcXHU1M0U2XFx1NTNFQVxcdTUzRjJcXHU1M0YxXFx1NTNGMFxcdTUzRTVcXHU1M0VEXFx1NTNGQlxcdTU2REJcXHU1NkRBXFx1NTkxNlwiXSxcbiAgICAgIFtcImE1YTFcIiwgXCJcXHU1OTJFXFx1NTkzMVxcdTU5NzRcXHU1OTc2XFx1NUI1NVxcdTVCODNcXHU1QzNDXFx1NURFOFxcdTVERTdcXHU1REU2XFx1NUUwMlxcdTVFMDNcXHU1RTczXFx1NUU3Q1xcdTVGMDFcXHU1RjE4XFx1NUYxN1xcdTVGQzVcXHU2MjBBXFx1NjI1M1xcdTYyNTRcXHU2MjUyXFx1NjI1MVxcdTY1QTVcXHU2NUU2XFx1NjcyRVxcdTY3MkNcXHU2NzJBXFx1NjcyQlxcdTY3MkRcXHU2QjYzXFx1NkJDRFxcdTZDMTFcXHU2QzEwXFx1NkMzOFxcdTZDNDFcXHU2QzQwXFx1NkMzRVxcdTcyQUZcXHU3Mzg0XFx1NzM4OVxcdTc0RENcXHU3NEU2XFx1NzUxOFxcdTc1MUZcXHU3NTI4XFx1NzUyOVxcdTc1MzBcXHU3NTMxXFx1NzUzMlxcdTc1MzNcXHU3NThCXFx1NzY3RFxcdTc2QUVcXHU3NkJGXFx1NzZFRVxcdTc3REJcXHU3N0UyXFx1NzdGM1xcdTc5M0FcXHU3OUJFXFx1N0E3NFxcdTdBQ0JcXHU0RTFFXFx1NEUxRlxcdTRFNTJcXHU0RTUzXFx1NEU2OVxcdTRFOTlcXHU0RUE0XFx1NEVBNlxcdTRFQTVcXHU0RUZGXFx1NEYwOVxcdTRGMTlcXHU0RjBBXFx1NEYxNVxcdTRGMERcXHU0RjEwXFx1NEYxMVxcdTRGMEZcXHU0RUYyXFx1NEVGNlxcdTRFRkJcXHU0RUYwXFx1NEVGM1xcdTRFRkRcXHU0RjAxXFx1NEYwQlxcdTUxNDlcXHU1MTQ3XFx1NTE0NlxcdTUxNDhcXHU1MTY4XCJdLFxuICAgICAgW1wiYTY0MFwiLCBcIlxcdTUxNzFcXHU1MThEXFx1NTFCMFxcdTUyMTdcXHU1MjExXFx1NTIxMlxcdTUyMEVcXHU1MjE2XFx1NTJBM1xcdTUzMDhcXHU1MzIxXFx1NTMyMFxcdTUzNzBcXHU1MzcxXFx1NTQwOVxcdTU0MEZcXHU1NDBDXFx1NTQwQVxcdTU0MTBcXHU1NDAxXFx1NTQwQlxcdTU0MDRcXHU1NDExXFx1NTQwRFxcdTU0MDhcXHU1NDAzXFx1NTQwRVxcdTU0MDZcXHU1NDEyXFx1NTZFMFxcdTU2REVcXHU1NkREXFx1NTczM1xcdTU3MzBcXHU1NzI4XFx1NTcyRFxcdTU3MkNcXHU1NzJGXFx1NTcyOVxcdTU5MTlcXHU1OTFBXFx1NTkzN1xcdTU5MzhcXHU1OTg0XFx1NTk3OFxcdTU5ODNcXHU1OTdEXFx1NTk3OVxcdTU5ODJcXHU1OTgxXFx1NUI1N1xcdTVCNThcXHU1Qjg3XFx1NUI4OFxcdTVCODVcXHU1Qjg5XFx1NUJGQVxcdTVDMTZcXHU1Qzc5XFx1NURERVxcdTVFMDZcXHU1RTc2XFx1NUU3NFwiXSxcbiAgICAgIFtcImE2YTFcIiwgXCJcXHU1RjBGXFx1NUYxQlxcdTVGRDlcXHU1RkQ2XFx1NjIwRVxcdTYyMENcXHU2MjBEXFx1NjIxMFxcdTYyNjNcXHU2MjVCXFx1NjI1OFxcdTY1MzZcXHU2NUU5XFx1NjVFOFxcdTY1RUNcXHU2NUVEXFx1NjZGMlxcdTY2RjNcXHU2NzA5XFx1NjczRFxcdTY3MzRcXHU2NzMxXFx1NjczNVxcdTZCMjFcXHU2QjY0XFx1NkI3QlxcdTZDMTZcXHU2QzVEXFx1NkM1N1xcdTZDNTlcXHU2QzVGXFx1NkM2MFxcdTZDNTBcXHU2QzU1XFx1NkM2MVxcdTZDNUJcXHU2QzREXFx1NkM0RVxcdTcwNzBcXHU3MjVGXFx1NzI1RFxcdTc2N0VcXHU3QUY5XFx1N0M3M1xcdTdDRjhcXHU3RjM2XFx1N0Y4QVxcdTdGQkRcXHU4MDAxXFx1ODAwM1xcdTgwMENcXHU4MDEyXFx1ODAzM1xcdTgwN0ZcXHU4MDg5XFx1ODA4QlxcdTgwOENcXHU4MUUzXFx1ODFFQVxcdTgxRjNcXHU4MUZDXFx1ODIwQ1xcdTgyMUJcXHU4MjFGXFx1ODI2RVxcdTgyNzJcXHU4MjdFXFx1ODY2QlxcdTg4NDBcXHU4ODRDXFx1ODg2M1xcdTg5N0ZcXHU5NjIxXFx1NEUzMlxcdTRFQThcXHU0RjREXFx1NEY0RlxcdTRGNDdcXHU0RjU3XFx1NEY1RVxcdTRGMzRcXHU0RjVCXFx1NEY1NVxcdTRGMzBcXHU0RjUwXFx1NEY1MVxcdTRGM0RcXHU0RjNBXFx1NEYzOFxcdTRGNDNcXHU0RjU0XFx1NEYzQ1xcdTRGNDZcXHU0RjYzXCJdLFxuICAgICAgW1wiYTc0MFwiLCBcIlxcdTRGNUNcXHU0RjYwXFx1NEYyRlxcdTRGNEVcXHU0RjM2XFx1NEY1OVxcdTRGNURcXHU0RjQ4XFx1NEY1QVxcdTUxNENcXHU1MTRCXFx1NTE0RFxcdTUxNzVcXHU1MUI2XFx1NTFCN1xcdTUyMjVcXHU1MjI0XFx1NTIyOVxcdTUyMkFcXHU1MjI4XFx1NTJBQlxcdTUyQTlcXHU1MkFBXFx1NTJBQ1xcdTUzMjNcXHU1MzczXFx1NTM3NVxcdTU0MURcXHU1NDJEXFx1NTQxRVxcdTU0M0VcXHU1NDI2XFx1NTQ0RVxcdTU0MjdcXHU1NDQ2XFx1NTQ0M1xcdTU0MzNcXHU1NDQ4XFx1NTQ0MlxcdTU0MUJcXHU1NDI5XFx1NTQ0QVxcdTU0MzlcXHU1NDNCXFx1NTQzOFxcdTU0MkVcXHU1NDM1XFx1NTQzNlxcdTU0MjBcXHU1NDNDXFx1NTQ0MFxcdTU0MzFcXHU1NDJCXFx1NTQxRlxcdTU0MkNcXHU1NkVBXFx1NTZGMFxcdTU2RTRcXHU1NkVCXFx1NTc0QVxcdTU3NTFcXHU1NzQwXFx1NTc0RFwiXSxcbiAgICAgIFtcImE3YTFcIiwgXCJcXHU1NzQ3XFx1NTc0RVxcdTU3M0VcXHU1NzUwXFx1NTc0RlxcdTU3M0JcXHU1OEVGXFx1NTkzRVxcdTU5OURcXHU1OTkyXFx1NTlBOFxcdTU5OUVcXHU1OUEzXFx1NTk5OVxcdTU5OTZcXHU1OThEXFx1NTlBNFxcdTU5OTNcXHU1OThBXFx1NTlBNVxcdTVCNURcXHU1QjVDXFx1NUI1QVxcdTVCNUJcXHU1QjhDXFx1NUI4QlxcdTVCOEZcXHU1QzJDXFx1NUM0MFxcdTVDNDFcXHU1QzNGXFx1NUMzRVxcdTVDOTBcXHU1QzkxXFx1NUM5NFxcdTVDOENcXHU1REVCXFx1NUUwQ1xcdTVFOEZcXHU1RTg3XFx1NUU4QVxcdTVFRjdcXHU1RjA0XFx1NUYxRlxcdTVGNjRcXHU1RjYyXFx1NUY3N1xcdTVGNzlcXHU1RkQ4XFx1NUZDQ1xcdTVGRDdcXHU1RkNEXFx1NUZGMVxcdTVGRUJcXHU1RkY4XFx1NUZFQVxcdTYyMTJcXHU2MjExXFx1NjI4NFxcdTYyOTdcXHU2Mjk2XFx1NjI4MFxcdTYyNzZcXHU2Mjg5XFx1NjI2RFxcdTYyOEFcXHU2MjdDXFx1NjI3RVxcdTYyNzlcXHU2MjczXFx1NjI5MlxcdTYyNkZcXHU2Mjk4XFx1NjI2RVxcdTYyOTVcXHU2MjkzXFx1NjI5MVxcdTYyODZcXHU2NTM5XFx1NjUzQlxcdTY1MzhcXHU2NUYxXFx1NjZGNFxcdTY3NUZcXHU2NzRFXFx1Njc0RlxcdTY3NTBcXHU2NzUxXFx1Njc1Q1xcdTY3NTZcXHU2NzVFXFx1Njc0OVxcdTY3NDZcXHU2NzYwXCJdLFxuICAgICAgW1wiYTg0MFwiLCBcIlxcdTY3NTNcXHU2NzU3XFx1NkI2NVxcdTZCQ0ZcXHU2QzQyXFx1NkM1RVxcdTZDOTlcXHU2QzgxXFx1NkM4OFxcdTZDODlcXHU2Qzg1XFx1NkM5QlxcdTZDNkFcXHU2QzdBXFx1NkM5MFxcdTZDNzBcXHU2QzhDXFx1NkM2OFxcdTZDOTZcXHU2QzkyXFx1NkM3RFxcdTZDODNcXHU2QzcyXFx1NkM3RVxcdTZDNzRcXHU2Qzg2XFx1NkM3NlxcdTZDOERcXHU2Qzk0XFx1NkM5OFxcdTZDODJcXHU3MDc2XFx1NzA3Q1xcdTcwN0RcXHU3MDc4XFx1NzI2MlxcdTcyNjFcXHU3MjYwXFx1NzJDNFxcdTcyQzJcXHU3Mzk2XFx1NzUyQ1xcdTc1MkJcXHU3NTM3XFx1NzUzOFxcdTc2ODJcXHU3NkVGXFx1NzdFM1xcdTc5QzFcXHU3OUMwXFx1NzlCRlxcdTdBNzZcXHU3Q0ZCXFx1N0Y1NVxcdTgwOTZcXHU4MDkzXFx1ODA5RFxcdTgwOThcXHU4MDlCXFx1ODA5QVxcdTgwQjJcXHU4MjZGXFx1ODI5MlwiXSxcbiAgICAgIFtcImE4YTFcIiwgXCJcXHU4MjhCXFx1ODI4RFxcdTg5OEJcXHU4OUQyXFx1OEEwMFxcdThDMzdcXHU4QzQ2XFx1OEM1NVxcdThDOURcXHU4RDY0XFx1OEQ3MFxcdThEQjNcXHU4RUFCXFx1OEVDQVxcdThGOUJcXHU4RkIwXFx1OEZDMlxcdThGQzZcXHU4RkM1XFx1OEZDNFxcdTVERTFcXHU5MDkxXFx1OTBBMlxcdTkwQUFcXHU5MEE2XFx1OTBBM1xcdTkxNDlcXHU5MUM2XFx1OTFDQ1xcdTk2MzJcXHU5NjJFXFx1OTYzMVxcdTk2MkFcXHU5NjJDXFx1NEUyNlxcdTRFNTZcXHU0RTczXFx1NEU4QlxcdTRFOUJcXHU0RTlFXFx1NEVBQlxcdTRFQUNcXHU0RjZGXFx1NEY5RFxcdTRGOERcXHU0RjczXFx1NEY3RlxcdTRGNkNcXHU0RjlCXFx1NEY4QlxcdTRGODZcXHU0RjgzXFx1NEY3MFxcdTRGNzVcXHU0Rjg4XFx1NEY2OVxcdTRGN0JcXHU0Rjk2XFx1NEY3RVxcdTRGOEZcXHU0RjkxXFx1NEY3QVxcdTUxNTRcXHU1MTUyXFx1NTE1NVxcdTUxNjlcXHU1MTc3XFx1NTE3NlxcdTUxNzhcXHU1MUJEXFx1NTFGRFxcdTUyM0JcXHU1MjM4XFx1NTIzN1xcdTUyM0FcXHU1MjMwXFx1NTIyRVxcdTUyMzZcXHU1MjQxXFx1NTJCRVxcdTUyQkJcXHU1MzUyXFx1NTM1NFxcdTUzNTNcXHU1MzUxXFx1NTM2NlxcdTUzNzdcXHU1Mzc4XFx1NTM3OVxcdTUzRDZcXHU1M0Q0XFx1NTNEN1xcdTU0NzNcXHU1NDc1XCJdLFxuICAgICAgW1wiYTk0MFwiLCBcIlxcdTU0OTZcXHU1NDc4XFx1NTQ5NVxcdTU0ODBcXHU1NDdCXFx1NTQ3N1xcdTU0ODRcXHU1NDkyXFx1NTQ4NlxcdTU0N0NcXHU1NDkwXFx1NTQ3MVxcdTU0NzZcXHU1NDhDXFx1NTQ5QVxcdTU0NjJcXHU1NDY4XFx1NTQ4QlxcdTU0N0RcXHU1NDhFXFx1NTZGQVxcdTU3ODNcXHU1Nzc3XFx1NTc2QVxcdTU3NjlcXHU1NzYxXFx1NTc2NlxcdTU3NjRcXHU1NzdDXFx1NTkxQ1xcdTU5NDlcXHU1OTQ3XFx1NTk0OFxcdTU5NDRcXHU1OTU0XFx1NTlCRVxcdTU5QkJcXHU1OUQ0XFx1NTlCOVxcdTU5QUVcXHU1OUQxXFx1NTlDNlxcdTU5RDBcXHU1OUNEXFx1NTlDQlxcdTU5RDNcXHU1OUNBXFx1NTlBRlxcdTU5QjNcXHU1OUQyXFx1NTlDNVxcdTVCNUZcXHU1QjY0XFx1NUI2M1xcdTVCOTdcXHU1QjlBXFx1NUI5OFxcdTVCOUNcXHU1Qjk5XFx1NUI5QlxcdTVDMUFcXHU1QzQ4XFx1NUM0NVwiXSxcbiAgICAgIFtcImE5YTFcIiwgXCJcXHU1QzQ2XFx1NUNCN1xcdTVDQTFcXHU1Q0I4XFx1NUNBOVxcdTVDQUJcXHU1Q0IxXFx1NUNCM1xcdTVFMThcXHU1RTFBXFx1NUUxNlxcdTVFMTVcXHU1RTFCXFx1NUUxMVxcdTVFNzhcXHU1RTlBXFx1NUU5N1xcdTVFOUNcXHU1RTk1XFx1NUU5NlxcdTVFRjZcXHU1RjI2XFx1NUYyN1xcdTVGMjlcXHU1RjgwXFx1NUY4MVxcdTVGN0ZcXHU1RjdDXFx1NUZERFxcdTVGRTBcXHU1RkZEXFx1NUZGNVxcdTVGRkZcXHU2MDBGXFx1NjAxNFxcdTYwMkZcXHU2MDM1XFx1NjAxNlxcdTYwMkFcXHU2MDE1XFx1NjAyMVxcdTYwMjdcXHU2MDI5XFx1NjAyQlxcdTYwMUJcXHU2MjE2XFx1NjIxNVxcdTYyM0ZcXHU2MjNFXFx1NjI0MFxcdTYyN0ZcXHU2MkM5XFx1NjJDQ1xcdTYyQzRcXHU2MkJGXFx1NjJDMlxcdTYyQjlcXHU2MkQyXFx1NjJEQlxcdTYyQUJcXHU2MkQzXFx1NjJENFxcdTYyQ0JcXHU2MkM4XFx1NjJBOFxcdTYyQkRcXHU2MkJDXFx1NjJEMFxcdTYyRDlcXHU2MkM3XFx1NjJDRFxcdTYyQjVcXHU2MkRBXFx1NjJCMVxcdTYyRDhcXHU2MkQ2XFx1NjJEN1xcdTYyQzZcXHU2MkFDXFx1NjJDRVxcdTY1M0VcXHU2NUE3XFx1NjVCQ1xcdTY1RkFcXHU2NjE0XFx1NjYxM1xcdTY2MENcXHU2NjA2XFx1NjYwMlxcdTY2MEVcXHU2NjAwXFx1NjYwRlxcdTY2MTVcXHU2NjBBXCJdLFxuICAgICAgW1wiYWE0MFwiLCBcIlxcdTY2MDdcXHU2NzBEXFx1NjcwQlxcdTY3NkRcXHU2NzhCXFx1Njc5NVxcdTY3NzFcXHU2NzlDXFx1Njc3M1xcdTY3NzdcXHU2Nzg3XFx1Njc5RFxcdTY3OTdcXHU2NzZGXFx1Njc3MFxcdTY3N0ZcXHU2Nzg5XFx1Njc3RVxcdTY3OTBcXHU2Nzc1XFx1Njc5QVxcdTY3OTNcXHU2NzdDXFx1Njc2QVxcdTY3NzJcXHU2QjIzXFx1NkI2NlxcdTZCNjdcXHU2QjdGXFx1NkMxM1xcdTZDMUJcXHU2Q0UzXFx1NkNFOFxcdTZDRjNcXHU2Q0IxXFx1NkNDQ1xcdTZDRTVcXHU2Q0IzXFx1NkNCRFxcdTZDQkVcXHU2Q0JDXFx1NkNFMlxcdTZDQUJcXHU2Q0Q1XFx1NkNEM1xcdTZDQjhcXHU2Q0M0XFx1NkNCOVxcdTZDQzFcXHU2Q0FFXFx1NkNEN1xcdTZDQzVcXHU2Q0YxXFx1NkNCRlxcdTZDQkJcXHU2Q0UxXFx1NkNEQlxcdTZDQ0FcXHU2Q0FDXFx1NkNFRlxcdTZDRENcXHU2Q0Q2XFx1NkNFMFwiXSxcbiAgICAgIFtcImFhYTFcIiwgXCJcXHU3MDk1XFx1NzA4RVxcdTcwOTJcXHU3MDhBXFx1NzA5OVxcdTcyMkNcXHU3MjJEXFx1NzIzOFxcdTcyNDhcXHU3MjY3XFx1NzI2OVxcdTcyQzBcXHU3MkNFXFx1NzJEOVxcdTcyRDdcXHU3MkQwXFx1NzNBOVxcdTczQThcXHU3MzlGXFx1NzNBQlxcdTczQTVcXHU3NTNEXFx1NzU5RFxcdTc1OTlcXHU3NTlBXFx1NzY4NFxcdTc2QzJcXHU3NkYyXFx1NzZGNFxcdTc3RTVcXHU3N0ZEXFx1NzkzRVxcdTc5NDBcXHU3OTQxXFx1NzlDOVxcdTc5QzhcXHU3QTdBXFx1N0E3OVxcdTdBRkFcXHU3Q0ZFXFx1N0Y1NFxcdTdGOENcXHU3RjhCXFx1ODAwNVxcdTgwQkFcXHU4MEE1XFx1ODBBMlxcdTgwQjFcXHU4MEExXFx1ODBBQlxcdTgwQTlcXHU4MEI0XFx1ODBBQVxcdTgwQUZcXHU4MUU1XFx1ODFGRVxcdTgyMERcXHU4MkIzXFx1ODI5RFxcdTgyOTlcXHU4MkFEXFx1ODJCRFxcdTgyOUZcXHU4MkI5XFx1ODJCMVxcdTgyQUNcXHU4MkE1XFx1ODJBRlxcdTgyQjhcXHU4MkEzXFx1ODJCMFxcdTgyQkVcXHU4MkI3XFx1ODY0RVxcdTg2NzFcXHU1MjFEXFx1ODg2OFxcdThFQ0JcXHU4RkNFXFx1OEZENFxcdThGRDFcXHU5MEI1XFx1OTBCOFxcdTkwQjFcXHU5MEI2XFx1OTFDN1xcdTkxRDFcXHU5NTc3XFx1OTU4MFxcdTk2MUNcXHU5NjQwXFx1OTYzRlxcdTk2M0JcXHU5NjQ0XCJdLFxuICAgICAgW1wiYWI0MFwiLCBcIlxcdTk2NDJcXHU5NkI5XFx1OTZFOFxcdTk3NTJcXHU5NzVFXFx1NEU5RlxcdTRFQURcXHU0RUFFXFx1NEZFMVxcdTRGQjVcXHU0RkFGXFx1NEZCRlxcdTRGRTBcXHU0RkQxXFx1NEZDRlxcdTRGRERcXHU0RkMzXFx1NEZCNlxcdTRGRDhcXHU0RkRGXFx1NEZDQVxcdTRGRDdcXHU0RkFFXFx1NEZEMFxcdTRGQzRcXHU0RkMyXFx1NEZEQVxcdTRGQ0VcXHU0RkRFXFx1NEZCN1xcdTUxNTdcXHU1MTkyXFx1NTE5MVxcdTUxQTBcXHU1MjRFXFx1NTI0M1xcdTUyNEFcXHU1MjREXFx1NTI0Q1xcdTUyNEJcXHU1MjQ3XFx1NTJDN1xcdTUyQzlcXHU1MkMzXFx1NTJDMVxcdTUzMERcXHU1MzU3XFx1NTM3QlxcdTUzOUFcXHU1M0RCXFx1NTRBQ1xcdTU0QzBcXHU1NEE4XFx1NTRDRVxcdTU0QzlcXHU1NEI4XFx1NTRBNlxcdTU0QjNcXHU1NEM3XFx1NTRDMlxcdTU0QkRcXHU1NEFBXFx1NTRDMVwiXSxcbiAgICAgIFtcImFiYTFcIiwgXCJcXHU1NEM0XFx1NTRDOFxcdTU0QUZcXHU1NEFCXFx1NTRCMVxcdTU0QkJcXHU1NEE5XFx1NTRBN1xcdTU0QkZcXHU1NkZGXFx1NTc4MlxcdTU3OEJcXHU1N0EwXFx1NTdBM1xcdTU3QTJcXHU1N0NFXFx1NTdBRVxcdTU3OTNcXHU1OTU1XFx1NTk1MVxcdTU5NEZcXHU1OTRFXFx1NTk1MFxcdTU5RENcXHU1OUQ4XFx1NTlGRlxcdTU5RTNcXHU1OUU4XFx1NUEwM1xcdTU5RTVcXHU1OUVBXFx1NTlEQVxcdTU5RTZcXHU1QTAxXFx1NTlGQlxcdTVCNjlcXHU1QkEzXFx1NUJBNlxcdTVCQTRcXHU1QkEyXFx1NUJBNVxcdTVDMDFcXHU1QzRFXFx1NUM0RlxcdTVDNERcXHU1QzRCXFx1NUNEOVxcdTVDRDJcXHU1REY3XFx1NUUxRFxcdTVFMjVcXHU1RTFGXFx1NUU3RFxcdTVFQTBcXHU1RUE2XFx1NUVGQVxcdTVGMDhcXHU1RjJEXFx1NUY2NVxcdTVGODhcXHU1Rjg1XFx1NUY4QVxcdTVGOEJcXHU1Rjg3XFx1NUY4Q1xcdTVGODlcXHU2MDEyXFx1NjAxRFxcdTYwMjBcXHU2MDI1XFx1NjAwRVxcdTYwMjhcXHU2MDREXFx1NjA3MFxcdTYwNjhcXHU2MDYyXFx1NjA0NlxcdTYwNDNcXHU2MDZDXFx1NjA2QlxcdTYwNkFcXHU2MDY0XFx1NjI0MVxcdTYyRENcXHU2MzE2XFx1NjMwOVxcdTYyRkNcXHU2MkVEXFx1NjMwMVxcdTYyRUVcXHU2MkZEXFx1NjMwN1xcdTYyRjFcXHU2MkY3XCJdLFxuICAgICAgW1wiYWM0MFwiLCBcIlxcdTYyRUZcXHU2MkVDXFx1NjJGRVxcdTYyRjRcXHU2MzExXFx1NjMwMlxcdTY1M0ZcXHU2NTQ1XFx1NjVBQlxcdTY1QkRcXHU2NUUyXFx1NjYyNVxcdTY2MkRcXHU2NjIwXFx1NjYyN1xcdTY2MkZcXHU2NjFGXFx1NjYyOFxcdTY2MzFcXHU2NjI0XFx1NjZGN1xcdTY3RkZcXHU2N0QzXFx1NjdGMVxcdTY3RDRcXHU2N0QwXFx1NjdFQ1xcdTY3QjZcXHU2N0FGXFx1NjdGNVxcdTY3RTlcXHU2N0VGXFx1NjdDNFxcdTY3RDFcXHU2N0I0XFx1NjdEQVxcdTY3RTVcXHU2N0I4XFx1NjdDRlxcdTY3REVcXHU2N0YzXFx1NjdCMFxcdTY3RDlcXHU2N0UyXFx1NjdERFxcdTY3RDJcXHU2QjZBXFx1NkI4M1xcdTZCODZcXHU2QkI1XFx1NkJEMlxcdTZCRDdcXHU2QzFGXFx1NkNDOVxcdTZEMEJcXHU2RDMyXFx1NkQyQVxcdTZENDFcXHU2RDI1XFx1NkQwQ1xcdTZEMzFcXHU2RDFFXFx1NkQxN1wiXSxcbiAgICAgIFtcImFjYTFcIiwgXCJcXHU2RDNCXFx1NkQzRFxcdTZEM0VcXHU2RDM2XFx1NkQxQlxcdTZDRjVcXHU2RDM5XFx1NkQyN1xcdTZEMzhcXHU2RDI5XFx1NkQyRVxcdTZEMzVcXHU2RDBFXFx1NkQyQlxcdTcwQUJcXHU3MEJBXFx1NzBCM1xcdTcwQUNcXHU3MEFGXFx1NzBBRFxcdTcwQjhcXHU3MEFFXFx1NzBBNFxcdTcyMzBcXHU3MjcyXFx1NzI2RlxcdTcyNzRcXHU3MkU5XFx1NzJFMFxcdTcyRTFcXHU3M0I3XFx1NzNDQVxcdTczQkJcXHU3M0IyXFx1NzNDRFxcdTczQzBcXHU3M0IzXFx1NzUxQVxcdTc1MkRcXHU3NTRGXFx1NzU0Q1xcdTc1NEVcXHU3NTRCXFx1NzVBQlxcdTc1QTRcXHU3NUE1XFx1NzVBMlxcdTc1QTNcXHU3Njc4XFx1NzY4NlxcdTc2ODdcXHU3Njg4XFx1NzZDOFxcdTc2QzZcXHU3NkMzXFx1NzZDNVxcdTc3MDFcXHU3NkY5XFx1NzZGOFxcdTc3MDlcXHU3NzBCXFx1NzZGRVxcdTc2RkNcXHU3NzA3XFx1NzdEQ1xcdTc4MDJcXHU3ODE0XFx1NzgwQ1xcdTc4MERcXHU3OTQ2XFx1Nzk0OVxcdTc5NDhcXHU3OTQ3XFx1NzlCOVxcdTc5QkFcXHU3OUQxXFx1NzlEMlxcdTc5Q0JcXHU3QTdGXFx1N0E4MVxcdTdBRkZcXHU3QUZEXFx1N0M3RFxcdTdEMDJcXHU3RDA1XFx1N0QwMFxcdTdEMDlcXHU3RDA3XFx1N0QwNFxcdTdEMDZcXHU3RjM4XFx1N0Y4RVxcdTdGQkZcXHU4MDA0XCJdLFxuICAgICAgW1wiYWQ0MFwiLCBcIlxcdTgwMTBcXHU4MDBEXFx1ODAxMVxcdTgwMzZcXHU4MEQ2XFx1ODBFNVxcdTgwREFcXHU4MEMzXFx1ODBDNFxcdTgwQ0NcXHU4MEUxXFx1ODBEQlxcdTgwQ0VcXHU4MERFXFx1ODBFNFxcdTgwRERcXHU4MUY0XFx1ODIyMlxcdTgyRTdcXHU4MzAzXFx1ODMwNVxcdTgyRTNcXHU4MkRCXFx1ODJFNlxcdTgzMDRcXHU4MkU1XFx1ODMwMlxcdTgzMDlcXHU4MkQyXFx1ODJEN1xcdTgyRjFcXHU4MzAxXFx1ODJEQ1xcdTgyRDRcXHU4MkQxXFx1ODJERVxcdTgyRDNcXHU4MkRGXFx1ODJFRlxcdTgzMDZcXHU4NjUwXFx1ODY3OVxcdTg2N0JcXHU4NjdBXFx1ODg0RFxcdTg4NkJcXHU4OTgxXFx1ODlENFxcdThBMDhcXHU4QTAyXFx1OEEwM1xcdThDOUVcXHU4Q0EwXFx1OEQ3NFxcdThENzNcXHU4REI0XFx1OEVDRFxcdThFQ0NcXHU4RkYwXFx1OEZFNlxcdThGRTJcXHU4RkVBXFx1OEZFNVwiXSxcbiAgICAgIFtcImFkYTFcIiwgXCJcXHU4RkVEXFx1OEZFQlxcdThGRTRcXHU4RkU4XFx1OTBDQVxcdTkwQ0VcXHU5MEMxXFx1OTBDM1xcdTkxNEJcXHU5MTRBXFx1OTFDRFxcdTk1ODJcXHU5NjUwXFx1OTY0QlxcdTk2NENcXHU5NjREXFx1OTc2MlxcdTk3NjlcXHU5N0NCXFx1OTdFRFxcdTk3RjNcXHU5ODAxXFx1OThBOFxcdTk4REJcXHU5OERGXFx1OTk5NlxcdTk5OTlcXHU0RTU4XFx1NEVCM1xcdTUwMENcXHU1MDBEXFx1NTAyM1xcdTRGRUZcXHU1MDI2XFx1NTAyNVxcdTRGRjhcXHU1MDI5XFx1NTAxNlxcdTUwMDZcXHU1MDNDXFx1NTAxRlxcdTUwMUFcXHU1MDEyXFx1NTAxMVxcdTRGRkFcXHU1MDAwXFx1NTAxNFxcdTUwMjhcXHU0RkYxXFx1NTAyMVxcdTUwMEJcXHU1MDE5XFx1NTAxOFxcdTRGRjNcXHU0RkVFXFx1NTAyRFxcdTUwMkFcXHU0RkZFXFx1NTAyQlxcdTUwMDlcXHU1MTdDXFx1NTFBNFxcdTUxQTVcXHU1MUEyXFx1NTFDRFxcdTUxQ0NcXHU1MUM2XFx1NTFDQlxcdTUyNTZcXHU1MjVDXFx1NTI1NFxcdTUyNUJcXHU1MjVEXFx1NTMyQVxcdTUzN0ZcXHU1MzlGXFx1NTM5RFxcdTUzREZcXHU1NEU4XFx1NTUxMFxcdTU1MDFcXHU1NTM3XFx1NTRGQ1xcdTU0RTVcXHU1NEYyXFx1NTUwNlxcdTU0RkFcXHU1NTE0XFx1NTRFOVxcdTU0RURcXHU1NEUxXFx1NTUwOVxcdTU0RUVcXHU1NEVBXCJdLFxuICAgICAgW1wiYWU0MFwiLCBcIlxcdTU0RTZcXHU1NTI3XFx1NTUwN1xcdTU0RkRcXHU1NTBGXFx1NTcwM1xcdTU3MDRcXHU1N0MyXFx1NTdENFxcdTU3Q0JcXHU1N0MzXFx1NTgwOVxcdTU5MEZcXHU1OTU3XFx1NTk1OFxcdTU5NUFcXHU1QTExXFx1NUExOFxcdTVBMUNcXHU1QTFGXFx1NUExQlxcdTVBMTNcXHU1OUVDXFx1NUEyMFxcdTVBMjNcXHU1QTI5XFx1NUEyNVxcdTVBMENcXHU1QTA5XFx1NUI2QlxcdTVDNThcXHU1QkIwXFx1NUJCM1xcdTVCQjZcXHU1QkI0XFx1NUJBRVxcdTVCQjVcXHU1QkI5XFx1NUJCOFxcdTVDMDRcXHU1QzUxXFx1NUM1NVxcdTVDNTBcXHU1Q0VEXFx1NUNGRFxcdTVDRkJcXHU1Q0VBXFx1NUNFOFxcdTVDRjBcXHU1Q0Y2XFx1NUQwMVxcdTVDRjRcXHU1REVFXFx1NUUyRFxcdTVFMkJcXHU1RUFCXFx1NUVBRFxcdTVFQTdcXHU1RjMxXFx1NUY5MlxcdTVGOTFcXHU1RjkwXFx1NjA1OVwiXSxcbiAgICAgIFtcImFlYTFcIiwgXCJcXHU2MDYzXFx1NjA2NVxcdTYwNTBcXHU2MDU1XFx1NjA2RFxcdTYwNjlcXHU2MDZGXFx1NjA4NFxcdTYwOUZcXHU2MDlBXFx1NjA4RFxcdTYwOTRcXHU2MDhDXFx1NjA4NVxcdTYwOTZcXHU2MjQ3XFx1NjJGM1xcdTYzMDhcXHU2MkZGXFx1NjM0RVxcdTYzM0VcXHU2MzJGXFx1NjM1NVxcdTYzNDJcXHU2MzQ2XFx1NjM0RlxcdTYzNDlcXHU2MzNBXFx1NjM1MFxcdTYzM0RcXHU2MzJBXFx1NjMyQlxcdTYzMjhcXHU2MzREXFx1NjM0Q1xcdTY1NDhcXHU2NTQ5XFx1NjU5OVxcdTY1QzFcXHU2NUM1XFx1NjY0MlxcdTY2NDlcXHU2NjRGXFx1NjY0M1xcdTY2NTJcXHU2NjRDXFx1NjY0NVxcdTY2NDFcXHU2NkY4XFx1NjcxNFxcdTY3MTVcXHU2NzE3XFx1NjgyMVxcdTY4MzhcXHU2ODQ4XFx1Njg0NlxcdTY4NTNcXHU2ODM5XFx1Njg0MlxcdTY4NTRcXHU2ODI5XFx1NjhCM1xcdTY4MTdcXHU2ODRDXFx1Njg1MVxcdTY4M0RcXHU2N0Y0XFx1Njg1MFxcdTY4NDBcXHU2ODNDXFx1Njg0M1xcdTY4MkFcXHU2ODQ1XFx1NjgxM1xcdTY4MThcXHU2ODQxXFx1NkI4QVxcdTZCODlcXHU2QkI3XFx1NkMyM1xcdTZDMjdcXHU2QzI4XFx1NkMyNlxcdTZDMjRcXHU2Q0YwXFx1NkQ2QVxcdTZEOTVcXHU2RDg4XFx1NkQ4N1xcdTZENjZcXHU2RDc4XFx1NkQ3N1xcdTZENTlcXHU2RDkzXCJdLFxuICAgICAgW1wiYWY0MFwiLCBcIlxcdTZENkNcXHU2RDg5XFx1NkQ2RVxcdTZENUFcXHU2RDc0XFx1NkQ2OVxcdTZEOENcXHU2RDhBXFx1NkQ3OVxcdTZEODVcXHU2RDY1XFx1NkQ5NFxcdTcwQ0FcXHU3MEQ4XFx1NzBFNFxcdTcwRDlcXHU3MEM4XFx1NzBDRlxcdTcyMzlcXHU3Mjc5XFx1NzJGQ1xcdTcyRjlcXHU3MkZEXFx1NzJGOFxcdTcyRjdcXHU3Mzg2XFx1NzNFRFxcdTc0MDlcXHU3M0VFXFx1NzNFMFxcdTczRUFcXHU3M0RFXFx1NzU1NFxcdTc1NURcXHU3NTVDXFx1NzU1QVxcdTc1NTlcXHU3NUJFXFx1NzVDNVxcdTc1QzdcXHU3NUIyXFx1NzVCM1xcdTc1QkRcXHU3NUJDXFx1NzVCOVxcdTc1QzJcXHU3NUI4XFx1NzY4QlxcdTc2QjBcXHU3NkNBXFx1NzZDRFxcdTc2Q0VcXHU3NzI5XFx1NzcxRlxcdTc3MjBcXHU3NzI4XFx1NzdFOVxcdTc4MzBcXHU3ODI3XFx1NzgzOFxcdTc4MURcXHU3ODM0XFx1NzgzN1wiXSxcbiAgICAgIFtcImFmYTFcIiwgXCJcXHU3ODI1XFx1NzgyRFxcdTc4MjBcXHU3ODFGXFx1NzgzMlxcdTc5NTVcXHU3OTUwXFx1Nzk2MFxcdTc5NUZcXHU3OTU2XFx1Nzk1RVxcdTc5NURcXHU3OTU3XFx1Nzk1QVxcdTc5RTRcXHU3OUUzXFx1NzlFN1xcdTc5REZcXHU3OUU2XFx1NzlFOVxcdTc5RDhcXHU3QTg0XFx1N0E4OFxcdTdBRDlcXHU3QjA2XFx1N0IxMVxcdTdDODlcXHU3RDIxXFx1N0QxN1xcdTdEMEJcXHU3RDBBXFx1N0QyMFxcdTdEMjJcXHU3RDE0XFx1N0QxMFxcdTdEMTVcXHU3RDFBXFx1N0QxQ1xcdTdEMERcXHU3RDE5XFx1N0QxQlxcdTdGM0FcXHU3RjVGXFx1N0Y5NFxcdTdGQzVcXHU3RkMxXFx1ODAwNlxcdTgwMThcXHU4MDE1XFx1ODAxOVxcdTgwMTdcXHU4MDNEXFx1ODAzRlxcdTgwRjFcXHU4MTAyXFx1ODBGMFxcdTgxMDVcXHU4MEVEXFx1ODBGNFxcdTgxMDZcXHU4MEY4XFx1ODBGM1xcdTgxMDhcXHU4MEZEXFx1ODEwQVxcdTgwRkNcXHU4MEVGXFx1ODFFRFxcdTgxRUNcXHU4MjAwXFx1ODIxMFxcdTgyMkFcXHU4MjJCXFx1ODIyOFxcdTgyMkNcXHU4MkJCXFx1ODMyQlxcdTgzNTJcXHU4MzU0XFx1ODM0QVxcdTgzMzhcXHU4MzUwXFx1ODM0OVxcdTgzMzVcXHU4MzM0XFx1ODM0RlxcdTgzMzJcXHU4MzM5XFx1ODMzNlxcdTgzMTdcXHU4MzQwXFx1ODMzMVxcdTgzMjhcXHU4MzQzXCJdLFxuICAgICAgW1wiYjA0MFwiLCBcIlxcdTg2NTRcXHU4NjhBXFx1ODZBQVxcdTg2OTNcXHU4NkE0XFx1ODZBOVxcdTg2OENcXHU4NkEzXFx1ODY5Q1xcdTg4NzBcXHU4ODc3XFx1ODg4MVxcdTg4ODJcXHU4ODdEXFx1ODg3OVxcdThBMThcXHU4QTEwXFx1OEEwRVxcdThBMENcXHU4QTE1XFx1OEEwQVxcdThBMTdcXHU4QTEzXFx1OEExNlxcdThBMEZcXHU4QTExXFx1OEM0OFxcdThDN0FcXHU4Qzc5XFx1OENBMVxcdThDQTJcXHU4RDc3XFx1OEVBQ1xcdThFRDJcXHU4RUQ0XFx1OEVDRlxcdThGQjFcXHU5MDAxXFx1OTAwNlxcdThGRjdcXHU5MDAwXFx1OEZGQVxcdThGRjRcXHU5MDAzXFx1OEZGRFxcdTkwMDVcXHU4RkY4XFx1OTA5NVxcdTkwRTFcXHU5MEREXFx1OTBFMlxcdTkxNTJcXHU5MTREXFx1OTE0Q1xcdTkxRDhcXHU5MUREXFx1OTFEN1xcdTkxRENcXHU5MUQ5XFx1OTU4M1xcdTk2NjJcXHU5NjYzXFx1OTY2MVwiXSxcbiAgICAgIFtcImIwYTFcIiwgXCJcXHU5NjVCXFx1OTY1RFxcdTk2NjRcXHU5NjU4XFx1OTY1RVxcdTk2QkJcXHU5OEUyXFx1OTlBQ1xcdTlBQThcXHU5QUQ4XFx1OUIyNVxcdTlCMzJcXHU5QjNDXFx1NEU3RVxcdTUwN0FcXHU1MDdEXFx1NTA1Q1xcdTUwNDdcXHU1MDQzXFx1NTA0Q1xcdTUwNUFcXHU1MDQ5XFx1NTA2NVxcdTUwNzZcXHU1MDRFXFx1NTA1NVxcdTUwNzVcXHU1MDc0XFx1NTA3N1xcdTUwNEZcXHU1MDBGXFx1NTA2RlxcdTUwNkRcXHU1MTVDXFx1NTE5NVxcdTUxRjBcXHU1MjZBXFx1NTI2RlxcdTUyRDJcXHU1MkQ5XFx1NTJEOFxcdTUyRDVcXHU1MzEwXFx1NTMwRlxcdTUzMTlcXHU1MzNGXFx1NTM0MFxcdTUzM0VcXHU1M0MzXFx1NjZGQ1xcdTU1NDZcXHU1NTZBXFx1NTU2NlxcdTU1NDRcXHU1NTVFXFx1NTU2MVxcdTU1NDNcXHU1NTRBXFx1NTUzMVxcdTU1NTZcXHU1NTRGXFx1NTU1NVxcdTU1MkZcXHU1NTY0XFx1NTUzOFxcdTU1MkVcXHU1NTVDXFx1NTUyQ1xcdTU1NjNcXHU1NTMzXFx1NTU0MVxcdTU1NTdcXHU1NzA4XFx1NTcwQlxcdTU3MDlcXHU1N0RGXFx1NTgwNVxcdTU4MEFcXHU1ODA2XFx1NTdFMFxcdTU3RTRcXHU1N0ZBXFx1NTgwMlxcdTU4MzVcXHU1N0Y3XFx1NTdGOVxcdTU5MjBcXHU1OTYyXFx1NUEzNlxcdTVBNDFcXHU1QTQ5XFx1NUE2NlxcdTVBNkFcXHU1QTQwXCJdLFxuICAgICAgW1wiYjE0MFwiLCBcIlxcdTVBM0NcXHU1QTYyXFx1NUE1QVxcdTVBNDZcXHU1QTRBXFx1NUI3MFxcdTVCQzdcXHU1QkM1XFx1NUJDNFxcdTVCQzJcXHU1QkJGXFx1NUJDNlxcdTVDMDlcXHU1QzA4XFx1NUMwN1xcdTVDNjBcXHU1QzVDXFx1NUM1RFxcdTVEMDdcXHU1RDA2XFx1NUQwRVxcdTVEMUJcXHU1RDE2XFx1NUQyMlxcdTVEMTFcXHU1RDI5XFx1NUQxNFxcdTVEMTlcXHU1RDI0XFx1NUQyN1xcdTVEMTdcXHU1REUyXFx1NUUzOFxcdTVFMzZcXHU1RTMzXFx1NUUzN1xcdTVFQjdcXHU1RUI4XFx1NUVCNlxcdTVFQjVcXHU1RUJFXFx1NUYzNVxcdTVGMzdcXHU1RjU3XFx1NUY2Q1xcdTVGNjlcXHU1RjZCXFx1NUY5N1xcdTVGOTlcXHU1RjlFXFx1NUY5OFxcdTVGQTFcXHU1RkEwXFx1NUY5Q1xcdTYwN0ZcXHU2MEEzXFx1NjA4OVxcdTYwQTBcXHU2MEE4XFx1NjBDQlxcdTYwQjRcXHU2MEU2XFx1NjBCRFwiXSxcbiAgICAgIFtcImIxYTFcIiwgXCJcXHU2MEM1XFx1NjBCQlxcdTYwQjVcXHU2MERDXFx1NjBCQ1xcdTYwRDhcXHU2MEQ1XFx1NjBDNlxcdTYwREZcXHU2MEI4XFx1NjBEQVxcdTYwQzdcXHU2MjFBXFx1NjIxQlxcdTYyNDhcXHU2M0EwXFx1NjNBN1xcdTYzNzJcXHU2Mzk2XFx1NjNBMlxcdTYzQTVcXHU2Mzc3XFx1NjM2N1xcdTYzOThcXHU2M0FBXFx1NjM3MVxcdTYzQTlcXHU2Mzg5XFx1NjM4M1xcdTYzOUJcXHU2MzZCXFx1NjNBOFxcdTYzODRcXHU2Mzg4XFx1NjM5OVxcdTYzQTFcXHU2M0FDXFx1NjM5MlxcdTYzOEZcXHU2MzgwXFx1NjM3QlxcdTYzNjlcXHU2MzY4XFx1NjM3QVxcdTY1NURcXHU2NTU2XFx1NjU1MVxcdTY1NTlcXHU2NTU3XFx1NTU1RlxcdTY1NEZcXHU2NTU4XFx1NjU1NVxcdTY1NTRcXHU2NTlDXFx1NjU5QlxcdTY1QUNcXHU2NUNGXFx1NjVDQlxcdTY1Q0NcXHU2NUNFXFx1NjY1RFxcdTY2NUFcXHU2NjY0XFx1NjY2OFxcdTY2NjZcXHU2NjVFXFx1NjZGOVxcdTUyRDdcXHU2NzFCXFx1Njg4MVxcdTY4QUZcXHU2OEEyXFx1Njg5M1xcdTY4QjVcXHU2ODdGXFx1Njg3NlxcdTY4QjFcXHU2OEE3XFx1Njg5N1xcdTY4QjBcXHU2ODgzXFx1NjhDNFxcdTY4QURcXHU2ODg2XFx1Njg4NVxcdTY4OTRcXHU2ODlEXFx1NjhBOFxcdTY4OUZcXHU2OEExXFx1Njg4MlxcdTZCMzJcXHU2QkJBXCJdLFxuICAgICAgW1wiYjI0MFwiLCBcIlxcdTZCRUJcXHU2QkVDXFx1NkMyQlxcdTZEOEVcXHU2REJDXFx1NkRGM1xcdTZERDlcXHU2REIyXFx1NkRFMVxcdTZEQ0NcXHU2REU0XFx1NkRGQlxcdTZERkFcXHU2RTA1XFx1NkRDN1xcdTZEQ0JcXHU2REFGXFx1NkREMVxcdTZEQUVcXHU2RERFXFx1NkRGOVxcdTZEQjhcXHU2REY3XFx1NkRGNVxcdTZEQzVcXHU2REQyXFx1NkUxQVxcdTZEQjVcXHU2RERBXFx1NkRFQlxcdTZERDhcXHU2REVBXFx1NkRGMVxcdTZERUVcXHU2REU4XFx1NkRDNlxcdTZEQzRcXHU2REFBXFx1NkRFQ1xcdTZEQkZcXHU2REU2XFx1NzBGOVxcdTcxMDlcXHU3MTBBXFx1NzBGRFxcdTcwRUZcXHU3MjNEXFx1NzI3RFxcdTcyODFcXHU3MzFDXFx1NzMxQlxcdTczMTZcXHU3MzEzXFx1NzMxOVxcdTczODdcXHU3NDA1XFx1NzQwQVxcdTc0MDNcXHU3NDA2XFx1NzNGRVxcdTc0MERcXHU3NEUwXFx1NzRGNlwiXSxcbiAgICAgIFtcImIyYTFcIiwgXCJcXHU3NEY3XFx1NzUxQ1xcdTc1MjJcXHU3NTY1XFx1NzU2NlxcdTc1NjJcXHU3NTcwXFx1NzU4RlxcdTc1RDRcXHU3NUQ1XFx1NzVCNVxcdTc1Q0FcXHU3NUNEXFx1NzY4RVxcdTc2RDRcXHU3NkQyXFx1NzZEQlxcdTc3MzdcXHU3NzNFXFx1NzczQ1xcdTc3MzZcXHU3NzM4XFx1NzczQVxcdTc4NkJcXHU3ODQzXFx1Nzg0RVxcdTc5NjVcXHU3OTY4XFx1Nzk2RFxcdTc5RkJcXHU3QTkyXFx1N0E5NVxcdTdCMjBcXHU3QjI4XFx1N0IxQlxcdTdCMkNcXHU3QjI2XFx1N0IxOVxcdTdCMUVcXHU3QjJFXFx1N0M5MlxcdTdDOTdcXHU3Qzk1XFx1N0Q0NlxcdTdENDNcXHU3RDcxXFx1N0QyRVxcdTdEMzlcXHU3RDNDXFx1N0Q0MFxcdTdEMzBcXHU3RDMzXFx1N0Q0NFxcdTdEMkZcXHU3RDQyXFx1N0QzMlxcdTdEMzFcXHU3RjNEXFx1N0Y5RVxcdTdGOUFcXHU3RkNDXFx1N0ZDRVxcdTdGRDJcXHU4MDFDXFx1ODA0QVxcdTgwNDZcXHU4MTJGXFx1ODExNlxcdTgxMjNcXHU4MTJCXFx1ODEyOVxcdTgxMzBcXHU4MTI0XFx1ODIwMlxcdTgyMzVcXHU4MjM3XFx1ODIzNlxcdTgyMzlcXHU4MzhFXFx1ODM5RVxcdTgzOThcXHU4Mzc4XFx1ODNBMlxcdTgzOTZcXHU4M0JEXFx1ODNBQlxcdTgzOTJcXHU4MzhBXFx1ODM5M1xcdTgzODlcXHU4M0EwXFx1ODM3N1xcdTgzN0JcXHU4MzdDXCJdLFxuICAgICAgW1wiYjM0MFwiLCBcIlxcdTgzODZcXHU4M0E3XFx1ODY1NVxcdTVGNkFcXHU4NkM3XFx1ODZDMFxcdTg2QjZcXHU4NkM0XFx1ODZCNVxcdTg2QzZcXHU4NkNCXFx1ODZCMVxcdTg2QUZcXHU4NkM5XFx1ODg1M1xcdTg4OUVcXHU4ODg4XFx1ODhBQlxcdTg4OTJcXHU4ODk2XFx1ODg4RFxcdTg4OEJcXHU4OTkzXFx1ODk4RlxcdThBMkFcXHU4QTFEXFx1OEEyM1xcdThBMjVcXHU4QTMxXFx1OEEyRFxcdThBMUZcXHU4QTFCXFx1OEEyMlxcdThDNDlcXHU4QzVBXFx1OENBOVxcdThDQUNcXHU4Q0FCXFx1OENBOFxcdThDQUFcXHU4Q0E3XFx1OEQ2N1xcdThENjZcXHU4REJFXFx1OERCQVxcdThFREJcXHU4RURGXFx1OTAxOVxcdTkwMERcXHU5MDFBXFx1OTAxN1xcdTkwMjNcXHU5MDFGXFx1OTAxRFxcdTkwMTBcXHU5MDE1XFx1OTAxRVxcdTkwMjBcXHU5MDBGXFx1OTAyMlxcdTkwMTZcXHU5MDFCXFx1OTAxNFwiXSxcbiAgICAgIFtcImIzYTFcIiwgXCJcXHU5MEU4XFx1OTBFRFxcdTkwRkRcXHU5MTU3XFx1OTFDRVxcdTkxRjVcXHU5MUU2XFx1OTFFM1xcdTkxRTdcXHU5MUVEXFx1OTFFOVxcdTk1ODlcXHU5NjZBXFx1OTY3NVxcdTk2NzNcXHU5Njc4XFx1OTY3MFxcdTk2NzRcXHU5Njc2XFx1OTY3N1xcdTk2NkNcXHU5NkMwXFx1OTZFQVxcdTk2RTlcXHU3QUUwXFx1N0FERlxcdTk4MDJcXHU5ODAzXFx1OUI1QVxcdTlDRTVcXHU5RTc1XFx1OUU3RlxcdTlFQTVcXHU5RUJCXFx1NTBBMlxcdTUwOERcXHU1MDg1XFx1NTA5OVxcdTUwOTFcXHU1MDgwXFx1NTA5NlxcdTUwOThcXHU1MDlBXFx1NjcwMFxcdTUxRjFcXHU1MjcyXFx1NTI3NFxcdTUyNzVcXHU1MjY5XFx1NTJERVxcdTUyRERcXHU1MkRCXFx1NTM1QVxcdTUzQTVcXHU1NTdCXFx1NTU4MFxcdTU1QTdcXHU1NTdDXFx1NTU4QVxcdTU1OURcXHU1NTk4XFx1NTU4MlxcdTU1OUNcXHU1NUFBXFx1NTU5NFxcdTU1ODdcXHU1NThCXFx1NTU4M1xcdTU1QjNcXHU1NUFFXFx1NTU5RlxcdTU1M0VcXHU1NUIyXFx1NTU5QVxcdTU1QkJcXHU1NUFDXFx1NTVCMVxcdTU1N0VcXHU1NTg5XFx1NTVBQlxcdTU1OTlcXHU1NzBEXFx1NTgyRlxcdTU4MkFcXHU1ODM0XFx1NTgyNFxcdTU4MzBcXHU1ODMxXFx1NTgyMVxcdTU4MURcXHU1ODIwXFx1NThGOVxcdTU4RkFcXHU1OTYwXCJdLFxuICAgICAgW1wiYjQ0MFwiLCBcIlxcdTVBNzdcXHU1QTlBXFx1NUE3RlxcdTVBOTJcXHU1QTlCXFx1NUFBN1xcdTVCNzNcXHU1QjcxXFx1NUJEMlxcdTVCQ0NcXHU1QkQzXFx1NUJEMFxcdTVDMEFcXHU1QzBCXFx1NUMzMVxcdTVENENcXHU1RDUwXFx1NUQzNFxcdTVENDdcXHU1REZEXFx1NUU0NVxcdTVFM0RcXHU1RTQwXFx1NUU0M1xcdTVFN0VcXHU1RUNBXFx1NUVDMVxcdTVFQzJcXHU1RUM0XFx1NUYzQ1xcdTVGNkRcXHU1RkE5XFx1NUZBQVxcdTVGQThcXHU2MEQxXFx1NjBFMVxcdTYwQjJcXHU2MEI2XFx1NjBFMFxcdTYxMUNcXHU2MTIzXFx1NjBGQVxcdTYxMTVcXHU2MEYwXFx1NjBGQlxcdTYwRjRcXHU2MTY4XFx1NjBGMVxcdTYxMEVcXHU2MEY2XFx1NjEwOVxcdTYxMDBcXHU2MTEyXFx1NjIxRlxcdTYyNDlcXHU2M0EzXFx1NjM4Q1xcdTYzQ0ZcXHU2M0MwXFx1NjNFOVxcdTYzQzlcXHU2M0M2XFx1NjNDRFwiXSxcbiAgICAgIFtcImI0YTFcIiwgXCJcXHU2M0QyXFx1NjNFM1xcdTYzRDBcXHU2M0UxXFx1NjNENlxcdTYzRURcXHU2M0VFXFx1NjM3NlxcdTYzRjRcXHU2M0VBXFx1NjNEQlxcdTY0NTJcXHU2M0RBXFx1NjNGOVxcdTY1NUVcXHU2NTY2XFx1NjU2MlxcdTY1NjNcXHU2NTkxXFx1NjU5MFxcdTY1QUZcXHU2NjZFXFx1NjY3MFxcdTY2NzRcXHU2Njc2XFx1NjY2RlxcdTY2OTFcXHU2NjdBXFx1NjY3RVxcdTY2NzdcXHU2NkZFXFx1NjZGRlxcdTY3MUZcXHU2NzFEXFx1NjhGQVxcdTY4RDVcXHU2OEUwXFx1NjhEOFxcdTY4RDdcXHU2OTA1XFx1NjhERlxcdTY4RjVcXHU2OEVFXFx1NjhFN1xcdTY4RjlcXHU2OEQyXFx1NjhGMlxcdTY4RTNcXHU2OENCXFx1NjhDRFxcdTY5MERcXHU2OTEyXFx1NjkwRVxcdTY4QzlcXHU2OERBXFx1Njk2RVxcdTY4RkJcXHU2QjNFXFx1NkIzQVxcdTZCM0RcXHU2Qjk4XFx1NkI5NlxcdTZCQkNcXHU2QkVGXFx1NkMyRVxcdTZDMkZcXHU2QzJDXFx1NkUyRlxcdTZFMzhcXHU2RTU0XFx1NkUyMVxcdTZFMzJcXHU2RTY3XFx1NkU0QVxcdTZFMjBcXHU2RTI1XFx1NkUyM1xcdTZFMUJcXHU2RTVCXFx1NkU1OFxcdTZFMjRcXHU2RTU2XFx1NkU2RVxcdTZFMkRcXHU2RTI2XFx1NkU2RlxcdTZFMzRcXHU2RTREXFx1NkUzQVxcdTZFMkNcXHU2RTQzXFx1NkUxRFxcdTZFM0VcXHU2RUNCXCJdLFxuICAgICAgW1wiYjU0MFwiLCBcIlxcdTZFODlcXHU2RTE5XFx1NkU0RVxcdTZFNjNcXHU2RTQ0XFx1NkU3MlxcdTZFNjlcXHU2RTVGXFx1NzExOVxcdTcxMUFcXHU3MTI2XFx1NzEzMFxcdTcxMjFcXHU3MTM2XFx1NzE2RVxcdTcxMUNcXHU3MjRDXFx1NzI4NFxcdTcyODBcXHU3MzM2XFx1NzMyNVxcdTczMzRcXHU3MzI5XFx1NzQzQVxcdTc0MkFcXHU3NDMzXFx1NzQyMlxcdTc0MjVcXHU3NDM1XFx1NzQzNlxcdTc0MzRcXHU3NDJGXFx1NzQxQlxcdTc0MjZcXHU3NDI4XFx1NzUyNVxcdTc1MjZcXHU3NTZCXFx1NzU2QVxcdTc1RTJcXHU3NURCXFx1NzVFM1xcdTc1RDlcXHU3NUQ4XFx1NzVERVxcdTc1RTBcXHU3NjdCXFx1NzY3Q1xcdTc2OTZcXHU3NjkzXFx1NzZCNFxcdTc2RENcXHU3NzRGXFx1NzdFRFxcdTc4NURcXHU3ODZDXFx1Nzg2RlxcdTdBMERcXHU3QTA4XFx1N0EwQlxcdTdBMDVcXHU3QTAwXFx1N0E5OFwiXSxcbiAgICAgIFtcImI1YTFcIiwgXCJcXHU3QTk3XFx1N0E5NlxcdTdBRTVcXHU3QUUzXFx1N0I0OVxcdTdCNTZcXHU3QjQ2XFx1N0I1MFxcdTdCNTJcXHU3QjU0XFx1N0I0RFxcdTdCNEJcXHU3QjRGXFx1N0I1MVxcdTdDOUZcXHU3Q0E1XFx1N0Q1RVxcdTdENTBcXHU3RDY4XFx1N0Q1NVxcdTdEMkJcXHU3RDZFXFx1N0Q3MlxcdTdENjFcXHU3RDY2XFx1N0Q2MlxcdTdENzBcXHU3RDczXFx1NTU4NFxcdTdGRDRcXHU3RkQ1XFx1ODAwQlxcdTgwNTJcXHU4MDg1XFx1ODE1NVxcdTgxNTRcXHU4MTRCXFx1ODE1MVxcdTgxNEVcXHU4MTM5XFx1ODE0NlxcdTgxM0VcXHU4MTRDXFx1ODE1M1xcdTgxNzRcXHU4MjEyXFx1ODIxQ1xcdTgzRTlcXHU4NDAzXFx1ODNGOFxcdTg0MERcXHU4M0UwXFx1ODNDNVxcdTg0MEJcXHU4M0MxXFx1ODNFRlxcdTgzRjFcXHU4M0Y0XFx1ODQ1N1xcdTg0MEFcXHU4M0YwXFx1ODQwQ1xcdTgzQ0NcXHU4M0ZEXFx1ODNGMlxcdTgzQ0FcXHU4NDM4XFx1ODQwRVxcdTg0MDRcXHU4M0RDXFx1ODQwN1xcdTgzRDRcXHU4M0RGXFx1ODY1QlxcdTg2REZcXHU4NkQ5XFx1ODZFRFxcdTg2RDRcXHU4NkRCXFx1ODZFNFxcdTg2RDBcXHU4NkRFXFx1ODg1N1xcdTg4QzFcXHU4OEMyXFx1ODhCMVxcdTg5ODNcXHU4OTk2XFx1OEEzQlxcdThBNjBcXHU4QTU1XFx1OEE1RVxcdThBM0NcXHU4QTQxXCJdLFxuICAgICAgW1wiYjY0MFwiLCBcIlxcdThBNTRcXHU4QTVCXFx1OEE1MFxcdThBNDZcXHU4QTM0XFx1OEEzQVxcdThBMzZcXHU4QTU2XFx1OEM2MVxcdThDODJcXHU4Q0FGXFx1OENCQ1xcdThDQjNcXHU4Q0JEXFx1OENDMVxcdThDQkJcXHU4Q0MwXFx1OENCNFxcdThDQjdcXHU4Q0I2XFx1OENCRlxcdThDQjhcXHU4RDhBXFx1OEQ4NVxcdThEODFcXHU4RENFXFx1OERERFxcdThEQ0JcXHU4RERBXFx1OEREMVxcdThEQ0NcXHU4RERCXFx1OERDNlxcdThFRkJcXHU4RUY4XFx1OEVGQ1xcdThGOUNcXHU5MDJFXFx1OTAzNVxcdTkwMzFcXHU5MDM4XFx1OTAzMlxcdTkwMzZcXHU5MTAyXFx1OTBGNVxcdTkxMDlcXHU5MEZFXFx1OTE2M1xcdTkxNjVcXHU5MUNGXFx1OTIxNFxcdTkyMTVcXHU5MjIzXFx1OTIwOVxcdTkyMUVcXHU5MjBEXFx1OTIxMFxcdTkyMDdcXHU5MjExXFx1OTU5NFxcdTk1OEZcXHU5NThCXFx1OTU5MVwiXSxcbiAgICAgIFtcImI2YTFcIiwgXCJcXHU5NTkzXFx1OTU5MlxcdTk1OEVcXHU5NjhBXFx1OTY4RVxcdTk2OEJcXHU5NjdEXFx1OTY4NVxcdTk2ODZcXHU5NjhEXFx1OTY3MlxcdTk2ODRcXHU5NkMxXFx1OTZDNVxcdTk2QzRcXHU5NkM2XFx1OTZDN1xcdTk2RUZcXHU5NkYyXFx1OTdDQ1xcdTk4MDVcXHU5ODA2XFx1OTgwOFxcdTk4RTdcXHU5OEVBXFx1OThFRlxcdTk4RTlcXHU5OEYyXFx1OThFRFxcdTk5QUVcXHU5OUFEXFx1OUVDM1xcdTlFQ0RcXHU5RUQxXFx1NEU4MlxcdTUwQURcXHU1MEI1XFx1NTBCMlxcdTUwQjNcXHU1MEM1XFx1NTBCRVxcdTUwQUNcXHU1MEI3XFx1NTBCQlxcdTUwQUZcXHU1MEM3XFx1NTI3RlxcdTUyNzdcXHU1MjdEXFx1NTJERlxcdTUyRTZcXHU1MkU0XFx1NTJFMlxcdTUyRTNcXHU1MzJGXFx1NTVERlxcdTU1RThcXHU1NUQzXFx1NTVFNlxcdTU1Q0VcXHU1NURDXFx1NTVDN1xcdTU1RDFcXHU1NUUzXFx1NTVFNFxcdTU1RUZcXHU1NURBXFx1NTVFMVxcdTU1QzVcXHU1NUM2XFx1NTVFNVxcdTU1QzlcXHU1NzEyXFx1NTcxM1xcdTU4NUVcXHU1ODUxXFx1NTg1OFxcdTU4NTdcXHU1ODVBXFx1NTg1NFxcdTU4NkJcXHU1ODRDXFx1NTg2RFxcdTU4NEFcXHU1ODYyXFx1NTg1MlxcdTU4NEJcXHU1OTY3XFx1NUFDMVxcdTVBQzlcXHU1QUNDXFx1NUFCRVxcdTVBQkRcXHU1QUJDXCJdLFxuICAgICAgW1wiYjc0MFwiLCBcIlxcdTVBQjNcXHU1QUMyXFx1NUFCMlxcdTVENjlcXHU1RDZGXFx1NUU0Q1xcdTVFNzlcXHU1RUM5XFx1NUVDOFxcdTVGMTJcXHU1RjU5XFx1NUZBQ1xcdTVGQUVcXHU2MTFBXFx1NjEwRlxcdTYxNDhcXHU2MTFGXFx1NjBGM1xcdTYxMUJcXHU2MEY5XFx1NjEwMVxcdTYxMDhcXHU2MTRFXFx1NjE0Q1xcdTYxNDRcXHU2MTREXFx1NjEzRVxcdTYxMzRcXHU2MTI3XFx1NjEwRFxcdTYxMDZcXHU2MTM3XFx1NjIyMVxcdTYyMjJcXHU2NDEzXFx1NjQzRVxcdTY0MUVcXHU2NDJBXFx1NjQyRFxcdTY0M0RcXHU2NDJDXFx1NjQwRlxcdTY0MUNcXHU2NDE0XFx1NjQwRFxcdTY0MzZcXHU2NDE2XFx1NjQxN1xcdTY0MDZcXHU2NTZDXFx1NjU5RlxcdTY1QjBcXHU2Njk3XFx1NjY4OVxcdTY2ODdcXHU2Njg4XFx1NjY5NlxcdTY2ODRcXHU2Njk4XFx1NjY4RFxcdTY3MDNcXHU2OTk0XFx1Njk2RFwiXSxcbiAgICAgIFtcImI3YTFcIiwgXCJcXHU2OTVBXFx1Njk3N1xcdTY5NjBcXHU2OTU0XFx1Njk3NVxcdTY5MzBcXHU2OTgyXFx1Njk0QVxcdTY5NjhcXHU2OTZCXFx1Njk1RVxcdTY5NTNcXHU2OTc5XFx1Njk4NlxcdTY5NURcXHU2OTYzXFx1Njk1QlxcdTZCNDdcXHU2QjcyXFx1NkJDMFxcdTZCQkZcXHU2QkQzXFx1NkJGRFxcdTZFQTJcXHU2RUFGXFx1NkVEM1xcdTZFQjZcXHU2RUMyXFx1NkU5MFxcdTZFOURcXHU2RUM3XFx1NkVDNVxcdTZFQTVcXHU2RTk4XFx1NkVCQ1xcdTZFQkFcXHU2RUFCXFx1NkVEMVxcdTZFOTZcXHU2RTlDXFx1NkVDNFxcdTZFRDRcXHU2RUFBXFx1NkVBN1xcdTZFQjRcXHU3MTRFXFx1NzE1OVxcdTcxNjlcXHU3MTY0XFx1NzE0OVxcdTcxNjdcXHU3MTVDXFx1NzE2Q1xcdTcxNjZcXHU3MTRDXFx1NzE2NVxcdTcxNUVcXHU3MTQ2XFx1NzE2OFxcdTcxNTZcXHU3MjNBXFx1NzI1MlxcdTczMzdcXHU3MzQ1XFx1NzMzRlxcdTczM0VcXHU3NDZGXFx1NzQ1QVxcdTc0NTVcXHU3NDVGXFx1NzQ1RVxcdTc0NDFcXHU3NDNGXFx1NzQ1OVxcdTc0NUJcXHU3NDVDXFx1NzU3NlxcdTc1NzhcXHU3NjAwXFx1NzVGMFxcdTc2MDFcXHU3NUYyXFx1NzVGMVxcdTc1RkFcXHU3NUZGXFx1NzVGNFxcdTc1RjNcXHU3NkRFXFx1NzZERlxcdTc3NUJcXHU3NzZCXFx1Nzc2NlxcdTc3NUVcXHU3NzYzXCJdLFxuICAgICAgW1wiYjg0MFwiLCBcIlxcdTc3NzlcXHU3NzZBXFx1Nzc2Q1xcdTc3NUNcXHU3NzY1XFx1Nzc2OFxcdTc3NjJcXHU3N0VFXFx1Nzg4RVxcdTc4QjBcXHU3ODk3XFx1Nzg5OFxcdTc4OENcXHU3ODg5XFx1Nzg3Q1xcdTc4OTFcXHU3ODkzXFx1Nzg3RlxcdTc5N0FcXHU3OTdGXFx1Nzk4MVxcdTg0MkNcXHU3OUJEXFx1N0ExQ1xcdTdBMUFcXHU3QTIwXFx1N0ExNFxcdTdBMUZcXHU3QTFFXFx1N0E5RlxcdTdBQTBcXHU3Qjc3XFx1N0JDMFxcdTdCNjBcXHU3QjZFXFx1N0I2N1xcdTdDQjFcXHU3Q0IzXFx1N0NCNVxcdTdEOTNcXHU3RDc5XFx1N0Q5MVxcdTdEODFcXHU3RDhGXFx1N0Q1QlxcdTdGNkVcXHU3RjY5XFx1N0Y2QVxcdTdGNzJcXHU3RkE5XFx1N0ZBOFxcdTdGQTRcXHU4MDU2XFx1ODA1OFxcdTgwODZcXHU4MDg0XFx1ODE3MVxcdTgxNzBcXHU4MTc4XFx1ODE2NVxcdTgxNkVcXHU4MTczXFx1ODE2QlwiXSxcbiAgICAgIFtcImI4YTFcIiwgXCJcXHU4MTc5XFx1ODE3QVxcdTgxNjZcXHU4MjA1XFx1ODI0N1xcdTg0ODJcXHU4NDc3XFx1ODQzRFxcdTg0MzFcXHU4NDc1XFx1ODQ2NlxcdTg0NkJcXHU4NDQ5XFx1ODQ2Q1xcdTg0NUJcXHU4NDNDXFx1ODQzNVxcdTg0NjFcXHU4NDYzXFx1ODQ2OVxcdTg0NkRcXHU4NDQ2XFx1ODY1RVxcdTg2NUNcXHU4NjVGXFx1ODZGOVxcdTg3MTNcXHU4NzA4XFx1ODcwN1xcdTg3MDBcXHU4NkZFXFx1ODZGQlxcdTg3MDJcXHU4NzAzXFx1ODcwNlxcdTg3MEFcXHU4ODU5XFx1ODhERlxcdTg4RDRcXHU4OEQ5XFx1ODhEQ1xcdTg4RDhcXHU4OEREXFx1ODhFMVxcdTg4Q0FcXHU4OEQ1XFx1ODhEMlxcdTg5OUNcXHU4OUUzXFx1OEE2QlxcdThBNzJcXHU4QTczXFx1OEE2NlxcdThBNjlcXHU4QTcwXFx1OEE4N1xcdThBN0NcXHU4QTYzXFx1OEFBMFxcdThBNzFcXHU4QTg1XFx1OEE2RFxcdThBNjJcXHU4QTZFXFx1OEE2Q1xcdThBNzlcXHU4QTdCXFx1OEEzRVxcdThBNjhcXHU4QzYyXFx1OEM4QVxcdThDODlcXHU4Q0NBXFx1OENDN1xcdThDQzhcXHU4Q0M0XFx1OENCMlxcdThDQzNcXHU4Q0MyXFx1OENDNVxcdThERTFcXHU4RERGXFx1OERFOFxcdThERUZcXHU4REYzXFx1OERGQVxcdThERUFcXHU4REU0XFx1OERFNlxcdThFQjJcXHU4RjAzXFx1OEYwOVxcdThFRkVcXHU4RjBBXCJdLFxuICAgICAgW1wiYjk0MFwiLCBcIlxcdThGOUZcXHU4RkIyXFx1OTA0QlxcdTkwNEFcXHU5MDUzXFx1OTA0MlxcdTkwNTRcXHU5MDNDXFx1OTA1NVxcdTkwNTBcXHU5MDQ3XFx1OTA0RlxcdTkwNEVcXHU5MDREXFx1OTA1MVxcdTkwM0VcXHU5MDQxXFx1OTExMlxcdTkxMTdcXHU5MTZDXFx1OTE2QVxcdTkxNjlcXHU5MUM5XFx1OTIzN1xcdTkyNTdcXHU5MjM4XFx1OTIzRFxcdTkyNDBcXHU5MjNFXFx1OTI1QlxcdTkyNEJcXHU5MjY0XFx1OTI1MVxcdTkyMzRcXHU5MjQ5XFx1OTI0RFxcdTkyNDVcXHU5MjM5XFx1OTIzRlxcdTkyNUFcXHU5NTk4XFx1OTY5OFxcdTk2OTRcXHU5Njk1XFx1OTZDRFxcdTk2Q0JcXHU5NkM5XFx1OTZDQVxcdTk2RjdcXHU5NkZCXFx1OTZGOVxcdTk2RjZcXHU5NzU2XFx1OTc3NFxcdTk3NzZcXHU5ODEwXFx1OTgxMVxcdTk4MTNcXHU5ODBBXFx1OTgxMlxcdTk4MENcXHU5OEZDXFx1OThGNFwiXSxcbiAgICAgIFtcImI5YTFcIiwgXCJcXHU5OEZEXFx1OThGRVxcdTk5QjNcXHU5OUIxXFx1OTlCNFxcdTlBRTFcXHU5Q0U5XFx1OUU4MlxcdTlGMEVcXHU5RjEzXFx1OUYyMFxcdTUwRTdcXHU1MEVFXFx1NTBFNVxcdTUwRDZcXHU1MEVEXFx1NTBEQVxcdTUwRDVcXHU1MENGXFx1NTBEMVxcdTUwRjFcXHU1MENFXFx1NTBFOVxcdTUxNjJcXHU1MUYzXFx1NTI4M1xcdTUyODJcXHU1MzMxXFx1NTNBRFxcdTU1RkVcXHU1NjAwXFx1NTYxQlxcdTU2MTdcXHU1NUZEXFx1NTYxNFxcdTU2MDZcXHU1NjA5XFx1NTYwRFxcdTU2MEVcXHU1NUY3XFx1NTYxNlxcdTU2MUZcXHU1NjA4XFx1NTYxMFxcdTU1RjZcXHU1NzE4XFx1NTcxNlxcdTU4NzVcXHU1ODdFXFx1NTg4M1xcdTU4OTNcXHU1ODhBXFx1NTg3OVxcdTU4ODVcXHU1ODdEXFx1NThGRFxcdTU5MjVcXHU1OTIyXFx1NTkyNFxcdTU5NkFcXHU1OTY5XFx1NUFFMVxcdTVBRTZcXHU1QUU5XFx1NUFEN1xcdTVBRDZcXHU1QUQ4XFx1NUFFM1xcdTVCNzVcXHU1QkRFXFx1NUJFN1xcdTVCRTFcXHU1QkU1XFx1NUJFNlxcdTVCRThcXHU1QkUyXFx1NUJFNFxcdTVCREZcXHU1QzBEXFx1NUM2MlxcdTVEODRcXHU1RDg3XFx1NUU1QlxcdTVFNjNcXHU1RTU1XFx1NUU1N1xcdTVFNTRcXHU1RUQzXFx1NUVENlxcdTVGMEFcXHU1RjQ2XFx1NUY3MFxcdTVGQjlcXHU2MTQ3XCJdLFxuICAgICAgW1wiYmE0MFwiLCBcIlxcdTYxM0ZcXHU2MTRCXFx1NjE3N1xcdTYxNjJcXHU2MTYzXFx1NjE1RlxcdTYxNUFcXHU2MTU4XFx1NjE3NVxcdTYyMkFcXHU2NDg3XFx1NjQ1OFxcdTY0NTRcXHU2NEE0XFx1NjQ3OFxcdTY0NUZcXHU2NDdBXFx1NjQ1MVxcdTY0NjdcXHU2NDM0XFx1NjQ2RFxcdTY0N0JcXHU2NTcyXFx1NjVBMVxcdTY1RDdcXHU2NUQ2XFx1NjZBMlxcdTY2QThcXHU2NjlEXFx1Njk5Q1xcdTY5QThcXHU2OTk1XFx1NjlDMVxcdTY5QUVcXHU2OUQzXFx1NjlDQlxcdTY5OUJcXHU2OUI3XFx1NjlCQlxcdTY5QUJcXHU2OUI0XFx1NjlEMFxcdTY5Q0RcXHU2OUFEXFx1NjlDQ1xcdTY5QTZcXHU2OUMzXFx1NjlBM1xcdTZCNDlcXHU2QjRDXFx1NkMzM1xcdTZGMzNcXHU2RjE0XFx1NkVGRVxcdTZGMTNcXHU2RUY0XFx1NkYyOVxcdTZGM0VcXHU2RjIwXFx1NkYyQ1xcdTZGMEZcXHU2RjAyXFx1NkYyMlwiXSxcbiAgICAgIFtcImJhYTFcIiwgXCJcXHU2RUZGXFx1NkVFRlxcdTZGMDZcXHU2RjMxXFx1NkYzOFxcdTZGMzJcXHU2RjIzXFx1NkYxNVxcdTZGMkJcXHU2RjJGXFx1NkY4OFxcdTZGMkFcXHU2RUVDXFx1NkYwMVxcdTZFRjJcXHU2RUNDXFx1NkVGN1xcdTcxOTRcXHU3MTk5XFx1NzE3RFxcdTcxOEFcXHU3MTg0XFx1NzE5MlxcdTcyM0VcXHU3MjkyXFx1NzI5NlxcdTczNDRcXHU3MzUwXFx1NzQ2NFxcdTc0NjNcXHU3NDZBXFx1NzQ3MFxcdTc0NkRcXHU3NTA0XFx1NzU5MVxcdTc2MjdcXHU3NjBEXFx1NzYwQlxcdTc2MDlcXHU3NjEzXFx1NzZFMVxcdTc2RTNcXHU3Nzg0XFx1Nzc3RFxcdTc3N0ZcXHU3NzYxXFx1NzhDMVxcdTc4OUZcXHU3OEE3XFx1NzhCM1xcdTc4QTlcXHU3OEEzXFx1Nzk4RVxcdTc5OEZcXHU3OThEXFx1N0EyRVxcdTdBMzFcXHU3QUFBXFx1N0FBOVxcdTdBRURcXHU3QUVGXFx1N0JBMVxcdTdCOTVcXHU3QjhCXFx1N0I3NVxcdTdCOTdcXHU3QjlEXFx1N0I5NFxcdTdCOEZcXHU3QkI4XFx1N0I4N1xcdTdCODRcXHU3Q0I5XFx1N0NCRFxcdTdDQkVcXHU3REJCXFx1N0RCMFxcdTdEOUNcXHU3REJEXFx1N0RCRVxcdTdEQTBcXHU3RENBXFx1N0RCNFxcdTdEQjJcXHU3REIxXFx1N0RCQVxcdTdEQTJcXHU3REJGXFx1N0RCNVxcdTdEQjhcXHU3REFEXFx1N0REMlxcdTdEQzdcXHU3REFDXCJdLFxuICAgICAgW1wiYmI0MFwiLCBcIlxcdTdGNzBcXHU3RkUwXFx1N0ZFMVxcdTdGREZcXHU4MDVFXFx1ODA1QVxcdTgwODdcXHU4MTUwXFx1ODE4MFxcdTgxOEZcXHU4MTg4XFx1ODE4QVxcdTgxN0ZcXHU4MTgyXFx1ODFFN1xcdTgxRkFcXHU4MjA3XFx1ODIxNFxcdTgyMUVcXHU4MjRCXFx1ODRDOVxcdTg0QkZcXHU4NEM2XFx1ODRDNFxcdTg0OTlcXHU4NDlFXFx1ODRCMlxcdTg0OUNcXHU4NENCXFx1ODRCOFxcdTg0QzBcXHU4NEQzXFx1ODQ5MFxcdTg0QkNcXHU4NEQxXFx1ODRDQVxcdTg3M0ZcXHU4NzFDXFx1ODczQlxcdTg3MjJcXHU4NzI1XFx1ODczNFxcdTg3MThcXHU4NzU1XFx1ODczN1xcdTg3MjlcXHU4OEYzXFx1ODkwMlxcdTg4RjRcXHU4OEY5XFx1ODhGOFxcdTg4RkRcXHU4OEU4XFx1ODkxQVxcdTg4RUZcXHU4QUE2XFx1OEE4Q1xcdThBOUVcXHU4QUEzXFx1OEE4RFxcdThBQTFcXHU4QTkzXFx1OEFBNFwiXSxcbiAgICAgIFtcImJiYTFcIiwgXCJcXHU4QUFBXFx1OEFBNVxcdThBQThcXHU4QTk4XFx1OEE5MVxcdThBOUFcXHU4QUE3XFx1OEM2QVxcdThDOERcXHU4QzhDXFx1OENEM1xcdThDRDFcXHU4Q0QyXFx1OEQ2QlxcdThEOTlcXHU4RDk1XFx1OERGQ1xcdThGMTRcXHU4RjEyXFx1OEYxNVxcdThGMTNcXHU4RkEzXFx1OTA2MFxcdTkwNThcXHU5MDVDXFx1OTA2M1xcdTkwNTlcXHU5MDVFXFx1OTA2MlxcdTkwNURcXHU5MDVCXFx1OTExOVxcdTkxMThcXHU5MTFFXFx1OTE3NVxcdTkxNzhcXHU5MTc3XFx1OTE3NFxcdTkyNzhcXHU5MjgwXFx1OTI4NVxcdTkyOThcXHU5Mjk2XFx1OTI3QlxcdTkyOTNcXHU5MjlDXFx1OTJBOFxcdTkyN0NcXHU5MjkxXFx1OTVBMVxcdTk1QThcXHU5NUE5XFx1OTVBM1xcdTk1QTVcXHU5NUE0XFx1OTY5OVxcdTk2OUNcXHU5NjlCXFx1OTZDQ1xcdTk2RDJcXHU5NzAwXFx1OTc3Q1xcdTk3ODVcXHU5N0Y2XFx1OTgxN1xcdTk4MThcXHU5OEFGXFx1OThCMVxcdTk5MDNcXHU5OTA1XFx1OTkwQ1xcdTk5MDlcXHU5OUMxXFx1OUFBRlxcdTlBQjBcXHU5QUU2XFx1OUI0MVxcdTlCNDJcXHU5Q0Y0XFx1OUNGNlxcdTlDRjNcXHU5RUJDXFx1OUYzQlxcdTlGNEFcXHU1MTA0XFx1NTEwMFxcdTUwRkJcXHU1MEY1XFx1NTBGOVxcdTUxMDJcXHU1MTA4XFx1NTEwOVxcdTUxMDVcXHU1MURDXCJdLFxuICAgICAgW1wiYmM0MFwiLCBcIlxcdTUyODdcXHU1Mjg4XFx1NTI4OVxcdTUyOERcXHU1MjhBXFx1NTJGMFxcdTUzQjJcXHU1NjJFXFx1NTYzQlxcdTU2MzlcXHU1NjMyXFx1NTYzRlxcdTU2MzRcXHU1NjI5XFx1NTY1M1xcdTU2NEVcXHU1NjU3XFx1NTY3NFxcdTU2MzZcXHU1NjJGXFx1NTYzMFxcdTU4ODBcXHU1ODlGXFx1NTg5RVxcdTU4QjNcXHU1ODlDXFx1NThBRVxcdTU4QTlcXHU1OEE2XFx1NTk2RFxcdTVCMDlcXHU1QUZCXFx1NUIwQlxcdTVBRjVcXHU1QjBDXFx1NUIwOFxcdTVCRUVcXHU1QkVDXFx1NUJFOVxcdTVCRUJcXHU1QzY0XFx1NUM2NVxcdTVEOURcXHU1RDk0XFx1NUU2MlxcdTVFNUZcXHU1RTYxXFx1NUVFMlxcdTVFREFcXHU1RURGXFx1NUVERFxcdTVFRTNcXHU1RUUwXFx1NUY0OFxcdTVGNzFcXHU1RkI3XFx1NUZCNVxcdTYxNzZcXHU2MTY3XFx1NjE2RVxcdTYxNURcXHU2MTU1XFx1NjE4MlwiXSxcbiAgICAgIFtcImJjYTFcIiwgXCJcXHU2MTdDXFx1NjE3MFxcdTYxNkJcXHU2MTdFXFx1NjFBN1xcdTYxOTBcXHU2MUFCXFx1NjE4RVxcdTYxQUNcXHU2MTlBXFx1NjFBNFxcdTYxOTRcXHU2MUFFXFx1NjIyRVxcdTY0NjlcXHU2NDZGXFx1NjQ3OVxcdTY0OUVcXHU2NEIyXFx1NjQ4OFxcdTY0OTBcXHU2NEIwXFx1NjRBNVxcdTY0OTNcXHU2NDk1XFx1NjRBOVxcdTY0OTJcXHU2NEFFXFx1NjRBRFxcdTY0QUJcXHU2NDlBXFx1NjRBQ1xcdTY0OTlcXHU2NEEyXFx1NjRCM1xcdTY1NzVcXHU2NTc3XFx1NjU3OFxcdTY2QUVcXHU2NkFCXFx1NjZCNFxcdTY2QjFcXHU2QTIzXFx1NkExRlxcdTY5RThcXHU2QTAxXFx1NkExRVxcdTZBMTlcXHU2OUZEXFx1NkEyMVxcdTZBMTNcXHU2QTBBXFx1NjlGM1xcdTZBMDJcXHU2QTA1XFx1NjlFRFxcdTZBMTFcXHU2QjUwXFx1NkI0RVxcdTZCQTRcXHU2QkM1XFx1NkJDNlxcdTZGM0ZcXHU2RjdDXFx1NkY4NFxcdTZGNTFcXHU2RjY2XFx1NkY1NFxcdTZGODZcXHU2RjZEXFx1NkY1QlxcdTZGNzhcXHU2RjZFXFx1NkY4RVxcdTZGN0FcXHU2RjcwXFx1NkY2NFxcdTZGOTdcXHU2RjU4XFx1NkVENVxcdTZGNkZcXHU2RjYwXFx1NkY1RlxcdTcxOUZcXHU3MUFDXFx1NzFCMVxcdTcxQThcXHU3MjU2XFx1NzI5QlxcdTczNEVcXHU3MzU3XFx1NzQ2OVxcdTc0OEJcXHU3NDgzXCJdLFxuICAgICAgW1wiYmQ0MFwiLCBcIlxcdTc0N0VcXHU3NDgwXFx1NzU3RlxcdTc2MjBcXHU3NjI5XFx1NzYxRlxcdTc2MjRcXHU3NjI2XFx1NzYyMVxcdTc2MjJcXHU3NjlBXFx1NzZCQVxcdTc2RTRcXHU3NzhFXFx1Nzc4N1xcdTc3OENcXHU3NzkxXFx1Nzc4QlxcdTc4Q0JcXHU3OEM1XFx1NzhCQVxcdTc4Q0FcXHU3OEJFXFx1NzhENVxcdTc4QkNcXHU3OEQwXFx1N0EzRlxcdTdBM0NcXHU3QTQwXFx1N0EzRFxcdTdBMzdcXHU3QTNCXFx1N0FBRlxcdTdBQUVcXHU3QkFEXFx1N0JCMVxcdTdCQzRcXHU3QkI0XFx1N0JDNlxcdTdCQzdcXHU3QkMxXFx1N0JBMFxcdTdCQ0NcXHU3Q0NBXFx1N0RFMFxcdTdERjRcXHU3REVGXFx1N0RGQlxcdTdERDhcXHU3REVDXFx1N0RERFxcdTdERThcXHU3REUzXFx1N0REQVxcdTdEREVcXHU3REU5XFx1N0Q5RVxcdTdERDlcXHU3REYyXFx1N0RGOVxcdTdGNzVcXHU3Rjc3XFx1N0ZBRlwiXSxcbiAgICAgIFtcImJkYTFcIiwgXCJcXHU3RkU5XFx1ODAyNlxcdTgxOUJcXHU4MTlDXFx1ODE5RFxcdTgxQTBcXHU4MTlBXFx1ODE5OFxcdTg1MTdcXHU4NTNEXFx1ODUxQVxcdTg0RUVcXHU4NTJDXFx1ODUyRFxcdTg1MTNcXHU4NTExXFx1ODUyM1xcdTg1MjFcXHU4NTE0XFx1ODRFQ1xcdTg1MjVcXHU4NEZGXFx1ODUwNlxcdTg3ODJcXHU4Nzc0XFx1ODc3NlxcdTg3NjBcXHU4NzY2XFx1ODc3OFxcdTg3NjhcXHU4NzU5XFx1ODc1N1xcdTg3NENcXHU4NzUzXFx1ODg1QlxcdTg4NURcXHU4OTEwXFx1ODkwN1xcdTg5MTJcXHU4OTEzXFx1ODkxNVxcdTg5MEFcXHU4QUJDXFx1OEFEMlxcdThBQzdcXHU4QUM0XFx1OEE5NVxcdThBQ0JcXHU4QUY4XFx1OEFCMlxcdThBQzlcXHU4QUMyXFx1OEFCRlxcdThBQjBcXHU4QUQ2XFx1OEFDRFxcdThBQjZcXHU4QUI5XFx1OEFEQlxcdThDNENcXHU4QzRFXFx1OEM2Q1xcdThDRTBcXHU4Q0RFXFx1OENFNlxcdThDRTRcXHU4Q0VDXFx1OENFRFxcdThDRTJcXHU4Q0UzXFx1OENEQ1xcdThDRUFcXHU4Q0UxXFx1OEQ2RFxcdThEOUZcXHU4REEzXFx1OEUyQlxcdThFMTBcXHU4RTFEXFx1OEUyMlxcdThFMEZcXHU4RTI5XFx1OEUxRlxcdThFMjFcXHU4RTFFXFx1OEVCQVxcdThGMURcXHU4RjFCXFx1OEYxRlxcdThGMjlcXHU4RjI2XFx1OEYyQVxcdThGMUNcXHU4RjFFXCJdLFxuICAgICAgW1wiYmU0MFwiLCBcIlxcdThGMjVcXHU5MDY5XFx1OTA2RVxcdTkwNjhcXHU5MDZEXFx1OTA3N1xcdTkxMzBcXHU5MTJEXFx1OTEyN1xcdTkxMzFcXHU5MTg3XFx1OTE4OVxcdTkxOEJcXHU5MTgzXFx1OTJDNVxcdTkyQkJcXHU5MkI3XFx1OTJFQVxcdTkyQUNcXHU5MkU0XFx1OTJDMVxcdTkyQjNcXHU5MkJDXFx1OTJEMlxcdTkyQzdcXHU5MkYwXFx1OTJCMlxcdTk1QURcXHU5NUIxXFx1OTcwNFxcdTk3MDZcXHU5NzA3XFx1OTcwOVxcdTk3NjBcXHU5NzhEXFx1OTc4QlxcdTk3OEZcXHU5ODIxXFx1OTgyQlxcdTk4MUNcXHU5OEIzXFx1OTkwQVxcdTk5MTNcXHU5OTEyXFx1OTkxOFxcdTk5RERcXHU5OUQwXFx1OTlERlxcdTk5REJcXHU5OUQxXFx1OTlENVxcdTk5RDJcXHU5OUQ5XFx1OUFCN1xcdTlBRUVcXHU5QUVGXFx1OUIyN1xcdTlCNDVcXHU5QjQ0XFx1OUI3N1xcdTlCNkZcXHU5RDA2XFx1OUQwOVwiXSxcbiAgICAgIFtcImJlYTFcIiwgXCJcXHU5RDAzXFx1OUVBOVxcdTlFQkVcXHU5RUNFXFx1NThBOFxcdTlGNTJcXHU1MTEyXFx1NTExOFxcdTUxMTRcXHU1MTEwXFx1NTExNVxcdTUxODBcXHU1MUFBXFx1NTFERFxcdTUyOTFcXHU1MjkzXFx1NTJGM1xcdTU2NTlcXHU1NjZCXFx1NTY3OVxcdTU2NjlcXHU1NjY0XFx1NTY3OFxcdTU2NkFcXHU1NjY4XFx1NTY2NVxcdTU2NzFcXHU1NjZGXFx1NTY2Q1xcdTU2NjJcXHU1Njc2XFx1NThDMVxcdTU4QkVcXHU1OEM3XFx1NThDNVxcdTU5NkVcXHU1QjFEXFx1NUIzNFxcdTVCNzhcXHU1QkYwXFx1NUMwRVxcdTVGNEFcXHU2MUIyXFx1NjE5MVxcdTYxQTlcXHU2MThBXFx1NjFDRFxcdTYxQjZcXHU2MUJFXFx1NjFDQVxcdTYxQzhcXHU2MjMwXFx1NjRDNVxcdTY0QzFcXHU2NENCXFx1NjRCQlxcdTY0QkNcXHU2NERBXFx1NjRDNFxcdTY0QzdcXHU2NEMyXFx1NjRDRFxcdTY0QkZcXHU2NEQyXFx1NjRENFxcdTY0QkVcXHU2NTc0XFx1NjZDNlxcdTY2QzlcXHU2NkI5XFx1NjZDNFxcdTY2QzdcXHU2NkI4XFx1NkEzRFxcdTZBMzhcXHU2QTNBXFx1NkE1OVxcdTZBNkJcXHU2QTU4XFx1NkEzOVxcdTZBNDRcXHU2QTYyXFx1NkE2MVxcdTZBNEJcXHU2QTQ3XFx1NkEzNVxcdTZBNUZcXHU2QTQ4XFx1NkI1OVxcdTZCNzdcXHU2QzA1XFx1NkZDMlxcdTZGQjFcXHU2RkExXCJdLFxuICAgICAgW1wiYmY0MFwiLCBcIlxcdTZGQzNcXHU2RkE0XFx1NkZDMVxcdTZGQTdcXHU2RkIzXFx1NkZDMFxcdTZGQjlcXHU2RkI2XFx1NkZBNlxcdTZGQTBcXHU2RkI0XFx1NzFCRVxcdTcxQzlcXHU3MUQwXFx1NzFEMlxcdTcxQzhcXHU3MUQ1XFx1NzFCOVxcdTcxQ0VcXHU3MUQ5XFx1NzFEQ1xcdTcxQzNcXHU3MUM0XFx1NzM2OFxcdTc0OUNcXHU3NEEzXFx1NzQ5OFxcdTc0OUZcXHU3NDlFXFx1NzRFMlxcdTc1MENcXHU3NTBEXFx1NzYzNFxcdTc2MzhcXHU3NjNBXFx1NzZFN1xcdTc2RTVcXHU3N0EwXFx1Nzc5RVxcdTc3OUZcXHU3N0E1XFx1NzhFOFxcdTc4REFcXHU3OEVDXFx1NzhFN1xcdTc5QTZcXHU3QTREXFx1N0E0RVxcdTdBNDZcXHU3QTRDXFx1N0E0QlxcdTdBQkFcXHU3QkQ5XFx1N0MxMVxcdTdCQzlcXHU3QkU0XFx1N0JEQlxcdTdCRTFcXHU3QkU5XFx1N0JFNlxcdTdDRDVcXHU3Q0Q2XFx1N0UwQVwiXSxcbiAgICAgIFtcImJmYTFcIiwgXCJcXHU3RTExXFx1N0UwOFxcdTdFMUJcXHU3RTIzXFx1N0UxRVxcdTdFMURcXHU3RTA5XFx1N0UxMFxcdTdGNzlcXHU3RkIyXFx1N0ZGMFxcdTdGRjFcXHU3RkVFXFx1ODAyOFxcdTgxQjNcXHU4MUE5XFx1ODFBOFxcdTgxRkJcXHU4MjA4XFx1ODI1OFxcdTgyNTlcXHU4NTRBXFx1ODU1OVxcdTg1NDhcXHU4NTY4XFx1ODU2OVxcdTg1NDNcXHU4NTQ5XFx1ODU2RFxcdTg1NkFcXHU4NTVFXFx1ODc4M1xcdTg3OUZcXHU4NzlFXFx1ODdBMlxcdTg3OERcXHU4ODYxXFx1ODkyQVxcdTg5MzJcXHU4OTI1XFx1ODkyQlxcdTg5MjFcXHU4OUFBXFx1ODlBNlxcdThBRTZcXHU4QUZBXFx1OEFFQlxcdThBRjFcXHU4QjAwXFx1OEFEQ1xcdThBRTdcXHU4QUVFXFx1OEFGRVxcdThCMDFcXHU4QjAyXFx1OEFGN1xcdThBRURcXHU4QUYzXFx1OEFGNlxcdThBRkNcXHU4QzZCXFx1OEM2RFxcdThDOTNcXHU4Q0Y0XFx1OEU0NFxcdThFMzFcXHU4RTM0XFx1OEU0MlxcdThFMzlcXHU4RTM1XFx1OEYzQlxcdThGMkZcXHU4RjM4XFx1OEYzM1xcdThGQThcXHU4RkE2XFx1OTA3NVxcdTkwNzRcXHU5MDc4XFx1OTA3MlxcdTkwN0NcXHU5MDdBXFx1OTEzNFxcdTkxOTJcXHU5MzIwXFx1OTMzNlxcdTkyRjhcXHU5MzMzXFx1OTMyRlxcdTkzMjJcXHU5MkZDXFx1OTMyQlxcdTkzMDRcXHU5MzFBXCJdLFxuICAgICAgW1wiYzA0MFwiLCBcIlxcdTkzMTBcXHU5MzI2XFx1OTMyMVxcdTkzMTVcXHU5MzJFXFx1OTMxOVxcdTk1QkJcXHU5NkE3XFx1OTZBOFxcdTk2QUFcXHU5NkQ1XFx1OTcwRVxcdTk3MTFcXHU5NzE2XFx1OTcwRFxcdTk3MTNcXHU5NzBGXFx1OTc1QlxcdTk3NUNcXHU5NzY2XFx1OTc5OFxcdTk4MzBcXHU5ODM4XFx1OTgzQlxcdTk4MzdcXHU5ODJEXFx1OTgzOVxcdTk4MjRcXHU5OTEwXFx1OTkyOFxcdTk5MUVcXHU5OTFCXFx1OTkyMVxcdTk5MUFcXHU5OUVEXFx1OTlFMlxcdTk5RjFcXHU5QUI4XFx1OUFCQ1xcdTlBRkJcXHU5QUVEXFx1OUIyOFxcdTlCOTFcXHU5RDE1XFx1OUQyM1xcdTlEMjZcXHU5RDI4XFx1OUQxMlxcdTlEMUJcXHU5RUQ4XFx1OUVENFxcdTlGOERcXHU5RjlDXFx1NTEyQVxcdTUxMUZcXHU1MTIxXFx1NTEzMlxcdTUyRjVcXHU1NjhFXFx1NTY4MFxcdTU2OTBcXHU1Njg1XFx1NTY4N1wiXSxcbiAgICAgIFtcImMwYTFcIiwgXCJcXHU1NjhGXFx1NThENVxcdTU4RDNcXHU1OEQxXFx1NThDRVxcdTVCMzBcXHU1QjJBXFx1NUIyNFxcdTVCN0FcXHU1QzM3XFx1NUM2OFxcdTVEQkNcXHU1REJBXFx1NURCRFxcdTVEQjhcXHU1RTZCXFx1NUY0Q1xcdTVGQkRcXHU2MUM5XFx1NjFDMlxcdTYxQzdcXHU2MUU2XFx1NjFDQlxcdTYyMzJcXHU2MjM0XFx1NjRDRVxcdTY0Q0FcXHU2NEQ4XFx1NjRFMFxcdTY0RjBcXHU2NEU2XFx1NjRFQ1xcdTY0RjFcXHU2NEUyXFx1NjRFRFxcdTY1ODJcXHU2NTgzXFx1NjZEOVxcdTY2RDZcXHU2QTgwXFx1NkE5NFxcdTZBODRcXHU2QUEyXFx1NkE5Q1xcdTZBREJcXHU2QUEzXFx1NkE3RVxcdTZBOTdcXHU2QTkwXFx1NkFBMFxcdTZCNUNcXHU2QkFFXFx1NkJEQVxcdTZDMDhcXHU2RkQ4XFx1NkZGMVxcdTZGREZcXHU2RkUwXFx1NkZEQlxcdTZGRTRcXHU2RkVCXFx1NkZFRlxcdTZGODBcXHU2RkVDXFx1NkZFMVxcdTZGRTlcXHU2RkQ1XFx1NkZFRVxcdTZGRjBcXHU3MUU3XFx1NzFERlxcdTcxRUVcXHU3MUU2XFx1NzFFNVxcdTcxRURcXHU3MUVDXFx1NzFGNFxcdTcxRTBcXHU3MjM1XFx1NzI0NlxcdTczNzBcXHU3MzcyXFx1NzRBOVxcdTc0QjBcXHU3NEE2XFx1NzRBOFxcdTc2NDZcXHU3NjQyXFx1NzY0Q1xcdTc2RUFcXHU3N0IzXFx1NzdBQVxcdTc3QjBcXHU3N0FDXCJdLFxuICAgICAgW1wiYzE0MFwiLCBcIlxcdTc3QTdcXHU3N0FEXFx1NzdFRlxcdTc4RjdcXHU3OEZBXFx1NzhGNFxcdTc4RUZcXHU3OTAxXFx1NzlBN1xcdTc5QUFcXHU3QTU3XFx1N0FCRlxcdTdDMDdcXHU3QzBEXFx1N0JGRVxcdTdCRjdcXHU3QzBDXFx1N0JFMFxcdTdDRTBcXHU3Q0RDXFx1N0NERVxcdTdDRTJcXHU3Q0RGXFx1N0NEOVxcdTdDRERcXHU3RTJFXFx1N0UzRVxcdTdFNDZcXHU3RTM3XFx1N0UzMlxcdTdFNDNcXHU3RTJCXFx1N0UzRFxcdTdFMzFcXHU3RTQ1XFx1N0U0MVxcdTdFMzRcXHU3RTM5XFx1N0U0OFxcdTdFMzVcXHU3RTNGXFx1N0UyRlxcdTdGNDRcXHU3RkYzXFx1N0ZGQ1xcdTgwNzFcXHU4MDcyXFx1ODA3MFxcdTgwNkZcXHU4MDczXFx1ODFDNlxcdTgxQzNcXHU4MUJBXFx1ODFDMlxcdTgxQzBcXHU4MUJGXFx1ODFCRFxcdTgxQzlcXHU4MUJFXFx1ODFFOFxcdTgyMDlcXHU4MjcxXFx1ODVBQVwiXSxcbiAgICAgIFtcImMxYTFcIiwgXCJcXHU4NTg0XFx1ODU3RVxcdTg1OUNcXHU4NTkxXFx1ODU5NFxcdTg1QUZcXHU4NTlCXFx1ODU4N1xcdTg1QThcXHU4NThBXFx1ODY2N1xcdTg3QzBcXHU4N0QxXFx1ODdCM1xcdTg3RDJcXHU4N0M2XFx1ODdBQlxcdTg3QkJcXHU4N0JBXFx1ODdDOFxcdTg3Q0JcXHU4OTNCXFx1ODkzNlxcdTg5NDRcXHU4OTM4XFx1ODkzRFxcdTg5QUNcXHU4QjBFXFx1OEIxN1xcdThCMTlcXHU4QjFCXFx1OEIwQVxcdThCMjBcXHU4QjFEXFx1OEIwNFxcdThCMTBcXHU4QzQxXFx1OEMzRlxcdThDNzNcXHU4Q0ZBXFx1OENGRFxcdThDRkNcXHU4Q0Y4XFx1OENGQlxcdThEQThcXHU4RTQ5XFx1OEU0QlxcdThFNDhcXHU4RTRBXFx1OEY0NFxcdThGM0VcXHU4RjQyXFx1OEY0NVxcdThGM0ZcXHU5MDdGXFx1OTA3RFxcdTkwODRcXHU5MDgxXFx1OTA4MlxcdTkwODBcXHU5MTM5XFx1OTFBM1xcdTkxOUVcXHU5MTlDXFx1OTM0RFxcdTkzODJcXHU5MzI4XFx1OTM3NVxcdTkzNEFcXHU5MzY1XFx1OTM0QlxcdTkzMThcXHU5MzdFXFx1OTM2Q1xcdTkzNUJcXHU5MzcwXFx1OTM1QVxcdTkzNTRcXHU5NUNBXFx1OTVDQlxcdTk1Q0NcXHU5NUM4XFx1OTVDNlxcdTk2QjFcXHU5NkI4XFx1OTZENlxcdTk3MUNcXHU5NzFFXFx1OTdBMFxcdTk3RDNcXHU5ODQ2XFx1OThCNlxcdTk5MzVcXHU5QTAxXCJdLFxuICAgICAgW1wiYzI0MFwiLCBcIlxcdTk5RkZcXHU5QkFFXFx1OUJBQlxcdTlCQUFcXHU5QkFEXFx1OUQzQlxcdTlEM0ZcXHU5RThCXFx1OUVDRlxcdTlFREVcXHU5RURDXFx1OUVERFxcdTlFREJcXHU5RjNFXFx1OUY0QlxcdTUzRTJcXHU1Njk1XFx1NTZBRVxcdTU4RDlcXHU1OEQ4XFx1NUIzOFxcdTVGNURcXHU2MUUzXFx1NjIzM1xcdTY0RjRcXHU2NEYyXFx1NjRGRVxcdTY1MDZcXHU2NEZBXFx1NjRGQlxcdTY0RjdcXHU2NUI3XFx1NjZEQ1xcdTY3MjZcXHU2QUIzXFx1NkFBQ1xcdTZBQzNcXHU2QUJCXFx1NkFCOFxcdTZBQzJcXHU2QUFFXFx1NkFBRlxcdTZCNUZcXHU2Qjc4XFx1NkJBRlxcdTcwMDlcXHU3MDBCXFx1NkZGRVxcdTcwMDZcXHU2RkZBXFx1NzAxMVxcdTcwMEZcXHU3MUZCXFx1NzFGQ1xcdTcxRkVcXHU3MUY4XFx1NzM3N1xcdTczNzVcXHU3NEE3XFx1NzRCRlxcdTc1MTVcXHU3NjU2XFx1NzY1OFwiXSxcbiAgICAgIFtcImMyYTFcIiwgXCJcXHU3NjUyXFx1NzdCRFxcdTc3QkZcXHU3N0JCXFx1NzdCQ1xcdTc5MEVcXHU3OUFFXFx1N0E2MVxcdTdBNjJcXHU3QTYwXFx1N0FDNFxcdTdBQzVcXHU3QzJCXFx1N0MyN1xcdTdDMkFcXHU3QzFFXFx1N0MyM1xcdTdDMjFcXHU3Q0U3XFx1N0U1NFxcdTdFNTVcXHU3RTVFXFx1N0U1QVxcdTdFNjFcXHU3RTUyXFx1N0U1OVxcdTdGNDhcXHU3RkY5XFx1N0ZGQlxcdTgwNzdcXHU4MDc2XFx1ODFDRFxcdTgxQ0ZcXHU4MjBBXFx1ODVDRlxcdTg1QTlcXHU4NUNEXFx1ODVEMFxcdTg1QzlcXHU4NUIwXFx1ODVCQVxcdTg1QjlcXHU4NUE2XFx1ODdFRlxcdTg3RUNcXHU4N0YyXFx1ODdFMFxcdTg5ODZcXHU4OUIyXFx1ODlGNFxcdThCMjhcXHU4QjM5XFx1OEIyQ1xcdThCMkJcXHU4QzUwXFx1OEQwNVxcdThFNTlcXHU4RTYzXFx1OEU2NlxcdThFNjRcXHU4RTVGXFx1OEU1NVxcdThFQzBcXHU4RjQ5XFx1OEY0RFxcdTkwODdcXHU5MDgzXFx1OTA4OFxcdTkxQUJcXHU5MUFDXFx1OTFEMFxcdTkzOTRcXHU5MzhBXFx1OTM5NlxcdTkzQTJcXHU5M0IzXFx1OTNBRVxcdTkzQUNcXHU5M0IwXFx1OTM5OFxcdTkzOUFcXHU5Mzk3XFx1OTVENFxcdTk1RDZcXHU5NUQwXFx1OTVENVxcdTk2RTJcXHU5NkRDXFx1OTZEOVxcdTk2REJcXHU5NkRFXFx1OTcyNFxcdTk3QTNcXHU5N0E2XCJdLFxuICAgICAgW1wiYzM0MFwiLCBcIlxcdTk3QURcXHU5N0Y5XFx1OTg0RFxcdTk4NEZcXHU5ODRDXFx1OTg0RVxcdTk4NTNcXHU5OEJBXFx1OTkzRVxcdTk5M0ZcXHU5OTNEXFx1OTkyRVxcdTk5QTVcXHU5QTBFXFx1OUFDMVxcdTlCMDNcXHU5QjA2XFx1OUI0RlxcdTlCNEVcXHU5QjREXFx1OUJDQVxcdTlCQzlcXHU5QkZEXFx1OUJDOFxcdTlCQzBcXHU5RDUxXFx1OUQ1RFxcdTlENjBcXHU5RUUwXFx1OUYxNVxcdTlGMkNcXHU1MTMzXFx1NTZBNVxcdTU4REVcXHU1OERGXFx1NThFMlxcdTVCRjVcXHU5RjkwXFx1NUVFQ1xcdTYxRjJcXHU2MUY3XFx1NjFGNlxcdTYxRjVcXHU2NTAwXFx1NjUwRlxcdTY2RTBcXHU2NkREXFx1NkFFNVxcdTZBRERcXHU2QURBXFx1NkFEM1xcdTcwMUJcXHU3MDFGXFx1NzAyOFxcdTcwMUFcXHU3MDFEXFx1NzAxNVxcdTcwMThcXHU3MjA2XFx1NzIwRFxcdTcyNThcXHU3MkEyXFx1NzM3OFwiXSxcbiAgICAgIFtcImMzYTFcIiwgXCJcXHU3MzdBXFx1NzRCRFxcdTc0Q0FcXHU3NEUzXFx1NzU4N1xcdTc1ODZcXHU3NjVGXFx1NzY2MVxcdTc3QzdcXHU3OTE5XFx1NzlCMVxcdTdBNkJcXHU3QTY5XFx1N0MzRVxcdTdDM0ZcXHU3QzM4XFx1N0MzRFxcdTdDMzdcXHU3QzQwXFx1N0U2QlxcdTdFNkRcXHU3RTc5XFx1N0U2OVxcdTdFNkFcXHU3Rjg1XFx1N0U3M1xcdTdGQjZcXHU3RkI5XFx1N0ZCOFxcdTgxRDhcXHU4NUU5XFx1ODVERFxcdTg1RUFcXHU4NUQ1XFx1ODVFNFxcdTg1RTVcXHU4NUY3XFx1ODdGQlxcdTg4MDVcXHU4ODBEXFx1ODdGOVxcdTg3RkVcXHU4OTYwXFx1ODk1RlxcdTg5NTZcXHU4OTVFXFx1OEI0MVxcdThCNUNcXHU4QjU4XFx1OEI0OVxcdThCNUFcXHU4QjRFXFx1OEI0RlxcdThCNDZcXHU4QjU5XFx1OEQwOFxcdThEMEFcXHU4RTdDXFx1OEU3MlxcdThFODdcXHU4RTc2XFx1OEU2Q1xcdThFN0FcXHU4RTc0XFx1OEY1NFxcdThGNEVcXHU4RkFEXFx1OTA4QVxcdTkwOEJcXHU5MUIxXFx1OTFBRVxcdTkzRTFcXHU5M0QxXFx1OTNERlxcdTkzQzNcXHU5M0M4XFx1OTNEQ1xcdTkzRERcXHU5M0Q2XFx1OTNFMlxcdTkzQ0RcXHU5M0Q4XFx1OTNFNFxcdTkzRDdcXHU5M0U4XFx1OTVEQ1xcdTk2QjRcXHU5NkUzXFx1OTcyQVxcdTk3MjdcXHU5NzYxXFx1OTdEQ1xcdTk3RkJcXHU5ODVFXCJdLFxuICAgICAgW1wiYzQ0MFwiLCBcIlxcdTk4NThcXHU5ODVCXFx1OThCQ1xcdTk5NDVcXHU5OTQ5XFx1OUExNlxcdTlBMTlcXHU5QjBEXFx1OUJFOFxcdTlCRTdcXHU5QkQ2XFx1OUJEQlxcdTlEODlcXHU5RDYxXFx1OUQ3MlxcdTlENkFcXHU5RDZDXFx1OUU5MlxcdTlFOTdcXHU5RTkzXFx1OUVCNFxcdTUyRjhcXHU1NkE4XFx1NTZCN1xcdTU2QjZcXHU1NkI0XFx1NTZCQ1xcdTU4RTRcXHU1QjQwXFx1NUI0M1xcdTVCN0RcXHU1QkY2XFx1NURDOVxcdTYxRjhcXHU2MUZBXFx1NjUxOFxcdTY1MTRcXHU2NTE5XFx1NjZFNlxcdTY3MjdcXHU2QUVDXFx1NzAzRVxcdTcwMzBcXHU3MDMyXFx1NzIxMFxcdTczN0JcXHU3NENGXFx1NzY2MlxcdTc2NjVcXHU3OTI2XFx1NzkyQVxcdTc5MkNcXHU3OTJCXFx1N0FDN1xcdTdBRjZcXHU3QzRDXFx1N0M0M1xcdTdDNERcXHU3Q0VGXFx1N0NGMFxcdThGQUVcXHU3RTdEXFx1N0U3Q1wiXSxcbiAgICAgIFtcImM0YTFcIiwgXCJcXHU3RTgyXFx1N0Y0Q1xcdTgwMDBcXHU4MURBXFx1ODI2NlxcdTg1RkJcXHU4NUY5XFx1ODYxMVxcdTg1RkFcXHU4NjA2XFx1ODYwQlxcdTg2MDdcXHU4NjBBXFx1ODgxNFxcdTg4MTVcXHU4OTY0XFx1ODlCQVxcdTg5RjhcXHU4QjcwXFx1OEI2Q1xcdThCNjZcXHU4QjZGXFx1OEI1RlxcdThCNkJcXHU4RDBGXFx1OEQwRFxcdThFODlcXHU4RTgxXFx1OEU4NVxcdThFODJcXHU5MUI0XFx1OTFDQlxcdTk0MThcXHU5NDAzXFx1OTNGRFxcdTk1RTFcXHU5NzMwXFx1OThDNFxcdTk5NTJcXHU5OTUxXFx1OTlBOFxcdTlBMkJcXHU5QTMwXFx1OUEzN1xcdTlBMzVcXHU5QzEzXFx1OUMwRFxcdTlFNzlcXHU5RUI1XFx1OUVFOFxcdTlGMkZcXHU5RjVGXFx1OUY2M1xcdTlGNjFcXHU1MTM3XFx1NTEzOFxcdTU2QzFcXHU1NkMwXFx1NTZDMlxcdTU5MTRcXHU1QzZDXFx1NURDRFxcdTYxRkNcXHU2MUZFXFx1NjUxRFxcdTY1MUNcXHU2NTk1XFx1NjZFOVxcdTZBRkJcXHU2QjA0XFx1NkFGQVxcdTZCQjJcXHU3MDRDXFx1NzIxQlxcdTcyQTdcXHU3NEQ2XFx1NzRENFxcdTc2NjlcXHU3N0QzXFx1N0M1MFxcdTdFOEZcXHU3RThDXFx1N0ZCQ1xcdTg2MTdcXHU4NjJEXFx1ODYxQVxcdTg4MjNcXHU4ODIyXFx1ODgyMVxcdTg4MUZcXHU4OTZBXFx1ODk2Q1xcdTg5QkRcXHU4Qjc0XCJdLFxuICAgICAgW1wiYzU0MFwiLCBcIlxcdThCNzdcXHU4QjdEXFx1OEQxM1xcdThFOEFcXHU4RThEXFx1OEU4QlxcdThGNUZcXHU4RkFGXFx1OTFCQVxcdTk0MkVcXHU5NDMzXFx1OTQzNVxcdTk0M0FcXHU5NDM4XFx1OTQzMlxcdTk0MkJcXHU5NUUyXFx1OTczOFxcdTk3MzlcXHU5NzMyXFx1OTdGRlxcdTk4NjdcXHU5ODY1XFx1OTk1N1xcdTlBNDVcXHU5QTQzXFx1OUE0MFxcdTlBM0VcXHU5QUNGXFx1OUI1NFxcdTlCNTFcXHU5QzJEXFx1OUMyNVxcdTlEQUZcXHU5REI0XFx1OURDMlxcdTlEQjhcXHU5RTlEXFx1OUVFRlxcdTlGMTlcXHU5RjVDXFx1OUY2NlxcdTlGNjdcXHU1MTNDXFx1NTEzQlxcdTU2QzhcXHU1NkNBXFx1NTZDOVxcdTVCN0ZcXHU1REQ0XFx1NUREMlxcdTVGNEVcXHU2MUZGXFx1NjUyNFxcdTZCMEFcXHU2QjYxXFx1NzA1MVxcdTcwNThcXHU3MzgwXFx1NzRFNFxcdTc1OEFcXHU3NjZFXFx1NzY2Q1wiXSxcbiAgICAgIFtcImM1YTFcIiwgXCJcXHU3OUIzXFx1N0M2MFxcdTdDNUZcXHU4MDdFXFx1ODA3RFxcdTgxREZcXHU4OTcyXFx1ODk2RlxcdTg5RkNcXHU4QjgwXFx1OEQxNlxcdThEMTdcXHU4RTkxXFx1OEU5M1xcdThGNjFcXHU5MTQ4XFx1OTQ0NFxcdTk0NTFcXHU5NDUyXFx1OTczRFxcdTk3M0VcXHU5N0MzXFx1OTdDMVxcdTk4NkJcXHU5OTU1XFx1OUE1NVxcdTlBNERcXHU5QUQyXFx1OUIxQVxcdTlDNDlcXHU5QzMxXFx1OUMzRVxcdTlDM0JcXHU5REQzXFx1OUREN1xcdTlGMzRcXHU5RjZDXFx1OUY2QVxcdTlGOTRcXHU1NkNDXFx1NURENlxcdTYyMDBcXHU2NTIzXFx1NjUyQlxcdTY1MkFcXHU2NkVDXFx1NkIxMFxcdTc0REFcXHU3QUNBXFx1N0M2NFxcdTdDNjNcXHU3QzY1XFx1N0U5M1xcdTdFOTZcXHU3RTk0XFx1ODFFMlxcdTg2MzhcXHU4NjNGXFx1ODgzMVxcdThCOEFcXHU5MDkwXFx1OTA4RlxcdTk0NjNcXHU5NDYwXFx1OTQ2NFxcdTk3NjhcXHU5ODZGXFx1OTk1Q1xcdTlBNUFcXHU5QTVCXFx1OUE1N1xcdTlBRDNcXHU5QUQ0XFx1OUFEMVxcdTlDNTRcXHU5QzU3XFx1OUM1NlxcdTlERTVcXHU5RTlGXFx1OUVGNFxcdTU2RDFcXHU1OEU5XFx1NjUyQ1xcdTcwNUVcXHU3NjcxXFx1NzY3MlxcdTc3RDdcXHU3RjUwXFx1N0Y4OFxcdTg4MzZcXHU4ODM5XFx1ODg2MlxcdThCOTNcXHU4QjkyXCJdLFxuICAgICAgW1wiYzY0MFwiLCBcIlxcdThCOTZcXHU4Mjc3XFx1OEQxQlxcdTkxQzBcXHU5NDZBXFx1OTc0MlxcdTk3NDhcXHU5NzQ0XFx1OTdDNlxcdTk4NzBcXHU5QTVGXFx1OUIyMlxcdTlCNThcXHU5QzVGXFx1OURGOVxcdTlERkFcXHU5RTdDXFx1OUU3RFxcdTlGMDdcXHU5Rjc3XFx1OUY3MlxcdTVFRjNcXHU2QjE2XFx1NzA2M1xcdTdDNkNcXHU3QzZFXFx1ODgzQlxcdTg5QzBcXHU4RUExXFx1OTFDMVxcdTk0NzJcXHU5NDcwXFx1OTg3MVxcdTk5NUVcXHU5QUQ2XFx1OUIyM1xcdTlFQ0NcXHU3MDY0XFx1NzdEQVxcdThCOUFcXHU5NDc3XFx1OTdDOVxcdTlBNjJcXHU5QTY1XFx1N0U5Q1xcdThCOUNcXHU4RUFBXFx1OTFDNVxcdTk0N0RcXHU5NDdFXFx1OTQ3Q1xcdTlDNzdcXHU5Qzc4XFx1OUVGN1xcdThDNTRcXHU5NDdGXFx1OUUxQVxcdTcyMjhcXHU5QTZBXFx1OUIzMVxcdTlFMUJcXHU5RTFFXFx1N0M3MlwiXSxcbiAgICAgIFtcImM5NDBcIiwgXCJcXHU0RTQyXFx1NEU1Q1xcdTUxRjVcXHU1MzFBXFx1NTM4MlxcdTRFMDdcXHU0RTBDXFx1NEU0N1xcdTRFOERcXHU1NkQ3XFx1RkEwQ1xcdTVDNkVcXHU1RjczXFx1NEUwRlxcdTUxODdcXHU0RTBFXFx1NEUyRVxcdTRFOTNcXHU0RUMyXFx1NEVDOVxcdTRFQzhcXHU1MTk4XFx1NTJGQ1xcdTUzNkNcXHU1M0I5XFx1NTcyMFxcdTU5MDNcXHU1OTJDXFx1NUMxMFxcdTVERkZcXHU2NUUxXFx1NkJCM1xcdTZCQ0NcXHU2QzE0XFx1NzIzRlxcdTRFMzFcXHU0RTNDXFx1NEVFOFxcdTRFRENcXHU0RUU5XFx1NEVFMVxcdTRFRERcXHU0RURBXFx1NTIwQ1xcdTUzMUNcXHU1MzRDXFx1NTcyMlxcdTU3MjNcXHU1OTE3XFx1NTkyRlxcdTVCODFcXHU1Qjg0XFx1NUMxMlxcdTVDM0JcXHU1Qzc0XFx1NUM3M1xcdTVFMDRcXHU1RTgwXFx1NUU4MlxcdTVGQzlcXHU2MjA5XFx1NjI1MFxcdTZDMTVcIl0sXG4gICAgICBbXCJjOWExXCIsIFwiXFx1NkMzNlxcdTZDNDNcXHU2QzNGXFx1NkMzQlxcdTcyQUVcXHU3MkIwXFx1NzM4QVxcdTc5QjhcXHU4MDhBXFx1OTYxRVxcdTRGMEVcXHU0RjE4XFx1NEYyQ1xcdTRFRjVcXHU0RjE0XFx1NEVGMVxcdTRGMDBcXHU0RUY3XFx1NEYwOFxcdTRGMURcXHU0RjAyXFx1NEYwNVxcdTRGMjJcXHU0RjEzXFx1NEYwNFxcdTRFRjRcXHU0RjEyXFx1NTFCMVxcdTUyMTNcXHU1MjA5XFx1NTIxMFxcdTUyQTZcXHU1MzIyXFx1NTMxRlxcdTUzNERcXHU1MzhBXFx1NTQwN1xcdTU2RTFcXHU1NkRGXFx1NTcyRVxcdTU3MkFcXHU1NzM0XFx1NTkzQ1xcdTU5ODBcXHU1OTdDXFx1NTk4NVxcdTU5N0JcXHU1OTdFXFx1NTk3N1xcdTU5N0ZcXHU1QjU2XFx1NUMxNVxcdTVDMjVcXHU1QzdDXFx1NUM3QVxcdTVDN0JcXHU1QzdFXFx1NURERlxcdTVFNzVcXHU1RTg0XFx1NUYwMlxcdTVGMUFcXHU1Rjc0XFx1NUZENVxcdTVGRDRcXHU1RkNGXFx1NjI1Q1xcdTYyNUVcXHU2MjY0XFx1NjI2MVxcdTYyNjZcXHU2MjYyXFx1NjI1OVxcdTYyNjBcXHU2MjVBXFx1NjI2NVxcdTY1RUZcXHU2NUVFXFx1NjczRVxcdTY3MzlcXHU2NzM4XFx1NjczQlxcdTY3M0FcXHU2NzNGXFx1NjczQ1xcdTY3MzNcXHU2QzE4XFx1NkM0NlxcdTZDNTJcXHU2QzVDXFx1NkM0RlxcdTZDNEFcXHU2QzU0XFx1NkM0QlwiXSxcbiAgICAgIFtcImNhNDBcIiwgXCJcXHU2QzRDXFx1NzA3MVxcdTcyNUVcXHU3MkI0XFx1NzJCNVxcdTczOEVcXHU3NTJBXFx1NzY3RlxcdTdBNzVcXHU3RjUxXFx1ODI3OFxcdTgyN0NcXHU4MjgwXFx1ODI3RFxcdTgyN0ZcXHU4NjREXFx1ODk3RVxcdTkwOTlcXHU5MDk3XFx1OTA5OFxcdTkwOUJcXHU5MDk0XFx1OTYyMlxcdTk2MjRcXHU5NjIwXFx1OTYyM1xcdTRGNTZcXHU0RjNCXFx1NEY2MlxcdTRGNDlcXHU0RjUzXFx1NEY2NFxcdTRGM0VcXHU0RjY3XFx1NEY1MlxcdTRGNUZcXHU0RjQxXFx1NEY1OFxcdTRGMkRcXHU0RjMzXFx1NEYzRlxcdTRGNjFcXHU1MThGXFx1NTFCOVxcdTUyMUNcXHU1MjFFXFx1NTIyMVxcdTUyQURcXHU1MkFFXFx1NTMwOVxcdTUzNjNcXHU1MzcyXFx1NTM4RVxcdTUzOEZcXHU1NDMwXFx1NTQzN1xcdTU0MkFcXHU1NDU0XFx1NTQ0NVxcdTU0MTlcXHU1NDFDXFx1NTQyNVxcdTU0MThcIl0sXG4gICAgICBbXCJjYWExXCIsIFwiXFx1NTQzRFxcdTU0NEZcXHU1NDQxXFx1NTQyOFxcdTU0MjRcXHU1NDQ3XFx1NTZFRVxcdTU2RTdcXHU1NkU1XFx1NTc0MVxcdTU3NDVcXHU1NzRDXFx1NTc0OVxcdTU3NEJcXHU1NzUyXFx1NTkwNlxcdTU5NDBcXHU1OUE2XFx1NTk5OFxcdTU5QTBcXHU1OTk3XFx1NTk4RVxcdTU5QTJcXHU1OTkwXFx1NTk4RlxcdTU5QTdcXHU1OUExXFx1NUI4RVxcdTVCOTJcXHU1QzI4XFx1NUMyQVxcdTVDOERcXHU1QzhGXFx1NUM4OFxcdTVDOEJcXHU1Qzg5XFx1NUM5MlxcdTVDOEFcXHU1Qzg2XFx1NUM5M1xcdTVDOTVcXHU1REUwXFx1NUUwQVxcdTVFMEVcXHU1RThCXFx1NUU4OVxcdTVFOENcXHU1RTg4XFx1NUU4RFxcdTVGMDVcXHU1RjFEXFx1NUY3OFxcdTVGNzZcXHU1RkQyXFx1NUZEMVxcdTVGRDBcXHU1RkVEXFx1NUZFOFxcdTVGRUVcXHU1RkYzXFx1NUZFMVxcdTVGRTRcXHU1RkUzXFx1NUZGQVxcdTVGRUZcXHU1RkY3XFx1NUZGQlxcdTYwMDBcXHU1RkY0XFx1NjIzQVxcdTYyODNcXHU2MjhDXFx1NjI4RVxcdTYyOEZcXHU2Mjk0XFx1NjI4N1xcdTYyNzFcXHU2MjdCXFx1NjI3QVxcdTYyNzBcXHU2MjgxXFx1NjI4OFxcdTYyNzdcXHU2MjdEXFx1NjI3MlxcdTYyNzRcXHU2NTM3XFx1NjVGMFxcdTY1RjRcXHU2NUYzXFx1NjVGMlxcdTY1RjVcXHU2NzQ1XFx1Njc0N1wiXSxcbiAgICAgIFtcImNiNDBcIiwgXCJcXHU2NzU5XFx1Njc1NVxcdTY3NENcXHU2NzQ4XFx1Njc1RFxcdTY3NERcXHU2NzVBXFx1Njc0QlxcdTZCRDBcXHU2QzE5XFx1NkMxQVxcdTZDNzhcXHU2QzY3XFx1NkM2QlxcdTZDODRcXHU2QzhCXFx1NkM4RlxcdTZDNzFcXHU2QzZGXFx1NkM2OVxcdTZDOUFcXHU2QzZEXFx1NkM4N1xcdTZDOTVcXHU2QzlDXFx1NkM2NlxcdTZDNzNcXHU2QzY1XFx1NkM3QlxcdTZDOEVcXHU3MDc0XFx1NzA3QVxcdTcyNjNcXHU3MkJGXFx1NzJCRFxcdTcyQzNcXHU3MkM2XFx1NzJDMVxcdTcyQkFcXHU3MkM1XFx1NzM5NVxcdTczOTdcXHU3MzkzXFx1NzM5NFxcdTczOTJcXHU3NTNBXFx1NzUzOVxcdTc1OTRcXHU3NTk1XFx1NzY4MVxcdTc5M0RcXHU4MDM0XFx1ODA5NVxcdTgwOTlcXHU4MDkwXFx1ODA5MlxcdTgwOUNcXHU4MjkwXFx1ODI4RlxcdTgyODVcXHU4MjhFXFx1ODI5MVxcdTgyOTNcIl0sXG4gICAgICBbXCJjYmExXCIsIFwiXFx1ODI4QVxcdTgyODNcXHU4Mjg0XFx1OEM3OFxcdThGQzlcXHU4RkJGXFx1OTA5RlxcdTkwQTFcXHU5MEE1XFx1OTA5RVxcdTkwQTdcXHU5MEEwXFx1OTYzMFxcdTk2MjhcXHU5NjJGXFx1OTYyRFxcdTRFMzNcXHU0Rjk4XFx1NEY3Q1xcdTRGODVcXHU0RjdEXFx1NEY4MFxcdTRGODdcXHU0Rjc2XFx1NEY3NFxcdTRGODlcXHU0Rjg0XFx1NEY3N1xcdTRGNENcXHU0Rjk3XFx1NEY2QVxcdTRGOUFcXHU0Rjc5XFx1NEY4MVxcdTRGNzhcXHU0RjkwXFx1NEY5Q1xcdTRGOTRcXHU0RjlFXFx1NEY5MlxcdTRGODJcXHU0Rjk1XFx1NEY2QlxcdTRGNkVcXHU1MTlFXFx1NTFCQ1xcdTUxQkVcXHU1MjM1XFx1NTIzMlxcdTUyMzNcXHU1MjQ2XFx1NTIzMVxcdTUyQkNcXHU1MzBBXFx1NTMwQlxcdTUzM0NcXHU1MzkyXFx1NTM5NFxcdTU0ODdcXHU1NDdGXFx1NTQ4MVxcdTU0OTFcXHU1NDgyXFx1NTQ4OFxcdTU0NkJcXHU1NDdBXFx1NTQ3RVxcdTU0NjVcXHU1NDZDXFx1NTQ3NFxcdTU0NjZcXHU1NDhEXFx1NTQ2RlxcdTU0NjFcXHU1NDYwXFx1NTQ5OFxcdTU0NjNcXHU1NDY3XFx1NTQ2NFxcdTU2RjdcXHU1NkY5XFx1NTc2RlxcdTU3NzJcXHU1NzZEXFx1NTc2QlxcdTU3NzFcXHU1NzcwXFx1NTc3NlxcdTU3ODBcXHU1Nzc1XFx1NTc3QlxcdTU3NzNcXHU1Nzc0XFx1NTc2MlwiXSxcbiAgICAgIFtcImNjNDBcIiwgXCJcXHU1NzY4XFx1NTc3RFxcdTU5MENcXHU1OTQ1XFx1NTlCNVxcdTU5QkFcXHU1OUNGXFx1NTlDRVxcdTU5QjJcXHU1OUNDXFx1NTlDMVxcdTU5QjZcXHU1OUJDXFx1NTlDM1xcdTU5RDZcXHU1OUIxXFx1NTlCRFxcdTU5QzBcXHU1OUM4XFx1NTlCNFxcdTU5QzdcXHU1QjYyXFx1NUI2NVxcdTVCOTNcXHU1Qjk1XFx1NUM0NFxcdTVDNDdcXHU1Q0FFXFx1NUNBNFxcdTVDQTBcXHU1Q0I1XFx1NUNBRlxcdTVDQThcXHU1Q0FDXFx1NUM5RlxcdTVDQTNcXHU1Q0FEXFx1NUNBMlxcdTVDQUFcXHU1Q0E3XFx1NUM5RFxcdTVDQTVcXHU1Q0I2XFx1NUNCMFxcdTVDQTZcXHU1RTE3XFx1NUUxNFxcdTVFMTlcXHU1RjI4XFx1NUYyMlxcdTVGMjNcXHU1RjI0XFx1NUY1NFxcdTVGODJcXHU1RjdFXFx1NUY3RFxcdTVGREVcXHU1RkU1XFx1NjAyRFxcdTYwMjZcXHU2MDE5XFx1NjAzMlxcdTYwMEJcIl0sXG4gICAgICBbXCJjY2ExXCIsIFwiXFx1NjAzNFxcdTYwMEFcXHU2MDE3XFx1NjAzM1xcdTYwMUFcXHU2MDFFXFx1NjAyQ1xcdTYwMjJcXHU2MDBEXFx1NjAxMFxcdTYwMkVcXHU2MDEzXFx1NjAxMVxcdTYwMENcXHU2MDA5XFx1NjAxQ1xcdTYyMTRcXHU2MjNEXFx1NjJBRFxcdTYyQjRcXHU2MkQxXFx1NjJCRVxcdTYyQUFcXHU2MkI2XFx1NjJDQVxcdTYyQUVcXHU2MkIzXFx1NjJBRlxcdTYyQkJcXHU2MkE5XFx1NjJCMFxcdTYyQjhcXHU2NTNEXFx1NjVBOFxcdTY1QkJcXHU2NjA5XFx1NjVGQ1xcdTY2MDRcXHU2NjEyXFx1NjYwOFxcdTY1RkJcXHU2NjAzXFx1NjYwQlxcdTY2MERcXHU2NjA1XFx1NjVGRFxcdTY2MTFcXHU2NjEwXFx1NjZGNlxcdTY3MEFcXHU2Nzg1XFx1Njc2Q1xcdTY3OEVcXHU2NzkyXFx1Njc3NlxcdTY3N0JcXHU2Nzk4XFx1Njc4NlxcdTY3ODRcXHU2Nzc0XFx1Njc4RFxcdTY3OENcXHU2NzdBXFx1Njc5RlxcdTY3OTFcXHU2Nzk5XFx1Njc4M1xcdTY3N0RcXHU2NzgxXFx1Njc3OFxcdTY3NzlcXHU2Nzk0XFx1NkIyNVxcdTZCODBcXHU2QjdFXFx1NkJERVxcdTZDMURcXHU2QzkzXFx1NkNFQ1xcdTZDRUJcXHU2Q0VFXFx1NkNEOVxcdTZDQjZcXHU2Q0Q0XFx1NkNBRFxcdTZDRTdcXHU2Q0I3XFx1NkNEMFxcdTZDQzJcXHU2Q0JBXFx1NkNDM1xcdTZDQzZcXHU2Q0VEXFx1NkNGMlwiXSxcbiAgICAgIFtcImNkNDBcIiwgXCJcXHU2Q0QyXFx1NkNERFxcdTZDQjRcXHU2QzhBXFx1NkM5RFxcdTZDODBcXHU2Q0RFXFx1NkNDMFxcdTZEMzBcXHU2Q0NEXFx1NkNDN1xcdTZDQjBcXHU2Q0Y5XFx1NkNDRlxcdTZDRTlcXHU2Q0QxXFx1NzA5NFxcdTcwOThcXHU3MDg1XFx1NzA5M1xcdTcwODZcXHU3MDg0XFx1NzA5MVxcdTcwOTZcXHU3MDgyXFx1NzA5QVxcdTcwODNcXHU3MjZBXFx1NzJENlxcdTcyQ0JcXHU3MkQ4XFx1NzJDOVxcdTcyRENcXHU3MkQyXFx1NzJENFxcdTcyREFcXHU3MkNDXFx1NzJEMVxcdTczQTRcXHU3M0ExXFx1NzNBRFxcdTczQTZcXHU3M0EyXFx1NzNBMFxcdTczQUNcXHU3MzlEXFx1NzRERFxcdTc0RThcXHU3NTNGXFx1NzU0MFxcdTc1M0VcXHU3NThDXFx1NzU5OFxcdTc2QUZcXHU3NkYzXFx1NzZGMVxcdTc2RjBcXHU3NkY1XFx1NzdGOFxcdTc3RkNcXHU3N0Y5XFx1NzdGQlxcdTc3RkFcIl0sXG4gICAgICBbXCJjZGExXCIsIFwiXFx1NzdGN1xcdTc5NDJcXHU3OTNGXFx1NzlDNVxcdTdBNzhcXHU3QTdCXFx1N0FGQlxcdTdDNzVcXHU3Q0ZEXFx1ODAzNVxcdTgwOEZcXHU4MEFFXFx1ODBBM1xcdTgwQjhcXHU4MEI1XFx1ODBBRFxcdTgyMjBcXHU4MkEwXFx1ODJDMFxcdTgyQUJcXHU4MjlBXFx1ODI5OFxcdTgyOUJcXHU4MkI1XFx1ODJBN1xcdTgyQUVcXHU4MkJDXFx1ODI5RVxcdTgyQkFcXHU4MkI0XFx1ODJBOFxcdTgyQTFcXHU4MkE5XFx1ODJDMlxcdTgyQTRcXHU4MkMzXFx1ODJCNlxcdTgyQTJcXHU4NjcwXFx1ODY2RlxcdTg2NkRcXHU4NjZFXFx1OEM1NlxcdThGRDJcXHU4RkNCXFx1OEZEM1xcdThGQ0RcXHU4RkQ2XFx1OEZENVxcdThGRDdcXHU5MEIyXFx1OTBCNFxcdTkwQUZcXHU5MEIzXFx1OTBCMFxcdTk2MzlcXHU5NjNEXFx1OTYzQ1xcdTk2M0FcXHU5NjQzXFx1NEZDRFxcdTRGQzVcXHU0RkQzXFx1NEZCMlxcdTRGQzlcXHU0RkNCXFx1NEZDMVxcdTRGRDRcXHU0RkRDXFx1NEZEOVxcdTRGQkJcXHU0RkIzXFx1NEZEQlxcdTRGQzdcXHU0RkQ2XFx1NEZCQVxcdTRGQzBcXHU0RkI5XFx1NEZFQ1xcdTUyNDRcXHU1MjQ5XFx1NTJDMFxcdTUyQzJcXHU1MzNEXFx1NTM3Q1xcdTUzOTdcXHU1Mzk2XFx1NTM5OVxcdTUzOThcXHU1NEJBXFx1NTRBMVxcdTU0QURcXHU1NEE1XFx1NTRDRlwiXSxcbiAgICAgIFtcImNlNDBcIiwgXCJcXHU1NEMzXFx1ODMwRFxcdTU0QjdcXHU1NEFFXFx1NTRENlxcdTU0QjZcXHU1NEM1XFx1NTRDNlxcdTU0QTBcXHU1NDcwXFx1NTRCQ1xcdTU0QTJcXHU1NEJFXFx1NTQ3MlxcdTU0REVcXHU1NEIwXFx1NTdCNVxcdTU3OUVcXHU1NzlGXFx1NTdBNFxcdTU3OENcXHU1Nzk3XFx1NTc5RFxcdTU3OUJcXHU1Nzk0XFx1NTc5OFxcdTU3OEZcXHU1Nzk5XFx1NTdBNVxcdTU3OUFcXHU1Nzk1XFx1NThGNFxcdTU5MERcXHU1OTUzXFx1NTlFMVxcdTU5REVcXHU1OUVFXFx1NUEwMFxcdTU5RjFcXHU1OUREXFx1NTlGQVxcdTU5RkRcXHU1OUZDXFx1NTlGNlxcdTU5RTRcXHU1OUYyXFx1NTlGN1xcdTU5REJcXHU1OUU5XFx1NTlGM1xcdTU5RjVcXHU1OUUwXFx1NTlGRVxcdTU5RjRcXHU1OUVEXFx1NUJBOFxcdTVDNENcXHU1Q0QwXFx1NUNEOFxcdTVDQ0NcXHU1Q0Q3XFx1NUNDQlxcdTVDREJcIl0sXG4gICAgICBbXCJjZWExXCIsIFwiXFx1NUNERVxcdTVDREFcXHU1Q0M5XFx1NUNDN1xcdTVDQ0FcXHU1Q0Q2XFx1NUNEM1xcdTVDRDRcXHU1Q0NGXFx1NUNDOFxcdTVDQzZcXHU1Q0NFXFx1NUNERlxcdTVDRjhcXHU1REY5XFx1NUUyMVxcdTVFMjJcXHU1RTIzXFx1NUUyMFxcdTVFMjRcXHU1RUIwXFx1NUVBNFxcdTVFQTJcXHU1RTlCXFx1NUVBM1xcdTVFQTVcXHU1RjA3XFx1NUYyRVxcdTVGNTZcXHU1Rjg2XFx1NjAzN1xcdTYwMzlcXHU2MDU0XFx1NjA3MlxcdTYwNUVcXHU2MDQ1XFx1NjA1M1xcdTYwNDdcXHU2MDQ5XFx1NjA1QlxcdTYwNENcXHU2MDQwXFx1NjA0MlxcdTYwNUZcXHU2MDI0XFx1NjA0NFxcdTYwNThcXHU2MDY2XFx1NjA2RVxcdTYyNDJcXHU2MjQzXFx1NjJDRlxcdTYzMERcXHU2MzBCXFx1NjJGNVxcdTYzMEVcXHU2MzAzXFx1NjJFQlxcdTYyRjlcXHU2MzBGXFx1NjMwQ1xcdTYyRjhcXHU2MkY2XFx1NjMwMFxcdTYzMTNcXHU2MzE0XFx1NjJGQVxcdTYzMTVcXHU2MkZCXFx1NjJGMFxcdTY1NDFcXHU2NTQzXFx1NjVBQVxcdTY1QkZcXHU2NjM2XFx1NjYyMVxcdTY2MzJcXHU2NjM1XFx1NjYxQ1xcdTY2MjZcXHU2NjIyXFx1NjYzM1xcdTY2MkJcXHU2NjNBXFx1NjYxRFxcdTY2MzRcXHU2NjM5XFx1NjYyRVxcdTY3MEZcXHU2NzEwXFx1NjdDMVxcdTY3RjJcXHU2N0M4XFx1NjdCQVwiXSxcbiAgICAgIFtcImNmNDBcIiwgXCJcXHU2N0RDXFx1NjdCQlxcdTY3RjhcXHU2N0Q4XFx1NjdDMFxcdTY3QjdcXHU2N0M1XFx1NjdFQlxcdTY3RTRcXHU2N0RGXFx1NjdCNVxcdTY3Q0RcXHU2N0IzXFx1NjdGN1xcdTY3RjZcXHU2N0VFXFx1NjdFM1xcdTY3QzJcXHU2N0I5XFx1NjdDRVxcdTY3RTdcXHU2N0YwXFx1NjdCMlxcdTY3RkNcXHU2N0M2XFx1NjdFRFxcdTY3Q0NcXHU2N0FFXFx1NjdFNlxcdTY3REJcXHU2N0ZBXFx1NjdDOVxcdTY3Q0FcXHU2N0MzXFx1NjdFQVxcdTY3Q0JcXHU2QjI4XFx1NkI4MlxcdTZCODRcXHU2QkI2XFx1NkJENlxcdTZCRDhcXHU2QkUwXFx1NkMyMFxcdTZDMjFcXHU2RDI4XFx1NkQzNFxcdTZEMkRcXHU2RDFGXFx1NkQzQ1xcdTZEM0ZcXHU2RDEyXFx1NkQwQVxcdTZDREFcXHU2RDMzXFx1NkQwNFxcdTZEMTlcXHU2RDNBXFx1NkQxQVxcdTZEMTFcXHU2RDAwXFx1NkQxRFxcdTZENDJcIl0sXG4gICAgICBbXCJjZmExXCIsIFwiXFx1NkQwMVxcdTZEMThcXHU2RDM3XFx1NkQwM1xcdTZEMEZcXHU2RDQwXFx1NkQwN1xcdTZEMjBcXHU2RDJDXFx1NkQwOFxcdTZEMjJcXHU2RDA5XFx1NkQxMFxcdTcwQjdcXHU3MDlGXFx1NzBCRVxcdTcwQjFcXHU3MEIwXFx1NzBBMVxcdTcwQjRcXHU3MEI1XFx1NzBBOVxcdTcyNDFcXHU3MjQ5XFx1NzI0QVxcdTcyNkNcXHU3MjcwXFx1NzI3M1xcdTcyNkVcXHU3MkNBXFx1NzJFNFxcdTcyRThcXHU3MkVCXFx1NzJERlxcdTcyRUFcXHU3MkU2XFx1NzJFM1xcdTczODVcXHU3M0NDXFx1NzNDMlxcdTczQzhcXHU3M0M1XFx1NzNCOVxcdTczQjZcXHU3M0I1XFx1NzNCNFxcdTczRUJcXHU3M0JGXFx1NzNDN1xcdTczQkVcXHU3M0MzXFx1NzNDNlxcdTczQjhcXHU3M0NCXFx1NzRFQ1xcdTc0RUVcXHU3NTJFXFx1NzU0N1xcdTc1NDhcXHU3NUE3XFx1NzVBQVxcdTc2NzlcXHU3NkM0XFx1NzcwOFxcdTc3MDNcXHU3NzA0XFx1NzcwNVxcdTc3MEFcXHU3NkY3XFx1NzZGQlxcdTc2RkFcXHU3N0U3XFx1NzdFOFxcdTc4MDZcXHU3ODExXFx1NzgxMlxcdTc4MDVcXHU3ODEwXFx1NzgwRlxcdTc4MEVcXHU3ODA5XFx1NzgwM1xcdTc4MTNcXHU3OTRBXFx1Nzk0Q1xcdTc5NEJcXHU3OTQ1XFx1Nzk0NFxcdTc5RDVcXHU3OUNEXFx1NzlDRlxcdTc5RDZcXHU3OUNFXFx1N0E4MFwiXSxcbiAgICAgIFtcImQwNDBcIiwgXCJcXHU3QTdFXFx1N0FEMVxcdTdCMDBcXHU3QjAxXFx1N0M3QVxcdTdDNzhcXHU3Qzc5XFx1N0M3RlxcdTdDODBcXHU3QzgxXFx1N0QwM1xcdTdEMDhcXHU3RDAxXFx1N0Y1OFxcdTdGOTFcXHU3RjhEXFx1N0ZCRVxcdTgwMDdcXHU4MDBFXFx1ODAwRlxcdTgwMTRcXHU4MDM3XFx1ODBEOFxcdTgwQzdcXHU4MEUwXFx1ODBEMVxcdTgwQzhcXHU4MEMyXFx1ODBEMFxcdTgwQzVcXHU4MEUzXFx1ODBEOVxcdTgwRENcXHU4MENBXFx1ODBENVxcdTgwQzlcXHU4MENGXFx1ODBEN1xcdTgwRTZcXHU4MENEXFx1ODFGRlxcdTgyMjFcXHU4Mjk0XFx1ODJEOVxcdTgyRkVcXHU4MkY5XFx1ODMwN1xcdTgyRThcXHU4MzAwXFx1ODJENVxcdTgzM0FcXHU4MkVCXFx1ODJENlxcdTgyRjRcXHU4MkVDXFx1ODJFMVxcdTgyRjJcXHU4MkY1XFx1ODMwQ1xcdTgyRkJcXHU4MkY2XFx1ODJGMFxcdTgyRUFcIl0sXG4gICAgICBbXCJkMGExXCIsIFwiXFx1ODJFNFxcdTgyRTBcXHU4MkZBXFx1ODJGM1xcdTgyRURcXHU4Njc3XFx1ODY3NFxcdTg2N0NcXHU4NjczXFx1ODg0MVxcdTg4NEVcXHU4ODY3XFx1ODg2QVxcdTg4NjlcXHU4OUQzXFx1OEEwNFxcdThBMDdcXHU4RDcyXFx1OEZFM1xcdThGRTFcXHU4RkVFXFx1OEZFMFxcdTkwRjFcXHU5MEJEXFx1OTBCRlxcdTkwRDVcXHU5MEM1XFx1OTBCRVxcdTkwQzdcXHU5MENCXFx1OTBDOFxcdTkxRDRcXHU5MUQzXFx1OTY1NFxcdTk2NEZcXHU5NjUxXFx1OTY1M1xcdTk2NEFcXHU5NjRFXFx1NTAxRVxcdTUwMDVcXHU1MDA3XFx1NTAxM1xcdTUwMjJcXHU1MDMwXFx1NTAxQlxcdTRGRjVcXHU0RkY0XFx1NTAzM1xcdTUwMzdcXHU1MDJDXFx1NEZGNlxcdTRGRjdcXHU1MDE3XFx1NTAxQ1xcdTUwMjBcXHU1MDI3XFx1NTAzNVxcdTUwMkZcXHU1MDMxXFx1NTAwRVxcdTUxNUFcXHU1MTk0XFx1NTE5M1xcdTUxQ0FcXHU1MUM0XFx1NTFDNVxcdTUxQzhcXHU1MUNFXFx1NTI2MVxcdTUyNUFcXHU1MjUyXFx1NTI1RVxcdTUyNUZcXHU1MjU1XFx1NTI2MlxcdTUyQ0RcXHU1MzBFXFx1NTM5RVxcdTU1MjZcXHU1NEUyXFx1NTUxN1xcdTU1MTJcXHU1NEU3XFx1NTRGM1xcdTU0RTRcXHU1NTFBXFx1NTRGRlxcdTU1MDRcXHU1NTA4XFx1NTRFQlxcdTU1MTFcXHU1NTA1XFx1NTRGMVwiXSxcbiAgICAgIFtcImQxNDBcIiwgXCJcXHU1NTBBXFx1NTRGQlxcdTU0RjdcXHU1NEY4XFx1NTRFMFxcdTU1MEVcXHU1NTAzXFx1NTUwQlxcdTU3MDFcXHU1NzAyXFx1NTdDQ1xcdTU4MzJcXHU1N0Q1XFx1NTdEMlxcdTU3QkFcXHU1N0M2XFx1NTdCRFxcdTU3QkNcXHU1N0I4XFx1NTdCNlxcdTU3QkZcXHU1N0M3XFx1NTdEMFxcdTU3QjlcXHU1N0MxXFx1NTkwRVxcdTU5NEFcXHU1QTE5XFx1NUExNlxcdTVBMkRcXHU1QTJFXFx1NUExNVxcdTVBMEZcXHU1QTE3XFx1NUEwQVxcdTVBMUVcXHU1QTMzXFx1NUI2Q1xcdTVCQTdcXHU1QkFEXFx1NUJBQ1xcdTVDMDNcXHU1QzU2XFx1NUM1NFxcdTVDRUNcXHU1Q0ZGXFx1NUNFRVxcdTVDRjFcXHU1Q0Y3XFx1NUQwMFxcdTVDRjlcXHU1RTI5XFx1NUUyOFxcdTVFQThcXHU1RUFFXFx1NUVBQVxcdTVFQUNcXHU1RjMzXFx1NUYzMFxcdTVGNjdcXHU2MDVEXFx1NjA1QVxcdTYwNjdcIl0sXG4gICAgICBbXCJkMWExXCIsIFwiXFx1NjA0MVxcdTYwQTJcXHU2MDg4XFx1NjA4MFxcdTYwOTJcXHU2MDgxXFx1NjA5RFxcdTYwODNcXHU2MDk1XFx1NjA5QlxcdTYwOTdcXHU2MDg3XFx1NjA5Q1xcdTYwOEVcXHU2MjE5XFx1NjI0NlxcdTYyRjJcXHU2MzEwXFx1NjM1NlxcdTYzMkNcXHU2MzQ0XFx1NjM0NVxcdTYzMzZcXHU2MzQzXFx1NjNFNFxcdTYzMzlcXHU2MzRCXFx1NjM0QVxcdTYzM0NcXHU2MzI5XFx1NjM0MVxcdTYzMzRcXHU2MzU4XFx1NjM1NFxcdTYzNTlcXHU2MzJEXFx1NjM0N1xcdTYzMzNcXHU2MzVBXFx1NjM1MVxcdTYzMzhcXHU2MzU3XFx1NjM0MFxcdTYzNDhcXHU2NTRBXFx1NjU0NlxcdTY1QzZcXHU2NUMzXFx1NjVDNFxcdTY1QzJcXHU2NjRBXFx1NjY1RlxcdTY2NDdcXHU2NjUxXFx1NjcxMlxcdTY3MTNcXHU2ODFGXFx1NjgxQVxcdTY4NDlcXHU2ODMyXFx1NjgzM1xcdTY4M0JcXHU2ODRCXFx1Njg0RlxcdTY4MTZcXHU2ODMxXFx1NjgxQ1xcdTY4MzVcXHU2ODJCXFx1NjgyRFxcdTY4MkZcXHU2ODRFXFx1Njg0NFxcdTY4MzRcXHU2ODFEXFx1NjgxMlxcdTY4MTRcXHU2ODI2XFx1NjgyOFxcdTY4MkVcXHU2ODREXFx1NjgzQVxcdTY4MjVcXHU2ODIwXFx1NkIyQ1xcdTZCMkZcXHU2QjJEXFx1NkIzMVxcdTZCMzRcXHU2QjZEXFx1ODA4MlxcdTZCODhcXHU2QkU2XFx1NkJFNFwiXSxcbiAgICAgIFtcImQyNDBcIiwgXCJcXHU2QkU4XFx1NkJFM1xcdTZCRTJcXHU2QkU3XFx1NkMyNVxcdTZEN0FcXHU2RDYzXFx1NkQ2NFxcdTZENzZcXHU2RDBEXFx1NkQ2MVxcdTZEOTJcXHU2RDU4XFx1NkQ2MlxcdTZENkRcXHU2RDZGXFx1NkQ5MVxcdTZEOERcXHU2REVGXFx1NkQ3RlxcdTZEODZcXHU2RDVFXFx1NkQ2N1xcdTZENjBcXHU2RDk3XFx1NkQ3MFxcdTZEN0NcXHU2RDVGXFx1NkQ4MlxcdTZEOThcXHU2RDJGXFx1NkQ2OFxcdTZEOEJcXHU2RDdFXFx1NkQ4MFxcdTZEODRcXHU2RDE2XFx1NkQ4M1xcdTZEN0JcXHU2RDdEXFx1NkQ3NVxcdTZEOTBcXHU3MERDXFx1NzBEM1xcdTcwRDFcXHU3MEREXFx1NzBDQlxcdTdGMzlcXHU3MEUyXFx1NzBEN1xcdTcwRDJcXHU3MERFXFx1NzBFMFxcdTcwRDRcXHU3MENEXFx1NzBDNVxcdTcwQzZcXHU3MEM3XFx1NzBEQVxcdTcwQ0VcXHU3MEUxXFx1NzI0MlxcdTcyNzhcIl0sXG4gICAgICBbXCJkMmExXCIsIFwiXFx1NzI3N1xcdTcyNzZcXHU3MzAwXFx1NzJGQVxcdTcyRjRcXHU3MkZFXFx1NzJGNlxcdTcyRjNcXHU3MkZCXFx1NzMwMVxcdTczRDNcXHU3M0Q5XFx1NzNFNVxcdTczRDZcXHU3M0JDXFx1NzNFN1xcdTczRTNcXHU3M0U5XFx1NzNEQ1xcdTczRDJcXHU3M0RCXFx1NzNENFxcdTczRERcXHU3M0RBXFx1NzNEN1xcdTczRDhcXHU3M0U4XFx1NzRERVxcdTc0REZcXHU3NEY0XFx1NzRGNVxcdTc1MjFcXHU3NTVCXFx1NzU1RlxcdTc1QjBcXHU3NUMxXFx1NzVCQlxcdTc1QzRcXHU3NUMwXFx1NzVCRlxcdTc1QjZcXHU3NUJBXFx1NzY4QVxcdTc2QzlcXHU3NzFEXFx1NzcxQlxcdTc3MTBcXHU3NzEzXFx1NzcxMlxcdTc3MjNcXHU3NzExXFx1NzcxNVxcdTc3MTlcXHU3NzFBXFx1NzcyMlxcdTc3MjdcXHU3ODIzXFx1NzgyQ1xcdTc4MjJcXHU3ODM1XFx1NzgyRlxcdTc4MjhcXHU3ODJFXFx1NzgyQlxcdTc4MjFcXHU3ODI5XFx1NzgzM1xcdTc4MkFcXHU3ODMxXFx1Nzk1NFxcdTc5NUJcXHU3OTRGXFx1Nzk1Q1xcdTc5NTNcXHU3OTUyXFx1Nzk1MVxcdTc5RUJcXHU3OUVDXFx1NzlFMFxcdTc5RUVcXHU3OUVEXFx1NzlFQVxcdTc5RENcXHU3OURFXFx1NzlERFxcdTdBODZcXHU3QTg5XFx1N0E4NVxcdTdBOEJcXHU3QThDXFx1N0E4QVxcdTdBODdcXHU3QUQ4XFx1N0IxMFwiXSxcbiAgICAgIFtcImQzNDBcIiwgXCJcXHU3QjA0XFx1N0IxM1xcdTdCMDVcXHU3QjBGXFx1N0IwOFxcdTdCMEFcXHU3QjBFXFx1N0IwOVxcdTdCMTJcXHU3Qzg0XFx1N0M5MVxcdTdDOEFcXHU3QzhDXFx1N0M4OFxcdTdDOERcXHU3Qzg1XFx1N0QxRVxcdTdEMURcXHU3RDExXFx1N0QwRVxcdTdEMThcXHU3RDE2XFx1N0QxM1xcdTdEMUZcXHU3RDEyXFx1N0QwRlxcdTdEMENcXHU3RjVDXFx1N0Y2MVxcdTdGNUVcXHU3RjYwXFx1N0Y1RFxcdTdGNUJcXHU3Rjk2XFx1N0Y5MlxcdTdGQzNcXHU3RkMyXFx1N0ZDMFxcdTgwMTZcXHU4MDNFXFx1ODAzOVxcdTgwRkFcXHU4MEYyXFx1ODBGOVxcdTgwRjVcXHU4MTAxXFx1ODBGQlxcdTgxMDBcXHU4MjAxXFx1ODIyRlxcdTgyMjVcXHU4MzMzXFx1ODMyRFxcdTgzNDRcXHU4MzE5XFx1ODM1MVxcdTgzMjVcXHU4MzU2XFx1ODMzRlxcdTgzNDFcXHU4MzI2XFx1ODMxQ1xcdTgzMjJcIl0sXG4gICAgICBbXCJkM2ExXCIsIFwiXFx1ODM0MlxcdTgzNEVcXHU4MzFCXFx1ODMyQVxcdTgzMDhcXHU4MzNDXFx1ODM0RFxcdTgzMTZcXHU4MzI0XFx1ODMyMFxcdTgzMzdcXHU4MzJGXFx1ODMyOVxcdTgzNDdcXHU4MzQ1XFx1ODM0Q1xcdTgzNTNcXHU4MzFFXFx1ODMyQ1xcdTgzNEJcXHU4MzI3XFx1ODM0OFxcdTg2NTNcXHU4NjUyXFx1ODZBMlxcdTg2QThcXHU4Njk2XFx1ODY4RFxcdTg2OTFcXHU4NjlFXFx1ODY4N1xcdTg2OTdcXHU4Njg2XFx1ODY4QlxcdTg2OUFcXHU4Njg1XFx1ODZBNVxcdTg2OTlcXHU4NkExXFx1ODZBN1xcdTg2OTVcXHU4Njk4XFx1ODY4RVxcdTg2OURcXHU4NjkwXFx1ODY5NFxcdTg4NDNcXHU4ODQ0XFx1ODg2RFxcdTg4NzVcXHU4ODc2XFx1ODg3MlxcdTg4ODBcXHU4ODcxXFx1ODg3RlxcdTg4NkZcXHU4ODgzXFx1ODg3RVxcdTg4NzRcXHU4ODdDXFx1OEExMlxcdThDNDdcXHU4QzU3XFx1OEM3QlxcdThDQTRcXHU4Q0EzXFx1OEQ3NlxcdThENzhcXHU4REI1XFx1OERCN1xcdThEQjZcXHU4RUQxXFx1OEVEM1xcdThGRkVcXHU4RkY1XFx1OTAwMlxcdThGRkZcXHU4RkZCXFx1OTAwNFxcdThGRkNcXHU4RkY2XFx1OTBENlxcdTkwRTBcXHU5MEQ5XFx1OTBEQVxcdTkwRTNcXHU5MERGXFx1OTBFNVxcdTkwRDhcXHU5MERCXFx1OTBEN1xcdTkwRENcXHU5MEU0XFx1OTE1MFwiXSxcbiAgICAgIFtcImQ0NDBcIiwgXCJcXHU5MTRFXFx1OTE0RlxcdTkxRDVcXHU5MUUyXFx1OTFEQVxcdTk2NUNcXHU5NjVGXFx1OTZCQ1xcdTk4RTNcXHU5QURGXFx1OUIyRlxcdTRFN0ZcXHU1MDcwXFx1NTA2QVxcdTUwNjFcXHU1MDVFXFx1NTA2MFxcdTUwNTNcXHU1MDRCXFx1NTA1RFxcdTUwNzJcXHU1MDQ4XFx1NTA0RFxcdTUwNDFcXHU1MDVCXFx1NTA0QVxcdTUwNjJcXHU1MDE1XFx1NTA0NVxcdTUwNUZcXHU1MDY5XFx1NTA2QlxcdTUwNjNcXHU1MDY0XFx1NTA0NlxcdTUwNDBcXHU1MDZFXFx1NTA3M1xcdTUwNTdcXHU1MDUxXFx1NTFEMFxcdTUyNkJcXHU1MjZEXFx1NTI2Q1xcdTUyNkVcXHU1MkQ2XFx1NTJEM1xcdTUzMkRcXHU1MzlDXFx1NTU3NVxcdTU1NzZcXHU1NTNDXFx1NTU0RFxcdTU1NTBcXHU1NTM0XFx1NTUyQVxcdTU1NTFcXHU1NTYyXFx1NTUzNlxcdTU1MzVcXHU1NTMwXFx1NTU1MlxcdTU1NDVcIl0sXG4gICAgICBbXCJkNGExXCIsIFwiXFx1NTUwQ1xcdTU1MzJcXHU1NTY1XFx1NTU0RVxcdTU1MzlcXHU1NTQ4XFx1NTUyRFxcdTU1M0JcXHU1NTQwXFx1NTU0QlxcdTU3MEFcXHU1NzA3XFx1NTdGQlxcdTU4MTRcXHU1N0UyXFx1NTdGNlxcdTU3RENcXHU1N0Y0XFx1NTgwMFxcdTU3RURcXHU1N0ZEXFx1NTgwOFxcdTU3RjhcXHU1ODBCXFx1NTdGM1xcdTU3Q0ZcXHU1ODA3XFx1NTdFRVxcdTU3RTNcXHU1N0YyXFx1NTdFNVxcdTU3RUNcXHU1N0UxXFx1NTgwRVxcdTU3RkNcXHU1ODEwXFx1NTdFN1xcdTU4MDFcXHU1ODBDXFx1NTdGMVxcdTU3RTlcXHU1N0YwXFx1NTgwRFxcdTU4MDRcXHU1OTVDXFx1NUE2MFxcdTVBNThcXHU1QTU1XFx1NUE2N1xcdTVBNUVcXHU1QTM4XFx1NUEzNVxcdTVBNkRcXHU1QTUwXFx1NUE1RlxcdTVBNjVcXHU1QTZDXFx1NUE1M1xcdTVBNjRcXHU1QTU3XFx1NUE0M1xcdTVBNURcXHU1QTUyXFx1NUE0NFxcdTVBNUJcXHU1QTQ4XFx1NUE4RVxcdTVBM0VcXHU1QTREXFx1NUEzOVxcdTVBNENcXHU1QTcwXFx1NUE2OVxcdTVBNDdcXHU1QTUxXFx1NUE1NlxcdTVBNDJcXHU1QTVDXFx1NUI3MlxcdTVCNkVcXHU1QkMxXFx1NUJDMFxcdTVDNTlcXHU1RDFFXFx1NUQwQlxcdTVEMURcXHU1RDFBXFx1NUQyMFxcdTVEMENcXHU1RDI4XFx1NUQwRFxcdTVEMjZcXHU1RDI1XFx1NUQwRlwiXSxcbiAgICAgIFtcImQ1NDBcIiwgXCJcXHU1RDMwXFx1NUQxMlxcdTVEMjNcXHU1RDFGXFx1NUQyRVxcdTVFM0VcXHU1RTM0XFx1NUVCMVxcdTVFQjRcXHU1RUI5XFx1NUVCMlxcdTVFQjNcXHU1RjM2XFx1NUYzOFxcdTVGOUJcXHU1Rjk2XFx1NUY5RlxcdTYwOEFcXHU2MDkwXFx1NjA4NlxcdTYwQkVcXHU2MEIwXFx1NjBCQVxcdTYwRDNcXHU2MEQ0XFx1NjBDRlxcdTYwRTRcXHU2MEQ5XFx1NjBERFxcdTYwQzhcXHU2MEIxXFx1NjBEQlxcdTYwQjdcXHU2MENBXFx1NjBCRlxcdTYwQzNcXHU2MENEXFx1NjBDMFxcdTYzMzJcXHU2MzY1XFx1NjM4QVxcdTYzODJcXHU2MzdEXFx1NjNCRFxcdTYzOUVcXHU2M0FEXFx1NjM5RFxcdTYzOTdcXHU2M0FCXFx1NjM4RVxcdTYzNkZcXHU2Mzg3XFx1NjM5MFxcdTYzNkVcXHU2M0FGXFx1NjM3NVxcdTYzOUNcXHU2MzZEXFx1NjNBRVxcdTYzN0NcXHU2M0E0XFx1NjMzQlxcdTYzOUZcIl0sXG4gICAgICBbXCJkNWExXCIsIFwiXFx1NjM3OFxcdTYzODVcXHU2MzgxXFx1NjM5MVxcdTYzOERcXHU2MzcwXFx1NjU1M1xcdTY1Q0RcXHU2NjY1XFx1NjY2MVxcdTY2NUJcXHU2NjU5XFx1NjY1Q1xcdTY2NjJcXHU2NzE4XFx1Njg3OVxcdTY4ODdcXHU2ODkwXFx1Njg5Q1xcdTY4NkRcXHU2ODZFXFx1NjhBRVxcdTY4QUJcXHU2OTU2XFx1Njg2RlxcdTY4QTNcXHU2OEFDXFx1NjhBOVxcdTY4NzVcXHU2ODc0XFx1NjhCMlxcdTY4OEZcXHU2ODc3XFx1Njg5MlxcdTY4N0NcXHU2ODZCXFx1Njg3MlxcdTY4QUFcXHU2ODgwXFx1Njg3MVxcdTY4N0VcXHU2ODlCXFx1Njg5NlxcdTY4OEJcXHU2OEEwXFx1Njg4OVxcdTY4QTRcXHU2ODc4XFx1Njg3QlxcdTY4OTFcXHU2ODhDXFx1Njg4QVxcdTY4N0RcXHU2QjM2XFx1NkIzM1xcdTZCMzdcXHU2QjM4XFx1NkI5MVxcdTZCOEZcXHU2QjhEXFx1NkI4RVxcdTZCOENcXHU2QzJBXFx1NkRDMFxcdTZEQUJcXHU2REI0XFx1NkRCM1xcdTZFNzRcXHU2REFDXFx1NkRFOVxcdTZERTJcXHU2REI3XFx1NkRGNlxcdTZERDRcXHU2RTAwXFx1NkRDOFxcdTZERTBcXHU2RERGXFx1NkRENlxcdTZEQkVcXHU2REU1XFx1NkREQ1xcdTZERERcXHU2RERCXFx1NkRGNFxcdTZEQ0FcXHU2REJEXFx1NkRFRFxcdTZERjBcXHU2REJBXFx1NkRENVxcdTZEQzJcXHU2RENGXFx1NkRDOVwiXSxcbiAgICAgIFtcImQ2NDBcIiwgXCJcXHU2REQwXFx1NkRGMlxcdTZERDNcXHU2REZEXFx1NkREN1xcdTZEQ0RcXHU2REUzXFx1NkRCQlxcdTcwRkFcXHU3MTBEXFx1NzBGN1xcdTcxMTdcXHU3MEY0XFx1NzEwQ1xcdTcwRjBcXHU3MTA0XFx1NzBGM1xcdTcxMTBcXHU3MEZDXFx1NzBGRlxcdTcxMDZcXHU3MTEzXFx1NzEwMFxcdTcwRjhcXHU3MEY2XFx1NzEwQlxcdTcxMDJcXHU3MTBFXFx1NzI3RVxcdTcyN0JcXHU3MjdDXFx1NzI3RlxcdTczMURcXHU3MzE3XFx1NzMwN1xcdTczMTFcXHU3MzE4XFx1NzMwQVxcdTczMDhcXHU3MkZGXFx1NzMwRlxcdTczMUVcXHU3Mzg4XFx1NzNGNlxcdTczRjhcXHU3M0Y1XFx1NzQwNFxcdTc0MDFcXHU3M0ZEXFx1NzQwN1xcdTc0MDBcXHU3M0ZBXFx1NzNGQ1xcdTczRkZcXHU3NDBDXFx1NzQwQlxcdTczRjRcXHU3NDA4XFx1NzU2NFxcdTc1NjNcXHU3NUNFXFx1NzVEMlxcdTc1Q0ZcIl0sXG4gICAgICBbXCJkNmExXCIsIFwiXFx1NzVDQlxcdTc1Q0NcXHU3NUQxXFx1NzVEMFxcdTc2OEZcXHU3Njg5XFx1NzZEM1xcdTc3MzlcXHU3NzJGXFx1NzcyRFxcdTc3MzFcXHU3NzMyXFx1NzczNFxcdTc3MzNcXHU3NzNEXFx1NzcyNVxcdTc3M0JcXHU3NzM1XFx1Nzg0OFxcdTc4NTJcXHU3ODQ5XFx1Nzg0RFxcdTc4NEFcXHU3ODRDXFx1NzgyNlxcdTc4NDVcXHU3ODUwXFx1Nzk2NFxcdTc5NjdcXHU3OTY5XFx1Nzk2QVxcdTc5NjNcXHU3OTZCXFx1Nzk2MVxcdTc5QkJcXHU3OUZBXFx1NzlGOFxcdTc5RjZcXHU3OUY3XFx1N0E4RlxcdTdBOTRcXHU3QTkwXFx1N0IzNVxcdTdCNDdcXHU3QjM0XFx1N0IyNVxcdTdCMzBcXHU3QjIyXFx1N0IyNFxcdTdCMzNcXHU3QjE4XFx1N0IyQVxcdTdCMURcXHU3QjMxXFx1N0IyQlxcdTdCMkRcXHU3QjJGXFx1N0IzMlxcdTdCMzhcXHU3QjFBXFx1N0IyM1xcdTdDOTRcXHU3Qzk4XFx1N0M5NlxcdTdDQTNcXHU3RDM1XFx1N0QzRFxcdTdEMzhcXHU3RDM2XFx1N0QzQVxcdTdENDVcXHU3RDJDXFx1N0QyOVxcdTdENDFcXHU3RDQ3XFx1N0QzRVxcdTdEM0ZcXHU3RDRBXFx1N0QzQlxcdTdEMjhcXHU3RjYzXFx1N0Y5NVxcdTdGOUNcXHU3RjlEXFx1N0Y5QlxcdTdGQ0FcXHU3RkNCXFx1N0ZDRFxcdTdGRDBcXHU3RkQxXFx1N0ZDN1xcdTdGQ0ZcXHU3RkM5XFx1ODAxRlwiXSxcbiAgICAgIFtcImQ3NDBcIiwgXCJcXHU4MDFFXFx1ODAxQlxcdTgwNDdcXHU4MDQzXFx1ODA0OFxcdTgxMThcXHU4MTI1XFx1ODExOVxcdTgxMUJcXHU4MTJEXFx1ODExRlxcdTgxMkNcXHU4MTFFXFx1ODEyMVxcdTgxMTVcXHU4MTI3XFx1ODExRFxcdTgxMjJcXHU4MjExXFx1ODIzOFxcdTgyMzNcXHU4MjNBXFx1ODIzNFxcdTgyMzJcXHU4Mjc0XFx1ODM5MFxcdTgzQTNcXHU4M0E4XFx1ODM4RFxcdTgzN0FcXHU4MzczXFx1ODNBNFxcdTgzNzRcXHU4MzhGXFx1ODM4MVxcdTgzOTVcXHU4Mzk5XFx1ODM3NVxcdTgzOTRcXHU4M0E5XFx1ODM3RFxcdTgzODNcXHU4MzhDXFx1ODM5RFxcdTgzOUJcXHU4M0FBXFx1ODM4QlxcdTgzN0VcXHU4M0E1XFx1ODNBRlxcdTgzODhcXHU4Mzk3XFx1ODNCMFxcdTgzN0ZcXHU4M0E2XFx1ODM4N1xcdTgzQUVcXHU4Mzc2XFx1ODM5QVxcdTg2NTlcXHU4NjU2XFx1ODZCRlxcdTg2QjdcIl0sXG4gICAgICBbXCJkN2ExXCIsIFwiXFx1ODZDMlxcdTg2QzFcXHU4NkM1XFx1ODZCQVxcdTg2QjBcXHU4NkM4XFx1ODZCOVxcdTg2QjNcXHU4NkI4XFx1ODZDQ1xcdTg2QjRcXHU4NkJCXFx1ODZCQ1xcdTg2QzNcXHU4NkJEXFx1ODZCRVxcdTg4NTJcXHU4ODg5XFx1ODg5NVxcdTg4QThcXHU4OEEyXFx1ODhBQVxcdTg4OUFcXHU4ODkxXFx1ODhBMVxcdTg4OUZcXHU4ODk4XFx1ODhBN1xcdTg4OTlcXHU4ODlCXFx1ODg5N1xcdTg4QTRcXHU4OEFDXFx1ODg4Q1xcdTg4OTNcXHU4ODhFXFx1ODk4MlxcdTg5RDZcXHU4OUQ5XFx1ODlENVxcdThBMzBcXHU4QTI3XFx1OEEyQ1xcdThBMUVcXHU4QzM5XFx1OEMzQlxcdThDNUNcXHU4QzVEXFx1OEM3RFxcdThDQTVcXHU4RDdEXFx1OEQ3QlxcdThENzlcXHU4REJDXFx1OERDMlxcdThEQjlcXHU4REJGXFx1OERDMVxcdThFRDhcXHU4RURFXFx1OEVERFxcdThFRENcXHU4RUQ3XFx1OEVFMFxcdThFRTFcXHU5MDI0XFx1OTAwQlxcdTkwMTFcXHU5MDFDXFx1OTAwQ1xcdTkwMjFcXHU5MEVGXFx1OTBFQVxcdTkwRjBcXHU5MEY0XFx1OTBGMlxcdTkwRjNcXHU5MEQ0XFx1OTBFQlxcdTkwRUNcXHU5MEU5XFx1OTE1NlxcdTkxNThcXHU5MTVBXFx1OTE1M1xcdTkxNTVcXHU5MUVDXFx1OTFGNFxcdTkxRjFcXHU5MUYzXFx1OTFGOFxcdTkxRTRcXHU5MUY5XFx1OTFFQVwiXSxcbiAgICAgIFtcImQ4NDBcIiwgXCJcXHU5MUVCXFx1OTFGN1xcdTkxRThcXHU5MUVFXFx1OTU3QVxcdTk1ODZcXHU5NTg4XFx1OTY3Q1xcdTk2NkRcXHU5NjZCXFx1OTY3MVxcdTk2NkZcXHU5NkJGXFx1OTc2QVxcdTk4MDRcXHU5OEU1XFx1OTk5N1xcdTUwOUJcXHU1MDk1XFx1NTA5NFxcdTUwOUVcXHU1MDhCXFx1NTBBM1xcdTUwODNcXHU1MDhDXFx1NTA4RVxcdTUwOURcXHU1MDY4XFx1NTA5Q1xcdTUwOTJcXHU1MDgyXFx1NTA4N1xcdTUxNUZcXHU1MUQ0XFx1NTMxMlxcdTUzMTFcXHU1M0E0XFx1NTNBN1xcdTU1OTFcXHU1NUE4XFx1NTVBNVxcdTU1QURcXHU1NTc3XFx1NTY0NVxcdTU1QTJcXHU1NTkzXFx1NTU4OFxcdTU1OEZcXHU1NUI1XFx1NTU4MVxcdTU1QTNcXHU1NTkyXFx1NTVBNFxcdTU1N0RcXHU1NThDXFx1NTVBNlxcdTU1N0ZcXHU1NTk1XFx1NTVBMVxcdTU1OEVcXHU1NzBDXFx1NTgyOVxcdTU4MzdcIl0sXG4gICAgICBbXCJkOGExXCIsIFwiXFx1NTgxOVxcdTU4MUVcXHU1ODI3XFx1NTgyM1xcdTU4MjhcXHU1N0Y1XFx1NTg0OFxcdTU4MjVcXHU1ODFDXFx1NTgxQlxcdTU4MzNcXHU1ODNGXFx1NTgzNlxcdTU4MkVcXHU1ODM5XFx1NTgzOFxcdTU4MkRcXHU1ODJDXFx1NTgzQlxcdTU5NjFcXHU1QUFGXFx1NUE5NFxcdTVBOUZcXHU1QTdBXFx1NUFBMlxcdTVBOUVcXHU1QTc4XFx1NUFBNlxcdTVBN0NcXHU1QUE1XFx1NUFBQ1xcdTVBOTVcXHU1QUFFXFx1NUEzN1xcdTVBODRcXHU1QThBXFx1NUE5N1xcdTVBODNcXHU1QThCXFx1NUFBOVxcdTVBN0JcXHU1QTdEXFx1NUE4Q1xcdTVBOUNcXHU1QThGXFx1NUE5M1xcdTVBOURcXHU1QkVBXFx1NUJDRFxcdTVCQ0JcXHU1QkQ0XFx1NUJEMVxcdTVCQ0FcXHU1QkNFXFx1NUMwQ1xcdTVDMzBcXHU1RDM3XFx1NUQ0M1xcdTVENkJcXHU1RDQxXFx1NUQ0QlxcdTVEM0ZcXHU1RDM1XFx1NUQ1MVxcdTVENEVcXHU1RDU1XFx1NUQzM1xcdTVEM0FcXHU1RDUyXFx1NUQzRFxcdTVEMzFcXHU1RDU5XFx1NUQ0MlxcdTVEMzlcXHU1RDQ5XFx1NUQzOFxcdTVEM0NcXHU1RDMyXFx1NUQzNlxcdTVENDBcXHU1RDQ1XFx1NUU0NFxcdTVFNDFcXHU1RjU4XFx1NUZBNlxcdTVGQTVcXHU1RkFCXFx1NjBDOVxcdTYwQjlcXHU2MENDXFx1NjBFMlxcdTYwQ0VcXHU2MEM0XFx1NjExNFwiXSxcbiAgICAgIFtcImQ5NDBcIiwgXCJcXHU2MEYyXFx1NjEwQVxcdTYxMTZcXHU2MTA1XFx1NjBGNVxcdTYxMTNcXHU2MEY4XFx1NjBGQ1xcdTYwRkVcXHU2MEMxXFx1NjEwM1xcdTYxMThcXHU2MTFEXFx1NjExMFxcdTYwRkZcXHU2MTA0XFx1NjEwQlxcdTYyNEFcXHU2Mzk0XFx1NjNCMVxcdTYzQjBcXHU2M0NFXFx1NjNFNVxcdTYzRThcXHU2M0VGXFx1NjNDM1xcdTY0OURcXHU2M0YzXFx1NjNDQVxcdTYzRTBcXHU2M0Y2XFx1NjNENVxcdTYzRjJcXHU2M0Y1XFx1NjQ2MVxcdTYzREZcXHU2M0JFXFx1NjNERFxcdTYzRENcXHU2M0M0XFx1NjNEOFxcdTYzRDNcXHU2M0MyXFx1NjNDN1xcdTYzQ0NcXHU2M0NCXFx1NjNDOFxcdTYzRjBcXHU2M0Q3XFx1NjNEOVxcdTY1MzJcXHU2NTY3XFx1NjU2QVxcdTY1NjRcXHU2NTVDXFx1NjU2OFxcdTY1NjVcXHU2NThDXFx1NjU5RFxcdTY1OUVcXHU2NUFFXFx1NjVEMFxcdTY1RDJcIl0sXG4gICAgICBbXCJkOWExXCIsIFwiXFx1NjY3Q1xcdTY2NkNcXHU2NjdCXFx1NjY4MFxcdTY2NzFcXHU2Njc5XFx1NjY2QVxcdTY2NzJcXHU2NzAxXFx1NjkwQ1xcdTY4RDNcXHU2OTA0XFx1NjhEQ1xcdTY5MkFcXHU2OEVDXFx1NjhFQVxcdTY4RjFcXHU2OTBGXFx1NjhENlxcdTY4RjdcXHU2OEVCXFx1NjhFNFxcdTY4RjZcXHU2OTEzXFx1NjkxMFxcdTY4RjNcXHU2OEUxXFx1NjkwN1xcdTY4Q0NcXHU2OTA4XFx1Njk3MFxcdTY4QjRcXHU2OTExXFx1NjhFRlxcdTY4QzZcXHU2OTE0XFx1NjhGOFxcdTY4RDBcXHU2OEZEXFx1NjhGQ1xcdTY4RThcXHU2OTBCXFx1NjkwQVxcdTY5MTdcXHU2OENFXFx1NjhDOFxcdTY4RERcXHU2OERFXFx1NjhFNlxcdTY4RjRcXHU2OEQxXFx1NjkwNlxcdTY4RDRcXHU2OEU5XFx1NjkxNVxcdTY5MjVcXHU2OEM3XFx1NkIzOVxcdTZCM0JcXHU2QjNGXFx1NkIzQ1xcdTZCOTRcXHU2Qjk3XFx1NkI5OVxcdTZCOTVcXHU2QkJEXFx1NkJGMFxcdTZCRjJcXHU2QkYzXFx1NkMzMFxcdTZERkNcXHU2RTQ2XFx1NkU0N1xcdTZFMUZcXHU2RTQ5XFx1NkU4OFxcdTZFM0NcXHU2RTNEXFx1NkU0NVxcdTZFNjJcXHU2RTJCXFx1NkUzRlxcdTZFNDFcXHU2RTVEXFx1NkU3M1xcdTZFMUNcXHU2RTMzXFx1NkU0QlxcdTZFNDBcXHU2RTUxXFx1NkUzQlxcdTZFMDNcXHU2RTJFXFx1NkU1RVwiXSxcbiAgICAgIFtcImRhNDBcIiwgXCJcXHU2RTY4XFx1NkU1Q1xcdTZFNjFcXHU2RTMxXFx1NkUyOFxcdTZFNjBcXHU2RTcxXFx1NkU2QlxcdTZFMzlcXHU2RTIyXFx1NkUzMFxcdTZFNTNcXHU2RTY1XFx1NkUyN1xcdTZFNzhcXHU2RTY0XFx1NkU3N1xcdTZFNTVcXHU2RTc5XFx1NkU1MlxcdTZFNjZcXHU2RTM1XFx1NkUzNlxcdTZFNUFcXHU3MTIwXFx1NzExRVxcdTcxMkZcXHU3MEZCXFx1NzEyRVxcdTcxMzFcXHU3MTIzXFx1NzEyNVxcdTcxMjJcXHU3MTMyXFx1NzExRlxcdTcxMjhcXHU3MTNBXFx1NzExQlxcdTcyNEJcXHU3MjVBXFx1NzI4OFxcdTcyODlcXHU3Mjg2XFx1NzI4NVxcdTcyOEJcXHU3MzEyXFx1NzMwQlxcdTczMzBcXHU3MzIyXFx1NzMzMVxcdTczMzNcXHU3MzI3XFx1NzMzMlxcdTczMkRcXHU3MzI2XFx1NzMyM1xcdTczMzVcXHU3MzBDXFx1NzQyRVxcdTc0MkNcXHU3NDMwXFx1NzQyQlxcdTc0MTZcIl0sXG4gICAgICBbXCJkYWExXCIsIFwiXFx1NzQxQVxcdTc0MjFcXHU3NDJEXFx1NzQzMVxcdTc0MjRcXHU3NDIzXFx1NzQxRFxcdTc0MjlcXHU3NDIwXFx1NzQzMlxcdTc0RkJcXHU3NTJGXFx1NzU2RlxcdTc1NkNcXHU3NUU3XFx1NzVEQVxcdTc1RTFcXHU3NUU2XFx1NzVERFxcdTc1REZcXHU3NUU0XFx1NzVEN1xcdTc2OTVcXHU3NjkyXFx1NzZEQVxcdTc3NDZcXHU3NzQ3XFx1Nzc0NFxcdTc3NERcXHU3NzQ1XFx1Nzc0QVxcdTc3NEVcXHU3NzRCXFx1Nzc0Q1xcdTc3REVcXHU3N0VDXFx1Nzg2MFxcdTc4NjRcXHU3ODY1XFx1Nzg1Q1xcdTc4NkRcXHU3ODcxXFx1Nzg2QVxcdTc4NkVcXHU3ODcwXFx1Nzg2OVxcdTc4NjhcXHU3ODVFXFx1Nzg2MlxcdTc5NzRcXHU3OTczXFx1Nzk3MlxcdTc5NzBcXHU3QTAyXFx1N0EwQVxcdTdBMDNcXHU3QTBDXFx1N0EwNFxcdTdBOTlcXHU3QUU2XFx1N0FFNFxcdTdCNEFcXHU3QjNCXFx1N0I0NFxcdTdCNDhcXHU3QjRDXFx1N0I0RVxcdTdCNDBcXHU3QjU4XFx1N0I0NVxcdTdDQTJcXHU3QzlFXFx1N0NBOFxcdTdDQTFcXHU3RDU4XFx1N0Q2RlxcdTdENjNcXHU3RDUzXFx1N0Q1NlxcdTdENjdcXHU3RDZBXFx1N0Q0RlxcdTdENkRcXHU3RDVDXFx1N0Q2QlxcdTdENTJcXHU3RDU0XFx1N0Q2OVxcdTdENTFcXHU3RDVGXFx1N0Q0RVxcdTdGM0VcXHU3RjNGXFx1N0Y2NVwiXSxcbiAgICAgIFtcImRiNDBcIiwgXCJcXHU3RjY2XFx1N0ZBMlxcdTdGQTBcXHU3RkExXFx1N0ZEN1xcdTgwNTFcXHU4MDRGXFx1ODA1MFxcdTgwRkVcXHU4MEQ0XFx1ODE0M1xcdTgxNEFcXHU4MTUyXFx1ODE0RlxcdTgxNDdcXHU4MTNEXFx1ODE0RFxcdTgxM0FcXHU4MUU2XFx1ODFFRVxcdTgxRjdcXHU4MUY4XFx1ODFGOVxcdTgyMDRcXHU4MjNDXFx1ODIzRFxcdTgyM0ZcXHU4Mjc1XFx1ODMzQlxcdTgzQ0ZcXHU4M0Y5XFx1ODQyM1xcdTgzQzBcXHU4M0U4XFx1ODQxMlxcdTgzRTdcXHU4M0U0XFx1ODNGQ1xcdTgzRjZcXHU4NDEwXFx1ODNDNlxcdTgzQzhcXHU4M0VCXFx1ODNFM1xcdTgzQkZcXHU4NDAxXFx1ODNERFxcdTgzRTVcXHU4M0Q4XFx1ODNGRlxcdTgzRTFcXHU4M0NCXFx1ODNDRVxcdTgzRDZcXHU4M0Y1XFx1ODNDOVxcdTg0MDlcXHU4NDBGXFx1ODNERVxcdTg0MTFcXHU4NDA2XFx1ODNDMlxcdTgzRjNcIl0sXG4gICAgICBbXCJkYmExXCIsIFwiXFx1ODNENVxcdTgzRkFcXHU4M0M3XFx1ODNEMVxcdTgzRUFcXHU4NDEzXFx1ODNDM1xcdTgzRUNcXHU4M0VFXFx1ODNDNFxcdTgzRkJcXHU4M0Q3XFx1ODNFMlxcdTg0MUJcXHU4M0RCXFx1ODNGRVxcdTg2RDhcXHU4NkUyXFx1ODZFNlxcdTg2RDNcXHU4NkUzXFx1ODZEQVxcdTg2RUFcXHU4NkREXFx1ODZFQlxcdTg2RENcXHU4NkVDXFx1ODZFOVxcdTg2RDdcXHU4NkU4XFx1ODZEMVxcdTg4NDhcXHU4ODU2XFx1ODg1NVxcdTg4QkFcXHU4OEQ3XFx1ODhCOVxcdTg4QjhcXHU4OEMwXFx1ODhCRVxcdTg4QjZcXHU4OEJDXFx1ODhCN1xcdTg4QkRcXHU4OEIyXFx1ODkwMVxcdTg4QzlcXHU4OTk1XFx1ODk5OFxcdTg5OTdcXHU4OUREXFx1ODlEQVxcdTg5REJcXHU4QTRFXFx1OEE0RFxcdThBMzlcXHU4QTU5XFx1OEE0MFxcdThBNTdcXHU4QTU4XFx1OEE0NFxcdThBNDVcXHU4QTUyXFx1OEE0OFxcdThBNTFcXHU4QTRBXFx1OEE0Q1xcdThBNEZcXHU4QzVGXFx1OEM4MVxcdThDODBcXHU4Q0JBXFx1OENCRVxcdThDQjBcXHU4Q0I5XFx1OENCNVxcdThEODRcXHU4RDgwXFx1OEQ4OVxcdThERDhcXHU4REQzXFx1OERDRFxcdThEQzdcXHU4REQ2XFx1OEREQ1xcdThEQ0ZcXHU4REQ1XFx1OEREOVxcdThEQzhcXHU4REQ3XFx1OERDNVxcdThFRUZcXHU4RUY3XFx1OEVGQVwiXSxcbiAgICAgIFtcImRjNDBcIiwgXCJcXHU4RUY5XFx1OEVFNlxcdThFRUVcXHU4RUU1XFx1OEVGNVxcdThFRTdcXHU4RUU4XFx1OEVGNlxcdThFRUJcXHU4RUYxXFx1OEVFQ1xcdThFRjRcXHU4RUU5XFx1OTAyRFxcdTkwMzRcXHU5MDJGXFx1OTEwNlxcdTkxMkNcXHU5MTA0XFx1OTBGRlxcdTkwRkNcXHU5MTA4XFx1OTBGOVxcdTkwRkJcXHU5MTAxXFx1OTEwMFxcdTkxMDdcXHU5MTA1XFx1OTEwM1xcdTkxNjFcXHU5MTY0XFx1OTE1RlxcdTkxNjJcXHU5MTYwXFx1OTIwMVxcdTkyMEFcXHU5MjI1XFx1OTIwM1xcdTkyMUFcXHU5MjI2XFx1OTIwRlxcdTkyMENcXHU5MjAwXFx1OTIxMlxcdTkxRkZcXHU5MUZEXFx1OTIwNlxcdTkyMDRcXHU5MjI3XFx1OTIwMlxcdTkyMUNcXHU5MjI0XFx1OTIxOVxcdTkyMTdcXHU5MjA1XFx1OTIxNlxcdTk1N0JcXHU5NThEXFx1OTU4Q1xcdTk1OTBcXHU5Njg3XFx1OTY3RVxcdTk2ODhcIl0sXG4gICAgICBbXCJkY2ExXCIsIFwiXFx1OTY4OVxcdTk2ODNcXHU5NjgwXFx1OTZDMlxcdTk2QzhcXHU5NkMzXFx1OTZGMVxcdTk2RjBcXHU5NzZDXFx1OTc3MFxcdTk3NkVcXHU5ODA3XFx1OThBOVxcdTk4RUJcXHU5Q0U2XFx1OUVGOVxcdTRFODNcXHU0RTg0XFx1NEVCNlxcdTUwQkRcXHU1MEJGXFx1NTBDNlxcdTUwQUVcXHU1MEM0XFx1NTBDQVxcdTUwQjRcXHU1MEM4XFx1NTBDMlxcdTUwQjBcXHU1MEMxXFx1NTBCQVxcdTUwQjFcXHU1MENCXFx1NTBDOVxcdTUwQjZcXHU1MEI4XFx1NTFEN1xcdTUyN0FcXHU1Mjc4XFx1NTI3QlxcdTUyN0NcXHU1NUMzXFx1NTVEQlxcdTU1Q0NcXHU1NUQwXFx1NTVDQlxcdTU1Q0FcXHU1NUREXFx1NTVDMFxcdTU1RDRcXHU1NUM0XFx1NTVFOVxcdTU1QkZcXHU1NUQyXFx1NTU4RFxcdTU1Q0ZcXHU1NUQ1XFx1NTVFMlxcdTU1RDZcXHU1NUM4XFx1NTVGMlxcdTU1Q0RcXHU1NUQ5XFx1NTVDMlxcdTU3MTRcXHU1ODUzXFx1NTg2OFxcdTU4NjRcXHU1ODRGXFx1NTg0RFxcdTU4NDlcXHU1ODZGXFx1NTg1NVxcdTU4NEVcXHU1ODVEXFx1NTg1OVxcdTU4NjVcXHU1ODVCXFx1NTgzRFxcdTU4NjNcXHU1ODcxXFx1NThGQ1xcdTVBQzdcXHU1QUM0XFx1NUFDQlxcdTVBQkFcXHU1QUI4XFx1NUFCMVxcdTVBQjVcXHU1QUIwXFx1NUFCRlxcdTVBQzhcXHU1QUJCXFx1NUFDNlwiXSxcbiAgICAgIFtcImRkNDBcIiwgXCJcXHU1QUI3XFx1NUFDMFxcdTVBQ0FcXHU1QUI0XFx1NUFCNlxcdTVBQ0RcXHU1QUI5XFx1NUE5MFxcdTVCRDZcXHU1QkQ4XFx1NUJEOVxcdTVDMUZcXHU1QzMzXFx1NUQ3MVxcdTVENjNcXHU1RDRBXFx1NUQ2NVxcdTVENzJcXHU1RDZDXFx1NUQ1RVxcdTVENjhcXHU1RDY3XFx1NUQ2MlxcdTVERjBcXHU1RTRGXFx1NUU0RVxcdTVFNEFcXHU1RTREXFx1NUU0QlxcdTVFQzVcXHU1RUNDXFx1NUVDNlxcdTVFQ0JcXHU1RUM3XFx1NUY0MFxcdTVGQUZcXHU1RkFEXFx1NjBGN1xcdTYxNDlcXHU2MTRBXFx1NjEyQlxcdTYxNDVcXHU2MTM2XFx1NjEzMlxcdTYxMkVcXHU2MTQ2XFx1NjEyRlxcdTYxNEZcXHU2MTI5XFx1NjE0MFxcdTYyMjBcXHU5MTY4XFx1NjIyM1xcdTYyMjVcXHU2MjI0XFx1NjNDNVxcdTYzRjFcXHU2M0VCXFx1NjQxMFxcdTY0MTJcXHU2NDA5XFx1NjQyMFxcdTY0MjRcIl0sXG4gICAgICBbXCJkZGExXCIsIFwiXFx1NjQzM1xcdTY0NDNcXHU2NDFGXFx1NjQxNVxcdTY0MThcXHU2NDM5XFx1NjQzN1xcdTY0MjJcXHU2NDIzXFx1NjQwQ1xcdTY0MjZcXHU2NDMwXFx1NjQyOFxcdTY0NDFcXHU2NDM1XFx1NjQyRlxcdTY0MEFcXHU2NDFBXFx1NjQ0MFxcdTY0MjVcXHU2NDI3XFx1NjQwQlxcdTYzRTdcXHU2NDFCXFx1NjQyRVxcdTY0MjFcXHU2NDBFXFx1NjU2RlxcdTY1OTJcXHU2NUQzXFx1NjY4NlxcdTY2OENcXHU2Njk1XFx1NjY5MFxcdTY2OEJcXHU2NjhBXFx1NjY5OVxcdTY2OTRcXHU2Njc4XFx1NjcyMFxcdTY5NjZcXHU2OTVGXFx1NjkzOFxcdTY5NEVcXHU2OTYyXFx1Njk3MVxcdTY5M0ZcXHU2OTQ1XFx1Njk2QVxcdTY5MzlcXHU2OTQyXFx1Njk1N1xcdTY5NTlcXHU2OTdBXFx1Njk0OFxcdTY5NDlcXHU2OTM1XFx1Njk2Q1xcdTY5MzNcXHU2OTNEXFx1Njk2NVxcdTY4RjBcXHU2OTc4XFx1NjkzNFxcdTY5NjlcXHU2OTQwXFx1Njk2RlxcdTY5NDRcXHU2OTc2XFx1Njk1OFxcdTY5NDFcXHU2OTc0XFx1Njk0Q1xcdTY5M0JcXHU2OTRCXFx1NjkzN1xcdTY5NUNcXHU2OTRGXFx1Njk1MVxcdTY5MzJcXHU2OTUyXFx1NjkyRlxcdTY5N0JcXHU2OTNDXFx1NkI0NlxcdTZCNDVcXHU2QjQzXFx1NkI0MlxcdTZCNDhcXHU2QjQxXFx1NkI5QlxcdUZBMERcXHU2QkZCXFx1NkJGQ1wiXSxcbiAgICAgIFtcImRlNDBcIiwgXCJcXHU2QkY5XFx1NkJGN1xcdTZCRjhcXHU2RTlCXFx1NkVENlxcdTZFQzhcXHU2RThGXFx1NkVDMFxcdTZFOUZcXHU2RTkzXFx1NkU5NFxcdTZFQTBcXHU2RUIxXFx1NkVCOVxcdTZFQzZcXHU2RUQyXFx1NkVCRFxcdTZFQzFcXHU2RTlFXFx1NkVDOVxcdTZFQjdcXHU2RUIwXFx1NkVDRFxcdTZFQTZcXHU2RUNGXFx1NkVCMlxcdTZFQkVcXHU2RUMzXFx1NkVEQ1xcdTZFRDhcXHU2RTk5XFx1NkU5MlxcdTZFOEVcXHU2RThEXFx1NkVBNFxcdTZFQTFcXHU2RUJGXFx1NkVCM1xcdTZFRDBcXHU2RUNBXFx1NkU5N1xcdTZFQUVcXHU2RUEzXFx1NzE0N1xcdTcxNTRcXHU3MTUyXFx1NzE2M1xcdTcxNjBcXHU3MTQxXFx1NzE1RFxcdTcxNjJcXHU3MTcyXFx1NzE3OFxcdTcxNkFcXHU3MTYxXFx1NzE0MlxcdTcxNThcXHU3MTQzXFx1NzE0QlxcdTcxNzBcXHU3MTVGXFx1NzE1MFxcdTcxNTNcIl0sXG4gICAgICBbXCJkZWExXCIsIFwiXFx1NzE0NFxcdTcxNERcXHU3MTVBXFx1NzI0RlxcdTcyOERcXHU3MjhDXFx1NzI5MVxcdTcyOTBcXHU3MjhFXFx1NzMzQ1xcdTczNDJcXHU3MzNCXFx1NzMzQVxcdTczNDBcXHU3MzRBXFx1NzM0OVxcdTc0NDRcXHU3NDRBXFx1NzQ0QlxcdTc0NTJcXHU3NDUxXFx1NzQ1N1xcdTc0NDBcXHU3NDRGXFx1NzQ1MFxcdTc0NEVcXHU3NDQyXFx1NzQ0NlxcdTc0NERcXHU3NDU0XFx1NzRFMVxcdTc0RkZcXHU3NEZFXFx1NzRGRFxcdTc1MURcXHU3NTc5XFx1NzU3N1xcdTY5ODNcXHU3NUVGXFx1NzYwRlxcdTc2MDNcXHU3NUY3XFx1NzVGRVxcdTc1RkNcXHU3NUY5XFx1NzVGOFxcdTc2MTBcXHU3NUZCXFx1NzVGNlxcdTc1RURcXHU3NUY1XFx1NzVGRFxcdTc2OTlcXHU3NkI1XFx1NzZERFxcdTc3NTVcXHU3NzVGXFx1Nzc2MFxcdTc3NTJcXHU3NzU2XFx1Nzc1QVxcdTc3NjlcXHU3NzY3XFx1Nzc1NFxcdTc3NTlcXHU3NzZEXFx1NzdFMFxcdTc4ODdcXHU3ODlBXFx1Nzg5NFxcdTc4OEZcXHU3ODg0XFx1Nzg5NVxcdTc4ODVcXHU3ODg2XFx1NzhBMVxcdTc4ODNcXHU3ODc5XFx1Nzg5OVxcdTc4ODBcXHU3ODk2XFx1Nzg3QlxcdTc5N0NcXHU3OTgyXFx1Nzk3RFxcdTc5NzlcXHU3QTExXFx1N0ExOFxcdTdBMTlcXHU3QTEyXFx1N0ExN1xcdTdBMTVcXHU3QTIyXFx1N0ExM1wiXSxcbiAgICAgIFtcImRmNDBcIiwgXCJcXHU3QTFCXFx1N0ExMFxcdTdBQTNcXHU3QUEyXFx1N0E5RVxcdTdBRUJcXHU3QjY2XFx1N0I2NFxcdTdCNkRcXHU3Qjc0XFx1N0I2OVxcdTdCNzJcXHU3QjY1XFx1N0I3M1xcdTdCNzFcXHU3QjcwXFx1N0I2MVxcdTdCNzhcXHU3Qjc2XFx1N0I2M1xcdTdDQjJcXHU3Q0I0XFx1N0NBRlxcdTdEODhcXHU3RDg2XFx1N0Q4MFxcdTdEOERcXHU3RDdGXFx1N0Q4NVxcdTdEN0FcXHU3RDhFXFx1N0Q3QlxcdTdEODNcXHU3RDdDXFx1N0Q4Q1xcdTdEOTRcXHU3RDg0XFx1N0Q3RFxcdTdEOTJcXHU3RjZEXFx1N0Y2QlxcdTdGNjdcXHU3RjY4XFx1N0Y2Q1xcdTdGQTZcXHU3RkE1XFx1N0ZBN1xcdTdGREJcXHU3RkRDXFx1ODAyMVxcdTgxNjRcXHU4MTYwXFx1ODE3N1xcdTgxNUNcXHU4MTY5XFx1ODE1QlxcdTgxNjJcXHU4MTcyXFx1NjcyMVxcdTgxNUVcXHU4MTc2XFx1ODE2N1xcdTgxNkZcIl0sXG4gICAgICBbXCJkZmExXCIsIFwiXFx1ODE0NFxcdTgxNjFcXHU4MjFEXFx1ODI0OVxcdTgyNDRcXHU4MjQwXFx1ODI0MlxcdTgyNDVcXHU4NEYxXFx1ODQzRlxcdTg0NTZcXHU4NDc2XFx1ODQ3OVxcdTg0OEZcXHU4NDhEXFx1ODQ2NVxcdTg0NTFcXHU4NDQwXFx1ODQ4NlxcdTg0NjdcXHU4NDMwXFx1ODQ0RFxcdTg0N0RcXHU4NDVBXFx1ODQ1OVxcdTg0NzRcXHU4NDczXFx1ODQ1RFxcdTg1MDdcXHU4NDVFXFx1ODQzN1xcdTg0M0FcXHU4NDM0XFx1ODQ3QVxcdTg0NDNcXHU4NDc4XFx1ODQzMlxcdTg0NDVcXHU4NDI5XFx1ODNEOVxcdTg0NEJcXHU4NDJGXFx1ODQ0MlxcdTg0MkRcXHU4NDVGXFx1ODQ3MFxcdTg0MzlcXHU4NDRFXFx1ODQ0Q1xcdTg0NTJcXHU4NDZGXFx1ODRDNVxcdTg0OEVcXHU4NDNCXFx1ODQ0N1xcdTg0MzZcXHU4NDMzXFx1ODQ2OFxcdTg0N0VcXHU4NDQ0XFx1ODQyQlxcdTg0NjBcXHU4NDU0XFx1ODQ2RVxcdTg0NTBcXHU4NzBCXFx1ODcwNFxcdTg2RjdcXHU4NzBDXFx1ODZGQVxcdTg2RDZcXHU4NkY1XFx1ODc0RFxcdTg2RjhcXHU4NzBFXFx1ODcwOVxcdTg3MDFcXHU4NkY2XFx1ODcwRFxcdTg3MDVcXHU4OEQ2XFx1ODhDQlxcdTg4Q0RcXHU4OENFXFx1ODhERVxcdTg4REJcXHU4OERBXFx1ODhDQ1xcdTg4RDBcXHU4OTg1XFx1ODk5QlxcdTg5REZcXHU4OUU1XFx1ODlFNFwiXSxcbiAgICAgIFtcImUwNDBcIiwgXCJcXHU4OUUxXFx1ODlFMFxcdTg5RTJcXHU4OURDXFx1ODlFNlxcdThBNzZcXHU4QTg2XFx1OEE3RlxcdThBNjFcXHU4QTNGXFx1OEE3N1xcdThBODJcXHU4QTg0XFx1OEE3NVxcdThBODNcXHU4QTgxXFx1OEE3NFxcdThBN0FcXHU4QzNDXFx1OEM0QlxcdThDNEFcXHU4QzY1XFx1OEM2NFxcdThDNjZcXHU4Qzg2XFx1OEM4NFxcdThDODVcXHU4Q0NDXFx1OEQ2OFxcdThENjlcXHU4RDkxXFx1OEQ4Q1xcdThEOEVcXHU4RDhGXFx1OEQ4RFxcdThEOTNcXHU4RDk0XFx1OEQ5MFxcdThEOTJcXHU4REYwXFx1OERFMFxcdThERUNcXHU4REYxXFx1OERFRVxcdThERDBcXHU4REU5XFx1OERFM1xcdThERTJcXHU4REU3XFx1OERGMlxcdThERUJcXHU4REY0XFx1OEYwNlxcdThFRkZcXHU4RjAxXFx1OEYwMFxcdThGMDVcXHU4RjA3XFx1OEYwOFxcdThGMDJcXHU4RjBCXFx1OTA1MlxcdTkwM0ZcIl0sXG4gICAgICBbXCJlMGExXCIsIFwiXFx1OTA0NFxcdTkwNDlcXHU5MDNEXFx1OTExMFxcdTkxMERcXHU5MTBGXFx1OTExMVxcdTkxMTZcXHU5MTE0XFx1OTEwQlxcdTkxMEVcXHU5MTZFXFx1OTE2RlxcdTkyNDhcXHU5MjUyXFx1OTIzMFxcdTkyM0FcXHU5MjY2XFx1OTIzM1xcdTkyNjVcXHU5MjVFXFx1OTI4M1xcdTkyMkVcXHU5MjRBXFx1OTI0NlxcdTkyNkRcXHU5MjZDXFx1OTI0RlxcdTkyNjBcXHU5MjY3XFx1OTI2RlxcdTkyMzZcXHU5MjYxXFx1OTI3MFxcdTkyMzFcXHU5MjU0XFx1OTI2M1xcdTkyNTBcXHU5MjcyXFx1OTI0RVxcdTkyNTNcXHU5MjRDXFx1OTI1NlxcdTkyMzJcXHU5NTlGXFx1OTU5Q1xcdTk1OUVcXHU5NTlCXFx1OTY5MlxcdTk2OTNcXHU5NjkxXFx1OTY5N1xcdTk2Q0VcXHU5NkZBXFx1OTZGRFxcdTk2RjhcXHU5NkY1XFx1OTc3M1xcdTk3NzdcXHU5Nzc4XFx1OTc3MlxcdTk4MEZcXHU5ODBEXFx1OTgwRVxcdTk4QUNcXHU5OEY2XFx1OThGOVxcdTk5QUZcXHU5OUIyXFx1OTlCMFxcdTk5QjVcXHU5QUFEXFx1OUFBQlxcdTlCNUJcXHU5Q0VBXFx1OUNFRFxcdTlDRTdcXHU5RTgwXFx1OUVGRFxcdTUwRTZcXHU1MEQ0XFx1NTBEN1xcdTUwRThcXHU1MEYzXFx1NTBEQlxcdTUwRUFcXHU1MEREXFx1NTBFNFxcdTUwRDNcXHU1MEVDXFx1NTBGMFxcdTUwRUZcXHU1MEUzXFx1NTBFMFwiXSxcbiAgICAgIFtcImUxNDBcIiwgXCJcXHU1MUQ4XFx1NTI4MFxcdTUyODFcXHU1MkU5XFx1NTJFQlxcdTUzMzBcXHU1M0FDXFx1NTYyN1xcdTU2MTVcXHU1NjBDXFx1NTYxMlxcdTU1RkNcXHU1NjBGXFx1NTYxQ1xcdTU2MDFcXHU1NjEzXFx1NTYwMlxcdTU1RkFcXHU1NjFEXFx1NTYwNFxcdTU1RkZcXHU1NUY5XFx1NTg4OVxcdTU4N0NcXHU1ODkwXFx1NTg5OFxcdTU4ODZcXHU1ODgxXFx1NTg3RlxcdTU4NzRcXHU1ODhCXFx1NTg3QVxcdTU4ODdcXHU1ODkxXFx1NTg4RVxcdTU4NzZcXHU1ODgyXFx1NTg4OFxcdTU4N0JcXHU1ODk0XFx1NTg4RlxcdTU4RkVcXHU1OTZCXFx1NUFEQ1xcdTVBRUVcXHU1QUU1XFx1NUFENVxcdTVBRUFcXHU1QURBXFx1NUFFRFxcdTVBRUJcXHU1QUYzXFx1NUFFMlxcdTVBRTBcXHU1QURCXFx1NUFFQ1xcdTVBREVcXHU1QUREXFx1NUFEOVxcdTVBRThcXHU1QURGXFx1NUI3N1xcdTVCRTBcIl0sXG4gICAgICBbXCJlMWExXCIsIFwiXFx1NUJFM1xcdTVDNjNcXHU1RDgyXFx1NUQ4MFxcdTVEN0RcXHU1RDg2XFx1NUQ3QVxcdTVEODFcXHU1RDc3XFx1NUQ4QVxcdTVEODlcXHU1RDg4XFx1NUQ3RVxcdTVEN0NcXHU1RDhEXFx1NUQ3OVxcdTVEN0ZcXHU1RTU4XFx1NUU1OVxcdTVFNTNcXHU1RUQ4XFx1NUVEMVxcdTVFRDdcXHU1RUNFXFx1NUVEQ1xcdTVFRDVcXHU1RUQ5XFx1NUVEMlxcdTVFRDRcXHU1RjQ0XFx1NUY0M1xcdTVGNkZcXHU1RkI2XFx1NjEyQ1xcdTYxMjhcXHU2MTQxXFx1NjE1RVxcdTYxNzFcXHU2MTczXFx1NjE1MlxcdTYxNTNcXHU2MTcyXFx1NjE2Q1xcdTYxODBcXHU2MTc0XFx1NjE1NFxcdTYxN0FcXHU2MTVCXFx1NjE2NVxcdTYxM0JcXHU2MTZBXFx1NjE2MVxcdTYxNTZcXHU2MjI5XFx1NjIyN1xcdTYyMkJcXHU2NDJCXFx1NjQ0RFxcdTY0NUJcXHU2NDVEXFx1NjQ3NFxcdTY0NzZcXHU2NDcyXFx1NjQ3M1xcdTY0N0RcXHU2NDc1XFx1NjQ2NlxcdTY0QTZcXHU2NDRFXFx1NjQ4MlxcdTY0NUVcXHU2NDVDXFx1NjQ0QlxcdTY0NTNcXHU2NDYwXFx1NjQ1MFxcdTY0N0ZcXHU2NDNGXFx1NjQ2Q1xcdTY0NkJcXHU2NDU5XFx1NjQ2NVxcdTY0NzdcXHU2NTczXFx1NjVBMFxcdTY2QTFcXHU2NkEwXFx1NjY5RlxcdTY3MDVcXHU2NzA0XFx1NjcyMlxcdTY5QjFcXHU2OUI2XFx1NjlDOVwiXSxcbiAgICAgIFtcImUyNDBcIiwgXCJcXHU2OUEwXFx1NjlDRVxcdTY5OTZcXHU2OUIwXFx1NjlBQ1xcdTY5QkNcXHU2OTkxXFx1Njk5OVxcdTY5OEVcXHU2OUE3XFx1Njk4RFxcdTY5QTlcXHU2OUJFXFx1NjlBRlxcdTY5QkZcXHU2OUM0XFx1NjlCRFxcdTY5QTRcXHU2OUQ0XFx1NjlCOVxcdTY5Q0FcXHU2OTlBXFx1NjlDRlxcdTY5QjNcXHU2OTkzXFx1NjlBQVxcdTY5QTFcXHU2OTlFXFx1NjlEOVxcdTY5OTdcXHU2OTkwXFx1NjlDMlxcdTY5QjVcXHU2OUE1XFx1NjlDNlxcdTZCNEFcXHU2QjREXFx1NkI0QlxcdTZCOUVcXHU2QjlGXFx1NkJBMFxcdTZCQzNcXHU2QkM0XFx1NkJGRVxcdTZFQ0VcXHU2RUY1XFx1NkVGMVxcdTZGMDNcXHU2RjI1XFx1NkVGOFxcdTZGMzdcXHU2RUZCXFx1NkYyRVxcdTZGMDlcXHU2RjRFXFx1NkYxOVxcdTZGMUFcXHU2RjI3XFx1NkYxOFxcdTZGM0JcXHU2RjEyXFx1NkVFRFxcdTZGMEFcIl0sXG4gICAgICBbXCJlMmExXCIsIFwiXFx1NkYzNlxcdTZGNzNcXHU2RUY5XFx1NkVFRVxcdTZGMkRcXHU2RjQwXFx1NkYzMFxcdTZGM0NcXHU2RjM1XFx1NkVFQlxcdTZGMDdcXHU2RjBFXFx1NkY0M1xcdTZGMDVcXHU2RUZEXFx1NkVGNlxcdTZGMzlcXHU2RjFDXFx1NkVGQ1xcdTZGM0FcXHU2RjFGXFx1NkYwRFxcdTZGMUVcXHU2RjA4XFx1NkYyMVxcdTcxODdcXHU3MTkwXFx1NzE4OVxcdTcxODBcXHU3MTg1XFx1NzE4MlxcdTcxOEZcXHU3MTdCXFx1NzE4NlxcdTcxODFcXHU3MTk3XFx1NzI0NFxcdTcyNTNcXHU3Mjk3XFx1NzI5NVxcdTcyOTNcXHU3MzQzXFx1NzM0RFxcdTczNTFcXHU3MzRDXFx1NzQ2MlxcdTc0NzNcXHU3NDcxXFx1NzQ3NVxcdTc0NzJcXHU3NDY3XFx1NzQ2RVxcdTc1MDBcXHU3NTAyXFx1NzUwM1xcdTc1N0RcXHU3NTkwXFx1NzYxNlxcdTc2MDhcXHU3NjBDXFx1NzYxNVxcdTc2MTFcXHU3NjBBXFx1NzYxNFxcdTc2QjhcXHU3NzgxXFx1Nzc3Q1xcdTc3ODVcXHU3NzgyXFx1Nzc2RVxcdTc3ODBcXHU3NzZGXFx1Nzc3RVxcdTc3ODNcXHU3OEIyXFx1NzhBQVxcdTc4QjRcXHU3OEFEXFx1NzhBOFxcdTc4N0VcXHU3OEFCXFx1Nzg5RVxcdTc4QTVcXHU3OEEwXFx1NzhBQ1xcdTc4QTJcXHU3OEE0XFx1Nzk5OFxcdTc5OEFcXHU3OThCXFx1Nzk5NlxcdTc5OTVcXHU3OTk0XFx1Nzk5M1wiXSxcbiAgICAgIFtcImUzNDBcIiwgXCJcXHU3OTk3XFx1Nzk4OFxcdTc5OTJcXHU3OTkwXFx1N0EyQlxcdTdBNEFcXHU3QTMwXFx1N0EyRlxcdTdBMjhcXHU3QTI2XFx1N0FBOFxcdTdBQUJcXHU3QUFDXFx1N0FFRVxcdTdCODhcXHU3QjlDXFx1N0I4QVxcdTdCOTFcXHU3QjkwXFx1N0I5NlxcdTdCOERcXHU3QjhDXFx1N0I5QlxcdTdCOEVcXHU3Qjg1XFx1N0I5OFxcdTUyODRcXHU3Qjk5XFx1N0JBNFxcdTdCODJcXHU3Q0JCXFx1N0NCRlxcdTdDQkNcXHU3Q0JBXFx1N0RBN1xcdTdEQjdcXHU3REMyXFx1N0RBM1xcdTdEQUFcXHU3REMxXFx1N0RDMFxcdTdEQzVcXHU3RDlEXFx1N0RDRVxcdTdEQzRcXHU3REM2XFx1N0RDQlxcdTdEQ0NcXHU3REFGXFx1N0RCOVxcdTdEOTZcXHU3REJDXFx1N0Q5RlxcdTdEQTZcXHU3REFFXFx1N0RBOVxcdTdEQTFcXHU3REM5XFx1N0Y3M1xcdTdGRTJcXHU3RkUzXFx1N0ZFNVxcdTdGREVcIl0sXG4gICAgICBbXCJlM2ExXCIsIFwiXFx1ODAyNFxcdTgwNURcXHU4MDVDXFx1ODE4OVxcdTgxODZcXHU4MTgzXFx1ODE4N1xcdTgxOERcXHU4MThDXFx1ODE4QlxcdTgyMTVcXHU4NDk3XFx1ODRBNFxcdTg0QTFcXHU4NDlGXFx1ODRCQVxcdTg0Q0VcXHU4NEMyXFx1ODRBQ1xcdTg0QUVcXHU4NEFCXFx1ODRCOVxcdTg0QjRcXHU4NEMxXFx1ODRDRFxcdTg0QUFcXHU4NDlBXFx1ODRCMVxcdTg0RDBcXHU4NDlEXFx1ODRBN1xcdTg0QkJcXHU4NEEyXFx1ODQ5NFxcdTg0QzdcXHU4NENDXFx1ODQ5QlxcdTg0QTlcXHU4NEFGXFx1ODRBOFxcdTg0RDZcXHU4NDk4XFx1ODRCNlxcdTg0Q0ZcXHU4NEEwXFx1ODREN1xcdTg0RDRcXHU4NEQyXFx1ODREQlxcdTg0QjBcXHU4NDkxXFx1ODY2MVxcdTg3MzNcXHU4NzIzXFx1ODcyOFxcdTg3NkJcXHU4NzQwXFx1ODcyRVxcdTg3MUVcXHU4NzIxXFx1ODcxOVxcdTg3MUJcXHU4NzQzXFx1ODcyQ1xcdTg3NDFcXHU4NzNFXFx1ODc0NlxcdTg3MjBcXHU4NzMyXFx1ODcyQVxcdTg3MkRcXHU4NzNDXFx1ODcxMlxcdTg3M0FcXHU4NzMxXFx1ODczNVxcdTg3NDJcXHU4NzI2XFx1ODcyN1xcdTg3MzhcXHU4NzI0XFx1ODcxQVxcdTg3MzBcXHU4NzExXFx1ODhGN1xcdTg4RTdcXHU4OEYxXFx1ODhGMlxcdTg4RkFcXHU4OEZFXFx1ODhFRVxcdTg4RkNcXHU4OEY2XFx1ODhGQlwiXSxcbiAgICAgIFtcImU0NDBcIiwgXCJcXHU4OEYwXFx1ODhFQ1xcdTg4RUJcXHU4OTlEXFx1ODlBMVxcdTg5OUZcXHU4OTlFXFx1ODlFOVxcdTg5RUJcXHU4OUU4XFx1OEFBQlxcdThBOTlcXHU4QThCXFx1OEE5MlxcdThBOEZcXHU4QTk2XFx1OEMzRFxcdThDNjhcXHU4QzY5XFx1OENENVxcdThDQ0ZcXHU4Q0Q3XFx1OEQ5NlxcdThFMDlcXHU4RTAyXFx1OERGRlxcdThFMERcXHU4REZEXFx1OEUwQVxcdThFMDNcXHU4RTA3XFx1OEUwNlxcdThFMDVcXHU4REZFXFx1OEUwMFxcdThFMDRcXHU4RjEwXFx1OEYxMVxcdThGMEVcXHU4RjBEXFx1OTEyM1xcdTkxMUNcXHU5MTIwXFx1OTEyMlxcdTkxMUZcXHU5MTFEXFx1OTExQVxcdTkxMjRcXHU5MTIxXFx1OTExQlxcdTkxN0FcXHU5MTcyXFx1OTE3OVxcdTkxNzNcXHU5MkE1XFx1OTJBNFxcdTkyNzZcXHU5MjlCXFx1OTI3QVxcdTkyQTBcXHU5Mjk0XFx1OTJBQVxcdTkyOERcIl0sXG4gICAgICBbXCJlNGExXCIsIFwiXFx1OTJBNlxcdTkyOUFcXHU5MkFCXFx1OTI3OVxcdTkyOTdcXHU5MjdGXFx1OTJBM1xcdTkyRUVcXHU5MjhFXFx1OTI4MlxcdTkyOTVcXHU5MkEyXFx1OTI3RFxcdTkyODhcXHU5MkExXFx1OTI4QVxcdTkyODZcXHU5MjhDXFx1OTI5OVxcdTkyQTdcXHU5MjdFXFx1OTI4N1xcdTkyQTlcXHU5MjlEXFx1OTI4QlxcdTkyMkRcXHU5NjlFXFx1OTZBMVxcdTk2RkZcXHU5NzU4XFx1OTc3RFxcdTk3N0FcXHU5NzdFXFx1OTc4M1xcdTk3ODBcXHU5NzgyXFx1OTc3QlxcdTk3ODRcXHU5NzgxXFx1OTc3RlxcdTk3Q0VcXHU5N0NEXFx1OTgxNlxcdTk4QURcXHU5OEFFXFx1OTkwMlxcdTk5MDBcXHU5OTA3XFx1OTk5RFxcdTk5OUNcXHU5OUMzXFx1OTlCOVxcdTk5QkJcXHU5OUJBXFx1OTlDMlxcdTk5QkRcXHU5OUM3XFx1OUFCMVxcdTlBRTNcXHU5QUU3XFx1OUIzRVxcdTlCM0ZcXHU5QjYwXFx1OUI2MVxcdTlCNUZcXHU5Q0YxXFx1OUNGMlxcdTlDRjVcXHU5RUE3XFx1NTBGRlxcdTUxMDNcXHU1MTMwXFx1NTBGOFxcdTUxMDZcXHU1MTA3XFx1NTBGNlxcdTUwRkVcXHU1MTBCXFx1NTEwQ1xcdTUwRkRcXHU1MTBBXFx1NTI4QlxcdTUyOENcXHU1MkYxXFx1NTJFRlxcdTU2NDhcXHU1NjQyXFx1NTY0Q1xcdTU2MzVcXHU1NjQxXFx1NTY0QVxcdTU2NDlcXHU1NjQ2XFx1NTY1OFwiXSxcbiAgICAgIFtcImU1NDBcIiwgXCJcXHU1NjVBXFx1NTY0MFxcdTU2MzNcXHU1NjNEXFx1NTYyQ1xcdTU2M0VcXHU1NjM4XFx1NTYyQVxcdTU2M0FcXHU1NzFBXFx1NThBQlxcdTU4OURcXHU1OEIxXFx1NThBMFxcdTU4QTNcXHU1OEFGXFx1NThBQ1xcdTU4QTVcXHU1OEExXFx1NThGRlxcdTVBRkZcXHU1QUY0XFx1NUFGRFxcdTVBRjdcXHU1QUY2XFx1NUIwM1xcdTVBRjhcXHU1QjAyXFx1NUFGOVxcdTVCMDFcXHU1QjA3XFx1NUIwNVxcdTVCMEZcXHU1QzY3XFx1NUQ5OVxcdTVEOTdcXHU1RDlGXFx1NUQ5MlxcdTVEQTJcXHU1RDkzXFx1NUQ5NVxcdTVEQTBcXHU1RDlDXFx1NURBMVxcdTVEOUFcXHU1RDlFXFx1NUU2OVxcdTVFNURcXHU1RTYwXFx1NUU1Q1xcdTdERjNcXHU1RURCXFx1NUVERVxcdTVFRTFcXHU1RjQ5XFx1NUZCMlxcdTYxOEJcXHU2MTgzXFx1NjE3OVxcdTYxQjFcXHU2MUIwXFx1NjFBMlxcdTYxODlcIl0sXG4gICAgICBbXCJlNWExXCIsIFwiXFx1NjE5QlxcdTYxOTNcXHU2MUFGXFx1NjFBRFxcdTYxOUZcXHU2MTkyXFx1NjFBQVxcdTYxQTFcXHU2MThEXFx1NjE2NlxcdTYxQjNcXHU2MjJEXFx1NjQ2RVxcdTY0NzBcXHU2NDk2XFx1NjRBMFxcdTY0ODVcXHU2NDk3XFx1NjQ5Q1xcdTY0OEZcXHU2NDhCXFx1NjQ4QVxcdTY0OENcXHU2NEEzXFx1NjQ5RlxcdTY0NjhcXHU2NEIxXFx1NjQ5OFxcdTY1NzZcXHU2NTdBXFx1NjU3OVxcdTY1N0JcXHU2NUIyXFx1NjVCM1xcdTY2QjVcXHU2NkIwXFx1NjZBOVxcdTY2QjJcXHU2NkI3XFx1NjZBQVxcdTY2QUZcXHU2QTAwXFx1NkEwNlxcdTZBMTdcXHU2OUU1XFx1NjlGOFxcdTZBMTVcXHU2OUYxXFx1NjlFNFxcdTZBMjBcXHU2OUZGXFx1NjlFQ1xcdTY5RTJcXHU2QTFCXFx1NkExRFxcdTY5RkVcXHU2QTI3XFx1NjlGMlxcdTY5RUVcXHU2QTE0XFx1NjlGN1xcdTY5RTdcXHU2QTQwXFx1NkEwOFxcdTY5RTZcXHU2OUZCXFx1NkEwRFxcdTY5RkNcXHU2OUVCXFx1NkEwOVxcdTZBMDRcXHU2QTE4XFx1NkEyNVxcdTZBMEZcXHU2OUY2XFx1NkEyNlxcdTZBMDdcXHU2OUY0XFx1NkExNlxcdTZCNTFcXHU2QkE1XFx1NkJBM1xcdTZCQTJcXHU2QkE2XFx1NkMwMVxcdTZDMDBcXHU2QkZGXFx1NkMwMlxcdTZGNDFcXHU2RjI2XFx1NkY3RVxcdTZGODdcXHU2RkM2XFx1NkY5MlwiXSxcbiAgICAgIFtcImU2NDBcIiwgXCJcXHU2RjhEXFx1NkY4OVxcdTZGOENcXHU2RjYyXFx1NkY0RlxcdTZGODVcXHU2RjVBXFx1NkY5NlxcdTZGNzZcXHU2RjZDXFx1NkY4MlxcdTZGNTVcXHU2RjcyXFx1NkY1MlxcdTZGNTBcXHU2RjU3XFx1NkY5NFxcdTZGOTNcXHU2RjVEXFx1NkYwMFxcdTZGNjFcXHU2RjZCXFx1NkY3RFxcdTZGNjdcXHU2RjkwXFx1NkY1M1xcdTZGOEJcXHU2RjY5XFx1NkY3RlxcdTZGOTVcXHU2RjYzXFx1NkY3N1xcdTZGNkFcXHU2RjdCXFx1NzFCMlxcdTcxQUZcXHU3MTlCXFx1NzFCMFxcdTcxQTBcXHU3MTlBXFx1NzFBOVxcdTcxQjVcXHU3MTlEXFx1NzFBNVxcdTcxOUVcXHU3MUE0XFx1NzFBMVxcdTcxQUFcXHU3MTlDXFx1NzFBN1xcdTcxQjNcXHU3Mjk4XFx1NzI5QVxcdTczNThcXHU3MzUyXFx1NzM1RVxcdTczNUZcXHU3MzYwXFx1NzM1RFxcdTczNUJcXHU3MzYxXFx1NzM1QVxcdTczNTlcIl0sXG4gICAgICBbXCJlNmExXCIsIFwiXFx1NzM2MlxcdTc0ODdcXHU3NDg5XFx1NzQ4QVxcdTc0ODZcXHU3NDgxXFx1NzQ3RFxcdTc0ODVcXHU3NDg4XFx1NzQ3Q1xcdTc0NzlcXHU3NTA4XFx1NzUwN1xcdTc1N0VcXHU3NjI1XFx1NzYxRVxcdTc2MTlcXHU3NjFEXFx1NzYxQ1xcdTc2MjNcXHU3NjFBXFx1NzYyOFxcdTc2MUJcXHU3NjlDXFx1NzY5RFxcdTc2OUVcXHU3NjlCXFx1Nzc4RFxcdTc3OEZcXHU3Nzg5XFx1Nzc4OFxcdTc4Q0RcXHU3OEJCXFx1NzhDRlxcdTc4Q0NcXHU3OEQxXFx1NzhDRVxcdTc4RDRcXHU3OEM4XFx1NzhDM1xcdTc4QzRcXHU3OEM5XFx1Nzk5QVxcdTc5QTFcXHU3OUEwXFx1Nzk5Q1xcdTc5QTJcXHU3OTlCXFx1NkI3NlxcdTdBMzlcXHU3QUIyXFx1N0FCNFxcdTdBQjNcXHU3QkI3XFx1N0JDQlxcdTdCQkVcXHU3QkFDXFx1N0JDRVxcdTdCQUZcXHU3QkI5XFx1N0JDQVxcdTdCQjVcXHU3Q0M1XFx1N0NDOFxcdTdDQ0NcXHU3Q0NCXFx1N0RGN1xcdTdEREJcXHU3REVBXFx1N0RFN1xcdTdERDdcXHU3REUxXFx1N0UwM1xcdTdERkFcXHU3REU2XFx1N0RGNlxcdTdERjFcXHU3REYwXFx1N0RFRVxcdTdEREZcXHU3Rjc2XFx1N0ZBQ1xcdTdGQjBcXHU3RkFEXFx1N0ZFRFxcdTdGRUJcXHU3RkVBXFx1N0ZFQ1xcdTdGRTZcXHU3RkU4XFx1ODA2NFxcdTgwNjdcXHU4MUEzXFx1ODE5RlwiXSxcbiAgICAgIFtcImU3NDBcIiwgXCJcXHU4MTlFXFx1ODE5NVxcdTgxQTJcXHU4MTk5XFx1ODE5N1xcdTgyMTZcXHU4MjRGXFx1ODI1M1xcdTgyNTJcXHU4MjUwXFx1ODI0RVxcdTgyNTFcXHU4NTI0XFx1ODUzQlxcdTg1MEZcXHU4NTAwXFx1ODUyOVxcdTg1MEVcXHU4NTA5XFx1ODUwRFxcdTg1MUZcXHU4NTBBXFx1ODUyN1xcdTg1MUNcXHU4NEZCXFx1ODUyQlxcdTg0RkFcXHU4NTA4XFx1ODUwQ1xcdTg0RjRcXHU4NTJBXFx1ODRGMlxcdTg1MTVcXHU4NEY3XFx1ODRFQlxcdTg0RjNcXHU4NEZDXFx1ODUxMlxcdTg0RUFcXHU4NEU5XFx1ODUxNlxcdTg0RkVcXHU4NTI4XFx1ODUxRFxcdTg1MkVcXHU4NTAyXFx1ODRGRFxcdTg1MUVcXHU4NEY2XFx1ODUzMVxcdTg1MjZcXHU4NEU3XFx1ODRFOFxcdTg0RjBcXHU4NEVGXFx1ODRGOVxcdTg1MThcXHU4NTIwXFx1ODUzMFxcdTg1MEJcXHU4NTE5XFx1ODUyRlxcdTg2NjJcIl0sXG4gICAgICBbXCJlN2ExXCIsIFwiXFx1ODc1NlxcdTg3NjNcXHU4NzY0XFx1ODc3N1xcdTg3RTFcXHU4NzczXFx1ODc1OFxcdTg3NTRcXHU4NzVCXFx1ODc1MlxcdTg3NjFcXHU4NzVBXFx1ODc1MVxcdTg3NUVcXHU4NzZEXFx1ODc2QVxcdTg3NTBcXHU4NzRFXFx1ODc1RlxcdTg3NURcXHU4NzZGXFx1ODc2Q1xcdTg3N0FcXHU4NzZFXFx1ODc1Q1xcdTg3NjVcXHU4NzRGXFx1ODc3QlxcdTg3NzVcXHU4NzYyXFx1ODc2N1xcdTg3NjlcXHU4ODVBXFx1ODkwNVxcdTg5MENcXHU4OTE0XFx1ODkwQlxcdTg5MTdcXHU4OTE4XFx1ODkxOVxcdTg5MDZcXHU4OTE2XFx1ODkxMVxcdTg5MEVcXHU4OTA5XFx1ODlBMlxcdTg5QTRcXHU4OUEzXFx1ODlFRFxcdTg5RjBcXHU4OUVDXFx1OEFDRlxcdThBQzZcXHU4QUI4XFx1OEFEM1xcdThBRDFcXHU4QUQ0XFx1OEFENVxcdThBQkJcXHU4QUQ3XFx1OEFCRVxcdThBQzBcXHU4QUM1XFx1OEFEOFxcdThBQzNcXHU4QUJBXFx1OEFCRFxcdThBRDlcXHU4QzNFXFx1OEM0RFxcdThDOEZcXHU4Q0U1XFx1OENERlxcdThDRDlcXHU4Q0U4XFx1OENEQVxcdThDRERcXHU4Q0U3XFx1OERBMFxcdThEOUNcXHU4REExXFx1OEQ5QlxcdThFMjBcXHU4RTIzXFx1OEUyNVxcdThFMjRcXHU4RTJFXFx1OEUxNVxcdThFMUJcXHU4RTE2XFx1OEUxMVxcdThFMTlcXHU4RTI2XFx1OEUyN1wiXSxcbiAgICAgIFtcImU4NDBcIiwgXCJcXHU4RTE0XFx1OEUxMlxcdThFMThcXHU4RTEzXFx1OEUxQ1xcdThFMTdcXHU4RTFBXFx1OEYyQ1xcdThGMjRcXHU4RjE4XFx1OEYxQVxcdThGMjBcXHU4RjIzXFx1OEYxNlxcdThGMTdcXHU5MDczXFx1OTA3MFxcdTkwNkZcXHU5MDY3XFx1OTA2QlxcdTkxMkZcXHU5MTJCXFx1OTEyOVxcdTkxMkFcXHU5MTMyXFx1OTEyNlxcdTkxMkVcXHU5MTg1XFx1OTE4NlxcdTkxOEFcXHU5MTgxXFx1OTE4MlxcdTkxODRcXHU5MTgwXFx1OTJEMFxcdTkyQzNcXHU5MkM0XFx1OTJDMFxcdTkyRDlcXHU5MkI2XFx1OTJDRlxcdTkyRjFcXHU5MkRGXFx1OTJEOFxcdTkyRTlcXHU5MkQ3XFx1OTJERFxcdTkyQ0NcXHU5MkVGXFx1OTJDMlxcdTkyRThcXHU5MkNBXFx1OTJDOFxcdTkyQ0VcXHU5MkU2XFx1OTJDRFxcdTkyRDVcXHU5MkM5XFx1OTJFMFxcdTkyREVcXHU5MkU3XFx1OTJEMVxcdTkyRDNcIl0sXG4gICAgICBbXCJlOGExXCIsIFwiXFx1OTJCNVxcdTkyRTFcXHU5MkM2XFx1OTJCNFxcdTk1N0NcXHU5NUFDXFx1OTVBQlxcdTk1QUVcXHU5NUIwXFx1OTZBNFxcdTk2QTJcXHU5NkQzXFx1OTcwNVxcdTk3MDhcXHU5NzAyXFx1OTc1QVxcdTk3OEFcXHU5NzhFXFx1OTc4OFxcdTk3RDBcXHU5N0NGXFx1OTgxRVxcdTk4MURcXHU5ODI2XFx1OTgyOVxcdTk4MjhcXHU5ODIwXFx1OTgxQlxcdTk4MjdcXHU5OEIyXFx1OTkwOFxcdTk4RkFcXHU5OTExXFx1OTkxNFxcdTk5MTZcXHU5OTE3XFx1OTkxNVxcdTk5RENcXHU5OUNEXFx1OTlDRlxcdTk5RDNcXHU5OUQ0XFx1OTlDRVxcdTk5QzlcXHU5OUQ2XFx1OTlEOFxcdTk5Q0JcXHU5OUQ3XFx1OTlDQ1xcdTlBQjNcXHU5QUVDXFx1OUFFQlxcdTlBRjNcXHU5QUYyXFx1OUFGMVxcdTlCNDZcXHU5QjQzXFx1OUI2N1xcdTlCNzRcXHU5QjcxXFx1OUI2NlxcdTlCNzZcXHU5Qjc1XFx1OUI3MFxcdTlCNjhcXHU5QjY0XFx1OUI2Q1xcdTlDRkNcXHU5Q0ZBXFx1OUNGRFxcdTlDRkZcXHU5Q0Y3XFx1OUQwN1xcdTlEMDBcXHU5Q0Y5XFx1OUNGQlxcdTlEMDhcXHU5RDA1XFx1OUQwNFxcdTlFODNcXHU5RUQzXFx1OUYwRlxcdTlGMTBcXHU1MTFDXFx1NTExM1xcdTUxMTdcXHU1MTFBXFx1NTExMVxcdTUxREVcXHU1MzM0XFx1NTNFMVxcdTU2NzBcXHU1NjYwXFx1NTY2RVwiXSxcbiAgICAgIFtcImU5NDBcIiwgXCJcXHU1NjczXFx1NTY2NlxcdTU2NjNcXHU1NjZEXFx1NTY3MlxcdTU2NUVcXHU1Njc3XFx1NTcxQ1xcdTU3MUJcXHU1OEM4XFx1NThCRFxcdTU4QzlcXHU1OEJGXFx1NThCQVxcdTU4QzJcXHU1OEJDXFx1NThDNlxcdTVCMTdcXHU1QjE5XFx1NUIxQlxcdTVCMjFcXHU1QjE0XFx1NUIxM1xcdTVCMTBcXHU1QjE2XFx1NUIyOFxcdTVCMUFcXHU1QjIwXFx1NUIxRVxcdTVCRUZcXHU1REFDXFx1NURCMVxcdTVEQTlcXHU1REE3XFx1NURCNVxcdTVEQjBcXHU1REFFXFx1NURBQVxcdTVEQThcXHU1REIyXFx1NURBRFxcdTVEQUZcXHU1REI0XFx1NUU2N1xcdTVFNjhcXHU1RTY2XFx1NUU2RlxcdTVFRTlcXHU1RUU3XFx1NUVFNlxcdTVFRThcXHU1RUU1XFx1NUY0QlxcdTVGQkNcXHU2MTlEXFx1NjFBOFxcdTYxOTZcXHU2MUM1XFx1NjFCNFxcdTYxQzZcXHU2MUMxXFx1NjFDQ1xcdTYxQkFcIl0sXG4gICAgICBbXCJlOWExXCIsIFwiXFx1NjFCRlxcdTYxQjhcXHU2MThDXFx1NjREN1xcdTY0RDZcXHU2NEQwXFx1NjRDRlxcdTY0QzlcXHU2NEJEXFx1NjQ4OVxcdTY0QzNcXHU2NERCXFx1NjRGM1xcdTY0RDlcXHU2NTMzXFx1NjU3RlxcdTY1N0NcXHU2NUEyXFx1NjZDOFxcdTY2QkVcXHU2NkMwXFx1NjZDQVxcdTY2Q0JcXHU2NkNGXFx1NjZCRFxcdTY2QkJcXHU2NkJBXFx1NjZDQ1xcdTY3MjNcXHU2QTM0XFx1NkE2NlxcdTZBNDlcXHU2QTY3XFx1NkEzMlxcdTZBNjhcXHU2QTNFXFx1NkE1RFxcdTZBNkRcXHU2QTc2XFx1NkE1QlxcdTZBNTFcXHU2QTI4XFx1NkE1QVxcdTZBM0JcXHU2QTNGXFx1NkE0MVxcdTZBNkFcXHU2QTY0XFx1NkE1MFxcdTZBNEZcXHU2QTU0XFx1NkE2RlxcdTZBNjlcXHU2QTYwXFx1NkEzQ1xcdTZBNUVcXHU2QTU2XFx1NkE1NVxcdTZBNERcXHU2QTRFXFx1NkE0NlxcdTZCNTVcXHU2QjU0XFx1NkI1NlxcdTZCQTdcXHU2QkFBXFx1NkJBQlxcdTZCQzhcXHU2QkM3XFx1NkMwNFxcdTZDMDNcXHU2QzA2XFx1NkZBRFxcdTZGQ0JcXHU2RkEzXFx1NkZDN1xcdTZGQkNcXHU2RkNFXFx1NkZDOFxcdTZGNUVcXHU2RkM0XFx1NkZCRFxcdTZGOUVcXHU2RkNBXFx1NkZBOFxcdTcwMDRcXHU2RkE1XFx1NkZBRVxcdTZGQkFcXHU2RkFDXFx1NkZBQVxcdTZGQ0ZcXHU2RkJGXFx1NkZCOFwiXSxcbiAgICAgIFtcImVhNDBcIiwgXCJcXHU2RkEyXFx1NkZDOVxcdTZGQUJcXHU2RkNEXFx1NkZBRlxcdTZGQjJcXHU2RkIwXFx1NzFDNVxcdTcxQzJcXHU3MUJGXFx1NzFCOFxcdTcxRDZcXHU3MUMwXFx1NzFDMVxcdTcxQ0JcXHU3MUQ0XFx1NzFDQVxcdTcxQzdcXHU3MUNGXFx1NzFCRFxcdTcxRDhcXHU3MUJDXFx1NzFDNlxcdTcxREFcXHU3MURCXFx1NzI5RFxcdTcyOUVcXHU3MzY5XFx1NzM2NlxcdTczNjdcXHU3MzZDXFx1NzM2NVxcdTczNkJcXHU3MzZBXFx1NzQ3RlxcdTc0OUFcXHU3NEEwXFx1NzQ5NFxcdTc0OTJcXHU3NDk1XFx1NzRBMVxcdTc1MEJcXHU3NTgwXFx1NzYyRlxcdTc2MkRcXHU3NjMxXFx1NzYzRFxcdTc2MzNcXHU3NjNDXFx1NzYzNVxcdTc2MzJcXHU3NjMwXFx1NzZCQlxcdTc2RTZcXHU3NzlBXFx1Nzc5RFxcdTc3QTFcXHU3NzlDXFx1Nzc5QlxcdTc3QTJcXHU3N0EzXFx1Nzc5NVxcdTc3OTlcIl0sXG4gICAgICBbXCJlYWExXCIsIFwiXFx1Nzc5N1xcdTc4RERcXHU3OEU5XFx1NzhFNVxcdTc4RUFcXHU3OERFXFx1NzhFM1xcdTc4REJcXHU3OEUxXFx1NzhFMlxcdTc4RURcXHU3OERGXFx1NzhFMFxcdTc5QTRcXHU3QTQ0XFx1N0E0OFxcdTdBNDdcXHU3QUI2XFx1N0FCOFxcdTdBQjVcXHU3QUIxXFx1N0FCN1xcdTdCREVcXHU3QkUzXFx1N0JFN1xcdTdCRERcXHU3QkQ1XFx1N0JFNVxcdTdCREFcXHU3QkU4XFx1N0JGOVxcdTdCRDRcXHU3QkVBXFx1N0JFMlxcdTdCRENcXHU3QkVCXFx1N0JEOFxcdTdCREZcXHU3Q0QyXFx1N0NENFxcdTdDRDdcXHU3Q0QwXFx1N0NEMVxcdTdFMTJcXHU3RTIxXFx1N0UxN1xcdTdFMENcXHU3RTFGXFx1N0UyMFxcdTdFMTNcXHU3RTBFXFx1N0UxQ1xcdTdFMTVcXHU3RTFBXFx1N0UyMlxcdTdFMEJcXHU3RTBGXFx1N0UxNlxcdTdFMERcXHU3RTE0XFx1N0UyNVxcdTdFMjRcXHU3RjQzXFx1N0Y3QlxcdTdGN0NcXHU3RjdBXFx1N0ZCMVxcdTdGRUZcXHU4MDJBXFx1ODAyOVxcdTgwNkNcXHU4MUIxXFx1ODFBNlxcdTgxQUVcXHU4MUI5XFx1ODFCNVxcdTgxQUJcXHU4MUIwXFx1ODFBQ1xcdTgxQjRcXHU4MUIyXFx1ODFCN1xcdTgxQTdcXHU4MUYyXFx1ODI1NVxcdTgyNTZcXHU4MjU3XFx1ODU1NlxcdTg1NDVcXHU4NTZCXFx1ODU0RFxcdTg1NTNcXHU4NTYxXFx1ODU1OFwiXSxcbiAgICAgIFtcImViNDBcIiwgXCJcXHU4NTQwXFx1ODU0NlxcdTg1NjRcXHU4NTQxXFx1ODU2MlxcdTg1NDRcXHU4NTUxXFx1ODU0N1xcdTg1NjNcXHU4NTNFXFx1ODU1QlxcdTg1NzFcXHU4NTRFXFx1ODU2RVxcdTg1NzVcXHU4NTU1XFx1ODU2N1xcdTg1NjBcXHU4NThDXFx1ODU2NlxcdTg1NURcXHU4NTU0XFx1ODU2NVxcdTg1NkNcXHU4NjYzXFx1ODY2NVxcdTg2NjRcXHU4NzlCXFx1ODc4RlxcdTg3OTdcXHU4NzkzXFx1ODc5MlxcdTg3ODhcXHU4NzgxXFx1ODc5NlxcdTg3OThcXHU4Nzc5XFx1ODc4N1xcdTg3QTNcXHU4Nzg1XFx1ODc5MFxcdTg3OTFcXHU4NzlEXFx1ODc4NFxcdTg3OTRcXHU4NzlDXFx1ODc5QVxcdTg3ODlcXHU4OTFFXFx1ODkyNlxcdTg5MzBcXHU4OTJEXFx1ODkyRVxcdTg5MjdcXHU4OTMxXFx1ODkyMlxcdTg5MjlcXHU4OTIzXFx1ODkyRlxcdTg5MkNcXHU4OTFGXFx1ODlGMVxcdThBRTBcIl0sXG4gICAgICBbXCJlYmExXCIsIFwiXFx1OEFFMlxcdThBRjJcXHU4QUY0XFx1OEFGNVxcdThBRERcXHU4QjE0XFx1OEFFNFxcdThBREZcXHU4QUYwXFx1OEFDOFxcdThBREVcXHU4QUUxXFx1OEFFOFxcdThBRkZcXHU4QUVGXFx1OEFGQlxcdThDOTFcXHU4QzkyXFx1OEM5MFxcdThDRjVcXHU4Q0VFXFx1OENGMVxcdThDRjBcXHU4Q0YzXFx1OEQ2Q1xcdThENkVcXHU4REE1XFx1OERBN1xcdThFMzNcXHU4RTNFXFx1OEUzOFxcdThFNDBcXHU4RTQ1XFx1OEUzNlxcdThFM0NcXHU4RTNEXFx1OEU0MVxcdThFMzBcXHU4RTNGXFx1OEVCRFxcdThGMzZcXHU4RjJFXFx1OEYzNVxcdThGMzJcXHU4RjM5XFx1OEYzN1xcdThGMzRcXHU5MDc2XFx1OTA3OVxcdTkwN0JcXHU5MDg2XFx1OTBGQVxcdTkxMzNcXHU5MTM1XFx1OTEzNlxcdTkxOTNcXHU5MTkwXFx1OTE5MVxcdTkxOERcXHU5MThGXFx1OTMyN1xcdTkzMUVcXHU5MzA4XFx1OTMxRlxcdTkzMDZcXHU5MzBGXFx1OTM3QVxcdTkzMzhcXHU5MzNDXFx1OTMxQlxcdTkzMjNcXHU5MzEyXFx1OTMwMVxcdTkzNDZcXHU5MzJEXFx1OTMwRVxcdTkzMERcXHU5MkNCXFx1OTMxRFxcdTkyRkFcXHU5MzI1XFx1OTMxM1xcdTkyRjlcXHU5MkY3XFx1OTMzNFxcdTkzMDJcXHU5MzI0XFx1OTJGRlxcdTkzMjlcXHU5MzM5XFx1OTMzNVxcdTkzMkFcXHU5MzE0XFx1OTMwQ1wiXSxcbiAgICAgIFtcImVjNDBcIiwgXCJcXHU5MzBCXFx1OTJGRVxcdTkzMDlcXHU5MzAwXFx1OTJGQlxcdTkzMTZcXHU5NUJDXFx1OTVDRFxcdTk1QkVcXHU5NUI5XFx1OTVCQVxcdTk1QjZcXHU5NUJGXFx1OTVCNVxcdTk1QkRcXHU5NkE5XFx1OTZENFxcdTk3MEJcXHU5NzEyXFx1OTcxMFxcdTk3OTlcXHU5Nzk3XFx1OTc5NFxcdTk3RjBcXHU5N0Y4XFx1OTgzNVxcdTk4MkZcXHU5ODMyXFx1OTkyNFxcdTk5MUZcXHU5OTI3XFx1OTkyOVxcdTk5OUVcXHU5OUVFXFx1OTlFQ1xcdTk5RTVcXHU5OUU0XFx1OTlGMFxcdTk5RTNcXHU5OUVBXFx1OTlFOVxcdTk5RTdcXHU5QUI5XFx1OUFCRlxcdTlBQjRcXHU5QUJCXFx1OUFGNlxcdTlBRkFcXHU5QUY5XFx1OUFGN1xcdTlCMzNcXHU5QjgwXFx1OUI4NVxcdTlCODdcXHU5QjdDXFx1OUI3RVxcdTlCN0JcXHU5QjgyXFx1OUI5M1xcdTlCOTJcXHU5QjkwXFx1OUI3QVxcdTlCOTVcIl0sXG4gICAgICBbXCJlY2ExXCIsIFwiXFx1OUI3RFxcdTlCODhcXHU5RDI1XFx1OUQxN1xcdTlEMjBcXHU5RDFFXFx1OUQxNFxcdTlEMjlcXHU5RDFEXFx1OUQxOFxcdTlEMjJcXHU5RDEwXFx1OUQxOVxcdTlEMUZcXHU5RTg4XFx1OUU4NlxcdTlFODdcXHU5RUFFXFx1OUVBRFxcdTlFRDVcXHU5RUQ2XFx1OUVGQVxcdTlGMTJcXHU5RjNEXFx1NTEyNlxcdTUxMjVcXHU1MTIyXFx1NTEyNFxcdTUxMjBcXHU1MTI5XFx1NTJGNFxcdTU2OTNcXHU1NjhDXFx1NTY4RFxcdTU2ODZcXHU1Njg0XFx1NTY4M1xcdTU2N0VcXHU1NjgyXFx1NTY3RlxcdTU2ODFcXHU1OEQ2XFx1NThENFxcdTU4Q0ZcXHU1OEQyXFx1NUIyRFxcdTVCMjVcXHU1QjMyXFx1NUIyM1xcdTVCMkNcXHU1QjI3XFx1NUIyNlxcdTVCMkZcXHU1QjJFXFx1NUI3QlxcdTVCRjFcXHU1QkYyXFx1NURCN1xcdTVFNkNcXHU1RTZBXFx1NUZCRVxcdTVGQkJcXHU2MUMzXFx1NjFCNVxcdTYxQkNcXHU2MUU3XFx1NjFFMFxcdTYxRTVcXHU2MUU0XFx1NjFFOFxcdTYxREVcXHU2NEVGXFx1NjRFOVxcdTY0RTNcXHU2NEVCXFx1NjRFNFxcdTY0RThcXHU2NTgxXFx1NjU4MFxcdTY1QjZcXHU2NURBXFx1NjZEMlxcdTZBOERcXHU2QTk2XFx1NkE4MVxcdTZBQTVcXHU2QTg5XFx1NkE5RlxcdTZBOUJcXHU2QUExXFx1NkE5RVxcdTZBODdcXHU2QTkzXFx1NkE4RVwiXSxcbiAgICAgIFtcImVkNDBcIiwgXCJcXHU2QTk1XFx1NkE4M1xcdTZBQThcXHU2QUE0XFx1NkE5MVxcdTZBN0ZcXHU2QUE2XFx1NkE5QVxcdTZBODVcXHU2QThDXFx1NkE5MlxcdTZCNUJcXHU2QkFEXFx1NkMwOVxcdTZGQ0NcXHU2RkE5XFx1NkZGNFxcdTZGRDRcXHU2RkUzXFx1NkZEQ1xcdTZGRURcXHU2RkU3XFx1NkZFNlxcdTZGREVcXHU2RkYyXFx1NkZERFxcdTZGRTJcXHU2RkU4XFx1NzFFMVxcdTcxRjFcXHU3MUU4XFx1NzFGMlxcdTcxRTRcXHU3MUYwXFx1NzFFMlxcdTczNzNcXHU3MzZFXFx1NzM2RlxcdTc0OTdcXHU3NEIyXFx1NzRBQlxcdTc0OTBcXHU3NEFBXFx1NzRBRFxcdTc0QjFcXHU3NEE1XFx1NzRBRlxcdTc1MTBcXHU3NTExXFx1NzUxMlxcdTc1MEZcXHU3NTg0XFx1NzY0M1xcdTc2NDhcXHU3NjQ5XFx1NzY0N1xcdTc2QTRcXHU3NkU5XFx1NzdCNVxcdTc3QUJcXHU3N0IyXFx1NzdCN1xcdTc3QjZcIl0sXG4gICAgICBbXCJlZGExXCIsIFwiXFx1NzdCNFxcdTc3QjFcXHU3N0E4XFx1NzdGMFxcdTc4RjNcXHU3OEZEXFx1NzkwMlxcdTc4RkJcXHU3OEZDXFx1NzhGMlxcdTc5MDVcXHU3OEY5XFx1NzhGRVxcdTc5MDRcXHU3OUFCXFx1NzlBOFxcdTdBNUNcXHU3QTVCXFx1N0E1NlxcdTdBNThcXHU3QTU0XFx1N0E1QVxcdTdBQkVcXHU3QUMwXFx1N0FDMVxcdTdDMDVcXHU3QzBGXFx1N0JGMlxcdTdDMDBcXHU3QkZGXFx1N0JGQlxcdTdDMEVcXHU3QkY0XFx1N0MwQlxcdTdCRjNcXHU3QzAyXFx1N0MwOVxcdTdDMDNcXHU3QzAxXFx1N0JGOFxcdTdCRkRcXHU3QzA2XFx1N0JGMFxcdTdCRjFcXHU3QzEwXFx1N0MwQVxcdTdDRThcXHU3RTJEXFx1N0UzQ1xcdTdFNDJcXHU3RTMzXFx1OTg0OFxcdTdFMzhcXHU3RTJBXFx1N0U0OVxcdTdFNDBcXHU3RTQ3XFx1N0UyOVxcdTdFNENcXHU3RTMwXFx1N0UzQlxcdTdFMzZcXHU3RTQ0XFx1N0UzQVxcdTdGNDVcXHU3RjdGXFx1N0Y3RVxcdTdGN0RcXHU3RkY0XFx1N0ZGMlxcdTgwMkNcXHU4MUJCXFx1ODFDNFxcdTgxQ0NcXHU4MUNBXFx1ODFDNVxcdTgxQzdcXHU4MUJDXFx1ODFFOVxcdTgyNUJcXHU4MjVBXFx1ODI1Q1xcdTg1ODNcXHU4NTgwXFx1ODU4RlxcdTg1QTdcXHU4NTk1XFx1ODVBMFxcdTg1OEJcXHU4NUEzXFx1ODU3QlxcdTg1QTRcXHU4NTlBXFx1ODU5RVwiXSxcbiAgICAgIFtcImVlNDBcIiwgXCJcXHU4NTc3XFx1ODU3Q1xcdTg1ODlcXHU4NUExXFx1ODU3QVxcdTg1NzhcXHU4NTU3XFx1ODU4RVxcdTg1OTZcXHU4NTg2XFx1ODU4RFxcdTg1OTlcXHU4NTlEXFx1ODU4MVxcdTg1QTJcXHU4NTgyXFx1ODU4OFxcdTg1ODVcXHU4NTc5XFx1ODU3NlxcdTg1OThcXHU4NTkwXFx1ODU5RlxcdTg2NjhcXHU4N0JFXFx1ODdBQVxcdTg3QURcXHU4N0M1XFx1ODdCMFxcdTg3QUNcXHU4N0I5XFx1ODdCNVxcdTg3QkNcXHU4N0FFXFx1ODdDOVxcdTg3QzNcXHU4N0MyXFx1ODdDQ1xcdTg3QjdcXHU4N0FGXFx1ODdDNFxcdTg3Q0FcXHU4N0I0XFx1ODdCNlxcdTg3QkZcXHU4N0I4XFx1ODdCRFxcdTg3REVcXHU4N0IyXFx1ODkzNVxcdTg5MzNcXHU4OTNDXFx1ODkzRVxcdTg5NDFcXHU4OTUyXFx1ODkzN1xcdTg5NDJcXHU4OUFEXFx1ODlBRlxcdTg5QUVcXHU4OUYyXFx1ODlGM1xcdThCMUVcIl0sXG4gICAgICBbXCJlZWExXCIsIFwiXFx1OEIxOFxcdThCMTZcXHU4QjExXFx1OEIwNVxcdThCMEJcXHU4QjIyXFx1OEIwRlxcdThCMTJcXHU4QjE1XFx1OEIwN1xcdThCMERcXHU4QjA4XFx1OEIwNlxcdThCMUNcXHU4QjEzXFx1OEIxQVxcdThDNEZcXHU4QzcwXFx1OEM3MlxcdThDNzFcXHU4QzZGXFx1OEM5NVxcdThDOTRcXHU4Q0Y5XFx1OEQ2RlxcdThFNEVcXHU4RTREXFx1OEU1M1xcdThFNTBcXHU4RTRDXFx1OEU0N1xcdThGNDNcXHU4RjQwXFx1OTA4NVxcdTkwN0VcXHU5MTM4XFx1OTE5QVxcdTkxQTJcXHU5MTlCXFx1OTE5OVxcdTkxOUZcXHU5MUExXFx1OTE5RFxcdTkxQTBcXHU5M0ExXFx1OTM4M1xcdTkzQUZcXHU5MzY0XFx1OTM1NlxcdTkzNDdcXHU5MzdDXFx1OTM1OFxcdTkzNUNcXHU5Mzc2XFx1OTM0OVxcdTkzNTBcXHU5MzUxXFx1OTM2MFxcdTkzNkRcXHU5MzhGXFx1OTM0Q1xcdTkzNkFcXHU5Mzc5XFx1OTM1N1xcdTkzNTVcXHU5MzUyXFx1OTM0RlxcdTkzNzFcXHU5Mzc3XFx1OTM3QlxcdTkzNjFcXHU5MzVFXFx1OTM2M1xcdTkzNjdcXHU5MzgwXFx1OTM0RVxcdTkzNTlcXHU5NUM3XFx1OTVDMFxcdTk1QzlcXHU5NUMzXFx1OTVDNVxcdTk1QjdcXHU5NkFFXFx1OTZCMFxcdTk2QUNcXHU5NzIwXFx1OTcxRlxcdTk3MThcXHU5NzFEXFx1OTcxOVxcdTk3OUFcXHU5N0ExXFx1OTc5Q1wiXSxcbiAgICAgIFtcImVmNDBcIiwgXCJcXHU5NzlFXFx1OTc5RFxcdTk3RDVcXHU5N0Q0XFx1OTdGMVxcdTk4NDFcXHU5ODQ0XFx1OTg0QVxcdTk4NDlcXHU5ODQ1XFx1OTg0M1xcdTk5MjVcXHU5OTJCXFx1OTkyQ1xcdTk5MkFcXHU5OTMzXFx1OTkzMlxcdTk5MkZcXHU5OTJEXFx1OTkzMVxcdTk5MzBcXHU5OTk4XFx1OTlBM1xcdTk5QTFcXHU5QTAyXFx1OTlGQVxcdTk5RjRcXHU5OUY3XFx1OTlGOVxcdTk5RjhcXHU5OUY2XFx1OTlGQlxcdTk5RkRcXHU5OUZFXFx1OTlGQ1xcdTlBMDNcXHU5QUJFXFx1OUFGRVxcdTlBRkRcXHU5QjAxXFx1OUFGQ1xcdTlCNDhcXHU5QjlBXFx1OUJBOFxcdTlCOUVcXHU5QjlCXFx1OUJBNlxcdTlCQTFcXHU5QkE1XFx1OUJBNFxcdTlCODZcXHU5QkEyXFx1OUJBMFxcdTlCQUZcXHU5RDMzXFx1OUQ0MVxcdTlENjdcXHU5RDM2XFx1OUQyRVxcdTlEMkZcXHU5RDMxXFx1OUQzOFxcdTlEMzBcIl0sXG4gICAgICBbXCJlZmExXCIsIFwiXFx1OUQ0NVxcdTlENDJcXHU5RDQzXFx1OUQzRVxcdTlEMzdcXHU5RDQwXFx1OUQzRFxcdTdGRjVcXHU5RDJEXFx1OUU4QVxcdTlFODlcXHU5RThEXFx1OUVCMFxcdTlFQzhcXHU5RURBXFx1OUVGQlxcdTlFRkZcXHU5RjI0XFx1OUYyM1xcdTlGMjJcXHU5RjU0XFx1OUZBMFxcdTUxMzFcXHU1MTJEXFx1NTEyRVxcdTU2OThcXHU1NjlDXFx1NTY5N1xcdTU2OUFcXHU1NjlEXFx1NTY5OVxcdTU5NzBcXHU1QjNDXFx1NUM2OVxcdTVDNkFcXHU1REMwXFx1NUU2RFxcdTVFNkVcXHU2MUQ4XFx1NjFERlxcdTYxRURcXHU2MUVFXFx1NjFGMVxcdTYxRUFcXHU2MUYwXFx1NjFFQlxcdTYxRDZcXHU2MUU5XFx1NjRGRlxcdTY1MDRcXHU2NEZEXFx1NjRGOFxcdTY1MDFcXHU2NTAzXFx1NjRGQ1xcdTY1OTRcXHU2NURCXFx1NjZEQVxcdTY2REJcXHU2NkQ4XFx1NkFDNVxcdTZBQjlcXHU2QUJEXFx1NkFFMVxcdTZBQzZcXHU2QUJBXFx1NkFCNlxcdTZBQjdcXHU2QUM3XFx1NkFCNFxcdTZBQURcXHU2QjVFXFx1NkJDOVxcdTZDMEJcXHU3MDA3XFx1NzAwQ1xcdTcwMERcXHU3MDAxXFx1NzAwNVxcdTcwMTRcXHU3MDBFXFx1NkZGRlxcdTcwMDBcXHU2RkZCXFx1NzAyNlxcdTZGRkNcXHU2RkY3XFx1NzAwQVxcdTcyMDFcXHU3MUZGXFx1NzFGOVxcdTcyMDNcXHU3MUZEXFx1NzM3NlwiXSxcbiAgICAgIFtcImYwNDBcIiwgXCJcXHU3NEI4XFx1NzRDMFxcdTc0QjVcXHU3NEMxXFx1NzRCRVxcdTc0QjZcXHU3NEJCXFx1NzRDMlxcdTc1MTRcXHU3NTEzXFx1NzY1Q1xcdTc2NjRcXHU3NjU5XFx1NzY1MFxcdTc2NTNcXHU3NjU3XFx1NzY1QVxcdTc2QTZcXHU3NkJEXFx1NzZFQ1xcdTc3QzJcXHU3N0JBXFx1NzhGRlxcdTc5MENcXHU3OTEzXFx1NzkxNFxcdTc5MDlcXHU3OTEwXFx1NzkxMlxcdTc5MTFcXHU3OUFEXFx1NzlBQ1xcdTdBNUZcXHU3QzFDXFx1N0MyOVxcdTdDMTlcXHU3QzIwXFx1N0MxRlxcdTdDMkRcXHU3QzFEXFx1N0MyNlxcdTdDMjhcXHU3QzIyXFx1N0MyNVxcdTdDMzBcXHU3RTVDXFx1N0U1MFxcdTdFNTZcXHU3RTYzXFx1N0U1OFxcdTdFNjJcXHU3RTVGXFx1N0U1MVxcdTdFNjBcXHU3RTU3XFx1N0U1M1xcdTdGQjVcXHU3RkIzXFx1N0ZGN1xcdTdGRjhcXHU4MDc1XFx1ODFEMVxcdTgxRDJcIl0sXG4gICAgICBbXCJmMGExXCIsIFwiXFx1ODFEMFxcdTgyNUZcXHU4MjVFXFx1ODVCNFxcdTg1QzZcXHU4NUMwXFx1ODVDM1xcdTg1QzJcXHU4NUIzXFx1ODVCNVxcdTg1QkRcXHU4NUM3XFx1ODVDNFxcdTg1QkZcXHU4NUNCXFx1ODVDRVxcdTg1QzhcXHU4NUM1XFx1ODVCMVxcdTg1QjZcXHU4NUQyXFx1ODYyNFxcdTg1QjhcXHU4NUI3XFx1ODVCRVxcdTg2NjlcXHU4N0U3XFx1ODdFNlxcdTg3RTJcXHU4N0RCXFx1ODdFQlxcdTg3RUFcXHU4N0U1XFx1ODdERlxcdTg3RjNcXHU4N0U0XFx1ODdENFxcdTg3RENcXHU4N0QzXFx1ODdFRFxcdTg3RDhcXHU4N0UzXFx1ODdBNFxcdTg3RDdcXHU4N0Q5XFx1ODgwMVxcdTg3RjRcXHU4N0U4XFx1ODdERFxcdTg5NTNcXHU4OTRCXFx1ODk0RlxcdTg5NENcXHU4OTQ2XFx1ODk1MFxcdTg5NTFcXHU4OTQ5XFx1OEIyQVxcdThCMjdcXHU4QjIzXFx1OEIzM1xcdThCMzBcXHU4QjM1XFx1OEI0N1xcdThCMkZcXHU4QjNDXFx1OEIzRVxcdThCMzFcXHU4QjI1XFx1OEIzN1xcdThCMjZcXHU4QjM2XFx1OEIyRVxcdThCMjRcXHU4QjNCXFx1OEIzRFxcdThCM0FcXHU4QzQyXFx1OEM3NVxcdThDOTlcXHU4Qzk4XFx1OEM5N1xcdThDRkVcXHU4RDA0XFx1OEQwMlxcdThEMDBcXHU4RTVDXFx1OEU2MlxcdThFNjBcXHU4RTU3XFx1OEU1NlxcdThFNUVcXHU4RTY1XFx1OEU2N1wiXSxcbiAgICAgIFtcImYxNDBcIiwgXCJcXHU4RTVCXFx1OEU1QVxcdThFNjFcXHU4RTVEXFx1OEU2OVxcdThFNTRcXHU4RjQ2XFx1OEY0N1xcdThGNDhcXHU4RjRCXFx1OTEyOFxcdTkxM0FcXHU5MTNCXFx1OTEzRVxcdTkxQThcXHU5MUE1XFx1OTFBN1xcdTkxQUZcXHU5MUFBXFx1OTNCNVxcdTkzOENcXHU5MzkyXFx1OTNCN1xcdTkzOUJcXHU5MzlEXFx1OTM4OVxcdTkzQTdcXHU5MzhFXFx1OTNBQVxcdTkzOUVcXHU5M0E2XFx1OTM5NVxcdTkzODhcXHU5Mzk5XFx1OTM5RlxcdTkzOERcXHU5M0IxXFx1OTM5MVxcdTkzQjJcXHU5M0E0XFx1OTNBOFxcdTkzQjRcXHU5M0EzXFx1OTNBNVxcdTk1RDJcXHU5NUQzXFx1OTVEMVxcdTk2QjNcXHU5NkQ3XFx1OTZEQVxcdTVEQzJcXHU5NkRGXFx1OTZEOFxcdTk2RERcXHU5NzIzXFx1OTcyMlxcdTk3MjVcXHU5N0FDXFx1OTdBRVxcdTk3QThcXHU5N0FCXFx1OTdBNFxcdTk3QUFcIl0sXG4gICAgICBbXCJmMWExXCIsIFwiXFx1OTdBMlxcdTk3QTVcXHU5N0Q3XFx1OTdEOVxcdTk3RDZcXHU5N0Q4XFx1OTdGQVxcdTk4NTBcXHU5ODUxXFx1OTg1MlxcdTk4QjhcXHU5OTQxXFx1OTkzQ1xcdTk5M0FcXHU5QTBGXFx1OUEwQlxcdTlBMDlcXHU5QTBEXFx1OUEwNFxcdTlBMTFcXHU5QTBBXFx1OUEwNVxcdTlBMDdcXHU5QTA2XFx1OUFDMFxcdTlBRENcXHU5QjA4XFx1OUIwNFxcdTlCMDVcXHU5QjI5XFx1OUIzNVxcdTlCNEFcXHU5QjRDXFx1OUI0QlxcdTlCQzdcXHU5QkM2XFx1OUJDM1xcdTlCQkZcXHU5QkMxXFx1OUJCNVxcdTlCQjhcXHU5QkQzXFx1OUJCNlxcdTlCQzRcXHU5QkI5XFx1OUJCRFxcdTlENUNcXHU5RDUzXFx1OUQ0RlxcdTlENEFcXHU5RDVCXFx1OUQ0QlxcdTlENTlcXHU5RDU2XFx1OUQ0Q1xcdTlENTdcXHU5RDUyXFx1OUQ1NFxcdTlENUZcXHU5RDU4XFx1OUQ1QVxcdTlFOEVcXHU5RThDXFx1OUVERlxcdTlGMDFcXHU5RjAwXFx1OUYxNlxcdTlGMjVcXHU5RjJCXFx1OUYyQVxcdTlGMjlcXHU5RjI4XFx1OUY0Q1xcdTlGNTVcXHU1MTM0XFx1NTEzNVxcdTUyOTZcXHU1MkY3XFx1NTNCNFxcdTU2QUJcXHU1NkFEXFx1NTZBNlxcdTU2QTdcXHU1NkFBXFx1NTZBQ1xcdTU4REFcXHU1OEREXFx1NThEQlxcdTU5MTJcXHU1QjNEXFx1NUIzRVxcdTVCM0ZcXHU1REMzXFx1NUU3MFwiXSxcbiAgICAgIFtcImYyNDBcIiwgXCJcXHU1RkJGXFx1NjFGQlxcdTY1MDdcXHU2NTEwXFx1NjUwRFxcdTY1MDlcXHU2NTBDXFx1NjUwRVxcdTY1ODRcXHU2NURFXFx1NjVERFxcdTY2REVcXHU2QUU3XFx1NkFFMFxcdTZBQ0NcXHU2QUQxXFx1NkFEOVxcdTZBQ0JcXHU2QURGXFx1NkFEQ1xcdTZBRDBcXHU2QUVCXFx1NkFDRlxcdTZBQ0RcXHU2QURFXFx1NkI2MFxcdTZCQjBcXHU2QzBDXFx1NzAxOVxcdTcwMjdcXHU3MDIwXFx1NzAxNlxcdTcwMkJcXHU3MDIxXFx1NzAyMlxcdTcwMjNcXHU3MDI5XFx1NzAxN1xcdTcwMjRcXHU3MDFDXFx1NzAyQVxcdTcyMENcXHU3MjBBXFx1NzIwN1xcdTcyMDJcXHU3MjA1XFx1NzJBNVxcdTcyQTZcXHU3MkE0XFx1NzJBM1xcdTcyQTFcXHU3NENCXFx1NzRDNVxcdTc0QjdcXHU3NEMzXFx1NzUxNlxcdTc2NjBcXHU3N0M5XFx1NzdDQVxcdTc3QzRcXHU3N0YxXFx1NzkxRFxcdTc5MUJcIl0sXG4gICAgICBbXCJmMmExXCIsIFwiXFx1NzkyMVxcdTc5MUNcXHU3OTE3XFx1NzkxRVxcdTc5QjBcXHU3QTY3XFx1N0E2OFxcdTdDMzNcXHU3QzNDXFx1N0MzOVxcdTdDMkNcXHU3QzNCXFx1N0NFQ1xcdTdDRUFcXHU3RTc2XFx1N0U3NVxcdTdFNzhcXHU3RTcwXFx1N0U3N1xcdTdFNkZcXHU3RTdBXFx1N0U3MlxcdTdFNzRcXHU3RTY4XFx1N0Y0QlxcdTdGNEFcXHU3RjgzXFx1N0Y4NlxcdTdGQjdcXHU3RkZEXFx1N0ZGRVxcdTgwNzhcXHU4MUQ3XFx1ODFENVxcdTgyNjRcXHU4MjYxXFx1ODI2M1xcdTg1RUJcXHU4NUYxXFx1ODVFRFxcdTg1RDlcXHU4NUUxXFx1ODVFOFxcdTg1REFcXHU4NUQ3XFx1ODVFQ1xcdTg1RjJcXHU4NUY4XFx1ODVEOFxcdTg1REZcXHU4NUUzXFx1ODVEQ1xcdTg1RDFcXHU4NUYwXFx1ODVFNlxcdTg1RUZcXHU4NURFXFx1ODVFMlxcdTg4MDBcXHU4N0ZBXFx1ODgwM1xcdTg3RjZcXHU4N0Y3XFx1ODgwOVxcdTg4MENcXHU4ODBCXFx1ODgwNlxcdTg3RkNcXHU4ODA4XFx1ODdGRlxcdTg4MEFcXHU4ODAyXFx1ODk2MlxcdTg5NUFcXHU4OTVCXFx1ODk1N1xcdTg5NjFcXHU4OTVDXFx1ODk1OFxcdTg5NURcXHU4OTU5XFx1ODk4OFxcdTg5QjdcXHU4OUI2XFx1ODlGNlxcdThCNTBcXHU4QjQ4XFx1OEI0QVxcdThCNDBcXHU4QjUzXFx1OEI1NlxcdThCNTRcXHU4QjRCXFx1OEI1NVwiXSxcbiAgICAgIFtcImYzNDBcIiwgXCJcXHU4QjUxXFx1OEI0MlxcdThCNTJcXHU4QjU3XFx1OEM0M1xcdThDNzdcXHU4Qzc2XFx1OEM5QVxcdThEMDZcXHU4RDA3XFx1OEQwOVxcdThEQUNcXHU4REFBXFx1OERBRFxcdThEQUJcXHU4RTZEXFx1OEU3OFxcdThFNzNcXHU4RTZBXFx1OEU2RlxcdThFN0JcXHU4RUMyXFx1OEY1MlxcdThGNTFcXHU4RjRGXFx1OEY1MFxcdThGNTNcXHU4RkI0XFx1OTE0MFxcdTkxM0ZcXHU5MUIwXFx1OTFBRFxcdTkzREVcXHU5M0M3XFx1OTNDRlxcdTkzQzJcXHU5M0RBXFx1OTNEMFxcdTkzRjlcXHU5M0VDXFx1OTNDQ1xcdTkzRDlcXHU5M0E5XFx1OTNFNlxcdTkzQ0FcXHU5M0Q0XFx1OTNFRVxcdTkzRTNcXHU5M0Q1XFx1OTNDNFxcdTkzQ0VcXHU5M0MwXFx1OTNEMlxcdTkzRTdcXHU5NTdEXFx1OTVEQVxcdTk1REJcXHU5NkUxXFx1OTcyOVxcdTk3MkJcXHU5NzJDXFx1OTcyOFxcdTk3MjZcIl0sXG4gICAgICBbXCJmM2ExXCIsIFwiXFx1OTdCM1xcdTk3QjdcXHU5N0I2XFx1OTdERFxcdTk3REVcXHU5N0RGXFx1OTg1Q1xcdTk4NTlcXHU5ODVEXFx1OTg1N1xcdTk4QkZcXHU5OEJEXFx1OThCQlxcdTk4QkVcXHU5OTQ4XFx1OTk0N1xcdTk5NDNcXHU5OUE2XFx1OTlBN1xcdTlBMUFcXHU5QTE1XFx1OUEyNVxcdTlBMURcXHU5QTI0XFx1OUExQlxcdTlBMjJcXHU5QTIwXFx1OUEyN1xcdTlBMjNcXHU5QTFFXFx1OUExQ1xcdTlBMTRcXHU5QUMyXFx1OUIwQlxcdTlCMEFcXHU5QjBFXFx1OUIwQ1xcdTlCMzdcXHU5QkVBXFx1OUJFQlxcdTlCRTBcXHU5QkRFXFx1OUJFNFxcdTlCRTZcXHU5QkUyXFx1OUJGMFxcdTlCRDRcXHU5QkQ3XFx1OUJFQ1xcdTlCRENcXHU5QkQ5XFx1OUJFNVxcdTlCRDVcXHU5QkUxXFx1OUJEQVxcdTlENzdcXHU5RDgxXFx1OUQ4QVxcdTlEODRcXHU5RDg4XFx1OUQ3MVxcdTlEODBcXHU5RDc4XFx1OUQ4NlxcdTlEOEJcXHU5RDhDXFx1OUQ3RFxcdTlENkJcXHU5RDc0XFx1OUQ3NVxcdTlENzBcXHU5RDY5XFx1OUQ4NVxcdTlENzNcXHU5RDdCXFx1OUQ4MlxcdTlENkZcXHU5RDc5XFx1OUQ3RlxcdTlEODdcXHU5RDY4XFx1OUU5NFxcdTlFOTFcXHU5RUMwXFx1OUVGQ1xcdTlGMkRcXHU5RjQwXFx1OUY0MVxcdTlGNERcXHU5RjU2XFx1OUY1N1xcdTlGNThcXHU1MzM3XFx1NTZCMlwiXSxcbiAgICAgIFtcImY0NDBcIiwgXCJcXHU1NkI1XFx1NTZCM1xcdTU4RTNcXHU1QjQ1XFx1NURDNlxcdTVEQzdcXHU1RUVFXFx1NUVFRlxcdTVGQzBcXHU1RkMxXFx1NjFGOVxcdTY1MTdcXHU2NTE2XFx1NjUxNVxcdTY1MTNcXHU2NURGXFx1NjZFOFxcdTY2RTNcXHU2NkU0XFx1NkFGM1xcdTZBRjBcXHU2QUVBXFx1NkFFOFxcdTZBRjlcXHU2QUYxXFx1NkFFRVxcdTZBRUZcXHU3MDNDXFx1NzAzNVxcdTcwMkZcXHU3MDM3XFx1NzAzNFxcdTcwMzFcXHU3MDQyXFx1NzAzOFxcdTcwM0ZcXHU3MDNBXFx1NzAzOVxcdTcwNDBcXHU3MDNCXFx1NzAzM1xcdTcwNDFcXHU3MjEzXFx1NzIxNFxcdTcyQThcXHU3MzdEXFx1NzM3Q1xcdTc0QkFcXHU3NkFCXFx1NzZBQVxcdTc2QkVcXHU3NkVEXFx1NzdDQ1xcdTc3Q0VcXHU3N0NGXFx1NzdDRFxcdTc3RjJcXHU3OTI1XFx1NzkyM1xcdTc5MjdcXHU3OTI4XFx1NzkyNFxcdTc5MjlcIl0sXG4gICAgICBbXCJmNGExXCIsIFwiXFx1NzlCMlxcdTdBNkVcXHU3QTZDXFx1N0E2RFxcdTdBRjdcXHU3QzQ5XFx1N0M0OFxcdTdDNEFcXHU3QzQ3XFx1N0M0NVxcdTdDRUVcXHU3RTdCXFx1N0U3RVxcdTdFODFcXHU3RTgwXFx1N0ZCQVxcdTdGRkZcXHU4MDc5XFx1ODFEQlxcdTgxRDlcXHU4MjBCXFx1ODI2OFxcdTgyNjlcXHU4NjIyXFx1ODVGRlxcdTg2MDFcXHU4NUZFXFx1ODYxQlxcdTg2MDBcXHU4NUY2XFx1ODYwNFxcdTg2MDlcXHU4NjA1XFx1ODYwQ1xcdTg1RkRcXHU4ODE5XFx1ODgxMFxcdTg4MTFcXHU4ODE3XFx1ODgxM1xcdTg4MTZcXHU4OTYzXFx1ODk2NlxcdTg5QjlcXHU4OUY3XFx1OEI2MFxcdThCNkFcXHU4QjVEXFx1OEI2OFxcdThCNjNcXHU4QjY1XFx1OEI2N1xcdThCNkRcXHU4REFFXFx1OEU4NlxcdThFODhcXHU4RTg0XFx1OEY1OVxcdThGNTZcXHU4RjU3XFx1OEY1NVxcdThGNThcXHU4RjVBXFx1OTA4RFxcdTkxNDNcXHU5MTQxXFx1OTFCN1xcdTkxQjVcXHU5MUIyXFx1OTFCM1xcdTk0MEJcXHU5NDEzXFx1OTNGQlxcdTk0MjBcXHU5NDBGXFx1OTQxNFxcdTkzRkVcXHU5NDE1XFx1OTQxMFxcdTk0MjhcXHU5NDE5XFx1OTQwRFxcdTkzRjVcXHU5NDAwXFx1OTNGN1xcdTk0MDdcXHU5NDBFXFx1OTQxNlxcdTk0MTJcXHU5M0ZBXFx1OTQwOVxcdTkzRjhcXHU5NDBBXFx1OTNGRlwiXSxcbiAgICAgIFtcImY1NDBcIiwgXCJcXHU5M0ZDXFx1OTQwQ1xcdTkzRjZcXHU5NDExXFx1OTQwNlxcdTk1REVcXHU5NUUwXFx1OTVERlxcdTk3MkVcXHU5NzJGXFx1OTdCOVxcdTk3QkJcXHU5N0ZEXFx1OTdGRVxcdTk4NjBcXHU5ODYyXFx1OTg2M1xcdTk4NUZcXHU5OEMxXFx1OThDMlxcdTk5NTBcXHU5OTRFXFx1OTk1OVxcdTk5NENcXHU5OTRCXFx1OTk1M1xcdTlBMzJcXHU5QTM0XFx1OUEzMVxcdTlBMkNcXHU5QTJBXFx1OUEzNlxcdTlBMjlcXHU5QTJFXFx1OUEzOFxcdTlBMkRcXHU5QUM3XFx1OUFDQVxcdTlBQzZcXHU5QjEwXFx1OUIxMlxcdTlCMTFcXHU5QzBCXFx1OUMwOFxcdTlCRjdcXHU5QzA1XFx1OUMxMlxcdTlCRjhcXHU5QzQwXFx1OUMwN1xcdTlDMEVcXHU5QzA2XFx1OUMxN1xcdTlDMTRcXHU5QzA5XFx1OUQ5RlxcdTlEOTlcXHU5REE0XFx1OUQ5RFxcdTlEOTJcXHU5RDk4XFx1OUQ5MFxcdTlEOUJcIl0sXG4gICAgICBbXCJmNWExXCIsIFwiXFx1OURBMFxcdTlEOTRcXHU5RDlDXFx1OURBQVxcdTlEOTdcXHU5REExXFx1OUQ5QVxcdTlEQTJcXHU5REE4XFx1OUQ5RVxcdTlEQTNcXHU5REJGXFx1OURBOVxcdTlEOTZcXHU5REE2XFx1OURBN1xcdTlFOTlcXHU5RTlCXFx1OUU5QVxcdTlFRTVcXHU5RUU0XFx1OUVFN1xcdTlFRTZcXHU5RjMwXFx1OUYyRVxcdTlGNUJcXHU5RjYwXFx1OUY1RVxcdTlGNURcXHU5RjU5XFx1OUY5MVxcdTUxM0FcXHU1MTM5XFx1NTI5OFxcdTUyOTdcXHU1NkMzXFx1NTZCRFxcdTU2QkVcXHU1QjQ4XFx1NUI0N1xcdTVEQ0JcXHU1RENGXFx1NUVGMVxcdTYxRkRcXHU2NTFCXFx1NkIwMlxcdTZBRkNcXHU2QjAzXFx1NkFGOFxcdTZCMDBcXHU3MDQzXFx1NzA0NFxcdTcwNEFcXHU3MDQ4XFx1NzA0OVxcdTcwNDVcXHU3MDQ2XFx1NzIxRFxcdTcyMUFcXHU3MjE5XFx1NzM3RVxcdTc1MTdcXHU3NjZBXFx1NzdEMFxcdTc5MkRcXHU3OTMxXFx1NzkyRlxcdTdDNTRcXHU3QzUzXFx1N0NGMlxcdTdFOEFcXHU3RTg3XFx1N0U4OFxcdTdFOEJcXHU3RTg2XFx1N0U4RFxcdTdGNERcXHU3RkJCXFx1ODAzMFxcdTgxRERcXHU4NjE4XFx1ODYyQVxcdTg2MjZcXHU4NjFGXFx1ODYyM1xcdTg2MUNcXHU4NjE5XFx1ODYyN1xcdTg2MkVcXHU4NjIxXFx1ODYyMFxcdTg2MjlcXHU4NjFFXFx1ODYyNVwiXSxcbiAgICAgIFtcImY2NDBcIiwgXCJcXHU4ODI5XFx1ODgxRFxcdTg4MUJcXHU4ODIwXFx1ODgyNFxcdTg4MUNcXHU4ODJCXFx1ODg0QVxcdTg5NkRcXHU4OTY5XFx1ODk2RVxcdTg5NkJcXHU4OUZBXFx1OEI3OVxcdThCNzhcXHU4QjQ1XFx1OEI3QVxcdThCN0JcXHU4RDEwXFx1OEQxNFxcdThEQUZcXHU4RThFXFx1OEU4Q1xcdThGNUVcXHU4RjVCXFx1OEY1RFxcdTkxNDZcXHU5MTQ0XFx1OTE0NVxcdTkxQjlcXHU5NDNGXFx1OTQzQlxcdTk0MzZcXHU5NDI5XFx1OTQzRFxcdTk0M0NcXHU5NDMwXFx1OTQzOVxcdTk0MkFcXHU5NDM3XFx1OTQyQ1xcdTk0NDBcXHU5NDMxXFx1OTVFNVxcdTk1RTRcXHU5NUUzXFx1OTczNVxcdTk3M0FcXHU5N0JGXFx1OTdFMVxcdTk4NjRcXHU5OEM5XFx1OThDNlxcdTk4QzBcXHU5OTU4XFx1OTk1NlxcdTlBMzlcXHU5QTNEXFx1OUE0NlxcdTlBNDRcXHU5QTQyXFx1OUE0MVxcdTlBM0FcIl0sXG4gICAgICBbXCJmNmExXCIsIFwiXFx1OUEzRlxcdTlBQ0RcXHU5QjE1XFx1OUIxN1xcdTlCMThcXHU5QjE2XFx1OUIzQVxcdTlCNTJcXHU5QzJCXFx1OUMxRFxcdTlDMUNcXHU5QzJDXFx1OUMyM1xcdTlDMjhcXHU5QzI5XFx1OUMyNFxcdTlDMjFcXHU5REI3XFx1OURCNlxcdTlEQkNcXHU5REMxXFx1OURDN1xcdTlEQ0FcXHU5RENGXFx1OURCRVxcdTlEQzVcXHU5REMzXFx1OURCQlxcdTlEQjVcXHU5RENFXFx1OURCOVxcdTlEQkFcXHU5REFDXFx1OURDOFxcdTlEQjFcXHU5REFEXFx1OURDQ1xcdTlEQjNcXHU5RENEXFx1OURCMlxcdTlFN0FcXHU5RTlDXFx1OUVFQlxcdTlFRUVcXHU5RUVEXFx1OUYxQlxcdTlGMThcXHU5RjFBXFx1OUYzMVxcdTlGNEVcXHU5RjY1XFx1OUY2NFxcdTlGOTJcXHU0RUI5XFx1NTZDNlxcdTU2QzVcXHU1NkNCXFx1NTk3MVxcdTVCNEJcXHU1QjRDXFx1NURENVxcdTVERDFcXHU1RUYyXFx1NjUyMVxcdTY1MjBcXHU2NTI2XFx1NjUyMlxcdTZCMEJcXHU2QjA4XFx1NkIwOVxcdTZDMERcXHU3MDU1XFx1NzA1NlxcdTcwNTdcXHU3MDUyXFx1NzIxRVxcdTcyMUZcXHU3MkE5XFx1NzM3RlxcdTc0RDhcXHU3NEQ1XFx1NzREOVxcdTc0RDdcXHU3NjZEXFx1NzZBRFxcdTc5MzVcXHU3OUI0XFx1N0E3MFxcdTdBNzFcXHU3QzU3XFx1N0M1Q1xcdTdDNTlcXHU3QzVCXFx1N0M1QVwiXSxcbiAgICAgIFtcImY3NDBcIiwgXCJcXHU3Q0Y0XFx1N0NGMVxcdTdFOTFcXHU3RjRGXFx1N0Y4N1xcdTgxREVcXHU4MjZCXFx1ODYzNFxcdTg2MzVcXHU4NjMzXFx1ODYyQ1xcdTg2MzJcXHU4NjM2XFx1ODgyQ1xcdTg4MjhcXHU4ODI2XFx1ODgyQVxcdTg4MjVcXHU4OTcxXFx1ODlCRlxcdTg5QkVcXHU4OUZCXFx1OEI3RVxcdThCODRcXHU4QjgyXFx1OEI4NlxcdThCODVcXHU4QjdGXFx1OEQxNVxcdThFOTVcXHU4RTk0XFx1OEU5QVxcdThFOTJcXHU4RTkwXFx1OEU5NlxcdThFOTdcXHU4RjYwXFx1OEY2MlxcdTkxNDdcXHU5NDRDXFx1OTQ1MFxcdTk0NEFcXHU5NDRCXFx1OTQ0RlxcdTk0NDdcXHU5NDQ1XFx1OTQ0OFxcdTk0NDlcXHU5NDQ2XFx1OTczRlxcdTk3RTNcXHU5ODZBXFx1OTg2OVxcdTk4Q0JcXHU5OTU0XFx1OTk1QlxcdTlBNEVcXHU5QTUzXFx1OUE1NFxcdTlBNENcXHU5QTRGXFx1OUE0OFxcdTlBNEFcIl0sXG4gICAgICBbXCJmN2ExXCIsIFwiXFx1OUE0OVxcdTlBNTJcXHU5QTUwXFx1OUFEMFxcdTlCMTlcXHU5QjJCXFx1OUIzQlxcdTlCNTZcXHU5QjU1XFx1OUM0NlxcdTlDNDhcXHU5QzNGXFx1OUM0NFxcdTlDMzlcXHU5QzMzXFx1OUM0MVxcdTlDM0NcXHU5QzM3XFx1OUMzNFxcdTlDMzJcXHU5QzNEXFx1OUMzNlxcdTlEREJcXHU5REQyXFx1OURERVxcdTlEREFcXHU5RENCXFx1OUREMFxcdTlERENcXHU5REQxXFx1OURERlxcdTlERTlcXHU5REQ5XFx1OUREOFxcdTlERDZcXHU5REY1XFx1OURENVxcdTlERERcXHU5RUI2XFx1OUVGMFxcdTlGMzVcXHU5RjMzXFx1OUYzMlxcdTlGNDJcXHU5RjZCXFx1OUY5NVxcdTlGQTJcXHU1MTNEXFx1NTI5OVxcdTU4RThcXHU1OEU3XFx1NTk3MlxcdTVCNERcXHU1REQ4XFx1ODgyRlxcdTVGNEZcXHU2MjAxXFx1NjIwM1xcdTYyMDRcXHU2NTI5XFx1NjUyNVxcdTY1OTZcXHU2NkVCXFx1NkIxMVxcdTZCMTJcXHU2QjBGXFx1NkJDQVxcdTcwNUJcXHU3MDVBXFx1NzIyMlxcdTczODJcXHU3MzgxXFx1NzM4M1xcdTc2NzBcXHU3N0Q0XFx1N0M2N1xcdTdDNjZcXHU3RTk1XFx1ODI2Q1xcdTg2M0FcXHU4NjQwXFx1ODYzOVxcdTg2M0NcXHU4NjMxXFx1ODYzQlxcdTg2M0VcXHU4ODMwXFx1ODgzMlxcdTg4MkVcXHU4ODMzXFx1ODk3NlxcdTg5NzRcXHU4OTczXFx1ODlGRVwiXSxcbiAgICAgIFtcImY4NDBcIiwgXCJcXHU4QjhDXFx1OEI4RVxcdThCOEJcXHU4Qjg4XFx1OEM0NVxcdThEMTlcXHU4RTk4XFx1OEY2NFxcdThGNjNcXHU5MUJDXFx1OTQ2MlxcdTk0NTVcXHU5NDVEXFx1OTQ1N1xcdTk0NUVcXHU5N0M0XFx1OTdDNVxcdTk4MDBcXHU5QTU2XFx1OUE1OVxcdTlCMUVcXHU5QjFGXFx1OUIyMFxcdTlDNTJcXHU5QzU4XFx1OUM1MFxcdTlDNEFcXHU5QzREXFx1OUM0QlxcdTlDNTVcXHU5QzU5XFx1OUM0Q1xcdTlDNEVcXHU5REZCXFx1OURGN1xcdTlERUZcXHU5REUzXFx1OURFQlxcdTlERjhcXHU5REU0XFx1OURGNlxcdTlERTFcXHU5REVFXFx1OURFNlxcdTlERjJcXHU5REYwXFx1OURFMlxcdTlERUNcXHU5REY0XFx1OURGM1xcdTlERThcXHU5REVEXFx1OUVDMlxcdTlFRDBcXHU5RUYyXFx1OUVGM1xcdTlGMDZcXHU5RjFDXFx1OUYzOFxcdTlGMzdcXHU5RjM2XFx1OUY0M1xcdTlGNEZcIl0sXG4gICAgICBbXCJmOGExXCIsIFwiXFx1OUY3MVxcdTlGNzBcXHU5RjZFXFx1OUY2RlxcdTU2RDNcXHU1NkNEXFx1NUI0RVxcdTVDNkRcXHU2NTJEXFx1NjZFRFxcdTY2RUVcXHU2QjEzXFx1NzA1RlxcdTcwNjFcXHU3MDVEXFx1NzA2MFxcdTcyMjNcXHU3NERCXFx1NzRFNVxcdTc3RDVcXHU3OTM4XFx1NzlCN1xcdTc5QjZcXHU3QzZBXFx1N0U5N1xcdTdGODlcXHU4MjZEXFx1ODY0M1xcdTg4MzhcXHU4ODM3XFx1ODgzNVxcdTg4NEJcXHU4Qjk0XFx1OEI5NVxcdThFOUVcXHU4RTlGXFx1OEVBMFxcdThFOURcXHU5MUJFXFx1OTFCRFxcdTkxQzJcXHU5NDZCXFx1OTQ2OFxcdTk0NjlcXHU5NkU1XFx1OTc0NlxcdTk3NDNcXHU5NzQ3XFx1OTdDN1xcdTk3RTVcXHU5QTVFXFx1OUFENVxcdTlCNTlcXHU5QzYzXFx1OUM2N1xcdTlDNjZcXHU5QzYyXFx1OUM1RVxcdTlDNjBcXHU5RTAyXFx1OURGRVxcdTlFMDdcXHU5RTAzXFx1OUUwNlxcdTlFMDVcXHU5RTAwXFx1OUUwMVxcdTlFMDlcXHU5REZGXFx1OURGRFxcdTlFMDRcXHU5RUEwXFx1OUYxRVxcdTlGNDZcXHU5Rjc0XFx1OUY3NVxcdTlGNzZcXHU1NkQ0XFx1NjUyRVxcdTY1QjhcXHU2QjE4XFx1NkIxOVxcdTZCMTdcXHU2QjFBXFx1NzA2MlxcdTcyMjZcXHU3MkFBXFx1NzdEOFxcdTc3RDlcXHU3OTM5XFx1N0M2OVxcdTdDNkJcXHU3Q0Y2XFx1N0U5QVwiXSxcbiAgICAgIFtcImY5NDBcIiwgXCJcXHU3RTk4XFx1N0U5QlxcdTdFOTlcXHU4MUUwXFx1ODFFMVxcdTg2NDZcXHU4NjQ3XFx1ODY0OFxcdTg5NzlcXHU4OTdBXFx1ODk3Q1xcdTg5N0JcXHU4OUZGXFx1OEI5OFxcdThCOTlcXHU4RUE1XFx1OEVBNFxcdThFQTNcXHU5NDZFXFx1OTQ2RFxcdTk0NkZcXHU5NDcxXFx1OTQ3M1xcdTk3NDlcXHU5ODcyXFx1OTk1RlxcdTlDNjhcXHU5QzZFXFx1OUM2RFxcdTlFMEJcXHU5RTBEXFx1OUUxMFxcdTlFMEZcXHU5RTEyXFx1OUUxMVxcdTlFQTFcXHU5RUY1XFx1OUYwOVxcdTlGNDdcXHU5Rjc4XFx1OUY3QlxcdTlGN0FcXHU5Rjc5XFx1NTcxRVxcdTcwNjZcXHU3QzZGXFx1ODgzQ1xcdThEQjJcXHU4RUE2XFx1OTFDM1xcdTk0NzRcXHU5NDc4XFx1OTQ3NlxcdTk0NzVcXHU5QTYwXFx1OUM3NFxcdTlDNzNcXHU5QzcxXFx1OUM3NVxcdTlFMTRcXHU5RTEzXFx1OUVGNlxcdTlGMEFcIl0sXG4gICAgICBbXCJmOWExXCIsIFwiXFx1OUZBNFxcdTcwNjhcXHU3MDY1XFx1N0NGN1xcdTg2NkFcXHU4ODNFXFx1ODgzRFxcdTg4M0ZcXHU4QjlFXFx1OEM5Q1xcdThFQTlcXHU4RUM5XFx1OTc0QlxcdTk4NzNcXHU5ODc0XFx1OThDQ1xcdTk5NjFcXHU5OUFCXFx1OUE2NFxcdTlBNjZcXHU5QTY3XFx1OUIyNFxcdTlFMTVcXHU5RTE3XFx1OUY0OFxcdTYyMDdcXHU2QjFFXFx1NzIyN1xcdTg2NENcXHU4RUE4XFx1OTQ4MlxcdTk0ODBcXHU5NDgxXFx1OUE2OVxcdTlBNjhcXHU5QjJFXFx1OUUxOVxcdTcyMjlcXHU4NjRCXFx1OEI5RlxcdTk0ODNcXHU5Qzc5XFx1OUVCN1xcdTc2NzVcXHU5QTZCXFx1OUM3QVxcdTlFMURcXHU3MDY5XFx1NzA2QVxcdTlFQTRcXHU5RjdFXFx1OUY0OVxcdTlGOThcXHU3ODgxXFx1OTJCOVxcdTg4Q0ZcXHU1OEJCXFx1NjA1MlxcdTdDQTdcXHU1QUZBXFx1MjU1NFxcdTI1NjZcXHUyNTU3XFx1MjU2MFxcdTI1NkNcXHUyNTYzXFx1MjU1QVxcdTI1NjlcXHUyNTVEXFx1MjU1MlxcdTI1NjRcXHUyNTU1XFx1MjU1RVxcdTI1NkFcXHUyNTYxXFx1MjU1OFxcdTI1NjdcXHUyNTVCXFx1MjU1M1xcdTI1NjVcXHUyNTU2XFx1MjU1RlxcdTI1NkJcXHUyNTYyXFx1MjU1OVxcdTI1NjhcXHUyNTVDXFx1MjU1MVxcdTI1NTBcXHUyNTZEXFx1MjU2RVxcdTI1NzBcXHUyNTZGXFx1MjU5M1wiXVxuICAgIF07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9iaWc1LWFkZGVkLmpzb25cbnZhciByZXF1aXJlX2JpZzVfYWRkZWQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9iaWc1LWFkZGVkLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFtcbiAgICAgIFtcIjg3NDBcIiwgXCJcXHU0M0YwXFx1NEMzMlxcdTQ2MDNcXHU0NUE2XFx1NDU3OFxcdXsyNzI2N31cXHU0RDc3XFx1NDVCM1xcdXsyN0NCMX1cXHU0Q0UyXFx1ezI3Q0M1fVxcdTNCOTVcXHU0NzM2XFx1NDc0NFxcdTRDNDdcXHU0QzQwXFx1ezI0MkJGfVxcdXsyMzYxN31cXHV7MjczNTJ9XFx1ezI2RThCfVxcdXsyNzBEMn1cXHU0QzU3XFx1ezJBMzUxfVxcdTQ3NEZcXHU0NURBXFx1NEM4NVxcdXsyN0M2Q31cXHU0RDA3XFx1NEFBNFxcdTQ2QTFcXHV7MjZCMjN9XFx1NzIyNVxcdXsyNUE1NH1cXHV7MjFBNjN9XFx1ezIzRTA2fVxcdXsyM0Y2MX1cXHU2NjREXFx1NTZGQlwiXSxcbiAgICAgIFtcIjg3NjdcIiwgXCJcXHU3RDk1XFx1NTkxRFxcdXsyOEJCOX1cXHUzREY0XFx1OTczNFxcdXsyN0JFRn1cXHU1QkRCXFx1ezIxRDVFfVxcdTVBQTRcXHUzNjI1XFx1ezI5RUIwfVxcdTVBRDFcXHU1QkI3XFx1NUNGQ1xcdTY3NkVcXHU4NTkzXFx1ezI5OTQ1fVxcdTc0NjFcXHU3NDlEXFx1Mzg3NVxcdXsyMUQ1M31cXHV7MjM2OUV9XFx1ezI2MDIxfVxcdTNFRUNcIl0sXG4gICAgICBbXCI4N2ExXCIsIFwiXFx1ezI1OERFfVxcdTNBRjVcXHU3QUZDXFx1OUY5N1xcdXsyNDE2MX1cXHV7Mjg5MER9XFx1ezIzMUVBfVxcdXsyMEE4QX1cXHV7MjMyNUV9XFx1NDMwQVxcdTg0ODRcXHU5Rjk2XFx1OTQyRlxcdTQ5MzBcXHU4NjEzXFx1NTg5NlxcdTk3NEFcXHU5MjE4XFx1NzlEMFxcdTdBMzJcXHU2NjYwXFx1NkEyOVxcdTg4OURcXHU3NDRDXFx1N0JDNVxcdTY3ODJcXHU3QTJDXFx1NTI0RlxcdTkwNDZcXHUzNEU2XFx1NzNDNFxcdXsyNURCOX1cXHU3NEM2XFx1OUZDN1xcdTU3QjNcXHU0OTJGXFx1NTQ0Q1xcdTQxMzFcXHV7MjM2OEV9XFx1NTgxOFxcdTdBNzJcXHV7MjdCNjV9XFx1OEI4RlxcdTQ2QUVcXHV7MjZFODh9XFx1NDE4MVxcdXsyNUQ5OX1cXHU3QkFFXFx1ezIyNEJDfVxcdTlGQzhcXHV7MjI0QzF9XFx1ezIyNEM5fVxcdXsyMjRDQ31cXHU5RkM5XFx1ODUwNFxcdXsyMzVCQn1cXHU0MEI0XFx1OUZDQVxcdTQ0RTFcXHV7MkFERkZ9XFx1NjJDMVxcdTcwNkVcXHU5RkNCXCJdLFxuICAgICAgW1wiODg0MFwiLCBcIlxcdTMxQzBcIiwgNCwgXCJcXHV7MjAxMEN9XFx1MzFDNVxcdXsyMDBEMX1cXHV7MjAwQ0R9XFx1MzFDNlxcdTMxQzdcXHV7MjAwQ0J9XFx1ezIxRkU4fVxcdTMxQzhcXHV7MjAwQ0F9XFx1MzFDOVxcdTMxQ0FcXHUzMUNCXFx1MzFDQ1xcdXsyMDEwRX1cXHUzMUNEXFx1MzFDRVxcdTAxMDBcXHhDMVxcdTAxQ0RcXHhDMFxcdTAxMTJcXHhDOVxcdTAxMUFcXHhDOFxcdTAxNENcXHhEM1xcdTAxRDFcXHhEMlxcdTBGRkZcXHhDQVxcdTAzMDRcXHUxRUJFXFx1MEZGRlxceENBXFx1MDMwQ1xcdTFFQzBcXHhDQVxcdTAxMDFcXHhFMVxcdTAxQ0VcXHhFMFxcdTAyNTFcXHUwMTEzXFx4RTlcXHUwMTFCXFx4RThcXHUwMTJCXFx4RURcXHUwMUQwXFx4RUNcXHUwMTREXFx4RjNcXHUwMUQyXFx4RjJcXHUwMTZCXFx4RkFcXHUwMUQ0XFx4RjlcXHUwMUQ2XFx1MDFEOFxcdTAxREFcIl0sXG4gICAgICBbXCI4OGExXCIsIFwiXFx1MDFEQ1xceEZDXFx1MEZGRlxceEVBXFx1MDMwNFxcdTFFQkZcXHUwRkZGXFx4RUFcXHUwMzBDXFx1MUVDMVxceEVBXFx1MDI2MVxcdTIzREFcXHUyM0RCXCJdLFxuICAgICAgW1wiODk0MFwiLCBcIlxcdXsyQTNBOX1cXHV7MjExNDV9XCJdLFxuICAgICAgW1wiODk0M1wiLCBcIlxcdTY1MEFcIl0sXG4gICAgICBbXCI4OTQ2XCIsIFwiXFx1NEUzRFxcdTZFRERcXHU5RDRFXFx1OTFERlwiXSxcbiAgICAgIFtcIjg5NGNcIiwgXCJcXHV7Mjc3MzV9XFx1NjQ5MVxcdTRGMUFcXHU0RjI4XFx1NEZBOFxcdTUxNTZcXHU1MTc0XFx1NTE5Q1xcdTUxRTRcXHU1MkExXFx1NTJBOFxcdTUzM0JcXHU1MzRFXFx1NTNEMVxcdTUzRDhcXHU1NkUyXFx1NThGMFxcdTU5MDRcXHU1OTA3XFx1NTkzMlxcdTU5MzRcXHU1QjY2XFx1NUI5RVxcdTVCOUZcXHU1QzlBXFx1NUU4NlxcdTYwM0JcXHU2NTg5XFx1NjdGRVxcdTY4MDRcXHU2ODY1XFx1NkQ0RVxcdTcwQkNcXHU3NTM1XFx1N0VBNFxcdTdFQUNcXHU3RUJBXFx1N0VDN1xcdTdFQ0ZcXHU3RURGXFx1N0YwNlxcdTdGMzdcXHU4MjdBXFx1ODJDRlxcdTgzNkZcXHU4OUM2XFx1OEJCRVxcdThCRTJcXHU4RjY2XFx1OEY2N1xcdThGNkVcIl0sXG4gICAgICBbXCI4OWExXCIsIFwiXFx1NzQxMVxcdTdDRkNcXHU3RENEXFx1Njk0NlxcdTdBQzlcXHU1MjI3XCJdLFxuICAgICAgW1wiODlhYlwiLCBcIlxcdTkxOENcXHU3OEI4XFx1OTE1RVxcdTgwQkNcIl0sXG4gICAgICBbXCI4OWIwXCIsIFwiXFx1OEQwQlxcdTgwRjZcXHV7MjA5RTd9XCJdLFxuICAgICAgW1wiODliNVwiLCBcIlxcdTgwOUZcXHU5RUM3XFx1NENDRFxcdTlEQzlcXHU5RTBDXFx1NEMzRVxcdXsyOURGNn1cXHV7MjcwMEV9XFx1OUUwQVxcdXsyQTEzM31cXHUzNUMxXCJdLFxuICAgICAgW1wiODljMVwiLCBcIlxcdTZFOUFcXHU4MjNFXFx1NzUxOVwiXSxcbiAgICAgIFtcIjg5YzVcIiwgXCJcXHU0OTExXFx1OUE2Q1xcdTlBOEZcXHU5Rjk5XFx1Nzk4N1xcdXsyODQ2Q31cXHV7MjFEQ0F9XFx1ezIwNUQwfVxcdXsyMkFFNn1cXHU0RTI0XFx1NEU4MVxcdTRFODBcXHU0RTg3XFx1NEVCRlxcdTRFRUJcXHU0RjM3XFx1MzQ0Q1xcdTRGQkRcXHUzRTQ4XFx1NTAwM1xcdTUwODhcXHUzNDdEXFx1MzQ5M1xcdTM0QTVcXHU1MTg2XFx1NTkwNVxcdTUxREJcXHU1MUZDXFx1NTIwNVxcdTRFODlcXHU1Mjc5XFx1NTI5MFxcdTUzMjdcXHUzNUM3XFx1NTNBOVxcdTM1NTFcXHU1M0IwXFx1MzU1M1xcdTUzQzJcXHU1NDIzXFx1MzU2RFxcdTM1NzJcXHUzNjgxXFx1NTQ5M1xcdTU0QTNcXHU1NEI0XFx1NTRCOVxcdTU0RDBcXHU1NEVGXFx1NTUxOFxcdTU1MjNcXHU1NTI4XFx1MzU5OFxcdTU1M0ZcXHUzNUE1XFx1MzVCRlxcdTU1RDdcXHUzNUM1XCJdLFxuICAgICAgW1wiOGE0MFwiLCBcIlxcdXsyN0Q4NH1cXHU1NTI1XCJdLFxuICAgICAgW1wiOGE0M1wiLCBcIlxcdXsyMEM0Mn1cXHV7MjBEMTV9XFx1ezI1MTJCfVxcdTU1OTBcXHV7MjJDQzZ9XFx1MzlFQ1xcdXsyMDM0MX1cXHU4RTQ2XFx1ezI0REI4fVxcdXsyOTRFNX1cXHU0MDUzXFx1ezI4MEJFfVxcdTc3N0FcXHV7MjJDMzh9XFx1M0EzNFxcdTQ3RDVcXHV7MjgxNUR9XFx1ezI2OUYyfVxcdXsyNERFQX1cXHU2NEREXFx1ezIwRDdDfVxcdXsyMEZCNH1cXHV7MjBDRDV9XFx1ezIxMEY0fVxcdTY0OERcXHU4RTdFXFx1ezIwRTk2fVxcdXsyMEMwQn1cXHV7MjBGNjR9XFx1ezIyQ0E5fVxcdXsyODI1Nn1cXHV7MjQ0RDN9XCJdLFxuICAgICAgW1wiOGE2NFwiLCBcIlxcdXsyMEQ0Nn1cXHV7MjlBNER9XFx1ezI4MEU5fVxcdTQ3RjRcXHV7MjRFQTd9XFx1ezIyQ0MyfVxcdTlBQjJcXHUzQTY3XFx1ezI5NUY0fVxcdTNGRURcXHUzNTA2XFx1ezI1MkM3fVxcdXsyOTdENH1cXHV7Mjc4Qzh9XFx1ezIyRDQ0fVxcdTlENkVcXHU5ODE1XCJdLFxuICAgICAgW1wiOGE3NlwiLCBcIlxcdTQzRDlcXHV7MjYwQTV9XFx1NjRCNFxcdTU0RTNcXHV7MjJENEN9XFx1ezIyQkNBfVxcdXsyMTA3N31cXHUzOUZCXFx1ezIxMDZGfVwiXSxcbiAgICAgIFtcIjhhYTFcIiwgXCJcXHV7MjY2REF9XFx1ezI2NzE2fVxcdXsyNzlBMH1cXHU2NEVBXFx1ezI1MDUyfVxcdXsyMEM0M31cXHU4RTY4XFx1ezIyMUExfVxcdXsyOEI0Q31cXHV7MjA3MzF9XCJdLFxuICAgICAgW1wiOGFhY1wiLCBcIlxcdTQ4MEJcXHV7MjAxQTl9XFx1M0ZGQVxcdTU4NzNcXHV7MjJEOER9XCJdLFxuICAgICAgW1wiOGFiMlwiLCBcIlxcdXsyNDVDOH1cXHV7MjA0RkN9XFx1ezI2MDk3fVxcdXsyMEY0Q31cXHV7MjBEOTZ9XFx1NTU3OVxcdTQwQkJcXHU0M0JBXCJdLFxuICAgICAgW1wiOGFiYlwiLCBcIlxcdTRBQjRcXHV7MjJBNjZ9XFx1ezIxMDlEfVxcdTgxQUFcXHU5OEY1XFx1ezIwRDlDfVxcdTYzNzlcXHUzOUZFXFx1ezIyNzc1fVxcdThEQzBcXHU1NkExXFx1NjQ3Q1xcdTNFNDNcIl0sXG4gICAgICBbXCI4YWM5XCIsIFwiXFx1ezJBNjAxfVxcdXsyMEUwOX1cXHV7MjJBQ0Z9XFx1ezIyQ0M5fVwiXSxcbiAgICAgIFtcIjhhY2VcIiwgXCJcXHV7MjEwQzh9XFx1ezIzOUMyfVxcdTM5OTJcXHUzQTA2XFx1ezI4MjlCfVxcdTM1NzhcXHV7MjVFNDl9XFx1ezIyMEM3fVxcdTU2NTJcXHV7MjBGMzF9XFx1ezIyQ0IyfVxcdXsyOTcyMH1cXHUzNEJDXFx1NkMzRFxcdXsyNEUzQn1cIl0sXG4gICAgICBbXCI4YWRmXCIsIFwiXFx1ezI3NTc0fVxcdXsyMkU4Qn1cXHV7MjIyMDh9XFx1ezJBNjVCfVxcdXsyOENDRH1cXHV7MjBFN0F9XFx1ezIwQzM0fVxcdXsyNjgxQ31cXHU3RjkzXFx1ezIxMENGfVxcdXsyMjgwM31cXHV7MjI5Mzl9XFx1MzVGQlxcdXsyNTFFM31cXHV7MjBFOEN9XFx1ezIwRjhEfVxcdXsyMEVBQX1cXHUzRjkzXFx1ezIwRjMwfVxcdXsyMEQ0N31cXHV7MjExNEZ9XFx1ezIwRTRDfVwiXSxcbiAgICAgIFtcIjhhZjZcIiwgXCJcXHV7MjBFQUJ9XFx1ezIwQkE5fVxcdXsyMEQ0OH1cXHV7MjEwQzB9XFx1ezIxMTNEfVxcdTNGRjlcXHV7MjI2OTZ9XFx1NjQzMlxcdXsyMEZBRH1cIl0sXG4gICAgICBbXCI4YjQwXCIsIFwiXFx1ezIzM0Y0fVxcdXsyNzYzOX1cXHV7MjJCQ0V9XFx1ezIwRDdFfVxcdXsyMEQ3Rn1cXHV7MjJDNTF9XFx1ezIyQzU1fVxcdTNBMThcXHV7MjBFOTh9XFx1ezIxMEM3fVxcdXsyMEYyRX1cXHV7MkE2MzJ9XFx1ezI2QjUwfVxcdXsyOENEMn1cXHV7MjhEOTl9XFx1ezI4Q0NBfVxcdTk1QUFcXHU1NENDXFx1ODJDNFxcdTU1QjlcIl0sXG4gICAgICBbXCI4YjU1XCIsIFwiXFx1ezI5RUMzfVxcdTlDMjZcXHU5QUI2XFx1ezI3NzVFfVxcdXsyMkRFRX1cXHU3MTQwXFx1ODE2RFxcdTgwRUNcXHU1QzFDXFx1ezI2NTcyfVxcdTgxMzRcXHUzNzk3XFx1NTM1RlxcdXsyODBCRH1cXHU5MUI2XFx1ezIwRUZBfVxcdXsyMEUwRn1cXHV7MjBFNzd9XFx1ezIwRUZCfVxcdTM1RERcXHV7MjRERUJ9XFx1MzYwOVxcdXsyMENENn1cXHU1NkFGXFx1ezIyN0I1fVxcdXsyMTBDOX1cXHV7MjBFMTB9XFx1ezIwRTc4fVxcdXsyMTA3OH1cXHV7MjExNDh9XFx1ezI4MjA3fVxcdXsyMTQ1NX1cXHV7MjBFNzl9XFx1ezI0RTUwfVxcdXsyMkRBNH1cXHU1QTU0XFx1ezIxMDFEfVxcdXsyMTAxRX1cXHV7MjEwRjV9XFx1ezIxMEY2fVxcdTU3OUNcXHV7MjBFMTF9XCJdLFxuICAgICAgW1wiOGJhMVwiLCBcIlxcdXsyNzY5NH1cXHV7MjgyQ0R9XFx1ezIwRkI1fVxcdXsyMEU3Qn1cXHV7MjUxN0V9XFx1MzcwM1xcdXsyMEZCNn1cXHV7MjExODB9XFx1ezI1MkQ4fVxcdXsyQTJCRH1cXHV7MjQ5REF9XFx1ezIxODNBfVxcdXsyNDE3N31cXHV7MjgyN0N9XFx1NTg5OVxcdTUyNjhcXHUzNjFBXFx1ezI1NzNEfVxcdTdCQjJcXHU1QjY4XFx1NDgwMFxcdTRCMkNcXHU5RjI3XFx1NDlFN1xcdTlDMUZcXHU5QjhEXFx1ezI1Qjc0fVxcdXsyMzEzRH1cXHU1NUZCXFx1MzVGMlxcdTU2ODlcXHU0RTI4XFx1NTkwMlxcdXsyMUJDMX1cXHV7MkY4Nzh9XFx1OTc1MVxcdXsyMDA4Nn1cXHU0RTVCXFx1NEVCQlxcdTM1M0VcXHU1QzIzXFx1NUY1MVxcdTVGQzRcXHUzOEZBXFx1NjI0Q1xcdTY1MzVcXHU2QjdBXFx1NkMzNVxcdTZDM0FcXHU3MDZDXFx1NzIyQlxcdTRFMkNcXHU3MkFEXFx1ezI0OEU5fVxcdTdGNTJcXHU3OTNCXFx1N0NGOVxcdTdGNTNcXHV7MjYyNkF9XFx1MzRDMVwiXSxcbiAgICAgIFtcIjhiZGVcIiwgXCJcXHV7MjYzNEJ9XFx1ODAwMlxcdTgwODBcXHV7MjY2MTJ9XFx1ezI2OTUxfVxcdTUzNURcXHU4ODY0XFx1ODlDMVxcdXsyNzhCMn1cXHU4QkEwXFx1OEQxRFxcdTk0ODVcXHU5NTc4XFx1OTU3RlxcdTk1RThcXHV7MjhFMEZ9XFx1OTdFNlxcdTk4NzVcXHU5OENFXFx1OThERVxcdTk5NjNcXHV7Mjk4MTB9XFx1OUM3Q1xcdTlFMUZcXHU5RUM0XFx1NkI2RlxcdUY5MDdcXHU0RTM3XFx1ezIwMDg3fVxcdTk2MURcXHU2MjM3XFx1OTRBMlwiXSxcbiAgICAgIFtcIjhjNDBcIiwgXCJcXHU1MDNCXFx1NkRGRVxcdXsyOUM3M31cXHU5RkE2XFx1M0RDOVxcdTg4OEZcXHV7MjQxNEV9XFx1NzA3N1xcdTVDRjVcXHU0QjIwXFx1ezI1MUNEfVxcdTM1NTlcXHV7MjVEMzB9XFx1NjEyMlxcdXsyOEEzMn1cXHU4RkE3XFx1OTFGNlxcdTcxOTFcXHU2NzE5XFx1NzNCQVxcdXsyMzI4MX1cXHV7MkExMDd9XFx1M0M4QlxcdXsyMTk4MH1cXHU0QjEwXFx1NzhFNFxcdTc0MDJcXHU1MUFFXFx1ezI4NzBGfVxcdTQwMDlcXHU2QTYzXFx1ezJBMkJBfVxcdTQyMjNcXHU4NjBGXFx1ezIwQTZGfVxcdTdBMkFcXHV7Mjk5NDd9XFx1ezI4QUVBfVxcdTk3NTVcXHU3MDREXFx1NTMyNFxcdXsyMjA3RX1cXHU5M0Y0XFx1NzZEOVxcdXsyODlFM31cXHU5RkE3XFx1NzdERFxcdTRFQTNcXHU0RkYwXFx1NTBCQ1xcdTRFMkZcXHU0RjE3XFx1OUZBOFxcdTU0MzRcXHU3RDhCXFx1NTg5MlxcdTU4RDBcXHV7MjFEQjZ9XFx1NUU5MlxcdTVFOTlcXHU1RkMyXFx1ezIyNzEyfVxcdTY1OEJcIl0sXG4gICAgICBbXCI4Y2ExXCIsIFwiXFx1ezIzM0Y5fVxcdTY5MTlcXHU2QTQzXFx1ezIzQzYzfVxcdTZDRkZcIl0sXG4gICAgICBbXCI4Y2E3XCIsIFwiXFx1NzIwMFxcdXsyNDUwNX1cXHU3MzhDXFx1M0VEQlxcdXsyNEExM31cXHU1QjE1XFx1NzRCOVxcdThCODNcXHV7MjVDQTR9XFx1ezI1Njk1fVxcdTdBOTNcXHU3QkVDXFx1N0NDM1xcdTdFNkNcXHU4MkY4XFx1ODU5N1xcdTlGQTlcXHU4ODkwXFx1OUZBQVxcdThFQjlcXHU5RkFCXFx1OEZDRlxcdTg1NUZcXHU5OUUwXFx1OTIyMVxcdTlGQUNcXHV7MjhEQjl9XFx1ezIxNDNGfVxcdTQwNzFcXHU0MkEyXFx1NUExQVwiXSxcbiAgICAgIFtcIjhjYzlcIiwgXCJcXHU5ODY4XFx1Njc2QlxcdTQyNzZcXHU1NzNEXCJdLFxuICAgICAgW1wiOGNjZVwiLCBcIlxcdTg1RDZcXHV7MjQ5N0J9XFx1ODJCRlxcdXsyNzEwRH1cXHU0QzgxXFx1ezI2RDc0fVxcdTVEN0JcXHV7MjZCMTV9XFx1ezI2RkJFfVxcdTlGQURcXHU5RkFFXFx1NUI5NlxcdTlGQUZcXHU2NkU3XFx1N0U1QlxcdTZFNTdcXHU3OUNBXFx1M0Q4OFxcdTQ0QzNcXHV7MjMyNTZ9XFx1ezIyNzk2fVxcdTQzOUFcXHU0NTM2XCJdLFxuICAgICAgW1wiOGNlNlwiLCBcIlxcdTVDRDVcXHV7MjNCMUF9XFx1OEFGOVxcdTVDNzhcXHUzRDEyXFx1ezIzNTUxfVxcdTVENzhcXHU5RkIyXFx1NzE1N1xcdTQ1NThcXHV7MjQwRUN9XFx1ezIxRTIzfVxcdTRDNzdcXHUzOTc4XFx1MzQ0QVxcdXsyMDFBNH1cXHV7MjZDNDF9XFx1OEFDQ1xcdTRGQjRcXHV7MjAyMzl9XFx1NTlCRlxcdTgxNkNcXHU5ODU2XFx1ezI5OEZBfVxcdTVGM0JcIl0sXG4gICAgICBbXCI4ZDQwXCIsIFwiXFx1ezIwQjlGfVwiXSxcbiAgICAgIFtcIjhkNDJcIiwgXCJcXHV7MjIxQzF9XFx1ezI4OTZEfVxcdTQxMDJcXHU0NkJCXFx1ezI5MDc5fVxcdTNGMDdcXHU5RkIzXFx1ezJBMUI1fVxcdTQwRjhcXHUzN0Q2XFx1NDZGN1xcdXsyNkM0Nn1cXHU0MTdDXFx1ezI4NkIyfVxcdXsyNzNGRn1cXHU0NTZEXFx1MzhENFxcdXsyNTQ5QX1cXHU0NTYxXFx1NDUxQlxcdTREODlcXHU0QzdCXFx1NEQ3NlxcdTQ1RUFcXHUzRkM4XFx1ezI0QjBGfVxcdTM2NjFcXHU0NERFXFx1NDRCRFxcdTQxRURcXHU1RDNFXFx1NUQ0OFxcdTVENTZcXHUzREZDXFx1MzgwRlxcdTVEQTRcXHU1REI5XFx1MzgyMFxcdTM4MzhcXHU1RTQyXFx1NUVCRFxcdTVGMjVcXHU1RjgzXFx1MzkwOFxcdTM5MTRcXHUzOTNGXFx1Mzk0RFxcdTYwRDdcXHU2MTNEXFx1NUNFNVxcdTM5ODlcXHU2MUI3XFx1NjFCOVxcdTYxQ0ZcXHUzOUI4XFx1NjIyQ1xcdTYyOTBcXHU2MkU1XFx1NjMxOFxcdTM5RjhcXHU1NkIxXCJdLFxuICAgICAgW1wiOGRhMVwiLCBcIlxcdTNBMDNcXHU2M0UyXFx1NjNGQlxcdTY0MDdcXHU2NDVBXFx1M0E0QlxcdTY0QzBcXHU1RDE1XFx1NTYyMVxcdTlGOUZcXHUzQTk3XFx1NjU4NlxcdTNBQkRcXHU2NUZGXFx1NjY1M1xcdTNBRjJcXHU2NjkyXFx1M0IyMlxcdTY3MTZcXHUzQjQyXFx1NjdBNFxcdTY4MDBcXHUzQjU4XFx1Njg0QVxcdTY4ODRcXHUzQjcyXFx1M0I3MVxcdTNCN0JcXHU2OTA5XFx1Njk0M1xcdTcyNUNcXHU2OTY0XFx1Njk5RlxcdTY5ODVcXHUzQkJDXFx1NjlENlxcdTNCRERcXHU2QTY1XFx1NkE3NFxcdTZBNzFcXHU2QTgyXFx1M0JFQ1xcdTZBOTlcXHUzQkYyXFx1NkFBQlxcdTZBQjVcXHU2QUQ0XFx1NkFGNlxcdTZCODFcXHU2QkMxXFx1NkJFQVxcdTZDNzVcXHU2Q0FBXFx1M0NDQlxcdTZEMDJcXHU2RDA2XFx1NkQyNlxcdTZEODFcXHUzQ0VGXFx1NkRBNFxcdTZEQjFcXHU2RTE1XFx1NkUxOFxcdTZFMjlcXHU2RTg2XFx1ezI4OUMwfVxcdTZFQkJcXHU2RUUyXFx1NkVEQVxcdTlGN0ZcXHU2RUU4XFx1NkVFOVxcdTZGMjRcXHU2RjM0XFx1M0Q0NlxcdXsyM0Y0MX1cXHU2RjgxXFx1NkZCRVxcdTNENkFcXHUzRDc1XFx1NzFCN1xcdTVDOTlcXHUzRDhBXFx1NzAyQ1xcdTNEOTFcXHU3MDUwXFx1NzA1NFxcdTcwNkZcXHU3MDdGXFx1NzA4OVxcdXsyMDMyNX1cXHU0M0MxXFx1MzVGMVxcdXsyMEVEOH1cIl0sXG4gICAgICBbXCI4ZTQwXCIsIFwiXFx1ezIzRUQ3fVxcdTU3QkVcXHV7MjZFRDN9XFx1NzEzRVxcdXsyNTdFMH1cXHUzNjRFXFx1NjlBMlxcdXsyOEJFOX1cXHU1Qjc0XFx1N0E0OVxcdXsyNThFMX1cXHV7Mjk0RDl9XFx1N0E2NVxcdTdBN0RcXHV7MjU5QUN9XFx1N0FCQlxcdTdBQjBcXHU3QUMyXFx1N0FDM1xcdTcxRDFcXHV7MjY0OER9XFx1NDFDQVxcdTdBREFcXHU3QUREXFx1N0FFQVxcdTQxRUZcXHU1NEIyXFx1ezI1QzAxfVxcdTdCMEJcXHU3QjU1XFx1N0IyOVxcdXsyNTMwRX1cXHV7MjVDRkV9XFx1N0JBMlxcdTdCNkZcXHU4MzlDXFx1ezI1QkI0fVxcdXsyNkM3Rn1cXHU3QkQwXFx1ODQyMVxcdTdCOTJcXHU3QkI4XFx1ezI1RDIwfVxcdTNEQURcXHV7MjVDNjV9XFx1ODQ5MlxcdTdCRkFcXHU3QzA2XFx1N0MzNVxcdXsyNUNDMX1cXHU3QzQ0XFx1N0M4M1xcdXsyNDg4Mn1cXHU3Q0E2XFx1NjY3RFxcdXsyNDU3OH1cXHU3Q0M5XFx1N0NDN1xcdTdDRTZcXHU3Qzc0XFx1N0NGM1xcdTdDRjVcXHU3Q0NFXCJdLFxuICAgICAgW1wiOGVhMVwiLCBcIlxcdTdFNjdcXHU0NTFEXFx1ezI2RTQ0fVxcdTdENURcXHV7MjZFRDZ9XFx1NzQ4RFxcdTdEODlcXHU3REFCXFx1NzEzNVxcdTdEQjNcXHU3REQyXFx1ezI0MDU3fVxcdXsyNjAyOX1cXHU3REU0XFx1M0QxM1xcdTdERjVcXHV7MjE3Rjl9XFx1N0RFNVxcdXsyODM2RH1cXHU3RTFEXFx1ezI2MTIxfVxcdXsyNjE1QX1cXHU3RTZFXFx1N0U5MlxcdTQzMkJcXHU5NDZDXFx1N0UyN1xcdTdGNDBcXHU3RjQxXFx1N0Y0N1xcdTc5MzZcXHV7MjYyRDB9XFx1OTlFMVxcdTdGOTdcXHV7MjYzNTF9XFx1N0ZBM1xcdXsyMTY2MX1cXHV7MjAwNjh9XFx1NDU1Q1xcdXsyMzc2Nn1cXHU0NTAzXFx1ezI4MzNBfVxcdTdGRkFcXHV7MjY0ODl9XFx1ODAwNVxcdTgwMDhcXHU4MDFEXFx1ODAyOFxcdTgwMkZcXHV7MkEwODd9XFx1ezI2Q0MzfVxcdTgwM0JcXHU4MDNDXFx1ODA2MVxcdXsyMjcxNH1cXHU0OTg5XFx1ezI2NjI2fVxcdXsyM0RFM31cXHV7MjY2RTh9XFx1NjcyNVxcdTgwQTdcXHV7MjhBNDh9XFx1ODEwN1xcdTgxMUFcXHU1OEIwXFx1ezIyNkY2fVxcdTZDN0ZcXHV7MjY0OTh9XFx1ezI0RkI4fVxcdTY0RTdcXHV7MjE0OEF9XFx1ODIxOFxcdXsyMTg1RX1cXHU2QTUzXFx1ezI0QTY1fVxcdXsyNEE5NX1cXHU0NDdBXFx1ODIyOVxcdXsyMEIwRH1cXHV7MjZBNTJ9XFx1ezIzRDdFfVxcdTRGRjlcXHV7MjE0RkR9XFx1ODRFMlxcdTgzNjJcXHV7MjZCMEF9XFx1ezI0OUE3fVxcdXsyMzUzMH1cXHV7MjE3NzN9XFx1ezIzREY4fVxcdTgyQUFcXHU2OTFCXFx1ezJGOTk0fVxcdTQxREJcIl0sXG4gICAgICBbXCI4ZjQwXCIsIFwiXFx1ODU0QlxcdTgyRDBcXHU4MzFBXFx1ezIwRTE2fVxcdXsyMTdCNH1cXHUzNkMxXFx1ezIzMTdEfVxcdXsyMzU1QX1cXHU4MjdCXFx1ODJFMlxcdTgzMThcXHV7MjNFOEJ9XFx1ezI2REEzfVxcdXsyNkIwNX1cXHV7MjZCOTd9XFx1ezIzNUNFfVxcdTNEQkZcXHU4MzFEXFx1NTVFQ1xcdTgzODVcXHU0NTBCXFx1ezI2REE1fVxcdTgzQUNcXHU4M0MxXFx1ODNEM1xcdTM0N0VcXHV7MjZFRDR9XFx1NkE1N1xcdTg1NUFcXHUzNDk2XFx1ezI2RTQyfVxcdXsyMkVFRn1cXHU4NDU4XFx1ezI1QkU0fVxcdTg0NzFcXHUzREQzXFx1NDRFNFxcdTZBQTdcXHU4NDRBXFx1ezIzQ0I1fVxcdTc5NThcXHU4NEE4XFx1ezI2Qjk2fVxcdXsyNkU3N31cXHV7MjZFNDN9XFx1ODRERVxcdTg0MEZcXHU4MzkxXFx1NDRBMFxcdTg0OTNcXHU4NEU0XFx1ezI1QzkxfVxcdTQyNDBcXHV7MjVDQzB9XFx1NDU0M1xcdTg1MzRcXHU1QUYyXFx1ezI2RTk5fVxcdTQ1MjdcXHU4NTczXFx1NDUxNlxcdTY3QkZcXHU4NjE2XCJdLFxuICAgICAgW1wiOGZhMVwiLCBcIlxcdXsyODYyNX1cXHV7Mjg2M0J9XFx1ODVDMVxcdXsyNzA4OH1cXHU4NjAyXFx1ezIxNTgyfVxcdXsyNzBDRH1cXHV7MkY5QjJ9XFx1NDU2QVxcdTg2MjhcXHUzNjQ4XFx1ezIxOEEyfVxcdTUzRjdcXHV7MjczOUF9XFx1ODY3RVxcdTg3NzFcXHV7MkEwRjh9XFx1ODdFRVxcdXsyMkMyN31cXHU4N0IxXFx1ODdEQVxcdTg4MEZcXHU1NjYxXFx1ODY2Q1xcdTY4NTZcXHU0NjBGXFx1ODg0NVxcdTg4NDZcXHV7Mjc1RTB9XFx1ezIzREI5fVxcdXsyNzVFNH1cXHU4ODVFXFx1ODg5Q1xcdTQ2NUJcXHU4OEI0XFx1ODhCNVxcdTYzQzFcXHU4OEM1XFx1Nzc3N1xcdXsyNzcwRn1cXHU4OTg3XFx1ODk4QVxcdTg5QTZcXHU4OUE5XFx1ODlBN1xcdTg5QkNcXHV7MjhBMjV9XFx1ODlFN1xcdXsyNzkyNH1cXHV7MjdBQkR9XFx1OEE5Q1xcdTc3OTNcXHU5MUZFXFx1OEE5MFxcdXsyN0E1OX1cXHU3QUU5XFx1ezI3QjNBfVxcdXsyM0Y4Rn1cXHU0NzEzXFx1ezI3QjM4fVxcdTcxN0NcXHU4QjBDXFx1OEIxRlxcdXsyNTQzMH1cXHV7MjU1NjV9XFx1OEIzRlxcdThCNENcXHU4QjREXFx1OEFBOVxcdXsyNEE3QX1cXHU4QjkwXFx1OEI5QlxcdThBQUZcXHV7MjE2REZ9XFx1NDYxNVxcdTg4NEZcXHU4QzlCXFx1ezI3RDU0fVxcdXsyN0Q4Rn1cXHV7MkY5RDR9XFx1MzcyNVxcdXsyN0Q1M31cXHU4Q0Q2XFx1ezI3RDk4fVxcdXsyN0RCRH1cXHU4RDEyXFx1OEQwM1xcdXsyMTkxMH1cXHU4Q0RCXFx1NzA1Q1xcdThEMTFcXHV7MjRDQzl9XFx1M0VEMFxcdThENzdcIl0sXG4gICAgICBbXCI5MDQwXCIsIFwiXFx1OERBOVxcdXsyODAwMn1cXHV7MjEwMTR9XFx1ezI0OThBfVxcdTNCN0NcXHV7MjgxQkN9XFx1ezI3MTBDfVxcdTdBRTdcXHU4RUFEXFx1OEVCNlxcdThFQzNcXHU5MkQ0XFx1OEYxOVxcdThGMkRcXHV7MjgzNjV9XFx1ezI4NDEyfVxcdThGQTVcXHU5MzAzXFx1ezJBMjlGfVxcdXsyMEE1MH1cXHU4RkIzXFx1NDkyQVxcdXsyODlERX1cXHV7Mjg1M0R9XFx1ezIzREJCfVxcdTVFRjhcXHV7MjMyNjJ9XFx1OEZGOVxcdXsyQTAxNH1cXHV7Mjg2QkN9XFx1ezI4NTAxfVxcdXsyMjMyNX1cXHUzOTgwXFx1ezI2RUQ3fVxcdTkwMzdcXHV7Mjg1M0N9XFx1ezI3QUJFfVxcdTkwNjFcXHV7Mjg1NkN9XFx1ezI4NjBCfVxcdTkwQThcXHV7Mjg3MTN9XFx1OTBDNFxcdXsyODZFNn1cXHU5MEFFXFx1OTBGRFxcdTkxNjdcXHUzQUYwXFx1OTFBOVxcdTkxQzRcXHU3Q0FDXFx1ezI4OTMzfVxcdXsyMUU4OX1cXHU5MjBFXFx1NkM5RlxcdTkyNDFcXHU5MjYyXFx1ezI1NUI5fVxcdTkyQjlcXHV7MjhBQzZ9XFx1ezIzQzlCfVxcdXsyOEIwQ31cXHV7MjU1REJ9XCJdLFxuICAgICAgW1wiOTBhMVwiLCBcIlxcdXsyMEQzMX1cXHU5MzJDXFx1OTM2QlxcdXsyOEFFMX1cXHV7MjhCRUJ9XFx1NzA4RlxcdTVBQzNcXHV7MjhBRTJ9XFx1ezI4QUU1fVxcdTQ5NjVcXHU5MjQ0XFx1ezI4QkVDfVxcdXsyOEMzOX1cXHV7MjhCRkZ9XFx1OTM3M1xcdTk0NUJcXHU4RUJDXFx1OTU4NVxcdTk1QTZcXHU5NDI2XFx1OTVBMFxcdTZGRjZcXHU0MkI5XFx1ezIyNjdBfVxcdXsyODZEOH1cXHV7MjEyN0N9XFx1ezIzRTJFfVxcdTQ5REZcXHU2QzFDXFx1OTY3QlxcdTk2OTZcXHU0MTZDXFx1OTZBM1xcdXsyNkVENX1cXHU2MURBXFx1OTZCNlxcdTc4RjVcXHV7MjhBRTB9XFx1OTZCRFxcdTUzQ0NcXHU0OUExXFx1ezI2Q0I4fVxcdXsyMDI3NH1cXHV7MjY0MTB9XFx1ezI5MEFGfVxcdXsyOTBFNX1cXHV7MjRBRDF9XFx1ezIxOTE1fVxcdXsyMzMwQX1cXHU5NzMxXFx1ODY0MlxcdTk3MzZcXHU0QTBGXFx1NDUzRFxcdTQ1ODVcXHV7MjRBRTl9XFx1NzA3NVxcdTVCNDFcXHU5NzFCXFx1OTc1Q1xcdXsyOTFENX1cXHU5NzU3XFx1NUI0QVxcdXsyOTFFQn1cXHU5NzVGXFx1OTQyNVxcdTUwRDBcXHV7MjMwQjd9XFx1ezIzMEJDfVxcdTk3ODlcXHU5NzlGXFx1OTdCMVxcdTk3QkVcXHU5N0MwXFx1OTdEMlxcdTk3RTBcXHV7MjU0NkN9XFx1OTdFRVxcdTc0MUNcXHV7Mjk0MzN9XFx1OTdGRlxcdTk3RjVcXHV7Mjk0MUR9XFx1ezI3OTdBfVxcdTRBRDFcXHU5ODM0XFx1OTgzM1xcdTk4NEJcXHU5ODY2XFx1M0IwRVxcdXsyNzE3NX1cXHUzRDUxXFx1ezIwNjMwfVxcdXsyNDE1Q31cIl0sXG4gICAgICBbXCI5MTQwXCIsIFwiXFx1ezI1NzA2fVxcdTk4Q0FcXHU5OEI3XFx1OThDOFxcdTk4QzdcXHU0QUZGXFx1ezI2RDI3fVxcdXsyMTZEM31cXHU1NUIwXFx1OThFMVxcdTk4RTZcXHU5OEVDXFx1OTM3OFxcdTk5MzlcXHV7MjRBMjl9XFx1NEI3MlxcdXsyOTg1N31cXHV7Mjk5MDV9XFx1OTlGNVxcdTlBMENcXHU5QTNCXFx1OUExMFxcdTlBNThcXHV7MjU3MjV9XFx1MzZDNFxcdXsyOTBCMX1cXHV7MjlCRDV9XFx1OUFFMFxcdTlBRTJcXHV7MjlCMDV9XFx1OUFGNFxcdTRDMEVcXHU5QjE0XFx1OUIyRFxcdXsyODYwMH1cXHU1MDM0XFx1OUIzNFxcdXsyNjlBOH1cXHUzOEMzXFx1ezIzMDdEfVxcdTlCNTBcXHU5QjQwXFx1ezI5RDNFfVxcdTVBNDVcXHV7MjE4NjN9XFx1OUI4RVxcdXsyNDI0Qn1cXHU5QzAyXFx1OUJGRlxcdTlDMENcXHV7MjlFNjh9XFx1OURENFxcdXsyOUZCN31cXHV7MkExOTJ9XFx1ezJBMUFCfVxcdXsyQTBFMX1cXHV7MkExMjN9XFx1ezJBMURGfVxcdTlEN0VcXHU5RDgzXFx1ezJBMTM0fVxcdTlFMEVcXHU2ODg4XCJdLFxuICAgICAgW1wiOTFhMVwiLCBcIlxcdTlEQzRcXHV7MjIxNUJ9XFx1ezJBMTkzfVxcdXsyQTIyMH1cXHV7MjE5M0J9XFx1ezJBMjMzfVxcdTlEMzlcXHV7MkEwQjl9XFx1ezJBMkI0fVxcdTlFOTBcXHU5RTk1XFx1OUU5RVxcdTlFQTJcXHU0RDM0XFx1OUVBQVxcdTlFQUZcXHV7MjQzNjR9XFx1OUVDMVxcdTNCNjBcXHUzOUU1XFx1M0QxRFxcdTRGMzJcXHUzN0JFXFx1ezI4QzJCfVxcdTlGMDJcXHU5RjA4XFx1NEI5NlxcdTk0MjRcXHV7MjZEQTJ9XFx1OUYxN1xcdTlGMTZcXHU5RjM5XFx1NTY5RlxcdTU2OEFcXHU5RjQ1XFx1OTlCOFxcdXsyOTA4Qn1cXHU5N0YyXFx1ODQ3RlxcdTlGNjJcXHU5RjY5XFx1N0FEQ1xcdTlGOEVcXHU3MjE2XFx1NEJCRVxcdXsyNDk3NX1cXHV7MjQ5QkJ9XFx1NzE3N1xcdXsyNDlGOH1cXHV7MjQzNDh9XFx1ezI0QTUxfVxcdTczOUVcXHV7MjhCREF9XFx1ezIxOEZBfVxcdTc5OUZcXHV7Mjg5N0V9XFx1ezI4RTM2fVxcdTkzNjlcXHU5M0YzXFx1ezI4QTQ0fVxcdTkyRUNcXHU5MzgxXFx1OTNDQlxcdXsyODk2Q31cXHV7MjQ0Qjl9XFx1NzIxN1xcdTNFRUJcXHU3NzcyXFx1N0E0M1xcdTcwRDBcXHV7MjQ0NzN9XFx1ezI0M0Y4fVxcdTcxN0VcXHV7MjE3RUZ9XFx1NzBBM1xcdXsyMThCRX1cXHV7MjM1OTl9XFx1M0VDN1xcdXsyMTg4NX1cXHV7MjU0MkZ9XFx1ezIxN0Y4fVxcdTM3MjJcXHV7MjE2RkJ9XFx1ezIxODM5fVxcdTM2RTFcXHV7MjE3NzR9XFx1ezIxOEQxfVxcdXsyNUY0Qn1cXHUzNzIzXFx1ezIxNkMwfVxcdTU3NUJcXHV7MjRBMjV9XFx1ezIxM0ZFfVxcdXsyMTJBOH1cIl0sXG4gICAgICBbXCI5MjQwXCIsIFwiXFx1ezIxM0M2fVxcdXsyMTRCNn1cXHU4NTAzXFx1ezIzNkE2fVxcdTg1MDNcXHU4NDU1XFx1ezI0OTk0fVxcdXsyNzE2NX1cXHV7MjNFMzF9XFx1ezI1NTVDfVxcdXsyM0VGQn1cXHV7MjcwNTJ9XFx1NDRGNFxcdXsyMzZFRX1cXHV7Mjk5OUR9XFx1ezI2RjI2fVxcdTY3RjlcXHUzNzMzXFx1M0MxNVxcdTNERTdcXHU1ODZDXFx1ezIxOTIyfVxcdTY4MTBcXHU0MDU3XFx1ezIzNzNGfVxcdXsyNDBFMX1cXHV7MjQwOEJ9XFx1ezI0MTBGfVxcdXsyNkMyMX1cXHU1NENCXFx1NTY5RVxcdXsyNjZCMX1cXHU1NjkyXFx1ezIwRkRGfVxcdXsyMEJBOH1cXHV7MjBFMER9XFx1OTNDNlxcdXsyOEIxM31cXHU5MzlDXFx1NEVGOFxcdTUxMkJcXHUzODE5XFx1ezI0NDM2fVxcdTRFQkNcXHV7MjA0NjV9XFx1ezIwMzdGfVxcdTRGNEJcXHU0RjhBXFx1ezI1NjUxfVxcdTVBNjhcXHV7MjAxQUJ9XFx1ezIwM0NCfVxcdTM5OTlcXHV7MjAzMEF9XFx1ezIwNDE0fVxcdTM0MzVcXHU0RjI5XFx1ezIwMkMwfVxcdXsyOEVCM31cXHV7MjAyNzV9XFx1OEFEQVxcdXsyMDIwQ31cXHU0RTk4XCJdLFxuICAgICAgW1wiOTJhMVwiLCBcIlxcdTUwQ0RcXHU1MTBEXFx1NEZBMlxcdTRGMDNcXHV7MjRBMEV9XFx1ezIzRThBfVxcdTRGNDJcXHU1MDJFXFx1NTA2Q1xcdTUwODFcXHU0RkNDXFx1NEZFNVxcdTUwNThcXHU1MEZDXFx1NTE1OVxcdTUxNUJcXHU1MTVEXFx1NTE1RVxcdTZFNzZcXHV7MjM1OTV9XFx1ezIzRTM5fVxcdXsyM0VCRn1cXHU2RDcyXFx1ezIxODg0fVxcdXsyM0U4OX1cXHU1MUE4XFx1NTFDM1xcdXsyMDVFMH1cXHU0NEREXFx1ezIwNEEzfVxcdXsyMDQ5Mn1cXHV7MjA0OTF9XFx1OEQ3QVxcdXsyOEE5Q31cXHV7MjA3MEV9XFx1NTI1OVxcdTUyQTRcXHV7MjA4NzN9XFx1NTJFMVxcdTkzNkVcXHU0NjdBXFx1NzE4Q1xcdXsyNDM4Q31cXHV7MjBDMjB9XFx1ezI0OUFDfVxcdXsyMTBFNH1cXHU2OUQxXFx1ezIwRTFEfVxcdTc0NzlcXHUzRURFXFx1NzQ5OVxcdTc0MTRcXHU3NDU2XFx1NzM5OFxcdTRCOEVcXHV7MjRBQkN9XFx1ezI0MDhEfVxcdTUzRDBcXHUzNTg0XFx1NzIwRlxcdXsyNDBDOX1cXHU1NUI0XFx1ezIwMzQ1fVxcdTU0Q0RcXHV7MjBCQzZ9XFx1NTcxRFxcdTkyNURcXHU5NkY0XFx1OTM2NlxcdTU3RERcXHU1NzhEXFx1NTc3RlxcdTM2M0VcXHU1OENCXFx1NUE5OVxcdXsyOEE0Nn1cXHV7MjE2RkF9XFx1ezIxNzZGfVxcdXsyMTcxMH1cXHU1QTJDXFx1NTlCOFxcdTkyOEZcXHU1QTdFXFx1NUFDRlxcdTVBMTJcXHV7MjU5NDZ9XFx1ezIxOUYzfVxcdXsyMTg2MX1cXHV7MjQyOTV9XFx1MzZGNVxcdTZEMDVcXHU3NDQzXFx1NUEyMVxcdXsyNUU4M31cIl0sXG4gICAgICBbXCI5MzQwXCIsIFwiXFx1NUE4MVxcdXsyOEJEN31cXHV7MjA0MTN9XFx1OTNFMFxcdTc0OENcXHV7MjEzMDN9XFx1NzEwNVxcdTQ5NzJcXHU5NDA4XFx1ezI4OUZCfVxcdTkzQkRcXHUzN0EwXFx1NUMxRVxcdTVDOUVcXHU1RTVFXFx1NUU0OFxcdXsyMTk5Nn1cXHV7MjE5N0N9XFx1ezIzQUVFfVxcdTVFQ0RcXHU1QjRGXFx1ezIxOTAzfVxcdXsyMTkwNH1cXHUzNzAxXFx1ezIxOEEwfVxcdTM2RERcXHV7MjE2RkV9XFx1MzZEM1xcdTgxMkFcXHV7MjhBNDd9XFx1ezIxREJBfVxcdXsyMzQ3Mn1cXHV7Mjg5QTh9XFx1NUYwQ1xcdTVGMEVcXHV7MjE5Mjd9XFx1ezIxN0FCfVxcdTVBNkJcXHV7MjE3M0J9XFx1NUI0NFxcdTg2MTRcXHV7Mjc1RkR9XFx1ODg2MFxcdTYwN0VcXHV7MjI4NjB9XFx1ezIyNjJCfVxcdTVGREJcXHUzRUI4XFx1ezIyNUFGfVxcdXsyMjVCRX1cXHV7MjkwODh9XFx1ezI2RjczfVxcdTYxQzBcXHV7MjAwM0V9XFx1ezIwMDQ2fVxcdXsyMjYxQn1cXHU2MTk5XFx1NjE5OFxcdTYwNzVcXHV7MjJDOUJ9XFx1ezIyRDA3fVxcdXsyNDZENH1cXHV7MjkxNER9XCJdLFxuICAgICAgW1wiOTNhMVwiLCBcIlxcdTY0NzFcXHV7MjQ2NjV9XFx1ezIyQjZBfVxcdTNBMjlcXHV7MjJCMjJ9XFx1ezIzNDUwfVxcdXsyOThFQX1cXHV7MjJFNzh9XFx1NjMzN1xcdXsyQTQ1Qn1cXHU2NEI2XFx1NjMzMVxcdTYzRDFcXHV7MjQ5RTN9XFx1ezIyRDY3fVxcdTYyQTRcXHV7MjJDQTF9XFx1NjQzQlxcdTY1NkJcXHU2OTcyXFx1M0JGNFxcdXsyMzA4RX1cXHV7MjMyQUR9XFx1ezI0OTg5fVxcdXsyMzJBQn1cXHU1NTBEXFx1ezIzMkUwfVxcdXsyMThEOX1cXHV7Mjk0M0Z9XFx1NjZDRVxcdXsyMzI4OX1cXHV7MjMxQjN9XFx1M0FFMFxcdTQxOTBcXHV7MjU1ODR9XFx1ezI4QjIyfVxcdXsyNTU4Rn1cXHV7MjE2RkN9XFx1ezI1NTVCfVxcdXsyNTQyNX1cXHU3OEVFXFx1ezIzMTAzfVxcdXsyMTgyQX1cXHV7MjMyMzR9XFx1MzQ2NFxcdXsyMzIwRn1cXHV7MjMxODJ9XFx1ezI0MkM5fVxcdTY2OEVcXHV7MjZEMjR9XFx1NjY2QlxcdTRCOTNcXHU2NjMwXFx1ezI3ODcwfVxcdXsyMURFQn1cXHU2NjYzXFx1ezIzMkQyfVxcdXsyMzJFMX1cXHU2NjFFXFx1ezI1ODcyfVxcdTM4RDFcXHV7MjM4M0F9XFx1ezIzN0JDfVxcdTNCOTlcXHV7MjM3QTJ9XFx1ezIzM0ZFfVxcdTc0RDBcXHUzQjk2XFx1Njc4RlxcdXsyNDYyQX1cXHU2OEI2XFx1NjgxRVxcdTNCQzRcXHU2QUJFXFx1Mzg2M1xcdXsyMzdENX1cXHV7MjQ0ODd9XFx1NkEzM1xcdTZBNTJcXHU2QUM5XFx1NkIwNVxcdXsyMTkxMn1cXHU2NTExXFx1Njg5OFxcdTZBNENcXHUzQkQ3XFx1NkE3QVxcdTZCNTdcXHV7MjNGQzB9XFx1ezIzQzlBfVxcdTkzQTBcXHU5MkYyXFx1ezI4QkVBfVxcdXsyOEFDQn1cIl0sXG4gICAgICBbXCI5NDQwXCIsIFwiXFx1OTI4OVxcdXsyODAxRX1cXHV7Mjg5REN9XFx1OTQ2N1xcdTZEQTVcXHU2RjBCXFx1ezI0OUVDfVxcdTZENjdcXHV7MjNGN0Z9XFx1M0Q4RlxcdTZFMDRcXHV7MjQwM0N9XFx1NUEzRFxcdTZFMEFcXHU1ODQ3XFx1NkQyNFxcdTc4NDJcXHU3MTNCXFx1ezI0MzFBfVxcdXsyNDI3Nn1cXHU3MEYxXFx1NzI1MFxcdTcyODdcXHU3Mjk0XFx1ezI0NzhGfVxcdXsyNDcyNX1cXHU1MTc5XFx1ezI0QUE0fVxcdXsyMDVFQn1cXHU3NDdBXFx1ezIzRUY4fVxcdXsyMzY1Rn1cXHV7MjRBNEF9XFx1ezI0OTE3fVxcdXsyNUZFMX1cXHUzRjA2XFx1M0VCMVxcdXsyNEFERn1cXHV7MjhDMjN9XFx1ezIzRjM1fVxcdTYwQTdcXHUzRUYzXFx1NzRDQ1xcdTc0M0NcXHU5Mzg3XFx1NzQzN1xcdTQ0OUZcXHV7MjZERUF9XFx1NDU1MVxcdTc1ODNcXHUzRjYzXFx1ezI0Q0Q5fVxcdXsyNEQwNn1cXHUzRjU4XFx1NzU1NVxcdTc2NzNcXHV7MkE1QzZ9XFx1M0IxOVxcdTc0NjhcXHV7MjhBQ0N9XFx1ezI0OUFCfVxcdXsyNDk4RX1cXHUzQUZCXCJdLFxuICAgICAgW1wiOTRhMVwiLCBcIlxcdTNEQ0RcXHV7MjRBNEV9XFx1M0VGRlxcdXsyNDlDNX1cXHV7MjQ4RjN9XFx1OTFGQVxcdTU3MzJcXHU5MzQyXFx1ezI4QUUzfVxcdXsyMTg2NH1cXHU1MERGXFx1ezI1MjIxfVxcdXsyNTFFN31cXHU3Nzc4XFx1ezIzMjMyfVxcdTc3MEVcXHU3NzBGXFx1Nzc3QlxcdXsyNDY5N31cXHV7MjM3ODF9XFx1M0E1RVxcdXsyNDhGMH1cXHU3NDM4XFx1NzQ5QlxcdTNFQkZcXHV7MjRBQkF9XFx1ezI0QUM3fVxcdTQwQzhcXHV7MjRBOTZ9XFx1ezI2MUFFfVxcdTkzMDdcXHV7MjU1ODF9XFx1NzgxRVxcdTc4OERcXHU3ODg4XFx1NzhEMlxcdTczRDBcXHU3OTU5XFx1ezI3NzQxfVxcdXsyNTZFM31cXHU0MTBFXFx1Nzk5QlxcdTg0OTZcXHU3OUE1XFx1NkEyRFxcdXsyM0VGQX1cXHU3QTNBXFx1NzlGNFxcdTQxNkVcXHV7MjE2RTZ9XFx1NDEzMlxcdTkyMzVcXHU3OUYxXFx1ezIwRDRDfVxcdXsyNDk4Q31cXHV7MjAyOTl9XFx1ezIzREJBfVxcdXsyMTc2RX1cXHUzNTk3XFx1NTU2QlxcdTM1NzBcXHUzNkFBXFx1ezIwMUQ0fVxcdXsyMEMwRH1cXHU3QUUyXFx1NUE1OVxcdXsyMjZGNX1cXHV7MjVBQUZ9XFx1ezI1QTlDfVxcdTVBMERcXHV7MjAyNUJ9XFx1NzhGMFxcdTVBMkFcXHV7MjVCQzZ9XFx1N0FGRVxcdTQxRjlcXHU3QzVEXFx1N0M2RFxcdTQyMTFcXHV7MjVCQjN9XFx1ezI1RUJDfVxcdXsyNUVBNn1cXHU3Q0NEXFx1ezI0OUY5fVxcdXsyMTdCMH1cXHU3QzhFXFx1N0M3Q1xcdTdDQUVcXHU2QUIyXFx1N0REQ1xcdTdFMDdcXHU3REQzXFx1N0Y0RVxcdXsyNjI2MX1cIl0sXG4gICAgICBbXCI5NTQwXCIsIFwiXFx1ezI2MTVDfVxcdXsyN0I0OH1cXHU3RDk3XFx1ezI1RTgyfVxcdTQyNkFcXHV7MjZCNzV9XFx1ezIwOTE2fVxcdTY3RDZcXHV7MjAwNEV9XFx1ezIzNUNGfVxcdTU3QzRcXHV7MjY0MTJ9XFx1ezI2M0Y4fVxcdXsyNDk2Mn1cXHU3RkREXFx1N0IyN1xcdXsyMDgyQ31cXHV7MjVBRTl9XFx1ezI1RDQzfVxcdTdCMENcXHV7MjVFMEV9XFx1OTlFNlxcdTg2NDVcXHU5QTYzXFx1NkExQ1xcdXsyMzQzRn1cXHUzOUUyXFx1ezI0OUY3fVxcdXsyNjVBRH1cXHU5QTFGXFx1ezI2NUEwfVxcdTg0ODBcXHV7MjcxMjd9XFx1ezI2Q0QxfVxcdTQ0RUFcXHU4MTM3XFx1NDQwMlxcdTgwQzZcXHU4MTA5XFx1ODE0MlxcdXsyNjdCNH1cXHU5OEMzXFx1ezI2QTQyfVxcdTgyNjJcXHU4MjY1XFx1ezI2QTUxfVxcdTg0NTNcXHV7MjZEQTd9XFx1ODYxMFxcdXsyNzIxQn1cXHU1QTg2XFx1NDE3RlxcdXsyMTg0MH1cXHU1QjJCXFx1ezIxOEExfVxcdTVBRTRcXHV7MjE4RDh9XFx1ODZBMFxcdXsyRjlCQ31cXHV7MjNEOEZ9XFx1ODgyRFxcdXsyNzQyMn1cXHU1QTAyXCJdLFxuICAgICAgW1wiOTVhMVwiLCBcIlxcdTg4NkVcXHU0RjQ1XFx1ODg4N1xcdTg4QkZcXHU4OEU2XFx1ODk2NVxcdTg5NERcXHV7MjU2ODN9XFx1ODk1NFxcdXsyNzc4NX1cXHV7Mjc3ODR9XFx1ezI4QkY1fVxcdXsyOEJEOX1cXHV7MjhCOUN9XFx1ezI4OUY5fVxcdTNFQURcXHU4NEEzXFx1NDZGNVxcdTQ2Q0ZcXHUzN0YyXFx1OEEzRFxcdThBMUNcXHV7Mjk0NDh9XFx1NUY0RFxcdTkyMkJcXHV7MjQyODR9XFx1NjVENFxcdTcxMjlcXHU3MEM0XFx1ezIxODQ1fVxcdTlENkRcXHU4QzlGXFx1OENFOVxcdXsyN0REQ31cXHU1OTlBXFx1NzdDM1xcdTU5RjBcXHU0MzZFXFx1MzZENFxcdThFMkFcXHU4RUE3XFx1ezI0QzA5fVxcdThGMzBcXHU4RjRBXFx1NDJGNFxcdTZDNThcXHU2RkJCXFx1ezIyMzIxfVxcdTQ4OUJcXHU2Rjc5XFx1NkU4QlxcdXsyMTdEQX1cXHU5QkU5XFx1MzZCNVxcdXsyNDkyRn1cXHU5MEJCXFx1OTA5N1xcdTU1NzFcXHU0OTA2XFx1OTFCQlxcdTk0MDRcXHV7MjhBNEJ9XFx1NDA2MlxcdXsyOEFGQ31cXHU5NDI3XFx1ezI4QzFEfVxcdXsyOEMzQn1cXHU4NEU1XFx1OEEyQlxcdTk1OTlcXHU5NUE3XFx1OTU5N1xcdTk1OTZcXHV7MjhEMzR9XFx1NzQ0NVxcdTNFQzJcXHV7MjQ4RkZ9XFx1ezI0QTQyfVxcdXsyNDNFQX1cXHUzRUU3XFx1ezIzMjI1fVxcdTk2OEZcXHV7MjhFRTd9XFx1ezI4RTY2fVxcdXsyOEU2NX1cXHUzRUNDXFx1ezI0OUVEfVxcdXsyNEE3OH1cXHV7MjNGRUV9XFx1NzQxMlxcdTc0NkJcXHUzRUZDXFx1OTc0MVxcdXsyOTBCMH1cIl0sXG4gICAgICBbXCI5NjQwXCIsIFwiXFx1Njg0N1xcdTRBMURcXHV7MjkwOTN9XFx1ezI1N0RGfVxcdTk3NURcXHU5MzY4XFx1ezI4OTg5fVxcdXsyOEMyNn1cXHV7MjhCMkZ9XFx1ezI2M0JFfVxcdTkyQkFcXHU1QjExXFx1OEI2OVxcdTQ5M0NcXHU3M0Y5XFx1ezI0MjFCfVxcdTk3OUJcXHU5NzcxXFx1OTkzOFxcdXsyMEYyNn1cXHU1REMxXFx1ezI4QkM1fVxcdXsyNEFCMn1cXHU5ODFGXFx1ezI5NERBfVxcdTkyRjZcXHV7Mjk1RDd9XFx1OTFFNVxcdTQ0QzBcXHV7MjhCNTB9XFx1ezI0QTY3fVxcdXsyOEI2NH1cXHU5OERDXFx1ezI4QTQ1fVxcdTNGMDBcXHU5MjJBXFx1NDkyNVxcdTg0MTRcXHU5OTNCXFx1OTk0RFxcdXsyN0IwNn1cXHUzREZEXFx1OTk5QlxcdTRCNkZcXHU5OUFBXFx1OUE1Q1xcdXsyOEI2NX1cXHV7MjU4Qzh9XFx1NkE4RlxcdTlBMjFcXHU1QUZFXFx1OUEyRlxcdXsyOThGMX1cXHU0QjkwXFx1ezI5OTQ4fVxcdTk5QkNcXHU0QkJEXFx1NEI5N1xcdTkzN0RcXHU1ODcyXFx1ezIxMzAyfVxcdTU4MjJcXHV7MjQ5Qjh9XCJdLFxuICAgICAgW1wiOTZhMVwiLCBcIlxcdXsyMTRFOH1cXHU3ODQ0XFx1ezIyNzFGfVxcdXsyM0RCOH1cXHU2OEM1XFx1M0Q3RFxcdTk0NThcXHUzOTI3XFx1NjE1MFxcdXsyMjc4MX1cXHV7MjI5NkJ9XFx1NjEwN1xcdTlDNEZcXHU5QzUzXFx1OUM3QlxcdTlDMzVcXHU5QzEwXFx1OUI3RlxcdTlCQ0ZcXHV7MjlFMkR9XFx1OUI5RlxcdXsyQTFGNX1cXHV7MkEwRkV9XFx1OUQyMVxcdTRDQUVcXHV7MjQxMDR9XFx1OUUxOFxcdTRDQjBcXHU5RDBDXFx1ezJBMUI0fVxcdXsyQTBFRH1cXHV7MkEwRjN9XFx1ezI5OTJGfVxcdTlEQTVcXHU4NEJEXFx1ezI2RTEyfVxcdXsyNkZERn1cXHV7MjZCODJ9XFx1ODVGQ1xcdTQ1MzNcXHV7MjZEQTR9XFx1ezI2RTg0fVxcdXsyNkRGMH1cXHU4NDIwXFx1ODVFRVxcdXsyNkUwMH1cXHV7MjM3RDd9XFx1ezI2MDY0fVxcdTc5RTJcXHV7MjM1OUN9XFx1ezIzNjQwfVxcdTQ5MkRcXHV7MjQ5REV9XFx1M0Q2MlxcdTkzREJcXHU5MkJFXFx1OTM0OFxcdXsyMDJCRn1cXHU3OEI5XFx1OTI3N1xcdTk0NERcXHU0RkU0XFx1MzQ0MFxcdTkwNjRcXHV7MjU1NUR9XFx1NzgzRFxcdTc4NTRcXHU3OEI2XFx1Nzg0QlxcdXsyMTc1N31cXHV7MjMxQzl9XFx1ezI0OTQxfVxcdTM2OUFcXHU0RjcyXFx1NkZEQVxcdTZGRDlcXHU3MDFFXFx1NzAxRVxcdTU0MTRcXHV7MjQxQjV9XFx1NTdCQlxcdTU4RjNcXHU1NzhBXFx1OUQxNlxcdTU3RDdcXHU3MTM0XFx1MzRBRlxcdXsyNDFBQ31cXHU3MUVCXFx1ezI2QzQwfVxcdXsyNEY5N31cXHU1QjI4XFx1ezIxN0I1fVxcdXsyOEE0OX1cIl0sXG4gICAgICBbXCI5NzQwXCIsIFwiXFx1NjEwQ1xcdTVBQ0VcXHU1QTBCXFx1NDJCQ1xcdXsyNDQ4OH1cXHUzNzJDXFx1NEI3QlxcdXsyODlGQ31cXHU5M0JCXFx1OTNCOFxcdXsyMThENn1cXHV7MjBGMUR9XFx1ODQ3MlxcdXsyNkNDMH1cXHV7MjE0MTN9XFx1ezI0MkZBfVxcdXsyMkMyNn1cXHV7MjQzQzF9XFx1NTk5NFxcdXsyM0RCN31cXHV7MjY3NDF9XFx1N0RBOFxcdXsyNjE1Qn1cXHV7MjYwQTR9XFx1ezI0OUI5fVxcdXsyNDk4Qn1cXHV7Mjg5RkF9XFx1OTJFNVxcdTczRTJcXHUzRUU5XFx1NzRCNFxcdXsyOEI2M31cXHV7MjE4OUZ9XFx1M0VFMVxcdXsyNEFCM31cXHU2QUQ4XFx1NzNGM1xcdTczRkJcXHUzRUQ2XFx1ezI0QTNFfVxcdXsyNEE5NH1cXHV7MjE3RDl9XFx1ezI0QTY2fVxcdXsyMDNBN31cXHV7MjE0MjR9XFx1ezI0OUU1fVxcdTc0NDhcXHV7MjQ5MTZ9XFx1NzBBNVxcdXsyNDk3Nn1cXHU5Mjg0XFx1NzNFNlxcdTkzNUZcXHV7MjA0RkV9XFx1OTMzMVxcdXsyOEFDRX1cXHV7MjhBMTZ9XFx1OTM4NlxcdXsyOEJFN31cXHV7MjU1RDV9XFx1NDkzNVxcdXsyOEE4Mn1cXHU3MTZCXCJdLFxuICAgICAgW1wiOTdhMVwiLCBcIlxcdXsyNDk0M31cXHV7MjBDRkZ9XFx1NTZBNFxcdXsyMDYxQX1cXHV7MjBCRUJ9XFx1ezIwQ0I4fVxcdTU1MDJcXHU3OUM0XFx1ezIxN0ZBfVxcdTdERkVcXHV7MjE2QzJ9XFx1ezI0QTUwfVxcdXsyMTg1Mn1cXHU0NTJFXFx1OTQwMVxcdTM3MEFcXHV7MjhBQzB9XFx1ezI0OUFEfVxcdTU5QjBcXHV7MjE4QkZ9XFx1ezIxODgzfVxcdXsyNzQ4NH1cXHU1QUExXFx1MzZFMlxcdXsyM0Q1Qn1cXHUzNkIwXFx1OTI1RlxcdTVBNzlcXHV7MjhBODF9XFx1ezIxODYyfVxcdTkzNzRcXHUzQ0NEXFx1ezIwQUI0fVxcdTRBOTZcXHUzOThBXFx1NTBGNFxcdTNENjlcXHUzRDRDXFx1ezIxMzlDfVxcdTcxNzVcXHU0MkZCXFx1ezI4MjE4fVxcdTZFMEZcXHV7MjkwRTR9XFx1NDRFQlxcdTZENTdcXHV7MjdFNEZ9XFx1NzA2N1xcdTZDQUZcXHUzQ0Q2XFx1ezIzRkVEfVxcdXsyM0UyRH1cXHU2RTAyXFx1NkYwQ1xcdTNENkZcXHV7MjAzRjV9XFx1NzU1MVxcdTM2QkNcXHUzNEM4XFx1NDY4MFxcdTNFREFcXHU0ODcxXFx1NTlDNFxcdTkyNkVcXHU0OTNFXFx1OEY0MVxcdXsyOEMxQ31cXHV7MjZCQzB9XFx1NTgxMlxcdTU3QzhcXHUzNkQ2XFx1ezIxNDUyfVxcdTcwRkVcXHV7MjQzNjJ9XFx1ezI0QTcxfVxcdXsyMkZFM31cXHV7MjEyQjB9XFx1ezIyM0JEfVxcdTY4QjlcXHU2OTY3XFx1ezIxMzk4fVxcdXsyMzRFNX1cXHV7MjdCRjR9XFx1ezIzNkRGfVxcdXsyOEE4M31cXHV7MjM3RDZ9XFx1ezIzM0ZBfVxcdXsyNEM5Rn1cXHU2QTFBXFx1ezIzNkFEfVxcdXsyNkNCN31cXHU4NDNFXFx1NDRERlxcdTQ0Q0VcIl0sXG4gICAgICBbXCI5ODQwXCIsIFwiXFx1ezI2RDI2fVxcdXsyNkQ1MX1cXHV7MjZDODJ9XFx1ezI2RkRFfVxcdTZGMTdcXHV7MjcxMDl9XFx1ODMzRFxcdXsyMTczQX1cXHU4M0VEXFx1ezI2QzgwfVxcdXsyNzA1M31cXHV7MjE3REJ9XFx1NTk4OVxcdTVBODJcXHV7MjE3QjN9XFx1NUE2MVxcdTVBNzFcXHV7MjE5MDV9XFx1ezI0MUZDfVxcdTM3MkRcXHU1OUVGXFx1ezIxNzNDfVxcdTM2QzdcXHU3MThFXFx1OTM5MFxcdTY2OUFcXHV7MjQyQTV9XFx1NUE2RVxcdTVBMkJcXHV7MjQyOTN9XFx1NkEyQlxcdXsyM0VGOX1cXHV7Mjc3MzZ9XFx1ezI0NDVCfVxcdXsyNDJDQX1cXHU3MTFEXFx1ezI0MjU5fVxcdXsyODlFMX1cXHU0RkIwXFx1ezI2RDI4fVxcdTVDQzJcXHV7MjQ0Q0V9XFx1ezI3RTREfVxcdXsyNDNCRH1cXHU2QTBDXFx1ezI0MjU2fVxcdXsyMTMwNH1cXHU3MEE2XFx1NzEzM1xcdXsyNDNFOX1cXHUzREE1XFx1NkNERlxcdXsyRjgyNX1cXHV7MjRBNEZ9XFx1N0U2NVxcdTU5RUJcXHU1RDJGXFx1M0RGM1xcdTVGNUNcXHV7MjRBNUR9XFx1ezIxN0RGfVxcdTdEQTRcXHU4NDI2XCJdLFxuICAgICAgW1wiOThhMVwiLCBcIlxcdTU0ODVcXHV7MjNBRkF9XFx1ezIzMzAwfVxcdXsyMDIxNH1cXHU1NzdFXFx1ezIwOEQ1fVxcdXsyMDYxOX1cXHUzRkU1XFx1ezIxRjlFfVxcdXsyQTJCNn1cXHU3MDAzXFx1ezI5MTVCfVxcdTVENzBcXHU3MzhGXFx1N0NEM1xcdXsyOEE1OX1cXHV7Mjk0MjB9XFx1NEZDOFxcdTdGRTdcXHU3MkNEXFx1NzMxMFxcdXsyN0FGNH1cXHU3MzM4XFx1NzMzOVxcdXsyNTZGNn1cXHU3MzQxXFx1NzM0OFxcdTNFQTlcXHV7MjdCMTh9XFx1OTA2Q1xcdTcxRjVcXHV7MjQ4RjJ9XFx1NzNFMVxcdTgxRjZcXHUzRUNBXFx1NzcwQ1xcdTNFRDFcXHU2Q0EyXFx1NTZGRFxcdTc0MTlcXHU3NDFFXFx1NzQxRlxcdTNFRTJcXHUzRUYwXFx1M0VGNFxcdTNFRkFcXHU3NEQzXFx1M0YwRVxcdTNGNTNcXHU3NTQyXFx1NzU2RFxcdTc1NzJcXHU3NThEXFx1M0Y3Q1xcdTc1QzhcXHU3NURDXFx1M0ZDMFxcdTc2NERcXHUzRkQ3XFx1NzY3NFxcdTNGRENcXHU3NjdBXFx1ezI0RjVDfVxcdTcxODhcXHU1NjIzXFx1ODk4MFxcdTU4NjlcXHU0MDFEXFx1Nzc0M1xcdTQwMzlcXHU2NzYxXFx1NDA0NVxcdTM1REJcXHU3Nzk4XFx1NDA2QVxcdTQwNkZcXHU1QzVFXFx1NzdCRVxcdTc3Q0JcXHU1OEYyXFx1NzgxOFxcdTcwQjlcXHU3ODFDXFx1NDBBOFxcdTc4MzlcXHU3ODQ3XFx1Nzg1MVxcdTc4NjZcXHU4NDQ4XFx1ezI1NTM1fVxcdTc5MzNcXHU2ODAzXFx1NzkzMlxcdTQxMDNcIl0sXG4gICAgICBbXCI5OTQwXCIsIFwiXFx1NDEwOVxcdTc5OTFcXHU3OTk5XFx1OEZCQlxcdTdBMDZcXHU4RkJDXFx1NDE2N1xcdTdBOTFcXHU0MUIyXFx1N0FCQ1xcdTgyNzlcXHU0MUM0XFx1N0FDRlxcdTdBREJcXHU0MUNGXFx1NEUyMVxcdTdCNjJcXHU3QjZDXFx1N0I3QlxcdTdDMTJcXHU3QzFCXFx1NDI2MFxcdTQyN0FcXHU3QzdCXFx1N0M5Q1xcdTQyOENcXHU3Q0I4XFx1NDI5NFxcdTdDRURcXHU4RjkzXFx1NzBDMFxcdXsyMENDRn1cXHU3RENGXFx1N0RENFxcdTdERDBcXHU3REZEXFx1N0ZBRVxcdTdGQjRcXHU3MjlGXFx1NDM5N1xcdTgwMjBcXHU4MDI1XFx1N0IzOVxcdTgwMkVcXHU4MDMxXFx1ODA1NFxcdTNEQ0NcXHU1N0I0XFx1NzBBMFxcdTgwQjdcXHU4MEU5XFx1NDNFRFxcdTgxMENcXHU3MzJBXFx1ODEwRVxcdTgxMTJcXHU3NTYwXFx1ODExNFxcdTQ0MDFcXHUzQjM5XFx1ODE1NlxcdTgxNTlcXHU4MTVBXCJdLFxuICAgICAgW1wiOTlhMVwiLCBcIlxcdTQ0MTNcXHU1ODNBXFx1ODE3Q1xcdTgxODRcXHU0NDI1XFx1ODE5M1xcdTQ0MkRcXHU4MUE1XFx1NTdFRlxcdTgxQzFcXHU4MUU0XFx1ODI1NFxcdTQ0OEZcXHU4MkE2XFx1ODI3NlxcdTgyQ0FcXHU4MkQ4XFx1ODJGRlxcdTQ0QjBcXHU4MzU3XFx1OTY2OVxcdTY5OEFcXHU4NDA1XFx1NzBGNVxcdTg0NjRcXHU2MEUzXFx1ODQ4OFxcdTQ1MDRcXHU4NEJFXFx1ODRFMVxcdTg0RjhcXHU4NTEwXFx1ODUzOFxcdTg1NTJcXHU0NTNCXFx1ODU2RlxcdTg1NzBcXHU4NUUwXFx1NDU3N1xcdTg2NzJcXHU4NjkyXFx1ODZCMlxcdTg2RUZcXHU5NjQ1XFx1ODc4QlxcdTQ2MDZcXHU0NjE3XFx1ODhBRVxcdTg4RkZcXHU4OTI0XFx1ODk0N1xcdTg5OTFcXHV7Mjc5Njd9XFx1OEEyOVxcdThBMzhcXHU4QTk0XFx1OEFCNFxcdThDNTFcXHU4Q0Q0XFx1OENGMlxcdThEMUNcXHU0Nzk4XFx1NTg1RlxcdThEQzNcXHU0N0VEXFx1NEVFRVxcdThFM0FcXHU1NUQ4XFx1NTc1NFxcdThFNzFcXHU1NUY1XFx1OEVCMFxcdTQ4MzdcXHU4RUNFXFx1OEVFMlxcdThFRTRcXHU4RUVEXFx1OEVGMlxcdThGQjdcXHU4RkMxXFx1OEZDQVxcdThGQ0NcXHU5MDMzXFx1OTlDNFxcdTQ4QURcXHU5OEUwXFx1OTIxM1xcdTQ5MUVcXHU5MjI4XFx1OTI1OFxcdTkyNkJcXHU5MkIxXFx1OTJBRVxcdTkyQkZcIl0sXG4gICAgICBbXCI5YTQwXCIsIFwiXFx1OTJFM1xcdTkyRUJcXHU5MkYzXFx1OTJGNFxcdTkyRkRcXHU5MzQzXFx1OTM4NFxcdTkzQURcXHU0OTQ1XFx1NDk1MVxcdTlFQkZcXHU5NDE3XFx1NTMwMVxcdTk0MURcXHU5NDJEXFx1OTQzRVxcdTQ5NkFcXHU5NDU0XFx1OTQ3OVxcdTk1MkRcXHU5NUEyXFx1NDlBN1xcdTk1RjRcXHU5NjMzXFx1NDlFNVxcdTY3QTBcXHU0QTI0XFx1OTc0MFxcdTRBMzVcXHU5N0IyXFx1OTdDMlxcdTU2NTRcXHU0QUU0XFx1NjBFOFxcdTk4QjlcXHU0QjE5XFx1OThGMVxcdTU4NDRcXHU5OTBFXFx1OTkxOVxcdTUxQjRcXHU5OTFDXFx1OTkzN1xcdTk5NDJcXHU5OTVEXFx1OTk2MlxcdTRCNzBcXHU5OUM1XFx1NEI5RFxcdTlBM0NcXHU5QjBGXFx1N0E4M1xcdTlCNjlcXHU5QjgxXFx1OUJERFxcdTlCRjFcXHU5QkY0XFx1NEM2RFxcdTlDMjBcXHUzNzZGXFx1ezIxQkMyfVxcdTlENDlcXHU5QzNBXCJdLFxuICAgICAgW1wiOWFhMVwiLCBcIlxcdTlFRkVcXHU1NjUwXFx1OUQ5M1xcdTlEQkRcXHU5REMwXFx1OURGQ1xcdTk0RjZcXHU4RkI2XFx1OUU3QlxcdTlFQUNcXHU5RUIxXFx1OUVCRFxcdTlFQzZcXHU5NERDXFx1OUVFMlxcdTlFRjFcXHU5RUY4XFx1N0FDOFxcdTlGNDRcXHV7MjAwOTR9XFx1ezIwMkI3fVxcdXsyMDNBMH1cXHU2OTFBXFx1OTRDM1xcdTU5QUNcXHV7MjA0RDd9XFx1NTg0MFxcdTk0QzFcXHUzN0I5XFx1ezIwNUQ1fVxcdXsyMDYxNX1cXHV7MjA2NzZ9XFx1ezIxNkJBfVxcdTU3NTdcXHU3MTczXFx1ezIwQUMyfVxcdXsyMEFDRH1cXHV7MjBCQkZ9XFx1NTQ2QVxcdXsyRjgzQn1cXHV7MjBCQ0J9XFx1NTQ5RVxcdXsyMEJGQn1cXHV7MjBDM0J9XFx1ezIwQzUzfVxcdXsyMEM2NX1cXHV7MjBDN0N9XFx1NjBFN1xcdXsyMEM4RH1cXHU1NjdBXFx1ezIwQ0I1fVxcdXsyMENERH1cXHV7MjBDRUR9XFx1ezIwRDZGfVxcdXsyMERCMn1cXHV7MjBEQzh9XFx1Njk1NVxcdTlDMkZcXHU4N0E1XFx1ezIwRTA0fVxcdXsyMEUwRX1cXHV7MjBFRDd9XFx1ezIwRjkwfVxcdXsyMEYyRH1cXHV7MjBFNzN9XFx1NUMyMFxcdXsyMEZCQ31cXHU1RTBCXFx1ezIxMDVDfVxcdXsyMTA0Rn1cXHV7MjEwNzZ9XFx1NjcxRVxcdXsyMTA3Qn1cXHV7MjEwODh9XFx1ezIxMDk2fVxcdTM2NDdcXHV7MjEwQkZ9XFx1ezIxMEQzfVxcdXsyMTEyRn1cXHV7MjExM0J9XFx1NTM2NFxcdTg0QURcXHV7MjEyRTN9XFx1ezIxMzc1fVxcdXsyMTMzNn1cXHU4QjgxXFx1ezIxNTc3fVxcdXsyMTYxOX1cXHV7MjE3QzN9XFx1ezIxN0M3fVxcdTRFNzhcXHU3MEJCXFx1ezIxODJEfVxcdXsyMTk2QX1cIl0sXG4gICAgICBbXCI5YjQwXCIsIFwiXFx1ezIxQTJEfVxcdXsyMUE0NX1cXHV7MjFDMkF9XFx1ezIxQzcwfVxcdXsyMUNBQ31cXHV7MjFFQzh9XFx1NjJDM1xcdXsyMUVENX1cXHV7MjFGMTV9XFx1NzE5OFxcdTY4NTVcXHV7MjIwNDV9XFx1NjlFOVxcdTM2QzhcXHV7MjIyN0N9XFx1ezIyM0Q3fVxcdXsyMjNGQX1cXHV7MjI3MkF9XFx1ezIyODcxfVxcdXsyMjk0Rn1cXHU4MkZEXFx1ezIyOTY3fVxcdXsyMjk5M31cXHV7MjJBRDV9XFx1ODlBNVxcdXsyMkFFOH1cXHU4RkEwXFx1ezIyQjBFfVxcdTk3QjhcXHV7MjJCM0Z9XFx1OTg0N1xcdTlBQkRcXHV7MjJDNEN9XCJdLFxuICAgICAgW1wiOWI2MlwiLCBcIlxcdXsyMkM4OH1cXHV7MjJDQjd9XFx1ezI1QkU4fVxcdXsyMkQwOH1cXHV7MjJEMTJ9XFx1ezIyREI3fVxcdXsyMkQ5NX1cXHV7MjJFNDJ9XFx1ezIyRjc0fVxcdXsyMkZDQ31cXHV7MjMwMzN9XFx1ezIzMDY2fVxcdXsyMzMxRn1cXHV7MjMzREV9XFx1NUZCMVxcdTY2NDhcXHU2NkJGXFx1ezI3QTc5fVxcdXsyMzU2N31cXHV7MjM1RjN9XFx1NzIwMVxcdXsyNDlCQX1cXHU3N0Q3XFx1ezIzNjFBfVxcdXsyMzcxNn1cXHU3RTg3XFx1ezIwMzQ2fVxcdTU4QjVcXHU2NzBFXCJdLFxuICAgICAgW1wiOWJhMVwiLCBcIlxcdTY5MThcXHV7MjNBQTd9XFx1ezI3NjU3fVxcdXsyNUZFMn1cXHV7MjNFMTF9XFx1ezIzRUI5fVxcdXsyNzVGRX1cXHV7MjIwOUF9XFx1NDhEMFxcdTRBQjhcXHV7MjQxMTl9XFx1ezI4QTlBfVxcdXsyNDJFRX1cXHV7MjQzMER9XFx1ezI0MDNCfVxcdXsyNDMzNH1cXHV7MjQzOTZ9XFx1ezI0QTQ1fVxcdXsyMDVDQX1cXHU1MUQyXFx1ezIwNjExfVxcdTU5OUZcXHV7MjFFQTh9XFx1M0JCRVxcdXsyM0NGRn1cXHV7MjQ0MDR9XFx1ezI0NEQ2fVxcdTU3ODhcXHV7MjQ2NzR9XFx1Mzk5QlxcdXsyNDcyRn1cXHV7Mjg1RTh9XFx1ezI5OUM5fVxcdTM3NjJcXHV7MjIxQzN9XFx1OEI1RVxcdXsyOEI0RX1cXHU5OUQ2XFx1ezI0ODEyfVxcdXsyNDhGQn1cXHV7MjRBMTV9XFx1NzIwOVxcdXsyNEFDMH1cXHV7MjBDNzh9XFx1NTk2NVxcdXsyNEVBNX1cXHV7MjRGODZ9XFx1ezIwNzc5fVxcdThFREFcXHV7MjUwMkN9XFx1NTI4RlxcdTU3M0ZcXHU3MTcxXFx1ezI1Mjk5fVxcdXsyNTQxOX1cXHV7MjNGNEF9XFx1ezI0QUE3fVxcdTU1QkNcXHV7MjU0NDZ9XFx1ezI1NDZFfVxcdXsyNkI1Mn1cXHU5MUQ0XFx1MzQ3M1xcdXsyNTUzRn1cXHV7Mjc2MzJ9XFx1ezI1NTVFfVxcdTQ3MThcXHV7MjU1NjJ9XFx1ezI1NTY2fVxcdXsyNTdDN31cXHV7MjQ5M0Z9XFx1ezI1ODVEfVxcdTUwNjZcXHUzNEZCXFx1ezIzM0NDfVxcdTYwREVcXHV7MjU5MDN9XFx1NDc3Q1xcdXsyODk0OH1cXHV7MjVBQUV9XFx1ezI1Qjg5fVxcdXsyNUMwNn1cXHV7MjFEOTB9XFx1NTdBMVxcdTcxNTFcXHU2RkI2XFx1ezI2MTAyfVxcdXsyN0MxMn1cXHU5MDU2XFx1ezI2MUIyfVxcdXsyNEY5QX1cXHU4QjYyXFx1ezI2NDAyfVxcdXsyNjQ0QX1cIl0sXG4gICAgICBbXCI5YzQwXCIsIFwiXFx1NUQ1QlxcdXsyNkJGN31cXHU4RjM2XFx1ezI2NDg0fVxcdXsyMTkxQ31cXHU4QUVBXFx1ezI0OUY2fVxcdXsyNjQ4OH1cXHV7MjNGRUZ9XFx1ezI2NTEyfVxcdTRCQzBcXHV7MjY1QkZ9XFx1ezI2NkI1fVxcdXsyMjcxQn1cXHU5NDY1XFx1ezI1N0UxfVxcdTYxOTVcXHU1QTI3XFx1ezJGOENEfVxcdTRGQkJcXHU1NkI5XFx1ezI0NTIxfVxcdXsyNjZGQ31cXHU0RTZBXFx1ezI0OTM0fVxcdTk2NTZcXHU2RDhGXFx1ezI2Q0JEfVxcdTM2MThcXHU4OTc3XFx1ezI2Nzk5fVxcdXsyNjg2RX1cXHV7MjY0MTF9XFx1ezI2ODVFfVxcdTcxREZcXHV7MjY4Qzd9XFx1N0I0MlxcdXsyOTBDMH1cXHV7MjBBMTF9XFx1ezI2OTI2fVxcdTkxMDRcXHV7MjY5Mzl9XFx1N0E0NVxcdTlERjBcXHV7MjY5RkF9XFx1OUEyNlxcdXsyNkEyRH1cXHUzNjVGXFx1ezI2NDY5fVxcdXsyMDAyMX1cXHU3OTgzXFx1ezI2QTM0fVxcdXsyNkI1Qn1cXHU1RDJDXFx1ezIzNTE5fVxcdTgzQ0ZcXHV7MjZCOUR9XFx1NDZEMFxcdXsyNkNBNH1cXHU3NTNCXFx1ODg2NVxcdXsyNkRBRX1cXHU1OEI2XCJdLFxuICAgICAgW1wiOWNhMVwiLCBcIlxcdTM3MUNcXHV7MjI1OER9XFx1ezI3MDRCfVxcdXsyNzFDRH1cXHUzQzU0XFx1ezI3MjgwfVxcdXsyNzI4NX1cXHU5MjgxXFx1ezIyMTdBfVxcdXsyNzI4Qn1cXHU5MzMwXFx1ezI3MkU2fVxcdXsyNDlEMH1cXHU2QzM5XFx1OTQ5RlxcdXsyNzQ1MH1cXHV7MjBFRjh9XFx1ODgyN1xcdTg4RjVcXHV7MjI5MjZ9XFx1ezI4NDczfVxcdXsyMTdCMX1cXHU2RUI4XFx1ezI0QTJBfVxcdXsyMTgyMH1cXHUzOUE0XFx1MzZCOVxcdTVDMTBcXHU3OUUzXFx1NDUzRlxcdTY2QjZcXHV7MjlDQUR9XFx1ezI5OEE0fVxcdTg5NDNcXHV7Mjc3Q0N9XFx1ezI3ODU4fVxcdTU2RDZcXHU0MERGXFx1ezIxNjBBfVxcdTM5QTFcXHV7MjM3MkZ9XFx1ezI4MEU4fVxcdXsyMTNDNX1cXHU3MUFEXFx1ODM2NlxcdXsyNzlERH1cXHV7MjkxQTh9XFx1NUE2N1xcdTRDQjdcXHV7MjcwQUZ9XFx1ezI4OUFCfVxcdXsyNzlGRH1cXHV7MjdBMEF9XFx1ezI3QjBCfVxcdXsyN0Q2Nn1cXHV7MjQxN0F9XFx1N0I0M1xcdTc5N0VcXHV7MjgwMDl9XFx1NkZCNVxcdXsyQTJERn1cXHU2QTAzXFx1ezI4MzE4fVxcdTUzQTJcXHV7MjZFMDd9XFx1OTNCRlxcdTY4MzZcXHU5NzVEXFx1ezI4MTZGfVxcdXsyODAyM31cXHV7MjY5QjV9XFx1ezIxM0VEfVxcdXsyMzIyRn1cXHV7MjgwNDh9XFx1NUQ4NVxcdXsyOEMzMH1cXHV7MjgwODN9XFx1NTcxNVxcdTk4MjNcXHV7Mjg5NDl9XFx1NURBQlxcdXsyNDk4OH1cXHU2NUJFXFx1NjlENVxcdTUzRDJcXHV7MjRBQTV9XFx1ezIzRjgxfVxcdTNDMTFcXHU2NzM2XFx1ezI4MDkwfVxcdXsyODBGNH1cXHV7MjgxMkV9XFx1ezIxRkExfVxcdXsyODE0Rn1cIl0sXG4gICAgICBbXCI5ZDQwXCIsIFwiXFx1ezI4MTg5fVxcdXsyODFBRn1cXHV7MjgyMUF9XFx1ezI4MzA2fVxcdXsyODMyRn1cXHV7MjgzOEF9XFx1MzVDQVxcdXsyODQ2OH1cXHV7Mjg2QUF9XFx1NDhGQVxcdTYzRTZcXHV7Mjg5NTZ9XFx1NzgwOFxcdTkyNTVcXHV7Mjg5Qjh9XFx1NDNGMlxcdXsyODlFN31cXHU0M0RGXFx1ezI4OUU4fVxcdXsyOEI0Nn1cXHV7MjhCRDR9XFx1NTlGOFxcdXsyOEMwOX1cXHU4RjBCXFx1ezI4RkM1fVxcdXsyOTBFQ31cXHU3QjUxXFx1ezI5MTEwfVxcdXsyOTEzQ31cXHUzREY3XFx1ezI5MTVFfVxcdXsyNEFDQX1cXHU4RkQwXFx1NzI4RlxcdTU2OEJcXHV7Mjk0RTd9XFx1ezI5NUU5fVxcdXsyOTVCMH1cXHV7Mjk1Qjh9XFx1ezI5NzMyfVxcdXsyOThEMX1cXHV7Mjk5NDl9XFx1ezI5OTZBfVxcdXsyOTlDM31cXHV7MjlBMjh9XFx1ezI5QjBFfVxcdXsyOUQ1QX1cXHV7MjlEOUJ9XFx1N0U5RlxcdXsyOUVGOH1cXHV7MjlGMjN9XFx1NENBNFxcdTk1NDdcXHV7MkEyOTN9XFx1NzFBMlxcdXsyQTJGRn1cXHU0RDkxXFx1OTAxMlxcdXsyQTVDQn1cXHU0RDlDXFx1ezIwQzlDfVxcdThGQkVcXHU1NUMxXCJdLFxuICAgICAgW1wiOWRhMVwiLCBcIlxcdThGQkFcXHV7MjI0QjB9XFx1OEZCOVxcdXsyNEE5M31cXHU0NTA5XFx1N0U3RlxcdTZGNTZcXHU2QUIxXFx1NEVFQVxcdTM0RTRcXHV7MjhCMkN9XFx1ezI3ODlEfVxcdTM3M0FcXHU4RTgwXFx1ezIxN0Y1fVxcdXsyODAyNH1cXHV7MjhCNkN9XFx1ezI4Qjk5fVxcdXsyN0EzRX1cXHV7MjY2QUZ9XFx1M0RFQlxcdXsyNzY1NX1cXHV7MjNDQjd9XFx1ezI1NjM1fVxcdXsyNTk1Nn1cXHU0RTlBXFx1ezI1RTgxfVxcdXsyNjI1OH1cXHU1NkJGXFx1ezIwRTZEfVxcdThFMEVcXHU1QjZEXFx1ezIzRTg4fVxcdXsyNEM5RX1cXHU2M0RFXFx1NjJEMFxcdXsyMTdGNn1cXHV7MjE4N0J9XFx1NjUzMFxcdTU2MkRcXHV7MjVDNEF9XFx1NTQxQVxcdXsyNTMxMX1cXHUzREM2XFx1ezI5RDk4fVxcdTRDN0RcXHU1NjIyXFx1NTYxRVxcdTdGNDlcXHV7MjVFRDh9XFx1NTk3NVxcdXsyM0Q0MH1cXHU4NzcwXFx1NEUxQ1xcdXsyMEZFQX1cXHV7MjBENDl9XFx1ezIzNkJBfVxcdTgxMTdcXHU5RDVFXFx1OEQxOFxcdTc2M0JcXHU5QzQ1XFx1NzY0RVxcdTc3QjlcXHU5MzQ1XFx1NTQzMlxcdTgxNDhcXHU4MkY3XFx1NTYyNVxcdTgxMzJcXHU4NDE4XFx1ODBCRFxcdTU1RUFcXHU3OTYyXFx1NTY0M1xcdTU0MTZcXHV7MjBFOUR9XFx1MzVDRVxcdTU2MDVcXHU1NUYxXFx1NjZGMVxcdXsyODJFMn1cXHUzNjJEXFx1NzUzNFxcdTU1RjBcXHU1NUJBXFx1NTQ5N1xcdTU1NzJcXHV7MjBDNDF9XFx1ezIwQzk2fVxcdTVFRDBcXHV7MjUxNDh9XFx1ezIwRTc2fVxcdXsyMkM2Mn1cIl0sXG4gICAgICBbXCI5ZTQwXCIsIFwiXFx1ezIwRUEyfVxcdTlFQUJcXHU3RDVBXFx1NTVERVxcdXsyMTA3NX1cXHU2MjlEXFx1OTc2RFxcdTU0OTRcXHU4Q0NEXFx1NzFGNlxcdTkxNzZcXHU2M0ZDXFx1NjNCOVxcdTYzRkVcXHU1NTY5XFx1ezIyQjQzfVxcdTlDNzJcXHV7MjJFQjN9XFx1NTE5QVxcdTM0REZcXHV7MjBEQTd9XFx1NTFBN1xcdTU0NERcXHU1NTFFXFx1NTUxM1xcdTc2NjZcXHU4RTJEXFx1ezI2ODhBfVxcdTc1QjFcXHU4MEI2XFx1ODgwNFxcdTg3ODZcXHU4OEM3XFx1ODFCNlxcdTg0MUNcXHV7MjEwQzF9XFx1NDRFQ1xcdTczMDRcXHV7MjQ3MDZ9XFx1NUI5MFxcdTgzMEJcXHV7MjY4OTN9XFx1NTY3QlxcdXsyMjZGNH1cXHV7MjdEMkZ9XFx1ezI0MUEzfVxcdXsyN0Q3M31cXHV7MjZFRDB9XFx1ezI3MkI2fVxcdTkxNzBcXHV7MjExRDl9XFx1OTIwOFxcdXsyM0NGQ31cXHV7MkE2QTl9XFx1ezIwRUFDfVxcdXsyMEVGOX1cXHU3MjY2XFx1ezIxQ0EyfVxcdTQ3NEVcXHV7MjRGQzJ9XFx1ezI3RkY5fVxcdXsyMEZFQn1cXHU0MEZBXCJdLFxuICAgICAgW1wiOWVhMVwiLCBcIlxcdTlDNURcXHU2NTFGXFx1ezIyREEwfVxcdTQ4RjNcXHV7MjQ3RTB9XFx1ezI5RDdDfVxcdXsyMEZFQ31cXHV7MjBFMEF9XFx1NjA2MlxcdXsyNzVBM31cXHV7MjBGRUR9XCJdLFxuICAgICAgW1wiOWVhZFwiLCBcIlxcdXsyNjA0OH1cXHV7MjExODd9XFx1NzFBM1xcdTdFOEVcXHU5RDUwXFx1NEUxQVxcdTRFMDRcXHUzNTc3XFx1NUIwRFxcdTZDQjJcXHU1MzY3XFx1MzZBQ1xcdTM5RENcXHU1MzdEXFx1MzZBNVxcdXsyNDYxOH1cXHU1ODlBXFx1ezI0QjZFfVxcdTgyMkRcXHU1NDRCXFx1NTdBQVxcdXsyNUE5NX1cXHV7MjA5Nzl9XCJdLFxuICAgICAgW1wiOWVjNVwiLCBcIlxcdTNBNTJcXHV7MjI0NjV9XFx1NzM3NFxcdXsyOUVBQ31cXHU0RDA5XFx1OUJFRFxcdXsyM0NGRX1cXHV7MjlGMzB9XFx1NEM1QlxcdXsyNEZBOX1cXHV7Mjk1OUV9XFx1ezI5RkRFfVxcdTg0NUNcXHV7MjNEQjZ9XFx1ezI3MkIyfVxcdXsyNjdCM31cXHV7MjM3MjB9XFx1NjMyRVxcdTdEMjVcXHV7MjNFRjd9XFx1ezIzRTJDfVxcdTNBMkFcXHU5MDA4XFx1NTJDQ1xcdTNFNzRcXHUzNjdBXFx1NDVFOVxcdXsyMDQ4RX1cXHU3NjQwXFx1NUFGMFxcdXsyMEVCNn1cXHU3ODdBXFx1ezI3RjJFfVxcdTU4QTdcXHU0MEJGXFx1NTY3Q1xcdTlCOEJcXHU1RDc0XFx1NzY1NFxcdXsyQTQzNH1cXHU5RTg1XFx1NENFMVxcdTc1RjlcXHUzN0ZCXFx1NjExOVxcdXsyMzBEQX1cXHV7MjQzRjJ9XCJdLFxuICAgICAgW1wiOWVmNVwiLCBcIlxcdTU2NURcXHV7MjEyQTl9XFx1NTdBN1xcdXsyNDk2M31cXHV7MjlFMDZ9XFx1NTIzNFxcdXsyNzBBRX1cXHUzNUFEXFx1NkM0QVxcdTlEN0NcIl0sXG4gICAgICBbXCI5ZjQwXCIsIFwiXFx1N0M1NlxcdTlCMzlcXHU1N0RFXFx1ezIxNzZDfVxcdTVDNTNcXHU2NEQzXFx1ezI5NEQwfVxcdXsyNjMzNX1cXHV7MjcxNjR9XFx1ODZBRFxcdXsyMEQyOH1cXHV7MjZEMjJ9XFx1ezI0QUUyfVxcdXsyMEQ3MX1cIl0sXG4gICAgICBbXCI5ZjRmXCIsIFwiXFx1NTFGRVxcdXsyMUYwRn1cXHU1RDhFXFx1OTcwM1xcdXsyMUREMX1cXHU5RTgxXFx1OTA0Q1xcdTdCMUZcXHU5QjAyXFx1NUNEMVxcdTdCQTNcXHU2MjY4XFx1NjMzNVxcdTlBRkZcXHU3QkNGXFx1OUIyQVxcdTdDN0VcXHU5QjJFXFx1N0M0MlxcdTdDODZcXHU5QzE1XFx1N0JGQ1xcdTlCMDlcXHU5RjE3XFx1OUMxQlxcdXsyNDkzRX1cXHU5RjVBXFx1NTU3M1xcdTVCQzNcXHU0RkZEXFx1OUU5OFxcdTRGRjJcXHU1MjYwXFx1M0UwNlxcdTUyRDFcXHU1NzY3XFx1NTA1NlxcdTU5QjdcXHU1RTEyXFx1OTdDOFxcdTlEQUJcXHU4RjVDXFx1NTQ2OVxcdTk3QjRcXHU5OTQwXFx1OTdCQVxcdTUzMkNcXHU2MTMwXCJdLFxuICAgICAgW1wiOWZhMVwiLCBcIlxcdTY5MkNcXHU1M0RBXFx1OUMwQVxcdTlEMDJcXHU0QzNCXFx1OTY0MVxcdTY5ODBcXHU1MEE2XFx1NzU0NlxcdXsyMTc2RH1cXHU5OURBXFx1NTI3M1wiXSxcbiAgICAgIFtcIjlmYWVcIiwgXCJcXHU5MTU5XFx1OTY4MVxcdTkxNUNcIl0sXG4gICAgICBbXCI5ZmIyXCIsIFwiXFx1OTE1MVxcdXsyOEU5N31cXHU2MzdGXFx1ezI2RDIzfVxcdTZBQ0FcXHU1NjExXFx1OTE4RVxcdTc1N0FcXHU2Mjg1XFx1ezIwM0ZDfVxcdTczNEZcXHU3QzcwXFx1ezI1QzIxfVxcdXsyM0NGRH1cIl0sXG4gICAgICBbXCI5ZmMxXCIsIFwiXFx1ezI0OTE5fVxcdTc2RDZcXHU5QjlEXFx1NEUyQVxcdXsyMENENH1cXHU4M0JFXFx1ODg0MlwiXSxcbiAgICAgIFtcIjlmYzlcIiwgXCJcXHU1QzRBXFx1NjlDMFxcdTUwRURcXHU1NzdBXFx1NTIxRlxcdTVERjVcXHU0RUNFXFx1NkMzMVxcdXsyMDFGMn1cXHU0RjM5XFx1NTQ5Q1xcdTU0REFcXHU1MjlBXFx1OEQ4MlxcdTM1RkVcXHU1RjBDXFx1MzVGM1wiXSxcbiAgICAgIFtcIjlmZGJcIiwgXCJcXHU2QjUyXFx1OTE3Q1xcdTlGQTVcXHU5Qjk3XFx1OTgyRVxcdTk4QjRcXHU5QUJBXFx1OUVBOFxcdTlFODRcXHU3MTdBXFx1N0IxNFwiXSxcbiAgICAgIFtcIjlmZTdcIiwgXCJcXHU2QkZBXFx1ODgxOFxcdTdGNzhcIl0sXG4gICAgICBbXCI5ZmViXCIsIFwiXFx1NTYyMFxcdXsyQTY0QX1cXHU4RTc3XFx1OUY1M1wiXSxcbiAgICAgIFtcIjlmZjBcIiwgXCJcXHU4REQ0XFx1OEU0RlxcdTlFMUNcXHU4RTAxXFx1NjI4MlxcdXsyODM3RH1cXHU4RTI4XFx1OEU3NVxcdTdBRDNcXHV7MjRBNzd9XFx1N0EzRVxcdTc4RDhcXHU2Q0VBXFx1OEE2N1xcdTc2MDdcIl0sXG4gICAgICBbXCJhMDQwXCIsIFwiXFx1ezI4QTVBfVxcdTlGMjZcXHU2Q0NFXFx1ODdENlxcdTc1QzNcXHV7MkEyQjJ9XFx1Nzg1M1xcdXsyRjg0MH1cXHU4RDBDXFx1NzJFMlxcdTczNzFcXHU4QjJEXFx1NzMwMlxcdTc0RjFcXHU4Q0VCXFx1ezI0QUJCfVxcdTg2MkZcXHU1RkJBXFx1ODhBMFxcdTQ0QjdcIl0sXG4gICAgICBbXCJhMDU1XCIsIFwiXFx1ezIxODNCfVxcdXsyNkUwNX1cIl0sXG4gICAgICBbXCJhMDU4XCIsIFwiXFx1OEE3RVxcdXsyMjUxQn1cIl0sXG4gICAgICBbXCJhMDViXCIsIFwiXFx1NjBGRFxcdTc2NjdcXHU5QUQ3XFx1OUQ0NFxcdTkzNkVcXHU5QjhGXFx1ODdGNVwiXSxcbiAgICAgIFtcImEwNjNcIiwgXCJcXHU4ODBGXFx1OENGN1xcdTczMkNcXHU5NzIxXFx1OUJCMFxcdTM1RDZcXHU3MkIyXFx1NEMwN1xcdTdDNTFcXHU5OTRBXFx1ezI2MTU5fVxcdTYxNTlcXHU0QzA0XFx1OUU5NlxcdTYxN0RcIl0sXG4gICAgICBbXCJhMDczXCIsIFwiXFx1NTc1RlxcdTYxNkZcXHU2MkE2XFx1NjIzOVxcdTYyQ0VcXHUzQTVDXFx1NjFFMlxcdTUzQUFcXHV7MjMzRjV9XFx1NjM2NFxcdTY4MDJcXHUzNUQyXCJdLFxuICAgICAgW1wiYTBhMVwiLCBcIlxcdTVENTdcXHV7MjhCQzJ9XFx1OEZEQVxcdXsyOEUzOX1cIl0sXG4gICAgICBbXCJhMGE2XCIsIFwiXFx1NTBEOVxcdXsyMUQ0Nn1cXHU3OTA2XFx1NTMzMlxcdTk2MzhcXHV7MjBGM0J9XFx1NDA2NVwiXSxcbiAgICAgIFtcImEwYWVcIiwgXCJcXHU3N0ZFXCJdLFxuICAgICAgW1wiYTBiMFwiLCBcIlxcdTdDQzJcXHV7MjVGMUF9XFx1N0NEQVxcdTdBMkRcXHU4MDY2XFx1ODA2M1xcdTdENERcXHU3NTA1XFx1NzRGMlxcdTg5OTRcXHU4MjFBXFx1NjcwQ1xcdTgwNjJcXHV7Mjc0ODZ9XFx1ODA1QlxcdTc0RjBcXHU4MTAzXFx1NzcyNFxcdTg5ODlcXHV7MjY3Q0N9XFx1NzU1M1xcdXsyNkVEMX1cXHU4N0E5XFx1ODdDRVxcdTgxQzhcXHU4NzhDXFx1OEE0OVxcdThDQURcXHU4QjQzXFx1NzcyQlxcdTc0RjhcXHU4NERBXFx1MzYzNVxcdTY5QjJcXHU4REE2XCJdLFxuICAgICAgW1wiYTBkNFwiLCBcIlxcdTg5QTlcXHU3NDY4XFx1NkRCOVxcdTg3QzFcXHV7MjQwMTF9XFx1NzRFN1xcdTNEREJcXHU3MTc2XFx1NjBBNFxcdTYxOUNcXHUzQ0QxXFx1NzE2MlxcdTYwNzdcIl0sXG4gICAgICBbXCJhMGUyXCIsIFwiXFx1N0Y3MVxcdXsyOEIyRH1cXHU3MjUwXFx1NjBFOVxcdTRCN0VcXHU1MjIwXFx1M0MxOFxcdXsyM0NDN31cXHV7MjVFRDd9XFx1ezI3NjU2fVxcdXsyNTUzMX1cXHV7MjE5NDR9XFx1ezIxMkZFfVxcdXsyOTkwM31cXHV7MjZEREN9XFx1ezI3MEFEfVxcdTVDQzFcXHV7MjYxQUR9XFx1ezI4QTBGfVxcdXsyMzY3N31cXHV7MjAwRUV9XFx1ezI2ODQ2fVxcdXsyNEYwRX1cXHU0NTYyXFx1NUIxRlxcdXsyNjM0Q31cXHU5RjUwXFx1OUVBNlxcdXsyNjI2Qn1cIl0sXG4gICAgICBbXCJhM2MwXCIsIFwiXFx1MjQwMFwiLCAzMSwgXCJcXHUyNDIxXCJdLFxuICAgICAgW1wiYzZhMVwiLCBcIlxcdTI0NjBcIiwgOSwgXCJcXHUyNDc0XCIsIDksIFwiXFx1MjE3MFwiLCA5LCBcIlxcdTRFMzZcXHU0RTNGXFx1NEU4NVxcdTRFQTBcXHU1MTgyXFx1NTE5NlxcdTUxQUJcXHU1MkY5XFx1NTMzOFxcdTUzNjlcXHU1M0I2XFx1NTkwQVxcdTVCODBcXHU1RERCXFx1MkYzM1xcdTVFN0ZcXHU1RUY0XFx1NUY1MFxcdTVGNjFcXHU2NTM0XFx1NjVFMFxcdTc1OTJcXHU3Njc2XFx1OEZCNVxcdTk2QjZcXHhBOFxcdTAyQzZcXHUzMEZEXFx1MzBGRVxcdTMwOURcXHUzMDlFXFx1MzAwM1xcdTRFRERcXHUzMDA1XFx1MzAwNlxcdTMwMDdcXHUzMEZDXFx1RkYzQlxcdUZGM0RcXHUyNzNEXFx1MzA0MVwiLCAyM10sXG4gICAgICBbXCJjNzQwXCIsIFwiXFx1MzA1OVwiLCA1OCwgXCJcXHUzMEExXFx1MzBBMlxcdTMwQTNcXHUzMEE0XCJdLFxuICAgICAgW1wiYzdhMVwiLCBcIlxcdTMwQTVcIiwgODEsIFwiXFx1MDQxMFwiLCA1LCBcIlxcdTA0MDFcXHUwNDE2XCIsIDRdLFxuICAgICAgW1wiYzg0MFwiLCBcIlxcdTA0MUJcIiwgMjYsIFwiXFx1MDQ1MVxcdTA0MzZcIiwgMjUsIFwiXFx1MjFFN1xcdTIxQjhcXHUyMUI5XFx1MzFDRlxcdXsyMDBDQ31cXHU0RTVBXFx1ezIwMDhBfVxcdTUyMDJcXHU0NDkxXCJdLFxuICAgICAgW1wiYzhhMVwiLCBcIlxcdTlGQjBcXHU1MTg4XFx1OUZCMVxcdXsyNzYwN31cIl0sXG4gICAgICBbXCJjOGNkXCIsIFwiXFx1RkZFMlxcdUZGRTRcXHVGRjA3XFx1RkYwMlxcdTMyMzFcXHUyMTE2XFx1MjEyMVxcdTMwOUJcXHUzMDlDXFx1MkU4MFxcdTJFODRcXHUyRTg2XFx1MkU4N1xcdTJFODhcXHUyRThBXFx1MkU4Q1xcdTJFOERcXHUyRTk1XFx1MkU5Q1xcdTJFOURcXHUyRUE1XFx1MkVBN1xcdTJFQUFcXHUyRUFDXFx1MkVBRVxcdTJFQjZcXHUyRUJDXFx1MkVCRVxcdTJFQzZcXHUyRUNBXFx1MkVDQ1xcdTJFQ0RcXHUyRUNGXFx1MkVENlxcdTJFRDdcXHUyRURFXFx1MkVFM1wiXSxcbiAgICAgIFtcImM4ZjVcIiwgXCJcXHUwMjgzXFx1MDI1MFxcdTAyNUJcXHUwMjU0XFx1MDI3NVxcdTAxNTNcXHhGOFxcdTAxNEJcXHUwMjhBXFx1MDI2QVwiXSxcbiAgICAgIFtcImY5ZmVcIiwgXCJcXHVGRkVEXCJdLFxuICAgICAgW1wiZmE0MFwiLCBcIlxcdXsyMDU0N31cXHU5MkRCXFx1ezIwNURGfVxcdXsyM0ZDNX1cXHU4NTRDXFx1NDJCNVxcdTczRUZcXHU1MUI1XFx1MzY0OVxcdXsyNDk0Mn1cXHV7Mjg5RTR9XFx1OTM0NFxcdXsyMTlEQn1cXHU4MkVFXFx1ezIzQ0M4fVxcdTc4M0NcXHU2NzQ0XFx1NjJERlxcdXsyNDkzM31cXHV7Mjg5QUF9XFx1ezIwMkEwfVxcdXsyNkJCM31cXHV7MjEzMDV9XFx1NEZBQlxcdXsyMjRFRH1cXHU1MDA4XFx1ezI2RDI5fVxcdXsyN0E4NH1cXHV7MjM2MDB9XFx1ezI0QUIxfVxcdXsyMjUxM31cXHU1MDI5XFx1ezIwMzdFfVxcdTVGQTRcXHV7MjAzODB9XFx1ezIwMzQ3fVxcdTZFREJcXHV7MjA0MUZ9XFx1NTA3RFxcdTUxMDFcXHUzNDdBXFx1NTEwRVxcdTk4NkNcXHUzNzQzXFx1ODQxNlxcdXsyNDlBNH1cXHV7MjA0ODd9XFx1NTE2MFxcdXsyMzNCNH1cXHU1MTZBXFx1ezIwQkZGfVxcdXsyMjBGQ31cXHV7MjAyRTV9XFx1ezIyNTMwfVxcdXsyMDU4RX1cXHV7MjMyMzN9XFx1ezIxOTgzfVxcdTVCODJcXHU4NzdEXFx1ezIwNUIzfVxcdXsyM0M5OX1cXHU1MUIyXFx1NTFCOFwiXSxcbiAgICAgIFtcImZhYTFcIiwgXCJcXHU5RDM0XFx1NTFDOVxcdTUxQ0ZcXHU1MUQxXFx1M0NEQ1xcdTUxRDNcXHV7MjRBQTZ9XFx1NTFCM1xcdTUxRTJcXHU1MzQyXFx1NTFFRFxcdTgzQ0RcXHU2OTNFXFx1ezIzNzJEfVxcdTVGN0JcXHU1MjBCXFx1NTIyNlxcdTUyM0NcXHU1MkI1XFx1NTI1N1xcdTUyOTRcXHU1MkI5XFx1NTJDNVxcdTdDMTVcXHU4NTQyXFx1NTJFMFxcdTg2MERcXHV7MjZCMTN9XFx1NTMwNVxcdXsyOEFERX1cXHU1NTQ5XFx1NkVEOVxcdXsyM0Y4MH1cXHV7MjA5NTR9XFx1ezIzRkVDfVxcdTUzMzNcXHU1MzQ0XFx1ezIwQkUyfVxcdTZDQ0JcXHV7MjE3MjZ9XFx1NjgxQlxcdTczRDVcXHU2MDRBXFx1M0VBQVxcdTM4Q0NcXHV7MjE2RTh9XFx1NzFERFxcdTQ0QTJcXHU1MzZEXFx1NTM3NFxcdXsyODZBQn1cXHU1MzdFXFx1NTM3RlxcdXsyMTU5Nn1cXHV7MjE2MTN9XFx1NzdFNlxcdTUzOTNcXHV7MjhBOUJ9XFx1NTNBMFxcdTUzQUJcXHU1M0FFXFx1NzNBN1xcdXsyNTc3Mn1cXHUzRjU5XFx1NzM5Q1xcdTUzQzFcXHU1M0M1XFx1NkM0OVxcdTRFNDlcXHU1N0ZFXFx1NTNEOVxcdTNBQUJcXHV7MjBCOEZ9XFx1NTNFMFxcdXsyM0ZFQn1cXHV7MjJEQTN9XFx1NTNGNlxcdXsyMEM3N31cXHU1NDEzXFx1NzA3OVxcdTU1MkJcXHU2NjU3XFx1NkQ1QlxcdTU0NkRcXHV7MjZCNTN9XFx1ezIwRDc0fVxcdTU1NURcXHU1NDhGXFx1NTRBNFxcdTQ3QTZcXHV7MjE3MER9XFx1ezIwRUREfVxcdTNEQjRcXHV7MjBENER9XCJdLFxuICAgICAgW1wiZmI0MFwiLCBcIlxcdXsyODlCQ31cXHV7MjI2OTh9XFx1NTU0N1xcdTRDRURcXHU1NDJGXFx1NzQxN1xcdTU1ODZcXHU1NUE5XFx1NTYwNVxcdXsyMThEN31cXHV7MjQwM0F9XFx1NDU1MlxcdXsyNDQzNX1cXHU2NkIzXFx1ezIxMEI0fVxcdTU2MzdcXHU2NkNEXFx1ezIzMjhBfVxcdTY2QTRcXHU2NkFEXFx1NTY0RFxcdTU2NEZcXHU3OEYxXFx1NTZGMVxcdTk3ODdcXHU1M0ZFXFx1NTcwMFxcdTU2RUZcXHU1NkVEXFx1ezI4QjY2fVxcdTM2MjNcXHV7MjEyNEZ9XFx1NTc0NlxcdXsyNDFBNX1cXHU2QzZFXFx1NzA4QlxcdTU3NDJcXHUzNkIxXFx1ezI2QzdFfVxcdTU3RTZcXHV7MjE0MTZ9XFx1NTgwM1xcdXsyMTQ1NH1cXHV7MjQzNjN9XFx1NTgyNlxcdXsyNEJGNX1cXHU1ODVDXFx1NThBQVxcdTM1NjFcXHU1OEUwXFx1NThEQ1xcdXsyMTIzQ31cXHU1OEZCXFx1NUJGRlxcdTU3NDNcXHV7MkExNTB9XFx1ezI0Mjc4fVxcdTkzRDNcXHUzNUExXFx1NTkxRlxcdTY4QTZcXHUzNkMzXFx1NkU1OVwiXSxcbiAgICAgIFtcImZiYTFcIiwgXCJcXHV7MjE2M0V9XFx1NUEyNFxcdTU1NTNcXHV7MjE2OTJ9XFx1ODUwNVxcdTU5QzlcXHV7MjBENEV9XFx1ezI2QzgxfVxcdXsyNkQyQX1cXHV7MjE3REN9XFx1NTlEOVxcdXsyMTdGQn1cXHV7MjE3QjJ9XFx1ezI2REE2fVxcdTZENzFcXHV7MjE4Mjh9XFx1ezIxNkQ1fVxcdTU5RjlcXHV7MjZFNDV9XFx1NUFBQlxcdTVBNjNcXHUzNkU2XFx1ezI0OUE5fVxcdTVBNzdcXHUzNzA4XFx1NUE5NlxcdTc0NjVcXHU1QUQzXFx1ezI2RkExfVxcdXsyMjU1NH1cXHUzRDg1XFx1ezIxOTExfVxcdTM3MzJcXHV7MjE2Qjh9XFx1NUU4M1xcdTUyRDBcXHU1Qjc2XFx1NjU4OFxcdTVCN0NcXHV7MjdBMEV9XFx1NDAwNFxcdTQ4NURcXHV7MjAyMDR9XFx1NUJENVxcdTYxNjBcXHV7MjFBMzR9XFx1ezI1OUNDfVxcdXsyMDVBNX1cXHU1QkYzXFx1NUI5RFxcdTREMTBcXHU1QzA1XFx1ezIxQjQ0fVxcdTVDMTNcXHU3M0NFXFx1NUMxNFxcdXsyMUNBNX1cXHV7MjZCMjh9XFx1NUM0OVxcdTQ4RERcXHU1Qzg1XFx1NUNFOVxcdTVDRUZcXHU1RDhCXFx1ezIxREY5fVxcdXsyMUUzN31cXHU1RDEwXFx1NUQxOFxcdTVENDZcXHV7MjFFQTR9XFx1NUNCQVxcdTVERDdcXHU4MkZDXFx1MzgyRFxcdXsyNDkwMX1cXHV7MjIwNDl9XFx1ezIyMTczfVxcdTgyODdcXHUzODM2XFx1M0JDMlxcdTVFMkVcXHU2QThBXFx1NUU3NVxcdTVFN0FcXHV7MjQ0QkN9XFx1ezIwQ0QzfVxcdTUzQTZcXHU0RUI3XFx1NUVEMFxcdTUzQThcXHV7MjE3NzF9XFx1NUUwOVxcdTVFRjRcXHV7Mjg0ODJ9XCJdLFxuICAgICAgW1wiZmM0MFwiLCBcIlxcdTVFRjlcXHU1RUZCXFx1MzhBMFxcdTVFRkNcXHU2ODNFXFx1OTQxQlxcdTVGMERcXHV7MjAxQzF9XFx1ezJGODk0fVxcdTNBREVcXHU0OEFFXFx1ezIxMzNBfVxcdTVGM0FcXHV7MjY4ODh9XFx1ezIyM0QwfVxcdTVGNThcXHV7MjI0NzF9XFx1NUY2M1xcdTk3QkRcXHV7MjZFNkV9XFx1NUY3MlxcdTkzNDBcXHV7MjhBMzZ9XFx1NUZBN1xcdTVEQjZcXHUzRDVGXFx1ezI1MjUwfVxcdXsyMUY2QX1cXHV7MjcwRjh9XFx1ezIyNjY4fVxcdTkxRDZcXHV7MjAyOUV9XFx1ezI4QTI5fVxcdTYwMzFcXHU2Njg1XFx1ezIxODc3fVxcdTM5NjNcXHUzREM3XFx1MzYzOVxcdTU3OTBcXHV7MjI3QjR9XFx1Nzk3MVxcdTNFNDBcXHU2MDlFXFx1NjBBNFxcdTYwQjNcXHV7MjQ5ODJ9XFx1ezI0OThGfVxcdXsyN0E1M31cXHU3NEE0XFx1NTBFMVxcdTVBQTBcXHU2MTY0XFx1ODQyNFxcdTYxNDJcXHV7MkY4QTZ9XFx1ezI2RUQyfVxcdTYxODFcXHU1MUY0XFx1ezIwNjU2fVxcdTYxODdcXHU1QkFBXFx1ezIzRkI3fVwiXSxcbiAgICAgIFtcImZjYTFcIiwgXCJcXHV7MjI4NUZ9XFx1NjFEM1xcdXsyOEI5RH1cXHV7Mjk5NUR9XFx1NjFEMFxcdTM5MzJcXHV7MjI5ODB9XFx1ezIyOEMxfVxcdTYwMjNcXHU2MTVDXFx1NjUxRVxcdTYzOEJcXHV7MjAxMTh9XFx1NjJDNVxcdXsyMTc3MH1cXHU2MkQ1XFx1ezIyRTBEfVxcdTYzNkNcXHV7MjQ5REZ9XFx1M0ExN1xcdTY0MzhcXHU2M0Y4XFx1ezIxMzhFfVxcdXsyMTdGQ31cXHU2NDkwXFx1NkY4QVxcdXsyMkUzNn1cXHU5ODE0XFx1ezI0MDhDfVxcdXsyNTcxRH1cXHU2NEUxXFx1NjRFNVxcdTk0N0JcXHUzQTY2XFx1NjQzQVxcdTNBNTdcXHU2NTREXFx1NkYxNlxcdXsyNEEyOH1cXHV7MjRBMjN9XFx1NjU4NVxcdTY1NkRcXHU2NTVGXFx1ezIzMDdFfVxcdTY1QjVcXHV7MjQ5NDB9XFx1NEIzN1xcdTY1RDFcXHU0MEQ4XFx1ezIxODI5fVxcdTY1RTBcXHU2NUUzXFx1NUZERlxcdXsyMzQwMH1cXHU2NjE4XFx1ezIzMUY3fVxcdXsyMzFGOH1cXHU2NjQ0XFx1ezIzMUE0fVxcdXsyMzFBNX1cXHU2NjRCXFx1ezIwRTc1fVxcdTY2NjdcXHV7MjUxRTZ9XFx1NjY3M1xcdTY2NzRcXHV7MjFFM0R9XFx1ezIzMjMxfVxcdXsyODVGNH1cXHV7MjMxQzh9XFx1ezI1MzEzfVxcdTc3QzVcXHV7MjI4Rjd9XFx1OTlBNFxcdTY3MDJcXHV7MjQzOUN9XFx1ezI0QTIxfVxcdTNCMkJcXHU2OUZBXFx1ezIzN0MyfVxcdTY3NUVcXHU2NzY3XFx1Njc2MlxcdXsyNDFDRH1cXHV7MjkwRUR9XFx1NjdEN1xcdTQ0RTlcXHU2ODIyXFx1NkU1MFxcdTkyM0NcXHU2ODAxXFx1ezIzM0U2fVxcdXsyNkRBMH1cXHU2ODVEXCJdLFxuICAgICAgW1wiZmQ0MFwiLCBcIlxcdXsyMzQ2Rn1cXHU2OUUxXFx1NkEwQlxcdXsyOEFERn1cXHU2OTczXFx1NjhDM1xcdXsyMzVDRH1cXHU2OTAxXFx1NjkwMFxcdTNEMzJcXHUzQTAxXFx1ezIzNjNDfVxcdTNCODBcXHU2N0FDXFx1Njk2MVxcdXsyOEE0QX1cXHU0MkZDXFx1NjkzNlxcdTY5OThcXHUzQkExXFx1ezIwM0M5fVxcdTgzNjNcXHU1MDkwXFx1NjlGOVxcdXsyMzY1OX1cXHV7MjIxMkF9XFx1NkE0NVxcdXsyMzcwM31cXHU2QTlEXFx1M0JGM1xcdTY3QjFcXHU2QUM4XFx1ezI5MTlDfVxcdTNDMERcXHU2QjFEXFx1ezIwOTIzfVxcdTYwREVcXHU2QjM1XFx1NkI3NFxcdXsyMjdDRH1cXHU2RUI1XFx1ezIzQURCfVxcdXsyMDNCNX1cXHV7MjE5NTh9XFx1Mzc0MFxcdTU0MjFcXHV7MjNCNUF9XFx1NkJFMVxcdXsyM0VGQ31cXHU2QkRDXFx1NkMzN1xcdXsyMjQ4Qn1cXHV7MjQ4RjF9XFx1ezI2QjUxfVxcdTZDNUFcXHU4MjI2XFx1NkM3OVxcdXsyM0RCQ31cXHU0NEM1XFx1ezIzREJEfVxcdXsyNDFBNH1cXHV7MjQ5MEN9XFx1ezI0OTAwfVwiXSxcbiAgICAgIFtcImZkYTFcIiwgXCJcXHV7MjNDQzl9XFx1MzZFNVxcdTNDRUJcXHV7MjBEMzJ9XFx1OUI4M1xcdXsyMzFGOX1cXHV7MjI0OTF9XFx1N0Y4RlxcdTY4MzdcXHV7MjZEMjV9XFx1ezI2REExfVxcdXsyNkRFQn1cXHU2RDk2XFx1NkQ1Q1xcdTZFN0NcXHU2RjA0XFx1ezI0OTdGfVxcdXsyNDA4NX1cXHV7MjZFNzJ9XFx1ODUzM1xcdXsyNkY3NH1cXHU1MUM3XFx1NkM5Q1xcdTZFMURcXHU4NDJFXFx1ezI4QjIxfVxcdTZFMkZcXHV7MjNFMkZ9XFx1NzQ1M1xcdXsyM0Y4Mn1cXHU3OUNDXFx1NkU0RlxcdTVBOTFcXHV7MjMwNEJ9XFx1NkZGOFxcdTM3MERcXHU2RjlEXFx1ezIzRTMwfVxcdTZFRkFcXHV7MjE0OTd9XFx1ezI0MDNEfVxcdTQ1NTVcXHU5M0YwXFx1NkY0NFxcdTZGNUNcXHUzRDRFXFx1NkY3NFxcdXsyOTE3MH1cXHUzRDNCXFx1NkY5RlxcdXsyNDE0NH1cXHU2RkQzXFx1ezI0MDkxfVxcdXsyNDE1NX1cXHV7MjQwMzl9XFx1ezIzRkYwfVxcdXsyM0ZCNH1cXHV7MjQxM0Z9XFx1NTFERlxcdXsyNDE1Nn1cXHV7MjQxNTd9XFx1ezI0MTQwfVxcdXsyNjFERH1cXHU3MDRCXFx1NzA3RVxcdTcwQTdcXHU3MDgxXFx1NzBDQ1xcdTcwRDVcXHU3MEQ2XFx1NzBERlxcdTQxMDRcXHUzREU4XFx1NzFCNFxcdTcxOTZcXHV7MjQyNzd9XFx1NzEyQlxcdTcxNDVcXHU1QTg4XFx1NzE0QVxcdTcxNkVcXHU1QzlDXFx1ezI0MzY1fVxcdTcxNEZcXHU5MzYyXFx1ezI0MkMxfVxcdTcxMkNcXHV7MjQ0NUF9XFx1ezI0QTI3fVxcdXsyNEEyMn1cXHU3MUJBXFx1ezI4QkU4fVxcdTcwQkRcXHU3MjBFXCJdLFxuICAgICAgW1wiZmU0MFwiLCBcIlxcdTk0NDJcXHU3MjE1XFx1NTkxMVxcdTk0NDNcXHU3MjI0XFx1OTM0MVxcdXsyNTYwNX1cXHU3MjJFXFx1NzI0MFxcdXsyNDk3NH1cXHU2OEJEXFx1NzI1NVxcdTcyNTdcXHUzRTU1XFx1ezIzMDQ0fVxcdTY4MERcXHU2RjNEXFx1NzI4MlxcdTczMkFcXHU3MzJCXFx1ezI0ODIzfVxcdXsyODgyQn1cXHU0OEVEXFx1ezI4ODA0fVxcdTczMjhcXHU3MzJFXFx1NzNDRlxcdTczQUFcXHV7MjBDM0F9XFx1ezI2QTJFfVxcdTczQzlcXHU3NDQ5XFx1ezI0MUUyfVxcdXsyMTZFN31cXHV7MjRBMjR9XFx1NjYyM1xcdTM2QzVcXHV7MjQ5Qjd9XFx1ezI0OThEfVxcdXsyNDlGQn1cXHU3M0Y3XFx1NzQxNVxcdTY5MDNcXHV7MjRBMjZ9XFx1NzQzOVxcdXsyMDVDM31cXHUzRUQ3XFx1NzQ1Q1xcdXsyMjhBRH1cXHU3NDYwXFx1ezI4RUIyfVxcdTc0NDdcXHU3M0U0XFx1NzQ3NlxcdTgzQjlcXHU3NDZDXFx1MzczMFxcdTc0NzRcXHU5M0YxXFx1NkEyQ1xcdTc0ODJcXHU0OTUzXFx1ezI0QThDfVwiXSxcbiAgICAgIFtcImZlYTFcIiwgXCJcXHV7MjQxNUZ9XFx1ezI0QTc5fVxcdXsyOEI4Rn1cXHU1QjQ2XFx1ezI4QzAzfVxcdXsyMTg5RX1cXHU3NEM4XFx1ezIxOTg4fVxcdTc1MEVcXHU3NEU5XFx1NzUxRVxcdXsyOEVEOX1cXHV7MjFBNEJ9XFx1NUJEN1xcdXsyOEVBQ31cXHU5Mzg1XFx1NzU0RFxcdTc1NEFcXHU3NTY3XFx1NzU2RVxcdXsyNEY4Mn1cXHUzRjA0XFx1ezI0RDEzfVxcdTc1OEVcXHU3NDVEXFx1NzU5RVxcdTc1QjRcXHU3NjAyXFx1NzYyQ1xcdTc2NTFcXHU3NjRGXFx1NzY2RlxcdTc2NzZcXHV7MjYzRjV9XFx1NzY5MFxcdTgxRUZcXHUzN0Y4XFx1ezI2OTExfVxcdXsyNjkwRX1cXHU3NkExXFx1NzZBNVxcdTc2QjdcXHU3NkNDXFx1ezI2RjlGfVxcdTg0NjJcXHV7MjUwOUR9XFx1ezI1MTdEfVxcdXsyMUUxQ31cXHU3NzFFXFx1NzcyNlxcdTc3NDBcXHU2NEFGXFx1ezI1MjIwfVxcdTc3NThcXHV7MjMyQUN9XFx1NzdBRlxcdXsyODk2NH1cXHV7Mjg5Njh9XFx1ezIxNkMxfVxcdTc3RjRcXHU3ODA5XFx1ezIxMzc2fVxcdXsyNEExMn1cXHU2OENBXFx1NzhBRlxcdTc4QzdcXHU3OEQzXFx1OTZBNVxcdTc5MkVcXHV7MjU1RTB9XFx1NzhEN1xcdTc5MzRcXHU3OEIxXFx1ezI3NjBDfVxcdThGQjhcXHU4ODg0XFx1ezI4QjJCfVxcdXsyNjA4M31cXHV7MjI2MUN9XFx1Nzk4NlxcdTg5MDBcXHU2OTAyXFx1Nzk4MFxcdXsyNTg1N31cXHU3OTlEXFx1ezI3QjM5fVxcdTc5M0NcXHU3OUE5XFx1NkUyQVxcdXsyNzEyNn1cXHUzRUE4XFx1NzlDNlxcdXsyOTEwRH1cXHU3OUQ0XCJdXG4gICAgXTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvZGJjcy1kYXRhLmpzXG52YXIgcmVxdWlyZV9kYmNzX2RhdGEgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL2RiY3MtZGF0YS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgLy8gPT0gSmFwYW5lc2UvU2hpZnRKSVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgLy8gQWxsIGphcGFuZXNlIGVuY29kaW5ncyBhcmUgYmFzZWQgb24gSklTIFggc2V0IG9mIHN0YW5kYXJkczpcbiAgICAgIC8vIEpJUyBYIDAyMDEgLSBTaW5nbGUtYnl0ZSBlbmNvZGluZyBvZiBBU0NJSSArIFx1MDBBNSArIEthbmEgY2hhcnMgYXQgMHhBMS0weERGLlxuICAgICAgLy8gSklTIFggMDIwOCAtIE1haW4gc2V0IG9mIDY4NzkgY2hhcmFjdGVycywgcGxhY2VkIGluIDk0eDk0IHBsYW5lLCB0byBiZSBlbmNvZGVkIGJ5IDIgYnl0ZXMuIFxuICAgICAgLy8gICAgICAgICAgICAgIEhhcyBzZXZlcmFsIHZhcmlhdGlvbnMgaW4gMTk3OCwgMTk4MywgMTk5MCBhbmQgMTk5Ny5cbiAgICAgIC8vIEpJUyBYIDAyMTIgLSBTdXBwbGVtZW50YXJ5IHBsYW5lIG9mIDYwNjcgY2hhcnMgaW4gOTR4OTQgcGxhbmUuIDE5OTAuIEVmZmVjdGl2ZWx5IGRlYWQuXG4gICAgICAvLyBKSVMgWCAwMjEzIC0gRXh0ZW5zaW9uIGFuZCBtb2Rlcm4gcmVwbGFjZW1lbnQgb2YgMDIwOCBhbmQgMDIxMi4gVG90YWwgY2hhcnM6IDExMjMzLlxuICAgICAgLy8gICAgICAgICAgICAgIDIgcGxhbmVzLCBmaXJzdCBpcyBzdXBlcnNldCBvZiAwMjA4LCBzZWNvbmQgLSByZXZpc2VkIDAyMTIuXG4gICAgICAvLyAgICAgICAgICAgICAgSW50cm9kdWNlZCBpbiAyMDAwLCByZXZpc2VkIDIwMDQuIFNvbWUgY2hhcmFjdGVycyBhcmUgaW4gVW5pY29kZSBQbGFuZSAyICgweDJ4eHh4KVxuICAgICAgLy8gQnl0ZSBlbmNvZGluZ3MgYXJlOlxuICAgICAgLy8gICogU2hpZnRfSklTOiBDb21wYXRpYmxlIHdpdGggMDIwMSwgdXNlcyBub3QgZGVmaW5lZCBjaGFycyBpbiB0b3AgaGFsZiBhcyBsZWFkIGJ5dGVzIGZvciBkb3VibGUtYnl0ZVxuICAgICAgLy8gICAgICAgICAgICAgICBlbmNvZGluZyBvZiAwMjA4LiBMZWFkIGJ5dGUgcmFuZ2VzOiAweDgxLTB4OUYsIDB4RTAtMHhFRjsgVHJhaWwgYnl0ZSByYW5nZXM6IDB4NDAtMHg3RSwgMHg4MC0weDlFLCAweDlGLTB4RkMuXG4gICAgICAvLyAgICAgICAgICAgICAgIFdpbmRvd3MgQ1A5MzIgaXMgYSBzdXBlcnNldCBvZiBTaGlmdF9KSVMuIFNvbWUgY29tcGFuaWVzIGFkZGVkIG1vcmUgY2hhcnMsIG5vdGFibHkgS0RESS5cbiAgICAgIC8vICAqIEVVQy1KUDogICAgVXAgdG8gMyBieXRlcyBwZXIgY2hhcmFjdGVyLiBVc2VkIG1vc3RseSBvbiAqbml4ZXMuXG4gICAgICAvLyAgICAgICAgICAgICAgIDB4MDAtMHg3RiAgICAgICAtIGxvd2VyIHBhcnQgb2YgMDIwMVxuICAgICAgLy8gICAgICAgICAgICAgICAweDhFLCAweEExLTB4REYgLSB1cHBlciBwYXJ0IG9mIDAyMDFcbiAgICAgIC8vICAgICAgICAgICAgICAgKDB4QTEtMHhGRSl4MiAgIC0gMDIwOCBwbGFuZSAoOTR4OTQpLlxuICAgICAgLy8gICAgICAgICAgICAgICAweDhGLCAoMHhBMS0weEZFKXgyIC0gMDIxMiBwbGFuZSAoOTR4OTQpLlxuICAgICAgLy8gICogSklTIFggMjA4OiA3LWJpdCwgZGlyZWN0IGVuY29kaW5nIG9mIDAyMDguIEJ5dGUgcmFuZ2VzOiAweDIxLTB4N0UgKDk0IHZhbHVlcykuIFVuY29tbW9uLlxuICAgICAgLy8gICAgICAgICAgICAgICBVc2VkIGFzLWlzIGluIElTTzIwMjIgZmFtaWx5LlxuICAgICAgLy8gICogSVNPMjAyMi1KUDogU3RhdGVmdWwgZW5jb2RpbmcsIHdpdGggZXNjYXBlIHNlcXVlbmNlcyB0byBzd2l0Y2ggYmV0d2VlbiBBU0NJSSwgXG4gICAgICAvLyAgICAgICAgICAgICAgICAwMjAxLTE5NzYgUm9tYW4sIDAyMDgtMTk3OCwgMDIwOC0xOTgzLlxuICAgICAgLy8gICogSVNPMjAyMi1KUC0xOiBBZGRzIGVzYyBzZXEgZm9yIDAyMTItMTk5MC5cbiAgICAgIC8vICAqIElTTzIwMjItSlAtMjogQWRkcyBlc2Mgc2VxIGZvciBHQjIzMTMtMTk4MCwgS1NYMTAwMS0xOTkyLCBJU084ODU5LTEsIElTTzg4NTktNy5cbiAgICAgIC8vICAqIElTTzIwMjItSlAtMzogQWRkcyBlc2Mgc2VxIGZvciAwMjAxLTE5NzYgS2FuYSBzZXQsIDAyMTMtMjAwMCBQbGFuZXMgMSwgMi5cbiAgICAgIC8vICAqIElTTzIwMjItSlAtMjAwNDogQWRkcyAwMjEzLTIwMDQgUGxhbmUgMS5cbiAgICAgIC8vXG4gICAgICAvLyBBZnRlciBKSVMgWCAwMjEzIGFwcGVhcmVkLCBTaGlmdF9KSVMtMjAwNCwgRVVDLUpJU1gwMjEzIGFuZCBJU08yMDIyLUpQLTIwMDQgZm9sbG93ZWQsIHdpdGgganVzdCBjaGFuZ2luZyB0aGUgcGxhbmVzLlxuICAgICAgLy9cbiAgICAgIC8vIE92ZXJhbGwsIGl0IHNlZW1zIHRoYXQgaXQncyBhIG1lc3MgOiggaHR0cDovL3d3dzgucGxhbGEub3IuanAvdGt1Ym90YTEvdW5pY29kZS1zeW1ib2xzLW1hcDIuaHRtbFxuICAgICAgXCJzaGlmdGppc1wiOiB7XG4gICAgICAgIHR5cGU6IFwiX2RiY3NcIixcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiByZXF1aXJlX3NoaWZ0amlzKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVuY29kZUFkZDogeyBcIlxceEE1XCI6IDkyLCBcIlxcdTIwM0VcIjogMTI2IH0sXG4gICAgICAgIGVuY29kZVNraXBWYWxzOiBbeyBmcm9tOiA2MDczNiwgdG86IDYzODA4IH1dXG4gICAgICB9LFxuICAgICAgXCJjc3NoaWZ0amlzXCI6IFwic2hpZnRqaXNcIixcbiAgICAgIFwibXNrYW5qaVwiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcInNqaXNcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCJ3aW5kb3dzMzFqXCI6IFwic2hpZnRqaXNcIixcbiAgICAgIFwibXMzMWpcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCJ4c2ppc1wiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcIndpbmRvd3M5MzJcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCJtczkzMlwiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcIjkzMlwiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcImNwOTMyXCI6IFwic2hpZnRqaXNcIixcbiAgICAgIFwiZXVjanBcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9ldWNqcCgpO1xuICAgICAgICB9LFxuICAgICAgICBlbmNvZGVBZGQ6IHsgXCJcXHhBNVwiOiA5MiwgXCJcXHUyMDNFXCI6IDEyNiB9XG4gICAgICB9LFxuICAgICAgLy8gVE9ETzogS0RESSBleHRlbnNpb24gdG8gU2hpZnRfSklTXG4gICAgICAvLyBUT0RPOiBJQk0gQ0NTSUQgOTQyID0gQ1A5MzIsIGJ1dCBGMC1GOSBjdXN0b20gY2hhcnMgYW5kIG90aGVyIGNoYXIgY2hhbmdlcy5cbiAgICAgIC8vIFRPRE86IElCTSBDQ1NJRCA5NDMgPSBTaGlmdF9KSVMgPSBDUDkzMiB3aXRoIG9yaWdpbmFsIFNoaWZ0X0pJUyBsb3dlciAxMjggY2hhcnMuXG4gICAgICAvLyA9PSBDaGluZXNlL0dCSyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAvLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0dCS1xuICAgICAgLy8gV2UgbW9zdGx5IGltcGxlbWVudCBXM0MgcmVjb21tZW5kYXRpb246IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9lbmNvZGluZy8jZ2JrLWVuY29kZXJcbiAgICAgIC8vIE9sZGVzdCBHQjIzMTIgKDE5ODEsIH43NjAwIGNoYXJzKSBpcyBhIHN1YnNldCBvZiBDUDkzNlxuICAgICAgXCJnYjIzMTJcIjogXCJjcDkzNlwiLFxuICAgICAgXCJnYjIzMTI4MFwiOiBcImNwOTM2XCIsXG4gICAgICBcImdiMjMxMjE5ODBcIjogXCJjcDkzNlwiLFxuICAgICAgXCJjc2diMjMxMlwiOiBcImNwOTM2XCIsXG4gICAgICBcImNzaXNvNThnYjIzMTI4MFwiOiBcImNwOTM2XCIsXG4gICAgICBcImV1Y2NuXCI6IFwiY3A5MzZcIixcbiAgICAgIC8vIE1pY3Jvc29mdCdzIENQOTM2IGlzIGEgc3Vic2V0IGFuZCBhcHByb3hpbWF0aW9uIG9mIEdCSy5cbiAgICAgIFwid2luZG93czkzNlwiOiBcImNwOTM2XCIsXG4gICAgICBcIm1zOTM2XCI6IFwiY3A5MzZcIixcbiAgICAgIFwiOTM2XCI6IFwiY3A5MzZcIixcbiAgICAgIFwiY3A5MzZcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9jcDkzNigpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gR0JLICh+MjIwMDAgY2hhcnMpIGlzIGFuIGV4dGVuc2lvbiBvZiBDUDkzNiB0aGF0IGFkZGVkIHVzZXItbWFwcGVkIGNoYXJzIGFuZCBzb21lIG90aGVyLlxuICAgICAgXCJnYmtcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9jcDkzNigpLmNvbmNhdChyZXF1aXJlX2dia19hZGRlZCgpKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwieGdia1wiOiBcImdia1wiLFxuICAgICAgXCJpc29pcjU4XCI6IFwiZ2JrXCIsXG4gICAgICAvLyBHQjE4MDMwIGlzIGFuIGFsZ29yaXRobWljIGV4dGVuc2lvbiBvZiBHQksuXG4gICAgICAvLyBNYWluIHNvdXJjZTogaHR0cHM6Ly93d3cudzMub3JnL1RSL2VuY29kaW5nLyNnYmstZW5jb2RlclxuICAgICAgLy8gaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy9kb2NzL3BhcGVycy9nYjE4MDMwLmh0bWxcbiAgICAgIC8vIGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9kYXRhL3RydW5rL2NoYXJzZXQvZGF0YS94bWwvZ2ItMTgwMzAtMjAwMC54bWxcbiAgICAgIC8vIGh0dHA6Ly93d3cua2huZ2FpLmNvbS9jaGluZXNlL2NoYXJtYXAvdGJsZ2JrLnBocD9wYWdlPTBcbiAgICAgIFwiZ2IxODAzMFwiOiB7XG4gICAgICAgIHR5cGU6IFwiX2RiY3NcIixcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiByZXF1aXJlX2NwOTM2KCkuY29uY2F0KHJlcXVpcmVfZ2JrX2FkZGVkKCkpO1xuICAgICAgICB9LFxuICAgICAgICBnYjE4MDMwOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9nYjE4MDMwX3JhbmdlcygpO1xuICAgICAgICB9LFxuICAgICAgICBlbmNvZGVTa2lwVmFsczogWzEyOF0sXG4gICAgICAgIGVuY29kZUFkZDogeyBcIlxcdTIwQUNcIjogNDE2OTkgfVxuICAgICAgfSxcbiAgICAgIFwiY2hpbmVzZVwiOiBcImdiMTgwMzBcIixcbiAgICAgIC8vID09IEtvcmVhbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgIC8vIEVVQy1LUiwgS1NfQ181NjAxIGFuZCBLUyBYIDEwMDEgYXJlIGV4YWN0bHkgdGhlIHNhbWUuXG4gICAgICBcIndpbmRvd3M5NDlcIjogXCJjcDk0OVwiLFxuICAgICAgXCJtczk0OVwiOiBcImNwOTQ5XCIsXG4gICAgICBcIjk0OVwiOiBcImNwOTQ5XCIsXG4gICAgICBcImNwOTQ5XCI6IHtcbiAgICAgICAgdHlwZTogXCJfZGJjc1wiLFxuICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVpcmVfY3A5NDkoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiY3NldWNrclwiOiBcImNwOTQ5XCIsXG4gICAgICBcImNza3NjNTYwMTE5ODdcIjogXCJjcDk0OVwiLFxuICAgICAgXCJldWNrclwiOiBcImNwOTQ5XCIsXG4gICAgICBcImlzb2lyMTQ5XCI6IFwiY3A5NDlcIixcbiAgICAgIFwia29yZWFuXCI6IFwiY3A5NDlcIixcbiAgICAgIFwia3NjNTYwMTE5ODdcIjogXCJjcDk0OVwiLFxuICAgICAgXCJrc2M1NjAxMTk4OVwiOiBcImNwOTQ5XCIsXG4gICAgICBcImtzYzU2MDFcIjogXCJjcDk0OVwiLFxuICAgICAgLy8gPT0gQmlnNS9UYWl3YW4vSG9uZyBLb25nID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgLy8gVGhlcmUgYXJlIGxvdHMgb2YgdGFibGVzIGZvciBCaWc1IGFuZCBjcDk1MC4gUGxlYXNlIHNlZSB0aGUgZm9sbG93aW5nIGxpbmtzIGZvciBoaXN0b3J5OlxuICAgICAgLy8gaHR0cDovL21venR3Lm9yZy9kb2NzL2JpZzUvICBodHRwOi8vd3d3LmhhaWJsZS5kZS9icnVuby9jaGFyc2V0cy9jb252ZXJzaW9uLXRhYmxlcy9CaWc1Lmh0bWxcbiAgICAgIC8vIFZhcmlhdGlvbnMsIGluIHJvdWdobHkgbnVtYmVyIG9mIGRlZmluZWQgY2hhcnM6XG4gICAgICAvLyAgKiBXaW5kb3dzIENQIDk1MDogTWljcm9zb2Z0IHZhcmlhbnQgb2YgQmlnNS4gQ2Fub25pY2FsOiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy9NQVBQSU5HUy9WRU5ET1JTL01JQ1NGVC9XSU5ET1dTL0NQOTUwLlRYVFxuICAgICAgLy8gICogV2luZG93cyBDUCA5NTE6IE1pY3Jvc29mdCB2YXJpYW50IG9mIEJpZzUtSEtTQ1MtMjAwMS4gU2VlbXMgdG8gYmUgbmV2ZXIgcHVibGljLiBodHRwOi8vbWUuYWJlbGNoZXVuZy5vcmcvYXJ0aWNsZXMvcmVzZWFyY2gvd2hhdC1pcy1jcDk1MS9cbiAgICAgIC8vICAqIEJpZzUtMjAwMyAoVGFpd2FuIHN0YW5kYXJkKSBhbG1vc3Qgc3VwZXJzZXQgb2YgY3A5NTAuXG4gICAgICAvLyAgKiBVbmljb2RlLWF0LW9uIChVQU8pIC8gTW96aWxsYSAxLjguIEZhbGxpbmcgb3V0IG9mIHVzZSBvbiB0aGUgV2ViLiBOb3Qgc3VwcG9ydGVkIGJ5IG90aGVyIGJyb3dzZXJzLlxuICAgICAgLy8gICogQmlnNS1IS1NDUyAoLTIwMDEsIC0yMDA0LCAtMjAwOCkuIEhvbmcgS29uZyBzdGFuZGFyZC4gXG4gICAgICAvLyAgICBtYW55IHVuaWNvZGUgY29kZSBwb2ludHMgbW92ZWQgZnJvbSBQVUEgdG8gU3VwcGxlbWVudGFyeSBwbGFuZSAoVSsyWFhYWCkgb3ZlciB0aGUgeWVhcnMuXG4gICAgICAvLyAgICBQbHVzLCBpdCBoYXMgNCBjb21iaW5pbmcgc2VxdWVuY2VzLlxuICAgICAgLy8gICAgU2VlbXMgdGhhdCBNb3ppbGxhIHJlZnVzZWQgdG8gc3VwcG9ydCBpdCBmb3IgMTAgeXJzLiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI0MzEgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEwMjk5XG4gICAgICAvLyAgICBiZWNhdXNlIGJpZzUtaGtzY3MgaXMgdGhlIG9ubHkgZW5jb2RpbmcgdG8gaW5jbHVkZSBhc3RyYWwgY2hhcmFjdGVycyBpbiBub24tYWxnb3JpdGhtaWMgd2F5LlxuICAgICAgLy8gICAgSW1wbGVtZW50YXRpb25zIGFyZSBub3QgY29uc2lzdGVudCB3aXRoaW4gYnJvd3NlcnM7IHNvbWV0aW1lcyBsYWJlbGVkIGFzIGp1c3QgYmlnNS5cbiAgICAgIC8vICAgIE1TIEludGVybmV0IEV4cGxvcmVyIHN3aXRjaGVzIGZyb20gYmlnNSB0byBiaWc1LWhrc2NzIHdoZW4gYSBwYXRjaCBhcHBsaWVkLlxuICAgICAgLy8gICAgR3JlYXQgZGlzY3Vzc2lvbiAmIHJlY2FwIG9mIHdoYXQncyBnb2luZyBvbiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD05MTI0NzAjYzMxXG4gICAgICAvLyAgICBJbiB0aGUgZW5jb2RlciwgaXQgbWlnaHQgbWFrZSBzZW5zZSB0byBzdXBwb3J0IGVuY29kaW5nIG9sZCBQVUEgbWFwcGluZ3MgdG8gQmlnNSBieXRlcyBzZXEtcy5cbiAgICAgIC8vICAgIE9mZmljaWFsIHNwZWM6IGh0dHA6Ly93d3cub2djaW8uZ292LmhrL2VuL2J1c2luZXNzL3RlY2hfcHJvbW90aW9uL2NjbGkvdGVybXMvZG9jLzIwMDNjbXBfMjAwOC50eHRcbiAgICAgIC8vICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cub2djaW8uZ292LmhrL3RjL2J1c2luZXNzL3RlY2hfcHJvbW90aW9uL2NjbGkvdGVybXMvZG9jL2hrc2NzLTIwMDgtYmlnNS1pc28udHh0XG4gICAgICAvLyBcbiAgICAgIC8vIEN1cnJlbnQgdW5kZXJzdGFuZGluZyBvZiBob3cgdG8gZGVhbCB3aXRoIEJpZzUoLUhLU0NTKSBpcyBpbiB0aGUgRW5jb2RpbmcgU3RhbmRhcmQsIGh0dHA6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvI2JpZzUtZW5jb2RlclxuICAgICAgLy8gVW5pY29kZSBtYXBwaW5nIChodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy9NQVBQSU5HUy9PQlNPTEVURS9FQVNUQVNJQS9PVEhFUi9CSUc1LlRYVCkgaXMgc2FpZCB0byBiZSB3cm9uZy5cbiAgICAgIFwid2luZG93czk1MFwiOiBcImNwOTUwXCIsXG4gICAgICBcIm1zOTUwXCI6IFwiY3A5NTBcIixcbiAgICAgIFwiOTUwXCI6IFwiY3A5NTBcIixcbiAgICAgIFwiY3A5NTBcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9jcDk1MCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gQmlnNSBoYXMgbWFueSB2YXJpYXRpb25zIGFuZCBpcyBhbiBleHRlbnNpb24gb2YgY3A5NTAuIFdlIHVzZSBFbmNvZGluZyBTdGFuZGFyZCdzIGFzIGEgY29uc2Vuc3VzLlxuICAgICAgXCJiaWc1XCI6IFwiYmlnNWhrc2NzXCIsXG4gICAgICBcImJpZzVoa3Njc1wiOiB7XG4gICAgICAgIHR5cGU6IFwiX2RiY3NcIixcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiByZXF1aXJlX2NwOTUwKCkuY29uY2F0KHJlcXVpcmVfYmlnNV9hZGRlZCgpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5jb2RlU2tpcFZhbHM6IFtcbiAgICAgICAgICAvLyBBbHRob3VnaCBFbmNvZGluZyBTdGFuZGFyZCBzYXlzIHdlIHNob3VsZCBhdm9pZCBlbmNvZGluZyB0byBIS1NDUyBhcmVhIChTZWUgU3RlcCAxIG9mXG4gICAgICAgICAgLy8gaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvI2luZGV4LWJpZzUtcG9pbnRlciksIHdlIHN0aWxsIGRvIGl0IHRvIGluY3JlYXNlIGNvbXBhdGliaWxpdHkgd2l0aCBJQ1UuXG4gICAgICAgICAgLy8gQnV0IGlmIGEgc2luZ2xlIHVuaWNvZGUgcG9pbnQgY2FuIGJlIGVuY29kZWQgYm90aCBhcyBIS1NDUyBhbmQgcmVndWxhciBCaWc1LCB3ZSBwcmVmZXIgdGhlIGxhdHRlci5cbiAgICAgICAgICAzNjQ1NyxcbiAgICAgICAgICAzNjQ2MyxcbiAgICAgICAgICAzNjQ3OCxcbiAgICAgICAgICAzNjUyMyxcbiAgICAgICAgICAzNjUzMixcbiAgICAgICAgICAzNjU1NyxcbiAgICAgICAgICAzNjU2MCxcbiAgICAgICAgICAzNjY5NSxcbiAgICAgICAgICAzNjcxMyxcbiAgICAgICAgICAzNjcxOCxcbiAgICAgICAgICAzNjgxMSxcbiAgICAgICAgICAzNjg2MixcbiAgICAgICAgICAzNjk3MyxcbiAgICAgICAgICAzNjk4NixcbiAgICAgICAgICAzNzA2MCxcbiAgICAgICAgICAzNzA4NCxcbiAgICAgICAgICAzNzEwNSxcbiAgICAgICAgICAzNzMxMSxcbiAgICAgICAgICAzNzU1MSxcbiAgICAgICAgICAzNzU1MixcbiAgICAgICAgICAzNzU1MyxcbiAgICAgICAgICAzNzU1NCxcbiAgICAgICAgICAzNzU4NSxcbiAgICAgICAgICAzNzk1OSxcbiAgICAgICAgICAzODA5MCxcbiAgICAgICAgICAzODM2MSxcbiAgICAgICAgICAzODY1MixcbiAgICAgICAgICAzOTI4NSxcbiAgICAgICAgICAzOTc5OCxcbiAgICAgICAgICAzOTgwMCxcbiAgICAgICAgICAzOTgwMyxcbiAgICAgICAgICAzOTg3OCxcbiAgICAgICAgICAzOTkwMixcbiAgICAgICAgICAzOTkxNixcbiAgICAgICAgICAzOTkyNixcbiAgICAgICAgICA0MDAwMixcbiAgICAgICAgICA0MDAxOSxcbiAgICAgICAgICA0MDAzNCxcbiAgICAgICAgICA0MDA0MCxcbiAgICAgICAgICA0MDA0MyxcbiAgICAgICAgICA0MDA1NSxcbiAgICAgICAgICA0MDEyNCxcbiAgICAgICAgICA0MDEyNSxcbiAgICAgICAgICA0MDE0NCxcbiAgICAgICAgICA0MDI3OSxcbiAgICAgICAgICA0MDI4MixcbiAgICAgICAgICA0MDM4OCxcbiAgICAgICAgICA0MDQzMSxcbiAgICAgICAgICA0MDQ0MyxcbiAgICAgICAgICA0MDYxNyxcbiAgICAgICAgICA0MDY4NyxcbiAgICAgICAgICA0MDcwMSxcbiAgICAgICAgICA0MDgwMCxcbiAgICAgICAgICA0MDkwNyxcbiAgICAgICAgICA0MTA3OSxcbiAgICAgICAgICA0MTE4MCxcbiAgICAgICAgICA0MTE4MyxcbiAgICAgICAgICAzNjgxMixcbiAgICAgICAgICAzNzU3NixcbiAgICAgICAgICAzODQ2OCxcbiAgICAgICAgICAzODYzNyxcbiAgICAgICAgICAvLyBTdGVwIDIgb2YgaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvI2luZGV4LWJpZzUtcG9pbnRlcjogVXNlIGxhc3QgcG9pbnRlciBmb3IgVSsyNTUwLCBVKzI1NUUsIFUrMjU2MSwgVSsyNTZBLCBVKzUzNDEsIG9yIFUrNTM0NVxuICAgICAgICAgIDQxNjM2LFxuICAgICAgICAgIDQxNjM3LFxuICAgICAgICAgIDQxNjM5LFxuICAgICAgICAgIDQxNjM4LFxuICAgICAgICAgIDQxNjc2LFxuICAgICAgICAgIDQxNjc4XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcImNuYmlnNVwiOiBcImJpZzVoa3Njc1wiLFxuICAgICAgXCJjc2JpZzVcIjogXCJiaWc1aGtzY3NcIixcbiAgICAgIFwieHhiaWc1XCI6IFwiYmlnNWhrc2NzXCJcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9pbmRleC5qc1xudmFyIHJlcXVpcmVfZW5jb2RpbmdzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIG1vZHVsZXMgPSBbXG4gICAgICByZXF1aXJlX2ludGVybmFsKCksXG4gICAgICByZXF1aXJlX3V0ZjMyKCksXG4gICAgICByZXF1aXJlX3V0ZjE2KCksXG4gICAgICByZXF1aXJlX3V0ZjcoKSxcbiAgICAgIHJlcXVpcmVfc2Jjc19jb2RlYygpLFxuICAgICAgcmVxdWlyZV9zYmNzX2RhdGEoKSxcbiAgICAgIHJlcXVpcmVfc2Jjc19kYXRhX2dlbmVyYXRlZCgpLFxuICAgICAgcmVxdWlyZV9kYmNzX2NvZGVjKCksXG4gICAgICByZXF1aXJlX2RiY3NfZGF0YSgpXG4gICAgXTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgbW9kdWxlMiA9IG1vZHVsZXNbaV07XG4gICAgICBmb3IgKGVuYyBpbiBtb2R1bGUyKVxuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZHVsZTIsIGVuYykpXG4gICAgICAgICAgZXhwb3J0czJbZW5jXSA9IG1vZHVsZTJbZW5jXTtcbiAgICB9XG4gICAgdmFyIG1vZHVsZTI7XG4gICAgdmFyIGVuYztcbiAgICB2YXIgaTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9saWIvc3RyZWFtcy5qc1xudmFyIHJlcXVpcmVfc3RyZWFtcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9saWIvc3RyZWFtcy5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVyKCkuQnVmZmVyO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uKHN0cmVhbV9tb2R1bGUpIHtcbiAgICAgIHZhciBUcmFuc2Zvcm0gPSBzdHJlYW1fbW9kdWxlLlRyYW5zZm9ybTtcbiAgICAgIGZ1bmN0aW9uIEljb252TGl0ZUVuY29kZXJTdHJlYW0oY29udiwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLmNvbnYgPSBjb252O1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgb3B0aW9ucy5kZWNvZGVTdHJpbmdzID0gZmFsc2U7XG4gICAgICAgIFRyYW5zZm9ybS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgSWNvbnZMaXRlRW5jb2RlclN0cmVhbS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFRyYW5zZm9ybS5wcm90b3R5cGUsIHtcbiAgICAgICAgY29uc3RydWN0b3I6IHsgdmFsdWU6IEljb252TGl0ZUVuY29kZXJTdHJlYW0gfVxuICAgICAgfSk7XG4gICAgICBJY29udkxpdGVFbmNvZGVyU3RyZWFtLnByb3RvdHlwZS5fdHJhbnNmb3JtID0gZnVuY3Rpb24oY2h1bmssIGVuY29kaW5nLCBkb25lKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2h1bmsgIT0gXCJzdHJpbmdcIilcbiAgICAgICAgICByZXR1cm4gZG9uZShuZXcgRXJyb3IoXCJJY29udiBlbmNvZGluZyBzdHJlYW0gbmVlZHMgc3RyaW5ncyBhcyBpdHMgaW5wdXQuXCIpKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YXIgcmVzID0gdGhpcy5jb252LndyaXRlKGNodW5rKTtcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5sZW5ndGgpIHRoaXMucHVzaChyZXMpO1xuICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGRvbmUoZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBJY29udkxpdGVFbmNvZGVyU3RyZWFtLnByb3RvdHlwZS5fZmx1c2ggPSBmdW5jdGlvbihkb25lKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHJlcyA9IHRoaXMuY29udi5lbmQoKTtcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5sZW5ndGgpIHRoaXMucHVzaChyZXMpO1xuICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGRvbmUoZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBJY29udkxpdGVFbmNvZGVyU3RyZWFtLnByb3RvdHlwZS5jb2xsZWN0ID0gZnVuY3Rpb24oY2IpIHtcbiAgICAgICAgdmFyIGNodW5rcyA9IFtdO1xuICAgICAgICB0aGlzLm9uKFwiZXJyb3JcIiwgY2IpO1xuICAgICAgICB0aGlzLm9uKFwiZGF0YVwiLCBmdW5jdGlvbihjaHVuaykge1xuICAgICAgICAgIGNodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub24oXCJlbmRcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgY2IobnVsbCwgQnVmZmVyMi5jb25jYXQoY2h1bmtzKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH07XG4gICAgICBmdW5jdGlvbiBJY29udkxpdGVEZWNvZGVyU3RyZWFtKGNvbnYsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5jb252ID0gY29udjtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICAgIG9wdGlvbnMuZW5jb2RpbmcgPSB0aGlzLmVuY29kaW5nID0gXCJ1dGY4XCI7XG4gICAgICAgIFRyYW5zZm9ybS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgSWNvbnZMaXRlRGVjb2RlclN0cmVhbS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFRyYW5zZm9ybS5wcm90b3R5cGUsIHtcbiAgICAgICAgY29uc3RydWN0b3I6IHsgdmFsdWU6IEljb252TGl0ZURlY29kZXJTdHJlYW0gfVxuICAgICAgfSk7XG4gICAgICBJY29udkxpdGVEZWNvZGVyU3RyZWFtLnByb3RvdHlwZS5fdHJhbnNmb3JtID0gZnVuY3Rpb24oY2h1bmssIGVuY29kaW5nLCBkb25lKSB7XG4gICAgICAgIGlmICghQnVmZmVyMi5pc0J1ZmZlcihjaHVuaykgJiYgIShjaHVuayBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKVxuICAgICAgICAgIHJldHVybiBkb25lKG5ldyBFcnJvcihcIkljb252IGRlY29kaW5nIHN0cmVhbSBuZWVkcyBidWZmZXJzIGFzIGl0cyBpbnB1dC5cIikpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciByZXMgPSB0aGlzLmNvbnYud3JpdGUoY2h1bmspO1xuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmxlbmd0aCkgdGhpcy5wdXNoKHJlcywgdGhpcy5lbmNvZGluZyk7XG4gICAgICAgICAgZG9uZSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgZG9uZShlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIEljb252TGl0ZURlY29kZXJTdHJlYW0ucHJvdG90eXBlLl9mbHVzaCA9IGZ1bmN0aW9uKGRvbmUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YXIgcmVzID0gdGhpcy5jb252LmVuZCgpO1xuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmxlbmd0aCkgdGhpcy5wdXNoKHJlcywgdGhpcy5lbmNvZGluZyk7XG4gICAgICAgICAgZG9uZSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgZG9uZShlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIEljb252TGl0ZURlY29kZXJTdHJlYW0ucHJvdG90eXBlLmNvbGxlY3QgPSBmdW5jdGlvbihjYikge1xuICAgICAgICB2YXIgcmVzID0gXCJcIjtcbiAgICAgICAgdGhpcy5vbihcImVycm9yXCIsIGNiKTtcbiAgICAgICAgdGhpcy5vbihcImRhdGFcIiwgZnVuY3Rpb24oY2h1bmspIHtcbiAgICAgICAgICByZXMgKz0gY2h1bms7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uKFwiZW5kXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGNiKG51bGwsIHJlcyk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBJY29udkxpdGVFbmNvZGVyU3RyZWFtLFxuICAgICAgICBJY29udkxpdGVEZWNvZGVyU3RyZWFtXG4gICAgICB9O1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvbGliL2luZGV4LmpzXG52YXIgcmVxdWlyZV9saWIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvbGliL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQnVmZmVyMiA9IHJlcXVpcmVfc2FmZXIoKS5CdWZmZXI7XG4gICAgdmFyIGJvbUhhbmRsaW5nID0gcmVxdWlyZV9ib21faGFuZGxpbmcoKTtcbiAgICB2YXIgaWNvbnYgPSBtb2R1bGUyLmV4cG9ydHM7XG4gICAgaWNvbnYuZW5jb2RpbmdzID0gbnVsbDtcbiAgICBpY29udi5kZWZhdWx0Q2hhclVuaWNvZGUgPSBcIlxcdUZGRkRcIjtcbiAgICBpY29udi5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUgPSBcIj9cIjtcbiAgICBpY29udi5lbmNvZGUgPSBmdW5jdGlvbiBlbmNvZGUoc3RyLCBlbmNvZGluZywgb3B0aW9ucykge1xuICAgICAgc3RyID0gXCJcIiArIChzdHIgfHwgXCJcIik7XG4gICAgICB2YXIgZW5jb2RlciA9IGljb252LmdldEVuY29kZXIoZW5jb2RpbmcsIG9wdGlvbnMpO1xuICAgICAgdmFyIHJlcyA9IGVuY29kZXIud3JpdGUoc3RyKTtcbiAgICAgIHZhciB0cmFpbCA9IGVuY29kZXIuZW5kKCk7XG4gICAgICByZXR1cm4gdHJhaWwgJiYgdHJhaWwubGVuZ3RoID4gMCA/IEJ1ZmZlcjIuY29uY2F0KFtyZXMsIHRyYWlsXSkgOiByZXM7XG4gICAgfTtcbiAgICBpY29udi5kZWNvZGUgPSBmdW5jdGlvbiBkZWNvZGUoYnVmLCBlbmNvZGluZywgb3B0aW9ucykge1xuICAgICAgaWYgKHR5cGVvZiBidWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgaWYgKCFpY29udi5za2lwRGVjb2RlV2FybmluZykge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJJY29udi1saXRlIHdhcm5pbmc6IGRlY29kZSgpLWluZyBzdHJpbmdzIGlzIGRlcHJlY2F0ZWQuIFJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2h0dWNoa2luL2ljb252LWxpdGUvd2lraS9Vc2UtQnVmZmVycy13aGVuLWRlY29kaW5nXCIpO1xuICAgICAgICAgIGljb252LnNraXBEZWNvZGVXYXJuaW5nID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBidWYgPSBCdWZmZXIyLmZyb20oXCJcIiArIChidWYgfHwgXCJcIiksIFwiYmluYXJ5XCIpO1xuICAgICAgfVxuICAgICAgdmFyIGRlY29kZXIgPSBpY29udi5nZXREZWNvZGVyKGVuY29kaW5nLCBvcHRpb25zKTtcbiAgICAgIHZhciByZXMgPSBkZWNvZGVyLndyaXRlKGJ1Zik7XG4gICAgICB2YXIgdHJhaWwgPSBkZWNvZGVyLmVuZCgpO1xuICAgICAgcmV0dXJuIHRyYWlsID8gcmVzICsgdHJhaWwgOiByZXM7XG4gICAgfTtcbiAgICBpY29udi5lbmNvZGluZ0V4aXN0cyA9IGZ1bmN0aW9uIGVuY29kaW5nRXhpc3RzKGVuYykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWNvbnYuZ2V0Q29kZWMoZW5jKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGljb252LnRvRW5jb2RpbmcgPSBpY29udi5lbmNvZGU7XG4gICAgaWNvbnYuZnJvbUVuY29kaW5nID0gaWNvbnYuZGVjb2RlO1xuICAgIGljb252Ll9jb2RlY0RhdGFDYWNoZSA9IHt9O1xuICAgIGljb252LmdldENvZGVjID0gZnVuY3Rpb24gZ2V0Q29kZWMoZW5jb2RpbmcpIHtcbiAgICAgIGlmICghaWNvbnYuZW5jb2RpbmdzKVxuICAgICAgICBpY29udi5lbmNvZGluZ3MgPSByZXF1aXJlX2VuY29kaW5ncygpO1xuICAgICAgdmFyIGVuYyA9IGljb252Ll9jYW5vbmljYWxpemVFbmNvZGluZyhlbmNvZGluZyk7XG4gICAgICB2YXIgY29kZWNPcHRpb25zID0ge307XG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICB2YXIgY29kZWMgPSBpY29udi5fY29kZWNEYXRhQ2FjaGVbZW5jXTtcbiAgICAgICAgaWYgKGNvZGVjKVxuICAgICAgICAgIHJldHVybiBjb2RlYztcbiAgICAgICAgdmFyIGNvZGVjRGVmID0gaWNvbnYuZW5jb2RpbmdzW2VuY107XG4gICAgICAgIHN3aXRjaCAodHlwZW9mIGNvZGVjRGVmKSB7XG4gICAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgICAgZW5jID0gY29kZWNEZWY7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gY29kZWNEZWYpXG4gICAgICAgICAgICAgIGNvZGVjT3B0aW9uc1trZXldID0gY29kZWNEZWZba2V5XTtcbiAgICAgICAgICAgIGlmICghY29kZWNPcHRpb25zLmVuY29kaW5nTmFtZSlcbiAgICAgICAgICAgICAgY29kZWNPcHRpb25zLmVuY29kaW5nTmFtZSA9IGVuYztcbiAgICAgICAgICAgIGVuYyA9IGNvZGVjRGVmLnR5cGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgIGlmICghY29kZWNPcHRpb25zLmVuY29kaW5nTmFtZSlcbiAgICAgICAgICAgICAgY29kZWNPcHRpb25zLmVuY29kaW5nTmFtZSA9IGVuYztcbiAgICAgICAgICAgIGNvZGVjID0gbmV3IGNvZGVjRGVmKGNvZGVjT3B0aW9ucywgaWNvbnYpO1xuICAgICAgICAgICAgaWNvbnYuX2NvZGVjRGF0YUNhY2hlW2NvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWVdID0gY29kZWM7XG4gICAgICAgICAgICByZXR1cm4gY29kZWM7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVuY29kaW5nIG5vdCByZWNvZ25pemVkOiAnXCIgKyBlbmNvZGluZyArIFwiJyAoc2VhcmNoZWQgYXM6ICdcIiArIGVuYyArIFwiJylcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIGljb252Ll9jYW5vbmljYWxpemVFbmNvZGluZyA9IGZ1bmN0aW9uKGVuY29kaW5nKSB7XG4gICAgICByZXR1cm4gKFwiXCIgKyBlbmNvZGluZykudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC86XFxkezR9JHxbXjAtOWEtel0vZywgXCJcIik7XG4gICAgfTtcbiAgICBpY29udi5nZXRFbmNvZGVyID0gZnVuY3Rpb24gZ2V0RW5jb2RlcihlbmNvZGluZywgb3B0aW9ucykge1xuICAgICAgdmFyIGNvZGVjID0gaWNvbnYuZ2V0Q29kZWMoZW5jb2RpbmcpLCBlbmNvZGVyID0gbmV3IGNvZGVjLmVuY29kZXIob3B0aW9ucywgY29kZWMpO1xuICAgICAgaWYgKGNvZGVjLmJvbUF3YXJlICYmIG9wdGlvbnMgJiYgb3B0aW9ucy5hZGRCT00pXG4gICAgICAgIGVuY29kZXIgPSBuZXcgYm9tSGFuZGxpbmcuUHJlcGVuZEJPTShlbmNvZGVyLCBvcHRpb25zKTtcbiAgICAgIHJldHVybiBlbmNvZGVyO1xuICAgIH07XG4gICAgaWNvbnYuZ2V0RGVjb2RlciA9IGZ1bmN0aW9uIGdldERlY29kZXIoZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBjb2RlYyA9IGljb252LmdldENvZGVjKGVuY29kaW5nKSwgZGVjb2RlciA9IG5ldyBjb2RlYy5kZWNvZGVyKG9wdGlvbnMsIGNvZGVjKTtcbiAgICAgIGlmIChjb2RlYy5ib21Bd2FyZSAmJiAhKG9wdGlvbnMgJiYgb3B0aW9ucy5zdHJpcEJPTSA9PT0gZmFsc2UpKVxuICAgICAgICBkZWNvZGVyID0gbmV3IGJvbUhhbmRsaW5nLlN0cmlwQk9NKGRlY29kZXIsIG9wdGlvbnMpO1xuICAgICAgcmV0dXJuIGRlY29kZXI7XG4gICAgfTtcbiAgICBpY29udi5lbmFibGVTdHJlYW1pbmdBUEkgPSBmdW5jdGlvbiBlbmFibGVTdHJlYW1pbmdBUEkoc3RyZWFtX21vZHVsZTIpIHtcbiAgICAgIGlmIChpY29udi5zdXBwb3J0c1N0cmVhbXMpXG4gICAgICAgIHJldHVybjtcbiAgICAgIHZhciBzdHJlYW1zID0gcmVxdWlyZV9zdHJlYW1zKCkoc3RyZWFtX21vZHVsZTIpO1xuICAgICAgaWNvbnYuSWNvbnZMaXRlRW5jb2RlclN0cmVhbSA9IHN0cmVhbXMuSWNvbnZMaXRlRW5jb2RlclN0cmVhbTtcbiAgICAgIGljb252Lkljb252TGl0ZURlY29kZXJTdHJlYW0gPSBzdHJlYW1zLkljb252TGl0ZURlY29kZXJTdHJlYW07XG4gICAgICBpY29udi5lbmNvZGVTdHJlYW0gPSBmdW5jdGlvbiBlbmNvZGVTdHJlYW0oZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBpY29udi5JY29udkxpdGVFbmNvZGVyU3RyZWFtKGljb252LmdldEVuY29kZXIoZW5jb2RpbmcsIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgICAgIH07XG4gICAgICBpY29udi5kZWNvZGVTdHJlYW0gPSBmdW5jdGlvbiBkZWNvZGVTdHJlYW0oZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBpY29udi5JY29udkxpdGVEZWNvZGVyU3RyZWFtKGljb252LmdldERlY29kZXIoZW5jb2RpbmcsIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgICAgIH07XG4gICAgICBpY29udi5zdXBwb3J0c1N0cmVhbXMgPSB0cnVlO1xuICAgIH07XG4gICAgdmFyIHN0cmVhbV9tb2R1bGU7XG4gICAgdHJ5IHtcbiAgICAgIHN0cmVhbV9tb2R1bGUgPSByZXF1aXJlKFwic3RyZWFtXCIpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICB9XG4gICAgaWYgKHN0cmVhbV9tb2R1bGUgJiYgc3RyZWFtX21vZHVsZS5UcmFuc2Zvcm0pIHtcbiAgICAgIGljb252LmVuYWJsZVN0cmVhbWluZ0FQSShzdHJlYW1fbW9kdWxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWNvbnYuZW5jb2RlU3RyZWFtID0gaWNvbnYuZGVjb2RlU3RyZWFtID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImljb252LWxpdGUgU3RyZWFtaW5nIEFQSSBpcyBub3QgZW5hYmxlZC4gVXNlIGljb252LmVuYWJsZVN0cmVhbWluZ0FQSShyZXF1aXJlKCdzdHJlYW0nKSk7IHRvIGVuYWJsZSBpdC5cIik7XG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJpY29udi1saXRlIHdhcm5pbmc6IGpzIGZpbGVzIHVzZSBub24tdXRmOCBlbmNvZGluZy4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2h0dWNoa2luL2ljb252LWxpdGUvd2lraS9KYXZhc2NyaXB0LXNvdXJjZS1maWxlLWVuY29kaW5ncyBmb3IgbW9yZSBpbmZvLlwiKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdW5waXBlL2luZGV4LmpzXG52YXIgcmVxdWlyZV91bnBpcGUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvdW5waXBlL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB1bnBpcGU7XG4gICAgZnVuY3Rpb24gaGFzUGlwZURhdGFMaXN0ZW5lcnMoc3RyZWFtKSB7XG4gICAgICB2YXIgbGlzdGVuZXJzID0gc3RyZWFtLmxpc3RlbmVycyhcImRhdGFcIik7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAobGlzdGVuZXJzW2ldLm5hbWUgPT09IFwib25kYXRhXCIpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1bnBpcGUoc3RyZWFtKSB7XG4gICAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgc3RyZWFtIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBzdHJlYW0udW5waXBlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgc3RyZWFtLnVucGlwZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoIWhhc1BpcGVEYXRhTGlzdGVuZXJzKHN0cmVhbSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIGxpc3RlbmVyO1xuICAgICAgdmFyIGxpc3RlbmVycyA9IHN0cmVhbS5saXN0ZW5lcnMoXCJjbG9zZVwiKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxpc3RlbmVyID0gbGlzdGVuZXJzW2ldO1xuICAgICAgICBpZiAobGlzdGVuZXIubmFtZSAhPT0gXCJjbGVhbnVwXCIgJiYgbGlzdGVuZXIubmFtZSAhPT0gXCJvbmNsb3NlXCIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBsaXN0ZW5lci5jYWxsKHN0cmVhbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L2luZGV4LmpzXG52YXIgcmVxdWlyZV9yYXdfYm9keSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGFzeW5jSG9va3MgPSB0cnlSZXF1aXJlQXN5bmNIb29rcygpO1xuICAgIHZhciBieXRlcyA9IHJlcXVpcmVfYnl0ZXMoKTtcbiAgICB2YXIgY3JlYXRlRXJyb3IgPSByZXF1aXJlX2h0dHBfZXJyb3JzKCk7XG4gICAgdmFyIGljb252ID0gcmVxdWlyZV9saWIoKTtcbiAgICB2YXIgdW5waXBlID0gcmVxdWlyZV91bnBpcGUoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBnZXRSYXdCb2R5MjtcbiAgICB2YXIgSUNPTlZfRU5DT0RJTkdfTUVTU0FHRV9SRUdFWFAgPSAvXkVuY29kaW5nIG5vdCByZWNvZ25pemVkOiAvO1xuICAgIGZ1bmN0aW9uIGdldERlY29kZXIoZW5jb2RpbmcpIHtcbiAgICAgIGlmICghZW5jb2RpbmcpIHJldHVybiBudWxsO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGljb252LmdldERlY29kZXIoZW5jb2RpbmcpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoIUlDT05WX0VOQ09ESU5HX01FU1NBR0VfUkVHRVhQLnRlc3QoZS5tZXNzYWdlKSkgdGhyb3cgZTtcbiAgICAgICAgdGhyb3cgY3JlYXRlRXJyb3IoNDE1LCBcInNwZWNpZmllZCBlbmNvZGluZyB1bnN1cHBvcnRlZFwiLCB7XG4gICAgICAgICAgZW5jb2RpbmcsXG4gICAgICAgICAgdHlwZTogXCJlbmNvZGluZy51bnN1cHBvcnRlZFwiXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRSYXdCb2R5MihzdHJlYW0sIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgZG9uZSA9IGNhbGxiYWNrO1xuICAgICAgdmFyIG9wdHMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgaWYgKHN0cmVhbSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzdHJlYW0gaXMgcmVxdWlyZWRcIik7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdHJlYW0gIT09IFwib2JqZWN0XCIgfHwgc3RyZWFtID09PSBudWxsIHx8IHR5cGVvZiBzdHJlYW0ub24gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgc3RyZWFtIG11c3QgYmUgYSBzdHJlYW1cIik7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucyA9PT0gdHJ1ZSB8fCB0eXBlb2Ygb3B0aW9ucyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBvcHRzID0ge1xuICAgICAgICAgIGVuY29kaW5nOiBvcHRpb25zXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBkb25lID0gb3B0aW9ucztcbiAgICAgICAgb3B0cyA9IHt9O1xuICAgICAgfVxuICAgICAgaWYgKGRvbmUgIT09IHZvaWQgMCAmJiB0eXBlb2YgZG9uZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4gICAgICB9XG4gICAgICBpZiAoIWRvbmUgJiYgIWdsb2JhbC5Qcm9taXNlKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBjYWxsYmFjayBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBlbmNvZGluZyA9IG9wdHMuZW5jb2RpbmcgIT09IHRydWUgPyBvcHRzLmVuY29kaW5nIDogXCJ1dGYtOFwiO1xuICAgICAgdmFyIGxpbWl0ID0gYnl0ZXMucGFyc2Uob3B0cy5saW1pdCk7XG4gICAgICB2YXIgbGVuZ3RoID0gb3B0cy5sZW5ndGggIT0gbnVsbCAmJiAhaXNOYU4ob3B0cy5sZW5ndGgpID8gcGFyc2VJbnQob3B0cy5sZW5ndGgsIDEwKSA6IG51bGw7XG4gICAgICBpZiAoZG9uZSkge1xuICAgICAgICByZXR1cm4gcmVhZFN0cmVhbShzdHJlYW0sIGVuY29kaW5nLCBsZW5ndGgsIGxpbWl0LCB3cmFwKGRvbmUpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiBleGVjdXRvcihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgcmVhZFN0cmVhbShzdHJlYW0sIGVuY29kaW5nLCBsZW5ndGgsIGxpbWl0LCBmdW5jdGlvbiBvblJlYWQoZXJyMiwgYnVmKSB7XG4gICAgICAgICAgaWYgKGVycjIpIHJldHVybiByZWplY3QoZXJyMik7XG4gICAgICAgICAgcmVzb2x2ZShidWYpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYWx0KHN0cmVhbSkge1xuICAgICAgdW5waXBlKHN0cmVhbSk7XG4gICAgICBpZiAodHlwZW9mIHN0cmVhbS5wYXVzZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHN0cmVhbS5wYXVzZSgpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWFkU3RyZWFtKHN0cmVhbSwgZW5jb2RpbmcsIGxlbmd0aCwgbGltaXQsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgY29tcGxldGUgPSBmYWxzZTtcbiAgICAgIHZhciBzeW5jID0gdHJ1ZTtcbiAgICAgIGlmIChsaW1pdCAhPT0gbnVsbCAmJiBsZW5ndGggIT09IG51bGwgJiYgbGVuZ3RoID4gbGltaXQpIHtcbiAgICAgICAgcmV0dXJuIGRvbmUoY3JlYXRlRXJyb3IoNDEzLCBcInJlcXVlc3QgZW50aXR5IHRvbyBsYXJnZVwiLCB7XG4gICAgICAgICAgZXhwZWN0ZWQ6IGxlbmd0aCxcbiAgICAgICAgICBsZW5ndGgsXG4gICAgICAgICAgbGltaXQsXG4gICAgICAgICAgdHlwZTogXCJlbnRpdHkudG9vLmxhcmdlXCJcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgICAgdmFyIHN0YXRlID0gc3RyZWFtLl9yZWFkYWJsZVN0YXRlO1xuICAgICAgaWYgKHN0cmVhbS5fZGVjb2RlciB8fCBzdGF0ZSAmJiAoc3RhdGUuZW5jb2RpbmcgfHwgc3RhdGUuZGVjb2RlcikpIHtcbiAgICAgICAgcmV0dXJuIGRvbmUoY3JlYXRlRXJyb3IoNTAwLCBcInN0cmVhbSBlbmNvZGluZyBzaG91bGQgbm90IGJlIHNldFwiLCB7XG4gICAgICAgICAgdHlwZTogXCJzdHJlYW0uZW5jb2Rpbmcuc2V0XCJcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBzdHJlYW0ucmVhZGFibGUgIT09IFwidW5kZWZpbmVkXCIgJiYgIXN0cmVhbS5yZWFkYWJsZSkge1xuICAgICAgICByZXR1cm4gZG9uZShjcmVhdGVFcnJvcig1MDAsIFwic3RyZWFtIGlzIG5vdCByZWFkYWJsZVwiLCB7XG4gICAgICAgICAgdHlwZTogXCJzdHJlYW0ubm90LnJlYWRhYmxlXCJcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgICAgdmFyIHJlY2VpdmVkID0gMDtcbiAgICAgIHZhciBkZWNvZGVyO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZGVjb2RlciA9IGdldERlY29kZXIoZW5jb2RpbmcpO1xuICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICByZXR1cm4gZG9uZShlcnIyKTtcbiAgICAgIH1cbiAgICAgIHZhciBidWZmZXIgPSBkZWNvZGVyID8gXCJcIiA6IFtdO1xuICAgICAgc3RyZWFtLm9uKFwiYWJvcnRlZFwiLCBvbkFib3J0ZWQpO1xuICAgICAgc3RyZWFtLm9uKFwiY2xvc2VcIiwgY2xlYW51cCk7XG4gICAgICBzdHJlYW0ub24oXCJkYXRhXCIsIG9uRGF0YSk7XG4gICAgICBzdHJlYW0ub24oXCJlbmRcIiwgb25FbmQpO1xuICAgICAgc3RyZWFtLm9uKFwiZXJyb3JcIiwgb25FbmQpO1xuICAgICAgc3luYyA9IGZhbHNlO1xuICAgICAgZnVuY3Rpb24gZG9uZSgpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICAgICAgY29tcGxldGUgPSB0cnVlO1xuICAgICAgICBpZiAoc3luYykge1xuICAgICAgICAgIHByb2Nlc3MubmV4dFRpY2soaW52b2tlQ2FsbGJhY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGludm9rZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaW52b2tlQ2FsbGJhY2soKSB7XG4gICAgICAgICAgY2xlYW51cCgpO1xuICAgICAgICAgIGlmIChhcmdzWzBdKSB7XG4gICAgICAgICAgICBoYWx0KHN0cmVhbSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KG51bGwsIGFyZ3MpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBvbkFib3J0ZWQoKSB7XG4gICAgICAgIGlmIChjb21wbGV0ZSkgcmV0dXJuO1xuICAgICAgICBkb25lKGNyZWF0ZUVycm9yKDQwMCwgXCJyZXF1ZXN0IGFib3J0ZWRcIiwge1xuICAgICAgICAgIGNvZGU6IFwiRUNPTk5BQk9SVEVEXCIsXG4gICAgICAgICAgZXhwZWN0ZWQ6IGxlbmd0aCxcbiAgICAgICAgICBsZW5ndGgsXG4gICAgICAgICAgcmVjZWl2ZWQsXG4gICAgICAgICAgdHlwZTogXCJyZXF1ZXN0LmFib3J0ZWRcIlxuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBvbkRhdGEoY2h1bmspIHtcbiAgICAgICAgaWYgKGNvbXBsZXRlKSByZXR1cm47XG4gICAgICAgIHJlY2VpdmVkICs9IGNodW5rLmxlbmd0aDtcbiAgICAgICAgaWYgKGxpbWl0ICE9PSBudWxsICYmIHJlY2VpdmVkID4gbGltaXQpIHtcbiAgICAgICAgICBkb25lKGNyZWF0ZUVycm9yKDQxMywgXCJyZXF1ZXN0IGVudGl0eSB0b28gbGFyZ2VcIiwge1xuICAgICAgICAgICAgbGltaXQsXG4gICAgICAgICAgICByZWNlaXZlZCxcbiAgICAgICAgICAgIHR5cGU6IFwiZW50aXR5LnRvby5sYXJnZVwiXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGRlY29kZXIpIHtcbiAgICAgICAgICBidWZmZXIgKz0gZGVjb2Rlci53cml0ZShjaHVuayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnVmZmVyLnB1c2goY2h1bmspO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBvbkVuZChlcnIyKSB7XG4gICAgICAgIGlmIChjb21wbGV0ZSkgcmV0dXJuO1xuICAgICAgICBpZiAoZXJyMikgcmV0dXJuIGRvbmUoZXJyMik7XG4gICAgICAgIGlmIChsZW5ndGggIT09IG51bGwgJiYgcmVjZWl2ZWQgIT09IGxlbmd0aCkge1xuICAgICAgICAgIGRvbmUoY3JlYXRlRXJyb3IoNDAwLCBcInJlcXVlc3Qgc2l6ZSBkaWQgbm90IG1hdGNoIGNvbnRlbnQgbGVuZ3RoXCIsIHtcbiAgICAgICAgICAgIGV4cGVjdGVkOiBsZW5ndGgsXG4gICAgICAgICAgICBsZW5ndGgsXG4gICAgICAgICAgICByZWNlaXZlZCxcbiAgICAgICAgICAgIHR5cGU6IFwicmVxdWVzdC5zaXplLmludmFsaWRcIlxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgc3RyaW5nID0gZGVjb2RlciA/IGJ1ZmZlciArIChkZWNvZGVyLmVuZCgpIHx8IFwiXCIpIDogQnVmZmVyLmNvbmNhdChidWZmZXIpO1xuICAgICAgICAgIGRvbmUobnVsbCwgc3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgICAgYnVmZmVyID0gbnVsbDtcbiAgICAgICAgc3RyZWFtLnJlbW92ZUxpc3RlbmVyKFwiYWJvcnRlZFwiLCBvbkFib3J0ZWQpO1xuICAgICAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoXCJkYXRhXCIsIG9uRGF0YSk7XG4gICAgICAgIHN0cmVhbS5yZW1vdmVMaXN0ZW5lcihcImVuZFwiLCBvbkVuZCk7XG4gICAgICAgIHN0cmVhbS5yZW1vdmVMaXN0ZW5lcihcImVycm9yXCIsIG9uRW5kKTtcbiAgICAgICAgc3RyZWFtLnJlbW92ZUxpc3RlbmVyKFwiY2xvc2VcIiwgY2xlYW51cCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyeVJlcXVpcmVBc3luY0hvb2tzKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoXCJhc3luY19ob29rc1wiKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB3cmFwKGZuKSB7XG4gICAgICB2YXIgcmVzO1xuICAgICAgaWYgKGFzeW5jSG9va3MuQXN5bmNSZXNvdXJjZSkge1xuICAgICAgICByZXMgPSBuZXcgYXN5bmNIb29rcy5Bc3luY1Jlc291cmNlKGZuLm5hbWUgfHwgXCJib3VuZC1hbm9ueW1vdXMtZm5cIik7XG4gICAgICB9XG4gICAgICBpZiAoIXJlcyB8fCAhcmVzLnJ1bkluQXN5bmNTY29wZSkge1xuICAgICAgICByZXR1cm4gZm47XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzLnJ1bkluQXN5bmNTY29wZS5iaW5kKHJlcywgZm4sIG51bGwpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jb250ZW50LXR5cGUvaW5kZXguanNcbnZhciByZXF1aXJlX2NvbnRlbnRfdHlwZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb250ZW50LXR5cGUvaW5kZXguanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBQQVJBTV9SRUdFWFAgPSAvOyAqKFshIyQlJicqKy5eX2B8fjAtOUEtWmEtei1dKykgKj0gKihcIig/OltcXHUwMDBiXFx1MDAyMFxcdTAwMjFcXHUwMDIzLVxcdTAwNWJcXHUwMDVkLVxcdTAwN2VcXHUwMDgwLVxcdTAwZmZdfFxcXFxbXFx1MDAwYlxcdTAwMjAtXFx1MDBmZl0pKlwifFshIyQlJicqKy5eX2B8fjAtOUEtWmEtei1dKykgKi9nO1xuICAgIHZhciBURVhUX1JFR0VYUCA9IC9eW1xcdTAwMGJcXHUwMDIwLVxcdTAwN2VcXHUwMDgwLVxcdTAwZmZdKyQvO1xuICAgIHZhciBUT0tFTl9SRUdFWFAgPSAvXlshIyQlJicqKy5eX2B8fjAtOUEtWmEtei1dKyQvO1xuICAgIHZhciBRRVNDX1JFR0VYUCA9IC9cXFxcKFtcXHUwMDBiXFx1MDAyMC1cXHUwMGZmXSkvZztcbiAgICB2YXIgUVVPVEVfUkVHRVhQID0gLyhbXFxcXFwiXSkvZztcbiAgICB2YXIgVFlQRV9SRUdFWFAgPSAvXlshIyQlJicqKy5eX2B8fjAtOUEtWmEtei1dK1xcL1shIyQlJicqKy5eX2B8fjAtOUEtWmEtei1dKyQvO1xuICAgIGV4cG9ydHMyLmZvcm1hdCA9IGZvcm1hdDtcbiAgICBleHBvcnRzMi5wYXJzZSA9IHBhcnNlO1xuICAgIGZ1bmN0aW9uIGZvcm1hdChvYmopIHtcbiAgICAgIGlmICghb2JqIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IG9iaiBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBwYXJhbWV0ZXJzID0gb2JqLnBhcmFtZXRlcnM7XG4gICAgICB2YXIgdHlwZSA9IG9iai50eXBlO1xuICAgICAgaWYgKCF0eXBlIHx8ICFUWVBFX1JFR0VYUC50ZXN0KHR5cGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIHR5cGVcIik7XG4gICAgICB9XG4gICAgICB2YXIgc3RyaW5nID0gdHlwZTtcbiAgICAgIGlmIChwYXJhbWV0ZXJzICYmIHR5cGVvZiBwYXJhbWV0ZXJzID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHZhciBwYXJhbTtcbiAgICAgICAgdmFyIHBhcmFtcyA9IE9iamVjdC5rZXlzKHBhcmFtZXRlcnMpLnNvcnQoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJhbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBwYXJhbSA9IHBhcmFtc1tpXTtcbiAgICAgICAgICBpZiAoIVRPS0VOX1JFR0VYUC50ZXN0KHBhcmFtKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgcGFyYW1ldGVyIG5hbWVcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0cmluZyArPSBcIjsgXCIgKyBwYXJhbSArIFwiPVwiICsgcXN0cmluZyhwYXJhbWV0ZXJzW3BhcmFtXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlKHN0cmluZykge1xuICAgICAgaWYgKCFzdHJpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHN0cmluZyBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBoZWFkZXIgPSB0eXBlb2Ygc3RyaW5nID09PSBcIm9iamVjdFwiID8gZ2V0Y29udGVudHR5cGUoc3RyaW5nKSA6IHN0cmluZztcbiAgICAgIGlmICh0eXBlb2YgaGVhZGVyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzdHJpbmcgaXMgcmVxdWlyZWQgdG8gYmUgYSBzdHJpbmdcIik7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSBoZWFkZXIuaW5kZXhPZihcIjtcIik7XG4gICAgICB2YXIgdHlwZSA9IGluZGV4ICE9PSAtMSA/IGhlYWRlci5zbGljZSgwLCBpbmRleCkudHJpbSgpIDogaGVhZGVyLnRyaW0oKTtcbiAgICAgIGlmICghVFlQRV9SRUdFWFAudGVzdCh0eXBlKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBtZWRpYSB0eXBlXCIpO1xuICAgICAgfVxuICAgICAgdmFyIG9iaiA9IG5ldyBDb250ZW50VHlwZSh0eXBlLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICB2YXIga2V5O1xuICAgICAgICB2YXIgbWF0Y2g7XG4gICAgICAgIHZhciB2YWx1ZTtcbiAgICAgICAgUEFSQU1fUkVHRVhQLmxhc3RJbmRleCA9IGluZGV4O1xuICAgICAgICB3aGlsZSAobWF0Y2ggPSBQQVJBTV9SRUdFWFAuZXhlYyhoZWFkZXIpKSB7XG4gICAgICAgICAgaWYgKG1hdGNoLmluZGV4ICE9PSBpbmRleCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgcGFyYW1ldGVyIGZvcm1hdFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaW5kZXggKz0gbWF0Y2hbMF0ubGVuZ3RoO1xuICAgICAgICAgIGtleSA9IG1hdGNoWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgdmFsdWUgPSBtYXRjaFsyXTtcbiAgICAgICAgICBpZiAodmFsdWUuY2hhckNvZGVBdCgwKSA9PT0gMzQpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMSwgLTEpO1xuICAgICAgICAgICAgaWYgKHZhbHVlLmluZGV4T2YoXCJcXFxcXCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoUUVTQ19SRUdFWFAsIFwiJDFcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIG9iai5wYXJhbWV0ZXJzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggIT09IGhlYWRlci5sZW5ndGgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBwYXJhbWV0ZXIgZm9ybWF0XCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRjb250ZW50dHlwZShvYmopIHtcbiAgICAgIHZhciBoZWFkZXI7XG4gICAgICBpZiAodHlwZW9mIG9iai5nZXRIZWFkZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBoZWFkZXIgPSBvYmouZ2V0SGVhZGVyKFwiY29udGVudC10eXBlXCIpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqLmhlYWRlcnMgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgaGVhZGVyID0gb2JqLmhlYWRlcnMgJiYgb2JqLmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl07XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGhlYWRlciAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiY29udGVudC10eXBlIGhlYWRlciBpcyBtaXNzaW5nIGZyb20gb2JqZWN0XCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhlYWRlcjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcXN0cmluZyh2YWwpIHtcbiAgICAgIHZhciBzdHIgPSBTdHJpbmcodmFsKTtcbiAgICAgIGlmIChUT0tFTl9SRUdFWFAudGVzdChzdHIpKSB7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgICB9XG4gICAgICBpZiAoc3RyLmxlbmd0aCA+IDAgJiYgIVRFWFRfUkVHRVhQLnRlc3Qoc3RyKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBwYXJhbWV0ZXIgdmFsdWVcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gJ1wiJyArIHN0ci5yZXBsYWNlKFFVT1RFX1JFR0VYUCwgXCJcXFxcJDFcIikgKyAnXCInO1xuICAgIH1cbiAgICBmdW5jdGlvbiBDb250ZW50VHlwZSh0eXBlKSB7XG4gICAgICB0aGlzLnBhcmFtZXRlcnMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL21zL2luZGV4LmpzXG52YXIgcmVxdWlyZV9tcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9tcy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgdmFyIHMgPSAxZTM7XG4gICAgdmFyIG0gPSBzICogNjA7XG4gICAgdmFyIGggPSBtICogNjA7XG4gICAgdmFyIGQgPSBoICogMjQ7XG4gICAgdmFyIHcgPSBkICogNztcbiAgICB2YXIgeSA9IGQgKiAzNjUuMjU7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24odmFsLCBvcHRpb25zKSB7XG4gICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIHZhciB0eXBlID0gdHlwZW9mIHZhbDtcbiAgICAgIGlmICh0eXBlID09PSBcInN0cmluZ1wiICYmIHZhbC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBwYXJzZSh2YWwpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcIm51bWJlclwiICYmIGlzRmluaXRlKHZhbCkpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMubG9uZyA/IGZtdExvbmcodmFsKSA6IGZtdFNob3J0KHZhbCk7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwidmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBudW1iZXIuIHZhbD1cIiArIEpTT04uc3RyaW5naWZ5KHZhbClcbiAgICAgICk7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBwYXJzZShzdHIpIHtcbiAgICAgIHN0ciA9IFN0cmluZyhzdHIpO1xuICAgICAgaWYgKHN0ci5sZW5ndGggPiAxMDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIG1hdGNoID0gL14oLT8oPzpcXGQrKT9cXC4/XFxkKykgKihtaWxsaXNlY29uZHM/fG1zZWNzP3xtc3xzZWNvbmRzP3xzZWNzP3xzfG1pbnV0ZXM/fG1pbnM/fG18aG91cnM/fGhycz98aHxkYXlzP3xkfHdlZWtzP3x3fHllYXJzP3x5cnM/fHkpPyQvaS5leGVjKFxuICAgICAgICBzdHJcbiAgICAgICk7XG4gICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBuID0gcGFyc2VGbG9hdChtYXRjaFsxXSk7XG4gICAgICB2YXIgdHlwZSA9IChtYXRjaFsyXSB8fCBcIm1zXCIpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBcInllYXJzXCI6XG4gICAgICAgIGNhc2UgXCJ5ZWFyXCI6XG4gICAgICAgIGNhc2UgXCJ5cnNcIjpcbiAgICAgICAgY2FzZSBcInlyXCI6XG4gICAgICAgIGNhc2UgXCJ5XCI6XG4gICAgICAgICAgcmV0dXJuIG4gKiB5O1xuICAgICAgICBjYXNlIFwid2Vla3NcIjpcbiAgICAgICAgY2FzZSBcIndlZWtcIjpcbiAgICAgICAgY2FzZSBcIndcIjpcbiAgICAgICAgICByZXR1cm4gbiAqIHc7XG4gICAgICAgIGNhc2UgXCJkYXlzXCI6XG4gICAgICAgIGNhc2UgXCJkYXlcIjpcbiAgICAgICAgY2FzZSBcImRcIjpcbiAgICAgICAgICByZXR1cm4gbiAqIGQ7XG4gICAgICAgIGNhc2UgXCJob3Vyc1wiOlxuICAgICAgICBjYXNlIFwiaG91clwiOlxuICAgICAgICBjYXNlIFwiaHJzXCI6XG4gICAgICAgIGNhc2UgXCJoclwiOlxuICAgICAgICBjYXNlIFwiaFwiOlxuICAgICAgICAgIHJldHVybiBuICogaDtcbiAgICAgICAgY2FzZSBcIm1pbnV0ZXNcIjpcbiAgICAgICAgY2FzZSBcIm1pbnV0ZVwiOlxuICAgICAgICBjYXNlIFwibWluc1wiOlxuICAgICAgICBjYXNlIFwibWluXCI6XG4gICAgICAgIGNhc2UgXCJtXCI6XG4gICAgICAgICAgcmV0dXJuIG4gKiBtO1xuICAgICAgICBjYXNlIFwic2Vjb25kc1wiOlxuICAgICAgICBjYXNlIFwic2Vjb25kXCI6XG4gICAgICAgIGNhc2UgXCJzZWNzXCI6XG4gICAgICAgIGNhc2UgXCJzZWNcIjpcbiAgICAgICAgY2FzZSBcInNcIjpcbiAgICAgICAgICByZXR1cm4gbiAqIHM7XG4gICAgICAgIGNhc2UgXCJtaWxsaXNlY29uZHNcIjpcbiAgICAgICAgY2FzZSBcIm1pbGxpc2Vjb25kXCI6XG4gICAgICAgIGNhc2UgXCJtc2Vjc1wiOlxuICAgICAgICBjYXNlIFwibXNlY1wiOlxuICAgICAgICBjYXNlIFwibXNcIjpcbiAgICAgICAgICByZXR1cm4gbjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmbXRTaG9ydChtcykge1xuICAgICAgdmFyIG1zQWJzID0gTWF0aC5hYnMobXMpO1xuICAgICAgaWYgKG1zQWJzID49IGQpIHtcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBkKSArIFwiZFwiO1xuICAgICAgfVxuICAgICAgaWYgKG1zQWJzID49IGgpIHtcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBoKSArIFwiaFwiO1xuICAgICAgfVxuICAgICAgaWYgKG1zQWJzID49IG0pIHtcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBtKSArIFwibVwiO1xuICAgICAgfVxuICAgICAgaWYgKG1zQWJzID49IHMpIHtcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBzKSArIFwic1wiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1zICsgXCJtc1wiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmbXRMb25nKG1zKSB7XG4gICAgICB2YXIgbXNBYnMgPSBNYXRoLmFicyhtcyk7XG4gICAgICBpZiAobXNBYnMgPj0gZCkge1xuICAgICAgICByZXR1cm4gcGx1cmFsKG1zLCBtc0FicywgZCwgXCJkYXlcIik7XG4gICAgICB9XG4gICAgICBpZiAobXNBYnMgPj0gaCkge1xuICAgICAgICByZXR1cm4gcGx1cmFsKG1zLCBtc0FicywgaCwgXCJob3VyXCIpO1xuICAgICAgfVxuICAgICAgaWYgKG1zQWJzID49IG0pIHtcbiAgICAgICAgcmV0dXJuIHBsdXJhbChtcywgbXNBYnMsIG0sIFwibWludXRlXCIpO1xuICAgICAgfVxuICAgICAgaWYgKG1zQWJzID49IHMpIHtcbiAgICAgICAgcmV0dXJuIHBsdXJhbChtcywgbXNBYnMsIHMsIFwic2Vjb25kXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1zICsgXCIgbXNcIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGx1cmFsKG1zLCBtc0FicywgbiwgbmFtZSkge1xuICAgICAgdmFyIGlzUGx1cmFsID0gbXNBYnMgPj0gbiAqIDEuNTtcbiAgICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gbikgKyBcIiBcIiArIG5hbWUgKyAoaXNQbHVyYWwgPyBcInNcIiA6IFwiXCIpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvY29tbW9uLmpzXG52YXIgcmVxdWlyZV9jb21tb24gPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZGVidWcvc3JjL2NvbW1vbi5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgZnVuY3Rpb24gc2V0dXAoZW52KSB7XG4gICAgICBjcmVhdGVEZWJ1Zy5kZWJ1ZyA9IGNyZWF0ZURlYnVnO1xuICAgICAgY3JlYXRlRGVidWcuZGVmYXVsdCA9IGNyZWF0ZURlYnVnO1xuICAgICAgY3JlYXRlRGVidWcuY29lcmNlID0gY29lcmNlMjtcbiAgICAgIGNyZWF0ZURlYnVnLmRpc2FibGUgPSBkaXNhYmxlO1xuICAgICAgY3JlYXRlRGVidWcuZW5hYmxlID0gZW5hYmxlO1xuICAgICAgY3JlYXRlRGVidWcuZW5hYmxlZCA9IGVuYWJsZWQ7XG4gICAgICBjcmVhdGVEZWJ1Zy5odW1hbml6ZSA9IHJlcXVpcmVfbXMoKTtcbiAgICAgIGNyZWF0ZURlYnVnLmRlc3Ryb3kgPSBkZXN0cm95O1xuICAgICAgT2JqZWN0LmtleXMoZW52KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgY3JlYXRlRGVidWdba2V5XSA9IGVudltrZXldO1xuICAgICAgfSk7XG4gICAgICBjcmVhdGVEZWJ1Zy5uYW1lcyA9IFtdO1xuICAgICAgY3JlYXRlRGVidWcuc2tpcHMgPSBbXTtcbiAgICAgIGNyZWF0ZURlYnVnLmZvcm1hdHRlcnMgPSB7fTtcbiAgICAgIGZ1bmN0aW9uIHNlbGVjdENvbG9yKG5hbWVzcGFjZSkge1xuICAgICAgICBsZXQgaGFzaCA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZXNwYWNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaGFzaCA9IChoYXNoIDw8IDUpIC0gaGFzaCArIG5hbWVzcGFjZS5jaGFyQ29kZUF0KGkpO1xuICAgICAgICAgIGhhc2ggfD0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3JlYXRlRGVidWcuY29sb3JzW01hdGguYWJzKGhhc2gpICUgY3JlYXRlRGVidWcuY29sb3JzLmxlbmd0aF07XG4gICAgICB9XG4gICAgICBjcmVhdGVEZWJ1Zy5zZWxlY3RDb2xvciA9IHNlbGVjdENvbG9yO1xuICAgICAgZnVuY3Rpb24gY3JlYXRlRGVidWcobmFtZXNwYWNlKSB7XG4gICAgICAgIGxldCBwcmV2VGltZTtcbiAgICAgICAgbGV0IGVuYWJsZU92ZXJyaWRlID0gbnVsbDtcbiAgICAgICAgbGV0IG5hbWVzcGFjZXNDYWNoZTtcbiAgICAgICAgbGV0IGVuYWJsZWRDYWNoZTtcbiAgICAgICAgZnVuY3Rpb24gZGVidWcoLi4uYXJncykge1xuICAgICAgICAgIGlmICghZGVidWcuZW5hYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBzZWxmMiA9IGRlYnVnO1xuICAgICAgICAgIGNvbnN0IGN1cnIgPSBOdW1iZXIoLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCkpO1xuICAgICAgICAgIGNvbnN0IG1zID0gY3VyciAtIChwcmV2VGltZSB8fCBjdXJyKTtcbiAgICAgICAgICBzZWxmMi5kaWZmID0gbXM7XG4gICAgICAgICAgc2VsZjIucHJldiA9IHByZXZUaW1lO1xuICAgICAgICAgIHNlbGYyLmN1cnIgPSBjdXJyO1xuICAgICAgICAgIHByZXZUaW1lID0gY3VycjtcbiAgICAgICAgICBhcmdzWzBdID0gY3JlYXRlRGVidWcuY29lcmNlKGFyZ3NbMF0pO1xuICAgICAgICAgIGlmICh0eXBlb2YgYXJnc1swXSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgYXJncy51bnNoaWZ0KFwiJU9cIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgICAgYXJnc1swXSA9IGFyZ3NbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csIChtYXRjaCwgZm9ybWF0KSA9PiB7XG4gICAgICAgICAgICBpZiAobWF0Y2ggPT09IFwiJSVcIikge1xuICAgICAgICAgICAgICByZXR1cm4gXCIlXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gY3JlYXRlRGVidWcuZm9ybWF0dGVyc1tmb3JtYXRdO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBmb3JtYXR0ZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICBjb25zdCB2YWwgPSBhcmdzW2luZGV4XTtcbiAgICAgICAgICAgICAgbWF0Y2ggPSBmb3JtYXR0ZXIuY2FsbChzZWxmMiwgdmFsKTtcbiAgICAgICAgICAgICAgYXJncy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG1hdGNoO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNyZWF0ZURlYnVnLmZvcm1hdEFyZ3MuY2FsbChzZWxmMiwgYXJncyk7XG4gICAgICAgICAgY29uc3QgbG9nRm4gPSBzZWxmMi5sb2cgfHwgY3JlYXRlRGVidWcubG9nO1xuICAgICAgICAgIGxvZ0ZuLmFwcGx5KHNlbGYyLCBhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBkZWJ1Zy5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG4gICAgICAgIGRlYnVnLnVzZUNvbG9ycyA9IGNyZWF0ZURlYnVnLnVzZUNvbG9ycygpO1xuICAgICAgICBkZWJ1Zy5jb2xvciA9IGNyZWF0ZURlYnVnLnNlbGVjdENvbG9yKG5hbWVzcGFjZSk7XG4gICAgICAgIGRlYnVnLmV4dGVuZCA9IGV4dGVuZDtcbiAgICAgICAgZGVidWcuZGVzdHJveSA9IGNyZWF0ZURlYnVnLmRlc3Ryb3k7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZWJ1ZywgXCJlbmFibGVkXCIsIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgICAgZ2V0OiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZW5hYmxlT3ZlcnJpZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGVuYWJsZU92ZXJyaWRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5hbWVzcGFjZXNDYWNoZSAhPT0gY3JlYXRlRGVidWcubmFtZXNwYWNlcykge1xuICAgICAgICAgICAgICBuYW1lc3BhY2VzQ2FjaGUgPSBjcmVhdGVEZWJ1Zy5uYW1lc3BhY2VzO1xuICAgICAgICAgICAgICBlbmFibGVkQ2FjaGUgPSBjcmVhdGVEZWJ1Zy5lbmFibGVkKG5hbWVzcGFjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZW5hYmxlZENhY2hlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2V0OiAodikgPT4ge1xuICAgICAgICAgICAgZW5hYmxlT3ZlcnJpZGUgPSB2O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0eXBlb2YgY3JlYXRlRGVidWcuaW5pdCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgY3JlYXRlRGVidWcuaW5pdChkZWJ1Zyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlYnVnO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gZXh0ZW5kKG5hbWVzcGFjZSwgZGVsaW1pdGVyKSB7XG4gICAgICAgIGNvbnN0IG5ld0RlYnVnID0gY3JlYXRlRGVidWcodGhpcy5uYW1lc3BhY2UgKyAodHlwZW9mIGRlbGltaXRlciA9PT0gXCJ1bmRlZmluZWRcIiA/IFwiOlwiIDogZGVsaW1pdGVyKSArIG5hbWVzcGFjZSk7XG4gICAgICAgIG5ld0RlYnVnLmxvZyA9IHRoaXMubG9nO1xuICAgICAgICByZXR1cm4gbmV3RGVidWc7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBlbmFibGUobmFtZXNwYWNlcykge1xuICAgICAgICBjcmVhdGVEZWJ1Zy5zYXZlKG5hbWVzcGFjZXMpO1xuICAgICAgICBjcmVhdGVEZWJ1Zy5uYW1lc3BhY2VzID0gbmFtZXNwYWNlcztcbiAgICAgICAgY3JlYXRlRGVidWcubmFtZXMgPSBbXTtcbiAgICAgICAgY3JlYXRlRGVidWcuc2tpcHMgPSBbXTtcbiAgICAgICAgY29uc3Qgc3BsaXQgPSAodHlwZW9mIG5hbWVzcGFjZXMgPT09IFwic3RyaW5nXCIgPyBuYW1lc3BhY2VzIDogXCJcIikudHJpbSgpLnJlcGxhY2UoL1xccysvZywgXCIsXCIpLnNwbGl0KFwiLFwiKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICAgIGZvciAoY29uc3QgbnMgb2Ygc3BsaXQpIHtcbiAgICAgICAgICBpZiAobnNbMF0gPT09IFwiLVwiKSB7XG4gICAgICAgICAgICBjcmVhdGVEZWJ1Zy5za2lwcy5wdXNoKG5zLnNsaWNlKDEpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3JlYXRlRGVidWcubmFtZXMucHVzaChucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBtYXRjaGVzVGVtcGxhdGUoc2VhcmNoLCB0ZW1wbGF0ZSkge1xuICAgICAgICBsZXQgc2VhcmNoSW5kZXggPSAwO1xuICAgICAgICBsZXQgdGVtcGxhdGVJbmRleCA9IDA7XG4gICAgICAgIGxldCBzdGFySW5kZXggPSAtMTtcbiAgICAgICAgbGV0IG1hdGNoSW5kZXggPSAwO1xuICAgICAgICB3aGlsZSAoc2VhcmNoSW5kZXggPCBzZWFyY2gubGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKHRlbXBsYXRlSW5kZXggPCB0ZW1wbGF0ZS5sZW5ndGggJiYgKHRlbXBsYXRlW3RlbXBsYXRlSW5kZXhdID09PSBzZWFyY2hbc2VhcmNoSW5kZXhdIHx8IHRlbXBsYXRlW3RlbXBsYXRlSW5kZXhdID09PSBcIipcIikpIHtcbiAgICAgICAgICAgIGlmICh0ZW1wbGF0ZVt0ZW1wbGF0ZUluZGV4XSA9PT0gXCIqXCIpIHtcbiAgICAgICAgICAgICAgc3RhckluZGV4ID0gdGVtcGxhdGVJbmRleDtcbiAgICAgICAgICAgICAgbWF0Y2hJbmRleCA9IHNlYXJjaEluZGV4O1xuICAgICAgICAgICAgICB0ZW1wbGF0ZUluZGV4Kys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzZWFyY2hJbmRleCsrO1xuICAgICAgICAgICAgICB0ZW1wbGF0ZUluZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChzdGFySW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUluZGV4ID0gc3RhckluZGV4ICsgMTtcbiAgICAgICAgICAgIG1hdGNoSW5kZXgrKztcbiAgICAgICAgICAgIHNlYXJjaEluZGV4ID0gbWF0Y2hJbmRleDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAodGVtcGxhdGVJbmRleCA8IHRlbXBsYXRlLmxlbmd0aCAmJiB0ZW1wbGF0ZVt0ZW1wbGF0ZUluZGV4XSA9PT0gXCIqXCIpIHtcbiAgICAgICAgICB0ZW1wbGF0ZUluZGV4Kys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlSW5kZXggPT09IHRlbXBsYXRlLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGRpc2FibGUoKSB7XG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZXMgPSBbXG4gICAgICAgICAgLi4uY3JlYXRlRGVidWcubmFtZXMsXG4gICAgICAgICAgLi4uY3JlYXRlRGVidWcuc2tpcHMubWFwKChuYW1lc3BhY2UpID0+IFwiLVwiICsgbmFtZXNwYWNlKVxuICAgICAgICBdLmpvaW4oXCIsXCIpO1xuICAgICAgICBjcmVhdGVEZWJ1Zy5lbmFibGUoXCJcIik7XG4gICAgICAgIHJldHVybiBuYW1lc3BhY2VzO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gZW5hYmxlZChuYW1lKSB7XG4gICAgICAgIGZvciAoY29uc3Qgc2tpcCBvZiBjcmVhdGVEZWJ1Zy5za2lwcykge1xuICAgICAgICAgIGlmIChtYXRjaGVzVGVtcGxhdGUobmFtZSwgc2tpcCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBucyBvZiBjcmVhdGVEZWJ1Zy5uYW1lcykge1xuICAgICAgICAgIGlmIChtYXRjaGVzVGVtcGxhdGUobmFtZSwgbnMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY29lcmNlMih2YWwpIHtcbiAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbC5zdGFjayB8fCB2YWwubWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gZGVzdHJveSgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFwiSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLlwiKTtcbiAgICAgIH1cbiAgICAgIGNyZWF0ZURlYnVnLmVuYWJsZShjcmVhdGVEZWJ1Zy5sb2FkKCkpO1xuICAgICAgcmV0dXJuIGNyZWF0ZURlYnVnO1xuICAgIH1cbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBzZXR1cDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvYnJvd3Nlci5qc1xudmFyIHJlcXVpcmVfYnJvd3NlciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvYnJvd3Nlci5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgZXhwb3J0czIuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG4gICAgZXhwb3J0czIuc2F2ZSA9IHNhdmU7XG4gICAgZXhwb3J0czIubG9hZCA9IGxvYWQ7XG4gICAgZXhwb3J0czIudXNlQ29sb3JzID0gdXNlQ29sb3JzO1xuICAgIGV4cG9ydHMyLnN0b3JhZ2UgPSBsb2NhbHN0b3JhZ2UoKTtcbiAgICBleHBvcnRzMi5kZXN0cm95ID0gLyogQF9fUFVSRV9fICovICgoKSA9PiB7XG4gICAgICBsZXQgd2FybmVkID0gZmFsc2U7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoIXdhcm5lZCkge1xuICAgICAgICAgIHdhcm5lZCA9IHRydWU7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLlwiKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9KSgpO1xuICAgIGV4cG9ydHMyLmNvbG9ycyA9IFtcbiAgICAgIFwiIzAwMDBDQ1wiLFxuICAgICAgXCIjMDAwMEZGXCIsXG4gICAgICBcIiMwMDMzQ0NcIixcbiAgICAgIFwiIzAwMzNGRlwiLFxuICAgICAgXCIjMDA2NkNDXCIsXG4gICAgICBcIiMwMDY2RkZcIixcbiAgICAgIFwiIzAwOTlDQ1wiLFxuICAgICAgXCIjMDA5OUZGXCIsXG4gICAgICBcIiMwMENDMDBcIixcbiAgICAgIFwiIzAwQ0MzM1wiLFxuICAgICAgXCIjMDBDQzY2XCIsXG4gICAgICBcIiMwMENDOTlcIixcbiAgICAgIFwiIzAwQ0NDQ1wiLFxuICAgICAgXCIjMDBDQ0ZGXCIsXG4gICAgICBcIiMzMzAwQ0NcIixcbiAgICAgIFwiIzMzMDBGRlwiLFxuICAgICAgXCIjMzMzM0NDXCIsXG4gICAgICBcIiMzMzMzRkZcIixcbiAgICAgIFwiIzMzNjZDQ1wiLFxuICAgICAgXCIjMzM2NkZGXCIsXG4gICAgICBcIiMzMzk5Q0NcIixcbiAgICAgIFwiIzMzOTlGRlwiLFxuICAgICAgXCIjMzNDQzAwXCIsXG4gICAgICBcIiMzM0NDMzNcIixcbiAgICAgIFwiIzMzQ0M2NlwiLFxuICAgICAgXCIjMzNDQzk5XCIsXG4gICAgICBcIiMzM0NDQ0NcIixcbiAgICAgIFwiIzMzQ0NGRlwiLFxuICAgICAgXCIjNjYwMENDXCIsXG4gICAgICBcIiM2NjAwRkZcIixcbiAgICAgIFwiIzY2MzNDQ1wiLFxuICAgICAgXCIjNjYzM0ZGXCIsXG4gICAgICBcIiM2NkNDMDBcIixcbiAgICAgIFwiIzY2Q0MzM1wiLFxuICAgICAgXCIjOTkwMENDXCIsXG4gICAgICBcIiM5OTAwRkZcIixcbiAgICAgIFwiIzk5MzNDQ1wiLFxuICAgICAgXCIjOTkzM0ZGXCIsXG4gICAgICBcIiM5OUNDMDBcIixcbiAgICAgIFwiIzk5Q0MzM1wiLFxuICAgICAgXCIjQ0MwMDAwXCIsXG4gICAgICBcIiNDQzAwMzNcIixcbiAgICAgIFwiI0NDMDA2NlwiLFxuICAgICAgXCIjQ0MwMDk5XCIsXG4gICAgICBcIiNDQzAwQ0NcIixcbiAgICAgIFwiI0NDMDBGRlwiLFxuICAgICAgXCIjQ0MzMzAwXCIsXG4gICAgICBcIiNDQzMzMzNcIixcbiAgICAgIFwiI0NDMzM2NlwiLFxuICAgICAgXCIjQ0MzMzk5XCIsXG4gICAgICBcIiNDQzMzQ0NcIixcbiAgICAgIFwiI0NDMzNGRlwiLFxuICAgICAgXCIjQ0M2NjAwXCIsXG4gICAgICBcIiNDQzY2MzNcIixcbiAgICAgIFwiI0NDOTkwMFwiLFxuICAgICAgXCIjQ0M5OTMzXCIsXG4gICAgICBcIiNDQ0NDMDBcIixcbiAgICAgIFwiI0NDQ0MzM1wiLFxuICAgICAgXCIjRkYwMDAwXCIsXG4gICAgICBcIiNGRjAwMzNcIixcbiAgICAgIFwiI0ZGMDA2NlwiLFxuICAgICAgXCIjRkYwMDk5XCIsXG4gICAgICBcIiNGRjAwQ0NcIixcbiAgICAgIFwiI0ZGMDBGRlwiLFxuICAgICAgXCIjRkYzMzAwXCIsXG4gICAgICBcIiNGRjMzMzNcIixcbiAgICAgIFwiI0ZGMzM2NlwiLFxuICAgICAgXCIjRkYzMzk5XCIsXG4gICAgICBcIiNGRjMzQ0NcIixcbiAgICAgIFwiI0ZGMzNGRlwiLFxuICAgICAgXCIjRkY2NjAwXCIsXG4gICAgICBcIiNGRjY2MzNcIixcbiAgICAgIFwiI0ZGOTkwMFwiLFxuICAgICAgXCIjRkY5OTMzXCIsXG4gICAgICBcIiNGRkNDMDBcIixcbiAgICAgIFwiI0ZGQ0MzM1wiXG4gICAgXTtcbiAgICBmdW5jdGlvbiB1c2VDb2xvcnMoKSB7XG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cucHJvY2VzcyAmJiAod2luZG93LnByb2Nlc3MudHlwZSA9PT0gXCJyZW5kZXJlclwiIHx8IHdpbmRvdy5wcm9jZXNzLl9fbndqcykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKGVkZ2V8dHJpZGVudClcXC8oXFxkKykvKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBsZXQgbTtcbiAgICAgIHJldHVybiB0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZSB8fCAvLyBJcyBmaXJlYnVnPyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zOTgxMjAvMzc2NzczXG4gICAgICB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5jb25zb2xlICYmICh3aW5kb3cuY29uc29sZS5maXJlYnVnIHx8IHdpbmRvdy5jb25zb2xlLmV4Y2VwdGlvbiAmJiB3aW5kb3cuY29uc29sZS50YWJsZSkgfHwgLy8gSXMgZmlyZWZveCA+PSB2MzE/XG4gICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1Rvb2xzL1dlYl9Db25zb2xlI1N0eWxpbmdfbWVzc2FnZXNcbiAgICAgIHR5cGVvZiBuYXZpZ2F0b3IgIT09IFwidW5kZWZpbmVkXCIgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiAobSA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvZmlyZWZveFxcLyhcXGQrKS8pKSAmJiBwYXJzZUludChtWzFdLCAxMCkgPj0gMzEgfHwgLy8gRG91YmxlIGNoZWNrIHdlYmtpdCBpbiB1c2VyQWdlbnQganVzdCBpbiBjYXNlIHdlIGFyZSBpbiBhIHdvcmtlclxuICAgICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvYXBwbGV3ZWJraXRcXC8oXFxkKykvKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZm9ybWF0QXJncyhhcmdzKSB7XG4gICAgICBhcmdzWzBdID0gKHRoaXMudXNlQ29sb3JzID8gXCIlY1wiIDogXCJcIikgKyB0aGlzLm5hbWVzcGFjZSArICh0aGlzLnVzZUNvbG9ycyA/IFwiICVjXCIgOiBcIiBcIikgKyBhcmdzWzBdICsgKHRoaXMudXNlQ29sb3JzID8gXCIlYyBcIiA6IFwiIFwiKSArIFwiK1wiICsgbW9kdWxlMi5leHBvcnRzLmh1bWFuaXplKHRoaXMuZGlmZik7XG4gICAgICBpZiAoIXRoaXMudXNlQ29sb3JzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGMgPSBcImNvbG9yOiBcIiArIHRoaXMuY29sb3I7XG4gICAgICBhcmdzLnNwbGljZSgxLCAwLCBjLCBcImNvbG9yOiBpbmhlcml0XCIpO1xuICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgIGxldCBsYXN0QyA9IDA7XG4gICAgICBhcmdzWzBdLnJlcGxhY2UoLyVbYS16QS1aJV0vZywgKG1hdGNoKSA9PiB7XG4gICAgICAgIGlmIChtYXRjaCA9PT0gXCIlJVwiKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGluZGV4Kys7XG4gICAgICAgIGlmIChtYXRjaCA9PT0gXCIlY1wiKSB7XG4gICAgICAgICAgbGFzdEMgPSBpbmRleDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBhcmdzLnNwbGljZShsYXN0QywgMCwgYyk7XG4gICAgfVxuICAgIGV4cG9ydHMyLmxvZyA9IGNvbnNvbGUuZGVidWcgfHwgY29uc29sZS5sb2cgfHwgKCgpID0+IHtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzYXZlKG5hbWVzcGFjZXMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChuYW1lc3BhY2VzKSB7XG4gICAgICAgICAgZXhwb3J0czIuc3RvcmFnZS5zZXRJdGVtKFwiZGVidWdcIiwgbmFtZXNwYWNlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXhwb3J0czIuc3RvcmFnZS5yZW1vdmVJdGVtKFwiZGVidWdcIik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvYWQoKSB7XG4gICAgICBsZXQgcjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHIgPSBleHBvcnRzMi5zdG9yYWdlLmdldEl0ZW0oXCJkZWJ1Z1wiKSB8fCBleHBvcnRzMi5zdG9yYWdlLmdldEl0ZW0oXCJERUJVR1wiKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB9XG4gICAgICBpZiAoIXIgJiYgdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgXCJlbnZcIiBpbiBwcm9jZXNzKSB7XG4gICAgICAgIHIgPSBwcm9jZXNzLmVudi5ERUJVRztcbiAgICAgIH1cbiAgICAgIHJldHVybiByO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsb2NhbHN0b3JhZ2UoKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIH1cbiAgICB9XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcmVxdWlyZV9jb21tb24oKShleHBvcnRzMik7XG4gICAgdmFyIHsgZm9ybWF0dGVycyB9ID0gbW9kdWxlMi5leHBvcnRzO1xuICAgIGZvcm1hdHRlcnMuaiA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBcIltVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiBcIiArIGVycm9yLm1lc3NhZ2U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9oYXMtZmxhZy9pbmRleC5qc1xudmFyIHJlcXVpcmVfaGFzX2ZsYWcgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvaGFzLWZsYWcvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IChmbGFnLCBhcmd2ID0gcHJvY2Vzcy5hcmd2KSA9PiB7XG4gICAgICBjb25zdCBwcmVmaXggPSBmbGFnLnN0YXJ0c1dpdGgoXCItXCIpID8gXCJcIiA6IGZsYWcubGVuZ3RoID09PSAxID8gXCItXCIgOiBcIi0tXCI7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IGFyZ3YuaW5kZXhPZihwcmVmaXggKyBmbGFnKTtcbiAgICAgIGNvbnN0IHRlcm1pbmF0b3JQb3NpdGlvbiA9IGFyZ3YuaW5kZXhPZihcIi0tXCIpO1xuICAgICAgcmV0dXJuIHBvc2l0aW9uICE9PSAtMSAmJiAodGVybWluYXRvclBvc2l0aW9uID09PSAtMSB8fCBwb3NpdGlvbiA8IHRlcm1pbmF0b3JQb3NpdGlvbik7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9zdXBwb3J0cy1jb2xvci9pbmRleC5qc1xudmFyIHJlcXVpcmVfc3VwcG9ydHNfY29sb3IgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc3VwcG9ydHMtY29sb3IvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBvcyA9IHJlcXVpcmUoXCJvc1wiKTtcbiAgICB2YXIgdHR5ID0gcmVxdWlyZShcInR0eVwiKTtcbiAgICB2YXIgaGFzRmxhZyA9IHJlcXVpcmVfaGFzX2ZsYWcoKTtcbiAgICB2YXIgeyBlbnYgfSA9IHByb2Nlc3M7XG4gICAgdmFyIGZvcmNlQ29sb3I7XG4gICAgaWYgKGhhc0ZsYWcoXCJuby1jb2xvclwiKSB8fCBoYXNGbGFnKFwibm8tY29sb3JzXCIpIHx8IGhhc0ZsYWcoXCJjb2xvcj1mYWxzZVwiKSB8fCBoYXNGbGFnKFwiY29sb3I9bmV2ZXJcIikpIHtcbiAgICAgIGZvcmNlQ29sb3IgPSAwO1xuICAgIH0gZWxzZSBpZiAoaGFzRmxhZyhcImNvbG9yXCIpIHx8IGhhc0ZsYWcoXCJjb2xvcnNcIikgfHwgaGFzRmxhZyhcImNvbG9yPXRydWVcIikgfHwgaGFzRmxhZyhcImNvbG9yPWFsd2F5c1wiKSkge1xuICAgICAgZm9yY2VDb2xvciA9IDE7XG4gICAgfVxuICAgIGlmIChcIkZPUkNFX0NPTE9SXCIgaW4gZW52KSB7XG4gICAgICBpZiAoZW52LkZPUkNFX0NPTE9SID09PSBcInRydWVcIikge1xuICAgICAgICBmb3JjZUNvbG9yID0gMTtcbiAgICAgIH0gZWxzZSBpZiAoZW52LkZPUkNFX0NPTE9SID09PSBcImZhbHNlXCIpIHtcbiAgICAgICAgZm9yY2VDb2xvciA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JjZUNvbG9yID0gZW52LkZPUkNFX0NPTE9SLmxlbmd0aCA9PT0gMCA/IDEgOiBNYXRoLm1pbihwYXJzZUludChlbnYuRk9SQ0VfQ09MT1IsIDEwKSwgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZUxldmVsKGxldmVsKSB7XG4gICAgICBpZiAobGV2ZWwgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGV2ZWwsXG4gICAgICAgIGhhc0Jhc2ljOiB0cnVlLFxuICAgICAgICBoYXMyNTY6IGxldmVsID49IDIsXG4gICAgICAgIGhhczE2bTogbGV2ZWwgPj0gM1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3VwcG9ydHNDb2xvcihoYXZlU3RyZWFtLCBzdHJlYW1Jc1RUWSkge1xuICAgICAgaWYgKGZvcmNlQ29sb3IgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgICBpZiAoaGFzRmxhZyhcImNvbG9yPTE2bVwiKSB8fCBoYXNGbGFnKFwiY29sb3I9ZnVsbFwiKSB8fCBoYXNGbGFnKFwiY29sb3I9dHJ1ZWNvbG9yXCIpKSB7XG4gICAgICAgIHJldHVybiAzO1xuICAgICAgfVxuICAgICAgaWYgKGhhc0ZsYWcoXCJjb2xvcj0yNTZcIikpIHtcbiAgICAgICAgcmV0dXJuIDI7XG4gICAgICB9XG4gICAgICBpZiAoaGF2ZVN0cmVhbSAmJiAhc3RyZWFtSXNUVFkgJiYgZm9yY2VDb2xvciA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgY29uc3QgbWluID0gZm9yY2VDb2xvciB8fCAwO1xuICAgICAgaWYgKGVudi5URVJNID09PSBcImR1bWJcIikge1xuICAgICAgICByZXR1cm4gbWluO1xuICAgICAgfVxuICAgICAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09IFwid2luMzJcIikge1xuICAgICAgICBjb25zdCBvc1JlbGVhc2UgPSBvcy5yZWxlYXNlKCkuc3BsaXQoXCIuXCIpO1xuICAgICAgICBpZiAoTnVtYmVyKG9zUmVsZWFzZVswXSkgPj0gMTAgJiYgTnVtYmVyKG9zUmVsZWFzZVsyXSkgPj0gMTA1ODYpIHtcbiAgICAgICAgICByZXR1cm4gTnVtYmVyKG9zUmVsZWFzZVsyXSkgPj0gMTQ5MzEgPyAzIDogMjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIGlmIChcIkNJXCIgaW4gZW52KSB7XG4gICAgICAgIGlmIChbXCJUUkFWSVNcIiwgXCJDSVJDTEVDSVwiLCBcIkFQUFZFWU9SXCIsIFwiR0lUTEFCX0NJXCIsIFwiR0lUSFVCX0FDVElPTlNcIiwgXCJCVUlMREtJVEVcIl0uc29tZSgoc2lnbikgPT4gc2lnbiBpbiBlbnYpIHx8IGVudi5DSV9OQU1FID09PSBcImNvZGVzaGlwXCIpIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWluO1xuICAgICAgfVxuICAgICAgaWYgKFwiVEVBTUNJVFlfVkVSU0lPTlwiIGluIGVudikge1xuICAgICAgICByZXR1cm4gL14oOVxcLigwKlsxLTldXFxkKilcXC58XFxkezIsfVxcLikvLnRlc3QoZW52LlRFQU1DSVRZX1ZFUlNJT04pID8gMSA6IDA7XG4gICAgICB9XG4gICAgICBpZiAoZW52LkNPTE9SVEVSTSA9PT0gXCJ0cnVlY29sb3JcIikge1xuICAgICAgICByZXR1cm4gMztcbiAgICAgIH1cbiAgICAgIGlmIChcIlRFUk1fUFJPR1JBTVwiIGluIGVudikge1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gcGFyc2VJbnQoKGVudi5URVJNX1BST0dSQU1fVkVSU0lPTiB8fCBcIlwiKS5zcGxpdChcIi5cIilbMF0sIDEwKTtcbiAgICAgICAgc3dpdGNoIChlbnYuVEVSTV9QUk9HUkFNKSB7XG4gICAgICAgICAgY2FzZSBcImlUZXJtLmFwcFwiOlxuICAgICAgICAgICAgcmV0dXJuIHZlcnNpb24gPj0gMyA/IDMgOiAyO1xuICAgICAgICAgIGNhc2UgXCJBcHBsZV9UZXJtaW5hbFwiOlxuICAgICAgICAgICAgcmV0dXJuIDI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICgvLTI1Nihjb2xvcik/JC9pLnRlc3QoZW52LlRFUk0pKSB7XG4gICAgICAgIHJldHVybiAyO1xuICAgICAgfVxuICAgICAgaWYgKC9ec2NyZWVufF54dGVybXxednQxMDB8XnZ0MjIwfF5yeHZ0fGNvbG9yfGFuc2l8Y3lnd2lufGxpbnV4L2kudGVzdChlbnYuVEVSTSkpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICBpZiAoXCJDT0xPUlRFUk1cIiBpbiBlbnYpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRTdXBwb3J0TGV2ZWwoc3RyZWFtKSB7XG4gICAgICBjb25zdCBsZXZlbCA9IHN1cHBvcnRzQ29sb3Ioc3RyZWFtLCBzdHJlYW0gJiYgc3RyZWFtLmlzVFRZKTtcbiAgICAgIHJldHVybiB0cmFuc2xhdGVMZXZlbChsZXZlbCk7XG4gICAgfVxuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIHN1cHBvcnRzQ29sb3I6IGdldFN1cHBvcnRMZXZlbCxcbiAgICAgIHN0ZG91dDogdHJhbnNsYXRlTGV2ZWwoc3VwcG9ydHNDb2xvcih0cnVlLCB0dHkuaXNhdHR5KDEpKSksXG4gICAgICBzdGRlcnI6IHRyYW5zbGF0ZUxldmVsKHN1cHBvcnRzQ29sb3IodHJ1ZSwgdHR5LmlzYXR0eSgyKSkpXG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvbm9kZS5qc1xudmFyIHJlcXVpcmVfbm9kZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvbm9kZS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgdmFyIHR0eSA9IHJlcXVpcmUoXCJ0dHlcIik7XG4gICAgdmFyIHV0aWwyID0gcmVxdWlyZShcInV0aWxcIik7XG4gICAgZXhwb3J0czIuaW5pdCA9IGluaXQ7XG4gICAgZXhwb3J0czIubG9nID0gbG9nO1xuICAgIGV4cG9ydHMyLmZvcm1hdEFyZ3MgPSBmb3JtYXRBcmdzO1xuICAgIGV4cG9ydHMyLnNhdmUgPSBzYXZlO1xuICAgIGV4cG9ydHMyLmxvYWQgPSBsb2FkO1xuICAgIGV4cG9ydHMyLnVzZUNvbG9ycyA9IHVzZUNvbG9ycztcbiAgICBleHBvcnRzMi5kZXN0cm95ID0gdXRpbDIuZGVwcmVjYXRlKFxuICAgICAgKCkgPT4ge1xuICAgICAgfSxcbiAgICAgIFwiSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLlwiXG4gICAgKTtcbiAgICBleHBvcnRzMi5jb2xvcnMgPSBbNiwgMiwgMywgNCwgNSwgMV07XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1cHBvcnRzQ29sb3IgPSByZXF1aXJlX3N1cHBvcnRzX2NvbG9yKCk7XG4gICAgICBpZiAoc3VwcG9ydHNDb2xvciAmJiAoc3VwcG9ydHNDb2xvci5zdGRlcnIgfHwgc3VwcG9ydHNDb2xvcikubGV2ZWwgPj0gMikge1xuICAgICAgICBleHBvcnRzMi5jb2xvcnMgPSBbXG4gICAgICAgICAgMjAsXG4gICAgICAgICAgMjEsXG4gICAgICAgICAgMjYsXG4gICAgICAgICAgMjcsXG4gICAgICAgICAgMzIsXG4gICAgICAgICAgMzMsXG4gICAgICAgICAgMzgsXG4gICAgICAgICAgMzksXG4gICAgICAgICAgNDAsXG4gICAgICAgICAgNDEsXG4gICAgICAgICAgNDIsXG4gICAgICAgICAgNDMsXG4gICAgICAgICAgNDQsXG4gICAgICAgICAgNDUsXG4gICAgICAgICAgNTYsXG4gICAgICAgICAgNTcsXG4gICAgICAgICAgNjIsXG4gICAgICAgICAgNjMsXG4gICAgICAgICAgNjgsXG4gICAgICAgICAgNjksXG4gICAgICAgICAgNzQsXG4gICAgICAgICAgNzUsXG4gICAgICAgICAgNzYsXG4gICAgICAgICAgNzcsXG4gICAgICAgICAgNzgsXG4gICAgICAgICAgNzksXG4gICAgICAgICAgODAsXG4gICAgICAgICAgODEsXG4gICAgICAgICAgOTIsXG4gICAgICAgICAgOTMsXG4gICAgICAgICAgOTgsXG4gICAgICAgICAgOTksXG4gICAgICAgICAgMTEyLFxuICAgICAgICAgIDExMyxcbiAgICAgICAgICAxMjgsXG4gICAgICAgICAgMTI5LFxuICAgICAgICAgIDEzNCxcbiAgICAgICAgICAxMzUsXG4gICAgICAgICAgMTQ4LFxuICAgICAgICAgIDE0OSxcbiAgICAgICAgICAxNjAsXG4gICAgICAgICAgMTYxLFxuICAgICAgICAgIDE2MixcbiAgICAgICAgICAxNjMsXG4gICAgICAgICAgMTY0LFxuICAgICAgICAgIDE2NSxcbiAgICAgICAgICAxNjYsXG4gICAgICAgICAgMTY3LFxuICAgICAgICAgIDE2OCxcbiAgICAgICAgICAxNjksXG4gICAgICAgICAgMTcwLFxuICAgICAgICAgIDE3MSxcbiAgICAgICAgICAxNzIsXG4gICAgICAgICAgMTczLFxuICAgICAgICAgIDE3OCxcbiAgICAgICAgICAxNzksXG4gICAgICAgICAgMTg0LFxuICAgICAgICAgIDE4NSxcbiAgICAgICAgICAxOTYsXG4gICAgICAgICAgMTk3LFxuICAgICAgICAgIDE5OCxcbiAgICAgICAgICAxOTksXG4gICAgICAgICAgMjAwLFxuICAgICAgICAgIDIwMSxcbiAgICAgICAgICAyMDIsXG4gICAgICAgICAgMjAzLFxuICAgICAgICAgIDIwNCxcbiAgICAgICAgICAyMDUsXG4gICAgICAgICAgMjA2LFxuICAgICAgICAgIDIwNyxcbiAgICAgICAgICAyMDgsXG4gICAgICAgICAgMjA5LFxuICAgICAgICAgIDIxNCxcbiAgICAgICAgICAyMTUsXG4gICAgICAgICAgMjIwLFxuICAgICAgICAgIDIyMVxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgfVxuICAgIGV4cG9ydHMyLmluc3BlY3RPcHRzID0gT2JqZWN0LmtleXMocHJvY2Vzcy5lbnYpLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICByZXR1cm4gL15kZWJ1Z18vaS50ZXN0KGtleSk7XG4gICAgfSkucmVkdWNlKChvYmosIGtleSkgPT4ge1xuICAgICAgY29uc3QgcHJvcCA9IGtleS5zdWJzdHJpbmcoNikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fKFthLXpdKS9nLCAoXzIsIGspID0+IHtcbiAgICAgICAgcmV0dXJuIGsudG9VcHBlckNhc2UoKTtcbiAgICAgIH0pO1xuICAgICAgbGV0IHZhbCA9IHByb2Nlc3MuZW52W2tleV07XG4gICAgICBpZiAoL14oeWVzfG9ufHRydWV8ZW5hYmxlZCkkL2kudGVzdCh2YWwpKSB7XG4gICAgICAgIHZhbCA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKC9eKG5vfG9mZnxmYWxzZXxkaXNhYmxlZCkkL2kudGVzdCh2YWwpKSB7XG4gICAgICAgIHZhbCA9IGZhbHNlO1xuICAgICAgfSBlbHNlIGlmICh2YWwgPT09IFwibnVsbFwiKSB7XG4gICAgICAgIHZhbCA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWwgPSBOdW1iZXIodmFsKTtcbiAgICAgIH1cbiAgICAgIG9ialtwcm9wXSA9IHZhbDtcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSwge30pO1xuICAgIGZ1bmN0aW9uIHVzZUNvbG9ycygpIHtcbiAgICAgIHJldHVybiBcImNvbG9yc1wiIGluIGV4cG9ydHMyLmluc3BlY3RPcHRzID8gQm9vbGVhbihleHBvcnRzMi5pbnNwZWN0T3B0cy5jb2xvcnMpIDogdHR5LmlzYXR0eShwcm9jZXNzLnN0ZGVyci5mZCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZvcm1hdEFyZ3MoYXJncykge1xuICAgICAgY29uc3QgeyBuYW1lc3BhY2U6IG5hbWUsIHVzZUNvbG9yczogdXNlQ29sb3JzMiB9ID0gdGhpcztcbiAgICAgIGlmICh1c2VDb2xvcnMyKSB7XG4gICAgICAgIGNvbnN0IGMgPSB0aGlzLmNvbG9yO1xuICAgICAgICBjb25zdCBjb2xvckNvZGUgPSBcIlxceDFCWzNcIiArIChjIDwgOCA/IGMgOiBcIjg7NTtcIiArIGMpO1xuICAgICAgICBjb25zdCBwcmVmaXggPSBgICAke2NvbG9yQ29kZX07MW0ke25hbWV9IFxceDFCWzBtYDtcbiAgICAgICAgYXJnc1swXSA9IHByZWZpeCArIGFyZ3NbMF0uc3BsaXQoXCJcXG5cIikuam9pbihcIlxcblwiICsgcHJlZml4KTtcbiAgICAgICAgYXJncy5wdXNoKGNvbG9yQ29kZSArIFwibStcIiArIG1vZHVsZTIuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpICsgXCJcXHgxQlswbVwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFyZ3NbMF0gPSBnZXREYXRlKCkgKyBuYW1lICsgXCIgXCIgKyBhcmdzWzBdO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXREYXRlKCkge1xuICAgICAgaWYgKGV4cG9ydHMyLmluc3BlY3RPcHRzLmhpZGVEYXRlKSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuICgvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSkudG9JU09TdHJpbmcoKSArIFwiIFwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsb2coLi4uYXJncykge1xuICAgICAgcmV0dXJuIHByb2Nlc3Muc3RkZXJyLndyaXRlKHV0aWwyLmZvcm1hdFdpdGhPcHRpb25zKGV4cG9ydHMyLmluc3BlY3RPcHRzLCAuLi5hcmdzKSArIFwiXFxuXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzYXZlKG5hbWVzcGFjZXMpIHtcbiAgICAgIGlmIChuYW1lc3BhY2VzKSB7XG4gICAgICAgIHByb2Nlc3MuZW52LkRFQlVHID0gbmFtZXNwYWNlcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZSBwcm9jZXNzLmVudi5ERUJVRztcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbG9hZCgpIHtcbiAgICAgIHJldHVybiBwcm9jZXNzLmVudi5ERUJVRztcbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdChkZWJ1Zykge1xuICAgICAgZGVidWcuaW5zcGVjdE9wdHMgPSB7fTtcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhleHBvcnRzMi5pbnNwZWN0T3B0cyk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZGVidWcuaW5zcGVjdE9wdHNba2V5c1tpXV0gPSBleHBvcnRzMi5pbnNwZWN0T3B0c1trZXlzW2ldXTtcbiAgICAgIH1cbiAgICB9XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcmVxdWlyZV9jb21tb24oKShleHBvcnRzMik7XG4gICAgdmFyIHsgZm9ybWF0dGVycyB9ID0gbW9kdWxlMi5leHBvcnRzO1xuICAgIGZvcm1hdHRlcnMubyA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgIHRoaXMuaW5zcGVjdE9wdHMuY29sb3JzID0gdGhpcy51c2VDb2xvcnM7XG4gICAgICByZXR1cm4gdXRpbDIuaW5zcGVjdCh2LCB0aGlzLmluc3BlY3RPcHRzKS5zcGxpdChcIlxcblwiKS5tYXAoKHN0cikgPT4gc3RyLnRyaW0oKSkuam9pbihcIiBcIik7XG4gICAgfTtcbiAgICBmb3JtYXR0ZXJzLk8gPSBmdW5jdGlvbih2KSB7XG4gICAgICB0aGlzLmluc3BlY3RPcHRzLmNvbG9ycyA9IHRoaXMudXNlQ29sb3JzO1xuICAgICAgcmV0dXJuIHV0aWwyLmluc3BlY3QodiwgdGhpcy5pbnNwZWN0T3B0cyk7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvaW5kZXguanNcbnZhciByZXF1aXJlX3NyYyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIGlmICh0eXBlb2YgcHJvY2VzcyA9PT0gXCJ1bmRlZmluZWRcIiB8fCBwcm9jZXNzLnR5cGUgPT09IFwicmVuZGVyZXJcIiB8fCBwcm9jZXNzLmJyb3dzZXIgPT09IHRydWUgfHwgcHJvY2Vzcy5fX253anMpIHtcbiAgICAgIG1vZHVsZTIuZXhwb3J0cyA9IHJlcXVpcmVfYnJvd3NlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBtb2R1bGUyLmV4cG9ydHMgPSByZXF1aXJlX25vZGUoKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZWUtZmlyc3QvaW5kZXguanNcbnZhciByZXF1aXJlX2VlX2ZpcnN0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VlLWZpcnN0L2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmaXJzdDtcbiAgICBmdW5jdGlvbiBmaXJzdChzdHVmZiwgZG9uZSkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHN0dWZmKSlcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZyBtdXN0IGJlIGFuIGFycmF5IG9mIFtlZSwgZXZlbnRzLi4uXSBhcnJheXNcIik7XG4gICAgICB2YXIgY2xlYW51cHMgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3R1ZmYubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGFyciA9IHN0dWZmW2ldO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyKSB8fCBhcnIubGVuZ3RoIDwgMilcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiZWFjaCBhcnJheSBtZW1iZXIgbXVzdCBiZSBbZWUsIGV2ZW50cy4uLl1cIik7XG4gICAgICAgIHZhciBlZSA9IGFyclswXTtcbiAgICAgICAgZm9yICh2YXIgaiA9IDE7IGogPCBhcnIubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICB2YXIgZXZlbnQgPSBhcnJbal07XG4gICAgICAgICAgdmFyIGZuID0gbGlzdGVuZXIoZXZlbnQsIGNhbGxiYWNrKTtcbiAgICAgICAgICBlZS5vbihldmVudCwgZm4pO1xuICAgICAgICAgIGNsZWFudXBzLnB1c2goe1xuICAgICAgICAgICAgZWUsXG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIGZuXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkge1xuICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgIGRvbmUuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICAgIHZhciB4O1xuICAgICAgICBmb3IgKHZhciBpMiA9IDA7IGkyIDwgY2xlYW51cHMubGVuZ3RoOyBpMisrKSB7XG4gICAgICAgICAgeCA9IGNsZWFudXBzW2kyXTtcbiAgICAgICAgICB4LmVlLnJlbW92ZUxpc3RlbmVyKHguZXZlbnQsIHguZm4pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiB0aHVuayhmbjIpIHtcbiAgICAgICAgZG9uZSA9IGZuMjtcbiAgICAgIH1cbiAgICAgIHRodW5rLmNhbmNlbCA9IGNsZWFudXA7XG4gICAgICByZXR1cm4gdGh1bms7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxpc3RlbmVyKGV2ZW50LCBkb25lKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gb25ldmVudChhcmcxKSB7XG4gICAgICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgICAgICB2YXIgZWUgPSB0aGlzO1xuICAgICAgICB2YXIgZXJyMiA9IGV2ZW50ID09PSBcImVycm9yXCIgPyBhcmcxIDogbnVsbDtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgICAgICBkb25lKGVycjIsIGVlLCBldmVudCwgYXJncyk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9vbi1maW5pc2hlZC9pbmRleC5qc1xudmFyIHJlcXVpcmVfb25fZmluaXNoZWQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvb24tZmluaXNoZWQvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IG9uRmluaXNoZWQ7XG4gICAgbW9kdWxlMi5leHBvcnRzLmlzRmluaXNoZWQgPSBpc0ZpbmlzaGVkO1xuICAgIHZhciBhc3luY0hvb2tzID0gdHJ5UmVxdWlyZUFzeW5jSG9va3MoKTtcbiAgICB2YXIgZmlyc3QgPSByZXF1aXJlX2VlX2ZpcnN0KCk7XG4gICAgdmFyIGRlZmVyID0gdHlwZW9mIHNldEltbWVkaWF0ZSA9PT0gXCJmdW5jdGlvblwiID8gc2V0SW1tZWRpYXRlIDogZnVuY3Rpb24oZm4pIHtcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soZm4uYmluZC5hcHBseShmbiwgYXJndW1lbnRzKSk7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBvbkZpbmlzaGVkKG1zZywgbGlzdGVuZXIpIHtcbiAgICAgIGlmIChpc0ZpbmlzaGVkKG1zZykgIT09IGZhbHNlKSB7XG4gICAgICAgIGRlZmVyKGxpc3RlbmVyLCBudWxsLCBtc2cpO1xuICAgICAgICByZXR1cm4gbXNnO1xuICAgICAgfVxuICAgICAgYXR0YWNoTGlzdGVuZXIobXNnLCB3cmFwKGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gbXNnO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0ZpbmlzaGVkKG1zZykge1xuICAgICAgdmFyIHNvY2tldCA9IG1zZy5zb2NrZXQ7XG4gICAgICBpZiAodHlwZW9mIG1zZy5maW5pc2hlZCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4obXNnLmZpbmlzaGVkIHx8IHNvY2tldCAmJiAhc29ja2V0LndyaXRhYmxlKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbXNnLmNvbXBsZXRlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICByZXR1cm4gQm9vbGVhbihtc2cudXBncmFkZSB8fCAhc29ja2V0IHx8ICFzb2NrZXQucmVhZGFibGUgfHwgbXNnLmNvbXBsZXRlICYmICFtc2cucmVhZGFibGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gYXR0YWNoRmluaXNoZWRMaXN0ZW5lcihtc2csIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgZWVNc2c7XG4gICAgICB2YXIgZWVTb2NrZXQ7XG4gICAgICB2YXIgZmluaXNoZWQgPSBmYWxzZTtcbiAgICAgIGZ1bmN0aW9uIG9uRmluaXNoKGVycm9yKSB7XG4gICAgICAgIGVlTXNnLmNhbmNlbCgpO1xuICAgICAgICBlZVNvY2tldC5jYW5jZWwoKTtcbiAgICAgICAgZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgICB9XG4gICAgICBlZU1zZyA9IGVlU29ja2V0ID0gZmlyc3QoW1ttc2csIFwiZW5kXCIsIFwiZmluaXNoXCJdXSwgb25GaW5pc2gpO1xuICAgICAgZnVuY3Rpb24gb25Tb2NrZXQoc29ja2V0KSB7XG4gICAgICAgIG1zZy5yZW1vdmVMaXN0ZW5lcihcInNvY2tldFwiLCBvblNvY2tldCk7XG4gICAgICAgIGlmIChmaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICBpZiAoZWVNc2cgIT09IGVlU29ja2V0KSByZXR1cm47XG4gICAgICAgIGVlU29ja2V0ID0gZmlyc3QoW1tzb2NrZXQsIFwiZXJyb3JcIiwgXCJjbG9zZVwiXV0sIG9uRmluaXNoKTtcbiAgICAgIH1cbiAgICAgIGlmIChtc2cuc29ja2V0KSB7XG4gICAgICAgIG9uU29ja2V0KG1zZy5zb2NrZXQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBtc2cub24oXCJzb2NrZXRcIiwgb25Tb2NrZXQpO1xuICAgICAgaWYgKG1zZy5zb2NrZXQgPT09IHZvaWQgMCkge1xuICAgICAgICBwYXRjaEFzc2lnblNvY2tldChtc2csIG9uU29ja2V0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gYXR0YWNoTGlzdGVuZXIobXNnLCBsaXN0ZW5lcikge1xuICAgICAgdmFyIGF0dGFjaGVkID0gbXNnLl9fb25GaW5pc2hlZDtcbiAgICAgIGlmICghYXR0YWNoZWQgfHwgIWF0dGFjaGVkLnF1ZXVlKSB7XG4gICAgICAgIGF0dGFjaGVkID0gbXNnLl9fb25GaW5pc2hlZCA9IGNyZWF0ZUxpc3RlbmVyKG1zZyk7XG4gICAgICAgIGF0dGFjaEZpbmlzaGVkTGlzdGVuZXIobXNnLCBhdHRhY2hlZCk7XG4gICAgICB9XG4gICAgICBhdHRhY2hlZC5xdWV1ZS5wdXNoKGxpc3RlbmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlTGlzdGVuZXIobXNnKSB7XG4gICAgICBmdW5jdGlvbiBsaXN0ZW5lcihlcnIyKSB7XG4gICAgICAgIGlmIChtc2cuX19vbkZpbmlzaGVkID09PSBsaXN0ZW5lcikgbXNnLl9fb25GaW5pc2hlZCA9IG51bGw7XG4gICAgICAgIGlmICghbGlzdGVuZXIucXVldWUpIHJldHVybjtcbiAgICAgICAgdmFyIHF1ZXVlID0gbGlzdGVuZXIucXVldWU7XG4gICAgICAgIGxpc3RlbmVyLnF1ZXVlID0gbnVsbDtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHF1ZXVlW2ldKGVycjIsIG1zZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpc3RlbmVyLnF1ZXVlID0gW107XG4gICAgICByZXR1cm4gbGlzdGVuZXI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhdGNoQXNzaWduU29ja2V0KHJlcywgY2FsbGJhY2spIHtcbiAgICAgIHZhciBhc3NpZ25Tb2NrZXQgPSByZXMuYXNzaWduU29ja2V0O1xuICAgICAgaWYgKHR5cGVvZiBhc3NpZ25Tb2NrZXQgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuO1xuICAgICAgcmVzLmFzc2lnblNvY2tldCA9IGZ1bmN0aW9uIF9hc3NpZ25Tb2NrZXQoc29ja2V0KSB7XG4gICAgICAgIGFzc2lnblNvY2tldC5jYWxsKHRoaXMsIHNvY2tldCk7XG4gICAgICAgIGNhbGxiYWNrKHNvY2tldCk7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cnlSZXF1aXJlQXN5bmNIb29rcygpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwiYXN5bmNfaG9va3NcIik7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gd3JhcChmbikge1xuICAgICAgdmFyIHJlcztcbiAgICAgIGlmIChhc3luY0hvb2tzLkFzeW5jUmVzb3VyY2UpIHtcbiAgICAgICAgcmVzID0gbmV3IGFzeW5jSG9va3MuQXN5bmNSZXNvdXJjZShmbi5uYW1lIHx8IFwiYm91bmQtYW5vbnltb3VzLWZuXCIpO1xuICAgICAgfVxuICAgICAgaWYgKCFyZXMgfHwgIXJlcy5ydW5JbkFzeW5jU2NvcGUpIHtcbiAgICAgICAgcmV0dXJuIGZuO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcy5ydW5JbkFzeW5jU2NvcGUuYmluZChyZXMsIGZuLCBudWxsKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvbGliL2JvbS1oYW5kbGluZy5qc1xudmFyIHJlcXVpcmVfYm9tX2hhbmRsaW5nMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9saWIvYm9tLWhhbmRsaW5nLmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQk9NQ2hhciA9IFwiXFx1RkVGRlwiO1xuICAgIGV4cG9ydHMyLlByZXBlbmRCT00gPSBQcmVwZW5kQk9NV3JhcHBlcjtcbiAgICBmdW5jdGlvbiBQcmVwZW5kQk9NV3JhcHBlcihlbmNvZGVyLCBvcHRpb25zKSB7XG4gICAgICB0aGlzLmVuY29kZXIgPSBlbmNvZGVyO1xuICAgICAgdGhpcy5hZGRCT00gPSB0cnVlO1xuICAgIH1cbiAgICBQcmVwZW5kQk9NV3JhcHBlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIGlmICh0aGlzLmFkZEJPTSkge1xuICAgICAgICBzdHIgPSBCT01DaGFyICsgc3RyO1xuICAgICAgICB0aGlzLmFkZEJPTSA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZW5jb2Rlci53cml0ZShzdHIpO1xuICAgIH07XG4gICAgUHJlcGVuZEJPTVdyYXBwZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZW5jb2Rlci5lbmQoKTtcbiAgICB9O1xuICAgIGV4cG9ydHMyLlN0cmlwQk9NID0gU3RyaXBCT01XcmFwcGVyO1xuICAgIGZ1bmN0aW9uIFN0cmlwQk9NV3JhcHBlcihkZWNvZGVyLCBvcHRpb25zKSB7XG4gICAgICB0aGlzLmRlY29kZXIgPSBkZWNvZGVyO1xuICAgICAgdGhpcy5wYXNzID0gZmFsc2U7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIH1cbiAgICBTdHJpcEJPTVdyYXBwZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgICB2YXIgcmVzID0gdGhpcy5kZWNvZGVyLndyaXRlKGJ1Zik7XG4gICAgICBpZiAodGhpcy5wYXNzIHx8ICFyZXMpXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICBpZiAocmVzWzBdID09PSBCT01DaGFyKSB7XG4gICAgICAgIHJlcyA9IHJlcy5zbGljZSgxKTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuc3RyaXBCT00gPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuc3RyaXBCT00oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFzcyA9IHRydWU7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH07XG4gICAgU3RyaXBCT01XcmFwcGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIuZW5kKCk7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvaW50ZXJuYWwuanNcbnZhciByZXF1aXJlX2ludGVybmFsMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvaW50ZXJuYWwuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBCdWZmZXIyID0gcmVxdWlyZV9zYWZlcigpLkJ1ZmZlcjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7XG4gICAgICAvLyBFbmNvZGluZ3NcbiAgICAgIHV0Zjg6IHsgdHlwZTogXCJfaW50ZXJuYWxcIiwgYm9tQXdhcmU6IHRydWUgfSxcbiAgICAgIGNlc3U4OiB7IHR5cGU6IFwiX2ludGVybmFsXCIsIGJvbUF3YXJlOiB0cnVlIH0sXG4gICAgICB1bmljb2RlMTF1dGY4OiBcInV0ZjhcIixcbiAgICAgIHVjczI6IHsgdHlwZTogXCJfaW50ZXJuYWxcIiwgYm9tQXdhcmU6IHRydWUgfSxcbiAgICAgIHV0ZjE2bGU6IFwidWNzMlwiLFxuICAgICAgYmluYXJ5OiB7IHR5cGU6IFwiX2ludGVybmFsXCIgfSxcbiAgICAgIGJhc2U2NDogeyB0eXBlOiBcIl9pbnRlcm5hbFwiIH0sXG4gICAgICBoZXg6IHsgdHlwZTogXCJfaW50ZXJuYWxcIiB9LFxuICAgICAgLy8gQ29kZWMuXG4gICAgICBfaW50ZXJuYWw6IEludGVybmFsQ29kZWNcbiAgICB9O1xuICAgIGZ1bmN0aW9uIEludGVybmFsQ29kZWMoY29kZWNPcHRpb25zLCBpY29udikge1xuICAgICAgdGhpcy5lbmMgPSBjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lO1xuICAgICAgdGhpcy5ib21Bd2FyZSA9IGNvZGVjT3B0aW9ucy5ib21Bd2FyZTtcbiAgICAgIGlmICh0aGlzLmVuYyA9PT0gXCJiYXNlNjRcIilcbiAgICAgICAgdGhpcy5lbmNvZGVyID0gSW50ZXJuYWxFbmNvZGVyQmFzZTY0O1xuICAgICAgZWxzZSBpZiAodGhpcy5lbmMgPT09IFwiY2VzdThcIikge1xuICAgICAgICB0aGlzLmVuYyA9IFwidXRmOFwiO1xuICAgICAgICB0aGlzLmVuY29kZXIgPSBJbnRlcm5hbEVuY29kZXJDZXN1ODtcbiAgICAgICAgaWYgKEJ1ZmZlcjIuZnJvbShcImVkYTBiZGVkYjJhOVwiLCBcImhleFwiKS50b1N0cmluZygpICE9PSBcIlxcdXsxRjRBOX1cIikge1xuICAgICAgICAgIHRoaXMuZGVjb2RlciA9IEludGVybmFsRGVjb2RlckNlc3U4O1xuICAgICAgICAgIHRoaXMuZGVmYXVsdENoYXJVbmljb2RlID0gaWNvbnYuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEludGVybmFsQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBJbnRlcm5hbEVuY29kZXI7XG4gICAgSW50ZXJuYWxDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IEludGVybmFsRGVjb2RlcjtcbiAgICB2YXIgU3RyaW5nRGVjb2RlciA9IHJlcXVpcmUoXCJzdHJpbmdfZGVjb2RlclwiKS5TdHJpbmdEZWNvZGVyO1xuICAgIGlmICghU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUuZW5kKVxuICAgICAgU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICB9O1xuICAgIGZ1bmN0aW9uIEludGVybmFsRGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5kZWNvZGVyID0gbmV3IFN0cmluZ0RlY29kZXIoY29kZWMuZW5jKTtcbiAgICB9XG4gICAgSW50ZXJuYWxEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgaWYgKCFCdWZmZXIyLmlzQnVmZmVyKGJ1ZikpIHtcbiAgICAgICAgYnVmID0gQnVmZmVyMi5mcm9tKGJ1Zik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5kZWNvZGVyLndyaXRlKGJ1Zik7XG4gICAgfTtcbiAgICBJbnRlcm5hbERlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVjb2Rlci5lbmQoKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIEludGVybmFsRW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5lbmMgPSBjb2RlYy5lbmM7XG4gICAgfVxuICAgIEludGVybmFsRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHJldHVybiBCdWZmZXIyLmZyb20oc3RyLCB0aGlzLmVuYyk7XG4gICAgfTtcbiAgICBJbnRlcm5hbEVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIH07XG4gICAgZnVuY3Rpb24gSW50ZXJuYWxFbmNvZGVyQmFzZTY0KG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLnByZXZTdHIgPSBcIlwiO1xuICAgIH1cbiAgICBJbnRlcm5hbEVuY29kZXJCYXNlNjQucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICBzdHIgPSB0aGlzLnByZXZTdHIgKyBzdHI7XG4gICAgICB2YXIgY29tcGxldGVRdWFkcyA9IHN0ci5sZW5ndGggLSBzdHIubGVuZ3RoICUgNDtcbiAgICAgIHRoaXMucHJldlN0ciA9IHN0ci5zbGljZShjb21wbGV0ZVF1YWRzKTtcbiAgICAgIHN0ciA9IHN0ci5zbGljZSgwLCBjb21wbGV0ZVF1YWRzKTtcbiAgICAgIHJldHVybiBCdWZmZXIyLmZyb20oc3RyLCBcImJhc2U2NFwiKTtcbiAgICB9O1xuICAgIEludGVybmFsRW5jb2RlckJhc2U2NC5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gQnVmZmVyMi5mcm9tKHRoaXMucHJldlN0ciwgXCJiYXNlNjRcIik7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBJbnRlcm5hbEVuY29kZXJDZXN1OChvcHRpb25zLCBjb2RlYykge1xuICAgIH1cbiAgICBJbnRlcm5hbEVuY29kZXJDZXN1OC5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHZhciBidWYgPSBCdWZmZXIyLmFsbG9jKHN0ci5sZW5ndGggKiAzKSwgYnVmSWR4ID0gMDtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaGFyQ29kZSA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBpZiAoY2hhckNvZGUgPCAxMjgpXG4gICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IGNoYXJDb2RlO1xuICAgICAgICBlbHNlIGlmIChjaGFyQ29kZSA8IDIwNDgpIHtcbiAgICAgICAgICBidWZbYnVmSWR4KytdID0gMTkyICsgKGNoYXJDb2RlID4+PiA2KTtcbiAgICAgICAgICBidWZbYnVmSWR4KytdID0gMTI4ICsgKGNoYXJDb2RlICYgNjMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAyMjQgKyAoY2hhckNvZGUgPj4+IDEyKTtcbiAgICAgICAgICBidWZbYnVmSWR4KytdID0gMTI4ICsgKGNoYXJDb2RlID4+PiA2ICYgNjMpO1xuICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAxMjggKyAoY2hhckNvZGUgJiA2Myk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBidWYuc2xpY2UoMCwgYnVmSWR4KTtcbiAgICB9O1xuICAgIEludGVybmFsRW5jb2RlckNlc3U4LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIEludGVybmFsRGVjb2RlckNlc3U4KG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmFjYyA9IDA7XG4gICAgICB0aGlzLmNvbnRCeXRlcyA9IDA7XG4gICAgICB0aGlzLmFjY0J5dGVzID0gMDtcbiAgICAgIHRoaXMuZGVmYXVsdENoYXJVbmljb2RlID0gY29kZWMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgIH1cbiAgICBJbnRlcm5hbERlY29kZXJDZXN1OC5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIHZhciBhY2MgPSB0aGlzLmFjYywgY29udEJ5dGVzID0gdGhpcy5jb250Qnl0ZXMsIGFjY0J5dGVzID0gdGhpcy5hY2NCeXRlcywgcmVzID0gXCJcIjtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjdXJCeXRlID0gYnVmW2ldO1xuICAgICAgICBpZiAoKGN1ckJ5dGUgJiAxOTIpICE9PSAxMjgpIHtcbiAgICAgICAgICBpZiAoY29udEJ5dGVzID4gMCkge1xuICAgICAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICAgICAgY29udEJ5dGVzID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGN1ckJ5dGUgPCAxMjgpIHtcbiAgICAgICAgICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGN1ckJ5dGUpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoY3VyQnl0ZSA8IDIyNCkge1xuICAgICAgICAgICAgYWNjID0gY3VyQnl0ZSAmIDMxO1xuICAgICAgICAgICAgY29udEJ5dGVzID0gMTtcbiAgICAgICAgICAgIGFjY0J5dGVzID0gMTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGN1ckJ5dGUgPCAyNDApIHtcbiAgICAgICAgICAgIGFjYyA9IGN1ckJ5dGUgJiAxNTtcbiAgICAgICAgICAgIGNvbnRCeXRlcyA9IDI7XG4gICAgICAgICAgICBhY2NCeXRlcyA9IDE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcyArPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGNvbnRCeXRlcyA+IDApIHtcbiAgICAgICAgICAgIGFjYyA9IGFjYyA8PCA2IHwgY3VyQnl0ZSAmIDYzO1xuICAgICAgICAgICAgY29udEJ5dGVzLS07XG4gICAgICAgICAgICBhY2NCeXRlcysrO1xuICAgICAgICAgICAgaWYgKGNvbnRCeXRlcyA9PT0gMCkge1xuICAgICAgICAgICAgICBpZiAoYWNjQnl0ZXMgPT09IDIgJiYgYWNjIDwgMTI4ICYmIGFjYyA+IDApXG4gICAgICAgICAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICAgICAgICBlbHNlIGlmIChhY2NCeXRlcyA9PT0gMyAmJiBhY2MgPCAyMDQ4KVxuICAgICAgICAgICAgICAgIHJlcyArPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGFjYyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcyArPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuYWNjID0gYWNjO1xuICAgICAgdGhpcy5jb250Qnl0ZXMgPSBjb250Qnl0ZXM7XG4gICAgICB0aGlzLmFjY0J5dGVzID0gYWNjQnl0ZXM7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH07XG4gICAgSW50ZXJuYWxEZWNvZGVyQ2VzdTgucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHJlcyA9IDA7XG4gICAgICBpZiAodGhpcy5jb250Qnl0ZXMgPiAwKVxuICAgICAgICByZXMgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3V0ZjMyLmpzXG52YXIgcmVxdWlyZV91dGYzMjIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3V0ZjMyLmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQnVmZmVyMiA9IHJlcXVpcmVfc2FmZXIoKS5CdWZmZXI7XG4gICAgZXhwb3J0czIuX3V0ZjMyID0gVXRmMzJDb2RlYztcbiAgICBmdW5jdGlvbiBVdGYzMkNvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBpY29udjtcbiAgICAgIHRoaXMuYm9tQXdhcmUgPSB0cnVlO1xuICAgICAgdGhpcy5pc0xFID0gY29kZWNPcHRpb25zLmlzTEU7XG4gICAgfVxuICAgIGV4cG9ydHMyLnV0ZjMybGUgPSB7IHR5cGU6IFwiX3V0ZjMyXCIsIGlzTEU6IHRydWUgfTtcbiAgICBleHBvcnRzMi51dGYzMmJlID0geyB0eXBlOiBcIl91dGYzMlwiLCBpc0xFOiBmYWxzZSB9O1xuICAgIGV4cG9ydHMyLnVjczRsZSA9IFwidXRmMzJsZVwiO1xuICAgIGV4cG9ydHMyLnVjczRiZSA9IFwidXRmMzJiZVwiO1xuICAgIFV0ZjMyQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGYzMkVuY29kZXI7XG4gICAgVXRmMzJDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFV0ZjMyRGVjb2RlcjtcbiAgICBmdW5jdGlvbiBVdGYzMkVuY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuaXNMRSA9IGNvZGVjLmlzTEU7XG4gICAgICB0aGlzLmhpZ2hTdXJyb2dhdGUgPSAwO1xuICAgIH1cbiAgICBVdGYzMkVuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICB2YXIgc3JjID0gQnVmZmVyMi5mcm9tKHN0ciwgXCJ1Y3MyXCIpO1xuICAgICAgdmFyIGRzdCA9IEJ1ZmZlcjIuYWxsb2Moc3JjLmxlbmd0aCAqIDIpO1xuICAgICAgdmFyIHdyaXRlMzIgPSB0aGlzLmlzTEUgPyBkc3Qud3JpdGVVSW50MzJMRSA6IGRzdC53cml0ZVVJbnQzMkJFO1xuICAgICAgdmFyIG9mZnNldCA9IDA7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNyYy5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgICB2YXIgY29kZSA9IHNyYy5yZWFkVUludDE2TEUoaSk7XG4gICAgICAgIHZhciBpc0hpZ2hTdXJyb2dhdGUgPSA1NTI5NiA8PSBjb2RlICYmIGNvZGUgPCA1NjMyMDtcbiAgICAgICAgdmFyIGlzTG93U3Vycm9nYXRlID0gNTYzMjAgPD0gY29kZSAmJiBjb2RlIDwgNTczNDQ7XG4gICAgICAgIGlmICh0aGlzLmhpZ2hTdXJyb2dhdGUpIHtcbiAgICAgICAgICBpZiAoaXNIaWdoU3Vycm9nYXRlIHx8ICFpc0xvd1N1cnJvZ2F0ZSkge1xuICAgICAgICAgICAgd3JpdGUzMi5jYWxsKGRzdCwgdGhpcy5oaWdoU3Vycm9nYXRlLCBvZmZzZXQpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IDQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBjb2RlcG9pbnQgPSAodGhpcy5oaWdoU3Vycm9nYXRlIC0gNTUyOTYgPDwgMTAgfCBjb2RlIC0gNTYzMjApICsgNjU1MzY7XG4gICAgICAgICAgICB3cml0ZTMyLmNhbGwoZHN0LCBjb2RlcG9pbnQsIG9mZnNldCk7XG4gICAgICAgICAgICBvZmZzZXQgKz0gNDtcbiAgICAgICAgICAgIHRoaXMuaGlnaFN1cnJvZ2F0ZSA9IDA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzSGlnaFN1cnJvZ2F0ZSlcbiAgICAgICAgICB0aGlzLmhpZ2hTdXJyb2dhdGUgPSBjb2RlO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB3cml0ZTMyLmNhbGwoZHN0LCBjb2RlLCBvZmZzZXQpO1xuICAgICAgICAgIG9mZnNldCArPSA0O1xuICAgICAgICAgIHRoaXMuaGlnaFN1cnJvZ2F0ZSA9IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChvZmZzZXQgPCBkc3QubGVuZ3RoKVxuICAgICAgICBkc3QgPSBkc3Quc2xpY2UoMCwgb2Zmc2V0KTtcbiAgICAgIHJldHVybiBkc3Q7XG4gICAgfTtcbiAgICBVdGYzMkVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKCF0aGlzLmhpZ2hTdXJyb2dhdGUpXG4gICAgICAgIHJldHVybjtcbiAgICAgIHZhciBidWYgPSBCdWZmZXIyLmFsbG9jKDQpO1xuICAgICAgaWYgKHRoaXMuaXNMRSlcbiAgICAgICAgYnVmLndyaXRlVUludDMyTEUodGhpcy5oaWdoU3Vycm9nYXRlLCAwKTtcbiAgICAgIGVsc2VcbiAgICAgICAgYnVmLndyaXRlVUludDMyQkUodGhpcy5oaWdoU3Vycm9nYXRlLCAwKTtcbiAgICAgIHRoaXMuaGlnaFN1cnJvZ2F0ZSA9IDA7XG4gICAgICByZXR1cm4gYnVmO1xuICAgIH07XG4gICAgZnVuY3Rpb24gVXRmMzJEZWNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmlzTEUgPSBjb2RlYy5pc0xFO1xuICAgICAgdGhpcy5iYWRDaGFyID0gY29kZWMuaWNvbnYuZGVmYXVsdENoYXJVbmljb2RlLmNoYXJDb2RlQXQoMCk7XG4gICAgICB0aGlzLm92ZXJmbG93ID0gW107XG4gICAgfVxuICAgIFV0ZjMyRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzcmMpIHtcbiAgICAgIGlmIChzcmMubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIHZhciBpID0gMDtcbiAgICAgIHZhciBjb2RlcG9pbnQgPSAwO1xuICAgICAgdmFyIGRzdCA9IEJ1ZmZlcjIuYWxsb2Moc3JjLmxlbmd0aCArIDQpO1xuICAgICAgdmFyIG9mZnNldCA9IDA7XG4gICAgICB2YXIgaXNMRSA9IHRoaXMuaXNMRTtcbiAgICAgIHZhciBvdmVyZmxvdyA9IHRoaXMub3ZlcmZsb3c7XG4gICAgICB2YXIgYmFkQ2hhciA9IHRoaXMuYmFkQ2hhcjtcbiAgICAgIGlmIChvdmVyZmxvdy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoOyBpIDwgc3JjLmxlbmd0aCAmJiBvdmVyZmxvdy5sZW5ndGggPCA0OyBpKyspXG4gICAgICAgICAgb3ZlcmZsb3cucHVzaChzcmNbaV0pO1xuICAgICAgICBpZiAob3ZlcmZsb3cubGVuZ3RoID09PSA0KSB7XG4gICAgICAgICAgaWYgKGlzTEUpIHtcbiAgICAgICAgICAgIGNvZGVwb2ludCA9IG92ZXJmbG93W2ldIHwgb3ZlcmZsb3dbaSArIDFdIDw8IDggfCBvdmVyZmxvd1tpICsgMl0gPDwgMTYgfCBvdmVyZmxvd1tpICsgM10gPDwgMjQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvZGVwb2ludCA9IG92ZXJmbG93W2kgKyAzXSB8IG92ZXJmbG93W2kgKyAyXSA8PCA4IHwgb3ZlcmZsb3dbaSArIDFdIDw8IDE2IHwgb3ZlcmZsb3dbaV0gPDwgMjQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIG92ZXJmbG93Lmxlbmd0aCA9IDA7XG4gICAgICAgICAgb2Zmc2V0ID0gX3dyaXRlQ29kZXBvaW50KGRzdCwgb2Zmc2V0LCBjb2RlcG9pbnQsIGJhZENoYXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKDsgaSA8IHNyYy5sZW5ndGggLSAzOyBpICs9IDQpIHtcbiAgICAgICAgaWYgKGlzTEUpIHtcbiAgICAgICAgICBjb2RlcG9pbnQgPSBzcmNbaV0gfCBzcmNbaSArIDFdIDw8IDggfCBzcmNbaSArIDJdIDw8IDE2IHwgc3JjW2kgKyAzXSA8PCAyNDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb2RlcG9pbnQgPSBzcmNbaSArIDNdIHwgc3JjW2kgKyAyXSA8PCA4IHwgc3JjW2kgKyAxXSA8PCAxNiB8IHNyY1tpXSA8PCAyNDtcbiAgICAgICAgfVxuICAgICAgICBvZmZzZXQgPSBfd3JpdGVDb2RlcG9pbnQoZHN0LCBvZmZzZXQsIGNvZGVwb2ludCwgYmFkQ2hhcik7XG4gICAgICB9XG4gICAgICBmb3IgKDsgaSA8IHNyYy5sZW5ndGg7IGkrKykge1xuICAgICAgICBvdmVyZmxvdy5wdXNoKHNyY1tpXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZHN0LnNsaWNlKDAsIG9mZnNldCkudG9TdHJpbmcoXCJ1Y3MyXCIpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gX3dyaXRlQ29kZXBvaW50KGRzdCwgb2Zmc2V0LCBjb2RlcG9pbnQsIGJhZENoYXIpIHtcbiAgICAgIGlmIChjb2RlcG9pbnQgPCAwIHx8IGNvZGVwb2ludCA+IDExMTQxMTEpIHtcbiAgICAgICAgY29kZXBvaW50ID0gYmFkQ2hhcjtcbiAgICAgIH1cbiAgICAgIGlmIChjb2RlcG9pbnQgPj0gNjU1MzYpIHtcbiAgICAgICAgY29kZXBvaW50IC09IDY1NTM2O1xuICAgICAgICB2YXIgaGlnaCA9IDU1Mjk2IHwgY29kZXBvaW50ID4+IDEwO1xuICAgICAgICBkc3Rbb2Zmc2V0KytdID0gaGlnaCAmIDI1NTtcbiAgICAgICAgZHN0W29mZnNldCsrXSA9IGhpZ2ggPj4gODtcbiAgICAgICAgdmFyIGNvZGVwb2ludCA9IDU2MzIwIHwgY29kZXBvaW50ICYgMTAyMztcbiAgICAgIH1cbiAgICAgIGRzdFtvZmZzZXQrK10gPSBjb2RlcG9pbnQgJiAyNTU7XG4gICAgICBkc3Rbb2Zmc2V0KytdID0gY29kZXBvaW50ID4+IDg7XG4gICAgICByZXR1cm4gb2Zmc2V0O1xuICAgIH1cbiAgICBVdGYzMkRlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdGhpcy5vdmVyZmxvdy5sZW5ndGggPSAwO1xuICAgIH07XG4gICAgZXhwb3J0czIudXRmMzIgPSBVdGYzMkF1dG9Db2RlYztcbiAgICBleHBvcnRzMi51Y3M0ID0gXCJ1dGYzMlwiO1xuICAgIGZ1bmN0aW9uIFV0ZjMyQXV0b0NvZGVjKG9wdGlvbnMsIGljb252KSB7XG4gICAgICB0aGlzLmljb252ID0gaWNvbnY7XG4gICAgfVxuICAgIFV0ZjMyQXV0b0NvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gVXRmMzJBdXRvRW5jb2RlcjtcbiAgICBVdGYzMkF1dG9Db2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFV0ZjMyQXV0b0RlY29kZXI7XG4gICAgZnVuY3Rpb24gVXRmMzJBdXRvRW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICBpZiAob3B0aW9ucy5hZGRCT00gPT09IHZvaWQgMClcbiAgICAgICAgb3B0aW9ucy5hZGRCT00gPSB0cnVlO1xuICAgICAgdGhpcy5lbmNvZGVyID0gY29kZWMuaWNvbnYuZ2V0RW5jb2RlcihvcHRpb25zLmRlZmF1bHRFbmNvZGluZyB8fCBcInV0Zi0zMmxlXCIsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBVdGYzMkF1dG9FbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgcmV0dXJuIHRoaXMuZW5jb2Rlci53cml0ZShzdHIpO1xuICAgIH07XG4gICAgVXRmMzJBdXRvRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbmNvZGVyLmVuZCgpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gVXRmMzJBdXRvRGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5kZWNvZGVyID0gbnVsbDtcbiAgICAgIHRoaXMuaW5pdGlhbEJ1ZnMgPSBbXTtcbiAgICAgIHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPSAwO1xuICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjtcbiAgICB9XG4gICAgVXRmMzJBdXRvRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIGlmICghdGhpcy5kZWNvZGVyKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbEJ1ZnMucHVzaChidWYpO1xuICAgICAgICB0aGlzLmluaXRpYWxCdWZzTGVuICs9IGJ1Zi5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxCdWZzTGVuIDwgMzIpXG4gICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIHZhciBlbmNvZGluZyA9IGRldGVjdEVuY29kaW5nKHRoaXMuaW5pdGlhbEJ1ZnMsIHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO1xuICAgICAgICB0aGlzLmRlY29kZXIgPSB0aGlzLmljb252LmdldERlY29kZXIoZW5jb2RpbmcsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHZhciByZXNTdHIgPSBcIlwiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW5pdGlhbEJ1ZnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgcmVzU3RyICs9IHRoaXMuZGVjb2Rlci53cml0ZSh0aGlzLmluaXRpYWxCdWZzW2ldKTtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGggPSB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgICAgcmV0dXJuIHJlc1N0cjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIud3JpdGUoYnVmKTtcbiAgICB9O1xuICAgIFV0ZjMyQXV0b0RlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKCF0aGlzLmRlY29kZXIpIHtcbiAgICAgICAgdmFyIGVuY29kaW5nID0gZGV0ZWN0RW5jb2RpbmcodGhpcy5pbml0aWFsQnVmcywgdGhpcy5vcHRpb25zLmRlZmF1bHRFbmNvZGluZyk7XG4gICAgICAgIHRoaXMuZGVjb2RlciA9IHRoaXMuaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgdmFyIHJlc1N0ciA9IFwiXCI7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGg7IGkrKylcbiAgICAgICAgICByZXNTdHIgKz0gdGhpcy5kZWNvZGVyLndyaXRlKHRoaXMuaW5pdGlhbEJ1ZnNbaV0pO1xuICAgICAgICB2YXIgdHJhaWwgPSB0aGlzLmRlY29kZXIuZW5kKCk7XG4gICAgICAgIGlmICh0cmFpbClcbiAgICAgICAgICByZXNTdHIgKz0gdHJhaWw7XG4gICAgICAgIHRoaXMuaW5pdGlhbEJ1ZnMubGVuZ3RoID0gdGhpcy5pbml0aWFsQnVmc0xlbiA9IDA7XG4gICAgICAgIHJldHVybiByZXNTdHI7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5kZWNvZGVyLmVuZCgpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gZGV0ZWN0RW5jb2RpbmcoYnVmcywgZGVmYXVsdEVuY29kaW5nKSB7XG4gICAgICB2YXIgYiA9IFtdO1xuICAgICAgdmFyIGNoYXJzUHJvY2Vzc2VkID0gMDtcbiAgICAgIHZhciBpbnZhbGlkTEUgPSAwLCBpbnZhbGlkQkUgPSAwO1xuICAgICAgdmFyIGJtcENoYXJzTEUgPSAwLCBibXBDaGFyc0JFID0gMDtcbiAgICAgIG91dGVyX2xvb3A6XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBidWYgPSBidWZzW2ldO1xuICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYnVmLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBiLnB1c2goYnVmW2pdKTtcbiAgICAgICAgICAgIGlmIChiLmxlbmd0aCA9PT0gNCkge1xuICAgICAgICAgICAgICBpZiAoY2hhcnNQcm9jZXNzZWQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMjU1ICYmIGJbMV0gPT09IDI1NCAmJiBiWzJdID09PSAwICYmIGJbM10gPT09IDApIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBcInV0Zi0zMmxlXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChiWzBdID09PSAwICYmIGJbMV0gPT09IDAgJiYgYlsyXSA9PT0gMjU0ICYmIGJbM10gPT09IDI1NSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIFwidXRmLTMyYmVcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGJbMF0gIT09IDAgfHwgYlsxXSA+IDE2KSBpbnZhbGlkQkUrKztcbiAgICAgICAgICAgICAgaWYgKGJbM10gIT09IDAgfHwgYlsyXSA+IDE2KSBpbnZhbGlkTEUrKztcbiAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDAgJiYgYlsxXSA9PT0gMCAmJiAoYlsyXSAhPT0gMCB8fCBiWzNdICE9PSAwKSkgYm1wQ2hhcnNCRSsrO1xuICAgICAgICAgICAgICBpZiAoKGJbMF0gIT09IDAgfHwgYlsxXSAhPT0gMCkgJiYgYlsyXSA9PT0gMCAmJiBiWzNdID09PSAwKSBibXBDaGFyc0xFKys7XG4gICAgICAgICAgICAgIGIubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgY2hhcnNQcm9jZXNzZWQrKztcbiAgICAgICAgICAgICAgaWYgKGNoYXJzUHJvY2Vzc2VkID49IDEwMCkge1xuICAgICAgICAgICAgICAgIGJyZWFrIG91dGVyX2xvb3A7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIGlmIChibXBDaGFyc0JFIC0gaW52YWxpZEJFID4gYm1wQ2hhcnNMRSAtIGludmFsaWRMRSkgcmV0dXJuIFwidXRmLTMyYmVcIjtcbiAgICAgIGlmIChibXBDaGFyc0JFIC0gaW52YWxpZEJFIDwgYm1wQ2hhcnNMRSAtIGludmFsaWRMRSkgcmV0dXJuIFwidXRmLTMybGVcIjtcbiAgICAgIHJldHVybiBkZWZhdWx0RW5jb2RpbmcgfHwgXCJ1dGYtMzJsZVwiO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdXRmMTYuanNcbnZhciByZXF1aXJlX3V0ZjE2MiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdXRmMTYuanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBCdWZmZXIyID0gcmVxdWlyZV9zYWZlcigpLkJ1ZmZlcjtcbiAgICBleHBvcnRzMi51dGYxNmJlID0gVXRmMTZCRUNvZGVjO1xuICAgIGZ1bmN0aW9uIFV0ZjE2QkVDb2RlYygpIHtcbiAgICB9XG4gICAgVXRmMTZCRUNvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gVXRmMTZCRUVuY29kZXI7XG4gICAgVXRmMTZCRUNvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmMTZCRURlY29kZXI7XG4gICAgVXRmMTZCRUNvZGVjLnByb3RvdHlwZS5ib21Bd2FyZSA9IHRydWU7XG4gICAgZnVuY3Rpb24gVXRmMTZCRUVuY29kZXIoKSB7XG4gICAgfVxuICAgIFV0ZjE2QkVFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgdmFyIGJ1ZiA9IEJ1ZmZlcjIuZnJvbShzdHIsIFwidWNzMlwiKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgIHZhciB0bXAgPSBidWZbaV07XG4gICAgICAgIGJ1ZltpXSA9IGJ1ZltpICsgMV07XG4gICAgICAgIGJ1ZltpICsgMV0gPSB0bXA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYnVmO1xuICAgIH07XG4gICAgVXRmMTZCRUVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIH07XG4gICAgZnVuY3Rpb24gVXRmMTZCRURlY29kZXIoKSB7XG4gICAgICB0aGlzLm92ZXJmbG93Qnl0ZSA9IC0xO1xuICAgIH1cbiAgICBVdGYxNkJFRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIGlmIChidWYubGVuZ3RoID09IDApXG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgdmFyIGJ1ZjIgPSBCdWZmZXIyLmFsbG9jKGJ1Zi5sZW5ndGggKyAxKSwgaSA9IDAsIGogPSAwO1xuICAgICAgaWYgKHRoaXMub3ZlcmZsb3dCeXRlICE9PSAtMSkge1xuICAgICAgICBidWYyWzBdID0gYnVmWzBdO1xuICAgICAgICBidWYyWzFdID0gdGhpcy5vdmVyZmxvd0J5dGU7XG4gICAgICAgIGkgPSAxO1xuICAgICAgICBqID0gMjtcbiAgICAgIH1cbiAgICAgIGZvciAoOyBpIDwgYnVmLmxlbmd0aCAtIDE7IGkgKz0gMiwgaiArPSAyKSB7XG4gICAgICAgIGJ1ZjJbal0gPSBidWZbaSArIDFdO1xuICAgICAgICBidWYyW2ogKyAxXSA9IGJ1ZltpXTtcbiAgICAgIH1cbiAgICAgIHRoaXMub3ZlcmZsb3dCeXRlID0gaSA9PSBidWYubGVuZ3RoIC0gMSA/IGJ1ZltidWYubGVuZ3RoIC0gMV0gOiAtMTtcbiAgICAgIHJldHVybiBidWYyLnNsaWNlKDAsIGopLnRvU3RyaW5nKFwidWNzMlwiKTtcbiAgICB9O1xuICAgIFV0ZjE2QkVEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMub3ZlcmZsb3dCeXRlID0gLTE7XG4gICAgfTtcbiAgICBleHBvcnRzMi51dGYxNiA9IFV0ZjE2Q29kZWM7XG4gICAgZnVuY3Rpb24gVXRmMTZDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgICB0aGlzLmljb252ID0gaWNvbnY7XG4gICAgfVxuICAgIFV0ZjE2Q29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGYxNkVuY29kZXI7XG4gICAgVXRmMTZDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFV0ZjE2RGVjb2RlcjtcbiAgICBmdW5jdGlvbiBVdGYxNkVuY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgaWYgKG9wdGlvbnMuYWRkQk9NID09PSB2b2lkIDApXG4gICAgICAgIG9wdGlvbnMuYWRkQk9NID0gdHJ1ZTtcbiAgICAgIHRoaXMuZW5jb2RlciA9IGNvZGVjLmljb252LmdldEVuY29kZXIoXCJ1dGYtMTZsZVwiLCBvcHRpb25zKTtcbiAgICB9XG4gICAgVXRmMTZFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgcmV0dXJuIHRoaXMuZW5jb2Rlci53cml0ZShzdHIpO1xuICAgIH07XG4gICAgVXRmMTZFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLmVuY29kZXIuZW5kKCk7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBVdGYxNkRlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuZGVjb2RlciA9IG51bGw7XG4gICAgICB0aGlzLmluaXRpYWxCdWZzID0gW107XG4gICAgICB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICB0aGlzLmljb252ID0gY29kZWMuaWNvbnY7XG4gICAgfVxuICAgIFV0ZjE2RGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIGlmICghdGhpcy5kZWNvZGVyKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbEJ1ZnMucHVzaChidWYpO1xuICAgICAgICB0aGlzLmluaXRpYWxCdWZzTGVuICs9IGJ1Zi5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxCdWZzTGVuIDwgMTYpXG4gICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIHZhciBlbmNvZGluZyA9IGRldGVjdEVuY29kaW5nKHRoaXMuaW5pdGlhbEJ1ZnMsIHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO1xuICAgICAgICB0aGlzLmRlY29kZXIgPSB0aGlzLmljb252LmdldERlY29kZXIoZW5jb2RpbmcsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHZhciByZXNTdHIgPSBcIlwiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW5pdGlhbEJ1ZnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgcmVzU3RyICs9IHRoaXMuZGVjb2Rlci53cml0ZSh0aGlzLmluaXRpYWxCdWZzW2ldKTtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGggPSB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgICAgcmV0dXJuIHJlc1N0cjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIud3JpdGUoYnVmKTtcbiAgICB9O1xuICAgIFV0ZjE2RGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoIXRoaXMuZGVjb2Rlcikge1xuICAgICAgICB2YXIgZW5jb2RpbmcgPSBkZXRlY3RFbmNvZGluZyh0aGlzLmluaXRpYWxCdWZzLCB0aGlzLm9wdGlvbnMuZGVmYXVsdEVuY29kaW5nKTtcbiAgICAgICAgdGhpcy5kZWNvZGVyID0gdGhpcy5pY29udi5nZXREZWNvZGVyKGVuY29kaW5nLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICB2YXIgcmVzU3RyID0gXCJcIjtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmluaXRpYWxCdWZzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgIHJlc1N0ciArPSB0aGlzLmRlY29kZXIud3JpdGUodGhpcy5pbml0aWFsQnVmc1tpXSk7XG4gICAgICAgIHZhciB0cmFpbCA9IHRoaXMuZGVjb2Rlci5lbmQoKTtcbiAgICAgICAgaWYgKHRyYWlsKVxuICAgICAgICAgIHJlc1N0ciArPSB0cmFpbDtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGggPSB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgICAgcmV0dXJuIHJlc1N0cjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIuZW5kKCk7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBkZXRlY3RFbmNvZGluZyhidWZzLCBkZWZhdWx0RW5jb2RpbmcpIHtcbiAgICAgIHZhciBiID0gW107XG4gICAgICB2YXIgY2hhcnNQcm9jZXNzZWQgPSAwO1xuICAgICAgdmFyIGFzY2lpQ2hhcnNMRSA9IDAsIGFzY2lpQ2hhcnNCRSA9IDA7XG4gICAgICBvdXRlcl9sb29wOlxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgYnVmID0gYnVmc1tpXTtcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGJ1Zi5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgYi5wdXNoKGJ1ZltqXSk7XG4gICAgICAgICAgICBpZiAoYi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgaWYgKGNoYXJzUHJvY2Vzc2VkID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDI1NSAmJiBiWzFdID09PSAyNTQpIHJldHVybiBcInV0Zi0xNmxlXCI7XG4gICAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDI1NCAmJiBiWzFdID09PSAyNTUpIHJldHVybiBcInV0Zi0xNmJlXCI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDAgJiYgYlsxXSAhPT0gMCkgYXNjaWlDaGFyc0JFKys7XG4gICAgICAgICAgICAgIGlmIChiWzBdICE9PSAwICYmIGJbMV0gPT09IDApIGFzY2lpQ2hhcnNMRSsrO1xuICAgICAgICAgICAgICBiLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgIGNoYXJzUHJvY2Vzc2VkKys7XG4gICAgICAgICAgICAgIGlmIChjaGFyc1Byb2Nlc3NlZCA+PSAxMDApIHtcbiAgICAgICAgICAgICAgICBicmVhayBvdXRlcl9sb29wO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBpZiAoYXNjaWlDaGFyc0JFID4gYXNjaWlDaGFyc0xFKSByZXR1cm4gXCJ1dGYtMTZiZVwiO1xuICAgICAgaWYgKGFzY2lpQ2hhcnNCRSA8IGFzY2lpQ2hhcnNMRSkgcmV0dXJuIFwidXRmLTE2bGVcIjtcbiAgICAgIHJldHVybiBkZWZhdWx0RW5jb2RpbmcgfHwgXCJ1dGYtMTZsZVwiO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdXRmNy5qc1xudmFyIHJlcXVpcmVfdXRmNzIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3V0ZjcuanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBCdWZmZXIyID0gcmVxdWlyZV9zYWZlcigpLkJ1ZmZlcjtcbiAgICBleHBvcnRzMi51dGY3ID0gVXRmN0NvZGVjO1xuICAgIGV4cG9ydHMyLnVuaWNvZGUxMXV0ZjcgPSBcInV0ZjdcIjtcbiAgICBmdW5jdGlvbiBVdGY3Q29kZWMoY29kZWNPcHRpb25zLCBpY29udikge1xuICAgICAgdGhpcy5pY29udiA9IGljb252O1xuICAgIH1cbiAgICBVdGY3Q29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGY3RW5jb2RlcjtcbiAgICBVdGY3Q29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBVdGY3RGVjb2RlcjtcbiAgICBVdGY3Q29kZWMucHJvdG90eXBlLmJvbUF3YXJlID0gdHJ1ZTtcbiAgICB2YXIgbm9uRGlyZWN0Q2hhcnMgPSAvW15BLVphLXowLTknXFwoXFwpLC1cXC5cXC86XFw/IFxcblxcclxcdF0rL2c7XG4gICAgZnVuY3Rpb24gVXRmN0VuY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjtcbiAgICB9XG4gICAgVXRmN0VuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICByZXR1cm4gQnVmZmVyMi5mcm9tKHN0ci5yZXBsYWNlKG5vbkRpcmVjdENoYXJzLCBmdW5jdGlvbihjaHVuaykge1xuICAgICAgICByZXR1cm4gXCIrXCIgKyAoY2h1bmsgPT09IFwiK1wiID8gXCJcIiA6IHRoaXMuaWNvbnYuZW5jb2RlKGNodW5rLCBcInV0ZjE2LWJlXCIpLnRvU3RyaW5nKFwiYmFzZTY0XCIpLnJlcGxhY2UoLz0rJC8sIFwiXCIpKSArIFwiLVwiO1xuICAgICAgfS5iaW5kKHRoaXMpKSk7XG4gICAgfTtcbiAgICBVdGY3RW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBVdGY3RGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5pY29udiA9IGNvZGVjLmljb252O1xuICAgICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bSA9IFwiXCI7XG4gICAgfVxuICAgIHZhciBiYXNlNjRSZWdleDIgPSAvW0EtWmEtejAtOVxcLytdLztcbiAgICB2YXIgYmFzZTY0Q2hhcnMgPSBbXTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspXG4gICAgICBiYXNlNjRDaGFyc1tpXSA9IGJhc2U2NFJlZ2V4Mi50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoaSkpO1xuICAgIHZhciBpO1xuICAgIHZhciBwbHVzQ2hhciA9IFwiK1wiLmNoYXJDb2RlQXQoMCk7XG4gICAgdmFyIG1pbnVzQ2hhciA9IFwiLVwiLmNoYXJDb2RlQXQoMCk7XG4gICAgdmFyIGFuZENoYXIgPSBcIiZcIi5jaGFyQ29kZUF0KDApO1xuICAgIFV0ZjdEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgdmFyIHJlcyA9IFwiXCIsIGxhc3RJID0gMCwgaW5CYXNlNjQgPSB0aGlzLmluQmFzZTY0LCBiYXNlNjRBY2N1bSA9IHRoaXMuYmFzZTY0QWNjdW07XG4gICAgICBmb3IgKHZhciBpMiA9IDA7IGkyIDwgYnVmLmxlbmd0aDsgaTIrKykge1xuICAgICAgICBpZiAoIWluQmFzZTY0KSB7XG4gICAgICAgICAgaWYgKGJ1ZltpMl0gPT0gcGx1c0NoYXIpIHtcbiAgICAgICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEksIGkyKSwgXCJhc2NpaVwiKTtcbiAgICAgICAgICAgIGxhc3RJID0gaTIgKyAxO1xuICAgICAgICAgICAgaW5CYXNlNjQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIWJhc2U2NENoYXJzW2J1ZltpMl1dKSB7XG4gICAgICAgICAgICBpZiAoaTIgPT0gbGFzdEkgJiYgYnVmW2kyXSA9PSBtaW51c0NoYXIpIHtcbiAgICAgICAgICAgICAgcmVzICs9IFwiK1wiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFyIGI2NHN0ciA9IGJhc2U2NEFjY3VtICsgdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJLCBpMiksIFwiYXNjaWlcIik7XG4gICAgICAgICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShCdWZmZXIyLmZyb20oYjY0c3RyLCBcImJhc2U2NFwiKSwgXCJ1dGYxNi1iZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChidWZbaTJdICE9IG1pbnVzQ2hhcilcbiAgICAgICAgICAgICAgaTItLTtcbiAgICAgICAgICAgIGxhc3RJID0gaTIgKyAxO1xuICAgICAgICAgICAgaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgICAgICAgIGJhc2U2NEFjY3VtID0gXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSksIFwiYXNjaWlcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgYjY0c3RyID0gYmFzZTY0QWNjdW0gKyB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEkpLCBcImFzY2lpXCIpO1xuICAgICAgICB2YXIgY2FuQmVEZWNvZGVkID0gYjY0c3RyLmxlbmd0aCAtIGI2NHN0ci5sZW5ndGggJSA4O1xuICAgICAgICBiYXNlNjRBY2N1bSA9IGI2NHN0ci5zbGljZShjYW5CZURlY29kZWQpO1xuICAgICAgICBiNjRzdHIgPSBiNjRzdHIuc2xpY2UoMCwgY2FuQmVEZWNvZGVkKTtcbiAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKEJ1ZmZlcjIuZnJvbShiNjRzdHIsIFwiYmFzZTY0XCIpLCBcInV0ZjE2LWJlXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbkJhc2U2NCA9IGluQmFzZTY0O1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bSA9IGJhc2U2NEFjY3VtO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9O1xuICAgIFV0ZjdEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciByZXMgPSBcIlwiO1xuICAgICAgaWYgKHRoaXMuaW5CYXNlNjQgJiYgdGhpcy5iYXNlNjRBY2N1bS5sZW5ndGggPiAwKVxuICAgICAgICByZXMgPSB0aGlzLmljb252LmRlY29kZShCdWZmZXIyLmZyb20odGhpcy5iYXNlNjRBY2N1bSwgXCJiYXNlNjRcIiksIFwidXRmMTYtYmVcIik7XG4gICAgICB0aGlzLmluQmFzZTY0ID0gZmFsc2U7XG4gICAgICB0aGlzLmJhc2U2NEFjY3VtID0gXCJcIjtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgICBleHBvcnRzMi51dGY3aW1hcCA9IFV0ZjdJTUFQQ29kZWM7XG4gICAgZnVuY3Rpb24gVXRmN0lNQVBDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgICB0aGlzLmljb252ID0gaWNvbnY7XG4gICAgfVxuICAgIFV0ZjdJTUFQQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGY3SU1BUEVuY29kZXI7XG4gICAgVXRmN0lNQVBDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFV0ZjdJTUFQRGVjb2RlcjtcbiAgICBVdGY3SU1BUENvZGVjLnByb3RvdHlwZS5ib21Bd2FyZSA9IHRydWU7XG4gICAgZnVuY3Rpb24gVXRmN0lNQVBFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmljb252ID0gY29kZWMuaWNvbnY7XG4gICAgICB0aGlzLmluQmFzZTY0ID0gZmFsc2U7XG4gICAgICB0aGlzLmJhc2U2NEFjY3VtID0gQnVmZmVyMi5hbGxvYyg2KTtcbiAgICAgIHRoaXMuYmFzZTY0QWNjdW1JZHggPSAwO1xuICAgIH1cbiAgICBVdGY3SU1BUEVuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICB2YXIgaW5CYXNlNjQgPSB0aGlzLmluQmFzZTY0LCBiYXNlNjRBY2N1bSA9IHRoaXMuYmFzZTY0QWNjdW0sIGJhc2U2NEFjY3VtSWR4ID0gdGhpcy5iYXNlNjRBY2N1bUlkeCwgYnVmID0gQnVmZmVyMi5hbGxvYyhzdHIubGVuZ3RoICogNSArIDEwKSwgYnVmSWR4ID0gMDtcbiAgICAgIGZvciAodmFyIGkyID0gMDsgaTIgPCBzdHIubGVuZ3RoOyBpMisrKSB7XG4gICAgICAgIHZhciB1Q2hhciA9IHN0ci5jaGFyQ29kZUF0KGkyKTtcbiAgICAgICAgaWYgKDMyIDw9IHVDaGFyICYmIHVDaGFyIDw9IDEyNikge1xuICAgICAgICAgIGlmIChpbkJhc2U2NCkge1xuICAgICAgICAgICAgaWYgKGJhc2U2NEFjY3VtSWR4ID4gMCkge1xuICAgICAgICAgICAgICBidWZJZHggKz0gYnVmLndyaXRlKGJhc2U2NEFjY3VtLnNsaWNlKDAsIGJhc2U2NEFjY3VtSWR4KS50b1N0cmluZyhcImJhc2U2NFwiKS5yZXBsYWNlKC9cXC8vZywgXCIsXCIpLnJlcGxhY2UoLz0rJC8sIFwiXCIpLCBidWZJZHgpO1xuICAgICAgICAgICAgICBiYXNlNjRBY2N1bUlkeCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBidWZbYnVmSWR4KytdID0gbWludXNDaGFyO1xuICAgICAgICAgICAgaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpbkJhc2U2NCkge1xuICAgICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IHVDaGFyO1xuICAgICAgICAgICAgaWYgKHVDaGFyID09PSBhbmRDaGFyKVxuICAgICAgICAgICAgICBidWZbYnVmSWR4KytdID0gbWludXNDaGFyO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIWluQmFzZTY0KSB7XG4gICAgICAgICAgICBidWZbYnVmSWR4KytdID0gYW5kQ2hhcjtcbiAgICAgICAgICAgIGluQmFzZTY0ID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGluQmFzZTY0KSB7XG4gICAgICAgICAgICBiYXNlNjRBY2N1bVtiYXNlNjRBY2N1bUlkeCsrXSA9IHVDaGFyID4+IDg7XG4gICAgICAgICAgICBiYXNlNjRBY2N1bVtiYXNlNjRBY2N1bUlkeCsrXSA9IHVDaGFyICYgMjU1O1xuICAgICAgICAgICAgaWYgKGJhc2U2NEFjY3VtSWR4ID09IGJhc2U2NEFjY3VtLmxlbmd0aCkge1xuICAgICAgICAgICAgICBidWZJZHggKz0gYnVmLndyaXRlKGJhc2U2NEFjY3VtLnRvU3RyaW5nKFwiYmFzZTY0XCIpLnJlcGxhY2UoL1xcLy9nLCBcIixcIiksIGJ1ZklkeCk7XG4gICAgICAgICAgICAgIGJhc2U2NEFjY3VtSWR4ID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuaW5CYXNlNjQgPSBpbkJhc2U2NDtcbiAgICAgIHRoaXMuYmFzZTY0QWNjdW1JZHggPSBiYXNlNjRBY2N1bUlkeDtcbiAgICAgIHJldHVybiBidWYuc2xpY2UoMCwgYnVmSWR4KTtcbiAgICB9O1xuICAgIFV0ZjdJTUFQRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgYnVmID0gQnVmZmVyMi5hbGxvYygxMCksIGJ1ZklkeCA9IDA7XG4gICAgICBpZiAodGhpcy5pbkJhc2U2NCkge1xuICAgICAgICBpZiAodGhpcy5iYXNlNjRBY2N1bUlkeCA+IDApIHtcbiAgICAgICAgICBidWZJZHggKz0gYnVmLndyaXRlKHRoaXMuYmFzZTY0QWNjdW0uc2xpY2UoMCwgdGhpcy5iYXNlNjRBY2N1bUlkeCkudG9TdHJpbmcoXCJiYXNlNjRcIikucmVwbGFjZSgvXFwvL2csIFwiLFwiKS5yZXBsYWNlKC89KyQvLCBcIlwiKSwgYnVmSWR4KTtcbiAgICAgICAgICB0aGlzLmJhc2U2NEFjY3VtSWR4ID0gMDtcbiAgICAgICAgfVxuICAgICAgICBidWZbYnVmSWR4KytdID0gbWludXNDaGFyO1xuICAgICAgICB0aGlzLmluQmFzZTY0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gYnVmLnNsaWNlKDAsIGJ1ZklkeCk7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBVdGY3SU1BUERlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjtcbiAgICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgIHRoaXMuYmFzZTY0QWNjdW0gPSBcIlwiO1xuICAgIH1cbiAgICB2YXIgYmFzZTY0SU1BUENoYXJzID0gYmFzZTY0Q2hhcnMuc2xpY2UoKTtcbiAgICBiYXNlNjRJTUFQQ2hhcnNbXCIsXCIuY2hhckNvZGVBdCgwKV0gPSB0cnVlO1xuICAgIFV0ZjdJTUFQRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIHZhciByZXMgPSBcIlwiLCBsYXN0SSA9IDAsIGluQmFzZTY0ID0gdGhpcy5pbkJhc2U2NCwgYmFzZTY0QWNjdW0gPSB0aGlzLmJhc2U2NEFjY3VtO1xuICAgICAgZm9yICh2YXIgaTIgPSAwOyBpMiA8IGJ1Zi5sZW5ndGg7IGkyKyspIHtcbiAgICAgICAgaWYgKCFpbkJhc2U2NCkge1xuICAgICAgICAgIGlmIChidWZbaTJdID09IGFuZENoYXIpIHtcbiAgICAgICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEksIGkyKSwgXCJhc2NpaVwiKTtcbiAgICAgICAgICAgIGxhc3RJID0gaTIgKyAxO1xuICAgICAgICAgICAgaW5CYXNlNjQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIWJhc2U2NElNQVBDaGFyc1tidWZbaTJdXSkge1xuICAgICAgICAgICAgaWYgKGkyID09IGxhc3RJICYmIGJ1ZltpMl0gPT0gbWludXNDaGFyKSB7XG4gICAgICAgICAgICAgIHJlcyArPSBcIiZcIjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhciBiNjRzdHIgPSBiYXNlNjRBY2N1bSArIHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSwgaTIpLCBcImFzY2lpXCIpLnJlcGxhY2UoLywvZywgXCIvXCIpO1xuICAgICAgICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoQnVmZmVyMi5mcm9tKGI2NHN0ciwgXCJiYXNlNjRcIiksIFwidXRmMTYtYmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYnVmW2kyXSAhPSBtaW51c0NoYXIpXG4gICAgICAgICAgICAgIGkyLS07XG4gICAgICAgICAgICBsYXN0SSA9IGkyICsgMTtcbiAgICAgICAgICAgIGluQmFzZTY0ID0gZmFsc2U7XG4gICAgICAgICAgICBiYXNlNjRBY2N1bSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWluQmFzZTY0KSB7XG4gICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEkpLCBcImFzY2lpXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGI2NHN0ciA9IGJhc2U2NEFjY3VtICsgdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJKSwgXCJhc2NpaVwiKS5yZXBsYWNlKC8sL2csIFwiL1wiKTtcbiAgICAgICAgdmFyIGNhbkJlRGVjb2RlZCA9IGI2NHN0ci5sZW5ndGggLSBiNjRzdHIubGVuZ3RoICUgODtcbiAgICAgICAgYmFzZTY0QWNjdW0gPSBiNjRzdHIuc2xpY2UoY2FuQmVEZWNvZGVkKTtcbiAgICAgICAgYjY0c3RyID0gYjY0c3RyLnNsaWNlKDAsIGNhbkJlRGVjb2RlZCk7XG4gICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShCdWZmZXIyLmZyb20oYjY0c3RyLCBcImJhc2U2NFwiKSwgXCJ1dGYxNi1iZVwiKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5CYXNlNjQgPSBpbkJhc2U2NDtcbiAgICAgIHRoaXMuYmFzZTY0QWNjdW0gPSBiYXNlNjRBY2N1bTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgICBVdGY3SU1BUERlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHJlcyA9IFwiXCI7XG4gICAgICBpZiAodGhpcy5pbkJhc2U2NCAmJiB0aGlzLmJhc2U2NEFjY3VtLmxlbmd0aCA+IDApXG4gICAgICAgIHJlcyA9IHRoaXMuaWNvbnYuZGVjb2RlKEJ1ZmZlcjIuZnJvbSh0aGlzLmJhc2U2NEFjY3VtLCBcImJhc2U2NFwiKSwgXCJ1dGYxNi1iZVwiKTtcbiAgICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgIHRoaXMuYmFzZTY0QWNjdW0gPSBcIlwiO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9zYmNzLWNvZGVjLmpzXG52YXIgcmVxdWlyZV9zYmNzX2NvZGVjMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3Mvc2Jjcy1jb2RlYy5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVyKCkuQnVmZmVyO1xuICAgIGV4cG9ydHMyLl9zYmNzID0gU0JDU0NvZGVjO1xuICAgIGZ1bmN0aW9uIFNCQ1NDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgICBpZiAoIWNvZGVjT3B0aW9ucylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU0JDUyBjb2RlYyBpcyBjYWxsZWQgd2l0aG91dCB0aGUgZGF0YS5cIik7XG4gICAgICBpZiAoIWNvZGVjT3B0aW9ucy5jaGFycyB8fCBjb2RlY09wdGlvbnMuY2hhcnMubGVuZ3RoICE9PSAxMjggJiYgY29kZWNPcHRpb25zLmNoYXJzLmxlbmd0aCAhPT0gMjU2KVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmNvZGluZyAnXCIgKyBjb2RlY09wdGlvbnMudHlwZSArIFwiJyBoYXMgaW5jb3JyZWN0ICdjaGFycycgKG11c3QgYmUgb2YgbGVuIDEyOCBvciAyNTYpXCIpO1xuICAgICAgaWYgKGNvZGVjT3B0aW9ucy5jaGFycy5sZW5ndGggPT09IDEyOCkge1xuICAgICAgICB2YXIgYXNjaWlTdHJpbmcgPSBcIlwiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEyODsgaSsrKVxuICAgICAgICAgIGFzY2lpU3RyaW5nICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoaSk7XG4gICAgICAgIGNvZGVjT3B0aW9ucy5jaGFycyA9IGFzY2lpU3RyaW5nICsgY29kZWNPcHRpb25zLmNoYXJzO1xuICAgICAgfVxuICAgICAgdGhpcy5kZWNvZGVCdWYgPSBCdWZmZXIyLmZyb20oY29kZWNPcHRpb25zLmNoYXJzLCBcInVjczJcIik7XG4gICAgICB2YXIgZW5jb2RlQnVmID0gQnVmZmVyMi5hbGxvYyg2NTUzNiwgaWNvbnYuZGVmYXVsdENoYXJTaW5nbGVCeXRlLmNoYXJDb2RlQXQoMCkpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2RlY09wdGlvbnMuY2hhcnMubGVuZ3RoOyBpKyspXG4gICAgICAgIGVuY29kZUJ1Zltjb2RlY09wdGlvbnMuY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpO1xuICAgICAgdGhpcy5lbmNvZGVCdWYgPSBlbmNvZGVCdWY7XG4gICAgfVxuICAgIFNCQ1NDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IFNCQ1NFbmNvZGVyO1xuICAgIFNCQ1NDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFNCQ1NEZWNvZGVyO1xuICAgIGZ1bmN0aW9uIFNCQ1NFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmVuY29kZUJ1ZiA9IGNvZGVjLmVuY29kZUJ1ZjtcbiAgICB9XG4gICAgU0JDU0VuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICB2YXIgYnVmID0gQnVmZmVyMi5hbGxvYyhzdHIubGVuZ3RoKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKVxuICAgICAgICBidWZbaV0gPSB0aGlzLmVuY29kZUJ1ZltzdHIuY2hhckNvZGVBdChpKV07XG4gICAgICByZXR1cm4gYnVmO1xuICAgIH07XG4gICAgU0JDU0VuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIH07XG4gICAgZnVuY3Rpb24gU0JDU0RlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuZGVjb2RlQnVmID0gY29kZWMuZGVjb2RlQnVmO1xuICAgIH1cbiAgICBTQkNTRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIHZhciBkZWNvZGVCdWYgPSB0aGlzLmRlY29kZUJ1ZjtcbiAgICAgIHZhciBuZXdCdWYgPSBCdWZmZXIyLmFsbG9jKGJ1Zi5sZW5ndGggKiAyKTtcbiAgICAgIHZhciBpZHgxID0gMCwgaWR4MiA9IDA7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1Zi5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZHgxID0gYnVmW2ldICogMjtcbiAgICAgICAgaWR4MiA9IGkgKiAyO1xuICAgICAgICBuZXdCdWZbaWR4Ml0gPSBkZWNvZGVCdWZbaWR4MV07XG4gICAgICAgIG5ld0J1ZltpZHgyICsgMV0gPSBkZWNvZGVCdWZbaWR4MSArIDFdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ld0J1Zi50b1N0cmluZyhcInVjczJcIik7XG4gICAgfTtcbiAgICBTQkNTRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3Mvc2Jjcy1kYXRhLmpzXG52YXIgcmVxdWlyZV9zYmNzX2RhdGEyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9zYmNzLWRhdGEuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIC8vIE5vdCBzdXBwb3J0ZWQgYnkgaWNvbnYsIG5vdCBzdXJlIHdoeS5cbiAgICAgIFwiMTAwMjlcIjogXCJtYWNjZW50ZXVyb1wiLFxuICAgICAgXCJtYWNjZW50ZXVyb1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDNFxcdTAxMDBcXHUwMTAxXFx4QzlcXHUwMTA0XFx4RDZcXHhEQ1xceEUxXFx1MDEwNVxcdTAxMENcXHhFNFxcdTAxMERcXHUwMTA2XFx1MDEwN1xceEU5XFx1MDE3OVxcdTAxN0FcXHUwMTBFXFx4RURcXHUwMTBGXFx1MDExMlxcdTAxMTNcXHUwMTE2XFx4RjNcXHUwMTE3XFx4RjRcXHhGNlxceEY1XFx4RkFcXHUwMTFBXFx1MDExQlxceEZDXFx1MjAyMFxceEIwXFx1MDExOFxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHhERlxceEFFXFx4QTlcXHUyMTIyXFx1MDExOVxceEE4XFx1MjI2MFxcdTAxMjNcXHUwMTJFXFx1MDEyRlxcdTAxMkFcXHUyMjY0XFx1MjI2NVxcdTAxMkJcXHUwMTM2XFx1MjIwMlxcdTIyMTFcXHUwMTQyXFx1MDEzQlxcdTAxM0NcXHUwMTNEXFx1MDEzRVxcdTAxMzlcXHUwMTNBXFx1MDE0NVxcdTAxNDZcXHUwMTQzXFx4QUNcXHUyMjFBXFx1MDE0NFxcdTAxNDdcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxcdTAxNDhcXHUwMTUwXFx4RDVcXHUwMTUxXFx1MDE0Q1xcdTIwMTNcXHUyMDE0XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MjVDQVxcdTAxNERcXHUwMTU0XFx1MDE1NVxcdTAxNThcXHUyMDM5XFx1MjAzQVxcdTAxNTlcXHUwMTU2XFx1MDE1N1xcdTAxNjBcXHUyMDFBXFx1MjAxRVxcdTAxNjFcXHUwMTVBXFx1MDE1QlxceEMxXFx1MDE2NFxcdTAxNjVcXHhDRFxcdTAxN0RcXHUwMTdFXFx1MDE2QVxceEQzXFx4RDRcXHUwMTZCXFx1MDE2RVxceERBXFx1MDE2RlxcdTAxNzBcXHUwMTcxXFx1MDE3MlxcdTAxNzNcXHhERFxceEZEXFx1MDEzN1xcdTAxN0JcXHUwMTQxXFx1MDE3Q1xcdTAxMjJcXHUwMkM3XCJcbiAgICAgIH0sXG4gICAgICBcIjgwOFwiOiBcImNwODA4XCIsXG4gICAgICBcImlibTgwOFwiOiBcImNwODA4XCIsXG4gICAgICBcImNwODA4XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcXHUwNDAxXFx1MDQ1MVxcdTA0MDRcXHUwNDU0XFx1MDQwN1xcdTA0NTdcXHUwNDBFXFx1MDQ1RVxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIxMTZcXHUyMEFDXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcIm1pa1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU2M1xcdTI1NTFcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjUxMFxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjExNlxceEE3XFx1MjU1N1xcdTI1NURcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDNCMVxceERGXFx1MDM5M1xcdTAzQzBcXHUwM0EzXFx1MDNDM1xceEI1XFx1MDNDNFxcdTAzQTZcXHUwMzk4XFx1MDNBOVxcdTAzQjRcXHUyMjFFXFx1MDNDNlxcdTAzQjVcXHUyMjI5XFx1MjI2MVxceEIxXFx1MjI2NVxcdTIyNjRcXHUyMzIwXFx1MjMyMVxceEY3XFx1MjI0OFxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIwN0ZcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJjcDcyMFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4RTlcXHhFMlxceDg0XFx4RTBcXHg4NlxceEU3XFx4RUFcXHhFQlxceEU4XFx4RUZcXHhFRVxceDhEXFx4OEVcXHg4RlxceDkwXFx1MDY1MVxcdTA2NTJcXHhGNFxceEE0XFx1MDY0MFxceEZCXFx4RjlcXHUwNjIxXFx1MDYyMlxcdTA2MjNcXHUwNjI0XFx4QTNcXHUwNjI1XFx1MDYyNlxcdTA2MjdcXHUwNjI4XFx1MDYyOVxcdTA2MkFcXHUwNjJCXFx1MDYyQ1xcdTA2MkRcXHUwNjJFXFx1MDYyRlxcdTA2MzBcXHUwNjMxXFx1MDYzMlxcdTA2MzNcXHUwNjM0XFx1MDYzNVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwNjM2XFx1MDYzN1xcdTA2MzhcXHUwNjM5XFx1MDYzQVxcdTA2NDFcXHhCNVxcdTA2NDJcXHUwNjQzXFx1MDY0NFxcdTA2NDVcXHUwNjQ2XFx1MDY0N1xcdTA2NDhcXHUwNjQ5XFx1MDY0QVxcdTIyNjFcXHUwNjRCXFx1MDY0Q1xcdTA2NERcXHUwNjRFXFx1MDY0RlxcdTA2NTBcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICAvLyBBbGlhc2VzIG9mIGdlbmVyYXRlZCBlbmNvZGluZ3MuXG4gICAgICBcImFzY2lpOGJpdFwiOiBcImFzY2lpXCIsXG4gICAgICBcInVzYXNjaWlcIjogXCJhc2NpaVwiLFxuICAgICAgXCJhbnNpeDM0XCI6IFwiYXNjaWlcIixcbiAgICAgIFwiYW5zaXgzNDE5NjhcIjogXCJhc2NpaVwiLFxuICAgICAgXCJhbnNpeDM0MTk4NlwiOiBcImFzY2lpXCIsXG4gICAgICBcImNzYXNjaWlcIjogXCJhc2NpaVwiLFxuICAgICAgXCJjcDM2N1wiOiBcImFzY2lpXCIsXG4gICAgICBcImlibTM2N1wiOiBcImFzY2lpXCIsXG4gICAgICBcImlzb2lyNlwiOiBcImFzY2lpXCIsXG4gICAgICBcImlzbzY0NnVzXCI6IFwiYXNjaWlcIixcbiAgICAgIFwiaXNvNjQ2aXJ2XCI6IFwiYXNjaWlcIixcbiAgICAgIFwidXNcIjogXCJhc2NpaVwiLFxuICAgICAgXCJsYXRpbjFcIjogXCJpc284ODU5MVwiLFxuICAgICAgXCJsYXRpbjJcIjogXCJpc284ODU5MlwiLFxuICAgICAgXCJsYXRpbjNcIjogXCJpc284ODU5M1wiLFxuICAgICAgXCJsYXRpbjRcIjogXCJpc284ODU5NFwiLFxuICAgICAgXCJsYXRpbjVcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCJsYXRpbjZcIjogXCJpc284ODU5MTBcIixcbiAgICAgIFwibGF0aW43XCI6IFwiaXNvODg1OTEzXCIsXG4gICAgICBcImxhdGluOFwiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJsYXRpbjlcIjogXCJpc284ODU5MTVcIixcbiAgICAgIFwibGF0aW4xMFwiOiBcImlzbzg4NTkxNlwiLFxuICAgICAgXCJjc2lzb2xhdGluMVwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImNzaXNvbGF0aW4yXCI6IFwiaXNvODg1OTJcIixcbiAgICAgIFwiY3Npc29sYXRpbjNcIjogXCJpc284ODU5M1wiLFxuICAgICAgXCJjc2lzb2xhdGluNFwiOiBcImlzbzg4NTk0XCIsXG4gICAgICBcImNzaXNvbGF0aW5jeXJpbGxpY1wiOiBcImlzbzg4NTk1XCIsXG4gICAgICBcImNzaXNvbGF0aW5hcmFiaWNcIjogXCJpc284ODU5NlwiLFxuICAgICAgXCJjc2lzb2xhdGluZ3JlZWtcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCJjc2lzb2xhdGluaGVicmV3XCI6IFwiaXNvODg1OThcIixcbiAgICAgIFwiY3Npc29sYXRpbjVcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCJjc2lzb2xhdGluNlwiOiBcImlzbzg4NTkxMFwiLFxuICAgICAgXCJsMVwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImwyXCI6IFwiaXNvODg1OTJcIixcbiAgICAgIFwibDNcIjogXCJpc284ODU5M1wiLFxuICAgICAgXCJsNFwiOiBcImlzbzg4NTk0XCIsXG4gICAgICBcImw1XCI6IFwiaXNvODg1OTlcIixcbiAgICAgIFwibDZcIjogXCJpc284ODU5MTBcIixcbiAgICAgIFwibDdcIjogXCJpc284ODU5MTNcIixcbiAgICAgIFwibDhcIjogXCJpc284ODU5MTRcIixcbiAgICAgIFwibDlcIjogXCJpc284ODU5MTVcIixcbiAgICAgIFwibDEwXCI6IFwiaXNvODg1OTE2XCIsXG4gICAgICBcImlzb2lyMTRcIjogXCJpc282NDZqcFwiLFxuICAgICAgXCJpc29pcjU3XCI6IFwiaXNvNjQ2Y25cIixcbiAgICAgIFwiaXNvaXIxMDBcIjogXCJpc284ODU5MVwiLFxuICAgICAgXCJpc29pcjEwMVwiOiBcImlzbzg4NTkyXCIsXG4gICAgICBcImlzb2lyMTA5XCI6IFwiaXNvODg1OTNcIixcbiAgICAgIFwiaXNvaXIxMTBcIjogXCJpc284ODU5NFwiLFxuICAgICAgXCJpc29pcjE0NFwiOiBcImlzbzg4NTk1XCIsXG4gICAgICBcImlzb2lyMTI3XCI6IFwiaXNvODg1OTZcIixcbiAgICAgIFwiaXNvaXIxMjZcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCJpc29pcjEzOFwiOiBcImlzbzg4NTk4XCIsXG4gICAgICBcImlzb2lyMTQ4XCI6IFwiaXNvODg1OTlcIixcbiAgICAgIFwiaXNvaXIxNTdcIjogXCJpc284ODU5MTBcIixcbiAgICAgIFwiaXNvaXIxNjZcIjogXCJ0aXM2MjBcIixcbiAgICAgIFwiaXNvaXIxNzlcIjogXCJpc284ODU5MTNcIixcbiAgICAgIFwiaXNvaXIxOTlcIjogXCJpc284ODU5MTRcIixcbiAgICAgIFwiaXNvaXIyMDNcIjogXCJpc284ODU5MTVcIixcbiAgICAgIFwiaXNvaXIyMjZcIjogXCJpc284ODU5MTZcIixcbiAgICAgIFwiY3A4MTlcIjogXCJpc284ODU5MVwiLFxuICAgICAgXCJpYm04MTlcIjogXCJpc284ODU5MVwiLFxuICAgICAgXCJjeXJpbGxpY1wiOiBcImlzbzg4NTk1XCIsXG4gICAgICBcImFyYWJpY1wiOiBcImlzbzg4NTk2XCIsXG4gICAgICBcImFyYWJpYzhcIjogXCJpc284ODU5NlwiLFxuICAgICAgXCJlY21hMTE0XCI6IFwiaXNvODg1OTZcIixcbiAgICAgIFwiYXNtbzcwOFwiOiBcImlzbzg4NTk2XCIsXG4gICAgICBcImdyZWVrXCI6IFwiaXNvODg1OTdcIixcbiAgICAgIFwiZ3JlZWs4XCI6IFwiaXNvODg1OTdcIixcbiAgICAgIFwiZWNtYTExOFwiOiBcImlzbzg4NTk3XCIsXG4gICAgICBcImVsb3Q5MjhcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCJoZWJyZXdcIjogXCJpc284ODU5OFwiLFxuICAgICAgXCJoZWJyZXc4XCI6IFwiaXNvODg1OThcIixcbiAgICAgIFwidHVya2lzaFwiOiBcImlzbzg4NTk5XCIsXG4gICAgICBcInR1cmtpc2g4XCI6IFwiaXNvODg1OTlcIixcbiAgICAgIFwidGhhaVwiOiBcImlzbzg4NTkxMVwiLFxuICAgICAgXCJ0aGFpOFwiOiBcImlzbzg4NTkxMVwiLFxuICAgICAgXCJjZWx0aWNcIjogXCJpc284ODU5MTRcIixcbiAgICAgIFwiY2VsdGljOFwiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJpc29jZWx0aWNcIjogXCJpc284ODU5MTRcIixcbiAgICAgIFwidGlzNjIwMFwiOiBcInRpczYyMFwiLFxuICAgICAgXCJ0aXM2MjAyNTI5MVwiOiBcInRpczYyMFwiLFxuICAgICAgXCJ0aXM2MjAyNTMzMFwiOiBcInRpczYyMFwiLFxuICAgICAgXCIxMDAwMFwiOiBcIm1hY3JvbWFuXCIsXG4gICAgICBcIjEwMDA2XCI6IFwibWFjZ3JlZWtcIixcbiAgICAgIFwiMTAwMDdcIjogXCJtYWNjeXJpbGxpY1wiLFxuICAgICAgXCIxMDA3OVwiOiBcIm1hY2ljZWxhbmRcIixcbiAgICAgIFwiMTAwODFcIjogXCJtYWN0dXJraXNoXCIsXG4gICAgICBcImNzcGM4Y29kZXBhZ2U0MzdcIjogXCJjcDQzN1wiLFxuICAgICAgXCJjc3BjNzc1YmFsdGljXCI6IFwiY3A3NzVcIixcbiAgICAgIFwiY3NwYzg1MG11bHRpbGluZ3VhbFwiOiBcImNwODUwXCIsXG4gICAgICBcImNzcGNwODUyXCI6IFwiY3A4NTJcIixcbiAgICAgIFwiY3NwYzg2MmxhdGluaGVicmV3XCI6IFwiY3A4NjJcIixcbiAgICAgIFwiY3BnclwiOiBcImNwODY5XCIsXG4gICAgICBcIm1zZWVcIjogXCJjcDEyNTBcIixcbiAgICAgIFwibXNjeXJsXCI6IFwiY3AxMjUxXCIsXG4gICAgICBcIm1zYW5zaVwiOiBcImNwMTI1MlwiLFxuICAgICAgXCJtc2dyZWVrXCI6IFwiY3AxMjUzXCIsXG4gICAgICBcIm1zdHVya1wiOiBcImNwMTI1NFwiLFxuICAgICAgXCJtc2hlYnJcIjogXCJjcDEyNTVcIixcbiAgICAgIFwibXNhcmFiXCI6IFwiY3AxMjU2XCIsXG4gICAgICBcIndpbmJhbHRyaW1cIjogXCJjcDEyNTdcIixcbiAgICAgIFwiY3AyMDg2NlwiOiBcImtvaThyXCIsXG4gICAgICBcIjIwODY2XCI6IFwia29pOHJcIixcbiAgICAgIFwiaWJtODc4XCI6IFwia29pOHJcIixcbiAgICAgIFwiY3Nrb2k4clwiOiBcImtvaThyXCIsXG4gICAgICBcImNwMjE4NjZcIjogXCJrb2k4dVwiLFxuICAgICAgXCIyMTg2NlwiOiBcImtvaTh1XCIsXG4gICAgICBcImlibTExNjhcIjogXCJrb2k4dVwiLFxuICAgICAgXCJzdHJrMTA0ODIwMDJcIjogXCJyazEwNDhcIixcbiAgICAgIFwidGN2bjU3MTJcIjogXCJ0Y3ZuXCIsXG4gICAgICBcInRjdm41NzEyMVwiOiBcInRjdm5cIixcbiAgICAgIFwiZ2IxOTg4ODBcIjogXCJpc282NDZjblwiLFxuICAgICAgXCJjblwiOiBcImlzbzY0NmNuXCIsXG4gICAgICBcImNzaXNvMTRqaXNjNjIyMHJvXCI6IFwiaXNvNjQ2anBcIixcbiAgICAgIFwiamlzYzYyMjAxOTY5cm9cIjogXCJpc282NDZqcFwiLFxuICAgICAgXCJqcFwiOiBcImlzbzY0NmpwXCIsXG4gICAgICBcImNzaHByb21hbjhcIjogXCJocHJvbWFuOFwiLFxuICAgICAgXCJyOFwiOiBcImhwcm9tYW44XCIsXG4gICAgICBcInJvbWFuOFwiOiBcImhwcm9tYW44XCIsXG4gICAgICBcInhyb21hbjhcIjogXCJocHJvbWFuOFwiLFxuICAgICAgXCJpYm0xMDUxXCI6IFwiaHByb21hbjhcIixcbiAgICAgIFwibWFjXCI6IFwibWFjaW50b3NoXCIsXG4gICAgICBcImNzbWFjaW50b3NoXCI6IFwibWFjaW50b3NoXCJcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9zYmNzLWRhdGEtZ2VuZXJhdGVkLmpzXG52YXIgcmVxdWlyZV9zYmNzX2RhdGFfZ2VuZXJhdGVkMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3Mvc2Jjcy1kYXRhLWdlbmVyYXRlZC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgXCI0MzdcIjogXCJjcDQzN1wiLFxuICAgICAgXCI3MzdcIjogXCJjcDczN1wiLFxuICAgICAgXCI3NzVcIjogXCJjcDc3NVwiLFxuICAgICAgXCI4NTBcIjogXCJjcDg1MFwiLFxuICAgICAgXCI4NTJcIjogXCJjcDg1MlwiLFxuICAgICAgXCI4NTVcIjogXCJjcDg1NVwiLFxuICAgICAgXCI4NTZcIjogXCJjcDg1NlwiLFxuICAgICAgXCI4NTdcIjogXCJjcDg1N1wiLFxuICAgICAgXCI4NThcIjogXCJjcDg1OFwiLFxuICAgICAgXCI4NjBcIjogXCJjcDg2MFwiLFxuICAgICAgXCI4NjFcIjogXCJjcDg2MVwiLFxuICAgICAgXCI4NjJcIjogXCJjcDg2MlwiLFxuICAgICAgXCI4NjNcIjogXCJjcDg2M1wiLFxuICAgICAgXCI4NjRcIjogXCJjcDg2NFwiLFxuICAgICAgXCI4NjVcIjogXCJjcDg2NVwiLFxuICAgICAgXCI4NjZcIjogXCJjcDg2NlwiLFxuICAgICAgXCI4NjlcIjogXCJjcDg2OVwiLFxuICAgICAgXCI4NzRcIjogXCJ3aW5kb3dzODc0XCIsXG4gICAgICBcIjkyMlwiOiBcImNwOTIyXCIsXG4gICAgICBcIjEwNDZcIjogXCJjcDEwNDZcIixcbiAgICAgIFwiMTEyNFwiOiBcImNwMTEyNFwiLFxuICAgICAgXCIxMTI1XCI6IFwiY3AxMTI1XCIsXG4gICAgICBcIjExMjlcIjogXCJjcDExMjlcIixcbiAgICAgIFwiMTEzM1wiOiBcImNwMTEzM1wiLFxuICAgICAgXCIxMTYxXCI6IFwiY3AxMTYxXCIsXG4gICAgICBcIjExNjJcIjogXCJjcDExNjJcIixcbiAgICAgIFwiMTE2M1wiOiBcImNwMTE2M1wiLFxuICAgICAgXCIxMjUwXCI6IFwid2luZG93czEyNTBcIixcbiAgICAgIFwiMTI1MVwiOiBcIndpbmRvd3MxMjUxXCIsXG4gICAgICBcIjEyNTJcIjogXCJ3aW5kb3dzMTI1MlwiLFxuICAgICAgXCIxMjUzXCI6IFwid2luZG93czEyNTNcIixcbiAgICAgIFwiMTI1NFwiOiBcIndpbmRvd3MxMjU0XCIsXG4gICAgICBcIjEyNTVcIjogXCJ3aW5kb3dzMTI1NVwiLFxuICAgICAgXCIxMjU2XCI6IFwid2luZG93czEyNTZcIixcbiAgICAgIFwiMTI1N1wiOiBcIndpbmRvd3MxMjU3XCIsXG4gICAgICBcIjEyNThcIjogXCJ3aW5kb3dzMTI1OFwiLFxuICAgICAgXCIyODU5MVwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcIjI4NTkyXCI6IFwiaXNvODg1OTJcIixcbiAgICAgIFwiMjg1OTNcIjogXCJpc284ODU5M1wiLFxuICAgICAgXCIyODU5NFwiOiBcImlzbzg4NTk0XCIsXG4gICAgICBcIjI4NTk1XCI6IFwiaXNvODg1OTVcIixcbiAgICAgIFwiMjg1OTZcIjogXCJpc284ODU5NlwiLFxuICAgICAgXCIyODU5N1wiOiBcImlzbzg4NTk3XCIsXG4gICAgICBcIjI4NTk4XCI6IFwiaXNvODg1OThcIixcbiAgICAgIFwiMjg1OTlcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCIyODYwMFwiOiBcImlzbzg4NTkxMFwiLFxuICAgICAgXCIyODYwMVwiOiBcImlzbzg4NTkxMVwiLFxuICAgICAgXCIyODYwM1wiOiBcImlzbzg4NTkxM1wiLFxuICAgICAgXCIyODYwNFwiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCIyODYwNVwiOiBcImlzbzg4NTkxNVwiLFxuICAgICAgXCIyODYwNlwiOiBcImlzbzg4NTkxNlwiLFxuICAgICAgXCJ3aW5kb3dzODc0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MjAyNlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QTBcXHUwRTAxXFx1MEUwMlxcdTBFMDNcXHUwRTA0XFx1MEUwNVxcdTBFMDZcXHUwRTA3XFx1MEUwOFxcdTBFMDlcXHUwRTBBXFx1MEUwQlxcdTBFMENcXHUwRTBEXFx1MEUwRVxcdTBFMEZcXHUwRTEwXFx1MEUxMVxcdTBFMTJcXHUwRTEzXFx1MEUxNFxcdTBFMTVcXHUwRTE2XFx1MEUxN1xcdTBFMThcXHUwRTE5XFx1MEUxQVxcdTBFMUJcXHUwRTFDXFx1MEUxRFxcdTBFMUVcXHUwRTFGXFx1MEUyMFxcdTBFMjFcXHUwRTIyXFx1MEUyM1xcdTBFMjRcXHUwRTI1XFx1MEUyNlxcdTBFMjdcXHUwRTI4XFx1MEUyOVxcdTBFMkFcXHUwRTJCXFx1MEUyQ1xcdTBFMkRcXHUwRTJFXFx1MEUyRlxcdTBFMzBcXHUwRTMxXFx1MEUzMlxcdTBFMzNcXHUwRTM0XFx1MEUzNVxcdTBFMzZcXHUwRTM3XFx1MEUzOFxcdTBFMzlcXHUwRTNBXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTBFM0ZcXHUwRTQwXFx1MEU0MVxcdTBFNDJcXHUwRTQzXFx1MEU0NFxcdTBFNDVcXHUwRTQ2XFx1MEU0N1xcdTBFNDhcXHUwRTQ5XFx1MEU0QVxcdTBFNEJcXHUwRTRDXFx1MEU0RFxcdTBFNEVcXHUwRTRGXFx1MEU1MFxcdTBFNTFcXHUwRTUyXFx1MEU1M1xcdTBFNTRcXHUwRTU1XFx1MEU1NlxcdTBFNTdcXHUwRTU4XFx1MEU1OVxcdTBFNUFcXHUwRTVCXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJ3aW44NzRcIjogXCJ3aW5kb3dzODc0XCIsXG4gICAgICBcImNwODc0XCI6IFwid2luZG93czg3NFwiLFxuICAgICAgXCJ3aW5kb3dzMTI1MFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyMEFDXFx1RkZGRFxcdTIwMUFcXHVGRkZEXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdUZGRkRcXHUyMDMwXFx1MDE2MFxcdTIwMzlcXHUwMTVBXFx1MDE2NFxcdTAxN0RcXHUwMTc5XFx1RkZGRFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHVGRkZEXFx1MjEyMlxcdTAxNjFcXHUyMDNBXFx1MDE1QlxcdTAxNjVcXHUwMTdFXFx1MDE3QVxceEEwXFx1MDJDN1xcdTAyRDhcXHUwMTQxXFx4QTRcXHUwMTA0XFx4QTZcXHhBN1xceEE4XFx4QTlcXHUwMTVFXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHUwMTdCXFx4QjBcXHhCMVxcdTAyREJcXHUwMTQyXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxcdTAxMDVcXHUwMTVGXFx4QkJcXHUwMTNEXFx1MDJERFxcdTAxM0VcXHUwMTdDXFx1MDE1NFxceEMxXFx4QzJcXHUwMTAyXFx4QzRcXHUwMTM5XFx1MDEwNlxceEM3XFx1MDEwQ1xceEM5XFx1MDExOFxceENCXFx1MDExQVxceENEXFx4Q0VcXHUwMTBFXFx1MDExMFxcdTAxNDNcXHUwMTQ3XFx4RDNcXHhENFxcdTAxNTBcXHhENlxceEQ3XFx1MDE1OFxcdTAxNkVcXHhEQVxcdTAxNzBcXHhEQ1xceEREXFx1MDE2MlxceERGXFx1MDE1NVxceEUxXFx4RTJcXHUwMTAzXFx4RTRcXHUwMTNBXFx1MDEwN1xceEU3XFx1MDEwRFxceEU5XFx1MDExOVxceEVCXFx1MDExQlxceEVEXFx4RUVcXHUwMTBGXFx1MDExMVxcdTAxNDRcXHUwMTQ4XFx4RjNcXHhGNFxcdTAxNTFcXHhGNlxceEY3XFx1MDE1OVxcdTAxNkZcXHhGQVxcdTAxNzFcXHhGQ1xceEZEXFx1MDE2M1xcdTAyRDlcIlxuICAgICAgfSxcbiAgICAgIFwid2luMTI1MFwiOiBcIndpbmRvd3MxMjUwXCIsXG4gICAgICBcImNwMTI1MFwiOiBcIndpbmRvd3MxMjUwXCIsXG4gICAgICBcIndpbmRvd3MxMjUxXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MDJcXHUwNDAzXFx1MjAxQVxcdTA0NTNcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MjBBQ1xcdTIwMzBcXHUwNDA5XFx1MjAzOVxcdTA0MEFcXHUwNDBDXFx1MDQwQlxcdTA0MEZcXHUwNDUyXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdUZGRkRcXHUyMTIyXFx1MDQ1OVxcdTIwM0FcXHUwNDVBXFx1MDQ1Q1xcdTA0NUJcXHUwNDVGXFx4QTBcXHUwNDBFXFx1MDQ1RVxcdTA0MDhcXHhBNFxcdTA0OTBcXHhBNlxceEE3XFx1MDQwMVxceEE5XFx1MDQwNFxceEFCXFx4QUNcXHhBRFxceEFFXFx1MDQwN1xceEIwXFx4QjFcXHUwNDA2XFx1MDQ1NlxcdTA0OTFcXHhCNVxceEI2XFx4QjdcXHUwNDUxXFx1MjExNlxcdTA0NTRcXHhCQlxcdTA0NThcXHUwNDA1XFx1MDQ1NVxcdTA0NTdcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXCJcbiAgICAgIH0sXG4gICAgICBcIndpbjEyNTFcIjogXCJ3aW5kb3dzMTI1MVwiLFxuICAgICAgXCJjcDEyNTFcIjogXCJ3aW5kb3dzMTI1MVwiLFxuICAgICAgXCJ3aW5kb3dzMTI1MlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyMEFDXFx1RkZGRFxcdTIwMUFcXHUwMTkyXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdTAyQzZcXHUyMDMwXFx1MDE2MFxcdTIwMzlcXHUwMTUyXFx1RkZGRFxcdTAxN0RcXHVGRkZEXFx1RkZGRFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHUwMkRDXFx1MjEyMlxcdTAxNjFcXHUyMDNBXFx1MDE1M1xcdUZGRkRcXHUwMTdFXFx1MDE3OFxceEEwXFx4QTFcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx4QjlcXHhCQVxceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHhDMFxceEMxXFx4QzJcXHhDM1xceEM0XFx4QzVcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHhDQ1xceENEXFx4Q0VcXHhDRlxceEQwXFx4RDFcXHhEMlxceEQzXFx4RDRcXHhENVxceEQ2XFx4RDdcXHhEOFxceEQ5XFx4REFcXHhEQlxceERDXFx4RERcXHhERVxceERGXFx4RTBcXHhFMVxceEUyXFx4RTNcXHhFNFxceEU1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHhGMFxceEYxXFx4RjJcXHhGM1xceEY0XFx4RjVcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xceEZEXFx4RkVcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjUyXCI6IFwid2luZG93czEyNTJcIixcbiAgICAgIFwiY3AxMjUyXCI6IFwid2luZG93czEyNTJcIixcbiAgICAgIFwid2luZG93czEyNTNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdUZGRkRcXHUyMDFBXFx1MDE5MlxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHVGRkZEXFx1MjAzMFxcdUZGRkRcXHUyMDM5XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1RkZGRFxcdTIxMjJcXHVGRkZEXFx1MjAzQVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBMFxcdTAzODVcXHUwMzg2XFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHVGRkZEXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHUyMDE1XFx4QjBcXHhCMVxceEIyXFx4QjNcXHUwMzg0XFx4QjVcXHhCNlxceEI3XFx1MDM4OFxcdTAzODlcXHUwMzhBXFx4QkJcXHUwMzhDXFx4QkRcXHUwMzhFXFx1MDM4RlxcdTAzOTBcXHUwMzkxXFx1MDM5MlxcdTAzOTNcXHUwMzk0XFx1MDM5NVxcdTAzOTZcXHUwMzk3XFx1MDM5OFxcdTAzOTlcXHUwMzlBXFx1MDM5QlxcdTAzOUNcXHUwMzlEXFx1MDM5RVxcdTAzOUZcXHUwM0EwXFx1MDNBMVxcdUZGRkRcXHUwM0EzXFx1MDNBNFxcdTAzQTVcXHUwM0E2XFx1MDNBN1xcdTAzQThcXHUwM0E5XFx1MDNBQVxcdTAzQUJcXHUwM0FDXFx1MDNBRFxcdTAzQUVcXHUwM0FGXFx1MDNCMFxcdTAzQjFcXHUwM0IyXFx1MDNCM1xcdTAzQjRcXHUwM0I1XFx1MDNCNlxcdTAzQjdcXHUwM0I4XFx1MDNCOVxcdTAzQkFcXHUwM0JCXFx1MDNCQ1xcdTAzQkRcXHUwM0JFXFx1MDNCRlxcdTAzQzBcXHUwM0MxXFx1MDNDMlxcdTAzQzNcXHUwM0M0XFx1MDNDNVxcdTAzQzZcXHUwM0M3XFx1MDNDOFxcdTAzQzlcXHUwM0NBXFx1MDNDQlxcdTAzQ0NcXHUwM0NEXFx1MDNDRVxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwid2luMTI1M1wiOiBcIndpbmRvd3MxMjUzXCIsXG4gICAgICBcImNwMTI1M1wiOiBcIndpbmRvd3MxMjUzXCIsXG4gICAgICBcIndpbmRvd3MxMjU0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHVGRkZEXFx1MjAxQVxcdTAxOTJcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MDJDNlxcdTIwMzBcXHUwMTYwXFx1MjAzOVxcdTAxNTJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdTAyRENcXHUyMTIyXFx1MDE2MVxcdTIwM0FcXHUwMTUzXFx1RkZGRFxcdUZGRkRcXHUwMTc4XFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx1MDExRVxceEQxXFx4RDJcXHhEM1xceEQ0XFx4RDVcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xcdTAxMzBcXHUwMTVFXFx4REZcXHhFMFxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxcdTAxMUZcXHhGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHUwMTMxXFx1MDE1RlxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcIndpbjEyNTRcIjogXCJ3aW5kb3dzMTI1NFwiLFxuICAgICAgXCJjcDEyNTRcIjogXCJ3aW5kb3dzMTI1NFwiLFxuICAgICAgXCJ3aW5kb3dzMTI1NVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyMEFDXFx1RkZGRFxcdTIwMUFcXHUwMTkyXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdTAyQzZcXHUyMDMwXFx1RkZGRFxcdTIwMzlcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHUwMkRDXFx1MjEyMlxcdUZGRkRcXHUyMDNBXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxceEEwXFx4QTFcXHhBMlxceEEzXFx1MjBBQVxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhEN1xceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEY3XFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxcdTA1QjBcXHUwNUIxXFx1MDVCMlxcdTA1QjNcXHUwNUI0XFx1MDVCNVxcdTA1QjZcXHUwNUI3XFx1MDVCOFxcdTA1QjlcXHUwNUJBXFx1MDVCQlxcdTA1QkNcXHUwNUJEXFx1MDVCRVxcdTA1QkZcXHUwNUMwXFx1MDVDMVxcdTA1QzJcXHUwNUMzXFx1MDVGMFxcdTA1RjFcXHUwNUYyXFx1MDVGM1xcdTA1RjRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MDVEMFxcdTA1RDFcXHUwNUQyXFx1MDVEM1xcdTA1RDRcXHUwNUQ1XFx1MDVENlxcdTA1RDdcXHUwNUQ4XFx1MDVEOVxcdTA1REFcXHUwNURCXFx1MDVEQ1xcdTA1RERcXHUwNURFXFx1MDVERlxcdTA1RTBcXHUwNUUxXFx1MDVFMlxcdTA1RTNcXHUwNUU0XFx1MDVFNVxcdTA1RTZcXHUwNUU3XFx1MDVFOFxcdTA1RTlcXHUwNUVBXFx1RkZGRFxcdUZGRkRcXHUyMDBFXFx1MjAwRlxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwid2luMTI1NVwiOiBcIndpbmRvd3MxMjU1XCIsXG4gICAgICBcImNwMTI1NVwiOiBcIndpbmRvd3MxMjU1XCIsXG4gICAgICBcIndpbmRvd3MxMjU2XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHUwNjdFXFx1MjAxQVxcdTAxOTJcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MDJDNlxcdTIwMzBcXHUwNjc5XFx1MjAzOVxcdTAxNTJcXHUwNjg2XFx1MDY5OFxcdTA2ODhcXHUwNkFGXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdTA2QTlcXHUyMTIyXFx1MDY5MVxcdTIwM0FcXHUwMTUzXFx1MjAwQ1xcdTIwMERcXHUwNkJBXFx4QTBcXHUwNjBDXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxcdTA2QkVcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx4QjlcXHUwNjFCXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHUwNjFGXFx1MDZDMVxcdTA2MjFcXHUwNjIyXFx1MDYyM1xcdTA2MjRcXHUwNjI1XFx1MDYyNlxcdTA2MjdcXHUwNjI4XFx1MDYyOVxcdTA2MkFcXHUwNjJCXFx1MDYyQ1xcdTA2MkRcXHUwNjJFXFx1MDYyRlxcdTA2MzBcXHUwNjMxXFx1MDYzMlxcdTA2MzNcXHUwNjM0XFx1MDYzNVxcdTA2MzZcXHhEN1xcdTA2MzdcXHUwNjM4XFx1MDYzOVxcdTA2M0FcXHUwNjQwXFx1MDY0MVxcdTA2NDJcXHUwNjQzXFx4RTBcXHUwNjQ0XFx4RTJcXHUwNjQ1XFx1MDY0NlxcdTA2NDdcXHUwNjQ4XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxcdTA2NDlcXHUwNjRBXFx4RUVcXHhFRlxcdTA2NEJcXHUwNjRDXFx1MDY0RFxcdTA2NEVcXHhGNFxcdTA2NEZcXHUwNjUwXFx4RjdcXHUwNjUxXFx4RjlcXHUwNjUyXFx4RkJcXHhGQ1xcdTIwMEVcXHUyMDBGXFx1MDZEMlwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjU2XCI6IFwid2luZG93czEyNTZcIixcbiAgICAgIFwiY3AxMjU2XCI6IFwid2luZG93czEyNTZcIixcbiAgICAgIFwid2luZG93czEyNTdcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdUZGRkRcXHUyMDFBXFx1RkZGRFxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHVGRkZEXFx1MjAzMFxcdUZGRkRcXHUyMDM5XFx1RkZGRFxceEE4XFx1MDJDN1xceEI4XFx1RkZGRFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHVGRkZEXFx1MjEyMlxcdUZGRkRcXHUyMDNBXFx1RkZGRFxceEFGXFx1MDJEQlxcdUZGRkRcXHhBMFxcdUZGRkRcXHhBMlxceEEzXFx4QTRcXHVGRkZEXFx4QTZcXHhBN1xceEQ4XFx4QTlcXHUwMTU2XFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhDNlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhGOFxceEI5XFx1MDE1N1xceEJCXFx4QkNcXHhCRFxceEJFXFx4RTZcXHUwMTA0XFx1MDEyRVxcdTAxMDBcXHUwMTA2XFx4QzRcXHhDNVxcdTAxMThcXHUwMTEyXFx1MDEwQ1xceEM5XFx1MDE3OVxcdTAxMTZcXHUwMTIyXFx1MDEzNlxcdTAxMkFcXHUwMTNCXFx1MDE2MFxcdTAxNDNcXHUwMTQ1XFx4RDNcXHUwMTRDXFx4RDVcXHhENlxceEQ3XFx1MDE3MlxcdTAxNDFcXHUwMTVBXFx1MDE2QVxceERDXFx1MDE3QlxcdTAxN0RcXHhERlxcdTAxMDVcXHUwMTJGXFx1MDEwMVxcdTAxMDdcXHhFNFxceEU1XFx1MDExOVxcdTAxMTNcXHUwMTBEXFx4RTlcXHUwMTdBXFx1MDExN1xcdTAxMjNcXHUwMTM3XFx1MDEyQlxcdTAxM0NcXHUwMTYxXFx1MDE0NFxcdTAxNDZcXHhGM1xcdTAxNERcXHhGNVxceEY2XFx4RjdcXHUwMTczXFx1MDE0MlxcdTAxNUJcXHUwMTZCXFx4RkNcXHUwMTdDXFx1MDE3RVxcdTAyRDlcIlxuICAgICAgfSxcbiAgICAgIFwid2luMTI1N1wiOiBcIndpbmRvd3MxMjU3XCIsXG4gICAgICBcImNwMTI1N1wiOiBcIndpbmRvd3MxMjU3XCIsXG4gICAgICBcIndpbmRvd3MxMjU4XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHVGRkZEXFx1MjAxQVxcdTAxOTJcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MDJDNlxcdTIwMzBcXHVGRkZEXFx1MjAzOVxcdTAxNTJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdTAyRENcXHUyMTIyXFx1RkZGRFxcdTIwM0FcXHUwMTUzXFx1RkZGRFxcdUZGRkRcXHUwMTc4XFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxcdTAxMDJcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx1MDMwMFxceENEXFx4Q0VcXHhDRlxcdTAxMTBcXHhEMVxcdTAzMDlcXHhEM1xceEQ0XFx1MDFBMFxceEQ2XFx4RDdcXHhEOFxceEQ5XFx4REFcXHhEQlxceERDXFx1MDFBRlxcdTAzMDNcXHhERlxceEUwXFx4RTFcXHhFMlxcdTAxMDNcXHhFNFxceEU1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx1MDMwMVxceEVEXFx4RUVcXHhFRlxcdTAxMTFcXHhGMVxcdTAzMjNcXHhGM1xceEY0XFx1MDFBMVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx1MDFCMFxcdTIwQUJcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjU4XCI6IFwid2luZG93czEyNThcIixcbiAgICAgIFwiY3AxMjU4XCI6IFwid2luZG93czEyNThcIixcbiAgICAgIFwiaXNvODg1OTFcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx4QTFcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx4QjlcXHhCQVxceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHhDMFxceEMxXFx4QzJcXHhDM1xceEM0XFx4QzVcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHhDQ1xceENEXFx4Q0VcXHhDRlxceEQwXFx4RDFcXHhEMlxceEQzXFx4RDRcXHhENVxceEQ2XFx4RDdcXHhEOFxceEQ5XFx4REFcXHhEQlxceERDXFx4RERcXHhERVxceERGXFx4RTBcXHhFMVxceEUyXFx4RTNcXHhFNFxceEU1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHhGMFxceEYxXFx4RjJcXHhGM1xceEY0XFx4RjVcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xceEZEXFx4RkVcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NTkxXCI6IFwiaXNvODg1OTFcIixcbiAgICAgIFwiaXNvODg1OTJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MDEwNFxcdTAyRDhcXHUwMTQxXFx4QTRcXHUwMTNEXFx1MDE1QVxceEE3XFx4QThcXHUwMTYwXFx1MDE1RVxcdTAxNjRcXHUwMTc5XFx4QURcXHUwMTdEXFx1MDE3QlxceEIwXFx1MDEwNVxcdTAyREJcXHUwMTQyXFx4QjRcXHUwMTNFXFx1MDE1QlxcdTAyQzdcXHhCOFxcdTAxNjFcXHUwMTVGXFx1MDE2NVxcdTAxN0FcXHUwMkREXFx1MDE3RVxcdTAxN0NcXHUwMTU0XFx4QzFcXHhDMlxcdTAxMDJcXHhDNFxcdTAxMzlcXHUwMTA2XFx4QzdcXHUwMTBDXFx4QzlcXHUwMTE4XFx4Q0JcXHUwMTFBXFx4Q0RcXHhDRVxcdTAxMEVcXHUwMTEwXFx1MDE0M1xcdTAxNDdcXHhEM1xceEQ0XFx1MDE1MFxceEQ2XFx4RDdcXHUwMTU4XFx1MDE2RVxceERBXFx1MDE3MFxceERDXFx4RERcXHUwMTYyXFx4REZcXHUwMTU1XFx4RTFcXHhFMlxcdTAxMDNcXHhFNFxcdTAxM0FcXHUwMTA3XFx4RTdcXHUwMTBEXFx4RTlcXHUwMTE5XFx4RUJcXHUwMTFCXFx4RURcXHhFRVxcdTAxMEZcXHUwMTExXFx1MDE0NFxcdTAxNDhcXHhGM1xceEY0XFx1MDE1MVxceEY2XFx4RjdcXHUwMTU5XFx1MDE2RlxceEZBXFx1MDE3MVxceEZDXFx4RkRcXHUwMTYzXFx1MDJEOVwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NTkyXCI6IFwiaXNvODg1OTJcIixcbiAgICAgIFwiaXNvODg1OTNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MDEyNlxcdTAyRDhcXHhBM1xceEE0XFx1RkZGRFxcdTAxMjRcXHhBN1xceEE4XFx1MDEzMFxcdTAxNUVcXHUwMTFFXFx1MDEzNFxceEFEXFx1RkZGRFxcdTAxN0JcXHhCMFxcdTAxMjdcXHhCMlxceEIzXFx4QjRcXHhCNVxcdTAxMjVcXHhCN1xceEI4XFx1MDEzMVxcdTAxNUZcXHUwMTFGXFx1MDEzNVxceEJEXFx1RkZGRFxcdTAxN0NcXHhDMFxceEMxXFx4QzJcXHVGRkZEXFx4QzRcXHUwMTBBXFx1MDEwOFxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHhDQ1xceENEXFx4Q0VcXHhDRlxcdUZGRkRcXHhEMVxceEQyXFx4RDNcXHhENFxcdTAxMjBcXHhENlxceEQ3XFx1MDExQ1xceEQ5XFx4REFcXHhEQlxceERDXFx1MDE2Q1xcdTAxNUNcXHhERlxceEUwXFx4RTFcXHhFMlxcdUZGRkRcXHhFNFxcdTAxMEJcXHUwMTA5XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx1RkZGRFxceEYxXFx4RjJcXHhGM1xceEY0XFx1MDEyMVxceEY2XFx4RjdcXHUwMTFEXFx4RjlcXHhGQVxceEZCXFx4RkNcXHUwMTZEXFx1MDE1RFxcdTAyRDlcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODU5M1wiOiBcImlzbzg4NTkzXCIsXG4gICAgICBcImlzbzg4NTk0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTAxMDRcXHUwMTM4XFx1MDE1NlxceEE0XFx1MDEyOFxcdTAxM0JcXHhBN1xceEE4XFx1MDE2MFxcdTAxMTJcXHUwMTIyXFx1MDE2NlxceEFEXFx1MDE3RFxceEFGXFx4QjBcXHUwMTA1XFx1MDJEQlxcdTAxNTdcXHhCNFxcdTAxMjlcXHUwMTNDXFx1MDJDN1xceEI4XFx1MDE2MVxcdTAxMTNcXHUwMTIzXFx1MDE2N1xcdTAxNEFcXHUwMTdFXFx1MDE0QlxcdTAxMDBcXHhDMVxceEMyXFx4QzNcXHhDNFxceEM1XFx4QzZcXHUwMTJFXFx1MDEwQ1xceEM5XFx1MDExOFxceENCXFx1MDExNlxceENEXFx4Q0VcXHUwMTJBXFx1MDExMFxcdTAxNDVcXHUwMTRDXFx1MDEzNlxceEQ0XFx4RDVcXHhENlxceEQ3XFx4RDhcXHUwMTcyXFx4REFcXHhEQlxceERDXFx1MDE2OFxcdTAxNkFcXHhERlxcdTAxMDFcXHhFMVxceEUyXFx4RTNcXHhFNFxceEU1XFx4RTZcXHUwMTJGXFx1MDEwRFxceEU5XFx1MDExOVxceEVCXFx1MDExN1xceEVEXFx4RUVcXHUwMTJCXFx1MDExMVxcdTAxNDZcXHUwMTREXFx1MDEzN1xceEY0XFx4RjVcXHhGNlxceEY3XFx4RjhcXHUwMTczXFx4RkFcXHhGQlxceEZDXFx1MDE2OVxcdTAxNkJcXHUwMkQ5XCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OTRcIjogXCJpc284ODU5NFwiLFxuICAgICAgXCJpc284ODU5NVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUwNDAxXFx1MDQwMlxcdTA0MDNcXHUwNDA0XFx1MDQwNVxcdTA0MDZcXHUwNDA3XFx1MDQwOFxcdTA0MDlcXHUwNDBBXFx1MDQwQlxcdTA0MENcXHhBRFxcdTA0MEVcXHUwNDBGXFx1MDQxMFxcdTA0MTFcXHUwNDEyXFx1MDQxM1xcdTA0MTRcXHUwNDE1XFx1MDQxNlxcdTA0MTdcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDI0XFx1MDQyNVxcdTA0MjZcXHUwNDI3XFx1MDQyOFxcdTA0MjlcXHUwNDJBXFx1MDQyQlxcdTA0MkNcXHUwNDJEXFx1MDQyRVxcdTA0MkZcXHUwNDMwXFx1MDQzMVxcdTA0MzJcXHUwNDMzXFx1MDQzNFxcdTA0MzVcXHUwNDM2XFx1MDQzN1xcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0NDRcXHUwNDQ1XFx1MDQ0NlxcdTA0NDdcXHUwNDQ4XFx1MDQ0OVxcdTA0NEFcXHUwNDRCXFx1MDQ0Q1xcdTA0NERcXHUwNDRFXFx1MDQ0RlxcdTIxMTZcXHUwNDUxXFx1MDQ1MlxcdTA0NTNcXHUwNDU0XFx1MDQ1NVxcdTA0NTZcXHUwNDU3XFx1MDQ1OFxcdTA0NTlcXHUwNDVBXFx1MDQ1QlxcdTA0NUNcXHhBN1xcdTA0NUVcXHUwNDVGXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OTVcIjogXCJpc284ODU5NVwiLFxuICAgICAgXCJpc284ODU5NlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBNFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwNjBDXFx4QURcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MDYxQlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTA2MUZcXHVGRkZEXFx1MDYyMVxcdTA2MjJcXHUwNjIzXFx1MDYyNFxcdTA2MjVcXHUwNjI2XFx1MDYyN1xcdTA2MjhcXHUwNjI5XFx1MDYyQVxcdTA2MkJcXHUwNjJDXFx1MDYyRFxcdTA2MkVcXHUwNjJGXFx1MDYzMFxcdTA2MzFcXHUwNjMyXFx1MDYzM1xcdTA2MzRcXHUwNjM1XFx1MDYzNlxcdTA2MzdcXHUwNjM4XFx1MDYzOVxcdTA2M0FcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTA2NDBcXHUwNjQxXFx1MDY0MlxcdTA2NDNcXHUwNjQ0XFx1MDY0NVxcdTA2NDZcXHUwNjQ3XFx1MDY0OFxcdTA2NDlcXHUwNjRBXFx1MDY0QlxcdTA2NENcXHUwNjREXFx1MDY0RVxcdTA2NEZcXHUwNjUwXFx1MDY1MVxcdTA2NTJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OTZcIjogXCJpc284ODU5NlwiLFxuICAgICAgXCJpc284ODU5N1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUyMDE4XFx1MjAxOVxceEEzXFx1MjBBQ1xcdTIwQUZcXHhBNlxceEE3XFx4QThcXHhBOVxcdTAzN0FcXHhBQlxceEFDXFx4QURcXHVGRkZEXFx1MjAxNVxceEIwXFx4QjFcXHhCMlxceEIzXFx1MDM4NFxcdTAzODVcXHUwMzg2XFx4QjdcXHUwMzg4XFx1MDM4OVxcdTAzOEFcXHhCQlxcdTAzOENcXHhCRFxcdTAzOEVcXHUwMzhGXFx1MDM5MFxcdTAzOTFcXHUwMzkyXFx1MDM5M1xcdTAzOTRcXHUwMzk1XFx1MDM5NlxcdTAzOTdcXHUwMzk4XFx1MDM5OVxcdTAzOUFcXHUwMzlCXFx1MDM5Q1xcdTAzOURcXHUwMzlFXFx1MDM5RlxcdTAzQTBcXHUwM0ExXFx1RkZGRFxcdTAzQTNcXHUwM0E0XFx1MDNBNVxcdTAzQTZcXHUwM0E3XFx1MDNBOFxcdTAzQTlcXHUwM0FBXFx1MDNBQlxcdTAzQUNcXHUwM0FEXFx1MDNBRVxcdTAzQUZcXHUwM0IwXFx1MDNCMVxcdTAzQjJcXHUwM0IzXFx1MDNCNFxcdTAzQjVcXHUwM0I2XFx1MDNCN1xcdTAzQjhcXHUwM0I5XFx1MDNCQVxcdTAzQkJcXHUwM0JDXFx1MDNCRFxcdTAzQkVcXHUwM0JGXFx1MDNDMFxcdTAzQzFcXHUwM0MyXFx1MDNDM1xcdTAzQzRcXHUwM0M1XFx1MDNDNlxcdTAzQzdcXHUwM0M4XFx1MDNDOVxcdTAzQ0FcXHUwM0NCXFx1MDNDQ1xcdTAzQ0RcXHUwM0NFXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NTk3XCI6IFwiaXNvODg1OTdcIixcbiAgICAgIFwiaXNvODg1OThcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1RkZGRFxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhEN1xceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEY3XFx4QkJcXHhCQ1xceEJEXFx4QkVcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTIwMTdcXHUwNUQwXFx1MDVEMVxcdTA1RDJcXHUwNUQzXFx1MDVENFxcdTA1RDVcXHUwNUQ2XFx1MDVEN1xcdTA1RDhcXHUwNUQ5XFx1MDVEQVxcdTA1REJcXHUwNURDXFx1MDVERFxcdTA1REVcXHUwNURGXFx1MDVFMFxcdTA1RTFcXHUwNUUyXFx1MDVFM1xcdTA1RTRcXHUwNUU1XFx1MDVFNlxcdTA1RTdcXHUwNUU4XFx1MDVFOVxcdTA1RUFcXHVGRkZEXFx1RkZGRFxcdTIwMEVcXHUyMDBGXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NTk4XCI6IFwiaXNvODg1OThcIixcbiAgICAgIFwiaXNvODg1OTlcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx4QTFcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx4QjlcXHhCQVxceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHhDMFxceEMxXFx4QzJcXHhDM1xceEM0XFx4QzVcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHhDQ1xceENEXFx4Q0VcXHhDRlxcdTAxMUVcXHhEMVxceEQyXFx4RDNcXHhENFxceEQ1XFx4RDZcXHhEN1xceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHUwMTMwXFx1MDE1RVxceERGXFx4RTBcXHhFMVxceEUyXFx4RTNcXHhFNFxceEU1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHUwMTFGXFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx1MDEzMVxcdTAxNUZcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NTk5XCI6IFwiaXNvODg1OTlcIixcbiAgICAgIFwiaXNvODg1OTEwXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTAxMDRcXHUwMTEyXFx1MDEyMlxcdTAxMkFcXHUwMTI4XFx1MDEzNlxceEE3XFx1MDEzQlxcdTAxMTBcXHUwMTYwXFx1MDE2NlxcdTAxN0RcXHhBRFxcdTAxNkFcXHUwMTRBXFx4QjBcXHUwMTA1XFx1MDExM1xcdTAxMjNcXHUwMTJCXFx1MDEyOVxcdTAxMzdcXHhCN1xcdTAxM0NcXHUwMTExXFx1MDE2MVxcdTAxNjdcXHUwMTdFXFx1MjAxNVxcdTAxNkJcXHUwMTRCXFx1MDEwMFxceEMxXFx4QzJcXHhDM1xceEM0XFx4QzVcXHhDNlxcdTAxMkVcXHUwMTBDXFx4QzlcXHUwMTE4XFx4Q0JcXHUwMTE2XFx4Q0RcXHhDRVxceENGXFx4RDBcXHUwMTQ1XFx1MDE0Q1xceEQzXFx4RDRcXHhENVxceEQ2XFx1MDE2OFxceEQ4XFx1MDE3MlxceERBXFx4REJcXHhEQ1xceEREXFx4REVcXHhERlxcdTAxMDFcXHhFMVxceEUyXFx4RTNcXHhFNFxceEU1XFx4RTZcXHUwMTJGXFx1MDEwRFxceEU5XFx1MDExOVxceEVCXFx1MDExN1xceEVEXFx4RUVcXHhFRlxceEYwXFx1MDE0NlxcdTAxNERcXHhGM1xceEY0XFx4RjVcXHhGNlxcdTAxNjlcXHhGOFxcdTAxNzNcXHhGQVxceEZCXFx4RkNcXHhGRFxceEZFXFx1MDEzOFwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NjAwXCI6IFwiaXNvODg1OTEwXCIsXG4gICAgICBcImlzbzg4NTkxMVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUwRTAxXFx1MEUwMlxcdTBFMDNcXHUwRTA0XFx1MEUwNVxcdTBFMDZcXHUwRTA3XFx1MEUwOFxcdTBFMDlcXHUwRTBBXFx1MEUwQlxcdTBFMENcXHUwRTBEXFx1MEUwRVxcdTBFMEZcXHUwRTEwXFx1MEUxMVxcdTBFMTJcXHUwRTEzXFx1MEUxNFxcdTBFMTVcXHUwRTE2XFx1MEUxN1xcdTBFMThcXHUwRTE5XFx1MEUxQVxcdTBFMUJcXHUwRTFDXFx1MEUxRFxcdTBFMUVcXHUwRTFGXFx1MEUyMFxcdTBFMjFcXHUwRTIyXFx1MEUyM1xcdTBFMjRcXHUwRTI1XFx1MEUyNlxcdTBFMjdcXHUwRTI4XFx1MEUyOVxcdTBFMkFcXHUwRTJCXFx1MEUyQ1xcdTBFMkRcXHUwRTJFXFx1MEUyRlxcdTBFMzBcXHUwRTMxXFx1MEUzMlxcdTBFMzNcXHUwRTM0XFx1MEUzNVxcdTBFMzZcXHUwRTM3XFx1MEUzOFxcdTBFMzlcXHUwRTNBXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTBFM0ZcXHUwRTQwXFx1MEU0MVxcdTBFNDJcXHUwRTQzXFx1MEU0NFxcdTBFNDVcXHUwRTQ2XFx1MEU0N1xcdTBFNDhcXHUwRTQ5XFx1MEU0QVxcdTBFNEJcXHUwRTRDXFx1MEU0RFxcdTBFNEVcXHUwRTRGXFx1MEU1MFxcdTBFNTFcXHUwRTUyXFx1MEU1M1xcdTBFNTRcXHUwRTU1XFx1MEU1NlxcdTBFNTdcXHUwRTU4XFx1MEU1OVxcdTBFNUFcXHUwRTVCXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NjAxXCI6IFwiaXNvODg1OTExXCIsXG4gICAgICBcImlzbzg4NTkxM1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUyMDFEXFx4QTJcXHhBM1xceEE0XFx1MjAxRVxceEE2XFx4QTdcXHhEOFxceEE5XFx1MDE1NlxceEFCXFx4QUNcXHhBRFxceEFFXFx4QzZcXHhCMFxceEIxXFx4QjJcXHhCM1xcdTIwMUNcXHhCNVxceEI2XFx4QjdcXHhGOFxceEI5XFx1MDE1N1xceEJCXFx4QkNcXHhCRFxceEJFXFx4RTZcXHUwMTA0XFx1MDEyRVxcdTAxMDBcXHUwMTA2XFx4QzRcXHhDNVxcdTAxMThcXHUwMTEyXFx1MDEwQ1xceEM5XFx1MDE3OVxcdTAxMTZcXHUwMTIyXFx1MDEzNlxcdTAxMkFcXHUwMTNCXFx1MDE2MFxcdTAxNDNcXHUwMTQ1XFx4RDNcXHUwMTRDXFx4RDVcXHhENlxceEQ3XFx1MDE3MlxcdTAxNDFcXHUwMTVBXFx1MDE2QVxceERDXFx1MDE3QlxcdTAxN0RcXHhERlxcdTAxMDVcXHUwMTJGXFx1MDEwMVxcdTAxMDdcXHhFNFxceEU1XFx1MDExOVxcdTAxMTNcXHUwMTBEXFx4RTlcXHUwMTdBXFx1MDExN1xcdTAxMjNcXHUwMTM3XFx1MDEyQlxcdTAxM0NcXHUwMTYxXFx1MDE0NFxcdTAxNDZcXHhGM1xcdTAxNERcXHhGNVxceEY2XFx4RjdcXHUwMTczXFx1MDE0MlxcdTAxNUJcXHUwMTZCXFx4RkNcXHUwMTdDXFx1MDE3RVxcdTIwMTlcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODYwM1wiOiBcImlzbzg4NTkxM1wiLFxuICAgICAgXCJpc284ODU5MTRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MUUwMlxcdTFFMDNcXHhBM1xcdTAxMEFcXHUwMTBCXFx1MUUwQVxceEE3XFx1MUU4MFxceEE5XFx1MUU4MlxcdTFFMEJcXHUxRUYyXFx4QURcXHhBRVxcdTAxNzhcXHUxRTFFXFx1MUUxRlxcdTAxMjBcXHUwMTIxXFx1MUU0MFxcdTFFNDFcXHhCNlxcdTFFNTZcXHUxRTgxXFx1MUU1N1xcdTFFODNcXHUxRTYwXFx1MUVGM1xcdTFFODRcXHUxRTg1XFx1MUU2MVxceEMwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx1MDE3NFxceEQxXFx4RDJcXHhEM1xceEQ0XFx4RDVcXHhENlxcdTFFNkFcXHhEOFxceEQ5XFx4REFcXHhEQlxceERDXFx4RERcXHUwMTc2XFx4REZcXHhFMFxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxcdTAxNzVcXHhGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx4RjZcXHUxRTZCXFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xceEZEXFx1MDE3N1xceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg2MDRcIjogXCJpc284ODU5MTRcIixcbiAgICAgIFwiaXNvODg1OTE1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxceEExXFx4QTJcXHhBM1xcdTIwQUNcXHhBNVxcdTAxNjBcXHhBN1xcdTAxNjFcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx1MDE3RFxceEI1XFx4QjZcXHhCN1xcdTAxN0VcXHhCOVxceEJBXFx4QkJcXHUwMTUyXFx1MDE1M1xcdTAxNzhcXHhCRlxceEMwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx4RDBcXHhEMVxceEQyXFx4RDNcXHhENFxceEQ1XFx4RDZcXHhEN1xceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHhERFxceERFXFx4REZcXHhFMFxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxceEYwXFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx4RkRcXHhGRVxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg2MDVcIjogXCJpc284ODU5MTVcIixcbiAgICAgIFwiaXNvODg1OTE2XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTAxMDRcXHUwMTA1XFx1MDE0MVxcdTIwQUNcXHUyMDFFXFx1MDE2MFxceEE3XFx1MDE2MVxceEE5XFx1MDIxOFxceEFCXFx1MDE3OVxceEFEXFx1MDE3QVxcdTAxN0JcXHhCMFxceEIxXFx1MDEwQ1xcdTAxNDJcXHUwMTdEXFx1MjAxRFxceEI2XFx4QjdcXHUwMTdFXFx1MDEwRFxcdTAyMTlcXHhCQlxcdTAxNTJcXHUwMTUzXFx1MDE3OFxcdTAxN0NcXHhDMFxceEMxXFx4QzJcXHUwMTAyXFx4QzRcXHUwMTA2XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx4Q0NcXHhDRFxceENFXFx4Q0ZcXHUwMTEwXFx1MDE0M1xceEQyXFx4RDNcXHhENFxcdTAxNTBcXHhENlxcdTAxNUFcXHUwMTcwXFx4RDlcXHhEQVxceERCXFx4RENcXHUwMTE4XFx1MDIxQVxceERGXFx4RTBcXHhFMVxceEUyXFx1MDEwM1xceEU0XFx1MDEwN1xceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx1MDExMVxcdTAxNDRcXHhGMlxceEYzXFx4RjRcXHUwMTUxXFx4RjZcXHUwMTVCXFx1MDE3MVxceEY5XFx4RkFcXHhGQlxceEZDXFx1MDExOVxcdTAyMUJcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NjA2XCI6IFwiaXNvODg1OTE2XCIsXG4gICAgICBcImNwNDM3XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM3XFx4RkNcXHhFOVxceEUyXFx4RTRcXHhFMFxceEU1XFx4RTdcXHhFQVxceEVCXFx4RThcXHhFRlxceEVFXFx4RUNcXHhDNFxceEM1XFx4QzlcXHhFNlxceEM2XFx4RjRcXHhGNlxceEYyXFx4RkJcXHhGOVxceEZGXFx4RDZcXHhEQ1xceEEyXFx4QTNcXHhBNVxcdTIwQTdcXHUwMTkyXFx4RTFcXHhFRFxceEYzXFx4RkFcXHhGMVxceEQxXFx4QUFcXHhCQVxceEJGXFx1MjMxMFxceEFDXFx4QkRcXHhCQ1xceEExXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTAzQjFcXHhERlxcdTAzOTNcXHUwM0MwXFx1MDNBM1xcdTAzQzNcXHhCNVxcdTAzQzRcXHUwM0E2XFx1MDM5OFxcdTAzQTlcXHUwM0I0XFx1MjIxRVxcdTAzQzZcXHUwM0I1XFx1MjIyOVxcdTIyNjFcXHhCMVxcdTIyNjVcXHUyMjY0XFx1MjMyMFxcdTIzMjFcXHhGN1xcdTIyNDhcXHhCMFxcdTIyMTlcXHhCN1xcdTIyMUFcXHUyMDdGXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtNDM3XCI6IFwiY3A0MzdcIixcbiAgICAgIFwiY3NpYm00MzdcIjogXCJjcDQzN1wiLFxuICAgICAgXCJjcDczN1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwMzkxXFx1MDM5MlxcdTAzOTNcXHUwMzk0XFx1MDM5NVxcdTAzOTZcXHUwMzk3XFx1MDM5OFxcdTAzOTlcXHUwMzlBXFx1MDM5QlxcdTAzOUNcXHUwMzlEXFx1MDM5RVxcdTAzOUZcXHUwM0EwXFx1MDNBMVxcdTAzQTNcXHUwM0E0XFx1MDNBNVxcdTAzQTZcXHUwM0E3XFx1MDNBOFxcdTAzQTlcXHUwM0IxXFx1MDNCMlxcdTAzQjNcXHUwM0I0XFx1MDNCNVxcdTAzQjZcXHUwM0I3XFx1MDNCOFxcdTAzQjlcXHUwM0JBXFx1MDNCQlxcdTAzQkNcXHUwM0JEXFx1MDNCRVxcdTAzQkZcXHUwM0MwXFx1MDNDMVxcdTAzQzNcXHUwM0MyXFx1MDNDNFxcdTAzQzVcXHUwM0M2XFx1MDNDN1xcdTAzQzhcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwM0M5XFx1MDNBQ1xcdTAzQURcXHUwM0FFXFx1MDNDQVxcdTAzQUZcXHUwM0NDXFx1MDNDRFxcdTAzQ0JcXHUwM0NFXFx1MDM4NlxcdTAzODhcXHUwMzg5XFx1MDM4QVxcdTAzOENcXHUwMzhFXFx1MDM4RlxceEIxXFx1MjI2NVxcdTIyNjRcXHUwM0FBXFx1MDNBQlxceEY3XFx1MjI0OFxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIwN0ZcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm03MzdcIjogXCJjcDczN1wiLFxuICAgICAgXCJjc2libTczN1wiOiBcImNwNzM3XCIsXG4gICAgICBcImNwNzc1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTAxMDZcXHhGQ1xceEU5XFx1MDEwMVxceEU0XFx1MDEyM1xceEU1XFx1MDEwN1xcdTAxNDJcXHUwMTEzXFx1MDE1NlxcdTAxNTdcXHUwMTJCXFx1MDE3OVxceEM0XFx4QzVcXHhDOVxceEU2XFx4QzZcXHUwMTREXFx4RjZcXHUwMTIyXFx4QTJcXHUwMTVBXFx1MDE1QlxceEQ2XFx4RENcXHhGOFxceEEzXFx4RDhcXHhEN1xceEE0XFx1MDEwMFxcdTAxMkFcXHhGM1xcdTAxN0JcXHUwMTdDXFx1MDE3QVxcdTIwMURcXHhBNlxceEE5XFx4QUVcXHhBQ1xceEJEXFx4QkNcXHUwMTQxXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MDEwNFxcdTAxMENcXHUwMTE4XFx1MDExNlxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUwMTJFXFx1MDE2MFxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUwMTcyXFx1MDE2QVxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUwMTdEXFx1MDEwNVxcdTAxMERcXHUwMTE5XFx1MDExN1xcdTAxMkZcXHUwMTYxXFx1MDE3M1xcdTAxNkJcXHUwMTdFXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxceEQzXFx4REZcXHUwMTRDXFx1MDE0M1xceEY1XFx4RDVcXHhCNVxcdTAxNDRcXHUwMTM2XFx1MDEzN1xcdTAxM0JcXHUwMTNDXFx1MDE0NlxcdTAxMTJcXHUwMTQ1XFx1MjAxOVxceEFEXFx4QjFcXHUyMDFDXFx4QkVcXHhCNlxceEE3XFx4RjdcXHUyMDFFXFx4QjBcXHUyMjE5XFx4QjdcXHhCOVxceEIzXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtNzc1XCI6IFwiY3A3NzVcIixcbiAgICAgIFwiY3NpYm03NzVcIjogXCJjcDc3NVwiLFxuICAgICAgXCJjcDg1MFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDN1xceEZDXFx4RTlcXHhFMlxceEU0XFx4RTBcXHhFNVxceEU3XFx4RUFcXHhFQlxceEU4XFx4RUZcXHhFRVxceEVDXFx4QzRcXHhDNVxceEM5XFx4RTZcXHhDNlxceEY0XFx4RjZcXHhGMlxceEZCXFx4RjlcXHhGRlxceEQ2XFx4RENcXHhGOFxceEEzXFx4RDhcXHhEN1xcdTAxOTJcXHhFMVxceEVEXFx4RjNcXHhGQVxceEYxXFx4RDFcXHhBQVxceEJBXFx4QkZcXHhBRVxceEFDXFx4QkRcXHhCQ1xceEExXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx4QzFcXHhDMlxceEMwXFx4QTlcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx4QTJcXHhBNVxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHhFM1xceEMzXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xceEE0XFx4RjBcXHhEMFxceENBXFx4Q0JcXHhDOFxcdTAxMzFcXHhDRFxceENFXFx4Q0ZcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx4QTZcXHhDQ1xcdTI1ODBcXHhEM1xceERGXFx4RDRcXHhEMlxceEY1XFx4RDVcXHhCNVxceEZFXFx4REVcXHhEQVxceERCXFx4RDlcXHhGRFxceEREXFx4QUZcXHhCNFxceEFEXFx4QjFcXHUyMDE3XFx4QkVcXHhCNlxceEE3XFx4RjdcXHhCOFxceEIwXFx4QThcXHhCN1xceEI5XFx4QjNcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NTBcIjogXCJjcDg1MFwiLFxuICAgICAgXCJjc2libTg1MFwiOiBcImNwODUwXCIsXG4gICAgICBcImNwODUyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM3XFx4RkNcXHhFOVxceEUyXFx4RTRcXHUwMTZGXFx1MDEwN1xceEU3XFx1MDE0MlxceEVCXFx1MDE1MFxcdTAxNTFcXHhFRVxcdTAxNzlcXHhDNFxcdTAxMDZcXHhDOVxcdTAxMzlcXHUwMTNBXFx4RjRcXHhGNlxcdTAxM0RcXHUwMTNFXFx1MDE1QVxcdTAxNUJcXHhENlxceERDXFx1MDE2NFxcdTAxNjVcXHUwMTQxXFx4RDdcXHUwMTBEXFx4RTFcXHhFRFxceEYzXFx4RkFcXHUwMTA0XFx1MDEwNVxcdTAxN0RcXHUwMTdFXFx1MDExOFxcdTAxMTlcXHhBQ1xcdTAxN0FcXHUwMTBDXFx1MDE1RlxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxceEMxXFx4QzJcXHUwMTFBXFx1MDE1RVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUwMTdCXFx1MDE3Q1xcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUwMTAyXFx1MDEwM1xcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHhBNFxcdTAxMTFcXHUwMTEwXFx1MDEwRVxceENCXFx1MDEwRlxcdTAxNDdcXHhDRFxceENFXFx1MDExQlxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUwMTYyXFx1MDE2RVxcdTI1ODBcXHhEM1xceERGXFx4RDRcXHUwMTQzXFx1MDE0NFxcdTAxNDhcXHUwMTYwXFx1MDE2MVxcdTAxNTRcXHhEQVxcdTAxNTVcXHUwMTcwXFx4RkRcXHhERFxcdTAxNjNcXHhCNFxceEFEXFx1MDJERFxcdTAyREJcXHUwMkM3XFx1MDJEOFxceEE3XFx4RjdcXHhCOFxceEIwXFx4QThcXHUwMkQ5XFx1MDE3MVxcdTAxNThcXHUwMTU5XFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg1MlwiOiBcImNwODUyXCIsXG4gICAgICBcImNzaWJtODUyXCI6IFwiY3A4NTJcIixcbiAgICAgIFwiY3A4NTVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQ1MlxcdTA0MDJcXHUwNDUzXFx1MDQwM1xcdTA0NTFcXHUwNDAxXFx1MDQ1NFxcdTA0MDRcXHUwNDU1XFx1MDQwNVxcdTA0NTZcXHUwNDA2XFx1MDQ1N1xcdTA0MDdcXHUwNDU4XFx1MDQwOFxcdTA0NTlcXHUwNDA5XFx1MDQ1QVxcdTA0MEFcXHUwNDVCXFx1MDQwQlxcdTA0NUNcXHUwNDBDXFx1MDQ1RVxcdTA0MEVcXHUwNDVGXFx1MDQwRlxcdTA0NEVcXHUwNDJFXFx1MDQ0QVxcdTA0MkFcXHUwNDMwXFx1MDQxMFxcdTA0MzFcXHUwNDExXFx1MDQ0NlxcdTA0MjZcXHUwNDM0XFx1MDQxNFxcdTA0MzVcXHUwNDE1XFx1MDQ0NFxcdTA0MjRcXHUwNDMzXFx1MDQxM1xceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTA0NDVcXHUwNDI1XFx1MDQzOFxcdTA0MThcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MDQzOVxcdTA0MTlcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MDQzQVxcdTA0MUFcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx4QTRcXHUwNDNCXFx1MDQxQlxcdTA0M0NcXHUwNDFDXFx1MDQzRFxcdTA0MURcXHUwNDNFXFx1MDQxRVxcdTA0M0ZcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MDQxRlxcdTA0NEZcXHUyNTgwXFx1MDQyRlxcdTA0NDBcXHUwNDIwXFx1MDQ0MVxcdTA0MjFcXHUwNDQyXFx1MDQyMlxcdTA0NDNcXHUwNDIzXFx1MDQzNlxcdTA0MTZcXHUwNDMyXFx1MDQxMlxcdTA0NENcXHUwNDJDXFx1MjExNlxceEFEXFx1MDQ0QlxcdTA0MkJcXHUwNDM3XFx1MDQxN1xcdTA0NDhcXHUwNDI4XFx1MDQ0RFxcdTA0MkRcXHUwNDQ5XFx1MDQyOVxcdTA0NDdcXHUwNDI3XFx4QTdcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODU1XCI6IFwiY3A4NTVcIixcbiAgICAgIFwiY3NpYm04NTVcIjogXCJjcDg1NVwiLFxuICAgICAgXCJjcDg1NlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNUQwXFx1MDVEMVxcdTA1RDJcXHUwNUQzXFx1MDVENFxcdTA1RDVcXHUwNUQ2XFx1MDVEN1xcdTA1RDhcXHUwNUQ5XFx1MDVEQVxcdTA1REJcXHUwNURDXFx1MDVERFxcdTA1REVcXHUwNURGXFx1MDVFMFxcdTA1RTFcXHUwNUUyXFx1MDVFM1xcdTA1RTRcXHUwNUU1XFx1MDVFNlxcdTA1RTdcXHUwNUU4XFx1MDVFOVxcdTA1RUFcXHVGRkZEXFx4QTNcXHVGRkZEXFx4RDdcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QUVcXHhBQ1xceEJEXFx4QkNcXHVGRkZEXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QTlcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx4QTJcXHhBNVxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHVGRkZEXFx1RkZGRFxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHhBNFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHhBNlxcdUZGRkRcXHUyNTgwXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QjVcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QUZcXHhCNFxceEFEXFx4QjFcXHUyMDE3XFx4QkVcXHhCNlxceEE3XFx4RjdcXHhCOFxceEIwXFx4QThcXHhCN1xceEI5XFx4QjNcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NTZcIjogXCJjcDg1NlwiLFxuICAgICAgXCJjc2libTg1NlwiOiBcImNwODU2XCIsXG4gICAgICBcImNwODU3XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM3XFx4RkNcXHhFOVxceEUyXFx4RTRcXHhFMFxceEU1XFx4RTdcXHhFQVxceEVCXFx4RThcXHhFRlxceEVFXFx1MDEzMVxceEM0XFx4QzVcXHhDOVxceEU2XFx4QzZcXHhGNFxceEY2XFx4RjJcXHhGQlxceEY5XFx1MDEzMFxceEQ2XFx4RENcXHhGOFxceEEzXFx4RDhcXHUwMTVFXFx1MDE1RlxceEUxXFx4RURcXHhGM1xceEZBXFx4RjFcXHhEMVxcdTAxMUVcXHUwMTFGXFx4QkZcXHhBRVxceEFDXFx4QkRcXHhCQ1xceEExXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx4QzFcXHhDMlxceEMwXFx4QTlcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx4QTJcXHhBNVxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHhFM1xceEMzXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xceEE0XFx4QkFcXHhBQVxceENBXFx4Q0JcXHhDOFxcdUZGRkRcXHhDRFxceENFXFx4Q0ZcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx4QTZcXHhDQ1xcdTI1ODBcXHhEM1xceERGXFx4RDRcXHhEMlxceEY1XFx4RDVcXHhCNVxcdUZGRkRcXHhEN1xceERBXFx4REJcXHhEOVxceEVDXFx4RkZcXHhBRlxceEI0XFx4QURcXHhCMVxcdUZGRkRcXHhCRVxceEI2XFx4QTdcXHhGN1xceEI4XFx4QjBcXHhBOFxceEI3XFx4QjlcXHhCM1xceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg1N1wiOiBcImNwODU3XCIsXG4gICAgICBcImNzaWJtODU3XCI6IFwiY3A4NTdcIixcbiAgICAgIFwiY3A4NThcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhFNFxceEUwXFx4RTVcXHhFN1xceEVBXFx4RUJcXHhFOFxceEVGXFx4RUVcXHhFQ1xceEM0XFx4QzVcXHhDOVxceEU2XFx4QzZcXHhGNFxceEY2XFx4RjJcXHhGQlxceEY5XFx4RkZcXHhENlxceERDXFx4RjhcXHhBM1xceEQ4XFx4RDdcXHUwMTkyXFx4RTFcXHhFRFxceEYzXFx4RkFcXHhGMVxceEQxXFx4QUFcXHhCQVxceEJGXFx4QUVcXHhBQ1xceEJEXFx4QkNcXHhBMVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxceEMxXFx4QzJcXHhDMFxceEE5XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxceEEyXFx4QTVcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx4RTNcXHhDM1xcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHhBNFxceEYwXFx4RDBcXHhDQVxceENCXFx4QzhcXHUyMEFDXFx4Q0RcXHhDRVxceENGXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxceEE2XFx4Q0NcXHUyNTgwXFx4RDNcXHhERlxceEQ0XFx4RDJcXHhGNVxceEQ1XFx4QjVcXHhGRVxceERFXFx4REFcXHhEQlxceEQ5XFx4RkRcXHhERFxceEFGXFx4QjRcXHhBRFxceEIxXFx1MjAxN1xceEJFXFx4QjZcXHhBN1xceEY3XFx4QjhcXHhCMFxceEE4XFx4QjdcXHhCOVxceEIzXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODU4XCI6IFwiY3A4NThcIixcbiAgICAgIFwiY3NpYm04NThcIjogXCJjcDg1OFwiLFxuICAgICAgXCJjcDg2MFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDN1xceEZDXFx4RTlcXHhFMlxceEUzXFx4RTBcXHhDMVxceEU3XFx4RUFcXHhDQVxceEU4XFx4Q0RcXHhENFxceEVDXFx4QzNcXHhDMlxceEM5XFx4QzBcXHhDOFxceEY0XFx4RjVcXHhGMlxceERBXFx4RjlcXHhDQ1xceEQ1XFx4RENcXHhBMlxceEEzXFx4RDlcXHUyMEE3XFx4RDNcXHhFMVxceEVEXFx4RjNcXHhGQVxceEYxXFx4RDFcXHhBQVxceEJBXFx4QkZcXHhEMlxceEFDXFx4QkRcXHhCQ1xceEExXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTAzQjFcXHhERlxcdTAzOTNcXHUwM0MwXFx1MDNBM1xcdTAzQzNcXHhCNVxcdTAzQzRcXHUwM0E2XFx1MDM5OFxcdTAzQTlcXHUwM0I0XFx1MjIxRVxcdTAzQzZcXHUwM0I1XFx1MjIyOVxcdTIyNjFcXHhCMVxcdTIyNjVcXHUyMjY0XFx1MjMyMFxcdTIzMjFcXHhGN1xcdTIyNDhcXHhCMFxcdTIyMTlcXHhCN1xcdTIyMUFcXHUyMDdGXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODYwXCI6IFwiY3A4NjBcIixcbiAgICAgIFwiY3NpYm04NjBcIjogXCJjcDg2MFwiLFxuICAgICAgXCJjcDg2MVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDN1xceEZDXFx4RTlcXHhFMlxceEU0XFx4RTBcXHhFNVxceEU3XFx4RUFcXHhFQlxceEU4XFx4RDBcXHhGMFxceERFXFx4QzRcXHhDNVxceEM5XFx4RTZcXHhDNlxceEY0XFx4RjZcXHhGRVxceEZCXFx4RERcXHhGRFxceEQ2XFx4RENcXHhGOFxceEEzXFx4RDhcXHUyMEE3XFx1MDE5MlxceEUxXFx4RURcXHhGM1xceEZBXFx4QzFcXHhDRFxceEQzXFx4REFcXHhCRlxcdTIzMTBcXHhBQ1xceEJEXFx4QkNcXHhBMVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwM0IxXFx4REZcXHUwMzkzXFx1MDNDMFxcdTAzQTNcXHUwM0MzXFx4QjVcXHUwM0M0XFx1MDNBNlxcdTAzOThcXHUwM0E5XFx1MDNCNFxcdTIyMUVcXHUwM0M2XFx1MDNCNVxcdTIyMjlcXHUyMjYxXFx4QjFcXHUyMjY1XFx1MjI2NFxcdTIzMjBcXHUyMzIxXFx4RjdcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg2MVwiOiBcImNwODYxXCIsXG4gICAgICBcImNzaWJtODYxXCI6IFwiY3A4NjFcIixcbiAgICAgIFwiY3A4NjJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDVEMFxcdTA1RDFcXHUwNUQyXFx1MDVEM1xcdTA1RDRcXHUwNUQ1XFx1MDVENlxcdTA1RDdcXHUwNUQ4XFx1MDVEOVxcdTA1REFcXHUwNURCXFx1MDVEQ1xcdTA1RERcXHUwNURFXFx1MDVERlxcdTA1RTBcXHUwNUUxXFx1MDVFMlxcdTA1RTNcXHUwNUU0XFx1MDVFNVxcdTA1RTZcXHUwNUU3XFx1MDVFOFxcdTA1RTlcXHUwNUVBXFx4QTJcXHhBM1xceEE1XFx1MjBBN1xcdTAxOTJcXHhFMVxceEVEXFx4RjNcXHhGQVxceEYxXFx4RDFcXHhBQVxceEJBXFx4QkZcXHUyMzEwXFx4QUNcXHhCRFxceEJDXFx4QTFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDNCMVxceERGXFx1MDM5M1xcdTAzQzBcXHUwM0EzXFx1MDNDM1xceEI1XFx1MDNDNFxcdTAzQTZcXHUwMzk4XFx1MDNBOVxcdTAzQjRcXHUyMjFFXFx1MDNDNlxcdTAzQjVcXHUyMjI5XFx1MjI2MVxceEIxXFx1MjI2NVxcdTIyNjRcXHUyMzIwXFx1MjMyMVxceEY3XFx1MjI0OFxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIwN0ZcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NjJcIjogXCJjcDg2MlwiLFxuICAgICAgXCJjc2libTg2MlwiOiBcImNwODYyXCIsXG4gICAgICBcImNwODYzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM3XFx4RkNcXHhFOVxceEUyXFx4QzJcXHhFMFxceEI2XFx4RTdcXHhFQVxceEVCXFx4RThcXHhFRlxceEVFXFx1MjAxN1xceEMwXFx4QTdcXHhDOVxceEM4XFx4Q0FcXHhGNFxceENCXFx4Q0ZcXHhGQlxceEY5XFx4QTRcXHhENFxceERDXFx4QTJcXHhBM1xceEQ5XFx4REJcXHUwMTkyXFx4QTZcXHhCNFxceEYzXFx4RkFcXHhBOFxceEI4XFx4QjNcXHhBRlxceENFXFx1MjMxMFxceEFDXFx4QkRcXHhCQ1xceEJFXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTAzQjFcXHhERlxcdTAzOTNcXHUwM0MwXFx1MDNBM1xcdTAzQzNcXHhCNVxcdTAzQzRcXHUwM0E2XFx1MDM5OFxcdTAzQTlcXHUwM0I0XFx1MjIxRVxcdTAzQzZcXHUwM0I1XFx1MjIyOVxcdTIyNjFcXHhCMVxcdTIyNjVcXHUyMjY0XFx1MjMyMFxcdTIzMjFcXHhGN1xcdTIyNDhcXHhCMFxcdTIyMTlcXHhCN1xcdTIyMUFcXHUyMDdGXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODYzXCI6IFwiY3A4NjNcIixcbiAgICAgIFwiY3NpYm04NjNcIjogXCJjcDg2M1wiLFxuICAgICAgXCJjcDg2NFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcXHgwN1xcYlx0XFxuXFx2XFxmXFxyXHUwMDBFXHUwMDBGXHUwMDEwXHUwMDExXHUwMDEyXHUwMDEzXHUwMDE0XHUwMDE1XHUwMDE2XHUwMDE3XHUwMDE4XHUwMDE5XHUwMDFBXFx4MUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUYgIVxcXCIjJFxcdTA2NkEmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXFxcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flxceDdGXFx4QjBcXHhCN1xcdTIyMTlcXHUyMjFBXFx1MjU5MlxcdTI1MDBcXHUyNTAyXFx1MjUzQ1xcdTI1MjRcXHUyNTJDXFx1MjUxQ1xcdTI1MzRcXHUyNTEwXFx1MjUwQ1xcdTI1MTRcXHUyNTE4XFx1MDNCMlxcdTIyMUVcXHUwM0M2XFx4QjFcXHhCRFxceEJDXFx1MjI0OFxceEFCXFx4QkJcXHVGRUY3XFx1RkVGOFxcdUZGRkRcXHVGRkZEXFx1RkVGQlxcdUZFRkNcXHVGRkZEXFx4QTBcXHhBRFxcdUZFODJcXHhBM1xceEE0XFx1RkU4NFxcdUZGRkRcXHVGRkZEXFx1RkU4RVxcdUZFOEZcXHVGRTk1XFx1RkU5OVxcdTA2MENcXHVGRTlEXFx1RkVBMVxcdUZFQTVcXHUwNjYwXFx1MDY2MVxcdTA2NjJcXHUwNjYzXFx1MDY2NFxcdTA2NjVcXHUwNjY2XFx1MDY2N1xcdTA2NjhcXHUwNjY5XFx1RkVEMVxcdTA2MUJcXHVGRUIxXFx1RkVCNVxcdUZFQjlcXHUwNjFGXFx4QTJcXHVGRTgwXFx1RkU4MVxcdUZFODNcXHVGRTg1XFx1RkVDQVxcdUZFOEJcXHVGRThEXFx1RkU5MVxcdUZFOTNcXHVGRTk3XFx1RkU5QlxcdUZFOUZcXHVGRUEzXFx1RkVBN1xcdUZFQTlcXHVGRUFCXFx1RkVBRFxcdUZFQUZcXHVGRUIzXFx1RkVCN1xcdUZFQkJcXHVGRUJGXFx1RkVDMVxcdUZFQzVcXHVGRUNCXFx1RkVDRlxceEE2XFx4QUNcXHhGN1xceEQ3XFx1RkVDOVxcdTA2NDBcXHVGRUQzXFx1RkVEN1xcdUZFREJcXHVGRURGXFx1RkVFM1xcdUZFRTdcXHVGRUVCXFx1RkVFRFxcdUZFRUZcXHVGRUYzXFx1RkVCRFxcdUZFQ0NcXHVGRUNFXFx1RkVDRFxcdUZFRTFcXHVGRTdEXFx1MDY1MVxcdUZFRTVcXHVGRUU5XFx1RkVFQ1xcdUZFRjBcXHVGRUYyXFx1RkVEMFxcdUZFRDVcXHVGRUY1XFx1RkVGNlxcdUZFRERcXHVGRUQ5XFx1RkVGMVxcdTI1QTBcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg2NFwiOiBcImNwODY0XCIsXG4gICAgICBcImNzaWJtODY0XCI6IFwiY3A4NjRcIixcbiAgICAgIFwiY3A4NjVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhFNFxceEUwXFx4RTVcXHhFN1xceEVBXFx4RUJcXHhFOFxceEVGXFx4RUVcXHhFQ1xceEM0XFx4QzVcXHhDOVxceEU2XFx4QzZcXHhGNFxceEY2XFx4RjJcXHhGQlxceEY5XFx4RkZcXHhENlxceERDXFx4RjhcXHhBM1xceEQ4XFx1MjBBN1xcdTAxOTJcXHhFMVxceEVEXFx4RjNcXHhGQVxceEYxXFx4RDFcXHhBQVxceEJBXFx4QkZcXHUyMzEwXFx4QUNcXHhCRFxceEJDXFx4QTFcXHhBQlxceEE0XFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDNCMVxceERGXFx1MDM5M1xcdTAzQzBcXHUwM0EzXFx1MDNDM1xceEI1XFx1MDNDNFxcdTAzQTZcXHUwMzk4XFx1MDNBOVxcdTAzQjRcXHUyMjFFXFx1MDNDNlxcdTAzQjVcXHUyMjI5XFx1MjI2MVxceEIxXFx1MjI2NVxcdTIyNjRcXHUyMzIwXFx1MjMyMVxceEY3XFx1MjI0OFxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIwN0ZcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NjVcIjogXCJjcDg2NVwiLFxuICAgICAgXCJjc2libTg2NVwiOiBcImNwODY1XCIsXG4gICAgICBcImNwODY2XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcXHUwNDAxXFx1MDQ1MVxcdTA0MDRcXHUwNDU0XFx1MDQwN1xcdTA0NTdcXHUwNDBFXFx1MDQ1RVxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIxMTZcXHhBNFxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NjZcIjogXCJjcDg2NlwiLFxuICAgICAgXCJjc2libTg2NlwiOiBcImNwODY2XCIsXG4gICAgICBcImNwODY5XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTAzODZcXHVGRkZEXFx4QjdcXHhBQ1xceEE2XFx1MjAxOFxcdTIwMTlcXHUwMzg4XFx1MjAxNVxcdTAzODlcXHUwMzhBXFx1MDNBQVxcdTAzOENcXHVGRkZEXFx1RkZGRFxcdTAzOEVcXHUwM0FCXFx4QTlcXHUwMzhGXFx4QjJcXHhCM1xcdTAzQUNcXHhBM1xcdTAzQURcXHUwM0FFXFx1MDNBRlxcdTAzQ0FcXHUwMzkwXFx1MDNDQ1xcdTAzQ0RcXHUwMzkxXFx1MDM5MlxcdTAzOTNcXHUwMzk0XFx1MDM5NVxcdTAzOTZcXHUwMzk3XFx4QkRcXHUwMzk4XFx1MDM5OVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTAzOUFcXHUwMzlCXFx1MDM5Q1xcdTAzOURcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MDM5RVxcdTAzOUZcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MDNBMFxcdTAzQTFcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MDNBM1xcdTAzQTRcXHUwM0E1XFx1MDNBNlxcdTAzQTdcXHUwM0E4XFx1MDNBOVxcdTAzQjFcXHUwM0IyXFx1MDNCM1xcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUwM0I0XFx1MDNCNVxcdTI1ODBcXHUwM0I2XFx1MDNCN1xcdTAzQjhcXHUwM0I5XFx1MDNCQVxcdTAzQkJcXHUwM0JDXFx1MDNCRFxcdTAzQkVcXHUwM0JGXFx1MDNDMFxcdTAzQzFcXHUwM0MzXFx1MDNDMlxcdTAzQzRcXHUwMzg0XFx4QURcXHhCMVxcdTAzQzVcXHUwM0M2XFx1MDNDN1xceEE3XFx1MDNDOFxcdTAzODVcXHhCMFxceEE4XFx1MDNDOVxcdTAzQ0JcXHUwM0IwXFx1MDNDRVxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NjlcIjogXCJjcDg2OVwiLFxuICAgICAgXCJjc2libTg2OVwiOiBcImNwODY5XCIsXG4gICAgICBcImNwOTIyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxceEExXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHUyMDNFXFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx4QjlcXHhCQVxceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHhDMFxceEMxXFx4QzJcXHhDM1xceEM0XFx4QzVcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHhDQ1xceENEXFx4Q0VcXHhDRlxcdTAxNjBcXHhEMVxceEQyXFx4RDNcXHhENFxceEQ1XFx4RDZcXHhEN1xceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHhERFxcdTAxN0RcXHhERlxceEUwXFx4RTFcXHhFMlxceEUzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx1MDE2MVxceEYxXFx4RjJcXHhGM1xceEY0XFx4RjVcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xceEZEXFx1MDE3RVxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImlibTkyMlwiOiBcImNwOTIyXCIsXG4gICAgICBcImNzaWJtOTIyXCI6IFwiY3A5MjJcIixcbiAgICAgIFwiY3AxMDQ2XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdUZFODhcXHhEN1xceEY3XFx1RjhGNlxcdUY4RjVcXHVGOEY0XFx1RjhGN1xcdUZFNzFcXHg4OFxcdTI1QTBcXHUyNTAyXFx1MjUwMFxcdTI1MTBcXHUyNTBDXFx1MjUxNFxcdTI1MThcXHVGRTc5XFx1RkU3QlxcdUZFN0RcXHVGRTdGXFx1RkU3N1xcdUZFOEFcXHVGRUYwXFx1RkVGM1xcdUZFRjJcXHVGRUNFXFx1RkVDRlxcdUZFRDBcXHVGRUY2XFx1RkVGOFxcdUZFRkFcXHVGRUZDXFx4QTBcXHVGOEZBXFx1RjhGOVxcdUY4RjhcXHhBNFxcdUY4RkJcXHVGRThCXFx1RkU5MVxcdUZFOTdcXHVGRTlCXFx1RkU5RlxcdUZFQTNcXHUwNjBDXFx4QURcXHVGRUE3XFx1RkVCM1xcdTA2NjBcXHUwNjYxXFx1MDY2MlxcdTA2NjNcXHUwNjY0XFx1MDY2NVxcdTA2NjZcXHUwNjY3XFx1MDY2OFxcdTA2NjlcXHVGRUI3XFx1MDYxQlxcdUZFQkJcXHVGRUJGXFx1RkVDQVxcdTA2MUZcXHVGRUNCXFx1MDYyMVxcdTA2MjJcXHUwNjIzXFx1MDYyNFxcdTA2MjVcXHUwNjI2XFx1MDYyN1xcdTA2MjhcXHUwNjI5XFx1MDYyQVxcdTA2MkJcXHUwNjJDXFx1MDYyRFxcdTA2MkVcXHUwNjJGXFx1MDYzMFxcdTA2MzFcXHUwNjMyXFx1MDYzM1xcdTA2MzRcXHUwNjM1XFx1MDYzNlxcdTA2MzdcXHVGRUM3XFx1MDYzOVxcdTA2M0FcXHVGRUNDXFx1RkU4MlxcdUZFODRcXHVGRThFXFx1RkVEM1xcdTA2NDBcXHUwNjQxXFx1MDY0MlxcdTA2NDNcXHUwNjQ0XFx1MDY0NVxcdTA2NDZcXHUwNjQ3XFx1MDY0OFxcdTA2NDlcXHUwNjRBXFx1MDY0QlxcdTA2NENcXHUwNjREXFx1MDY0RVxcdTA2NEZcXHUwNjUwXFx1MDY1MVxcdTA2NTJcXHVGRUQ3XFx1RkVEQlxcdUZFREZcXHVGOEZDXFx1RkVGNVxcdUZFRjdcXHVGRUY5XFx1RkVGQlxcdUZFRTNcXHVGRUU3XFx1RkVFQ1xcdUZFRTlcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImlibTEwNDZcIjogXCJjcDEwNDZcIixcbiAgICAgIFwiY3NpYm0xMDQ2XCI6IFwiY3AxMDQ2XCIsXG4gICAgICBcImNwMTEyNFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUwNDAxXFx1MDQwMlxcdTA0OTBcXHUwNDA0XFx1MDQwNVxcdTA0MDZcXHUwNDA3XFx1MDQwOFxcdTA0MDlcXHUwNDBBXFx1MDQwQlxcdTA0MENcXHhBRFxcdTA0MEVcXHUwNDBGXFx1MDQxMFxcdTA0MTFcXHUwNDEyXFx1MDQxM1xcdTA0MTRcXHUwNDE1XFx1MDQxNlxcdTA0MTdcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDI0XFx1MDQyNVxcdTA0MjZcXHUwNDI3XFx1MDQyOFxcdTA0MjlcXHUwNDJBXFx1MDQyQlxcdTA0MkNcXHUwNDJEXFx1MDQyRVxcdTA0MkZcXHUwNDMwXFx1MDQzMVxcdTA0MzJcXHUwNDMzXFx1MDQzNFxcdTA0MzVcXHUwNDM2XFx1MDQzN1xcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0NDRcXHUwNDQ1XFx1MDQ0NlxcdTA0NDdcXHUwNDQ4XFx1MDQ0OVxcdTA0NEFcXHUwNDRCXFx1MDQ0Q1xcdTA0NERcXHUwNDRFXFx1MDQ0RlxcdTIxMTZcXHUwNDUxXFx1MDQ1MlxcdTA0OTFcXHUwNDU0XFx1MDQ1NVxcdTA0NTZcXHUwNDU3XFx1MDQ1OFxcdTA0NTlcXHUwNDVBXFx1MDQ1QlxcdTA0NUNcXHhBN1xcdTA0NUVcXHUwNDVGXCJcbiAgICAgIH0sXG4gICAgICBcImlibTExMjRcIjogXCJjcDExMjRcIixcbiAgICAgIFwiY3NpYm0xMTI0XCI6IFwiY3AxMTI0XCIsXG4gICAgICBcImNwMTEyNVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXFx1MDQwMVxcdTA0NTFcXHUwNDkwXFx1MDQ5MVxcdTA0MDRcXHUwNDU0XFx1MDQwNlxcdTA0NTZcXHUwNDA3XFx1MDQ1N1xceEI3XFx1MjIxQVxcdTIxMTZcXHhBNFxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm0xMTI1XCI6IFwiY3AxMTI1XCIsXG4gICAgICBcImNzaWJtMTEyNVwiOiBcImNwMTEyNVwiLFxuICAgICAgXCJjcDExMjlcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx4QTFcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHUwMTUzXFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xcdTAxNzhcXHhCNVxceEI2XFx4QjdcXHUwMTUyXFx4QjlcXHhCQVxceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHhDMFxceEMxXFx4QzJcXHUwMTAyXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxcdTAzMDBcXHhDRFxceENFXFx4Q0ZcXHUwMTEwXFx4RDFcXHUwMzA5XFx4RDNcXHhENFxcdTAxQTBcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xcdTAxQUZcXHUwMzAzXFx4REZcXHhFMFxceEUxXFx4RTJcXHUwMTAzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxcdTAzMDFcXHhFRFxceEVFXFx4RUZcXHUwMTExXFx4RjFcXHUwMzIzXFx4RjNcXHhGNFxcdTAxQTFcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xcdTAxQjBcXHUyMEFCXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTEyOVwiOiBcImNwMTEyOVwiLFxuICAgICAgXCJjc2libTExMjlcIjogXCJjcDExMjlcIixcbiAgICAgIFwiY3AxMTMzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODdcXHUwRTg4XFx1MEVBQVxcdTBFOEFcXHUwRThEXFx1MEU5NFxcdTBFOTVcXHUwRTk2XFx1MEU5N1xcdTBFOTlcXHUwRTlBXFx1MEU5QlxcdTBFOUNcXHUwRTlEXFx1MEU5RVxcdTBFOUZcXHUwRUExXFx1MEVBMlxcdTBFQTNcXHUwRUE1XFx1MEVBN1xcdTBFQUJcXHUwRUFEXFx1MEVBRVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTBFQUZcXHUwRUIwXFx1MEVCMlxcdTBFQjNcXHUwRUI0XFx1MEVCNVxcdTBFQjZcXHUwRUI3XFx1MEVCOFxcdTBFQjlcXHUwRUJDXFx1MEVCMVxcdTBFQkJcXHUwRUJEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEVDMFxcdTBFQzFcXHUwRUMyXFx1MEVDM1xcdTBFQzRcXHUwRUM4XFx1MEVDOVxcdTBFQ0FcXHUwRUNCXFx1MEVDQ1xcdTBFQ0RcXHUwRUM2XFx1RkZGRFxcdTBFRENcXHUwRUREXFx1MjBBRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwRUQwXFx1MEVEMVxcdTBFRDJcXHUwRUQzXFx1MEVENFxcdTBFRDVcXHUwRUQ2XFx1MEVEN1xcdTBFRDhcXHUwRUQ5XFx1RkZGRFxcdUZGRkRcXHhBMlxceEFDXFx4QTZcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImlibTExMzNcIjogXCJjcDExMzNcIixcbiAgICAgIFwiY3NpYm0xMTMzXCI6IFwiY3AxMTMzXCIsXG4gICAgICBcImNwMTE2MVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTBFNDhcXHUwRTAxXFx1MEUwMlxcdTBFMDNcXHUwRTA0XFx1MEUwNVxcdTBFMDZcXHUwRTA3XFx1MEUwOFxcdTBFMDlcXHUwRTBBXFx1MEUwQlxcdTBFMENcXHUwRTBEXFx1MEUwRVxcdTBFMEZcXHUwRTEwXFx1MEUxMVxcdTBFMTJcXHUwRTEzXFx1MEUxNFxcdTBFMTVcXHUwRTE2XFx1MEUxN1xcdTBFMThcXHUwRTE5XFx1MEUxQVxcdTBFMUJcXHUwRTFDXFx1MEUxRFxcdTBFMUVcXHUwRTFGXFx1MEUyMFxcdTBFMjFcXHUwRTIyXFx1MEUyM1xcdTBFMjRcXHUwRTI1XFx1MEUyNlxcdTBFMjdcXHUwRTI4XFx1MEUyOVxcdTBFMkFcXHUwRTJCXFx1MEUyQ1xcdTBFMkRcXHUwRTJFXFx1MEUyRlxcdTBFMzBcXHUwRTMxXFx1MEUzMlxcdTBFMzNcXHUwRTM0XFx1MEUzNVxcdTBFMzZcXHUwRTM3XFx1MEUzOFxcdTBFMzlcXHUwRTNBXFx1MEU0OVxcdTBFNEFcXHUwRTRCXFx1MjBBQ1xcdTBFM0ZcXHUwRTQwXFx1MEU0MVxcdTBFNDJcXHUwRTQzXFx1MEU0NFxcdTBFNDVcXHUwRTQ2XFx1MEU0N1xcdTBFNDhcXHUwRTQ5XFx1MEU0QVxcdTBFNEJcXHUwRTRDXFx1MEU0RFxcdTBFNEVcXHUwRTRGXFx1MEU1MFxcdTBFNTFcXHUwRTUyXFx1MEU1M1xcdTBFNTRcXHUwRTU1XFx1MEU1NlxcdTBFNTdcXHUwRTU4XFx1MEU1OVxcdTBFNUFcXHUwRTVCXFx4QTJcXHhBQ1xceEE2XFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTE2MVwiOiBcImNwMTE2MVwiLFxuICAgICAgXCJjc2libTExNjFcIjogXCJjcDExNjFcIixcbiAgICAgIFwiY3AxMTYyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHg4MVxceDgyXFx4ODNcXHg4NFxcdTIwMjZcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTBFMDFcXHUwRTAyXFx1MEUwM1xcdTBFMDRcXHUwRTA1XFx1MEUwNlxcdTBFMDdcXHUwRTA4XFx1MEUwOVxcdTBFMEFcXHUwRTBCXFx1MEUwQ1xcdTBFMERcXHUwRTBFXFx1MEUwRlxcdTBFMTBcXHUwRTExXFx1MEUxMlxcdTBFMTNcXHUwRTE0XFx1MEUxNVxcdTBFMTZcXHUwRTE3XFx1MEUxOFxcdTBFMTlcXHUwRTFBXFx1MEUxQlxcdTBFMUNcXHUwRTFEXFx1MEUxRVxcdTBFMUZcXHUwRTIwXFx1MEUyMVxcdTBFMjJcXHUwRTIzXFx1MEUyNFxcdTBFMjVcXHUwRTI2XFx1MEUyN1xcdTBFMjhcXHUwRTI5XFx1MEUyQVxcdTBFMkJcXHUwRTJDXFx1MEUyRFxcdTBFMkVcXHUwRTJGXFx1MEUzMFxcdTBFMzFcXHUwRTMyXFx1MEUzM1xcdTBFMzRcXHUwRTM1XFx1MEUzNlxcdTBFMzdcXHUwRTM4XFx1MEUzOVxcdTBFM0FcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEUzRlxcdTBFNDBcXHUwRTQxXFx1MEU0MlxcdTBFNDNcXHUwRTQ0XFx1MEU0NVxcdTBFNDZcXHUwRTQ3XFx1MEU0OFxcdTBFNDlcXHUwRTRBXFx1MEU0QlxcdTBFNENcXHUwRTREXFx1MEU0RVxcdTBFNEZcXHUwRTUwXFx1MEU1MVxcdTBFNTJcXHUwRTUzXFx1MEU1NFxcdTBFNTVcXHUwRTU2XFx1MEU1N1xcdTBFNThcXHUwRTU5XFx1MEU1QVxcdTBFNUJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImlibTExNjJcIjogXCJjcDExNjJcIixcbiAgICAgIFwiY3NpYm0xMTYyXCI6IFwiY3AxMTYyXCIsXG4gICAgICBcImNwMTE2M1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHhBMVxceEEyXFx4QTNcXHUyMEFDXFx4QTVcXHhBNlxceEE3XFx1MDE1M1xceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHUwMTc4XFx4QjVcXHhCNlxceEI3XFx1MDE1MlxceEI5XFx4QkFcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx4QzBcXHhDMVxceEMyXFx1MDEwMlxceEM0XFx4QzVcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHUwMzAwXFx4Q0RcXHhDRVxceENGXFx1MDExMFxceEQxXFx1MDMwOVxceEQzXFx4RDRcXHUwMUEwXFx4RDZcXHhEN1xceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHUwMUFGXFx1MDMwM1xceERGXFx4RTBcXHhFMVxceEUyXFx1MDEwM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHUwMzAxXFx4RURcXHhFRVxceEVGXFx1MDExMVxceEYxXFx1MDMyM1xceEYzXFx4RjRcXHUwMUExXFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHUwMUIwXFx1MjBBQlxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImlibTExNjNcIjogXCJjcDExNjNcIixcbiAgICAgIFwiY3NpYm0xMTYzXCI6IFwiY3AxMTYzXCIsXG4gICAgICBcIm1hY2Nyb2F0aWFuXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM0XFx4QzVcXHhDN1xceEM5XFx4RDFcXHhENlxceERDXFx4RTFcXHhFMFxceEUyXFx4RTRcXHhFM1xceEU1XFx4RTdcXHhFOVxceEU4XFx4RUFcXHhFQlxceEVEXFx4RUNcXHhFRVxceEVGXFx4RjFcXHhGM1xceEYyXFx4RjRcXHhGNlxceEY1XFx4RkFcXHhGOVxceEZCXFx4RkNcXHUyMDIwXFx4QjBcXHhBMlxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHhERlxceEFFXFx1MDE2MFxcdTIxMjJcXHhCNFxceEE4XFx1MjI2MFxcdTAxN0RcXHhEOFxcdTIyMUVcXHhCMVxcdTIyNjRcXHUyMjY1XFx1MjIwNlxceEI1XFx1MjIwMlxcdTIyMTFcXHUyMjBGXFx1MDE2MVxcdTIyMkJcXHhBQVxceEJBXFx1MjEyNlxcdTAxN0VcXHhGOFxceEJGXFx4QTFcXHhBQ1xcdTIyMUFcXHUwMTkyXFx1MjI0OFxcdTAxMDZcXHhBQlxcdTAxMENcXHUyMDI2XFx4QTBcXHhDMFxceEMzXFx4RDVcXHUwMTUyXFx1MDE1M1xcdTAxMTBcXHUyMDE0XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MjVDQVxcdUZGRkRcXHhBOVxcdTIwNDRcXHhBNFxcdTIwMzlcXHUyMDNBXFx4QzZcXHhCQlxcdTIwMTNcXHhCN1xcdTIwMUFcXHUyMDFFXFx1MjAzMFxceEMyXFx1MDEwN1xceEMxXFx1MDEwRFxceEM4XFx4Q0RcXHhDRVxceENGXFx4Q0NcXHhEM1xceEQ0XFx1MDExMVxceEQyXFx4REFcXHhEQlxceEQ5XFx1MDEzMVxcdTAyQzZcXHUwMkRDXFx4QUZcXHUwM0MwXFx4Q0JcXHUwMkRBXFx4QjhcXHhDQVxceEU2XFx1MDJDN1wiXG4gICAgICB9LFxuICAgICAgXCJtYWNjeXJpbGxpY1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTIwMjBcXHhCMFxceEEyXFx4QTNcXHhBN1xcdTIwMjJcXHhCNlxcdTA0MDZcXHhBRVxceEE5XFx1MjEyMlxcdTA0MDJcXHUwNDUyXFx1MjI2MFxcdTA0MDNcXHUwNDUzXFx1MjIxRVxceEIxXFx1MjI2NFxcdTIyNjVcXHUwNDU2XFx4QjVcXHUyMjAyXFx1MDQwOFxcdTA0MDRcXHUwNDU0XFx1MDQwN1xcdTA0NTdcXHUwNDA5XFx1MDQ1OVxcdTA0MEFcXHUwNDVBXFx1MDQ1OFxcdTA0MDVcXHhBQ1xcdTIyMUFcXHUwMTkyXFx1MjI0OFxcdTIyMDZcXHhBQlxceEJCXFx1MjAyNlxceEEwXFx1MDQwQlxcdTA0NUJcXHUwNDBDXFx1MDQ1Q1xcdTA0NTVcXHUyMDEzXFx1MjAxNFxcdTIwMUNcXHUyMDFEXFx1MjAxOFxcdTIwMTlcXHhGN1xcdTIwMUVcXHUwNDBFXFx1MDQ1RVxcdTA0MEZcXHUwNDVGXFx1MjExNlxcdTA0MDFcXHUwNDUxXFx1MDQ0RlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHhBNFwiXG4gICAgICB9LFxuICAgICAgXCJtYWNncmVla1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDNFxceEI5XFx4QjJcXHhDOVxceEIzXFx4RDZcXHhEQ1xcdTAzODVcXHhFMFxceEUyXFx4RTRcXHUwMzg0XFx4QThcXHhFN1xceEU5XFx4RThcXHhFQVxceEVCXFx4QTNcXHUyMTIyXFx4RUVcXHhFRlxcdTIwMjJcXHhCRFxcdTIwMzBcXHhGNFxceEY2XFx4QTZcXHhBRFxceEY5XFx4RkJcXHhGQ1xcdTIwMjBcXHUwMzkzXFx1MDM5NFxcdTAzOThcXHUwMzlCXFx1MDM5RVxcdTAzQTBcXHhERlxceEFFXFx4QTlcXHUwM0EzXFx1MDNBQVxceEE3XFx1MjI2MFxceEIwXFx1MDM4N1xcdTAzOTFcXHhCMVxcdTIyNjRcXHUyMjY1XFx4QTVcXHUwMzkyXFx1MDM5NVxcdTAzOTZcXHUwMzk3XFx1MDM5OVxcdTAzOUFcXHUwMzlDXFx1MDNBNlxcdTAzQUJcXHUwM0E4XFx1MDNBOVxcdTAzQUNcXHUwMzlEXFx4QUNcXHUwMzlGXFx1MDNBMVxcdTIyNDhcXHUwM0E0XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxcdTAzQTVcXHUwM0E3XFx1MDM4NlxcdTAzODhcXHUwMTUzXFx1MjAxM1xcdTIwMTVcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUwMzg5XFx1MDM4QVxcdTAzOENcXHUwMzhFXFx1MDNBRFxcdTAzQUVcXHUwM0FGXFx1MDNDQ1xcdTAzOEZcXHUwM0NEXFx1MDNCMVxcdTAzQjJcXHUwM0M4XFx1MDNCNFxcdTAzQjVcXHUwM0M2XFx1MDNCM1xcdTAzQjdcXHUwM0I5XFx1MDNCRVxcdTAzQkFcXHUwM0JCXFx1MDNCQ1xcdTAzQkRcXHUwM0JGXFx1MDNDMFxcdTAzQ0VcXHUwM0MxXFx1MDNDM1xcdTAzQzRcXHUwM0I4XFx1MDNDOVxcdTAzQzJcXHUwM0M3XFx1MDNDNVxcdTAzQjZcXHUwM0NBXFx1MDNDQlxcdTAzOTBcXHUwM0IwXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJtYWNpY2VsYW5kXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM0XFx4QzVcXHhDN1xceEM5XFx4RDFcXHhENlxceERDXFx4RTFcXHhFMFxceEUyXFx4RTRcXHhFM1xceEU1XFx4RTdcXHhFOVxceEU4XFx4RUFcXHhFQlxceEVEXFx4RUNcXHhFRVxceEVGXFx4RjFcXHhGM1xceEYyXFx4RjRcXHhGNlxceEY1XFx4RkFcXHhGOVxceEZCXFx4RkNcXHhERFxceEIwXFx4QTJcXHhBM1xceEE3XFx1MjAyMlxceEI2XFx4REZcXHhBRVxceEE5XFx1MjEyMlxceEI0XFx4QThcXHUyMjYwXFx4QzZcXHhEOFxcdTIyMUVcXHhCMVxcdTIyNjRcXHUyMjY1XFx4QTVcXHhCNVxcdTIyMDJcXHUyMjExXFx1MjIwRlxcdTAzQzBcXHUyMjJCXFx4QUFcXHhCQVxcdTIxMjZcXHhFNlxceEY4XFx4QkZcXHhBMVxceEFDXFx1MjIxQVxcdTAxOTJcXHUyMjQ4XFx1MjIwNlxceEFCXFx4QkJcXHUyMDI2XFx4QTBcXHhDMFxceEMzXFx4RDVcXHUwMTUyXFx1MDE1M1xcdTIwMTNcXHUyMDE0XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MjVDQVxceEZGXFx1MDE3OFxcdTIwNDRcXHhBNFxceEQwXFx4RjBcXHhERVxceEZFXFx4RkRcXHhCN1xcdTIwMUFcXHUyMDFFXFx1MjAzMFxceEMyXFx4Q0FcXHhDMVxceENCXFx4QzhcXHhDRFxceENFXFx4Q0ZcXHhDQ1xceEQzXFx4RDRcXHVGRkZEXFx4RDJcXHhEQVxceERCXFx4RDlcXHUwMTMxXFx1MDJDNlxcdTAyRENcXHhBRlxcdTAyRDhcXHUwMkQ5XFx1MDJEQVxceEI4XFx1MDJERFxcdTAyREJcXHUwMkM3XCJcbiAgICAgIH0sXG4gICAgICBcIm1hY3JvbWFuXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM0XFx4QzVcXHhDN1xceEM5XFx4RDFcXHhENlxceERDXFx4RTFcXHhFMFxceEUyXFx4RTRcXHhFM1xceEU1XFx4RTdcXHhFOVxceEU4XFx4RUFcXHhFQlxceEVEXFx4RUNcXHhFRVxceEVGXFx4RjFcXHhGM1xceEYyXFx4RjRcXHhGNlxceEY1XFx4RkFcXHhGOVxceEZCXFx4RkNcXHUyMDIwXFx4QjBcXHhBMlxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHhERlxceEFFXFx4QTlcXHUyMTIyXFx4QjRcXHhBOFxcdTIyNjBcXHhDNlxceEQ4XFx1MjIxRVxceEIxXFx1MjI2NFxcdTIyNjVcXHhBNVxceEI1XFx1MjIwMlxcdTIyMTFcXHUyMjBGXFx1MDNDMFxcdTIyMkJcXHhBQVxceEJBXFx1MjEyNlxceEU2XFx4RjhcXHhCRlxceEExXFx4QUNcXHUyMjFBXFx1MDE5MlxcdTIyNDhcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxceEMwXFx4QzNcXHhENVxcdTAxNTJcXHUwMTUzXFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx4RkZcXHUwMTc4XFx1MjA0NFxceEE0XFx1MjAzOVxcdTIwM0FcXHVGQjAxXFx1RkIwMlxcdTIwMjFcXHhCN1xcdTIwMUFcXHUyMDFFXFx1MjAzMFxceEMyXFx4Q0FcXHhDMVxceENCXFx4QzhcXHhDRFxceENFXFx4Q0ZcXHhDQ1xceEQzXFx4RDRcXHVGRkZEXFx4RDJcXHhEQVxceERCXFx4RDlcXHUwMTMxXFx1MDJDNlxcdTAyRENcXHhBRlxcdTAyRDhcXHUwMkQ5XFx1MDJEQVxceEI4XFx1MDJERFxcdTAyREJcXHUwMkM3XCJcbiAgICAgIH0sXG4gICAgICBcIm1hY3JvbWFuaWFcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzRcXHhDNVxceEM3XFx4QzlcXHhEMVxceEQ2XFx4RENcXHhFMVxceEUwXFx4RTJcXHhFNFxceEUzXFx4RTVcXHhFN1xceEU5XFx4RThcXHhFQVxceEVCXFx4RURcXHhFQ1xceEVFXFx4RUZcXHhGMVxceEYzXFx4RjJcXHhGNFxceEY2XFx4RjVcXHhGQVxceEY5XFx4RkJcXHhGQ1xcdTIwMjBcXHhCMFxceEEyXFx4QTNcXHhBN1xcdTIwMjJcXHhCNlxceERGXFx4QUVcXHhBOVxcdTIxMjJcXHhCNFxceEE4XFx1MjI2MFxcdTAxMDJcXHUwMTVFXFx1MjIxRVxceEIxXFx1MjI2NFxcdTIyNjVcXHhBNVxceEI1XFx1MjIwMlxcdTIyMTFcXHUyMjBGXFx1MDNDMFxcdTIyMkJcXHhBQVxceEJBXFx1MjEyNlxcdTAxMDNcXHUwMTVGXFx4QkZcXHhBMVxceEFDXFx1MjIxQVxcdTAxOTJcXHUyMjQ4XFx1MjIwNlxceEFCXFx4QkJcXHUyMDI2XFx4QTBcXHhDMFxceEMzXFx4RDVcXHUwMTUyXFx1MDE1M1xcdTIwMTNcXHUyMDE0XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MjVDQVxceEZGXFx1MDE3OFxcdTIwNDRcXHhBNFxcdTIwMzlcXHUyMDNBXFx1MDE2MlxcdTAxNjNcXHUyMDIxXFx4QjdcXHUyMDFBXFx1MjAxRVxcdTIwMzBcXHhDMlxceENBXFx4QzFcXHhDQlxceEM4XFx4Q0RcXHhDRVxceENGXFx4Q0NcXHhEM1xceEQ0XFx1RkZGRFxceEQyXFx4REFcXHhEQlxceEQ5XFx1MDEzMVxcdTAyQzZcXHUwMkRDXFx4QUZcXHUwMkQ4XFx1MDJEOVxcdTAyREFcXHhCOFxcdTAyRERcXHUwMkRCXFx1MDJDN1wiXG4gICAgICB9LFxuICAgICAgXCJtYWN0aGFpXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEFCXFx4QkJcXHUyMDI2XFx1Rjg4Q1xcdUY4OEZcXHVGODkyXFx1Rjg5NVxcdUY4OThcXHVGODhCXFx1Rjg4RVxcdUY4OTFcXHVGODk0XFx1Rjg5N1xcdTIwMUNcXHUyMDFEXFx1Rjg5OVxcdUZGRkRcXHUyMDIyXFx1Rjg4NFxcdUY4ODlcXHVGODg1XFx1Rjg4NlxcdUY4ODdcXHVGODg4XFx1Rjg4QVxcdUY4OERcXHVGODkwXFx1Rjg5M1xcdUY4OTZcXHUyMDE4XFx1MjAxOVxcdUZGRkRcXHhBMFxcdTBFMDFcXHUwRTAyXFx1MEUwM1xcdTBFMDRcXHUwRTA1XFx1MEUwNlxcdTBFMDdcXHUwRTA4XFx1MEUwOVxcdTBFMEFcXHUwRTBCXFx1MEUwQ1xcdTBFMERcXHUwRTBFXFx1MEUwRlxcdTBFMTBcXHUwRTExXFx1MEUxMlxcdTBFMTNcXHUwRTE0XFx1MEUxNVxcdTBFMTZcXHUwRTE3XFx1MEUxOFxcdTBFMTlcXHUwRTFBXFx1MEUxQlxcdTBFMUNcXHUwRTFEXFx1MEUxRVxcdTBFMUZcXHUwRTIwXFx1MEUyMVxcdTBFMjJcXHUwRTIzXFx1MEUyNFxcdTBFMjVcXHUwRTI2XFx1MEUyN1xcdTBFMjhcXHUwRTI5XFx1MEUyQVxcdTBFMkJcXHUwRTJDXFx1MEUyRFxcdTBFMkVcXHUwRTJGXFx1MEUzMFxcdTBFMzFcXHUwRTMyXFx1MEUzM1xcdTBFMzRcXHUwRTM1XFx1MEUzNlxcdTBFMzdcXHUwRTM4XFx1MEUzOVxcdTBFM0FcXHVGRUZGXFx1MjAwQlxcdTIwMTNcXHUyMDE0XFx1MEUzRlxcdTBFNDBcXHUwRTQxXFx1MEU0MlxcdTBFNDNcXHUwRTQ0XFx1MEU0NVxcdTBFNDZcXHUwRTQ3XFx1MEU0OFxcdTBFNDlcXHUwRTRBXFx1MEU0QlxcdTBFNENcXHUwRTREXFx1MjEyMlxcdTBFNEZcXHUwRTUwXFx1MEU1MVxcdTBFNTJcXHUwRTUzXFx1MEU1NFxcdTBFNTVcXHUwRTU2XFx1MEU1N1xcdTBFNThcXHUwRTU5XFx4QUVcXHhBOVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwibWFjdHVya2lzaFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDNFxceEM1XFx4QzdcXHhDOVxceEQxXFx4RDZcXHhEQ1xceEUxXFx4RTBcXHhFMlxceEU0XFx4RTNcXHhFNVxceEU3XFx4RTlcXHhFOFxceEVBXFx4RUJcXHhFRFxceEVDXFx4RUVcXHhFRlxceEYxXFx4RjNcXHhGMlxceEY0XFx4RjZcXHhGNVxceEZBXFx4RjlcXHhGQlxceEZDXFx1MjAyMFxceEIwXFx4QTJcXHhBM1xceEE3XFx1MjAyMlxceEI2XFx4REZcXHhBRVxceEE5XFx1MjEyMlxceEI0XFx4QThcXHUyMjYwXFx4QzZcXHhEOFxcdTIyMUVcXHhCMVxcdTIyNjRcXHUyMjY1XFx4QTVcXHhCNVxcdTIyMDJcXHUyMjExXFx1MjIwRlxcdTAzQzBcXHUyMjJCXFx4QUFcXHhCQVxcdTIxMjZcXHhFNlxceEY4XFx4QkZcXHhBMVxceEFDXFx1MjIxQVxcdTAxOTJcXHUyMjQ4XFx1MjIwNlxceEFCXFx4QkJcXHUyMDI2XFx4QTBcXHhDMFxceEMzXFx4RDVcXHUwMTUyXFx1MDE1M1xcdTIwMTNcXHUyMDE0XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MjVDQVxceEZGXFx1MDE3OFxcdTAxMUVcXHUwMTFGXFx1MDEzMFxcdTAxMzFcXHUwMTVFXFx1MDE1RlxcdTIwMjFcXHhCN1xcdTIwMUFcXHUyMDFFXFx1MjAzMFxceEMyXFx4Q0FcXHhDMVxceENCXFx4QzhcXHhDRFxceENFXFx4Q0ZcXHhDQ1xceEQzXFx4RDRcXHVGRkZEXFx4RDJcXHhEQVxceERCXFx4RDlcXHVGRkZEXFx1MDJDNlxcdTAyRENcXHhBRlxcdTAyRDhcXHUwMkQ5XFx1MDJEQVxceEI4XFx1MDJERFxcdTAyREJcXHUwMkM3XCJcbiAgICAgIH0sXG4gICAgICBcIm1hY3VrcmFpbmVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQxMFxcdTA0MTFcXHUwNDEyXFx1MDQxM1xcdTA0MTRcXHUwNDE1XFx1MDQxNlxcdTA0MTdcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDI0XFx1MDQyNVxcdTA0MjZcXHUwNDI3XFx1MDQyOFxcdTA0MjlcXHUwNDJBXFx1MDQyQlxcdTA0MkNcXHUwNDJEXFx1MDQyRVxcdTA0MkZcXHUyMDIwXFx4QjBcXHUwNDkwXFx4QTNcXHhBN1xcdTIwMjJcXHhCNlxcdTA0MDZcXHhBRVxceEE5XFx1MjEyMlxcdTA0MDJcXHUwNDUyXFx1MjI2MFxcdTA0MDNcXHUwNDUzXFx1MjIxRVxceEIxXFx1MjI2NFxcdTIyNjVcXHUwNDU2XFx4QjVcXHUwNDkxXFx1MDQwOFxcdTA0MDRcXHUwNDU0XFx1MDQwN1xcdTA0NTdcXHUwNDA5XFx1MDQ1OVxcdTA0MEFcXHUwNDVBXFx1MDQ1OFxcdTA0MDVcXHhBQ1xcdTIyMUFcXHUwMTkyXFx1MjI0OFxcdTIyMDZcXHhBQlxceEJCXFx1MjAyNlxceEEwXFx1MDQwQlxcdTA0NUJcXHUwNDBDXFx1MDQ1Q1xcdTA0NTVcXHUyMDEzXFx1MjAxNFxcdTIwMUNcXHUyMDFEXFx1MjAxOFxcdTIwMTlcXHhGN1xcdTIwMUVcXHUwNDBFXFx1MDQ1RVxcdTA0MEZcXHUwNDVGXFx1MjExNlxcdTA0MDFcXHUwNDUxXFx1MDQ0RlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHhBNFwiXG4gICAgICB9LFxuICAgICAgXCJrb2k4clwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyNTAwXFx1MjUwMlxcdTI1MENcXHUyNTEwXFx1MjUxNFxcdTI1MThcXHUyNTFDXFx1MjUyNFxcdTI1MkNcXHUyNTM0XFx1MjUzQ1xcdTI1ODBcXHUyNTg0XFx1MjU4OFxcdTI1OENcXHUyNTkwXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjMyMFxcdTI1QTBcXHUyMjE5XFx1MjIxQVxcdTIyNDhcXHUyMjY0XFx1MjI2NVxceEEwXFx1MjMyMVxceEIwXFx4QjJcXHhCN1xceEY3XFx1MjU1MFxcdTI1NTFcXHUyNTUyXFx1MDQ1MVxcdTI1NTNcXHUyNTU0XFx1MjU1NVxcdTI1NTZcXHUyNTU3XFx1MjU1OFxcdTI1NTlcXHUyNTVBXFx1MjU1QlxcdTI1NUNcXHUyNTVEXFx1MjU1RVxcdTI1NUZcXHUyNTYwXFx1MjU2MVxcdTA0MDFcXHUyNTYyXFx1MjU2M1xcdTI1NjRcXHUyNTY1XFx1MjU2NlxcdTI1NjdcXHUyNTY4XFx1MjU2OVxcdTI1NkFcXHUyNTZCXFx1MjU2Q1xceEE5XFx1MDQ0RVxcdTA0MzBcXHUwNDMxXFx1MDQ0NlxcdTA0MzRcXHUwNDM1XFx1MDQ0NFxcdTA0MzNcXHUwNDQ1XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDRGXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0MzZcXHUwNDMyXFx1MDQ0Q1xcdTA0NEJcXHUwNDM3XFx1MDQ0OFxcdTA0NERcXHUwNDQ5XFx1MDQ0N1xcdTA0NEFcXHUwNDJFXFx1MDQxMFxcdTA0MTFcXHUwNDI2XFx1MDQxNFxcdTA0MTVcXHUwNDI0XFx1MDQxM1xcdTA0MjVcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MkZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQxNlxcdTA0MTJcXHUwNDJDXFx1MDQyQlxcdTA0MTdcXHUwNDI4XFx1MDQyRFxcdTA0MjlcXHUwNDI3XFx1MDQyQVwiXG4gICAgICB9LFxuICAgICAgXCJrb2k4dVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyNTAwXFx1MjUwMlxcdTI1MENcXHUyNTEwXFx1MjUxNFxcdTI1MThcXHUyNTFDXFx1MjUyNFxcdTI1MkNcXHUyNTM0XFx1MjUzQ1xcdTI1ODBcXHUyNTg0XFx1MjU4OFxcdTI1OENcXHUyNTkwXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjMyMFxcdTI1QTBcXHUyMjE5XFx1MjIxQVxcdTIyNDhcXHUyMjY0XFx1MjI2NVxceEEwXFx1MjMyMVxceEIwXFx4QjJcXHhCN1xceEY3XFx1MjU1MFxcdTI1NTFcXHUyNTUyXFx1MDQ1MVxcdTA0NTRcXHUyNTU0XFx1MDQ1NlxcdTA0NTdcXHUyNTU3XFx1MjU1OFxcdTI1NTlcXHUyNTVBXFx1MjU1QlxcdTA0OTFcXHUyNTVEXFx1MjU1RVxcdTI1NUZcXHUyNTYwXFx1MjU2MVxcdTA0MDFcXHUwNDA0XFx1MjU2M1xcdTA0MDZcXHUwNDA3XFx1MjU2NlxcdTI1NjdcXHUyNTY4XFx1MjU2OVxcdTI1NkFcXHUwNDkwXFx1MjU2Q1xceEE5XFx1MDQ0RVxcdTA0MzBcXHUwNDMxXFx1MDQ0NlxcdTA0MzRcXHUwNDM1XFx1MDQ0NFxcdTA0MzNcXHUwNDQ1XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDRGXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0MzZcXHUwNDMyXFx1MDQ0Q1xcdTA0NEJcXHUwNDM3XFx1MDQ0OFxcdTA0NERcXHUwNDQ5XFx1MDQ0N1xcdTA0NEFcXHUwNDJFXFx1MDQxMFxcdTA0MTFcXHUwNDI2XFx1MDQxNFxcdTA0MTVcXHUwNDI0XFx1MDQxM1xcdTA0MjVcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MkZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQxNlxcdTA0MTJcXHUwNDJDXFx1MDQyQlxcdTA0MTdcXHUwNDI4XFx1MDQyRFxcdTA0MjlcXHUwNDI3XFx1MDQyQVwiXG4gICAgICB9LFxuICAgICAgXCJrb2k4cnVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjUwMFxcdTI1MDJcXHUyNTBDXFx1MjUxMFxcdTI1MTRcXHUyNTE4XFx1MjUxQ1xcdTI1MjRcXHUyNTJDXFx1MjUzNFxcdTI1M0NcXHUyNTgwXFx1MjU4NFxcdTI1ODhcXHUyNThDXFx1MjU5MFxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTIzMjBcXHUyNUEwXFx1MjIxOVxcdTIyMUFcXHUyMjQ4XFx1MjI2NFxcdTIyNjVcXHhBMFxcdTIzMjFcXHhCMFxceEIyXFx4QjdcXHhGN1xcdTI1NTBcXHUyNTUxXFx1MjU1MlxcdTA0NTFcXHUwNDU0XFx1MjU1NFxcdTA0NTZcXHUwNDU3XFx1MjU1N1xcdTI1NThcXHUyNTU5XFx1MjU1QVxcdTI1NUJcXHUwNDkxXFx1MDQ1RVxcdTI1NUVcXHUyNTVGXFx1MjU2MFxcdTI1NjFcXHUwNDAxXFx1MDQwNFxcdTI1NjNcXHUwNDA2XFx1MDQwN1xcdTI1NjZcXHUyNTY3XFx1MjU2OFxcdTI1NjlcXHUyNTZBXFx1MDQ5MFxcdTA0MEVcXHhBOVxcdTA0NEVcXHUwNDMwXFx1MDQzMVxcdTA0NDZcXHUwNDM0XFx1MDQzNVxcdTA0NDRcXHUwNDMzXFx1MDQ0NVxcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MDQ0RlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDM2XFx1MDQzMlxcdTA0NENcXHUwNDRCXFx1MDQzN1xcdTA0NDhcXHUwNDREXFx1MDQ0OVxcdTA0NDdcXHUwNDRBXFx1MDQyRVxcdTA0MTBcXHUwNDExXFx1MDQyNlxcdTA0MTRcXHUwNDE1XFx1MDQyNFxcdTA0MTNcXHUwNDI1XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDJGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MTZcXHUwNDEyXFx1MDQyQ1xcdTA0MkJcXHUwNDE3XFx1MDQyOFxcdTA0MkRcXHUwNDI5XFx1MDQyN1xcdTA0MkFcIlxuICAgICAgfSxcbiAgICAgIFwia29pOHRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQ5QlxcdTA0OTNcXHUyMDFBXFx1MDQ5MlxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHVGRkZEXFx1MjAzMFxcdTA0QjNcXHUyMDM5XFx1MDRCMlxcdTA0QjdcXHUwNEI2XFx1RkZGRFxcdTA0OUFcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1RkZGRFxcdTIxMjJcXHVGRkZEXFx1MjAzQVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MDRFRlxcdTA0RUVcXHUwNDUxXFx4QTRcXHUwNEUzXFx4QTZcXHhBN1xcdUZGRkRcXHVGRkZEXFx1RkZGRFxceEFCXFx4QUNcXHhBRFxceEFFXFx1RkZGRFxceEIwXFx4QjFcXHhCMlxcdTA0MDFcXHVGRkZEXFx1MDRFMlxceEI2XFx4QjdcXHVGRkZEXFx1MjExNlxcdUZGRkRcXHhCQlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxceEE5XFx1MDQ0RVxcdTA0MzBcXHUwNDMxXFx1MDQ0NlxcdTA0MzRcXHUwNDM1XFx1MDQ0NFxcdTA0MzNcXHUwNDQ1XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDRGXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0MzZcXHUwNDMyXFx1MDQ0Q1xcdTA0NEJcXHUwNDM3XFx1MDQ0OFxcdTA0NERcXHUwNDQ5XFx1MDQ0N1xcdTA0NEFcXHUwNDJFXFx1MDQxMFxcdTA0MTFcXHUwNDI2XFx1MDQxNFxcdTA0MTVcXHUwNDI0XFx1MDQxM1xcdTA0MjVcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MkZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQxNlxcdTA0MTJcXHUwNDJDXFx1MDQyQlxcdTA0MTdcXHUwNDI4XFx1MDQyRFxcdTA0MjlcXHUwNDI3XFx1MDQyQVwiXG4gICAgICB9LFxuICAgICAgXCJhcm1zY2lpOFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHVGRkZEXFx1MDU4N1xcdTA1ODkpKFxceEJCXFx4QUJcXHUyMDE0LlxcdTA1NUQsLVxcdTA1OEFcXHUyMDI2XFx1MDU1Q1xcdTA1NUJcXHUwNTVFXFx1MDUzMVxcdTA1NjFcXHUwNTMyXFx1MDU2MlxcdTA1MzNcXHUwNTYzXFx1MDUzNFxcdTA1NjRcXHUwNTM1XFx1MDU2NVxcdTA1MzZcXHUwNTY2XFx1MDUzN1xcdTA1NjdcXHUwNTM4XFx1MDU2OFxcdTA1MzlcXHUwNTY5XFx1MDUzQVxcdTA1NkFcXHUwNTNCXFx1MDU2QlxcdTA1M0NcXHUwNTZDXFx1MDUzRFxcdTA1NkRcXHUwNTNFXFx1MDU2RVxcdTA1M0ZcXHUwNTZGXFx1MDU0MFxcdTA1NzBcXHUwNTQxXFx1MDU3MVxcdTA1NDJcXHUwNTcyXFx1MDU0M1xcdTA1NzNcXHUwNTQ0XFx1MDU3NFxcdTA1NDVcXHUwNTc1XFx1MDU0NlxcdTA1NzZcXHUwNTQ3XFx1MDU3N1xcdTA1NDhcXHUwNTc4XFx1MDU0OVxcdTA1NzlcXHUwNTRBXFx1MDU3QVxcdTA1NEJcXHUwNTdCXFx1MDU0Q1xcdTA1N0NcXHUwNTREXFx1MDU3RFxcdTA1NEVcXHUwNTdFXFx1MDU0RlxcdTA1N0ZcXHUwNTUwXFx1MDU4MFxcdTA1NTFcXHUwNTgxXFx1MDU1MlxcdTA1ODJcXHUwNTUzXFx1MDU4M1xcdTA1NTRcXHUwNTg0XFx1MDU1NVxcdTA1ODVcXHUwNTU2XFx1MDU4NlxcdTA1NUFcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcInJrMTA0OFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDAyXFx1MDQwM1xcdTIwMUFcXHUwNDUzXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdTIwQUNcXHUyMDMwXFx1MDQwOVxcdTIwMzlcXHUwNDBBXFx1MDQ5QVxcdTA0QkFcXHUwNDBGXFx1MDQ1MlxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHVGRkZEXFx1MjEyMlxcdTA0NTlcXHUyMDNBXFx1MDQ1QVxcdTA0OUJcXHUwNEJCXFx1MDQ1RlxceEEwXFx1MDRCMFxcdTA0QjFcXHUwNEQ4XFx4QTRcXHUwNEU4XFx4QTZcXHhBN1xcdTA0MDFcXHhBOVxcdTA0OTJcXHhBQlxceEFDXFx4QURcXHhBRVxcdTA0QUVcXHhCMFxceEIxXFx1MDQwNlxcdTA0NTZcXHUwNEU5XFx4QjVcXHhCNlxceEI3XFx1MDQ1MVxcdTIxMTZcXHUwNDkzXFx4QkJcXHUwNEQ5XFx1MDRBMlxcdTA0QTNcXHUwNEFGXFx1MDQxMFxcdTA0MTFcXHUwNDEyXFx1MDQxM1xcdTA0MTRcXHUwNDE1XFx1MDQxNlxcdTA0MTdcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDI0XFx1MDQyNVxcdTA0MjZcXHUwNDI3XFx1MDQyOFxcdTA0MjlcXHUwNDJBXFx1MDQyQlxcdTA0MkNcXHUwNDJEXFx1MDQyRVxcdTA0MkZcXHUwNDMwXFx1MDQzMVxcdTA0MzJcXHUwNDMzXFx1MDQzNFxcdTA0MzVcXHUwNDM2XFx1MDQzN1xcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0NDRcXHUwNDQ1XFx1MDQ0NlxcdTA0NDdcXHUwNDQ4XFx1MDQ0OVxcdTA0NEFcXHUwNDRCXFx1MDQ0Q1xcdTA0NERcXHUwNDRFXFx1MDQ0RlwiXG4gICAgICB9LFxuICAgICAgXCJ0Y3ZuXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcMFxceERBXFx1MUVFNFx1MDAwM1xcdTFFRUFcXHUxRUVDXFx1MUVFRVxceDA3XFxiXHRcXG5cXHZcXGZcXHJcdTAwMEVcdTAwMEZcdTAwMTBcXHUxRUU4XFx1MUVGMFxcdTFFRjJcXHUxRUY2XFx1MUVGOFxceEREXFx1MUVGNFx1MDAxOFx1MDAxOVx1MDAxQVxceDFCXHUwMDFDXHUwMDFEXHUwMDFFXHUwMDFGICFcXFwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5cXHg3RlxceEMwXFx1MUVBMlxceEMzXFx4QzFcXHUxRUEwXFx1MUVCNlxcdTFFQUNcXHhDOFxcdTFFQkFcXHUxRUJDXFx4QzlcXHUxRUI4XFx1MUVDNlxceENDXFx1MUVDOFxcdTAxMjhcXHhDRFxcdTFFQ0FcXHhEMlxcdTFFQ0VcXHhENVxceEQzXFx1MUVDQ1xcdTFFRDhcXHUxRURDXFx1MUVERVxcdTFFRTBcXHUxRURBXFx1MUVFMlxceEQ5XFx1MUVFNlxcdTAxNjhcXHhBMFxcdTAxMDJcXHhDMlxceENBXFx4RDRcXHUwMUEwXFx1MDFBRlxcdTAxMTBcXHUwMTAzXFx4RTJcXHhFQVxceEY0XFx1MDFBMVxcdTAxQjBcXHUwMTExXFx1MUVCMFxcdTAzMDBcXHUwMzA5XFx1MDMwM1xcdTAzMDFcXHUwMzIzXFx4RTBcXHUxRUEzXFx4RTNcXHhFMVxcdTFFQTFcXHUxRUIyXFx1MUVCMVxcdTFFQjNcXHUxRUI1XFx1MUVBRlxcdTFFQjRcXHUxRUFFXFx1MUVBNlxcdTFFQThcXHUxRUFBXFx1MUVBNFxcdTFFQzBcXHUxRUI3XFx1MUVBN1xcdTFFQTlcXHUxRUFCXFx1MUVBNVxcdTFFQURcXHhFOFxcdTFFQzJcXHUxRUJCXFx1MUVCRFxceEU5XFx1MUVCOVxcdTFFQzFcXHUxRUMzXFx1MUVDNVxcdTFFQkZcXHUxRUM3XFx4RUNcXHUxRUM5XFx1MUVDNFxcdTFFQkVcXHUxRUQyXFx1MDEyOVxceEVEXFx1MUVDQlxceEYyXFx1MUVENFxcdTFFQ0ZcXHhGNVxceEYzXFx1MUVDRFxcdTFFRDNcXHUxRUQ1XFx1MUVEN1xcdTFFRDFcXHUxRUQ5XFx1MUVERFxcdTFFREZcXHUxRUUxXFx1MUVEQlxcdTFFRTNcXHhGOVxcdTFFRDZcXHUxRUU3XFx1MDE2OVxceEZBXFx1MUVFNVxcdTFFRUJcXHUxRUVEXFx1MUVFRlxcdTFFRTlcXHUxRUYxXFx1MUVGM1xcdTFFRjdcXHUxRUY5XFx4RkRcXHUxRUY1XFx1MUVEMFwiXG4gICAgICB9LFxuICAgICAgXCJnZW9yZ2lhbmFjYWRlbXlcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxcdTIwMUFcXHUwMTkyXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdTAyQzZcXHUyMDMwXFx1MDE2MFxcdTIwMzlcXHUwMTUyXFx4OERcXHg4RVxceDhGXFx4OTBcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDJEQ1xcdTIxMjJcXHUwMTYxXFx1MjAzQVxcdTAxNTNcXHg5RFxceDlFXFx1MDE3OFxceEEwXFx4QTFcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx4QjlcXHhCQVxceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHUxMEQwXFx1MTBEMVxcdTEwRDJcXHUxMEQzXFx1MTBENFxcdTEwRDVcXHUxMEQ2XFx1MTBEN1xcdTEwRDhcXHUxMEQ5XFx1MTBEQVxcdTEwREJcXHUxMERDXFx1MTBERFxcdTEwREVcXHUxMERGXFx1MTBFMFxcdTEwRTFcXHUxMEUyXFx1MTBFM1xcdTEwRTRcXHUxMEU1XFx1MTBFNlxcdTEwRTdcXHUxMEU4XFx1MTBFOVxcdTEwRUFcXHUxMEVCXFx1MTBFQ1xcdTEwRURcXHUxMEVFXFx1MTBFRlxcdTEwRjBcXHUxMEYxXFx1MTBGMlxcdTEwRjNcXHUxMEY0XFx1MTBGNVxcdTEwRjZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHhGMFxceEYxXFx4RjJcXHhGM1xceEY0XFx4RjVcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xceEZEXFx4RkVcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJnZW9yZ2lhbnBzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHUyMDFBXFx1MDE5MlxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUwMkM2XFx1MjAzMFxcdTAxNjBcXHUyMDM5XFx1MDE1MlxceDhEXFx4OEVcXHg4RlxceDkwXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdTAyRENcXHUyMTIyXFx1MDE2MVxcdTIwM0FcXHUwMTUzXFx4OURcXHg5RVxcdTAxNzhcXHhBMFxceEExXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4QkFcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx1MTBEMFxcdTEwRDFcXHUxMEQyXFx1MTBEM1xcdTEwRDRcXHUxMEQ1XFx1MTBENlxcdTEwRjFcXHUxMEQ3XFx1MTBEOFxcdTEwRDlcXHUxMERBXFx1MTBEQlxcdTEwRENcXHUxMEYyXFx1MTBERFxcdTEwREVcXHUxMERGXFx1MTBFMFxcdTEwRTFcXHUxMEUyXFx1MTBGM1xcdTEwRTNcXHUxMEU0XFx1MTBFNVxcdTEwRTZcXHUxMEU3XFx1MTBFOFxcdTEwRTlcXHUxMEVBXFx1MTBFQlxcdTEwRUNcXHUxMEVEXFx1MTBFRVxcdTEwRjRcXHUxMEVGXFx1MTBGMFxcdTEwRjVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxceEYwXFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx4RkRcXHhGRVxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcInB0MTU0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0OTZcXHUwNDkyXFx1MDRFRVxcdTA0OTNcXHUyMDFFXFx1MjAyNlxcdTA0QjZcXHUwNEFFXFx1MDRCMlxcdTA0QUZcXHUwNEEwXFx1MDRFMlxcdTA0QTJcXHUwNDlBXFx1MDRCQVxcdTA0QjhcXHUwNDk3XFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdTA0QjNcXHUwNEI3XFx1MDRBMVxcdTA0RTNcXHUwNEEzXFx1MDQ5QlxcdTA0QkJcXHUwNEI5XFx4QTBcXHUwNDBFXFx1MDQ1RVxcdTA0MDhcXHUwNEU4XFx1MDQ5OFxcdTA0QjBcXHhBN1xcdTA0MDFcXHhBOVxcdTA0RDhcXHhBQlxceEFDXFx1MDRFRlxceEFFXFx1MDQ5Q1xceEIwXFx1MDRCMVxcdTA0MDZcXHUwNDU2XFx1MDQ5OVxcdTA0RTlcXHhCNlxceEI3XFx1MDQ1MVxcdTIxMTZcXHUwNEQ5XFx4QkJcXHUwNDU4XFx1MDRBQVxcdTA0QUJcXHUwNDlEXFx1MDQxMFxcdTA0MTFcXHUwNDEyXFx1MDQxM1xcdTA0MTRcXHUwNDE1XFx1MDQxNlxcdTA0MTdcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDI0XFx1MDQyNVxcdTA0MjZcXHUwNDI3XFx1MDQyOFxcdTA0MjlcXHUwNDJBXFx1MDQyQlxcdTA0MkNcXHUwNDJEXFx1MDQyRVxcdTA0MkZcXHUwNDMwXFx1MDQzMVxcdTA0MzJcXHUwNDMzXFx1MDQzNFxcdTA0MzVcXHUwNDM2XFx1MDQzN1xcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0NDRcXHUwNDQ1XFx1MDQ0NlxcdTA0NDdcXHUwNDQ4XFx1MDQ0OVxcdTA0NEFcXHUwNDRCXFx1MDQ0Q1xcdTA0NERcXHUwNDRFXFx1MDQ0RlwiXG4gICAgICB9LFxuICAgICAgXCJ2aXNjaWlcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFwwXHUwMDAxXFx1MUVCMlx1MDAwM1x1MDAwNFxcdTFFQjRcXHUxRUFBXFx4MDdcXGJcdFxcblxcdlxcZlxcclx1MDAwRVx1MDAwRlx1MDAxMFx1MDAxMVx1MDAxMlx1MDAxM1xcdTFFRjZcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcXHUxRUY4XHUwMDFBXFx4MUJcdTAwMUNcdTAwMURcXHUxRUY0XHUwMDFGICFcXFwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5cXHg3RlxcdTFFQTBcXHUxRUFFXFx1MUVCMFxcdTFFQjZcXHUxRUE0XFx1MUVBNlxcdTFFQThcXHUxRUFDXFx1MUVCQ1xcdTFFQjhcXHUxRUJFXFx1MUVDMFxcdTFFQzJcXHUxRUM0XFx1MUVDNlxcdTFFRDBcXHUxRUQyXFx1MUVENFxcdTFFRDZcXHUxRUQ4XFx1MUVFMlxcdTFFREFcXHUxRURDXFx1MUVERVxcdTFFQ0FcXHUxRUNFXFx1MUVDQ1xcdTFFQzhcXHUxRUU2XFx1MDE2OFxcdTFFRTRcXHUxRUYyXFx4RDVcXHUxRUFGXFx1MUVCMVxcdTFFQjdcXHUxRUE1XFx1MUVBN1xcdTFFQTlcXHUxRUFEXFx1MUVCRFxcdTFFQjlcXHUxRUJGXFx1MUVDMVxcdTFFQzNcXHUxRUM1XFx1MUVDN1xcdTFFRDFcXHUxRUQzXFx1MUVENVxcdTFFRDdcXHUxRUUwXFx1MDFBMFxcdTFFRDlcXHUxRUREXFx1MUVERlxcdTFFQ0JcXHUxRUYwXFx1MUVFOFxcdTFFRUFcXHUxRUVDXFx1MDFBMVxcdTFFREJcXHUwMUFGXFx4QzBcXHhDMVxceEMyXFx4QzNcXHUxRUEyXFx1MDEwMlxcdTFFQjNcXHUxRUI1XFx4QzhcXHhDOVxceENBXFx1MUVCQVxceENDXFx4Q0RcXHUwMTI4XFx1MUVGM1xcdTAxMTBcXHUxRUU5XFx4RDJcXHhEM1xceEQ0XFx1MUVBMVxcdTFFRjdcXHUxRUVCXFx1MUVFRFxceEQ5XFx4REFcXHUxRUY5XFx1MUVGNVxceEREXFx1MUVFMVxcdTAxQjBcXHhFMFxceEUxXFx4RTJcXHhFM1xcdTFFQTNcXHUwMTAzXFx1MUVFRlxcdTFFQUJcXHhFOFxceEU5XFx4RUFcXHUxRUJCXFx4RUNcXHhFRFxcdTAxMjlcXHUxRUM5XFx1MDExMVxcdTFFRjFcXHhGMlxceEYzXFx4RjRcXHhGNVxcdTFFQ0ZcXHUxRUNEXFx1MUVFNVxceEY5XFx4RkFcXHUwMTY5XFx1MUVFN1xceEZEXFx1MUVFM1xcdTFFRUVcIlxuICAgICAgfSxcbiAgICAgIFwiaXNvNjQ2Y25cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFwwXHUwMDAxXHUwMDAyXHUwMDAzXHUwMDA0XHUwMDA1XHUwMDA2XFx4MDdcXGJcdFxcblxcdlxcZlxcclx1MDAwRVx1MDAwRlx1MDAxMFx1MDAxMVx1MDAxMlx1MDAxM1x1MDAxNFx1MDAxNVx1MDAxNlx1MDAxN1x1MDAxOFx1MDAxOVx1MDAxQVxceDFCXHUwMDFDXHUwMDFEXHUwMDFFXHUwMDFGICFcXFwiI1xceEE1JSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1cXHUyMDNFXFx4N0ZcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJpc282NDZqcFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcXHgwN1xcYlx0XFxuXFx2XFxmXFxyXHUwMDBFXHUwMDBGXHUwMDEwXHUwMDExXHUwMDEyXHUwMDEzXHUwMDE0XHUwMDE1XHUwMDE2XHUwMDE3XHUwMDE4XHUwMDE5XHUwMDFBXFx4MUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUYgIVxcXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXHhBNV1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fVxcdTIwM0VcXHg3RlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImhwcm9tYW44XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxceEMwXFx4QzJcXHhDOFxceENBXFx4Q0JcXHhDRVxceENGXFx4QjRcXHUwMkNCXFx1MDJDNlxceEE4XFx1MDJEQ1xceEQ5XFx4REJcXHUyMEE0XFx4QUZcXHhERFxceEZEXFx4QjBcXHhDN1xceEU3XFx4RDFcXHhGMVxceEExXFx4QkZcXHhBNFxceEEzXFx4QTVcXHhBN1xcdTAxOTJcXHhBMlxceEUyXFx4RUFcXHhGNFxceEZCXFx4RTFcXHhFOVxceEYzXFx4RkFcXHhFMFxceEU4XFx4RjJcXHhGOVxceEU0XFx4RUJcXHhGNlxceEZDXFx4QzVcXHhFRVxceEQ4XFx4QzZcXHhFNVxceEVEXFx4RjhcXHhFNlxceEM0XFx4RUNcXHhENlxceERDXFx4QzlcXHhFRlxceERGXFx4RDRcXHhDMVxceEMzXFx4RTNcXHhEMFxceEYwXFx4Q0RcXHhDQ1xceEQzXFx4RDJcXHhENVxceEY1XFx1MDE2MFxcdTAxNjFcXHhEQVxcdTAxNzhcXHhGRlxceERFXFx4RkVcXHhCN1xceEI1XFx4QjZcXHhCRVxcdTIwMTRcXHhCQ1xceEJEXFx4QUFcXHhCQVxceEFCXFx1MjVBMFxceEJCXFx4QjFcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcIm1hY2ludG9zaFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDNFxceEM1XFx4QzdcXHhDOVxceEQxXFx4RDZcXHhEQ1xceEUxXFx4RTBcXHhFMlxceEU0XFx4RTNcXHhFNVxceEU3XFx4RTlcXHhFOFxceEVBXFx4RUJcXHhFRFxceEVDXFx4RUVcXHhFRlxceEYxXFx4RjNcXHhGMlxceEY0XFx4RjZcXHhGNVxceEZBXFx4RjlcXHhGQlxceEZDXFx1MjAyMFxceEIwXFx4QTJcXHhBM1xceEE3XFx1MjAyMlxceEI2XFx4REZcXHhBRVxceEE5XFx1MjEyMlxceEI0XFx4QThcXHUyMjYwXFx4QzZcXHhEOFxcdTIyMUVcXHhCMVxcdTIyNjRcXHUyMjY1XFx4QTVcXHhCNVxcdTIyMDJcXHUyMjExXFx1MjIwRlxcdTAzQzBcXHUyMjJCXFx4QUFcXHhCQVxcdTIxMjZcXHhFNlxceEY4XFx4QkZcXHhBMVxceEFDXFx1MjIxQVxcdTAxOTJcXHUyMjQ4XFx1MjIwNlxceEFCXFx4QkJcXHUyMDI2XFx4QTBcXHhDMFxceEMzXFx4RDVcXHUwMTUyXFx1MDE1M1xcdTIwMTNcXHUyMDE0XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MjVDQVxceEZGXFx1MDE3OFxcdTIwNDRcXHhBNFxcdTIwMzlcXHUyMDNBXFx1RkIwMVxcdUZCMDJcXHUyMDIxXFx4QjdcXHUyMDFBXFx1MjAxRVxcdTIwMzBcXHhDMlxceENBXFx4QzFcXHhDQlxceEM4XFx4Q0RcXHhDRVxceENGXFx4Q0NcXHhEM1xceEQ0XFx1RkZGRFxceEQyXFx4REFcXHhEQlxceEQ5XFx1MDEzMVxcdTAyQzZcXHUwMkRDXFx4QUZcXHUwMkQ4XFx1MDJEOVxcdTAyREFcXHhCOFxcdTAyRERcXHUwMkRCXFx1MDJDN1wiXG4gICAgICB9LFxuICAgICAgXCJhc2NpaVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJ0aXM2MjBcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEUwMVxcdTBFMDJcXHUwRTAzXFx1MEUwNFxcdTBFMDVcXHUwRTA2XFx1MEUwN1xcdTBFMDhcXHUwRTA5XFx1MEUwQVxcdTBFMEJcXHUwRTBDXFx1MEUwRFxcdTBFMEVcXHUwRTBGXFx1MEUxMFxcdTBFMTFcXHUwRTEyXFx1MEUxM1xcdTBFMTRcXHUwRTE1XFx1MEUxNlxcdTBFMTdcXHUwRTE4XFx1MEUxOVxcdTBFMUFcXHUwRTFCXFx1MEUxQ1xcdTBFMURcXHUwRTFFXFx1MEUxRlxcdTBFMjBcXHUwRTIxXFx1MEUyMlxcdTBFMjNcXHUwRTI0XFx1MEUyNVxcdTBFMjZcXHUwRTI3XFx1MEUyOFxcdTBFMjlcXHUwRTJBXFx1MEUyQlxcdTBFMkNcXHUwRTJEXFx1MEUyRVxcdTBFMkZcXHUwRTMwXFx1MEUzMVxcdTBFMzJcXHUwRTMzXFx1MEUzNFxcdTBFMzVcXHUwRTM2XFx1MEUzN1xcdTBFMzhcXHUwRTM5XFx1MEUzQVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwRTNGXFx1MEU0MFxcdTBFNDFcXHUwRTQyXFx1MEU0M1xcdTBFNDRcXHUwRTQ1XFx1MEU0NlxcdTBFNDdcXHUwRTQ4XFx1MEU0OVxcdTBFNEFcXHUwRTRCXFx1MEU0Q1xcdTBFNERcXHUwRTRFXFx1MEU0RlxcdTBFNTBcXHUwRTUxXFx1MEU1MlxcdTBFNTNcXHUwRTU0XFx1MEU1NVxcdTBFNTZcXHUwRTU3XFx1MEU1OFxcdTBFNTlcXHUwRTVBXFx1MEU1QlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcIlxuICAgICAgfVxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL2RiY3MtY29kZWMuanNcbnZhciByZXF1aXJlX2RiY3NfY29kZWMyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9kYmNzLWNvZGVjLmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQnVmZmVyMiA9IHJlcXVpcmVfc2FmZXIoKS5CdWZmZXI7XG4gICAgZXhwb3J0czIuX2RiY3MgPSBEQkNTQ29kZWM7XG4gICAgdmFyIFVOQVNTSUdORUQgPSAtMTtcbiAgICB2YXIgR0IxODAzMF9DT0RFID0gLTI7XG4gICAgdmFyIFNFUV9TVEFSVCA9IC0xMDtcbiAgICB2YXIgTk9ERV9TVEFSVCA9IC0xZTM7XG4gICAgdmFyIFVOQVNTSUdORURfTk9ERSA9IG5ldyBBcnJheSgyNTYpO1xuICAgIHZhciBERUZfQ0hBUiA9IC0xO1xuICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKylcbiAgICAgIFVOQVNTSUdORURfTk9ERVtpXSA9IFVOQVNTSUdORUQ7XG4gICAgdmFyIGk7XG4gICAgZnVuY3Rpb24gREJDU0NvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICAgIHRoaXMuZW5jb2RpbmdOYW1lID0gY29kZWNPcHRpb25zLmVuY29kaW5nTmFtZTtcbiAgICAgIGlmICghY29kZWNPcHRpb25zKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEQkNTIGNvZGVjIGlzIGNhbGxlZCB3aXRob3V0IHRoZSBkYXRhLlwiKTtcbiAgICAgIGlmICghY29kZWNPcHRpb25zLnRhYmxlKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmNvZGluZyAnXCIgKyB0aGlzLmVuY29kaW5nTmFtZSArIFwiJyBoYXMgbm8gZGF0YS5cIik7XG4gICAgICB2YXIgbWFwcGluZ1RhYmxlID0gY29kZWNPcHRpb25zLnRhYmxlKCk7XG4gICAgICB0aGlzLmRlY29kZVRhYmxlcyA9IFtdO1xuICAgICAgdGhpcy5kZWNvZGVUYWJsZXNbMF0gPSBVTkFTU0lHTkVEX05PREUuc2xpY2UoMCk7XG4gICAgICB0aGlzLmRlY29kZVRhYmxlU2VxID0gW107XG4gICAgICBmb3IgKHZhciBpMiA9IDA7IGkyIDwgbWFwcGluZ1RhYmxlLmxlbmd0aDsgaTIrKylcbiAgICAgICAgdGhpcy5fYWRkRGVjb2RlQ2h1bmsobWFwcGluZ1RhYmxlW2kyXSk7XG4gICAgICBpZiAodHlwZW9mIGNvZGVjT3B0aW9ucy5nYjE4MDMwID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhpcy5nYjE4MDMwID0gY29kZWNPcHRpb25zLmdiMTgwMzAoKTtcbiAgICAgICAgdmFyIGNvbW1vblRoaXJkQnl0ZU5vZGVJZHggPSB0aGlzLmRlY29kZVRhYmxlcy5sZW5ndGg7XG4gICAgICAgIHRoaXMuZGVjb2RlVGFibGVzLnB1c2goVU5BU1NJR05FRF9OT0RFLnNsaWNlKDApKTtcbiAgICAgICAgdmFyIGNvbW1vbkZvdXJ0aEJ5dGVOb2RlSWR4ID0gdGhpcy5kZWNvZGVUYWJsZXMubGVuZ3RoO1xuICAgICAgICB0aGlzLmRlY29kZVRhYmxlcy5wdXNoKFVOQVNTSUdORURfTk9ERS5zbGljZSgwKSk7XG4gICAgICAgIHZhciBmaXJzdEJ5dGVOb2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbMF07XG4gICAgICAgIGZvciAodmFyIGkyID0gMTI5OyBpMiA8PSAyNTQ7IGkyKyspIHtcbiAgICAgICAgICB2YXIgc2Vjb25kQnl0ZU5vZGUgPSB0aGlzLmRlY29kZVRhYmxlc1tOT0RFX1NUQVJUIC0gZmlyc3RCeXRlTm9kZVtpMl1dO1xuICAgICAgICAgIGZvciAodmFyIGogPSA0ODsgaiA8PSA1NzsgaisrKSB7XG4gICAgICAgICAgICBpZiAoc2Vjb25kQnl0ZU5vZGVbal0gPT09IFVOQVNTSUdORUQpIHtcbiAgICAgICAgICAgICAgc2Vjb25kQnl0ZU5vZGVbal0gPSBOT0RFX1NUQVJUIC0gY29tbW9uVGhpcmRCeXRlTm9kZUlkeDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2Vjb25kQnl0ZU5vZGVbal0gPiBOT0RFX1NUQVJUKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdiMTgwMzAgZGVjb2RlIHRhYmxlcyBjb25mbGljdCBhdCBieXRlIDJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdGhpcmRCeXRlTm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzW05PREVfU1RBUlQgLSBzZWNvbmRCeXRlTm9kZVtqXV07XG4gICAgICAgICAgICBmb3IgKHZhciBrID0gMTI5OyBrIDw9IDI1NDsgaysrKSB7XG4gICAgICAgICAgICAgIGlmICh0aGlyZEJ5dGVOb2RlW2tdID09PSBVTkFTU0lHTkVEKSB7XG4gICAgICAgICAgICAgICAgdGhpcmRCeXRlTm9kZVtrXSA9IE5PREVfU1RBUlQgLSBjb21tb25Gb3VydGhCeXRlTm9kZUlkeDtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlyZEJ5dGVOb2RlW2tdID09PSBOT0RFX1NUQVJUIC0gY29tbW9uRm91cnRoQnl0ZU5vZGVJZHgpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlyZEJ5dGVOb2RlW2tdID4gTk9ERV9TVEFSVCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdiMTgwMzAgZGVjb2RlIHRhYmxlcyBjb25mbGljdCBhdCBieXRlIDNcIik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIGZvdXJ0aEJ5dGVOb2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbTk9ERV9TVEFSVCAtIHRoaXJkQnl0ZU5vZGVba11dO1xuICAgICAgICAgICAgICBmb3IgKHZhciBsID0gNDg7IGwgPD0gNTc7IGwrKykge1xuICAgICAgICAgICAgICAgIGlmIChmb3VydGhCeXRlTm9kZVtsXSA9PT0gVU5BU1NJR05FRClcbiAgICAgICAgICAgICAgICAgIGZvdXJ0aEJ5dGVOb2RlW2xdID0gR0IxODAzMF9DT0RFO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZSA9IGljb252LmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgIHRoaXMuZW5jb2RlVGFibGUgPSBbXTtcbiAgICAgIHRoaXMuZW5jb2RlVGFibGVTZXEgPSBbXTtcbiAgICAgIHZhciBza2lwRW5jb2RlQ2hhcnMgPSB7fTtcbiAgICAgIGlmIChjb2RlY09wdGlvbnMuZW5jb2RlU2tpcFZhbHMpXG4gICAgICAgIGZvciAodmFyIGkyID0gMDsgaTIgPCBjb2RlY09wdGlvbnMuZW5jb2RlU2tpcFZhbHMubGVuZ3RoOyBpMisrKSB7XG4gICAgICAgICAgdmFyIHZhbCA9IGNvZGVjT3B0aW9ucy5lbmNvZGVTa2lwVmFsc1tpMl07XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIpXG4gICAgICAgICAgICBza2lwRW5jb2RlQ2hhcnNbdmFsXSA9IHRydWU7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZm9yICh2YXIgaiA9IHZhbC5mcm9tOyBqIDw9IHZhbC50bzsgaisrKVxuICAgICAgICAgICAgICBza2lwRW5jb2RlQ2hhcnNbal0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB0aGlzLl9maWxsRW5jb2RlVGFibGUoMCwgMCwgc2tpcEVuY29kZUNoYXJzKTtcbiAgICAgIGlmIChjb2RlY09wdGlvbnMuZW5jb2RlQWRkKSB7XG4gICAgICAgIGZvciAodmFyIHVDaGFyIGluIGNvZGVjT3B0aW9ucy5lbmNvZGVBZGQpXG4gICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjb2RlY09wdGlvbnMuZW5jb2RlQWRkLCB1Q2hhcikpXG4gICAgICAgICAgICB0aGlzLl9zZXRFbmNvZGVDaGFyKHVDaGFyLmNoYXJDb2RlQXQoMCksIGNvZGVjT3B0aW9ucy5lbmNvZGVBZGRbdUNoYXJdKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGVmQ2hhclNCID0gdGhpcy5lbmNvZGVUYWJsZVswXVtpY29udi5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUuY2hhckNvZGVBdCgwKV07XG4gICAgICBpZiAodGhpcy5kZWZDaGFyU0IgPT09IFVOQVNTSUdORUQpIHRoaXMuZGVmQ2hhclNCID0gdGhpcy5lbmNvZGVUYWJsZVswXVtcIj9cIl07XG4gICAgICBpZiAodGhpcy5kZWZDaGFyU0IgPT09IFVOQVNTSUdORUQpIHRoaXMuZGVmQ2hhclNCID0gXCI/XCIuY2hhckNvZGVBdCgwKTtcbiAgICB9XG4gICAgREJDU0NvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gREJDU0VuY29kZXI7XG4gICAgREJDU0NvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gREJDU0RlY29kZXI7XG4gICAgREJDU0NvZGVjLnByb3RvdHlwZS5fZ2V0RGVjb2RlVHJpZU5vZGUgPSBmdW5jdGlvbihhZGRyKSB7XG4gICAgICB2YXIgYnl0ZXMgPSBbXTtcbiAgICAgIGZvciAoOyBhZGRyID4gMDsgYWRkciA+Pj49IDgpXG4gICAgICAgIGJ5dGVzLnB1c2goYWRkciAmIDI1NSk7XG4gICAgICBpZiAoYnl0ZXMubGVuZ3RoID09IDApXG4gICAgICAgIGJ5dGVzLnB1c2goMCk7XG4gICAgICB2YXIgbm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzWzBdO1xuICAgICAgZm9yICh2YXIgaTIgPSBieXRlcy5sZW5ndGggLSAxOyBpMiA+IDA7IGkyLS0pIHtcbiAgICAgICAgdmFyIHZhbCA9IG5vZGVbYnl0ZXNbaTJdXTtcbiAgICAgICAgaWYgKHZhbCA9PSBVTkFTU0lHTkVEKSB7XG4gICAgICAgICAgbm9kZVtieXRlc1tpMl1dID0gTk9ERV9TVEFSVCAtIHRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aDtcbiAgICAgICAgICB0aGlzLmRlY29kZVRhYmxlcy5wdXNoKG5vZGUgPSBVTkFTU0lHTkVEX05PREUuc2xpY2UoMCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbCA8PSBOT0RFX1NUQVJUKSB7XG4gICAgICAgICAgbm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzW05PREVfU1RBUlQgLSB2YWxdO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPdmVyd3JpdGUgYnl0ZSBpbiBcIiArIHRoaXMuZW5jb2RpbmdOYW1lICsgXCIsIGFkZHI6IFwiICsgYWRkci50b1N0cmluZygxNikpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfTtcbiAgICBEQkNTQ29kZWMucHJvdG90eXBlLl9hZGREZWNvZGVDaHVuayA9IGZ1bmN0aW9uKGNodW5rKSB7XG4gICAgICB2YXIgY3VyQWRkciA9IHBhcnNlSW50KGNodW5rWzBdLCAxNik7XG4gICAgICB2YXIgd3JpdGVUYWJsZSA9IHRoaXMuX2dldERlY29kZVRyaWVOb2RlKGN1ckFkZHIpO1xuICAgICAgY3VyQWRkciA9IGN1ckFkZHIgJiAyNTU7XG4gICAgICBmb3IgKHZhciBrID0gMTsgayA8IGNodW5rLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBwYXJ0ID0gY2h1bmtba107XG4gICAgICAgIGlmICh0eXBlb2YgcGFydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGZvciAodmFyIGwgPSAwOyBsIDwgcGFydC5sZW5ndGg7ICkge1xuICAgICAgICAgICAgdmFyIGNvZGUgPSBwYXJ0LmNoYXJDb2RlQXQobCsrKTtcbiAgICAgICAgICAgIGlmICg1NTI5NiA8PSBjb2RlICYmIGNvZGUgPCA1NjMyMCkge1xuICAgICAgICAgICAgICB2YXIgY29kZVRyYWlsID0gcGFydC5jaGFyQ29kZUF0KGwrKyk7XG4gICAgICAgICAgICAgIGlmICg1NjMyMCA8PSBjb2RlVHJhaWwgJiYgY29kZVRyYWlsIDwgNTczNDQpXG4gICAgICAgICAgICAgICAgd3JpdGVUYWJsZVtjdXJBZGRyKytdID0gNjU1MzYgKyAoY29kZSAtIDU1Mjk2KSAqIDEwMjQgKyAoY29kZVRyYWlsIC0gNTYzMjApO1xuICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW5jb3JyZWN0IHN1cnJvZ2F0ZSBwYWlyIGluIFwiICsgdGhpcy5lbmNvZGluZ05hbWUgKyBcIiBhdCBjaHVuayBcIiArIGNodW5rWzBdKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoNDA4MCA8IGNvZGUgJiYgY29kZSA8PSA0MDk1KSB7XG4gICAgICAgICAgICAgIHZhciBsZW4gPSA0MDk1IC0gY29kZSArIDI7XG4gICAgICAgICAgICAgIHZhciBzZXEgPSBbXTtcbiAgICAgICAgICAgICAgZm9yICh2YXIgbSA9IDA7IG0gPCBsZW47IG0rKylcbiAgICAgICAgICAgICAgICBzZXEucHVzaChwYXJ0LmNoYXJDb2RlQXQobCsrKSk7XG4gICAgICAgICAgICAgIHdyaXRlVGFibGVbY3VyQWRkcisrXSA9IFNFUV9TVEFSVCAtIHRoaXMuZGVjb2RlVGFibGVTZXEubGVuZ3RoO1xuICAgICAgICAgICAgICB0aGlzLmRlY29kZVRhYmxlU2VxLnB1c2goc2VxKTtcbiAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICB3cml0ZVRhYmxlW2N1ckFkZHIrK10gPSBjb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcGFydCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIHZhciBjaGFyQ29kZSA9IHdyaXRlVGFibGVbY3VyQWRkciAtIDFdICsgMTtcbiAgICAgICAgICBmb3IgKHZhciBsID0gMDsgbCA8IHBhcnQ7IGwrKylcbiAgICAgICAgICAgIHdyaXRlVGFibGVbY3VyQWRkcisrXSA9IGNoYXJDb2RlKys7XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkluY29ycmVjdCB0eXBlICdcIiArIHR5cGVvZiBwYXJ0ICsgXCInIGdpdmVuIGluIFwiICsgdGhpcy5lbmNvZGluZ05hbWUgKyBcIiBhdCBjaHVuayBcIiArIGNodW5rWzBdKTtcbiAgICAgIH1cbiAgICAgIGlmIChjdXJBZGRyID4gMjU1KVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmNvcnJlY3QgY2h1bmsgaW4gXCIgKyB0aGlzLmVuY29kaW5nTmFtZSArIFwiIGF0IGFkZHIgXCIgKyBjaHVua1swXSArIFwiOiB0b28gbG9uZ1wiICsgY3VyQWRkcik7XG4gICAgfTtcbiAgICBEQkNTQ29kZWMucHJvdG90eXBlLl9nZXRFbmNvZGVCdWNrZXQgPSBmdW5jdGlvbih1Q29kZSkge1xuICAgICAgdmFyIGhpZ2ggPSB1Q29kZSA+PiA4O1xuICAgICAgaWYgKHRoaXMuZW5jb2RlVGFibGVbaGlnaF0gPT09IHZvaWQgMClcbiAgICAgICAgdGhpcy5lbmNvZGVUYWJsZVtoaWdoXSA9IFVOQVNTSUdORURfTk9ERS5zbGljZSgwKTtcbiAgICAgIHJldHVybiB0aGlzLmVuY29kZVRhYmxlW2hpZ2hdO1xuICAgIH07XG4gICAgREJDU0NvZGVjLnByb3RvdHlwZS5fc2V0RW5jb2RlQ2hhciA9IGZ1bmN0aW9uKHVDb2RlLCBkYmNzQ29kZSkge1xuICAgICAgdmFyIGJ1Y2tldCA9IHRoaXMuX2dldEVuY29kZUJ1Y2tldCh1Q29kZSk7XG4gICAgICB2YXIgbG93ID0gdUNvZGUgJiAyNTU7XG4gICAgICBpZiAoYnVja2V0W2xvd10gPD0gU0VRX1NUQVJUKVxuICAgICAgICB0aGlzLmVuY29kZVRhYmxlU2VxW1NFUV9TVEFSVCAtIGJ1Y2tldFtsb3ddXVtERUZfQ0hBUl0gPSBkYmNzQ29kZTtcbiAgICAgIGVsc2UgaWYgKGJ1Y2tldFtsb3ddID09IFVOQVNTSUdORUQpXG4gICAgICAgIGJ1Y2tldFtsb3ddID0gZGJjc0NvZGU7XG4gICAgfTtcbiAgICBEQkNTQ29kZWMucHJvdG90eXBlLl9zZXRFbmNvZGVTZXF1ZW5jZSA9IGZ1bmN0aW9uKHNlcSwgZGJjc0NvZGUpIHtcbiAgICAgIHZhciB1Q29kZSA9IHNlcVswXTtcbiAgICAgIHZhciBidWNrZXQgPSB0aGlzLl9nZXRFbmNvZGVCdWNrZXQodUNvZGUpO1xuICAgICAgdmFyIGxvdyA9IHVDb2RlICYgMjU1O1xuICAgICAgdmFyIG5vZGU7XG4gICAgICBpZiAoYnVja2V0W2xvd10gPD0gU0VRX1NUQVJUKSB7XG4gICAgICAgIG5vZGUgPSB0aGlzLmVuY29kZVRhYmxlU2VxW1NFUV9TVEFSVCAtIGJ1Y2tldFtsb3ddXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUgPSB7fTtcbiAgICAgICAgaWYgKGJ1Y2tldFtsb3ddICE9PSBVTkFTU0lHTkVEKSBub2RlW0RFRl9DSEFSXSA9IGJ1Y2tldFtsb3ddO1xuICAgICAgICBidWNrZXRbbG93XSA9IFNFUV9TVEFSVCAtIHRoaXMuZW5jb2RlVGFibGVTZXEubGVuZ3RoO1xuICAgICAgICB0aGlzLmVuY29kZVRhYmxlU2VxLnB1c2gobm9kZSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBqID0gMTsgaiA8IHNlcS5sZW5ndGggLSAxOyBqKyspIHtcbiAgICAgICAgdmFyIG9sZFZhbCA9IG5vZGVbdUNvZGVdO1xuICAgICAgICBpZiAodHlwZW9mIG9sZFZhbCA9PT0gXCJvYmplY3RcIilcbiAgICAgICAgICBub2RlID0gb2xkVmFsO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBub2RlID0gbm9kZVt1Q29kZV0gPSB7fTtcbiAgICAgICAgICBpZiAob2xkVmFsICE9PSB2b2lkIDApXG4gICAgICAgICAgICBub2RlW0RFRl9DSEFSXSA9IG9sZFZhbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdUNvZGUgPSBzZXFbc2VxLmxlbmd0aCAtIDFdO1xuICAgICAgbm9kZVt1Q29kZV0gPSBkYmNzQ29kZTtcbiAgICB9O1xuICAgIERCQ1NDb2RlYy5wcm90b3R5cGUuX2ZpbGxFbmNvZGVUYWJsZSA9IGZ1bmN0aW9uKG5vZGVJZHgsIHByZWZpeCwgc2tpcEVuY29kZUNoYXJzKSB7XG4gICAgICB2YXIgbm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzW25vZGVJZHhdO1xuICAgICAgdmFyIGhhc1ZhbHVlcyA9IGZhbHNlO1xuICAgICAgdmFyIHN1Yk5vZGVFbXB0eSA9IHt9O1xuICAgICAgZm9yICh2YXIgaTIgPSAwOyBpMiA8IDI1NjsgaTIrKykge1xuICAgICAgICB2YXIgdUNvZGUgPSBub2RlW2kyXTtcbiAgICAgICAgdmFyIG1iQ29kZSA9IHByZWZpeCArIGkyO1xuICAgICAgICBpZiAoc2tpcEVuY29kZUNoYXJzW21iQ29kZV0pXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGlmICh1Q29kZSA+PSAwKSB7XG4gICAgICAgICAgdGhpcy5fc2V0RW5jb2RlQ2hhcih1Q29kZSwgbWJDb2RlKTtcbiAgICAgICAgICBoYXNWYWx1ZXMgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlIDw9IE5PREVfU1RBUlQpIHtcbiAgICAgICAgICB2YXIgc3ViTm9kZUlkeCA9IE5PREVfU1RBUlQgLSB1Q29kZTtcbiAgICAgICAgICBpZiAoIXN1Yk5vZGVFbXB0eVtzdWJOb2RlSWR4XSkge1xuICAgICAgICAgICAgdmFyIG5ld1ByZWZpeCA9IG1iQ29kZSA8PCA4ID4+PiAwO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2ZpbGxFbmNvZGVUYWJsZShzdWJOb2RlSWR4LCBuZXdQcmVmaXgsIHNraXBFbmNvZGVDaGFycykpXG4gICAgICAgICAgICAgIGhhc1ZhbHVlcyA9IHRydWU7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHN1Yk5vZGVFbXB0eVtzdWJOb2RlSWR4XSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlIDw9IFNFUV9TVEFSVCkge1xuICAgICAgICAgIHRoaXMuX3NldEVuY29kZVNlcXVlbmNlKHRoaXMuZGVjb2RlVGFibGVTZXFbU0VRX1NUQVJUIC0gdUNvZGVdLCBtYkNvZGUpO1xuICAgICAgICAgIGhhc1ZhbHVlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNWYWx1ZXM7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBEQkNTRW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5sZWFkU3Vycm9nYXRlID0gLTE7XG4gICAgICB0aGlzLnNlcU9iaiA9IHZvaWQgMDtcbiAgICAgIHRoaXMuZW5jb2RlVGFibGUgPSBjb2RlYy5lbmNvZGVUYWJsZTtcbiAgICAgIHRoaXMuZW5jb2RlVGFibGVTZXEgPSBjb2RlYy5lbmNvZGVUYWJsZVNlcTtcbiAgICAgIHRoaXMuZGVmYXVsdENoYXJTaW5nbGVCeXRlID0gY29kZWMuZGVmQ2hhclNCO1xuICAgICAgdGhpcy5nYjE4MDMwID0gY29kZWMuZ2IxODAzMDtcbiAgICB9XG4gICAgREJDU0VuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICB2YXIgbmV3QnVmID0gQnVmZmVyMi5hbGxvYyhzdHIubGVuZ3RoICogKHRoaXMuZ2IxODAzMCA/IDQgOiAzKSksIGxlYWRTdXJyb2dhdGUgPSB0aGlzLmxlYWRTdXJyb2dhdGUsIHNlcU9iaiA9IHRoaXMuc2VxT2JqLCBuZXh0Q2hhciA9IC0xLCBpMiA9IDAsIGogPSAwO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgaWYgKG5leHRDaGFyID09PSAtMSkge1xuICAgICAgICAgIGlmIChpMiA9PSBzdHIubGVuZ3RoKSBicmVhaztcbiAgICAgICAgICB2YXIgdUNvZGUgPSBzdHIuY2hhckNvZGVBdChpMisrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgdUNvZGUgPSBuZXh0Q2hhcjtcbiAgICAgICAgICBuZXh0Q2hhciA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmICg1NTI5NiA8PSB1Q29kZSAmJiB1Q29kZSA8IDU3MzQ0KSB7XG4gICAgICAgICAgaWYgKHVDb2RlIDwgNTYzMjApIHtcbiAgICAgICAgICAgIGlmIChsZWFkU3Vycm9nYXRlID09PSAtMSkge1xuICAgICAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gdUNvZGU7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IHVDb2RlO1xuICAgICAgICAgICAgICB1Q29kZSA9IFVOQVNTSUdORUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChsZWFkU3Vycm9nYXRlICE9PSAtMSkge1xuICAgICAgICAgICAgICB1Q29kZSA9IDY1NTM2ICsgKGxlYWRTdXJyb2dhdGUgLSA1NTI5NikgKiAxMDI0ICsgKHVDb2RlIC0gNTYzMjApO1xuICAgICAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gLTE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB1Q29kZSA9IFVOQVNTSUdORUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGxlYWRTdXJyb2dhdGUgIT09IC0xKSB7XG4gICAgICAgICAgbmV4dENoYXIgPSB1Q29kZTtcbiAgICAgICAgICB1Q29kZSA9IFVOQVNTSUdORUQ7XG4gICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkYmNzQ29kZSA9IFVOQVNTSUdORUQ7XG4gICAgICAgIGlmIChzZXFPYmogIT09IHZvaWQgMCAmJiB1Q29kZSAhPSBVTkFTU0lHTkVEKSB7XG4gICAgICAgICAgdmFyIHJlc0NvZGUgPSBzZXFPYmpbdUNvZGVdO1xuICAgICAgICAgIGlmICh0eXBlb2YgcmVzQ29kZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgc2VxT2JqID0gcmVzQ29kZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlc0NvZGUgPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgZGJjc0NvZGUgPSByZXNDb2RlO1xuICAgICAgICAgIH0gZWxzZSBpZiAocmVzQ29kZSA9PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHJlc0NvZGUgPSBzZXFPYmpbREVGX0NIQVJdO1xuICAgICAgICAgICAgaWYgKHJlc0NvZGUgIT09IHZvaWQgMCkge1xuICAgICAgICAgICAgICBkYmNzQ29kZSA9IHJlc0NvZGU7XG4gICAgICAgICAgICAgIG5leHRDaGFyID0gdUNvZGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBzZXFPYmogPSB2b2lkIDA7XG4gICAgICAgIH0gZWxzZSBpZiAodUNvZGUgPj0gMCkge1xuICAgICAgICAgIHZhciBzdWJ0YWJsZSA9IHRoaXMuZW5jb2RlVGFibGVbdUNvZGUgPj4gOF07XG4gICAgICAgICAgaWYgKHN1YnRhYmxlICE9PSB2b2lkIDApXG4gICAgICAgICAgICBkYmNzQ29kZSA9IHN1YnRhYmxlW3VDb2RlICYgMjU1XTtcbiAgICAgICAgICBpZiAoZGJjc0NvZGUgPD0gU0VRX1NUQVJUKSB7XG4gICAgICAgICAgICBzZXFPYmogPSB0aGlzLmVuY29kZVRhYmxlU2VxW1NFUV9TVEFSVCAtIGRiY3NDb2RlXTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGJjc0NvZGUgPT0gVU5BU1NJR05FRCAmJiB0aGlzLmdiMTgwMzApIHtcbiAgICAgICAgICAgIHZhciBpZHggPSBmaW5kSWR4KHRoaXMuZ2IxODAzMC51Q2hhcnMsIHVDb2RlKTtcbiAgICAgICAgICAgIGlmIChpZHggIT0gLTEpIHtcbiAgICAgICAgICAgICAgdmFyIGRiY3NDb2RlID0gdGhpcy5nYjE4MDMwLmdiQ2hhcnNbaWR4XSArICh1Q29kZSAtIHRoaXMuZ2IxODAzMC51Q2hhcnNbaWR4XSk7XG4gICAgICAgICAgICAgIG5ld0J1ZltqKytdID0gMTI5ICsgTWF0aC5mbG9vcihkYmNzQ29kZSAvIDEyNjAwKTtcbiAgICAgICAgICAgICAgZGJjc0NvZGUgPSBkYmNzQ29kZSAlIDEyNjAwO1xuICAgICAgICAgICAgICBuZXdCdWZbaisrXSA9IDQ4ICsgTWF0aC5mbG9vcihkYmNzQ29kZSAvIDEyNjApO1xuICAgICAgICAgICAgICBkYmNzQ29kZSA9IGRiY3NDb2RlICUgMTI2MDtcbiAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSAxMjkgKyBNYXRoLmZsb29yKGRiY3NDb2RlIC8gMTApO1xuICAgICAgICAgICAgICBkYmNzQ29kZSA9IGRiY3NDb2RlICUgMTA7XG4gICAgICAgICAgICAgIG5ld0J1ZltqKytdID0gNDggKyBkYmNzQ29kZTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkYmNzQ29kZSA9PT0gVU5BU1NJR05FRClcbiAgICAgICAgICBkYmNzQ29kZSA9IHRoaXMuZGVmYXVsdENoYXJTaW5nbGVCeXRlO1xuICAgICAgICBpZiAoZGJjc0NvZGUgPCAyNTYpIHtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlO1xuICAgICAgICB9IGVsc2UgaWYgKGRiY3NDb2RlIDwgNjU1MzYpIHtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+IDg7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSAmIDI1NTtcbiAgICAgICAgfSBlbHNlIGlmIChkYmNzQ29kZSA8IDE2Nzc3MjE2KSB7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSA+PiAxNjtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+IDggJiAyNTU7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSAmIDI1NTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+PiAyNDtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+PiAxNiAmIDI1NTtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+PiA4ICYgMjU1O1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgJiAyNTU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuc2VxT2JqID0gc2VxT2JqO1xuICAgICAgdGhpcy5sZWFkU3Vycm9nYXRlID0gbGVhZFN1cnJvZ2F0ZTtcbiAgICAgIHJldHVybiBuZXdCdWYuc2xpY2UoMCwgaik7XG4gICAgfTtcbiAgICBEQkNTRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAodGhpcy5sZWFkU3Vycm9nYXRlID09PSAtMSAmJiB0aGlzLnNlcU9iaiA9PT0gdm9pZCAwKVxuICAgICAgICByZXR1cm47XG4gICAgICB2YXIgbmV3QnVmID0gQnVmZmVyMi5hbGxvYygxMCksIGogPSAwO1xuICAgICAgaWYgKHRoaXMuc2VxT2JqKSB7XG4gICAgICAgIHZhciBkYmNzQ29kZSA9IHRoaXMuc2VxT2JqW0RFRl9DSEFSXTtcbiAgICAgICAgaWYgKGRiY3NDb2RlICE9PSB2b2lkIDApIHtcbiAgICAgICAgICBpZiAoZGJjc0NvZGUgPCAyNTYpIHtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgPj4gODtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgJiAyNTU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VxT2JqID0gdm9pZCAwO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubGVhZFN1cnJvZ2F0ZSAhPT0gLTEpIHtcbiAgICAgICAgbmV3QnVmW2orK10gPSB0aGlzLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZTtcbiAgICAgICAgdGhpcy5sZWFkU3Vycm9nYXRlID0gLTE7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3QnVmLnNsaWNlKDAsIGopO1xuICAgIH07XG4gICAgREJDU0VuY29kZXIucHJvdG90eXBlLmZpbmRJZHggPSBmaW5kSWR4O1xuICAgIGZ1bmN0aW9uIERCQ1NEZWNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLm5vZGVJZHggPSAwO1xuICAgICAgdGhpcy5wcmV2Qnl0ZXMgPSBbXTtcbiAgICAgIHRoaXMuZGVjb2RlVGFibGVzID0gY29kZWMuZGVjb2RlVGFibGVzO1xuICAgICAgdGhpcy5kZWNvZGVUYWJsZVNlcSA9IGNvZGVjLmRlY29kZVRhYmxlU2VxO1xuICAgICAgdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUgPSBjb2RlYy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICB0aGlzLmdiMTgwMzAgPSBjb2RlYy5nYjE4MDMwO1xuICAgIH1cbiAgICBEQkNTRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIHZhciBuZXdCdWYgPSBCdWZmZXIyLmFsbG9jKGJ1Zi5sZW5ndGggKiAyKSwgbm9kZUlkeCA9IHRoaXMubm9kZUlkeCwgcHJldkJ5dGVzID0gdGhpcy5wcmV2Qnl0ZXMsIHByZXZPZmZzZXQgPSB0aGlzLnByZXZCeXRlcy5sZW5ndGgsIHNlcVN0YXJ0ID0gLXRoaXMucHJldkJ5dGVzLmxlbmd0aCwgdUNvZGU7XG4gICAgICBmb3IgKHZhciBpMiA9IDAsIGogPSAwOyBpMiA8IGJ1Zi5sZW5ndGg7IGkyKyspIHtcbiAgICAgICAgdmFyIGN1ckJ5dGUgPSBpMiA+PSAwID8gYnVmW2kyXSA6IHByZXZCeXRlc1tpMiArIHByZXZPZmZzZXRdO1xuICAgICAgICB2YXIgdUNvZGUgPSB0aGlzLmRlY29kZVRhYmxlc1tub2RlSWR4XVtjdXJCeXRlXTtcbiAgICAgICAgaWYgKHVDb2RlID49IDApIHtcbiAgICAgICAgfSBlbHNlIGlmICh1Q29kZSA9PT0gVU5BU1NJR05FRCkge1xuICAgICAgICAgIHVDb2RlID0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgICBpMiA9IHNlcVN0YXJ0O1xuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlID09PSBHQjE4MDMwX0NPREUpIHtcbiAgICAgICAgICBpZiAoaTIgPj0gMykge1xuICAgICAgICAgICAgdmFyIHB0ciA9IChidWZbaTIgLSAzXSAtIDEyOSkgKiAxMjYwMCArIChidWZbaTIgLSAyXSAtIDQ4KSAqIDEyNjAgKyAoYnVmW2kyIC0gMV0gLSAxMjkpICogMTAgKyAoY3VyQnl0ZSAtIDQ4KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIHB0ciA9IChwcmV2Qnl0ZXNbaTIgLSAzICsgcHJldk9mZnNldF0gLSAxMjkpICogMTI2MDAgKyAoKGkyIC0gMiA+PSAwID8gYnVmW2kyIC0gMl0gOiBwcmV2Qnl0ZXNbaTIgLSAyICsgcHJldk9mZnNldF0pIC0gNDgpICogMTI2MCArICgoaTIgLSAxID49IDAgPyBidWZbaTIgLSAxXSA6IHByZXZCeXRlc1tpMiAtIDEgKyBwcmV2T2Zmc2V0XSkgLSAxMjkpICogMTAgKyAoY3VyQnl0ZSAtIDQ4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGlkeCA9IGZpbmRJZHgodGhpcy5nYjE4MDMwLmdiQ2hhcnMsIHB0cik7XG4gICAgICAgICAgdUNvZGUgPSB0aGlzLmdiMTgwMzAudUNoYXJzW2lkeF0gKyBwdHIgLSB0aGlzLmdiMTgwMzAuZ2JDaGFyc1tpZHhdO1xuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlIDw9IE5PREVfU1RBUlQpIHtcbiAgICAgICAgICBub2RlSWR4ID0gTk9ERV9TVEFSVCAtIHVDb2RlO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlIDw9IFNFUV9TVEFSVCkge1xuICAgICAgICAgIHZhciBzZXEgPSB0aGlzLmRlY29kZVRhYmxlU2VxW1NFUV9TVEFSVCAtIHVDb2RlXTtcbiAgICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IHNlcS5sZW5ndGggLSAxOyBrKyspIHtcbiAgICAgICAgICAgIHVDb2RlID0gc2VxW2tdO1xuICAgICAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZSAmIDI1NTtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gdUNvZGUgPj4gODtcbiAgICAgICAgICB9XG4gICAgICAgICAgdUNvZGUgPSBzZXFbc2VxLmxlbmd0aCAtIDFdO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpY29udi1saXRlIGludGVybmFsIGVycm9yOiBpbnZhbGlkIGRlY29kaW5nIHRhYmxlIHZhbHVlIFwiICsgdUNvZGUgKyBcIiBhdCBcIiArIG5vZGVJZHggKyBcIi9cIiArIGN1ckJ5dGUpO1xuICAgICAgICBpZiAodUNvZGUgPj0gNjU1MzYpIHtcbiAgICAgICAgICB1Q29kZSAtPSA2NTUzNjtcbiAgICAgICAgICB2YXIgdUNvZGVMZWFkID0gNTUyOTYgfCB1Q29kZSA+PiAxMDtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IHVDb2RlTGVhZCAmIDI1NTtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IHVDb2RlTGVhZCA+PiA4O1xuICAgICAgICAgIHVDb2RlID0gNTYzMjAgfCB1Q29kZSAmIDEwMjM7XG4gICAgICAgIH1cbiAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZSAmIDI1NTtcbiAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZSA+PiA4O1xuICAgICAgICBub2RlSWR4ID0gMDtcbiAgICAgICAgc2VxU3RhcnQgPSBpMiArIDE7XG4gICAgICB9XG4gICAgICB0aGlzLm5vZGVJZHggPSBub2RlSWR4O1xuICAgICAgdGhpcy5wcmV2Qnl0ZXMgPSBzZXFTdGFydCA+PSAwID8gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYnVmLCBzZXFTdGFydCkgOiBwcmV2Qnl0ZXMuc2xpY2Uoc2VxU3RhcnQgKyBwcmV2T2Zmc2V0KS5jb25jYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYnVmKSk7XG4gICAgICByZXR1cm4gbmV3QnVmLnNsaWNlKDAsIGopLnRvU3RyaW5nKFwidWNzMlwiKTtcbiAgICB9O1xuICAgIERCQ1NEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciByZXQgPSBcIlwiO1xuICAgICAgd2hpbGUgKHRoaXMucHJldkJ5dGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0ICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICB2YXIgYnl0ZXNBcnIgPSB0aGlzLnByZXZCeXRlcy5zbGljZSgxKTtcbiAgICAgICAgdGhpcy5wcmV2Qnl0ZXMgPSBbXTtcbiAgICAgICAgdGhpcy5ub2RlSWR4ID0gMDtcbiAgICAgICAgaWYgKGJ5dGVzQXJyLmxlbmd0aCA+IDApXG4gICAgICAgICAgcmV0ICs9IHRoaXMud3JpdGUoYnl0ZXNBcnIpO1xuICAgICAgfVxuICAgICAgdGhpcy5wcmV2Qnl0ZXMgPSBbXTtcbiAgICAgIHRoaXMubm9kZUlkeCA9IDA7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH07XG4gICAgZnVuY3Rpb24gZmluZElkeCh0YWJsZSwgdmFsKSB7XG4gICAgICBpZiAodGFibGVbMF0gPiB2YWwpXG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIHZhciBsID0gMCwgciA9IHRhYmxlLmxlbmd0aDtcbiAgICAgIHdoaWxlIChsIDwgciAtIDEpIHtcbiAgICAgICAgdmFyIG1pZCA9IGwgKyAociAtIGwgKyAxID4+IDEpO1xuICAgICAgICBpZiAodGFibGVbbWlkXSA8PSB2YWwpXG4gICAgICAgICAgbCA9IG1pZDtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHIgPSBtaWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gbDtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9zaGlmdGppcy5qc29uXG52YXIgcmVxdWlyZV9zaGlmdGppczIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9zaGlmdGppcy5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBbXG4gICAgICBbXCIwXCIsIFwiXFwwXCIsIDEyOF0sXG4gICAgICBbXCJhMVwiLCBcIlxcdUZGNjFcIiwgNjJdLFxuICAgICAgW1wiODE0MFwiLCBcIlxcdTMwMDBcXHUzMDAxXFx1MzAwMlxcdUZGMENcXHVGRjBFXFx1MzBGQlxcdUZGMUFcXHVGRjFCXFx1RkYxRlxcdUZGMDFcXHUzMDlCXFx1MzA5Q1xceEI0XFx1RkY0MFxceEE4XFx1RkYzRVxcdUZGRTNcXHVGRjNGXFx1MzBGRFxcdTMwRkVcXHUzMDlEXFx1MzA5RVxcdTMwMDNcXHU0RUREXFx1MzAwNVxcdTMwMDZcXHUzMDA3XFx1MzBGQ1xcdTIwMTVcXHUyMDEwXFx1RkYwRlxcdUZGM0NcXHVGRjVFXFx1MjIyNVxcdUZGNUNcXHUyMDI2XFx1MjAyNVxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHVGRjA4XFx1RkYwOVxcdTMwMTRcXHUzMDE1XFx1RkYzQlxcdUZGM0RcXHVGRjVCXFx1RkY1RFxcdTMwMDhcIiwgOSwgXCJcXHVGRjBCXFx1RkYwRFxceEIxXFx4RDdcIl0sXG4gICAgICBbXCI4MTgwXCIsIFwiXFx4RjdcXHVGRjFEXFx1MjI2MFxcdUZGMUNcXHVGRjFFXFx1MjI2NlxcdTIyNjdcXHUyMjFFXFx1MjIzNFxcdTI2NDJcXHUyNjQwXFx4QjBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRkU1XFx1RkYwNFxcdUZGRTBcXHVGRkUxXFx1RkYwNVxcdUZGMDNcXHVGRjA2XFx1RkYwQVxcdUZGMjBcXHhBN1xcdTI2MDZcXHUyNjA1XFx1MjVDQlxcdTI1Q0ZcXHUyNUNFXFx1MjVDN1xcdTI1QzZcXHUyNUExXFx1MjVBMFxcdTI1QjNcXHUyNUIyXFx1MjVCRFxcdTI1QkNcXHUyMDNCXFx1MzAxMlxcdTIxOTJcXHUyMTkwXFx1MjE5MVxcdTIxOTNcXHUzMDEzXCJdLFxuICAgICAgW1wiODFiOFwiLCBcIlxcdTIyMDhcXHUyMjBCXFx1MjI4NlxcdTIyODdcXHUyMjgyXFx1MjI4M1xcdTIyMkFcXHUyMjI5XCJdLFxuICAgICAgW1wiODFjOFwiLCBcIlxcdTIyMjdcXHUyMjI4XFx1RkZFMlxcdTIxRDJcXHUyMUQ0XFx1MjIwMFxcdTIyMDNcIl0sXG4gICAgICBbXCI4MWRhXCIsIFwiXFx1MjIyMFxcdTIyQTVcXHUyMzEyXFx1MjIwMlxcdTIyMDdcXHUyMjYxXFx1MjI1MlxcdTIyNkFcXHUyMjZCXFx1MjIxQVxcdTIyM0RcXHUyMjFEXFx1MjIzNVxcdTIyMkJcXHUyMjJDXCJdLFxuICAgICAgW1wiODFmMFwiLCBcIlxcdTIxMkJcXHUyMDMwXFx1MjY2RlxcdTI2NkRcXHUyNjZBXFx1MjAyMFxcdTIwMjFcXHhCNlwiXSxcbiAgICAgIFtcIjgxZmNcIiwgXCJcXHUyNUVGXCJdLFxuICAgICAgW1wiODI0ZlwiLCBcIlxcdUZGMTBcIiwgOV0sXG4gICAgICBbXCI4MjYwXCIsIFwiXFx1RkYyMVwiLCAyNV0sXG4gICAgICBbXCI4MjgxXCIsIFwiXFx1RkY0MVwiLCAyNV0sXG4gICAgICBbXCI4MjlmXCIsIFwiXFx1MzA0MVwiLCA4Ml0sXG4gICAgICBbXCI4MzQwXCIsIFwiXFx1MzBBMVwiLCA2Ml0sXG4gICAgICBbXCI4MzgwXCIsIFwiXFx1MzBFMFwiLCAyMl0sXG4gICAgICBbXCI4MzlmXCIsIFwiXFx1MDM5MVwiLCAxNiwgXCJcXHUwM0EzXCIsIDZdLFxuICAgICAgW1wiODNiZlwiLCBcIlxcdTAzQjFcIiwgMTYsIFwiXFx1MDNDM1wiLCA2XSxcbiAgICAgIFtcIjg0NDBcIiwgXCJcXHUwNDEwXCIsIDUsIFwiXFx1MDQwMVxcdTA0MTZcIiwgMjVdLFxuICAgICAgW1wiODQ3MFwiLCBcIlxcdTA0MzBcIiwgNSwgXCJcXHUwNDUxXFx1MDQzNlwiLCA3XSxcbiAgICAgIFtcIjg0ODBcIiwgXCJcXHUwNDNFXCIsIDE3XSxcbiAgICAgIFtcIjg0OWZcIiwgXCJcXHUyNTAwXFx1MjUwMlxcdTI1MENcXHUyNTEwXFx1MjUxOFxcdTI1MTRcXHUyNTFDXFx1MjUyQ1xcdTI1MjRcXHUyNTM0XFx1MjUzQ1xcdTI1MDFcXHUyNTAzXFx1MjUwRlxcdTI1MTNcXHUyNTFCXFx1MjUxN1xcdTI1MjNcXHUyNTMzXFx1MjUyQlxcdTI1M0JcXHUyNTRCXFx1MjUyMFxcdTI1MkZcXHUyNTI4XFx1MjUzN1xcdTI1M0ZcXHUyNTFEXFx1MjUzMFxcdTI1MjVcXHUyNTM4XFx1MjU0MlwiXSxcbiAgICAgIFtcIjg3NDBcIiwgXCJcXHUyNDYwXCIsIDE5LCBcIlxcdTIxNjBcIiwgOV0sXG4gICAgICBbXCI4NzVmXCIsIFwiXFx1MzM0OVxcdTMzMTRcXHUzMzIyXFx1MzM0RFxcdTMzMThcXHUzMzI3XFx1MzMwM1xcdTMzMzZcXHUzMzUxXFx1MzM1N1xcdTMzMERcXHUzMzI2XFx1MzMyM1xcdTMzMkJcXHUzMzRBXFx1MzMzQlxcdTMzOUNcXHUzMzlEXFx1MzM5RVxcdTMzOEVcXHUzMzhGXFx1MzNDNFxcdTMzQTFcIl0sXG4gICAgICBbXCI4NzdlXCIsIFwiXFx1MzM3QlwiXSxcbiAgICAgIFtcIjg3ODBcIiwgXCJcXHUzMDFEXFx1MzAxRlxcdTIxMTZcXHUzM0NEXFx1MjEyMVxcdTMyQTRcIiwgNCwgXCJcXHUzMjMxXFx1MzIzMlxcdTMyMzlcXHUzMzdFXFx1MzM3RFxcdTMzN0NcXHUyMjUyXFx1MjI2MVxcdTIyMkJcXHUyMjJFXFx1MjIxMVxcdTIyMUFcXHUyMkE1XFx1MjIyMFxcdTIyMUZcXHUyMkJGXFx1MjIzNVxcdTIyMjlcXHUyMjJBXCJdLFxuICAgICAgW1wiODg5ZlwiLCBcIlxcdTRFOUNcXHU1NTE2XFx1NUEwM1xcdTk2M0ZcXHU1NEMwXFx1NjExQlxcdTYzMjhcXHU1OUY2XFx1OTAyMlxcdTg0NzVcXHU4MzFDXFx1N0E1MFxcdTYwQUFcXHU2M0UxXFx1NkUyNVxcdTY1RURcXHU4NDY2XFx1ODJBNlxcdTlCRjVcXHU2ODkzXFx1NTcyN1xcdTY1QTFcXHU2MjcxXFx1NUI5QlxcdTU5RDBcXHU4NjdCXFx1OThGNFxcdTdENjJcXHU3REJFXFx1OUI4RVxcdTYyMTZcXHU3QzlGXFx1ODhCN1xcdTVCODlcXHU1RUI1XFx1NjMwOVxcdTY2OTdcXHU2ODQ4XFx1OTVDN1xcdTk3OERcXHU2NzRGXFx1NEVFNVxcdTRGMEFcXHU0RjREXFx1NEY5RFxcdTUwNDlcXHU1NkYyXFx1NTkzN1xcdTU5RDRcXHU1QTAxXFx1NUMwOVxcdTYwREZcXHU2MTBGXFx1NjE3MFxcdTY2MTNcXHU2OTA1XFx1NzBCQVxcdTc1NEZcXHU3NTcwXFx1NzlGQlxcdTdEQURcXHU3REVGXFx1ODBDM1xcdTg0MEVcXHU4ODYzXFx1OEIwMlxcdTkwNTVcXHU5MDdBXFx1NTMzQlxcdTRFOTVcXHU0RUE1XFx1NTdERlxcdTgwQjJcXHU5MEMxXFx1NzhFRlxcdTRFMDBcXHU1OEYxXFx1NkVBMlxcdTkwMzhcXHU3QTMyXFx1ODMyOFxcdTgyOEJcXHU5QzJGXFx1NTE0MVxcdTUzNzBcXHU1NEJEXFx1NTRFMVxcdTU2RTBcXHU1OUZCXFx1NUYxNVxcdTk4RjJcXHU2REVCXFx1ODBFNFxcdTg1MkRcIl0sXG4gICAgICBbXCI4OTQwXCIsIFwiXFx1OTY2MlxcdTk2NzBcXHU5NkEwXFx1OTdGQlxcdTU0MEJcXHU1M0YzXFx1NUI4N1xcdTcwQ0ZcXHU3RkJEXFx1OEZDMlxcdTk2RThcXHU1MzZGXFx1OUQ1Q1xcdTdBQkFcXHU0RTExXFx1Nzg5M1xcdTgxRkNcXHU2RTI2XFx1NTYxOFxcdTU1MDRcXHU2QjFEXFx1ODUxQVxcdTlDM0JcXHU1OUU1XFx1NTNBOVxcdTZENjZcXHU3NERDXFx1OTU4RlxcdTU2NDJcXHU0RTkxXFx1OTA0QlxcdTk2RjJcXHU4MzRGXFx1OTkwQ1xcdTUzRTFcXHU1NUI2XFx1NUIzMFxcdTVGNzFcXHU2NjIwXFx1NjZGM1xcdTY4MDRcXHU2QzM4XFx1NkNGM1xcdTZEMjlcXHU3NDVCXFx1NzZDOFxcdTdBNEVcXHU5ODM0XFx1ODJGMVxcdTg4NUJcXHU4QTYwXFx1OTJFRFxcdTZEQjJcXHU3NUFCXFx1NzZDQVxcdTk5QzVcXHU2MEE2XFx1OEIwMVxcdThEOEFcXHU5NUIyXFx1Njk4RVxcdTUzQURcXHU1MTg2XCJdLFxuICAgICAgW1wiODk4MFwiLCBcIlxcdTU3MTJcXHU1ODMwXFx1NTk0NFxcdTVCQjRcXHU1RUY2XFx1NjAyOFxcdTYzQTlcXHU2M0Y0XFx1NkNCRlxcdTZGMTRcXHU3MDhFXFx1NzExNFxcdTcxNTlcXHU3MUQ1XFx1NzMzRlxcdTdFMDFcXHU4Mjc2XFx1ODJEMVxcdTg1OTdcXHU5MDYwXFx1OTI1QlxcdTlEMUJcXHU1ODY5XFx1NjVCQ1xcdTZDNUFcXHU3NTI1XFx1NTFGOVxcdTU5MkVcXHU1OTY1XFx1NUY4MFxcdTVGRENcXHU2MkJDXFx1NjVGQVxcdTZBMkFcXHU2QjI3XFx1NkJCNFxcdTczOEJcXHU3RkMxXFx1ODk1NlxcdTlEMkNcXHU5RDBFXFx1OUVDNFxcdTVDQTFcXHU2Qzk2XFx1ODM3QlxcdTUxMDRcXHU1QzRCXFx1NjFCNlxcdTgxQzZcXHU2ODc2XFx1NzI2MVxcdTRFNTlcXHU0RkZBXFx1NTM3OFxcdTYwNjlcXHU2RTI5XFx1N0E0RlxcdTk3RjNcXHU0RTBCXFx1NTMxNlxcdTRFRUVcXHU0RjU1XFx1NEYzRFxcdTRGQTFcXHU0RjczXFx1NTJBMFxcdTUzRUZcXHU1NjA5XFx1NTkwRlxcdTVBQzFcXHU1QkI2XFx1NUJFMVxcdTc5RDFcXHU2Njg3XFx1Njc5Q1xcdTY3QjZcXHU2QjRDXFx1NkNCM1xcdTcwNkJcXHU3M0MyXFx1Nzk4RFxcdTc5QkVcXHU3QTNDXFx1N0I4N1xcdTgyQjFcXHU4MkRCXFx1ODMwNFxcdTgzNzdcXHU4M0VGXFx1ODNEM1xcdTg3NjZcXHU4QUIyXFx1NTYyOVxcdThDQThcXHU4RkU2XFx1OTA0RVxcdTk3MUVcXHU4NjhBXFx1NEZDNFxcdTVDRThcXHU2MjExXFx1NzI1OVxcdTc1M0JcXHU4MUU1XFx1ODJCRFxcdTg2RkVcXHU4Q0MwXFx1OTZDNVxcdTk5MTNcXHU5OUQ1XFx1NEVDQlxcdTRGMUFcXHU4OUUzXFx1NTZERVxcdTU4NEFcXHU1OENBXFx1NUVGQlxcdTVGRUJcXHU2MDJBXFx1NjA5NFxcdTYwNjJcXHU2MUQwXFx1NjIxMlxcdTYyRDBcXHU2NTM5XCJdLFxuICAgICAgW1wiOGE0MFwiLCBcIlxcdTlCNDFcXHU2NjY2XFx1NjhCMFxcdTZENzdcXHU3MDcwXFx1NzU0Q1xcdTc2ODZcXHU3RDc1XFx1ODJBNVxcdTg3RjlcXHU5NThCXFx1OTY4RVxcdThDOURcXHU1MUYxXFx1NTJCRVxcdTU5MTZcXHU1NEIzXFx1NUJCM1xcdTVEMTZcXHU2MTY4XFx1Njk4MlxcdTZEQUZcXHU3ODhEXFx1ODRDQlxcdTg4NTdcXHU4QTcyXFx1OTNBN1xcdTlBQjhcXHU2RDZDXFx1OTlBOFxcdTg2RDlcXHU1N0EzXFx1NjdGRlxcdTg2Q0VcXHU5MjBFXFx1NTI4M1xcdTU2ODdcXHU1NDA0XFx1NUVEM1xcdTYyRTFcXHU2NEI5XFx1NjgzQ1xcdTY4MzhcXHU2QkJCXFx1NzM3MlxcdTc4QkFcXHU3QTZCXFx1ODk5QVxcdTg5RDJcXHU4RDZCXFx1OEYwM1xcdTkwRURcXHU5NUEzXFx1OTY5NFxcdTk3NjlcXHU1QjY2XFx1NUNCM1xcdTY5N0RcXHU5ODREXFx1OTg0RVxcdTYzOUJcXHU3QjIwXFx1NkEyQlwiXSxcbiAgICAgIFtcIjhhODBcIiwgXCJcXHU2QTdGXFx1NjhCNlxcdTlDMERcXHU2RjVGXFx1NTI3MlxcdTU1OURcXHU2MDcwXFx1NjJFQ1xcdTZEM0JcXHU2RTA3XFx1NkVEMVxcdTg0NUJcXHU4OTEwXFx1OEY0NFxcdTRFMTRcXHU5QzM5XFx1NTNGNlxcdTY5MUJcXHU2QTNBXFx1OTc4NFxcdTY4MkFcXHU1MTVDXFx1N0FDM1xcdTg0QjJcXHU5MURDXFx1OTM4Q1xcdTU2NUJcXHU5RDI4XFx1NjgyMlxcdTgzMDVcXHU4NDMxXFx1N0NBNVxcdTUyMDhcXHU4MkM1XFx1NzRFNlxcdTRFN0VcXHU0RjgzXFx1NTFBMFxcdTVCRDJcXHU1MjBBXFx1NTJEOFxcdTUyRTdcXHU1REZCXFx1NTU5QVxcdTU4MkFcXHU1OUU2XFx1NUI4Q1xcdTVCOThcXHU1QkRCXFx1NUU3MlxcdTVFNzlcXHU2MEEzXFx1NjExRlxcdTYxNjNcXHU2MUJFXFx1NjNEQlxcdTY1NjJcXHU2N0QxXFx1Njg1M1xcdTY4RkFcXHU2QjNFXFx1NkI1M1xcdTZDNTdcXHU2RjIyXFx1NkY5N1xcdTZGNDVcXHU3NEIwXFx1NzUxOFxcdTc2RTNcXHU3NzBCXFx1N0FGRlxcdTdCQTFcXHU3QzIxXFx1N0RFOVxcdTdGMzZcXHU3RkYwXFx1ODA5RFxcdTgyNjZcXHU4MzlFXFx1ODlCM1xcdThBQ0NcXHU4Q0FCXFx1OTA4NFxcdTk0NTFcXHU5NTkzXFx1OTU5MVxcdTk1QTJcXHU5NjY1XFx1OTdEM1xcdTk5MjhcXHU4MjE4XFx1NEUzOFxcdTU0MkJcXHU1Q0I4XFx1NURDQ1xcdTczQTlcXHU3NjRDXFx1NzczQ1xcdTVDQTlcXHU3RkVCXFx1OEQwQlxcdTk2QzFcXHU5ODExXFx1OTg1NFxcdTk4NThcXHU0RjAxXFx1NEYwRVxcdTUzNzFcXHU1NTlDXFx1NTY2OFxcdTU3RkFcXHU1OTQ3XFx1NUIwOVxcdTVCQzRcXHU1QzkwXFx1NUUwQ1xcdTVFN0VcXHU1RkNDXFx1NjNFRVxcdTY3M0FcXHU2NUQ3XFx1NjVFMlxcdTY3MUZcXHU2OENCXFx1NjhDNFwiXSxcbiAgICAgIFtcIjhiNDBcIiwgXCJcXHU2QTVGXFx1NUUzMFxcdTZCQzVcXHU2QzE3XFx1NkM3RFxcdTc1N0ZcXHU3OTQ4XFx1NUI2M1xcdTdBMDBcXHU3RDAwXFx1NUZCRFxcdTg5OEZcXHU4QTE4XFx1OENCNFxcdThENzdcXHU4RUNDXFx1OEYxRFxcdTk4RTJcXHU5QTBFXFx1OUIzQ1xcdTRFODBcXHU1MDdEXFx1NTEwMFxcdTU5OTNcXHU1QjlDXFx1NjIyRlxcdTYyODBcXHU2NEVDXFx1NkIzQVxcdTcyQTBcXHU3NTkxXFx1Nzk0N1xcdTdGQTlcXHU4N0ZCXFx1OEFCQ1xcdThCNzBcXHU2M0FDXFx1ODNDQVxcdTk3QTBcXHU1NDA5XFx1NTQwM1xcdTU1QUJcXHU2ODU0XFx1NkE1OFxcdThBNzBcXHU3ODI3XFx1Njc3NVxcdTlFQ0RcXHU1Mzc0XFx1NUJBMlxcdTgxMUFcXHU4NjUwXFx1OTAwNlxcdTRFMThcXHU0RTQ1XFx1NEVDN1xcdTRGMTFcXHU1M0NBXFx1NTQzOFxcdTVCQUVcXHU1RjEzXFx1NjAyNVxcdTY1NTFcIl0sXG4gICAgICBbXCI4YjgwXCIsIFwiXFx1NjczRFxcdTZDNDJcXHU2QzcyXFx1NkNFM1xcdTcwNzhcXHU3NDAzXFx1N0E3NlxcdTdBQUVcXHU3QjA4XFx1N0QxQVxcdTdDRkVcXHU3RDY2XFx1NjVFN1xcdTcyNUJcXHU1M0JCXFx1NUM0NVxcdTVERThcXHU2MkQyXFx1NjJFMFxcdTYzMTlcXHU2RTIwXFx1ODY1QVxcdThBMzFcXHU4REREXFx1OTJGOFxcdTZGMDFcXHU3OUE2XFx1OUI1QVxcdTRFQThcXHU0RUFCXFx1NEVBQ1xcdTRGOUJcXHU0RkEwXFx1NTBEMVxcdTUxNDdcXHU3QUY2XFx1NTE3MVxcdTUxRjZcXHU1MzU0XFx1NTMyMVxcdTUzN0ZcXHU1M0VCXFx1NTVBQ1xcdTU4ODNcXHU1Q0UxXFx1NUYzN1xcdTVGNEFcXHU2MDJGXFx1NjA1MFxcdTYwNkRcXHU2MzFGXFx1NjU1OVxcdTZBNEJcXHU2Q0MxXFx1NzJDMlxcdTcyRURcXHU3N0VGXFx1ODBGOFxcdTgxMDVcXHU4MjA4XFx1ODU0RVxcdTkwRjdcXHU5M0UxXFx1OTdGRlxcdTk5NTdcXHU5QTVBXFx1NEVGMFxcdTUxRERcXHU1QzJEXFx1NjY4MVxcdTY5NkRcXHU1QzQwXFx1NjZGMlxcdTY5NzVcXHU3Mzg5XFx1Njg1MFxcdTdDODFcXHU1MEM1XFx1NTJFNFxcdTU3NDdcXHU1REZFXFx1OTMyNlxcdTY1QTRcXHU2QjIzXFx1NkIzRFxcdTc0MzRcXHU3OTgxXFx1NzlCRFxcdTdCNEJcXHU3RENBXFx1ODJCOVxcdTgzQ0NcXHU4ODdGXFx1ODk1RlxcdThCMzlcXHU4RkQxXFx1OTFEMVxcdTU0MUZcXHU5MjgwXFx1NEU1RFxcdTUwMzZcXHU1M0U1XFx1NTMzQVxcdTcyRDdcXHU3Mzk2XFx1NzdFOVxcdTgyRTZcXHU4RUFGXFx1OTlDNlxcdTk5QzhcXHU5OUQyXFx1NTE3N1xcdTYxMUFcXHU4NjVFXFx1NTVCMFxcdTdBN0FcXHU1MDc2XFx1NUJEM1xcdTkwNDdcXHU5Njg1XFx1NEUzMlxcdTZBREJcXHU5MUU3XFx1NUM1MVxcdTVDNDhcIl0sXG4gICAgICBbXCI4YzQwXCIsIFwiXFx1NjM5OFxcdTdBOUZcXHU2QzkzXFx1OTc3NFxcdThGNjFcXHU3QUFBXFx1NzE4QVxcdTk2ODhcXHU3QzgyXFx1NjgxN1xcdTdFNzBcXHU2ODUxXFx1OTM2Q1xcdTUyRjJcXHU1NDFCXFx1ODVBQlxcdThBMTNcXHU3RkE0XFx1OEVDRFxcdTkwRTFcXHU1MzY2XFx1ODg4OFxcdTc5NDFcXHU0RkMyXFx1NTBCRVxcdTUyMTFcXHU1MTQ0XFx1NTU1M1xcdTU3MkRcXHU3M0VBXFx1NTc4QlxcdTU5NTFcXHU1RjYyXFx1NUY4NFxcdTYwNzVcXHU2MTc2XFx1NjE2N1xcdTYxQTlcXHU2M0IyXFx1NjQzQVxcdTY1NkNcXHU2NjZGXFx1Njg0MlxcdTZFMTNcXHU3NTY2XFx1N0EzRFxcdTdDRkJcXHU3RDRDXFx1N0Q5OVxcdTdFNEJcXHU3RjZCXFx1ODMwRVxcdTgzNEFcXHU4NkNEXFx1OEEwOFxcdThBNjNcXHU4QjY2XFx1OEVGRFxcdTk4MUFcXHU5RDhGXFx1ODJCOFxcdThGQ0VcXHU5QkU4XCJdLFxuICAgICAgW1wiOGM4MFwiLCBcIlxcdTUyODdcXHU2MjFGXFx1NjQ4M1xcdTZGQzBcXHU5Njk5XFx1Njg0MVxcdTUwOTFcXHU2QjIwXFx1NkM3QVxcdTZGNTRcXHU3QTc0XFx1N0Q1MFxcdTg4NDBcXHU4QTIzXFx1NjcwOFxcdTRFRjZcXHU1MDM5XFx1NTAyNlxcdTUwNjVcXHU1MTdDXFx1NTIzOFxcdTUyNjNcXHU1NUE3XFx1NTcwRlxcdTU4MDVcXHU1QUNDXFx1NUVGQVxcdTYxQjJcXHU2MUY4XFx1NjJGM1xcdTYzNzJcXHU2OTFDXFx1NkEyOVxcdTcyN0RcXHU3MkFDXFx1NzMyRVxcdTc4MTRcXHU3ODZGXFx1N0Q3OVxcdTc3MENcXHU4MEE5XFx1ODk4QlxcdThCMTlcXHU4Q0UyXFx1OEVEMlxcdTkwNjNcXHU5Mzc1XFx1OTY3QVxcdTk4NTVcXHU5QTEzXFx1OUU3OFxcdTUxNDNcXHU1MzlGXFx1NTNCM1xcdTVFN0JcXHU1RjI2XFx1NkUxQlxcdTZFOTBcXHU3Mzg0XFx1NzNGRVxcdTdENDNcXHU4MjM3XFx1OEEwMFxcdThBRkFcXHU5NjUwXFx1NEU0RVxcdTUwMEJcXHU1M0U0XFx1NTQ3Q1xcdTU2RkFcXHU1OUQxXFx1NUI2NFxcdTVERjFcXHU1RUFCXFx1NUYyN1xcdTYyMzhcXHU2NTQ1XFx1NjdBRlxcdTZFNTZcXHU3MkQwXFx1N0NDQVxcdTg4QjRcXHU4MEExXFx1ODBFMVxcdTgzRjBcXHU4NjRFXFx1OEE4N1xcdThERThcXHU5MjM3XFx1OTZDN1xcdTk4NjdcXHU5RjEzXFx1NEU5NFxcdTRFOTJcXHU0RjBEXFx1NTM0OFxcdTU0NDlcXHU1NDNFXFx1NUEyRlxcdTVGOENcXHU1RkExXFx1NjA5RlxcdTY4QTdcXHU2QThFXFx1NzQ1QVxcdTc4ODFcXHU4QTlFXFx1OEFBNFxcdThCNzdcXHU5MTkwXFx1NEU1RVxcdTlCQzlcXHU0RUE0XFx1NEY3Q1xcdTRGQUZcXHU1MDE5XFx1NTAxNlxcdTUxNDlcXHU1MTZDXFx1NTI5RlxcdTUyQjlcXHU1MkZFXFx1NTM5QVxcdTUzRTNcXHU1NDExXCJdLFxuICAgICAgW1wiOGQ0MFwiLCBcIlxcdTU0MEVcXHU1NTg5XFx1NTc1MVxcdTU3QTJcXHU1OTdEXFx1NUI1NFxcdTVCNURcXHU1QjhGXFx1NURFNVxcdTVERTdcXHU1REY3XFx1NUU3OFxcdTVFODNcXHU1RTlBXFx1NUVCN1xcdTVGMThcXHU2MDUyXFx1NjE0Q1xcdTYyOTdcXHU2MkQ4XFx1NjNBN1xcdTY1M0JcXHU2NjAyXFx1NjY0M1xcdTY2RjRcXHU2NzZEXFx1NjgyMVxcdTY4OTdcXHU2OUNCXFx1NkM1RlxcdTZEMkFcXHU2RDY5XFx1NkUyRlxcdTZFOURcXHU3NTMyXFx1NzY4N1xcdTc4NkNcXHU3QTNGXFx1N0NFMFxcdTdEMDVcXHU3RDE4XFx1N0Q1RVxcdTdEQjFcXHU4MDE1XFx1ODAwM1xcdTgwQUZcXHU4MEIxXFx1ODE1NFxcdTgxOEZcXHU4MjJBXFx1ODM1MlxcdTg4NENcXHU4ODYxXFx1OEIxQlxcdThDQTJcXHU4Q0ZDXFx1OTBDQVxcdTkxNzVcXHU5MjcxXFx1NzgzRlxcdTkyRkNcXHU5NUE0XFx1OTY0RFwiXSxcbiAgICAgIFtcIjhkODBcIiwgXCJcXHU5ODA1XFx1OTk5OVxcdTlBRDhcXHU5RDNCXFx1NTI1QlxcdTUyQUJcXHU1M0Y3XFx1NTQwOFxcdTU4RDVcXHU2MkY3XFx1NkZFMFxcdThDNkFcXHU4RjVGXFx1OUVCOVxcdTUxNEJcXHU1MjNCXFx1NTQ0QVxcdTU2RkRcXHU3QTQwXFx1OTE3N1xcdTlENjBcXHU5RUQyXFx1NzM0NFxcdTZGMDlcXHU4MTcwXFx1NzUxMVxcdTVGRkRcXHU2MERBXFx1OUFBOFxcdTcyREJcXHU4RkJDXFx1NkI2NFxcdTk4MDNcXHU0RUNBXFx1NTZGMFxcdTU3NjRcXHU1OEJFXFx1NUE1QVxcdTYwNjhcXHU2MUM3XFx1NjYwRlxcdTY2MDZcXHU2ODM5XFx1NjhCMVxcdTZERjdcXHU3NUQ1XFx1N0QzQVxcdTgyNkVcXHU5QjQyXFx1NEU5QlxcdTRGNTBcXHU1M0M5XFx1NTUwNlxcdTVENkZcXHU1REU2XFx1NURFRVxcdTY3RkJcXHU2Qzk5XFx1NzQ3M1xcdTc4MDJcXHU4QTUwXFx1OTM5NlxcdTg4REZcXHU1NzUwXFx1NUVBN1xcdTYzMkJcXHU1MEI1XFx1NTBBQ1xcdTUxOERcXHU2NzAwXFx1NTRDOVxcdTU4NUVcXHU1OUJCXFx1NUJCMFxcdTVGNjlcXHU2MjREXFx1NjNBMVxcdTY4M0RcXHU2QjczXFx1NkUwOFxcdTcwN0RcXHU5MUM3XFx1NzI4MFxcdTc4MTVcXHU3ODI2XFx1Nzk2RFxcdTY1OEVcXHU3RDMwXFx1ODNEQ1xcdTg4QzFcXHU4RjA5XFx1OTY5QlxcdTUyNjRcXHU1NzI4XFx1Njc1MFxcdTdGNkFcXHU4Q0ExXFx1NTFCNFxcdTU3NDJcXHU5NjJBXFx1NTgzQVxcdTY5OEFcXHU4MEI0XFx1NTRCMlxcdTVEMEVcXHU1N0ZDXFx1Nzg5NVxcdTlERkFcXHU0RjVDXFx1NTI0QVxcdTU0OEJcXHU2NDNFXFx1NjYyOFxcdTY3MTRcXHU2N0Y1XFx1N0E4NFxcdTdCNTZcXHU3RDIyXFx1OTMyRlxcdTY4NUNcXHU5QkFEXFx1N0IzOVxcdTUzMTlcXHU1MThBXFx1NTIzN1wiXSxcbiAgICAgIFtcIjhlNDBcIiwgXCJcXHU1QkRGXFx1NjJGNlxcdTY0QUVcXHU2NEU2XFx1NjcyRFxcdTZCQkFcXHU4NUE5XFx1OTZEMVxcdTc2OTBcXHU5QkQ2XFx1NjM0Q1xcdTkzMDZcXHU5QkFCXFx1NzZCRlxcdTY2NTJcXHU0RTA5XFx1NTA5OFxcdTUzQzJcXHU1QzcxXFx1NjBFOFxcdTY0OTJcXHU2NTYzXFx1Njg1RlxcdTcxRTZcXHU3M0NBXFx1NzUyM1xcdTdCOTdcXHU3RTgyXFx1ODY5NVxcdThCODNcXHU4Q0RCXFx1OTE3OFxcdTk5MTBcXHU2NUFDXFx1NjZBQlxcdTZCOEJcXHU0RUQ1XFx1NEVENFxcdTRGM0FcXHU0RjdGXFx1NTIzQVxcdTUzRjhcXHU1M0YyXFx1NTVFM1xcdTU2REJcXHU1OEVCXFx1NTlDQlxcdTU5QzlcXHU1OUZGXFx1NUI1MFxcdTVDNERcXHU1RTAyXFx1NUUyQlxcdTVGRDdcXHU2MDFEXFx1NjMwN1xcdTY1MkZcXHU1QjVDXFx1NjVBRlxcdTY1QkRcXHU2NUU4XFx1Njc5RFxcdTZCNjJcIl0sXG4gICAgICBbXCI4ZTgwXCIsIFwiXFx1NkI3QlxcdTZDMEZcXHU3MzQ1XFx1Nzk0OVxcdTc5QzFcXHU3Q0Y4XFx1N0QxOVxcdTdEMkJcXHU4MEEyXFx1ODEwMlxcdTgxRjNcXHU4OTk2XFx1OEE1RVxcdThBNjlcXHU4QTY2XFx1OEE4Q1xcdThBRUVcXHU4Q0M3XFx1OENEQ1xcdTk2Q0NcXHU5OEZDXFx1NkI2RlxcdTRFOEJcXHU0RjNDXFx1NEY4RFxcdTUxNTBcXHU1QjU3XFx1NUJGQVxcdTYxNDhcXHU2MzAxXFx1NjY0MlxcdTZCMjFcXHU2RUNCXFx1NkNCQlxcdTcyM0VcXHU3NEJEXFx1NzVENFxcdTc4QzFcXHU3OTNBXFx1ODAwQ1xcdTgwMzNcXHU4MUVBXFx1ODQ5NFxcdThGOUVcXHU2QzUwXFx1OUU3RlxcdTVGMEZcXHU4QjU4XFx1OUQyQlxcdTdBRkFcXHU4RUY4XFx1NUI4RFxcdTk2RUJcXHU0RTAzXFx1NTNGMVxcdTU3RjdcXHU1OTMxXFx1NUFDOVxcdTVCQTRcXHU2MDg5XFx1NkU3RlxcdTZGMDZcXHU3NUJFXFx1OENFQVxcdTVCOUZcXHU4NTAwXFx1N0JFMFxcdTUwNzJcXHU2N0Y0XFx1ODI5RFxcdTVDNjFcXHU4NTRBXFx1N0UxRVxcdTgyMEVcXHU1MTk5XFx1NUMwNFxcdTYzNjhcXHU4RDY2XFx1NjU5Q1xcdTcxNkVcXHU3OTNFXFx1N0QxN1xcdTgwMDVcXHU4QjFEXFx1OEVDQVxcdTkwNkVcXHU4NkM3XFx1OTBBQVxcdTUwMUZcXHU1MkZBXFx1NUMzQVxcdTY3NTNcXHU3MDdDXFx1NzIzNVxcdTkxNENcXHU5MUM4XFx1OTMyQlxcdTgyRTVcXHU1QkMyXFx1NUYzMVxcdTYwRjlcXHU0RTNCXFx1NTNENlxcdTVCODhcXHU2MjRCXFx1NjczMVxcdTZCOEFcXHU3MkU5XFx1NzNFMFxcdTdBMkVcXHU4MTZCXFx1OERBM1xcdTkxNTJcXHU5OTk2XFx1NTExMlxcdTUzRDdcXHU1NDZBXFx1NUJGRlxcdTYzODhcXHU2QTM5XFx1N0RBQ1xcdTk3MDBcXHU1NkRBXFx1NTNDRVxcdTU0NjhcIl0sXG4gICAgICBbXCI4ZjQwXCIsIFwiXFx1NUI5N1xcdTVDMzFcXHU1RERFXFx1NEZFRVxcdTYxMDFcXHU2MkZFXFx1NkQzMlxcdTc5QzBcXHU3OUNCXFx1N0Q0MlxcdTdFNERcXHU3RkQyXFx1ODFFRFxcdTgyMUZcXHU4NDkwXFx1ODg0NlxcdTg5NzJcXHU4QjkwXFx1OEU3NFxcdThGMkZcXHU5MDMxXFx1OTE0QlxcdTkxNkNcXHU5NkM2XFx1OTE5Q1xcdTRFQzBcXHU0RjRGXFx1NTE0NVxcdTUzNDFcXHU1RjkzXFx1NjIwRVxcdTY3RDRcXHU2QzQxXFx1NkUwQlxcdTczNjNcXHU3RTI2XFx1OTFDRFxcdTkyODNcXHU1M0Q0XFx1NTkxOVxcdTVCQkZcXHU2REQxXFx1Nzk1RFxcdTdFMkVcXHU3QzlCXFx1NTg3RVxcdTcxOUZcXHU1MUZBXFx1ODg1M1xcdThGRjBcXHU0RkNBXFx1NUNGQlxcdTY2MjVcXHU3N0FDXFx1N0FFM1xcdTgyMUNcXHU5OUZGXFx1NTFDNlxcdTVGQUFcXHU2NUVDXFx1Njk2RlxcdTZCODlcXHU2REYzXCJdLFxuICAgICAgW1wiOGY4MFwiLCBcIlxcdTZFOTZcXHU2RjY0XFx1NzZGRVxcdTdEMTRcXHU1REUxXFx1OTA3NVxcdTkxODdcXHU5ODA2XFx1NTFFNlxcdTUyMURcXHU2MjQwXFx1NjY5MVxcdTY2RDlcXHU2RTFBXFx1NUVCNlxcdTdERDJcXHU3RjcyXFx1NjZGOFxcdTg1QUZcXHU4NUY3XFx1OEFGOFxcdTUyQTlcXHU1M0Q5XFx1NTk3M1xcdTVFOEZcXHU1RjkwXFx1NjA1NVxcdTkyRTRcXHU5NjY0XFx1NTBCN1xcdTUxMUZcXHU1MkREXFx1NTMyMFxcdTUzNDdcXHU1M0VDXFx1NTRFOFxcdTU1NDZcXHU1NTMxXFx1NTYxN1xcdTU5NjhcXHU1OUJFXFx1NUEzQ1xcdTVCQjVcXHU1QzA2XFx1NUMwRlxcdTVDMTFcXHU1QzFBXFx1NUU4NFxcdTVFOEFcXHU1RUUwXFx1NUY3MFxcdTYyN0ZcXHU2Mjg0XFx1NjJEQlxcdTYzOENcXHU2Mzc3XFx1NjYwN1xcdTY2MENcXHU2NjJEXFx1NjY3NlxcdTY3N0VcXHU2OEEyXFx1NkExRlxcdTZBMzVcXHU2Q0JDXFx1NkQ4OFxcdTZFMDlcXHU2RTU4XFx1NzEzQ1xcdTcxMjZcXHU3MTY3XFx1NzVDN1xcdTc3MDFcXHU3ODVEXFx1NzkwMVxcdTc5NjVcXHU3OUYwXFx1N0FFMFxcdTdCMTFcXHU3Q0E3XFx1N0QzOVxcdTgwOTZcXHU4M0Q2XFx1ODQ4QlxcdTg1NDlcXHU4ODVEXFx1ODhGM1xcdThBMUZcXHU4QTNDXFx1OEE1NFxcdThBNzNcXHU4QzYxXFx1OENERVxcdTkxQTRcXHU5MjY2XFx1OTM3RVxcdTk0MThcXHU5NjlDXFx1OTc5OFxcdTRFMEFcXHU0RTA4XFx1NEUxRVxcdTRFNTdcXHU1MTk3XFx1NTI3MFxcdTU3Q0VcXHU1ODM0XFx1NThDQ1xcdTVCMjJcXHU1RTM4XFx1NjBDNVxcdTY0RkVcXHU2NzYxXFx1Njc1NlxcdTZENDRcXHU3MkI2XFx1NzU3M1xcdTdBNjNcXHU4NEI4XFx1OEI3MlxcdTkxQjhcXHU5MzIwXFx1NTYzMVxcdTU3RjRcXHU5OEZFXCJdLFxuICAgICAgW1wiOTA0MFwiLCBcIlxcdTYyRURcXHU2OTBEXFx1NkI5NlxcdTcxRURcXHU3RTU0XFx1ODA3N1xcdTgyNzJcXHU4OUU2XFx1OThERlxcdTg3NTVcXHU4RkIxXFx1NUMzQlxcdTRGMzhcXHU0RkUxXFx1NEZCNVxcdTU1MDdcXHU1QTIwXFx1NUJERFxcdTVCRTlcXHU1RkMzXFx1NjE0RVxcdTYzMkZcXHU2NUIwXFx1NjY0QlxcdTY4RUVcXHU2OTlCXFx1NkQ3OFxcdTZERjFcXHU3NTMzXFx1NzVCOVxcdTc3MUZcXHU3OTVFXFx1NzlFNlxcdTdEMzNcXHU4MUUzXFx1ODJBRlxcdTg1QUFcXHU4OUFBXFx1OEEzQVxcdThFQUJcXHU4RjlCXFx1OTAzMlxcdTkxRERcXHU5NzA3XFx1NEVCQVxcdTRFQzFcXHU1MjAzXFx1NTg3NVxcdTU4RUNcXHU1QzBCXFx1NzUxQVxcdTVDM0RcXHU4MTRFXFx1OEEwQVxcdThGQzVcXHU5NjYzXFx1OTc2RFxcdTdCMjVcXHU4QUNGXFx1OTgwOFxcdTkxNjJcXHU1NkYzXFx1NTNBOFwiXSxcbiAgICAgIFtcIjkwODBcIiwgXCJcXHU5MDE3XFx1NTQzOVxcdTU3ODJcXHU1RTI1XFx1NjNBOFxcdTZDMzRcXHU3MDhBXFx1Nzc2MVxcdTdDOEJcXHU3RkUwXFx1ODg3MFxcdTkwNDJcXHU5MTU0XFx1OTMxMFxcdTkzMThcXHU5NjhGXFx1NzQ1RVxcdTlBQzRcXHU1RDA3XFx1NUQ2OVxcdTY1NzBcXHU2N0EyXFx1OERBOFxcdTk2REJcXHU2MzZFXFx1Njc0OVxcdTY5MTlcXHU4M0M1XFx1OTgxN1xcdTk2QzBcXHU4OEZFXFx1NkY4NFxcdTY0N0FcXHU1QkY4XFx1NEUxNlxcdTcwMkNcXHU3NTVEXFx1NjYyRlxcdTUxQzRcXHU1MjM2XFx1NTJFMlxcdTU5RDNcXHU1RjgxXFx1NjAyN1xcdTYyMTBcXHU2NTNGXFx1NjU3NFxcdTY2MUZcXHU2Njc0XFx1NjhGMlxcdTY4MTZcXHU2QjYzXFx1NkUwNVxcdTcyNzJcXHU3NTFGXFx1NzZEQlxcdTdDQkVcXHU4MDU2XFx1NThGMFxcdTg4RkRcXHU4OTdGXFx1OEFBMFxcdThBOTNcXHU4QUNCXFx1OTAxRFxcdTkxOTJcXHU5NzUyXFx1OTc1OVxcdTY1ODlcXHU3QTBFXFx1ODEwNlxcdTk2QkJcXHU1RTJEXFx1NjBEQ1xcdTYyMUFcXHU2NUE1XFx1NjYxNFxcdTY3OTBcXHU3N0YzXFx1N0E0RFxcdTdDNERcXHU3RTNFXFx1ODEwQVxcdThDQUNcXHU4RDY0XFx1OERFMVxcdThFNUZcXHU3OEE5XFx1NTIwN1xcdTYyRDlcXHU2M0E1XFx1NjQ0MlxcdTYyOThcXHU4QTJEXFx1N0E4M1xcdTdCQzBcXHU4QUFDXFx1OTZFQVxcdTdENzZcXHU4MjBDXFx1ODc0OVxcdTRFRDlcXHU1MTQ4XFx1NTM0M1xcdTUzNjBcXHU1QkEzXFx1NUMwMlxcdTVDMTZcXHU1REREXFx1NjIyNlxcdTYyNDdcXHU2NEIwXFx1NjgxM1xcdTY4MzRcXHU2Q0M5XFx1NkQ0NVxcdTZEMTdcXHU2N0QzXFx1NkY1Q1xcdTcxNEVcXHU3MTdEXFx1NjVDQlxcdTdBN0ZcXHU3QkFEXFx1N0REQVwiXSxcbiAgICAgIFtcIjkxNDBcIiwgXCJcXHU3RTRBXFx1N0ZBOFxcdTgxN0FcXHU4MjFCXFx1ODIzOVxcdTg1QTZcXHU4QTZFXFx1OENDRVxcdThERjVcXHU5MDc4XFx1OTA3N1xcdTkyQURcXHU5MjkxXFx1OTU4M1xcdTlCQUVcXHU1MjREXFx1NTU4NFxcdTZGMzhcXHU3MTM2XFx1NTE2OFxcdTc5ODVcXHU3RTU1XFx1ODFCM1xcdTdDQ0VcXHU1NjRDXFx1NTg1MVxcdTVDQThcXHU2M0FBXFx1NjZGRVxcdTY2RkRcXHU2OTVBXFx1NzJEOVxcdTc1OEZcXHU3NThFXFx1NzkwRVxcdTc5NTZcXHU3OURGXFx1N0M5N1xcdTdEMjBcXHU3RDQ0XFx1ODYwN1xcdThBMzRcXHU5NjNCXFx1OTA2MVxcdTlGMjBcXHU1MEU3XFx1NTI3NVxcdTUzQ0NcXHU1M0UyXFx1NTAwOVxcdTU1QUFcXHU1OEVFXFx1NTk0RlxcdTcyM0RcXHU1QjhCXFx1NUM2NFxcdTUzMURcXHU2MEUzXFx1NjBGM1xcdTYzNUNcXHU2MzgzXFx1NjMzRlxcdTYzQkJcIl0sXG4gICAgICBbXCI5MTgwXCIsIFwiXFx1NjRDRFxcdTY1RTlcXHU2NkY5XFx1NURFM1xcdTY5Q0RcXHU2OUZEXFx1NkYxNVxcdTcxRTVcXHU0RTg5XFx1NzVFOVxcdTc2RjhcXHU3QTkzXFx1N0NERlxcdTdEQ0ZcXHU3RDlDXFx1ODA2MVxcdTgzNDlcXHU4MzU4XFx1ODQ2Q1xcdTg0QkNcXHU4NUZCXFx1ODhDNVxcdThENzBcXHU5MDAxXFx1OTA2RFxcdTkzOTdcXHU5NzFDXFx1OUExMlxcdTUwQ0ZcXHU1ODk3XFx1NjE4RVxcdTgxRDNcXHU4NTM1XFx1OEQwOFxcdTkwMjBcXHU0RkMzXFx1NTA3NFxcdTUyNDdcXHU1MzczXFx1NjA2RlxcdTYzNDlcXHU2NzVGXFx1NkUyQ1xcdThEQjNcXHU5MDFGXFx1NEZEN1xcdTVDNUVcXHU4Q0NBXFx1NjVDRlxcdTdEOUFcXHU1MzUyXFx1ODg5NlxcdTUxNzZcXHU2M0MzXFx1NUI1OFxcdTVCNkJcXHU1QzBBXFx1NjQwRFxcdTY3NTFcXHU5MDVDXFx1NEVENlxcdTU5MUFcXHU1OTJBXFx1NkM3MFxcdThBNTFcXHU1NTNFXFx1NTgxNVxcdTU5QTVcXHU2MEYwXFx1NjI1M1xcdTY3QzFcXHU4MjM1XFx1Njk1NVxcdTk2NDBcXHU5OUM0XFx1OUEyOFxcdTRGNTNcXHU1ODA2XFx1NUJGRVxcdTgwMTBcXHU1Q0IxXFx1NUUyRlxcdTVGODVcXHU2MDIwXFx1NjE0QlxcdTYyMzRcXHU2NkZGXFx1NkNGMFxcdTZFREVcXHU4MENFXFx1ODE3RlxcdTgyRDRcXHU4ODhCXFx1OENCOFxcdTkwMDBcXHU5MDJFXFx1OTY4QVxcdTlFREJcXHU5QkRCXFx1NEVFM1xcdTUzRjBcXHU1OTI3XFx1N0IyQ1xcdTkxOERcXHU5ODRDXFx1OURGOVxcdTZFRERcXHU3MDI3XFx1NTM1M1xcdTU1NDRcXHU1Qjg1XFx1NjI1OFxcdTYyOUVcXHU2MkQzXFx1NkNBMlxcdTZGRUZcXHU3NDIyXFx1OEExN1xcdTk0MzhcXHU2RkMxXFx1OEFGRVxcdTgzMzhcXHU1MUU3XFx1ODZGOFxcdTUzRUFcIl0sXG4gICAgICBbXCI5MjQwXCIsIFwiXFx1NTNFOVxcdTRGNDZcXHU5MDU0XFx1OEZCMFxcdTU5NkFcXHU4MTMxXFx1NURGRFxcdTdBRUFcXHU4RkJGXFx1NjhEQVxcdThDMzdcXHU3MkY4XFx1OUM0OFxcdTZBM0RcXHU4QUIwXFx1NEUzOVxcdTUzNThcXHU1NjA2XFx1NTc2NlxcdTYyQzVcXHU2M0EyXFx1NjVFNlxcdTZCNEVcXHU2REUxXFx1NkU1QlxcdTcwQURcXHU3N0VEXFx1N0FFRlxcdTdCQUFcXHU3REJCXFx1ODAzRFxcdTgwQzZcXHU4NkNCXFx1OEE5NVxcdTkzNUJcXHU1NkUzXFx1NThDN1xcdTVGM0VcXHU2NUFEXFx1NjY5NlxcdTZBODBcXHU2QkI1XFx1NzUzN1xcdThBQzdcXHU1MDI0XFx1NzdFNVxcdTU3MzBcXHU1RjFCXFx1NjA2NVxcdTY2N0FcXHU2QzYwXFx1NzVGNFxcdTdBMUFcXHU3RjZFXFx1ODFGNFxcdTg3MThcXHU5MDQ1XFx1OTlCM1xcdTdCQzlcXHU3NTVDXFx1N0FGOVxcdTdCNTFcXHU4NEM0XCJdLFxuICAgICAgW1wiOTI4MFwiLCBcIlxcdTkwMTBcXHU3OUU5XFx1N0E5MlxcdTgzMzZcXHU1QUUxXFx1Nzc0MFxcdTRFMkRcXHU0RUYyXFx1NUI5OVxcdTVGRTBcXHU2MkJEXFx1NjYzQ1xcdTY3RjFcXHU2Q0U4XFx1ODY2QlxcdTg4NzdcXHU4QTNCXFx1OTE0RVxcdTkyRjNcXHU5OUQwXFx1NkExN1xcdTcwMjZcXHU3MzJBXFx1ODJFN1xcdTg0NTdcXHU4Q0FGXFx1NEUwMVxcdTUxNDZcXHU1MUNCXFx1NTU4QlxcdTVCRjVcXHU1RTE2XFx1NUUzM1xcdTVFODFcXHU1RjE0XFx1NUYzNVxcdTVGNkJcXHU1RkI0XFx1NjFGMlxcdTYzMTFcXHU2NkEyXFx1NjcxRFxcdTZGNkVcXHU3MjUyXFx1NzUzQVxcdTc3M0FcXHU4MDc0XFx1ODEzOVxcdTgxNzhcXHU4Nzc2XFx1OEFCRlxcdThBRENcXHU4RDg1XFx1OERGM1xcdTkyOUFcXHU5NTc3XFx1OTgwMlxcdTlDRTVcXHU1MkM1XFx1NjM1N1xcdTc2RjRcXHU2NzE1XFx1NkM4OFxcdTczQ0RcXHU4Q0MzXFx1OTNBRVxcdTk2NzNcXHU2RDI1XFx1NTg5Q1xcdTY5MEVcXHU2OUNDXFx1OEZGRFxcdTkzOUFcXHU3NURCXFx1OTAxQVxcdTU4NUFcXHU2ODAyXFx1NjNCNFxcdTY5RkJcXHU0RjQzXFx1NkYyQ1xcdTY3RDhcXHU4RkJCXFx1ODUyNlxcdTdEQjRcXHU5MzU0XFx1NjkzRlxcdTZGNzBcXHU1NzZBXFx1NThGN1xcdTVCMkNcXHU3RDJDXFx1NzIyQVxcdTU0MEFcXHU5MUUzXFx1OURCNFxcdTRFQURcXHU0RjRFXFx1NTA1Q1xcdTUwNzVcXHU1MjQzXFx1OEM5RVxcdTU0NDhcXHU1ODI0XFx1NUI5QVxcdTVFMURcXHU1RTk1XFx1NUVBRFxcdTVFRjdcXHU1RjFGXFx1NjA4Q1xcdTYyQjVcXHU2MzNBXFx1NjNEMFxcdTY4QUZcXHU2QzQwXFx1Nzg4N1xcdTc5OEVcXHU3QTBCXFx1N0RFMFxcdTgyNDdcXHU4QTAyXFx1OEFFNlxcdThFNDRcXHU5MDEzXCJdLFxuICAgICAgW1wiOTM0MFwiLCBcIlxcdTkwQjhcXHU5MTJEXFx1OTFEOFxcdTlGMEVcXHU2Q0U1XFx1NjQ1OFxcdTY0RTJcXHU2NTc1XFx1NkVGNFxcdTc2ODRcXHU3QjFCXFx1OTA2OVxcdTkzRDFcXHU2RUJBXFx1NTRGMlxcdTVGQjlcXHU2NEE0XFx1OEY0RFxcdThGRURcXHU5MjQ0XFx1NTE3OFxcdTU4NkJcXHU1OTI5XFx1NUM1NVxcdTVFOTdcXHU2REZCXFx1N0U4RlxcdTc1MUNcXHU4Q0JDXFx1OEVFMlxcdTk4NUJcXHU3MEI5XFx1NEYxRFxcdTZCQkZcXHU2RkIxXFx1NzUzMFxcdTk2RkJcXHU1MTRFXFx1NTQxMFxcdTU4MzVcXHU1ODU3XFx1NTlBQ1xcdTVDNjBcXHU1RjkyXFx1NjU5N1xcdTY3NUNcXHU2RTIxXFx1NzY3QlxcdTgzREZcXHU4Q0VEXFx1OTAxNFxcdTkwRkRcXHU5MzREXFx1NzgyNVxcdTc4M0FcXHU1MkFBXFx1NUVBNlxcdTU3MUZcXHU1OTc0XFx1NjAxMlxcdTUwMTJcXHU1MTVBXFx1NTFBQ1wiXSxcbiAgICAgIFtcIjkzODBcIiwgXCJcXHU1MUNEXFx1NTIwMFxcdTU1MTBcXHU1ODU0XFx1NTg1OFxcdTU5NTdcXHU1Qjk1XFx1NUNGNlxcdTVEOEJcXHU2MEJDXFx1NjI5NVxcdTY0MkRcXHU2NzcxXFx1Njg0M1xcdTY4QkNcXHU2OERGXFx1NzZEN1xcdTZERDhcXHU2RTZGXFx1NkQ5QlxcdTcwNkZcXHU3MUM4XFx1NUY1M1xcdTc1RDhcXHU3OTc3XFx1N0I0OVxcdTdCNTRcXHU3QjUyXFx1N0NENlxcdTdENzFcXHU1MjMwXFx1ODQ2M1xcdTg1NjlcXHU4NUU0XFx1OEEwRVxcdThCMDRcXHU4QzQ2XFx1OEUwRlxcdTkwMDNcXHU5MDBGXFx1OTQxOVxcdTk2NzZcXHU5ODJEXFx1OUEzMFxcdTk1RDhcXHU1MENEXFx1NTJENVxcdTU0MENcXHU1ODAyXFx1NUMwRVxcdTYxQTdcXHU2NDlFXFx1NkQxRVxcdTc3QjNcXHU3QUU1XFx1ODBGNFxcdTg0MDRcXHU5MDUzXFx1OTI4NVxcdTVDRTBcXHU5RDA3XFx1NTMzRlxcdTVGOTdcXHU1RkIzXFx1NkQ5Q1xcdTcyNzlcXHU3NzYzXFx1NzlCRlxcdTdCRTRcXHU2QkQyXFx1NzJFQ1xcdThBQURcXHU2ODAzXFx1NkE2MVxcdTUxRjhcXHU3QTgxXFx1NjkzNFxcdTVDNEFcXHU5Q0Y2XFx1ODJFQlxcdTVCQzVcXHU5MTQ5XFx1NzAxRVxcdTU2NzhcXHU1QzZGXFx1NjBDN1xcdTY1NjZcXHU2QzhDXFx1OEM1QVxcdTkwNDFcXHU5ODEzXFx1NTQ1MVxcdTY2QzdcXHU5MjBEXFx1NTk0OFxcdTkwQTNcXHU1MTg1XFx1NEU0RFxcdTUxRUFcXHU4NTk5XFx1OEIwRVxcdTcwNThcXHU2MzdBXFx1OTM0QlxcdTY5NjJcXHU5OUI0XFx1N0UwNFxcdTc1NzdcXHU1MzU3XFx1Njk2MFxcdThFREZcXHU5NkUzXFx1NkM1RFxcdTRFOENcXHU1QzNDXFx1NUYxMFxcdThGRTlcXHU1MzAyXFx1OENEMVxcdTgwODlcXHU4Njc5XFx1NUVGRlxcdTY1RTVcXHU0RTczXFx1NTE2NVwiXSxcbiAgICAgIFtcIjk0NDBcIiwgXCJcXHU1OTgyXFx1NUMzRlxcdTk3RUVcXHU0RUZCXFx1NTk4QVxcdTVGQ0RcXHU4QThEXFx1NkZFMVxcdTc5QjBcXHU3OTYyXFx1NUJFN1xcdTg0NzFcXHU3MzJCXFx1NzFCMVxcdTVFNzRcXHU1RkY1XFx1NjM3QlxcdTY0OUFcXHU3MUMzXFx1N0M5OFxcdTRFNDNcXHU1RUZDXFx1NEU0QlxcdTU3RENcXHU1NkEyXFx1NjBBOVxcdTZGQzNcXHU3RDBEXFx1ODBGRFxcdTgxMzNcXHU4MUJGXFx1OEZCMlxcdTg5OTdcXHU4NkE0XFx1NURGNFxcdTYyOEFcXHU2NEFEXFx1ODk4N1xcdTY3NzdcXHU2Q0UyXFx1NkQzRVxcdTc0MzZcXHU3ODM0XFx1NUE0NlxcdTdGNzVcXHU4MkFEXFx1OTlBQ1xcdTRGRjNcXHU1RUMzXFx1NjJERFxcdTYzOTJcXHU2NTU3XFx1Njc2RlxcdTc2QzNcXHU3MjRDXFx1ODBDQ1xcdTgwQkFcXHU4RjI5XFx1OTE0RFxcdTUwMERcXHU1N0Y5XFx1NUE5MlxcdTY4ODVcIl0sXG4gICAgICBbXCI5NDgwXCIsIFwiXFx1Njk3M1xcdTcxNjRcXHU3MkZEXFx1OENCN1xcdTU4RjJcXHU4Q0UwXFx1OTY2QVxcdTkwMTlcXHU4NzdGXFx1NzlFNFxcdTc3RTdcXHU4NDI5XFx1NEYyRlxcdTUyNjVcXHU1MzVBXFx1NjJDRFxcdTY3Q0ZcXHU2Q0NBXFx1NzY3RFxcdTdCOTRcXHU3Qzk1XFx1ODIzNlxcdTg1ODRcXHU4RkVCXFx1NjZERFxcdTZGMjBcXHU3MjA2XFx1N0UxQlxcdTgzQUJcXHU5OUMxXFx1OUVBNlxcdTUxRkRcXHU3QkIxXFx1Nzg3MlxcdTdCQjhcXHU4MDg3XFx1N0I0OFxcdTZBRThcXHU1RTYxXFx1ODA4Q1xcdTc1NTFcXHU3NTYwXFx1NTE2QlxcdTkyNjJcXHU2RThDXFx1NzY3QVxcdTkxOTdcXHU5QUVBXFx1NEYxMFxcdTdGNzBcXHU2MjlDXFx1N0I0RlxcdTk1QTVcXHU5Q0U5XFx1NTY3QVxcdTU4NTlcXHU4NkU0XFx1OTZCQ1xcdTRGMzRcXHU1MjI0XFx1NTM0QVxcdTUzQ0RcXHU1M0RCXFx1NUUwNlxcdTY0MkNcXHU2NTkxXFx1Njc3RlxcdTZDM0VcXHU2QzRFXFx1NzI0OFxcdTcyQUZcXHU3M0VEXFx1NzU1NFxcdTdFNDFcXHU4MjJDXFx1ODVFOVxcdThDQTlcXHU3QkM0XFx1OTFDNlxcdTcxNjlcXHU5ODEyXFx1OThFRlxcdTYzM0RcXHU2NjY5XFx1NzU2QVxcdTc2RTRcXHU3OEQwXFx1ODU0M1xcdTg2RUVcXHU1MzJBXFx1NTM1MVxcdTU0MjZcXHU1OTgzXFx1NUU4N1xcdTVGN0NcXHU2MEIyXFx1NjI0OVxcdTYyNzlcXHU2MkFCXFx1NjU5MFxcdTZCRDRcXHU2Q0NDXFx1NzVCMlxcdTc2QUVcXHU3ODkxXFx1NzlEOFxcdTdEQ0JcXHU3Rjc3XFx1ODBBNVxcdTg4QUJcXHU4QUI5XFx1OENCQlxcdTkwN0ZcXHU5NzVFXFx1OThEQlxcdTZBMEJcXHU3QzM4XFx1NTA5OVxcdTVDM0VcXHU1RkFFXFx1Njc4N1xcdTZCRDhcXHU3NDM1XFx1NzcwOVxcdTdGOEVcIl0sXG4gICAgICBbXCI5NTQwXCIsIFwiXFx1OUYzQlxcdTY3Q0FcXHU3QTE3XFx1NTMzOVxcdTc1OEJcXHU5QUVEXFx1NUY2NlxcdTgxOURcXHU4M0YxXFx1ODA5OFxcdTVGM0NcXHU1RkM1XFx1NzU2MlxcdTdCNDZcXHU5MDNDXFx1Njg2N1xcdTU5RUJcXHU1QTlCXFx1N0QxMFxcdTc2N0VcXHU4QjJDXFx1NEZGNVxcdTVGNkFcXHU2QTE5XFx1NkMzN1xcdTZGMDJcXHU3NEUyXFx1Nzk2OFxcdTg4NjhcXHU4QTU1XFx1OEM3OVxcdTVFREZcXHU2M0NGXFx1NzVDNVxcdTc5RDJcXHU4MkQ3XFx1OTMyOFxcdTkyRjJcXHU4NDlDXFx1ODZFRFxcdTlDMkRcXHU1NEMxXFx1NUY2Q1xcdTY1OENcXHU2RDVDXFx1NzAxNVxcdThDQTdcXHU4Q0QzXFx1OTgzQlxcdTY1NEZcXHU3NEY2XFx1NEUwRFxcdTRFRDhcXHU1N0UwXFx1NTkyQlxcdTVBNjZcXHU1QkNDXFx1NTFBOFxcdTVFMDNcXHU1RTlDXFx1NjAxNlxcdTYyNzZcXHU2NTc3XCJdLFxuICAgICAgW1wiOTU4MFwiLCBcIlxcdTY1QTdcXHU2NjZFXFx1NkQ2RVxcdTcyMzZcXHU3QjI2XFx1ODE1MFxcdTgxOUFcXHU4Mjk5XFx1OEI1Q1xcdThDQTBcXHU4Q0U2XFx1OEQ3NFxcdTk2MUNcXHU5NjQ0XFx1NEZBRVxcdTY0QUJcXHU2QjY2XFx1ODIxRVxcdTg0NjFcXHU4NTZBXFx1OTBFOFxcdTVDMDFcXHU2OTUzXFx1OThBOFxcdTg0N0FcXHU4NTU3XFx1NEYwRlxcdTUyNkZcXHU1RkE5XFx1NUU0NVxcdTY3MERcXHU3OThGXFx1ODE3OVxcdTg5MDdcXHU4OTg2XFx1NkRGNVxcdTVGMTdcXHU2MjU1XFx1NkNCOFxcdTRFQ0ZcXHU3MjY5XFx1OUI5MlxcdTUyMDZcXHU1NDNCXFx1NTY3NFxcdTU4QjNcXHU2MUE0XFx1NjI2RVxcdTcxMUFcXHU1OTZFXFx1N0M4OVxcdTdDREVcXHU3RDFCXFx1OTZGMFxcdTY1ODdcXHU4MDVFXFx1NEUxOVxcdTRGNzVcXHU1MTc1XFx1NTg0MFxcdTVFNjNcXHU1RTczXFx1NUYwQVxcdTY3QzRcXHU0RTI2XFx1ODUzRFxcdTk1ODlcXHU5NjVCXFx1N0M3M1xcdTk4MDFcXHU1MEZCXFx1NThDMVxcdTc2NTZcXHU3OEE3XFx1NTIyNVxcdTc3QTVcXHU4NTExXFx1N0I4NlxcdTUwNEZcXHU1OTA5XFx1NzI0N1xcdTdCQzdcXHU3REU4XFx1OEZCQVxcdThGRDRcXHU5MDREXFx1NEZCRlxcdTUyQzlcXHU1QTI5XFx1NUYwMVxcdTk3QURcXHU0RkREXFx1ODIxN1xcdTkyRUFcXHU1NzAzXFx1NjM1NVxcdTZCNjlcXHU3NTJCXFx1ODhEQ1xcdThGMTRcXHU3QTQyXFx1NTJERlxcdTU4OTNcXHU2MTU1XFx1NjIwQVxcdTY2QUVcXHU2QkNEXFx1N0MzRlxcdTgzRTlcXHU1MDIzXFx1NEZGOFxcdTUzMDVcXHU1NDQ2XFx1NTgzMVxcdTU5NDlcXHU1QjlEXFx1NUNGMFxcdTVDRUZcXHU1RDI5XFx1NUU5NlxcdTYyQjFcXHU2MzY3XFx1NjUzRVxcdTY1QjlcXHU2NzBCXCJdLFxuICAgICAgW1wiOTY0MFwiLCBcIlxcdTZDRDVcXHU2Q0UxXFx1NzBGOVxcdTc4MzJcXHU3RTJCXFx1ODBERVxcdTgyQjNcXHU4NDBDXFx1ODRFQ1xcdTg3MDJcXHU4OTEyXFx1OEEyQVxcdThDNEFcXHU5MEE2XFx1OTJEMlxcdTk4RkRcXHU5Q0YzXFx1OUQ2Q1xcdTRFNEZcXHU0RUExXFx1NTA4RFxcdTUyNTZcXHU1NzRBXFx1NTlBOFxcdTVFM0RcXHU1RkQ4XFx1NUZEOVxcdTYyM0ZcXHU2NkI0XFx1NjcxQlxcdTY3RDBcXHU2OEQyXFx1NTE5MlxcdTdEMjFcXHU4MEFBXFx1ODFBOFxcdThCMDBcXHU4QzhDXFx1OENCRlxcdTkyN0VcXHU5NjMyXFx1NTQyMFxcdTk4MkNcXHU1MzE3XFx1NTBENVxcdTUzNUNcXHU1OEE4XFx1NjRCMlxcdTY3MzRcXHU3MjY3XFx1Nzc2NlxcdTdBNDZcXHU5MUU2XFx1NTJDM1xcdTZDQTFcXHU2Qjg2XFx1NTgwMFxcdTVFNENcXHU1OTU0XFx1NjcyQ1xcdTdGRkJcXHU1MUUxXFx1NzZDNlwiXSxcbiAgICAgIFtcIjk2ODBcIiwgXCJcXHU2NDY5XFx1NzhFOFxcdTlCNTRcXHU5RUJCXFx1NTdDQlxcdTU5QjlcXHU2NjI3XFx1Njc5QVxcdTZCQ0VcXHU1NEU5XFx1NjlEOVxcdTVFNTVcXHU4MTlDXFx1Njc5NVxcdTlCQUFcXHU2N0ZFXFx1OUM1MlxcdTY4NURcXHU0RUE2XFx1NEZFM1xcdTUzQzhcXHU2MkI5XFx1NjcyQlxcdTZDQUJcXHU4RkM0XFx1NEZBRFxcdTdFNkRcXHU5RUJGXFx1NEUwN1xcdTYxNjJcXHU2RTgwXFx1NkYyQlxcdTg1MTNcXHU1NDczXFx1NjcyQVxcdTlCNDVcXHU1REYzXFx1N0I5NVxcdTVDQUNcXHU1QkM2XFx1ODcxQ1xcdTZFNEFcXHU4NEQxXFx1N0ExNFxcdTgxMDhcXHU1OTk5XFx1N0M4RFxcdTZDMTFcXHU3NzIwXFx1NTJEOVxcdTU5MjJcXHU3MTIxXFx1NzI1RlxcdTc3REJcXHU5NzI3XFx1OUQ2MVxcdTY5MEJcXHU1QTdGXFx1NUExOFxcdTUxQTVcXHU1NDBEXFx1NTQ3RFxcdTY2MEVcXHU3NkRGXFx1OEZGN1xcdTkyOThcXHU5Q0Y0XFx1NTlFQVxcdTcyNURcXHU2RUM1XFx1NTE0RFxcdTY4QzlcXHU3REJGXFx1N0RFQ1xcdTk3NjJcXHU5RUJBXFx1NjQ3OFxcdTZBMjFcXHU4MzAyXFx1NTk4NFxcdTVCNUZcXHU2QkRCXFx1NzMxQlxcdTc2RjJcXHU3REIyXFx1ODAxN1xcdTg0OTlcXHU1MTMyXFx1NjcyOFxcdTlFRDlcXHU3NkVFXFx1Njc2MlxcdTUyRkZcXHU5OTA1XFx1NUMyNFxcdTYyM0JcXHU3QzdFXFx1OENCMFxcdTU1NEZcXHU2MEI2XFx1N0QwQlxcdTk1ODBcXHU1MzAxXFx1NEU1RlxcdTUxQjZcXHU1OTFDXFx1NzIzQVxcdTgwMzZcXHU5MUNFXFx1NUYyNVxcdTc3RTJcXHU1Mzg0XFx1NUY3OVxcdTdEMDRcXHU4NUFDXFx1OEEzM1xcdThFOERcXHU5NzU2XFx1NjdGM1xcdTg1QUVcXHU5NDUzXFx1NjEwOVxcdTYxMDhcXHU2Q0I5XFx1NzY1MlwiXSxcbiAgICAgIFtcIjk3NDBcIiwgXCJcXHU4QUVEXFx1OEYzOFxcdTU1MkZcXHU0RjUxXFx1NTEyQVxcdTUyQzdcXHU1M0NCXFx1NUJBNVxcdTVFN0RcXHU2MEEwXFx1NjE4MlxcdTYzRDZcXHU2NzA5XFx1NjdEQVxcdTZFNjdcXHU2RDhDXFx1NzMzNlxcdTczMzdcXHU3NTMxXFx1Nzk1MFxcdTg4RDVcXHU4QTk4XFx1OTA0QVxcdTkwOTFcXHU5MEY1XFx1OTZDNFxcdTg3OERcXHU1OTE1XFx1NEU4OFxcdTRGNTlcXHU0RTBFXFx1OEE4OVxcdThGM0ZcXHU5ODEwXFx1NTBBRFxcdTVFN0NcXHU1OTk2XFx1NUJCOVxcdTVFQjhcXHU2M0RBXFx1NjNGQVxcdTY0QzFcXHU2NkRDXFx1Njk0QVxcdTY5RDhcXHU2RDBCXFx1NkVCNlxcdTcxOTRcXHU3NTI4XFx1N0FBRlxcdTdGOEFcXHU4MDAwXFx1ODQ0OVxcdTg0QzlcXHU4OTgxXFx1OEIyMVxcdThFMEFcXHU5MDY1XFx1OTY3RFxcdTk5MEFcXHU2MTdFXFx1NjI5MVxcdTZCMzJcIl0sXG4gICAgICBbXCI5NzgwXCIsIFwiXFx1NkM4M1xcdTZENzRcXHU3RkNDXFx1N0ZGQ1xcdTZEQzBcXHU3Rjg1XFx1ODdCQVxcdTg4RjhcXHU2NzY1XFx1ODNCMVxcdTk4M0NcXHU5NkY3XFx1NkQxQlxcdTdENjFcXHU4NDNEXFx1OTE2QVxcdTRFNzFcXHU1Mzc1XFx1NUQ1MFxcdTZCMDRcXHU2RkVCXFx1ODVDRFxcdTg2MkRcXHU4OUE3XFx1NTIyOVxcdTU0MEZcXHU1QzY1XFx1Njc0RVxcdTY4QThcXHU3NDA2XFx1NzQ4M1xcdTc1RTJcXHU4OENGXFx1ODhFMVxcdTkxQ0NcXHU5NkUyXFx1OTY3OFxcdTVGOEJcXHU3Mzg3XFx1N0FDQlxcdTg0NEVcXHU2M0EwXFx1NzU2NVxcdTUyODlcXHU2RDQxXFx1NkU5Q1xcdTc0MDlcXHU3NTU5XFx1Nzg2QlxcdTdDOTJcXHU5Njg2XFx1N0FEQ1xcdTlGOERcXHU0RkI2XFx1NjE2RVxcdTY1QzVcXHU4NjVDXFx1NEU4NlxcdTRFQUVcXHU1MERBXFx1NEUyMVxcdTUxQ0NcXHU1QkVFXFx1NjU5OVxcdTY4ODFcXHU2REJDXFx1NzMxRlxcdTc2NDJcXHU3N0FEXFx1N0ExQ1xcdTdDRTdcXHU4MjZGXFx1OEFEMlxcdTkwN0NcXHU5MUNGXFx1OTY3NVxcdTk4MThcXHU1MjlCXFx1N0REMVxcdTUwMkJcXHU1Mzk4XFx1Njc5N1xcdTZEQ0JcXHU3MUQwXFx1NzQzM1xcdTgxRThcXHU4RjJBXFx1OTZBM1xcdTlDNTdcXHU5RTlGXFx1NzQ2MFxcdTU4NDFcXHU2RDk5XFx1N0QyRlxcdTk4NUVcXHU0RUU0XFx1NEYzNlxcdTRGOEJcXHU1MUI3XFx1NTJCMVxcdTVEQkFcXHU2MDFDXFx1NzNCMlxcdTc5M0NcXHU4MkQzXFx1OTIzNFxcdTk2QjdcXHU5NkY2XFx1OTcwQVxcdTlFOTdcXHU5RjYyXFx1NjZBNlxcdTZCNzRcXHU1MjE3XFx1NTJBM1xcdTcwQzhcXHU4OEMyXFx1NUVDOVxcdTYwNEJcXHU2MTkwXFx1NkYyM1xcdTcxNDlcXHU3QzNFXFx1N0RGNFxcdTgwNkZcIl0sXG4gICAgICBbXCI5ODQwXCIsIFwiXFx1ODRFRVxcdTkwMjNcXHU5MzJDXFx1NTQ0MlxcdTlCNkZcXHU2QUQzXFx1NzA4OVxcdThDQzJcXHU4REVGXFx1OTczMlxcdTUyQjRcXHU1QTQxXFx1NUVDQVxcdTVGMDRcXHU2NzE3XFx1Njk3Q1xcdTY5OTRcXHU2RDZBXFx1NkYwRlxcdTcyNjJcXHU3MkZDXFx1N0JFRFxcdTgwMDFcXHU4MDdFXFx1ODc0QlxcdTkwQ0VcXHU1MTZEXFx1OUU5M1xcdTc5ODRcXHU4MDhCXFx1OTMzMlxcdThBRDZcXHU1MDJEXFx1NTQ4Q1xcdThBNzFcXHU2QjZBXFx1OENDNFxcdTgxMDdcXHU2MEQxXFx1NjdBMFxcdTlERjJcXHU0RTk5XFx1NEU5OFxcdTlDMTBcXHU4QTZCXFx1ODVDMVxcdTg1NjhcXHU2OTAwXFx1NkU3RVxcdTc4OTdcXHU4MTU1XCJdLFxuICAgICAgW1wiOTg5ZlwiLCBcIlxcdTVGMENcXHU0RTEwXFx1NEUxNVxcdTRFMkFcXHU0RTMxXFx1NEUzNlxcdTRFM0NcXHU0RTNGXFx1NEU0MlxcdTRFNTZcXHU0RTU4XFx1NEU4MlxcdTRFODVcXHU4QzZCXFx1NEU4QVxcdTgyMTJcXHU1RjBEXFx1NEU4RVxcdTRFOUVcXHU0RTlGXFx1NEVBMFxcdTRFQTJcXHU0RUIwXFx1NEVCM1xcdTRFQjZcXHU0RUNFXFx1NEVDRFxcdTRFQzRcXHU0RUM2XFx1NEVDMlxcdTRFRDdcXHU0RURFXFx1NEVFRFxcdTRFREZcXHU0RUY3XFx1NEYwOVxcdTRGNUFcXHU0RjMwXFx1NEY1QlxcdTRGNURcXHU0RjU3XFx1NEY0N1xcdTRGNzZcXHU0Rjg4XFx1NEY4RlxcdTRGOThcXHU0RjdCXFx1NEY2OVxcdTRGNzBcXHU0RjkxXFx1NEY2RlxcdTRGODZcXHU0Rjk2XFx1NTExOFxcdTRGRDRcXHU0RkRGXFx1NEZDRVxcdTRGRDhcXHU0RkRCXFx1NEZEMVxcdTRGREFcXHU0RkQwXFx1NEZFNFxcdTRGRTVcXHU1MDFBXFx1NTAyOFxcdTUwMTRcXHU1MDJBXFx1NTAyNVxcdTUwMDVcXHU0RjFDXFx1NEZGNlxcdTUwMjFcXHU1MDI5XFx1NTAyQ1xcdTRGRkVcXHU0RkVGXFx1NTAxMVxcdTUwMDZcXHU1MDQzXFx1NTA0N1xcdTY3MDNcXHU1MDU1XFx1NTA1MFxcdTUwNDhcXHU1MDVBXFx1NTA1NlxcdTUwNkNcXHU1MDc4XFx1NTA4MFxcdTUwOUFcXHU1MDg1XFx1NTBCNFxcdTUwQjJcIl0sXG4gICAgICBbXCI5OTQwXCIsIFwiXFx1NTBDOVxcdTUwQ0FcXHU1MEIzXFx1NTBDMlxcdTUwRDZcXHU1MERFXFx1NTBFNVxcdTUwRURcXHU1MEUzXFx1NTBFRVxcdTUwRjlcXHU1MEY1XFx1NTEwOVxcdTUxMDFcXHU1MTAyXFx1NTExNlxcdTUxMTVcXHU1MTE0XFx1NTExQVxcdTUxMjFcXHU1MTNBXFx1NTEzN1xcdTUxM0NcXHU1MTNCXFx1NTEzRlxcdTUxNDBcXHU1MTUyXFx1NTE0Q1xcdTUxNTRcXHU1MTYyXFx1N0FGOFxcdTUxNjlcXHU1MTZBXFx1NTE2RVxcdTUxODBcXHU1MTgyXFx1NTZEOFxcdTUxOENcXHU1MTg5XFx1NTE4RlxcdTUxOTFcXHU1MTkzXFx1NTE5NVxcdTUxOTZcXHU1MUE0XFx1NTFBNlxcdTUxQTJcXHU1MUE5XFx1NTFBQVxcdTUxQUJcXHU1MUIzXFx1NTFCMVxcdTUxQjJcXHU1MUIwXFx1NTFCNVxcdTUxQkRcXHU1MUM1XFx1NTFDOVxcdTUxREJcXHU1MUUwXFx1ODY1NVxcdTUxRTlcXHU1MUVEXCJdLFxuICAgICAgW1wiOTk4MFwiLCBcIlxcdTUxRjBcXHU1MUY1XFx1NTFGRVxcdTUyMDRcXHU1MjBCXFx1NTIxNFxcdTUyMEVcXHU1MjI3XFx1NTIyQVxcdTUyMkVcXHU1MjMzXFx1NTIzOVxcdTUyNEZcXHU1MjQ0XFx1NTI0QlxcdTUyNENcXHU1MjVFXFx1NTI1NFxcdTUyNkFcXHU1Mjc0XFx1NTI2OVxcdTUyNzNcXHU1MjdGXFx1NTI3RFxcdTUyOERcXHU1Mjk0XFx1NTI5MlxcdTUyNzFcXHU1Mjg4XFx1NTI5MVxcdThGQThcXHU4RkE3XFx1NTJBQ1xcdTUyQURcXHU1MkJDXFx1NTJCNVxcdTUyQzFcXHU1MkNEXFx1NTJEN1xcdTUyREVcXHU1MkUzXFx1NTJFNlxcdTk4RURcXHU1MkUwXFx1NTJGM1xcdTUyRjVcXHU1MkY4XFx1NTJGOVxcdTUzMDZcXHU1MzA4XFx1NzUzOFxcdTUzMERcXHU1MzEwXFx1NTMwRlxcdTUzMTVcXHU1MzFBXFx1NTMyM1xcdTUzMkZcXHU1MzMxXFx1NTMzM1xcdTUzMzhcXHU1MzQwXFx1NTM0NlxcdTUzNDVcXHU0RTE3XFx1NTM0OVxcdTUzNERcXHU1MUQ2XFx1NTM1RVxcdTUzNjlcXHU1MzZFXFx1NTkxOFxcdTUzN0JcXHU1Mzc3XFx1NTM4MlxcdTUzOTZcXHU1M0EwXFx1NTNBNlxcdTUzQTVcXHU1M0FFXFx1NTNCMFxcdTUzQjZcXHU1M0MzXFx1N0MxMlxcdTk2RDlcXHU1M0RGXFx1NjZGQ1xcdTcxRUVcXHU1M0VFXFx1NTNFOFxcdTUzRURcXHU1M0ZBXFx1NTQwMVxcdTU0M0RcXHU1NDQwXFx1NTQyQ1xcdTU0MkRcXHU1NDNDXFx1NTQyRVxcdTU0MzZcXHU1NDI5XFx1NTQxRFxcdTU0NEVcXHU1NDhGXFx1NTQ3NVxcdTU0OEVcXHU1NDVGXFx1NTQ3MVxcdTU0NzdcXHU1NDcwXFx1NTQ5MlxcdTU0N0JcXHU1NDgwXFx1NTQ3NlxcdTU0ODRcXHU1NDkwXFx1NTQ4NlxcdTU0QzdcXHU1NEEyXFx1NTRCOFxcdTU0QTVcXHU1NEFDXFx1NTRDNFxcdTU0QzhcXHU1NEE4XCJdLFxuICAgICAgW1wiOWE0MFwiLCBcIlxcdTU0QUJcXHU1NEMyXFx1NTRBNFxcdTU0QkVcXHU1NEJDXFx1NTREOFxcdTU0RTVcXHU1NEU2XFx1NTUwRlxcdTU1MTRcXHU1NEZEXFx1NTRFRVxcdTU0RURcXHU1NEZBXFx1NTRFMlxcdTU1MzlcXHU1NTQwXFx1NTU2M1xcdTU1NENcXHU1NTJFXFx1NTU1Q1xcdTU1NDVcXHU1NTU2XFx1NTU1N1xcdTU1MzhcXHU1NTMzXFx1NTU1RFxcdTU1OTlcXHU1NTgwXFx1NTRBRlxcdTU1OEFcXHU1NTlGXFx1NTU3QlxcdTU1N0VcXHU1NTk4XFx1NTU5RVxcdTU1QUVcXHU1NTdDXFx1NTU4M1xcdTU1QTlcXHU1NTg3XFx1NTVBOFxcdTU1REFcXHU1NUM1XFx1NTVERlxcdTU1QzRcXHU1NURDXFx1NTVFNFxcdTU1RDRcXHU1NjE0XFx1NTVGN1xcdTU2MTZcXHU1NUZFXFx1NTVGRFxcdTU2MUJcXHU1NUY5XFx1NTY0RVxcdTU2NTBcXHU3MURGXFx1NTYzNFxcdTU2MzZcXHU1NjMyXFx1NTYzOFwiXSxcbiAgICAgIFtcIjlhODBcIiwgXCJcXHU1NjZCXFx1NTY2NFxcdTU2MkZcXHU1NjZDXFx1NTY2QVxcdTU2ODZcXHU1NjgwXFx1NTY4QVxcdTU2QTBcXHU1Njk0XFx1NTY4RlxcdTU2QTVcXHU1NkFFXFx1NTZCNlxcdTU2QjRcXHU1NkMyXFx1NTZCQ1xcdTU2QzFcXHU1NkMzXFx1NTZDMFxcdTU2QzhcXHU1NkNFXFx1NTZEMVxcdTU2RDNcXHU1NkQ3XFx1NTZFRVxcdTU2RjlcXHU1NzAwXFx1NTZGRlxcdTU3MDRcXHU1NzA5XFx1NTcwOFxcdTU3MEJcXHU1NzBEXFx1NTcxM1xcdTU3MThcXHU1NzE2XFx1NTVDN1xcdTU3MUNcXHU1NzI2XFx1NTczN1xcdTU3MzhcXHU1NzRFXFx1NTczQlxcdTU3NDBcXHU1NzRGXFx1NTc2OVxcdTU3QzBcXHU1Nzg4XFx1NTc2MVxcdTU3N0ZcXHU1Nzg5XFx1NTc5M1xcdTU3QTBcXHU1N0IzXFx1NTdBNFxcdTU3QUFcXHU1N0IwXFx1NTdDM1xcdTU3QzZcXHU1N0Q0XFx1NTdEMlxcdTU3RDNcXHU1ODBBXFx1NTdENlxcdTU3RTNcXHU1ODBCXFx1NTgxOVxcdTU4MURcXHU1ODcyXFx1NTgyMVxcdTU4NjJcXHU1ODRCXFx1NTg3MFxcdTZCQzBcXHU1ODUyXFx1NTgzRFxcdTU4NzlcXHU1ODg1XFx1NThCOVxcdTU4OUZcXHU1OEFCXFx1NThCQVxcdTU4REVcXHU1OEJCXFx1NThCOFxcdTU4QUVcXHU1OEM1XFx1NThEM1xcdTU4RDFcXHU1OEQ3XFx1NThEOVxcdTU4RDhcXHU1OEU1XFx1NThEQ1xcdTU4RTRcXHU1OERGXFx1NThFRlxcdTU4RkFcXHU1OEY5XFx1NThGQlxcdTU4RkNcXHU1OEZEXFx1NTkwMlxcdTU5MEFcXHU1OTEwXFx1NTkxQlxcdTY4QTZcXHU1OTI1XFx1NTkyQ1xcdTU5MkRcXHU1OTMyXFx1NTkzOFxcdTU5M0VcXHU3QUQyXFx1NTk1NVxcdTU5NTBcXHU1OTRFXFx1NTk1QVxcdTU5NThcXHU1OTYyXFx1NTk2MFxcdTU5NjdcXHU1OTZDXFx1NTk2OVwiXSxcbiAgICAgIFtcIjliNDBcIiwgXCJcXHU1OTc4XFx1NTk4MVxcdTU5OURcXHU0RjVFXFx1NEZBQlxcdTU5QTNcXHU1OUIyXFx1NTlDNlxcdTU5RThcXHU1OURDXFx1NTk4RFxcdTU5RDlcXHU1OURBXFx1NUEyNVxcdTVBMUZcXHU1QTExXFx1NUExQ1xcdTVBMDlcXHU1QTFBXFx1NUE0MFxcdTVBNkNcXHU1QTQ5XFx1NUEzNVxcdTVBMzZcXHU1QTYyXFx1NUE2QVxcdTVBOUFcXHU1QUJDXFx1NUFCRVxcdTVBQ0JcXHU1QUMyXFx1NUFCRFxcdTVBRTNcXHU1QUQ3XFx1NUFFNlxcdTVBRTlcXHU1QUQ2XFx1NUFGQVxcdTVBRkJcXHU1QjBDXFx1NUIwQlxcdTVCMTZcXHU1QjMyXFx1NUFEMFxcdTVCMkFcXHU1QjM2XFx1NUIzRVxcdTVCNDNcXHU1QjQ1XFx1NUI0MFxcdTVCNTFcXHU1QjU1XFx1NUI1QVxcdTVCNUJcXHU1QjY1XFx1NUI2OVxcdTVCNzBcXHU1QjczXFx1NUI3NVxcdTVCNzhcXHU2NTg4XFx1NUI3QVxcdTVCODBcIl0sXG4gICAgICBbXCI5YjgwXCIsIFwiXFx1NUI4M1xcdTVCQTZcXHU1QkI4XFx1NUJDM1xcdTVCQzdcXHU1QkM5XFx1NUJENFxcdTVCRDBcXHU1QkU0XFx1NUJFNlxcdTVCRTJcXHU1QkRFXFx1NUJFNVxcdTVCRUJcXHU1QkYwXFx1NUJGNlxcdTVCRjNcXHU1QzA1XFx1NUMwN1xcdTVDMDhcXHU1QzBEXFx1NUMxM1xcdTVDMjBcXHU1QzIyXFx1NUMyOFxcdTVDMzhcXHU1QzM5XFx1NUM0MVxcdTVDNDZcXHU1QzRFXFx1NUM1M1xcdTVDNTBcXHU1QzRGXFx1NUI3MVxcdTVDNkNcXHU1QzZFXFx1NEU2MlxcdTVDNzZcXHU1Qzc5XFx1NUM4Q1xcdTVDOTFcXHU1Qzk0XFx1NTk5QlxcdTVDQUJcXHU1Q0JCXFx1NUNCNlxcdTVDQkNcXHU1Q0I3XFx1NUNDNVxcdTVDQkVcXHU1Q0M3XFx1NUNEOVxcdTVDRTlcXHU1Q0ZEXFx1NUNGQVxcdTVDRURcXHU1RDhDXFx1NUNFQVxcdTVEMEJcXHU1RDE1XFx1NUQxN1xcdTVENUNcXHU1RDFGXFx1NUQxQlxcdTVEMTFcXHU1RDE0XFx1NUQyMlxcdTVEMUFcXHU1RDE5XFx1NUQxOFxcdTVENENcXHU1RDUyXFx1NUQ0RVxcdTVENEJcXHU1RDZDXFx1NUQ3M1xcdTVENzZcXHU1RDg3XFx1NUQ4NFxcdTVEODJcXHU1REEyXFx1NUQ5RFxcdTVEQUNcXHU1REFFXFx1NURCRFxcdTVEOTBcXHU1REI3XFx1NURCQ1xcdTVEQzlcXHU1RENEXFx1NUREM1xcdTVERDJcXHU1REQ2XFx1NUREQlxcdTVERUJcXHU1REYyXFx1NURGNVxcdTVFMEJcXHU1RTFBXFx1NUUxOVxcdTVFMTFcXHU1RTFCXFx1NUUzNlxcdTVFMzdcXHU1RTQ0XFx1NUU0M1xcdTVFNDBcXHU1RTRFXFx1NUU1N1xcdTVFNTRcXHU1RTVGXFx1NUU2MlxcdTVFNjRcXHU1RTQ3XFx1NUU3NVxcdTVFNzZcXHU1RTdBXFx1OUVCQ1xcdTVFN0ZcXHU1RUEwXFx1NUVDMVxcdTVFQzJcXHU1RUM4XFx1NUVEMFxcdTVFQ0ZcIl0sXG4gICAgICBbXCI5YzQwXCIsIFwiXFx1NUVENlxcdTVFRTNcXHU1RUREXFx1NUVEQVxcdTVFREJcXHU1RUUyXFx1NUVFMVxcdTVFRThcXHU1RUU5XFx1NUVFQ1xcdTVFRjFcXHU1RUYzXFx1NUVGMFxcdTVFRjRcXHU1RUY4XFx1NUVGRVxcdTVGMDNcXHU1RjA5XFx1NUY1RFxcdTVGNUNcXHU1RjBCXFx1NUYxMVxcdTVGMTZcXHU1RjI5XFx1NUYyRFxcdTVGMzhcXHU1RjQxXFx1NUY0OFxcdTVGNENcXHU1RjRFXFx1NUYyRlxcdTVGNTFcXHU1RjU2XFx1NUY1N1xcdTVGNTlcXHU1RjYxXFx1NUY2RFxcdTVGNzNcXHU1Rjc3XFx1NUY4M1xcdTVGODJcXHU1RjdGXFx1NUY4QVxcdTVGODhcXHU1RjkxXFx1NUY4N1xcdTVGOUVcXHU1Rjk5XFx1NUY5OFxcdTVGQTBcXHU1RkE4XFx1NUZBRFxcdTVGQkNcXHU1RkQ2XFx1NUZGQlxcdTVGRTRcXHU1RkY4XFx1NUZGMVxcdTVGRERcXHU2MEIzXFx1NUZGRlxcdTYwMjFcXHU2MDYwXCJdLFxuICAgICAgW1wiOWM4MFwiLCBcIlxcdTYwMTlcXHU2MDEwXFx1NjAyOVxcdTYwMEVcXHU2MDMxXFx1NjAxQlxcdTYwMTVcXHU2MDJCXFx1NjAyNlxcdTYwMEZcXHU2MDNBXFx1NjA1QVxcdTYwNDFcXHU2MDZBXFx1NjA3N1xcdTYwNUZcXHU2MDRBXFx1NjA0NlxcdTYwNERcXHU2MDYzXFx1NjA0M1xcdTYwNjRcXHU2MDQyXFx1NjA2Q1xcdTYwNkJcXHU2MDU5XFx1NjA4MVxcdTYwOERcXHU2MEU3XFx1NjA4M1xcdTYwOUFcXHU2MDg0XFx1NjA5QlxcdTYwOTZcXHU2MDk3XFx1NjA5MlxcdTYwQTdcXHU2MDhCXFx1NjBFMVxcdTYwQjhcXHU2MEUwXFx1NjBEM1xcdTYwQjRcXHU1RkYwXFx1NjBCRFxcdTYwQzZcXHU2MEI1XFx1NjBEOFxcdTYxNERcXHU2MTE1XFx1NjEwNlxcdTYwRjZcXHU2MEY3XFx1NjEwMFxcdTYwRjRcXHU2MEZBXFx1NjEwM1xcdTYxMjFcXHU2MEZCXFx1NjBGMVxcdTYxMERcXHU2MTBFXFx1NjE0N1xcdTYxM0VcXHU2MTI4XFx1NjEyN1xcdTYxNEFcXHU2MTNGXFx1NjEzQ1xcdTYxMkNcXHU2MTM0XFx1NjEzRFxcdTYxNDJcXHU2MTQ0XFx1NjE3M1xcdTYxNzdcXHU2MTU4XFx1NjE1OVxcdTYxNUFcXHU2MTZCXFx1NjE3NFxcdTYxNkZcXHU2MTY1XFx1NjE3MVxcdTYxNUZcXHU2MTVEXFx1NjE1M1xcdTYxNzVcXHU2MTk5XFx1NjE5NlxcdTYxODdcXHU2MUFDXFx1NjE5NFxcdTYxOUFcXHU2MThBXFx1NjE5MVxcdTYxQUJcXHU2MUFFXFx1NjFDQ1xcdTYxQ0FcXHU2MUM5XFx1NjFGN1xcdTYxQzhcXHU2MUMzXFx1NjFDNlxcdTYxQkFcXHU2MUNCXFx1N0Y3OVxcdTYxQ0RcXHU2MUU2XFx1NjFFM1xcdTYxRjZcXHU2MUZBXFx1NjFGNFxcdTYxRkZcXHU2MUZEXFx1NjFGQ1xcdTYxRkVcXHU2MjAwXFx1NjIwOFxcdTYyMDlcXHU2MjBEXFx1NjIwQ1xcdTYyMTRcXHU2MjFCXCJdLFxuICAgICAgW1wiOWQ0MFwiLCBcIlxcdTYyMUVcXHU2MjIxXFx1NjIyQVxcdTYyMkVcXHU2MjMwXFx1NjIzMlxcdTYyMzNcXHU2MjQxXFx1NjI0RVxcdTYyNUVcXHU2MjYzXFx1NjI1QlxcdTYyNjBcXHU2MjY4XFx1NjI3Q1xcdTYyODJcXHU2Mjg5XFx1NjI3RVxcdTYyOTJcXHU2MjkzXFx1NjI5NlxcdTYyRDRcXHU2MjgzXFx1NjI5NFxcdTYyRDdcXHU2MkQxXFx1NjJCQlxcdTYyQ0ZcXHU2MkZGXFx1NjJDNlxcdTY0RDRcXHU2MkM4XFx1NjJEQ1xcdTYyQ0NcXHU2MkNBXFx1NjJDMlxcdTYyQzdcXHU2MjlCXFx1NjJDOVxcdTYzMENcXHU2MkVFXFx1NjJGMVxcdTYzMjdcXHU2MzAyXFx1NjMwOFxcdTYyRUZcXHU2MkY1XFx1NjM1MFxcdTYzM0VcXHU2MzREXFx1NjQxQ1xcdTYzNEZcXHU2Mzk2XFx1NjM4RVxcdTYzODBcXHU2M0FCXFx1NjM3NlxcdTYzQTNcXHU2MzhGXFx1NjM4OVxcdTYzOUZcXHU2M0I1XFx1NjM2QlwiXSxcbiAgICAgIFtcIjlkODBcIiwgXCJcXHU2MzY5XFx1NjNCRVxcdTYzRTlcXHU2M0MwXFx1NjNDNlxcdTYzRTNcXHU2M0M5XFx1NjNEMlxcdTYzRjZcXHU2M0M0XFx1NjQxNlxcdTY0MzRcXHU2NDA2XFx1NjQxM1xcdTY0MjZcXHU2NDM2XFx1NjUxRFxcdTY0MTdcXHU2NDI4XFx1NjQwRlxcdTY0NjdcXHU2NDZGXFx1NjQ3NlxcdTY0NEVcXHU2NTJBXFx1NjQ5NVxcdTY0OTNcXHU2NEE1XFx1NjRBOVxcdTY0ODhcXHU2NEJDXFx1NjREQVxcdTY0RDJcXHU2NEM1XFx1NjRDN1xcdTY0QkJcXHU2NEQ4XFx1NjRDMlxcdTY0RjFcXHU2NEU3XFx1ODIwOVxcdTY0RTBcXHU2NEUxXFx1NjJBQ1xcdTY0RTNcXHU2NEVGXFx1NjUyQ1xcdTY0RjZcXHU2NEY0XFx1NjRGMlxcdTY0RkFcXHU2NTAwXFx1NjRGRFxcdTY1MThcXHU2NTFDXFx1NjUwNVxcdTY1MjRcXHU2NTIzXFx1NjUyQlxcdTY1MzRcXHU2NTM1XFx1NjUzN1xcdTY1MzZcXHU2NTM4XFx1NzU0QlxcdTY1NDhcXHU2NTU2XFx1NjU1NVxcdTY1NERcXHU2NTU4XFx1NjU1RVxcdTY1NURcXHU2NTcyXFx1NjU3OFxcdTY1ODJcXHU2NTgzXFx1OEI4QVxcdTY1OUJcXHU2NTlGXFx1NjVBQlxcdTY1QjdcXHU2NUMzXFx1NjVDNlxcdTY1QzFcXHU2NUM0XFx1NjVDQ1xcdTY1RDJcXHU2NURCXFx1NjVEOVxcdTY1RTBcXHU2NUUxXFx1NjVGMVxcdTY3NzJcXHU2NjBBXFx1NjYwM1xcdTY1RkJcXHU2NzczXFx1NjYzNVxcdTY2MzZcXHU2NjM0XFx1NjYxQ1xcdTY2NEZcXHU2NjQ0XFx1NjY0OVxcdTY2NDFcXHU2NjVFXFx1NjY1RFxcdTY2NjRcXHU2NjY3XFx1NjY2OFxcdTY2NUZcXHU2NjYyXFx1NjY3MFxcdTY2ODNcXHU2Njg4XFx1NjY4RVxcdTY2ODlcXHU2Njg0XFx1NjY5OFxcdTY2OURcXHU2NkMxXFx1NjZCOVxcdTY2QzlcXHU2NkJFXFx1NjZCQ1wiXSxcbiAgICAgIFtcIjllNDBcIiwgXCJcXHU2NkM0XFx1NjZCOFxcdTY2RDZcXHU2NkRBXFx1NjZFMFxcdTY2M0ZcXHU2NkU2XFx1NjZFOVxcdTY2RjBcXHU2NkY1XFx1NjZGN1xcdTY3MEZcXHU2NzE2XFx1NjcxRVxcdTY3MjZcXHU2NzI3XFx1OTczOFxcdTY3MkVcXHU2NzNGXFx1NjczNlxcdTY3NDFcXHU2NzM4XFx1NjczN1xcdTY3NDZcXHU2NzVFXFx1Njc2MFxcdTY3NTlcXHU2NzYzXFx1Njc2NFxcdTY3ODlcXHU2NzcwXFx1NjdBOVxcdTY3N0NcXHU2NzZBXFx1Njc4Q1xcdTY3OEJcXHU2N0E2XFx1NjdBMVxcdTY3ODVcXHU2N0I3XFx1NjdFRlxcdTY3QjRcXHU2N0VDXFx1NjdCM1xcdTY3RTlcXHU2N0I4XFx1NjdFNFxcdTY3REVcXHU2N0REXFx1NjdFMlxcdTY3RUVcXHU2N0I5XFx1NjdDRVxcdTY3QzZcXHU2N0U3XFx1NkE5Q1xcdTY4MUVcXHU2ODQ2XFx1NjgyOVxcdTY4NDBcXHU2ODREXFx1NjgzMlxcdTY4NEVcIl0sXG4gICAgICBbXCI5ZTgwXCIsIFwiXFx1NjhCM1xcdTY4MkJcXHU2ODU5XFx1Njg2M1xcdTY4NzdcXHU2ODdGXFx1Njg5RlxcdTY4OEZcXHU2OEFEXFx1Njg5NFxcdTY4OURcXHU2ODlCXFx1Njg4M1xcdTZBQUVcXHU2OEI5XFx1Njg3NFxcdTY4QjVcXHU2OEEwXFx1NjhCQVxcdTY5MEZcXHU2ODhEXFx1Njg3RVxcdTY5MDFcXHU2OENBXFx1NjkwOFxcdTY4RDhcXHU2OTIyXFx1NjkyNlxcdTY4RTFcXHU2OTBDXFx1NjhDRFxcdTY4RDRcXHU2OEU3XFx1NjhENVxcdTY5MzZcXHU2OTEyXFx1NjkwNFxcdTY4RDdcXHU2OEUzXFx1NjkyNVxcdTY4RjlcXHU2OEUwXFx1NjhFRlxcdTY5MjhcXHU2OTJBXFx1NjkxQVxcdTY5MjNcXHU2OTIxXFx1NjhDNlxcdTY5NzlcXHU2OTc3XFx1Njk1Q1xcdTY5NzhcXHU2OTZCXFx1Njk1NFxcdTY5N0VcXHU2OTZFXFx1NjkzOVxcdTY5NzRcXHU2OTNEXFx1Njk1OVxcdTY5MzBcXHU2OTYxXFx1Njk1RVxcdTY5NURcXHU2OTgxXFx1Njk2QVxcdTY5QjJcXHU2OUFFXFx1NjlEMFxcdTY5QkZcXHU2OUMxXFx1NjlEM1xcdTY5QkVcXHU2OUNFXFx1NUJFOFxcdTY5Q0FcXHU2OUREXFx1NjlCQlxcdTY5QzNcXHU2OUE3XFx1NkEyRVxcdTY5OTFcXHU2OUEwXFx1Njk5Q1xcdTY5OTVcXHU2OUI0XFx1NjlERVxcdTY5RThcXHU2QTAyXFx1NkExQlxcdTY5RkZcXHU2QjBBXFx1NjlGOVxcdTY5RjJcXHU2OUU3XFx1NkEwNVxcdTY5QjFcXHU2QTFFXFx1NjlFRFxcdTZBMTRcXHU2OUVCXFx1NkEwQVxcdTZBMTJcXHU2QUMxXFx1NkEyM1xcdTZBMTNcXHU2QTQ0XFx1NkEwQ1xcdTZBNzJcXHU2QTM2XFx1NkE3OFxcdTZBNDdcXHU2QTYyXFx1NkE1OVxcdTZBNjZcXHU2QTQ4XFx1NkEzOFxcdTZBMjJcXHU2QTkwXFx1NkE4RFxcdTZBQTBcXHU2QTg0XFx1NkFBMlxcdTZBQTNcIl0sXG4gICAgICBbXCI5ZjQwXCIsIFwiXFx1NkE5N1xcdTg2MTdcXHU2QUJCXFx1NkFDM1xcdTZBQzJcXHU2QUI4XFx1NkFCM1xcdTZBQUNcXHU2QURFXFx1NkFEMVxcdTZBREZcXHU2QUFBXFx1NkFEQVxcdTZBRUFcXHU2QUZCXFx1NkIwNVxcdTg2MTZcXHU2QUZBXFx1NkIxMlxcdTZCMTZcXHU5QjMxXFx1NkIxRlxcdTZCMzhcXHU2QjM3XFx1NzZEQ1xcdTZCMzlcXHU5OEVFXFx1NkI0N1xcdTZCNDNcXHU2QjQ5XFx1NkI1MFxcdTZCNTlcXHU2QjU0XFx1NkI1QlxcdTZCNUZcXHU2QjYxXFx1NkI3OFxcdTZCNzlcXHU2QjdGXFx1NkI4MFxcdTZCODRcXHU2QjgzXFx1NkI4RFxcdTZCOThcXHU2Qjk1XFx1NkI5RVxcdTZCQTRcXHU2QkFBXFx1NkJBQlxcdTZCQUZcXHU2QkIyXFx1NkJCMVxcdTZCQjNcXHU2QkI3XFx1NkJCQ1xcdTZCQzZcXHU2QkNCXFx1NkJEM1xcdTZCREZcXHU2QkVDXFx1NkJFQlxcdTZCRjNcXHU2QkVGXCJdLFxuICAgICAgW1wiOWY4MFwiLCBcIlxcdTlFQkVcXHU2QzA4XFx1NkMxM1xcdTZDMTRcXHU2QzFCXFx1NkMyNFxcdTZDMjNcXHU2QzVFXFx1NkM1NVxcdTZDNjJcXHU2QzZBXFx1NkM4MlxcdTZDOERcXHU2QzlBXFx1NkM4MVxcdTZDOUJcXHU2QzdFXFx1NkM2OFxcdTZDNzNcXHU2QzkyXFx1NkM5MFxcdTZDQzRcXHU2Q0YxXFx1NkNEM1xcdTZDQkRcXHU2Q0Q3XFx1NkNDNVxcdTZDRERcXHU2Q0FFXFx1NkNCMVxcdTZDQkVcXHU2Q0JBXFx1NkNEQlxcdTZDRUZcXHU2Q0Q5XFx1NkNFQVxcdTZEMUZcXHU4ODREXFx1NkQzNlxcdTZEMkJcXHU2RDNEXFx1NkQzOFxcdTZEMTlcXHU2RDM1XFx1NkQzM1xcdTZEMTJcXHU2RDBDXFx1NkQ2M1xcdTZEOTNcXHU2RDY0XFx1NkQ1QVxcdTZENzlcXHU2RDU5XFx1NkQ4RVxcdTZEOTVcXHU2RkU0XFx1NkQ4NVxcdTZERjlcXHU2RTE1XFx1NkUwQVxcdTZEQjVcXHU2REM3XFx1NkRFNlxcdTZEQjhcXHU2REM2XFx1NkRFQ1xcdTZEREVcXHU2RENDXFx1NkRFOFxcdTZERDJcXHU2REM1XFx1NkRGQVxcdTZERDlcXHU2REU0XFx1NkRENVxcdTZERUFcXHU2REVFXFx1NkUyRFxcdTZFNkVcXHU2RTJFXFx1NkUxOVxcdTZFNzJcXHU2RTVGXFx1NkUzRVxcdTZFMjNcXHU2RTZCXFx1NkUyQlxcdTZFNzZcXHU2RTREXFx1NkUxRlxcdTZFNDNcXHU2RTNBXFx1NkU0RVxcdTZFMjRcXHU2RUZGXFx1NkUxRFxcdTZFMzhcXHU2RTgyXFx1NkVBQVxcdTZFOThcXHU2RUM5XFx1NkVCN1xcdTZFRDNcXHU2RUJEXFx1NkVBRlxcdTZFQzRcXHU2RUIyXFx1NkVENFxcdTZFRDVcXHU2RThGXFx1NkVBNVxcdTZFQzJcXHU2RTlGXFx1NkY0MVxcdTZGMTFcXHU3MDRDXFx1NkVFQ1xcdTZFRjhcXHU2RUZFXFx1NkYzRlxcdTZFRjJcXHU2RjMxXFx1NkVFRlxcdTZGMzJcXHU2RUNDXCJdLFxuICAgICAgW1wiZTA0MFwiLCBcIlxcdTZGM0VcXHU2RjEzXFx1NkVGN1xcdTZGODZcXHU2RjdBXFx1NkY3OFxcdTZGODFcXHU2RjgwXFx1NkY2RlxcdTZGNUJcXHU2RkYzXFx1NkY2RFxcdTZGODJcXHU2RjdDXFx1NkY1OFxcdTZGOEVcXHU2RjkxXFx1NkZDMlxcdTZGNjZcXHU2RkIzXFx1NkZBM1xcdTZGQTFcXHU2RkE0XFx1NkZCOVxcdTZGQzZcXHU2RkFBXFx1NkZERlxcdTZGRDVcXHU2RkVDXFx1NkZENFxcdTZGRDhcXHU2RkYxXFx1NkZFRVxcdTZGREJcXHU3MDA5XFx1NzAwQlxcdTZGRkFcXHU3MDExXFx1NzAwMVxcdTcwMEZcXHU2RkZFXFx1NzAxQlxcdTcwMUFcXHU2Rjc0XFx1NzAxRFxcdTcwMThcXHU3MDFGXFx1NzAzMFxcdTcwM0VcXHU3MDMyXFx1NzA1MVxcdTcwNjNcXHU3MDk5XFx1NzA5MlxcdTcwQUZcXHU3MEYxXFx1NzBBQ1xcdTcwQjhcXHU3MEIzXFx1NzBBRVxcdTcwREZcXHU3MENCXFx1NzBERFwiXSxcbiAgICAgIFtcImUwODBcIiwgXCJcXHU3MEQ5XFx1NzEwOVxcdTcwRkRcXHU3MTFDXFx1NzExOVxcdTcxNjVcXHU3MTU1XFx1NzE4OFxcdTcxNjZcXHU3MTYyXFx1NzE0Q1xcdTcxNTZcXHU3MTZDXFx1NzE4RlxcdTcxRkJcXHU3MTg0XFx1NzE5NVxcdTcxQThcXHU3MUFDXFx1NzFEN1xcdTcxQjlcXHU3MUJFXFx1NzFEMlxcdTcxQzlcXHU3MUQ0XFx1NzFDRVxcdTcxRTBcXHU3MUVDXFx1NzFFN1xcdTcxRjVcXHU3MUZDXFx1NzFGOVxcdTcxRkZcXHU3MjBEXFx1NzIxMFxcdTcyMUJcXHU3MjI4XFx1NzIyRFxcdTcyMkNcXHU3MjMwXFx1NzIzMlxcdTcyM0JcXHU3MjNDXFx1NzIzRlxcdTcyNDBcXHU3MjQ2XFx1NzI0QlxcdTcyNThcXHU3Mjc0XFx1NzI3RVxcdTcyODJcXHU3MjgxXFx1NzI4N1xcdTcyOTJcXHU3Mjk2XFx1NzJBMlxcdTcyQTdcXHU3MkI5XFx1NzJCMlxcdTcyQzNcXHU3MkM2XFx1NzJDNFxcdTcyQ0VcXHU3MkQyXFx1NzJFMlxcdTcyRTBcXHU3MkUxXFx1NzJGOVxcdTcyRjdcXHU1MDBGXFx1NzMxN1xcdTczMEFcXHU3MzFDXFx1NzMxNlxcdTczMURcXHU3MzM0XFx1NzMyRlxcdTczMjlcXHU3MzI1XFx1NzMzRVxcdTczNEVcXHU3MzRGXFx1OUVEOFxcdTczNTdcXHU3MzZBXFx1NzM2OFxcdTczNzBcXHU3Mzc4XFx1NzM3NVxcdTczN0JcXHU3MzdBXFx1NzNDOFxcdTczQjNcXHU3M0NFXFx1NzNCQlxcdTczQzBcXHU3M0U1XFx1NzNFRVxcdTczREVcXHU3NEEyXFx1NzQwNVxcdTc0NkZcXHU3NDI1XFx1NzNGOFxcdTc0MzJcXHU3NDNBXFx1NzQ1NVxcdTc0M0ZcXHU3NDVGXFx1NzQ1OVxcdTc0NDFcXHU3NDVDXFx1NzQ2OVxcdTc0NzBcXHU3NDYzXFx1NzQ2QVxcdTc0NzZcXHU3NDdFXFx1NzQ4QlxcdTc0OUVcXHU3NEE3XFx1NzRDQVxcdTc0Q0ZcXHU3NEQ0XFx1NzNGMVwiXSxcbiAgICAgIFtcImUxNDBcIiwgXCJcXHU3NEUwXFx1NzRFM1xcdTc0RTdcXHU3NEU5XFx1NzRFRVxcdTc0RjJcXHU3NEYwXFx1NzRGMVxcdTc0RjhcXHU3NEY3XFx1NzUwNFxcdTc1MDNcXHU3NTA1XFx1NzUwQ1xcdTc1MEVcXHU3NTBEXFx1NzUxNVxcdTc1MTNcXHU3NTFFXFx1NzUyNlxcdTc1MkNcXHU3NTNDXFx1NzU0NFxcdTc1NERcXHU3NTRBXFx1NzU0OVxcdTc1NUJcXHU3NTQ2XFx1NzU1QVxcdTc1NjlcXHU3NTY0XFx1NzU2N1xcdTc1NkJcXHU3NTZEXFx1NzU3OFxcdTc1NzZcXHU3NTg2XFx1NzU4N1xcdTc1NzRcXHU3NThBXFx1NzU4OVxcdTc1ODJcXHU3NTk0XFx1NzU5QVxcdTc1OURcXHU3NUE1XFx1NzVBM1xcdTc1QzJcXHU3NUIzXFx1NzVDM1xcdTc1QjVcXHU3NUJEXFx1NzVCOFxcdTc1QkNcXHU3NUIxXFx1NzVDRFxcdTc1Q0FcXHU3NUQyXFx1NzVEOVxcdTc1RTNcXHU3NURFXFx1NzVGRVxcdTc1RkZcIl0sXG4gICAgICBbXCJlMTgwXCIsIFwiXFx1NzVGQ1xcdTc2MDFcXHU3NUYwXFx1NzVGQVxcdTc1RjJcXHU3NUYzXFx1NzYwQlxcdTc2MERcXHU3NjA5XFx1NzYxRlxcdTc2MjdcXHU3NjIwXFx1NzYyMVxcdTc2MjJcXHU3NjI0XFx1NzYzNFxcdTc2MzBcXHU3NjNCXFx1NzY0N1xcdTc2NDhcXHU3NjQ2XFx1NzY1Q1xcdTc2NThcXHU3NjYxXFx1NzY2MlxcdTc2NjhcXHU3NjY5XFx1NzY2QVxcdTc2NjdcXHU3NjZDXFx1NzY3MFxcdTc2NzJcXHU3Njc2XFx1NzY3OFxcdTc2N0NcXHU3NjgwXFx1NzY4M1xcdTc2ODhcXHU3NjhCXFx1NzY4RVxcdTc2OTZcXHU3NjkzXFx1NzY5OVxcdTc2OUFcXHU3NkIwXFx1NzZCNFxcdTc2QjhcXHU3NkI5XFx1NzZCQVxcdTc2QzJcXHU3NkNEXFx1NzZENlxcdTc2RDJcXHU3NkRFXFx1NzZFMVxcdTc2RTVcXHU3NkU3XFx1NzZFQVxcdTg2MkZcXHU3NkZCXFx1NzcwOFxcdTc3MDdcXHU3NzA0XFx1NzcyOVxcdTc3MjRcXHU3NzFFXFx1NzcyNVxcdTc3MjZcXHU3NzFCXFx1NzczN1xcdTc3MzhcXHU3NzQ3XFx1Nzc1QVxcdTc3NjhcXHU3NzZCXFx1Nzc1QlxcdTc3NjVcXHU3NzdGXFx1Nzc3RVxcdTc3NzlcXHU3NzhFXFx1Nzc4QlxcdTc3OTFcXHU3N0EwXFx1Nzc5RVxcdTc3QjBcXHU3N0I2XFx1NzdCOVxcdTc3QkZcXHU3N0JDXFx1NzdCRFxcdTc3QkJcXHU3N0M3XFx1NzdDRFxcdTc3RDdcXHU3N0RBXFx1NzdEQ1xcdTc3RTNcXHU3N0VFXFx1NzdGQ1xcdTc4MENcXHU3ODEyXFx1NzkyNlxcdTc4MjBcXHU3OTJBXFx1Nzg0NVxcdTc4OEVcXHU3ODc0XFx1Nzg4NlxcdTc4N0NcXHU3ODlBXFx1Nzg4Q1xcdTc4QTNcXHU3OEI1XFx1NzhBQVxcdTc4QUZcXHU3OEQxXFx1NzhDNlxcdTc4Q0JcXHU3OEQ0XFx1NzhCRVxcdTc4QkNcXHU3OEM1XFx1NzhDQVxcdTc4RUNcIl0sXG4gICAgICBbXCJlMjQwXCIsIFwiXFx1NzhFN1xcdTc4REFcXHU3OEZEXFx1NzhGNFxcdTc5MDdcXHU3OTEyXFx1NzkxMVxcdTc5MTlcXHU3OTJDXFx1NzkyQlxcdTc5NDBcXHU3OTYwXFx1Nzk1N1xcdTc5NUZcXHU3OTVBXFx1Nzk1NVxcdTc5NTNcXHU3OTdBXFx1Nzk3RlxcdTc5OEFcXHU3OTlEXFx1NzlBN1xcdTlGNEJcXHU3OUFBXFx1NzlBRVxcdTc5QjNcXHU3OUI5XFx1NzlCQVxcdTc5QzlcXHU3OUQ1XFx1NzlFN1xcdTc5RUNcXHU3OUUxXFx1NzlFM1xcdTdBMDhcXHU3QTBEXFx1N0ExOFxcdTdBMTlcXHU3QTIwXFx1N0ExRlxcdTc5ODBcXHU3QTMxXFx1N0EzQlxcdTdBM0VcXHU3QTM3XFx1N0E0M1xcdTdBNTdcXHU3QTQ5XFx1N0E2MVxcdTdBNjJcXHU3QTY5XFx1OUY5RFxcdTdBNzBcXHU3QTc5XFx1N0E3RFxcdTdBODhcXHU3QTk3XFx1N0E5NVxcdTdBOThcXHU3QTk2XFx1N0FBOVxcdTdBQzhcXHU3QUIwXCJdLFxuICAgICAgW1wiZTI4MFwiLCBcIlxcdTdBQjZcXHU3QUM1XFx1N0FDNFxcdTdBQkZcXHU5MDgzXFx1N0FDN1xcdTdBQ0FcXHU3QUNEXFx1N0FDRlxcdTdBRDVcXHU3QUQzXFx1N0FEOVxcdTdBREFcXHU3QUREXFx1N0FFMVxcdTdBRTJcXHU3QUU2XFx1N0FFRFxcdTdBRjBcXHU3QjAyXFx1N0IwRlxcdTdCMEFcXHU3QjA2XFx1N0IzM1xcdTdCMThcXHU3QjE5XFx1N0IxRVxcdTdCMzVcXHU3QjI4XFx1N0IzNlxcdTdCNTBcXHU3QjdBXFx1N0IwNFxcdTdCNERcXHU3QjBCXFx1N0I0Q1xcdTdCNDVcXHU3Qjc1XFx1N0I2NVxcdTdCNzRcXHU3QjY3XFx1N0I3MFxcdTdCNzFcXHU3QjZDXFx1N0I2RVxcdTdCOURcXHU3Qjk4XFx1N0I5RlxcdTdCOERcXHU3QjlDXFx1N0I5QVxcdTdCOEJcXHU3QjkyXFx1N0I4RlxcdTdCNURcXHU3Qjk5XFx1N0JDQlxcdTdCQzFcXHU3QkNDXFx1N0JDRlxcdTdCQjRcXHU3QkM2XFx1N0JERFxcdTdCRTlcXHU3QzExXFx1N0MxNFxcdTdCRTZcXHU3QkU1XFx1N0M2MFxcdTdDMDBcXHU3QzA3XFx1N0MxM1xcdTdCRjNcXHU3QkY3XFx1N0MxN1xcdTdDMERcXHU3QkY2XFx1N0MyM1xcdTdDMjdcXHU3QzJBXFx1N0MxRlxcdTdDMzdcXHU3QzJCXFx1N0MzRFxcdTdDNENcXHU3QzQzXFx1N0M1NFxcdTdDNEZcXHU3QzQwXFx1N0M1MFxcdTdDNThcXHU3QzVGXFx1N0M2NFxcdTdDNTZcXHU3QzY1XFx1N0M2Q1xcdTdDNzVcXHU3QzgzXFx1N0M5MFxcdTdDQTRcXHU3Q0FEXFx1N0NBMlxcdTdDQUJcXHU3Q0ExXFx1N0NBOFxcdTdDQjNcXHU3Q0IyXFx1N0NCMVxcdTdDQUVcXHU3Q0I5XFx1N0NCRFxcdTdDQzBcXHU3Q0M1XFx1N0NDMlxcdTdDRDhcXHU3Q0QyXFx1N0NEQ1xcdTdDRTJcXHU5QjNCXFx1N0NFRlxcdTdDRjJcXHU3Q0Y0XFx1N0NGNlxcdTdDRkFcXHU3RDA2XCJdLFxuICAgICAgW1wiZTM0MFwiLCBcIlxcdTdEMDJcXHU3RDFDXFx1N0QxNVxcdTdEMEFcXHU3RDQ1XFx1N0Q0QlxcdTdEMkVcXHU3RDMyXFx1N0QzRlxcdTdEMzVcXHU3RDQ2XFx1N0Q3M1xcdTdENTZcXHU3RDRFXFx1N0Q3MlxcdTdENjhcXHU3RDZFXFx1N0Q0RlxcdTdENjNcXHU3RDkzXFx1N0Q4OVxcdTdENUJcXHU3RDhGXFx1N0Q3RFxcdTdEOUJcXHU3REJBXFx1N0RBRVxcdTdEQTNcXHU3REI1XFx1N0RDN1xcdTdEQkRcXHU3REFCXFx1N0UzRFxcdTdEQTJcXHU3REFGXFx1N0REQ1xcdTdEQjhcXHU3RDlGXFx1N0RCMFxcdTdERDhcXHU3REREXFx1N0RFNFxcdTdEREVcXHU3REZCXFx1N0RGMlxcdTdERTFcXHU3RTA1XFx1N0UwQVxcdTdFMjNcXHU3RTIxXFx1N0UxMlxcdTdFMzFcXHU3RTFGXFx1N0UwOVxcdTdFMEJcXHU3RTIyXFx1N0U0NlxcdTdFNjZcXHU3RTNCXFx1N0UzNVxcdTdFMzlcXHU3RTQzXFx1N0UzN1wiXSxcbiAgICAgIFtcImUzODBcIiwgXCJcXHU3RTMyXFx1N0UzQVxcdTdFNjdcXHU3RTVEXFx1N0U1NlxcdTdFNUVcXHU3RTU5XFx1N0U1QVxcdTdFNzlcXHU3RTZBXFx1N0U2OVxcdTdFN0NcXHU3RTdCXFx1N0U4M1xcdTdERDVcXHU3RTdEXFx1OEZBRVxcdTdFN0ZcXHU3RTg4XFx1N0U4OVxcdTdFOENcXHU3RTkyXFx1N0U5MFxcdTdFOTNcXHU3RTk0XFx1N0U5NlxcdTdFOEVcXHU3RTlCXFx1N0U5Q1xcdTdGMzhcXHU3RjNBXFx1N0Y0NVxcdTdGNENcXHU3RjREXFx1N0Y0RVxcdTdGNTBcXHU3RjUxXFx1N0Y1NVxcdTdGNTRcXHU3RjU4XFx1N0Y1RlxcdTdGNjBcXHU3RjY4XFx1N0Y2OVxcdTdGNjdcXHU3Rjc4XFx1N0Y4MlxcdTdGODZcXHU3RjgzXFx1N0Y4OFxcdTdGODdcXHU3RjhDXFx1N0Y5NFxcdTdGOUVcXHU3RjlEXFx1N0Y5QVxcdTdGQTNcXHU3RkFGXFx1N0ZCMlxcdTdGQjlcXHU3RkFFXFx1N0ZCNlxcdTdGQjhcXHU4QjcxXFx1N0ZDNVxcdTdGQzZcXHU3RkNBXFx1N0ZENVxcdTdGRDRcXHU3RkUxXFx1N0ZFNlxcdTdGRTlcXHU3RkYzXFx1N0ZGOVxcdTk4RENcXHU4MDA2XFx1ODAwNFxcdTgwMEJcXHU4MDEyXFx1ODAxOFxcdTgwMTlcXHU4MDFDXFx1ODAyMVxcdTgwMjhcXHU4MDNGXFx1ODAzQlxcdTgwNEFcXHU4MDQ2XFx1ODA1MlxcdTgwNThcXHU4MDVBXFx1ODA1RlxcdTgwNjJcXHU4MDY4XFx1ODA3M1xcdTgwNzJcXHU4MDcwXFx1ODA3NlxcdTgwNzlcXHU4MDdEXFx1ODA3RlxcdTgwODRcXHU4MDg2XFx1ODA4NVxcdTgwOUJcXHU4MDkzXFx1ODA5QVxcdTgwQURcXHU1MTkwXFx1ODBBQ1xcdTgwREJcXHU4MEU1XFx1ODBEOVxcdTgwRERcXHU4MEM0XFx1ODBEQVxcdTgwRDZcXHU4MTA5XFx1ODBFRlxcdTgwRjFcXHU4MTFCXFx1ODEyOVxcdTgxMjNcXHU4MTJGXFx1ODE0QlwiXSxcbiAgICAgIFtcImU0NDBcIiwgXCJcXHU5NjhCXFx1ODE0NlxcdTgxM0VcXHU4MTUzXFx1ODE1MVxcdTgwRkNcXHU4MTcxXFx1ODE2RVxcdTgxNjVcXHU4MTY2XFx1ODE3NFxcdTgxODNcXHU4MTg4XFx1ODE4QVxcdTgxODBcXHU4MTgyXFx1ODFBMFxcdTgxOTVcXHU4MUE0XFx1ODFBM1xcdTgxNUZcXHU4MTkzXFx1ODFBOVxcdTgxQjBcXHU4MUI1XFx1ODFCRVxcdTgxQjhcXHU4MUJEXFx1ODFDMFxcdTgxQzJcXHU4MUJBXFx1ODFDOVxcdTgxQ0RcXHU4MUQxXFx1ODFEOVxcdTgxRDhcXHU4MUM4XFx1ODFEQVxcdTgxREZcXHU4MUUwXFx1ODFFN1xcdTgxRkFcXHU4MUZCXFx1ODFGRVxcdTgyMDFcXHU4MjAyXFx1ODIwNVxcdTgyMDdcXHU4MjBBXFx1ODIwRFxcdTgyMTBcXHU4MjE2XFx1ODIyOVxcdTgyMkJcXHU4MjM4XFx1ODIzM1xcdTgyNDBcXHU4MjU5XFx1ODI1OFxcdTgyNURcXHU4MjVBXFx1ODI1RlxcdTgyNjRcIl0sXG4gICAgICBbXCJlNDgwXCIsIFwiXFx1ODI2MlxcdTgyNjhcXHU4MjZBXFx1ODI2QlxcdTgyMkVcXHU4MjcxXFx1ODI3N1xcdTgyNzhcXHU4MjdFXFx1ODI4RFxcdTgyOTJcXHU4MkFCXFx1ODI5RlxcdTgyQkJcXHU4MkFDXFx1ODJFMVxcdTgyRTNcXHU4MkRGXFx1ODJEMlxcdTgyRjRcXHU4MkYzXFx1ODJGQVxcdTgzOTNcXHU4MzAzXFx1ODJGQlxcdTgyRjlcXHU4MkRFXFx1ODMwNlxcdTgyRENcXHU4MzA5XFx1ODJEOVxcdTgzMzVcXHU4MzM0XFx1ODMxNlxcdTgzMzJcXHU4MzMxXFx1ODM0MFxcdTgzMzlcXHU4MzUwXFx1ODM0NVxcdTgzMkZcXHU4MzJCXFx1ODMxN1xcdTgzMThcXHU4Mzg1XFx1ODM5QVxcdTgzQUFcXHU4MzlGXFx1ODNBMlxcdTgzOTZcXHU4MzIzXFx1ODM4RVxcdTgzODdcXHU4MzhBXFx1ODM3Q1xcdTgzQjVcXHU4MzczXFx1ODM3NVxcdTgzQTBcXHU4Mzg5XFx1ODNBOFxcdTgzRjRcXHU4NDEzXFx1ODNFQlxcdTgzQ0VcXHU4M0ZEXFx1ODQwM1xcdTgzRDhcXHU4NDBCXFx1ODNDMVxcdTgzRjdcXHU4NDA3XFx1ODNFMFxcdTgzRjJcXHU4NDBEXFx1ODQyMlxcdTg0MjBcXHU4M0JEXFx1ODQzOFxcdTg1MDZcXHU4M0ZCXFx1ODQ2RFxcdTg0MkFcXHU4NDNDXFx1ODU1QVxcdTg0ODRcXHU4NDc3XFx1ODQ2QlxcdTg0QURcXHU4NDZFXFx1ODQ4MlxcdTg0NjlcXHU4NDQ2XFx1ODQyQ1xcdTg0NkZcXHU4NDc5XFx1ODQzNVxcdTg0Q0FcXHU4NDYyXFx1ODRCOVxcdTg0QkZcXHU4NDlGXFx1ODREOVxcdTg0Q0RcXHU4NEJCXFx1ODREQVxcdTg0RDBcXHU4NEMxXFx1ODRDNlxcdTg0RDZcXHU4NEExXFx1ODUyMVxcdTg0RkZcXHU4NEY0XFx1ODUxN1xcdTg1MThcXHU4NTJDXFx1ODUxRlxcdTg1MTVcXHU4NTE0XFx1ODRGQ1xcdTg1NDBcXHU4NTYzXFx1ODU1OFxcdTg1NDhcIl0sXG4gICAgICBbXCJlNTQwXCIsIFwiXFx1ODU0MVxcdTg2MDJcXHU4NTRCXFx1ODU1NVxcdTg1ODBcXHU4NUE0XFx1ODU4OFxcdTg1OTFcXHU4NThBXFx1ODVBOFxcdTg1NkRcXHU4NTk0XFx1ODU5QlxcdTg1RUFcXHU4NTg3XFx1ODU5Q1xcdTg1NzdcXHU4NTdFXFx1ODU5MFxcdTg1QzlcXHU4NUJBXFx1ODVDRlxcdTg1QjlcXHU4NUQwXFx1ODVENVxcdTg1RERcXHU4NUU1XFx1ODVEQ1xcdTg1RjlcXHU4NjBBXFx1ODYxM1xcdTg2MEJcXHU4NUZFXFx1ODVGQVxcdTg2MDZcXHU4NjIyXFx1ODYxQVxcdTg2MzBcXHU4NjNGXFx1ODY0RFxcdTRFNTVcXHU4NjU0XFx1ODY1RlxcdTg2NjdcXHU4NjcxXFx1ODY5M1xcdTg2QTNcXHU4NkE5XFx1ODZBQVxcdTg2OEJcXHU4NjhDXFx1ODZCNlxcdTg2QUZcXHU4NkM0XFx1ODZDNlxcdTg2QjBcXHU4NkM5XFx1ODgyM1xcdTg2QUJcXHU4NkQ0XFx1ODZERVxcdTg2RTlcXHU4NkVDXCJdLFxuICAgICAgW1wiZTU4MFwiLCBcIlxcdTg2REZcXHU4NkRCXFx1ODZFRlxcdTg3MTJcXHU4NzA2XFx1ODcwOFxcdTg3MDBcXHU4NzAzXFx1ODZGQlxcdTg3MTFcXHU4NzA5XFx1ODcwRFxcdTg2RjlcXHU4NzBBXFx1ODczNFxcdTg3M0ZcXHU4NzM3XFx1ODczQlxcdTg3MjVcXHU4NzI5XFx1ODcxQVxcdTg3NjBcXHU4NzVGXFx1ODc3OFxcdTg3NENcXHU4NzRFXFx1ODc3NFxcdTg3NTdcXHU4NzY4XFx1ODc2RVxcdTg3NTlcXHU4NzUzXFx1ODc2M1xcdTg3NkFcXHU4ODA1XFx1ODdBMlxcdTg3OUZcXHU4NzgyXFx1ODdBRlxcdTg3Q0JcXHU4N0JEXFx1ODdDMFxcdTg3RDBcXHU5NkQ2XFx1ODdBQlxcdTg3QzRcXHU4N0IzXFx1ODdDN1xcdTg3QzZcXHU4N0JCXFx1ODdFRlxcdTg3RjJcXHU4N0UwXFx1ODgwRlxcdTg4MERcXHU4N0ZFXFx1ODdGNlxcdTg3RjdcXHU4ODBFXFx1ODdEMlxcdTg4MTFcXHU4ODE2XFx1ODgxNVxcdTg4MjJcXHU4ODIxXFx1ODgzMVxcdTg4MzZcXHU4ODM5XFx1ODgyN1xcdTg4M0JcXHU4ODQ0XFx1ODg0MlxcdTg4NTJcXHU4ODU5XFx1ODg1RVxcdTg4NjJcXHU4ODZCXFx1ODg4MVxcdTg4N0VcXHU4ODlFXFx1ODg3NVxcdTg4N0RcXHU4OEI1XFx1ODg3MlxcdTg4ODJcXHU4ODk3XFx1ODg5MlxcdTg4QUVcXHU4ODk5XFx1ODhBMlxcdTg4OERcXHU4OEE0XFx1ODhCMFxcdTg4QkZcXHU4OEIxXFx1ODhDM1xcdTg4QzRcXHU4OEQ0XFx1ODhEOFxcdTg4RDlcXHU4OEREXFx1ODhGOVxcdTg5MDJcXHU4OEZDXFx1ODhGNFxcdTg4RThcXHU4OEYyXFx1ODkwNFxcdTg5MENcXHU4OTBBXFx1ODkxM1xcdTg5NDNcXHU4OTFFXFx1ODkyNVxcdTg5MkFcXHU4OTJCXFx1ODk0MVxcdTg5NDRcXHU4OTNCXFx1ODkzNlxcdTg5MzhcXHU4OTRDXFx1ODkxRFxcdTg5NjBcXHU4OTVFXCJdLFxuICAgICAgW1wiZTY0MFwiLCBcIlxcdTg5NjZcXHU4OTY0XFx1ODk2RFxcdTg5NkFcXHU4OTZGXFx1ODk3NFxcdTg5NzdcXHU4OTdFXFx1ODk4M1xcdTg5ODhcXHU4OThBXFx1ODk5M1xcdTg5OThcXHU4OUExXFx1ODlBOVxcdTg5QTZcXHU4OUFDXFx1ODlBRlxcdTg5QjJcXHU4OUJBXFx1ODlCRFxcdTg5QkZcXHU4OUMwXFx1ODlEQVxcdTg5RENcXHU4OUREXFx1ODlFN1xcdTg5RjRcXHU4OUY4XFx1OEEwM1xcdThBMTZcXHU4QTEwXFx1OEEwQ1xcdThBMUJcXHU4QTFEXFx1OEEyNVxcdThBMzZcXHU4QTQxXFx1OEE1QlxcdThBNTJcXHU4QTQ2XFx1OEE0OFxcdThBN0NcXHU4QTZEXFx1OEE2Q1xcdThBNjJcXHU4QTg1XFx1OEE4MlxcdThBODRcXHU4QUE4XFx1OEFBMVxcdThBOTFcXHU4QUE1XFx1OEFBNlxcdThBOUFcXHU4QUEzXFx1OEFDNFxcdThBQ0RcXHU4QUMyXFx1OEFEQVxcdThBRUJcXHU4QUYzXFx1OEFFN1wiXSxcbiAgICAgIFtcImU2ODBcIiwgXCJcXHU4QUU0XFx1OEFGMVxcdThCMTRcXHU4QUUwXFx1OEFFMlxcdThBRjdcXHU4QURFXFx1OEFEQlxcdThCMENcXHU4QjA3XFx1OEIxQVxcdThBRTFcXHU4QjE2XFx1OEIxMFxcdThCMTdcXHU4QjIwXFx1OEIzM1xcdTk3QUJcXHU4QjI2XFx1OEIyQlxcdThCM0VcXHU4QjI4XFx1OEI0MVxcdThCNENcXHU4QjRGXFx1OEI0RVxcdThCNDlcXHU4QjU2XFx1OEI1QlxcdThCNUFcXHU4QjZCXFx1OEI1RlxcdThCNkNcXHU4QjZGXFx1OEI3NFxcdThCN0RcXHU4QjgwXFx1OEI4Q1xcdThCOEVcXHU4QjkyXFx1OEI5M1xcdThCOTZcXHU4Qjk5XFx1OEI5QVxcdThDM0FcXHU4QzQxXFx1OEMzRlxcdThDNDhcXHU4QzRDXFx1OEM0RVxcdThDNTBcXHU4QzU1XFx1OEM2MlxcdThDNkNcXHU4Qzc4XFx1OEM3QVxcdThDODJcXHU4Qzg5XFx1OEM4NVxcdThDOEFcXHU4QzhEXFx1OEM4RVxcdThDOTRcXHU4QzdDXFx1OEM5OFxcdTYyMURcXHU4Q0FEXFx1OENBQVxcdThDQkRcXHU4Q0IyXFx1OENCM1xcdThDQUVcXHU4Q0I2XFx1OENDOFxcdThDQzFcXHU4Q0U0XFx1OENFM1xcdThDREFcXHU4Q0ZEXFx1OENGQVxcdThDRkJcXHU4RDA0XFx1OEQwNVxcdThEMEFcXHU4RDA3XFx1OEQwRlxcdThEMERcXHU4RDEwXFx1OUY0RVxcdThEMTNcXHU4Q0NEXFx1OEQxNFxcdThEMTZcXHU4RDY3XFx1OEQ2RFxcdThENzFcXHU4RDczXFx1OEQ4MVxcdThEOTlcXHU4REMyXFx1OERCRVxcdThEQkFcXHU4RENGXFx1OEREQVxcdThERDZcXHU4RENDXFx1OEREQlxcdThEQ0JcXHU4REVBXFx1OERFQlxcdThEREZcXHU4REUzXFx1OERGQ1xcdThFMDhcXHU4RTA5XFx1OERGRlxcdThFMURcXHU4RTFFXFx1OEUxMFxcdThFMUZcXHU4RTQyXFx1OEUzNVxcdThFMzBcXHU4RTM0XFx1OEU0QVwiXSxcbiAgICAgIFtcImU3NDBcIiwgXCJcXHU4RTQ3XFx1OEU0OVxcdThFNENcXHU4RTUwXFx1OEU0OFxcdThFNTlcXHU4RTY0XFx1OEU2MFxcdThFMkFcXHU4RTYzXFx1OEU1NVxcdThFNzZcXHU4RTcyXFx1OEU3Q1xcdThFODFcXHU4RTg3XFx1OEU4NVxcdThFODRcXHU4RThCXFx1OEU4QVxcdThFOTNcXHU4RTkxXFx1OEU5NFxcdThFOTlcXHU4RUFBXFx1OEVBMVxcdThFQUNcXHU4RUIwXFx1OEVDNlxcdThFQjFcXHU4RUJFXFx1OEVDNVxcdThFQzhcXHU4RUNCXFx1OEVEQlxcdThFRTNcXHU4RUZDXFx1OEVGQlxcdThFRUJcXHU4RUZFXFx1OEYwQVxcdThGMDVcXHU4RjE1XFx1OEYxMlxcdThGMTlcXHU4RjEzXFx1OEYxQ1xcdThGMUZcXHU4RjFCXFx1OEYwQ1xcdThGMjZcXHU4RjMzXFx1OEYzQlxcdThGMzlcXHU4RjQ1XFx1OEY0MlxcdThGM0VcXHU4RjRDXFx1OEY0OVxcdThGNDZcXHU4RjRFXFx1OEY1N1xcdThGNUNcIl0sXG4gICAgICBbXCJlNzgwXCIsIFwiXFx1OEY2MlxcdThGNjNcXHU4RjY0XFx1OEY5Q1xcdThGOUZcXHU4RkEzXFx1OEZBRFxcdThGQUZcXHU4RkI3XFx1OEZEQVxcdThGRTVcXHU4RkUyXFx1OEZFQVxcdThGRUZcXHU5MDg3XFx1OEZGNFxcdTkwMDVcXHU4RkY5XFx1OEZGQVxcdTkwMTFcXHU5MDE1XFx1OTAyMVxcdTkwMERcXHU5MDFFXFx1OTAxNlxcdTkwMEJcXHU5MDI3XFx1OTAzNlxcdTkwMzVcXHU5MDM5XFx1OEZGOFxcdTkwNEZcXHU5MDUwXFx1OTA1MVxcdTkwNTJcXHU5MDBFXFx1OTA0OVxcdTkwM0VcXHU5MDU2XFx1OTA1OFxcdTkwNUVcXHU5MDY4XFx1OTA2RlxcdTkwNzZcXHU5NkE4XFx1OTA3MlxcdTkwODJcXHU5MDdEXFx1OTA4MVxcdTkwODBcXHU5MDhBXFx1OTA4OVxcdTkwOEZcXHU5MEE4XFx1OTBBRlxcdTkwQjFcXHU5MEI1XFx1OTBFMlxcdTkwRTRcXHU2MjQ4XFx1OTBEQlxcdTkxMDJcXHU5MTEyXFx1OTExOVxcdTkxMzJcXHU5MTMwXFx1OTE0QVxcdTkxNTZcXHU5MTU4XFx1OTE2M1xcdTkxNjVcXHU5MTY5XFx1OTE3M1xcdTkxNzJcXHU5MThCXFx1OTE4OVxcdTkxODJcXHU5MUEyXFx1OTFBQlxcdTkxQUZcXHU5MUFBXFx1OTFCNVxcdTkxQjRcXHU5MUJBXFx1OTFDMFxcdTkxQzFcXHU5MUM5XFx1OTFDQlxcdTkxRDBcXHU5MUQ2XFx1OTFERlxcdTkxRTFcXHU5MURCXFx1OTFGQ1xcdTkxRjVcXHU5MUY2XFx1OTIxRVxcdTkxRkZcXHU5MjE0XFx1OTIyQ1xcdTkyMTVcXHU5MjExXFx1OTI1RVxcdTkyNTdcXHU5MjQ1XFx1OTI0OVxcdTkyNjRcXHU5MjQ4XFx1OTI5NVxcdTkyM0ZcXHU5MjRCXFx1OTI1MFxcdTkyOUNcXHU5Mjk2XFx1OTI5M1xcdTkyOUJcXHU5MjVBXFx1OTJDRlxcdTkyQjlcXHU5MkI3XFx1OTJFOVxcdTkzMEZcXHU5MkZBXFx1OTM0NFxcdTkzMkVcIl0sXG4gICAgICBbXCJlODQwXCIsIFwiXFx1OTMxOVxcdTkzMjJcXHU5MzFBXFx1OTMyM1xcdTkzM0FcXHU5MzM1XFx1OTMzQlxcdTkzNUNcXHU5MzYwXFx1OTM3Q1xcdTkzNkVcXHU5MzU2XFx1OTNCMFxcdTkzQUNcXHU5M0FEXFx1OTM5NFxcdTkzQjlcXHU5M0Q2XFx1OTNEN1xcdTkzRThcXHU5M0U1XFx1OTNEOFxcdTkzQzNcXHU5M0REXFx1OTNEMFxcdTkzQzhcXHU5M0U0XFx1OTQxQVxcdTk0MTRcXHU5NDEzXFx1OTQwM1xcdTk0MDdcXHU5NDEwXFx1OTQzNlxcdTk0MkJcXHU5NDM1XFx1OTQyMVxcdTk0M0FcXHU5NDQxXFx1OTQ1MlxcdTk0NDRcXHU5NDVCXFx1OTQ2MFxcdTk0NjJcXHU5NDVFXFx1OTQ2QVxcdTkyMjlcXHU5NDcwXFx1OTQ3NVxcdTk0NzdcXHU5NDdEXFx1OTQ1QVxcdTk0N0NcXHU5NDdFXFx1OTQ4MVxcdTk0N0ZcXHU5NTgyXFx1OTU4N1xcdTk1OEFcXHU5NTk0XFx1OTU5NlxcdTk1OThcXHU5NTk5XCJdLFxuICAgICAgW1wiZTg4MFwiLCBcIlxcdTk1QTBcXHU5NUE4XFx1OTVBN1xcdTk1QURcXHU5NUJDXFx1OTVCQlxcdTk1QjlcXHU5NUJFXFx1OTVDQVxcdTZGRjZcXHU5NUMzXFx1OTVDRFxcdTk1Q0NcXHU5NUQ1XFx1OTVENFxcdTk1RDZcXHU5NURDXFx1OTVFMVxcdTk1RTVcXHU5NUUyXFx1OTYyMVxcdTk2MjhcXHU5NjJFXFx1OTYyRlxcdTk2NDJcXHU5NjRDXFx1OTY0RlxcdTk2NEJcXHU5Njc3XFx1OTY1Q1xcdTk2NUVcXHU5NjVEXFx1OTY1RlxcdTk2NjZcXHU5NjcyXFx1OTY2Q1xcdTk2OERcXHU5Njk4XFx1OTY5NVxcdTk2OTdcXHU5NkFBXFx1OTZBN1xcdTk2QjFcXHU5NkIyXFx1OTZCMFxcdTk2QjRcXHU5NkI2XFx1OTZCOFxcdTk2QjlcXHU5NkNFXFx1OTZDQlxcdTk2QzlcXHU5NkNEXFx1ODk0RFxcdTk2RENcXHU5NzBEXFx1OTZENVxcdTk2RjlcXHU5NzA0XFx1OTcwNlxcdTk3MDhcXHU5NzEzXFx1OTcwRVxcdTk3MTFcXHU5NzBGXFx1OTcxNlxcdTk3MTlcXHU5NzI0XFx1OTcyQVxcdTk3MzBcXHU5NzM5XFx1OTczRFxcdTk3M0VcXHU5NzQ0XFx1OTc0NlxcdTk3NDhcXHU5NzQyXFx1OTc0OVxcdTk3NUNcXHU5NzYwXFx1OTc2NFxcdTk3NjZcXHU5NzY4XFx1NTJEMlxcdTk3NkJcXHU5NzcxXFx1OTc3OVxcdTk3ODVcXHU5NzdDXFx1OTc4MVxcdTk3N0FcXHU5Nzg2XFx1OTc4QlxcdTk3OEZcXHU5NzkwXFx1OTc5Q1xcdTk3QThcXHU5N0E2XFx1OTdBM1xcdTk3QjNcXHU5N0I0XFx1OTdDM1xcdTk3QzZcXHU5N0M4XFx1OTdDQlxcdTk3RENcXHU5N0VEXFx1OUY0RlxcdTk3RjJcXHU3QURGXFx1OTdGNlxcdTk3RjVcXHU5ODBGXFx1OTgwQ1xcdTk4MzhcXHU5ODI0XFx1OTgyMVxcdTk4MzdcXHU5ODNEXFx1OTg0NlxcdTk4NEZcXHU5ODRCXFx1OTg2QlxcdTk4NkZcXHU5ODcwXCJdLFxuICAgICAgW1wiZTk0MFwiLCBcIlxcdTk4NzFcXHU5ODc0XFx1OTg3M1xcdTk4QUFcXHU5OEFGXFx1OThCMVxcdTk4QjZcXHU5OEM0XFx1OThDM1xcdTk4QzZcXHU5OEU5XFx1OThFQlxcdTk5MDNcXHU5OTA5XFx1OTkxMlxcdTk5MTRcXHU5OTE4XFx1OTkyMVxcdTk5MURcXHU5OTFFXFx1OTkyNFxcdTk5MjBcXHU5OTJDXFx1OTkyRVxcdTk5M0RcXHU5OTNFXFx1OTk0MlxcdTk5NDlcXHU5OTQ1XFx1OTk1MFxcdTk5NEJcXHU5OTUxXFx1OTk1MlxcdTk5NENcXHU5OTU1XFx1OTk5N1xcdTk5OThcXHU5OUE1XFx1OTlBRFxcdTk5QUVcXHU5OUJDXFx1OTlERlxcdTk5REJcXHU5OUREXFx1OTlEOFxcdTk5RDFcXHU5OUVEXFx1OTlFRVxcdTk5RjFcXHU5OUYyXFx1OTlGQlxcdTk5RjhcXHU5QTAxXFx1OUEwRlxcdTlBMDVcXHU5OUUyXFx1OUExOVxcdTlBMkJcXHU5QTM3XFx1OUE0NVxcdTlBNDJcXHU5QTQwXFx1OUE0M1wiXSxcbiAgICAgIFtcImU5ODBcIiwgXCJcXHU5QTNFXFx1OUE1NVxcdTlBNERcXHU5QTVCXFx1OUE1N1xcdTlBNUZcXHU5QTYyXFx1OUE2NVxcdTlBNjRcXHU5QTY5XFx1OUE2QlxcdTlBNkFcXHU5QUFEXFx1OUFCMFxcdTlBQkNcXHU5QUMwXFx1OUFDRlxcdTlBRDFcXHU5QUQzXFx1OUFENFxcdTlBREVcXHU5QURGXFx1OUFFMlxcdTlBRTNcXHU5QUU2XFx1OUFFRlxcdTlBRUJcXHU5QUVFXFx1OUFGNFxcdTlBRjFcXHU5QUY3XFx1OUFGQlxcdTlCMDZcXHU5QjE4XFx1OUIxQVxcdTlCMUZcXHU5QjIyXFx1OUIyM1xcdTlCMjVcXHU5QjI3XFx1OUIyOFxcdTlCMjlcXHU5QjJBXFx1OUIyRVxcdTlCMkZcXHU5QjMyXFx1OUI0NFxcdTlCNDNcXHU5QjRGXFx1OUI0RFxcdTlCNEVcXHU5QjUxXFx1OUI1OFxcdTlCNzRcXHU5QjkzXFx1OUI4M1xcdTlCOTFcXHU5Qjk2XFx1OUI5N1xcdTlCOUZcXHU5QkEwXFx1OUJBOFxcdTlCQjRcXHU5QkMwXFx1OUJDQVxcdTlCQjlcXHU5QkM2XFx1OUJDRlxcdTlCRDFcXHU5QkQyXFx1OUJFM1xcdTlCRTJcXHU5QkU0XFx1OUJENFxcdTlCRTFcXHU5QzNBXFx1OUJGMlxcdTlCRjFcXHU5QkYwXFx1OUMxNVxcdTlDMTRcXHU5QzA5XFx1OUMxM1xcdTlDMENcXHU5QzA2XFx1OUMwOFxcdTlDMTJcXHU5QzBBXFx1OUMwNFxcdTlDMkVcXHU5QzFCXFx1OUMyNVxcdTlDMjRcXHU5QzIxXFx1OUMzMFxcdTlDNDdcXHU5QzMyXFx1OUM0NlxcdTlDM0VcXHU5QzVBXFx1OUM2MFxcdTlDNjdcXHU5Qzc2XFx1OUM3OFxcdTlDRTdcXHU5Q0VDXFx1OUNGMFxcdTlEMDlcXHU5RDA4XFx1OUNFQlxcdTlEMDNcXHU5RDA2XFx1OUQyQVxcdTlEMjZcXHU5REFGXFx1OUQyM1xcdTlEMUZcXHU5RDQ0XFx1OUQxNVxcdTlEMTJcXHU5RDQxXFx1OUQzRlxcdTlEM0VcXHU5RDQ2XFx1OUQ0OFwiXSxcbiAgICAgIFtcImVhNDBcIiwgXCJcXHU5RDVEXFx1OUQ1RVxcdTlENjRcXHU5RDUxXFx1OUQ1MFxcdTlENTlcXHU5RDcyXFx1OUQ4OVxcdTlEODdcXHU5REFCXFx1OUQ2RlxcdTlEN0FcXHU5RDlBXFx1OURBNFxcdTlEQTlcXHU5REIyXFx1OURDNFxcdTlEQzFcXHU5REJCXFx1OURCOFxcdTlEQkFcXHU5REM2XFx1OURDRlxcdTlEQzJcXHU5REQ5XFx1OUREM1xcdTlERjhcXHU5REU2XFx1OURFRFxcdTlERUZcXHU5REZEXFx1OUUxQVxcdTlFMUJcXHU5RTFFXFx1OUU3NVxcdTlFNzlcXHU5RTdEXFx1OUU4MVxcdTlFODhcXHU5RThCXFx1OUU4Q1xcdTlFOTJcXHU5RTk1XFx1OUU5MVxcdTlFOURcXHU5RUE1XFx1OUVBOVxcdTlFQjhcXHU5RUFBXFx1OUVBRFxcdTk3NjFcXHU5RUNDXFx1OUVDRVxcdTlFQ0ZcXHU5RUQwXFx1OUVENFxcdTlFRENcXHU5RURFXFx1OUVERFxcdTlFRTBcXHU5RUU1XFx1OUVFOFxcdTlFRUZcIl0sXG4gICAgICBbXCJlYTgwXCIsIFwiXFx1OUVGNFxcdTlFRjZcXHU5RUY3XFx1OUVGOVxcdTlFRkJcXHU5RUZDXFx1OUVGRFxcdTlGMDdcXHU5RjA4XFx1NzZCN1xcdTlGMTVcXHU5RjIxXFx1OUYyQ1xcdTlGM0VcXHU5RjRBXFx1OUY1MlxcdTlGNTRcXHU5RjYzXFx1OUY1RlxcdTlGNjBcXHU5RjYxXFx1OUY2NlxcdTlGNjdcXHU5RjZDXFx1OUY2QVxcdTlGNzdcXHU5RjcyXFx1OUY3NlxcdTlGOTVcXHU5RjlDXFx1OUZBMFxcdTU4MkZcXHU2OUM3XFx1OTA1OVxcdTc0NjRcXHU1MURDXFx1NzE5OVwiXSxcbiAgICAgIFtcImVkNDBcIiwgXCJcXHU3RThBXFx1ODkxQ1xcdTkzNDhcXHU5Mjg4XFx1ODREQ1xcdTRGQzlcXHU3MEJCXFx1NjYzMVxcdTY4QzhcXHU5MkY5XFx1NjZGQlxcdTVGNDVcXHU0RTI4XFx1NEVFMVxcdTRFRkNcXHU0RjAwXFx1NEYwM1xcdTRGMzlcXHU0RjU2XFx1NEY5MlxcdTRGOEFcXHU0RjlBXFx1NEY5NFxcdTRGQ0RcXHU1MDQwXFx1NTAyMlxcdTRGRkZcXHU1MDFFXFx1NTA0NlxcdTUwNzBcXHU1MDQyXFx1NTA5NFxcdTUwRjRcXHU1MEQ4XFx1NTE0QVxcdTUxNjRcXHU1MTlEXFx1NTFCRVxcdTUxRUNcXHU1MjE1XFx1NTI5Q1xcdTUyQTZcXHU1MkMwXFx1NTJEQlxcdTUzMDBcXHU1MzA3XFx1NTMyNFxcdTUzNzJcXHU1MzkzXFx1NTNCMlxcdTUzRERcXHVGQTBFXFx1NTQ5Q1xcdTU0OEFcXHU1NEE5XFx1NTRGRlxcdTU1ODZcXHU1NzU5XFx1NTc2NVxcdTU3QUNcXHU1N0M4XFx1NTdDN1xcdUZBMEZcIl0sXG4gICAgICBbXCJlZDgwXCIsIFwiXFx1RkExMFxcdTU4OUVcXHU1OEIyXFx1NTkwQlxcdTU5NTNcXHU1OTVCXFx1NTk1RFxcdTU5NjNcXHU1OUE0XFx1NTlCQVxcdTVCNTZcXHU1QkMwXFx1NzUyRlxcdTVCRDhcXHU1QkVDXFx1NUMxRVxcdTVDQTZcXHU1Q0JBXFx1NUNGNVxcdTVEMjdcXHU1RDUzXFx1RkExMVxcdTVENDJcXHU1RDZEXFx1NURCOFxcdTVEQjlcXHU1REQwXFx1NUYyMVxcdTVGMzRcXHU1RjY3XFx1NUZCN1xcdTVGREVcXHU2MDVEXFx1NjA4NVxcdTYwOEFcXHU2MERFXFx1NjBENVxcdTYxMjBcXHU2MEYyXFx1NjExMVxcdTYxMzdcXHU2MTMwXFx1NjE5OFxcdTYyMTNcXHU2MkE2XFx1NjNGNVxcdTY0NjBcXHU2NDlEXFx1NjRDRVxcdTY1NEVcXHU2NjAwXFx1NjYxNVxcdTY2M0JcXHU2NjA5XFx1NjYyRVxcdTY2MUVcXHU2NjI0XFx1NjY2NVxcdTY2NTdcXHU2NjU5XFx1RkExMlxcdTY2NzNcXHU2Njk5XFx1NjZBMFxcdTY2QjJcXHU2NkJGXFx1NjZGQVxcdTY3MEVcXHVGOTI5XFx1Njc2NlxcdTY3QkJcXHU2ODUyXFx1NjdDMFxcdTY4MDFcXHU2ODQ0XFx1NjhDRlxcdUZBMTNcXHU2OTY4XFx1RkExNFxcdTY5OThcXHU2OUUyXFx1NkEzMFxcdTZBNkJcXHU2QTQ2XFx1NkE3M1xcdTZBN0VcXHU2QUUyXFx1NkFFNFxcdTZCRDZcXHU2QzNGXFx1NkM1Q1xcdTZDODZcXHU2QzZGXFx1NkNEQVxcdTZEMDRcXHU2RDg3XFx1NkQ2RlxcdTZEOTZcXHU2REFDXFx1NkRDRlxcdTZERjhcXHU2REYyXFx1NkRGQ1xcdTZFMzlcXHU2RTVDXFx1NkUyN1xcdTZFM0NcXHU2RUJGXFx1NkY4OFxcdTZGQjVcXHU2RkY1XFx1NzAwNVxcdTcwMDdcXHU3MDI4XFx1NzA4NVxcdTcwQUJcXHU3MTBGXFx1NzEwNFxcdTcxNUNcXHU3MTQ2XFx1NzE0N1xcdUZBMTVcXHU3MUMxXFx1NzFGRVxcdTcyQjFcIl0sXG4gICAgICBbXCJlZTQwXCIsIFwiXFx1NzJCRVxcdTczMjRcXHVGQTE2XFx1NzM3N1xcdTczQkRcXHU3M0M5XFx1NzNENlxcdTczRTNcXHU3M0QyXFx1NzQwN1xcdTczRjVcXHU3NDI2XFx1NzQyQVxcdTc0MjlcXHU3NDJFXFx1NzQ2MlxcdTc0ODlcXHU3NDlGXFx1NzUwMVxcdTc1NkZcXHU3NjgyXFx1NzY5Q1xcdTc2OUVcXHU3NjlCXFx1NzZBNlxcdUZBMTdcXHU3NzQ2XFx1NTJBRlxcdTc4MjFcXHU3ODRFXFx1Nzg2NFxcdTc4N0FcXHU3OTMwXFx1RkExOFxcdUZBMTlcXHVGQTFBXFx1Nzk5NFxcdUZBMUJcXHU3OTlCXFx1N0FEMVxcdTdBRTdcXHVGQTFDXFx1N0FFQlxcdTdCOUVcXHVGQTFEXFx1N0Q0OFxcdTdENUNcXHU3REI3XFx1N0RBMFxcdTdERDZcXHU3RTUyXFx1N0Y0N1xcdTdGQTFcXHVGQTFFXFx1ODMwMVxcdTgzNjJcXHU4MzdGXFx1ODNDN1xcdTgzRjZcXHU4NDQ4XFx1ODRCNFxcdTg1NTNcXHU4NTU5XCJdLFxuICAgICAgW1wiZWU4MFwiLCBcIlxcdTg1NkJcXHVGQTFGXFx1ODVCMFxcdUZBMjBcXHVGQTIxXFx1ODgwN1xcdTg4RjVcXHU4QTEyXFx1OEEzN1xcdThBNzlcXHU4QUE3XFx1OEFCRVxcdThBREZcXHVGQTIyXFx1OEFGNlxcdThCNTNcXHU4QjdGXFx1OENGMFxcdThDRjRcXHU4RDEyXFx1OEQ3NlxcdUZBMjNcXHU4RUNGXFx1RkEyNFxcdUZBMjVcXHU5MDY3XFx1OTBERVxcdUZBMjZcXHU5MTE1XFx1OTEyN1xcdTkxREFcXHU5MUQ3XFx1OTFERVxcdTkxRURcXHU5MUVFXFx1OTFFNFxcdTkxRTVcXHU5MjA2XFx1OTIxMFxcdTkyMEFcXHU5MjNBXFx1OTI0MFxcdTkyM0NcXHU5MjRFXFx1OTI1OVxcdTkyNTFcXHU5MjM5XFx1OTI2N1xcdTkyQTdcXHU5Mjc3XFx1OTI3OFxcdTkyRTdcXHU5MkQ3XFx1OTJEOVxcdTkyRDBcXHVGQTI3XFx1OTJENVxcdTkyRTBcXHU5MkQzXFx1OTMyNVxcdTkzMjFcXHU5MkZCXFx1RkEyOFxcdTkzMUVcXHU5MkZGXFx1OTMxRFxcdTkzMDJcXHU5MzcwXFx1OTM1N1xcdTkzQTRcXHU5M0M2XFx1OTNERVxcdTkzRjhcXHU5NDMxXFx1OTQ0NVxcdTk0NDhcXHU5NTkyXFx1RjlEQ1xcdUZBMjlcXHU5NjlEXFx1OTZBRlxcdTk3MzNcXHU5NzNCXFx1OTc0M1xcdTk3NERcXHU5NzRGXFx1OTc1MVxcdTk3NTVcXHU5ODU3XFx1OTg2NVxcdUZBMkFcXHVGQTJCXFx1OTkyN1xcdUZBMkNcXHU5OTlFXFx1OUE0RVxcdTlBRDlcXHU5QURDXFx1OUI3NVxcdTlCNzJcXHU5QjhGXFx1OUJCMVxcdTlCQkJcXHU5QzAwXFx1OUQ3MFxcdTlENkJcXHVGQTJEXFx1OUUxOVxcdTlFRDFcIl0sXG4gICAgICBbXCJlZWVmXCIsIFwiXFx1MjE3MFwiLCA5LCBcIlxcdUZGRTJcXHVGRkU0XFx1RkYwN1xcdUZGMDJcIl0sXG4gICAgICBbXCJmMDQwXCIsIFwiXFx1RTAwMFwiLCA2Ml0sXG4gICAgICBbXCJmMDgwXCIsIFwiXFx1RTAzRlwiLCAxMjRdLFxuICAgICAgW1wiZjE0MFwiLCBcIlxcdUUwQkNcIiwgNjJdLFxuICAgICAgW1wiZjE4MFwiLCBcIlxcdUUwRkJcIiwgMTI0XSxcbiAgICAgIFtcImYyNDBcIiwgXCJcXHVFMTc4XCIsIDYyXSxcbiAgICAgIFtcImYyODBcIiwgXCJcXHVFMUI3XCIsIDEyNF0sXG4gICAgICBbXCJmMzQwXCIsIFwiXFx1RTIzNFwiLCA2Ml0sXG4gICAgICBbXCJmMzgwXCIsIFwiXFx1RTI3M1wiLCAxMjRdLFxuICAgICAgW1wiZjQ0MFwiLCBcIlxcdUUyRjBcIiwgNjJdLFxuICAgICAgW1wiZjQ4MFwiLCBcIlxcdUUzMkZcIiwgMTI0XSxcbiAgICAgIFtcImY1NDBcIiwgXCJcXHVFM0FDXCIsIDYyXSxcbiAgICAgIFtcImY1ODBcIiwgXCJcXHVFM0VCXCIsIDEyNF0sXG4gICAgICBbXCJmNjQwXCIsIFwiXFx1RTQ2OFwiLCA2Ml0sXG4gICAgICBbXCJmNjgwXCIsIFwiXFx1RTRBN1wiLCAxMjRdLFxuICAgICAgW1wiZjc0MFwiLCBcIlxcdUU1MjRcIiwgNjJdLFxuICAgICAgW1wiZjc4MFwiLCBcIlxcdUU1NjNcIiwgMTI0XSxcbiAgICAgIFtcImY4NDBcIiwgXCJcXHVFNUUwXCIsIDYyXSxcbiAgICAgIFtcImY4ODBcIiwgXCJcXHVFNjFGXCIsIDEyNF0sXG4gICAgICBbXCJmOTQwXCIsIFwiXFx1RTY5Q1wiXSxcbiAgICAgIFtcImZhNDBcIiwgXCJcXHUyMTcwXCIsIDksIFwiXFx1MjE2MFwiLCA5LCBcIlxcdUZGRTJcXHVGRkU0XFx1RkYwN1xcdUZGMDJcXHUzMjMxXFx1MjExNlxcdTIxMjFcXHUyMjM1XFx1N0U4QVxcdTg5MUNcXHU5MzQ4XFx1OTI4OFxcdTg0RENcXHU0RkM5XFx1NzBCQlxcdTY2MzFcXHU2OEM4XFx1OTJGOVxcdTY2RkJcXHU1RjQ1XFx1NEUyOFxcdTRFRTFcXHU0RUZDXFx1NEYwMFxcdTRGMDNcXHU0RjM5XFx1NEY1NlxcdTRGOTJcXHU0RjhBXFx1NEY5QVxcdTRGOTRcXHU0RkNEXFx1NTA0MFxcdTUwMjJcXHU0RkZGXFx1NTAxRVxcdTUwNDZcXHU1MDcwXFx1NTA0MlxcdTUwOTRcXHU1MEY0XFx1NTBEOFxcdTUxNEFcIl0sXG4gICAgICBbXCJmYTgwXCIsIFwiXFx1NTE2NFxcdTUxOURcXHU1MUJFXFx1NTFFQ1xcdTUyMTVcXHU1MjlDXFx1NTJBNlxcdTUyQzBcXHU1MkRCXFx1NTMwMFxcdTUzMDdcXHU1MzI0XFx1NTM3MlxcdTUzOTNcXHU1M0IyXFx1NTNERFxcdUZBMEVcXHU1NDlDXFx1NTQ4QVxcdTU0QTlcXHU1NEZGXFx1NTU4NlxcdTU3NTlcXHU1NzY1XFx1NTdBQ1xcdTU3QzhcXHU1N0M3XFx1RkEwRlxcdUZBMTBcXHU1ODlFXFx1NThCMlxcdTU5MEJcXHU1OTUzXFx1NTk1QlxcdTU5NURcXHU1OTYzXFx1NTlBNFxcdTU5QkFcXHU1QjU2XFx1NUJDMFxcdTc1MkZcXHU1QkQ4XFx1NUJFQ1xcdTVDMUVcXHU1Q0E2XFx1NUNCQVxcdTVDRjVcXHU1RDI3XFx1NUQ1M1xcdUZBMTFcXHU1RDQyXFx1NUQ2RFxcdTVEQjhcXHU1REI5XFx1NUREMFxcdTVGMjFcXHU1RjM0XFx1NUY2N1xcdTVGQjdcXHU1RkRFXFx1NjA1RFxcdTYwODVcXHU2MDhBXFx1NjBERVxcdTYwRDVcXHU2MTIwXFx1NjBGMlxcdTYxMTFcXHU2MTM3XFx1NjEzMFxcdTYxOThcXHU2MjEzXFx1NjJBNlxcdTYzRjVcXHU2NDYwXFx1NjQ5RFxcdTY0Q0VcXHU2NTRFXFx1NjYwMFxcdTY2MTVcXHU2NjNCXFx1NjYwOVxcdTY2MkVcXHU2NjFFXFx1NjYyNFxcdTY2NjVcXHU2NjU3XFx1NjY1OVxcdUZBMTJcXHU2NjczXFx1NjY5OVxcdTY2QTBcXHU2NkIyXFx1NjZCRlxcdTY2RkFcXHU2NzBFXFx1RjkyOVxcdTY3NjZcXHU2N0JCXFx1Njg1MlxcdTY3QzBcXHU2ODAxXFx1Njg0NFxcdTY4Q0ZcXHVGQTEzXFx1Njk2OFxcdUZBMTRcXHU2OTk4XFx1NjlFMlxcdTZBMzBcXHU2QTZCXFx1NkE0NlxcdTZBNzNcXHU2QTdFXFx1NkFFMlxcdTZBRTRcXHU2QkQ2XFx1NkMzRlxcdTZDNUNcXHU2Qzg2XFx1NkM2RlxcdTZDREFcXHU2RDA0XFx1NkQ4N1xcdTZENkZcIl0sXG4gICAgICBbXCJmYjQwXCIsIFwiXFx1NkQ5NlxcdTZEQUNcXHU2RENGXFx1NkRGOFxcdTZERjJcXHU2REZDXFx1NkUzOVxcdTZFNUNcXHU2RTI3XFx1NkUzQ1xcdTZFQkZcXHU2Rjg4XFx1NkZCNVxcdTZGRjVcXHU3MDA1XFx1NzAwN1xcdTcwMjhcXHU3MDg1XFx1NzBBQlxcdTcxMEZcXHU3MTA0XFx1NzE1Q1xcdTcxNDZcXHU3MTQ3XFx1RkExNVxcdTcxQzFcXHU3MUZFXFx1NzJCMVxcdTcyQkVcXHU3MzI0XFx1RkExNlxcdTczNzdcXHU3M0JEXFx1NzNDOVxcdTczRDZcXHU3M0UzXFx1NzNEMlxcdTc0MDdcXHU3M0Y1XFx1NzQyNlxcdTc0MkFcXHU3NDI5XFx1NzQyRVxcdTc0NjJcXHU3NDg5XFx1NzQ5RlxcdTc1MDFcXHU3NTZGXFx1NzY4MlxcdTc2OUNcXHU3NjlFXFx1NzY5QlxcdTc2QTZcXHVGQTE3XFx1Nzc0NlxcdTUyQUZcXHU3ODIxXFx1Nzg0RVxcdTc4NjRcXHU3ODdBXFx1NzkzMFxcdUZBMThcXHVGQTE5XCJdLFxuICAgICAgW1wiZmI4MFwiLCBcIlxcdUZBMUFcXHU3OTk0XFx1RkExQlxcdTc5OUJcXHU3QUQxXFx1N0FFN1xcdUZBMUNcXHU3QUVCXFx1N0I5RVxcdUZBMURcXHU3RDQ4XFx1N0Q1Q1xcdTdEQjdcXHU3REEwXFx1N0RENlxcdTdFNTJcXHU3RjQ3XFx1N0ZBMVxcdUZBMUVcXHU4MzAxXFx1ODM2MlxcdTgzN0ZcXHU4M0M3XFx1ODNGNlxcdTg0NDhcXHU4NEI0XFx1ODU1M1xcdTg1NTlcXHU4NTZCXFx1RkExRlxcdTg1QjBcXHVGQTIwXFx1RkEyMVxcdTg4MDdcXHU4OEY1XFx1OEExMlxcdThBMzdcXHU4QTc5XFx1OEFBN1xcdThBQkVcXHU4QURGXFx1RkEyMlxcdThBRjZcXHU4QjUzXFx1OEI3RlxcdThDRjBcXHU4Q0Y0XFx1OEQxMlxcdThENzZcXHVGQTIzXFx1OEVDRlxcdUZBMjRcXHVGQTI1XFx1OTA2N1xcdTkwREVcXHVGQTI2XFx1OTExNVxcdTkxMjdcXHU5MURBXFx1OTFEN1xcdTkxREVcXHU5MUVEXFx1OTFFRVxcdTkxRTRcXHU5MUU1XFx1OTIwNlxcdTkyMTBcXHU5MjBBXFx1OTIzQVxcdTkyNDBcXHU5MjNDXFx1OTI0RVxcdTkyNTlcXHU5MjUxXFx1OTIzOVxcdTkyNjdcXHU5MkE3XFx1OTI3N1xcdTkyNzhcXHU5MkU3XFx1OTJEN1xcdTkyRDlcXHU5MkQwXFx1RkEyN1xcdTkyRDVcXHU5MkUwXFx1OTJEM1xcdTkzMjVcXHU5MzIxXFx1OTJGQlxcdUZBMjhcXHU5MzFFXFx1OTJGRlxcdTkzMURcXHU5MzAyXFx1OTM3MFxcdTkzNTdcXHU5M0E0XFx1OTNDNlxcdTkzREVcXHU5M0Y4XFx1OTQzMVxcdTk0NDVcXHU5NDQ4XFx1OTU5MlxcdUY5RENcXHVGQTI5XFx1OTY5RFxcdTk2QUZcXHU5NzMzXFx1OTczQlxcdTk3NDNcXHU5NzREXFx1OTc0RlxcdTk3NTFcXHU5NzU1XFx1OTg1N1xcdTk4NjVcXHVGQTJBXFx1RkEyQlxcdTk5MjdcXHVGQTJDXFx1OTk5RVxcdTlBNEVcXHU5QUQ5XCJdLFxuICAgICAgW1wiZmM0MFwiLCBcIlxcdTlBRENcXHU5Qjc1XFx1OUI3MlxcdTlCOEZcXHU5QkIxXFx1OUJCQlxcdTlDMDBcXHU5RDcwXFx1OUQ2QlxcdUZBMkRcXHU5RTE5XFx1OUVEMVwiXVxuICAgIF07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9ldWNqcC5qc29uXG52YXIgcmVxdWlyZV9ldWNqcDIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9ldWNqcC5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBbXG4gICAgICBbXCIwXCIsIFwiXFwwXCIsIDEyN10sXG4gICAgICBbXCI4ZWExXCIsIFwiXFx1RkY2MVwiLCA2Ml0sXG4gICAgICBbXCJhMWExXCIsIFwiXFx1MzAwMFxcdTMwMDFcXHUzMDAyXFx1RkYwQ1xcdUZGMEVcXHUzMEZCXFx1RkYxQVxcdUZGMUJcXHVGRjFGXFx1RkYwMVxcdTMwOUJcXHUzMDlDXFx4QjRcXHVGRjQwXFx4QThcXHVGRjNFXFx1RkZFM1xcdUZGM0ZcXHUzMEZEXFx1MzBGRVxcdTMwOURcXHUzMDlFXFx1MzAwM1xcdTRFRERcXHUzMDA1XFx1MzAwNlxcdTMwMDdcXHUzMEZDXFx1MjAxNVxcdTIwMTBcXHVGRjBGXFx1RkYzQ1xcdUZGNUVcXHUyMjI1XFx1RkY1Q1xcdTIwMjZcXHUyMDI1XFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdUZGMDhcXHVGRjA5XFx1MzAxNFxcdTMwMTVcXHVGRjNCXFx1RkYzRFxcdUZGNUJcXHVGRjVEXFx1MzAwOFwiLCA5LCBcIlxcdUZGMEJcXHVGRjBEXFx4QjFcXHhEN1xceEY3XFx1RkYxRFxcdTIyNjBcXHVGRjFDXFx1RkYxRVxcdTIyNjZcXHUyMjY3XFx1MjIxRVxcdTIyMzRcXHUyNjQyXFx1MjY0MFxceEIwXFx1MjAzMlxcdTIwMzNcXHUyMTAzXFx1RkZFNVxcdUZGMDRcXHVGRkUwXFx1RkZFMVxcdUZGMDVcXHVGRjAzXFx1RkYwNlxcdUZGMEFcXHVGRjIwXFx4QTdcXHUyNjA2XFx1MjYwNVxcdTI1Q0JcXHUyNUNGXFx1MjVDRVxcdTI1QzdcIl0sXG4gICAgICBbXCJhMmExXCIsIFwiXFx1MjVDNlxcdTI1QTFcXHUyNUEwXFx1MjVCM1xcdTI1QjJcXHUyNUJEXFx1MjVCQ1xcdTIwM0JcXHUzMDEyXFx1MjE5MlxcdTIxOTBcXHUyMTkxXFx1MjE5M1xcdTMwMTNcIl0sXG4gICAgICBbXCJhMmJhXCIsIFwiXFx1MjIwOFxcdTIyMEJcXHUyMjg2XFx1MjI4N1xcdTIyODJcXHUyMjgzXFx1MjIyQVxcdTIyMjlcIl0sXG4gICAgICBbXCJhMmNhXCIsIFwiXFx1MjIyN1xcdTIyMjhcXHVGRkUyXFx1MjFEMlxcdTIxRDRcXHUyMjAwXFx1MjIwM1wiXSxcbiAgICAgIFtcImEyZGNcIiwgXCJcXHUyMjIwXFx1MjJBNVxcdTIzMTJcXHUyMjAyXFx1MjIwN1xcdTIyNjFcXHUyMjUyXFx1MjI2QVxcdTIyNkJcXHUyMjFBXFx1MjIzRFxcdTIyMURcXHUyMjM1XFx1MjIyQlxcdTIyMkNcIl0sXG4gICAgICBbXCJhMmYyXCIsIFwiXFx1MjEyQlxcdTIwMzBcXHUyNjZGXFx1MjY2RFxcdTI2NkFcXHUyMDIwXFx1MjAyMVxceEI2XCJdLFxuICAgICAgW1wiYTJmZVwiLCBcIlxcdTI1RUZcIl0sXG4gICAgICBbXCJhM2IwXCIsIFwiXFx1RkYxMFwiLCA5XSxcbiAgICAgIFtcImEzYzFcIiwgXCJcXHVGRjIxXCIsIDI1XSxcbiAgICAgIFtcImEzZTFcIiwgXCJcXHVGRjQxXCIsIDI1XSxcbiAgICAgIFtcImE0YTFcIiwgXCJcXHUzMDQxXCIsIDgyXSxcbiAgICAgIFtcImE1YTFcIiwgXCJcXHUzMEExXCIsIDg1XSxcbiAgICAgIFtcImE2YTFcIiwgXCJcXHUwMzkxXCIsIDE2LCBcIlxcdTAzQTNcIiwgNl0sXG4gICAgICBbXCJhNmMxXCIsIFwiXFx1MDNCMVwiLCAxNiwgXCJcXHUwM0MzXCIsIDZdLFxuICAgICAgW1wiYTdhMVwiLCBcIlxcdTA0MTBcIiwgNSwgXCJcXHUwNDAxXFx1MDQxNlwiLCAyNV0sXG4gICAgICBbXCJhN2QxXCIsIFwiXFx1MDQzMFwiLCA1LCBcIlxcdTA0NTFcXHUwNDM2XCIsIDI1XSxcbiAgICAgIFtcImE4YTFcIiwgXCJcXHUyNTAwXFx1MjUwMlxcdTI1MENcXHUyNTEwXFx1MjUxOFxcdTI1MTRcXHUyNTFDXFx1MjUyQ1xcdTI1MjRcXHUyNTM0XFx1MjUzQ1xcdTI1MDFcXHUyNTAzXFx1MjUwRlxcdTI1MTNcXHUyNTFCXFx1MjUxN1xcdTI1MjNcXHUyNTMzXFx1MjUyQlxcdTI1M0JcXHUyNTRCXFx1MjUyMFxcdTI1MkZcXHUyNTI4XFx1MjUzN1xcdTI1M0ZcXHUyNTFEXFx1MjUzMFxcdTI1MjVcXHUyNTM4XFx1MjU0MlwiXSxcbiAgICAgIFtcImFkYTFcIiwgXCJcXHUyNDYwXCIsIDE5LCBcIlxcdTIxNjBcIiwgOV0sXG4gICAgICBbXCJhZGMwXCIsIFwiXFx1MzM0OVxcdTMzMTRcXHUzMzIyXFx1MzM0RFxcdTMzMThcXHUzMzI3XFx1MzMwM1xcdTMzMzZcXHUzMzUxXFx1MzM1N1xcdTMzMERcXHUzMzI2XFx1MzMyM1xcdTMzMkJcXHUzMzRBXFx1MzMzQlxcdTMzOUNcXHUzMzlEXFx1MzM5RVxcdTMzOEVcXHUzMzhGXFx1MzNDNFxcdTMzQTFcIl0sXG4gICAgICBbXCJhZGRmXCIsIFwiXFx1MzM3QlxcdTMwMURcXHUzMDFGXFx1MjExNlxcdTMzQ0RcXHUyMTIxXFx1MzJBNFwiLCA0LCBcIlxcdTMyMzFcXHUzMjMyXFx1MzIzOVxcdTMzN0VcXHUzMzdEXFx1MzM3Q1xcdTIyNTJcXHUyMjYxXFx1MjIyQlxcdTIyMkVcXHUyMjExXFx1MjIxQVxcdTIyQTVcXHUyMjIwXFx1MjIxRlxcdTIyQkZcXHUyMjM1XFx1MjIyOVxcdTIyMkFcIl0sXG4gICAgICBbXCJiMGExXCIsIFwiXFx1NEU5Q1xcdTU1MTZcXHU1QTAzXFx1OTYzRlxcdTU0QzBcXHU2MTFCXFx1NjMyOFxcdTU5RjZcXHU5MDIyXFx1ODQ3NVxcdTgzMUNcXHU3QTUwXFx1NjBBQVxcdTYzRTFcXHU2RTI1XFx1NjVFRFxcdTg0NjZcXHU4MkE2XFx1OUJGNVxcdTY4OTNcXHU1NzI3XFx1NjVBMVxcdTYyNzFcXHU1QjlCXFx1NTlEMFxcdTg2N0JcXHU5OEY0XFx1N0Q2MlxcdTdEQkVcXHU5QjhFXFx1NjIxNlxcdTdDOUZcXHU4OEI3XFx1NUI4OVxcdTVFQjVcXHU2MzA5XFx1NjY5N1xcdTY4NDhcXHU5NUM3XFx1OTc4RFxcdTY3NEZcXHU0RUU1XFx1NEYwQVxcdTRGNERcXHU0RjlEXFx1NTA0OVxcdTU2RjJcXHU1OTM3XFx1NTlENFxcdTVBMDFcXHU1QzA5XFx1NjBERlxcdTYxMEZcXHU2MTcwXFx1NjYxM1xcdTY5MDVcXHU3MEJBXFx1NzU0RlxcdTc1NzBcXHU3OUZCXFx1N0RBRFxcdTdERUZcXHU4MEMzXFx1ODQwRVxcdTg4NjNcXHU4QjAyXFx1OTA1NVxcdTkwN0FcXHU1MzNCXFx1NEU5NVxcdTRFQTVcXHU1N0RGXFx1ODBCMlxcdTkwQzFcXHU3OEVGXFx1NEUwMFxcdTU4RjFcXHU2RUEyXFx1OTAzOFxcdTdBMzJcXHU4MzI4XFx1ODI4QlxcdTlDMkZcXHU1MTQxXFx1NTM3MFxcdTU0QkRcXHU1NEUxXFx1NTZFMFxcdTU5RkJcXHU1RjE1XFx1OThGMlxcdTZERUJcXHU4MEU0XFx1ODUyRFwiXSxcbiAgICAgIFtcImIxYTFcIiwgXCJcXHU5NjYyXFx1OTY3MFxcdTk2QTBcXHU5N0ZCXFx1NTQwQlxcdTUzRjNcXHU1Qjg3XFx1NzBDRlxcdTdGQkRcXHU4RkMyXFx1OTZFOFxcdTUzNkZcXHU5RDVDXFx1N0FCQVxcdTRFMTFcXHU3ODkzXFx1ODFGQ1xcdTZFMjZcXHU1NjE4XFx1NTUwNFxcdTZCMURcXHU4NTFBXFx1OUMzQlxcdTU5RTVcXHU1M0E5XFx1NkQ2NlxcdTc0RENcXHU5NThGXFx1NTY0MlxcdTRFOTFcXHU5MDRCXFx1OTZGMlxcdTgzNEZcXHU5OTBDXFx1NTNFMVxcdTU1QjZcXHU1QjMwXFx1NUY3MVxcdTY2MjBcXHU2NkYzXFx1NjgwNFxcdTZDMzhcXHU2Q0YzXFx1NkQyOVxcdTc0NUJcXHU3NkM4XFx1N0E0RVxcdTk4MzRcXHU4MkYxXFx1ODg1QlxcdThBNjBcXHU5MkVEXFx1NkRCMlxcdTc1QUJcXHU3NkNBXFx1OTlDNVxcdTYwQTZcXHU4QjAxXFx1OEQ4QVxcdTk1QjJcXHU2OThFXFx1NTNBRFxcdTUxODZcXHU1NzEyXFx1NTgzMFxcdTU5NDRcXHU1QkI0XFx1NUVGNlxcdTYwMjhcXHU2M0E5XFx1NjNGNFxcdTZDQkZcXHU2RjE0XFx1NzA4RVxcdTcxMTRcXHU3MTU5XFx1NzFENVxcdTczM0ZcXHU3RTAxXFx1ODI3NlxcdTgyRDFcXHU4NTk3XFx1OTA2MFxcdTkyNUJcXHU5RDFCXFx1NTg2OVxcdTY1QkNcXHU2QzVBXFx1NzUyNVxcdTUxRjlcXHU1OTJFXFx1NTk2NVxcdTVGODBcXHU1RkRDXCJdLFxuICAgICAgW1wiYjJhMVwiLCBcIlxcdTYyQkNcXHU2NUZBXFx1NkEyQVxcdTZCMjdcXHU2QkI0XFx1NzM4QlxcdTdGQzFcXHU4OTU2XFx1OUQyQ1xcdTlEMEVcXHU5RUM0XFx1NUNBMVxcdTZDOTZcXHU4MzdCXFx1NTEwNFxcdTVDNEJcXHU2MUI2XFx1ODFDNlxcdTY4NzZcXHU3MjYxXFx1NEU1OVxcdTRGRkFcXHU1Mzc4XFx1NjA2OVxcdTZFMjlcXHU3QTRGXFx1OTdGM1xcdTRFMEJcXHU1MzE2XFx1NEVFRVxcdTRGNTVcXHU0RjNEXFx1NEZBMVxcdTRGNzNcXHU1MkEwXFx1NTNFRlxcdTU2MDlcXHU1OTBGXFx1NUFDMVxcdTVCQjZcXHU1QkUxXFx1NzlEMVxcdTY2ODdcXHU2NzlDXFx1NjdCNlxcdTZCNENcXHU2Q0IzXFx1NzA2QlxcdTczQzJcXHU3OThEXFx1NzlCRVxcdTdBM0NcXHU3Qjg3XFx1ODJCMVxcdTgyREJcXHU4MzA0XFx1ODM3N1xcdTgzRUZcXHU4M0QzXFx1ODc2NlxcdThBQjJcXHU1NjI5XFx1OENBOFxcdThGRTZcXHU5MDRFXFx1OTcxRVxcdTg2OEFcXHU0RkM0XFx1NUNFOFxcdTYyMTFcXHU3MjU5XFx1NzUzQlxcdTgxRTVcXHU4MkJEXFx1ODZGRVxcdThDQzBcXHU5NkM1XFx1OTkxM1xcdTk5RDVcXHU0RUNCXFx1NEYxQVxcdTg5RTNcXHU1NkRFXFx1NTg0QVxcdTU4Q0FcXHU1RUZCXFx1NUZFQlxcdTYwMkFcXHU2MDk0XFx1NjA2MlxcdTYxRDBcXHU2MjEyXFx1NjJEMFxcdTY1MzlcIl0sXG4gICAgICBbXCJiM2ExXCIsIFwiXFx1OUI0MVxcdTY2NjZcXHU2OEIwXFx1NkQ3N1xcdTcwNzBcXHU3NTRDXFx1NzY4NlxcdTdENzVcXHU4MkE1XFx1ODdGOVxcdTk1OEJcXHU5NjhFXFx1OEM5RFxcdTUxRjFcXHU1MkJFXFx1NTkxNlxcdTU0QjNcXHU1QkIzXFx1NUQxNlxcdTYxNjhcXHU2OTgyXFx1NkRBRlxcdTc4OERcXHU4NENCXFx1ODg1N1xcdThBNzJcXHU5M0E3XFx1OUFCOFxcdTZENkNcXHU5OUE4XFx1ODZEOVxcdTU3QTNcXHU2N0ZGXFx1ODZDRVxcdTkyMEVcXHU1MjgzXFx1NTY4N1xcdTU0MDRcXHU1RUQzXFx1NjJFMVxcdTY0QjlcXHU2ODNDXFx1NjgzOFxcdTZCQkJcXHU3MzcyXFx1NzhCQVxcdTdBNkJcXHU4OTlBXFx1ODlEMlxcdThENkJcXHU4RjAzXFx1OTBFRFxcdTk1QTNcXHU5Njk0XFx1OTc2OVxcdTVCNjZcXHU1Q0IzXFx1Njk3RFxcdTk4NERcXHU5ODRFXFx1NjM5QlxcdTdCMjBcXHU2QTJCXFx1NkE3RlxcdTY4QjZcXHU5QzBEXFx1NkY1RlxcdTUyNzJcXHU1NTlEXFx1NjA3MFxcdTYyRUNcXHU2RDNCXFx1NkUwN1xcdTZFRDFcXHU4NDVCXFx1ODkxMFxcdThGNDRcXHU0RTE0XFx1OUMzOVxcdTUzRjZcXHU2OTFCXFx1NkEzQVxcdTk3ODRcXHU2ODJBXFx1NTE1Q1xcdTdBQzNcXHU4NEIyXFx1OTFEQ1xcdTkzOENcXHU1NjVCXFx1OUQyOFxcdTY4MjJcXHU4MzA1XFx1ODQzMVwiXSxcbiAgICAgIFtcImI0YTFcIiwgXCJcXHU3Q0E1XFx1NTIwOFxcdTgyQzVcXHU3NEU2XFx1NEU3RVxcdTRGODNcXHU1MUEwXFx1NUJEMlxcdTUyMEFcXHU1MkQ4XFx1NTJFN1xcdTVERkJcXHU1NTlBXFx1NTgyQVxcdTU5RTZcXHU1QjhDXFx1NUI5OFxcdTVCREJcXHU1RTcyXFx1NUU3OVxcdTYwQTNcXHU2MTFGXFx1NjE2M1xcdTYxQkVcXHU2M0RCXFx1NjU2MlxcdTY3RDFcXHU2ODUzXFx1NjhGQVxcdTZCM0VcXHU2QjUzXFx1NkM1N1xcdTZGMjJcXHU2Rjk3XFx1NkY0NVxcdTc0QjBcXHU3NTE4XFx1NzZFM1xcdTc3MEJcXHU3QUZGXFx1N0JBMVxcdTdDMjFcXHU3REU5XFx1N0YzNlxcdTdGRjBcXHU4MDlEXFx1ODI2NlxcdTgzOUVcXHU4OUIzXFx1OEFDQ1xcdThDQUJcXHU5MDg0XFx1OTQ1MVxcdTk1OTNcXHU5NTkxXFx1OTVBMlxcdTk2NjVcXHU5N0QzXFx1OTkyOFxcdTgyMThcXHU0RTM4XFx1NTQyQlxcdTVDQjhcXHU1RENDXFx1NzNBOVxcdTc2NENcXHU3NzNDXFx1NUNBOVxcdTdGRUJcXHU4RDBCXFx1OTZDMVxcdTk4MTFcXHU5ODU0XFx1OTg1OFxcdTRGMDFcXHU0RjBFXFx1NTM3MVxcdTU1OUNcXHU1NjY4XFx1NTdGQVxcdTU5NDdcXHU1QjA5XFx1NUJDNFxcdTVDOTBcXHU1RTBDXFx1NUU3RVxcdTVGQ0NcXHU2M0VFXFx1NjczQVxcdTY1RDdcXHU2NUUyXFx1NjcxRlxcdTY4Q0JcXHU2OEM0XCJdLFxuICAgICAgW1wiYjVhMVwiLCBcIlxcdTZBNUZcXHU1RTMwXFx1NkJDNVxcdTZDMTdcXHU2QzdEXFx1NzU3RlxcdTc5NDhcXHU1QjYzXFx1N0EwMFxcdTdEMDBcXHU1RkJEXFx1ODk4RlxcdThBMThcXHU4Q0I0XFx1OEQ3N1xcdThFQ0NcXHU4RjFEXFx1OThFMlxcdTlBMEVcXHU5QjNDXFx1NEU4MFxcdTUwN0RcXHU1MTAwXFx1NTk5M1xcdTVCOUNcXHU2MjJGXFx1NjI4MFxcdTY0RUNcXHU2QjNBXFx1NzJBMFxcdTc1OTFcXHU3OTQ3XFx1N0ZBOVxcdTg3RkJcXHU4QUJDXFx1OEI3MFxcdTYzQUNcXHU4M0NBXFx1OTdBMFxcdTU0MDlcXHU1NDAzXFx1NTVBQlxcdTY4NTRcXHU2QTU4XFx1OEE3MFxcdTc4MjdcXHU2Nzc1XFx1OUVDRFxcdTUzNzRcXHU1QkEyXFx1ODExQVxcdTg2NTBcXHU5MDA2XFx1NEUxOFxcdTRFNDVcXHU0RUM3XFx1NEYxMVxcdTUzQ0FcXHU1NDM4XFx1NUJBRVxcdTVGMTNcXHU2MDI1XFx1NjU1MVxcdTY3M0RcXHU2QzQyXFx1NkM3MlxcdTZDRTNcXHU3MDc4XFx1NzQwM1xcdTdBNzZcXHU3QUFFXFx1N0IwOFxcdTdEMUFcXHU3Q0ZFXFx1N0Q2NlxcdTY1RTdcXHU3MjVCXFx1NTNCQlxcdTVDNDVcXHU1REU4XFx1NjJEMlxcdTYyRTBcXHU2MzE5XFx1NkUyMFxcdTg2NUFcXHU4QTMxXFx1OERERFxcdTkyRjhcXHU2RjAxXFx1NzlBNlxcdTlCNUFcXHU0RUE4XFx1NEVBQlxcdTRFQUNcIl0sXG4gICAgICBbXCJiNmExXCIsIFwiXFx1NEY5QlxcdTRGQTBcXHU1MEQxXFx1NTE0N1xcdTdBRjZcXHU1MTcxXFx1NTFGNlxcdTUzNTRcXHU1MzIxXFx1NTM3RlxcdTUzRUJcXHU1NUFDXFx1NTg4M1xcdTVDRTFcXHU1RjM3XFx1NUY0QVxcdTYwMkZcXHU2MDUwXFx1NjA2RFxcdTYzMUZcXHU2NTU5XFx1NkE0QlxcdTZDQzFcXHU3MkMyXFx1NzJFRFxcdTc3RUZcXHU4MEY4XFx1ODEwNVxcdTgyMDhcXHU4NTRFXFx1OTBGN1xcdTkzRTFcXHU5N0ZGXFx1OTk1N1xcdTlBNUFcXHU0RUYwXFx1NTFERFxcdTVDMkRcXHU2NjgxXFx1Njk2RFxcdTVDNDBcXHU2NkYyXFx1Njk3NVxcdTczODlcXHU2ODUwXFx1N0M4MVxcdTUwQzVcXHU1MkU0XFx1NTc0N1xcdTVERkVcXHU5MzI2XFx1NjVBNFxcdTZCMjNcXHU2QjNEXFx1NzQzNFxcdTc5ODFcXHU3OUJEXFx1N0I0QlxcdTdEQ0FcXHU4MkI5XFx1ODNDQ1xcdTg4N0ZcXHU4OTVGXFx1OEIzOVxcdThGRDFcXHU5MUQxXFx1NTQxRlxcdTkyODBcXHU0RTVEXFx1NTAzNlxcdTUzRTVcXHU1MzNBXFx1NzJEN1xcdTczOTZcXHU3N0U5XFx1ODJFNlxcdThFQUZcXHU5OUM2XFx1OTlDOFxcdTk5RDJcXHU1MTc3XFx1NjExQVxcdTg2NUVcXHU1NUIwXFx1N0E3QVxcdTUwNzZcXHU1QkQzXFx1OTA0N1xcdTk2ODVcXHU0RTMyXFx1NkFEQlxcdTkxRTdcXHU1QzUxXFx1NUM0OFwiXSxcbiAgICAgIFtcImI3YTFcIiwgXCJcXHU2Mzk4XFx1N0E5RlxcdTZDOTNcXHU5Nzc0XFx1OEY2MVxcdTdBQUFcXHU3MThBXFx1OTY4OFxcdTdDODJcXHU2ODE3XFx1N0U3MFxcdTY4NTFcXHU5MzZDXFx1NTJGMlxcdTU0MUJcXHU4NUFCXFx1OEExM1xcdTdGQTRcXHU4RUNEXFx1OTBFMVxcdTUzNjZcXHU4ODg4XFx1Nzk0MVxcdTRGQzJcXHU1MEJFXFx1NTIxMVxcdTUxNDRcXHU1NTUzXFx1NTcyRFxcdTczRUFcXHU1NzhCXFx1NTk1MVxcdTVGNjJcXHU1Rjg0XFx1NjA3NVxcdTYxNzZcXHU2MTY3XFx1NjFBOVxcdTYzQjJcXHU2NDNBXFx1NjU2Q1xcdTY2NkZcXHU2ODQyXFx1NkUxM1xcdTc1NjZcXHU3QTNEXFx1N0NGQlxcdTdENENcXHU3RDk5XFx1N0U0QlxcdTdGNkJcXHU4MzBFXFx1ODM0QVxcdTg2Q0RcXHU4QTA4XFx1OEE2M1xcdThCNjZcXHU4RUZEXFx1OTgxQVxcdTlEOEZcXHU4MkI4XFx1OEZDRVxcdTlCRThcXHU1Mjg3XFx1NjIxRlxcdTY0ODNcXHU2RkMwXFx1OTY5OVxcdTY4NDFcXHU1MDkxXFx1NkIyMFxcdTZDN0FcXHU2RjU0XFx1N0E3NFxcdTdENTBcXHU4ODQwXFx1OEEyM1xcdTY3MDhcXHU0RUY2XFx1NTAzOVxcdTUwMjZcXHU1MDY1XFx1NTE3Q1xcdTUyMzhcXHU1MjYzXFx1NTVBN1xcdTU3MEZcXHU1ODA1XFx1NUFDQ1xcdTVFRkFcXHU2MUIyXFx1NjFGOFxcdTYyRjNcXHU2MzcyXCJdLFxuICAgICAgW1wiYjhhMVwiLCBcIlxcdTY5MUNcXHU2QTI5XFx1NzI3RFxcdTcyQUNcXHU3MzJFXFx1NzgxNFxcdTc4NkZcXHU3RDc5XFx1NzcwQ1xcdTgwQTlcXHU4OThCXFx1OEIxOVxcdThDRTJcXHU4RUQyXFx1OTA2M1xcdTkzNzVcXHU5NjdBXFx1OTg1NVxcdTlBMTNcXHU5RTc4XFx1NTE0M1xcdTUzOUZcXHU1M0IzXFx1NUU3QlxcdTVGMjZcXHU2RTFCXFx1NkU5MFxcdTczODRcXHU3M0ZFXFx1N0Q0M1xcdTgyMzdcXHU4QTAwXFx1OEFGQVxcdTk2NTBcXHU0RTRFXFx1NTAwQlxcdTUzRTRcXHU1NDdDXFx1NTZGQVxcdTU5RDFcXHU1QjY0XFx1NURGMVxcdTVFQUJcXHU1RjI3XFx1NjIzOFxcdTY1NDVcXHU2N0FGXFx1NkU1NlxcdTcyRDBcXHU3Q0NBXFx1ODhCNFxcdTgwQTFcXHU4MEUxXFx1ODNGMFxcdTg2NEVcXHU4QTg3XFx1OERFOFxcdTkyMzdcXHU5NkM3XFx1OTg2N1xcdTlGMTNcXHU0RTk0XFx1NEU5MlxcdTRGMERcXHU1MzQ4XFx1NTQ0OVxcdTU0M0VcXHU1QTJGXFx1NUY4Q1xcdTVGQTFcXHU2MDlGXFx1NjhBN1xcdTZBOEVcXHU3NDVBXFx1Nzg4MVxcdThBOUVcXHU4QUE0XFx1OEI3N1xcdTkxOTBcXHU0RTVFXFx1OUJDOVxcdTRFQTRcXHU0RjdDXFx1NEZBRlxcdTUwMTlcXHU1MDE2XFx1NTE0OVxcdTUxNkNcXHU1MjlGXFx1NTJCOVxcdTUyRkVcXHU1MzlBXFx1NTNFM1xcdTU0MTFcIl0sXG4gICAgICBbXCJiOWExXCIsIFwiXFx1NTQwRVxcdTU1ODlcXHU1NzUxXFx1NTdBMlxcdTU5N0RcXHU1QjU0XFx1NUI1RFxcdTVCOEZcXHU1REU1XFx1NURFN1xcdTVERjdcXHU1RTc4XFx1NUU4M1xcdTVFOUFcXHU1RUI3XFx1NUYxOFxcdTYwNTJcXHU2MTRDXFx1NjI5N1xcdTYyRDhcXHU2M0E3XFx1NjUzQlxcdTY2MDJcXHU2NjQzXFx1NjZGNFxcdTY3NkRcXHU2ODIxXFx1Njg5N1xcdTY5Q0JcXHU2QzVGXFx1NkQyQVxcdTZENjlcXHU2RTJGXFx1NkU5RFxcdTc1MzJcXHU3Njg3XFx1Nzg2Q1xcdTdBM0ZcXHU3Q0UwXFx1N0QwNVxcdTdEMThcXHU3RDVFXFx1N0RCMVxcdTgwMTVcXHU4MDAzXFx1ODBBRlxcdTgwQjFcXHU4MTU0XFx1ODE4RlxcdTgyMkFcXHU4MzUyXFx1ODg0Q1xcdTg4NjFcXHU4QjFCXFx1OENBMlxcdThDRkNcXHU5MENBXFx1OTE3NVxcdTkyNzFcXHU3ODNGXFx1OTJGQ1xcdTk1QTRcXHU5NjREXFx1OTgwNVxcdTk5OTlcXHU5QUQ4XFx1OUQzQlxcdTUyNUJcXHU1MkFCXFx1NTNGN1xcdTU0MDhcXHU1OEQ1XFx1NjJGN1xcdTZGRTBcXHU4QzZBXFx1OEY1RlxcdTlFQjlcXHU1MTRCXFx1NTIzQlxcdTU0NEFcXHU1NkZEXFx1N0E0MFxcdTkxNzdcXHU5RDYwXFx1OUVEMlxcdTczNDRcXHU2RjA5XFx1ODE3MFxcdTc1MTFcXHU1RkZEXFx1NjBEQVxcdTlBQThcXHU3MkRCXFx1OEZCQ1wiXSxcbiAgICAgIFtcImJhYTFcIiwgXCJcXHU2QjY0XFx1OTgwM1xcdTRFQ0FcXHU1NkYwXFx1NTc2NFxcdTU4QkVcXHU1QTVBXFx1NjA2OFxcdTYxQzdcXHU2NjBGXFx1NjYwNlxcdTY4MzlcXHU2OEIxXFx1NkRGN1xcdTc1RDVcXHU3RDNBXFx1ODI2RVxcdTlCNDJcXHU0RTlCXFx1NEY1MFxcdTUzQzlcXHU1NTA2XFx1NUQ2RlxcdTVERTZcXHU1REVFXFx1NjdGQlxcdTZDOTlcXHU3NDczXFx1NzgwMlxcdThBNTBcXHU5Mzk2XFx1ODhERlxcdTU3NTBcXHU1RUE3XFx1NjMyQlxcdTUwQjVcXHU1MEFDXFx1NTE4RFxcdTY3MDBcXHU1NEM5XFx1NTg1RVxcdTU5QkJcXHU1QkIwXFx1NUY2OVxcdTYyNERcXHU2M0ExXFx1NjgzRFxcdTZCNzNcXHU2RTA4XFx1NzA3RFxcdTkxQzdcXHU3MjgwXFx1NzgxNVxcdTc4MjZcXHU3OTZEXFx1NjU4RVxcdTdEMzBcXHU4M0RDXFx1ODhDMVxcdThGMDlcXHU5NjlCXFx1NTI2NFxcdTU3MjhcXHU2NzUwXFx1N0Y2QVxcdThDQTFcXHU1MUI0XFx1NTc0MlxcdTk2MkFcXHU1ODNBXFx1Njk4QVxcdTgwQjRcXHU1NEIyXFx1NUQwRVxcdTU3RkNcXHU3ODk1XFx1OURGQVxcdTRGNUNcXHU1MjRBXFx1NTQ4QlxcdTY0M0VcXHU2NjI4XFx1NjcxNFxcdTY3RjVcXHU3QTg0XFx1N0I1NlxcdTdEMjJcXHU5MzJGXFx1Njg1Q1xcdTlCQURcXHU3QjM5XFx1NTMxOVxcdTUxOEFcXHU1MjM3XCJdLFxuICAgICAgW1wiYmJhMVwiLCBcIlxcdTVCREZcXHU2MkY2XFx1NjRBRVxcdTY0RTZcXHU2NzJEXFx1NkJCQVxcdTg1QTlcXHU5NkQxXFx1NzY5MFxcdTlCRDZcXHU2MzRDXFx1OTMwNlxcdTlCQUJcXHU3NkJGXFx1NjY1MlxcdTRFMDlcXHU1MDk4XFx1NTNDMlxcdTVDNzFcXHU2MEU4XFx1NjQ5MlxcdTY1NjNcXHU2ODVGXFx1NzFFNlxcdTczQ0FcXHU3NTIzXFx1N0I5N1xcdTdFODJcXHU4Njk1XFx1OEI4M1xcdThDREJcXHU5MTc4XFx1OTkxMFxcdTY1QUNcXHU2NkFCXFx1NkI4QlxcdTRFRDVcXHU0RUQ0XFx1NEYzQVxcdTRGN0ZcXHU1MjNBXFx1NTNGOFxcdTUzRjJcXHU1NUUzXFx1NTZEQlxcdTU4RUJcXHU1OUNCXFx1NTlDOVxcdTU5RkZcXHU1QjUwXFx1NUM0RFxcdTVFMDJcXHU1RTJCXFx1NUZEN1xcdTYwMURcXHU2MzA3XFx1NjUyRlxcdTVCNUNcXHU2NUFGXFx1NjVCRFxcdTY1RThcXHU2NzlEXFx1NkI2MlxcdTZCN0JcXHU2QzBGXFx1NzM0NVxcdTc5NDlcXHU3OUMxXFx1N0NGOFxcdTdEMTlcXHU3RDJCXFx1ODBBMlxcdTgxMDJcXHU4MUYzXFx1ODk5NlxcdThBNUVcXHU4QTY5XFx1OEE2NlxcdThBOENcXHU4QUVFXFx1OENDN1xcdThDRENcXHU5NkNDXFx1OThGQ1xcdTZCNkZcXHU0RThCXFx1NEYzQ1xcdTRGOERcXHU1MTUwXFx1NUI1N1xcdTVCRkFcXHU2MTQ4XFx1NjMwMVxcdTY2NDJcIl0sXG4gICAgICBbXCJiY2ExXCIsIFwiXFx1NkIyMVxcdTZFQ0JcXHU2Q0JCXFx1NzIzRVxcdTc0QkRcXHU3NUQ0XFx1NzhDMVxcdTc5M0FcXHU4MDBDXFx1ODAzM1xcdTgxRUFcXHU4NDk0XFx1OEY5RVxcdTZDNTBcXHU5RTdGXFx1NUYwRlxcdThCNThcXHU5RDJCXFx1N0FGQVxcdThFRjhcXHU1QjhEXFx1OTZFQlxcdTRFMDNcXHU1M0YxXFx1NTdGN1xcdTU5MzFcXHU1QUM5XFx1NUJBNFxcdTYwODlcXHU2RTdGXFx1NkYwNlxcdTc1QkVcXHU4Q0VBXFx1NUI5RlxcdTg1MDBcXHU3QkUwXFx1NTA3MlxcdTY3RjRcXHU4MjlEXFx1NUM2MVxcdTg1NEFcXHU3RTFFXFx1ODIwRVxcdTUxOTlcXHU1QzA0XFx1NjM2OFxcdThENjZcXHU2NTlDXFx1NzE2RVxcdTc5M0VcXHU3RDE3XFx1ODAwNVxcdThCMURcXHU4RUNBXFx1OTA2RVxcdTg2QzdcXHU5MEFBXFx1NTAxRlxcdTUyRkFcXHU1QzNBXFx1Njc1M1xcdTcwN0NcXHU3MjM1XFx1OTE0Q1xcdTkxQzhcXHU5MzJCXFx1ODJFNVxcdTVCQzJcXHU1RjMxXFx1NjBGOVxcdTRFM0JcXHU1M0Q2XFx1NUI4OFxcdTYyNEJcXHU2NzMxXFx1NkI4QVxcdTcyRTlcXHU3M0UwXFx1N0EyRVxcdTgxNkJcXHU4REEzXFx1OTE1MlxcdTk5OTZcXHU1MTEyXFx1NTNEN1xcdTU0NkFcXHU1QkZGXFx1NjM4OFxcdTZBMzlcXHU3REFDXFx1OTcwMFxcdTU2REFcXHU1M0NFXFx1NTQ2OFwiXSxcbiAgICAgIFtcImJkYTFcIiwgXCJcXHU1Qjk3XFx1NUMzMVxcdTVEREVcXHU0RkVFXFx1NjEwMVxcdTYyRkVcXHU2RDMyXFx1NzlDMFxcdTc5Q0JcXHU3RDQyXFx1N0U0RFxcdTdGRDJcXHU4MUVEXFx1ODIxRlxcdTg0OTBcXHU4ODQ2XFx1ODk3MlxcdThCOTBcXHU4RTc0XFx1OEYyRlxcdTkwMzFcXHU5MTRCXFx1OTE2Q1xcdTk2QzZcXHU5MTlDXFx1NEVDMFxcdTRGNEZcXHU1MTQ1XFx1NTM0MVxcdTVGOTNcXHU2MjBFXFx1NjdENFxcdTZDNDFcXHU2RTBCXFx1NzM2M1xcdTdFMjZcXHU5MUNEXFx1OTI4M1xcdTUzRDRcXHU1OTE5XFx1NUJCRlxcdTZERDFcXHU3OTVEXFx1N0UyRVxcdTdDOUJcXHU1ODdFXFx1NzE5RlxcdTUxRkFcXHU4ODUzXFx1OEZGMFxcdTRGQ0FcXHU1Q0ZCXFx1NjYyNVxcdTc3QUNcXHU3QUUzXFx1ODIxQ1xcdTk5RkZcXHU1MUM2XFx1NUZBQVxcdTY1RUNcXHU2OTZGXFx1NkI4OVxcdTZERjNcXHU2RTk2XFx1NkY2NFxcdTc2RkVcXHU3RDE0XFx1NURFMVxcdTkwNzVcXHU5MTg3XFx1OTgwNlxcdTUxRTZcXHU1MjFEXFx1NjI0MFxcdTY2OTFcXHU2NkQ5XFx1NkUxQVxcdTVFQjZcXHU3REQyXFx1N0Y3MlxcdTY2RjhcXHU4NUFGXFx1ODVGN1xcdThBRjhcXHU1MkE5XFx1NTNEOVxcdTU5NzNcXHU1RThGXFx1NUY5MFxcdTYwNTVcXHU5MkU0XFx1OTY2NFxcdTUwQjdcXHU1MTFGXCJdLFxuICAgICAgW1wiYmVhMVwiLCBcIlxcdTUyRERcXHU1MzIwXFx1NTM0N1xcdTUzRUNcXHU1NEU4XFx1NTU0NlxcdTU1MzFcXHU1NjE3XFx1NTk2OFxcdTU5QkVcXHU1QTNDXFx1NUJCNVxcdTVDMDZcXHU1QzBGXFx1NUMxMVxcdTVDMUFcXHU1RTg0XFx1NUU4QVxcdTVFRTBcXHU1RjcwXFx1NjI3RlxcdTYyODRcXHU2MkRCXFx1NjM4Q1xcdTYzNzdcXHU2NjA3XFx1NjYwQ1xcdTY2MkRcXHU2Njc2XFx1Njc3RVxcdTY4QTJcXHU2QTFGXFx1NkEzNVxcdTZDQkNcXHU2RDg4XFx1NkUwOVxcdTZFNThcXHU3MTNDXFx1NzEyNlxcdTcxNjdcXHU3NUM3XFx1NzcwMVxcdTc4NURcXHU3OTAxXFx1Nzk2NVxcdTc5RjBcXHU3QUUwXFx1N0IxMVxcdTdDQTdcXHU3RDM5XFx1ODA5NlxcdTgzRDZcXHU4NDhCXFx1ODU0OVxcdTg4NURcXHU4OEYzXFx1OEExRlxcdThBM0NcXHU4QTU0XFx1OEE3M1xcdThDNjFcXHU4Q0RFXFx1OTFBNFxcdTkyNjZcXHU5MzdFXFx1OTQxOFxcdTk2OUNcXHU5Nzk4XFx1NEUwQVxcdTRFMDhcXHU0RTFFXFx1NEU1N1xcdTUxOTdcXHU1MjcwXFx1NTdDRVxcdTU4MzRcXHU1OENDXFx1NUIyMlxcdTVFMzhcXHU2MEM1XFx1NjRGRVxcdTY3NjFcXHU2NzU2XFx1NkQ0NFxcdTcyQjZcXHU3NTczXFx1N0E2M1xcdTg0QjhcXHU4QjcyXFx1OTFCOFxcdTkzMjBcXHU1NjMxXFx1NTdGNFxcdTk4RkVcIl0sXG4gICAgICBbXCJiZmExXCIsIFwiXFx1NjJFRFxcdTY5MERcXHU2Qjk2XFx1NzFFRFxcdTdFNTRcXHU4MDc3XFx1ODI3MlxcdTg5RTZcXHU5OERGXFx1ODc1NVxcdThGQjFcXHU1QzNCXFx1NEYzOFxcdTRGRTFcXHU0RkI1XFx1NTUwN1xcdTVBMjBcXHU1QkREXFx1NUJFOVxcdTVGQzNcXHU2MTRFXFx1NjMyRlxcdTY1QjBcXHU2NjRCXFx1NjhFRVxcdTY5OUJcXHU2RDc4XFx1NkRGMVxcdTc1MzNcXHU3NUI5XFx1NzcxRlxcdTc5NUVcXHU3OUU2XFx1N0QzM1xcdTgxRTNcXHU4MkFGXFx1ODVBQVxcdTg5QUFcXHU4QTNBXFx1OEVBQlxcdThGOUJcXHU5MDMyXFx1OTFERFxcdTk3MDdcXHU0RUJBXFx1NEVDMVxcdTUyMDNcXHU1ODc1XFx1NThFQ1xcdTVDMEJcXHU3NTFBXFx1NUMzRFxcdTgxNEVcXHU4QTBBXFx1OEZDNVxcdTk2NjNcXHU5NzZEXFx1N0IyNVxcdThBQ0ZcXHU5ODA4XFx1OTE2MlxcdTU2RjNcXHU1M0E4XFx1OTAxN1xcdTU0MzlcXHU1NzgyXFx1NUUyNVxcdTYzQThcXHU2QzM0XFx1NzA4QVxcdTc3NjFcXHU3QzhCXFx1N0ZFMFxcdTg4NzBcXHU5MDQyXFx1OTE1NFxcdTkzMTBcXHU5MzE4XFx1OTY4RlxcdTc0NUVcXHU5QUM0XFx1NUQwN1xcdTVENjlcXHU2NTcwXFx1NjdBMlxcdThEQThcXHU5NkRCXFx1NjM2RVxcdTY3NDlcXHU2OTE5XFx1ODNDNVxcdTk4MTdcXHU5NkMwXFx1ODhGRVwiXSxcbiAgICAgIFtcImMwYTFcIiwgXCJcXHU2Rjg0XFx1NjQ3QVxcdTVCRjhcXHU0RTE2XFx1NzAyQ1xcdTc1NURcXHU2NjJGXFx1NTFDNFxcdTUyMzZcXHU1MkUyXFx1NTlEM1xcdTVGODFcXHU2MDI3XFx1NjIxMFxcdTY1M0ZcXHU2NTc0XFx1NjYxRlxcdTY2NzRcXHU2OEYyXFx1NjgxNlxcdTZCNjNcXHU2RTA1XFx1NzI3MlxcdTc1MUZcXHU3NkRCXFx1N0NCRVxcdTgwNTZcXHU1OEYwXFx1ODhGRFxcdTg5N0ZcXHU4QUEwXFx1OEE5M1xcdThBQ0JcXHU5MDFEXFx1OTE5MlxcdTk3NTJcXHU5NzU5XFx1NjU4OVxcdTdBMEVcXHU4MTA2XFx1OTZCQlxcdTVFMkRcXHU2MERDXFx1NjIxQVxcdTY1QTVcXHU2NjE0XFx1Njc5MFxcdTc3RjNcXHU3QTREXFx1N0M0RFxcdTdFM0VcXHU4MTBBXFx1OENBQ1xcdThENjRcXHU4REUxXFx1OEU1RlxcdTc4QTlcXHU1MjA3XFx1NjJEOVxcdTYzQTVcXHU2NDQyXFx1NjI5OFxcdThBMkRcXHU3QTgzXFx1N0JDMFxcdThBQUNcXHU5NkVBXFx1N0Q3NlxcdTgyMENcXHU4NzQ5XFx1NEVEOVxcdTUxNDhcXHU1MzQzXFx1NTM2MFxcdTVCQTNcXHU1QzAyXFx1NUMxNlxcdTVERERcXHU2MjI2XFx1NjI0N1xcdTY0QjBcXHU2ODEzXFx1NjgzNFxcdTZDQzlcXHU2RDQ1XFx1NkQxN1xcdTY3RDNcXHU2RjVDXFx1NzE0RVxcdTcxN0RcXHU2NUNCXFx1N0E3RlxcdTdCQURcXHU3RERBXCJdLFxuICAgICAgW1wiYzFhMVwiLCBcIlxcdTdFNEFcXHU3RkE4XFx1ODE3QVxcdTgyMUJcXHU4MjM5XFx1ODVBNlxcdThBNkVcXHU4Q0NFXFx1OERGNVxcdTkwNzhcXHU5MDc3XFx1OTJBRFxcdTkyOTFcXHU5NTgzXFx1OUJBRVxcdTUyNERcXHU1NTg0XFx1NkYzOFxcdTcxMzZcXHU1MTY4XFx1Nzk4NVxcdTdFNTVcXHU4MUIzXFx1N0NDRVxcdTU2NENcXHU1ODUxXFx1NUNBOFxcdTYzQUFcXHU2NkZFXFx1NjZGRFxcdTY5NUFcXHU3MkQ5XFx1NzU4RlxcdTc1OEVcXHU3OTBFXFx1Nzk1NlxcdTc5REZcXHU3Qzk3XFx1N0QyMFxcdTdENDRcXHU4NjA3XFx1OEEzNFxcdTk2M0JcXHU5MDYxXFx1OUYyMFxcdTUwRTdcXHU1Mjc1XFx1NTNDQ1xcdTUzRTJcXHU1MDA5XFx1NTVBQVxcdTU4RUVcXHU1OTRGXFx1NzIzRFxcdTVCOEJcXHU1QzY0XFx1NTMxRFxcdTYwRTNcXHU2MEYzXFx1NjM1Q1xcdTYzODNcXHU2MzNGXFx1NjNCQlxcdTY0Q0RcXHU2NUU5XFx1NjZGOVxcdTVERTNcXHU2OUNEXFx1NjlGRFxcdTZGMTVcXHU3MUU1XFx1NEU4OVxcdTc1RTlcXHU3NkY4XFx1N0E5M1xcdTdDREZcXHU3RENGXFx1N0Q5Q1xcdTgwNjFcXHU4MzQ5XFx1ODM1OFxcdTg0NkNcXHU4NEJDXFx1ODVGQlxcdTg4QzVcXHU4RDcwXFx1OTAwMVxcdTkwNkRcXHU5Mzk3XFx1OTcxQ1xcdTlBMTJcXHU1MENGXFx1NTg5N1xcdTYxOEVcIl0sXG4gICAgICBbXCJjMmExXCIsIFwiXFx1ODFEM1xcdTg1MzVcXHU4RDA4XFx1OTAyMFxcdTRGQzNcXHU1MDc0XFx1NTI0N1xcdTUzNzNcXHU2MDZGXFx1NjM0OVxcdTY3NUZcXHU2RTJDXFx1OERCM1xcdTkwMUZcXHU0RkQ3XFx1NUM1RVxcdThDQ0FcXHU2NUNGXFx1N0Q5QVxcdTUzNTJcXHU4ODk2XFx1NTE3NlxcdTYzQzNcXHU1QjU4XFx1NUI2QlxcdTVDMEFcXHU2NDBEXFx1Njc1MVxcdTkwNUNcXHU0RUQ2XFx1NTkxQVxcdTU5MkFcXHU2QzcwXFx1OEE1MVxcdTU1M0VcXHU1ODE1XFx1NTlBNVxcdTYwRjBcXHU2MjUzXFx1NjdDMVxcdTgyMzVcXHU2OTU1XFx1OTY0MFxcdTk5QzRcXHU5QTI4XFx1NEY1M1xcdTU4MDZcXHU1QkZFXFx1ODAxMFxcdTVDQjFcXHU1RTJGXFx1NUY4NVxcdTYwMjBcXHU2MTRCXFx1NjIzNFxcdTY2RkZcXHU2Q0YwXFx1NkVERVxcdTgwQ0VcXHU4MTdGXFx1ODJENFxcdTg4OEJcXHU4Q0I4XFx1OTAwMFxcdTkwMkVcXHU5NjhBXFx1OUVEQlxcdTlCREJcXHU0RUUzXFx1NTNGMFxcdTU5MjdcXHU3QjJDXFx1OTE4RFxcdTk4NENcXHU5REY5XFx1NkVERFxcdTcwMjdcXHU1MzUzXFx1NTU0NFxcdTVCODVcXHU2MjU4XFx1NjI5RVxcdTYyRDNcXHU2Q0EyXFx1NkZFRlxcdTc0MjJcXHU4QTE3XFx1OTQzOFxcdTZGQzFcXHU4QUZFXFx1ODMzOFxcdTUxRTdcXHU4NkY4XFx1NTNFQVwiXSxcbiAgICAgIFtcImMzYTFcIiwgXCJcXHU1M0U5XFx1NEY0NlxcdTkwNTRcXHU4RkIwXFx1NTk2QVxcdTgxMzFcXHU1REZEXFx1N0FFQVxcdThGQkZcXHU2OERBXFx1OEMzN1xcdTcyRjhcXHU5QzQ4XFx1NkEzRFxcdThBQjBcXHU0RTM5XFx1NTM1OFxcdTU2MDZcXHU1NzY2XFx1NjJDNVxcdTYzQTJcXHU2NUU2XFx1NkI0RVxcdTZERTFcXHU2RTVCXFx1NzBBRFxcdTc3RURcXHU3QUVGXFx1N0JBQVxcdTdEQkJcXHU4MDNEXFx1ODBDNlxcdTg2Q0JcXHU4QTk1XFx1OTM1QlxcdTU2RTNcXHU1OEM3XFx1NUYzRVxcdTY1QURcXHU2Njk2XFx1NkE4MFxcdTZCQjVcXHU3NTM3XFx1OEFDN1xcdTUwMjRcXHU3N0U1XFx1NTczMFxcdTVGMUJcXHU2MDY1XFx1NjY3QVxcdTZDNjBcXHU3NUY0XFx1N0ExQVxcdTdGNkVcXHU4MUY0XFx1ODcxOFxcdTkwNDVcXHU5OUIzXFx1N0JDOVxcdTc1NUNcXHU3QUY5XFx1N0I1MVxcdTg0QzRcXHU5MDEwXFx1NzlFOVxcdTdBOTJcXHU4MzM2XFx1NUFFMVxcdTc3NDBcXHU0RTJEXFx1NEVGMlxcdTVCOTlcXHU1RkUwXFx1NjJCRFxcdTY2M0NcXHU2N0YxXFx1NkNFOFxcdTg2NkJcXHU4ODc3XFx1OEEzQlxcdTkxNEVcXHU5MkYzXFx1OTlEMFxcdTZBMTdcXHU3MDI2XFx1NzMyQVxcdTgyRTdcXHU4NDU3XFx1OENBRlxcdTRFMDFcXHU1MTQ2XFx1NTFDQlxcdTU1OEJcXHU1QkY1XCJdLFxuICAgICAgW1wiYzRhMVwiLCBcIlxcdTVFMTZcXHU1RTMzXFx1NUU4MVxcdTVGMTRcXHU1RjM1XFx1NUY2QlxcdTVGQjRcXHU2MUYyXFx1NjMxMVxcdTY2QTJcXHU2NzFEXFx1NkY2RVxcdTcyNTJcXHU3NTNBXFx1NzczQVxcdTgwNzRcXHU4MTM5XFx1ODE3OFxcdTg3NzZcXHU4QUJGXFx1OEFEQ1xcdThEODVcXHU4REYzXFx1OTI5QVxcdTk1NzdcXHU5ODAyXFx1OUNFNVxcdTUyQzVcXHU2MzU3XFx1NzZGNFxcdTY3MTVcXHU2Qzg4XFx1NzNDRFxcdThDQzNcXHU5M0FFXFx1OTY3M1xcdTZEMjVcXHU1ODlDXFx1NjkwRVxcdTY5Q0NcXHU4RkZEXFx1OTM5QVxcdTc1REJcXHU5MDFBXFx1NTg1QVxcdTY4MDJcXHU2M0I0XFx1NjlGQlxcdTRGNDNcXHU2RjJDXFx1NjdEOFxcdThGQkJcXHU4NTI2XFx1N0RCNFxcdTkzNTRcXHU2OTNGXFx1NkY3MFxcdTU3NkFcXHU1OEY3XFx1NUIyQ1xcdTdEMkNcXHU3MjJBXFx1NTQwQVxcdTkxRTNcXHU5REI0XFx1NEVBRFxcdTRGNEVcXHU1MDVDXFx1NTA3NVxcdTUyNDNcXHU4QzlFXFx1NTQ0OFxcdTU4MjRcXHU1QjlBXFx1NUUxRFxcdTVFOTVcXHU1RUFEXFx1NUVGN1xcdTVGMUZcXHU2MDhDXFx1NjJCNVxcdTYzM0FcXHU2M0QwXFx1NjhBRlxcdTZDNDBcXHU3ODg3XFx1Nzk4RVxcdTdBMEJcXHU3REUwXFx1ODI0N1xcdThBMDJcXHU4QUU2XFx1OEU0NFxcdTkwMTNcIl0sXG4gICAgICBbXCJjNWExXCIsIFwiXFx1OTBCOFxcdTkxMkRcXHU5MUQ4XFx1OUYwRVxcdTZDRTVcXHU2NDU4XFx1NjRFMlxcdTY1NzVcXHU2RUY0XFx1NzY4NFxcdTdCMUJcXHU5MDY5XFx1OTNEMVxcdTZFQkFcXHU1NEYyXFx1NUZCOVxcdTY0QTRcXHU4RjREXFx1OEZFRFxcdTkyNDRcXHU1MTc4XFx1NTg2QlxcdTU5MjlcXHU1QzU1XFx1NUU5N1xcdTZERkJcXHU3RThGXFx1NzUxQ1xcdThDQkNcXHU4RUUyXFx1OTg1QlxcdTcwQjlcXHU0RjFEXFx1NkJCRlxcdTZGQjFcXHU3NTMwXFx1OTZGQlxcdTUxNEVcXHU1NDEwXFx1NTgzNVxcdTU4NTdcXHU1OUFDXFx1NUM2MFxcdTVGOTJcXHU2NTk3XFx1Njc1Q1xcdTZFMjFcXHU3NjdCXFx1ODNERlxcdThDRURcXHU5MDE0XFx1OTBGRFxcdTkzNERcXHU3ODI1XFx1NzgzQVxcdTUyQUFcXHU1RUE2XFx1NTcxRlxcdTU5NzRcXHU2MDEyXFx1NTAxMlxcdTUxNUFcXHU1MUFDXFx1NTFDRFxcdTUyMDBcXHU1NTEwXFx1NTg1NFxcdTU4NThcXHU1OTU3XFx1NUI5NVxcdTVDRjZcXHU1RDhCXFx1NjBCQ1xcdTYyOTVcXHU2NDJEXFx1Njc3MVxcdTY4NDNcXHU2OEJDXFx1NjhERlxcdTc2RDdcXHU2REQ4XFx1NkU2RlxcdTZEOUJcXHU3MDZGXFx1NzFDOFxcdTVGNTNcXHU3NUQ4XFx1Nzk3N1xcdTdCNDlcXHU3QjU0XFx1N0I1MlxcdTdDRDZcXHU3RDcxXFx1NTIzMFwiXSxcbiAgICAgIFtcImM2YTFcIiwgXCJcXHU4NDYzXFx1ODU2OVxcdTg1RTRcXHU4QTBFXFx1OEIwNFxcdThDNDZcXHU4RTBGXFx1OTAwM1xcdTkwMEZcXHU5NDE5XFx1OTY3NlxcdTk4MkRcXHU5QTMwXFx1OTVEOFxcdTUwQ0RcXHU1MkQ1XFx1NTQwQ1xcdTU4MDJcXHU1QzBFXFx1NjFBN1xcdTY0OUVcXHU2RDFFXFx1NzdCM1xcdTdBRTVcXHU4MEY0XFx1ODQwNFxcdTkwNTNcXHU5Mjg1XFx1NUNFMFxcdTlEMDdcXHU1MzNGXFx1NUY5N1xcdTVGQjNcXHU2RDlDXFx1NzI3OVxcdTc3NjNcXHU3OUJGXFx1N0JFNFxcdTZCRDJcXHU3MkVDXFx1OEFBRFxcdTY4MDNcXHU2QTYxXFx1NTFGOFxcdTdBODFcXHU2OTM0XFx1NUM0QVxcdTlDRjZcXHU4MkVCXFx1NUJDNVxcdTkxNDlcXHU3MDFFXFx1NTY3OFxcdTVDNkZcXHU2MEM3XFx1NjU2NlxcdTZDOENcXHU4QzVBXFx1OTA0MVxcdTk4MTNcXHU1NDUxXFx1NjZDN1xcdTkyMERcXHU1OTQ4XFx1OTBBM1xcdTUxODVcXHU0RTREXFx1NTFFQVxcdTg1OTlcXHU4QjBFXFx1NzA1OFxcdTYzN0FcXHU5MzRCXFx1Njk2MlxcdTk5QjRcXHU3RTA0XFx1NzU3N1xcdTUzNTdcXHU2OTYwXFx1OEVERlxcdTk2RTNcXHU2QzVEXFx1NEU4Q1xcdTVDM0NcXHU1RjEwXFx1OEZFOVxcdTUzMDJcXHU4Q0QxXFx1ODA4OVxcdTg2NzlcXHU1RUZGXFx1NjVFNVxcdTRFNzNcXHU1MTY1XCJdLFxuICAgICAgW1wiYzdhMVwiLCBcIlxcdTU5ODJcXHU1QzNGXFx1OTdFRVxcdTRFRkJcXHU1OThBXFx1NUZDRFxcdThBOERcXHU2RkUxXFx1NzlCMFxcdTc5NjJcXHU1QkU3XFx1ODQ3MVxcdTczMkJcXHU3MUIxXFx1NUU3NFxcdTVGRjVcXHU2MzdCXFx1NjQ5QVxcdTcxQzNcXHU3Qzk4XFx1NEU0M1xcdTVFRkNcXHU0RTRCXFx1NTdEQ1xcdTU2QTJcXHU2MEE5XFx1NkZDM1xcdTdEMERcXHU4MEZEXFx1ODEzM1xcdTgxQkZcXHU4RkIyXFx1ODk5N1xcdTg2QTRcXHU1REY0XFx1NjI4QVxcdTY0QURcXHU4OTg3XFx1Njc3N1xcdTZDRTJcXHU2RDNFXFx1NzQzNlxcdTc4MzRcXHU1QTQ2XFx1N0Y3NVxcdTgyQURcXHU5OUFDXFx1NEZGM1xcdTVFQzNcXHU2MkREXFx1NjM5MlxcdTY1NTdcXHU2NzZGXFx1NzZDM1xcdTcyNENcXHU4MENDXFx1ODBCQVxcdThGMjlcXHU5MTREXFx1NTAwRFxcdTU3RjlcXHU1QTkyXFx1Njg4NVxcdTY5NzNcXHU3MTY0XFx1NzJGRFxcdThDQjdcXHU1OEYyXFx1OENFMFxcdTk2NkFcXHU5MDE5XFx1ODc3RlxcdTc5RTRcXHU3N0U3XFx1ODQyOVxcdTRGMkZcXHU1MjY1XFx1NTM1QVxcdTYyQ0RcXHU2N0NGXFx1NkNDQVxcdTc2N0RcXHU3Qjk0XFx1N0M5NVxcdTgyMzZcXHU4NTg0XFx1OEZFQlxcdTY2RERcXHU2RjIwXFx1NzIwNlxcdTdFMUJcXHU4M0FCXFx1OTlDMVxcdTlFQTZcIl0sXG4gICAgICBbXCJjOGExXCIsIFwiXFx1NTFGRFxcdTdCQjFcXHU3ODcyXFx1N0JCOFxcdTgwODdcXHU3QjQ4XFx1NkFFOFxcdTVFNjFcXHU4MDhDXFx1NzU1MVxcdTc1NjBcXHU1MTZCXFx1OTI2MlxcdTZFOENcXHU3NjdBXFx1OTE5N1xcdTlBRUFcXHU0RjEwXFx1N0Y3MFxcdTYyOUNcXHU3QjRGXFx1OTVBNVxcdTlDRTlcXHU1NjdBXFx1NTg1OVxcdTg2RTRcXHU5NkJDXFx1NEYzNFxcdTUyMjRcXHU1MzRBXFx1NTNDRFxcdTUzREJcXHU1RTA2XFx1NjQyQ1xcdTY1OTFcXHU2NzdGXFx1NkMzRVxcdTZDNEVcXHU3MjQ4XFx1NzJBRlxcdTczRURcXHU3NTU0XFx1N0U0MVxcdTgyMkNcXHU4NUU5XFx1OENBOVxcdTdCQzRcXHU5MUM2XFx1NzE2OVxcdTk4MTJcXHU5OEVGXFx1NjMzRFxcdTY2NjlcXHU3NTZBXFx1NzZFNFxcdTc4RDBcXHU4NTQzXFx1ODZFRVxcdTUzMkFcXHU1MzUxXFx1NTQyNlxcdTU5ODNcXHU1RTg3XFx1NUY3Q1xcdTYwQjJcXHU2MjQ5XFx1NjI3OVxcdTYyQUJcXHU2NTkwXFx1NkJENFxcdTZDQ0NcXHU3NUIyXFx1NzZBRVxcdTc4OTFcXHU3OUQ4XFx1N0RDQlxcdTdGNzdcXHU4MEE1XFx1ODhBQlxcdThBQjlcXHU4Q0JCXFx1OTA3RlxcdTk3NUVcXHU5OERCXFx1NkEwQlxcdTdDMzhcXHU1MDk5XFx1NUMzRVxcdTVGQUVcXHU2Nzg3XFx1NkJEOFxcdTc0MzVcXHU3NzA5XFx1N0Y4RVwiXSxcbiAgICAgIFtcImM5YTFcIiwgXCJcXHU5RjNCXFx1NjdDQVxcdTdBMTdcXHU1MzM5XFx1NzU4QlxcdTlBRURcXHU1RjY2XFx1ODE5RFxcdTgzRjFcXHU4MDk4XFx1NUYzQ1xcdTVGQzVcXHU3NTYyXFx1N0I0NlxcdTkwM0NcXHU2ODY3XFx1NTlFQlxcdTVBOUJcXHU3RDEwXFx1NzY3RVxcdThCMkNcXHU0RkY1XFx1NUY2QVxcdTZBMTlcXHU2QzM3XFx1NkYwMlxcdTc0RTJcXHU3OTY4XFx1ODg2OFxcdThBNTVcXHU4Qzc5XFx1NUVERlxcdTYzQ0ZcXHU3NUM1XFx1NzlEMlxcdTgyRDdcXHU5MzI4XFx1OTJGMlxcdTg0OUNcXHU4NkVEXFx1OUMyRFxcdTU0QzFcXHU1RjZDXFx1NjU4Q1xcdTZENUNcXHU3MDE1XFx1OENBN1xcdThDRDNcXHU5ODNCXFx1NjU0RlxcdTc0RjZcXHU0RTBEXFx1NEVEOFxcdTU3RTBcXHU1OTJCXFx1NUE2NlxcdTVCQ0NcXHU1MUE4XFx1NUUwM1xcdTVFOUNcXHU2MDE2XFx1NjI3NlxcdTY1NzdcXHU2NUE3XFx1NjY2RVxcdTZENkVcXHU3MjM2XFx1N0IyNlxcdTgxNTBcXHU4MTlBXFx1ODI5OVxcdThCNUNcXHU4Q0EwXFx1OENFNlxcdThENzRcXHU5NjFDXFx1OTY0NFxcdTRGQUVcXHU2NEFCXFx1NkI2NlxcdTgyMUVcXHU4NDYxXFx1ODU2QVxcdTkwRThcXHU1QzAxXFx1Njk1M1xcdTk4QThcXHU4NDdBXFx1ODU1N1xcdTRGMEZcXHU1MjZGXFx1NUZBOVxcdTVFNDVcXHU2NzBEXCJdLFxuICAgICAgW1wiY2FhMVwiLCBcIlxcdTc5OEZcXHU4MTc5XFx1ODkwN1xcdTg5ODZcXHU2REY1XFx1NUYxN1xcdTYyNTVcXHU2Q0I4XFx1NEVDRlxcdTcyNjlcXHU5QjkyXFx1NTIwNlxcdTU0M0JcXHU1Njc0XFx1NThCM1xcdTYxQTRcXHU2MjZFXFx1NzExQVxcdTU5NkVcXHU3Qzg5XFx1N0NERVxcdTdEMUJcXHU5NkYwXFx1NjU4N1xcdTgwNUVcXHU0RTE5XFx1NEY3NVxcdTUxNzVcXHU1ODQwXFx1NUU2M1xcdTVFNzNcXHU1RjBBXFx1NjdDNFxcdTRFMjZcXHU4NTNEXFx1OTU4OVxcdTk2NUJcXHU3QzczXFx1OTgwMVxcdTUwRkJcXHU1OEMxXFx1NzY1NlxcdTc4QTdcXHU1MjI1XFx1NzdBNVxcdTg1MTFcXHU3Qjg2XFx1NTA0RlxcdTU5MDlcXHU3MjQ3XFx1N0JDN1xcdTdERThcXHU4RkJBXFx1OEZENFxcdTkwNERcXHU0RkJGXFx1NTJDOVxcdTVBMjlcXHU1RjAxXFx1OTdBRFxcdTRGRERcXHU4MjE3XFx1OTJFQVxcdTU3MDNcXHU2MzU1XFx1NkI2OVxcdTc1MkJcXHU4OERDXFx1OEYxNFxcdTdBNDJcXHU1MkRGXFx1NTg5M1xcdTYxNTVcXHU2MjBBXFx1NjZBRVxcdTZCQ0RcXHU3QzNGXFx1ODNFOVxcdTUwMjNcXHU0RkY4XFx1NTMwNVxcdTU0NDZcXHU1ODMxXFx1NTk0OVxcdTVCOURcXHU1Q0YwXFx1NUNFRlxcdTVEMjlcXHU1RTk2XFx1NjJCMVxcdTYzNjdcXHU2NTNFXFx1NjVCOVxcdTY3MEJcIl0sXG4gICAgICBbXCJjYmExXCIsIFwiXFx1NkNENVxcdTZDRTFcXHU3MEY5XFx1NzgzMlxcdTdFMkJcXHU4MERFXFx1ODJCM1xcdTg0MENcXHU4NEVDXFx1ODcwMlxcdTg5MTJcXHU4QTJBXFx1OEM0QVxcdTkwQTZcXHU5MkQyXFx1OThGRFxcdTlDRjNcXHU5RDZDXFx1NEU0RlxcdTRFQTFcXHU1MDhEXFx1NTI1NlxcdTU3NEFcXHU1OUE4XFx1NUUzRFxcdTVGRDhcXHU1RkQ5XFx1NjIzRlxcdTY2QjRcXHU2NzFCXFx1NjdEMFxcdTY4RDJcXHU1MTkyXFx1N0QyMVxcdTgwQUFcXHU4MUE4XFx1OEIwMFxcdThDOENcXHU4Q0JGXFx1OTI3RVxcdTk2MzJcXHU1NDIwXFx1OTgyQ1xcdTUzMTdcXHU1MEQ1XFx1NTM1Q1xcdTU4QThcXHU2NEIyXFx1NjczNFxcdTcyNjdcXHU3NzY2XFx1N0E0NlxcdTkxRTZcXHU1MkMzXFx1NkNBMVxcdTZCODZcXHU1ODAwXFx1NUU0Q1xcdTU5NTRcXHU2NzJDXFx1N0ZGQlxcdTUxRTFcXHU3NkM2XFx1NjQ2OVxcdTc4RThcXHU5QjU0XFx1OUVCQlxcdTU3Q0JcXHU1OUI5XFx1NjYyN1xcdTY3OUFcXHU2QkNFXFx1NTRFOVxcdTY5RDlcXHU1RTU1XFx1ODE5Q1xcdTY3OTVcXHU5QkFBXFx1NjdGRVxcdTlDNTJcXHU2ODVEXFx1NEVBNlxcdTRGRTNcXHU1M0M4XFx1NjJCOVxcdTY3MkJcXHU2Q0FCXFx1OEZDNFxcdTRGQURcXHU3RTZEXFx1OUVCRlxcdTRFMDdcXHU2MTYyXFx1NkU4MFwiXSxcbiAgICAgIFtcImNjYTFcIiwgXCJcXHU2RjJCXFx1ODUxM1xcdTU0NzNcXHU2NzJBXFx1OUI0NVxcdTVERjNcXHU3Qjk1XFx1NUNBQ1xcdTVCQzZcXHU4NzFDXFx1NkU0QVxcdTg0RDFcXHU3QTE0XFx1ODEwOFxcdTU5OTlcXHU3QzhEXFx1NkMxMVxcdTc3MjBcXHU1MkQ5XFx1NTkyMlxcdTcxMjFcXHU3MjVGXFx1NzdEQlxcdTk3MjdcXHU5RDYxXFx1NjkwQlxcdTVBN0ZcXHU1QTE4XFx1NTFBNVxcdTU0MERcXHU1NDdEXFx1NjYwRVxcdTc2REZcXHU4RkY3XFx1OTI5OFxcdTlDRjRcXHU1OUVBXFx1NzI1RFxcdTZFQzVcXHU1MTREXFx1NjhDOVxcdTdEQkZcXHU3REVDXFx1OTc2MlxcdTlFQkFcXHU2NDc4XFx1NkEyMVxcdTgzMDJcXHU1OTg0XFx1NUI1RlxcdTZCREJcXHU3MzFCXFx1NzZGMlxcdTdEQjJcXHU4MDE3XFx1ODQ5OVxcdTUxMzJcXHU2NzI4XFx1OUVEOVxcdTc2RUVcXHU2NzYyXFx1NTJGRlxcdTk5MDVcXHU1QzI0XFx1NjIzQlxcdTdDN0VcXHU4Q0IwXFx1NTU0RlxcdTYwQjZcXHU3RDBCXFx1OTU4MFxcdTUzMDFcXHU0RTVGXFx1NTFCNlxcdTU5MUNcXHU3MjNBXFx1ODAzNlxcdTkxQ0VcXHU1RjI1XFx1NzdFMlxcdTUzODRcXHU1Rjc5XFx1N0QwNFxcdTg1QUNcXHU4QTMzXFx1OEU4RFxcdTk3NTZcXHU2N0YzXFx1ODVBRVxcdTk0NTNcXHU2MTA5XFx1NjEwOFxcdTZDQjlcXHU3NjUyXCJdLFxuICAgICAgW1wiY2RhMVwiLCBcIlxcdThBRURcXHU4RjM4XFx1NTUyRlxcdTRGNTFcXHU1MTJBXFx1NTJDN1xcdTUzQ0JcXHU1QkE1XFx1NUU3RFxcdTYwQTBcXHU2MTgyXFx1NjNENlxcdTY3MDlcXHU2N0RBXFx1NkU2N1xcdTZEOENcXHU3MzM2XFx1NzMzN1xcdTc1MzFcXHU3OTUwXFx1ODhENVxcdThBOThcXHU5MDRBXFx1OTA5MVxcdTkwRjVcXHU5NkM0XFx1ODc4RFxcdTU5MTVcXHU0RTg4XFx1NEY1OVxcdTRFMEVcXHU4QTg5XFx1OEYzRlxcdTk4MTBcXHU1MEFEXFx1NUU3Q1xcdTU5OTZcXHU1QkI5XFx1NUVCOFxcdTYzREFcXHU2M0ZBXFx1NjRDMVxcdTY2RENcXHU2OTRBXFx1NjlEOFxcdTZEMEJcXHU2RUI2XFx1NzE5NFxcdTc1MjhcXHU3QUFGXFx1N0Y4QVxcdTgwMDBcXHU4NDQ5XFx1ODRDOVxcdTg5ODFcXHU4QjIxXFx1OEUwQVxcdTkwNjVcXHU5NjdEXFx1OTkwQVxcdTYxN0VcXHU2MjkxXFx1NkIzMlxcdTZDODNcXHU2RDc0XFx1N0ZDQ1xcdTdGRkNcXHU2REMwXFx1N0Y4NVxcdTg3QkFcXHU4OEY4XFx1Njc2NVxcdTgzQjFcXHU5ODNDXFx1OTZGN1xcdTZEMUJcXHU3RDYxXFx1ODQzRFxcdTkxNkFcXHU0RTcxXFx1NTM3NVxcdTVENTBcXHU2QjA0XFx1NkZFQlxcdTg1Q0RcXHU4NjJEXFx1ODlBN1xcdTUyMjlcXHU1NDBGXFx1NUM2NVxcdTY3NEVcXHU2OEE4XFx1NzQwNlxcdTc0ODNcIl0sXG4gICAgICBbXCJjZWExXCIsIFwiXFx1NzVFMlxcdTg4Q0ZcXHU4OEUxXFx1OTFDQ1xcdTk2RTJcXHU5Njc4XFx1NUY4QlxcdTczODdcXHU3QUNCXFx1ODQ0RVxcdTYzQTBcXHU3NTY1XFx1NTI4OVxcdTZENDFcXHU2RTlDXFx1NzQwOVxcdTc1NTlcXHU3ODZCXFx1N0M5MlxcdTk2ODZcXHU3QURDXFx1OUY4RFxcdTRGQjZcXHU2MTZFXFx1NjVDNVxcdTg2NUNcXHU0RTg2XFx1NEVBRVxcdTUwREFcXHU0RTIxXFx1NTFDQ1xcdTVCRUVcXHU2NTk5XFx1Njg4MVxcdTZEQkNcXHU3MzFGXFx1NzY0MlxcdTc3QURcXHU3QTFDXFx1N0NFN1xcdTgyNkZcXHU4QUQyXFx1OTA3Q1xcdTkxQ0ZcXHU5Njc1XFx1OTgxOFxcdTUyOUJcXHU3REQxXFx1NTAyQlxcdTUzOThcXHU2Nzk3XFx1NkRDQlxcdTcxRDBcXHU3NDMzXFx1ODFFOFxcdThGMkFcXHU5NkEzXFx1OUM1N1xcdTlFOUZcXHU3NDYwXFx1NTg0MVxcdTZEOTlcXHU3RDJGXFx1OTg1RVxcdTRFRTRcXHU0RjM2XFx1NEY4QlxcdTUxQjdcXHU1MkIxXFx1NURCQVxcdTYwMUNcXHU3M0IyXFx1NzkzQ1xcdTgyRDNcXHU5MjM0XFx1OTZCN1xcdTk2RjZcXHU5NzBBXFx1OUU5N1xcdTlGNjJcXHU2NkE2XFx1NkI3NFxcdTUyMTdcXHU1MkEzXFx1NzBDOFxcdTg4QzJcXHU1RUM5XFx1NjA0QlxcdTYxOTBcXHU2RjIzXFx1NzE0OVxcdTdDM0VcXHU3REY0XFx1ODA2RlwiXSxcbiAgICAgIFtcImNmYTFcIiwgXCJcXHU4NEVFXFx1OTAyM1xcdTkzMkNcXHU1NDQyXFx1OUI2RlxcdTZBRDNcXHU3MDg5XFx1OENDMlxcdThERUZcXHU5NzMyXFx1NTJCNFxcdTVBNDFcXHU1RUNBXFx1NUYwNFxcdTY3MTdcXHU2OTdDXFx1Njk5NFxcdTZENkFcXHU2RjBGXFx1NzI2MlxcdTcyRkNcXHU3QkVEXFx1ODAwMVxcdTgwN0VcXHU4NzRCXFx1OTBDRVxcdTUxNkRcXHU5RTkzXFx1Nzk4NFxcdTgwOEJcXHU5MzMyXFx1OEFENlxcdTUwMkRcXHU1NDhDXFx1OEE3MVxcdTZCNkFcXHU4Q0M0XFx1ODEwN1xcdTYwRDFcXHU2N0EwXFx1OURGMlxcdTRFOTlcXHU0RTk4XFx1OUMxMFxcdThBNkJcXHU4NUMxXFx1ODU2OFxcdTY5MDBcXHU2RTdFXFx1Nzg5N1xcdTgxNTVcIl0sXG4gICAgICBbXCJkMGExXCIsIFwiXFx1NUYwQ1xcdTRFMTBcXHU0RTE1XFx1NEUyQVxcdTRFMzFcXHU0RTM2XFx1NEUzQ1xcdTRFM0ZcXHU0RTQyXFx1NEU1NlxcdTRFNThcXHU0RTgyXFx1NEU4NVxcdThDNkJcXHU0RThBXFx1ODIxMlxcdTVGMERcXHU0RThFXFx1NEU5RVxcdTRFOUZcXHU0RUEwXFx1NEVBMlxcdTRFQjBcXHU0RUIzXFx1NEVCNlxcdTRFQ0VcXHU0RUNEXFx1NEVDNFxcdTRFQzZcXHU0RUMyXFx1NEVEN1xcdTRFREVcXHU0RUVEXFx1NEVERlxcdTRFRjdcXHU0RjA5XFx1NEY1QVxcdTRGMzBcXHU0RjVCXFx1NEY1RFxcdTRGNTdcXHU0RjQ3XFx1NEY3NlxcdTRGODhcXHU0RjhGXFx1NEY5OFxcdTRGN0JcXHU0RjY5XFx1NEY3MFxcdTRGOTFcXHU0RjZGXFx1NEY4NlxcdTRGOTZcXHU1MTE4XFx1NEZENFxcdTRGREZcXHU0RkNFXFx1NEZEOFxcdTRGREJcXHU0RkQxXFx1NEZEQVxcdTRGRDBcXHU0RkU0XFx1NEZFNVxcdTUwMUFcXHU1MDI4XFx1NTAxNFxcdTUwMkFcXHU1MDI1XFx1NTAwNVxcdTRGMUNcXHU0RkY2XFx1NTAyMVxcdTUwMjlcXHU1MDJDXFx1NEZGRVxcdTRGRUZcXHU1MDExXFx1NTAwNlxcdTUwNDNcXHU1MDQ3XFx1NjcwM1xcdTUwNTVcXHU1MDUwXFx1NTA0OFxcdTUwNUFcXHU1MDU2XFx1NTA2Q1xcdTUwNzhcXHU1MDgwXFx1NTA5QVxcdTUwODVcXHU1MEI0XFx1NTBCMlwiXSxcbiAgICAgIFtcImQxYTFcIiwgXCJcXHU1MEM5XFx1NTBDQVxcdTUwQjNcXHU1MEMyXFx1NTBENlxcdTUwREVcXHU1MEU1XFx1NTBFRFxcdTUwRTNcXHU1MEVFXFx1NTBGOVxcdTUwRjVcXHU1MTA5XFx1NTEwMVxcdTUxMDJcXHU1MTE2XFx1NTExNVxcdTUxMTRcXHU1MTFBXFx1NTEyMVxcdTUxM0FcXHU1MTM3XFx1NTEzQ1xcdTUxM0JcXHU1MTNGXFx1NTE0MFxcdTUxNTJcXHU1MTRDXFx1NTE1NFxcdTUxNjJcXHU3QUY4XFx1NTE2OVxcdTUxNkFcXHU1MTZFXFx1NTE4MFxcdTUxODJcXHU1NkQ4XFx1NTE4Q1xcdTUxODlcXHU1MThGXFx1NTE5MVxcdTUxOTNcXHU1MTk1XFx1NTE5NlxcdTUxQTRcXHU1MUE2XFx1NTFBMlxcdTUxQTlcXHU1MUFBXFx1NTFBQlxcdTUxQjNcXHU1MUIxXFx1NTFCMlxcdTUxQjBcXHU1MUI1XFx1NTFCRFxcdTUxQzVcXHU1MUM5XFx1NTFEQlxcdTUxRTBcXHU4NjU1XFx1NTFFOVxcdTUxRURcXHU1MUYwXFx1NTFGNVxcdTUxRkVcXHU1MjA0XFx1NTIwQlxcdTUyMTRcXHU1MjBFXFx1NTIyN1xcdTUyMkFcXHU1MjJFXFx1NTIzM1xcdTUyMzlcXHU1MjRGXFx1NTI0NFxcdTUyNEJcXHU1MjRDXFx1NTI1RVxcdTUyNTRcXHU1MjZBXFx1NTI3NFxcdTUyNjlcXHU1MjczXFx1NTI3RlxcdTUyN0RcXHU1MjhEXFx1NTI5NFxcdTUyOTJcXHU1MjcxXFx1NTI4OFxcdTUyOTFcXHU4RkE4XCJdLFxuICAgICAgW1wiZDJhMVwiLCBcIlxcdThGQTdcXHU1MkFDXFx1NTJBRFxcdTUyQkNcXHU1MkI1XFx1NTJDMVxcdTUyQ0RcXHU1MkQ3XFx1NTJERVxcdTUyRTNcXHU1MkU2XFx1OThFRFxcdTUyRTBcXHU1MkYzXFx1NTJGNVxcdTUyRjhcXHU1MkY5XFx1NTMwNlxcdTUzMDhcXHU3NTM4XFx1NTMwRFxcdTUzMTBcXHU1MzBGXFx1NTMxNVxcdTUzMUFcXHU1MzIzXFx1NTMyRlxcdTUzMzFcXHU1MzMzXFx1NTMzOFxcdTUzNDBcXHU1MzQ2XFx1NTM0NVxcdTRFMTdcXHU1MzQ5XFx1NTM0RFxcdTUxRDZcXHU1MzVFXFx1NTM2OVxcdTUzNkVcXHU1OTE4XFx1NTM3QlxcdTUzNzdcXHU1MzgyXFx1NTM5NlxcdTUzQTBcXHU1M0E2XFx1NTNBNVxcdTUzQUVcXHU1M0IwXFx1NTNCNlxcdTUzQzNcXHU3QzEyXFx1OTZEOVxcdTUzREZcXHU2NkZDXFx1NzFFRVxcdTUzRUVcXHU1M0U4XFx1NTNFRFxcdTUzRkFcXHU1NDAxXFx1NTQzRFxcdTU0NDBcXHU1NDJDXFx1NTQyRFxcdTU0M0NcXHU1NDJFXFx1NTQzNlxcdTU0MjlcXHU1NDFEXFx1NTQ0RVxcdTU0OEZcXHU1NDc1XFx1NTQ4RVxcdTU0NUZcXHU1NDcxXFx1NTQ3N1xcdTU0NzBcXHU1NDkyXFx1NTQ3QlxcdTU0ODBcXHU1NDc2XFx1NTQ4NFxcdTU0OTBcXHU1NDg2XFx1NTRDN1xcdTU0QTJcXHU1NEI4XFx1NTRBNVxcdTU0QUNcXHU1NEM0XFx1NTRDOFxcdTU0QThcIl0sXG4gICAgICBbXCJkM2ExXCIsIFwiXFx1NTRBQlxcdTU0QzJcXHU1NEE0XFx1NTRCRVxcdTU0QkNcXHU1NEQ4XFx1NTRFNVxcdTU0RTZcXHU1NTBGXFx1NTUxNFxcdTU0RkRcXHU1NEVFXFx1NTRFRFxcdTU0RkFcXHU1NEUyXFx1NTUzOVxcdTU1NDBcXHU1NTYzXFx1NTU0Q1xcdTU1MkVcXHU1NTVDXFx1NTU0NVxcdTU1NTZcXHU1NTU3XFx1NTUzOFxcdTU1MzNcXHU1NTVEXFx1NTU5OVxcdTU1ODBcXHU1NEFGXFx1NTU4QVxcdTU1OUZcXHU1NTdCXFx1NTU3RVxcdTU1OThcXHU1NTlFXFx1NTVBRVxcdTU1N0NcXHU1NTgzXFx1NTVBOVxcdTU1ODdcXHU1NUE4XFx1NTVEQVxcdTU1QzVcXHU1NURGXFx1NTVDNFxcdTU1RENcXHU1NUU0XFx1NTVENFxcdTU2MTRcXHU1NUY3XFx1NTYxNlxcdTU1RkVcXHU1NUZEXFx1NTYxQlxcdTU1RjlcXHU1NjRFXFx1NTY1MFxcdTcxREZcXHU1NjM0XFx1NTYzNlxcdTU2MzJcXHU1NjM4XFx1NTY2QlxcdTU2NjRcXHU1NjJGXFx1NTY2Q1xcdTU2NkFcXHU1Njg2XFx1NTY4MFxcdTU2OEFcXHU1NkEwXFx1NTY5NFxcdTU2OEZcXHU1NkE1XFx1NTZBRVxcdTU2QjZcXHU1NkI0XFx1NTZDMlxcdTU2QkNcXHU1NkMxXFx1NTZDM1xcdTU2QzBcXHU1NkM4XFx1NTZDRVxcdTU2RDFcXHU1NkQzXFx1NTZEN1xcdTU2RUVcXHU1NkY5XFx1NTcwMFxcdTU2RkZcXHU1NzA0XFx1NTcwOVwiXSxcbiAgICAgIFtcImQ0YTFcIiwgXCJcXHU1NzA4XFx1NTcwQlxcdTU3MERcXHU1NzEzXFx1NTcxOFxcdTU3MTZcXHU1NUM3XFx1NTcxQ1xcdTU3MjZcXHU1NzM3XFx1NTczOFxcdTU3NEVcXHU1NzNCXFx1NTc0MFxcdTU3NEZcXHU1NzY5XFx1NTdDMFxcdTU3ODhcXHU1NzYxXFx1NTc3RlxcdTU3ODlcXHU1NzkzXFx1NTdBMFxcdTU3QjNcXHU1N0E0XFx1NTdBQVxcdTU3QjBcXHU1N0MzXFx1NTdDNlxcdTU3RDRcXHU1N0QyXFx1NTdEM1xcdTU4MEFcXHU1N0Q2XFx1NTdFM1xcdTU4MEJcXHU1ODE5XFx1NTgxRFxcdTU4NzJcXHU1ODIxXFx1NTg2MlxcdTU4NEJcXHU1ODcwXFx1NkJDMFxcdTU4NTJcXHU1ODNEXFx1NTg3OVxcdTU4ODVcXHU1OEI5XFx1NTg5RlxcdTU4QUJcXHU1OEJBXFx1NThERVxcdTU4QkJcXHU1OEI4XFx1NThBRVxcdTU4QzVcXHU1OEQzXFx1NThEMVxcdTU4RDdcXHU1OEQ5XFx1NThEOFxcdTU4RTVcXHU1OERDXFx1NThFNFxcdTU4REZcXHU1OEVGXFx1NThGQVxcdTU4RjlcXHU1OEZCXFx1NThGQ1xcdTU4RkRcXHU1OTAyXFx1NTkwQVxcdTU5MTBcXHU1OTFCXFx1NjhBNlxcdTU5MjVcXHU1OTJDXFx1NTkyRFxcdTU5MzJcXHU1OTM4XFx1NTkzRVxcdTdBRDJcXHU1OTU1XFx1NTk1MFxcdTU5NEVcXHU1OTVBXFx1NTk1OFxcdTU5NjJcXHU1OTYwXFx1NTk2N1xcdTU5NkNcXHU1OTY5XCJdLFxuICAgICAgW1wiZDVhMVwiLCBcIlxcdTU5NzhcXHU1OTgxXFx1NTk5RFxcdTRGNUVcXHU0RkFCXFx1NTlBM1xcdTU5QjJcXHU1OUM2XFx1NTlFOFxcdTU5RENcXHU1OThEXFx1NTlEOVxcdTU5REFcXHU1QTI1XFx1NUExRlxcdTVBMTFcXHU1QTFDXFx1NUEwOVxcdTVBMUFcXHU1QTQwXFx1NUE2Q1xcdTVBNDlcXHU1QTM1XFx1NUEzNlxcdTVBNjJcXHU1QTZBXFx1NUE5QVxcdTVBQkNcXHU1QUJFXFx1NUFDQlxcdTVBQzJcXHU1QUJEXFx1NUFFM1xcdTVBRDdcXHU1QUU2XFx1NUFFOVxcdTVBRDZcXHU1QUZBXFx1NUFGQlxcdTVCMENcXHU1QjBCXFx1NUIxNlxcdTVCMzJcXHU1QUQwXFx1NUIyQVxcdTVCMzZcXHU1QjNFXFx1NUI0M1xcdTVCNDVcXHU1QjQwXFx1NUI1MVxcdTVCNTVcXHU1QjVBXFx1NUI1QlxcdTVCNjVcXHU1QjY5XFx1NUI3MFxcdTVCNzNcXHU1Qjc1XFx1NUI3OFxcdTY1ODhcXHU1QjdBXFx1NUI4MFxcdTVCODNcXHU1QkE2XFx1NUJCOFxcdTVCQzNcXHU1QkM3XFx1NUJDOVxcdTVCRDRcXHU1QkQwXFx1NUJFNFxcdTVCRTZcXHU1QkUyXFx1NUJERVxcdTVCRTVcXHU1QkVCXFx1NUJGMFxcdTVCRjZcXHU1QkYzXFx1NUMwNVxcdTVDMDdcXHU1QzA4XFx1NUMwRFxcdTVDMTNcXHU1QzIwXFx1NUMyMlxcdTVDMjhcXHU1QzM4XFx1NUMzOVxcdTVDNDFcXHU1QzQ2XFx1NUM0RVxcdTVDNTNcIl0sXG4gICAgICBbXCJkNmExXCIsIFwiXFx1NUM1MFxcdTVDNEZcXHU1QjcxXFx1NUM2Q1xcdTVDNkVcXHU0RTYyXFx1NUM3NlxcdTVDNzlcXHU1QzhDXFx1NUM5MVxcdTVDOTRcXHU1OTlCXFx1NUNBQlxcdTVDQkJcXHU1Q0I2XFx1NUNCQ1xcdTVDQjdcXHU1Q0M1XFx1NUNCRVxcdTVDQzdcXHU1Q0Q5XFx1NUNFOVxcdTVDRkRcXHU1Q0ZBXFx1NUNFRFxcdTVEOENcXHU1Q0VBXFx1NUQwQlxcdTVEMTVcXHU1RDE3XFx1NUQ1Q1xcdTVEMUZcXHU1RDFCXFx1NUQxMVxcdTVEMTRcXHU1RDIyXFx1NUQxQVxcdTVEMTlcXHU1RDE4XFx1NUQ0Q1xcdTVENTJcXHU1RDRFXFx1NUQ0QlxcdTVENkNcXHU1RDczXFx1NUQ3NlxcdTVEODdcXHU1RDg0XFx1NUQ4MlxcdTVEQTJcXHU1RDlEXFx1NURBQ1xcdTVEQUVcXHU1REJEXFx1NUQ5MFxcdTVEQjdcXHU1REJDXFx1NURDOVxcdTVEQ0RcXHU1REQzXFx1NUREMlxcdTVERDZcXHU1RERCXFx1NURFQlxcdTVERjJcXHU1REY1XFx1NUUwQlxcdTVFMUFcXHU1RTE5XFx1NUUxMVxcdTVFMUJcXHU1RTM2XFx1NUUzN1xcdTVFNDRcXHU1RTQzXFx1NUU0MFxcdTVFNEVcXHU1RTU3XFx1NUU1NFxcdTVFNUZcXHU1RTYyXFx1NUU2NFxcdTVFNDdcXHU1RTc1XFx1NUU3NlxcdTVFN0FcXHU5RUJDXFx1NUU3RlxcdTVFQTBcXHU1RUMxXFx1NUVDMlxcdTVFQzhcXHU1RUQwXFx1NUVDRlwiXSxcbiAgICAgIFtcImQ3YTFcIiwgXCJcXHU1RUQ2XFx1NUVFM1xcdTVFRERcXHU1RURBXFx1NUVEQlxcdTVFRTJcXHU1RUUxXFx1NUVFOFxcdTVFRTlcXHU1RUVDXFx1NUVGMVxcdTVFRjNcXHU1RUYwXFx1NUVGNFxcdTVFRjhcXHU1RUZFXFx1NUYwM1xcdTVGMDlcXHU1RjVEXFx1NUY1Q1xcdTVGMEJcXHU1RjExXFx1NUYxNlxcdTVGMjlcXHU1RjJEXFx1NUYzOFxcdTVGNDFcXHU1RjQ4XFx1NUY0Q1xcdTVGNEVcXHU1RjJGXFx1NUY1MVxcdTVGNTZcXHU1RjU3XFx1NUY1OVxcdTVGNjFcXHU1RjZEXFx1NUY3M1xcdTVGNzdcXHU1RjgzXFx1NUY4MlxcdTVGN0ZcXHU1RjhBXFx1NUY4OFxcdTVGOTFcXHU1Rjg3XFx1NUY5RVxcdTVGOTlcXHU1Rjk4XFx1NUZBMFxcdTVGQThcXHU1RkFEXFx1NUZCQ1xcdTVGRDZcXHU1RkZCXFx1NUZFNFxcdTVGRjhcXHU1RkYxXFx1NUZERFxcdTYwQjNcXHU1RkZGXFx1NjAyMVxcdTYwNjBcXHU2MDE5XFx1NjAxMFxcdTYwMjlcXHU2MDBFXFx1NjAzMVxcdTYwMUJcXHU2MDE1XFx1NjAyQlxcdTYwMjZcXHU2MDBGXFx1NjAzQVxcdTYwNUFcXHU2MDQxXFx1NjA2QVxcdTYwNzdcXHU2MDVGXFx1NjA0QVxcdTYwNDZcXHU2MDREXFx1NjA2M1xcdTYwNDNcXHU2MDY0XFx1NjA0MlxcdTYwNkNcXHU2MDZCXFx1NjA1OVxcdTYwODFcXHU2MDhEXFx1NjBFN1xcdTYwODNcXHU2MDlBXCJdLFxuICAgICAgW1wiZDhhMVwiLCBcIlxcdTYwODRcXHU2MDlCXFx1NjA5NlxcdTYwOTdcXHU2MDkyXFx1NjBBN1xcdTYwOEJcXHU2MEUxXFx1NjBCOFxcdTYwRTBcXHU2MEQzXFx1NjBCNFxcdTVGRjBcXHU2MEJEXFx1NjBDNlxcdTYwQjVcXHU2MEQ4XFx1NjE0RFxcdTYxMTVcXHU2MTA2XFx1NjBGNlxcdTYwRjdcXHU2MTAwXFx1NjBGNFxcdTYwRkFcXHU2MTAzXFx1NjEyMVxcdTYwRkJcXHU2MEYxXFx1NjEwRFxcdTYxMEVcXHU2MTQ3XFx1NjEzRVxcdTYxMjhcXHU2MTI3XFx1NjE0QVxcdTYxM0ZcXHU2MTNDXFx1NjEyQ1xcdTYxMzRcXHU2MTNEXFx1NjE0MlxcdTYxNDRcXHU2MTczXFx1NjE3N1xcdTYxNThcXHU2MTU5XFx1NjE1QVxcdTYxNkJcXHU2MTc0XFx1NjE2RlxcdTYxNjVcXHU2MTcxXFx1NjE1RlxcdTYxNURcXHU2MTUzXFx1NjE3NVxcdTYxOTlcXHU2MTk2XFx1NjE4N1xcdTYxQUNcXHU2MTk0XFx1NjE5QVxcdTYxOEFcXHU2MTkxXFx1NjFBQlxcdTYxQUVcXHU2MUNDXFx1NjFDQVxcdTYxQzlcXHU2MUY3XFx1NjFDOFxcdTYxQzNcXHU2MUM2XFx1NjFCQVxcdTYxQ0JcXHU3Rjc5XFx1NjFDRFxcdTYxRTZcXHU2MUUzXFx1NjFGNlxcdTYxRkFcXHU2MUY0XFx1NjFGRlxcdTYxRkRcXHU2MUZDXFx1NjFGRVxcdTYyMDBcXHU2MjA4XFx1NjIwOVxcdTYyMERcXHU2MjBDXFx1NjIxNFxcdTYyMUJcIl0sXG4gICAgICBbXCJkOWExXCIsIFwiXFx1NjIxRVxcdTYyMjFcXHU2MjJBXFx1NjIyRVxcdTYyMzBcXHU2MjMyXFx1NjIzM1xcdTYyNDFcXHU2MjRFXFx1NjI1RVxcdTYyNjNcXHU2MjVCXFx1NjI2MFxcdTYyNjhcXHU2MjdDXFx1NjI4MlxcdTYyODlcXHU2MjdFXFx1NjI5MlxcdTYyOTNcXHU2Mjk2XFx1NjJENFxcdTYyODNcXHU2Mjk0XFx1NjJEN1xcdTYyRDFcXHU2MkJCXFx1NjJDRlxcdTYyRkZcXHU2MkM2XFx1NjRENFxcdTYyQzhcXHU2MkRDXFx1NjJDQ1xcdTYyQ0FcXHU2MkMyXFx1NjJDN1xcdTYyOUJcXHU2MkM5XFx1NjMwQ1xcdTYyRUVcXHU2MkYxXFx1NjMyN1xcdTYzMDJcXHU2MzA4XFx1NjJFRlxcdTYyRjVcXHU2MzUwXFx1NjMzRVxcdTYzNERcXHU2NDFDXFx1NjM0RlxcdTYzOTZcXHU2MzhFXFx1NjM4MFxcdTYzQUJcXHU2Mzc2XFx1NjNBM1xcdTYzOEZcXHU2Mzg5XFx1NjM5RlxcdTYzQjVcXHU2MzZCXFx1NjM2OVxcdTYzQkVcXHU2M0U5XFx1NjNDMFxcdTYzQzZcXHU2M0UzXFx1NjNDOVxcdTYzRDJcXHU2M0Y2XFx1NjNDNFxcdTY0MTZcXHU2NDM0XFx1NjQwNlxcdTY0MTNcXHU2NDI2XFx1NjQzNlxcdTY1MURcXHU2NDE3XFx1NjQyOFxcdTY0MEZcXHU2NDY3XFx1NjQ2RlxcdTY0NzZcXHU2NDRFXFx1NjUyQVxcdTY0OTVcXHU2NDkzXFx1NjRBNVxcdTY0QTlcXHU2NDg4XFx1NjRCQ1wiXSxcbiAgICAgIFtcImRhYTFcIiwgXCJcXHU2NERBXFx1NjREMlxcdTY0QzVcXHU2NEM3XFx1NjRCQlxcdTY0RDhcXHU2NEMyXFx1NjRGMVxcdTY0RTdcXHU4MjA5XFx1NjRFMFxcdTY0RTFcXHU2MkFDXFx1NjRFM1xcdTY0RUZcXHU2NTJDXFx1NjRGNlxcdTY0RjRcXHU2NEYyXFx1NjRGQVxcdTY1MDBcXHU2NEZEXFx1NjUxOFxcdTY1MUNcXHU2NTA1XFx1NjUyNFxcdTY1MjNcXHU2NTJCXFx1NjUzNFxcdTY1MzVcXHU2NTM3XFx1NjUzNlxcdTY1MzhcXHU3NTRCXFx1NjU0OFxcdTY1NTZcXHU2NTU1XFx1NjU0RFxcdTY1NThcXHU2NTVFXFx1NjU1RFxcdTY1NzJcXHU2NTc4XFx1NjU4MlxcdTY1ODNcXHU4QjhBXFx1NjU5QlxcdTY1OUZcXHU2NUFCXFx1NjVCN1xcdTY1QzNcXHU2NUM2XFx1NjVDMVxcdTY1QzRcXHU2NUNDXFx1NjVEMlxcdTY1REJcXHU2NUQ5XFx1NjVFMFxcdTY1RTFcXHU2NUYxXFx1Njc3MlxcdTY2MEFcXHU2NjAzXFx1NjVGQlxcdTY3NzNcXHU2NjM1XFx1NjYzNlxcdTY2MzRcXHU2NjFDXFx1NjY0RlxcdTY2NDRcXHU2NjQ5XFx1NjY0MVxcdTY2NUVcXHU2NjVEXFx1NjY2NFxcdTY2NjdcXHU2NjY4XFx1NjY1RlxcdTY2NjJcXHU2NjcwXFx1NjY4M1xcdTY2ODhcXHU2NjhFXFx1NjY4OVxcdTY2ODRcXHU2Njk4XFx1NjY5RFxcdTY2QzFcXHU2NkI5XFx1NjZDOVxcdTY2QkVcXHU2NkJDXCJdLFxuICAgICAgW1wiZGJhMVwiLCBcIlxcdTY2QzRcXHU2NkI4XFx1NjZENlxcdTY2REFcXHU2NkUwXFx1NjYzRlxcdTY2RTZcXHU2NkU5XFx1NjZGMFxcdTY2RjVcXHU2NkY3XFx1NjcwRlxcdTY3MTZcXHU2NzFFXFx1NjcyNlxcdTY3MjdcXHU5NzM4XFx1NjcyRVxcdTY3M0ZcXHU2NzM2XFx1Njc0MVxcdTY3MzhcXHU2NzM3XFx1Njc0NlxcdTY3NUVcXHU2NzYwXFx1Njc1OVxcdTY3NjNcXHU2NzY0XFx1Njc4OVxcdTY3NzBcXHU2N0E5XFx1Njc3Q1xcdTY3NkFcXHU2NzhDXFx1Njc4QlxcdTY3QTZcXHU2N0ExXFx1Njc4NVxcdTY3QjdcXHU2N0VGXFx1NjdCNFxcdTY3RUNcXHU2N0IzXFx1NjdFOVxcdTY3QjhcXHU2N0U0XFx1NjdERVxcdTY3RERcXHU2N0UyXFx1NjdFRVxcdTY3QjlcXHU2N0NFXFx1NjdDNlxcdTY3RTdcXHU2QTlDXFx1NjgxRVxcdTY4NDZcXHU2ODI5XFx1Njg0MFxcdTY4NERcXHU2ODMyXFx1Njg0RVxcdTY4QjNcXHU2ODJCXFx1Njg1OVxcdTY4NjNcXHU2ODc3XFx1Njg3RlxcdTY4OUZcXHU2ODhGXFx1NjhBRFxcdTY4OTRcXHU2ODlEXFx1Njg5QlxcdTY4ODNcXHU2QUFFXFx1NjhCOVxcdTY4NzRcXHU2OEI1XFx1NjhBMFxcdTY4QkFcXHU2OTBGXFx1Njg4RFxcdTY4N0VcXHU2OTAxXFx1NjhDQVxcdTY5MDhcXHU2OEQ4XFx1NjkyMlxcdTY5MjZcXHU2OEUxXFx1NjkwQ1xcdTY4Q0RcIl0sXG4gICAgICBbXCJkY2ExXCIsIFwiXFx1NjhENFxcdTY4RTdcXHU2OEQ1XFx1NjkzNlxcdTY5MTJcXHU2OTA0XFx1NjhEN1xcdTY4RTNcXHU2OTI1XFx1NjhGOVxcdTY4RTBcXHU2OEVGXFx1NjkyOFxcdTY5MkFcXHU2OTFBXFx1NjkyM1xcdTY5MjFcXHU2OEM2XFx1Njk3OVxcdTY5NzdcXHU2OTVDXFx1Njk3OFxcdTY5NkJcXHU2OTU0XFx1Njk3RVxcdTY5NkVcXHU2OTM5XFx1Njk3NFxcdTY5M0RcXHU2OTU5XFx1NjkzMFxcdTY5NjFcXHU2OTVFXFx1Njk1RFxcdTY5ODFcXHU2OTZBXFx1NjlCMlxcdTY5QUVcXHU2OUQwXFx1NjlCRlxcdTY5QzFcXHU2OUQzXFx1NjlCRVxcdTY5Q0VcXHU1QkU4XFx1NjlDQVxcdTY5RERcXHU2OUJCXFx1NjlDM1xcdTY5QTdcXHU2QTJFXFx1Njk5MVxcdTY5QTBcXHU2OTlDXFx1Njk5NVxcdTY5QjRcXHU2OURFXFx1NjlFOFxcdTZBMDJcXHU2QTFCXFx1NjlGRlxcdTZCMEFcXHU2OUY5XFx1NjlGMlxcdTY5RTdcXHU2QTA1XFx1NjlCMVxcdTZBMUVcXHU2OUVEXFx1NkExNFxcdTY5RUJcXHU2QTBBXFx1NkExMlxcdTZBQzFcXHU2QTIzXFx1NkExM1xcdTZBNDRcXHU2QTBDXFx1NkE3MlxcdTZBMzZcXHU2QTc4XFx1NkE0N1xcdTZBNjJcXHU2QTU5XFx1NkE2NlxcdTZBNDhcXHU2QTM4XFx1NkEyMlxcdTZBOTBcXHU2QThEXFx1NkFBMFxcdTZBODRcXHU2QUEyXFx1NkFBM1wiXSxcbiAgICAgIFtcImRkYTFcIiwgXCJcXHU2QTk3XFx1ODYxN1xcdTZBQkJcXHU2QUMzXFx1NkFDMlxcdTZBQjhcXHU2QUIzXFx1NkFBQ1xcdTZBREVcXHU2QUQxXFx1NkFERlxcdTZBQUFcXHU2QURBXFx1NkFFQVxcdTZBRkJcXHU2QjA1XFx1ODYxNlxcdTZBRkFcXHU2QjEyXFx1NkIxNlxcdTlCMzFcXHU2QjFGXFx1NkIzOFxcdTZCMzdcXHU3NkRDXFx1NkIzOVxcdTk4RUVcXHU2QjQ3XFx1NkI0M1xcdTZCNDlcXHU2QjUwXFx1NkI1OVxcdTZCNTRcXHU2QjVCXFx1NkI1RlxcdTZCNjFcXHU2Qjc4XFx1NkI3OVxcdTZCN0ZcXHU2QjgwXFx1NkI4NFxcdTZCODNcXHU2QjhEXFx1NkI5OFxcdTZCOTVcXHU2QjlFXFx1NkJBNFxcdTZCQUFcXHU2QkFCXFx1NkJBRlxcdTZCQjJcXHU2QkIxXFx1NkJCM1xcdTZCQjdcXHU2QkJDXFx1NkJDNlxcdTZCQ0JcXHU2QkQzXFx1NkJERlxcdTZCRUNcXHU2QkVCXFx1NkJGM1xcdTZCRUZcXHU5RUJFXFx1NkMwOFxcdTZDMTNcXHU2QzE0XFx1NkMxQlxcdTZDMjRcXHU2QzIzXFx1NkM1RVxcdTZDNTVcXHU2QzYyXFx1NkM2QVxcdTZDODJcXHU2QzhEXFx1NkM5QVxcdTZDODFcXHU2QzlCXFx1NkM3RVxcdTZDNjhcXHU2QzczXFx1NkM5MlxcdTZDOTBcXHU2Q0M0XFx1NkNGMVxcdTZDRDNcXHU2Q0JEXFx1NkNEN1xcdTZDQzVcXHU2Q0REXFx1NkNBRVxcdTZDQjFcXHU2Q0JFXCJdLFxuICAgICAgW1wiZGVhMVwiLCBcIlxcdTZDQkFcXHU2Q0RCXFx1NkNFRlxcdTZDRDlcXHU2Q0VBXFx1NkQxRlxcdTg4NERcXHU2RDM2XFx1NkQyQlxcdTZEM0RcXHU2RDM4XFx1NkQxOVxcdTZEMzVcXHU2RDMzXFx1NkQxMlxcdTZEMENcXHU2RDYzXFx1NkQ5M1xcdTZENjRcXHU2RDVBXFx1NkQ3OVxcdTZENTlcXHU2RDhFXFx1NkQ5NVxcdTZGRTRcXHU2RDg1XFx1NkRGOVxcdTZFMTVcXHU2RTBBXFx1NkRCNVxcdTZEQzdcXHU2REU2XFx1NkRCOFxcdTZEQzZcXHU2REVDXFx1NkRERVxcdTZEQ0NcXHU2REU4XFx1NkREMlxcdTZEQzVcXHU2REZBXFx1NkREOVxcdTZERTRcXHU2REQ1XFx1NkRFQVxcdTZERUVcXHU2RTJEXFx1NkU2RVxcdTZFMkVcXHU2RTE5XFx1NkU3MlxcdTZFNUZcXHU2RTNFXFx1NkUyM1xcdTZFNkJcXHU2RTJCXFx1NkU3NlxcdTZFNERcXHU2RTFGXFx1NkU0M1xcdTZFM0FcXHU2RTRFXFx1NkUyNFxcdTZFRkZcXHU2RTFEXFx1NkUzOFxcdTZFODJcXHU2RUFBXFx1NkU5OFxcdTZFQzlcXHU2RUI3XFx1NkVEM1xcdTZFQkRcXHU2RUFGXFx1NkVDNFxcdTZFQjJcXHU2RUQ0XFx1NkVENVxcdTZFOEZcXHU2RUE1XFx1NkVDMlxcdTZFOUZcXHU2RjQxXFx1NkYxMVxcdTcwNENcXHU2RUVDXFx1NkVGOFxcdTZFRkVcXHU2RjNGXFx1NkVGMlxcdTZGMzFcXHU2RUVGXFx1NkYzMlxcdTZFQ0NcIl0sXG4gICAgICBbXCJkZmExXCIsIFwiXFx1NkYzRVxcdTZGMTNcXHU2RUY3XFx1NkY4NlxcdTZGN0FcXHU2Rjc4XFx1NkY4MVxcdTZGODBcXHU2RjZGXFx1NkY1QlxcdTZGRjNcXHU2RjZEXFx1NkY4MlxcdTZGN0NcXHU2RjU4XFx1NkY4RVxcdTZGOTFcXHU2RkMyXFx1NkY2NlxcdTZGQjNcXHU2RkEzXFx1NkZBMVxcdTZGQTRcXHU2RkI5XFx1NkZDNlxcdTZGQUFcXHU2RkRGXFx1NkZENVxcdTZGRUNcXHU2RkQ0XFx1NkZEOFxcdTZGRjFcXHU2RkVFXFx1NkZEQlxcdTcwMDlcXHU3MDBCXFx1NkZGQVxcdTcwMTFcXHU3MDAxXFx1NzAwRlxcdTZGRkVcXHU3MDFCXFx1NzAxQVxcdTZGNzRcXHU3MDFEXFx1NzAxOFxcdTcwMUZcXHU3MDMwXFx1NzAzRVxcdTcwMzJcXHU3MDUxXFx1NzA2M1xcdTcwOTlcXHU3MDkyXFx1NzBBRlxcdTcwRjFcXHU3MEFDXFx1NzBCOFxcdTcwQjNcXHU3MEFFXFx1NzBERlxcdTcwQ0JcXHU3MEREXFx1NzBEOVxcdTcxMDlcXHU3MEZEXFx1NzExQ1xcdTcxMTlcXHU3MTY1XFx1NzE1NVxcdTcxODhcXHU3MTY2XFx1NzE2MlxcdTcxNENcXHU3MTU2XFx1NzE2Q1xcdTcxOEZcXHU3MUZCXFx1NzE4NFxcdTcxOTVcXHU3MUE4XFx1NzFBQ1xcdTcxRDdcXHU3MUI5XFx1NzFCRVxcdTcxRDJcXHU3MUM5XFx1NzFENFxcdTcxQ0VcXHU3MUUwXFx1NzFFQ1xcdTcxRTdcXHU3MUY1XFx1NzFGQ1wiXSxcbiAgICAgIFtcImUwYTFcIiwgXCJcXHU3MUY5XFx1NzFGRlxcdTcyMERcXHU3MjEwXFx1NzIxQlxcdTcyMjhcXHU3MjJEXFx1NzIyQ1xcdTcyMzBcXHU3MjMyXFx1NzIzQlxcdTcyM0NcXHU3MjNGXFx1NzI0MFxcdTcyNDZcXHU3MjRCXFx1NzI1OFxcdTcyNzRcXHU3MjdFXFx1NzI4MlxcdTcyODFcXHU3Mjg3XFx1NzI5MlxcdTcyOTZcXHU3MkEyXFx1NzJBN1xcdTcyQjlcXHU3MkIyXFx1NzJDM1xcdTcyQzZcXHU3MkM0XFx1NzJDRVxcdTcyRDJcXHU3MkUyXFx1NzJFMFxcdTcyRTFcXHU3MkY5XFx1NzJGN1xcdTUwMEZcXHU3MzE3XFx1NzMwQVxcdTczMUNcXHU3MzE2XFx1NzMxRFxcdTczMzRcXHU3MzJGXFx1NzMyOVxcdTczMjVcXHU3MzNFXFx1NzM0RVxcdTczNEZcXHU5RUQ4XFx1NzM1N1xcdTczNkFcXHU3MzY4XFx1NzM3MFxcdTczNzhcXHU3Mzc1XFx1NzM3QlxcdTczN0FcXHU3M0M4XFx1NzNCM1xcdTczQ0VcXHU3M0JCXFx1NzNDMFxcdTczRTVcXHU3M0VFXFx1NzNERVxcdTc0QTJcXHU3NDA1XFx1NzQ2RlxcdTc0MjVcXHU3M0Y4XFx1NzQzMlxcdTc0M0FcXHU3NDU1XFx1NzQzRlxcdTc0NUZcXHU3NDU5XFx1NzQ0MVxcdTc0NUNcXHU3NDY5XFx1NzQ3MFxcdTc0NjNcXHU3NDZBXFx1NzQ3NlxcdTc0N0VcXHU3NDhCXFx1NzQ5RVxcdTc0QTdcXHU3NENBXFx1NzRDRlxcdTc0RDRcXHU3M0YxXCJdLFxuICAgICAgW1wiZTFhMVwiLCBcIlxcdTc0RTBcXHU3NEUzXFx1NzRFN1xcdTc0RTlcXHU3NEVFXFx1NzRGMlxcdTc0RjBcXHU3NEYxXFx1NzRGOFxcdTc0RjdcXHU3NTA0XFx1NzUwM1xcdTc1MDVcXHU3NTBDXFx1NzUwRVxcdTc1MERcXHU3NTE1XFx1NzUxM1xcdTc1MUVcXHU3NTI2XFx1NzUyQ1xcdTc1M0NcXHU3NTQ0XFx1NzU0RFxcdTc1NEFcXHU3NTQ5XFx1NzU1QlxcdTc1NDZcXHU3NTVBXFx1NzU2OVxcdTc1NjRcXHU3NTY3XFx1NzU2QlxcdTc1NkRcXHU3NTc4XFx1NzU3NlxcdTc1ODZcXHU3NTg3XFx1NzU3NFxcdTc1OEFcXHU3NTg5XFx1NzU4MlxcdTc1OTRcXHU3NTlBXFx1NzU5RFxcdTc1QTVcXHU3NUEzXFx1NzVDMlxcdTc1QjNcXHU3NUMzXFx1NzVCNVxcdTc1QkRcXHU3NUI4XFx1NzVCQ1xcdTc1QjFcXHU3NUNEXFx1NzVDQVxcdTc1RDJcXHU3NUQ5XFx1NzVFM1xcdTc1REVcXHU3NUZFXFx1NzVGRlxcdTc1RkNcXHU3NjAxXFx1NzVGMFxcdTc1RkFcXHU3NUYyXFx1NzVGM1xcdTc2MEJcXHU3NjBEXFx1NzYwOVxcdTc2MUZcXHU3NjI3XFx1NzYyMFxcdTc2MjFcXHU3NjIyXFx1NzYyNFxcdTc2MzRcXHU3NjMwXFx1NzYzQlxcdTc2NDdcXHU3NjQ4XFx1NzY0NlxcdTc2NUNcXHU3NjU4XFx1NzY2MVxcdTc2NjJcXHU3NjY4XFx1NzY2OVxcdTc2NkFcXHU3NjY3XFx1NzY2Q1xcdTc2NzBcIl0sXG4gICAgICBbXCJlMmExXCIsIFwiXFx1NzY3MlxcdTc2NzZcXHU3Njc4XFx1NzY3Q1xcdTc2ODBcXHU3NjgzXFx1NzY4OFxcdTc2OEJcXHU3NjhFXFx1NzY5NlxcdTc2OTNcXHU3Njk5XFx1NzY5QVxcdTc2QjBcXHU3NkI0XFx1NzZCOFxcdTc2QjlcXHU3NkJBXFx1NzZDMlxcdTc2Q0RcXHU3NkQ2XFx1NzZEMlxcdTc2REVcXHU3NkUxXFx1NzZFNVxcdTc2RTdcXHU3NkVBXFx1ODYyRlxcdTc2RkJcXHU3NzA4XFx1NzcwN1xcdTc3MDRcXHU3NzI5XFx1NzcyNFxcdTc3MUVcXHU3NzI1XFx1NzcyNlxcdTc3MUJcXHU3NzM3XFx1NzczOFxcdTc3NDdcXHU3NzVBXFx1Nzc2OFxcdTc3NkJcXHU3NzVCXFx1Nzc2NVxcdTc3N0ZcXHU3NzdFXFx1Nzc3OVxcdTc3OEVcXHU3NzhCXFx1Nzc5MVxcdTc3QTBcXHU3NzlFXFx1NzdCMFxcdTc3QjZcXHU3N0I5XFx1NzdCRlxcdTc3QkNcXHU3N0JEXFx1NzdCQlxcdTc3QzdcXHU3N0NEXFx1NzdEN1xcdTc3REFcXHU3N0RDXFx1NzdFM1xcdTc3RUVcXHU3N0ZDXFx1NzgwQ1xcdTc4MTJcXHU3OTI2XFx1NzgyMFxcdTc5MkFcXHU3ODQ1XFx1Nzg4RVxcdTc4NzRcXHU3ODg2XFx1Nzg3Q1xcdTc4OUFcXHU3ODhDXFx1NzhBM1xcdTc4QjVcXHU3OEFBXFx1NzhBRlxcdTc4RDFcXHU3OEM2XFx1NzhDQlxcdTc4RDRcXHU3OEJFXFx1NzhCQ1xcdTc4QzVcXHU3OENBXFx1NzhFQ1wiXSxcbiAgICAgIFtcImUzYTFcIiwgXCJcXHU3OEU3XFx1NzhEQVxcdTc4RkRcXHU3OEY0XFx1NzkwN1xcdTc5MTJcXHU3OTExXFx1NzkxOVxcdTc5MkNcXHU3OTJCXFx1Nzk0MFxcdTc5NjBcXHU3OTU3XFx1Nzk1RlxcdTc5NUFcXHU3OTU1XFx1Nzk1M1xcdTc5N0FcXHU3OTdGXFx1Nzk4QVxcdTc5OURcXHU3OUE3XFx1OUY0QlxcdTc5QUFcXHU3OUFFXFx1NzlCM1xcdTc5QjlcXHU3OUJBXFx1NzlDOVxcdTc5RDVcXHU3OUU3XFx1NzlFQ1xcdTc5RTFcXHU3OUUzXFx1N0EwOFxcdTdBMERcXHU3QTE4XFx1N0ExOVxcdTdBMjBcXHU3QTFGXFx1Nzk4MFxcdTdBMzFcXHU3QTNCXFx1N0EzRVxcdTdBMzdcXHU3QTQzXFx1N0E1N1xcdTdBNDlcXHU3QTYxXFx1N0E2MlxcdTdBNjlcXHU5RjlEXFx1N0E3MFxcdTdBNzlcXHU3QTdEXFx1N0E4OFxcdTdBOTdcXHU3QTk1XFx1N0E5OFxcdTdBOTZcXHU3QUE5XFx1N0FDOFxcdTdBQjBcXHU3QUI2XFx1N0FDNVxcdTdBQzRcXHU3QUJGXFx1OTA4M1xcdTdBQzdcXHU3QUNBXFx1N0FDRFxcdTdBQ0ZcXHU3QUQ1XFx1N0FEM1xcdTdBRDlcXHU3QURBXFx1N0FERFxcdTdBRTFcXHU3QUUyXFx1N0FFNlxcdTdBRURcXHU3QUYwXFx1N0IwMlxcdTdCMEZcXHU3QjBBXFx1N0IwNlxcdTdCMzNcXHU3QjE4XFx1N0IxOVxcdTdCMUVcXHU3QjM1XFx1N0IyOFxcdTdCMzZcXHU3QjUwXCJdLFxuICAgICAgW1wiZTRhMVwiLCBcIlxcdTdCN0FcXHU3QjA0XFx1N0I0RFxcdTdCMEJcXHU3QjRDXFx1N0I0NVxcdTdCNzVcXHU3QjY1XFx1N0I3NFxcdTdCNjdcXHU3QjcwXFx1N0I3MVxcdTdCNkNcXHU3QjZFXFx1N0I5RFxcdTdCOThcXHU3QjlGXFx1N0I4RFxcdTdCOUNcXHU3QjlBXFx1N0I4QlxcdTdCOTJcXHU3QjhGXFx1N0I1RFxcdTdCOTlcXHU3QkNCXFx1N0JDMVxcdTdCQ0NcXHU3QkNGXFx1N0JCNFxcdTdCQzZcXHU3QkREXFx1N0JFOVxcdTdDMTFcXHU3QzE0XFx1N0JFNlxcdTdCRTVcXHU3QzYwXFx1N0MwMFxcdTdDMDdcXHU3QzEzXFx1N0JGM1xcdTdCRjdcXHU3QzE3XFx1N0MwRFxcdTdCRjZcXHU3QzIzXFx1N0MyN1xcdTdDMkFcXHU3QzFGXFx1N0MzN1xcdTdDMkJcXHU3QzNEXFx1N0M0Q1xcdTdDNDNcXHU3QzU0XFx1N0M0RlxcdTdDNDBcXHU3QzUwXFx1N0M1OFxcdTdDNUZcXHU3QzY0XFx1N0M1NlxcdTdDNjVcXHU3QzZDXFx1N0M3NVxcdTdDODNcXHU3QzkwXFx1N0NBNFxcdTdDQURcXHU3Q0EyXFx1N0NBQlxcdTdDQTFcXHU3Q0E4XFx1N0NCM1xcdTdDQjJcXHU3Q0IxXFx1N0NBRVxcdTdDQjlcXHU3Q0JEXFx1N0NDMFxcdTdDQzVcXHU3Q0MyXFx1N0NEOFxcdTdDRDJcXHU3Q0RDXFx1N0NFMlxcdTlCM0JcXHU3Q0VGXFx1N0NGMlxcdTdDRjRcXHU3Q0Y2XFx1N0NGQVxcdTdEMDZcIl0sXG4gICAgICBbXCJlNWExXCIsIFwiXFx1N0QwMlxcdTdEMUNcXHU3RDE1XFx1N0QwQVxcdTdENDVcXHU3RDRCXFx1N0QyRVxcdTdEMzJcXHU3RDNGXFx1N0QzNVxcdTdENDZcXHU3RDczXFx1N0Q1NlxcdTdENEVcXHU3RDcyXFx1N0Q2OFxcdTdENkVcXHU3RDRGXFx1N0Q2M1xcdTdEOTNcXHU3RDg5XFx1N0Q1QlxcdTdEOEZcXHU3RDdEXFx1N0Q5QlxcdTdEQkFcXHU3REFFXFx1N0RBM1xcdTdEQjVcXHU3REM3XFx1N0RCRFxcdTdEQUJcXHU3RTNEXFx1N0RBMlxcdTdEQUZcXHU3RERDXFx1N0RCOFxcdTdEOUZcXHU3REIwXFx1N0REOFxcdTdERERcXHU3REU0XFx1N0RERVxcdTdERkJcXHU3REYyXFx1N0RFMVxcdTdFMDVcXHU3RTBBXFx1N0UyM1xcdTdFMjFcXHU3RTEyXFx1N0UzMVxcdTdFMUZcXHU3RTA5XFx1N0UwQlxcdTdFMjJcXHU3RTQ2XFx1N0U2NlxcdTdFM0JcXHU3RTM1XFx1N0UzOVxcdTdFNDNcXHU3RTM3XFx1N0UzMlxcdTdFM0FcXHU3RTY3XFx1N0U1RFxcdTdFNTZcXHU3RTVFXFx1N0U1OVxcdTdFNUFcXHU3RTc5XFx1N0U2QVxcdTdFNjlcXHU3RTdDXFx1N0U3QlxcdTdFODNcXHU3REQ1XFx1N0U3RFxcdThGQUVcXHU3RTdGXFx1N0U4OFxcdTdFODlcXHU3RThDXFx1N0U5MlxcdTdFOTBcXHU3RTkzXFx1N0U5NFxcdTdFOTZcXHU3RThFXFx1N0U5QlxcdTdFOUNcXHU3RjM4XFx1N0YzQVwiXSxcbiAgICAgIFtcImU2YTFcIiwgXCJcXHU3RjQ1XFx1N0Y0Q1xcdTdGNERcXHU3RjRFXFx1N0Y1MFxcdTdGNTFcXHU3RjU1XFx1N0Y1NFxcdTdGNThcXHU3RjVGXFx1N0Y2MFxcdTdGNjhcXHU3RjY5XFx1N0Y2N1xcdTdGNzhcXHU3RjgyXFx1N0Y4NlxcdTdGODNcXHU3Rjg4XFx1N0Y4N1xcdTdGOENcXHU3Rjk0XFx1N0Y5RVxcdTdGOURcXHU3RjlBXFx1N0ZBM1xcdTdGQUZcXHU3RkIyXFx1N0ZCOVxcdTdGQUVcXHU3RkI2XFx1N0ZCOFxcdThCNzFcXHU3RkM1XFx1N0ZDNlxcdTdGQ0FcXHU3RkQ1XFx1N0ZENFxcdTdGRTFcXHU3RkU2XFx1N0ZFOVxcdTdGRjNcXHU3RkY5XFx1OThEQ1xcdTgwMDZcXHU4MDA0XFx1ODAwQlxcdTgwMTJcXHU4MDE4XFx1ODAxOVxcdTgwMUNcXHU4MDIxXFx1ODAyOFxcdTgwM0ZcXHU4MDNCXFx1ODA0QVxcdTgwNDZcXHU4MDUyXFx1ODA1OFxcdTgwNUFcXHU4MDVGXFx1ODA2MlxcdTgwNjhcXHU4MDczXFx1ODA3MlxcdTgwNzBcXHU4MDc2XFx1ODA3OVxcdTgwN0RcXHU4MDdGXFx1ODA4NFxcdTgwODZcXHU4MDg1XFx1ODA5QlxcdTgwOTNcXHU4MDlBXFx1ODBBRFxcdTUxOTBcXHU4MEFDXFx1ODBEQlxcdTgwRTVcXHU4MEQ5XFx1ODBERFxcdTgwQzRcXHU4MERBXFx1ODBENlxcdTgxMDlcXHU4MEVGXFx1ODBGMVxcdTgxMUJcXHU4MTI5XFx1ODEyM1xcdTgxMkZcXHU4MTRCXCJdLFxuICAgICAgW1wiZTdhMVwiLCBcIlxcdTk2OEJcXHU4MTQ2XFx1ODEzRVxcdTgxNTNcXHU4MTUxXFx1ODBGQ1xcdTgxNzFcXHU4MTZFXFx1ODE2NVxcdTgxNjZcXHU4MTc0XFx1ODE4M1xcdTgxODhcXHU4MThBXFx1ODE4MFxcdTgxODJcXHU4MUEwXFx1ODE5NVxcdTgxQTRcXHU4MUEzXFx1ODE1RlxcdTgxOTNcXHU4MUE5XFx1ODFCMFxcdTgxQjVcXHU4MUJFXFx1ODFCOFxcdTgxQkRcXHU4MUMwXFx1ODFDMlxcdTgxQkFcXHU4MUM5XFx1ODFDRFxcdTgxRDFcXHU4MUQ5XFx1ODFEOFxcdTgxQzhcXHU4MURBXFx1ODFERlxcdTgxRTBcXHU4MUU3XFx1ODFGQVxcdTgxRkJcXHU4MUZFXFx1ODIwMVxcdTgyMDJcXHU4MjA1XFx1ODIwN1xcdTgyMEFcXHU4MjBEXFx1ODIxMFxcdTgyMTZcXHU4MjI5XFx1ODIyQlxcdTgyMzhcXHU4MjMzXFx1ODI0MFxcdTgyNTlcXHU4MjU4XFx1ODI1RFxcdTgyNUFcXHU4MjVGXFx1ODI2NFxcdTgyNjJcXHU4MjY4XFx1ODI2QVxcdTgyNkJcXHU4MjJFXFx1ODI3MVxcdTgyNzdcXHU4Mjc4XFx1ODI3RVxcdTgyOERcXHU4MjkyXFx1ODJBQlxcdTgyOUZcXHU4MkJCXFx1ODJBQ1xcdTgyRTFcXHU4MkUzXFx1ODJERlxcdTgyRDJcXHU4MkY0XFx1ODJGM1xcdTgyRkFcXHU4MzkzXFx1ODMwM1xcdTgyRkJcXHU4MkY5XFx1ODJERVxcdTgzMDZcXHU4MkRDXFx1ODMwOVxcdTgyRDlcIl0sXG4gICAgICBbXCJlOGExXCIsIFwiXFx1ODMzNVxcdTgzMzRcXHU4MzE2XFx1ODMzMlxcdTgzMzFcXHU4MzQwXFx1ODMzOVxcdTgzNTBcXHU4MzQ1XFx1ODMyRlxcdTgzMkJcXHU4MzE3XFx1ODMxOFxcdTgzODVcXHU4MzlBXFx1ODNBQVxcdTgzOUZcXHU4M0EyXFx1ODM5NlxcdTgzMjNcXHU4MzhFXFx1ODM4N1xcdTgzOEFcXHU4MzdDXFx1ODNCNVxcdTgzNzNcXHU4Mzc1XFx1ODNBMFxcdTgzODlcXHU4M0E4XFx1ODNGNFxcdTg0MTNcXHU4M0VCXFx1ODNDRVxcdTgzRkRcXHU4NDAzXFx1ODNEOFxcdTg0MEJcXHU4M0MxXFx1ODNGN1xcdTg0MDdcXHU4M0UwXFx1ODNGMlxcdTg0MERcXHU4NDIyXFx1ODQyMFxcdTgzQkRcXHU4NDM4XFx1ODUwNlxcdTgzRkJcXHU4NDZEXFx1ODQyQVxcdTg0M0NcXHU4NTVBXFx1ODQ4NFxcdTg0NzdcXHU4NDZCXFx1ODRBRFxcdTg0NkVcXHU4NDgyXFx1ODQ2OVxcdTg0NDZcXHU4NDJDXFx1ODQ2RlxcdTg0NzlcXHU4NDM1XFx1ODRDQVxcdTg0NjJcXHU4NEI5XFx1ODRCRlxcdTg0OUZcXHU4NEQ5XFx1ODRDRFxcdTg0QkJcXHU4NERBXFx1ODREMFxcdTg0QzFcXHU4NEM2XFx1ODRENlxcdTg0QTFcXHU4NTIxXFx1ODRGRlxcdTg0RjRcXHU4NTE3XFx1ODUxOFxcdTg1MkNcXHU4NTFGXFx1ODUxNVxcdTg1MTRcXHU4NEZDXFx1ODU0MFxcdTg1NjNcXHU4NTU4XFx1ODU0OFwiXSxcbiAgICAgIFtcImU5YTFcIiwgXCJcXHU4NTQxXFx1ODYwMlxcdTg1NEJcXHU4NTU1XFx1ODU4MFxcdTg1QTRcXHU4NTg4XFx1ODU5MVxcdTg1OEFcXHU4NUE4XFx1ODU2RFxcdTg1OTRcXHU4NTlCXFx1ODVFQVxcdTg1ODdcXHU4NTlDXFx1ODU3N1xcdTg1N0VcXHU4NTkwXFx1ODVDOVxcdTg1QkFcXHU4NUNGXFx1ODVCOVxcdTg1RDBcXHU4NUQ1XFx1ODVERFxcdTg1RTVcXHU4NURDXFx1ODVGOVxcdTg2MEFcXHU4NjEzXFx1ODYwQlxcdTg1RkVcXHU4NUZBXFx1ODYwNlxcdTg2MjJcXHU4NjFBXFx1ODYzMFxcdTg2M0ZcXHU4NjREXFx1NEU1NVxcdTg2NTRcXHU4NjVGXFx1ODY2N1xcdTg2NzFcXHU4NjkzXFx1ODZBM1xcdTg2QTlcXHU4NkFBXFx1ODY4QlxcdTg2OENcXHU4NkI2XFx1ODZBRlxcdTg2QzRcXHU4NkM2XFx1ODZCMFxcdTg2QzlcXHU4ODIzXFx1ODZBQlxcdTg2RDRcXHU4NkRFXFx1ODZFOVxcdTg2RUNcXHU4NkRGXFx1ODZEQlxcdTg2RUZcXHU4NzEyXFx1ODcwNlxcdTg3MDhcXHU4NzAwXFx1ODcwM1xcdTg2RkJcXHU4NzExXFx1ODcwOVxcdTg3MERcXHU4NkY5XFx1ODcwQVxcdTg3MzRcXHU4NzNGXFx1ODczN1xcdTg3M0JcXHU4NzI1XFx1ODcyOVxcdTg3MUFcXHU4NzYwXFx1ODc1RlxcdTg3NzhcXHU4NzRDXFx1ODc0RVxcdTg3NzRcXHU4NzU3XFx1ODc2OFxcdTg3NkVcXHU4NzU5XCJdLFxuICAgICAgW1wiZWFhMVwiLCBcIlxcdTg3NTNcXHU4NzYzXFx1ODc2QVxcdTg4MDVcXHU4N0EyXFx1ODc5RlxcdTg3ODJcXHU4N0FGXFx1ODdDQlxcdTg3QkRcXHU4N0MwXFx1ODdEMFxcdTk2RDZcXHU4N0FCXFx1ODdDNFxcdTg3QjNcXHU4N0M3XFx1ODdDNlxcdTg3QkJcXHU4N0VGXFx1ODdGMlxcdTg3RTBcXHU4ODBGXFx1ODgwRFxcdTg3RkVcXHU4N0Y2XFx1ODdGN1xcdTg4MEVcXHU4N0QyXFx1ODgxMVxcdTg4MTZcXHU4ODE1XFx1ODgyMlxcdTg4MjFcXHU4ODMxXFx1ODgzNlxcdTg4MzlcXHU4ODI3XFx1ODgzQlxcdTg4NDRcXHU4ODQyXFx1ODg1MlxcdTg4NTlcXHU4ODVFXFx1ODg2MlxcdTg4NkJcXHU4ODgxXFx1ODg3RVxcdTg4OUVcXHU4ODc1XFx1ODg3RFxcdTg4QjVcXHU4ODcyXFx1ODg4MlxcdTg4OTdcXHU4ODkyXFx1ODhBRVxcdTg4OTlcXHU4OEEyXFx1ODg4RFxcdTg4QTRcXHU4OEIwXFx1ODhCRlxcdTg4QjFcXHU4OEMzXFx1ODhDNFxcdTg4RDRcXHU4OEQ4XFx1ODhEOVxcdTg4RERcXHU4OEY5XFx1ODkwMlxcdTg4RkNcXHU4OEY0XFx1ODhFOFxcdTg4RjJcXHU4OTA0XFx1ODkwQ1xcdTg5MEFcXHU4OTEzXFx1ODk0M1xcdTg5MUVcXHU4OTI1XFx1ODkyQVxcdTg5MkJcXHU4OTQxXFx1ODk0NFxcdTg5M0JcXHU4OTM2XFx1ODkzOFxcdTg5NENcXHU4OTFEXFx1ODk2MFxcdTg5NUVcIl0sXG4gICAgICBbXCJlYmExXCIsIFwiXFx1ODk2NlxcdTg5NjRcXHU4OTZEXFx1ODk2QVxcdTg5NkZcXHU4OTc0XFx1ODk3N1xcdTg5N0VcXHU4OTgzXFx1ODk4OFxcdTg5OEFcXHU4OTkzXFx1ODk5OFxcdTg5QTFcXHU4OUE5XFx1ODlBNlxcdTg5QUNcXHU4OUFGXFx1ODlCMlxcdTg5QkFcXHU4OUJEXFx1ODlCRlxcdTg5QzBcXHU4OURBXFx1ODlEQ1xcdTg5RERcXHU4OUU3XFx1ODlGNFxcdTg5RjhcXHU4QTAzXFx1OEExNlxcdThBMTBcXHU4QTBDXFx1OEExQlxcdThBMURcXHU4QTI1XFx1OEEzNlxcdThBNDFcXHU4QTVCXFx1OEE1MlxcdThBNDZcXHU4QTQ4XFx1OEE3Q1xcdThBNkRcXHU4QTZDXFx1OEE2MlxcdThBODVcXHU4QTgyXFx1OEE4NFxcdThBQThcXHU4QUExXFx1OEE5MVxcdThBQTVcXHU4QUE2XFx1OEE5QVxcdThBQTNcXHU4QUM0XFx1OEFDRFxcdThBQzJcXHU4QURBXFx1OEFFQlxcdThBRjNcXHU4QUU3XFx1OEFFNFxcdThBRjFcXHU4QjE0XFx1OEFFMFxcdThBRTJcXHU4QUY3XFx1OEFERVxcdThBREJcXHU4QjBDXFx1OEIwN1xcdThCMUFcXHU4QUUxXFx1OEIxNlxcdThCMTBcXHU4QjE3XFx1OEIyMFxcdThCMzNcXHU5N0FCXFx1OEIyNlxcdThCMkJcXHU4QjNFXFx1OEIyOFxcdThCNDFcXHU4QjRDXFx1OEI0RlxcdThCNEVcXHU4QjQ5XFx1OEI1NlxcdThCNUJcXHU4QjVBXFx1OEI2QlwiXSxcbiAgICAgIFtcImVjYTFcIiwgXCJcXHU4QjVGXFx1OEI2Q1xcdThCNkZcXHU4Qjc0XFx1OEI3RFxcdThCODBcXHU4QjhDXFx1OEI4RVxcdThCOTJcXHU4QjkzXFx1OEI5NlxcdThCOTlcXHU4QjlBXFx1OEMzQVxcdThDNDFcXHU4QzNGXFx1OEM0OFxcdThDNENcXHU4QzRFXFx1OEM1MFxcdThDNTVcXHU4QzYyXFx1OEM2Q1xcdThDNzhcXHU4QzdBXFx1OEM4MlxcdThDODlcXHU4Qzg1XFx1OEM4QVxcdThDOERcXHU4QzhFXFx1OEM5NFxcdThDN0NcXHU4Qzk4XFx1NjIxRFxcdThDQURcXHU4Q0FBXFx1OENCRFxcdThDQjJcXHU4Q0IzXFx1OENBRVxcdThDQjZcXHU4Q0M4XFx1OENDMVxcdThDRTRcXHU4Q0UzXFx1OENEQVxcdThDRkRcXHU4Q0ZBXFx1OENGQlxcdThEMDRcXHU4RDA1XFx1OEQwQVxcdThEMDdcXHU4RDBGXFx1OEQwRFxcdThEMTBcXHU5RjRFXFx1OEQxM1xcdThDQ0RcXHU4RDE0XFx1OEQxNlxcdThENjdcXHU4RDZEXFx1OEQ3MVxcdThENzNcXHU4RDgxXFx1OEQ5OVxcdThEQzJcXHU4REJFXFx1OERCQVxcdThEQ0ZcXHU4RERBXFx1OERENlxcdThEQ0NcXHU4RERCXFx1OERDQlxcdThERUFcXHU4REVCXFx1OERERlxcdThERTNcXHU4REZDXFx1OEUwOFxcdThFMDlcXHU4REZGXFx1OEUxRFxcdThFMUVcXHU4RTEwXFx1OEUxRlxcdThFNDJcXHU4RTM1XFx1OEUzMFxcdThFMzRcXHU4RTRBXCJdLFxuICAgICAgW1wiZWRhMVwiLCBcIlxcdThFNDdcXHU4RTQ5XFx1OEU0Q1xcdThFNTBcXHU4RTQ4XFx1OEU1OVxcdThFNjRcXHU4RTYwXFx1OEUyQVxcdThFNjNcXHU4RTU1XFx1OEU3NlxcdThFNzJcXHU4RTdDXFx1OEU4MVxcdThFODdcXHU4RTg1XFx1OEU4NFxcdThFOEJcXHU4RThBXFx1OEU5M1xcdThFOTFcXHU4RTk0XFx1OEU5OVxcdThFQUFcXHU4RUExXFx1OEVBQ1xcdThFQjBcXHU4RUM2XFx1OEVCMVxcdThFQkVcXHU4RUM1XFx1OEVDOFxcdThFQ0JcXHU4RURCXFx1OEVFM1xcdThFRkNcXHU4RUZCXFx1OEVFQlxcdThFRkVcXHU4RjBBXFx1OEYwNVxcdThGMTVcXHU4RjEyXFx1OEYxOVxcdThGMTNcXHU4RjFDXFx1OEYxRlxcdThGMUJcXHU4RjBDXFx1OEYyNlxcdThGMzNcXHU4RjNCXFx1OEYzOVxcdThGNDVcXHU4RjQyXFx1OEYzRVxcdThGNENcXHU4RjQ5XFx1OEY0NlxcdThGNEVcXHU4RjU3XFx1OEY1Q1xcdThGNjJcXHU4RjYzXFx1OEY2NFxcdThGOUNcXHU4RjlGXFx1OEZBM1xcdThGQURcXHU4RkFGXFx1OEZCN1xcdThGREFcXHU4RkU1XFx1OEZFMlxcdThGRUFcXHU4RkVGXFx1OTA4N1xcdThGRjRcXHU5MDA1XFx1OEZGOVxcdThGRkFcXHU5MDExXFx1OTAxNVxcdTkwMjFcXHU5MDBEXFx1OTAxRVxcdTkwMTZcXHU5MDBCXFx1OTAyN1xcdTkwMzZcXHU5MDM1XFx1OTAzOVxcdThGRjhcIl0sXG4gICAgICBbXCJlZWExXCIsIFwiXFx1OTA0RlxcdTkwNTBcXHU5MDUxXFx1OTA1MlxcdTkwMEVcXHU5MDQ5XFx1OTAzRVxcdTkwNTZcXHU5MDU4XFx1OTA1RVxcdTkwNjhcXHU5MDZGXFx1OTA3NlxcdTk2QThcXHU5MDcyXFx1OTA4MlxcdTkwN0RcXHU5MDgxXFx1OTA4MFxcdTkwOEFcXHU5MDg5XFx1OTA4RlxcdTkwQThcXHU5MEFGXFx1OTBCMVxcdTkwQjVcXHU5MEUyXFx1OTBFNFxcdTYyNDhcXHU5MERCXFx1OTEwMlxcdTkxMTJcXHU5MTE5XFx1OTEzMlxcdTkxMzBcXHU5MTRBXFx1OTE1NlxcdTkxNThcXHU5MTYzXFx1OTE2NVxcdTkxNjlcXHU5MTczXFx1OTE3MlxcdTkxOEJcXHU5MTg5XFx1OTE4MlxcdTkxQTJcXHU5MUFCXFx1OTFBRlxcdTkxQUFcXHU5MUI1XFx1OTFCNFxcdTkxQkFcXHU5MUMwXFx1OTFDMVxcdTkxQzlcXHU5MUNCXFx1OTFEMFxcdTkxRDZcXHU5MURGXFx1OTFFMVxcdTkxREJcXHU5MUZDXFx1OTFGNVxcdTkxRjZcXHU5MjFFXFx1OTFGRlxcdTkyMTRcXHU5MjJDXFx1OTIxNVxcdTkyMTFcXHU5MjVFXFx1OTI1N1xcdTkyNDVcXHU5MjQ5XFx1OTI2NFxcdTkyNDhcXHU5Mjk1XFx1OTIzRlxcdTkyNEJcXHU5MjUwXFx1OTI5Q1xcdTkyOTZcXHU5MjkzXFx1OTI5QlxcdTkyNUFcXHU5MkNGXFx1OTJCOVxcdTkyQjdcXHU5MkU5XFx1OTMwRlxcdTkyRkFcXHU5MzQ0XFx1OTMyRVwiXSxcbiAgICAgIFtcImVmYTFcIiwgXCJcXHU5MzE5XFx1OTMyMlxcdTkzMUFcXHU5MzIzXFx1OTMzQVxcdTkzMzVcXHU5MzNCXFx1OTM1Q1xcdTkzNjBcXHU5MzdDXFx1OTM2RVxcdTkzNTZcXHU5M0IwXFx1OTNBQ1xcdTkzQURcXHU5Mzk0XFx1OTNCOVxcdTkzRDZcXHU5M0Q3XFx1OTNFOFxcdTkzRTVcXHU5M0Q4XFx1OTNDM1xcdTkzRERcXHU5M0QwXFx1OTNDOFxcdTkzRTRcXHU5NDFBXFx1OTQxNFxcdTk0MTNcXHU5NDAzXFx1OTQwN1xcdTk0MTBcXHU5NDM2XFx1OTQyQlxcdTk0MzVcXHU5NDIxXFx1OTQzQVxcdTk0NDFcXHU5NDUyXFx1OTQ0NFxcdTk0NUJcXHU5NDYwXFx1OTQ2MlxcdTk0NUVcXHU5NDZBXFx1OTIyOVxcdTk0NzBcXHU5NDc1XFx1OTQ3N1xcdTk0N0RcXHU5NDVBXFx1OTQ3Q1xcdTk0N0VcXHU5NDgxXFx1OTQ3RlxcdTk1ODJcXHU5NTg3XFx1OTU4QVxcdTk1OTRcXHU5NTk2XFx1OTU5OFxcdTk1OTlcXHU5NUEwXFx1OTVBOFxcdTk1QTdcXHU5NUFEXFx1OTVCQ1xcdTk1QkJcXHU5NUI5XFx1OTVCRVxcdTk1Q0FcXHU2RkY2XFx1OTVDM1xcdTk1Q0RcXHU5NUNDXFx1OTVENVxcdTk1RDRcXHU5NUQ2XFx1OTVEQ1xcdTk1RTFcXHU5NUU1XFx1OTVFMlxcdTk2MjFcXHU5NjI4XFx1OTYyRVxcdTk2MkZcXHU5NjQyXFx1OTY0Q1xcdTk2NEZcXHU5NjRCXFx1OTY3N1xcdTk2NUNcXHU5NjVFXCJdLFxuICAgICAgW1wiZjBhMVwiLCBcIlxcdTk2NURcXHU5NjVGXFx1OTY2NlxcdTk2NzJcXHU5NjZDXFx1OTY4RFxcdTk2OThcXHU5Njk1XFx1OTY5N1xcdTk2QUFcXHU5NkE3XFx1OTZCMVxcdTk2QjJcXHU5NkIwXFx1OTZCNFxcdTk2QjZcXHU5NkI4XFx1OTZCOVxcdTk2Q0VcXHU5NkNCXFx1OTZDOVxcdTk2Q0RcXHU4OTREXFx1OTZEQ1xcdTk3MERcXHU5NkQ1XFx1OTZGOVxcdTk3MDRcXHU5NzA2XFx1OTcwOFxcdTk3MTNcXHU5NzBFXFx1OTcxMVxcdTk3MEZcXHU5NzE2XFx1OTcxOVxcdTk3MjRcXHU5NzJBXFx1OTczMFxcdTk3MzlcXHU5NzNEXFx1OTczRVxcdTk3NDRcXHU5NzQ2XFx1OTc0OFxcdTk3NDJcXHU5NzQ5XFx1OTc1Q1xcdTk3NjBcXHU5NzY0XFx1OTc2NlxcdTk3NjhcXHU1MkQyXFx1OTc2QlxcdTk3NzFcXHU5Nzc5XFx1OTc4NVxcdTk3N0NcXHU5NzgxXFx1OTc3QVxcdTk3ODZcXHU5NzhCXFx1OTc4RlxcdTk3OTBcXHU5NzlDXFx1OTdBOFxcdTk3QTZcXHU5N0EzXFx1OTdCM1xcdTk3QjRcXHU5N0MzXFx1OTdDNlxcdTk3QzhcXHU5N0NCXFx1OTdEQ1xcdTk3RURcXHU5RjRGXFx1OTdGMlxcdTdBREZcXHU5N0Y2XFx1OTdGNVxcdTk4MEZcXHU5ODBDXFx1OTgzOFxcdTk4MjRcXHU5ODIxXFx1OTgzN1xcdTk4M0RcXHU5ODQ2XFx1OTg0RlxcdTk4NEJcXHU5ODZCXFx1OTg2RlxcdTk4NzBcIl0sXG4gICAgICBbXCJmMWExXCIsIFwiXFx1OTg3MVxcdTk4NzRcXHU5ODczXFx1OThBQVxcdTk4QUZcXHU5OEIxXFx1OThCNlxcdTk4QzRcXHU5OEMzXFx1OThDNlxcdTk4RTlcXHU5OEVCXFx1OTkwM1xcdTk5MDlcXHU5OTEyXFx1OTkxNFxcdTk5MThcXHU5OTIxXFx1OTkxRFxcdTk5MUVcXHU5OTI0XFx1OTkyMFxcdTk5MkNcXHU5OTJFXFx1OTkzRFxcdTk5M0VcXHU5OTQyXFx1OTk0OVxcdTk5NDVcXHU5OTUwXFx1OTk0QlxcdTk5NTFcXHU5OTUyXFx1OTk0Q1xcdTk5NTVcXHU5OTk3XFx1OTk5OFxcdTk5QTVcXHU5OUFEXFx1OTlBRVxcdTk5QkNcXHU5OURGXFx1OTlEQlxcdTk5RERcXHU5OUQ4XFx1OTlEMVxcdTk5RURcXHU5OUVFXFx1OTlGMVxcdTk5RjJcXHU5OUZCXFx1OTlGOFxcdTlBMDFcXHU5QTBGXFx1OUEwNVxcdTk5RTJcXHU5QTE5XFx1OUEyQlxcdTlBMzdcXHU5QTQ1XFx1OUE0MlxcdTlBNDBcXHU5QTQzXFx1OUEzRVxcdTlBNTVcXHU5QTREXFx1OUE1QlxcdTlBNTdcXHU5QTVGXFx1OUE2MlxcdTlBNjVcXHU5QTY0XFx1OUE2OVxcdTlBNkJcXHU5QTZBXFx1OUFBRFxcdTlBQjBcXHU5QUJDXFx1OUFDMFxcdTlBQ0ZcXHU5QUQxXFx1OUFEM1xcdTlBRDRcXHU5QURFXFx1OUFERlxcdTlBRTJcXHU5QUUzXFx1OUFFNlxcdTlBRUZcXHU5QUVCXFx1OUFFRVxcdTlBRjRcXHU5QUYxXFx1OUFGN1wiXSxcbiAgICAgIFtcImYyYTFcIiwgXCJcXHU5QUZCXFx1OUIwNlxcdTlCMThcXHU5QjFBXFx1OUIxRlxcdTlCMjJcXHU5QjIzXFx1OUIyNVxcdTlCMjdcXHU5QjI4XFx1OUIyOVxcdTlCMkFcXHU5QjJFXFx1OUIyRlxcdTlCMzJcXHU5QjQ0XFx1OUI0M1xcdTlCNEZcXHU5QjREXFx1OUI0RVxcdTlCNTFcXHU5QjU4XFx1OUI3NFxcdTlCOTNcXHU5QjgzXFx1OUI5MVxcdTlCOTZcXHU5Qjk3XFx1OUI5RlxcdTlCQTBcXHU5QkE4XFx1OUJCNFxcdTlCQzBcXHU5QkNBXFx1OUJCOVxcdTlCQzZcXHU5QkNGXFx1OUJEMVxcdTlCRDJcXHU5QkUzXFx1OUJFMlxcdTlCRTRcXHU5QkQ0XFx1OUJFMVxcdTlDM0FcXHU5QkYyXFx1OUJGMVxcdTlCRjBcXHU5QzE1XFx1OUMxNFxcdTlDMDlcXHU5QzEzXFx1OUMwQ1xcdTlDMDZcXHU5QzA4XFx1OUMxMlxcdTlDMEFcXHU5QzA0XFx1OUMyRVxcdTlDMUJcXHU5QzI1XFx1OUMyNFxcdTlDMjFcXHU5QzMwXFx1OUM0N1xcdTlDMzJcXHU5QzQ2XFx1OUMzRVxcdTlDNUFcXHU5QzYwXFx1OUM2N1xcdTlDNzZcXHU5Qzc4XFx1OUNFN1xcdTlDRUNcXHU5Q0YwXFx1OUQwOVxcdTlEMDhcXHU5Q0VCXFx1OUQwM1xcdTlEMDZcXHU5RDJBXFx1OUQyNlxcdTlEQUZcXHU5RDIzXFx1OUQxRlxcdTlENDRcXHU5RDE1XFx1OUQxMlxcdTlENDFcXHU5RDNGXFx1OUQzRVxcdTlENDZcXHU5RDQ4XCJdLFxuICAgICAgW1wiZjNhMVwiLCBcIlxcdTlENURcXHU5RDVFXFx1OUQ2NFxcdTlENTFcXHU5RDUwXFx1OUQ1OVxcdTlENzJcXHU5RDg5XFx1OUQ4N1xcdTlEQUJcXHU5RDZGXFx1OUQ3QVxcdTlEOUFcXHU5REE0XFx1OURBOVxcdTlEQjJcXHU5REM0XFx1OURDMVxcdTlEQkJcXHU5REI4XFx1OURCQVxcdTlEQzZcXHU5RENGXFx1OURDMlxcdTlERDlcXHU5REQzXFx1OURGOFxcdTlERTZcXHU5REVEXFx1OURFRlxcdTlERkRcXHU5RTFBXFx1OUUxQlxcdTlFMUVcXHU5RTc1XFx1OUU3OVxcdTlFN0RcXHU5RTgxXFx1OUU4OFxcdTlFOEJcXHU5RThDXFx1OUU5MlxcdTlFOTVcXHU5RTkxXFx1OUU5RFxcdTlFQTVcXHU5RUE5XFx1OUVCOFxcdTlFQUFcXHU5RUFEXFx1OTc2MVxcdTlFQ0NcXHU5RUNFXFx1OUVDRlxcdTlFRDBcXHU5RUQ0XFx1OUVEQ1xcdTlFREVcXHU5RUREXFx1OUVFMFxcdTlFRTVcXHU5RUU4XFx1OUVFRlxcdTlFRjRcXHU5RUY2XFx1OUVGN1xcdTlFRjlcXHU5RUZCXFx1OUVGQ1xcdTlFRkRcXHU5RjA3XFx1OUYwOFxcdTc2QjdcXHU5RjE1XFx1OUYyMVxcdTlGMkNcXHU5RjNFXFx1OUY0QVxcdTlGNTJcXHU5RjU0XFx1OUY2M1xcdTlGNUZcXHU5RjYwXFx1OUY2MVxcdTlGNjZcXHU5RjY3XFx1OUY2Q1xcdTlGNkFcXHU5Rjc3XFx1OUY3MlxcdTlGNzZcXHU5Rjk1XFx1OUY5Q1xcdTlGQTBcIl0sXG4gICAgICBbXCJmNGExXCIsIFwiXFx1NTgyRlxcdTY5QzdcXHU5MDU5XFx1NzQ2NFxcdTUxRENcXHU3MTk5XCJdLFxuICAgICAgW1wiZjlhMVwiLCBcIlxcdTdFOEFcXHU4OTFDXFx1OTM0OFxcdTkyODhcXHU4NERDXFx1NEZDOVxcdTcwQkJcXHU2NjMxXFx1NjhDOFxcdTkyRjlcXHU2NkZCXFx1NUY0NVxcdTRFMjhcXHU0RUUxXFx1NEVGQ1xcdTRGMDBcXHU0RjAzXFx1NEYzOVxcdTRGNTZcXHU0RjkyXFx1NEY4QVxcdTRGOUFcXHU0Rjk0XFx1NEZDRFxcdTUwNDBcXHU1MDIyXFx1NEZGRlxcdTUwMUVcXHU1MDQ2XFx1NTA3MFxcdTUwNDJcXHU1MDk0XFx1NTBGNFxcdTUwRDhcXHU1MTRBXFx1NTE2NFxcdTUxOURcXHU1MUJFXFx1NTFFQ1xcdTUyMTVcXHU1MjlDXFx1NTJBNlxcdTUyQzBcXHU1MkRCXFx1NTMwMFxcdTUzMDdcXHU1MzI0XFx1NTM3MlxcdTUzOTNcXHU1M0IyXFx1NTNERFxcdUZBMEVcXHU1NDlDXFx1NTQ4QVxcdTU0QTlcXHU1NEZGXFx1NTU4NlxcdTU3NTlcXHU1NzY1XFx1NTdBQ1xcdTU3QzhcXHU1N0M3XFx1RkEwRlxcdUZBMTBcXHU1ODlFXFx1NThCMlxcdTU5MEJcXHU1OTUzXFx1NTk1QlxcdTU5NURcXHU1OTYzXFx1NTlBNFxcdTU5QkFcXHU1QjU2XFx1NUJDMFxcdTc1MkZcXHU1QkQ4XFx1NUJFQ1xcdTVDMUVcXHU1Q0E2XFx1NUNCQVxcdTVDRjVcXHU1RDI3XFx1NUQ1M1xcdUZBMTFcXHU1RDQyXFx1NUQ2RFxcdTVEQjhcXHU1REI5XFx1NUREMFxcdTVGMjFcXHU1RjM0XFx1NUY2N1xcdTVGQjdcIl0sXG4gICAgICBbXCJmYWExXCIsIFwiXFx1NUZERVxcdTYwNURcXHU2MDg1XFx1NjA4QVxcdTYwREVcXHU2MEQ1XFx1NjEyMFxcdTYwRjJcXHU2MTExXFx1NjEzN1xcdTYxMzBcXHU2MTk4XFx1NjIxM1xcdTYyQTZcXHU2M0Y1XFx1NjQ2MFxcdTY0OURcXHU2NENFXFx1NjU0RVxcdTY2MDBcXHU2NjE1XFx1NjYzQlxcdTY2MDlcXHU2NjJFXFx1NjYxRVxcdTY2MjRcXHU2NjY1XFx1NjY1N1xcdTY2NTlcXHVGQTEyXFx1NjY3M1xcdTY2OTlcXHU2NkEwXFx1NjZCMlxcdTY2QkZcXHU2NkZBXFx1NjcwRVxcdUY5MjlcXHU2NzY2XFx1NjdCQlxcdTY4NTJcXHU2N0MwXFx1NjgwMVxcdTY4NDRcXHU2OENGXFx1RkExM1xcdTY5NjhcXHVGQTE0XFx1Njk5OFxcdTY5RTJcXHU2QTMwXFx1NkE2QlxcdTZBNDZcXHU2QTczXFx1NkE3RVxcdTZBRTJcXHU2QUU0XFx1NkJENlxcdTZDM0ZcXHU2QzVDXFx1NkM4NlxcdTZDNkZcXHU2Q0RBXFx1NkQwNFxcdTZEODdcXHU2RDZGXFx1NkQ5NlxcdTZEQUNcXHU2RENGXFx1NkRGOFxcdTZERjJcXHU2REZDXFx1NkUzOVxcdTZFNUNcXHU2RTI3XFx1NkUzQ1xcdTZFQkZcXHU2Rjg4XFx1NkZCNVxcdTZGRjVcXHU3MDA1XFx1NzAwN1xcdTcwMjhcXHU3MDg1XFx1NzBBQlxcdTcxMEZcXHU3MTA0XFx1NzE1Q1xcdTcxNDZcXHU3MTQ3XFx1RkExNVxcdTcxQzFcXHU3MUZFXFx1NzJCMVwiXSxcbiAgICAgIFtcImZiYTFcIiwgXCJcXHU3MkJFXFx1NzMyNFxcdUZBMTZcXHU3Mzc3XFx1NzNCRFxcdTczQzlcXHU3M0Q2XFx1NzNFM1xcdTczRDJcXHU3NDA3XFx1NzNGNVxcdTc0MjZcXHU3NDJBXFx1NzQyOVxcdTc0MkVcXHU3NDYyXFx1NzQ4OVxcdTc0OUZcXHU3NTAxXFx1NzU2RlxcdTc2ODJcXHU3NjlDXFx1NzY5RVxcdTc2OUJcXHU3NkE2XFx1RkExN1xcdTc3NDZcXHU1MkFGXFx1NzgyMVxcdTc4NEVcXHU3ODY0XFx1Nzg3QVxcdTc5MzBcXHVGQTE4XFx1RkExOVxcdUZBMUFcXHU3OTk0XFx1RkExQlxcdTc5OUJcXHU3QUQxXFx1N0FFN1xcdUZBMUNcXHU3QUVCXFx1N0I5RVxcdUZBMURcXHU3RDQ4XFx1N0Q1Q1xcdTdEQjdcXHU3REEwXFx1N0RENlxcdTdFNTJcXHU3RjQ3XFx1N0ZBMVxcdUZBMUVcXHU4MzAxXFx1ODM2MlxcdTgzN0ZcXHU4M0M3XFx1ODNGNlxcdTg0NDhcXHU4NEI0XFx1ODU1M1xcdTg1NTlcXHU4NTZCXFx1RkExRlxcdTg1QjBcXHVGQTIwXFx1RkEyMVxcdTg4MDdcXHU4OEY1XFx1OEExMlxcdThBMzdcXHU4QTc5XFx1OEFBN1xcdThBQkVcXHU4QURGXFx1RkEyMlxcdThBRjZcXHU4QjUzXFx1OEI3RlxcdThDRjBcXHU4Q0Y0XFx1OEQxMlxcdThENzZcXHVGQTIzXFx1OEVDRlxcdUZBMjRcXHVGQTI1XFx1OTA2N1xcdTkwREVcXHVGQTI2XFx1OTExNVxcdTkxMjdcXHU5MURBXCJdLFxuICAgICAgW1wiZmNhMVwiLCBcIlxcdTkxRDdcXHU5MURFXFx1OTFFRFxcdTkxRUVcXHU5MUU0XFx1OTFFNVxcdTkyMDZcXHU5MjEwXFx1OTIwQVxcdTkyM0FcXHU5MjQwXFx1OTIzQ1xcdTkyNEVcXHU5MjU5XFx1OTI1MVxcdTkyMzlcXHU5MjY3XFx1OTJBN1xcdTkyNzdcXHU5Mjc4XFx1OTJFN1xcdTkyRDdcXHU5MkQ5XFx1OTJEMFxcdUZBMjdcXHU5MkQ1XFx1OTJFMFxcdTkyRDNcXHU5MzI1XFx1OTMyMVxcdTkyRkJcXHVGQTI4XFx1OTMxRVxcdTkyRkZcXHU5MzFEXFx1OTMwMlxcdTkzNzBcXHU5MzU3XFx1OTNBNFxcdTkzQzZcXHU5M0RFXFx1OTNGOFxcdTk0MzFcXHU5NDQ1XFx1OTQ0OFxcdTk1OTJcXHVGOURDXFx1RkEyOVxcdTk2OURcXHU5NkFGXFx1OTczM1xcdTk3M0JcXHU5NzQzXFx1OTc0RFxcdTk3NEZcXHU5NzUxXFx1OTc1NVxcdTk4NTdcXHU5ODY1XFx1RkEyQVxcdUZBMkJcXHU5OTI3XFx1RkEyQ1xcdTk5OUVcXHU5QTRFXFx1OUFEOVxcdTlBRENcXHU5Qjc1XFx1OUI3MlxcdTlCOEZcXHU5QkIxXFx1OUJCQlxcdTlDMDBcXHU5RDcwXFx1OUQ2QlxcdUZBMkRcXHU5RTE5XFx1OUVEMVwiXSxcbiAgICAgIFtcImZjZjFcIiwgXCJcXHUyMTcwXCIsIDksIFwiXFx1RkZFMlxcdUZGRTRcXHVGRjA3XFx1RkYwMlwiXSxcbiAgICAgIFtcIjhmYTJhZlwiLCBcIlxcdTAyRDhcXHUwMkM3XFx4QjhcXHUwMkQ5XFx1MDJERFxceEFGXFx1MDJEQlxcdTAyREFcXHVGRjVFXFx1MDM4NFxcdTAzODVcIl0sXG4gICAgICBbXCI4ZmEyYzJcIiwgXCJcXHhBMVxceEE2XFx4QkZcIl0sXG4gICAgICBbXCI4ZmEyZWJcIiwgXCJcXHhCQVxceEFBXFx4QTlcXHhBRVxcdTIxMjJcXHhBNFxcdTIxMTZcIl0sXG4gICAgICBbXCI4ZmE2ZTFcIiwgXCJcXHUwMzg2XFx1MDM4OFxcdTAzODlcXHUwMzhBXFx1MDNBQVwiXSxcbiAgICAgIFtcIjhmYTZlN1wiLCBcIlxcdTAzOENcIl0sXG4gICAgICBbXCI4ZmE2ZTlcIiwgXCJcXHUwMzhFXFx1MDNBQlwiXSxcbiAgICAgIFtcIjhmYTZlY1wiLCBcIlxcdTAzOEZcIl0sXG4gICAgICBbXCI4ZmE2ZjFcIiwgXCJcXHUwM0FDXFx1MDNBRFxcdTAzQUVcXHUwM0FGXFx1MDNDQVxcdTAzOTBcXHUwM0NDXFx1MDNDMlxcdTAzQ0RcXHUwM0NCXFx1MDNCMFxcdTAzQ0VcIl0sXG4gICAgICBbXCI4ZmE3YzJcIiwgXCJcXHUwNDAyXCIsIDEwLCBcIlxcdTA0MEVcXHUwNDBGXCJdLFxuICAgICAgW1wiOGZhN2YyXCIsIFwiXFx1MDQ1MlwiLCAxMCwgXCJcXHUwNDVFXFx1MDQ1RlwiXSxcbiAgICAgIFtcIjhmYTlhMVwiLCBcIlxceEM2XFx1MDExMFwiXSxcbiAgICAgIFtcIjhmYTlhNFwiLCBcIlxcdTAxMjZcIl0sXG4gICAgICBbXCI4ZmE5YTZcIiwgXCJcXHUwMTMyXCJdLFxuICAgICAgW1wiOGZhOWE4XCIsIFwiXFx1MDE0MVxcdTAxM0ZcIl0sXG4gICAgICBbXCI4ZmE5YWJcIiwgXCJcXHUwMTRBXFx4RDhcXHUwMTUyXCJdLFxuICAgICAgW1wiOGZhOWFmXCIsIFwiXFx1MDE2NlxceERFXCJdLFxuICAgICAgW1wiOGZhOWMxXCIsIFwiXFx4RTZcXHUwMTExXFx4RjBcXHUwMTI3XFx1MDEzMVxcdTAxMzNcXHUwMTM4XFx1MDE0MlxcdTAxNDBcXHUwMTQ5XFx1MDE0QlxceEY4XFx1MDE1M1xceERGXFx1MDE2N1xceEZFXCJdLFxuICAgICAgW1wiOGZhYWExXCIsIFwiXFx4QzFcXHhDMFxceEM0XFx4QzJcXHUwMTAyXFx1MDFDRFxcdTAxMDBcXHUwMTA0XFx4QzVcXHhDM1xcdTAxMDZcXHUwMTA4XFx1MDEwQ1xceEM3XFx1MDEwQVxcdTAxMEVcXHhDOVxceEM4XFx4Q0JcXHhDQVxcdTAxMUFcXHUwMTE2XFx1MDExMlxcdTAxMThcIl0sXG4gICAgICBbXCI4ZmFhYmFcIiwgXCJcXHUwMTFDXFx1MDExRVxcdTAxMjJcXHUwMTIwXFx1MDEyNFxceENEXFx4Q0NcXHhDRlxceENFXFx1MDFDRlxcdTAxMzBcXHUwMTJBXFx1MDEyRVxcdTAxMjhcXHUwMTM0XFx1MDEzNlxcdTAxMzlcXHUwMTNEXFx1MDEzQlxcdTAxNDNcXHUwMTQ3XFx1MDE0NVxceEQxXFx4RDNcXHhEMlxceEQ2XFx4RDRcXHUwMUQxXFx1MDE1MFxcdTAxNENcXHhENVxcdTAxNTRcXHUwMTU4XFx1MDE1NlxcdTAxNUFcXHUwMTVDXFx1MDE2MFxcdTAxNUVcXHUwMTY0XFx1MDE2MlxceERBXFx4RDlcXHhEQ1xceERCXFx1MDE2Q1xcdTAxRDNcXHUwMTcwXFx1MDE2QVxcdTAxNzJcXHUwMTZFXFx1MDE2OFxcdTAxRDdcXHUwMURCXFx1MDFEOVxcdTAxRDVcXHUwMTc0XFx4RERcXHUwMTc4XFx1MDE3NlxcdTAxNzlcXHUwMTdEXFx1MDE3QlwiXSxcbiAgICAgIFtcIjhmYWJhMVwiLCBcIlxceEUxXFx4RTBcXHhFNFxceEUyXFx1MDEwM1xcdTAxQ0VcXHUwMTAxXFx1MDEwNVxceEU1XFx4RTNcXHUwMTA3XFx1MDEwOVxcdTAxMERcXHhFN1xcdTAxMEJcXHUwMTBGXFx4RTlcXHhFOFxceEVCXFx4RUFcXHUwMTFCXFx1MDExN1xcdTAxMTNcXHUwMTE5XFx1MDFGNVxcdTAxMURcXHUwMTFGXCJdLFxuICAgICAgW1wiOGZhYmJkXCIsIFwiXFx1MDEyMVxcdTAxMjVcXHhFRFxceEVDXFx4RUZcXHhFRVxcdTAxRDBcIl0sXG4gICAgICBbXCI4ZmFiYzVcIiwgXCJcXHUwMTJCXFx1MDEyRlxcdTAxMjlcXHUwMTM1XFx1MDEzN1xcdTAxM0FcXHUwMTNFXFx1MDEzQ1xcdTAxNDRcXHUwMTQ4XFx1MDE0NlxceEYxXFx4RjNcXHhGMlxceEY2XFx4RjRcXHUwMUQyXFx1MDE1MVxcdTAxNERcXHhGNVxcdTAxNTVcXHUwMTU5XFx1MDE1N1xcdTAxNUJcXHUwMTVEXFx1MDE2MVxcdTAxNUZcXHUwMTY1XFx1MDE2M1xceEZBXFx4RjlcXHhGQ1xceEZCXFx1MDE2RFxcdTAxRDRcXHUwMTcxXFx1MDE2QlxcdTAxNzNcXHUwMTZGXFx1MDE2OVxcdTAxRDhcXHUwMURDXFx1MDFEQVxcdTAxRDZcXHUwMTc1XFx4RkRcXHhGRlxcdTAxNzdcXHUwMTdBXFx1MDE3RVxcdTAxN0NcIl0sXG4gICAgICBbXCI4ZmIwYTFcIiwgXCJcXHU0RTAyXFx1NEUwNFxcdTRFMDVcXHU0RTBDXFx1NEUxMlxcdTRFMUZcXHU0RTIzXFx1NEUyNFxcdTRFMjhcXHU0RTJCXFx1NEUyRVxcdTRFMkZcXHU0RTMwXFx1NEUzNVxcdTRFNDBcXHU0RTQxXFx1NEU0NFxcdTRFNDdcXHU0RTUxXFx1NEU1QVxcdTRFNUNcXHU0RTYzXFx1NEU2OFxcdTRFNjlcXHU0RTc0XFx1NEU3NVxcdTRFNzlcXHU0RTdGXFx1NEU4RFxcdTRFOTZcXHU0RTk3XFx1NEU5RFxcdTRFQUZcXHU0RUI5XFx1NEVDM1xcdTRFRDBcXHU0RURBXFx1NEVEQlxcdTRFRTBcXHU0RUUxXFx1NEVFMlxcdTRFRThcXHU0RUVGXFx1NEVGMVxcdTRFRjNcXHU0RUY1XFx1NEVGRFxcdTRFRkVcXHU0RUZGXFx1NEYwMFxcdTRGMDJcXHU0RjAzXFx1NEYwOFxcdTRGMEJcXHU0RjBDXFx1NEYxMlxcdTRGMTVcXHU0RjE2XFx1NEYxN1xcdTRGMTlcXHU0RjJFXFx1NEYzMVxcdTRGNjBcXHU0RjMzXFx1NEYzNVxcdTRGMzdcXHU0RjM5XFx1NEYzQlxcdTRGM0VcXHU0RjQwXFx1NEY0MlxcdTRGNDhcXHU0RjQ5XFx1NEY0QlxcdTRGNENcXHU0RjUyXFx1NEY1NFxcdTRGNTZcXHU0RjU4XFx1NEY1RlxcdTRGNjNcXHU0RjZBXFx1NEY2Q1xcdTRGNkVcXHU0RjcxXFx1NEY3N1xcdTRGNzhcXHU0Rjc5XFx1NEY3QVxcdTRGN0RcXHU0RjdFXFx1NEY4MVxcdTRGODJcXHU0Rjg0XCJdLFxuICAgICAgW1wiOGZiMWExXCIsIFwiXFx1NEY4NVxcdTRGODlcXHU0RjhBXFx1NEY4Q1xcdTRGOEVcXHU0RjkwXFx1NEY5MlxcdTRGOTNcXHU0Rjk0XFx1NEY5N1xcdTRGOTlcXHU0RjlBXFx1NEY5RVxcdTRGOUZcXHU0RkIyXFx1NEZCN1xcdTRGQjlcXHU0RkJCXFx1NEZCQ1xcdTRGQkRcXHU0RkJFXFx1NEZDMFxcdTRGQzFcXHU0RkM1XFx1NEZDNlxcdTRGQzhcXHU0RkM5XFx1NEZDQlxcdTRGQ0NcXHU0RkNEXFx1NEZDRlxcdTRGRDJcXHU0RkRDXFx1NEZFMFxcdTRGRTJcXHU0RkYwXFx1NEZGMlxcdTRGRkNcXHU0RkZEXFx1NEZGRlxcdTUwMDBcXHU1MDAxXFx1NTAwNFxcdTUwMDdcXHU1MDBBXFx1NTAwQ1xcdTUwMEVcXHU1MDEwXFx1NTAxM1xcdTUwMTdcXHU1MDE4XFx1NTAxQlxcdTUwMUNcXHU1MDFEXFx1NTAxRVxcdTUwMjJcXHU1MDI3XFx1NTAyRVxcdTUwMzBcXHU1MDMyXFx1NTAzM1xcdTUwMzVcXHU1MDQwXFx1NTA0MVxcdTUwNDJcXHU1MDQ1XFx1NTA0NlxcdTUwNEFcXHU1MDRDXFx1NTA0RVxcdTUwNTFcXHU1MDUyXFx1NTA1M1xcdTUwNTdcXHU1MDU5XFx1NTA1RlxcdTUwNjBcXHU1MDYyXFx1NTA2M1xcdTUwNjZcXHU1MDY3XFx1NTA2QVxcdTUwNkRcXHU1MDcwXFx1NTA3MVxcdTUwM0JcXHU1MDgxXFx1NTA4M1xcdTUwODRcXHU1MDg2XFx1NTA4QVxcdTUwOEVcXHU1MDhGXFx1NTA5MFwiXSxcbiAgICAgIFtcIjhmYjJhMVwiLCBcIlxcdTUwOTJcXHU1MDkzXFx1NTA5NFxcdTUwOTZcXHU1MDlCXFx1NTA5Q1xcdTUwOUVcIiwgNCwgXCJcXHU1MEFBXFx1NTBBRlxcdTUwQjBcXHU1MEI5XFx1NTBCQVxcdTUwQkRcXHU1MEMwXFx1NTBDM1xcdTUwQzRcXHU1MEM3XFx1NTBDQ1xcdTUwQ0VcXHU1MEQwXFx1NTBEM1xcdTUwRDRcXHU1MEQ4XFx1NTBEQ1xcdTUwRERcXHU1MERGXFx1NTBFMlxcdTUwRTRcXHU1MEU2XFx1NTBFOFxcdTUwRTlcXHU1MEVGXFx1NTBGMVxcdTUwRjZcXHU1MEZBXFx1NTBGRVxcdTUxMDNcXHU1MTA2XFx1NTEwN1xcdTUxMDhcXHU1MTBCXFx1NTEwQ1xcdTUxMERcXHU1MTBFXFx1NTBGMlxcdTUxMTBcXHU1MTE3XFx1NTExOVxcdTUxMUJcXHU1MTFDXFx1NTExRFxcdTUxMUVcXHU1MTIzXFx1NTEyN1xcdTUxMjhcXHU1MTJDXFx1NTEyRFxcdTUxMkZcXHU1MTMxXFx1NTEzM1xcdTUxMzRcXHU1MTM1XFx1NTEzOFxcdTUxMzlcXHU1MTQyXFx1NTE0QVxcdTUxNEZcXHU1MTUzXFx1NTE1NVxcdTUxNTdcXHU1MTU4XFx1NTE1RlxcdTUxNjRcXHU1MTY2XFx1NTE3RVxcdTUxODNcXHU1MTg0XFx1NTE4QlxcdTUxOEVcXHU1MTk4XFx1NTE5RFxcdTUxQTFcXHU1MUEzXFx1NTFBRFxcdTUxQjhcXHU1MUJBXFx1NTFCQ1xcdTUxQkVcXHU1MUJGXFx1NTFDMlwiXSxcbiAgICAgIFtcIjhmYjNhMVwiLCBcIlxcdTUxQzhcXHU1MUNGXFx1NTFEMVxcdTUxRDJcXHU1MUQzXFx1NTFENVxcdTUxRDhcXHU1MURFXFx1NTFFMlxcdTUxRTVcXHU1MUVFXFx1NTFGMlxcdTUxRjNcXHU1MUY0XFx1NTFGN1xcdTUyMDFcXHU1MjAyXFx1NTIwNVxcdTUyMTJcXHU1MjEzXFx1NTIxNVxcdTUyMTZcXHU1MjE4XFx1NTIyMlxcdTUyMjhcXHU1MjMxXFx1NTIzMlxcdTUyMzVcXHU1MjNDXFx1NTI0NVxcdTUyNDlcXHU1MjU1XFx1NTI1N1xcdTUyNThcXHU1MjVBXFx1NTI1Q1xcdTUyNUZcXHU1MjYwXFx1NTI2MVxcdTUyNjZcXHU1MjZFXFx1NTI3N1xcdTUyNzhcXHU1Mjc5XFx1NTI4MFxcdTUyODJcXHU1Mjg1XFx1NTI4QVxcdTUyOENcXHU1MjkzXFx1NTI5NVxcdTUyOTZcXHU1Mjk3XFx1NTI5OFxcdTUyOUFcXHU1MjlDXFx1NTJBNFxcdTUyQTVcXHU1MkE2XFx1NTJBN1xcdTUyQUZcXHU1MkIwXFx1NTJCNlxcdTUyQjdcXHU1MkI4XFx1NTJCQVxcdTUyQkJcXHU1MkJEXFx1NTJDMFxcdTUyQzRcXHU1MkM2XFx1NTJDOFxcdTUyQ0NcXHU1MkNGXFx1NTJEMVxcdTUyRDRcXHU1MkQ2XFx1NTJEQlxcdTUyRENcXHU1MkUxXFx1NTJFNVxcdTUyRThcXHU1MkU5XFx1NTJFQVxcdTUyRUNcXHU1MkYwXFx1NTJGMVxcdTUyRjRcXHU1MkY2XFx1NTJGN1xcdTUzMDBcXHU1MzAzXFx1NTMwQVxcdTUzMEJcIl0sXG4gICAgICBbXCI4ZmI0YTFcIiwgXCJcXHU1MzBDXFx1NTMxMVxcdTUzMTNcXHU1MzE4XFx1NTMxQlxcdTUzMUNcXHU1MzFFXFx1NTMxRlxcdTUzMjVcXHU1MzI3XFx1NTMyOFxcdTUzMjlcXHU1MzJCXFx1NTMyQ1xcdTUzMkRcXHU1MzMwXFx1NTMzMlxcdTUzMzVcXHU1MzNDXFx1NTMzRFxcdTUzM0VcXHU1MzQyXFx1NTM0Q1xcdTUzNEJcXHU1MzU5XFx1NTM1QlxcdTUzNjFcXHU1MzYzXFx1NTM2NVxcdTUzNkNcXHU1MzZEXFx1NTM3MlxcdTUzNzlcXHU1MzdFXFx1NTM4M1xcdTUzODdcXHU1Mzg4XFx1NTM4RVxcdTUzOTNcXHU1Mzk0XFx1NTM5OVxcdTUzOURcXHU1M0ExXFx1NTNBNFxcdTUzQUFcXHU1M0FCXFx1NTNBRlxcdTUzQjJcXHU1M0I0XFx1NTNCNVxcdTUzQjdcXHU1M0I4XFx1NTNCQVxcdTUzQkRcXHU1M0MwXFx1NTNDNVxcdTUzQ0ZcXHU1M0QyXFx1NTNEM1xcdTUzRDVcXHU1M0RBXFx1NTNERFxcdTUzREVcXHU1M0UwXFx1NTNFNlxcdTUzRTdcXHU1M0Y1XFx1NTQwMlxcdTU0MTNcXHU1NDFBXFx1NTQyMVxcdTU0MjdcXHU1NDI4XFx1NTQyQVxcdTU0MkZcXHU1NDMxXFx1NTQzNFxcdTU0MzVcXHU1NDQzXFx1NTQ0NFxcdTU0NDdcXHU1NDREXFx1NTQ0RlxcdTU0NUVcXHU1NDYyXFx1NTQ2NFxcdTU0NjZcXHU1NDY3XFx1NTQ2OVxcdTU0NkJcXHU1NDZEXFx1NTQ2RVxcdTU0NzRcXHU1NDdGXCJdLFxuICAgICAgW1wiOGZiNWExXCIsIFwiXFx1NTQ4MVxcdTU0ODNcXHU1NDg1XFx1NTQ4OFxcdTU0ODlcXHU1NDhEXFx1NTQ5MVxcdTU0OTVcXHU1NDk2XFx1NTQ5Q1xcdTU0OUZcXHU1NEExXFx1NTRBNlxcdTU0QTdcXHU1NEE5XFx1NTRBQVxcdTU0QURcXHU1NEFFXFx1NTRCMVxcdTU0QjdcXHU1NEI5XFx1NTRCQVxcdTU0QkJcXHU1NEJGXFx1NTRDNlxcdTU0Q0FcXHU1NENEXFx1NTRDRVxcdTU0RTBcXHU1NEVBXFx1NTRFQ1xcdTU0RUZcXHU1NEY2XFx1NTRGQ1xcdTU0RkVcXHU1NEZGXFx1NTUwMFxcdTU1MDFcXHU1NTA1XFx1NTUwOFxcdTU1MDlcXHU1NTBDXFx1NTUwRFxcdTU1MEVcXHU1NTE1XFx1NTUyQVxcdTU1MkJcXHU1NTMyXFx1NTUzNVxcdTU1MzZcXHU1NTNCXFx1NTUzQ1xcdTU1M0RcXHU1NTQxXFx1NTU0N1xcdTU1NDlcXHU1NTRBXFx1NTU0RFxcdTU1NTBcXHU1NTUxXFx1NTU1OFxcdTU1NUFcXHU1NTVCXFx1NTU1RVxcdTU1NjBcXHU1NTYxXFx1NTU2NFxcdTU1NjZcXHU1NTdGXFx1NTU4MVxcdTU1ODJcXHU1NTg2XFx1NTU4OFxcdTU1OEVcXHU1NThGXFx1NTU5MVxcdTU1OTJcXHU1NTkzXFx1NTU5NFxcdTU1OTdcXHU1NUEzXFx1NTVBNFxcdTU1QURcXHU1NUIyXFx1NTVCRlxcdTU1QzFcXHU1NUMzXFx1NTVDNlxcdTU1QzlcXHU1NUNCXFx1NTVDQ1xcdTU1Q0VcXHU1NUQxXFx1NTVEMlwiXSxcbiAgICAgIFtcIjhmYjZhMVwiLCBcIlxcdTU1RDNcXHU1NUQ3XFx1NTVEOFxcdTU1REJcXHU1NURFXFx1NTVFMlxcdTU1RTlcXHU1NUY2XFx1NTVGRlxcdTU2MDVcXHU1NjA4XFx1NTYwQVxcdTU2MERcIiwgNSwgXCJcXHU1NjE5XFx1NTYyQ1xcdTU2MzBcXHU1NjMzXFx1NTYzNVxcdTU2MzdcXHU1NjM5XFx1NTYzQlxcdTU2M0NcXHU1NjNEXFx1NTYzRlxcdTU2NDBcXHU1NjQxXFx1NTY0M1xcdTU2NDRcXHU1NjQ2XFx1NTY0OVxcdTU2NEJcXHU1NjREXFx1NTY0RlxcdTU2NTRcXHU1NjVFXFx1NTY2MFxcdTU2NjFcXHU1NjYyXFx1NTY2M1xcdTU2NjZcXHU1NjY5XFx1NTY2RFxcdTU2NkZcXHU1NjcxXFx1NTY3MlxcdTU2NzVcXHU1Njg0XFx1NTY4NVxcdTU2ODhcXHU1NjhCXFx1NTY4Q1xcdTU2OTVcXHU1Njk5XFx1NTY5QVxcdTU2OURcXHU1NjlFXFx1NTY5RlxcdTU2QTZcXHU1NkE3XFx1NTZBOFxcdTU2QTlcXHU1NkFCXFx1NTZBQ1xcdTU2QURcXHU1NkIxXFx1NTZCM1xcdTU2QjdcXHU1NkJFXFx1NTZDNVxcdTU2QzlcXHU1NkNBXFx1NTZDQlxcdTU2Q0ZcXHU1NkQwXFx1NTZDQ1xcdTU2Q0RcXHU1NkQ5XFx1NTZEQ1xcdTU2RERcXHU1NkRGXFx1NTZFMVxcdTU2RTRcIiwgNCwgXCJcXHU1NkYxXFx1NTZFQlxcdTU2RURcIl0sXG4gICAgICBbXCI4ZmI3YTFcIiwgXCJcXHU1NkY2XFx1NTZGN1xcdTU3MDFcXHU1NzAyXFx1NTcwN1xcdTU3MEFcXHU1NzBDXFx1NTcxMVxcdTU3MTVcXHU1NzFBXFx1NTcxQlxcdTU3MURcXHU1NzIwXFx1NTcyMlxcdTU3MjNcXHU1NzI0XFx1NTcyNVxcdTU3MjlcXHU1NzJBXFx1NTcyQ1xcdTU3MkVcXHU1NzJGXFx1NTczM1xcdTU3MzRcXHU1NzNEXFx1NTczRVxcdTU3M0ZcXHU1NzQ1XFx1NTc0NlxcdTU3NENcXHU1NzREXFx1NTc1MlxcdTU3NjJcXHU1NzY1XFx1NTc2N1xcdTU3NjhcXHU1NzZCXFx1NTc2RFwiLCA0LCBcIlxcdTU3NzNcXHU1Nzc0XFx1NTc3NVxcdTU3NzdcXHU1Nzc5XFx1NTc3QVxcdTU3N0JcXHU1NzdDXFx1NTc3RVxcdTU3ODFcXHU1NzgzXFx1NTc4Q1xcdTU3OTRcXHU1Nzk3XFx1NTc5OVxcdTU3OUFcXHU1NzlDXFx1NTc5RFxcdTU3OUVcXHU1NzlGXFx1NTdBMVxcdTU3OTVcXHU1N0E3XFx1NTdBOFxcdTU3QTlcXHU1N0FDXFx1NTdCOFxcdTU3QkRcXHU1N0M3XFx1NTdDOFxcdTU3Q0NcXHU1N0NGXFx1NTdENVxcdTU3RERcXHU1N0RFXFx1NTdFNFxcdTU3RTZcXHU1N0U3XFx1NTdFOVxcdTU3RURcXHU1N0YwXFx1NTdGNVxcdTU3RjZcXHU1N0Y4XFx1NTdGRFxcdTU3RkVcXHU1N0ZGXFx1NTgwM1xcdTU4MDRcXHU1ODA4XFx1NTgwOVxcdTU3RTFcIl0sXG4gICAgICBbXCI4ZmI4YTFcIiwgXCJcXHU1ODBDXFx1NTgwRFxcdTU4MUJcXHU1ODFFXFx1NTgxRlxcdTU4MjBcXHU1ODI2XFx1NTgyN1xcdTU4MkRcXHU1ODMyXFx1NTgzOVxcdTU4M0ZcXHU1ODQ5XFx1NTg0Q1xcdTU4NERcXHU1ODRGXFx1NTg1MFxcdTU4NTVcXHU1ODVGXFx1NTg2MVxcdTU4NjRcXHU1ODY3XFx1NTg2OFxcdTU4NzhcXHU1ODdDXFx1NTg3RlxcdTU4ODBcXHU1ODgxXFx1NTg4N1xcdTU4ODhcXHU1ODg5XFx1NTg4QVxcdTU4OENcXHU1ODhEXFx1NTg4RlxcdTU4OTBcXHU1ODk0XFx1NTg5NlxcdTU4OURcXHU1OEEwXFx1NThBMVxcdTU4QTJcXHU1OEE2XFx1NThBOVxcdTU4QjFcXHU1OEIyXFx1NThDNFxcdTU4QkNcXHU1OEMyXFx1NThDOFxcdTU4Q0RcXHU1OENFXFx1NThEMFxcdTU4RDJcXHU1OEQ0XFx1NThENlxcdTU4REFcXHU1OEREXFx1NThFMVxcdTU4RTJcXHU1OEU5XFx1NThGM1xcdTU5MDVcXHU1OTA2XFx1NTkwQlxcdTU5MENcXHU1OTEyXFx1NTkxM1xcdTU5MTRcXHU4NjQxXFx1NTkxRFxcdTU5MjFcXHU1OTIzXFx1NTkyNFxcdTU5MjhcXHU1OTJGXFx1NTkzMFxcdTU5MzNcXHU1OTM1XFx1NTkzNlxcdTU5M0ZcXHU1OTQzXFx1NTk0NlxcdTU5NTJcXHU1OTUzXFx1NTk1OVxcdTU5NUJcXHU1OTVEXFx1NTk1RVxcdTU5NUZcXHU1OTYxXFx1NTk2M1xcdTU5NkJcXHU1OTZEXCJdLFxuICAgICAgW1wiOGZiOWExXCIsIFwiXFx1NTk2RlxcdTU5NzJcXHU1OTc1XFx1NTk3NlxcdTU5NzlcXHU1OTdCXFx1NTk3Q1xcdTU5OEJcXHU1OThDXFx1NTk4RVxcdTU5OTJcXHU1OTk1XFx1NTk5N1xcdTU5OUZcXHU1OUE0XFx1NTlBN1xcdTU5QURcXHU1OUFFXFx1NTlBRlxcdTU5QjBcXHU1OUIzXFx1NTlCN1xcdTU5QkFcXHU1OUJDXFx1NTlDMVxcdTU5QzNcXHU1OUM0XFx1NTlDOFxcdTU5Q0FcXHU1OUNEXFx1NTlEMlxcdTU5RERcXHU1OURFXFx1NTlERlxcdTU5RTNcXHU1OUU0XFx1NTlFN1xcdTU5RUVcXHU1OUVGXFx1NTlGMVxcdTU5RjJcXHU1OUY0XFx1NTlGN1xcdTVBMDBcXHU1QTA0XFx1NUEwQ1xcdTVBMERcXHU1QTBFXFx1NUExMlxcdTVBMTNcXHU1QTFFXFx1NUEyM1xcdTVBMjRcXHU1QTI3XFx1NUEyOFxcdTVBMkFcXHU1QTJEXFx1NUEzMFxcdTVBNDRcXHU1QTQ1XFx1NUE0N1xcdTVBNDhcXHU1QTRDXFx1NUE1MFxcdTVBNTVcXHU1QTVFXFx1NUE2M1xcdTVBNjVcXHU1QTY3XFx1NUE2RFxcdTVBNzdcXHU1QTdBXFx1NUE3QlxcdTVBN0VcXHU1QThCXFx1NUE5MFxcdTVBOTNcXHU1QTk2XFx1NUE5OVxcdTVBOUNcXHU1QTlFXFx1NUE5RlxcdTVBQTBcXHU1QUEyXFx1NUFBN1xcdTVBQUNcXHU1QUIxXFx1NUFCMlxcdTVBQjNcXHU1QUI1XFx1NUFCOFxcdTVBQkFcXHU1QUJCXFx1NUFCRlwiXSxcbiAgICAgIFtcIjhmYmFhMVwiLCBcIlxcdTVBQzRcXHU1QUM2XFx1NUFDOFxcdTVBQ0ZcXHU1QURBXFx1NUFEQ1xcdTVBRTBcXHU1QUU1XFx1NUFFQVxcdTVBRUVcXHU1QUY1XFx1NUFGNlxcdTVBRkRcXHU1QjAwXFx1NUIwMVxcdTVCMDhcXHU1QjE3XFx1NUIzNFxcdTVCMTlcXHU1QjFCXFx1NUIxRFxcdTVCMjFcXHU1QjI1XFx1NUIyRFxcdTVCMzhcXHU1QjQxXFx1NUI0QlxcdTVCNENcXHU1QjUyXFx1NUI1NlxcdTVCNUVcXHU1QjY4XFx1NUI2RVxcdTVCNkZcXHU1QjdDXFx1NUI3RFxcdTVCN0VcXHU1QjdGXFx1NUI4MVxcdTVCODRcXHU1Qjg2XFx1NUI4QVxcdTVCOEVcXHU1QjkwXFx1NUI5MVxcdTVCOTNcXHU1Qjk0XFx1NUI5NlxcdTVCQThcXHU1QkE5XFx1NUJBQ1xcdTVCQURcXHU1QkFGXFx1NUJCMVxcdTVCQjJcXHU1QkI3XFx1NUJCQVxcdTVCQkNcXHU1QkMwXFx1NUJDMVxcdTVCQ0RcXHU1QkNGXFx1NUJENlwiLCA0LCBcIlxcdTVCRTBcXHU1QkVGXFx1NUJGMVxcdTVCRjRcXHU1QkZEXFx1NUMwQ1xcdTVDMTdcXHU1QzFFXFx1NUMxRlxcdTVDMjNcXHU1QzI2XFx1NUMyOVxcdTVDMkJcXHU1QzJDXFx1NUMyRVxcdTVDMzBcXHU1QzMyXFx1NUMzNVxcdTVDMzZcXHU1QzU5XFx1NUM1QVxcdTVDNUNcXHU1QzYyXFx1NUM2M1xcdTVDNjdcXHU1QzY4XFx1NUM2OVwiXSxcbiAgICAgIFtcIjhmYmJhMVwiLCBcIlxcdTVDNkRcXHU1QzcwXFx1NUM3NFxcdTVDNzVcXHU1QzdBXFx1NUM3QlxcdTVDN0NcXHU1QzdEXFx1NUM4N1xcdTVDODhcXHU1QzhBXFx1NUM4RlxcdTVDOTJcXHU1QzlEXFx1NUM5RlxcdTVDQTBcXHU1Q0EyXFx1NUNBM1xcdTVDQTZcXHU1Q0FBXFx1NUNCMlxcdTVDQjRcXHU1Q0I1XFx1NUNCQVxcdTVDQzlcXHU1Q0NCXFx1NUNEMlxcdTVDRERcXHU1Q0Q3XFx1NUNFRVxcdTVDRjFcXHU1Q0YyXFx1NUNGNFxcdTVEMDFcXHU1RDA2XFx1NUQwRFxcdTVEMTJcXHU1RDJCXFx1NUQyM1xcdTVEMjRcXHU1RDI2XFx1NUQyN1xcdTVEMzFcXHU1RDM0XFx1NUQzOVxcdTVEM0RcXHU1RDNGXFx1NUQ0MlxcdTVENDNcXHU1RDQ2XFx1NUQ0OFxcdTVENTVcXHU1RDUxXFx1NUQ1OVxcdTVENEFcXHU1RDVGXFx1NUQ2MFxcdTVENjFcXHU1RDYyXFx1NUQ2NFxcdTVENkFcXHU1RDZEXFx1NUQ3MFxcdTVENzlcXHU1RDdBXFx1NUQ3RVxcdTVEN0ZcXHU1RDgxXFx1NUQ4M1xcdTVEODhcXHU1RDhBXFx1NUQ5MlxcdTVEOTNcXHU1RDk0XFx1NUQ5NVxcdTVEOTlcXHU1RDlCXFx1NUQ5RlxcdTVEQTBcXHU1REE3XFx1NURBQlxcdTVEQjBcXHU1REI0XFx1NURCOFxcdTVEQjlcXHU1REMzXFx1NURDN1xcdTVEQ0JcXHU1REQwXFx1NURDRVxcdTVERDhcXHU1REQ5XFx1NURFMFxcdTVERTRcIl0sXG4gICAgICBbXCI4ZmJjYTFcIiwgXCJcXHU1REU5XFx1NURGOFxcdTVERjlcXHU1RTAwXFx1NUUwN1xcdTVFMERcXHU1RTEyXFx1NUUxNFxcdTVFMTVcXHU1RTE4XFx1NUUxRlxcdTVFMjBcXHU1RTJFXFx1NUUyOFxcdTVFMzJcXHU1RTM1XFx1NUUzRVxcdTVFNEJcXHU1RTUwXFx1NUU0OVxcdTVFNTFcXHU1RTU2XFx1NUU1OFxcdTVFNUJcXHU1RTVDXFx1NUU1RVxcdTVFNjhcXHU1RTZBXCIsIDQsIFwiXFx1NUU3MFxcdTVFODBcXHU1RThCXFx1NUU4RVxcdTVFQTJcXHU1RUE0XFx1NUVBNVxcdTVFQThcXHU1RUFBXFx1NUVBQ1xcdTVFQjFcXHU1RUIzXFx1NUVCRFxcdTVFQkVcXHU1RUJGXFx1NUVDNlxcdTVFQ0NcXHU1RUNCXFx1NUVDRVxcdTVFRDFcXHU1RUQyXFx1NUVENFxcdTVFRDVcXHU1RURDXFx1NUVERVxcdTVFRTVcXHU1RUVCXFx1NUYwMlxcdTVGMDZcXHU1RjA3XFx1NUYwOFxcdTVGMEVcXHU1RjE5XFx1NUYxQ1xcdTVGMURcXHU1RjIxXFx1NUYyMlxcdTVGMjNcXHU1RjI0XFx1NUYyOFxcdTVGMkJcXHU1RjJDXFx1NUYyRVxcdTVGMzBcXHU1RjM0XFx1NUYzNlxcdTVGM0JcXHU1RjNEXFx1NUYzRlxcdTVGNDBcXHU1RjQ0XFx1NUY0NVxcdTVGNDdcXHU1RjREXFx1NUY1MFxcdTVGNTRcXHU1RjU4XFx1NUY1QlxcdTVGNjBcXHU1RjYzXFx1NUY2NFxcdTVGNjdcIl0sXG4gICAgICBbXCI4ZmJkYTFcIiwgXCJcXHU1RjZGXFx1NUY3MlxcdTVGNzRcXHU1Rjc1XFx1NUY3OFxcdTVGN0FcXHU1RjdEXFx1NUY3RVxcdTVGODlcXHU1RjhEXFx1NUY4RlxcdTVGOTZcXHU1RjlDXFx1NUY5RFxcdTVGQTJcXHU1RkE3XFx1NUZBQlxcdTVGQTRcXHU1RkFDXFx1NUZBRlxcdTVGQjBcXHU1RkIxXFx1NUZCOFxcdTVGQzRcXHU1RkM3XFx1NUZDOFxcdTVGQzlcXHU1RkNCXFx1NUZEMFwiLCA0LCBcIlxcdTVGREVcXHU1RkUxXFx1NUZFMlxcdTVGRThcXHU1RkU5XFx1NUZFQVxcdTVGRUNcXHU1RkVEXFx1NUZFRVxcdTVGRUZcXHU1RkYyXFx1NUZGM1xcdTVGRjZcXHU1RkZBXFx1NUZGQ1xcdTYwMDdcXHU2MDBBXFx1NjAwRFxcdTYwMTNcXHU2MDE0XFx1NjAxN1xcdTYwMThcXHU2MDFBXFx1NjAxRlxcdTYwMjRcXHU2MDJEXFx1NjAzM1xcdTYwMzVcXHU2MDQwXFx1NjA0N1xcdTYwNDhcXHU2MDQ5XFx1NjA0Q1xcdTYwNTFcXHU2MDU0XFx1NjA1NlxcdTYwNTdcXHU2MDVEXFx1NjA2MVxcdTYwNjdcXHU2MDcxXFx1NjA3RVxcdTYwN0ZcXHU2MDgyXFx1NjA4NlxcdTYwODhcXHU2MDhBXFx1NjA4RVxcdTYwOTFcXHU2MDkzXFx1NjA5NVxcdTYwOThcXHU2MDlEXFx1NjA5RVxcdTYwQTJcXHU2MEE0XFx1NjBBNVxcdTYwQThcXHU2MEIwXFx1NjBCMVxcdTYwQjdcIl0sXG4gICAgICBbXCI4ZmJlYTFcIiwgXCJcXHU2MEJCXFx1NjBCRVxcdTYwQzJcXHU2MEM0XFx1NjBDOFxcdTYwQzlcXHU2MENBXFx1NjBDQlxcdTYwQ0VcXHU2MENGXFx1NjBENFxcdTYwRDVcXHU2MEQ5XFx1NjBEQlxcdTYwRERcXHU2MERFXFx1NjBFMlxcdTYwRTVcXHU2MEYyXFx1NjBGNVxcdTYwRjhcXHU2MEZDXFx1NjBGRFxcdTYxMDJcXHU2MTA3XFx1NjEwQVxcdTYxMENcXHU2MTEwXCIsIDQsIFwiXFx1NjExNlxcdTYxMTdcXHU2MTE5XFx1NjExQ1xcdTYxMUVcXHU2MTIyXFx1NjEyQVxcdTYxMkJcXHU2MTMwXFx1NjEzMVxcdTYxMzVcXHU2MTM2XFx1NjEzN1xcdTYxMzlcXHU2MTQxXFx1NjE0NVxcdTYxNDZcXHU2MTQ5XFx1NjE1RVxcdTYxNjBcXHU2MTZDXFx1NjE3MlxcdTYxNzhcXHU2MTdCXFx1NjE3Q1xcdTYxN0ZcXHU2MTgwXFx1NjE4MVxcdTYxODNcXHU2MTg0XFx1NjE4QlxcdTYxOERcXHU2MTkyXFx1NjE5M1xcdTYxOTdcXHU2MTk4XFx1NjE5Q1xcdTYxOURcXHU2MTlGXFx1NjFBMFxcdTYxQTVcXHU2MUE4XFx1NjFBQVxcdTYxQURcXHU2MUI4XFx1NjFCOVxcdTYxQkNcXHU2MUMwXFx1NjFDMVxcdTYxQzJcXHU2MUNFXFx1NjFDRlxcdTYxRDVcXHU2MURDXFx1NjFERFxcdTYxREVcXHU2MURGXFx1NjFFMVxcdTYxRTJcXHU2MUU3XFx1NjFFOVxcdTYxRTVcIl0sXG4gICAgICBbXCI4ZmJmYTFcIiwgXCJcXHU2MUVDXFx1NjFFRFxcdTYxRUZcXHU2MjAxXFx1NjIwM1xcdTYyMDRcXHU2MjA3XFx1NjIxM1xcdTYyMTVcXHU2MjFDXFx1NjIyMFxcdTYyMjJcXHU2MjIzXFx1NjIyN1xcdTYyMjlcXHU2MjJCXFx1NjIzOVxcdTYyM0RcXHU2MjQyXFx1NjI0M1xcdTYyNDRcXHU2MjQ2XFx1NjI0Q1xcdTYyNTBcXHU2MjUxXFx1NjI1MlxcdTYyNTRcXHU2MjU2XFx1NjI1QVxcdTYyNUNcXHU2MjY0XFx1NjI2RFxcdTYyNkZcXHU2MjczXFx1NjI3QVxcdTYyN0RcXHU2MjhEXFx1NjI4RVxcdTYyOEZcXHU2MjkwXFx1NjJBNlxcdTYyQThcXHU2MkIzXFx1NjJCNlxcdTYyQjdcXHU2MkJBXFx1NjJCRVxcdTYyQkZcXHU2MkM0XFx1NjJDRVxcdTYyRDVcXHU2MkQ2XFx1NjJEQVxcdTYyRUFcXHU2MkYyXFx1NjJGNFxcdTYyRkNcXHU2MkZEXFx1NjMwM1xcdTYzMDRcXHU2MzBBXFx1NjMwQlxcdTYzMERcXHU2MzEwXFx1NjMxM1xcdTYzMTZcXHU2MzE4XFx1NjMyOVxcdTYzMkFcXHU2MzJEXFx1NjMzNVxcdTYzMzZcXHU2MzM5XFx1NjMzQ1xcdTYzNDFcXHU2MzQyXFx1NjM0M1xcdTYzNDRcXHU2MzQ2XFx1NjM0QVxcdTYzNEJcXHU2MzRFXFx1NjM1MlxcdTYzNTNcXHU2MzU0XFx1NjM1OFxcdTYzNUJcXHU2MzY1XFx1NjM2NlxcdTYzNkNcXHU2MzZEXFx1NjM3MVxcdTYzNzRcXHU2Mzc1XCJdLFxuICAgICAgW1wiOGZjMGExXCIsIFwiXFx1NjM3OFxcdTYzN0NcXHU2MzdEXFx1NjM3RlxcdTYzODJcXHU2Mzg0XFx1NjM4N1xcdTYzOEFcXHU2MzkwXFx1NjM5NFxcdTYzOTVcXHU2Mzk5XFx1NjM5QVxcdTYzOUVcXHU2M0E0XFx1NjNBNlxcdTYzQURcXHU2M0FFXFx1NjNBRlxcdTYzQkRcXHU2M0MxXFx1NjNDNVxcdTYzQzhcXHU2M0NFXFx1NjNEMVxcdTYzRDNcXHU2M0Q0XFx1NjNENVxcdTYzRENcXHU2M0UwXFx1NjNFNVxcdTYzRUFcXHU2M0VDXFx1NjNGMlxcdTYzRjNcXHU2M0Y1XFx1NjNGOFxcdTYzRjlcXHU2NDA5XFx1NjQwQVxcdTY0MTBcXHU2NDEyXFx1NjQxNFxcdTY0MThcXHU2NDFFXFx1NjQyMFxcdTY0MjJcXHU2NDI0XFx1NjQyNVxcdTY0MjlcXHU2NDJBXFx1NjQyRlxcdTY0MzBcXHU2NDM1XFx1NjQzRFxcdTY0M0ZcXHU2NDRCXFx1NjQ0RlxcdTY0NTFcXHU2NDUyXFx1NjQ1M1xcdTY0NTRcXHU2NDVBXFx1NjQ1QlxcdTY0NUNcXHU2NDVEXFx1NjQ1RlxcdTY0NjBcXHU2NDYxXFx1NjQ2M1xcdTY0NkRcXHU2NDczXFx1NjQ3NFxcdTY0N0JcXHU2NDdEXFx1NjQ4NVxcdTY0ODdcXHU2NDhGXFx1NjQ5MFxcdTY0OTFcXHU2NDk4XFx1NjQ5OVxcdTY0OUJcXHU2NDlEXFx1NjQ5RlxcdTY0QTFcXHU2NEEzXFx1NjRBNlxcdTY0QThcXHU2NEFDXFx1NjRCM1xcdTY0QkRcXHU2NEJFXFx1NjRCRlwiXSxcbiAgICAgIFtcIjhmYzFhMVwiLCBcIlxcdTY0QzRcXHU2NEM5XFx1NjRDQVxcdTY0Q0JcXHU2NENDXFx1NjRDRVxcdTY0RDBcXHU2NEQxXFx1NjRENVxcdTY0RDdcXHU2NEU0XFx1NjRFNVxcdTY0RTlcXHU2NEVBXFx1NjRFRFxcdTY0RjBcXHU2NEY1XFx1NjRGN1xcdTY0RkJcXHU2NEZGXFx1NjUwMVxcdTY1MDRcXHU2NTA4XFx1NjUwOVxcdTY1MEFcXHU2NTBGXFx1NjUxM1xcdTY1MTRcXHU2NTE2XFx1NjUxOVxcdTY1MUJcXHU2NTFFXFx1NjUxRlxcdTY1MjJcXHU2NTI2XFx1NjUyOVxcdTY1MkVcXHU2NTMxXFx1NjUzQVxcdTY1M0NcXHU2NTNEXFx1NjU0M1xcdTY1NDdcXHU2NTQ5XFx1NjU1MFxcdTY1NTJcXHU2NTU0XFx1NjU1RlxcdTY1NjBcXHU2NTY3XFx1NjU2QlxcdTY1N0FcXHU2NTdEXFx1NjU4MVxcdTY1ODVcXHU2NThBXFx1NjU5MlxcdTY1OTVcXHU2NTk4XFx1NjU5RFxcdTY1QTBcXHU2NUEzXFx1NjVBNlxcdTY1QUVcXHU2NUIyXFx1NjVCM1xcdTY1QjRcXHU2NUJGXFx1NjVDMlxcdTY1QzhcXHU2NUM5XFx1NjVDRVxcdTY1RDBcXHU2NUQ0XFx1NjVENlxcdTY1RDhcXHU2NURGXFx1NjVGMFxcdTY1RjJcXHU2NUY0XFx1NjVGNVxcdTY1RjlcXHU2NUZFXFx1NjVGRlxcdTY2MDBcXHU2NjA0XFx1NjYwOFxcdTY2MDlcXHU2NjBEXFx1NjYxMVxcdTY2MTJcXHU2NjE1XFx1NjYxNlxcdTY2MURcIl0sXG4gICAgICBbXCI4ZmMyYTFcIiwgXCJcXHU2NjFFXFx1NjYyMVxcdTY2MjJcXHU2NjIzXFx1NjYyNFxcdTY2MjZcXHU2NjI5XFx1NjYyQVxcdTY2MkJcXHU2NjJDXFx1NjYyRVxcdTY2MzBcXHU2NjMxXFx1NjYzM1xcdTY2MzlcXHU2NjM3XFx1NjY0MFxcdTY2NDVcXHU2NjQ2XFx1NjY0QVxcdTY2NENcXHU2NjUxXFx1NjY0RVxcdTY2NTdcXHU2NjU4XFx1NjY1OVxcdTY2NUJcXHU2NjVDXFx1NjY2MFxcdTY2NjFcXHU2NkZCXFx1NjY2QVxcdTY2NkJcXHU2NjZDXFx1NjY3RVxcdTY2NzNcXHU2Njc1XFx1NjY3RlxcdTY2NzdcXHU2Njc4XFx1NjY3OVxcdTY2N0JcXHU2NjgwXFx1NjY3Q1xcdTY2OEJcXHU2NjhDXFx1NjY4RFxcdTY2OTBcXHU2NjkyXFx1NjY5OVxcdTY2OUFcXHU2NjlCXFx1NjY5Q1xcdTY2OUZcXHU2NkEwXFx1NjZBNFxcdTY2QURcXHU2NkIxXFx1NjZCMlxcdTY2QjVcXHU2NkJCXFx1NjZCRlxcdTY2QzBcXHU2NkMyXFx1NjZDM1xcdTY2QzhcXHU2NkNDXFx1NjZDRVxcdTY2Q0ZcXHU2NkQ0XFx1NjZEQlxcdTY2REZcXHU2NkU4XFx1NjZFQlxcdTY2RUNcXHU2NkVFXFx1NjZGQVxcdTY3MDVcXHU2NzA3XFx1NjcwRVxcdTY3MTNcXHU2NzE5XFx1NjcxQ1xcdTY3MjBcXHU2NzIyXFx1NjczM1xcdTY3M0VcXHU2NzQ1XFx1Njc0N1xcdTY3NDhcXHU2NzRDXFx1Njc1NFxcdTY3NTVcXHU2NzVEXCJdLFxuICAgICAgW1wiOGZjM2ExXCIsIFwiXFx1Njc2NlxcdTY3NkNcXHU2NzZFXFx1Njc3NFxcdTY3NzZcXHU2NzdCXFx1Njc4MVxcdTY3ODRcXHU2NzhFXFx1Njc4RlxcdTY3OTFcXHU2NzkzXFx1Njc5NlxcdTY3OThcXHU2Nzk5XFx1Njc5QlxcdTY3QjBcXHU2N0IxXFx1NjdCMlxcdTY3QjVcXHU2N0JCXFx1NjdCQ1xcdTY3QkRcXHU2N0Y5XFx1NjdDMFxcdTY3QzJcXHU2N0MzXFx1NjdDNVxcdTY3QzhcXHU2N0M5XFx1NjdEMlxcdTY3RDdcXHU2N0Q5XFx1NjdEQ1xcdTY3RTFcXHU2N0U2XFx1NjdGMFxcdTY3RjJcXHU2N0Y2XFx1NjdGN1xcdTY4NTJcXHU2ODE0XFx1NjgxOVxcdTY4MURcXHU2ODFGXFx1NjgyOFxcdTY4MjdcXHU2ODJDXFx1NjgyRFxcdTY4MkZcXHU2ODMwXFx1NjgzMVxcdTY4MzNcXHU2ODNCXFx1NjgzRlxcdTY4NDRcXHU2ODQ1XFx1Njg0QVxcdTY4NENcXHU2ODU1XFx1Njg1N1xcdTY4NThcXHU2ODVCXFx1Njg2QlxcdTY4NkVcIiwgNCwgXCJcXHU2ODc1XFx1Njg3OVxcdTY4N0FcXHU2ODdCXFx1Njg3Q1xcdTY4ODJcXHU2ODg0XFx1Njg4NlxcdTY4ODhcXHU2ODk2XFx1Njg5OFxcdTY4OUFcXHU2ODlDXFx1NjhBMVxcdTY4QTNcXHU2OEE1XFx1NjhBOVxcdTY4QUFcXHU2OEFFXFx1NjhCMlxcdTY4QkJcXHU2OEM1XFx1NjhDOFxcdTY4Q0NcXHU2OENGXCJdLFxuICAgICAgW1wiOGZjNGExXCIsIFwiXFx1NjhEMFxcdTY4RDFcXHU2OEQzXFx1NjhENlxcdTY4RDlcXHU2OERDXFx1NjhERFxcdTY4RTVcXHU2OEU4XFx1NjhFQVxcdTY4RUJcXHU2OEVDXFx1NjhFRFxcdTY4RjBcXHU2OEYxXFx1NjhGNVxcdTY4RjZcXHU2OEZCXFx1NjhGQ1xcdTY4RkRcXHU2OTA2XFx1NjkwOVxcdTY5MEFcXHU2OTEwXFx1NjkxMVxcdTY5MTNcXHU2OTE2XFx1NjkxN1xcdTY5MzFcXHU2OTMzXFx1NjkzNVxcdTY5MzhcXHU2OTNCXFx1Njk0MlxcdTY5NDVcXHU2OTQ5XFx1Njk0RVxcdTY5NTdcXHU2OTVCXFx1Njk2M1xcdTY5NjRcXHU2OTY1XFx1Njk2NlxcdTY5NjhcXHU2OTY5XFx1Njk2Q1xcdTY5NzBcXHU2OTcxXFx1Njk3MlxcdTY5N0FcXHU2OTdCXFx1Njk3RlxcdTY5ODBcXHU2OThEXFx1Njk5MlxcdTY5OTZcXHU2OTk4XFx1NjlBMVxcdTY5QTVcXHU2OUE2XFx1NjlBOFxcdTY5QUJcXHU2OUFEXFx1NjlBRlxcdTY5QjdcXHU2OUI4XFx1NjlCQVxcdTY5QkNcXHU2OUM1XFx1NjlDOFxcdTY5RDFcXHU2OUQ2XFx1NjlEN1xcdTY5RTJcXHU2OUU1XFx1NjlFRVxcdTY5RUZcXHU2OUYxXFx1NjlGM1xcdTY5RjVcXHU2OUZFXFx1NkEwMFxcdTZBMDFcXHU2QTAzXFx1NkEwRlxcdTZBMTFcXHU2QTE1XFx1NkExQVxcdTZBMURcXHU2QTIwXFx1NkEyNFxcdTZBMjhcXHU2QTMwXFx1NkEzMlwiXSxcbiAgICAgIFtcIjhmYzVhMVwiLCBcIlxcdTZBMzRcXHU2QTM3XFx1NkEzQlxcdTZBM0VcXHU2QTNGXFx1NkE0NVxcdTZBNDZcXHU2QTQ5XFx1NkE0QVxcdTZBNEVcXHU2QTUwXFx1NkE1MVxcdTZBNTJcXHU2QTU1XFx1NkE1NlxcdTZBNUJcXHU2QTY0XFx1NkE2N1xcdTZBNkFcXHU2QTcxXFx1NkE3M1xcdTZBN0VcXHU2QTgxXFx1NkE4M1xcdTZBODZcXHU2QTg3XFx1NkE4OVxcdTZBOEJcXHU2QTkxXFx1NkE5QlxcdTZBOURcXHU2QTlFXFx1NkE5RlxcdTZBQTVcXHU2QUFCXFx1NkFBRlxcdTZBQjBcXHU2QUIxXFx1NkFCNFxcdTZBQkRcXHU2QUJFXFx1NkFCRlxcdTZBQzZcXHU2QUM5XFx1NkFDOFxcdTZBQ0NcXHU2QUQwXFx1NkFENFxcdTZBRDVcXHU2QUQ2XFx1NkFEQ1xcdTZBRERcXHU2QUU0XFx1NkFFN1xcdTZBRUNcXHU2QUYwXFx1NkFGMVxcdTZBRjJcXHU2QUZDXFx1NkFGRFxcdTZCMDJcXHU2QjAzXFx1NkIwNlxcdTZCMDdcXHU2QjA5XFx1NkIwRlxcdTZCMTBcXHU2QjExXFx1NkIxN1xcdTZCMUJcXHU2QjFFXFx1NkIyNFxcdTZCMjhcXHU2QjJCXFx1NkIyQ1xcdTZCMkZcXHU2QjM1XFx1NkIzNlxcdTZCM0JcXHU2QjNGXFx1NkI0NlxcdTZCNEFcXHU2QjREXFx1NkI1MlxcdTZCNTZcXHU2QjU4XFx1NkI1RFxcdTZCNjBcXHU2QjY3XFx1NkI2QlxcdTZCNkVcXHU2QjcwXFx1NkI3NVxcdTZCN0RcIl0sXG4gICAgICBbXCI4ZmM2YTFcIiwgXCJcXHU2QjdFXFx1NkI4MlxcdTZCODVcXHU2Qjk3XFx1NkI5QlxcdTZCOUZcXHU2QkEwXFx1NkJBMlxcdTZCQTNcXHU2QkE4XFx1NkJBOVxcdTZCQUNcXHU2QkFEXFx1NkJBRVxcdTZCQjBcXHU2QkI4XFx1NkJCOVxcdTZCQkRcXHU2QkJFXFx1NkJDM1xcdTZCQzRcXHU2QkM5XFx1NkJDQ1xcdTZCRDZcXHU2QkRBXFx1NkJFMVxcdTZCRTNcXHU2QkU2XFx1NkJFN1xcdTZCRUVcXHU2QkYxXFx1NkJGN1xcdTZCRjlcXHU2QkZGXFx1NkMwMlxcdTZDMDRcXHU2QzA1XFx1NkMwOVxcdTZDMERcXHU2QzBFXFx1NkMxMFxcdTZDMTJcXHU2QzE5XFx1NkMxRlxcdTZDMjZcXHU2QzI3XFx1NkMyOFxcdTZDMkNcXHU2QzJFXFx1NkMzM1xcdTZDMzVcXHU2QzM2XFx1NkMzQVxcdTZDM0JcXHU2QzNGXFx1NkM0QVxcdTZDNEJcXHU2QzREXFx1NkM0RlxcdTZDNTJcXHU2QzU0XFx1NkM1OVxcdTZDNUJcXHU2QzVDXFx1NkM2QlxcdTZDNkRcXHU2QzZGXFx1NkM3NFxcdTZDNzZcXHU2Qzc4XFx1NkM3OVxcdTZDN0JcXHU2Qzg1XFx1NkM4NlxcdTZDODdcXHU2Qzg5XFx1NkM5NFxcdTZDOTVcXHU2Qzk3XFx1NkM5OFxcdTZDOUNcXHU2QzlGXFx1NkNCMFxcdTZDQjJcXHU2Q0I0XFx1NkNDMlxcdTZDQzZcXHU2Q0NEXFx1NkNDRlxcdTZDRDBcXHU2Q0QxXFx1NkNEMlxcdTZDRDRcXHU2Q0Q2XCJdLFxuICAgICAgW1wiOGZjN2ExXCIsIFwiXFx1NkNEQVxcdTZDRENcXHU2Q0UwXFx1NkNFN1xcdTZDRTlcXHU2Q0VCXFx1NkNFQ1xcdTZDRUVcXHU2Q0YyXFx1NkNGNFxcdTZEMDRcXHU2RDA3XFx1NkQwQVxcdTZEMEVcXHU2RDBGXFx1NkQxMVxcdTZEMTNcXHU2RDFBXFx1NkQyNlxcdTZEMjdcXHU2RDI4XFx1NkM2N1xcdTZEMkVcXHU2RDJGXFx1NkQzMVxcdTZEMzlcXHU2RDNDXFx1NkQzRlxcdTZENTdcXHU2RDVFXFx1NkQ1RlxcdTZENjFcXHU2RDY1XFx1NkQ2N1xcdTZENkZcXHU2RDcwXFx1NkQ3Q1xcdTZEODJcXHU2RDg3XFx1NkQ5MVxcdTZEOTJcXHU2RDk0XFx1NkQ5NlxcdTZEOTdcXHU2RDk4XFx1NkRBQVxcdTZEQUNcXHU2REI0XFx1NkRCN1xcdTZEQjlcXHU2REJEXFx1NkRCRlxcdTZEQzRcXHU2REM4XFx1NkRDQVxcdTZEQ0VcXHU2RENGXFx1NkRENlxcdTZEREJcXHU2REREXFx1NkRERlxcdTZERTBcXHU2REUyXFx1NkRFNVxcdTZERTlcXHU2REVGXFx1NkRGMFxcdTZERjRcXHU2REY2XFx1NkRGQ1xcdTZFMDBcXHU2RTA0XFx1NkUxRVxcdTZFMjJcXHU2RTI3XFx1NkUzMlxcdTZFMzZcXHU2RTM5XFx1NkUzQlxcdTZFM0NcXHU2RTQ0XFx1NkU0NVxcdTZFNDhcXHU2RTQ5XFx1NkU0QlxcdTZFNEZcXHU2RTUxXFx1NkU1MlxcdTZFNTNcXHU2RTU0XFx1NkU1N1xcdTZFNUNcXHU2RTVEXFx1NkU1RVwiXSxcbiAgICAgIFtcIjhmYzhhMVwiLCBcIlxcdTZFNjJcXHU2RTYzXFx1NkU2OFxcdTZFNzNcXHU2RTdCXFx1NkU3RFxcdTZFOERcXHU2RTkzXFx1NkU5OVxcdTZFQTBcXHU2RUE3XFx1NkVBRFxcdTZFQUVcXHU2RUIxXFx1NkVCM1xcdTZFQkJcXHU2RUJGXFx1NkVDMFxcdTZFQzFcXHU2RUMzXFx1NkVDN1xcdTZFQzhcXHU2RUNBXFx1NkVDRFxcdTZFQ0VcXHU2RUNGXFx1NkVFQlxcdTZFRURcXHU2RUVFXFx1NkVGOVxcdTZFRkJcXHU2RUZEXFx1NkYwNFxcdTZGMDhcXHU2RjBBXFx1NkYwQ1xcdTZGMERcXHU2RjE2XFx1NkYxOFxcdTZGMUFcXHU2RjFCXFx1NkYyNlxcdTZGMjlcXHU2RjJBXFx1NkYyRlxcdTZGMzBcXHU2RjMzXFx1NkYzNlxcdTZGM0JcXHU2RjNDXFx1NkYyRFxcdTZGNEZcXHU2RjUxXFx1NkY1MlxcdTZGNTNcXHU2RjU3XFx1NkY1OVxcdTZGNUFcXHU2RjVEXFx1NkY1RVxcdTZGNjFcXHU2RjYyXFx1NkY2OFxcdTZGNkNcXHU2RjdEXFx1NkY3RVxcdTZGODNcXHU2Rjg3XFx1NkY4OFxcdTZGOEJcXHU2RjhDXFx1NkY4RFxcdTZGOTBcXHU2RjkyXFx1NkY5M1xcdTZGOTRcXHU2Rjk2XFx1NkY5QVxcdTZGOUZcXHU2RkEwXFx1NkZBNVxcdTZGQTZcXHU2RkE3XFx1NkZBOFxcdTZGQUVcXHU2RkFGXFx1NkZCMFxcdTZGQjVcXHU2RkI2XFx1NkZCQ1xcdTZGQzVcXHU2RkM3XFx1NkZDOFxcdTZGQ0FcIl0sXG4gICAgICBbXCI4ZmM5YTFcIiwgXCJcXHU2RkRBXFx1NkZERVxcdTZGRThcXHU2RkU5XFx1NkZGMFxcdTZGRjVcXHU2RkY5XFx1NkZGQ1xcdTZGRkRcXHU3MDAwXFx1NzAwNVxcdTcwMDZcXHU3MDA3XFx1NzAwRFxcdTcwMTdcXHU3MDIwXFx1NzAyM1xcdTcwMkZcXHU3MDM0XFx1NzAzN1xcdTcwMzlcXHU3MDNDXFx1NzA0M1xcdTcwNDRcXHU3MDQ4XFx1NzA0OVxcdTcwNEFcXHU3MDRCXFx1NzA1NFxcdTcwNTVcXHU3MDVEXFx1NzA1RVxcdTcwNEVcXHU3MDY0XFx1NzA2NVxcdTcwNkNcXHU3MDZFXFx1NzA3NVxcdTcwNzZcXHU3MDdFXFx1NzA4MVxcdTcwODVcXHU3MDg2XFx1NzA5NFwiLCA0LCBcIlxcdTcwOUJcXHU3MEE0XFx1NzBBQlxcdTcwQjBcXHU3MEIxXFx1NzBCNFxcdTcwQjdcXHU3MENBXFx1NzBEMVxcdTcwRDNcXHU3MEQ0XFx1NzBENVxcdTcwRDZcXHU3MEQ4XFx1NzBEQ1xcdTcwRTRcXHU3MEZBXFx1NzEwM1wiLCA0LCBcIlxcdTcxMEJcXHU3MTBDXFx1NzEwRlxcdTcxMUVcXHU3MTIwXFx1NzEyQlxcdTcxMkRcXHU3MTJGXFx1NzEzMFxcdTcxMzFcXHU3MTM4XFx1NzE0MVxcdTcxNDVcXHU3MTQ2XFx1NzE0N1xcdTcxNEFcXHU3MTRCXFx1NzE1MFxcdTcxNTJcXHU3MTU3XFx1NzE1QVxcdTcxNUNcXHU3MTVFXFx1NzE2MFwiXSxcbiAgICAgIFtcIjhmY2FhMVwiLCBcIlxcdTcxNjhcXHU3MTc5XFx1NzE4MFxcdTcxODVcXHU3MTg3XFx1NzE4Q1xcdTcxOTJcXHU3MTlBXFx1NzE5QlxcdTcxQTBcXHU3MUEyXFx1NzFBRlxcdTcxQjBcXHU3MUIyXFx1NzFCM1xcdTcxQkFcXHU3MUJGXFx1NzFDMFxcdTcxQzFcXHU3MUM0XFx1NzFDQlxcdTcxQ0NcXHU3MUQzXFx1NzFENlxcdTcxRDlcXHU3MURBXFx1NzFEQ1xcdTcxRjhcXHU3MUZFXFx1NzIwMFxcdTcyMDdcXHU3MjA4XFx1NzIwOVxcdTcyMTNcXHU3MjE3XFx1NzIxQVxcdTcyMURcXHU3MjFGXFx1NzIyNFxcdTcyMkJcXHU3MjJGXFx1NzIzNFxcdTcyMzhcXHU3MjM5XFx1NzI0MVxcdTcyNDJcXHU3MjQzXFx1NzI0NVxcdTcyNEVcXHU3MjRGXFx1NzI1MFxcdTcyNTNcXHU3MjU1XFx1NzI1NlxcdTcyNUFcXHU3MjVDXFx1NzI1RVxcdTcyNjBcXHU3MjYzXFx1NzI2OFxcdTcyNkJcXHU3MjZFXFx1NzI2RlxcdTcyNzFcXHU3Mjc3XFx1NzI3OFxcdTcyN0JcXHU3MjdDXFx1NzI3RlxcdTcyODRcXHU3Mjg5XFx1NzI4RFxcdTcyOEVcXHU3MjkzXFx1NzI5QlxcdTcyQThcXHU3MkFEXFx1NzJBRVxcdTcyQjFcXHU3MkI0XFx1NzJCRVxcdTcyQzFcXHU3MkM3XFx1NzJDOVxcdTcyQ0NcXHU3MkQ1XFx1NzJENlxcdTcyRDhcXHU3MkRGXFx1NzJFNVxcdTcyRjNcXHU3MkY0XFx1NzJGQVxcdTcyRkJcIl0sXG4gICAgICBbXCI4ZmNiYTFcIiwgXCJcXHU3MkZFXFx1NzMwMlxcdTczMDRcXHU3MzA1XFx1NzMwN1xcdTczMEJcXHU3MzBEXFx1NzMxMlxcdTczMTNcXHU3MzE4XFx1NzMxOVxcdTczMUVcXHU3MzIyXFx1NzMyNFxcdTczMjdcXHU3MzI4XFx1NzMyQ1xcdTczMzFcXHU3MzMyXFx1NzMzNVxcdTczM0FcXHU3MzNCXFx1NzMzRFxcdTczNDNcXHU3MzREXFx1NzM1MFxcdTczNTJcXHU3MzU2XFx1NzM1OFxcdTczNURcXHU3MzVFXFx1NzM1RlxcdTczNjBcXHU3MzY2XFx1NzM2N1xcdTczNjlcXHU3MzZCXFx1NzM2Q1xcdTczNkVcXHU3MzZGXFx1NzM3MVxcdTczNzdcXHU3Mzc5XFx1NzM3Q1xcdTczODBcXHU3MzgxXFx1NzM4M1xcdTczODVcXHU3Mzg2XFx1NzM4RVxcdTczOTBcXHU3MzkzXFx1NzM5NVxcdTczOTdcXHU3Mzk4XFx1NzM5Q1xcdTczOUVcXHU3MzlGXFx1NzNBMFxcdTczQTJcXHU3M0E1XFx1NzNBNlxcdTczQUFcXHU3M0FCXFx1NzNBRFxcdTczQjVcXHU3M0I3XFx1NzNCOVxcdTczQkNcXHU3M0JEXFx1NzNCRlxcdTczQzVcXHU3M0M2XFx1NzNDOVxcdTczQ0JcXHU3M0NDXFx1NzNDRlxcdTczRDJcXHU3M0QzXFx1NzNENlxcdTczRDlcXHU3M0REXFx1NzNFMVxcdTczRTNcXHU3M0U2XFx1NzNFN1xcdTczRTlcXHU3M0Y0XFx1NzNGNVxcdTczRjdcXHU3M0Y5XFx1NzNGQVxcdTczRkJcXHU3M0ZEXCJdLFxuICAgICAgW1wiOGZjY2ExXCIsIFwiXFx1NzNGRlxcdTc0MDBcXHU3NDAxXFx1NzQwNFxcdTc0MDdcXHU3NDBBXFx1NzQxMVxcdTc0MUFcXHU3NDFCXFx1NzQyNFxcdTc0MjZcXHU3NDI4XCIsIDksIFwiXFx1NzQzOVxcdTc0NDBcXHU3NDQzXFx1NzQ0NFxcdTc0NDZcXHU3NDQ3XFx1NzQ0QlxcdTc0NERcXHU3NDUxXFx1NzQ1MlxcdTc0NTdcXHU3NDVEXFx1NzQ2MlxcdTc0NjZcXHU3NDY3XFx1NzQ2OFxcdTc0NkJcXHU3NDZEXFx1NzQ2RVxcdTc0NzFcXHU3NDcyXFx1NzQ4MFxcdTc0ODFcXHU3NDg1XFx1NzQ4NlxcdTc0ODdcXHU3NDg5XFx1NzQ4RlxcdTc0OTBcXHU3NDkxXFx1NzQ5MlxcdTc0OThcXHU3NDk5XFx1NzQ5QVxcdTc0OUNcXHU3NDlGXFx1NzRBMFxcdTc0QTFcXHU3NEEzXFx1NzRBNlxcdTc0QThcXHU3NEE5XFx1NzRBQVxcdTc0QUJcXHU3NEFFXFx1NzRBRlxcdTc0QjFcXHU3NEIyXFx1NzRCNVxcdTc0QjlcXHU3NEJCXFx1NzRCRlxcdTc0QzhcXHU3NEM5XFx1NzRDQ1xcdTc0RDBcXHU3NEQzXFx1NzREOFxcdTc0REFcXHU3NERCXFx1NzRERVxcdTc0REZcXHU3NEU0XFx1NzRFOFxcdTc0RUFcXHU3NEVCXFx1NzRFRlxcdTc0RjRcXHU3NEZBXFx1NzRGQlxcdTc0RkNcXHU3NEZGXFx1NzUwNlwiXSxcbiAgICAgIFtcIjhmY2RhMVwiLCBcIlxcdTc1MTJcXHU3NTE2XFx1NzUxN1xcdTc1MjBcXHU3NTIxXFx1NzUyNFxcdTc1MjdcXHU3NTI5XFx1NzUyQVxcdTc1MkZcXHU3NTM2XFx1NzUzOVxcdTc1M0RcXHU3NTNFXFx1NzUzRlxcdTc1NDBcXHU3NTQzXFx1NzU0N1xcdTc1NDhcXHU3NTRFXFx1NzU1MFxcdTc1NTJcXHU3NTU3XFx1NzU1RVxcdTc1NUZcXHU3NTYxXFx1NzU2RlxcdTc1NzFcXHU3NTc5XCIsIDUsIFwiXFx1NzU4MVxcdTc1ODVcXHU3NTkwXFx1NzU5MlxcdTc1OTNcXHU3NTk1XFx1NzU5OVxcdTc1OUNcXHU3NUEyXFx1NzVBNFxcdTc1QjRcXHU3NUJBXFx1NzVCRlxcdTc1QzBcXHU3NUMxXFx1NzVDNFxcdTc1QzZcXHU3NUNDXFx1NzVDRVxcdTc1Q0ZcXHU3NUQ3XFx1NzVEQ1xcdTc1REZcXHU3NUUwXFx1NzVFMVxcdTc1RTRcXHU3NUU3XFx1NzVFQ1xcdTc1RUVcXHU3NUVGXFx1NzVGMVxcdTc1RjlcXHU3NjAwXFx1NzYwMlxcdTc2MDNcXHU3NjA0XFx1NzYwN1xcdTc2MDhcXHU3NjBBXFx1NzYwQ1xcdTc2MEZcXHU3NjEyXFx1NzYxM1xcdTc2MTVcXHU3NjE2XFx1NzYxOVxcdTc2MUJcXHU3NjFDXFx1NzYxRFxcdTc2MUVcXHU3NjIzXFx1NzYyNVxcdTc2MjZcXHU3NjI5XFx1NzYyRFxcdTc2MzJcXHU3NjMzXFx1NzYzNVxcdTc2MzhcXHU3NjM5XCJdLFxuICAgICAgW1wiOGZjZWExXCIsIFwiXFx1NzYzQVxcdTc2M0NcXHU3NjRBXFx1NzY0MFxcdTc2NDFcXHU3NjQzXFx1NzY0NFxcdTc2NDVcXHU3NjQ5XFx1NzY0QlxcdTc2NTVcXHU3NjU5XFx1NzY1RlxcdTc2NjRcXHU3NjY1XFx1NzY2RFxcdTc2NkVcXHU3NjZGXFx1NzY3MVxcdTc2NzRcXHU3NjgxXFx1NzY4NVxcdTc2OENcXHU3NjhEXFx1NzY5NVxcdTc2OUJcXHU3NjlDXFx1NzY5RFxcdTc2OUZcXHU3NkEwXFx1NzZBMlwiLCA2LCBcIlxcdTc2QUFcXHU3NkFEXFx1NzZCRFxcdTc2QzFcXHU3NkM1XFx1NzZDOVxcdTc2Q0JcXHU3NkNDXFx1NzZDRVxcdTc2RDRcXHU3NkQ5XFx1NzZFMFxcdTc2RTZcXHU3NkU4XFx1NzZFQ1xcdTc2RjBcXHU3NkYxXFx1NzZGNlxcdTc2RjlcXHU3NkZDXFx1NzcwMFxcdTc3MDZcXHU3NzBBXFx1NzcwRVxcdTc3MTJcXHU3NzE0XFx1NzcxNVxcdTc3MTdcXHU3NzE5XFx1NzcxQVxcdTc3MUNcXHU3NzIyXFx1NzcyOFxcdTc3MkRcXHU3NzJFXFx1NzcyRlxcdTc3MzRcXHU3NzM1XFx1NzczNlxcdTc3MzlcXHU3NzNEXFx1NzczRVxcdTc3NDJcXHU3NzQ1XFx1Nzc0NlxcdTc3NEFcXHU3NzREXFx1Nzc0RVxcdTc3NEZcXHU3NzUyXFx1Nzc1NlxcdTc3NTdcXHU3NzVDXFx1Nzc1RVxcdTc3NUZcXHU3NzYwXFx1Nzc2MlwiXSxcbiAgICAgIFtcIjhmY2ZhMVwiLCBcIlxcdTc3NjRcXHU3NzY3XFx1Nzc2QVxcdTc3NkNcXHU3NzcwXFx1Nzc3MlxcdTc3NzNcXHU3Nzc0XFx1Nzc3QVxcdTc3N0RcXHU3NzgwXFx1Nzc4NFxcdTc3OENcXHU3NzhEXFx1Nzc5NFxcdTc3OTVcXHU3Nzk2XFx1Nzc5QVxcdTc3OUZcXHU3N0EyXFx1NzdBN1xcdTc3QUFcXHU3N0FFXFx1NzdBRlxcdTc3QjFcXHU3N0I1XFx1NzdCRVxcdTc3QzNcXHU3N0M5XFx1NzdEMVxcdTc3RDJcXHU3N0Q1XFx1NzdEOVxcdTc3REVcXHU3N0RGXFx1NzdFMFxcdTc3RTRcXHU3N0U2XFx1NzdFQVxcdTc3RUNcXHU3N0YwXFx1NzdGMVxcdTc3RjRcXHU3N0Y4XFx1NzdGQlxcdTc4MDVcXHU3ODA2XFx1NzgwOVxcdTc4MERcXHU3ODBFXFx1NzgxMVxcdTc4MURcXHU3ODIxXFx1NzgyMlxcdTc4MjNcXHU3ODJEXFx1NzgyRVxcdTc4MzBcXHU3ODM1XFx1NzgzN1xcdTc4NDNcXHU3ODQ0XFx1Nzg0N1xcdTc4NDhcXHU3ODRDXFx1Nzg0RVxcdTc4NTJcXHU3ODVDXFx1Nzg1RVxcdTc4NjBcXHU3ODYxXFx1Nzg2M1xcdTc4NjRcXHU3ODY4XFx1Nzg2QVxcdTc4NkVcXHU3ODdBXFx1Nzg3RVxcdTc4OEFcXHU3ODhGXFx1Nzg5NFxcdTc4OThcXHU3OEExXFx1Nzg5RFxcdTc4OUVcXHU3ODlGXFx1NzhBNFxcdTc4QThcXHU3OEFDXFx1NzhBRFxcdTc4QjBcXHU3OEIxXFx1NzhCMlxcdTc4QjNcIl0sXG4gICAgICBbXCI4ZmQwYTFcIiwgXCJcXHU3OEJCXFx1NzhCRFxcdTc4QkZcXHU3OEM3XFx1NzhDOFxcdTc4QzlcXHU3OENDXFx1NzhDRVxcdTc4RDJcXHU3OEQzXFx1NzhENVxcdTc4RDZcXHU3OEU0XFx1NzhEQlxcdTc4REZcXHU3OEUwXFx1NzhFMVxcdTc4RTZcXHU3OEVBXFx1NzhGMlxcdTc4RjNcXHU3OTAwXFx1NzhGNlxcdTc4RjdcXHU3OEZBXFx1NzhGQlxcdTc4RkZcXHU3OTA2XFx1NzkwQ1xcdTc5MTBcXHU3OTFBXFx1NzkxQ1xcdTc5MUVcXHU3OTFGXFx1NzkyMFxcdTc5MjVcXHU3OTI3XFx1NzkyOVxcdTc5MkRcXHU3OTMxXFx1NzkzNFxcdTc5MzVcXHU3OTNCXFx1NzkzRFxcdTc5M0ZcXHU3OTQ0XFx1Nzk0NVxcdTc5NDZcXHU3OTRBXFx1Nzk0QlxcdTc5NEZcXHU3OTUxXFx1Nzk1NFxcdTc5NThcXHU3OTVCXFx1Nzk1Q1xcdTc5NjdcXHU3OTY5XFx1Nzk2QlxcdTc5NzJcXHU3OTc5XFx1Nzk3QlxcdTc5N0NcXHU3OTdFXFx1Nzk4QlxcdTc5OENcXHU3OTkxXFx1Nzk5M1xcdTc5OTRcXHU3OTk1XFx1Nzk5NlxcdTc5OThcXHU3OTlCXFx1Nzk5Q1xcdTc5QTFcXHU3OUE4XFx1NzlBOVxcdTc5QUJcXHU3OUFGXFx1NzlCMVxcdTc5QjRcXHU3OUI4XFx1NzlCQlxcdTc5QzJcXHU3OUM0XFx1NzlDN1xcdTc5QzhcXHU3OUNBXFx1NzlDRlxcdTc5RDRcXHU3OUQ2XFx1NzlEQVxcdTc5RERcXHU3OURFXCJdLFxuICAgICAgW1wiOGZkMWExXCIsIFwiXFx1NzlFMFxcdTc5RTJcXHU3OUU1XFx1NzlFQVxcdTc5RUJcXHU3OUVEXFx1NzlGMVxcdTc5RjhcXHU3OUZDXFx1N0EwMlxcdTdBMDNcXHU3QTA3XFx1N0EwOVxcdTdBMEFcXHU3QTBDXFx1N0ExMVxcdTdBMTVcXHU3QTFCXFx1N0ExRVxcdTdBMjFcXHU3QTI3XFx1N0EyQlxcdTdBMkRcXHU3QTJGXFx1N0EzMFxcdTdBMzRcXHU3QTM1XFx1N0EzOFxcdTdBMzlcXHU3QTNBXFx1N0E0NFxcdTdBNDVcXHU3QTQ3XFx1N0E0OFxcdTdBNENcXHU3QTU1XFx1N0E1NlxcdTdBNTlcXHU3QTVDXFx1N0E1RFxcdTdBNUZcXHU3QTYwXFx1N0E2NVxcdTdBNjdcXHU3QTZBXFx1N0E2RFxcdTdBNzVcXHU3QTc4XFx1N0E3RVxcdTdBODBcXHU3QTgyXFx1N0E4NVxcdTdBODZcXHU3QThBXFx1N0E4QlxcdTdBOTBcXHU3QTkxXFx1N0E5NFxcdTdBOUVcXHU3QUEwXFx1N0FBM1xcdTdBQUNcXHU3QUIzXFx1N0FCNVxcdTdBQjlcXHU3QUJCXFx1N0FCQ1xcdTdBQzZcXHU3QUM5XFx1N0FDQ1xcdTdBQ0VcXHU3QUQxXFx1N0FEQlxcdTdBRThcXHU3QUU5XFx1N0FFQlxcdTdBRUNcXHU3QUYxXFx1N0FGNFxcdTdBRkJcXHU3QUZEXFx1N0FGRVxcdTdCMDdcXHU3QjE0XFx1N0IxRlxcdTdCMjNcXHU3QjI3XFx1N0IyOVxcdTdCMkFcXHU3QjJCXFx1N0IyRFxcdTdCMkVcXHU3QjJGXFx1N0IzMFwiXSxcbiAgICAgIFtcIjhmZDJhMVwiLCBcIlxcdTdCMzFcXHU3QjM0XFx1N0IzRFxcdTdCM0ZcXHU3QjQwXFx1N0I0MVxcdTdCNDdcXHU3QjRFXFx1N0I1NVxcdTdCNjBcXHU3QjY0XFx1N0I2NlxcdTdCNjlcXHU3QjZBXFx1N0I2RFxcdTdCNkZcXHU3QjcyXFx1N0I3M1xcdTdCNzdcXHU3Qjg0XFx1N0I4OVxcdTdCOEVcXHU3QjkwXFx1N0I5MVxcdTdCOTZcXHU3QjlCXFx1N0I5RVxcdTdCQTBcXHU3QkE1XFx1N0JBQ1xcdTdCQUZcXHU3QkIwXFx1N0JCMlxcdTdCQjVcXHU3QkI2XFx1N0JCQVxcdTdCQkJcXHU3QkJDXFx1N0JCRFxcdTdCQzJcXHU3QkM1XFx1N0JDOFxcdTdCQ0FcXHU3QkQ0XFx1N0JENlxcdTdCRDdcXHU3QkQ5XFx1N0JEQVxcdTdCREJcXHU3QkU4XFx1N0JFQVxcdTdCRjJcXHU3QkY0XFx1N0JGNVxcdTdCRjhcXHU3QkY5XFx1N0JGQVxcdTdCRkNcXHU3QkZFXFx1N0MwMVxcdTdDMDJcXHU3QzAzXFx1N0MwNFxcdTdDMDZcXHU3QzA5XFx1N0MwQlxcdTdDMENcXHU3QzBFXFx1N0MwRlxcdTdDMTlcXHU3QzFCXFx1N0MyMFxcdTdDMjVcXHU3QzI2XFx1N0MyOFxcdTdDMkNcXHU3QzMxXFx1N0MzM1xcdTdDMzRcXHU3QzM2XFx1N0MzOVxcdTdDM0FcXHU3QzQ2XFx1N0M0QVxcdTdDNTVcXHU3QzUxXFx1N0M1MlxcdTdDNTNcXHU3QzU5XCIsIDVdLFxuICAgICAgW1wiOGZkM2ExXCIsIFwiXFx1N0M2MVxcdTdDNjNcXHU3QzY3XFx1N0M2OVxcdTdDNkRcXHU3QzZFXFx1N0M3MFxcdTdDNzJcXHU3Qzc5XFx1N0M3Q1xcdTdDN0RcXHU3Qzg2XFx1N0M4N1xcdTdDOEZcXHU3Qzk0XFx1N0M5RVxcdTdDQTBcXHU3Q0E2XFx1N0NCMFxcdTdDQjZcXHU3Q0I3XFx1N0NCQVxcdTdDQkJcXHU3Q0JDXFx1N0NCRlxcdTdDQzRcXHU3Q0M3XFx1N0NDOFxcdTdDQzlcXHU3Q0NEXFx1N0NDRlxcdTdDRDNcXHU3Q0Q0XFx1N0NENVxcdTdDRDdcXHU3Q0Q5XFx1N0NEQVxcdTdDRERcXHU3Q0U2XFx1N0NFOVxcdTdDRUJcXHU3Q0Y1XFx1N0QwM1xcdTdEMDdcXHU3RDA4XFx1N0QwOVxcdTdEMEZcXHU3RDExXFx1N0QxMlxcdTdEMTNcXHU3RDE2XFx1N0QxRFxcdTdEMUVcXHU3RDIzXFx1N0QyNlxcdTdEMkFcXHU3RDJEXFx1N0QzMVxcdTdEM0NcXHU3RDNEXFx1N0QzRVxcdTdENDBcXHU3RDQxXFx1N0Q0N1xcdTdENDhcXHU3RDREXFx1N0Q1MVxcdTdENTNcXHU3RDU3XFx1N0Q1OVxcdTdENUFcXHU3RDVDXFx1N0Q1RFxcdTdENjVcXHU3RDY3XFx1N0Q2QVxcdTdENzBcXHU3RDc4XFx1N0Q3QVxcdTdEN0JcXHU3RDdGXFx1N0Q4MVxcdTdEODJcXHU3RDgzXFx1N0Q4NVxcdTdEODZcXHU3RDg4XFx1N0Q4QlxcdTdEOENcXHU3RDhEXFx1N0Q5MVxcdTdEOTZcXHU3RDk3XFx1N0Q5RFwiXSxcbiAgICAgIFtcIjhmZDRhMVwiLCBcIlxcdTdEOUVcXHU3REE2XFx1N0RBN1xcdTdEQUFcXHU3REIzXFx1N0RCNlxcdTdEQjdcXHU3REI5XFx1N0RDMlwiLCA0LCBcIlxcdTdEQ0NcXHU3RENEXFx1N0RDRVxcdTdERDdcXHU3REQ5XFx1N0UwMFxcdTdERTJcXHU3REU1XFx1N0RFNlxcdTdERUFcXHU3REVCXFx1N0RFRFxcdTdERjFcXHU3REY1XFx1N0RGNlxcdTdERjlcXHU3REZBXFx1N0UwOFxcdTdFMTBcXHU3RTExXFx1N0UxNVxcdTdFMTdcXHU3RTFDXFx1N0UxRFxcdTdFMjBcXHU3RTI3XFx1N0UyOFxcdTdFMkNcXHU3RTJEXFx1N0UyRlxcdTdFMzNcXHU3RTM2XFx1N0UzRlxcdTdFNDRcXHU3RTQ1XFx1N0U0N1xcdTdFNEVcXHU3RTUwXFx1N0U1MlxcdTdFNThcXHU3RTVGXFx1N0U2MVxcdTdFNjJcXHU3RTY1XFx1N0U2QlxcdTdFNkVcXHU3RTZGXFx1N0U3M1xcdTdFNzhcXHU3RTdFXFx1N0U4MVxcdTdFODZcXHU3RTg3XFx1N0U4QVxcdTdFOERcXHU3RTkxXFx1N0U5NVxcdTdFOThcXHU3RTlBXFx1N0U5RFxcdTdFOUVcXHU3RjNDXFx1N0YzQlxcdTdGM0RcXHU3RjNFXFx1N0YzRlxcdTdGNDNcXHU3RjQ0XFx1N0Y0N1xcdTdGNEZcXHU3RjUyXFx1N0Y1M1xcdTdGNUJcXHU3RjVDXFx1N0Y1RFxcdTdGNjFcXHU3RjYzXFx1N0Y2NFxcdTdGNjVcXHU3RjY2XFx1N0Y2RFwiXSxcbiAgICAgIFtcIjhmZDVhMVwiLCBcIlxcdTdGNzFcXHU3RjdEXFx1N0Y3RVxcdTdGN0ZcXHU3RjgwXFx1N0Y4QlxcdTdGOERcXHU3RjhGXFx1N0Y5MFxcdTdGOTFcXHU3Rjk2XFx1N0Y5N1xcdTdGOUNcXHU3RkExXFx1N0ZBMlxcdTdGQTZcXHU3RkFBXFx1N0ZBRFxcdTdGQjRcXHU3RkJDXFx1N0ZCRlxcdTdGQzBcXHU3RkMzXFx1N0ZDOFxcdTdGQ0VcXHU3RkNGXFx1N0ZEQlxcdTdGREZcXHU3RkUzXFx1N0ZFNVxcdTdGRThcXHU3RkVDXFx1N0ZFRVxcdTdGRUZcXHU3RkYyXFx1N0ZGQVxcdTdGRkRcXHU3RkZFXFx1N0ZGRlxcdTgwMDdcXHU4MDA4XFx1ODAwQVxcdTgwMERcXHU4MDBFXFx1ODAwRlxcdTgwMTFcXHU4MDEzXFx1ODAxNFxcdTgwMTZcXHU4MDFEXFx1ODAxRVxcdTgwMUZcXHU4MDIwXFx1ODAyNFxcdTgwMjZcXHU4MDJDXFx1ODAyRVxcdTgwMzBcXHU4MDM0XFx1ODAzNVxcdTgwMzdcXHU4MDM5XFx1ODAzQVxcdTgwM0NcXHU4MDNFXFx1ODA0MFxcdTgwNDRcXHU4MDYwXFx1ODA2NFxcdTgwNjZcXHU4MDZEXFx1ODA3MVxcdTgwNzVcXHU4MDgxXFx1ODA4OFxcdTgwOEVcXHU4MDlDXFx1ODA5RVxcdTgwQTZcXHU4MEE3XFx1ODBBQlxcdTgwQjhcXHU4MEI5XFx1ODBDOFxcdTgwQ0RcXHU4MENGXFx1ODBEMlxcdTgwRDRcXHU4MEQ1XFx1ODBEN1xcdTgwRDhcXHU4MEUwXFx1ODBFRFxcdTgwRUVcIl0sXG4gICAgICBbXCI4ZmQ2YTFcIiwgXCJcXHU4MEYwXFx1ODBGMlxcdTgwRjNcXHU4MEY2XFx1ODBGOVxcdTgwRkFcXHU4MEZFXFx1ODEwM1xcdTgxMEJcXHU4MTE2XFx1ODExN1xcdTgxMThcXHU4MTFDXFx1ODExRVxcdTgxMjBcXHU4MTI0XFx1ODEyN1xcdTgxMkNcXHU4MTMwXFx1ODEzNVxcdTgxM0FcXHU4MTNDXFx1ODE0NVxcdTgxNDdcXHU4MTRBXFx1ODE0Q1xcdTgxNTJcXHU4MTU3XFx1ODE2MFxcdTgxNjFcXHU4MTY3XFx1ODE2OFxcdTgxNjlcXHU4MTZEXFx1ODE2RlxcdTgxNzdcXHU4MTgxXFx1ODE5MFxcdTgxODRcXHU4MTg1XFx1ODE4NlxcdTgxOEJcXHU4MThFXFx1ODE5NlxcdTgxOThcXHU4MTlCXFx1ODE5RVxcdTgxQTJcXHU4MUFFXFx1ODFCMlxcdTgxQjRcXHU4MUJCXFx1ODFDQlxcdTgxQzNcXHU4MUM1XFx1ODFDQVxcdTgxQ0VcXHU4MUNGXFx1ODFENVxcdTgxRDdcXHU4MURCXFx1ODFERFxcdTgxREVcXHU4MUUxXFx1ODFFNFxcdTgxRUJcXHU4MUVDXFx1ODFGMFxcdTgxRjFcXHU4MUYyXFx1ODFGNVxcdTgxRjZcXHU4MUY4XFx1ODFGOVxcdTgxRkRcXHU4MUZGXFx1ODIwMFxcdTgyMDNcXHU4MjBGXFx1ODIxM1xcdTgyMTRcXHU4MjE5XFx1ODIxQVxcdTgyMURcXHU4MjIxXFx1ODIyMlxcdTgyMjhcXHU4MjMyXFx1ODIzNFxcdTgyM0FcXHU4MjQzXFx1ODI0NFxcdTgyNDVcXHU4MjQ2XCJdLFxuICAgICAgW1wiOGZkN2ExXCIsIFwiXFx1ODI0QlxcdTgyNEVcXHU4MjRGXFx1ODI1MVxcdTgyNTZcXHU4MjVDXFx1ODI2MFxcdTgyNjNcXHU4MjY3XFx1ODI2RFxcdTgyNzRcXHU4MjdCXFx1ODI3RFxcdTgyN0ZcXHU4MjgwXFx1ODI4MVxcdTgyODNcXHU4Mjg0XFx1ODI4N1xcdTgyODlcXHU4MjhBXFx1ODI4RVxcdTgyOTFcXHU4Mjk0XFx1ODI5NlxcdTgyOThcXHU4MjlBXFx1ODI5QlxcdTgyQTBcXHU4MkExXFx1ODJBM1xcdTgyQTRcXHU4MkE3XFx1ODJBOFxcdTgyQTlcXHU4MkFBXFx1ODJBRVxcdTgyQjBcXHU4MkIyXFx1ODJCNFxcdTgyQjdcXHU4MkJBXFx1ODJCQ1xcdTgyQkVcXHU4MkJGXFx1ODJDNlxcdTgyRDBcXHU4MkQ1XFx1ODJEQVxcdTgyRTBcXHU4MkUyXFx1ODJFNFxcdTgyRThcXHU4MkVBXFx1ODJFRFxcdTgyRUZcXHU4MkY2XFx1ODJGN1xcdTgyRkRcXHU4MkZFXFx1ODMwMFxcdTgzMDFcXHU4MzA3XFx1ODMwOFxcdTgzMEFcXHU4MzBCXFx1ODM1NFxcdTgzMUJcXHU4MzFEXFx1ODMxRVxcdTgzMUZcXHU4MzIxXFx1ODMyMlxcdTgzMkNcXHU4MzJEXFx1ODMyRVxcdTgzMzBcXHU4MzMzXFx1ODMzN1xcdTgzM0FcXHU4MzNDXFx1ODMzRFxcdTgzNDJcXHU4MzQzXFx1ODM0NFxcdTgzNDdcXHU4MzREXFx1ODM0RVxcdTgzNTFcXHU4MzU1XFx1ODM1NlxcdTgzNTdcXHU4MzcwXFx1ODM3OFwiXSxcbiAgICAgIFtcIjhmZDhhMVwiLCBcIlxcdTgzN0RcXHU4MzdGXFx1ODM4MFxcdTgzODJcXHU4Mzg0XFx1ODM4NlxcdTgzOERcXHU4MzkyXFx1ODM5NFxcdTgzOTVcXHU4Mzk4XFx1ODM5OVxcdTgzOUJcXHU4MzlDXFx1ODM5RFxcdTgzQTZcXHU4M0E3XFx1ODNBOVxcdTgzQUNcXHU4M0JFXFx1ODNCRlxcdTgzQzBcXHU4M0M3XFx1ODNDOVxcdTgzQ0ZcXHU4M0QwXFx1ODNEMVxcdTgzRDRcXHU4M0REXFx1ODM1M1xcdTgzRThcXHU4M0VBXFx1ODNGNlxcdTgzRjhcXHU4M0Y5XFx1ODNGQ1xcdTg0MDFcXHU4NDA2XFx1ODQwQVxcdTg0MEZcXHU4NDExXFx1ODQxNVxcdTg0MTlcXHU4M0FEXFx1ODQyRlxcdTg0MzlcXHU4NDQ1XFx1ODQ0N1xcdTg0NDhcXHU4NDRBXFx1ODQ0RFxcdTg0NEZcXHU4NDUxXFx1ODQ1MlxcdTg0NTZcXHU4NDU4XFx1ODQ1OVxcdTg0NUFcXHU4NDVDXFx1ODQ2MFxcdTg0NjRcXHU4NDY1XFx1ODQ2N1xcdTg0NkFcXHU4NDcwXFx1ODQ3M1xcdTg0NzRcXHU4NDc2XFx1ODQ3OFxcdTg0N0NcXHU4NDdEXFx1ODQ4MVxcdTg0ODVcXHU4NDkyXFx1ODQ5M1xcdTg0OTVcXHU4NDlFXFx1ODRBNlxcdTg0QThcXHU4NEE5XFx1ODRBQVxcdTg0QUZcXHU4NEIxXFx1ODRCNFxcdTg0QkFcXHU4NEJEXFx1ODRCRVxcdTg0QzBcXHU4NEMyXFx1ODRDN1xcdTg0QzhcXHU4NENDXFx1ODRDRlxcdTg0RDNcIl0sXG4gICAgICBbXCI4ZmQ5YTFcIiwgXCJcXHU4NERDXFx1ODRFN1xcdTg0RUFcXHU4NEVGXFx1ODRGMFxcdTg0RjFcXHU4NEYyXFx1ODRGN1xcdTg1MzJcXHU4NEZBXFx1ODRGQlxcdTg0RkRcXHU4NTAyXFx1ODUwM1xcdTg1MDdcXHU4NTBDXFx1ODUwRVxcdTg1MTBcXHU4NTFDXFx1ODUxRVxcdTg1MjJcXHU4NTIzXFx1ODUyNFxcdTg1MjVcXHU4NTI3XFx1ODUyQVxcdTg1MkJcXHU4NTJGXFx1ODUzM1xcdTg1MzRcXHU4NTM2XFx1ODUzRlxcdTg1NDZcXHU4NTRGXCIsIDQsIFwiXFx1ODU1NlxcdTg1NTlcXHU4NTVDXCIsIDYsIFwiXFx1ODU2NFxcdTg1NkJcXHU4NTZGXFx1ODU3OVxcdTg1N0FcXHU4NTdCXFx1ODU3RFxcdTg1N0ZcXHU4NTgxXFx1ODU4NVxcdTg1ODZcXHU4NTg5XFx1ODU4QlxcdTg1OENcXHU4NThGXFx1ODU5M1xcdTg1OThcXHU4NTlEXFx1ODU5RlxcdTg1QTBcXHU4NUEyXFx1ODVBNVxcdTg1QTdcXHU4NUI0XFx1ODVCNlxcdTg1QjdcXHU4NUI4XFx1ODVCQ1xcdTg1QkRcXHU4NUJFXFx1ODVCRlxcdTg1QzJcXHU4NUM3XFx1ODVDQVxcdTg1Q0JcXHU4NUNFXFx1ODVBRFxcdTg1RDhcXHU4NURBXFx1ODVERlxcdTg1RTBcXHU4NUU2XFx1ODVFOFxcdTg1RURcXHU4NUYzXFx1ODVGNlxcdTg1RkNcIl0sXG4gICAgICBbXCI4ZmRhYTFcIiwgXCJcXHU4NUZGXFx1ODYwMFxcdTg2MDRcXHU4NjA1XFx1ODYwRFxcdTg2MEVcXHU4NjEwXFx1ODYxMVxcdTg2MTJcXHU4NjE4XFx1ODYxOVxcdTg2MUJcXHU4NjFFXFx1ODYyMVxcdTg2MjdcXHU4NjI5XFx1ODYzNlxcdTg2MzhcXHU4NjNBXFx1ODYzQ1xcdTg2M0RcXHU4NjQwXFx1ODY0MlxcdTg2NDZcXHU4NjUyXFx1ODY1M1xcdTg2NTZcXHU4NjU3XFx1ODY1OFxcdTg2NTlcXHU4NjVEXFx1ODY2MFwiLCA0LCBcIlxcdTg2NjlcXHU4NjZDXFx1ODY2RlxcdTg2NzVcXHU4Njc2XFx1ODY3N1xcdTg2N0FcXHU4NjhEXFx1ODY5MVxcdTg2OTZcXHU4Njk4XFx1ODY5QVxcdTg2OUNcXHU4NkExXFx1ODZBNlxcdTg2QTdcXHU4NkE4XFx1ODZBRFxcdTg2QjFcXHU4NkIzXFx1ODZCNFxcdTg2QjVcXHU4NkI3XFx1ODZCOFxcdTg2QjlcXHU4NkJGXFx1ODZDMFxcdTg2QzFcXHU4NkMzXFx1ODZDNVxcdTg2RDFcXHU4NkQyXFx1ODZENVxcdTg2RDdcXHU4NkRBXFx1ODZEQ1xcdTg2RTBcXHU4NkUzXFx1ODZFNVxcdTg2RTdcXHU4Njg4XFx1ODZGQVxcdTg2RkNcXHU4NkZEXFx1ODcwNFxcdTg3MDVcXHU4NzA3XFx1ODcwQlxcdTg3MEVcXHU4NzBGXFx1ODcxMFxcdTg3MTNcXHU4NzE0XFx1ODcxOVxcdTg3MUVcXHU4NzFGXFx1ODcyMVxcdTg3MjNcIl0sXG4gICAgICBbXCI4ZmRiYTFcIiwgXCJcXHU4NzI4XFx1ODcyRVxcdTg3MkZcXHU4NzMxXFx1ODczMlxcdTg3MzlcXHU4NzNBXFx1ODczQ1xcdTg3M0RcXHU4NzNFXFx1ODc0MFxcdTg3NDNcXHU4NzQ1XFx1ODc0RFxcdTg3NThcXHU4NzVEXFx1ODc2MVxcdTg3NjRcXHU4NzY1XFx1ODc2RlxcdTg3NzFcXHU4NzcyXFx1ODc3QlxcdTg3ODNcIiwgNiwgXCJcXHU4NzhCXFx1ODc4Q1xcdTg3OTBcXHU4NzkzXFx1ODc5NVxcdTg3OTdcXHU4Nzk4XFx1ODc5OVxcdTg3OUVcXHU4N0EwXFx1ODdBM1xcdTg3QTdcXHU4N0FDXFx1ODdBRFxcdTg3QUVcXHU4N0IxXFx1ODdCNVxcdTg3QkVcXHU4N0JGXFx1ODdDMVxcdTg3QzhcXHU4N0M5XFx1ODdDQVxcdTg3Q0VcXHU4N0Q1XFx1ODdENlxcdTg3RDlcXHU4N0RBXFx1ODdEQ1xcdTg3REZcXHU4N0UyXFx1ODdFM1xcdTg3RTRcXHU4N0VBXFx1ODdFQlxcdTg3RURcXHU4N0YxXFx1ODdGM1xcdTg3RjhcXHU4N0ZBXFx1ODdGRlxcdTg4MDFcXHU4ODAzXFx1ODgwNlxcdTg4MDlcXHU4ODBBXFx1ODgwQlxcdTg4MTBcXHU4ODE5XFx1ODgxMlxcdTg4MTNcXHU4ODE0XFx1ODgxOFxcdTg4MUFcXHU4ODFCXFx1ODgxQ1xcdTg4MUVcXHU4ODFGXFx1ODgyOFxcdTg4MkRcXHU4ODJFXFx1ODgzMFxcdTg4MzJcXHU4ODM1XCJdLFxuICAgICAgW1wiOGZkY2ExXCIsIFwiXFx1ODgzQVxcdTg4M0NcXHU4ODQxXFx1ODg0M1xcdTg4NDVcXHU4ODQ4XFx1ODg0OVxcdTg4NEFcXHU4ODRCXFx1ODg0RVxcdTg4NTFcXHU4ODU1XFx1ODg1NlxcdTg4NThcXHU4ODVBXFx1ODg1Q1xcdTg4NUZcXHU4ODYwXFx1ODg2NFxcdTg4NjlcXHU4ODcxXFx1ODg3OVxcdTg4N0JcXHU4ODgwXFx1ODg5OFxcdTg4OUFcXHU4ODlCXFx1ODg5Q1xcdTg4OUZcXHU4OEEwXFx1ODhBOFxcdTg4QUFcXHU4OEJBXFx1ODhCRFxcdTg4QkVcXHU4OEMwXFx1ODhDQVwiLCA0LCBcIlxcdTg4RDFcXHU4OEQyXFx1ODhEM1xcdTg4REJcXHU4OERFXFx1ODhFN1xcdTg4RUZcXHU4OEYwXFx1ODhGMVxcdTg4RjVcXHU4OEY3XFx1ODkwMVxcdTg5MDZcXHU4OTBEXFx1ODkwRVxcdTg5MEZcXHU4OTE1XFx1ODkxNlxcdTg5MThcXHU4OTE5XFx1ODkxQVxcdTg5MUNcXHU4OTIwXFx1ODkyNlxcdTg5MjdcXHU4OTI4XFx1ODkzMFxcdTg5MzFcXHU4OTMyXFx1ODkzNVxcdTg5MzlcXHU4OTNBXFx1ODkzRVxcdTg5NDBcXHU4OTQyXFx1ODk0NVxcdTg5NDZcXHU4OTQ5XFx1ODk0RlxcdTg5NTJcXHU4OTU3XFx1ODk1QVxcdTg5NUJcXHU4OTVDXFx1ODk2MVxcdTg5NjJcXHU4OTYzXFx1ODk2QlxcdTg5NkVcXHU4OTcwXFx1ODk3M1xcdTg5NzVcXHU4OTdBXCJdLFxuICAgICAgW1wiOGZkZGExXCIsIFwiXFx1ODk3QlxcdTg5N0NcXHU4OTdEXFx1ODk4OVxcdTg5OERcXHU4OTkwXFx1ODk5NFxcdTg5OTVcXHU4OTlCXFx1ODk5Q1xcdTg5OUZcXHU4OUEwXFx1ODlBNVxcdTg5QjBcXHU4OUI0XFx1ODlCNVxcdTg5QjZcXHU4OUI3XFx1ODlCQ1xcdTg5RDRcIiwgNCwgXCJcXHU4OUU1XFx1ODlFOVxcdTg5RUJcXHU4OUVEXFx1ODlGMVxcdTg5RjNcXHU4OUY2XFx1ODlGOVxcdTg5RkRcXHU4OUZGXFx1OEEwNFxcdThBMDVcXHU4QTA3XFx1OEEwRlxcdThBMTFcXHU4QTEyXFx1OEExNFxcdThBMTVcXHU4QTFFXFx1OEEyMFxcdThBMjJcXHU4QTI0XFx1OEEyNlxcdThBMkJcXHU4QTJDXFx1OEEyRlxcdThBMzVcXHU4QTM3XFx1OEEzRFxcdThBM0VcXHU4QTQwXFx1OEE0M1xcdThBNDVcXHU4QTQ3XFx1OEE0OVxcdThBNERcXHU4QTRFXFx1OEE1M1xcdThBNTZcXHU4QTU3XFx1OEE1OFxcdThBNUNcXHU4QTVEXFx1OEE2MVxcdThBNjVcXHU4QTY3XFx1OEE3NVxcdThBNzZcXHU4QTc3XFx1OEE3OVxcdThBN0FcXHU4QTdCXFx1OEE3RVxcdThBN0ZcXHU4QTgwXFx1OEE4M1xcdThBODZcXHU4QThCXFx1OEE4RlxcdThBOTBcXHU4QTkyXFx1OEE5NlxcdThBOTdcXHU4QTk5XFx1OEE5RlxcdThBQTdcXHU4QUE5XFx1OEFBRVxcdThBQUZcXHU4QUIzXCJdLFxuICAgICAgW1wiOGZkZWExXCIsIFwiXFx1OEFCNlxcdThBQjdcXHU4QUJCXFx1OEFCRVxcdThBQzNcXHU4QUM2XFx1OEFDOFxcdThBQzlcXHU4QUNBXFx1OEFEMVxcdThBRDNcXHU4QUQ0XFx1OEFENVxcdThBRDdcXHU4QUREXFx1OEFERlxcdThBRUNcXHU4QUYwXFx1OEFGNFxcdThBRjVcXHU4QUY2XFx1OEFGQ1xcdThBRkZcXHU4QjA1XFx1OEIwNlxcdThCMEJcXHU4QjExXFx1OEIxQ1xcdThCMUVcXHU4QjFGXFx1OEIwQVxcdThCMkRcXHU4QjMwXFx1OEIzN1xcdThCM0NcXHU4QjQyXCIsIDQsIFwiXFx1OEI0OFxcdThCNTJcXHU4QjUzXFx1OEI1NFxcdThCNTlcXHU4QjREXFx1OEI1RVxcdThCNjNcXHU4QjZEXFx1OEI3NlxcdThCNzhcXHU4Qjc5XFx1OEI3Q1xcdThCN0VcXHU4QjgxXFx1OEI4NFxcdThCODVcXHU4QjhCXFx1OEI4RFxcdThCOEZcXHU4Qjk0XFx1OEI5NVxcdThCOUNcXHU4QjlFXFx1OEI5RlxcdThDMzhcXHU4QzM5XFx1OEMzRFxcdThDM0VcXHU4QzQ1XFx1OEM0N1xcdThDNDlcXHU4QzRCXFx1OEM0RlxcdThDNTFcXHU4QzUzXFx1OEM1NFxcdThDNTdcXHU4QzU4XFx1OEM1QlxcdThDNURcXHU4QzU5XFx1OEM2M1xcdThDNjRcXHU4QzY2XFx1OEM2OFxcdThDNjlcXHU4QzZEXFx1OEM3M1xcdThDNzVcXHU4Qzc2XFx1OEM3QlxcdThDN0VcXHU4Qzg2XCJdLFxuICAgICAgW1wiOGZkZmExXCIsIFwiXFx1OEM4N1xcdThDOEJcXHU4QzkwXFx1OEM5MlxcdThDOTNcXHU4Qzk5XFx1OEM5QlxcdThDOUNcXHU4Q0E0XFx1OENCOVxcdThDQkFcXHU4Q0M1XFx1OENDNlxcdThDQzlcXHU4Q0NCXFx1OENDRlxcdThDRDZcXHU4Q0Q1XFx1OENEOVxcdThDRERcXHU4Q0UxXFx1OENFOFxcdThDRUNcXHU4Q0VGXFx1OENGMFxcdThDRjJcXHU4Q0Y1XFx1OENGN1xcdThDRjhcXHU4Q0ZFXFx1OENGRlxcdThEMDFcXHU4RDAzXFx1OEQwOVxcdThEMTJcXHU4RDE3XFx1OEQxQlxcdThENjVcXHU4RDY5XFx1OEQ2Q1xcdThENkVcXHU4RDdGXFx1OEQ4MlxcdThEODRcXHU4RDg4XFx1OEQ4RFxcdThEOTBcXHU4RDkxXFx1OEQ5NVxcdThEOUVcXHU4RDlGXFx1OERBMFxcdThEQTZcXHU4REFCXFx1OERBQ1xcdThEQUZcXHU4REIyXFx1OERCNVxcdThEQjdcXHU4REI5XFx1OERCQlxcdThEQzBcXHU4REM1XFx1OERDNlxcdThEQzdcXHU4REM4XFx1OERDQVxcdThEQ0VcXHU4REQxXFx1OERENFxcdThERDVcXHU4REQ3XFx1OEREOVxcdThERTRcXHU4REU1XFx1OERFN1xcdThERUNcXHU4REYwXFx1OERCQ1xcdThERjFcXHU4REYyXFx1OERGNFxcdThERkRcXHU4RTAxXFx1OEUwNFxcdThFMDVcXHU4RTA2XFx1OEUwQlxcdThFMTFcXHU4RTE0XFx1OEUxNlxcdThFMjBcXHU4RTIxXFx1OEUyMlwiXSxcbiAgICAgIFtcIjhmZTBhMVwiLCBcIlxcdThFMjNcXHU4RTI2XFx1OEUyN1xcdThFMzFcXHU4RTMzXFx1OEUzNlxcdThFMzdcXHU4RTM4XFx1OEUzOVxcdThFM0RcXHU4RTQwXFx1OEU0MVxcdThFNEJcXHU4RTREXFx1OEU0RVxcdThFNEZcXHU4RTU0XFx1OEU1QlxcdThFNUNcXHU4RTVEXFx1OEU1RVxcdThFNjFcXHU4RTYyXFx1OEU2OVxcdThFNkNcXHU4RTZEXFx1OEU2RlxcdThFNzBcXHU4RTcxXFx1OEU3OVxcdThFN0FcXHU4RTdCXFx1OEU4MlxcdThFODNcXHU4RTg5XFx1OEU5MFxcdThFOTJcXHU4RTk1XFx1OEU5QVxcdThFOUJcXHU4RTlEXFx1OEU5RVxcdThFQTJcXHU4RUE3XFx1OEVBOVxcdThFQURcXHU4RUFFXFx1OEVCM1xcdThFQjVcXHU4RUJBXFx1OEVCQlxcdThFQzBcXHU4RUMxXFx1OEVDM1xcdThFQzRcXHU4RUM3XFx1OEVDRlxcdThFRDFcXHU4RUQ0XFx1OEVEQ1xcdThFRThcXHU4RUVFXFx1OEVGMFxcdThFRjFcXHU4RUY3XFx1OEVGOVxcdThFRkFcXHU4RUVEXFx1OEYwMFxcdThGMDJcXHU4RjA3XFx1OEYwOFxcdThGMEZcXHU4RjEwXFx1OEYxNlxcdThGMTdcXHU4RjE4XFx1OEYxRVxcdThGMjBcXHU4RjIxXFx1OEYyM1xcdThGMjVcXHU4RjI3XFx1OEYyOFxcdThGMkNcXHU4RjJEXFx1OEYyRVxcdThGMzRcXHU4RjM1XFx1OEYzNlxcdThGMzdcXHU4RjNBXFx1OEY0MFxcdThGNDFcIl0sXG4gICAgICBbXCI4ZmUxYTFcIiwgXCJcXHU4RjQzXFx1OEY0N1xcdThGNEZcXHU4RjUxXCIsIDQsIFwiXFx1OEY1OFxcdThGNURcXHU4RjVFXFx1OEY2NVxcdThGOURcXHU4RkEwXFx1OEZBMVxcdThGQTRcXHU4RkE1XFx1OEZBNlxcdThGQjVcXHU4RkI2XFx1OEZCOFxcdThGQkVcXHU4RkMwXFx1OEZDMVxcdThGQzZcXHU4RkNBXFx1OEZDQlxcdThGQ0RcXHU4RkQwXFx1OEZEMlxcdThGRDNcXHU4RkQ1XFx1OEZFMFxcdThGRTNcXHU4RkU0XFx1OEZFOFxcdThGRUVcXHU4RkYxXFx1OEZGNVxcdThGRjZcXHU4RkZCXFx1OEZGRVxcdTkwMDJcXHU5MDA0XFx1OTAwOFxcdTkwMENcXHU5MDE4XFx1OTAxQlxcdTkwMjhcXHU5MDI5XFx1OTAyRlxcdTkwMkFcXHU5MDJDXFx1OTAyRFxcdTkwMzNcXHU5MDM0XFx1OTAzN1xcdTkwM0ZcXHU5MDQzXFx1OTA0NFxcdTkwNENcXHU5MDVCXFx1OTA1RFxcdTkwNjJcXHU5MDY2XFx1OTA2N1xcdTkwNkNcXHU5MDcwXFx1OTA3NFxcdTkwNzlcXHU5MDg1XFx1OTA4OFxcdTkwOEJcXHU5MDhDXFx1OTA4RVxcdTkwOTBcXHU5MDk1XFx1OTA5N1xcdTkwOThcXHU5MDk5XFx1OTA5QlxcdTkwQTBcXHU5MEExXFx1OTBBMlxcdTkwQTVcXHU5MEIwXFx1OTBCMlxcdTkwQjNcXHU5MEI0XFx1OTBCNlxcdTkwQkRcXHU5MENDXFx1OTBCRVxcdTkwQzNcIl0sXG4gICAgICBbXCI4ZmUyYTFcIiwgXCJcXHU5MEM0XFx1OTBDNVxcdTkwQzdcXHU5MEM4XFx1OTBENVxcdTkwRDdcXHU5MEQ4XFx1OTBEOVxcdTkwRENcXHU5MEREXFx1OTBERlxcdTkwRTVcXHU5MEQyXFx1OTBGNlxcdTkwRUJcXHU5MEVGXFx1OTBGMFxcdTkwRjRcXHU5MEZFXFx1OTBGRlxcdTkxMDBcXHU5MTA0XFx1OTEwNVxcdTkxMDZcXHU5MTA4XFx1OTEwRFxcdTkxMTBcXHU5MTE0XFx1OTExNlxcdTkxMTdcXHU5MTE4XFx1OTExQVxcdTkxMUNcXHU5MTFFXFx1OTEyMFxcdTkxMjVcXHU5MTIyXFx1OTEyM1xcdTkxMjdcXHU5MTI5XFx1OTEyRVxcdTkxMkZcXHU5MTMxXFx1OTEzNFxcdTkxMzZcXHU5MTM3XFx1OTEzOVxcdTkxM0FcXHU5MTNDXFx1OTEzRFxcdTkxNDNcXHU5MTQ3XFx1OTE0OFxcdTkxNEZcXHU5MTUzXFx1OTE1N1xcdTkxNTlcXHU5MTVBXFx1OTE1QlxcdTkxNjFcXHU5MTY0XFx1OTE2N1xcdTkxNkRcXHU5MTc0XFx1OTE3OVxcdTkxN0FcXHU5MTdCXFx1OTE4MVxcdTkxODNcXHU5MTg1XFx1OTE4NlxcdTkxOEFcXHU5MThFXFx1OTE5MVxcdTkxOTNcXHU5MTk0XFx1OTE5NVxcdTkxOThcXHU5MTlFXFx1OTFBMVxcdTkxQTZcXHU5MUE4XFx1OTFBQ1xcdTkxQURcXHU5MUFFXFx1OTFCMFxcdTkxQjFcXHU5MUIyXFx1OTFCM1xcdTkxQjZcXHU5MUJCXFx1OTFCQ1xcdTkxQkRcXHU5MUJGXCJdLFxuICAgICAgW1wiOGZlM2ExXCIsIFwiXFx1OTFDMlxcdTkxQzNcXHU5MUM1XFx1OTFEM1xcdTkxRDRcXHU5MUQ3XFx1OTFEOVxcdTkxREFcXHU5MURFXFx1OTFFNFxcdTkxRTVcXHU5MUU5XFx1OTFFQVxcdTkxRUNcIiwgNSwgXCJcXHU5MUY3XFx1OTFGOVxcdTkxRkJcXHU5MUZEXFx1OTIwMFxcdTkyMDFcXHU5MjA0XFx1OTIwNVxcdTkyMDZcXHU5MjA3XFx1OTIwOVxcdTkyMEFcXHU5MjBDXFx1OTIxMFxcdTkyMTJcXHU5MjEzXFx1OTIxNlxcdTkyMThcXHU5MjFDXFx1OTIxRFxcdTkyMjNcXHU5MjI0XFx1OTIyNVxcdTkyMjZcXHU5MjI4XFx1OTIyRVxcdTkyMkZcXHU5MjMwXFx1OTIzM1xcdTkyMzVcXHU5MjM2XFx1OTIzOFxcdTkyMzlcXHU5MjNBXFx1OTIzQ1xcdTkyM0VcXHU5MjQwXFx1OTI0MlxcdTkyNDNcXHU5MjQ2XFx1OTI0N1xcdTkyNEFcXHU5MjREXFx1OTI0RVxcdTkyNEZcXHU5MjUxXFx1OTI1OFxcdTkyNTlcXHU5MjVDXFx1OTI1RFxcdTkyNjBcXHU5MjYxXFx1OTI2NVxcdTkyNjdcXHU5MjY4XFx1OTI2OVxcdTkyNkVcXHU5MjZGXFx1OTI3MFxcdTkyNzVcIiwgNCwgXCJcXHU5MjdCXFx1OTI3Q1xcdTkyN0RcXHU5MjdGXFx1OTI4OFxcdTkyODlcXHU5MjhBXFx1OTI4RFxcdTkyOEVcXHU5MjkyXFx1OTI5N1wiXSxcbiAgICAgIFtcIjhmZTRhMVwiLCBcIlxcdTkyOTlcXHU5MjlGXFx1OTJBMFxcdTkyQTRcXHU5MkE1XFx1OTJBN1xcdTkyQThcXHU5MkFCXFx1OTJBRlxcdTkyQjJcXHU5MkI2XFx1OTJCOFxcdTkyQkFcXHU5MkJCXFx1OTJCQ1xcdTkyQkRcXHU5MkJGXCIsIDQsIFwiXFx1OTJDNVxcdTkyQzZcXHU5MkM3XFx1OTJDOFxcdTkyQ0JcXHU5MkNDXFx1OTJDRFxcdTkyQ0VcXHU5MkQwXFx1OTJEM1xcdTkyRDVcXHU5MkQ3XFx1OTJEOFxcdTkyRDlcXHU5MkRDXFx1OTJERFxcdTkyREZcXHU5MkUwXFx1OTJFMVxcdTkyRTNcXHU5MkU1XFx1OTJFN1xcdTkyRThcXHU5MkVDXFx1OTJFRVxcdTkyRjBcXHU5MkY5XFx1OTJGQlxcdTkyRkZcXHU5MzAwXFx1OTMwMlxcdTkzMDhcXHU5MzBEXFx1OTMxMVxcdTkzMTRcXHU5MzE1XFx1OTMxQ1xcdTkzMURcXHU5MzFFXFx1OTMxRlxcdTkzMjFcXHU5MzI0XFx1OTMyNVxcdTkzMjdcXHU5MzI5XFx1OTMyQVxcdTkzMzNcXHU5MzM0XFx1OTMzNlxcdTkzMzdcXHU5MzQ3XFx1OTM0OFxcdTkzNDlcXHU5MzUwXFx1OTM1MVxcdTkzNTJcXHU5MzU1XFx1OTM1N1xcdTkzNThcXHU5MzVBXFx1OTM1RVxcdTkzNjRcXHU5MzY1XFx1OTM2N1xcdTkzNjlcXHU5MzZBXFx1OTM2RFxcdTkzNkZcXHU5MzcwXFx1OTM3MVxcdTkzNzNcXHU5Mzc0XFx1OTM3NlwiXSxcbiAgICAgIFtcIjhmZTVhMVwiLCBcIlxcdTkzN0FcXHU5MzdEXFx1OTM3RlxcdTkzODBcXHU5MzgxXFx1OTM4MlxcdTkzODhcXHU5MzhBXFx1OTM4QlxcdTkzOERcXHU5MzhGXFx1OTM5MlxcdTkzOTVcXHU5Mzk4XFx1OTM5QlxcdTkzOUVcXHU5M0ExXFx1OTNBM1xcdTkzQTRcXHU5M0E2XFx1OTNBOFxcdTkzQUJcXHU5M0I0XFx1OTNCNVxcdTkzQjZcXHU5M0JBXFx1OTNBOVxcdTkzQzFcXHU5M0M0XFx1OTNDNVxcdTkzQzZcXHU5M0M3XFx1OTNDOVwiLCA0LCBcIlxcdTkzRDNcXHU5M0Q5XFx1OTNEQ1xcdTkzREVcXHU5M0RGXFx1OTNFMlxcdTkzRTZcXHU5M0U3XFx1OTNGOVxcdTkzRjdcXHU5M0Y4XFx1OTNGQVxcdTkzRkJcXHU5M0ZEXFx1OTQwMVxcdTk0MDJcXHU5NDA0XFx1OTQwOFxcdTk0MDlcXHU5NDBEXFx1OTQwRVxcdTk0MEZcXHU5NDE1XFx1OTQxNlxcdTk0MTdcXHU5NDFGXFx1OTQyRVxcdTk0MkZcXHU5NDMxXFx1OTQzMlxcdTk0MzNcXHU5NDM0XFx1OTQzQlxcdTk0M0ZcXHU5NDNEXFx1OTQ0M1xcdTk0NDVcXHU5NDQ4XFx1OTQ0QVxcdTk0NENcXHU5NDU1XFx1OTQ1OVxcdTk0NUNcXHU5NDVGXFx1OTQ2MVxcdTk0NjNcXHU5NDY4XFx1OTQ2QlxcdTk0NkRcXHU5NDZFXFx1OTQ2RlxcdTk0NzFcXHU5NDcyXFx1OTQ4NFxcdTk0ODNcXHU5NTc4XFx1OTU3OVwiXSxcbiAgICAgIFtcIjhmZTZhMVwiLCBcIlxcdTk1N0VcXHU5NTg0XFx1OTU4OFxcdTk1OENcXHU5NThEXFx1OTU4RVxcdTk1OURcXHU5NTlFXFx1OTU5RlxcdTk1QTFcXHU5NUE2XFx1OTVBOVxcdTk1QUJcXHU5NUFDXFx1OTVCNFxcdTk1QjZcXHU5NUJBXFx1OTVCRFxcdTk1QkZcXHU5NUM2XFx1OTVDOFxcdTk1QzlcXHU5NUNCXFx1OTVEMFxcdTk1RDFcXHU5NUQyXFx1OTVEM1xcdTk1RDlcXHU5NURBXFx1OTVERFxcdTk1REVcXHU5NURGXFx1OTVFMFxcdTk1RTRcXHU5NUU2XFx1OTYxRFxcdTk2MUVcXHU5NjIyXFx1OTYyNFxcdTk2MjVcXHU5NjI2XFx1OTYyQ1xcdTk2MzFcXHU5NjMzXFx1OTYzN1xcdTk2MzhcXHU5NjM5XFx1OTYzQVxcdTk2M0NcXHU5NjNEXFx1OTY0MVxcdTk2NTJcXHU5NjU0XFx1OTY1NlxcdTk2NTdcXHU5NjU4XFx1OTY2MVxcdTk2NkVcXHU5Njc0XFx1OTY3QlxcdTk2N0NcXHU5NjdFXFx1OTY3RlxcdTk2ODFcXHU5NjgyXFx1OTY4M1xcdTk2ODRcXHU5Njg5XFx1OTY5MVxcdTk2OTZcXHU5NjlBXFx1OTY5RFxcdTk2OUZcXHU5NkE0XFx1OTZBNVxcdTk2QTZcXHU5NkE5XFx1OTZBRVxcdTk2QUZcXHU5NkIzXFx1OTZCQVxcdTk2Q0FcXHU5NkQyXFx1NURCMlxcdTk2RDhcXHU5NkRBXFx1OTZERFxcdTk2REVcXHU5NkRGXFx1OTZFOVxcdTk2RUZcXHU5NkYxXFx1OTZGQVxcdTk3MDJcIl0sXG4gICAgICBbXCI4ZmU3YTFcIiwgXCJcXHU5NzAzXFx1OTcwNVxcdTk3MDlcXHU5NzFBXFx1OTcxQlxcdTk3MURcXHU5NzIxXFx1OTcyMlxcdTk3MjNcXHU5NzI4XFx1OTczMVxcdTk3MzNcXHU5NzQxXFx1OTc0M1xcdTk3NEFcXHU5NzRFXFx1OTc0RlxcdTk3NTVcXHU5NzU3XFx1OTc1OFxcdTk3NUFcXHU5NzVCXFx1OTc2M1xcdTk3NjdcXHU5NzZBXFx1OTc2RVxcdTk3NzNcXHU5Nzc2XFx1OTc3N1xcdTk3NzhcXHU5NzdCXFx1OTc3RFxcdTk3N0ZcXHU5NzgwXFx1OTc4OVxcdTk3OTVcXHU5Nzk2XFx1OTc5N1xcdTk3OTlcXHU5NzlBXFx1OTc5RVxcdTk3OUZcXHU5N0EyXFx1OTdBQ1xcdTk3QUVcXHU5N0IxXFx1OTdCMlxcdTk3QjVcXHU5N0I2XFx1OTdCOFxcdTk3QjlcXHU5N0JBXFx1OTdCQ1xcdTk3QkVcXHU5N0JGXFx1OTdDMVxcdTk3QzRcXHU5N0M1XFx1OTdDN1xcdTk3QzlcXHU5N0NBXFx1OTdDQ1xcdTk3Q0RcXHU5N0NFXFx1OTdEMFxcdTk3RDFcXHU5N0Q0XFx1OTdEN1xcdTk3RDhcXHU5N0Q5XFx1OTdERFxcdTk3REVcXHU5N0UwXFx1OTdEQlxcdTk3RTFcXHU5N0U0XFx1OTdFRlxcdTk3RjFcXHU5N0Y0XFx1OTdGN1xcdTk3RjhcXHU5N0ZBXFx1OTgwN1xcdTk4MEFcXHU5ODE5XFx1OTgwRFxcdTk4MEVcXHU5ODE0XFx1OTgxNlxcdTk4MUNcXHU5ODFFXFx1OTgyMFxcdTk4MjNcXHU5ODI2XCJdLFxuICAgICAgW1wiOGZlOGExXCIsIFwiXFx1OTgyQlxcdTk4MkVcXHU5ODJGXFx1OTgzMFxcdTk4MzJcXHU5ODMzXFx1OTgzNVxcdTk4MjVcXHU5ODNFXFx1OTg0NFxcdTk4NDdcXHU5ODRBXFx1OTg1MVxcdTk4NTJcXHU5ODUzXFx1OTg1NlxcdTk4NTdcXHU5ODU5XFx1OTg1QVxcdTk4NjJcXHU5ODYzXFx1OTg2NVxcdTk4NjZcXHU5ODZBXFx1OTg2Q1xcdTk4QUJcXHU5OEFEXFx1OThBRVxcdTk4QjBcXHU5OEI0XFx1OThCN1xcdTk4QjhcXHU5OEJBXFx1OThCQlxcdTk4QkZcXHU5OEMyXFx1OThDNVxcdTk4QzhcXHU5OENDXFx1OThFMVxcdTk4RTNcXHU5OEU1XFx1OThFNlxcdTk4RTdcXHU5OEVBXFx1OThGM1xcdTk4RjZcXHU5OTAyXFx1OTkwN1xcdTk5MDhcXHU5OTExXFx1OTkxNVxcdTk5MTZcXHU5OTE3XFx1OTkxQVxcdTk5MUJcXHU5OTFDXFx1OTkxRlxcdTk5MjJcXHU5OTI2XFx1OTkyN1xcdTk5MkJcXHU5OTMxXCIsIDQsIFwiXFx1OTkzOVxcdTk5M0FcXHU5OTNCXFx1OTkzQ1xcdTk5NDBcXHU5OTQxXFx1OTk0NlxcdTk5NDdcXHU5OTQ4XFx1OTk0RFxcdTk5NEVcXHU5OTU0XFx1OTk1OFxcdTk5NTlcXHU5OTVCXFx1OTk1Q1xcdTk5NUVcXHU5OTVGXFx1OTk2MFxcdTk5OUJcXHU5OTlEXFx1OTk5RlxcdTk5QTZcXHU5OUIwXFx1OTlCMVxcdTk5QjJcXHU5OUI1XCJdLFxuICAgICAgW1wiOGZlOWExXCIsIFwiXFx1OTlCOVxcdTk5QkFcXHU5OUJEXFx1OTlCRlxcdTk5QzNcXHU5OUM5XFx1OTlEM1xcdTk5RDRcXHU5OUQ5XFx1OTlEQVxcdTk5RENcXHU5OURFXFx1OTlFN1xcdTk5RUFcXHU5OUVCXFx1OTlFQ1xcdTk5RjBcXHU5OUY0XFx1OTlGNVxcdTk5RjlcXHU5OUZEXFx1OTlGRVxcdTlBMDJcXHU5QTAzXFx1OUEwNFxcdTlBMEJcXHU5QTBDXFx1OUExMFxcdTlBMTFcXHU5QTE2XFx1OUExRVxcdTlBMjBcXHU5QTIyXFx1OUEyM1xcdTlBMjRcXHU5QTI3XFx1OUEyRFxcdTlBMkVcXHU5QTMzXFx1OUEzNVxcdTlBMzZcXHU5QTM4XFx1OUE0N1xcdTlBNDFcXHU5QTQ0XFx1OUE0QVxcdTlBNEJcXHU5QTRDXFx1OUE0RVxcdTlBNTFcXHU5QTU0XFx1OUE1NlxcdTlBNURcXHU5QUFBXFx1OUFBQ1xcdTlBQUVcXHU5QUFGXFx1OUFCMlxcdTlBQjRcXHU5QUI1XFx1OUFCNlxcdTlBQjlcXHU5QUJCXFx1OUFCRVxcdTlBQkZcXHU5QUMxXFx1OUFDM1xcdTlBQzZcXHU5QUM4XFx1OUFDRVxcdTlBRDBcXHU5QUQyXFx1OUFENVxcdTlBRDZcXHU5QUQ3XFx1OUFEQlxcdTlBRENcXHU5QUUwXFx1OUFFNFxcdTlBRTVcXHU5QUU3XFx1OUFFOVxcdTlBRUNcXHU5QUYyXFx1OUFGM1xcdTlBRjVcXHU5QUY5XFx1OUFGQVxcdTlBRkRcXHU5QUZGXCIsIDRdLFxuICAgICAgW1wiOGZlYWExXCIsIFwiXFx1OUIwNFxcdTlCMDVcXHU5QjA4XFx1OUIwOVxcdTlCMEJcXHU5QjBDXFx1OUIwRFxcdTlCMEVcXHU5QjEwXFx1OUIxMlxcdTlCMTZcXHU5QjE5XFx1OUIxQlxcdTlCMUNcXHU5QjIwXFx1OUIyNlxcdTlCMkJcXHU5QjJEXFx1OUIzM1xcdTlCMzRcXHU5QjM1XFx1OUIzN1xcdTlCMzlcXHU5QjNBXFx1OUIzRFxcdTlCNDhcXHU5QjRCXFx1OUI0Q1xcdTlCNTVcXHU5QjU2XFx1OUI1N1xcdTlCNUJcXHU5QjVFXFx1OUI2MVxcdTlCNjNcXHU5QjY1XFx1OUI2NlxcdTlCNjhcXHU5QjZBXCIsIDQsIFwiXFx1OUI3M1xcdTlCNzVcXHU5Qjc3XFx1OUI3OFxcdTlCNzlcXHU5QjdGXFx1OUI4MFxcdTlCODRcXHU5Qjg1XFx1OUI4NlxcdTlCODdcXHU5Qjg5XFx1OUI4QVxcdTlCOEJcXHU5QjhEXFx1OUI4RlxcdTlCOTBcXHU5Qjk0XFx1OUI5QVxcdTlCOURcXHU5QjlFXFx1OUJBNlxcdTlCQTdcXHU5QkE5XFx1OUJBQ1xcdTlCQjBcXHU5QkIxXFx1OUJCMlxcdTlCQjdcXHU5QkI4XFx1OUJCQlxcdTlCQkNcXHU5QkJFXFx1OUJCRlxcdTlCQzFcXHU5QkM3XFx1OUJDOFxcdTlCQ0VcXHU5QkQwXFx1OUJEN1xcdTlCRDhcXHU5QkREXFx1OUJERlxcdTlCRTVcXHU5QkU3XFx1OUJFQVxcdTlCRUJcXHU5QkVGXFx1OUJGM1xcdTlCRjdcXHU5QkY4XCJdLFxuICAgICAgW1wiOGZlYmExXCIsIFwiXFx1OUJGOVxcdTlCRkFcXHU5QkZEXFx1OUJGRlxcdTlDMDBcXHU5QzAyXFx1OUMwQlxcdTlDMEZcXHU5QzExXFx1OUMxNlxcdTlDMThcXHU5QzE5XFx1OUMxQVxcdTlDMUNcXHU5QzFFXFx1OUMyMlxcdTlDMjNcXHU5QzI2XCIsIDQsIFwiXFx1OUMzMVxcdTlDMzVcXHU5QzM2XFx1OUMzN1xcdTlDM0RcXHU5QzQxXFx1OUM0M1xcdTlDNDRcXHU5QzQ1XFx1OUM0OVxcdTlDNEFcXHU5QzRFXFx1OUM0RlxcdTlDNTBcXHU5QzUzXFx1OUM1NFxcdTlDNTZcXHU5QzU4XFx1OUM1QlxcdTlDNURcXHU5QzVFXFx1OUM1RlxcdTlDNjNcXHU5QzY5XFx1OUM2QVxcdTlDNUNcXHU5QzZCXFx1OUM2OFxcdTlDNkVcXHU5QzcwXFx1OUM3MlxcdTlDNzVcXHU5Qzc3XFx1OUM3QlxcdTlDRTZcXHU5Q0YyXFx1OUNGN1xcdTlDRjlcXHU5RDBCXFx1OUQwMlxcdTlEMTFcXHU5RDE3XFx1OUQxOFxcdTlEMUNcXHU5RDFEXFx1OUQxRVxcdTlEMkZcXHU5RDMwXFx1OUQzMlxcdTlEMzNcXHU5RDM0XFx1OUQzQVxcdTlEM0NcXHU5RDQ1XFx1OUQzRFxcdTlENDJcXHU5RDQzXFx1OUQ0N1xcdTlENEFcXHU5RDUzXFx1OUQ1NFxcdTlENUZcXHU5RDYzXFx1OUQ2MlxcdTlENjVcXHU5RDY5XFx1OUQ2QVxcdTlENkJcXHU5RDcwXFx1OUQ3NlxcdTlENzdcXHU5RDdCXCJdLFxuICAgICAgW1wiOGZlY2ExXCIsIFwiXFx1OUQ3Q1xcdTlEN0VcXHU5RDgzXFx1OUQ4NFxcdTlEODZcXHU5RDhBXFx1OUQ4RFxcdTlEOEVcXHU5RDkyXFx1OUQ5M1xcdTlEOTVcXHU5RDk2XFx1OUQ5N1xcdTlEOThcXHU5REExXFx1OURBQVxcdTlEQUNcXHU5REFFXFx1OURCMVxcdTlEQjVcXHU5REI5XFx1OURCQ1xcdTlEQkZcXHU5REMzXFx1OURDN1xcdTlEQzlcXHU5RENBXFx1OURENFxcdTlERDVcXHU5REQ2XFx1OUREN1xcdTlEREFcXHU5RERFXFx1OURERlxcdTlERTBcXHU5REU1XFx1OURFN1xcdTlERTlcXHU5REVCXFx1OURFRVxcdTlERjBcXHU5REYzXFx1OURGNFxcdTlERkVcXHU5RTBBXFx1OUUwMlxcdTlFMDdcXHU5RTBFXFx1OUUxMFxcdTlFMTFcXHU5RTEyXFx1OUUxNVxcdTlFMTZcXHU5RTE5XFx1OUUxQ1xcdTlFMURcXHU5RTdBXFx1OUU3QlxcdTlFN0NcXHU5RTgwXFx1OUU4MlxcdTlFODNcXHU5RTg0XFx1OUU4NVxcdTlFODdcXHU5RThFXFx1OUU4RlxcdTlFOTZcXHU5RTk4XFx1OUU5QlxcdTlFOUVcXHU5RUE0XFx1OUVBOFxcdTlFQUNcXHU5RUFFXFx1OUVBRlxcdTlFQjBcXHU5RUIzXFx1OUVCNFxcdTlFQjVcXHU5RUM2XFx1OUVDOFxcdTlFQ0JcXHU5RUQ1XFx1OUVERlxcdTlFRTRcXHU5RUU3XFx1OUVFQ1xcdTlFRURcXHU5RUVFXFx1OUVGMFxcdTlFRjFcXHU5RUYyXFx1OUVGNVwiXSxcbiAgICAgIFtcIjhmZWRhMVwiLCBcIlxcdTlFRjhcXHU5RUZGXFx1OUYwMlxcdTlGMDNcXHU5RjA5XFx1OUYwRlxcdTlGMTBcXHU5RjExXFx1OUYxMlxcdTlGMTRcXHU5RjE2XFx1OUYxN1xcdTlGMTlcXHU5RjFBXFx1OUYxQlxcdTlGMUZcXHU5RjIyXFx1OUYyNlxcdTlGMkFcXHU5RjJCXFx1OUYyRlxcdTlGMzFcXHU5RjMyXFx1OUYzNFxcdTlGMzdcXHU5RjM5XFx1OUYzQVxcdTlGM0NcXHU5RjNEXFx1OUYzRlxcdTlGNDFcXHU5RjQzXCIsIDQsIFwiXFx1OUY1M1xcdTlGNTVcXHU5RjU2XFx1OUY1N1xcdTlGNThcXHU5RjVBXFx1OUY1RFxcdTlGNUVcXHU5RjY4XFx1OUY2OVxcdTlGNkRcIiwgNCwgXCJcXHU5RjczXFx1OUY3NVxcdTlGN0FcXHU5RjdEXFx1OUY4RlxcdTlGOTBcXHU5RjkxXFx1OUY5MlxcdTlGOTRcXHU5Rjk2XFx1OUY5N1xcdTlGOUVcXHU5RkExXFx1OUZBMlxcdTlGQTNcXHU5RkE1XCJdXG4gICAgXTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2NwOTM2Lmpzb25cbnZhciByZXF1aXJlX2NwOTM2MiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2NwOTM2Lmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFtcbiAgICAgIFtcIjBcIiwgXCJcXDBcIiwgMTI3LCBcIlxcdTIwQUNcIl0sXG4gICAgICBbXCI4MTQwXCIsIFwiXFx1NEUwMlxcdTRFMDRcXHU0RTA1XFx1NEUwNlxcdTRFMEZcXHU0RTEyXFx1NEUxN1xcdTRFMUZcXHU0RTIwXFx1NEUyMVxcdTRFMjNcXHU0RTI2XFx1NEUyOVxcdTRFMkVcXHU0RTJGXFx1NEUzMVxcdTRFMzNcXHU0RTM1XFx1NEUzN1xcdTRFM0NcXHU0RTQwXFx1NEU0MVxcdTRFNDJcXHU0RTQ0XFx1NEU0NlxcdTRFNEFcXHU0RTUxXFx1NEU1NVxcdTRFNTdcXHU0RTVBXFx1NEU1QlxcdTRFNjJcXHU0RTYzXFx1NEU2NFxcdTRFNjVcXHU0RTY3XFx1NEU2OFxcdTRFNkFcIiwgNSwgXCJcXHU0RTcyXFx1NEU3NFwiLCA5LCBcIlxcdTRFN0ZcIiwgNiwgXCJcXHU0RTg3XFx1NEU4QVwiXSxcbiAgICAgIFtcIjgxODBcIiwgXCJcXHU0RTkwXFx1NEU5NlxcdTRFOTdcXHU0RTk5XFx1NEU5Q1xcdTRFOURcXHU0RTlFXFx1NEVBM1xcdTRFQUFcXHU0RUFGXFx1NEVCMFxcdTRFQjFcXHU0RUI0XFx1NEVCNlxcdTRFQjdcXHU0RUI4XFx1NEVCOVxcdTRFQkNcXHU0RUJEXFx1NEVCRVxcdTRFQzhcXHU0RUNDXFx1NEVDRlxcdTRFRDBcXHU0RUQyXFx1NEVEQVxcdTRFREJcXHU0RURDXFx1NEVFMFxcdTRFRTJcXHU0RUU2XFx1NEVFN1xcdTRFRTlcXHU0RUVEXFx1NEVFRVxcdTRFRUZcXHU0RUYxXFx1NEVGNFxcdTRFRjhcXHU0RUY5XFx1NEVGQVxcdTRFRkNcXHU0RUZFXFx1NEYwMFxcdTRGMDJcIiwgNiwgXCJcXHU0RjBCXFx1NEYwQ1xcdTRGMTJcIiwgNCwgXCJcXHU0RjFDXFx1NEYxRFxcdTRGMjFcXHU0RjIzXFx1NEYyOFxcdTRGMjlcXHU0RjJDXFx1NEYyRFxcdTRGMkVcXHU0RjMxXFx1NEYzM1xcdTRGMzVcXHU0RjM3XFx1NEYzOVxcdTRGM0JcXHU0RjNFXCIsIDQsIFwiXFx1NEY0NFxcdTRGNDVcXHU0RjQ3XCIsIDUsIFwiXFx1NEY1MlxcdTRGNTRcXHU0RjU2XFx1NEY2MVxcdTRGNjJcXHU0RjY2XFx1NEY2OFxcdTRGNkFcXHU0RjZCXFx1NEY2RFxcdTRGNkVcXHU0RjcxXFx1NEY3MlxcdTRGNzVcXHU0Rjc3XFx1NEY3OFxcdTRGNzlcXHU0RjdBXFx1NEY3RFxcdTRGODBcXHU0RjgxXFx1NEY4MlxcdTRGODVcXHU0Rjg2XFx1NEY4N1xcdTRGOEFcXHU0RjhDXFx1NEY4RVxcdTRGOTBcXHU0RjkyXFx1NEY5M1xcdTRGOTVcXHU0Rjk2XFx1NEY5OFxcdTRGOTlcXHU0RjlBXFx1NEY5Q1xcdTRGOUVcXHU0RjlGXFx1NEZBMVxcdTRGQTJcIl0sXG4gICAgICBbXCI4MjQwXCIsIFwiXFx1NEZBNFxcdTRGQUJcXHU0RkFEXFx1NEZCMFwiLCA0LCBcIlxcdTRGQjZcIiwgOCwgXCJcXHU0RkMwXFx1NEZDMVxcdTRGQzJcXHU0RkM2XFx1NEZDN1xcdTRGQzhcXHU0RkM5XFx1NEZDQlxcdTRGQ0NcXHU0RkNEXFx1NEZEMlwiLCA0LCBcIlxcdTRGRDlcXHU0RkRCXFx1NEZFMFxcdTRGRTJcXHU0RkU0XFx1NEZFNVxcdTRGRTdcXHU0RkVCXFx1NEZFQ1xcdTRGRjBcXHU0RkYyXFx1NEZGNFxcdTRGRjVcXHU0RkY2XFx1NEZGN1xcdTRGRjlcXHU0RkZCXFx1NEZGQ1xcdTRGRkRcXHU0RkZGXCIsIDExXSxcbiAgICAgIFtcIjgyODBcIiwgXCJcXHU1MDBCXFx1NTAwRVxcdTUwMTBcXHU1MDExXFx1NTAxM1xcdTUwMTVcXHU1MDE2XFx1NTAxN1xcdTUwMUJcXHU1MDFEXFx1NTAxRVxcdTUwMjBcXHU1MDIyXFx1NTAyM1xcdTUwMjRcXHU1MDI3XFx1NTAyQlxcdTUwMkZcIiwgMTAsIFwiXFx1NTAzQlxcdTUwM0RcXHU1MDNGXFx1NTA0MFxcdTUwNDFcXHU1MDQyXFx1NTA0NFxcdTUwNDVcXHU1MDQ2XFx1NTA0OVxcdTUwNEFcXHU1MDRCXFx1NTA0RFxcdTUwNTBcIiwgNCwgXCJcXHU1MDU2XFx1NTA1N1xcdTUwNThcXHU1MDU5XFx1NTA1QlxcdTUwNURcIiwgNywgXCJcXHU1MDY2XCIsIDUsIFwiXFx1NTA2RFwiLCA4LCBcIlxcdTUwNzhcXHU1MDc5XFx1NTA3QVxcdTUwN0NcXHU1MDdEXFx1NTA4MVxcdTUwODJcXHU1MDgzXFx1NTA4NFxcdTUwODZcXHU1MDg3XFx1NTA4OVxcdTUwOEFcXHU1MDhCXFx1NTA4Q1xcdTUwOEVcIiwgMjAsIFwiXFx1NTBBNFxcdTUwQTZcXHU1MEFBXFx1NTBBQlxcdTUwQURcIiwgNCwgXCJcXHU1MEIzXCIsIDYsIFwiXFx1NTBCQ1wiXSxcbiAgICAgIFtcIjgzNDBcIiwgXCJcXHU1MEJEXCIsIDE3LCBcIlxcdTUwRDBcIiwgNSwgXCJcXHU1MEQ3XFx1NTBEOFxcdTUwRDlcXHU1MERCXCIsIDEwLCBcIlxcdTUwRThcXHU1MEU5XFx1NTBFQVxcdTUwRUJcXHU1MEVGXFx1NTBGMFxcdTUwRjFcXHU1MEYyXFx1NTBGNFxcdTUwRjZcIiwgNCwgXCJcXHU1MEZDXCIsIDksIFwiXFx1NTEwOFwiXSxcbiAgICAgIFtcIjgzODBcIiwgXCJcXHU1MTA5XFx1NTEwQVxcdTUxMENcIiwgNSwgXCJcXHU1MTEzXCIsIDEzLCBcIlxcdTUxMjJcIiwgMjgsIFwiXFx1NTE0MlxcdTUxNDdcXHU1MTRBXFx1NTE0Q1xcdTUxNEVcXHU1MTRGXFx1NTE1MFxcdTUxNTJcXHU1MTUzXFx1NTE1N1xcdTUxNThcXHU1MTU5XFx1NTE1QlxcdTUxNURcIiwgNCwgXCJcXHU1MTYzXFx1NTE2NFxcdTUxNjZcXHU1MTY3XFx1NTE2OVxcdTUxNkFcXHU1MTZGXFx1NTE3MlxcdTUxN0FcXHU1MTdFXFx1NTE3RlxcdTUxODNcXHU1MTg0XFx1NTE4NlxcdTUxODdcXHU1MThBXFx1NTE4QlxcdTUxOEVcXHU1MThGXFx1NTE5MFxcdTUxOTFcXHU1MTkzXFx1NTE5NFxcdTUxOThcXHU1MTlBXFx1NTE5RFxcdTUxOUVcXHU1MTlGXFx1NTFBMVxcdTUxQTNcXHU1MUE2XCIsIDQsIFwiXFx1NTFBRFxcdTUxQUVcXHU1MUI0XFx1NTFCOFxcdTUxQjlcXHU1MUJBXFx1NTFCRVxcdTUxQkZcXHU1MUMxXFx1NTFDMlxcdTUxQzNcXHU1MUM1XFx1NTFDOFxcdTUxQ0FcXHU1MUNEXFx1NTFDRVxcdTUxRDBcXHU1MUQyXCIsIDVdLFxuICAgICAgW1wiODQ0MFwiLCBcIlxcdTUxRDhcXHU1MUQ5XFx1NTFEQVxcdTUxRENcXHU1MURFXFx1NTFERlxcdTUxRTJcXHU1MUUzXFx1NTFFNVwiLCA1LCBcIlxcdTUxRUNcXHU1MUVFXFx1NTFGMVxcdTUxRjJcXHU1MUY0XFx1NTFGN1xcdTUxRkVcXHU1MjA0XFx1NTIwNVxcdTUyMDlcXHU1MjBCXFx1NTIwQ1xcdTUyMEZcXHU1MjEwXFx1NTIxM1xcdTUyMTRcXHU1MjE1XFx1NTIxQ1xcdTUyMUVcXHU1MjFGXFx1NTIyMVxcdTUyMjJcXHU1MjIzXFx1NTIyNVxcdTUyMjZcXHU1MjI3XFx1NTIyQVxcdTUyMkNcXHU1MjJGXFx1NTIzMVxcdTUyMzJcXHU1MjM0XFx1NTIzNVxcdTUyM0NcXHU1MjNFXFx1NTI0NFwiLCA1LCBcIlxcdTUyNEJcXHU1MjRFXFx1NTI0RlxcdTUyNTJcXHU1MjUzXFx1NTI1NVxcdTUyNTdcXHU1MjU4XCJdLFxuICAgICAgW1wiODQ4MFwiLCBcIlxcdTUyNTlcXHU1MjVBXFx1NTI1QlxcdTUyNURcXHU1MjVGXFx1NTI2MFxcdTUyNjJcXHU1MjYzXFx1NTI2NFxcdTUyNjZcXHU1MjY4XFx1NTI2QlxcdTUyNkNcXHU1MjZEXFx1NTI2RVxcdTUyNzBcXHU1MjcxXFx1NTI3M1wiLCA5LCBcIlxcdTUyN0VcXHU1MjgwXFx1NTI4M1wiLCA0LCBcIlxcdTUyODlcIiwgNiwgXCJcXHU1MjkxXFx1NTI5MlxcdTUyOTRcIiwgNiwgXCJcXHU1MjlDXFx1NTJBNFxcdTUyQTVcXHU1MkE2XFx1NTJBN1xcdTUyQUVcXHU1MkFGXFx1NTJCMFxcdTUyQjRcIiwgOSwgXCJcXHU1MkMwXFx1NTJDMVxcdTUyQzJcXHU1MkM0XFx1NTJDNVxcdTUyQzZcXHU1MkM4XFx1NTJDQVxcdTUyQ0NcXHU1MkNEXFx1NTJDRVxcdTUyQ0ZcXHU1MkQxXFx1NTJEM1xcdTUyRDRcXHU1MkQ1XFx1NTJEN1xcdTUyRDlcIiwgNSwgXCJcXHU1MkUwXFx1NTJFMVxcdTUyRTJcXHU1MkUzXFx1NTJFNVwiLCAxMCwgXCJcXHU1MkYxXCIsIDcsIFwiXFx1NTJGQlxcdTUyRkNcXHU1MkZEXFx1NTMwMVxcdTUzMDJcXHU1MzAzXFx1NTMwNFxcdTUzMDdcXHU1MzA5XFx1NTMwQVxcdTUzMEJcXHU1MzBDXFx1NTMwRVwiXSxcbiAgICAgIFtcIjg1NDBcIiwgXCJcXHU1MzExXFx1NTMxMlxcdTUzMTNcXHU1MzE0XFx1NTMxOFxcdTUzMUJcXHU1MzFDXFx1NTMxRVxcdTUzMUZcXHU1MzIyXFx1NTMyNFxcdTUzMjVcXHU1MzI3XFx1NTMyOFxcdTUzMjlcXHU1MzJCXFx1NTMyQ1xcdTUzMkRcXHU1MzJGXCIsIDksIFwiXFx1NTMzQ1xcdTUzM0RcXHU1MzQwXFx1NTM0MlxcdTUzNDRcXHU1MzQ2XFx1NTM0QlxcdTUzNENcXHU1MzREXFx1NTM1MFxcdTUzNTRcXHU1MzU4XFx1NTM1OVxcdTUzNUJcXHU1MzVEXFx1NTM2NVxcdTUzNjhcXHU1MzZBXFx1NTM2Q1xcdTUzNkRcXHU1MzcyXFx1NTM3NlxcdTUzNzlcXHU1MzdCXFx1NTM3Q1xcdTUzN0RcXHU1MzdFXFx1NTM4MFxcdTUzODFcXHU1MzgzXFx1NTM4N1xcdTUzODhcXHU1MzhBXFx1NTM4RVxcdTUzOEZcIl0sXG4gICAgICBbXCI4NTgwXCIsIFwiXFx1NTM5MFwiLCA0LCBcIlxcdTUzOTZcXHU1Mzk3XFx1NTM5OVxcdTUzOUJcXHU1MzlDXFx1NTM5RVxcdTUzQTBcXHU1M0ExXFx1NTNBNFxcdTUzQTdcXHU1M0FBXFx1NTNBQlxcdTUzQUNcXHU1M0FEXFx1NTNBRlwiLCA2LCBcIlxcdTUzQjdcXHU1M0I4XFx1NTNCOVxcdTUzQkFcXHU1M0JDXFx1NTNCRFxcdTUzQkVcXHU1M0MwXFx1NTNDM1wiLCA0LCBcIlxcdTUzQ0VcXHU1M0NGXFx1NTNEMFxcdTUzRDJcXHU1M0QzXFx1NTNENVxcdTUzREFcXHU1M0RDXFx1NTNERFxcdTUzREVcXHU1M0UxXFx1NTNFMlxcdTUzRTdcXHU1M0Y0XFx1NTNGQVxcdTUzRkVcXHU1M0ZGXFx1NTQwMFxcdTU0MDJcXHU1NDA1XFx1NTQwN1xcdTU0MEJcXHU1NDE0XFx1NTQxOFxcdTU0MTlcXHU1NDFBXFx1NTQxQ1xcdTU0MjJcXHU1NDI0XFx1NTQyNVxcdTU0MkFcXHU1NDMwXFx1NTQzM1xcdTU0MzZcXHU1NDM3XFx1NTQzQVxcdTU0M0RcXHU1NDNGXFx1NTQ0MVxcdTU0NDJcXHU1NDQ0XFx1NTQ0NVxcdTU0NDdcXHU1NDQ5XFx1NTQ0Q1xcdTU0NERcXHU1NDRFXFx1NTQ0RlxcdTU0NTFcXHU1NDVBXFx1NTQ1RFwiLCA0LCBcIlxcdTU0NjNcXHU1NDY1XFx1NTQ2N1xcdTU0NjlcIiwgNywgXCJcXHU1NDc0XFx1NTQ3OVxcdTU0N0FcXHU1NDdFXFx1NTQ3RlxcdTU0ODFcXHU1NDgzXFx1NTQ4NVxcdTU0ODdcXHU1NDg4XFx1NTQ4OVxcdTU0OEFcXHU1NDhEXFx1NTQ5MVxcdTU0OTNcXHU1NDk3XFx1NTQ5OFxcdTU0OUNcXHU1NDlFXFx1NTQ5RlxcdTU0QTBcXHU1NEExXCJdLFxuICAgICAgW1wiODY0MFwiLCBcIlxcdTU0QTJcXHU1NEE1XFx1NTRBRVxcdTU0QjBcXHU1NEIyXFx1NTRCNVxcdTU0QjZcXHU1NEI3XFx1NTRCOVxcdTU0QkFcXHU1NEJDXFx1NTRCRVxcdTU0QzNcXHU1NEM1XFx1NTRDQVxcdTU0Q0JcXHU1NEQ2XFx1NTREOFxcdTU0REJcXHU1NEUwXCIsIDQsIFwiXFx1NTRFQlxcdTU0RUNcXHU1NEVGXFx1NTRGMFxcdTU0RjFcXHU1NEY0XCIsIDUsIFwiXFx1NTRGQlxcdTU0RkVcXHU1NTAwXFx1NTUwMlxcdTU1MDNcXHU1NTA0XFx1NTUwNVxcdTU1MDhcXHU1NTBBXCIsIDQsIFwiXFx1NTUxMlxcdTU1MTNcXHU1NTE1XCIsIDUsIFwiXFx1NTUxQ1xcdTU1MURcXHU1NTFFXFx1NTUxRlxcdTU1MjFcXHU1NTI1XFx1NTUyNlwiXSxcbiAgICAgIFtcIjg2ODBcIiwgXCJcXHU1NTI4XFx1NTUyOVxcdTU1MkJcXHU1NTJEXFx1NTUzMlxcdTU1MzRcXHU1NTM1XFx1NTUzNlxcdTU1MzhcXHU1NTM5XFx1NTUzQVxcdTU1M0JcXHU1NTNEXFx1NTU0MFxcdTU1NDJcXHU1NTQ1XFx1NTU0N1xcdTU1NDhcXHU1NTRCXCIsIDQsIFwiXFx1NTU1MVxcdTU1NTJcXHU1NTUzXFx1NTU1NFxcdTU1NTdcIiwgNCwgXCJcXHU1NTVEXFx1NTU1RVxcdTU1NUZcXHU1NTYwXFx1NTU2MlxcdTU1NjNcXHU1NTY4XFx1NTU2OVxcdTU1NkJcXHU1NTZGXCIsIDUsIFwiXFx1NTU3OVxcdTU1N0FcXHU1NTdEXFx1NTU3RlxcdTU1ODVcXHU1NTg2XFx1NTU4Q1xcdTU1OERcXHU1NThFXFx1NTU5MFxcdTU1OTJcXHU1NTkzXFx1NTU5NVxcdTU1OTZcXHU1NTk3XFx1NTU5QVxcdTU1OUJcXHU1NTlFXFx1NTVBMFwiLCA2LCBcIlxcdTU1QThcIiwgOCwgXCJcXHU1NUIyXFx1NTVCNFxcdTU1QjZcXHU1NUI4XFx1NTVCQVxcdTU1QkNcXHU1NUJGXCIsIDQsIFwiXFx1NTVDNlxcdTU1QzdcXHU1NUM4XFx1NTVDQVxcdTU1Q0JcXHU1NUNFXFx1NTVDRlxcdTU1RDBcXHU1NUQ1XFx1NTVEN1wiLCA0LCBcIlxcdTU1REVcXHU1NUUwXFx1NTVFMlxcdTU1RTdcXHU1NUU5XFx1NTVFRFxcdTU1RUVcXHU1NUYwXFx1NTVGMVxcdTU1RjRcXHU1NUY2XFx1NTVGOFwiLCA0LCBcIlxcdTU1RkZcXHU1NjAyXFx1NTYwM1xcdTU2MDRcXHU1NjA1XCJdLFxuICAgICAgW1wiODc0MFwiLCBcIlxcdTU2MDZcXHU1NjA3XFx1NTYwQVxcdTU2MEJcXHU1NjBEXFx1NTYxMFwiLCA3LCBcIlxcdTU2MTlcXHU1NjFBXFx1NTYxQ1xcdTU2MURcXHU1NjIwXFx1NTYyMVxcdTU2MjJcXHU1NjI1XFx1NTYyNlxcdTU2MjhcXHU1NjI5XFx1NTYyQVxcdTU2MkJcXHU1NjJFXFx1NTYyRlxcdTU2MzBcXHU1NjMzXFx1NTYzNVxcdTU2MzdcXHU1NjM4XFx1NTYzQVxcdTU2M0NcXHU1NjNEXFx1NTYzRVxcdTU2NDBcIiwgMTEsIFwiXFx1NTY0RlwiLCA0LCBcIlxcdTU2NTVcXHU1NjU2XFx1NTY1QVxcdTU2NUJcXHU1NjVEXCIsIDRdLFxuICAgICAgW1wiODc4MFwiLCBcIlxcdTU2NjNcXHU1NjY1XFx1NTY2NlxcdTU2NjdcXHU1NjZEXFx1NTY2RVxcdTU2NkZcXHU1NjcwXFx1NTY3MlxcdTU2NzNcXHU1Njc0XFx1NTY3NVxcdTU2NzdcXHU1Njc4XFx1NTY3OVxcdTU2N0FcXHU1NjdEXCIsIDcsIFwiXFx1NTY4N1wiLCA2LCBcIlxcdTU2OTBcXHU1NjkxXFx1NTY5MlxcdTU2OTRcIiwgMTQsIFwiXFx1NTZBNFwiLCAxMCwgXCJcXHU1NkIwXCIsIDYsIFwiXFx1NTZCOFxcdTU2QjlcXHU1NkJBXFx1NTZCQlxcdTU2QkRcIiwgMTIsIFwiXFx1NTZDQlwiLCA4LCBcIlxcdTU2RDVcXHU1NkQ2XFx1NTZEOFxcdTU2RDlcXHU1NkRDXFx1NTZFM1xcdTU2RTVcIiwgNSwgXCJcXHU1NkVDXFx1NTZFRVxcdTU2RUZcXHU1NkYyXFx1NTZGM1xcdTU2RjZcXHU1NkY3XFx1NTZGOFxcdTU2RkJcXHU1NkZDXFx1NTcwMFxcdTU3MDFcXHU1NzAyXFx1NTcwNVxcdTU3MDdcXHU1NzBCXCIsIDZdLFxuICAgICAgW1wiODg0MFwiLCBcIlxcdTU3MTJcIiwgOSwgXCJcXHU1NzFEXFx1NTcxRVxcdTU3MjBcXHU1NzIxXFx1NTcyMlxcdTU3MjRcXHU1NzI1XFx1NTcyNlxcdTU3MjdcXHU1NzJCXFx1NTczMVxcdTU3MzJcXHU1NzM0XCIsIDQsIFwiXFx1NTczQ1xcdTU3M0RcXHU1NzNGXFx1NTc0MVxcdTU3NDNcXHU1NzQ0XFx1NTc0NVxcdTU3NDZcXHU1NzQ4XFx1NTc0OVxcdTU3NEJcXHU1NzUyXCIsIDQsIFwiXFx1NTc1OFxcdTU3NTlcXHU1NzYyXFx1NTc2M1xcdTU3NjVcXHU1NzY3XFx1NTc2Q1xcdTU3NkVcXHU1NzcwXFx1NTc3MVxcdTU3NzJcXHU1Nzc0XFx1NTc3NVxcdTU3NzhcXHU1Nzc5XFx1NTc3QVxcdTU3N0RcXHU1NzdFXFx1NTc3RlxcdTU3ODBcIl0sXG4gICAgICBbXCI4ODgwXCIsIFwiXFx1NTc4MVxcdTU3ODdcXHU1Nzg4XFx1NTc4OVxcdTU3OEFcXHU1NzhEXCIsIDQsIFwiXFx1NTc5NFwiLCA2LCBcIlxcdTU3OUNcXHU1NzlEXFx1NTc5RVxcdTU3OUZcXHU1N0E1XFx1NTdBOFxcdTU3QUFcXHU1N0FDXFx1NTdBRlxcdTU3QjBcXHU1N0IxXFx1NTdCM1xcdTU3QjVcXHU1N0I2XFx1NTdCN1xcdTU3QjlcIiwgOCwgXCJcXHU1N0M0XCIsIDYsIFwiXFx1NTdDQ1xcdTU3Q0RcXHU1N0QwXFx1NTdEMVxcdTU3RDNcXHU1N0Q2XFx1NTdEN1xcdTU3REJcXHU1N0RDXFx1NTdERVxcdTU3RTFcXHU1N0UyXFx1NTdFM1xcdTU3RTVcIiwgNywgXCJcXHU1N0VFXFx1NTdGMFxcdTU3RjFcXHU1N0YyXFx1NTdGM1xcdTU3RjVcXHU1N0Y2XFx1NTdGN1xcdTU3RkJcXHU1N0ZDXFx1NTdGRVxcdTU3RkZcXHU1ODAxXFx1NTgwM1xcdTU4MDRcXHU1ODA1XFx1NTgwOFxcdTU4MDlcXHU1ODBBXFx1NTgwQ1xcdTU4MEVcXHU1ODBGXFx1NTgxMFxcdTU4MTJcXHU1ODEzXFx1NTgxNFxcdTU4MTZcXHU1ODE3XFx1NTgxOFxcdTU4MUFcXHU1ODFCXFx1NTgxQ1xcdTU4MURcXHU1ODFGXFx1NTgyMlxcdTU4MjNcXHU1ODI1XCIsIDQsIFwiXFx1NTgyQlwiLCA0LCBcIlxcdTU4MzFcXHU1ODMyXFx1NTgzM1xcdTU4MzRcXHU1ODM2XCIsIDddLFxuICAgICAgW1wiODk0MFwiLCBcIlxcdTU4M0VcIiwgNSwgXCJcXHU1ODQ1XCIsIDYsIFwiXFx1NTg0RVxcdTU4NEZcXHU1ODUwXFx1NTg1MlxcdTU4NTNcXHU1ODU1XFx1NTg1NlxcdTU4NTdcXHU1ODU5XCIsIDQsIFwiXFx1NTg1RlwiLCA1LCBcIlxcdTU4NjZcIiwgNCwgXCJcXHU1ODZEXCIsIDE2LCBcIlxcdTU4N0ZcXHU1ODgyXFx1NTg4NFxcdTU4ODZcXHU1ODg3XFx1NTg4OFxcdTU4OEFcXHU1ODhCXFx1NTg4Q1wiXSxcbiAgICAgIFtcIjg5ODBcIiwgXCJcXHU1ODhEXCIsIDQsIFwiXFx1NTg5NFwiLCA0LCBcIlxcdTU4OUJcXHU1ODlDXFx1NTg5RFxcdTU4QTBcIiwgNywgXCJcXHU1OEFBXCIsIDE3LCBcIlxcdTU4QkRcXHU1OEJFXFx1NThCRlxcdTU4QzBcXHU1OEMyXFx1NThDM1xcdTU4QzRcXHU1OEM2XCIsIDEwLCBcIlxcdTU4RDJcXHU1OEQzXFx1NThENFxcdTU4RDZcIiwgMTMsIFwiXFx1NThFNVwiLCA1LCBcIlxcdTU4RURcXHU1OEVGXFx1NThGMVxcdTU4RjJcXHU1OEY0XFx1NThGNVxcdTU4RjdcXHU1OEY4XFx1NThGQVwiLCA3LCBcIlxcdTU5MDNcXHU1OTA1XFx1NTkwNlxcdTU5MDhcIiwgNCwgXCJcXHU1OTBFXFx1NTkxMFxcdTU5MTFcXHU1OTEyXFx1NTkxM1xcdTU5MTdcXHU1OTE4XFx1NTkxQlxcdTU5MURcXHU1OTFFXFx1NTkyMFxcdTU5MjFcXHU1OTIyXFx1NTkyM1xcdTU5MjZcXHU1OTI4XFx1NTkyQ1xcdTU5MzBcXHU1OTMyXFx1NTkzM1xcdTU5MzVcXHU1OTM2XFx1NTkzQlwiXSxcbiAgICAgIFtcIjhhNDBcIiwgXCJcXHU1OTNEXFx1NTkzRVxcdTU5M0ZcXHU1OTQwXFx1NTk0M1xcdTU5NDVcXHU1OTQ2XFx1NTk0QVxcdTU5NENcXHU1OTREXFx1NTk1MFxcdTU5NTJcXHU1OTUzXFx1NTk1OVxcdTU5NUJcIiwgNCwgXCJcXHU1OTYxXFx1NTk2M1xcdTU5NjRcXHU1OTY2XCIsIDEyLCBcIlxcdTU5NzVcXHU1OTc3XFx1NTk3QVxcdTU5N0JcXHU1OTdDXFx1NTk3RVxcdTU5N0ZcXHU1OTgwXFx1NTk4NVxcdTU5ODlcXHU1OThCXFx1NTk4Q1xcdTU5OEVcXHU1OThGXFx1NTk5MFxcdTU5OTFcXHU1OTk0XFx1NTk5NVxcdTU5OThcXHU1OTlBXFx1NTk5QlxcdTU5OUNcXHU1OTlEXFx1NTk5RlxcdTU5QTBcXHU1OUExXFx1NTlBMlxcdTU5QTZcIl0sXG4gICAgICBbXCI4YTgwXCIsIFwiXFx1NTlBN1xcdTU5QUNcXHU1OUFEXFx1NTlCMFxcdTU5QjFcXHU1OUIzXCIsIDUsIFwiXFx1NTlCQVxcdTU5QkNcXHU1OUJEXFx1NTlCRlwiLCA2LCBcIlxcdTU5QzdcXHU1OUM4XFx1NTlDOVxcdTU5Q0NcXHU1OUNEXFx1NTlDRVxcdTU5Q0ZcXHU1OUQ1XFx1NTlENlxcdTU5RDlcXHU1OURCXFx1NTlERVwiLCA0LCBcIlxcdTU5RTRcXHU1OUU2XFx1NTlFN1xcdTU5RTlcXHU1OUVBXFx1NTlFQlxcdTU5RURcIiwgMTEsIFwiXFx1NTlGQVxcdTU5RkNcXHU1OUZEXFx1NTlGRVxcdTVBMDBcXHU1QTAyXFx1NUEwQVxcdTVBMEJcXHU1QTBEXFx1NUEwRVxcdTVBMEZcXHU1QTEwXFx1NUExMlxcdTVBMTRcXHU1QTE1XFx1NUExNlxcdTVBMTdcXHU1QTE5XFx1NUExQVxcdTVBMUJcXHU1QTFEXFx1NUExRVxcdTVBMjFcXHU1QTIyXFx1NUEyNFxcdTVBMjZcXHU1QTI3XFx1NUEyOFxcdTVBMkFcIiwgNiwgXCJcXHU1QTMzXFx1NUEzNVxcdTVBMzdcIiwgNCwgXCJcXHU1QTNEXFx1NUEzRVxcdTVBM0ZcXHU1QTQxXCIsIDQsIFwiXFx1NUE0N1xcdTVBNDhcXHU1QTRCXCIsIDksIFwiXFx1NUE1NlxcdTVBNTdcXHU1QTU4XFx1NUE1OVxcdTVBNUJcIiwgNV0sXG4gICAgICBbXCI4YjQwXCIsIFwiXFx1NUE2MVxcdTVBNjNcXHU1QTY0XFx1NUE2NVxcdTVBNjZcXHU1QTY4XFx1NUE2OVxcdTVBNkJcIiwgOCwgXCJcXHU1QTc4XFx1NUE3OVxcdTVBN0JcXHU1QTdDXFx1NUE3RFxcdTVBN0VcXHU1QTgwXCIsIDE3LCBcIlxcdTVBOTNcIiwgNiwgXCJcXHU1QTlDXCIsIDEzLCBcIlxcdTVBQUJcXHU1QUFDXCJdLFxuICAgICAgW1wiOGI4MFwiLCBcIlxcdTVBQURcIiwgNCwgXCJcXHU1QUI0XFx1NUFCNlxcdTVBQjdcXHU1QUI5XCIsIDQsIFwiXFx1NUFCRlxcdTVBQzBcXHU1QUMzXCIsIDUsIFwiXFx1NUFDQVxcdTVBQ0JcXHU1QUNEXCIsIDQsIFwiXFx1NUFEM1xcdTVBRDVcXHU1QUQ3XFx1NUFEOVxcdTVBREFcXHU1QURCXFx1NUFERFxcdTVBREVcXHU1QURGXFx1NUFFMlxcdTVBRTRcXHU1QUU1XFx1NUFFN1xcdTVBRThcXHU1QUVBXFx1NUFFQ1wiLCA0LCBcIlxcdTVBRjJcIiwgMjIsIFwiXFx1NUIwQVwiLCAxMSwgXCJcXHU1QjE4XCIsIDI1LCBcIlxcdTVCMzNcXHU1QjM1XFx1NUIzNlxcdTVCMzhcIiwgNywgXCJcXHU1QjQxXCIsIDZdLFxuICAgICAgW1wiOGM0MFwiLCBcIlxcdTVCNDhcIiwgNywgXCJcXHU1QjUyXFx1NUI1NlxcdTVCNUVcXHU1QjYwXFx1NUI2MVxcdTVCNjdcXHU1QjY4XFx1NUI2QlxcdTVCNkRcXHU1QjZFXFx1NUI2RlxcdTVCNzJcXHU1Qjc0XFx1NUI3NlxcdTVCNzdcXHU1Qjc4XFx1NUI3OVxcdTVCN0JcXHU1QjdDXFx1NUI3RVxcdTVCN0ZcXHU1QjgyXFx1NUI4NlxcdTVCOEFcXHU1QjhEXFx1NUI4RVxcdTVCOTBcXHU1QjkxXFx1NUI5MlxcdTVCOTRcXHU1Qjk2XFx1NUI5RlxcdTVCQTdcXHU1QkE4XFx1NUJBOVxcdTVCQUNcXHU1QkFEXFx1NUJBRVxcdTVCQUZcXHU1QkIxXFx1NUJCMlxcdTVCQjdcXHU1QkJBXFx1NUJCQlxcdTVCQkNcXHU1QkMwXFx1NUJDMVxcdTVCQzNcXHU1QkM4XFx1NUJDOVxcdTVCQ0FcXHU1QkNCXFx1NUJDRFxcdTVCQ0VcXHU1QkNGXCJdLFxuICAgICAgW1wiOGM4MFwiLCBcIlxcdTVCRDFcXHU1QkQ0XCIsIDgsIFwiXFx1NUJFMFxcdTVCRTJcXHU1QkUzXFx1NUJFNlxcdTVCRTdcXHU1QkU5XCIsIDQsIFwiXFx1NUJFRlxcdTVCRjFcIiwgNiwgXCJcXHU1QkZEXFx1NUJGRVxcdTVDMDBcXHU1QzAyXFx1NUMwM1xcdTVDMDVcXHU1QzA3XFx1NUMwOFxcdTVDMEJcXHU1QzBDXFx1NUMwRFxcdTVDMEVcXHU1QzEwXFx1NUMxMlxcdTVDMTNcXHU1QzE3XFx1NUMxOVxcdTVDMUJcXHU1QzFFXFx1NUMxRlxcdTVDMjBcXHU1QzIxXFx1NUMyM1xcdTVDMjZcXHU1QzI4XFx1NUMyOVxcdTVDMkFcXHU1QzJCXFx1NUMyRFxcdTVDMkVcXHU1QzJGXFx1NUMzMFxcdTVDMzJcXHU1QzMzXFx1NUMzNVxcdTVDMzZcXHU1QzM3XFx1NUM0M1xcdTVDNDRcXHU1QzQ2XFx1NUM0N1xcdTVDNENcXHU1QzREXFx1NUM1MlxcdTVDNTNcXHU1QzU0XFx1NUM1NlxcdTVDNTdcXHU1QzU4XFx1NUM1QVxcdTVDNUJcXHU1QzVDXFx1NUM1RFxcdTVDNUZcXHU1QzYyXFx1NUM2NFxcdTVDNjdcIiwgNiwgXCJcXHU1QzcwXFx1NUM3MlwiLCA2LCBcIlxcdTVDN0JcXHU1QzdDXFx1NUM3RFxcdTVDN0VcXHU1QzgwXFx1NUM4M1wiLCA0LCBcIlxcdTVDODlcXHU1QzhBXFx1NUM4QlxcdTVDOEVcXHU1QzhGXFx1NUM5MlxcdTVDOTNcXHU1Qzk1XFx1NUM5RFwiLCA0LCBcIlxcdTVDQTRcIiwgNF0sXG4gICAgICBbXCI4ZDQwXCIsIFwiXFx1NUNBQVxcdTVDQUVcXHU1Q0FGXFx1NUNCMFxcdTVDQjJcXHU1Q0I0XFx1NUNCNlxcdTVDQjlcXHU1Q0JBXFx1NUNCQlxcdTVDQkNcXHU1Q0JFXFx1NUNDMFxcdTVDQzJcXHU1Q0MzXFx1NUNDNVwiLCA1LCBcIlxcdTVDQ0NcIiwgNSwgXCJcXHU1Q0QzXCIsIDUsIFwiXFx1NUNEQVwiLCA2LCBcIlxcdTVDRTJcXHU1Q0UzXFx1NUNFN1xcdTVDRTlcXHU1Q0VCXFx1NUNFQ1xcdTVDRUVcXHU1Q0VGXFx1NUNGMVwiLCA5LCBcIlxcdTVDRkNcIiwgNF0sXG4gICAgICBbXCI4ZDgwXCIsIFwiXFx1NUQwMVxcdTVEMDRcXHU1RDA1XFx1NUQwOFwiLCA1LCBcIlxcdTVEMEZcIiwgNCwgXCJcXHU1RDE1XFx1NUQxN1xcdTVEMThcXHU1RDE5XFx1NUQxQVxcdTVEMUNcXHU1RDFEXFx1NUQxRlwiLCA0LCBcIlxcdTVEMjVcXHU1RDI4XFx1NUQyQVxcdTVEMkJcXHU1RDJDXFx1NUQyRlwiLCA0LCBcIlxcdTVEMzVcIiwgNywgXCJcXHU1RDNGXCIsIDcsIFwiXFx1NUQ0OFxcdTVENDlcXHU1RDREXCIsIDEwLCBcIlxcdTVENTlcXHU1RDVBXFx1NUQ1Q1xcdTVENUVcIiwgMTAsIFwiXFx1NUQ2QVxcdTVENkRcXHU1RDZFXFx1NUQ3MFxcdTVENzFcXHU1RDcyXFx1NUQ3M1xcdTVENzVcIiwgMTIsIFwiXFx1NUQ4M1wiLCAyMSwgXCJcXHU1RDlBXFx1NUQ5QlxcdTVEOUNcXHU1RDlFXFx1NUQ5RlxcdTVEQTBcIl0sXG4gICAgICBbXCI4ZTQwXCIsIFwiXFx1NURBMVwiLCAyMSwgXCJcXHU1REI4XCIsIDEyLCBcIlxcdTVEQzZcIiwgNiwgXCJcXHU1RENFXCIsIDEyLCBcIlxcdTVERENcXHU1RERGXFx1NURFMFxcdTVERTNcXHU1REU0XFx1NURFQVxcdTVERUNcXHU1REVEXCJdLFxuICAgICAgW1wiOGU4MFwiLCBcIlxcdTVERjBcXHU1REY1XFx1NURGNlxcdTVERjhcIiwgNCwgXCJcXHU1REZGXFx1NUUwMFxcdTVFMDRcXHU1RTA3XFx1NUUwOVxcdTVFMEFcXHU1RTBCXFx1NUUwRFxcdTVFMEVcXHU1RTEyXFx1NUUxM1xcdTVFMTdcXHU1RTFFXCIsIDcsIFwiXFx1NUUyOFwiLCA0LCBcIlxcdTVFMkZcXHU1RTMwXFx1NUUzMlwiLCA0LCBcIlxcdTVFMzlcXHU1RTNBXFx1NUUzRVxcdTVFM0ZcXHU1RTQwXFx1NUU0MVxcdTVFNDNcXHU1RTQ2XCIsIDUsIFwiXFx1NUU0RFwiLCA2LCBcIlxcdTVFNTZcIiwgNCwgXCJcXHU1RTVDXFx1NUU1RFxcdTVFNUZcXHU1RTYwXFx1NUU2M1wiLCAxNCwgXCJcXHU1RTc1XFx1NUU3N1xcdTVFNzlcXHU1RTdFXFx1NUU4MVxcdTVFODJcXHU1RTgzXFx1NUU4NVxcdTVFODhcXHU1RTg5XFx1NUU4Q1xcdTVFOERcXHU1RThFXFx1NUU5MlxcdTVFOThcXHU1RTlCXFx1NUU5RFxcdTVFQTFcXHU1RUEyXFx1NUVBM1xcdTVFQTRcXHU1RUE4XCIsIDQsIFwiXFx1NUVBRVwiLCA0LCBcIlxcdTVFQjRcXHU1RUJBXFx1NUVCQlxcdTVFQkNcXHU1RUJEXFx1NUVCRlwiLCA2XSxcbiAgICAgIFtcIjhmNDBcIiwgXCJcXHU1RUM2XFx1NUVDN1xcdTVFQzhcXHU1RUNCXCIsIDUsIFwiXFx1NUVENFxcdTVFRDVcXHU1RUQ3XFx1NUVEOFxcdTVFRDlcXHU1RURBXFx1NUVEQ1wiLCAxMSwgXCJcXHU1RUU5XFx1NUVFQlwiLCA4LCBcIlxcdTVFRjVcXHU1RUY4XFx1NUVGOVxcdTVFRkJcXHU1RUZDXFx1NUVGRFxcdTVGMDVcXHU1RjA2XFx1NUYwN1xcdTVGMDlcXHU1RjBDXFx1NUYwRFxcdTVGMEVcXHU1RjEwXFx1NUYxMlxcdTVGMTRcXHU1RjE2XFx1NUYxOVxcdTVGMUFcXHU1RjFDXFx1NUYxRFxcdTVGMUVcXHU1RjIxXFx1NUYyMlxcdTVGMjNcXHU1RjI0XCJdLFxuICAgICAgW1wiOGY4MFwiLCBcIlxcdTVGMjhcXHU1RjJCXFx1NUYyQ1xcdTVGMkVcXHU1RjMwXFx1NUYzMlwiLCA2LCBcIlxcdTVGM0JcXHU1RjNEXFx1NUYzRVxcdTVGM0ZcXHU1RjQxXCIsIDE0LCBcIlxcdTVGNTFcXHU1RjU0XFx1NUY1OVxcdTVGNUFcXHU1RjVCXFx1NUY1Q1xcdTVGNUVcXHU1RjVGXFx1NUY2MFxcdTVGNjNcXHU1RjY1XFx1NUY2N1xcdTVGNjhcXHU1RjZCXFx1NUY2RVxcdTVGNkZcXHU1RjcyXFx1NUY3NFxcdTVGNzVcXHU1Rjc2XFx1NUY3OFxcdTVGN0FcXHU1RjdEXFx1NUY3RVxcdTVGN0ZcXHU1RjgzXFx1NUY4NlxcdTVGOERcXHU1RjhFXFx1NUY4RlxcdTVGOTFcXHU1RjkzXFx1NUY5NFxcdTVGOTZcXHU1RjlBXFx1NUY5QlxcdTVGOURcXHU1RjlFXFx1NUY5RlxcdTVGQTBcXHU1RkEyXCIsIDUsIFwiXFx1NUZBOVxcdTVGQUJcXHU1RkFDXFx1NUZBRlwiLCA1LCBcIlxcdTVGQjZcXHU1RkI4XFx1NUZCOVxcdTVGQkFcXHU1RkJCXFx1NUZCRVwiLCA0LCBcIlxcdTVGQzdcXHU1RkM4XFx1NUZDQVxcdTVGQ0JcXHU1RkNFXFx1NUZEM1xcdTVGRDRcXHU1RkQ1XFx1NUZEQVxcdTVGREJcXHU1RkRDXFx1NUZERVxcdTVGREZcXHU1RkUyXFx1NUZFM1xcdTVGRTVcXHU1RkU2XFx1NUZFOFxcdTVGRTlcXHU1RkVDXFx1NUZFRlxcdTVGRjBcXHU1RkYyXFx1NUZGM1xcdTVGRjRcXHU1RkY2XFx1NUZGN1xcdTVGRjlcXHU1RkZBXFx1NUZGQ1xcdTYwMDdcIl0sXG4gICAgICBbXCI5MDQwXCIsIFwiXFx1NjAwOFxcdTYwMDlcXHU2MDBCXFx1NjAwQ1xcdTYwMTBcXHU2MDExXFx1NjAxM1xcdTYwMTdcXHU2MDE4XFx1NjAxQVxcdTYwMUVcXHU2MDFGXFx1NjAyMlxcdTYwMjNcXHU2MDI0XFx1NjAyQ1xcdTYwMkRcXHU2MDJFXFx1NjAzMFwiLCA0LCBcIlxcdTYwMzZcIiwgNCwgXCJcXHU2MDNEXFx1NjAzRVxcdTYwNDBcXHU2MDQ0XCIsIDYsIFwiXFx1NjA0Q1xcdTYwNEVcXHU2MDRGXFx1NjA1MVxcdTYwNTNcXHU2MDU0XFx1NjA1NlxcdTYwNTdcXHU2MDU4XFx1NjA1QlxcdTYwNUNcXHU2MDVFXFx1NjA1RlxcdTYwNjBcXHU2MDYxXFx1NjA2NVxcdTYwNjZcXHU2MDZFXFx1NjA3MVxcdTYwNzJcXHU2MDc0XFx1NjA3NVxcdTYwNzdcXHU2MDdFXFx1NjA4MFwiXSxcbiAgICAgIFtcIjkwODBcIiwgXCJcXHU2MDgxXFx1NjA4MlxcdTYwODVcXHU2MDg2XFx1NjA4N1xcdTYwODhcXHU2MDhBXFx1NjA4QlxcdTYwOEVcXHU2MDhGXFx1NjA5MFxcdTYwOTFcXHU2MDkzXFx1NjA5NVxcdTYwOTdcXHU2MDk4XFx1NjA5OVxcdTYwOUNcXHU2MDlFXFx1NjBBMVxcdTYwQTJcXHU2MEE0XFx1NjBBNVxcdTYwQTdcXHU2MEE5XFx1NjBBQVxcdTYwQUVcXHU2MEIwXFx1NjBCM1xcdTYwQjVcXHU2MEI2XFx1NjBCN1xcdTYwQjlcXHU2MEJBXFx1NjBCRFwiLCA3LCBcIlxcdTYwQzdcXHU2MEM4XFx1NjBDOVxcdTYwQ0NcIiwgNCwgXCJcXHU2MEQyXFx1NjBEM1xcdTYwRDRcXHU2MEQ2XFx1NjBEN1xcdTYwRDlcXHU2MERCXFx1NjBERVxcdTYwRTFcIiwgNCwgXCJcXHU2MEVBXFx1NjBGMVxcdTYwRjJcXHU2MEY1XFx1NjBGN1xcdTYwRjhcXHU2MEZCXCIsIDQsIFwiXFx1NjEwMlxcdTYxMDNcXHU2MTA0XFx1NjEwNVxcdTYxMDdcXHU2MTBBXFx1NjEwQlxcdTYxMENcXHU2MTEwXCIsIDQsIFwiXFx1NjExNlxcdTYxMTdcXHU2MTE4XFx1NjExOVxcdTYxMUJcXHU2MTFDXFx1NjExRFxcdTYxMUVcXHU2MTIxXFx1NjEyMlxcdTYxMjVcXHU2MTI4XFx1NjEyOVxcdTYxMkFcXHU2MTJDXCIsIDE4LCBcIlxcdTYxNDBcIiwgNl0sXG4gICAgICBbXCI5MTQwXCIsIFwiXFx1NjE0N1xcdTYxNDlcXHU2MTRCXFx1NjE0RFxcdTYxNEZcXHU2MTUwXFx1NjE1MlxcdTYxNTNcXHU2MTU0XFx1NjE1NlwiLCA2LCBcIlxcdTYxNUVcXHU2MTVGXFx1NjE2MFxcdTYxNjFcXHU2MTYzXFx1NjE2NFxcdTYxNjVcXHU2MTY2XFx1NjE2OVwiLCA2LCBcIlxcdTYxNzFcXHU2MTcyXFx1NjE3M1xcdTYxNzRcXHU2MTc2XFx1NjE3OFwiLCAxOCwgXCJcXHU2MThDXFx1NjE4RFxcdTYxOEZcIiwgNCwgXCJcXHU2MTk1XCJdLFxuICAgICAgW1wiOTE4MFwiLCBcIlxcdTYxOTZcIiwgNiwgXCJcXHU2MTlFXCIsIDgsIFwiXFx1NjFBQVxcdTYxQUJcXHU2MUFEXCIsIDksIFwiXFx1NjFCOFwiLCA1LCBcIlxcdTYxQkZcXHU2MUMwXFx1NjFDMVxcdTYxQzNcIiwgNCwgXCJcXHU2MUM5XFx1NjFDQ1wiLCA0LCBcIlxcdTYxRDNcXHU2MUQ1XCIsIDE2LCBcIlxcdTYxRTdcIiwgMTMsIFwiXFx1NjFGNlwiLCA4LCBcIlxcdTYyMDBcIiwgNSwgXCJcXHU2MjA3XFx1NjIwOVxcdTYyMTNcXHU2MjE0XFx1NjIxOVxcdTYyMUNcXHU2MjFEXFx1NjIxRVxcdTYyMjBcXHU2MjIzXFx1NjIyNlxcdTYyMjdcXHU2MjI4XFx1NjIyOVxcdTYyMkJcXHU2MjJEXFx1NjIyRlxcdTYyMzBcXHU2MjMxXFx1NjIzMlxcdTYyMzVcXHU2MjM2XFx1NjIzOFwiLCA0LCBcIlxcdTYyNDJcXHU2MjQ0XFx1NjI0NVxcdTYyNDZcXHU2MjRBXCJdLFxuICAgICAgW1wiOTI0MFwiLCBcIlxcdTYyNEZcXHU2MjUwXFx1NjI1NVxcdTYyNTZcXHU2MjU3XFx1NjI1OVxcdTYyNUFcXHU2MjVDXCIsIDYsIFwiXFx1NjI2NFxcdTYyNjVcXHU2MjY4XFx1NjI3MVxcdTYyNzJcXHU2Mjc0XFx1NjI3NVxcdTYyNzdcXHU2Mjc4XFx1NjI3QVxcdTYyN0JcXHU2MjdEXFx1NjI4MVxcdTYyODJcXHU2MjgzXFx1NjI4NVxcdTYyODZcXHU2Mjg3XFx1NjI4OFxcdTYyOEJcIiwgNSwgXCJcXHU2Mjk0XFx1NjI5OVxcdTYyOUNcXHU2MjlEXFx1NjI5RVxcdTYyQTNcXHU2MkE2XFx1NjJBN1xcdTYyQTlcXHU2MkFBXFx1NjJBRFxcdTYyQUVcXHU2MkFGXFx1NjJCMFxcdTYyQjJcXHU2MkIzXFx1NjJCNFxcdTYyQjZcXHU2MkI3XFx1NjJCOFxcdTYyQkFcXHU2MkJFXFx1NjJDMFxcdTYyQzFcIl0sXG4gICAgICBbXCI5MjgwXCIsIFwiXFx1NjJDM1xcdTYyQ0JcXHU2MkNGXFx1NjJEMVxcdTYyRDVcXHU2MkREXFx1NjJERVxcdTYyRTBcXHU2MkUxXFx1NjJFNFxcdTYyRUFcXHU2MkVCXFx1NjJGMFxcdTYyRjJcXHU2MkY1XFx1NjJGOFxcdTYyRjlcXHU2MkZBXFx1NjJGQlxcdTYzMDBcXHU2MzAzXFx1NjMwNFxcdTYzMDVcXHU2MzA2XFx1NjMwQVxcdTYzMEJcXHU2MzBDXFx1NjMwRFxcdTYzMEZcXHU2MzEwXFx1NjMxMlxcdTYzMTNcXHU2MzE0XFx1NjMxNVxcdTYzMTdcXHU2MzE4XFx1NjMxOVxcdTYzMUNcXHU2MzI2XFx1NjMyN1xcdTYzMjlcXHU2MzJDXFx1NjMyRFxcdTYzMkVcXHU2MzMwXFx1NjMzMVxcdTYzMzNcIiwgNSwgXCJcXHU2MzNCXFx1NjMzQ1xcdTYzM0VcXHU2MzNGXFx1NjM0MFxcdTYzNDFcXHU2MzQ0XFx1NjM0N1xcdTYzNDhcXHU2MzRBXFx1NjM1MVxcdTYzNTJcXHU2MzUzXFx1NjM1NFxcdTYzNTZcIiwgNywgXCJcXHU2MzYwXFx1NjM2NFxcdTYzNjVcXHU2MzY2XFx1NjM2OFxcdTYzNkFcXHU2MzZCXFx1NjM2Q1xcdTYzNkZcXHU2MzcwXFx1NjM3MlxcdTYzNzNcXHU2Mzc0XFx1NjM3NVxcdTYzNzhcXHU2Mzc5XFx1NjM3Q1xcdTYzN0RcXHU2MzdFXFx1NjM3RlxcdTYzODFcXHU2MzgzXFx1NjM4NFxcdTYzODVcXHU2Mzg2XFx1NjM4QlxcdTYzOERcXHU2MzkxXFx1NjM5M1xcdTYzOTRcXHU2Mzk1XFx1NjM5N1xcdTYzOTlcIiwgNiwgXCJcXHU2M0ExXFx1NjNBNFxcdTYzQTZcXHU2M0FCXFx1NjNBRlxcdTYzQjFcXHU2M0IyXFx1NjNCNVxcdTYzQjZcXHU2M0I5XFx1NjNCQlxcdTYzQkRcXHU2M0JGXFx1NjNDMFwiXSxcbiAgICAgIFtcIjkzNDBcIiwgXCJcXHU2M0MxXFx1NjNDMlxcdTYzQzNcXHU2M0M1XFx1NjNDN1xcdTYzQzhcXHU2M0NBXFx1NjNDQlxcdTYzQ0NcXHU2M0QxXFx1NjNEM1xcdTYzRDRcXHU2M0Q1XFx1NjNEN1wiLCA2LCBcIlxcdTYzREZcXHU2M0UyXFx1NjNFNFwiLCA0LCBcIlxcdTYzRUJcXHU2M0VDXFx1NjNFRVxcdTYzRUZcXHU2M0YwXFx1NjNGMVxcdTYzRjNcXHU2M0Y1XFx1NjNGN1xcdTYzRjlcXHU2M0ZBXFx1NjNGQlxcdTYzRkNcXHU2M0ZFXFx1NjQwM1xcdTY0MDRcXHU2NDA2XCIsIDQsIFwiXFx1NjQwRFxcdTY0MEVcXHU2NDExXFx1NjQxMlxcdTY0MTVcIiwgNSwgXCJcXHU2NDFEXFx1NjQxRlxcdTY0MjJcXHU2NDIzXFx1NjQyNFwiXSxcbiAgICAgIFtcIjkzODBcIiwgXCJcXHU2NDI1XFx1NjQyN1xcdTY0MjhcXHU2NDI5XFx1NjQyQlxcdTY0MkVcIiwgNSwgXCJcXHU2NDM1XCIsIDQsIFwiXFx1NjQzQlxcdTY0M0NcXHU2NDNFXFx1NjQ0MFxcdTY0NDJcXHU2NDQzXFx1NjQ0OVxcdTY0NEJcIiwgNiwgXCJcXHU2NDUzXFx1NjQ1NVxcdTY0NTZcXHU2NDU3XFx1NjQ1OVwiLCA0LCBcIlxcdTY0NUZcIiwgNywgXCJcXHU2NDY4XFx1NjQ2QVxcdTY0NkJcXHU2NDZDXFx1NjQ2RVwiLCA5LCBcIlxcdTY0N0JcIiwgNiwgXCJcXHU2NDgzXFx1NjQ4NlxcdTY0ODhcIiwgOCwgXCJcXHU2NDkzXFx1NjQ5NFxcdTY0OTdcXHU2NDk4XFx1NjQ5QVxcdTY0OUJcXHU2NDlDXFx1NjQ5RFxcdTY0OUZcIiwgNCwgXCJcXHU2NEE1XFx1NjRBNlxcdTY0QTdcXHU2NEE4XFx1NjRBQVxcdTY0QUJcXHU2NEFGXFx1NjRCMVxcdTY0QjJcXHU2NEIzXFx1NjRCNFxcdTY0QjZcXHU2NEI5XFx1NjRCQlxcdTY0QkRcXHU2NEJFXFx1NjRCRlxcdTY0QzFcXHU2NEMzXFx1NjRDNFxcdTY0QzZcIiwgNiwgXCJcXHU2NENGXFx1NjREMVxcdTY0RDNcXHU2NEQ0XFx1NjRENVxcdTY0RDZcXHU2NEQ5XFx1NjREQVwiXSxcbiAgICAgIFtcIjk0NDBcIiwgXCJcXHU2NERCXFx1NjREQ1xcdTY0RERcXHU2NERGXFx1NjRFMFxcdTY0RTFcXHU2NEUzXFx1NjRFNVxcdTY0RTdcIiwgMjQsIFwiXFx1NjUwMVwiLCA3LCBcIlxcdTY1MEFcIiwgNywgXCJcXHU2NTEzXCIsIDQsIFwiXFx1NjUxOVwiLCA4XSxcbiAgICAgIFtcIjk0ODBcIiwgXCJcXHU2NTIyXFx1NjUyM1xcdTY1MjRcXHU2NTI2XCIsIDQsIFwiXFx1NjUyQ1xcdTY1MkRcXHU2NTMwXFx1NjUzMVxcdTY1MzJcXHU2NTMzXFx1NjUzN1xcdTY1M0FcXHU2NTNDXFx1NjUzRFxcdTY1NDBcIiwgNCwgXCJcXHU2NTQ2XFx1NjU0N1xcdTY1NEFcXHU2NTRCXFx1NjU0RFxcdTY1NEVcXHU2NTUwXFx1NjU1MlxcdTY1NTNcXHU2NTU0XFx1NjU1N1xcdTY1NThcXHU2NTVBXFx1NjU1Q1xcdTY1NUZcXHU2NTYwXFx1NjU2MVxcdTY1NjRcXHU2NTY1XFx1NjU2N1xcdTY1NjhcXHU2NTY5XFx1NjU2QVxcdTY1NkRcXHU2NTZFXFx1NjU2RlxcdTY1NzFcXHU2NTczXFx1NjU3NVxcdTY1NzZcXHU2NTc4XCIsIDE0LCBcIlxcdTY1ODhcXHU2NTg5XFx1NjU4QVxcdTY1OERcXHU2NThFXFx1NjU4RlxcdTY1OTJcXHU2NTk0XFx1NjU5NVxcdTY1OTZcXHU2NTk4XFx1NjU5QVxcdTY1OURcXHU2NTlFXFx1NjVBMFxcdTY1QTJcXHU2NUEzXFx1NjVBNlxcdTY1QThcXHU2NUFBXFx1NjVBQ1xcdTY1QUVcXHU2NUIxXCIsIDcsIFwiXFx1NjVCQVxcdTY1QkJcXHU2NUJFXFx1NjVCRlxcdTY1QzBcXHU2NUMyXFx1NjVDN1xcdTY1QzhcXHU2NUM5XFx1NjVDQVxcdTY1Q0RcXHU2NUQwXFx1NjVEMVxcdTY1RDNcXHU2NUQ0XFx1NjVENVxcdTY1RDhcIiwgNywgXCJcXHU2NUUxXFx1NjVFM1xcdTY1RTRcXHU2NUVBXFx1NjVFQlwiXSxcbiAgICAgIFtcIjk1NDBcIiwgXCJcXHU2NUYyXFx1NjVGM1xcdTY1RjRcXHU2NUY1XFx1NjVGOFxcdTY1RjlcXHU2NUZCXCIsIDQsIFwiXFx1NjYwMVxcdTY2MDRcXHU2NjA1XFx1NjYwN1xcdTY2MDhcXHU2NjA5XFx1NjYwQlxcdTY2MERcXHU2NjEwXFx1NjYxMVxcdTY2MTJcXHU2NjE2XFx1NjYxN1xcdTY2MThcXHU2NjFBXFx1NjYxQlxcdTY2MUNcXHU2NjFFXFx1NjYyMVxcdTY2MjJcXHU2NjIzXFx1NjYyNFxcdTY2MjZcXHU2NjI5XFx1NjYyQVxcdTY2MkJcXHU2NjJDXFx1NjYyRVxcdTY2MzBcXHU2NjMyXFx1NjYzM1xcdTY2MzdcIiwgNCwgXCJcXHU2NjNEXFx1NjYzRlxcdTY2NDBcXHU2NjQyXFx1NjY0NFwiLCA2LCBcIlxcdTY2NERcXHU2NjRFXFx1NjY1MFxcdTY2NTFcXHU2NjU4XCJdLFxuICAgICAgW1wiOTU4MFwiLCBcIlxcdTY2NTlcXHU2NjVCXFx1NjY1Q1xcdTY2NURcXHU2NjVFXFx1NjY2MFxcdTY2NjJcXHU2NjYzXFx1NjY2NVxcdTY2NjdcXHU2NjY5XCIsIDQsIFwiXFx1NjY3MVxcdTY2NzJcXHU2NjczXFx1NjY3NVxcdTY2NzhcXHU2Njc5XFx1NjY3QlxcdTY2N0NcXHU2NjdEXFx1NjY3RlxcdTY2ODBcXHU2NjgxXFx1NjY4M1xcdTY2ODVcXHU2Njg2XFx1NjY4OFxcdTY2ODlcXHU2NjhBXFx1NjY4QlxcdTY2OERcXHU2NjhFXFx1NjY4RlxcdTY2OTBcXHU2NjkyXFx1NjY5M1xcdTY2OTRcXHU2Njk1XFx1NjY5OFwiLCA0LCBcIlxcdTY2OUVcIiwgOCwgXCJcXHU2NkE5XCIsIDQsIFwiXFx1NjZBRlwiLCA0LCBcIlxcdTY2QjVcXHU2NkI2XFx1NjZCN1xcdTY2QjhcXHU2NkJBXFx1NjZCQlxcdTY2QkNcXHU2NkJEXFx1NjZCRlwiLCAyNSwgXCJcXHU2NkRBXFx1NjZERVwiLCA3LCBcIlxcdTY2RTdcXHU2NkU4XFx1NjZFQVwiLCA1LCBcIlxcdTY2RjFcXHU2NkY1XFx1NjZGNlxcdTY2RjhcXHU2NkZBXFx1NjZGQlxcdTY2RkRcXHU2NzAxXFx1NjcwMlxcdTY3MDNcIl0sXG4gICAgICBbXCI5NjQwXCIsIFwiXFx1NjcwNFxcdTY3MDVcXHU2NzA2XFx1NjcwN1xcdTY3MENcXHU2NzBFXFx1NjcwRlxcdTY3MTFcXHU2NzEyXFx1NjcxM1xcdTY3MTZcXHU2NzE4XFx1NjcxOVxcdTY3MUFcXHU2NzFDXFx1NjcxRVxcdTY3MjBcIiwgNSwgXCJcXHU2NzI3XFx1NjcyOVxcdTY3MkVcXHU2NzMwXFx1NjczMlxcdTY3MzNcXHU2NzM2XFx1NjczN1xcdTY3MzhcXHU2NzM5XFx1NjczQlxcdTY3M0NcXHU2NzNFXFx1NjczRlxcdTY3NDFcXHU2NzQ0XFx1Njc0NVxcdTY3NDdcXHU2NzRBXFx1Njc0QlxcdTY3NERcXHU2NzUyXFx1Njc1NFxcdTY3NTVcXHU2NzU3XCIsIDQsIFwiXFx1Njc1RFxcdTY3NjJcXHU2NzYzXFx1Njc2NFxcdTY3NjZcXHU2NzY3XFx1Njc2QlxcdTY3NkNcXHU2NzZFXFx1Njc3MVxcdTY3NzRcXHU2Nzc2XCJdLFxuICAgICAgW1wiOTY4MFwiLCBcIlxcdTY3NzhcXHU2Nzc5XFx1Njc3QVxcdTY3N0JcXHU2NzdEXFx1Njc4MFxcdTY3ODJcXHU2NzgzXFx1Njc4NVxcdTY3ODZcXHU2Nzg4XFx1Njc4QVxcdTY3OENcXHU2NzhEXFx1Njc4RVxcdTY3OEZcXHU2NzkxXFx1Njc5MlxcdTY3OTNcXHU2Nzk0XFx1Njc5NlxcdTY3OTlcXHU2NzlCXFx1Njc5RlxcdTY3QTBcXHU2N0ExXFx1NjdBNFxcdTY3QTZcXHU2N0E5XFx1NjdBQ1xcdTY3QUVcXHU2N0IxXFx1NjdCMlxcdTY3QjRcXHU2N0I5XCIsIDcsIFwiXFx1NjdDMlxcdTY3QzVcIiwgOSwgXCJcXHU2N0Q1XFx1NjdENlxcdTY3RDdcXHU2N0RCXFx1NjdERlxcdTY3RTFcXHU2N0UzXFx1NjdFNFxcdTY3RTZcXHU2N0U3XFx1NjdFOFxcdTY3RUFcXHU2N0VCXFx1NjdFRFxcdTY3RUVcXHU2N0YyXFx1NjdGNVwiLCA3LCBcIlxcdTY3RkVcXHU2ODAxXFx1NjgwMlxcdTY4MDNcXHU2ODA0XFx1NjgwNlxcdTY4MERcXHU2ODEwXFx1NjgxMlxcdTY4MTRcXHU2ODE1XFx1NjgxOFwiLCA0LCBcIlxcdTY4MUVcXHU2ODFGXFx1NjgyMFxcdTY4MjJcIiwgNiwgXCJcXHU2ODJCXCIsIDYsIFwiXFx1NjgzNFxcdTY4MzVcXHU2ODM2XFx1NjgzQVxcdTY4M0JcXHU2ODNGXFx1Njg0N1xcdTY4NEJcXHU2ODREXFx1Njg0RlxcdTY4NTJcXHU2ODU2XCIsIDVdLFxuICAgICAgW1wiOTc0MFwiLCBcIlxcdTY4NUNcXHU2ODVEXFx1Njg1RVxcdTY4NUZcXHU2ODZBXFx1Njg2Q1wiLCA3LCBcIlxcdTY4NzVcXHU2ODc4XCIsIDgsIFwiXFx1Njg4MlxcdTY4ODRcXHU2ODg3XCIsIDcsIFwiXFx1Njg5MFxcdTY4OTFcXHU2ODkyXFx1Njg5NFxcdTY4OTVcXHU2ODk2XFx1Njg5OFwiLCA5LCBcIlxcdTY4QTNcXHU2OEE0XFx1NjhBNVxcdTY4QTlcXHU2OEFBXFx1NjhBQlxcdTY4QUNcXHU2OEFFXFx1NjhCMVxcdTY4QjJcXHU2OEI0XFx1NjhCNlxcdTY4QjdcXHU2OEI4XCJdLFxuICAgICAgW1wiOTc4MFwiLCBcIlxcdTY4QjlcIiwgNiwgXCJcXHU2OEMxXFx1NjhDM1wiLCA1LCBcIlxcdTY4Q0FcXHU2OENDXFx1NjhDRVxcdTY4Q0ZcXHU2OEQwXFx1NjhEMVxcdTY4RDNcXHU2OEQ0XFx1NjhENlxcdTY4RDdcXHU2OEQ5XFx1NjhEQlwiLCA0LCBcIlxcdTY4RTFcXHU2OEUyXFx1NjhFNFwiLCA5LCBcIlxcdTY4RUZcXHU2OEYyXFx1NjhGM1xcdTY4RjRcXHU2OEY2XFx1NjhGN1xcdTY4RjhcXHU2OEZCXFx1NjhGRFxcdTY4RkVcXHU2OEZGXFx1NjkwMFxcdTY5MDJcXHU2OTAzXFx1NjkwNFxcdTY5MDZcIiwgNCwgXCJcXHU2OTBDXFx1NjkwRlxcdTY5MTFcXHU2OTEzXCIsIDExLCBcIlxcdTY5MjFcXHU2OTIyXFx1NjkyM1xcdTY5MjVcIiwgNywgXCJcXHU2OTJFXFx1NjkyRlxcdTY5MzFcXHU2OTMyXFx1NjkzM1xcdTY5MzVcXHU2OTM2XFx1NjkzN1xcdTY5MzhcXHU2OTNBXFx1NjkzQlxcdTY5M0NcXHU2OTNFXFx1Njk0MFxcdTY5NDFcXHU2OTQzXCIsIDE2LCBcIlxcdTY5NTVcXHU2OTU2XFx1Njk1OFxcdTY5NTlcXHU2OTVCXFx1Njk1Q1xcdTY5NUZcIl0sXG4gICAgICBbXCI5ODQwXCIsIFwiXFx1Njk2MVxcdTY5NjJcXHU2OTY0XFx1Njk2NVxcdTY5NjdcXHU2OTY4XFx1Njk2OVxcdTY5NkFcXHU2OTZDXFx1Njk2RFxcdTY5NkZcXHU2OTcwXFx1Njk3MlwiLCA0LCBcIlxcdTY5N0FcXHU2OTdCXFx1Njk3RFxcdTY5N0VcXHU2OTdGXFx1Njk4MVxcdTY5ODNcXHU2OTg1XFx1Njk4QVxcdTY5OEJcXHU2OThDXFx1Njk4RVwiLCA1LCBcIlxcdTY5OTZcXHU2OTk3XFx1Njk5OVxcdTY5OUFcXHU2OTlEXCIsIDksIFwiXFx1NjlBOVxcdTY5QUFcXHU2OUFDXFx1NjlBRVxcdTY5QUZcXHU2OUIwXFx1NjlCMlxcdTY5QjNcXHU2OUI1XFx1NjlCNlxcdTY5QjhcXHU2OUI5XFx1NjlCQVxcdTY5QkNcXHU2OUJEXCJdLFxuICAgICAgW1wiOTg4MFwiLCBcIlxcdTY5QkVcXHU2OUJGXFx1NjlDMFxcdTY5QzJcIiwgNywgXCJcXHU2OUNCXFx1NjlDRFxcdTY5Q0ZcXHU2OUQxXFx1NjlEMlxcdTY5RDNcXHU2OUQ1XCIsIDUsIFwiXFx1NjlEQ1xcdTY5RERcXHU2OURFXFx1NjlFMVwiLCAxMSwgXCJcXHU2OUVFXFx1NjlFRlxcdTY5RjBcXHU2OUYxXFx1NjlGM1wiLCA5LCBcIlxcdTY5RkVcXHU2QTAwXCIsIDksIFwiXFx1NkEwQlwiLCAxMSwgXCJcXHU2QTE5XCIsIDUsIFwiXFx1NkEyMFxcdTZBMjJcIiwgNSwgXCJcXHU2QTI5XFx1NkEyQlxcdTZBMkNcXHU2QTJEXFx1NkEyRVxcdTZBMzBcXHU2QTMyXFx1NkEzM1xcdTZBMzRcXHU2QTM2XCIsIDYsIFwiXFx1NkEzRlwiLCA0LCBcIlxcdTZBNDVcXHU2QTQ2XFx1NkE0OFwiLCA3LCBcIlxcdTZBNTFcIiwgNiwgXCJcXHU2QTVBXCJdLFxuICAgICAgW1wiOTk0MFwiLCBcIlxcdTZBNUNcIiwgNCwgXCJcXHU2QTYyXFx1NkE2M1xcdTZBNjRcXHU2QTY2XCIsIDEwLCBcIlxcdTZBNzJcIiwgNiwgXCJcXHU2QTdBXFx1NkE3QlxcdTZBN0RcXHU2QTdFXFx1NkE3RlxcdTZBODFcXHU2QTgyXFx1NkE4M1xcdTZBODVcIiwgOCwgXCJcXHU2QThGXFx1NkE5MlwiLCA0LCBcIlxcdTZBOThcIiwgNywgXCJcXHU2QUExXCIsIDVdLFxuICAgICAgW1wiOTk4MFwiLCBcIlxcdTZBQTdcXHU2QUE4XFx1NkFBQVxcdTZBQURcIiwgMTE0LCBcIlxcdTZCMjVcXHU2QjI2XFx1NkIyOFwiLCA2XSxcbiAgICAgIFtcIjlhNDBcIiwgXCJcXHU2QjJGXFx1NkIzMFxcdTZCMzFcXHU2QjMzXFx1NkIzNFxcdTZCMzVcXHU2QjM2XFx1NkIzOFxcdTZCM0JcXHU2QjNDXFx1NkIzRFxcdTZCM0ZcXHU2QjQwXFx1NkI0MVxcdTZCNDJcXHU2QjQ0XFx1NkI0NVxcdTZCNDhcXHU2QjRBXFx1NkI0QlxcdTZCNERcIiwgMTEsIFwiXFx1NkI1QVwiLCA3LCBcIlxcdTZCNjhcXHU2QjY5XFx1NkI2QlwiLCAxMywgXCJcXHU2QjdBXFx1NkI3RFxcdTZCN0VcXHU2QjdGXFx1NkI4MFxcdTZCODVcXHU2Qjg4XCJdLFxuICAgICAgW1wiOWE4MFwiLCBcIlxcdTZCOENcXHU2QjhFXFx1NkI4RlxcdTZCOTBcXHU2QjkxXFx1NkI5NFxcdTZCOTVcXHU2Qjk3XFx1NkI5OFxcdTZCOTlcXHU2QjlDXCIsIDQsIFwiXFx1NkJBMlwiLCA3LCBcIlxcdTZCQUJcIiwgNywgXCJcXHU2QkI2XFx1NkJCOFwiLCA2LCBcIlxcdTZCQzBcXHU2QkMzXFx1NkJDNFxcdTZCQzZcIiwgNCwgXCJcXHU2QkNDXFx1NkJDRVxcdTZCRDBcXHU2QkQxXFx1NkJEOFxcdTZCREFcXHU2QkRDXCIsIDQsIFwiXFx1NkJFMlwiLCA3LCBcIlxcdTZCRUNcXHU2QkVEXFx1NkJFRVxcdTZCRjBcXHU2QkYxXFx1NkJGMlxcdTZCRjRcXHU2QkY2XFx1NkJGN1xcdTZCRjhcXHU2QkZBXFx1NkJGQlxcdTZCRkNcXHU2QkZFXCIsIDYsIFwiXFx1NkMwOFwiLCA0LCBcIlxcdTZDMEVcXHU2QzEyXFx1NkMxN1xcdTZDMUNcXHU2QzFEXFx1NkMxRVxcdTZDMjBcXHU2QzIzXFx1NkMyNVxcdTZDMkJcXHU2QzJDXFx1NkMyRFxcdTZDMzFcXHU2QzMzXFx1NkMzNlxcdTZDMzdcXHU2QzM5XFx1NkMzQVxcdTZDM0JcXHU2QzNDXFx1NkMzRVxcdTZDM0ZcXHU2QzQzXFx1NkM0NFxcdTZDNDVcXHU2QzQ4XFx1NkM0QlwiLCA0LCBcIlxcdTZDNTFcXHU2QzUyXFx1NkM1M1xcdTZDNTZcXHU2QzU4XCJdLFxuICAgICAgW1wiOWI0MFwiLCBcIlxcdTZDNTlcXHU2QzVBXFx1NkM2MlxcdTZDNjNcXHU2QzY1XFx1NkM2NlxcdTZDNjdcXHU2QzZCXCIsIDQsIFwiXFx1NkM3MVxcdTZDNzNcXHU2Qzc1XFx1NkM3N1xcdTZDNzhcXHU2QzdBXFx1NkM3QlxcdTZDN0NcXHU2QzdGXFx1NkM4MFxcdTZDODRcXHU2Qzg3XFx1NkM4QVxcdTZDOEJcXHU2QzhEXFx1NkM4RVxcdTZDOTFcXHU2QzkyXFx1NkM5NVxcdTZDOTZcXHU2Qzk3XFx1NkM5OFxcdTZDOUFcXHU2QzlDXFx1NkM5RFxcdTZDOUVcXHU2Q0EwXFx1NkNBMlxcdTZDQThcXHU2Q0FDXFx1NkNBRlxcdTZDQjBcXHU2Q0I0XFx1NkNCNVxcdTZDQjZcXHU2Q0I3XFx1NkNCQVxcdTZDQzBcXHU2Q0MxXFx1NkNDMlxcdTZDQzNcXHU2Q0M2XFx1NkNDN1xcdTZDQzhcXHU2Q0NCXFx1NkNDRFxcdTZDQ0VcXHU2Q0NGXFx1NkNEMVxcdTZDRDJcXHU2Q0Q4XCJdLFxuICAgICAgW1wiOWI4MFwiLCBcIlxcdTZDRDlcXHU2Q0RBXFx1NkNEQ1xcdTZDRERcXHU2Q0RGXFx1NkNFNFxcdTZDRTZcXHU2Q0U3XFx1NkNFOVxcdTZDRUNcXHU2Q0VEXFx1NkNGMlxcdTZDRjRcXHU2Q0Y5XFx1NkNGRlxcdTZEMDBcXHU2RDAyXFx1NkQwM1xcdTZEMDVcXHU2RDA2XFx1NkQwOFxcdTZEMDlcXHU2RDBBXFx1NkQwRFxcdTZEMEZcXHU2RDEwXFx1NkQxMVxcdTZEMTNcXHU2RDE0XFx1NkQxNVxcdTZEMTZcXHU2RDE4XFx1NkQxQ1xcdTZEMURcXHU2RDFGXCIsIDUsIFwiXFx1NkQyNlxcdTZEMjhcXHU2RDI5XFx1NkQyQ1xcdTZEMkRcXHU2RDJGXFx1NkQzMFxcdTZEMzRcXHU2RDM2XFx1NkQzN1xcdTZEMzhcXHU2RDNBXFx1NkQzRlxcdTZENDBcXHU2RDQyXFx1NkQ0NFxcdTZENDlcXHU2RDRDXFx1NkQ1MFxcdTZENTVcXHU2RDU2XFx1NkQ1N1xcdTZENThcXHU2RDVCXFx1NkQ1RFxcdTZENUZcXHU2RDYxXFx1NkQ2MlxcdTZENjRcXHU2RDY1XFx1NkQ2N1xcdTZENjhcXHU2RDZCXFx1NkQ2Q1xcdTZENkRcXHU2RDcwXFx1NkQ3MVxcdTZENzJcXHU2RDczXFx1NkQ3NVxcdTZENzZcXHU2RDc5XFx1NkQ3QVxcdTZEN0JcXHU2RDdEXCIsIDQsIFwiXFx1NkQ4M1xcdTZEODRcXHU2RDg2XFx1NkQ4N1xcdTZEOEFcXHU2RDhCXFx1NkQ4RFxcdTZEOEZcXHU2RDkwXFx1NkQ5MlxcdTZEOTZcIiwgNCwgXCJcXHU2RDlDXFx1NkRBMlxcdTZEQTVcXHU2REFDXFx1NkRBRFxcdTZEQjBcXHU2REIxXFx1NkRCM1xcdTZEQjRcXHU2REI2XFx1NkRCN1xcdTZEQjlcIiwgNSwgXCJcXHU2REMxXFx1NkRDMlxcdTZEQzNcXHU2REM4XFx1NkRDOVxcdTZEQ0FcIl0sXG4gICAgICBbXCI5YzQwXCIsIFwiXFx1NkRDRFxcdTZEQ0VcXHU2RENGXFx1NkREMFxcdTZERDJcXHU2REQzXFx1NkRENFxcdTZERDVcXHU2REQ3XFx1NkREQVxcdTZEREJcXHU2RERDXFx1NkRERlxcdTZERTJcXHU2REUzXFx1NkRFNVxcdTZERTdcXHU2REU4XFx1NkRFOVxcdTZERUFcXHU2REVEXFx1NkRFRlxcdTZERjBcXHU2REYyXFx1NkRGNFxcdTZERjVcXHU2REY2XFx1NkRGOFxcdTZERkFcXHU2REZEXCIsIDcsIFwiXFx1NkUwNlxcdTZFMDdcXHU2RTA4XFx1NkUwOVxcdTZFMEJcXHU2RTBGXFx1NkUxMlxcdTZFMTNcXHU2RTE1XFx1NkUxOFxcdTZFMTlcXHU2RTFCXFx1NkUxQ1xcdTZFMUVcXHU2RTFGXFx1NkUyMlxcdTZFMjZcXHU2RTI3XFx1NkUyOFxcdTZFMkFcXHU2RTJDXFx1NkUyRVxcdTZFMzBcXHU2RTMxXFx1NkUzM1xcdTZFMzVcIl0sXG4gICAgICBbXCI5YzgwXCIsIFwiXFx1NkUzNlxcdTZFMzdcXHU2RTM5XFx1NkUzQlwiLCA3LCBcIlxcdTZFNDVcIiwgNywgXCJcXHU2RTRGXFx1NkU1MFxcdTZFNTFcXHU2RTUyXFx1NkU1NVxcdTZFNTdcXHU2RTU5XFx1NkU1QVxcdTZFNUNcXHU2RTVEXFx1NkU1RVxcdTZFNjBcIiwgMTAsIFwiXFx1NkU2Q1xcdTZFNkRcXHU2RTZGXCIsIDE0LCBcIlxcdTZFODBcXHU2RTgxXFx1NkU4MlxcdTZFODRcXHU2RTg3XFx1NkU4OFxcdTZFOEFcIiwgNCwgXCJcXHU2RTkxXCIsIDYsIFwiXFx1NkU5OVxcdTZFOUFcXHU2RTlCXFx1NkU5RFxcdTZFOUVcXHU2RUEwXFx1NkVBMVxcdTZFQTNcXHU2RUE0XFx1NkVBNlxcdTZFQThcXHU2RUE5XFx1NkVBQlxcdTZFQUNcXHU2RUFEXFx1NkVBRVxcdTZFQjBcXHU2RUIzXFx1NkVCNVxcdTZFQjhcXHU2RUI5XFx1NkVCQ1xcdTZFQkVcXHU2RUJGXFx1NkVDMFxcdTZFQzNcXHU2RUM0XFx1NkVDNVxcdTZFQzZcXHU2RUM4XFx1NkVDOVxcdTZFQ0FcXHU2RUNDXFx1NkVDRFxcdTZFQ0VcXHU2RUQwXFx1NkVEMlxcdTZFRDZcXHU2RUQ4XFx1NkVEOVxcdTZFREJcXHU2RURDXFx1NkVERFxcdTZFRTNcXHU2RUU3XFx1NkVFQVwiLCA1XSxcbiAgICAgIFtcIjlkNDBcIiwgXCJcXHU2RUYwXFx1NkVGMVxcdTZFRjJcXHU2RUYzXFx1NkVGNVxcdTZFRjZcXHU2RUY3XFx1NkVGOFxcdTZFRkFcIiwgNywgXCJcXHU2RjAzXFx1NkYwNFxcdTZGMDVcXHU2RjA3XFx1NkYwOFxcdTZGMEFcIiwgNCwgXCJcXHU2RjEwXFx1NkYxMVxcdTZGMTJcXHU2RjE2XCIsIDksIFwiXFx1NkYyMVxcdTZGMjJcXHU2RjIzXFx1NkYyNVxcdTZGMjZcXHU2RjI3XFx1NkYyOFxcdTZGMkNcXHU2RjJFXFx1NkYzMFxcdTZGMzJcXHU2RjM0XFx1NkYzNVxcdTZGMzdcIiwgNiwgXCJcXHU2RjNGXFx1NkY0MFxcdTZGNDFcXHU2RjQyXCJdLFxuICAgICAgW1wiOWQ4MFwiLCBcIlxcdTZGNDNcXHU2RjQ0XFx1NkY0NVxcdTZGNDhcXHU2RjQ5XFx1NkY0QVxcdTZGNENcXHU2RjRFXCIsIDksIFwiXFx1NkY1OVxcdTZGNUFcXHU2RjVCXFx1NkY1RFxcdTZGNUZcXHU2RjYwXFx1NkY2MVxcdTZGNjNcXHU2RjY0XFx1NkY2NVxcdTZGNjdcIiwgNSwgXCJcXHU2RjZGXFx1NkY3MFxcdTZGNzFcXHU2RjczXFx1NkY3NVxcdTZGNzZcXHU2Rjc3XFx1NkY3OVxcdTZGN0JcXHU2RjdEXCIsIDYsIFwiXFx1NkY4NVxcdTZGODZcXHU2Rjg3XFx1NkY4QVxcdTZGOEJcXHU2RjhGXCIsIDEyLCBcIlxcdTZGOURcXHU2RjlFXFx1NkY5RlxcdTZGQTBcXHU2RkEyXCIsIDQsIFwiXFx1NkZBOFwiLCAxMCwgXCJcXHU2RkI0XFx1NkZCNVxcdTZGQjdcXHU2RkI4XFx1NkZCQVwiLCA1LCBcIlxcdTZGQzFcXHU2RkMzXCIsIDUsIFwiXFx1NkZDQVwiLCA2LCBcIlxcdTZGRDNcIiwgMTAsIFwiXFx1NkZERlxcdTZGRTJcXHU2RkUzXFx1NkZFNFxcdTZGRTVcIl0sXG4gICAgICBbXCI5ZTQwXCIsIFwiXFx1NkZFNlwiLCA3LCBcIlxcdTZGRjBcIiwgMzIsIFwiXFx1NzAxMlwiLCA3LCBcIlxcdTcwMUNcIiwgNiwgXCJcXHU3MDI0XCIsIDZdLFxuICAgICAgW1wiOWU4MFwiLCBcIlxcdTcwMkJcIiwgOSwgXCJcXHU3MDM2XFx1NzAzN1xcdTcwMzhcXHU3MDNBXCIsIDE3LCBcIlxcdTcwNERcXHU3MDRFXFx1NzA1MFwiLCAxMywgXCJcXHU3MDVGXCIsIDExLCBcIlxcdTcwNkVcXHU3MDcxXFx1NzA3MlxcdTcwNzNcXHU3MDc0XFx1NzA3N1xcdTcwNzlcXHU3MDdBXFx1NzA3QlxcdTcwN0RcXHU3MDgxXFx1NzA4MlxcdTcwODNcXHU3MDg0XFx1NzA4NlxcdTcwODdcXHU3MDg4XFx1NzA4QlxcdTcwOENcXHU3MDhEXFx1NzA4RlxcdTcwOTBcXHU3MDkxXFx1NzA5M1xcdTcwOTdcXHU3MDk4XFx1NzA5QVxcdTcwOUJcXHU3MDlFXCIsIDEyLCBcIlxcdTcwQjBcXHU3MEIyXFx1NzBCNFxcdTcwQjVcXHU3MEI2XFx1NzBCQVxcdTcwQkVcXHU3MEJGXFx1NzBDNFxcdTcwQzVcXHU3MEM2XFx1NzBDN1xcdTcwQzlcXHU3MENCXCIsIDEyLCBcIlxcdTcwREFcIl0sXG4gICAgICBbXCI5ZjQwXCIsIFwiXFx1NzBEQ1xcdTcwRERcXHU3MERFXFx1NzBFMFxcdTcwRTFcXHU3MEUyXFx1NzBFM1xcdTcwRTVcXHU3MEVBXFx1NzBFRVxcdTcwRjBcIiwgNiwgXCJcXHU3MEY4XFx1NzBGQVxcdTcwRkJcXHU3MEZDXFx1NzBGRVwiLCAxMCwgXCJcXHU3MTBCXCIsIDQsIFwiXFx1NzExMVxcdTcxMTJcXHU3MTE0XFx1NzExN1xcdTcxMUJcIiwgMTAsIFwiXFx1NzEyN1wiLCA3LCBcIlxcdTcxMzJcXHU3MTMzXFx1NzEzNFwiXSxcbiAgICAgIFtcIjlmODBcIiwgXCJcXHU3MTM1XFx1NzEzN1wiLCAxMywgXCJcXHU3MTQ2XFx1NzE0N1xcdTcxNDhcXHU3MTQ5XFx1NzE0QlxcdTcxNERcXHU3MTRGXCIsIDEyLCBcIlxcdTcxNURcXHU3MTVGXCIsIDQsIFwiXFx1NzE2NVxcdTcxNjlcIiwgNCwgXCJcXHU3MTZGXFx1NzE3MFxcdTcxNzFcXHU3MTc0XFx1NzE3NVxcdTcxNzZcXHU3MTc3XFx1NzE3OVxcdTcxN0JcXHU3MTdDXFx1NzE3RVwiLCA1LCBcIlxcdTcxODVcIiwgNCwgXCJcXHU3MThCXFx1NzE4Q1xcdTcxOERcXHU3MThFXFx1NzE5MFxcdTcxOTFcXHU3MTkyXFx1NzE5M1xcdTcxOTVcXHU3MTk2XFx1NzE5N1xcdTcxOUFcIiwgNCwgXCJcXHU3MUExXCIsIDYsIFwiXFx1NzFBOVxcdTcxQUFcXHU3MUFCXFx1NzFBRFwiLCA1LCBcIlxcdTcxQjRcXHU3MUI2XFx1NzFCN1xcdTcxQjhcXHU3MUJBXCIsIDgsIFwiXFx1NzFDNFwiLCA5LCBcIlxcdTcxQ0ZcIiwgNF0sXG4gICAgICBbXCJhMDQwXCIsIFwiXFx1NzFENlwiLCA5LCBcIlxcdTcxRTFcXHU3MUUyXFx1NzFFM1xcdTcxRTRcXHU3MUU2XFx1NzFFOFwiLCA1LCBcIlxcdTcxRUZcIiwgOSwgXCJcXHU3MUZBXCIsIDExLCBcIlxcdTcyMDdcIiwgMTldLFxuICAgICAgW1wiYTA4MFwiLCBcIlxcdTcyMUJcXHU3MjFDXFx1NzIxRVwiLCA5LCBcIlxcdTcyMjlcXHU3MjJCXFx1NzIyRFxcdTcyMkVcXHU3MjJGXFx1NzIzMlxcdTcyMzNcXHU3MjM0XFx1NzIzQVxcdTcyM0NcXHU3MjNFXFx1NzI0MFwiLCA2LCBcIlxcdTcyNDlcXHU3MjRBXFx1NzI0QlxcdTcyNEVcXHU3MjRGXFx1NzI1MFxcdTcyNTFcXHU3MjUzXFx1NzI1NFxcdTcyNTVcXHU3MjU3XFx1NzI1OFxcdTcyNUFcXHU3MjVDXFx1NzI1RVxcdTcyNjBcXHU3MjYzXFx1NzI2NFxcdTcyNjVcXHU3MjY4XFx1NzI2QVxcdTcyNkJcXHU3MjZDXFx1NzI2RFxcdTcyNzBcXHU3MjcxXFx1NzI3M1xcdTcyNzRcXHU3Mjc2XFx1NzI3N1xcdTcyNzhcXHU3MjdCXFx1NzI3Q1xcdTcyN0RcXHU3MjgyXFx1NzI4M1xcdTcyODVcIiwgNCwgXCJcXHU3MjhDXFx1NzI4RVxcdTcyOTBcXHU3MjkxXFx1NzI5M1wiLCAxMSwgXCJcXHU3MkEwXCIsIDExLCBcIlxcdTcyQUVcXHU3MkIxXFx1NzJCMlxcdTcyQjNcXHU3MkI1XFx1NzJCQVwiLCA2LCBcIlxcdTcyQzVcXHU3MkM2XFx1NzJDN1xcdTcyQzlcXHU3MkNBXFx1NzJDQlxcdTcyQ0NcXHU3MkNGXFx1NzJEMVxcdTcyRDNcXHU3MkQ0XFx1NzJENVxcdTcyRDZcXHU3MkQ4XFx1NzJEQVxcdTcyREJcIl0sXG4gICAgICBbXCJhMWExXCIsIFwiXFx1MzAwMFxcdTMwMDFcXHUzMDAyXFx4QjdcXHUwMkM5XFx1MDJDN1xceEE4XFx1MzAwM1xcdTMwMDVcXHUyMDE0XFx1RkY1RVxcdTIwMTZcXHUyMDI2XFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTMwMTRcXHUzMDE1XFx1MzAwOFwiLCA3LCBcIlxcdTMwMTZcXHUzMDE3XFx1MzAxMFxcdTMwMTFcXHhCMVxceEQ3XFx4RjdcXHUyMjM2XFx1MjIyN1xcdTIyMjhcXHUyMjExXFx1MjIwRlxcdTIyMkFcXHUyMjI5XFx1MjIwOFxcdTIyMzdcXHUyMjFBXFx1MjJBNVxcdTIyMjVcXHUyMjIwXFx1MjMxMlxcdTIyOTlcXHUyMjJCXFx1MjIyRVxcdTIyNjFcXHUyMjRDXFx1MjI0OFxcdTIyM0RcXHUyMjFEXFx1MjI2MFxcdTIyNkVcXHUyMjZGXFx1MjI2NFxcdTIyNjVcXHUyMjFFXFx1MjIzNVxcdTIyMzRcXHUyNjQyXFx1MjY0MFxceEIwXFx1MjAzMlxcdTIwMzNcXHUyMTAzXFx1RkYwNFxceEE0XFx1RkZFMFxcdUZGRTFcXHUyMDMwXFx4QTdcXHUyMTE2XFx1MjYwNlxcdTI2MDVcXHUyNUNCXFx1MjVDRlxcdTI1Q0VcXHUyNUM3XFx1MjVDNlxcdTI1QTFcXHUyNUEwXFx1MjVCM1xcdTI1QjJcXHUyMDNCXFx1MjE5MlxcdTIxOTBcXHUyMTkxXFx1MjE5M1xcdTMwMTNcIl0sXG4gICAgICBbXCJhMmExXCIsIFwiXFx1MjE3MFwiLCA5XSxcbiAgICAgIFtcImEyYjFcIiwgXCJcXHUyNDg4XCIsIDE5LCBcIlxcdTI0NzRcIiwgMTksIFwiXFx1MjQ2MFwiLCA5XSxcbiAgICAgIFtcImEyZTVcIiwgXCJcXHUzMjIwXCIsIDldLFxuICAgICAgW1wiYTJmMVwiLCBcIlxcdTIxNjBcIiwgMTFdLFxuICAgICAgW1wiYTNhMVwiLCBcIlxcdUZGMDFcXHVGRjAyXFx1RkYwM1xcdUZGRTVcXHVGRjA1XCIsIDg4LCBcIlxcdUZGRTNcIl0sXG4gICAgICBbXCJhNGExXCIsIFwiXFx1MzA0MVwiLCA4Ml0sXG4gICAgICBbXCJhNWExXCIsIFwiXFx1MzBBMVwiLCA4NV0sXG4gICAgICBbXCJhNmExXCIsIFwiXFx1MDM5MVwiLCAxNiwgXCJcXHUwM0EzXCIsIDZdLFxuICAgICAgW1wiYTZjMVwiLCBcIlxcdTAzQjFcIiwgMTYsIFwiXFx1MDNDM1wiLCA2XSxcbiAgICAgIFtcImE2ZTBcIiwgXCJcXHVGRTM1XFx1RkUzNlxcdUZFMzlcXHVGRTNBXFx1RkUzRlxcdUZFNDBcXHVGRTNEXFx1RkUzRVxcdUZFNDFcXHVGRTQyXFx1RkU0M1xcdUZFNDRcIl0sXG4gICAgICBbXCJhNmVlXCIsIFwiXFx1RkUzQlxcdUZFM0NcXHVGRTM3XFx1RkUzOFxcdUZFMzFcIl0sXG4gICAgICBbXCJhNmY0XCIsIFwiXFx1RkUzM1xcdUZFMzRcIl0sXG4gICAgICBbXCJhN2ExXCIsIFwiXFx1MDQxMFwiLCA1LCBcIlxcdTA0MDFcXHUwNDE2XCIsIDI1XSxcbiAgICAgIFtcImE3ZDFcIiwgXCJcXHUwNDMwXCIsIDUsIFwiXFx1MDQ1MVxcdTA0MzZcIiwgMjVdLFxuICAgICAgW1wiYTg0MFwiLCBcIlxcdTAyQ0FcXHUwMkNCXFx1MDJEOVxcdTIwMTNcXHUyMDE1XFx1MjAyNVxcdTIwMzVcXHUyMTA1XFx1MjEwOVxcdTIxOTZcXHUyMTk3XFx1MjE5OFxcdTIxOTlcXHUyMjE1XFx1MjIxRlxcdTIyMjNcXHUyMjUyXFx1MjI2NlxcdTIyNjdcXHUyMkJGXFx1MjU1MFwiLCAzNSwgXCJcXHUyNTgxXCIsIDZdLFxuICAgICAgW1wiYTg4MFwiLCBcIlxcdTI1ODhcIiwgNywgXCJcXHUyNTkzXFx1MjU5NFxcdTI1OTVcXHUyNUJDXFx1MjVCRFxcdTI1RTJcXHUyNUUzXFx1MjVFNFxcdTI1RTVcXHUyNjA5XFx1MjI5NVxcdTMwMTJcXHUzMDFEXFx1MzAxRVwiXSxcbiAgICAgIFtcImE4YTFcIiwgXCJcXHUwMTAxXFx4RTFcXHUwMUNFXFx4RTBcXHUwMTEzXFx4RTlcXHUwMTFCXFx4RThcXHUwMTJCXFx4RURcXHUwMUQwXFx4RUNcXHUwMTREXFx4RjNcXHUwMUQyXFx4RjJcXHUwMTZCXFx4RkFcXHUwMUQ0XFx4RjlcXHUwMUQ2XFx1MDFEOFxcdTAxREFcXHUwMURDXFx4RkNcXHhFQVxcdTAyNTFcIl0sXG4gICAgICBbXCJhOGJkXCIsIFwiXFx1MDE0NFxcdTAxNDhcIl0sXG4gICAgICBbXCJhOGMwXCIsIFwiXFx1MDI2MVwiXSxcbiAgICAgIFtcImE4YzVcIiwgXCJcXHUzMTA1XCIsIDM2XSxcbiAgICAgIFtcImE5NDBcIiwgXCJcXHUzMDIxXCIsIDgsIFwiXFx1MzJBM1xcdTMzOEVcXHUzMzhGXFx1MzM5Q1xcdTMzOURcXHUzMzlFXFx1MzNBMVxcdTMzQzRcXHUzM0NFXFx1MzNEMVxcdTMzRDJcXHUzM0Q1XFx1RkUzMFxcdUZGRTJcXHVGRkU0XCJdLFxuICAgICAgW1wiYTk1OVwiLCBcIlxcdTIxMjFcXHUzMjMxXCJdLFxuICAgICAgW1wiYTk1Y1wiLCBcIlxcdTIwMTBcIl0sXG4gICAgICBbXCJhOTYwXCIsIFwiXFx1MzBGQ1xcdTMwOUJcXHUzMDlDXFx1MzBGRFxcdTMwRkVcXHUzMDA2XFx1MzA5RFxcdTMwOUVcXHVGRTQ5XCIsIDksIFwiXFx1RkU1NFxcdUZFNTVcXHVGRTU2XFx1RkU1N1xcdUZFNTlcIiwgOF0sXG4gICAgICBbXCJhOTgwXCIsIFwiXFx1RkU2MlwiLCA0LCBcIlxcdUZFNjhcXHVGRTY5XFx1RkU2QVxcdUZFNkJcIl0sXG4gICAgICBbXCJhOTk2XCIsIFwiXFx1MzAwN1wiXSxcbiAgICAgIFtcImE5YTRcIiwgXCJcXHUyNTAwXCIsIDc1XSxcbiAgICAgIFtcImFhNDBcIiwgXCJcXHU3MkRDXFx1NzJERFxcdTcyREZcXHU3MkUyXCIsIDUsIFwiXFx1NzJFQVxcdTcyRUJcXHU3MkY1XFx1NzJGNlxcdTcyRjlcXHU3MkZEXFx1NzJGRVxcdTcyRkZcXHU3MzAwXFx1NzMwMlxcdTczMDRcIiwgNSwgXCJcXHU3MzBCXFx1NzMwQ1xcdTczMERcXHU3MzBGXFx1NzMxMFxcdTczMTFcXHU3MzEyXFx1NzMxNFxcdTczMThcXHU3MzE5XFx1NzMxQVxcdTczMUZcXHU3MzIwXFx1NzMyM1xcdTczMjRcXHU3MzI2XFx1NzMyN1xcdTczMjhcXHU3MzJEXFx1NzMyRlxcdTczMzBcXHU3MzMyXFx1NzMzM1xcdTczMzVcXHU3MzM2XFx1NzMzQVxcdTczM0JcXHU3MzNDXFx1NzMzRFxcdTczNDBcIiwgOF0sXG4gICAgICBbXCJhYTgwXCIsIFwiXFx1NzM0OVxcdTczNEFcXHU3MzRCXFx1NzM0Q1xcdTczNEVcXHU3MzRGXFx1NzM1MVxcdTczNTNcXHU3MzU0XFx1NzM1NVxcdTczNTZcXHU3MzU4XCIsIDcsIFwiXFx1NzM2MVwiLCAxMCwgXCJcXHU3MzZFXFx1NzM3MFxcdTczNzFcIl0sXG4gICAgICBbXCJhYjQwXCIsIFwiXFx1NzM3MlwiLCAxMSwgXCJcXHU3MzdGXCIsIDQsIFwiXFx1NzM4NVxcdTczODZcXHU3Mzg4XFx1NzM4QVxcdTczOENcXHU3MzhEXFx1NzM4RlxcdTczOTBcXHU3MzkyXFx1NzM5M1xcdTczOTRcXHU3Mzk1XFx1NzM5N1xcdTczOThcXHU3Mzk5XFx1NzM5QVxcdTczOUNcXHU3MzlEXFx1NzM5RVxcdTczQTBcXHU3M0ExXFx1NzNBM1wiLCA1LCBcIlxcdTczQUFcXHU3M0FDXFx1NzNBRFxcdTczQjFcXHU3M0I0XFx1NzNCNVxcdTczQjZcXHU3M0I4XFx1NzNCOVxcdTczQkNcXHU3M0JEXFx1NzNCRVxcdTczQkZcXHU3M0MxXFx1NzNDM1wiLCA0XSxcbiAgICAgIFtcImFiODBcIiwgXCJcXHU3M0NCXFx1NzNDQ1xcdTczQ0VcXHU3M0QyXCIsIDYsIFwiXFx1NzNEQVxcdTczREJcXHU3M0RDXFx1NzNERFxcdTczREZcXHU3M0UxXFx1NzNFMlxcdTczRTNcXHU3M0U0XFx1NzNFNlxcdTczRThcXHU3M0VBXFx1NzNFQlxcdTczRUNcXHU3M0VFXFx1NzNFRlxcdTczRjBcXHU3M0YxXFx1NzNGM1wiLCA0XSxcbiAgICAgIFtcImFjNDBcIiwgXCJcXHU3M0Y4XCIsIDEwLCBcIlxcdTc0MDRcXHU3NDA3XFx1NzQwOFxcdTc0MEJcXHU3NDBDXFx1NzQwRFxcdTc0MEVcXHU3NDExXCIsIDgsIFwiXFx1NzQxQ1wiLCA1LCBcIlxcdTc0MjNcXHU3NDI0XFx1NzQyN1xcdTc0MjlcXHU3NDJCXFx1NzQyRFxcdTc0MkZcXHU3NDMxXFx1NzQzMlxcdTc0MzdcIiwgNCwgXCJcXHU3NDNEXFx1NzQzRVxcdTc0M0ZcXHU3NDQwXFx1NzQ0MlwiLCAxMV0sXG4gICAgICBbXCJhYzgwXCIsIFwiXFx1NzQ0RVwiLCA2LCBcIlxcdTc0NTZcXHU3NDU4XFx1NzQ1RFxcdTc0NjBcIiwgMTIsIFwiXFx1NzQ2RVxcdTc0NkZcXHU3NDcxXCIsIDQsIFwiXFx1NzQ3OFxcdTc0NzlcXHU3NDdBXCJdLFxuICAgICAgW1wiYWQ0MFwiLCBcIlxcdTc0N0JcXHU3NDdDXFx1NzQ3RFxcdTc0N0ZcXHU3NDgyXFx1NzQ4NFxcdTc0ODVcXHU3NDg2XFx1NzQ4OFxcdTc0ODlcXHU3NDhBXFx1NzQ4Q1xcdTc0OERcXHU3NDhGXFx1NzQ5MVwiLCAxMCwgXCJcXHU3NDlEXFx1NzQ5RlwiLCA3LCBcIlxcdTc0QUFcIiwgMTUsIFwiXFx1NzRCQlwiLCAxMl0sXG4gICAgICBbXCJhZDgwXCIsIFwiXFx1NzRDOFwiLCA5LCBcIlxcdTc0RDNcIiwgOCwgXCJcXHU3NEREXFx1NzRERlxcdTc0RTFcXHU3NEU1XFx1NzRFN1wiLCA2LCBcIlxcdTc0RjBcXHU3NEYxXFx1NzRGMlwiXSxcbiAgICAgIFtcImFlNDBcIiwgXCJcXHU3NEYzXFx1NzRGNVxcdTc0RjhcIiwgNiwgXCJcXHU3NTAwXFx1NzUwMVxcdTc1MDJcXHU3NTAzXFx1NzUwNVwiLCA3LCBcIlxcdTc1MEVcXHU3NTEwXFx1NzUxMlxcdTc1MTRcXHU3NTE1XFx1NzUxNlxcdTc1MTdcXHU3NTFCXFx1NzUxRFxcdTc1MUVcXHU3NTIwXCIsIDQsIFwiXFx1NzUyNlxcdTc1MjdcXHU3NTJBXFx1NzUyRVxcdTc1MzRcXHU3NTM2XFx1NzUzOVxcdTc1M0NcXHU3NTNEXFx1NzUzRlxcdTc1NDFcXHU3NTQyXFx1NzU0M1xcdTc1NDRcXHU3NTQ2XFx1NzU0N1xcdTc1NDlcXHU3NTRBXFx1NzU0RFxcdTc1NTBcXHU3NTUxXFx1NzU1MlxcdTc1NTNcXHU3NTU1XFx1NzU1NlxcdTc1NTdcXHU3NTU4XCJdLFxuICAgICAgW1wiYWU4MFwiLCBcIlxcdTc1NURcIiwgNywgXCJcXHU3NTY3XFx1NzU2OFxcdTc1NjlcXHU3NTZCXCIsIDYsIFwiXFx1NzU3M1xcdTc1NzVcXHU3NTc2XFx1NzU3N1xcdTc1N0FcIiwgNCwgXCJcXHU3NTgwXFx1NzU4MVxcdTc1ODJcXHU3NTg0XFx1NzU4NVxcdTc1ODdcIl0sXG4gICAgICBbXCJhZjQwXCIsIFwiXFx1NzU4OFxcdTc1ODlcXHU3NThBXFx1NzU4Q1xcdTc1OERcXHU3NThFXFx1NzU5MFxcdTc1OTNcXHU3NTk1XFx1NzU5OFxcdTc1OUJcXHU3NTlDXFx1NzU5RVxcdTc1QTJcXHU3NUE2XCIsIDQsIFwiXFx1NzVBRFxcdTc1QjZcXHU3NUI3XFx1NzVCQVxcdTc1QkJcXHU3NUJGXFx1NzVDMFxcdTc1QzFcXHU3NUM2XFx1NzVDQlxcdTc1Q0NcXHU3NUNFXFx1NzVDRlxcdTc1RDBcXHU3NUQxXFx1NzVEM1xcdTc1RDdcXHU3NUQ5XFx1NzVEQVxcdTc1RENcXHU3NUREXFx1NzVERlxcdTc1RTBcXHU3NUUxXFx1NzVFNVxcdTc1RTlcXHU3NUVDXFx1NzVFRFxcdTc1RUVcXHU3NUVGXFx1NzVGMlxcdTc1RjNcXHU3NUY1XFx1NzVGNlxcdTc1RjdcXHU3NUY4XFx1NzVGQVxcdTc1RkJcXHU3NUZEXFx1NzVGRVxcdTc2MDJcXHU3NjA0XFx1NzYwNlxcdTc2MDdcIl0sXG4gICAgICBbXCJhZjgwXCIsIFwiXFx1NzYwOFxcdTc2MDlcXHU3NjBCXFx1NzYwRFxcdTc2MEVcXHU3NjBGXFx1NzYxMVxcdTc2MTJcXHU3NjEzXFx1NzYxNFxcdTc2MTZcXHU3NjFBXFx1NzYxQ1xcdTc2MURcXHU3NjFFXFx1NzYyMVxcdTc2MjNcXHU3NjI3XFx1NzYyOFxcdTc2MkNcXHU3NjJFXFx1NzYyRlxcdTc2MzFcXHU3NjMyXFx1NzYzNlxcdTc2MzdcXHU3NjM5XFx1NzYzQVxcdTc2M0JcXHU3NjNEXFx1NzY0MVxcdTc2NDJcXHU3NjQ0XCJdLFxuICAgICAgW1wiYjA0MFwiLCBcIlxcdTc2NDVcIiwgNiwgXCJcXHU3NjRFXCIsIDUsIFwiXFx1NzY1NVxcdTc2NTdcIiwgNCwgXCJcXHU3NjVEXFx1NzY1RlxcdTc2NjBcXHU3NjYxXFx1NzY2MlxcdTc2NjRcIiwgNiwgXCJcXHU3NjZDXFx1NzY2RFxcdTc2NkVcXHU3NjcwXCIsIDcsIFwiXFx1NzY3OVxcdTc2N0FcXHU3NjdDXFx1NzY3RlxcdTc2ODBcXHU3NjgxXFx1NzY4M1xcdTc2ODVcXHU3Njg5XFx1NzY4QVxcdTc2OENcXHU3NjhEXFx1NzY4RlxcdTc2OTBcXHU3NjkyXFx1NzY5NFxcdTc2OTVcXHU3Njk3XFx1NzY5OFxcdTc2OUFcXHU3NjlCXCJdLFxuICAgICAgW1wiYjA4MFwiLCBcIlxcdTc2OUNcIiwgNywgXCJcXHU3NkE1XCIsIDgsIFwiXFx1NzZBRlxcdTc2QjBcXHU3NkIzXFx1NzZCNVwiLCA5LCBcIlxcdTc2QzBcXHU3NkMxXFx1NzZDM1xcdTU1NEFcXHU5NjNGXFx1NTdDM1xcdTYzMjhcXHU1NENFXFx1NTUwOVxcdTU0QzBcXHU3NjkxXFx1NzY0Q1xcdTg1M0NcXHU3N0VFXFx1ODI3RVxcdTc4OERcXHU3MjMxXFx1OTY5OFxcdTk3OERcXHU2QzI4XFx1NUI4OVxcdTRGRkFcXHU2MzA5XFx1NjY5N1xcdTVDQjhcXHU4MEZBXFx1Njg0OFxcdTgwQUVcXHU2NjAyXFx1NzZDRVxcdTUxRjlcXHU2NTU2XFx1NzFBQ1xcdTdGRjFcXHU4ODg0XFx1NTBCMlxcdTU5NjVcXHU2MUNBXFx1NkZCM1xcdTgyQURcXHU2MzRDXFx1NjI1MlxcdTUzRURcXHU1NDI3XFx1N0IwNlxcdTUxNkJcXHU3NUE0XFx1NURGNFxcdTYyRDRcXHU4RENCXFx1OTc3NlxcdTYyOEFcXHU4MDE5XFx1NTc1RFxcdTk3MzhcXHU3RjYyXFx1NzIzOFxcdTc2N0RcXHU2N0NGXFx1NzY3RVxcdTY0NDZcXHU0RjcwXFx1OEQyNVxcdTYyRENcXHU3QTE3XFx1NjU5MVxcdTczRURcXHU2NDJDXFx1NjI3M1xcdTgyMkNcXHU5ODgxXFx1Njc3RlxcdTcyNDhcXHU2MjZFXFx1NjJDQ1xcdTRGMzRcXHU3NEUzXFx1NTM0QVxcdTUyOUVcXHU3RUNBXFx1OTBBNlxcdTVFMkVcXHU2ODg2XFx1Njk5Q1xcdTgxODBcXHU3RUQxXFx1NjhEMlxcdTc4QzVcXHU4NjhDXFx1OTU1MVxcdTUwOERcXHU4QzI0XFx1ODJERVxcdTgwREVcXHU1MzA1XFx1ODkxMlxcdTUyNjVcIl0sXG4gICAgICBbXCJiMTQwXCIsIFwiXFx1NzZDNFxcdTc2QzdcXHU3NkM5XFx1NzZDQlxcdTc2Q0NcXHU3NkQzXFx1NzZENVxcdTc2RDlcXHU3NkRBXFx1NzZEQ1xcdTc2RERcXHU3NkRFXFx1NzZFMFwiLCA0LCBcIlxcdTc2RTZcIiwgNywgXCJcXHU3NkYwXFx1NzZGM1xcdTc2RjVcXHU3NkY2XFx1NzZGN1xcdTc2RkFcXHU3NkZCXFx1NzZGRFxcdTc2RkZcXHU3NzAwXFx1NzcwMlxcdTc3MDNcXHU3NzA1XFx1NzcwNlxcdTc3MEFcXHU3NzBDXFx1NzcwRVwiLCAxMCwgXCJcXHU3NzFCXFx1NzcxQ1xcdTc3MURcXHU3NzFFXFx1NzcyMVxcdTc3MjNcXHU3NzI0XFx1NzcyNVxcdTc3MjdcXHU3NzJBXFx1NzcyQlwiXSxcbiAgICAgIFtcImIxODBcIiwgXCJcXHU3NzJDXFx1NzcyRVxcdTc3MzBcIiwgNCwgXCJcXHU3NzM5XFx1NzczQlxcdTc3M0RcXHU3NzNFXFx1NzczRlxcdTc3NDJcXHU3NzQ0XFx1Nzc0NVxcdTc3NDZcXHU3NzQ4XCIsIDcsIFwiXFx1Nzc1MlwiLCA3LCBcIlxcdTc3NUNcXHU4NTg0XFx1OTZGOVxcdTRGRERcXHU1ODIxXFx1OTk3MVxcdTVCOURcXHU2MkIxXFx1NjJBNVxcdTY2QjRcXHU4Qzc5XFx1OUM4RFxcdTcyMDZcXHU2NzZGXFx1Nzg5MVxcdTYwQjJcXHU1MzUxXFx1NTMxN1xcdThGODhcXHU4MENDXFx1OEQxRFxcdTk0QTFcXHU1MDBEXFx1NzJDOFxcdTU5MDdcXHU2MEVCXFx1NzExOVxcdTg4QUJcXHU1OTU0XFx1ODJFRlxcdTY3MkNcXHU3QjI4XFx1NUQyOVxcdTdFRjdcXHU3NTJEXFx1NkNGNVxcdThFNjZcXHU4RkY4XFx1OTAzQ1xcdTlGM0JcXHU2QkQ0XFx1OTExOVxcdTdCMTRcXHU1RjdDXFx1NzhBN1xcdTg0RDZcXHU4NTNEXFx1NkJENVxcdTZCRDlcXHU2QkQ2XFx1NUUwMVxcdTVFODdcXHU3NUY5XFx1OTVFRFxcdTY1NURcXHU1RjBBXFx1NUZDNVxcdThGOUZcXHU1OEMxXFx1ODFDMlxcdTkwN0ZcXHU5NjVCXFx1OTdBRFxcdThGQjlcXHU3RjE2XFx1OEQyQ1xcdTYyNDFcXHU0RkJGXFx1NTNEOFxcdTUzNUVcXHU4RkE4XFx1OEZBOVxcdThGQUJcXHU5MDREXFx1NjgwN1xcdTVGNkFcXHU4MTk4XFx1ODg2OFxcdTlDRDZcXHU2MThCXFx1NTIyQlxcdTc2MkFcXHU1RjZDXFx1NjU4Q1xcdTZGRDJcXHU2RUU4XFx1NUJCRVxcdTY0NDhcXHU1MTc1XFx1NTFCMFxcdTY3QzRcXHU0RTE5XFx1NzlDOVxcdTk5N0NcXHU3MEIzXCJdLFxuICAgICAgW1wiYjI0MFwiLCBcIlxcdTc3NURcXHU3NzVFXFx1Nzc1RlxcdTc3NjBcXHU3NzY0XFx1Nzc2N1xcdTc3NjlcXHU3NzZBXFx1Nzc2RFwiLCAxMSwgXCJcXHU3NzdBXFx1Nzc3QlxcdTc3N0NcXHU3NzgxXFx1Nzc4MlxcdTc3ODNcXHU3Nzg2XCIsIDUsIFwiXFx1Nzc4RlxcdTc3OTBcXHU3NzkzXCIsIDExLCBcIlxcdTc3QTFcXHU3N0EzXFx1NzdBNFxcdTc3QTZcXHU3N0E4XFx1NzdBQlxcdTc3QURcXHU3N0FFXFx1NzdBRlxcdTc3QjFcXHU3N0IyXFx1NzdCNFxcdTc3QjZcIiwgNF0sXG4gICAgICBbXCJiMjgwXCIsIFwiXFx1NzdCQ1xcdTc3QkVcXHU3N0MwXCIsIDEyLCBcIlxcdTc3Q0VcIiwgOCwgXCJcXHU3N0Q4XFx1NzdEOVxcdTc3REFcXHU3N0REXCIsIDQsIFwiXFx1NzdFNFxcdTc1QzVcXHU1RTc2XFx1NzNCQlxcdTgzRTBcXHU2NEFEXFx1NjJFOFxcdTk0QjVcXHU2Q0UyXFx1NTM1QVxcdTUyQzNcXHU2NDBGXFx1OTRDMlxcdTdCOTRcXHU0RjJGXFx1NUUxQlxcdTgyMzZcXHU4MTE2XFx1ODE4QVxcdTZFMjRcXHU2Q0NBXFx1OUE3M1xcdTYzNTVcXHU1MzVDXFx1NTRGQVxcdTg4NjVcXHU1N0UwXFx1NEUwRFxcdTVFMDNcXHU2QjY1XFx1N0MzRlxcdTkwRThcXHU2MDE2XFx1NjRFNlxcdTczMUNcXHU4OEMxXFx1Njc1MFxcdTYyNERcXHU4RDIyXFx1Nzc2Q1xcdThFMjlcXHU5MUM3XFx1NUY2OVxcdTgzRENcXHU4NTIxXFx1OTkxMFxcdTUzQzJcXHU4Njk1XFx1NkI4QlxcdTYwRURcXHU2MEU4XFx1NzA3RlxcdTgyQ0RcXHU4MjMxXFx1NEVEM1xcdTZDQTdcXHU4NUNGXFx1NjRDRFxcdTdDRDlcXHU2OUZEXFx1NjZGOVxcdTgzNDlcXHU1Mzk1XFx1N0I1NlxcdTRGQTdcXHU1MThDXFx1NkQ0QlxcdTVDNDJcXHU4RTZEXFx1NjNEMlxcdTUzQzlcXHU4MzJDXFx1ODMzNlxcdTY3RTVcXHU3OEI0XFx1NjQzRFxcdTVCREZcXHU1Qzk0XFx1NURFRVxcdThCRTdcXHU2MkM2XFx1NjdGNFxcdThDN0FcXHU2NDAwXFx1NjNCQVxcdTg3NDlcXHU5OThCXFx1OEMxN1xcdTdGMjBcXHU5NEYyXFx1NEVBN1xcdTk2MTBcXHU5OEE0XFx1NjYwQ1xcdTczMTZcIl0sXG4gICAgICBbXCJiMzQwXCIsIFwiXFx1NzdFNlxcdTc3RThcXHU3N0VBXFx1NzdFRlxcdTc3RjBcXHU3N0YxXFx1NzdGMlxcdTc3RjRcXHU3N0Y1XFx1NzdGN1xcdTc3RjlcXHU3N0ZBXFx1NzdGQlxcdTc3RkNcXHU3ODAzXCIsIDUsIFwiXFx1NzgwQVxcdTc4MEJcXHU3ODBFXFx1NzgwRlxcdTc4MTBcXHU3ODEzXFx1NzgxNVxcdTc4MTlcXHU3ODFCXFx1NzgxRVxcdTc4MjBcXHU3ODIxXFx1NzgyMlxcdTc4MjRcXHU3ODI4XFx1NzgyQVxcdTc4MkJcXHU3ODJFXFx1NzgyRlxcdTc4MzFcXHU3ODMyXFx1NzgzM1xcdTc4MzVcXHU3ODM2XFx1NzgzRFxcdTc4M0ZcXHU3ODQxXFx1Nzg0MlxcdTc4NDNcXHU3ODQ0XFx1Nzg0NlxcdTc4NDhcXHU3ODQ5XFx1Nzg0QVxcdTc4NEJcXHU3ODREXFx1Nzg0RlxcdTc4NTFcXHU3ODUzXFx1Nzg1NFxcdTc4NThcXHU3ODU5XFx1Nzg1QVwiXSxcbiAgICAgIFtcImIzODBcIiwgXCJcXHU3ODVCXFx1Nzg1Q1xcdTc4NUVcIiwgMTEsIFwiXFx1Nzg2RlwiLCA3LCBcIlxcdTc4NzhcXHU3ODc5XFx1Nzg3QVxcdTc4N0JcXHU3ODdEXCIsIDYsIFwiXFx1NTczQVxcdTVDMURcXHU1RTM4XFx1OTU3RlxcdTUwN0ZcXHU4MEEwXFx1NTM4MlxcdTY1NUVcXHU3NTQ1XFx1NTUzMVxcdTUwMjFcXHU4RDg1XFx1NjI4NFxcdTk0OUVcXHU2NzFEXFx1NTYzMlxcdTZGNkVcXHU1REUyXFx1NTQzNVxcdTcwOTJcXHU4RjY2XFx1NjI2RlxcdTY0QTRcXHU2M0EzXFx1NUY3QlxcdTZGODhcXHU5MEY0XFx1ODFFM1xcdThGQjBcXHU1QzE4XFx1NjY2OFxcdTVGRjFcXHU2Qzg5XFx1OTY0OFxcdThEODFcXHU4ODZDXFx1NjQ5MVxcdTc5RjBcXHU1N0NFXFx1NkE1OVxcdTYyMTBcXHU1NDQ4XFx1NEU1OFxcdTdBMEJcXHU2MEU5XFx1NkY4NFxcdThCREFcXHU2MjdGXFx1OTAxRVxcdTlBOEJcXHU3OUU0XFx1NTQwM1xcdTc1RjRcXHU2MzAxXFx1NTMxOVxcdTZDNjBcXHU4RkRGXFx1NUYxQlxcdTlBNzBcXHU4MDNCXFx1OUY3RlxcdTRGODhcXHU1QzNBXFx1OEQ2NFxcdTdGQzVcXHU2NUE1XFx1NzBCRFxcdTUxNDVcXHU1MUIyXFx1ODY2QlxcdTVEMDdcXHU1QkEwXFx1NjJCRFxcdTkxNkNcXHU3NTc0XFx1OEUwQ1xcdTdBMjBcXHU2MTAxXFx1N0I3OVxcdTRFQzdcXHU3RUY4XFx1Nzc4NVxcdTRFMTFcXHU4MUVEXFx1NTIxRFxcdTUxRkFcXHU2QTcxXFx1NTNBOFxcdThFODdcXHU5NTA0XFx1OTZDRlxcdTZFQzFcXHU5NjY0XFx1Njk1QVwiXSxcbiAgICAgIFtcImI0NDBcIiwgXCJcXHU3ODg0XFx1Nzg4NVxcdTc4ODZcXHU3ODg4XFx1Nzg4QVxcdTc4OEJcXHU3ODhGXFx1Nzg5MFxcdTc4OTJcXHU3ODk0XFx1Nzg5NVxcdTc4OTZcXHU3ODk5XFx1Nzg5RFxcdTc4OUVcXHU3OEEwXFx1NzhBMlxcdTc4QTRcXHU3OEE2XFx1NzhBOFwiLCA3LCBcIlxcdTc4QjVcXHU3OEI2XFx1NzhCN1xcdTc4QjhcXHU3OEJBXFx1NzhCQlxcdTc4QkNcXHU3OEJEXFx1NzhCRlxcdTc4QzBcXHU3OEMyXFx1NzhDM1xcdTc4QzRcXHU3OEM2XFx1NzhDN1xcdTc4QzhcXHU3OENDXFx1NzhDRFxcdTc4Q0VcXHU3OENGXFx1NzhEMVxcdTc4RDJcXHU3OEQzXFx1NzhENlxcdTc4RDdcXHU3OEQ4XFx1NzhEQVwiLCA5XSxcbiAgICAgIFtcImI0ODBcIiwgXCJcXHU3OEU0XFx1NzhFNVxcdTc4RTZcXHU3OEU3XFx1NzhFOVxcdTc4RUFcXHU3OEVCXFx1NzhFRFwiLCA0LCBcIlxcdTc4RjNcXHU3OEY1XFx1NzhGNlxcdTc4RjhcXHU3OEY5XFx1NzhGQlwiLCA1LCBcIlxcdTc5MDJcXHU3OTAzXFx1NzkwNFxcdTc5MDZcIiwgNiwgXCJcXHU3ODQwXFx1NTBBOFxcdTc3RDdcXHU2NDEwXFx1ODlFNlxcdTU5MDRcXHU2M0UzXFx1NURERFxcdTdBN0ZcXHU2OTNEXFx1NEYyMFxcdTgyMzlcXHU1NTk4XFx1NEUzMlxcdTc1QUVcXHU3QTk3XFx1NUU2MlxcdTVFOEFcXHU5NUVGXFx1NTIxQlxcdTU0MzlcXHU3MDhBXFx1NjM3NlxcdTk1MjRcXHU1NzgyXFx1NjYyNVxcdTY5M0ZcXHU5MTg3XFx1NTUwN1xcdTZERjNcXHU3RUFGXFx1ODgyMlxcdTYyMzNcXHU3RUYwXFx1NzVCNVxcdTgzMjhcXHU3OEMxXFx1OTZDQ1xcdThGOUVcXHU2MTQ4XFx1NzRGN1xcdThCQ0RcXHU2QjY0XFx1NTIzQVxcdThENTBcXHU2QjIxXFx1ODA2QVxcdTg0NzFcXHU1NkYxXFx1NTMwNlxcdTRFQ0VcXHU0RTFCXFx1NTFEMVxcdTdDOTdcXHU5MThCXFx1N0MwN1xcdTRGQzNcXHU4RTdGXFx1N0JFMVxcdTdBOUNcXHU2NDY3XFx1NUQxNFxcdTUwQUNcXHU4MTA2XFx1NzYwMVxcdTdDQjlcXHU2REVDXFx1N0ZFMFxcdTY3NTFcXHU1QjU4XFx1NUJGOFxcdTc4Q0JcXHU2NEFFXFx1NjQxM1xcdTYzQUFcXHU2MzJCXFx1OTUxOVxcdTY0MkRcXHU4RkJFXFx1N0I1NFxcdTc2MjlcXHU2MjUzXFx1NTkyN1xcdTU0NDZcXHU2Qjc5XFx1NTBBM1xcdTYyMzRcXHU1RTI2XFx1NkI4NlxcdTRFRTNcXHU4RDM3XFx1ODg4QlxcdTVGODVcXHU5MDJFXCJdLFxuICAgICAgW1wiYjU0MFwiLCBcIlxcdTc5MERcIiwgNSwgXCJcXHU3OTE0XCIsIDksIFwiXFx1NzkxRlwiLCA0LCBcIlxcdTc5MjVcIiwgMTQsIFwiXFx1NzkzNVwiLCA0LCBcIlxcdTc5M0RcXHU3OTNGXFx1Nzk0MlxcdTc5NDNcXHU3OTQ0XFx1Nzk0NVxcdTc5NDdcXHU3OTRBXCIsIDgsIFwiXFx1Nzk1NFxcdTc5NTVcXHU3OTU4XFx1Nzk1OVxcdTc5NjFcXHU3OTYzXCJdLFxuICAgICAgW1wiYjU4MFwiLCBcIlxcdTc5NjRcXHU3OTY2XFx1Nzk2OVxcdTc5NkFcXHU3OTZCXFx1Nzk2Q1xcdTc5NkVcXHU3OTcwXCIsIDYsIFwiXFx1Nzk3OVxcdTc5N0JcIiwgNCwgXCJcXHU3OTgyXFx1Nzk4M1xcdTc5ODZcXHU3OTg3XFx1Nzk4OFxcdTc5ODlcXHU3OThCXFx1Nzk4Q1xcdTc5OERcXHU3OThFXFx1Nzk5MFxcdTc5OTFcXHU3OTkyXFx1NjAyMFxcdTgwM0RcXHU2MkM1XFx1NEUzOVxcdTUzNTVcXHU5MEY4XFx1NjNCOFxcdTgwQzZcXHU2NUU2XFx1NkMyRVxcdTRGNDZcXHU2MEVFXFx1NkRFMVxcdThCREVcXHU1RjM5XFx1ODZDQlxcdTVGNTNcXHU2MzIxXFx1NTE1QVxcdTgzNjFcXHU2ODYzXFx1NTIwMFxcdTYzNjNcXHU4RTQ4XFx1NTAxMlxcdTVDOUJcXHU3OTc3XFx1NUJGQ1xcdTUyMzBcXHU3QTNCXFx1NjBCQ1xcdTkwNTNcXHU3NkQ3XFx1NUZCN1xcdTVGOTdcXHU3Njg0XFx1OEU2Q1xcdTcwNkZcXHU3NjdCXFx1N0I0OVxcdTc3QUFcXHU1MUYzXFx1OTA5M1xcdTU4MjRcXHU0RjRFXFx1NkVGNFxcdThGRUFcXHU2NTRDXFx1N0IxQlxcdTcyQzRcXHU2REE0XFx1N0ZERlxcdTVBRTFcXHU2MkI1XFx1NUU5NVxcdTU3MzBcXHU4NDgyXFx1N0IyQ1xcdTVFMURcXHU1RjFGXFx1OTAxMlxcdTdGMTRcXHU5OEEwXFx1NjM4MlxcdTZFQzdcXHU3ODk4XFx1NzBCOVxcdTUxNzhcXHU5NzVCXFx1NTdBQlxcdTc1MzVcXHU0RjQzXFx1NzUzOFxcdTVFOTdcXHU2MEU2XFx1NTk2MFxcdTZEQzBcXHU2QkJGXFx1Nzg4OVxcdTUzRkNcXHU5NkQ1XFx1NTFDQlxcdTUyMDFcXHU2Mzg5XFx1NTQwQVxcdTk0OTNcXHU4QzAzXFx1OERDQ1xcdTcyMzlcXHU3ODlGXFx1ODc3NlxcdThGRURcXHU4QzBEXFx1NTNFMFwiXSxcbiAgICAgIFtcImI2NDBcIiwgXCJcXHU3OTkzXCIsIDYsIFwiXFx1Nzk5QlwiLCAxMSwgXCJcXHU3OUE4XCIsIDEwLCBcIlxcdTc5QjRcIiwgNCwgXCJcXHU3OUJDXFx1NzlCRlxcdTc5QzJcXHU3OUM0XFx1NzlDNVxcdTc5QzdcXHU3OUM4XFx1NzlDQVxcdTc5Q0NcXHU3OUNFXFx1NzlDRlxcdTc5RDBcXHU3OUQzXFx1NzlENFxcdTc5RDZcXHU3OUQ3XFx1NzlEOVwiLCA1LCBcIlxcdTc5RTBcXHU3OUUxXFx1NzlFMlxcdTc5RTVcXHU3OUU4XFx1NzlFQVwiXSxcbiAgICAgIFtcImI2ODBcIiwgXCJcXHU3OUVDXFx1NzlFRVxcdTc5RjFcIiwgNiwgXCJcXHU3OUY5XFx1NzlGQVxcdTc5RkNcXHU3OUZFXFx1NzlGRlxcdTdBMDFcXHU3QTA0XFx1N0EwNVxcdTdBMDdcXHU3QTA4XFx1N0EwOVxcdTdBMEFcXHU3QTBDXFx1N0EwRlwiLCA0LCBcIlxcdTdBMTVcXHU3QTE2XFx1N0ExOFxcdTdBMTlcXHU3QTFCXFx1N0ExQ1xcdTRFMDFcXHU3NkVGXFx1NTNFRVxcdTk0ODlcXHU5ODc2XFx1OUYwRVxcdTk1MkRcXHU1QjlBXFx1OEJBMlxcdTRFMjJcXHU0RTFDXFx1NTFBQ1xcdTg0NjNcXHU2MUMyXFx1NTJBOFxcdTY4MEJcXHU0Rjk3XFx1NjA2QlxcdTUxQkJcXHU2RDFFXFx1NTE1Q1xcdTYyOTZcXHU2NTk3XFx1OTY2MVxcdThDNDZcXHU5MDE3XFx1NzVEOFxcdTkwRkRcXHU3NzYzXFx1NkJEMlxcdTcyOEFcXHU3MkVDXFx1OEJGQlxcdTU4MzVcXHU3Nzc5XFx1OEQ0Q1xcdTY3NUNcXHU5NTQwXFx1ODA5QVxcdTVFQTZcXHU2RTIxXFx1NTk5MlxcdTdBRUZcXHU3N0VEXFx1OTUzQlxcdTZCQjVcXHU2NUFEXFx1N0YwRVxcdTU4MDZcXHU1MTUxXFx1OTYxRlxcdTVCRjlcXHU1OEE5XFx1NTQyOFxcdThFNzJcXHU2NTY2XFx1OTg3RlxcdTU2RTRcXHU5NDlEXFx1NzZGRVxcdTkwNDFcXHU2Mzg3XFx1NTRDNlxcdTU5MUFcXHU1OTNBXFx1NTc5QlxcdThFQjJcXHU2NzM1XFx1OERGQVxcdTgyMzVcXHU1MjQxXFx1NjBGMFxcdTU4MTVcXHU4NkZFXFx1NUNFOFxcdTlFNDVcXHU0RkM0XFx1OTg5RFxcdThCQjlcXHU1QTI1XFx1NjA3NlxcdTUzODRcXHU2MjdDXFx1OTA0RlxcdTkxMDJcXHU5OTdGXFx1NjA2OVxcdTgwMENcXHU1MTNGXFx1ODAzM1xcdTVDMTRcXHU5OTc1XFx1NkQzMVxcdTRFOENcIl0sXG4gICAgICBbXCJiNzQwXCIsIFwiXFx1N0ExRFxcdTdBMUZcXHU3QTIxXFx1N0EyMlxcdTdBMjRcIiwgMTQsIFwiXFx1N0EzNFxcdTdBMzVcXHU3QTM2XFx1N0EzOFxcdTdBM0FcXHU3QTNFXFx1N0E0MFwiLCA1LCBcIlxcdTdBNDdcIiwgOSwgXCJcXHU3QTUyXCIsIDQsIFwiXFx1N0E1OFwiLCAxNl0sXG4gICAgICBbXCJiNzgwXCIsIFwiXFx1N0E2OVwiLCA2LCBcIlxcdTdBNzFcXHU3QTcyXFx1N0E3M1xcdTdBNzVcXHU3QTdCXFx1N0E3Q1xcdTdBN0RcXHU3QTdFXFx1N0E4MlxcdTdBODVcXHU3QTg3XFx1N0E4OVxcdTdBOEFcXHU3QThCXFx1N0E4Q1xcdTdBOEVcXHU3QThGXFx1N0E5MFxcdTdBOTNcXHU3QTk0XFx1N0E5OVxcdTdBOUFcXHU3QTlCXFx1N0E5RVxcdTdBQTFcXHU3QUEyXFx1OEQzMFxcdTUzRDFcXHU3RjVBXFx1N0I0RlxcdTRGMTBcXHU0RTRGXFx1OTYwMFxcdTZDRDVcXHU3M0QwXFx1ODVFOVxcdTVFMDZcXHU3NTZBXFx1N0ZGQlxcdTZBMEFcXHU3N0ZFXFx1OTQ5MlxcdTdFNDFcXHU1MUUxXFx1NzBFNlxcdTUzQ0RcXHU4RkQ0XFx1ODMwM1xcdThEMjlcXHU3MkFGXFx1OTk2RFxcdTZDREJcXHU1NzRBXFx1ODJCM1xcdTY1QjlcXHU4MEFBXFx1NjIzRlxcdTk2MzJcXHU1OUE4XFx1NEVGRlxcdThCQkZcXHU3RUJBXFx1NjUzRVxcdTgzRjJcXHU5NzVFXFx1NTU2MVxcdTk4REVcXHU4MEE1XFx1NTMyQVxcdThCRkRcXHU1NDIwXFx1ODBCQVxcdTVFOUZcXHU2Q0I4XFx1OEQzOVxcdTgyQUNcXHU5MTVBXFx1NTQyOVxcdTZDMUJcXHU1MjA2XFx1N0VCN1xcdTU3NUZcXHU3MTFBXFx1NkM3RVxcdTdDODlcXHU1OTRCXFx1NEVGRFxcdTVGRkZcXHU2MTI0XFx1N0NBQVxcdTRFMzBcXHU1QzAxXFx1NjdBQlxcdTg3MDJcXHU1Q0YwXFx1OTUwQlxcdTk4Q0VcXHU3NUFGXFx1NzBGRFxcdTkwMjJcXHU1MUFGXFx1N0YxRFxcdThCQkRcXHU1OTQ5XFx1NTFFNFxcdTRGNUJcXHU1NDI2XFx1NTkyQlxcdTY1NzdcXHU4MEE0XFx1NUI3NVxcdTYyNzZcXHU2MkMyXFx1OEY5MFxcdTVFNDVcXHU2QzFGXFx1N0IyNlxcdTRGMEZcXHU0RkQ4XFx1NjcwRFwiXSxcbiAgICAgIFtcImI4NDBcIiwgXCJcXHU3QUEzXFx1N0FBNFxcdTdBQTdcXHU3QUE5XFx1N0FBQVxcdTdBQUJcXHU3QUFFXCIsIDQsIFwiXFx1N0FCNFwiLCAxMCwgXCJcXHU3QUMwXCIsIDEwLCBcIlxcdTdBQ0NcIiwgOSwgXCJcXHU3QUQ3XFx1N0FEOFxcdTdBREFcXHU3QURCXFx1N0FEQ1xcdTdBRERcXHU3QUUxXFx1N0FFMlxcdTdBRTRcXHU3QUU3XCIsIDUsIFwiXFx1N0FFRVxcdTdBRjBcXHU3QUYxXFx1N0FGMlxcdTdBRjNcIl0sXG4gICAgICBbXCJiODgwXCIsIFwiXFx1N0FGNFwiLCA0LCBcIlxcdTdBRkJcXHU3QUZDXFx1N0FGRVxcdTdCMDBcXHU3QjAxXFx1N0IwMlxcdTdCMDVcXHU3QjA3XFx1N0IwOVxcdTdCMENcXHU3QjBEXFx1N0IwRVxcdTdCMTBcXHU3QjEyXFx1N0IxM1xcdTdCMTZcXHU3QjE3XFx1N0IxOFxcdTdCMUFcXHU3QjFDXFx1N0IxRFxcdTdCMUZcXHU3QjIxXFx1N0IyMlxcdTdCMjNcXHU3QjI3XFx1N0IyOVxcdTdCMkRcXHU2RDZFXFx1NkRBQVxcdTc5OEZcXHU4OEIxXFx1NUYxN1xcdTc1MkJcXHU2MjlBXFx1OEY4NVxcdTRGRUZcXHU5MURDXFx1NjVBN1xcdTgxMkZcXHU4MTUxXFx1NUU5Q1xcdTgxNTBcXHU4RDc0XFx1NTI2RlxcdTg5ODZcXHU4RDRCXFx1NTkwRFxcdTUwODVcXHU0RUQ4XFx1OTYxQ1xcdTcyMzZcXHU4MTc5XFx1OEQxRlxcdTVCQ0NcXHU4QkEzXFx1OTY0NFxcdTU5ODdcXHU3RjFBXFx1NTQ5MFxcdTU2NzZcXHU1NjBFXFx1OEJFNVxcdTY1MzlcXHU2OTgyXFx1OTQ5OVxcdTc2RDZcXHU2RTg5XFx1NUU3MlxcdTc1MThcXHU2NzQ2XFx1NjdEMVxcdTdBRkZcXHU4MDlEXFx1OEQ3NlxcdTYxMUZcXHU3OUM2XFx1NjU2MlxcdThENjNcXHU1MTg4XFx1NTIxQVxcdTk0QTJcXHU3RjM4XFx1ODA5QlxcdTdFQjJcXHU1Qzk3XFx1NkUyRlxcdTY3NjBcXHU3QkQ5XFx1NzY4QlxcdTlBRDhcXHU4MThGXFx1N0Y5NFxcdTdDRDVcXHU2NDFFXFx1OTU1MFxcdTdBM0ZcXHU1NDRBXFx1NTRFNVxcdTZCNENcXHU2NDAxXFx1NjIwOFxcdTlFM0RcXHU4MEYzXFx1NzU5OVxcdTUyNzJcXHU5NzY5XFx1ODQ1QlxcdTY4M0NcXHU4NkU0XFx1OTYwMVxcdTk2OTRcXHU5NEVDXFx1NEUyQVxcdTU0MDRcXHU3RUQ5XFx1NjgzOVxcdThEREZcXHU4MDE1XFx1NjZGNFxcdTVFOUFcXHU3RkI5XCJdLFxuICAgICAgW1wiYjk0MFwiLCBcIlxcdTdCMkZcXHU3QjMwXFx1N0IzMlxcdTdCMzRcXHU3QjM1XFx1N0IzNlxcdTdCMzdcXHU3QjM5XFx1N0IzQlxcdTdCM0RcXHU3QjNGXCIsIDUsIFwiXFx1N0I0NlxcdTdCNDhcXHU3QjRBXFx1N0I0RFxcdTdCNEVcXHU3QjUzXFx1N0I1NVxcdTdCNTdcXHU3QjU5XFx1N0I1Q1xcdTdCNUVcXHU3QjVGXFx1N0I2MVxcdTdCNjNcIiwgMTAsIFwiXFx1N0I2RlxcdTdCNzBcXHU3QjczXFx1N0I3NFxcdTdCNzZcXHU3Qjc4XFx1N0I3QVxcdTdCN0NcXHU3QjdEXFx1N0I3RlxcdTdCODFcXHU3QjgyXFx1N0I4M1xcdTdCODRcXHU3Qjg2XCIsIDYsIFwiXFx1N0I4RVxcdTdCOEZcIl0sXG4gICAgICBbXCJiOTgwXCIsIFwiXFx1N0I5MVxcdTdCOTJcXHU3QjkzXFx1N0I5NlxcdTdCOThcXHU3Qjk5XFx1N0I5QVxcdTdCOUJcXHU3QjlFXFx1N0I5RlxcdTdCQTBcXHU3QkEzXFx1N0JBNFxcdTdCQTVcXHU3QkFFXFx1N0JBRlxcdTdCQjBcXHU3QkIyXFx1N0JCM1xcdTdCQjVcXHU3QkI2XFx1N0JCN1xcdTdCQjlcIiwgNywgXCJcXHU3QkMyXFx1N0JDM1xcdTdCQzRcXHU1N0MyXFx1ODAzRlxcdTY4OTdcXHU1REU1XFx1NjUzQlxcdTUyOUZcXHU2MDZEXFx1OUY5QVxcdTRGOUJcXHU4RUFDXFx1NTE2Q1xcdTVCQUJcXHU1RjEzXFx1NURFOVxcdTZDNUVcXHU2MkYxXFx1OEQyMVxcdTUxNzFcXHU5NEE5XFx1NTJGRVxcdTZDOUZcXHU4MkRGXFx1NzJEN1xcdTU3QTJcXHU2Nzg0XFx1OEQyRFxcdTU5MUZcXHU4RjlDXFx1ODNDN1xcdTU0OTVcXHU3QjhEXFx1NEYzMFxcdTZDQkRcXHU1QjY0XFx1NTlEMVxcdTlGMTNcXHU1M0U0XFx1ODZDQVxcdTlBQThcXHU4QzM3XFx1ODBBMVxcdTY1NDVcXHU5ODdFXFx1NTZGQVxcdTk2QzdcXHU1MjJFXFx1NzREQ1xcdTUyNTBcXHU1QkUxXFx1NjMwMlxcdTg5MDJcXHU0RTU2XFx1NjJEMFxcdTYwMkFcXHU2OEZBXFx1NTE3M1xcdTVCOThcXHU1MUEwXFx1ODlDMlxcdTdCQTFcXHU5OTg2XFx1N0Y1MFxcdTYwRUZcXHU3MDRDXFx1OEQyRlxcdTUxNDlcXHU1RTdGXFx1OTAxQlxcdTc0NzBcXHU4OUM0XFx1NTcyRFxcdTc4NDVcXHU1RjUyXFx1OUY5RlxcdTk1RkFcXHU4RjY4XFx1OUIzQ1xcdThCRTFcXHU3Njc4XFx1Njg0MlxcdTY3RENcXHU4REVBXFx1OEQzNVxcdTUyM0RcXHU4RjhBXFx1NkVEQVxcdTY4Q0RcXHU5NTA1XFx1OTBFRFxcdTU2RkRcXHU2NzlDXFx1ODhGOVxcdThGQzdcXHU1NEM4XCJdLFxuICAgICAgW1wiYmE0MFwiLCBcIlxcdTdCQzVcXHU3QkM4XFx1N0JDOVxcdTdCQ0FcXHU3QkNCXFx1N0JDRFxcdTdCQ0VcXHU3QkNGXFx1N0JEMFxcdTdCRDJcXHU3QkQ0XCIsIDQsIFwiXFx1N0JEQlxcdTdCRENcXHU3QkRFXFx1N0JERlxcdTdCRTBcXHU3QkUyXFx1N0JFM1xcdTdCRTRcXHU3QkU3XFx1N0JFOFxcdTdCRTlcXHU3QkVCXFx1N0JFQ1xcdTdCRURcXHU3QkVGXFx1N0JGMFxcdTdCRjJcIiwgNCwgXCJcXHU3QkY4XFx1N0JGOVxcdTdCRkFcXHU3QkZCXFx1N0JGRFxcdTdCRkZcIiwgNywgXCJcXHU3QzA4XFx1N0MwOVxcdTdDMEFcXHU3QzBEXFx1N0MwRVxcdTdDMTBcIiwgNSwgXCJcXHU3QzE3XFx1N0MxOFxcdTdDMTlcIl0sXG4gICAgICBbXCJiYTgwXCIsIFwiXFx1N0MxQVwiLCA0LCBcIlxcdTdDMjBcIiwgNSwgXCJcXHU3QzI4XFx1N0MyOVxcdTdDMkJcIiwgMTIsIFwiXFx1N0MzOVwiLCA1LCBcIlxcdTdDNDJcXHU5QUI4XFx1NUI2OVxcdTZENzdcXHU2QzI2XFx1NEVBNVxcdTVCQjNcXHU5QTg3XFx1OTE2M1xcdTYxQThcXHU5MEFGXFx1OTdFOVxcdTU0MkJcXHU2REI1XFx1NUJEMlxcdTUxRkRcXHU1NThBXFx1N0Y1NVxcdTdGRjBcXHU2NEJDXFx1NjM0RFxcdTY1RjFcXHU2MUJFXFx1NjA4RFxcdTcxMEFcXHU2QzU3XFx1NkM0OVxcdTU5MkZcXHU2NzZEXFx1ODIyQVxcdTU4RDVcXHU1NjhFXFx1OEM2QVxcdTZCRUJcXHU5MEREXFx1NTk3RFxcdTgwMTdcXHU1M0Y3XFx1NkQ2OVxcdTU0NzVcXHU1NTlEXFx1ODM3N1xcdTgzQ0ZcXHU2ODM4XFx1NzlCRVxcdTU0OENcXHU0RjU1XFx1NTQwOFxcdTc2RDJcXHU4Qzg5XFx1OTYwMlxcdTZDQjNcXHU2REI4XFx1OEQ2QlxcdTg5MTBcXHU5RTY0XFx1OEQzQVxcdTU2M0ZcXHU5RUQxXFx1NzVENVxcdTVGODhcXHU3MkUwXFx1NjA2OFxcdTU0RkNcXHU0RUE4XFx1NkEyQVxcdTg4NjFcXHU2MDUyXFx1OEY3MFxcdTU0QzRcXHU3MEQ4XFx1ODY3OVxcdTlFM0ZcXHU2RDJBXFx1NUI4RlxcdTVGMThcXHU3RUEyXFx1NTU4OVxcdTRGQUZcXHU3MzM0XFx1NTQzQ1xcdTUzOUFcXHU1MDE5XFx1NTQwRVxcdTU0N0NcXHU0RTRFXFx1NUZGRFxcdTc0NUFcXHU1OEY2XFx1ODQ2QlxcdTgwRTFcXHU4Nzc0XFx1NzJEMFxcdTdDQ0FcXHU2RTU2XCJdLFxuICAgICAgW1wiYmI0MFwiLCBcIlxcdTdDNDNcIiwgOSwgXCJcXHU3QzRFXCIsIDM2LCBcIlxcdTdDNzVcIiwgNSwgXCJcXHU3QzdFXCIsIDldLFxuICAgICAgW1wiYmI4MFwiLCBcIlxcdTdDODhcXHU3QzhBXCIsIDYsIFwiXFx1N0M5M1xcdTdDOTRcXHU3Qzk2XFx1N0M5OVxcdTdDOUFcXHU3QzlCXFx1N0NBMFxcdTdDQTFcXHU3Q0EzXFx1N0NBNlxcdTdDQTdcXHU3Q0E4XFx1N0NBOVxcdTdDQUJcXHU3Q0FDXFx1N0NBRFxcdTdDQUZcXHU3Q0IwXFx1N0NCNFwiLCA0LCBcIlxcdTdDQkFcXHU3Q0JCXFx1NUYyN1xcdTg2NEVcXHU1NTJDXFx1NjJBNFxcdTRFOTJcXHU2Q0FBXFx1NjIzN1xcdTgyQjFcXHU1NEQ3XFx1NTM0RVxcdTczM0VcXHU2RUQxXFx1NzUzQlxcdTUyMTJcXHU1MzE2XFx1OEJERFxcdTY5RDBcXHU1RjhBXFx1NjAwMFxcdTZERUVcXHU1NzRGXFx1NkIyMlxcdTczQUZcXHU2ODUzXFx1OEZEOFxcdTdGMTNcXHU2MzYyXFx1NjBBM1xcdTU1MjRcXHU3NUVBXFx1OEM2MlxcdTcxMTVcXHU2REEzXFx1NUJBNlxcdTVFN0JcXHU4MzUyXFx1NjE0Q1xcdTlFQzRcXHU3OEZBXFx1ODc1N1xcdTdDMjdcXHU3Njg3XFx1NTFGMFxcdTYwRjZcXHU3MTRDXFx1NjY0M1xcdTVFNENcXHU2MDREXFx1OEMwRVxcdTcwNzBcXHU2MzI1XFx1OEY4OVxcdTVGQkRcXHU2MDYyXFx1ODZENFxcdTU2REVcXHU2QkMxXFx1NjA5NFxcdTYxNjdcXHU1MzQ5XFx1NjBFMFxcdTY2NjZcXHU4RDNGXFx1NzlGRFxcdTRGMUFcXHU3MEU5XFx1NkM0N1xcdThCQjNcXHU4QkYyXFx1N0VEOFxcdTgzNjRcXHU2NjBGXFx1NUE1QVxcdTlCNDJcXHU2RDUxXFx1NkRGN1xcdThDNDFcXHU2RDNCXFx1NEYxOVxcdTcwNkJcXHU4M0I3XFx1NjIxNlxcdTYwRDFcXHU5NzBEXFx1OEQyN1xcdTc5NzhcXHU1MUZCXFx1NTczRVxcdTU3RkFcXHU2NzNBXFx1NzU3OFxcdTdBM0RcXHU3OUVGXFx1N0I5NVwiXSxcbiAgICAgIFtcImJjNDBcIiwgXCJcXHU3Q0JGXFx1N0NDMFxcdTdDQzJcXHU3Q0MzXFx1N0NDNFxcdTdDQzZcXHU3Q0M5XFx1N0NDQlxcdTdDQ0VcIiwgNiwgXCJcXHU3Q0Q4XFx1N0NEQVxcdTdDREJcXHU3Q0REXFx1N0NERVxcdTdDRTFcIiwgNiwgXCJcXHU3Q0U5XCIsIDUsIFwiXFx1N0NGMFwiLCA3LCBcIlxcdTdDRjlcXHU3Q0ZBXFx1N0NGQ1wiLCAxMywgXCJcXHU3RDBCXCIsIDVdLFxuICAgICAgW1wiYmM4MFwiLCBcIlxcdTdEMTFcIiwgMTQsIFwiXFx1N0QyMVxcdTdEMjNcXHU3RDI0XFx1N0QyNVxcdTdEMjZcXHU3RDI4XFx1N0QyOVxcdTdEMkFcXHU3RDJDXFx1N0QyRFxcdTdEMkVcXHU3RDMwXCIsIDYsIFwiXFx1ODA4Q1xcdTk5NjVcXHU4RkY5XFx1NkZDMFxcdThCQTVcXHU5RTIxXFx1NTlFQ1xcdTdFRTlcXHU3RjA5XFx1NTQwOVxcdTY3ODFcXHU2OEQ4XFx1OEY5MVxcdTdDNERcXHU5NkM2XFx1NTNDQVxcdTYwMjVcXHU3NUJFXFx1NkM3MlxcdTUzNzNcXHU1QUM5XFx1N0VBN1xcdTYzMjRcXHU1MUUwXFx1ODEwQVxcdTVERjFcXHU4NERGXFx1NjI4MFxcdTUxODBcXHU1QjYzXFx1NEYwRVxcdTc5NkRcXHU1MjQyXFx1NjBCOFxcdTZENEVcXHU1QkM0XFx1NUJDMlxcdThCQTFcXHU4QkIwXFx1NjVFMlxcdTVGQ0NcXHU5NjQ1XFx1NTk5M1xcdTdFRTdcXHU3RUFBXFx1NTYwOVxcdTY3QjdcXHU1OTM5XFx1NEY3M1xcdTVCQjZcXHU1MkEwXFx1ODM1QVxcdTk4OEFcXHU4RDNFXFx1NzUzMlxcdTk0QkVcXHU1MDQ3XFx1N0EzQ1xcdTRFRjdcXHU2N0I2XFx1OUE3RVxcdTVBQzFcXHU2QjdDXFx1NzZEMVxcdTU3NUFcXHU1QzE2XFx1N0IzQVxcdTk1RjRcXHU3MTRFXFx1NTE3Q1xcdTgwQTlcXHU4MjcwXFx1NTk3OFxcdTdGMDRcXHU4MzI3XFx1NjhDMFxcdTY3RUNcXHU3OEIxXFx1Nzg3N1xcdTYyRTNcXHU2MzYxXFx1N0I4MFxcdTRGRURcXHU1MjZBXFx1NTFDRlxcdTgzNTBcXHU2OURCXFx1OTI3NFxcdThERjVcXHU4RDMxXFx1ODlDMVxcdTk1MkVcXHU3QkFEXFx1NEVGNlwiXSxcbiAgICAgIFtcImJkNDBcIiwgXCJcXHU3RDM3XCIsIDU0LCBcIlxcdTdENkZcIiwgN10sXG4gICAgICBbXCJiZDgwXCIsIFwiXFx1N0Q3OFwiLCAzMiwgXCJcXHU1MDY1XFx1ODIzMFxcdTUyNTFcXHU5OTZGXFx1NkUxMFxcdTZFODVcXHU2REE3XFx1NUVGQVxcdTUwRjVcXHU1OURDXFx1NUMwNlxcdTZENDZcXHU2QzVGXFx1NzU4NlxcdTg0OEJcXHU2ODY4XFx1NTk1NlxcdThCQjJcXHU1MzIwXFx1OTE3MVxcdTk2NERcXHU4NTQ5XFx1NjkxMlxcdTc5MDFcXHU3MTI2XFx1ODBGNlxcdTRFQTRcXHU5MENBXFx1NkQ0N1xcdTlBODRcXHU1QTA3XFx1NTZCQ1xcdTY0MDVcXHU5NEYwXFx1NzdFQlxcdTRGQTVcXHU4MTFBXFx1NzJFMVxcdTg5RDJcXHU5OTdBXFx1N0YzNFxcdTdFREVcXHU1MjdGXFx1NjU1OVxcdTkxNzVcXHU4RjdGXFx1OEY4M1xcdTUzRUJcXHU3QTk2XFx1NjNFRFxcdTYzQTVcXHU3Njg2XFx1NzlGOFxcdTg4NTdcXHU5NjM2XFx1NjIyQVxcdTUyQUJcXHU4MjgyXFx1Njg1NFxcdTY3NzBcXHU2Mzc3XFx1Nzc2QlxcdTdBRURcXHU2RDAxXFx1N0VEM1xcdTg5RTNcXHU1OUQwXFx1NjIxMlxcdTg1QzlcXHU4MkE1XFx1NzU0Q1xcdTUwMUZcXHU0RUNCXFx1NzVBNVxcdThCRUJcXHU1QzRBXFx1NURGRVxcdTdCNEJcXHU2NUE0XFx1OTFEMVxcdTRFQ0FcXHU2RDI1XFx1ODk1RlxcdTdEMjdcXHU5NTI2XFx1NEVDNVxcdThDMjhcXHU4RkRCXFx1OTc3M1xcdTY2NEJcXHU3OTgxXFx1OEZEMVxcdTcwRUNcXHU2RDc4XCJdLFxuICAgICAgW1wiYmU0MFwiLCBcIlxcdTdEOTlcIiwgMTIsIFwiXFx1N0RBN1wiLCA2LCBcIlxcdTdEQUZcIiwgNDJdLFxuICAgICAgW1wiYmU4MFwiLCBcIlxcdTdEREFcIiwgMzIsIFwiXFx1NUMzRFxcdTUyQjJcXHU4MzQ2XFx1NTE2MlxcdTgzMEVcXHU3NzVCXFx1NjY3NlxcdTlDQjhcXHU0RUFDXFx1NjBDQVxcdTdDQkVcXHU3Q0IzXFx1N0VDRlxcdTRFOTVcXHU4QjY2XFx1NjY2RlxcdTk4ODhcXHU5NzU5XFx1NTg4M1xcdTY1NkNcXHU5NTVDXFx1NUY4NFxcdTc1QzlcXHU5NzU2XFx1N0FERlxcdTdBREVcXHU1MUMwXFx1NzBBRlxcdTdBOThcXHU2M0VBXFx1N0E3NlxcdTdFQTBcXHU3Mzk2XFx1OTdFRFxcdTRFNDVcXHU3MDc4XFx1NEU1RFxcdTkxNTJcXHU1M0E5XFx1NjU1MVxcdTY1RTdcXHU4MUZDXFx1ODIwNVxcdTU0OEVcXHU1QzMxXFx1NzU5QVxcdTk3QTBcXHU2MkQ4XFx1NzJEOVxcdTc1QkRcXHU1QzQ1XFx1OUE3OVxcdTgzQ0FcXHU1QzQwXFx1NTQ4MFxcdTc3RTlcXHU0RTNFXFx1NkNBRVxcdTgwNUFcXHU2MkQyXFx1NjM2RVxcdTVERThcXHU1MTc3XFx1OERERFxcdThFMUVcXHU5NTJGXFx1NEZGMVxcdTUzRTVcXHU2MEU3XFx1NzBBQ1xcdTUyNjdcXHU2MzUwXFx1OUU0M1xcdTVBMUZcXHU1MDI2XFx1NzczN1xcdTUzNzdcXHU3RUUyXFx1NjQ4NVxcdTY1MkJcXHU2Mjg5XFx1NjM5OFxcdTUwMTRcXHU3MjM1XFx1ODlDOVxcdTUxQjNcXHU4QkMwXFx1N0VERFxcdTU3NDdcXHU4M0NDXFx1OTRBN1xcdTUxOUJcXHU1NDFCXFx1NUNGQlwiXSxcbiAgICAgIFtcImJmNDBcIiwgXCJcXHU3REZCXCIsIDYyXSxcbiAgICAgIFtcImJmODBcIiwgXCJcXHU3RTNBXFx1N0UzQ1wiLCA0LCBcIlxcdTdFNDJcIiwgNCwgXCJcXHU3RTQ4XCIsIDIxLCBcIlxcdTRGQ0FcXHU3QUUzXFx1NkQ1QVxcdTkwRTFcXHU5QThGXFx1NTU4MFxcdTU0OTZcXHU1MzYxXFx1NTRBRlxcdTVGMDBcXHU2M0U5XFx1Njk3N1xcdTUxRUZcXHU2MTY4XFx1NTIwQVxcdTU4MkFcXHU1MkQ4XFx1NTc0RVxcdTc4MERcXHU3NzBCXFx1NUVCN1xcdTYxNzdcXHU3Q0UwXFx1NjI1QlxcdTYyOTdcXHU0RUEyXFx1NzA5NVxcdTgwMDNcXHU2MkY3XFx1NzBFNFxcdTk3NjBcXHU1Nzc3XFx1ODJEQlxcdTY3RUZcXHU2OEY1XFx1NzhENVxcdTk4OTdcXHU3OUQxXFx1NThGM1xcdTU0QjNcXHU1M0VGXFx1NkUzNFxcdTUxNEJcXHU1MjNCXFx1NUJBMlxcdThCRkVcXHU4MEFGXFx1NTU0M1xcdTU3QTZcXHU2MDczXFx1NTc1MVxcdTU0MkRcXHU3QTdBXFx1NjA1MFxcdTVCNTRcXHU2M0E3XFx1NjJBMFxcdTUzRTNcXHU2MjYzXFx1NUJDN1xcdTY3QUZcXHU1NEVEXFx1N0E5RlxcdTgyRTZcXHU5MTc3XFx1NUU5M1xcdTg4RTRcXHU1OTM4XFx1NTdBRVxcdTYzMEVcXHU4REU4XFx1ODBFRlxcdTU3NTdcXHU3Qjc3XFx1NEZBOVxcdTVGRUJcXHU1QkJEXFx1NkIzRVxcdTUzMjFcXHU3QjUwXFx1NzJDMlxcdTY4NDZcXHU3N0ZGXFx1NzczNlxcdTY1RjdcXHU1MUI1XFx1NEU4RlxcdTc2RDRcXHU1Q0JGXFx1N0FBNVxcdTg0NzVcXHU1OTRFXFx1OUI0MVxcdTUwODBcIl0sXG4gICAgICBbXCJjMDQwXCIsIFwiXFx1N0U1RVwiLCAzNSwgXCJcXHU3RTgzXCIsIDIzLCBcIlxcdTdFOUNcXHU3RTlEXFx1N0U5RVwiXSxcbiAgICAgIFtcImMwODBcIiwgXCJcXHU3RUFFXFx1N0VCNFxcdTdFQkJcXHU3RUJDXFx1N0VENlxcdTdFRTRcXHU3RUVDXFx1N0VGOVxcdTdGMEFcXHU3RjEwXFx1N0YxRVxcdTdGMzdcXHU3RjM5XFx1N0YzQlwiLCA2LCBcIlxcdTdGNDNcXHU3RjQ2XCIsIDksIFwiXFx1N0Y1MlxcdTdGNTNcXHU5OTg4XFx1NjEyN1xcdTZFODNcXHU1NzY0XFx1NjYwNlxcdTYzNDZcXHU1NkYwXFx1NjJFQ1xcdTYyNjlcXHU1RUQzXFx1OTYxNFxcdTU3ODNcXHU2MkM5XFx1NTU4N1xcdTg3MjFcXHU4MTRBXFx1OEZBM1xcdTU1NjZcXHU4M0IxXFx1Njc2NVxcdThENTZcXHU4NEREXFx1NUE2QVxcdTY4MEZcXHU2MkU2XFx1N0JFRVxcdTk2MTFcXHU1MTcwXFx1NkY5Q1xcdThDMzBcXHU2M0ZEXFx1ODlDOFxcdTYxRDJcXHU3RjA2XFx1NzBDMlxcdTZFRTVcXHU3NDA1XFx1Njk5NFxcdTcyRkNcXHU1RUNBXFx1OTBDRVxcdTY3MTdcXHU2RDZBXFx1NjM1RVxcdTUyQjNcXHU3MjYyXFx1ODAwMVxcdTRGNkNcXHU1OUU1XFx1OTE2QVxcdTcwRDlcXHU2RDlEXFx1NTJEMlxcdTRFNTBcXHU5NkY3XFx1OTU2RFxcdTg1N0VcXHU3OENBXFx1N0QyRlxcdTUxMjFcXHU1NzkyXFx1NjRDMlxcdTgwOEJcXHU3QzdCXFx1NkNFQVxcdTY4RjFcXHU2OTVFXFx1NTFCN1xcdTUzOThcXHU2OEE4XFx1NzI4MVxcdTlFQ0VcXHU3QkYxXFx1NzJGOFxcdTc5QkJcXHU2RjEzXFx1NzQwNlxcdTY3NEVcXHU5MUNDXFx1OUNBNFxcdTc5M0NcXHU4Mzg5XFx1ODM1NFxcdTU0MEZcXHU2ODE3XFx1NEUzRFxcdTUzODlcXHU1MkIxXFx1NzgzRVxcdTUzODZcXHU1MjI5XFx1NTA4OFxcdTRGOEJcXHU0RkQwXCJdLFxuICAgICAgW1wiYzE0MFwiLCBcIlxcdTdGNTZcXHU3RjU5XFx1N0Y1QlxcdTdGNUNcXHU3RjVEXFx1N0Y1RVxcdTdGNjBcXHU3RjYzXCIsIDQsIFwiXFx1N0Y2QlxcdTdGNkNcXHU3RjZEXFx1N0Y2RlxcdTdGNzBcXHU3RjczXFx1N0Y3NVxcdTdGNzZcXHU3Rjc3XFx1N0Y3OFxcdTdGN0FcXHU3RjdCXFx1N0Y3Q1xcdTdGN0RcXHU3RjdGXFx1N0Y4MFxcdTdGODJcIiwgNywgXCJcXHU3RjhCXFx1N0Y4RFxcdTdGOEZcIiwgNCwgXCJcXHU3Rjk1XCIsIDQsIFwiXFx1N0Y5QlxcdTdGOUNcXHU3RkEwXFx1N0ZBMlxcdTdGQTNcXHU3RkE1XFx1N0ZBNlxcdTdGQThcIiwgNiwgXCJcXHU3RkIxXCJdLFxuICAgICAgW1wiYzE4MFwiLCBcIlxcdTdGQjNcIiwgNCwgXCJcXHU3RkJBXFx1N0ZCQlxcdTdGQkVcXHU3RkMwXFx1N0ZDMlxcdTdGQzNcXHU3RkM0XFx1N0ZDNlxcdTdGQzdcXHU3RkM4XFx1N0ZDOVxcdTdGQ0JcXHU3RkNEXFx1N0ZDRlwiLCA0LCBcIlxcdTdGRDZcXHU3RkQ3XFx1N0ZEOVwiLCA1LCBcIlxcdTdGRTJcXHU3RkUzXFx1NzVFMlxcdTdBQ0JcXHU3QzkyXFx1NkNBNVxcdTk2QjZcXHU1MjlCXFx1NzQ4M1xcdTU0RTlcXHU0RkU5XFx1ODA1NFxcdTgzQjJcXHU4RkRFXFx1OTU3MFxcdTVFQzlcXHU2MDFDXFx1NkQ5RlxcdTVFMThcXHU2NTVCXFx1ODEzOFxcdTk0RkVcXHU2MDRCXFx1NzBCQ1xcdTdFQzNcXHU3Q0FFXFx1NTFDOVxcdTY4ODFcXHU3Q0IxXFx1ODI2RlxcdTRFMjRcXHU4Rjg2XFx1OTFDRlxcdTY2N0VcXHU0RUFFXFx1OEMwNVxcdTY0QTlcXHU4MDRBXFx1NTBEQVxcdTc1OTdcXHU3MUNFXFx1NUJFNVxcdThGQkRcXHU2RjY2XFx1NEU4NlxcdTY0ODJcXHU5NTYzXFx1NUVENlxcdTY1OTlcXHU1MjE3XFx1ODhDMlxcdTcwQzhcXHU1MkEzXFx1NzMwRVxcdTc0MzNcXHU2Nzk3XFx1NzhGN1xcdTk3MTZcXHU0RTM0XFx1OTBCQlxcdTlDREVcXHU2RENCXFx1NTFEQlxcdThENDFcXHU1NDFEXFx1NjJDRVxcdTczQjJcXHU4M0YxXFx1OTZGNlxcdTlGODRcXHU5NEMzXFx1NEYzNlxcdTdGOUFcXHU1MUNDXFx1NzA3NVxcdTk2NzVcXHU1Q0FEXFx1OTg4NlxcdTUzRTZcXHU0RUU0XFx1NkU5Q1xcdTc0MDlcXHU2OUI0XFx1Nzg2QlxcdTk5OEZcXHU3NTU5XFx1NTIxOFxcdTc2MjRcXHU2RDQxXFx1NjdGM1xcdTUxNkRcXHU5Rjk5XFx1ODA0QlxcdTU0OTlcXHU3QjNDXFx1N0FCRlwiXSxcbiAgICAgIFtcImMyNDBcIiwgXCJcXHU3RkU0XFx1N0ZFN1xcdTdGRThcXHU3RkVBXFx1N0ZFQlxcdTdGRUNcXHU3RkVEXFx1N0ZFRlxcdTdGRjJcXHU3RkY0XCIsIDYsIFwiXFx1N0ZGRFxcdTdGRkVcXHU3RkZGXFx1ODAwMlxcdTgwMDdcXHU4MDA4XFx1ODAwOVxcdTgwMEFcXHU4MDBFXFx1ODAwRlxcdTgwMTFcXHU4MDEzXFx1ODAxQVxcdTgwMUJcXHU4MDFEXFx1ODAxRVxcdTgwMUZcXHU4MDIxXFx1ODAyM1xcdTgwMjRcXHU4MDJCXCIsIDUsIFwiXFx1ODAzMlxcdTgwMzRcXHU4MDM5XFx1ODAzQVxcdTgwM0NcXHU4MDNFXFx1ODA0MFxcdTgwNDFcXHU4MDQ0XFx1ODA0NVxcdTgwNDdcXHU4MDQ4XFx1ODA0OVxcdTgwNEVcXHU4MDRGXFx1ODA1MFxcdTgwNTFcXHU4MDUzXFx1ODA1NVxcdTgwNTZcXHU4MDU3XCJdLFxuICAgICAgW1wiYzI4MFwiLCBcIlxcdTgwNTlcXHU4MDVCXCIsIDEzLCBcIlxcdTgwNkJcIiwgNSwgXCJcXHU4MDcyXCIsIDExLCBcIlxcdTk2ODZcXHU1Nzg0XFx1NjJFMlxcdTk2NDdcXHU2OTdDXFx1NUEwNFxcdTY0MDJcXHU3QkQzXFx1NkYwRlxcdTk2NEJcXHU4MkE2XFx1NTM2MlxcdTk4ODVcXHU1RTkwXFx1NzA4OVxcdTYzQjNcXHU1MzY0XFx1ODY0RlxcdTlDODFcXHU5RTkzXFx1Nzg4Q1xcdTk3MzJcXHU4REVGXFx1OEQ0MlxcdTlFN0ZcXHU2RjVFXFx1Nzk4NFxcdTVGNTVcXHU5NjQ2XFx1NjIyRVxcdTlBNzRcXHU1NDE1XFx1OTRERFxcdTRGQTNcXHU2NUM1XFx1NUM2NVxcdTVDNjFcXHU3RjE1XFx1ODY1MVxcdTZDMkZcXHU1RjhCXFx1NzM4N1xcdTZFRTRcXHU3RUZGXFx1NUNFNlxcdTYzMUJcXHU1QjZBXFx1NkVFNlxcdTUzNzVcXHU0RTcxXFx1NjNBMFxcdTc1NjVcXHU2MkExXFx1OEY2RVxcdTRGMjZcXHU0RUQxXFx1NkNBNlxcdTdFQjZcXHU4QkJBXFx1ODQxRFxcdTg3QkFcXHU3RjU3XFx1OTAzQlxcdTk1MjNcXHU3QkE5XFx1OUFBMVxcdTg4RjhcXHU4NDNEXFx1NkQxQlxcdTlBODZcXHU3RURDXFx1NTk4OFxcdTlFQkJcXHU3MzlCXFx1NzgwMVxcdTg2ODJcXHU5QTZDXFx1OUE4MlxcdTU2MUJcXHU1NDE3XFx1NTdDQlxcdTRFNzBcXHU5RUE2XFx1NTM1NlxcdThGQzhcXHU4MTA5XFx1Nzc5MlxcdTk5OTJcXHU4NkVFXFx1NkVFMVxcdTg1MTNcXHU2NkZDXFx1NjE2MlxcdTZGMkJcIl0sXG4gICAgICBbXCJjMzQwXCIsIFwiXFx1ODA3RVxcdTgwODFcXHU4MDgyXFx1ODA4NVxcdTgwODhcXHU4MDhBXFx1ODA4RFwiLCA1LCBcIlxcdTgwOTRcXHU4MDk1XFx1ODA5N1xcdTgwOTlcXHU4MDlFXFx1ODBBM1xcdTgwQTZcXHU4MEE3XFx1ODBBOFxcdTgwQUNcXHU4MEIwXFx1ODBCM1xcdTgwQjVcXHU4MEI2XFx1ODBCOFxcdTgwQjlcXHU4MEJCXFx1ODBDNVxcdTgwQzdcIiwgNCwgXCJcXHU4MENGXCIsIDYsIFwiXFx1ODBEOFxcdTgwREZcXHU4MEUwXFx1ODBFMlxcdTgwRTNcXHU4MEU2XFx1ODBFRVxcdTgwRjVcXHU4MEY3XFx1ODBGOVxcdTgwRkJcXHU4MEZFXFx1ODBGRlxcdTgxMDBcXHU4MTAxXFx1ODEwM1xcdTgxMDRcXHU4MTA1XFx1ODEwN1xcdTgxMDhcXHU4MTBCXCJdLFxuICAgICAgW1wiYzM4MFwiLCBcIlxcdTgxMENcXHU4MTE1XFx1ODExN1xcdTgxMTlcXHU4MTFCXFx1ODExQ1xcdTgxMURcXHU4MTFGXCIsIDEyLCBcIlxcdTgxMkRcXHU4MTJFXFx1ODEzMFxcdTgxMzNcXHU4MTM0XFx1ODEzNVxcdTgxMzdcXHU4MTM5XCIsIDQsIFwiXFx1ODEzRlxcdThDMjlcXHU4MjkyXFx1ODMyQlxcdTc2RjJcXHU2QzEzXFx1NUZEOVxcdTgzQkRcXHU3MzJCXFx1ODMwNVxcdTk1MUFcXHU2QkRCXFx1NzdEQlxcdTk0QzZcXHU1MzZGXFx1ODMwMlxcdTUxOTJcXHU1RTNEXFx1OEM4Q1xcdThEMzhcXHU0RTQ4XFx1NzNBQlxcdTY3OUFcXHU2ODg1XFx1OTE3NlxcdTk3MDlcXHU3MTY0XFx1NkNBMVxcdTc3MDlcXHU1QTkyXFx1OTU0MVxcdTZCQ0ZcXHU3RjhFXFx1NjYyN1xcdTVCRDBcXHU1OUI5XFx1NUE5QVxcdTk1RThcXHU5NUY3XFx1NEVFQ1xcdTg0MENcXHU4NDk5XFx1NkFBQ1xcdTc2REZcXHU5NTMwXFx1NzMxQlxcdTY4QTZcXHU1QjVGXFx1NzcyRlxcdTkxOUFcXHU5NzYxXFx1N0NEQ1xcdThGRjdcXHU4QzFDXFx1NUYyNVxcdTdDNzNcXHU3OUQ4XFx1ODlDNVxcdTZDQ0NcXHU4NzFDXFx1NUJDNlxcdTVFNDJcXHU2OEM5XFx1NzcyMFxcdTdFRjVcXHU1MTk1XFx1NTE0RFxcdTUyQzlcXHU1QTI5XFx1N0YwNVxcdTk3NjJcXHU4MkQ3XFx1NjNDRlxcdTc3ODRcXHU4NUQwXFx1NzlEMlxcdTZFM0FcXHU1RTk5XFx1NTk5OVxcdTg1MTFcXHU3MDZEXFx1NkMxMVxcdTYyQkZcXHU3NkJGXFx1NjU0RlxcdTYwQUZcXHU5NUZEXFx1NjYwRVxcdTg3OUZcXHU5RTIzXFx1OTRFRFxcdTU0MERcXHU1NDdEXFx1OEMyQ1xcdTY0NzhcIl0sXG4gICAgICBbXCJjNDQwXCIsIFwiXFx1ODE0MFwiLCA1LCBcIlxcdTgxNDdcXHU4MTQ5XFx1ODE0RFxcdTgxNEVcXHU4MTRGXFx1ODE1MlxcdTgxNTZcXHU4MTU3XFx1ODE1OFxcdTgxNUJcIiwgNCwgXCJcXHU4MTYxXFx1ODE2MlxcdTgxNjNcXHU4MTY0XFx1ODE2NlxcdTgxNjhcXHU4MTZBXFx1ODE2QlxcdTgxNkNcXHU4MTZGXFx1ODE3MlxcdTgxNzNcXHU4MTc1XFx1ODE3NlxcdTgxNzdcXHU4MTc4XFx1ODE4MVxcdTgxODNcIiwgNCwgXCJcXHU4MTg5XFx1ODE4QlxcdTgxOENcXHU4MThEXFx1ODE4RVxcdTgxOTBcXHU4MTkyXCIsIDUsIFwiXFx1ODE5OVxcdTgxOUFcXHU4MTlFXCIsIDQsIFwiXFx1ODFBNFxcdTgxQTVcIl0sXG4gICAgICBbXCJjNDgwXCIsIFwiXFx1ODFBN1xcdTgxQTlcXHU4MUFCXCIsIDcsIFwiXFx1ODFCNFwiLCA1LCBcIlxcdTgxQkNcXHU4MUJEXFx1ODFCRVxcdTgxQkZcXHU4MUM0XFx1ODFDNVxcdTgxQzdcXHU4MUM4XFx1ODFDOVxcdTgxQ0JcXHU4MUNEXCIsIDYsIFwiXFx1NjQ3OVxcdTg2MTFcXHU2QTIxXFx1ODE5Q1xcdTc4RThcXHU2NDY5XFx1OUI1NFxcdTYyQjlcXHU2NzJCXFx1ODNBQlxcdTU4QThcXHU5RUQ4XFx1NkNBQlxcdTZGMjBcXHU1QkRFXFx1OTY0Q1xcdThDMEJcXHU3MjVGXFx1NjdEMFxcdTYyQzdcXHU3MjYxXFx1NEVBOVxcdTU5QzZcXHU2QkNEXFx1NTg5M1xcdTY2QUVcXHU1RTU1XFx1NTJERlxcdTYxNTVcXHU2NzI4XFx1NzZFRVxcdTc3NjZcXHU3MjY3XFx1N0E0NlxcdTYyRkZcXHU1NEVBXFx1NTQ1MFxcdTk0QTBcXHU5MEEzXFx1NUExQ1xcdTdFQjNcXHU2QzE2XFx1NEU0M1xcdTU5NzZcXHU4MDEwXFx1NTk0OFxcdTUzNTdcXHU3NTM3XFx1OTZCRVxcdTU2Q0FcXHU2MzIwXFx1ODExMVxcdTYwN0NcXHU5NUY5XFx1NkRENlxcdTU0NjJcXHU5OTgxXFx1NTE4NVxcdTVBRTlcXHU4MEZEXFx1NTlBRVxcdTk3MTNcXHU1MDJBXFx1NkNFNVxcdTVDM0NcXHU2MkRGXFx1NEY2MFxcdTUzM0ZcXHU4MTdCXFx1OTAwNlxcdTZFQkFcXHU4NTJCXFx1NjJDOFxcdTVFNzRcXHU3OEJFXFx1NjRCNVxcdTYzN0JcXHU1RkY1XFx1NUExOFxcdTkxN0ZcXHU5RTFGXFx1NUMzRlxcdTYzNEZcXHU4MDQyXFx1NUI3RFxcdTU1NkVcXHU5NTRBXFx1OTU0RFxcdTZEODVcXHU2MEE4XFx1NjdFMFxcdTcyREVcXHU1MUREXFx1NUI4MVwiXSxcbiAgICAgIFtcImM1NDBcIiwgXCJcXHU4MUQ0XCIsIDE0LCBcIlxcdTgxRTRcXHU4MUU1XFx1ODFFNlxcdTgxRThcXHU4MUU5XFx1ODFFQlxcdTgxRUVcIiwgNCwgXCJcXHU4MUY1XCIsIDUsIFwiXFx1ODFGRFxcdTgxRkZcXHU4MjAzXFx1ODIwN1wiLCA0LCBcIlxcdTgyMEVcXHU4MjBGXFx1ODIxMVxcdTgyMTNcXHU4MjE1XCIsIDUsIFwiXFx1ODIxRFxcdTgyMjBcXHU4MjI0XFx1ODIyNVxcdTgyMjZcXHU4MjI3XFx1ODIyOVxcdTgyMkVcXHU4MjMyXFx1ODIzQVxcdTgyM0NcXHU4MjNEXFx1ODIzRlwiXSxcbiAgICAgIFtcImM1ODBcIiwgXCJcXHU4MjQwXFx1ODI0MVxcdTgyNDJcXHU4MjQzXFx1ODI0NVxcdTgyNDZcXHU4MjQ4XFx1ODI0QVxcdTgyNENcXHU4MjREXFx1ODI0RVxcdTgyNTBcIiwgNywgXCJcXHU4MjU5XFx1ODI1QlxcdTgyNUNcXHU4MjVEXFx1ODI1RVxcdTgyNjBcIiwgNywgXCJcXHU4MjY5XFx1NjJFN1xcdTZDREVcXHU3MjVCXFx1NjI2RFxcdTk0QUVcXHU3RUJEXFx1ODExM1xcdTZENTNcXHU1MTlDXFx1NUYwNFxcdTU5NzRcXHU1MkFBXFx1NjAxMlxcdTU5NzNcXHU2Njk2XFx1ODY1MFxcdTc1OUZcXHU2MzJBXFx1NjFFNlxcdTdDRUZcXHU4QkZBXFx1NTRFNlxcdTZCMjdcXHU5RTI1XFx1NkJCNFxcdTg1RDVcXHU1NDU1XFx1NTA3NlxcdTZDQTRcXHU1NTZBXFx1OERCNFxcdTcyMkNcXHU1RTE1XFx1NjAxNVxcdTc0MzZcXHU2MkNEXFx1NjM5MlxcdTcyNENcXHU1Rjk4XFx1NkU0M1xcdTZEM0VcXHU2NTAwXFx1NkY1OFxcdTc2RDhcXHU3OEQwXFx1NzZGQ1xcdTc1NTRcXHU1MjI0XFx1NTNEQlxcdTRFNTNcXHU1RTlFXFx1NjVDMVxcdTgwMkFcXHU4MEQ2XFx1NjI5QlxcdTU0ODZcXHU1MjI4XFx1NzBBRVxcdTg4OERcXHU4REQxXFx1NkNFMVxcdTU0NzhcXHU4MERBXFx1NTdGOVxcdTg4RjRcXHU4RDU0XFx1OTY2QVxcdTkxNERcXHU0RjY5XFx1NkM5QlxcdTU1QjdcXHU3NkM2XFx1NzgzMFxcdTYyQThcXHU3MEY5XFx1NkY4RVxcdTVGNkRcXHU4NEVDXFx1NjhEQVxcdTc4N0NcXHU3QkY3XFx1ODFBOFxcdTY3MEJcXHU5RTRGXFx1NjM2N1xcdTc4QjBcXHU1NzZGXFx1NzgxMlxcdTk3MzlcXHU2Mjc5XFx1NjJBQlxcdTUyODhcXHU3NDM1XFx1NkJEN1wiXSxcbiAgICAgIFtcImM2NDBcIiwgXCJcXHU4MjZBXFx1ODI2QlxcdTgyNkNcXHU4MjZEXFx1ODI3MVxcdTgyNzVcXHU4Mjc2XFx1ODI3N1xcdTgyNzhcXHU4MjdCXFx1ODI3Q1xcdTgyODBcXHU4MjgxXFx1ODI4M1xcdTgyODVcXHU4Mjg2XFx1ODI4N1xcdTgyODlcXHU4MjhDXFx1ODI5MFxcdTgyOTNcXHU4Mjk0XFx1ODI5NVxcdTgyOTZcXHU4MjlBXFx1ODI5QlxcdTgyOUVcXHU4MkEwXFx1ODJBMlxcdTgyQTNcXHU4MkE3XFx1ODJCMlxcdTgyQjVcXHU4MkI2XFx1ODJCQVxcdTgyQkJcXHU4MkJDXFx1ODJCRlxcdTgyQzBcXHU4MkMyXFx1ODJDM1xcdTgyQzVcXHU4MkM2XFx1ODJDOVxcdTgyRDBcXHU4MkQ2XFx1ODJEOVxcdTgyREFcXHU4MkREXFx1ODJFMlxcdTgyRTdcXHU4MkU4XFx1ODJFOVxcdTgyRUFcXHU4MkVDXFx1ODJFRFxcdTgyRUVcXHU4MkYwXFx1ODJGMlxcdTgyRjNcXHU4MkY1XFx1ODJGNlxcdTgyRjhcIl0sXG4gICAgICBbXCJjNjgwXCIsIFwiXFx1ODJGQVxcdTgyRkNcIiwgNCwgXCJcXHU4MzBBXFx1ODMwQlxcdTgzMERcXHU4MzEwXFx1ODMxMlxcdTgzMTNcXHU4MzE2XFx1ODMxOFxcdTgzMTlcXHU4MzFEXCIsIDksIFwiXFx1ODMyOVxcdTgzMkFcXHU4MzJFXFx1ODMzMFxcdTgzMzJcXHU4MzM3XFx1ODMzQlxcdTgzM0RcXHU1NTY0XFx1ODEzRVxcdTc1QjJcXHU3NkFFXFx1NTMzOVxcdTc1REVcXHU1MEZCXFx1NUM0MVxcdThCNkNcXHU3QkM3XFx1NTA0RlxcdTcyNDdcXHU5QTk3XFx1OThEOFxcdTZGMDJcXHU3NEUyXFx1Nzk2OFxcdTY0ODdcXHU3N0E1XFx1NjJGQ1xcdTk4OTFcXHU4RDJCXFx1NTRDMVxcdTgwNThcXHU0RTUyXFx1NTc2QVxcdTgyRjlcXHU4NDBEXFx1NUU3M1xcdTUxRURcXHU3NEY2XFx1OEJDNFxcdTVDNEZcXHU1NzYxXFx1NkNGQ1xcdTk4ODdcXHU1QTQ2XFx1NzgzNFxcdTlCNDRcXHU4RkVCXFx1N0M5NVxcdTUyNTZcXHU2MjUxXFx1OTRGQVxcdTRFQzZcXHU4Mzg2XFx1ODQ2MVxcdTgzRTlcXHU4NEIyXFx1NTdENFxcdTY3MzRcXHU1NzAzXFx1NjY2RVxcdTZENjZcXHU4QzMxXFx1NjZERFxcdTcwMTFcXHU2NzFGXFx1NkIzQVxcdTY4MTZcXHU2MjFBXFx1NTlCQlxcdTRFMDNcXHU1MUM0XFx1NkYwNlxcdTY3RDJcXHU2QzhGXFx1NTE3NlxcdTY4Q0JcXHU1OTQ3XFx1NkI2N1xcdTc1NjZcXHU1RDBFXFx1ODExMFxcdTlGNTBcXHU2NUQ3XFx1Nzk0OFxcdTc5NDFcXHU5QTkxXFx1OEQ3N1xcdTVDODJcXHU0RTVFXFx1NEYwMVxcdTU0MkZcXHU1OTUxXFx1NzgwQ1xcdTU2NjhcXHU2QzE0XFx1OEZDNFxcdTVGMDNcXHU2QzdEXFx1NkNFM1xcdThCQUJcXHU2MzkwXCJdLFxuICAgICAgW1wiYzc0MFwiLCBcIlxcdTgzM0VcXHU4MzNGXFx1ODM0MVxcdTgzNDJcXHU4MzQ0XFx1ODM0NVxcdTgzNDhcXHU4MzRBXCIsIDQsIFwiXFx1ODM1M1xcdTgzNTVcIiwgNCwgXCJcXHU4MzVEXFx1ODM2MlxcdTgzNzBcIiwgNiwgXCJcXHU4Mzc5XFx1ODM3QVxcdTgzN0VcIiwgNiwgXCJcXHU4Mzg3XFx1ODM4OFxcdTgzOEFcXHU4MzhCXFx1ODM4Q1xcdTgzOERcXHU4MzhGXFx1ODM5MFxcdTgzOTFcXHU4Mzk0XFx1ODM5NVxcdTgzOTZcXHU4Mzk3XFx1ODM5OVxcdTgzOUFcXHU4MzlEXFx1ODM5RlxcdTgzQTFcIiwgNiwgXCJcXHU4M0FDXFx1ODNBRFxcdTgzQUVcIl0sXG4gICAgICBbXCJjNzgwXCIsIFwiXFx1ODNBRlxcdTgzQjVcXHU4M0JCXFx1ODNCRVxcdTgzQkZcXHU4M0MyXFx1ODNDM1xcdTgzQzRcXHU4M0M2XFx1ODNDOFxcdTgzQzlcXHU4M0NCXFx1ODNDRFxcdTgzQ0VcXHU4M0QwXFx1ODNEMVxcdTgzRDJcXHU4M0QzXFx1ODNENVxcdTgzRDdcXHU4M0Q5XFx1ODNEQVxcdTgzREJcXHU4M0RFXFx1ODNFMlxcdTgzRTNcXHU4M0U0XFx1ODNFNlxcdTgzRTdcXHU4M0U4XFx1ODNFQlxcdTgzRUNcXHU4M0VEXFx1NjA3MFxcdTZEM0RcXHU3Mjc1XFx1NjI2NlxcdTk0OEVcXHU5NEM1XFx1NTM0M1xcdThGQzFcXHU3QjdFXFx1NEVERlxcdThDMjZcXHU0RTdFXFx1OUVENFxcdTk0QjFcXHU5NEIzXFx1NTI0RFxcdTZGNUNcXHU5MDYzXFx1NkQ0NVxcdThDMzRcXHU1ODExXFx1NUQ0Q1xcdTZCMjBcXHU2QjQ5XFx1NjdBQVxcdTU0NUJcXHU4MTU0XFx1N0Y4Q1xcdTU4OTlcXHU4NTM3XFx1NUYzQVxcdTYyQTJcXHU2QTQ3XFx1OTUzOVxcdTY1NzJcXHU2MDg0XFx1Njg2NVxcdTc3QTdcXHU0RTU0XFx1NEZBOFxcdTVERTdcXHU5Nzk4XFx1NjRBQ1xcdTdGRDhcXHU1Q0VEXFx1NEZDRlxcdTdBOERcXHU1MjA3XFx1ODMwNFxcdTRFMTRcXHU2MDJGXFx1N0E4M1xcdTk0QTZcXHU0RkI1XFx1NEVCMlxcdTc5RTZcXHU3NDM0XFx1NTJFNFxcdTgyQjlcXHU2NEQyXFx1NzlCRFxcdTVCRERcXHU2QzgxXFx1OTc1MlxcdThGN0JcXHU2QzIyXFx1NTAzRVxcdTUzN0ZcXHU2RTA1XFx1NjRDRVxcdTY2NzRcXHU2QzMwXFx1NjBDNVxcdTk4NzdcXHU4QkY3XFx1NUU4NlxcdTc0M0NcXHU3QTc3XFx1NzlDQlxcdTRFMThcXHU5MEIxXFx1NzQwM1xcdTZDNDJcXHU1NkRBXFx1OTE0QlxcdTZDQzVcXHU4RDhCXFx1NTMzQVxcdTg2QzZcXHU2NkYyXFx1OEVBRlxcdTVDNDhcXHU5QTcxXFx1NkUyMFwiXSxcbiAgICAgIFtcImM4NDBcIiwgXCJcXHU4M0VFXFx1ODNFRlxcdTgzRjNcIiwgNCwgXCJcXHU4M0ZBXFx1ODNGQlxcdTgzRkNcXHU4M0ZFXFx1ODNGRlxcdTg0MDBcXHU4NDAyXFx1ODQwNVxcdTg0MDdcXHU4NDA4XFx1ODQwOVxcdTg0MEFcXHU4NDEwXFx1ODQxMlwiLCA1LCBcIlxcdTg0MTlcXHU4NDFBXFx1ODQxQlxcdTg0MUVcIiwgNSwgXCJcXHU4NDI5XCIsIDcsIFwiXFx1ODQzMlwiLCA1LCBcIlxcdTg0MzlcXHU4NDNBXFx1ODQzQlxcdTg0M0VcIiwgNywgXCJcXHU4NDQ3XFx1ODQ0OFxcdTg0NDlcIl0sXG4gICAgICBbXCJjODgwXCIsIFwiXFx1ODQ0QVwiLCA2LCBcIlxcdTg0NTJcIiwgNCwgXCJcXHU4NDU4XFx1ODQ1RFxcdTg0NUVcXHU4NDVGXFx1ODQ2MFxcdTg0NjJcXHU4NDY0XCIsIDQsIFwiXFx1ODQ2QVxcdTg0NkVcXHU4NDZGXFx1ODQ3MFxcdTg0NzJcXHU4NDc0XFx1ODQ3N1xcdTg0NzlcXHU4NDdCXFx1ODQ3Q1xcdTUzRDZcXHU1QTM2XFx1OUY4QlxcdThEQTNcXHU1M0JCXFx1NTcwOFxcdTk4QTdcXHU2NzQzXFx1OTE5QlxcdTZDQzlcXHU1MTY4XFx1NzVDQVxcdTYyRjNcXHU3MkFDXFx1NTIzOFxcdTUyOURcXHU3RjNBXFx1NzA5NFxcdTc2MzhcXHU1Mzc0XFx1OUU0QVxcdTY5QjdcXHU3ODZFXFx1OTZDMFxcdTg4RDlcXHU3RkE0XFx1NzEzNlxcdTcxQzNcXHU1MTg5XFx1NjdEM1xcdTc0RTRcXHU1OEU0XFx1NjUxOFxcdTU2QjdcXHU4QkE5XFx1OTk3NlxcdTYyNzBcXHU3RUQ1XFx1NjBGOVxcdTcwRURcXHU1OEVDXFx1NEVDMVxcdTRFQkFcXHU1RkNEXFx1OTdFN1xcdTRFRkJcXHU4QkE0XFx1NTIwM1xcdTU5OEFcXHU3RUFCXFx1NjI1NFxcdTRFQ0RcXHU2NUU1XFx1NjIwRVxcdTgzMzhcXHU4NEM5XFx1ODM2M1xcdTg3OERcXHU3MTk0XFx1NkVCNlxcdTVCQjlcXHU3RUQyXFx1NTE5N1xcdTYzQzlcXHU2N0Q0XFx1ODA4OVxcdTgzMzlcXHU4ODE1XFx1NTExMlxcdTVCN0FcXHU1OTgyXFx1OEZCMVxcdTRFNzNcXHU2QzVEXFx1NTE2NVxcdTg5MjVcXHU4RjZGXFx1OTYyRVxcdTg1NEFcXHU3NDVFXFx1OTUxMFxcdTk1RjBcXHU2REE2XFx1ODJFNVxcdTVGMzFcXHU2NDkyXFx1NkQxMlxcdTg0MjhcXHU4MTZFXFx1OUNDM1xcdTU4NUVcXHU4RDVCXFx1NEUwOVxcdTUzQzFcIl0sXG4gICAgICBbXCJjOTQwXCIsIFwiXFx1ODQ3RFwiLCA0LCBcIlxcdTg0ODNcXHU4NDg0XFx1ODQ4NVxcdTg0ODZcXHU4NDhBXFx1ODQ4RFxcdTg0OEZcIiwgNywgXCJcXHU4NDk4XFx1ODQ5QVxcdTg0OUJcXHU4NDlEXFx1ODQ5RVxcdTg0OUZcXHU4NEEwXFx1ODRBMlwiLCAxMiwgXCJcXHU4NEIwXFx1ODRCMVxcdTg0QjNcXHU4NEI1XFx1ODRCNlxcdTg0QjdcXHU4NEJCXFx1ODRCQ1xcdTg0QkVcXHU4NEMwXFx1ODRDMlxcdTg0QzNcXHU4NEM1XFx1ODRDNlxcdTg0QzdcXHU4NEM4XFx1ODRDQlxcdTg0Q0NcXHU4NENFXFx1ODRDRlxcdTg0RDJcXHU4NEQ0XFx1ODRENVxcdTg0RDdcIl0sXG4gICAgICBbXCJjOTgwXCIsIFwiXFx1ODREOFwiLCA0LCBcIlxcdTg0REVcXHU4NEUxXFx1ODRFMlxcdTg0RTRcXHU4NEU3XCIsIDQsIFwiXFx1ODRFRFxcdTg0RUVcXHU4NEVGXFx1ODRGMVwiLCAxMCwgXCJcXHU4NEZEXFx1ODRGRVxcdTg1MDBcXHU4NTAxXFx1ODUwMlxcdTRGMUVcXHU2NTYzXFx1Njg1MVxcdTU1RDNcXHU0RTI3XFx1NjQxNFxcdTlBOUFcXHU2MjZCXFx1NUFDMlxcdTc0NUZcXHU4MjcyXFx1NkRBOVxcdTY4RUVcXHU1MEU3XFx1ODM4RVxcdTc4MDJcXHU2NzQwXFx1NTIzOVxcdTZDOTlcXHU3RUIxXFx1NTBCQlxcdTU1NjVcXHU3MTVFXFx1N0I1QlxcdTY2NTJcXHU3M0NBXFx1ODJFQlxcdTY3NDlcXHU1QzcxXFx1NTIyMFxcdTcxN0RcXHU4ODZCXFx1OTVFQVxcdTk2NTVcXHU2NEM1XFx1OEQ2MVxcdTgxQjNcXHU1NTg0XFx1NkM1NVxcdTYyNDdcXHU3RjJFXFx1NTg5MlxcdTRGMjRcXHU1NTQ2XFx1OEQ0RlxcdTY2NENcXHU0RTBBXFx1NUMxQVxcdTg4RjNcXHU2OEEyXFx1NjM0RVxcdTdBMERcXHU3MEU3XFx1ODI4RFxcdTUyRkFcXHU5N0Y2XFx1NUMxMVxcdTU0RThcXHU5MEI1XFx1N0VDRFxcdTU5NjJcXHU4RDRBXFx1ODZDN1xcdTgyMENcXHU4MjBEXFx1OEQ2NlxcdTY0NDRcXHU1QzA0XFx1NjE1MVxcdTZEODlcXHU3OTNFXFx1OEJCRVxcdTc4MzdcXHU3NTMzXFx1NTQ3QlxcdTRGMzhcXHU4RUFCXFx1NkRGMVxcdTVBMjBcXHU3RUM1XFx1Nzk1RVxcdTZDODhcXHU1QkExXFx1NUE3NlxcdTc1MUFcXHU4MEJFXFx1NjE0RVxcdTZFMTdcXHU1OEYwXFx1NzUxRlxcdTc1MjVcXHU3MjcyXFx1NTM0N1xcdTdFRjNcIl0sXG4gICAgICBbXCJjYTQwXCIsIFwiXFx1ODUwM1wiLCA4LCBcIlxcdTg1MERcXHU4NTBFXFx1ODUwRlxcdTg1MTBcXHU4NTEyXFx1ODUxNFxcdTg1MTVcXHU4NTE2XFx1ODUxOFxcdTg1MTlcXHU4NTFCXFx1ODUxQ1xcdTg1MURcXHU4NTFFXFx1ODUyMFxcdTg1MjJcIiwgOCwgXCJcXHU4NTJEXCIsIDksIFwiXFx1ODUzRVwiLCA0LCBcIlxcdTg1NDRcXHU4NTQ1XFx1ODU0NlxcdTg1NDdcXHU4NTRCXCIsIDEwXSxcbiAgICAgIFtcImNhODBcIiwgXCJcXHU4NTU3XFx1ODU1OFxcdTg1NUFcXHU4NTVCXFx1ODU1Q1xcdTg1NURcXHU4NTVGXCIsIDQsIFwiXFx1ODU2NVxcdTg1NjZcXHU4NTY3XFx1ODU2OVwiLCA4LCBcIlxcdTg1NzNcXHU4NTc1XFx1ODU3NlxcdTg1NzdcXHU4NTc4XFx1ODU3Q1xcdTg1N0RcXHU4NTdGXFx1ODU4MFxcdTg1ODFcXHU3NzAxXFx1NzZEQlxcdTUyNjlcXHU4MERDXFx1NTcyM1xcdTVFMDhcXHU1OTMxXFx1NzJFRVxcdTY1QkRcXHU2RTdGXFx1OEJEN1xcdTVDMzhcXHU4NjcxXFx1NTM0MVxcdTc3RjNcXHU2MkZFXFx1NjVGNlxcdTRFQzBcXHU5OERGXFx1ODY4MFxcdTVCOUVcXHU4QkM2XFx1NTNGMlxcdTc3RTJcXHU0RjdGXFx1NUM0RVxcdTlBNzZcXHU1OUNCXFx1NUYwRlxcdTc5M0FcXHU1OEVCXFx1NEUxNlxcdTY3RkZcXHU0RThCXFx1NjJFRFxcdThBOTNcXHU5MDFEXFx1NTJCRlxcdTY2MkZcXHU1NURDXFx1NTY2Q1xcdTkwMDJcXHU0RUQ1XFx1NEY4RFxcdTkxQ0FcXHU5OTcwXFx1NkMwRlxcdTVFMDJcXHU2MDQzXFx1NUJBNFxcdTg5QzZcXHU4QkQ1XFx1NjUzNlxcdTYyNEJcXHU5OTk2XFx1NUI4OFxcdTVCRkZcXHU2Mzg4XFx1NTUyRVxcdTUzRDdcXHU3NjI2XFx1NTE3RFxcdTg1MkNcXHU2N0EyXFx1NjhCM1xcdTZCOEFcXHU2MjkyXFx1OEY5M1xcdTUzRDRcXHU4MjEyXFx1NkREMVxcdTc1OEZcXHU0RTY2XFx1OEQ0RVxcdTVCNzBcXHU3MTlGXFx1ODVBRlxcdTY2OTFcXHU2NkQ5XFx1N0Y3MlxcdTg3MDBcXHU5RUNEXFx1OUYyMFxcdTVDNUVcXHU2NzJGXFx1OEZGMFxcdTY4MTFcXHU2NzVGXFx1NjIwRFxcdTdBRDZcXHU1ODg1XFx1NUVCNlxcdTY1NzBcXHU2RjMxXCJdLFxuICAgICAgW1wiY2I0MFwiLCBcIlxcdTg1ODJcXHU4NTgzXFx1ODU4NlxcdTg1ODhcIiwgNiwgXCJcXHU4NTkwXCIsIDEwLCBcIlxcdTg1OURcIiwgNiwgXCJcXHU4NUE1XFx1ODVBNlxcdTg1QTdcXHU4NUE5XFx1ODVBQlxcdTg1QUNcXHU4NUFEXFx1ODVCMVwiLCA1LCBcIlxcdTg1QjhcXHU4NUJBXCIsIDYsIFwiXFx1ODVDMlwiLCA2LCBcIlxcdTg1Q0FcIiwgNCwgXCJcXHU4NUQxXFx1ODVEMlwiXSxcbiAgICAgIFtcImNiODBcIiwgXCJcXHU4NUQ0XFx1ODVENlwiLCA1LCBcIlxcdTg1RERcIiwgNiwgXCJcXHU4NUU1XFx1ODVFNlxcdTg1RTdcXHU4NUU4XFx1ODVFQVwiLCAxNCwgXCJcXHU2MDU1XFx1NTIzN1xcdTgwMERcXHU2NDU0XFx1ODg3MFxcdTc1MjlcXHU1RTA1XFx1NjgxM1xcdTYyRjRcXHU5NzFDXFx1NTNDQ1xcdTcyM0RcXHU4QzAxXFx1NkMzNFxcdTc3NjFcXHU3QTBFXFx1NTQyRVxcdTc3QUNcXHU5ODdBXFx1ODIxQ1xcdThCRjRcXHU3ODU1XFx1NjcxNFxcdTcwQzFcXHU2NUFGXFx1NjQ5NVxcdTU2MzZcXHU2MDFEXFx1NzlDMVxcdTUzRjhcXHU0RTFEXFx1NkI3QlxcdTgwODZcXHU1QkZBXFx1NTVFM1xcdTU2REJcXHU0RjNBXFx1NEYzQ1xcdTk5NzJcXHU1REYzXFx1Njc3RVxcdTgwMzhcXHU2MDAyXFx1OTg4MlxcdTkwMDFcXHU1QjhCXFx1OEJCQ1xcdThCRjVcXHU2NDFDXFx1ODI1OFxcdTY0REVcXHU1NUZEXFx1ODJDRlxcdTkxNjVcXHU0RkQ3XFx1N0QyMFxcdTkwMUZcXHU3QzlGXFx1NTBGM1xcdTU4NTFcXHU2RUFGXFx1NUJCRlxcdThCQzlcXHU4MDgzXFx1OTE3OFxcdTg0OUNcXHU3Qjk3XFx1ODY3RFxcdTk2OEJcXHU5NjhGXFx1N0VFNVxcdTlBRDNcXHU3ODhFXFx1NUM4MVxcdTdBNTdcXHU5MDQyXFx1OTZBN1xcdTc5NUZcXHU1QjU5XFx1NjM1RlxcdTdCMEJcXHU4NEQxXFx1NjhBRFxcdTU1MDZcXHU3RjI5XFx1NzQxMFxcdTdEMjJcXHU5NTAxXFx1NjI0MFxcdTU4NENcXHU0RUQ2XFx1NUI4M1xcdTU5NzlcXHU1ODU0XCJdLFxuICAgICAgW1wiY2M0MFwiLCBcIlxcdTg1RjlcXHU4NUZBXFx1ODVGQ1xcdTg1RkRcXHU4NUZFXFx1ODYwMFwiLCA0LCBcIlxcdTg2MDZcIiwgMTAsIFwiXFx1ODYxMlxcdTg2MTNcXHU4NjE0XFx1ODYxNVxcdTg2MTdcIiwgMTUsIFwiXFx1ODYyOFxcdTg2MkFcIiwgMTMsIFwiXFx1ODYzOVxcdTg2M0FcXHU4NjNCXFx1ODYzRFxcdTg2M0VcXHU4NjNGXFx1ODY0MFwiXSxcbiAgICAgIFtcImNjODBcIiwgXCJcXHU4NjQxXCIsIDExLCBcIlxcdTg2NTJcXHU4NjUzXFx1ODY1NVwiLCA0LCBcIlxcdTg2NUJcXHU4NjVDXFx1ODY1RFxcdTg2NUZcXHU4NjYwXFx1ODY2MVxcdTg2NjNcIiwgNywgXCJcXHU3MzZEXFx1NjMxRVxcdThFNEJcXHU4RTBGXFx1ODBDRVxcdTgyRDRcXHU2MkFDXFx1NTNGMFxcdTZDRjBcXHU5MTVFXFx1NTkyQVxcdTYwMDFcXHU2QzcwXFx1NTc0RFxcdTY0NEFcXHU4RDJBXFx1NzYyQlxcdTZFRTlcXHU1NzVCXFx1NkE4MFxcdTc1RjBcXHU2RjZEXFx1OEMyRFxcdThDMDhcXHU1NzY2XFx1NkJFRlxcdTg4OTJcXHU3OEIzXFx1NjNBMlxcdTUzRjlcXHU3MEFEXFx1NkM2NFxcdTU4NThcXHU2NDJBXFx1NTgwMlxcdTY4RTBcXHU4MTlCXFx1NTUxMFxcdTdDRDZcXHU1MDE4XFx1OEVCQVxcdTZEQ0NcXHU4RDlGXFx1NzBFQlxcdTYzOEZcXHU2RDlCXFx1NkVENFxcdTdFRTZcXHU4NDA0XFx1Njg0M1xcdTkwMDNcXHU2REQ4XFx1OTY3NlxcdThCQThcXHU1OTU3XFx1NzI3OVxcdTg1RTRcXHU4MTdFXFx1NzVCQ1xcdThBOEFcXHU2OEFGXFx1NTI1NFxcdThFMjJcXHU5NTExXFx1NjNEMFxcdTk4OThcXHU4RTQ0XFx1NTU3Q1xcdTRGNTNcXHU2NkZGXFx1NTY4RlxcdTYwRDVcXHU2RDk1XFx1NTI0M1xcdTVDNDlcXHU1OTI5XFx1NkRGQlxcdTU4NkJcXHU3NTMwXFx1NzUxQ1xcdTYwNkNcXHU4MjE0XFx1ODE0NlxcdTYzMTFcXHU2NzYxXFx1OEZFMlxcdTc3M0FcXHU4REYzXFx1OEQzNFxcdTk0QzFcXHU1RTE2XFx1NTM4NVxcdTU0MkNcXHU3MEMzXCJdLFxuICAgICAgW1wiY2Q0MFwiLCBcIlxcdTg2NkRcXHU4NjZGXFx1ODY3MFxcdTg2NzJcIiwgNiwgXCJcXHU4NjgzXCIsIDYsIFwiXFx1ODY4RVwiLCA0LCBcIlxcdTg2OTRcXHU4Njk2XCIsIDUsIFwiXFx1ODY5RVwiLCA0LCBcIlxcdTg2QTVcXHU4NkE2XFx1ODZBQlxcdTg2QURcXHU4NkFFXFx1ODZCMlxcdTg2QjNcXHU4NkI3XFx1ODZCOFxcdTg2QjlcXHU4NkJCXCIsIDQsIFwiXFx1ODZDMVxcdTg2QzJcXHU4NkMzXFx1ODZDNVxcdTg2QzhcXHU4NkNDXFx1ODZDRFxcdTg2RDJcXHU4NkQzXFx1ODZENVxcdTg2RDZcXHU4NkQ3XFx1ODZEQVxcdTg2RENcIl0sXG4gICAgICBbXCJjZDgwXCIsIFwiXFx1ODZERFxcdTg2RTBcXHU4NkUxXFx1ODZFMlxcdTg2RTNcXHU4NkU1XFx1ODZFNlxcdTg2RTdcXHU4NkU4XFx1ODZFQVxcdTg2RUJcXHU4NkVDXFx1ODZFRlxcdTg2RjVcXHU4NkY2XFx1ODZGN1xcdTg2RkFcXHU4NkZCXFx1ODZGQ1xcdTg2RkRcXHU4NkZGXFx1ODcwMVxcdTg3MDRcXHU4NzA1XFx1ODcwNlxcdTg3MEJcXHU4NzBDXFx1ODcwRVxcdTg3MEZcXHU4NzEwXFx1ODcxMVxcdTg3MTRcXHU4NzE2XFx1NkM0MFxcdTVFRjdcXHU1MDVDXFx1NEVBRFxcdTVFQURcXHU2MzNBXFx1ODI0N1xcdTkwMUFcXHU2ODUwXFx1OTE2RVxcdTc3QjNcXHU1NDBDXFx1OTREQ1xcdTVGNjRcXHU3QUU1XFx1Njg3NlxcdTYzNDVcXHU3QjUyXFx1N0VERlxcdTc1REJcXHU1MDc3XFx1NjI5NVxcdTU5MzRcXHU5MDBGXFx1NTFGOFxcdTc5QzNcXHU3QTgxXFx1NTZGRVxcdTVGOTJcXHU5MDE0XFx1NkQ4MlxcdTVDNjBcXHU1NzFGXFx1NTQxMFxcdTUxNTRcXHU2RTREXFx1NTZFMlxcdTYzQThcXHU5ODkzXFx1ODE3RlxcdTg3MTVcXHU4OTJBXFx1OTAwMFxcdTU0MUVcXHU1QzZGXFx1ODFDMFxcdTYyRDZcXHU2MjU4XFx1ODEzMVxcdTlFMzVcXHU5NjQwXFx1OUE2RVxcdTlBN0NcXHU2OTJEXFx1NTlBNVxcdTYyRDNcXHU1NTNFXFx1NjMxNlxcdTU0QzdcXHU4NkQ5XFx1NkQzQ1xcdTVBMDNcXHU3NEU2XFx1ODg5Q1xcdTZCNkFcXHU1OTE2XFx1OEM0Q1xcdTVGMkZcXHU2RTdFXFx1NzNBOVxcdTk4N0RcXHU0RTM4XFx1NzBGN1xcdTVCOENcXHU3ODk3XFx1NjMzRFxcdTY2NUFcXHU3Njk2XFx1NjBDQlxcdTVCOUJcXHU1QTQ5XFx1NEUwN1xcdTgxNTVcXHU2QzZBXFx1NzM4QlxcdTRFQTFcXHU2Nzg5XFx1N0Y1MVxcdTVGODBcXHU2NUZBXFx1NjcxQlxcdTVGRDhcXHU1OTg0XFx1NUEwMVwiXSxcbiAgICAgIFtcImNlNDBcIiwgXCJcXHU4NzE5XFx1ODcxQlxcdTg3MURcXHU4NzFGXFx1ODcyMFxcdTg3MjRcXHU4NzI2XFx1ODcyN1xcdTg3MjhcXHU4NzJBXFx1ODcyQlxcdTg3MkNcXHU4NzJEXFx1ODcyRlxcdTg3MzBcXHU4NzMyXFx1ODczM1xcdTg3MzVcXHU4NzM2XFx1ODczOFxcdTg3MzlcXHU4NzNBXFx1ODczQ1xcdTg3M0RcXHU4NzQwXCIsIDYsIFwiXFx1ODc0QVxcdTg3NEJcXHU4NzREXFx1ODc0RlxcdTg3NTBcXHU4NzUxXFx1ODc1MlxcdTg3NTRcXHU4NzU1XFx1ODc1NlxcdTg3NThcXHU4NzVBXCIsIDUsIFwiXFx1ODc2MVxcdTg3NjJcXHU4NzY2XCIsIDcsIFwiXFx1ODc2RlxcdTg3NzFcXHU4NzcyXFx1ODc3M1xcdTg3NzVcIl0sXG4gICAgICBbXCJjZTgwXCIsIFwiXFx1ODc3N1xcdTg3NzhcXHU4Nzc5XFx1ODc3QVxcdTg3N0ZcXHU4NzgwXFx1ODc4MVxcdTg3ODRcXHU4Nzg2XFx1ODc4N1xcdTg3ODlcXHU4NzhBXFx1ODc4Q1xcdTg3OEVcIiwgNCwgXCJcXHU4Nzk0XFx1ODc5NVxcdTg3OTZcXHU4Nzk4XCIsIDYsIFwiXFx1ODdBMFwiLCA0LCBcIlxcdTVEQ0RcXHU1RkFFXFx1NTM3MVxcdTk3RTZcXHU4RkREXFx1Njg0NVxcdTU2RjRcXHU1NTJGXFx1NjBERlxcdTRFM0FcXHU2RjREXFx1N0VGNFxcdTgyQzdcXHU4NDBFXFx1NTlENFxcdTRGMUZcXHU0RjJBXFx1NUMzRVxcdTdFQUNcXHU2NzJBXFx1ODUxQVxcdTU0NzNcXHU3NTRGXFx1ODBDM1xcdTU1ODJcXHU5QjRGXFx1NEY0RFxcdTZFMkRcXHU4QzEzXFx1NUMwOVxcdTYxNzBcXHU1MzZCXFx1NzYxRlxcdTZFMjlcXHU4NjhBXFx1NjU4N1xcdTk1RkJcXHU3RUI5XFx1NTQzQlxcdTdBMzNcXHU3RDBBXFx1OTVFRVxcdTU1RTFcXHU3RkMxXFx1NzRFRVxcdTYzMURcXHU4NzE3XFx1NkRBMVxcdTdBOURcXHU2MjExXFx1NjVBMVxcdTUzNjdcXHU2M0UxXFx1NkM4M1xcdTVERUJcXHU1NDVDXFx1OTRBOFxcdTRFNENcXHU2QzYxXFx1OEJFQ1xcdTVDNEJcXHU2NUUwXFx1ODI5Q1xcdTY4QTdcXHU1NDNFXFx1NTQzNFxcdTZCQ0JcXHU2QjY2XFx1NEU5NFxcdTYzNDJcXHU1MzQ4XFx1ODIxRVxcdTRGMERcXHU0RkFFXFx1NTc1RVxcdTYyMEFcXHU5NkZFXFx1NjY2NFxcdTcyNjlcXHU1MkZGXFx1NTJBMVxcdTYwOUZcXHU4QkVGXFx1NjYxNFxcdTcxOTlcXHU2NzkwXFx1ODk3RlxcdTc4NTJcXHU3N0ZEXFx1NjY3MFxcdTU2M0JcXHU1NDM4XFx1OTUyMVxcdTcyN0FcIl0sXG4gICAgICBbXCJjZjQwXCIsIFwiXFx1ODdBNVxcdTg3QTZcXHU4N0E3XFx1ODdBOVxcdTg3QUFcXHU4N0FFXFx1ODdCMFxcdTg3QjFcXHU4N0IyXFx1ODdCNFxcdTg3QjZcXHU4N0I3XFx1ODdCOFxcdTg3QjlcXHU4N0JCXFx1ODdCQ1xcdTg3QkVcXHU4N0JGXFx1ODdDMVwiLCA0LCBcIlxcdTg3QzdcXHU4N0M4XFx1ODdDOVxcdTg3Q0NcIiwgNCwgXCJcXHU4N0Q0XCIsIDYsIFwiXFx1ODdEQ1xcdTg3RERcXHU4N0RFXFx1ODdERlxcdTg3RTFcXHU4N0UyXFx1ODdFM1xcdTg3RTRcXHU4N0U2XFx1ODdFN1xcdTg3RThcXHU4N0U5XFx1ODdFQlxcdTg3RUNcXHU4N0VEXFx1ODdFRlwiLCA5XSxcbiAgICAgIFtcImNmODBcIiwgXCJcXHU4N0ZBXFx1ODdGQlxcdTg3RkNcXHU4N0ZEXFx1ODdGRlxcdTg4MDBcXHU4ODAxXFx1ODgwMlxcdTg4MDRcIiwgNSwgXCJcXHU4ODBCXCIsIDcsIFwiXFx1ODgxNFxcdTg4MTdcXHU4ODE4XFx1ODgxOVxcdTg4MUFcXHU4ODFDXCIsIDQsIFwiXFx1ODgyM1xcdTdBMDBcXHU2MDZGXFx1NUUwQ1xcdTYwODlcXHU4MTlEXFx1NTkxNVxcdTYwRENcXHU3MTg0XFx1NzBFRlxcdTZFQUFcXHU2QzUwXFx1NzI4MFxcdTZBODRcXHU4OEFEXFx1NUUyRFxcdTRFNjBcXHU1QUIzXFx1NTU5Q1xcdTk0RTNcXHU2RDE3XFx1N0NGQlxcdTk2OTlcXHU2MjBGXFx1N0VDNlxcdTc3OEVcXHU4NjdFXFx1NTMyM1xcdTk3MUVcXHU4Rjk2XFx1NjY4N1xcdTVDRTFcXHU0RkEwXFx1NzJFRFxcdTRFMEJcXHU1M0E2XFx1NTkwRlxcdTU0MTNcXHU2MzgwXFx1OTUyOFxcdTUxNDhcXHU0RUQ5XFx1OUM5Q1xcdTdFQTRcXHU1NEI4XFx1OEQyNFxcdTg4NTRcXHU4MjM3XFx1OTVGMlxcdTZEOEVcXHU1RjI2XFx1NUFDQ1xcdTY2M0VcXHU5NjY5XFx1NzNCMFxcdTczMkVcXHU1M0JGXFx1ODE3QVxcdTk5ODVcXHU3RkExXFx1NUJBQVxcdTk2NzdcXHU5NjUwXFx1N0VCRlxcdTc2RjhcXHU1M0EyXFx1OTU3NlxcdTk5OTlcXHU3QkIxXFx1ODk0NFxcdTZFNThcXHU0RTYxXFx1N0ZENFxcdTc5NjVcXHU4QkU2XFx1NjBGM1xcdTU0Q0RcXHU0RUFCXFx1OTg3OVxcdTVERjdcXHU2QTYxXFx1NTBDRlxcdTU0MTFcXHU4QzYxXFx1ODQyN1xcdTc4NURcXHU5NzA0XFx1NTI0QVxcdTU0RUVcXHU1NkEzXFx1OTUwMFxcdTZEODhcXHU1QkI1XFx1NkRDNlxcdTY2NTNcIl0sXG4gICAgICBbXCJkMDQwXCIsIFwiXFx1ODgyNFwiLCAxMywgXCJcXHU4ODMzXCIsIDUsIFwiXFx1ODgzQVxcdTg4M0JcXHU4ODNEXFx1ODgzRVxcdTg4M0ZcXHU4ODQxXFx1ODg0MlxcdTg4NDNcXHU4ODQ2XCIsIDUsIFwiXFx1ODg0RVwiLCA1LCBcIlxcdTg4NTVcXHU4ODU2XFx1ODg1OFxcdTg4NUFcIiwgNiwgXCJcXHU4ODY2XFx1ODg2N1xcdTg4NkFcXHU4ODZEXFx1ODg2RlxcdTg4NzFcXHU4ODczXFx1ODg3NFxcdTg4NzVcXHU4ODc2XFx1ODg3OFxcdTg4NzlcXHU4ODdBXCJdLFxuICAgICAgW1wiZDA4MFwiLCBcIlxcdTg4N0JcXHU4ODdDXFx1ODg4MFxcdTg4ODNcXHU4ODg2XFx1ODg4N1xcdTg4ODlcXHU4ODhBXFx1ODg4Q1xcdTg4OEVcXHU4ODhGXFx1ODg5MFxcdTg4OTFcXHU4ODkzXFx1ODg5NFxcdTg4OTVcXHU4ODk3XCIsIDQsIFwiXFx1ODg5RFwiLCA0LCBcIlxcdTg4QTNcXHU4OEE1XCIsIDUsIFwiXFx1NUMwRlxcdTVCNURcXHU2ODIxXFx1ODA5NlxcdTU1NzhcXHU3QjExXFx1NjU0OFxcdTY5NTRcXHU0RTlCXFx1NkI0N1xcdTg3NEVcXHU5NzhCXFx1NTM0RlxcdTYzMUZcXHU2NDNBXFx1OTBBQVxcdTY1OUNcXHU4MEMxXFx1OEMxMFxcdTUxOTlcXHU2OEIwXFx1NTM3OFxcdTg3RjlcXHU2MUM4XFx1NkNDNFxcdTZDRkJcXHU4QzIyXFx1NUM1MVxcdTg1QUFcXHU4MkFGXFx1OTUwQ1xcdTZCMjNcXHU4RjlCXFx1NjVCMFxcdTVGRkJcXHU1RkMzXFx1NEZFMVxcdTg4NDVcXHU2NjFGXFx1ODE2NVxcdTczMjlcXHU2MEZBXFx1NTE3NFxcdTUyMTFcXHU1NzhCXFx1NUY2MlxcdTkwQTJcXHU4ODRDXFx1OTE5MlxcdTVFNzhcXHU2NzRGXFx1NjAyN1xcdTU5RDNcXHU1MTQ0XFx1NTFGNlxcdTgwRjhcXHU1MzA4XFx1NkM3OVxcdTk2QzRcXHU3MThBXFx1NEYxMVxcdTRGRUVcXHU3RjlFXFx1NjczRFxcdTU1QzVcXHU5NTA4XFx1NzlDMFxcdTg4OTZcXHU3RUUzXFx1NTg5RlxcdTYyMENcXHU5NzAwXFx1ODY1QVxcdTU2MThcXHU5ODdCXFx1NUY5MFxcdThCQjhcXHU4NEM0XFx1OTE1N1xcdTUzRDlcXHU2NUVEXFx1NUU4RlxcdTc1NUNcXHU2MDY0XFx1N0Q2RVxcdTVBN0ZcXHU3RUVBXFx1N0VFRFxcdThGNjlcXHU1NUE3XFx1NUJBM1xcdTYwQUNcXHU2NUNCXFx1NzM4NFwiXSxcbiAgICAgIFtcImQxNDBcIiwgXCJcXHU4OEFDXFx1ODhBRVxcdTg4QUZcXHU4OEIwXFx1ODhCMlwiLCA0LCBcIlxcdTg4QjhcXHU4OEI5XFx1ODhCQVxcdTg4QkJcXHU4OEJEXFx1ODhCRVxcdTg4QkZcXHU4OEMwXFx1ODhDM1xcdTg4QzRcXHU4OEM3XFx1ODhDOFxcdTg4Q0FcXHU4OENCXFx1ODhDQ1xcdTg4Q0RcXHU4OENGXFx1ODhEMFxcdTg4RDFcXHU4OEQzXFx1ODhENlxcdTg4RDdcXHU4OERBXCIsIDQsIFwiXFx1ODhFMFxcdTg4RTFcXHU4OEU2XFx1ODhFN1xcdTg4RTlcIiwgNiwgXCJcXHU4OEYyXFx1ODhGNVxcdTg4RjZcXHU4OEY3XFx1ODhGQVxcdTg4RkJcXHU4OEZEXFx1ODhGRlxcdTg5MDBcXHU4OTAxXFx1ODkwM1wiLCA1XSxcbiAgICAgIFtcImQxODBcIiwgXCJcXHU4OTA5XFx1ODkwQlwiLCA0LCBcIlxcdTg5MTFcXHU4OTE0XCIsIDQsIFwiXFx1ODkxQ1wiLCA0LCBcIlxcdTg5MjJcXHU4OTIzXFx1ODkyNFxcdTg5MjZcXHU4OTI3XFx1ODkyOFxcdTg5MjlcXHU4OTJDXFx1ODkyRFxcdTg5MkVcXHU4OTJGXFx1ODkzMVxcdTg5MzJcXHU4OTMzXFx1ODkzNVxcdTg5MzdcXHU5MDA5XFx1NzY2M1xcdTc3MjlcXHU3RURBXFx1OTc3NFxcdTg1OUJcXHU1QjY2XFx1N0E3NFxcdTk2RUFcXHU4ODQwXFx1NTJDQlxcdTcxOEZcXHU1RkFBXFx1NjVFQ1xcdThCRTJcXHU1QkZCXFx1OUE2RlxcdTVERTFcXHU2Qjg5XFx1NkM1QlxcdThCQURcXHU4QkFGXFx1OTAwQVxcdThGQzVcXHU1MzhCXFx1NjJCQ1xcdTlFMjZcXHU5RTJEXFx1NTQ0MFxcdTRFMkJcXHU4MkJEXFx1NzI1OVxcdTg2OUNcXHU1RDE2XFx1ODg1OVxcdTZEQUZcXHU5NkM1XFx1NTREMVxcdTRFOUFcXHU4QkI2XFx1NzEwOVxcdTU0QkRcXHU5NjA5XFx1NzBERlxcdTZERjlcXHU3NkQwXFx1NEUyNVxcdTc4MTRcXHU4NzEyXFx1NUNBOVxcdTVFRjZcXHU4QTAwXFx1OTg5Q1xcdTk2MEVcXHU3MDhFXFx1NkNCRlxcdTU5NDRcXHU2M0E5XFx1NzczQ1xcdTg4NERcXHU2RjE0XFx1ODI3M1xcdTU4MzBcXHU3MUQ1XFx1NTM4Q1xcdTc4MUFcXHU5NkMxXFx1NTUwMVxcdTVGNjZcXHU3MTMwXFx1NUJCNFxcdThDMUFcXHU5QThDXFx1NkI4M1xcdTU5MkVcXHU5RTJGXFx1NzlFN1xcdTY3NjhcXHU2MjZDXFx1NEY2RlxcdTc1QTFcXHU3RjhBXFx1NkQwQlxcdTk2MzNcXHU2QzI3XFx1NEVGMFxcdTc1RDJcXHU1MTdCXFx1NjgzN1xcdTZGM0VcXHU5MDgwXFx1ODE3MFxcdTU5OTZcXHU3NDc2XCJdLFxuICAgICAgW1wiZDI0MFwiLCBcIlxcdTg5MzhcIiwgOCwgXCJcXHU4OTQyXFx1ODk0M1xcdTg5NDVcIiwgMjQsIFwiXFx1ODk2MFwiLCA1LCBcIlxcdTg5NjdcIiwgMTksIFwiXFx1ODk3Q1wiXSxcbiAgICAgIFtcImQyODBcIiwgXCJcXHU4OTdEXFx1ODk3RVxcdTg5ODBcXHU4OTgyXFx1ODk4NFxcdTg5ODVcXHU4OTg3XCIsIDI2LCBcIlxcdTY0NDdcXHU1QzI3XFx1OTA2NVxcdTdBOTFcXHU4QzIzXFx1NTlEQVxcdTU0QUNcXHU4MjAwXFx1ODM2RlxcdTg5ODFcXHU4MDAwXFx1NjkzMFxcdTU2NEVcXHU4MDM2XFx1NzIzN1xcdTkxQ0VcXHU1MUI2XFx1NEU1RlxcdTk4NzVcXHU2Mzk2XFx1NEUxQVxcdTUzRjZcXHU2NkYzXFx1ODE0QlxcdTU5MUNcXHU2REIyXFx1NEUwMFxcdTU4RjlcXHU1MzNCXFx1NjNENlxcdTk0RjFcXHU0RjlEXFx1NEYwQVxcdTg4NjNcXHU5ODkwXFx1NTkzN1xcdTkwNTdcXHU3OUZCXFx1NEVFQVxcdTgwRjBcXHU3NTkxXFx1NkM4MlxcdTVCOUNcXHU1OUU4XFx1NUY1RFxcdTY5MDVcXHU4NjgxXFx1NTAxQVxcdTVERjJcXHU0RTU5XFx1NzdFM1xcdTRFRTVcXHU4MjdBXFx1NjI5MVxcdTY2MTNcXHU5MDkxXFx1NUM3OVxcdTRFQkZcXHU1Rjc5XFx1ODFDNlxcdTkwMzhcXHU4MDg0XFx1NzVBQlxcdTRFQTZcXHU4OEQ0XFx1NjEwRlxcdTZCQzVcXHU1RkM2XFx1NEU0OVxcdTc2Q0FcXHU2RUEyXFx1OEJFM1xcdThCQUVcXHU4QzBBXFx1OEJEMVxcdTVGMDJcXHU3RkZDXFx1N0ZDQ1xcdTdFQ0VcXHU4MzM1XFx1ODM2QlxcdTU2RTBcXHU2QkI3XFx1OTdGM1xcdTk2MzRcXHU1OUZCXFx1NTQxRlxcdTk0RjZcXHU2REVCXFx1NUJDNVxcdTk5NkVcXHU1QzM5XFx1NUYxNVxcdTk2OTBcIl0sXG4gICAgICBbXCJkMzQwXCIsIFwiXFx1ODlBMlwiLCAzMCwgXCJcXHU4OUMzXFx1ODlDRFxcdTg5RDNcXHU4OUQ0XFx1ODlENVxcdTg5RDdcXHU4OUQ4XFx1ODlEOVxcdTg5REJcXHU4OUREXFx1ODlERlxcdTg5RTBcXHU4OUUxXFx1ODlFMlxcdTg5RTRcXHU4OUU3XFx1ODlFOFxcdTg5RTlcXHU4OUVBXFx1ODlFQ1xcdTg5RURcXHU4OUVFXFx1ODlGMFxcdTg5RjFcXHU4OUYyXFx1ODlGNFwiLCA2XSxcbiAgICAgIFtcImQzODBcIiwgXCJcXHU4OUZCXCIsIDQsIFwiXFx1OEEwMVwiLCA1LCBcIlxcdThBMDhcIiwgMjEsIFwiXFx1NTM3MFxcdTgyRjFcXHU2QTMxXFx1NUE3NFxcdTlFNzBcXHU1RTk0XFx1N0YyOFxcdTgzQjlcXHU4NDI0XFx1ODQyNVxcdTgzNjdcXHU4NzQ3XFx1OEZDRVxcdThENjJcXHU3NkM4XFx1NUY3MVxcdTk4OTZcXHU3ODZDXFx1NjYyMFxcdTU0REZcXHU2MkU1XFx1NEY2M1xcdTgxQzNcXHU3NUM4XFx1NUVCOFxcdTk2Q0RcXHU4RTBBXFx1ODZGOVxcdTU0OEZcXHU2Q0YzXFx1NkQ4Q1xcdTZDMzhcXHU2MDdGXFx1NTJDN1xcdTc1MjhcXHU1RTdEXFx1NEYxOFxcdTYwQTBcXHU1RkU3XFx1NUMyNFxcdTc1MzFcXHU5MEFFXFx1OTRDMFxcdTcyQjlcXHU2Q0I5XFx1NkUzOFxcdTkxNDlcXHU2NzA5XFx1NTNDQlxcdTUzRjNcXHU0RjUxXFx1OTFDOVxcdThCRjFcXHU1M0M4XFx1NUU3Q1xcdThGQzJcXHU2REU0XFx1NEU4RVxcdTc2QzJcXHU2OTg2XFx1ODY1RVxcdTYxMUFcXHU4MjA2XFx1NEY1OVxcdTRGREVcXHU5MDNFXFx1OUM3Q1xcdTYxMDlcXHU2RTFEXFx1NkUxNFxcdTk2ODVcXHU0RTg4XFx1NUEzMVxcdTk2RThcXHU0RTBFXFx1NUM3RlxcdTc5QjlcXHU1Qjg3XFx1OEJFRFxcdTdGQkRcXHU3Mzg5XFx1NTdERlxcdTgyOEJcXHU5MEMxXFx1NTQwMVxcdTkwNDdcXHU1NUJCXFx1NUNFQVxcdTVGQTFcXHU2MTA4XFx1NkIzMlxcdTcyRjFcXHU4MEIyXFx1OEE4OVwiXSxcbiAgICAgIFtcImQ0NDBcIiwgXCJcXHU4QTFFXCIsIDMxLCBcIlxcdThBM0ZcIiwgOCwgXCJcXHU4QTQ5XCIsIDIxXSxcbiAgICAgIFtcImQ0ODBcIiwgXCJcXHU4QTVGXCIsIDI1LCBcIlxcdThBN0FcIiwgNiwgXCJcXHU2RDc0XFx1NUJEM1xcdTg4RDVcXHU5ODg0XFx1OEM2QlxcdTlBNkRcXHU5RTMzXFx1NkUwQVxcdTUxQTRcXHU1MTQzXFx1NTdBM1xcdTg4ODFcXHU1MzlGXFx1NjNGNFxcdThGOTVcXHU1NkVEXFx1NTQ1OFxcdTU3MDZcXHU3MzNGXFx1NkU5MFxcdTdGMThcXHU4RkRDXFx1ODJEMVxcdTYxM0ZcXHU2MDI4XFx1OTY2MlxcdTY2RjBcXHU3RUE2XFx1OEQ4QVxcdThEQzNcXHU5NEE1XFx1NUNCM1xcdTdDQTRcXHU2NzA4XFx1NjBBNlxcdTk2MDVcXHU4MDE4XFx1NEU5MVxcdTkwRTdcXHU1MzAwXFx1OTY2OFxcdTUxNDFcXHU4RkQwXFx1ODU3NFxcdTkxNURcXHU2NjU1XFx1OTdGNVxcdTVCNTVcXHU1MzFEXFx1NzgzOFxcdTY3NDJcXHU2ODNEXFx1NTRDOVxcdTcwN0VcXHU1QkIwXFx1OEY3RFxcdTUxOERcXHU1NzI4XFx1NTRCMVxcdTY1MTJcXHU2NjgyXFx1OEQ1RVxcdThENDNcXHU4MTBGXFx1ODQ2Q1xcdTkwNkRcXHU3Q0RGXFx1NTFGRlxcdTg1RkJcXHU2N0EzXFx1NjVFOVxcdTZGQTFcXHU4NkE0XFx1OEU4MVxcdTU2NkFcXHU5MDIwXFx1NzY4MlxcdTcwNzZcXHU3MUU1XFx1OEQyM1xcdTYyRTlcXHU1MjE5XFx1NkNGRFxcdThEM0NcXHU2MDBFXFx1NTg5RVxcdTYxOEVcXHU2NkZFXFx1OEQ2MFxcdTYyNEVcXHU1NUIzXFx1NkUyM1xcdTY3MkRcXHU4RjY3XCJdLFxuICAgICAgW1wiZDU0MFwiLCBcIlxcdThBODFcIiwgNywgXCJcXHU4QThCXCIsIDcsIFwiXFx1OEE5NFwiLCA0Nl0sXG4gICAgICBbXCJkNTgwXCIsIFwiXFx1OEFDM1wiLCAzMiwgXCJcXHU5NEUxXFx1OTVGOFxcdTc3MjhcXHU2ODA1XFx1NjlBOFxcdTU0OEJcXHU0RTREXFx1NzBCOFxcdThCQzhcXHU2NDU4XFx1NjU4QlxcdTVCODVcXHU3QTg0XFx1NTAzQVxcdTVCRThcXHU3N0JCXFx1NkJFMVxcdThBNzlcXHU3Qzk4XFx1NkNCRVxcdTc2Q0ZcXHU2NUE5XFx1OEY5N1xcdTVEMkRcXHU1QzU1XFx1ODYzOFxcdTY4MDhcXHU1MzYwXFx1NjIxOFxcdTdBRDlcXHU2RTVCXFx1N0VGRFxcdTZBMUZcXHU3QUUwXFx1NUY3MFxcdTZGMzNcXHU1RjIwXFx1NjM4Q1xcdTZEQThcXHU2NzU2XFx1NEUwOFxcdTVFMTBcXHU4RDI2XFx1NEVEN1xcdTgwQzBcXHU3NjM0XFx1OTY5Q1xcdTYyREJcXHU2NjJEXFx1NjI3RVxcdTZDQkNcXHU4RDc1XFx1NzE2N1xcdTdGNjlcXHU1MTQ2XFx1ODA4N1xcdTUzRUNcXHU5MDZFXFx1NjI5OFxcdTU0RjJcXHU4NkYwXFx1OEY5OVxcdTgwMDVcXHU5NTE3XFx1ODUxN1xcdThGRDlcXHU2RDU5XFx1NzNDRFxcdTY1OUZcXHU3NzFGXFx1NzUwNFxcdTc4MjdcXHU4MUZCXFx1OEQxRVxcdTk0ODhcXHU0RkE2XFx1Njc5NVxcdTc1QjlcXHU4QkNBXFx1OTcwN1xcdTYzMkZcXHU5NTQ3XFx1OTYzNVxcdTg0QjhcXHU2MzIzXFx1Nzc0MVxcdTVGODFcXHU3MkYwXFx1NEU4OVxcdTYwMTRcXHU2NTc0XFx1NjJFRlxcdTZCNjNcXHU2NTNGXCJdLFxuICAgICAgW1wiZDY0MFwiLCBcIlxcdThBRTRcIiwgMzQsIFwiXFx1OEIwOFwiLCAyN10sXG4gICAgICBbXCJkNjgwXCIsIFwiXFx1OEIyNFxcdThCMjVcXHU4QjI3XCIsIDMwLCBcIlxcdTVFMjdcXHU3NUM3XFx1OTBEMVxcdThCQzFcXHU4MjlEXFx1Njc5RFxcdTY1MkZcXHU1NDMxXFx1ODcxOFxcdTc3RTVcXHU4MEEyXFx1ODEwMlxcdTZDNDFcXHU0RTRCXFx1N0VDN1xcdTgwNENcXHU3NkY0XFx1NjkwRFxcdTZCOTZcXHU2MjY3XFx1NTAzQ1xcdTRGODRcXHU1NzQwXFx1NjMwN1xcdTZCNjJcXHU4REJFXFx1NTNFQVxcdTY1RThcXHU3RUI4XFx1NUZEN1xcdTYzMUFcXHU2M0I3XFx1ODFGM1xcdTgxRjRcXHU3RjZFXFx1NUUxQ1xcdTVDRDlcXHU1MjM2XFx1NjY3QVxcdTc5RTlcXHU3QTFBXFx1OEQyOFxcdTcwOTlcXHU3NUQ0XFx1NkVERVxcdTZDQkJcXHU3QTkyXFx1NEUyRFxcdTc2QzVcXHU1RkUwXFx1OTQ5RlxcdTg4NzdcXHU3RUM4XFx1NzlDRFxcdTgwQkZcXHU5MUNEXFx1NEVGMlxcdTRGMTdcXHU4MjFGXFx1NTQ2OFxcdTVEREVcXHU2RDMyXFx1OEJDQ1xcdTdDQTVcXHU4Rjc0XFx1ODA5OFxcdTVFMUFcXHU1NDkyXFx1NzZCMVxcdTVCOTlcXHU2NjNDXFx1OUFBNFxcdTczRTBcXHU2ODJBXFx1ODZEQlxcdTY3MzFcXHU3MzJBXFx1OEJGOFxcdThCREJcXHU5MDEwXFx1N0FGOVxcdTcwREJcXHU3MTZFXFx1NjJDNFxcdTc3QTlcXHU1NjMxXFx1NEUzQlxcdTg0NTdcXHU2N0YxXFx1NTJBOVxcdTg2QzBcXHU4RDJFXFx1OTRGOFxcdTdCNTFcIl0sXG4gICAgICBbXCJkNzQwXCIsIFwiXFx1OEI0NlwiLCAzMSwgXCJcXHU4QjY3XCIsIDQsIFwiXFx1OEI2RFwiLCAyNV0sXG4gICAgICBbXCJkNzgwXCIsIFwiXFx1OEI4N1wiLCAyNCwgXCJcXHU4QkFDXFx1OEJCMVxcdThCQkJcXHU4QkM3XFx1OEJEMFxcdThCRUFcXHU4QzA5XFx1OEMxRVxcdTRGNEZcXHU2Q0U4XFx1Nzk1RFxcdTlBN0JcXHU2MjkzXFx1NzIyQVxcdTYyRkRcXHU0RTEzXFx1NzgxNlxcdThGNkNcXHU2NEIwXFx1OEQ1QVxcdTdCQzZcXHU2ODY5XFx1NUU4NFxcdTg4QzVcXHU1OTg2XFx1NjQ5RVxcdTU4RUVcXHU3MkI2XFx1NjkwRVxcdTk1MjVcXHU4RkZEXFx1OEQ1OFxcdTU3NjBcXHU3RjAwXFx1OEMwNlxcdTUxQzZcXHU2MzQ5XFx1NjJEOVxcdTUzNTNcXHU2ODRDXFx1NzQyMlxcdTgzMDFcXHU5MTRDXFx1NTU0NFxcdTc3NDBcXHU3MDdDXFx1NkQ0QVxcdTUxNzlcXHU1NEE4XFx1OEQ0NFxcdTU5RkZcXHU2RUNCXFx1NkRDNFxcdTVCNUNcXHU3RDJCXFx1NEVENFxcdTdDN0RcXHU2RUQzXFx1NUI1MFxcdTgxRUFcXHU2RTBEXFx1NUI1N1xcdTlCMDNcXHU2OEQ1XFx1OEUyQVxcdTVCOTdcXHU3RUZDXFx1NjAzQlxcdTdFQjVcXHU5MEI5XFx1OEQ3MFxcdTU5NEZcXHU2M0NEXFx1NzlERlxcdThEQjNcXHU1MzUyXFx1NjVDRlxcdTc5NTZcXHU4QkM1XFx1OTYzQlxcdTdFQzRcXHU5NEJCXFx1N0U4MlxcdTU2MzRcXHU5MTg5XFx1NjcwMFxcdTdGNkFcXHU1QzBBXFx1OTA3NVxcdTY2MjhcXHU1REU2XFx1NEY1MFxcdTY3REVcXHU1MDVBXFx1NEY1Q1xcdTU3NTBcXHU1RUE3XCJdLFxuICAgICAgW1wiZDg0MFwiLCBcIlxcdThDMzhcIiwgOCwgXCJcXHU4QzQyXFx1OEM0M1xcdThDNDRcXHU4QzQ1XFx1OEM0OFxcdThDNEFcXHU4QzRCXFx1OEM0RFwiLCA3LCBcIlxcdThDNTZcXHU4QzU3XFx1OEM1OFxcdThDNTlcXHU4QzVCXCIsIDUsIFwiXFx1OEM2M1wiLCA2LCBcIlxcdThDNkNcIiwgNiwgXCJcXHU4Qzc0XFx1OEM3NVxcdThDNzZcXHU4Qzc3XFx1OEM3QlwiLCA2LCBcIlxcdThDODNcXHU4Qzg0XFx1OEM4NlxcdThDODdcIl0sXG4gICAgICBbXCJkODgwXCIsIFwiXFx1OEM4OFxcdThDOEJcXHU4QzhEXCIsIDYsIFwiXFx1OEM5NVxcdThDOTZcXHU4Qzk3XFx1OEM5OVwiLCAyMCwgXCJcXHU0RThEXFx1NEUwQ1xcdTUxNDBcXHU0RTEwXFx1NUVGRlxcdTUzNDVcXHU0RTE1XFx1NEU5OFxcdTRFMUVcXHU5QjMyXFx1NUI2Q1xcdTU2NjlcXHU0RTI4XFx1NzlCQVxcdTRFM0ZcXHU1MzE1XFx1NEU0N1xcdTU5MkRcXHU3MjNCXFx1NTM2RVxcdTZDMTBcXHU1NkRGXFx1ODBFNFxcdTk5OTdcXHU2QkQzXFx1Nzc3RVxcdTlGMTdcXHU0RTM2XFx1NEU5RlxcdTlGMTBcXHU0RTVDXFx1NEU2OVxcdTRFOTNcXHU4Mjg4XFx1NUI1QlxcdTU1NkNcXHU1NjBGXFx1NEVDNFxcdTUzOERcXHU1MzlEXFx1NTNBM1xcdTUzQTVcXHU1M0FFXFx1OTc2NVxcdThENURcXHU1MzFBXFx1NTNGNVxcdTUzMjZcXHU1MzJFXFx1NTMzRVxcdThENUNcXHU1MzY2XFx1NTM2M1xcdTUyMDJcXHU1MjA4XFx1NTIwRVxcdTUyMkRcXHU1MjMzXFx1NTIzRlxcdTUyNDBcXHU1MjRDXFx1NTI1RVxcdTUyNjFcXHU1MjVDXFx1ODRBRlxcdTUyN0RcXHU1MjgyXFx1NTI4MVxcdTUyOTBcXHU1MjkzXFx1NTE4MlxcdTdGNTRcXHU0RUJCXFx1NEVDM1xcdTRFQzlcXHU0RUMyXFx1NEVFOFxcdTRFRTFcXHU0RUVCXFx1NEVERVxcdTRGMUJcXHU0RUYzXFx1NEYyMlxcdTRGNjRcXHU0RUY1XFx1NEYyNVxcdTRGMjdcXHU0RjA5XFx1NEYyQlxcdTRGNUVcXHU0RjY3XFx1NjUzOFxcdTRGNUFcXHU0RjVEXCJdLFxuICAgICAgW1wiZDk0MFwiLCBcIlxcdThDQUVcIiwgNjJdLFxuICAgICAgW1wiZDk4MFwiLCBcIlxcdThDRURcIiwgMzIsIFwiXFx1NEY1RlxcdTRGNTdcXHU0RjMyXFx1NEYzRFxcdTRGNzZcXHU0Rjc0XFx1NEY5MVxcdTRGODlcXHU0RjgzXFx1NEY4RlxcdTRGN0VcXHU0RjdCXFx1NEZBQVxcdTRGN0NcXHU0RkFDXFx1NEY5NFxcdTRGRTZcXHU0RkU4XFx1NEZFQVxcdTRGQzVcXHU0RkRBXFx1NEZFM1xcdTRGRENcXHU0RkQxXFx1NEZERlxcdTRGRjhcXHU1MDI5XFx1NTA0Q1xcdTRGRjNcXHU1MDJDXFx1NTAwRlxcdTUwMkVcXHU1MDJEXFx1NEZGRVxcdTUwMUNcXHU1MDBDXFx1NTAyNVxcdTUwMjhcXHU1MDdFXFx1NTA0M1xcdTUwNTVcXHU1MDQ4XFx1NTA0RVxcdTUwNkNcXHU1MDdCXFx1NTBBNVxcdTUwQTdcXHU1MEE5XFx1NTBCQVxcdTUwRDZcXHU1MTA2XFx1NTBFRFxcdTUwRUNcXHU1MEU2XFx1NTBFRVxcdTUxMDdcXHU1MTBCXFx1NEVERFxcdTZDM0RcXHU0RjU4XFx1NEY2NVxcdTRGQ0VcXHU5RkEwXFx1NkM0NlxcdTdDNzRcXHU1MTZFXFx1NURGRFxcdTlFQzlcXHU5OTk4XFx1NTE4MVxcdTU5MTRcXHU1MkY5XFx1NTMwRFxcdThBMDdcXHU1MzEwXFx1NTFFQlxcdTU5MTlcXHU1MTU1XFx1NEVBMFxcdTUxNTZcXHU0RUIzXFx1ODg2RVxcdTg4QTRcXHU0RUI1XFx1ODExNFxcdTg4RDJcXHU3OTgwXFx1NUIzNFxcdTg4MDNcXHU3RkI4XFx1NTFBQlxcdTUxQjFcXHU1MUJEXFx1NTFCQ1wiXSxcbiAgICAgIFtcImRhNDBcIiwgXCJcXHU4RDBFXCIsIDE0LCBcIlxcdThEMjBcXHU4RDUxXFx1OEQ1MlxcdThENTdcXHU4RDVGXFx1OEQ2NVxcdThENjhcXHU4RDY5XFx1OEQ2QVxcdThENkNcXHU4RDZFXFx1OEQ2RlxcdThENzFcXHU4RDcyXFx1OEQ3OFwiLCA4LCBcIlxcdThEODJcXHU4RDgzXFx1OEQ4NlxcdThEODdcXHU4RDg4XFx1OEQ4OVxcdThEOENcIiwgNCwgXCJcXHU4RDkyXFx1OEQ5M1xcdThEOTVcIiwgOSwgXCJcXHU4REEwXFx1OERBMVwiXSxcbiAgICAgIFtcImRhODBcIiwgXCJcXHU4REEyXFx1OERBNFwiLCAxMiwgXCJcXHU4REIyXFx1OERCNlxcdThEQjdcXHU4REI5XFx1OERCQlxcdThEQkRcXHU4REMwXFx1OERDMVxcdThEQzJcXHU4REM1XFx1OERDN1xcdThEQzhcXHU4REM5XFx1OERDQVxcdThEQ0RcXHU4REQwXFx1OEREMlxcdThERDNcXHU4REQ0XFx1NTFDN1xcdTUxOTZcXHU1MUEyXFx1NTFBNVxcdThCQTBcXHU4QkE2XFx1OEJBN1xcdThCQUFcXHU4QkI0XFx1OEJCNVxcdThCQjdcXHU4QkMyXFx1OEJDM1xcdThCQ0JcXHU4QkNGXFx1OEJDRVxcdThCRDJcXHU4QkQzXFx1OEJENFxcdThCRDZcXHU4QkQ4XFx1OEJEOVxcdThCRENcXHU4QkRGXFx1OEJFMFxcdThCRTRcXHU4QkU4XFx1OEJFOVxcdThCRUVcXHU4QkYwXFx1OEJGM1xcdThCRjZcXHU4QkY5XFx1OEJGQ1xcdThCRkZcXHU4QzAwXFx1OEMwMlxcdThDMDRcXHU4QzA3XFx1OEMwQ1xcdThDMEZcXHU4QzExXFx1OEMxMlxcdThDMTRcXHU4QzE1XFx1OEMxNlxcdThDMTlcXHU4QzFCXFx1OEMxOFxcdThDMURcXHU4QzFGXFx1OEMyMFxcdThDMjFcXHU4QzI1XFx1OEMyN1xcdThDMkFcXHU4QzJCXFx1OEMyRVxcdThDMkZcXHU4QzMyXFx1OEMzM1xcdThDMzVcXHU4QzM2XFx1NTM2OVxcdTUzN0FcXHU5NjFEXFx1OTYyMlxcdTk2MjFcXHU5NjMxXFx1OTYyQVxcdTk2M0RcXHU5NjNDXFx1OTY0MlxcdTk2NDlcXHU5NjU0XFx1OTY1RlxcdTk2NjdcXHU5NjZDXFx1OTY3MlxcdTk2NzRcXHU5Njg4XFx1OTY4RFxcdTk2OTdcXHU5NkIwXFx1OTA5N1xcdTkwOUJcXHU5MDlEXFx1OTA5OVxcdTkwQUNcXHU5MEExXFx1OTBCNFxcdTkwQjNcXHU5MEI2XFx1OTBCQVwiXSxcbiAgICAgIFtcImRiNDBcIiwgXCJcXHU4REQ1XFx1OEREOFxcdThERDlcXHU4RERDXFx1OERFMFxcdThERTFcXHU4REUyXFx1OERFNVxcdThERTZcXHU4REU3XFx1OERFOVxcdThERURcXHU4REVFXFx1OERGMFxcdThERjFcXHU4REYyXFx1OERGNFxcdThERjZcXHU4REZDXFx1OERGRVwiLCA2LCBcIlxcdThFMDZcXHU4RTA3XFx1OEUwOFxcdThFMEJcXHU4RTBEXFx1OEUwRVxcdThFMTBcXHU4RTExXFx1OEUxMlxcdThFMTNcXHU4RTE1XCIsIDcsIFwiXFx1OEUyMFxcdThFMjFcXHU4RTI0XCIsIDQsIFwiXFx1OEUyQlxcdThFMkRcXHU4RTMwXFx1OEUzMlxcdThFMzNcXHU4RTM0XFx1OEUzNlxcdThFMzdcXHU4RTM4XFx1OEUzQlxcdThFM0NcXHU4RTNFXCJdLFxuICAgICAgW1wiZGI4MFwiLCBcIlxcdThFM0ZcXHU4RTQzXFx1OEU0NVxcdThFNDZcXHU4RTRDXCIsIDQsIFwiXFx1OEU1M1wiLCA1LCBcIlxcdThFNUFcIiwgMTEsIFwiXFx1OEU2N1xcdThFNjhcXHU4RTZBXFx1OEU2QlxcdThFNkVcXHU4RTcxXFx1OTBCOFxcdTkwQjBcXHU5MENGXFx1OTBDNVxcdTkwQkVcXHU5MEQwXFx1OTBDNFxcdTkwQzdcXHU5MEQzXFx1OTBFNlxcdTkwRTJcXHU5MERDXFx1OTBEN1xcdTkwREJcXHU5MEVCXFx1OTBFRlxcdTkwRkVcXHU5MTA0XFx1OTEyMlxcdTkxMUVcXHU5MTIzXFx1OTEzMVxcdTkxMkZcXHU5MTM5XFx1OTE0M1xcdTkxNDZcXHU1MjBEXFx1NTk0MlxcdTUyQTJcXHU1MkFDXFx1NTJBRFxcdTUyQkVcXHU1NEZGXFx1NTJEMFxcdTUyRDZcXHU1MkYwXFx1NTNERlxcdTcxRUVcXHU3N0NEXFx1NUVGNFxcdTUxRjVcXHU1MUZDXFx1OUIyRlxcdTUzQjZcXHU1RjAxXFx1NzU1QVxcdTVERUZcXHU1NzRDXFx1NTdBOVxcdTU3QTFcXHU1ODdFXFx1NThCQ1xcdTU4QzVcXHU1OEQxXFx1NTcyOVxcdTU3MkNcXHU1NzJBXFx1NTczM1xcdTU3MzlcXHU1NzJFXFx1NTcyRlxcdTU3NUNcXHU1NzNCXFx1NTc0MlxcdTU3NjlcXHU1Nzg1XFx1NTc2QlxcdTU3ODZcXHU1NzdDXFx1NTc3QlxcdTU3NjhcXHU1NzZEXFx1NTc3NlxcdTU3NzNcXHU1N0FEXFx1NTdBNFxcdTU3OENcXHU1N0IyXFx1NTdDRlxcdTU3QTdcXHU1N0I0XFx1NTc5M1xcdTU3QTBcXHU1N0Q1XFx1NTdEOFxcdTU3REFcXHU1N0Q5XFx1NTdEMlxcdTU3QjhcXHU1N0Y0XFx1NTdFRlxcdTU3RjhcXHU1N0U0XFx1NTdERFwiXSxcbiAgICAgIFtcImRjNDBcIiwgXCJcXHU4RTczXFx1OEU3NVxcdThFNzdcIiwgNCwgXCJcXHU4RTdEXFx1OEU3RVxcdThFODBcXHU4RTgyXFx1OEU4M1xcdThFODRcXHU4RTg2XFx1OEU4OFwiLCA2LCBcIlxcdThFOTFcXHU4RTkyXFx1OEU5M1xcdThFOTVcIiwgNiwgXCJcXHU4RTlEXFx1OEU5RlwiLCAxMSwgXCJcXHU4RUFEXFx1OEVBRVxcdThFQjBcXHU4RUIxXFx1OEVCM1wiLCA2LCBcIlxcdThFQkJcIiwgN10sXG4gICAgICBbXCJkYzgwXCIsIFwiXFx1OEVDM1wiLCAxMCwgXCJcXHU4RUNGXCIsIDIxLCBcIlxcdTU4MEJcXHU1ODBEXFx1NTdGRFxcdTU3RURcXHU1ODAwXFx1NTgxRVxcdTU4MTlcXHU1ODQ0XFx1NTgyMFxcdTU4NjVcXHU1ODZDXFx1NTg4MVxcdTU4ODlcXHU1ODlBXFx1NTg4MFxcdTk5QThcXHU5RjE5XFx1NjFGRlxcdTgyNzlcXHU4MjdEXFx1ODI3RlxcdTgyOEZcXHU4MjhBXFx1ODJBOFxcdTgyODRcXHU4MjhFXFx1ODI5MVxcdTgyOTdcXHU4Mjk5XFx1ODJBQlxcdTgyQjhcXHU4MkJFXFx1ODJCMFxcdTgyQzhcXHU4MkNBXFx1ODJFM1xcdTgyOThcXHU4MkI3XFx1ODJBRVxcdTgyQ0JcXHU4MkNDXFx1ODJDMVxcdTgyQTlcXHU4MkI0XFx1ODJBMVxcdTgyQUFcXHU4MjlGXFx1ODJDNFxcdTgyQ0VcXHU4MkE0XFx1ODJFMVxcdTgzMDlcXHU4MkY3XFx1ODJFNFxcdTgzMEZcXHU4MzA3XFx1ODJEQ1xcdTgyRjRcXHU4MkQyXFx1ODJEOFxcdTgzMENcXHU4MkZCXFx1ODJEM1xcdTgzMTFcXHU4MzFBXFx1ODMwNlxcdTgzMTRcXHU4MzE1XFx1ODJFMFxcdTgyRDVcXHU4MzFDXFx1ODM1MVxcdTgzNUJcXHU4MzVDXFx1ODMwOFxcdTgzOTJcXHU4MzNDXFx1ODMzNFxcdTgzMzFcXHU4MzlCXFx1ODM1RVxcdTgzMkZcXHU4MzRGXFx1ODM0N1xcdTgzNDNcXHU4MzVGXFx1ODM0MFxcdTgzMTdcXHU4MzYwXFx1ODMyRFxcdTgzM0FcXHU4MzMzXFx1ODM2NlxcdTgzNjVcIl0sXG4gICAgICBbXCJkZDQwXCIsIFwiXFx1OEVFNVwiLCA2Ml0sXG4gICAgICBbXCJkZDgwXCIsIFwiXFx1OEYyNFwiLCAzMiwgXCJcXHU4MzY4XFx1ODMxQlxcdTgzNjlcXHU4MzZDXFx1ODM2QVxcdTgzNkRcXHU4MzZFXFx1ODNCMFxcdTgzNzhcXHU4M0IzXFx1ODNCNFxcdTgzQTBcXHU4M0FBXFx1ODM5M1xcdTgzOUNcXHU4Mzg1XFx1ODM3Q1xcdTgzQjZcXHU4M0E5XFx1ODM3RFxcdTgzQjhcXHU4MzdCXFx1ODM5OFxcdTgzOUVcXHU4M0E4XFx1ODNCQVxcdTgzQkNcXHU4M0MxXFx1ODQwMVxcdTgzRTVcXHU4M0Q4XFx1NTgwN1xcdTg0MThcXHU4NDBCXFx1ODNERFxcdTgzRkRcXHU4M0Q2XFx1ODQxQ1xcdTg0MzhcXHU4NDExXFx1ODQwNlxcdTgzRDRcXHU4M0RGXFx1ODQwRlxcdTg0MDNcXHU4M0Y4XFx1ODNGOVxcdTgzRUFcXHU4M0M1XFx1ODNDMFxcdTg0MjZcXHU4M0YwXFx1ODNFMVxcdTg0NUNcXHU4NDUxXFx1ODQ1QVxcdTg0NTlcXHU4NDczXFx1ODQ4N1xcdTg0ODhcXHU4NDdBXFx1ODQ4OVxcdTg0NzhcXHU4NDNDXFx1ODQ0NlxcdTg0NjlcXHU4NDc2XFx1ODQ4Q1xcdTg0OEVcXHU4NDMxXFx1ODQ2RFxcdTg0QzFcXHU4NENEXFx1ODREMFxcdTg0RTZcXHU4NEJEXFx1ODREM1xcdTg0Q0FcXHU4NEJGXFx1ODRCQVxcdTg0RTBcXHU4NEExXFx1ODRCOVxcdTg0QjRcXHU4NDk3XFx1ODRFNVxcdTg0RTNcXHU4NTBDXFx1NzUwRFxcdTg1MzhcXHU4NEYwXFx1ODUzOVxcdTg1MUZcXHU4NTNBXCJdLFxuICAgICAgW1wiZGU0MFwiLCBcIlxcdThGNDVcIiwgMzIsIFwiXFx1OEY2QVxcdThGODBcXHU4RjhDXFx1OEY5MlxcdThGOURcXHU4RkEwXFx1OEZBMVxcdThGQTJcXHU4RkE0XFx1OEZBNVxcdThGQTZcXHU4RkE3XFx1OEZBQVxcdThGQUNcXHU4RkFEXFx1OEZBRVxcdThGQUZcXHU4RkIyXFx1OEZCM1xcdThGQjRcXHU4RkI1XFx1OEZCN1xcdThGQjhcXHU4RkJBXFx1OEZCQlxcdThGQkNcXHU4RkJGXFx1OEZDMFxcdThGQzNcXHU4RkM2XCJdLFxuICAgICAgW1wiZGU4MFwiLCBcIlxcdThGQzlcIiwgNCwgXCJcXHU4RkNGXFx1OEZEMlxcdThGRDZcXHU4RkQ3XFx1OEZEQVxcdThGRTBcXHU4RkUxXFx1OEZFM1xcdThGRTdcXHU4RkVDXFx1OEZFRlxcdThGRjFcXHU4RkYyXFx1OEZGNFxcdThGRjVcXHU4RkY2XFx1OEZGQVxcdThGRkJcXHU4RkZDXFx1OEZGRVxcdThGRkZcXHU5MDA3XFx1OTAwOFxcdTkwMENcXHU5MDBFXFx1OTAxM1xcdTkwMTVcXHU5MDE4XFx1ODU1NlxcdTg1M0JcXHU4NEZGXFx1ODRGQ1xcdTg1NTlcXHU4NTQ4XFx1ODU2OFxcdTg1NjRcXHU4NTVFXFx1ODU3QVxcdTc3QTJcXHU4NTQzXFx1ODU3MlxcdTg1N0JcXHU4NUE0XFx1ODVBOFxcdTg1ODdcXHU4NThGXFx1ODU3OVxcdTg1QUVcXHU4NTlDXFx1ODU4NVxcdTg1QjlcXHU4NUI3XFx1ODVCMFxcdTg1RDNcXHU4NUMxXFx1ODVEQ1xcdTg1RkZcXHU4NjI3XFx1ODYwNVxcdTg2MjlcXHU4NjE2XFx1ODYzQ1xcdTVFRkVcXHU1RjA4XFx1NTkzQ1xcdTU5NDFcXHU4MDM3XFx1NTk1NVxcdTU5NUFcXHU1OTU4XFx1NTMwRlxcdTVDMjJcXHU1QzI1XFx1NUMyQ1xcdTVDMzRcXHU2MjRDXFx1NjI2QVxcdTYyOUZcXHU2MkJCXFx1NjJDQVxcdTYyREFcXHU2MkQ3XFx1NjJFRVxcdTYzMjJcXHU2MkY2XFx1NjMzOVxcdTYzNEJcXHU2MzQzXFx1NjNBRFxcdTYzRjZcXHU2MzcxXFx1NjM3QVxcdTYzOEVcXHU2M0I0XFx1NjM2RFxcdTYzQUNcXHU2MzhBXFx1NjM2OVxcdTYzQUVcXHU2M0JDXFx1NjNGMlxcdTYzRjhcXHU2M0UwXFx1NjNGRlxcdTYzQzRcXHU2M0RFXFx1NjNDRVxcdTY0NTJcXHU2M0M2XFx1NjNCRVxcdTY0NDVcXHU2NDQxXFx1NjQwQlxcdTY0MUJcXHU2NDIwXFx1NjQwQ1xcdTY0MjZcXHU2NDIxXFx1NjQ1RVxcdTY0ODRcXHU2NDZEXFx1NjQ5NlwiXSxcbiAgICAgIFtcImRmNDBcIiwgXCJcXHU5MDE5XFx1OTAxQ1xcdTkwMjNcXHU5MDI0XFx1OTAyNVxcdTkwMjdcIiwgNSwgXCJcXHU5MDMwXCIsIDQsIFwiXFx1OTAzN1xcdTkwMzlcXHU5MDNBXFx1OTAzRFxcdTkwM0ZcXHU5MDQwXFx1OTA0M1xcdTkwNDVcXHU5MDQ2XFx1OTA0OFwiLCA0LCBcIlxcdTkwNEVcXHU5MDU0XFx1OTA1NVxcdTkwNTZcXHU5MDU5XFx1OTA1QVxcdTkwNUNcIiwgNSwgXCJcXHU5MDY0XFx1OTA2NlxcdTkwNjdcXHU5MDY5XFx1OTA2QVxcdTkwNkJcXHU5MDZDXFx1OTA2RlwiLCA0LCBcIlxcdTkwNzZcIiwgNiwgXCJcXHU5MDdFXFx1OTA4MVwiXSxcbiAgICAgIFtcImRmODBcIiwgXCJcXHU5MDg0XFx1OTA4NVxcdTkwODZcXHU5MDg3XFx1OTA4OVxcdTkwOEFcXHU5MDhDXCIsIDQsIFwiXFx1OTA5MlxcdTkwOTRcXHU5MDk2XFx1OTA5OFxcdTkwOUFcXHU5MDlDXFx1OTA5RVxcdTkwOUZcXHU5MEEwXFx1OTBBNFxcdTkwQTVcXHU5MEE3XFx1OTBBOFxcdTkwQTlcXHU5MEFCXFx1OTBBRFxcdTkwQjJcXHU5MEI3XFx1OTBCQ1xcdTkwQkRcXHU5MEJGXFx1OTBDMFxcdTY0N0FcXHU2NEI3XFx1NjRCOFxcdTY0OTlcXHU2NEJBXFx1NjRDMFxcdTY0RDBcXHU2NEQ3XFx1NjRFNFxcdTY0RTJcXHU2NTA5XFx1NjUyNVxcdTY1MkVcXHU1RjBCXFx1NUZEMlxcdTc1MTlcXHU1RjExXFx1NTM1RlxcdTUzRjFcXHU1M0ZEXFx1NTNFOVxcdTUzRThcXHU1M0ZCXFx1NTQxMlxcdTU0MTZcXHU1NDA2XFx1NTQ0QlxcdTU0NTJcXHU1NDUzXFx1NTQ1NFxcdTU0NTZcXHU1NDQzXFx1NTQyMVxcdTU0NTdcXHU1NDU5XFx1NTQyM1xcdTU0MzJcXHU1NDgyXFx1NTQ5NFxcdTU0NzdcXHU1NDcxXFx1NTQ2NFxcdTU0OUFcXHU1NDlCXFx1NTQ4NFxcdTU0NzZcXHU1NDY2XFx1NTQ5RFxcdTU0RDBcXHU1NEFEXFx1NTRDMlxcdTU0QjRcXHU1NEQyXFx1NTRBN1xcdTU0QTZcXHU1NEQzXFx1NTRENFxcdTU0NzJcXHU1NEEzXFx1NTRENVxcdTU0QkJcXHU1NEJGXFx1NTRDQ1xcdTU0RDlcXHU1NERBXFx1NTREQ1xcdTU0QTlcXHU1NEFBXFx1NTRBNFxcdTU0RERcXHU1NENGXFx1NTRERVxcdTU1MUJcXHU1NEU3XFx1NTUyMFxcdTU0RkRcXHU1NTE0XFx1NTRGM1xcdTU1MjJcXHU1NTIzXFx1NTUwRlxcdTU1MTFcXHU1NTI3XFx1NTUyQVxcdTU1NjdcXHU1NThGXFx1NTVCNVxcdTU1NDlcXHU1NTZEXFx1NTU0MVxcdTU1NTVcXHU1NTNGXFx1NTU1MFxcdTU1M0NcIl0sXG4gICAgICBbXCJlMDQwXCIsIFwiXFx1OTBDMlxcdTkwQzNcXHU5MEM2XFx1OTBDOFxcdTkwQzlcXHU5MENCXFx1OTBDQ1xcdTkwQ0RcXHU5MEQyXFx1OTBENFxcdTkwRDVcXHU5MEQ2XFx1OTBEOFxcdTkwRDlcXHU5MERBXFx1OTBERVxcdTkwREZcXHU5MEUwXFx1OTBFM1xcdTkwRTRcXHU5MEU1XFx1OTBFOVxcdTkwRUFcXHU5MEVDXFx1OTBFRVxcdTkwRjBcXHU5MEYxXFx1OTBGMlxcdTkwRjNcXHU5MEY1XFx1OTBGNlxcdTkwRjdcXHU5MEY5XFx1OTBGQVxcdTkwRkJcXHU5MEZDXFx1OTBGRlxcdTkxMDBcXHU5MTAxXFx1OTEwM1xcdTkxMDVcIiwgMTksIFwiXFx1OTExQVxcdTkxMUJcXHU5MTFDXCJdLFxuICAgICAgW1wiZTA4MFwiLCBcIlxcdTkxMURcXHU5MTFGXFx1OTEyMFxcdTkxMjFcXHU5MTI0XCIsIDEwLCBcIlxcdTkxMzBcXHU5MTMyXCIsIDYsIFwiXFx1OTEzQVwiLCA4LCBcIlxcdTkxNDRcXHU1NTM3XFx1NTU1NlxcdTU1NzVcXHU1NTc2XFx1NTU3N1xcdTU1MzNcXHU1NTMwXFx1NTU1Q1xcdTU1OEJcXHU1NUQyXFx1NTU4M1xcdTU1QjFcXHU1NUI5XFx1NTU4OFxcdTU1ODFcXHU1NTlGXFx1NTU3RVxcdTU1RDZcXHU1NTkxXFx1NTU3QlxcdTU1REZcXHU1NUJEXFx1NTVCRVxcdTU1OTRcXHU1NTk5XFx1NTVFQVxcdTU1RjdcXHU1NUM5XFx1NTYxRlxcdTU1RDFcXHU1NUVCXFx1NTVFQ1xcdTU1RDRcXHU1NUU2XFx1NTVERFxcdTU1QzRcXHU1NUVGXFx1NTVFNVxcdTU1RjJcXHU1NUYzXFx1NTVDQ1xcdTU1Q0RcXHU1NUU4XFx1NTVGNVxcdTU1RTRcXHU4Rjk0XFx1NTYxRVxcdTU2MDhcXHU1NjBDXFx1NTYwMVxcdTU2MjRcXHU1NjIzXFx1NTVGRVxcdTU2MDBcXHU1NjI3XFx1NTYyRFxcdTU2NThcXHU1NjM5XFx1NTY1N1xcdTU2MkNcXHU1NjREXFx1NTY2MlxcdTU2NTlcXHU1NjVDXFx1NTY0Q1xcdTU2NTRcXHU1Njg2XFx1NTY2NFxcdTU2NzFcXHU1NjZCXFx1NTY3QlxcdTU2N0NcXHU1Njg1XFx1NTY5M1xcdTU2QUZcXHU1NkQ0XFx1NTZEN1xcdTU2RERcXHU1NkUxXFx1NTZGNVxcdTU2RUJcXHU1NkY5XFx1NTZGRlxcdTU3MDRcXHU1NzBBXFx1NTcwOVxcdTU3MUNcXHU1RTBGXFx1NUUxOVxcdTVFMTRcXHU1RTExXFx1NUUzMVxcdTVFM0JcXHU1RTNDXCJdLFxuICAgICAgW1wiZTE0MFwiLCBcIlxcdTkxNDVcXHU5MTQ3XFx1OTE0OFxcdTkxNTFcXHU5MTUzXFx1OTE1NFxcdTkxNTVcXHU5MTU2XFx1OTE1OFxcdTkxNTlcXHU5MTVCXFx1OTE1Q1xcdTkxNUZcXHU5MTYwXFx1OTE2NlxcdTkxNjdcXHU5MTY4XFx1OTE2QlxcdTkxNkRcXHU5MTczXFx1OTE3QVxcdTkxN0JcXHU5MTdDXFx1OTE4MFwiLCA0LCBcIlxcdTkxODZcXHU5MTg4XFx1OTE4QVxcdTkxOEVcXHU5MThGXFx1OTE5M1wiLCA2LCBcIlxcdTkxOUNcIiwgNSwgXCJcXHU5MUE0XCIsIDUsIFwiXFx1OTFBQlxcdTkxQUNcXHU5MUIwXFx1OTFCMVxcdTkxQjJcXHU5MUIzXFx1OTFCNlxcdTkxQjdcXHU5MUI4XFx1OTFCOVxcdTkxQkJcIl0sXG4gICAgICBbXCJlMTgwXCIsIFwiXFx1OTFCQ1wiLCAxMCwgXCJcXHU5MUM4XFx1OTFDQlxcdTkxRDBcXHU5MUQyXCIsIDksIFwiXFx1OTFERFwiLCA4LCBcIlxcdTVFMzdcXHU1RTQ0XFx1NUU1NFxcdTVFNUJcXHU1RTVFXFx1NUU2MVxcdTVDOENcXHU1QzdBXFx1NUM4RFxcdTVDOTBcXHU1Qzk2XFx1NUM4OFxcdTVDOThcXHU1Qzk5XFx1NUM5MVxcdTVDOUFcXHU1QzlDXFx1NUNCNVxcdTVDQTJcXHU1Q0JEXFx1NUNBQ1xcdTVDQUJcXHU1Q0IxXFx1NUNBM1xcdTVDQzFcXHU1Q0I3XFx1NUNDNFxcdTVDRDJcXHU1Q0U0XFx1NUNDQlxcdTVDRTVcXHU1RDAyXFx1NUQwM1xcdTVEMjdcXHU1RDI2XFx1NUQyRVxcdTVEMjRcXHU1RDFFXFx1NUQwNlxcdTVEMUJcXHU1RDU4XFx1NUQzRVxcdTVEMzRcXHU1RDNEXFx1NUQ2Q1xcdTVENUJcXHU1RDZGXFx1NUQ1RFxcdTVENkJcXHU1RDRCXFx1NUQ0QVxcdTVENjlcXHU1RDc0XFx1NUQ4MlxcdTVEOTlcXHU1RDlEXFx1OEM3M1xcdTVEQjdcXHU1REM1XFx1NUY3M1xcdTVGNzdcXHU1RjgyXFx1NUY4N1xcdTVGODlcXHU1RjhDXFx1NUY5NVxcdTVGOTlcXHU1RjlDXFx1NUZBOFxcdTVGQURcXHU1RkI1XFx1NUZCQ1xcdTg4NjJcXHU1RjYxXFx1NzJBRFxcdTcyQjBcXHU3MkI0XFx1NzJCN1xcdTcyQjhcXHU3MkMzXFx1NzJDMVxcdTcyQ0VcXHU3MkNEXFx1NzJEMlxcdTcyRThcXHU3MkVGXFx1NzJFOVxcdTcyRjJcXHU3MkY0XFx1NzJGN1xcdTczMDFcXHU3MkYzXFx1NzMwM1xcdTcyRkFcIl0sXG4gICAgICBbXCJlMjQwXCIsIFwiXFx1OTFFNlwiLCA2Ml0sXG4gICAgICBbXCJlMjgwXCIsIFwiXFx1OTIyNVwiLCAzMiwgXCJcXHU3MkZCXFx1NzMxN1xcdTczMTNcXHU3MzIxXFx1NzMwQVxcdTczMUVcXHU3MzFEXFx1NzMxNVxcdTczMjJcXHU3MzM5XFx1NzMyNVxcdTczMkNcXHU3MzM4XFx1NzMzMVxcdTczNTBcXHU3MzREXFx1NzM1N1xcdTczNjBcXHU3MzZDXFx1NzM2RlxcdTczN0VcXHU4MjFCXFx1NTkyNVxcdTk4RTdcXHU1OTI0XFx1NTkwMlxcdTk5NjNcXHU5OTY3XCIsIDUsIFwiXFx1OTk3NFxcdTk5NzdcXHU5OTdEXFx1OTk4MFxcdTk5ODRcXHU5OTg3XFx1OTk4QVxcdTk5OERcXHU5OTkwXFx1OTk5MVxcdTk5OTNcXHU5OTk0XFx1OTk5NVxcdTVFODBcXHU1RTkxXFx1NUU4QlxcdTVFOTZcXHU1RUE1XFx1NUVBMFxcdTVFQjlcXHU1RUI1XFx1NUVCRVxcdTVFQjNcXHU4RDUzXFx1NUVEMlxcdTVFRDFcXHU1RURCXFx1NUVFOFxcdTVFRUFcXHU4MUJBXFx1NUZDNFxcdTVGQzlcXHU1RkQ2XFx1NUZDRlxcdTYwMDNcXHU1RkVFXFx1NjAwNFxcdTVGRTFcXHU1RkU0XFx1NUZGRVxcdTYwMDVcXHU2MDA2XFx1NUZFQVxcdTVGRURcXHU1RkY4XFx1NjAxOVxcdTYwMzVcXHU2MDI2XFx1NjAxQlxcdTYwMEZcXHU2MDBEXFx1NjAyOVxcdTYwMkJcXHU2MDBBXFx1NjAzRlxcdTYwMjFcXHU2MDc4XFx1NjA3OVxcdTYwN0JcXHU2MDdBXFx1NjA0MlwiXSxcbiAgICAgIFtcImUzNDBcIiwgXCJcXHU5MjQ2XCIsIDQ1LCBcIlxcdTkyNzVcIiwgMTZdLFxuICAgICAgW1wiZTM4MFwiLCBcIlxcdTkyODZcIiwgNywgXCJcXHU5MjhGXCIsIDI0LCBcIlxcdTYwNkFcXHU2MDdEXFx1NjA5NlxcdTYwOUFcXHU2MEFEXFx1NjA5RFxcdTYwODNcXHU2MDkyXFx1NjA4Q1xcdTYwOUJcXHU2MEVDXFx1NjBCQlxcdTYwQjFcXHU2MEREXFx1NjBEOFxcdTYwQzZcXHU2MERBXFx1NjBCNFxcdTYxMjBcXHU2MTI2XFx1NjExNVxcdTYxMjNcXHU2MEY0XFx1NjEwMFxcdTYxMEVcXHU2MTJCXFx1NjE0QVxcdTYxNzVcXHU2MUFDXFx1NjE5NFxcdTYxQTdcXHU2MUI3XFx1NjFENFxcdTYxRjVcXHU1RkREXFx1OTZCM1xcdTk1RTlcXHU5NUVCXFx1OTVGMVxcdTk1RjNcXHU5NUY1XFx1OTVGNlxcdTk1RkNcXHU5NUZFXFx1OTYwM1xcdTk2MDRcXHU5NjA2XFx1OTYwOFxcdTk2MEFcXHU5NjBCXFx1OTYwQ1xcdTk2MERcXHU5NjBGXFx1OTYxMlxcdTk2MTVcXHU5NjE2XFx1OTYxN1xcdTk2MTlcXHU5NjFBXFx1NEUyQ1xcdTcyM0ZcXHU2MjE1XFx1NkMzNVxcdTZDNTRcXHU2QzVDXFx1NkM0QVxcdTZDQTNcXHU2Qzg1XFx1NkM5MFxcdTZDOTRcXHU2QzhDXFx1NkM2OFxcdTZDNjlcXHU2Qzc0XFx1NkM3NlxcdTZDODZcXHU2Q0E5XFx1NkNEMFxcdTZDRDRcXHU2Q0FEXFx1NkNGN1xcdTZDRjhcXHU2Q0YxXFx1NkNEN1xcdTZDQjJcXHU2Q0UwXFx1NkNENlxcdTZDRkFcXHU2Q0VCXFx1NkNFRVxcdTZDQjFcXHU2Q0QzXFx1NkNFRlxcdTZDRkVcIl0sXG4gICAgICBbXCJlNDQwXCIsIFwiXFx1OTJBOFwiLCA1LCBcIlxcdTkyQUZcIiwgMjQsIFwiXFx1OTJDOVwiLCAzMV0sXG4gICAgICBbXCJlNDgwXCIsIFwiXFx1OTJFOVwiLCAzMiwgXCJcXHU2RDM5XFx1NkQyN1xcdTZEMENcXHU2RDQzXFx1NkQ0OFxcdTZEMDdcXHU2RDA0XFx1NkQxOVxcdTZEMEVcXHU2RDJCXFx1NkQ0RFxcdTZEMkVcXHU2RDM1XFx1NkQxQVxcdTZENEZcXHU2RDUyXFx1NkQ1NFxcdTZEMzNcXHU2RDkxXFx1NkQ2RlxcdTZEOUVcXHU2REEwXFx1NkQ1RVxcdTZEOTNcXHU2RDk0XFx1NkQ1Q1xcdTZENjBcXHU2RDdDXFx1NkQ2M1xcdTZFMUFcXHU2REM3XFx1NkRDNVxcdTZEREVcXHU2RTBFXFx1NkRCRlxcdTZERTBcXHU2RTExXFx1NkRFNlxcdTZERERcXHU2REQ5XFx1NkUxNlxcdTZEQUJcXHU2RTBDXFx1NkRBRVxcdTZFMkJcXHU2RTZFXFx1NkU0RVxcdTZFNkJcXHU2RUIyXFx1NkU1RlxcdTZFODZcXHU2RTUzXFx1NkU1NFxcdTZFMzJcXHU2RTI1XFx1NkU0NFxcdTZFREZcXHU2RUIxXFx1NkU5OFxcdTZFRTBcXHU2RjJEXFx1NkVFMlxcdTZFQTVcXHU2RUE3XFx1NkVCRFxcdTZFQkJcXHU2RUI3XFx1NkVEN1xcdTZFQjRcXHU2RUNGXFx1NkU4RlxcdTZFQzJcXHU2RTlGXFx1NkY2MlxcdTZGNDZcXHU2RjQ3XFx1NkYyNFxcdTZGMTVcXHU2RUY5XFx1NkYyRlxcdTZGMzZcXHU2RjRCXFx1NkY3NFxcdTZGMkFcXHU2RjA5XFx1NkYyOVxcdTZGODlcXHU2RjhEXFx1NkY4Q1xcdTZGNzhcXHU2RjcyXFx1NkY3Q1xcdTZGN0FcXHU2RkQxXCJdLFxuICAgICAgW1wiZTU0MFwiLCBcIlxcdTkzMEFcIiwgNTEsIFwiXFx1OTMzRlwiLCAxMF0sXG4gICAgICBbXCJlNTgwXCIsIFwiXFx1OTM0QVwiLCAzMSwgXCJcXHU5MzZCXFx1NkZDOVxcdTZGQTdcXHU2RkI5XFx1NkZCNlxcdTZGQzJcXHU2RkUxXFx1NkZFRVxcdTZGREVcXHU2RkUwXFx1NkZFRlxcdTcwMUFcXHU3MDIzXFx1NzAxQlxcdTcwMzlcXHU3MDM1XFx1NzA0RlxcdTcwNUVcXHU1QjgwXFx1NUI4NFxcdTVCOTVcXHU1QjkzXFx1NUJBNVxcdTVCQjhcXHU3NTJGXFx1OUE5RVxcdTY0MzRcXHU1QkU0XFx1NUJFRVxcdTg5MzBcXHU1QkYwXFx1OEU0N1xcdThCMDdcXHU4RkI2XFx1OEZEM1xcdThGRDVcXHU4RkU1XFx1OEZFRVxcdThGRTRcXHU4RkU5XFx1OEZFNlxcdThGRjNcXHU4RkU4XFx1OTAwNVxcdTkwMDRcXHU5MDBCXFx1OTAyNlxcdTkwMTFcXHU5MDBEXFx1OTAxNlxcdTkwMjFcXHU5MDM1XFx1OTAzNlxcdTkwMkRcXHU5MDJGXFx1OTA0NFxcdTkwNTFcXHU5MDUyXFx1OTA1MFxcdTkwNjhcXHU5MDU4XFx1OTA2MlxcdTkwNUJcXHU2NkI5XFx1OTA3NFxcdTkwN0RcXHU5MDgyXFx1OTA4OFxcdTkwODNcXHU5MDhCXFx1NUY1MFxcdTVGNTdcXHU1RjU2XFx1NUY1OFxcdTVDM0JcXHU1NEFCXFx1NUM1MFxcdTVDNTlcXHU1QjcxXFx1NUM2M1xcdTVDNjZcXHU3RkJDXFx1NUYyQVxcdTVGMjlcXHU1RjJEXFx1ODI3NFxcdTVGM0NcXHU5QjNCXFx1NUM2RVxcdTU5ODFcXHU1OTgzXFx1NTk4RFxcdTU5QTlcXHU1OUFBXFx1NTlBM1wiXSxcbiAgICAgIFtcImU2NDBcIiwgXCJcXHU5MzZDXCIsIDM0LCBcIlxcdTkzOTBcIiwgMjddLFxuICAgICAgW1wiZTY4MFwiLCBcIlxcdTkzQUNcIiwgMjksIFwiXFx1OTNDQlxcdTkzQ0NcXHU5M0NEXFx1NTk5N1xcdTU5Q0FcXHU1OUFCXFx1NTk5RVxcdTU5QTRcXHU1OUQyXFx1NTlCMlxcdTU5QUZcXHU1OUQ3XFx1NTlCRVxcdTVBMDVcXHU1QTA2XFx1NTlERFxcdTVBMDhcXHU1OUUzXFx1NTlEOFxcdTU5RjlcXHU1QTBDXFx1NUEwOVxcdTVBMzJcXHU1QTM0XFx1NUExMVxcdTVBMjNcXHU1QTEzXFx1NUE0MFxcdTVBNjdcXHU1QTRBXFx1NUE1NVxcdTVBM0NcXHU1QTYyXFx1NUE3NVxcdTgwRUNcXHU1QUFBXFx1NUE5QlxcdTVBNzdcXHU1QTdBXFx1NUFCRVxcdTVBRUJcXHU1QUIyXFx1NUFEMlxcdTVBRDRcXHU1QUI4XFx1NUFFMFxcdTVBRTNcXHU1QUYxXFx1NUFENlxcdTVBRTZcXHU1QUQ4XFx1NUFEQ1xcdTVCMDlcXHU1QjE3XFx1NUIxNlxcdTVCMzJcXHU1QjM3XFx1NUI0MFxcdTVDMTVcXHU1QzFDXFx1NUI1QVxcdTVCNjVcXHU1QjczXFx1NUI1MVxcdTVCNTNcXHU1QjYyXFx1OUE3NVxcdTlBNzdcXHU5QTc4XFx1OUE3QVxcdTlBN0ZcXHU5QTdEXFx1OUE4MFxcdTlBODFcXHU5QTg1XFx1OUE4OFxcdTlBOEFcXHU5QTkwXFx1OUE5MlxcdTlBOTNcXHU5QTk2XFx1OUE5OFxcdTlBOUJcXHU5QTlDXFx1OUE5RFxcdTlBOUZcXHU5QUEwXFx1OUFBMlxcdTlBQTNcXHU5QUE1XFx1OUFBN1xcdTdFOUZcXHU3RUExXFx1N0VBM1xcdTdFQTVcXHU3RUE4XFx1N0VBOVwiXSxcbiAgICAgIFtcImU3NDBcIiwgXCJcXHU5M0NFXCIsIDcsIFwiXFx1OTNEN1wiLCA1NF0sXG4gICAgICBbXCJlNzgwXCIsIFwiXFx1OTQwRVwiLCAzMiwgXCJcXHU3RUFEXFx1N0VCMFxcdTdFQkVcXHU3RUMwXFx1N0VDMVxcdTdFQzJcXHU3RUM5XFx1N0VDQlxcdTdFQ0NcXHU3RUQwXFx1N0VENFxcdTdFRDdcXHU3RURCXFx1N0VFMFxcdTdFRTFcXHU3RUU4XFx1N0VFQlxcdTdFRUVcXHU3RUVGXFx1N0VGMVxcdTdFRjJcXHU3RjBEXFx1N0VGNlxcdTdFRkFcXHU3RUZCXFx1N0VGRVxcdTdGMDFcXHU3RjAyXFx1N0YwM1xcdTdGMDdcXHU3RjA4XFx1N0YwQlxcdTdGMENcXHU3RjBGXFx1N0YxMVxcdTdGMTJcXHU3RjE3XFx1N0YxOVxcdTdGMUNcXHU3RjFCXFx1N0YxRlxcdTdGMjFcIiwgNiwgXCJcXHU3RjJBXFx1N0YyQlxcdTdGMkNcXHU3RjJEXFx1N0YyRlwiLCA0LCBcIlxcdTdGMzVcXHU1RTdBXFx1NzU3RlxcdTVEREJcXHU3NTNFXFx1OTA5NVxcdTczOEVcXHU3MzkxXFx1NzNBRVxcdTczQTJcXHU3MzlGXFx1NzNDRlxcdTczQzJcXHU3M0QxXFx1NzNCN1xcdTczQjNcXHU3M0MwXFx1NzNDOVxcdTczQzhcXHU3M0U1XFx1NzNEOVxcdTk4N0NcXHU3NDBBXFx1NzNFOVxcdTczRTdcXHU3M0RFXFx1NzNCQVxcdTczRjJcXHU3NDBGXFx1NzQyQVxcdTc0NUJcXHU3NDI2XFx1NzQyNVxcdTc0MjhcXHU3NDMwXFx1NzQyRVxcdTc0MkNcIl0sXG4gICAgICBbXCJlODQwXCIsIFwiXFx1OTQyRlwiLCAxNCwgXCJcXHU5NDNGXCIsIDQzLCBcIlxcdTk0NkNcXHU5NDZEXFx1OTQ2RVxcdTk0NkZcIl0sXG4gICAgICBbXCJlODgwXCIsIFwiXFx1OTQ3MFwiLCAyMCwgXCJcXHU5NDkxXFx1OTQ5NlxcdTk0OThcXHU5NEM3XFx1OTRDRlxcdTk0RDNcXHU5NEQ0XFx1OTREQVxcdTk0RTZcXHU5NEZCXFx1OTUxQ1xcdTk1MjBcXHU3NDFCXFx1NzQxQVxcdTc0NDFcXHU3NDVDXFx1NzQ1N1xcdTc0NTVcXHU3NDU5XFx1NzQ3N1xcdTc0NkRcXHU3NDdFXFx1NzQ5Q1xcdTc0OEVcXHU3NDgwXFx1NzQ4MVxcdTc0ODdcXHU3NDhCXFx1NzQ5RVxcdTc0QThcXHU3NEE5XFx1NzQ5MFxcdTc0QTdcXHU3NEQyXFx1NzRCQVxcdTk3RUFcXHU5N0VCXFx1OTdFQ1xcdTY3NENcXHU2NzUzXFx1Njc1RVxcdTY3NDhcXHU2NzY5XFx1NjdBNVxcdTY3ODdcXHU2NzZBXFx1Njc3M1xcdTY3OThcXHU2N0E3XFx1Njc3NVxcdTY3QThcXHU2NzlFXFx1NjdBRFxcdTY3OEJcXHU2Nzc3XFx1Njc3Q1xcdTY3RjBcXHU2ODA5XFx1NjdEOFxcdTY4MEFcXHU2N0U5XFx1NjdCMFxcdTY4MENcXHU2N0Q5XFx1NjdCNVxcdTY3REFcXHU2N0IzXFx1NjdERFxcdTY4MDBcXHU2N0MzXFx1NjdCOFxcdTY3RTJcXHU2ODBFXFx1NjdDMVxcdTY3RkRcXHU2ODMyXFx1NjgzM1xcdTY4NjBcXHU2ODYxXFx1Njg0RVxcdTY4NjJcXHU2ODQ0XFx1Njg2NFxcdTY4ODNcXHU2ODFEXFx1Njg1NVxcdTY4NjZcXHU2ODQxXFx1Njg2N1xcdTY4NDBcXHU2ODNFXFx1Njg0QVxcdTY4NDlcXHU2ODI5XFx1NjhCNVxcdTY4OEZcXHU2ODc0XFx1Njg3N1xcdTY4OTNcXHU2ODZCXFx1NjhDMlxcdTY5NkVcXHU2OEZDXFx1NjkxRlxcdTY5MjBcXHU2OEY5XCJdLFxuICAgICAgW1wiZTk0MFwiLCBcIlxcdTk1MjdcXHU5NTMzXFx1OTUzRFxcdTk1NDNcXHU5NTQ4XFx1OTU0QlxcdTk1NTVcXHU5NTVBXFx1OTU2MFxcdTk1NkVcXHU5NTc0XFx1OTU3NVxcdTk1NzdcIiwgNywgXCJcXHU5NTgwXCIsIDQyXSxcbiAgICAgIFtcImU5ODBcIiwgXCJcXHU5NUFCXCIsIDMyLCBcIlxcdTY5MjRcXHU2OEYwXFx1NjkwQlxcdTY5MDFcXHU2OTU3XFx1NjhFM1xcdTY5MTBcXHU2OTcxXFx1NjkzOVxcdTY5NjBcXHU2OTQyXFx1Njk1RFxcdTY5ODRcXHU2OTZCXFx1Njk4MFxcdTY5OThcXHU2OTc4XFx1NjkzNFxcdTY5Q0NcXHU2OTg3XFx1Njk4OFxcdTY5Q0VcXHU2OTg5XFx1Njk2NlxcdTY5NjNcXHU2OTc5XFx1Njk5QlxcdTY5QTdcXHU2OUJCXFx1NjlBQlxcdTY5QURcXHU2OUQ0XFx1NjlCMVxcdTY5QzFcXHU2OUNBXFx1NjlERlxcdTY5OTVcXHU2OUUwXFx1Njk4RFxcdTY5RkZcXHU2QTJGXFx1NjlFRFxcdTZBMTdcXHU2QTE4XFx1NkE2NVxcdTY5RjJcXHU2QTQ0XFx1NkEzRVxcdTZBQTBcXHU2QTUwXFx1NkE1QlxcdTZBMzVcXHU2QThFXFx1NkE3OVxcdTZBM0RcXHU2QTI4XFx1NkE1OFxcdTZBN0NcXHU2QTkxXFx1NkE5MFxcdTZBQTlcXHU2QTk3XFx1NkFBQlxcdTczMzdcXHU3MzUyXFx1NkI4MVxcdTZCODJcXHU2Qjg3XFx1NkI4NFxcdTZCOTJcXHU2QjkzXFx1NkI4RFxcdTZCOUFcXHU2QjlCXFx1NkJBMVxcdTZCQUFcXHU4RjZCXFx1OEY2RFxcdThGNzFcXHU4RjcyXFx1OEY3M1xcdThGNzVcXHU4Rjc2XFx1OEY3OFxcdThGNzdcXHU4Rjc5XFx1OEY3QVxcdThGN0NcXHU4RjdFXFx1OEY4MVxcdThGODJcXHU4Rjg0XFx1OEY4N1xcdThGOEJcIl0sXG4gICAgICBbXCJlYTQwXCIsIFwiXFx1OTVDQ1wiLCAyNywgXCJcXHU5NUVDXFx1OTVGRlxcdTk2MDdcXHU5NjEzXFx1OTYxOFxcdTk2MUJcXHU5NjFFXFx1OTYyMFxcdTk2MjNcIiwgNiwgXCJcXHU5NjJCXFx1OTYyQ1xcdTk2MkRcXHU5NjJGXFx1OTYzMFxcdTk2MzdcXHU5NjM4XFx1OTYzOVxcdTk2M0FcXHU5NjNFXFx1OTY0MVxcdTk2NDNcXHU5NjRBXFx1OTY0RVxcdTk2NEZcXHU5NjUxXFx1OTY1MlxcdTk2NTNcXHU5NjU2XFx1OTY1N1wiXSxcbiAgICAgIFtcImVhODBcIiwgXCJcXHU5NjU4XFx1OTY1OVxcdTk2NUFcXHU5NjVDXFx1OTY1RFxcdTk2NUVcXHU5NjYwXFx1OTY2M1xcdTk2NjVcXHU5NjY2XFx1OTY2QlxcdTk2NkRcIiwgNCwgXCJcXHU5NjczXFx1OTY3OFwiLCAxMiwgXCJcXHU5Njg3XFx1OTY4OVxcdTk2OEFcXHU4RjhEXFx1OEY4RVxcdThGOEZcXHU4Rjk4XFx1OEY5QVxcdThFQ0VcXHU2MjBCXFx1NjIxN1xcdTYyMUJcXHU2MjFGXFx1NjIyMlxcdTYyMjFcXHU2MjI1XFx1NjIyNFxcdTYyMkNcXHU4MUU3XFx1NzRFRlxcdTc0RjRcXHU3NEZGXFx1NzUwRlxcdTc1MTFcXHU3NTEzXFx1NjUzNFxcdTY1RUVcXHU2NUVGXFx1NjVGMFxcdTY2MEFcXHU2NjE5XFx1Njc3MlxcdTY2MDNcXHU2NjE1XFx1NjYwMFxcdTcwODVcXHU2NkY3XFx1NjYxRFxcdTY2MzRcXHU2NjMxXFx1NjYzNlxcdTY2MzVcXHU4MDA2XFx1NjY1RlxcdTY2NTRcXHU2NjQxXFx1NjY0RlxcdTY2NTZcXHU2NjYxXFx1NjY1N1xcdTY2NzdcXHU2Njg0XFx1NjY4Q1xcdTY2QTdcXHU2NjlEXFx1NjZCRVxcdTY2REJcXHU2NkRDXFx1NjZFNlxcdTY2RTlcXHU4RDMyXFx1OEQzM1xcdThEMzZcXHU4RDNCXFx1OEQzRFxcdThENDBcXHU4RDQ1XFx1OEQ0NlxcdThENDhcXHU4RDQ5XFx1OEQ0N1xcdThENERcXHU4RDU1XFx1OEQ1OVxcdTg5QzdcXHU4OUNBXFx1ODlDQlxcdTg5Q0NcXHU4OUNFXFx1ODlDRlxcdTg5RDBcXHU4OUQxXFx1NzI2RVxcdTcyOUZcXHU3MjVEXFx1NzI2NlxcdTcyNkZcXHU3MjdFXFx1NzI3RlxcdTcyODRcXHU3MjhCXFx1NzI4RFxcdTcyOEZcXHU3MjkyXFx1NjMwOFxcdTYzMzJcXHU2M0IwXCJdLFxuICAgICAgW1wiZWI0MFwiLCBcIlxcdTk2OENcXHU5NjhFXFx1OTY5MVxcdTk2OTJcXHU5NjkzXFx1OTY5NVxcdTk2OTZcXHU5NjlBXFx1OTY5QlxcdTk2OURcIiwgOSwgXCJcXHU5NkE4XCIsIDcsIFwiXFx1OTZCMVxcdTk2QjJcXHU5NkI0XFx1OTZCNVxcdTk2QjdcXHU5NkI4XFx1OTZCQVxcdTk2QkJcXHU5NkJGXFx1OTZDMlxcdTk2QzNcXHU5NkM4XFx1OTZDQVxcdTk2Q0JcXHU5NkQwXFx1OTZEMVxcdTk2RDNcXHU5NkQ0XFx1OTZENlwiLCA5LCBcIlxcdTk2RTFcIiwgNiwgXCJcXHU5NkVCXCJdLFxuICAgICAgW1wiZWI4MFwiLCBcIlxcdTk2RUNcXHU5NkVEXFx1OTZFRVxcdTk2RjBcXHU5NkYxXFx1OTZGMlxcdTk2RjRcXHU5NkY1XFx1OTZGOFxcdTk2RkFcXHU5NkZCXFx1OTZGQ1xcdTk2RkRcXHU5NkZGXFx1OTcwMlxcdTk3MDNcXHU5NzA1XFx1OTcwQVxcdTk3MEJcXHU5NzBDXFx1OTcxMFxcdTk3MTFcXHU5NzEyXFx1OTcxNFxcdTk3MTVcXHU5NzE3XCIsIDQsIFwiXFx1OTcxRFxcdTk3MUZcXHU5NzIwXFx1NjQzRlxcdTY0RDhcXHU4MDA0XFx1NkJFQVxcdTZCRjNcXHU2QkZEXFx1NkJGNVxcdTZCRjlcXHU2QzA1XFx1NkMwN1xcdTZDMDZcXHU2QzBEXFx1NkMxNVxcdTZDMThcXHU2QzE5XFx1NkMxQVxcdTZDMjFcXHU2QzI5XFx1NkMyNFxcdTZDMkFcXHU2QzMyXFx1NjUzNVxcdTY1NTVcXHU2NTZCXFx1NzI0RFxcdTcyNTJcXHU3MjU2XFx1NzIzMFxcdTg2NjJcXHU1MjE2XFx1ODA5RlxcdTgwOUNcXHU4MDkzXFx1ODBCQ1xcdTY3MEFcXHU4MEJEXFx1ODBCMVxcdTgwQUJcXHU4MEFEXFx1ODBCNFxcdTgwQjdcXHU4MEU3XFx1ODBFOFxcdTgwRTlcXHU4MEVBXFx1ODBEQlxcdTgwQzJcXHU4MEM0XFx1ODBEOVxcdTgwQ0RcXHU4MEQ3XFx1NjcxMFxcdTgwRERcXHU4MEVCXFx1ODBGMVxcdTgwRjRcXHU4MEVEXFx1ODEwRFxcdTgxMEVcXHU4MEYyXFx1ODBGQ1xcdTY3MTVcXHU4MTEyXFx1OEM1QVxcdTgxMzZcXHU4MTFFXFx1ODEyQ1xcdTgxMThcXHU4MTMyXFx1ODE0OFxcdTgxNENcXHU4MTUzXFx1ODE3NFxcdTgxNTlcXHU4MTVBXFx1ODE3MVxcdTgxNjBcXHU4MTY5XFx1ODE3Q1xcdTgxN0RcXHU4MTZEXFx1ODE2N1xcdTU4NERcXHU1QUI1XFx1ODE4OFxcdTgxODJcXHU4MTkxXFx1NkVENVxcdTgxQTNcXHU4MUFBXFx1ODFDQ1xcdTY3MjZcXHU4MUNBXFx1ODFCQlwiXSxcbiAgICAgIFtcImVjNDBcIiwgXCJcXHU5NzIxXCIsIDgsIFwiXFx1OTcyQlxcdTk3MkNcXHU5NzJFXFx1OTcyRlxcdTk3MzFcXHU5NzMzXCIsIDQsIFwiXFx1OTczQVxcdTk3M0JcXHU5NzNDXFx1OTczRFxcdTk3M0ZcIiwgMTgsIFwiXFx1OTc1NFxcdTk3NTVcXHU5NzU3XFx1OTc1OFxcdTk3NUFcXHU5NzVDXFx1OTc1RFxcdTk3NUZcXHU5NzYzXFx1OTc2NFxcdTk3NjZcXHU5NzY3XFx1OTc2OFxcdTk3NkFcIiwgN10sXG4gICAgICBbXCJlYzgwXCIsIFwiXFx1OTc3MlxcdTk3NzVcXHU5Nzc3XCIsIDQsIFwiXFx1OTc3RFwiLCA3LCBcIlxcdTk3ODZcIiwgNCwgXCJcXHU5NzhDXFx1OTc4RVxcdTk3OEZcXHU5NzkwXFx1OTc5M1xcdTk3OTVcXHU5Nzk2XFx1OTc5N1xcdTk3OTlcIiwgNCwgXCJcXHU4MUMxXFx1ODFBNlxcdTZCMjRcXHU2QjM3XFx1NkIzOVxcdTZCNDNcXHU2QjQ2XFx1NkI1OVxcdTk4RDFcXHU5OEQyXFx1OThEM1xcdTk4RDVcXHU5OEQ5XFx1OThEQVxcdTZCQjNcXHU1RjQwXFx1NkJDMlxcdTg5RjNcXHU2NTkwXFx1OUY1MVxcdTY1OTNcXHU2NUJDXFx1NjVDNlxcdTY1QzRcXHU2NUMzXFx1NjVDQ1xcdTY1Q0VcXHU2NUQyXFx1NjVENlxcdTcwODBcXHU3MDlDXFx1NzA5NlxcdTcwOURcXHU3MEJCXFx1NzBDMFxcdTcwQjdcXHU3MEFCXFx1NzBCMVxcdTcwRThcXHU3MENBXFx1NzExMFxcdTcxMTNcXHU3MTE2XFx1NzEyRlxcdTcxMzFcXHU3MTczXFx1NzE1Q1xcdTcxNjhcXHU3MTQ1XFx1NzE3MlxcdTcxNEFcXHU3MTc4XFx1NzE3QVxcdTcxOThcXHU3MUIzXFx1NzFCNVxcdTcxQThcXHU3MUEwXFx1NzFFMFxcdTcxRDRcXHU3MUU3XFx1NzFGOVxcdTcyMURcXHU3MjI4XFx1NzA2Q1xcdTcxMThcXHU3MTY2XFx1NzFCOVxcdTYyM0VcXHU2MjNEXFx1NjI0M1xcdTYyNDhcXHU2MjQ5XFx1NzkzQlxcdTc5NDBcXHU3OTQ2XFx1Nzk0OVxcdTc5NUJcXHU3OTVDXFx1Nzk1M1xcdTc5NUFcXHU3OTYyXFx1Nzk1N1xcdTc5NjBcXHU3OTZGXFx1Nzk2N1xcdTc5N0FcXHU3OTg1XFx1Nzk4QVxcdTc5OUFcXHU3OUE3XFx1NzlCM1xcdTVGRDFcXHU1RkQwXCJdLFxuICAgICAgW1wiZWQ0MFwiLCBcIlxcdTk3OUVcXHU5NzlGXFx1OTdBMVxcdTk3QTJcXHU5N0E0XCIsIDYsIFwiXFx1OTdBQ1xcdTk3QUVcXHU5N0IwXFx1OTdCMVxcdTk3QjNcXHU5N0I1XCIsIDQ2XSxcbiAgICAgIFtcImVkODBcIiwgXCJcXHU5N0U0XFx1OTdFNVxcdTk3RThcXHU5N0VFXCIsIDQsIFwiXFx1OTdGNFxcdTk3RjdcIiwgMjMsIFwiXFx1NjAzQ1xcdTYwNURcXHU2MDVBXFx1NjA2N1xcdTYwNDFcXHU2MDU5XFx1NjA2M1xcdTYwQUJcXHU2MTA2XFx1NjEwRFxcdTYxNURcXHU2MUE5XFx1NjE5RFxcdTYxQ0JcXHU2MUQxXFx1NjIwNlxcdTgwODBcXHU4MDdGXFx1NkM5M1xcdTZDRjZcXHU2REZDXFx1NzdGNlxcdTc3RjhcXHU3ODAwXFx1NzgwOVxcdTc4MTdcXHU3ODE4XFx1NzgxMVxcdTY1QUJcXHU3ODJEXFx1NzgxQ1xcdTc4MURcXHU3ODM5XFx1NzgzQVxcdTc4M0JcXHU3ODFGXFx1NzgzQ1xcdTc4MjVcXHU3ODJDXFx1NzgyM1xcdTc4MjlcXHU3ODRFXFx1Nzg2RFxcdTc4NTZcXHU3ODU3XFx1NzgyNlxcdTc4NTBcXHU3ODQ3XFx1Nzg0Q1xcdTc4NkFcXHU3ODlCXFx1Nzg5M1xcdTc4OUFcXHU3ODg3XFx1Nzg5Q1xcdTc4QTFcXHU3OEEzXFx1NzhCMlxcdTc4QjlcXHU3OEE1XFx1NzhENFxcdTc4RDlcXHU3OEM5XFx1NzhFQ1xcdTc4RjJcXHU3OTA1XFx1NzhGNFxcdTc5MTNcXHU3OTI0XFx1NzkxRVxcdTc5MzRcXHU5RjlCXFx1OUVGOVxcdTlFRkJcXHU5RUZDXFx1NzZGMVxcdTc3MDRcXHU3NzBEXFx1NzZGOVxcdTc3MDdcXHU3NzA4XFx1NzcxQVxcdTc3MjJcXHU3NzE5XFx1NzcyRFxcdTc3MjZcXHU3NzM1XFx1NzczOFxcdTc3NTBcXHU3NzUxXFx1Nzc0N1xcdTc3NDNcXHU3NzVBXFx1Nzc2OFwiXSxcbiAgICAgIFtcImVlNDBcIiwgXCJcXHU5ODBGXCIsIDYyXSxcbiAgICAgIFtcImVlODBcIiwgXCJcXHU5ODRFXCIsIDMyLCBcIlxcdTc3NjJcXHU3NzY1XFx1Nzc3RlxcdTc3OERcXHU3NzdEXFx1Nzc4MFxcdTc3OENcXHU3NzkxXFx1Nzc5RlxcdTc3QTBcXHU3N0IwXFx1NzdCNVxcdTc3QkRcXHU3NTNBXFx1NzU0MFxcdTc1NEVcXHU3NTRCXFx1NzU0OFxcdTc1NUJcXHU3NTcyXFx1NzU3OVxcdTc1ODNcXHU3RjU4XFx1N0Y2MVxcdTdGNUZcXHU4QTQ4XFx1N0Y2OFxcdTdGNzRcXHU3RjcxXFx1N0Y3OVxcdTdGODFcXHU3RjdFXFx1NzZDRFxcdTc2RTVcXHU4ODMyXFx1OTQ4NVxcdTk0ODZcXHU5NDg3XFx1OTQ4QlxcdTk0OEFcXHU5NDhDXFx1OTQ4RFxcdTk0OEZcXHU5NDkwXFx1OTQ5NFxcdTk0OTdcXHU5NDk1XFx1OTQ5QVxcdTk0OUJcXHU5NDlDXFx1OTRBM1xcdTk0QTRcXHU5NEFCXFx1OTRBQVxcdTk0QURcXHU5NEFDXFx1OTRBRlxcdTk0QjBcXHU5NEIyXFx1OTRCNFxcdTk0QjZcIiwgNCwgXCJcXHU5NEJDXFx1OTRCRFxcdTk0QkZcXHU5NEM0XFx1OTRDOFwiLCA2LCBcIlxcdTk0RDBcXHU5NEQxXFx1OTREMlxcdTk0RDVcXHU5NEQ2XFx1OTREN1xcdTk0RDlcXHU5NEQ4XFx1OTREQlxcdTk0REVcXHU5NERGXFx1OTRFMFxcdTk0RTJcXHU5NEU0XFx1OTRFNVxcdTk0RTdcXHU5NEU4XFx1OTRFQVwiXSxcbiAgICAgIFtcImVmNDBcIiwgXCJcXHU5ODZGXCIsIDUsIFwiXFx1OTg4QlxcdTk4OEVcXHU5ODkyXFx1OTg5NVxcdTk4OTlcXHU5OEEzXFx1OThBOFwiLCAzNywgXCJcXHU5OENGXFx1OThEMFxcdTk4RDRcXHU5OEQ2XFx1OThEN1xcdTk4REJcXHU5OERDXFx1OThERFxcdTk4RTBcIiwgNF0sXG4gICAgICBbXCJlZjgwXCIsIFwiXFx1OThFNVxcdTk4RTZcXHU5OEU5XCIsIDMwLCBcIlxcdTk0RTlcXHU5NEVCXFx1OTRFRVxcdTk0RUZcXHU5NEYzXFx1OTRGNFxcdTk0RjVcXHU5NEY3XFx1OTRGOVxcdTk0RkNcXHU5NEZEXFx1OTRGRlxcdTk1MDNcXHU5NTAyXFx1OTUwNlxcdTk1MDdcXHU5NTA5XFx1OTUwQVxcdTk1MERcXHU5NTBFXFx1OTUwRlxcdTk1MTJcIiwgNCwgXCJcXHU5NTE4XFx1OTUxQlxcdTk1MURcXHU5NTFFXFx1OTUxRlxcdTk1MjJcXHU5NTJBXFx1OTUyQlxcdTk1MjlcXHU5NTJDXFx1OTUzMVxcdTk1MzJcXHU5NTM0XFx1OTUzNlxcdTk1MzdcXHU5NTM4XFx1OTUzQ1xcdTk1M0VcXHU5NTNGXFx1OTU0MlxcdTk1MzVcXHU5NTQ0XFx1OTU0NVxcdTk1NDZcXHU5NTQ5XFx1OTU0Q1xcdTk1NEVcXHU5NTRGXFx1OTU1MlxcdTk1NTNcXHU5NTU0XFx1OTU1NlxcdTk1NTdcXHU5NTU4XFx1OTU1OVxcdTk1NUJcXHU5NTVFXFx1OTU1RlxcdTk1NURcXHU5NTYxXFx1OTU2MlxcdTk1NjRcIiwgOCwgXCJcXHU5NTZGXFx1OTU3MVxcdTk1NzJcXHU5NTczXFx1OTUzQVxcdTc3RTdcXHU3N0VDXFx1OTZDOVxcdTc5RDVcXHU3OUVEXFx1NzlFM1xcdTc5RUJcXHU3QTA2XFx1NUQ0N1xcdTdBMDNcXHU3QTAyXFx1N0ExRVxcdTdBMTRcIl0sXG4gICAgICBbXCJmMDQwXCIsIFwiXFx1OTkwOFwiLCA0LCBcIlxcdTk5MEVcXHU5OTBGXFx1OTkxMVwiLCAyOCwgXCJcXHU5OTJGXCIsIDI2XSxcbiAgICAgIFtcImYwODBcIiwgXCJcXHU5OTRBXCIsIDksIFwiXFx1OTk1NlwiLCAxMiwgXCJcXHU5OTY0XFx1OTk2NlxcdTk5NzNcXHU5OTc4XFx1OTk3OVxcdTk5N0JcXHU5OTdFXFx1OTk4MlxcdTk5ODNcXHU5OTg5XFx1N0EzOVxcdTdBMzdcXHU3QTUxXFx1OUVDRlxcdTk5QTVcXHU3QTcwXFx1NzY4OFxcdTc2OEVcXHU3NjkzXFx1NzY5OVxcdTc2QTRcXHU3NERFXFx1NzRFMFxcdTc1MkNcXHU5RTIwXFx1OUUyMlxcdTlFMjhcIiwgNCwgXCJcXHU5RTMyXFx1OUUzMVxcdTlFMzZcXHU5RTM4XFx1OUUzN1xcdTlFMzlcXHU5RTNBXFx1OUUzRVxcdTlFNDFcXHU5RTQyXFx1OUU0NFxcdTlFNDZcXHU5RTQ3XFx1OUU0OFxcdTlFNDlcXHU5RTRCXFx1OUU0Q1xcdTlFNEVcXHU5RTUxXFx1OUU1NVxcdTlFNTdcXHU5RTVBXFx1OUU1QlxcdTlFNUNcXHU5RTVFXFx1OUU2M1xcdTlFNjZcIiwgNiwgXCJcXHU5RTcxXFx1OUU2RFxcdTlFNzNcXHU3NTkyXFx1NzU5NFxcdTc1OTZcXHU3NUEwXFx1NzU5RFxcdTc1QUNcXHU3NUEzXFx1NzVCM1xcdTc1QjRcXHU3NUI4XFx1NzVDNFxcdTc1QjFcXHU3NUIwXFx1NzVDM1xcdTc1QzJcXHU3NUQ2XFx1NzVDRFxcdTc1RTNcXHU3NUU4XFx1NzVFNlxcdTc1RTRcXHU3NUVCXFx1NzVFN1xcdTc2MDNcXHU3NUYxXFx1NzVGQ1xcdTc1RkZcXHU3NjEwXFx1NzYwMFxcdTc2MDVcXHU3NjBDXFx1NzYxN1xcdTc2MEFcXHU3NjI1XFx1NzYxOFxcdTc2MTVcXHU3NjE5XCJdLFxuICAgICAgW1wiZjE0MFwiLCBcIlxcdTk5OENcXHU5OThFXFx1OTk5QVwiLCAxMCwgXCJcXHU5OUE2XFx1OTlBN1xcdTk5QTlcIiwgNDddLFxuICAgICAgW1wiZjE4MFwiLCBcIlxcdTk5RDlcIiwgMzIsIFwiXFx1NzYxQlxcdTc2M0NcXHU3NjIyXFx1NzYyMFxcdTc2NDBcXHU3NjJEXFx1NzYzMFxcdTc2M0ZcXHU3NjM1XFx1NzY0M1xcdTc2M0VcXHU3NjMzXFx1NzY0RFxcdTc2NUVcXHU3NjU0XFx1NzY1Q1xcdTc2NTZcXHU3NjZCXFx1NzY2RlxcdTdGQ0FcXHU3QUU2XFx1N0E3OFxcdTdBNzlcXHU3QTgwXFx1N0E4NlxcdTdBODhcXHU3QTk1XFx1N0FBNlxcdTdBQTBcXHU3QUFDXFx1N0FBOFxcdTdBQURcXHU3QUIzXFx1ODg2NFxcdTg4NjlcXHU4ODcyXFx1ODg3RFxcdTg4N0ZcXHU4ODgyXFx1ODhBMlxcdTg4QzZcXHU4OEI3XFx1ODhCQ1xcdTg4QzlcXHU4OEUyXFx1ODhDRVxcdTg4RTNcXHU4OEU1XFx1ODhGMVxcdTg5MUFcXHU4OEZDXFx1ODhFOFxcdTg4RkVcXHU4OEYwXFx1ODkyMVxcdTg5MTlcXHU4OTEzXFx1ODkxQlxcdTg5MEFcXHU4OTM0XFx1ODkyQlxcdTg5MzZcXHU4OTQxXFx1ODk2NlxcdTg5N0JcXHU3NThCXFx1ODBFNVxcdTc2QjJcXHU3NkI0XFx1NzdEQ1xcdTgwMTJcXHU4MDE0XFx1ODAxNlxcdTgwMUNcXHU4MDIwXFx1ODAyMlxcdTgwMjVcXHU4MDI2XFx1ODAyN1xcdTgwMjlcXHU4MDI4XFx1ODAzMVxcdTgwMEJcXHU4MDM1XFx1ODA0M1xcdTgwNDZcXHU4MDREXFx1ODA1MlxcdTgwNjlcXHU4MDcxXFx1ODk4M1xcdTk4NzhcXHU5ODgwXFx1OTg4M1wiXSxcbiAgICAgIFtcImYyNDBcIiwgXCJcXHU5OUZBXCIsIDYyXSxcbiAgICAgIFtcImYyODBcIiwgXCJcXHU5QTM5XCIsIDMyLCBcIlxcdTk4ODlcXHU5ODhDXFx1OTg4RFxcdTk4OEZcXHU5ODk0XFx1OTg5QVxcdTk4OUJcXHU5ODlFXFx1OTg5RlxcdTk4QTFcXHU5OEEyXFx1OThBNVxcdTk4QTZcXHU4NjREXFx1ODY1NFxcdTg2NkNcXHU4NjZFXFx1ODY3RlxcdTg2N0FcXHU4NjdDXFx1ODY3QlxcdTg2QThcXHU4NjhEXFx1ODY4QlxcdTg2QUNcXHU4NjlEXFx1ODZBN1xcdTg2QTNcXHU4NkFBXFx1ODY5M1xcdTg2QTlcXHU4NkI2XFx1ODZDNFxcdTg2QjVcXHU4NkNFXFx1ODZCMFxcdTg2QkFcXHU4NkIxXFx1ODZBRlxcdTg2QzlcXHU4NkNGXFx1ODZCNFxcdTg2RTlcXHU4NkYxXFx1ODZGMlxcdTg2RURcXHU4NkYzXFx1ODZEMFxcdTg3MTNcXHU4NkRFXFx1ODZGNFxcdTg2REZcXHU4NkQ4XFx1ODZEMVxcdTg3MDNcXHU4NzA3XFx1ODZGOFxcdTg3MDhcXHU4NzBBXFx1ODcwRFxcdTg3MDlcXHU4NzIzXFx1ODczQlxcdTg3MUVcXHU4NzI1XFx1ODcyRVxcdTg3MUFcXHU4NzNFXFx1ODc0OFxcdTg3MzRcXHU4NzMxXFx1ODcyOVxcdTg3MzdcXHU4NzNGXFx1ODc4MlxcdTg3MjJcXHU4NzdEXFx1ODc3RVxcdTg3N0JcXHU4NzYwXFx1ODc3MFxcdTg3NENcXHU4NzZFXFx1ODc4QlxcdTg3NTNcXHU4NzYzXFx1ODc3Q1xcdTg3NjRcXHU4NzU5XFx1ODc2NVxcdTg3OTNcXHU4N0FGXFx1ODdBOFxcdTg3RDJcIl0sXG4gICAgICBbXCJmMzQwXCIsIFwiXFx1OUE1QVwiLCAxNywgXCJcXHU5QTcyXFx1OUE4M1xcdTlBODlcXHU5QThEXFx1OUE4RVxcdTlBOTRcXHU5QTk1XFx1OUE5OVxcdTlBQTZcXHU5QUE5XCIsIDYsIFwiXFx1OUFCMlxcdTlBQjNcXHU5QUI0XFx1OUFCNVxcdTlBQjlcXHU5QUJCXFx1OUFCRFxcdTlBQkVcXHU5QUJGXFx1OUFDM1xcdTlBQzRcXHU5QUM2XCIsIDQsIFwiXFx1OUFDRFxcdTlBQ0VcXHU5QUNGXFx1OUFEMFxcdTlBRDJcXHU5QUQ0XFx1OUFENVxcdTlBRDZcXHU5QUQ3XFx1OUFEOVxcdTlBREFcXHU5QURCXFx1OUFEQ1wiXSxcbiAgICAgIFtcImYzODBcIiwgXCJcXHU5QUREXFx1OUFERVxcdTlBRTBcXHU5QUUyXFx1OUFFM1xcdTlBRTRcXHU5QUU1XFx1OUFFN1xcdTlBRThcXHU5QUU5XFx1OUFFQVxcdTlBRUNcXHU5QUVFXFx1OUFGMFwiLCA4LCBcIlxcdTlBRkFcXHU5QUZDXCIsIDYsIFwiXFx1OUIwNFxcdTlCMDVcXHU5QjA2XFx1ODdDNlxcdTg3ODhcXHU4Nzg1XFx1ODdBRFxcdTg3OTdcXHU4NzgzXFx1ODdBQlxcdTg3RTVcXHU4N0FDXFx1ODdCNVxcdTg3QjNcXHU4N0NCXFx1ODdEM1xcdTg3QkRcXHU4N0QxXFx1ODdDMFxcdTg3Q0FcXHU4N0RCXFx1ODdFQVxcdTg3RTBcXHU4N0VFXFx1ODgxNlxcdTg4MTNcXHU4N0ZFXFx1ODgwQVxcdTg4MUJcXHU4ODIxXFx1ODgzOVxcdTg4M0NcXHU3RjM2XFx1N0Y0MlxcdTdGNDRcXHU3RjQ1XFx1ODIxMFxcdTdBRkFcXHU3QUZEXFx1N0IwOFxcdTdCMDNcXHU3QjA0XFx1N0IxNVxcdTdCMEFcXHU3QjJCXFx1N0IwRlxcdTdCNDdcXHU3QjM4XFx1N0IyQVxcdTdCMTlcXHU3QjJFXFx1N0IzMVxcdTdCMjBcXHU3QjI1XFx1N0IyNFxcdTdCMzNcXHU3QjNFXFx1N0IxRVxcdTdCNThcXHU3QjVBXFx1N0I0NVxcdTdCNzVcXHU3QjRDXFx1N0I1RFxcdTdCNjBcXHU3QjZFXFx1N0I3QlxcdTdCNjJcXHU3QjcyXFx1N0I3MVxcdTdCOTBcXHU3QkE2XFx1N0JBN1xcdTdCQjhcXHU3QkFDXFx1N0I5RFxcdTdCQThcXHU3Qjg1XFx1N0JBQVxcdTdCOUNcXHU3QkEyXFx1N0JBQlxcdTdCQjRcXHU3QkQxXFx1N0JDMVxcdTdCQ0NcXHU3QkREXFx1N0JEQVxcdTdCRTVcXHU3QkU2XFx1N0JFQVxcdTdDMENcXHU3QkZFXFx1N0JGQ1xcdTdDMEZcXHU3QzE2XFx1N0MwQlwiXSxcbiAgICAgIFtcImY0NDBcIiwgXCJcXHU5QjA3XFx1OUIwOVwiLCA1LCBcIlxcdTlCMTBcXHU5QjExXFx1OUIxMlxcdTlCMTRcIiwgMTAsIFwiXFx1OUIyMFxcdTlCMjFcXHU5QjIyXFx1OUIyNFwiLCAxMCwgXCJcXHU5QjMwXFx1OUIzMVxcdTlCMzNcIiwgNywgXCJcXHU5QjNEXFx1OUIzRVxcdTlCM0ZcXHU5QjQwXFx1OUI0NlxcdTlCNEFcXHU5QjRCXFx1OUI0Q1xcdTlCNEVcXHU5QjUwXFx1OUI1MlxcdTlCNTNcXHU5QjU1XCIsIDVdLFxuICAgICAgW1wiZjQ4MFwiLCBcIlxcdTlCNUJcIiwgMzIsIFwiXFx1N0MxRlxcdTdDMkFcXHU3QzI2XFx1N0MzOFxcdTdDNDFcXHU3QzQwXFx1ODFGRVxcdTgyMDFcXHU4MjAyXFx1ODIwNFxcdTgxRUNcXHU4ODQ0XFx1ODIyMVxcdTgyMjJcXHU4MjIzXFx1ODIyRFxcdTgyMkZcXHU4MjI4XFx1ODIyQlxcdTgyMzhcXHU4MjNCXFx1ODIzM1xcdTgyMzRcXHU4MjNFXFx1ODI0NFxcdTgyNDlcXHU4MjRCXFx1ODI0RlxcdTgyNUFcXHU4MjVGXFx1ODI2OFxcdTg4N0VcXHU4ODg1XFx1ODg4OFxcdTg4RDhcXHU4OERGXFx1ODk1RVxcdTdGOURcXHU3RjlGXFx1N0ZBN1xcdTdGQUZcXHU3RkIwXFx1N0ZCMlxcdTdDN0NcXHU2NTQ5XFx1N0M5MVxcdTdDOURcXHU3QzlDXFx1N0M5RVxcdTdDQTJcXHU3Q0IyXFx1N0NCQ1xcdTdDQkRcXHU3Q0MxXFx1N0NDN1xcdTdDQ0NcXHU3Q0NEXFx1N0NDOFxcdTdDQzVcXHU3Q0Q3XFx1N0NFOFxcdTgyNkVcXHU2NkE4XFx1N0ZCRlxcdTdGQ0VcXHU3RkQ1XFx1N0ZFNVxcdTdGRTFcXHU3RkU2XFx1N0ZFOVxcdTdGRUVcXHU3RkYzXFx1N0NGOFxcdTdENzdcXHU3REE2XFx1N0RBRVxcdTdFNDdcXHU3RTlCXFx1OUVCOFxcdTlFQjRcXHU4RDczXFx1OEQ4NFxcdThEOTRcXHU4RDkxXFx1OERCMVxcdThENjdcXHU4RDZEXFx1OEM0N1xcdThDNDlcXHU5MTRBXFx1OTE1MFxcdTkxNEVcXHU5MTRGXFx1OTE2NFwiXSxcbiAgICAgIFtcImY1NDBcIiwgXCJcXHU5QjdDXCIsIDYyXSxcbiAgICAgIFtcImY1ODBcIiwgXCJcXHU5QkJCXCIsIDMyLCBcIlxcdTkxNjJcXHU5MTYxXFx1OTE3MFxcdTkxNjlcXHU5MTZGXFx1OTE3RFxcdTkxN0VcXHU5MTcyXFx1OTE3NFxcdTkxNzlcXHU5MThDXFx1OTE4NVxcdTkxOTBcXHU5MThEXFx1OTE5MVxcdTkxQTJcXHU5MUEzXFx1OTFBQVxcdTkxQURcXHU5MUFFXFx1OTFBRlxcdTkxQjVcXHU5MUI0XFx1OTFCQVxcdThDNTVcXHU5RTdFXFx1OERCOFxcdThERUJcXHU4RTA1XFx1OEU1OVxcdThFNjlcXHU4REI1XFx1OERCRlxcdThEQkNcXHU4REJBXFx1OERDNFxcdThERDZcXHU4REQ3XFx1OEREQVxcdThEREVcXHU4RENFXFx1OERDRlxcdThEREJcXHU4REM2XFx1OERFQ1xcdThERjdcXHU4REY4XFx1OERFM1xcdThERjlcXHU4REZCXFx1OERFNFxcdThFMDlcXHU4REZEXFx1OEUxNFxcdThFMURcXHU4RTFGXFx1OEUyQ1xcdThFMkVcXHU4RTIzXFx1OEUyRlxcdThFM0FcXHU4RTQwXFx1OEUzOVxcdThFMzVcXHU4RTNEXFx1OEUzMVxcdThFNDlcXHU4RTQxXFx1OEU0MlxcdThFNTFcXHU4RTUyXFx1OEU0QVxcdThFNzBcXHU4RTc2XFx1OEU3Q1xcdThFNkZcXHU4RTc0XFx1OEU4NVxcdThFOEZcXHU4RTk0XFx1OEU5MFxcdThFOUNcXHU4RTlFXFx1OEM3OFxcdThDODJcXHU4QzhBXFx1OEM4NVxcdThDOThcXHU4Qzk0XFx1NjU5QlxcdTg5RDZcXHU4OURFXFx1ODlEQVxcdTg5RENcIl0sXG4gICAgICBbXCJmNjQwXCIsIFwiXFx1OUJEQ1wiLCA2Ml0sXG4gICAgICBbXCJmNjgwXCIsIFwiXFx1OUMxQlwiLCAzMiwgXCJcXHU4OUU1XFx1ODlFQlxcdTg5RUZcXHU4QTNFXFx1OEIyNlxcdTk3NTNcXHU5NkU5XFx1OTZGM1xcdTk2RUZcXHU5NzA2XFx1OTcwMVxcdTk3MDhcXHU5NzBGXFx1OTcwRVxcdTk3MkFcXHU5NzJEXFx1OTczMFxcdTk3M0VcXHU5RjgwXFx1OUY4M1xcdTlGODVcIiwgNSwgXCJcXHU5RjhDXFx1OUVGRVxcdTlGMEJcXHU5RjBEXFx1OTZCOVxcdTk2QkNcXHU5NkJEXFx1OTZDRVxcdTk2RDJcXHU3N0JGXFx1OTZFMFxcdTkyOEVcXHU5MkFFXFx1OTJDOFxcdTkzM0VcXHU5MzZBXFx1OTNDQVxcdTkzOEZcXHU5NDNFXFx1OTQ2QlxcdTlDN0ZcXHU5QzgyXFx1OUM4NVxcdTlDODZcXHU5Qzg3XFx1OUM4OFxcdTdBMjNcXHU5QzhCXFx1OUM4RVxcdTlDOTBcXHU5QzkxXFx1OUM5MlxcdTlDOTRcXHU5Qzk1XFx1OUM5QVxcdTlDOUJcXHU5QzlFXCIsIDUsIFwiXFx1OUNBNVwiLCA0LCBcIlxcdTlDQUJcXHU5Q0FEXFx1OUNBRVxcdTlDQjBcIiwgNywgXCJcXHU5Q0JBXFx1OUNCQlxcdTlDQkNcXHU5Q0JEXFx1OUNDNFxcdTlDQzVcXHU5Q0M2XFx1OUNDN1xcdTlDQ0FcXHU5Q0NCXCJdLFxuICAgICAgW1wiZjc0MFwiLCBcIlxcdTlDM0NcIiwgNjJdLFxuICAgICAgW1wiZjc4MFwiLCBcIlxcdTlDN0JcXHU5QzdEXFx1OUM3RVxcdTlDODBcXHU5QzgzXFx1OUM4NFxcdTlDODlcXHU5QzhBXFx1OUM4Q1xcdTlDOEZcXHU5QzkzXFx1OUM5NlxcdTlDOTdcXHU5Qzk4XFx1OUM5OVxcdTlDOURcXHU5Q0FBXFx1OUNBQ1xcdTlDQUZcXHU5Q0I5XFx1OUNCRVwiLCA0LCBcIlxcdTlDQzhcXHU5Q0M5XFx1OUNEMVxcdTlDRDJcXHU5Q0RBXFx1OUNEQlxcdTlDRTBcXHU5Q0UxXFx1OUNDQ1wiLCA0LCBcIlxcdTlDRDNcXHU5Q0Q0XFx1OUNENVxcdTlDRDdcXHU5Q0Q4XFx1OUNEOVxcdTlDRENcXHU5Q0REXFx1OUNERlxcdTlDRTJcXHU5NzdDXFx1OTc4NVxcdTk3OTFcXHU5NzkyXFx1OTc5NFxcdTk3QUZcXHU5N0FCXFx1OTdBM1xcdTk3QjJcXHU5N0I0XFx1OUFCMVxcdTlBQjBcXHU5QUI3XFx1OUU1OFxcdTlBQjZcXHU5QUJBXFx1OUFCQ1xcdTlBQzFcXHU5QUMwXFx1OUFDNVxcdTlBQzJcXHU5QUNCXFx1OUFDQ1xcdTlBRDFcXHU5QjQ1XFx1OUI0M1xcdTlCNDdcXHU5QjQ5XFx1OUI0OFxcdTlCNERcXHU5QjUxXFx1OThFOFxcdTk5MERcXHU5OTJFXFx1OTk1NVxcdTk5NTRcXHU5QURGXFx1OUFFMVxcdTlBRTZcXHU5QUVGXFx1OUFFQlxcdTlBRkJcXHU5QUVEXFx1OUFGOVxcdTlCMDhcXHU5QjBGXFx1OUIxM1xcdTlCMUZcXHU5QjIzXFx1OUVCRFxcdTlFQkVcXHU3RTNCXFx1OUU4MlxcdTlFODdcXHU5RTg4XFx1OUU4QlxcdTlFOTJcXHU5M0Q2XFx1OUU5RFxcdTlFOUZcXHU5RURCXFx1OUVEQ1xcdTlFRERcXHU5RUUwXFx1OUVERlxcdTlFRTJcXHU5RUU5XFx1OUVFN1xcdTlFRTVcXHU5RUVBXFx1OUVFRlxcdTlGMjJcXHU5RjJDXFx1OUYyRlxcdTlGMzlcXHU5RjM3XFx1OUYzRFxcdTlGM0VcXHU5RjQ0XCJdLFxuICAgICAgW1wiZjg0MFwiLCBcIlxcdTlDRTNcIiwgNjJdLFxuICAgICAgW1wiZjg4MFwiLCBcIlxcdTlEMjJcIiwgMzJdLFxuICAgICAgW1wiZjk0MFwiLCBcIlxcdTlENDNcIiwgNjJdLFxuICAgICAgW1wiZjk4MFwiLCBcIlxcdTlEODJcIiwgMzJdLFxuICAgICAgW1wiZmE0MFwiLCBcIlxcdTlEQTNcIiwgNjJdLFxuICAgICAgW1wiZmE4MFwiLCBcIlxcdTlERTJcIiwgMzJdLFxuICAgICAgW1wiZmI0MFwiLCBcIlxcdTlFMDNcIiwgMjcsIFwiXFx1OUUyNFxcdTlFMjdcXHU5RTJFXFx1OUUzMFxcdTlFMzRcXHU5RTNCXFx1OUUzQ1xcdTlFNDBcXHU5RTREXFx1OUU1MFxcdTlFNTJcXHU5RTUzXFx1OUU1NFxcdTlFNTZcXHU5RTU5XFx1OUU1RFxcdTlFNUZcXHU5RTYwXFx1OUU2MVxcdTlFNjJcXHU5RTY1XFx1OUU2RVxcdTlFNkZcXHU5RTcyXFx1OUU3NFwiLCA5LCBcIlxcdTlFODBcIl0sXG4gICAgICBbXCJmYjgwXCIsIFwiXFx1OUU4MVxcdTlFODNcXHU5RTg0XFx1OUU4NVxcdTlFODZcXHU5RTg5XFx1OUU4QVxcdTlFOENcIiwgNSwgXCJcXHU5RTk0XCIsIDgsIFwiXFx1OUU5RVxcdTlFQTBcIiwgNSwgXCJcXHU5RUE3XFx1OUVBOFxcdTlFQTlcXHU5RUFBXCJdLFxuICAgICAgW1wiZmM0MFwiLCBcIlxcdTlFQUJcIiwgOCwgXCJcXHU5RUI1XFx1OUVCNlxcdTlFQjdcXHU5RUI5XFx1OUVCQVxcdTlFQkNcXHU5RUJGXCIsIDQsIFwiXFx1OUVDNVxcdTlFQzZcXHU5RUM3XFx1OUVDOFxcdTlFQ0FcXHU5RUNCXFx1OUVDQ1xcdTlFRDBcXHU5RUQyXFx1OUVEM1xcdTlFRDVcXHU5RUQ2XFx1OUVEN1xcdTlFRDlcXHU5RURBXFx1OUVERVxcdTlFRTFcXHU5RUUzXFx1OUVFNFxcdTlFRTZcXHU5RUU4XFx1OUVFQlxcdTlFRUNcXHU5RUVEXFx1OUVFRVxcdTlFRjBcIiwgOCwgXCJcXHU5RUZBXFx1OUVGRFxcdTlFRkZcIiwgNl0sXG4gICAgICBbXCJmYzgwXCIsIFwiXFx1OUYwNlwiLCA0LCBcIlxcdTlGMENcXHU5RjBGXFx1OUYxMVxcdTlGMTJcXHU5RjE0XFx1OUYxNVxcdTlGMTZcXHU5RjE4XFx1OUYxQVwiLCA1LCBcIlxcdTlGMjFcXHU5RjIzXCIsIDgsIFwiXFx1OUYyRFxcdTlGMkVcXHU5RjMwXFx1OUYzMVwiXSxcbiAgICAgIFtcImZkNDBcIiwgXCJcXHU5RjMyXCIsIDQsIFwiXFx1OUYzOFxcdTlGM0FcXHU5RjNDXFx1OUYzRlwiLCA0LCBcIlxcdTlGNDVcIiwgMTAsIFwiXFx1OUY1MlwiLCAzOF0sXG4gICAgICBbXCJmZDgwXCIsIFwiXFx1OUY3OVwiLCA1LCBcIlxcdTlGODFcXHU5RjgyXFx1OUY4RFwiLCAxMSwgXCJcXHU5RjlDXFx1OUY5RFxcdTlGOUVcXHU5RkExXCIsIDQsIFwiXFx1RjkyQ1xcdUY5NzlcXHVGOTk1XFx1RjlFN1xcdUY5RjFcIl0sXG4gICAgICBbXCJmZTQwXCIsIFwiXFx1RkEwQ1xcdUZBMERcXHVGQTBFXFx1RkEwRlxcdUZBMTFcXHVGQTEzXFx1RkExNFxcdUZBMThcXHVGQTFGXFx1RkEyMFxcdUZBMjFcXHVGQTIzXFx1RkEyNFxcdUZBMjdcXHVGQTI4XFx1RkEyOVwiXVxuICAgIF07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9nYmstYWRkZWQuanNvblxudmFyIHJlcXVpcmVfZ2JrX2FkZGVkMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2diay1hZGRlZC5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBbXG4gICAgICBbXCJhMTQwXCIsIFwiXFx1RTRDNlwiLCA2Ml0sXG4gICAgICBbXCJhMTgwXCIsIFwiXFx1RTUwNVwiLCAzMl0sXG4gICAgICBbXCJhMjQwXCIsIFwiXFx1RTUyNlwiLCA2Ml0sXG4gICAgICBbXCJhMjgwXCIsIFwiXFx1RTU2NVwiLCAzMl0sXG4gICAgICBbXCJhMmFiXCIsIFwiXFx1RTc2NlwiLCA1XSxcbiAgICAgIFtcImEyZTNcIiwgXCJcXHUyMEFDXFx1RTc2RFwiXSxcbiAgICAgIFtcImEyZWZcIiwgXCJcXHVFNzZFXFx1RTc2RlwiXSxcbiAgICAgIFtcImEyZmRcIiwgXCJcXHVFNzcwXFx1RTc3MVwiXSxcbiAgICAgIFtcImEzNDBcIiwgXCJcXHVFNTg2XCIsIDYyXSxcbiAgICAgIFtcImEzODBcIiwgXCJcXHVFNUM1XCIsIDMxLCBcIlxcdTMwMDBcIl0sXG4gICAgICBbXCJhNDQwXCIsIFwiXFx1RTVFNlwiLCA2Ml0sXG4gICAgICBbXCJhNDgwXCIsIFwiXFx1RTYyNVwiLCAzMl0sXG4gICAgICBbXCJhNGY0XCIsIFwiXFx1RTc3MlwiLCAxMF0sXG4gICAgICBbXCJhNTQwXCIsIFwiXFx1RTY0NlwiLCA2Ml0sXG4gICAgICBbXCJhNTgwXCIsIFwiXFx1RTY4NVwiLCAzMl0sXG4gICAgICBbXCJhNWY3XCIsIFwiXFx1RTc3RFwiLCA3XSxcbiAgICAgIFtcImE2NDBcIiwgXCJcXHVFNkE2XCIsIDYyXSxcbiAgICAgIFtcImE2ODBcIiwgXCJcXHVFNkU1XCIsIDMyXSxcbiAgICAgIFtcImE2YjlcIiwgXCJcXHVFNzg1XCIsIDddLFxuICAgICAgW1wiYTZkOVwiLCBcIlxcdUU3OERcIiwgNl0sXG4gICAgICBbXCJhNmVjXCIsIFwiXFx1RTc5NFxcdUU3OTVcIl0sXG4gICAgICBbXCJhNmYzXCIsIFwiXFx1RTc5NlwiXSxcbiAgICAgIFtcImE2ZjZcIiwgXCJcXHVFNzk3XCIsIDhdLFxuICAgICAgW1wiYTc0MFwiLCBcIlxcdUU3MDZcIiwgNjJdLFxuICAgICAgW1wiYTc4MFwiLCBcIlxcdUU3NDVcIiwgMzJdLFxuICAgICAgW1wiYTdjMlwiLCBcIlxcdUU3QTBcIiwgMTRdLFxuICAgICAgW1wiYTdmMlwiLCBcIlxcdUU3QUZcIiwgMTJdLFxuICAgICAgW1wiYTg5NlwiLCBcIlxcdUU3QkNcIiwgMTBdLFxuICAgICAgW1wiYThiY1wiLCBcIlxcdTFFM0ZcIl0sXG4gICAgICBbXCJhOGJmXCIsIFwiXFx1MDFGOVwiXSxcbiAgICAgIFtcImE4YzFcIiwgXCJcXHVFN0M5XFx1RTdDQVxcdUU3Q0JcXHVFN0NDXCJdLFxuICAgICAgW1wiYThlYVwiLCBcIlxcdUU3Q0RcIiwgMjBdLFxuICAgICAgW1wiYTk1OFwiLCBcIlxcdUU3RTJcIl0sXG4gICAgICBbXCJhOTViXCIsIFwiXFx1RTdFM1wiXSxcbiAgICAgIFtcImE5NWRcIiwgXCJcXHVFN0U0XFx1RTdFNVxcdUU3RTZcIl0sXG4gICAgICBbXCJhOTg5XCIsIFwiXFx1MzAzRVxcdTJGRjBcIiwgMTFdLFxuICAgICAgW1wiYTk5N1wiLCBcIlxcdUU3RjRcIiwgMTJdLFxuICAgICAgW1wiYTlmMFwiLCBcIlxcdUU4MDFcIiwgMTRdLFxuICAgICAgW1wiYWFhMVwiLCBcIlxcdUUwMDBcIiwgOTNdLFxuICAgICAgW1wiYWJhMVwiLCBcIlxcdUUwNUVcIiwgOTNdLFxuICAgICAgW1wiYWNhMVwiLCBcIlxcdUUwQkNcIiwgOTNdLFxuICAgICAgW1wiYWRhMVwiLCBcIlxcdUUxMUFcIiwgOTNdLFxuICAgICAgW1wiYWVhMVwiLCBcIlxcdUUxNzhcIiwgOTNdLFxuICAgICAgW1wiYWZhMVwiLCBcIlxcdUUxRDZcIiwgOTNdLFxuICAgICAgW1wiZDdmYVwiLCBcIlxcdUU4MTBcIiwgNF0sXG4gICAgICBbXCJmOGExXCIsIFwiXFx1RTIzNFwiLCA5M10sXG4gICAgICBbXCJmOWExXCIsIFwiXFx1RTI5MlwiLCA5M10sXG4gICAgICBbXCJmYWExXCIsIFwiXFx1RTJGMFwiLCA5M10sXG4gICAgICBbXCJmYmExXCIsIFwiXFx1RTM0RVwiLCA5M10sXG4gICAgICBbXCJmY2ExXCIsIFwiXFx1RTNBQ1wiLCA5M10sXG4gICAgICBbXCJmZGExXCIsIFwiXFx1RTQwQVwiLCA5M10sXG4gICAgICBbXCJmZTUwXCIsIFwiXFx1MkU4MVxcdUU4MTZcXHVFODE3XFx1RTgxOFxcdTJFODRcXHUzNDczXFx1MzQ0N1xcdTJFODhcXHUyRThCXFx1RTgxRVxcdTM1OUVcXHUzNjFBXFx1MzYwRVxcdTJFOENcXHUyRTk3XFx1Mzk2RVxcdTM5MThcXHVFODI2XFx1MzlDRlxcdTM5REZcXHUzQTczXFx1MzlEMFxcdUU4MkJcXHVFODJDXFx1M0I0RVxcdTNDNkVcXHUzQ0UwXFx1MkVBN1xcdUU4MzFcXHVFODMyXFx1MkVBQVxcdTQwNTZcXHU0MTVGXFx1MkVBRVxcdTQzMzdcXHUyRUIzXFx1MkVCNlxcdTJFQjdcXHVFODNCXFx1NDNCMVxcdTQzQUNcXHUyRUJCXFx1NDNERFxcdTQ0RDZcXHU0NjYxXFx1NDY0Q1xcdUU4NDNcIl0sXG4gICAgICBbXCJmZTgwXCIsIFwiXFx1NDcyM1xcdTQ3MjlcXHU0NzdDXFx1NDc4RFxcdTJFQ0FcXHU0OTQ3XFx1NDk3QVxcdTQ5N0RcXHU0OTgyXFx1NDk4M1xcdTQ5ODVcXHU0OTg2XFx1NDk5RlxcdTQ5OUJcXHU0OUI3XFx1NDlCNlxcdUU4NTRcXHVFODU1XFx1NENBM1xcdTRDOUZcXHU0Q0EwXFx1NENBMVxcdTRDNzdcXHU0Q0EyXFx1NEQxM1wiLCA2LCBcIlxcdTREQUVcXHVFODY0XFx1RTQ2OFwiLCA5M10sXG4gICAgICBbXCI4MTM1ZjQzN1wiLCBcIlxcdUU3QzdcIl1cbiAgICBdO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvZ2IxODAzMC1yYW5nZXMuanNvblxudmFyIHJlcXVpcmVfZ2IxODAzMF9yYW5nZXMyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvZ2IxODAzMC1yYW5nZXMuanNvblwiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0geyB1Q2hhcnM6IFsxMjgsIDE2NSwgMTY5LCAxNzgsIDE4NCwgMjE2LCAyMjYsIDIzNSwgMjM4LCAyNDQsIDI0OCwgMjUxLCAyNTMsIDI1OCwgMjc2LCAyODQsIDMwMCwgMzI1LCAzMjksIDMzNCwgMzY0LCA0NjMsIDQ2NSwgNDY3LCA0NjksIDQ3MSwgNDczLCA0NzUsIDQ3NywgNTA2LCA1OTQsIDYxMCwgNzEyLCA3MTYsIDczMCwgOTMwLCA5MzgsIDk2MiwgOTcwLCAxMDI2LCAxMTA0LCAxMTA2LCA4MjA5LCA4MjE1LCA4MjE4LCA4MjIyLCA4MjMxLCA4MjQxLCA4MjQ0LCA4MjQ2LCA4MjUyLCA4MzY1LCA4NDUyLCA4NDU0LCA4NDU4LCA4NDcxLCA4NDgyLCA4NTU2LCA4NTcwLCA4NTk2LCA4NjAyLCA4NzEzLCA4NzIwLCA4NzIyLCA4NzI2LCA4NzMxLCA4NzM3LCA4NzQwLCA4NzQyLCA4NzQ4LCA4NzUxLCA4NzYwLCA4NzY2LCA4Nzc3LCA4NzgxLCA4Nzg3LCA4ODAyLCA4ODA4LCA4ODE2LCA4ODU0LCA4ODU4LCA4ODcwLCA4ODk2LCA4OTc5LCA5MzIyLCA5MzcyLCA5NTQ4LCA5NTg4LCA5NjE2LCA5NjIyLCA5NjM0LCA5NjUyLCA5NjYyLCA5NjcyLCA5Njc2LCA5NjgwLCA5NzAyLCA5NzM1LCA5NzM4LCA5NzkzLCA5Nzk1LCAxMTkwNiwgMTE5MDksIDExOTEzLCAxMTkxNywgMTE5MjgsIDExOTQ0LCAxMTk0NywgMTE5NTEsIDExOTU2LCAxMTk2MCwgMTE5NjQsIDExOTc5LCAxMjI4NCwgMTIyOTIsIDEyMzEyLCAxMjMxOSwgMTIzMzAsIDEyMzUxLCAxMjQzNiwgMTI0NDcsIDEyNTM1LCAxMjU0MywgMTI1ODYsIDEyODQyLCAxMjg1MCwgMTI5NjQsIDEzMjAwLCAxMzIxNSwgMTMyMTgsIDEzMjUzLCAxMzI2MywgMTMyNjcsIDEzMjcwLCAxMzM4NCwgMTM0MjgsIDEzNzI3LCAxMzgzOSwgMTM4NTEsIDE0NjE3LCAxNDcwMywgMTQ4MDEsIDE0ODE2LCAxNDk2NCwgMTUxODMsIDE1NDcxLCAxNTU4NSwgMTY0NzEsIDE2NzM2LCAxNzIwOCwgMTczMjUsIDE3MzMwLCAxNzM3NCwgMTc2MjMsIDE3OTk3LCAxODAxOCwgMTgyMTIsIDE4MjE4LCAxODMwMSwgMTgzMTgsIDE4NzYwLCAxODgxMSwgMTg4MTQsIDE4ODIwLCAxODgyMywgMTg4NDQsIDE4ODQ4LCAxODg3MiwgMTk1NzYsIDE5NjIwLCAxOTczOCwgMTk4ODcsIDQwODcwLCA1OTI0NCwgNTkzMzYsIDU5MzY3LCA1OTQxMywgNTk0MTcsIDU5NDIzLCA1OTQzMSwgNTk0MzcsIDU5NDQzLCA1OTQ1MiwgNTk0NjAsIDU5NDc4LCA1OTQ5MywgNjM3ODksIDYzODY2LCA2Mzg5NCwgNjM5NzYsIDYzOTg2LCA2NDAxNiwgNjQwMTgsIDY0MDIxLCA2NDAyNSwgNjQwMzQsIDY0MDM3LCA2NDA0MiwgNjUwNzQsIDY1MDkzLCA2NTEwNywgNjUxMTIsIDY1MTI3LCA2NTEzMiwgNjUzNzUsIDY1NTEwLCA2NTUzNl0sIGdiQ2hhcnM6IFswLCAzNiwgMzgsIDQ1LCA1MCwgODEsIDg5LCA5NSwgOTYsIDEwMCwgMTAzLCAxMDQsIDEwNSwgMTA5LCAxMjYsIDEzMywgMTQ4LCAxNzIsIDE3NSwgMTc5LCAyMDgsIDMwNiwgMzA3LCAzMDgsIDMwOSwgMzEwLCAzMTEsIDMxMiwgMzEzLCAzNDEsIDQyOCwgNDQzLCA1NDQsIDU0NSwgNTU4LCA3NDEsIDc0MiwgNzQ5LCA3NTAsIDgwNSwgODE5LCA4MjAsIDc5MjIsIDc5MjQsIDc5MjUsIDc5MjcsIDc5MzQsIDc5NDMsIDc5NDQsIDc5NDUsIDc5NTAsIDgwNjIsIDgxNDgsIDgxNDksIDgxNTIsIDgxNjQsIDgxNzQsIDgyMzYsIDgyNDAsIDgyNjIsIDgyNjQsIDgzNzQsIDgzODAsIDgzODEsIDgzODQsIDgzODgsIDgzOTAsIDgzOTIsIDgzOTMsIDgzOTQsIDgzOTYsIDg0MDEsIDg0MDYsIDg0MTYsIDg0MTksIDg0MjQsIDg0MzcsIDg0MzksIDg0NDUsIDg0ODIsIDg0ODUsIDg0OTYsIDg1MjEsIDg2MDMsIDg5MzYsIDg5NDYsIDkwNDYsIDkwNTAsIDkwNjMsIDkwNjYsIDkwNzYsIDkwOTIsIDkxMDAsIDkxMDgsIDkxMTEsIDkxMTMsIDkxMzEsIDkxNjIsIDkxNjQsIDkyMTgsIDkyMTksIDExMzI5LCAxMTMzMSwgMTEzMzQsIDExMzM2LCAxMTM0NiwgMTEzNjEsIDExMzYzLCAxMTM2NiwgMTEzNzAsIDExMzcyLCAxMTM3NSwgMTEzODksIDExNjgyLCAxMTY4NiwgMTE2ODcsIDExNjkyLCAxMTY5NCwgMTE3MTQsIDExNzE2LCAxMTcyMywgMTE3MjUsIDExNzMwLCAxMTczNiwgMTE5ODIsIDExOTg5LCAxMjEwMiwgMTIzMzYsIDEyMzQ4LCAxMjM1MCwgMTIzODQsIDEyMzkzLCAxMjM5NSwgMTIzOTcsIDEyNTEwLCAxMjU1MywgMTI4NTEsIDEyOTYyLCAxMjk3MywgMTM3MzgsIDEzODIzLCAxMzkxOSwgMTM5MzMsIDE0MDgwLCAxNDI5OCwgMTQ1ODUsIDE0Njk4LCAxNTU4MywgMTU4NDcsIDE2MzE4LCAxNjQzNCwgMTY0MzgsIDE2NDgxLCAxNjcyOSwgMTcxMDIsIDE3MTIyLCAxNzMxNSwgMTczMjAsIDE3NDAyLCAxNzQxOCwgMTc4NTksIDE3OTA5LCAxNzkxMSwgMTc5MTUsIDE3OTE2LCAxNzkzNiwgMTc5MzksIDE3OTYxLCAxODY2NCwgMTg3MDMsIDE4ODE0LCAxODk2MiwgMTkwNDMsIDMzNDY5LCAzMzQ3MCwgMzM0NzEsIDMzNDg0LCAzMzQ4NSwgMzM0OTAsIDMzNDk3LCAzMzUwMSwgMzM1MDUsIDMzNTEzLCAzMzUyMCwgMzM1MzYsIDMzNTUwLCAzNzg0NSwgMzc5MjEsIDM3OTQ4LCAzODAyOSwgMzgwMzgsIDM4MDY0LCAzODA2NSwgMzgwNjYsIDM4MDY5LCAzODA3NSwgMzgwNzYsIDM4MDc4LCAzOTEwOCwgMzkxMDksIDM5MTEzLCAzOTExNCwgMzkxMTUsIDM5MTE2LCAzOTI2NSwgMzkzOTQsIDE4OWUzXSB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvY3A5NDkuanNvblxudmFyIHJlcXVpcmVfY3A5NDkyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvY3A5NDkuanNvblwiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gW1xuICAgICAgW1wiMFwiLCBcIlxcMFwiLCAxMjddLFxuICAgICAgW1wiODE0MVwiLCBcIlxcdUFDMDJcXHVBQzAzXFx1QUMwNVxcdUFDMDZcXHVBQzBCXCIsIDQsIFwiXFx1QUMxOFxcdUFDMUVcXHVBQzFGXFx1QUMyMVxcdUFDMjJcXHVBQzIzXFx1QUMyNVwiLCA2LCBcIlxcdUFDMkVcXHVBQzMyXFx1QUMzM1xcdUFDMzRcIl0sXG4gICAgICBbXCI4MTYxXCIsIFwiXFx1QUMzNVxcdUFDMzZcXHVBQzM3XFx1QUMzQVxcdUFDM0JcXHVBQzNEXFx1QUMzRVxcdUFDM0ZcXHVBQzQxXCIsIDksIFwiXFx1QUM0Q1xcdUFDNEVcIiwgNSwgXCJcXHVBQzU1XCJdLFxuICAgICAgW1wiODE4MVwiLCBcIlxcdUFDNTZcXHVBQzU3XFx1QUM1OVxcdUFDNUFcXHVBQzVCXFx1QUM1RFwiLCAxOCwgXCJcXHVBQzcyXFx1QUM3M1xcdUFDNzVcXHVBQzc2XFx1QUM3OVxcdUFDN0JcIiwgNCwgXCJcXHVBQzgyXFx1QUM4N1xcdUFDODhcXHVBQzhEXFx1QUM4RVxcdUFDOEZcXHVBQzkxXFx1QUM5MlxcdUFDOTNcXHVBQzk1XCIsIDYsIFwiXFx1QUM5RVxcdUFDQTJcIiwgNSwgXCJcXHVBQ0FCXFx1QUNBRFxcdUFDQUVcXHVBQ0IxXCIsIDYsIFwiXFx1QUNCQVxcdUFDQkVcXHVBQ0JGXFx1QUNDMFxcdUFDQzJcXHVBQ0MzXFx1QUNDNVxcdUFDQzZcXHVBQ0M3XFx1QUNDOVxcdUFDQ0FcXHVBQ0NCXFx1QUNDRFwiLCA3LCBcIlxcdUFDRDZcXHVBQ0Q4XCIsIDcsIFwiXFx1QUNFMlxcdUFDRTNcXHVBQ0U1XFx1QUNFNlxcdUFDRTlcXHVBQ0VCXFx1QUNFRFxcdUFDRUVcXHVBQ0YyXFx1QUNGNFxcdUFDRjdcIiwgNCwgXCJcXHVBQ0ZFXFx1QUNGRlxcdUFEMDFcXHVBRDAyXFx1QUQwM1xcdUFEMDVcXHVBRDA3XCIsIDQsIFwiXFx1QUQwRVxcdUFEMTBcXHVBRDEyXFx1QUQxM1wiXSxcbiAgICAgIFtcIjgyNDFcIiwgXCJcXHVBRDE0XFx1QUQxNVxcdUFEMTZcXHVBRDE3XFx1QUQxOVxcdUFEMUFcXHVBRDFCXFx1QUQxRFxcdUFEMUVcXHVBRDFGXFx1QUQyMVwiLCA3LCBcIlxcdUFEMkFcXHVBRDJCXFx1QUQyRVwiLCA1XSxcbiAgICAgIFtcIjgyNjFcIiwgXCJcXHVBRDM2XFx1QUQzN1xcdUFEMzlcXHVBRDNBXFx1QUQzQlxcdUFEM0RcIiwgNiwgXCJcXHVBRDQ2XFx1QUQ0OFxcdUFENEFcIiwgNSwgXCJcXHVBRDUxXFx1QUQ1MlxcdUFENTNcXHVBRDU1XFx1QUQ1NlxcdUFENTdcIl0sXG4gICAgICBbXCI4MjgxXCIsIFwiXFx1QUQ1OVwiLCA3LCBcIlxcdUFENjJcXHVBRDY0XCIsIDcsIFwiXFx1QUQ2RVxcdUFENkZcXHVBRDcxXFx1QUQ3MlxcdUFENzdcXHVBRDc4XFx1QUQ3OVxcdUFEN0FcXHVBRDdFXFx1QUQ4MFxcdUFEODNcIiwgNCwgXCJcXHVBRDhBXFx1QUQ4QlxcdUFEOERcXHVBRDhFXFx1QUQ4RlxcdUFEOTFcIiwgMTAsIFwiXFx1QUQ5RVwiLCA1LCBcIlxcdUFEQTVcIiwgMTcsIFwiXFx1QURCOFwiLCA3LCBcIlxcdUFEQzJcXHVBREMzXFx1QURDNVxcdUFEQzZcXHVBREM3XFx1QURDOVwiLCA2LCBcIlxcdUFERDJcXHVBREQ0XCIsIDcsIFwiXFx1QURERFxcdUFEREVcXHVBRERGXFx1QURFMVxcdUFERTJcXHVBREUzXFx1QURFNVwiLCAxOF0sXG4gICAgICBbXCI4MzQxXCIsIFwiXFx1QURGQVxcdUFERkJcXHVBREZEXFx1QURGRVxcdUFFMDJcIiwgNSwgXCJcXHVBRTBBXFx1QUUwQ1xcdUFFMEVcIiwgNSwgXCJcXHVBRTE1XCIsIDddLFxuICAgICAgW1wiODM2MVwiLCBcIlxcdUFFMURcIiwgMTgsIFwiXFx1QUUzMlxcdUFFMzNcXHVBRTM1XFx1QUUzNlxcdUFFMzlcXHVBRTNCXFx1QUUzQ1wiXSxcbiAgICAgIFtcIjgzODFcIiwgXCJcXHVBRTNEXFx1QUUzRVxcdUFFM0ZcXHVBRTQyXFx1QUU0NFxcdUFFNDdcXHVBRTQ4XFx1QUU0OVxcdUFFNEJcXHVBRTRGXFx1QUU1MVxcdUFFNTJcXHVBRTUzXFx1QUU1NVxcdUFFNTdcIiwgNCwgXCJcXHVBRTVFXFx1QUU2MlxcdUFFNjNcXHVBRTY0XFx1QUU2NlxcdUFFNjdcXHVBRTZBXFx1QUU2QlxcdUFFNkRcXHVBRTZFXFx1QUU2RlxcdUFFNzFcIiwgNiwgXCJcXHVBRTdBXFx1QUU3RVwiLCA1LCBcIlxcdUFFODZcIiwgNSwgXCJcXHVBRThEXCIsIDQ2LCBcIlxcdUFFQkZcXHVBRUMxXFx1QUVDMlxcdUFFQzNcXHVBRUM1XCIsIDYsIFwiXFx1QUVDRVxcdUFFRDJcIiwgNSwgXCJcXHVBRURBXFx1QUVEQlxcdUFFRERcIiwgOF0sXG4gICAgICBbXCI4NDQxXCIsIFwiXFx1QUVFNlxcdUFFRTdcXHVBRUU5XFx1QUVFQVxcdUFFRUNcXHVBRUVFXCIsIDUsIFwiXFx1QUVGNVxcdUFFRjZcXHVBRUY3XFx1QUVGOVxcdUFFRkFcXHVBRUZCXFx1QUVGRFwiLCA4XSxcbiAgICAgIFtcIjg0NjFcIiwgXCJcXHVBRjA2XFx1QUYwOVxcdUFGMEFcXHVBRjBCXFx1QUYwQ1xcdUFGMEVcXHVBRjBGXFx1QUYxMVwiLCAxOF0sXG4gICAgICBbXCI4NDgxXCIsIFwiXFx1QUYyNFwiLCA3LCBcIlxcdUFGMkVcXHVBRjJGXFx1QUYzMVxcdUFGMzNcXHVBRjM1XCIsIDYsIFwiXFx1QUYzRVxcdUFGNDBcXHVBRjQ0XFx1QUY0NVxcdUFGNDZcXHVBRjQ3XFx1QUY0QVwiLCA1LCBcIlxcdUFGNTFcIiwgMTAsIFwiXFx1QUY1RVwiLCA1LCBcIlxcdUFGNjZcIiwgMTgsIFwiXFx1QUY3QVwiLCA1LCBcIlxcdUFGODFcXHVBRjgyXFx1QUY4M1xcdUFGODVcXHVBRjg2XFx1QUY4N1xcdUFGODlcIiwgNiwgXCJcXHVBRjkyXFx1QUY5M1xcdUFGOTRcXHVBRjk2XCIsIDUsIFwiXFx1QUY5RFwiLCAyNiwgXCJcXHVBRkJBXFx1QUZCQlxcdUFGQkRcXHVBRkJFXCJdLFxuICAgICAgW1wiODU0MVwiLCBcIlxcdUFGQkZcXHVBRkMxXCIsIDUsIFwiXFx1QUZDQVxcdUFGQ0NcXHVBRkNGXCIsIDQsIFwiXFx1QUZENVwiLCA2LCBcIlxcdUFGRERcIiwgNF0sXG4gICAgICBbXCI4NTYxXCIsIFwiXFx1QUZFMlwiLCA1LCBcIlxcdUFGRUFcIiwgNSwgXCJcXHVBRkYyXFx1QUZGM1xcdUFGRjVcXHVBRkY2XFx1QUZGN1xcdUFGRjlcIiwgNiwgXCJcXHVCMDAyXFx1QjAwM1wiXSxcbiAgICAgIFtcIjg1ODFcIiwgXCJcXHVCMDA1XCIsIDYsIFwiXFx1QjAwRFxcdUIwMEVcXHVCMDBGXFx1QjAxMVxcdUIwMTJcXHVCMDEzXFx1QjAxNVwiLCA2LCBcIlxcdUIwMUVcIiwgOSwgXCJcXHVCMDI5XCIsIDI2LCBcIlxcdUIwNDZcXHVCMDQ3XFx1QjA0OVxcdUIwNEJcXHVCMDREXFx1QjA0RlxcdUIwNTBcXHVCMDUxXFx1QjA1MlxcdUIwNTZcXHVCMDU4XFx1QjA1QVxcdUIwNUJcXHVCMDVDXFx1QjA1RVwiLCAyOSwgXCJcXHVCMDdFXFx1QjA3RlxcdUIwODFcXHVCMDgyXFx1QjA4M1xcdUIwODVcIiwgNiwgXCJcXHVCMDhFXFx1QjA5MFxcdUIwOTJcIiwgNSwgXCJcXHVCMDlCXFx1QjA5RFxcdUIwOUVcXHVCMEEzXFx1QjBBNFwiXSxcbiAgICAgIFtcIjg2NDFcIiwgXCJcXHVCMEE1XFx1QjBBNlxcdUIwQTdcXHVCMEFBXFx1QjBCMFxcdUIwQjJcXHVCMEI2XFx1QjBCN1xcdUIwQjlcXHVCMEJBXFx1QjBCQlxcdUIwQkRcIiwgNiwgXCJcXHVCMEM2XFx1QjBDQVwiLCA1LCBcIlxcdUIwRDJcIl0sXG4gICAgICBbXCI4NjYxXCIsIFwiXFx1QjBEM1xcdUIwRDVcXHVCMEQ2XFx1QjBEN1xcdUIwRDlcIiwgNiwgXCJcXHVCMEUxXFx1QjBFMlxcdUIwRTNcXHVCMEU0XFx1QjBFNlwiLCAxMF0sXG4gICAgICBbXCI4NjgxXCIsIFwiXFx1QjBGMVwiLCAyMiwgXCJcXHVCMTBBXFx1QjEwRFxcdUIxMEVcXHVCMTBGXFx1QjExMVxcdUIxMTRcXHVCMTE1XFx1QjExNlxcdUIxMTdcXHVCMTFBXFx1QjExRVwiLCA0LCBcIlxcdUIxMjZcXHVCMTI3XFx1QjEyOVxcdUIxMkFcXHVCMTJCXFx1QjEyRFwiLCA2LCBcIlxcdUIxMzZcXHVCMTNBXCIsIDUsIFwiXFx1QjE0MlxcdUIxNDNcXHVCMTQ1XFx1QjE0NlxcdUIxNDdcXHVCMTQ5XCIsIDYsIFwiXFx1QjE1MlxcdUIxNTNcXHVCMTU2XFx1QjE1N1xcdUIxNTlcXHVCMTVBXFx1QjE1QlxcdUIxNURcXHVCMTVFXFx1QjE1RlxcdUIxNjFcIiwgMjIsIFwiXFx1QjE3QVxcdUIxN0JcXHVCMTdEXFx1QjE3RVxcdUIxN0ZcXHVCMTgxXFx1QjE4M1wiLCA0LCBcIlxcdUIxOEFcXHVCMThDXFx1QjE4RVxcdUIxOEZcXHVCMTkwXFx1QjE5MVxcdUIxOTVcXHVCMTk2XFx1QjE5N1xcdUIxOTlcXHVCMTlBXFx1QjE5QlxcdUIxOURcIl0sXG4gICAgICBbXCI4NzQxXCIsIFwiXFx1QjE5RVwiLCA5LCBcIlxcdUIxQTlcIiwgMTVdLFxuICAgICAgW1wiODc2MVwiLCBcIlxcdUIxQjlcIiwgMTgsIFwiXFx1QjFDRFxcdUIxQ0VcXHVCMUNGXFx1QjFEMVxcdUIxRDJcXHVCMUQzXFx1QjFENVwiXSxcbiAgICAgIFtcIjg3ODFcIiwgXCJcXHVCMUQ2XCIsIDUsIFwiXFx1QjFERVxcdUIxRTBcIiwgNywgXCJcXHVCMUVBXFx1QjFFQlxcdUIxRURcXHVCMUVFXFx1QjFFRlxcdUIxRjFcIiwgNywgXCJcXHVCMUZBXFx1QjFGQ1xcdUIxRkVcIiwgNSwgXCJcXHVCMjA2XFx1QjIwN1xcdUIyMDlcXHVCMjBBXFx1QjIwRFwiLCA2LCBcIlxcdUIyMTZcXHVCMjE4XFx1QjIxQVwiLCA1LCBcIlxcdUIyMjFcIiwgMTgsIFwiXFx1QjIzNVwiLCA2LCBcIlxcdUIyM0RcIiwgMjYsIFwiXFx1QjI1OVxcdUIyNUFcXHVCMjVCXFx1QjI1RFxcdUIyNUVcXHVCMjVGXFx1QjI2MVwiLCA2LCBcIlxcdUIyNkFcIiwgNF0sXG4gICAgICBbXCI4ODQxXCIsIFwiXFx1QjI2RlwiLCA0LCBcIlxcdUIyNzZcIiwgNSwgXCJcXHVCMjdEXCIsIDYsIFwiXFx1QjI4NlxcdUIyODdcXHVCMjg4XFx1QjI4QVwiLCA0XSxcbiAgICAgIFtcIjg4NjFcIiwgXCJcXHVCMjhGXFx1QjI5MlxcdUIyOTNcXHVCMjk1XFx1QjI5NlxcdUIyOTdcXHVCMjlCXCIsIDQsIFwiXFx1QjJBMlxcdUIyQTRcXHVCMkE3XFx1QjJBOFxcdUIyQTlcXHVCMkFCXFx1QjJBRFxcdUIyQUVcXHVCMkFGXFx1QjJCMVxcdUIyQjJcXHVCMkIzXFx1QjJCNVxcdUIyQjZcXHVCMkI3XCJdLFxuICAgICAgW1wiODg4MVwiLCBcIlxcdUIyQjhcIiwgMTUsIFwiXFx1QjJDQVxcdUIyQ0JcXHVCMkNEXFx1QjJDRVxcdUIyQ0ZcXHVCMkQxXFx1QjJEM1wiLCA0LCBcIlxcdUIyREFcXHVCMkRDXFx1QjJERVxcdUIyREZcXHVCMkUwXFx1QjJFMVxcdUIyRTNcXHVCMkU3XFx1QjJFOVxcdUIyRUFcXHVCMkYwXFx1QjJGMVxcdUIyRjJcXHVCMkY2XFx1QjJGQ1xcdUIyRkRcXHVCMkZFXFx1QjMwMlxcdUIzMDNcXHVCMzA1XFx1QjMwNlxcdUIzMDdcXHVCMzA5XCIsIDYsIFwiXFx1QjMxMlxcdUIzMTZcIiwgNSwgXCJcXHVCMzFEXCIsIDU0LCBcIlxcdUIzNTdcXHVCMzU5XFx1QjM1QVxcdUIzNURcXHVCMzYwXFx1QjM2MVxcdUIzNjJcXHVCMzYzXCJdLFxuICAgICAgW1wiODk0MVwiLCBcIlxcdUIzNjZcXHVCMzY4XFx1QjM2QVxcdUIzNkNcXHVCMzZEXFx1QjM2RlxcdUIzNzJcXHVCMzczXFx1QjM3NVxcdUIzNzZcXHVCMzc3XFx1QjM3OVwiLCA2LCBcIlxcdUIzODJcXHVCMzg2XCIsIDUsIFwiXFx1QjM4RFwiXSxcbiAgICAgIFtcIjg5NjFcIiwgXCJcXHVCMzhFXFx1QjM4RlxcdUIzOTFcXHVCMzkyXFx1QjM5M1xcdUIzOTVcIiwgMTAsIFwiXFx1QjNBMlwiLCA1LCBcIlxcdUIzQTlcXHVCM0FBXFx1QjNBQlxcdUIzQURcIl0sXG4gICAgICBbXCI4OTgxXCIsIFwiXFx1QjNBRVwiLCAyMSwgXCJcXHVCM0M2XFx1QjNDN1xcdUIzQzlcXHVCM0NBXFx1QjNDRFxcdUIzQ0ZcXHVCM0QxXFx1QjNEMlxcdUIzRDNcXHVCM0Q2XFx1QjNEOFxcdUIzREFcXHVCM0RDXFx1QjNERVxcdUIzREZcXHVCM0UxXFx1QjNFMlxcdUIzRTNcXHVCM0U1XFx1QjNFNlxcdUIzRTdcXHVCM0U5XCIsIDE4LCBcIlxcdUIzRkRcIiwgMTgsIFwiXFx1QjQxMVwiLCA2LCBcIlxcdUI0MTlcXHVCNDFBXFx1QjQxQlxcdUI0MURcXHVCNDFFXFx1QjQxRlxcdUI0MjFcIiwgNiwgXCJcXHVCNDJBXFx1QjQyQ1wiLCA3LCBcIlxcdUI0MzVcIiwgMTVdLFxuICAgICAgW1wiOGE0MVwiLCBcIlxcdUI0NDVcIiwgMTAsIFwiXFx1QjQ1MlxcdUI0NTNcXHVCNDU1XFx1QjQ1NlxcdUI0NTdcXHVCNDU5XCIsIDYsIFwiXFx1QjQ2MlxcdUI0NjRcXHVCNDY2XCJdLFxuICAgICAgW1wiOGE2MVwiLCBcIlxcdUI0NjdcIiwgNCwgXCJcXHVCNDZEXCIsIDE4LCBcIlxcdUI0ODFcXHVCNDgyXCJdLFxuICAgICAgW1wiOGE4MVwiLCBcIlxcdUI0ODNcIiwgNCwgXCJcXHVCNDg5XCIsIDE5LCBcIlxcdUI0OUVcIiwgNSwgXCJcXHVCNEE1XFx1QjRBNlxcdUI0QTdcXHVCNEE5XFx1QjRBQVxcdUI0QUJcXHVCNEFEXCIsIDcsIFwiXFx1QjRCNlxcdUI0QjhcXHVCNEJBXCIsIDUsIFwiXFx1QjRDMVxcdUI0QzJcXHVCNEMzXFx1QjRDNVxcdUI0QzZcXHVCNEM3XFx1QjRDOVwiLCA2LCBcIlxcdUI0RDFcXHVCNEQyXFx1QjREM1xcdUI0RDRcXHVCNEQ2XCIsIDUsIFwiXFx1QjRERVxcdUI0REZcXHVCNEUxXFx1QjRFMlxcdUI0RTVcXHVCNEU3XCIsIDQsIFwiXFx1QjRFRVxcdUI0RjBcXHVCNEYyXCIsIDUsIFwiXFx1QjRGOVwiLCAyNiwgXCJcXHVCNTE2XFx1QjUxN1xcdUI1MTlcXHVCNTFBXFx1QjUxRFwiXSxcbiAgICAgIFtcIjhiNDFcIiwgXCJcXHVCNTFFXCIsIDUsIFwiXFx1QjUyNlxcdUI1MkJcIiwgNCwgXCJcXHVCNTMyXFx1QjUzM1xcdUI1MzVcXHVCNTM2XFx1QjUzN1xcdUI1MzlcIiwgNiwgXCJcXHVCNTQyXFx1QjU0NlwiXSxcbiAgICAgIFtcIjhiNjFcIiwgXCJcXHVCNTQ3XFx1QjU0OFxcdUI1NDlcXHVCNTRBXFx1QjU0RVxcdUI1NEZcXHVCNTUxXFx1QjU1MlxcdUI1NTNcXHVCNTU1XCIsIDYsIFwiXFx1QjU1RVxcdUI1NjJcIiwgOF0sXG4gICAgICBbXCI4YjgxXCIsIFwiXFx1QjU2QlwiLCA1MiwgXCJcXHVCNUEyXFx1QjVBM1xcdUI1QTVcXHVCNUE2XFx1QjVBN1xcdUI1QTlcXHVCNUFDXFx1QjVBRFxcdUI1QUVcXHVCNUFGXFx1QjVCMlxcdUI1QjZcIiwgNCwgXCJcXHVCNUJFXFx1QjVCRlxcdUI1QzFcXHVCNUMyXFx1QjVDM1xcdUI1QzVcIiwgNiwgXCJcXHVCNUNFXFx1QjVEMlwiLCA1LCBcIlxcdUI1RDlcIiwgMTgsIFwiXFx1QjVFRFwiLCAxOF0sXG4gICAgICBbXCI4YzQxXCIsIFwiXFx1QjYwMFwiLCAxNSwgXCJcXHVCNjEyXFx1QjYxM1xcdUI2MTVcXHVCNjE2XFx1QjYxN1xcdUI2MTlcIiwgNF0sXG4gICAgICBbXCI4YzYxXCIsIFwiXFx1QjYxRVwiLCA2LCBcIlxcdUI2MjZcIiwgNSwgXCJcXHVCNjJEXCIsIDYsIFwiXFx1QjYzNVwiLCA1XSxcbiAgICAgIFtcIjhjODFcIiwgXCJcXHVCNjNCXCIsIDEyLCBcIlxcdUI2NDlcIiwgMjYsIFwiXFx1QjY2NVxcdUI2NjZcXHVCNjY3XFx1QjY2OVwiLCA1MCwgXCJcXHVCNjlFXFx1QjY5RlxcdUI2QTFcXHVCNkEyXFx1QjZBM1xcdUI2QTVcIiwgNSwgXCJcXHVCNkFEXFx1QjZBRVxcdUI2QUZcXHVCNkIwXFx1QjZCMlwiLCAxNl0sXG4gICAgICBbXCI4ZDQxXCIsIFwiXFx1QjZDM1wiLCAxNiwgXCJcXHVCNkQ1XCIsIDhdLFxuICAgICAgW1wiOGQ2MVwiLCBcIlxcdUI2REVcIiwgMTcsIFwiXFx1QjZGMVxcdUI2RjJcXHVCNkYzXFx1QjZGNVxcdUI2RjZcXHVCNkY3XFx1QjZGOVxcdUI2RkFcIl0sXG4gICAgICBbXCI4ZDgxXCIsIFwiXFx1QjZGQlwiLCA0LCBcIlxcdUI3MDJcXHVCNzAzXFx1QjcwNFxcdUI3MDZcIiwgMzMsIFwiXFx1QjcyQVxcdUI3MkJcXHVCNzJEXFx1QjcyRVxcdUI3MzFcIiwgNiwgXCJcXHVCNzNBXFx1QjczQ1wiLCA3LCBcIlxcdUI3NDVcXHVCNzQ2XFx1Qjc0N1xcdUI3NDlcXHVCNzRBXFx1Qjc0QlxcdUI3NERcIiwgNiwgXCJcXHVCNzU2XCIsIDksIFwiXFx1Qjc2MVxcdUI3NjJcXHVCNzYzXFx1Qjc2NVxcdUI3NjZcXHVCNzY3XFx1Qjc2OVwiLCA2LCBcIlxcdUI3NzJcXHVCNzc0XFx1Qjc3NlwiLCA1LCBcIlxcdUI3N0VcXHVCNzdGXFx1Qjc4MVxcdUI3ODJcXHVCNzgzXFx1Qjc4NVwiLCA2LCBcIlxcdUI3OEVcXHVCNzkzXFx1Qjc5NFxcdUI3OTVcXHVCNzlBXFx1Qjc5QlxcdUI3OURcXHVCNzlFXCJdLFxuICAgICAgW1wiOGU0MVwiLCBcIlxcdUI3OUZcXHVCN0ExXCIsIDYsIFwiXFx1QjdBQVxcdUI3QUVcIiwgNSwgXCJcXHVCN0I2XFx1QjdCN1xcdUI3QjlcIiwgOF0sXG4gICAgICBbXCI4ZTYxXCIsIFwiXFx1QjdDMlwiLCA0LCBcIlxcdUI3QzhcXHVCN0NBXCIsIDE5XSxcbiAgICAgIFtcIjhlODFcIiwgXCJcXHVCN0RFXCIsIDEzLCBcIlxcdUI3RUVcXHVCN0VGXFx1QjdGMVxcdUI3RjJcXHVCN0YzXFx1QjdGNVwiLCA2LCBcIlxcdUI3RkVcXHVCODAyXCIsIDQsIFwiXFx1QjgwQVxcdUI4MEJcXHVCODBEXFx1QjgwRVxcdUI4MEZcXHVCODExXCIsIDYsIFwiXFx1QjgxQVxcdUI4MUNcXHVCODFFXCIsIDUsIFwiXFx1QjgyNlxcdUI4MjdcXHVCODI5XFx1QjgyQVxcdUI4MkJcXHVCODJEXCIsIDYsIFwiXFx1QjgzNlxcdUI4M0FcIiwgNSwgXCJcXHVCODQxXFx1Qjg0MlxcdUI4NDNcXHVCODQ1XCIsIDExLCBcIlxcdUI4NTJcXHVCODU0XCIsIDcsIFwiXFx1Qjg1RVxcdUI4NUZcXHVCODYxXFx1Qjg2MlxcdUI4NjNcXHVCODY1XCIsIDYsIFwiXFx1Qjg2RVxcdUI4NzBcXHVCODcyXCIsIDUsIFwiXFx1Qjg3OVxcdUI4N0FcXHVCODdCXFx1Qjg3RFwiLCA3XSxcbiAgICAgIFtcIjhmNDFcIiwgXCJcXHVCODg1XCIsIDcsIFwiXFx1Qjg4RVwiLCAxN10sXG4gICAgICBbXCI4ZjYxXCIsIFwiXFx1QjhBMFwiLCA3LCBcIlxcdUI4QTlcIiwgNiwgXCJcXHVCOEIxXFx1QjhCMlxcdUI4QjNcXHVCOEI1XFx1QjhCNlxcdUI4QjdcXHVCOEI5XCIsIDRdLFxuICAgICAgW1wiOGY4MVwiLCBcIlxcdUI4QkVcXHVCOEJGXFx1QjhDMlxcdUI4QzRcXHVCOEM2XCIsIDUsIFwiXFx1QjhDRFxcdUI4Q0VcXHVCOENGXFx1QjhEMVxcdUI4RDJcXHVCOEQzXFx1QjhENVwiLCA3LCBcIlxcdUI4REVcXHVCOEUwXFx1QjhFMlwiLCA1LCBcIlxcdUI4RUFcXHVCOEVCXFx1QjhFRFxcdUI4RUVcXHVCOEVGXFx1QjhGMVwiLCA2LCBcIlxcdUI4RkFcXHVCOEZDXFx1QjhGRVwiLCA1LCBcIlxcdUI5MDVcIiwgMTgsIFwiXFx1QjkxOVwiLCA2LCBcIlxcdUI5MjFcIiwgMjYsIFwiXFx1QjkzRVxcdUI5M0ZcXHVCOTQxXFx1Qjk0MlxcdUI5NDNcXHVCOTQ1XCIsIDYsIFwiXFx1Qjk0RFxcdUI5NEVcXHVCOTUwXFx1Qjk1MlwiLCA1XSxcbiAgICAgIFtcIjkwNDFcIiwgXCJcXHVCOTVBXFx1Qjk1QlxcdUI5NURcXHVCOTVFXFx1Qjk1RlxcdUI5NjFcIiwgNiwgXCJcXHVCOTZBXFx1Qjk2Q1xcdUI5NkVcIiwgNSwgXCJcXHVCOTc2XFx1Qjk3N1xcdUI5NzlcXHVCOTdBXFx1Qjk3QlxcdUI5N0RcIl0sXG4gICAgICBbXCI5MDYxXCIsIFwiXFx1Qjk3RVwiLCA1LCBcIlxcdUI5ODZcXHVCOTg4XFx1Qjk4QlxcdUI5OENcXHVCOThGXCIsIDE1XSxcbiAgICAgIFtcIjkwODFcIiwgXCJcXHVCOTlGXCIsIDEyLCBcIlxcdUI5QUVcXHVCOUFGXFx1QjlCMVxcdUI5QjJcXHVCOUIzXFx1QjlCNVwiLCA2LCBcIlxcdUI5QkVcXHVCOUMwXFx1QjlDMlwiLCA1LCBcIlxcdUI5Q0FcXHVCOUNCXFx1QjlDRFxcdUI5RDNcIiwgNCwgXCJcXHVCOURBXFx1QjlEQ1xcdUI5REZcXHVCOUUwXFx1QjlFMlxcdUI5RTZcXHVCOUU3XFx1QjlFOVxcdUI5RUFcXHVCOUVCXFx1QjlFRFwiLCA2LCBcIlxcdUI5RjZcXHVCOUZCXCIsIDQsIFwiXFx1QkEwMlwiLCA1LCBcIlxcdUJBMDlcIiwgMTEsIFwiXFx1QkExNlwiLCAzMywgXCJcXHVCQTNBXFx1QkEzQlxcdUJBM0RcXHVCQTNFXFx1QkEzRlxcdUJBNDFcXHVCQTQzXFx1QkE0NFxcdUJBNDVcXHVCQTQ2XCJdLFxuICAgICAgW1wiOTE0MVwiLCBcIlxcdUJBNDdcXHVCQTRBXFx1QkE0Q1xcdUJBNEZcXHVCQTUwXFx1QkE1MVxcdUJBNTJcXHVCQTU2XFx1QkE1N1xcdUJBNTlcXHVCQTVBXFx1QkE1QlxcdUJBNURcIiwgNiwgXCJcXHVCQTY2XFx1QkE2QVwiLCA1XSxcbiAgICAgIFtcIjkxNjFcIiwgXCJcXHVCQTcyXFx1QkE3M1xcdUJBNzVcXHVCQTc2XFx1QkE3N1xcdUJBNzlcIiwgOSwgXCJcXHVCQTg2XFx1QkE4OFxcdUJBODlcXHVCQThBXFx1QkE4QlxcdUJBOERcIiwgNV0sXG4gICAgICBbXCI5MTgxXCIsIFwiXFx1QkE5M1wiLCAyMCwgXCJcXHVCQUFBXFx1QkFBRFxcdUJBQUVcXHVCQUFGXFx1QkFCMVxcdUJBQjNcIiwgNCwgXCJcXHVCQUJBXFx1QkFCQ1xcdUJBQkVcIiwgNSwgXCJcXHVCQUM1XFx1QkFDNlxcdUJBQzdcXHVCQUM5XCIsIDE0LCBcIlxcdUJBREFcIiwgMzMsIFwiXFx1QkFGRFxcdUJBRkVcXHVCQUZGXFx1QkIwMVxcdUJCMDJcXHVCQjAzXFx1QkIwNVwiLCA3LCBcIlxcdUJCMEVcXHVCQjEwXFx1QkIxMlwiLCA1LCBcIlxcdUJCMTlcXHVCQjFBXFx1QkIxQlxcdUJCMURcXHVCQjFFXFx1QkIxRlxcdUJCMjFcIiwgNl0sXG4gICAgICBbXCI5MjQxXCIsIFwiXFx1QkIyOFxcdUJCMkFcXHVCQjJDXCIsIDcsIFwiXFx1QkIzN1xcdUJCMzlcXHVCQjNBXFx1QkIzRlwiLCA0LCBcIlxcdUJCNDZcXHVCQjQ4XFx1QkI0QVxcdUJCNEJcXHVCQjRDXFx1QkI0RVxcdUJCNTFcXHVCQjUyXCJdLFxuICAgICAgW1wiOTI2MVwiLCBcIlxcdUJCNTNcXHVCQjU1XFx1QkI1NlxcdUJCNTdcXHVCQjU5XCIsIDcsIFwiXFx1QkI2MlxcdUJCNjRcIiwgNywgXCJcXHVCQjZEXCIsIDRdLFxuICAgICAgW1wiOTI4MVwiLCBcIlxcdUJCNzJcIiwgMjEsIFwiXFx1QkI4OVxcdUJCOEFcXHVCQjhCXFx1QkI4RFxcdUJCOEVcXHVCQjhGXFx1QkI5MVwiLCAxOCwgXCJcXHVCQkE1XFx1QkJBNlxcdUJCQTdcXHVCQkE5XFx1QkJBQVxcdUJCQUJcXHVCQkFEXCIsIDYsIFwiXFx1QkJCNVxcdUJCQjZcXHVCQkI4XCIsIDcsIFwiXFx1QkJDMVxcdUJCQzJcXHVCQkMzXFx1QkJDNVxcdUJCQzZcXHVCQkM3XFx1QkJDOVwiLCA2LCBcIlxcdUJCRDFcXHVCQkQyXFx1QkJENFwiLCAzNSwgXCJcXHVCQkZBXFx1QkJGQlxcdUJCRkRcXHVCQkZFXFx1QkMwMVwiXSxcbiAgICAgIFtcIjkzNDFcIiwgXCJcXHVCQzAzXCIsIDQsIFwiXFx1QkMwQVxcdUJDMEVcXHVCQzEwXFx1QkMxMlxcdUJDMTNcXHVCQzE5XFx1QkMxQVxcdUJDMjBcXHVCQzIxXFx1QkMyMlxcdUJDMjNcXHVCQzI2XFx1QkMyOFxcdUJDMkFcXHVCQzJCXFx1QkMyQ1xcdUJDMkVcXHVCQzJGXFx1QkMzMlxcdUJDMzNcXHVCQzM1XCJdLFxuICAgICAgW1wiOTM2MVwiLCBcIlxcdUJDMzZcXHVCQzM3XFx1QkMzOVwiLCA2LCBcIlxcdUJDNDJcXHVCQzQ2XFx1QkM0N1xcdUJDNDhcXHVCQzRBXFx1QkM0QlxcdUJDNEVcXHVCQzRGXFx1QkM1MVwiLCA4XSxcbiAgICAgIFtcIjkzODFcIiwgXCJcXHVCQzVBXFx1QkM1QlxcdUJDNUNcXHVCQzVFXCIsIDM3LCBcIlxcdUJDODZcXHVCQzg3XFx1QkM4OVxcdUJDOEFcXHVCQzhEXFx1QkM4RlwiLCA0LCBcIlxcdUJDOTZcXHVCQzk4XFx1QkM5QlwiLCA0LCBcIlxcdUJDQTJcXHVCQ0EzXFx1QkNBNVxcdUJDQTZcXHVCQ0E5XCIsIDYsIFwiXFx1QkNCMlxcdUJDQjZcIiwgNSwgXCJcXHVCQ0JFXFx1QkNCRlxcdUJDQzFcXHVCQ0MyXFx1QkNDM1xcdUJDQzVcIiwgNywgXCJcXHVCQ0NFXFx1QkNEMlxcdUJDRDNcXHVCQ0Q0XFx1QkNENlxcdUJDRDdcXHVCQ0Q5XFx1QkNEQVxcdUJDREJcXHVCQ0REXCIsIDIyLCBcIlxcdUJDRjdcXHVCQ0Y5XFx1QkNGQVxcdUJDRkJcXHVCQ0ZEXCJdLFxuICAgICAgW1wiOTQ0MVwiLCBcIlxcdUJDRkVcIiwgNSwgXCJcXHVCRDA2XFx1QkQwOFxcdUJEMEFcIiwgNSwgXCJcXHVCRDExXFx1QkQxMlxcdUJEMTNcXHVCRDE1XCIsIDhdLFxuICAgICAgW1wiOTQ2MVwiLCBcIlxcdUJEMUVcIiwgNSwgXCJcXHVCRDI1XCIsIDYsIFwiXFx1QkQyRFwiLCAxMl0sXG4gICAgICBbXCI5NDgxXCIsIFwiXFx1QkQzQVwiLCA1LCBcIlxcdUJENDFcIiwgNiwgXCJcXHVCRDRBXFx1QkQ0QlxcdUJENERcXHVCRDRFXFx1QkQ0RlxcdUJENTFcIiwgNiwgXCJcXHVCRDVBXCIsIDksIFwiXFx1QkQ2NVxcdUJENjZcXHVCRDY3XFx1QkQ2OVwiLCAyMiwgXCJcXHVCRDgyXFx1QkQ4M1xcdUJEODVcXHVCRDg2XFx1QkQ4QlwiLCA0LCBcIlxcdUJEOTJcXHVCRDk0XFx1QkQ5NlxcdUJEOTdcXHVCRDk4XFx1QkQ5QlxcdUJEOURcIiwgNiwgXCJcXHVCREE1XCIsIDEwLCBcIlxcdUJEQjFcIiwgNiwgXCJcXHVCREI5XCIsIDI0XSxcbiAgICAgIFtcIjk1NDFcIiwgXCJcXHVCREQyXFx1QkREM1xcdUJERDZcXHVCREQ3XFx1QkREOVxcdUJEREFcXHVCRERCXFx1QkRERFwiLCAxMSwgXCJcXHVCREVBXCIsIDUsIFwiXFx1QkRGMVwiXSxcbiAgICAgIFtcIjk1NjFcIiwgXCJcXHVCREYyXFx1QkRGM1xcdUJERjVcXHVCREY2XFx1QkRGN1xcdUJERjlcIiwgNiwgXCJcXHVCRTAxXFx1QkUwMlxcdUJFMDRcXHVCRTA2XCIsIDUsIFwiXFx1QkUwRVxcdUJFMEZcXHVCRTExXFx1QkUxMlxcdUJFMTNcIl0sXG4gICAgICBbXCI5NTgxXCIsIFwiXFx1QkUxNVwiLCA2LCBcIlxcdUJFMUVcXHVCRTIwXCIsIDM1LCBcIlxcdUJFNDZcXHVCRTQ3XFx1QkU0OVxcdUJFNEFcXHVCRTRCXFx1QkU0RFxcdUJFNEZcIiwgNCwgXCJcXHVCRTU2XFx1QkU1OFxcdUJFNUNcXHVCRTVEXFx1QkU1RVxcdUJFNUZcXHVCRTYyXFx1QkU2M1xcdUJFNjVcXHVCRTY2XFx1QkU2N1xcdUJFNjlcXHVCRTZCXCIsIDQsIFwiXFx1QkU3MlxcdUJFNzZcIiwgNCwgXCJcXHVCRTdFXFx1QkU3RlxcdUJFODFcXHVCRTgyXFx1QkU4M1xcdUJFODVcIiwgNiwgXCJcXHVCRThFXFx1QkU5MlwiLCA1LCBcIlxcdUJFOUFcIiwgMTMsIFwiXFx1QkVBOVwiLCAxNF0sXG4gICAgICBbXCI5NjQxXCIsIFwiXFx1QkVCOFwiLCAyMywgXCJcXHVCRUQyXFx1QkVEM1wiXSxcbiAgICAgIFtcIjk2NjFcIiwgXCJcXHVCRUQ1XFx1QkVENlxcdUJFRDlcIiwgNiwgXCJcXHVCRUUxXFx1QkVFMlxcdUJFRTZcIiwgNSwgXCJcXHVCRUVEXCIsIDhdLFxuICAgICAgW1wiOTY4MVwiLCBcIlxcdUJFRjZcIiwgMTAsIFwiXFx1QkYwMlwiLCA1LCBcIlxcdUJGMEFcIiwgMTMsIFwiXFx1QkYxQVxcdUJGMUVcIiwgMzMsIFwiXFx1QkY0MlxcdUJGNDNcXHVCRjQ1XFx1QkY0NlxcdUJGNDdcXHVCRjQ5XCIsIDYsIFwiXFx1QkY1MlxcdUJGNTNcXHVCRjU0XFx1QkY1NlwiLCA0NF0sXG4gICAgICBbXCI5NzQxXCIsIFwiXFx1QkY4M1wiLCAxNiwgXCJcXHVCRjk1XCIsIDhdLFxuICAgICAgW1wiOTc2MVwiLCBcIlxcdUJGOUVcIiwgMTcsIFwiXFx1QkZCMVwiLCA3XSxcbiAgICAgIFtcIjk3ODFcIiwgXCJcXHVCRkI5XCIsIDExLCBcIlxcdUJGQzZcIiwgNSwgXCJcXHVCRkNFXFx1QkZDRlxcdUJGRDFcXHVCRkQyXFx1QkZEM1xcdUJGRDVcIiwgNiwgXCJcXHVCRkREXFx1QkZERVxcdUJGRTBcXHVCRkUyXCIsIDg5LCBcIlxcdUMwM0RcXHVDMDNFXFx1QzAzRlwiXSxcbiAgICAgIFtcIjk4NDFcIiwgXCJcXHVDMDQwXCIsIDE2LCBcIlxcdUMwNTJcIiwgNSwgXCJcXHVDMDU5XFx1QzA1QVxcdUMwNUJcIl0sXG4gICAgICBbXCI5ODYxXCIsIFwiXFx1QzA1RFxcdUMwNUVcXHVDMDVGXFx1QzA2MVwiLCA2LCBcIlxcdUMwNkFcIiwgMTVdLFxuICAgICAgW1wiOTg4MVwiLCBcIlxcdUMwN0FcIiwgMjEsIFwiXFx1QzA5MlxcdUMwOTNcXHVDMDk1XFx1QzA5NlxcdUMwOTdcXHVDMDk5XCIsIDYsIFwiXFx1QzBBMlxcdUMwQTRcXHVDMEE2XCIsIDUsIFwiXFx1QzBBRVxcdUMwQjFcXHVDMEIyXFx1QzBCN1wiLCA0LCBcIlxcdUMwQkVcXHVDMEMyXFx1QzBDM1xcdUMwQzRcXHVDMEM2XFx1QzBDN1xcdUMwQ0FcXHVDMENCXFx1QzBDRFxcdUMwQ0VcXHVDMENGXFx1QzBEMVwiLCA2LCBcIlxcdUMwREFcXHVDMERFXCIsIDUsIFwiXFx1QzBFNlxcdUMwRTdcXHVDMEU5XFx1QzBFQVxcdUMwRUJcXHVDMEVEXCIsIDYsIFwiXFx1QzBGNlxcdUMwRjhcXHVDMEZBXCIsIDUsIFwiXFx1QzEwMVxcdUMxMDJcXHVDMTAzXFx1QzEwNVxcdUMxMDZcXHVDMTA3XFx1QzEwOVwiLCA2LCBcIlxcdUMxMTFcXHVDMTEyXFx1QzExM1xcdUMxMTRcXHVDMTE2XCIsIDUsIFwiXFx1QzEyMVxcdUMxMjJcXHVDMTI1XFx1QzEyOFxcdUMxMjlcXHVDMTJBXFx1QzEyQlxcdUMxMkVcIl0sXG4gICAgICBbXCI5OTQxXCIsIFwiXFx1QzEzMlxcdUMxMzNcXHVDMTM0XFx1QzEzNVxcdUMxMzdcXHVDMTNBXFx1QzEzQlxcdUMxM0RcXHVDMTNFXFx1QzEzRlxcdUMxNDFcIiwgNiwgXCJcXHVDMTRBXFx1QzE0RVwiLCA1LCBcIlxcdUMxNTZcXHVDMTU3XCJdLFxuICAgICAgW1wiOTk2MVwiLCBcIlxcdUMxNTlcXHVDMTVBXFx1QzE1QlxcdUMxNURcIiwgNiwgXCJcXHVDMTY2XFx1QzE2QVwiLCA1LCBcIlxcdUMxNzFcXHVDMTcyXFx1QzE3M1xcdUMxNzVcXHVDMTc2XFx1QzE3N1xcdUMxNzlcXHVDMTdBXFx1QzE3QlwiXSxcbiAgICAgIFtcIjk5ODFcIiwgXCJcXHVDMTdDXCIsIDgsIFwiXFx1QzE4NlwiLCA1LCBcIlxcdUMxOEZcXHVDMTkxXFx1QzE5MlxcdUMxOTNcXHVDMTk1XFx1QzE5N1wiLCA0LCBcIlxcdUMxOUVcXHVDMUEwXFx1QzFBMlxcdUMxQTNcXHVDMUE0XFx1QzFBNlxcdUMxQTdcXHVDMUFBXFx1QzFBQlxcdUMxQURcXHVDMUFFXFx1QzFBRlxcdUMxQjFcIiwgMTEsIFwiXFx1QzFCRVwiLCA1LCBcIlxcdUMxQzVcXHVDMUM2XFx1QzFDN1xcdUMxQzlcXHVDMUNBXFx1QzFDQlxcdUMxQ0RcIiwgNiwgXCJcXHVDMUQ1XFx1QzFENlxcdUMxRDlcIiwgNiwgXCJcXHVDMUUxXFx1QzFFMlxcdUMxRTNcXHVDMUU1XFx1QzFFNlxcdUMxRTdcXHVDMUU5XCIsIDYsIFwiXFx1QzFGMlxcdUMxRjRcIiwgNywgXCJcXHVDMUZFXFx1QzFGRlxcdUMyMDFcXHVDMjAyXFx1QzIwM1xcdUMyMDVcIiwgNiwgXCJcXHVDMjBFXFx1QzIxMFxcdUMyMTJcIiwgNSwgXCJcXHVDMjFBXFx1QzIxQlxcdUMyMURcXHVDMjFFXFx1QzIyMVxcdUMyMjJcXHVDMjIzXCJdLFxuICAgICAgW1wiOWE0MVwiLCBcIlxcdUMyMjRcXHVDMjI1XFx1QzIyNlxcdUMyMjdcXHVDMjJBXFx1QzIyQ1xcdUMyMkVcXHVDMjMwXFx1QzIzM1xcdUMyMzVcIiwgMTZdLFxuICAgICAgW1wiOWE2MVwiLCBcIlxcdUMyNDZcXHVDMjQ3XFx1QzI0OVwiLCA2LCBcIlxcdUMyNTJcXHVDMjUzXFx1QzI1NVxcdUMyNTZcXHVDMjU3XFx1QzI1OVwiLCA2LCBcIlxcdUMyNjFcXHVDMjYyXFx1QzI2M1xcdUMyNjRcXHVDMjY2XCJdLFxuICAgICAgW1wiOWE4MVwiLCBcIlxcdUMyNjdcIiwgNCwgXCJcXHVDMjZFXFx1QzI2RlxcdUMyNzFcXHVDMjcyXFx1QzI3M1xcdUMyNzVcIiwgNiwgXCJcXHVDMjdFXFx1QzI4MFxcdUMyODJcIiwgNSwgXCJcXHVDMjhBXCIsIDUsIFwiXFx1QzI5MVwiLCA2LCBcIlxcdUMyOTlcXHVDMjlBXFx1QzI5Q1xcdUMyOUVcIiwgNSwgXCJcXHVDMkE2XFx1QzJBN1xcdUMyQTlcXHVDMkFBXFx1QzJBQlxcdUMyQUVcIiwgNSwgXCJcXHVDMkI2XFx1QzJCOFxcdUMyQkFcIiwgMzMsIFwiXFx1QzJERVxcdUMyREZcXHVDMkUxXFx1QzJFMlxcdUMyRTVcIiwgNSwgXCJcXHVDMkVFXFx1QzJGMFxcdUMyRjJcXHVDMkYzXFx1QzJGNFxcdUMyRjVcXHVDMkY3XFx1QzJGQVxcdUMyRkRcXHVDMkZFXFx1QzJGRlxcdUMzMDFcIiwgNiwgXCJcXHVDMzBBXFx1QzMwQlxcdUMzMEVcXHVDMzBGXCJdLFxuICAgICAgW1wiOWI0MVwiLCBcIlxcdUMzMTBcXHVDMzExXFx1QzMxMlxcdUMzMTZcXHVDMzE3XFx1QzMxOVxcdUMzMUFcXHVDMzFCXFx1QzMxRFwiLCA2LCBcIlxcdUMzMjZcXHVDMzI3XFx1QzMyQVwiLCA4XSxcbiAgICAgIFtcIjliNjFcIiwgXCJcXHVDMzMzXCIsIDE3LCBcIlxcdUMzNDZcIiwgN10sXG4gICAgICBbXCI5YjgxXCIsIFwiXFx1QzM0RVwiLCAyNSwgXCJcXHVDMzZBXFx1QzM2QlxcdUMzNkRcXHVDMzZFXFx1QzM2RlxcdUMzNzFcXHVDMzczXCIsIDQsIFwiXFx1QzM3QVxcdUMzN0JcXHVDMzdFXCIsIDUsIFwiXFx1QzM4NVxcdUMzODZcXHVDMzg3XFx1QzM4OVxcdUMzOEFcXHVDMzhCXFx1QzM4RFwiLCA1MCwgXCJcXHVDM0MxXCIsIDIyLCBcIlxcdUMzREFcIl0sXG4gICAgICBbXCI5YzQxXCIsIFwiXFx1QzNEQlxcdUMzRERcXHVDM0RFXFx1QzNFMVxcdUMzRTNcIiwgNCwgXCJcXHVDM0VBXFx1QzNFQlxcdUMzRUNcXHVDM0VFXCIsIDUsIFwiXFx1QzNGNlxcdUMzRjdcXHVDM0Y5XCIsIDVdLFxuICAgICAgW1wiOWM2MVwiLCBcIlxcdUMzRkZcIiwgOCwgXCJcXHVDNDA5XCIsIDYsIFwiXFx1QzQxMVwiLCA5XSxcbiAgICAgIFtcIjljODFcIiwgXCJcXHVDNDFCXCIsIDgsIFwiXFx1QzQyNVwiLCA2LCBcIlxcdUM0MkRcXHVDNDJFXFx1QzQyRlxcdUM0MzFcXHVDNDMyXFx1QzQzM1xcdUM0MzVcIiwgNiwgXCJcXHVDNDNFXCIsIDksIFwiXFx1QzQ0OVwiLCAyNiwgXCJcXHVDNDY2XFx1QzQ2N1xcdUM0NjlcXHVDNDZBXFx1QzQ2QlxcdUM0NkRcIiwgNiwgXCJcXHVDNDc2XFx1QzQ3N1xcdUM0NzhcXHVDNDdBXCIsIDUsIFwiXFx1QzQ4MVwiLCAxOCwgXCJcXHVDNDk1XCIsIDYsIFwiXFx1QzQ5RFwiLCAxMl0sXG4gICAgICBbXCI5ZDQxXCIsIFwiXFx1QzRBQVwiLCAxMywgXCJcXHVDNEI5XFx1QzRCQVxcdUM0QkJcXHVDNEJEXCIsIDhdLFxuICAgICAgW1wiOWQ2MVwiLCBcIlxcdUM0QzZcIiwgMjVdLFxuICAgICAgW1wiOWQ4MVwiLCBcIlxcdUM0RTBcIiwgOCwgXCJcXHVDNEVBXCIsIDUsIFwiXFx1QzRGMlxcdUM0RjNcXHVDNEY1XFx1QzRGNlxcdUM0RjdcXHVDNEY5XFx1QzRGQlxcdUM0RkNcXHVDNEZEXFx1QzRGRVxcdUM1MDJcIiwgOSwgXCJcXHVDNTBEXFx1QzUwRVxcdUM1MEZcXHVDNTExXFx1QzUxMlxcdUM1MTNcXHVDNTE1XCIsIDYsIFwiXFx1QzUxRFwiLCAxMCwgXCJcXHVDNTJBXFx1QzUyQlxcdUM1MkRcXHVDNTJFXFx1QzUyRlxcdUM1MzFcIiwgNiwgXCJcXHVDNTNBXFx1QzUzQ1xcdUM1M0VcIiwgNSwgXCJcXHVDNTQ2XFx1QzU0N1xcdUM1NEJcXHVDNTRGXFx1QzU1MFxcdUM1NTFcXHVDNTUyXFx1QzU1NlxcdUM1NUFcXHVDNTVCXFx1QzU1Q1xcdUM1NUZcXHVDNTYyXFx1QzU2M1xcdUM1NjVcXHVDNTY2XFx1QzU2N1xcdUM1NjlcIiwgNiwgXCJcXHVDNTcyXFx1QzU3NlwiLCA1LCBcIlxcdUM1N0VcXHVDNTdGXFx1QzU4MVxcdUM1ODJcXHVDNTgzXFx1QzU4NVxcdUM1ODZcXHVDNTg4XFx1QzU4OVxcdUM1OEFcXHVDNThCXFx1QzU4RVxcdUM1OTBcXHVDNTkyXFx1QzU5M1xcdUM1OTRcIl0sXG4gICAgICBbXCI5ZTQxXCIsIFwiXFx1QzU5NlxcdUM1OTlcXHVDNTlBXFx1QzU5QlxcdUM1OURcXHVDNTlFXFx1QzU5RlxcdUM1QTFcIiwgNywgXCJcXHVDNUFBXCIsIDksIFwiXFx1QzVCNlwiXSxcbiAgICAgIFtcIjllNjFcIiwgXCJcXHVDNUI3XFx1QzVCQVxcdUM1QkZcIiwgNCwgXCJcXHVDNUNCXFx1QzVDRFxcdUM1Q0ZcXHVDNUQyXFx1QzVEM1xcdUM1RDVcXHVDNUQ2XFx1QzVEN1xcdUM1RDlcIiwgNiwgXCJcXHVDNUUyXFx1QzVFNFxcdUM1RTZcXHVDNUU3XCJdLFxuICAgICAgW1wiOWU4MVwiLCBcIlxcdUM1RThcXHVDNUU5XFx1QzVFQVxcdUM1RUJcXHVDNUVGXFx1QzVGMVxcdUM1RjJcXHVDNUYzXFx1QzVGNVxcdUM1RjhcXHVDNUY5XFx1QzVGQVxcdUM1RkJcXHVDNjAyXFx1QzYwM1xcdUM2MDRcXHVDNjA5XFx1QzYwQVxcdUM2MEJcXHVDNjBEXFx1QzYwRVxcdUM2MEZcXHVDNjExXCIsIDYsIFwiXFx1QzYxQVxcdUM2MURcIiwgNiwgXCJcXHVDNjI2XFx1QzYyN1xcdUM2MjlcXHVDNjJBXFx1QzYyQlxcdUM2MkZcXHVDNjMxXFx1QzYzMlxcdUM2MzZcXHVDNjM4XFx1QzYzQVxcdUM2M0NcXHVDNjNEXFx1QzYzRVxcdUM2M0ZcXHVDNjQyXFx1QzY0M1xcdUM2NDVcXHVDNjQ2XFx1QzY0N1xcdUM2NDlcIiwgNiwgXCJcXHVDNjUyXFx1QzY1NlwiLCA1LCBcIlxcdUM2NUVcXHVDNjVGXFx1QzY2MVwiLCAxMCwgXCJcXHVDNjZEXFx1QzY2RVxcdUM2NzBcXHVDNjcyXCIsIDUsIFwiXFx1QzY3QVxcdUM2N0JcXHVDNjdEXFx1QzY3RVxcdUM2N0ZcXHVDNjgxXCIsIDYsIFwiXFx1QzY4QVxcdUM2OENcXHVDNjhFXCIsIDUsIFwiXFx1QzY5NlxcdUM2OTdcXHVDNjk5XFx1QzY5QVxcdUM2OUJcXHVDNjlEXCIsIDYsIFwiXFx1QzZBNlwiXSxcbiAgICAgIFtcIjlmNDFcIiwgXCJcXHVDNkE4XFx1QzZBQVwiLCA1LCBcIlxcdUM2QjJcXHVDNkIzXFx1QzZCNVxcdUM2QjZcXHVDNkI3XFx1QzZCQlwiLCA0LCBcIlxcdUM2QzJcXHVDNkM0XFx1QzZDNlwiLCA1LCBcIlxcdUM2Q0VcIl0sXG4gICAgICBbXCI5ZjYxXCIsIFwiXFx1QzZDRlxcdUM2RDFcXHVDNkQyXFx1QzZEM1xcdUM2RDVcIiwgNiwgXCJcXHVDNkRFXFx1QzZERlxcdUM2RTJcIiwgNSwgXCJcXHVDNkVBXFx1QzZFQlxcdUM2RURcXHVDNkVFXFx1QzZFRlxcdUM2RjFcXHVDNkYyXCJdLFxuICAgICAgW1wiOWY4MVwiLCBcIlxcdUM2RjNcIiwgNCwgXCJcXHVDNkZBXFx1QzZGQlxcdUM2RkNcXHVDNkZFXCIsIDUsIFwiXFx1QzcwNlxcdUM3MDdcXHVDNzA5XFx1QzcwQVxcdUM3MEJcXHVDNzBEXCIsIDYsIFwiXFx1QzcxNlxcdUM3MThcXHVDNzFBXCIsIDUsIFwiXFx1QzcyMlxcdUM3MjNcXHVDNzI1XFx1QzcyNlxcdUM3MjdcXHVDNzI5XCIsIDYsIFwiXFx1QzczMlxcdUM3MzRcXHVDNzM2XFx1QzczOFxcdUM3MzlcXHVDNzNBXFx1QzczQlxcdUM3M0VcXHVDNzNGXFx1Qzc0MVxcdUM3NDJcXHVDNzQzXFx1Qzc0NVwiLCA0LCBcIlxcdUM3NEJcXHVDNzRFXFx1Qzc1MFxcdUM3NTlcXHVDNzVBXFx1Qzc1QlxcdUM3NURcXHVDNzVFXFx1Qzc1RlxcdUM3NjFcIiwgNiwgXCJcXHVDNzY5XFx1Qzc2QVxcdUM3NkNcIiwgNywgXCJcXHVDNzc2XFx1Qzc3N1xcdUM3NzlcXHVDNzdBXFx1Qzc3QlxcdUM3N0ZcXHVDNzgwXFx1Qzc4MVxcdUM3ODJcXHVDNzg2XFx1Qzc4QlxcdUM3OENcXHVDNzhEXFx1Qzc4RlxcdUM3OTJcXHVDNzkzXFx1Qzc5NVxcdUM3OTlcXHVDNzlCXCIsIDQsIFwiXFx1QzdBMlxcdUM3QTdcIiwgNCwgXCJcXHVDN0FFXFx1QzdBRlxcdUM3QjFcXHVDN0IyXFx1QzdCM1xcdUM3QjVcXHVDN0I2XFx1QzdCN1wiXSxcbiAgICAgIFtcImEwNDFcIiwgXCJcXHVDN0I4XFx1QzdCOVxcdUM3QkFcXHVDN0JCXFx1QzdCRVxcdUM3QzJcIiwgNSwgXCJcXHVDN0NBXFx1QzdDQlxcdUM3Q0RcXHVDN0NGXFx1QzdEMVwiLCA2LCBcIlxcdUM3RDlcXHVDN0RBXFx1QzdEQlxcdUM3RENcIl0sXG4gICAgICBbXCJhMDYxXCIsIFwiXFx1QzdERVwiLCA1LCBcIlxcdUM3RTVcXHVDN0U2XFx1QzdFN1xcdUM3RTlcXHVDN0VBXFx1QzdFQlxcdUM3RURcIiwgMTNdLFxuICAgICAgW1wiYTA4MVwiLCBcIlxcdUM3RkJcIiwgNCwgXCJcXHVDODAyXFx1QzgwM1xcdUM4MDVcXHVDODA2XFx1QzgwN1xcdUM4MDlcXHVDODBCXCIsIDQsIFwiXFx1QzgxMlxcdUM4MTRcXHVDODE3XCIsIDQsIFwiXFx1QzgxRVxcdUM4MUZcXHVDODIxXFx1QzgyMlxcdUM4MjNcXHVDODI1XCIsIDYsIFwiXFx1QzgyRVxcdUM4MzBcXHVDODMyXCIsIDUsIFwiXFx1QzgzOVxcdUM4M0FcXHVDODNCXFx1QzgzRFxcdUM4M0VcXHVDODNGXFx1Qzg0MVwiLCA2LCBcIlxcdUM4NEFcXHVDODRCXFx1Qzg0RVwiLCA1LCBcIlxcdUM4NTVcIiwgMjYsIFwiXFx1Qzg3MlxcdUM4NzNcXHVDODc1XFx1Qzg3NlxcdUM4NzdcXHVDODc5XFx1Qzg3QlwiLCA0LCBcIlxcdUM4ODJcXHVDODg0XFx1Qzg4OFxcdUM4ODlcXHVDODhBXFx1Qzg4RVwiLCA1LCBcIlxcdUM4OTVcIiwgNywgXCJcXHVDODlFXFx1QzhBMFxcdUM4QTJcXHVDOEEzXFx1QzhBNFwiXSxcbiAgICAgIFtcImExNDFcIiwgXCJcXHVDOEE1XFx1QzhBNlxcdUM4QTdcXHVDOEE5XCIsIDE4LCBcIlxcdUM4QkVcXHVDOEJGXFx1QzhDMFxcdUM4QzFcIl0sXG4gICAgICBbXCJhMTYxXCIsIFwiXFx1QzhDMlxcdUM4QzNcXHVDOEM1XFx1QzhDNlxcdUM4QzdcXHVDOEM5XFx1QzhDQVxcdUM4Q0JcXHVDOENEXCIsIDYsIFwiXFx1QzhENlxcdUM4RDhcXHVDOERBXCIsIDUsIFwiXFx1QzhFMlxcdUM4RTNcXHVDOEU1XCJdLFxuICAgICAgW1wiYTE4MVwiLCBcIlxcdUM4RTZcIiwgMTQsIFwiXFx1QzhGNlwiLCA1LCBcIlxcdUM4RkVcXHVDOEZGXFx1QzkwMVxcdUM5MDJcXHVDOTAzXFx1QzkwN1wiLCA0LCBcIlxcdUM5MEVcXHUzMDAwXFx1MzAwMVxcdTMwMDJcXHhCN1xcdTIwMjVcXHUyMDI2XFx4QThcXHUzMDAzXFx4QURcXHUyMDE1XFx1MjIyNVxcdUZGM0NcXHUyMjNDXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTMwMTRcXHUzMDE1XFx1MzAwOFwiLCA5LCBcIlxceEIxXFx4RDdcXHhGN1xcdTIyNjBcXHUyMjY0XFx1MjI2NVxcdTIyMUVcXHUyMjM0XFx4QjBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHUyMTJCXFx1RkZFMFxcdUZGRTFcXHVGRkU1XFx1MjY0MlxcdTI2NDBcXHUyMjIwXFx1MjJBNVxcdTIzMTJcXHUyMjAyXFx1MjIwN1xcdTIyNjFcXHUyMjUyXFx4QTdcXHUyMDNCXFx1MjYwNlxcdTI2MDVcXHUyNUNCXFx1MjVDRlxcdTI1Q0VcXHUyNUM3XFx1MjVDNlxcdTI1QTFcXHUyNUEwXFx1MjVCM1xcdTI1QjJcXHUyNUJEXFx1MjVCQ1xcdTIxOTJcXHUyMTkwXFx1MjE5MVxcdTIxOTNcXHUyMTk0XFx1MzAxM1xcdTIyNkFcXHUyMjZCXFx1MjIxQVxcdTIyM0RcXHUyMjFEXFx1MjIzNVxcdTIyMkJcXHUyMjJDXFx1MjIwOFxcdTIyMEJcXHUyMjg2XFx1MjI4N1xcdTIyODJcXHUyMjgzXFx1MjIyQVxcdTIyMjlcXHUyMjI3XFx1MjIyOFxcdUZGRTJcIl0sXG4gICAgICBbXCJhMjQxXCIsIFwiXFx1QzkxMFxcdUM5MTJcIiwgNSwgXCJcXHVDOTE5XCIsIDE4XSxcbiAgICAgIFtcImEyNjFcIiwgXCJcXHVDOTJEXCIsIDYsIFwiXFx1QzkzNVwiLCAxOF0sXG4gICAgICBbXCJhMjgxXCIsIFwiXFx1Qzk0OFwiLCA3LCBcIlxcdUM5NTJcXHVDOTUzXFx1Qzk1NVxcdUM5NTZcXHVDOTU3XFx1Qzk1OVwiLCA2LCBcIlxcdUM5NjJcXHVDOTY0XCIsIDcsIFwiXFx1Qzk2RFxcdUM5NkVcXHVDOTZGXFx1MjFEMlxcdTIxRDRcXHUyMjAwXFx1MjIwM1xceEI0XFx1RkY1RVxcdTAyQzdcXHUwMkQ4XFx1MDJERFxcdTAyREFcXHUwMkQ5XFx4QjhcXHUwMkRCXFx4QTFcXHhCRlxcdTAyRDBcXHUyMjJFXFx1MjIxMVxcdTIyMEZcXHhBNFxcdTIxMDlcXHUyMDMwXFx1MjVDMVxcdTI1QzBcXHUyNUI3XFx1MjVCNlxcdTI2NjRcXHUyNjYwXFx1MjY2MVxcdTI2NjVcXHUyNjY3XFx1MjY2M1xcdTIyOTlcXHUyNUM4XFx1MjVBM1xcdTI1RDBcXHUyNUQxXFx1MjU5MlxcdTI1QTRcXHUyNUE1XFx1MjVBOFxcdTI1QTdcXHUyNUE2XFx1MjVBOVxcdTI2NjhcXHUyNjBGXFx1MjYwRVxcdTI2MUNcXHUyNjFFXFx4QjZcXHUyMDIwXFx1MjAyMVxcdTIxOTVcXHUyMTk3XFx1MjE5OVxcdTIxOTZcXHUyMTk4XFx1MjY2RFxcdTI2NjlcXHUyNjZBXFx1MjY2Q1xcdTMyN0ZcXHUzMjFDXFx1MjExNlxcdTMzQzdcXHUyMTIyXFx1MzNDMlxcdTMzRDhcXHUyMTIxXFx1MjBBQ1xceEFFXCJdLFxuICAgICAgW1wiYTM0MVwiLCBcIlxcdUM5NzFcXHVDOTcyXFx1Qzk3M1xcdUM5NzVcIiwgNiwgXCJcXHVDOTdEXCIsIDEwLCBcIlxcdUM5OEFcXHVDOThCXFx1Qzk4RFxcdUM5OEVcXHVDOThGXCJdLFxuICAgICAgW1wiYTM2MVwiLCBcIlxcdUM5OTFcIiwgNiwgXCJcXHVDOTlBXFx1Qzk5Q1xcdUM5OUVcIiwgMTZdLFxuICAgICAgW1wiYTM4MVwiLCBcIlxcdUM5QUZcIiwgMTYsIFwiXFx1QzlDMlxcdUM5QzNcXHVDOUM1XFx1QzlDNlxcdUM5QzlcXHVDOUNCXCIsIDQsIFwiXFx1QzlEMlxcdUM5RDRcXHVDOUQ3XFx1QzlEOFxcdUM5REJcXHVGRjAxXCIsIDU4LCBcIlxcdUZGRTZcXHVGRjNEXCIsIDMyLCBcIlxcdUZGRTNcIl0sXG4gICAgICBbXCJhNDQxXCIsIFwiXFx1QzlERVxcdUM5REZcXHVDOUUxXFx1QzlFM1xcdUM5RTVcXHVDOUU2XFx1QzlFOFxcdUM5RTlcXHVDOUVBXFx1QzlFQlxcdUM5RUVcXHVDOUYyXCIsIDUsIFwiXFx1QzlGQVxcdUM5RkJcXHVDOUZEXFx1QzlGRVxcdUM5RkZcXHVDQTAxXFx1Q0EwMlxcdUNBMDNcXHVDQTA0XCJdLFxuICAgICAgW1wiYTQ2MVwiLCBcIlxcdUNBMDVcXHVDQTA2XFx1Q0EwN1xcdUNBMEFcXHVDQTBFXCIsIDUsIFwiXFx1Q0ExNVxcdUNBMTZcXHVDQTE3XFx1Q0ExOVwiLCAxMl0sXG4gICAgICBbXCJhNDgxXCIsIFwiXFx1Q0EyNlxcdUNBMjdcXHVDQTI4XFx1Q0EyQVwiLCAyOCwgXCJcXHUzMTMxXCIsIDkzXSxcbiAgICAgIFtcImE1NDFcIiwgXCJcXHVDQTQ3XCIsIDQsIFwiXFx1Q0E0RVxcdUNBNEZcXHVDQTUxXFx1Q0E1MlxcdUNBNTNcXHVDQTU1XCIsIDYsIFwiXFx1Q0E1RVxcdUNBNjJcIiwgNSwgXCJcXHVDQTY5XFx1Q0E2QVwiXSxcbiAgICAgIFtcImE1NjFcIiwgXCJcXHVDQTZCXCIsIDE3LCBcIlxcdUNBN0VcIiwgNSwgXCJcXHVDQTg1XFx1Q0E4NlwiXSxcbiAgICAgIFtcImE1ODFcIiwgXCJcXHVDQTg3XCIsIDE2LCBcIlxcdUNBOTlcIiwgMTQsIFwiXFx1MjE3MFwiLCA5XSxcbiAgICAgIFtcImE1YjBcIiwgXCJcXHUyMTYwXCIsIDldLFxuICAgICAgW1wiYTVjMVwiLCBcIlxcdTAzOTFcIiwgMTYsIFwiXFx1MDNBM1wiLCA2XSxcbiAgICAgIFtcImE1ZTFcIiwgXCJcXHUwM0IxXCIsIDE2LCBcIlxcdTAzQzNcIiwgNl0sXG4gICAgICBbXCJhNjQxXCIsIFwiXFx1Q0FBOFwiLCAxOSwgXCJcXHVDQUJFXFx1Q0FCRlxcdUNBQzFcXHVDQUMyXFx1Q0FDM1xcdUNBQzVcIl0sXG4gICAgICBbXCJhNjYxXCIsIFwiXFx1Q0FDNlwiLCA1LCBcIlxcdUNBQ0VcXHVDQUQwXFx1Q0FEMlxcdUNBRDRcXHVDQUQ1XFx1Q0FENlxcdUNBRDdcXHVDQURBXCIsIDUsIFwiXFx1Q0FFMVwiLCA2XSxcbiAgICAgIFtcImE2ODFcIiwgXCJcXHVDQUU4XFx1Q0FFOVxcdUNBRUFcXHVDQUVCXFx1Q0FFRFwiLCA2LCBcIlxcdUNBRjVcIiwgMTgsIFwiXFx1Q0IwOVxcdUNCMEFcXHUyNTAwXFx1MjUwMlxcdTI1MENcXHUyNTEwXFx1MjUxOFxcdTI1MTRcXHUyNTFDXFx1MjUyQ1xcdTI1MjRcXHUyNTM0XFx1MjUzQ1xcdTI1MDFcXHUyNTAzXFx1MjUwRlxcdTI1MTNcXHUyNTFCXFx1MjUxN1xcdTI1MjNcXHUyNTMzXFx1MjUyQlxcdTI1M0JcXHUyNTRCXFx1MjUyMFxcdTI1MkZcXHUyNTI4XFx1MjUzN1xcdTI1M0ZcXHUyNTFEXFx1MjUzMFxcdTI1MjVcXHUyNTM4XFx1MjU0MlxcdTI1MTJcXHUyNTExXFx1MjUxQVxcdTI1MTlcXHUyNTE2XFx1MjUxNVxcdTI1MEVcXHUyNTBEXFx1MjUxRVxcdTI1MUZcXHUyNTIxXFx1MjUyMlxcdTI1MjZcXHUyNTI3XFx1MjUyOVxcdTI1MkFcXHUyNTJEXFx1MjUyRVxcdTI1MzFcXHUyNTMyXFx1MjUzNVxcdTI1MzZcXHUyNTM5XFx1MjUzQVxcdTI1M0RcXHUyNTNFXFx1MjU0MFxcdTI1NDFcXHUyNTQzXCIsIDddLFxuICAgICAgW1wiYTc0MVwiLCBcIlxcdUNCMEJcIiwgNCwgXCJcXHVDQjExXFx1Q0IxMlxcdUNCMTNcXHVDQjE1XFx1Q0IxNlxcdUNCMTdcXHVDQjE5XCIsIDYsIFwiXFx1Q0IyMlwiLCA3XSxcbiAgICAgIFtcImE3NjFcIiwgXCJcXHVDQjJBXCIsIDIyLCBcIlxcdUNCNDJcXHVDQjQzXFx1Q0I0NFwiXSxcbiAgICAgIFtcImE3ODFcIiwgXCJcXHVDQjQ1XFx1Q0I0NlxcdUNCNDdcXHVDQjRBXFx1Q0I0QlxcdUNCNERcXHVDQjRFXFx1Q0I0RlxcdUNCNTFcIiwgNiwgXCJcXHVDQjVBXFx1Q0I1QlxcdUNCNUNcXHVDQjVFXCIsIDUsIFwiXFx1Q0I2NVwiLCA3LCBcIlxcdTMzOTVcXHUzMzk2XFx1MzM5N1xcdTIxMTNcXHUzMzk4XFx1MzNDNFxcdTMzQTNcXHUzM0E0XFx1MzNBNVxcdTMzQTZcXHUzMzk5XCIsIDksIFwiXFx1MzNDQVxcdTMzOERcXHUzMzhFXFx1MzM4RlxcdTMzQ0ZcXHUzMzg4XFx1MzM4OVxcdTMzQzhcXHUzM0E3XFx1MzNBOFxcdTMzQjBcIiwgOSwgXCJcXHUzMzgwXCIsIDQsIFwiXFx1MzNCQVwiLCA1LCBcIlxcdTMzOTBcIiwgNCwgXCJcXHUyMTI2XFx1MzNDMFxcdTMzQzFcXHUzMzhBXFx1MzM4QlxcdTMzOENcXHUzM0Q2XFx1MzNDNVxcdTMzQURcXHUzM0FFXFx1MzNBRlxcdTMzREJcXHUzM0E5XFx1MzNBQVxcdTMzQUJcXHUzM0FDXFx1MzNERFxcdTMzRDBcXHUzM0QzXFx1MzNDM1xcdTMzQzlcXHUzM0RDXFx1MzNDNlwiXSxcbiAgICAgIFtcImE4NDFcIiwgXCJcXHVDQjZEXCIsIDEwLCBcIlxcdUNCN0FcIiwgMTRdLFxuICAgICAgW1wiYTg2MVwiLCBcIlxcdUNCODlcIiwgMTgsIFwiXFx1Q0I5RFwiLCA2XSxcbiAgICAgIFtcImE4ODFcIiwgXCJcXHVDQkE0XCIsIDE5LCBcIlxcdUNCQjlcIiwgMTEsIFwiXFx4QzZcXHhEMFxceEFBXFx1MDEyNlwiXSxcbiAgICAgIFtcImE4YTZcIiwgXCJcXHUwMTMyXCJdLFxuICAgICAgW1wiYThhOFwiLCBcIlxcdTAxM0ZcXHUwMTQxXFx4RDhcXHUwMTUyXFx4QkFcXHhERVxcdTAxNjZcXHUwMTRBXCJdLFxuICAgICAgW1wiYThiMVwiLCBcIlxcdTMyNjBcIiwgMjcsIFwiXFx1MjREMFwiLCAyNSwgXCJcXHUyNDYwXCIsIDE0LCBcIlxceEJEXFx1MjE1M1xcdTIxNTRcXHhCQ1xceEJFXFx1MjE1QlxcdTIxNUNcXHUyMTVEXFx1MjE1RVwiXSxcbiAgICAgIFtcImE5NDFcIiwgXCJcXHVDQkM1XCIsIDE0LCBcIlxcdUNCRDVcIiwgMTBdLFxuICAgICAgW1wiYTk2MVwiLCBcIlxcdUNCRTBcXHVDQkUxXFx1Q0JFMlxcdUNCRTNcXHVDQkU1XFx1Q0JFNlxcdUNCRThcXHVDQkVBXCIsIDE4XSxcbiAgICAgIFtcImE5ODFcIiwgXCJcXHVDQkZEXCIsIDE0LCBcIlxcdUNDMEVcXHVDQzBGXFx1Q0MxMVxcdUNDMTJcXHVDQzEzXFx1Q0MxNVwiLCA2LCBcIlxcdUNDMUVcXHVDQzFGXFx1Q0MyMFxcdUNDMjNcXHVDQzI0XFx4RTZcXHUwMTExXFx4RjBcXHUwMTI3XFx1MDEzMVxcdTAxMzNcXHUwMTM4XFx1MDE0MFxcdTAxNDJcXHhGOFxcdTAxNTNcXHhERlxceEZFXFx1MDE2N1xcdTAxNEJcXHUwMTQ5XFx1MzIwMFwiLCAyNywgXCJcXHUyNDlDXCIsIDI1LCBcIlxcdTI0NzRcIiwgMTQsIFwiXFx4QjlcXHhCMlxceEIzXFx1MjA3NFxcdTIwN0ZcXHUyMDgxXFx1MjA4MlxcdTIwODNcXHUyMDg0XCJdLFxuICAgICAgW1wiYWE0MVwiLCBcIlxcdUNDMjVcXHVDQzI2XFx1Q0MyQVxcdUNDMkJcXHVDQzJEXFx1Q0MyRlxcdUNDMzFcIiwgNiwgXCJcXHVDQzNBXFx1Q0MzRlwiLCA0LCBcIlxcdUNDNDZcXHVDQzQ3XFx1Q0M0OVxcdUNDNEFcXHVDQzRCXFx1Q0M0RFxcdUNDNEVcIl0sXG4gICAgICBbXCJhYTYxXCIsIFwiXFx1Q0M0RlwiLCA0LCBcIlxcdUNDNTZcXHVDQzVBXCIsIDUsIFwiXFx1Q0M2MVxcdUNDNjJcXHVDQzYzXFx1Q0M2NVxcdUNDNjdcXHVDQzY5XCIsIDYsIFwiXFx1Q0M3MVxcdUNDNzJcIl0sXG4gICAgICBbXCJhYTgxXCIsIFwiXFx1Q0M3M1xcdUNDNzRcXHVDQzc2XCIsIDI5LCBcIlxcdTMwNDFcIiwgODJdLFxuICAgICAgW1wiYWI0MVwiLCBcIlxcdUNDOTRcXHVDQzk1XFx1Q0M5NlxcdUNDOTdcXHVDQzlBXFx1Q0M5QlxcdUNDOURcXHVDQzlFXFx1Q0M5RlxcdUNDQTFcIiwgNiwgXCJcXHVDQ0FBXFx1Q0NBRVwiLCA1LCBcIlxcdUNDQjZcXHVDQ0I3XFx1Q0NCOVwiXSxcbiAgICAgIFtcImFiNjFcIiwgXCJcXHVDQ0JBXFx1Q0NCQlxcdUNDQkRcIiwgNiwgXCJcXHVDQ0M2XFx1Q0NDOFxcdUNDQ0FcIiwgNSwgXCJcXHVDQ0QxXFx1Q0NEMlxcdUNDRDNcXHVDQ0Q1XCIsIDVdLFxuICAgICAgW1wiYWI4MVwiLCBcIlxcdUNDREJcIiwgOCwgXCJcXHVDQ0U1XCIsIDYsIFwiXFx1Q0NFRFxcdUNDRUVcXHVDQ0VGXFx1Q0NGMVwiLCAxMiwgXCJcXHUzMEExXCIsIDg1XSxcbiAgICAgIFtcImFjNDFcIiwgXCJcXHVDQ0ZFXFx1Q0NGRlxcdUNEMDBcXHVDRDAyXCIsIDUsIFwiXFx1Q0QwQVxcdUNEMEJcXHVDRDBEXFx1Q0QwRVxcdUNEMEZcXHVDRDExXCIsIDYsIFwiXFx1Q0QxQVxcdUNEMUNcXHVDRDFFXFx1Q0QxRlxcdUNEMjBcIl0sXG4gICAgICBbXCJhYzYxXCIsIFwiXFx1Q0QyMVxcdUNEMjJcXHVDRDIzXFx1Q0QyNVxcdUNEMjZcXHVDRDI3XFx1Q0QyOVxcdUNEMkFcXHVDRDJCXFx1Q0QyRFwiLCAxMSwgXCJcXHVDRDNBXCIsIDRdLFxuICAgICAgW1wiYWM4MVwiLCBcIlxcdUNEM0ZcIiwgMjgsIFwiXFx1Q0Q1RFxcdUNENUVcXHVDRDVGXFx1MDQxMFwiLCA1LCBcIlxcdTA0MDFcXHUwNDE2XCIsIDI1XSxcbiAgICAgIFtcImFjZDFcIiwgXCJcXHUwNDMwXCIsIDUsIFwiXFx1MDQ1MVxcdTA0MzZcIiwgMjVdLFxuICAgICAgW1wiYWQ0MVwiLCBcIlxcdUNENjFcXHVDRDYyXFx1Q0Q2M1xcdUNENjVcIiwgNiwgXCJcXHVDRDZFXFx1Q0Q3MFxcdUNENzJcIiwgNSwgXCJcXHVDRDc5XCIsIDddLFxuICAgICAgW1wiYWQ2MVwiLCBcIlxcdUNEODFcIiwgNiwgXCJcXHVDRDg5XCIsIDEwLCBcIlxcdUNEOTZcXHVDRDk3XFx1Q0Q5OVxcdUNEOUFcXHVDRDlCXFx1Q0Q5RFxcdUNEOUVcXHVDRDlGXCJdLFxuICAgICAgW1wiYWQ4MVwiLCBcIlxcdUNEQTBcXHVDREExXFx1Q0RBMlxcdUNEQTNcXHVDREE2XFx1Q0RBOFxcdUNEQUFcIiwgNSwgXCJcXHVDREIxXCIsIDE4LCBcIlxcdUNEQzVcIl0sXG4gICAgICBbXCJhZTQxXCIsIFwiXFx1Q0RDNlwiLCA1LCBcIlxcdUNEQ0RcXHVDRENFXFx1Q0RDRlxcdUNERDFcIiwgMTZdLFxuICAgICAgW1wiYWU2MVwiLCBcIlxcdUNERTJcIiwgNSwgXCJcXHVDREU5XFx1Q0RFQVxcdUNERUJcXHVDREVEXFx1Q0RFRVxcdUNERUZcXHVDREYxXCIsIDYsIFwiXFx1Q0RGQVxcdUNERkNcXHVDREZFXCIsIDRdLFxuICAgICAgW1wiYWU4MVwiLCBcIlxcdUNFMDNcXHVDRTA1XFx1Q0UwNlxcdUNFMDdcXHVDRTA5XFx1Q0UwQVxcdUNFMEJcXHVDRTBEXCIsIDYsIFwiXFx1Q0UxNVxcdUNFMTZcXHVDRTE3XFx1Q0UxOFxcdUNFMUFcIiwgNSwgXCJcXHVDRTIyXFx1Q0UyM1xcdUNFMjVcXHVDRTI2XFx1Q0UyN1xcdUNFMjlcXHVDRTJBXFx1Q0UyQlwiXSxcbiAgICAgIFtcImFmNDFcIiwgXCJcXHVDRTJDXFx1Q0UyRFxcdUNFMkVcXHVDRTJGXFx1Q0UzMlxcdUNFMzRcXHVDRTM2XCIsIDE5XSxcbiAgICAgIFtcImFmNjFcIiwgXCJcXHVDRTRBXCIsIDEzLCBcIlxcdUNFNUFcXHVDRTVCXFx1Q0U1RFxcdUNFNUVcXHVDRTYyXCIsIDUsIFwiXFx1Q0U2QVxcdUNFNkNcIl0sXG4gICAgICBbXCJhZjgxXCIsIFwiXFx1Q0U2RVwiLCA1LCBcIlxcdUNFNzZcXHVDRTc3XFx1Q0U3OVxcdUNFN0FcXHVDRTdCXFx1Q0U3RFwiLCA2LCBcIlxcdUNFODZcXHVDRTg4XFx1Q0U4QVwiLCA1LCBcIlxcdUNFOTJcXHVDRTkzXFx1Q0U5NVxcdUNFOTZcXHVDRTk3XFx1Q0U5OVwiXSxcbiAgICAgIFtcImIwNDFcIiwgXCJcXHVDRTlBXCIsIDUsIFwiXFx1Q0VBMlxcdUNFQTZcIiwgNSwgXCJcXHVDRUFFXCIsIDEyXSxcbiAgICAgIFtcImIwNjFcIiwgXCJcXHVDRUJCXCIsIDUsIFwiXFx1Q0VDMlwiLCAxOV0sXG4gICAgICBbXCJiMDgxXCIsIFwiXFx1Q0VENlwiLCAxMywgXCJcXHVDRUU2XFx1Q0VFN1xcdUNFRTlcXHVDRUVBXFx1Q0VFRFwiLCA2LCBcIlxcdUNFRjZcXHVDRUZBXCIsIDUsIFwiXFx1QUMwMFxcdUFDMDFcXHVBQzA0XFx1QUMwN1xcdUFDMDhcXHVBQzA5XFx1QUMwQVxcdUFDMTBcIiwgNywgXCJcXHVBQzE5XCIsIDQsIFwiXFx1QUMyMFxcdUFDMjRcXHVBQzJDXFx1QUMyRFxcdUFDMkZcXHVBQzMwXFx1QUMzMVxcdUFDMzhcXHVBQzM5XFx1QUMzQ1xcdUFDNDBcXHVBQzRCXFx1QUM0RFxcdUFDNTRcXHVBQzU4XFx1QUM1Q1xcdUFDNzBcXHVBQzcxXFx1QUM3NFxcdUFDNzdcXHVBQzc4XFx1QUM3QVxcdUFDODBcXHVBQzgxXFx1QUM4M1xcdUFDODRcXHVBQzg1XFx1QUM4NlxcdUFDODlcXHVBQzhBXFx1QUM4QlxcdUFDOENcXHVBQzkwXFx1QUM5NFxcdUFDOUNcXHVBQzlEXFx1QUM5RlxcdUFDQTBcXHVBQ0ExXFx1QUNBOFxcdUFDQTlcXHVBQ0FBXFx1QUNBQ1xcdUFDQUZcXHVBQ0IwXFx1QUNCOFxcdUFDQjlcXHVBQ0JCXFx1QUNCQ1xcdUFDQkRcXHVBQ0MxXFx1QUNDNFxcdUFDQzhcXHVBQ0NDXFx1QUNENVxcdUFDRDdcXHVBQ0UwXFx1QUNFMVxcdUFDRTRcXHVBQ0U3XFx1QUNFOFxcdUFDRUFcXHVBQ0VDXFx1QUNFRlxcdUFDRjBcXHVBQ0YxXFx1QUNGM1xcdUFDRjVcXHVBQ0Y2XFx1QUNGQ1xcdUFDRkRcXHVBRDAwXFx1QUQwNFxcdUFEMDZcIl0sXG4gICAgICBbXCJiMTQxXCIsIFwiXFx1Q0YwMlxcdUNGMDNcXHVDRjA1XFx1Q0YwNlxcdUNGMDdcXHVDRjA5XCIsIDYsIFwiXFx1Q0YxMlxcdUNGMTRcXHVDRjE2XCIsIDUsIFwiXFx1Q0YxRFxcdUNGMUVcXHVDRjFGXFx1Q0YyMVxcdUNGMjJcXHVDRjIzXCJdLFxuICAgICAgW1wiYjE2MVwiLCBcIlxcdUNGMjVcIiwgNiwgXCJcXHVDRjJFXFx1Q0YzMlwiLCA1LCBcIlxcdUNGMzlcIiwgMTFdLFxuICAgICAgW1wiYjE4MVwiLCBcIlxcdUNGNDVcIiwgMTQsIFwiXFx1Q0Y1NlxcdUNGNTdcXHVDRjU5XFx1Q0Y1QVxcdUNGNUJcXHVDRjVEXCIsIDYsIFwiXFx1Q0Y2NlxcdUNGNjhcXHVDRjZBXFx1Q0Y2QlxcdUNGNkNcXHVBRDBDXFx1QUQwRFxcdUFEMEZcXHVBRDExXFx1QUQxOFxcdUFEMUNcXHVBRDIwXFx1QUQyOVxcdUFEMkNcXHVBRDJEXFx1QUQzNFxcdUFEMzVcXHVBRDM4XFx1QUQzQ1xcdUFENDRcXHVBRDQ1XFx1QUQ0N1xcdUFENDlcXHVBRDUwXFx1QUQ1NFxcdUFENThcXHVBRDYxXFx1QUQ2M1xcdUFENkNcXHVBRDZEXFx1QUQ3MFxcdUFENzNcXHVBRDc0XFx1QUQ3NVxcdUFENzZcXHVBRDdCXFx1QUQ3Q1xcdUFEN0RcXHVBRDdGXFx1QUQ4MVxcdUFEODJcXHVBRDg4XFx1QUQ4OVxcdUFEOENcXHVBRDkwXFx1QUQ5Q1xcdUFEOURcXHVBREE0XFx1QURCN1xcdUFEQzBcXHVBREMxXFx1QURDNFxcdUFEQzhcXHVBREQwXFx1QUREMVxcdUFERDNcXHVBRERDXFx1QURFMFxcdUFERTRcXHVBREY4XFx1QURGOVxcdUFERkNcXHVBREZGXFx1QUUwMFxcdUFFMDFcXHVBRTA4XFx1QUUwOVxcdUFFMEJcXHVBRTBEXFx1QUUxNFxcdUFFMzBcXHVBRTMxXFx1QUUzNFxcdUFFMzdcXHVBRTM4XFx1QUUzQVxcdUFFNDBcXHVBRTQxXFx1QUU0M1xcdUFFNDVcXHVBRTQ2XFx1QUU0QVxcdUFFNENcXHVBRTREXFx1QUU0RVxcdUFFNTBcXHVBRTU0XFx1QUU1NlxcdUFFNUNcXHVBRTVEXFx1QUU1RlxcdUFFNjBcXHVBRTYxXFx1QUU2NVxcdUFFNjhcXHVBRTY5XFx1QUU2Q1xcdUFFNzBcXHVBRTc4XCJdLFxuICAgICAgW1wiYjI0MVwiLCBcIlxcdUNGNkRcXHVDRjZFXFx1Q0Y2RlxcdUNGNzJcXHVDRjczXFx1Q0Y3NVxcdUNGNzZcXHVDRjc3XFx1Q0Y3OVwiLCA2LCBcIlxcdUNGODFcXHVDRjgyXFx1Q0Y4M1xcdUNGODRcXHVDRjg2XCIsIDUsIFwiXFx1Q0Y4RFwiXSxcbiAgICAgIFtcImIyNjFcIiwgXCJcXHVDRjhFXCIsIDE4LCBcIlxcdUNGQTJcIiwgNSwgXCJcXHVDRkE5XCJdLFxuICAgICAgW1wiYjI4MVwiLCBcIlxcdUNGQUFcIiwgNSwgXCJcXHVDRkIxXCIsIDE4LCBcIlxcdUNGQzVcIiwgNiwgXCJcXHVBRTc5XFx1QUU3QlxcdUFFN0NcXHVBRTdEXFx1QUU4NFxcdUFFODVcXHVBRThDXFx1QUVCQ1xcdUFFQkRcXHVBRUJFXFx1QUVDMFxcdUFFQzRcXHVBRUNDXFx1QUVDRFxcdUFFQ0ZcXHVBRUQwXFx1QUVEMVxcdUFFRDhcXHVBRUQ5XFx1QUVEQ1xcdUFFRThcXHVBRUVCXFx1QUVFRFxcdUFFRjRcXHVBRUY4XFx1QUVGQ1xcdUFGMDdcXHVBRjA4XFx1QUYwRFxcdUFGMTBcXHVBRjJDXFx1QUYyRFxcdUFGMzBcXHVBRjMyXFx1QUYzNFxcdUFGM0NcXHVBRjNEXFx1QUYzRlxcdUFGNDFcXHVBRjQyXFx1QUY0M1xcdUFGNDhcXHVBRjQ5XFx1QUY1MFxcdUFGNUNcXHVBRjVEXFx1QUY2NFxcdUFGNjVcXHVBRjc5XFx1QUY4MFxcdUFGODRcXHVBRjg4XFx1QUY5MFxcdUFGOTFcXHVBRjk1XFx1QUY5Q1xcdUFGQjhcXHVBRkI5XFx1QUZCQ1xcdUFGQzBcXHVBRkM3XFx1QUZDOFxcdUFGQzlcXHVBRkNCXFx1QUZDRFxcdUFGQ0VcXHVBRkQ0XFx1QUZEQ1xcdUFGRThcXHVBRkU5XFx1QUZGMFxcdUFGRjFcXHVBRkY0XFx1QUZGOFxcdUIwMDBcXHVCMDAxXFx1QjAwNFxcdUIwMENcXHVCMDEwXFx1QjAxNFxcdUIwMUNcXHVCMDFEXFx1QjAyOFxcdUIwNDRcXHVCMDQ1XFx1QjA0OFxcdUIwNEFcXHVCMDRDXFx1QjA0RVxcdUIwNTNcXHVCMDU0XFx1QjA1NVxcdUIwNTdcXHVCMDU5XCJdLFxuICAgICAgW1wiYjM0MVwiLCBcIlxcdUNGQ0NcIiwgMTksIFwiXFx1Q0ZFMlxcdUNGRTNcXHVDRkU1XFx1Q0ZFNlxcdUNGRTdcXHVDRkU5XCJdLFxuICAgICAgW1wiYjM2MVwiLCBcIlxcdUNGRUFcIiwgNSwgXCJcXHVDRkYyXFx1Q0ZGNFxcdUNGRjZcIiwgNSwgXCJcXHVDRkZEXFx1Q0ZGRVxcdUNGRkZcXHVEMDAxXFx1RDAwMlxcdUQwMDNcXHVEMDA1XCIsIDVdLFxuICAgICAgW1wiYjM4MVwiLCBcIlxcdUQwMEJcIiwgNSwgXCJcXHVEMDEyXCIsIDUsIFwiXFx1RDAxOVwiLCAxOSwgXCJcXHVCMDVEXFx1QjA3Q1xcdUIwN0RcXHVCMDgwXFx1QjA4NFxcdUIwOENcXHVCMDhEXFx1QjA4RlxcdUIwOTFcXHVCMDk4XFx1QjA5OVxcdUIwOUFcXHVCMDlDXFx1QjA5RlxcdUIwQTBcXHVCMEExXFx1QjBBMlxcdUIwQThcXHVCMEE5XFx1QjBBQlwiLCA0LCBcIlxcdUIwQjFcXHVCMEIzXFx1QjBCNFxcdUIwQjVcXHVCMEI4XFx1QjBCQ1xcdUIwQzRcXHVCMEM1XFx1QjBDN1xcdUIwQzhcXHVCMEM5XFx1QjBEMFxcdUIwRDFcXHVCMEQ0XFx1QjBEOFxcdUIwRTBcXHVCMEU1XFx1QjEwOFxcdUIxMDlcXHVCMTBCXFx1QjEwQ1xcdUIxMTBcXHVCMTEyXFx1QjExM1xcdUIxMThcXHVCMTE5XFx1QjExQlxcdUIxMUNcXHVCMTFEXFx1QjEyM1xcdUIxMjRcXHVCMTI1XFx1QjEyOFxcdUIxMkNcXHVCMTM0XFx1QjEzNVxcdUIxMzdcXHVCMTM4XFx1QjEzOVxcdUIxNDBcXHVCMTQxXFx1QjE0NFxcdUIxNDhcXHVCMTUwXFx1QjE1MVxcdUIxNTRcXHVCMTU1XFx1QjE1OFxcdUIxNUNcXHVCMTYwXFx1QjE3OFxcdUIxNzlcXHVCMTdDXFx1QjE4MFxcdUIxODJcXHVCMTg4XFx1QjE4OVxcdUIxOEJcXHVCMThEXFx1QjE5MlxcdUIxOTNcXHVCMTk0XFx1QjE5OFxcdUIxOUNcXHVCMUE4XFx1QjFDQ1xcdUIxRDBcXHVCMUQ0XFx1QjFEQ1xcdUIxRERcIl0sXG4gICAgICBbXCJiNDQxXCIsIFwiXFx1RDAyRVwiLCA1LCBcIlxcdUQwMzZcXHVEMDM3XFx1RDAzOVxcdUQwM0FcXHVEMDNCXFx1RDAzRFwiLCA2LCBcIlxcdUQwNDZcXHVEMDQ4XFx1RDA0QVwiLCA1XSxcbiAgICAgIFtcImI0NjFcIiwgXCJcXHVEMDUxXFx1RDA1MlxcdUQwNTNcXHVEMDU1XFx1RDA1NlxcdUQwNTdcXHVEMDU5XCIsIDYsIFwiXFx1RDA2MVwiLCAxMCwgXCJcXHVEMDZFXFx1RDA2RlwiXSxcbiAgICAgIFtcImI0ODFcIiwgXCJcXHVEMDcxXFx1RDA3MlxcdUQwNzNcXHVEMDc1XCIsIDYsIFwiXFx1RDA3RVxcdUQwN0ZcXHVEMDgwXFx1RDA4MlwiLCAxOCwgXCJcXHVCMURGXFx1QjFFOFxcdUIxRTlcXHVCMUVDXFx1QjFGMFxcdUIxRjlcXHVCMUZCXFx1QjFGRFxcdUIyMDRcXHVCMjA1XFx1QjIwOFxcdUIyMEJcXHVCMjBDXFx1QjIxNFxcdUIyMTVcXHVCMjE3XFx1QjIxOVxcdUIyMjBcXHVCMjM0XFx1QjIzQ1xcdUIyNThcXHVCMjVDXFx1QjI2MFxcdUIyNjhcXHVCMjY5XFx1QjI3NFxcdUIyNzVcXHVCMjdDXFx1QjI4NFxcdUIyODVcXHVCMjg5XFx1QjI5MFxcdUIyOTFcXHVCMjk0XFx1QjI5OFxcdUIyOTlcXHVCMjlBXFx1QjJBMFxcdUIyQTFcXHVCMkEzXFx1QjJBNVxcdUIyQTZcXHVCMkFBXFx1QjJBQ1xcdUIyQjBcXHVCMkI0XFx1QjJDOFxcdUIyQzlcXHVCMkNDXFx1QjJEMFxcdUIyRDJcXHVCMkQ4XFx1QjJEOVxcdUIyREJcXHVCMkREXFx1QjJFMlxcdUIyRTRcXHVCMkU1XFx1QjJFNlxcdUIyRThcXHVCMkVCXCIsIDQsIFwiXFx1QjJGM1xcdUIyRjRcXHVCMkY1XFx1QjJGN1wiLCA0LCBcIlxcdUIyRkZcXHVCMzAwXFx1QjMwMVxcdUIzMDRcXHVCMzA4XFx1QjMxMFxcdUIzMTFcXHVCMzEzXFx1QjMxNFxcdUIzMTVcXHVCMzFDXFx1QjM1NFxcdUIzNTVcXHVCMzU2XFx1QjM1OFxcdUIzNUJcXHVCMzVDXFx1QjM1RVxcdUIzNUZcXHVCMzY0XFx1QjM2NVwiXSxcbiAgICAgIFtcImI1NDFcIiwgXCJcXHVEMDk1XCIsIDE0LCBcIlxcdUQwQTZcXHVEMEE3XFx1RDBBOVxcdUQwQUFcXHVEMEFCXFx1RDBBRFwiLCA1XSxcbiAgICAgIFtcImI1NjFcIiwgXCJcXHVEMEIzXFx1RDBCNlxcdUQwQjhcXHVEMEJBXCIsIDUsIFwiXFx1RDBDMlxcdUQwQzNcXHVEMEM1XFx1RDBDNlxcdUQwQzdcXHVEMENBXCIsIDUsIFwiXFx1RDBEMlxcdUQwRDZcIiwgNF0sXG4gICAgICBbXCJiNTgxXCIsIFwiXFx1RDBEQlxcdUQwREVcXHVEMERGXFx1RDBFMVxcdUQwRTJcXHVEMEUzXFx1RDBFNVwiLCA2LCBcIlxcdUQwRUVcXHVEMEYyXCIsIDUsIFwiXFx1RDBGOVwiLCAxMSwgXCJcXHVCMzY3XFx1QjM2OVxcdUIzNkJcXHVCMzZFXFx1QjM3MFxcdUIzNzFcXHVCMzc0XFx1QjM3OFxcdUIzODBcXHVCMzgxXFx1QjM4M1xcdUIzODRcXHVCMzg1XFx1QjM4Q1xcdUIzOTBcXHVCMzk0XFx1QjNBMFxcdUIzQTFcXHVCM0E4XFx1QjNBQ1xcdUIzQzRcXHVCM0M1XFx1QjNDOFxcdUIzQ0JcXHVCM0NDXFx1QjNDRVxcdUIzRDBcXHVCM0Q0XFx1QjNENVxcdUIzRDdcXHVCM0Q5XFx1QjNEQlxcdUIzRERcXHVCM0UwXFx1QjNFNFxcdUIzRThcXHVCM0ZDXFx1QjQxMFxcdUI0MThcXHVCNDFDXFx1QjQyMFxcdUI0MjhcXHVCNDI5XFx1QjQyQlxcdUI0MzRcXHVCNDUwXFx1QjQ1MVxcdUI0NTRcXHVCNDU4XFx1QjQ2MFxcdUI0NjFcXHVCNDYzXFx1QjQ2NVxcdUI0NkNcXHVCNDgwXFx1QjQ4OFxcdUI0OURcXHVCNEE0XFx1QjRBOFxcdUI0QUNcXHVCNEI1XFx1QjRCN1xcdUI0QjlcXHVCNEMwXFx1QjRDNFxcdUI0QzhcXHVCNEQwXFx1QjRENVxcdUI0RENcXHVCNEREXFx1QjRFMFxcdUI0RTNcXHVCNEU0XFx1QjRFNlxcdUI0RUNcXHVCNEVEXFx1QjRFRlxcdUI0RjFcXHVCNEY4XFx1QjUxNFxcdUI1MTVcXHVCNTE4XFx1QjUxQlxcdUI1MUNcXHVCNTI0XFx1QjUyNVxcdUI1MjdcXHVCNTI4XFx1QjUyOVxcdUI1MkFcXHVCNTMwXFx1QjUzMVxcdUI1MzRcXHVCNTM4XCJdLFxuICAgICAgW1wiYjY0MVwiLCBcIlxcdUQxMDVcIiwgNywgXCJcXHVEMTBFXCIsIDE3XSxcbiAgICAgIFtcImI2NjFcIiwgXCJcXHVEMTIwXCIsIDE1LCBcIlxcdUQxMzJcXHVEMTMzXFx1RDEzNVxcdUQxMzZcXHVEMTM3XFx1RDEzOVxcdUQxM0JcXHVEMTNDXFx1RDEzRFxcdUQxM0VcIl0sXG4gICAgICBbXCJiNjgxXCIsIFwiXFx1RDEzRlxcdUQxNDJcXHVEMTQ2XCIsIDUsIFwiXFx1RDE0RVxcdUQxNEZcXHVEMTUxXFx1RDE1MlxcdUQxNTNcXHVEMTU1XCIsIDYsIFwiXFx1RDE1RVxcdUQxNjBcXHVEMTYyXCIsIDUsIFwiXFx1RDE2OVxcdUQxNkFcXHVEMTZCXFx1RDE2RFxcdUI1NDBcXHVCNTQxXFx1QjU0M1xcdUI1NDRcXHVCNTQ1XFx1QjU0QlxcdUI1NENcXHVCNTREXFx1QjU1MFxcdUI1NTRcXHVCNTVDXFx1QjU1RFxcdUI1NUZcXHVCNTYwXFx1QjU2MVxcdUI1QTBcXHVCNUExXFx1QjVBNFxcdUI1QThcXHVCNUFBXFx1QjVBQlxcdUI1QjBcXHVCNUIxXFx1QjVCM1xcdUI1QjRcXHVCNUI1XFx1QjVCQlxcdUI1QkNcXHVCNUJEXFx1QjVDMFxcdUI1QzRcXHVCNUNDXFx1QjVDRFxcdUI1Q0ZcXHVCNUQwXFx1QjVEMVxcdUI1RDhcXHVCNUVDXFx1QjYxMFxcdUI2MTFcXHVCNjE0XFx1QjYxOFxcdUI2MjVcXHVCNjJDXFx1QjYzNFxcdUI2NDhcXHVCNjY0XFx1QjY2OFxcdUI2OUNcXHVCNjlEXFx1QjZBMFxcdUI2QTRcXHVCNkFCXFx1QjZBQ1xcdUI2QjFcXHVCNkQ0XFx1QjZGMFxcdUI2RjRcXHVCNkY4XFx1QjcwMFxcdUI3MDFcXHVCNzA1XFx1QjcyOFxcdUI3MjlcXHVCNzJDXFx1QjcyRlxcdUI3MzBcXHVCNzM4XFx1QjczOVxcdUI3M0JcXHVCNzQ0XFx1Qjc0OFxcdUI3NENcXHVCNzU0XFx1Qjc1NVxcdUI3NjBcXHVCNzY0XFx1Qjc2OFxcdUI3NzBcXHVCNzcxXFx1Qjc3M1xcdUI3NzVcXHVCNzdDXFx1Qjc3RFxcdUI3ODBcXHVCNzg0XFx1Qjc4Q1xcdUI3OERcXHVCNzhGXFx1Qjc5MFxcdUI3OTFcXHVCNzkyXFx1Qjc5NlxcdUI3OTdcIl0sXG4gICAgICBbXCJiNzQxXCIsIFwiXFx1RDE2RVwiLCAxMywgXCJcXHVEMTdEXCIsIDYsIFwiXFx1RDE4NVxcdUQxODZcXHVEMTg3XFx1RDE4OVxcdUQxOEFcIl0sXG4gICAgICBbXCJiNzYxXCIsIFwiXFx1RDE4QlwiLCAyMCwgXCJcXHVEMUEyXFx1RDFBM1xcdUQxQTVcXHVEMUE2XFx1RDFBN1wiXSxcbiAgICAgIFtcImI3ODFcIiwgXCJcXHVEMUE5XCIsIDYsIFwiXFx1RDFCMlxcdUQxQjRcXHVEMUI2XFx1RDFCN1xcdUQxQjhcXHVEMUI5XFx1RDFCQlxcdUQxQkRcXHVEMUJFXFx1RDFCRlxcdUQxQzFcIiwgMTQsIFwiXFx1Qjc5OFxcdUI3OTlcXHVCNzlDXFx1QjdBMFxcdUI3QThcXHVCN0E5XFx1QjdBQlxcdUI3QUNcXHVCN0FEXFx1QjdCNFxcdUI3QjVcXHVCN0I4XFx1QjdDN1xcdUI3QzlcXHVCN0VDXFx1QjdFRFxcdUI3RjBcXHVCN0Y0XFx1QjdGQ1xcdUI3RkRcXHVCN0ZGXFx1QjgwMFxcdUI4MDFcXHVCODA3XFx1QjgwOFxcdUI4MDlcXHVCODBDXFx1QjgxMFxcdUI4MThcXHVCODE5XFx1QjgxQlxcdUI4MURcXHVCODI0XFx1QjgyNVxcdUI4MjhcXHVCODJDXFx1QjgzNFxcdUI4MzVcXHVCODM3XFx1QjgzOFxcdUI4MzlcXHVCODQwXFx1Qjg0NFxcdUI4NTFcXHVCODUzXFx1Qjg1Q1xcdUI4NURcXHVCODYwXFx1Qjg2NFxcdUI4NkNcXHVCODZEXFx1Qjg2RlxcdUI4NzFcXHVCODc4XFx1Qjg3Q1xcdUI4OERcXHVCOEE4XFx1QjhCMFxcdUI4QjRcXHVCOEI4XFx1QjhDMFxcdUI4QzFcXHVCOEMzXFx1QjhDNVxcdUI4Q0NcXHVCOEQwXFx1QjhENFxcdUI4RERcXHVCOERGXFx1QjhFMVxcdUI4RThcXHVCOEU5XFx1QjhFQ1xcdUI4RjBcXHVCOEY4XFx1QjhGOVxcdUI4RkJcXHVCOEZEXFx1QjkwNFxcdUI5MThcXHVCOTIwXFx1QjkzQ1xcdUI5M0RcXHVCOTQwXFx1Qjk0NFxcdUI5NENcXHVCOTRGXFx1Qjk1MVxcdUI5NThcXHVCOTU5XFx1Qjk1Q1xcdUI5NjBcXHVCOTY4XFx1Qjk2OVwiXSxcbiAgICAgIFtcImI4NDFcIiwgXCJcXHVEMUQwXCIsIDcsIFwiXFx1RDFEOVwiLCAxN10sXG4gICAgICBbXCJiODYxXCIsIFwiXFx1RDFFQlwiLCA4LCBcIlxcdUQxRjVcXHVEMUY2XFx1RDFGN1xcdUQxRjlcIiwgMTNdLFxuICAgICAgW1wiYjg4MVwiLCBcIlxcdUQyMDhcXHVEMjBBXCIsIDUsIFwiXFx1RDIxMVwiLCAyNCwgXCJcXHVCOTZCXFx1Qjk2RFxcdUI5NzRcXHVCOTc1XFx1Qjk3OFxcdUI5N0NcXHVCOTg0XFx1Qjk4NVxcdUI5ODdcXHVCOTg5XFx1Qjk4QVxcdUI5OERcXHVCOThFXFx1QjlBQ1xcdUI5QURcXHVCOUIwXFx1QjlCNFxcdUI5QkNcXHVCOUJEXFx1QjlCRlxcdUI5QzFcXHVCOUM4XFx1QjlDOVxcdUI5Q0NcXHVCOUNFXCIsIDQsIFwiXFx1QjlEOFxcdUI5RDlcXHVCOURCXFx1QjlERFxcdUI5REVcXHVCOUUxXFx1QjlFM1xcdUI5RTRcXHVCOUU1XFx1QjlFOFxcdUI5RUNcXHVCOUY0XFx1QjlGNVxcdUI5RjdcXHVCOUY4XFx1QjlGOVxcdUI5RkFcXHVCQTAwXFx1QkEwMVxcdUJBMDhcXHVCQTE1XFx1QkEzOFxcdUJBMzlcXHVCQTNDXFx1QkE0MFxcdUJBNDJcXHVCQTQ4XFx1QkE0OVxcdUJBNEJcXHVCQTREXFx1QkE0RVxcdUJBNTNcXHVCQTU0XFx1QkE1NVxcdUJBNThcXHVCQTVDXFx1QkE2NFxcdUJBNjVcXHVCQTY3XFx1QkE2OFxcdUJBNjlcXHVCQTcwXFx1QkE3MVxcdUJBNzRcXHVCQTc4XFx1QkE4M1xcdUJBODRcXHVCQTg1XFx1QkE4N1xcdUJBOENcXHVCQUE4XFx1QkFBOVxcdUJBQUJcXHVCQUFDXFx1QkFCMFxcdUJBQjJcXHVCQUI4XFx1QkFCOVxcdUJBQkJcXHVCQUJEXFx1QkFDNFxcdUJBQzhcXHVCQUQ4XFx1QkFEOVxcdUJBRkNcIl0sXG4gICAgICBbXCJiOTQxXCIsIFwiXFx1RDIyQVxcdUQyMkJcXHVEMjJFXFx1RDIyRlxcdUQyMzFcXHVEMjMyXFx1RDIzM1xcdUQyMzVcIiwgNiwgXCJcXHVEMjNFXFx1RDI0MFxcdUQyNDJcIiwgNSwgXCJcXHVEMjQ5XFx1RDI0QVxcdUQyNEJcXHVEMjRDXCJdLFxuICAgICAgW1wiYjk2MVwiLCBcIlxcdUQyNERcIiwgMTQsIFwiXFx1RDI1RFwiLCA2LCBcIlxcdUQyNjVcXHVEMjY2XFx1RDI2N1xcdUQyNjhcIl0sXG4gICAgICBbXCJiOTgxXCIsIFwiXFx1RDI2OVwiLCAyMiwgXCJcXHVEMjgyXFx1RDI4M1xcdUQyODVcXHVEMjg2XFx1RDI4N1xcdUQyODlcXHVEMjhBXFx1RDI4QlxcdUQyOENcXHVCQjAwXFx1QkIwNFxcdUJCMERcXHVCQjBGXFx1QkIxMVxcdUJCMThcXHVCQjFDXFx1QkIyMFxcdUJCMjlcXHVCQjJCXFx1QkIzNFxcdUJCMzVcXHVCQjM2XFx1QkIzOFxcdUJCM0JcXHVCQjNDXFx1QkIzRFxcdUJCM0VcXHVCQjQ0XFx1QkI0NVxcdUJCNDdcXHVCQjQ5XFx1QkI0RFxcdUJCNEZcXHVCQjUwXFx1QkI1NFxcdUJCNThcXHVCQjYxXFx1QkI2M1xcdUJCNkNcXHVCQjg4XFx1QkI4Q1xcdUJCOTBcXHVCQkE0XFx1QkJBOFxcdUJCQUNcXHVCQkI0XFx1QkJCN1xcdUJCQzBcXHVCQkM0XFx1QkJDOFxcdUJCRDBcXHVCQkQzXFx1QkJGOFxcdUJCRjlcXHVCQkZDXFx1QkJGRlxcdUJDMDBcXHVCQzAyXFx1QkMwOFxcdUJDMDlcXHVCQzBCXFx1QkMwQ1xcdUJDMERcXHVCQzBGXFx1QkMxMVxcdUJDMTRcIiwgNCwgXCJcXHVCQzFCXCIsIDQsIFwiXFx1QkMyNFxcdUJDMjVcXHVCQzI3XFx1QkMyOVxcdUJDMkRcXHVCQzMwXFx1QkMzMVxcdUJDMzRcXHVCQzM4XFx1QkM0MFxcdUJDNDFcXHVCQzQzXFx1QkM0NFxcdUJDNDVcXHVCQzQ5XFx1QkM0Q1xcdUJDNERcXHVCQzUwXFx1QkM1RFxcdUJDODRcXHVCQzg1XFx1QkM4OFxcdUJDOEJcXHVCQzhDXFx1QkM4RVxcdUJDOTRcXHVCQzk1XFx1QkM5N1wiXSxcbiAgICAgIFtcImJhNDFcIiwgXCJcXHVEMjhEXFx1RDI4RVxcdUQyOEZcXHVEMjkyXFx1RDI5M1xcdUQyOTRcXHVEMjk2XCIsIDUsIFwiXFx1RDI5RFxcdUQyOUVcXHVEMjlGXFx1RDJBMVxcdUQyQTJcXHVEMkEzXFx1RDJBNVwiLCA2LCBcIlxcdUQyQURcIl0sXG4gICAgICBbXCJiYTYxXCIsIFwiXFx1RDJBRVxcdUQyQUZcXHVEMkIwXFx1RDJCMlwiLCA1LCBcIlxcdUQyQkFcXHVEMkJCXFx1RDJCRFxcdUQyQkVcXHVEMkMxXFx1RDJDM1wiLCA0LCBcIlxcdUQyQ0FcXHVEMkNDXCIsIDVdLFxuICAgICAgW1wiYmE4MVwiLCBcIlxcdUQyRDJcXHVEMkQzXFx1RDJENVxcdUQyRDZcXHVEMkQ3XFx1RDJEOVxcdUQyREFcXHVEMkRCXFx1RDJERFwiLCA2LCBcIlxcdUQyRTZcIiwgOSwgXCJcXHVEMkYyXFx1RDJGM1xcdUQyRjVcXHVEMkY2XFx1RDJGN1xcdUQyRjlcXHVEMkZBXFx1QkM5OVxcdUJDOUFcXHVCQ0EwXFx1QkNBMVxcdUJDQTRcXHVCQ0E3XFx1QkNBOFxcdUJDQjBcXHVCQ0IxXFx1QkNCM1xcdUJDQjRcXHVCQ0I1XFx1QkNCQ1xcdUJDQkRcXHVCQ0MwXFx1QkNDNFxcdUJDQ0RcXHVCQ0NGXFx1QkNEMFxcdUJDRDFcXHVCQ0Q1XFx1QkNEOFxcdUJDRENcXHVCQ0Y0XFx1QkNGNVxcdUJDRjZcXHVCQ0Y4XFx1QkNGQ1xcdUJEMDRcXHVCRDA1XFx1QkQwN1xcdUJEMDlcXHVCRDEwXFx1QkQxNFxcdUJEMjRcXHVCRDJDXFx1QkQ0MFxcdUJENDhcXHVCRDQ5XFx1QkQ0Q1xcdUJENTBcXHVCRDU4XFx1QkQ1OVxcdUJENjRcXHVCRDY4XFx1QkQ4MFxcdUJEODFcXHVCRDg0XFx1QkQ4N1xcdUJEODhcXHVCRDg5XFx1QkQ4QVxcdUJEOTBcXHVCRDkxXFx1QkQ5M1xcdUJEOTVcXHVCRDk5XFx1QkQ5QVxcdUJEOUNcXHVCREE0XFx1QkRCMFxcdUJEQjhcXHVCREQ0XFx1QkRENVxcdUJERDhcXHVCRERDXFx1QkRFOVxcdUJERjBcXHVCREY0XFx1QkRGOFxcdUJFMDBcXHVCRTAzXFx1QkUwNVxcdUJFMENcXHVCRTBEXFx1QkUxMFxcdUJFMTRcXHVCRTFDXFx1QkUxRFxcdUJFMUZcXHVCRTQ0XFx1QkU0NVxcdUJFNDhcXHVCRTRDXFx1QkU0RVxcdUJFNTRcXHVCRTU1XFx1QkU1N1xcdUJFNTlcXHVCRTVBXFx1QkU1QlxcdUJFNjBcXHVCRTYxXFx1QkU2NFwiXSxcbiAgICAgIFtcImJiNDFcIiwgXCJcXHVEMkZCXCIsIDQsIFwiXFx1RDMwMlxcdUQzMDRcXHVEMzA2XCIsIDUsIFwiXFx1RDMwRlxcdUQzMTFcXHVEMzEyXFx1RDMxM1xcdUQzMTVcXHVEMzE3XCIsIDQsIFwiXFx1RDMxRVxcdUQzMjJcXHVEMzIzXCJdLFxuICAgICAgW1wiYmI2MVwiLCBcIlxcdUQzMjRcXHVEMzI2XFx1RDMyN1xcdUQzMkFcXHVEMzJCXFx1RDMyRFxcdUQzMkVcXHVEMzJGXFx1RDMzMVwiLCA2LCBcIlxcdUQzM0FcXHVEMzNFXCIsIDUsIFwiXFx1RDM0NlxcdUQzNDdcXHVEMzQ4XFx1RDM0OVwiXSxcbiAgICAgIFtcImJiODFcIiwgXCJcXHVEMzRBXCIsIDMxLCBcIlxcdUJFNjhcXHVCRTZBXFx1QkU3MFxcdUJFNzFcXHVCRTczXFx1QkU3NFxcdUJFNzVcXHVCRTdCXFx1QkU3Q1xcdUJFN0RcXHVCRTgwXFx1QkU4NFxcdUJFOENcXHVCRThEXFx1QkU4RlxcdUJFOTBcXHVCRTkxXFx1QkU5OFxcdUJFOTlcXHVCRUE4XFx1QkVEMFxcdUJFRDFcXHVCRUQ0XFx1QkVEN1xcdUJFRDhcXHVCRUUwXFx1QkVFM1xcdUJFRTRcXHVCRUU1XFx1QkVFQ1xcdUJGMDFcXHVCRjA4XFx1QkYwOVxcdUJGMThcXHVCRjE5XFx1QkYxQlxcdUJGMUNcXHVCRjFEXFx1QkY0MFxcdUJGNDFcXHVCRjQ0XFx1QkY0OFxcdUJGNTBcXHVCRjUxXFx1QkY1NVxcdUJGOTRcXHVCRkIwXFx1QkZDNVxcdUJGQ0NcXHVCRkNEXFx1QkZEMFxcdUJGRDRcXHVCRkRDXFx1QkZERlxcdUJGRTFcXHVDMDNDXFx1QzA1MVxcdUMwNThcXHVDMDVDXFx1QzA2MFxcdUMwNjhcXHVDMDY5XFx1QzA5MFxcdUMwOTFcXHVDMDk0XFx1QzA5OFxcdUMwQTBcXHVDMEExXFx1QzBBM1xcdUMwQTVcXHVDMEFDXFx1QzBBRFxcdUMwQUZcXHVDMEIwXFx1QzBCM1xcdUMwQjRcXHVDMEI1XFx1QzBCNlxcdUMwQkNcXHVDMEJEXFx1QzBCRlxcdUMwQzBcXHVDMEMxXFx1QzBDNVxcdUMwQzhcXHVDMEM5XFx1QzBDQ1xcdUMwRDBcXHVDMEQ4XFx1QzBEOVxcdUMwREJcXHVDMERDXFx1QzBERFxcdUMwRTRcIl0sXG4gICAgICBbXCJiYzQxXCIsIFwiXFx1RDM2QVwiLCAxNywgXCJcXHVEMzdFXFx1RDM3RlxcdUQzODFcXHVEMzgyXFx1RDM4M1xcdUQzODVcXHVEMzg2XFx1RDM4N1wiXSxcbiAgICAgIFtcImJjNjFcIiwgXCJcXHVEMzg4XFx1RDM4OVxcdUQzOEFcXHVEMzhCXFx1RDM4RVxcdUQzOTJcIiwgNSwgXCJcXHVEMzlBXFx1RDM5QlxcdUQzOURcXHVEMzlFXFx1RDM5RlxcdUQzQTFcIiwgNiwgXCJcXHVEM0FBXFx1RDNBQ1xcdUQzQUVcIl0sXG4gICAgICBbXCJiYzgxXCIsIFwiXFx1RDNBRlwiLCA0LCBcIlxcdUQzQjVcXHVEM0I2XFx1RDNCN1xcdUQzQjlcXHVEM0JBXFx1RDNCQlxcdUQzQkRcIiwgNiwgXCJcXHVEM0M2XFx1RDNDN1xcdUQzQ0FcIiwgNSwgXCJcXHVEM0QxXCIsIDUsIFwiXFx1QzBFNVxcdUMwRThcXHVDMEVDXFx1QzBGNFxcdUMwRjVcXHVDMEY3XFx1QzBGOVxcdUMxMDBcXHVDMTA0XFx1QzEwOFxcdUMxMTBcXHVDMTE1XFx1QzExQ1wiLCA0LCBcIlxcdUMxMjNcXHVDMTI0XFx1QzEyNlxcdUMxMjdcXHVDMTJDXFx1QzEyRFxcdUMxMkZcXHVDMTMwXFx1QzEzMVxcdUMxMzZcXHVDMTM4XFx1QzEzOVxcdUMxM0NcXHVDMTQwXFx1QzE0OFxcdUMxNDlcXHVDMTRCXFx1QzE0Q1xcdUMxNERcXHVDMTU0XFx1QzE1NVxcdUMxNThcXHVDMTVDXFx1QzE2NFxcdUMxNjVcXHVDMTY3XFx1QzE2OFxcdUMxNjlcXHVDMTcwXFx1QzE3NFxcdUMxNzhcXHVDMTg1XFx1QzE4Q1xcdUMxOERcXHVDMThFXFx1QzE5MFxcdUMxOTRcXHVDMTk2XFx1QzE5Q1xcdUMxOURcXHVDMTlGXFx1QzFBMVxcdUMxQTVcXHVDMUE4XFx1QzFBOVxcdUMxQUNcXHVDMUIwXFx1QzFCRFxcdUMxQzRcXHVDMUM4XFx1QzFDQ1xcdUMxRDRcXHVDMUQ3XFx1QzFEOFxcdUMxRTBcXHVDMUU0XFx1QzFFOFxcdUMxRjBcXHVDMUYxXFx1QzFGM1xcdUMxRkNcXHVDMUZEXFx1QzIwMFxcdUMyMDRcXHVDMjBDXFx1QzIwRFxcdUMyMEZcXHVDMjExXFx1QzIxOFxcdUMyMTlcXHVDMjFDXFx1QzIxRlxcdUMyMjBcXHVDMjI4XFx1QzIyOVxcdUMyMkJcXHVDMjJEXCJdLFxuICAgICAgW1wiYmQ0MVwiLCBcIlxcdUQzRDdcXHVEM0Q5XCIsIDcsIFwiXFx1RDNFMlxcdUQzRTRcIiwgNywgXCJcXHVEM0VFXFx1RDNFRlxcdUQzRjFcXHVEM0YyXFx1RDNGM1xcdUQzRjVcXHVEM0Y2XFx1RDNGN1wiXSxcbiAgICAgIFtcImJkNjFcIiwgXCJcXHVEM0Y4XFx1RDNGOVxcdUQzRkFcXHVEM0ZCXFx1RDNGRVxcdUQ0MDBcXHVENDAyXCIsIDUsIFwiXFx1RDQwOVwiLCAxM10sXG4gICAgICBbXCJiZDgxXCIsIFwiXFx1RDQxN1wiLCA1LCBcIlxcdUQ0MUVcIiwgMjUsIFwiXFx1QzIyRlxcdUMyMzFcXHVDMjMyXFx1QzIzNFxcdUMyNDhcXHVDMjUwXFx1QzI1MVxcdUMyNTRcXHVDMjU4XFx1QzI2MFxcdUMyNjVcXHVDMjZDXFx1QzI2RFxcdUMyNzBcXHVDMjc0XFx1QzI3Q1xcdUMyN0RcXHVDMjdGXFx1QzI4MVxcdUMyODhcXHVDMjg5XFx1QzI5MFxcdUMyOThcXHVDMjlCXFx1QzI5RFxcdUMyQTRcXHVDMkE1XFx1QzJBOFxcdUMyQUNcXHVDMkFEXFx1QzJCNFxcdUMyQjVcXHVDMkI3XFx1QzJCOVxcdUMyRENcXHVDMkREXFx1QzJFMFxcdUMyRTNcXHVDMkU0XFx1QzJFQlxcdUMyRUNcXHVDMkVEXFx1QzJFRlxcdUMyRjFcXHVDMkY2XFx1QzJGOFxcdUMyRjlcXHVDMkZCXFx1QzJGQ1xcdUMzMDBcXHVDMzA4XFx1QzMwOVxcdUMzMENcXHVDMzBEXFx1QzMxM1xcdUMzMTRcXHVDMzE1XFx1QzMxOFxcdUMzMUNcXHVDMzI0XFx1QzMyNVxcdUMzMjhcXHVDMzI5XFx1QzM0NVxcdUMzNjhcXHVDMzY5XFx1QzM2Q1xcdUMzNzBcXHVDMzcyXFx1QzM3OFxcdUMzNzlcXHVDMzdDXFx1QzM3RFxcdUMzODRcXHVDMzg4XFx1QzM4Q1xcdUMzQzBcXHVDM0Q4XFx1QzNEOVxcdUMzRENcXHVDM0RGXFx1QzNFMFxcdUMzRTJcXHVDM0U4XFx1QzNFOVxcdUMzRURcXHVDM0Y0XFx1QzNGNVxcdUMzRjhcXHVDNDA4XFx1QzQxMFxcdUM0MjRcXHVDNDJDXFx1QzQzMFwiXSxcbiAgICAgIFtcImJlNDFcIiwgXCJcXHVENDM4XCIsIDcsIFwiXFx1RDQ0MVxcdUQ0NDJcXHVENDQzXFx1RDQ0NVwiLCAxNF0sXG4gICAgICBbXCJiZTYxXCIsIFwiXFx1RDQ1NFwiLCA3LCBcIlxcdUQ0NURcXHVENDVFXFx1RDQ1RlxcdUQ0NjFcXHVENDYyXFx1RDQ2M1xcdUQ0NjVcIiwgNywgXCJcXHVENDZFXFx1RDQ3MFxcdUQ0NzFcXHVENDcyXCJdLFxuICAgICAgW1wiYmU4MVwiLCBcIlxcdUQ0NzNcIiwgNCwgXCJcXHVENDdBXFx1RDQ3QlxcdUQ0N0RcXHVENDdFXFx1RDQ4MVxcdUQ0ODNcIiwgNCwgXCJcXHVENDhBXFx1RDQ4Q1xcdUQ0OEVcIiwgNSwgXCJcXHVENDk1XCIsIDgsIFwiXFx1QzQzNFxcdUM0M0NcXHVDNDNEXFx1QzQ0OFxcdUM0NjRcXHVDNDY1XFx1QzQ2OFxcdUM0NkNcXHVDNDc0XFx1QzQ3NVxcdUM0NzlcXHVDNDgwXFx1QzQ5NFxcdUM0OUNcXHVDNEI4XFx1QzRCQ1xcdUM0RTlcXHVDNEYwXFx1QzRGMVxcdUM0RjRcXHVDNEY4XFx1QzRGQVxcdUM0RkZcXHVDNTAwXFx1QzUwMVxcdUM1MENcXHVDNTEwXFx1QzUxNFxcdUM1MUNcXHVDNTI4XFx1QzUyOVxcdUM1MkNcXHVDNTMwXFx1QzUzOFxcdUM1MzlcXHVDNTNCXFx1QzUzRFxcdUM1NDRcXHVDNTQ1XFx1QzU0OFxcdUM1NDlcXHVDNTRBXFx1QzU0Q1xcdUM1NERcXHVDNTRFXFx1QzU1M1xcdUM1NTRcXHVDNTU1XFx1QzU1N1xcdUM1NThcXHVDNTU5XFx1QzU1RFxcdUM1NUVcXHVDNTYwXFx1QzU2MVxcdUM1NjRcXHVDNTY4XFx1QzU3MFxcdUM1NzFcXHVDNTczXFx1QzU3NFxcdUM1NzVcXHVDNTdDXFx1QzU3RFxcdUM1ODBcXHVDNTg0XFx1QzU4N1xcdUM1OENcXHVDNThEXFx1QzU4RlxcdUM1OTFcXHVDNTk1XFx1QzU5N1xcdUM1OThcXHVDNTlDXFx1QzVBMFxcdUM1QTlcXHVDNUI0XFx1QzVCNVxcdUM1QjhcXHVDNUI5XFx1QzVCQlxcdUM1QkNcXHVDNUJEXFx1QzVCRVxcdUM1QzRcIiwgNiwgXCJcXHVDNUNDXFx1QzVDRVwiXSxcbiAgICAgIFtcImJmNDFcIiwgXCJcXHVENDlFXCIsIDEwLCBcIlxcdUQ0QUFcIiwgMTRdLFxuICAgICAgW1wiYmY2MVwiLCBcIlxcdUQ0QjlcIiwgMTgsIFwiXFx1RDRDRFxcdUQ0Q0VcXHVENENGXFx1RDREMVxcdUQ0RDJcXHVENEQzXFx1RDRENVwiXSxcbiAgICAgIFtcImJmODFcIiwgXCJcXHVENEQ2XCIsIDUsIFwiXFx1RDRERFxcdUQ0REVcXHVENEUwXCIsIDcsIFwiXFx1RDRFOVxcdUQ0RUFcXHVENEVCXFx1RDRFRFxcdUQ0RUVcXHVENEVGXFx1RDRGMVwiLCA2LCBcIlxcdUQ0RjlcXHVENEZBXFx1RDRGQ1xcdUM1RDBcXHVDNUQxXFx1QzVENFxcdUM1RDhcXHVDNUUwXFx1QzVFMVxcdUM1RTNcXHVDNUU1XFx1QzVFQ1xcdUM1RURcXHVDNUVFXFx1QzVGMFxcdUM1RjRcXHVDNUY2XFx1QzVGN1xcdUM1RkNcIiwgNSwgXCJcXHVDNjA1XFx1QzYwNlxcdUM2MDdcXHVDNjA4XFx1QzYwQ1xcdUM2MTBcXHVDNjE4XFx1QzYxOVxcdUM2MUJcXHVDNjFDXFx1QzYyNFxcdUM2MjVcXHVDNjI4XFx1QzYyQ1xcdUM2MkRcXHVDNjJFXFx1QzYzMFxcdUM2MzNcXHVDNjM0XFx1QzYzNVxcdUM2MzdcXHVDNjM5XFx1QzYzQlxcdUM2NDBcXHVDNjQxXFx1QzY0NFxcdUM2NDhcXHVDNjUwXFx1QzY1MVxcdUM2NTNcXHVDNjU0XFx1QzY1NVxcdUM2NUNcXHVDNjVEXFx1QzY2MFxcdUM2NkNcXHVDNjZGXFx1QzY3MVxcdUM2NzhcXHVDNjc5XFx1QzY3Q1xcdUM2ODBcXHVDNjg4XFx1QzY4OVxcdUM2OEJcXHVDNjhEXFx1QzY5NFxcdUM2OTVcXHVDNjk4XFx1QzY5Q1xcdUM2QTRcXHVDNkE1XFx1QzZBN1xcdUM2QTlcXHVDNkIwXFx1QzZCMVxcdUM2QjRcXHVDNkI4XFx1QzZCOVxcdUM2QkFcXHVDNkMwXFx1QzZDMVxcdUM2QzNcXHVDNkM1XFx1QzZDQ1xcdUM2Q0RcXHVDNkQwXFx1QzZENFxcdUM2RENcXHVDNkREXFx1QzZFMFxcdUM2RTFcXHVDNkU4XCJdLFxuICAgICAgW1wiYzA0MVwiLCBcIlxcdUQ0RkVcIiwgNSwgXCJcXHVENTA1XFx1RDUwNlxcdUQ1MDdcXHVENTA5XFx1RDUwQVxcdUQ1MEJcXHVENTBEXCIsIDYsIFwiXFx1RDUxNlxcdUQ1MThcIiwgNV0sXG4gICAgICBbXCJjMDYxXCIsIFwiXFx1RDUxRVwiLCAyNV0sXG4gICAgICBbXCJjMDgxXCIsIFwiXFx1RDUzOFxcdUQ1MzlcXHVENTNBXFx1RDUzQlxcdUQ1M0VcXHVENTNGXFx1RDU0MVxcdUQ1NDJcXHVENTQzXFx1RDU0NVwiLCA2LCBcIlxcdUQ1NEVcXHVENTUwXFx1RDU1MlwiLCA1LCBcIlxcdUQ1NUFcXHVENTVCXFx1RDU1RFxcdUQ1NUVcXHVENTVGXFx1RDU2MVxcdUQ1NjJcXHVENTYzXFx1QzZFOVxcdUM2RUNcXHVDNkYwXFx1QzZGOFxcdUM2RjlcXHVDNkZEXFx1QzcwNFxcdUM3MDVcXHVDNzA4XFx1QzcwQ1xcdUM3MTRcXHVDNzE1XFx1QzcxN1xcdUM3MTlcXHVDNzIwXFx1QzcyMVxcdUM3MjRcXHVDNzI4XFx1QzczMFxcdUM3MzFcXHVDNzMzXFx1QzczNVxcdUM3MzdcXHVDNzNDXFx1QzczRFxcdUM3NDBcXHVDNzQ0XFx1Qzc0QVxcdUM3NENcXHVDNzREXFx1Qzc0RlxcdUM3NTFcIiwgNywgXCJcXHVDNzVDXFx1Qzc2MFxcdUM3NjhcXHVDNzZCXFx1Qzc3NFxcdUM3NzVcXHVDNzc4XFx1Qzc3Q1xcdUM3N0RcXHVDNzdFXFx1Qzc4M1xcdUM3ODRcXHVDNzg1XFx1Qzc4N1xcdUM3ODhcXHVDNzg5XFx1Qzc4QVxcdUM3OEVcXHVDNzkwXFx1Qzc5MVxcdUM3OTRcXHVDNzk2XFx1Qzc5N1xcdUM3OThcXHVDNzlBXFx1QzdBMFxcdUM3QTFcXHVDN0EzXFx1QzdBNFxcdUM3QTVcXHVDN0E2XFx1QzdBQ1xcdUM3QURcXHVDN0IwXFx1QzdCNFxcdUM3QkNcXHVDN0JEXFx1QzdCRlxcdUM3QzBcXHVDN0MxXFx1QzdDOFxcdUM3QzlcXHVDN0NDXFx1QzdDRVxcdUM3RDBcXHVDN0Q4XFx1QzdERFxcdUM3RTRcXHVDN0U4XFx1QzdFQ1xcdUM4MDBcXHVDODAxXFx1QzgwNFxcdUM4MDhcXHVDODBBXCJdLFxuICAgICAgW1wiYzE0MVwiLCBcIlxcdUQ1NjRcXHVENTY2XFx1RDU2N1xcdUQ1NkFcXHVENTZDXFx1RDU2RVwiLCA1LCBcIlxcdUQ1NzZcXHVENTc3XFx1RDU3OVxcdUQ1N0FcXHVENTdCXFx1RDU3RFwiLCA2LCBcIlxcdUQ1ODZcXHVENThBXFx1RDU4QlwiXSxcbiAgICAgIFtcImMxNjFcIiwgXCJcXHVENThDXFx1RDU4RFxcdUQ1OEVcXHVENThGXFx1RDU5MVwiLCAxOSwgXCJcXHVENUE2XFx1RDVBN1wiXSxcbiAgICAgIFtcImMxODFcIiwgXCJcXHVENUE4XCIsIDMxLCBcIlxcdUM4MTBcXHVDODExXFx1QzgxM1xcdUM4MTVcXHVDODE2XFx1QzgxQ1xcdUM4MURcXHVDODIwXFx1QzgyNFxcdUM4MkNcXHVDODJEXFx1QzgyRlxcdUM4MzFcXHVDODM4XFx1QzgzQ1xcdUM4NDBcXHVDODQ4XFx1Qzg0OVxcdUM4NENcXHVDODREXFx1Qzg1NFxcdUM4NzBcXHVDODcxXFx1Qzg3NFxcdUM4NzhcXHVDODdBXFx1Qzg4MFxcdUM4ODFcXHVDODgzXFx1Qzg4NVxcdUM4ODZcXHVDODg3XFx1Qzg4QlxcdUM4OENcXHVDODhEXFx1Qzg5NFxcdUM4OURcXHVDODlGXFx1QzhBMVxcdUM4QThcXHVDOEJDXFx1QzhCRFxcdUM4QzRcXHVDOEM4XFx1QzhDQ1xcdUM4RDRcXHVDOEQ1XFx1QzhEN1xcdUM4RDlcXHVDOEUwXFx1QzhFMVxcdUM4RTRcXHVDOEY1XFx1QzhGQ1xcdUM4RkRcXHVDOTAwXFx1QzkwNFxcdUM5MDVcXHVDOTA2XFx1QzkwQ1xcdUM5MERcXHVDOTBGXFx1QzkxMVxcdUM5MThcXHVDOTJDXFx1QzkzNFxcdUM5NTBcXHVDOTUxXFx1Qzk1NFxcdUM5NThcXHVDOTYwXFx1Qzk2MVxcdUM5NjNcXHVDOTZDXFx1Qzk3MFxcdUM5NzRcXHVDOTdDXFx1Qzk4OFxcdUM5ODlcXHVDOThDXFx1Qzk5MFxcdUM5OThcXHVDOTk5XFx1Qzk5QlxcdUM5OURcXHVDOUMwXFx1QzlDMVxcdUM5QzRcXHVDOUM3XFx1QzlDOFxcdUM5Q0FcXHVDOUQwXFx1QzlEMVxcdUM5RDNcIl0sXG4gICAgICBbXCJjMjQxXCIsIFwiXFx1RDVDQVxcdUQ1Q0JcXHVENUNEXFx1RDVDRVxcdUQ1Q0ZcXHVENUQxXFx1RDVEM1wiLCA0LCBcIlxcdUQ1REFcXHVENURDXFx1RDVERVwiLCA1LCBcIlxcdUQ1RTZcXHVENUU3XFx1RDVFOVxcdUQ1RUFcXHVENUVCXFx1RDVFRFxcdUQ1RUVcIl0sXG4gICAgICBbXCJjMjYxXCIsIFwiXFx1RDVFRlwiLCA0LCBcIlxcdUQ1RjZcXHVENUY4XFx1RDVGQVwiLCA1LCBcIlxcdUQ2MDJcXHVENjAzXFx1RDYwNVxcdUQ2MDZcXHVENjA3XFx1RDYwOVwiLCA2LCBcIlxcdUQ2MTJcIl0sXG4gICAgICBbXCJjMjgxXCIsIFwiXFx1RDYxNlwiLCA1LCBcIlxcdUQ2MURcXHVENjFFXFx1RDYxRlxcdUQ2MjFcXHVENjIyXFx1RDYyM1xcdUQ2MjVcIiwgNywgXCJcXHVENjJFXCIsIDksIFwiXFx1RDYzQVxcdUQ2M0JcXHVDOUQ1XFx1QzlENlxcdUM5RDlcXHVDOURBXFx1QzlEQ1xcdUM5RERcXHVDOUUwXFx1QzlFMlxcdUM5RTRcXHVDOUU3XFx1QzlFQ1xcdUM5RURcXHVDOUVGXFx1QzlGMFxcdUM5RjFcXHVDOUY4XFx1QzlGOVxcdUM5RkNcXHVDQTAwXFx1Q0EwOFxcdUNBMDlcXHVDQTBCXFx1Q0EwQ1xcdUNBMERcXHVDQTE0XFx1Q0ExOFxcdUNBMjlcXHVDQTRDXFx1Q0E0RFxcdUNBNTBcXHVDQTU0XFx1Q0E1Q1xcdUNBNURcXHVDQTVGXFx1Q0E2MFxcdUNBNjFcXHVDQTY4XFx1Q0E3RFxcdUNBODRcXHVDQTk4XFx1Q0FCQ1xcdUNBQkRcXHVDQUMwXFx1Q0FDNFxcdUNBQ0NcXHVDQUNEXFx1Q0FDRlxcdUNBRDFcXHVDQUQzXFx1Q0FEOFxcdUNBRDlcXHVDQUUwXFx1Q0FFQ1xcdUNBRjRcXHVDQjA4XFx1Q0IxMFxcdUNCMTRcXHVDQjE4XFx1Q0IyMFxcdUNCMjFcXHVDQjQxXFx1Q0I0OFxcdUNCNDlcXHVDQjRDXFx1Q0I1MFxcdUNCNThcXHVDQjU5XFx1Q0I1RFxcdUNCNjRcXHVDQjc4XFx1Q0I3OVxcdUNCOUNcXHVDQkI4XFx1Q0JENFxcdUNCRTRcXHVDQkU3XFx1Q0JFOVxcdUNDMENcXHVDQzBEXFx1Q0MxMFxcdUNDMTRcXHVDQzFDXFx1Q0MxRFxcdUNDMjFcXHVDQzIyXFx1Q0MyN1xcdUNDMjhcXHVDQzI5XFx1Q0MyQ1xcdUNDMkVcXHVDQzMwXFx1Q0MzOFxcdUNDMzlcXHVDQzNCXCJdLFxuICAgICAgW1wiYzM0MVwiLCBcIlxcdUQ2M0RcXHVENjNFXFx1RDYzRlxcdUQ2NDFcXHVENjQyXFx1RDY0M1xcdUQ2NDRcXHVENjQ2XFx1RDY0N1xcdUQ2NEFcXHVENjRDXFx1RDY0RVxcdUQ2NEZcXHVENjUwXFx1RDY1MlxcdUQ2NTNcXHVENjU2XFx1RDY1N1xcdUQ2NTlcXHVENjVBXFx1RDY1QlxcdUQ2NURcIiwgNF0sXG4gICAgICBbXCJjMzYxXCIsIFwiXFx1RDY2MlwiLCA0LCBcIlxcdUQ2NjhcXHVENjZBXCIsIDUsIFwiXFx1RDY3MlxcdUQ2NzNcXHVENjc1XCIsIDExXSxcbiAgICAgIFtcImMzODFcIiwgXCJcXHVENjgxXFx1RDY4MlxcdUQ2ODRcXHVENjg2XCIsIDUsIFwiXFx1RDY4RVxcdUQ2OEZcXHVENjkxXFx1RDY5MlxcdUQ2OTNcXHVENjk1XCIsIDcsIFwiXFx1RDY5RVxcdUQ2QTBcXHVENkEyXCIsIDUsIFwiXFx1RDZBOVxcdUQ2QUFcXHVDQzNDXFx1Q0MzRFxcdUNDM0VcXHVDQzQ0XFx1Q0M0NVxcdUNDNDhcXHVDQzRDXFx1Q0M1NFxcdUNDNTVcXHVDQzU3XFx1Q0M1OFxcdUNDNTlcXHVDQzYwXFx1Q0M2NFxcdUNDNjZcXHVDQzY4XFx1Q0M3MFxcdUNDNzVcXHVDQzk4XFx1Q0M5OVxcdUNDOUNcXHVDQ0EwXFx1Q0NBOFxcdUNDQTlcXHVDQ0FCXFx1Q0NBQ1xcdUNDQURcXHVDQ0I0XFx1Q0NCNVxcdUNDQjhcXHVDQ0JDXFx1Q0NDNFxcdUNDQzVcXHVDQ0M3XFx1Q0NDOVxcdUNDRDBcXHVDQ0Q0XFx1Q0NFNFxcdUNDRUNcXHVDQ0YwXFx1Q0QwMVxcdUNEMDhcXHVDRDA5XFx1Q0QwQ1xcdUNEMTBcXHVDRDE4XFx1Q0QxOVxcdUNEMUJcXHVDRDFEXFx1Q0QyNFxcdUNEMjhcXHVDRDJDXFx1Q0QzOVxcdUNENUNcXHVDRDYwXFx1Q0Q2NFxcdUNENkNcXHVDRDZEXFx1Q0Q2RlxcdUNENzFcXHVDRDc4XFx1Q0Q4OFxcdUNEOTRcXHVDRDk1XFx1Q0Q5OFxcdUNEOUNcXHVDREE0XFx1Q0RBNVxcdUNEQTdcXHVDREE5XFx1Q0RCMFxcdUNEQzRcXHVDRENDXFx1Q0REMFxcdUNERThcXHVDREVDXFx1Q0RGMFxcdUNERjhcXHVDREY5XFx1Q0RGQlxcdUNERkRcXHVDRTA0XFx1Q0UwOFxcdUNFMENcXHVDRTE0XFx1Q0UxOVxcdUNFMjBcXHVDRTIxXFx1Q0UyNFxcdUNFMjhcXHVDRTMwXFx1Q0UzMVxcdUNFMzNcXHVDRTM1XCJdLFxuICAgICAgW1wiYzQ0MVwiLCBcIlxcdUQ2QUJcXHVENkFEXFx1RDZBRVxcdUQ2QUZcXHVENkIxXCIsIDcsIFwiXFx1RDZCQVxcdUQ2QkNcIiwgNywgXCJcXHVENkM2XFx1RDZDN1xcdUQ2QzlcXHVENkNBXFx1RDZDQlwiXSxcbiAgICAgIFtcImM0NjFcIiwgXCJcXHVENkNEXFx1RDZDRVxcdUQ2Q0ZcXHVENkQwXFx1RDZEMlxcdUQ2RDNcXHVENkQ1XFx1RDZENlxcdUQ2RDhcXHVENkRBXCIsIDUsIFwiXFx1RDZFMVxcdUQ2RTJcXHVENkUzXFx1RDZFNVxcdUQ2RTZcXHVENkU3XFx1RDZFOVwiLCA0XSxcbiAgICAgIFtcImM0ODFcIiwgXCJcXHVENkVFXFx1RDZFRlxcdUQ2RjFcXHVENkYyXFx1RDZGM1xcdUQ2RjRcXHVENkY2XCIsIDUsIFwiXFx1RDZGRVxcdUQ2RkZcXHVENzAxXFx1RDcwMlxcdUQ3MDNcXHVENzA1XCIsIDExLCBcIlxcdUQ3MTJcXHVENzEzXFx1RDcxNFxcdUNFNThcXHVDRTU5XFx1Q0U1Q1xcdUNFNUZcXHVDRTYwXFx1Q0U2MVxcdUNFNjhcXHVDRTY5XFx1Q0U2QlxcdUNFNkRcXHVDRTc0XFx1Q0U3NVxcdUNFNzhcXHVDRTdDXFx1Q0U4NFxcdUNFODVcXHVDRTg3XFx1Q0U4OVxcdUNFOTBcXHVDRTkxXFx1Q0U5NFxcdUNFOThcXHVDRUEwXFx1Q0VBMVxcdUNFQTNcXHVDRUE0XFx1Q0VBNVxcdUNFQUNcXHVDRUFEXFx1Q0VDMVxcdUNFRTRcXHVDRUU1XFx1Q0VFOFxcdUNFRUJcXHVDRUVDXFx1Q0VGNFxcdUNFRjVcXHVDRUY3XFx1Q0VGOFxcdUNFRjlcXHVDRjAwXFx1Q0YwMVxcdUNGMDRcXHVDRjA4XFx1Q0YxMFxcdUNGMTFcXHVDRjEzXFx1Q0YxNVxcdUNGMUNcXHVDRjIwXFx1Q0YyNFxcdUNGMkNcXHVDRjJEXFx1Q0YyRlxcdUNGMzBcXHVDRjMxXFx1Q0YzOFxcdUNGNTRcXHVDRjU1XFx1Q0Y1OFxcdUNGNUNcXHVDRjY0XFx1Q0Y2NVxcdUNGNjdcXHVDRjY5XFx1Q0Y3MFxcdUNGNzFcXHVDRjc0XFx1Q0Y3OFxcdUNGODBcXHVDRjg1XFx1Q0Y4Q1xcdUNGQTFcXHVDRkE4XFx1Q0ZCMFxcdUNGQzRcXHVDRkUwXFx1Q0ZFMVxcdUNGRTRcXHVDRkU4XFx1Q0ZGMFxcdUNGRjFcXHVDRkYzXFx1Q0ZGNVxcdUNGRkNcXHVEMDAwXFx1RDAwNFxcdUQwMTFcXHVEMDE4XFx1RDAyRFxcdUQwMzRcXHVEMDM1XFx1RDAzOFxcdUQwM0NcIl0sXG4gICAgICBbXCJjNTQxXCIsIFwiXFx1RDcxNVxcdUQ3MTZcXHVENzE3XFx1RDcxQVxcdUQ3MUJcXHVENzFEXFx1RDcxRVxcdUQ3MUZcXHVENzIxXCIsIDYsIFwiXFx1RDcyQVxcdUQ3MkNcXHVENzJFXCIsIDUsIFwiXFx1RDczNlxcdUQ3MzdcXHVENzM5XCJdLFxuICAgICAgW1wiYzU2MVwiLCBcIlxcdUQ3M0FcXHVENzNCXFx1RDczRFwiLCA2LCBcIlxcdUQ3NDVcXHVENzQ2XFx1RDc0OFxcdUQ3NEFcIiwgNSwgXCJcXHVENzUyXFx1RDc1M1xcdUQ3NTVcXHVENzVBXCIsIDRdLFxuICAgICAgW1wiYzU4MVwiLCBcIlxcdUQ3NUZcXHVENzYyXFx1RDc2NFxcdUQ3NjZcXHVENzY3XFx1RDc2OFxcdUQ3NkFcXHVENzZCXFx1RDc2RFxcdUQ3NkVcXHVENzZGXFx1RDc3MVxcdUQ3NzJcXHVENzczXFx1RDc3NVwiLCA2LCBcIlxcdUQ3N0VcXHVENzdGXFx1RDc4MFxcdUQ3ODJcIiwgNSwgXCJcXHVENzhBXFx1RDc4QlxcdUQwNDRcXHVEMDQ1XFx1RDA0N1xcdUQwNDlcXHVEMDUwXFx1RDA1NFxcdUQwNThcXHVEMDYwXFx1RDA2Q1xcdUQwNkRcXHVEMDcwXFx1RDA3NFxcdUQwN0NcXHVEMDdEXFx1RDA4MVxcdUQwQTRcXHVEMEE1XFx1RDBBOFxcdUQwQUNcXHVEMEI0XFx1RDBCNVxcdUQwQjdcXHVEMEI5XFx1RDBDMFxcdUQwQzFcXHVEMEM0XFx1RDBDOFxcdUQwQzlcXHVEMEQwXFx1RDBEMVxcdUQwRDNcXHVEMEQ0XFx1RDBENVxcdUQwRENcXHVEMEREXFx1RDBFMFxcdUQwRTRcXHVEMEVDXFx1RDBFRFxcdUQwRUZcXHVEMEYwXFx1RDBGMVxcdUQwRjhcXHVEMTBEXFx1RDEzMFxcdUQxMzFcXHVEMTM0XFx1RDEzOFxcdUQxM0FcXHVEMTQwXFx1RDE0MVxcdUQxNDNcXHVEMTQ0XFx1RDE0NVxcdUQxNENcXHVEMTREXFx1RDE1MFxcdUQxNTRcXHVEMTVDXFx1RDE1RFxcdUQxNUZcXHVEMTYxXFx1RDE2OFxcdUQxNkNcXHVEMTdDXFx1RDE4NFxcdUQxODhcXHVEMUEwXFx1RDFBMVxcdUQxQTRcXHVEMUE4XFx1RDFCMFxcdUQxQjFcXHVEMUIzXFx1RDFCNVxcdUQxQkFcXHVEMUJDXFx1RDFDMFxcdUQxRDhcXHVEMUY0XFx1RDFGOFxcdUQyMDdcXHVEMjA5XFx1RDIxMFxcdUQyMkNcXHVEMjJEXFx1RDIzMFxcdUQyMzRcXHVEMjNDXFx1RDIzRFxcdUQyM0ZcXHVEMjQxXFx1RDI0OFxcdUQyNUNcIl0sXG4gICAgICBbXCJjNjQxXCIsIFwiXFx1RDc4RFxcdUQ3OEVcXHVENzhGXFx1RDc5MVwiLCA2LCBcIlxcdUQ3OUFcXHVENzlDXFx1RDc5RVwiLCA1XSxcbiAgICAgIFtcImM2YTFcIiwgXCJcXHVEMjY0XFx1RDI4MFxcdUQyODFcXHVEMjg0XFx1RDI4OFxcdUQyOTBcXHVEMjkxXFx1RDI5NVxcdUQyOUNcXHVEMkEwXFx1RDJBNFxcdUQyQUNcXHVEMkIxXFx1RDJCOFxcdUQyQjlcXHVEMkJDXFx1RDJCRlxcdUQyQzBcXHVEMkMyXFx1RDJDOFxcdUQyQzlcXHVEMkNCXFx1RDJENFxcdUQyRDhcXHVEMkRDXFx1RDJFNFxcdUQyRTVcXHVEMkYwXFx1RDJGMVxcdUQyRjRcXHVEMkY4XFx1RDMwMFxcdUQzMDFcXHVEMzAzXFx1RDMwNVxcdUQzMENcXHVEMzBEXFx1RDMwRVxcdUQzMTBcXHVEMzE0XFx1RDMxNlxcdUQzMUNcXHVEMzFEXFx1RDMxRlxcdUQzMjBcXHVEMzIxXFx1RDMyNVxcdUQzMjhcXHVEMzI5XFx1RDMyQ1xcdUQzMzBcXHVEMzM4XFx1RDMzOVxcdUQzM0JcXHVEMzNDXFx1RDMzRFxcdUQzNDRcXHVEMzQ1XFx1RDM3Q1xcdUQzN0RcXHVEMzgwXFx1RDM4NFxcdUQzOENcXHVEMzhEXFx1RDM4RlxcdUQzOTBcXHVEMzkxXFx1RDM5OFxcdUQzOTlcXHVEMzlDXFx1RDNBMFxcdUQzQThcXHVEM0E5XFx1RDNBQlxcdUQzQURcXHVEM0I0XFx1RDNCOFxcdUQzQkNcXHVEM0M0XFx1RDNDNVxcdUQzQzhcXHVEM0M5XFx1RDNEMFxcdUQzRDhcXHVEM0UxXFx1RDNFM1xcdUQzRUNcXHVEM0VEXFx1RDNGMFxcdUQzRjRcXHVEM0ZDXFx1RDNGRFxcdUQzRkZcXHVENDAxXCJdLFxuICAgICAgW1wiYzdhMVwiLCBcIlxcdUQ0MDhcXHVENDFEXFx1RDQ0MFxcdUQ0NDRcXHVENDVDXFx1RDQ2MFxcdUQ0NjRcXHVENDZEXFx1RDQ2RlxcdUQ0NzhcXHVENDc5XFx1RDQ3Q1xcdUQ0N0ZcXHVENDgwXFx1RDQ4MlxcdUQ0ODhcXHVENDg5XFx1RDQ4QlxcdUQ0OERcXHVENDk0XFx1RDRBOVxcdUQ0Q0NcXHVENEQwXFx1RDRENFxcdUQ0RENcXHVENERGXFx1RDRFOFxcdUQ0RUNcXHVENEYwXFx1RDRGOFxcdUQ0RkJcXHVENEZEXFx1RDUwNFxcdUQ1MDhcXHVENTBDXFx1RDUxNFxcdUQ1MTVcXHVENTE3XFx1RDUzQ1xcdUQ1M0RcXHVENTQwXFx1RDU0NFxcdUQ1NENcXHVENTREXFx1RDU0RlxcdUQ1NTFcXHVENTU4XFx1RDU1OVxcdUQ1NUNcXHVENTYwXFx1RDU2NVxcdUQ1NjhcXHVENTY5XFx1RDU2QlxcdUQ1NkRcXHVENTc0XFx1RDU3NVxcdUQ1NzhcXHVENTdDXFx1RDU4NFxcdUQ1ODVcXHVENTg3XFx1RDU4OFxcdUQ1ODlcXHVENTkwXFx1RDVBNVxcdUQ1QzhcXHVENUM5XFx1RDVDQ1xcdUQ1RDBcXHVENUQyXFx1RDVEOFxcdUQ1RDlcXHVENURCXFx1RDVERFxcdUQ1RTRcXHVENUU1XFx1RDVFOFxcdUQ1RUNcXHVENUY0XFx1RDVGNVxcdUQ1RjdcXHVENUY5XFx1RDYwMFxcdUQ2MDFcXHVENjA0XFx1RDYwOFxcdUQ2MTBcXHVENjExXFx1RDYxM1xcdUQ2MTRcXHVENjE1XFx1RDYxQ1xcdUQ2MjBcIl0sXG4gICAgICBbXCJjOGExXCIsIFwiXFx1RDYyNFxcdUQ2MkRcXHVENjM4XFx1RDYzOVxcdUQ2M0NcXHVENjQwXFx1RDY0NVxcdUQ2NDhcXHVENjQ5XFx1RDY0QlxcdUQ2NERcXHVENjUxXFx1RDY1NFxcdUQ2NTVcXHVENjU4XFx1RDY1Q1xcdUQ2NjdcXHVENjY5XFx1RDY3MFxcdUQ2NzFcXHVENjc0XFx1RDY4M1xcdUQ2ODVcXHVENjhDXFx1RDY4RFxcdUQ2OTBcXHVENjk0XFx1RDY5RFxcdUQ2OUZcXHVENkExXFx1RDZBOFxcdUQ2QUNcXHVENkIwXFx1RDZCOVxcdUQ2QkJcXHVENkM0XFx1RDZDNVxcdUQ2QzhcXHVENkNDXFx1RDZEMVxcdUQ2RDRcXHVENkQ3XFx1RDZEOVxcdUQ2RTBcXHVENkU0XFx1RDZFOFxcdUQ2RjBcXHVENkY1XFx1RDZGQ1xcdUQ2RkRcXHVENzAwXFx1RDcwNFxcdUQ3MTFcXHVENzE4XFx1RDcxOVxcdUQ3MUNcXHVENzIwXFx1RDcyOFxcdUQ3MjlcXHVENzJCXFx1RDcyRFxcdUQ3MzRcXHVENzM1XFx1RDczOFxcdUQ3M0NcXHVENzQ0XFx1RDc0N1xcdUQ3NDlcXHVENzUwXFx1RDc1MVxcdUQ3NTRcXHVENzU2XFx1RDc1N1xcdUQ3NThcXHVENzU5XFx1RDc2MFxcdUQ3NjFcXHVENzYzXFx1RDc2NVxcdUQ3NjlcXHVENzZDXFx1RDc3MFxcdUQ3NzRcXHVENzdDXFx1RDc3RFxcdUQ3ODFcXHVENzg4XFx1RDc4OVxcdUQ3OENcXHVENzkwXFx1RDc5OFxcdUQ3OTlcXHVENzlCXFx1RDc5RFwiXSxcbiAgICAgIFtcImNhYTFcIiwgXCJcXHU0RjNEXFx1NEY3M1xcdTUwNDdcXHU1MEY5XFx1NTJBMFxcdTUzRUZcXHU1NDc1XFx1NTRFNVxcdTU2MDlcXHU1QUMxXFx1NUJCNlxcdTY2ODdcXHU2N0I2XFx1NjdCN1xcdTY3RUZcXHU2QjRDXFx1NzNDMlxcdTc1QzJcXHU3QTNDXFx1ODJEQlxcdTgzMDRcXHU4ODU3XFx1ODg4OFxcdThBMzZcXHU4Q0M4XFx1OERDRlxcdThFRkJcXHU4RkU2XFx1OTlENVxcdTUyM0JcXHU1Mzc0XFx1NTQwNFxcdTYwNkFcXHU2MTY0XFx1NkJCQ1xcdTczQ0ZcXHU4MTFBXFx1ODlCQVxcdTg5RDJcXHU5NUEzXFx1NEY4M1xcdTUyMEFcXHU1OEJFXFx1NTk3OFxcdTU5RTZcXHU1RTcyXFx1NUU3OVxcdTYxQzdcXHU2M0MwXFx1Njc0NlxcdTY3RUNcXHU2ODdGXFx1NkY5N1xcdTc2NEVcXHU3NzBCXFx1NzhGNVxcdTdBMDhcXHU3QUZGXFx1N0MyMVxcdTgwOURcXHU4MjZFXFx1ODI3MVxcdThBRUJcXHU5NTkzXFx1NEU2QlxcdTU1OURcXHU2NkY3XFx1NkUzNFxcdTc4QTNcXHU3QUVEXFx1ODQ1QlxcdTg5MTBcXHU4NzRFXFx1OTdBOFxcdTUyRDhcXHU1NzRFXFx1NTgyQVxcdTVENENcXHU2MTFGXFx1NjFCRVxcdTYyMjFcXHU2NTYyXFx1NjdEMVxcdTZBNDRcXHU2RTFCXFx1NzUxOFxcdTc1QjNcXHU3NkUzXFx1NzdCMFxcdTdEM0FcXHU5MEFGXFx1OTQ1MVxcdTk0NTJcXHU5Rjk1XCJdLFxuICAgICAgW1wiY2JhMVwiLCBcIlxcdTUzMjNcXHU1Q0FDXFx1NzUzMlxcdTgwREJcXHU5MjQwXFx1OTU5OFxcdTUyNUJcXHU1ODA4XFx1NTlEQ1xcdTVDQTFcXHU1RDE3XFx1NUVCN1xcdTVGM0FcXHU1RjRBXFx1NjE3N1xcdTZDNUZcXHU3NTdBXFx1NzU4NlxcdTdDRTBcXHU3RDczXFx1N0RCMVxcdTdGOENcXHU4MTU0XFx1ODIyMVxcdTg1OTFcXHU4OTQxXFx1OEIxQlxcdTkyRkNcXHU5NjREXFx1OUM0N1xcdTRFQ0JcXHU0RUY3XFx1NTAwQlxcdTUxRjFcXHU1ODRGXFx1NjEzN1xcdTYxM0VcXHU2MTY4XFx1NjUzOVxcdTY5RUFcXHU2RjExXFx1NzVBNVxcdTc2ODZcXHU3NkQ2XFx1N0I4N1xcdTgyQTVcXHU4NENCXFx1RjkwMFxcdTkzQTdcXHU5NThCXFx1NTU4MFxcdTVCQTJcXHU1NzUxXFx1RjkwMVxcdTdDQjNcXHU3RkI5XFx1OTFCNVxcdTUwMjhcXHU1M0JCXFx1NUM0NVxcdTVERThcXHU2MkQyXFx1NjM2RVxcdTY0REFcXHU2NEU3XFx1NkUyMFxcdTcwQUNcXHU3OTVCXFx1OERERFxcdThFMUVcXHVGOTAyXFx1OTA3RFxcdTkyNDVcXHU5MkY4XFx1NEU3RVxcdTRFRjZcXHU1MDY1XFx1NURGRVxcdTVFRkFcXHU2MTA2XFx1Njk1N1xcdTgxNzFcXHU4NjU0XFx1OEU0N1xcdTkzNzVcXHU5QTJCXFx1NEU1RVxcdTUwOTFcXHU2NzcwXFx1Njg0MFxcdTUxMDlcXHU1MjhEXFx1NTI5MlxcdTZBQTJcIl0sXG4gICAgICBbXCJjY2ExXCIsIFwiXFx1NzdCQ1xcdTkyMTBcXHU5RUQ0XFx1NTJBQlxcdTYwMkZcXHU4RkYyXFx1NTA0OFxcdTYxQTlcXHU2M0VEXFx1NjRDQVxcdTY4M0NcXHU2QTg0XFx1NkZDMFxcdTgxODhcXHU4OUExXFx1OTY5NFxcdTU4MDVcXHU3MjdEXFx1NzJBQ1xcdTc1MDRcXHU3RDc5XFx1N0U2RFxcdTgwQTlcXHU4OThCXFx1OEI3NFxcdTkwNjNcXHU5RDUxXFx1NjI4OVxcdTZDN0FcXHU2RjU0XFx1N0Q1MFxcdTdGM0FcXHU4QTIzXFx1NTE3Q1xcdTYxNEFcXHU3QjlEXFx1OEIxOVxcdTkyNTdcXHU5MzhDXFx1NEVBQ1xcdTRGRDNcXHU1MDFFXFx1NTBCRVxcdTUxMDZcXHU1MkMxXFx1NTJDRFxcdTUzN0ZcXHU1NzcwXFx1NTg4M1xcdTVFOUFcXHU1RjkxXFx1NjE3NlxcdTYxQUNcXHU2NENFXFx1NjU2Q1xcdTY2NkZcXHU2NkJCXFx1NjZGNFxcdTY4OTdcXHU2RDg3XFx1NzA4NVxcdTcwRjFcXHU3NDlGXFx1NzRBNVxcdTc0Q0FcXHU3NUQ5XFx1Nzg2Q1xcdTc4RUNcXHU3QURGXFx1N0FGNlxcdTdENDVcXHU3RDkzXFx1ODAxNVxcdTgwM0ZcXHU4MTFCXFx1ODM5NlxcdThCNjZcXHU4RjE1XFx1OTAxNVxcdTkzRTFcXHU5ODAzXFx1OTgzOFxcdTlBNUFcXHU5QkU4XFx1NEZDMlxcdTU1NTNcXHU1ODNBXFx1NTk1MVxcdTVCNjNcXHU1QzQ2XFx1NjBCOFxcdTYyMTJcXHU2ODQyXFx1NjhCMFwiXSxcbiAgICAgIFtcImNkYTFcIiwgXCJcXHU2OEU4XFx1NkVBQVxcdTc1NENcXHU3Njc4XFx1NzhDRVxcdTdBM0RcXHU3Q0ZCXFx1N0U2QlxcdTdFN0NcXHU4QTA4XFx1OEFBMVxcdThDM0ZcXHU5NjhFXFx1OURDNFxcdTUzRTRcXHU1M0U5XFx1NTQ0QVxcdTU0NzFcXHU1NkZBXFx1NTlEMVxcdTVCNjRcXHU1QzNCXFx1NUVBQlxcdTYyRjdcXHU2NTM3XFx1NjU0NVxcdTY1NzJcXHU2NkEwXFx1NjdBRlxcdTY5QzFcXHU2Q0JEXFx1NzVGQ1xcdTc2OTBcXHU3NzdFXFx1N0EzRlxcdTdGOTRcXHU4MDAzXFx1ODBBMVxcdTgxOEZcXHU4MkU2XFx1ODJGRFxcdTgzRjBcXHU4NUMxXFx1ODgzMVxcdTg4QjRcXHU4QUE1XFx1RjkwM1xcdThGOUNcXHU5MzJFXFx1OTZDN1xcdTk4NjdcXHU5QUQ4XFx1OUYxM1xcdTU0RURcXHU2NTlCXFx1NjZGMlxcdTY4OEZcXHU3QTQwXFx1OEMzN1xcdTlENjBcXHU1NkYwXFx1NTc2NFxcdTVEMTFcXHU2NjA2XFx1NjhCMVxcdTY4Q0RcXHU2RUZFXFx1NzQyOFxcdTg4OUVcXHU5QkU0XFx1NkM2OFxcdUY5MDRcXHU5QUE4XFx1NEY5QlxcdTUxNkNcXHU1MTcxXFx1NTI5RlxcdTVCNTRcXHU1REU1XFx1NjA1MFxcdTYwNkRcXHU2MkYxXFx1NjNBN1xcdTY1M0JcXHU3M0Q5XFx1N0E3QVxcdTg2QTNcXHU4Q0EyXFx1OTc4RlxcdTRFMzJcXHU1QkUxXFx1NjIwOFxcdTY3OUNcXHU3NERDXCJdLFxuICAgICAgW1wiY2VhMVwiLCBcIlxcdTc5RDFcXHU4M0QzXFx1OEE4N1xcdThBQjJcXHU4REU4XFx1OTA0RVxcdTkzNEJcXHU5ODQ2XFx1NUVEM1xcdTY5RThcXHU4NUZGXFx1OTBFRFxcdUY5MDVcXHU1MUEwXFx1NUI5OFxcdTVCRUNcXHU2MTYzXFx1NjhGQVxcdTZCM0VcXHU3MDRDXFx1NzQyRlxcdTc0RDhcXHU3QkExXFx1N0Y1MFxcdTgzQzVcXHU4OUMwXFx1OENBQlxcdTk1RENcXHU5OTI4XFx1NTIyRVxcdTYwNURcXHU2MkVDXFx1OTAwMlxcdTRGOEFcXHU1MTQ5XFx1NTMyMVxcdTU4RDlcXHU1RUUzXFx1NjZFMFxcdTZEMzhcXHU3MDlBXFx1NzJDMlxcdTczRDZcXHU3QjUwXFx1ODBGMVxcdTk0NUJcXHU1MzY2XFx1NjM5QlxcdTdGNkJcXHU0RTU2XFx1NTA4MFxcdTU4NEFcXHU1OERFXFx1NjAyQVxcdTYxMjdcXHU2MkQwXFx1NjlEMFxcdTlCNDFcXHU1QjhGXFx1N0QxOFxcdTgwQjFcXHU4RjVGXFx1NEVBNFxcdTUwRDFcXHU1NEFDXFx1NTVBQ1xcdTVCMENcXHU1REEwXFx1NURFN1xcdTY1MkFcXHU2NTRFXFx1NjgyMVxcdTZBNEJcXHU3MkUxXFx1NzY4RVxcdTc3RUZcXHU3RDVFXFx1N0ZGOVxcdTgxQTBcXHU4NTRFXFx1ODZERlxcdThGMDNcXHU4RjRFXFx1OTBDQVxcdTk5MDNcXHU5QTU1XFx1OUJBQlxcdTRFMThcXHU0RTQ1XFx1NEU1RFxcdTRFQzdcXHU0RkYxXFx1NTE3N1xcdTUyRkVcIl0sXG4gICAgICBbXCJjZmExXCIsIFwiXFx1NTM0MFxcdTUzRTNcXHU1M0U1XFx1NTQ4RVxcdTU2MTRcXHU1Nzc1XFx1NTdBMlxcdTVCQzdcXHU1RDg3XFx1NUVEMFxcdTYxRkNcXHU2MkQ4XFx1NjU1MVxcdTY3QjhcXHU2N0U5XFx1NjlDQlxcdTZCNTBcXHU2QkM2XFx1NkJFQ1xcdTZDNDJcXHU2RTlEXFx1NzA3OFxcdTcyRDdcXHU3Mzk2XFx1NzQwM1xcdTc3QkZcXHU3N0U5XFx1N0E3NlxcdTdEN0ZcXHU4MDA5XFx1ODFGQ1xcdTgyMDVcXHU4MjBBXFx1ODJERlxcdTg4NjJcXHU4QjMzXFx1OENGQ1xcdThFQzBcXHU5MDExXFx1OTBCMVxcdTkyNjRcXHU5MkI2XFx1OTlEMlxcdTlBNDVcXHU5Q0U5XFx1OUREN1xcdTlGOUNcXHU1NzBCXFx1NUM0MFxcdTgzQ0FcXHU5N0EwXFx1OTdBQlxcdTlFQjRcXHU1NDFCXFx1N0E5OFxcdTdGQTRcXHU4OEQ5XFx1OEVDRFxcdTkwRTFcXHU1ODAwXFx1NUM0OFxcdTYzOThcXHU3QTlGXFx1NUJBRVxcdTVGMTNcXHU3QTc5XFx1N0FBRVxcdTgyOEVcXHU4RUFDXFx1NTAyNlxcdTUyMzhcXHU1MkY4XFx1NTM3N1xcdTU3MDhcXHU2MkYzXFx1NjM3MlxcdTZCMEFcXHU2REMzXFx1NzczN1xcdTUzQTVcXHU3MzU3XFx1ODU2OFxcdThFNzZcXHU5NUQ1XFx1NjczQVxcdTZBQzNcXHU2RjcwXFx1OEE2RFxcdThFQ0NcXHU5OTRCXFx1RjkwNlxcdTY2NzdcXHU2Qjc4XFx1OENCNFwiXSxcbiAgICAgIFtcImQwYTFcIiwgXCJcXHU5QjNDXFx1RjkwN1xcdTUzRUJcXHU1NzJEXFx1NTk0RVxcdTYzQzZcXHU2OUZCXFx1NzNFQVxcdTc4NDVcXHU3QUJBXFx1N0FDNVxcdTdDRkVcXHU4NDc1XFx1ODk4RlxcdThENzNcXHU5MDM1XFx1OTVBOFxcdTUyRkJcXHU1NzQ3XFx1NzU0N1xcdTdCNjBcXHU4M0NDXFx1OTIxRVxcdUY5MDhcXHU2QTU4XFx1NTE0QlxcdTUyNEJcXHU1Mjg3XFx1NjIxRlxcdTY4RDhcXHU2OTc1XFx1OTY5OVxcdTUwQzVcXHU1MkE0XFx1NTJFNFxcdTYxQzNcXHU2NUE0XFx1NjgzOVxcdTY5RkZcXHU3NDdFXFx1N0I0QlxcdTgyQjlcXHU4M0VCXFx1ODlCMlxcdThCMzlcXHU4RkQxXFx1OTk0OVxcdUY5MDlcXHU0RUNBXFx1NTk5N1xcdTY0RDJcXHU2NjExXFx1NkE4RVxcdTc0MzRcXHU3OTgxXFx1NzlCRFxcdTgyQTlcXHU4ODdFXFx1ODg3RlxcdTg5NUZcXHVGOTBBXFx1OTMyNlxcdTRGMEJcXHU1M0NBXFx1NjAyNVxcdTYyNzFcXHU2QzcyXFx1N0QxQVxcdTdENjZcXHU0RTk4XFx1NTE2MlxcdTc3RENcXHU4MEFGXFx1NEYwMVxcdTRGMEVcXHU1MTc2XFx1NTE4MFxcdTU1RENcXHU1NjY4XFx1NTczQlxcdTU3RkFcXHU1N0ZDXFx1NTkxNFxcdTU5NDdcXHU1OTkzXFx1NUJDNFxcdTVDOTBcXHU1RDBFXFx1NURGMVxcdTVFN0VcXHU1RkNDXFx1NjI4MFxcdTY1RDdcXHU2NUUzXCJdLFxuICAgICAgW1wiZDFhMVwiLCBcIlxcdTY3MUVcXHU2NzFGXFx1Njc1RVxcdTY4Q0JcXHU2OEM0XFx1NkE1RlxcdTZCM0FcXHU2QzIzXFx1NkM3RFxcdTZDODJcXHU2REM3XFx1NzM5OFxcdTc0MjZcXHU3NDJBXFx1NzQ4MlxcdTc0QTNcXHU3NTc4XFx1NzU3RlxcdTc4ODFcXHU3OEVGXFx1Nzk0MVxcdTc5NDdcXHU3OTQ4XFx1Nzk3QVxcdTdCOTVcXHU3RDAwXFx1N0RCQVxcdTdGODhcXHU4MDA2XFx1ODAyRFxcdTgwOENcXHU4QTE4XFx1OEI0RlxcdThDNDhcXHU4RDc3XFx1OTMyMVxcdTkzMjRcXHU5OEUyXFx1OTk1MVxcdTlBMEVcXHU5QTBGXFx1OUE2NVxcdTlFOTJcXHU3RENBXFx1NEY3NlxcdTU0MDlcXHU2MkVFXFx1Njg1NFxcdTkxRDFcXHU1NUFCXFx1NTEzQVxcdUY5MEJcXHVGOTBDXFx1NUExQ1xcdTYxRTZcXHVGOTBEXFx1NjJDRlxcdTYyRkZcXHVGOTBFXCIsIDUsIFwiXFx1OTBBM1xcdUY5MTRcIiwgNCwgXCJcXHU4QUZFXFx1RjkxOVxcdUY5MUFcXHVGOTFCXFx1RjkxQ1xcdTY2OTZcXHVGOTFEXFx1NzE1NlxcdUY5MUVcXHVGOTFGXFx1OTZFM1xcdUY5MjBcXHU2MzRGXFx1NjM3QVxcdTUzNTdcXHVGOTIxXFx1Njc4RlxcdTY5NjBcXHU2RTczXFx1RjkyMlxcdTc1MzdcXHVGOTIzXFx1RjkyNFxcdUY5MjVcIl0sXG4gICAgICBbXCJkMmExXCIsIFwiXFx1N0QwRFxcdUY5MjZcXHVGOTI3XFx1ODg3MlxcdTU2Q0FcXHU1QTE4XFx1RjkyOFwiLCA0LCBcIlxcdTRFNDNcXHVGOTJEXFx1NTE2N1xcdTU5NDhcXHU2N0YwXFx1ODAxMFxcdUY5MkVcXHU1OTczXFx1NUU3NFxcdTY0OUFcXHU3OUNBXFx1NUZGNVxcdTYwNkNcXHU2MkM4XFx1NjM3QlxcdTVCRTdcXHU1QkQ3XFx1NTJBQVxcdUY5MkZcXHU1OTc0XFx1NUYyOVxcdTYwMTJcXHVGOTMwXFx1RjkzMVxcdUY5MzJcXHU3NDU5XFx1RjkzM1wiLCA1LCBcIlxcdTk5RDFcXHVGOTM5XCIsIDEwLCBcIlxcdTZGQzNcXHVGOTQ0XFx1Rjk0NVxcdTgxQkZcXHU4RkIyXFx1NjBGMVxcdUY5NDZcXHVGOTQ3XFx1ODE2NlxcdUY5NDhcXHVGOTQ5XFx1NUMzRlxcdUY5NEFcIiwgNywgXCJcXHU1QUU5XFx1OEEyNVxcdTY3N0JcXHU3RDEwXFx1Rjk1MlwiLCA1LCBcIlxcdTgwRkRcXHVGOTU4XFx1Rjk1OVxcdTVDM0NcXHU2Q0U1XFx1NTMzRlxcdTZFQkFcXHU1OTFBXFx1ODMzNlwiXSxcbiAgICAgIFtcImQzYTFcIiwgXCJcXHU0RTM5XFx1NEVCNlxcdTRGNDZcXHU1NUFFXFx1NTcxOFxcdTU4QzdcXHU1RjU2XFx1NjVCN1xcdTY1RTZcXHU2QTgwXFx1NkJCNVxcdTZFNERcXHU3N0VEXFx1N0FFRlxcdTdDMUVcXHU3RERFXFx1ODZDQlxcdTg4OTJcXHU5MTMyXFx1OTM1QlxcdTY0QkJcXHU2RkJFXFx1NzM3QVxcdTc1QjhcXHU5MDU0XFx1NTU1NlxcdTU3NERcXHU2MUJBXFx1NjRENFxcdTY2QzdcXHU2REUxXFx1NkU1QlxcdTZGNkRcXHU2RkI5XFx1NzVGMFxcdTgwNDNcXHU4MUJEXFx1ODU0MVxcdTg5ODNcXHU4QUM3XFx1OEI1QVxcdTkzMUZcXHU2QzkzXFx1NzU1M1xcdTdCNTRcXHU4RTBGXFx1OTA1RFxcdTU1MTBcXHU1ODAyXFx1NTg1OFxcdTVFNjJcXHU2MjA3XFx1NjQ5RVxcdTY4RTBcXHU3NTc2XFx1N0NENlxcdTg3QjNcXHU5RUU4XFx1NEVFM1xcdTU3ODhcXHU1NzZFXFx1NTkyN1xcdTVDMERcXHU1Q0IxXFx1NUUzNlxcdTVGODVcXHU2MjM0XFx1NjRFMVxcdTczQjNcXHU4MUZBXFx1ODg4QlxcdThDQjhcXHU5NjhBXFx1OUVEQlxcdTVCODVcXHU1RkI3XFx1NjBCM1xcdTUwMTJcXHU1MjAwXFx1NTIzMFxcdTU3MTZcXHU1ODM1XFx1NTg1N1xcdTVDMEVcXHU1QzYwXFx1NUNGNlxcdTVEOEJcXHU1RUE2XFx1NUY5MlxcdTYwQkNcXHU2MzExXFx1NjM4OVxcdTY0MTdcXHU2ODQzXCJdLFxuICAgICAgW1wiZDRhMVwiLCBcIlxcdTY4RjlcXHU2QUMyXFx1NkREOFxcdTZFMjFcXHU2RUQ0XFx1NkZFNFxcdTcxRkVcXHU3NkRDXFx1Nzc3OVxcdTc5QjFcXHU3QTNCXFx1ODQwNFxcdTg5QTlcXHU4Q0VEXFx1OERGM1xcdThFNDhcXHU5MDAzXFx1OTAxNFxcdTkwNTNcXHU5MEZEXFx1OTM0RFxcdTk2NzZcXHU5N0RDXFx1NkJEMlxcdTcwMDZcXHU3MjU4XFx1NzJBMlxcdTczNjhcXHU3NzYzXFx1NzlCRlxcdTdCRTRcXHU3RTlCXFx1OEI4MFxcdTU4QTlcXHU2MEM3XFx1NjU2NlxcdTY1RkRcXHU2NkJFXFx1NkM4Q1xcdTcxMUVcXHU3MUM5XFx1OEM1QVxcdTk4MTNcXHU0RTZEXFx1N0E4MVxcdTRFRERcXHU1MUFDXFx1NTFDRFxcdTUyRDVcXHU1NDBDXFx1NjFBN1xcdTY3NzFcXHU2ODUwXFx1NjhERlxcdTZEMUVcXHU2RjdDXFx1NzVCQ1xcdTc3QjNcXHU3QUU1XFx1ODBGNFxcdTg0NjNcXHU5Mjg1XFx1NTE1Q1xcdTY1OTdcXHU2NzVDXFx1Njc5M1xcdTc1RDhcXHU3QUM3XFx1ODM3M1xcdUY5NUFcXHU4QzQ2XFx1OTAxN1xcdTk4MkRcXHU1QzZGXFx1ODFDMFxcdTgyOUFcXHU5MDQxXFx1OTA2RlxcdTkyMERcXHU1Rjk3XFx1NUQ5RFxcdTZBNTlcXHU3MUM4XFx1NzY3QlxcdTdCNDlcXHU4NUU0XFx1OEIwNFxcdTkxMjdcXHU5QTMwXFx1NTU4N1xcdTYxRjZcXHVGOTVCXFx1NzY2OVxcdTdGODVcIl0sXG4gICAgICBbXCJkNWExXCIsIFwiXFx1ODYzRlxcdTg3QkFcXHU4OEY4XFx1OTA4RlxcdUY5NUNcXHU2RDFCXFx1NzBEOVxcdTczREVcXHU3RDYxXFx1ODQzRFxcdUY5NURcXHU5MTZBXFx1OTlGMVxcdUY5NUVcXHU0RTgyXFx1NTM3NVxcdTZCMDRcXHU2QjEyXFx1NzAzRVxcdTcyMUJcXHU4NjJEXFx1OUUxRVxcdTUyNENcXHU4RkEzXFx1NUQ1MFxcdTY0RTVcXHU2NTJDXFx1NkIxNlxcdTZGRUJcXHU3QzQzXFx1N0U5Q1xcdTg1Q0RcXHU4OTY0XFx1ODlCRFxcdTYyQzlcXHU4MUQ4XFx1ODgxRlxcdTVFQ0FcXHU2NzE3XFx1NkQ2QVxcdTcyRkNcXHU3NDA1XFx1NzQ2RlxcdTg3ODJcXHU5MERFXFx1NEY4NlxcdTVEMERcXHU1RkEwXFx1ODQwQVxcdTUxQjdcXHU2M0EwXFx1NzU2NVxcdTRFQUVcXHU1MDA2XFx1NTE2OVxcdTUxQzlcXHU2ODgxXFx1NkExMVxcdTdDQUVcXHU3Q0IxXFx1N0NFN1xcdTgyNkZcXHU4QUQyXFx1OEYxQlxcdTkxQ0ZcXHU0RkI2XFx1NTEzN1xcdTUyRjVcXHU1NDQyXFx1NUVFQ1xcdTYxNkVcXHU2MjNFXFx1NjVDNVxcdTZBREFcXHU2RkZFXFx1NzkyQVxcdTg1RENcXHU4ODIzXFx1OTVBRFxcdTlBNjJcXHU5QTZBXFx1OUU5N1xcdTlFQ0VcXHU1MjlCXFx1NjZDNlxcdTZCNzdcXHU3MDFEXFx1NzkyQlxcdThGNjJcXHU5NzQyXFx1NjE5MFxcdTYyMDBcXHU2NTIzXFx1NkYyM1wiXSxcbiAgICAgIFtcImQ2YTFcIiwgXCJcXHU3MTQ5XFx1NzQ4OVxcdTdERjRcXHU4MDZGXFx1ODRFRVxcdThGMjZcXHU5MDIzXFx1OTM0QVxcdTUxQkRcXHU1MjE3XFx1NTJBM1xcdTZEMENcXHU3MEM4XFx1ODhDMlxcdTVFQzlcXHU2NTgyXFx1NkJBRVxcdTZGQzJcXHU3QzNFXFx1NzM3NVxcdTRFRTRcXHU0RjM2XFx1NTZGOVxcdUY5NUZcXHU1Q0JBXFx1NURCQVxcdTYwMUNcXHU3M0IyXFx1N0IyRFxcdTdGOUFcXHU3RkNFXFx1ODA0NlxcdTkwMUVcXHU5MjM0XFx1OTZGNlxcdTk3NDhcXHU5ODE4XFx1OUY2MVxcdTRGOEJcXHU2RkE3XFx1NzlBRVxcdTkxQjRcXHU5NkI3XFx1NTJERVxcdUY5NjBcXHU2NDg4XFx1NjRDNFxcdTZBRDNcXHU2RjVFXFx1NzAxOFxcdTcyMTBcXHU3NkU3XFx1ODAwMVxcdTg2MDZcXHU4NjVDXFx1OERFRlxcdThGMDVcXHU5NzMyXFx1OUI2RlxcdTlERkFcXHU5RTc1XFx1Nzg4Q1xcdTc5N0ZcXHU3REEwXFx1ODNDOVxcdTkzMDRcXHU5RTdGXFx1OUU5M1xcdThBRDZcXHU1OERGXFx1NUYwNFxcdTY3MjdcXHU3MDI3XFx1NzRDRlxcdTdDNjBcXHU4MDdFXFx1NTEyMVxcdTcwMjhcXHU3MjYyXFx1NzhDQVxcdThDQzJcXHU4Q0RBXFx1OENGNFxcdTk2RjdcXHU0RTg2XFx1NTBEQVxcdTVCRUVcXHU1RUQ2XFx1NjU5OVxcdTcxQ0VcXHU3NjQyXFx1NzdBRFxcdTgwNEFcXHU4NEZDXCJdLFxuICAgICAgW1wiZDdhMVwiLCBcIlxcdTkwN0NcXHU5QjI3XFx1OUY4RFxcdTU4RDhcXHU1QTQxXFx1NUM2MlxcdTZBMTNcXHU2RERBXFx1NkYwRlxcdTc2M0JcXHU3RDJGXFx1N0UzN1xcdTg1MUVcXHU4OTM4XFx1OTNFNFxcdTk2NEJcXHU1Mjg5XFx1NjVEMlxcdTY3RjNcXHU2OUI0XFx1NkQ0MVxcdTZFOUNcXHU3MDBGXFx1NzQwOVxcdTc0NjBcXHU3NTU5XFx1NzYyNFxcdTc4NkJcXHU4QjJDXFx1OTg1RVxcdTUxNkRcXHU2MjJFXFx1OTY3OFxcdTRGOTZcXHU1MDJCXFx1NUQxOVxcdTZERUFcXHU3REI4XFx1OEYyQVxcdTVGOEJcXHU2MTQ0XFx1NjgxN1xcdUY5NjFcXHU5Njg2XFx1NTJEMlxcdTgwOEJcXHU1MURDXFx1NTFDQ1xcdTY5NUVcXHU3QTFDXFx1N0RCRVxcdTgzRjFcXHU5Njc1XFx1NEZEQVxcdTUyMjlcXHU1Mzk4XFx1NTQwRlxcdTU1MEVcXHU1QzY1XFx1NjBBN1xcdTY3NEVcXHU2OEE4XFx1NkQ2Q1xcdTcyODFcXHU3MkY4XFx1NzQwNlxcdTc0ODNcXHVGOTYyXFx1NzVFMlxcdTdDNkNcXHU3Rjc5XFx1N0ZCOFxcdTgzODlcXHU4OENGXFx1ODhFMVxcdTkxQ0NcXHU5MUQwXFx1OTZFMlxcdTlCQzlcXHU1NDFEXFx1NkY3RVxcdTcxRDBcXHU3NDk4XFx1ODVGQVxcdThFQUFcXHU5NkEzXFx1OUM1N1xcdTlFOUZcXHU2Nzk3XFx1NkRDQlxcdTc0MzNcXHU4MUU4XFx1OTcxNlxcdTc4MkNcIl0sXG4gICAgICBbXCJkOGExXCIsIFwiXFx1N0FDQlxcdTdCMjBcXHU3QzkyXFx1NjQ2OVxcdTc0NkFcXHU3NUYyXFx1NzhCQ1xcdTc4RThcXHU5OUFDXFx1OUI1NFxcdTlFQkJcXHU1QkRFXFx1NUU1NVxcdTZGMjBcXHU4MTlDXFx1ODNBQlxcdTkwODhcXHU0RTA3XFx1NTM0RFxcdTVBMjlcXHU1REQyXFx1NUY0RVxcdTYxNjJcXHU2MzNEXFx1NjY2OVxcdTY2RkNcXHU2RUZGXFx1NkYyQlxcdTcwNjNcXHU3NzlFXFx1ODQyQ1xcdTg1MTNcXHU4ODNCXFx1OEYxM1xcdTk5NDVcXHU5QzNCXFx1NTUxQ1xcdTYyQjlcXHU2NzJCXFx1NkNBQlxcdTgzMDlcXHU4OTZBXFx1OTc3QVxcdTRFQTFcXHU1OTg0XFx1NUZEOFxcdTVGRDlcXHU2NzFCXFx1N0RCMlxcdTdGNTRcXHU4MjkyXFx1ODMyQlxcdTgzQkRcXHU4RjFFXFx1OTA5OVxcdTU3Q0JcXHU1OUI5XFx1NUE5MlxcdTVCRDBcXHU2NjI3XFx1Njc5QVxcdTY4ODVcXHU2QkNGXFx1NzE2NFxcdTdGNzVcXHU4Q0I3XFx1OENFM1xcdTkwODFcXHU5QjQ1XFx1ODEwOFxcdThDOEFcXHU5NjRDXFx1OUE0MFxcdTlFQTVcXHU1QjVGXFx1NkMxM1xcdTczMUJcXHU3NkYyXFx1NzZERlxcdTg0MENcXHU1MUFBXFx1ODk5M1xcdTUxNERcXHU1MTk1XFx1NTJDOVxcdTY4QzlcXHU2Qzk0XFx1NzcwNFxcdTc3MjBcXHU3REJGXFx1N0RFQ1xcdTk3NjJcXHU5RUI1XFx1NkVDNVwiXSxcbiAgICAgIFtcImQ5YTFcIiwgXCJcXHU4NTExXFx1NTFBNVxcdTU0MERcXHU1NDdEXFx1NjYwRVxcdTY2OURcXHU2OTI3XFx1NkU5RlxcdTc2QkZcXHU3NzkxXFx1ODMxN1xcdTg0QzJcXHU4NzlGXFx1OTE2OVxcdTkyOThcXHU5Q0Y0XFx1ODg4MlxcdTRGQUVcXHU1MTkyXFx1NTJERlxcdTU5QzZcXHU1RTNEXFx1NjE1NVxcdTY0NzhcXHU2NDc5XFx1NjZBRVxcdTY3RDBcXHU2QTIxXFx1NkJDRFxcdTZCREJcXHU3MjVGXFx1NzI2MVxcdTc0NDFcXHU3NzM4XFx1NzdEQlxcdTgwMTdcXHU4MkJDXFx1ODMwNVxcdThCMDBcXHU4QjI4XFx1OEM4Q1xcdTY3MjhcXHU2QzkwXFx1NzI2N1xcdTc2RUVcXHU3NzY2XFx1N0E0NlxcdTlEQTlcXHU2QjdGXFx1NkM5MlxcdTU5MjJcXHU2NzI2XFx1ODQ5OVxcdTUzNkZcXHU1ODkzXFx1NTk5OVxcdTVFREZcXHU2M0NGXFx1NjYzNFxcdTY3NzNcXHU2RTNBXFx1NzMyQlxcdTdBRDdcXHU4MkQ3XFx1OTMyOFxcdTUyRDlcXHU1REVCXFx1NjFBRVxcdTYxQ0JcXHU2MjBBXFx1NjJDN1xcdTY0QUJcXHU2NUUwXFx1Njk1OVxcdTZCNjZcXHU2QkNCXFx1NzEyMVxcdTczRjdcXHU3NTVEXFx1N0U0NlxcdTgyMUVcXHU4MzAyXFx1ODU2QVxcdThBQTNcXHU4Q0JGXFx1OTcyN1xcdTlENjFcXHU1OEE4XFx1OUVEOFxcdTUwMTFcXHU1MjBFXFx1NTQzQlxcdTU1NEZcXHU2NTg3XCJdLFxuICAgICAgW1wiZGFhMVwiLCBcIlxcdTZDNzZcXHU3RDBBXFx1N0QwQlxcdTgwNUVcXHU4NjhBXFx1OTU4MFxcdTk2RUZcXHU1MkZGXFx1NkM5NVxcdTcyNjlcXHU1NDczXFx1NUE5QVxcdTVDM0VcXHU1RDRCXFx1NUY0Q1xcdTVGQUVcXHU2NzJBXFx1NjhCNlxcdTY5NjNcXHU2RTNDXFx1NkU0NFxcdTc3MDlcXHU3QzczXFx1N0Y4RVxcdTg1ODdcXHU4QjBFXFx1OEZGN1xcdTk3NjFcXHU5RUY0XFx1NUNCN1xcdTYwQjZcXHU2MTBEXFx1NjFBQlxcdTY1NEZcXHU2NUZCXFx1NjVGQ1xcdTZDMTFcXHU2Q0VGXFx1NzM5RlxcdTczQzlcXHU3REUxXFx1OTU5NFxcdTVCQzZcXHU4NzFDXFx1OEIxMFxcdTUyNURcXHU1MzVBXFx1NjJDRFxcdTY0MEZcXHU2NEIyXFx1NjczNFxcdTZBMzhcXHU2Q0NBXFx1NzNDMFxcdTc0OUVcXHU3Qjk0XFx1N0M5NVxcdTdFMUJcXHU4MThBXFx1ODIzNlxcdTg1ODRcXHU4RkVCXFx1OTZGOVxcdTk5QzFcXHU0RjM0XFx1NTM0QVxcdTUzQ0RcXHU1M0RCXFx1NjJDQ1xcdTY0MkNcXHU2NTAwXFx1NjU5MVxcdTY5QzNcXHU2Q0VFXFx1NkY1OFxcdTczRURcXHU3NTU0XFx1NzYyMlxcdTc2RTRcXHU3NkZDXFx1NzhEMFxcdTc4RkJcXHU3OTJDXFx1N0Q0NlxcdTgyMkNcXHU4N0UwXFx1OEZENFxcdTk4MTJcXHU5OEVGXFx1NTJDM1xcdTYyRDRcXHU2NEE1XFx1NkUyNFxcdTZGNTFcIl0sXG4gICAgICBbXCJkYmExXCIsIFwiXFx1NzY3Q1xcdThEQ0JcXHU5MUIxXFx1OTI2MlxcdTlBRUVcXHU5QjQzXFx1NTAyM1xcdTUwOERcXHU1NzRBXFx1NTlBOFxcdTVDMjhcXHU1RTQ3XFx1NUY3N1xcdTYyM0ZcXHU2NTNFXFx1NjVCOVxcdTY1QzFcXHU2NjA5XFx1Njc4QlxcdTY5OUNcXHU2RUMyXFx1NzhDNVxcdTdEMjFcXHU4MEFBXFx1ODE4MFxcdTgyMkJcXHU4MkIzXFx1ODRBMVxcdTg2OENcXHU4QTJBXFx1OEIxN1xcdTkwQTZcXHU5NjMyXFx1OUY5MFxcdTUwMERcXHU0RkYzXFx1Rjk2M1xcdTU3RjlcXHU1Rjk4XFx1NjJEQ1xcdTYzOTJcXHU2NzZGXFx1NkU0M1xcdTcxMTlcXHU3NkMzXFx1ODBDQ1xcdTgwREFcXHU4OEY0XFx1ODhGNVxcdTg5MTlcXHU4Q0UwXFx1OEYyOVxcdTkxNERcXHU5NjZBXFx1NEYyRlxcdTRGNzBcXHU1RTFCXFx1NjdDRlxcdTY4MjJcXHU3NjdEXFx1NzY3RVxcdTlCNDRcXHU1RTYxXFx1NkEwQVxcdTcxNjlcXHU3MUQ0XFx1NzU2QVxcdUY5NjRcXHU3RTQxXFx1ODU0M1xcdTg1RTlcXHU5OERDXFx1NEYxMFxcdTdCNEZcXHU3RjcwXFx1OTVBNVxcdTUxRTFcXHU1RTA2XFx1NjhCNVxcdTZDM0VcXHU2QzRFXFx1NkNEQlxcdTcyQUZcXHU3QkM0XFx1ODMwM1xcdTZDRDVcXHU3NDNBXFx1NTBGQlxcdTUyODhcXHU1OEMxXFx1NjREOFxcdTZBOTdcXHU3NEE3XFx1NzY1NlwiXSxcbiAgICAgIFtcImRjYTFcIiwgXCJcXHU3OEE3XFx1ODYxN1xcdTk1RTJcXHU5NzM5XFx1Rjk2NVxcdTUzNUVcXHU1RjAxXFx1OEI4QVxcdThGQThcXHU4RkFGXFx1OTA4QVxcdTUyMjVcXHU3N0E1XFx1OUM0OVxcdTlGMDhcXHU0RTE5XFx1NTAwMlxcdTUxNzVcXHU1QzVCXFx1NUU3N1xcdTY2MUVcXHU2NjNBXFx1NjdDNFxcdTY4QzVcXHU3MEIzXFx1NzUwMVxcdTc1QzVcXHU3OUM5XFx1N0FERFxcdThGMjdcXHU5OTIwXFx1OUEwOFxcdTRGRERcXHU1ODIxXFx1NTgzMVxcdTVCRjZcXHU2NjZFXFx1NkI2NVxcdTZEMTFcXHU2RTdBXFx1NkY3RFxcdTczRTRcXHU3NTJCXFx1ODNFOVxcdTg4RENcXHU4OTEzXFx1OEI1Q1xcdThGMTRcXHU0RjBGXFx1NTBENVxcdTUzMTBcXHU1MzVDXFx1NUI5M1xcdTVGQTlcXHU2NzBEXFx1Nzk4RlxcdTgxNzlcXHU4MzJGXFx1ODUxNFxcdTg5MDdcXHU4OTg2XFx1OEYzOVxcdThGM0JcXHU5OUE1XFx1OUMxMlxcdTY3MkNcXHU0RTc2XFx1NEZGOFxcdTU5NDlcXHU1QzAxXFx1NUNFRlxcdTVDRjBcXHU2MzY3XFx1NjhEMlxcdTcwRkRcXHU3MUEyXFx1NzQyQlxcdTdFMkJcXHU4NEVDXFx1ODcwMlxcdTkwMjJcXHU5MkQyXFx1OUNGM1xcdTRFMERcXHU0RUQ4XFx1NEZFRlxcdTUwODVcXHU1MjU2XFx1NTI2RlxcdTU0MjZcXHU1NDkwXFx1NTdFMFxcdTU5MkJcXHU1QTY2XCJdLFxuICAgICAgW1wiZGRhMVwiLCBcIlxcdTVCNUFcXHU1Qjc1XFx1NUJDQ1xcdTVFOUNcXHVGOTY2XFx1NjI3NlxcdTY1NzdcXHU2NUE3XFx1NkQ2RVxcdTZFQTVcXHU3MjM2XFx1N0IyNlxcdTdDM0ZcXHU3RjM2XFx1ODE1MFxcdTgxNTFcXHU4MTlBXFx1ODI0MFxcdTgyOTlcXHU4M0E5XFx1OEEwM1xcdThDQTBcXHU4Q0U2XFx1OENGQlxcdThENzRcXHU4REJBXFx1OTBFOFxcdTkxRENcXHU5NjFDXFx1OTY0NFxcdTk5RDlcXHU5Q0U3XFx1NTMxN1xcdTUyMDZcXHU1NDI5XFx1NTY3NFxcdTU4QjNcXHU1OTU0XFx1NTk2RVxcdTVGRkZcXHU2MUE0XFx1NjI2RVxcdTY2MTBcXHU2QzdFXFx1NzExQVxcdTc2QzZcXHU3Qzg5XFx1N0NERVxcdTdEMUJcXHU4MkFDXFx1OENDMVxcdTk2RjBcXHVGOTY3XFx1NEY1QlxcdTVGMTdcXHU1RjdGXFx1NjJDMlxcdTVEMjlcXHU2NzBCXFx1NjhEQVxcdTc4N0NcXHU3RTQzXFx1OUQ2Q1xcdTRFMTVcXHU1MDk5XFx1NTMxNVxcdTUzMkFcXHU1MzUxXFx1NTk4M1xcdTVBNjJcXHU1RTg3XFx1NjBCMlxcdTYxOEFcXHU2MjQ5XFx1NjI3OVxcdTY1OTBcXHU2Nzg3XFx1NjlBN1xcdTZCRDRcXHU2QkQ2XFx1NkJEN1xcdTZCRDhcXHU2Q0I4XFx1Rjk2OFxcdTc0MzVcXHU3NUZBXFx1NzgxMlxcdTc4OTFcXHU3OUQ1XFx1NzlEOFxcdTdDODNcXHU3RENCXFx1N0ZFMVxcdTgwQTVcIl0sXG4gICAgICBbXCJkZWExXCIsIFwiXFx1ODEzRVxcdTgxQzJcXHU4M0YyXFx1ODcxQVxcdTg4RThcXHU4QUI5XFx1OEI2Q1xcdThDQkJcXHU5MTE5XFx1OTc1RVxcdTk4REJcXHU5RjNCXFx1NTZBQ1xcdTVCMkFcXHU1RjZDXFx1NjU4Q1xcdTZBQjNcXHU2QkFGXFx1NkQ1Q1xcdTZGRjFcXHU3MDE1XFx1NzI1RFxcdTczQURcXHU4Q0E3XFx1OENEM1xcdTk4M0JcXHU2MTkxXFx1NkMzN1xcdTgwNThcXHU5QTAxXFx1NEU0RFxcdTRFOEJcXHU0RTlCXFx1NEVENVxcdTRGM0FcXHU0RjNDXFx1NEY3RlxcdTRGREZcXHU1MEZGXFx1NTNGMlxcdTUzRjhcXHU1NTA2XFx1NTVFM1xcdTU2REJcXHU1OEVCXFx1NTk2MlxcdTVBMTFcXHU1QkVCXFx1NUJGQVxcdTVDMDRcXHU1REYzXFx1NUUyQlxcdTVGOTlcXHU2MDFEXFx1NjM2OFxcdTY1OUNcXHU2NUFGXFx1NjdGNlxcdTY3RkJcXHU2OEFEXFx1NkI3QlxcdTZDOTlcXHU2Q0Q3XFx1NkUyM1xcdTcwMDlcXHU3MzQ1XFx1NzgwMlxcdTc5M0VcXHU3OTQwXFx1Nzk2MFxcdTc5QzFcXHU3QkU5XFx1N0QxN1xcdTdENzJcXHU4MDg2XFx1ODIwRFxcdTgzOEVcXHU4NEQxXFx1ODZDN1xcdTg4REZcXHU4QTUwXFx1OEE1RVxcdThCMURcXHU4Q0RDXFx1OEQ2NlxcdThGQURcXHU5MEFBXFx1OThGQ1xcdTk5REZcXHU5RTlEXFx1NTI0QVxcdUY5NjlcXHU2NzE0XFx1Rjk2QVwiXSxcbiAgICAgIFtcImRmYTFcIiwgXCJcXHU1MDk4XFx1NTIyQVxcdTVDNzFcXHU2NTYzXFx1NkM1NVxcdTczQ0FcXHU3NTIzXFx1NzU5RFxcdTdCOTdcXHU4NDlDXFx1OTE3OFxcdTk3MzBcXHU0RTc3XFx1NjQ5MlxcdTZCQkFcXHU3MTVFXFx1ODVBOVxcdTRFMDlcXHVGOTZCXFx1Njc0OVxcdTY4RUVcXHU2RTE3XFx1ODI5RlxcdTg1MThcXHU4ODZCXFx1NjNGN1xcdTZGODFcXHU5MjEyXFx1OThBRlxcdTRFMEFcXHU1MEI3XFx1NTBDRlxcdTUxMUZcXHU1NTQ2XFx1NTVBQVxcdTU2MTdcXHU1QjQwXFx1NUMxOVxcdTVDRTBcXHU1RTM4XFx1NUU4QVxcdTVFQTBcXHU1RUMyXFx1NjBGM1xcdTY4NTFcXHU2QTYxXFx1NkU1OFxcdTcyM0RcXHU3MjQwXFx1NzJDMFxcdTc2RjhcXHU3OTY1XFx1N0JCMVxcdTdGRDRcXHU4OEYzXFx1ODlGNFxcdThBNzNcXHU4QzYxXFx1OENERVxcdTk3MUNcXHU1ODVFXFx1NzRCRFxcdThDRkRcXHU1NUM3XFx1Rjk2Q1xcdTdBNjFcXHU3RDIyXFx1ODI3MlxcdTcyNzJcXHU3NTFGXFx1NzUyNVxcdUY5NkRcXHU3QjE5XFx1NTg4NVxcdTU4RkJcXHU1REJDXFx1NUU4RlxcdTVFQjZcXHU1RjkwXFx1NjA1NVxcdTYyOTJcXHU2MzdGXFx1NjU0RFxcdTY2OTFcXHU2NkQ5XFx1NjZGOFxcdTY4MTZcXHU2OEYyXFx1NzI4MFxcdTc0NUVcXHU3QjZFXFx1N0Q2RVxcdTdERDZcXHU3RjcyXCJdLFxuICAgICAgW1wiZTBhMVwiLCBcIlxcdTgwRTVcXHU4MjEyXFx1ODVBRlxcdTg5N0ZcXHU4QTkzXFx1OTAxRFxcdTkyRTRcXHU5RUNEXFx1OUYyMFxcdTU5MTVcXHU1OTZEXFx1NUUyRFxcdTYwRENcXHU2NjE0XFx1NjY3M1xcdTY3OTBcXHU2QzUwXFx1NkRDNVxcdTZGNUZcXHU3N0YzXFx1NzhBOVxcdTg0QzZcXHU5MUNCXFx1OTMyQlxcdTRFRDlcXHU1MENBXFx1NTE0OFxcdTU1ODRcXHU1QjBCXFx1NUJBM1xcdTYyNDdcXHU2NTdFXFx1NjVDQlxcdTZFMzJcXHU3MTdEXFx1NzQwMVxcdTc0NDRcXHU3NDg3XFx1NzRCRlxcdTc2NkNcXHU3OUFBXFx1N0REQVxcdTdFNTVcXHU3RkE4XFx1ODE3QVxcdTgxQjNcXHU4MjM5XFx1ODYxQVxcdTg3RUNcXHU4QTc1XFx1OERFM1xcdTkwNzhcXHU5MjkxXFx1OTQyNVxcdTk5NERcXHU5QkFFXFx1NTM2OFxcdTVDNTFcXHU2OTU0XFx1NkNDNFxcdTZEMjlcXHU2RTJCXFx1ODIwQ1xcdTg1OUJcXHU4OTNCXFx1OEEyRFxcdThBQUFcXHU5NkVBXFx1OUY2N1xcdTUyNjFcXHU2NkI5XFx1NkJCMlxcdTdFOTZcXHU4N0ZFXFx1OEQwRFxcdTk1ODNcXHU5NjVEXFx1NjUxRFxcdTZEODlcXHU3MUVFXFx1Rjk2RVxcdTU3Q0VcXHU1OUQzXFx1NUJBQ1xcdTYwMjdcXHU2MEZBXFx1NjIxMFxcdTY2MUZcXHU2NjVGXFx1NzMyOVxcdTczRjlcXHU3NkRCXFx1NzcwMVxcdTdCNkNcIl0sXG4gICAgICBbXCJlMWExXCIsIFwiXFx1ODA1NlxcdTgwNzJcXHU4MTY1XFx1OEFBMFxcdTkxOTJcXHU0RTE2XFx1NTJFMlxcdTZCNzJcXHU2RDE3XFx1N0EwNVxcdTdCMzlcXHU3RDMwXFx1Rjk2RlxcdThDQjBcXHU1M0VDXFx1NTYyRlxcdTU4NTFcXHU1QkI1XFx1NUMwRlxcdTVDMTFcXHU1REUyXFx1NjI0MFxcdTYzODNcXHU2NDE0XFx1NjYyRFxcdTY4QjNcXHU2Q0JDXFx1NkQ4OFxcdTZFQUZcXHU3MDFGXFx1NzBBNFxcdTcxRDJcXHU3NTI2XFx1NzU4RlxcdTc1OEVcXHU3NjE5XFx1N0IxMVxcdTdCRTBcXHU3QzJCXFx1N0QyMFxcdTdEMzlcXHU4NTJDXFx1ODU2RFxcdTg2MDdcXHU4QTM0XFx1OTAwRFxcdTkwNjFcXHU5MEI1XFx1OTJCN1xcdTk3RjZcXHU5QTM3XFx1NEZEN1xcdTVDNkNcXHU2NzVGXFx1NkQ5MVxcdTdDOUZcXHU3RThDXFx1OEIxNlxcdThEMTZcXHU5MDFGXFx1NUI2QlxcdTVERkRcXHU2NDBEXFx1ODRDMFxcdTkwNUNcXHU5OEUxXFx1NzM4N1xcdTVCOEJcXHU2MDlBXFx1Njc3RVxcdTZEREVcXHU4QTFGXFx1OEFBNlxcdTkwMDFcXHU5ODBDXFx1NTIzN1xcdUY5NzBcXHU3MDUxXFx1Nzg4RVxcdTkzOTZcXHU4ODcwXFx1OTFEN1xcdTRGRUVcXHU1M0Q3XFx1NTVGRFxcdTU2REFcXHU1NzgyXFx1NThGRFxcdTVBQzJcXHU1Qjg4XFx1NUNBQlxcdTVDQzBcXHU1RTI1XFx1NjEwMVwiXSxcbiAgICAgIFtcImUyYTFcIiwgXCJcXHU2MjBEXFx1NjI0QlxcdTYzODhcXHU2NDFDXFx1NjUzNlxcdTY1NzhcXHU2QTM5XFx1NkI4QVxcdTZDMzRcXHU2RDE5XFx1NkYzMVxcdTcxRTdcXHU3MkU5XFx1NzM3OFxcdTc0MDdcXHU3NEIyXFx1NzYyNlxcdTc3NjFcXHU3OUMwXFx1N0E1N1xcdTdBRUFcXHU3Q0I5XFx1N0Q4RlxcdTdEQUNcXHU3RTYxXFx1N0Y5RVxcdTgxMjlcXHU4MzMxXFx1ODQ5MFxcdTg0REFcXHU4NUVBXFx1ODg5NlxcdThBQjBcXHU4QjkwXFx1OEYzOFxcdTkwNDJcXHU5MDgzXFx1OTE2Q1xcdTkyOTZcXHU5MkI5XFx1OTY4QlxcdTk2QTdcXHU5NkE4XFx1OTZENlxcdTk3MDBcXHU5ODA4XFx1OTk5NlxcdTlBRDNcXHU5QjFBXFx1NTNENFxcdTU4N0VcXHU1OTE5XFx1NUI3MFxcdTVCQkZcXHU2REQxXFx1NkY1QVxcdTcxOUZcXHU3NDIxXFx1NzRCOVxcdTgwODVcXHU4M0ZEXFx1NURFMVxcdTVGODdcXHU1RkFBXFx1NjA0MlxcdTY1RUNcXHU2ODEyXFx1Njk2RlxcdTZBNTNcXHU2Qjg5XFx1NkQzNVxcdTZERjNcXHU3M0UzXFx1NzZGRVxcdTc3QUNcXHU3QjREXFx1N0QxNFxcdTgxMjNcXHU4MjFDXFx1ODM0MFxcdTg0RjRcXHU4NTYzXFx1OEE2MlxcdThBQzRcXHU5MTg3XFx1OTMxRVxcdTk4MDZcXHU5OUI0XFx1NjIwQ1xcdTg4NTNcXHU4RkYwXFx1OTI2NVxcdTVEMDdcXHU1RDI3XCJdLFxuICAgICAgW1wiZTNhMVwiLCBcIlxcdTVENjlcXHU3NDVGXFx1ODE5RFxcdTg3NjhcXHU2RkQ1XFx1NjJGRVxcdTdGRDJcXHU4OTM2XFx1ODk3MlxcdTRFMUVcXHU0RTU4XFx1NTBFN1xcdTUyRERcXHU1MzQ3XFx1NjI3RlxcdTY2MDdcXHU3RTY5XFx1ODgwNVxcdTk2NUVcXHU0RjhEXFx1NTMxOVxcdTU2MzZcXHU1OUNCXFx1NUFBNFxcdTVDMzhcXHU1QzRFXFx1NUM0RFxcdTVFMDJcXHU1RjExXFx1NjA0M1xcdTY1QkRcXHU2NjJGXFx1NjY0MlxcdTY3QkVcXHU2N0Y0XFx1NzMxQ1xcdTc3RTJcXHU3OTNBXFx1N0ZDNVxcdTg0OTRcXHU4NENEXFx1ODk5NlxcdThBNjZcXHU4QTY5XFx1OEFFMVxcdThDNTVcXHU4QzdBXFx1NTdGNFxcdTVCRDRcXHU1RjBGXFx1NjA2RlxcdTYyRURcXHU2OTBEXFx1NkI5NlxcdTZFNUNcXHU3MTg0XFx1N0JEMlxcdTg3NTVcXHU4QjU4XFx1OEVGRVxcdTk4REZcXHU5OEZFXFx1NEYzOFxcdTRGODFcXHU0RkUxXFx1NTQ3QlxcdTVBMjBcXHU1QkI4XFx1NjEzQ1xcdTY1QjBcXHU2NjY4XFx1NzFGQ1xcdTc1MzNcXHU3OTVFXFx1N0QzM1xcdTgxNEVcXHU4MUUzXFx1ODM5OFxcdTg1QUFcXHU4NUNFXFx1ODcwM1xcdThBMEFcXHU4RUFCXFx1OEY5QlxcdUY5NzFcXHU4RkM1XFx1NTkzMVxcdTVCQTRcXHU1QkU2XFx1NjA4OVxcdTVCRTlcXHU1QzBCXFx1NUZDM1xcdTZDODFcIl0sXG4gICAgICBbXCJlNGExXCIsIFwiXFx1Rjk3MlxcdTZERjFcXHU3MDBCXFx1NzUxQVxcdTgyQUZcXHU4QUY2XFx1NEVDMFxcdTUzNDFcXHVGOTczXFx1OTZEOVxcdTZDMEZcXHU0RTlFXFx1NEZDNFxcdTUxNTJcXHU1NTVFXFx1NUEyNVxcdTVDRThcXHU2MjExXFx1NzI1OVxcdTgyQkRcXHU4M0FBXFx1ODZGRVxcdTg4NTlcXHU4QTFEXFx1OTYzRlxcdTk2QzVcXHU5OTEzXFx1OUQwOVxcdTlENURcXHU1ODBBXFx1NUNCM1xcdTVEQkRcXHU1RTQ0XFx1NjBFMVxcdTYxMTVcXHU2M0UxXFx1NkEwMlxcdTZFMjVcXHU5MTAyXFx1OTM1NFxcdTk4NEVcXHU5QzEwXFx1OUY3N1xcdTVCODlcXHU1Q0I4XFx1NjMwOVxcdTY2NEZcXHU2ODQ4XFx1NzczQ1xcdTk2QzFcXHU5NzhEXFx1OTg1NFxcdTlCOUZcXHU2NUExXFx1OEIwMVxcdThFQ0JcXHU5NUJDXFx1NTUzNVxcdTVDQTlcXHU1REQ2XFx1NUVCNVxcdTY2OTdcXHU3NjRDXFx1ODNGNFxcdTk1QzdcXHU1OEQzXFx1NjJCQ1xcdTcyQ0VcXHU5RDI4XFx1NEVGMFxcdTU5MkVcXHU2MDBGXFx1NjYzQlxcdTZCODNcXHU3OUU3XFx1OUQyNlxcdTUzOTNcXHU1NEMwXFx1NTdDM1xcdTVEMTZcXHU2MTFCXFx1NjZENlxcdTZEQUZcXHU3ODhEXFx1ODI3RVxcdTk2OThcXHU5NzQ0XFx1NTM4NFxcdTYyN0NcXHU2Mzk2XFx1NkRCMlxcdTdFMEFcXHU4MTRCXFx1OTg0RFwiXSxcbiAgICAgIFtcImU1YTFcIiwgXCJcXHU2QUZCXFx1N0Y0Q1xcdTlEQUZcXHU5RTFBXFx1NEU1RlxcdTUwM0JcXHU1MUI2XFx1NTkxQ1xcdTYwRjlcXHU2M0Y2XFx1NjkzMFxcdTcyM0FcXHU4MDM2XFx1Rjk3NFxcdTkxQ0VcXHU1RjMxXFx1Rjk3NVxcdUY5NzZcXHU3RDA0XFx1ODJFNVxcdTg0NkZcXHU4NEJCXFx1ODVFNVxcdThFOERcXHVGOTc3XFx1NEY2RlxcdUY5NzhcXHVGOTc5XFx1NThFNFxcdTVCNDNcXHU2MDU5XFx1NjNEQVxcdTY1MThcXHU2NTZEXFx1NjY5OFxcdUY5N0FcXHU2OTRBXFx1NkEyM1xcdTZEMEJcXHU3MDAxXFx1NzE2Q1xcdTc1RDJcXHU3NjBEXFx1NzlCM1xcdTdBNzBcXHVGOTdCXFx1N0Y4QVxcdUY5N0NcXHU4OTQ0XFx1Rjk3RFxcdThCOTNcXHU5MUMwXFx1OTY3RFxcdUY5N0VcXHU5OTBBXFx1NTcwNFxcdTVGQTFcXHU2NUJDXFx1NkYwMVxcdTc2MDBcXHU3OUE2XFx1OEE5RVxcdTk5QURcXHU5QjVBXFx1OUY2Q1xcdTUxMDRcXHU2MUI2XFx1NjI5MVxcdTZBOERcXHU4MUM2XFx1NTA0M1xcdTU4MzBcXHU1RjY2XFx1NzEwOVxcdThBMDBcXHU4QUZBXFx1NUI3Q1xcdTg2MTZcXHU0RkZBXFx1NTEzQ1xcdTU2QjRcXHU1OTQ0XFx1NjNBOVxcdTZERjlcXHU1REFBXFx1Njk2RFxcdTUxODZcXHU0RTg4XFx1NEY1OVxcdUY5N0ZcXHVGOTgwXFx1Rjk4MVxcdTU5ODJcXHVGOTgyXCJdLFxuICAgICAgW1wiZTZhMVwiLCBcIlxcdUY5ODNcXHU2QjVGXFx1NkM1RFxcdUY5ODRcXHU3NEI1XFx1NzkxNlxcdUY5ODVcXHU4MjA3XFx1ODI0NVxcdTgzMzlcXHU4RjNGXFx1OEY1RFxcdUY5ODZcXHU5OTE4XFx1Rjk4N1xcdUY5ODhcXHVGOTg5XFx1NEVBNlxcdUY5OEFcXHU1N0RGXFx1NUY3OVxcdTY2MTNcXHVGOThCXFx1Rjk4Q1xcdTc1QUJcXHU3RTc5XFx1OEI2RlxcdUY5OERcXHU5MDA2XFx1OUE1QlxcdTU2QTVcXHU1ODI3XFx1NTlGOFxcdTVBMUZcXHU1QkI0XFx1Rjk4RVxcdTVFRjZcXHVGOThGXFx1Rjk5MFxcdTYzNTBcXHU2MzNCXFx1Rjk5MVxcdTY5M0RcXHU2Qzg3XFx1NkNCRlxcdTZEOEVcXHU2RDkzXFx1NkRGNVxcdTZGMTRcXHVGOTkyXFx1NzBERlxcdTcxMzZcXHU3MTU5XFx1Rjk5M1xcdTcxQzNcXHU3MUQ1XFx1Rjk5NFxcdTc4NEZcXHU3ODZGXFx1Rjk5NVxcdTdCNzVcXHU3REUzXFx1Rjk5NlxcdTdFMkZcXHVGOTk3XFx1ODg0RFxcdThFREZcXHVGOTk4XFx1Rjk5OVxcdUY5OUFcXHU5MjVCXFx1Rjk5QlxcdTlDRjZcXHVGOTlDXFx1Rjk5RFxcdUY5OUVcXHU2MDg1XFx1NkQ4NVxcdUY5OUZcXHU3MUIxXFx1RjlBMFxcdUY5QTFcXHU5NUIxXFx1NTNBRFxcdUY5QTJcXHVGOUEzXFx1RjlBNFxcdTY3RDNcXHVGOUE1XFx1NzA4RVxcdTcxMzBcXHU3NDMwXFx1ODI3NlxcdTgyRDJcIl0sXG4gICAgICBbXCJlN2ExXCIsIFwiXFx1RjlBNlxcdTk1QkJcXHU5QUU1XFx1OUU3RFxcdTY2QzRcXHVGOUE3XFx1NzFDMVxcdTg0NDlcXHVGOUE4XFx1RjlBOVxcdTU4NEJcXHVGOUFBXFx1RjlBQlxcdTVEQjhcXHU1RjcxXFx1RjlBQ1xcdTY2MjBcXHU2NjhFXFx1Njk3OVxcdTY5QUVcXHU2QzM4XFx1NkNGM1xcdTZFMzZcXHU2RjQxXFx1NkZEQVxcdTcwMUJcXHU3MDJGXFx1NzE1MFxcdTcxREZcXHU3MzcwXFx1RjlBRFxcdTc0NUJcXHVGOUFFXFx1NzRENFxcdTc2QzhcXHU3QTRFXFx1N0U5M1xcdUY5QUZcXHVGOUIwXFx1ODJGMVxcdThBNjBcXHU4RkNFXFx1RjlCMVxcdTkzNDhcXHVGOUIyXFx1OTcxOVxcdUY5QjNcXHVGOUI0XFx1NEU0MlxcdTUwMkFcXHVGOUI1XFx1NTIwOFxcdTUzRTFcXHU2NkYzXFx1NkM2RFxcdTZGQ0FcXHU3MzBBXFx1Nzc3RlxcdTdBNjJcXHU4MkFFXFx1ODVERFxcdTg2MDJcXHVGOUI2XFx1ODhENFxcdThBNjNcXHU4QjdEXFx1OEM2QlxcdUY5QjdcXHU5MkIzXFx1RjlCOFxcdTk3MTNcXHU5ODEwXFx1NEU5NFxcdTRGMERcXHU0RkM5XFx1NTBCMlxcdTUzNDhcXHU1NDNFXFx1NTQzM1xcdTU1REFcXHU1ODYyXFx1NThCQVxcdTU5NjdcXHU1QTFCXFx1NUJFNFxcdTYwOUZcXHVGOUI5XFx1NjFDQVxcdTY1NTZcXHU2NUZGXFx1NjY2NFxcdTY4QTdcXHU2QzVBXFx1NkZCM1wiXSxcbiAgICAgIFtcImU4YTFcIiwgXCJcXHU3MENGXFx1NzFBQ1xcdTczNTJcXHU3QjdEXFx1ODcwOFxcdThBQTRcXHU5QzMyXFx1OUYwN1xcdTVDNEJcXHU2QzgzXFx1NzM0NFxcdTczODlcXHU5MjNBXFx1NkVBQlxcdTc0NjVcXHU3NjFGXFx1N0E2OVxcdTdFMTVcXHU4NjBBXFx1NTE0MFxcdTU4QzVcXHU2NEMxXFx1NzRFRVxcdTc1MTVcXHU3NjcwXFx1N0ZDMVxcdTkwOTVcXHU5NkNEXFx1OTk1NFxcdTZFMjZcXHU3NEU2XFx1N0FBOVxcdTdBQUFcXHU4MUU1XFx1ODZEOVxcdTg3NzhcXHU4QTFCXFx1NUE0OVxcdTVCOENcXHU1QjlCXFx1NjhBMVxcdTY5MDBcXHU2RDYzXFx1NzNBOVxcdTc0MTNcXHU3NDJDXFx1Nzg5N1xcdTdERTlcXHU3RkVCXFx1ODExOFxcdTgxNTVcXHU4MzlFXFx1OEM0Q1xcdTk2MkVcXHU5ODExXFx1NjZGMFxcdTVGODBcXHU2NUZBXFx1Njc4OVxcdTZDNkFcXHU3MzhCXFx1NTAyRFxcdTVBMDNcXHU2QjZBXFx1NzdFRVxcdTU5MTZcXHU1RDZDXFx1NURDRFxcdTczMjVcXHU3NTRGXFx1RjlCQVxcdUY5QkJcXHU1MEU1XFx1NTFGOVxcdTU4MkZcXHU1OTJEXFx1NTk5NlxcdTU5REFcXHU1QkU1XFx1RjlCQ1xcdUY5QkRcXHU1REEyXFx1NjJEN1xcdTY0MTZcXHU2NDkzXFx1NjRGRVxcdUY5QkVcXHU2NkRDXFx1RjlCRlxcdTZBNDhcXHVGOUMwXFx1NzFGRlxcdTc0NjRcXHVGOUMxXCJdLFxuICAgICAgW1wiZTlhMVwiLCBcIlxcdTdBODhcXHU3QUFGXFx1N0U0N1xcdTdFNUVcXHU4MDAwXFx1ODE3MFxcdUY5QzJcXHU4N0VGXFx1ODk4MVxcdThCMjBcXHU5MDU5XFx1RjlDM1xcdTkwODBcXHU5OTUyXFx1NjE3RVxcdTZCMzJcXHU2RDc0XFx1N0UxRlxcdTg5MjVcXHU4RkIxXFx1NEZEMVxcdTUwQURcXHU1MTk3XFx1NTJDN1xcdTU3QzdcXHU1ODg5XFx1NUJCOVxcdTVFQjhcXHU2MTQyXFx1Njk5NVxcdTZEOENcXHU2RTY3XFx1NkVCNlxcdTcxOTRcXHU3NDYyXFx1NzUyOFxcdTc1MkNcXHU4MDczXFx1ODMzOFxcdTg0QzlcXHU4RTBBXFx1OTM5NFxcdTkzREVcXHVGOUM0XFx1NEU4RVxcdTRGNTFcXHU1MDc2XFx1NTEyQVxcdTUzQzhcXHU1M0NCXFx1NTNGM1xcdTVCODdcXHU1QkQzXFx1NUMyNFxcdTYxMUFcXHU2MTgyXFx1NjVGNFxcdTcyNUJcXHU3Mzk3XFx1NzQ0MFxcdTc2QzJcXHU3OTUwXFx1Nzk5MVxcdTc5QjlcXHU3RDA2XFx1N0ZCRFxcdTgyOEJcXHU4NUQ1XFx1ODY1RVxcdThGQzJcXHU5MDQ3XFx1OTBGNVxcdTkxRUFcXHU5Njg1XFx1OTZFOFxcdTk2RTlcXHU1MkQ2XFx1NUY2N1xcdTY1RURcXHU2NjMxXFx1NjgyRlxcdTcxNUNcXHU3QTM2XFx1OTBDMVxcdTk4MEFcXHU0RTkxXFx1RjlDNVxcdTZBNTJcXHU2QjlFXFx1NkY5MFxcdTcxODlcXHU4MDE4XFx1ODJCOFxcdTg1NTNcIl0sXG4gICAgICBbXCJlYWExXCIsIFwiXFx1OTA0QlxcdTk2OTVcXHU5NkYyXFx1OTdGQlxcdTg1MUFcXHU5QjMxXFx1NEU5MFxcdTcxOEFcXHU5NkM0XFx1NTE0M1xcdTUzOUZcXHU1NEUxXFx1NTcxM1xcdTU3MTJcXHU1N0EzXFx1NUE5QlxcdTVBQzRcXHU1QkMzXFx1NjAyOFxcdTYxM0ZcXHU2M0Y0XFx1NkM4NVxcdTZEMzlcXHU2RTcyXFx1NkU5MFxcdTcyMzBcXHU3MzNGXFx1NzQ1N1xcdTgyRDFcXHU4ODgxXFx1OEY0NVxcdTkwNjBcXHVGOUM2XFx1OTY2MlxcdTk4NThcXHU5RDFCXFx1NjcwOFxcdThEOEFcXHU5MjVFXFx1NEY0RFxcdTUwNDlcXHU1MERFXFx1NTM3MVxcdTU3MERcXHU1OUQ0XFx1NUEwMVxcdTVDMDlcXHU2MTcwXFx1NjY5MFxcdTZFMkRcXHU3MjMyXFx1NzQ0QlxcdTdERUZcXHU4MEMzXFx1ODQwRVxcdTg0NjZcXHU4NTNGXFx1ODc1RlxcdTg4NUJcXHU4OTE4XFx1OEIwMlxcdTkwNTVcXHU5N0NCXFx1OUI0RlxcdTRFNzNcXHU0RjkxXFx1NTExMlxcdTUxNkFcXHVGOUM3XFx1NTUyRlxcdTU1QTlcXHU1QjdBXFx1NUJBNVxcdTVFN0NcXHU1RTdEXFx1NUVCRVxcdTYwQTBcXHU2MERGXFx1NjEwOFxcdTYxMDlcXHU2M0M0XFx1NjUzOFxcdTY3MDlcXHVGOUM4XFx1NjdENFxcdTY3REFcXHVGOUM5XFx1Njk2MVxcdTY5NjJcXHU2Q0I5XFx1NkQyN1xcdUY5Q0FcXHU2RTM4XFx1RjlDQlwiXSxcbiAgICAgIFtcImViYTFcIiwgXCJcXHU2RkUxXFx1NzMzNlxcdTczMzdcXHVGOUNDXFx1NzQ1Q1xcdTc1MzFcXHVGOUNEXFx1NzY1MlxcdUY5Q0VcXHVGOUNGXFx1N0RBRFxcdTgxRkVcXHU4NDM4XFx1ODhENVxcdThBOThcXHU4QURCXFx1OEFFRFxcdThFMzBcXHU4RTQyXFx1OTA0QVxcdTkwM0VcXHU5MDdBXFx1OTE0OVxcdTkxQzlcXHU5MzZFXFx1RjlEMFxcdUY5RDFcXHU1ODA5XFx1RjlEMlxcdTZCRDNcXHU4MDg5XFx1ODBCMlxcdUY5RDNcXHVGOUQ0XFx1NTE0MVxcdTU5NkJcXHU1QzM5XFx1RjlENVxcdUY5RDZcXHU2RjY0XFx1NzNBN1xcdTgwRTRcXHU4RDA3XFx1RjlEN1xcdTkyMTdcXHU5NThGXFx1RjlEOFxcdUY5RDlcXHVGOURBXFx1RjlEQlxcdTgwN0ZcXHU2MjBFXFx1NzAxQ1xcdTdENjhcXHU4NzhEXFx1RjlEQ1xcdTU3QTBcXHU2MDY5XFx1NjE0N1xcdTZCQjdcXHU4QUJFXFx1OTI4MFxcdTk2QjFcXHU0RTU5XFx1NTQxRlxcdTZERUJcXHU4NTJEXFx1OTY3MFxcdTk3RjNcXHU5OEVFXFx1NjNENlxcdTZDRTNcXHU5MDkxXFx1NTFERFxcdTYxQzlcXHU4MUJBXFx1OURGOVxcdTRGOURcXHU1MDFBXFx1NTEwMFxcdTVCOUNcXHU2MTBGXFx1NjFGRlxcdTY0RUNcXHU2OTA1XFx1NkJDNVxcdTc1OTFcXHU3N0UzXFx1N0ZBOVxcdTgyNjRcXHU4NThGXFx1ODdGQlxcdTg4NjNcXHU4QUJDXCJdLFxuICAgICAgW1wiZWNhMVwiLCBcIlxcdThCNzBcXHU5MUFCXFx1NEU4Q1xcdTRFRTVcXHU0RjBBXFx1RjlERFxcdUY5REVcXHU1OTM3XFx1NTlFOFxcdUY5REZcXHU1REYyXFx1NUYxQlxcdTVGNUJcXHU2MDIxXFx1RjlFMFxcdUY5RTFcXHVGOUUyXFx1RjlFM1xcdTcyM0VcXHU3M0U1XFx1RjlFNFxcdTc1NzBcXHU3NUNEXFx1RjlFNVxcdTc5RkJcXHVGOUU2XFx1ODAwQ1xcdTgwMzNcXHU4MDg0XFx1ODJFMVxcdTgzNTFcXHVGOUU3XFx1RjlFOFxcdThDQkRcXHU4Q0IzXFx1OTA4N1xcdUY5RTlcXHVGOUVBXFx1OThGNFxcdTk5MENcXHVGOUVCXFx1RjlFQ1xcdTcwMzdcXHU3NkNBXFx1N0ZDQVxcdTdGQ0NcXHU3RkZDXFx1OEIxQVxcdTRFQkFcXHU0RUMxXFx1NTIwM1xcdTUzNzBcXHVGOUVEXFx1NTRCRFxcdTU2RTBcXHU1OUZCXFx1NUJDNVxcdTVGMTVcXHU1RkNEXFx1NkU2RVxcdUY5RUVcXHVGOUVGXFx1N0Q2QVxcdTgzMzVcXHVGOUYwXFx1ODY5M1xcdThBOERcXHVGOUYxXFx1OTc2RFxcdTk3NzdcXHVGOUYyXFx1RjlGM1xcdTRFMDBcXHU0RjVBXFx1NEY3RVxcdTU4RjlcXHU2NUU1XFx1NkVBMlxcdTkwMzhcXHU5M0IwXFx1OTlCOVxcdTRFRkJcXHU1OEVDXFx1NTk4QVxcdTU5RDlcXHU2MDQxXFx1RjlGNFxcdUY5RjVcXHU3QTE0XFx1RjlGNlxcdTgzNEZcXHU4Q0MzXFx1NTE2NVxcdTUzNDRcIl0sXG4gICAgICBbXCJlZGExXCIsIFwiXFx1RjlGN1xcdUY5RjhcXHVGOUY5XFx1NEVDRFxcdTUyNjlcXHU1QjU1XFx1ODJCRlxcdTRFRDRcXHU1MjNBXFx1NTRBOFxcdTU5QzlcXHU1OUZGXFx1NUI1MFxcdTVCNTdcXHU1QjVDXFx1NjA2M1xcdTYxNDhcXHU2RUNCXFx1NzA5OVxcdTcxNkVcXHU3Mzg2XFx1NzRGN1xcdTc1QjVcXHU3OEMxXFx1N0QyQlxcdTgwMDVcXHU4MUVBXFx1ODMyOFxcdTg1MTdcXHU4NUM5XFx1OEFFRVxcdThDQzdcXHU5NkNDXFx1NEY1Q1xcdTUyRkFcXHU1NkJDXFx1NjVBQlxcdTY2MjhcXHU3MDdDXFx1NzBCOFxcdTcyMzVcXHU3REJEXFx1ODI4RFxcdTkxNENcXHU5NkMwXFx1OUQ3MlxcdTVCNzFcXHU2OEU3XFx1NkI5OFxcdTZGN0FcXHU3NkRFXFx1NUM5MVxcdTY2QUJcXHU2RjVCXFx1N0JCNFxcdTdDMkFcXHU4ODM2XFx1OTZEQ1xcdTRFMDhcXHU0RUQ3XFx1NTMyMFxcdTU4MzRcXHU1OEJCXFx1NThFRlxcdTU5NkNcXHU1QzA3XFx1NUUzM1xcdTVFODRcXHU1RjM1XFx1NjM4Q1xcdTY2QjJcXHU2NzU2XFx1NkExRlxcdTZBQTNcXHU2QjBDXFx1NkYzRlxcdTcyNDZcXHVGOUZBXFx1NzM1MFxcdTc0OEJcXHU3QUUwXFx1N0NBN1xcdTgxNzhcXHU4MURGXFx1ODFFN1xcdTgzOEFcXHU4NDZDXFx1ODUyM1xcdTg1OTRcXHU4NUNGXFx1ODhERFxcdThEMTNcXHU5MUFDXFx1OTU3N1wiXSxcbiAgICAgIFtcImVlYTFcIiwgXCJcXHU5NjlDXFx1NTE4RFxcdTU0QzlcXHU1NzI4XFx1NUJCMFxcdTYyNERcXHU2NzUwXFx1NjgzRFxcdTY4OTNcXHU2RTNEXFx1NkVEM1xcdTcwN0RcXHU3RTIxXFx1ODhDMVxcdThDQTFcXHU4RjA5XFx1OUY0QlxcdTlGNEVcXHU3MjJEXFx1N0I4RlxcdThBQ0RcXHU5MzFBXFx1NEY0N1xcdTRGNEVcXHU1MTMyXFx1NTQ4MFxcdTU5RDBcXHU1RTk1XFx1NjJCNVxcdTY3NzVcXHU2OTZFXFx1NkExN1xcdTZDQUVcXHU2RTFBXFx1NzJEOVxcdTczMkFcXHU3NUJEXFx1N0JCOFxcdTdEMzVcXHU4MkU3XFx1ODNGOVxcdTg0NTdcXHU4NUY3XFx1OEE1QlxcdThDQUZcXHU4RTg3XFx1OTAxOVxcdTkwQjhcXHU5NkNFXFx1OUY1RlxcdTUyRTNcXHU1NDBBXFx1NUFFMVxcdTVCQzJcXHU2NDU4XFx1NjU3NVxcdTZFRjRcXHU3MkM0XFx1RjlGQlxcdTc2ODRcXHU3QTREXFx1N0IxQlxcdTdDNERcXHU3RTNFXFx1N0ZERlxcdTgzN0JcXHU4QjJCXFx1OENDQVxcdThENjRcXHU4REUxXFx1OEU1RlxcdThGRUFcXHU4RkY5XFx1OTA2OVxcdTkzRDFcXHU0RjQzXFx1NEY3QVxcdTUwQjNcXHU1MTY4XFx1NTE3OFxcdTUyNERcXHU1MjZBXFx1NTg2MVxcdTU4N0NcXHU1OTYwXFx1NUMwOFxcdTVDNTVcXHU1RURCXFx1NjA5QlxcdTYyMzBcXHU2ODEzXFx1NkJCRlxcdTZDMDhcXHU2RkIxXCJdLFxuICAgICAgW1wiZWZhMVwiLCBcIlxcdTcxNEVcXHU3NDIwXFx1NzUzMFxcdTc1MzhcXHU3NTUxXFx1NzY3MlxcdTdCNENcXHU3QjhCXFx1N0JBRFxcdTdCQzZcXHU3RThGXFx1OEE2RVxcdThGM0VcXHU4RjQ5XFx1OTIzRlxcdTkyOTNcXHU5MzIyXFx1OTQyQlxcdTk2RkJcXHU5ODVBXFx1OTg2QlxcdTk5MUVcXHU1MjA3XFx1NjIyQVxcdTYyOThcXHU2RDU5XFx1NzY2NFxcdTdBQ0FcXHU3QkMwXFx1N0Q3NlxcdTUzNjBcXHU1Q0JFXFx1NUU5N1xcdTZGMzhcXHU3MEI5XFx1N0M5OFxcdTk3MTFcXHU5QjhFXFx1OUVERVxcdTYzQTVcXHU2NDdBXFx1ODc3NlxcdTRFMDFcXHU0RTk1XFx1NEVBRFxcdTUwNUNcXHU1MDc1XFx1NTQ0OFxcdTU5QzNcXHU1QjlBXFx1NUU0MFxcdTVFQURcXHU1RUY3XFx1NUY4MVxcdTYwQzVcXHU2MzNBXFx1NjUzRlxcdTY1NzRcXHU2NUNDXFx1NjY3NlxcdTY2NzhcXHU2N0ZFXFx1Njk2OFxcdTZBODlcXHU2QjYzXFx1NkM0MFxcdTZEQzBcXHU2REU4XFx1NkUxRlxcdTZFNUVcXHU3MDFFXFx1NzBBMVxcdTczOEVcXHU3M0ZEXFx1NzUzQVxcdTc3NUJcXHU3ODg3XFx1Nzk4RVxcdTdBMEJcXHU3QTdEXFx1N0NCRVxcdTdEOEVcXHU4MjQ3XFx1OEEwMlxcdThBRUFcXHU4QzlFXFx1OTEyRFxcdTkxNEFcXHU5MUQ4XFx1OTI2NlxcdTkyQ0NcXHU5MzIwXFx1OTcwNlxcdTk3NTZcIl0sXG4gICAgICBbXCJmMGExXCIsIFwiXFx1OTc1Q1xcdTk4MDJcXHU5RjBFXFx1NTIzNlxcdTUyOTFcXHU1NTdDXFx1NTgyNFxcdTVFMURcXHU1RjFGXFx1NjA4Q1xcdTYzRDBcXHU2OEFGXFx1NkZERlxcdTc5NkRcXHU3QjJDXFx1ODFDRFxcdTg1QkFcXHU4OEZEXFx1OEFGOFxcdThFNDRcXHU5MThEXFx1OTY2NFxcdTk2OUJcXHU5NzNEXFx1OTg0Q1xcdTlGNEFcXHU0RkNFXFx1NTE0NlxcdTUxQ0JcXHU1MkE5XFx1NTYzMlxcdTVGMTRcXHU1RjZCXFx1NjNBQVxcdTY0Q0RcXHU2NUU5XFx1NjY0MVxcdTY2RkFcXHU2NkY5XFx1NjcxRFxcdTY4OURcXHU2OEQ3XFx1NjlGRFxcdTZGMTVcXHU2RjZFXFx1NzE2N1xcdTcxRTVcXHU3MjJBXFx1NzRBQVxcdTc3M0FcXHU3OTU2XFx1Nzk1QVxcdTc5REZcXHU3QTIwXFx1N0E5NVxcdTdDOTdcXHU3Q0RGXFx1N0Q0NFxcdTdFNzBcXHU4MDg3XFx1ODVGQlxcdTg2QTRcXHU4QTU0XFx1OEFCRlxcdThEOTlcXHU4RTgxXFx1OTAyMFxcdTkwNkRcXHU5MUUzXFx1OTYzQlxcdTk2RDVcXHU5Q0U1XFx1NjVDRlxcdTdDMDdcXHU4REIzXFx1OTNDM1xcdTVCNThcXHU1QzBBXFx1NTM1MlxcdTYyRDlcXHU3MzFEXFx1NTAyN1xcdTVCOTdcXHU1RjlFXFx1NjBCMFxcdTYxNkJcXHU2OEQ1XFx1NkREOVxcdTc0MkVcXHU3QTJFXFx1N0Q0MlxcdTdEOUNcXHU3RTMxXFx1ODE2QlwiXSxcbiAgICAgIFtcImYxYTFcIiwgXCJcXHU4RTJBXFx1OEUzNVxcdTkzN0VcXHU5NDE4XFx1NEY1MFxcdTU3NTBcXHU1REU2XFx1NUVBN1xcdTYzMkJcXHU3RjZBXFx1NEUzQlxcdTRGNEZcXHU0RjhGXFx1NTA1QVxcdTU5RERcXHU4MEM0XFx1NTQ2QVxcdTU0NjhcXHU1NUZFXFx1NTk0RlxcdTVCOTlcXHU1RERFXFx1NUVEQVxcdTY2NURcXHU2NzMxXFx1NjdGMVxcdTY4MkFcXHU2Q0U4XFx1NkQzMlxcdTZFNEFcXHU2RjhEXFx1NzBCN1xcdTczRTBcXHU3NTg3XFx1N0M0Q1xcdTdEMDJcXHU3RDJDXFx1N0RBMlxcdTgyMUZcXHU4NkRCXFx1OEEzQlxcdThBODVcXHU4RDcwXFx1OEU4QVxcdThGMzNcXHU5MDMxXFx1OTE0RVxcdTkxNTJcXHU5NDQ0XFx1OTlEMFxcdTdBRjlcXHU3Q0E1XFx1NEZDQVxcdTUxMDFcXHU1MUM2XFx1NTdDOFxcdTVCRUZcXHU1Q0ZCXFx1NjY1OVxcdTZBM0RcXHU2RDVBXFx1NkU5NlxcdTZGRUNcXHU3MTBDXFx1NzU2RlxcdTdBRTNcXHU4ODIyXFx1OTAyMVxcdTkwNzVcXHU5NkNCXFx1OTlGRlxcdTgzMDFcXHU0RTJEXFx1NEVGMlxcdTg4NDZcXHU5MUNEXFx1NTM3RFxcdTZBREJcXHU2OTZCXFx1NkM0MVxcdTg0N0FcXHU1ODlFXFx1NjE4RVxcdTY2RkVcXHU2MkVGXFx1NzBERFxcdTc1MTFcXHU3NUM3XFx1N0U1MlxcdTg0QjhcXHU4QjQ5XFx1OEQwOFxcdTRFNEJcXHU1M0VBXCJdLFxuICAgICAgW1wiZjJhMVwiLCBcIlxcdTU0QUJcXHU1NzMwXFx1NTc0MFxcdTVGRDdcXHU2MzAxXFx1NjMwN1xcdTY0NkZcXHU2NTJGXFx1NjVFOFxcdTY2N0FcXHU2NzlEXFx1NjdCM1xcdTZCNjJcXHU2QzYwXFx1NkM5QVxcdTZGMkNcXHU3N0U1XFx1NzgyNVxcdTc5NDlcXHU3OTU3XFx1N0QxOVxcdTgwQTJcXHU4MTAyXFx1ODFGM1xcdTgyOURcXHU4MkI3XFx1ODcxOFxcdThBOENcXHVGOUZDXFx1OEQwNFxcdThEQkVcXHU5MDcyXFx1NzZGNFxcdTdBMTlcXHU3QTM3XFx1N0U1NFxcdTgwNzdcXHU1NTA3XFx1NTVENFxcdTU4NzVcXHU2MzJGXFx1NjQyMlxcdTY2NDlcXHU2NjRCXFx1Njg2RFxcdTY5OUJcXHU2Qjg0XFx1NkQyNVxcdTZFQjFcXHU3M0NEXFx1NzQ2OFxcdTc0QTFcXHU3NTVCXFx1NzVCOVxcdTc2RTFcXHU3NzFFXFx1Nzc4QlxcdTc5RTZcXHU3RTA5XFx1N0UxRFxcdTgxRkJcXHU4NTJGXFx1ODg5N1xcdThBM0FcXHU4Q0QxXFx1OEVFQlxcdThGQjBcXHU5MDMyXFx1OTNBRFxcdTk2NjNcXHU5NjczXFx1OTcwN1xcdTRGODRcXHU1M0YxXFx1NTlFQVxcdTVBQzlcXHU1RTE5XFx1Njg0RVxcdTc0QzZcXHU3NUJFXFx1NzlFOVxcdTdBOTJcXHU4MUEzXFx1ODZFRFxcdThDRUFcXHU4RENDXFx1OEZFRFxcdTY1OUZcXHU2NzE1XFx1RjlGRFxcdTU3RjdcXHU2RjU3XFx1N0RERFxcdThGMkZcIl0sXG4gICAgICBbXCJmM2ExXCIsIFwiXFx1OTNGNlxcdTk2QzZcXHU1RkI1XFx1NjFGMlxcdTZGODRcXHU0RTE0XFx1NEY5OFxcdTUwMUZcXHU1M0M5XFx1NTVERlxcdTVENkZcXHU1REVFXFx1NkIyMVxcdTZCNjRcXHU3OENCXFx1N0I5QVxcdUY5RkVcXHU4RTQ5XFx1OEVDQVxcdTkwNkVcXHU2MzQ5XFx1NjQzRVxcdTc3NDBcXHU3QTg0XFx1OTMyRlxcdTk0N0ZcXHU5RjZBXFx1NjRCMFxcdTZGQUZcXHU3MUU2XFx1NzRBOFxcdTc0REFcXHU3QUM0XFx1N0MxMlxcdTdFODJcXHU3Q0IyXFx1N0U5OFxcdThCOUFcXHU4RDBBXFx1OTQ3RFxcdTk5MTBcXHU5OTRDXFx1NTIzOVxcdTVCREZcXHU2NEU2XFx1NjcyRFxcdTdEMkVcXHU1MEVEXFx1NTNDM1xcdTU4NzlcXHU2MTU4XFx1NjE1OVxcdTYxRkFcXHU2NUFDXFx1N0FEOVxcdThCOTJcXHU4Qjk2XFx1NTAwOVxcdTUwMjFcXHU1Mjc1XFx1NTUzMVxcdTVBM0NcXHU1RUUwXFx1NUY3MFxcdTYxMzRcXHU2NTVFXFx1NjYwQ1xcdTY2MzZcXHU2NkEyXFx1NjlDRFxcdTZFQzRcXHU2RjMyXFx1NzMxNlxcdTc2MjFcXHU3QTkzXFx1ODEzOVxcdTgyNTlcXHU4M0Q2XFx1ODRCQ1xcdTUwQjVcXHU1N0YwXFx1NUJDMFxcdTVCRThcXHU1RjY5XFx1NjNBMVxcdTc4MjZcXHU3REI1XFx1ODNEQ1xcdTg1MjFcXHU5MUM3XFx1OTFGNVxcdTUxOEFcXHU2N0Y1XFx1N0I1NlwiXSxcbiAgICAgIFtcImY0YTFcIiwgXCJcXHU4Q0FDXFx1NTFDNFxcdTU5QkJcXHU2MEJEXFx1ODY1NVxcdTUwMUNcXHVGOUZGXFx1NTI1NFxcdTVDM0FcXHU2MTdEXFx1NjIxQVxcdTYyRDNcXHU2NEYyXFx1NjVBNVxcdTZFQ0NcXHU3NjIwXFx1ODEwQVxcdThFNjBcXHU5NjVGXFx1OTZCQlxcdTRFREZcXHU1MzQzXFx1NTU5OFxcdTU5MjlcXHU1REREXFx1NjRDNVxcdTZDQzlcXHU2REZBXFx1NzM5NFxcdTdBN0ZcXHU4MjFCXFx1ODVBNlxcdThDRTRcXHU4RTEwXFx1OTA3N1xcdTkxRTdcXHU5NUUxXFx1OTYyMVxcdTk3QzZcXHU1MUY4XFx1NTRGMlxcdTU1ODZcXHU1RkI5XFx1NjRBNFxcdTZGODhcXHU3REI0XFx1OEYxRlxcdThGNERcXHU5NDM1XFx1NTBDOVxcdTVDMTZcXHU2Q0JFXFx1NkRGQlxcdTc1MUJcXHU3N0JCXFx1N0MzRFxcdTdDNjRcXHU4QTc5XFx1OEFDMlxcdTU4MUVcXHU1OUJFXFx1NUUxNlxcdTYzNzdcXHU3MjUyXFx1NzU4QVxcdTc3NkJcXHU4QURDXFx1OENCQ1xcdThGMTJcXHU1RUYzXFx1NjY3NFxcdTZERjhcXHU4MDdEXFx1ODNDMVxcdThBQ0JcXHU5NzUxXFx1OUJENlxcdUZBMDBcXHU1MjQzXFx1NjZGRlxcdTZEOTVcXHU2RUVGXFx1N0RFMFxcdThBRTZcXHU5MDJFXFx1OTA1RVxcdTlBRDRcXHU1MjFEXFx1NTI3RlxcdTU0RThcXHU2MTk0XFx1NjI4NFxcdTYyREJcXHU2OEEyXCJdLFxuICAgICAgW1wiZjVhMVwiLCBcIlxcdTY5MTJcXHU2OTVBXFx1NkEzNVxcdTcwOTJcXHU3MTI2XFx1Nzg1RFxcdTc5MDFcXHU3OTBFXFx1NzlEMlxcdTdBMERcXHU4MDk2XFx1ODI3OFxcdTgyRDVcXHU4MzQ5XFx1ODU0OVxcdThDODJcXHU4RDg1XFx1OTE2MlxcdTkxOEJcXHU5MUFFXFx1NEZDM1xcdTU2RDFcXHU3MUVEXFx1NzdEN1xcdTg3MDBcXHU4OUY4XFx1NUJGOFxcdTVGRDZcXHU2NzUxXFx1OTBBOFxcdTUzRTJcXHU1ODVBXFx1NUJGNVxcdTYwQTRcXHU2MTgxXFx1NjQ2MFxcdTdFM0RcXHU4MDcwXFx1ODUyNVxcdTkyODNcXHU2NEFFXFx1NTBBQ1xcdTVEMTRcXHU2NzAwXFx1NTg5Q1xcdTYyQkRcXHU2M0E4XFx1NjkwRVxcdTY5NzhcXHU2QTFFXFx1NkU2QlxcdTc2QkFcXHU3OUNCXFx1ODJCQlxcdTg0MjlcXHU4QUNGXFx1OERBOFxcdThGRkRcXHU5MTEyXFx1OTE0QlxcdTkxOUNcXHU5MzEwXFx1OTMxOFxcdTkzOUFcXHU5NkRCXFx1OUEzNlxcdTlDMERcXHU0RTExXFx1NzU1Q1xcdTc5NURcXHU3QUZBXFx1N0I1MVxcdTdCQzlcXHU3RTJFXFx1ODRDNFxcdThFNTlcXHU4RTc0XFx1OEVGOFxcdTkwMTBcXHU2NjI1XFx1NjkzRlxcdTc0NDNcXHU1MUZBXFx1NjcyRVxcdTlFRENcXHU1MTQ1XFx1NUZFMFxcdTZDOTZcXHU4N0YyXFx1ODg1RFxcdTg4NzdcXHU2MEI0XFx1ODFCNVxcdTg0MDNcIl0sXG4gICAgICBbXCJmNmExXCIsIFwiXFx1OEQwNVxcdTUzRDZcXHU1NDM5XFx1NTYzNFxcdTVBMzZcXHU1QzMxXFx1NzA4QVxcdTdGRTBcXHU4MDVBXFx1ODEwNlxcdTgxRURcXHU4REEzXFx1OTE4OVxcdTlBNUZcXHU5REYyXFx1NTA3NFxcdTRFQzRcXHU1M0EwXFx1NjBGQlxcdTZFMkNcXHU1QzY0XFx1NEY4OFxcdTUwMjRcXHU1NUU0XFx1NUNEOVxcdTVFNUZcXHU2MDY1XFx1Njg5NFxcdTZDQkJcXHU2REM0XFx1NzFCRVxcdTc1RDRcXHU3NUY0XFx1NzY2MVxcdTdBMUFcXHU3QTQ5XFx1N0RDN1xcdTdERkJcXHU3RjZFXFx1ODFGNFxcdTg2QTlcXHU4RjFDXFx1OTZDOVxcdTk5QjNcXHU5RjUyXFx1NTI0N1xcdTUyQzVcXHU5OEVEXFx1ODlBQVxcdTRFMDNcXHU2N0QyXFx1NkYwNlxcdTRGQjVcXHU1QkUyXFx1Njc5NVxcdTZDODhcXHU2RDc4XFx1NzQxQlxcdTc4MjdcXHU5MUREXFx1OTM3Q1xcdTg3QzRcXHU3OUU0XFx1N0EzMVxcdTVGRUJcXHU0RUQ2XFx1NTRBNFxcdTU1M0VcXHU1OEFFXFx1NTlBNVxcdTYwRjBcXHU2MjUzXFx1NjJENlxcdTY3MzZcXHU2OTU1XFx1ODIzNVxcdTk2NDBcXHU5OUIxXFx1OTlERFxcdTUwMkNcXHU1MzUzXFx1NTU0NFxcdTU3N0NcXHVGQTAxXFx1NjI1OFxcdUZBMDJcXHU2NEUyXFx1NjY2QlxcdTY3RERcXHU2RkMxXFx1NkZFRlxcdTc0MjJcXHU3NDM4XFx1OEExN1wiXSxcbiAgICAgIFtcImY3YTFcIiwgXCJcXHU5NDM4XFx1NTQ1MVxcdTU2MDZcXHU1NzY2XFx1NUY0OFxcdTYxOUFcXHU2QjRFXFx1NzA1OFxcdTcwQURcXHU3REJCXFx1OEE5NVxcdTU5NkFcXHU4MTJCXFx1NjNBMlxcdTc3MDhcXHU4MDNEXFx1OENBQVxcdTU4NTRcXHU2NDJEXFx1NjlCQlxcdTVCOTVcXHU1RTExXFx1NkU2RlxcdUZBMDNcXHU4NTY5XFx1NTE0Q1xcdTUzRjBcXHU1OTJBXFx1NjAyMFxcdTYxNEJcXHU2Qjg2XFx1NkM3MFxcdTZDRjBcXHU3QjFFXFx1ODBDRVxcdTgyRDRcXHU4REM2XFx1OTBCMFxcdTk4QjFcXHVGQTA0XFx1NjRDN1xcdTZGQTRcXHU2NDkxXFx1NjUwNFxcdTUxNEVcXHU1NDEwXFx1NTcxRlxcdThBMEVcXHU2MTVGXFx1Njg3NlxcdUZBMDVcXHU3NURCXFx1N0I1MlxcdTdENzFcXHU5MDFBXFx1NTgwNlxcdTY5Q0NcXHU4MTdGXFx1ODkyQVxcdTkwMDBcXHU5ODM5XFx1NTA3OFxcdTU5NTdcXHU1OUFDXFx1NjI5NVxcdTkwMEZcXHU5QjJBXFx1NjE1RFxcdTcyNzlcXHU5NUQ2XFx1NTc2MVxcdTVBNDZcXHU1REY0XFx1NjI4QVxcdTY0QURcXHU2NEZBXFx1Njc3N1xcdTZDRTJcXHU2RDNFXFx1NzIyQ1xcdTc0MzZcXHU3ODM0XFx1N0Y3N1xcdTgyQURcXHU4RERCXFx1OTgxN1xcdTUyMjRcXHU1NzQyXFx1Njc3RlxcdTcyNDhcXHU3NEUzXFx1OENBOVxcdThGQTZcXHU5MjExXCJdLFxuICAgICAgW1wiZjhhMVwiLCBcIlxcdTk2MkFcXHU1MTZCXFx1NTNFRFxcdTYzNENcXHU0RjY5XFx1NTUwNFxcdTYwOTZcXHU2NTU3XFx1NkM5QlxcdTZEN0ZcXHU3MjRDXFx1NzJGRFxcdTdBMTdcXHU4OTg3XFx1OEM5RFxcdTVGNkRcXHU2RjhFXFx1NzBGOVxcdTgxQThcXHU2MTBFXFx1NEZCRlxcdTUwNEZcXHU2MjQxXFx1NzI0N1xcdTdCQzdcXHU3REU4XFx1N0ZFOVxcdTkwNERcXHU5N0FEXFx1OUExOVxcdThDQjZcXHU1NzZBXFx1NUU3M1xcdTY3QjBcXHU4NDBEXFx1OEE1NVxcdTU0MjBcXHU1QjE2XFx1NUU2M1xcdTVFRTJcXHU1RjBBXFx1NjU4M1xcdTgwQkFcXHU4NTNEXFx1OTU4OVxcdTk2NUJcXHU0RjQ4XFx1NTMwNVxcdTUzMERcXHU1MzBGXFx1NTQ4NlxcdTU0RkFcXHU1NzAzXFx1NUUwM1xcdTYwMTZcXHU2MjlCXFx1NjJCMVxcdTYzNTVcXHVGQTA2XFx1NkNFMVxcdTZENjZcXHU3NUIxXFx1NzgzMlxcdTgwREVcXHU4MTJGXFx1ODJERVxcdTg0NjFcXHU4NEIyXFx1ODg4RFxcdTg5MTJcXHU5MDBCXFx1OTJFQVxcdTk4RkRcXHU5QjkxXFx1NUU0NVxcdTY2QjRcXHU2NkREXFx1NzAxMVxcdTcyMDZcXHVGQTA3XFx1NEZGNVxcdTUyN0RcXHU1RjZBXFx1NjE1M1xcdTY3NTNcXHU2QTE5XFx1NkYwMlxcdTc0RTJcXHU3OTY4XFx1ODg2OFxcdThDNzlcXHU5OEM3XFx1OThDNFxcdTlBNDNcIl0sXG4gICAgICBbXCJmOWExXCIsIFwiXFx1NTRDMVxcdTdBMUZcXHU2OTUzXFx1OEFGN1xcdThDNEFcXHU5OEE4XFx1OTlBRVxcdTVGN0NcXHU2MkFCXFx1NzVCMlxcdTc2QUVcXHU4OEFCXFx1OTA3RlxcdTk2NDJcXHU1MzM5XFx1NUYzQ1xcdTVGQzVcXHU2Q0NDXFx1NzNDQ1xcdTc1NjJcXHU3NThCXFx1N0I0NlxcdTgyRkVcXHU5OTlEXFx1NEU0RlxcdTkwM0NcXHU0RTBCXFx1NEY1NVxcdTUzQTZcXHU1OTBGXFx1NUVDOFxcdTY2MzBcXHU2Q0IzXFx1NzQ1NVxcdTgzNzdcXHU4NzY2XFx1OENDMFxcdTkwNTBcXHU5NzFFXFx1OUMxNVxcdTU4RDFcXHU1Qjc4XFx1ODY1MFxcdThCMTRcXHU5REI0XFx1NUJEMlxcdTYwNjhcXHU2MDhEXFx1NjVGMVxcdTZDNTdcXHU2RjIyXFx1NkZBM1xcdTcwMUFcXHU3RjU1XFx1N0ZGMFxcdTk1OTFcXHU5NTkyXFx1OTY1MFxcdTk3RDNcXHU1MjcyXFx1OEY0NFxcdTUxRkRcXHU1NDJCXFx1NTRCOFxcdTU1NjNcXHU1NThBXFx1NkFCQlxcdTZEQjVcXHU3REQ4XFx1ODI2NlxcdTkyOUNcXHU5Njc3XFx1OUU3OVxcdTU0MDhcXHU1NEM4XFx1NzZEMlxcdTg2RTRcXHU5NUE0XFx1OTVENFxcdTk2NUNcXHU0RUEyXFx1NEYwOVxcdTU5RUVcXHU1QUU2XFx1NURGN1xcdTYwNTJcXHU2Mjk3XFx1Njc2RFxcdTY4NDFcXHU2Qzg2XFx1NkUyRlxcdTdGMzhcXHU4MDlCXFx1ODIyQVwiXSxcbiAgICAgIFtcImZhYTFcIiwgXCJcXHVGQTA4XFx1RkEwOVxcdTk4MDVcXHU0RUE1XFx1NTA1NVxcdTU0QjNcXHU1NzkzXFx1NTk1QVxcdTVCNjlcXHU1QkIzXFx1NjFDOFxcdTY5NzdcXHU2RDc3XFx1NzAyM1xcdTg3RjlcXHU4OUUzXFx1OEE3MlxcdThBRTdcXHU5MDgyXFx1OTlFRFxcdTlBQjhcXHU1MkJFXFx1NjgzOFxcdTUwMTZcXHU1RTc4XFx1Njc0RlxcdTgzNDdcXHU4ODRDXFx1NEVBQlxcdTU0MTFcXHU1NkFFXFx1NzNFNlxcdTkxMTVcXHU5N0ZGXFx1OTkwOVxcdTk5NTdcXHU5OTk5XFx1NTY1M1xcdTU4OUZcXHU4NjVCXFx1OEEzMVxcdTYxQjJcXHU2QUY2XFx1NzM3QlxcdThFRDJcXHU2QjQ3XFx1OTZBQVxcdTlBNTdcXHU1OTU1XFx1NzIwMFxcdThENkJcXHU5NzY5XFx1NEZENFxcdTVDRjRcXHU1RjI2XFx1NjFGOFxcdTY2NUJcXHU2Q0VCXFx1NzBBQlxcdTczODRcXHU3M0I5XFx1NzNGRVxcdTc3MjlcXHU3NzREXFx1N0Q0M1xcdTdENjJcXHU3RTIzXFx1ODIzN1xcdTg4NTJcXHVGQTBBXFx1OENFMlxcdTkyNDlcXHU5ODZGXFx1NUI1MVxcdTdBNzRcXHU4ODQwXFx1OTgwMVxcdTVBQ0NcXHU0RkUwXFx1NTM1NFxcdTU5M0VcXHU1Q0ZEXFx1NjMzRVxcdTZENzlcXHU3MkY5XFx1ODEwNVxcdTgxMDdcXHU4M0EyXFx1OTJDRlxcdTk4MzBcXHU0RUE4XFx1NTE0NFxcdTUyMTFcXHU1NzhCXCJdLFxuICAgICAgW1wiZmJhMVwiLCBcIlxcdTVGNjJcXHU2Q0MyXFx1NkVDRVxcdTcwMDVcXHU3MDUwXFx1NzBBRlxcdTcxOTJcXHU3M0U5XFx1NzQ2OVxcdTgzNEFcXHU4N0EyXFx1ODg2MVxcdTkwMDhcXHU5MEEyXFx1OTNBM1xcdTk5QThcXHU1MTZFXFx1NUY1N1xcdTYwRTBcXHU2MTY3XFx1NjZCM1xcdTg1NTlcXHU4RTRBXFx1OTFBRlxcdTk3OEJcXHU0RTRFXFx1NEU5MlxcdTU0N0NcXHU1OEQ1XFx1NThGQVxcdTU5N0RcXHU1Q0I1XFx1NUYyN1xcdTYyMzZcXHU2MjQ4XFx1NjYwQVxcdTY2NjdcXHU2QkVCXFx1NkQ2OVxcdTZEQ0ZcXHU2RTU2XFx1NkVGOFxcdTZGOTRcXHU2RkUwXFx1NkZFOVxcdTcwNURcXHU3MkQwXFx1NzQyNVxcdTc0NUFcXHU3NEUwXFx1NzY5M1xcdTc5NUNcXHU3Q0NBXFx1N0UxRVxcdTgwRTFcXHU4MkE2XFx1ODQ2QlxcdTg0QkZcXHU4NjRFXFx1ODY1RlxcdTg3NzRcXHU4Qjc3XFx1OEM2QVxcdTkzQUNcXHU5ODAwXFx1OTg2NVxcdTYwRDFcXHU2MjE2XFx1OTE3N1xcdTVBNUFcXHU2NjBGXFx1NkRGN1xcdTZFM0VcXHU3NDNGXFx1OUI0MlxcdTVGRkRcXHU2MERBXFx1N0IwRlxcdTU0QzRcXHU1RjE4XFx1NkM1RVxcdTZDRDNcXHU2RDJBXFx1NzBEOFxcdTdEMDVcXHU4Njc5XFx1OEEwQ1xcdTlEM0JcXHU1MzE2XFx1NTQ4Q1xcdTVCMDVcXHU2QTNBXFx1NzA2QlxcdTc1NzVcIl0sXG4gICAgICBbXCJmY2ExXCIsIFwiXFx1Nzk4RFxcdTc5QkVcXHU4MkIxXFx1ODNFRlxcdThBNzFcXHU4QjQxXFx1OENBOFxcdTk3NzRcXHVGQTBCXFx1NjRGNFxcdTY1MkJcXHU3OEJBXFx1NzhCQlxcdTdBNkJcXHU0RTM4XFx1NTU5QVxcdTU5NTBcXHU1QkE2XFx1NUU3QlxcdTYwQTNcXHU2M0RCXFx1NkI2MVxcdTY2NjVcXHU2ODUzXFx1NkUxOVxcdTcxNjVcXHU3NEIwXFx1N0QwOFxcdTkwODRcXHU5QTY5XFx1OUMyNVxcdTZEM0JcXHU2RUQxXFx1NzMzRVxcdThDNDFcXHU5NUNBXFx1NTFGMFxcdTVFNENcXHU1RkE4XFx1NjA0RFxcdTYwRjZcXHU2MTMwXFx1NjE0Q1xcdTY2NDNcXHU2NjQ0XFx1NjlBNVxcdTZDQzFcXHU2RTVGXFx1NkVDOVxcdTZGNjJcXHU3MTRDXFx1NzQ5Q1xcdTc2ODdcXHU3QkMxXFx1N0MyN1xcdTgzNTJcXHU4NzU3XFx1OTA1MVxcdTk2OERcXHU5RUMzXFx1NTMyRlxcdTU2REVcXHU1RUZCXFx1NUY4QVxcdTYwNjJcXHU2MDk0XFx1NjFGN1xcdTY2NjZcXHU2NzAzXFx1NkE5Q1xcdTZERUVcXHU2RkFFXFx1NzA3MFxcdTczNkFcXHU3RTZBXFx1ODFCRVxcdTgzMzRcXHU4NkQ0XFx1OEFBOFxcdThDQzRcXHU1MjgzXFx1NzM3MlxcdTVCOTZcXHU2QTZCXFx1OTQwNFxcdTU0RUVcXHU1Njg2XFx1NUI1RFxcdTY1NDhcXHU2NTg1XFx1NjZDOVxcdTY4OUZcXHU2RDhEXFx1NkRDNlwiXSxcbiAgICAgIFtcImZkYTFcIiwgXCJcXHU3MjNCXFx1ODBCNFxcdTkxNzVcXHU5QTREXFx1NEZBRlxcdTUwMTlcXHU1MzlBXFx1NTQwRVxcdTU0M0NcXHU1NTg5XFx1NTVDNVxcdTVFM0ZcXHU1RjhDXFx1NjczRFxcdTcxNjZcXHU3M0REXFx1OTAwNVxcdTUyREJcXHU1MkYzXFx1NTg2NFxcdTU4Q0VcXHU3MTA0XFx1NzE4RlxcdTcxRkJcXHU4NUIwXFx1OEExM1xcdTY2ODhcXHU4NUE4XFx1NTVBN1xcdTY2ODRcXHU3MTRBXFx1ODQzMVxcdTUzNDlcXHU1NTk5XFx1NkJDMVxcdTVGNTlcXHU1RkJEXFx1NjNFRVxcdTY2ODlcXHU3MTQ3XFx1OEFGMVxcdThGMURcXHU5RUJFXFx1NEYxMVxcdTY0M0FcXHU3MENCXFx1NzU2NlxcdTg2NjdcXHU2MDY0XFx1OEI0RVxcdTlERjhcXHU1MTQ3XFx1NTFGNlxcdTUzMDhcXHU2RDM2XFx1ODBGOFxcdTlFRDFcXHU2NjE1XFx1NkIyM1xcdTcwOThcXHU3NUQ1XFx1NTQwM1xcdTVDNzlcXHU3RDA3XFx1OEExNlxcdTZCMjBcXHU2QjNEXFx1NkI0NlxcdTU0MzhcXHU2MDcwXFx1NkQzRFxcdTdGRDVcXHU4MjA4XFx1NTBENlxcdTUxREVcXHU1NTlDXFx1NTY2QlxcdTU2Q0RcXHU1OUVDXFx1NUIwOVxcdTVFMENcXHU2MTk5XFx1NjE5OFxcdTYyMzFcXHU2NjVFXFx1NjZFNlxcdTcxOTlcXHU3MUI5XFx1NzFCQVxcdTcyQTdcXHU3OUE3XFx1N0EwMFxcdTdGQjJcXHU4QTcwXCJdXG4gICAgXTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2NwOTUwLmpzb25cbnZhciByZXF1aXJlX2NwOTUwMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2NwOTUwLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFtcbiAgICAgIFtcIjBcIiwgXCJcXDBcIiwgMTI3XSxcbiAgICAgIFtcImExNDBcIiwgXCJcXHUzMDAwXFx1RkYwQ1xcdTMwMDFcXHUzMDAyXFx1RkYwRVxcdTIwMjdcXHVGRjFCXFx1RkYxQVxcdUZGMUZcXHVGRjAxXFx1RkUzMFxcdTIwMjZcXHUyMDI1XFx1RkU1MFxcdUZFNTFcXHVGRTUyXFx4QjdcXHVGRTU0XFx1RkU1NVxcdUZFNTZcXHVGRTU3XFx1RkY1Q1xcdTIwMTNcXHVGRTMxXFx1MjAxNFxcdUZFMzNcXHUyNTc0XFx1RkUzNFxcdUZFNEZcXHVGRjA4XFx1RkYwOVxcdUZFMzVcXHVGRTM2XFx1RkY1QlxcdUZGNURcXHVGRTM3XFx1RkUzOFxcdTMwMTRcXHUzMDE1XFx1RkUzOVxcdUZFM0FcXHUzMDEwXFx1MzAxMVxcdUZFM0JcXHVGRTNDXFx1MzAwQVxcdTMwMEJcXHVGRTNEXFx1RkUzRVxcdTMwMDhcXHUzMDA5XFx1RkUzRlxcdUZFNDBcXHUzMDBDXFx1MzAwRFxcdUZFNDFcXHVGRTQyXFx1MzAwRVxcdTMwMEZcXHVGRTQzXFx1RkU0NFxcdUZFNTlcXHVGRTVBXCJdLFxuICAgICAgW1wiYTFhMVwiLCBcIlxcdUZFNUJcXHVGRTVDXFx1RkU1RFxcdUZFNUVcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MzAxRFxcdTMwMUVcXHUyMDM1XFx1MjAzMlxcdUZGMDNcXHVGRjA2XFx1RkYwQVxcdTIwM0JcXHhBN1xcdTMwMDNcXHUyNUNCXFx1MjVDRlxcdTI1QjNcXHUyNUIyXFx1MjVDRVxcdTI2MDZcXHUyNjA1XFx1MjVDN1xcdTI1QzZcXHUyNUExXFx1MjVBMFxcdTI1QkRcXHUyNUJDXFx1MzJBM1xcdTIxMDVcXHhBRlxcdUZGRTNcXHVGRjNGXFx1MDJDRFxcdUZFNDlcXHVGRTRBXFx1RkU0RFxcdUZFNEVcXHVGRTRCXFx1RkU0Q1xcdUZFNUZcXHVGRTYwXFx1RkU2MVxcdUZGMEJcXHVGRjBEXFx4RDdcXHhGN1xceEIxXFx1MjIxQVxcdUZGMUNcXHVGRjFFXFx1RkYxRFxcdTIyNjZcXHUyMjY3XFx1MjI2MFxcdTIyMUVcXHUyMjUyXFx1MjI2MVxcdUZFNjJcIiwgNCwgXCJcXHVGRjVFXFx1MjIyOVxcdTIyMkFcXHUyMkE1XFx1MjIyMFxcdTIyMUZcXHUyMkJGXFx1MzNEMlxcdTMzRDFcXHUyMjJCXFx1MjIyRVxcdTIyMzVcXHUyMjM0XFx1MjY0MFxcdTI2NDJcXHUyMjk1XFx1MjI5OVxcdTIxOTFcXHUyMTkzXFx1MjE5MFxcdTIxOTJcXHUyMTk2XFx1MjE5N1xcdTIxOTlcXHUyMTk4XFx1MjIyNVxcdTIyMjNcXHVGRjBGXCJdLFxuICAgICAgW1wiYTI0MFwiLCBcIlxcdUZGM0NcXHUyMjE1XFx1RkU2OFxcdUZGMDRcXHVGRkU1XFx1MzAxMlxcdUZGRTBcXHVGRkUxXFx1RkYwNVxcdUZGMjBcXHUyMTAzXFx1MjEwOVxcdUZFNjlcXHVGRTZBXFx1RkU2QlxcdTMzRDVcXHUzMzlDXFx1MzM5RFxcdTMzOUVcXHUzM0NFXFx1MzNBMVxcdTMzOEVcXHUzMzhGXFx1MzNDNFxceEIwXFx1NTE1OVxcdTUxNUJcXHU1MTVFXFx1NTE1RFxcdTUxNjFcXHU1MTYzXFx1NTVFN1xcdTc0RTlcXHU3Q0NFXFx1MjU4MVwiLCA3LCBcIlxcdTI1OEZcXHUyNThFXFx1MjU4RFxcdTI1OENcXHUyNThCXFx1MjU4QVxcdTI1ODlcXHUyNTNDXFx1MjUzNFxcdTI1MkNcXHUyNTI0XFx1MjUxQ1xcdTI1OTRcXHUyNTAwXFx1MjUwMlxcdTI1OTVcXHUyNTBDXFx1MjUxMFxcdTI1MTRcXHUyNTE4XFx1MjU2RFwiXSxcbiAgICAgIFtcImEyYTFcIiwgXCJcXHUyNTZFXFx1MjU3MFxcdTI1NkZcXHUyNTUwXFx1MjU1RVxcdTI1NkFcXHUyNTYxXFx1MjVFMlxcdTI1RTNcXHUyNUU1XFx1MjVFNFxcdTI1NzFcXHUyNTcyXFx1MjU3M1xcdUZGMTBcIiwgOSwgXCJcXHUyMTYwXCIsIDksIFwiXFx1MzAyMVwiLCA4LCBcIlxcdTUzNDFcXHU1MzQ0XFx1NTM0NVxcdUZGMjFcIiwgMjUsIFwiXFx1RkY0MVwiLCAyMV0sXG4gICAgICBbXCJhMzQwXCIsIFwiXFx1RkY1N1xcdUZGNThcXHVGRjU5XFx1RkY1QVxcdTAzOTFcIiwgMTYsIFwiXFx1MDNBM1wiLCA2LCBcIlxcdTAzQjFcIiwgMTYsIFwiXFx1MDNDM1wiLCA2LCBcIlxcdTMxMDVcIiwgMTBdLFxuICAgICAgW1wiYTNhMVwiLCBcIlxcdTMxMTBcIiwgMjUsIFwiXFx1MDJEOVxcdTAyQzlcXHUwMkNBXFx1MDJDN1xcdTAyQ0JcIl0sXG4gICAgICBbXCJhM2UxXCIsIFwiXFx1MjBBQ1wiXSxcbiAgICAgIFtcImE0NDBcIiwgXCJcXHU0RTAwXFx1NEU1OVxcdTRFMDFcXHU0RTAzXFx1NEU0M1xcdTRFNURcXHU0RTg2XFx1NEU4Q1xcdTRFQkFcXHU1MTNGXFx1NTE2NVxcdTUxNkJcXHU1MUUwXFx1NTIwMFxcdTUyMDFcXHU1MjlCXFx1NTMxNVxcdTUzNDFcXHU1MzVDXFx1NTNDOFxcdTRFMDlcXHU0RTBCXFx1NEUwOFxcdTRFMEFcXHU0RTJCXFx1NEUzOFxcdTUxRTFcXHU0RTQ1XFx1NEU0OFxcdTRFNUZcXHU0RTVFXFx1NEU4RVxcdTRFQTFcXHU1MTQwXFx1NTIwM1xcdTUyRkFcXHU1MzQzXFx1NTNDOVxcdTUzRTNcXHU1NzFGXFx1NThFQlxcdTU5MTVcXHU1OTI3XFx1NTk3M1xcdTVCNTBcXHU1QjUxXFx1NUI1M1xcdTVCRjhcXHU1QzBGXFx1NUMyMlxcdTVDMzhcXHU1QzcxXFx1NURERFxcdTVERTVcXHU1REYxXFx1NURGMlxcdTVERjNcXHU1REZFXFx1NUU3MlxcdTVFRkVcXHU1RjBCXFx1NUYxM1xcdTYyNERcIl0sXG4gICAgICBbXCJhNGExXCIsIFwiXFx1NEUxMVxcdTRFMTBcXHU0RTBEXFx1NEUyRFxcdTRFMzBcXHU0RTM5XFx1NEU0QlxcdTVDMzlcXHU0RTg4XFx1NEU5MVxcdTRFOTVcXHU0RTkyXFx1NEU5NFxcdTRFQTJcXHU0RUMxXFx1NEVDMFxcdTRFQzNcXHU0RUM2XFx1NEVDN1xcdTRFQ0RcXHU0RUNBXFx1NEVDQlxcdTRFQzRcXHU1MTQzXFx1NTE0MVxcdTUxNjdcXHU1MTZEXFx1NTE2RVxcdTUxNkNcXHU1MTk3XFx1NTFGNlxcdTUyMDZcXHU1MjA3XFx1NTIwOFxcdTUyRkJcXHU1MkZFXFx1NTJGRlxcdTUzMTZcXHU1MzM5XFx1NTM0OFxcdTUzNDdcXHU1MzQ1XFx1NTM1RVxcdTUzODRcXHU1M0NCXFx1NTNDQVxcdTUzQ0RcXHU1OEVDXFx1NTkyOVxcdTU5MkJcXHU1OTJBXFx1NTkyRFxcdTVCNTRcXHU1QzExXFx1NUMyNFxcdTVDM0FcXHU1QzZGXFx1NURGNFxcdTVFN0JcXHU1RUZGXFx1NUYxNFxcdTVGMTVcXHU1RkMzXFx1NjIwOFxcdTYyMzZcXHU2MjRCXFx1NjI0RVxcdTY1MkZcXHU2NTg3XFx1NjU5N1xcdTY1QTRcXHU2NUI5XFx1NjVFNVxcdTY2RjBcXHU2NzA4XFx1NjcyOFxcdTZCMjBcXHU2QjYyXFx1NkI3OVxcdTZCQ0JcXHU2QkQ0XFx1NkJEQlxcdTZDMEZcXHU2QzM0XFx1NzA2QlxcdTcyMkFcXHU3MjM2XFx1NzIzQlxcdTcyNDdcXHU3MjU5XFx1NzI1QlxcdTcyQUNcXHU3MzhCXFx1NEUxOVwiXSxcbiAgICAgIFtcImE1NDBcIiwgXCJcXHU0RTE2XFx1NEUxNVxcdTRFMTRcXHU0RTE4XFx1NEUzQlxcdTRFNERcXHU0RTRGXFx1NEU0RVxcdTRFRTVcXHU0RUQ4XFx1NEVENFxcdTRFRDVcXHU0RUQ2XFx1NEVEN1xcdTRFRTNcXHU0RUU0XFx1NEVEOVxcdTRFREVcXHU1MTQ1XFx1NTE0NFxcdTUxODlcXHU1MThBXFx1NTFBQ1xcdTUxRjlcXHU1MUZBXFx1NTFGOFxcdTUyMEFcXHU1MkEwXFx1NTI5RlxcdTUzMDVcXHU1MzA2XFx1NTMxN1xcdTUzMURcXHU0RURGXFx1NTM0QVxcdTUzNDlcXHU1MzYxXFx1NTM2MFxcdTUzNkZcXHU1MzZFXFx1NTNCQlxcdTUzRUZcXHU1M0U0XFx1NTNGM1xcdTUzRUNcXHU1M0VFXFx1NTNFOVxcdTUzRThcXHU1M0ZDXFx1NTNGOFxcdTUzRjVcXHU1M0VCXFx1NTNFNlxcdTUzRUFcXHU1M0YyXFx1NTNGMVxcdTUzRjBcXHU1M0U1XFx1NTNFRFxcdTUzRkJcXHU1NkRCXFx1NTZEQVxcdTU5MTZcIl0sXG4gICAgICBbXCJhNWExXCIsIFwiXFx1NTkyRVxcdTU5MzFcXHU1OTc0XFx1NTk3NlxcdTVCNTVcXHU1QjgzXFx1NUMzQ1xcdTVERThcXHU1REU3XFx1NURFNlxcdTVFMDJcXHU1RTAzXFx1NUU3M1xcdTVFN0NcXHU1RjAxXFx1NUYxOFxcdTVGMTdcXHU1RkM1XFx1NjIwQVxcdTYyNTNcXHU2MjU0XFx1NjI1MlxcdTYyNTFcXHU2NUE1XFx1NjVFNlxcdTY3MkVcXHU2NzJDXFx1NjcyQVxcdTY3MkJcXHU2NzJEXFx1NkI2M1xcdTZCQ0RcXHU2QzExXFx1NkMxMFxcdTZDMzhcXHU2QzQxXFx1NkM0MFxcdTZDM0VcXHU3MkFGXFx1NzM4NFxcdTczODlcXHU3NERDXFx1NzRFNlxcdTc1MThcXHU3NTFGXFx1NzUyOFxcdTc1MjlcXHU3NTMwXFx1NzUzMVxcdTc1MzJcXHU3NTMzXFx1NzU4QlxcdTc2N0RcXHU3NkFFXFx1NzZCRlxcdTc2RUVcXHU3N0RCXFx1NzdFMlxcdTc3RjNcXHU3OTNBXFx1NzlCRVxcdTdBNzRcXHU3QUNCXFx1NEUxRVxcdTRFMUZcXHU0RTUyXFx1NEU1M1xcdTRFNjlcXHU0RTk5XFx1NEVBNFxcdTRFQTZcXHU0RUE1XFx1NEVGRlxcdTRGMDlcXHU0RjE5XFx1NEYwQVxcdTRGMTVcXHU0RjBEXFx1NEYxMFxcdTRGMTFcXHU0RjBGXFx1NEVGMlxcdTRFRjZcXHU0RUZCXFx1NEVGMFxcdTRFRjNcXHU0RUZEXFx1NEYwMVxcdTRGMEJcXHU1MTQ5XFx1NTE0N1xcdTUxNDZcXHU1MTQ4XFx1NTE2OFwiXSxcbiAgICAgIFtcImE2NDBcIiwgXCJcXHU1MTcxXFx1NTE4RFxcdTUxQjBcXHU1MjE3XFx1NTIxMVxcdTUyMTJcXHU1MjBFXFx1NTIxNlxcdTUyQTNcXHU1MzA4XFx1NTMyMVxcdTUzMjBcXHU1MzcwXFx1NTM3MVxcdTU0MDlcXHU1NDBGXFx1NTQwQ1xcdTU0MEFcXHU1NDEwXFx1NTQwMVxcdTU0MEJcXHU1NDA0XFx1NTQxMVxcdTU0MERcXHU1NDA4XFx1NTQwM1xcdTU0MEVcXHU1NDA2XFx1NTQxMlxcdTU2RTBcXHU1NkRFXFx1NTZERFxcdTU3MzNcXHU1NzMwXFx1NTcyOFxcdTU3MkRcXHU1NzJDXFx1NTcyRlxcdTU3MjlcXHU1OTE5XFx1NTkxQVxcdTU5MzdcXHU1OTM4XFx1NTk4NFxcdTU5NzhcXHU1OTgzXFx1NTk3RFxcdTU5NzlcXHU1OTgyXFx1NTk4MVxcdTVCNTdcXHU1QjU4XFx1NUI4N1xcdTVCODhcXHU1Qjg1XFx1NUI4OVxcdTVCRkFcXHU1QzE2XFx1NUM3OVxcdTVEREVcXHU1RTA2XFx1NUU3NlxcdTVFNzRcIl0sXG4gICAgICBbXCJhNmExXCIsIFwiXFx1NUYwRlxcdTVGMUJcXHU1RkQ5XFx1NUZENlxcdTYyMEVcXHU2MjBDXFx1NjIwRFxcdTYyMTBcXHU2MjYzXFx1NjI1QlxcdTYyNThcXHU2NTM2XFx1NjVFOVxcdTY1RThcXHU2NUVDXFx1NjVFRFxcdTY2RjJcXHU2NkYzXFx1NjcwOVxcdTY3M0RcXHU2NzM0XFx1NjczMVxcdTY3MzVcXHU2QjIxXFx1NkI2NFxcdTZCN0JcXHU2QzE2XFx1NkM1RFxcdTZDNTdcXHU2QzU5XFx1NkM1RlxcdTZDNjBcXHU2QzUwXFx1NkM1NVxcdTZDNjFcXHU2QzVCXFx1NkM0RFxcdTZDNEVcXHU3MDcwXFx1NzI1RlxcdTcyNURcXHU3NjdFXFx1N0FGOVxcdTdDNzNcXHU3Q0Y4XFx1N0YzNlxcdTdGOEFcXHU3RkJEXFx1ODAwMVxcdTgwMDNcXHU4MDBDXFx1ODAxMlxcdTgwMzNcXHU4MDdGXFx1ODA4OVxcdTgwOEJcXHU4MDhDXFx1ODFFM1xcdTgxRUFcXHU4MUYzXFx1ODFGQ1xcdTgyMENcXHU4MjFCXFx1ODIxRlxcdTgyNkVcXHU4MjcyXFx1ODI3RVxcdTg2NkJcXHU4ODQwXFx1ODg0Q1xcdTg4NjNcXHU4OTdGXFx1OTYyMVxcdTRFMzJcXHU0RUE4XFx1NEY0RFxcdTRGNEZcXHU0RjQ3XFx1NEY1N1xcdTRGNUVcXHU0RjM0XFx1NEY1QlxcdTRGNTVcXHU0RjMwXFx1NEY1MFxcdTRGNTFcXHU0RjNEXFx1NEYzQVxcdTRGMzhcXHU0RjQzXFx1NEY1NFxcdTRGM0NcXHU0RjQ2XFx1NEY2M1wiXSxcbiAgICAgIFtcImE3NDBcIiwgXCJcXHU0RjVDXFx1NEY2MFxcdTRGMkZcXHU0RjRFXFx1NEYzNlxcdTRGNTlcXHU0RjVEXFx1NEY0OFxcdTRGNUFcXHU1MTRDXFx1NTE0QlxcdTUxNERcXHU1MTc1XFx1NTFCNlxcdTUxQjdcXHU1MjI1XFx1NTIyNFxcdTUyMjlcXHU1MjJBXFx1NTIyOFxcdTUyQUJcXHU1MkE5XFx1NTJBQVxcdTUyQUNcXHU1MzIzXFx1NTM3M1xcdTUzNzVcXHU1NDFEXFx1NTQyRFxcdTU0MUVcXHU1NDNFXFx1NTQyNlxcdTU0NEVcXHU1NDI3XFx1NTQ0NlxcdTU0NDNcXHU1NDMzXFx1NTQ0OFxcdTU0NDJcXHU1NDFCXFx1NTQyOVxcdTU0NEFcXHU1NDM5XFx1NTQzQlxcdTU0MzhcXHU1NDJFXFx1NTQzNVxcdTU0MzZcXHU1NDIwXFx1NTQzQ1xcdTU0NDBcXHU1NDMxXFx1NTQyQlxcdTU0MUZcXHU1NDJDXFx1NTZFQVxcdTU2RjBcXHU1NkU0XFx1NTZFQlxcdTU3NEFcXHU1NzUxXFx1NTc0MFxcdTU3NERcIl0sXG4gICAgICBbXCJhN2ExXCIsIFwiXFx1NTc0N1xcdTU3NEVcXHU1NzNFXFx1NTc1MFxcdTU3NEZcXHU1NzNCXFx1NThFRlxcdTU5M0VcXHU1OTlEXFx1NTk5MlxcdTU5QThcXHU1OTlFXFx1NTlBM1xcdTU5OTlcXHU1OTk2XFx1NTk4RFxcdTU5QTRcXHU1OTkzXFx1NTk4QVxcdTU5QTVcXHU1QjVEXFx1NUI1Q1xcdTVCNUFcXHU1QjVCXFx1NUI4Q1xcdTVCOEJcXHU1QjhGXFx1NUMyQ1xcdTVDNDBcXHU1QzQxXFx1NUMzRlxcdTVDM0VcXHU1QzkwXFx1NUM5MVxcdTVDOTRcXHU1QzhDXFx1NURFQlxcdTVFMENcXHU1RThGXFx1NUU4N1xcdTVFOEFcXHU1RUY3XFx1NUYwNFxcdTVGMUZcXHU1RjY0XFx1NUY2MlxcdTVGNzdcXHU1Rjc5XFx1NUZEOFxcdTVGQ0NcXHU1RkQ3XFx1NUZDRFxcdTVGRjFcXHU1RkVCXFx1NUZGOFxcdTVGRUFcXHU2MjEyXFx1NjIxMVxcdTYyODRcXHU2Mjk3XFx1NjI5NlxcdTYyODBcXHU2Mjc2XFx1NjI4OVxcdTYyNkRcXHU2MjhBXFx1NjI3Q1xcdTYyN0VcXHU2Mjc5XFx1NjI3M1xcdTYyOTJcXHU2MjZGXFx1NjI5OFxcdTYyNkVcXHU2Mjk1XFx1NjI5M1xcdTYyOTFcXHU2Mjg2XFx1NjUzOVxcdTY1M0JcXHU2NTM4XFx1NjVGMVxcdTY2RjRcXHU2NzVGXFx1Njc0RVxcdTY3NEZcXHU2NzUwXFx1Njc1MVxcdTY3NUNcXHU2NzU2XFx1Njc1RVxcdTY3NDlcXHU2NzQ2XFx1Njc2MFwiXSxcbiAgICAgIFtcImE4NDBcIiwgXCJcXHU2NzUzXFx1Njc1N1xcdTZCNjVcXHU2QkNGXFx1NkM0MlxcdTZDNUVcXHU2Qzk5XFx1NkM4MVxcdTZDODhcXHU2Qzg5XFx1NkM4NVxcdTZDOUJcXHU2QzZBXFx1NkM3QVxcdTZDOTBcXHU2QzcwXFx1NkM4Q1xcdTZDNjhcXHU2Qzk2XFx1NkM5MlxcdTZDN0RcXHU2QzgzXFx1NkM3MlxcdTZDN0VcXHU2Qzc0XFx1NkM4NlxcdTZDNzZcXHU2QzhEXFx1NkM5NFxcdTZDOThcXHU2QzgyXFx1NzA3NlxcdTcwN0NcXHU3MDdEXFx1NzA3OFxcdTcyNjJcXHU3MjYxXFx1NzI2MFxcdTcyQzRcXHU3MkMyXFx1NzM5NlxcdTc1MkNcXHU3NTJCXFx1NzUzN1xcdTc1MzhcXHU3NjgyXFx1NzZFRlxcdTc3RTNcXHU3OUMxXFx1NzlDMFxcdTc5QkZcXHU3QTc2XFx1N0NGQlxcdTdGNTVcXHU4MDk2XFx1ODA5M1xcdTgwOURcXHU4MDk4XFx1ODA5QlxcdTgwOUFcXHU4MEIyXFx1ODI2RlxcdTgyOTJcIl0sXG4gICAgICBbXCJhOGExXCIsIFwiXFx1ODI4QlxcdTgyOERcXHU4OThCXFx1ODlEMlxcdThBMDBcXHU4QzM3XFx1OEM0NlxcdThDNTVcXHU4QzlEXFx1OEQ2NFxcdThENzBcXHU4REIzXFx1OEVBQlxcdThFQ0FcXHU4RjlCXFx1OEZCMFxcdThGQzJcXHU4RkM2XFx1OEZDNVxcdThGQzRcXHU1REUxXFx1OTA5MVxcdTkwQTJcXHU5MEFBXFx1OTBBNlxcdTkwQTNcXHU5MTQ5XFx1OTFDNlxcdTkxQ0NcXHU5NjMyXFx1OTYyRVxcdTk2MzFcXHU5NjJBXFx1OTYyQ1xcdTRFMjZcXHU0RTU2XFx1NEU3M1xcdTRFOEJcXHU0RTlCXFx1NEU5RVxcdTRFQUJcXHU0RUFDXFx1NEY2RlxcdTRGOURcXHU0RjhEXFx1NEY3M1xcdTRGN0ZcXHU0RjZDXFx1NEY5QlxcdTRGOEJcXHU0Rjg2XFx1NEY4M1xcdTRGNzBcXHU0Rjc1XFx1NEY4OFxcdTRGNjlcXHU0RjdCXFx1NEY5NlxcdTRGN0VcXHU0RjhGXFx1NEY5MVxcdTRGN0FcXHU1MTU0XFx1NTE1MlxcdTUxNTVcXHU1MTY5XFx1NTE3N1xcdTUxNzZcXHU1MTc4XFx1NTFCRFxcdTUxRkRcXHU1MjNCXFx1NTIzOFxcdTUyMzdcXHU1MjNBXFx1NTIzMFxcdTUyMkVcXHU1MjM2XFx1NTI0MVxcdTUyQkVcXHU1MkJCXFx1NTM1MlxcdTUzNTRcXHU1MzUzXFx1NTM1MVxcdTUzNjZcXHU1Mzc3XFx1NTM3OFxcdTUzNzlcXHU1M0Q2XFx1NTNENFxcdTUzRDdcXHU1NDczXFx1NTQ3NVwiXSxcbiAgICAgIFtcImE5NDBcIiwgXCJcXHU1NDk2XFx1NTQ3OFxcdTU0OTVcXHU1NDgwXFx1NTQ3QlxcdTU0NzdcXHU1NDg0XFx1NTQ5MlxcdTU0ODZcXHU1NDdDXFx1NTQ5MFxcdTU0NzFcXHU1NDc2XFx1NTQ4Q1xcdTU0OUFcXHU1NDYyXFx1NTQ2OFxcdTU0OEJcXHU1NDdEXFx1NTQ4RVxcdTU2RkFcXHU1NzgzXFx1NTc3N1xcdTU3NkFcXHU1NzY5XFx1NTc2MVxcdTU3NjZcXHU1NzY0XFx1NTc3Q1xcdTU5MUNcXHU1OTQ5XFx1NTk0N1xcdTU5NDhcXHU1OTQ0XFx1NTk1NFxcdTU5QkVcXHU1OUJCXFx1NTlENFxcdTU5QjlcXHU1OUFFXFx1NTlEMVxcdTU5QzZcXHU1OUQwXFx1NTlDRFxcdTU5Q0JcXHU1OUQzXFx1NTlDQVxcdTU5QUZcXHU1OUIzXFx1NTlEMlxcdTU5QzVcXHU1QjVGXFx1NUI2NFxcdTVCNjNcXHU1Qjk3XFx1NUI5QVxcdTVCOThcXHU1QjlDXFx1NUI5OVxcdTVCOUJcXHU1QzFBXFx1NUM0OFxcdTVDNDVcIl0sXG4gICAgICBbXCJhOWExXCIsIFwiXFx1NUM0NlxcdTVDQjdcXHU1Q0ExXFx1NUNCOFxcdTVDQTlcXHU1Q0FCXFx1NUNCMVxcdTVDQjNcXHU1RTE4XFx1NUUxQVxcdTVFMTZcXHU1RTE1XFx1NUUxQlxcdTVFMTFcXHU1RTc4XFx1NUU5QVxcdTVFOTdcXHU1RTlDXFx1NUU5NVxcdTVFOTZcXHU1RUY2XFx1NUYyNlxcdTVGMjdcXHU1RjI5XFx1NUY4MFxcdTVGODFcXHU1RjdGXFx1NUY3Q1xcdTVGRERcXHU1RkUwXFx1NUZGRFxcdTVGRjVcXHU1RkZGXFx1NjAwRlxcdTYwMTRcXHU2MDJGXFx1NjAzNVxcdTYwMTZcXHU2MDJBXFx1NjAxNVxcdTYwMjFcXHU2MDI3XFx1NjAyOVxcdTYwMkJcXHU2MDFCXFx1NjIxNlxcdTYyMTVcXHU2MjNGXFx1NjIzRVxcdTYyNDBcXHU2MjdGXFx1NjJDOVxcdTYyQ0NcXHU2MkM0XFx1NjJCRlxcdTYyQzJcXHU2MkI5XFx1NjJEMlxcdTYyREJcXHU2MkFCXFx1NjJEM1xcdTYyRDRcXHU2MkNCXFx1NjJDOFxcdTYyQThcXHU2MkJEXFx1NjJCQ1xcdTYyRDBcXHU2MkQ5XFx1NjJDN1xcdTYyQ0RcXHU2MkI1XFx1NjJEQVxcdTYyQjFcXHU2MkQ4XFx1NjJENlxcdTYyRDdcXHU2MkM2XFx1NjJBQ1xcdTYyQ0VcXHU2NTNFXFx1NjVBN1xcdTY1QkNcXHU2NUZBXFx1NjYxNFxcdTY2MTNcXHU2NjBDXFx1NjYwNlxcdTY2MDJcXHU2NjBFXFx1NjYwMFxcdTY2MEZcXHU2NjE1XFx1NjYwQVwiXSxcbiAgICAgIFtcImFhNDBcIiwgXCJcXHU2NjA3XFx1NjcwRFxcdTY3MEJcXHU2NzZEXFx1Njc4QlxcdTY3OTVcXHU2NzcxXFx1Njc5Q1xcdTY3NzNcXHU2Nzc3XFx1Njc4N1xcdTY3OURcXHU2Nzk3XFx1Njc2RlxcdTY3NzBcXHU2NzdGXFx1Njc4OVxcdTY3N0VcXHU2NzkwXFx1Njc3NVxcdTY3OUFcXHU2NzkzXFx1Njc3Q1xcdTY3NkFcXHU2NzcyXFx1NkIyM1xcdTZCNjZcXHU2QjY3XFx1NkI3RlxcdTZDMTNcXHU2QzFCXFx1NkNFM1xcdTZDRThcXHU2Q0YzXFx1NkNCMVxcdTZDQ0NcXHU2Q0U1XFx1NkNCM1xcdTZDQkRcXHU2Q0JFXFx1NkNCQ1xcdTZDRTJcXHU2Q0FCXFx1NkNENVxcdTZDRDNcXHU2Q0I4XFx1NkNDNFxcdTZDQjlcXHU2Q0MxXFx1NkNBRVxcdTZDRDdcXHU2Q0M1XFx1NkNGMVxcdTZDQkZcXHU2Q0JCXFx1NkNFMVxcdTZDREJcXHU2Q0NBXFx1NkNBQ1xcdTZDRUZcXHU2Q0RDXFx1NkNENlxcdTZDRTBcIl0sXG4gICAgICBbXCJhYWExXCIsIFwiXFx1NzA5NVxcdTcwOEVcXHU3MDkyXFx1NzA4QVxcdTcwOTlcXHU3MjJDXFx1NzIyRFxcdTcyMzhcXHU3MjQ4XFx1NzI2N1xcdTcyNjlcXHU3MkMwXFx1NzJDRVxcdTcyRDlcXHU3MkQ3XFx1NzJEMFxcdTczQTlcXHU3M0E4XFx1NzM5RlxcdTczQUJcXHU3M0E1XFx1NzUzRFxcdTc1OURcXHU3NTk5XFx1NzU5QVxcdTc2ODRcXHU3NkMyXFx1NzZGMlxcdTc2RjRcXHU3N0U1XFx1NzdGRFxcdTc5M0VcXHU3OTQwXFx1Nzk0MVxcdTc5QzlcXHU3OUM4XFx1N0E3QVxcdTdBNzlcXHU3QUZBXFx1N0NGRVxcdTdGNTRcXHU3RjhDXFx1N0Y4QlxcdTgwMDVcXHU4MEJBXFx1ODBBNVxcdTgwQTJcXHU4MEIxXFx1ODBBMVxcdTgwQUJcXHU4MEE5XFx1ODBCNFxcdTgwQUFcXHU4MEFGXFx1ODFFNVxcdTgxRkVcXHU4MjBEXFx1ODJCM1xcdTgyOURcXHU4Mjk5XFx1ODJBRFxcdTgyQkRcXHU4MjlGXFx1ODJCOVxcdTgyQjFcXHU4MkFDXFx1ODJBNVxcdTgyQUZcXHU4MkI4XFx1ODJBM1xcdTgyQjBcXHU4MkJFXFx1ODJCN1xcdTg2NEVcXHU4NjcxXFx1NTIxRFxcdTg4NjhcXHU4RUNCXFx1OEZDRVxcdThGRDRcXHU4RkQxXFx1OTBCNVxcdTkwQjhcXHU5MEIxXFx1OTBCNlxcdTkxQzdcXHU5MUQxXFx1OTU3N1xcdTk1ODBcXHU5NjFDXFx1OTY0MFxcdTk2M0ZcXHU5NjNCXFx1OTY0NFwiXSxcbiAgICAgIFtcImFiNDBcIiwgXCJcXHU5NjQyXFx1OTZCOVxcdTk2RThcXHU5NzUyXFx1OTc1RVxcdTRFOUZcXHU0RUFEXFx1NEVBRVxcdTRGRTFcXHU0RkI1XFx1NEZBRlxcdTRGQkZcXHU0RkUwXFx1NEZEMVxcdTRGQ0ZcXHU0RkREXFx1NEZDM1xcdTRGQjZcXHU0RkQ4XFx1NEZERlxcdTRGQ0FcXHU0RkQ3XFx1NEZBRVxcdTRGRDBcXHU0RkM0XFx1NEZDMlxcdTRGREFcXHU0RkNFXFx1NEZERVxcdTRGQjdcXHU1MTU3XFx1NTE5MlxcdTUxOTFcXHU1MUEwXFx1NTI0RVxcdTUyNDNcXHU1MjRBXFx1NTI0RFxcdTUyNENcXHU1MjRCXFx1NTI0N1xcdTUyQzdcXHU1MkM5XFx1NTJDM1xcdTUyQzFcXHU1MzBEXFx1NTM1N1xcdTUzN0JcXHU1MzlBXFx1NTNEQlxcdTU0QUNcXHU1NEMwXFx1NTRBOFxcdTU0Q0VcXHU1NEM5XFx1NTRCOFxcdTU0QTZcXHU1NEIzXFx1NTRDN1xcdTU0QzJcXHU1NEJEXFx1NTRBQVxcdTU0QzFcIl0sXG4gICAgICBbXCJhYmExXCIsIFwiXFx1NTRDNFxcdTU0QzhcXHU1NEFGXFx1NTRBQlxcdTU0QjFcXHU1NEJCXFx1NTRBOVxcdTU0QTdcXHU1NEJGXFx1NTZGRlxcdTU3ODJcXHU1NzhCXFx1NTdBMFxcdTU3QTNcXHU1N0EyXFx1NTdDRVxcdTU3QUVcXHU1NzkzXFx1NTk1NVxcdTU5NTFcXHU1OTRGXFx1NTk0RVxcdTU5NTBcXHU1OURDXFx1NTlEOFxcdTU5RkZcXHU1OUUzXFx1NTlFOFxcdTVBMDNcXHU1OUU1XFx1NTlFQVxcdTU5REFcXHU1OUU2XFx1NUEwMVxcdTU5RkJcXHU1QjY5XFx1NUJBM1xcdTVCQTZcXHU1QkE0XFx1NUJBMlxcdTVCQTVcXHU1QzAxXFx1NUM0RVxcdTVDNEZcXHU1QzREXFx1NUM0QlxcdTVDRDlcXHU1Q0QyXFx1NURGN1xcdTVFMURcXHU1RTI1XFx1NUUxRlxcdTVFN0RcXHU1RUEwXFx1NUVBNlxcdTVFRkFcXHU1RjA4XFx1NUYyRFxcdTVGNjVcXHU1Rjg4XFx1NUY4NVxcdTVGOEFcXHU1RjhCXFx1NUY4N1xcdTVGOENcXHU1Rjg5XFx1NjAxMlxcdTYwMURcXHU2MDIwXFx1NjAyNVxcdTYwMEVcXHU2MDI4XFx1NjA0RFxcdTYwNzBcXHU2MDY4XFx1NjA2MlxcdTYwNDZcXHU2MDQzXFx1NjA2Q1xcdTYwNkJcXHU2MDZBXFx1NjA2NFxcdTYyNDFcXHU2MkRDXFx1NjMxNlxcdTYzMDlcXHU2MkZDXFx1NjJFRFxcdTYzMDFcXHU2MkVFXFx1NjJGRFxcdTYzMDdcXHU2MkYxXFx1NjJGN1wiXSxcbiAgICAgIFtcImFjNDBcIiwgXCJcXHU2MkVGXFx1NjJFQ1xcdTYyRkVcXHU2MkY0XFx1NjMxMVxcdTYzMDJcXHU2NTNGXFx1NjU0NVxcdTY1QUJcXHU2NUJEXFx1NjVFMlxcdTY2MjVcXHU2NjJEXFx1NjYyMFxcdTY2MjdcXHU2NjJGXFx1NjYxRlxcdTY2MjhcXHU2NjMxXFx1NjYyNFxcdTY2RjdcXHU2N0ZGXFx1NjdEM1xcdTY3RjFcXHU2N0Q0XFx1NjdEMFxcdTY3RUNcXHU2N0I2XFx1NjdBRlxcdTY3RjVcXHU2N0U5XFx1NjdFRlxcdTY3QzRcXHU2N0QxXFx1NjdCNFxcdTY3REFcXHU2N0U1XFx1NjdCOFxcdTY3Q0ZcXHU2N0RFXFx1NjdGM1xcdTY3QjBcXHU2N0Q5XFx1NjdFMlxcdTY3RERcXHU2N0QyXFx1NkI2QVxcdTZCODNcXHU2Qjg2XFx1NkJCNVxcdTZCRDJcXHU2QkQ3XFx1NkMxRlxcdTZDQzlcXHU2RDBCXFx1NkQzMlxcdTZEMkFcXHU2RDQxXFx1NkQyNVxcdTZEMENcXHU2RDMxXFx1NkQxRVxcdTZEMTdcIl0sXG4gICAgICBbXCJhY2ExXCIsIFwiXFx1NkQzQlxcdTZEM0RcXHU2RDNFXFx1NkQzNlxcdTZEMUJcXHU2Q0Y1XFx1NkQzOVxcdTZEMjdcXHU2RDM4XFx1NkQyOVxcdTZEMkVcXHU2RDM1XFx1NkQwRVxcdTZEMkJcXHU3MEFCXFx1NzBCQVxcdTcwQjNcXHU3MEFDXFx1NzBBRlxcdTcwQURcXHU3MEI4XFx1NzBBRVxcdTcwQTRcXHU3MjMwXFx1NzI3MlxcdTcyNkZcXHU3Mjc0XFx1NzJFOVxcdTcyRTBcXHU3MkUxXFx1NzNCN1xcdTczQ0FcXHU3M0JCXFx1NzNCMlxcdTczQ0RcXHU3M0MwXFx1NzNCM1xcdTc1MUFcXHU3NTJEXFx1NzU0RlxcdTc1NENcXHU3NTRFXFx1NzU0QlxcdTc1QUJcXHU3NUE0XFx1NzVBNVxcdTc1QTJcXHU3NUEzXFx1NzY3OFxcdTc2ODZcXHU3Njg3XFx1NzY4OFxcdTc2QzhcXHU3NkM2XFx1NzZDM1xcdTc2QzVcXHU3NzAxXFx1NzZGOVxcdTc2RjhcXHU3NzA5XFx1NzcwQlxcdTc2RkVcXHU3NkZDXFx1NzcwN1xcdTc3RENcXHU3ODAyXFx1NzgxNFxcdTc4MENcXHU3ODBEXFx1Nzk0NlxcdTc5NDlcXHU3OTQ4XFx1Nzk0N1xcdTc5QjlcXHU3OUJBXFx1NzlEMVxcdTc5RDJcXHU3OUNCXFx1N0E3RlxcdTdBODFcXHU3QUZGXFx1N0FGRFxcdTdDN0RcXHU3RDAyXFx1N0QwNVxcdTdEMDBcXHU3RDA5XFx1N0QwN1xcdTdEMDRcXHU3RDA2XFx1N0YzOFxcdTdGOEVcXHU3RkJGXFx1ODAwNFwiXSxcbiAgICAgIFtcImFkNDBcIiwgXCJcXHU4MDEwXFx1ODAwRFxcdTgwMTFcXHU4MDM2XFx1ODBENlxcdTgwRTVcXHU4MERBXFx1ODBDM1xcdTgwQzRcXHU4MENDXFx1ODBFMVxcdTgwREJcXHU4MENFXFx1ODBERVxcdTgwRTRcXHU4MEREXFx1ODFGNFxcdTgyMjJcXHU4MkU3XFx1ODMwM1xcdTgzMDVcXHU4MkUzXFx1ODJEQlxcdTgyRTZcXHU4MzA0XFx1ODJFNVxcdTgzMDJcXHU4MzA5XFx1ODJEMlxcdTgyRDdcXHU4MkYxXFx1ODMwMVxcdTgyRENcXHU4MkQ0XFx1ODJEMVxcdTgyREVcXHU4MkQzXFx1ODJERlxcdTgyRUZcXHU4MzA2XFx1ODY1MFxcdTg2NzlcXHU4NjdCXFx1ODY3QVxcdTg4NERcXHU4ODZCXFx1ODk4MVxcdTg5RDRcXHU4QTA4XFx1OEEwMlxcdThBMDNcXHU4QzlFXFx1OENBMFxcdThENzRcXHU4RDczXFx1OERCNFxcdThFQ0RcXHU4RUNDXFx1OEZGMFxcdThGRTZcXHU4RkUyXFx1OEZFQVxcdThGRTVcIl0sXG4gICAgICBbXCJhZGExXCIsIFwiXFx1OEZFRFxcdThGRUJcXHU4RkU0XFx1OEZFOFxcdTkwQ0FcXHU5MENFXFx1OTBDMVxcdTkwQzNcXHU5MTRCXFx1OTE0QVxcdTkxQ0RcXHU5NTgyXFx1OTY1MFxcdTk2NEJcXHU5NjRDXFx1OTY0RFxcdTk3NjJcXHU5NzY5XFx1OTdDQlxcdTk3RURcXHU5N0YzXFx1OTgwMVxcdTk4QThcXHU5OERCXFx1OThERlxcdTk5OTZcXHU5OTk5XFx1NEU1OFxcdTRFQjNcXHU1MDBDXFx1NTAwRFxcdTUwMjNcXHU0RkVGXFx1NTAyNlxcdTUwMjVcXHU0RkY4XFx1NTAyOVxcdTUwMTZcXHU1MDA2XFx1NTAzQ1xcdTUwMUZcXHU1MDFBXFx1NTAxMlxcdTUwMTFcXHU0RkZBXFx1NTAwMFxcdTUwMTRcXHU1MDI4XFx1NEZGMVxcdTUwMjFcXHU1MDBCXFx1NTAxOVxcdTUwMThcXHU0RkYzXFx1NEZFRVxcdTUwMkRcXHU1MDJBXFx1NEZGRVxcdTUwMkJcXHU1MDA5XFx1NTE3Q1xcdTUxQTRcXHU1MUE1XFx1NTFBMlxcdTUxQ0RcXHU1MUNDXFx1NTFDNlxcdTUxQ0JcXHU1MjU2XFx1NTI1Q1xcdTUyNTRcXHU1MjVCXFx1NTI1RFxcdTUzMkFcXHU1MzdGXFx1NTM5RlxcdTUzOURcXHU1M0RGXFx1NTRFOFxcdTU1MTBcXHU1NTAxXFx1NTUzN1xcdTU0RkNcXHU1NEU1XFx1NTRGMlxcdTU1MDZcXHU1NEZBXFx1NTUxNFxcdTU0RTlcXHU1NEVEXFx1NTRFMVxcdTU1MDlcXHU1NEVFXFx1NTRFQVwiXSxcbiAgICAgIFtcImFlNDBcIiwgXCJcXHU1NEU2XFx1NTUyN1xcdTU1MDdcXHU1NEZEXFx1NTUwRlxcdTU3MDNcXHU1NzA0XFx1NTdDMlxcdTU3RDRcXHU1N0NCXFx1NTdDM1xcdTU4MDlcXHU1OTBGXFx1NTk1N1xcdTU5NThcXHU1OTVBXFx1NUExMVxcdTVBMThcXHU1QTFDXFx1NUExRlxcdTVBMUJcXHU1QTEzXFx1NTlFQ1xcdTVBMjBcXHU1QTIzXFx1NUEyOVxcdTVBMjVcXHU1QTBDXFx1NUEwOVxcdTVCNkJcXHU1QzU4XFx1NUJCMFxcdTVCQjNcXHU1QkI2XFx1NUJCNFxcdTVCQUVcXHU1QkI1XFx1NUJCOVxcdTVCQjhcXHU1QzA0XFx1NUM1MVxcdTVDNTVcXHU1QzUwXFx1NUNFRFxcdTVDRkRcXHU1Q0ZCXFx1NUNFQVxcdTVDRThcXHU1Q0YwXFx1NUNGNlxcdTVEMDFcXHU1Q0Y0XFx1NURFRVxcdTVFMkRcXHU1RTJCXFx1NUVBQlxcdTVFQURcXHU1RUE3XFx1NUYzMVxcdTVGOTJcXHU1RjkxXFx1NUY5MFxcdTYwNTlcIl0sXG4gICAgICBbXCJhZWExXCIsIFwiXFx1NjA2M1xcdTYwNjVcXHU2MDUwXFx1NjA1NVxcdTYwNkRcXHU2MDY5XFx1NjA2RlxcdTYwODRcXHU2MDlGXFx1NjA5QVxcdTYwOERcXHU2MDk0XFx1NjA4Q1xcdTYwODVcXHU2MDk2XFx1NjI0N1xcdTYyRjNcXHU2MzA4XFx1NjJGRlxcdTYzNEVcXHU2MzNFXFx1NjMyRlxcdTYzNTVcXHU2MzQyXFx1NjM0NlxcdTYzNEZcXHU2MzQ5XFx1NjMzQVxcdTYzNTBcXHU2MzNEXFx1NjMyQVxcdTYzMkJcXHU2MzI4XFx1NjM0RFxcdTYzNENcXHU2NTQ4XFx1NjU0OVxcdTY1OTlcXHU2NUMxXFx1NjVDNVxcdTY2NDJcXHU2NjQ5XFx1NjY0RlxcdTY2NDNcXHU2NjUyXFx1NjY0Q1xcdTY2NDVcXHU2NjQxXFx1NjZGOFxcdTY3MTRcXHU2NzE1XFx1NjcxN1xcdTY4MjFcXHU2ODM4XFx1Njg0OFxcdTY4NDZcXHU2ODUzXFx1NjgzOVxcdTY4NDJcXHU2ODU0XFx1NjgyOVxcdTY4QjNcXHU2ODE3XFx1Njg0Q1xcdTY4NTFcXHU2ODNEXFx1NjdGNFxcdTY4NTBcXHU2ODQwXFx1NjgzQ1xcdTY4NDNcXHU2ODJBXFx1Njg0NVxcdTY4MTNcXHU2ODE4XFx1Njg0MVxcdTZCOEFcXHU2Qjg5XFx1NkJCN1xcdTZDMjNcXHU2QzI3XFx1NkMyOFxcdTZDMjZcXHU2QzI0XFx1NkNGMFxcdTZENkFcXHU2RDk1XFx1NkQ4OFxcdTZEODdcXHU2RDY2XFx1NkQ3OFxcdTZENzdcXHU2RDU5XFx1NkQ5M1wiXSxcbiAgICAgIFtcImFmNDBcIiwgXCJcXHU2RDZDXFx1NkQ4OVxcdTZENkVcXHU2RDVBXFx1NkQ3NFxcdTZENjlcXHU2RDhDXFx1NkQ4QVxcdTZENzlcXHU2RDg1XFx1NkQ2NVxcdTZEOTRcXHU3MENBXFx1NzBEOFxcdTcwRTRcXHU3MEQ5XFx1NzBDOFxcdTcwQ0ZcXHU3MjM5XFx1NzI3OVxcdTcyRkNcXHU3MkY5XFx1NzJGRFxcdTcyRjhcXHU3MkY3XFx1NzM4NlxcdTczRURcXHU3NDA5XFx1NzNFRVxcdTczRTBcXHU3M0VBXFx1NzNERVxcdTc1NTRcXHU3NTVEXFx1NzU1Q1xcdTc1NUFcXHU3NTU5XFx1NzVCRVxcdTc1QzVcXHU3NUM3XFx1NzVCMlxcdTc1QjNcXHU3NUJEXFx1NzVCQ1xcdTc1QjlcXHU3NUMyXFx1NzVCOFxcdTc2OEJcXHU3NkIwXFx1NzZDQVxcdTc2Q0RcXHU3NkNFXFx1NzcyOVxcdTc3MUZcXHU3NzIwXFx1NzcyOFxcdTc3RTlcXHU3ODMwXFx1NzgyN1xcdTc4MzhcXHU3ODFEXFx1NzgzNFxcdTc4MzdcIl0sXG4gICAgICBbXCJhZmExXCIsIFwiXFx1NzgyNVxcdTc4MkRcXHU3ODIwXFx1NzgxRlxcdTc4MzJcXHU3OTU1XFx1Nzk1MFxcdTc5NjBcXHU3OTVGXFx1Nzk1NlxcdTc5NUVcXHU3OTVEXFx1Nzk1N1xcdTc5NUFcXHU3OUU0XFx1NzlFM1xcdTc5RTdcXHU3OURGXFx1NzlFNlxcdTc5RTlcXHU3OUQ4XFx1N0E4NFxcdTdBODhcXHU3QUQ5XFx1N0IwNlxcdTdCMTFcXHU3Qzg5XFx1N0QyMVxcdTdEMTdcXHU3RDBCXFx1N0QwQVxcdTdEMjBcXHU3RDIyXFx1N0QxNFxcdTdEMTBcXHU3RDE1XFx1N0QxQVxcdTdEMUNcXHU3RDBEXFx1N0QxOVxcdTdEMUJcXHU3RjNBXFx1N0Y1RlxcdTdGOTRcXHU3RkM1XFx1N0ZDMVxcdTgwMDZcXHU4MDE4XFx1ODAxNVxcdTgwMTlcXHU4MDE3XFx1ODAzRFxcdTgwM0ZcXHU4MEYxXFx1ODEwMlxcdTgwRjBcXHU4MTA1XFx1ODBFRFxcdTgwRjRcXHU4MTA2XFx1ODBGOFxcdTgwRjNcXHU4MTA4XFx1ODBGRFxcdTgxMEFcXHU4MEZDXFx1ODBFRlxcdTgxRURcXHU4MUVDXFx1ODIwMFxcdTgyMTBcXHU4MjJBXFx1ODIyQlxcdTgyMjhcXHU4MjJDXFx1ODJCQlxcdTgzMkJcXHU4MzUyXFx1ODM1NFxcdTgzNEFcXHU4MzM4XFx1ODM1MFxcdTgzNDlcXHU4MzM1XFx1ODMzNFxcdTgzNEZcXHU4MzMyXFx1ODMzOVxcdTgzMzZcXHU4MzE3XFx1ODM0MFxcdTgzMzFcXHU4MzI4XFx1ODM0M1wiXSxcbiAgICAgIFtcImIwNDBcIiwgXCJcXHU4NjU0XFx1ODY4QVxcdTg2QUFcXHU4NjkzXFx1ODZBNFxcdTg2QTlcXHU4NjhDXFx1ODZBM1xcdTg2OUNcXHU4ODcwXFx1ODg3N1xcdTg4ODFcXHU4ODgyXFx1ODg3RFxcdTg4NzlcXHU4QTE4XFx1OEExMFxcdThBMEVcXHU4QTBDXFx1OEExNVxcdThBMEFcXHU4QTE3XFx1OEExM1xcdThBMTZcXHU4QTBGXFx1OEExMVxcdThDNDhcXHU4QzdBXFx1OEM3OVxcdThDQTFcXHU4Q0EyXFx1OEQ3N1xcdThFQUNcXHU4RUQyXFx1OEVENFxcdThFQ0ZcXHU4RkIxXFx1OTAwMVxcdTkwMDZcXHU4RkY3XFx1OTAwMFxcdThGRkFcXHU4RkY0XFx1OTAwM1xcdThGRkRcXHU5MDA1XFx1OEZGOFxcdTkwOTVcXHU5MEUxXFx1OTBERFxcdTkwRTJcXHU5MTUyXFx1OTE0RFxcdTkxNENcXHU5MUQ4XFx1OTFERFxcdTkxRDdcXHU5MURDXFx1OTFEOVxcdTk1ODNcXHU5NjYyXFx1OTY2M1xcdTk2NjFcIl0sXG4gICAgICBbXCJiMGExXCIsIFwiXFx1OTY1QlxcdTk2NURcXHU5NjY0XFx1OTY1OFxcdTk2NUVcXHU5NkJCXFx1OThFMlxcdTk5QUNcXHU5QUE4XFx1OUFEOFxcdTlCMjVcXHU5QjMyXFx1OUIzQ1xcdTRFN0VcXHU1MDdBXFx1NTA3RFxcdTUwNUNcXHU1MDQ3XFx1NTA0M1xcdTUwNENcXHU1MDVBXFx1NTA0OVxcdTUwNjVcXHU1MDc2XFx1NTA0RVxcdTUwNTVcXHU1MDc1XFx1NTA3NFxcdTUwNzdcXHU1MDRGXFx1NTAwRlxcdTUwNkZcXHU1MDZEXFx1NTE1Q1xcdTUxOTVcXHU1MUYwXFx1NTI2QVxcdTUyNkZcXHU1MkQyXFx1NTJEOVxcdTUyRDhcXHU1MkQ1XFx1NTMxMFxcdTUzMEZcXHU1MzE5XFx1NTMzRlxcdTUzNDBcXHU1MzNFXFx1NTNDM1xcdTY2RkNcXHU1NTQ2XFx1NTU2QVxcdTU1NjZcXHU1NTQ0XFx1NTU1RVxcdTU1NjFcXHU1NTQzXFx1NTU0QVxcdTU1MzFcXHU1NTU2XFx1NTU0RlxcdTU1NTVcXHU1NTJGXFx1NTU2NFxcdTU1MzhcXHU1NTJFXFx1NTU1Q1xcdTU1MkNcXHU1NTYzXFx1NTUzM1xcdTU1NDFcXHU1NTU3XFx1NTcwOFxcdTU3MEJcXHU1NzA5XFx1NTdERlxcdTU4MDVcXHU1ODBBXFx1NTgwNlxcdTU3RTBcXHU1N0U0XFx1NTdGQVxcdTU4MDJcXHU1ODM1XFx1NTdGN1xcdTU3RjlcXHU1OTIwXFx1NTk2MlxcdTVBMzZcXHU1QTQxXFx1NUE0OVxcdTVBNjZcXHU1QTZBXFx1NUE0MFwiXSxcbiAgICAgIFtcImIxNDBcIiwgXCJcXHU1QTNDXFx1NUE2MlxcdTVBNUFcXHU1QTQ2XFx1NUE0QVxcdTVCNzBcXHU1QkM3XFx1NUJDNVxcdTVCQzRcXHU1QkMyXFx1NUJCRlxcdTVCQzZcXHU1QzA5XFx1NUMwOFxcdTVDMDdcXHU1QzYwXFx1NUM1Q1xcdTVDNURcXHU1RDA3XFx1NUQwNlxcdTVEMEVcXHU1RDFCXFx1NUQxNlxcdTVEMjJcXHU1RDExXFx1NUQyOVxcdTVEMTRcXHU1RDE5XFx1NUQyNFxcdTVEMjdcXHU1RDE3XFx1NURFMlxcdTVFMzhcXHU1RTM2XFx1NUUzM1xcdTVFMzdcXHU1RUI3XFx1NUVCOFxcdTVFQjZcXHU1RUI1XFx1NUVCRVxcdTVGMzVcXHU1RjM3XFx1NUY1N1xcdTVGNkNcXHU1RjY5XFx1NUY2QlxcdTVGOTdcXHU1Rjk5XFx1NUY5RVxcdTVGOThcXHU1RkExXFx1NUZBMFxcdTVGOUNcXHU2MDdGXFx1NjBBM1xcdTYwODlcXHU2MEEwXFx1NjBBOFxcdTYwQ0JcXHU2MEI0XFx1NjBFNlxcdTYwQkRcIl0sXG4gICAgICBbXCJiMWExXCIsIFwiXFx1NjBDNVxcdTYwQkJcXHU2MEI1XFx1NjBEQ1xcdTYwQkNcXHU2MEQ4XFx1NjBENVxcdTYwQzZcXHU2MERGXFx1NjBCOFxcdTYwREFcXHU2MEM3XFx1NjIxQVxcdTYyMUJcXHU2MjQ4XFx1NjNBMFxcdTYzQTdcXHU2MzcyXFx1NjM5NlxcdTYzQTJcXHU2M0E1XFx1NjM3N1xcdTYzNjdcXHU2Mzk4XFx1NjNBQVxcdTYzNzFcXHU2M0E5XFx1NjM4OVxcdTYzODNcXHU2MzlCXFx1NjM2QlxcdTYzQThcXHU2Mzg0XFx1NjM4OFxcdTYzOTlcXHU2M0ExXFx1NjNBQ1xcdTYzOTJcXHU2MzhGXFx1NjM4MFxcdTYzN0JcXHU2MzY5XFx1NjM2OFxcdTYzN0FcXHU2NTVEXFx1NjU1NlxcdTY1NTFcXHU2NTU5XFx1NjU1N1xcdTU1NUZcXHU2NTRGXFx1NjU1OFxcdTY1NTVcXHU2NTU0XFx1NjU5Q1xcdTY1OUJcXHU2NUFDXFx1NjVDRlxcdTY1Q0JcXHU2NUNDXFx1NjVDRVxcdTY2NURcXHU2NjVBXFx1NjY2NFxcdTY2NjhcXHU2NjY2XFx1NjY1RVxcdTY2RjlcXHU1MkQ3XFx1NjcxQlxcdTY4ODFcXHU2OEFGXFx1NjhBMlxcdTY4OTNcXHU2OEI1XFx1Njg3RlxcdTY4NzZcXHU2OEIxXFx1NjhBN1xcdTY4OTdcXHU2OEIwXFx1Njg4M1xcdTY4QzRcXHU2OEFEXFx1Njg4NlxcdTY4ODVcXHU2ODk0XFx1Njg5RFxcdTY4QThcXHU2ODlGXFx1NjhBMVxcdTY4ODJcXHU2QjMyXFx1NkJCQVwiXSxcbiAgICAgIFtcImIyNDBcIiwgXCJcXHU2QkVCXFx1NkJFQ1xcdTZDMkJcXHU2RDhFXFx1NkRCQ1xcdTZERjNcXHU2REQ5XFx1NkRCMlxcdTZERTFcXHU2RENDXFx1NkRFNFxcdTZERkJcXHU2REZBXFx1NkUwNVxcdTZEQzdcXHU2RENCXFx1NkRBRlxcdTZERDFcXHU2REFFXFx1NkRERVxcdTZERjlcXHU2REI4XFx1NkRGN1xcdTZERjVcXHU2REM1XFx1NkREMlxcdTZFMUFcXHU2REI1XFx1NkREQVxcdTZERUJcXHU2REQ4XFx1NkRFQVxcdTZERjFcXHU2REVFXFx1NkRFOFxcdTZEQzZcXHU2REM0XFx1NkRBQVxcdTZERUNcXHU2REJGXFx1NkRFNlxcdTcwRjlcXHU3MTA5XFx1NzEwQVxcdTcwRkRcXHU3MEVGXFx1NzIzRFxcdTcyN0RcXHU3MjgxXFx1NzMxQ1xcdTczMUJcXHU3MzE2XFx1NzMxM1xcdTczMTlcXHU3Mzg3XFx1NzQwNVxcdTc0MEFcXHU3NDAzXFx1NzQwNlxcdTczRkVcXHU3NDBEXFx1NzRFMFxcdTc0RjZcIl0sXG4gICAgICBbXCJiMmExXCIsIFwiXFx1NzRGN1xcdTc1MUNcXHU3NTIyXFx1NzU2NVxcdTc1NjZcXHU3NTYyXFx1NzU3MFxcdTc1OEZcXHU3NUQ0XFx1NzVENVxcdTc1QjVcXHU3NUNBXFx1NzVDRFxcdTc2OEVcXHU3NkQ0XFx1NzZEMlxcdTc2REJcXHU3NzM3XFx1NzczRVxcdTc3M0NcXHU3NzM2XFx1NzczOFxcdTc3M0FcXHU3ODZCXFx1Nzg0M1xcdTc4NEVcXHU3OTY1XFx1Nzk2OFxcdTc5NkRcXHU3OUZCXFx1N0E5MlxcdTdBOTVcXHU3QjIwXFx1N0IyOFxcdTdCMUJcXHU3QjJDXFx1N0IyNlxcdTdCMTlcXHU3QjFFXFx1N0IyRVxcdTdDOTJcXHU3Qzk3XFx1N0M5NVxcdTdENDZcXHU3RDQzXFx1N0Q3MVxcdTdEMkVcXHU3RDM5XFx1N0QzQ1xcdTdENDBcXHU3RDMwXFx1N0QzM1xcdTdENDRcXHU3RDJGXFx1N0Q0MlxcdTdEMzJcXHU3RDMxXFx1N0YzRFxcdTdGOUVcXHU3RjlBXFx1N0ZDQ1xcdTdGQ0VcXHU3RkQyXFx1ODAxQ1xcdTgwNEFcXHU4MDQ2XFx1ODEyRlxcdTgxMTZcXHU4MTIzXFx1ODEyQlxcdTgxMjlcXHU4MTMwXFx1ODEyNFxcdTgyMDJcXHU4MjM1XFx1ODIzN1xcdTgyMzZcXHU4MjM5XFx1ODM4RVxcdTgzOUVcXHU4Mzk4XFx1ODM3OFxcdTgzQTJcXHU4Mzk2XFx1ODNCRFxcdTgzQUJcXHU4MzkyXFx1ODM4QVxcdTgzOTNcXHU4Mzg5XFx1ODNBMFxcdTgzNzdcXHU4MzdCXFx1ODM3Q1wiXSxcbiAgICAgIFtcImIzNDBcIiwgXCJcXHU4Mzg2XFx1ODNBN1xcdTg2NTVcXHU1RjZBXFx1ODZDN1xcdTg2QzBcXHU4NkI2XFx1ODZDNFxcdTg2QjVcXHU4NkM2XFx1ODZDQlxcdTg2QjFcXHU4NkFGXFx1ODZDOVxcdTg4NTNcXHU4ODlFXFx1ODg4OFxcdTg4QUJcXHU4ODkyXFx1ODg5NlxcdTg4OERcXHU4ODhCXFx1ODk5M1xcdTg5OEZcXHU4QTJBXFx1OEExRFxcdThBMjNcXHU4QTI1XFx1OEEzMVxcdThBMkRcXHU4QTFGXFx1OEExQlxcdThBMjJcXHU4QzQ5XFx1OEM1QVxcdThDQTlcXHU4Q0FDXFx1OENBQlxcdThDQThcXHU4Q0FBXFx1OENBN1xcdThENjdcXHU4RDY2XFx1OERCRVxcdThEQkFcXHU4RURCXFx1OEVERlxcdTkwMTlcXHU5MDBEXFx1OTAxQVxcdTkwMTdcXHU5MDIzXFx1OTAxRlxcdTkwMURcXHU5MDEwXFx1OTAxNVxcdTkwMUVcXHU5MDIwXFx1OTAwRlxcdTkwMjJcXHU5MDE2XFx1OTAxQlxcdTkwMTRcIl0sXG4gICAgICBbXCJiM2ExXCIsIFwiXFx1OTBFOFxcdTkwRURcXHU5MEZEXFx1OTE1N1xcdTkxQ0VcXHU5MUY1XFx1OTFFNlxcdTkxRTNcXHU5MUU3XFx1OTFFRFxcdTkxRTlcXHU5NTg5XFx1OTY2QVxcdTk2NzVcXHU5NjczXFx1OTY3OFxcdTk2NzBcXHU5Njc0XFx1OTY3NlxcdTk2NzdcXHU5NjZDXFx1OTZDMFxcdTk2RUFcXHU5NkU5XFx1N0FFMFxcdTdBREZcXHU5ODAyXFx1OTgwM1xcdTlCNUFcXHU5Q0U1XFx1OUU3NVxcdTlFN0ZcXHU5RUE1XFx1OUVCQlxcdTUwQTJcXHU1MDhEXFx1NTA4NVxcdTUwOTlcXHU1MDkxXFx1NTA4MFxcdTUwOTZcXHU1MDk4XFx1NTA5QVxcdTY3MDBcXHU1MUYxXFx1NTI3MlxcdTUyNzRcXHU1Mjc1XFx1NTI2OVxcdTUyREVcXHU1MkREXFx1NTJEQlxcdTUzNUFcXHU1M0E1XFx1NTU3QlxcdTU1ODBcXHU1NUE3XFx1NTU3Q1xcdTU1OEFcXHU1NTlEXFx1NTU5OFxcdTU1ODJcXHU1NTlDXFx1NTVBQVxcdTU1OTRcXHU1NTg3XFx1NTU4QlxcdTU1ODNcXHU1NUIzXFx1NTVBRVxcdTU1OUZcXHU1NTNFXFx1NTVCMlxcdTU1OUFcXHU1NUJCXFx1NTVBQ1xcdTU1QjFcXHU1NTdFXFx1NTU4OVxcdTU1QUJcXHU1NTk5XFx1NTcwRFxcdTU4MkZcXHU1ODJBXFx1NTgzNFxcdTU4MjRcXHU1ODMwXFx1NTgzMVxcdTU4MjFcXHU1ODFEXFx1NTgyMFxcdTU4RjlcXHU1OEZBXFx1NTk2MFwiXSxcbiAgICAgIFtcImI0NDBcIiwgXCJcXHU1QTc3XFx1NUE5QVxcdTVBN0ZcXHU1QTkyXFx1NUE5QlxcdTVBQTdcXHU1QjczXFx1NUI3MVxcdTVCRDJcXHU1QkNDXFx1NUJEM1xcdTVCRDBcXHU1QzBBXFx1NUMwQlxcdTVDMzFcXHU1RDRDXFx1NUQ1MFxcdTVEMzRcXHU1RDQ3XFx1NURGRFxcdTVFNDVcXHU1RTNEXFx1NUU0MFxcdTVFNDNcXHU1RTdFXFx1NUVDQVxcdTVFQzFcXHU1RUMyXFx1NUVDNFxcdTVGM0NcXHU1RjZEXFx1NUZBOVxcdTVGQUFcXHU1RkE4XFx1NjBEMVxcdTYwRTFcXHU2MEIyXFx1NjBCNlxcdTYwRTBcXHU2MTFDXFx1NjEyM1xcdTYwRkFcXHU2MTE1XFx1NjBGMFxcdTYwRkJcXHU2MEY0XFx1NjE2OFxcdTYwRjFcXHU2MTBFXFx1NjBGNlxcdTYxMDlcXHU2MTAwXFx1NjExMlxcdTYyMUZcXHU2MjQ5XFx1NjNBM1xcdTYzOENcXHU2M0NGXFx1NjNDMFxcdTYzRTlcXHU2M0M5XFx1NjNDNlxcdTYzQ0RcIl0sXG4gICAgICBbXCJiNGExXCIsIFwiXFx1NjNEMlxcdTYzRTNcXHU2M0QwXFx1NjNFMVxcdTYzRDZcXHU2M0VEXFx1NjNFRVxcdTYzNzZcXHU2M0Y0XFx1NjNFQVxcdTYzREJcXHU2NDUyXFx1NjNEQVxcdTYzRjlcXHU2NTVFXFx1NjU2NlxcdTY1NjJcXHU2NTYzXFx1NjU5MVxcdTY1OTBcXHU2NUFGXFx1NjY2RVxcdTY2NzBcXHU2Njc0XFx1NjY3NlxcdTY2NkZcXHU2NjkxXFx1NjY3QVxcdTY2N0VcXHU2Njc3XFx1NjZGRVxcdTY2RkZcXHU2NzFGXFx1NjcxRFxcdTY4RkFcXHU2OEQ1XFx1NjhFMFxcdTY4RDhcXHU2OEQ3XFx1NjkwNVxcdTY4REZcXHU2OEY1XFx1NjhFRVxcdTY4RTdcXHU2OEY5XFx1NjhEMlxcdTY4RjJcXHU2OEUzXFx1NjhDQlxcdTY4Q0RcXHU2OTBEXFx1NjkxMlxcdTY5MEVcXHU2OEM5XFx1NjhEQVxcdTY5NkVcXHU2OEZCXFx1NkIzRVxcdTZCM0FcXHU2QjNEXFx1NkI5OFxcdTZCOTZcXHU2QkJDXFx1NkJFRlxcdTZDMkVcXHU2QzJGXFx1NkMyQ1xcdTZFMkZcXHU2RTM4XFx1NkU1NFxcdTZFMjFcXHU2RTMyXFx1NkU2N1xcdTZFNEFcXHU2RTIwXFx1NkUyNVxcdTZFMjNcXHU2RTFCXFx1NkU1QlxcdTZFNThcXHU2RTI0XFx1NkU1NlxcdTZFNkVcXHU2RTJEXFx1NkUyNlxcdTZFNkZcXHU2RTM0XFx1NkU0RFxcdTZFM0FcXHU2RTJDXFx1NkU0M1xcdTZFMURcXHU2RTNFXFx1NkVDQlwiXSxcbiAgICAgIFtcImI1NDBcIiwgXCJcXHU2RTg5XFx1NkUxOVxcdTZFNEVcXHU2RTYzXFx1NkU0NFxcdTZFNzJcXHU2RTY5XFx1NkU1RlxcdTcxMTlcXHU3MTFBXFx1NzEyNlxcdTcxMzBcXHU3MTIxXFx1NzEzNlxcdTcxNkVcXHU3MTFDXFx1NzI0Q1xcdTcyODRcXHU3MjgwXFx1NzMzNlxcdTczMjVcXHU3MzM0XFx1NzMyOVxcdTc0M0FcXHU3NDJBXFx1NzQzM1xcdTc0MjJcXHU3NDI1XFx1NzQzNVxcdTc0MzZcXHU3NDM0XFx1NzQyRlxcdTc0MUJcXHU3NDI2XFx1NzQyOFxcdTc1MjVcXHU3NTI2XFx1NzU2QlxcdTc1NkFcXHU3NUUyXFx1NzVEQlxcdTc1RTNcXHU3NUQ5XFx1NzVEOFxcdTc1REVcXHU3NUUwXFx1NzY3QlxcdTc2N0NcXHU3Njk2XFx1NzY5M1xcdTc2QjRcXHU3NkRDXFx1Nzc0RlxcdTc3RURcXHU3ODVEXFx1Nzg2Q1xcdTc4NkZcXHU3QTBEXFx1N0EwOFxcdTdBMEJcXHU3QTA1XFx1N0EwMFxcdTdBOThcIl0sXG4gICAgICBbXCJiNWExXCIsIFwiXFx1N0E5N1xcdTdBOTZcXHU3QUU1XFx1N0FFM1xcdTdCNDlcXHU3QjU2XFx1N0I0NlxcdTdCNTBcXHU3QjUyXFx1N0I1NFxcdTdCNERcXHU3QjRCXFx1N0I0RlxcdTdCNTFcXHU3QzlGXFx1N0NBNVxcdTdENUVcXHU3RDUwXFx1N0Q2OFxcdTdENTVcXHU3RDJCXFx1N0Q2RVxcdTdENzJcXHU3RDYxXFx1N0Q2NlxcdTdENjJcXHU3RDcwXFx1N0Q3M1xcdTU1ODRcXHU3RkQ0XFx1N0ZENVxcdTgwMEJcXHU4MDUyXFx1ODA4NVxcdTgxNTVcXHU4MTU0XFx1ODE0QlxcdTgxNTFcXHU4MTRFXFx1ODEzOVxcdTgxNDZcXHU4MTNFXFx1ODE0Q1xcdTgxNTNcXHU4MTc0XFx1ODIxMlxcdTgyMUNcXHU4M0U5XFx1ODQwM1xcdTgzRjhcXHU4NDBEXFx1ODNFMFxcdTgzQzVcXHU4NDBCXFx1ODNDMVxcdTgzRUZcXHU4M0YxXFx1ODNGNFxcdTg0NTdcXHU4NDBBXFx1ODNGMFxcdTg0MENcXHU4M0NDXFx1ODNGRFxcdTgzRjJcXHU4M0NBXFx1ODQzOFxcdTg0MEVcXHU4NDA0XFx1ODNEQ1xcdTg0MDdcXHU4M0Q0XFx1ODNERlxcdTg2NUJcXHU4NkRGXFx1ODZEOVxcdTg2RURcXHU4NkQ0XFx1ODZEQlxcdTg2RTRcXHU4NkQwXFx1ODZERVxcdTg4NTdcXHU4OEMxXFx1ODhDMlxcdTg4QjFcXHU4OTgzXFx1ODk5NlxcdThBM0JcXHU4QTYwXFx1OEE1NVxcdThBNUVcXHU4QTNDXFx1OEE0MVwiXSxcbiAgICAgIFtcImI2NDBcIiwgXCJcXHU4QTU0XFx1OEE1QlxcdThBNTBcXHU4QTQ2XFx1OEEzNFxcdThBM0FcXHU4QTM2XFx1OEE1NlxcdThDNjFcXHU4QzgyXFx1OENBRlxcdThDQkNcXHU4Q0IzXFx1OENCRFxcdThDQzFcXHU4Q0JCXFx1OENDMFxcdThDQjRcXHU4Q0I3XFx1OENCNlxcdThDQkZcXHU4Q0I4XFx1OEQ4QVxcdThEODVcXHU4RDgxXFx1OERDRVxcdThERERcXHU4RENCXFx1OEREQVxcdThERDFcXHU4RENDXFx1OEREQlxcdThEQzZcXHU4RUZCXFx1OEVGOFxcdThFRkNcXHU4RjlDXFx1OTAyRVxcdTkwMzVcXHU5MDMxXFx1OTAzOFxcdTkwMzJcXHU5MDM2XFx1OTEwMlxcdTkwRjVcXHU5MTA5XFx1OTBGRVxcdTkxNjNcXHU5MTY1XFx1OTFDRlxcdTkyMTRcXHU5MjE1XFx1OTIyM1xcdTkyMDlcXHU5MjFFXFx1OTIwRFxcdTkyMTBcXHU5MjA3XFx1OTIxMVxcdTk1OTRcXHU5NThGXFx1OTU4QlxcdTk1OTFcIl0sXG4gICAgICBbXCJiNmExXCIsIFwiXFx1OTU5M1xcdTk1OTJcXHU5NThFXFx1OTY4QVxcdTk2OEVcXHU5NjhCXFx1OTY3RFxcdTk2ODVcXHU5Njg2XFx1OTY4RFxcdTk2NzJcXHU5Njg0XFx1OTZDMVxcdTk2QzVcXHU5NkM0XFx1OTZDNlxcdTk2QzdcXHU5NkVGXFx1OTZGMlxcdTk3Q0NcXHU5ODA1XFx1OTgwNlxcdTk4MDhcXHU5OEU3XFx1OThFQVxcdTk4RUZcXHU5OEU5XFx1OThGMlxcdTk4RURcXHU5OUFFXFx1OTlBRFxcdTlFQzNcXHU5RUNEXFx1OUVEMVxcdTRFODJcXHU1MEFEXFx1NTBCNVxcdTUwQjJcXHU1MEIzXFx1NTBDNVxcdTUwQkVcXHU1MEFDXFx1NTBCN1xcdTUwQkJcXHU1MEFGXFx1NTBDN1xcdTUyN0ZcXHU1Mjc3XFx1NTI3RFxcdTUyREZcXHU1MkU2XFx1NTJFNFxcdTUyRTJcXHU1MkUzXFx1NTMyRlxcdTU1REZcXHU1NUU4XFx1NTVEM1xcdTU1RTZcXHU1NUNFXFx1NTVEQ1xcdTU1QzdcXHU1NUQxXFx1NTVFM1xcdTU1RTRcXHU1NUVGXFx1NTVEQVxcdTU1RTFcXHU1NUM1XFx1NTVDNlxcdTU1RTVcXHU1NUM5XFx1NTcxMlxcdTU3MTNcXHU1ODVFXFx1NTg1MVxcdTU4NThcXHU1ODU3XFx1NTg1QVxcdTU4NTRcXHU1ODZCXFx1NTg0Q1xcdTU4NkRcXHU1ODRBXFx1NTg2MlxcdTU4NTJcXHU1ODRCXFx1NTk2N1xcdTVBQzFcXHU1QUM5XFx1NUFDQ1xcdTVBQkVcXHU1QUJEXFx1NUFCQ1wiXSxcbiAgICAgIFtcImI3NDBcIiwgXCJcXHU1QUIzXFx1NUFDMlxcdTVBQjJcXHU1RDY5XFx1NUQ2RlxcdTVFNENcXHU1RTc5XFx1NUVDOVxcdTVFQzhcXHU1RjEyXFx1NUY1OVxcdTVGQUNcXHU1RkFFXFx1NjExQVxcdTYxMEZcXHU2MTQ4XFx1NjExRlxcdTYwRjNcXHU2MTFCXFx1NjBGOVxcdTYxMDFcXHU2MTA4XFx1NjE0RVxcdTYxNENcXHU2MTQ0XFx1NjE0RFxcdTYxM0VcXHU2MTM0XFx1NjEyN1xcdTYxMERcXHU2MTA2XFx1NjEzN1xcdTYyMjFcXHU2MjIyXFx1NjQxM1xcdTY0M0VcXHU2NDFFXFx1NjQyQVxcdTY0MkRcXHU2NDNEXFx1NjQyQ1xcdTY0MEZcXHU2NDFDXFx1NjQxNFxcdTY0MERcXHU2NDM2XFx1NjQxNlxcdTY0MTdcXHU2NDA2XFx1NjU2Q1xcdTY1OUZcXHU2NUIwXFx1NjY5N1xcdTY2ODlcXHU2Njg3XFx1NjY4OFxcdTY2OTZcXHU2Njg0XFx1NjY5OFxcdTY2OERcXHU2NzAzXFx1Njk5NFxcdTY5NkRcIl0sXG4gICAgICBbXCJiN2ExXCIsIFwiXFx1Njk1QVxcdTY5NzdcXHU2OTYwXFx1Njk1NFxcdTY5NzVcXHU2OTMwXFx1Njk4MlxcdTY5NEFcXHU2OTY4XFx1Njk2QlxcdTY5NUVcXHU2OTUzXFx1Njk3OVxcdTY5ODZcXHU2OTVEXFx1Njk2M1xcdTY5NUJcXHU2QjQ3XFx1NkI3MlxcdTZCQzBcXHU2QkJGXFx1NkJEM1xcdTZCRkRcXHU2RUEyXFx1NkVBRlxcdTZFRDNcXHU2RUI2XFx1NkVDMlxcdTZFOTBcXHU2RTlEXFx1NkVDN1xcdTZFQzVcXHU2RUE1XFx1NkU5OFxcdTZFQkNcXHU2RUJBXFx1NkVBQlxcdTZFRDFcXHU2RTk2XFx1NkU5Q1xcdTZFQzRcXHU2RUQ0XFx1NkVBQVxcdTZFQTdcXHU2RUI0XFx1NzE0RVxcdTcxNTlcXHU3MTY5XFx1NzE2NFxcdTcxNDlcXHU3MTY3XFx1NzE1Q1xcdTcxNkNcXHU3MTY2XFx1NzE0Q1xcdTcxNjVcXHU3MTVFXFx1NzE0NlxcdTcxNjhcXHU3MTU2XFx1NzIzQVxcdTcyNTJcXHU3MzM3XFx1NzM0NVxcdTczM0ZcXHU3MzNFXFx1NzQ2RlxcdTc0NUFcXHU3NDU1XFx1NzQ1RlxcdTc0NUVcXHU3NDQxXFx1NzQzRlxcdTc0NTlcXHU3NDVCXFx1NzQ1Q1xcdTc1NzZcXHU3NTc4XFx1NzYwMFxcdTc1RjBcXHU3NjAxXFx1NzVGMlxcdTc1RjFcXHU3NUZBXFx1NzVGRlxcdTc1RjRcXHU3NUYzXFx1NzZERVxcdTc2REZcXHU3NzVCXFx1Nzc2QlxcdTc3NjZcXHU3NzVFXFx1Nzc2M1wiXSxcbiAgICAgIFtcImI4NDBcIiwgXCJcXHU3Nzc5XFx1Nzc2QVxcdTc3NkNcXHU3NzVDXFx1Nzc2NVxcdTc3NjhcXHU3NzYyXFx1NzdFRVxcdTc4OEVcXHU3OEIwXFx1Nzg5N1xcdTc4OThcXHU3ODhDXFx1Nzg4OVxcdTc4N0NcXHU3ODkxXFx1Nzg5M1xcdTc4N0ZcXHU3OTdBXFx1Nzk3RlxcdTc5ODFcXHU4NDJDXFx1NzlCRFxcdTdBMUNcXHU3QTFBXFx1N0EyMFxcdTdBMTRcXHU3QTFGXFx1N0ExRVxcdTdBOUZcXHU3QUEwXFx1N0I3N1xcdTdCQzBcXHU3QjYwXFx1N0I2RVxcdTdCNjdcXHU3Q0IxXFx1N0NCM1xcdTdDQjVcXHU3RDkzXFx1N0Q3OVxcdTdEOTFcXHU3RDgxXFx1N0Q4RlxcdTdENUJcXHU3RjZFXFx1N0Y2OVxcdTdGNkFcXHU3RjcyXFx1N0ZBOVxcdTdGQThcXHU3RkE0XFx1ODA1NlxcdTgwNThcXHU4MDg2XFx1ODA4NFxcdTgxNzFcXHU4MTcwXFx1ODE3OFxcdTgxNjVcXHU4MTZFXFx1ODE3M1xcdTgxNkJcIl0sXG4gICAgICBbXCJiOGExXCIsIFwiXFx1ODE3OVxcdTgxN0FcXHU4MTY2XFx1ODIwNVxcdTgyNDdcXHU4NDgyXFx1ODQ3N1xcdTg0M0RcXHU4NDMxXFx1ODQ3NVxcdTg0NjZcXHU4NDZCXFx1ODQ0OVxcdTg0NkNcXHU4NDVCXFx1ODQzQ1xcdTg0MzVcXHU4NDYxXFx1ODQ2M1xcdTg0NjlcXHU4NDZEXFx1ODQ0NlxcdTg2NUVcXHU4NjVDXFx1ODY1RlxcdTg2RjlcXHU4NzEzXFx1ODcwOFxcdTg3MDdcXHU4NzAwXFx1ODZGRVxcdTg2RkJcXHU4NzAyXFx1ODcwM1xcdTg3MDZcXHU4NzBBXFx1ODg1OVxcdTg4REZcXHU4OEQ0XFx1ODhEOVxcdTg4RENcXHU4OEQ4XFx1ODhERFxcdTg4RTFcXHU4OENBXFx1ODhENVxcdTg4RDJcXHU4OTlDXFx1ODlFM1xcdThBNkJcXHU4QTcyXFx1OEE3M1xcdThBNjZcXHU4QTY5XFx1OEE3MFxcdThBODdcXHU4QTdDXFx1OEE2M1xcdThBQTBcXHU4QTcxXFx1OEE4NVxcdThBNkRcXHU4QTYyXFx1OEE2RVxcdThBNkNcXHU4QTc5XFx1OEE3QlxcdThBM0VcXHU4QTY4XFx1OEM2MlxcdThDOEFcXHU4Qzg5XFx1OENDQVxcdThDQzdcXHU4Q0M4XFx1OENDNFxcdThDQjJcXHU4Q0MzXFx1OENDMlxcdThDQzVcXHU4REUxXFx1OERERlxcdThERThcXHU4REVGXFx1OERGM1xcdThERkFcXHU4REVBXFx1OERFNFxcdThERTZcXHU4RUIyXFx1OEYwM1xcdThGMDlcXHU4RUZFXFx1OEYwQVwiXSxcbiAgICAgIFtcImI5NDBcIiwgXCJcXHU4RjlGXFx1OEZCMlxcdTkwNEJcXHU5MDRBXFx1OTA1M1xcdTkwNDJcXHU5MDU0XFx1OTAzQ1xcdTkwNTVcXHU5MDUwXFx1OTA0N1xcdTkwNEZcXHU5MDRFXFx1OTA0RFxcdTkwNTFcXHU5MDNFXFx1OTA0MVxcdTkxMTJcXHU5MTE3XFx1OTE2Q1xcdTkxNkFcXHU5MTY5XFx1OTFDOVxcdTkyMzdcXHU5MjU3XFx1OTIzOFxcdTkyM0RcXHU5MjQwXFx1OTIzRVxcdTkyNUJcXHU5MjRCXFx1OTI2NFxcdTkyNTFcXHU5MjM0XFx1OTI0OVxcdTkyNERcXHU5MjQ1XFx1OTIzOVxcdTkyM0ZcXHU5MjVBXFx1OTU5OFxcdTk2OThcXHU5Njk0XFx1OTY5NVxcdTk2Q0RcXHU5NkNCXFx1OTZDOVxcdTk2Q0FcXHU5NkY3XFx1OTZGQlxcdTk2RjlcXHU5NkY2XFx1OTc1NlxcdTk3NzRcXHU5Nzc2XFx1OTgxMFxcdTk4MTFcXHU5ODEzXFx1OTgwQVxcdTk4MTJcXHU5ODBDXFx1OThGQ1xcdTk4RjRcIl0sXG4gICAgICBbXCJiOWExXCIsIFwiXFx1OThGRFxcdTk4RkVcXHU5OUIzXFx1OTlCMVxcdTk5QjRcXHU5QUUxXFx1OUNFOVxcdTlFODJcXHU5RjBFXFx1OUYxM1xcdTlGMjBcXHU1MEU3XFx1NTBFRVxcdTUwRTVcXHU1MEQ2XFx1NTBFRFxcdTUwREFcXHU1MEQ1XFx1NTBDRlxcdTUwRDFcXHU1MEYxXFx1NTBDRVxcdTUwRTlcXHU1MTYyXFx1NTFGM1xcdTUyODNcXHU1MjgyXFx1NTMzMVxcdTUzQURcXHU1NUZFXFx1NTYwMFxcdTU2MUJcXHU1NjE3XFx1NTVGRFxcdTU2MTRcXHU1NjA2XFx1NTYwOVxcdTU2MERcXHU1NjBFXFx1NTVGN1xcdTU2MTZcXHU1NjFGXFx1NTYwOFxcdTU2MTBcXHU1NUY2XFx1NTcxOFxcdTU3MTZcXHU1ODc1XFx1NTg3RVxcdTU4ODNcXHU1ODkzXFx1NTg4QVxcdTU4NzlcXHU1ODg1XFx1NTg3RFxcdTU4RkRcXHU1OTI1XFx1NTkyMlxcdTU5MjRcXHU1OTZBXFx1NTk2OVxcdTVBRTFcXHU1QUU2XFx1NUFFOVxcdTVBRDdcXHU1QUQ2XFx1NUFEOFxcdTVBRTNcXHU1Qjc1XFx1NUJERVxcdTVCRTdcXHU1QkUxXFx1NUJFNVxcdTVCRTZcXHU1QkU4XFx1NUJFMlxcdTVCRTRcXHU1QkRGXFx1NUMwRFxcdTVDNjJcXHU1RDg0XFx1NUQ4N1xcdTVFNUJcXHU1RTYzXFx1NUU1NVxcdTVFNTdcXHU1RTU0XFx1NUVEM1xcdTVFRDZcXHU1RjBBXFx1NUY0NlxcdTVGNzBcXHU1RkI5XFx1NjE0N1wiXSxcbiAgICAgIFtcImJhNDBcIiwgXCJcXHU2MTNGXFx1NjE0QlxcdTYxNzdcXHU2MTYyXFx1NjE2M1xcdTYxNUZcXHU2MTVBXFx1NjE1OFxcdTYxNzVcXHU2MjJBXFx1NjQ4N1xcdTY0NThcXHU2NDU0XFx1NjRBNFxcdTY0NzhcXHU2NDVGXFx1NjQ3QVxcdTY0NTFcXHU2NDY3XFx1NjQzNFxcdTY0NkRcXHU2NDdCXFx1NjU3MlxcdTY1QTFcXHU2NUQ3XFx1NjVENlxcdTY2QTJcXHU2NkE4XFx1NjY5RFxcdTY5OUNcXHU2OUE4XFx1Njk5NVxcdTY5QzFcXHU2OUFFXFx1NjlEM1xcdTY5Q0JcXHU2OTlCXFx1NjlCN1xcdTY5QkJcXHU2OUFCXFx1NjlCNFxcdTY5RDBcXHU2OUNEXFx1NjlBRFxcdTY5Q0NcXHU2OUE2XFx1NjlDM1xcdTY5QTNcXHU2QjQ5XFx1NkI0Q1xcdTZDMzNcXHU2RjMzXFx1NkYxNFxcdTZFRkVcXHU2RjEzXFx1NkVGNFxcdTZGMjlcXHU2RjNFXFx1NkYyMFxcdTZGMkNcXHU2RjBGXFx1NkYwMlxcdTZGMjJcIl0sXG4gICAgICBbXCJiYWExXCIsIFwiXFx1NkVGRlxcdTZFRUZcXHU2RjA2XFx1NkYzMVxcdTZGMzhcXHU2RjMyXFx1NkYyM1xcdTZGMTVcXHU2RjJCXFx1NkYyRlxcdTZGODhcXHU2RjJBXFx1NkVFQ1xcdTZGMDFcXHU2RUYyXFx1NkVDQ1xcdTZFRjdcXHU3MTk0XFx1NzE5OVxcdTcxN0RcXHU3MThBXFx1NzE4NFxcdTcxOTJcXHU3MjNFXFx1NzI5MlxcdTcyOTZcXHU3MzQ0XFx1NzM1MFxcdTc0NjRcXHU3NDYzXFx1NzQ2QVxcdTc0NzBcXHU3NDZEXFx1NzUwNFxcdTc1OTFcXHU3NjI3XFx1NzYwRFxcdTc2MEJcXHU3NjA5XFx1NzYxM1xcdTc2RTFcXHU3NkUzXFx1Nzc4NFxcdTc3N0RcXHU3NzdGXFx1Nzc2MVxcdTc4QzFcXHU3ODlGXFx1NzhBN1xcdTc4QjNcXHU3OEE5XFx1NzhBM1xcdTc5OEVcXHU3OThGXFx1Nzk4RFxcdTdBMkVcXHU3QTMxXFx1N0FBQVxcdTdBQTlcXHU3QUVEXFx1N0FFRlxcdTdCQTFcXHU3Qjk1XFx1N0I4QlxcdTdCNzVcXHU3Qjk3XFx1N0I5RFxcdTdCOTRcXHU3QjhGXFx1N0JCOFxcdTdCODdcXHU3Qjg0XFx1N0NCOVxcdTdDQkRcXHU3Q0JFXFx1N0RCQlxcdTdEQjBcXHU3RDlDXFx1N0RCRFxcdTdEQkVcXHU3REEwXFx1N0RDQVxcdTdEQjRcXHU3REIyXFx1N0RCMVxcdTdEQkFcXHU3REEyXFx1N0RCRlxcdTdEQjVcXHU3REI4XFx1N0RBRFxcdTdERDJcXHU3REM3XFx1N0RBQ1wiXSxcbiAgICAgIFtcImJiNDBcIiwgXCJcXHU3RjcwXFx1N0ZFMFxcdTdGRTFcXHU3RkRGXFx1ODA1RVxcdTgwNUFcXHU4MDg3XFx1ODE1MFxcdTgxODBcXHU4MThGXFx1ODE4OFxcdTgxOEFcXHU4MTdGXFx1ODE4MlxcdTgxRTdcXHU4MUZBXFx1ODIwN1xcdTgyMTRcXHU4MjFFXFx1ODI0QlxcdTg0QzlcXHU4NEJGXFx1ODRDNlxcdTg0QzRcXHU4NDk5XFx1ODQ5RVxcdTg0QjJcXHU4NDlDXFx1ODRDQlxcdTg0QjhcXHU4NEMwXFx1ODREM1xcdTg0OTBcXHU4NEJDXFx1ODREMVxcdTg0Q0FcXHU4NzNGXFx1ODcxQ1xcdTg3M0JcXHU4NzIyXFx1ODcyNVxcdTg3MzRcXHU4NzE4XFx1ODc1NVxcdTg3MzdcXHU4NzI5XFx1ODhGM1xcdTg5MDJcXHU4OEY0XFx1ODhGOVxcdTg4RjhcXHU4OEZEXFx1ODhFOFxcdTg5MUFcXHU4OEVGXFx1OEFBNlxcdThBOENcXHU4QTlFXFx1OEFBM1xcdThBOERcXHU4QUExXFx1OEE5M1xcdThBQTRcIl0sXG4gICAgICBbXCJiYmExXCIsIFwiXFx1OEFBQVxcdThBQTVcXHU4QUE4XFx1OEE5OFxcdThBOTFcXHU4QTlBXFx1OEFBN1xcdThDNkFcXHU4QzhEXFx1OEM4Q1xcdThDRDNcXHU4Q0QxXFx1OENEMlxcdThENkJcXHU4RDk5XFx1OEQ5NVxcdThERkNcXHU4RjE0XFx1OEYxMlxcdThGMTVcXHU4RjEzXFx1OEZBM1xcdTkwNjBcXHU5MDU4XFx1OTA1Q1xcdTkwNjNcXHU5MDU5XFx1OTA1RVxcdTkwNjJcXHU5MDVEXFx1OTA1QlxcdTkxMTlcXHU5MTE4XFx1OTExRVxcdTkxNzVcXHU5MTc4XFx1OTE3N1xcdTkxNzRcXHU5Mjc4XFx1OTI4MFxcdTkyODVcXHU5Mjk4XFx1OTI5NlxcdTkyN0JcXHU5MjkzXFx1OTI5Q1xcdTkyQThcXHU5MjdDXFx1OTI5MVxcdTk1QTFcXHU5NUE4XFx1OTVBOVxcdTk1QTNcXHU5NUE1XFx1OTVBNFxcdTk2OTlcXHU5NjlDXFx1OTY5QlxcdTk2Q0NcXHU5NkQyXFx1OTcwMFxcdTk3N0NcXHU5Nzg1XFx1OTdGNlxcdTk4MTdcXHU5ODE4XFx1OThBRlxcdTk4QjFcXHU5OTAzXFx1OTkwNVxcdTk5MENcXHU5OTA5XFx1OTlDMVxcdTlBQUZcXHU5QUIwXFx1OUFFNlxcdTlCNDFcXHU5QjQyXFx1OUNGNFxcdTlDRjZcXHU5Q0YzXFx1OUVCQ1xcdTlGM0JcXHU5RjRBXFx1NTEwNFxcdTUxMDBcXHU1MEZCXFx1NTBGNVxcdTUwRjlcXHU1MTAyXFx1NTEwOFxcdTUxMDlcXHU1MTA1XFx1NTFEQ1wiXSxcbiAgICAgIFtcImJjNDBcIiwgXCJcXHU1Mjg3XFx1NTI4OFxcdTUyODlcXHU1MjhEXFx1NTI4QVxcdTUyRjBcXHU1M0IyXFx1NTYyRVxcdTU2M0JcXHU1NjM5XFx1NTYzMlxcdTU2M0ZcXHU1NjM0XFx1NTYyOVxcdTU2NTNcXHU1NjRFXFx1NTY1N1xcdTU2NzRcXHU1NjM2XFx1NTYyRlxcdTU2MzBcXHU1ODgwXFx1NTg5RlxcdTU4OUVcXHU1OEIzXFx1NTg5Q1xcdTU4QUVcXHU1OEE5XFx1NThBNlxcdTU5NkRcXHU1QjA5XFx1NUFGQlxcdTVCMEJcXHU1QUY1XFx1NUIwQ1xcdTVCMDhcXHU1QkVFXFx1NUJFQ1xcdTVCRTlcXHU1QkVCXFx1NUM2NFxcdTVDNjVcXHU1RDlEXFx1NUQ5NFxcdTVFNjJcXHU1RTVGXFx1NUU2MVxcdTVFRTJcXHU1RURBXFx1NUVERlxcdTVFRERcXHU1RUUzXFx1NUVFMFxcdTVGNDhcXHU1RjcxXFx1NUZCN1xcdTVGQjVcXHU2MTc2XFx1NjE2N1xcdTYxNkVcXHU2MTVEXFx1NjE1NVxcdTYxODJcIl0sXG4gICAgICBbXCJiY2ExXCIsIFwiXFx1NjE3Q1xcdTYxNzBcXHU2MTZCXFx1NjE3RVxcdTYxQTdcXHU2MTkwXFx1NjFBQlxcdTYxOEVcXHU2MUFDXFx1NjE5QVxcdTYxQTRcXHU2MTk0XFx1NjFBRVxcdTYyMkVcXHU2NDY5XFx1NjQ2RlxcdTY0NzlcXHU2NDlFXFx1NjRCMlxcdTY0ODhcXHU2NDkwXFx1NjRCMFxcdTY0QTVcXHU2NDkzXFx1NjQ5NVxcdTY0QTlcXHU2NDkyXFx1NjRBRVxcdTY0QURcXHU2NEFCXFx1NjQ5QVxcdTY0QUNcXHU2NDk5XFx1NjRBMlxcdTY0QjNcXHU2NTc1XFx1NjU3N1xcdTY1NzhcXHU2NkFFXFx1NjZBQlxcdTY2QjRcXHU2NkIxXFx1NkEyM1xcdTZBMUZcXHU2OUU4XFx1NkEwMVxcdTZBMUVcXHU2QTE5XFx1NjlGRFxcdTZBMjFcXHU2QTEzXFx1NkEwQVxcdTY5RjNcXHU2QTAyXFx1NkEwNVxcdTY5RURcXHU2QTExXFx1NkI1MFxcdTZCNEVcXHU2QkE0XFx1NkJDNVxcdTZCQzZcXHU2RjNGXFx1NkY3Q1xcdTZGODRcXHU2RjUxXFx1NkY2NlxcdTZGNTRcXHU2Rjg2XFx1NkY2RFxcdTZGNUJcXHU2Rjc4XFx1NkY2RVxcdTZGOEVcXHU2RjdBXFx1NkY3MFxcdTZGNjRcXHU2Rjk3XFx1NkY1OFxcdTZFRDVcXHU2RjZGXFx1NkY2MFxcdTZGNUZcXHU3MTlGXFx1NzFBQ1xcdTcxQjFcXHU3MUE4XFx1NzI1NlxcdTcyOUJcXHU3MzRFXFx1NzM1N1xcdTc0NjlcXHU3NDhCXFx1NzQ4M1wiXSxcbiAgICAgIFtcImJkNDBcIiwgXCJcXHU3NDdFXFx1NzQ4MFxcdTc1N0ZcXHU3NjIwXFx1NzYyOVxcdTc2MUZcXHU3NjI0XFx1NzYyNlxcdTc2MjFcXHU3NjIyXFx1NzY5QVxcdTc2QkFcXHU3NkU0XFx1Nzc4RVxcdTc3ODdcXHU3NzhDXFx1Nzc5MVxcdTc3OEJcXHU3OENCXFx1NzhDNVxcdTc4QkFcXHU3OENBXFx1NzhCRVxcdTc4RDVcXHU3OEJDXFx1NzhEMFxcdTdBM0ZcXHU3QTNDXFx1N0E0MFxcdTdBM0RcXHU3QTM3XFx1N0EzQlxcdTdBQUZcXHU3QUFFXFx1N0JBRFxcdTdCQjFcXHU3QkM0XFx1N0JCNFxcdTdCQzZcXHU3QkM3XFx1N0JDMVxcdTdCQTBcXHU3QkNDXFx1N0NDQVxcdTdERTBcXHU3REY0XFx1N0RFRlxcdTdERkJcXHU3REQ4XFx1N0RFQ1xcdTdERERcXHU3REU4XFx1N0RFM1xcdTdEREFcXHU3RERFXFx1N0RFOVxcdTdEOUVcXHU3REQ5XFx1N0RGMlxcdTdERjlcXHU3Rjc1XFx1N0Y3N1xcdTdGQUZcIl0sXG4gICAgICBbXCJiZGExXCIsIFwiXFx1N0ZFOVxcdTgwMjZcXHU4MTlCXFx1ODE5Q1xcdTgxOURcXHU4MUEwXFx1ODE5QVxcdTgxOThcXHU4NTE3XFx1ODUzRFxcdTg1MUFcXHU4NEVFXFx1ODUyQ1xcdTg1MkRcXHU4NTEzXFx1ODUxMVxcdTg1MjNcXHU4NTIxXFx1ODUxNFxcdTg0RUNcXHU4NTI1XFx1ODRGRlxcdTg1MDZcXHU4NzgyXFx1ODc3NFxcdTg3NzZcXHU4NzYwXFx1ODc2NlxcdTg3NzhcXHU4NzY4XFx1ODc1OVxcdTg3NTdcXHU4NzRDXFx1ODc1M1xcdTg4NUJcXHU4ODVEXFx1ODkxMFxcdTg5MDdcXHU4OTEyXFx1ODkxM1xcdTg5MTVcXHU4OTBBXFx1OEFCQ1xcdThBRDJcXHU4QUM3XFx1OEFDNFxcdThBOTVcXHU4QUNCXFx1OEFGOFxcdThBQjJcXHU4QUM5XFx1OEFDMlxcdThBQkZcXHU4QUIwXFx1OEFENlxcdThBQ0RcXHU4QUI2XFx1OEFCOVxcdThBREJcXHU4QzRDXFx1OEM0RVxcdThDNkNcXHU4Q0UwXFx1OENERVxcdThDRTZcXHU4Q0U0XFx1OENFQ1xcdThDRURcXHU4Q0UyXFx1OENFM1xcdThDRENcXHU4Q0VBXFx1OENFMVxcdThENkRcXHU4RDlGXFx1OERBM1xcdThFMkJcXHU4RTEwXFx1OEUxRFxcdThFMjJcXHU4RTBGXFx1OEUyOVxcdThFMUZcXHU4RTIxXFx1OEUxRVxcdThFQkFcXHU4RjFEXFx1OEYxQlxcdThGMUZcXHU4RjI5XFx1OEYyNlxcdThGMkFcXHU4RjFDXFx1OEYxRVwiXSxcbiAgICAgIFtcImJlNDBcIiwgXCJcXHU4RjI1XFx1OTA2OVxcdTkwNkVcXHU5MDY4XFx1OTA2RFxcdTkwNzdcXHU5MTMwXFx1OTEyRFxcdTkxMjdcXHU5MTMxXFx1OTE4N1xcdTkxODlcXHU5MThCXFx1OTE4M1xcdTkyQzVcXHU5MkJCXFx1OTJCN1xcdTkyRUFcXHU5MkFDXFx1OTJFNFxcdTkyQzFcXHU5MkIzXFx1OTJCQ1xcdTkyRDJcXHU5MkM3XFx1OTJGMFxcdTkyQjJcXHU5NUFEXFx1OTVCMVxcdTk3MDRcXHU5NzA2XFx1OTcwN1xcdTk3MDlcXHU5NzYwXFx1OTc4RFxcdTk3OEJcXHU5NzhGXFx1OTgyMVxcdTk4MkJcXHU5ODFDXFx1OThCM1xcdTk5MEFcXHU5OTEzXFx1OTkxMlxcdTk5MThcXHU5OUREXFx1OTlEMFxcdTk5REZcXHU5OURCXFx1OTlEMVxcdTk5RDVcXHU5OUQyXFx1OTlEOVxcdTlBQjdcXHU5QUVFXFx1OUFFRlxcdTlCMjdcXHU5QjQ1XFx1OUI0NFxcdTlCNzdcXHU5QjZGXFx1OUQwNlxcdTlEMDlcIl0sXG4gICAgICBbXCJiZWExXCIsIFwiXFx1OUQwM1xcdTlFQTlcXHU5RUJFXFx1OUVDRVxcdTU4QThcXHU5RjUyXFx1NTExMlxcdTUxMThcXHU1MTE0XFx1NTExMFxcdTUxMTVcXHU1MTgwXFx1NTFBQVxcdTUxRERcXHU1MjkxXFx1NTI5M1xcdTUyRjNcXHU1NjU5XFx1NTY2QlxcdTU2NzlcXHU1NjY5XFx1NTY2NFxcdTU2NzhcXHU1NjZBXFx1NTY2OFxcdTU2NjVcXHU1NjcxXFx1NTY2RlxcdTU2NkNcXHU1NjYyXFx1NTY3NlxcdTU4QzFcXHU1OEJFXFx1NThDN1xcdTU4QzVcXHU1OTZFXFx1NUIxRFxcdTVCMzRcXHU1Qjc4XFx1NUJGMFxcdTVDMEVcXHU1RjRBXFx1NjFCMlxcdTYxOTFcXHU2MUE5XFx1NjE4QVxcdTYxQ0RcXHU2MUI2XFx1NjFCRVxcdTYxQ0FcXHU2MUM4XFx1NjIzMFxcdTY0QzVcXHU2NEMxXFx1NjRDQlxcdTY0QkJcXHU2NEJDXFx1NjREQVxcdTY0QzRcXHU2NEM3XFx1NjRDMlxcdTY0Q0RcXHU2NEJGXFx1NjREMlxcdTY0RDRcXHU2NEJFXFx1NjU3NFxcdTY2QzZcXHU2NkM5XFx1NjZCOVxcdTY2QzRcXHU2NkM3XFx1NjZCOFxcdTZBM0RcXHU2QTM4XFx1NkEzQVxcdTZBNTlcXHU2QTZCXFx1NkE1OFxcdTZBMzlcXHU2QTQ0XFx1NkE2MlxcdTZBNjFcXHU2QTRCXFx1NkE0N1xcdTZBMzVcXHU2QTVGXFx1NkE0OFxcdTZCNTlcXHU2Qjc3XFx1NkMwNVxcdTZGQzJcXHU2RkIxXFx1NkZBMVwiXSxcbiAgICAgIFtcImJmNDBcIiwgXCJcXHU2RkMzXFx1NkZBNFxcdTZGQzFcXHU2RkE3XFx1NkZCM1xcdTZGQzBcXHU2RkI5XFx1NkZCNlxcdTZGQTZcXHU2RkEwXFx1NkZCNFxcdTcxQkVcXHU3MUM5XFx1NzFEMFxcdTcxRDJcXHU3MUM4XFx1NzFENVxcdTcxQjlcXHU3MUNFXFx1NzFEOVxcdTcxRENcXHU3MUMzXFx1NzFDNFxcdTczNjhcXHU3NDlDXFx1NzRBM1xcdTc0OThcXHU3NDlGXFx1NzQ5RVxcdTc0RTJcXHU3NTBDXFx1NzUwRFxcdTc2MzRcXHU3NjM4XFx1NzYzQVxcdTc2RTdcXHU3NkU1XFx1NzdBMFxcdTc3OUVcXHU3NzlGXFx1NzdBNVxcdTc4RThcXHU3OERBXFx1NzhFQ1xcdTc4RTdcXHU3OUE2XFx1N0E0RFxcdTdBNEVcXHU3QTQ2XFx1N0E0Q1xcdTdBNEJcXHU3QUJBXFx1N0JEOVxcdTdDMTFcXHU3QkM5XFx1N0JFNFxcdTdCREJcXHU3QkUxXFx1N0JFOVxcdTdCRTZcXHU3Q0Q1XFx1N0NENlxcdTdFMEFcIl0sXG4gICAgICBbXCJiZmExXCIsIFwiXFx1N0UxMVxcdTdFMDhcXHU3RTFCXFx1N0UyM1xcdTdFMUVcXHU3RTFEXFx1N0UwOVxcdTdFMTBcXHU3Rjc5XFx1N0ZCMlxcdTdGRjBcXHU3RkYxXFx1N0ZFRVxcdTgwMjhcXHU4MUIzXFx1ODFBOVxcdTgxQThcXHU4MUZCXFx1ODIwOFxcdTgyNThcXHU4MjU5XFx1ODU0QVxcdTg1NTlcXHU4NTQ4XFx1ODU2OFxcdTg1NjlcXHU4NTQzXFx1ODU0OVxcdTg1NkRcXHU4NTZBXFx1ODU1RVxcdTg3ODNcXHU4NzlGXFx1ODc5RVxcdTg3QTJcXHU4NzhEXFx1ODg2MVxcdTg5MkFcXHU4OTMyXFx1ODkyNVxcdTg5MkJcXHU4OTIxXFx1ODlBQVxcdTg5QTZcXHU4QUU2XFx1OEFGQVxcdThBRUJcXHU4QUYxXFx1OEIwMFxcdThBRENcXHU4QUU3XFx1OEFFRVxcdThBRkVcXHU4QjAxXFx1OEIwMlxcdThBRjdcXHU4QUVEXFx1OEFGM1xcdThBRjZcXHU4QUZDXFx1OEM2QlxcdThDNkRcXHU4QzkzXFx1OENGNFxcdThFNDRcXHU4RTMxXFx1OEUzNFxcdThFNDJcXHU4RTM5XFx1OEUzNVxcdThGM0JcXHU4RjJGXFx1OEYzOFxcdThGMzNcXHU4RkE4XFx1OEZBNlxcdTkwNzVcXHU5MDc0XFx1OTA3OFxcdTkwNzJcXHU5MDdDXFx1OTA3QVxcdTkxMzRcXHU5MTkyXFx1OTMyMFxcdTkzMzZcXHU5MkY4XFx1OTMzM1xcdTkzMkZcXHU5MzIyXFx1OTJGQ1xcdTkzMkJcXHU5MzA0XFx1OTMxQVwiXSxcbiAgICAgIFtcImMwNDBcIiwgXCJcXHU5MzEwXFx1OTMyNlxcdTkzMjFcXHU5MzE1XFx1OTMyRVxcdTkzMTlcXHU5NUJCXFx1OTZBN1xcdTk2QThcXHU5NkFBXFx1OTZENVxcdTk3MEVcXHU5NzExXFx1OTcxNlxcdTk3MERcXHU5NzEzXFx1OTcwRlxcdTk3NUJcXHU5NzVDXFx1OTc2NlxcdTk3OThcXHU5ODMwXFx1OTgzOFxcdTk4M0JcXHU5ODM3XFx1OTgyRFxcdTk4MzlcXHU5ODI0XFx1OTkxMFxcdTk5MjhcXHU5OTFFXFx1OTkxQlxcdTk5MjFcXHU5OTFBXFx1OTlFRFxcdTk5RTJcXHU5OUYxXFx1OUFCOFxcdTlBQkNcXHU5QUZCXFx1OUFFRFxcdTlCMjhcXHU5QjkxXFx1OUQxNVxcdTlEMjNcXHU5RDI2XFx1OUQyOFxcdTlEMTJcXHU5RDFCXFx1OUVEOFxcdTlFRDRcXHU5RjhEXFx1OUY5Q1xcdTUxMkFcXHU1MTFGXFx1NTEyMVxcdTUxMzJcXHU1MkY1XFx1NTY4RVxcdTU2ODBcXHU1NjkwXFx1NTY4NVxcdTU2ODdcIl0sXG4gICAgICBbXCJjMGExXCIsIFwiXFx1NTY4RlxcdTU4RDVcXHU1OEQzXFx1NThEMVxcdTU4Q0VcXHU1QjMwXFx1NUIyQVxcdTVCMjRcXHU1QjdBXFx1NUMzN1xcdTVDNjhcXHU1REJDXFx1NURCQVxcdTVEQkRcXHU1REI4XFx1NUU2QlxcdTVGNENcXHU1RkJEXFx1NjFDOVxcdTYxQzJcXHU2MUM3XFx1NjFFNlxcdTYxQ0JcXHU2MjMyXFx1NjIzNFxcdTY0Q0VcXHU2NENBXFx1NjREOFxcdTY0RTBcXHU2NEYwXFx1NjRFNlxcdTY0RUNcXHU2NEYxXFx1NjRFMlxcdTY0RURcXHU2NTgyXFx1NjU4M1xcdTY2RDlcXHU2NkQ2XFx1NkE4MFxcdTZBOTRcXHU2QTg0XFx1NkFBMlxcdTZBOUNcXHU2QURCXFx1NkFBM1xcdTZBN0VcXHU2QTk3XFx1NkE5MFxcdTZBQTBcXHU2QjVDXFx1NkJBRVxcdTZCREFcXHU2QzA4XFx1NkZEOFxcdTZGRjFcXHU2RkRGXFx1NkZFMFxcdTZGREJcXHU2RkU0XFx1NkZFQlxcdTZGRUZcXHU2RjgwXFx1NkZFQ1xcdTZGRTFcXHU2RkU5XFx1NkZENVxcdTZGRUVcXHU2RkYwXFx1NzFFN1xcdTcxREZcXHU3MUVFXFx1NzFFNlxcdTcxRTVcXHU3MUVEXFx1NzFFQ1xcdTcxRjRcXHU3MUUwXFx1NzIzNVxcdTcyNDZcXHU3MzcwXFx1NzM3MlxcdTc0QTlcXHU3NEIwXFx1NzRBNlxcdTc0QThcXHU3NjQ2XFx1NzY0MlxcdTc2NENcXHU3NkVBXFx1NzdCM1xcdTc3QUFcXHU3N0IwXFx1NzdBQ1wiXSxcbiAgICAgIFtcImMxNDBcIiwgXCJcXHU3N0E3XFx1NzdBRFxcdTc3RUZcXHU3OEY3XFx1NzhGQVxcdTc4RjRcXHU3OEVGXFx1NzkwMVxcdTc5QTdcXHU3OUFBXFx1N0E1N1xcdTdBQkZcXHU3QzA3XFx1N0MwRFxcdTdCRkVcXHU3QkY3XFx1N0MwQ1xcdTdCRTBcXHU3Q0UwXFx1N0NEQ1xcdTdDREVcXHU3Q0UyXFx1N0NERlxcdTdDRDlcXHU3Q0REXFx1N0UyRVxcdTdFM0VcXHU3RTQ2XFx1N0UzN1xcdTdFMzJcXHU3RTQzXFx1N0UyQlxcdTdFM0RcXHU3RTMxXFx1N0U0NVxcdTdFNDFcXHU3RTM0XFx1N0UzOVxcdTdFNDhcXHU3RTM1XFx1N0UzRlxcdTdFMkZcXHU3RjQ0XFx1N0ZGM1xcdTdGRkNcXHU4MDcxXFx1ODA3MlxcdTgwNzBcXHU4MDZGXFx1ODA3M1xcdTgxQzZcXHU4MUMzXFx1ODFCQVxcdTgxQzJcXHU4MUMwXFx1ODFCRlxcdTgxQkRcXHU4MUM5XFx1ODFCRVxcdTgxRThcXHU4MjA5XFx1ODI3MVxcdTg1QUFcIl0sXG4gICAgICBbXCJjMWExXCIsIFwiXFx1ODU4NFxcdTg1N0VcXHU4NTlDXFx1ODU5MVxcdTg1OTRcXHU4NUFGXFx1ODU5QlxcdTg1ODdcXHU4NUE4XFx1ODU4QVxcdTg2NjdcXHU4N0MwXFx1ODdEMVxcdTg3QjNcXHU4N0QyXFx1ODdDNlxcdTg3QUJcXHU4N0JCXFx1ODdCQVxcdTg3QzhcXHU4N0NCXFx1ODkzQlxcdTg5MzZcXHU4OTQ0XFx1ODkzOFxcdTg5M0RcXHU4OUFDXFx1OEIwRVxcdThCMTdcXHU4QjE5XFx1OEIxQlxcdThCMEFcXHU4QjIwXFx1OEIxRFxcdThCMDRcXHU4QjEwXFx1OEM0MVxcdThDM0ZcXHU4QzczXFx1OENGQVxcdThDRkRcXHU4Q0ZDXFx1OENGOFxcdThDRkJcXHU4REE4XFx1OEU0OVxcdThFNEJcXHU4RTQ4XFx1OEU0QVxcdThGNDRcXHU4RjNFXFx1OEY0MlxcdThGNDVcXHU4RjNGXFx1OTA3RlxcdTkwN0RcXHU5MDg0XFx1OTA4MVxcdTkwODJcXHU5MDgwXFx1OTEzOVxcdTkxQTNcXHU5MTlFXFx1OTE5Q1xcdTkzNERcXHU5MzgyXFx1OTMyOFxcdTkzNzVcXHU5MzRBXFx1OTM2NVxcdTkzNEJcXHU5MzE4XFx1OTM3RVxcdTkzNkNcXHU5MzVCXFx1OTM3MFxcdTkzNUFcXHU5MzU0XFx1OTVDQVxcdTk1Q0JcXHU5NUNDXFx1OTVDOFxcdTk1QzZcXHU5NkIxXFx1OTZCOFxcdTk2RDZcXHU5NzFDXFx1OTcxRVxcdTk3QTBcXHU5N0QzXFx1OTg0NlxcdTk4QjZcXHU5OTM1XFx1OUEwMVwiXSxcbiAgICAgIFtcImMyNDBcIiwgXCJcXHU5OUZGXFx1OUJBRVxcdTlCQUJcXHU5QkFBXFx1OUJBRFxcdTlEM0JcXHU5RDNGXFx1OUU4QlxcdTlFQ0ZcXHU5RURFXFx1OUVEQ1xcdTlFRERcXHU5RURCXFx1OUYzRVxcdTlGNEJcXHU1M0UyXFx1NTY5NVxcdTU2QUVcXHU1OEQ5XFx1NThEOFxcdTVCMzhcXHU1RjVEXFx1NjFFM1xcdTYyMzNcXHU2NEY0XFx1NjRGMlxcdTY0RkVcXHU2NTA2XFx1NjRGQVxcdTY0RkJcXHU2NEY3XFx1NjVCN1xcdTY2RENcXHU2NzI2XFx1NkFCM1xcdTZBQUNcXHU2QUMzXFx1NkFCQlxcdTZBQjhcXHU2QUMyXFx1NkFBRVxcdTZBQUZcXHU2QjVGXFx1NkI3OFxcdTZCQUZcXHU3MDA5XFx1NzAwQlxcdTZGRkVcXHU3MDA2XFx1NkZGQVxcdTcwMTFcXHU3MDBGXFx1NzFGQlxcdTcxRkNcXHU3MUZFXFx1NzFGOFxcdTczNzdcXHU3Mzc1XFx1NzRBN1xcdTc0QkZcXHU3NTE1XFx1NzY1NlxcdTc2NThcIl0sXG4gICAgICBbXCJjMmExXCIsIFwiXFx1NzY1MlxcdTc3QkRcXHU3N0JGXFx1NzdCQlxcdTc3QkNcXHU3OTBFXFx1NzlBRVxcdTdBNjFcXHU3QTYyXFx1N0E2MFxcdTdBQzRcXHU3QUM1XFx1N0MyQlxcdTdDMjdcXHU3QzJBXFx1N0MxRVxcdTdDMjNcXHU3QzIxXFx1N0NFN1xcdTdFNTRcXHU3RTU1XFx1N0U1RVxcdTdFNUFcXHU3RTYxXFx1N0U1MlxcdTdFNTlcXHU3RjQ4XFx1N0ZGOVxcdTdGRkJcXHU4MDc3XFx1ODA3NlxcdTgxQ0RcXHU4MUNGXFx1ODIwQVxcdTg1Q0ZcXHU4NUE5XFx1ODVDRFxcdTg1RDBcXHU4NUM5XFx1ODVCMFxcdTg1QkFcXHU4NUI5XFx1ODVBNlxcdTg3RUZcXHU4N0VDXFx1ODdGMlxcdTg3RTBcXHU4OTg2XFx1ODlCMlxcdTg5RjRcXHU4QjI4XFx1OEIzOVxcdThCMkNcXHU4QjJCXFx1OEM1MFxcdThEMDVcXHU4RTU5XFx1OEU2M1xcdThFNjZcXHU4RTY0XFx1OEU1RlxcdThFNTVcXHU4RUMwXFx1OEY0OVxcdThGNERcXHU5MDg3XFx1OTA4M1xcdTkwODhcXHU5MUFCXFx1OTFBQ1xcdTkxRDBcXHU5Mzk0XFx1OTM4QVxcdTkzOTZcXHU5M0EyXFx1OTNCM1xcdTkzQUVcXHU5M0FDXFx1OTNCMFxcdTkzOThcXHU5MzlBXFx1OTM5N1xcdTk1RDRcXHU5NUQ2XFx1OTVEMFxcdTk1RDVcXHU5NkUyXFx1OTZEQ1xcdTk2RDlcXHU5NkRCXFx1OTZERVxcdTk3MjRcXHU5N0EzXFx1OTdBNlwiXSxcbiAgICAgIFtcImMzNDBcIiwgXCJcXHU5N0FEXFx1OTdGOVxcdTk4NERcXHU5ODRGXFx1OTg0Q1xcdTk4NEVcXHU5ODUzXFx1OThCQVxcdTk5M0VcXHU5OTNGXFx1OTkzRFxcdTk5MkVcXHU5OUE1XFx1OUEwRVxcdTlBQzFcXHU5QjAzXFx1OUIwNlxcdTlCNEZcXHU5QjRFXFx1OUI0RFxcdTlCQ0FcXHU5QkM5XFx1OUJGRFxcdTlCQzhcXHU5QkMwXFx1OUQ1MVxcdTlENURcXHU5RDYwXFx1OUVFMFxcdTlGMTVcXHU5RjJDXFx1NTEzM1xcdTU2QTVcXHU1OERFXFx1NThERlxcdTU4RTJcXHU1QkY1XFx1OUY5MFxcdTVFRUNcXHU2MUYyXFx1NjFGN1xcdTYxRjZcXHU2MUY1XFx1NjUwMFxcdTY1MEZcXHU2NkUwXFx1NjZERFxcdTZBRTVcXHU2QUREXFx1NkFEQVxcdTZBRDNcXHU3MDFCXFx1NzAxRlxcdTcwMjhcXHU3MDFBXFx1NzAxRFxcdTcwMTVcXHU3MDE4XFx1NzIwNlxcdTcyMERcXHU3MjU4XFx1NzJBMlxcdTczNzhcIl0sXG4gICAgICBbXCJjM2ExXCIsIFwiXFx1NzM3QVxcdTc0QkRcXHU3NENBXFx1NzRFM1xcdTc1ODdcXHU3NTg2XFx1NzY1RlxcdTc2NjFcXHU3N0M3XFx1NzkxOVxcdTc5QjFcXHU3QTZCXFx1N0E2OVxcdTdDM0VcXHU3QzNGXFx1N0MzOFxcdTdDM0RcXHU3QzM3XFx1N0M0MFxcdTdFNkJcXHU3RTZEXFx1N0U3OVxcdTdFNjlcXHU3RTZBXFx1N0Y4NVxcdTdFNzNcXHU3RkI2XFx1N0ZCOVxcdTdGQjhcXHU4MUQ4XFx1ODVFOVxcdTg1RERcXHU4NUVBXFx1ODVENVxcdTg1RTRcXHU4NUU1XFx1ODVGN1xcdTg3RkJcXHU4ODA1XFx1ODgwRFxcdTg3RjlcXHU4N0ZFXFx1ODk2MFxcdTg5NUZcXHU4OTU2XFx1ODk1RVxcdThCNDFcXHU4QjVDXFx1OEI1OFxcdThCNDlcXHU4QjVBXFx1OEI0RVxcdThCNEZcXHU4QjQ2XFx1OEI1OVxcdThEMDhcXHU4RDBBXFx1OEU3Q1xcdThFNzJcXHU4RTg3XFx1OEU3NlxcdThFNkNcXHU4RTdBXFx1OEU3NFxcdThGNTRcXHU4RjRFXFx1OEZBRFxcdTkwOEFcXHU5MDhCXFx1OTFCMVxcdTkxQUVcXHU5M0UxXFx1OTNEMVxcdTkzREZcXHU5M0MzXFx1OTNDOFxcdTkzRENcXHU5M0REXFx1OTNENlxcdTkzRTJcXHU5M0NEXFx1OTNEOFxcdTkzRTRcXHU5M0Q3XFx1OTNFOFxcdTk1RENcXHU5NkI0XFx1OTZFM1xcdTk3MkFcXHU5NzI3XFx1OTc2MVxcdTk3RENcXHU5N0ZCXFx1OTg1RVwiXSxcbiAgICAgIFtcImM0NDBcIiwgXCJcXHU5ODU4XFx1OTg1QlxcdTk4QkNcXHU5OTQ1XFx1OTk0OVxcdTlBMTZcXHU5QTE5XFx1OUIwRFxcdTlCRThcXHU5QkU3XFx1OUJENlxcdTlCREJcXHU5RDg5XFx1OUQ2MVxcdTlENzJcXHU5RDZBXFx1OUQ2Q1xcdTlFOTJcXHU5RTk3XFx1OUU5M1xcdTlFQjRcXHU1MkY4XFx1NTZBOFxcdTU2QjdcXHU1NkI2XFx1NTZCNFxcdTU2QkNcXHU1OEU0XFx1NUI0MFxcdTVCNDNcXHU1QjdEXFx1NUJGNlxcdTVEQzlcXHU2MUY4XFx1NjFGQVxcdTY1MThcXHU2NTE0XFx1NjUxOVxcdTY2RTZcXHU2NzI3XFx1NkFFQ1xcdTcwM0VcXHU3MDMwXFx1NzAzMlxcdTcyMTBcXHU3MzdCXFx1NzRDRlxcdTc2NjJcXHU3NjY1XFx1NzkyNlxcdTc5MkFcXHU3OTJDXFx1NzkyQlxcdTdBQzdcXHU3QUY2XFx1N0M0Q1xcdTdDNDNcXHU3QzREXFx1N0NFRlxcdTdDRjBcXHU4RkFFXFx1N0U3RFxcdTdFN0NcIl0sXG4gICAgICBbXCJjNGExXCIsIFwiXFx1N0U4MlxcdTdGNENcXHU4MDAwXFx1ODFEQVxcdTgyNjZcXHU4NUZCXFx1ODVGOVxcdTg2MTFcXHU4NUZBXFx1ODYwNlxcdTg2MEJcXHU4NjA3XFx1ODYwQVxcdTg4MTRcXHU4ODE1XFx1ODk2NFxcdTg5QkFcXHU4OUY4XFx1OEI3MFxcdThCNkNcXHU4QjY2XFx1OEI2RlxcdThCNUZcXHU4QjZCXFx1OEQwRlxcdThEMERcXHU4RTg5XFx1OEU4MVxcdThFODVcXHU4RTgyXFx1OTFCNFxcdTkxQ0JcXHU5NDE4XFx1OTQwM1xcdTkzRkRcXHU5NUUxXFx1OTczMFxcdTk4QzRcXHU5OTUyXFx1OTk1MVxcdTk5QThcXHU5QTJCXFx1OUEzMFxcdTlBMzdcXHU5QTM1XFx1OUMxM1xcdTlDMERcXHU5RTc5XFx1OUVCNVxcdTlFRThcXHU5RjJGXFx1OUY1RlxcdTlGNjNcXHU5RjYxXFx1NTEzN1xcdTUxMzhcXHU1NkMxXFx1NTZDMFxcdTU2QzJcXHU1OTE0XFx1NUM2Q1xcdTVEQ0RcXHU2MUZDXFx1NjFGRVxcdTY1MURcXHU2NTFDXFx1NjU5NVxcdTY2RTlcXHU2QUZCXFx1NkIwNFxcdTZBRkFcXHU2QkIyXFx1NzA0Q1xcdTcyMUJcXHU3MkE3XFx1NzRENlxcdTc0RDRcXHU3NjY5XFx1NzdEM1xcdTdDNTBcXHU3RThGXFx1N0U4Q1xcdTdGQkNcXHU4NjE3XFx1ODYyRFxcdTg2MUFcXHU4ODIzXFx1ODgyMlxcdTg4MjFcXHU4ODFGXFx1ODk2QVxcdTg5NkNcXHU4OUJEXFx1OEI3NFwiXSxcbiAgICAgIFtcImM1NDBcIiwgXCJcXHU4Qjc3XFx1OEI3RFxcdThEMTNcXHU4RThBXFx1OEU4RFxcdThFOEJcXHU4RjVGXFx1OEZBRlxcdTkxQkFcXHU5NDJFXFx1OTQzM1xcdTk0MzVcXHU5NDNBXFx1OTQzOFxcdTk0MzJcXHU5NDJCXFx1OTVFMlxcdTk3MzhcXHU5NzM5XFx1OTczMlxcdTk3RkZcXHU5ODY3XFx1OTg2NVxcdTk5NTdcXHU5QTQ1XFx1OUE0M1xcdTlBNDBcXHU5QTNFXFx1OUFDRlxcdTlCNTRcXHU5QjUxXFx1OUMyRFxcdTlDMjVcXHU5REFGXFx1OURCNFxcdTlEQzJcXHU5REI4XFx1OUU5RFxcdTlFRUZcXHU5RjE5XFx1OUY1Q1xcdTlGNjZcXHU5RjY3XFx1NTEzQ1xcdTUxM0JcXHU1NkM4XFx1NTZDQVxcdTU2QzlcXHU1QjdGXFx1NURENFxcdTVERDJcXHU1RjRFXFx1NjFGRlxcdTY1MjRcXHU2QjBBXFx1NkI2MVxcdTcwNTFcXHU3MDU4XFx1NzM4MFxcdTc0RTRcXHU3NThBXFx1NzY2RVxcdTc2NkNcIl0sXG4gICAgICBbXCJjNWExXCIsIFwiXFx1NzlCM1xcdTdDNjBcXHU3QzVGXFx1ODA3RVxcdTgwN0RcXHU4MURGXFx1ODk3MlxcdTg5NkZcXHU4OUZDXFx1OEI4MFxcdThEMTZcXHU4RDE3XFx1OEU5MVxcdThFOTNcXHU4RjYxXFx1OTE0OFxcdTk0NDRcXHU5NDUxXFx1OTQ1MlxcdTk3M0RcXHU5NzNFXFx1OTdDM1xcdTk3QzFcXHU5ODZCXFx1OTk1NVxcdTlBNTVcXHU5QTREXFx1OUFEMlxcdTlCMUFcXHU5QzQ5XFx1OUMzMVxcdTlDM0VcXHU5QzNCXFx1OUREM1xcdTlERDdcXHU5RjM0XFx1OUY2Q1xcdTlGNkFcXHU5Rjk0XFx1NTZDQ1xcdTVERDZcXHU2MjAwXFx1NjUyM1xcdTY1MkJcXHU2NTJBXFx1NjZFQ1xcdTZCMTBcXHU3NERBXFx1N0FDQVxcdTdDNjRcXHU3QzYzXFx1N0M2NVxcdTdFOTNcXHU3RTk2XFx1N0U5NFxcdTgxRTJcXHU4NjM4XFx1ODYzRlxcdTg4MzFcXHU4QjhBXFx1OTA5MFxcdTkwOEZcXHU5NDYzXFx1OTQ2MFxcdTk0NjRcXHU5NzY4XFx1OTg2RlxcdTk5NUNcXHU5QTVBXFx1OUE1QlxcdTlBNTdcXHU5QUQzXFx1OUFENFxcdTlBRDFcXHU5QzU0XFx1OUM1N1xcdTlDNTZcXHU5REU1XFx1OUU5RlxcdTlFRjRcXHU1NkQxXFx1NThFOVxcdTY1MkNcXHU3MDVFXFx1NzY3MVxcdTc2NzJcXHU3N0Q3XFx1N0Y1MFxcdTdGODhcXHU4ODM2XFx1ODgzOVxcdTg4NjJcXHU4QjkzXFx1OEI5MlwiXSxcbiAgICAgIFtcImM2NDBcIiwgXCJcXHU4Qjk2XFx1ODI3N1xcdThEMUJcXHU5MUMwXFx1OTQ2QVxcdTk3NDJcXHU5NzQ4XFx1OTc0NFxcdTk3QzZcXHU5ODcwXFx1OUE1RlxcdTlCMjJcXHU5QjU4XFx1OUM1RlxcdTlERjlcXHU5REZBXFx1OUU3Q1xcdTlFN0RcXHU5RjA3XFx1OUY3N1xcdTlGNzJcXHU1RUYzXFx1NkIxNlxcdTcwNjNcXHU3QzZDXFx1N0M2RVxcdTg4M0JcXHU4OUMwXFx1OEVBMVxcdTkxQzFcXHU5NDcyXFx1OTQ3MFxcdTk4NzFcXHU5OTVFXFx1OUFENlxcdTlCMjNcXHU5RUNDXFx1NzA2NFxcdTc3REFcXHU4QjlBXFx1OTQ3N1xcdTk3QzlcXHU5QTYyXFx1OUE2NVxcdTdFOUNcXHU4QjlDXFx1OEVBQVxcdTkxQzVcXHU5NDdEXFx1OTQ3RVxcdTk0N0NcXHU5Qzc3XFx1OUM3OFxcdTlFRjdcXHU4QzU0XFx1OTQ3RlxcdTlFMUFcXHU3MjI4XFx1OUE2QVxcdTlCMzFcXHU5RTFCXFx1OUUxRVxcdTdDNzJcIl0sXG4gICAgICBbXCJjOTQwXCIsIFwiXFx1NEU0MlxcdTRFNUNcXHU1MUY1XFx1NTMxQVxcdTUzODJcXHU0RTA3XFx1NEUwQ1xcdTRFNDdcXHU0RThEXFx1NTZEN1xcdUZBMENcXHU1QzZFXFx1NUY3M1xcdTRFMEZcXHU1MTg3XFx1NEUwRVxcdTRFMkVcXHU0RTkzXFx1NEVDMlxcdTRFQzlcXHU0RUM4XFx1NTE5OFxcdTUyRkNcXHU1MzZDXFx1NTNCOVxcdTU3MjBcXHU1OTAzXFx1NTkyQ1xcdTVDMTBcXHU1REZGXFx1NjVFMVxcdTZCQjNcXHU2QkNDXFx1NkMxNFxcdTcyM0ZcXHU0RTMxXFx1NEUzQ1xcdTRFRThcXHU0RURDXFx1NEVFOVxcdTRFRTFcXHU0RUREXFx1NEVEQVxcdTUyMENcXHU1MzFDXFx1NTM0Q1xcdTU3MjJcXHU1NzIzXFx1NTkxN1xcdTU5MkZcXHU1QjgxXFx1NUI4NFxcdTVDMTJcXHU1QzNCXFx1NUM3NFxcdTVDNzNcXHU1RTA0XFx1NUU4MFxcdTVFODJcXHU1RkM5XFx1NjIwOVxcdTYyNTBcXHU2QzE1XCJdLFxuICAgICAgW1wiYzlhMVwiLCBcIlxcdTZDMzZcXHU2QzQzXFx1NkMzRlxcdTZDM0JcXHU3MkFFXFx1NzJCMFxcdTczOEFcXHU3OUI4XFx1ODA4QVxcdTk2MUVcXHU0RjBFXFx1NEYxOFxcdTRGMkNcXHU0RUY1XFx1NEYxNFxcdTRFRjFcXHU0RjAwXFx1NEVGN1xcdTRGMDhcXHU0RjFEXFx1NEYwMlxcdTRGMDVcXHU0RjIyXFx1NEYxM1xcdTRGMDRcXHU0RUY0XFx1NEYxMlxcdTUxQjFcXHU1MjEzXFx1NTIwOVxcdTUyMTBcXHU1MkE2XFx1NTMyMlxcdTUzMUZcXHU1MzREXFx1NTM4QVxcdTU0MDdcXHU1NkUxXFx1NTZERlxcdTU3MkVcXHU1NzJBXFx1NTczNFxcdTU5M0NcXHU1OTgwXFx1NTk3Q1xcdTU5ODVcXHU1OTdCXFx1NTk3RVxcdTU5NzdcXHU1OTdGXFx1NUI1NlxcdTVDMTVcXHU1QzI1XFx1NUM3Q1xcdTVDN0FcXHU1QzdCXFx1NUM3RVxcdTVEREZcXHU1RTc1XFx1NUU4NFxcdTVGMDJcXHU1RjFBXFx1NUY3NFxcdTVGRDVcXHU1RkQ0XFx1NUZDRlxcdTYyNUNcXHU2MjVFXFx1NjI2NFxcdTYyNjFcXHU2MjY2XFx1NjI2MlxcdTYyNTlcXHU2MjYwXFx1NjI1QVxcdTYyNjVcXHU2NUVGXFx1NjVFRVxcdTY3M0VcXHU2NzM5XFx1NjczOFxcdTY3M0JcXHU2NzNBXFx1NjczRlxcdTY3M0NcXHU2NzMzXFx1NkMxOFxcdTZDNDZcXHU2QzUyXFx1NkM1Q1xcdTZDNEZcXHU2QzRBXFx1NkM1NFxcdTZDNEJcIl0sXG4gICAgICBbXCJjYTQwXCIsIFwiXFx1NkM0Q1xcdTcwNzFcXHU3MjVFXFx1NzJCNFxcdTcyQjVcXHU3MzhFXFx1NzUyQVxcdTc2N0ZcXHU3QTc1XFx1N0Y1MVxcdTgyNzhcXHU4MjdDXFx1ODI4MFxcdTgyN0RcXHU4MjdGXFx1ODY0RFxcdTg5N0VcXHU5MDk5XFx1OTA5N1xcdTkwOThcXHU5MDlCXFx1OTA5NFxcdTk2MjJcXHU5NjI0XFx1OTYyMFxcdTk2MjNcXHU0RjU2XFx1NEYzQlxcdTRGNjJcXHU0RjQ5XFx1NEY1M1xcdTRGNjRcXHU0RjNFXFx1NEY2N1xcdTRGNTJcXHU0RjVGXFx1NEY0MVxcdTRGNThcXHU0RjJEXFx1NEYzM1xcdTRGM0ZcXHU0RjYxXFx1NTE4RlxcdTUxQjlcXHU1MjFDXFx1NTIxRVxcdTUyMjFcXHU1MkFEXFx1NTJBRVxcdTUzMDlcXHU1MzYzXFx1NTM3MlxcdTUzOEVcXHU1MzhGXFx1NTQzMFxcdTU0MzdcXHU1NDJBXFx1NTQ1NFxcdTU0NDVcXHU1NDE5XFx1NTQxQ1xcdTU0MjVcXHU1NDE4XCJdLFxuICAgICAgW1wiY2FhMVwiLCBcIlxcdTU0M0RcXHU1NDRGXFx1NTQ0MVxcdTU0MjhcXHU1NDI0XFx1NTQ0N1xcdTU2RUVcXHU1NkU3XFx1NTZFNVxcdTU3NDFcXHU1NzQ1XFx1NTc0Q1xcdTU3NDlcXHU1NzRCXFx1NTc1MlxcdTU5MDZcXHU1OTQwXFx1NTlBNlxcdTU5OThcXHU1OUEwXFx1NTk5N1xcdTU5OEVcXHU1OUEyXFx1NTk5MFxcdTU5OEZcXHU1OUE3XFx1NTlBMVxcdTVCOEVcXHU1QjkyXFx1NUMyOFxcdTVDMkFcXHU1QzhEXFx1NUM4RlxcdTVDODhcXHU1QzhCXFx1NUM4OVxcdTVDOTJcXHU1QzhBXFx1NUM4NlxcdTVDOTNcXHU1Qzk1XFx1NURFMFxcdTVFMEFcXHU1RTBFXFx1NUU4QlxcdTVFODlcXHU1RThDXFx1NUU4OFxcdTVFOERcXHU1RjA1XFx1NUYxRFxcdTVGNzhcXHU1Rjc2XFx1NUZEMlxcdTVGRDFcXHU1RkQwXFx1NUZFRFxcdTVGRThcXHU1RkVFXFx1NUZGM1xcdTVGRTFcXHU1RkU0XFx1NUZFM1xcdTVGRkFcXHU1RkVGXFx1NUZGN1xcdTVGRkJcXHU2MDAwXFx1NUZGNFxcdTYyM0FcXHU2MjgzXFx1NjI4Q1xcdTYyOEVcXHU2MjhGXFx1NjI5NFxcdTYyODdcXHU2MjcxXFx1NjI3QlxcdTYyN0FcXHU2MjcwXFx1NjI4MVxcdTYyODhcXHU2Mjc3XFx1NjI3RFxcdTYyNzJcXHU2Mjc0XFx1NjUzN1xcdTY1RjBcXHU2NUY0XFx1NjVGM1xcdTY1RjJcXHU2NUY1XFx1Njc0NVxcdTY3NDdcIl0sXG4gICAgICBbXCJjYjQwXCIsIFwiXFx1Njc1OVxcdTY3NTVcXHU2NzRDXFx1Njc0OFxcdTY3NURcXHU2NzREXFx1Njc1QVxcdTY3NEJcXHU2QkQwXFx1NkMxOVxcdTZDMUFcXHU2Qzc4XFx1NkM2N1xcdTZDNkJcXHU2Qzg0XFx1NkM4QlxcdTZDOEZcXHU2QzcxXFx1NkM2RlxcdTZDNjlcXHU2QzlBXFx1NkM2RFxcdTZDODdcXHU2Qzk1XFx1NkM5Q1xcdTZDNjZcXHU2QzczXFx1NkM2NVxcdTZDN0JcXHU2QzhFXFx1NzA3NFxcdTcwN0FcXHU3MjYzXFx1NzJCRlxcdTcyQkRcXHU3MkMzXFx1NzJDNlxcdTcyQzFcXHU3MkJBXFx1NzJDNVxcdTczOTVcXHU3Mzk3XFx1NzM5M1xcdTczOTRcXHU3MzkyXFx1NzUzQVxcdTc1MzlcXHU3NTk0XFx1NzU5NVxcdTc2ODFcXHU3OTNEXFx1ODAzNFxcdTgwOTVcXHU4MDk5XFx1ODA5MFxcdTgwOTJcXHU4MDlDXFx1ODI5MFxcdTgyOEZcXHU4Mjg1XFx1ODI4RVxcdTgyOTFcXHU4MjkzXCJdLFxuICAgICAgW1wiY2JhMVwiLCBcIlxcdTgyOEFcXHU4MjgzXFx1ODI4NFxcdThDNzhcXHU4RkM5XFx1OEZCRlxcdTkwOUZcXHU5MEExXFx1OTBBNVxcdTkwOUVcXHU5MEE3XFx1OTBBMFxcdTk2MzBcXHU5NjI4XFx1OTYyRlxcdTk2MkRcXHU0RTMzXFx1NEY5OFxcdTRGN0NcXHU0Rjg1XFx1NEY3RFxcdTRGODBcXHU0Rjg3XFx1NEY3NlxcdTRGNzRcXHU0Rjg5XFx1NEY4NFxcdTRGNzdcXHU0RjRDXFx1NEY5N1xcdTRGNkFcXHU0RjlBXFx1NEY3OVxcdTRGODFcXHU0Rjc4XFx1NEY5MFxcdTRGOUNcXHU0Rjk0XFx1NEY5RVxcdTRGOTJcXHU0RjgyXFx1NEY5NVxcdTRGNkJcXHU0RjZFXFx1NTE5RVxcdTUxQkNcXHU1MUJFXFx1NTIzNVxcdTUyMzJcXHU1MjMzXFx1NTI0NlxcdTUyMzFcXHU1MkJDXFx1NTMwQVxcdTUzMEJcXHU1MzNDXFx1NTM5MlxcdTUzOTRcXHU1NDg3XFx1NTQ3RlxcdTU0ODFcXHU1NDkxXFx1NTQ4MlxcdTU0ODhcXHU1NDZCXFx1NTQ3QVxcdTU0N0VcXHU1NDY1XFx1NTQ2Q1xcdTU0NzRcXHU1NDY2XFx1NTQ4RFxcdTU0NkZcXHU1NDYxXFx1NTQ2MFxcdTU0OThcXHU1NDYzXFx1NTQ2N1xcdTU0NjRcXHU1NkY3XFx1NTZGOVxcdTU3NkZcXHU1NzcyXFx1NTc2RFxcdTU3NkJcXHU1NzcxXFx1NTc3MFxcdTU3NzZcXHU1NzgwXFx1NTc3NVxcdTU3N0JcXHU1NzczXFx1NTc3NFxcdTU3NjJcIl0sXG4gICAgICBbXCJjYzQwXCIsIFwiXFx1NTc2OFxcdTU3N0RcXHU1OTBDXFx1NTk0NVxcdTU5QjVcXHU1OUJBXFx1NTlDRlxcdTU5Q0VcXHU1OUIyXFx1NTlDQ1xcdTU5QzFcXHU1OUI2XFx1NTlCQ1xcdTU5QzNcXHU1OUQ2XFx1NTlCMVxcdTU5QkRcXHU1OUMwXFx1NTlDOFxcdTU5QjRcXHU1OUM3XFx1NUI2MlxcdTVCNjVcXHU1QjkzXFx1NUI5NVxcdTVDNDRcXHU1QzQ3XFx1NUNBRVxcdTVDQTRcXHU1Q0EwXFx1NUNCNVxcdTVDQUZcXHU1Q0E4XFx1NUNBQ1xcdTVDOUZcXHU1Q0EzXFx1NUNBRFxcdTVDQTJcXHU1Q0FBXFx1NUNBN1xcdTVDOURcXHU1Q0E1XFx1NUNCNlxcdTVDQjBcXHU1Q0E2XFx1NUUxN1xcdTVFMTRcXHU1RTE5XFx1NUYyOFxcdTVGMjJcXHU1RjIzXFx1NUYyNFxcdTVGNTRcXHU1RjgyXFx1NUY3RVxcdTVGN0RcXHU1RkRFXFx1NUZFNVxcdTYwMkRcXHU2MDI2XFx1NjAxOVxcdTYwMzJcXHU2MDBCXCJdLFxuICAgICAgW1wiY2NhMVwiLCBcIlxcdTYwMzRcXHU2MDBBXFx1NjAxN1xcdTYwMzNcXHU2MDFBXFx1NjAxRVxcdTYwMkNcXHU2MDIyXFx1NjAwRFxcdTYwMTBcXHU2MDJFXFx1NjAxM1xcdTYwMTFcXHU2MDBDXFx1NjAwOVxcdTYwMUNcXHU2MjE0XFx1NjIzRFxcdTYyQURcXHU2MkI0XFx1NjJEMVxcdTYyQkVcXHU2MkFBXFx1NjJCNlxcdTYyQ0FcXHU2MkFFXFx1NjJCM1xcdTYyQUZcXHU2MkJCXFx1NjJBOVxcdTYyQjBcXHU2MkI4XFx1NjUzRFxcdTY1QThcXHU2NUJCXFx1NjYwOVxcdTY1RkNcXHU2NjA0XFx1NjYxMlxcdTY2MDhcXHU2NUZCXFx1NjYwM1xcdTY2MEJcXHU2NjBEXFx1NjYwNVxcdTY1RkRcXHU2NjExXFx1NjYxMFxcdTY2RjZcXHU2NzBBXFx1Njc4NVxcdTY3NkNcXHU2NzhFXFx1Njc5MlxcdTY3NzZcXHU2NzdCXFx1Njc5OFxcdTY3ODZcXHU2Nzg0XFx1Njc3NFxcdTY3OERcXHU2NzhDXFx1Njc3QVxcdTY3OUZcXHU2NzkxXFx1Njc5OVxcdTY3ODNcXHU2NzdEXFx1Njc4MVxcdTY3NzhcXHU2Nzc5XFx1Njc5NFxcdTZCMjVcXHU2QjgwXFx1NkI3RVxcdTZCREVcXHU2QzFEXFx1NkM5M1xcdTZDRUNcXHU2Q0VCXFx1NkNFRVxcdTZDRDlcXHU2Q0I2XFx1NkNENFxcdTZDQURcXHU2Q0U3XFx1NkNCN1xcdTZDRDBcXHU2Q0MyXFx1NkNCQVxcdTZDQzNcXHU2Q0M2XFx1NkNFRFxcdTZDRjJcIl0sXG4gICAgICBbXCJjZDQwXCIsIFwiXFx1NkNEMlxcdTZDRERcXHU2Q0I0XFx1NkM4QVxcdTZDOURcXHU2QzgwXFx1NkNERVxcdTZDQzBcXHU2RDMwXFx1NkNDRFxcdTZDQzdcXHU2Q0IwXFx1NkNGOVxcdTZDQ0ZcXHU2Q0U5XFx1NkNEMVxcdTcwOTRcXHU3MDk4XFx1NzA4NVxcdTcwOTNcXHU3MDg2XFx1NzA4NFxcdTcwOTFcXHU3MDk2XFx1NzA4MlxcdTcwOUFcXHU3MDgzXFx1NzI2QVxcdTcyRDZcXHU3MkNCXFx1NzJEOFxcdTcyQzlcXHU3MkRDXFx1NzJEMlxcdTcyRDRcXHU3MkRBXFx1NzJDQ1xcdTcyRDFcXHU3M0E0XFx1NzNBMVxcdTczQURcXHU3M0E2XFx1NzNBMlxcdTczQTBcXHU3M0FDXFx1NzM5RFxcdTc0RERcXHU3NEU4XFx1NzUzRlxcdTc1NDBcXHU3NTNFXFx1NzU4Q1xcdTc1OThcXHU3NkFGXFx1NzZGM1xcdTc2RjFcXHU3NkYwXFx1NzZGNVxcdTc3RjhcXHU3N0ZDXFx1NzdGOVxcdTc3RkJcXHU3N0ZBXCJdLFxuICAgICAgW1wiY2RhMVwiLCBcIlxcdTc3RjdcXHU3OTQyXFx1NzkzRlxcdTc5QzVcXHU3QTc4XFx1N0E3QlxcdTdBRkJcXHU3Qzc1XFx1N0NGRFxcdTgwMzVcXHU4MDhGXFx1ODBBRVxcdTgwQTNcXHU4MEI4XFx1ODBCNVxcdTgwQURcXHU4MjIwXFx1ODJBMFxcdTgyQzBcXHU4MkFCXFx1ODI5QVxcdTgyOThcXHU4MjlCXFx1ODJCNVxcdTgyQTdcXHU4MkFFXFx1ODJCQ1xcdTgyOUVcXHU4MkJBXFx1ODJCNFxcdTgyQThcXHU4MkExXFx1ODJBOVxcdTgyQzJcXHU4MkE0XFx1ODJDM1xcdTgyQjZcXHU4MkEyXFx1ODY3MFxcdTg2NkZcXHU4NjZEXFx1ODY2RVxcdThDNTZcXHU4RkQyXFx1OEZDQlxcdThGRDNcXHU4RkNEXFx1OEZENlxcdThGRDVcXHU4RkQ3XFx1OTBCMlxcdTkwQjRcXHU5MEFGXFx1OTBCM1xcdTkwQjBcXHU5NjM5XFx1OTYzRFxcdTk2M0NcXHU5NjNBXFx1OTY0M1xcdTRGQ0RcXHU0RkM1XFx1NEZEM1xcdTRGQjJcXHU0RkM5XFx1NEZDQlxcdTRGQzFcXHU0RkQ0XFx1NEZEQ1xcdTRGRDlcXHU0RkJCXFx1NEZCM1xcdTRGREJcXHU0RkM3XFx1NEZENlxcdTRGQkFcXHU0RkMwXFx1NEZCOVxcdTRGRUNcXHU1MjQ0XFx1NTI0OVxcdTUyQzBcXHU1MkMyXFx1NTMzRFxcdTUzN0NcXHU1Mzk3XFx1NTM5NlxcdTUzOTlcXHU1Mzk4XFx1NTRCQVxcdTU0QTFcXHU1NEFEXFx1NTRBNVxcdTU0Q0ZcIl0sXG4gICAgICBbXCJjZTQwXCIsIFwiXFx1NTRDM1xcdTgzMERcXHU1NEI3XFx1NTRBRVxcdTU0RDZcXHU1NEI2XFx1NTRDNVxcdTU0QzZcXHU1NEEwXFx1NTQ3MFxcdTU0QkNcXHU1NEEyXFx1NTRCRVxcdTU0NzJcXHU1NERFXFx1NTRCMFxcdTU3QjVcXHU1NzlFXFx1NTc5RlxcdTU3QTRcXHU1NzhDXFx1NTc5N1xcdTU3OURcXHU1NzlCXFx1NTc5NFxcdTU3OThcXHU1NzhGXFx1NTc5OVxcdTU3QTVcXHU1NzlBXFx1NTc5NVxcdTU4RjRcXHU1OTBEXFx1NTk1M1xcdTU5RTFcXHU1OURFXFx1NTlFRVxcdTVBMDBcXHU1OUYxXFx1NTlERFxcdTU5RkFcXHU1OUZEXFx1NTlGQ1xcdTU5RjZcXHU1OUU0XFx1NTlGMlxcdTU5RjdcXHU1OURCXFx1NTlFOVxcdTU5RjNcXHU1OUY1XFx1NTlFMFxcdTU5RkVcXHU1OUY0XFx1NTlFRFxcdTVCQThcXHU1QzRDXFx1NUNEMFxcdTVDRDhcXHU1Q0NDXFx1NUNEN1xcdTVDQ0JcXHU1Q0RCXCJdLFxuICAgICAgW1wiY2VhMVwiLCBcIlxcdTVDREVcXHU1Q0RBXFx1NUNDOVxcdTVDQzdcXHU1Q0NBXFx1NUNENlxcdTVDRDNcXHU1Q0Q0XFx1NUNDRlxcdTVDQzhcXHU1Q0M2XFx1NUNDRVxcdTVDREZcXHU1Q0Y4XFx1NURGOVxcdTVFMjFcXHU1RTIyXFx1NUUyM1xcdTVFMjBcXHU1RTI0XFx1NUVCMFxcdTVFQTRcXHU1RUEyXFx1NUU5QlxcdTVFQTNcXHU1RUE1XFx1NUYwN1xcdTVGMkVcXHU1RjU2XFx1NUY4NlxcdTYwMzdcXHU2MDM5XFx1NjA1NFxcdTYwNzJcXHU2MDVFXFx1NjA0NVxcdTYwNTNcXHU2MDQ3XFx1NjA0OVxcdTYwNUJcXHU2MDRDXFx1NjA0MFxcdTYwNDJcXHU2MDVGXFx1NjAyNFxcdTYwNDRcXHU2MDU4XFx1NjA2NlxcdTYwNkVcXHU2MjQyXFx1NjI0M1xcdTYyQ0ZcXHU2MzBEXFx1NjMwQlxcdTYyRjVcXHU2MzBFXFx1NjMwM1xcdTYyRUJcXHU2MkY5XFx1NjMwRlxcdTYzMENcXHU2MkY4XFx1NjJGNlxcdTYzMDBcXHU2MzEzXFx1NjMxNFxcdTYyRkFcXHU2MzE1XFx1NjJGQlxcdTYyRjBcXHU2NTQxXFx1NjU0M1xcdTY1QUFcXHU2NUJGXFx1NjYzNlxcdTY2MjFcXHU2NjMyXFx1NjYzNVxcdTY2MUNcXHU2NjI2XFx1NjYyMlxcdTY2MzNcXHU2NjJCXFx1NjYzQVxcdTY2MURcXHU2NjM0XFx1NjYzOVxcdTY2MkVcXHU2NzBGXFx1NjcxMFxcdTY3QzFcXHU2N0YyXFx1NjdDOFxcdTY3QkFcIl0sXG4gICAgICBbXCJjZjQwXCIsIFwiXFx1NjdEQ1xcdTY3QkJcXHU2N0Y4XFx1NjdEOFxcdTY3QzBcXHU2N0I3XFx1NjdDNVxcdTY3RUJcXHU2N0U0XFx1NjdERlxcdTY3QjVcXHU2N0NEXFx1NjdCM1xcdTY3RjdcXHU2N0Y2XFx1NjdFRVxcdTY3RTNcXHU2N0MyXFx1NjdCOVxcdTY3Q0VcXHU2N0U3XFx1NjdGMFxcdTY3QjJcXHU2N0ZDXFx1NjdDNlxcdTY3RURcXHU2N0NDXFx1NjdBRVxcdTY3RTZcXHU2N0RCXFx1NjdGQVxcdTY3QzlcXHU2N0NBXFx1NjdDM1xcdTY3RUFcXHU2N0NCXFx1NkIyOFxcdTZCODJcXHU2Qjg0XFx1NkJCNlxcdTZCRDZcXHU2QkQ4XFx1NkJFMFxcdTZDMjBcXHU2QzIxXFx1NkQyOFxcdTZEMzRcXHU2RDJEXFx1NkQxRlxcdTZEM0NcXHU2RDNGXFx1NkQxMlxcdTZEMEFcXHU2Q0RBXFx1NkQzM1xcdTZEMDRcXHU2RDE5XFx1NkQzQVxcdTZEMUFcXHU2RDExXFx1NkQwMFxcdTZEMURcXHU2RDQyXCJdLFxuICAgICAgW1wiY2ZhMVwiLCBcIlxcdTZEMDFcXHU2RDE4XFx1NkQzN1xcdTZEMDNcXHU2RDBGXFx1NkQ0MFxcdTZEMDdcXHU2RDIwXFx1NkQyQ1xcdTZEMDhcXHU2RDIyXFx1NkQwOVxcdTZEMTBcXHU3MEI3XFx1NzA5RlxcdTcwQkVcXHU3MEIxXFx1NzBCMFxcdTcwQTFcXHU3MEI0XFx1NzBCNVxcdTcwQTlcXHU3MjQxXFx1NzI0OVxcdTcyNEFcXHU3MjZDXFx1NzI3MFxcdTcyNzNcXHU3MjZFXFx1NzJDQVxcdTcyRTRcXHU3MkU4XFx1NzJFQlxcdTcyREZcXHU3MkVBXFx1NzJFNlxcdTcyRTNcXHU3Mzg1XFx1NzNDQ1xcdTczQzJcXHU3M0M4XFx1NzNDNVxcdTczQjlcXHU3M0I2XFx1NzNCNVxcdTczQjRcXHU3M0VCXFx1NzNCRlxcdTczQzdcXHU3M0JFXFx1NzNDM1xcdTczQzZcXHU3M0I4XFx1NzNDQlxcdTc0RUNcXHU3NEVFXFx1NzUyRVxcdTc1NDdcXHU3NTQ4XFx1NzVBN1xcdTc1QUFcXHU3Njc5XFx1NzZDNFxcdTc3MDhcXHU3NzAzXFx1NzcwNFxcdTc3MDVcXHU3NzBBXFx1NzZGN1xcdTc2RkJcXHU3NkZBXFx1NzdFN1xcdTc3RThcXHU3ODA2XFx1NzgxMVxcdTc4MTJcXHU3ODA1XFx1NzgxMFxcdTc4MEZcXHU3ODBFXFx1NzgwOVxcdTc4MDNcXHU3ODEzXFx1Nzk0QVxcdTc5NENcXHU3OTRCXFx1Nzk0NVxcdTc5NDRcXHU3OUQ1XFx1NzlDRFxcdTc5Q0ZcXHU3OUQ2XFx1NzlDRVxcdTdBODBcIl0sXG4gICAgICBbXCJkMDQwXCIsIFwiXFx1N0E3RVxcdTdBRDFcXHU3QjAwXFx1N0IwMVxcdTdDN0FcXHU3Qzc4XFx1N0M3OVxcdTdDN0ZcXHU3QzgwXFx1N0M4MVxcdTdEMDNcXHU3RDA4XFx1N0QwMVxcdTdGNThcXHU3RjkxXFx1N0Y4RFxcdTdGQkVcXHU4MDA3XFx1ODAwRVxcdTgwMEZcXHU4MDE0XFx1ODAzN1xcdTgwRDhcXHU4MEM3XFx1ODBFMFxcdTgwRDFcXHU4MEM4XFx1ODBDMlxcdTgwRDBcXHU4MEM1XFx1ODBFM1xcdTgwRDlcXHU4MERDXFx1ODBDQVxcdTgwRDVcXHU4MEM5XFx1ODBDRlxcdTgwRDdcXHU4MEU2XFx1ODBDRFxcdTgxRkZcXHU4MjIxXFx1ODI5NFxcdTgyRDlcXHU4MkZFXFx1ODJGOVxcdTgzMDdcXHU4MkU4XFx1ODMwMFxcdTgyRDVcXHU4MzNBXFx1ODJFQlxcdTgyRDZcXHU4MkY0XFx1ODJFQ1xcdTgyRTFcXHU4MkYyXFx1ODJGNVxcdTgzMENcXHU4MkZCXFx1ODJGNlxcdTgyRjBcXHU4MkVBXCJdLFxuICAgICAgW1wiZDBhMVwiLCBcIlxcdTgyRTRcXHU4MkUwXFx1ODJGQVxcdTgyRjNcXHU4MkVEXFx1ODY3N1xcdTg2NzRcXHU4NjdDXFx1ODY3M1xcdTg4NDFcXHU4ODRFXFx1ODg2N1xcdTg4NkFcXHU4ODY5XFx1ODlEM1xcdThBMDRcXHU4QTA3XFx1OEQ3MlxcdThGRTNcXHU4RkUxXFx1OEZFRVxcdThGRTBcXHU5MEYxXFx1OTBCRFxcdTkwQkZcXHU5MEQ1XFx1OTBDNVxcdTkwQkVcXHU5MEM3XFx1OTBDQlxcdTkwQzhcXHU5MUQ0XFx1OTFEM1xcdTk2NTRcXHU5NjRGXFx1OTY1MVxcdTk2NTNcXHU5NjRBXFx1OTY0RVxcdTUwMUVcXHU1MDA1XFx1NTAwN1xcdTUwMTNcXHU1MDIyXFx1NTAzMFxcdTUwMUJcXHU0RkY1XFx1NEZGNFxcdTUwMzNcXHU1MDM3XFx1NTAyQ1xcdTRGRjZcXHU0RkY3XFx1NTAxN1xcdTUwMUNcXHU1MDIwXFx1NTAyN1xcdTUwMzVcXHU1MDJGXFx1NTAzMVxcdTUwMEVcXHU1MTVBXFx1NTE5NFxcdTUxOTNcXHU1MUNBXFx1NTFDNFxcdTUxQzVcXHU1MUM4XFx1NTFDRVxcdTUyNjFcXHU1MjVBXFx1NTI1MlxcdTUyNUVcXHU1MjVGXFx1NTI1NVxcdTUyNjJcXHU1MkNEXFx1NTMwRVxcdTUzOUVcXHU1NTI2XFx1NTRFMlxcdTU1MTdcXHU1NTEyXFx1NTRFN1xcdTU0RjNcXHU1NEU0XFx1NTUxQVxcdTU0RkZcXHU1NTA0XFx1NTUwOFxcdTU0RUJcXHU1NTExXFx1NTUwNVxcdTU0RjFcIl0sXG4gICAgICBbXCJkMTQwXCIsIFwiXFx1NTUwQVxcdTU0RkJcXHU1NEY3XFx1NTRGOFxcdTU0RTBcXHU1NTBFXFx1NTUwM1xcdTU1MEJcXHU1NzAxXFx1NTcwMlxcdTU3Q0NcXHU1ODMyXFx1NTdENVxcdTU3RDJcXHU1N0JBXFx1NTdDNlxcdTU3QkRcXHU1N0JDXFx1NTdCOFxcdTU3QjZcXHU1N0JGXFx1NTdDN1xcdTU3RDBcXHU1N0I5XFx1NTdDMVxcdTU5MEVcXHU1OTRBXFx1NUExOVxcdTVBMTZcXHU1QTJEXFx1NUEyRVxcdTVBMTVcXHU1QTBGXFx1NUExN1xcdTVBMEFcXHU1QTFFXFx1NUEzM1xcdTVCNkNcXHU1QkE3XFx1NUJBRFxcdTVCQUNcXHU1QzAzXFx1NUM1NlxcdTVDNTRcXHU1Q0VDXFx1NUNGRlxcdTVDRUVcXHU1Q0YxXFx1NUNGN1xcdTVEMDBcXHU1Q0Y5XFx1NUUyOVxcdTVFMjhcXHU1RUE4XFx1NUVBRVxcdTVFQUFcXHU1RUFDXFx1NUYzM1xcdTVGMzBcXHU1RjY3XFx1NjA1RFxcdTYwNUFcXHU2MDY3XCJdLFxuICAgICAgW1wiZDFhMVwiLCBcIlxcdTYwNDFcXHU2MEEyXFx1NjA4OFxcdTYwODBcXHU2MDkyXFx1NjA4MVxcdTYwOURcXHU2MDgzXFx1NjA5NVxcdTYwOUJcXHU2MDk3XFx1NjA4N1xcdTYwOUNcXHU2MDhFXFx1NjIxOVxcdTYyNDZcXHU2MkYyXFx1NjMxMFxcdTYzNTZcXHU2MzJDXFx1NjM0NFxcdTYzNDVcXHU2MzM2XFx1NjM0M1xcdTYzRTRcXHU2MzM5XFx1NjM0QlxcdTYzNEFcXHU2MzNDXFx1NjMyOVxcdTYzNDFcXHU2MzM0XFx1NjM1OFxcdTYzNTRcXHU2MzU5XFx1NjMyRFxcdTYzNDdcXHU2MzMzXFx1NjM1QVxcdTYzNTFcXHU2MzM4XFx1NjM1N1xcdTYzNDBcXHU2MzQ4XFx1NjU0QVxcdTY1NDZcXHU2NUM2XFx1NjVDM1xcdTY1QzRcXHU2NUMyXFx1NjY0QVxcdTY2NUZcXHU2NjQ3XFx1NjY1MVxcdTY3MTJcXHU2NzEzXFx1NjgxRlxcdTY4MUFcXHU2ODQ5XFx1NjgzMlxcdTY4MzNcXHU2ODNCXFx1Njg0QlxcdTY4NEZcXHU2ODE2XFx1NjgzMVxcdTY4MUNcXHU2ODM1XFx1NjgyQlxcdTY4MkRcXHU2ODJGXFx1Njg0RVxcdTY4NDRcXHU2ODM0XFx1NjgxRFxcdTY4MTJcXHU2ODE0XFx1NjgyNlxcdTY4MjhcXHU2ODJFXFx1Njg0RFxcdTY4M0FcXHU2ODI1XFx1NjgyMFxcdTZCMkNcXHU2QjJGXFx1NkIyRFxcdTZCMzFcXHU2QjM0XFx1NkI2RFxcdTgwODJcXHU2Qjg4XFx1NkJFNlxcdTZCRTRcIl0sXG4gICAgICBbXCJkMjQwXCIsIFwiXFx1NkJFOFxcdTZCRTNcXHU2QkUyXFx1NkJFN1xcdTZDMjVcXHU2RDdBXFx1NkQ2M1xcdTZENjRcXHU2RDc2XFx1NkQwRFxcdTZENjFcXHU2RDkyXFx1NkQ1OFxcdTZENjJcXHU2RDZEXFx1NkQ2RlxcdTZEOTFcXHU2RDhEXFx1NkRFRlxcdTZEN0ZcXHU2RDg2XFx1NkQ1RVxcdTZENjdcXHU2RDYwXFx1NkQ5N1xcdTZENzBcXHU2RDdDXFx1NkQ1RlxcdTZEODJcXHU2RDk4XFx1NkQyRlxcdTZENjhcXHU2RDhCXFx1NkQ3RVxcdTZEODBcXHU2RDg0XFx1NkQxNlxcdTZEODNcXHU2RDdCXFx1NkQ3RFxcdTZENzVcXHU2RDkwXFx1NzBEQ1xcdTcwRDNcXHU3MEQxXFx1NzBERFxcdTcwQ0JcXHU3RjM5XFx1NzBFMlxcdTcwRDdcXHU3MEQyXFx1NzBERVxcdTcwRTBcXHU3MEQ0XFx1NzBDRFxcdTcwQzVcXHU3MEM2XFx1NzBDN1xcdTcwREFcXHU3MENFXFx1NzBFMVxcdTcyNDJcXHU3Mjc4XCJdLFxuICAgICAgW1wiZDJhMVwiLCBcIlxcdTcyNzdcXHU3Mjc2XFx1NzMwMFxcdTcyRkFcXHU3MkY0XFx1NzJGRVxcdTcyRjZcXHU3MkYzXFx1NzJGQlxcdTczMDFcXHU3M0QzXFx1NzNEOVxcdTczRTVcXHU3M0Q2XFx1NzNCQ1xcdTczRTdcXHU3M0UzXFx1NzNFOVxcdTczRENcXHU3M0QyXFx1NzNEQlxcdTczRDRcXHU3M0REXFx1NzNEQVxcdTczRDdcXHU3M0Q4XFx1NzNFOFxcdTc0REVcXHU3NERGXFx1NzRGNFxcdTc0RjVcXHU3NTIxXFx1NzU1QlxcdTc1NUZcXHU3NUIwXFx1NzVDMVxcdTc1QkJcXHU3NUM0XFx1NzVDMFxcdTc1QkZcXHU3NUI2XFx1NzVCQVxcdTc2OEFcXHU3NkM5XFx1NzcxRFxcdTc3MUJcXHU3NzEwXFx1NzcxM1xcdTc3MTJcXHU3NzIzXFx1NzcxMVxcdTc3MTVcXHU3NzE5XFx1NzcxQVxcdTc3MjJcXHU3NzI3XFx1NzgyM1xcdTc4MkNcXHU3ODIyXFx1NzgzNVxcdTc4MkZcXHU3ODI4XFx1NzgyRVxcdTc4MkJcXHU3ODIxXFx1NzgyOVxcdTc4MzNcXHU3ODJBXFx1NzgzMVxcdTc5NTRcXHU3OTVCXFx1Nzk0RlxcdTc5NUNcXHU3OTUzXFx1Nzk1MlxcdTc5NTFcXHU3OUVCXFx1NzlFQ1xcdTc5RTBcXHU3OUVFXFx1NzlFRFxcdTc5RUFcXHU3OURDXFx1NzlERVxcdTc5RERcXHU3QTg2XFx1N0E4OVxcdTdBODVcXHU3QThCXFx1N0E4Q1xcdTdBOEFcXHU3QTg3XFx1N0FEOFxcdTdCMTBcIl0sXG4gICAgICBbXCJkMzQwXCIsIFwiXFx1N0IwNFxcdTdCMTNcXHU3QjA1XFx1N0IwRlxcdTdCMDhcXHU3QjBBXFx1N0IwRVxcdTdCMDlcXHU3QjEyXFx1N0M4NFxcdTdDOTFcXHU3QzhBXFx1N0M4Q1xcdTdDODhcXHU3QzhEXFx1N0M4NVxcdTdEMUVcXHU3RDFEXFx1N0QxMVxcdTdEMEVcXHU3RDE4XFx1N0QxNlxcdTdEMTNcXHU3RDFGXFx1N0QxMlxcdTdEMEZcXHU3RDBDXFx1N0Y1Q1xcdTdGNjFcXHU3RjVFXFx1N0Y2MFxcdTdGNURcXHU3RjVCXFx1N0Y5NlxcdTdGOTJcXHU3RkMzXFx1N0ZDMlxcdTdGQzBcXHU4MDE2XFx1ODAzRVxcdTgwMzlcXHU4MEZBXFx1ODBGMlxcdTgwRjlcXHU4MEY1XFx1ODEwMVxcdTgwRkJcXHU4MTAwXFx1ODIwMVxcdTgyMkZcXHU4MjI1XFx1ODMzM1xcdTgzMkRcXHU4MzQ0XFx1ODMxOVxcdTgzNTFcXHU4MzI1XFx1ODM1NlxcdTgzM0ZcXHU4MzQxXFx1ODMyNlxcdTgzMUNcXHU4MzIyXCJdLFxuICAgICAgW1wiZDNhMVwiLCBcIlxcdTgzNDJcXHU4MzRFXFx1ODMxQlxcdTgzMkFcXHU4MzA4XFx1ODMzQ1xcdTgzNERcXHU4MzE2XFx1ODMyNFxcdTgzMjBcXHU4MzM3XFx1ODMyRlxcdTgzMjlcXHU4MzQ3XFx1ODM0NVxcdTgzNENcXHU4MzUzXFx1ODMxRVxcdTgzMkNcXHU4MzRCXFx1ODMyN1xcdTgzNDhcXHU4NjUzXFx1ODY1MlxcdTg2QTJcXHU4NkE4XFx1ODY5NlxcdTg2OERcXHU4NjkxXFx1ODY5RVxcdTg2ODdcXHU4Njk3XFx1ODY4NlxcdTg2OEJcXHU4NjlBXFx1ODY4NVxcdTg2QTVcXHU4Njk5XFx1ODZBMVxcdTg2QTdcXHU4Njk1XFx1ODY5OFxcdTg2OEVcXHU4NjlEXFx1ODY5MFxcdTg2OTRcXHU4ODQzXFx1ODg0NFxcdTg4NkRcXHU4ODc1XFx1ODg3NlxcdTg4NzJcXHU4ODgwXFx1ODg3MVxcdTg4N0ZcXHU4ODZGXFx1ODg4M1xcdTg4N0VcXHU4ODc0XFx1ODg3Q1xcdThBMTJcXHU4QzQ3XFx1OEM1N1xcdThDN0JcXHU4Q0E0XFx1OENBM1xcdThENzZcXHU4RDc4XFx1OERCNVxcdThEQjdcXHU4REI2XFx1OEVEMVxcdThFRDNcXHU4RkZFXFx1OEZGNVxcdTkwMDJcXHU4RkZGXFx1OEZGQlxcdTkwMDRcXHU4RkZDXFx1OEZGNlxcdTkwRDZcXHU5MEUwXFx1OTBEOVxcdTkwREFcXHU5MEUzXFx1OTBERlxcdTkwRTVcXHU5MEQ4XFx1OTBEQlxcdTkwRDdcXHU5MERDXFx1OTBFNFxcdTkxNTBcIl0sXG4gICAgICBbXCJkNDQwXCIsIFwiXFx1OTE0RVxcdTkxNEZcXHU5MUQ1XFx1OTFFMlxcdTkxREFcXHU5NjVDXFx1OTY1RlxcdTk2QkNcXHU5OEUzXFx1OUFERlxcdTlCMkZcXHU0RTdGXFx1NTA3MFxcdTUwNkFcXHU1MDYxXFx1NTA1RVxcdTUwNjBcXHU1MDUzXFx1NTA0QlxcdTUwNURcXHU1MDcyXFx1NTA0OFxcdTUwNERcXHU1MDQxXFx1NTA1QlxcdTUwNEFcXHU1MDYyXFx1NTAxNVxcdTUwNDVcXHU1MDVGXFx1NTA2OVxcdTUwNkJcXHU1MDYzXFx1NTA2NFxcdTUwNDZcXHU1MDQwXFx1NTA2RVxcdTUwNzNcXHU1MDU3XFx1NTA1MVxcdTUxRDBcXHU1MjZCXFx1NTI2RFxcdTUyNkNcXHU1MjZFXFx1NTJENlxcdTUyRDNcXHU1MzJEXFx1NTM5Q1xcdTU1NzVcXHU1NTc2XFx1NTUzQ1xcdTU1NERcXHU1NTUwXFx1NTUzNFxcdTU1MkFcXHU1NTUxXFx1NTU2MlxcdTU1MzZcXHU1NTM1XFx1NTUzMFxcdTU1NTJcXHU1NTQ1XCJdLFxuICAgICAgW1wiZDRhMVwiLCBcIlxcdTU1MENcXHU1NTMyXFx1NTU2NVxcdTU1NEVcXHU1NTM5XFx1NTU0OFxcdTU1MkRcXHU1NTNCXFx1NTU0MFxcdTU1NEJcXHU1NzBBXFx1NTcwN1xcdTU3RkJcXHU1ODE0XFx1NTdFMlxcdTU3RjZcXHU1N0RDXFx1NTdGNFxcdTU4MDBcXHU1N0VEXFx1NTdGRFxcdTU4MDhcXHU1N0Y4XFx1NTgwQlxcdTU3RjNcXHU1N0NGXFx1NTgwN1xcdTU3RUVcXHU1N0UzXFx1NTdGMlxcdTU3RTVcXHU1N0VDXFx1NTdFMVxcdTU4MEVcXHU1N0ZDXFx1NTgxMFxcdTU3RTdcXHU1ODAxXFx1NTgwQ1xcdTU3RjFcXHU1N0U5XFx1NTdGMFxcdTU4MERcXHU1ODA0XFx1NTk1Q1xcdTVBNjBcXHU1QTU4XFx1NUE1NVxcdTVBNjdcXHU1QTVFXFx1NUEzOFxcdTVBMzVcXHU1QTZEXFx1NUE1MFxcdTVBNUZcXHU1QTY1XFx1NUE2Q1xcdTVBNTNcXHU1QTY0XFx1NUE1N1xcdTVBNDNcXHU1QTVEXFx1NUE1MlxcdTVBNDRcXHU1QTVCXFx1NUE0OFxcdTVBOEVcXHU1QTNFXFx1NUE0RFxcdTVBMzlcXHU1QTRDXFx1NUE3MFxcdTVBNjlcXHU1QTQ3XFx1NUE1MVxcdTVBNTZcXHU1QTQyXFx1NUE1Q1xcdTVCNzJcXHU1QjZFXFx1NUJDMVxcdTVCQzBcXHU1QzU5XFx1NUQxRVxcdTVEMEJcXHU1RDFEXFx1NUQxQVxcdTVEMjBcXHU1RDBDXFx1NUQyOFxcdTVEMERcXHU1RDI2XFx1NUQyNVxcdTVEMEZcIl0sXG4gICAgICBbXCJkNTQwXCIsIFwiXFx1NUQzMFxcdTVEMTJcXHU1RDIzXFx1NUQxRlxcdTVEMkVcXHU1RTNFXFx1NUUzNFxcdTVFQjFcXHU1RUI0XFx1NUVCOVxcdTVFQjJcXHU1RUIzXFx1NUYzNlxcdTVGMzhcXHU1RjlCXFx1NUY5NlxcdTVGOUZcXHU2MDhBXFx1NjA5MFxcdTYwODZcXHU2MEJFXFx1NjBCMFxcdTYwQkFcXHU2MEQzXFx1NjBENFxcdTYwQ0ZcXHU2MEU0XFx1NjBEOVxcdTYwRERcXHU2MEM4XFx1NjBCMVxcdTYwREJcXHU2MEI3XFx1NjBDQVxcdTYwQkZcXHU2MEMzXFx1NjBDRFxcdTYwQzBcXHU2MzMyXFx1NjM2NVxcdTYzOEFcXHU2MzgyXFx1NjM3RFxcdTYzQkRcXHU2MzlFXFx1NjNBRFxcdTYzOURcXHU2Mzk3XFx1NjNBQlxcdTYzOEVcXHU2MzZGXFx1NjM4N1xcdTYzOTBcXHU2MzZFXFx1NjNBRlxcdTYzNzVcXHU2MzlDXFx1NjM2RFxcdTYzQUVcXHU2MzdDXFx1NjNBNFxcdTYzM0JcXHU2MzlGXCJdLFxuICAgICAgW1wiZDVhMVwiLCBcIlxcdTYzNzhcXHU2Mzg1XFx1NjM4MVxcdTYzOTFcXHU2MzhEXFx1NjM3MFxcdTY1NTNcXHU2NUNEXFx1NjY2NVxcdTY2NjFcXHU2NjVCXFx1NjY1OVxcdTY2NUNcXHU2NjYyXFx1NjcxOFxcdTY4NzlcXHU2ODg3XFx1Njg5MFxcdTY4OUNcXHU2ODZEXFx1Njg2RVxcdTY4QUVcXHU2OEFCXFx1Njk1NlxcdTY4NkZcXHU2OEEzXFx1NjhBQ1xcdTY4QTlcXHU2ODc1XFx1Njg3NFxcdTY4QjJcXHU2ODhGXFx1Njg3N1xcdTY4OTJcXHU2ODdDXFx1Njg2QlxcdTY4NzJcXHU2OEFBXFx1Njg4MFxcdTY4NzFcXHU2ODdFXFx1Njg5QlxcdTY4OTZcXHU2ODhCXFx1NjhBMFxcdTY4ODlcXHU2OEE0XFx1Njg3OFxcdTY4N0JcXHU2ODkxXFx1Njg4Q1xcdTY4OEFcXHU2ODdEXFx1NkIzNlxcdTZCMzNcXHU2QjM3XFx1NkIzOFxcdTZCOTFcXHU2QjhGXFx1NkI4RFxcdTZCOEVcXHU2QjhDXFx1NkMyQVxcdTZEQzBcXHU2REFCXFx1NkRCNFxcdTZEQjNcXHU2RTc0XFx1NkRBQ1xcdTZERTlcXHU2REUyXFx1NkRCN1xcdTZERjZcXHU2REQ0XFx1NkUwMFxcdTZEQzhcXHU2REUwXFx1NkRERlxcdTZERDZcXHU2REJFXFx1NkRFNVxcdTZERENcXHU2REREXFx1NkREQlxcdTZERjRcXHU2RENBXFx1NkRCRFxcdTZERURcXHU2REYwXFx1NkRCQVxcdTZERDVcXHU2REMyXFx1NkRDRlxcdTZEQzlcIl0sXG4gICAgICBbXCJkNjQwXCIsIFwiXFx1NkREMFxcdTZERjJcXHU2REQzXFx1NkRGRFxcdTZERDdcXHU2RENEXFx1NkRFM1xcdTZEQkJcXHU3MEZBXFx1NzEwRFxcdTcwRjdcXHU3MTE3XFx1NzBGNFxcdTcxMENcXHU3MEYwXFx1NzEwNFxcdTcwRjNcXHU3MTEwXFx1NzBGQ1xcdTcwRkZcXHU3MTA2XFx1NzExM1xcdTcxMDBcXHU3MEY4XFx1NzBGNlxcdTcxMEJcXHU3MTAyXFx1NzEwRVxcdTcyN0VcXHU3MjdCXFx1NzI3Q1xcdTcyN0ZcXHU3MzFEXFx1NzMxN1xcdTczMDdcXHU3MzExXFx1NzMxOFxcdTczMEFcXHU3MzA4XFx1NzJGRlxcdTczMEZcXHU3MzFFXFx1NzM4OFxcdTczRjZcXHU3M0Y4XFx1NzNGNVxcdTc0MDRcXHU3NDAxXFx1NzNGRFxcdTc0MDdcXHU3NDAwXFx1NzNGQVxcdTczRkNcXHU3M0ZGXFx1NzQwQ1xcdTc0MEJcXHU3M0Y0XFx1NzQwOFxcdTc1NjRcXHU3NTYzXFx1NzVDRVxcdTc1RDJcXHU3NUNGXCJdLFxuICAgICAgW1wiZDZhMVwiLCBcIlxcdTc1Q0JcXHU3NUNDXFx1NzVEMVxcdTc1RDBcXHU3NjhGXFx1NzY4OVxcdTc2RDNcXHU3NzM5XFx1NzcyRlxcdTc3MkRcXHU3NzMxXFx1NzczMlxcdTc3MzRcXHU3NzMzXFx1NzczRFxcdTc3MjVcXHU3NzNCXFx1NzczNVxcdTc4NDhcXHU3ODUyXFx1Nzg0OVxcdTc4NERcXHU3ODRBXFx1Nzg0Q1xcdTc4MjZcXHU3ODQ1XFx1Nzg1MFxcdTc5NjRcXHU3OTY3XFx1Nzk2OVxcdTc5NkFcXHU3OTYzXFx1Nzk2QlxcdTc5NjFcXHU3OUJCXFx1NzlGQVxcdTc5RjhcXHU3OUY2XFx1NzlGN1xcdTdBOEZcXHU3QTk0XFx1N0E5MFxcdTdCMzVcXHU3QjQ3XFx1N0IzNFxcdTdCMjVcXHU3QjMwXFx1N0IyMlxcdTdCMjRcXHU3QjMzXFx1N0IxOFxcdTdCMkFcXHU3QjFEXFx1N0IzMVxcdTdCMkJcXHU3QjJEXFx1N0IyRlxcdTdCMzJcXHU3QjM4XFx1N0IxQVxcdTdCMjNcXHU3Qzk0XFx1N0M5OFxcdTdDOTZcXHU3Q0EzXFx1N0QzNVxcdTdEM0RcXHU3RDM4XFx1N0QzNlxcdTdEM0FcXHU3RDQ1XFx1N0QyQ1xcdTdEMjlcXHU3RDQxXFx1N0Q0N1xcdTdEM0VcXHU3RDNGXFx1N0Q0QVxcdTdEM0JcXHU3RDI4XFx1N0Y2M1xcdTdGOTVcXHU3RjlDXFx1N0Y5RFxcdTdGOUJcXHU3RkNBXFx1N0ZDQlxcdTdGQ0RcXHU3RkQwXFx1N0ZEMVxcdTdGQzdcXHU3RkNGXFx1N0ZDOVxcdTgwMUZcIl0sXG4gICAgICBbXCJkNzQwXCIsIFwiXFx1ODAxRVxcdTgwMUJcXHU4MDQ3XFx1ODA0M1xcdTgwNDhcXHU4MTE4XFx1ODEyNVxcdTgxMTlcXHU4MTFCXFx1ODEyRFxcdTgxMUZcXHU4MTJDXFx1ODExRVxcdTgxMjFcXHU4MTE1XFx1ODEyN1xcdTgxMURcXHU4MTIyXFx1ODIxMVxcdTgyMzhcXHU4MjMzXFx1ODIzQVxcdTgyMzRcXHU4MjMyXFx1ODI3NFxcdTgzOTBcXHU4M0EzXFx1ODNBOFxcdTgzOERcXHU4MzdBXFx1ODM3M1xcdTgzQTRcXHU4Mzc0XFx1ODM4RlxcdTgzODFcXHU4Mzk1XFx1ODM5OVxcdTgzNzVcXHU4Mzk0XFx1ODNBOVxcdTgzN0RcXHU4MzgzXFx1ODM4Q1xcdTgzOURcXHU4MzlCXFx1ODNBQVxcdTgzOEJcXHU4MzdFXFx1ODNBNVxcdTgzQUZcXHU4Mzg4XFx1ODM5N1xcdTgzQjBcXHU4MzdGXFx1ODNBNlxcdTgzODdcXHU4M0FFXFx1ODM3NlxcdTgzOUFcXHU4NjU5XFx1ODY1NlxcdTg2QkZcXHU4NkI3XCJdLFxuICAgICAgW1wiZDdhMVwiLCBcIlxcdTg2QzJcXHU4NkMxXFx1ODZDNVxcdTg2QkFcXHU4NkIwXFx1ODZDOFxcdTg2QjlcXHU4NkIzXFx1ODZCOFxcdTg2Q0NcXHU4NkI0XFx1ODZCQlxcdTg2QkNcXHU4NkMzXFx1ODZCRFxcdTg2QkVcXHU4ODUyXFx1ODg4OVxcdTg4OTVcXHU4OEE4XFx1ODhBMlxcdTg4QUFcXHU4ODlBXFx1ODg5MVxcdTg4QTFcXHU4ODlGXFx1ODg5OFxcdTg4QTdcXHU4ODk5XFx1ODg5QlxcdTg4OTdcXHU4OEE0XFx1ODhBQ1xcdTg4OENcXHU4ODkzXFx1ODg4RVxcdTg5ODJcXHU4OUQ2XFx1ODlEOVxcdTg5RDVcXHU4QTMwXFx1OEEyN1xcdThBMkNcXHU4QTFFXFx1OEMzOVxcdThDM0JcXHU4QzVDXFx1OEM1RFxcdThDN0RcXHU4Q0E1XFx1OEQ3RFxcdThEN0JcXHU4RDc5XFx1OERCQ1xcdThEQzJcXHU4REI5XFx1OERCRlxcdThEQzFcXHU4RUQ4XFx1OEVERVxcdThFRERcXHU4RURDXFx1OEVEN1xcdThFRTBcXHU4RUUxXFx1OTAyNFxcdTkwMEJcXHU5MDExXFx1OTAxQ1xcdTkwMENcXHU5MDIxXFx1OTBFRlxcdTkwRUFcXHU5MEYwXFx1OTBGNFxcdTkwRjJcXHU5MEYzXFx1OTBENFxcdTkwRUJcXHU5MEVDXFx1OTBFOVxcdTkxNTZcXHU5MTU4XFx1OTE1QVxcdTkxNTNcXHU5MTU1XFx1OTFFQ1xcdTkxRjRcXHU5MUYxXFx1OTFGM1xcdTkxRjhcXHU5MUU0XFx1OTFGOVxcdTkxRUFcIl0sXG4gICAgICBbXCJkODQwXCIsIFwiXFx1OTFFQlxcdTkxRjdcXHU5MUU4XFx1OTFFRVxcdTk1N0FcXHU5NTg2XFx1OTU4OFxcdTk2N0NcXHU5NjZEXFx1OTY2QlxcdTk2NzFcXHU5NjZGXFx1OTZCRlxcdTk3NkFcXHU5ODA0XFx1OThFNVxcdTk5OTdcXHU1MDlCXFx1NTA5NVxcdTUwOTRcXHU1MDlFXFx1NTA4QlxcdTUwQTNcXHU1MDgzXFx1NTA4Q1xcdTUwOEVcXHU1MDlEXFx1NTA2OFxcdTUwOUNcXHU1MDkyXFx1NTA4MlxcdTUwODdcXHU1MTVGXFx1NTFENFxcdTUzMTJcXHU1MzExXFx1NTNBNFxcdTUzQTdcXHU1NTkxXFx1NTVBOFxcdTU1QTVcXHU1NUFEXFx1NTU3N1xcdTU2NDVcXHU1NUEyXFx1NTU5M1xcdTU1ODhcXHU1NThGXFx1NTVCNVxcdTU1ODFcXHU1NUEzXFx1NTU5MlxcdTU1QTRcXHU1NTdEXFx1NTU4Q1xcdTU1QTZcXHU1NTdGXFx1NTU5NVxcdTU1QTFcXHU1NThFXFx1NTcwQ1xcdTU4MjlcXHU1ODM3XCJdLFxuICAgICAgW1wiZDhhMVwiLCBcIlxcdTU4MTlcXHU1ODFFXFx1NTgyN1xcdTU4MjNcXHU1ODI4XFx1NTdGNVxcdTU4NDhcXHU1ODI1XFx1NTgxQ1xcdTU4MUJcXHU1ODMzXFx1NTgzRlxcdTU4MzZcXHU1ODJFXFx1NTgzOVxcdTU4MzhcXHU1ODJEXFx1NTgyQ1xcdTU4M0JcXHU1OTYxXFx1NUFBRlxcdTVBOTRcXHU1QTlGXFx1NUE3QVxcdTVBQTJcXHU1QTlFXFx1NUE3OFxcdTVBQTZcXHU1QTdDXFx1NUFBNVxcdTVBQUNcXHU1QTk1XFx1NUFBRVxcdTVBMzdcXHU1QTg0XFx1NUE4QVxcdTVBOTdcXHU1QTgzXFx1NUE4QlxcdTVBQTlcXHU1QTdCXFx1NUE3RFxcdTVBOENcXHU1QTlDXFx1NUE4RlxcdTVBOTNcXHU1QTlEXFx1NUJFQVxcdTVCQ0RcXHU1QkNCXFx1NUJENFxcdTVCRDFcXHU1QkNBXFx1NUJDRVxcdTVDMENcXHU1QzMwXFx1NUQzN1xcdTVENDNcXHU1RDZCXFx1NUQ0MVxcdTVENEJcXHU1RDNGXFx1NUQzNVxcdTVENTFcXHU1RDRFXFx1NUQ1NVxcdTVEMzNcXHU1RDNBXFx1NUQ1MlxcdTVEM0RcXHU1RDMxXFx1NUQ1OVxcdTVENDJcXHU1RDM5XFx1NUQ0OVxcdTVEMzhcXHU1RDNDXFx1NUQzMlxcdTVEMzZcXHU1RDQwXFx1NUQ0NVxcdTVFNDRcXHU1RTQxXFx1NUY1OFxcdTVGQTZcXHU1RkE1XFx1NUZBQlxcdTYwQzlcXHU2MEI5XFx1NjBDQ1xcdTYwRTJcXHU2MENFXFx1NjBDNFxcdTYxMTRcIl0sXG4gICAgICBbXCJkOTQwXCIsIFwiXFx1NjBGMlxcdTYxMEFcXHU2MTE2XFx1NjEwNVxcdTYwRjVcXHU2MTEzXFx1NjBGOFxcdTYwRkNcXHU2MEZFXFx1NjBDMVxcdTYxMDNcXHU2MTE4XFx1NjExRFxcdTYxMTBcXHU2MEZGXFx1NjEwNFxcdTYxMEJcXHU2MjRBXFx1NjM5NFxcdTYzQjFcXHU2M0IwXFx1NjNDRVxcdTYzRTVcXHU2M0U4XFx1NjNFRlxcdTYzQzNcXHU2NDlEXFx1NjNGM1xcdTYzQ0FcXHU2M0UwXFx1NjNGNlxcdTYzRDVcXHU2M0YyXFx1NjNGNVxcdTY0NjFcXHU2M0RGXFx1NjNCRVxcdTYzRERcXHU2M0RDXFx1NjNDNFxcdTYzRDhcXHU2M0QzXFx1NjNDMlxcdTYzQzdcXHU2M0NDXFx1NjNDQlxcdTYzQzhcXHU2M0YwXFx1NjNEN1xcdTYzRDlcXHU2NTMyXFx1NjU2N1xcdTY1NkFcXHU2NTY0XFx1NjU1Q1xcdTY1NjhcXHU2NTY1XFx1NjU4Q1xcdTY1OURcXHU2NTlFXFx1NjVBRVxcdTY1RDBcXHU2NUQyXCJdLFxuICAgICAgW1wiZDlhMVwiLCBcIlxcdTY2N0NcXHU2NjZDXFx1NjY3QlxcdTY2ODBcXHU2NjcxXFx1NjY3OVxcdTY2NkFcXHU2NjcyXFx1NjcwMVxcdTY5MENcXHU2OEQzXFx1NjkwNFxcdTY4RENcXHU2OTJBXFx1NjhFQ1xcdTY4RUFcXHU2OEYxXFx1NjkwRlxcdTY4RDZcXHU2OEY3XFx1NjhFQlxcdTY4RTRcXHU2OEY2XFx1NjkxM1xcdTY5MTBcXHU2OEYzXFx1NjhFMVxcdTY5MDdcXHU2OENDXFx1NjkwOFxcdTY5NzBcXHU2OEI0XFx1NjkxMVxcdTY4RUZcXHU2OEM2XFx1NjkxNFxcdTY4RjhcXHU2OEQwXFx1NjhGRFxcdTY4RkNcXHU2OEU4XFx1NjkwQlxcdTY5MEFcXHU2OTE3XFx1NjhDRVxcdTY4QzhcXHU2OEREXFx1NjhERVxcdTY4RTZcXHU2OEY0XFx1NjhEMVxcdTY5MDZcXHU2OEQ0XFx1NjhFOVxcdTY5MTVcXHU2OTI1XFx1NjhDN1xcdTZCMzlcXHU2QjNCXFx1NkIzRlxcdTZCM0NcXHU2Qjk0XFx1NkI5N1xcdTZCOTlcXHU2Qjk1XFx1NkJCRFxcdTZCRjBcXHU2QkYyXFx1NkJGM1xcdTZDMzBcXHU2REZDXFx1NkU0NlxcdTZFNDdcXHU2RTFGXFx1NkU0OVxcdTZFODhcXHU2RTNDXFx1NkUzRFxcdTZFNDVcXHU2RTYyXFx1NkUyQlxcdTZFM0ZcXHU2RTQxXFx1NkU1RFxcdTZFNzNcXHU2RTFDXFx1NkUzM1xcdTZFNEJcXHU2RTQwXFx1NkU1MVxcdTZFM0JcXHU2RTAzXFx1NkUyRVxcdTZFNUVcIl0sXG4gICAgICBbXCJkYTQwXCIsIFwiXFx1NkU2OFxcdTZFNUNcXHU2RTYxXFx1NkUzMVxcdTZFMjhcXHU2RTYwXFx1NkU3MVxcdTZFNkJcXHU2RTM5XFx1NkUyMlxcdTZFMzBcXHU2RTUzXFx1NkU2NVxcdTZFMjdcXHU2RTc4XFx1NkU2NFxcdTZFNzdcXHU2RTU1XFx1NkU3OVxcdTZFNTJcXHU2RTY2XFx1NkUzNVxcdTZFMzZcXHU2RTVBXFx1NzEyMFxcdTcxMUVcXHU3MTJGXFx1NzBGQlxcdTcxMkVcXHU3MTMxXFx1NzEyM1xcdTcxMjVcXHU3MTIyXFx1NzEzMlxcdTcxMUZcXHU3MTI4XFx1NzEzQVxcdTcxMUJcXHU3MjRCXFx1NzI1QVxcdTcyODhcXHU3Mjg5XFx1NzI4NlxcdTcyODVcXHU3MjhCXFx1NzMxMlxcdTczMEJcXHU3MzMwXFx1NzMyMlxcdTczMzFcXHU3MzMzXFx1NzMyN1xcdTczMzJcXHU3MzJEXFx1NzMyNlxcdTczMjNcXHU3MzM1XFx1NzMwQ1xcdTc0MkVcXHU3NDJDXFx1NzQzMFxcdTc0MkJcXHU3NDE2XCJdLFxuICAgICAgW1wiZGFhMVwiLCBcIlxcdTc0MUFcXHU3NDIxXFx1NzQyRFxcdTc0MzFcXHU3NDI0XFx1NzQyM1xcdTc0MURcXHU3NDI5XFx1NzQyMFxcdTc0MzJcXHU3NEZCXFx1NzUyRlxcdTc1NkZcXHU3NTZDXFx1NzVFN1xcdTc1REFcXHU3NUUxXFx1NzVFNlxcdTc1RERcXHU3NURGXFx1NzVFNFxcdTc1RDdcXHU3Njk1XFx1NzY5MlxcdTc2REFcXHU3NzQ2XFx1Nzc0N1xcdTc3NDRcXHU3NzREXFx1Nzc0NVxcdTc3NEFcXHU3NzRFXFx1Nzc0QlxcdTc3NENcXHU3N0RFXFx1NzdFQ1xcdTc4NjBcXHU3ODY0XFx1Nzg2NVxcdTc4NUNcXHU3ODZEXFx1Nzg3MVxcdTc4NkFcXHU3ODZFXFx1Nzg3MFxcdTc4NjlcXHU3ODY4XFx1Nzg1RVxcdTc4NjJcXHU3OTc0XFx1Nzk3M1xcdTc5NzJcXHU3OTcwXFx1N0EwMlxcdTdBMEFcXHU3QTAzXFx1N0EwQ1xcdTdBMDRcXHU3QTk5XFx1N0FFNlxcdTdBRTRcXHU3QjRBXFx1N0IzQlxcdTdCNDRcXHU3QjQ4XFx1N0I0Q1xcdTdCNEVcXHU3QjQwXFx1N0I1OFxcdTdCNDVcXHU3Q0EyXFx1N0M5RVxcdTdDQThcXHU3Q0ExXFx1N0Q1OFxcdTdENkZcXHU3RDYzXFx1N0Q1M1xcdTdENTZcXHU3RDY3XFx1N0Q2QVxcdTdENEZcXHU3RDZEXFx1N0Q1Q1xcdTdENkJcXHU3RDUyXFx1N0Q1NFxcdTdENjlcXHU3RDUxXFx1N0Q1RlxcdTdENEVcXHU3RjNFXFx1N0YzRlxcdTdGNjVcIl0sXG4gICAgICBbXCJkYjQwXCIsIFwiXFx1N0Y2NlxcdTdGQTJcXHU3RkEwXFx1N0ZBMVxcdTdGRDdcXHU4MDUxXFx1ODA0RlxcdTgwNTBcXHU4MEZFXFx1ODBENFxcdTgxNDNcXHU4MTRBXFx1ODE1MlxcdTgxNEZcXHU4MTQ3XFx1ODEzRFxcdTgxNERcXHU4MTNBXFx1ODFFNlxcdTgxRUVcXHU4MUY3XFx1ODFGOFxcdTgxRjlcXHU4MjA0XFx1ODIzQ1xcdTgyM0RcXHU4MjNGXFx1ODI3NVxcdTgzM0JcXHU4M0NGXFx1ODNGOVxcdTg0MjNcXHU4M0MwXFx1ODNFOFxcdTg0MTJcXHU4M0U3XFx1ODNFNFxcdTgzRkNcXHU4M0Y2XFx1ODQxMFxcdTgzQzZcXHU4M0M4XFx1ODNFQlxcdTgzRTNcXHU4M0JGXFx1ODQwMVxcdTgzRERcXHU4M0U1XFx1ODNEOFxcdTgzRkZcXHU4M0UxXFx1ODNDQlxcdTgzQ0VcXHU4M0Q2XFx1ODNGNVxcdTgzQzlcXHU4NDA5XFx1ODQwRlxcdTgzREVcXHU4NDExXFx1ODQwNlxcdTgzQzJcXHU4M0YzXCJdLFxuICAgICAgW1wiZGJhMVwiLCBcIlxcdTgzRDVcXHU4M0ZBXFx1ODNDN1xcdTgzRDFcXHU4M0VBXFx1ODQxM1xcdTgzQzNcXHU4M0VDXFx1ODNFRVxcdTgzQzRcXHU4M0ZCXFx1ODNEN1xcdTgzRTJcXHU4NDFCXFx1ODNEQlxcdTgzRkVcXHU4NkQ4XFx1ODZFMlxcdTg2RTZcXHU4NkQzXFx1ODZFM1xcdTg2REFcXHU4NkVBXFx1ODZERFxcdTg2RUJcXHU4NkRDXFx1ODZFQ1xcdTg2RTlcXHU4NkQ3XFx1ODZFOFxcdTg2RDFcXHU4ODQ4XFx1ODg1NlxcdTg4NTVcXHU4OEJBXFx1ODhEN1xcdTg4QjlcXHU4OEI4XFx1ODhDMFxcdTg4QkVcXHU4OEI2XFx1ODhCQ1xcdTg4QjdcXHU4OEJEXFx1ODhCMlxcdTg5MDFcXHU4OEM5XFx1ODk5NVxcdTg5OThcXHU4OTk3XFx1ODlERFxcdTg5REFcXHU4OURCXFx1OEE0RVxcdThBNERcXHU4QTM5XFx1OEE1OVxcdThBNDBcXHU4QTU3XFx1OEE1OFxcdThBNDRcXHU4QTQ1XFx1OEE1MlxcdThBNDhcXHU4QTUxXFx1OEE0QVxcdThBNENcXHU4QTRGXFx1OEM1RlxcdThDODFcXHU4QzgwXFx1OENCQVxcdThDQkVcXHU4Q0IwXFx1OENCOVxcdThDQjVcXHU4RDg0XFx1OEQ4MFxcdThEODlcXHU4REQ4XFx1OEREM1xcdThEQ0RcXHU4REM3XFx1OERENlxcdThERENcXHU4RENGXFx1OERENVxcdThERDlcXHU4REM4XFx1OEREN1xcdThEQzVcXHU4RUVGXFx1OEVGN1xcdThFRkFcIl0sXG4gICAgICBbXCJkYzQwXCIsIFwiXFx1OEVGOVxcdThFRTZcXHU4RUVFXFx1OEVFNVxcdThFRjVcXHU4RUU3XFx1OEVFOFxcdThFRjZcXHU4RUVCXFx1OEVGMVxcdThFRUNcXHU4RUY0XFx1OEVFOVxcdTkwMkRcXHU5MDM0XFx1OTAyRlxcdTkxMDZcXHU5MTJDXFx1OTEwNFxcdTkwRkZcXHU5MEZDXFx1OTEwOFxcdTkwRjlcXHU5MEZCXFx1OTEwMVxcdTkxMDBcXHU5MTA3XFx1OTEwNVxcdTkxMDNcXHU5MTYxXFx1OTE2NFxcdTkxNUZcXHU5MTYyXFx1OTE2MFxcdTkyMDFcXHU5MjBBXFx1OTIyNVxcdTkyMDNcXHU5MjFBXFx1OTIyNlxcdTkyMEZcXHU5MjBDXFx1OTIwMFxcdTkyMTJcXHU5MUZGXFx1OTFGRFxcdTkyMDZcXHU5MjA0XFx1OTIyN1xcdTkyMDJcXHU5MjFDXFx1OTIyNFxcdTkyMTlcXHU5MjE3XFx1OTIwNVxcdTkyMTZcXHU5NTdCXFx1OTU4RFxcdTk1OENcXHU5NTkwXFx1OTY4N1xcdTk2N0VcXHU5Njg4XCJdLFxuICAgICAgW1wiZGNhMVwiLCBcIlxcdTk2ODlcXHU5NjgzXFx1OTY4MFxcdTk2QzJcXHU5NkM4XFx1OTZDM1xcdTk2RjFcXHU5NkYwXFx1OTc2Q1xcdTk3NzBcXHU5NzZFXFx1OTgwN1xcdTk4QTlcXHU5OEVCXFx1OUNFNlxcdTlFRjlcXHU0RTgzXFx1NEU4NFxcdTRFQjZcXHU1MEJEXFx1NTBCRlxcdTUwQzZcXHU1MEFFXFx1NTBDNFxcdTUwQ0FcXHU1MEI0XFx1NTBDOFxcdTUwQzJcXHU1MEIwXFx1NTBDMVxcdTUwQkFcXHU1MEIxXFx1NTBDQlxcdTUwQzlcXHU1MEI2XFx1NTBCOFxcdTUxRDdcXHU1MjdBXFx1NTI3OFxcdTUyN0JcXHU1MjdDXFx1NTVDM1xcdTU1REJcXHU1NUNDXFx1NTVEMFxcdTU1Q0JcXHU1NUNBXFx1NTVERFxcdTU1QzBcXHU1NUQ0XFx1NTVDNFxcdTU1RTlcXHU1NUJGXFx1NTVEMlxcdTU1OERcXHU1NUNGXFx1NTVENVxcdTU1RTJcXHU1NUQ2XFx1NTVDOFxcdTU1RjJcXHU1NUNEXFx1NTVEOVxcdTU1QzJcXHU1NzE0XFx1NTg1M1xcdTU4NjhcXHU1ODY0XFx1NTg0RlxcdTU4NERcXHU1ODQ5XFx1NTg2RlxcdTU4NTVcXHU1ODRFXFx1NTg1RFxcdTU4NTlcXHU1ODY1XFx1NTg1QlxcdTU4M0RcXHU1ODYzXFx1NTg3MVxcdTU4RkNcXHU1QUM3XFx1NUFDNFxcdTVBQ0JcXHU1QUJBXFx1NUFCOFxcdTVBQjFcXHU1QUI1XFx1NUFCMFxcdTVBQkZcXHU1QUM4XFx1NUFCQlxcdTVBQzZcIl0sXG4gICAgICBbXCJkZDQwXCIsIFwiXFx1NUFCN1xcdTVBQzBcXHU1QUNBXFx1NUFCNFxcdTVBQjZcXHU1QUNEXFx1NUFCOVxcdTVBOTBcXHU1QkQ2XFx1NUJEOFxcdTVCRDlcXHU1QzFGXFx1NUMzM1xcdTVENzFcXHU1RDYzXFx1NUQ0QVxcdTVENjVcXHU1RDcyXFx1NUQ2Q1xcdTVENUVcXHU1RDY4XFx1NUQ2N1xcdTVENjJcXHU1REYwXFx1NUU0RlxcdTVFNEVcXHU1RTRBXFx1NUU0RFxcdTVFNEJcXHU1RUM1XFx1NUVDQ1xcdTVFQzZcXHU1RUNCXFx1NUVDN1xcdTVGNDBcXHU1RkFGXFx1NUZBRFxcdTYwRjdcXHU2MTQ5XFx1NjE0QVxcdTYxMkJcXHU2MTQ1XFx1NjEzNlxcdTYxMzJcXHU2MTJFXFx1NjE0NlxcdTYxMkZcXHU2MTRGXFx1NjEyOVxcdTYxNDBcXHU2MjIwXFx1OTE2OFxcdTYyMjNcXHU2MjI1XFx1NjIyNFxcdTYzQzVcXHU2M0YxXFx1NjNFQlxcdTY0MTBcXHU2NDEyXFx1NjQwOVxcdTY0MjBcXHU2NDI0XCJdLFxuICAgICAgW1wiZGRhMVwiLCBcIlxcdTY0MzNcXHU2NDQzXFx1NjQxRlxcdTY0MTVcXHU2NDE4XFx1NjQzOVxcdTY0MzdcXHU2NDIyXFx1NjQyM1xcdTY0MENcXHU2NDI2XFx1NjQzMFxcdTY0MjhcXHU2NDQxXFx1NjQzNVxcdTY0MkZcXHU2NDBBXFx1NjQxQVxcdTY0NDBcXHU2NDI1XFx1NjQyN1xcdTY0MEJcXHU2M0U3XFx1NjQxQlxcdTY0MkVcXHU2NDIxXFx1NjQwRVxcdTY1NkZcXHU2NTkyXFx1NjVEM1xcdTY2ODZcXHU2NjhDXFx1NjY5NVxcdTY2OTBcXHU2NjhCXFx1NjY4QVxcdTY2OTlcXHU2Njk0XFx1NjY3OFxcdTY3MjBcXHU2OTY2XFx1Njk1RlxcdTY5MzhcXHU2OTRFXFx1Njk2MlxcdTY5NzFcXHU2OTNGXFx1Njk0NVxcdTY5NkFcXHU2OTM5XFx1Njk0MlxcdTY5NTdcXHU2OTU5XFx1Njk3QVxcdTY5NDhcXHU2OTQ5XFx1NjkzNVxcdTY5NkNcXHU2OTMzXFx1NjkzRFxcdTY5NjVcXHU2OEYwXFx1Njk3OFxcdTY5MzRcXHU2OTY5XFx1Njk0MFxcdTY5NkZcXHU2OTQ0XFx1Njk3NlxcdTY5NThcXHU2OTQxXFx1Njk3NFxcdTY5NENcXHU2OTNCXFx1Njk0QlxcdTY5MzdcXHU2OTVDXFx1Njk0RlxcdTY5NTFcXHU2OTMyXFx1Njk1MlxcdTY5MkZcXHU2OTdCXFx1NjkzQ1xcdTZCNDZcXHU2QjQ1XFx1NkI0M1xcdTZCNDJcXHU2QjQ4XFx1NkI0MVxcdTZCOUJcXHVGQTBEXFx1NkJGQlxcdTZCRkNcIl0sXG4gICAgICBbXCJkZTQwXCIsIFwiXFx1NkJGOVxcdTZCRjdcXHU2QkY4XFx1NkU5QlxcdTZFRDZcXHU2RUM4XFx1NkU4RlxcdTZFQzBcXHU2RTlGXFx1NkU5M1xcdTZFOTRcXHU2RUEwXFx1NkVCMVxcdTZFQjlcXHU2RUM2XFx1NkVEMlxcdTZFQkRcXHU2RUMxXFx1NkU5RVxcdTZFQzlcXHU2RUI3XFx1NkVCMFxcdTZFQ0RcXHU2RUE2XFx1NkVDRlxcdTZFQjJcXHU2RUJFXFx1NkVDM1xcdTZFRENcXHU2RUQ4XFx1NkU5OVxcdTZFOTJcXHU2RThFXFx1NkU4RFxcdTZFQTRcXHU2RUExXFx1NkVCRlxcdTZFQjNcXHU2RUQwXFx1NkVDQVxcdTZFOTdcXHU2RUFFXFx1NkVBM1xcdTcxNDdcXHU3MTU0XFx1NzE1MlxcdTcxNjNcXHU3MTYwXFx1NzE0MVxcdTcxNURcXHU3MTYyXFx1NzE3MlxcdTcxNzhcXHU3MTZBXFx1NzE2MVxcdTcxNDJcXHU3MTU4XFx1NzE0M1xcdTcxNEJcXHU3MTcwXFx1NzE1RlxcdTcxNTBcXHU3MTUzXCJdLFxuICAgICAgW1wiZGVhMVwiLCBcIlxcdTcxNDRcXHU3MTREXFx1NzE1QVxcdTcyNEZcXHU3MjhEXFx1NzI4Q1xcdTcyOTFcXHU3MjkwXFx1NzI4RVxcdTczM0NcXHU3MzQyXFx1NzMzQlxcdTczM0FcXHU3MzQwXFx1NzM0QVxcdTczNDlcXHU3NDQ0XFx1NzQ0QVxcdTc0NEJcXHU3NDUyXFx1NzQ1MVxcdTc0NTdcXHU3NDQwXFx1NzQ0RlxcdTc0NTBcXHU3NDRFXFx1NzQ0MlxcdTc0NDZcXHU3NDREXFx1NzQ1NFxcdTc0RTFcXHU3NEZGXFx1NzRGRVxcdTc0RkRcXHU3NTFEXFx1NzU3OVxcdTc1NzdcXHU2OTgzXFx1NzVFRlxcdTc2MEZcXHU3NjAzXFx1NzVGN1xcdTc1RkVcXHU3NUZDXFx1NzVGOVxcdTc1RjhcXHU3NjEwXFx1NzVGQlxcdTc1RjZcXHU3NUVEXFx1NzVGNVxcdTc1RkRcXHU3Njk5XFx1NzZCNVxcdTc2RERcXHU3NzU1XFx1Nzc1RlxcdTc3NjBcXHU3NzUyXFx1Nzc1NlxcdTc3NUFcXHU3NzY5XFx1Nzc2N1xcdTc3NTRcXHU3NzU5XFx1Nzc2RFxcdTc3RTBcXHU3ODg3XFx1Nzg5QVxcdTc4OTRcXHU3ODhGXFx1Nzg4NFxcdTc4OTVcXHU3ODg1XFx1Nzg4NlxcdTc4QTFcXHU3ODgzXFx1Nzg3OVxcdTc4OTlcXHU3ODgwXFx1Nzg5NlxcdTc4N0JcXHU3OTdDXFx1Nzk4MlxcdTc5N0RcXHU3OTc5XFx1N0ExMVxcdTdBMThcXHU3QTE5XFx1N0ExMlxcdTdBMTdcXHU3QTE1XFx1N0EyMlxcdTdBMTNcIl0sXG4gICAgICBbXCJkZjQwXCIsIFwiXFx1N0ExQlxcdTdBMTBcXHU3QUEzXFx1N0FBMlxcdTdBOUVcXHU3QUVCXFx1N0I2NlxcdTdCNjRcXHU3QjZEXFx1N0I3NFxcdTdCNjlcXHU3QjcyXFx1N0I2NVxcdTdCNzNcXHU3QjcxXFx1N0I3MFxcdTdCNjFcXHU3Qjc4XFx1N0I3NlxcdTdCNjNcXHU3Q0IyXFx1N0NCNFxcdTdDQUZcXHU3RDg4XFx1N0Q4NlxcdTdEODBcXHU3RDhEXFx1N0Q3RlxcdTdEODVcXHU3RDdBXFx1N0Q4RVxcdTdEN0JcXHU3RDgzXFx1N0Q3Q1xcdTdEOENcXHU3RDk0XFx1N0Q4NFxcdTdEN0RcXHU3RDkyXFx1N0Y2RFxcdTdGNkJcXHU3RjY3XFx1N0Y2OFxcdTdGNkNcXHU3RkE2XFx1N0ZBNVxcdTdGQTdcXHU3RkRCXFx1N0ZEQ1xcdTgwMjFcXHU4MTY0XFx1ODE2MFxcdTgxNzdcXHU4MTVDXFx1ODE2OVxcdTgxNUJcXHU4MTYyXFx1ODE3MlxcdTY3MjFcXHU4MTVFXFx1ODE3NlxcdTgxNjdcXHU4MTZGXCJdLFxuICAgICAgW1wiZGZhMVwiLCBcIlxcdTgxNDRcXHU4MTYxXFx1ODIxRFxcdTgyNDlcXHU4MjQ0XFx1ODI0MFxcdTgyNDJcXHU4MjQ1XFx1ODRGMVxcdTg0M0ZcXHU4NDU2XFx1ODQ3NlxcdTg0NzlcXHU4NDhGXFx1ODQ4RFxcdTg0NjVcXHU4NDUxXFx1ODQ0MFxcdTg0ODZcXHU4NDY3XFx1ODQzMFxcdTg0NERcXHU4NDdEXFx1ODQ1QVxcdTg0NTlcXHU4NDc0XFx1ODQ3M1xcdTg0NURcXHU4NTA3XFx1ODQ1RVxcdTg0MzdcXHU4NDNBXFx1ODQzNFxcdTg0N0FcXHU4NDQzXFx1ODQ3OFxcdTg0MzJcXHU4NDQ1XFx1ODQyOVxcdTgzRDlcXHU4NDRCXFx1ODQyRlxcdTg0NDJcXHU4NDJEXFx1ODQ1RlxcdTg0NzBcXHU4NDM5XFx1ODQ0RVxcdTg0NENcXHU4NDUyXFx1ODQ2RlxcdTg0QzVcXHU4NDhFXFx1ODQzQlxcdTg0NDdcXHU4NDM2XFx1ODQzM1xcdTg0NjhcXHU4NDdFXFx1ODQ0NFxcdTg0MkJcXHU4NDYwXFx1ODQ1NFxcdTg0NkVcXHU4NDUwXFx1ODcwQlxcdTg3MDRcXHU4NkY3XFx1ODcwQ1xcdTg2RkFcXHU4NkQ2XFx1ODZGNVxcdTg3NERcXHU4NkY4XFx1ODcwRVxcdTg3MDlcXHU4NzAxXFx1ODZGNlxcdTg3MERcXHU4NzA1XFx1ODhENlxcdTg4Q0JcXHU4OENEXFx1ODhDRVxcdTg4REVcXHU4OERCXFx1ODhEQVxcdTg4Q0NcXHU4OEQwXFx1ODk4NVxcdTg5OUJcXHU4OURGXFx1ODlFNVxcdTg5RTRcIl0sXG4gICAgICBbXCJlMDQwXCIsIFwiXFx1ODlFMVxcdTg5RTBcXHU4OUUyXFx1ODlEQ1xcdTg5RTZcXHU4QTc2XFx1OEE4NlxcdThBN0ZcXHU4QTYxXFx1OEEzRlxcdThBNzdcXHU4QTgyXFx1OEE4NFxcdThBNzVcXHU4QTgzXFx1OEE4MVxcdThBNzRcXHU4QTdBXFx1OEMzQ1xcdThDNEJcXHU4QzRBXFx1OEM2NVxcdThDNjRcXHU4QzY2XFx1OEM4NlxcdThDODRcXHU4Qzg1XFx1OENDQ1xcdThENjhcXHU4RDY5XFx1OEQ5MVxcdThEOENcXHU4RDhFXFx1OEQ4RlxcdThEOERcXHU4RDkzXFx1OEQ5NFxcdThEOTBcXHU4RDkyXFx1OERGMFxcdThERTBcXHU4REVDXFx1OERGMVxcdThERUVcXHU4REQwXFx1OERFOVxcdThERTNcXHU4REUyXFx1OERFN1xcdThERjJcXHU4REVCXFx1OERGNFxcdThGMDZcXHU4RUZGXFx1OEYwMVxcdThGMDBcXHU4RjA1XFx1OEYwN1xcdThGMDhcXHU4RjAyXFx1OEYwQlxcdTkwNTJcXHU5MDNGXCJdLFxuICAgICAgW1wiZTBhMVwiLCBcIlxcdTkwNDRcXHU5MDQ5XFx1OTAzRFxcdTkxMTBcXHU5MTBEXFx1OTEwRlxcdTkxMTFcXHU5MTE2XFx1OTExNFxcdTkxMEJcXHU5MTBFXFx1OTE2RVxcdTkxNkZcXHU5MjQ4XFx1OTI1MlxcdTkyMzBcXHU5MjNBXFx1OTI2NlxcdTkyMzNcXHU5MjY1XFx1OTI1RVxcdTkyODNcXHU5MjJFXFx1OTI0QVxcdTkyNDZcXHU5MjZEXFx1OTI2Q1xcdTkyNEZcXHU5MjYwXFx1OTI2N1xcdTkyNkZcXHU5MjM2XFx1OTI2MVxcdTkyNzBcXHU5MjMxXFx1OTI1NFxcdTkyNjNcXHU5MjUwXFx1OTI3MlxcdTkyNEVcXHU5MjUzXFx1OTI0Q1xcdTkyNTZcXHU5MjMyXFx1OTU5RlxcdTk1OUNcXHU5NTlFXFx1OTU5QlxcdTk2OTJcXHU5NjkzXFx1OTY5MVxcdTk2OTdcXHU5NkNFXFx1OTZGQVxcdTk2RkRcXHU5NkY4XFx1OTZGNVxcdTk3NzNcXHU5Nzc3XFx1OTc3OFxcdTk3NzJcXHU5ODBGXFx1OTgwRFxcdTk4MEVcXHU5OEFDXFx1OThGNlxcdTk4RjlcXHU5OUFGXFx1OTlCMlxcdTk5QjBcXHU5OUI1XFx1OUFBRFxcdTlBQUJcXHU5QjVCXFx1OUNFQVxcdTlDRURcXHU5Q0U3XFx1OUU4MFxcdTlFRkRcXHU1MEU2XFx1NTBENFxcdTUwRDdcXHU1MEU4XFx1NTBGM1xcdTUwREJcXHU1MEVBXFx1NTBERFxcdTUwRTRcXHU1MEQzXFx1NTBFQ1xcdTUwRjBcXHU1MEVGXFx1NTBFM1xcdTUwRTBcIl0sXG4gICAgICBbXCJlMTQwXCIsIFwiXFx1NTFEOFxcdTUyODBcXHU1MjgxXFx1NTJFOVxcdTUyRUJcXHU1MzMwXFx1NTNBQ1xcdTU2MjdcXHU1NjE1XFx1NTYwQ1xcdTU2MTJcXHU1NUZDXFx1NTYwRlxcdTU2MUNcXHU1NjAxXFx1NTYxM1xcdTU2MDJcXHU1NUZBXFx1NTYxRFxcdTU2MDRcXHU1NUZGXFx1NTVGOVxcdTU4ODlcXHU1ODdDXFx1NTg5MFxcdTU4OThcXHU1ODg2XFx1NTg4MVxcdTU4N0ZcXHU1ODc0XFx1NTg4QlxcdTU4N0FcXHU1ODg3XFx1NTg5MVxcdTU4OEVcXHU1ODc2XFx1NTg4MlxcdTU4ODhcXHU1ODdCXFx1NTg5NFxcdTU4OEZcXHU1OEZFXFx1NTk2QlxcdTVBRENcXHU1QUVFXFx1NUFFNVxcdTVBRDVcXHU1QUVBXFx1NUFEQVxcdTVBRURcXHU1QUVCXFx1NUFGM1xcdTVBRTJcXHU1QUUwXFx1NUFEQlxcdTVBRUNcXHU1QURFXFx1NUFERFxcdTVBRDlcXHU1QUU4XFx1NUFERlxcdTVCNzdcXHU1QkUwXCJdLFxuICAgICAgW1wiZTFhMVwiLCBcIlxcdTVCRTNcXHU1QzYzXFx1NUQ4MlxcdTVEODBcXHU1RDdEXFx1NUQ4NlxcdTVEN0FcXHU1RDgxXFx1NUQ3N1xcdTVEOEFcXHU1RDg5XFx1NUQ4OFxcdTVEN0VcXHU1RDdDXFx1NUQ4RFxcdTVENzlcXHU1RDdGXFx1NUU1OFxcdTVFNTlcXHU1RTUzXFx1NUVEOFxcdTVFRDFcXHU1RUQ3XFx1NUVDRVxcdTVFRENcXHU1RUQ1XFx1NUVEOVxcdTVFRDJcXHU1RUQ0XFx1NUY0NFxcdTVGNDNcXHU1RjZGXFx1NUZCNlxcdTYxMkNcXHU2MTI4XFx1NjE0MVxcdTYxNUVcXHU2MTcxXFx1NjE3M1xcdTYxNTJcXHU2MTUzXFx1NjE3MlxcdTYxNkNcXHU2MTgwXFx1NjE3NFxcdTYxNTRcXHU2MTdBXFx1NjE1QlxcdTYxNjVcXHU2MTNCXFx1NjE2QVxcdTYxNjFcXHU2MTU2XFx1NjIyOVxcdTYyMjdcXHU2MjJCXFx1NjQyQlxcdTY0NERcXHU2NDVCXFx1NjQ1RFxcdTY0NzRcXHU2NDc2XFx1NjQ3MlxcdTY0NzNcXHU2NDdEXFx1NjQ3NVxcdTY0NjZcXHU2NEE2XFx1NjQ0RVxcdTY0ODJcXHU2NDVFXFx1NjQ1Q1xcdTY0NEJcXHU2NDUzXFx1NjQ2MFxcdTY0NTBcXHU2NDdGXFx1NjQzRlxcdTY0NkNcXHU2NDZCXFx1NjQ1OVxcdTY0NjVcXHU2NDc3XFx1NjU3M1xcdTY1QTBcXHU2NkExXFx1NjZBMFxcdTY2OUZcXHU2NzA1XFx1NjcwNFxcdTY3MjJcXHU2OUIxXFx1NjlCNlxcdTY5QzlcIl0sXG4gICAgICBbXCJlMjQwXCIsIFwiXFx1NjlBMFxcdTY5Q0VcXHU2OTk2XFx1NjlCMFxcdTY5QUNcXHU2OUJDXFx1Njk5MVxcdTY5OTlcXHU2OThFXFx1NjlBN1xcdTY5OERcXHU2OUE5XFx1NjlCRVxcdTY5QUZcXHU2OUJGXFx1NjlDNFxcdTY5QkRcXHU2OUE0XFx1NjlENFxcdTY5QjlcXHU2OUNBXFx1Njk5QVxcdTY5Q0ZcXHU2OUIzXFx1Njk5M1xcdTY5QUFcXHU2OUExXFx1Njk5RVxcdTY5RDlcXHU2OTk3XFx1Njk5MFxcdTY5QzJcXHU2OUI1XFx1NjlBNVxcdTY5QzZcXHU2QjRBXFx1NkI0RFxcdTZCNEJcXHU2QjlFXFx1NkI5RlxcdTZCQTBcXHU2QkMzXFx1NkJDNFxcdTZCRkVcXHU2RUNFXFx1NkVGNVxcdTZFRjFcXHU2RjAzXFx1NkYyNVxcdTZFRjhcXHU2RjM3XFx1NkVGQlxcdTZGMkVcXHU2RjA5XFx1NkY0RVxcdTZGMTlcXHU2RjFBXFx1NkYyN1xcdTZGMThcXHU2RjNCXFx1NkYxMlxcdTZFRURcXHU2RjBBXCJdLFxuICAgICAgW1wiZTJhMVwiLCBcIlxcdTZGMzZcXHU2RjczXFx1NkVGOVxcdTZFRUVcXHU2RjJEXFx1NkY0MFxcdTZGMzBcXHU2RjNDXFx1NkYzNVxcdTZFRUJcXHU2RjA3XFx1NkYwRVxcdTZGNDNcXHU2RjA1XFx1NkVGRFxcdTZFRjZcXHU2RjM5XFx1NkYxQ1xcdTZFRkNcXHU2RjNBXFx1NkYxRlxcdTZGMERcXHU2RjFFXFx1NkYwOFxcdTZGMjFcXHU3MTg3XFx1NzE5MFxcdTcxODlcXHU3MTgwXFx1NzE4NVxcdTcxODJcXHU3MThGXFx1NzE3QlxcdTcxODZcXHU3MTgxXFx1NzE5N1xcdTcyNDRcXHU3MjUzXFx1NzI5N1xcdTcyOTVcXHU3MjkzXFx1NzM0M1xcdTczNERcXHU3MzUxXFx1NzM0Q1xcdTc0NjJcXHU3NDczXFx1NzQ3MVxcdTc0NzVcXHU3NDcyXFx1NzQ2N1xcdTc0NkVcXHU3NTAwXFx1NzUwMlxcdTc1MDNcXHU3NTdEXFx1NzU5MFxcdTc2MTZcXHU3NjA4XFx1NzYwQ1xcdTc2MTVcXHU3NjExXFx1NzYwQVxcdTc2MTRcXHU3NkI4XFx1Nzc4MVxcdTc3N0NcXHU3Nzg1XFx1Nzc4MlxcdTc3NkVcXHU3NzgwXFx1Nzc2RlxcdTc3N0VcXHU3NzgzXFx1NzhCMlxcdTc4QUFcXHU3OEI0XFx1NzhBRFxcdTc4QThcXHU3ODdFXFx1NzhBQlxcdTc4OUVcXHU3OEE1XFx1NzhBMFxcdTc4QUNcXHU3OEEyXFx1NzhBNFxcdTc5OThcXHU3OThBXFx1Nzk4QlxcdTc5OTZcXHU3OTk1XFx1Nzk5NFxcdTc5OTNcIl0sXG4gICAgICBbXCJlMzQwXCIsIFwiXFx1Nzk5N1xcdTc5ODhcXHU3OTkyXFx1Nzk5MFxcdTdBMkJcXHU3QTRBXFx1N0EzMFxcdTdBMkZcXHU3QTI4XFx1N0EyNlxcdTdBQThcXHU3QUFCXFx1N0FBQ1xcdTdBRUVcXHU3Qjg4XFx1N0I5Q1xcdTdCOEFcXHU3QjkxXFx1N0I5MFxcdTdCOTZcXHU3QjhEXFx1N0I4Q1xcdTdCOUJcXHU3QjhFXFx1N0I4NVxcdTdCOThcXHU1Mjg0XFx1N0I5OVxcdTdCQTRcXHU3QjgyXFx1N0NCQlxcdTdDQkZcXHU3Q0JDXFx1N0NCQVxcdTdEQTdcXHU3REI3XFx1N0RDMlxcdTdEQTNcXHU3REFBXFx1N0RDMVxcdTdEQzBcXHU3REM1XFx1N0Q5RFxcdTdEQ0VcXHU3REM0XFx1N0RDNlxcdTdEQ0JcXHU3RENDXFx1N0RBRlxcdTdEQjlcXHU3RDk2XFx1N0RCQ1xcdTdEOUZcXHU3REE2XFx1N0RBRVxcdTdEQTlcXHU3REExXFx1N0RDOVxcdTdGNzNcXHU3RkUyXFx1N0ZFM1xcdTdGRTVcXHU3RkRFXCJdLFxuICAgICAgW1wiZTNhMVwiLCBcIlxcdTgwMjRcXHU4MDVEXFx1ODA1Q1xcdTgxODlcXHU4MTg2XFx1ODE4M1xcdTgxODdcXHU4MThEXFx1ODE4Q1xcdTgxOEJcXHU4MjE1XFx1ODQ5N1xcdTg0QTRcXHU4NEExXFx1ODQ5RlxcdTg0QkFcXHU4NENFXFx1ODRDMlxcdTg0QUNcXHU4NEFFXFx1ODRBQlxcdTg0QjlcXHU4NEI0XFx1ODRDMVxcdTg0Q0RcXHU4NEFBXFx1ODQ5QVxcdTg0QjFcXHU4NEQwXFx1ODQ5RFxcdTg0QTdcXHU4NEJCXFx1ODRBMlxcdTg0OTRcXHU4NEM3XFx1ODRDQ1xcdTg0OUJcXHU4NEE5XFx1ODRBRlxcdTg0QThcXHU4NEQ2XFx1ODQ5OFxcdTg0QjZcXHU4NENGXFx1ODRBMFxcdTg0RDdcXHU4NEQ0XFx1ODREMlxcdTg0REJcXHU4NEIwXFx1ODQ5MVxcdTg2NjFcXHU4NzMzXFx1ODcyM1xcdTg3MjhcXHU4NzZCXFx1ODc0MFxcdTg3MkVcXHU4NzFFXFx1ODcyMVxcdTg3MTlcXHU4NzFCXFx1ODc0M1xcdTg3MkNcXHU4NzQxXFx1ODczRVxcdTg3NDZcXHU4NzIwXFx1ODczMlxcdTg3MkFcXHU4NzJEXFx1ODczQ1xcdTg3MTJcXHU4NzNBXFx1ODczMVxcdTg3MzVcXHU4NzQyXFx1ODcyNlxcdTg3MjdcXHU4NzM4XFx1ODcyNFxcdTg3MUFcXHU4NzMwXFx1ODcxMVxcdTg4RjdcXHU4OEU3XFx1ODhGMVxcdTg4RjJcXHU4OEZBXFx1ODhGRVxcdTg4RUVcXHU4OEZDXFx1ODhGNlxcdTg4RkJcIl0sXG4gICAgICBbXCJlNDQwXCIsIFwiXFx1ODhGMFxcdTg4RUNcXHU4OEVCXFx1ODk5RFxcdTg5QTFcXHU4OTlGXFx1ODk5RVxcdTg5RTlcXHU4OUVCXFx1ODlFOFxcdThBQUJcXHU4QTk5XFx1OEE4QlxcdThBOTJcXHU4QThGXFx1OEE5NlxcdThDM0RcXHU4QzY4XFx1OEM2OVxcdThDRDVcXHU4Q0NGXFx1OENEN1xcdThEOTZcXHU4RTA5XFx1OEUwMlxcdThERkZcXHU4RTBEXFx1OERGRFxcdThFMEFcXHU4RTAzXFx1OEUwN1xcdThFMDZcXHU4RTA1XFx1OERGRVxcdThFMDBcXHU4RTA0XFx1OEYxMFxcdThGMTFcXHU4RjBFXFx1OEYwRFxcdTkxMjNcXHU5MTFDXFx1OTEyMFxcdTkxMjJcXHU5MTFGXFx1OTExRFxcdTkxMUFcXHU5MTI0XFx1OTEyMVxcdTkxMUJcXHU5MTdBXFx1OTE3MlxcdTkxNzlcXHU5MTczXFx1OTJBNVxcdTkyQTRcXHU5Mjc2XFx1OTI5QlxcdTkyN0FcXHU5MkEwXFx1OTI5NFxcdTkyQUFcXHU5MjhEXCJdLFxuICAgICAgW1wiZTRhMVwiLCBcIlxcdTkyQTZcXHU5MjlBXFx1OTJBQlxcdTkyNzlcXHU5Mjk3XFx1OTI3RlxcdTkyQTNcXHU5MkVFXFx1OTI4RVxcdTkyODJcXHU5Mjk1XFx1OTJBMlxcdTkyN0RcXHU5Mjg4XFx1OTJBMVxcdTkyOEFcXHU5Mjg2XFx1OTI4Q1xcdTkyOTlcXHU5MkE3XFx1OTI3RVxcdTkyODdcXHU5MkE5XFx1OTI5RFxcdTkyOEJcXHU5MjJEXFx1OTY5RVxcdTk2QTFcXHU5NkZGXFx1OTc1OFxcdTk3N0RcXHU5NzdBXFx1OTc3RVxcdTk3ODNcXHU5NzgwXFx1OTc4MlxcdTk3N0JcXHU5Nzg0XFx1OTc4MVxcdTk3N0ZcXHU5N0NFXFx1OTdDRFxcdTk4MTZcXHU5OEFEXFx1OThBRVxcdTk5MDJcXHU5OTAwXFx1OTkwN1xcdTk5OURcXHU5OTlDXFx1OTlDM1xcdTk5QjlcXHU5OUJCXFx1OTlCQVxcdTk5QzJcXHU5OUJEXFx1OTlDN1xcdTlBQjFcXHU5QUUzXFx1OUFFN1xcdTlCM0VcXHU5QjNGXFx1OUI2MFxcdTlCNjFcXHU5QjVGXFx1OUNGMVxcdTlDRjJcXHU5Q0Y1XFx1OUVBN1xcdTUwRkZcXHU1MTAzXFx1NTEzMFxcdTUwRjhcXHU1MTA2XFx1NTEwN1xcdTUwRjZcXHU1MEZFXFx1NTEwQlxcdTUxMENcXHU1MEZEXFx1NTEwQVxcdTUyOEJcXHU1MjhDXFx1NTJGMVxcdTUyRUZcXHU1NjQ4XFx1NTY0MlxcdTU2NENcXHU1NjM1XFx1NTY0MVxcdTU2NEFcXHU1NjQ5XFx1NTY0NlxcdTU2NThcIl0sXG4gICAgICBbXCJlNTQwXCIsIFwiXFx1NTY1QVxcdTU2NDBcXHU1NjMzXFx1NTYzRFxcdTU2MkNcXHU1NjNFXFx1NTYzOFxcdTU2MkFcXHU1NjNBXFx1NTcxQVxcdTU4QUJcXHU1ODlEXFx1NThCMVxcdTU4QTBcXHU1OEEzXFx1NThBRlxcdTU4QUNcXHU1OEE1XFx1NThBMVxcdTU4RkZcXHU1QUZGXFx1NUFGNFxcdTVBRkRcXHU1QUY3XFx1NUFGNlxcdTVCMDNcXHU1QUY4XFx1NUIwMlxcdTVBRjlcXHU1QjAxXFx1NUIwN1xcdTVCMDVcXHU1QjBGXFx1NUM2N1xcdTVEOTlcXHU1RDk3XFx1NUQ5RlxcdTVEOTJcXHU1REEyXFx1NUQ5M1xcdTVEOTVcXHU1REEwXFx1NUQ5Q1xcdTVEQTFcXHU1RDlBXFx1NUQ5RVxcdTVFNjlcXHU1RTVEXFx1NUU2MFxcdTVFNUNcXHU3REYzXFx1NUVEQlxcdTVFREVcXHU1RUUxXFx1NUY0OVxcdTVGQjJcXHU2MThCXFx1NjE4M1xcdTYxNzlcXHU2MUIxXFx1NjFCMFxcdTYxQTJcXHU2MTg5XCJdLFxuICAgICAgW1wiZTVhMVwiLCBcIlxcdTYxOUJcXHU2MTkzXFx1NjFBRlxcdTYxQURcXHU2MTlGXFx1NjE5MlxcdTYxQUFcXHU2MUExXFx1NjE4RFxcdTYxNjZcXHU2MUIzXFx1NjIyRFxcdTY0NkVcXHU2NDcwXFx1NjQ5NlxcdTY0QTBcXHU2NDg1XFx1NjQ5N1xcdTY0OUNcXHU2NDhGXFx1NjQ4QlxcdTY0OEFcXHU2NDhDXFx1NjRBM1xcdTY0OUZcXHU2NDY4XFx1NjRCMVxcdTY0OThcXHU2NTc2XFx1NjU3QVxcdTY1NzlcXHU2NTdCXFx1NjVCMlxcdTY1QjNcXHU2NkI1XFx1NjZCMFxcdTY2QTlcXHU2NkIyXFx1NjZCN1xcdTY2QUFcXHU2NkFGXFx1NkEwMFxcdTZBMDZcXHU2QTE3XFx1NjlFNVxcdTY5RjhcXHU2QTE1XFx1NjlGMVxcdTY5RTRcXHU2QTIwXFx1NjlGRlxcdTY5RUNcXHU2OUUyXFx1NkExQlxcdTZBMURcXHU2OUZFXFx1NkEyN1xcdTY5RjJcXHU2OUVFXFx1NkExNFxcdTY5RjdcXHU2OUU3XFx1NkE0MFxcdTZBMDhcXHU2OUU2XFx1NjlGQlxcdTZBMERcXHU2OUZDXFx1NjlFQlxcdTZBMDlcXHU2QTA0XFx1NkExOFxcdTZBMjVcXHU2QTBGXFx1NjlGNlxcdTZBMjZcXHU2QTA3XFx1NjlGNFxcdTZBMTZcXHU2QjUxXFx1NkJBNVxcdTZCQTNcXHU2QkEyXFx1NkJBNlxcdTZDMDFcXHU2QzAwXFx1NkJGRlxcdTZDMDJcXHU2RjQxXFx1NkYyNlxcdTZGN0VcXHU2Rjg3XFx1NkZDNlxcdTZGOTJcIl0sXG4gICAgICBbXCJlNjQwXCIsIFwiXFx1NkY4RFxcdTZGODlcXHU2RjhDXFx1NkY2MlxcdTZGNEZcXHU2Rjg1XFx1NkY1QVxcdTZGOTZcXHU2Rjc2XFx1NkY2Q1xcdTZGODJcXHU2RjU1XFx1NkY3MlxcdTZGNTJcXHU2RjUwXFx1NkY1N1xcdTZGOTRcXHU2RjkzXFx1NkY1RFxcdTZGMDBcXHU2RjYxXFx1NkY2QlxcdTZGN0RcXHU2RjY3XFx1NkY5MFxcdTZGNTNcXHU2RjhCXFx1NkY2OVxcdTZGN0ZcXHU2Rjk1XFx1NkY2M1xcdTZGNzdcXHU2RjZBXFx1NkY3QlxcdTcxQjJcXHU3MUFGXFx1NzE5QlxcdTcxQjBcXHU3MUEwXFx1NzE5QVxcdTcxQTlcXHU3MUI1XFx1NzE5RFxcdTcxQTVcXHU3MTlFXFx1NzFBNFxcdTcxQTFcXHU3MUFBXFx1NzE5Q1xcdTcxQTdcXHU3MUIzXFx1NzI5OFxcdTcyOUFcXHU3MzU4XFx1NzM1MlxcdTczNUVcXHU3MzVGXFx1NzM2MFxcdTczNURcXHU3MzVCXFx1NzM2MVxcdTczNUFcXHU3MzU5XCJdLFxuICAgICAgW1wiZTZhMVwiLCBcIlxcdTczNjJcXHU3NDg3XFx1NzQ4OVxcdTc0OEFcXHU3NDg2XFx1NzQ4MVxcdTc0N0RcXHU3NDg1XFx1NzQ4OFxcdTc0N0NcXHU3NDc5XFx1NzUwOFxcdTc1MDdcXHU3NTdFXFx1NzYyNVxcdTc2MUVcXHU3NjE5XFx1NzYxRFxcdTc2MUNcXHU3NjIzXFx1NzYxQVxcdTc2MjhcXHU3NjFCXFx1NzY5Q1xcdTc2OURcXHU3NjlFXFx1NzY5QlxcdTc3OERcXHU3NzhGXFx1Nzc4OVxcdTc3ODhcXHU3OENEXFx1NzhCQlxcdTc4Q0ZcXHU3OENDXFx1NzhEMVxcdTc4Q0VcXHU3OEQ0XFx1NzhDOFxcdTc4QzNcXHU3OEM0XFx1NzhDOVxcdTc5OUFcXHU3OUExXFx1NzlBMFxcdTc5OUNcXHU3OUEyXFx1Nzk5QlxcdTZCNzZcXHU3QTM5XFx1N0FCMlxcdTdBQjRcXHU3QUIzXFx1N0JCN1xcdTdCQ0JcXHU3QkJFXFx1N0JBQ1xcdTdCQ0VcXHU3QkFGXFx1N0JCOVxcdTdCQ0FcXHU3QkI1XFx1N0NDNVxcdTdDQzhcXHU3Q0NDXFx1N0NDQlxcdTdERjdcXHU3RERCXFx1N0RFQVxcdTdERTdcXHU3REQ3XFx1N0RFMVxcdTdFMDNcXHU3REZBXFx1N0RFNlxcdTdERjZcXHU3REYxXFx1N0RGMFxcdTdERUVcXHU3RERGXFx1N0Y3NlxcdTdGQUNcXHU3RkIwXFx1N0ZBRFxcdTdGRURcXHU3RkVCXFx1N0ZFQVxcdTdGRUNcXHU3RkU2XFx1N0ZFOFxcdTgwNjRcXHU4MDY3XFx1ODFBM1xcdTgxOUZcIl0sXG4gICAgICBbXCJlNzQwXCIsIFwiXFx1ODE5RVxcdTgxOTVcXHU4MUEyXFx1ODE5OVxcdTgxOTdcXHU4MjE2XFx1ODI0RlxcdTgyNTNcXHU4MjUyXFx1ODI1MFxcdTgyNEVcXHU4MjUxXFx1ODUyNFxcdTg1M0JcXHU4NTBGXFx1ODUwMFxcdTg1MjlcXHU4NTBFXFx1ODUwOVxcdTg1MERcXHU4NTFGXFx1ODUwQVxcdTg1MjdcXHU4NTFDXFx1ODRGQlxcdTg1MkJcXHU4NEZBXFx1ODUwOFxcdTg1MENcXHU4NEY0XFx1ODUyQVxcdTg0RjJcXHU4NTE1XFx1ODRGN1xcdTg0RUJcXHU4NEYzXFx1ODRGQ1xcdTg1MTJcXHU4NEVBXFx1ODRFOVxcdTg1MTZcXHU4NEZFXFx1ODUyOFxcdTg1MURcXHU4NTJFXFx1ODUwMlxcdTg0RkRcXHU4NTFFXFx1ODRGNlxcdTg1MzFcXHU4NTI2XFx1ODRFN1xcdTg0RThcXHU4NEYwXFx1ODRFRlxcdTg0RjlcXHU4NTE4XFx1ODUyMFxcdTg1MzBcXHU4NTBCXFx1ODUxOVxcdTg1MkZcXHU4NjYyXCJdLFxuICAgICAgW1wiZTdhMVwiLCBcIlxcdTg3NTZcXHU4NzYzXFx1ODc2NFxcdTg3NzdcXHU4N0UxXFx1ODc3M1xcdTg3NThcXHU4NzU0XFx1ODc1QlxcdTg3NTJcXHU4NzYxXFx1ODc1QVxcdTg3NTFcXHU4NzVFXFx1ODc2RFxcdTg3NkFcXHU4NzUwXFx1ODc0RVxcdTg3NUZcXHU4NzVEXFx1ODc2RlxcdTg3NkNcXHU4NzdBXFx1ODc2RVxcdTg3NUNcXHU4NzY1XFx1ODc0RlxcdTg3N0JcXHU4Nzc1XFx1ODc2MlxcdTg3NjdcXHU4NzY5XFx1ODg1QVxcdTg5MDVcXHU4OTBDXFx1ODkxNFxcdTg5MEJcXHU4OTE3XFx1ODkxOFxcdTg5MTlcXHU4OTA2XFx1ODkxNlxcdTg5MTFcXHU4OTBFXFx1ODkwOVxcdTg5QTJcXHU4OUE0XFx1ODlBM1xcdTg5RURcXHU4OUYwXFx1ODlFQ1xcdThBQ0ZcXHU4QUM2XFx1OEFCOFxcdThBRDNcXHU4QUQxXFx1OEFENFxcdThBRDVcXHU4QUJCXFx1OEFEN1xcdThBQkVcXHU4QUMwXFx1OEFDNVxcdThBRDhcXHU4QUMzXFx1OEFCQVxcdThBQkRcXHU4QUQ5XFx1OEMzRVxcdThDNERcXHU4QzhGXFx1OENFNVxcdThDREZcXHU4Q0Q5XFx1OENFOFxcdThDREFcXHU4Q0REXFx1OENFN1xcdThEQTBcXHU4RDlDXFx1OERBMVxcdThEOUJcXHU4RTIwXFx1OEUyM1xcdThFMjVcXHU4RTI0XFx1OEUyRVxcdThFMTVcXHU4RTFCXFx1OEUxNlxcdThFMTFcXHU4RTE5XFx1OEUyNlxcdThFMjdcIl0sXG4gICAgICBbXCJlODQwXCIsIFwiXFx1OEUxNFxcdThFMTJcXHU4RTE4XFx1OEUxM1xcdThFMUNcXHU4RTE3XFx1OEUxQVxcdThGMkNcXHU4RjI0XFx1OEYxOFxcdThGMUFcXHU4RjIwXFx1OEYyM1xcdThGMTZcXHU4RjE3XFx1OTA3M1xcdTkwNzBcXHU5MDZGXFx1OTA2N1xcdTkwNkJcXHU5MTJGXFx1OTEyQlxcdTkxMjlcXHU5MTJBXFx1OTEzMlxcdTkxMjZcXHU5MTJFXFx1OTE4NVxcdTkxODZcXHU5MThBXFx1OTE4MVxcdTkxODJcXHU5MTg0XFx1OTE4MFxcdTkyRDBcXHU5MkMzXFx1OTJDNFxcdTkyQzBcXHU5MkQ5XFx1OTJCNlxcdTkyQ0ZcXHU5MkYxXFx1OTJERlxcdTkyRDhcXHU5MkU5XFx1OTJEN1xcdTkyRERcXHU5MkNDXFx1OTJFRlxcdTkyQzJcXHU5MkU4XFx1OTJDQVxcdTkyQzhcXHU5MkNFXFx1OTJFNlxcdTkyQ0RcXHU5MkQ1XFx1OTJDOVxcdTkyRTBcXHU5MkRFXFx1OTJFN1xcdTkyRDFcXHU5MkQzXCJdLFxuICAgICAgW1wiZThhMVwiLCBcIlxcdTkyQjVcXHU5MkUxXFx1OTJDNlxcdTkyQjRcXHU5NTdDXFx1OTVBQ1xcdTk1QUJcXHU5NUFFXFx1OTVCMFxcdTk2QTRcXHU5NkEyXFx1OTZEM1xcdTk3MDVcXHU5NzA4XFx1OTcwMlxcdTk3NUFcXHU5NzhBXFx1OTc4RVxcdTk3ODhcXHU5N0QwXFx1OTdDRlxcdTk4MUVcXHU5ODFEXFx1OTgyNlxcdTk4MjlcXHU5ODI4XFx1OTgyMFxcdTk4MUJcXHU5ODI3XFx1OThCMlxcdTk5MDhcXHU5OEZBXFx1OTkxMVxcdTk5MTRcXHU5OTE2XFx1OTkxN1xcdTk5MTVcXHU5OURDXFx1OTlDRFxcdTk5Q0ZcXHU5OUQzXFx1OTlENFxcdTk5Q0VcXHU5OUM5XFx1OTlENlxcdTk5RDhcXHU5OUNCXFx1OTlEN1xcdTk5Q0NcXHU5QUIzXFx1OUFFQ1xcdTlBRUJcXHU5QUYzXFx1OUFGMlxcdTlBRjFcXHU5QjQ2XFx1OUI0M1xcdTlCNjdcXHU5Qjc0XFx1OUI3MVxcdTlCNjZcXHU5Qjc2XFx1OUI3NVxcdTlCNzBcXHU5QjY4XFx1OUI2NFxcdTlCNkNcXHU5Q0ZDXFx1OUNGQVxcdTlDRkRcXHU5Q0ZGXFx1OUNGN1xcdTlEMDdcXHU5RDAwXFx1OUNGOVxcdTlDRkJcXHU5RDA4XFx1OUQwNVxcdTlEMDRcXHU5RTgzXFx1OUVEM1xcdTlGMEZcXHU5RjEwXFx1NTExQ1xcdTUxMTNcXHU1MTE3XFx1NTExQVxcdTUxMTFcXHU1MURFXFx1NTMzNFxcdTUzRTFcXHU1NjcwXFx1NTY2MFxcdTU2NkVcIl0sXG4gICAgICBbXCJlOTQwXCIsIFwiXFx1NTY3M1xcdTU2NjZcXHU1NjYzXFx1NTY2RFxcdTU2NzJcXHU1NjVFXFx1NTY3N1xcdTU3MUNcXHU1NzFCXFx1NThDOFxcdTU4QkRcXHU1OEM5XFx1NThCRlxcdTU4QkFcXHU1OEMyXFx1NThCQ1xcdTU4QzZcXHU1QjE3XFx1NUIxOVxcdTVCMUJcXHU1QjIxXFx1NUIxNFxcdTVCMTNcXHU1QjEwXFx1NUIxNlxcdTVCMjhcXHU1QjFBXFx1NUIyMFxcdTVCMUVcXHU1QkVGXFx1NURBQ1xcdTVEQjFcXHU1REE5XFx1NURBN1xcdTVEQjVcXHU1REIwXFx1NURBRVxcdTVEQUFcXHU1REE4XFx1NURCMlxcdTVEQURcXHU1REFGXFx1NURCNFxcdTVFNjdcXHU1RTY4XFx1NUU2NlxcdTVFNkZcXHU1RUU5XFx1NUVFN1xcdTVFRTZcXHU1RUU4XFx1NUVFNVxcdTVGNEJcXHU1RkJDXFx1NjE5RFxcdTYxQThcXHU2MTk2XFx1NjFDNVxcdTYxQjRcXHU2MUM2XFx1NjFDMVxcdTYxQ0NcXHU2MUJBXCJdLFxuICAgICAgW1wiZTlhMVwiLCBcIlxcdTYxQkZcXHU2MUI4XFx1NjE4Q1xcdTY0RDdcXHU2NEQ2XFx1NjREMFxcdTY0Q0ZcXHU2NEM5XFx1NjRCRFxcdTY0ODlcXHU2NEMzXFx1NjREQlxcdTY0RjNcXHU2NEQ5XFx1NjUzM1xcdTY1N0ZcXHU2NTdDXFx1NjVBMlxcdTY2QzhcXHU2NkJFXFx1NjZDMFxcdTY2Q0FcXHU2NkNCXFx1NjZDRlxcdTY2QkRcXHU2NkJCXFx1NjZCQVxcdTY2Q0NcXHU2NzIzXFx1NkEzNFxcdTZBNjZcXHU2QTQ5XFx1NkE2N1xcdTZBMzJcXHU2QTY4XFx1NkEzRVxcdTZBNURcXHU2QTZEXFx1NkE3NlxcdTZBNUJcXHU2QTUxXFx1NkEyOFxcdTZBNUFcXHU2QTNCXFx1NkEzRlxcdTZBNDFcXHU2QTZBXFx1NkE2NFxcdTZBNTBcXHU2QTRGXFx1NkE1NFxcdTZBNkZcXHU2QTY5XFx1NkE2MFxcdTZBM0NcXHU2QTVFXFx1NkE1NlxcdTZBNTVcXHU2QTREXFx1NkE0RVxcdTZBNDZcXHU2QjU1XFx1NkI1NFxcdTZCNTZcXHU2QkE3XFx1NkJBQVxcdTZCQUJcXHU2QkM4XFx1NkJDN1xcdTZDMDRcXHU2QzAzXFx1NkMwNlxcdTZGQURcXHU2RkNCXFx1NkZBM1xcdTZGQzdcXHU2RkJDXFx1NkZDRVxcdTZGQzhcXHU2RjVFXFx1NkZDNFxcdTZGQkRcXHU2RjlFXFx1NkZDQVxcdTZGQThcXHU3MDA0XFx1NkZBNVxcdTZGQUVcXHU2RkJBXFx1NkZBQ1xcdTZGQUFcXHU2RkNGXFx1NkZCRlxcdTZGQjhcIl0sXG4gICAgICBbXCJlYTQwXCIsIFwiXFx1NkZBMlxcdTZGQzlcXHU2RkFCXFx1NkZDRFxcdTZGQUZcXHU2RkIyXFx1NkZCMFxcdTcxQzVcXHU3MUMyXFx1NzFCRlxcdTcxQjhcXHU3MUQ2XFx1NzFDMFxcdTcxQzFcXHU3MUNCXFx1NzFENFxcdTcxQ0FcXHU3MUM3XFx1NzFDRlxcdTcxQkRcXHU3MUQ4XFx1NzFCQ1xcdTcxQzZcXHU3MURBXFx1NzFEQlxcdTcyOURcXHU3MjlFXFx1NzM2OVxcdTczNjZcXHU3MzY3XFx1NzM2Q1xcdTczNjVcXHU3MzZCXFx1NzM2QVxcdTc0N0ZcXHU3NDlBXFx1NzRBMFxcdTc0OTRcXHU3NDkyXFx1NzQ5NVxcdTc0QTFcXHU3NTBCXFx1NzU4MFxcdTc2MkZcXHU3NjJEXFx1NzYzMVxcdTc2M0RcXHU3NjMzXFx1NzYzQ1xcdTc2MzVcXHU3NjMyXFx1NzYzMFxcdTc2QkJcXHU3NkU2XFx1Nzc5QVxcdTc3OURcXHU3N0ExXFx1Nzc5Q1xcdTc3OUJcXHU3N0EyXFx1NzdBM1xcdTc3OTVcXHU3Nzk5XCJdLFxuICAgICAgW1wiZWFhMVwiLCBcIlxcdTc3OTdcXHU3OEREXFx1NzhFOVxcdTc4RTVcXHU3OEVBXFx1NzhERVxcdTc4RTNcXHU3OERCXFx1NzhFMVxcdTc4RTJcXHU3OEVEXFx1NzhERlxcdTc4RTBcXHU3OUE0XFx1N0E0NFxcdTdBNDhcXHU3QTQ3XFx1N0FCNlxcdTdBQjhcXHU3QUI1XFx1N0FCMVxcdTdBQjdcXHU3QkRFXFx1N0JFM1xcdTdCRTdcXHU3QkREXFx1N0JENVxcdTdCRTVcXHU3QkRBXFx1N0JFOFxcdTdCRjlcXHU3QkQ0XFx1N0JFQVxcdTdCRTJcXHU3QkRDXFx1N0JFQlxcdTdCRDhcXHU3QkRGXFx1N0NEMlxcdTdDRDRcXHU3Q0Q3XFx1N0NEMFxcdTdDRDFcXHU3RTEyXFx1N0UyMVxcdTdFMTdcXHU3RTBDXFx1N0UxRlxcdTdFMjBcXHU3RTEzXFx1N0UwRVxcdTdFMUNcXHU3RTE1XFx1N0UxQVxcdTdFMjJcXHU3RTBCXFx1N0UwRlxcdTdFMTZcXHU3RTBEXFx1N0UxNFxcdTdFMjVcXHU3RTI0XFx1N0Y0M1xcdTdGN0JcXHU3RjdDXFx1N0Y3QVxcdTdGQjFcXHU3RkVGXFx1ODAyQVxcdTgwMjlcXHU4MDZDXFx1ODFCMVxcdTgxQTZcXHU4MUFFXFx1ODFCOVxcdTgxQjVcXHU4MUFCXFx1ODFCMFxcdTgxQUNcXHU4MUI0XFx1ODFCMlxcdTgxQjdcXHU4MUE3XFx1ODFGMlxcdTgyNTVcXHU4MjU2XFx1ODI1N1xcdTg1NTZcXHU4NTQ1XFx1ODU2QlxcdTg1NERcXHU4NTUzXFx1ODU2MVxcdTg1NThcIl0sXG4gICAgICBbXCJlYjQwXCIsIFwiXFx1ODU0MFxcdTg1NDZcXHU4NTY0XFx1ODU0MVxcdTg1NjJcXHU4NTQ0XFx1ODU1MVxcdTg1NDdcXHU4NTYzXFx1ODUzRVxcdTg1NUJcXHU4NTcxXFx1ODU0RVxcdTg1NkVcXHU4NTc1XFx1ODU1NVxcdTg1NjdcXHU4NTYwXFx1ODU4Q1xcdTg1NjZcXHU4NTVEXFx1ODU1NFxcdTg1NjVcXHU4NTZDXFx1ODY2M1xcdTg2NjVcXHU4NjY0XFx1ODc5QlxcdTg3OEZcXHU4Nzk3XFx1ODc5M1xcdTg3OTJcXHU4Nzg4XFx1ODc4MVxcdTg3OTZcXHU4Nzk4XFx1ODc3OVxcdTg3ODdcXHU4N0EzXFx1ODc4NVxcdTg3OTBcXHU4NzkxXFx1ODc5RFxcdTg3ODRcXHU4Nzk0XFx1ODc5Q1xcdTg3OUFcXHU4Nzg5XFx1ODkxRVxcdTg5MjZcXHU4OTMwXFx1ODkyRFxcdTg5MkVcXHU4OTI3XFx1ODkzMVxcdTg5MjJcXHU4OTI5XFx1ODkyM1xcdTg5MkZcXHU4OTJDXFx1ODkxRlxcdTg5RjFcXHU4QUUwXCJdLFxuICAgICAgW1wiZWJhMVwiLCBcIlxcdThBRTJcXHU4QUYyXFx1OEFGNFxcdThBRjVcXHU4QUREXFx1OEIxNFxcdThBRTRcXHU4QURGXFx1OEFGMFxcdThBQzhcXHU4QURFXFx1OEFFMVxcdThBRThcXHU4QUZGXFx1OEFFRlxcdThBRkJcXHU4QzkxXFx1OEM5MlxcdThDOTBcXHU4Q0Y1XFx1OENFRVxcdThDRjFcXHU4Q0YwXFx1OENGM1xcdThENkNcXHU4RDZFXFx1OERBNVxcdThEQTdcXHU4RTMzXFx1OEUzRVxcdThFMzhcXHU4RTQwXFx1OEU0NVxcdThFMzZcXHU4RTNDXFx1OEUzRFxcdThFNDFcXHU4RTMwXFx1OEUzRlxcdThFQkRcXHU4RjM2XFx1OEYyRVxcdThGMzVcXHU4RjMyXFx1OEYzOVxcdThGMzdcXHU4RjM0XFx1OTA3NlxcdTkwNzlcXHU5MDdCXFx1OTA4NlxcdTkwRkFcXHU5MTMzXFx1OTEzNVxcdTkxMzZcXHU5MTkzXFx1OTE5MFxcdTkxOTFcXHU5MThEXFx1OTE4RlxcdTkzMjdcXHU5MzFFXFx1OTMwOFxcdTkzMUZcXHU5MzA2XFx1OTMwRlxcdTkzN0FcXHU5MzM4XFx1OTMzQ1xcdTkzMUJcXHU5MzIzXFx1OTMxMlxcdTkzMDFcXHU5MzQ2XFx1OTMyRFxcdTkzMEVcXHU5MzBEXFx1OTJDQlxcdTkzMURcXHU5MkZBXFx1OTMyNVxcdTkzMTNcXHU5MkY5XFx1OTJGN1xcdTkzMzRcXHU5MzAyXFx1OTMyNFxcdTkyRkZcXHU5MzI5XFx1OTMzOVxcdTkzMzVcXHU5MzJBXFx1OTMxNFxcdTkzMENcIl0sXG4gICAgICBbXCJlYzQwXCIsIFwiXFx1OTMwQlxcdTkyRkVcXHU5MzA5XFx1OTMwMFxcdTkyRkJcXHU5MzE2XFx1OTVCQ1xcdTk1Q0RcXHU5NUJFXFx1OTVCOVxcdTk1QkFcXHU5NUI2XFx1OTVCRlxcdTk1QjVcXHU5NUJEXFx1OTZBOVxcdTk2RDRcXHU5NzBCXFx1OTcxMlxcdTk3MTBcXHU5Nzk5XFx1OTc5N1xcdTk3OTRcXHU5N0YwXFx1OTdGOFxcdTk4MzVcXHU5ODJGXFx1OTgzMlxcdTk5MjRcXHU5OTFGXFx1OTkyN1xcdTk5MjlcXHU5OTlFXFx1OTlFRVxcdTk5RUNcXHU5OUU1XFx1OTlFNFxcdTk5RjBcXHU5OUUzXFx1OTlFQVxcdTk5RTlcXHU5OUU3XFx1OUFCOVxcdTlBQkZcXHU5QUI0XFx1OUFCQlxcdTlBRjZcXHU5QUZBXFx1OUFGOVxcdTlBRjdcXHU5QjMzXFx1OUI4MFxcdTlCODVcXHU5Qjg3XFx1OUI3Q1xcdTlCN0VcXHU5QjdCXFx1OUI4MlxcdTlCOTNcXHU5QjkyXFx1OUI5MFxcdTlCN0FcXHU5Qjk1XCJdLFxuICAgICAgW1wiZWNhMVwiLCBcIlxcdTlCN0RcXHU5Qjg4XFx1OUQyNVxcdTlEMTdcXHU5RDIwXFx1OUQxRVxcdTlEMTRcXHU5RDI5XFx1OUQxRFxcdTlEMThcXHU5RDIyXFx1OUQxMFxcdTlEMTlcXHU5RDFGXFx1OUU4OFxcdTlFODZcXHU5RTg3XFx1OUVBRVxcdTlFQURcXHU5RUQ1XFx1OUVENlxcdTlFRkFcXHU5RjEyXFx1OUYzRFxcdTUxMjZcXHU1MTI1XFx1NTEyMlxcdTUxMjRcXHU1MTIwXFx1NTEyOVxcdTUyRjRcXHU1NjkzXFx1NTY4Q1xcdTU2OERcXHU1Njg2XFx1NTY4NFxcdTU2ODNcXHU1NjdFXFx1NTY4MlxcdTU2N0ZcXHU1NjgxXFx1NThENlxcdTU4RDRcXHU1OENGXFx1NThEMlxcdTVCMkRcXHU1QjI1XFx1NUIzMlxcdTVCMjNcXHU1QjJDXFx1NUIyN1xcdTVCMjZcXHU1QjJGXFx1NUIyRVxcdTVCN0JcXHU1QkYxXFx1NUJGMlxcdTVEQjdcXHU1RTZDXFx1NUU2QVxcdTVGQkVcXHU1RkJCXFx1NjFDM1xcdTYxQjVcXHU2MUJDXFx1NjFFN1xcdTYxRTBcXHU2MUU1XFx1NjFFNFxcdTYxRThcXHU2MURFXFx1NjRFRlxcdTY0RTlcXHU2NEUzXFx1NjRFQlxcdTY0RTRcXHU2NEU4XFx1NjU4MVxcdTY1ODBcXHU2NUI2XFx1NjVEQVxcdTY2RDJcXHU2QThEXFx1NkE5NlxcdTZBODFcXHU2QUE1XFx1NkE4OVxcdTZBOUZcXHU2QTlCXFx1NkFBMVxcdTZBOUVcXHU2QTg3XFx1NkE5M1xcdTZBOEVcIl0sXG4gICAgICBbXCJlZDQwXCIsIFwiXFx1NkE5NVxcdTZBODNcXHU2QUE4XFx1NkFBNFxcdTZBOTFcXHU2QTdGXFx1NkFBNlxcdTZBOUFcXHU2QTg1XFx1NkE4Q1xcdTZBOTJcXHU2QjVCXFx1NkJBRFxcdTZDMDlcXHU2RkNDXFx1NkZBOVxcdTZGRjRcXHU2RkQ0XFx1NkZFM1xcdTZGRENcXHU2RkVEXFx1NkZFN1xcdTZGRTZcXHU2RkRFXFx1NkZGMlxcdTZGRERcXHU2RkUyXFx1NkZFOFxcdTcxRTFcXHU3MUYxXFx1NzFFOFxcdTcxRjJcXHU3MUU0XFx1NzFGMFxcdTcxRTJcXHU3MzczXFx1NzM2RVxcdTczNkZcXHU3NDk3XFx1NzRCMlxcdTc0QUJcXHU3NDkwXFx1NzRBQVxcdTc0QURcXHU3NEIxXFx1NzRBNVxcdTc0QUZcXHU3NTEwXFx1NzUxMVxcdTc1MTJcXHU3NTBGXFx1NzU4NFxcdTc2NDNcXHU3NjQ4XFx1NzY0OVxcdTc2NDdcXHU3NkE0XFx1NzZFOVxcdTc3QjVcXHU3N0FCXFx1NzdCMlxcdTc3QjdcXHU3N0I2XCJdLFxuICAgICAgW1wiZWRhMVwiLCBcIlxcdTc3QjRcXHU3N0IxXFx1NzdBOFxcdTc3RjBcXHU3OEYzXFx1NzhGRFxcdTc5MDJcXHU3OEZCXFx1NzhGQ1xcdTc4RjJcXHU3OTA1XFx1NzhGOVxcdTc4RkVcXHU3OTA0XFx1NzlBQlxcdTc5QThcXHU3QTVDXFx1N0E1QlxcdTdBNTZcXHU3QTU4XFx1N0E1NFxcdTdBNUFcXHU3QUJFXFx1N0FDMFxcdTdBQzFcXHU3QzA1XFx1N0MwRlxcdTdCRjJcXHU3QzAwXFx1N0JGRlxcdTdCRkJcXHU3QzBFXFx1N0JGNFxcdTdDMEJcXHU3QkYzXFx1N0MwMlxcdTdDMDlcXHU3QzAzXFx1N0MwMVxcdTdCRjhcXHU3QkZEXFx1N0MwNlxcdTdCRjBcXHU3QkYxXFx1N0MxMFxcdTdDMEFcXHU3Q0U4XFx1N0UyRFxcdTdFM0NcXHU3RTQyXFx1N0UzM1xcdTk4NDhcXHU3RTM4XFx1N0UyQVxcdTdFNDlcXHU3RTQwXFx1N0U0N1xcdTdFMjlcXHU3RTRDXFx1N0UzMFxcdTdFM0JcXHU3RTM2XFx1N0U0NFxcdTdFM0FcXHU3RjQ1XFx1N0Y3RlxcdTdGN0VcXHU3RjdEXFx1N0ZGNFxcdTdGRjJcXHU4MDJDXFx1ODFCQlxcdTgxQzRcXHU4MUNDXFx1ODFDQVxcdTgxQzVcXHU4MUM3XFx1ODFCQ1xcdTgxRTlcXHU4MjVCXFx1ODI1QVxcdTgyNUNcXHU4NTgzXFx1ODU4MFxcdTg1OEZcXHU4NUE3XFx1ODU5NVxcdTg1QTBcXHU4NThCXFx1ODVBM1xcdTg1N0JcXHU4NUE0XFx1ODU5QVxcdTg1OUVcIl0sXG4gICAgICBbXCJlZTQwXCIsIFwiXFx1ODU3N1xcdTg1N0NcXHU4NTg5XFx1ODVBMVxcdTg1N0FcXHU4NTc4XFx1ODU1N1xcdTg1OEVcXHU4NTk2XFx1ODU4NlxcdTg1OERcXHU4NTk5XFx1ODU5RFxcdTg1ODFcXHU4NUEyXFx1ODU4MlxcdTg1ODhcXHU4NTg1XFx1ODU3OVxcdTg1NzZcXHU4NTk4XFx1ODU5MFxcdTg1OUZcXHU4NjY4XFx1ODdCRVxcdTg3QUFcXHU4N0FEXFx1ODdDNVxcdTg3QjBcXHU4N0FDXFx1ODdCOVxcdTg3QjVcXHU4N0JDXFx1ODdBRVxcdTg3QzlcXHU4N0MzXFx1ODdDMlxcdTg3Q0NcXHU4N0I3XFx1ODdBRlxcdTg3QzRcXHU4N0NBXFx1ODdCNFxcdTg3QjZcXHU4N0JGXFx1ODdCOFxcdTg3QkRcXHU4N0RFXFx1ODdCMlxcdTg5MzVcXHU4OTMzXFx1ODkzQ1xcdTg5M0VcXHU4OTQxXFx1ODk1MlxcdTg5MzdcXHU4OTQyXFx1ODlBRFxcdTg5QUZcXHU4OUFFXFx1ODlGMlxcdTg5RjNcXHU4QjFFXCJdLFxuICAgICAgW1wiZWVhMVwiLCBcIlxcdThCMThcXHU4QjE2XFx1OEIxMVxcdThCMDVcXHU4QjBCXFx1OEIyMlxcdThCMEZcXHU4QjEyXFx1OEIxNVxcdThCMDdcXHU4QjBEXFx1OEIwOFxcdThCMDZcXHU4QjFDXFx1OEIxM1xcdThCMUFcXHU4QzRGXFx1OEM3MFxcdThDNzJcXHU4QzcxXFx1OEM2RlxcdThDOTVcXHU4Qzk0XFx1OENGOVxcdThENkZcXHU4RTRFXFx1OEU0RFxcdThFNTNcXHU4RTUwXFx1OEU0Q1xcdThFNDdcXHU4RjQzXFx1OEY0MFxcdTkwODVcXHU5MDdFXFx1OTEzOFxcdTkxOUFcXHU5MUEyXFx1OTE5QlxcdTkxOTlcXHU5MTlGXFx1OTFBMVxcdTkxOURcXHU5MUEwXFx1OTNBMVxcdTkzODNcXHU5M0FGXFx1OTM2NFxcdTkzNTZcXHU5MzQ3XFx1OTM3Q1xcdTkzNThcXHU5MzVDXFx1OTM3NlxcdTkzNDlcXHU5MzUwXFx1OTM1MVxcdTkzNjBcXHU5MzZEXFx1OTM4RlxcdTkzNENcXHU5MzZBXFx1OTM3OVxcdTkzNTdcXHU5MzU1XFx1OTM1MlxcdTkzNEZcXHU5MzcxXFx1OTM3N1xcdTkzN0JcXHU5MzYxXFx1OTM1RVxcdTkzNjNcXHU5MzY3XFx1OTM4MFxcdTkzNEVcXHU5MzU5XFx1OTVDN1xcdTk1QzBcXHU5NUM5XFx1OTVDM1xcdTk1QzVcXHU5NUI3XFx1OTZBRVxcdTk2QjBcXHU5NkFDXFx1OTcyMFxcdTk3MUZcXHU5NzE4XFx1OTcxRFxcdTk3MTlcXHU5NzlBXFx1OTdBMVxcdTk3OUNcIl0sXG4gICAgICBbXCJlZjQwXCIsIFwiXFx1OTc5RVxcdTk3OURcXHU5N0Q1XFx1OTdENFxcdTk3RjFcXHU5ODQxXFx1OTg0NFxcdTk4NEFcXHU5ODQ5XFx1OTg0NVxcdTk4NDNcXHU5OTI1XFx1OTkyQlxcdTk5MkNcXHU5OTJBXFx1OTkzM1xcdTk5MzJcXHU5OTJGXFx1OTkyRFxcdTk5MzFcXHU5OTMwXFx1OTk5OFxcdTk5QTNcXHU5OUExXFx1OUEwMlxcdTk5RkFcXHU5OUY0XFx1OTlGN1xcdTk5RjlcXHU5OUY4XFx1OTlGNlxcdTk5RkJcXHU5OUZEXFx1OTlGRVxcdTk5RkNcXHU5QTAzXFx1OUFCRVxcdTlBRkVcXHU5QUZEXFx1OUIwMVxcdTlBRkNcXHU5QjQ4XFx1OUI5QVxcdTlCQThcXHU5QjlFXFx1OUI5QlxcdTlCQTZcXHU5QkExXFx1OUJBNVxcdTlCQTRcXHU5Qjg2XFx1OUJBMlxcdTlCQTBcXHU5QkFGXFx1OUQzM1xcdTlENDFcXHU5RDY3XFx1OUQzNlxcdTlEMkVcXHU5RDJGXFx1OUQzMVxcdTlEMzhcXHU5RDMwXCJdLFxuICAgICAgW1wiZWZhMVwiLCBcIlxcdTlENDVcXHU5RDQyXFx1OUQ0M1xcdTlEM0VcXHU5RDM3XFx1OUQ0MFxcdTlEM0RcXHU3RkY1XFx1OUQyRFxcdTlFOEFcXHU5RTg5XFx1OUU4RFxcdTlFQjBcXHU5RUM4XFx1OUVEQVxcdTlFRkJcXHU5RUZGXFx1OUYyNFxcdTlGMjNcXHU5RjIyXFx1OUY1NFxcdTlGQTBcXHU1MTMxXFx1NTEyRFxcdTUxMkVcXHU1Njk4XFx1NTY5Q1xcdTU2OTdcXHU1NjlBXFx1NTY5RFxcdTU2OTlcXHU1OTcwXFx1NUIzQ1xcdTVDNjlcXHU1QzZBXFx1NURDMFxcdTVFNkRcXHU1RTZFXFx1NjFEOFxcdTYxREZcXHU2MUVEXFx1NjFFRVxcdTYxRjFcXHU2MUVBXFx1NjFGMFxcdTYxRUJcXHU2MUQ2XFx1NjFFOVxcdTY0RkZcXHU2NTA0XFx1NjRGRFxcdTY0RjhcXHU2NTAxXFx1NjUwM1xcdTY0RkNcXHU2NTk0XFx1NjVEQlxcdTY2REFcXHU2NkRCXFx1NjZEOFxcdTZBQzVcXHU2QUI5XFx1NkFCRFxcdTZBRTFcXHU2QUM2XFx1NkFCQVxcdTZBQjZcXHU2QUI3XFx1NkFDN1xcdTZBQjRcXHU2QUFEXFx1NkI1RVxcdTZCQzlcXHU2QzBCXFx1NzAwN1xcdTcwMENcXHU3MDBEXFx1NzAwMVxcdTcwMDVcXHU3MDE0XFx1NzAwRVxcdTZGRkZcXHU3MDAwXFx1NkZGQlxcdTcwMjZcXHU2RkZDXFx1NkZGN1xcdTcwMEFcXHU3MjAxXFx1NzFGRlxcdTcxRjlcXHU3MjAzXFx1NzFGRFxcdTczNzZcIl0sXG4gICAgICBbXCJmMDQwXCIsIFwiXFx1NzRCOFxcdTc0QzBcXHU3NEI1XFx1NzRDMVxcdTc0QkVcXHU3NEI2XFx1NzRCQlxcdTc0QzJcXHU3NTE0XFx1NzUxM1xcdTc2NUNcXHU3NjY0XFx1NzY1OVxcdTc2NTBcXHU3NjUzXFx1NzY1N1xcdTc2NUFcXHU3NkE2XFx1NzZCRFxcdTc2RUNcXHU3N0MyXFx1NzdCQVxcdTc4RkZcXHU3OTBDXFx1NzkxM1xcdTc5MTRcXHU3OTA5XFx1NzkxMFxcdTc5MTJcXHU3OTExXFx1NzlBRFxcdTc5QUNcXHU3QTVGXFx1N0MxQ1xcdTdDMjlcXHU3QzE5XFx1N0MyMFxcdTdDMUZcXHU3QzJEXFx1N0MxRFxcdTdDMjZcXHU3QzI4XFx1N0MyMlxcdTdDMjVcXHU3QzMwXFx1N0U1Q1xcdTdFNTBcXHU3RTU2XFx1N0U2M1xcdTdFNThcXHU3RTYyXFx1N0U1RlxcdTdFNTFcXHU3RTYwXFx1N0U1N1xcdTdFNTNcXHU3RkI1XFx1N0ZCM1xcdTdGRjdcXHU3RkY4XFx1ODA3NVxcdTgxRDFcXHU4MUQyXCJdLFxuICAgICAgW1wiZjBhMVwiLCBcIlxcdTgxRDBcXHU4MjVGXFx1ODI1RVxcdTg1QjRcXHU4NUM2XFx1ODVDMFxcdTg1QzNcXHU4NUMyXFx1ODVCM1xcdTg1QjVcXHU4NUJEXFx1ODVDN1xcdTg1QzRcXHU4NUJGXFx1ODVDQlxcdTg1Q0VcXHU4NUM4XFx1ODVDNVxcdTg1QjFcXHU4NUI2XFx1ODVEMlxcdTg2MjRcXHU4NUI4XFx1ODVCN1xcdTg1QkVcXHU4NjY5XFx1ODdFN1xcdTg3RTZcXHU4N0UyXFx1ODdEQlxcdTg3RUJcXHU4N0VBXFx1ODdFNVxcdTg3REZcXHU4N0YzXFx1ODdFNFxcdTg3RDRcXHU4N0RDXFx1ODdEM1xcdTg3RURcXHU4N0Q4XFx1ODdFM1xcdTg3QTRcXHU4N0Q3XFx1ODdEOVxcdTg4MDFcXHU4N0Y0XFx1ODdFOFxcdTg3RERcXHU4OTUzXFx1ODk0QlxcdTg5NEZcXHU4OTRDXFx1ODk0NlxcdTg5NTBcXHU4OTUxXFx1ODk0OVxcdThCMkFcXHU4QjI3XFx1OEIyM1xcdThCMzNcXHU4QjMwXFx1OEIzNVxcdThCNDdcXHU4QjJGXFx1OEIzQ1xcdThCM0VcXHU4QjMxXFx1OEIyNVxcdThCMzdcXHU4QjI2XFx1OEIzNlxcdThCMkVcXHU4QjI0XFx1OEIzQlxcdThCM0RcXHU4QjNBXFx1OEM0MlxcdThDNzVcXHU4Qzk5XFx1OEM5OFxcdThDOTdcXHU4Q0ZFXFx1OEQwNFxcdThEMDJcXHU4RDAwXFx1OEU1Q1xcdThFNjJcXHU4RTYwXFx1OEU1N1xcdThFNTZcXHU4RTVFXFx1OEU2NVxcdThFNjdcIl0sXG4gICAgICBbXCJmMTQwXCIsIFwiXFx1OEU1QlxcdThFNUFcXHU4RTYxXFx1OEU1RFxcdThFNjlcXHU4RTU0XFx1OEY0NlxcdThGNDdcXHU4RjQ4XFx1OEY0QlxcdTkxMjhcXHU5MTNBXFx1OTEzQlxcdTkxM0VcXHU5MUE4XFx1OTFBNVxcdTkxQTdcXHU5MUFGXFx1OTFBQVxcdTkzQjVcXHU5MzhDXFx1OTM5MlxcdTkzQjdcXHU5MzlCXFx1OTM5RFxcdTkzODlcXHU5M0E3XFx1OTM4RVxcdTkzQUFcXHU5MzlFXFx1OTNBNlxcdTkzOTVcXHU5Mzg4XFx1OTM5OVxcdTkzOUZcXHU5MzhEXFx1OTNCMVxcdTkzOTFcXHU5M0IyXFx1OTNBNFxcdTkzQThcXHU5M0I0XFx1OTNBM1xcdTkzQTVcXHU5NUQyXFx1OTVEM1xcdTk1RDFcXHU5NkIzXFx1OTZEN1xcdTk2REFcXHU1REMyXFx1OTZERlxcdTk2RDhcXHU5NkREXFx1OTcyM1xcdTk3MjJcXHU5NzI1XFx1OTdBQ1xcdTk3QUVcXHU5N0E4XFx1OTdBQlxcdTk3QTRcXHU5N0FBXCJdLFxuICAgICAgW1wiZjFhMVwiLCBcIlxcdTk3QTJcXHU5N0E1XFx1OTdEN1xcdTk3RDlcXHU5N0Q2XFx1OTdEOFxcdTk3RkFcXHU5ODUwXFx1OTg1MVxcdTk4NTJcXHU5OEI4XFx1OTk0MVxcdTk5M0NcXHU5OTNBXFx1OUEwRlxcdTlBMEJcXHU5QTA5XFx1OUEwRFxcdTlBMDRcXHU5QTExXFx1OUEwQVxcdTlBMDVcXHU5QTA3XFx1OUEwNlxcdTlBQzBcXHU5QURDXFx1OUIwOFxcdTlCMDRcXHU5QjA1XFx1OUIyOVxcdTlCMzVcXHU5QjRBXFx1OUI0Q1xcdTlCNEJcXHU5QkM3XFx1OUJDNlxcdTlCQzNcXHU5QkJGXFx1OUJDMVxcdTlCQjVcXHU5QkI4XFx1OUJEM1xcdTlCQjZcXHU5QkM0XFx1OUJCOVxcdTlCQkRcXHU5RDVDXFx1OUQ1M1xcdTlENEZcXHU5RDRBXFx1OUQ1QlxcdTlENEJcXHU5RDU5XFx1OUQ1NlxcdTlENENcXHU5RDU3XFx1OUQ1MlxcdTlENTRcXHU5RDVGXFx1OUQ1OFxcdTlENUFcXHU5RThFXFx1OUU4Q1xcdTlFREZcXHU5RjAxXFx1OUYwMFxcdTlGMTZcXHU5RjI1XFx1OUYyQlxcdTlGMkFcXHU5RjI5XFx1OUYyOFxcdTlGNENcXHU5RjU1XFx1NTEzNFxcdTUxMzVcXHU1Mjk2XFx1NTJGN1xcdTUzQjRcXHU1NkFCXFx1NTZBRFxcdTU2QTZcXHU1NkE3XFx1NTZBQVxcdTU2QUNcXHU1OERBXFx1NThERFxcdTU4REJcXHU1OTEyXFx1NUIzRFxcdTVCM0VcXHU1QjNGXFx1NURDM1xcdTVFNzBcIl0sXG4gICAgICBbXCJmMjQwXCIsIFwiXFx1NUZCRlxcdTYxRkJcXHU2NTA3XFx1NjUxMFxcdTY1MERcXHU2NTA5XFx1NjUwQ1xcdTY1MEVcXHU2NTg0XFx1NjVERVxcdTY1RERcXHU2NkRFXFx1NkFFN1xcdTZBRTBcXHU2QUNDXFx1NkFEMVxcdTZBRDlcXHU2QUNCXFx1NkFERlxcdTZBRENcXHU2QUQwXFx1NkFFQlxcdTZBQ0ZcXHU2QUNEXFx1NkFERVxcdTZCNjBcXHU2QkIwXFx1NkMwQ1xcdTcwMTlcXHU3MDI3XFx1NzAyMFxcdTcwMTZcXHU3MDJCXFx1NzAyMVxcdTcwMjJcXHU3MDIzXFx1NzAyOVxcdTcwMTdcXHU3MDI0XFx1NzAxQ1xcdTcwMkFcXHU3MjBDXFx1NzIwQVxcdTcyMDdcXHU3MjAyXFx1NzIwNVxcdTcyQTVcXHU3MkE2XFx1NzJBNFxcdTcyQTNcXHU3MkExXFx1NzRDQlxcdTc0QzVcXHU3NEI3XFx1NzRDM1xcdTc1MTZcXHU3NjYwXFx1NzdDOVxcdTc3Q0FcXHU3N0M0XFx1NzdGMVxcdTc5MURcXHU3OTFCXCJdLFxuICAgICAgW1wiZjJhMVwiLCBcIlxcdTc5MjFcXHU3OTFDXFx1NzkxN1xcdTc5MUVcXHU3OUIwXFx1N0E2N1xcdTdBNjhcXHU3QzMzXFx1N0MzQ1xcdTdDMzlcXHU3QzJDXFx1N0MzQlxcdTdDRUNcXHU3Q0VBXFx1N0U3NlxcdTdFNzVcXHU3RTc4XFx1N0U3MFxcdTdFNzdcXHU3RTZGXFx1N0U3QVxcdTdFNzJcXHU3RTc0XFx1N0U2OFxcdTdGNEJcXHU3RjRBXFx1N0Y4M1xcdTdGODZcXHU3RkI3XFx1N0ZGRFxcdTdGRkVcXHU4MDc4XFx1ODFEN1xcdTgxRDVcXHU4MjY0XFx1ODI2MVxcdTgyNjNcXHU4NUVCXFx1ODVGMVxcdTg1RURcXHU4NUQ5XFx1ODVFMVxcdTg1RThcXHU4NURBXFx1ODVEN1xcdTg1RUNcXHU4NUYyXFx1ODVGOFxcdTg1RDhcXHU4NURGXFx1ODVFM1xcdTg1RENcXHU4NUQxXFx1ODVGMFxcdTg1RTZcXHU4NUVGXFx1ODVERVxcdTg1RTJcXHU4ODAwXFx1ODdGQVxcdTg4MDNcXHU4N0Y2XFx1ODdGN1xcdTg4MDlcXHU4ODBDXFx1ODgwQlxcdTg4MDZcXHU4N0ZDXFx1ODgwOFxcdTg3RkZcXHU4ODBBXFx1ODgwMlxcdTg5NjJcXHU4OTVBXFx1ODk1QlxcdTg5NTdcXHU4OTYxXFx1ODk1Q1xcdTg5NThcXHU4OTVEXFx1ODk1OVxcdTg5ODhcXHU4OUI3XFx1ODlCNlxcdTg5RjZcXHU4QjUwXFx1OEI0OFxcdThCNEFcXHU4QjQwXFx1OEI1M1xcdThCNTZcXHU4QjU0XFx1OEI0QlxcdThCNTVcIl0sXG4gICAgICBbXCJmMzQwXCIsIFwiXFx1OEI1MVxcdThCNDJcXHU4QjUyXFx1OEI1N1xcdThDNDNcXHU4Qzc3XFx1OEM3NlxcdThDOUFcXHU4RDA2XFx1OEQwN1xcdThEMDlcXHU4REFDXFx1OERBQVxcdThEQURcXHU4REFCXFx1OEU2RFxcdThFNzhcXHU4RTczXFx1OEU2QVxcdThFNkZcXHU4RTdCXFx1OEVDMlxcdThGNTJcXHU4RjUxXFx1OEY0RlxcdThGNTBcXHU4RjUzXFx1OEZCNFxcdTkxNDBcXHU5MTNGXFx1OTFCMFxcdTkxQURcXHU5M0RFXFx1OTNDN1xcdTkzQ0ZcXHU5M0MyXFx1OTNEQVxcdTkzRDBcXHU5M0Y5XFx1OTNFQ1xcdTkzQ0NcXHU5M0Q5XFx1OTNBOVxcdTkzRTZcXHU5M0NBXFx1OTNENFxcdTkzRUVcXHU5M0UzXFx1OTNENVxcdTkzQzRcXHU5M0NFXFx1OTNDMFxcdTkzRDJcXHU5M0U3XFx1OTU3RFxcdTk1REFcXHU5NURCXFx1OTZFMVxcdTk3MjlcXHU5NzJCXFx1OTcyQ1xcdTk3MjhcXHU5NzI2XCJdLFxuICAgICAgW1wiZjNhMVwiLCBcIlxcdTk3QjNcXHU5N0I3XFx1OTdCNlxcdTk3RERcXHU5N0RFXFx1OTdERlxcdTk4NUNcXHU5ODU5XFx1OTg1RFxcdTk4NTdcXHU5OEJGXFx1OThCRFxcdTk4QkJcXHU5OEJFXFx1OTk0OFxcdTk5NDdcXHU5OTQzXFx1OTlBNlxcdTk5QTdcXHU5QTFBXFx1OUExNVxcdTlBMjVcXHU5QTFEXFx1OUEyNFxcdTlBMUJcXHU5QTIyXFx1OUEyMFxcdTlBMjdcXHU5QTIzXFx1OUExRVxcdTlBMUNcXHU5QTE0XFx1OUFDMlxcdTlCMEJcXHU5QjBBXFx1OUIwRVxcdTlCMENcXHU5QjM3XFx1OUJFQVxcdTlCRUJcXHU5QkUwXFx1OUJERVxcdTlCRTRcXHU5QkU2XFx1OUJFMlxcdTlCRjBcXHU5QkQ0XFx1OUJEN1xcdTlCRUNcXHU5QkRDXFx1OUJEOVxcdTlCRTVcXHU5QkQ1XFx1OUJFMVxcdTlCREFcXHU5RDc3XFx1OUQ4MVxcdTlEOEFcXHU5RDg0XFx1OUQ4OFxcdTlENzFcXHU5RDgwXFx1OUQ3OFxcdTlEODZcXHU5RDhCXFx1OUQ4Q1xcdTlEN0RcXHU5RDZCXFx1OUQ3NFxcdTlENzVcXHU5RDcwXFx1OUQ2OVxcdTlEODVcXHU5RDczXFx1OUQ3QlxcdTlEODJcXHU5RDZGXFx1OUQ3OVxcdTlEN0ZcXHU5RDg3XFx1OUQ2OFxcdTlFOTRcXHU5RTkxXFx1OUVDMFxcdTlFRkNcXHU5RjJEXFx1OUY0MFxcdTlGNDFcXHU5RjREXFx1OUY1NlxcdTlGNTdcXHU5RjU4XFx1NTMzN1xcdTU2QjJcIl0sXG4gICAgICBbXCJmNDQwXCIsIFwiXFx1NTZCNVxcdTU2QjNcXHU1OEUzXFx1NUI0NVxcdTVEQzZcXHU1REM3XFx1NUVFRVxcdTVFRUZcXHU1RkMwXFx1NUZDMVxcdTYxRjlcXHU2NTE3XFx1NjUxNlxcdTY1MTVcXHU2NTEzXFx1NjVERlxcdTY2RThcXHU2NkUzXFx1NjZFNFxcdTZBRjNcXHU2QUYwXFx1NkFFQVxcdTZBRThcXHU2QUY5XFx1NkFGMVxcdTZBRUVcXHU2QUVGXFx1NzAzQ1xcdTcwMzVcXHU3MDJGXFx1NzAzN1xcdTcwMzRcXHU3MDMxXFx1NzA0MlxcdTcwMzhcXHU3MDNGXFx1NzAzQVxcdTcwMzlcXHU3MDQwXFx1NzAzQlxcdTcwMzNcXHU3MDQxXFx1NzIxM1xcdTcyMTRcXHU3MkE4XFx1NzM3RFxcdTczN0NcXHU3NEJBXFx1NzZBQlxcdTc2QUFcXHU3NkJFXFx1NzZFRFxcdTc3Q0NcXHU3N0NFXFx1NzdDRlxcdTc3Q0RcXHU3N0YyXFx1NzkyNVxcdTc5MjNcXHU3OTI3XFx1NzkyOFxcdTc5MjRcXHU3OTI5XCJdLFxuICAgICAgW1wiZjRhMVwiLCBcIlxcdTc5QjJcXHU3QTZFXFx1N0E2Q1xcdTdBNkRcXHU3QUY3XFx1N0M0OVxcdTdDNDhcXHU3QzRBXFx1N0M0N1xcdTdDNDVcXHU3Q0VFXFx1N0U3QlxcdTdFN0VcXHU3RTgxXFx1N0U4MFxcdTdGQkFcXHU3RkZGXFx1ODA3OVxcdTgxREJcXHU4MUQ5XFx1ODIwQlxcdTgyNjhcXHU4MjY5XFx1ODYyMlxcdTg1RkZcXHU4NjAxXFx1ODVGRVxcdTg2MUJcXHU4NjAwXFx1ODVGNlxcdTg2MDRcXHU4NjA5XFx1ODYwNVxcdTg2MENcXHU4NUZEXFx1ODgxOVxcdTg4MTBcXHU4ODExXFx1ODgxN1xcdTg4MTNcXHU4ODE2XFx1ODk2M1xcdTg5NjZcXHU4OUI5XFx1ODlGN1xcdThCNjBcXHU4QjZBXFx1OEI1RFxcdThCNjhcXHU4QjYzXFx1OEI2NVxcdThCNjdcXHU4QjZEXFx1OERBRVxcdThFODZcXHU4RTg4XFx1OEU4NFxcdThGNTlcXHU4RjU2XFx1OEY1N1xcdThGNTVcXHU4RjU4XFx1OEY1QVxcdTkwOERcXHU5MTQzXFx1OTE0MVxcdTkxQjdcXHU5MUI1XFx1OTFCMlxcdTkxQjNcXHU5NDBCXFx1OTQxM1xcdTkzRkJcXHU5NDIwXFx1OTQwRlxcdTk0MTRcXHU5M0ZFXFx1OTQxNVxcdTk0MTBcXHU5NDI4XFx1OTQxOVxcdTk0MERcXHU5M0Y1XFx1OTQwMFxcdTkzRjdcXHU5NDA3XFx1OTQwRVxcdTk0MTZcXHU5NDEyXFx1OTNGQVxcdTk0MDlcXHU5M0Y4XFx1OTQwQVxcdTkzRkZcIl0sXG4gICAgICBbXCJmNTQwXCIsIFwiXFx1OTNGQ1xcdTk0MENcXHU5M0Y2XFx1OTQxMVxcdTk0MDZcXHU5NURFXFx1OTVFMFxcdTk1REZcXHU5NzJFXFx1OTcyRlxcdTk3QjlcXHU5N0JCXFx1OTdGRFxcdTk3RkVcXHU5ODYwXFx1OTg2MlxcdTk4NjNcXHU5ODVGXFx1OThDMVxcdTk4QzJcXHU5OTUwXFx1OTk0RVxcdTk5NTlcXHU5OTRDXFx1OTk0QlxcdTk5NTNcXHU5QTMyXFx1OUEzNFxcdTlBMzFcXHU5QTJDXFx1OUEyQVxcdTlBMzZcXHU5QTI5XFx1OUEyRVxcdTlBMzhcXHU5QTJEXFx1OUFDN1xcdTlBQ0FcXHU5QUM2XFx1OUIxMFxcdTlCMTJcXHU5QjExXFx1OUMwQlxcdTlDMDhcXHU5QkY3XFx1OUMwNVxcdTlDMTJcXHU5QkY4XFx1OUM0MFxcdTlDMDdcXHU5QzBFXFx1OUMwNlxcdTlDMTdcXHU5QzE0XFx1OUMwOVxcdTlEOUZcXHU5RDk5XFx1OURBNFxcdTlEOURcXHU5RDkyXFx1OUQ5OFxcdTlEOTBcXHU5RDlCXCJdLFxuICAgICAgW1wiZjVhMVwiLCBcIlxcdTlEQTBcXHU5RDk0XFx1OUQ5Q1xcdTlEQUFcXHU5RDk3XFx1OURBMVxcdTlEOUFcXHU5REEyXFx1OURBOFxcdTlEOUVcXHU5REEzXFx1OURCRlxcdTlEQTlcXHU5RDk2XFx1OURBNlxcdTlEQTdcXHU5RTk5XFx1OUU5QlxcdTlFOUFcXHU5RUU1XFx1OUVFNFxcdTlFRTdcXHU5RUU2XFx1OUYzMFxcdTlGMkVcXHU5RjVCXFx1OUY2MFxcdTlGNUVcXHU5RjVEXFx1OUY1OVxcdTlGOTFcXHU1MTNBXFx1NTEzOVxcdTUyOThcXHU1Mjk3XFx1NTZDM1xcdTU2QkRcXHU1NkJFXFx1NUI0OFxcdTVCNDdcXHU1RENCXFx1NURDRlxcdTVFRjFcXHU2MUZEXFx1NjUxQlxcdTZCMDJcXHU2QUZDXFx1NkIwM1xcdTZBRjhcXHU2QjAwXFx1NzA0M1xcdTcwNDRcXHU3MDRBXFx1NzA0OFxcdTcwNDlcXHU3MDQ1XFx1NzA0NlxcdTcyMURcXHU3MjFBXFx1NzIxOVxcdTczN0VcXHU3NTE3XFx1NzY2QVxcdTc3RDBcXHU3OTJEXFx1NzkzMVxcdTc5MkZcXHU3QzU0XFx1N0M1M1xcdTdDRjJcXHU3RThBXFx1N0U4N1xcdTdFODhcXHU3RThCXFx1N0U4NlxcdTdFOERcXHU3RjREXFx1N0ZCQlxcdTgwMzBcXHU4MUREXFx1ODYxOFxcdTg2MkFcXHU4NjI2XFx1ODYxRlxcdTg2MjNcXHU4NjFDXFx1ODYxOVxcdTg2MjdcXHU4NjJFXFx1ODYyMVxcdTg2MjBcXHU4NjI5XFx1ODYxRVxcdTg2MjVcIl0sXG4gICAgICBbXCJmNjQwXCIsIFwiXFx1ODgyOVxcdTg4MURcXHU4ODFCXFx1ODgyMFxcdTg4MjRcXHU4ODFDXFx1ODgyQlxcdTg4NEFcXHU4OTZEXFx1ODk2OVxcdTg5NkVcXHU4OTZCXFx1ODlGQVxcdThCNzlcXHU4Qjc4XFx1OEI0NVxcdThCN0FcXHU4QjdCXFx1OEQxMFxcdThEMTRcXHU4REFGXFx1OEU4RVxcdThFOENcXHU4RjVFXFx1OEY1QlxcdThGNURcXHU5MTQ2XFx1OTE0NFxcdTkxNDVcXHU5MUI5XFx1OTQzRlxcdTk0M0JcXHU5NDM2XFx1OTQyOVxcdTk0M0RcXHU5NDNDXFx1OTQzMFxcdTk0MzlcXHU5NDJBXFx1OTQzN1xcdTk0MkNcXHU5NDQwXFx1OTQzMVxcdTk1RTVcXHU5NUU0XFx1OTVFM1xcdTk3MzVcXHU5NzNBXFx1OTdCRlxcdTk3RTFcXHU5ODY0XFx1OThDOVxcdTk4QzZcXHU5OEMwXFx1OTk1OFxcdTk5NTZcXHU5QTM5XFx1OUEzRFxcdTlBNDZcXHU5QTQ0XFx1OUE0MlxcdTlBNDFcXHU5QTNBXCJdLFxuICAgICAgW1wiZjZhMVwiLCBcIlxcdTlBM0ZcXHU5QUNEXFx1OUIxNVxcdTlCMTdcXHU5QjE4XFx1OUIxNlxcdTlCM0FcXHU5QjUyXFx1OUMyQlxcdTlDMURcXHU5QzFDXFx1OUMyQ1xcdTlDMjNcXHU5QzI4XFx1OUMyOVxcdTlDMjRcXHU5QzIxXFx1OURCN1xcdTlEQjZcXHU5REJDXFx1OURDMVxcdTlEQzdcXHU5RENBXFx1OURDRlxcdTlEQkVcXHU5REM1XFx1OURDM1xcdTlEQkJcXHU5REI1XFx1OURDRVxcdTlEQjlcXHU5REJBXFx1OURBQ1xcdTlEQzhcXHU5REIxXFx1OURBRFxcdTlEQ0NcXHU5REIzXFx1OURDRFxcdTlEQjJcXHU5RTdBXFx1OUU5Q1xcdTlFRUJcXHU5RUVFXFx1OUVFRFxcdTlGMUJcXHU5RjE4XFx1OUYxQVxcdTlGMzFcXHU5RjRFXFx1OUY2NVxcdTlGNjRcXHU5RjkyXFx1NEVCOVxcdTU2QzZcXHU1NkM1XFx1NTZDQlxcdTU5NzFcXHU1QjRCXFx1NUI0Q1xcdTVERDVcXHU1REQxXFx1NUVGMlxcdTY1MjFcXHU2NTIwXFx1NjUyNlxcdTY1MjJcXHU2QjBCXFx1NkIwOFxcdTZCMDlcXHU2QzBEXFx1NzA1NVxcdTcwNTZcXHU3MDU3XFx1NzA1MlxcdTcyMUVcXHU3MjFGXFx1NzJBOVxcdTczN0ZcXHU3NEQ4XFx1NzRENVxcdTc0RDlcXHU3NEQ3XFx1NzY2RFxcdTc2QURcXHU3OTM1XFx1NzlCNFxcdTdBNzBcXHU3QTcxXFx1N0M1N1xcdTdDNUNcXHU3QzU5XFx1N0M1QlxcdTdDNUFcIl0sXG4gICAgICBbXCJmNzQwXCIsIFwiXFx1N0NGNFxcdTdDRjFcXHU3RTkxXFx1N0Y0RlxcdTdGODdcXHU4MURFXFx1ODI2QlxcdTg2MzRcXHU4NjM1XFx1ODYzM1xcdTg2MkNcXHU4NjMyXFx1ODYzNlxcdTg4MkNcXHU4ODI4XFx1ODgyNlxcdTg4MkFcXHU4ODI1XFx1ODk3MVxcdTg5QkZcXHU4OUJFXFx1ODlGQlxcdThCN0VcXHU4Qjg0XFx1OEI4MlxcdThCODZcXHU4Qjg1XFx1OEI3RlxcdThEMTVcXHU4RTk1XFx1OEU5NFxcdThFOUFcXHU4RTkyXFx1OEU5MFxcdThFOTZcXHU4RTk3XFx1OEY2MFxcdThGNjJcXHU5MTQ3XFx1OTQ0Q1xcdTk0NTBcXHU5NDRBXFx1OTQ0QlxcdTk0NEZcXHU5NDQ3XFx1OTQ0NVxcdTk0NDhcXHU5NDQ5XFx1OTQ0NlxcdTk3M0ZcXHU5N0UzXFx1OTg2QVxcdTk4NjlcXHU5OENCXFx1OTk1NFxcdTk5NUJcXHU5QTRFXFx1OUE1M1xcdTlBNTRcXHU5QTRDXFx1OUE0RlxcdTlBNDhcXHU5QTRBXCJdLFxuICAgICAgW1wiZjdhMVwiLCBcIlxcdTlBNDlcXHU5QTUyXFx1OUE1MFxcdTlBRDBcXHU5QjE5XFx1OUIyQlxcdTlCM0JcXHU5QjU2XFx1OUI1NVxcdTlDNDZcXHU5QzQ4XFx1OUMzRlxcdTlDNDRcXHU5QzM5XFx1OUMzM1xcdTlDNDFcXHU5QzNDXFx1OUMzN1xcdTlDMzRcXHU5QzMyXFx1OUMzRFxcdTlDMzZcXHU5RERCXFx1OUREMlxcdTlEREVcXHU5RERBXFx1OURDQlxcdTlERDBcXHU5RERDXFx1OUREMVxcdTlEREZcXHU5REU5XFx1OUREOVxcdTlERDhcXHU5REQ2XFx1OURGNVxcdTlERDVcXHU5REREXFx1OUVCNlxcdTlFRjBcXHU5RjM1XFx1OUYzM1xcdTlGMzJcXHU5RjQyXFx1OUY2QlxcdTlGOTVcXHU5RkEyXFx1NTEzRFxcdTUyOTlcXHU1OEU4XFx1NThFN1xcdTU5NzJcXHU1QjREXFx1NUREOFxcdTg4MkZcXHU1RjRGXFx1NjIwMVxcdTYyMDNcXHU2MjA0XFx1NjUyOVxcdTY1MjVcXHU2NTk2XFx1NjZFQlxcdTZCMTFcXHU2QjEyXFx1NkIwRlxcdTZCQ0FcXHU3MDVCXFx1NzA1QVxcdTcyMjJcXHU3MzgyXFx1NzM4MVxcdTczODNcXHU3NjcwXFx1NzdENFxcdTdDNjdcXHU3QzY2XFx1N0U5NVxcdTgyNkNcXHU4NjNBXFx1ODY0MFxcdTg2MzlcXHU4NjNDXFx1ODYzMVxcdTg2M0JcXHU4NjNFXFx1ODgzMFxcdTg4MzJcXHU4ODJFXFx1ODgzM1xcdTg5NzZcXHU4OTc0XFx1ODk3M1xcdTg5RkVcIl0sXG4gICAgICBbXCJmODQwXCIsIFwiXFx1OEI4Q1xcdThCOEVcXHU4QjhCXFx1OEI4OFxcdThDNDVcXHU4RDE5XFx1OEU5OFxcdThGNjRcXHU4RjYzXFx1OTFCQ1xcdTk0NjJcXHU5NDU1XFx1OTQ1RFxcdTk0NTdcXHU5NDVFXFx1OTdDNFxcdTk3QzVcXHU5ODAwXFx1OUE1NlxcdTlBNTlcXHU5QjFFXFx1OUIxRlxcdTlCMjBcXHU5QzUyXFx1OUM1OFxcdTlDNTBcXHU5QzRBXFx1OUM0RFxcdTlDNEJcXHU5QzU1XFx1OUM1OVxcdTlDNENcXHU5QzRFXFx1OURGQlxcdTlERjdcXHU5REVGXFx1OURFM1xcdTlERUJcXHU5REY4XFx1OURFNFxcdTlERjZcXHU5REUxXFx1OURFRVxcdTlERTZcXHU5REYyXFx1OURGMFxcdTlERTJcXHU5REVDXFx1OURGNFxcdTlERjNcXHU5REU4XFx1OURFRFxcdTlFQzJcXHU5RUQwXFx1OUVGMlxcdTlFRjNcXHU5RjA2XFx1OUYxQ1xcdTlGMzhcXHU5RjM3XFx1OUYzNlxcdTlGNDNcXHU5RjRGXCJdLFxuICAgICAgW1wiZjhhMVwiLCBcIlxcdTlGNzFcXHU5RjcwXFx1OUY2RVxcdTlGNkZcXHU1NkQzXFx1NTZDRFxcdTVCNEVcXHU1QzZEXFx1NjUyRFxcdTY2RURcXHU2NkVFXFx1NkIxM1xcdTcwNUZcXHU3MDYxXFx1NzA1RFxcdTcwNjBcXHU3MjIzXFx1NzREQlxcdTc0RTVcXHU3N0Q1XFx1NzkzOFxcdTc5QjdcXHU3OUI2XFx1N0M2QVxcdTdFOTdcXHU3Rjg5XFx1ODI2RFxcdTg2NDNcXHU4ODM4XFx1ODgzN1xcdTg4MzVcXHU4ODRCXFx1OEI5NFxcdThCOTVcXHU4RTlFXFx1OEU5RlxcdThFQTBcXHU4RTlEXFx1OTFCRVxcdTkxQkRcXHU5MUMyXFx1OTQ2QlxcdTk0NjhcXHU5NDY5XFx1OTZFNVxcdTk3NDZcXHU5NzQzXFx1OTc0N1xcdTk3QzdcXHU5N0U1XFx1OUE1RVxcdTlBRDVcXHU5QjU5XFx1OUM2M1xcdTlDNjdcXHU5QzY2XFx1OUM2MlxcdTlDNUVcXHU5QzYwXFx1OUUwMlxcdTlERkVcXHU5RTA3XFx1OUUwM1xcdTlFMDZcXHU5RTA1XFx1OUUwMFxcdTlFMDFcXHU5RTA5XFx1OURGRlxcdTlERkRcXHU5RTA0XFx1OUVBMFxcdTlGMUVcXHU5RjQ2XFx1OUY3NFxcdTlGNzVcXHU5Rjc2XFx1NTZENFxcdTY1MkVcXHU2NUI4XFx1NkIxOFxcdTZCMTlcXHU2QjE3XFx1NkIxQVxcdTcwNjJcXHU3MjI2XFx1NzJBQVxcdTc3RDhcXHU3N0Q5XFx1NzkzOVxcdTdDNjlcXHU3QzZCXFx1N0NGNlxcdTdFOUFcIl0sXG4gICAgICBbXCJmOTQwXCIsIFwiXFx1N0U5OFxcdTdFOUJcXHU3RTk5XFx1ODFFMFxcdTgxRTFcXHU4NjQ2XFx1ODY0N1xcdTg2NDhcXHU4OTc5XFx1ODk3QVxcdTg5N0NcXHU4OTdCXFx1ODlGRlxcdThCOThcXHU4Qjk5XFx1OEVBNVxcdThFQTRcXHU4RUEzXFx1OTQ2RVxcdTk0NkRcXHU5NDZGXFx1OTQ3MVxcdTk0NzNcXHU5NzQ5XFx1OTg3MlxcdTk5NUZcXHU5QzY4XFx1OUM2RVxcdTlDNkRcXHU5RTBCXFx1OUUwRFxcdTlFMTBcXHU5RTBGXFx1OUUxMlxcdTlFMTFcXHU5RUExXFx1OUVGNVxcdTlGMDlcXHU5RjQ3XFx1OUY3OFxcdTlGN0JcXHU5RjdBXFx1OUY3OVxcdTU3MUVcXHU3MDY2XFx1N0M2RlxcdTg4M0NcXHU4REIyXFx1OEVBNlxcdTkxQzNcXHU5NDc0XFx1OTQ3OFxcdTk0NzZcXHU5NDc1XFx1OUE2MFxcdTlDNzRcXHU5QzczXFx1OUM3MVxcdTlDNzVcXHU5RTE0XFx1OUUxM1xcdTlFRjZcXHU5RjBBXCJdLFxuICAgICAgW1wiZjlhMVwiLCBcIlxcdTlGQTRcXHU3MDY4XFx1NzA2NVxcdTdDRjdcXHU4NjZBXFx1ODgzRVxcdTg4M0RcXHU4ODNGXFx1OEI5RVxcdThDOUNcXHU4RUE5XFx1OEVDOVxcdTk3NEJcXHU5ODczXFx1OTg3NFxcdTk4Q0NcXHU5OTYxXFx1OTlBQlxcdTlBNjRcXHU5QTY2XFx1OUE2N1xcdTlCMjRcXHU5RTE1XFx1OUUxN1xcdTlGNDhcXHU2MjA3XFx1NkIxRVxcdTcyMjdcXHU4NjRDXFx1OEVBOFxcdTk0ODJcXHU5NDgwXFx1OTQ4MVxcdTlBNjlcXHU5QTY4XFx1OUIyRVxcdTlFMTlcXHU3MjI5XFx1ODY0QlxcdThCOUZcXHU5NDgzXFx1OUM3OVxcdTlFQjdcXHU3Njc1XFx1OUE2QlxcdTlDN0FcXHU5RTFEXFx1NzA2OVxcdTcwNkFcXHU5RUE0XFx1OUY3RVxcdTlGNDlcXHU5Rjk4XFx1Nzg4MVxcdTkyQjlcXHU4OENGXFx1NThCQlxcdTYwNTJcXHU3Q0E3XFx1NUFGQVxcdTI1NTRcXHUyNTY2XFx1MjU1N1xcdTI1NjBcXHUyNTZDXFx1MjU2M1xcdTI1NUFcXHUyNTY5XFx1MjU1RFxcdTI1NTJcXHUyNTY0XFx1MjU1NVxcdTI1NUVcXHUyNTZBXFx1MjU2MVxcdTI1NThcXHUyNTY3XFx1MjU1QlxcdTI1NTNcXHUyNTY1XFx1MjU1NlxcdTI1NUZcXHUyNTZCXFx1MjU2MlxcdTI1NTlcXHUyNTY4XFx1MjU1Q1xcdTI1NTFcXHUyNTUwXFx1MjU2RFxcdTI1NkVcXHUyNTcwXFx1MjU2RlxcdTI1OTNcIl1cbiAgICBdO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvYmlnNS1hZGRlZC5qc29uXG52YXIgcmVxdWlyZV9iaWc1X2FkZGVkMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2JpZzUtYWRkZWQuanNvblwiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gW1xuICAgICAgW1wiODc0MFwiLCBcIlxcdTQzRjBcXHU0QzMyXFx1NDYwM1xcdTQ1QTZcXHU0NTc4XFx1ezI3MjY3fVxcdTRENzdcXHU0NUIzXFx1ezI3Q0IxfVxcdTRDRTJcXHV7MjdDQzV9XFx1M0I5NVxcdTQ3MzZcXHU0NzQ0XFx1NEM0N1xcdTRDNDBcXHV7MjQyQkZ9XFx1ezIzNjE3fVxcdXsyNzM1Mn1cXHV7MjZFOEJ9XFx1ezI3MEQyfVxcdTRDNTdcXHV7MkEzNTF9XFx1NDc0RlxcdTQ1REFcXHU0Qzg1XFx1ezI3QzZDfVxcdTREMDdcXHU0QUE0XFx1NDZBMVxcdXsyNkIyM31cXHU3MjI1XFx1ezI1QTU0fVxcdXsyMUE2M31cXHV7MjNFMDZ9XFx1ezIzRjYxfVxcdTY2NERcXHU1NkZCXCJdLFxuICAgICAgW1wiODc2N1wiLCBcIlxcdTdEOTVcXHU1OTFEXFx1ezI4QkI5fVxcdTNERjRcXHU5NzM0XFx1ezI3QkVGfVxcdTVCREJcXHV7MjFENUV9XFx1NUFBNFxcdTM2MjVcXHV7MjlFQjB9XFx1NUFEMVxcdTVCQjdcXHU1Q0ZDXFx1Njc2RVxcdTg1OTNcXHV7Mjk5NDV9XFx1NzQ2MVxcdTc0OURcXHUzODc1XFx1ezIxRDUzfVxcdXsyMzY5RX1cXHV7MjYwMjF9XFx1M0VFQ1wiXSxcbiAgICAgIFtcIjg3YTFcIiwgXCJcXHV7MjU4REV9XFx1M0FGNVxcdTdBRkNcXHU5Rjk3XFx1ezI0MTYxfVxcdXsyODkwRH1cXHV7MjMxRUF9XFx1ezIwQThBfVxcdXsyMzI1RX1cXHU0MzBBXFx1ODQ4NFxcdTlGOTZcXHU5NDJGXFx1NDkzMFxcdTg2MTNcXHU1ODk2XFx1OTc0QVxcdTkyMThcXHU3OUQwXFx1N0EzMlxcdTY2NjBcXHU2QTI5XFx1ODg5RFxcdTc0NENcXHU3QkM1XFx1Njc4MlxcdTdBMkNcXHU1MjRGXFx1OTA0NlxcdTM0RTZcXHU3M0M0XFx1ezI1REI5fVxcdTc0QzZcXHU5RkM3XFx1NTdCM1xcdTQ5MkZcXHU1NDRDXFx1NDEzMVxcdXsyMzY4RX1cXHU1ODE4XFx1N0E3MlxcdXsyN0I2NX1cXHU4QjhGXFx1NDZBRVxcdXsyNkU4OH1cXHU0MTgxXFx1ezI1RDk5fVxcdTdCQUVcXHV7MjI0QkN9XFx1OUZDOFxcdXsyMjRDMX1cXHV7MjI0Qzl9XFx1ezIyNENDfVxcdTlGQzlcXHU4NTA0XFx1ezIzNUJCfVxcdTQwQjRcXHU5RkNBXFx1NDRFMVxcdXsyQURGRn1cXHU2MkMxXFx1NzA2RVxcdTlGQ0JcIl0sXG4gICAgICBbXCI4ODQwXCIsIFwiXFx1MzFDMFwiLCA0LCBcIlxcdXsyMDEwQ31cXHUzMUM1XFx1ezIwMEQxfVxcdXsyMDBDRH1cXHUzMUM2XFx1MzFDN1xcdXsyMDBDQn1cXHV7MjFGRTh9XFx1MzFDOFxcdXsyMDBDQX1cXHUzMUM5XFx1MzFDQVxcdTMxQ0JcXHUzMUNDXFx1ezIwMTBFfVxcdTMxQ0RcXHUzMUNFXFx1MDEwMFxceEMxXFx1MDFDRFxceEMwXFx1MDExMlxceEM5XFx1MDExQVxceEM4XFx1MDE0Q1xceEQzXFx1MDFEMVxceEQyXFx1MEZGRlxceENBXFx1MDMwNFxcdTFFQkVcXHUwRkZGXFx4Q0FcXHUwMzBDXFx1MUVDMFxceENBXFx1MDEwMVxceEUxXFx1MDFDRVxceEUwXFx1MDI1MVxcdTAxMTNcXHhFOVxcdTAxMUJcXHhFOFxcdTAxMkJcXHhFRFxcdTAxRDBcXHhFQ1xcdTAxNERcXHhGM1xcdTAxRDJcXHhGMlxcdTAxNkJcXHhGQVxcdTAxRDRcXHhGOVxcdTAxRDZcXHUwMUQ4XFx1MDFEQVwiXSxcbiAgICAgIFtcIjg4YTFcIiwgXCJcXHUwMURDXFx4RkNcXHUwRkZGXFx4RUFcXHUwMzA0XFx1MUVCRlxcdTBGRkZcXHhFQVxcdTAzMENcXHUxRUMxXFx4RUFcXHUwMjYxXFx1MjNEQVxcdTIzREJcIl0sXG4gICAgICBbXCI4OTQwXCIsIFwiXFx1ezJBM0E5fVxcdXsyMTE0NX1cIl0sXG4gICAgICBbXCI4OTQzXCIsIFwiXFx1NjUwQVwiXSxcbiAgICAgIFtcIjg5NDZcIiwgXCJcXHU0RTNEXFx1NkVERFxcdTlENEVcXHU5MURGXCJdLFxuICAgICAgW1wiODk0Y1wiLCBcIlxcdXsyNzczNX1cXHU2NDkxXFx1NEYxQVxcdTRGMjhcXHU0RkE4XFx1NTE1NlxcdTUxNzRcXHU1MTlDXFx1NTFFNFxcdTUyQTFcXHU1MkE4XFx1NTMzQlxcdTUzNEVcXHU1M0QxXFx1NTNEOFxcdTU2RTJcXHU1OEYwXFx1NTkwNFxcdTU5MDdcXHU1OTMyXFx1NTkzNFxcdTVCNjZcXHU1QjlFXFx1NUI5RlxcdTVDOUFcXHU1RTg2XFx1NjAzQlxcdTY1ODlcXHU2N0ZFXFx1NjgwNFxcdTY4NjVcXHU2RDRFXFx1NzBCQ1xcdTc1MzVcXHU3RUE0XFx1N0VBQ1xcdTdFQkFcXHU3RUM3XFx1N0VDRlxcdTdFREZcXHU3RjA2XFx1N0YzN1xcdTgyN0FcXHU4MkNGXFx1ODM2RlxcdTg5QzZcXHU4QkJFXFx1OEJFMlxcdThGNjZcXHU4RjY3XFx1OEY2RVwiXSxcbiAgICAgIFtcIjg5YTFcIiwgXCJcXHU3NDExXFx1N0NGQ1xcdTdEQ0RcXHU2OTQ2XFx1N0FDOVxcdTUyMjdcIl0sXG4gICAgICBbXCI4OWFiXCIsIFwiXFx1OTE4Q1xcdTc4QjhcXHU5MTVFXFx1ODBCQ1wiXSxcbiAgICAgIFtcIjg5YjBcIiwgXCJcXHU4RDBCXFx1ODBGNlxcdXsyMDlFN31cIl0sXG4gICAgICBbXCI4OWI1XCIsIFwiXFx1ODA5RlxcdTlFQzdcXHU0Q0NEXFx1OURDOVxcdTlFMENcXHU0QzNFXFx1ezI5REY2fVxcdXsyNzAwRX1cXHU5RTBBXFx1ezJBMTMzfVxcdTM1QzFcIl0sXG4gICAgICBbXCI4OWMxXCIsIFwiXFx1NkU5QVxcdTgyM0VcXHU3NTE5XCJdLFxuICAgICAgW1wiODljNVwiLCBcIlxcdTQ5MTFcXHU5QTZDXFx1OUE4RlxcdTlGOTlcXHU3OTg3XFx1ezI4NDZDfVxcdXsyMURDQX1cXHV7MjA1RDB9XFx1ezIyQUU2fVxcdTRFMjRcXHU0RTgxXFx1NEU4MFxcdTRFODdcXHU0RUJGXFx1NEVFQlxcdTRGMzdcXHUzNDRDXFx1NEZCRFxcdTNFNDhcXHU1MDAzXFx1NTA4OFxcdTM0N0RcXHUzNDkzXFx1MzRBNVxcdTUxODZcXHU1OTA1XFx1NTFEQlxcdTUxRkNcXHU1MjA1XFx1NEU4OVxcdTUyNzlcXHU1MjkwXFx1NTMyN1xcdTM1QzdcXHU1M0E5XFx1MzU1MVxcdTUzQjBcXHUzNTUzXFx1NTNDMlxcdTU0MjNcXHUzNTZEXFx1MzU3MlxcdTM2ODFcXHU1NDkzXFx1NTRBM1xcdTU0QjRcXHU1NEI5XFx1NTREMFxcdTU0RUZcXHU1NTE4XFx1NTUyM1xcdTU1MjhcXHUzNTk4XFx1NTUzRlxcdTM1QTVcXHUzNUJGXFx1NTVEN1xcdTM1QzVcIl0sXG4gICAgICBbXCI4YTQwXCIsIFwiXFx1ezI3RDg0fVxcdTU1MjVcIl0sXG4gICAgICBbXCI4YTQzXCIsIFwiXFx1ezIwQzQyfVxcdXsyMEQxNX1cXHV7MjUxMkJ9XFx1NTU5MFxcdXsyMkNDNn1cXHUzOUVDXFx1ezIwMzQxfVxcdThFNDZcXHV7MjREQjh9XFx1ezI5NEU1fVxcdTQwNTNcXHV7MjgwQkV9XFx1Nzc3QVxcdXsyMkMzOH1cXHUzQTM0XFx1NDdENVxcdXsyODE1RH1cXHV7MjY5RjJ9XFx1ezI0REVBfVxcdTY0RERcXHV7MjBEN0N9XFx1ezIwRkI0fVxcdXsyMENENX1cXHV7MjEwRjR9XFx1NjQ4RFxcdThFN0VcXHV7MjBFOTZ9XFx1ezIwQzBCfVxcdXsyMEY2NH1cXHV7MjJDQTl9XFx1ezI4MjU2fVxcdXsyNDREM31cIl0sXG4gICAgICBbXCI4YTY0XCIsIFwiXFx1ezIwRDQ2fVxcdXsyOUE0RH1cXHV7MjgwRTl9XFx1NDdGNFxcdXsyNEVBN31cXHV7MjJDQzJ9XFx1OUFCMlxcdTNBNjdcXHV7Mjk1RjR9XFx1M0ZFRFxcdTM1MDZcXHV7MjUyQzd9XFx1ezI5N0Q0fVxcdXsyNzhDOH1cXHV7MjJENDR9XFx1OUQ2RVxcdTk4MTVcIl0sXG4gICAgICBbXCI4YTc2XCIsIFwiXFx1NDNEOVxcdXsyNjBBNX1cXHU2NEI0XFx1NTRFM1xcdXsyMkQ0Q31cXHV7MjJCQ0F9XFx1ezIxMDc3fVxcdTM5RkJcXHV7MjEwNkZ9XCJdLFxuICAgICAgW1wiOGFhMVwiLCBcIlxcdXsyNjZEQX1cXHV7MjY3MTZ9XFx1ezI3OUEwfVxcdTY0RUFcXHV7MjUwNTJ9XFx1ezIwQzQzfVxcdThFNjhcXHV7MjIxQTF9XFx1ezI4QjRDfVxcdXsyMDczMX1cIl0sXG4gICAgICBbXCI4YWFjXCIsIFwiXFx1NDgwQlxcdXsyMDFBOX1cXHUzRkZBXFx1NTg3M1xcdXsyMkQ4RH1cIl0sXG4gICAgICBbXCI4YWIyXCIsIFwiXFx1ezI0NUM4fVxcdXsyMDRGQ31cXHV7MjYwOTd9XFx1ezIwRjRDfVxcdXsyMEQ5Nn1cXHU1NTc5XFx1NDBCQlxcdTQzQkFcIl0sXG4gICAgICBbXCI4YWJiXCIsIFwiXFx1NEFCNFxcdXsyMkE2Nn1cXHV7MjEwOUR9XFx1ODFBQVxcdTk4RjVcXHV7MjBEOUN9XFx1NjM3OVxcdTM5RkVcXHV7MjI3NzV9XFx1OERDMFxcdTU2QTFcXHU2NDdDXFx1M0U0M1wiXSxcbiAgICAgIFtcIjhhYzlcIiwgXCJcXHV7MkE2MDF9XFx1ezIwRTA5fVxcdXsyMkFDRn1cXHV7MjJDQzl9XCJdLFxuICAgICAgW1wiOGFjZVwiLCBcIlxcdXsyMTBDOH1cXHV7MjM5QzJ9XFx1Mzk5MlxcdTNBMDZcXHV7MjgyOUJ9XFx1MzU3OFxcdXsyNUU0OX1cXHV7MjIwQzd9XFx1NTY1MlxcdXsyMEYzMX1cXHV7MjJDQjJ9XFx1ezI5NzIwfVxcdTM0QkNcXHU2QzNEXFx1ezI0RTNCfVwiXSxcbiAgICAgIFtcIjhhZGZcIiwgXCJcXHV7Mjc1NzR9XFx1ezIyRThCfVxcdXsyMjIwOH1cXHV7MkE2NUJ9XFx1ezI4Q0NEfVxcdXsyMEU3QX1cXHV7MjBDMzR9XFx1ezI2ODFDfVxcdTdGOTNcXHV7MjEwQ0Z9XFx1ezIyODAzfVxcdXsyMjkzOX1cXHUzNUZCXFx1ezI1MUUzfVxcdXsyMEU4Q31cXHV7MjBGOER9XFx1ezIwRUFBfVxcdTNGOTNcXHV7MjBGMzB9XFx1ezIwRDQ3fVxcdXsyMTE0Rn1cXHV7MjBFNEN9XCJdLFxuICAgICAgW1wiOGFmNlwiLCBcIlxcdXsyMEVBQn1cXHV7MjBCQTl9XFx1ezIwRDQ4fVxcdXsyMTBDMH1cXHV7MjExM0R9XFx1M0ZGOVxcdXsyMjY5Nn1cXHU2NDMyXFx1ezIwRkFEfVwiXSxcbiAgICAgIFtcIjhiNDBcIiwgXCJcXHV7MjMzRjR9XFx1ezI3NjM5fVxcdXsyMkJDRX1cXHV7MjBEN0V9XFx1ezIwRDdGfVxcdXsyMkM1MX1cXHV7MjJDNTV9XFx1M0ExOFxcdXsyMEU5OH1cXHV7MjEwQzd9XFx1ezIwRjJFfVxcdXsyQTYzMn1cXHV7MjZCNTB9XFx1ezI4Q0QyfVxcdXsyOEQ5OX1cXHV7MjhDQ0F9XFx1OTVBQVxcdTU0Q0NcXHU4MkM0XFx1NTVCOVwiXSxcbiAgICAgIFtcIjhiNTVcIiwgXCJcXHV7MjlFQzN9XFx1OUMyNlxcdTlBQjZcXHV7Mjc3NUV9XFx1ezIyREVFfVxcdTcxNDBcXHU4MTZEXFx1ODBFQ1xcdTVDMUNcXHV7MjY1NzJ9XFx1ODEzNFxcdTM3OTdcXHU1MzVGXFx1ezI4MEJEfVxcdTkxQjZcXHV7MjBFRkF9XFx1ezIwRTBGfVxcdXsyMEU3N31cXHV7MjBFRkJ9XFx1MzVERFxcdXsyNERFQn1cXHUzNjA5XFx1ezIwQ0Q2fVxcdTU2QUZcXHV7MjI3QjV9XFx1ezIxMEM5fVxcdXsyMEUxMH1cXHV7MjBFNzh9XFx1ezIxMDc4fVxcdXsyMTE0OH1cXHV7MjgyMDd9XFx1ezIxNDU1fVxcdXsyMEU3OX1cXHV7MjRFNTB9XFx1ezIyREE0fVxcdTVBNTRcXHV7MjEwMUR9XFx1ezIxMDFFfVxcdXsyMTBGNX1cXHV7MjEwRjZ9XFx1NTc5Q1xcdXsyMEUxMX1cIl0sXG4gICAgICBbXCI4YmExXCIsIFwiXFx1ezI3Njk0fVxcdXsyODJDRH1cXHV7MjBGQjV9XFx1ezIwRTdCfVxcdXsyNTE3RX1cXHUzNzAzXFx1ezIwRkI2fVxcdXsyMTE4MH1cXHV7MjUyRDh9XFx1ezJBMkJEfVxcdXsyNDlEQX1cXHV7MjE4M0F9XFx1ezI0MTc3fVxcdXsyODI3Q31cXHU1ODk5XFx1NTI2OFxcdTM2MUFcXHV7MjU3M0R9XFx1N0JCMlxcdTVCNjhcXHU0ODAwXFx1NEIyQ1xcdTlGMjdcXHU0OUU3XFx1OUMxRlxcdTlCOERcXHV7MjVCNzR9XFx1ezIzMTNEfVxcdTU1RkJcXHUzNUYyXFx1NTY4OVxcdTRFMjhcXHU1OTAyXFx1ezIxQkMxfVxcdXsyRjg3OH1cXHU5NzUxXFx1ezIwMDg2fVxcdTRFNUJcXHU0RUJCXFx1MzUzRVxcdTVDMjNcXHU1RjUxXFx1NUZDNFxcdTM4RkFcXHU2MjRDXFx1NjUzNVxcdTZCN0FcXHU2QzM1XFx1NkMzQVxcdTcwNkNcXHU3MjJCXFx1NEUyQ1xcdTcyQURcXHV7MjQ4RTl9XFx1N0Y1MlxcdTc5M0JcXHU3Q0Y5XFx1N0Y1M1xcdXsyNjI2QX1cXHUzNEMxXCJdLFxuICAgICAgW1wiOGJkZVwiLCBcIlxcdXsyNjM0Qn1cXHU4MDAyXFx1ODA4MFxcdXsyNjYxMn1cXHV7MjY5NTF9XFx1NTM1RFxcdTg4NjRcXHU4OUMxXFx1ezI3OEIyfVxcdThCQTBcXHU4RDFEXFx1OTQ4NVxcdTk1NzhcXHU5NTdGXFx1OTVFOFxcdXsyOEUwRn1cXHU5N0U2XFx1OTg3NVxcdTk4Q0VcXHU5OERFXFx1OTk2M1xcdXsyOTgxMH1cXHU5QzdDXFx1OUUxRlxcdTlFQzRcXHU2QjZGXFx1RjkwN1xcdTRFMzdcXHV7MjAwODd9XFx1OTYxRFxcdTYyMzdcXHU5NEEyXCJdLFxuICAgICAgW1wiOGM0MFwiLCBcIlxcdTUwM0JcXHU2REZFXFx1ezI5QzczfVxcdTlGQTZcXHUzREM5XFx1ODg4RlxcdXsyNDE0RX1cXHU3MDc3XFx1NUNGNVxcdTRCMjBcXHV7MjUxQ0R9XFx1MzU1OVxcdXsyNUQzMH1cXHU2MTIyXFx1ezI4QTMyfVxcdThGQTdcXHU5MUY2XFx1NzE5MVxcdTY3MTlcXHU3M0JBXFx1ezIzMjgxfVxcdXsyQTEwN31cXHUzQzhCXFx1ezIxOTgwfVxcdTRCMTBcXHU3OEU0XFx1NzQwMlxcdTUxQUVcXHV7Mjg3MEZ9XFx1NDAwOVxcdTZBNjNcXHV7MkEyQkF9XFx1NDIyM1xcdTg2MEZcXHV7MjBBNkZ9XFx1N0EyQVxcdXsyOTk0N31cXHV7MjhBRUF9XFx1OTc1NVxcdTcwNERcXHU1MzI0XFx1ezIyMDdFfVxcdTkzRjRcXHU3NkQ5XFx1ezI4OUUzfVxcdTlGQTdcXHU3N0REXFx1NEVBM1xcdTRGRjBcXHU1MEJDXFx1NEUyRlxcdTRGMTdcXHU5RkE4XFx1NTQzNFxcdTdEOEJcXHU1ODkyXFx1NThEMFxcdXsyMURCNn1cXHU1RTkyXFx1NUU5OVxcdTVGQzJcXHV7MjI3MTJ9XFx1NjU4QlwiXSxcbiAgICAgIFtcIjhjYTFcIiwgXCJcXHV7MjMzRjl9XFx1NjkxOVxcdTZBNDNcXHV7MjNDNjN9XFx1NkNGRlwiXSxcbiAgICAgIFtcIjhjYTdcIiwgXCJcXHU3MjAwXFx1ezI0NTA1fVxcdTczOENcXHUzRURCXFx1ezI0QTEzfVxcdTVCMTVcXHU3NEI5XFx1OEI4M1xcdXsyNUNBNH1cXHV7MjU2OTV9XFx1N0E5M1xcdTdCRUNcXHU3Q0MzXFx1N0U2Q1xcdTgyRjhcXHU4NTk3XFx1OUZBOVxcdTg4OTBcXHU5RkFBXFx1OEVCOVxcdTlGQUJcXHU4RkNGXFx1ODU1RlxcdTk5RTBcXHU5MjIxXFx1OUZBQ1xcdXsyOERCOX1cXHV7MjE0M0Z9XFx1NDA3MVxcdTQyQTJcXHU1QTFBXCJdLFxuICAgICAgW1wiOGNjOVwiLCBcIlxcdTk4NjhcXHU2NzZCXFx1NDI3NlxcdTU3M0RcIl0sXG4gICAgICBbXCI4Y2NlXCIsIFwiXFx1ODVENlxcdXsyNDk3Qn1cXHU4MkJGXFx1ezI3MTBEfVxcdTRDODFcXHV7MjZENzR9XFx1NUQ3QlxcdXsyNkIxNX1cXHV7MjZGQkV9XFx1OUZBRFxcdTlGQUVcXHU1Qjk2XFx1OUZBRlxcdTY2RTdcXHU3RTVCXFx1NkU1N1xcdTc5Q0FcXHUzRDg4XFx1NDRDM1xcdXsyMzI1Nn1cXHV7MjI3OTZ9XFx1NDM5QVxcdTQ1MzZcIl0sXG4gICAgICBbXCI4Y2U2XCIsIFwiXFx1NUNENVxcdXsyM0IxQX1cXHU4QUY5XFx1NUM3OFxcdTNEMTJcXHV7MjM1NTF9XFx1NUQ3OFxcdTlGQjJcXHU3MTU3XFx1NDU1OFxcdXsyNDBFQ31cXHV7MjFFMjN9XFx1NEM3N1xcdTM5NzhcXHUzNDRBXFx1ezIwMUE0fVxcdXsyNkM0MX1cXHU4QUNDXFx1NEZCNFxcdXsyMDIzOX1cXHU1OUJGXFx1ODE2Q1xcdTk4NTZcXHV7Mjk4RkF9XFx1NUYzQlwiXSxcbiAgICAgIFtcIjhkNDBcIiwgXCJcXHV7MjBCOUZ9XCJdLFxuICAgICAgW1wiOGQ0MlwiLCBcIlxcdXsyMjFDMX1cXHV7Mjg5NkR9XFx1NDEwMlxcdTQ2QkJcXHV7MjkwNzl9XFx1M0YwN1xcdTlGQjNcXHV7MkExQjV9XFx1NDBGOFxcdTM3RDZcXHU0NkY3XFx1ezI2QzQ2fVxcdTQxN0NcXHV7Mjg2QjJ9XFx1ezI3M0ZGfVxcdTQ1NkRcXHUzOEQ0XFx1ezI1NDlBfVxcdTQ1NjFcXHU0NTFCXFx1NEQ4OVxcdTRDN0JcXHU0RDc2XFx1NDVFQVxcdTNGQzhcXHV7MjRCMEZ9XFx1MzY2MVxcdTQ0REVcXHU0NEJEXFx1NDFFRFxcdTVEM0VcXHU1RDQ4XFx1NUQ1NlxcdTNERkNcXHUzODBGXFx1NURBNFxcdTVEQjlcXHUzODIwXFx1MzgzOFxcdTVFNDJcXHU1RUJEXFx1NUYyNVxcdTVGODNcXHUzOTA4XFx1MzkxNFxcdTM5M0ZcXHUzOTREXFx1NjBEN1xcdTYxM0RcXHU1Q0U1XFx1Mzk4OVxcdTYxQjdcXHU2MUI5XFx1NjFDRlxcdTM5QjhcXHU2MjJDXFx1NjI5MFxcdTYyRTVcXHU2MzE4XFx1MzlGOFxcdTU2QjFcIl0sXG4gICAgICBbXCI4ZGExXCIsIFwiXFx1M0EwM1xcdTYzRTJcXHU2M0ZCXFx1NjQwN1xcdTY0NUFcXHUzQTRCXFx1NjRDMFxcdTVEMTVcXHU1NjIxXFx1OUY5RlxcdTNBOTdcXHU2NTg2XFx1M0FCRFxcdTY1RkZcXHU2NjUzXFx1M0FGMlxcdTY2OTJcXHUzQjIyXFx1NjcxNlxcdTNCNDJcXHU2N0E0XFx1NjgwMFxcdTNCNThcXHU2ODRBXFx1Njg4NFxcdTNCNzJcXHUzQjcxXFx1M0I3QlxcdTY5MDlcXHU2OTQzXFx1NzI1Q1xcdTY5NjRcXHU2OTlGXFx1Njk4NVxcdTNCQkNcXHU2OUQ2XFx1M0JERFxcdTZBNjVcXHU2QTc0XFx1NkE3MVxcdTZBODJcXHUzQkVDXFx1NkE5OVxcdTNCRjJcXHU2QUFCXFx1NkFCNVxcdTZBRDRcXHU2QUY2XFx1NkI4MVxcdTZCQzFcXHU2QkVBXFx1NkM3NVxcdTZDQUFcXHUzQ0NCXFx1NkQwMlxcdTZEMDZcXHU2RDI2XFx1NkQ4MVxcdTNDRUZcXHU2REE0XFx1NkRCMVxcdTZFMTVcXHU2RTE4XFx1NkUyOVxcdTZFODZcXHV7Mjg5QzB9XFx1NkVCQlxcdTZFRTJcXHU2RURBXFx1OUY3RlxcdTZFRThcXHU2RUU5XFx1NkYyNFxcdTZGMzRcXHUzRDQ2XFx1ezIzRjQxfVxcdTZGODFcXHU2RkJFXFx1M0Q2QVxcdTNENzVcXHU3MUI3XFx1NUM5OVxcdTNEOEFcXHU3MDJDXFx1M0Q5MVxcdTcwNTBcXHU3MDU0XFx1NzA2RlxcdTcwN0ZcXHU3MDg5XFx1ezIwMzI1fVxcdTQzQzFcXHUzNUYxXFx1ezIwRUQ4fVwiXSxcbiAgICAgIFtcIjhlNDBcIiwgXCJcXHV7MjNFRDd9XFx1NTdCRVxcdXsyNkVEM31cXHU3MTNFXFx1ezI1N0UwfVxcdTM2NEVcXHU2OUEyXFx1ezI4QkU5fVxcdTVCNzRcXHU3QTQ5XFx1ezI1OEUxfVxcdXsyOTREOX1cXHU3QTY1XFx1N0E3RFxcdXsyNTlBQ31cXHU3QUJCXFx1N0FCMFxcdTdBQzJcXHU3QUMzXFx1NzFEMVxcdXsyNjQ4RH1cXHU0MUNBXFx1N0FEQVxcdTdBRERcXHU3QUVBXFx1NDFFRlxcdTU0QjJcXHV7MjVDMDF9XFx1N0IwQlxcdTdCNTVcXHU3QjI5XFx1ezI1MzBFfVxcdXsyNUNGRX1cXHU3QkEyXFx1N0I2RlxcdTgzOUNcXHV7MjVCQjR9XFx1ezI2QzdGfVxcdTdCRDBcXHU4NDIxXFx1N0I5MlxcdTdCQjhcXHV7MjVEMjB9XFx1M0RBRFxcdXsyNUM2NX1cXHU4NDkyXFx1N0JGQVxcdTdDMDZcXHU3QzM1XFx1ezI1Q0MxfVxcdTdDNDRcXHU3QzgzXFx1ezI0ODgyfVxcdTdDQTZcXHU2NjdEXFx1ezI0NTc4fVxcdTdDQzlcXHU3Q0M3XFx1N0NFNlxcdTdDNzRcXHU3Q0YzXFx1N0NGNVxcdTdDQ0VcIl0sXG4gICAgICBbXCI4ZWExXCIsIFwiXFx1N0U2N1xcdTQ1MURcXHV7MjZFNDR9XFx1N0Q1RFxcdXsyNkVENn1cXHU3NDhEXFx1N0Q4OVxcdTdEQUJcXHU3MTM1XFx1N0RCM1xcdTdERDJcXHV7MjQwNTd9XFx1ezI2MDI5fVxcdTdERTRcXHUzRDEzXFx1N0RGNVxcdXsyMTdGOX1cXHU3REU1XFx1ezI4MzZEfVxcdTdFMURcXHV7MjYxMjF9XFx1ezI2MTVBfVxcdTdFNkVcXHU3RTkyXFx1NDMyQlxcdTk0NkNcXHU3RTI3XFx1N0Y0MFxcdTdGNDFcXHU3RjQ3XFx1NzkzNlxcdXsyNjJEMH1cXHU5OUUxXFx1N0Y5N1xcdXsyNjM1MX1cXHU3RkEzXFx1ezIxNjYxfVxcdXsyMDA2OH1cXHU0NTVDXFx1ezIzNzY2fVxcdTQ1MDNcXHV7MjgzM0F9XFx1N0ZGQVxcdXsyNjQ4OX1cXHU4MDA1XFx1ODAwOFxcdTgwMURcXHU4MDI4XFx1ODAyRlxcdXsyQTA4N31cXHV7MjZDQzN9XFx1ODAzQlxcdTgwM0NcXHU4MDYxXFx1ezIyNzE0fVxcdTQ5ODlcXHV7MjY2MjZ9XFx1ezIzREUzfVxcdXsyNjZFOH1cXHU2NzI1XFx1ODBBN1xcdXsyOEE0OH1cXHU4MTA3XFx1ODExQVxcdTU4QjBcXHV7MjI2RjZ9XFx1NkM3RlxcdXsyNjQ5OH1cXHV7MjRGQjh9XFx1NjRFN1xcdXsyMTQ4QX1cXHU4MjE4XFx1ezIxODVFfVxcdTZBNTNcXHV7MjRBNjV9XFx1ezI0QTk1fVxcdTQ0N0FcXHU4MjI5XFx1ezIwQjBEfVxcdXsyNkE1Mn1cXHV7MjNEN0V9XFx1NEZGOVxcdXsyMTRGRH1cXHU4NEUyXFx1ODM2MlxcdXsyNkIwQX1cXHV7MjQ5QTd9XFx1ezIzNTMwfVxcdXsyMTc3M31cXHV7MjNERjh9XFx1ODJBQVxcdTY5MUJcXHV7MkY5OTR9XFx1NDFEQlwiXSxcbiAgICAgIFtcIjhmNDBcIiwgXCJcXHU4NTRCXFx1ODJEMFxcdTgzMUFcXHV7MjBFMTZ9XFx1ezIxN0I0fVxcdTM2QzFcXHV7MjMxN0R9XFx1ezIzNTVBfVxcdTgyN0JcXHU4MkUyXFx1ODMxOFxcdXsyM0U4Qn1cXHV7MjZEQTN9XFx1ezI2QjA1fVxcdXsyNkI5N31cXHV7MjM1Q0V9XFx1M0RCRlxcdTgzMURcXHU1NUVDXFx1ODM4NVxcdTQ1MEJcXHV7MjZEQTV9XFx1ODNBQ1xcdTgzQzFcXHU4M0QzXFx1MzQ3RVxcdXsyNkVENH1cXHU2QTU3XFx1ODU1QVxcdTM0OTZcXHV7MjZFNDJ9XFx1ezIyRUVGfVxcdTg0NThcXHV7MjVCRTR9XFx1ODQ3MVxcdTNERDNcXHU0NEU0XFx1NkFBN1xcdTg0NEFcXHV7MjNDQjV9XFx1Nzk1OFxcdTg0QThcXHV7MjZCOTZ9XFx1ezI2RTc3fVxcdXsyNkU0M31cXHU4NERFXFx1ODQwRlxcdTgzOTFcXHU0NEEwXFx1ODQ5M1xcdTg0RTRcXHV7MjVDOTF9XFx1NDI0MFxcdXsyNUNDMH1cXHU0NTQzXFx1ODUzNFxcdTVBRjJcXHV7MjZFOTl9XFx1NDUyN1xcdTg1NzNcXHU0NTE2XFx1NjdCRlxcdTg2MTZcIl0sXG4gICAgICBbXCI4ZmExXCIsIFwiXFx1ezI4NjI1fVxcdXsyODYzQn1cXHU4NUMxXFx1ezI3MDg4fVxcdTg2MDJcXHV7MjE1ODJ9XFx1ezI3MENEfVxcdXsyRjlCMn1cXHU0NTZBXFx1ODYyOFxcdTM2NDhcXHV7MjE4QTJ9XFx1NTNGN1xcdXsyNzM5QX1cXHU4NjdFXFx1ODc3MVxcdXsyQTBGOH1cXHU4N0VFXFx1ezIyQzI3fVxcdTg3QjFcXHU4N0RBXFx1ODgwRlxcdTU2NjFcXHU4NjZDXFx1Njg1NlxcdTQ2MEZcXHU4ODQ1XFx1ODg0NlxcdXsyNzVFMH1cXHV7MjNEQjl9XFx1ezI3NUU0fVxcdTg4NUVcXHU4ODlDXFx1NDY1QlxcdTg4QjRcXHU4OEI1XFx1NjNDMVxcdTg4QzVcXHU3Nzc3XFx1ezI3NzBGfVxcdTg5ODdcXHU4OThBXFx1ODlBNlxcdTg5QTlcXHU4OUE3XFx1ODlCQ1xcdXsyOEEyNX1cXHU4OUU3XFx1ezI3OTI0fVxcdXsyN0FCRH1cXHU4QTlDXFx1Nzc5M1xcdTkxRkVcXHU4QTkwXFx1ezI3QTU5fVxcdTdBRTlcXHV7MjdCM0F9XFx1ezIzRjhGfVxcdTQ3MTNcXHV7MjdCMzh9XFx1NzE3Q1xcdThCMENcXHU4QjFGXFx1ezI1NDMwfVxcdXsyNTU2NX1cXHU4QjNGXFx1OEI0Q1xcdThCNERcXHU4QUE5XFx1ezI0QTdBfVxcdThCOTBcXHU4QjlCXFx1OEFBRlxcdXsyMTZERn1cXHU0NjE1XFx1ODg0RlxcdThDOUJcXHV7MjdENTR9XFx1ezI3RDhGfVxcdXsyRjlENH1cXHUzNzI1XFx1ezI3RDUzfVxcdThDRDZcXHV7MjdEOTh9XFx1ezI3REJEfVxcdThEMTJcXHU4RDAzXFx1ezIxOTEwfVxcdThDREJcXHU3MDVDXFx1OEQxMVxcdXsyNENDOX1cXHUzRUQwXFx1OEQ3N1wiXSxcbiAgICAgIFtcIjkwNDBcIiwgXCJcXHU4REE5XFx1ezI4MDAyfVxcdXsyMTAxNH1cXHV7MjQ5OEF9XFx1M0I3Q1xcdXsyODFCQ31cXHV7MjcxMEN9XFx1N0FFN1xcdThFQURcXHU4RUI2XFx1OEVDM1xcdTkyRDRcXHU4RjE5XFx1OEYyRFxcdXsyODM2NX1cXHV7Mjg0MTJ9XFx1OEZBNVxcdTkzMDNcXHV7MkEyOUZ9XFx1ezIwQTUwfVxcdThGQjNcXHU0OTJBXFx1ezI4OURFfVxcdXsyODUzRH1cXHV7MjNEQkJ9XFx1NUVGOFxcdXsyMzI2Mn1cXHU4RkY5XFx1ezJBMDE0fVxcdXsyODZCQ31cXHV7Mjg1MDF9XFx1ezIyMzI1fVxcdTM5ODBcXHV7MjZFRDd9XFx1OTAzN1xcdXsyODUzQ31cXHV7MjdBQkV9XFx1OTA2MVxcdXsyODU2Q31cXHV7Mjg2MEJ9XFx1OTBBOFxcdXsyODcxM31cXHU5MEM0XFx1ezI4NkU2fVxcdTkwQUVcXHU5MEZEXFx1OTE2N1xcdTNBRjBcXHU5MUE5XFx1OTFDNFxcdTdDQUNcXHV7Mjg5MzN9XFx1ezIxRTg5fVxcdTkyMEVcXHU2QzlGXFx1OTI0MVxcdTkyNjJcXHV7MjU1Qjl9XFx1OTJCOVxcdXsyOEFDNn1cXHV7MjNDOUJ9XFx1ezI4QjBDfVxcdXsyNTVEQn1cIl0sXG4gICAgICBbXCI5MGExXCIsIFwiXFx1ezIwRDMxfVxcdTkzMkNcXHU5MzZCXFx1ezI4QUUxfVxcdXsyOEJFQn1cXHU3MDhGXFx1NUFDM1xcdXsyOEFFMn1cXHV7MjhBRTV9XFx1NDk2NVxcdTkyNDRcXHV7MjhCRUN9XFx1ezI4QzM5fVxcdXsyOEJGRn1cXHU5MzczXFx1OTQ1QlxcdThFQkNcXHU5NTg1XFx1OTVBNlxcdTk0MjZcXHU5NUEwXFx1NkZGNlxcdTQyQjlcXHV7MjI2N0F9XFx1ezI4NkQ4fVxcdXsyMTI3Q31cXHV7MjNFMkV9XFx1NDlERlxcdTZDMUNcXHU5NjdCXFx1OTY5NlxcdTQxNkNcXHU5NkEzXFx1ezI2RUQ1fVxcdTYxREFcXHU5NkI2XFx1NzhGNVxcdXsyOEFFMH1cXHU5NkJEXFx1NTNDQ1xcdTQ5QTFcXHV7MjZDQjh9XFx1ezIwMjc0fVxcdXsyNjQxMH1cXHV7MjkwQUZ9XFx1ezI5MEU1fVxcdXsyNEFEMX1cXHV7MjE5MTV9XFx1ezIzMzBBfVxcdTk3MzFcXHU4NjQyXFx1OTczNlxcdTRBMEZcXHU0NTNEXFx1NDU4NVxcdXsyNEFFOX1cXHU3MDc1XFx1NUI0MVxcdTk3MUJcXHU5NzVDXFx1ezI5MUQ1fVxcdTk3NTdcXHU1QjRBXFx1ezI5MUVCfVxcdTk3NUZcXHU5NDI1XFx1NTBEMFxcdXsyMzBCN31cXHV7MjMwQkN9XFx1OTc4OVxcdTk3OUZcXHU5N0IxXFx1OTdCRVxcdTk3QzBcXHU5N0QyXFx1OTdFMFxcdXsyNTQ2Q31cXHU5N0VFXFx1NzQxQ1xcdXsyOTQzM31cXHU5N0ZGXFx1OTdGNVxcdXsyOTQxRH1cXHV7Mjc5N0F9XFx1NEFEMVxcdTk4MzRcXHU5ODMzXFx1OTg0QlxcdTk4NjZcXHUzQjBFXFx1ezI3MTc1fVxcdTNENTFcXHV7MjA2MzB9XFx1ezI0MTVDfVwiXSxcbiAgICAgIFtcIjkxNDBcIiwgXCJcXHV7MjU3MDZ9XFx1OThDQVxcdTk4QjdcXHU5OEM4XFx1OThDN1xcdTRBRkZcXHV7MjZEMjd9XFx1ezIxNkQzfVxcdTU1QjBcXHU5OEUxXFx1OThFNlxcdTk4RUNcXHU5Mzc4XFx1OTkzOVxcdXsyNEEyOX1cXHU0QjcyXFx1ezI5ODU3fVxcdXsyOTkwNX1cXHU5OUY1XFx1OUEwQ1xcdTlBM0JcXHU5QTEwXFx1OUE1OFxcdXsyNTcyNX1cXHUzNkM0XFx1ezI5MEIxfVxcdXsyOUJENX1cXHU5QUUwXFx1OUFFMlxcdXsyOUIwNX1cXHU5QUY0XFx1NEMwRVxcdTlCMTRcXHU5QjJEXFx1ezI4NjAwfVxcdTUwMzRcXHU5QjM0XFx1ezI2OUE4fVxcdTM4QzNcXHV7MjMwN0R9XFx1OUI1MFxcdTlCNDBcXHV7MjlEM0V9XFx1NUE0NVxcdXsyMTg2M31cXHU5QjhFXFx1ezI0MjRCfVxcdTlDMDJcXHU5QkZGXFx1OUMwQ1xcdXsyOUU2OH1cXHU5REQ0XFx1ezI5RkI3fVxcdXsyQTE5Mn1cXHV7MkExQUJ9XFx1ezJBMEUxfVxcdXsyQTEyM31cXHV7MkExREZ9XFx1OUQ3RVxcdTlEODNcXHV7MkExMzR9XFx1OUUwRVxcdTY4ODhcIl0sXG4gICAgICBbXCI5MWExXCIsIFwiXFx1OURDNFxcdXsyMjE1Qn1cXHV7MkExOTN9XFx1ezJBMjIwfVxcdXsyMTkzQn1cXHV7MkEyMzN9XFx1OUQzOVxcdXsyQTBCOX1cXHV7MkEyQjR9XFx1OUU5MFxcdTlFOTVcXHU5RTlFXFx1OUVBMlxcdTREMzRcXHU5RUFBXFx1OUVBRlxcdXsyNDM2NH1cXHU5RUMxXFx1M0I2MFxcdTM5RTVcXHUzRDFEXFx1NEYzMlxcdTM3QkVcXHV7MjhDMkJ9XFx1OUYwMlxcdTlGMDhcXHU0Qjk2XFx1OTQyNFxcdXsyNkRBMn1cXHU5RjE3XFx1OUYxNlxcdTlGMzlcXHU1NjlGXFx1NTY4QVxcdTlGNDVcXHU5OUI4XFx1ezI5MDhCfVxcdTk3RjJcXHU4NDdGXFx1OUY2MlxcdTlGNjlcXHU3QURDXFx1OUY4RVxcdTcyMTZcXHU0QkJFXFx1ezI0OTc1fVxcdXsyNDlCQn1cXHU3MTc3XFx1ezI0OUY4fVxcdXsyNDM0OH1cXHV7MjRBNTF9XFx1NzM5RVxcdXsyOEJEQX1cXHV7MjE4RkF9XFx1Nzk5RlxcdXsyODk3RX1cXHV7MjhFMzZ9XFx1OTM2OVxcdTkzRjNcXHV7MjhBNDR9XFx1OTJFQ1xcdTkzODFcXHU5M0NCXFx1ezI4OTZDfVxcdXsyNDRCOX1cXHU3MjE3XFx1M0VFQlxcdTc3NzJcXHU3QTQzXFx1NzBEMFxcdXsyNDQ3M31cXHV7MjQzRjh9XFx1NzE3RVxcdXsyMTdFRn1cXHU3MEEzXFx1ezIxOEJFfVxcdXsyMzU5OX1cXHUzRUM3XFx1ezIxODg1fVxcdXsyNTQyRn1cXHV7MjE3Rjh9XFx1MzcyMlxcdXsyMTZGQn1cXHV7MjE4Mzl9XFx1MzZFMVxcdXsyMTc3NH1cXHV7MjE4RDF9XFx1ezI1RjRCfVxcdTM3MjNcXHV7MjE2QzB9XFx1NTc1QlxcdXsyNEEyNX1cXHV7MjEzRkV9XFx1ezIxMkE4fVwiXSxcbiAgICAgIFtcIjkyNDBcIiwgXCJcXHV7MjEzQzZ9XFx1ezIxNEI2fVxcdTg1MDNcXHV7MjM2QTZ9XFx1ODUwM1xcdTg0NTVcXHV7MjQ5OTR9XFx1ezI3MTY1fVxcdXsyM0UzMX1cXHV7MjU1NUN9XFx1ezIzRUZCfVxcdXsyNzA1Mn1cXHU0NEY0XFx1ezIzNkVFfVxcdXsyOTk5RH1cXHV7MjZGMjZ9XFx1NjdGOVxcdTM3MzNcXHUzQzE1XFx1M0RFN1xcdTU4NkNcXHV7MjE5MjJ9XFx1NjgxMFxcdTQwNTdcXHV7MjM3M0Z9XFx1ezI0MEUxfVxcdXsyNDA4Qn1cXHV7MjQxMEZ9XFx1ezI2QzIxfVxcdTU0Q0JcXHU1NjlFXFx1ezI2NkIxfVxcdTU2OTJcXHV7MjBGREZ9XFx1ezIwQkE4fVxcdXsyMEUwRH1cXHU5M0M2XFx1ezI4QjEzfVxcdTkzOUNcXHU0RUY4XFx1NTEyQlxcdTM4MTlcXHV7MjQ0MzZ9XFx1NEVCQ1xcdXsyMDQ2NX1cXHV7MjAzN0Z9XFx1NEY0QlxcdTRGOEFcXHV7MjU2NTF9XFx1NUE2OFxcdXsyMDFBQn1cXHV7MjAzQ0J9XFx1Mzk5OVxcdXsyMDMwQX1cXHV7MjA0MTR9XFx1MzQzNVxcdTRGMjlcXHV7MjAyQzB9XFx1ezI4RUIzfVxcdXsyMDI3NX1cXHU4QURBXFx1ezIwMjBDfVxcdTRFOThcIl0sXG4gICAgICBbXCI5MmExXCIsIFwiXFx1NTBDRFxcdTUxMERcXHU0RkEyXFx1NEYwM1xcdXsyNEEwRX1cXHV7MjNFOEF9XFx1NEY0MlxcdTUwMkVcXHU1MDZDXFx1NTA4MVxcdTRGQ0NcXHU0RkU1XFx1NTA1OFxcdTUwRkNcXHU1MTU5XFx1NTE1QlxcdTUxNURcXHU1MTVFXFx1NkU3NlxcdXsyMzU5NX1cXHV7MjNFMzl9XFx1ezIzRUJGfVxcdTZENzJcXHV7MjE4ODR9XFx1ezIzRTg5fVxcdTUxQThcXHU1MUMzXFx1ezIwNUUwfVxcdTQ0RERcXHV7MjA0QTN9XFx1ezIwNDkyfVxcdXsyMDQ5MX1cXHU4RDdBXFx1ezI4QTlDfVxcdXsyMDcwRX1cXHU1MjU5XFx1NTJBNFxcdXsyMDg3M31cXHU1MkUxXFx1OTM2RVxcdTQ2N0FcXHU3MThDXFx1ezI0MzhDfVxcdXsyMEMyMH1cXHV7MjQ5QUN9XFx1ezIxMEU0fVxcdTY5RDFcXHV7MjBFMUR9XFx1NzQ3OVxcdTNFREVcXHU3NDk5XFx1NzQxNFxcdTc0NTZcXHU3Mzk4XFx1NEI4RVxcdXsyNEFCQ31cXHV7MjQwOER9XFx1NTNEMFxcdTM1ODRcXHU3MjBGXFx1ezI0MEM5fVxcdTU1QjRcXHV7MjAzNDV9XFx1NTRDRFxcdXsyMEJDNn1cXHU1NzFEXFx1OTI1RFxcdTk2RjRcXHU5MzY2XFx1NTdERFxcdTU3OERcXHU1NzdGXFx1MzYzRVxcdTU4Q0JcXHU1QTk5XFx1ezI4QTQ2fVxcdXsyMTZGQX1cXHV7MjE3NkZ9XFx1ezIxNzEwfVxcdTVBMkNcXHU1OUI4XFx1OTI4RlxcdTVBN0VcXHU1QUNGXFx1NUExMlxcdXsyNTk0Nn1cXHV7MjE5RjN9XFx1ezIxODYxfVxcdXsyNDI5NX1cXHUzNkY1XFx1NkQwNVxcdTc0NDNcXHU1QTIxXFx1ezI1RTgzfVwiXSxcbiAgICAgIFtcIjkzNDBcIiwgXCJcXHU1QTgxXFx1ezI4QkQ3fVxcdXsyMDQxM31cXHU5M0UwXFx1NzQ4Q1xcdXsyMTMwM31cXHU3MTA1XFx1NDk3MlxcdTk0MDhcXHV7Mjg5RkJ9XFx1OTNCRFxcdTM3QTBcXHU1QzFFXFx1NUM5RVxcdTVFNUVcXHU1RTQ4XFx1ezIxOTk2fVxcdXsyMTk3Q31cXHV7MjNBRUV9XFx1NUVDRFxcdTVCNEZcXHV7MjE5MDN9XFx1ezIxOTA0fVxcdTM3MDFcXHV7MjE4QTB9XFx1MzZERFxcdXsyMTZGRX1cXHUzNkQzXFx1ODEyQVxcdXsyOEE0N31cXHV7MjFEQkF9XFx1ezIzNDcyfVxcdXsyODlBOH1cXHU1RjBDXFx1NUYwRVxcdXsyMTkyN31cXHV7MjE3QUJ9XFx1NUE2QlxcdXsyMTczQn1cXHU1QjQ0XFx1ODYxNFxcdXsyNzVGRH1cXHU4ODYwXFx1NjA3RVxcdXsyMjg2MH1cXHV7MjI2MkJ9XFx1NUZEQlxcdTNFQjhcXHV7MjI1QUZ9XFx1ezIyNUJFfVxcdXsyOTA4OH1cXHV7MjZGNzN9XFx1NjFDMFxcdXsyMDAzRX1cXHV7MjAwNDZ9XFx1ezIyNjFCfVxcdTYxOTlcXHU2MTk4XFx1NjA3NVxcdXsyMkM5Qn1cXHV7MjJEMDd9XFx1ezI0NkQ0fVxcdXsyOTE0RH1cIl0sXG4gICAgICBbXCI5M2ExXCIsIFwiXFx1NjQ3MVxcdXsyNDY2NX1cXHV7MjJCNkF9XFx1M0EyOVxcdXsyMkIyMn1cXHV7MjM0NTB9XFx1ezI5OEVBfVxcdXsyMkU3OH1cXHU2MzM3XFx1ezJBNDVCfVxcdTY0QjZcXHU2MzMxXFx1NjNEMVxcdXsyNDlFM31cXHV7MjJENjd9XFx1NjJBNFxcdXsyMkNBMX1cXHU2NDNCXFx1NjU2QlxcdTY5NzJcXHUzQkY0XFx1ezIzMDhFfVxcdXsyMzJBRH1cXHV7MjQ5ODl9XFx1ezIzMkFCfVxcdTU1MERcXHV7MjMyRTB9XFx1ezIxOEQ5fVxcdXsyOTQzRn1cXHU2NkNFXFx1ezIzMjg5fVxcdXsyMzFCM31cXHUzQUUwXFx1NDE5MFxcdXsyNTU4NH1cXHV7MjhCMjJ9XFx1ezI1NThGfVxcdXsyMTZGQ31cXHV7MjU1NUJ9XFx1ezI1NDI1fVxcdTc4RUVcXHV7MjMxMDN9XFx1ezIxODJBfVxcdXsyMzIzNH1cXHUzNDY0XFx1ezIzMjBGfVxcdXsyMzE4Mn1cXHV7MjQyQzl9XFx1NjY4RVxcdXsyNkQyNH1cXHU2NjZCXFx1NEI5M1xcdTY2MzBcXHV7Mjc4NzB9XFx1ezIxREVCfVxcdTY2NjNcXHV7MjMyRDJ9XFx1ezIzMkUxfVxcdTY2MUVcXHV7MjU4NzJ9XFx1MzhEMVxcdXsyMzgzQX1cXHV7MjM3QkN9XFx1M0I5OVxcdXsyMzdBMn1cXHV7MjMzRkV9XFx1NzREMFxcdTNCOTZcXHU2NzhGXFx1ezI0NjJBfVxcdTY4QjZcXHU2ODFFXFx1M0JDNFxcdTZBQkVcXHUzODYzXFx1ezIzN0Q1fVxcdXsyNDQ4N31cXHU2QTMzXFx1NkE1MlxcdTZBQzlcXHU2QjA1XFx1ezIxOTEyfVxcdTY1MTFcXHU2ODk4XFx1NkE0Q1xcdTNCRDdcXHU2QTdBXFx1NkI1N1xcdXsyM0ZDMH1cXHV7MjNDOUF9XFx1OTNBMFxcdTkyRjJcXHV7MjhCRUF9XFx1ezI4QUNCfVwiXSxcbiAgICAgIFtcIjk0NDBcIiwgXCJcXHU5Mjg5XFx1ezI4MDFFfVxcdXsyODlEQ31cXHU5NDY3XFx1NkRBNVxcdTZGMEJcXHV7MjQ5RUN9XFx1NkQ2N1xcdXsyM0Y3Rn1cXHUzRDhGXFx1NkUwNFxcdXsyNDAzQ31cXHU1QTNEXFx1NkUwQVxcdTU4NDdcXHU2RDI0XFx1Nzg0MlxcdTcxM0JcXHV7MjQzMUF9XFx1ezI0Mjc2fVxcdTcwRjFcXHU3MjUwXFx1NzI4N1xcdTcyOTRcXHV7MjQ3OEZ9XFx1ezI0NzI1fVxcdTUxNzlcXHV7MjRBQTR9XFx1ezIwNUVCfVxcdTc0N0FcXHV7MjNFRjh9XFx1ezIzNjVGfVxcdXsyNEE0QX1cXHV7MjQ5MTd9XFx1ezI1RkUxfVxcdTNGMDZcXHUzRUIxXFx1ezI0QURGfVxcdXsyOEMyM31cXHV7MjNGMzV9XFx1NjBBN1xcdTNFRjNcXHU3NENDXFx1NzQzQ1xcdTkzODdcXHU3NDM3XFx1NDQ5RlxcdXsyNkRFQX1cXHU0NTUxXFx1NzU4M1xcdTNGNjNcXHV7MjRDRDl9XFx1ezI0RDA2fVxcdTNGNThcXHU3NTU1XFx1NzY3M1xcdXsyQTVDNn1cXHUzQjE5XFx1NzQ2OFxcdXsyOEFDQ31cXHV7MjQ5QUJ9XFx1ezI0OThFfVxcdTNBRkJcIl0sXG4gICAgICBbXCI5NGExXCIsIFwiXFx1M0RDRFxcdXsyNEE0RX1cXHUzRUZGXFx1ezI0OUM1fVxcdXsyNDhGM31cXHU5MUZBXFx1NTczMlxcdTkzNDJcXHV7MjhBRTN9XFx1ezIxODY0fVxcdTUwREZcXHV7MjUyMjF9XFx1ezI1MUU3fVxcdTc3NzhcXHV7MjMyMzJ9XFx1NzcwRVxcdTc3MEZcXHU3NzdCXFx1ezI0Njk3fVxcdXsyMzc4MX1cXHUzQTVFXFx1ezI0OEYwfVxcdTc0MzhcXHU3NDlCXFx1M0VCRlxcdXsyNEFCQX1cXHV7MjRBQzd9XFx1NDBDOFxcdXsyNEE5Nn1cXHV7MjYxQUV9XFx1OTMwN1xcdXsyNTU4MX1cXHU3ODFFXFx1Nzg4RFxcdTc4ODhcXHU3OEQyXFx1NzNEMFxcdTc5NTlcXHV7Mjc3NDF9XFx1ezI1NkUzfVxcdTQxMEVcXHU3OTlCXFx1ODQ5NlxcdTc5QTVcXHU2QTJEXFx1ezIzRUZBfVxcdTdBM0FcXHU3OUY0XFx1NDE2RVxcdXsyMTZFNn1cXHU0MTMyXFx1OTIzNVxcdTc5RjFcXHV7MjBENEN9XFx1ezI0OThDfVxcdXsyMDI5OX1cXHV7MjNEQkF9XFx1ezIxNzZFfVxcdTM1OTdcXHU1NTZCXFx1MzU3MFxcdTM2QUFcXHV7MjAxRDR9XFx1ezIwQzBEfVxcdTdBRTJcXHU1QTU5XFx1ezIyNkY1fVxcdXsyNUFBRn1cXHV7MjVBOUN9XFx1NUEwRFxcdXsyMDI1Qn1cXHU3OEYwXFx1NUEyQVxcdXsyNUJDNn1cXHU3QUZFXFx1NDFGOVxcdTdDNURcXHU3QzZEXFx1NDIxMVxcdXsyNUJCM31cXHV7MjVFQkN9XFx1ezI1RUE2fVxcdTdDQ0RcXHV7MjQ5Rjl9XFx1ezIxN0IwfVxcdTdDOEVcXHU3QzdDXFx1N0NBRVxcdTZBQjJcXHU3RERDXFx1N0UwN1xcdTdERDNcXHU3RjRFXFx1ezI2MjYxfVwiXSxcbiAgICAgIFtcIjk1NDBcIiwgXCJcXHV7MjYxNUN9XFx1ezI3QjQ4fVxcdTdEOTdcXHV7MjVFODJ9XFx1NDI2QVxcdXsyNkI3NX1cXHV7MjA5MTZ9XFx1NjdENlxcdXsyMDA0RX1cXHV7MjM1Q0Z9XFx1NTdDNFxcdXsyNjQxMn1cXHV7MjYzRjh9XFx1ezI0OTYyfVxcdTdGRERcXHU3QjI3XFx1ezIwODJDfVxcdXsyNUFFOX1cXHV7MjVENDN9XFx1N0IwQ1xcdXsyNUUwRX1cXHU5OUU2XFx1ODY0NVxcdTlBNjNcXHU2QTFDXFx1ezIzNDNGfVxcdTM5RTJcXHV7MjQ5Rjd9XFx1ezI2NUFEfVxcdTlBMUZcXHV7MjY1QTB9XFx1ODQ4MFxcdXsyNzEyN31cXHV7MjZDRDF9XFx1NDRFQVxcdTgxMzdcXHU0NDAyXFx1ODBDNlxcdTgxMDlcXHU4MTQyXFx1ezI2N0I0fVxcdTk4QzNcXHV7MjZBNDJ9XFx1ODI2MlxcdTgyNjVcXHV7MjZBNTF9XFx1ODQ1M1xcdXsyNkRBN31cXHU4NjEwXFx1ezI3MjFCfVxcdTVBODZcXHU0MTdGXFx1ezIxODQwfVxcdTVCMkJcXHV7MjE4QTF9XFx1NUFFNFxcdXsyMThEOH1cXHU4NkEwXFx1ezJGOUJDfVxcdXsyM0Q4Rn1cXHU4ODJEXFx1ezI3NDIyfVxcdTVBMDJcIl0sXG4gICAgICBbXCI5NWExXCIsIFwiXFx1ODg2RVxcdTRGNDVcXHU4ODg3XFx1ODhCRlxcdTg4RTZcXHU4OTY1XFx1ODk0RFxcdXsyNTY4M31cXHU4OTU0XFx1ezI3Nzg1fVxcdXsyNzc4NH1cXHV7MjhCRjV9XFx1ezI4QkQ5fVxcdXsyOEI5Q31cXHV7Mjg5Rjl9XFx1M0VBRFxcdTg0QTNcXHU0NkY1XFx1NDZDRlxcdTM3RjJcXHU4QTNEXFx1OEExQ1xcdXsyOTQ0OH1cXHU1RjREXFx1OTIyQlxcdXsyNDI4NH1cXHU2NUQ0XFx1NzEyOVxcdTcwQzRcXHV7MjE4NDV9XFx1OUQ2RFxcdThDOUZcXHU4Q0U5XFx1ezI3RERDfVxcdTU5OUFcXHU3N0MzXFx1NTlGMFxcdTQzNkVcXHUzNkQ0XFx1OEUyQVxcdThFQTdcXHV7MjRDMDl9XFx1OEYzMFxcdThGNEFcXHU0MkY0XFx1NkM1OFxcdTZGQkJcXHV7MjIzMjF9XFx1NDg5QlxcdTZGNzlcXHU2RThCXFx1ezIxN0RBfVxcdTlCRTlcXHUzNkI1XFx1ezI0OTJGfVxcdTkwQkJcXHU5MDk3XFx1NTU3MVxcdTQ5MDZcXHU5MUJCXFx1OTQwNFxcdXsyOEE0Qn1cXHU0MDYyXFx1ezI4QUZDfVxcdTk0MjdcXHV7MjhDMUR9XFx1ezI4QzNCfVxcdTg0RTVcXHU4QTJCXFx1OTU5OVxcdTk1QTdcXHU5NTk3XFx1OTU5NlxcdXsyOEQzNH1cXHU3NDQ1XFx1M0VDMlxcdXsyNDhGRn1cXHV7MjRBNDJ9XFx1ezI0M0VBfVxcdTNFRTdcXHV7MjMyMjV9XFx1OTY4RlxcdXsyOEVFN31cXHV7MjhFNjZ9XFx1ezI4RTY1fVxcdTNFQ0NcXHV7MjQ5RUR9XFx1ezI0QTc4fVxcdXsyM0ZFRX1cXHU3NDEyXFx1NzQ2QlxcdTNFRkNcXHU5NzQxXFx1ezI5MEIwfVwiXSxcbiAgICAgIFtcIjk2NDBcIiwgXCJcXHU2ODQ3XFx1NEExRFxcdXsyOTA5M31cXHV7MjU3REZ9XFx1OTc1RFxcdTkzNjhcXHV7Mjg5ODl9XFx1ezI4QzI2fVxcdXsyOEIyRn1cXHV7MjYzQkV9XFx1OTJCQVxcdTVCMTFcXHU4QjY5XFx1NDkzQ1xcdTczRjlcXHV7MjQyMUJ9XFx1OTc5QlxcdTk3NzFcXHU5OTM4XFx1ezIwRjI2fVxcdTVEQzFcXHV7MjhCQzV9XFx1ezI0QUIyfVxcdTk4MUZcXHV7Mjk0REF9XFx1OTJGNlxcdXsyOTVEN31cXHU5MUU1XFx1NDRDMFxcdXsyOEI1MH1cXHV7MjRBNjd9XFx1ezI4QjY0fVxcdTk4RENcXHV7MjhBNDV9XFx1M0YwMFxcdTkyMkFcXHU0OTI1XFx1ODQxNFxcdTk5M0JcXHU5OTREXFx1ezI3QjA2fVxcdTNERkRcXHU5OTlCXFx1NEI2RlxcdTk5QUFcXHU5QTVDXFx1ezI4QjY1fVxcdXsyNThDOH1cXHU2QThGXFx1OUEyMVxcdTVBRkVcXHU5QTJGXFx1ezI5OEYxfVxcdTRCOTBcXHV7Mjk5NDh9XFx1OTlCQ1xcdTRCQkRcXHU0Qjk3XFx1OTM3RFxcdTU4NzJcXHV7MjEzMDJ9XFx1NTgyMlxcdXsyNDlCOH1cIl0sXG4gICAgICBbXCI5NmExXCIsIFwiXFx1ezIxNEU4fVxcdTc4NDRcXHV7MjI3MUZ9XFx1ezIzREI4fVxcdTY4QzVcXHUzRDdEXFx1OTQ1OFxcdTM5MjdcXHU2MTUwXFx1ezIyNzgxfVxcdXsyMjk2Qn1cXHU2MTA3XFx1OUM0RlxcdTlDNTNcXHU5QzdCXFx1OUMzNVxcdTlDMTBcXHU5QjdGXFx1OUJDRlxcdXsyOUUyRH1cXHU5QjlGXFx1ezJBMUY1fVxcdXsyQTBGRX1cXHU5RDIxXFx1NENBRVxcdXsyNDEwNH1cXHU5RTE4XFx1NENCMFxcdTlEMENcXHV7MkExQjR9XFx1ezJBMEVEfVxcdXsyQTBGM31cXHV7Mjk5MkZ9XFx1OURBNVxcdTg0QkRcXHV7MjZFMTJ9XFx1ezI2RkRGfVxcdXsyNkI4Mn1cXHU4NUZDXFx1NDUzM1xcdXsyNkRBNH1cXHV7MjZFODR9XFx1ezI2REYwfVxcdTg0MjBcXHU4NUVFXFx1ezI2RTAwfVxcdXsyMzdEN31cXHV7MjYwNjR9XFx1NzlFMlxcdXsyMzU5Q31cXHV7MjM2NDB9XFx1NDkyRFxcdXsyNDlERX1cXHUzRDYyXFx1OTNEQlxcdTkyQkVcXHU5MzQ4XFx1ezIwMkJGfVxcdTc4QjlcXHU5Mjc3XFx1OTQ0RFxcdTRGRTRcXHUzNDQwXFx1OTA2NFxcdXsyNTU1RH1cXHU3ODNEXFx1Nzg1NFxcdTc4QjZcXHU3ODRCXFx1ezIxNzU3fVxcdXsyMzFDOX1cXHV7MjQ5NDF9XFx1MzY5QVxcdTRGNzJcXHU2RkRBXFx1NkZEOVxcdTcwMUVcXHU3MDFFXFx1NTQxNFxcdXsyNDFCNX1cXHU1N0JCXFx1NThGM1xcdTU3OEFcXHU5RDE2XFx1NTdEN1xcdTcxMzRcXHUzNEFGXFx1ezI0MUFDfVxcdTcxRUJcXHV7MjZDNDB9XFx1ezI0Rjk3fVxcdTVCMjhcXHV7MjE3QjV9XFx1ezI4QTQ5fVwiXSxcbiAgICAgIFtcIjk3NDBcIiwgXCJcXHU2MTBDXFx1NUFDRVxcdTVBMEJcXHU0MkJDXFx1ezI0NDg4fVxcdTM3MkNcXHU0QjdCXFx1ezI4OUZDfVxcdTkzQkJcXHU5M0I4XFx1ezIxOEQ2fVxcdXsyMEYxRH1cXHU4NDcyXFx1ezI2Q0MwfVxcdXsyMTQxM31cXHV7MjQyRkF9XFx1ezIyQzI2fVxcdXsyNDNDMX1cXHU1OTk0XFx1ezIzREI3fVxcdXsyNjc0MX1cXHU3REE4XFx1ezI2MTVCfVxcdXsyNjBBNH1cXHV7MjQ5Qjl9XFx1ezI0OThCfVxcdXsyODlGQX1cXHU5MkU1XFx1NzNFMlxcdTNFRTlcXHU3NEI0XFx1ezI4QjYzfVxcdXsyMTg5Rn1cXHUzRUUxXFx1ezI0QUIzfVxcdTZBRDhcXHU3M0YzXFx1NzNGQlxcdTNFRDZcXHV7MjRBM0V9XFx1ezI0QTk0fVxcdXsyMTdEOX1cXHV7MjRBNjZ9XFx1ezIwM0E3fVxcdXsyMTQyNH1cXHV7MjQ5RTV9XFx1NzQ0OFxcdXsyNDkxNn1cXHU3MEE1XFx1ezI0OTc2fVxcdTkyODRcXHU3M0U2XFx1OTM1RlxcdXsyMDRGRX1cXHU5MzMxXFx1ezI4QUNFfVxcdXsyOEExNn1cXHU5Mzg2XFx1ezI4QkU3fVxcdXsyNTVENX1cXHU0OTM1XFx1ezI4QTgyfVxcdTcxNkJcIl0sXG4gICAgICBbXCI5N2ExXCIsIFwiXFx1ezI0OTQzfVxcdXsyMENGRn1cXHU1NkE0XFx1ezIwNjFBfVxcdXsyMEJFQn1cXHV7MjBDQjh9XFx1NTUwMlxcdTc5QzRcXHV7MjE3RkF9XFx1N0RGRVxcdXsyMTZDMn1cXHV7MjRBNTB9XFx1ezIxODUyfVxcdTQ1MkVcXHU5NDAxXFx1MzcwQVxcdXsyOEFDMH1cXHV7MjQ5QUR9XFx1NTlCMFxcdXsyMThCRn1cXHV7MjE4ODN9XFx1ezI3NDg0fVxcdTVBQTFcXHUzNkUyXFx1ezIzRDVCfVxcdTM2QjBcXHU5MjVGXFx1NUE3OVxcdXsyOEE4MX1cXHV7MjE4NjJ9XFx1OTM3NFxcdTNDQ0RcXHV7MjBBQjR9XFx1NEE5NlxcdTM5OEFcXHU1MEY0XFx1M0Q2OVxcdTNENENcXHV7MjEzOUN9XFx1NzE3NVxcdTQyRkJcXHV7MjgyMTh9XFx1NkUwRlxcdXsyOTBFNH1cXHU0NEVCXFx1NkQ1N1xcdXsyN0U0Rn1cXHU3MDY3XFx1NkNBRlxcdTNDRDZcXHV7MjNGRUR9XFx1ezIzRTJEfVxcdTZFMDJcXHU2RjBDXFx1M0Q2RlxcdXsyMDNGNX1cXHU3NTUxXFx1MzZCQ1xcdTM0QzhcXHU0NjgwXFx1M0VEQVxcdTQ4NzFcXHU1OUM0XFx1OTI2RVxcdTQ5M0VcXHU4RjQxXFx1ezI4QzFDfVxcdXsyNkJDMH1cXHU1ODEyXFx1NTdDOFxcdTM2RDZcXHV7MjE0NTJ9XFx1NzBGRVxcdXsyNDM2Mn1cXHV7MjRBNzF9XFx1ezIyRkUzfVxcdXsyMTJCMH1cXHV7MjIzQkR9XFx1NjhCOVxcdTY5NjdcXHV7MjEzOTh9XFx1ezIzNEU1fVxcdXsyN0JGNH1cXHV7MjM2REZ9XFx1ezI4QTgzfVxcdXsyMzdENn1cXHV7MjMzRkF9XFx1ezI0QzlGfVxcdTZBMUFcXHV7MjM2QUR9XFx1ezI2Q0I3fVxcdTg0M0VcXHU0NERGXFx1NDRDRVwiXSxcbiAgICAgIFtcIjk4NDBcIiwgXCJcXHV7MjZEMjZ9XFx1ezI2RDUxfVxcdXsyNkM4Mn1cXHV7MjZGREV9XFx1NkYxN1xcdXsyNzEwOX1cXHU4MzNEXFx1ezIxNzNBfVxcdTgzRURcXHV7MjZDODB9XFx1ezI3MDUzfVxcdXsyMTdEQn1cXHU1OTg5XFx1NUE4MlxcdXsyMTdCM31cXHU1QTYxXFx1NUE3MVxcdXsyMTkwNX1cXHV7MjQxRkN9XFx1MzcyRFxcdTU5RUZcXHV7MjE3M0N9XFx1MzZDN1xcdTcxOEVcXHU5MzkwXFx1NjY5QVxcdXsyNDJBNX1cXHU1QTZFXFx1NUEyQlxcdXsyNDI5M31cXHU2QTJCXFx1ezIzRUY5fVxcdXsyNzczNn1cXHV7MjQ0NUJ9XFx1ezI0MkNBfVxcdTcxMURcXHV7MjQyNTl9XFx1ezI4OUUxfVxcdTRGQjBcXHV7MjZEMjh9XFx1NUNDMlxcdXsyNDRDRX1cXHV7MjdFNER9XFx1ezI0M0JEfVxcdTZBMENcXHV7MjQyNTZ9XFx1ezIxMzA0fVxcdTcwQTZcXHU3MTMzXFx1ezI0M0U5fVxcdTNEQTVcXHU2Q0RGXFx1ezJGODI1fVxcdXsyNEE0Rn1cXHU3RTY1XFx1NTlFQlxcdTVEMkZcXHUzREYzXFx1NUY1Q1xcdXsyNEE1RH1cXHV7MjE3REZ9XFx1N0RBNFxcdTg0MjZcIl0sXG4gICAgICBbXCI5OGExXCIsIFwiXFx1NTQ4NVxcdXsyM0FGQX1cXHV7MjMzMDB9XFx1ezIwMjE0fVxcdTU3N0VcXHV7MjA4RDV9XFx1ezIwNjE5fVxcdTNGRTVcXHV7MjFGOUV9XFx1ezJBMkI2fVxcdTcwMDNcXHV7MjkxNUJ9XFx1NUQ3MFxcdTczOEZcXHU3Q0QzXFx1ezI4QTU5fVxcdXsyOTQyMH1cXHU0RkM4XFx1N0ZFN1xcdTcyQ0RcXHU3MzEwXFx1ezI3QUY0fVxcdTczMzhcXHU3MzM5XFx1ezI1NkY2fVxcdTczNDFcXHU3MzQ4XFx1M0VBOVxcdXsyN0IxOH1cXHU5MDZDXFx1NzFGNVxcdXsyNDhGMn1cXHU3M0UxXFx1ODFGNlxcdTNFQ0FcXHU3NzBDXFx1M0VEMVxcdTZDQTJcXHU1NkZEXFx1NzQxOVxcdTc0MUVcXHU3NDFGXFx1M0VFMlxcdTNFRjBcXHUzRUY0XFx1M0VGQVxcdTc0RDNcXHUzRjBFXFx1M0Y1M1xcdTc1NDJcXHU3NTZEXFx1NzU3MlxcdTc1OERcXHUzRjdDXFx1NzVDOFxcdTc1RENcXHUzRkMwXFx1NzY0RFxcdTNGRDdcXHU3Njc0XFx1M0ZEQ1xcdTc2N0FcXHV7MjRGNUN9XFx1NzE4OFxcdTU2MjNcXHU4OTgwXFx1NTg2OVxcdTQwMURcXHU3NzQzXFx1NDAzOVxcdTY3NjFcXHU0MDQ1XFx1MzVEQlxcdTc3OThcXHU0MDZBXFx1NDA2RlxcdTVDNUVcXHU3N0JFXFx1NzdDQlxcdTU4RjJcXHU3ODE4XFx1NzBCOVxcdTc4MUNcXHU0MEE4XFx1NzgzOVxcdTc4NDdcXHU3ODUxXFx1Nzg2NlxcdTg0NDhcXHV7MjU1MzV9XFx1NzkzM1xcdTY4MDNcXHU3OTMyXFx1NDEwM1wiXSxcbiAgICAgIFtcIjk5NDBcIiwgXCJcXHU0MTA5XFx1Nzk5MVxcdTc5OTlcXHU4RkJCXFx1N0EwNlxcdThGQkNcXHU0MTY3XFx1N0E5MVxcdTQxQjJcXHU3QUJDXFx1ODI3OVxcdTQxQzRcXHU3QUNGXFx1N0FEQlxcdTQxQ0ZcXHU0RTIxXFx1N0I2MlxcdTdCNkNcXHU3QjdCXFx1N0MxMlxcdTdDMUJcXHU0MjYwXFx1NDI3QVxcdTdDN0JcXHU3QzlDXFx1NDI4Q1xcdTdDQjhcXHU0Mjk0XFx1N0NFRFxcdThGOTNcXHU3MEMwXFx1ezIwQ0NGfVxcdTdEQ0ZcXHU3REQ0XFx1N0REMFxcdTdERkRcXHU3RkFFXFx1N0ZCNFxcdTcyOUZcXHU0Mzk3XFx1ODAyMFxcdTgwMjVcXHU3QjM5XFx1ODAyRVxcdTgwMzFcXHU4MDU0XFx1M0RDQ1xcdTU3QjRcXHU3MEEwXFx1ODBCN1xcdTgwRTlcXHU0M0VEXFx1ODEwQ1xcdTczMkFcXHU4MTBFXFx1ODExMlxcdTc1NjBcXHU4MTE0XFx1NDQwMVxcdTNCMzlcXHU4MTU2XFx1ODE1OVxcdTgxNUFcIl0sXG4gICAgICBbXCI5OWExXCIsIFwiXFx1NDQxM1xcdTU4M0FcXHU4MTdDXFx1ODE4NFxcdTQ0MjVcXHU4MTkzXFx1NDQyRFxcdTgxQTVcXHU1N0VGXFx1ODFDMVxcdTgxRTRcXHU4MjU0XFx1NDQ4RlxcdTgyQTZcXHU4Mjc2XFx1ODJDQVxcdTgyRDhcXHU4MkZGXFx1NDRCMFxcdTgzNTdcXHU5NjY5XFx1Njk4QVxcdTg0MDVcXHU3MEY1XFx1ODQ2NFxcdTYwRTNcXHU4NDg4XFx1NDUwNFxcdTg0QkVcXHU4NEUxXFx1ODRGOFxcdTg1MTBcXHU4NTM4XFx1ODU1MlxcdTQ1M0JcXHU4NTZGXFx1ODU3MFxcdTg1RTBcXHU0NTc3XFx1ODY3MlxcdTg2OTJcXHU4NkIyXFx1ODZFRlxcdTk2NDVcXHU4NzhCXFx1NDYwNlxcdTQ2MTdcXHU4OEFFXFx1ODhGRlxcdTg5MjRcXHU4OTQ3XFx1ODk5MVxcdXsyNzk2N31cXHU4QTI5XFx1OEEzOFxcdThBOTRcXHU4QUI0XFx1OEM1MVxcdThDRDRcXHU4Q0YyXFx1OEQxQ1xcdTQ3OThcXHU1ODVGXFx1OERDM1xcdTQ3RURcXHU0RUVFXFx1OEUzQVxcdTU1RDhcXHU1NzU0XFx1OEU3MVxcdTU1RjVcXHU4RUIwXFx1NDgzN1xcdThFQ0VcXHU4RUUyXFx1OEVFNFxcdThFRURcXHU4RUYyXFx1OEZCN1xcdThGQzFcXHU4RkNBXFx1OEZDQ1xcdTkwMzNcXHU5OUM0XFx1NDhBRFxcdTk4RTBcXHU5MjEzXFx1NDkxRVxcdTkyMjhcXHU5MjU4XFx1OTI2QlxcdTkyQjFcXHU5MkFFXFx1OTJCRlwiXSxcbiAgICAgIFtcIjlhNDBcIiwgXCJcXHU5MkUzXFx1OTJFQlxcdTkyRjNcXHU5MkY0XFx1OTJGRFxcdTkzNDNcXHU5Mzg0XFx1OTNBRFxcdTQ5NDVcXHU0OTUxXFx1OUVCRlxcdTk0MTdcXHU1MzAxXFx1OTQxRFxcdTk0MkRcXHU5NDNFXFx1NDk2QVxcdTk0NTRcXHU5NDc5XFx1OTUyRFxcdTk1QTJcXHU0OUE3XFx1OTVGNFxcdTk2MzNcXHU0OUU1XFx1NjdBMFxcdTRBMjRcXHU5NzQwXFx1NEEzNVxcdTk3QjJcXHU5N0MyXFx1NTY1NFxcdTRBRTRcXHU2MEU4XFx1OThCOVxcdTRCMTlcXHU5OEYxXFx1NTg0NFxcdTk5MEVcXHU5OTE5XFx1NTFCNFxcdTk5MUNcXHU5OTM3XFx1OTk0MlxcdTk5NURcXHU5OTYyXFx1NEI3MFxcdTk5QzVcXHU0QjlEXFx1OUEzQ1xcdTlCMEZcXHU3QTgzXFx1OUI2OVxcdTlCODFcXHU5QkREXFx1OUJGMVxcdTlCRjRcXHU0QzZEXFx1OUMyMFxcdTM3NkZcXHV7MjFCQzJ9XFx1OUQ0OVxcdTlDM0FcIl0sXG4gICAgICBbXCI5YWExXCIsIFwiXFx1OUVGRVxcdTU2NTBcXHU5RDkzXFx1OURCRFxcdTlEQzBcXHU5REZDXFx1OTRGNlxcdThGQjZcXHU5RTdCXFx1OUVBQ1xcdTlFQjFcXHU5RUJEXFx1OUVDNlxcdTk0RENcXHU5RUUyXFx1OUVGMVxcdTlFRjhcXHU3QUM4XFx1OUY0NFxcdXsyMDA5NH1cXHV7MjAyQjd9XFx1ezIwM0EwfVxcdTY5MUFcXHU5NEMzXFx1NTlBQ1xcdXsyMDREN31cXHU1ODQwXFx1OTRDMVxcdTM3QjlcXHV7MjA1RDV9XFx1ezIwNjE1fVxcdXsyMDY3Nn1cXHV7MjE2QkF9XFx1NTc1N1xcdTcxNzNcXHV7MjBBQzJ9XFx1ezIwQUNEfVxcdXsyMEJCRn1cXHU1NDZBXFx1ezJGODNCfVxcdXsyMEJDQn1cXHU1NDlFXFx1ezIwQkZCfVxcdXsyMEMzQn1cXHV7MjBDNTN9XFx1ezIwQzY1fVxcdXsyMEM3Q31cXHU2MEU3XFx1ezIwQzhEfVxcdTU2N0FcXHV7MjBDQjV9XFx1ezIwQ0REfVxcdXsyMENFRH1cXHV7MjBENkZ9XFx1ezIwREIyfVxcdXsyMERDOH1cXHU2OTU1XFx1OUMyRlxcdTg3QTVcXHV7MjBFMDR9XFx1ezIwRTBFfVxcdXsyMEVEN31cXHV7MjBGOTB9XFx1ezIwRjJEfVxcdXsyMEU3M31cXHU1QzIwXFx1ezIwRkJDfVxcdTVFMEJcXHV7MjEwNUN9XFx1ezIxMDRGfVxcdXsyMTA3Nn1cXHU2NzFFXFx1ezIxMDdCfVxcdXsyMTA4OH1cXHV7MjEwOTZ9XFx1MzY0N1xcdXsyMTBCRn1cXHV7MjEwRDN9XFx1ezIxMTJGfVxcdXsyMTEzQn1cXHU1MzY0XFx1ODRBRFxcdXsyMTJFM31cXHV7MjEzNzV9XFx1ezIxMzM2fVxcdThCODFcXHV7MjE1Nzd9XFx1ezIxNjE5fVxcdXsyMTdDM31cXHV7MjE3Qzd9XFx1NEU3OFxcdTcwQkJcXHV7MjE4MkR9XFx1ezIxOTZBfVwiXSxcbiAgICAgIFtcIjliNDBcIiwgXCJcXHV7MjFBMkR9XFx1ezIxQTQ1fVxcdXsyMUMyQX1cXHV7MjFDNzB9XFx1ezIxQ0FDfVxcdXsyMUVDOH1cXHU2MkMzXFx1ezIxRUQ1fVxcdXsyMUYxNX1cXHU3MTk4XFx1Njg1NVxcdXsyMjA0NX1cXHU2OUU5XFx1MzZDOFxcdXsyMjI3Q31cXHV7MjIzRDd9XFx1ezIyM0ZBfVxcdXsyMjcyQX1cXHV7MjI4NzF9XFx1ezIyOTRGfVxcdTgyRkRcXHV7MjI5Njd9XFx1ezIyOTkzfVxcdXsyMkFENX1cXHU4OUE1XFx1ezIyQUU4fVxcdThGQTBcXHV7MjJCMEV9XFx1OTdCOFxcdXsyMkIzRn1cXHU5ODQ3XFx1OUFCRFxcdXsyMkM0Q31cIl0sXG4gICAgICBbXCI5YjYyXCIsIFwiXFx1ezIyQzg4fVxcdXsyMkNCN31cXHV7MjVCRTh9XFx1ezIyRDA4fVxcdXsyMkQxMn1cXHV7MjJEQjd9XFx1ezIyRDk1fVxcdXsyMkU0Mn1cXHV7MjJGNzR9XFx1ezIyRkNDfVxcdXsyMzAzM31cXHV7MjMwNjZ9XFx1ezIzMzFGfVxcdXsyMzNERX1cXHU1RkIxXFx1NjY0OFxcdTY2QkZcXHV7MjdBNzl9XFx1ezIzNTY3fVxcdXsyMzVGM31cXHU3MjAxXFx1ezI0OUJBfVxcdTc3RDdcXHV7MjM2MUF9XFx1ezIzNzE2fVxcdTdFODdcXHV7MjAzNDZ9XFx1NThCNVxcdTY3MEVcIl0sXG4gICAgICBbXCI5YmExXCIsIFwiXFx1NjkxOFxcdXsyM0FBN31cXHV7Mjc2NTd9XFx1ezI1RkUyfVxcdXsyM0UxMX1cXHV7MjNFQjl9XFx1ezI3NUZFfVxcdXsyMjA5QX1cXHU0OEQwXFx1NEFCOFxcdXsyNDExOX1cXHV7MjhBOUF9XFx1ezI0MkVFfVxcdXsyNDMwRH1cXHV7MjQwM0J9XFx1ezI0MzM0fVxcdXsyNDM5Nn1cXHV7MjRBNDV9XFx1ezIwNUNBfVxcdTUxRDJcXHV7MjA2MTF9XFx1NTk5RlxcdXsyMUVBOH1cXHUzQkJFXFx1ezIzQ0ZGfVxcdXsyNDQwNH1cXHV7MjQ0RDZ9XFx1NTc4OFxcdXsyNDY3NH1cXHUzOTlCXFx1ezI0NzJGfVxcdXsyODVFOH1cXHV7Mjk5Qzl9XFx1Mzc2MlxcdXsyMjFDM31cXHU4QjVFXFx1ezI4QjRFfVxcdTk5RDZcXHV7MjQ4MTJ9XFx1ezI0OEZCfVxcdXsyNEExNX1cXHU3MjA5XFx1ezI0QUMwfVxcdXsyMEM3OH1cXHU1OTY1XFx1ezI0RUE1fVxcdXsyNEY4Nn1cXHV7MjA3Nzl9XFx1OEVEQVxcdXsyNTAyQ31cXHU1MjhGXFx1NTczRlxcdTcxNzFcXHV7MjUyOTl9XFx1ezI1NDE5fVxcdXsyM0Y0QX1cXHV7MjRBQTd9XFx1NTVCQ1xcdXsyNTQ0Nn1cXHV7MjU0NkV9XFx1ezI2QjUyfVxcdTkxRDRcXHUzNDczXFx1ezI1NTNGfVxcdXsyNzYzMn1cXHV7MjU1NUV9XFx1NDcxOFxcdXsyNTU2Mn1cXHV7MjU1NjZ9XFx1ezI1N0M3fVxcdXsyNDkzRn1cXHV7MjU4NUR9XFx1NTA2NlxcdTM0RkJcXHV7MjMzQ0N9XFx1NjBERVxcdXsyNTkwM31cXHU0NzdDXFx1ezI4OTQ4fVxcdXsyNUFBRX1cXHV7MjVCODl9XFx1ezI1QzA2fVxcdXsyMUQ5MH1cXHU1N0ExXFx1NzE1MVxcdTZGQjZcXHV7MjYxMDJ9XFx1ezI3QzEyfVxcdTkwNTZcXHV7MjYxQjJ9XFx1ezI0RjlBfVxcdThCNjJcXHV7MjY0MDJ9XFx1ezI2NDRBfVwiXSxcbiAgICAgIFtcIjljNDBcIiwgXCJcXHU1RDVCXFx1ezI2QkY3fVxcdThGMzZcXHV7MjY0ODR9XFx1ezIxOTFDfVxcdThBRUFcXHV7MjQ5RjZ9XFx1ezI2NDg4fVxcdXsyM0ZFRn1cXHV7MjY1MTJ9XFx1NEJDMFxcdXsyNjVCRn1cXHV7MjY2QjV9XFx1ezIyNzFCfVxcdTk0NjVcXHV7MjU3RTF9XFx1NjE5NVxcdTVBMjdcXHV7MkY4Q0R9XFx1NEZCQlxcdTU2QjlcXHV7MjQ1MjF9XFx1ezI2NkZDfVxcdTRFNkFcXHV7MjQ5MzR9XFx1OTY1NlxcdTZEOEZcXHV7MjZDQkR9XFx1MzYxOFxcdTg5NzdcXHV7MjY3OTl9XFx1ezI2ODZFfVxcdXsyNjQxMX1cXHV7MjY4NUV9XFx1NzFERlxcdXsyNjhDN31cXHU3QjQyXFx1ezI5MEMwfVxcdXsyMEExMX1cXHV7MjY5MjZ9XFx1OTEwNFxcdXsyNjkzOX1cXHU3QTQ1XFx1OURGMFxcdXsyNjlGQX1cXHU5QTI2XFx1ezI2QTJEfVxcdTM2NUZcXHV7MjY0Njl9XFx1ezIwMDIxfVxcdTc5ODNcXHV7MjZBMzR9XFx1ezI2QjVCfVxcdTVEMkNcXHV7MjM1MTl9XFx1ODNDRlxcdXsyNkI5RH1cXHU0NkQwXFx1ezI2Q0E0fVxcdTc1M0JcXHU4ODY1XFx1ezI2REFFfVxcdTU4QjZcIl0sXG4gICAgICBbXCI5Y2ExXCIsIFwiXFx1MzcxQ1xcdXsyMjU4RH1cXHV7MjcwNEJ9XFx1ezI3MUNEfVxcdTNDNTRcXHV7MjcyODB9XFx1ezI3Mjg1fVxcdTkyODFcXHV7MjIxN0F9XFx1ezI3MjhCfVxcdTkzMzBcXHV7MjcyRTZ9XFx1ezI0OUQwfVxcdTZDMzlcXHU5NDlGXFx1ezI3NDUwfVxcdXsyMEVGOH1cXHU4ODI3XFx1ODhGNVxcdXsyMjkyNn1cXHV7Mjg0NzN9XFx1ezIxN0IxfVxcdTZFQjhcXHV7MjRBMkF9XFx1ezIxODIwfVxcdTM5QTRcXHUzNkI5XFx1NUMxMFxcdTc5RTNcXHU0NTNGXFx1NjZCNlxcdXsyOUNBRH1cXHV7Mjk4QTR9XFx1ODk0M1xcdXsyNzdDQ31cXHV7Mjc4NTh9XFx1NTZENlxcdTQwREZcXHV7MjE2MEF9XFx1MzlBMVxcdXsyMzcyRn1cXHV7MjgwRTh9XFx1ezIxM0M1fVxcdTcxQURcXHU4MzY2XFx1ezI3OUREfVxcdXsyOTFBOH1cXHU1QTY3XFx1NENCN1xcdXsyNzBBRn1cXHV7Mjg5QUJ9XFx1ezI3OUZEfVxcdXsyN0EwQX1cXHV7MjdCMEJ9XFx1ezI3RDY2fVxcdXsyNDE3QX1cXHU3QjQzXFx1Nzk3RVxcdXsyODAwOX1cXHU2RkI1XFx1ezJBMkRGfVxcdTZBMDNcXHV7MjgzMTh9XFx1NTNBMlxcdXsyNkUwN31cXHU5M0JGXFx1NjgzNlxcdTk3NURcXHV7MjgxNkZ9XFx1ezI4MDIzfVxcdXsyNjlCNX1cXHV7MjEzRUR9XFx1ezIzMjJGfVxcdXsyODA0OH1cXHU1RDg1XFx1ezI4QzMwfVxcdXsyODA4M31cXHU1NzE1XFx1OTgyM1xcdXsyODk0OX1cXHU1REFCXFx1ezI0OTg4fVxcdTY1QkVcXHU2OUQ1XFx1NTNEMlxcdXsyNEFBNX1cXHV7MjNGODF9XFx1M0MxMVxcdTY3MzZcXHV7MjgwOTB9XFx1ezI4MEY0fVxcdXsyODEyRX1cXHV7MjFGQTF9XFx1ezI4MTRGfVwiXSxcbiAgICAgIFtcIjlkNDBcIiwgXCJcXHV7MjgxODl9XFx1ezI4MUFGfVxcdXsyODIxQX1cXHV7MjgzMDZ9XFx1ezI4MzJGfVxcdXsyODM4QX1cXHUzNUNBXFx1ezI4NDY4fVxcdXsyODZBQX1cXHU0OEZBXFx1NjNFNlxcdXsyODk1Nn1cXHU3ODA4XFx1OTI1NVxcdXsyODlCOH1cXHU0M0YyXFx1ezI4OUU3fVxcdTQzREZcXHV7Mjg5RTh9XFx1ezI4QjQ2fVxcdXsyOEJENH1cXHU1OUY4XFx1ezI4QzA5fVxcdThGMEJcXHV7MjhGQzV9XFx1ezI5MEVDfVxcdTdCNTFcXHV7MjkxMTB9XFx1ezI5MTNDfVxcdTNERjdcXHV7MjkxNUV9XFx1ezI0QUNBfVxcdThGRDBcXHU3MjhGXFx1NTY4QlxcdXsyOTRFN31cXHV7Mjk1RTl9XFx1ezI5NUIwfVxcdXsyOTVCOH1cXHV7Mjk3MzJ9XFx1ezI5OEQxfVxcdXsyOTk0OX1cXHV7Mjk5NkF9XFx1ezI5OUMzfVxcdXsyOUEyOH1cXHV7MjlCMEV9XFx1ezI5RDVBfVxcdXsyOUQ5Qn1cXHU3RTlGXFx1ezI5RUY4fVxcdXsyOUYyM31cXHU0Q0E0XFx1OTU0N1xcdXsyQTI5M31cXHU3MUEyXFx1ezJBMkZGfVxcdTREOTFcXHU5MDEyXFx1ezJBNUNCfVxcdTREOUNcXHV7MjBDOUN9XFx1OEZCRVxcdTU1QzFcIl0sXG4gICAgICBbXCI5ZGExXCIsIFwiXFx1OEZCQVxcdXsyMjRCMH1cXHU4RkI5XFx1ezI0QTkzfVxcdTQ1MDlcXHU3RTdGXFx1NkY1NlxcdTZBQjFcXHU0RUVBXFx1MzRFNFxcdXsyOEIyQ31cXHV7Mjc4OUR9XFx1MzczQVxcdThFODBcXHV7MjE3RjV9XFx1ezI4MDI0fVxcdXsyOEI2Q31cXHV7MjhCOTl9XFx1ezI3QTNFfVxcdXsyNjZBRn1cXHUzREVCXFx1ezI3NjU1fVxcdXsyM0NCN31cXHV7MjU2MzV9XFx1ezI1OTU2fVxcdTRFOUFcXHV7MjVFODF9XFx1ezI2MjU4fVxcdTU2QkZcXHV7MjBFNkR9XFx1OEUwRVxcdTVCNkRcXHV7MjNFODh9XFx1ezI0QzlFfVxcdTYzREVcXHU2MkQwXFx1ezIxN0Y2fVxcdXsyMTg3Qn1cXHU2NTMwXFx1NTYyRFxcdXsyNUM0QX1cXHU1NDFBXFx1ezI1MzExfVxcdTNEQzZcXHV7MjlEOTh9XFx1NEM3RFxcdTU2MjJcXHU1NjFFXFx1N0Y0OVxcdXsyNUVEOH1cXHU1OTc1XFx1ezIzRDQwfVxcdTg3NzBcXHU0RTFDXFx1ezIwRkVBfVxcdXsyMEQ0OX1cXHV7MjM2QkF9XFx1ODExN1xcdTlENUVcXHU4RDE4XFx1NzYzQlxcdTlDNDVcXHU3NjRFXFx1NzdCOVxcdTkzNDVcXHU1NDMyXFx1ODE0OFxcdTgyRjdcXHU1NjI1XFx1ODEzMlxcdTg0MThcXHU4MEJEXFx1NTVFQVxcdTc5NjJcXHU1NjQzXFx1NTQxNlxcdXsyMEU5RH1cXHUzNUNFXFx1NTYwNVxcdTU1RjFcXHU2NkYxXFx1ezI4MkUyfVxcdTM2MkRcXHU3NTM0XFx1NTVGMFxcdTU1QkFcXHU1NDk3XFx1NTU3MlxcdXsyMEM0MX1cXHV7MjBDOTZ9XFx1NUVEMFxcdXsyNTE0OH1cXHV7MjBFNzZ9XFx1ezIyQzYyfVwiXSxcbiAgICAgIFtcIjllNDBcIiwgXCJcXHV7MjBFQTJ9XFx1OUVBQlxcdTdENUFcXHU1NURFXFx1ezIxMDc1fVxcdTYyOURcXHU5NzZEXFx1NTQ5NFxcdThDQ0RcXHU3MUY2XFx1OTE3NlxcdTYzRkNcXHU2M0I5XFx1NjNGRVxcdTU1NjlcXHV7MjJCNDN9XFx1OUM3MlxcdXsyMkVCM31cXHU1MTlBXFx1MzRERlxcdXsyMERBN31cXHU1MUE3XFx1NTQ0RFxcdTU1MUVcXHU1NTEzXFx1NzY2NlxcdThFMkRcXHV7MjY4OEF9XFx1NzVCMVxcdTgwQjZcXHU4ODA0XFx1ODc4NlxcdTg4QzdcXHU4MUI2XFx1ODQxQ1xcdXsyMTBDMX1cXHU0NEVDXFx1NzMwNFxcdXsyNDcwNn1cXHU1QjkwXFx1ODMwQlxcdXsyNjg5M31cXHU1NjdCXFx1ezIyNkY0fVxcdXsyN0QyRn1cXHV7MjQxQTN9XFx1ezI3RDczfVxcdXsyNkVEMH1cXHV7MjcyQjZ9XFx1OTE3MFxcdXsyMTFEOX1cXHU5MjA4XFx1ezIzQ0ZDfVxcdXsyQTZBOX1cXHV7MjBFQUN9XFx1ezIwRUY5fVxcdTcyNjZcXHV7MjFDQTJ9XFx1NDc0RVxcdXsyNEZDMn1cXHV7MjdGRjl9XFx1ezIwRkVCfVxcdTQwRkFcIl0sXG4gICAgICBbXCI5ZWExXCIsIFwiXFx1OUM1RFxcdTY1MUZcXHV7MjJEQTB9XFx1NDhGM1xcdXsyNDdFMH1cXHV7MjlEN0N9XFx1ezIwRkVDfVxcdXsyMEUwQX1cXHU2MDYyXFx1ezI3NUEzfVxcdXsyMEZFRH1cIl0sXG4gICAgICBbXCI5ZWFkXCIsIFwiXFx1ezI2MDQ4fVxcdXsyMTE4N31cXHU3MUEzXFx1N0U4RVxcdTlENTBcXHU0RTFBXFx1NEUwNFxcdTM1NzdcXHU1QjBEXFx1NkNCMlxcdTUzNjdcXHUzNkFDXFx1MzlEQ1xcdTUzN0RcXHUzNkE1XFx1ezI0NjE4fVxcdTU4OUFcXHV7MjRCNkV9XFx1ODIyRFxcdTU0NEJcXHU1N0FBXFx1ezI1QTk1fVxcdXsyMDk3OX1cIl0sXG4gICAgICBbXCI5ZWM1XCIsIFwiXFx1M0E1MlxcdXsyMjQ2NX1cXHU3Mzc0XFx1ezI5RUFDfVxcdTREMDlcXHU5QkVEXFx1ezIzQ0ZFfVxcdXsyOUYzMH1cXHU0QzVCXFx1ezI0RkE5fVxcdXsyOTU5RX1cXHV7MjlGREV9XFx1ODQ1Q1xcdXsyM0RCNn1cXHV7MjcyQjJ9XFx1ezI2N0IzfVxcdXsyMzcyMH1cXHU2MzJFXFx1N0QyNVxcdXsyM0VGN31cXHV7MjNFMkN9XFx1M0EyQVxcdTkwMDhcXHU1MkNDXFx1M0U3NFxcdTM2N0FcXHU0NUU5XFx1ezIwNDhFfVxcdTc2NDBcXHU1QUYwXFx1ezIwRUI2fVxcdTc4N0FcXHV7MjdGMkV9XFx1NThBN1xcdTQwQkZcXHU1NjdDXFx1OUI4QlxcdTVENzRcXHU3NjU0XFx1ezJBNDM0fVxcdTlFODVcXHU0Q0UxXFx1NzVGOVxcdTM3RkJcXHU2MTE5XFx1ezIzMERBfVxcdXsyNDNGMn1cIl0sXG4gICAgICBbXCI5ZWY1XCIsIFwiXFx1NTY1RFxcdXsyMTJBOX1cXHU1N0E3XFx1ezI0OTYzfVxcdXsyOUUwNn1cXHU1MjM0XFx1ezI3MEFFfVxcdTM1QURcXHU2QzRBXFx1OUQ3Q1wiXSxcbiAgICAgIFtcIjlmNDBcIiwgXCJcXHU3QzU2XFx1OUIzOVxcdTU3REVcXHV7MjE3NkN9XFx1NUM1M1xcdTY0RDNcXHV7Mjk0RDB9XFx1ezI2MzM1fVxcdXsyNzE2NH1cXHU4NkFEXFx1ezIwRDI4fVxcdXsyNkQyMn1cXHV7MjRBRTJ9XFx1ezIwRDcxfVwiXSxcbiAgICAgIFtcIjlmNGZcIiwgXCJcXHU1MUZFXFx1ezIxRjBGfVxcdTVEOEVcXHU5NzAzXFx1ezIxREQxfVxcdTlFODFcXHU5MDRDXFx1N0IxRlxcdTlCMDJcXHU1Q0QxXFx1N0JBM1xcdTYyNjhcXHU2MzM1XFx1OUFGRlxcdTdCQ0ZcXHU5QjJBXFx1N0M3RVxcdTlCMkVcXHU3QzQyXFx1N0M4NlxcdTlDMTVcXHU3QkZDXFx1OUIwOVxcdTlGMTdcXHU5QzFCXFx1ezI0OTNFfVxcdTlGNUFcXHU1NTczXFx1NUJDM1xcdTRGRkRcXHU5RTk4XFx1NEZGMlxcdTUyNjBcXHUzRTA2XFx1NTJEMVxcdTU3NjdcXHU1MDU2XFx1NTlCN1xcdTVFMTJcXHU5N0M4XFx1OURBQlxcdThGNUNcXHU1NDY5XFx1OTdCNFxcdTk5NDBcXHU5N0JBXFx1NTMyQ1xcdTYxMzBcIl0sXG4gICAgICBbXCI5ZmExXCIsIFwiXFx1NjkyQ1xcdTUzREFcXHU5QzBBXFx1OUQwMlxcdTRDM0JcXHU5NjQxXFx1Njk4MFxcdTUwQTZcXHU3NTQ2XFx1ezIxNzZEfVxcdTk5REFcXHU1MjczXCJdLFxuICAgICAgW1wiOWZhZVwiLCBcIlxcdTkxNTlcXHU5NjgxXFx1OTE1Q1wiXSxcbiAgICAgIFtcIjlmYjJcIiwgXCJcXHU5MTUxXFx1ezI4RTk3fVxcdTYzN0ZcXHV7MjZEMjN9XFx1NkFDQVxcdTU2MTFcXHU5MThFXFx1NzU3QVxcdTYyODVcXHV7MjAzRkN9XFx1NzM0RlxcdTdDNzBcXHV7MjVDMjF9XFx1ezIzQ0ZEfVwiXSxcbiAgICAgIFtcIjlmYzFcIiwgXCJcXHV7MjQ5MTl9XFx1NzZENlxcdTlCOURcXHU0RTJBXFx1ezIwQ0Q0fVxcdTgzQkVcXHU4ODQyXCJdLFxuICAgICAgW1wiOWZjOVwiLCBcIlxcdTVDNEFcXHU2OUMwXFx1NTBFRFxcdTU3N0FcXHU1MjFGXFx1NURGNVxcdTRFQ0VcXHU2QzMxXFx1ezIwMUYyfVxcdTRGMzlcXHU1NDlDXFx1NTREQVxcdTUyOUFcXHU4RDgyXFx1MzVGRVxcdTVGMENcXHUzNUYzXCJdLFxuICAgICAgW1wiOWZkYlwiLCBcIlxcdTZCNTJcXHU5MTdDXFx1OUZBNVxcdTlCOTdcXHU5ODJFXFx1OThCNFxcdTlBQkFcXHU5RUE4XFx1OUU4NFxcdTcxN0FcXHU3QjE0XCJdLFxuICAgICAgW1wiOWZlN1wiLCBcIlxcdTZCRkFcXHU4ODE4XFx1N0Y3OFwiXSxcbiAgICAgIFtcIjlmZWJcIiwgXCJcXHU1NjIwXFx1ezJBNjRBfVxcdThFNzdcXHU5RjUzXCJdLFxuICAgICAgW1wiOWZmMFwiLCBcIlxcdThERDRcXHU4RTRGXFx1OUUxQ1xcdThFMDFcXHU2MjgyXFx1ezI4MzdEfVxcdThFMjhcXHU4RTc1XFx1N0FEM1xcdXsyNEE3N31cXHU3QTNFXFx1NzhEOFxcdTZDRUFcXHU4QTY3XFx1NzYwN1wiXSxcbiAgICAgIFtcImEwNDBcIiwgXCJcXHV7MjhBNUF9XFx1OUYyNlxcdTZDQ0VcXHU4N0Q2XFx1NzVDM1xcdXsyQTJCMn1cXHU3ODUzXFx1ezJGODQwfVxcdThEMENcXHU3MkUyXFx1NzM3MVxcdThCMkRcXHU3MzAyXFx1NzRGMVxcdThDRUJcXHV7MjRBQkJ9XFx1ODYyRlxcdTVGQkFcXHU4OEEwXFx1NDRCN1wiXSxcbiAgICAgIFtcImEwNTVcIiwgXCJcXHV7MjE4M0J9XFx1ezI2RTA1fVwiXSxcbiAgICAgIFtcImEwNThcIiwgXCJcXHU4QTdFXFx1ezIyNTFCfVwiXSxcbiAgICAgIFtcImEwNWJcIiwgXCJcXHU2MEZEXFx1NzY2N1xcdTlBRDdcXHU5RDQ0XFx1OTM2RVxcdTlCOEZcXHU4N0Y1XCJdLFxuICAgICAgW1wiYTA2M1wiLCBcIlxcdTg4MEZcXHU4Q0Y3XFx1NzMyQ1xcdTk3MjFcXHU5QkIwXFx1MzVENlxcdTcyQjJcXHU0QzA3XFx1N0M1MVxcdTk5NEFcXHV7MjYxNTl9XFx1NjE1OVxcdTRDMDRcXHU5RTk2XFx1NjE3RFwiXSxcbiAgICAgIFtcImEwNzNcIiwgXCJcXHU1NzVGXFx1NjE2RlxcdTYyQTZcXHU2MjM5XFx1NjJDRVxcdTNBNUNcXHU2MUUyXFx1NTNBQVxcdXsyMzNGNX1cXHU2MzY0XFx1NjgwMlxcdTM1RDJcIl0sXG4gICAgICBbXCJhMGExXCIsIFwiXFx1NUQ1N1xcdXsyOEJDMn1cXHU4RkRBXFx1ezI4RTM5fVwiXSxcbiAgICAgIFtcImEwYTZcIiwgXCJcXHU1MEQ5XFx1ezIxRDQ2fVxcdTc5MDZcXHU1MzMyXFx1OTYzOFxcdXsyMEYzQn1cXHU0MDY1XCJdLFxuICAgICAgW1wiYTBhZVwiLCBcIlxcdTc3RkVcIl0sXG4gICAgICBbXCJhMGIwXCIsIFwiXFx1N0NDMlxcdXsyNUYxQX1cXHU3Q0RBXFx1N0EyRFxcdTgwNjZcXHU4MDYzXFx1N0Q0RFxcdTc1MDVcXHU3NEYyXFx1ODk5NFxcdTgyMUFcXHU2NzBDXFx1ODA2MlxcdXsyNzQ4Nn1cXHU4MDVCXFx1NzRGMFxcdTgxMDNcXHU3NzI0XFx1ODk4OVxcdXsyNjdDQ31cXHU3NTUzXFx1ezI2RUQxfVxcdTg3QTlcXHU4N0NFXFx1ODFDOFxcdTg3OENcXHU4QTQ5XFx1OENBRFxcdThCNDNcXHU3NzJCXFx1NzRGOFxcdTg0REFcXHUzNjM1XFx1NjlCMlxcdThEQTZcIl0sXG4gICAgICBbXCJhMGQ0XCIsIFwiXFx1ODlBOVxcdTc0NjhcXHU2REI5XFx1ODdDMVxcdXsyNDAxMX1cXHU3NEU3XFx1M0REQlxcdTcxNzZcXHU2MEE0XFx1NjE5Q1xcdTNDRDFcXHU3MTYyXFx1NjA3N1wiXSxcbiAgICAgIFtcImEwZTJcIiwgXCJcXHU3RjcxXFx1ezI4QjJEfVxcdTcyNTBcXHU2MEU5XFx1NEI3RVxcdTUyMjBcXHUzQzE4XFx1ezIzQ0M3fVxcdXsyNUVEN31cXHV7Mjc2NTZ9XFx1ezI1NTMxfVxcdXsyMTk0NH1cXHV7MjEyRkV9XFx1ezI5OTAzfVxcdXsyNkREQ31cXHV7MjcwQUR9XFx1NUNDMVxcdXsyNjFBRH1cXHV7MjhBMEZ9XFx1ezIzNjc3fVxcdXsyMDBFRX1cXHV7MjY4NDZ9XFx1ezI0RjBFfVxcdTQ1NjJcXHU1QjFGXFx1ezI2MzRDfVxcdTlGNTBcXHU5RUE2XFx1ezI2MjZCfVwiXSxcbiAgICAgIFtcImEzYzBcIiwgXCJcXHUyNDAwXCIsIDMxLCBcIlxcdTI0MjFcIl0sXG4gICAgICBbXCJjNmExXCIsIFwiXFx1MjQ2MFwiLCA5LCBcIlxcdTI0NzRcIiwgOSwgXCJcXHUyMTcwXCIsIDksIFwiXFx1NEUzNlxcdTRFM0ZcXHU0RTg1XFx1NEVBMFxcdTUxODJcXHU1MTk2XFx1NTFBQlxcdTUyRjlcXHU1MzM4XFx1NTM2OVxcdTUzQjZcXHU1OTBBXFx1NUI4MFxcdTVEREJcXHUyRjMzXFx1NUU3RlxcdTVFRjRcXHU1RjUwXFx1NUY2MVxcdTY1MzRcXHU2NUUwXFx1NzU5MlxcdTc2NzZcXHU4RkI1XFx1OTZCNlxceEE4XFx1MDJDNlxcdTMwRkRcXHUzMEZFXFx1MzA5RFxcdTMwOUVcXHUzMDAzXFx1NEVERFxcdTMwMDVcXHUzMDA2XFx1MzAwN1xcdTMwRkNcXHVGRjNCXFx1RkYzRFxcdTI3M0RcXHUzMDQxXCIsIDIzXSxcbiAgICAgIFtcImM3NDBcIiwgXCJcXHUzMDU5XCIsIDU4LCBcIlxcdTMwQTFcXHUzMEEyXFx1MzBBM1xcdTMwQTRcIl0sXG4gICAgICBbXCJjN2ExXCIsIFwiXFx1MzBBNVwiLCA4MSwgXCJcXHUwNDEwXCIsIDUsIFwiXFx1MDQwMVxcdTA0MTZcIiwgNF0sXG4gICAgICBbXCJjODQwXCIsIFwiXFx1MDQxQlwiLCAyNiwgXCJcXHUwNDUxXFx1MDQzNlwiLCAyNSwgXCJcXHUyMUU3XFx1MjFCOFxcdTIxQjlcXHUzMUNGXFx1ezIwMENDfVxcdTRFNUFcXHV7MjAwOEF9XFx1NTIwMlxcdTQ0OTFcIl0sXG4gICAgICBbXCJjOGExXCIsIFwiXFx1OUZCMFxcdTUxODhcXHU5RkIxXFx1ezI3NjA3fVwiXSxcbiAgICAgIFtcImM4Y2RcIiwgXCJcXHVGRkUyXFx1RkZFNFxcdUZGMDdcXHVGRjAyXFx1MzIzMVxcdTIxMTZcXHUyMTIxXFx1MzA5QlxcdTMwOUNcXHUyRTgwXFx1MkU4NFxcdTJFODZcXHUyRTg3XFx1MkU4OFxcdTJFOEFcXHUyRThDXFx1MkU4RFxcdTJFOTVcXHUyRTlDXFx1MkU5RFxcdTJFQTVcXHUyRUE3XFx1MkVBQVxcdTJFQUNcXHUyRUFFXFx1MkVCNlxcdTJFQkNcXHUyRUJFXFx1MkVDNlxcdTJFQ0FcXHUyRUNDXFx1MkVDRFxcdTJFQ0ZcXHUyRUQ2XFx1MkVEN1xcdTJFREVcXHUyRUUzXCJdLFxuICAgICAgW1wiYzhmNVwiLCBcIlxcdTAyODNcXHUwMjUwXFx1MDI1QlxcdTAyNTRcXHUwMjc1XFx1MDE1M1xceEY4XFx1MDE0QlxcdTAyOEFcXHUwMjZBXCJdLFxuICAgICAgW1wiZjlmZVwiLCBcIlxcdUZGRURcIl0sXG4gICAgICBbXCJmYTQwXCIsIFwiXFx1ezIwNTQ3fVxcdTkyREJcXHV7MjA1REZ9XFx1ezIzRkM1fVxcdTg1NENcXHU0MkI1XFx1NzNFRlxcdTUxQjVcXHUzNjQ5XFx1ezI0OTQyfVxcdXsyODlFNH1cXHU5MzQ0XFx1ezIxOURCfVxcdTgyRUVcXHV7MjNDQzh9XFx1NzgzQ1xcdTY3NDRcXHU2MkRGXFx1ezI0OTMzfVxcdXsyODlBQX1cXHV7MjAyQTB9XFx1ezI2QkIzfVxcdXsyMTMwNX1cXHU0RkFCXFx1ezIyNEVEfVxcdTUwMDhcXHV7MjZEMjl9XFx1ezI3QTg0fVxcdXsyMzYwMH1cXHV7MjRBQjF9XFx1ezIyNTEzfVxcdTUwMjlcXHV7MjAzN0V9XFx1NUZBNFxcdXsyMDM4MH1cXHV7MjAzNDd9XFx1NkVEQlxcdXsyMDQxRn1cXHU1MDdEXFx1NTEwMVxcdTM0N0FcXHU1MTBFXFx1OTg2Q1xcdTM3NDNcXHU4NDE2XFx1ezI0OUE0fVxcdXsyMDQ4N31cXHU1MTYwXFx1ezIzM0I0fVxcdTUxNkFcXHV7MjBCRkZ9XFx1ezIyMEZDfVxcdXsyMDJFNX1cXHV7MjI1MzB9XFx1ezIwNThFfVxcdXsyMzIzM31cXHV7MjE5ODN9XFx1NUI4MlxcdTg3N0RcXHV7MjA1QjN9XFx1ezIzQzk5fVxcdTUxQjJcXHU1MUI4XCJdLFxuICAgICAgW1wiZmFhMVwiLCBcIlxcdTlEMzRcXHU1MUM5XFx1NTFDRlxcdTUxRDFcXHUzQ0RDXFx1NTFEM1xcdXsyNEFBNn1cXHU1MUIzXFx1NTFFMlxcdTUzNDJcXHU1MUVEXFx1ODNDRFxcdTY5M0VcXHV7MjM3MkR9XFx1NUY3QlxcdTUyMEJcXHU1MjI2XFx1NTIzQ1xcdTUyQjVcXHU1MjU3XFx1NTI5NFxcdTUyQjlcXHU1MkM1XFx1N0MxNVxcdTg1NDJcXHU1MkUwXFx1ODYwRFxcdXsyNkIxM31cXHU1MzA1XFx1ezI4QURFfVxcdTU1NDlcXHU2RUQ5XFx1ezIzRjgwfVxcdXsyMDk1NH1cXHV7MjNGRUN9XFx1NTMzM1xcdTUzNDRcXHV7MjBCRTJ9XFx1NkNDQlxcdXsyMTcyNn1cXHU2ODFCXFx1NzNENVxcdTYwNEFcXHUzRUFBXFx1MzhDQ1xcdXsyMTZFOH1cXHU3MUREXFx1NDRBMlxcdTUzNkRcXHU1Mzc0XFx1ezI4NkFCfVxcdTUzN0VcXHU1MzdGXFx1ezIxNTk2fVxcdXsyMTYxM31cXHU3N0U2XFx1NTM5M1xcdXsyOEE5Qn1cXHU1M0EwXFx1NTNBQlxcdTUzQUVcXHU3M0E3XFx1ezI1NzcyfVxcdTNGNTlcXHU3MzlDXFx1NTNDMVxcdTUzQzVcXHU2QzQ5XFx1NEU0OVxcdTU3RkVcXHU1M0Q5XFx1M0FBQlxcdXsyMEI4Rn1cXHU1M0UwXFx1ezIzRkVCfVxcdXsyMkRBM31cXHU1M0Y2XFx1ezIwQzc3fVxcdTU0MTNcXHU3MDc5XFx1NTUyQlxcdTY2NTdcXHU2RDVCXFx1NTQ2RFxcdXsyNkI1M31cXHV7MjBENzR9XFx1NTU1RFxcdTU0OEZcXHU1NEE0XFx1NDdBNlxcdXsyMTcwRH1cXHV7MjBFRER9XFx1M0RCNFxcdXsyMEQ0RH1cIl0sXG4gICAgICBbXCJmYjQwXCIsIFwiXFx1ezI4OUJDfVxcdXsyMjY5OH1cXHU1NTQ3XFx1NENFRFxcdTU0MkZcXHU3NDE3XFx1NTU4NlxcdTU1QTlcXHU1NjA1XFx1ezIxOEQ3fVxcdXsyNDAzQX1cXHU0NTUyXFx1ezI0NDM1fVxcdTY2QjNcXHV7MjEwQjR9XFx1NTYzN1xcdTY2Q0RcXHV7MjMyOEF9XFx1NjZBNFxcdTY2QURcXHU1NjREXFx1NTY0RlxcdTc4RjFcXHU1NkYxXFx1OTc4N1xcdTUzRkVcXHU1NzAwXFx1NTZFRlxcdTU2RURcXHV7MjhCNjZ9XFx1MzYyM1xcdXsyMTI0Rn1cXHU1NzQ2XFx1ezI0MUE1fVxcdTZDNkVcXHU3MDhCXFx1NTc0MlxcdTM2QjFcXHV7MjZDN0V9XFx1NTdFNlxcdXsyMTQxNn1cXHU1ODAzXFx1ezIxNDU0fVxcdXsyNDM2M31cXHU1ODI2XFx1ezI0QkY1fVxcdTU4NUNcXHU1OEFBXFx1MzU2MVxcdTU4RTBcXHU1OERDXFx1ezIxMjNDfVxcdTU4RkJcXHU1QkZGXFx1NTc0M1xcdXsyQTE1MH1cXHV7MjQyNzh9XFx1OTNEM1xcdTM1QTFcXHU1OTFGXFx1NjhBNlxcdTM2QzNcXHU2RTU5XCJdLFxuICAgICAgW1wiZmJhMVwiLCBcIlxcdXsyMTYzRX1cXHU1QTI0XFx1NTU1M1xcdXsyMTY5Mn1cXHU4NTA1XFx1NTlDOVxcdXsyMEQ0RX1cXHV7MjZDODF9XFx1ezI2RDJBfVxcdXsyMTdEQ31cXHU1OUQ5XFx1ezIxN0ZCfVxcdXsyMTdCMn1cXHV7MjZEQTZ9XFx1NkQ3MVxcdXsyMTgyOH1cXHV7MjE2RDV9XFx1NTlGOVxcdXsyNkU0NX1cXHU1QUFCXFx1NUE2M1xcdTM2RTZcXHV7MjQ5QTl9XFx1NUE3N1xcdTM3MDhcXHU1QTk2XFx1NzQ2NVxcdTVBRDNcXHV7MjZGQTF9XFx1ezIyNTU0fVxcdTNEODVcXHV7MjE5MTF9XFx1MzczMlxcdXsyMTZCOH1cXHU1RTgzXFx1NTJEMFxcdTVCNzZcXHU2NTg4XFx1NUI3Q1xcdXsyN0EwRX1cXHU0MDA0XFx1NDg1RFxcdXsyMDIwNH1cXHU1QkQ1XFx1NjE2MFxcdXsyMUEzNH1cXHV7MjU5Q0N9XFx1ezIwNUE1fVxcdTVCRjNcXHU1QjlEXFx1NEQxMFxcdTVDMDVcXHV7MjFCNDR9XFx1NUMxM1xcdTczQ0VcXHU1QzE0XFx1ezIxQ0E1fVxcdXsyNkIyOH1cXHU1QzQ5XFx1NDhERFxcdTVDODVcXHU1Q0U5XFx1NUNFRlxcdTVEOEJcXHV7MjFERjl9XFx1ezIxRTM3fVxcdTVEMTBcXHU1RDE4XFx1NUQ0NlxcdXsyMUVBNH1cXHU1Q0JBXFx1NUREN1xcdTgyRkNcXHUzODJEXFx1ezI0OTAxfVxcdXsyMjA0OX1cXHV7MjIxNzN9XFx1ODI4N1xcdTM4MzZcXHUzQkMyXFx1NUUyRVxcdTZBOEFcXHU1RTc1XFx1NUU3QVxcdXsyNDRCQ31cXHV7MjBDRDN9XFx1NTNBNlxcdTRFQjdcXHU1RUQwXFx1NTNBOFxcdXsyMTc3MX1cXHU1RTA5XFx1NUVGNFxcdXsyODQ4Mn1cIl0sXG4gICAgICBbXCJmYzQwXCIsIFwiXFx1NUVGOVxcdTVFRkJcXHUzOEEwXFx1NUVGQ1xcdTY4M0VcXHU5NDFCXFx1NUYwRFxcdXsyMDFDMX1cXHV7MkY4OTR9XFx1M0FERVxcdTQ4QUVcXHV7MjEzM0F9XFx1NUYzQVxcdXsyNjg4OH1cXHV7MjIzRDB9XFx1NUY1OFxcdXsyMjQ3MX1cXHU1RjYzXFx1OTdCRFxcdXsyNkU2RX1cXHU1RjcyXFx1OTM0MFxcdXsyOEEzNn1cXHU1RkE3XFx1NURCNlxcdTNENUZcXHV7MjUyNTB9XFx1ezIxRjZBfVxcdXsyNzBGOH1cXHV7MjI2Njh9XFx1OTFENlxcdXsyMDI5RX1cXHV7MjhBMjl9XFx1NjAzMVxcdTY2ODVcXHV7MjE4Nzd9XFx1Mzk2M1xcdTNEQzdcXHUzNjM5XFx1NTc5MFxcdXsyMjdCNH1cXHU3OTcxXFx1M0U0MFxcdTYwOUVcXHU2MEE0XFx1NjBCM1xcdXsyNDk4Mn1cXHV7MjQ5OEZ9XFx1ezI3QTUzfVxcdTc0QTRcXHU1MEUxXFx1NUFBMFxcdTYxNjRcXHU4NDI0XFx1NjE0MlxcdXsyRjhBNn1cXHV7MjZFRDJ9XFx1NjE4MVxcdTUxRjRcXHV7MjA2NTZ9XFx1NjE4N1xcdTVCQUFcXHV7MjNGQjd9XCJdLFxuICAgICAgW1wiZmNhMVwiLCBcIlxcdXsyMjg1Rn1cXHU2MUQzXFx1ezI4QjlEfVxcdXsyOTk1RH1cXHU2MUQwXFx1MzkzMlxcdXsyMjk4MH1cXHV7MjI4QzF9XFx1NjAyM1xcdTYxNUNcXHU2NTFFXFx1NjM4QlxcdXsyMDExOH1cXHU2MkM1XFx1ezIxNzcwfVxcdTYyRDVcXHV7MjJFMER9XFx1NjM2Q1xcdXsyNDlERn1cXHUzQTE3XFx1NjQzOFxcdTYzRjhcXHV7MjEzOEV9XFx1ezIxN0ZDfVxcdTY0OTBcXHU2RjhBXFx1ezIyRTM2fVxcdTk4MTRcXHV7MjQwOEN9XFx1ezI1NzFEfVxcdTY0RTFcXHU2NEU1XFx1OTQ3QlxcdTNBNjZcXHU2NDNBXFx1M0E1N1xcdTY1NERcXHU2RjE2XFx1ezI0QTI4fVxcdXsyNEEyM31cXHU2NTg1XFx1NjU2RFxcdTY1NUZcXHV7MjMwN0V9XFx1NjVCNVxcdXsyNDk0MH1cXHU0QjM3XFx1NjVEMVxcdTQwRDhcXHV7MjE4Mjl9XFx1NjVFMFxcdTY1RTNcXHU1RkRGXFx1ezIzNDAwfVxcdTY2MThcXHV7MjMxRjd9XFx1ezIzMUY4fVxcdTY2NDRcXHV7MjMxQTR9XFx1ezIzMUE1fVxcdTY2NEJcXHV7MjBFNzV9XFx1NjY2N1xcdXsyNTFFNn1cXHU2NjczXFx1NjY3NFxcdXsyMUUzRH1cXHV7MjMyMzF9XFx1ezI4NUY0fVxcdXsyMzFDOH1cXHV7MjUzMTN9XFx1NzdDNVxcdXsyMjhGN31cXHU5OUE0XFx1NjcwMlxcdXsyNDM5Q31cXHV7MjRBMjF9XFx1M0IyQlxcdTY5RkFcXHV7MjM3QzJ9XFx1Njc1RVxcdTY3NjdcXHU2NzYyXFx1ezI0MUNEfVxcdXsyOTBFRH1cXHU2N0Q3XFx1NDRFOVxcdTY4MjJcXHU2RTUwXFx1OTIzQ1xcdTY4MDFcXHV7MjMzRTZ9XFx1ezI2REEwfVxcdTY4NURcIl0sXG4gICAgICBbXCJmZDQwXCIsIFwiXFx1ezIzNDZGfVxcdTY5RTFcXHU2QTBCXFx1ezI4QURGfVxcdTY5NzNcXHU2OEMzXFx1ezIzNUNEfVxcdTY5MDFcXHU2OTAwXFx1M0QzMlxcdTNBMDFcXHV7MjM2M0N9XFx1M0I4MFxcdTY3QUNcXHU2OTYxXFx1ezI4QTRBfVxcdTQyRkNcXHU2OTM2XFx1Njk5OFxcdTNCQTFcXHV7MjAzQzl9XFx1ODM2M1xcdTUwOTBcXHU2OUY5XFx1ezIzNjU5fVxcdXsyMjEyQX1cXHU2QTQ1XFx1ezIzNzAzfVxcdTZBOURcXHUzQkYzXFx1NjdCMVxcdTZBQzhcXHV7MjkxOUN9XFx1M0MwRFxcdTZCMURcXHV7MjA5MjN9XFx1NjBERVxcdTZCMzVcXHU2Qjc0XFx1ezIyN0NEfVxcdTZFQjVcXHV7MjNBREJ9XFx1ezIwM0I1fVxcdXsyMTk1OH1cXHUzNzQwXFx1NTQyMVxcdXsyM0I1QX1cXHU2QkUxXFx1ezIzRUZDfVxcdTZCRENcXHU2QzM3XFx1ezIyNDhCfVxcdXsyNDhGMX1cXHV7MjZCNTF9XFx1NkM1QVxcdTgyMjZcXHU2Qzc5XFx1ezIzREJDfVxcdTQ0QzVcXHV7MjNEQkR9XFx1ezI0MUE0fVxcdXsyNDkwQ31cXHV7MjQ5MDB9XCJdLFxuICAgICAgW1wiZmRhMVwiLCBcIlxcdXsyM0NDOX1cXHUzNkU1XFx1M0NFQlxcdXsyMEQzMn1cXHU5QjgzXFx1ezIzMUY5fVxcdXsyMjQ5MX1cXHU3RjhGXFx1NjgzN1xcdXsyNkQyNX1cXHV7MjZEQTF9XFx1ezI2REVCfVxcdTZEOTZcXHU2RDVDXFx1NkU3Q1xcdTZGMDRcXHV7MjQ5N0Z9XFx1ezI0MDg1fVxcdXsyNkU3Mn1cXHU4NTMzXFx1ezI2Rjc0fVxcdTUxQzdcXHU2QzlDXFx1NkUxRFxcdTg0MkVcXHV7MjhCMjF9XFx1NkUyRlxcdXsyM0UyRn1cXHU3NDUzXFx1ezIzRjgyfVxcdTc5Q0NcXHU2RTRGXFx1NUE5MVxcdXsyMzA0Qn1cXHU2RkY4XFx1MzcwRFxcdTZGOURcXHV7MjNFMzB9XFx1NkVGQVxcdXsyMTQ5N31cXHV7MjQwM0R9XFx1NDU1NVxcdTkzRjBcXHU2RjQ0XFx1NkY1Q1xcdTNENEVcXHU2Rjc0XFx1ezI5MTcwfVxcdTNEM0JcXHU2RjlGXFx1ezI0MTQ0fVxcdTZGRDNcXHV7MjQwOTF9XFx1ezI0MTU1fVxcdXsyNDAzOX1cXHV7MjNGRjB9XFx1ezIzRkI0fVxcdXsyNDEzRn1cXHU1MURGXFx1ezI0MTU2fVxcdXsyNDE1N31cXHV7MjQxNDB9XFx1ezI2MUREfVxcdTcwNEJcXHU3MDdFXFx1NzBBN1xcdTcwODFcXHU3MENDXFx1NzBENVxcdTcwRDZcXHU3MERGXFx1NDEwNFxcdTNERThcXHU3MUI0XFx1NzE5NlxcdXsyNDI3N31cXHU3MTJCXFx1NzE0NVxcdTVBODhcXHU3MTRBXFx1NzE2RVxcdTVDOUNcXHV7MjQzNjV9XFx1NzE0RlxcdTkzNjJcXHV7MjQyQzF9XFx1NzEyQ1xcdXsyNDQ1QX1cXHV7MjRBMjd9XFx1ezI0QTIyfVxcdTcxQkFcXHV7MjhCRTh9XFx1NzBCRFxcdTcyMEVcIl0sXG4gICAgICBbXCJmZTQwXCIsIFwiXFx1OTQ0MlxcdTcyMTVcXHU1OTExXFx1OTQ0M1xcdTcyMjRcXHU5MzQxXFx1ezI1NjA1fVxcdTcyMkVcXHU3MjQwXFx1ezI0OTc0fVxcdTY4QkRcXHU3MjU1XFx1NzI1N1xcdTNFNTVcXHV7MjMwNDR9XFx1NjgwRFxcdTZGM0RcXHU3MjgyXFx1NzMyQVxcdTczMkJcXHV7MjQ4MjN9XFx1ezI4ODJCfVxcdTQ4RURcXHV7Mjg4MDR9XFx1NzMyOFxcdTczMkVcXHU3M0NGXFx1NzNBQVxcdXsyMEMzQX1cXHV7MjZBMkV9XFx1NzNDOVxcdTc0NDlcXHV7MjQxRTJ9XFx1ezIxNkU3fVxcdXsyNEEyNH1cXHU2NjIzXFx1MzZDNVxcdXsyNDlCN31cXHV7MjQ5OER9XFx1ezI0OUZCfVxcdTczRjdcXHU3NDE1XFx1NjkwM1xcdXsyNEEyNn1cXHU3NDM5XFx1ezIwNUMzfVxcdTNFRDdcXHU3NDVDXFx1ezIyOEFEfVxcdTc0NjBcXHV7MjhFQjJ9XFx1NzQ0N1xcdTczRTRcXHU3NDc2XFx1ODNCOVxcdTc0NkNcXHUzNzMwXFx1NzQ3NFxcdTkzRjFcXHU2QTJDXFx1NzQ4MlxcdTQ5NTNcXHV7MjRBOEN9XCJdLFxuICAgICAgW1wiZmVhMVwiLCBcIlxcdXsyNDE1Rn1cXHV7MjRBNzl9XFx1ezI4QjhGfVxcdTVCNDZcXHV7MjhDMDN9XFx1ezIxODlFfVxcdTc0QzhcXHV7MjE5ODh9XFx1NzUwRVxcdTc0RTlcXHU3NTFFXFx1ezI4RUQ5fVxcdXsyMUE0Qn1cXHU1QkQ3XFx1ezI4RUFDfVxcdTkzODVcXHU3NTREXFx1NzU0QVxcdTc1NjdcXHU3NTZFXFx1ezI0RjgyfVxcdTNGMDRcXHV7MjREMTN9XFx1NzU4RVxcdTc0NURcXHU3NTlFXFx1NzVCNFxcdTc2MDJcXHU3NjJDXFx1NzY1MVxcdTc2NEZcXHU3NjZGXFx1NzY3NlxcdXsyNjNGNX1cXHU3NjkwXFx1ODFFRlxcdTM3RjhcXHV7MjY5MTF9XFx1ezI2OTBFfVxcdTc2QTFcXHU3NkE1XFx1NzZCN1xcdTc2Q0NcXHV7MjZGOUZ9XFx1ODQ2MlxcdXsyNTA5RH1cXHV7MjUxN0R9XFx1ezIxRTFDfVxcdTc3MUVcXHU3NzI2XFx1Nzc0MFxcdTY0QUZcXHV7MjUyMjB9XFx1Nzc1OFxcdXsyMzJBQ31cXHU3N0FGXFx1ezI4OTY0fVxcdXsyODk2OH1cXHV7MjE2QzF9XFx1NzdGNFxcdTc4MDlcXHV7MjEzNzZ9XFx1ezI0QTEyfVxcdTY4Q0FcXHU3OEFGXFx1NzhDN1xcdTc4RDNcXHU5NkE1XFx1NzkyRVxcdXsyNTVFMH1cXHU3OEQ3XFx1NzkzNFxcdTc4QjFcXHV7Mjc2MEN9XFx1OEZCOFxcdTg4ODRcXHV7MjhCMkJ9XFx1ezI2MDgzfVxcdXsyMjYxQ31cXHU3OTg2XFx1ODkwMFxcdTY5MDJcXHU3OTgwXFx1ezI1ODU3fVxcdTc5OURcXHV7MjdCMzl9XFx1NzkzQ1xcdTc5QTlcXHU2RTJBXFx1ezI3MTI2fVxcdTNFQThcXHU3OUM2XFx1ezI5MTBEfVxcdTc5RDRcIl1cbiAgICBdO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9kYmNzLWRhdGEuanNcbnZhciByZXF1aXJlX2RiY3NfZGF0YTIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL2RiY3MtZGF0YS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgLy8gPT0gSmFwYW5lc2UvU2hpZnRKSVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgLy8gQWxsIGphcGFuZXNlIGVuY29kaW5ncyBhcmUgYmFzZWQgb24gSklTIFggc2V0IG9mIHN0YW5kYXJkczpcbiAgICAgIC8vIEpJUyBYIDAyMDEgLSBTaW5nbGUtYnl0ZSBlbmNvZGluZyBvZiBBU0NJSSArIFx1MDBBNSArIEthbmEgY2hhcnMgYXQgMHhBMS0weERGLlxuICAgICAgLy8gSklTIFggMDIwOCAtIE1haW4gc2V0IG9mIDY4NzkgY2hhcmFjdGVycywgcGxhY2VkIGluIDk0eDk0IHBsYW5lLCB0byBiZSBlbmNvZGVkIGJ5IDIgYnl0ZXMuIFxuICAgICAgLy8gICAgICAgICAgICAgIEhhcyBzZXZlcmFsIHZhcmlhdGlvbnMgaW4gMTk3OCwgMTk4MywgMTk5MCBhbmQgMTk5Ny5cbiAgICAgIC8vIEpJUyBYIDAyMTIgLSBTdXBwbGVtZW50YXJ5IHBsYW5lIG9mIDYwNjcgY2hhcnMgaW4gOTR4OTQgcGxhbmUuIDE5OTAuIEVmZmVjdGl2ZWx5IGRlYWQuXG4gICAgICAvLyBKSVMgWCAwMjEzIC0gRXh0ZW5zaW9uIGFuZCBtb2Rlcm4gcmVwbGFjZW1lbnQgb2YgMDIwOCBhbmQgMDIxMi4gVG90YWwgY2hhcnM6IDExMjMzLlxuICAgICAgLy8gICAgICAgICAgICAgIDIgcGxhbmVzLCBmaXJzdCBpcyBzdXBlcnNldCBvZiAwMjA4LCBzZWNvbmQgLSByZXZpc2VkIDAyMTIuXG4gICAgICAvLyAgICAgICAgICAgICAgSW50cm9kdWNlZCBpbiAyMDAwLCByZXZpc2VkIDIwMDQuIFNvbWUgY2hhcmFjdGVycyBhcmUgaW4gVW5pY29kZSBQbGFuZSAyICgweDJ4eHh4KVxuICAgICAgLy8gQnl0ZSBlbmNvZGluZ3MgYXJlOlxuICAgICAgLy8gICogU2hpZnRfSklTOiBDb21wYXRpYmxlIHdpdGggMDIwMSwgdXNlcyBub3QgZGVmaW5lZCBjaGFycyBpbiB0b3AgaGFsZiBhcyBsZWFkIGJ5dGVzIGZvciBkb3VibGUtYnl0ZVxuICAgICAgLy8gICAgICAgICAgICAgICBlbmNvZGluZyBvZiAwMjA4LiBMZWFkIGJ5dGUgcmFuZ2VzOiAweDgxLTB4OUYsIDB4RTAtMHhFRjsgVHJhaWwgYnl0ZSByYW5nZXM6IDB4NDAtMHg3RSwgMHg4MC0weDlFLCAweDlGLTB4RkMuXG4gICAgICAvLyAgICAgICAgICAgICAgIFdpbmRvd3MgQ1A5MzIgaXMgYSBzdXBlcnNldCBvZiBTaGlmdF9KSVMuIFNvbWUgY29tcGFuaWVzIGFkZGVkIG1vcmUgY2hhcnMsIG5vdGFibHkgS0RESS5cbiAgICAgIC8vICAqIEVVQy1KUDogICAgVXAgdG8gMyBieXRlcyBwZXIgY2hhcmFjdGVyLiBVc2VkIG1vc3RseSBvbiAqbml4ZXMuXG4gICAgICAvLyAgICAgICAgICAgICAgIDB4MDAtMHg3RiAgICAgICAtIGxvd2VyIHBhcnQgb2YgMDIwMVxuICAgICAgLy8gICAgICAgICAgICAgICAweDhFLCAweEExLTB4REYgLSB1cHBlciBwYXJ0IG9mIDAyMDFcbiAgICAgIC8vICAgICAgICAgICAgICAgKDB4QTEtMHhGRSl4MiAgIC0gMDIwOCBwbGFuZSAoOTR4OTQpLlxuICAgICAgLy8gICAgICAgICAgICAgICAweDhGLCAoMHhBMS0weEZFKXgyIC0gMDIxMiBwbGFuZSAoOTR4OTQpLlxuICAgICAgLy8gICogSklTIFggMjA4OiA3LWJpdCwgZGlyZWN0IGVuY29kaW5nIG9mIDAyMDguIEJ5dGUgcmFuZ2VzOiAweDIxLTB4N0UgKDk0IHZhbHVlcykuIFVuY29tbW9uLlxuICAgICAgLy8gICAgICAgICAgICAgICBVc2VkIGFzLWlzIGluIElTTzIwMjIgZmFtaWx5LlxuICAgICAgLy8gICogSVNPMjAyMi1KUDogU3RhdGVmdWwgZW5jb2RpbmcsIHdpdGggZXNjYXBlIHNlcXVlbmNlcyB0byBzd2l0Y2ggYmV0d2VlbiBBU0NJSSwgXG4gICAgICAvLyAgICAgICAgICAgICAgICAwMjAxLTE5NzYgUm9tYW4sIDAyMDgtMTk3OCwgMDIwOC0xOTgzLlxuICAgICAgLy8gICogSVNPMjAyMi1KUC0xOiBBZGRzIGVzYyBzZXEgZm9yIDAyMTItMTk5MC5cbiAgICAgIC8vICAqIElTTzIwMjItSlAtMjogQWRkcyBlc2Mgc2VxIGZvciBHQjIzMTMtMTk4MCwgS1NYMTAwMS0xOTkyLCBJU084ODU5LTEsIElTTzg4NTktNy5cbiAgICAgIC8vICAqIElTTzIwMjItSlAtMzogQWRkcyBlc2Mgc2VxIGZvciAwMjAxLTE5NzYgS2FuYSBzZXQsIDAyMTMtMjAwMCBQbGFuZXMgMSwgMi5cbiAgICAgIC8vICAqIElTTzIwMjItSlAtMjAwNDogQWRkcyAwMjEzLTIwMDQgUGxhbmUgMS5cbiAgICAgIC8vXG4gICAgICAvLyBBZnRlciBKSVMgWCAwMjEzIGFwcGVhcmVkLCBTaGlmdF9KSVMtMjAwNCwgRVVDLUpJU1gwMjEzIGFuZCBJU08yMDIyLUpQLTIwMDQgZm9sbG93ZWQsIHdpdGgganVzdCBjaGFuZ2luZyB0aGUgcGxhbmVzLlxuICAgICAgLy9cbiAgICAgIC8vIE92ZXJhbGwsIGl0IHNlZW1zIHRoYXQgaXQncyBhIG1lc3MgOiggaHR0cDovL3d3dzgucGxhbGEub3IuanAvdGt1Ym90YTEvdW5pY29kZS1zeW1ib2xzLW1hcDIuaHRtbFxuICAgICAgXCJzaGlmdGppc1wiOiB7XG4gICAgICAgIHR5cGU6IFwiX2RiY3NcIixcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiByZXF1aXJlX3NoaWZ0amlzMigpO1xuICAgICAgICB9LFxuICAgICAgICBlbmNvZGVBZGQ6IHsgXCJcXHhBNVwiOiA5MiwgXCJcXHUyMDNFXCI6IDEyNiB9LFxuICAgICAgICBlbmNvZGVTa2lwVmFsczogW3sgZnJvbTogNjA3MzYsIHRvOiA2MzgwOCB9XVxuICAgICAgfSxcbiAgICAgIFwiY3NzaGlmdGppc1wiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcIm1za2FuamlcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCJzamlzXCI6IFwic2hpZnRqaXNcIixcbiAgICAgIFwid2luZG93czMxalwiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcIm1zMzFqXCI6IFwic2hpZnRqaXNcIixcbiAgICAgIFwieHNqaXNcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCJ3aW5kb3dzOTMyXCI6IFwic2hpZnRqaXNcIixcbiAgICAgIFwibXM5MzJcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCI5MzJcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCJjcDkzMlwiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcImV1Y2pwXCI6IHtcbiAgICAgICAgdHlwZTogXCJfZGJjc1wiLFxuICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVpcmVfZXVjanAyKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVuY29kZUFkZDogeyBcIlxceEE1XCI6IDkyLCBcIlxcdTIwM0VcIjogMTI2IH1cbiAgICAgIH0sXG4gICAgICAvLyBUT0RPOiBLRERJIGV4dGVuc2lvbiB0byBTaGlmdF9KSVNcbiAgICAgIC8vIFRPRE86IElCTSBDQ1NJRCA5NDIgPSBDUDkzMiwgYnV0IEYwLUY5IGN1c3RvbSBjaGFycyBhbmQgb3RoZXIgY2hhciBjaGFuZ2VzLlxuICAgICAgLy8gVE9ETzogSUJNIENDU0lEIDk0MyA9IFNoaWZ0X0pJUyA9IENQOTMyIHdpdGggb3JpZ2luYWwgU2hpZnRfSklTIGxvd2VyIDEyOCBjaGFycy5cbiAgICAgIC8vID09IENoaW5lc2UvR0JLID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgIC8vIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvR0JLXG4gICAgICAvLyBXZSBtb3N0bHkgaW1wbGVtZW50IFczQyByZWNvbW1lbmRhdGlvbjogaHR0cHM6Ly93d3cudzMub3JnL1RSL2VuY29kaW5nLyNnYmstZW5jb2RlclxuICAgICAgLy8gT2xkZXN0IEdCMjMxMiAoMTk4MSwgfjc2MDAgY2hhcnMpIGlzIGEgc3Vic2V0IG9mIENQOTM2XG4gICAgICBcImdiMjMxMlwiOiBcImNwOTM2XCIsXG4gICAgICBcImdiMjMxMjgwXCI6IFwiY3A5MzZcIixcbiAgICAgIFwiZ2IyMzEyMTk4MFwiOiBcImNwOTM2XCIsXG4gICAgICBcImNzZ2IyMzEyXCI6IFwiY3A5MzZcIixcbiAgICAgIFwiY3Npc281OGdiMjMxMjgwXCI6IFwiY3A5MzZcIixcbiAgICAgIFwiZXVjY25cIjogXCJjcDkzNlwiLFxuICAgICAgLy8gTWljcm9zb2Z0J3MgQ1A5MzYgaXMgYSBzdWJzZXQgYW5kIGFwcHJveGltYXRpb24gb2YgR0JLLlxuICAgICAgXCJ3aW5kb3dzOTM2XCI6IFwiY3A5MzZcIixcbiAgICAgIFwibXM5MzZcIjogXCJjcDkzNlwiLFxuICAgICAgXCI5MzZcIjogXCJjcDkzNlwiLFxuICAgICAgXCJjcDkzNlwiOiB7XG4gICAgICAgIHR5cGU6IFwiX2RiY3NcIixcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiByZXF1aXJlX2NwOTM2MigpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gR0JLICh+MjIwMDAgY2hhcnMpIGlzIGFuIGV4dGVuc2lvbiBvZiBDUDkzNiB0aGF0IGFkZGVkIHVzZXItbWFwcGVkIGNoYXJzIGFuZCBzb21lIG90aGVyLlxuICAgICAgXCJnYmtcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9jcDkzNjIoKS5jb25jYXQocmVxdWlyZV9nYmtfYWRkZWQyKCkpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ4Z2JrXCI6IFwiZ2JrXCIsXG4gICAgICBcImlzb2lyNThcIjogXCJnYmtcIixcbiAgICAgIC8vIEdCMTgwMzAgaXMgYW4gYWxnb3JpdGhtaWMgZXh0ZW5zaW9uIG9mIEdCSy5cbiAgICAgIC8vIE1haW4gc291cmNlOiBodHRwczovL3d3dy53My5vcmcvVFIvZW5jb2RpbmcvI2diay1lbmNvZGVyXG4gICAgICAvLyBodHRwOi8vaWN1LXByb2plY3Qub3JnL2RvY3MvcGFwZXJzL2diMTgwMzAuaHRtbFxuICAgICAgLy8gaHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2RhdGEvdHJ1bmsvY2hhcnNldC9kYXRhL3htbC9nYi0xODAzMC0yMDAwLnhtbFxuICAgICAgLy8gaHR0cDovL3d3dy5raG5nYWkuY29tL2NoaW5lc2UvY2hhcm1hcC90YmxnYmsucGhwP3BhZ2U9MFxuICAgICAgXCJnYjE4MDMwXCI6IHtcbiAgICAgICAgdHlwZTogXCJfZGJjc1wiLFxuICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVpcmVfY3A5MzYyKCkuY29uY2F0KHJlcXVpcmVfZ2JrX2FkZGVkMigpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZ2IxODAzMDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVpcmVfZ2IxODAzMF9yYW5nZXMyKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVuY29kZVNraXBWYWxzOiBbMTI4XSxcbiAgICAgICAgZW5jb2RlQWRkOiB7IFwiXFx1MjBBQ1wiOiA0MTY5OSB9XG4gICAgICB9LFxuICAgICAgXCJjaGluZXNlXCI6IFwiZ2IxODAzMFwiLFxuICAgICAgLy8gPT0gS29yZWFuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgLy8gRVVDLUtSLCBLU19DXzU2MDEgYW5kIEtTIFggMTAwMSBhcmUgZXhhY3RseSB0aGUgc2FtZS5cbiAgICAgIFwid2luZG93czk0OVwiOiBcImNwOTQ5XCIsXG4gICAgICBcIm1zOTQ5XCI6IFwiY3A5NDlcIixcbiAgICAgIFwiOTQ5XCI6IFwiY3A5NDlcIixcbiAgICAgIFwiY3A5NDlcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9jcDk0OTIoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiY3NldWNrclwiOiBcImNwOTQ5XCIsXG4gICAgICBcImNza3NjNTYwMTE5ODdcIjogXCJjcDk0OVwiLFxuICAgICAgXCJldWNrclwiOiBcImNwOTQ5XCIsXG4gICAgICBcImlzb2lyMTQ5XCI6IFwiY3A5NDlcIixcbiAgICAgIFwia29yZWFuXCI6IFwiY3A5NDlcIixcbiAgICAgIFwia3NjNTYwMTE5ODdcIjogXCJjcDk0OVwiLFxuICAgICAgXCJrc2M1NjAxMTk4OVwiOiBcImNwOTQ5XCIsXG4gICAgICBcImtzYzU2MDFcIjogXCJjcDk0OVwiLFxuICAgICAgLy8gPT0gQmlnNS9UYWl3YW4vSG9uZyBLb25nID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgLy8gVGhlcmUgYXJlIGxvdHMgb2YgdGFibGVzIGZvciBCaWc1IGFuZCBjcDk1MC4gUGxlYXNlIHNlZSB0aGUgZm9sbG93aW5nIGxpbmtzIGZvciBoaXN0b3J5OlxuICAgICAgLy8gaHR0cDovL21venR3Lm9yZy9kb2NzL2JpZzUvICBodHRwOi8vd3d3LmhhaWJsZS5kZS9icnVuby9jaGFyc2V0cy9jb252ZXJzaW9uLXRhYmxlcy9CaWc1Lmh0bWxcbiAgICAgIC8vIFZhcmlhdGlvbnMsIGluIHJvdWdobHkgbnVtYmVyIG9mIGRlZmluZWQgY2hhcnM6XG4gICAgICAvLyAgKiBXaW5kb3dzIENQIDk1MDogTWljcm9zb2Z0IHZhcmlhbnQgb2YgQmlnNS4gQ2Fub25pY2FsOiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy9NQVBQSU5HUy9WRU5ET1JTL01JQ1NGVC9XSU5ET1dTL0NQOTUwLlRYVFxuICAgICAgLy8gICogV2luZG93cyBDUCA5NTE6IE1pY3Jvc29mdCB2YXJpYW50IG9mIEJpZzUtSEtTQ1MtMjAwMS4gU2VlbXMgdG8gYmUgbmV2ZXIgcHVibGljLiBodHRwOi8vbWUuYWJlbGNoZXVuZy5vcmcvYXJ0aWNsZXMvcmVzZWFyY2gvd2hhdC1pcy1jcDk1MS9cbiAgICAgIC8vICAqIEJpZzUtMjAwMyAoVGFpd2FuIHN0YW5kYXJkKSBhbG1vc3Qgc3VwZXJzZXQgb2YgY3A5NTAuXG4gICAgICAvLyAgKiBVbmljb2RlLWF0LW9uIChVQU8pIC8gTW96aWxsYSAxLjguIEZhbGxpbmcgb3V0IG9mIHVzZSBvbiB0aGUgV2ViLiBOb3Qgc3VwcG9ydGVkIGJ5IG90aGVyIGJyb3dzZXJzLlxuICAgICAgLy8gICogQmlnNS1IS1NDUyAoLTIwMDEsIC0yMDA0LCAtMjAwOCkuIEhvbmcgS29uZyBzdGFuZGFyZC4gXG4gICAgICAvLyAgICBtYW55IHVuaWNvZGUgY29kZSBwb2ludHMgbW92ZWQgZnJvbSBQVUEgdG8gU3VwcGxlbWVudGFyeSBwbGFuZSAoVSsyWFhYWCkgb3ZlciB0aGUgeWVhcnMuXG4gICAgICAvLyAgICBQbHVzLCBpdCBoYXMgNCBjb21iaW5pbmcgc2VxdWVuY2VzLlxuICAgICAgLy8gICAgU2VlbXMgdGhhdCBNb3ppbGxhIHJlZnVzZWQgdG8gc3VwcG9ydCBpdCBmb3IgMTAgeXJzLiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI0MzEgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEwMjk5XG4gICAgICAvLyAgICBiZWNhdXNlIGJpZzUtaGtzY3MgaXMgdGhlIG9ubHkgZW5jb2RpbmcgdG8gaW5jbHVkZSBhc3RyYWwgY2hhcmFjdGVycyBpbiBub24tYWxnb3JpdGhtaWMgd2F5LlxuICAgICAgLy8gICAgSW1wbGVtZW50YXRpb25zIGFyZSBub3QgY29uc2lzdGVudCB3aXRoaW4gYnJvd3NlcnM7IHNvbWV0aW1lcyBsYWJlbGVkIGFzIGp1c3QgYmlnNS5cbiAgICAgIC8vICAgIE1TIEludGVybmV0IEV4cGxvcmVyIHN3aXRjaGVzIGZyb20gYmlnNSB0byBiaWc1LWhrc2NzIHdoZW4gYSBwYXRjaCBhcHBsaWVkLlxuICAgICAgLy8gICAgR3JlYXQgZGlzY3Vzc2lvbiAmIHJlY2FwIG9mIHdoYXQncyBnb2luZyBvbiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD05MTI0NzAjYzMxXG4gICAgICAvLyAgICBJbiB0aGUgZW5jb2RlciwgaXQgbWlnaHQgbWFrZSBzZW5zZSB0byBzdXBwb3J0IGVuY29kaW5nIG9sZCBQVUEgbWFwcGluZ3MgdG8gQmlnNSBieXRlcyBzZXEtcy5cbiAgICAgIC8vICAgIE9mZmljaWFsIHNwZWM6IGh0dHA6Ly93d3cub2djaW8uZ292LmhrL2VuL2J1c2luZXNzL3RlY2hfcHJvbW90aW9uL2NjbGkvdGVybXMvZG9jLzIwMDNjbXBfMjAwOC50eHRcbiAgICAgIC8vICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cub2djaW8uZ292LmhrL3RjL2J1c2luZXNzL3RlY2hfcHJvbW90aW9uL2NjbGkvdGVybXMvZG9jL2hrc2NzLTIwMDgtYmlnNS1pc28udHh0XG4gICAgICAvLyBcbiAgICAgIC8vIEN1cnJlbnQgdW5kZXJzdGFuZGluZyBvZiBob3cgdG8gZGVhbCB3aXRoIEJpZzUoLUhLU0NTKSBpcyBpbiB0aGUgRW5jb2RpbmcgU3RhbmRhcmQsIGh0dHA6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvI2JpZzUtZW5jb2RlclxuICAgICAgLy8gVW5pY29kZSBtYXBwaW5nIChodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy9NQVBQSU5HUy9PQlNPTEVURS9FQVNUQVNJQS9PVEhFUi9CSUc1LlRYVCkgaXMgc2FpZCB0byBiZSB3cm9uZy5cbiAgICAgIFwid2luZG93czk1MFwiOiBcImNwOTUwXCIsXG4gICAgICBcIm1zOTUwXCI6IFwiY3A5NTBcIixcbiAgICAgIFwiOTUwXCI6IFwiY3A5NTBcIixcbiAgICAgIFwiY3A5NTBcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9jcDk1MDIoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIEJpZzUgaGFzIG1hbnkgdmFyaWF0aW9ucyBhbmQgaXMgYW4gZXh0ZW5zaW9uIG9mIGNwOTUwLiBXZSB1c2UgRW5jb2RpbmcgU3RhbmRhcmQncyBhcyBhIGNvbnNlbnN1cy5cbiAgICAgIFwiYmlnNVwiOiBcImJpZzVoa3Njc1wiLFxuICAgICAgXCJiaWc1aGtzY3NcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9jcDk1MDIoKS5jb25jYXQocmVxdWlyZV9iaWc1X2FkZGVkMigpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5jb2RlU2tpcFZhbHM6IFtcbiAgICAgICAgICAvLyBBbHRob3VnaCBFbmNvZGluZyBTdGFuZGFyZCBzYXlzIHdlIHNob3VsZCBhdm9pZCBlbmNvZGluZyB0byBIS1NDUyBhcmVhIChTZWUgU3RlcCAxIG9mXG4gICAgICAgICAgLy8gaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvI2luZGV4LWJpZzUtcG9pbnRlciksIHdlIHN0aWxsIGRvIGl0IHRvIGluY3JlYXNlIGNvbXBhdGliaWxpdHkgd2l0aCBJQ1UuXG4gICAgICAgICAgLy8gQnV0IGlmIGEgc2luZ2xlIHVuaWNvZGUgcG9pbnQgY2FuIGJlIGVuY29kZWQgYm90aCBhcyBIS1NDUyBhbmQgcmVndWxhciBCaWc1LCB3ZSBwcmVmZXIgdGhlIGxhdHRlci5cbiAgICAgICAgICAzNjQ1NyxcbiAgICAgICAgICAzNjQ2MyxcbiAgICAgICAgICAzNjQ3OCxcbiAgICAgICAgICAzNjUyMyxcbiAgICAgICAgICAzNjUzMixcbiAgICAgICAgICAzNjU1NyxcbiAgICAgICAgICAzNjU2MCxcbiAgICAgICAgICAzNjY5NSxcbiAgICAgICAgICAzNjcxMyxcbiAgICAgICAgICAzNjcxOCxcbiAgICAgICAgICAzNjgxMSxcbiAgICAgICAgICAzNjg2MixcbiAgICAgICAgICAzNjk3MyxcbiAgICAgICAgICAzNjk4NixcbiAgICAgICAgICAzNzA2MCxcbiAgICAgICAgICAzNzA4NCxcbiAgICAgICAgICAzNzEwNSxcbiAgICAgICAgICAzNzMxMSxcbiAgICAgICAgICAzNzU1MSxcbiAgICAgICAgICAzNzU1MixcbiAgICAgICAgICAzNzU1MyxcbiAgICAgICAgICAzNzU1NCxcbiAgICAgICAgICAzNzU4NSxcbiAgICAgICAgICAzNzk1OSxcbiAgICAgICAgICAzODA5MCxcbiAgICAgICAgICAzODM2MSxcbiAgICAgICAgICAzODY1MixcbiAgICAgICAgICAzOTI4NSxcbiAgICAgICAgICAzOTc5OCxcbiAgICAgICAgICAzOTgwMCxcbiAgICAgICAgICAzOTgwMyxcbiAgICAgICAgICAzOTg3OCxcbiAgICAgICAgICAzOTkwMixcbiAgICAgICAgICAzOTkxNixcbiAgICAgICAgICAzOTkyNixcbiAgICAgICAgICA0MDAwMixcbiAgICAgICAgICA0MDAxOSxcbiAgICAgICAgICA0MDAzNCxcbiAgICAgICAgICA0MDA0MCxcbiAgICAgICAgICA0MDA0MyxcbiAgICAgICAgICA0MDA1NSxcbiAgICAgICAgICA0MDEyNCxcbiAgICAgICAgICA0MDEyNSxcbiAgICAgICAgICA0MDE0NCxcbiAgICAgICAgICA0MDI3OSxcbiAgICAgICAgICA0MDI4MixcbiAgICAgICAgICA0MDM4OCxcbiAgICAgICAgICA0MDQzMSxcbiAgICAgICAgICA0MDQ0MyxcbiAgICAgICAgICA0MDYxNyxcbiAgICAgICAgICA0MDY4NyxcbiAgICAgICAgICA0MDcwMSxcbiAgICAgICAgICA0MDgwMCxcbiAgICAgICAgICA0MDkwNyxcbiAgICAgICAgICA0MTA3OSxcbiAgICAgICAgICA0MTE4MCxcbiAgICAgICAgICA0MTE4MyxcbiAgICAgICAgICAzNjgxMixcbiAgICAgICAgICAzNzU3NixcbiAgICAgICAgICAzODQ2OCxcbiAgICAgICAgICAzODYzNyxcbiAgICAgICAgICAvLyBTdGVwIDIgb2YgaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvI2luZGV4LWJpZzUtcG9pbnRlcjogVXNlIGxhc3QgcG9pbnRlciBmb3IgVSsyNTUwLCBVKzI1NUUsIFUrMjU2MSwgVSsyNTZBLCBVKzUzNDEsIG9yIFUrNTM0NVxuICAgICAgICAgIDQxNjM2LFxuICAgICAgICAgIDQxNjM3LFxuICAgICAgICAgIDQxNjM5LFxuICAgICAgICAgIDQxNjM4LFxuICAgICAgICAgIDQxNjc2LFxuICAgICAgICAgIDQxNjc4XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcImNuYmlnNVwiOiBcImJpZzVoa3Njc1wiLFxuICAgICAgXCJjc2JpZzVcIjogXCJiaWc1aGtzY3NcIixcbiAgICAgIFwieHhiaWc1XCI6IFwiYmlnNWhrc2NzXCJcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9pbmRleC5qc1xudmFyIHJlcXVpcmVfZW5jb2RpbmdzMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBtb2R1bGVzID0gW1xuICAgICAgcmVxdWlyZV9pbnRlcm5hbDIoKSxcbiAgICAgIHJlcXVpcmVfdXRmMzIyKCksXG4gICAgICByZXF1aXJlX3V0ZjE2MigpLFxuICAgICAgcmVxdWlyZV91dGY3MigpLFxuICAgICAgcmVxdWlyZV9zYmNzX2NvZGVjMigpLFxuICAgICAgcmVxdWlyZV9zYmNzX2RhdGEyKCksXG4gICAgICByZXF1aXJlX3NiY3NfZGF0YV9nZW5lcmF0ZWQyKCksXG4gICAgICByZXF1aXJlX2RiY3NfY29kZWMyKCksXG4gICAgICByZXF1aXJlX2RiY3NfZGF0YTIoKVxuICAgIF07XG4gICAgZm9yIChpID0gMDsgaSA8IG1vZHVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG1vZHVsZTIgPSBtb2R1bGVzW2ldO1xuICAgICAgZm9yIChlbmMgaW4gbW9kdWxlMilcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2R1bGUyLCBlbmMpKVxuICAgICAgICAgIGV4cG9ydHMyW2VuY10gPSBtb2R1bGUyW2VuY107XG4gICAgfVxuICAgIHZhciBtb2R1bGUyO1xuICAgIHZhciBlbmM7XG4gICAgdmFyIGk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvbGliL3N0cmVhbXMuanNcbnZhciByZXF1aXJlX3N0cmVhbXMyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2xpYi9zdHJlYW1zLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQnVmZmVyMiA9IHJlcXVpcmVfc2FmZXIoKS5CdWZmZXI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24oc3RyZWFtX21vZHVsZSkge1xuICAgICAgdmFyIFRyYW5zZm9ybSA9IHN0cmVhbV9tb2R1bGUuVHJhbnNmb3JtO1xuICAgICAgZnVuY3Rpb24gSWNvbnZMaXRlRW5jb2RlclN0cmVhbShjb252LCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuY29udiA9IGNvbnY7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICBvcHRpb25zLmRlY29kZVN0cmluZ3MgPSBmYWxzZTtcbiAgICAgICAgVHJhbnNmb3JtLmNhbGwodGhpcywgb3B0aW9ucyk7XG4gICAgICB9XG4gICAgICBJY29udkxpdGVFbmNvZGVyU3RyZWFtLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoVHJhbnNmb3JtLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogSWNvbnZMaXRlRW5jb2RlclN0cmVhbSB9XG4gICAgICB9KTtcbiAgICAgIEljb252TGl0ZUVuY29kZXJTdHJlYW0ucHJvdG90eXBlLl90cmFuc2Zvcm0gPSBmdW5jdGlvbihjaHVuaywgZW5jb2RpbmcsIGRvbmUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjaHVuayAhPSBcInN0cmluZ1wiKVxuICAgICAgICAgIHJldHVybiBkb25lKG5ldyBFcnJvcihcIkljb252IGVuY29kaW5nIHN0cmVhbSBuZWVkcyBzdHJpbmdzIGFzIGl0cyBpbnB1dC5cIikpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciByZXMgPSB0aGlzLmNvbnYud3JpdGUoY2h1bmspO1xuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmxlbmd0aCkgdGhpcy5wdXNoKHJlcyk7XG4gICAgICAgICAgZG9uZSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgZG9uZShlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIEljb252TGl0ZUVuY29kZXJTdHJlYW0ucHJvdG90eXBlLl9mbHVzaCA9IGZ1bmN0aW9uKGRvbmUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YXIgcmVzID0gdGhpcy5jb252LmVuZCgpO1xuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmxlbmd0aCkgdGhpcy5wdXNoKHJlcyk7XG4gICAgICAgICAgZG9uZSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgZG9uZShlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIEljb252TGl0ZUVuY29kZXJTdHJlYW0ucHJvdG90eXBlLmNvbGxlY3QgPSBmdW5jdGlvbihjYikge1xuICAgICAgICB2YXIgY2h1bmtzID0gW107XG4gICAgICAgIHRoaXMub24oXCJlcnJvclwiLCBjYik7XG4gICAgICAgIHRoaXMub24oXCJkYXRhXCIsIGZ1bmN0aW9uKGNodW5rKSB7XG4gICAgICAgICAgY2h1bmtzLnB1c2goY2h1bmspO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbihcImVuZFwiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICBjYihudWxsLCBCdWZmZXIyLmNvbmNhdChjaHVua3MpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfTtcbiAgICAgIGZ1bmN0aW9uIEljb252TGl0ZURlY29kZXJTdHJlYW0oY29udiwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLmNvbnYgPSBjb252O1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgb3B0aW9ucy5lbmNvZGluZyA9IHRoaXMuZW5jb2RpbmcgPSBcInV0ZjhcIjtcbiAgICAgICAgVHJhbnNmb3JtLmNhbGwodGhpcywgb3B0aW9ucyk7XG4gICAgICB9XG4gICAgICBJY29udkxpdGVEZWNvZGVyU3RyZWFtLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoVHJhbnNmb3JtLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogSWNvbnZMaXRlRGVjb2RlclN0cmVhbSB9XG4gICAgICB9KTtcbiAgICAgIEljb252TGl0ZURlY29kZXJTdHJlYW0ucHJvdG90eXBlLl90cmFuc2Zvcm0gPSBmdW5jdGlvbihjaHVuaywgZW5jb2RpbmcsIGRvbmUpIHtcbiAgICAgICAgaWYgKCFCdWZmZXIyLmlzQnVmZmVyKGNodW5rKSAmJiAhKGNodW5rIGluc3RhbmNlb2YgVWludDhBcnJheSkpXG4gICAgICAgICAgcmV0dXJuIGRvbmUobmV3IEVycm9yKFwiSWNvbnYgZGVjb2Rpbmcgc3RyZWFtIG5lZWRzIGJ1ZmZlcnMgYXMgaXRzIGlucHV0LlwiKSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHJlcyA9IHRoaXMuY29udi53cml0ZShjaHVuayk7XG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoKSB0aGlzLnB1c2gocmVzLCB0aGlzLmVuY29kaW5nKTtcbiAgICAgICAgICBkb25lKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBkb25lKGUpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgSWNvbnZMaXRlRGVjb2RlclN0cmVhbS5wcm90b3R5cGUuX2ZsdXNoID0gZnVuY3Rpb24oZG9uZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciByZXMgPSB0aGlzLmNvbnYuZW5kKCk7XG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoKSB0aGlzLnB1c2gocmVzLCB0aGlzLmVuY29kaW5nKTtcbiAgICAgICAgICBkb25lKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBkb25lKGUpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgSWNvbnZMaXRlRGVjb2RlclN0cmVhbS5wcm90b3R5cGUuY29sbGVjdCA9IGZ1bmN0aW9uKGNiKSB7XG4gICAgICAgIHZhciByZXMgPSBcIlwiO1xuICAgICAgICB0aGlzLm9uKFwiZXJyb3JcIiwgY2IpO1xuICAgICAgICB0aGlzLm9uKFwiZGF0YVwiLCBmdW5jdGlvbihjaHVuaykge1xuICAgICAgICAgIHJlcyArPSBjaHVuaztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub24oXCJlbmRcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgY2IobnVsbCwgcmVzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIEljb252TGl0ZUVuY29kZXJTdHJlYW0sXG4gICAgICAgIEljb252TGl0ZURlY29kZXJTdHJlYW1cbiAgICAgIH07XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9saWIvaW5kZXguanNcbnZhciByZXF1aXJlX2xpYjIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvbGliL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQnVmZmVyMiA9IHJlcXVpcmVfc2FmZXIoKS5CdWZmZXI7XG4gICAgdmFyIGJvbUhhbmRsaW5nID0gcmVxdWlyZV9ib21faGFuZGxpbmcyKCk7XG4gICAgdmFyIGljb252ID0gbW9kdWxlMi5leHBvcnRzO1xuICAgIGljb252LmVuY29kaW5ncyA9IG51bGw7XG4gICAgaWNvbnYuZGVmYXVsdENoYXJVbmljb2RlID0gXCJcXHVGRkZEXCI7XG4gICAgaWNvbnYuZGVmYXVsdENoYXJTaW5nbGVCeXRlID0gXCI/XCI7XG4gICAgaWNvbnYuZW5jb2RlID0gZnVuY3Rpb24gZW5jb2RlKHN0ciwgZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICAgIHN0ciA9IFwiXCIgKyAoc3RyIHx8IFwiXCIpO1xuICAgICAgdmFyIGVuY29kZXIgPSBpY29udi5nZXRFbmNvZGVyKGVuY29kaW5nLCBvcHRpb25zKTtcbiAgICAgIHZhciByZXMgPSBlbmNvZGVyLndyaXRlKHN0cik7XG4gICAgICB2YXIgdHJhaWwgPSBlbmNvZGVyLmVuZCgpO1xuICAgICAgcmV0dXJuIHRyYWlsICYmIHRyYWlsLmxlbmd0aCA+IDAgPyBCdWZmZXIyLmNvbmNhdChbcmVzLCB0cmFpbF0pIDogcmVzO1xuICAgIH07XG4gICAgaWNvbnYuZGVjb2RlID0gZnVuY3Rpb24gZGVjb2RlKGJ1ZiwgZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICAgIGlmICh0eXBlb2YgYnVmID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmICghaWNvbnYuc2tpcERlY29kZVdhcm5pbmcpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiSWNvbnYtbGl0ZSB3YXJuaW5nOiBkZWNvZGUoKS1pbmcgc3RyaW5ncyBpcyBkZXByZWNhdGVkLiBSZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vYXNodHVjaGtpbi9pY29udi1saXRlL3dpa2kvVXNlLUJ1ZmZlcnMtd2hlbi1kZWNvZGluZ1wiKTtcbiAgICAgICAgICBpY29udi5za2lwRGVjb2RlV2FybmluZyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgYnVmID0gQnVmZmVyMi5mcm9tKFwiXCIgKyAoYnVmIHx8IFwiXCIpLCBcImJpbmFyeVwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBkZWNvZGVyID0gaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgb3B0aW9ucyk7XG4gICAgICB2YXIgcmVzID0gZGVjb2Rlci53cml0ZShidWYpO1xuICAgICAgdmFyIHRyYWlsID0gZGVjb2Rlci5lbmQoKTtcbiAgICAgIHJldHVybiB0cmFpbCA/IHJlcyArIHRyYWlsIDogcmVzO1xuICAgIH07XG4gICAgaWNvbnYuZW5jb2RpbmdFeGlzdHMgPSBmdW5jdGlvbiBlbmNvZGluZ0V4aXN0cyhlbmMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGljb252LmdldENvZGVjKGVuYyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcbiAgICBpY29udi50b0VuY29kaW5nID0gaWNvbnYuZW5jb2RlO1xuICAgIGljb252LmZyb21FbmNvZGluZyA9IGljb252LmRlY29kZTtcbiAgICBpY29udi5fY29kZWNEYXRhQ2FjaGUgPSB7fTtcbiAgICBpY29udi5nZXRDb2RlYyA9IGZ1bmN0aW9uIGdldENvZGVjKGVuY29kaW5nKSB7XG4gICAgICBpZiAoIWljb252LmVuY29kaW5ncylcbiAgICAgICAgaWNvbnYuZW5jb2RpbmdzID0gcmVxdWlyZV9lbmNvZGluZ3MyKCk7XG4gICAgICB2YXIgZW5jID0gaWNvbnYuX2Nhbm9uaWNhbGl6ZUVuY29kaW5nKGVuY29kaW5nKTtcbiAgICAgIHZhciBjb2RlY09wdGlvbnMgPSB7fTtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIHZhciBjb2RlYyA9IGljb252Ll9jb2RlY0RhdGFDYWNoZVtlbmNdO1xuICAgICAgICBpZiAoY29kZWMpXG4gICAgICAgICAgcmV0dXJuIGNvZGVjO1xuICAgICAgICB2YXIgY29kZWNEZWYgPSBpY29udi5lbmNvZGluZ3NbZW5jXTtcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgY29kZWNEZWYpIHtcbiAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICBlbmMgPSBjb2RlY0RlZjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBjb2RlY0RlZilcbiAgICAgICAgICAgICAgY29kZWNPcHRpb25zW2tleV0gPSBjb2RlY0RlZltrZXldO1xuICAgICAgICAgICAgaWYgKCFjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lKVxuICAgICAgICAgICAgICBjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lID0gZW5jO1xuICAgICAgICAgICAgZW5jID0gY29kZWNEZWYudHlwZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgaWYgKCFjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lKVxuICAgICAgICAgICAgICBjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lID0gZW5jO1xuICAgICAgICAgICAgY29kZWMgPSBuZXcgY29kZWNEZWYoY29kZWNPcHRpb25zLCBpY29udik7XG4gICAgICAgICAgICBpY29udi5fY29kZWNEYXRhQ2FjaGVbY29kZWNPcHRpb25zLmVuY29kaW5nTmFtZV0gPSBjb2RlYztcbiAgICAgICAgICAgIHJldHVybiBjb2RlYztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5jb2Rpbmcgbm90IHJlY29nbml6ZWQ6ICdcIiArIGVuY29kaW5nICsgXCInIChzZWFyY2hlZCBhczogJ1wiICsgZW5jICsgXCInKVwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgaWNvbnYuX2Nhbm9uaWNhbGl6ZUVuY29kaW5nID0gZnVuY3Rpb24oZW5jb2RpbmcpIHtcbiAgICAgIHJldHVybiAoXCJcIiArIGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLzpcXGR7NH0kfFteMC05YS16XS9nLCBcIlwiKTtcbiAgICB9O1xuICAgIGljb252LmdldEVuY29kZXIgPSBmdW5jdGlvbiBnZXRFbmNvZGVyKGVuY29kaW5nLCBvcHRpb25zKSB7XG4gICAgICB2YXIgY29kZWMgPSBpY29udi5nZXRDb2RlYyhlbmNvZGluZyksIGVuY29kZXIgPSBuZXcgY29kZWMuZW5jb2RlcihvcHRpb25zLCBjb2RlYyk7XG4gICAgICBpZiAoY29kZWMuYm9tQXdhcmUgJiYgb3B0aW9ucyAmJiBvcHRpb25zLmFkZEJPTSlcbiAgICAgICAgZW5jb2RlciA9IG5ldyBib21IYW5kbGluZy5QcmVwZW5kQk9NKGVuY29kZXIsIG9wdGlvbnMpO1xuICAgICAgcmV0dXJuIGVuY29kZXI7XG4gICAgfTtcbiAgICBpY29udi5nZXREZWNvZGVyID0gZnVuY3Rpb24gZ2V0RGVjb2RlcihlbmNvZGluZywgb3B0aW9ucykge1xuICAgICAgdmFyIGNvZGVjID0gaWNvbnYuZ2V0Q29kZWMoZW5jb2RpbmcpLCBkZWNvZGVyID0gbmV3IGNvZGVjLmRlY29kZXIob3B0aW9ucywgY29kZWMpO1xuICAgICAgaWYgKGNvZGVjLmJvbUF3YXJlICYmICEob3B0aW9ucyAmJiBvcHRpb25zLnN0cmlwQk9NID09PSBmYWxzZSkpXG4gICAgICAgIGRlY29kZXIgPSBuZXcgYm9tSGFuZGxpbmcuU3RyaXBCT00oZGVjb2Rlciwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gZGVjb2RlcjtcbiAgICB9O1xuICAgIGljb252LmVuYWJsZVN0cmVhbWluZ0FQSSA9IGZ1bmN0aW9uIGVuYWJsZVN0cmVhbWluZ0FQSShzdHJlYW1fbW9kdWxlMikge1xuICAgICAgaWYgKGljb252LnN1cHBvcnRzU3RyZWFtcylcbiAgICAgICAgcmV0dXJuO1xuICAgICAgdmFyIHN0cmVhbXMgPSByZXF1aXJlX3N0cmVhbXMyKCkoc3RyZWFtX21vZHVsZTIpO1xuICAgICAgaWNvbnYuSWNvbnZMaXRlRW5jb2RlclN0cmVhbSA9IHN0cmVhbXMuSWNvbnZMaXRlRW5jb2RlclN0cmVhbTtcbiAgICAgIGljb252Lkljb252TGl0ZURlY29kZXJTdHJlYW0gPSBzdHJlYW1zLkljb252TGl0ZURlY29kZXJTdHJlYW07XG4gICAgICBpY29udi5lbmNvZGVTdHJlYW0gPSBmdW5jdGlvbiBlbmNvZGVTdHJlYW0oZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBpY29udi5JY29udkxpdGVFbmNvZGVyU3RyZWFtKGljb252LmdldEVuY29kZXIoZW5jb2RpbmcsIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgICAgIH07XG4gICAgICBpY29udi5kZWNvZGVTdHJlYW0gPSBmdW5jdGlvbiBkZWNvZGVTdHJlYW0oZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBpY29udi5JY29udkxpdGVEZWNvZGVyU3RyZWFtKGljb252LmdldERlY29kZXIoZW5jb2RpbmcsIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgICAgIH07XG4gICAgICBpY29udi5zdXBwb3J0c1N0cmVhbXMgPSB0cnVlO1xuICAgIH07XG4gICAgdmFyIHN0cmVhbV9tb2R1bGU7XG4gICAgdHJ5IHtcbiAgICAgIHN0cmVhbV9tb2R1bGUgPSByZXF1aXJlKFwic3RyZWFtXCIpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICB9XG4gICAgaWYgKHN0cmVhbV9tb2R1bGUgJiYgc3RyZWFtX21vZHVsZS5UcmFuc2Zvcm0pIHtcbiAgICAgIGljb252LmVuYWJsZVN0cmVhbWluZ0FQSShzdHJlYW1fbW9kdWxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWNvbnYuZW5jb2RlU3RyZWFtID0gaWNvbnYuZGVjb2RlU3RyZWFtID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImljb252LWxpdGUgU3RyZWFtaW5nIEFQSSBpcyBub3QgZW5hYmxlZC4gVXNlIGljb252LmVuYWJsZVN0cmVhbWluZ0FQSShyZXF1aXJlKCdzdHJlYW0nKSk7IHRvIGVuYWJsZSBpdC5cIik7XG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJpY29udi1saXRlIHdhcm5pbmc6IGpzIGZpbGVzIHVzZSBub24tdXRmOCBlbmNvZGluZy4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2h0dWNoa2luL2ljb252LWxpdGUvd2lraS9KYXZhc2NyaXB0LXNvdXJjZS1maWxlLWVuY29kaW5ncyBmb3IgbW9yZSBpbmZvLlwiKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbGliL3JlYWQuanNcbnZhciByZXF1aXJlX3JlYWQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbGliL3JlYWQuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmVfaHR0cF9lcnJvcnMoKTtcbiAgICB2YXIgZ2V0Qm9keSA9IHJlcXVpcmVfcmF3X2JvZHkoKTtcbiAgICB2YXIgaWNvbnYgPSByZXF1aXJlX2xpYjIoKTtcbiAgICB2YXIgb25GaW5pc2hlZCA9IHJlcXVpcmVfb25fZmluaXNoZWQoKTtcbiAgICB2YXIgemxpYiA9IHJlcXVpcmUoXCJub2RlOnpsaWJcIik7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcmVhZDtcbiAgICBmdW5jdGlvbiByZWFkKHJlcSwgcmVzLCBuZXh0LCBwYXJzZSwgZGVidWcsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBsZW5ndGg7XG4gICAgICB2YXIgb3B0cyA9IG9wdGlvbnM7XG4gICAgICB2YXIgc3RyZWFtO1xuICAgICAgdmFyIGVuY29kaW5nID0gb3B0cy5lbmNvZGluZyAhPT0gbnVsbCA/IG9wdHMuZW5jb2RpbmcgOiBudWxsO1xuICAgICAgdmFyIHZlcmlmeSA9IG9wdHMudmVyaWZ5O1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3RyZWFtID0gY29udGVudHN0cmVhbShyZXEsIGRlYnVnLCBvcHRzLmluZmxhdGUpO1xuICAgICAgICBsZW5ndGggPSBzdHJlYW0ubGVuZ3RoO1xuICAgICAgICBzdHJlYW0ubGVuZ3RoID0gdm9pZCAwO1xuICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICByZXR1cm4gbmV4dChlcnIyKTtcbiAgICAgIH1cbiAgICAgIG9wdHMubGVuZ3RoID0gbGVuZ3RoO1xuICAgICAgb3B0cy5lbmNvZGluZyA9IHZlcmlmeSA/IG51bGwgOiBlbmNvZGluZztcbiAgICAgIGlmIChvcHRzLmVuY29kaW5nID09PSBudWxsICYmIGVuY29kaW5nICE9PSBudWxsICYmICFpY29udi5lbmNvZGluZ0V4aXN0cyhlbmNvZGluZykpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoY3JlYXRlRXJyb3IoNDE1LCAndW5zdXBwb3J0ZWQgY2hhcnNldCBcIicgKyBlbmNvZGluZy50b1VwcGVyQ2FzZSgpICsgJ1wiJywge1xuICAgICAgICAgIGNoYXJzZXQ6IGVuY29kaW5nLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgdHlwZTogXCJjaGFyc2V0LnVuc3VwcG9ydGVkXCJcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgICAgZGVidWcoXCJyZWFkIGJvZHlcIik7XG4gICAgICBnZXRCb2R5KHN0cmVhbSwgb3B0cywgZnVuY3Rpb24oZXJyb3IsIGJvZHkpIHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgdmFyIF9lcnJvcjtcbiAgICAgICAgICBpZiAoZXJyb3IudHlwZSA9PT0gXCJlbmNvZGluZy51bnN1cHBvcnRlZFwiKSB7XG4gICAgICAgICAgICBfZXJyb3IgPSBjcmVhdGVFcnJvcig0MTUsICd1bnN1cHBvcnRlZCBjaGFyc2V0IFwiJyArIGVuY29kaW5nLnRvVXBwZXJDYXNlKCkgKyAnXCInLCB7XG4gICAgICAgICAgICAgIGNoYXJzZXQ6IGVuY29kaW5nLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICAgIHR5cGU6IFwiY2hhcnNldC51bnN1cHBvcnRlZFwiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgX2Vycm9yID0gY3JlYXRlRXJyb3IoNDAwLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdHJlYW0gIT09IHJlcSkge1xuICAgICAgICAgICAgcmVxLnVucGlwZSgpO1xuICAgICAgICAgICAgc3RyZWFtLmRlc3Ryb3koKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZHVtcChyZXEsIGZ1bmN0aW9uIG9uZmluaXNoZWQoKSB7XG4gICAgICAgICAgICBuZXh0KGNyZWF0ZUVycm9yKDQwMCwgX2Vycm9yKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2ZXJpZnkpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgZGVidWcoXCJ2ZXJpZnkgYm9keVwiKTtcbiAgICAgICAgICAgIHZlcmlmeShyZXEsIHJlcywgYm9keSwgZW5jb2RpbmcpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycjIpIHtcbiAgICAgICAgICAgIG5leHQoY3JlYXRlRXJyb3IoNDAzLCBlcnIyLCB7XG4gICAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICAgIHR5cGU6IGVycjIudHlwZSB8fCBcImVudGl0eS52ZXJpZnkuZmFpbGVkXCJcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHN0ciA9IGJvZHk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZGVidWcoXCJwYXJzZSBib2R5XCIpO1xuICAgICAgICAgIHN0ciA9IHR5cGVvZiBib2R5ICE9PSBcInN0cmluZ1wiICYmIGVuY29kaW5nICE9PSBudWxsID8gaWNvbnYuZGVjb2RlKGJvZHksIGVuY29kaW5nKSA6IGJvZHk7XG4gICAgICAgICAgcmVxLmJvZHkgPSBwYXJzZShzdHIsIGVuY29kaW5nKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICAgIG5leHQoY3JlYXRlRXJyb3IoNDAwLCBlcnIyLCB7XG4gICAgICAgICAgICBib2R5OiBzdHIsXG4gICAgICAgICAgICB0eXBlOiBlcnIyLnR5cGUgfHwgXCJlbnRpdHkucGFyc2UuZmFpbGVkXCJcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb250ZW50c3RyZWFtKHJlcSwgZGVidWcsIGluZmxhdGUpIHtcbiAgICAgIHZhciBlbmNvZGluZyA9IChyZXEuaGVhZGVyc1tcImNvbnRlbnQtZW5jb2RpbmdcIl0gfHwgXCJpZGVudGl0eVwiKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgdmFyIGxlbmd0aCA9IHJlcS5oZWFkZXJzW1wiY29udGVudC1sZW5ndGhcIl07XG4gICAgICBkZWJ1ZygnY29udGVudC1lbmNvZGluZyBcIiVzXCInLCBlbmNvZGluZyk7XG4gICAgICBpZiAoaW5mbGF0ZSA9PT0gZmFsc2UgJiYgZW5jb2RpbmcgIT09IFwiaWRlbnRpdHlcIikge1xuICAgICAgICB0aHJvdyBjcmVhdGVFcnJvcig0MTUsIFwiY29udGVudCBlbmNvZGluZyB1bnN1cHBvcnRlZFwiLCB7XG4gICAgICAgICAgZW5jb2RpbmcsXG4gICAgICAgICAgdHlwZTogXCJlbmNvZGluZy51bnN1cHBvcnRlZFwiXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKGVuY29kaW5nID09PSBcImlkZW50aXR5XCIpIHtcbiAgICAgICAgcmVxLmxlbmd0aCA9IGxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHJlcTtcbiAgICAgIH1cbiAgICAgIHZhciBzdHJlYW0gPSBjcmVhdGVEZWNvbXByZXNzaW9uU3RyZWFtKGVuY29kaW5nLCBkZWJ1Zyk7XG4gICAgICByZXEucGlwZShzdHJlYW0pO1xuICAgICAgcmV0dXJuIHN0cmVhbTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlRGVjb21wcmVzc2lvblN0cmVhbShlbmNvZGluZywgZGVidWcpIHtcbiAgICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgICAgY2FzZSBcImRlZmxhdGVcIjpcbiAgICAgICAgICBkZWJ1ZyhcImluZmxhdGUgYm9keVwiKTtcbiAgICAgICAgICByZXR1cm4gemxpYi5jcmVhdGVJbmZsYXRlKCk7XG4gICAgICAgIGNhc2UgXCJnemlwXCI6XG4gICAgICAgICAgZGVidWcoXCJndW56aXAgYm9keVwiKTtcbiAgICAgICAgICByZXR1cm4gemxpYi5jcmVhdGVHdW56aXAoKTtcbiAgICAgICAgY2FzZSBcImJyXCI6XG4gICAgICAgICAgZGVidWcoXCJicm90bGkgZGVjb21wcmVzcyBib2R5XCIpO1xuICAgICAgICAgIHJldHVybiB6bGliLmNyZWF0ZUJyb3RsaURlY29tcHJlc3MoKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBjcmVhdGVFcnJvcig0MTUsICd1bnN1cHBvcnRlZCBjb250ZW50IGVuY29kaW5nIFwiJyArIGVuY29kaW5nICsgJ1wiJywge1xuICAgICAgICAgICAgZW5jb2RpbmcsXG4gICAgICAgICAgICB0eXBlOiBcImVuY29kaW5nLnVuc3VwcG9ydGVkXCJcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZHVtcChyZXEsIGNhbGxiYWNrKSB7XG4gICAgICBpZiAob25GaW5pc2hlZC5pc0ZpbmlzaGVkKHJlcSkpIHtcbiAgICAgICAgY2FsbGJhY2sobnVsbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbkZpbmlzaGVkKHJlcSwgY2FsbGJhY2spO1xuICAgICAgICByZXEucmVzdW1lKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3R5cGUtaXMvbm9kZV9tb2R1bGVzL21pbWUtZGIvZGIuanNvblxudmFyIHJlcXVpcmVfZGIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvdHlwZS1pcy9ub2RlX21vZHVsZXMvbWltZS1kYi9kYi5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7XG4gICAgICBcImFwcGxpY2F0aW9uLzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uLzNncGRhc2gtcW9lLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vM2dwcC1pbXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi8zZ3BwaGFsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uLzNncHBoYWxmb3Jtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hMmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY2UrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY2UtZ3JvdXBjb21tK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY2UtdHJsK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY3RpdmVtZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWN0aXZpdHkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWlmK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9haWYranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1jZG5pK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tY2RuaWZpbHRlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWNvc3RtYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1jb3N0bWFwZmlsdGVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZGlyZWN0b3J5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRjb3N0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRjb3N0cGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRwcm9wK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRwcm9wcGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZXJyb3IranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1uZXR3b3JrbWFwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tbmV0d29ya21hcGZpbHRlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXByb3BtYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1wcm9wbWFwcGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tdGlwcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXRpcHNwYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by11cGRhdGVzdHJlYW1jb250cm9sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tdXBkYXRlc3RyZWFtcGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FuZHJldy1pbnNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHBpbnN0YWxsZXJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHBpbnN0YWxsZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcGxlZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcGxpeHdhcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHB4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBweFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBweGJ1bmRsZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcHhidW5kbGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0ZnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9tK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRvbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbWNhdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0b21jYXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b21kZWxldGVkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRvbWRlbGV0ZWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b21pY21haWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9tc3ZjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRvbXN2Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1kd2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkd2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0c2MtZHluYW1pYy1ldmVudC1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1oZWxkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVsZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1yZHQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1yc2F0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXR4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdXRoLXBvbGljeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F1dG9tYXRpb25tbC1hbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F1dG9tYXRpb25tbC1hbWx4K3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFtbHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2JhY25ldC14ZGQremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYmF0Y2gtc210cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Jkb2NcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZG9jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9iZWVwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9idWZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYzJwYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhbGVuZGFyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhbGVuZGFyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYWxsLWNvbXBsZXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYWxzLTE4NDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYXB0aXZlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYm9yLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NjY2V4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2NtcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NjeG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2N4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkYSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RmeCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkZnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktY2FwYWJpbGl0eVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWlhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLWNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWljXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLWRvbWFpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWlkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLW9iamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWlvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLXF1ZXVlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaXFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbmlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2VhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2VhLTIwMTgreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZWxsbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZndcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jaWQtZWRob2MrY2Jvci1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jaXR5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NpdHkranNvbi1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbHVlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2x1ZV9pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY21zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY25ycCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvYXAtZWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29hcC1ncm91cCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb2FwLXBheWxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb21tb25ncm91bmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb25jaXNlLXByb2JsZW0tZGV0YWlscytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29uZmVyZW5jZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nvc2Uta2V5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29zZS1rZXktc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29zZS14NTA5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3BsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3BsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jc3JhdHRyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NzdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jc3RhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nzdm0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3Utc2VlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImN1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jd2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjd2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N3bCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jd2wreWFtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N5YmVyY2FzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RhcnRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rhc2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rhc2gtcGF0Y2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rhc2hkZWx0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rhdm1vdW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGF2bW91bnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RjYS1yZnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kY2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kZWMtZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWFsb2ctaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpY29tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWNvbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWNvbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Ruc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rucytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kbnMtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RvY2Jvb2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRia1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG90cytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHBvcCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kc2twcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rzc2MrZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHNzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHNzYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkc3NjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kdmNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0K2N3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQtYnVuK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQtYnVuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdC11Y3MrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdC11Y3MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWNtYXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlY21hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZGhvYytjYm9yLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VkaS1jb25zZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWRpLXgxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VkaWZhY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZmlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbG0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbG0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5jYXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmNvbW1lbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5jb250cm9sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuZGV2aWNlaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmVjYWxsLm1zZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmxlZ2FjeWVzbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5wcm92aWRlcmluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5zZXJ2aWNlaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnN1YnNjcmliZXJpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEudmVkcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtbWEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlbW1hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbW90aW9ubWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlbW90aW9ubWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VuY2FwcnRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW50aXR5LXN0YXRlbWVudCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lcHAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lcHViK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVwdWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VzaG9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9leHBlY3QtY3QtcmVwb3J0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2V4cHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Zhc3RpbmZvc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmFzdHNvYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZkdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZkdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmhpcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZoaXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZpZG8udHJ1c3RlZC1hcHBzK2pzb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZpdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mbGV4ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZm9udC1zZm50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZm9udC10ZHBmclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBmclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZm9udC13b2ZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZnJhbWV3b3JrLWF0dHJpYnV0ZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW8ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2VvanNvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VvK2pzb24tc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VvcGFja2FnZStzcWxpdGUzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VvcG9zZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW94YWNtbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW94YWNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dsdGYtYnVmZmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctandzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ25hcC1iaW5kaW5nLWp3c2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctcm90YXRpb24tandzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ25hcC1iaW5kaW5nLXJvdGF0aW9uLWp3c2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ncHgreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdweFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ3JpYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2d4ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3hmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3pcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2gyMjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9oZWxkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaGpzb25cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJoanNvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaGw3djIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2h0dHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9oeXBlcnN0dWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0a1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaWJlLWtleS1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaWJlLXBrZy1yZXBseSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2liZS1wcC1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaWdlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ltLWlzY29tcG9zaW5nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmRleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4LmNtZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4Lm9ialwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4LnJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXgudm5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5rbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpbmtcIiwgXCJpbmttbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW90cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lwZml4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXBmaXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lzdXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pdHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpdHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphclwiLCBcIndhclwiLCBcImVhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamF2YS1zZXJpYWxpemVkLW9iamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qYXZhLXZtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGFzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamF2YXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qZjJmZWVkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pvc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qb3NlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pyZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc2NhbGVuZGFyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzY29udGFjdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzb25cIiwgXCJtYXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb24tcGF0Y2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbi1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29uNVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzb241XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29ubWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc29ubWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb25wYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vandrK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2p3ay1zZXQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vandrLXNldCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9rcG1sLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9rcG1sLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNvbmxkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sZ3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsZ3JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xpbmstZm9ybWF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGlua3NldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xpbmtzZXQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbG9hZC1jb250cm9sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbG9nb3V0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xvc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsb3N0eG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sb3N0c3luYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xwZit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9seGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYWMtYmluaGV4NDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJocXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hYy1jb21wYWN0cHJvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hY3dyaXRlaWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYWRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWFkc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFuaWZlc3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJtYW5pZmVzdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1yY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFyY3htbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1yY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hdGhlbWF0aWNhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWFcIiwgXCJuYlwiLCBcIm1iXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXRobWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYXRobWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hdGhtbC1jb250ZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWF0aG1sLXByZXNlbnRhdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtYXNzb2NpYXRlZC1wcm9jZWR1cmUtZGVzY3JpcHRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLWRlcmVnaXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLWVudmVsb3BlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1tc2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLW1zay1yZXNwb25zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtcHJvdGVjdGlvbi1kZXNjcmlwdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtcmVjZXB0aW9uLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtcmVnaXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXJlZ2lzdGVyLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1zY2hlZHVsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtdXNlci1zZXJ2aWNlLWRlc2NyaXB0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJveFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ib3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21lZGlhLXBvbGljeS1kYXRhc2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZWRpYV9jb250cm9sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWVkaWFzZXJ2ZXJjb250cm9sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNjbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21lcmdlLXBhdGNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ldGFsaW5rK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZXRhbGlua1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWV0YWxpbms0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWV0YTRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ldHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9taWtleVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21pcGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9taXNzaW5nLWJsb2NrcytjYm9yLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21tdC1hZWkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYWVpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tbXQtdXNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXVzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9kcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1vZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21vc3Mta2V5c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21vc3Mtc2lnbmF0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9zc2tleS1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9zc2tleS1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXAyMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm0yMVwiLCBcIm1wMjFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wNFwiLCBcIm1wZzRcIiwgXCJtcDRzXCIsIFwibTRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcGVnNC1nZW5lcmljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXBlZzQtaW9kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXBlZzQtaW9kLXhtdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21yYi1jb25zdW1lcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21yYi1wdWJsaXNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXNjLWl2cit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXNjLW1peGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc2l4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNpeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXNpeGJ1bmRsZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zaXhidW5kbGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21zd29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvY1wiLCBcImRvdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXVkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL211bHRpcGFydC1jb3JlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXhmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uLXF1YWRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL24tdHJpcGxlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm50XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uYXNkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmV3cy1jaGVja2dyb3Vwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVMtQVNDSUlcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmV3cy1ncm91cGluZm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVTLUFTQ0lJXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25ld3MtdHJhbnNtaXNzaW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmxzbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ub2RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2pzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vYXV0aC1hdXRoei1yZXErand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2JsaXZpb3VzLWRucy1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2NzcC1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2NzcC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmluXCIsIFwiZG1zXCIsIFwibHJmXCIsIFwibWFyXCIsIFwic29cIiwgXCJkaXN0XCIsIFwiZGlzdHpcIiwgXCJwa2dcIiwgXCJicGtcIiwgXCJkdW1wXCIsIFwiZWxjXCIsIFwiZGVwbG95XCIsIFwiZXhlXCIsIFwiZGxsXCIsIFwiZGViXCIsIFwiZG1nXCIsIFwiaXNvXCIsIFwiaW1nXCIsIFwibXNpXCIsIFwibXNwXCIsIFwibXNtXCIsIFwiYnVmZmVyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vZGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29kbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29keFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29lYnBzLXBhY2thZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29nZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9neFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2h0dHAta2V5c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29tZG9jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvbWRvY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb25lbm90ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib25ldG9jXCIsIFwib25ldG9jMlwiLCBcIm9uZXRtcFwiLCBcIm9uZXBrZ1wiLCBcIm9uZVwiLCBcIm9uZWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29wYy1ub2Rlc2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb3Njb3JlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb3hwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm94cHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3AyMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3AyMSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wMnAtb3ZlcmxheSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJlbG9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bhc3Nwb3J0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGF0Y2gtb3BzLWVycm9yK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGVyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BkeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BlbS1jZXJ0aWZpY2F0ZS1jaGFpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BncC1lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZ3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BncC1rZXlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2lnXCIsIFwiYXNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9waWNzLXJ1bGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BpZGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BpZGYtZGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczEwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDEwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzNy1taW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDdtXCIsIFwicDdjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzNy1zaWduYXR1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwN3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3M4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3M4LWVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXgtYXR0ci1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXgtY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeC1jcmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcmxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXgtcGtpcGF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBraXBhdGhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXhjbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwa2lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bscyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcG9jLXNldHRpbmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wb3N0c2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaVwiLCBcImVwc1wiLCBcInBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcHNwLXRyYWNrZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJpdmF0ZS10b2tlbi1pc3N1ZXItZGlyZWN0b3J5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJpdmF0ZS10b2tlbi1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJpdmF0ZS10b2tlbi1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Byb2JsZW0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJvYmxlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Byb3ZlbmFuY2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcm92eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJvdmlkZWQtY2xhaW1zK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5hbHZlc3RyYW5kLnRpdHJheC1zaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5jd3dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjd3dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5jeW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIjctQklUXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5ocHViK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLWRvY3VtZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtZXhlY3V0YWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLW9iamVjdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1vYmplY3QranNvbi1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1vYmplY3QreWFtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLXN0cnVjdHVyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5tYXlmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLm5wcmVuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5wbHVja2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLnJkZi14bWwtY3J5cHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMudmNmYnppcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMueHNmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wc2tjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHNrY3htbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHZkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3FzaWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yYW1sK3lhbWxcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JhcHRvcmZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JkYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmRmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmRmXCIsIFwib3dsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZWdpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmlmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZWxheC1uZy1jb21wYWN0LXN5bnRheFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJuY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVtb3RlLXByaW50aW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZXB1dG9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jlc29sdmUtcmVzcG9uc2Urand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVzb3VyY2UtbGlzdHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVzb3VyY2UtbGlzdHMtZGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJsZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmZjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmlzY29zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmxtaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jscy1zZXJ2aWNlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yb3V0ZS1hcGQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXBkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yb3V0ZS1zLXRzaWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JvdXRlLXVzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJ1c2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktY2hlY2tsaXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1naG9zdGJ1c3RlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnYnJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktbWFuaWZlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktcHVibGljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLXJvYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJvYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1zaWduZWQtdGFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS11cGRvd25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yc2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnNzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3J0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ydHBsb29wYmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3J0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NhbWxhc3NlcnRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYW1sbWV0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYXJpZitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYXJpZi1leHRlcm5hbC1wcm9wZXJ0aWVzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NiZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NibWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzYm1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY2FpcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjaW0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2N2cC1jdi1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2NxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY3ZwLWN2LXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2NzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY3ZwLXZwLXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcHFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjdnAtdnAtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NkcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VjZXZlbnQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VubWx4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbC1ldGNoK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbC1ldGNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sLWV4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlbnNtbCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vuc21sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlbnNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbnNtbHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlbnNtbC1leGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXAtZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vzc2lvbi1pbmZvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2V0LXBheW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXQtcGF5bWVudC1pbml0aWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2V0cGF5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXQtcmVnaXN0cmF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2V0LXJlZ2lzdHJhdGlvbi1pbml0aWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2V0cmVnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZ21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2dtbC1vcGVuLWNhdGFsb2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpZXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2l2XCIsIFwic2lldmVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpbXBsZS1maWx0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaW1wbGUtbWVzc2FnZS1zdW1tYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2ltcGxlc3ltYm9sY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2lwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc21pbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc21pbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNtaVwiLCBcInNtaWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NtcHRlMzM2bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NvYXArZmFzdGluZm9zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zb2FwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3BhcnFsLXF1ZXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NwYXJxbC1yZXN1bHRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3J4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcGR4K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NwaXJpdHMtZXZlbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NyZ3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncmFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3J4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NydSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNydVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3NkbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3NkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3Nsa2V5bG9nZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NzbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzc21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zdDIxMTAtNDFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zdGl4K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N0cmF0dW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zd2lkK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zd2lkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3dpZHRhZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1hcGV4LXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtYXBleC11cGRhdGUtY29uZmlybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtY29tbXVuaXR5LXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtY29tbXVuaXR5LXVwZGF0ZS1jb25maXJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1lcnJvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtc2VxdWVuY2UtYWRqdXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1zZXF1ZW5jZS1hZGp1c3QtY29uZmlybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtc3RhdHVzLXF1ZXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1zdGF0dXMtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YXJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RheGlpK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RlaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRlaVwiLCBcInRlaWNvcnB1c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGV0cmFfaXNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGhyYXVkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGZpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90aW1lc3RhbXAtcXVlcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90aW1lc3RhbXAtcmVwbHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90aW1lc3RhbXBlZC1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90bHNycHQrZ3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Rsc3JwdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90bStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90bmF1dGhsaXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdG9jK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90b2tlbi1pbnRyb3NwZWN0aW9uK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RvbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRvbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RyaWNrbGUtaWNlLXNkcGZyYWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHJpZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJ1c3QtY2hhaW4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJ1c3QtbWFyaytqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cnVzdC1tYXJrLWRlbGVnYXRpb24rand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHRtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR0bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3R2ZS10cmlnZ2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHppZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3R6aWYtbGVhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VianNvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVialwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdWNjcytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdWpjcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91bHBmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91cmMtZ3Jwc2hlZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91cmMtcmVzc2hlZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc2hlZXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VyYy10YXJnZXRkZXNjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VyYy11aXNvY2tldGRlc2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjK2Nvc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Yytqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Y2FyZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Y2FyZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZlbW1pXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdml2aWRlbmNlLnNjcmlwdGZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4xMDAwbWluZHMuZGVjaXNpb24tbW9kZWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIxa21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4xb2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjM2EreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzNhY2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzNjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjOCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXYyeC1sb2NhbC1zZXJ2aWNlLWluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWduYXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z3NhMnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z3NhMngtbG9jYWwtc2VydmljZS1pbmZvcm1hdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc3YyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc3YyeC1sb2NhbC1zZXJ2aWNlLWluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuYWNjZXNzLXRyYW5zZmVyLWV2ZW50cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmJzZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmNycyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmN1cnJlbnQtbG9jYXRpb24tZGlzY292ZXJ5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuZ21vcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmd0cGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5pbnRlcndvcmtpbmctZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmxwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jLXNpZ25hbGxpbmctZWFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLWFmZmlsaWF0aW9uLWNvbW1hbmQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1tc2dzdG9yZS1jdHJsLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtcGF5bG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1yZWdyb3VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXNlcnZpY2UtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXNpZ25hbGxpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtdWUtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXVzZXItcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWFmZmlsaWF0aW9uLWNvbW1hbmQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1mbG9vci1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWxvY2F0aW9uLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1tYm1zLXVzYWdlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1yZWdyb3VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtc2VydmljZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1zaWduZWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC11ZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC11ZS1pbml0LWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVzZXItcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tYWZmaWxpYXRpb24tY29tbWFuZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8taW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tbG9jYXRpb24taW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tbWJtcy11c2FnZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1yZWdyb3VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdHJhbnNtaXNzaW9uLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXVlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdXNlci1wcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWlkLWNhbGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5uZ2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGZjcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpYy1idy1sYXJnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGljLWJ3LXNtYWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHNiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctdmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHZiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waW5hcHAtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnMxYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLWdyb3VwLWRvYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtbG9jYXRpb24taW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtbWJtcy11c2FnZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1uZXR3b3JrLXFvcy1tYW5hZ2VtZW50LWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLXVlLWNvbmZpZy1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC11bmljYXN0LWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLXVzZXItcHJvZmlsZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc21zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc21zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc3J2Y2MtZXh0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc3J2Y2MtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnN0YXRlLWFuZC1ldmVudC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAudXNzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnYyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnZhZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAyLmJjbWNzaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwMi5zbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcDIudGNhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRjYXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zbGlnaHRzc29mdHdhcmUuaW1hZ2VzY2FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNtLnBvc3QtaXQtbm90ZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwd25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY2NwYWMuc2ltcGx5LmFzb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFzb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjY3BhYy5zaW1wbHkuaW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaW1wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWNtLmFkZHJlc3N4ZmVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY20uY2hhdGJvdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWN1Y29ib2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY3VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY3Vjb3JwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRjXCIsIFwiYWN1dGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5haXItYXBwbGljYXRpb24taW5zdGFsbGVyLXBhY2thZ2UremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5mbGFzaC5tb3ZpZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5mb3Jtc2NlbnRyYWwuZmNkdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZjZHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5meHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmeHBcIiwgXCJmeHBsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUucGFydGlhbC11cGxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUueGRwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUueGZkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGZkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFldGhlci5pbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5hZnBsaW5lZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmFmcGxpbmVkYXRhLXBhZ2VkZWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5jbW9jYS1jbXJlc291cmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuZm9jYS1jaGFyc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuZm9jYS1jb2RlZGZvbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5mb2NhLWNvZGVwYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1jbXRhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtZm9ybWRlZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLW1lZGl1bW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLW9iamVjdGNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLW92ZXJsYXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1wYWdlc2VnbWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZ2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5haC1iYXJjb2RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWhlYWQuc3BhY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaGVhZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFpcnppcC5maWxlc2VjdXJlLmF6ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF6ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFpcnppcC5maWxlc2VjdXJlLmF6c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF6c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtYWRldXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtYXpvbi5lYm9va1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXp3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1hem9uLm1vYmk4LWVib29rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtZXJpY2FuZHluYW1pY3MuYWNjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1pZ2EuYW1pXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYW1pXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW11bmRzZW4ubWF6ZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbmRyb2lkLm90YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbmRyb2lkLnBhY2thZ2UtYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW5raVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbnNlci13ZWItY2VydGlmaWNhdGUtaXNzdWUtaW5pdGlhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNpaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFuc2VyLXdlYi1mdW5kcy10cmFuc2Zlci1pbml0aWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmdGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbnRpeC5nYW1lLWNvbXBvbmVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS5hcnJvdy5maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS5hcnJvdy5zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnBhcnF1ZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnRocmlmdC5iaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnRocmlmdC5jb21wYWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS50aHJpZnQuanNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGV4bGFuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwbGV4dG9yLndhcnJwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcG90aGVrZW5kZS5yZXNlcnZhdGlvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUuaW5zdGFsbGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBrZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLmtleW5vdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrZXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTN1OFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLm51bWJlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJudW1iZXJzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUucGFnZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwYWdlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLnBrcGFzc1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBrcGFzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFyYXN0cmEuc3dpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXJpc3RhbmV0d29ya3Muc3dpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3dpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXJ0aXNhbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXJ0c3F1YXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFzdHJhZWEtc29mdHdhcmUuaW90YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlvdGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdWRpb2dyYXBoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWVwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXV0b2Rlc2suZmJ4XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmJ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXV0b3BhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXZhbG9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdmlzdGFyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJhbHNhbWlxLmJtbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmFsc2FtaXEuYm1wclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYW5hbmEtYWNjb3VudGluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYmYudXNwLmVycm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AubXNnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AubXNnK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iZWtpdHp1ci1zdGVjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmVsaWdodHNvZnQubGh6ZCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmVsaWdodHNvZnQubGh6bCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmludC5tZWQtY29udGVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iaW9wYXgucmRmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJsaW5rLWlkYi12YWx1ZS13cmFwcGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJsdWVpY2UubXVsdGlwYXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmx1ZXRvb3RoLmVwLm9vYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ibHVldG9vdGgubGUub29iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJtaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJtaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJwZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5icGYzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJ1c2luZXNzb2JqZWN0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJlcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJ5dS51YXBpK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iemlwM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jM3ZvYy5zY2hlZHVsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jYWItanNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jYW5vbi1jcGRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNhbm9uLWxpcHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2FwYXN5c3RlbXMtcGcranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNlbmRpby50aGlubGluYy5jbGllbnRjb25mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNlbnR1cnktc3lzdGVtcy50Y3Bfc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNoZW1kcmF3K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2R4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaGVzcy1wZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2hpcG51dHMua2FyYW9rZS1tbWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaWVkaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaW5kZXJlbGxhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2R5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2lycGFjay5pc2RuLWV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaXRhdGlvbnN0eWxlcy5zdHlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsYXltb3JlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2xvYW50by5ycDlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycDlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbG9uay5jNGdyb3VwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYzRnXCIsIFwiYzRkXCIsIFwiYzRmXCIsIFwiYzRwXCIsIFwiYzR1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2x1ZXRydXN0LmNhcnRvbW9iaWxlLWNvbmZpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImMxMWFtY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsdWV0cnVzdC5jYXJ0b21vYmlsZS1jb25maWctcGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYzExYW16XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY25jZi5oZWxtLmNoYXJ0LmNvbnRlbnQudjEudGFyK2d6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY25jZi5oZWxtLmNoYXJ0LnByb3ZlbmFuY2UudjEucHJvdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbmNmLmhlbG0uY29uZmlnLnYxK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2ZmZWVzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuZG9jdW1lbnQtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMucHJlc2VudGF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnByZXNlbnRhdGlvbi10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5zcHJlYWRzaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5zcHJlYWRzaGVldC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uLmRvYytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGVjdGlvbi5uZXh0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb21pY2Jvb2sremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbWljYm9vay1yYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29tbWVyY2UtYmF0dGVsbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29tbW9uc3BhY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb250YWN0LmNtc2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZGJjbXNnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29yZW9zLmlnbml0aW9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb3Ntb2NhbGxlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNtY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGt4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci5rZXlib2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa2tcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLnBhbGV0dGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGtwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLndvcmRiYW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xrd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaXRpY2FsdG9vbHMud2JzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2JzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3J5cHRpaS5waXBlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG8tc2hhZGUtZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG9tYXRvci5lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3J5cHRvbWF0b3IudmF1bHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3RjLXBvc21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3RjdC53cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXBkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXBvc3RzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1wcGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXJhc3RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXJhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cmwuY2FyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsLnBjdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN5YW4uZGVhbi5yb290K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN5YmFua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jeWNsb25lZHgranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN5Y2xvbmVkeCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kMmwuY291cnNlcGFja2FnZTFwMCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZDNtLWRhdGFzZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZDNtLXByb2JsZW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGFydFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhdGEtdmlzaW9uLnJkelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJkelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhdGFsb2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YXBhY2thZ2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhdGFyZXNvdXJjZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGJmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGJmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGNtcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRjbXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWJpYW4uYmluYXJ5LXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZmXCIsIFwidXZ2ZlwiLCBcInV2ZFwiLCBcInV2dmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLnR0bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnRcIiwgXCJ1dnZ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS51bnNwZWNpZmllZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2eFwiLCBcInV2dnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLnppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2elwiLCBcInV2dnpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZW5vdm8uZmNzZWxheW91dC1saW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmVfbGF1bmNoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVzbXVtZS5tb3ZpZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kaXItYmkucGxhdGUtZGwtbm9zdWZmaXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG0uZGVsZWdhdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kbmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkbmFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb2N1bWVudCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG9sYnkubWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tb2JpbGUuMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tb2JpbGUuMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb3JlbWlyLnNjb3JlY2xvdWQtYmluYXJ5LWRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRwZ3JhcGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcGdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kcmVhbWZhY3RvcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZmFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHJpdmUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRzLWtleXBvaW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrcHh4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHRnLmxvY2FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR0Zy5sb2NhbC5mbGFzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdGcubG9jYWwuaHRtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuYWl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWl0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmR2YmlzbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZHZialwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZXNnY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjZGZ0bm90aWZhY2Nlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dhY2Nlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dhY2Nlc3MyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjZXNncGRkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjcm9hbWluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXB0di5hbGZlYy1iYXNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcHR2LmFsZmVjLWVuaGFuY2VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1hZ2dyZWdhdGUtcm9vdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtY29udGFpbmVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1nZW5lcmljK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1tc2dsaXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1yZWdpc3RyYXRpb24tcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtaWEtcmVnaXN0cmF0aW9uLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pbml0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5wZnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLnNlcnZpY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5keHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHluYWdlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdlb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR6clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lYXN5a2FyYW9rZS5jZGdkb3dubG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY2Rpcy11cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNpcC5ybHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNsaXBzZS5kaXR0bytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmNoYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWFnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmZpbGVyZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5maWxldXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5zZXJpZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLnNlcmllc3JlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLnNlcmllc3VwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lZmkuaW1nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVmaS5pc29cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWxuK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lbWNsaWVudC5hY2Nlc3NyZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVubGl2ZW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lbnBoYXNlLmVudm95XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwcmludHMuZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5lc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5tc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5xdWlja2FuaW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicWFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24uc2FsdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLnNzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVyaWNzc29uLnF1aWNrY2FsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcm9mc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lc3Bhc3MtZXNwYXNzK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lc3ppZ25vMyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVzM1wiLCBcImV0M1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYW9jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYXNpYy1lK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmFzaWMtcyt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5jdWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2Y29tbWFuZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZkaXNjb3ZlcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2cHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtYmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2FkLWNvZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtbnB2cit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzZXJ2aWNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnN5bmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2dWVwcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kubWNpZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLm1oZWc1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kub3ZlcmxvYWQtY29udHJvbC1wb2xpY3ktZGF0YXNldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnBzdG4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5zY2kreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5zaW1zZXJ2cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnRpbWVzdGFtcC10b2tlblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnRzbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnRzbC5kZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXUua2FzcGFyaWFuLmNhcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXVkb3JhLmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXZvbHYuZWNpZy5wcm9maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV2b2x2LmVjaWcuc2V0dGluZ3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXZvbHYuZWNpZy50aGVtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5leHN0cmVhbS1lbXBvd2VyK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5leHN0cmVhbS1wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV6cGl4LWFsYnVtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXoyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXpwaXgtcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV6M1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmYtc2VjdXJlLm1vYmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mYW1pbHlzZWFyY2guZ2VkY29tK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mYXN0Y29weS1kaXNrLWltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5tc2VlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zZWVkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5zZWVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VlZFwiLCBcImRhdGFsZXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5zdGF0aW9ueG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiWE1MLUJBU0VEXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZmc25zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZpY2xhYi5mbGIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZpbG1pdC56ZmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmludHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmlyZW1vbmtleXMuY2xvdWRjZWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZsb2dyYXBoaXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncGhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mbHV4dGltZS5jbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnRjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZm9udC1mb250Zm9yZ2Utc2ZkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZyYW1lbWFrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbVwiLCBcImZyYW1lXCIsIFwibWFrZXJcIiwgXCJib29rXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnJlZWxvZy5jb21pY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mcm9nYW5zLmZuY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZm5jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnJvZ2Fucy5sdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZzYy53ZWJsYXVuY2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppZmlsbS5mYi5kb2N1d29ya3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuZG9jdXdvcmtzLmJpbmRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppZmlsbS5mYi5kb2N1d29ya3MuY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmpmaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2FzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5czJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYTJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9hM1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXNncFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZnNVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXNwcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiaDJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guYXJ0LWV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5hcnQ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kZGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGR3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRvY3V3b3Jrcy5iaW5kZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzLmNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guaGJwbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdXQtbWlzbmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1dG9pbitjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1dG9pbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnV6enlzaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ6c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdhNGdoLnBhc3Nwb3J0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW5vbWF0aXgudHV4ZWRvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHhkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2Vub3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50aWNzLmdyZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLmNhdG1ldGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5lYnVpbGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLmVjbGFzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28uZ3BrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28ubWFuaWZlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLnBrZ21ldGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby54cGFrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9jdWJlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEuZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdnYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLnBpbmJvYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLnNsaWRlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdnc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLnRvb2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZ3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9tZXRyeS1leHBsb3JlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdleFwiLCBcImdyZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb25leHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJneHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9wbGFuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZzJ3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2Vvc3BhY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnM3dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZXJiZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2xvYmFscGxhdGZvcm0uY2FyZC1jb250ZW50LW1ndFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbG9iYWxwbGF0Zm9ybS5jYXJkLWNvbnRlbnQtbWd0LXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdteFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdudS50YWxlci5leGNoYW5nZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ251LnRhbGVyLm1lcmNoYW50K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5hdWRpb1wiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmRvY3VtZW50XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2RvY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmRyYXdpbmdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZHJhd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmRyaXZlLXNka1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5maWxlXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZm9sZGVyXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZvcm1cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZm9ybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZ1c2lvbnRhYmxlXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuamFtXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2phbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLm1haWwtbGF5b3V0XCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMubWFwXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ21hcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnBob3RvXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMucHJlc2VudGF0aW9uXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NsaWRlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNjcmlwdFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdzY3JpcHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5zaG9ydGN1dFwiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNpdGVcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2l0ZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNwcmVhZHNoZWV0XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NoZWV0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMudW5rbm93blwiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnZpZGVvXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImttbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1lYXJ0aC5rbXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrbXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb3Yuc2suZS1mb3JtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ292LnNrLmUtZm9ybSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ292LnNrLnhtbGRhdGFjb250YWluZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZGNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3B4c2VlLm1hcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncmFmZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncWZcIiwgXCJncXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncmlkbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWFjY291bnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaGVscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdoZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1pZGVudGl0eS1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2ltXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWluamVjdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3J2XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXRvb2wtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd0bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS10b29sLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHBsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXZjYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGFsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoYWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYW5kaGVsZC1lbnRlcnRhaW5tZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiem1tXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGJjaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhiY2lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGNsLWJpcmVwb3J0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oZHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGVyb2t1K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oaGUubGVzc29uLXBsYXllclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLWhwZ2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJocGdsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBpZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhwaWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1ocHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJocHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1qbHl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamx0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtcGNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGNsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtcGNseGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY2x4bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhzbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5odHRwaG9uZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oeWRyb3N0YXRpeC5zb2YtZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNmZC1oZHN0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh5cGVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oeXBlci1pdGVtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oeXBlcmRyaXZlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oem4tM2QtY3Jvc3N3b3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5hZnBsaW5lZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5lbGVjdHJvbmljLW1lZGlhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5taW5pcGF5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXB5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLm1vZGNhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWZwXCIsIFwibGlzdGFmcFwiLCBcImxpc3QzODIwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLnJpZ2h0cy1tYW5hZ2VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLnNlY3VyZS1jb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmljY3Byb2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY2NcIiwgXCJpY21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pZWVlLjE5MDVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWdsb2FkZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZ2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbWFnZW1ldGVyLmZvbGRlcit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1hZ2VtZXRlci5pbWFnZSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1tZXJ2aXNpb24taXZwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXZwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1tZXJ2aXNpb24taXZ1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXZ1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmltc2NjdjFwMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMuaW1zY2N2MXAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmxpcy52Mi5yZXN1bHQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbGNvbnN1bWVycHJvZmlsZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29scHJveHkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHByb3h5LmlkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xzZXR0aW5ncytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sc2V0dGluZ3Muc2ltcGxlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvcm1lZGNvbnRyb2wucm1zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluZm9ybWl4LXZpc2lvbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluZm90ZWNoLnByb2plY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3RlY2gucHJvamVjdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbm5vcGF0aC53YW1wLm5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnNvcnMuaWdtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWdtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJjb24uZm9ybW5ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwd1wiLCBcInhweFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludGVyZ2VvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaTJnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJ0cnVzdC5kaWdpYm94XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludGVydHJ1c3Qubm5jcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnR1LnFib1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInFib1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludHUucWZ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicWZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBmcy5pcG5zLXJlY29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGxkLmNhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGxkLmRhZy1jYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwbGQuZGFnLWpzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBsZC5yYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5jYXRhbG9naXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLmNvbmNlcHRpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIua25vd2xlZGdlaXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLm5ld3NpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIubmV3c21lc3NhZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5wYWNrYWdlaXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLnBsYW5uaW5naXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHVucGx1Z2dlZC5yY3Byb2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyY3Byb2ZpbGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcmVwb3NpdG9yeS5wYWNrYWdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXJwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXMteHByXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHByXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXNhYy5mY3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmY3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pc28xMTc4My0xMCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtZGlyZWN0b3J5LXNlcnZpY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtanBuc3RvcmUtd2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXBheW1lbnQtd2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXJlZ2lzdHJhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1yZWdpc3RyYXRpb24td2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXNldHN0b3JlLXdha2V1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC12ZXJpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtdmVyaWZpY2F0aW9uLXdha2V1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qY3AuamF2YW1lLm1pZGxldC1ybXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qaXNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamlzcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmpvb3N0LmpvZGEtYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpvZGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qc2suaXNkbi1uZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2Fob290elwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImt0elwiLCBcImt0clwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rYXJib25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrYXJib25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2NoYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2hydFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rZm9ybXVsYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtmb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5raXZpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rb250b3VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia29uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtwcmVzZW50ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrcHJcIiwgXCJrcHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua3NwcmVhZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtzcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rd29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImt3ZFwiLCBcImt3dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZW5hbWVhYXBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHRrZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtleW1hbi5rbXAremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtleW1hbi5rbXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2lkc3BpcmF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2lhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2luYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrbmVcIiwgXCJrbnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rb2FuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2twXCIsIFwic2tkXCIsIFwic2t0XCIsIFwic2ttXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua29kYWstZGVzY3JpcHRvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNzZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxhc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sYXMubGFzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sYXMubGFzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGFzeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGFzemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxkZXYucHJvZHVjdGxpY2Vuc2luZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sZWFwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5saWJlcnR5LXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGxhbWFncmFwaGljcy5saWZlLWJhbGFuY2UuZGVza3RvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxiZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxsYW1hZ3JhcGhpY3MubGlmZS1iYWxhbmNlLmV4Y2hhbmdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGJlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG9naXBpcGUuY2lyY3VpdCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG9vbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy0xLTItM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjEyM1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLWFwcHJvYWNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXByXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtZnJlZWxhbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtbm90ZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1vcmdhbml6ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvcmdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1zY3JlZW5jYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy13b3JkcHJvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHdwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFjcG9ydHMucG9ydHBrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBvcnRwa2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXBib3gtdmVjdG9yLXRpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLmFjdGlvbnRva2VuK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0uY29uZnRva2VuK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0ubGljZW5zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLm1kY2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFzb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1heGFyLmFyY2hpdmUuM3R6K3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXhtaW5kLm1heG1pbmQtZGJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1kbC1tYnNkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZWRjYWxjZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1jMVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lZGlhc3RhdGlvbi5jZGtleVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNka2V5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVkaWNhbGhvbG9kZWNrLnJlY29yZHhyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lcmlkaWFuLXNsaW5nc2hvdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZXJtYWlkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1mZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtd2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZm1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm8ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3JvZ3JhZnguZmxvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmxvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9ncmFmeC5pZ3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZ3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb3NvZnQucG9ydGFibGUtZXhlY3V0YWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb3NvZnQud2luZG93cy50aHVtYm5haWwtY2FjaGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWllbGUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1pZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pbmlzb2Z0LWhwMzAwMC1zYXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pdHN1YmlzaGkubWlzdHktZ3VhcmQudHJ1c3R3ZWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLmRhZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRhZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5kaXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkaXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMubWJrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWJrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1xeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1xeVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5tc2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMucGxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLnR4ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR4ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9waHVuLmFwcGxpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBuXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9waHVuLmNlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5hZHNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5maXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmdvdGFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5rbXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLnR0Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUud2VtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmlwcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW96aWxsYS54dWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4dWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy0zbWZkb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1hcnRnYWxyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNpbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWFzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1jYWItY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNhYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWNvbG9yLmljY3Byb2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsc1wiLCBcInhsbVwiLCBcInhsYVwiLCBcInhsY1wiLCBcInhsdFwiLCBcInhsd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5iaW5hcnkubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxzYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsc21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50ZW1wbGF0ZS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZm9udG9iamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW90XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtaHRtbGhlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1pbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpbXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1scm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJscm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuYWN0aXZleCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2V0aGVtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRobXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vcGVudHlwZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtb3V0bG9va1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBhY2thZ2Uub2JmdXNjYXRlZC1vcGVudHlwZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBraS5zZWNjYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBraS5zdGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBsYXlyZWFkeS5pbml0aWF0b3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwdFwiLCBcInBwc1wiLCBcInBvdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuYWRkaW4ubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHBhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQucHJlc2VudGF0aW9uLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwdG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlc2hvdy5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcHNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC50ZW1wbGF0ZS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwb3RtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJpbnRkZXZpY2VjYXBhYmlsaXRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJpbnRpbmcucHJpbnR0aWNrZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcmludHNjaGVtYXRpY2tldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcm9qZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBwXCIsIFwibXB0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtdG5lZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy12aXNpby52aWV3ZXJcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJ2ZHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLmRldmljZXBhaXJpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy5ud3ByaW50aW5nLm9vYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLnByaW50ZXJwYWlyaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3Mud3NkLm9vYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5saWMtY2hsZy1yZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubGljLXJlc3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubWV0ZXItY2hsZy1yZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubWV0ZXItcmVzcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLmRvY3VtZW50Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvY21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvdG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13b3Jrc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndwc1wiLCBcIndrc1wiLCBcIndjbVwiLCBcIndkYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdwbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXhwc2RvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXNhLWRpc2staW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zZXFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tc2dwYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zaWduXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11bHRpYWQuY3JlYXRvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdWx0aWFkLmNyZWF0b3IuY2lmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11c2ljLW5pZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXVzaWNpYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdXZlZS5zdHlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zdHlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5teW5mY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRhZ2xldFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hY2FtYXIueWJyaWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hdG8uYmluZGluZ2RhdGFvYmplY3QrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLmJpbmRpbmdkYXRhb2JqZWN0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLmJpbmRpbmdkYXRhb2JqZWN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmF0by5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmllcGQremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5jZC5jb250cm9sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5jZC5yZWZlcmVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmVhcnN0Lmluditqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmVidW1pbmQubGluZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZXJ2YW5hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5ldGZweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZXVyb2xhbmd1YWdlLm5sdVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5sdVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5pbW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmludGVuZG8ubml0cm8ucm9tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5pbnRlbmRvLnNuZXMucm9tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5pdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJudGZcIiwgXCJuaXRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtZGlyZWN0b3J5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibm5kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtc2VhbGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibm5zXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtd2ViXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibm53XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuY2F0YWxvZ3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuY29ubWwrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuY29ubWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuaXB0di5jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuaXNkcy1yYWRpby1wcmVzZXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmxhbmRtYXJrK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmxhbmRtYXJrK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmxhbmRtYXJrY29sbGVjdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2UuYWMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmdkYXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2Uuc3ltYmlhbi5pbnN0YWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuLWdhZ2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uY2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucGNkK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnBjZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5yYWRpby1wcmVzZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycHN0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucmFkaW8tcHJlc2V0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJwc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5lZG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5lZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlZHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5leHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuY29udGVudC1zaGFyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuZmlsZS10cmFuc2ZlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwub2d3X3JlbW90ZS1hY2Nlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLnNpcC10YV9yZW1vdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLnNpcC10YV90Y3Bfc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9haS53b3JrZmxvd3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FpLndvcmtmbG93cytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FpLndvcmtmbG93cyt5YW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5iYXNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5jaGFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5jaGFydC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5kYXRhYmFzZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmZvcm11bGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZm9ybXVsYS10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kZnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZ3JhcGhpY3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZ3JhcGhpY3MtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuaW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuaW1hZ2UtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnByZXNlbnRhdGlvbi10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2R0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtbWFzdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtbWFzdGVyLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3R0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtd2ViXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2JuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9jZitjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9jaS5pbWFnZS5tYW5pZmVzdC52MStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2Z0bi5sMTBuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNvbnRlbnRhY2Nlc3Nkb3dubG9hZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNvbnRlbnRhY2Nlc3NzdHJlYW1pbmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5jc3BnLWhleGJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmRhZS5zdmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5kYWUueGh0bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5taXBwdmNvbnRyb2xtZXNzYWdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYucGFlLmdlbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnNwZGlzY292ZXJ5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuc3BkbGlzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnVlcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnVzZXJwcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9scGMtc3VnYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4b1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS1zY3dzLWNvbmZpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEtc2N3cy1odHRwLXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLXNjd3MtaHR0cC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QuYXNzb2NpYXRlZC1wcm9jZWR1cmUtcGFyYW1ldGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5kcm0tdHJpZ2dlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5pbWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0Lmx0a21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0Lm5vdGlmaWNhdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QucHJvdmlzaW9uaW5ndHJpZ2dlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2dib290XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zZ2RkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zZ2R1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zaW1wbGUtc3ltYm9sLWNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc21hcnRjYXJkLXRyaWdnZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc3Byb3YreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnN0a21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1hZGRyZXNzLWJvb2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1mZWF0dXJlLWhhbmRsZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1wY2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1zdWJzLWludml0ZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLXVzZXItcHJlZnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRjZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZGNkY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZGQyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGQyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRybS5yaXNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5ncm91cC11c2FnZS1saXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5sd20ybStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5sd20ybStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmx3bTJtK3RsdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucGFsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuZGV0YWlsZWQtcHJvZ3Jlc3MtcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuZmluYWwtcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuZ3JvdXBzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuaW52b2NhdGlvbi1kZXNjcmlwdG9yK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2Mub3B0aW1pemVkLXByb2dyZXNzLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucHVzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuc2NpZG0ubWVzc2FnZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnhjYXAtZGlyZWN0b3J5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYWRzLWVtYWlsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hZHMtZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYWRzLWZvbGRlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYWxvYy1zdXBsLWluaXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGFteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhdHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YXR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9udmlmLm1ldGFkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW5ibG94LmdhbWUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYmd4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmJsb3guZ2FtZS1iaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmV5ZS5vZWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3Blbm9mZmljZW9yZy5leHRlbnNpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm94dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW5zdHJlZXRtYXAuZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9zbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW50aW1lc3RhbXBzLm90c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVudnBpLmRzcHgranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmN1c3RvbS1wcm9wZXJ0aWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmN1c3RvbXhtbHByb3BlcnRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuY2hhcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0c2hhcGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtY29sb3JzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbWxheW91dCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbXN0eWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmV4dGVuZGVkLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuY29tbWVudGF1dGhvcnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuY29tbWVudHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuaGFuZG91dG1hc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5ub3Rlc21hc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5ub3Rlc3NsaWRlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24ubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzcHJvcHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbGR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVsYXlvdXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVtYXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHBzeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlc2hvdy5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRldXBkYXRlaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50YWJsZXN0eWxlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50YWdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG90eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlLm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudmlld3Byb3BzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY2FsY2NoYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY2hhcnRzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNvbW1lbnRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29ubmVjdGlvbnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5kaWFsb2dzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmV4dGVybmFsbGluayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Y2FjaGVkZWZpbml0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RjYWNoZXJlY29yZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdHRhYmxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucXVlcnl0YWJsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9uaGVhZGVycyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9ubG9nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hhcmVkc3RyaW5ncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxzeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0bWV0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlc2luZ2xlY2VsbHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlLm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC51c2VybmFtZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC52b2xhdGlsZWRlcGVuZGVuY2llcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLndvcmtzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZW92ZXJyaWRlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnZtbGRyYXdpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5jb21tZW50cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG9jeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQuZ2xvc3NhcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudC5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZW5kbm90ZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5mb250dGFibGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5mb290ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5mb290bm90ZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5udW1iZXJpbmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5zZXR0aW5ncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnN0eWxlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG90eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwudGVtcGxhdGUubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLndlYnNldHRpbmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuY29yZS1wcm9wZXJ0aWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuZGlnaXRhbC1zaWduYXR1cmUteG1sc2lnbmF0dXJlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UucmVsYXRpb25zaGlwcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcmFjbGUucmVzb3VyY2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9yYW5nZS5pbmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NhLm5ldGRlcGxveVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dlby5tYXBndWlkZS5wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWdwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NnaS5idW5kbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NnaS5kcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NnaS5zdWJzeXN0ZW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlc2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vdHBzLmN0LWtpcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5veGxpLmNvdW50Z3JhcGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGFnZXJkdXR5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYWxtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGRiXCIsIFwicHFhXCIsIFwib3ByY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhbm9wbHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGFvcy54bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGF0ZW50ZGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYXRpZW50ZWNvbW1zZG9jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhd2FhZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBhd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBjb3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGcuZm9ybWF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGcub3Nhc2xpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWk2XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGlhY2Nlc3MuYXBwbGljYXRpb24tbGljZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5waWNzZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlZmlmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG1pLndpZGdldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG9jLmdyb3VwLWFkdmVydGlzZW1lbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG9ja2V0bGVhcm5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGJkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNi1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNy1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjc1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjc1LXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJlbWluZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJldmlld3N5c3RlbXMuYm94XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm94XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJvY3JhdGUuYnJ1c2hzZXRcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJicnVzaHNldFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByb2NyZWF0ZS5icnVzaFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJydXNoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJvY3JlYXRlLmRyZWFtXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJvdGV1cy5tYWdhemluZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1nelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBzZnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHQubXVuZHVzbXVuZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHVibGlzaGFyZS1kZWx0YS10cmVlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicXBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHZpLnB0aWQxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHRpZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnB3Zy1tdWx0aXBsZXhlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wd2cteGh0bWwtcHJpbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4aHRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucXVhbGNvbW0uYnJldy1hcHAtcmVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnF1YXJhbnRhaW5lbmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnF1YXJrLnF1YXJreHByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicXhkXCIsIFwicXh0XCIsIFwicXdkXCIsIFwicXd0XCIsIFwicXhsXCIsIFwicXhiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucXVvYmplY3QtcXVveGRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubW9tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1jb25mK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1jb25uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1kaWFsb2creG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LXN0cmVhbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtY29uZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctYmFzZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWZheC1kZXRlY3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1mYXgtc2VuZHJlY3YreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1ncm91cCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLXNwZWVjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLXRyYW5zZm9ybSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWluc3Rvci5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhcGlkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlYWx2bmMuYmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmVkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVjb3JkYXJlLm11c2ljeG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVjb3JkYXJlLm11c2ljeG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXVzaWN4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZWxwaXBlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlbmxlYXJuLnJscHJpbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVzaWxpZW50LmxvZ2ljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlc3RmdWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJpZy5jcnlwdG9ub3RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3J5cHRvbm90ZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJpbS5jb2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNvZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJuLXJlYWxtZWRpYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ybi1yZWFsbWVkaWEtdmJyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybXZiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucm91dGU2Ni5saW5rNjYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsaW5rNjZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ycy0yNzR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJ1Y2t1cy5kb3dubG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zM3Ntc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zYWlsaW5ndHJhY2tlci50cmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2FyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNibS5jaWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2JtLm1pZDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2NyaWJ1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuM2RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5jc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLmRvY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuZW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5taHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLm5ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQucHB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC50aWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC54bHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwuaHRtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5wZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VlbWFpbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlaXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlbWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW1hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VtZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYWRlLXNhdmUtZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5mb3JtZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlmbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmZvcm10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIml0cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmludGVyY2hhbmdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWlmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQucGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlwa1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNob290cHJvb2YranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNob3BraWNrK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2h4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNpZ3Jvay5zZXNzaW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNpbXRlY2gtbWluZG1hcHBlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR3ZFwiLCBcInR3ZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaXJlbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2tldGNob21ldHJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNtYWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFydC5ub3RlYm9va1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFydC50ZWFjaGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGVhY2hlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNtaW50aW8ucG9ydGFscy5hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNuZXNkZXYtcGFnZS10YWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zb2Z0d2FyZTYwMi5maWxsZXIuZm9ybSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc29mdHdhcmU2MDIuZmlsbGVyLmZvcm0teG1sLXppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zb2xlbnQuc2RrbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNka21cIiwgXCJzZGtkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3BvdGZpcmUuZHhwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHhwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3BvdGZpcmUuc2ZzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2ZzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3FsaXRlM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zc3MtY29kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNzcy1kdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3NzLW50ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uY2FsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmRyYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5pbXByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ubWF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic21mXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLndyaXRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2R3XCIsIFwidm9yXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLndyaXRlci1nbG9iYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNnbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0ZXBtYW5pYS5wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic216aXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGVwbWFuaWEuc3RlcGNoYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdHJlZXQtc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi53YWRsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2FkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuY2FsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3hjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5jYWxjLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmRyYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuZHJhdy50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5pbXByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmltcHJlc3MudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwubWF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3htXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4d1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwud3JpdGVyLmdsb2JhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3hnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXIudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0d1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1cy1jYWxlbmRhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN1c1wiLCBcInN1c3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zd2lmdHZpZXctaWNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5YnlsLm1vbDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3ljbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3lmdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3ltYmlhbi5pbnN0YWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaXNcIiwgXCJzaXN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4c21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0rd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtLm5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG1kZGYrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtZGRmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG10bmRzK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbXRuZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZHMubm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRhYmxlc2NoZW1hK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50YW8uaW50ZW50LW1vZHVsZS1hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGFvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudGNwZHVtcC5wY2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGNhcFwiLCBcImNhcFwiLCBcImRtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRoaW5rLWNlbGwucHB0dGMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRtZC5tZWRpYWZsZXguYXBpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50bW9iaWxlLWxpdmV0dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRtb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRyaS5vbmVzb3VyY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJpZC50cHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cmlzY2FwZS5teHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cnVlYXBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJ1ZWRvY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51Ymlzb2Z0LndlYnBsYXllclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51ZmRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widWZkXCIsIFwidWZkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVpYy5vc2RtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51aXEudGhlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dHpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51bWFqaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1bWpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51bml0eVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVuaXR5d2ViXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudW9tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVvbWxcIiwgXCJ1b1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuYWxlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5hbGVydC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmJlYXJlci1jaG9pY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5iZWFyZXItY2hvaWNlLXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2FjaGVvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNhY2hlb3Atd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jaGFubmVsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2hhbm5lbC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0LXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdGNtZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3RjbWQtd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5zaWduYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXJpLW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52YWx2ZS5zb3VyY2UubWF0ZXJpYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmN4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmQtc3R1ZHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVjdG9yd29ya3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJhaXNvbi50c20tcmVwb3J0K2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyYWlzb24udHNtLXJlcG9ydCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyaW1hdHJpeC52Y2FzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcml0b25lLmFpb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcnlhbnQudGhpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXMuZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZpZHNvZnQudmlkY29uZmVyZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52aXNpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZzZFwiLCBcInZzdFwiLCBcInZzc1wiLCBcInZzd1wiLCBcInZzZHhcIiwgXCJ2dHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52aXNpb25hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2aXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52aXZpZGVuY2Uuc2NyaXB0ZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52b2NhbHNoYXBlci52c3A0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhcC5zaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLnNsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndieG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLndtbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWxjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLndtbHNjcmlwdGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWxzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhc21mbG93LndhZmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2VidHVyYm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3dGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53ZmEuZHBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndmYS5wMnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2ZhLndzY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53aW5kb3dzLmRldmljZXBhaXJpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud21jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndtZi5ib290c3RyYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud29sZnJhbS5tYXRoZW1hdGljYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLm1hdGhlbWF0aWNhLnBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud29sZnJhbS5wbGF5ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuYnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b3JkbGlmdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b3JkcGVyZmVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndwZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndxZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndxZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndycS1ocDMwMDAtbGFiZWxsZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3Quc3RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3YuY3NwK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnd2LmNzcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53di5zc3AreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGFjbWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhhcmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54YXJpbi5jcGpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGVjcmV0cy1lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGZkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhmZGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54ZmRsLndlYmZvcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1pK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLmNwa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUuZHBrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5wbGFuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLnBwa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUueGxpbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtZGljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHZkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh2c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5odi12b2ljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh2cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5vcGVuc2NvcmVmb3JtYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEub3BlbnNjb3JlZm9ybWF0Lm9zZnB2Zyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9zZnB2Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5yZW1vdGUtc2V0dXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnNtYWYtYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzYWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuc21hZi1waHJhc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEudGhyb3VnaC1uZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnR1bm5lbC11ZHBlbmNhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW93ZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnllbGxvd3JpdmVyLWN1c3RvbS1tZW51XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY21wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuenVsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiemlyXCIsIFwiemlyelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnp6YXp6LmRlY2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6YXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZvaWNleG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm91Y2hlci1jbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm91Y2hlci1qd3MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92cCtjb3NlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdnArand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdnEtcnRjcHhyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2FzbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2FzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2F0Y2hlcmluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3aWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dlYnB1c2gtb3B0aW9ucytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aG9pc3BwLXF1ZXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2hvaXNwcC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dpZGdldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndndFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2luaGxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJobHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dpdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93b3JkcGVyZmVjdDUuMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dzZGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3c2RsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93c3BvbGljeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndzcG9saWN5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LTd6LWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjd6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFiaXdvcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFid1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hY2UtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWNlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hcHBsZS1kaXNraW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRtZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hcmpcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcmpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1iaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFhYlwiLCBcIngzMlwiLCBcInUzMlwiLCBcInZveFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hdXRob3J3YXJlLW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtc2VnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhYXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYmNwaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJjcGlvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJkb2NcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZG9jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJpdHRvcnJlbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRvcnJlbnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYmxlbmRlclwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJsZW5kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJsb3JiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibGJcIiwgXCJibG9yYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJielwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iemlwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnoyXCIsIFwiYm96XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNiclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2JyXCIsIFwiY2JhXCIsIFwiY2J0XCIsIFwiY2J6XCIsIFwiY2I3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNkbGlua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNmcy1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2hhdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2hhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jaGVzcy1wZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBnblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jaHJvbWUtZXh0ZW5zaW9uXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3J4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNvY29hXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNjb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jb21wcmVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNvbmZlcmVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5zY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jcGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcGlvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRlYlwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZGViaWFuLXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRlYlwiLCBcInVkZWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZGdjLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRnY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kaXJlY3RvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGlyXCIsIFwiZGNyXCIsIFwiZHhyXCIsIFwiY3N0XCIsIFwiY2N0XCIsIFwiY3h0XCIsIFwidzNkXCIsIFwiZmdkXCIsIFwic3dhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRvb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kdGJuY3greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5jeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kdGJvb2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR0YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kdGJyZXNvdXJjZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWR2aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHZpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWVudm95XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJldnlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZXZhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJldmFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1iZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWRvc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWZyYW1lbWFrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1naG9zdHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtbGliZ3J4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtbGludXgtcHNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1wY2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXNuZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic25mXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtc3BlZWRvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtc3Vub3MtbmV3c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXR5cGUxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZmFcIiwgXCJwZmJcIiwgXCJwZm1cIiwgXCJhZm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC12Zm9udFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mcmVlYXJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZnV0dXJlc3BsYXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ2NhLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdjYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1nbHVseFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widWx4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWdudW1lcmljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbnVtZXJpY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ncmFtcHMteG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncmFtcHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ3RhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3RhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1nemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWhkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWh0dHBkLXBocFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGhwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWluc3RhbGwtaW5zdHJ1Y3Rpb25zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpbnN0YWxsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWlweW5iK2pzb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlweW5iXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWlzbzk2NjAtaW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlzb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pd29yay1rZXlub3RlLXNmZmtleVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtleVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pd29yay1udW1iZXJzLXNmZm51bWJlcnNcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJudW1iZXJzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWl3b3JrLXBhZ2VzLXNmZnBhZ2VzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGFnZXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtamF2YS1hcmNoaXZlLWRpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFyZGlmZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1qYXZhLWpubHAtZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiam5scFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1qYXZhc2NyaXB0XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWtlZXBhc3MyXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2RieFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1sYXRleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGF0ZXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbHVhLWJ5dGVjb2RlXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHVhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1semgtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHpoXCIsIFwibGhhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1ha2VzZWxmXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJ1blwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1taWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1pZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tb2JpcG9ja2V0LWVib29rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmNcIiwgXCJtb2JpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1wZWd1cmxcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLWFwcGxpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHBsaWNhdGlvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcy1zaG9ydGN1dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibG5rXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLXdtZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLXdtelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid216XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLXhiYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhiYXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNhY2Nlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1kYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2JpbmRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2JkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zY2FyZGZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNyZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2NsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNscFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2Rvcy1wcm9ncmFtXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zZG93bmxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4ZVwiLCBcImRsbFwiLCBcImNvbVwiLCBcImJhdFwiLCBcIm1zaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc21lZGlhdmlld1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXZiXCIsIFwibTEzXCIsIFwibTE0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zbWV0YWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtZlwiLCBcIndtelwiLCBcImVtZlwiLCBcImVtelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc21vbmV5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbnlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNwdWJsaXNoZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB1YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc3NjaGVkdWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXN0ZXJtaW5hbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zd3JpdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndyaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1uZXRjZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5jXCIsIFwiY2RmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW5zLXByb3h5LWF1dG9jb25maWdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1uemJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm56YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1wZXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsXCIsIFwicG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGlsb3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJjXCIsIFwicGRiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBrY3MxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDEyXCIsIFwicGZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBrY3M3LWNlcnRpZmljYXRlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDdiXCIsIFwic3BjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBrY3M3LWNlcnRyZXFyZXNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwN3JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGtpLW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXJhci1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcmVkaGF0LXBhY2thZ2UtbWFuYWdlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcmVzZWFyY2gtaW5mby1zeXN0ZW1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyaXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2VhXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zaGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3dmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNpbHZlcmxpZ2h0LWFwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGFwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNxbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3FsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN0dWZmaXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdHVmZml0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2l0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdWJyaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNydFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdjRjcGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdjRjcGlvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN2NGNyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3Y0Y3JjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXQzdm0taW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInQzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRhZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRjbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGNsXCIsIFwidGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGV4LXRmbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRleGluZm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRleGluZm9cIiwgXCJ0ZXhpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRnaWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9ialwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC11c3RhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXN0YXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1oZGRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhkZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LW92YVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3ZhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtb3ZmXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12Ym94XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Ym94XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmJveC1leHRwYWNrXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmJveC1leHRwYWNrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmRpXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2ZGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12aGRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZoZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZtZGtcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZtZGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtd2Fpcy1zb3VyY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNyY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC13ZWItYXBwLW1hbmlmZXN0K2pzb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYmFwcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXg1MDktY2EtY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRlclwiLCBcImNydFwiLCBcInBlbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14NTA5LWNhLXJhLWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXg1MDktbmV4dC1jYS1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14ZmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmaWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteGxpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14cGluc3RhbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14elwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtemlwLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJ6aXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtem1hY2hpbmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInoxXCIsIFwiejJcIiwgXCJ6M1wiLCBcIno0XCIsIFwiejVcIiwgXCJ6NlwiLCBcIno3XCIsIFwiejhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3g0MDAtYnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94YWNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hhbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhhbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtYXR0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGF2XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWNhcHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4Y2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtZGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1lbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhlbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1lcnJvcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtbnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjb24tY29uZmVyZW5jZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNvbi1jb25mZXJlbmNlLWluZm8tZGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hlbmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZW5jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94ZmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGZkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGh0bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4aHRtbFwiLCBcInhodFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGh0bWwtdm9pY2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hsaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhtbFwiLCBcInhzbFwiLCBcInhzZFwiLCBcInJuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1sLWR0ZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHRkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bWwtZXh0ZXJuYWwtcGFyc2VkLWVudGl0eVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htbC1wYXRjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htcHAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94b3AreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4b3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hwcm9jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hzbHQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4c2xcIiwgXCJ4c2x0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94c3BmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4c3BmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94dit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14bWxcIiwgXCJ4aHZtbFwiLCBcInh2bWxcIiwgXCJ4dm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieWFuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1kYXRhK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLWRhdGEranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1kYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1wYXRjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLXBhdGNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1zaWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieWluXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi96aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6aXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ppcCtkb3Rsb3R0aWVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJsb3R0aWVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3psaWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi96c3RkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vMzJrYWRwY21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby8zZ3BwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2dwcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vM2dwcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZHRzXCIsIFwiYWFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hYzNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hZHBjbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hbXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhbXJcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Ftci13YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Ftci13YitcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hcHR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXNjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXRyYWMtYWR2YW5jZWQtbG9zc2xlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hdHJhYy14XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXRyYWMzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYmFzaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdVwiLCBcInNuZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYnYxNlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2J2MzJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9jbGVhcm1vZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9jblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2RhdDEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZGxzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHNyLWVzMjAxMTA4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHNyLWVzMjAyMDUwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHNyLWVzMjAyMjExXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHNyLWVzMjAyMjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kdmk0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZWFjM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2VuY2FwcnRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmMtcWNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyYzBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY2IwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY2IxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY253XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY253MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNudzFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjd2IwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY3diMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2ZsYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9mbGV4ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZndkcmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcxMS0wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcxOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzIyMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI2LTE2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyNi0yNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjYtMzJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI2LTQwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI5MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjlkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nc21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nc20tZWZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZ3NtLWhyLTA4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vaWxiY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2lwLW1yX3YyLjVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9pc2FjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9sMTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9sMjBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9sMjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9sOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2xwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21hdHJvc2thXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWVscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21lbHAxMjAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWVscDI0MDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tZWxwNjAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWhhc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21pZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1pZFwiLCBcIm1pZGlcIiwgXCJrYXJcIiwgXCJybWlcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21pZGktY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21vYmlsZS14bWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteG1mXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcDNcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcDNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm00YVwiLCBcIm1wNGFcIiwgXCJtNGJcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wNGEtbGF0bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wYS1yb2J1c3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBnYVwiLCBcIm1wMlwiLCBcIm1wMmFcIiwgXCJtcDNcIiwgXCJtMmFcIiwgXCJtM2FcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wZWc0LWdlbmVyaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tdXNlcGFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vb2dnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2dhXCIsIFwib2dnXCIsIFwic3B4XCIsIFwib3B1c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vb3B1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3Bhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3BjbWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wY21hLXdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGNtdVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3BjbXUtd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wcnMuc2lkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcWNlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9yYXB0b3JmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9yZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ydHAtZW5jLWFlc2NtMTI4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcnRwLW1pZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ydHBsb29wYmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3J0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3MzbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiczNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zY2lwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc2lsa1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2lsXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zbXZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zbXYtcWNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc212MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NvZmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zcC1taWRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc3BlZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90MTQwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3QzOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RlbGVwaG9uZS1ldmVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RldHJhX2FjZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdGV0cmFfYWNlbHBfYmJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90b25lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdHN2Y2lzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdWVtY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3VscGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3VzYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92ZHZpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm1yLXdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLjNncHAuaXVmcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC40c2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuYXVkaW9rb3pcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY2VscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jaXNjby5uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY21sZXMucmFkaW8tZXZlbnRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNucy5hbnAxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNucy5pbmYxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRlY2UuYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dmFcIiwgXCJ1dnZhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZGlnaXRhbC13aW5kc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVvbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRsbmEuYWR0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5oZWFhYy4xXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LmhlYWFjLjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkubWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5Lm1wc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5wbDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkucGwyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5wbDJ6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LnB1bHNlLjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHJhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHRzXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHRzLmhkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHRzaGRcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kdHMudWhkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmR2Yi5maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmV2ZXJhZC5wbGpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuaG5zLmF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmx1Y2VudC52b2ljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx2cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm1zLXBsYXlyZWFkeS5tZWRpYS5weWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJweWFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5ub2tpYS5tb2JpbGUteG1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm5vcnRlbC52YmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubnVlcmEuZWNlbHA0ODAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWNlbHA0ODAwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubnVlcmEuZWNlbHA3NDcwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWNlbHA3NDcwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubnVlcmEuZWNlbHA5NjAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWNlbHA5NjAwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQub2N0ZWwuc2JjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnByZXNvbnVzLm11bHRpdHJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQucWNlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5yaGV0b3JleC4zMmthZHBjbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5yaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyaXBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5ybi1yZWFsYXVkaW9cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwubXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC52bXguY3ZzZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC53YXZlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm9yYmlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm9yYmlzLWNvbmZpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3dhdlwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhdlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vd2F2ZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhdlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vd2VibVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2ViYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1hYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1haWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaWZcIiwgXCJhaWZmXCIsIFwiYWlmY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1jYWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNhZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1mbGFjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbGFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LW00YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtNGFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbWF0cm9za2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1rYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tcGVndXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtM3VcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbXMtd2F4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YXhcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbXMtd21hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtcG4tcmVhbGF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYW1cIiwgXCJyYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1wbi1yZWFsYXVkaW8tcGx1Z2luXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybXBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtcmVhbGF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXR0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC13YXZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhdlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhtXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNkeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2R4XCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2lmXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNtZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNtZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY3NtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1wZGJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gteHl6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4eXpcIl1cbiAgICAgIH0sXG4gICAgICBcImZvbnQvY29sbGVjdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC9vdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC9zZm50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiZm9udC90dGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC93b2ZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid29mZlwiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC93b2ZmMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndvZmYyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hY2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hcG5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYXZjaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF2Y2lcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2F2Y3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdmNzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hdmlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXZpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYm1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibXBcIiwgXCJkaWJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2NnbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNnbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZGljb20tcmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHJsZVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZHB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHB4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9lbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlbWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2ZpdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmaXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9nM2ZheFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImczXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9naWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWljXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9oZWljLXNlcXVlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVpY3NcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlaWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWlmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9oZWlmLXNlcXVlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVpZnNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlajJrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVqMlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaWVmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWVmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qMmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qYWlpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFpaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvamFpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphaXNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2psc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpsc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianAyXCIsIFwianBnMlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwZ1wiLCBcImpwZWdcIiwgXCJqcGVcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pwaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwaFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanBoY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpoY1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanBtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBtXCIsIFwianBnbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianB4XCIsIFwianBmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeGxcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4clwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhyYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4cmFcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4cnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHJzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4c2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHNjXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhzaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvanhzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4c3NcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2t0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImt0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uva3R4MlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImt0eDJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL25hcGxwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3BqcGVnXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamZpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcG5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG5nXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9wcnMuYnRpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJ0aWZcIiwgXCJidGZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3Bycy5wdGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwdGlcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3B3Zy1yYXN0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9zZ2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNnaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvc3ZnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ZnXCIsIFwic3ZnelwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvdDM4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widDM4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS90aWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGlmXCIsIFwidGlmZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvdGlmZi1meFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRmeFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmFkb2JlLnBob3Rvc2hvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHNkXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuYWlyemlwLmFjY2VsZXJhdG9yLmF6dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF6dlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmNsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuY25zLmluZjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZGVjZS5ncmFwaGljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZpXCIsIFwidXZ2aVwiLCBcInV2Z1wiLCBcInV2dmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5kanZ1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGp2dVwiLCBcImRqdlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmR2Yi5zdWJ0aXRsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN1YlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmR3Z1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR3Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmR4ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR4ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZhc3RiaWRzaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZic1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZweFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZzdFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZ1aml4ZXJveC5lZG1pY3MtbW1yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW1yXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZnVqaXhlcm94LmVkbWljcy1ybGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybGNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5nbG9iYWxncmFwaGljcy5wZ2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubWljcm9zb2Z0Lmljb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljb1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1peFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5tb3ppbGxhLmFwbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubXMtZGRzXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5tcy1tb2RpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWRpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubXMtcGhvdG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndkcFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm5ldC1mcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJucHhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5wY28uYjE2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYjE2XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQucmFkaWFuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuc2VhbGVkLnBuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5naWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwuanBnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnN2ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC50ZW5jZW50LnRhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRhcFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnZhbHZlLnNvdXJjZS50ZXh0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnRmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQud2FwLndibXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3Ym1wXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQueGlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnpicnVzaC5wY3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3dlYnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJwXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS93bWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtM2RzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtYWRvYmUtZG5nXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG5nXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWNtdS1yYXN0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1jbXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNteFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1lbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWZyZWVoYW5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmaFwiLCBcImZoY1wiLCBcImZoNFwiLCBcImZoNVwiLCBcImZoN1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1pY29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljb1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1qbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiam5nXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LW1yc2lkLWltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaWRcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtbXMtYm1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm1wXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBjeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGN4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBpY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBpY1wiLCBcInBjdFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wb3J0YWJsZS1hbnltYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBubVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wb3J0YWJsZS1iaXRtYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBibVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wb3J0YWJsZS1ncmF5bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZ21cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcG9ydGFibGUtcGl4bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcG1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcmdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZ2JcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtdGdhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0Z2FcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtd21mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC14Yml0bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4Ym1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gteGNmXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC14cGl4bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cG1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gteHdpbmRvd2R1bXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInh3ZFwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9iaHR0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvY3BpbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZGVsaXZlcnktc3RhdHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9kaXNwb3NpdGlvbi1ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgXCJkaXNwb3NpdGlvbi1ub3RpZmljYXRpb25cIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2V4dGVybmFsLWJvZHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2ZlZWRiYWNrLXJlcG9ydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZ2xvYmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widThtc2dcIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZ2xvYmFsLWRlbGl2ZXJ5LXN0YXR1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInU4ZHNuXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2dsb2JhbC1kaXNwb3NpdGlvbi1ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1OG1kblwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9nbG9iYWwtaGVhZGVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInU4aGRyXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2h0dHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2ltZG4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL21sc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvbmV3c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9vaHR0cC1yZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL29odHRwLXJlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvcGFydGlhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvcmZjODIyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlbWxcIiwgXCJtaW1lXCIsIFwibWh0XCIsIFwibWh0bWxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvcy1odHRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3NpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvc2lwZnJhZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvdHJhY2tpbmctc3RhdHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS92bmQuc2kuc2ltcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS92bmQud2ZhLndzY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndzY1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvM21mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM21mXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9lNTdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9nbHRmK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdsdGZcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2dsdGYtYmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbGJcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2lnZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZ3NcIiwgXCJpZ2VzXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9qdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp0XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9tZXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNoXCIsIFwibWVzaFwiLCBcInNpbG9cIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL210bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm10bFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvb2JqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2JqXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9wcmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmNcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0ZXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGVwXCIsIFwic3RwXCIsIFwic3RwbmNcIiwgXCJwMjFcIiwgXCIyMTBcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0ZXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHB4XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9zdGVwK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0cHpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0ZXAteG1sK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0cHh6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9zdGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3UzZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInUzZFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmJhcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiYXJ5XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuY2xkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xkXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuY29sbGFkYSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRhZVwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmR3ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR3ZlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmZsYXRsYW5kLjNkbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZ2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2RsXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZ3MtZ2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZ3MuZ2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmd0d1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd0d1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLm1vbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQubXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQub3BlbmdleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9nZXhcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5wYXJhc29saWQudHJhbnNtaXQuYmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieF9iXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQucGFyYXNvbGlkLnRyYW5zbWl0LnRleHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4X3RcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5weXRoYS5weW94XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHlvXCIsIFwicHlveFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnJvc2V0dGUuYW5ub3RhdGVkLWRhdGEtbW9kZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuc2FwLnZkc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZkc1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnVzZGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1c2RhXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQudXNkeit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1c2R6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQudmFsdmUuc291cmNlLmNvbXBpbGVkLW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJzcFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnZ0dVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZ0dVwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdnJtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndybFwiLCBcInZybWxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3gzZCtiaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZGJcIiwgXCJ4M2RielwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkK2Zhc3RpbmZvc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkYlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkK3ZybWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZHZcIiwgXCJ4M2R2elwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkXCIsIFwieDNkelwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkLXZybWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2R2XCJdXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvYWx0ZXJuYXRpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvYXBwbGVkb3VibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvYnl0ZXJhbmdlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9kaWdlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9oZWFkZXItc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L21peGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L211bHRpbGluZ3VhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9wYXJhbGxlbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9yZWxhdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3JlcG9ydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9zaWduZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvdm5kLmJpbnQubWVkLXBsdXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvdm9pY2UtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC94LW1peGVkLXJlcGxhY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0LzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvY2FjaGUtbWFuaWZlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcGNhY2hlXCIsIFwibWFuaWZlc3RcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvY2FsZW5kYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY3NcIiwgXCJpZmJcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvY2FsZW5kZXJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInRleHQvY21kXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NvZmZlZXNjcmlwdFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNvZmZlZVwiLCBcImxpdGNvZmZlZVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jcWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NxbC1leHByZXNzaW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jcWwtaWRlbnRpZmllclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvY3NzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jc3ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzdlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jc3Ytc2NoZW1hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9kaXJlY3RvcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2Ruc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZWNtYXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9lbmNhcHJ0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZW5yaWNoZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2ZoaXJwYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9mbGV4ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9md2RyZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2dmZjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2dyYW1tYXItcmVmLWxpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2hsN3YyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9odG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodG1sXCIsIFwiaHRtXCIsIFwic2h0bWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvamFkZVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphZGVcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvamF2YXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc1wiLCBcIm1qc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9qY3ItY25kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9qc3hcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzeFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9sZXNzXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsZXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L21hcmtkb3duXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZFwiLCBcIm1hcmtkb3duXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L21hdGhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbWR4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbWl6YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L24zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm4zXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3BhcmFtZXRlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wbGFpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHh0XCIsIFwidGV4dFwiLCBcImNvbmZcIiwgXCJkZWZcIiwgXCJsaXN0XCIsIFwibG9nXCIsIFwiaW5cIiwgXCJpbmlcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcHJvdmVuYW5jZS1ub3RhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcnMuZmFsbGVuc3RlaW4ucnN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcnMubGluZXMudGFnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHNjXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bycy5wcm9wLmxvZ2ljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcnMudGV4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcmFwdG9yZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9yZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3JmYzgyMi1oZWFkZXJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9yaWNodGV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnR4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3J0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnRmXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3J0cC1lbmMtYWVzY20xMjhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3J0cGxvb3BiYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9ydHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3NnbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZ21sXCIsIFwic2dtXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3NoYWNsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvc2hleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNoZXhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvc2xpbVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsaW1cIiwgXCJzbG1cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvc3BkeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwZHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvc3RyaW5nc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvc3R5bHVzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3R5bHVzXCIsIFwic3R5bFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC90MTQwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC90YWItc2VwYXJhdGVkLXZhbHVlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHN2XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Ryb2ZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widFwiLCBcInRyXCIsIFwicm9mZlwiLCBcIm1hblwiLCBcIm1lXCIsIFwibXNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdHVydGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0dGxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdWxwZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC91cmktbGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXJpXCIsIFwidXJpc1wiLCBcInVybHNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdmNhcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjYXJkXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuYWJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuYXNjaWktYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImN1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmN1cmwuZGN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRjdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5jdXJsLm1jdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuY3VybC5zY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2N1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmRlYmlhbi5jb3B5cmlnaHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmRtY2xpZW50c2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZHZiLnN1YnRpdGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ViXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5lc21lcnRlYy50aGVtZS1kZXNjcmlwdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5leGNoYW5nZWFibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5mYW1pbHlzZWFyY2guZ2VkY29tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2VkXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5maWNsYWIuZmx0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZmx5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmx5XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5mbWkuZmxleHN0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmdtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmdyYXBodml6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmhhbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5oZ2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5pbjNkLjNkbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5pbjNkLnNwb3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcG90XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5pcHRjLm5ld3NtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmlwdGMubml0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmxhdGV4LXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5tb3Rvcm9sYS5yZWZsZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5tcy1tZWRpYXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5uZXQycGhvbmUuY29tbWNlbnRlci5jb21tYW5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQucmFkaXN5cy5tc21sLWJhc2ljLWxheW91dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnNlbngud2FycHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnNpLnVyaWNhdGFsb2d1ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuc29zaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnN1bi5qMm1lLmFwcC1kZXNjcmlwdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYWRcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnRyb2xsdGVjaC5saW5ndWlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQudmNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQud2FwLnNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQud2FwLnNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQud2FwLndtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQud2FwLndtbHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtbHNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnpvby5rY2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Z0dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2dHRcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvd2dzbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndnc2xcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1hc21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNcIiwgXCJhc21cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjXCIsIFwiY2NcIiwgXCJjeHhcIiwgXCJjcHBcIiwgXCJoXCIsIFwiaGhcIiwgXCJkaWNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1jb21wb25lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHRjXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtZm9ydHJhblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZlwiLCBcImZvclwiLCBcImY3N1wiLCBcImY5MFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWd3dC1ycGNcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInRleHQveC1oYW5kbGViYXJzLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGJzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtamF2YS1zb3VyY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphdmFcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1qcXVlcnktdG1wbFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWx1YVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx1YVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LW1hcmtkb3duXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJta2RcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1uZm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5mb1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LW9wbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9wbWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1vcmdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9yZ1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXBhc2NhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicFwiLCBcInBhc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXByb2Nlc3NpbmdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBkZVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXNhc3NcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJzYXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc2Nzc1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjc3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zZXRleHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV0eFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXNmdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2Z2XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc3VzZS15bXBcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInltcFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXV1ZW5jb2RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXZjYWxlbmRhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtdmNhcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjZlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94bWwtZXh0ZXJuYWwtcGFyc2VkLWVudGl0eVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQveWFtbFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieWFtbFwiLCBcInltbFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vM2dwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNncFwiLCBcIjNncHBcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvLzNncHAtdHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby8zZ3BwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNnMlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vYXYxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vYm1wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9idDY1NlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2NlbGJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9kdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2VuY2FwcnRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZXZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZmZ2MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2ZsZXhmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjYxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaDI2MVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2M1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImgyNjNcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjMtMTk5OFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjMtMjAwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoMjY0XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY0LXJjZG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY0LXN2Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaXNvLnNlZ21lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtNHNcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2pwZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcGd2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9qcGVnMjAwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2pwbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBtXCIsIFwianBnbVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vanhzdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2xvdHRpZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tYXRyb3NrYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21hdHJvc2thLTNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbWoyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWoyXCIsIFwibWpwMlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXAxc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wMnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHNcIiwgXCJtMnRcIiwgXCJtMnRzXCIsIFwibXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcDRcIiwgXCJtcDR2XCIsIFwibXBnNFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXA0di1lc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGVnXCIsIFwibXBnXCIsIFwibXBlXCIsIFwibTF2XCIsIFwibTJ2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcGVnNC1nZW5lcmljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXB2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbnZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9vZ2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZ3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3Bhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3BvaW50ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9xdWlja3RpbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxdFwiLCBcIm1vdlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcmFwdG9yZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcmF3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcnRwLWVuYy1hZXNjbTEyOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3J0cGxvb3BiYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcnR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vc2NpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3NtcHRlMjkxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vc21wdGUyOTJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdWxwZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdmMxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdmMyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmNjdHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS5oZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2aFwiLCBcInV2dmhcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLm1vYmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2bVwiLCBcInV2dm1cIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLm1wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLnBkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZwXCIsIFwidXZ2cFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2Uuc2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnNcIiwgXCJ1dnZzXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS52aWRlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2dlwiLCBcInV2dnZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kaXJlY3R2Lm1wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGlyZWN0di5tcGVnLXR0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kbG5hLm1wZWctdHRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmR2Yi5maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHZiXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZnZ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnZ0XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaG5zLnZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4xZHBhcml0eWZlYy0xMDEwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4xZHBhcml0eWZlYy0yMDA1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4yZHBhcml0eWZlYy0xMDEwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4yZHBhcml0eWZlYy0yMDA1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS50dHNhdmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLnR0c21wZWcyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm1vdG9yb2xhLnZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm1vdG9yb2xhLnZpZGVvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5tcGVndXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXh1XCIsIFwibTR1XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubXMtcGxheXJlYWR5Lm1lZGlhLnB5dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB5dlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm5va2lhLmludGVybGVhdmVkLW11bHRpbWVkaWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubm9raWEubXA0dnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubm9raWEudmlkZW92b2lwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm9iamVjdHZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnBsYW5hclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5yYWRnYW1ldHRvb2xzLmJpbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQucmFkZ2FtZXR0b29scy5zbWFja2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuc2VhbGVkLm1wZWcxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnNlYWxlZC5tcGVnNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5zZWFsZWQuc3dmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLm1vdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC51dnZ1Lm1wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2dVwiLCBcInV2dnVcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC52aXZvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widml2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQueW91dHViZS55dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZwOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZwOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3dlYm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYm1cIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtZjR2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmNHZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtZmxpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbGlcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtZmx2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbHZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbTR2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtNHZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbWF0cm9za2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1rdlwiLCBcIm1rM2RcIiwgXCJta3NcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbmdcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtYXNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhc2ZcIiwgXCJhc3hcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtdm9iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2b2JcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtd21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXdtdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid212XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXdteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid214XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXd2eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3Z4XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zdmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF2aVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1zZ2ktbW92aWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1vdmllXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LXNtdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic212XCJdXG4gICAgICB9LFxuICAgICAgXCJ4LWNvbmZlcmVuY2UveC1jb29sdGFsa1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNlXCJdXG4gICAgICB9LFxuICAgICAgXCJ4LXNoYWRlci94LWZyYWdtZW50XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ4LXNoYWRlci94LXZlcnRleFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfVxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdHlwZS1pcy9ub2RlX21vZHVsZXMvbWltZS1kYi9pbmRleC5qc1xudmFyIHJlcXVpcmVfbWltZV9kYiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy90eXBlLWlzL25vZGVfbW9kdWxlcy9taW1lLWRiL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSByZXF1aXJlX2RiKCk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdHlwZS1pcy9ub2RlX21vZHVsZXMvbWltZS10eXBlcy9taW1lU2NvcmUuanNcbnZhciByZXF1aXJlX21pbWVTY29yZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy90eXBlLWlzL25vZGVfbW9kdWxlcy9taW1lLXR5cGVzL21pbWVTY29yZS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgdmFyIEZBQ0VUX1NDT1JFUyA9IHtcbiAgICAgIFwicHJzLlwiOiAxMDAsXG4gICAgICBcIngtXCI6IDIwMCxcbiAgICAgIFwieC5cIjogMzAwLFxuICAgICAgXCJ2bmQuXCI6IDQwMCxcbiAgICAgIGRlZmF1bHQ6IDkwMFxuICAgIH07XG4gICAgdmFyIFNPVVJDRV9TQ09SRVMgPSB7XG4gICAgICBuZ2lueDogMTAsXG4gICAgICBhcGFjaGU6IDIwLFxuICAgICAgaWFuYTogNDAsXG4gICAgICBkZWZhdWx0OiAzMFxuICAgICAgLy8gZGVmaW5pdGlvbnMgYWRkZWQgYnkgYGpzaHR0cC9taW1lLWRiYCBwcm9qZWN0P1xuICAgIH07XG4gICAgdmFyIFRZUEVfU0NPUkVTID0ge1xuICAgICAgLy8gcHJlZmVyIGFwcGxpY2F0aW9uL3htbCBvdmVyIHRleHQveG1sXG4gICAgICAvLyBwcmVmZXIgYXBwbGljYXRpb24vcnRmIG92ZXIgdGV4dC9ydGZcbiAgICAgIGFwcGxpY2F0aW9uOiAxLFxuICAgICAgLy8gcHJlZmVyIGZvbnQvd29mZiBvdmVyIGFwcGxpY2F0aW9uL2ZvbnQtd29mZlxuICAgICAgZm9udDogMixcbiAgICAgIGRlZmF1bHQ6IDBcbiAgICB9O1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIG1pbWVTY29yZShtaW1lVHlwZSwgc291cmNlID0gXCJkZWZhdWx0XCIpIHtcbiAgICAgIGlmIChtaW1lVHlwZSA9PT0gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIikge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IFt0eXBlLCBzdWJ0eXBlXSA9IG1pbWVUeXBlLnNwbGl0KFwiL1wiKTtcbiAgICAgIGNvbnN0IGZhY2V0ID0gc3VidHlwZS5yZXBsYWNlKC8oXFwufHgtKS4qLywgXCIkMVwiKTtcbiAgICAgIGNvbnN0IGZhY2V0U2NvcmUgPSBGQUNFVF9TQ09SRVNbZmFjZXRdIHx8IEZBQ0VUX1NDT1JFUy5kZWZhdWx0O1xuICAgICAgY29uc3Qgc291cmNlU2NvcmUgPSBTT1VSQ0VfU0NPUkVTW3NvdXJjZV0gfHwgU09VUkNFX1NDT1JFUy5kZWZhdWx0O1xuICAgICAgY29uc3QgdHlwZVNjb3JlID0gVFlQRV9TQ09SRVNbdHlwZV0gfHwgVFlQRV9TQ09SRVMuZGVmYXVsdDtcbiAgICAgIGNvbnN0IGxlbmd0aFNjb3JlID0gMSAtIG1pbWVUeXBlLmxlbmd0aCAvIDEwMDtcbiAgICAgIHJldHVybiBmYWNldFNjb3JlICsgc291cmNlU2NvcmUgKyB0eXBlU2NvcmUgKyBsZW5ndGhTY29yZTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3R5cGUtaXMvbm9kZV9tb2R1bGVzL21pbWUtdHlwZXMvaW5kZXguanNcbnZhciByZXF1aXJlX21pbWVfdHlwZXMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvdHlwZS1pcy9ub2RlX21vZHVsZXMvbWltZS10eXBlcy9pbmRleC5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGRiID0gcmVxdWlyZV9taW1lX2RiKCk7XG4gICAgdmFyIGV4dG5hbWUgPSByZXF1aXJlKFwicGF0aFwiKS5leHRuYW1lO1xuICAgIHZhciBtaW1lU2NvcmUgPSByZXF1aXJlX21pbWVTY29yZSgpO1xuICAgIHZhciBFWFRSQUNUX1RZUEVfUkVHRVhQID0gL15cXHMqKFteO1xcc10qKSg/Ojt8XFxzfCQpLztcbiAgICB2YXIgVEVYVF9UWVBFX1JFR0VYUCA9IC9edGV4dFxcLy9pO1xuICAgIGV4cG9ydHMyLmNoYXJzZXQgPSBjaGFyc2V0O1xuICAgIGV4cG9ydHMyLmNoYXJzZXRzID0geyBsb29rdXA6IGNoYXJzZXQgfTtcbiAgICBleHBvcnRzMi5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlMjtcbiAgICBleHBvcnRzMi5leHRlbnNpb24gPSBleHRlbnNpb247XG4gICAgZXhwb3J0czIuZXh0ZW5zaW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIGV4cG9ydHMyLmxvb2t1cCA9IGxvb2t1cDtcbiAgICBleHBvcnRzMi50eXBlcyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIGV4cG9ydHMyLl9leHRlbnNpb25Db25mbGljdHMgPSBbXTtcbiAgICBwb3B1bGF0ZU1hcHMoZXhwb3J0czIuZXh0ZW5zaW9ucywgZXhwb3J0czIudHlwZXMpO1xuICAgIGZ1bmN0aW9uIGNoYXJzZXQodHlwZSkge1xuICAgICAgaWYgKCF0eXBlIHx8IHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBtYXRjaCA9IEVYVFJBQ1RfVFlQRV9SRUdFWFAuZXhlYyh0eXBlKTtcbiAgICAgIHZhciBtaW1lID0gbWF0Y2ggJiYgZGJbbWF0Y2hbMV0udG9Mb3dlckNhc2UoKV07XG4gICAgICBpZiAobWltZSAmJiBtaW1lLmNoYXJzZXQpIHtcbiAgICAgICAgcmV0dXJuIG1pbWUuY2hhcnNldDtcbiAgICAgIH1cbiAgICAgIGlmIChtYXRjaCAmJiBURVhUX1RZUEVfUkVHRVhQLnRlc3QobWF0Y2hbMV0pKSB7XG4gICAgICAgIHJldHVybiBcIlVURi04XCI7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnRlbnRUeXBlMihzdHIpIHtcbiAgICAgIGlmICghc3RyIHx8IHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIG1pbWUgPSBzdHIuaW5kZXhPZihcIi9cIikgPT09IC0xID8gZXhwb3J0czIubG9va3VwKHN0cikgOiBzdHI7XG4gICAgICBpZiAoIW1pbWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKG1pbWUuaW5kZXhPZihcImNoYXJzZXRcIikgPT09IC0xKSB7XG4gICAgICAgIHZhciBjaGFyc2V0MiA9IGV4cG9ydHMyLmNoYXJzZXQobWltZSk7XG4gICAgICAgIGlmIChjaGFyc2V0MikgbWltZSArPSBcIjsgY2hhcnNldD1cIiArIGNoYXJzZXQyLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWltZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZXh0ZW5zaW9uKHR5cGUpIHtcbiAgICAgIGlmICghdHlwZSB8fCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgbWF0Y2ggPSBFWFRSQUNUX1RZUEVfUkVHRVhQLmV4ZWModHlwZSk7XG4gICAgICB2YXIgZXh0cyA9IG1hdGNoICYmIGV4cG9ydHMyLmV4dGVuc2lvbnNbbWF0Y2hbMV0udG9Mb3dlckNhc2UoKV07XG4gICAgICBpZiAoIWV4dHMgfHwgIWV4dHMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBleHRzWzBdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsb29rdXAocGF0aCkge1xuICAgICAgaWYgKCFwYXRoIHx8IHR5cGVvZiBwYXRoICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBleHRlbnNpb24yID0gZXh0bmFtZShcInguXCIgKyBwYXRoKS50b0xvd2VyQ2FzZSgpLnNsaWNlKDEpO1xuICAgICAgaWYgKCFleHRlbnNpb24yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBleHBvcnRzMi50eXBlc1tleHRlbnNpb24yXSB8fCBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wdWxhdGVNYXBzKGV4dGVuc2lvbnMsIHR5cGVzKSB7XG4gICAgICBPYmplY3Qua2V5cyhkYikuZm9yRWFjaChmdW5jdGlvbiBmb3JFYWNoTWltZVR5cGUodHlwZSkge1xuICAgICAgICB2YXIgbWltZSA9IGRiW3R5cGVdO1xuICAgICAgICB2YXIgZXh0cyA9IG1pbWUuZXh0ZW5zaW9ucztcbiAgICAgICAgaWYgKCFleHRzIHx8ICFleHRzLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBleHRlbnNpb25zW3R5cGVdID0gZXh0cztcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdmFyIGV4dGVuc2lvbjIgPSBleHRzW2ldO1xuICAgICAgICAgIHR5cGVzW2V4dGVuc2lvbjJdID0gX3ByZWZlcnJlZFR5cGUoZXh0ZW5zaW9uMiwgdHlwZXNbZXh0ZW5zaW9uMl0sIHR5cGUpO1xuICAgICAgICAgIGNvbnN0IGxlZ2FjeVR5cGUgPSBfcHJlZmVycmVkVHlwZUxlZ2FjeShcbiAgICAgICAgICAgIGV4dGVuc2lvbjIsXG4gICAgICAgICAgICB0eXBlc1tleHRlbnNpb24yXSxcbiAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChsZWdhY3lUeXBlICE9PSB0eXBlc1tleHRlbnNpb24yXSkge1xuICAgICAgICAgICAgZXhwb3J0czIuX2V4dGVuc2lvbkNvbmZsaWN0cy5wdXNoKFtleHRlbnNpb24yLCBsZWdhY3lUeXBlLCB0eXBlc1tleHRlbnNpb24yXV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9wcmVmZXJyZWRUeXBlKGV4dCwgdHlwZTAsIHR5cGUxKSB7XG4gICAgICB2YXIgc2NvcmUwID0gdHlwZTAgPyBtaW1lU2NvcmUodHlwZTAsIGRiW3R5cGUwXS5zb3VyY2UpIDogMDtcbiAgICAgIHZhciBzY29yZTEgPSB0eXBlMSA/IG1pbWVTY29yZSh0eXBlMSwgZGJbdHlwZTFdLnNvdXJjZSkgOiAwO1xuICAgICAgcmV0dXJuIHNjb3JlMCA+IHNjb3JlMSA/IHR5cGUwIDogdHlwZTE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9wcmVmZXJyZWRUeXBlTGVnYWN5KGV4dCwgdHlwZTAsIHR5cGUxKSB7XG4gICAgICB2YXIgU09VUkNFX1JBTksgPSBbXCJuZ2lueFwiLCBcImFwYWNoZVwiLCB2b2lkIDAsIFwiaWFuYVwiXTtcbiAgICAgIHZhciBzY29yZTAgPSB0eXBlMCA/IFNPVVJDRV9SQU5LLmluZGV4T2YoZGJbdHlwZTBdLnNvdXJjZSkgOiAwO1xuICAgICAgdmFyIHNjb3JlMSA9IHR5cGUxID8gU09VUkNFX1JBTksuaW5kZXhPZihkYlt0eXBlMV0uc291cmNlKSA6IDA7XG4gICAgICBpZiAoZXhwb3J0czIudHlwZXNbZXh0ZW5zaW9uXSAhPT0gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIiAmJiAoc2NvcmUwID4gc2NvcmUxIHx8IHNjb3JlMCA9PT0gc2NvcmUxICYmIGV4cG9ydHMyLnR5cGVzW2V4dGVuc2lvbl0/LnNsaWNlKDAsIDEyKSA9PT0gXCJhcHBsaWNhdGlvbi9cIikpIHtcbiAgICAgICAgcmV0dXJuIHR5cGUwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNjb3JlMCA+IHNjb3JlMSA/IHR5cGUwIDogdHlwZTE7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL21lZGlhLXR5cGVyL2luZGV4LmpzXG52YXIgcmVxdWlyZV9tZWRpYV90eXBlciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9tZWRpYS10eXBlci9pbmRleC5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIFNVQlRZUEVfTkFNRV9SRUdFWFAgPSAvXltBLVphLXowLTldW0EtWmEtejAtOSEjJCZeXy4tXXswLDEyNn0kLztcbiAgICB2YXIgVFlQRV9OQU1FX1JFR0VYUCA9IC9eW0EtWmEtejAtOV1bQS1aYS16MC05ISMkJl5fLV17MCwxMjZ9JC87XG4gICAgdmFyIFRZUEVfUkVHRVhQID0gL14gKihbQS1aYS16MC05XVtBLVphLXowLTkhIyQmXl8tXXswLDEyNn0pXFwvKFtBLVphLXowLTldW0EtWmEtejAtOSEjJCZeXy4rLV17MCwxMjZ9KSAqJC87XG4gICAgZXhwb3J0czIuZm9ybWF0ID0gZm9ybWF0O1xuICAgIGV4cG9ydHMyLnBhcnNlID0gcGFyc2U7XG4gICAgZXhwb3J0czIudGVzdCA9IHRlc3Q7XG4gICAgZnVuY3Rpb24gZm9ybWF0KG9iaikge1xuICAgICAgaWYgKCFvYmogfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgb2JqIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHN1YnR5cGUgPSBvYmouc3VidHlwZTtcbiAgICAgIHZhciBzdWZmaXggPSBvYmouc3VmZml4O1xuICAgICAgdmFyIHR5cGUgPSBvYmoudHlwZTtcbiAgICAgIGlmICghdHlwZSB8fCAhVFlQRV9OQU1FX1JFR0VYUC50ZXN0KHR5cGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIHR5cGVcIik7XG4gICAgICB9XG4gICAgICBpZiAoIXN1YnR5cGUgfHwgIVNVQlRZUEVfTkFNRV9SRUdFWFAudGVzdChzdWJ0eXBlKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBzdWJ0eXBlXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHN0cmluZyA9IHR5cGUgKyBcIi9cIiArIHN1YnR5cGU7XG4gICAgICBpZiAoc3VmZml4KSB7XG4gICAgICAgIGlmICghVFlQRV9OQU1FX1JFR0VYUC50ZXN0KHN1ZmZpeCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBzdWZmaXhcIik7XG4gICAgICAgIH1cbiAgICAgICAgc3RyaW5nICs9IFwiK1wiICsgc3VmZml4O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cmluZztcbiAgICB9XG4gICAgZnVuY3Rpb24gdGVzdChzdHJpbmcpIHtcbiAgICAgIGlmICghc3RyaW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzdHJpbmcgaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHN0cmluZyAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgc3RyaW5nIGlzIHJlcXVpcmVkIHRvIGJlIGEgc3RyaW5nXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFRZUEVfUkVHRVhQLnRlc3Qoc3RyaW5nLnRvTG93ZXJDYXNlKCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZShzdHJpbmcpIHtcbiAgICAgIGlmICghc3RyaW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzdHJpbmcgaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHN0cmluZyAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgc3RyaW5nIGlzIHJlcXVpcmVkIHRvIGJlIGEgc3RyaW5nXCIpO1xuICAgICAgfVxuICAgICAgdmFyIG1hdGNoID0gVFlQRV9SRUdFWFAuZXhlYyhzdHJpbmcudG9Mb3dlckNhc2UoKSk7XG4gICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIG1lZGlhIHR5cGVcIik7XG4gICAgICB9XG4gICAgICB2YXIgdHlwZSA9IG1hdGNoWzFdO1xuICAgICAgdmFyIHN1YnR5cGUgPSBtYXRjaFsyXTtcbiAgICAgIHZhciBzdWZmaXg7XG4gICAgICB2YXIgaW5kZXggPSBzdWJ0eXBlLmxhc3RJbmRleE9mKFwiK1wiKTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgc3VmZml4ID0gc3VidHlwZS5zdWJzdHIoaW5kZXggKyAxKTtcbiAgICAgICAgc3VidHlwZSA9IHN1YnR5cGUuc3Vic3RyKDAsIGluZGV4KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgTWVkaWFUeXBlKHR5cGUsIHN1YnR5cGUsIHN1ZmZpeCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIE1lZGlhVHlwZSh0eXBlLCBzdWJ0eXBlLCBzdWZmaXgpIHtcbiAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgICB0aGlzLnN1YnR5cGUgPSBzdWJ0eXBlO1xuICAgICAgdGhpcy5zdWZmaXggPSBzdWZmaXg7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3R5cGUtaXMvaW5kZXguanNcbnZhciByZXF1aXJlX3R5cGVfaXMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvdHlwZS1pcy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGNvbnRlbnRUeXBlMiA9IHJlcXVpcmVfY29udGVudF90eXBlKCk7XG4gICAgdmFyIG1pbWUgPSByZXF1aXJlX21pbWVfdHlwZXMoKTtcbiAgICB2YXIgdHlwZXIgPSByZXF1aXJlX21lZGlhX3R5cGVyKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gdHlwZW9mcmVxdWVzdDtcbiAgICBtb2R1bGUyLmV4cG9ydHMuaXMgPSB0eXBlaXM7XG4gICAgbW9kdWxlMi5leHBvcnRzLmhhc0JvZHkgPSBoYXNib2R5O1xuICAgIG1vZHVsZTIuZXhwb3J0cy5ub3JtYWxpemUgPSBub3JtYWxpemU7XG4gICAgbW9kdWxlMi5leHBvcnRzLm1hdGNoID0gbWltZU1hdGNoO1xuICAgIGZ1bmN0aW9uIHR5cGVpcyh2YWx1ZSwgdHlwZXNfKSB7XG4gICAgICB2YXIgaTtcbiAgICAgIHZhciB0eXBlcyA9IHR5cGVzXztcbiAgICAgIHZhciB2YWwgPSB0cnlOb3JtYWxpemVUeXBlKHZhbHVlKTtcbiAgICAgIGlmICghdmFsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlcyAmJiAhQXJyYXkuaXNBcnJheSh0eXBlcykpIHtcbiAgICAgICAgdHlwZXMgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB0eXBlc1tpXSA9IGFyZ3VtZW50c1tpICsgMV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdHlwZXMgfHwgIXR5cGVzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgfVxuICAgICAgdmFyIHR5cGU7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgdHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKG1pbWVNYXRjaChub3JtYWxpemUodHlwZSA9IHR5cGVzW2ldKSwgdmFsKSkge1xuICAgICAgICAgIHJldHVybiB0eXBlWzBdID09PSBcIitcIiB8fCB0eXBlLmluZGV4T2YoXCIqXCIpICE9PSAtMSA/IHZhbCA6IHR5cGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFzYm9keShyZXEpIHtcbiAgICAgIHJldHVybiByZXEuaGVhZGVyc1tcInRyYW5zZmVyLWVuY29kaW5nXCJdICE9PSB2b2lkIDAgfHwgIWlzTmFOKHJlcS5oZWFkZXJzW1wiY29udGVudC1sZW5ndGhcIl0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0eXBlb2ZyZXF1ZXN0KHJlcSwgdHlwZXNfKSB7XG4gICAgICBpZiAoIWhhc2JvZHkocmVxKSkgcmV0dXJuIG51bGw7XG4gICAgICB2YXIgdHlwZXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiA/IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSkgOiB0eXBlc187XG4gICAgICB2YXIgdmFsdWUgPSByZXEuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXTtcbiAgICAgIHJldHVybiB0eXBlaXModmFsdWUsIHR5cGVzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm9ybWFsaXplKHR5cGUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBcInVybGVuY29kZWRcIjpcbiAgICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIjtcbiAgICAgICAgY2FzZSBcIm11bHRpcGFydFwiOlxuICAgICAgICAgIHJldHVybiBcIm11bHRpcGFydC8qXCI7XG4gICAgICB9XG4gICAgICBpZiAodHlwZVswXSA9PT0gXCIrXCIpIHtcbiAgICAgICAgcmV0dXJuIFwiKi8qXCIgKyB0eXBlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHR5cGUuaW5kZXhPZihcIi9cIikgPT09IC0xID8gbWltZS5sb29rdXAodHlwZSkgOiB0eXBlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtaW1lTWF0Y2goZXhwZWN0ZWQsIGFjdHVhbCkge1xuICAgICAgaWYgKGV4cGVjdGVkID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgYWN0dWFsUGFydHMgPSBhY3R1YWwuc3BsaXQoXCIvXCIpO1xuICAgICAgdmFyIGV4cGVjdGVkUGFydHMgPSBleHBlY3RlZC5zcGxpdChcIi9cIik7XG4gICAgICBpZiAoYWN0dWFsUGFydHMubGVuZ3RoICE9PSAyIHx8IGV4cGVjdGVkUGFydHMubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChleHBlY3RlZFBhcnRzWzBdICE9PSBcIipcIiAmJiBleHBlY3RlZFBhcnRzWzBdICE9PSBhY3R1YWxQYXJ0c1swXSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoZXhwZWN0ZWRQYXJ0c1sxXS5zbGljZSgwLCAyKSA9PT0gXCIqK1wiKSB7XG4gICAgICAgIHJldHVybiBleHBlY3RlZFBhcnRzWzFdLmxlbmd0aCA8PSBhY3R1YWxQYXJ0c1sxXS5sZW5ndGggKyAxICYmIGV4cGVjdGVkUGFydHNbMV0uc2xpY2UoMSkgPT09IGFjdHVhbFBhcnRzWzFdLnNsaWNlKDEgLSBleHBlY3RlZFBhcnRzWzFdLmxlbmd0aCk7XG4gICAgICB9XG4gICAgICBpZiAoZXhwZWN0ZWRQYXJ0c1sxXSAhPT0gXCIqXCIgJiYgZXhwZWN0ZWRQYXJ0c1sxXSAhPT0gYWN0dWFsUGFydHNbMV0pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVR5cGUodmFsdWUpIHtcbiAgICAgIHZhciB0eXBlID0gY29udGVudFR5cGUyLnBhcnNlKHZhbHVlKS50eXBlO1xuICAgICAgcmV0dXJuIHR5cGVyLnRlc3QodHlwZSkgPyB0eXBlIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJ5Tm9ybWFsaXplVHlwZSh2YWx1ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID8gbm9ybWFsaXplVHlwZSh2YWx1ZSkgOiBudWxsO1xuICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbGliL3V0aWxzLmpzXG52YXIgcmVxdWlyZV91dGlscyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9saWIvdXRpbHMuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBieXRlcyA9IHJlcXVpcmVfYnl0ZXMoKTtcbiAgICB2YXIgY29udGVudFR5cGUyID0gcmVxdWlyZV9jb250ZW50X3R5cGUoKTtcbiAgICB2YXIgdHlwZWlzID0gcmVxdWlyZV90eXBlX2lzKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgZ2V0Q2hhcnNldCxcbiAgICAgIG5vcm1hbGl6ZU9wdGlvbnNcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGdldENoYXJzZXQocmVxKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gKGNvbnRlbnRUeXBlMi5wYXJzZShyZXEpLnBhcmFtZXRlcnMuY2hhcnNldCB8fCBcIlwiKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHR5cGVDaGVja2VyKHR5cGUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiBjaGVja1R5cGUocmVxKSB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHR5cGVpcyhyZXEsIHR5cGUpKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9ucywgZGVmYXVsdFR5cGUpIHtcbiAgICAgIGlmICghZGVmYXVsdFR5cGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImRlZmF1bHRUeXBlIG11c3QgYmUgcHJvdmlkZWRcIik7XG4gICAgICB9XG4gICAgICB2YXIgaW5mbGF0ZSA9IG9wdGlvbnM/LmluZmxhdGUgIT09IGZhbHNlO1xuICAgICAgdmFyIGxpbWl0ID0gdHlwZW9mIG9wdGlvbnM/LmxpbWl0ICE9PSBcIm51bWJlclwiID8gYnl0ZXMucGFyc2Uob3B0aW9ucz8ubGltaXQgfHwgXCIxMDBrYlwiKSA6IG9wdGlvbnM/LmxpbWl0O1xuICAgICAgdmFyIHR5cGUgPSBvcHRpb25zPy50eXBlIHx8IGRlZmF1bHRUeXBlO1xuICAgICAgdmFyIHZlcmlmeSA9IG9wdGlvbnM/LnZlcmlmeSB8fCBmYWxzZTtcbiAgICAgIGlmICh2ZXJpZnkgIT09IGZhbHNlICYmIHR5cGVvZiB2ZXJpZnkgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIHZlcmlmeSBtdXN0IGJlIGZ1bmN0aW9uXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHNob3VsZFBhcnNlID0gdHlwZW9mIHR5cGUgIT09IFwiZnVuY3Rpb25cIiA/IHR5cGVDaGVja2VyKHR5cGUpIDogdHlwZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGluZmxhdGUsXG4gICAgICAgIGxpbWl0LFxuICAgICAgICB2ZXJpZnksXG4gICAgICAgIHNob3VsZFBhcnNlXG4gICAgICB9O1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9saWIvdHlwZXMvanNvbi5qc1xudmFyIHJlcXVpcmVfanNvbiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9saWIvdHlwZXMvanNvbi5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGNyZWF0ZUVycm9yID0gcmVxdWlyZV9odHRwX2Vycm9ycygpO1xuICAgIHZhciBkZWJ1ZyA9IHJlcXVpcmVfc3JjKCkoXCJib2R5LXBhcnNlcjpqc29uXCIpO1xuICAgIHZhciBpc0ZpbmlzaGVkID0gcmVxdWlyZV9vbl9maW5pc2hlZCgpLmlzRmluaXNoZWQ7XG4gICAgdmFyIHJlYWQgPSByZXF1aXJlX3JlYWQoKTtcbiAgICB2YXIgdHlwZWlzID0gcmVxdWlyZV90eXBlX2lzKCk7XG4gICAgdmFyIHsgZ2V0Q2hhcnNldCwgbm9ybWFsaXplT3B0aW9ucyB9ID0gcmVxdWlyZV91dGlscygpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGpzb247XG4gICAgdmFyIEZJUlNUX0NIQVJfUkVHRVhQID0gL15bXFx4MjBcXHgwOVxceDBhXFx4MGRdKihbXlxceDIwXFx4MDlcXHgwYVxceDBkXSkvO1xuICAgIHZhciBKU09OX1NZTlRBWF9DSEFSID0gXCIjXCI7XG4gICAgdmFyIEpTT05fU1lOVEFYX1JFR0VYUCA9IC8jKy9nO1xuICAgIGZ1bmN0aW9uIGpzb24ob3B0aW9ucykge1xuICAgICAgdmFyIHsgaW5mbGF0ZSwgbGltaXQsIHZlcmlmeSwgc2hvdWxkUGFyc2UgfSA9IG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9ucywgXCJhcHBsaWNhdGlvbi9qc29uXCIpO1xuICAgICAgdmFyIHJldml2ZXIgPSBvcHRpb25zPy5yZXZpdmVyO1xuICAgICAgdmFyIHN0cmljdCA9IG9wdGlvbnM/LnN0cmljdCAhPT0gZmFsc2U7XG4gICAgICBmdW5jdGlvbiBwYXJzZShib2R5KSB7XG4gICAgICAgIGlmIChib2R5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgdmFyIGZpcnN0ID0gZmlyc3RjaGFyKGJvZHkpO1xuICAgICAgICAgIGlmIChmaXJzdCAhPT0gXCJ7XCIgJiYgZmlyc3QgIT09IFwiW1wiKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcInN0cmljdCB2aW9sYXRpb25cIik7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVTdHJpY3RTeW50YXhFcnJvcihib2R5LCBmaXJzdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZGVidWcoXCJwYXJzZSBqc29uXCIpO1xuICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGJvZHksIHJldml2ZXIpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhyb3cgbm9ybWFsaXplSnNvblN5bnRheEVycm9yKGUsIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbiBqc29uUGFyc2VyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICAgIGlmIChpc0ZpbmlzaGVkKHJlcSkpIHtcbiAgICAgICAgICBkZWJ1ZyhcImJvZHkgYWxyZWFkeSBwYXJzZWRcIik7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShcImJvZHlcIiBpbiByZXEpKSB7XG4gICAgICAgICAgcmVxLmJvZHkgPSB2b2lkIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0eXBlaXMuaGFzQm9keShyZXEpKSB7XG4gICAgICAgICAgZGVidWcoXCJza2lwIGVtcHR5IGJvZHlcIik7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkZWJ1ZyhcImNvbnRlbnQtdHlwZSAlalwiLCByZXEuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSk7XG4gICAgICAgIGlmICghc2hvdWxkUGFyc2UocmVxKSkge1xuICAgICAgICAgIGRlYnVnKFwic2tpcCBwYXJzaW5nXCIpO1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNoYXJzZXQgPSBnZXRDaGFyc2V0KHJlcSkgfHwgXCJ1dGYtOFwiO1xuICAgICAgICBpZiAoY2hhcnNldC5zbGljZSgwLCA0KSAhPT0gXCJ1dGYtXCIpIHtcbiAgICAgICAgICBkZWJ1ZyhcImludmFsaWQgY2hhcnNldFwiKTtcbiAgICAgICAgICBuZXh0KGNyZWF0ZUVycm9yKDQxNSwgJ3Vuc3VwcG9ydGVkIGNoYXJzZXQgXCInICsgY2hhcnNldC50b1VwcGVyQ2FzZSgpICsgJ1wiJywge1xuICAgICAgICAgICAgY2hhcnNldCxcbiAgICAgICAgICAgIHR5cGU6IFwiY2hhcnNldC51bnN1cHBvcnRlZFwiXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZWFkKHJlcSwgcmVzLCBuZXh0LCBwYXJzZSwgZGVidWcsIHtcbiAgICAgICAgICBlbmNvZGluZzogY2hhcnNldCxcbiAgICAgICAgICBpbmZsYXRlLFxuICAgICAgICAgIGxpbWl0LFxuICAgICAgICAgIHZlcmlmeVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVN0cmljdFN5bnRheEVycm9yKHN0ciwgY2hhcikge1xuICAgICAgdmFyIGluZGV4ID0gc3RyLmluZGV4T2YoY2hhcik7XG4gICAgICB2YXIgcGFydGlhbCA9IFwiXCI7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIHBhcnRpYWwgPSBzdHIuc3Vic3RyaW5nKDAsIGluZGV4KSArIEpTT05fU1lOVEFYX0NIQVI7XG4gICAgICAgIGZvciAodmFyIGkgPSBpbmRleCArIDE7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBwYXJ0aWFsICs9IEpTT05fU1lOVEFYX0NIQVI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIEpTT04ucGFyc2UocGFydGlhbCk7XG4gICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihcInN0cmljdCB2aW9sYXRpb25cIik7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVKc29uU3ludGF4RXJyb3IoZSwge1xuICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZS5yZXBsYWNlKEpTT05fU1lOVEFYX1JFR0VYUCwgZnVuY3Rpb24ocGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHIuc3Vic3RyaW5nKGluZGV4LCBpbmRleCArIHBsYWNlaG9sZGVyLmxlbmd0aCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3RhY2s6IGUuc3RhY2tcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpcnN0Y2hhcihzdHIpIHtcbiAgICAgIHZhciBtYXRjaCA9IEZJUlNUX0NIQVJfUkVHRVhQLmV4ZWMoc3RyKTtcbiAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoWzFdIDogdm9pZCAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub3JtYWxpemVKc29uU3ludGF4RXJyb3IoZXJyb3IsIG9iaikge1xuICAgICAgdmFyIGtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlcnJvcik7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgICAgIGlmIChrZXkgIT09IFwic3RhY2tcIiAmJiBrZXkgIT09IFwibWVzc2FnZVwiKSB7XG4gICAgICAgICAgZGVsZXRlIGVycm9yW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVycm9yLnN0YWNrID0gb2JqLnN0YWNrLnJlcGxhY2UoZXJyb3IubWVzc2FnZSwgb2JqLm1lc3NhZ2UpO1xuICAgICAgZXJyb3IubWVzc2FnZSA9IG9iai5tZXNzYWdlO1xuICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9saWIvdHlwZXMvcmF3LmpzXG52YXIgcmVxdWlyZV9yYXcgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbGliL3R5cGVzL3Jhdy5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGRlYnVnID0gcmVxdWlyZV9zcmMoKShcImJvZHktcGFyc2VyOnJhd1wiKTtcbiAgICB2YXIgaXNGaW5pc2hlZCA9IHJlcXVpcmVfb25fZmluaXNoZWQoKS5pc0ZpbmlzaGVkO1xuICAgIHZhciByZWFkID0gcmVxdWlyZV9yZWFkKCk7XG4gICAgdmFyIHR5cGVpcyA9IHJlcXVpcmVfdHlwZV9pcygpO1xuICAgIHZhciB7IG5vcm1hbGl6ZU9wdGlvbnMgfSA9IHJlcXVpcmVfdXRpbHMoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSByYXc7XG4gICAgZnVuY3Rpb24gcmF3KG9wdGlvbnMpIHtcbiAgICAgIHZhciB7IGluZmxhdGUsIGxpbWl0LCB2ZXJpZnksIHNob3VsZFBhcnNlIH0gPSBub3JtYWxpemVPcHRpb25zKG9wdGlvbnMsIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIpO1xuICAgICAgZnVuY3Rpb24gcGFyc2UoYnVmKSB7XG4gICAgICAgIHJldHVybiBidWY7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24gcmF3UGFyc2VyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICAgIGlmIChpc0ZpbmlzaGVkKHJlcSkpIHtcbiAgICAgICAgICBkZWJ1ZyhcImJvZHkgYWxyZWFkeSBwYXJzZWRcIik7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShcImJvZHlcIiBpbiByZXEpKSB7XG4gICAgICAgICAgcmVxLmJvZHkgPSB2b2lkIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0eXBlaXMuaGFzQm9keShyZXEpKSB7XG4gICAgICAgICAgZGVidWcoXCJza2lwIGVtcHR5IGJvZHlcIik7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkZWJ1ZyhcImNvbnRlbnQtdHlwZSAlalwiLCByZXEuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSk7XG4gICAgICAgIGlmICghc2hvdWxkUGFyc2UocmVxKSkge1xuICAgICAgICAgIGRlYnVnKFwic2tpcCBwYXJzaW5nXCIpO1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmVhZChyZXEsIHJlcywgbmV4dCwgcGFyc2UsIGRlYnVnLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IG51bGwsXG4gICAgICAgICAgaW5mbGF0ZSxcbiAgICAgICAgICBsaW1pdCxcbiAgICAgICAgICB2ZXJpZnlcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9saWIvdHlwZXMvdGV4dC5qc1xudmFyIHJlcXVpcmVfdGV4dCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9saWIvdHlwZXMvdGV4dC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGRlYnVnID0gcmVxdWlyZV9zcmMoKShcImJvZHktcGFyc2VyOnRleHRcIik7XG4gICAgdmFyIGlzRmluaXNoZWQgPSByZXF1aXJlX29uX2ZpbmlzaGVkKCkuaXNGaW5pc2hlZDtcbiAgICB2YXIgcmVhZCA9IHJlcXVpcmVfcmVhZCgpO1xuICAgIHZhciB0eXBlaXMgPSByZXF1aXJlX3R5cGVfaXMoKTtcbiAgICB2YXIgeyBnZXRDaGFyc2V0LCBub3JtYWxpemVPcHRpb25zIH0gPSByZXF1aXJlX3V0aWxzKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gdGV4dDtcbiAgICBmdW5jdGlvbiB0ZXh0KG9wdGlvbnMpIHtcbiAgICAgIHZhciB7IGluZmxhdGUsIGxpbWl0LCB2ZXJpZnksIHNob3VsZFBhcnNlIH0gPSBub3JtYWxpemVPcHRpb25zKG9wdGlvbnMsIFwidGV4dC9wbGFpblwiKTtcbiAgICAgIHZhciBkZWZhdWx0Q2hhcnNldCA9IG9wdGlvbnM/LmRlZmF1bHRDaGFyc2V0IHx8IFwidXRmLThcIjtcbiAgICAgIGZ1bmN0aW9uIHBhcnNlKGJ1Zikge1xuICAgICAgICByZXR1cm4gYnVmO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIHRleHRQYXJzZXIocmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgaWYgKGlzRmluaXNoZWQocmVxKSkge1xuICAgICAgICAgIGRlYnVnKFwiYm9keSBhbHJlYWR5IHBhcnNlZFwiKTtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKFwiYm9keVwiIGluIHJlcSkpIHtcbiAgICAgICAgICByZXEuYm9keSA9IHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXR5cGVpcy5oYXNCb2R5KHJlcSkpIHtcbiAgICAgICAgICBkZWJ1ZyhcInNraXAgZW1wdHkgYm9keVwiKTtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRlYnVnKFwiY29udGVudC10eXBlICVqXCIsIHJlcS5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdKTtcbiAgICAgICAgaWYgKCFzaG91bGRQYXJzZShyZXEpKSB7XG4gICAgICAgICAgZGVidWcoXCJza2lwIHBhcnNpbmdcIik7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2hhcnNldCA9IGdldENoYXJzZXQocmVxKSB8fCBkZWZhdWx0Q2hhcnNldDtcbiAgICAgICAgcmVhZChyZXEsIHJlcywgbmV4dCwgcGFyc2UsIGRlYnVnLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IGNoYXJzZXQsXG4gICAgICAgICAgaW5mbGF0ZSxcbiAgICAgICAgICBsaW1pdCxcbiAgICAgICAgICB2ZXJpZnlcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9lcy1lcnJvcnMvdHlwZS5qc1xudmFyIHJlcXVpcmVfdHlwZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9lcy1lcnJvcnMvdHlwZS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gVHlwZUVycm9yO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL29iamVjdC1pbnNwZWN0L3V0aWwuaW5zcGVjdC5qc1xudmFyIHJlcXVpcmVfdXRpbF9pbnNwZWN0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL29iamVjdC1pbnNwZWN0L3V0aWwuaW5zcGVjdC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcmVxdWlyZShcInV0aWxcIikuaW5zcGVjdDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9vYmplY3QtaW5zcGVjdC9pbmRleC5qc1xudmFyIHJlcXVpcmVfb2JqZWN0X2luc3BlY3QgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvb2JqZWN0LWluc3BlY3QvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIHZhciBoYXNNYXAgPSB0eXBlb2YgTWFwID09PSBcImZ1bmN0aW9uXCIgJiYgTWFwLnByb3RvdHlwZTtcbiAgICB2YXIgbWFwU2l6ZURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmIGhhc01hcCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTWFwLnByb3RvdHlwZSwgXCJzaXplXCIpIDogbnVsbDtcbiAgICB2YXIgbWFwU2l6ZSA9IGhhc01hcCAmJiBtYXBTaXplRGVzY3JpcHRvciAmJiB0eXBlb2YgbWFwU2l6ZURlc2NyaXB0b3IuZ2V0ID09PSBcImZ1bmN0aW9uXCIgPyBtYXBTaXplRGVzY3JpcHRvci5nZXQgOiBudWxsO1xuICAgIHZhciBtYXBGb3JFYWNoID0gaGFzTWFwICYmIE1hcC5wcm90b3R5cGUuZm9yRWFjaDtcbiAgICB2YXIgaGFzU2V0ID0gdHlwZW9mIFNldCA9PT0gXCJmdW5jdGlvblwiICYmIFNldC5wcm90b3R5cGU7XG4gICAgdmFyIHNldFNpemVEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciAmJiBoYXNTZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFNldC5wcm90b3R5cGUsIFwic2l6ZVwiKSA6IG51bGw7XG4gICAgdmFyIHNldFNpemUgPSBoYXNTZXQgJiYgc2V0U2l6ZURlc2NyaXB0b3IgJiYgdHlwZW9mIHNldFNpemVEZXNjcmlwdG9yLmdldCA9PT0gXCJmdW5jdGlvblwiID8gc2V0U2l6ZURlc2NyaXB0b3IuZ2V0IDogbnVsbDtcbiAgICB2YXIgc2V0Rm9yRWFjaCA9IGhhc1NldCAmJiBTZXQucHJvdG90eXBlLmZvckVhY2g7XG4gICAgdmFyIGhhc1dlYWtNYXAgPSB0eXBlb2YgV2Vha01hcCA9PT0gXCJmdW5jdGlvblwiICYmIFdlYWtNYXAucHJvdG90eXBlO1xuICAgIHZhciB3ZWFrTWFwSGFzID0gaGFzV2Vha01hcCA/IFdlYWtNYXAucHJvdG90eXBlLmhhcyA6IG51bGw7XG4gICAgdmFyIGhhc1dlYWtTZXQgPSB0eXBlb2YgV2Vha1NldCA9PT0gXCJmdW5jdGlvblwiICYmIFdlYWtTZXQucHJvdG90eXBlO1xuICAgIHZhciB3ZWFrU2V0SGFzID0gaGFzV2Vha1NldCA/IFdlYWtTZXQucHJvdG90eXBlLmhhcyA6IG51bGw7XG4gICAgdmFyIGhhc1dlYWtSZWYgPSB0eXBlb2YgV2Vha1JlZiA9PT0gXCJmdW5jdGlvblwiICYmIFdlYWtSZWYucHJvdG90eXBlO1xuICAgIHZhciB3ZWFrUmVmRGVyZWYgPSBoYXNXZWFrUmVmID8gV2Vha1JlZi5wcm90b3R5cGUuZGVyZWYgOiBudWxsO1xuICAgIHZhciBib29sZWFuVmFsdWVPZiA9IEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2Y7XG4gICAgdmFyIG9iamVjdFRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbiAgICB2YXIgZnVuY3Rpb25Ub1N0cmluZyA9IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZztcbiAgICB2YXIgJG1hdGNoID0gU3RyaW5nLnByb3RvdHlwZS5tYXRjaDtcbiAgICB2YXIgJHNsaWNlID0gU3RyaW5nLnByb3RvdHlwZS5zbGljZTtcbiAgICB2YXIgJHJlcGxhY2UgPSBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2U7XG4gICAgdmFyICR0b1VwcGVyQ2FzZSA9IFN0cmluZy5wcm90b3R5cGUudG9VcHBlckNhc2U7XG4gICAgdmFyICR0b0xvd2VyQ2FzZSA9IFN0cmluZy5wcm90b3R5cGUudG9Mb3dlckNhc2U7XG4gICAgdmFyICR0ZXN0ID0gUmVnRXhwLnByb3RvdHlwZS50ZXN0O1xuICAgIHZhciAkY29uY2F0ID0gQXJyYXkucHJvdG90eXBlLmNvbmNhdDtcbiAgICB2YXIgJGpvaW4gPSBBcnJheS5wcm90b3R5cGUuam9pbjtcbiAgICB2YXIgJGFyclNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlO1xuICAgIHZhciAkZmxvb3IgPSBNYXRoLmZsb29yO1xuICAgIHZhciBiaWdJbnRWYWx1ZU9mID0gdHlwZW9mIEJpZ0ludCA9PT0gXCJmdW5jdGlvblwiID8gQmlnSW50LnByb3RvdHlwZS52YWx1ZU9mIDogbnVsbDtcbiAgICB2YXIgZ09QUyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG4gICAgdmFyIHN5bVRvU3RyaW5nID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIgPyBTeW1ib2wucHJvdG90eXBlLnRvU3RyaW5nIDogbnVsbDtcbiAgICB2YXIgaGFzU2hhbW1lZFN5bWJvbHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJvYmplY3RcIjtcbiAgICB2YXIgdG9TdHJpbmdUYWcgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLnRvU3RyaW5nVGFnICYmICh0eXBlb2YgU3ltYm9sLnRvU3RyaW5nVGFnID09PSBoYXNTaGFtbWVkU3ltYm9scyA/IFwib2JqZWN0XCIgOiBcInN5bWJvbFwiKSA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IG51bGw7XG4gICAgdmFyIGlzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG4gICAgdmFyIGdQTyA9ICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJmdW5jdGlvblwiID8gUmVmbGVjdC5nZXRQcm90b3R5cGVPZiA6IE9iamVjdC5nZXRQcm90b3R5cGVPZikgfHwgKFtdLl9fcHJvdG9fXyA9PT0gQXJyYXkucHJvdG90eXBlID8gZnVuY3Rpb24oTykge1xuICAgICAgcmV0dXJuIE8uX19wcm90b19fO1xuICAgIH0gOiBudWxsKTtcbiAgICBmdW5jdGlvbiBhZGROdW1lcmljU2VwYXJhdG9yKG51bSwgc3RyKSB7XG4gICAgICBpZiAobnVtID09PSBJbmZpbml0eSB8fCBudW0gPT09IC1JbmZpbml0eSB8fCBudW0gIT09IG51bSB8fCBudW0gJiYgbnVtID4gLTFlMyAmJiBudW0gPCAxZTMgfHwgJHRlc3QuY2FsbCgvZS8sIHN0cikpIHtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgIH1cbiAgICAgIHZhciBzZXBSZWdleCA9IC9bMC05XSg/PSg/OlswLTldezN9KSsoPyFbMC05XSkpL2c7XG4gICAgICBpZiAodHlwZW9mIG51bSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICB2YXIgaW50ID0gbnVtIDwgMCA/IC0kZmxvb3IoLW51bSkgOiAkZmxvb3IobnVtKTtcbiAgICAgICAgaWYgKGludCAhPT0gbnVtKSB7XG4gICAgICAgICAgdmFyIGludFN0ciA9IFN0cmluZyhpbnQpO1xuICAgICAgICAgIHZhciBkZWMgPSAkc2xpY2UuY2FsbChzdHIsIGludFN0ci5sZW5ndGggKyAxKTtcbiAgICAgICAgICByZXR1cm4gJHJlcGxhY2UuY2FsbChpbnRTdHIsIHNlcFJlZ2V4LCBcIiQmX1wiKSArIFwiLlwiICsgJHJlcGxhY2UuY2FsbCgkcmVwbGFjZS5jYWxsKGRlYywgLyhbMC05XXszfSkvZywgXCIkJl9cIiksIC9fJC8sIFwiXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gJHJlcGxhY2UuY2FsbChzdHIsIHNlcFJlZ2V4LCBcIiQmX1wiKTtcbiAgICB9XG4gICAgdmFyIHV0aWxJbnNwZWN0ID0gcmVxdWlyZV91dGlsX2luc3BlY3QoKTtcbiAgICB2YXIgaW5zcGVjdEN1c3RvbSA9IHV0aWxJbnNwZWN0LmN1c3RvbTtcbiAgICB2YXIgaW5zcGVjdFN5bWJvbCA9IGlzU3ltYm9sKGluc3BlY3RDdXN0b20pID8gaW5zcGVjdEN1c3RvbSA6IG51bGw7XG4gICAgdmFyIHF1b3RlcyA9IHtcbiAgICAgIF9fcHJvdG9fXzogbnVsbCxcbiAgICAgIFwiZG91YmxlXCI6ICdcIicsXG4gICAgICBzaW5nbGU6IFwiJ1wiXG4gICAgfTtcbiAgICB2YXIgcXVvdGVSRXMgPSB7XG4gICAgICBfX3Byb3RvX186IG51bGwsXG4gICAgICBcImRvdWJsZVwiOiAvKFtcIlxcXFxdKS9nLFxuICAgICAgc2luZ2xlOiAvKFsnXFxcXF0pL2dcbiAgICB9O1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIGluc3BlY3RfKG9iaiwgb3B0aW9ucywgZGVwdGgsIHNlZW4pIHtcbiAgICAgIHZhciBvcHRzID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIGlmIChoYXMob3B0cywgXCJxdW90ZVN0eWxlXCIpICYmICFoYXMocXVvdGVzLCBvcHRzLnF1b3RlU3R5bGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbiBcInF1b3RlU3R5bGVcIiBtdXN0IGJlIFwic2luZ2xlXCIgb3IgXCJkb3VibGVcIicpO1xuICAgICAgfVxuICAgICAgaWYgKGhhcyhvcHRzLCBcIm1heFN0cmluZ0xlbmd0aFwiKSAmJiAodHlwZW9mIG9wdHMubWF4U3RyaW5nTGVuZ3RoID09PSBcIm51bWJlclwiID8gb3B0cy5tYXhTdHJpbmdMZW5ndGggPCAwICYmIG9wdHMubWF4U3RyaW5nTGVuZ3RoICE9PSBJbmZpbml0eSA6IG9wdHMubWF4U3RyaW5nTGVuZ3RoICE9PSBudWxsKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gXCJtYXhTdHJpbmdMZW5ndGhcIiwgaWYgcHJvdmlkZWQsIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCBJbmZpbml0eSwgb3IgYG51bGxgJyk7XG4gICAgICB9XG4gICAgICB2YXIgY3VzdG9tSW5zcGVjdCA9IGhhcyhvcHRzLCBcImN1c3RvbUluc3BlY3RcIikgPyBvcHRzLmN1c3RvbUluc3BlY3QgOiB0cnVlO1xuICAgICAgaWYgKHR5cGVvZiBjdXN0b21JbnNwZWN0ICE9PSBcImJvb2xlYW5cIiAmJiBjdXN0b21JbnNwZWN0ICE9PSBcInN5bWJvbFwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gXFxcImN1c3RvbUluc3BlY3RcXFwiLCBpZiBwcm92aWRlZCwgbXVzdCBiZSBgdHJ1ZWAsIGBmYWxzZWAsIG9yIGAnc3ltYm9sJ2BcIik7XG4gICAgICB9XG4gICAgICBpZiAoaGFzKG9wdHMsIFwiaW5kZW50XCIpICYmIG9wdHMuaW5kZW50ICE9PSBudWxsICYmIG9wdHMuaW5kZW50ICE9PSBcIlx0XCIgJiYgIShwYXJzZUludChvcHRzLmluZGVudCwgMTApID09PSBvcHRzLmluZGVudCAmJiBvcHRzLmluZGVudCA+IDApKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbiBcImluZGVudFwiIG11c3QgYmUgXCJcXFxcdFwiLCBhbiBpbnRlZ2VyID4gMCwgb3IgYG51bGxgJyk7XG4gICAgICB9XG4gICAgICBpZiAoaGFzKG9wdHMsIFwibnVtZXJpY1NlcGFyYXRvclwiKSAmJiB0eXBlb2Ygb3B0cy5udW1lcmljU2VwYXJhdG9yICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gXCJudW1lcmljU2VwYXJhdG9yXCIsIGlmIHByb3ZpZGVkLCBtdXN0IGJlIGB0cnVlYCBvciBgZmFsc2VgJyk7XG4gICAgICB9XG4gICAgICB2YXIgbnVtZXJpY1NlcGFyYXRvciA9IG9wdHMubnVtZXJpY1NlcGFyYXRvcjtcbiAgICAgIGlmICh0eXBlb2Ygb2JqID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHJldHVybiBcInVuZGVmaW5lZFwiO1xuICAgICAgfVxuICAgICAgaWYgKG9iaiA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gXCJudWxsXCI7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG9iaiA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgcmV0dXJuIG9iaiA/IFwidHJ1ZVwiIDogXCJmYWxzZVwiO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGluc3BlY3RTdHJpbmcob2JqLCBvcHRzKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygb2JqID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIGlmIChvYmogPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gSW5maW5pdHkgLyBvYmogPiAwID8gXCIwXCIgOiBcIi0wXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHN0ciA9IFN0cmluZyhvYmopO1xuICAgICAgICByZXR1cm4gbnVtZXJpY1NlcGFyYXRvciA/IGFkZE51bWVyaWNTZXBhcmF0b3Iob2JqLCBzdHIpIDogc3RyO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvYmogPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgdmFyIGJpZ0ludFN0ciA9IFN0cmluZyhvYmopICsgXCJuXCI7XG4gICAgICAgIHJldHVybiBudW1lcmljU2VwYXJhdG9yID8gYWRkTnVtZXJpY1NlcGFyYXRvcihvYmosIGJpZ0ludFN0cikgOiBiaWdJbnRTdHI7XG4gICAgICB9XG4gICAgICB2YXIgbWF4RGVwdGggPSB0eXBlb2Ygb3B0cy5kZXB0aCA9PT0gXCJ1bmRlZmluZWRcIiA/IDUgOiBvcHRzLmRlcHRoO1xuICAgICAgaWYgKHR5cGVvZiBkZXB0aCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBkZXB0aCA9IDA7XG4gICAgICB9XG4gICAgICBpZiAoZGVwdGggPj0gbWF4RGVwdGggJiYgbWF4RGVwdGggPiAwICYmIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgcmV0dXJuIGlzQXJyYXkob2JqKSA/IFwiW0FycmF5XVwiIDogXCJbT2JqZWN0XVwiO1xuICAgICAgfVxuICAgICAgdmFyIGluZGVudCA9IGdldEluZGVudChvcHRzLCBkZXB0aCk7XG4gICAgICBpZiAodHlwZW9mIHNlZW4gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgc2VlbiA9IFtdO1xuICAgICAgfSBlbHNlIGlmIChpbmRleE9mKHNlZW4sIG9iaikgPj0gMCkge1xuICAgICAgICByZXR1cm4gXCJbQ2lyY3VsYXJdXCI7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBpbnNwZWN0KHZhbHVlLCBmcm9tLCBub0luZGVudCkge1xuICAgICAgICBpZiAoZnJvbSkge1xuICAgICAgICAgIHNlZW4gPSAkYXJyU2xpY2UuY2FsbChzZWVuKTtcbiAgICAgICAgICBzZWVuLnB1c2goZnJvbSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vSW5kZW50KSB7XG4gICAgICAgICAgdmFyIG5ld09wdHMgPSB7XG4gICAgICAgICAgICBkZXB0aDogb3B0cy5kZXB0aFxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGhhcyhvcHRzLCBcInF1b3RlU3R5bGVcIikpIHtcbiAgICAgICAgICAgIG5ld09wdHMucXVvdGVTdHlsZSA9IG9wdHMucXVvdGVTdHlsZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGluc3BlY3RfKHZhbHVlLCBuZXdPcHRzLCBkZXB0aCArIDEsIHNlZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnNwZWN0Xyh2YWx1ZSwgb3B0cywgZGVwdGggKyAxLCBzZWVuKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCIgJiYgIWlzUmVnRXhwKG9iaikpIHtcbiAgICAgICAgdmFyIG5hbWUgPSBuYW1lT2Yob2JqKTtcbiAgICAgICAgdmFyIGtleXMgPSBhcnJPYmpLZXlzKG9iaiwgaW5zcGVjdCk7XG4gICAgICAgIHJldHVybiBcIltGdW5jdGlvblwiICsgKG5hbWUgPyBcIjogXCIgKyBuYW1lIDogXCIgKGFub255bW91cylcIikgKyBcIl1cIiArIChrZXlzLmxlbmd0aCA+IDAgPyBcIiB7IFwiICsgJGpvaW4uY2FsbChrZXlzLCBcIiwgXCIpICsgXCIgfVwiIDogXCJcIik7XG4gICAgICB9XG4gICAgICBpZiAoaXNTeW1ib2wob2JqKSkge1xuICAgICAgICB2YXIgc3ltU3RyaW5nID0gaGFzU2hhbW1lZFN5bWJvbHMgPyAkcmVwbGFjZS5jYWxsKFN0cmluZyhvYmopLCAvXihTeW1ib2xcXCguKlxcKSlfW14pXSokLywgXCIkMVwiKSA6IHN5bVRvU3RyaW5nLmNhbGwob2JqKTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgJiYgIWhhc1NoYW1tZWRTeW1ib2xzID8gbWFya0JveGVkKHN5bVN0cmluZykgOiBzeW1TdHJpbmc7XG4gICAgICB9XG4gICAgICBpZiAoaXNFbGVtZW50KG9iaikpIHtcbiAgICAgICAgdmFyIHMgPSBcIjxcIiArICR0b0xvd2VyQ2FzZS5jYWxsKFN0cmluZyhvYmoubm9kZU5hbWUpKTtcbiAgICAgICAgdmFyIGF0dHJzID0gb2JqLmF0dHJpYnV0ZXMgfHwgW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBzICs9IFwiIFwiICsgYXR0cnNbaV0ubmFtZSArIFwiPVwiICsgd3JhcFF1b3RlcyhxdW90ZShhdHRyc1tpXS52YWx1ZSksIFwiZG91YmxlXCIsIG9wdHMpO1xuICAgICAgICB9XG4gICAgICAgIHMgKz0gXCI+XCI7XG4gICAgICAgIGlmIChvYmouY2hpbGROb2RlcyAmJiBvYmouY2hpbGROb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICBzICs9IFwiLi4uXCI7XG4gICAgICAgIH1cbiAgICAgICAgcyArPSBcIjwvXCIgKyAkdG9Mb3dlckNhc2UuY2FsbChTdHJpbmcob2JqLm5vZGVOYW1lKSkgKyBcIj5cIjtcbiAgICAgICAgcmV0dXJuIHM7XG4gICAgICB9XG4gICAgICBpZiAoaXNBcnJheShvYmopKSB7XG4gICAgICAgIGlmIChvYmoubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIFwiW11cIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgeHMgPSBhcnJPYmpLZXlzKG9iaiwgaW5zcGVjdCk7XG4gICAgICAgIGlmIChpbmRlbnQgJiYgIXNpbmdsZUxpbmVWYWx1ZXMoeHMpKSB7XG4gICAgICAgICAgcmV0dXJuIFwiW1wiICsgaW5kZW50ZWRKb2luKHhzLCBpbmRlbnQpICsgXCJdXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwiWyBcIiArICRqb2luLmNhbGwoeHMsIFwiLCBcIikgKyBcIiBdXCI7XG4gICAgICB9XG4gICAgICBpZiAoaXNFcnJvcihvYmopKSB7XG4gICAgICAgIHZhciBwYXJ0cyA9IGFyck9iaktleXMob2JqLCBpbnNwZWN0KTtcbiAgICAgICAgaWYgKCEoXCJjYXVzZVwiIGluIEVycm9yLnByb3RvdHlwZSkgJiYgXCJjYXVzZVwiIGluIG9iaiAmJiAhaXNFbnVtZXJhYmxlLmNhbGwob2JqLCBcImNhdXNlXCIpKSB7XG4gICAgICAgICAgcmV0dXJuIFwieyBbXCIgKyBTdHJpbmcob2JqKSArIFwiXSBcIiArICRqb2luLmNhbGwoJGNvbmNhdC5jYWxsKFwiW2NhdXNlXTogXCIgKyBpbnNwZWN0KG9iai5jYXVzZSksIHBhcnRzKSwgXCIsIFwiKSArIFwiIH1cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIFwiW1wiICsgU3RyaW5nKG9iaikgKyBcIl1cIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXCJ7IFtcIiArIFN0cmluZyhvYmopICsgXCJdIFwiICsgJGpvaW4uY2FsbChwYXJ0cywgXCIsIFwiKSArIFwiIH1cIjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiICYmIGN1c3RvbUluc3BlY3QpIHtcbiAgICAgICAgaWYgKGluc3BlY3RTeW1ib2wgJiYgdHlwZW9mIG9ialtpbnNwZWN0U3ltYm9sXSA9PT0gXCJmdW5jdGlvblwiICYmIHV0aWxJbnNwZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIHV0aWxJbnNwZWN0KG9iaiwgeyBkZXB0aDogbWF4RGVwdGggLSBkZXB0aCB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChjdXN0b21JbnNwZWN0ICE9PSBcInN5bWJvbFwiICYmIHR5cGVvZiBvYmouaW5zcGVjdCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgcmV0dXJuIG9iai5pbnNwZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpc01hcChvYmopKSB7XG4gICAgICAgIHZhciBtYXBQYXJ0cyA9IFtdO1xuICAgICAgICBpZiAobWFwRm9yRWFjaCkge1xuICAgICAgICAgIG1hcEZvckVhY2guY2FsbChvYmosIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgICAgICAgIG1hcFBhcnRzLnB1c2goaW5zcGVjdChrZXksIG9iaiwgdHJ1ZSkgKyBcIiA9PiBcIiArIGluc3BlY3QodmFsdWUsIG9iaikpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uT2YoXCJNYXBcIiwgbWFwU2l6ZS5jYWxsKG9iaiksIG1hcFBhcnRzLCBpbmRlbnQpO1xuICAgICAgfVxuICAgICAgaWYgKGlzU2V0KG9iaikpIHtcbiAgICAgICAgdmFyIHNldFBhcnRzID0gW107XG4gICAgICAgIGlmIChzZXRGb3JFYWNoKSB7XG4gICAgICAgICAgc2V0Rm9yRWFjaC5jYWxsKG9iaiwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIHNldFBhcnRzLnB1c2goaW5zcGVjdCh2YWx1ZSwgb2JqKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb25PZihcIlNldFwiLCBzZXRTaXplLmNhbGwob2JqKSwgc2V0UGFydHMsIGluZGVudCk7XG4gICAgICB9XG4gICAgICBpZiAoaXNXZWFrTWFwKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIHdlYWtDb2xsZWN0aW9uT2YoXCJXZWFrTWFwXCIpO1xuICAgICAgfVxuICAgICAgaWYgKGlzV2Vha1NldChvYmopKSB7XG4gICAgICAgIHJldHVybiB3ZWFrQ29sbGVjdGlvbk9mKFwiV2Vha1NldFwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1dlYWtSZWYob2JqKSkge1xuICAgICAgICByZXR1cm4gd2Vha0NvbGxlY3Rpb25PZihcIldlYWtSZWZcIik7XG4gICAgICB9XG4gICAgICBpZiAoaXNOdW1iZXIob2JqKSkge1xuICAgICAgICByZXR1cm4gbWFya0JveGVkKGluc3BlY3QoTnVtYmVyKG9iaikpKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0JpZ0ludChvYmopKSB7XG4gICAgICAgIHJldHVybiBtYXJrQm94ZWQoaW5zcGVjdChiaWdJbnRWYWx1ZU9mLmNhbGwob2JqKSkpO1xuICAgICAgfVxuICAgICAgaWYgKGlzQm9vbGVhbihvYmopKSB7XG4gICAgICAgIHJldHVybiBtYXJrQm94ZWQoYm9vbGVhblZhbHVlT2YuY2FsbChvYmopKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1N0cmluZyhvYmopKSB7XG4gICAgICAgIHJldHVybiBtYXJrQm94ZWQoaW5zcGVjdChTdHJpbmcob2JqKSkpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgb2JqID09PSB3aW5kb3cpIHtcbiAgICAgICAgcmV0dXJuIFwieyBbb2JqZWN0IFdpbmRvd10gfVwiO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSBcInVuZGVmaW5lZFwiICYmIG9iaiA9PT0gZ2xvYmFsVGhpcyB8fCB0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiICYmIG9iaiA9PT0gZ2xvYmFsKSB7XG4gICAgICAgIHJldHVybiBcInsgW29iamVjdCBnbG9iYWxUaGlzXSB9XCI7XG4gICAgICB9XG4gICAgICBpZiAoIWlzRGF0ZShvYmopICYmICFpc1JlZ0V4cChvYmopKSB7XG4gICAgICAgIHZhciB5cyA9IGFyck9iaktleXMob2JqLCBpbnNwZWN0KTtcbiAgICAgICAgdmFyIGlzUGxhaW5PYmplY3QgPSBnUE8gPyBnUE8ob2JqKSA9PT0gT2JqZWN0LnByb3RvdHlwZSA6IG9iaiBpbnN0YW5jZW9mIE9iamVjdCB8fCBvYmouY29uc3RydWN0b3IgPT09IE9iamVjdDtcbiAgICAgICAgdmFyIHByb3RvVGFnID0gb2JqIGluc3RhbmNlb2YgT2JqZWN0ID8gXCJcIiA6IFwibnVsbCBwcm90b3R5cGVcIjtcbiAgICAgICAgdmFyIHN0cmluZ1RhZyA9ICFpc1BsYWluT2JqZWN0ICYmIHRvU3RyaW5nVGFnICYmIE9iamVjdChvYmopID09PSBvYmogJiYgdG9TdHJpbmdUYWcgaW4gb2JqID8gJHNsaWNlLmNhbGwodG9TdHIob2JqKSwgOCwgLTEpIDogcHJvdG9UYWcgPyBcIk9iamVjdFwiIDogXCJcIjtcbiAgICAgICAgdmFyIGNvbnN0cnVjdG9yVGFnID0gaXNQbGFpbk9iamVjdCB8fCB0eXBlb2Ygb2JqLmNvbnN0cnVjdG9yICE9PSBcImZ1bmN0aW9uXCIgPyBcIlwiIDogb2JqLmNvbnN0cnVjdG9yLm5hbWUgPyBvYmouY29uc3RydWN0b3IubmFtZSArIFwiIFwiIDogXCJcIjtcbiAgICAgICAgdmFyIHRhZyA9IGNvbnN0cnVjdG9yVGFnICsgKHN0cmluZ1RhZyB8fCBwcm90b1RhZyA/IFwiW1wiICsgJGpvaW4uY2FsbCgkY29uY2F0LmNhbGwoW10sIHN0cmluZ1RhZyB8fCBbXSwgcHJvdG9UYWcgfHwgW10pLCBcIjogXCIpICsgXCJdIFwiIDogXCJcIik7XG4gICAgICAgIGlmICh5cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gdGFnICsgXCJ7fVwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRlbnQpIHtcbiAgICAgICAgICByZXR1cm4gdGFnICsgXCJ7XCIgKyBpbmRlbnRlZEpvaW4oeXMsIGluZGVudCkgKyBcIn1cIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFnICsgXCJ7IFwiICsgJGpvaW4uY2FsbCh5cywgXCIsIFwiKSArIFwiIH1cIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBTdHJpbmcob2JqKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIHdyYXBRdW90ZXMocywgZGVmYXVsdFN0eWxlLCBvcHRzKSB7XG4gICAgICB2YXIgc3R5bGUgPSBvcHRzLnF1b3RlU3R5bGUgfHwgZGVmYXVsdFN0eWxlO1xuICAgICAgdmFyIHF1b3RlQ2hhciA9IHF1b3Rlc1tzdHlsZV07XG4gICAgICByZXR1cm4gcXVvdGVDaGFyICsgcyArIHF1b3RlQ2hhcjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcXVvdGUocykge1xuICAgICAgcmV0dXJuICRyZXBsYWNlLmNhbGwoU3RyaW5nKHMpLCAvXCIvZywgXCImcXVvdDtcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNhblRydXN0VG9TdHJpbmcob2JqKSB7XG4gICAgICByZXR1cm4gIXRvU3RyaW5nVGFnIHx8ICEodHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIiAmJiAodG9TdHJpbmdUYWcgaW4gb2JqIHx8IHR5cGVvZiBvYmpbdG9TdHJpbmdUYWddICE9PSBcInVuZGVmaW5lZFwiKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzQXJyYXkob2JqKSB7XG4gICAgICByZXR1cm4gdG9TdHIob2JqKSA9PT0gXCJbb2JqZWN0IEFycmF5XVwiICYmIGNhblRydXN0VG9TdHJpbmcob2JqKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNEYXRlKG9iaikge1xuICAgICAgcmV0dXJuIHRvU3RyKG9iaikgPT09IFwiW29iamVjdCBEYXRlXVwiICYmIGNhblRydXN0VG9TdHJpbmcob2JqKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNSZWdFeHAob2JqKSB7XG4gICAgICByZXR1cm4gdG9TdHIob2JqKSA9PT0gXCJbb2JqZWN0IFJlZ0V4cF1cIiAmJiBjYW5UcnVzdFRvU3RyaW5nKG9iaik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzRXJyb3Iob2JqKSB7XG4gICAgICByZXR1cm4gdG9TdHIob2JqKSA9PT0gXCJbb2JqZWN0IEVycm9yXVwiICYmIGNhblRydXN0VG9TdHJpbmcob2JqKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNTdHJpbmcob2JqKSB7XG4gICAgICByZXR1cm4gdG9TdHIob2JqKSA9PT0gXCJbb2JqZWN0IFN0cmluZ11cIiAmJiBjYW5UcnVzdFRvU3RyaW5nKG9iaik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzTnVtYmVyKG9iaikge1xuICAgICAgcmV0dXJuIHRvU3RyKG9iaikgPT09IFwiW29iamVjdCBOdW1iZXJdXCIgJiYgY2FuVHJ1c3RUb1N0cmluZyhvYmopO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0Jvb2xlYW4ob2JqKSB7XG4gICAgICByZXR1cm4gdG9TdHIob2JqKSA9PT0gXCJbb2JqZWN0IEJvb2xlYW5dXCIgJiYgY2FuVHJ1c3RUb1N0cmluZyhvYmopO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1N5bWJvbChvYmopIHtcbiAgICAgIGlmIChoYXNTaGFtbWVkU3ltYm9scykge1xuICAgICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgJiYgb2JqIGluc3RhbmNlb2YgU3ltYm9sO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvYmogPT09IFwic3ltYm9sXCIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiIHx8ICFzeW1Ub1N0cmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBzeW1Ub1N0cmluZy5jYWxsKG9iaik7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0JpZ0ludChvYmopIHtcbiAgICAgIGlmICghb2JqIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgfHwgIWJpZ0ludFZhbHVlT2YpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgYmlnSW50VmFsdWVPZi5jYWxsKG9iaik7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB2YXIgaGFzT3duID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSB8fCBmdW5jdGlvbihrZXkpIHtcbiAgICAgIHJldHVybiBrZXkgaW4gdGhpcztcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGhhcyhvYmosIGtleSkge1xuICAgICAgcmV0dXJuIGhhc093bi5jYWxsKG9iaiwga2V5KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdG9TdHIob2JqKSB7XG4gICAgICByZXR1cm4gb2JqZWN0VG9TdHJpbmcuY2FsbChvYmopO1xuICAgIH1cbiAgICBmdW5jdGlvbiBuYW1lT2YoZikge1xuICAgICAgaWYgKGYubmFtZSkge1xuICAgICAgICByZXR1cm4gZi5uYW1lO1xuICAgICAgfVxuICAgICAgdmFyIG0gPSAkbWF0Y2guY2FsbChmdW5jdGlvblRvU3RyaW5nLmNhbGwoZiksIC9eZnVuY3Rpb25cXHMqKFtcXHckXSspLyk7XG4gICAgICBpZiAobSkge1xuICAgICAgICByZXR1cm4gbVsxXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbmRleE9mKHhzLCB4KSB7XG4gICAgICBpZiAoeHMuaW5kZXhPZikge1xuICAgICAgICByZXR1cm4geHMuaW5kZXhPZih4KTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0geHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGlmICh4c1tpXSA9PT0geCkge1xuICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzTWFwKHgpIHtcbiAgICAgIGlmICghbWFwU2l6ZSB8fCAheCB8fCB0eXBlb2YgeCAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBtYXBTaXplLmNhbGwoeCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgc2V0U2l6ZS5jYWxsKHgpO1xuICAgICAgICB9IGNhdGNoIChzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHggaW5zdGFuY2VvZiBNYXA7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzV2Vha01hcCh4KSB7XG4gICAgICBpZiAoIXdlYWtNYXBIYXMgfHwgIXggfHwgdHlwZW9mIHggIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgd2Vha01hcEhhcy5jYWxsKHgsIHdlYWtNYXBIYXMpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHdlYWtTZXRIYXMuY2FsbCh4LCB3ZWFrU2V0SGFzKTtcbiAgICAgICAgfSBjYXRjaCAocykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB4IGluc3RhbmNlb2YgV2Vha01hcDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNXZWFrUmVmKHgpIHtcbiAgICAgIGlmICghd2Vha1JlZkRlcmVmIHx8ICF4IHx8IHR5cGVvZiB4ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIHdlYWtSZWZEZXJlZi5jYWxsKHgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNTZXQoeCkge1xuICAgICAgaWYgKCFzZXRTaXplIHx8ICF4IHx8IHR5cGVvZiB4ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldFNpemUuY2FsbCh4KTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBtYXBTaXplLmNhbGwoeCk7XG4gICAgICAgIH0gY2F0Y2ggKG0pIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geCBpbnN0YW5jZW9mIFNldDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNXZWFrU2V0KHgpIHtcbiAgICAgIGlmICghd2Vha1NldEhhcyB8fCAheCB8fCB0eXBlb2YgeCAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICB3ZWFrU2V0SGFzLmNhbGwoeCwgd2Vha1NldEhhcyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgd2Vha01hcEhhcy5jYWxsKHgsIHdlYWtNYXBIYXMpO1xuICAgICAgICB9IGNhdGNoIChzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHggaW5zdGFuY2VvZiBXZWFrU2V0O1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0VsZW1lbnQoeCkge1xuICAgICAgaWYgKCF4IHx8IHR5cGVvZiB4ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgSFRNTEVsZW1lbnQgIT09IFwidW5kZWZpbmVkXCIgJiYgeCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHR5cGVvZiB4Lm5vZGVOYW1lID09PSBcInN0cmluZ1wiICYmIHR5cGVvZiB4LmdldEF0dHJpYnV0ZSA9PT0gXCJmdW5jdGlvblwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbnNwZWN0U3RyaW5nKHN0ciwgb3B0cykge1xuICAgICAgaWYgKHN0ci5sZW5ndGggPiBvcHRzLm1heFN0cmluZ0xlbmd0aCkge1xuICAgICAgICB2YXIgcmVtYWluaW5nID0gc3RyLmxlbmd0aCAtIG9wdHMubWF4U3RyaW5nTGVuZ3RoO1xuICAgICAgICB2YXIgdHJhaWxlciA9IFwiLi4uIFwiICsgcmVtYWluaW5nICsgXCIgbW9yZSBjaGFyYWN0ZXJcIiArIChyZW1haW5pbmcgPiAxID8gXCJzXCIgOiBcIlwiKTtcbiAgICAgICAgcmV0dXJuIGluc3BlY3RTdHJpbmcoJHNsaWNlLmNhbGwoc3RyLCAwLCBvcHRzLm1heFN0cmluZ0xlbmd0aCksIG9wdHMpICsgdHJhaWxlcjtcbiAgICAgIH1cbiAgICAgIHZhciBxdW90ZVJFID0gcXVvdGVSRXNbb3B0cy5xdW90ZVN0eWxlIHx8IFwic2luZ2xlXCJdO1xuICAgICAgcXVvdGVSRS5sYXN0SW5kZXggPSAwO1xuICAgICAgdmFyIHMgPSAkcmVwbGFjZS5jYWxsKCRyZXBsYWNlLmNhbGwoc3RyLCBxdW90ZVJFLCBcIlxcXFwkMVwiKSwgL1tcXHgwMC1cXHgxZl0vZywgbG93Ynl0ZSk7XG4gICAgICByZXR1cm4gd3JhcFF1b3RlcyhzLCBcInNpbmdsZVwiLCBvcHRzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbG93Ynl0ZShjKSB7XG4gICAgICB2YXIgbiA9IGMuY2hhckNvZGVBdCgwKTtcbiAgICAgIHZhciB4ID0ge1xuICAgICAgICA4OiBcImJcIixcbiAgICAgICAgOTogXCJ0XCIsXG4gICAgICAgIDEwOiBcIm5cIixcbiAgICAgICAgMTI6IFwiZlwiLFxuICAgICAgICAxMzogXCJyXCJcbiAgICAgIH1bbl07XG4gICAgICBpZiAoeCkge1xuICAgICAgICByZXR1cm4gXCJcXFxcXCIgKyB4O1xuICAgICAgfVxuICAgICAgcmV0dXJuIFwiXFxcXHhcIiArIChuIDwgMTYgPyBcIjBcIiA6IFwiXCIpICsgJHRvVXBwZXJDYXNlLmNhbGwobi50b1N0cmluZygxNikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrQm94ZWQoc3RyKSB7XG4gICAgICByZXR1cm4gXCJPYmplY3QoXCIgKyBzdHIgKyBcIilcIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2Vha0NvbGxlY3Rpb25PZih0eXBlKSB7XG4gICAgICByZXR1cm4gdHlwZSArIFwiIHsgPyB9XCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbGxlY3Rpb25PZih0eXBlLCBzaXplLCBlbnRyaWVzLCBpbmRlbnQpIHtcbiAgICAgIHZhciBqb2luZWRFbnRyaWVzID0gaW5kZW50ID8gaW5kZW50ZWRKb2luKGVudHJpZXMsIGluZGVudCkgOiAkam9pbi5jYWxsKGVudHJpZXMsIFwiLCBcIik7XG4gICAgICByZXR1cm4gdHlwZSArIFwiIChcIiArIHNpemUgKyBcIikge1wiICsgam9pbmVkRW50cmllcyArIFwifVwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzaW5nbGVMaW5lVmFsdWVzKHhzKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHhzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpbmRleE9mKHhzW2ldLCBcIlxcblwiKSA+PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SW5kZW50KG9wdHMsIGRlcHRoKSB7XG4gICAgICB2YXIgYmFzZUluZGVudDtcbiAgICAgIGlmIChvcHRzLmluZGVudCA9PT0gXCJcdFwiKSB7XG4gICAgICAgIGJhc2VJbmRlbnQgPSBcIlx0XCI7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRzLmluZGVudCA9PT0gXCJudW1iZXJcIiAmJiBvcHRzLmluZGVudCA+IDApIHtcbiAgICAgICAgYmFzZUluZGVudCA9ICRqb2luLmNhbGwoQXJyYXkob3B0cy5pbmRlbnQgKyAxKSwgXCIgXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBiYXNlOiBiYXNlSW5kZW50LFxuICAgICAgICBwcmV2OiAkam9pbi5jYWxsKEFycmF5KGRlcHRoICsgMSksIGJhc2VJbmRlbnQpXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbmRlbnRlZEpvaW4oeHMsIGluZGVudCkge1xuICAgICAgaWYgKHhzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICAgIHZhciBsaW5lSm9pbmVyID0gXCJcXG5cIiArIGluZGVudC5wcmV2ICsgaW5kZW50LmJhc2U7XG4gICAgICByZXR1cm4gbGluZUpvaW5lciArICRqb2luLmNhbGwoeHMsIFwiLFwiICsgbGluZUpvaW5lcikgKyBcIlxcblwiICsgaW5kZW50LnByZXY7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFyck9iaktleXMob2JqLCBpbnNwZWN0KSB7XG4gICAgICB2YXIgaXNBcnIgPSBpc0FycmF5KG9iaik7XG4gICAgICB2YXIgeHMgPSBbXTtcbiAgICAgIGlmIChpc0Fycikge1xuICAgICAgICB4cy5sZW5ndGggPSBvYmoubGVuZ3RoO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iai5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHhzW2ldID0gaGFzKG9iaiwgaSkgPyBpbnNwZWN0KG9ialtpXSwgb2JqKSA6IFwiXCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciBzeW1zID0gdHlwZW9mIGdPUFMgPT09IFwiZnVuY3Rpb25cIiA/IGdPUFMob2JqKSA6IFtdO1xuICAgICAgdmFyIHN5bU1hcDtcbiAgICAgIGlmIChoYXNTaGFtbWVkU3ltYm9scykge1xuICAgICAgICBzeW1NYXAgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBzeW1zLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgc3ltTWFwW1wiJFwiICsgc3ltc1trXV0gPSBzeW1zW2tdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICAgIGlmICghaGFzKG9iaiwga2V5KSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0FyciAmJiBTdHJpbmcoTnVtYmVyKGtleSkpID09PSBrZXkgJiYga2V5IDwgb2JqLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNTaGFtbWVkU3ltYm9scyAmJiBzeW1NYXBbXCIkXCIgKyBrZXldIGluc3RhbmNlb2YgU3ltYm9sKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gZWxzZSBpZiAoJHRlc3QuY2FsbCgvW15cXHckXS8sIGtleSkpIHtcbiAgICAgICAgICB4cy5wdXNoKGluc3BlY3Qoa2V5LCBvYmopICsgXCI6IFwiICsgaW5zcGVjdChvYmpba2V5XSwgb2JqKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgeHMucHVzaChrZXkgKyBcIjogXCIgKyBpbnNwZWN0KG9ialtrZXldLCBvYmopKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBnT1BTID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzeW1zLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgaWYgKGlzRW51bWVyYWJsZS5jYWxsKG9iaiwgc3ltc1tqXSkpIHtcbiAgICAgICAgICAgIHhzLnB1c2goXCJbXCIgKyBpbnNwZWN0KHN5bXNbal0pICsgXCJdOiBcIiArIGluc3BlY3Qob2JqW3N5bXNbal1dLCBvYmopKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB4cztcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvc2lkZS1jaGFubmVsLWxpc3QvaW5kZXguanNcbnZhciByZXF1aXJlX3NpZGVfY2hhbm5lbF9saXN0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NpZGUtY2hhbm5lbC1saXN0L2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgaW5zcGVjdCA9IHJlcXVpcmVfb2JqZWN0X2luc3BlY3QoKTtcbiAgICB2YXIgJFR5cGVFcnJvciA9IHJlcXVpcmVfdHlwZSgpO1xuICAgIHZhciBsaXN0R2V0Tm9kZSA9IGZ1bmN0aW9uKGxpc3QsIGtleSwgaXNEZWxldGUpIHtcbiAgICAgIHZhciBwcmV2ID0gbGlzdDtcbiAgICAgIHZhciBjdXJyO1xuICAgICAgZm9yICg7IChjdXJyID0gcHJldi5uZXh0KSAhPSBudWxsOyBwcmV2ID0gY3Vycikge1xuICAgICAgICBpZiAoY3Vyci5rZXkgPT09IGtleSkge1xuICAgICAgICAgIHByZXYubmV4dCA9IGN1cnIubmV4dDtcbiAgICAgICAgICBpZiAoIWlzRGVsZXRlKSB7XG4gICAgICAgICAgICBjdXJyLm5leHQgPSAvKiogQHR5cGUge05vbk51bGxhYmxlPHR5cGVvZiBsaXN0Lm5leHQ+fSAqL1xuICAgICAgICAgICAgbGlzdC5uZXh0O1xuICAgICAgICAgICAgbGlzdC5uZXh0ID0gY3VycjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGN1cnI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBsaXN0R2V0ID0gZnVuY3Rpb24ob2JqZWN0cywga2V5KSB7XG4gICAgICBpZiAoIW9iamVjdHMpIHtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgIH1cbiAgICAgIHZhciBub2RlID0gbGlzdEdldE5vZGUob2JqZWN0cywga2V5KTtcbiAgICAgIHJldHVybiBub2RlICYmIG5vZGUudmFsdWU7XG4gICAgfTtcbiAgICB2YXIgbGlzdFNldCA9IGZ1bmN0aW9uKG9iamVjdHMsIGtleSwgdmFsdWUpIHtcbiAgICAgIHZhciBub2RlID0gbGlzdEdldE5vZGUob2JqZWN0cywga2V5KTtcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIG5vZGUudmFsdWUgPSB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9iamVjdHMubmV4dCA9IC8qKiBAdHlwZSB7aW1wb3J0KCcuL2xpc3QuZC50cycpLkxpc3ROb2RlPHR5cGVvZiB2YWx1ZSwgdHlwZW9mIGtleT59ICovXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXBhcmFtLXJlYXNzaWduLCBuby1leHRyYS1wYXJlbnNcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgbmV4dDogb2JqZWN0cy5uZXh0LFxuICAgICAgICAgIHZhbHVlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgbGlzdEhhcyA9IGZ1bmN0aW9uKG9iamVjdHMsIGtleSkge1xuICAgICAgaWYgKCFvYmplY3RzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhIWxpc3RHZXROb2RlKG9iamVjdHMsIGtleSk7XG4gICAgfTtcbiAgICB2YXIgbGlzdERlbGV0ZSA9IGZ1bmN0aW9uKG9iamVjdHMsIGtleSkge1xuICAgICAgaWYgKG9iamVjdHMpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RHZXROb2RlKG9iamVjdHMsIGtleSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbiBnZXRTaWRlQ2hhbm5lbExpc3QoKSB7XG4gICAgICB2YXIgJG87XG4gICAgICB2YXIgY2hhbm5lbCA9IHtcbiAgICAgICAgYXNzZXJ0OiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICBpZiAoIWNoYW5uZWwuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyAkVHlwZUVycm9yKFwiU2lkZSBjaGFubmVsIGRvZXMgbm90IGNvbnRhaW4gXCIgKyBpbnNwZWN0KGtleSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWxldGVcIjogZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgdmFyIHJvb3QgPSAkbyAmJiAkby5uZXh0O1xuICAgICAgICAgIHZhciBkZWxldGVkTm9kZSA9IGxpc3REZWxldGUoJG8sIGtleSk7XG4gICAgICAgICAgaWYgKGRlbGV0ZWROb2RlICYmIHJvb3QgJiYgcm9vdCA9PT0gZGVsZXRlZE5vZGUpIHtcbiAgICAgICAgICAgICRvID0gdm9pZCAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gISFkZWxldGVkTm9kZTtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICByZXR1cm4gbGlzdEdldCgkbywga2V5KTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzOiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICByZXR1cm4gbGlzdEhhcygkbywga2V5KTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgICAgICAgaWYgKCEkbykge1xuICAgICAgICAgICAgJG8gPSB7XG4gICAgICAgICAgICAgIG5leHQ6IHZvaWQgMFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGlzdFNldChcbiAgICAgICAgICAgIC8qKiBAdHlwZSB7Tm9uTnVsbGFibGU8dHlwZW9mICRvPn0gKi9cbiAgICAgICAgICAgICRvLFxuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgcmV0dXJuIGNoYW5uZWw7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9lcy1vYmplY3QtYXRvbXMvaW5kZXguanNcbnZhciByZXF1aXJlX2VzX29iamVjdF9hdG9tcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9lcy1vYmplY3QtYXRvbXMvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IE9iamVjdDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9lcy1lcnJvcnMvaW5kZXguanNcbnZhciByZXF1aXJlX2VzX2Vycm9ycyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9lcy1lcnJvcnMvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IEVycm9yO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VzLWVycm9ycy9ldmFsLmpzXG52YXIgcmVxdWlyZV9ldmFsID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VzLWVycm9ycy9ldmFsLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBFdmFsRXJyb3I7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXMtZXJyb3JzL3JhbmdlLmpzXG52YXIgcmVxdWlyZV9yYW5nZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9lcy1lcnJvcnMvcmFuZ2UuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFJhbmdlRXJyb3I7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXMtZXJyb3JzL3JlZi5qc1xudmFyIHJlcXVpcmVfcmVmID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VzLWVycm9ycy9yZWYuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFJlZmVyZW5jZUVycm9yO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VzLWVycm9ycy9zeW50YXguanNcbnZhciByZXF1aXJlX3N5bnRheCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9lcy1lcnJvcnMvc3ludGF4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBTeW50YXhFcnJvcjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9lcy1lcnJvcnMvdXJpLmpzXG52YXIgcmVxdWlyZV91cmkgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZXMtZXJyb3JzL3VyaS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gVVJJRXJyb3I7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL2Ficy5qc1xudmFyIHJlcXVpcmVfYWJzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9hYnMuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IE1hdGguYWJzO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9mbG9vci5qc1xudmFyIHJlcXVpcmVfZmxvb3IgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL2Zsb29yLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBNYXRoLmZsb29yO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9tYXguanNcbnZhciByZXF1aXJlX21heCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3MvbWF4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBNYXRoLm1heDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3MvbWluLmpzXG52YXIgcmVxdWlyZV9taW4gPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL21pbi5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gTWF0aC5taW47XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL3Bvdy5qc1xudmFyIHJlcXVpcmVfcG93ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9wb3cuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IE1hdGgucG93O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9yb3VuZC5qc1xudmFyIHJlcXVpcmVfcm91bmQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL3JvdW5kLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBNYXRoLnJvdW5kO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9pc05hTi5qc1xudmFyIHJlcXVpcmVfaXNOYU4gPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL2lzTmFOLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBOdW1iZXIuaXNOYU4gfHwgZnVuY3Rpb24gaXNOYU4yKGEpIHtcbiAgICAgIHJldHVybiBhICE9PSBhO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL3NpZ24uanNcbnZhciByZXF1aXJlX3NpZ24gPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL3NpZ24uanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciAkaXNOYU4gPSByZXF1aXJlX2lzTmFOKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gc2lnbihudW1iZXIpIHtcbiAgICAgIGlmICgkaXNOYU4obnVtYmVyKSB8fCBudW1iZXIgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudW1iZXIgPCAwID8gLTEgOiAxO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZ29wZC9nT1BELmpzXG52YXIgcmVxdWlyZV9nT1BEID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2dvcGQvZ09QRC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9nb3BkL2luZGV4LmpzXG52YXIgcmVxdWlyZV9nb3BkID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2dvcGQvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciAkZ09QRCA9IHJlcXVpcmVfZ09QRCgpO1xuICAgIGlmICgkZ09QRCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgJGdPUEQoW10sIFwibGVuZ3RoXCIpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAkZ09QRCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIG1vZHVsZTIuZXhwb3J0cyA9ICRnT1BEO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VzLWRlZmluZS1wcm9wZXJ0eS9pbmRleC5qc1xudmFyIHJlcXVpcmVfZXNfZGVmaW5lX3Byb3BlcnR5ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VzLWRlZmluZS1wcm9wZXJ0eS9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyICRkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSB8fCBmYWxzZTtcbiAgICBpZiAoJGRlZmluZVByb3BlcnR5KSB7XG4gICAgICB0cnkge1xuICAgICAgICAkZGVmaW5lUHJvcGVydHkoe30sIFwiYVwiLCB7IHZhbHVlOiAxIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAkZGVmaW5lUHJvcGVydHkgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgbW9kdWxlMi5leHBvcnRzID0gJGRlZmluZVByb3BlcnR5O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2hhcy1zeW1ib2xzL3NoYW1zLmpzXG52YXIgcmVxdWlyZV9zaGFtcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9oYXMtc3ltYm9scy9zaGFtcy5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gaGFzU3ltYm9scygpIHtcbiAgICAgIGlmICh0eXBlb2YgU3ltYm9sICE9PSBcImZ1bmN0aW9uXCIgfHwgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHZhciBvYmogPSB7fTtcbiAgICAgIHZhciBzeW0gPSBTeW1ib2woXCJ0ZXN0XCIpO1xuICAgICAgdmFyIHN5bU9iaiA9IE9iamVjdChzeW0pO1xuICAgICAgaWYgKHR5cGVvZiBzeW0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzeW0pICE9PSBcIltvYmplY3QgU3ltYm9sXVwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoc3ltT2JqKSAhPT0gXCJbb2JqZWN0IFN5bWJvbF1cIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgc3ltVmFsID0gNDI7XG4gICAgICBvYmpbc3ltXSA9IHN5bVZhbDtcbiAgICAgIGZvciAodmFyIF8yIGluIG9iaikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIE9iamVjdC5rZXlzID09PSBcImZ1bmN0aW9uXCIgJiYgT2JqZWN0LmtleXMob2JqKS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyA9PT0gXCJmdW5jdGlvblwiICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBzeW1zID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmopO1xuICAgICAgaWYgKHN5bXMubGVuZ3RoICE9PSAxIHx8IHN5bXNbMF0gIT09IHN5bSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChvYmosIHN5bSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSAoXG4gICAgICAgICAgLyoqIEB0eXBlIHtQcm9wZXJ0eURlc2NyaXB0b3J9ICovXG4gICAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIHN5bSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IudmFsdWUgIT09IHN5bVZhbCB8fCBkZXNjcmlwdG9yLmVudW1lcmFibGUgIT09IHRydWUpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvaGFzLXN5bWJvbHMvaW5kZXguanNcbnZhciByZXF1aXJlX2hhc19zeW1ib2xzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2hhcy1zeW1ib2xzL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgb3JpZ1N5bWJvbCA9IHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgU3ltYm9sO1xuICAgIHZhciBoYXNTeW1ib2xTaGFtID0gcmVxdWlyZV9zaGFtcygpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIGhhc05hdGl2ZVN5bWJvbHMoKSB7XG4gICAgICBpZiAodHlwZW9mIG9yaWdTeW1ib2wgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygb3JpZ1N5bWJvbChcImZvb1wiKSAhPT0gXCJzeW1ib2xcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIFN5bWJvbChcImJhclwiKSAhPT0gXCJzeW1ib2xcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzU3ltYm9sU2hhbSgpO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZ2V0LXByb3RvL1JlZmxlY3QuZ2V0UHJvdG90eXBlT2YuanNcbnZhciByZXF1aXJlX1JlZmxlY3RfZ2V0UHJvdG90eXBlT2YgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZ2V0LXByb3RvL1JlZmxlY3QuZ2V0UHJvdG90eXBlT2YuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHR5cGVvZiBSZWZsZWN0ICE9PSBcInVuZGVmaW5lZFwiICYmIFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YgfHwgbnVsbDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9nZXQtcHJvdG8vT2JqZWN0LmdldFByb3RvdHlwZU9mLmpzXG52YXIgcmVxdWlyZV9PYmplY3RfZ2V0UHJvdG90eXBlT2YgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZ2V0LXByb3RvL09iamVjdC5nZXRQcm90b3R5cGVPZi5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyICRPYmplY3QgPSByZXF1aXJlX2VzX29iamVjdF9hdG9tcygpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9ICRPYmplY3QuZ2V0UHJvdG90eXBlT2YgfHwgbnVsbDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9mdW5jdGlvbi1iaW5kL2ltcGxlbWVudGF0aW9uLmpzXG52YXIgcmVxdWlyZV9pbXBsZW1lbnRhdGlvbiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9mdW5jdGlvbi1iaW5kL2ltcGxlbWVudGF0aW9uLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgRVJST1JfTUVTU0FHRSA9IFwiRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQgY2FsbGVkIG9uIGluY29tcGF0aWJsZSBcIjtcbiAgICB2YXIgdG9TdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuICAgIHZhciBtYXggPSBNYXRoLm1heDtcbiAgICB2YXIgZnVuY1R5cGUgPSBcIltvYmplY3QgRnVuY3Rpb25dXCI7XG4gICAgdmFyIGNvbmNhdHR5ID0gZnVuY3Rpb24gY29uY2F0dHkyKGEsIGIpIHtcbiAgICAgIHZhciBhcnIgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBhcnJbaV0gPSBhW2ldO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBiLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICAgIGFycltqICsgYS5sZW5ndGhdID0gYltqXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnI7XG4gICAgfTtcbiAgICB2YXIgc2xpY3kgPSBmdW5jdGlvbiBzbGljeTIoYXJyTGlrZSwgb2Zmc2V0KSB7XG4gICAgICB2YXIgYXJyID0gW107XG4gICAgICBmb3IgKHZhciBpID0gb2Zmc2V0IHx8IDAsIGogPSAwOyBpIDwgYXJyTGlrZS5sZW5ndGg7IGkgKz0gMSwgaiArPSAxKSB7XG4gICAgICAgIGFycltqXSA9IGFyckxpa2VbaV07XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyO1xuICAgIH07XG4gICAgdmFyIGpvaW55ID0gZnVuY3Rpb24oYXJyLCBqb2luZXIpIHtcbiAgICAgIHZhciBzdHIgPSBcIlwiO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgc3RyICs9IGFycltpXTtcbiAgICAgICAgaWYgKGkgKyAxIDwgYXJyLmxlbmd0aCkge1xuICAgICAgICAgIHN0ciArPSBqb2luZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBzdHI7XG4gICAgfTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbiBiaW5kKHRoYXQpIHtcbiAgICAgIHZhciB0YXJnZXQgPSB0aGlzO1xuICAgICAgaWYgKHR5cGVvZiB0YXJnZXQgIT09IFwiZnVuY3Rpb25cIiB8fCB0b1N0ci5hcHBseSh0YXJnZXQpICE9PSBmdW5jVHlwZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEVSUk9SX01FU1NBR0UgKyB0YXJnZXQpO1xuICAgICAgfVxuICAgICAgdmFyIGFyZ3MgPSBzbGljeShhcmd1bWVudHMsIDEpO1xuICAgICAgdmFyIGJvdW5kO1xuICAgICAgdmFyIGJpbmRlciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcyBpbnN0YW5jZW9mIGJvdW5kKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IHRhcmdldC5hcHBseShcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBjb25jYXR0eShhcmdzLCBhcmd1bWVudHMpXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoT2JqZWN0KHJlc3VsdCkgPT09IHJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhcmdldC5hcHBseShcbiAgICAgICAgICB0aGF0LFxuICAgICAgICAgIGNvbmNhdHR5KGFyZ3MsIGFyZ3VtZW50cylcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICB2YXIgYm91bmRMZW5ndGggPSBtYXgoMCwgdGFyZ2V0Lmxlbmd0aCAtIGFyZ3MubGVuZ3RoKTtcbiAgICAgIHZhciBib3VuZEFyZ3MgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm91bmRMZW5ndGg7IGkrKykge1xuICAgICAgICBib3VuZEFyZ3NbaV0gPSBcIiRcIiArIGk7XG4gICAgICB9XG4gICAgICBib3VuZCA9IEZ1bmN0aW9uKFwiYmluZGVyXCIsIFwicmV0dXJuIGZ1bmN0aW9uIChcIiArIGpvaW55KGJvdW5kQXJncywgXCIsXCIpICsgXCIpeyByZXR1cm4gYmluZGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTsgfVwiKShiaW5kZXIpO1xuICAgICAgaWYgKHRhcmdldC5wcm90b3R5cGUpIHtcbiAgICAgICAgdmFyIEVtcHR5ID0gZnVuY3Rpb24gRW1wdHkyKCkge1xuICAgICAgICB9O1xuICAgICAgICBFbXB0eS5wcm90b3R5cGUgPSB0YXJnZXQucHJvdG90eXBlO1xuICAgICAgICBib3VuZC5wcm90b3R5cGUgPSBuZXcgRW1wdHkoKTtcbiAgICAgICAgRW1wdHkucHJvdG90eXBlID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBib3VuZDtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Z1bmN0aW9uLWJpbmQvaW5kZXguanNcbnZhciByZXF1aXJlX2Z1bmN0aW9uX2JpbmQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZnVuY3Rpb24tYmluZC9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGltcGxlbWVudGF0aW9uID0gcmVxdWlyZV9pbXBsZW1lbnRhdGlvbigpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kIHx8IGltcGxlbWVudGF0aW9uO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2NhbGwtYmluZC1hcHBseS1oZWxwZXJzL2Z1bmN0aW9uQ2FsbC5qc1xudmFyIHJlcXVpcmVfZnVuY3Rpb25DYWxsID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2NhbGwtYmluZC1hcHBseS1oZWxwZXJzL2Z1bmN0aW9uQ2FsbC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gRnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMvZnVuY3Rpb25BcHBseS5qc1xudmFyIHJlcXVpcmVfZnVuY3Rpb25BcHBseSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jYWxsLWJpbmQtYXBwbHktaGVscGVycy9mdW5jdGlvbkFwcGx5LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMvcmVmbGVjdEFwcGx5LmpzXG52YXIgcmVxdWlyZV9yZWZsZWN0QXBwbHkgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMvcmVmbGVjdEFwcGx5LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB0eXBlb2YgUmVmbGVjdCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBSZWZsZWN0ICYmIFJlZmxlY3QuYXBwbHk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMvYWN0dWFsQXBwbHkuanNcbnZhciByZXF1aXJlX2FjdHVhbEFwcGx5ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2NhbGwtYmluZC1hcHBseS1oZWxwZXJzL2FjdHVhbEFwcGx5LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgYmluZCA9IHJlcXVpcmVfZnVuY3Rpb25fYmluZCgpO1xuICAgIHZhciAkYXBwbHkgPSByZXF1aXJlX2Z1bmN0aW9uQXBwbHkoKTtcbiAgICB2YXIgJGNhbGwgPSByZXF1aXJlX2Z1bmN0aW9uQ2FsbCgpO1xuICAgIHZhciAkcmVmbGVjdEFwcGx5ID0gcmVxdWlyZV9yZWZsZWN0QXBwbHkoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSAkcmVmbGVjdEFwcGx5IHx8IGJpbmQuY2FsbCgkY2FsbCwgJGFwcGx5KTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jYWxsLWJpbmQtYXBwbHktaGVscGVycy9pbmRleC5qc1xudmFyIHJlcXVpcmVfY2FsbF9iaW5kX2FwcGx5X2hlbHBlcnMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBiaW5kID0gcmVxdWlyZV9mdW5jdGlvbl9iaW5kKCk7XG4gICAgdmFyICRUeXBlRXJyb3IgPSByZXF1aXJlX3R5cGUoKTtcbiAgICB2YXIgJGNhbGwgPSByZXF1aXJlX2Z1bmN0aW9uQ2FsbCgpO1xuICAgIHZhciAkYWN0dWFsQXBwbHkgPSByZXF1aXJlX2FjdHVhbEFwcGx5KCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gY2FsbEJpbmRCYXNpYyhhcmdzKSB7XG4gICAgICBpZiAoYXJncy5sZW5ndGggPCAxIHx8IHR5cGVvZiBhcmdzWzBdICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJhIGZ1bmN0aW9uIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuICRhY3R1YWxBcHBseShiaW5kLCAkY2FsbCwgYXJncyk7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9kdW5kZXItcHJvdG8vZ2V0LmpzXG52YXIgcmVxdWlyZV9nZXQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZHVuZGVyLXByb3RvL2dldC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGNhbGxCaW5kID0gcmVxdWlyZV9jYWxsX2JpbmRfYXBwbHlfaGVscGVycygpO1xuICAgIHZhciBnT1BEID0gcmVxdWlyZV9nb3BkKCk7XG4gICAgdmFyIGhhc1Byb3RvQWNjZXNzb3I7XG4gICAgdHJ5IHtcbiAgICAgIGhhc1Byb3RvQWNjZXNzb3IgPSAvKiogQHR5cGUge3sgX19wcm90b19fPzogdHlwZW9mIEFycmF5LnByb3RvdHlwZSB9fSAqL1xuICAgICAgW10uX19wcm90b19fID09PSBBcnJheS5wcm90b3R5cGU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCFlIHx8IHR5cGVvZiBlICE9PSBcIm9iamVjdFwiIHx8ICEoXCJjb2RlXCIgaW4gZSkgfHwgZS5jb2RlICE9PSBcIkVSUl9QUk9UT19BQ0NFU1NcIikge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgZGVzYyA9ICEhaGFzUHJvdG9BY2Nlc3NvciAmJiBnT1BEICYmIGdPUEQoXG4gICAgICBPYmplY3QucHJvdG90eXBlLFxuICAgICAgLyoqIEB0eXBlIHtrZXlvZiB0eXBlb2YgT2JqZWN0LnByb3RvdHlwZX0gKi9cbiAgICAgIFwiX19wcm90b19fXCJcbiAgICApO1xuICAgIHZhciAkT2JqZWN0ID0gT2JqZWN0O1xuICAgIHZhciAkZ2V0UHJvdG90eXBlT2YgPSAkT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGRlc2MgJiYgdHlwZW9mIGRlc2MuZ2V0ID09PSBcImZ1bmN0aW9uXCIgPyBjYWxsQmluZChbZGVzYy5nZXRdKSA6IHR5cGVvZiAkZ2V0UHJvdG90eXBlT2YgPT09IFwiZnVuY3Rpb25cIiA/IChcbiAgICAgIC8qKiBAdHlwZSB7aW1wb3J0KCcuL2dldCcpfSAqL1xuICAgICAgZnVuY3Rpb24gZ2V0RHVuZGVyKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiAkZ2V0UHJvdG90eXBlT2YodmFsdWUgPT0gbnVsbCA/IHZhbHVlIDogJE9iamVjdCh2YWx1ZSkpO1xuICAgICAgfVxuICAgICkgOiBmYWxzZTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9nZXQtcHJvdG8vaW5kZXguanNcbnZhciByZXF1aXJlX2dldF9wcm90byA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9nZXQtcHJvdG8vaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciByZWZsZWN0R2V0UHJvdG8gPSByZXF1aXJlX1JlZmxlY3RfZ2V0UHJvdG90eXBlT2YoKTtcbiAgICB2YXIgb3JpZ2luYWxHZXRQcm90byA9IHJlcXVpcmVfT2JqZWN0X2dldFByb3RvdHlwZU9mKCk7XG4gICAgdmFyIGdldER1bmRlclByb3RvID0gcmVxdWlyZV9nZXQoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSByZWZsZWN0R2V0UHJvdG8gPyBmdW5jdGlvbiBnZXRQcm90byhPKSB7XG4gICAgICByZXR1cm4gcmVmbGVjdEdldFByb3RvKE8pO1xuICAgIH0gOiBvcmlnaW5hbEdldFByb3RvID8gZnVuY3Rpb24gZ2V0UHJvdG8oTykge1xuICAgICAgaWYgKCFPIHx8IHR5cGVvZiBPICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBPICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImdldFByb3RvOiBub3QgYW4gb2JqZWN0XCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9yaWdpbmFsR2V0UHJvdG8oTyk7XG4gICAgfSA6IGdldER1bmRlclByb3RvID8gZnVuY3Rpb24gZ2V0UHJvdG8oTykge1xuICAgICAgcmV0dXJuIGdldER1bmRlclByb3RvKE8pO1xuICAgIH0gOiBudWxsO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2hhc293bi9pbmRleC5qc1xudmFyIHJlcXVpcmVfaGFzb3duID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2hhc293bi9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGNhbGwgPSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbDtcbiAgICB2YXIgJGhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4gICAgdmFyIGJpbmQgPSByZXF1aXJlX2Z1bmN0aW9uX2JpbmQoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBiaW5kLmNhbGwoY2FsbCwgJGhhc093bik7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZ2V0LWludHJpbnNpYy9pbmRleC5qc1xudmFyIHJlcXVpcmVfZ2V0X2ludHJpbnNpYyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9nZXQtaW50cmluc2ljL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgdW5kZWZpbmVkMjtcbiAgICB2YXIgJE9iamVjdCA9IHJlcXVpcmVfZXNfb2JqZWN0X2F0b21zKCk7XG4gICAgdmFyICRFcnJvciA9IHJlcXVpcmVfZXNfZXJyb3JzKCk7XG4gICAgdmFyICRFdmFsRXJyb3IgPSByZXF1aXJlX2V2YWwoKTtcbiAgICB2YXIgJFJhbmdlRXJyb3IgPSByZXF1aXJlX3JhbmdlKCk7XG4gICAgdmFyICRSZWZlcmVuY2VFcnJvciA9IHJlcXVpcmVfcmVmKCk7XG4gICAgdmFyICRTeW50YXhFcnJvciA9IHJlcXVpcmVfc3ludGF4KCk7XG4gICAgdmFyICRUeXBlRXJyb3IgPSByZXF1aXJlX3R5cGUoKTtcbiAgICB2YXIgJFVSSUVycm9yID0gcmVxdWlyZV91cmkoKTtcbiAgICB2YXIgYWJzID0gcmVxdWlyZV9hYnMoKTtcbiAgICB2YXIgZmxvb3IgPSByZXF1aXJlX2Zsb29yKCk7XG4gICAgdmFyIG1heCA9IHJlcXVpcmVfbWF4KCk7XG4gICAgdmFyIG1pbiA9IHJlcXVpcmVfbWluKCk7XG4gICAgdmFyIHBvdyA9IHJlcXVpcmVfcG93KCk7XG4gICAgdmFyIHJvdW5kID0gcmVxdWlyZV9yb3VuZCgpO1xuICAgIHZhciBzaWduID0gcmVxdWlyZV9zaWduKCk7XG4gICAgdmFyICRGdW5jdGlvbiA9IEZ1bmN0aW9uO1xuICAgIHZhciBnZXRFdmFsbGVkQ29uc3RydWN0b3IgPSBmdW5jdGlvbihleHByZXNzaW9uU3ludGF4KSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gJEZ1bmN0aW9uKCdcInVzZSBzdHJpY3RcIjsgcmV0dXJuICgnICsgZXhwcmVzc2lvblN5bnRheCArIFwiKS5jb25zdHJ1Y3RvcjtcIikoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciAkZ09QRCA9IHJlcXVpcmVfZ29wZCgpO1xuICAgIHZhciAkZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlX2VzX2RlZmluZV9wcm9wZXJ0eSgpO1xuICAgIHZhciB0aHJvd1R5cGVFcnJvciA9IGZ1bmN0aW9uKCkge1xuICAgICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoKTtcbiAgICB9O1xuICAgIHZhciBUaHJvd1R5cGVFcnJvciA9ICRnT1BEID8gZnVuY3Rpb24oKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhcmd1bWVudHMuY2FsbGVlO1xuICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3I7XG4gICAgICB9IGNhdGNoIChjYWxsZWVUaHJvd3MpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gJGdPUEQoYXJndW1lbnRzLCBcImNhbGxlZVwiKS5nZXQ7XG4gICAgICAgIH0gY2F0Y2ggKGdPUER0aHJvd3MpIHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KCkgOiB0aHJvd1R5cGVFcnJvcjtcbiAgICB2YXIgaGFzU3ltYm9scyA9IHJlcXVpcmVfaGFzX3N5bWJvbHMoKSgpO1xuICAgIHZhciBnZXRQcm90byA9IHJlcXVpcmVfZ2V0X3Byb3RvKCk7XG4gICAgdmFyICRPYmplY3RHUE8gPSByZXF1aXJlX09iamVjdF9nZXRQcm90b3R5cGVPZigpO1xuICAgIHZhciAkUmVmbGVjdEdQTyA9IHJlcXVpcmVfUmVmbGVjdF9nZXRQcm90b3R5cGVPZigpO1xuICAgIHZhciAkYXBwbHkgPSByZXF1aXJlX2Z1bmN0aW9uQXBwbHkoKTtcbiAgICB2YXIgJGNhbGwgPSByZXF1aXJlX2Z1bmN0aW9uQ2FsbCgpO1xuICAgIHZhciBuZWVkc0V2YWwgPSB7fTtcbiAgICB2YXIgVHlwZWRBcnJheSA9IHR5cGVvZiBVaW50OEFycmF5ID09PSBcInVuZGVmaW5lZFwiIHx8ICFnZXRQcm90byA/IHVuZGVmaW5lZDIgOiBnZXRQcm90byhVaW50OEFycmF5KTtcbiAgICB2YXIgSU5UUklOU0lDUyA9IHtcbiAgICAgIF9fcHJvdG9fXzogbnVsbCxcbiAgICAgIFwiJUFnZ3JlZ2F0ZUVycm9yJVwiOiB0eXBlb2YgQWdncmVnYXRlRXJyb3IgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogQWdncmVnYXRlRXJyb3IsXG4gICAgICBcIiVBcnJheSVcIjogQXJyYXksXG4gICAgICBcIiVBcnJheUJ1ZmZlciVcIjogdHlwZW9mIEFycmF5QnVmZmVyID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IEFycmF5QnVmZmVyLFxuICAgICAgXCIlQXJyYXlJdGVyYXRvclByb3RvdHlwZSVcIjogaGFzU3ltYm9scyAmJiBnZXRQcm90byA/IGdldFByb3RvKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSkgOiB1bmRlZmluZWQyLFxuICAgICAgXCIlQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlJVwiOiB1bmRlZmluZWQyLFxuICAgICAgXCIlQXN5bmNGdW5jdGlvbiVcIjogbmVlZHNFdmFsLFxuICAgICAgXCIlQXN5bmNHZW5lcmF0b3IlXCI6IG5lZWRzRXZhbCxcbiAgICAgIFwiJUFzeW5jR2VuZXJhdG9yRnVuY3Rpb24lXCI6IG5lZWRzRXZhbCxcbiAgICAgIFwiJUFzeW5jSXRlcmF0b3JQcm90b3R5cGUlXCI6IG5lZWRzRXZhbCxcbiAgICAgIFwiJUF0b21pY3MlXCI6IHR5cGVvZiBBdG9taWNzID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IEF0b21pY3MsXG4gICAgICBcIiVCaWdJbnQlXCI6IHR5cGVvZiBCaWdJbnQgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogQmlnSW50LFxuICAgICAgXCIlQmlnSW50NjRBcnJheSVcIjogdHlwZW9mIEJpZ0ludDY0QXJyYXkgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogQmlnSW50NjRBcnJheSxcbiAgICAgIFwiJUJpZ1VpbnQ2NEFycmF5JVwiOiB0eXBlb2YgQmlnVWludDY0QXJyYXkgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogQmlnVWludDY0QXJyYXksXG4gICAgICBcIiVCb29sZWFuJVwiOiBCb29sZWFuLFxuICAgICAgXCIlRGF0YVZpZXclXCI6IHR5cGVvZiBEYXRhVmlldyA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBEYXRhVmlldyxcbiAgICAgIFwiJURhdGUlXCI6IERhdGUsXG4gICAgICBcIiVkZWNvZGVVUkklXCI6IGRlY29kZVVSSSxcbiAgICAgIFwiJWRlY29kZVVSSUNvbXBvbmVudCVcIjogZGVjb2RlVVJJQ29tcG9uZW50LFxuICAgICAgXCIlZW5jb2RlVVJJJVwiOiBlbmNvZGVVUkksXG4gICAgICBcIiVlbmNvZGVVUklDb21wb25lbnQlXCI6IGVuY29kZVVSSUNvbXBvbmVudCxcbiAgICAgIFwiJUVycm9yJVwiOiAkRXJyb3IsXG4gICAgICBcIiVldmFsJVwiOiBldmFsLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1ldmFsXG4gICAgICBcIiVFdmFsRXJyb3IlXCI6ICRFdmFsRXJyb3IsXG4gICAgICBcIiVGbG9hdDE2QXJyYXklXCI6IHR5cGVvZiBGbG9hdDE2QXJyYXkgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogRmxvYXQxNkFycmF5LFxuICAgICAgXCIlRmxvYXQzMkFycmF5JVwiOiB0eXBlb2YgRmxvYXQzMkFycmF5ID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IEZsb2F0MzJBcnJheSxcbiAgICAgIFwiJUZsb2F0NjRBcnJheSVcIjogdHlwZW9mIEZsb2F0NjRBcnJheSA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBGbG9hdDY0QXJyYXksXG4gICAgICBcIiVGaW5hbGl6YXRpb25SZWdpc3RyeSVcIjogdHlwZW9mIEZpbmFsaXphdGlvblJlZ2lzdHJ5ID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IEZpbmFsaXphdGlvblJlZ2lzdHJ5LFxuICAgICAgXCIlRnVuY3Rpb24lXCI6ICRGdW5jdGlvbixcbiAgICAgIFwiJUdlbmVyYXRvckZ1bmN0aW9uJVwiOiBuZWVkc0V2YWwsXG4gICAgICBcIiVJbnQ4QXJyYXklXCI6IHR5cGVvZiBJbnQ4QXJyYXkgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogSW50OEFycmF5LFxuICAgICAgXCIlSW50MTZBcnJheSVcIjogdHlwZW9mIEludDE2QXJyYXkgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogSW50MTZBcnJheSxcbiAgICAgIFwiJUludDMyQXJyYXklXCI6IHR5cGVvZiBJbnQzMkFycmF5ID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IEludDMyQXJyYXksXG4gICAgICBcIiVpc0Zpbml0ZSVcIjogaXNGaW5pdGUsXG4gICAgICBcIiVpc05hTiVcIjogaXNOYU4sXG4gICAgICBcIiVJdGVyYXRvclByb3RvdHlwZSVcIjogaGFzU3ltYm9scyAmJiBnZXRQcm90byA/IGdldFByb3RvKGdldFByb3RvKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSkpIDogdW5kZWZpbmVkMixcbiAgICAgIFwiJUpTT04lXCI6IHR5cGVvZiBKU09OID09PSBcIm9iamVjdFwiID8gSlNPTiA6IHVuZGVmaW5lZDIsXG4gICAgICBcIiVNYXAlXCI6IHR5cGVvZiBNYXAgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogTWFwLFxuICAgICAgXCIlTWFwSXRlcmF0b3JQcm90b3R5cGUlXCI6IHR5cGVvZiBNYXAgPT09IFwidW5kZWZpbmVkXCIgfHwgIWhhc1N5bWJvbHMgfHwgIWdldFByb3RvID8gdW5kZWZpbmVkMiA6IGdldFByb3RvKCgvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpKVtTeW1ib2wuaXRlcmF0b3JdKCkpLFxuICAgICAgXCIlTWF0aCVcIjogTWF0aCxcbiAgICAgIFwiJU51bWJlciVcIjogTnVtYmVyLFxuICAgICAgXCIlT2JqZWN0JVwiOiAkT2JqZWN0LFxuICAgICAgXCIlT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciVcIjogJGdPUEQsXG4gICAgICBcIiVwYXJzZUZsb2F0JVwiOiBwYXJzZUZsb2F0LFxuICAgICAgXCIlcGFyc2VJbnQlXCI6IHBhcnNlSW50LFxuICAgICAgXCIlUHJvbWlzZSVcIjogdHlwZW9mIFByb21pc2UgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogUHJvbWlzZSxcbiAgICAgIFwiJVByb3h5JVwiOiB0eXBlb2YgUHJveHkgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogUHJveHksXG4gICAgICBcIiVSYW5nZUVycm9yJVwiOiAkUmFuZ2VFcnJvcixcbiAgICAgIFwiJVJlZmVyZW5jZUVycm9yJVwiOiAkUmVmZXJlbmNlRXJyb3IsXG4gICAgICBcIiVSZWZsZWN0JVwiOiB0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBSZWZsZWN0LFxuICAgICAgXCIlUmVnRXhwJVwiOiBSZWdFeHAsXG4gICAgICBcIiVTZXQlXCI6IHR5cGVvZiBTZXQgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogU2V0LFxuICAgICAgXCIlU2V0SXRlcmF0b3JQcm90b3R5cGUlXCI6IHR5cGVvZiBTZXQgPT09IFwidW5kZWZpbmVkXCIgfHwgIWhhc1N5bWJvbHMgfHwgIWdldFByb3RvID8gdW5kZWZpbmVkMiA6IGdldFByb3RvKCgvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpKVtTeW1ib2wuaXRlcmF0b3JdKCkpLFxuICAgICAgXCIlU2hhcmVkQXJyYXlCdWZmZXIlXCI6IHR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlciA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBTaGFyZWRBcnJheUJ1ZmZlcixcbiAgICAgIFwiJVN0cmluZyVcIjogU3RyaW5nLFxuICAgICAgXCIlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlXCI6IGhhc1N5bWJvbHMgJiYgZ2V0UHJvdG8gPyBnZXRQcm90byhcIlwiW1N5bWJvbC5pdGVyYXRvcl0oKSkgOiB1bmRlZmluZWQyLFxuICAgICAgXCIlU3ltYm9sJVwiOiBoYXNTeW1ib2xzID8gU3ltYm9sIDogdW5kZWZpbmVkMixcbiAgICAgIFwiJVN5bnRheEVycm9yJVwiOiAkU3ludGF4RXJyb3IsXG4gICAgICBcIiVUaHJvd1R5cGVFcnJvciVcIjogVGhyb3dUeXBlRXJyb3IsXG4gICAgICBcIiVUeXBlZEFycmF5JVwiOiBUeXBlZEFycmF5LFxuICAgICAgXCIlVHlwZUVycm9yJVwiOiAkVHlwZUVycm9yLFxuICAgICAgXCIlVWludDhBcnJheSVcIjogdHlwZW9mIFVpbnQ4QXJyYXkgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogVWludDhBcnJheSxcbiAgICAgIFwiJVVpbnQ4Q2xhbXBlZEFycmF5JVwiOiB0eXBlb2YgVWludDhDbGFtcGVkQXJyYXkgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogVWludDhDbGFtcGVkQXJyYXksXG4gICAgICBcIiVVaW50MTZBcnJheSVcIjogdHlwZW9mIFVpbnQxNkFycmF5ID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IFVpbnQxNkFycmF5LFxuICAgICAgXCIlVWludDMyQXJyYXklXCI6IHR5cGVvZiBVaW50MzJBcnJheSA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBVaW50MzJBcnJheSxcbiAgICAgIFwiJVVSSUVycm9yJVwiOiAkVVJJRXJyb3IsXG4gICAgICBcIiVXZWFrTWFwJVwiOiB0eXBlb2YgV2Vha01hcCA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBXZWFrTWFwLFxuICAgICAgXCIlV2Vha1JlZiVcIjogdHlwZW9mIFdlYWtSZWYgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogV2Vha1JlZixcbiAgICAgIFwiJVdlYWtTZXQlXCI6IHR5cGVvZiBXZWFrU2V0ID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IFdlYWtTZXQsXG4gICAgICBcIiVGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCVcIjogJGNhbGwsXG4gICAgICBcIiVGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHklXCI6ICRhcHBseSxcbiAgICAgIFwiJU9iamVjdC5kZWZpbmVQcm9wZXJ0eSVcIjogJGRlZmluZVByb3BlcnR5LFxuICAgICAgXCIlT2JqZWN0LmdldFByb3RvdHlwZU9mJVwiOiAkT2JqZWN0R1BPLFxuICAgICAgXCIlTWF0aC5hYnMlXCI6IGFicyxcbiAgICAgIFwiJU1hdGguZmxvb3IlXCI6IGZsb29yLFxuICAgICAgXCIlTWF0aC5tYXglXCI6IG1heCxcbiAgICAgIFwiJU1hdGgubWluJVwiOiBtaW4sXG4gICAgICBcIiVNYXRoLnBvdyVcIjogcG93LFxuICAgICAgXCIlTWF0aC5yb3VuZCVcIjogcm91bmQsXG4gICAgICBcIiVNYXRoLnNpZ24lXCI6IHNpZ24sXG4gICAgICBcIiVSZWZsZWN0LmdldFByb3RvdHlwZU9mJVwiOiAkUmVmbGVjdEdQT1xuICAgIH07XG4gICAgaWYgKGdldFByb3RvKSB7XG4gICAgICB0cnkge1xuICAgICAgICBudWxsLmVycm9yO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBlcnJvclByb3RvID0gZ2V0UHJvdG8oZ2V0UHJvdG8oZSkpO1xuICAgICAgICBJTlRSSU5TSUNTW1wiJUVycm9yLnByb3RvdHlwZSVcIl0gPSBlcnJvclByb3RvO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgZXJyb3JQcm90bztcbiAgICB2YXIgZG9FdmFsID0gZnVuY3Rpb24gZG9FdmFsMihuYW1lKSB7XG4gICAgICB2YXIgdmFsdWU7XG4gICAgICBpZiAobmFtZSA9PT0gXCIlQXN5bmNGdW5jdGlvbiVcIikge1xuICAgICAgICB2YWx1ZSA9IGdldEV2YWxsZWRDb25zdHJ1Y3RvcihcImFzeW5jIGZ1bmN0aW9uICgpIHt9XCIpO1xuICAgICAgfSBlbHNlIGlmIChuYW1lID09PSBcIiVHZW5lcmF0b3JGdW5jdGlvbiVcIikge1xuICAgICAgICB2YWx1ZSA9IGdldEV2YWxsZWRDb25zdHJ1Y3RvcihcImZ1bmN0aW9uKiAoKSB7fVwiKTtcbiAgICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gXCIlQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiVcIikge1xuICAgICAgICB2YWx1ZSA9IGdldEV2YWxsZWRDb25zdHJ1Y3RvcihcImFzeW5jIGZ1bmN0aW9uKiAoKSB7fVwiKTtcbiAgICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gXCIlQXN5bmNHZW5lcmF0b3IlXCIpIHtcbiAgICAgICAgdmFyIGZuID0gZG9FdmFsMihcIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJVwiKTtcbiAgICAgICAgaWYgKGZuKSB7XG4gICAgICAgICAgdmFsdWUgPSBmbi5wcm90b3R5cGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gXCIlQXN5bmNJdGVyYXRvclByb3RvdHlwZSVcIikge1xuICAgICAgICB2YXIgZ2VuID0gZG9FdmFsMihcIiVBc3luY0dlbmVyYXRvciVcIik7XG4gICAgICAgIGlmIChnZW4gJiYgZ2V0UHJvdG8pIHtcbiAgICAgICAgICB2YWx1ZSA9IGdldFByb3RvKGdlbi5wcm90b3R5cGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBJTlRSSU5TSUNTW25hbWVdID0gdmFsdWU7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcbiAgICB2YXIgTEVHQUNZX0FMSUFTRVMgPSB7XG4gICAgICBfX3Byb3RvX186IG51bGwsXG4gICAgICBcIiVBcnJheUJ1ZmZlclByb3RvdHlwZSVcIjogW1wiQXJyYXlCdWZmZXJcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVBcnJheVByb3RvdHlwZSVcIjogW1wiQXJyYXlcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVBcnJheVByb3RvX2VudHJpZXMlXCI6IFtcIkFycmF5XCIsIFwicHJvdG90eXBlXCIsIFwiZW50cmllc1wiXSxcbiAgICAgIFwiJUFycmF5UHJvdG9fZm9yRWFjaCVcIjogW1wiQXJyYXlcIiwgXCJwcm90b3R5cGVcIiwgXCJmb3JFYWNoXCJdLFxuICAgICAgXCIlQXJyYXlQcm90b19rZXlzJVwiOiBbXCJBcnJheVwiLCBcInByb3RvdHlwZVwiLCBcImtleXNcIl0sXG4gICAgICBcIiVBcnJheVByb3RvX3ZhbHVlcyVcIjogW1wiQXJyYXlcIiwgXCJwcm90b3R5cGVcIiwgXCJ2YWx1ZXNcIl0sXG4gICAgICBcIiVBc3luY0Z1bmN0aW9uUHJvdG90eXBlJVwiOiBbXCJBc3luY0Z1bmN0aW9uXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlQXN5bmNHZW5lcmF0b3IlXCI6IFtcIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25cIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVBc3luY0dlbmVyYXRvclByb3RvdHlwZSVcIjogW1wiQXN5bmNHZW5lcmF0b3JGdW5jdGlvblwiLCBcInByb3RvdHlwZVwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJUJvb2xlYW5Qcm90b3R5cGUlXCI6IFtcIkJvb2xlYW5cIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVEYXRhVmlld1Byb3RvdHlwZSVcIjogW1wiRGF0YVZpZXdcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVEYXRlUHJvdG90eXBlJVwiOiBbXCJEYXRlXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlRXJyb3JQcm90b3R5cGUlXCI6IFtcIkVycm9yXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlRXZhbEVycm9yUHJvdG90eXBlJVwiOiBbXCJFdmFsRXJyb3JcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVGbG9hdDMyQXJyYXlQcm90b3R5cGUlXCI6IFtcIkZsb2F0MzJBcnJheVwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJUZsb2F0NjRBcnJheVByb3RvdHlwZSVcIjogW1wiRmxvYXQ2NEFycmF5XCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlRnVuY3Rpb25Qcm90b3R5cGUlXCI6IFtcIkZ1bmN0aW9uXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlR2VuZXJhdG9yJVwiOiBbXCJHZW5lcmF0b3JGdW5jdGlvblwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJUdlbmVyYXRvclByb3RvdHlwZSVcIjogW1wiR2VuZXJhdG9yRnVuY3Rpb25cIiwgXCJwcm90b3R5cGVcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVJbnQ4QXJyYXlQcm90b3R5cGUlXCI6IFtcIkludDhBcnJheVwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJUludDE2QXJyYXlQcm90b3R5cGUlXCI6IFtcIkludDE2QXJyYXlcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVJbnQzMkFycmF5UHJvdG90eXBlJVwiOiBbXCJJbnQzMkFycmF5XCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlSlNPTlBhcnNlJVwiOiBbXCJKU09OXCIsIFwicGFyc2VcIl0sXG4gICAgICBcIiVKU09OU3RyaW5naWZ5JVwiOiBbXCJKU09OXCIsIFwic3RyaW5naWZ5XCJdLFxuICAgICAgXCIlTWFwUHJvdG90eXBlJVwiOiBbXCJNYXBcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVOdW1iZXJQcm90b3R5cGUlXCI6IFtcIk51bWJlclwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJU9iamVjdFByb3RvdHlwZSVcIjogW1wiT2JqZWN0XCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlT2JqUHJvdG9fdG9TdHJpbmclXCI6IFtcIk9iamVjdFwiLCBcInByb3RvdHlwZVwiLCBcInRvU3RyaW5nXCJdLFxuICAgICAgXCIlT2JqUHJvdG9fdmFsdWVPZiVcIjogW1wiT2JqZWN0XCIsIFwicHJvdG90eXBlXCIsIFwidmFsdWVPZlwiXSxcbiAgICAgIFwiJVByb21pc2VQcm90b3R5cGUlXCI6IFtcIlByb21pc2VcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVQcm9taXNlUHJvdG9fdGhlbiVcIjogW1wiUHJvbWlzZVwiLCBcInByb3RvdHlwZVwiLCBcInRoZW5cIl0sXG4gICAgICBcIiVQcm9taXNlX2FsbCVcIjogW1wiUHJvbWlzZVwiLCBcImFsbFwiXSxcbiAgICAgIFwiJVByb21pc2VfcmVqZWN0JVwiOiBbXCJQcm9taXNlXCIsIFwicmVqZWN0XCJdLFxuICAgICAgXCIlUHJvbWlzZV9yZXNvbHZlJVwiOiBbXCJQcm9taXNlXCIsIFwicmVzb2x2ZVwiXSxcbiAgICAgIFwiJVJhbmdlRXJyb3JQcm90b3R5cGUlXCI6IFtcIlJhbmdlRXJyb3JcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVSZWZlcmVuY2VFcnJvclByb3RvdHlwZSVcIjogW1wiUmVmZXJlbmNlRXJyb3JcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVSZWdFeHBQcm90b3R5cGUlXCI6IFtcIlJlZ0V4cFwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVNldFByb3RvdHlwZSVcIjogW1wiU2V0XCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlU2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUlXCI6IFtcIlNoYXJlZEFycmF5QnVmZmVyXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlU3RyaW5nUHJvdG90eXBlJVwiOiBbXCJTdHJpbmdcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVTeW1ib2xQcm90b3R5cGUlXCI6IFtcIlN5bWJvbFwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVN5bnRheEVycm9yUHJvdG90eXBlJVwiOiBbXCJTeW50YXhFcnJvclwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVR5cGVkQXJyYXlQcm90b3R5cGUlXCI6IFtcIlR5cGVkQXJyYXlcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVUeXBlRXJyb3JQcm90b3R5cGUlXCI6IFtcIlR5cGVFcnJvclwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVVpbnQ4QXJyYXlQcm90b3R5cGUlXCI6IFtcIlVpbnQ4QXJyYXlcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVVaW50OENsYW1wZWRBcnJheVByb3RvdHlwZSVcIjogW1wiVWludDhDbGFtcGVkQXJyYXlcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVVaW50MTZBcnJheVByb3RvdHlwZSVcIjogW1wiVWludDE2QXJyYXlcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVVaW50MzJBcnJheVByb3RvdHlwZSVcIjogW1wiVWludDMyQXJyYXlcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVVUklFcnJvclByb3RvdHlwZSVcIjogW1wiVVJJRXJyb3JcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVXZWFrTWFwUHJvdG90eXBlJVwiOiBbXCJXZWFrTWFwXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlV2Vha1NldFByb3RvdHlwZSVcIjogW1wiV2Vha1NldFwiLCBcInByb3RvdHlwZVwiXVxuICAgIH07XG4gICAgdmFyIGJpbmQgPSByZXF1aXJlX2Z1bmN0aW9uX2JpbmQoKTtcbiAgICB2YXIgaGFzT3duID0gcmVxdWlyZV9oYXNvd24oKTtcbiAgICB2YXIgJGNvbmNhdCA9IGJpbmQuY2FsbCgkY2FsbCwgQXJyYXkucHJvdG90eXBlLmNvbmNhdCk7XG4gICAgdmFyICRzcGxpY2VBcHBseSA9IGJpbmQuY2FsbCgkYXBwbHksIEFycmF5LnByb3RvdHlwZS5zcGxpY2UpO1xuICAgIHZhciAkcmVwbGFjZSA9IGJpbmQuY2FsbCgkY2FsbCwgU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKTtcbiAgICB2YXIgJHN0clNsaWNlID0gYmluZC5jYWxsKCRjYWxsLCBTdHJpbmcucHJvdG90eXBlLnNsaWNlKTtcbiAgICB2YXIgJGV4ZWMgPSBiaW5kLmNhbGwoJGNhbGwsIFJlZ0V4cC5wcm90b3R5cGUuZXhlYyk7XG4gICAgdmFyIHJlUHJvcE5hbWUgPSAvW14lLltcXF1dK3xcXFsoPzooLT9cXGQrKD86XFwuXFxkKyk/KXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCUkKSkvZztcbiAgICB2YXIgcmVFc2NhcGVDaGFyID0gL1xcXFwoXFxcXCk/L2c7XG4gICAgdmFyIHN0cmluZ1RvUGF0aCA9IGZ1bmN0aW9uIHN0cmluZ1RvUGF0aDIoc3RyaW5nKSB7XG4gICAgICB2YXIgZmlyc3QgPSAkc3RyU2xpY2Uoc3RyaW5nLCAwLCAxKTtcbiAgICAgIHZhciBsYXN0ID0gJHN0clNsaWNlKHN0cmluZywgLTEpO1xuICAgICAgaWYgKGZpcnN0ID09PSBcIiVcIiAmJiBsYXN0ICE9PSBcIiVcIikge1xuICAgICAgICB0aHJvdyBuZXcgJFN5bnRheEVycm9yKFwiaW52YWxpZCBpbnRyaW5zaWMgc3ludGF4LCBleHBlY3RlZCBjbG9zaW5nIGAlYFwiKTtcbiAgICAgIH0gZWxzZSBpZiAobGFzdCA9PT0gXCIlXCIgJiYgZmlyc3QgIT09IFwiJVwiKSB7XG4gICAgICAgIHRocm93IG5ldyAkU3ludGF4RXJyb3IoXCJpbnZhbGlkIGludHJpbnNpYyBzeW50YXgsIGV4cGVjdGVkIG9wZW5pbmcgYCVgXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgJHJlcGxhY2Uoc3RyaW5nLCByZVByb3BOYW1lLCBmdW5jdGlvbihtYXRjaCwgbnVtYmVyLCBxdW90ZSwgc3ViU3RyaW5nKSB7XG4gICAgICAgIHJlc3VsdFtyZXN1bHQubGVuZ3RoXSA9IHF1b3RlID8gJHJlcGxhY2Uoc3ViU3RyaW5nLCByZUVzY2FwZUNoYXIsIFwiJDFcIikgOiBudW1iZXIgfHwgbWF0Y2g7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICB2YXIgZ2V0QmFzZUludHJpbnNpYyA9IGZ1bmN0aW9uIGdldEJhc2VJbnRyaW5zaWMyKG5hbWUsIGFsbG93TWlzc2luZykge1xuICAgICAgdmFyIGludHJpbnNpY05hbWUgPSBuYW1lO1xuICAgICAgdmFyIGFsaWFzO1xuICAgICAgaWYgKGhhc093bihMRUdBQ1lfQUxJQVNFUywgaW50cmluc2ljTmFtZSkpIHtcbiAgICAgICAgYWxpYXMgPSBMRUdBQ1lfQUxJQVNFU1tpbnRyaW5zaWNOYW1lXTtcbiAgICAgICAgaW50cmluc2ljTmFtZSA9IFwiJVwiICsgYWxpYXNbMF0gKyBcIiVcIjtcbiAgICAgIH1cbiAgICAgIGlmIChoYXNPd24oSU5UUklOU0lDUywgaW50cmluc2ljTmFtZSkpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gSU5UUklOU0lDU1tpbnRyaW5zaWNOYW1lXTtcbiAgICAgICAgaWYgKHZhbHVlID09PSBuZWVkc0V2YWwpIHtcbiAgICAgICAgICB2YWx1ZSA9IGRvRXZhbChpbnRyaW5zaWNOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiICYmICFhbGxvd01pc3NpbmcpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgJFR5cGVFcnJvcihcImludHJpbnNpYyBcIiArIG5hbWUgKyBcIiBleGlzdHMsIGJ1dCBpcyBub3QgYXZhaWxhYmxlLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZSFcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhbGlhcyxcbiAgICAgICAgICBuYW1lOiBpbnRyaW5zaWNOYW1lLFxuICAgICAgICAgIHZhbHVlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgJFN5bnRheEVycm9yKFwiaW50cmluc2ljIFwiICsgbmFtZSArIFwiIGRvZXMgbm90IGV4aXN0IVwiKTtcbiAgICB9O1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIEdldEludHJpbnNpYyhuYW1lLCBhbGxvd01pc3NpbmcpIHtcbiAgICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gXCJzdHJpbmdcIiB8fCBuYW1lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgJFR5cGVFcnJvcihcImludHJpbnNpYyBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nXCIpO1xuICAgICAgfVxuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIHR5cGVvZiBhbGxvd01pc3NpbmcgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIHRocm93IG5ldyAkVHlwZUVycm9yKCdcImFsbG93TWlzc2luZ1wiIGFyZ3VtZW50IG11c3QgYmUgYSBib29sZWFuJyk7XG4gICAgICB9XG4gICAgICBpZiAoJGV4ZWMoL14lP1teJV0qJT8kLywgbmFtZSkgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3ICRTeW50YXhFcnJvcihcImAlYCBtYXkgbm90IGJlIHByZXNlbnQgYW55d2hlcmUgYnV0IGF0IHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgaW50cmluc2ljIG5hbWVcIik7XG4gICAgICB9XG4gICAgICB2YXIgcGFydHMgPSBzdHJpbmdUb1BhdGgobmFtZSk7XG4gICAgICB2YXIgaW50cmluc2ljQmFzZU5hbWUgPSBwYXJ0cy5sZW5ndGggPiAwID8gcGFydHNbMF0gOiBcIlwiO1xuICAgICAgdmFyIGludHJpbnNpYyA9IGdldEJhc2VJbnRyaW5zaWMoXCIlXCIgKyBpbnRyaW5zaWNCYXNlTmFtZSArIFwiJVwiLCBhbGxvd01pc3NpbmcpO1xuICAgICAgdmFyIGludHJpbnNpY1JlYWxOYW1lID0gaW50cmluc2ljLm5hbWU7XG4gICAgICB2YXIgdmFsdWUgPSBpbnRyaW5zaWMudmFsdWU7XG4gICAgICB2YXIgc2tpcEZ1cnRoZXJDYWNoaW5nID0gZmFsc2U7XG4gICAgICB2YXIgYWxpYXMgPSBpbnRyaW5zaWMuYWxpYXM7XG4gICAgICBpZiAoYWxpYXMpIHtcbiAgICAgICAgaW50cmluc2ljQmFzZU5hbWUgPSBhbGlhc1swXTtcbiAgICAgICAgJHNwbGljZUFwcGx5KHBhcnRzLCAkY29uY2F0KFswLCAxXSwgYWxpYXMpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAxLCBpc093biA9IHRydWU7IGkgPCBwYXJ0cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICB2YXIgcGFydCA9IHBhcnRzW2ldO1xuICAgICAgICB2YXIgZmlyc3QgPSAkc3RyU2xpY2UocGFydCwgMCwgMSk7XG4gICAgICAgIHZhciBsYXN0ID0gJHN0clNsaWNlKHBhcnQsIC0xKTtcbiAgICAgICAgaWYgKChmaXJzdCA9PT0gJ1wiJyB8fCBmaXJzdCA9PT0gXCInXCIgfHwgZmlyc3QgPT09IFwiYFwiIHx8IChsYXN0ID09PSAnXCInIHx8IGxhc3QgPT09IFwiJ1wiIHx8IGxhc3QgPT09IFwiYFwiKSkgJiYgZmlyc3QgIT09IGxhc3QpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgJFN5bnRheEVycm9yKFwicHJvcGVydHkgbmFtZXMgd2l0aCBxdW90ZXMgbXVzdCBoYXZlIG1hdGNoaW5nIHF1b3Rlc1wiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFydCA9PT0gXCJjb25zdHJ1Y3RvclwiIHx8ICFpc093bikge1xuICAgICAgICAgIHNraXBGdXJ0aGVyQ2FjaGluZyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaW50cmluc2ljQmFzZU5hbWUgKz0gXCIuXCIgKyBwYXJ0O1xuICAgICAgICBpbnRyaW5zaWNSZWFsTmFtZSA9IFwiJVwiICsgaW50cmluc2ljQmFzZU5hbWUgKyBcIiVcIjtcbiAgICAgICAgaWYgKGhhc093bihJTlRSSU5TSUNTLCBpbnRyaW5zaWNSZWFsTmFtZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IElOVFJJTlNJQ1NbaW50cmluc2ljUmVhbE5hbWVdO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICBpZiAoIShwYXJ0IGluIHZhbHVlKSkge1xuICAgICAgICAgICAgaWYgKCFhbGxvd01pc3NpbmcpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJiYXNlIGludHJpbnNpYyBmb3IgXCIgKyBuYW1lICsgXCIgZXhpc3RzLCBidXQgdGhlIHByb3BlcnR5IGlzIG5vdCBhdmFpbGFibGUuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZvaWQgdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCRnT1BEICYmIGkgKyAxID49IHBhcnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSAkZ09QRCh2YWx1ZSwgcGFydCk7XG4gICAgICAgICAgICBpc093biA9ICEhZGVzYztcbiAgICAgICAgICAgIGlmIChpc093biAmJiBcImdldFwiIGluIGRlc2MgJiYgIShcIm9yaWdpbmFsVmFsdWVcIiBpbiBkZXNjLmdldCkpIHtcbiAgICAgICAgICAgICAgdmFsdWUgPSBkZXNjLmdldDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhbHVlID0gdmFsdWVbcGFydF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlzT3duID0gaGFzT3duKHZhbHVlLCBwYXJ0KTtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWVbcGFydF07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc093biAmJiAhc2tpcEZ1cnRoZXJDYWNoaW5nKSB7XG4gICAgICAgICAgICBJTlRSSU5TSUNTW2ludHJpbnNpY1JlYWxOYW1lXSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY2FsbC1ib3VuZC9pbmRleC5qc1xudmFyIHJlcXVpcmVfY2FsbF9ib3VuZCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jYWxsLWJvdW5kL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgR2V0SW50cmluc2ljID0gcmVxdWlyZV9nZXRfaW50cmluc2ljKCk7XG4gICAgdmFyIGNhbGxCaW5kQmFzaWMgPSByZXF1aXJlX2NhbGxfYmluZF9hcHBseV9oZWxwZXJzKCk7XG4gICAgdmFyICRpbmRleE9mID0gY2FsbEJpbmRCYXNpYyhbR2V0SW50cmluc2ljKFwiJVN0cmluZy5wcm90b3R5cGUuaW5kZXhPZiVcIildKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbiBjYWxsQm91bmRJbnRyaW5zaWMobmFtZSwgYWxsb3dNaXNzaW5nKSB7XG4gICAgICB2YXIgaW50cmluc2ljID0gKFxuICAgICAgICAvKiogQHR5cGUgeyh0aGlzOiB1bmtub3duLCAuLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd259ICovXG4gICAgICAgIEdldEludHJpbnNpYyhuYW1lLCAhIWFsbG93TWlzc2luZylcbiAgICAgICk7XG4gICAgICBpZiAodHlwZW9mIGludHJpbnNpYyA9PT0gXCJmdW5jdGlvblwiICYmICRpbmRleE9mKG5hbWUsIFwiLnByb3RvdHlwZS5cIikgPiAtMSkge1xuICAgICAgICByZXR1cm4gY2FsbEJpbmRCYXNpYyhcbiAgICAgICAgICAvKiogQHR5cGUge2NvbnN0fSAqL1xuICAgICAgICAgIFtpbnRyaW5zaWNdXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaW50cmluc2ljO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvc2lkZS1jaGFubmVsLW1hcC9pbmRleC5qc1xudmFyIHJlcXVpcmVfc2lkZV9jaGFubmVsX21hcCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zaWRlLWNoYW5uZWwtbWFwL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgR2V0SW50cmluc2ljID0gcmVxdWlyZV9nZXRfaW50cmluc2ljKCk7XG4gICAgdmFyIGNhbGxCb3VuZCA9IHJlcXVpcmVfY2FsbF9ib3VuZCgpO1xuICAgIHZhciBpbnNwZWN0ID0gcmVxdWlyZV9vYmplY3RfaW5zcGVjdCgpO1xuICAgIHZhciAkVHlwZUVycm9yID0gcmVxdWlyZV90eXBlKCk7XG4gICAgdmFyICRNYXAgPSBHZXRJbnRyaW5zaWMoXCIlTWFwJVwiLCB0cnVlKTtcbiAgICB2YXIgJG1hcEdldCA9IGNhbGxCb3VuZChcIk1hcC5wcm90b3R5cGUuZ2V0XCIsIHRydWUpO1xuICAgIHZhciAkbWFwU2V0ID0gY2FsbEJvdW5kKFwiTWFwLnByb3RvdHlwZS5zZXRcIiwgdHJ1ZSk7XG4gICAgdmFyICRtYXBIYXMgPSBjYWxsQm91bmQoXCJNYXAucHJvdG90eXBlLmhhc1wiLCB0cnVlKTtcbiAgICB2YXIgJG1hcERlbGV0ZSA9IGNhbGxCb3VuZChcIk1hcC5wcm90b3R5cGUuZGVsZXRlXCIsIHRydWUpO1xuICAgIHZhciAkbWFwU2l6ZSA9IGNhbGxCb3VuZChcIk1hcC5wcm90b3R5cGUuc2l6ZVwiLCB0cnVlKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSAhISRNYXAgJiYgLyoqIEB0eXBlIHtFeGNsdWRlPGltcG9ydCgnLicpLCBmYWxzZT59ICovXG4gICAgZnVuY3Rpb24gZ2V0U2lkZUNoYW5uZWxNYXAoKSB7XG4gICAgICB2YXIgJG07XG4gICAgICB2YXIgY2hhbm5lbCA9IHtcbiAgICAgICAgYXNzZXJ0OiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICBpZiAoIWNoYW5uZWwuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyAkVHlwZUVycm9yKFwiU2lkZSBjaGFubmVsIGRvZXMgbm90IGNvbnRhaW4gXCIgKyBpbnNwZWN0KGtleSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWxldGVcIjogZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgaWYgKCRtKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gJG1hcERlbGV0ZSgkbSwga2V5KTtcbiAgICAgICAgICAgIGlmICgkbWFwU2l6ZSgkbSkgPT09IDApIHtcbiAgICAgICAgICAgICAgJG0gPSB2b2lkIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGdldDogZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgaWYgKCRtKSB7XG4gICAgICAgICAgICByZXR1cm4gJG1hcEdldCgkbSwga2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGhhczogZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgaWYgKCRtKSB7XG4gICAgICAgICAgICByZXR1cm4gJG1hcEhhcygkbSwga2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcbiAgICAgICAgICBpZiAoISRtKSB7XG4gICAgICAgICAgICAkbSA9IG5ldyAkTWFwKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICRtYXBTZXQoJG0sIGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgcmV0dXJuIGNoYW5uZWw7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9zaWRlLWNoYW5uZWwtd2Vha21hcC9pbmRleC5qc1xudmFyIHJlcXVpcmVfc2lkZV9jaGFubmVsX3dlYWttYXAgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc2lkZS1jaGFubmVsLXdlYWttYXAvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBHZXRJbnRyaW5zaWMgPSByZXF1aXJlX2dldF9pbnRyaW5zaWMoKTtcbiAgICB2YXIgY2FsbEJvdW5kID0gcmVxdWlyZV9jYWxsX2JvdW5kKCk7XG4gICAgdmFyIGluc3BlY3QgPSByZXF1aXJlX29iamVjdF9pbnNwZWN0KCk7XG4gICAgdmFyIGdldFNpZGVDaGFubmVsTWFwID0gcmVxdWlyZV9zaWRlX2NoYW5uZWxfbWFwKCk7XG4gICAgdmFyICRUeXBlRXJyb3IgPSByZXF1aXJlX3R5cGUoKTtcbiAgICB2YXIgJFdlYWtNYXAgPSBHZXRJbnRyaW5zaWMoXCIlV2Vha01hcCVcIiwgdHJ1ZSk7XG4gICAgdmFyICR3ZWFrTWFwR2V0ID0gY2FsbEJvdW5kKFwiV2Vha01hcC5wcm90b3R5cGUuZ2V0XCIsIHRydWUpO1xuICAgIHZhciAkd2Vha01hcFNldCA9IGNhbGxCb3VuZChcIldlYWtNYXAucHJvdG90eXBlLnNldFwiLCB0cnVlKTtcbiAgICB2YXIgJHdlYWtNYXBIYXMgPSBjYWxsQm91bmQoXCJXZWFrTWFwLnByb3RvdHlwZS5oYXNcIiwgdHJ1ZSk7XG4gICAgdmFyICR3ZWFrTWFwRGVsZXRlID0gY2FsbEJvdW5kKFwiV2Vha01hcC5wcm90b3R5cGUuZGVsZXRlXCIsIHRydWUpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9ICRXZWFrTWFwID8gKFxuICAgICAgLyoqIEB0eXBlIHtFeGNsdWRlPGltcG9ydCgnLicpLCBmYWxzZT59ICovXG4gICAgICBmdW5jdGlvbiBnZXRTaWRlQ2hhbm5lbFdlYWtNYXAoKSB7XG4gICAgICAgIHZhciAkd207XG4gICAgICAgIHZhciAkbTtcbiAgICAgICAgdmFyIGNoYW5uZWwgPSB7XG4gICAgICAgICAgYXNzZXJ0OiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICAgIGlmICghY2hhbm5lbC5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgJFR5cGVFcnJvcihcIlNpZGUgY2hhbm5lbCBkb2VzIG5vdCBjb250YWluIFwiICsgaW5zcGVjdChrZXkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVsZXRlXCI6IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgaWYgKCRXZWFrTWFwICYmIGtleSAmJiAodHlwZW9mIGtleSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2Yga2V5ID09PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgICAgICAgICAgIGlmICgkd20pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJHdlYWtNYXBEZWxldGUoJHdtLCBrZXkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGdldFNpZGVDaGFubmVsTWFwKSB7XG4gICAgICAgICAgICAgIGlmICgkbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAkbVtcImRlbGV0ZVwiXShrZXkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgaWYgKCRXZWFrTWFwICYmIGtleSAmJiAodHlwZW9mIGtleSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2Yga2V5ID09PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgICAgICAgICAgIGlmICgkd20pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJHdlYWtNYXBHZXQoJHdtLCBrZXkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gJG0gJiYgJG0uZ2V0KGtleSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBoYXM6IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgaWYgKCRXZWFrTWFwICYmIGtleSAmJiAodHlwZW9mIGtleSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2Yga2V5ID09PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgICAgICAgICAgIGlmICgkd20pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJHdlYWtNYXBIYXMoJHdtLCBrZXkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gISEkbSAmJiAkbS5oYXMoa2V5KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldDogZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKCRXZWFrTWFwICYmIGtleSAmJiAodHlwZW9mIGtleSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2Yga2V5ID09PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgICAgICAgICAgIGlmICghJHdtKSB7XG4gICAgICAgICAgICAgICAgJHdtID0gbmV3ICRXZWFrTWFwKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJHdlYWtNYXBTZXQoJHdtLCBrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2V0U2lkZUNoYW5uZWxNYXApIHtcbiAgICAgICAgICAgICAgaWYgKCEkbSkge1xuICAgICAgICAgICAgICAgICRtID0gZ2V0U2lkZUNoYW5uZWxNYXAoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAkbS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gY2hhbm5lbDtcbiAgICAgIH1cbiAgICApIDogZ2V0U2lkZUNoYW5uZWxNYXA7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvc2lkZS1jaGFubmVsL2luZGV4LmpzXG52YXIgcmVxdWlyZV9zaWRlX2NoYW5uZWwgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc2lkZS1jaGFubmVsL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgJFR5cGVFcnJvciA9IHJlcXVpcmVfdHlwZSgpO1xuICAgIHZhciBpbnNwZWN0ID0gcmVxdWlyZV9vYmplY3RfaW5zcGVjdCgpO1xuICAgIHZhciBnZXRTaWRlQ2hhbm5lbExpc3QgPSByZXF1aXJlX3NpZGVfY2hhbm5lbF9saXN0KCk7XG4gICAgdmFyIGdldFNpZGVDaGFubmVsTWFwID0gcmVxdWlyZV9zaWRlX2NoYW5uZWxfbWFwKCk7XG4gICAgdmFyIGdldFNpZGVDaGFubmVsV2Vha01hcCA9IHJlcXVpcmVfc2lkZV9jaGFubmVsX3dlYWttYXAoKTtcbiAgICB2YXIgbWFrZUNoYW5uZWwgPSBnZXRTaWRlQ2hhbm5lbFdlYWtNYXAgfHwgZ2V0U2lkZUNoYW5uZWxNYXAgfHwgZ2V0U2lkZUNoYW5uZWxMaXN0O1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIGdldFNpZGVDaGFubmVsKCkge1xuICAgICAgdmFyICRjaGFubmVsRGF0YTtcbiAgICAgIHZhciBjaGFubmVsID0ge1xuICAgICAgICBhc3NlcnQ6IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgIGlmICghY2hhbm5lbC5oYXMoa2V5KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJTaWRlIGNoYW5uZWwgZG9lcyBub3QgY29udGFpbiBcIiArIGluc3BlY3Qoa2V5KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImRlbGV0ZVwiOiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICByZXR1cm4gISEkY2hhbm5lbERhdGEgJiYgJGNoYW5uZWxEYXRhW1wiZGVsZXRlXCJdKGtleSk7XG4gICAgICAgIH0sXG4gICAgICAgIGdldDogZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgcmV0dXJuICRjaGFubmVsRGF0YSAmJiAkY2hhbm5lbERhdGEuZ2V0KGtleSk7XG4gICAgICAgIH0sXG4gICAgICAgIGhhczogZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgcmV0dXJuICEhJGNoYW5uZWxEYXRhICYmICRjaGFubmVsRGF0YS5oYXMoa2V5KTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgICAgICAgaWYgKCEkY2hhbm5lbERhdGEpIHtcbiAgICAgICAgICAgICRjaGFubmVsRGF0YSA9IG1ha2VDaGFubmVsKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgICRjaGFubmVsRGF0YS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4gY2hhbm5lbDtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3FzL2xpYi9mb3JtYXRzLmpzXG52YXIgcmVxdWlyZV9mb3JtYXRzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3FzL2xpYi9mb3JtYXRzLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgcmVwbGFjZSA9IFN0cmluZy5wcm90b3R5cGUucmVwbGFjZTtcbiAgICB2YXIgcGVyY2VudFR3ZW50aWVzID0gLyUyMC9nO1xuICAgIHZhciBGb3JtYXQgPSB7XG4gICAgICBSRkMxNzM4OiBcIlJGQzE3MzhcIixcbiAgICAgIFJGQzM5ODY6IFwiUkZDMzk4NlwiXG4gICAgfTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7XG4gICAgICBcImRlZmF1bHRcIjogRm9ybWF0LlJGQzM5ODYsXG4gICAgICBmb3JtYXR0ZXJzOiB7XG4gICAgICAgIFJGQzE3Mzg6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcGxhY2UuY2FsbCh2YWx1ZSwgcGVyY2VudFR3ZW50aWVzLCBcIitcIik7XG4gICAgICAgIH0sXG4gICAgICAgIFJGQzM5ODY6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBSRkMxNzM4OiBGb3JtYXQuUkZDMTczOCxcbiAgICAgIFJGQzM5ODY6IEZvcm1hdC5SRkMzOTg2XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9xcy9saWIvdXRpbHMuanNcbnZhciByZXF1aXJlX3V0aWxzMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9xcy9saWIvdXRpbHMuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBmb3JtYXRzID0gcmVxdWlyZV9mb3JtYXRzKCk7XG4gICAgdmFyIGhhcyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4gICAgdmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuICAgIHZhciBoZXhUYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGFycmF5ID0gW107XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI1NjsgKytpKSB7XG4gICAgICAgIGFycmF5LnB1c2goXCIlXCIgKyAoKGkgPCAxNiA/IFwiMFwiIDogXCJcIikgKyBpLnRvU3RyaW5nKDE2KSkudG9VcHBlckNhc2UoKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfSgpO1xuICAgIHZhciBjb21wYWN0UXVldWUgPSBmdW5jdGlvbiBjb21wYWN0UXVldWUyKHF1ZXVlKSB7XG4gICAgICB3aGlsZSAocXVldWUubGVuZ3RoID4gMSkge1xuICAgICAgICB2YXIgaXRlbSA9IHF1ZXVlLnBvcCgpO1xuICAgICAgICB2YXIgb2JqID0gaXRlbS5vYmpbaXRlbS5wcm9wXTtcbiAgICAgICAgaWYgKGlzQXJyYXkob2JqKSkge1xuICAgICAgICAgIHZhciBjb21wYWN0ZWQgPSBbXTtcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG9iai5sZW5ndGg7ICsraikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpbal0gIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgY29tcGFjdGVkLnB1c2gob2JqW2pdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaXRlbS5vYmpbaXRlbS5wcm9wXSA9IGNvbXBhY3RlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgdmFyIGFycmF5VG9PYmplY3QgPSBmdW5jdGlvbiBhcnJheVRvT2JqZWN0Mihzb3VyY2UsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBvYmogPSBvcHRpb25zICYmIG9wdGlvbnMucGxhaW5PYmplY3RzID8geyBfX3Byb3RvX186IG51bGwgfSA6IHt9O1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzb3VyY2VbaV0gIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBvYmpbaV0gPSBzb3VyY2VbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcbiAgICB2YXIgbWVyZ2UgPSBmdW5jdGlvbiBtZXJnZTIodGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgICAgIGlmICghc291cmNlKSB7XG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHNvdXJjZSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygc291cmNlICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgaWYgKGlzQXJyYXkodGFyZ2V0KSkge1xuICAgICAgICAgIHRhcmdldC5wdXNoKHNvdXJjZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGFyZ2V0ICYmIHR5cGVvZiB0YXJnZXQgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICBpZiAob3B0aW9ucyAmJiAob3B0aW9ucy5wbGFpbk9iamVjdHMgfHwgb3B0aW9ucy5hbGxvd1Byb3RvdHlwZXMpIHx8ICFoYXMuY2FsbChPYmplY3QucHJvdG90eXBlLCBzb3VyY2UpKSB7XG4gICAgICAgICAgICB0YXJnZXRbc291cmNlXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBbdGFyZ2V0LCBzb3VyY2VdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICB9XG4gICAgICBpZiAoIXRhcmdldCB8fCB0eXBlb2YgdGFyZ2V0ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBbdGFyZ2V0XS5jb25jYXQoc291cmNlKTtcbiAgICAgIH1cbiAgICAgIHZhciBtZXJnZVRhcmdldCA9IHRhcmdldDtcbiAgICAgIGlmIChpc0FycmF5KHRhcmdldCkgJiYgIWlzQXJyYXkoc291cmNlKSkge1xuICAgICAgICBtZXJnZVRhcmdldCA9IGFycmF5VG9PYmplY3QodGFyZ2V0LCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0FycmF5KHRhcmdldCkgJiYgaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICAgIHNvdXJjZS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGkpIHtcbiAgICAgICAgICBpZiAoaGFzLmNhbGwodGFyZ2V0LCBpKSkge1xuICAgICAgICAgICAgdmFyIHRhcmdldEl0ZW0gPSB0YXJnZXRbaV07XG4gICAgICAgICAgICBpZiAodGFyZ2V0SXRlbSAmJiB0eXBlb2YgdGFyZ2V0SXRlbSA9PT0gXCJvYmplY3RcIiAmJiBpdGVtICYmIHR5cGVvZiBpdGVtID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgIHRhcmdldFtpXSA9IG1lcmdlMih0YXJnZXRJdGVtLCBpdGVtLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRhcmdldC5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXRbaV0gPSBpdGVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoc291cmNlKS5yZWR1Y2UoZnVuY3Rpb24oYWNjLCBrZXkpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gc291cmNlW2tleV07XG4gICAgICAgIGlmIChoYXMuY2FsbChhY2MsIGtleSkpIHtcbiAgICAgICAgICBhY2Nba2V5XSA9IG1lcmdlMihhY2Nba2V5XSwgdmFsdWUsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIG1lcmdlVGFyZ2V0KTtcbiAgICB9O1xuICAgIHZhciBhc3NpZ24gPSBmdW5jdGlvbiBhc3NpZ25TaW5nbGVTb3VyY2UodGFyZ2V0LCBzb3VyY2UpIHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhzb3VyY2UpLnJlZHVjZShmdW5jdGlvbihhY2MsIGtleSkge1xuICAgICAgICBhY2Nba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgdGFyZ2V0KTtcbiAgICB9O1xuICAgIHZhciBkZWNvZGUgPSBmdW5jdGlvbihzdHIsIGRlZmF1bHREZWNvZGVyLCBjaGFyc2V0KSB7XG4gICAgICB2YXIgc3RyV2l0aG91dFBsdXMgPSBzdHIucmVwbGFjZSgvXFwrL2csIFwiIFwiKTtcbiAgICAgIGlmIChjaGFyc2V0ID09PSBcImlzby04ODU5LTFcIikge1xuICAgICAgICByZXR1cm4gc3RyV2l0aG91dFBsdXMucmVwbGFjZSgvJVswLTlhLWZdezJ9L2dpLCB1bmVzY2FwZSk7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHN0cldpdGhvdXRQbHVzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHN0cldpdGhvdXRQbHVzO1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIGxpbWl0ID0gMTAyNDtcbiAgICB2YXIgZW5jb2RlID0gZnVuY3Rpb24gZW5jb2RlMihzdHIsIGRlZmF1bHRFbmNvZGVyLCBjaGFyc2V0LCBraW5kLCBmb3JtYXQpIHtcbiAgICAgIGlmIChzdHIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgICB9XG4gICAgICB2YXIgc3RyaW5nID0gc3RyO1xuICAgICAgaWYgKHR5cGVvZiBzdHIgPT09IFwic3ltYm9sXCIpIHtcbiAgICAgICAgc3RyaW5nID0gU3ltYm9sLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHN0cik7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgc3RyaW5nID0gU3RyaW5nKHN0cik7XG4gICAgICB9XG4gICAgICBpZiAoY2hhcnNldCA9PT0gXCJpc28tODg1OS0xXCIpIHtcbiAgICAgICAgcmV0dXJuIGVzY2FwZShzdHJpbmcpLnJlcGxhY2UoLyV1WzAtOWEtZl17NH0vZ2ksIGZ1bmN0aW9uKCQwKSB7XG4gICAgICAgICAgcmV0dXJuIFwiJTI2JTIzXCIgKyBwYXJzZUludCgkMC5zbGljZSgyKSwgMTYpICsgXCIlM0JcIjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB2YXIgb3V0ID0gXCJcIjtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc3RyaW5nLmxlbmd0aDsgaiArPSBsaW1pdCkge1xuICAgICAgICB2YXIgc2VnbWVudCA9IHN0cmluZy5sZW5ndGggPj0gbGltaXQgPyBzdHJpbmcuc2xpY2UoaiwgaiArIGxpbWl0KSA6IHN0cmluZztcbiAgICAgICAgdmFyIGFyciA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlZ21lbnQubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICB2YXIgYyA9IHNlZ21lbnQuY2hhckNvZGVBdChpKTtcbiAgICAgICAgICBpZiAoYyA9PT0gNDUgfHwgYyA9PT0gNDYgfHwgYyA9PT0gOTUgfHwgYyA9PT0gMTI2IHx8IGMgPj0gNDggJiYgYyA8PSA1NyB8fCBjID49IDY1ICYmIGMgPD0gOTAgfHwgYyA+PSA5NyAmJiBjIDw9IDEyMiB8fCBmb3JtYXQgPT09IGZvcm1hdHMuUkZDMTczOCAmJiAoYyA9PT0gNDAgfHwgYyA9PT0gNDEpKSB7XG4gICAgICAgICAgICBhcnJbYXJyLmxlbmd0aF0gPSBzZWdtZW50LmNoYXJBdChpKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYyA8IDEyOCkge1xuICAgICAgICAgICAgYXJyW2Fyci5sZW5ndGhdID0gaGV4VGFibGVbY107XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGMgPCAyMDQ4KSB7XG4gICAgICAgICAgICBhcnJbYXJyLmxlbmd0aF0gPSBoZXhUYWJsZVsxOTIgfCBjID4+IDZdICsgaGV4VGFibGVbMTI4IHwgYyAmIDYzXTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYyA8IDU1Mjk2IHx8IGMgPj0gNTczNDQpIHtcbiAgICAgICAgICAgIGFyclthcnIubGVuZ3RoXSA9IGhleFRhYmxlWzIyNCB8IGMgPj4gMTJdICsgaGV4VGFibGVbMTI4IHwgYyA+PiA2ICYgNjNdICsgaGV4VGFibGVbMTI4IHwgYyAmIDYzXTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpICs9IDE7XG4gICAgICAgICAgYyA9IDY1NTM2ICsgKChjICYgMTAyMykgPDwgMTAgfCBzZWdtZW50LmNoYXJDb2RlQXQoaSkgJiAxMDIzKTtcbiAgICAgICAgICBhcnJbYXJyLmxlbmd0aF0gPSBoZXhUYWJsZVsyNDAgfCBjID4+IDE4XSArIGhleFRhYmxlWzEyOCB8IGMgPj4gMTIgJiA2M10gKyBoZXhUYWJsZVsxMjggfCBjID4+IDYgJiA2M10gKyBoZXhUYWJsZVsxMjggfCBjICYgNjNdO1xuICAgICAgICB9XG4gICAgICAgIG91dCArPSBhcnIuam9pbihcIlwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvdXQ7XG4gICAgfTtcbiAgICB2YXIgY29tcGFjdCA9IGZ1bmN0aW9uIGNvbXBhY3QyKHZhbHVlKSB7XG4gICAgICB2YXIgcXVldWUgPSBbeyBvYmo6IHsgbzogdmFsdWUgfSwgcHJvcDogXCJvXCIgfV07XG4gICAgICB2YXIgcmVmcyA9IFtdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWV1ZS5sZW5ndGg7ICsraSkge1xuICAgICAgICB2YXIgaXRlbSA9IHF1ZXVlW2ldO1xuICAgICAgICB2YXIgb2JqID0gaXRlbS5vYmpbaXRlbS5wcm9wXTtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGtleXMubGVuZ3RoOyArK2opIHtcbiAgICAgICAgICB2YXIga2V5ID0ga2V5c1tqXTtcbiAgICAgICAgICB2YXIgdmFsID0gb2JqW2tleV07XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09IFwib2JqZWN0XCIgJiYgdmFsICE9PSBudWxsICYmIHJlZnMuaW5kZXhPZih2YWwpID09PSAtMSkge1xuICAgICAgICAgICAgcXVldWUucHVzaCh7IG9iaiwgcHJvcDoga2V5IH0pO1xuICAgICAgICAgICAgcmVmcy5wdXNoKHZhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb21wYWN0UXVldWUocXVldWUpO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG4gICAgdmFyIGlzUmVnRXhwID0gZnVuY3Rpb24gaXNSZWdFeHAyKG9iaikge1xuICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSBcIltvYmplY3QgUmVnRXhwXVwiO1xuICAgIH07XG4gICAgdmFyIGlzQnVmZmVyID0gZnVuY3Rpb24gaXNCdWZmZXIyKG9iaikge1xuICAgICAgaWYgKCFvYmogfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gISEob2JqLmNvbnN0cnVjdG9yICYmIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlciAmJiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIob2JqKSk7XG4gICAgfTtcbiAgICB2YXIgY29tYmluZSA9IGZ1bmN0aW9uIGNvbWJpbmUyKGEsIGIpIHtcbiAgICAgIHJldHVybiBbXS5jb25jYXQoYSwgYik7XG4gICAgfTtcbiAgICB2YXIgbWF5YmVNYXAgPSBmdW5jdGlvbiBtYXliZU1hcDIodmFsLCBmbikge1xuICAgICAgaWYgKGlzQXJyYXkodmFsKSkge1xuICAgICAgICB2YXIgbWFwcGVkID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgbWFwcGVkLnB1c2goZm4odmFsW2ldKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hcHBlZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmbih2YWwpO1xuICAgIH07XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgYXJyYXlUb09iamVjdCxcbiAgICAgIGFzc2lnbixcbiAgICAgIGNvbWJpbmUsXG4gICAgICBjb21wYWN0LFxuICAgICAgZGVjb2RlLFxuICAgICAgZW5jb2RlLFxuICAgICAgaXNCdWZmZXIsXG4gICAgICBpc1JlZ0V4cCxcbiAgICAgIG1heWJlTWFwLFxuICAgICAgbWVyZ2VcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3FzL2xpYi9zdHJpbmdpZnkuanNcbnZhciByZXF1aXJlX3N0cmluZ2lmeSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9xcy9saWIvc3RyaW5naWZ5LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZ2V0U2lkZUNoYW5uZWwgPSByZXF1aXJlX3NpZGVfY2hhbm5lbCgpO1xuICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHMyKCk7XG4gICAgdmFyIGZvcm1hdHMgPSByZXF1aXJlX2Zvcm1hdHMoKTtcbiAgICB2YXIgaGFzID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbiAgICB2YXIgYXJyYXlQcmVmaXhHZW5lcmF0b3JzID0ge1xuICAgICAgYnJhY2tldHM6IGZ1bmN0aW9uIGJyYWNrZXRzKHByZWZpeCkge1xuICAgICAgICByZXR1cm4gcHJlZml4ICsgXCJbXVwiO1xuICAgICAgfSxcbiAgICAgIGNvbW1hOiBcImNvbW1hXCIsXG4gICAgICBpbmRpY2VzOiBmdW5jdGlvbiBpbmRpY2VzKHByZWZpeCwga2V5KSB7XG4gICAgICAgIHJldHVybiBwcmVmaXggKyBcIltcIiArIGtleSArIFwiXVwiO1xuICAgICAgfSxcbiAgICAgIHJlcGVhdDogZnVuY3Rpb24gcmVwZWF0KHByZWZpeCkge1xuICAgICAgICByZXR1cm4gcHJlZml4O1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuICAgIHZhciBwdXNoID0gQXJyYXkucHJvdG90eXBlLnB1c2g7XG4gICAgdmFyIHB1c2hUb0FycmF5ID0gZnVuY3Rpb24oYXJyLCB2YWx1ZU9yQXJyYXkpIHtcbiAgICAgIHB1c2guYXBwbHkoYXJyLCBpc0FycmF5KHZhbHVlT3JBcnJheSkgPyB2YWx1ZU9yQXJyYXkgOiBbdmFsdWVPckFycmF5XSk7XG4gICAgfTtcbiAgICB2YXIgdG9JU08gPSBEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZztcbiAgICB2YXIgZGVmYXVsdEZvcm1hdCA9IGZvcm1hdHNbXCJkZWZhdWx0XCJdO1xuICAgIHZhciBkZWZhdWx0cyA9IHtcbiAgICAgIGFkZFF1ZXJ5UHJlZml4OiBmYWxzZSxcbiAgICAgIGFsbG93RG90czogZmFsc2UsXG4gICAgICBhbGxvd0VtcHR5QXJyYXlzOiBmYWxzZSxcbiAgICAgIGFycmF5Rm9ybWF0OiBcImluZGljZXNcIixcbiAgICAgIGNoYXJzZXQ6IFwidXRmLThcIixcbiAgICAgIGNoYXJzZXRTZW50aW5lbDogZmFsc2UsXG4gICAgICBjb21tYVJvdW5kVHJpcDogZmFsc2UsXG4gICAgICBkZWxpbWl0ZXI6IFwiJlwiLFxuICAgICAgZW5jb2RlOiB0cnVlLFxuICAgICAgZW5jb2RlRG90SW5LZXlzOiBmYWxzZSxcbiAgICAgIGVuY29kZXI6IHV0aWxzLmVuY29kZSxcbiAgICAgIGVuY29kZVZhbHVlc09ubHk6IGZhbHNlLFxuICAgICAgZmlsdGVyOiB2b2lkIDAsXG4gICAgICBmb3JtYXQ6IGRlZmF1bHRGb3JtYXQsXG4gICAgICBmb3JtYXR0ZXI6IGZvcm1hdHMuZm9ybWF0dGVyc1tkZWZhdWx0Rm9ybWF0XSxcbiAgICAgIC8vIGRlcHJlY2F0ZWRcbiAgICAgIGluZGljZXM6IGZhbHNlLFxuICAgICAgc2VyaWFsaXplRGF0ZTogZnVuY3Rpb24gc2VyaWFsaXplRGF0ZShkYXRlKSB7XG4gICAgICAgIHJldHVybiB0b0lTTy5jYWxsKGRhdGUpO1xuICAgICAgfSxcbiAgICAgIHNraXBOdWxsczogZmFsc2UsXG4gICAgICBzdHJpY3ROdWxsSGFuZGxpbmc6IGZhbHNlXG4gICAgfTtcbiAgICB2YXIgaXNOb25OdWxsaXNoUHJpbWl0aXZlID0gZnVuY3Rpb24gaXNOb25OdWxsaXNoUHJpbWl0aXZlMih2KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIHYgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHYgPT09IFwiYm9vbGVhblwiIHx8IHR5cGVvZiB2ID09PSBcInN5bWJvbFwiIHx8IHR5cGVvZiB2ID09PSBcImJpZ2ludFwiO1xuICAgIH07XG4gICAgdmFyIHNlbnRpbmVsID0ge307XG4gICAgdmFyIHN0cmluZ2lmeSA9IGZ1bmN0aW9uIHN0cmluZ2lmeTIob2JqZWN0LCBwcmVmaXgsIGdlbmVyYXRlQXJyYXlQcmVmaXgsIGNvbW1hUm91bmRUcmlwLCBhbGxvd0VtcHR5QXJyYXlzLCBzdHJpY3ROdWxsSGFuZGxpbmcsIHNraXBOdWxscywgZW5jb2RlRG90SW5LZXlzLCBlbmNvZGVyLCBmaWx0ZXIsIHNvcnQsIGFsbG93RG90cywgc2VyaWFsaXplRGF0ZSwgZm9ybWF0LCBmb3JtYXR0ZXIsIGVuY29kZVZhbHVlc09ubHksIGNoYXJzZXQsIHNpZGVDaGFubmVsKSB7XG4gICAgICB2YXIgb2JqID0gb2JqZWN0O1xuICAgICAgdmFyIHRtcFNjID0gc2lkZUNoYW5uZWw7XG4gICAgICB2YXIgc3RlcCA9IDA7XG4gICAgICB2YXIgZmluZEZsYWcgPSBmYWxzZTtcbiAgICAgIHdoaWxlICgodG1wU2MgPSB0bXBTYy5nZXQoc2VudGluZWwpKSAhPT0gdm9pZCAwICYmICFmaW5kRmxhZykge1xuICAgICAgICB2YXIgcG9zID0gdG1wU2MuZ2V0KG9iamVjdCk7XG4gICAgICAgIHN0ZXAgKz0gMTtcbiAgICAgICAgaWYgKHR5cGVvZiBwb3MgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpZiAocG9zID09PSBzdGVwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkN5Y2xpYyBvYmplY3QgdmFsdWVcIik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbmRGbGFnID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0bXBTYy5nZXQoc2VudGluZWwpID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgc3RlcCA9IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgZmlsdGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgb2JqID0gZmlsdGVyKHByZWZpeCwgb2JqKTtcbiAgICAgIH0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICBvYmogPSBzZXJpYWxpemVEYXRlKG9iaik7XG4gICAgICB9IGVsc2UgaWYgKGdlbmVyYXRlQXJyYXlQcmVmaXggPT09IFwiY29tbWFcIiAmJiBpc0FycmF5KG9iaikpIHtcbiAgICAgICAgb2JqID0gdXRpbHMubWF5YmVNYXAob2JqLCBmdW5jdGlvbih2YWx1ZTIpIHtcbiAgICAgICAgICBpZiAodmFsdWUyIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZURhdGUodmFsdWUyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHZhbHVlMjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAob2JqID09PSBudWxsKSB7XG4gICAgICAgIGlmIChzdHJpY3ROdWxsSGFuZGxpbmcpIHtcbiAgICAgICAgICByZXR1cm4gZW5jb2RlciAmJiAhZW5jb2RlVmFsdWVzT25seSA/IGVuY29kZXIocHJlZml4LCBkZWZhdWx0cy5lbmNvZGVyLCBjaGFyc2V0LCBcImtleVwiLCBmb3JtYXQpIDogcHJlZml4O1xuICAgICAgICB9XG4gICAgICAgIG9iaiA9IFwiXCI7XG4gICAgICB9XG4gICAgICBpZiAoaXNOb25OdWxsaXNoUHJpbWl0aXZlKG9iaikgfHwgdXRpbHMuaXNCdWZmZXIob2JqKSkge1xuICAgICAgICBpZiAoZW5jb2Rlcikge1xuICAgICAgICAgIHZhciBrZXlWYWx1ZSA9IGVuY29kZVZhbHVlc09ubHkgPyBwcmVmaXggOiBlbmNvZGVyKHByZWZpeCwgZGVmYXVsdHMuZW5jb2RlciwgY2hhcnNldCwgXCJrZXlcIiwgZm9ybWF0KTtcbiAgICAgICAgICByZXR1cm4gW2Zvcm1hdHRlcihrZXlWYWx1ZSkgKyBcIj1cIiArIGZvcm1hdHRlcihlbmNvZGVyKG9iaiwgZGVmYXVsdHMuZW5jb2RlciwgY2hhcnNldCwgXCJ2YWx1ZVwiLCBmb3JtYXQpKV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtmb3JtYXR0ZXIocHJlZml4KSArIFwiPVwiICsgZm9ybWF0dGVyKFN0cmluZyhvYmopKV07XG4gICAgICB9XG4gICAgICB2YXIgdmFsdWVzID0gW107XG4gICAgICBpZiAodHlwZW9mIG9iaiA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgfVxuICAgICAgdmFyIG9iaktleXM7XG4gICAgICBpZiAoZ2VuZXJhdGVBcnJheVByZWZpeCA9PT0gXCJjb21tYVwiICYmIGlzQXJyYXkob2JqKSkge1xuICAgICAgICBpZiAoZW5jb2RlVmFsdWVzT25seSAmJiBlbmNvZGVyKSB7XG4gICAgICAgICAgb2JqID0gdXRpbHMubWF5YmVNYXAob2JqLCBlbmNvZGVyKTtcbiAgICAgICAgfVxuICAgICAgICBvYmpLZXlzID0gW3sgdmFsdWU6IG9iai5sZW5ndGggPiAwID8gb2JqLmpvaW4oXCIsXCIpIHx8IG51bGwgOiB2b2lkIDAgfV07XG4gICAgICB9IGVsc2UgaWYgKGlzQXJyYXkoZmlsdGVyKSkge1xuICAgICAgICBvYmpLZXlzID0gZmlsdGVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgICAgICBvYmpLZXlzID0gc29ydCA/IGtleXMuc29ydChzb3J0KSA6IGtleXM7XG4gICAgICB9XG4gICAgICB2YXIgZW5jb2RlZFByZWZpeCA9IGVuY29kZURvdEluS2V5cyA/IFN0cmluZyhwcmVmaXgpLnJlcGxhY2UoL1xcLi9nLCBcIiUyRVwiKSA6IFN0cmluZyhwcmVmaXgpO1xuICAgICAgdmFyIGFkanVzdGVkUHJlZml4ID0gY29tbWFSb3VuZFRyaXAgJiYgaXNBcnJheShvYmopICYmIG9iai5sZW5ndGggPT09IDEgPyBlbmNvZGVkUHJlZml4ICsgXCJbXVwiIDogZW5jb2RlZFByZWZpeDtcbiAgICAgIGlmIChhbGxvd0VtcHR5QXJyYXlzICYmIGlzQXJyYXkob2JqKSAmJiBvYmoubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBhZGp1c3RlZFByZWZpeCArIFwiW11cIjtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgb2JqS2V5cy5sZW5ndGg7ICsraikge1xuICAgICAgICB2YXIga2V5ID0gb2JqS2V5c1tqXTtcbiAgICAgICAgdmFyIHZhbHVlID0gdHlwZW9mIGtleSA9PT0gXCJvYmplY3RcIiAmJiBrZXkgJiYgdHlwZW9mIGtleS52YWx1ZSAhPT0gXCJ1bmRlZmluZWRcIiA/IGtleS52YWx1ZSA6IG9ialtrZXldO1xuICAgICAgICBpZiAoc2tpcE51bGxzICYmIHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGVuY29kZWRLZXkgPSBhbGxvd0RvdHMgJiYgZW5jb2RlRG90SW5LZXlzID8gU3RyaW5nKGtleSkucmVwbGFjZSgvXFwuL2csIFwiJTJFXCIpIDogU3RyaW5nKGtleSk7XG4gICAgICAgIHZhciBrZXlQcmVmaXggPSBpc0FycmF5KG9iaikgPyB0eXBlb2YgZ2VuZXJhdGVBcnJheVByZWZpeCA9PT0gXCJmdW5jdGlvblwiID8gZ2VuZXJhdGVBcnJheVByZWZpeChhZGp1c3RlZFByZWZpeCwgZW5jb2RlZEtleSkgOiBhZGp1c3RlZFByZWZpeCA6IGFkanVzdGVkUHJlZml4ICsgKGFsbG93RG90cyA/IFwiLlwiICsgZW5jb2RlZEtleSA6IFwiW1wiICsgZW5jb2RlZEtleSArIFwiXVwiKTtcbiAgICAgICAgc2lkZUNoYW5uZWwuc2V0KG9iamVjdCwgc3RlcCk7XG4gICAgICAgIHZhciB2YWx1ZVNpZGVDaGFubmVsID0gZ2V0U2lkZUNoYW5uZWwoKTtcbiAgICAgICAgdmFsdWVTaWRlQ2hhbm5lbC5zZXQoc2VudGluZWwsIHNpZGVDaGFubmVsKTtcbiAgICAgICAgcHVzaFRvQXJyYXkodmFsdWVzLCBzdHJpbmdpZnkyKFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGtleVByZWZpeCxcbiAgICAgICAgICBnZW5lcmF0ZUFycmF5UHJlZml4LFxuICAgICAgICAgIGNvbW1hUm91bmRUcmlwLFxuICAgICAgICAgIGFsbG93RW1wdHlBcnJheXMsXG4gICAgICAgICAgc3RyaWN0TnVsbEhhbmRsaW5nLFxuICAgICAgICAgIHNraXBOdWxscyxcbiAgICAgICAgICBlbmNvZGVEb3RJbktleXMsXG4gICAgICAgICAgZ2VuZXJhdGVBcnJheVByZWZpeCA9PT0gXCJjb21tYVwiICYmIGVuY29kZVZhbHVlc09ubHkgJiYgaXNBcnJheShvYmopID8gbnVsbCA6IGVuY29kZXIsXG4gICAgICAgICAgZmlsdGVyLFxuICAgICAgICAgIHNvcnQsXG4gICAgICAgICAgYWxsb3dEb3RzLFxuICAgICAgICAgIHNlcmlhbGl6ZURhdGUsXG4gICAgICAgICAgZm9ybWF0LFxuICAgICAgICAgIGZvcm1hdHRlcixcbiAgICAgICAgICBlbmNvZGVWYWx1ZXNPbmx5LFxuICAgICAgICAgIGNoYXJzZXQsXG4gICAgICAgICAgdmFsdWVTaWRlQ2hhbm5lbFxuICAgICAgICApKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfTtcbiAgICB2YXIgbm9ybWFsaXplU3RyaW5naWZ5T3B0aW9ucyA9IGZ1bmN0aW9uIG5vcm1hbGl6ZVN0cmluZ2lmeU9wdGlvbnMyKG9wdHMpIHtcbiAgICAgIGlmICghb3B0cykge1xuICAgICAgICByZXR1cm4gZGVmYXVsdHM7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG9wdHMuYWxsb3dFbXB0eUFycmF5cyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2Ygb3B0cy5hbGxvd0VtcHR5QXJyYXlzICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYGFsbG93RW1wdHlBcnJheXNgIG9wdGlvbiBjYW4gb25seSBiZSBgdHJ1ZWAgb3IgYGZhbHNlYCwgd2hlbiBwcm92aWRlZFwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygb3B0cy5lbmNvZGVEb3RJbktleXMgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIG9wdHMuZW5jb2RlRG90SW5LZXlzICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYGVuY29kZURvdEluS2V5c2Agb3B0aW9uIGNhbiBvbmx5IGJlIGB0cnVlYCBvciBgZmFsc2VgLCB3aGVuIHByb3ZpZGVkXCIpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdHMuZW5jb2RlciAhPT0gbnVsbCAmJiB0eXBlb2Ygb3B0cy5lbmNvZGVyICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBvcHRzLmVuY29kZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRW5jb2RlciBoYXMgdG8gYmUgYSBmdW5jdGlvbi5cIik7XG4gICAgICB9XG4gICAgICB2YXIgY2hhcnNldCA9IG9wdHMuY2hhcnNldCB8fCBkZWZhdWx0cy5jaGFyc2V0O1xuICAgICAgaWYgKHR5cGVvZiBvcHRzLmNoYXJzZXQgIT09IFwidW5kZWZpbmVkXCIgJiYgb3B0cy5jaGFyc2V0ICE9PSBcInV0Zi04XCIgJiYgb3B0cy5jaGFyc2V0ICE9PSBcImlzby04ODU5LTFcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiVGhlIGNoYXJzZXQgb3B0aW9uIG11c3QgYmUgZWl0aGVyIHV0Zi04LCBpc28tODg1OS0xLCBvciB1bmRlZmluZWRcIik7XG4gICAgICB9XG4gICAgICB2YXIgZm9ybWF0ID0gZm9ybWF0c1tcImRlZmF1bHRcIl07XG4gICAgICBpZiAodHlwZW9mIG9wdHMuZm9ybWF0ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGlmICghaGFzLmNhbGwoZm9ybWF0cy5mb3JtYXR0ZXJzLCBvcHRzLmZvcm1hdCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiVW5rbm93biBmb3JtYXQgb3B0aW9uIHByb3ZpZGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBmb3JtYXQgPSBvcHRzLmZvcm1hdDtcbiAgICAgIH1cbiAgICAgIHZhciBmb3JtYXR0ZXIgPSBmb3JtYXRzLmZvcm1hdHRlcnNbZm9ybWF0XTtcbiAgICAgIHZhciBmaWx0ZXIgPSBkZWZhdWx0cy5maWx0ZXI7XG4gICAgICBpZiAodHlwZW9mIG9wdHMuZmlsdGVyID09PSBcImZ1bmN0aW9uXCIgfHwgaXNBcnJheShvcHRzLmZpbHRlcikpIHtcbiAgICAgICAgZmlsdGVyID0gb3B0cy5maWx0ZXI7XG4gICAgICB9XG4gICAgICB2YXIgYXJyYXlGb3JtYXQ7XG4gICAgICBpZiAob3B0cy5hcnJheUZvcm1hdCBpbiBhcnJheVByZWZpeEdlbmVyYXRvcnMpIHtcbiAgICAgICAgYXJyYXlGb3JtYXQgPSBvcHRzLmFycmF5Rm9ybWF0O1xuICAgICAgfSBlbHNlIGlmIChcImluZGljZXNcIiBpbiBvcHRzKSB7XG4gICAgICAgIGFycmF5Rm9ybWF0ID0gb3B0cy5pbmRpY2VzID8gXCJpbmRpY2VzXCIgOiBcInJlcGVhdFwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXJyYXlGb3JtYXQgPSBkZWZhdWx0cy5hcnJheUZvcm1hdDtcbiAgICAgIH1cbiAgICAgIGlmIChcImNvbW1hUm91bmRUcmlwXCIgaW4gb3B0cyAmJiB0eXBlb2Ygb3B0cy5jb21tYVJvdW5kVHJpcCAhPT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImBjb21tYVJvdW5kVHJpcGAgbXVzdCBiZSBhIGJvb2xlYW4sIG9yIGFic2VudFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBhbGxvd0RvdHMgPSB0eXBlb2Ygb3B0cy5hbGxvd0RvdHMgPT09IFwidW5kZWZpbmVkXCIgPyBvcHRzLmVuY29kZURvdEluS2V5cyA9PT0gdHJ1ZSA/IHRydWUgOiBkZWZhdWx0cy5hbGxvd0RvdHMgOiAhIW9wdHMuYWxsb3dEb3RzO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWRkUXVlcnlQcmVmaXg6IHR5cGVvZiBvcHRzLmFkZFF1ZXJ5UHJlZml4ID09PSBcImJvb2xlYW5cIiA/IG9wdHMuYWRkUXVlcnlQcmVmaXggOiBkZWZhdWx0cy5hZGRRdWVyeVByZWZpeCxcbiAgICAgICAgYWxsb3dEb3RzLFxuICAgICAgICBhbGxvd0VtcHR5QXJyYXlzOiB0eXBlb2Ygb3B0cy5hbGxvd0VtcHR5QXJyYXlzID09PSBcImJvb2xlYW5cIiA/ICEhb3B0cy5hbGxvd0VtcHR5QXJyYXlzIDogZGVmYXVsdHMuYWxsb3dFbXB0eUFycmF5cyxcbiAgICAgICAgYXJyYXlGb3JtYXQsXG4gICAgICAgIGNoYXJzZXQsXG4gICAgICAgIGNoYXJzZXRTZW50aW5lbDogdHlwZW9mIG9wdHMuY2hhcnNldFNlbnRpbmVsID09PSBcImJvb2xlYW5cIiA/IG9wdHMuY2hhcnNldFNlbnRpbmVsIDogZGVmYXVsdHMuY2hhcnNldFNlbnRpbmVsLFxuICAgICAgICBjb21tYVJvdW5kVHJpcDogISFvcHRzLmNvbW1hUm91bmRUcmlwLFxuICAgICAgICBkZWxpbWl0ZXI6IHR5cGVvZiBvcHRzLmRlbGltaXRlciA9PT0gXCJ1bmRlZmluZWRcIiA/IGRlZmF1bHRzLmRlbGltaXRlciA6IG9wdHMuZGVsaW1pdGVyLFxuICAgICAgICBlbmNvZGU6IHR5cGVvZiBvcHRzLmVuY29kZSA9PT0gXCJib29sZWFuXCIgPyBvcHRzLmVuY29kZSA6IGRlZmF1bHRzLmVuY29kZSxcbiAgICAgICAgZW5jb2RlRG90SW5LZXlzOiB0eXBlb2Ygb3B0cy5lbmNvZGVEb3RJbktleXMgPT09IFwiYm9vbGVhblwiID8gb3B0cy5lbmNvZGVEb3RJbktleXMgOiBkZWZhdWx0cy5lbmNvZGVEb3RJbktleXMsXG4gICAgICAgIGVuY29kZXI6IHR5cGVvZiBvcHRzLmVuY29kZXIgPT09IFwiZnVuY3Rpb25cIiA/IG9wdHMuZW5jb2RlciA6IGRlZmF1bHRzLmVuY29kZXIsXG4gICAgICAgIGVuY29kZVZhbHVlc09ubHk6IHR5cGVvZiBvcHRzLmVuY29kZVZhbHVlc09ubHkgPT09IFwiYm9vbGVhblwiID8gb3B0cy5lbmNvZGVWYWx1ZXNPbmx5IDogZGVmYXVsdHMuZW5jb2RlVmFsdWVzT25seSxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgICBmb3JtYXQsXG4gICAgICAgIGZvcm1hdHRlcixcbiAgICAgICAgc2VyaWFsaXplRGF0ZTogdHlwZW9mIG9wdHMuc2VyaWFsaXplRGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gb3B0cy5zZXJpYWxpemVEYXRlIDogZGVmYXVsdHMuc2VyaWFsaXplRGF0ZSxcbiAgICAgICAgc2tpcE51bGxzOiB0eXBlb2Ygb3B0cy5za2lwTnVsbHMgPT09IFwiYm9vbGVhblwiID8gb3B0cy5za2lwTnVsbHMgOiBkZWZhdWx0cy5za2lwTnVsbHMsXG4gICAgICAgIHNvcnQ6IHR5cGVvZiBvcHRzLnNvcnQgPT09IFwiZnVuY3Rpb25cIiA/IG9wdHMuc29ydCA6IG51bGwsXG4gICAgICAgIHN0cmljdE51bGxIYW5kbGluZzogdHlwZW9mIG9wdHMuc3RyaWN0TnVsbEhhbmRsaW5nID09PSBcImJvb2xlYW5cIiA/IG9wdHMuc3RyaWN0TnVsbEhhbmRsaW5nIDogZGVmYXVsdHMuc3RyaWN0TnVsbEhhbmRsaW5nXG4gICAgICB9O1xuICAgIH07XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24ob2JqZWN0LCBvcHRzKSB7XG4gICAgICB2YXIgb2JqID0gb2JqZWN0O1xuICAgICAgdmFyIG9wdGlvbnMgPSBub3JtYWxpemVTdHJpbmdpZnlPcHRpb25zKG9wdHMpO1xuICAgICAgdmFyIG9iaktleXM7XG4gICAgICB2YXIgZmlsdGVyO1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmZpbHRlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGZpbHRlciA9IG9wdGlvbnMuZmlsdGVyO1xuICAgICAgICBvYmogPSBmaWx0ZXIoXCJcIiwgb2JqKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNBcnJheShvcHRpb25zLmZpbHRlcikpIHtcbiAgICAgICAgZmlsdGVyID0gb3B0aW9ucy5maWx0ZXI7XG4gICAgICAgIG9iaktleXMgPSBmaWx0ZXI7XG4gICAgICB9XG4gICAgICB2YXIga2V5cyA9IFtdO1xuICAgICAgaWYgKHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgfHwgb2JqID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgICAgdmFyIGdlbmVyYXRlQXJyYXlQcmVmaXggPSBhcnJheVByZWZpeEdlbmVyYXRvcnNbb3B0aW9ucy5hcnJheUZvcm1hdF07XG4gICAgICB2YXIgY29tbWFSb3VuZFRyaXAgPSBnZW5lcmF0ZUFycmF5UHJlZml4ID09PSBcImNvbW1hXCIgJiYgb3B0aW9ucy5jb21tYVJvdW5kVHJpcDtcbiAgICAgIGlmICghb2JqS2V5cykge1xuICAgICAgICBvYmpLZXlzID0gT2JqZWN0LmtleXMob2JqKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnNvcnQpIHtcbiAgICAgICAgb2JqS2V5cy5zb3J0KG9wdGlvbnMuc29ydCk7XG4gICAgICB9XG4gICAgICB2YXIgc2lkZUNoYW5uZWwgPSBnZXRTaWRlQ2hhbm5lbCgpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmpLZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHZhciBrZXkgPSBvYmpLZXlzW2ldO1xuICAgICAgICB2YXIgdmFsdWUgPSBvYmpba2V5XTtcbiAgICAgICAgaWYgKG9wdGlvbnMuc2tpcE51bGxzICYmIHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVzaFRvQXJyYXkoa2V5cywgc3RyaW5naWZ5KFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGtleSxcbiAgICAgICAgICBnZW5lcmF0ZUFycmF5UHJlZml4LFxuICAgICAgICAgIGNvbW1hUm91bmRUcmlwLFxuICAgICAgICAgIG9wdGlvbnMuYWxsb3dFbXB0eUFycmF5cyxcbiAgICAgICAgICBvcHRpb25zLnN0cmljdE51bGxIYW5kbGluZyxcbiAgICAgICAgICBvcHRpb25zLnNraXBOdWxscyxcbiAgICAgICAgICBvcHRpb25zLmVuY29kZURvdEluS2V5cyxcbiAgICAgICAgICBvcHRpb25zLmVuY29kZSA/IG9wdGlvbnMuZW5jb2RlciA6IG51bGwsXG4gICAgICAgICAgb3B0aW9ucy5maWx0ZXIsXG4gICAgICAgICAgb3B0aW9ucy5zb3J0LFxuICAgICAgICAgIG9wdGlvbnMuYWxsb3dEb3RzLFxuICAgICAgICAgIG9wdGlvbnMuc2VyaWFsaXplRGF0ZSxcbiAgICAgICAgICBvcHRpb25zLmZvcm1hdCxcbiAgICAgICAgICBvcHRpb25zLmZvcm1hdHRlcixcbiAgICAgICAgICBvcHRpb25zLmVuY29kZVZhbHVlc09ubHksXG4gICAgICAgICAgb3B0aW9ucy5jaGFyc2V0LFxuICAgICAgICAgIHNpZGVDaGFubmVsXG4gICAgICAgICkpO1xuICAgICAgfVxuICAgICAgdmFyIGpvaW5lZCA9IGtleXMuam9pbihvcHRpb25zLmRlbGltaXRlcik7XG4gICAgICB2YXIgcHJlZml4ID0gb3B0aW9ucy5hZGRRdWVyeVByZWZpeCA9PT0gdHJ1ZSA/IFwiP1wiIDogXCJcIjtcbiAgICAgIGlmIChvcHRpb25zLmNoYXJzZXRTZW50aW5lbCkge1xuICAgICAgICBpZiAob3B0aW9ucy5jaGFyc2V0ID09PSBcImlzby04ODU5LTFcIikge1xuICAgICAgICAgIHByZWZpeCArPSBcInV0Zjg9JTI2JTIzMTAwMDMlM0ImXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJlZml4ICs9IFwidXRmOD0lRTIlOUMlOTMmXCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBqb2luZWQubGVuZ3RoID4gMCA/IHByZWZpeCArIGpvaW5lZCA6IFwiXCI7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9xcy9saWIvcGFyc2UuanNcbnZhciByZXF1aXJlX3BhcnNlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3FzL2xpYi9wYXJzZS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczIoKTtcbiAgICB2YXIgaGFzID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbiAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG4gICAgdmFyIGRlZmF1bHRzID0ge1xuICAgICAgYWxsb3dEb3RzOiBmYWxzZSxcbiAgICAgIGFsbG93RW1wdHlBcnJheXM6IGZhbHNlLFxuICAgICAgYWxsb3dQcm90b3R5cGVzOiBmYWxzZSxcbiAgICAgIGFsbG93U3BhcnNlOiBmYWxzZSxcbiAgICAgIGFycmF5TGltaXQ6IDIwLFxuICAgICAgY2hhcnNldDogXCJ1dGYtOFwiLFxuICAgICAgY2hhcnNldFNlbnRpbmVsOiBmYWxzZSxcbiAgICAgIGNvbW1hOiBmYWxzZSxcbiAgICAgIGRlY29kZURvdEluS2V5czogZmFsc2UsXG4gICAgICBkZWNvZGVyOiB1dGlscy5kZWNvZGUsXG4gICAgICBkZWxpbWl0ZXI6IFwiJlwiLFxuICAgICAgZGVwdGg6IDUsXG4gICAgICBkdXBsaWNhdGVzOiBcImNvbWJpbmVcIixcbiAgICAgIGlnbm9yZVF1ZXJ5UHJlZml4OiBmYWxzZSxcbiAgICAgIGludGVycHJldE51bWVyaWNFbnRpdGllczogZmFsc2UsXG4gICAgICBwYXJhbWV0ZXJMaW1pdDogMWUzLFxuICAgICAgcGFyc2VBcnJheXM6IHRydWUsXG4gICAgICBwbGFpbk9iamVjdHM6IGZhbHNlLFxuICAgICAgc3RyaWN0RGVwdGg6IGZhbHNlLFxuICAgICAgc3RyaWN0TnVsbEhhbmRsaW5nOiBmYWxzZSxcbiAgICAgIHRocm93T25MaW1pdEV4Y2VlZGVkOiBmYWxzZVxuICAgIH07XG4gICAgdmFyIGludGVycHJldE51bWVyaWNFbnRpdGllcyA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8mIyhcXGQrKTsvZywgZnVuY3Rpb24oJDAsIG51bWJlclN0cikge1xuICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChudW1iZXJTdHIsIDEwKSk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIHZhciBwYXJzZUFycmF5VmFsdWUgPSBmdW5jdGlvbih2YWwsIG9wdGlvbnMsIGN1cnJlbnRBcnJheUxlbmd0aCkge1xuICAgICAgaWYgKHZhbCAmJiB0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiICYmIG9wdGlvbnMuY29tbWEgJiYgdmFsLmluZGV4T2YoXCIsXCIpID4gLTEpIHtcbiAgICAgICAgcmV0dXJuIHZhbC5zcGxpdChcIixcIik7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy50aHJvd09uTGltaXRFeGNlZWRlZCAmJiBjdXJyZW50QXJyYXlMZW5ndGggPj0gb3B0aW9ucy5hcnJheUxpbWl0KSB7XG4gICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiQXJyYXkgbGltaXQgZXhjZWVkZWQuIE9ubHkgXCIgKyBvcHRpb25zLmFycmF5TGltaXQgKyBcIiBlbGVtZW50XCIgKyAob3B0aW9ucy5hcnJheUxpbWl0ID09PSAxID8gXCJcIiA6IFwic1wiKSArIFwiIGFsbG93ZWQgaW4gYW4gYXJyYXkuXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbDtcbiAgICB9O1xuICAgIHZhciBpc29TZW50aW5lbCA9IFwidXRmOD0lMjYlMjMxMDAwMyUzQlwiO1xuICAgIHZhciBjaGFyc2V0U2VudGluZWwgPSBcInV0Zjg9JUUyJTlDJTkzXCI7XG4gICAgdmFyIHBhcnNlVmFsdWVzID0gZnVuY3Rpb24gcGFyc2VRdWVyeVN0cmluZ1ZhbHVlcyhzdHIsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBvYmogPSB7IF9fcHJvdG9fXzogbnVsbCB9O1xuICAgICAgdmFyIGNsZWFuU3RyID0gb3B0aW9ucy5pZ25vcmVRdWVyeVByZWZpeCA/IHN0ci5yZXBsYWNlKC9eXFw/LywgXCJcIikgOiBzdHI7XG4gICAgICBjbGVhblN0ciA9IGNsZWFuU3RyLnJlcGxhY2UoLyU1Qi9naSwgXCJbXCIpLnJlcGxhY2UoLyU1RC9naSwgXCJdXCIpO1xuICAgICAgdmFyIGxpbWl0ID0gb3B0aW9ucy5wYXJhbWV0ZXJMaW1pdCA9PT0gSW5maW5pdHkgPyB2b2lkIDAgOiBvcHRpb25zLnBhcmFtZXRlckxpbWl0O1xuICAgICAgdmFyIHBhcnRzID0gY2xlYW5TdHIuc3BsaXQoXG4gICAgICAgIG9wdGlvbnMuZGVsaW1pdGVyLFxuICAgICAgICBvcHRpb25zLnRocm93T25MaW1pdEV4Y2VlZGVkID8gbGltaXQgKyAxIDogbGltaXRcbiAgICAgICk7XG4gICAgICBpZiAob3B0aW9ucy50aHJvd09uTGltaXRFeGNlZWRlZCAmJiBwYXJ0cy5sZW5ndGggPiBsaW1pdCkge1xuICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIlBhcmFtZXRlciBsaW1pdCBleGNlZWRlZC4gT25seSBcIiArIGxpbWl0ICsgXCIgcGFyYW1ldGVyXCIgKyAobGltaXQgPT09IDEgPyBcIlwiIDogXCJzXCIpICsgXCIgYWxsb3dlZC5cIik7XG4gICAgICB9XG4gICAgICB2YXIgc2tpcEluZGV4ID0gLTE7XG4gICAgICB2YXIgaTtcbiAgICAgIHZhciBjaGFyc2V0ID0gb3B0aW9ucy5jaGFyc2V0O1xuICAgICAgaWYgKG9wdGlvbnMuY2hhcnNldFNlbnRpbmVsKSB7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgIGlmIChwYXJ0c1tpXS5pbmRleE9mKFwidXRmOD1cIikgPT09IDApIHtcbiAgICAgICAgICAgIGlmIChwYXJ0c1tpXSA9PT0gY2hhcnNldFNlbnRpbmVsKSB7XG4gICAgICAgICAgICAgIGNoYXJzZXQgPSBcInV0Zi04XCI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhcnRzW2ldID09PSBpc29TZW50aW5lbCkge1xuICAgICAgICAgICAgICBjaGFyc2V0ID0gXCJpc28tODg1OS0xXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBza2lwSW5kZXggPSBpO1xuICAgICAgICAgICAgaSA9IHBhcnRzLmxlbmd0aDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAoaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAoaSA9PT0gc2tpcEluZGV4KSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTtcbiAgICAgICAgdmFyIGJyYWNrZXRFcXVhbHNQb3MgPSBwYXJ0LmluZGV4T2YoXCJdPVwiKTtcbiAgICAgICAgdmFyIHBvcyA9IGJyYWNrZXRFcXVhbHNQb3MgPT09IC0xID8gcGFydC5pbmRleE9mKFwiPVwiKSA6IGJyYWNrZXRFcXVhbHNQb3MgKyAxO1xuICAgICAgICB2YXIga2V5O1xuICAgICAgICB2YXIgdmFsO1xuICAgICAgICBpZiAocG9zID09PSAtMSkge1xuICAgICAgICAgIGtleSA9IG9wdGlvbnMuZGVjb2RlcihwYXJ0LCBkZWZhdWx0cy5kZWNvZGVyLCBjaGFyc2V0LCBcImtleVwiKTtcbiAgICAgICAgICB2YWwgPSBvcHRpb25zLnN0cmljdE51bGxIYW5kbGluZyA/IG51bGwgOiBcIlwiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGtleSA9IG9wdGlvbnMuZGVjb2RlcihwYXJ0LnNsaWNlKDAsIHBvcyksIGRlZmF1bHRzLmRlY29kZXIsIGNoYXJzZXQsIFwia2V5XCIpO1xuICAgICAgICAgIHZhbCA9IHV0aWxzLm1heWJlTWFwKFxuICAgICAgICAgICAgcGFyc2VBcnJheVZhbHVlKFxuICAgICAgICAgICAgICBwYXJ0LnNsaWNlKHBvcyArIDEpLFxuICAgICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgICBpc0FycmF5KG9ialtrZXldKSA/IG9ialtrZXldLmxlbmd0aCA6IDBcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmdW5jdGlvbihlbmNvZGVkVmFsKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmRlY29kZXIoZW5jb2RlZFZhbCwgZGVmYXVsdHMuZGVjb2RlciwgY2hhcnNldCwgXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWwgJiYgb3B0aW9ucy5pbnRlcnByZXROdW1lcmljRW50aXRpZXMgJiYgY2hhcnNldCA9PT0gXCJpc28tODg1OS0xXCIpIHtcbiAgICAgICAgICB2YWwgPSBpbnRlcnByZXROdW1lcmljRW50aXRpZXMoU3RyaW5nKHZhbCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJ0LmluZGV4T2YoXCJbXT1cIikgPiAtMSkge1xuICAgICAgICAgIHZhbCA9IGlzQXJyYXkodmFsKSA/IFt2YWxdIDogdmFsO1xuICAgICAgICB9XG4gICAgICAgIHZhciBleGlzdGluZyA9IGhhcy5jYWxsKG9iaiwga2V5KTtcbiAgICAgICAgaWYgKGV4aXN0aW5nICYmIG9wdGlvbnMuZHVwbGljYXRlcyA9PT0gXCJjb21iaW5lXCIpIHtcbiAgICAgICAgICBvYmpba2V5XSA9IHV0aWxzLmNvbWJpbmUob2JqW2tleV0sIHZhbCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWV4aXN0aW5nIHx8IG9wdGlvbnMuZHVwbGljYXRlcyA9PT0gXCJsYXN0XCIpIHtcbiAgICAgICAgICBvYmpba2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuICAgIHZhciBwYXJzZU9iamVjdCA9IGZ1bmN0aW9uKGNoYWluLCB2YWwsIG9wdGlvbnMsIHZhbHVlc1BhcnNlZCkge1xuICAgICAgdmFyIGN1cnJlbnRBcnJheUxlbmd0aCA9IDA7XG4gICAgICBpZiAoY2hhaW4ubGVuZ3RoID4gMCAmJiBjaGFpbltjaGFpbi5sZW5ndGggLSAxXSA9PT0gXCJbXVwiKSB7XG4gICAgICAgIHZhciBwYXJlbnRLZXkgPSBjaGFpbi5zbGljZSgwLCAtMSkuam9pbihcIlwiKTtcbiAgICAgICAgY3VycmVudEFycmF5TGVuZ3RoID0gQXJyYXkuaXNBcnJheSh2YWwpICYmIHZhbFtwYXJlbnRLZXldID8gdmFsW3BhcmVudEtleV0ubGVuZ3RoIDogMDtcbiAgICAgIH1cbiAgICAgIHZhciBsZWFmID0gdmFsdWVzUGFyc2VkID8gdmFsIDogcGFyc2VBcnJheVZhbHVlKHZhbCwgb3B0aW9ucywgY3VycmVudEFycmF5TGVuZ3RoKTtcbiAgICAgIGZvciAodmFyIGkgPSBjaGFpbi5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgb2JqO1xuICAgICAgICB2YXIgcm9vdCA9IGNoYWluW2ldO1xuICAgICAgICBpZiAocm9vdCA9PT0gXCJbXVwiICYmIG9wdGlvbnMucGFyc2VBcnJheXMpIHtcbiAgICAgICAgICBvYmogPSBvcHRpb25zLmFsbG93RW1wdHlBcnJheXMgJiYgKGxlYWYgPT09IFwiXCIgfHwgb3B0aW9ucy5zdHJpY3ROdWxsSGFuZGxpbmcgJiYgbGVhZiA9PT0gbnVsbCkgPyBbXSA6IHV0aWxzLmNvbWJpbmUoW10sIGxlYWYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9iaiA9IG9wdGlvbnMucGxhaW5PYmplY3RzID8geyBfX3Byb3RvX186IG51bGwgfSA6IHt9O1xuICAgICAgICAgIHZhciBjbGVhblJvb3QgPSByb290LmNoYXJBdCgwKSA9PT0gXCJbXCIgJiYgcm9vdC5jaGFyQXQocm9vdC5sZW5ndGggLSAxKSA9PT0gXCJdXCIgPyByb290LnNsaWNlKDEsIC0xKSA6IHJvb3Q7XG4gICAgICAgICAgdmFyIGRlY29kZWRSb290ID0gb3B0aW9ucy5kZWNvZGVEb3RJbktleXMgPyBjbGVhblJvb3QucmVwbGFjZSgvJTJFL2csIFwiLlwiKSA6IGNsZWFuUm9vdDtcbiAgICAgICAgICB2YXIgaW5kZXggPSBwYXJzZUludChkZWNvZGVkUm9vdCwgMTApO1xuICAgICAgICAgIGlmICghb3B0aW9ucy5wYXJzZUFycmF5cyAmJiBkZWNvZGVkUm9vdCA9PT0gXCJcIikge1xuICAgICAgICAgICAgb2JqID0geyAwOiBsZWFmIH07XG4gICAgICAgICAgfSBlbHNlIGlmICghaXNOYU4oaW5kZXgpICYmIHJvb3QgIT09IGRlY29kZWRSb290ICYmIFN0cmluZyhpbmRleCkgPT09IGRlY29kZWRSb290ICYmIGluZGV4ID49IDAgJiYgKG9wdGlvbnMucGFyc2VBcnJheXMgJiYgaW5kZXggPD0gb3B0aW9ucy5hcnJheUxpbWl0KSkge1xuICAgICAgICAgICAgb2JqID0gW107XG4gICAgICAgICAgICBvYmpbaW5kZXhdID0gbGVhZjtcbiAgICAgICAgICB9IGVsc2UgaWYgKGRlY29kZWRSb290ICE9PSBcIl9fcHJvdG9fX1wiKSB7XG4gICAgICAgICAgICBvYmpbZGVjb2RlZFJvb3RdID0gbGVhZjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGVhZiA9IG9iajtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsZWFmO1xuICAgIH07XG4gICAgdmFyIHBhcnNlS2V5cyA9IGZ1bmN0aW9uIHBhcnNlUXVlcnlTdHJpbmdLZXlzKGdpdmVuS2V5LCB2YWwsIG9wdGlvbnMsIHZhbHVlc1BhcnNlZCkge1xuICAgICAgaWYgKCFnaXZlbktleSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIga2V5ID0gb3B0aW9ucy5hbGxvd0RvdHMgPyBnaXZlbktleS5yZXBsYWNlKC9cXC4oW14uW10rKS9nLCBcIlskMV1cIikgOiBnaXZlbktleTtcbiAgICAgIHZhciBicmFja2V0cyA9IC8oXFxbW15bXFxdXSpdKS87XG4gICAgICB2YXIgY2hpbGQgPSAvKFxcW1teW1xcXV0qXSkvZztcbiAgICAgIHZhciBzZWdtZW50ID0gb3B0aW9ucy5kZXB0aCA+IDAgJiYgYnJhY2tldHMuZXhlYyhrZXkpO1xuICAgICAgdmFyIHBhcmVudCA9IHNlZ21lbnQgPyBrZXkuc2xpY2UoMCwgc2VnbWVudC5pbmRleCkgOiBrZXk7XG4gICAgICB2YXIga2V5cyA9IFtdO1xuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICBpZiAoIW9wdGlvbnMucGxhaW5PYmplY3RzICYmIGhhcy5jYWxsKE9iamVjdC5wcm90b3R5cGUsIHBhcmVudCkpIHtcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuYWxsb3dQcm90b3R5cGVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGtleXMucHVzaChwYXJlbnQpO1xuICAgICAgfVxuICAgICAgdmFyIGkgPSAwO1xuICAgICAgd2hpbGUgKG9wdGlvbnMuZGVwdGggPiAwICYmIChzZWdtZW50ID0gY2hpbGQuZXhlYyhrZXkpKSAhPT0gbnVsbCAmJiBpIDwgb3B0aW9ucy5kZXB0aCkge1xuICAgICAgICBpICs9IDE7XG4gICAgICAgIGlmICghb3B0aW9ucy5wbGFpbk9iamVjdHMgJiYgaGFzLmNhbGwoT2JqZWN0LnByb3RvdHlwZSwgc2VnbWVudFsxXS5zbGljZSgxLCAtMSkpKSB7XG4gICAgICAgICAgaWYgKCFvcHRpb25zLmFsbG93UHJvdG90eXBlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBrZXlzLnB1c2goc2VnbWVudFsxXSk7XG4gICAgICB9XG4gICAgICBpZiAoc2VnbWVudCkge1xuICAgICAgICBpZiAob3B0aW9ucy5zdHJpY3REZXB0aCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiSW5wdXQgZGVwdGggZXhjZWVkZWQgZGVwdGggb3B0aW9uIG9mIFwiICsgb3B0aW9ucy5kZXB0aCArIFwiIGFuZCBzdHJpY3REZXB0aCBpcyB0cnVlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGtleXMucHVzaChcIltcIiArIGtleS5zbGljZShzZWdtZW50LmluZGV4KSArIFwiXVwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJzZU9iamVjdChrZXlzLCB2YWwsIG9wdGlvbnMsIHZhbHVlc1BhcnNlZCk7XG4gICAgfTtcbiAgICB2YXIgbm9ybWFsaXplUGFyc2VPcHRpb25zID0gZnVuY3Rpb24gbm9ybWFsaXplUGFyc2VPcHRpb25zMihvcHRzKSB7XG4gICAgICBpZiAoIW9wdHMpIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRzO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvcHRzLmFsbG93RW1wdHlBcnJheXMgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIG9wdHMuYWxsb3dFbXB0eUFycmF5cyAhPT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImBhbGxvd0VtcHR5QXJyYXlzYCBvcHRpb24gY2FuIG9ubHkgYmUgYHRydWVgIG9yIGBmYWxzZWAsIHdoZW4gcHJvdmlkZWRcIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG9wdHMuZGVjb2RlRG90SW5LZXlzICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBvcHRzLmRlY29kZURvdEluS2V5cyAhPT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImBkZWNvZGVEb3RJbktleXNgIG9wdGlvbiBjYW4gb25seSBiZSBgdHJ1ZWAgb3IgYGZhbHNlYCwgd2hlbiBwcm92aWRlZFwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRzLmRlY29kZXIgIT09IG51bGwgJiYgdHlwZW9mIG9wdHMuZGVjb2RlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2Ygb3B0cy5kZWNvZGVyICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlY29kZXIgaGFzIHRvIGJlIGEgZnVuY3Rpb24uXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvcHRzLmNoYXJzZXQgIT09IFwidW5kZWZpbmVkXCIgJiYgb3B0cy5jaGFyc2V0ICE9PSBcInV0Zi04XCIgJiYgb3B0cy5jaGFyc2V0ICE9PSBcImlzby04ODU5LTFcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiVGhlIGNoYXJzZXQgb3B0aW9uIG11c3QgYmUgZWl0aGVyIHV0Zi04LCBpc28tODg1OS0xLCBvciB1bmRlZmluZWRcIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG9wdHMudGhyb3dPbkxpbWl0RXhjZWVkZWQgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIG9wdHMudGhyb3dPbkxpbWl0RXhjZWVkZWQgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJgdGhyb3dPbkxpbWl0RXhjZWVkZWRgIG9wdGlvbiBtdXN0IGJlIGEgYm9vbGVhblwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBjaGFyc2V0ID0gdHlwZW9mIG9wdHMuY2hhcnNldCA9PT0gXCJ1bmRlZmluZWRcIiA/IGRlZmF1bHRzLmNoYXJzZXQgOiBvcHRzLmNoYXJzZXQ7XG4gICAgICB2YXIgZHVwbGljYXRlcyA9IHR5cGVvZiBvcHRzLmR1cGxpY2F0ZXMgPT09IFwidW5kZWZpbmVkXCIgPyBkZWZhdWx0cy5kdXBsaWNhdGVzIDogb3B0cy5kdXBsaWNhdGVzO1xuICAgICAgaWYgKGR1cGxpY2F0ZXMgIT09IFwiY29tYmluZVwiICYmIGR1cGxpY2F0ZXMgIT09IFwiZmlyc3RcIiAmJiBkdXBsaWNhdGVzICE9PSBcImxhc3RcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiVGhlIGR1cGxpY2F0ZXMgb3B0aW9uIG11c3QgYmUgZWl0aGVyIGNvbWJpbmUsIGZpcnN0LCBvciBsYXN0XCIpO1xuICAgICAgfVxuICAgICAgdmFyIGFsbG93RG90cyA9IHR5cGVvZiBvcHRzLmFsbG93RG90cyA9PT0gXCJ1bmRlZmluZWRcIiA/IG9wdHMuZGVjb2RlRG90SW5LZXlzID09PSB0cnVlID8gdHJ1ZSA6IGRlZmF1bHRzLmFsbG93RG90cyA6ICEhb3B0cy5hbGxvd0RvdHM7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbGxvd0RvdHMsXG4gICAgICAgIGFsbG93RW1wdHlBcnJheXM6IHR5cGVvZiBvcHRzLmFsbG93RW1wdHlBcnJheXMgPT09IFwiYm9vbGVhblwiID8gISFvcHRzLmFsbG93RW1wdHlBcnJheXMgOiBkZWZhdWx0cy5hbGxvd0VtcHR5QXJyYXlzLFxuICAgICAgICBhbGxvd1Byb3RvdHlwZXM6IHR5cGVvZiBvcHRzLmFsbG93UHJvdG90eXBlcyA9PT0gXCJib29sZWFuXCIgPyBvcHRzLmFsbG93UHJvdG90eXBlcyA6IGRlZmF1bHRzLmFsbG93UHJvdG90eXBlcyxcbiAgICAgICAgYWxsb3dTcGFyc2U6IHR5cGVvZiBvcHRzLmFsbG93U3BhcnNlID09PSBcImJvb2xlYW5cIiA/IG9wdHMuYWxsb3dTcGFyc2UgOiBkZWZhdWx0cy5hbGxvd1NwYXJzZSxcbiAgICAgICAgYXJyYXlMaW1pdDogdHlwZW9mIG9wdHMuYXJyYXlMaW1pdCA9PT0gXCJudW1iZXJcIiA/IG9wdHMuYXJyYXlMaW1pdCA6IGRlZmF1bHRzLmFycmF5TGltaXQsXG4gICAgICAgIGNoYXJzZXQsXG4gICAgICAgIGNoYXJzZXRTZW50aW5lbDogdHlwZW9mIG9wdHMuY2hhcnNldFNlbnRpbmVsID09PSBcImJvb2xlYW5cIiA/IG9wdHMuY2hhcnNldFNlbnRpbmVsIDogZGVmYXVsdHMuY2hhcnNldFNlbnRpbmVsLFxuICAgICAgICBjb21tYTogdHlwZW9mIG9wdHMuY29tbWEgPT09IFwiYm9vbGVhblwiID8gb3B0cy5jb21tYSA6IGRlZmF1bHRzLmNvbW1hLFxuICAgICAgICBkZWNvZGVEb3RJbktleXM6IHR5cGVvZiBvcHRzLmRlY29kZURvdEluS2V5cyA9PT0gXCJib29sZWFuXCIgPyBvcHRzLmRlY29kZURvdEluS2V5cyA6IGRlZmF1bHRzLmRlY29kZURvdEluS2V5cyxcbiAgICAgICAgZGVjb2RlcjogdHlwZW9mIG9wdHMuZGVjb2RlciA9PT0gXCJmdW5jdGlvblwiID8gb3B0cy5kZWNvZGVyIDogZGVmYXVsdHMuZGVjb2RlcixcbiAgICAgICAgZGVsaW1pdGVyOiB0eXBlb2Ygb3B0cy5kZWxpbWl0ZXIgPT09IFwic3RyaW5nXCIgfHwgdXRpbHMuaXNSZWdFeHAob3B0cy5kZWxpbWl0ZXIpID8gb3B0cy5kZWxpbWl0ZXIgOiBkZWZhdWx0cy5kZWxpbWl0ZXIsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1pbXBsaWNpdC1jb2VyY2lvbiwgbm8tZXh0cmEtcGFyZW5zXG4gICAgICAgIGRlcHRoOiB0eXBlb2Ygb3B0cy5kZXB0aCA9PT0gXCJudW1iZXJcIiB8fCBvcHRzLmRlcHRoID09PSBmYWxzZSA/ICtvcHRzLmRlcHRoIDogZGVmYXVsdHMuZGVwdGgsXG4gICAgICAgIGR1cGxpY2F0ZXMsXG4gICAgICAgIGlnbm9yZVF1ZXJ5UHJlZml4OiBvcHRzLmlnbm9yZVF1ZXJ5UHJlZml4ID09PSB0cnVlLFxuICAgICAgICBpbnRlcnByZXROdW1lcmljRW50aXRpZXM6IHR5cGVvZiBvcHRzLmludGVycHJldE51bWVyaWNFbnRpdGllcyA9PT0gXCJib29sZWFuXCIgPyBvcHRzLmludGVycHJldE51bWVyaWNFbnRpdGllcyA6IGRlZmF1bHRzLmludGVycHJldE51bWVyaWNFbnRpdGllcyxcbiAgICAgICAgcGFyYW1ldGVyTGltaXQ6IHR5cGVvZiBvcHRzLnBhcmFtZXRlckxpbWl0ID09PSBcIm51bWJlclwiID8gb3B0cy5wYXJhbWV0ZXJMaW1pdCA6IGRlZmF1bHRzLnBhcmFtZXRlckxpbWl0LFxuICAgICAgICBwYXJzZUFycmF5czogb3B0cy5wYXJzZUFycmF5cyAhPT0gZmFsc2UsXG4gICAgICAgIHBsYWluT2JqZWN0czogdHlwZW9mIG9wdHMucGxhaW5PYmplY3RzID09PSBcImJvb2xlYW5cIiA/IG9wdHMucGxhaW5PYmplY3RzIDogZGVmYXVsdHMucGxhaW5PYmplY3RzLFxuICAgICAgICBzdHJpY3REZXB0aDogdHlwZW9mIG9wdHMuc3RyaWN0RGVwdGggPT09IFwiYm9vbGVhblwiID8gISFvcHRzLnN0cmljdERlcHRoIDogZGVmYXVsdHMuc3RyaWN0RGVwdGgsXG4gICAgICAgIHN0cmljdE51bGxIYW5kbGluZzogdHlwZW9mIG9wdHMuc3RyaWN0TnVsbEhhbmRsaW5nID09PSBcImJvb2xlYW5cIiA/IG9wdHMuc3RyaWN0TnVsbEhhbmRsaW5nIDogZGVmYXVsdHMuc3RyaWN0TnVsbEhhbmRsaW5nLFxuICAgICAgICB0aHJvd09uTGltaXRFeGNlZWRlZDogdHlwZW9mIG9wdHMudGhyb3dPbkxpbWl0RXhjZWVkZWQgPT09IFwiYm9vbGVhblwiID8gb3B0cy50aHJvd09uTGltaXRFeGNlZWRlZCA6IGZhbHNlXG4gICAgICB9O1xuICAgIH07XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24oc3RyLCBvcHRzKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IG5vcm1hbGl6ZVBhcnNlT3B0aW9ucyhvcHRzKTtcbiAgICAgIGlmIChzdHIgPT09IFwiXCIgfHwgc3RyID09PSBudWxsIHx8IHR5cGVvZiBzdHIgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucGxhaW5PYmplY3RzID8geyBfX3Byb3RvX186IG51bGwgfSA6IHt9O1xuICAgICAgfVxuICAgICAgdmFyIHRlbXBPYmogPSB0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiID8gcGFyc2VWYWx1ZXMoc3RyLCBvcHRpb25zKSA6IHN0cjtcbiAgICAgIHZhciBvYmogPSBvcHRpb25zLnBsYWluT2JqZWN0cyA/IHsgX19wcm90b19fOiBudWxsIH0gOiB7fTtcbiAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXModGVtcE9iaik7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgICAgIHZhciBuZXdPYmogPSBwYXJzZUtleXMoa2V5LCB0ZW1wT2JqW2tleV0sIG9wdGlvbnMsIHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIpO1xuICAgICAgICBvYmogPSB1dGlscy5tZXJnZShvYmosIG5ld09iaiwgb3B0aW9ucyk7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy5hbGxvd1NwYXJzZSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHV0aWxzLmNvbXBhY3Qob2JqKTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3FzL2xpYi9pbmRleC5qc1xudmFyIHJlcXVpcmVfbGliMyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9xcy9saWIvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBzdHJpbmdpZnkgPSByZXF1aXJlX3N0cmluZ2lmeSgpO1xuICAgIHZhciBwYXJzZSA9IHJlcXVpcmVfcGFyc2UoKTtcbiAgICB2YXIgZm9ybWF0cyA9IHJlcXVpcmVfZm9ybWF0cygpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIGZvcm1hdHMsXG4gICAgICBwYXJzZSxcbiAgICAgIHN0cmluZ2lmeVxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbGliL3R5cGVzL3VybGVuY29kZWQuanNcbnZhciByZXF1aXJlX3VybGVuY29kZWQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbGliL3R5cGVzL3VybGVuY29kZWQuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmVfaHR0cF9lcnJvcnMoKTtcbiAgICB2YXIgZGVidWcgPSByZXF1aXJlX3NyYygpKFwiYm9keS1wYXJzZXI6dXJsZW5jb2RlZFwiKTtcbiAgICB2YXIgaXNGaW5pc2hlZCA9IHJlcXVpcmVfb25fZmluaXNoZWQoKS5pc0ZpbmlzaGVkO1xuICAgIHZhciByZWFkID0gcmVxdWlyZV9yZWFkKCk7XG4gICAgdmFyIHR5cGVpcyA9IHJlcXVpcmVfdHlwZV9pcygpO1xuICAgIHZhciBxcyA9IHJlcXVpcmVfbGliMygpO1xuICAgIHZhciB7IGdldENoYXJzZXQsIG5vcm1hbGl6ZU9wdGlvbnMgfSA9IHJlcXVpcmVfdXRpbHMoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB1cmxlbmNvZGVkO1xuICAgIGZ1bmN0aW9uIHVybGVuY29kZWQob3B0aW9ucykge1xuICAgICAgdmFyIHsgaW5mbGF0ZSwgbGltaXQsIHZlcmlmeSwgc2hvdWxkUGFyc2UgfSA9IG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9ucywgXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIik7XG4gICAgICB2YXIgZGVmYXVsdENoYXJzZXQgPSBvcHRpb25zPy5kZWZhdWx0Q2hhcnNldCB8fCBcInV0Zi04XCI7XG4gICAgICBpZiAoZGVmYXVsdENoYXJzZXQgIT09IFwidXRmLThcIiAmJiBkZWZhdWx0Q2hhcnNldCAhPT0gXCJpc28tODg1OS0xXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBkZWZhdWx0Q2hhcnNldCBtdXN0IGJlIGVpdGhlciB1dGYtOCBvciBpc28tODg1OS0xXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHF1ZXJ5cGFyc2UgPSBjcmVhdGVRdWVyeVBhcnNlcihvcHRpb25zKTtcbiAgICAgIGZ1bmN0aW9uIHBhcnNlKGJvZHksIGVuY29kaW5nKSB7XG4gICAgICAgIHJldHVybiBib2R5Lmxlbmd0aCA/IHF1ZXJ5cGFyc2UoYm9keSwgZW5jb2RpbmcpIDoge307XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24gdXJsZW5jb2RlZFBhcnNlcihyZXEsIHJlcywgbmV4dCkge1xuICAgICAgICBpZiAoaXNGaW5pc2hlZChyZXEpKSB7XG4gICAgICAgICAgZGVidWcoXCJib2R5IGFscmVhZHkgcGFyc2VkXCIpO1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEoXCJib2R5XCIgaW4gcmVxKSkge1xuICAgICAgICAgIHJlcS5ib2R5ID0gdm9pZCAwO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdHlwZWlzLmhhc0JvZHkocmVxKSkge1xuICAgICAgICAgIGRlYnVnKFwic2tpcCBlbXB0eSBib2R5XCIpO1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGVidWcoXCJjb250ZW50LXR5cGUgJWpcIiwgcmVxLmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0pO1xuICAgICAgICBpZiAoIXNob3VsZFBhcnNlKHJlcSkpIHtcbiAgICAgICAgICBkZWJ1ZyhcInNraXAgcGFyc2luZ1wiKTtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjaGFyc2V0ID0gZ2V0Q2hhcnNldChyZXEpIHx8IGRlZmF1bHRDaGFyc2V0O1xuICAgICAgICBpZiAoY2hhcnNldCAhPT0gXCJ1dGYtOFwiICYmIGNoYXJzZXQgIT09IFwiaXNvLTg4NTktMVwiKSB7XG4gICAgICAgICAgZGVidWcoXCJpbnZhbGlkIGNoYXJzZXRcIik7XG4gICAgICAgICAgbmV4dChjcmVhdGVFcnJvcig0MTUsICd1bnN1cHBvcnRlZCBjaGFyc2V0IFwiJyArIGNoYXJzZXQudG9VcHBlckNhc2UoKSArICdcIicsIHtcbiAgICAgICAgICAgIGNoYXJzZXQsXG4gICAgICAgICAgICB0eXBlOiBcImNoYXJzZXQudW5zdXBwb3J0ZWRcIlxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmVhZChyZXEsIHJlcywgbmV4dCwgcGFyc2UsIGRlYnVnLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IGNoYXJzZXQsXG4gICAgICAgICAgaW5mbGF0ZSxcbiAgICAgICAgICBsaW1pdCxcbiAgICAgICAgICB2ZXJpZnlcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVRdWVyeVBhcnNlcihvcHRpb25zKSB7XG4gICAgICB2YXIgZXh0ZW5kZWQgPSBCb29sZWFuKG9wdGlvbnM/LmV4dGVuZGVkKTtcbiAgICAgIHZhciBwYXJhbWV0ZXJMaW1pdCA9IG9wdGlvbnM/LnBhcmFtZXRlckxpbWl0ICE9PSB2b2lkIDAgPyBvcHRpb25zPy5wYXJhbWV0ZXJMaW1pdCA6IDFlMztcbiAgICAgIHZhciBjaGFyc2V0U2VudGluZWwgPSBvcHRpb25zPy5jaGFyc2V0U2VudGluZWw7XG4gICAgICB2YXIgaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzID0gb3B0aW9ucz8uaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzO1xuICAgICAgdmFyIGRlcHRoID0gZXh0ZW5kZWQgPyBvcHRpb25zPy5kZXB0aCAhPT0gdm9pZCAwID8gb3B0aW9ucz8uZGVwdGggOiAzMiA6IDA7XG4gICAgICBpZiAoaXNOYU4ocGFyYW1ldGVyTGltaXQpIHx8IHBhcmFtZXRlckxpbWl0IDwgMSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIHBhcmFtZXRlckxpbWl0IG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXJcIik7XG4gICAgICB9XG4gICAgICBpZiAoaXNOYU4oZGVwdGgpIHx8IGRlcHRoIDwgMCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGRlcHRoIG11c3QgYmUgYSB6ZXJvIG9yIGEgcG9zaXRpdmUgbnVtYmVyXCIpO1xuICAgICAgfVxuICAgICAgaWYgKGlzRmluaXRlKHBhcmFtZXRlckxpbWl0KSkge1xuICAgICAgICBwYXJhbWV0ZXJMaW1pdCA9IHBhcmFtZXRlckxpbWl0IHwgMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbiBxdWVyeXBhcnNlKGJvZHksIGVuY29kaW5nKSB7XG4gICAgICAgIHZhciBwYXJhbUNvdW50ID0gcGFyYW1ldGVyQ291bnQoYm9keSwgcGFyYW1ldGVyTGltaXQpO1xuICAgICAgICBpZiAocGFyYW1Db3VudCA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgZGVidWcoXCJ0b28gbWFueSBwYXJhbWV0ZXJzXCIpO1xuICAgICAgICAgIHRocm93IGNyZWF0ZUVycm9yKDQxMywgXCJ0b28gbWFueSBwYXJhbWV0ZXJzXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwicGFyYW1ldGVycy50b28ubWFueVwiXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFycmF5TGltaXQgPSBleHRlbmRlZCA/IE1hdGgubWF4KDEwMCwgcGFyYW1Db3VudCkgOiAwO1xuICAgICAgICBkZWJ1ZyhcInBhcnNlIFwiICsgKGV4dGVuZGVkID8gXCJleHRlbmRlZCBcIiA6IFwiXCIpICsgXCJ1cmxlbmNvZGluZ1wiKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gcXMucGFyc2UoYm9keSwge1xuICAgICAgICAgICAgYWxsb3dQcm90b3R5cGVzOiB0cnVlLFxuICAgICAgICAgICAgYXJyYXlMaW1pdCxcbiAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgY2hhcnNldFNlbnRpbmVsLFxuICAgICAgICAgICAgaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzLFxuICAgICAgICAgICAgY2hhcnNldDogZW5jb2RpbmcsXG4gICAgICAgICAgICBwYXJhbWV0ZXJMaW1pdCxcbiAgICAgICAgICAgIHN0cmljdERlcHRoOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycjIpIHtcbiAgICAgICAgICBpZiAoZXJyMiBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGNyZWF0ZUVycm9yKDQwMCwgXCJUaGUgaW5wdXQgZXhjZWVkZWQgdGhlIGRlcHRoXCIsIHtcbiAgICAgICAgICAgICAgdHlwZTogXCJxdWVyeXN0cmluZy5wYXJzZS5yYW5nZUVycm9yXCJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBlcnIyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyYW1ldGVyQ291bnQoYm9keSwgbGltaXQpIHtcbiAgICAgIHZhciBsZW4gPSBib2R5LnNwbGl0KFwiJlwiKS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuID4gbGltaXQgPyB2b2lkIDAgOiBsZW4gLSAxO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9pbmRleC5qc1xudmFyIHJlcXVpcmVfYm9keV9wYXJzZXIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIGV4cG9ydHMyID0gbW9kdWxlMi5leHBvcnRzID0gYm9keVBhcnNlcjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsIFwianNvblwiLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiAoKSA9PiByZXF1aXJlX2pzb24oKVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgXCJyYXdcIiwge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogKCkgPT4gcmVxdWlyZV9yYXcoKVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgXCJ0ZXh0XCIsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6ICgpID0+IHJlcXVpcmVfdGV4dCgpXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCBcInVybGVuY29kZWRcIiwge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogKCkgPT4gcmVxdWlyZV91cmxlbmNvZGVkKClcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBib2R5UGFyc2VyKCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGJvZHlQYXJzZXIoKSBnZW5lcmljIGhhcyBiZWVuIHNwbGl0IGludG8gaW5kaXZpZHVhbCBtaWRkbGV3YXJlIHRvIHVzZSBpbnN0ZWFkLlwiKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbWVyZ2UtZGVzY3JpcHRvcnMvaW5kZXguanNcbnZhciByZXF1aXJlX21lcmdlX2Rlc2NyaXB0b3JzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL21lcmdlLWRlc2NyaXB0b3JzL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBmdW5jdGlvbiBtZXJnZURlc2NyaXB0b3JzKGRlc3RpbmF0aW9uLCBzb3VyY2UsIG92ZXJ3cml0ZSA9IHRydWUpIHtcbiAgICAgIGlmICghZGVzdGluYXRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlRoZSBgZGVzdGluYXRpb25gIGFyZ3VtZW50IGlzIHJlcXVpcmVkLlwiKTtcbiAgICAgIH1cbiAgICAgIGlmICghc291cmNlKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgYHNvdXJjZWAgYXJndW1lbnQgaXMgcmVxdWlyZWQuXCIpO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHNvdXJjZSkpIHtcbiAgICAgICAgaWYgKCFvdmVyd3JpdGUgJiYgT2JqZWN0Lmhhc093bihkZXN0aW5hdGlvbiwgbmFtZSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIG5hbWUpO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGVzdGluYXRpb24sIG5hbWUsIGRlc2NyaXB0b3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRlc3RpbmF0aW9uO1xuICAgIH1cbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBtZXJnZURlc2NyaXB0b3JzO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VuY29kZXVybC9pbmRleC5qc1xudmFyIHJlcXVpcmVfZW5jb2RldXJsID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VuY29kZXVybC9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZW5jb2RlVXJsO1xuICAgIHZhciBFTkNPREVfQ0hBUlNfUkVHRVhQID0gLyg/OlteXFx4MjFcXHgyMy1cXHgzQlxceDNEXFx4M0YtXFx4NUZcXHg2MS1cXHg3QVxceDdDXFx4N0VdfCUoPzpbXjAtOUEtRmEtZl18WzAtOUEtRmEtZl1bXjAtOUEtRmEtZl18JCkpKy9nO1xuICAgIHZhciBVTk1BVENIRURfU1VSUk9HQVRFX1BBSVJfUkVHRVhQID0gLyhefFteXFx1RDgwMC1cXHVEQkZGXSlbXFx1REMwMC1cXHVERkZGXXxbXFx1RDgwMC1cXHVEQkZGXShbXlxcdURDMDAtXFx1REZGRl18JCkvZztcbiAgICB2YXIgVU5NQVRDSEVEX1NVUlJPR0FURV9QQUlSX1JFUExBQ0UgPSBcIiQxXFx1RkZGRCQyXCI7XG4gICAgZnVuY3Rpb24gZW5jb2RlVXJsKHVybCkge1xuICAgICAgcmV0dXJuIFN0cmluZyh1cmwpLnJlcGxhY2UoVU5NQVRDSEVEX1NVUlJPR0FURV9QQUlSX1JFR0VYUCwgVU5NQVRDSEVEX1NVUlJPR0FURV9QQUlSX1JFUExBQ0UpLnJlcGxhY2UoRU5DT0RFX0NIQVJTX1JFR0VYUCwgZW5jb2RlVVJJKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXNjYXBlLWh0bWwvaW5kZXguanNcbnZhciByZXF1aXJlX2VzY2FwZV9odG1sID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VzY2FwZS1odG1sL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgbWF0Y2hIdG1sUmVnRXhwID0gL1tcIicmPD5dLztcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBlc2NhcGVIdG1sO1xuICAgIGZ1bmN0aW9uIGVzY2FwZUh0bWwoc3RyaW5nKSB7XG4gICAgICB2YXIgc3RyID0gXCJcIiArIHN0cmluZztcbiAgICAgIHZhciBtYXRjaCA9IG1hdGNoSHRtbFJlZ0V4cC5leGVjKHN0cik7XG4gICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgICB9XG4gICAgICB2YXIgZXNjYXBlMjtcbiAgICAgIHZhciBodG1sID0gXCJcIjtcbiAgICAgIHZhciBpbmRleCA9IDA7XG4gICAgICB2YXIgbGFzdEluZGV4ID0gMDtcbiAgICAgIGZvciAoaW5kZXggPSBtYXRjaC5pbmRleDsgaW5kZXggPCBzdHIubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIHN3aXRjaCAoc3RyLmNoYXJDb2RlQXQoaW5kZXgpKSB7XG4gICAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICAgIGVzY2FwZTIgPSBcIiZxdW90O1wiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzODpcbiAgICAgICAgICAgIGVzY2FwZTIgPSBcIiZhbXA7XCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDM5OlxuICAgICAgICAgICAgZXNjYXBlMiA9IFwiJiMzOTtcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNjA6XG4gICAgICAgICAgICBlc2NhcGUyID0gXCImbHQ7XCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDYyOlxuICAgICAgICAgICAgZXNjYXBlMiA9IFwiJmd0O1wiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsYXN0SW5kZXggIT09IGluZGV4KSB7XG4gICAgICAgICAgaHRtbCArPSBzdHIuc3Vic3RyaW5nKGxhc3RJbmRleCwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RJbmRleCA9IGluZGV4ICsgMTtcbiAgICAgICAgaHRtbCArPSBlc2NhcGUyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxhc3RJbmRleCAhPT0gaW5kZXggPyBodG1sICsgc3RyLnN1YnN0cmluZyhsYXN0SW5kZXgsIGluZGV4KSA6IGh0bWw7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3BhcnNldXJsL2luZGV4LmpzXG52YXIgcmVxdWlyZV9wYXJzZXVybCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9wYXJzZXVybC9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHVybCA9IHJlcXVpcmUoXCJ1cmxcIik7XG4gICAgdmFyIHBhcnNlID0gdXJsLnBhcnNlO1xuICAgIHZhciBVcmwgPSB1cmwuVXJsO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHBhcnNldXJsO1xuICAgIG1vZHVsZTIuZXhwb3J0cy5vcmlnaW5hbCA9IG9yaWdpbmFsdXJsO1xuICAgIGZ1bmN0aW9uIHBhcnNldXJsKHJlcSkge1xuICAgICAgdmFyIHVybDIgPSByZXEudXJsO1xuICAgICAgaWYgKHVybDIgPT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgfVxuICAgICAgdmFyIHBhcnNlZCA9IHJlcS5fcGFyc2VkVXJsO1xuICAgICAgaWYgKGZyZXNoKHVybDIsIHBhcnNlZCkpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICAgIH1cbiAgICAgIHBhcnNlZCA9IGZhc3RwYXJzZSh1cmwyKTtcbiAgICAgIHBhcnNlZC5fcmF3ID0gdXJsMjtcbiAgICAgIHJldHVybiByZXEuX3BhcnNlZFVybCA9IHBhcnNlZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gb3JpZ2luYWx1cmwocmVxKSB7XG4gICAgICB2YXIgdXJsMiA9IHJlcS5vcmlnaW5hbFVybDtcbiAgICAgIGlmICh0eXBlb2YgdXJsMiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gcGFyc2V1cmwocmVxKTtcbiAgICAgIH1cbiAgICAgIHZhciBwYXJzZWQgPSByZXEuX3BhcnNlZE9yaWdpbmFsVXJsO1xuICAgICAgaWYgKGZyZXNoKHVybDIsIHBhcnNlZCkpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICAgIH1cbiAgICAgIHBhcnNlZCA9IGZhc3RwYXJzZSh1cmwyKTtcbiAgICAgIHBhcnNlZC5fcmF3ID0gdXJsMjtcbiAgICAgIHJldHVybiByZXEuX3BhcnNlZE9yaWdpbmFsVXJsID0gcGFyc2VkO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmYXN0cGFyc2Uoc3RyKSB7XG4gICAgICBpZiAodHlwZW9mIHN0ciAhPT0gXCJzdHJpbmdcIiB8fCBzdHIuY2hhckNvZGVBdCgwKSAhPT0gNDcpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlKHN0cik7XG4gICAgICB9XG4gICAgICB2YXIgcGF0aG5hbWUgPSBzdHI7XG4gICAgICB2YXIgcXVlcnkgPSBudWxsO1xuICAgICAgdmFyIHNlYXJjaCA9IG51bGw7XG4gICAgICBmb3IgKHZhciBpID0gMTsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICBzd2l0Y2ggKHN0ci5jaGFyQ29kZUF0KGkpKSB7XG4gICAgICAgICAgY2FzZSA2MzpcbiAgICAgICAgICAgIGlmIChzZWFyY2ggPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcGF0aG5hbWUgPSBzdHIuc3Vic3RyaW5nKDAsIGkpO1xuICAgICAgICAgICAgICBxdWVyeSA9IHN0ci5zdWJzdHJpbmcoaSArIDEpO1xuICAgICAgICAgICAgICBzZWFyY2ggPSBzdHIuc3Vic3RyaW5nKGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA5OlxuICAgICAgICAgIC8qIFxcdCAqL1xuICAgICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgLyogXFxuICovXG4gICAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAvKiBcXGYgKi9cbiAgICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIC8qIFxcciAqL1xuICAgICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgLyogICAgKi9cbiAgICAgICAgICBjYXNlIDM1OlxuICAgICAgICAgIC8qICMgICovXG4gICAgICAgICAgY2FzZSAxNjA6XG4gICAgICAgICAgY2FzZSA2NTI3OTpcbiAgICAgICAgICAgIHJldHVybiBwYXJzZShzdHIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgdXJsMiA9IFVybCAhPT0gdm9pZCAwID8gbmV3IFVybCgpIDoge307XG4gICAgICB1cmwyLnBhdGggPSBzdHI7XG4gICAgICB1cmwyLmhyZWYgPSBzdHI7XG4gICAgICB1cmwyLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICBpZiAoc2VhcmNoICE9PSBudWxsKSB7XG4gICAgICAgIHVybDIucXVlcnkgPSBxdWVyeTtcbiAgICAgICAgdXJsMi5zZWFyY2ggPSBzZWFyY2g7XG4gICAgICB9XG4gICAgICByZXR1cm4gdXJsMjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZnJlc2godXJsMiwgcGFyc2VkVXJsKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHBhcnNlZFVybCA9PT0gXCJvYmplY3RcIiAmJiBwYXJzZWRVcmwgIT09IG51bGwgJiYgKFVybCA9PT0gdm9pZCAwIHx8IHBhcnNlZFVybCBpbnN0YW5jZW9mIFVybCkgJiYgcGFyc2VkVXJsLl9yYXcgPT09IHVybDI7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2ZpbmFsaGFuZGxlci9pbmRleC5qc1xudmFyIHJlcXVpcmVfZmluYWxoYW5kbGVyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2ZpbmFsaGFuZGxlci9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGRlYnVnID0gcmVxdWlyZV9zcmMoKShcImZpbmFsaGFuZGxlclwiKTtcbiAgICB2YXIgZW5jb2RlVXJsID0gcmVxdWlyZV9lbmNvZGV1cmwoKTtcbiAgICB2YXIgZXNjYXBlSHRtbCA9IHJlcXVpcmVfZXNjYXBlX2h0bWwoKTtcbiAgICB2YXIgb25GaW5pc2hlZCA9IHJlcXVpcmVfb25fZmluaXNoZWQoKTtcbiAgICB2YXIgcGFyc2VVcmwgPSByZXF1aXJlX3BhcnNldXJsKCk7XG4gICAgdmFyIHN0YXR1c2VzID0gcmVxdWlyZV9zdGF0dXNlcygpO1xuICAgIHZhciBpc0ZpbmlzaGVkID0gb25GaW5pc2hlZC5pc0ZpbmlzaGVkO1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUh0bWxEb2N1bWVudChtZXNzYWdlKSB7XG4gICAgICB2YXIgYm9keSA9IGVzY2FwZUh0bWwobWVzc2FnZSkucmVwbGFjZUFsbChcIlxcblwiLCBcIjxicj5cIikucmVwbGFjZUFsbChcIiAgXCIsIFwiICZuYnNwO1wiKTtcbiAgICAgIHJldHVybiAnPCFET0NUWVBFIGh0bWw+XFxuPGh0bWwgbGFuZz1cImVuXCI+XFxuPGhlYWQ+XFxuPG1ldGEgY2hhcnNldD1cInV0Zi04XCI+XFxuPHRpdGxlPkVycm9yPC90aXRsZT5cXG48L2hlYWQ+XFxuPGJvZHk+XFxuPHByZT4nICsgYm9keSArIFwiPC9wcmU+XFxuPC9ib2R5PlxcbjwvaHRtbD5cXG5cIjtcbiAgICB9XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZmluYWxoYW5kbGVyO1xuICAgIGZ1bmN0aW9uIGZpbmFsaGFuZGxlcihyZXEsIHJlcywgb3B0aW9ucykge1xuICAgICAgdmFyIG9wdHMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgdmFyIGVudiA9IG9wdHMuZW52IHx8IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8IFwiZGV2ZWxvcG1lbnRcIjtcbiAgICAgIHZhciBvbmVycm9yID0gb3B0cy5vbmVycm9yO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGVycjIpIHtcbiAgICAgICAgdmFyIGhlYWRlcnM7XG4gICAgICAgIHZhciBtc2c7XG4gICAgICAgIHZhciBzdGF0dXM7XG4gICAgICAgIGlmICghZXJyMiAmJiByZXMuaGVhZGVyc1NlbnQpIHtcbiAgICAgICAgICBkZWJ1ZyhcImNhbm5vdCA0MDQgYWZ0ZXIgaGVhZGVycyBzZW50XCIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyMikge1xuICAgICAgICAgIHN0YXR1cyA9IGdldEVycm9yU3RhdHVzQ29kZShlcnIyKTtcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHN0YXR1cyA9IGdldFJlc3BvbnNlU3RhdHVzQ29kZShyZXMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gZ2V0RXJyb3JIZWFkZXJzKGVycjIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtc2cgPSBnZXRFcnJvck1lc3NhZ2UoZXJyMiwgc3RhdHVzLCBlbnYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXR1cyA9IDQwNDtcbiAgICAgICAgICBtc2cgPSBcIkNhbm5vdCBcIiArIHJlcS5tZXRob2QgKyBcIiBcIiArIGVuY29kZVVybChnZXRSZXNvdXJjZU5hbWUocmVxKSk7XG4gICAgICAgIH1cbiAgICAgICAgZGVidWcoXCJkZWZhdWx0ICVzXCIsIHN0YXR1cyk7XG4gICAgICAgIGlmIChlcnIyICYmIG9uZXJyb3IpIHtcbiAgICAgICAgICBzZXRJbW1lZGlhdGUob25lcnJvciwgZXJyMiwgcmVxLCByZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXMuaGVhZGVyc1NlbnQpIHtcbiAgICAgICAgICBkZWJ1ZyhcImNhbm5vdCAlZCBhZnRlciBoZWFkZXJzIHNlbnRcIiwgc3RhdHVzKTtcbiAgICAgICAgICBpZiAocmVxLnNvY2tldCkge1xuICAgICAgICAgICAgcmVxLnNvY2tldC5kZXN0cm95KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZW5kKHJlcSwgcmVzLCBzdGF0dXMsIGhlYWRlcnMsIG1zZyk7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRFcnJvckhlYWRlcnMoZXJyMikge1xuICAgICAgaWYgKCFlcnIyLmhlYWRlcnMgfHwgdHlwZW9mIGVycjIuaGVhZGVycyAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgLi4uZXJyMi5oZWFkZXJzIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEVycm9yTWVzc2FnZShlcnIyLCBzdGF0dXMsIGVudikge1xuICAgICAgdmFyIG1zZztcbiAgICAgIGlmIChlbnYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIG1zZyA9IGVycjIuc3RhY2s7XG4gICAgICAgIGlmICghbXNnICYmIHR5cGVvZiBlcnIyLnRvU3RyaW5nID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBtc2cgPSBlcnIyLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBtc2cgfHwgc3RhdHVzZXMubWVzc2FnZVtzdGF0dXNdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRFcnJvclN0YXR1c0NvZGUoZXJyMikge1xuICAgICAgaWYgKHR5cGVvZiBlcnIyLnN0YXR1cyA9PT0gXCJudW1iZXJcIiAmJiBlcnIyLnN0YXR1cyA+PSA0MDAgJiYgZXJyMi5zdGF0dXMgPCA2MDApIHtcbiAgICAgICAgcmV0dXJuIGVycjIuc3RhdHVzO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBlcnIyLnN0YXR1c0NvZGUgPT09IFwibnVtYmVyXCIgJiYgZXJyMi5zdGF0dXNDb2RlID49IDQwMCAmJiBlcnIyLnN0YXR1c0NvZGUgPCA2MDApIHtcbiAgICAgICAgcmV0dXJuIGVycjIuc3RhdHVzQ29kZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFJlc291cmNlTmFtZShyZXEpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBwYXJzZVVybC5vcmlnaW5hbChyZXEpLnBhdGhuYW1lO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gXCJyZXNvdXJjZVwiO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRSZXNwb25zZVN0YXR1c0NvZGUocmVzKSB7XG4gICAgICB2YXIgc3RhdHVzID0gcmVzLnN0YXR1c0NvZGU7XG4gICAgICBpZiAodHlwZW9mIHN0YXR1cyAhPT0gXCJudW1iZXJcIiB8fCBzdGF0dXMgPCA0MDAgfHwgc3RhdHVzID4gNTk5KSB7XG4gICAgICAgIHN0YXR1cyA9IDUwMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNlbmQocmVxLCByZXMsIHN0YXR1cywgaGVhZGVycywgbWVzc2FnZSkge1xuICAgICAgZnVuY3Rpb24gd3JpdGUoKSB7XG4gICAgICAgIHZhciBib2R5ID0gY3JlYXRlSHRtbERvY3VtZW50KG1lc3NhZ2UpO1xuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IHN0YXR1cztcbiAgICAgICAgaWYgKHJlcS5odHRwVmVyc2lvbk1ham9yIDwgMikge1xuICAgICAgICAgIHJlcy5zdGF0dXNNZXNzYWdlID0gc3RhdHVzZXMubWVzc2FnZVtzdGF0dXNdO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5yZW1vdmVIZWFkZXIoXCJDb250ZW50LUVuY29kaW5nXCIpO1xuICAgICAgICByZXMucmVtb3ZlSGVhZGVyKFwiQ29udGVudC1MYW5ndWFnZVwiKTtcbiAgICAgICAgcmVzLnJlbW92ZUhlYWRlcihcIkNvbnRlbnQtUmFuZ2VcIik7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGhlYWRlcnMgPz8ge30pKSB7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIiwgXCJkZWZhdWx0LXNyYyAnbm9uZSdcIik7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoXCJYLUNvbnRlbnQtVHlwZS1PcHRpb25zXCIsIFwibm9zbmlmZlwiKTtcbiAgICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiKTtcbiAgICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtTGVuZ3RoXCIsIEJ1ZmZlci5ieXRlTGVuZ3RoKGJvZHksIFwidXRmOFwiKSk7XG4gICAgICAgIGlmIChyZXEubWV0aG9kID09PSBcIkhFQURcIikge1xuICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmVzLmVuZChib2R5LCBcInV0ZjhcIik7XG4gICAgICB9XG4gICAgICBpZiAoaXNGaW5pc2hlZChyZXEpKSB7XG4gICAgICAgIHdyaXRlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlcS51bnBpcGUoKTtcbiAgICAgIG9uRmluaXNoZWQocmVxLCB3cml0ZSk7XG4gICAgICByZXEucmVzdW1lKCk7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL3ZpZXcuanNcbnZhciByZXF1aXJlX3ZpZXcgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvdmlldy5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGRlYnVnID0gcmVxdWlyZV9zcmMoKShcImV4cHJlc3M6dmlld1wiKTtcbiAgICB2YXIgcGF0aCA9IHJlcXVpcmUoXCJub2RlOnBhdGhcIik7XG4gICAgdmFyIGZzID0gcmVxdWlyZShcIm5vZGU6ZnNcIik7XG4gICAgdmFyIGRpcm5hbWUgPSBwYXRoLmRpcm5hbWU7XG4gICAgdmFyIGJhc2VuYW1lID0gcGF0aC5iYXNlbmFtZTtcbiAgICB2YXIgZXh0bmFtZSA9IHBhdGguZXh0bmFtZTtcbiAgICB2YXIgam9pbiA9IHBhdGguam9pbjtcbiAgICB2YXIgcmVzb2x2ZSA9IHBhdGgucmVzb2x2ZTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBWaWV3O1xuICAgIGZ1bmN0aW9uIFZpZXcobmFtZSwgb3B0aW9ucykge1xuICAgICAgdmFyIG9wdHMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgdGhpcy5kZWZhdWx0RW5naW5lID0gb3B0cy5kZWZhdWx0RW5naW5lO1xuICAgICAgdGhpcy5leHQgPSBleHRuYW1lKG5hbWUpO1xuICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgIHRoaXMucm9vdCA9IG9wdHMucm9vdDtcbiAgICAgIGlmICghdGhpcy5leHQgJiYgIXRoaXMuZGVmYXVsdEVuZ2luZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBkZWZhdWx0IGVuZ2luZSB3YXMgc3BlY2lmaWVkIGFuZCBubyBleHRlbnNpb24gd2FzIHByb3ZpZGVkLlwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBmaWxlTmFtZSA9IG5hbWU7XG4gICAgICBpZiAoIXRoaXMuZXh0KSB7XG4gICAgICAgIHRoaXMuZXh0ID0gdGhpcy5kZWZhdWx0RW5naW5lWzBdICE9PSBcIi5cIiA/IFwiLlwiICsgdGhpcy5kZWZhdWx0RW5naW5lIDogdGhpcy5kZWZhdWx0RW5naW5lO1xuICAgICAgICBmaWxlTmFtZSArPSB0aGlzLmV4dDtcbiAgICAgIH1cbiAgICAgIGlmICghb3B0cy5lbmdpbmVzW3RoaXMuZXh0XSkge1xuICAgICAgICB2YXIgbW9kID0gdGhpcy5leHQuc2xpY2UoMSk7XG4gICAgICAgIGRlYnVnKCdyZXF1aXJlIFwiJXNcIicsIG1vZCk7XG4gICAgICAgIHZhciBmbiA9IHJlcXVpcmUobW9kKS5fX2V4cHJlc3M7XG4gICAgICAgIGlmICh0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTW9kdWxlIFwiJyArIG1vZCArICdcIiBkb2VzIG5vdCBwcm92aWRlIGEgdmlldyBlbmdpbmUuJyk7XG4gICAgICAgIH1cbiAgICAgICAgb3B0cy5lbmdpbmVzW3RoaXMuZXh0XSA9IGZuO1xuICAgICAgfVxuICAgICAgdGhpcy5lbmdpbmUgPSBvcHRzLmVuZ2luZXNbdGhpcy5leHRdO1xuICAgICAgdGhpcy5wYXRoID0gdGhpcy5sb29rdXAoZmlsZU5hbWUpO1xuICAgIH1cbiAgICBWaWV3LnByb3RvdHlwZS5sb29rdXAgPSBmdW5jdGlvbiBsb29rdXAobmFtZSkge1xuICAgICAgdmFyIHBhdGgyO1xuICAgICAgdmFyIHJvb3RzID0gW10uY29uY2F0KHRoaXMucm9vdCk7XG4gICAgICBkZWJ1ZygnbG9va3VwIFwiJXNcIicsIG5hbWUpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb290cy5sZW5ndGggJiYgIXBhdGgyOyBpKyspIHtcbiAgICAgICAgdmFyIHJvb3QgPSByb290c1tpXTtcbiAgICAgICAgdmFyIGxvYyA9IHJlc29sdmUocm9vdCwgbmFtZSk7XG4gICAgICAgIHZhciBkaXIgPSBkaXJuYW1lKGxvYyk7XG4gICAgICAgIHZhciBmaWxlID0gYmFzZW5hbWUobG9jKTtcbiAgICAgICAgcGF0aDIgPSB0aGlzLnJlc29sdmUoZGlyLCBmaWxlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXRoMjtcbiAgICB9O1xuICAgIFZpZXcucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcihvcHRpb25zLCBjYWxsYmFjaykge1xuICAgICAgdmFyIHN5bmMgPSB0cnVlO1xuICAgICAgZGVidWcoJ3JlbmRlciBcIiVzXCInLCB0aGlzLnBhdGgpO1xuICAgICAgdGhpcy5lbmdpbmUodGhpcy5wYXRoLCBvcHRpb25zLCBmdW5jdGlvbiBvblJlbmRlcigpIHtcbiAgICAgICAgaWYgKCFzeW5jKSB7XG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCk7XG4gICAgICAgIHZhciBjbnR4ID0gdGhpcztcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uIHJlbmRlclRpY2soKSB7XG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrLmFwcGx5KGNudHgsIGFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgc3luYyA9IGZhbHNlO1xuICAgIH07XG4gICAgVmlldy5wcm90b3R5cGUucmVzb2x2ZSA9IGZ1bmN0aW9uIHJlc29sdmUyKGRpciwgZmlsZSkge1xuICAgICAgdmFyIGV4dCA9IHRoaXMuZXh0O1xuICAgICAgdmFyIHBhdGgyID0gam9pbihkaXIsIGZpbGUpO1xuICAgICAgdmFyIHN0YXQgPSB0cnlTdGF0KHBhdGgyKTtcbiAgICAgIGlmIChzdGF0ICYmIHN0YXQuaXNGaWxlKCkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGgyO1xuICAgICAgfVxuICAgICAgcGF0aDIgPSBqb2luKGRpciwgYmFzZW5hbWUoZmlsZSwgZXh0KSwgXCJpbmRleFwiICsgZXh0KTtcbiAgICAgIHN0YXQgPSB0cnlTdGF0KHBhdGgyKTtcbiAgICAgIGlmIChzdGF0ICYmIHN0YXQuaXNGaWxlKCkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGgyO1xuICAgICAgfVxuICAgIH07XG4gICAgZnVuY3Rpb24gdHJ5U3RhdChwYXRoMikge1xuICAgICAgZGVidWcoJ3N0YXQgXCIlc1wiJywgcGF0aDIpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGZzLnN0YXRTeW5jKHBhdGgyKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXRhZy9pbmRleC5qc1xudmFyIHJlcXVpcmVfZXRhZyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ldGFnL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBldGFnO1xuICAgIHZhciBjcnlwdG8gPSByZXF1aXJlKFwiY3J5cHRvXCIpO1xuICAgIHZhciBTdGF0cyA9IHJlcXVpcmUoXCJmc1wiKS5TdGF0cztcbiAgICB2YXIgdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuICAgIGZ1bmN0aW9uIGVudGl0eXRhZyhlbnRpdHkpIHtcbiAgICAgIGlmIChlbnRpdHkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAnXCIwLTJqbWo3bDVyU3cweVZiL3ZsV0FZa0svWUJ3a1wiJztcbiAgICAgIH1cbiAgICAgIHZhciBoYXNoID0gY3J5cHRvLmNyZWF0ZUhhc2goXCJzaGExXCIpLnVwZGF0ZShlbnRpdHksIFwidXRmOFwiKS5kaWdlc3QoXCJiYXNlNjRcIikuc3Vic3RyaW5nKDAsIDI3KTtcbiAgICAgIHZhciBsZW4gPSB0eXBlb2YgZW50aXR5ID09PSBcInN0cmluZ1wiID8gQnVmZmVyLmJ5dGVMZW5ndGgoZW50aXR5LCBcInV0ZjhcIikgOiBlbnRpdHkubGVuZ3RoO1xuICAgICAgcmV0dXJuICdcIicgKyBsZW4udG9TdHJpbmcoMTYpICsgXCItXCIgKyBoYXNoICsgJ1wiJztcbiAgICB9XG4gICAgZnVuY3Rpb24gZXRhZyhlbnRpdHksIG9wdGlvbnMpIHtcbiAgICAgIGlmIChlbnRpdHkgPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgZW50aXR5IGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGlzU3RhdHMgPSBpc3N0YXRzKGVudGl0eSk7XG4gICAgICB2YXIgd2VhayA9IG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMud2VhayA9PT0gXCJib29sZWFuXCIgPyBvcHRpb25zLndlYWsgOiBpc1N0YXRzO1xuICAgICAgaWYgKCFpc1N0YXRzICYmIHR5cGVvZiBlbnRpdHkgIT09IFwic3RyaW5nXCIgJiYgIUJ1ZmZlci5pc0J1ZmZlcihlbnRpdHkpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBlbnRpdHkgbXVzdCBiZSBzdHJpbmcsIEJ1ZmZlciwgb3IgZnMuU3RhdHNcIik7XG4gICAgICB9XG4gICAgICB2YXIgdGFnID0gaXNTdGF0cyA/IHN0YXR0YWcoZW50aXR5KSA6IGVudGl0eXRhZyhlbnRpdHkpO1xuICAgICAgcmV0dXJuIHdlYWsgPyBcIlcvXCIgKyB0YWcgOiB0YWc7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzc3RhdHMob2JqKSB7XG4gICAgICBpZiAodHlwZW9mIFN0YXRzID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqIGluc3RhbmNlb2YgU3RhdHMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgJiYgXCJjdGltZVwiIGluIG9iaiAmJiB0b1N0cmluZy5jYWxsKG9iai5jdGltZSkgPT09IFwiW29iamVjdCBEYXRlXVwiICYmIFwibXRpbWVcIiBpbiBvYmogJiYgdG9TdHJpbmcuY2FsbChvYmoubXRpbWUpID09PSBcIltvYmplY3QgRGF0ZV1cIiAmJiBcImlub1wiIGluIG9iaiAmJiB0eXBlb2Ygb2JqLmlubyA9PT0gXCJudW1iZXJcIiAmJiBcInNpemVcIiBpbiBvYmogJiYgdHlwZW9mIG9iai5zaXplID09PSBcIm51bWJlclwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdGF0dGFnKHN0YXQpIHtcbiAgICAgIHZhciBtdGltZSA9IHN0YXQubXRpbWUuZ2V0VGltZSgpLnRvU3RyaW5nKDE2KTtcbiAgICAgIHZhciBzaXplID0gc3RhdC5zaXplLnRvU3RyaW5nKDE2KTtcbiAgICAgIHJldHVybiAnXCInICsgc2l6ZSArIFwiLVwiICsgbXRpbWUgKyAnXCInO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9leHByZXNzL25vZGVfbW9kdWxlcy9taW1lLWRiL2RiLmpzb25cbnZhciByZXF1aXJlX2RiMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9leHByZXNzL25vZGVfbW9kdWxlcy9taW1lLWRiL2RiLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIFwiYXBwbGljYXRpb24vMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vM2dwZGFzaC1xb2UtcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi8zZ3BwLWltcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uLzNncHBoYWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vM2dwcGhhbGZvcm1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2EybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjZStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWNlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjZS1ncm91cGNvbW0rY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjZS10cmwrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjdGl2ZW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY3Rpdml0eStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9haWYrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FpZitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWNkbmkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1jZG5pZmlsdGVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tY29zdG1hcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWNvc3RtYXBmaWx0ZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1kaXJlY3RvcnkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludGNvc3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludGNvc3RwYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludHByb3AranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludHByb3BwYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lcnJvcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLW5ldHdvcmttYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1uZXR3b3JrbWFwZmlsdGVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tcHJvcG1hcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXByb3BtYXBwYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by10aXBzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tdGlwc3BhcmFtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXVwZGF0ZXN0cmVhbWNvbnRyb2wranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by11cGRhdGVzdHJlYW1wYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYW5kcmV3LWluc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcGluc3RhbGxlclwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcGluc3RhbGxlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBwbGVmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBwbGl4d2FyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcHhcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHB4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHB4YnVuZGxlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBweGJ1bmRsZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRmeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b20reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdG9tXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9tY2F0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRvbWNhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbWRlbGV0ZWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdG9tZGVsZXRlZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbWljbWFpbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b21zdmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdG9tc3ZjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLWR3ZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR3ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1keW5hbWljLWV2ZW50LW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLWhlbGQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWxkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLXJkdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLXJzYXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc2F0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F1dGgtcG9saWN5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXV0b21hdGlvbm1sLWFtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXV0b21hdGlvbm1sLWFtbHgremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYW1seFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYmFjbmV0LXhkZCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9iYXRjaC1zbXRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYmRvY1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkb2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2JlZXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2J1ZnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jMnBhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2FsZW5kYXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2FsZW5kYXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4Y3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhbGwtY29tcGxldGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhbHMtMTg0MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhcHRpdmUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nib3Itc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2NjZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jY21wK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2N4bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjY3htbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZGZ4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RmeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RtaS1jYXBhYmlsaXR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktZG9tYWluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktb2JqZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktcXVldWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZG1pcVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RuaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NlK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZWEtMjAxOCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NlbGxtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nmd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NpZC1lZGhvYytjYm9yLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NpdHkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2l0eStqc29uLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NsclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NsdWUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbHVlX2luZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbnJwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29hcC1lYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb2FwLWdyb3VwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvYXAtcGF5bG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvbW1vbmdyb3VuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvbmNpc2UtcHJvYmxlbS1kZXRhaWxzK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb25mZXJlbmNlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb3NlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29zZS1rZXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb3NlLWtleS1zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb3NlLXg1MDlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jcGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NzcmF0dHJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3N0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NzdGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3N2bStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jdS1zZWVtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N3bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImN3bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3dsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N3bCt5YW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3d0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3liZXJjYXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGFydFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGFzaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGFzaC1wYXRjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGFzaGRlbHRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGF2bW91bnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYXZtb3VudFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGNhLXJmdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RjZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RlYy1keFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpYWxvZy1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGljb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkY21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpY29tK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpY29tK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGlpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG5zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG5zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rucy1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG9jYm9vayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGJrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kb3RzK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kcG9wK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rza3BwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHNzYytkZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkc3NjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kc3NjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRzc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2R2Y3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQrY3d0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdC1idW4rY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdC1idW4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0LXVjcytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0LXVjcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lY21hc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVjbWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VkaG9jK2Nib3Itc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWRpLWNvbnNlbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZGkteDEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWRpZmFjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VmaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VsbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VsbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmNhcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuY29tbWVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmNvbnRyb2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5kZXZpY2VpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuZWNhbGwubXNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEubGVnYWN5ZXNuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnByb3ZpZGVyaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnNlcnZpY2VpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuc3Vic2NyaWJlcmluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS52ZWRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1tYSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVtbWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Vtb3Rpb25tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVtb3Rpb25tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW5jYXBydHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbnRpdHktc3RhdGVtZW50K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VwcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VwdWIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXB1YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXNob3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9leGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2V4cGVjdC1jdC1yZXBvcnQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXhwcmVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmFzdGluZm9zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mYXN0c29hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmR0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmR0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9maGlyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmhpcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmlkby50cnVzdGVkLWFwcHMranNvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZml0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZsZXhmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mb250LXNmbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mb250LXRkcGZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGZyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mb250LXdvZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mcmFtZXdvcmstYXR0cmlidXRlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlbytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZW9qc29uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW8ranNvbi1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW9wYWNrYWdlK3NxbGl0ZTNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW9wb3NlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlb3hhY21sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlb3hhY21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2x0Zi1idWZmZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2duYXAtYmluZGluZy1qd3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctandzZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2duYXAtYmluZGluZy1yb3RhdGlvbi1qd3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctcm90YXRpb24tandzZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dweCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3B4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ncmliXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ3hmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJneGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2d6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaDIyNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2hlbGQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9oanNvblwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhqc29uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9obDd2Mit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaHR0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2h5cGVyc3R1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pYmUta2V5LXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pYmUtcGtnLXJlcGx5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaWJlLXBwLWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pZ2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW0taXNjb21wb3NpbmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXguY21kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXgub2JqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXgucmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmRleC52bmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmttbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlua1wiLCBcImlua21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pb3RwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaXBmaXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcGZpeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaXBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaXN1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2l0cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIml0c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamF2YS1hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFyXCIsIFwid2FyXCIsIFwiZWFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qYXZhLXNlcmlhbGl6ZWQtb2JqZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2phdmEtdm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsYXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pmMmZlZWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vam9zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pvc2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanJkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzY2FsZW5kYXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNjb250YWN0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNvblwiLCBcIm1hcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbi1wYXRjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29uLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb241XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNvbjVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb25tbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzb25tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbnBhdGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qd2sranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vandrLXNldCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qd2stc2V0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2twbWwtcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2twbWwtcmVzcG9uc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc29ubGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xncit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxnclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGluay1mb3JtYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9saW5rc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGlua3NldCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sb2FkLWNvbnRyb2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sb2dvdXQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbG9zdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxvc3R4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xvc3RzeW5jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbHBmK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2x4ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hYy1iaW5oZXg0MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhxeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFjLWNvbXBhY3Rwcm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNwdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFjd3JpdGVpaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYWRzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYW5pZmVzdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYm1hbmlmZXN0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXJjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXJjeG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXJjeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWF0aGVtYXRpY2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYVwiLCBcIm5iXCIsIFwibWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hdGhtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1hdGhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWF0aG1sLWNvbnRlbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXRobWwtcHJlc2VudGF0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1hc3NvY2lhdGVkLXByb2NlZHVyZS1kZXNjcmlwdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtZGVyZWdpc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtZW52ZWxvcGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLW1zayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtbXNrLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1wcm90ZWN0aW9uLWRlc2NyaXB0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1yZWNlcHRpb24tcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1yZWdpc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtcmVnaXN0ZXItcmVzcG9uc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXNjaGVkdWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy11c2VyLXNlcnZpY2UtZGVzY3JpcHRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm94XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWJveFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWVkaWEtcG9saWN5LWRhdGFzZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21lZGlhX2NvbnRyb2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZWRpYXNlcnZlcmNvbnRyb2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2NtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWVyZ2UtcGF0Y2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWV0YWxpbmsreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ldGFsaW5rXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZXRhbGluazQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZXRhNFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWV0cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ldHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21mNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21pa2V5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWlwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21pc3NpbmctYmxvY2tzK2Nib3Itc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW10LWFlaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1hZWlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21tdC11c2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdXNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb2RzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW9kc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9zcy1rZXlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9zcy1zaWduYXR1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb3Nza2V5LWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb3Nza2V5LXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcDIxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTIxXCIsIFwibXAyMVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXA0XCIsIFwibXBnNFwiLCBcIm1wNHNcIiwgXCJtNHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21wZWc0LWdlbmVyaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcGVnNC1pb2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcGVnNC1pb2QteG10XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXJiLWNvbnN1bWVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXJiLXB1Ymxpc2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc2MtaXZyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc2MtbWl4ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21zaXhcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2l4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc2l4YnVuZGxlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNpeGJ1bmRsZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXN3b3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG9jXCIsIFwiZG90XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tdWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXVsdGlwYXJ0LWNvcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9teGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL24tcXVhZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJucVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbi10cmlwbGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25hc2RhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uZXdzLWNoZWNrZ3JvdXBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVUy1BU0NJSVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uZXdzLWdyb3VwaW5mb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVMtQVNDSUlcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmV3cy10cmFuc21pc3Npb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ubHNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25vZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjanNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25zc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29hdXRoLWF1dGh6LXJlcStqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vYmxpdmlvdXMtZG5zLW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vY3NwLXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vY3NwLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiaW5cIiwgXCJkbXNcIiwgXCJscmZcIiwgXCJtYXJcIiwgXCJzb1wiLCBcImRpc3RcIiwgXCJkaXN0elwiLCBcInBrZ1wiLCBcImJwa1wiLCBcImR1bXBcIiwgXCJlbGNcIiwgXCJkZXBsb3lcIiwgXCJleGVcIiwgXCJkbGxcIiwgXCJkZWJcIiwgXCJkbWdcIiwgXCJpc29cIiwgXCJpbWdcIiwgXCJtc2lcIiwgXCJtc3BcIiwgXCJtc21cIiwgXCJidWZmZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29kYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2RtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2R4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2VicHMtcGFja2FnZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9wZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2dnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2d4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vaHR0cC1rZXlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb21kb2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9tZG9jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vbmVub3RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvbmV0b2NcIiwgXCJvbmV0b2MyXCIsIFwib25ldG1wXCIsIFwib25lcGtnXCIsIFwib25lXCIsIFwib25lYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb3BjLW5vZGVzZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vc2NvcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9veHBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3hwc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcDIxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcDIxK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3AycC1vdmVybGF5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmVsb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGFzc3BvcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wYXRjaC1vcHMtZXJyb3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGVtLWNlcnRpZmljYXRlLWNoYWluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGdwLWVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBncFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGdwLWtleXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaWdcIiwgXCJhc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BpY3MtcnVsZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGlkZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGlkZi1kaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzMTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwMTBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3MxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3M3LW1pbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwN21cIiwgXCJwN2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3M3LXNpZ25hdHVyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInA3c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwOFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczgtZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeC1hdHRyLWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeC1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2VyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2l4LWNybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNybFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeC1wa2lwYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGtpcGF0aFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeGNtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBraVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGxzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wb2Mtc2V0dGluZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bvc3RzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFpXCIsIFwiZXBzXCIsIFwicHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bwc3AtdHJhY2tlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcml2YXRlLXRva2VuLWlzc3Vlci1kaXJlY3RvcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcml2YXRlLXRva2VuLXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcml2YXRlLXRva2VuLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJvYmxlbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcm9ibGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJvdmVuYW5jZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByb3Z4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcm92aWRlZC1jbGFpbXMrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmFsdmVzdHJhbmQudGl0cmF4LXNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmN3d1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImN3d1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmN5blwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiNy1CSVRcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmhwdWIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtZG9jdW1lbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1leGVjdXRhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtb2JqZWN0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLW9iamVjdCtqc29uLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLW9iamVjdCt5YW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtc3RydWN0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLm1heWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMubnByZW5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLnBsdWNrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMucmRmLXhtbC1jcnlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy52Y2ZiemlwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy54c2YreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4c2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bza2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwc2tjeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wdmQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcXNpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JhbWwreWFtbFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmFwdG9yZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmRhcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZGZcIiwgXCJvd2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JlZ2luZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JlbGF4LW5nLWNvbXBhY3Qtc3ludGF4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm5jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZW1vdGUtcHJpbnRpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JlcHV0b24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVzb2x2ZS1yZXNwb25zZStqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZXNvdXJjZS1saXN0cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZXNvdXJjZS1saXN0cy1kaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmxkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yaXNjb3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ybG1pK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmxzLXNlcnZpY2VzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JvdXRlLWFwZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhcGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JvdXRlLXMtdHNpZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcm91dGUtdXNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnVzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1jaGVja2xpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLWdob3N0YnVzdGVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdiclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1tYW5pZmVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1mdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1wdWJsaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktcm9hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm9hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLXNpZ25lZC10YWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLXVwZG93blwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yc3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3J0cGxvb3BiYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2FtbGFzc2VydGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NhbWxtZXRhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NhcmlmK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NhcmlmLWV4dGVybmFsLXByb3BlcnRpZXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2JlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2JtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNibWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjYWlwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2NpbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY3ZwLWN2LXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY3FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjdnAtY3YtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjdnAtdnAtcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwcVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2N2cC12cC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2RwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZWNldmVudCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW5tbHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sLWV0Y2grY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sLWV0Y2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwtZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vuc21sK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5zbWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vuc21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2Vuc21seFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vuc21sLWV4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlcC1leGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXNzaW9uLWluZm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXQtcGF5bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NldC1wYXltZW50LWluaXRpYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZXRwYXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NldC1yZWdpc3RyYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXQtcmVnaXN0cmF0aW9uLWluaXRpYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZXRyZWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NnbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZ21sLW9wZW4tY2F0YWxvZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NoZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNoZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2lldmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaXZcIiwgXCJzaWV2ZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2ltcGxlLWZpbHRlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpbXBsZS1tZXNzYWdlLXN1bW1hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaW1wbGVzeW1ib2xjb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaXBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2xhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zbWlsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zbWlsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic21pXCIsIFwic21pbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc21wdGUzMzZtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc29hcCtmYXN0aW5mb3NldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NvYXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcGFycWwtcXVlcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3BhcnFsLXJlc3VsdHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NwZHgranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3Bpcml0cy1ldmVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NxbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNxbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3Jnc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdyYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NyZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncnhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3J1K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3J1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zc2RsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzc2RsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zc2xrZXlsb2dmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3NtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNzbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N0MjExMC00MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N0aXgranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3RyYXR1bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N3aWQrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N3aWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzd2lkdGFnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLWFwZXgtdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1hcGV4LXVwZGF0ZS1jb25maXJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1jb21tdW5pdHktdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1jb21tdW5pdHktdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLWVycm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1zZXF1ZW5jZS1hZGp1c3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXNlcXVlbmNlLWFkanVzdC1jb25maXJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1zdGF0dXMtcXVlcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXN0YXR1cy1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC11cGRhdGUtY29uZmlybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhclwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGF4aWkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGVpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGVpXCIsIFwidGVpY29ycHVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90ZXRyYV9pc2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90aHJhdWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZmlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RpbWVzdGFtcC1xdWVyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RpbWVzdGFtcC1yZXBseVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RpbWVzdGFtcGVkLWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0c2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Rsc3JwdCtnemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGxzcnB0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RuYXV0aGxpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90b2MrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Rva2VuLWludHJvc3BlY3Rpb24rand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdG9tbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widG9tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJpY2tsZS1pY2Utc2RwZnJhZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RyaWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cmlnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cnVzdC1jaGFpbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cnVzdC1tYXJrK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RydXN0LW1hcmstZGVsZWdhdGlvbitqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90dG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHRtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHZlLXRyaWdnZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90emlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHppZi1sZWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdWJqc29uXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widWJqXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91Y2NzK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91amNzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VscGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VyYy1ncnBzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VyYy1yZXNzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzaGVldFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdXJjLXRhcmdldGRlc2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdXJjLXVpc29ja2V0ZGVzYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmMrY29zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjYXJkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjYXJkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmVtbWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92aXZpZGVuY2Uuc2NyaXB0ZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjEwMDBtaW5kcy5kZWNpc2lvbi1tb2RlbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjFrbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjFvYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtcHJvc2UtcGMzYSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjM2FjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjM2NoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtcHJvc2UtcGM4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtdjJ4LWxvY2FsLXNlcnZpY2UtaW5mb3JtYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z25hc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc2EyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc2EyeC1sb2NhbC1zZXJ2aWNlLWluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWdzdjJ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWdzdjJ4LWxvY2FsLXNlcnZpY2UtaW5mb3JtYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5hY2Nlc3MtdHJhbnNmZXItZXZlbnRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuYnNmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuY3JzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuY3VycmVudC1sb2NhdGlvbi1kaXNjb3ZlcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5nbW9wK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuZ3RwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmludGVyd29ya2luZy1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubHBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWMtc2lnbmFsbGluZy1lYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtYWZmaWxpYXRpb24tY29tbWFuZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLW1zZ3N0b3JlLWN0cmwtcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1wYXlsb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXJlZ3JvdXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtc2VydmljZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtc2lnbmFsbGluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS11ZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtdXNlci1wcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtYWZmaWxpYXRpb24tY29tbWFuZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWZsb29yLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtbG9jYXRpb24taW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LW1ibXMtdXNhZ2UtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXJlZ3JvdXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXNpZ25lZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVlLWluaXQtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtdXNlci1wcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1hZmZpbGlhdGlvbi1jb21tYW5kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1sb2NhdGlvbi1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1tYm1zLXVzYWdlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXJlZ3JvdXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXNlcnZpY2UtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby10cmFuc21pc3Npb24tcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdWUtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby11c2VyLXByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5taWQtY2FsbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm5nYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5wZmNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGljLWJ3LWxhcmdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctc21hbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwc2JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpYy1idy12YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwdmJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpbmFwcC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuczFhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtZ3JvdXAtZG9jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1sb2NhdGlvbi1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1tYm1zLXVzYWdlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLW5ldHdvcmstcW9zLW1hbmFnZW1lbnQtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtdWUtY29uZmlnLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLXVuaWNhc3QtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtdXNlci1wcm9maWxlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zbXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zcnZjYy1leHQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zcnZjYy1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc3RhdGUtYW5kLWV2ZW50LWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC51c3NkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAudjJ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAudmFlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcDIuYmNtY3NpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAyLnNtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwMi50Y2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGNhcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNsaWdodHNzb2Z0d2FyZS5pbWFnZXNjYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM20ucG9zdC1pdC1ub3Rlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB3blwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjY3BhYy5zaW1wbHkuYXNvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXNvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWNjcGFjLnNpbXBseS5pbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpbXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY20uYWRkcmVzc3hmZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjbS5jaGF0Ym90K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY3Vjb2JvbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFjdVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjdWNvcnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdGNcIiwgXCJhY3V0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmFpci1hcHBsaWNhdGlvbi1pbnN0YWxsZXItcGFja2FnZSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFpclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmZsYXNoLm1vdmllXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmZvcm1zY2VudHJhbC5mY2R0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmNkdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmZ4cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ4cFwiLCBcImZ4cGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5wYXJ0aWFsLXVwbG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS54ZHAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS54ZmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWV0aGVyLmltcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmFmcGxpbmVkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuYWZwbGluZWRhdGEtcGFnZWRlZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmNtb2NhLWNtcmVzb3VyY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5mb2NhLWNoYXJzZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5mb2NhLWNvZGVkZm9udFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmZvY2EtY29kZXBhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLWNtdGFibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1mb3JtZGVmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtbWVkaXVtbWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2Etb2JqZWN0Y29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2Etb3ZlcmxheVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLXBhZ2VzZWdtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFnZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFoLWJhcmNvZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5haGVhZC5zcGFjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFoZWFkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWlyemlwLmZpbGVzZWN1cmUuYXpmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXpmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWlyemlwLmZpbGVzZWN1cmUuYXpzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXpzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1hZGV1cytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1hem9uLmVib29rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhendcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbWF6b24ubW9iaTgtZWJvb2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1lcmljYW5keW5hbWljcy5hY2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbWlnYS5hbWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhbWlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbXVuZHNlbi5tYXplK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFuZHJvaWQub3RhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFuZHJvaWQucGFja2FnZS1hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbmtpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFuc2VyLXdlYi1jZXJ0aWZpY2F0ZS1pc3N1ZS1pbml0aWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2lpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW5zZXItd2ViLWZ1bmRzLXRyYW5zZmVyLWluaXRpYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ0aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFudGl4LmdhbWUtY29tcG9uZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLmFycm93LmZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLmFycm93LnN0cmVhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUucGFycXVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUudGhyaWZ0LmJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUudGhyaWZ0LmNvbXBhY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnRocmlmdC5qc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwZXhsYW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwaStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBsZXh0b3Iud2FycnAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwb3RoZWtlbmRlLnJlc2VydmF0aW9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5pbnN0YWxsZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGtnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUua2V5bm90ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtleVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLm1wZWd1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtM3U4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUubnVtYmVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm51bWJlcnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5wYWdlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBhZ2VzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUucGtwYXNzXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGtwYXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXJhc3RyYS5zd2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcmlzdGFuZXR3b3Jrcy5zd2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzd2lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcnRpc2FuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcnRzcXVhcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXN0cmFlYS1zb2Z0d2FyZS5pb3RhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaW90YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmF1ZGlvZ3JhcGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdXRvZGVzay5mYnhcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJmYnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdXRvcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdmFsb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmF2aXN0YXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmFsc2FtaXEuYm1tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJtbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYWxzYW1pcS5ibXByXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJhbmFuYS1hY2NvdW50aW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AuZXJyb3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmJmLnVzcC5tc2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmJmLnVzcC5tc2cranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJla2l0enVyLXN0ZWNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iZWxpZ2h0c29mdC5saHpkK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iZWxpZ2h0c29mdC5saHpsK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iaW50Lm1lZC1jb250ZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJpb3BheC5yZGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmxpbmstaWRiLXZhbHVlLXdyYXBwZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmx1ZWljZS5tdWx0aXBhc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ibHVldG9vdGguZXAub29iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJsdWV0b290aC5sZS5vb2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYm1pXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm1pXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnBmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJwZjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnVzaW5lc3NvYmplY3RzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmVwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnl1LnVhcGkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJ6aXAzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmMzdm9jLnNjaGVkdWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNhYi1qc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNhbm9uLWNwZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2Fub24tbGlwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jYXBhc3lzdGVtcy1wZytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2VuZGlvLnRoaW5saW5jLmNsaWVudGNvbmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2VudHVyeS1zeXN0ZW1zLnRjcF9zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2hlbWRyYXcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZHhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNoZXNzLXBnblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaGlwbnV0cy5rYXJhb2tlLW1tZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1tZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNpZWRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNpbmRlcmVsbGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZHlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaXJwYWNrLmlzZG4tZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNpdGF0aW9uc3R5bGVzLnN0eWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2xheW1vcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbG9hbnRvLnJwOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJwOVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsb25rLmM0Z3JvdXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjNGdcIiwgXCJjNGRcIiwgXCJjNGZcIiwgXCJjNHBcIiwgXCJjNHVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbHVldHJ1c3QuY2FydG9tb2JpbGUtY29uZmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYzExYW1jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2x1ZXRydXN0LmNhcnRvbW9iaWxlLWNvbmZpZy1wa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjMTFhbXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbmNmLmhlbG0uY2hhcnQuY29udGVudC52MS50YXIrZ3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbmNmLmhlbG0uY2hhcnQucHJvdmVuYW5jZS52MS5wcm92XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNuY2YuaGVsbS5jb25maWcudjEranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvZmZlZXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5kb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5kb2N1bWVudC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5wcmVzZW50YXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMucHJlc2VudGF0aW9uLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnNwcmVhZHNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnNwcmVhZHNoZWV0LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24uZG9jK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uLm5leHQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbWljYm9vayt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29taWNib29rLXJhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb21tZXJjZS1iYXR0ZWxsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb21tb25zcGFjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbnRhY3QuY21zZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkYmNtc2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb3Jlb3MuaWduaXRpb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvc21vY2FsbGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY21jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLmtleWJvYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xra1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIucGFsZXR0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xrdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIud29yZGJhbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGt3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpdGljYWx0b29scy53YnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdGlpLnBpcGUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0by1zaGFkZS1maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0b21hdG9yLmVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG9tYXRvci52YXVsdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdGMtcG9zbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdGN0LndzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcGRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcG9zdHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXBwZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcmFzdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcmF3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3VybC5jYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cmwucGN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3lhbi5kZWFuLnJvb3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3liYW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN5Y2xvbmVkeCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3ljbG9uZWR4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmQybC5jb3Vyc2VwYWNrYWdlMXAwK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kM20tZGF0YXNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kM20tcHJvYmxlbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYXJ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YS12aXNpb24ucmR6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmR6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YWxvZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYXRhcGFja2FnZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YXJlc291cmNlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kY21wK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGNtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlYmlhbi5iaW5hcnktcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dmZcIiwgXCJ1dnZmXCIsIFwidXZkXCIsIFwidXZ2ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlY2UudHRtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2dFwiLCBcInV2dnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLnVuc3BlY2lmaWVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ4XCIsIFwidXZ2eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlY2UuemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ6XCIsIFwidXZ2elwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlbm92by5mY3NlbGF5b3V0LWxpbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZV9sYXVuY2hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZXNtdW1lLm1vdmllXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRpci1iaS5wbGF0ZS1kbC1ub3N1ZmZpeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kbS5kZWxlZ2F0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRuYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRuYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvY3VtZW50K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1scFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1vYmlsZS4xXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1vYmlsZS4yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvcmVtaXIuc2NvcmVjbG91ZC1iaW5hcnktZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHBncmFwaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRwZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRyZWFtZmFjdG9yeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRmYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kcml2ZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHMta2V5cG9pbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtweHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdGcubG9jYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHRnLmxvY2FsLmZsYXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR0Zy5sb2NhbC5odG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5haXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZHZiaXNsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5kdmJqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5lc2djb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNkZnRub3RpZmFjY2Vzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2VzZ2FjY2Vzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2VzZ2FjY2VzczJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dwZGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNyb2FtaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcHR2LmFsZmVjLWJhc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwdHYuYWxmZWMtZW5oYW5jZW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWFnZ3JlZ2F0ZS1yb290K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1jb250YWluZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWdlbmVyaWMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWlhLW1zZ2xpc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWlhLXJlZ2lzdHJhdGlvbi1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1yZWdpc3RyYXRpb24tcmVzcG9uc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWluaXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLnBmclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuc2VydmljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR4clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5keW5hZ2VvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2VvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHpyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVhc3lrYXJhb2tlLmNkZ2Rvd25sb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjZGlzLXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY2lwLnJscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY2xpcHNlLmRpdHRvK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uY2hhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uZmlsZXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmZpbGV1cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLnNlcmllc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uc2VyaWVzcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uc2VyaWVzdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVmaS5pbWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWZpLmlzb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lbG4remlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVtY2xpZW50LmFjY2Vzc3JlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZW5saXZlblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVucGhhc2UuZW52b3lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXByaW50cy5kYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLmVzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLm1zZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLnF1aWNrYW5pbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5zYWx0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2x0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24uc3NmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3NmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXJpY3Nzb24ucXVpY2tjYWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVyb2ZzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVzcGFzcy1lc3Bhc3MremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVzemlnbm8zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXMzXCIsIFwiZXQzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5hb2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5hc2ljLWUremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYXNpYy1zK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmN1Zyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZjb21tYW5kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dmRpc2NvdmVyeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZwcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNhZC1iYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtY29kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNhZC1ucHZyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNlcnZpY2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c3luYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZ1ZXByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5tY2lkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kubWhlZzVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5vdmVybG9hZC1jb250cm9sLXBvbGljeS1kYXRhc2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kucHN0bit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnNjaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnNpbXNlcnZzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kudGltZXN0YW1wLXRva2VuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kudHNsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kudHNsLmRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldS5rYXNwYXJpYW4uY2FyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldWRvcmEuZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnByb2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXZvbHYuZWNpZy5zZXR0aW5nc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnRoZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV4c3RyZWFtLWVtcG93ZXIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV4c3RyZWFtLXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXpwaXgtYWxidW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlejJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lenBpeC1wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXozXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZi1zZWN1cmUubW9iaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZhbWlseXNlYXJjaC5nZWRjb20remlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZhc3Rjb3B5LWRpc2staW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZHNuLm1zZWVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNlZWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZHNuLnNlZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZWVkXCIsIFwiZGF0YWxlc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZHNuLnN0YXRpb254bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJYTUwtQkFTRURcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmZzbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmljbGFiLmZsYit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmlsbWl0LnpmY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5maW50c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5maXJlbW9ua2V5cy5jbG91ZGNlbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmxvZ3JhcGhpdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdwaFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZsdXh0aW1lLmNsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmdGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mb250LWZvbnRmb3JnZS1zZmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnJhbWVtYWtlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZtXCIsIFwiZnJhbWVcIiwgXCJtYWtlclwiLCBcImJvb2tcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mcmVlbG9nLmNvbWljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZyb2dhbnMuZm5jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mcm9nYW5zLmx0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnNjLndlYmxhdW5jaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmRvY3V3b3Jrc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppZmlsbS5mYi5kb2N1d29ya3MuYmluZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmRvY3V3b3Jrcy5jb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuamZpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9hMlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXMzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2EzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5c2dwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmc1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5c3Byc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJoMlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5hcnQtZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmFydDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRkZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRkZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kb2N1d29ya3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZHdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzLmJpbmRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhiZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kb2N1d29ya3MuY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5oYnBsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1dC1taXNuZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnV0b2luK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnV0b2luK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdXp6eXNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnpzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2E0Z2gucGFzc3BvcnQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbm9tYXRpeC50dXhlZG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0eGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW5vemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRpY3MuZ3JkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28uY2F0bWV0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLmVidWlsZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28uZWNsYXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5ncGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5tYW5pZmVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28ucGtnbWV0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLnhwYWtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2N1YmUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS5maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2diXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEucGluYm9hcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEuc2xpZGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2dzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEudG9vbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdndFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb21ldHJ5LWV4cGxvcmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2V4XCIsIFwiZ3JlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvbmV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd4dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb3BsYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnMndcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9zcGFjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImczd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlcmJlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbG9iYWxwbGF0Zm9ybS5jYXJkLWNvbnRlbnQtbWd0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdsb2JhbHBsYXRmb3JtLmNhcmQtY29udGVudC1tZ3QtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ214XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ214XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ251LnRhbGVyLmV4Y2hhbmdlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbnUudGFsZXIubWVyY2hhbnQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmF1ZGlvXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZG9jdW1lbnRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZG9jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZHJhd2luZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdkcmF3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZHJpdmUtc2RrXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZpbGVcIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5mb2xkZXJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZm9ybVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdmb3JtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZnVzaW9udGFibGVcIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5qYW1cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnamFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMubWFpbC1sYXlvdXRcIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5tYXBcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbWFwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMucGhvdG9cIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5wcmVzZW50YXRpb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2xpZGVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc2NyaXB0XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NjcmlwdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNob3J0Y3V0XCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc2l0ZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdzaXRlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc3ByZWFkc2hlZXRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2hlZXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy51bmtub3duXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMudmlkZW9cIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImttelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvdi5zay5lLWZvcm0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb3Yuc2suZS1mb3JtK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb3Yuc2sueG1sZGF0YWNvbnRhaW5lcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkY2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncHhzZWUubWFwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyYWZlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdxZlwiLCBcImdxc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyaWRtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtYWNjb3VudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1oZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2hmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWlkZW50aXR5LW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnaW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaW5qZWN0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncnZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdG9vbC1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3RtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXRvb2wtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdmNhcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhhbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhhbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhhbmRoZWxkLWVudGVydGFpbm1lbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6bW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYmNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGJjaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhjK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oY2wtYmlyZXBvcnRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhkdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oZXJva3UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhoZS5sZXNzb24tcGxheWVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBnbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhwZ2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1ocGlkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHBpZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLWhwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhwc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLWpseXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqbHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1wY2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1wY2x4bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjbHhsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh0dHBob25lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh5ZHJvc3RhdGl4LnNvZi1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2ZkLWhkc3R4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHlwZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh5cGVyLWl0ZW0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh5cGVyZHJpdmUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh6bi0zZC1jcm9zc3dvcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLmFmcGxpbmVkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLmVsZWN0cm9uaWMtbWVkaWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLm1pbmlwYXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcHlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0ubW9kY2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZnBcIiwgXCJsaXN0YWZwXCIsIFwibGlzdDM4MjBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0ucmlnaHRzLW1hbmFnZW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0uc2VjdXJlLWNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWNjcHJvZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljY1wiLCBcImljbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmllZWUuMTkwNVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pZ2xvYWRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlnbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltYWdlbWV0ZXIuZm9sZGVyK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbWFnZW1ldGVyLmltYWdlK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbW1lcnZpc2lvbi1pdnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpdnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbW1lcnZpc2lvbi1pdnVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpdnVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMuaW1zY2N2MXAxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmltc2NjdjFwM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubGlzLnYyLnJlc3VsdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sY29uc3VtZXJwcm9maWxlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xwcm94eStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29scHJveHkuaWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHNldHRpbmdzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xzZXR0aW5ncy5zaW1wbGUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluZm9ybWVkY29udHJvbC5ybXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3JtaXgtdmlzaW9uYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3RlY2gucHJvamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvdGVjaC5wcm9qZWN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlubm9wYXRoLndhbXAubm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluc29ycy5pZ21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZ21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcmNvbi5mb3JtbmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHB3XCIsIFwieHB4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJnZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpMmdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcnRydXN0LmRpZ2lib3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJ0cnVzdC5ubmNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludHUucWJvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicWJvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50dS5xZnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxZnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGZzLmlwbnMtcmVjb3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwbGQuY2FyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwbGQuZGFnLWNib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBsZC5kYWctanNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGxkLnJhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLmNhdGFsb2dpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIuY29uY2VwdGl0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5rbm93bGVkZ2VpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIubmV3c2l0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5uZXdzbWVzc2FnZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLnBhY2thZ2VpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIucGxhbm5pbmdpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdW5wbHVnZ2VkLnJjcHJvZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJjcHJvZmlsZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlyZXBvc2l0b3J5LnBhY2thZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcy14cHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cHJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pc2FjLmZjc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZjc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlzbzExNzgzLTEwK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1kaXJlY3Rvcnktc2VydmljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1qcG5zdG9yZS13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtcGF5bWVudC13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtcmVnaXN0cmF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXJlZ2lzdHJhdGlvbi13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtc2V0c3RvcmUtd2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXZlcmlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC12ZXJpZmljYXRpb24td2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmpjcC5qYXZhbWUubWlkbGV0LXJtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJtc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmppc3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqaXNwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuam9vc3Quam9kYS1hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiam9kYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmpzay5pc2RuLW5nblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rYWhvb3R6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3R6XCIsIFwia3RyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmthcmJvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImthcmJvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rY2hhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaHJ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtmb3JtdWxhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2ZvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtpdmlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmx3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtvbnRvdXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrb25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua3ByZXNlbnRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtwclwiLCBcImtwdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rc3ByZWFkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3NwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmt3b3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3dkXCIsIFwia3d0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtlbmFtZWFhcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodGtlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2V5bWFuLmttcCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2V5bWFuLmtteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5raWRzcGlyYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJraWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5raW5hclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtuZVwiLCBcImtucFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtvYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJza3BcIiwgXCJza2RcIiwgXCJza3RcIiwgXCJza21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rb2Rhay1kZXNjcmlwdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3NlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGFzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxhcy5sYXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxhcy5sYXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsYXN4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sYXN6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGRldi5wcm9kdWN0bGljZW5zaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxlYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxpYmVydHktcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sbGFtYWdyYXBoaWNzLmxpZmUtYmFsYW5jZS5kZXNrdG9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGJkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGxhbWFncmFwaGljcy5saWZlLWJhbGFuY2UuZXhjaGFuZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsYmVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb2dpcGlwZS5jaXJjdWl0K3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb29tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLTEtMi0zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiMTIzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtYXBwcm9hY2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1mcmVlbGFuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1ub3Rlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5zZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLW9yZ2FuaXplclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9yZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLXNjcmVlbmNhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLXdvcmRwcm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsd3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYWNwb3J0cy5wb3J0cGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG9ydHBrZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcGJveC12ZWN0b3ItdGlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm12dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0uYWN0aW9udG9rZW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFybGluLmRybS5jb25mdG9rZW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFybGluLmRybS5saWNlbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0ubWRjZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXNvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWF4YXIuYXJjaGl2ZS4zdHoremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1heG1pbmQubWF4bWluZC1kYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tY2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtY2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWRsLW1ic2RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lZGNhbGNkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWMxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVkaWFzdGF0aW9uLmNka2V5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RrZXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZWRpY2FsaG9sb2RlY2sucmVjb3JkeHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVyaWRpYW4tc2xpbmdzaG90XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lcm1haWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWZlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm13ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1mbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNybytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9ncmFmeC5mbG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbG9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb2dyYWZ4LmlneFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlneFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3Jvc29mdC5wb3J0YWJsZS1leGVjdXRhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3Jvc29mdC53aW5kb3dzLnRodW1ibmFpbC1jYWNoZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWVsZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWlmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWluaXNvZnQtaHAzMDAwLXNhdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWl0c3ViaXNoaS5taXN0eS1ndWFyZC50cnVzdHdlYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMuZGFmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGFmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLmRpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRpc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5tYmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYmtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMubXF5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXF5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1zbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5wbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMudHhmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHhmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9kbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3BodW4uYXBwbGljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcG5cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3BodW4uY2VydGlmaWNhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmFkc2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmZpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUuZ290YXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmttclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUudHRjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS53ZW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuaXBybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3ppbGxhLnh1bCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInh1bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLTNtZmRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWFydGdhbHJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2lsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtYXNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWNhYi1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2FiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtY29sb3IuaWNjcHJvZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxzXCIsIFwieGxtXCIsIFwieGxhXCIsIFwieGxjXCIsIFwieGx0XCIsIFwieGx3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYWRkaW4ubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0LmJpbmFyeS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHNiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsdG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlb3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1odG1saGVscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNobVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWltc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImltc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWxybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5hY3RpdmV4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZXRoZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGhteFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLW9wZW50eXBlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vdXRsb29rXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGFja2FnZS5vYmZ1c2NhdGVkLW9wZW50eXBlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGtpLnNlY2NhdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2F0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGtpLnN0bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGxheXJlYWR5LmluaXRpYXRvcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHB0XCIsIFwicHBzXCIsIFwicG90XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5hZGRpbi5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcGFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5wcmVzZW50YXRpb24ubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHB0bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuc2xpZGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2xkbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuc2xpZGVzaG93Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwc21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBvdG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcmludGRldmljZWNhcGFiaWxpdGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcmludGluZy5wcmludHRpY2tldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXByaW50c2NoZW1hdGlja2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXByb2plY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcHBcIiwgXCJtcHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy10bmVmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXZpc2lvLnZpZXdlclwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZkeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3MuZGV2aWNlcGFpcmluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLm53cHJpbnRpbmcub29iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3MucHJpbnRlcnBhaXJpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy53c2Qub29iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLmxpYy1jaGxnLXJlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5saWMtcmVzcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5tZXRlci1jaGxnLXJlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5tZXRlci1yZXNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmQuZG9jdW1lbnQubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG9jbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmQudGVtcGxhdGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG90bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmtzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3BzXCIsIFwid2tzXCIsIFwid2NtXCIsIFwid2RiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd3BsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3BsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMteHBzZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tc2EtZGlzay1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNlcVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zZ3BhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXNpZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXVsdGlhZC5jcmVhdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11bHRpYWQuY3JlYXRvci5jaWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXVzaWMtbmlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdXNpY2lhblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm11c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11dmVlLnN0eWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXN0eVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm15bmZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGFnbGV0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmFjYW1hci55YnJpZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmF0by5iaW5kaW5nZGF0YW9iamVjdCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hdG8uYmluZGluZ2RhdGFvYmplY3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hdG8uYmluZGluZ2RhdGFvYmplY3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZG9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuaWVwZCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmNkLmNvbnRyb2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmNkLnJlZmVyZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZWFyc3QuaW52K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZWJ1bWluZC5saW5lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5lcnZhbmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmV0ZnB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5ldXJvbGFuZ3VhZ2Uubmx1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmx1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmltblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uaW50ZW5kby5uaXRyby5yb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmludGVuZG8uc25lcy5yb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubml0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm50ZlwiLCBcIm5pdGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC1kaXJlY3RvcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC1zZWFsZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC13ZWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubndcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5jYXRhbG9nc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5jb25tbCt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5jb25tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5pcHR2LmNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5pc2RzLXJhZGlvLXByZXNldHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubGFuZG1hcmsrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubGFuZG1hcmsreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubGFuZG1hcmtjb2xsZWN0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5hYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubi1nYWdlLmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuZ2RhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5zeW1iaWFuLmluc3RhbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm4tZ2FnZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm5jZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5wY2Qrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucGNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnJhZGlvLXByZXNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJwc3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5yYWRpby1wcmVzZXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnBzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmVkbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVkbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmVkeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVkeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5jb250ZW50LXNoYXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5maWxlLXRyYW5zZmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5vZ3dfcmVtb3RlLWFjY2Vzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuc2lwLXRhX3JlbW90ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuc2lwLXRhX3RjcF9zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FpLndvcmtmbG93c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYWkud29ya2Zsb3dzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYWkud29ya2Zsb3dzK3lhbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmJhc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmNoYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmNoYXJ0LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmRhdGFiYXNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZm9ybXVsYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5mb3JtdWxhLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RmdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5ncmFwaGljc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5ncmFwaGljcy10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5pbWFnZS10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5wcmVzZW50YXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC1tYXN0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC1tYXN0ZXItdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC13ZWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYm5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2NmK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2NpLmltYWdlLm1hbmlmZXN0LnYxK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vZnRuLmwxMG4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuY29udGVudGFjY2Vzc2Rvd25sb2FkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuY29udGVudGFjY2Vzc3N0cmVhbWluZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNzcGctaGV4YmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuZGFlLnN2Zyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmRhZS54aHRtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLm1pcHB2Y29udHJvbG1lc3NhZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5wYWUuZ2VtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuc3BkaXNjb3ZlcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5zcGRsaXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYudWVwcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYudXNlcnByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2xwYy1zdWdhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLXNjd3MtY29uZmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS1zY3dzLWh0dHAtcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEtc2N3cy1odHRwLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5hc3NvY2lhdGVkLXByb2NlZHVyZS1wYXJhbWV0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LmRybS10cmlnZ2VyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LmltZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QubHRrbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Qubm90aWZpY2F0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5wcm92aXNpb25pbmd0cmlnZ2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zZ2Jvb3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNnZGQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNnZHVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNpbXBsZS1zeW1ib2wtY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zbWFydGNhcmQtdHJpZ2dlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zcHJvdit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc3RrbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLWFkZHJlc3MtYm9vayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLWZlYXR1cmUtaGFuZGxlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLXBjYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLXN1YnMtaW52aXRlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItdXNlci1wcmVmcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZGNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kY2RjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kZDIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZDJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZHJtLnJpc2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmdyb3VwLXVzYWdlLWxpc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmx3bTJtK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmx3bTJtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEubHdtMm0rdGx2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wYWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5kZXRhaWxlZC1wcm9ncmVzcy1yZXBvcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5maW5hbC1yZXBvcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5ncm91cHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5pbnZvY2F0aW9uLWRlc2NyaXB0b3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5vcHRpbWl6ZWQtcHJvZ3Jlc3MtcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wdXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5zY2lkbS5tZXNzYWdlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEueGNhcC1kaXJlY3RvcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hZHMtZW1haWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFkcy1maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hZHMtZm9sZGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hbG9jLXN1cGwtaW5pdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YW14XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGF0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhdHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub252aWYubWV0YWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmJsb3guZ2FtZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9iZ3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuYmxveC5nYW1lLWJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuZXllLm9lYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVub2ZmaWNlb3JnLmV4dGVuc2lvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3h0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnN0cmVldG1hcC5kYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3NtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnRpbWVzdGFtcHMub3RzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW52cGkuZHNweCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuY3VzdG9tLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuY3VzdG9teG1scHJvcGVydGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5jaGFydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuY2hhcnRzaGFwZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1jb2xvcnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1kYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtbGF5b3V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtc3R5bGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZXh0ZW5kZWQtcHJvcGVydGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5jb21tZW50YXV0aG9ycyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5jb21tZW50cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5oYW5kb3V0bWFzdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLm5vdGVzbWFzdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLm5vdGVzc2xpZGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHB0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbi5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNwcm9wcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsZHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZWxheW91dCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZW1hc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcHN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93Lm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGV1cGRhdGVpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRhYmxlc3R5bGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRhZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwb3R4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGVtcGxhdGUubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC52aWV3cHJvcHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jYWxjY2hhaW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jaGFydHNoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29tbWVudHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb25uZWN0aW9ucyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmRpYWxvZ3NoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuZXh0ZXJuYWxsaW5rK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RjYWNoZWRlZmluaXRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdGNhY2hlcmVjb3Jkcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90dGFibGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5xdWVyeXRhYmxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucmV2aXNpb25oZWFkZXJzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucmV2aXNpb25sb2creG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGFyZWRzdHJpbmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXRtZXRhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnN0eWxlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGVzaW5nbGVjZWxscyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGx0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGUubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnVzZXJuYW1lcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnZvbGF0aWxlZGVwZW5kZW5jaWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwud29ya3NoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lb3ZlcnJpZGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudm1sZHJhd2luZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmNvbW1lbnRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkb2N4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudC5nbG9zc2FyeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50Lm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5lbmRub3Rlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmZvbnR0YWJsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmZvb3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmZvb3Rub3Rlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLm51bWJlcmluZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnNldHRpbmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuc3R5bGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkb3R4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZS5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwud2Vic2V0dGluZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5jb3JlLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5kaWdpdGFsLXNpZ25hdHVyZS14bWxzaWduYXR1cmUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5yZWxhdGlvbnNoaXBzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9yYWNsZS5yZXNvdXJjZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3JhbmdlLmluZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2EubmV0ZGVwbG95XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9zZ2VvLm1hcGd1aWRlLnBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZ3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dpLmJ1bmRsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dpLmRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dpLnN1YnN5c3RlbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVzYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm90cHMuY3Qta2lwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm94bGkuY291bnRncmFwaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYWdlcmR1dHkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhbG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZGJcIiwgXCJwcWFcIiwgXCJvcHJjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGFub3BseVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYW9zLnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYXRlbnRkaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhdGllbnRlY29tbXNkb2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGF3YWFmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGF3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGNvc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wZy5mb3JtYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wZy5vc2FzbGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlaTZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5waWFjY2Vzcy5hcHBsaWNhdGlvbi1saWNlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBpY3NlbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVmaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wbWkud2lkZ2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb2MuZ3JvdXAtYWR2ZXJ0aXNlbWVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb2NrZXRsZWFyblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwYmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI2LXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyN1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3LXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNzVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNzUtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcmVtaW5ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcmV2aWV3c3lzdGVtcy5ib3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJib3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcm9jcmF0ZS5icnVzaHNldFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJydXNoc2V0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJvY3JlYXRlLmJydXNoXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnJ1c2hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcm9jcmVhdGUuZHJlYW1cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJkcm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcm90ZXVzLm1hZ2F6aW5lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWd6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHNmc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wdC5tdW5kdXNtdW5kaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wdWJsaXNoYXJlLWRlbHRhLXRyZWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxcHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wdmkucHRpZDFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwdGlkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHdnLW11bHRpcGxleGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnB3Zy14aHRtbC1wcmludCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhodG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5xdWFsY29tbS5icmV3LWFwcC1yZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucXVhcmFudGFpbmVuZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucXVhcmsucXVhcmt4cHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxeGRcIiwgXCJxeHRcIiwgXCJxd2RcIiwgXCJxd3RcIiwgXCJxeGxcIiwgXCJxeGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5xdW9iamVjdC1xdW94ZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tb21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LWNvbmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LWNvbm4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LWRpYWxvZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQtc3RyZWFtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1jb25mK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2creG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1iYXNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctZmF4LWRldGVjdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWZheC1zZW5kcmVjdit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWdyb3VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctc3BlZWNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctdHJhbnNmb3JtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhaW5zdG9yLmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFwaWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVhbHZuYy5iZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZWNvcmRhcmUubXVzaWN4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZWNvcmRhcmUubXVzaWN4bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdXNpY3htbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlbHBpcGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVubGVhcm4ucmxwcmludFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZXNpbGllbnQubG9naWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVzdGZ1bCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmlnLmNyeXB0b25vdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcnlwdG9ub3RlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmltLmNvZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY29kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucm4tcmVhbG1lZGlhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJuLXJlYWxtZWRpYS12YnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJtdmJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yb3V0ZTY2Lmxpbms2Nit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxpbms2NlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJzLTI3NHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucnVja3VzLmRvd25sb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnMzc21zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNhaWxpbmd0cmFja2VyLnRyYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2JtLmNpZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zYm0ubWlkMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zY3JpYnVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC4zZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLmNzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuZG9jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5lbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLm1odFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQubmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5wcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLnRpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLnhsc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5odG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLnBkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWVtYWlsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2Vpcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VtYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VtZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW1mXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhZGUtc2F2ZS1maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmZvcm1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuZm9ybXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuaW50ZXJjaGFuZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXBrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hvb3Rwcm9vZitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hvcGtpY2sranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNocFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2lncm9rLnNlc3Npb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2ltdGVjaC1taW5kbWFwcGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHdkXCIsIFwidHdkc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNpcmVuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5za2V0Y2hvbWV0cnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc21hZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1tZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNtYXJ0Lm5vdGVib29rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNtYXJ0LnRlYWNoZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZWFjaGVyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc21pbnRpby5wb3J0YWxzLmFyY2hpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc25lc2Rldi1wYWdlLXRhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNvZnR3YXJlNjAyLmZpbGxlci5mb3JtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZm9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zb2Z0d2FyZTYwMi5maWxsZXIuZm9ybS14bWwtemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNvbGVudC5zZGttK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RrbVwiLCBcInNka2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zcG90ZmlyZS5keHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkeHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zcG90ZmlyZS5zZnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zcWxpdGUzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNzcy1jb2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3NzLWR0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zc3MtbnRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5jYWxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uZHJhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmltcHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5tYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ud3JpdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZHdcIiwgXCJ2b3JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ud3JpdGVyLWdsb2JhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2dsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RlcG1hbmlhLnBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbXppcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0ZXBtYW5pYS5zdGVwY2hhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0cmVldC1zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLndhZGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YWRsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5jYWxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmNhbGMudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuZHJhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3hkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5kcmF3LnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmltcHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuaW1wcmVzcy50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5tYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3h3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXIuZ2xvYmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeGdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlci50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3R3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VzLWNhbGVuZGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3VzXCIsIFwic3VzcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN2ZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN3aWZ0dmlldy1pY3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3lieWwubW9sMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeWNsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeWZ0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW1iaWFuLmluc3RhbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpc1wiLCBcInNpc3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbSt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0ubm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbWRkZit3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG1kZGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbXRuZHMrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtdG5kcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kcy5ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudGFibGVzY2hlbWEranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRhby5pbnRlbnQtbW9kdWxlLWFyY2hpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0YW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50Y3BkdW1wLnBjYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY2FwXCIsIFwiY2FwXCIsIFwiZG1wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudGhpbmstY2VsbC5wcHR0Yytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudG1kLm1lZGlhZmxleC5hcGkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRtb2JpbGUtbGl2ZXR2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widG1vXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJpLm9uZXNvdXJjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cmlkLnRwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRwdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRyaXNjYXBlLm14c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRydWVhcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cmFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cnVlZG9jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnViaXNvZnQud2VicGxheWVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVmZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1ZmRcIiwgXCJ1ZmRsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudWljLm9zZG0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVpcS50aGVtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV0elwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVtYWppblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVtalwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVuaXR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widW5pdHl3ZWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51b21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widW9tbFwiLCBcInVvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5hbGVydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmFsZXJ0LXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuYmVhcmVyLWNob2ljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmJlYXJlci1jaG9pY2Utd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jYWNoZW9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2FjaGVvcC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNoYW5uZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jaGFubmVsLXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3Qtd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0Y21kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdGNtZC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LnNpZ25hbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cmktbWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZhbHZlLnNvdXJjZS5tYXRlcmlhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52Y3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZC1zdHVkeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZWN0b3J3b3Jrc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcmFpc29uLnRzbS1yZXBvcnQrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJhaXNvbi50c20tcmVwb3J0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJpbWF0cml4LnZjYXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyaXRvbmUuYWlvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyeWFudC50aGluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcy5lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmlkc29mdC52aWRjb25mZXJlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZpc2lvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnNkXCIsIFwidnN0XCIsIFwidnNzXCIsIFwidnN3XCIsIFwidnNkeFwiLCBcInZ0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZpc2lvbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZpc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZpdmlkZW5jZS5zY3JpcHRmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZvY2Fsc2hhcGVyLnZzcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudnNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLnNpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAuc2xjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhcC53YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2J4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud21sY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtbGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud21sc2NyaXB0Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtbHNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FzbWZsb3cud2FmbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53ZWJ0dXJib1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInd0YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndmYS5kcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2ZhLnAycFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53ZmEud3NjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndpbmRvd3MuZGV2aWNlcGFpcmluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53bWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud21mLmJvb3RzdHJhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLm1hdGhlbWF0aWNhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvbGZyYW0ubWF0aGVtYXRpY2EucGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLnBsYXllclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5icFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvcmRsaWZ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvcmRwZXJmZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3BkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3FkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3JxLWhwMzAwMC1sYWJlbGxlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53dC5zdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53di5jc3Ard2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3YuY3NwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnd2LnNzcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54YWNtbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGFyYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhhcmluLmNwalwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54ZWNyZXRzLWVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54ZmRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGZkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhmZGwud2ViZm9ybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bWkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUuY3BrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5kcGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLnBsYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUucHBrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS54bGltXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5odi1kaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHZzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LXZvaWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHZwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLm9wZW5zY29yZWZvcm1hdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9zZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5vcGVuc2NvcmVmb3JtYXQub3NmcHZnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3NmcHZnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnJlbW90ZS1zZXR1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuc21hZi1hdWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNhZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5zbWFmLXBocmFzZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS50aHJvdWdoLW5nblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEudHVubmVsLXVkcGVuY2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhb3dlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWVsbG93cml2ZXItY3VzdG9tLW1lbnVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC56dWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6aXJcIiwgXCJ6aXJ6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuenphenouZGVjayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInphelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm9pY2V4bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2eG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92b3VjaGVyLWNtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92b3VjaGVyLWp3cytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZwK2Nvc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92cCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92cS1ydGNweHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93YXNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YXNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93YXRjaGVyaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2VicHVzaC1vcHRpb25zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dob2lzcHAtcXVlcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aG9pc3BwLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2lkZ2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2d0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aW5obHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhscFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2l0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dvcmRwZXJmZWN0NS4xXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd3NkbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndzZGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dzcG9saWN5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3Nwb2xpY3lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiN3pcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYWJpd29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWJ3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFjZS1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYW1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFwcGxlLWRpc2tpbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG1nXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFyalwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFyalwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hdXRob3J3YXJlLWJpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWFiXCIsIFwieDMyXCIsIFwidTMyXCIsIFwidm94XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtbWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1zZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFhc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iY3Bpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmNwaW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYmRvY1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkb2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYml0dG9ycmVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widG9ycmVudFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ibGVuZGVyXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmxlbmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYmxvcmJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJsYlwiLCBcImJsb3JiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJ6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJ6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJ6aXAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiejJcIiwgXCJib3pcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2JyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjYnJcIiwgXCJjYmFcIiwgXCJjYnRcIiwgXCJjYnpcIiwgXCJjYjdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2RsaW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2ZzLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNmc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jaGF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaGF0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNoZXNzLXBnblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGduXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNocm9tZS1leHRlbnNpb25cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJjcnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY29jb2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2NvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNvbXByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNvbXByZXNzZWRcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY29uZmVyZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNwaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNwaW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY3NoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc2hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZGViXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kZWJpYW4tcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGViXCIsIFwidWRlYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kZ2MtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGdjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRpcmVjdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkaXJcIiwgXCJkY3JcIiwgXCJkeHJcIiwgXCJjc3RcIiwgXCJjY3RcIiwgXCJjeHRcIiwgXCJ3M2RcIiwgXCJmZ2RcIiwgXCJzd2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZG9vbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2FkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWR0Ym5jeCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWR0Ym9vayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHRiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWR0YnJlc291cmNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZHZpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdmlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZW52b3lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV2eVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ldmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV2YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWJkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtZG9zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtZnJhbWVtYWtlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWdob3N0c2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1saWJncnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1saW51eC1wc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXBjZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtc25mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1zcGVlZG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1zdW5vcy1uZXdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtdHlwZTFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBmYVwiLCBcInBmYlwiLCBcInBmbVwiLCBcImFmbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXZmb250XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZyZWVhcmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFyY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mdXR1cmVzcGxhc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1nY2EtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2NhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWdsdWx4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1bHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ251bWVyaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdudW1lcmljXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWdyYW1wcy14bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdyYW1wc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ndGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJndGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWd6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaGRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwaHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaW5zdGFsbC1pbnN0cnVjdGlvbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImluc3RhbGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXB5bmIranNvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXB5bmJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXNvOTY2MC1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXNvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWl3b3JrLWtleW5vdGUtc2Zma2V5XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2V5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWl3b3JrLW51bWJlcnMtc2ZmbnVtYmVyc1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm51bWJlcnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXdvcmstcGFnZXMtc2ZmcGFnZXNcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJwYWdlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1qYXZhLWFyY2hpdmUtZGlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYXJkaWZmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWphdmEtam5scC1maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqbmxwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gta2VlcGFzczJcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJrZGJ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWxhdGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsYXRleFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1sdWEtYnl0ZWNvZGVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJsdWFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWx6aC1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsemhcIiwgXCJsaGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbWFrZXNlbGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnVuXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1pZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWllXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1vYmlwb2NrZXQtZWJvb2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByY1wiLCBcIm1vYmlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXBlZ3VybFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMtYXBwbGljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcGxpY2F0aW9uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLXNob3J0Y3V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsbmtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMtd21kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMtd216XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMteGJhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGJhcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2FjY2Vzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWRiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zYmluZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNjYXJkZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3JkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zZG9zLXByb2dyYW1cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJleGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNkb3dubG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhlXCIsIFwiZGxsXCIsIFwiY29tXCIsIFwiYmF0XCIsIFwibXNpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zbWVkaWF2aWV3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdmJcIiwgXCJtMTNcIiwgXCJtMTRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNtZXRhZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21mXCIsIFwid216XCIsIFwiZW1mXCIsIFwiZW16XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zbW9uZXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ueVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc3B1Ymxpc2hlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHViXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zc2NoZWR1bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc3Rlcm1pbmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXN3cml0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3JpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW5ldGNkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmNcIiwgXCJjZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbnMtcHJveHktYXV0b2NvbmZpZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW56YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnpiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBlcmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxcIiwgXCJwbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1waWxvdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmNcIiwgXCJwZGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGtjczEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwMTJcIiwgXCJwZnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGtjczctY2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwN2JcIiwgXCJzcGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGtjczctY2VydHJlcXJlc3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInA3clwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1wa2ktbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcmFyLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1yZWRoYXQtcGFja2FnZS1tYW5hZ2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJwbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1yZXNlYXJjaC1pbmZvLXN5c3RlbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJpc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zZWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNoYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNoYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzd2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2lsdmVybGlnaHQtYXBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3R1ZmZpdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2l0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN0dWZmaXR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaXR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN1YnJpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3J0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN2NGNwaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2NGNwaW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3Y0Y3JjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdjRjcmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdDN2bS1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widDNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGFkc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2FtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0YXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0Y2xcIiwgXCJ0a1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10ZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRleFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10ZXgtdGZtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0Zm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGV4aW5mb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGV4aW5mb1wiLCBcInRleGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGdpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2JqXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXVzdGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1c3RhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LWhkZFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGRkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtb3ZhXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdmFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1vdmZcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm92ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZib3hcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZib3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12Ym94LWV4dHBhY2tcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Ym94LWV4dHBhY2tcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12ZGlcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZkaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZoZFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmhkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdm1ka1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widm1ka1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC13YWlzLXNvdXJjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3JjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXdlYi1hcHAtbWFuaWZlc3QranNvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2ViYXBwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteDUwOS1jYS1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGVyXCIsIFwiY3J0XCIsIFwicGVtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXg1MDktY2EtcmEtY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteDUwOS1uZXh0LWNhLWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXhmaWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZpZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14bGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXhwaW5zdGFsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHBpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXh6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4elwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC16aXAtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInppcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC16bWFjaGluZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiejFcIiwgXCJ6MlwiLCBcInozXCIsIFwiejRcIiwgXCJ6NVwiLCBcIno2XCIsIFwiejdcIiwgXCJ6OFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veDQwMC1icFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hhY21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGFtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGFtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1hdHQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YXZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtY2Fwcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhjYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1kaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWVsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGVsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWVycm9yK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1ucyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhuc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNvbi1jb25mZXJlbmNlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y29uLWNvbmZlcmVuY2UtaW5mby1kaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGVuYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhlbmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hmZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94aHRtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhodG1sXCIsIFwieGh0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94aHRtbC12b2ljZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGxpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG1sXCIsIFwieHNsXCIsIFwieHNkXCIsIFwicm5nXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bWwtZHRkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htbC1leHRlcm5hbC1wYXJzZWQtZW50aXR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1sLXBhdGNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1wcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hvcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhvcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veHByb2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veHNsdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhzbFwiLCBcInhzbHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hzcGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhzcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3h2K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhtbFwiLCBcInhodm1sXCIsIFwieHZtbFwiLCBcInh2bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ5YW5nXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLWRhdGErY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctZGF0YStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLXBhdGNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctcGF0Y2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLXNpZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95aW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ5aW5cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInppcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vemlwK2RvdGxvdHRpZVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxvdHRpZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vemxpYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3pzdGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby8zMmthZHBjbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvLzNncHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZ3BwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby8zZ3BwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFkdHNcIiwgXCJhYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FjM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FkcGNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FtclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFtclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYW1yLXdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYW1yLXdiK1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FwdHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hc2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hdHJhYy1hZHZhbmNlZC1sb3NzbGVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2F0cmFjLXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hdHJhYzNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9iYXNpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF1XCIsIFwic25kXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9idjE2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYnYzMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2NsZWFybW9kZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2NuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZGF0MTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kbHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kc3ItZXMyMDExMDhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kc3ItZXMyMDIwNTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kc3ItZXMyMDIyMTFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kc3ItZXMyMDIyMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2R2aTRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9lYWMzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZW5jYXBydHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyYy1xY3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmMxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjYjBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjYjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjbndcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjbncwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY253MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmN3YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmN3YjBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjd2IxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZmxhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2ZsZXhmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9md2RyZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzExLTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzE5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjIxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjYtMTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI2LTI0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyNi0zMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjYtNDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjkxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI5ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2dzbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2dzbS1lZnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nc20taHItMDhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9pbGJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vaXAtbXJfdjIuNVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2lzYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2wxNlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2wyMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2wyNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2w4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbHBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWF0cm9za2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWVscDEyMDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tZWxwMjQwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21lbHA2MDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9taGFzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWlkaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWlkXCIsIFwibWlkaVwiLCBcImthclwiLCBcInJtaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWlkaS1jbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbW9iaWxlLXhtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14bWZcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wM1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wM1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTRhXCIsIFwibXA0YVwiLCBcIm00YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXA0YS1sYXRtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXBhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXBhLXJvYnVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGdhXCIsIFwibXAyXCIsIFwibXAyYVwiLCBcIm1wM1wiLCBcIm0yYVwiLCBcIm0zYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXBlZzQtZ2VuZXJpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL211c2VwYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9vZ2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZ2FcIiwgXCJvZ2dcIiwgXCJzcHhcIiwgXCJvcHVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9vcHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGNtYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3BjbWEtd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wY211XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGNtdS13YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3Bycy5zaWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9xY2VscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3JhcHRvcmZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3JlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3J0cC1lbmMtYWVzY20xMjhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ydHAtbWlkaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3J0cGxvb3BiYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcnR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vczNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzM21cIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NjaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zaWxrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaWxcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NtdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3Ntdi1xY3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zbXYwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc29mYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NwLW1pZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zcGVleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3QxNDBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdDM4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdGVsZXBob25lLWV2ZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdGV0cmFfYWNlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90ZXRyYV9hY2VscF9iYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RvbmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90c3ZjaXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby91ZW1jbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdWxwZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdXNhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZkdmlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bXItd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuM2dwcC5pdWZwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLjRzYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5hdWRpb2tvelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNpc2NvLm5zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jbWxlcy5yYWRpby1ldmVudHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY25zLmFucDFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY25zLmluZjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZGVjZS5hdWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2YVwiLCBcInV2dmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kaWdpdGFsLXdpbmRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW9sXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZGxuYS5hZHRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LmhlYWFjLjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkuaGVhYWMuMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5tbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkubXBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LnBsMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5wbDJ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LnBsMnpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkucHVsc2UuMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kcmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdHNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kdHMuaGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdHNoZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmR0cy51aGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHZiLmZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZXZlcmFkLnBsalwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5obnMuYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubHVjZW50LnZvaWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHZwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubXMtcGxheXJlYWR5Lm1lZGlhLnB5YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB5YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm5va2lhLm1vYmlsZS14bWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubm9ydGVsLnZia1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5udWVyYS5lY2VscDQ4MDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlY2VscDQ4MDBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5udWVyYS5lY2VscDc0NzBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlY2VscDc0NzBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5udWVyYS5lY2VscDk2MDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlY2VscDk2MDBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5vY3RlbC5zYmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQucHJlc29udXMubXVsdGl0cmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5xY2VscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnJoZXRvcmV4LjMya2FkcGNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnJpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJpcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnJuLXJlYWxhdWRpb1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5tcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnZteC5jdnNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLndhdmVcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92b3JiaXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92b3JiaXMtY29uZmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vd2F2XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2F2XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby93YXZlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2F2XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby93ZWJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LWFhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LWFpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFpZlwiLCBcImFpZmZcIiwgXCJhaWZjXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LWNhZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2FmXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LWZsYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbTRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm00YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tYXRyb3NrYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWthXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LW1wZWd1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm0zdVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tcy13YXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndheFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tcy13bWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1wbi1yZWFsYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhbVwiLCBcInJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXBuLXJlYWxhdWRpby1wbHVnaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1yZWFsYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtdHRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXdhdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2F2XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG1cIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY2R4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZHhcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY2lmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY21kZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY21kZlwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1jbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1jc21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc21sXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LXBkYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC14eXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInh5elwiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC9jb2xsZWN0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHRjXCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L290ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RmXCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L3NmbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJmb250L3R0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHRmXCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L3dvZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3b2ZmXCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L3dvZmYyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid29mZjJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2FjZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleHJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2FwbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcG5nXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hdmNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXZjaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYXZjc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF2Y3NcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2F2aWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdmlmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9ibXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJtcFwiLCBcImRpYlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvY2dtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2dtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9kaWNvbS1ybGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcmxlXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9kcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcHhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2VtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZml0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZpdHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2czZmF4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZzNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2dpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlaWNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlaWMtc2VxdWVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWljc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlaWYtc2VxdWVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWlmc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVqMmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWoyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9pZWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2oyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL2phaWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYWlpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qYWlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFpc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvamxzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamxzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcDJcIiwgXCJqcGcyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBnXCIsIFwianBlZ1wiLCBcImpwZVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanBoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBoXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcGhjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamhjXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcG1cIiwgXCJqcGdtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcHhcIiwgXCJqcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4bFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHJhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhyYVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvanhyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4cnNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4c1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhzY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4c2NcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4c2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHNpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uva3R4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3R4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9rdHgyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3R4MlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvbmFwbHBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcGpwZWdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqZmlmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9wbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3Bycy5idGlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnRpZlwiLCBcImJ0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcHJzLnB0aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB0aVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcHdnLXJhc3RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3NnaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2dpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9zdmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdmdcIiwgXCJzdmd6XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS90MzhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0MzhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3RpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0aWZcIiwgXCJ0aWZmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS90aWZmLWZ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuYWRvYmUucGhvdG9zaG9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwc2RcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5haXJ6aXAuYWNjZWxlcmF0b3IuYXp2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXp2XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5jbnMuaW5mMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5kZWNlLmdyYXBoaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dmlcIiwgXCJ1dnZpXCIsIFwidXZnXCIsIFwidXZ2Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmRqdnVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkanZ1XCIsIFwiZGp2XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZHZiLnN1YnRpdGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ViXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZHdnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHdnXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZHhmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHhmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZmFzdGJpZHNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmJzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZnB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnB4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZnN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnN0XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZnVqaXhlcm94LmVkbWljcy1tbXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbXJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5mdWppeGVyb3guZWRtaWNzLXJsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJsY1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmdsb2JhbGdyYXBoaWNzLnBnYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5taWNyb3NvZnQuaWNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNvXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubWl4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1vemlsbGEuYXBuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5tcy1kZHNcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRkc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1zLW1vZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZGlcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5tcy1waG90b1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2RwXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubmV0LWZweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5weFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnBjby5iMTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiMTZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5yYWRpYW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5zZWFsZWQucG5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLmdpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5qcGdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuc3ZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnRlbmNlbnQudGFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGFwXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQudmFsdmUuc291cmNlLnRleHR1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2dGZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC53YXAud2JtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndibXBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC54aWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGlmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuemJydXNoLnBjeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjeFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvd2VicFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYnBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3dtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC0zZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNkc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1hZG9iZS1kbmdcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJkbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtY211LXJhc3RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWNteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY214XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWVtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtZnJlZWhhbmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZoXCIsIFwiZmhjXCIsIFwiZmg0XCIsIFwiZmg1XCIsIFwiZmg3XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWljb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNvXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWpuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtbXJzaWQtaW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpZFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1tcy1ibXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibXBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcGN4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcGljdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGljXCIsIFwicGN0XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBvcnRhYmxlLWFueW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG5tXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBvcnRhYmxlLWJpdG1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGJtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBvcnRhYmxlLWdyYXltYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBnbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wb3J0YWJsZS1waXhtYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1yZ2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJnYlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC10Z2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRnYVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC13bWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXhiaXRtYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhibVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC14Y2ZcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXhwaXhtYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC14d2luZG93ZHVtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHdkXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2JodHRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9jcGltXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9kZWxpdmVyeS1zdGF0dXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2Rpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICAgICBcImRpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZXh0ZXJuYWwtYm9keVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZmVlZGJhY2stcmVwb3J0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9nbG9iYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1OG1zZ1wiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9nbG9iYWwtZGVsaXZlcnktc3RhdHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widThkc25cIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZ2xvYmFsLWRpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInU4bWRuXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2dsb2JhbC1oZWFkZXJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widThoZHJcIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvaHR0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvaW1kbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvbWxzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9uZXdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL29odHRwLXJlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvb2h0dHAtcmVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9wYXJ0aWFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9yZmM4MjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVtbFwiLCBcIm1pbWVcIiwgXCJtaHRcIiwgXCJtaHRtbFwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9zLWh0dHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvc2lwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9zaXBmcmFnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS90cmFja2luZy1zdGF0dXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3ZuZC5zaS5zaW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3ZuZC53ZmEud3NjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3NjXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC8zbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzbWZcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2U1N1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2dsdGYranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2x0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvZ2x0Zi1iaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdsYlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvaWdlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlnc1wiLCBcImlnZXNcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2p0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianRcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL21lc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2hcIiwgXCJtZXNoXCIsIFwic2lsb1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvbXRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXRsXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9vYmpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYmpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ByY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByY1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RlcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0ZXBcIiwgXCJzdHBcIiwgXCJzdHBuY1wiLCBcInAyMVwiLCBcIjIxMFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RlcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0cHhcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0ZXAremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RwelwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RlcC14bWwremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RweHpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0bFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdTNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widTNkXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuYmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJhcnlcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5jbGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGRcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5jb2xsYWRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGFlXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZHdmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHdmXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZmxhdGxhbmQuM2RtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5nZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZGxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5ncy1nZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5ncy5nZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZ3R3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3R3XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQubW9tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5tdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdHNcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5vcGVuZ2V4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2dleFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnBhcmFzb2xpZC50cmFuc21pdC5iaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4X2JcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5wYXJhc29saWQudHJhbnNtaXQudGV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhfdFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnB5dGhhLnB5b3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJweW9cIiwgXCJweW94XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQucm9zZXR0ZS5hbm5vdGF0ZWQtZGF0YS1tb2RlbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5zYXAudmRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmRzXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQudXNkYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVzZGFcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC51c2R6K3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVzZHpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC52YWx2ZS5zb3VyY2UuY29tcGlsZWQtbWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnNwXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQudnR1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnR1XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92cm1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3JsXCIsIFwidnJtbFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkK2JpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkYlwiLCBcIngzZGJ6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QrZmFzdGluZm9zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2RiXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QrdnJtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkdlwiLCBcIngzZHZ6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2RcIiwgXCJ4M2R6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QtdnJtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZHZcIl1cbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9hbHRlcm5hdGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9hcHBsZWRvdWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9ieXRlcmFuZ2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2RpZ2VzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2hlYWRlci1zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvbWl4ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvbXVsdGlsaW5ndWFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3BhcmFsbGVsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3JlbGF0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvcmVwb3J0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3NpZ25lZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC92bmQuYmludC5tZWQtcGx1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC92b2ljZS1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3gtbWl4ZWQtcmVwbGFjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jYWNoZS1tYW5pZmVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBwY2FjaGVcIiwgXCJtYW5pZmVzdFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jYWxlbmRhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljc1wiLCBcImlmYlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jYWxlbmRlclwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jbWRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInRleHQvY29mZmVlc2NyaXB0XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY29mZmVlXCIsIFwibGl0Y29mZmVlXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NxbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvY3FsLWV4cHJlc3Npb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NxbC1pZGVudGlmaWVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NzdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3N2XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2Nzdi1zY2hlbWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2RpcmVjdG9yeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZG5zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9lY21hc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2VuY2FwcnRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9lbnJpY2hlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZmhpcnBhdGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2ZsZXhmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2Z3ZHJlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZ2ZmM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZ3JhbW1hci1yZWYtbGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvaGw3djJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2h0bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh0bWxcIiwgXCJodG1cIiwgXCJzaHRtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9qYWRlXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFkZVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9qYXZhc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzXCIsIFwibWpzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2pjci1jbmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2pzeFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianN4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2xlc3NcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxlc3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbWFya2Rvd25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1kXCIsIFwibWFya2Rvd25cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbWF0aG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1tbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9tZHhcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1keFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9taXphclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvbjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibjNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcGFyYW1ldGVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3BsYWluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0eHRcIiwgXCJ0ZXh0XCIsIFwiY29uZlwiLCBcImRlZlwiLCBcImxpc3RcIiwgXCJsb2dcIiwgXCJpblwiLCBcImluaVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcm92ZW5hbmNlLW5vdGF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bycy5mYWxsZW5zdGVpbi5yc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bycy5saW5lcy50YWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkc2NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcHJzLnByb3AubG9naWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bycy50ZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9yYXB0b3JmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3JlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcmZjODIyLWhlYWRlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3JpY2h0ZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcnRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydGZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcnRwLWVuYy1hZXNjbTEyOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcnRwbG9vcGJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3J0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvc2dtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNnbWxcIiwgXCJzZ21cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvc2hhY2xjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zaGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2hleFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zbGltXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2xpbVwiLCBcInNsbVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zcGR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BkeFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zdHJpbmdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zdHlsdXNcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHlsdXNcIiwgXCJzdHlsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3QxNDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3RhYi1zZXBhcmF0ZWQtdmFsdWVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0c3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdHJvZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0XCIsIFwidHJcIiwgXCJyb2ZmXCIsIFwibWFuXCIsIFwibWVcIiwgXCJtc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC90dXJ0bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR0bFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC91bHBmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3VyaS1saXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1cmlcIiwgXCJ1cmlzXCIsIFwidXJsc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92Y2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNhcmRcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5hYmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5hc2NpaS1hcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5jdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuY3VybC5kY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGN1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmN1cmwubWN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1jdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5jdXJsLnNjdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZGViaWFuLmNvcHlyaWdodFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZG1jbGllbnRzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5kdmIuc3VidGl0bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdWJcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmVzbWVydGVjLnRoZW1lLWRlc2NyaXB0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmV4Y2hhbmdlYWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmZhbWlseXNlYXJjaC5nZWRjb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZWRcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmZpY2xhYi5mbHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5mbHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbHlcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmZtaS5mbGV4c3RvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZseFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZ21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZ3JhcGh2aXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJndlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaGFuc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmhnbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmluM2QuM2RtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNkbWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmluM2Quc3BvdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwb3RcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmlwdGMubmV3c21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaXB0Yy5uaXRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQubGF0ZXgtelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLm1vdG9yb2xhLnJlZmxleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLm1zLW1lZGlhcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLm5ldDJwaG9uZS5jb21tY2VudGVyLmNvbW1hbmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5yYWRpc3lzLm1zbWwtYmFzaWMtbGF5b3V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuc2VueC53YXJwc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuc2kudXJpY2F0YWxvZ3VlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5zb3NpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuc3VuLmoybWUuYXBwLWRlc2NyaXB0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphZFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQudHJvbGx0ZWNoLmxpbmd1aXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC52Y2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC53YXAuc2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC53YXAuc2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC53YXAud21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC53YXAud21sc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21sc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuem9vLmtjbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdnR0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZ0dFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC93Z3NsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2dzbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWFzbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic1wiLCBcImFzbVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNcIiwgXCJjY1wiLCBcImN4eFwiLCBcImNwcFwiLCBcImhcIiwgXCJoaFwiLCBcImRpY1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWNvbXBvbmVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodGNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1mb3J0cmFuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmXCIsIFwiZm9yXCIsIFwiZjc3XCIsIFwiZjkwXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtZ3d0LXJwY1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWhhbmRsZWJhcnMtdGVtcGxhdGVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJoYnNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1qYXZhLXNvdXJjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamF2YVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWpxdWVyeS10bXBsXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtbHVhXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHVhXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtbWFya2Rvd25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1rZFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LW5mb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmZvXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtb3BtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3BtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LW9yZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3JnXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtcGFzY2FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwXCIsIFwicGFzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtcHJvY2Vzc2luZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGRlXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc2Fzc1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNhc3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zY3NzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2Nzc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXNldGV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXR4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc2Z2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZnZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zdXNlLXltcFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieW1wXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtdXVlbmNvZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV1XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtdmNhbGVuZGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC12Y2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNmXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3htbC1leHRlcm5hbC1wYXJzZWQtZW50aXR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC95YW1sXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ5YW1sXCIsIFwieW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby8zZ3BwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2dwXCIsIFwiM2dwcFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vM2dwcC10dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvLzNncHAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2cyXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9hdjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ibXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2J0NjU2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vY2VsYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2R2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZW5jYXBydHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ldmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9mZnYxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZmxleGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoMjYxXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjYzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaDI2M1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2My0xOTk4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2My0yMDAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2NFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImgyNjRcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjQtcmNkb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjQtc3ZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2NVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9pc28uc2VnbWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm00c1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vanBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwZ3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2pwZWcyMDAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vanBtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcG1cIiwgXCJqcGdtXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9qeHN2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbG90dGllK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21hdHJvc2thXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbWF0cm9za2EtM2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tajJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtajJcIiwgXCJtanAyXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDFzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXAycFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wMnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0c1wiLCBcIm0ydFwiLCBcIm0ydHNcIiwgXCJtdHNcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wNFwiLCBcIm1wNHZcIiwgXCJtcGc0XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDR2LWVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wZWdcIiwgXCJtcGdcIiwgXCJtcGVcIiwgXCJtMXZcIiwgXCJtMnZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wZWc0LWdlbmVyaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9udlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL29nZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9ndlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcG9pbnRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3F1aWNrdGltZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInF0XCIsIFwibW92XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9yYXB0b3JmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9yYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ydHAtZW5jLWFlc2NtMTI4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcnRwbG9vcGJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ydHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9zY2lwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vc21wdGUyOTFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9zbXB0ZTI5Mm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby91bHBmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92YzFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92YzJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuY2N0dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLmhkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZoXCIsIFwidXZ2aFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UubW9iaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZtXCIsIFwidXZ2bVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UubXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UucGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnBcIiwgXCJ1dnZwXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS5zZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2c1wiLCBcInV2dnNcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLnZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ2XCIsIFwidXZ2dlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRpcmVjdHYubXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kaXJlY3R2Lm1wZWctdHRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRsbmEubXBlZy10dHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZHZiLmZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdmJcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5mdnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmdnRcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5obnMudmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjFkcGFyaXR5ZmVjLTEwMTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjFkcGFyaXR5ZmVjLTIwMDVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjJkcGFyaXR5ZmVjLTEwMTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjJkcGFyaXR5ZmVjLTIwMDVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLnR0c2F2Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0udHRzbXBlZzJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubW90b3JvbGEudmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubW90b3JvbGEudmlkZW9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm1wZWd1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteHVcIiwgXCJtNHVcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5tcy1wbGF5cmVhZHkubWVkaWEucHl2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHl2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubm9raWEuaW50ZXJsZWF2ZWQtbXVsdGltZWRpYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5ub2tpYS5tcDR2clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5ub2tpYS52aWRlb3ZvaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQub2JqZWN0dmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQucGxhbmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnJhZGdhbWV0dG9vbHMuYmlua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5yYWRnYW1ldHRvb2xzLnNtYWNrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5zZWFsZWQubXBlZzFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuc2VhbGVkLm1wZWc0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnNlYWxlZC5zd2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwubW92XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnV2dnUubXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ1XCIsIFwidXZ2dVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnZpdm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2aXZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC55b3V0dWJlLnl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdnA4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdnA5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vd2VibVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2VibVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1mNHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImY0dlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1mbGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsaVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1mbHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsdlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tNHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm00dlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tYXRyb3NrYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWt2XCIsIFwibWszZFwiLCBcIm1rc1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1uZ1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy1hc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFzZlwiLCBcImFzeFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy12b2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZvYlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy13bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21cIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtd212XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bXZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtd214XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bXhcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtd3Z4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3dnhcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXN2aWRlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXZpXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LXNnaS1tb3ZpZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW92aWVcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtc212XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbXZcIl1cbiAgICAgIH0sXG4gICAgICBcIngtY29uZmVyZW5jZS94LWNvb2x0YWxrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY2VcIl1cbiAgICAgIH0sXG4gICAgICBcIngtc2hhZGVyL3gtZnJhZ21lbnRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcIngtc2hhZGVyL3gtdmVydGV4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9leHByZXNzL25vZGVfbW9kdWxlcy9taW1lLWRiL2luZGV4LmpzXG52YXIgcmVxdWlyZV9taW1lX2RiMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9leHByZXNzL25vZGVfbW9kdWxlcy9taW1lLWRiL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSByZXF1aXJlX2RiMigpO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2V4cHJlc3Mvbm9kZV9tb2R1bGVzL21pbWUtdHlwZXMvbWltZVNjb3JlLmpzXG52YXIgcmVxdWlyZV9taW1lU2NvcmUyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2V4cHJlc3Mvbm9kZV9tb2R1bGVzL21pbWUtdHlwZXMvbWltZVNjb3JlLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICB2YXIgRkFDRVRfU0NPUkVTID0ge1xuICAgICAgXCJwcnMuXCI6IDEwMCxcbiAgICAgIFwieC1cIjogMjAwLFxuICAgICAgXCJ4LlwiOiAzMDAsXG4gICAgICBcInZuZC5cIjogNDAwLFxuICAgICAgZGVmYXVsdDogOTAwXG4gICAgfTtcbiAgICB2YXIgU09VUkNFX1NDT1JFUyA9IHtcbiAgICAgIG5naW54OiAxMCxcbiAgICAgIGFwYWNoZTogMjAsXG4gICAgICBpYW5hOiA0MCxcbiAgICAgIGRlZmF1bHQ6IDMwXG4gICAgICAvLyBkZWZpbml0aW9ucyBhZGRlZCBieSBganNodHRwL21pbWUtZGJgIHByb2plY3Q/XG4gICAgfTtcbiAgICB2YXIgVFlQRV9TQ09SRVMgPSB7XG4gICAgICAvLyBwcmVmZXIgYXBwbGljYXRpb24veG1sIG92ZXIgdGV4dC94bWxcbiAgICAgIC8vIHByZWZlciBhcHBsaWNhdGlvbi9ydGYgb3ZlciB0ZXh0L3J0ZlxuICAgICAgYXBwbGljYXRpb246IDEsXG4gICAgICAvLyBwcmVmZXIgZm9udC93b2ZmIG92ZXIgYXBwbGljYXRpb24vZm9udC13b2ZmXG4gICAgICBmb250OiAyLFxuICAgICAgZGVmYXVsdDogMFxuICAgIH07XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gbWltZVNjb3JlKG1pbWVUeXBlLCBzb3VyY2UgPSBcImRlZmF1bHRcIikge1xuICAgICAgaWYgKG1pbWVUeXBlID09PSBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgY29uc3QgW3R5cGUsIHN1YnR5cGVdID0gbWltZVR5cGUuc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgZmFjZXQgPSBzdWJ0eXBlLnJlcGxhY2UoLyhcXC58eC0pLiovLCBcIiQxXCIpO1xuICAgICAgY29uc3QgZmFjZXRTY29yZSA9IEZBQ0VUX1NDT1JFU1tmYWNldF0gfHwgRkFDRVRfU0NPUkVTLmRlZmF1bHQ7XG4gICAgICBjb25zdCBzb3VyY2VTY29yZSA9IFNPVVJDRV9TQ09SRVNbc291cmNlXSB8fCBTT1VSQ0VfU0NPUkVTLmRlZmF1bHQ7XG4gICAgICBjb25zdCB0eXBlU2NvcmUgPSBUWVBFX1NDT1JFU1t0eXBlXSB8fCBUWVBFX1NDT1JFUy5kZWZhdWx0O1xuICAgICAgY29uc3QgbGVuZ3RoU2NvcmUgPSAxIC0gbWltZVR5cGUubGVuZ3RoIC8gMTAwO1xuICAgICAgcmV0dXJuIGZhY2V0U2NvcmUgKyBzb3VyY2VTY29yZSArIHR5cGVTY29yZSArIGxlbmd0aFNjb3JlO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXhwcmVzcy9ub2RlX21vZHVsZXMvbWltZS10eXBlcy9pbmRleC5qc1xudmFyIHJlcXVpcmVfbWltZV90eXBlczIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZXhwcmVzcy9ub2RlX21vZHVsZXMvbWltZS10eXBlcy9pbmRleC5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGRiID0gcmVxdWlyZV9taW1lX2RiMigpO1xuICAgIHZhciBleHRuYW1lID0gcmVxdWlyZShcInBhdGhcIikuZXh0bmFtZTtcbiAgICB2YXIgbWltZVNjb3JlID0gcmVxdWlyZV9taW1lU2NvcmUyKCk7XG4gICAgdmFyIEVYVFJBQ1RfVFlQRV9SRUdFWFAgPSAvXlxccyooW147XFxzXSopKD86O3xcXHN8JCkvO1xuICAgIHZhciBURVhUX1RZUEVfUkVHRVhQID0gL150ZXh0XFwvL2k7XG4gICAgZXhwb3J0czIuY2hhcnNldCA9IGNoYXJzZXQ7XG4gICAgZXhwb3J0czIuY2hhcnNldHMgPSB7IGxvb2t1cDogY2hhcnNldCB9O1xuICAgIGV4cG9ydHMyLmNvbnRlbnRUeXBlID0gY29udGVudFR5cGUyO1xuICAgIGV4cG9ydHMyLmV4dGVuc2lvbiA9IGV4dGVuc2lvbjtcbiAgICBleHBvcnRzMi5leHRlbnNpb25zID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgZXhwb3J0czIubG9va3VwID0gbG9va3VwO1xuICAgIGV4cG9ydHMyLnR5cGVzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgZXhwb3J0czIuX2V4dGVuc2lvbkNvbmZsaWN0cyA9IFtdO1xuICAgIHBvcHVsYXRlTWFwcyhleHBvcnRzMi5leHRlbnNpb25zLCBleHBvcnRzMi50eXBlcyk7XG4gICAgZnVuY3Rpb24gY2hhcnNldCh0eXBlKSB7XG4gICAgICBpZiAoIXR5cGUgfHwgdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIG1hdGNoID0gRVhUUkFDVF9UWVBFX1JFR0VYUC5leGVjKHR5cGUpO1xuICAgICAgdmFyIG1pbWUgPSBtYXRjaCAmJiBkYlttYXRjaFsxXS50b0xvd2VyQ2FzZSgpXTtcbiAgICAgIGlmIChtaW1lICYmIG1pbWUuY2hhcnNldCkge1xuICAgICAgICByZXR1cm4gbWltZS5jaGFyc2V0O1xuICAgICAgfVxuICAgICAgaWYgKG1hdGNoICYmIFRFWFRfVFlQRV9SRUdFWFAudGVzdChtYXRjaFsxXSkpIHtcbiAgICAgICAgcmV0dXJuIFwiVVRGLThcIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29udGVudFR5cGUyKHN0cikge1xuICAgICAgaWYgKCFzdHIgfHwgdHlwZW9mIHN0ciAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgbWltZSA9IHN0ci5pbmRleE9mKFwiL1wiKSA9PT0gLTEgPyBleHBvcnRzMi5sb29rdXAoc3RyKSA6IHN0cjtcbiAgICAgIGlmICghbWltZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAobWltZS5pbmRleE9mKFwiY2hhcnNldFwiKSA9PT0gLTEpIHtcbiAgICAgICAgdmFyIGNoYXJzZXQyID0gZXhwb3J0czIuY2hhcnNldChtaW1lKTtcbiAgICAgICAgaWYgKGNoYXJzZXQyKSBtaW1lICs9IFwiOyBjaGFyc2V0PVwiICsgY2hhcnNldDIudG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtaW1lO1xuICAgIH1cbiAgICBmdW5jdGlvbiBleHRlbnNpb24odHlwZSkge1xuICAgICAgaWYgKCF0eXBlIHx8IHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBtYXRjaCA9IEVYVFJBQ1RfVFlQRV9SRUdFWFAuZXhlYyh0eXBlKTtcbiAgICAgIHZhciBleHRzID0gbWF0Y2ggJiYgZXhwb3J0czIuZXh0ZW5zaW9uc1ttYXRjaFsxXS50b0xvd2VyQ2FzZSgpXTtcbiAgICAgIGlmICghZXh0cyB8fCAhZXh0cy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4dHNbMF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvb2t1cChwYXRoKSB7XG4gICAgICBpZiAoIXBhdGggfHwgdHlwZW9mIHBhdGggIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIGV4dGVuc2lvbjIgPSBleHRuYW1lKFwieC5cIiArIHBhdGgpLnRvTG93ZXJDYXNlKCkuc2xpY2UoMSk7XG4gICAgICBpZiAoIWV4dGVuc2lvbjIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4cG9ydHMyLnR5cGVzW2V4dGVuc2lvbjJdIHx8IGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwb3B1bGF0ZU1hcHMoZXh0ZW5zaW9ucywgdHlwZXMpIHtcbiAgICAgIE9iamVjdC5rZXlzKGRiKS5mb3JFYWNoKGZ1bmN0aW9uIGZvckVhY2hNaW1lVHlwZSh0eXBlKSB7XG4gICAgICAgIHZhciBtaW1lID0gZGJbdHlwZV07XG4gICAgICAgIHZhciBleHRzID0gbWltZS5leHRlbnNpb25zO1xuICAgICAgICBpZiAoIWV4dHMgfHwgIWV4dHMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGV4dGVuc2lvbnNbdHlwZV0gPSBleHRzO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgZXh0ZW5zaW9uMiA9IGV4dHNbaV07XG4gICAgICAgICAgdHlwZXNbZXh0ZW5zaW9uMl0gPSBfcHJlZmVycmVkVHlwZShleHRlbnNpb24yLCB0eXBlc1tleHRlbnNpb24yXSwgdHlwZSk7XG4gICAgICAgICAgY29uc3QgbGVnYWN5VHlwZSA9IF9wcmVmZXJyZWRUeXBlTGVnYWN5KFxuICAgICAgICAgICAgZXh0ZW5zaW9uMixcbiAgICAgICAgICAgIHR5cGVzW2V4dGVuc2lvbjJdLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGxlZ2FjeVR5cGUgIT09IHR5cGVzW2V4dGVuc2lvbjJdKSB7XG4gICAgICAgICAgICBleHBvcnRzMi5fZXh0ZW5zaW9uQ29uZmxpY3RzLnB1c2goW2V4dGVuc2lvbjIsIGxlZ2FjeVR5cGUsIHR5cGVzW2V4dGVuc2lvbjJdXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX3ByZWZlcnJlZFR5cGUoZXh0LCB0eXBlMCwgdHlwZTEpIHtcbiAgICAgIHZhciBzY29yZTAgPSB0eXBlMCA/IG1pbWVTY29yZSh0eXBlMCwgZGJbdHlwZTBdLnNvdXJjZSkgOiAwO1xuICAgICAgdmFyIHNjb3JlMSA9IHR5cGUxID8gbWltZVNjb3JlKHR5cGUxLCBkYlt0eXBlMV0uc291cmNlKSA6IDA7XG4gICAgICByZXR1cm4gc2NvcmUwID4gc2NvcmUxID8gdHlwZTAgOiB0eXBlMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX3ByZWZlcnJlZFR5cGVMZWdhY3koZXh0LCB0eXBlMCwgdHlwZTEpIHtcbiAgICAgIHZhciBTT1VSQ0VfUkFOSyA9IFtcIm5naW54XCIsIFwiYXBhY2hlXCIsIHZvaWQgMCwgXCJpYW5hXCJdO1xuICAgICAgdmFyIHNjb3JlMCA9IHR5cGUwID8gU09VUkNFX1JBTksuaW5kZXhPZihkYlt0eXBlMF0uc291cmNlKSA6IDA7XG4gICAgICB2YXIgc2NvcmUxID0gdHlwZTEgPyBTT1VSQ0VfUkFOSy5pbmRleE9mKGRiW3R5cGUxXS5zb3VyY2UpIDogMDtcbiAgICAgIGlmIChleHBvcnRzMi50eXBlc1tleHRlbnNpb25dICE9PSBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiICYmIChzY29yZTAgPiBzY29yZTEgfHwgc2NvcmUwID09PSBzY29yZTEgJiYgZXhwb3J0czIudHlwZXNbZXh0ZW5zaW9uXT8uc2xpY2UoMCwgMTIpID09PSBcImFwcGxpY2F0aW9uL1wiKSkge1xuICAgICAgICByZXR1cm4gdHlwZTA7XG4gICAgICB9XG4gICAgICByZXR1cm4gc2NvcmUwID4gc2NvcmUxID8gdHlwZTAgOiB0eXBlMTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZm9yd2FyZGVkL2luZGV4LmpzXG52YXIgcmVxdWlyZV9mb3J3YXJkZWQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZm9yd2FyZGVkL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmb3J3YXJkZWQ7XG4gICAgZnVuY3Rpb24gZm9yd2FyZGVkKHJlcSkge1xuICAgICAgaWYgKCFyZXEpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHJlcSBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm94eUFkZHJzID0gcGFyc2UocmVxLmhlYWRlcnNbXCJ4LWZvcndhcmRlZC1mb3JcIl0gfHwgXCJcIik7XG4gICAgICB2YXIgc29ja2V0QWRkciA9IGdldFNvY2tldEFkZHIocmVxKTtcbiAgICAgIHZhciBhZGRycyA9IFtzb2NrZXRBZGRyXS5jb25jYXQocHJveHlBZGRycyk7XG4gICAgICByZXR1cm4gYWRkcnM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFNvY2tldEFkZHIocmVxKSB7XG4gICAgICByZXR1cm4gcmVxLnNvY2tldCA/IHJlcS5zb2NrZXQucmVtb3RlQWRkcmVzcyA6IHJlcS5jb25uZWN0aW9uLnJlbW90ZUFkZHJlc3M7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlKGhlYWRlcikge1xuICAgICAgdmFyIGVuZCA9IGhlYWRlci5sZW5ndGg7XG4gICAgICB2YXIgbGlzdCA9IFtdO1xuICAgICAgdmFyIHN0YXJ0ID0gaGVhZGVyLmxlbmd0aDtcbiAgICAgIGZvciAodmFyIGkgPSBoZWFkZXIubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgc3dpdGNoIChoZWFkZXIuY2hhckNvZGVBdChpKSkge1xuICAgICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgICBpZiAoc3RhcnQgPT09IGVuZCkge1xuICAgICAgICAgICAgICBzdGFydCA9IGVuZCA9IGk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQ0OlxuICAgICAgICAgICAgaWYgKHN0YXJ0ICE9PSBlbmQpIHtcbiAgICAgICAgICAgICAgbGlzdC5wdXNoKGhlYWRlci5zdWJzdHJpbmcoc3RhcnQsIGVuZCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhcnQgPSBlbmQgPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHN0YXJ0ID0gaTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3RhcnQgIT09IGVuZCkge1xuICAgICAgICBsaXN0LnB1c2goaGVhZGVyLnN1YnN0cmluZyhzdGFydCwgZW5kKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvaXBhZGRyLmpzL2xpYi9pcGFkZHIuanNcbnZhciByZXF1aXJlX2lwYWRkciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9pcGFkZHIuanMvbGliL2lwYWRkci5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgKGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGV4cGFuZElQdjYsIGlwYWRkciwgaXB2NFBhcnQsIGlwdjRSZWdleGVzLCBpcHY2UGFydCwgaXB2NlJlZ2V4ZXMsIG1hdGNoQ0lEUiwgcm9vdCwgem9uZUluZGV4O1xuICAgICAgaXBhZGRyID0ge307XG4gICAgICByb290ID0gdGhpcztcbiAgICAgIGlmICh0eXBlb2YgbW9kdWxlMiAhPT0gXCJ1bmRlZmluZWRcIiAmJiBtb2R1bGUyICE9PSBudWxsICYmIG1vZHVsZTIuZXhwb3J0cykge1xuICAgICAgICBtb2R1bGUyLmV4cG9ydHMgPSBpcGFkZHI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb290W1wiaXBhZGRyXCJdID0gaXBhZGRyO1xuICAgICAgfVxuICAgICAgbWF0Y2hDSURSID0gZnVuY3Rpb24oZmlyc3QsIHNlY29uZCwgcGFydFNpemUsIGNpZHJCaXRzKSB7XG4gICAgICAgIHZhciBwYXJ0LCBzaGlmdDtcbiAgICAgICAgaWYgKGZpcnN0Lmxlbmd0aCAhPT0gc2Vjb25kLmxlbmd0aCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogY2Fubm90IG1hdGNoIENJRFIgZm9yIG9iamVjdHMgd2l0aCBkaWZmZXJlbnQgbGVuZ3Roc1wiKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJ0ID0gMDtcbiAgICAgICAgd2hpbGUgKGNpZHJCaXRzID4gMCkge1xuICAgICAgICAgIHNoaWZ0ID0gcGFydFNpemUgLSBjaWRyQml0cztcbiAgICAgICAgICBpZiAoc2hpZnQgPCAwKSB7XG4gICAgICAgICAgICBzaGlmdCA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmaXJzdFtwYXJ0XSA+PiBzaGlmdCAhPT0gc2Vjb25kW3BhcnRdID4+IHNoaWZ0KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNpZHJCaXRzIC09IHBhcnRTaXplO1xuICAgICAgICAgIHBhcnQgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH07XG4gICAgICBpcGFkZHIuc3VibmV0TWF0Y2ggPSBmdW5jdGlvbihhZGRyZXNzLCByYW5nZUxpc3QsIGRlZmF1bHROYW1lKSB7XG4gICAgICAgIHZhciBrLCBsZW4sIHJhbmdlTmFtZSwgcmFuZ2VTdWJuZXRzLCBzdWJuZXQ7XG4gICAgICAgIGlmIChkZWZhdWx0TmFtZSA9PSBudWxsKSB7XG4gICAgICAgICAgZGVmYXVsdE5hbWUgPSBcInVuaWNhc3RcIjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKHJhbmdlTmFtZSBpbiByYW5nZUxpc3QpIHtcbiAgICAgICAgICByYW5nZVN1Ym5ldHMgPSByYW5nZUxpc3RbcmFuZ2VOYW1lXTtcbiAgICAgICAgICBpZiAocmFuZ2VTdWJuZXRzWzBdICYmICEocmFuZ2VTdWJuZXRzWzBdIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICByYW5nZVN1Ym5ldHMgPSBbcmFuZ2VTdWJuZXRzXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yIChrID0gMCwgbGVuID0gcmFuZ2VTdWJuZXRzLmxlbmd0aDsgayA8IGxlbjsgaysrKSB7XG4gICAgICAgICAgICBzdWJuZXQgPSByYW5nZVN1Ym5ldHNba107XG4gICAgICAgICAgICBpZiAoYWRkcmVzcy5raW5kKCkgPT09IHN1Ym5ldFswXS5raW5kKCkpIHtcbiAgICAgICAgICAgICAgaWYgKGFkZHJlc3MubWF0Y2guYXBwbHkoYWRkcmVzcywgc3VibmV0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByYW5nZU5hbWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlZmF1bHROYW1lO1xuICAgICAgfTtcbiAgICAgIGlwYWRkci5JUHY0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGZ1bmN0aW9uIElQdjQob2N0ZXRzKSB7XG4gICAgICAgICAgdmFyIGssIGxlbiwgb2N0ZXQ7XG4gICAgICAgICAgaWYgKG9jdGV0cy5sZW5ndGggIT09IDQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogaXB2NCBvY3RldCBjb3VudCBzaG91bGQgYmUgNFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yIChrID0gMCwgbGVuID0gb2N0ZXRzLmxlbmd0aDsgayA8IGxlbjsgaysrKSB7XG4gICAgICAgICAgICBvY3RldCA9IG9jdGV0c1trXTtcbiAgICAgICAgICAgIGlmICghKDAgPD0gb2N0ZXQgJiYgb2N0ZXQgPD0gMjU1KSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpcGFkZHI6IGlwdjQgb2N0ZXQgc2hvdWxkIGZpdCBpbiA4IGJpdHNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMub2N0ZXRzID0gb2N0ZXRzO1xuICAgICAgICB9XG4gICAgICAgIElQdjQucHJvdG90eXBlLmtpbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gXCJpcHY0XCI7XG4gICAgICAgIH07XG4gICAgICAgIElQdjQucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMub2N0ZXRzLmpvaW4oXCIuXCIpO1xuICAgICAgICB9O1xuICAgICAgICBJUHY0LnByb3RvdHlwZS50b05vcm1hbGl6ZWRTdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICAgICAgICB9O1xuICAgICAgICBJUHY0LnByb3RvdHlwZS50b0J5dGVBcnJheSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLm9jdGV0cy5zbGljZSgwKTtcbiAgICAgICAgfTtcbiAgICAgICAgSVB2NC5wcm90b3R5cGUubWF0Y2ggPSBmdW5jdGlvbihvdGhlciwgY2lkclJhbmdlKSB7XG4gICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICBpZiAoY2lkclJhbmdlID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHJlZiA9IG90aGVyLCBvdGhlciA9IHJlZlswXSwgY2lkclJhbmdlID0gcmVmWzFdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3RoZXIua2luZCgpICE9PSBcImlwdjRcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiBjYW5ub3QgbWF0Y2ggaXB2NCBhZGRyZXNzIHdpdGggbm9uLWlwdjQgb25lXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbWF0Y2hDSURSKHRoaXMub2N0ZXRzLCBvdGhlci5vY3RldHMsIDgsIGNpZHJSYW5nZSk7XG4gICAgICAgIH07XG4gICAgICAgIElQdjQucHJvdG90eXBlLlNwZWNpYWxSYW5nZXMgPSB7XG4gICAgICAgICAgdW5zcGVjaWZpZWQ6IFtbbmV3IElQdjQoWzAsIDAsIDAsIDBdKSwgOF1dLFxuICAgICAgICAgIGJyb2FkY2FzdDogW1tuZXcgSVB2NChbMjU1LCAyNTUsIDI1NSwgMjU1XSksIDMyXV0sXG4gICAgICAgICAgbXVsdGljYXN0OiBbW25ldyBJUHY0KFsyMjQsIDAsIDAsIDBdKSwgNF1dLFxuICAgICAgICAgIGxpbmtMb2NhbDogW1tuZXcgSVB2NChbMTY5LCAyNTQsIDAsIDBdKSwgMTZdXSxcbiAgICAgICAgICBsb29wYmFjazogW1tuZXcgSVB2NChbMTI3LCAwLCAwLCAwXSksIDhdXSxcbiAgICAgICAgICBjYXJyaWVyR3JhZGVOYXQ6IFtbbmV3IElQdjQoWzEwMCwgNjQsIDAsIDBdKSwgMTBdXSxcbiAgICAgICAgICBcInByaXZhdGVcIjogW1tuZXcgSVB2NChbMTAsIDAsIDAsIDBdKSwgOF0sIFtuZXcgSVB2NChbMTcyLCAxNiwgMCwgMF0pLCAxMl0sIFtuZXcgSVB2NChbMTkyLCAxNjgsIDAsIDBdKSwgMTZdXSxcbiAgICAgICAgICByZXNlcnZlZDogW1tuZXcgSVB2NChbMTkyLCAwLCAwLCAwXSksIDI0XSwgW25ldyBJUHY0KFsxOTIsIDAsIDIsIDBdKSwgMjRdLCBbbmV3IElQdjQoWzE5MiwgODgsIDk5LCAwXSksIDI0XSwgW25ldyBJUHY0KFsxOTgsIDUxLCAxMDAsIDBdKSwgMjRdLCBbbmV3IElQdjQoWzIwMywgMCwgMTEzLCAwXSksIDI0XSwgW25ldyBJUHY0KFsyNDAsIDAsIDAsIDBdKSwgNF1dXG4gICAgICAgIH07XG4gICAgICAgIElQdjQucHJvdG90eXBlLnJhbmdlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIGlwYWRkci5zdWJuZXRNYXRjaCh0aGlzLCB0aGlzLlNwZWNpYWxSYW5nZXMpO1xuICAgICAgICB9O1xuICAgICAgICBJUHY0LnByb3RvdHlwZS50b0lQdjRNYXBwZWRBZGRyZXNzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIGlwYWRkci5JUHY2LnBhcnNlKFwiOjpmZmZmOlwiICsgdGhpcy50b1N0cmluZygpKTtcbiAgICAgICAgfTtcbiAgICAgICAgSVB2NC5wcm90b3R5cGUucHJlZml4TGVuZ3RoRnJvbVN1Ym5ldE1hc2sgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgY2lkciwgaSwgaywgb2N0ZXQsIHN0b3AsIHplcm9zLCB6ZXJvdGFibGU7XG4gICAgICAgICAgemVyb3RhYmxlID0ge1xuICAgICAgICAgICAgMDogOCxcbiAgICAgICAgICAgIDEyODogNyxcbiAgICAgICAgICAgIDE5MjogNixcbiAgICAgICAgICAgIDIyNDogNSxcbiAgICAgICAgICAgIDI0MDogNCxcbiAgICAgICAgICAgIDI0ODogMyxcbiAgICAgICAgICAgIDI1MjogMixcbiAgICAgICAgICAgIDI1NDogMSxcbiAgICAgICAgICAgIDI1NTogMFxuICAgICAgICAgIH07XG4gICAgICAgICAgY2lkciA9IDA7XG4gICAgICAgICAgc3RvcCA9IGZhbHNlO1xuICAgICAgICAgIGZvciAoaSA9IGsgPSAzOyBrID49IDA7IGkgPSBrICs9IC0xKSB7XG4gICAgICAgICAgICBvY3RldCA9IHRoaXMub2N0ZXRzW2ldO1xuICAgICAgICAgICAgaWYgKG9jdGV0IGluIHplcm90YWJsZSkge1xuICAgICAgICAgICAgICB6ZXJvcyA9IHplcm90YWJsZVtvY3RldF07XG4gICAgICAgICAgICAgIGlmIChzdG9wICYmIHplcm9zICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHplcm9zICE9PSA4KSB7XG4gICAgICAgICAgICAgICAgc3RvcCA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2lkciArPSB6ZXJvcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gMzIgLSBjaWRyO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gSVB2NDtcbiAgICAgIH0oKTtcbiAgICAgIGlwdjRQYXJ0ID0gXCIoMD9cXFxcZCt8MHhbYS1mMC05XSspXCI7XG4gICAgICBpcHY0UmVnZXhlcyA9IHtcbiAgICAgICAgZm91ck9jdGV0OiBuZXcgUmVnRXhwKFwiXlwiICsgaXB2NFBhcnQgKyBcIlxcXFwuXCIgKyBpcHY0UGFydCArIFwiXFxcXC5cIiArIGlwdjRQYXJ0ICsgXCJcXFxcLlwiICsgaXB2NFBhcnQgKyBcIiRcIiwgXCJpXCIpLFxuICAgICAgICBsb25nVmFsdWU6IG5ldyBSZWdFeHAoXCJeXCIgKyBpcHY0UGFydCArIFwiJFwiLCBcImlcIilcbiAgICAgIH07XG4gICAgICBpcGFkZHIuSVB2NC5wYXJzZXIgPSBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgdmFyIG1hdGNoLCBwYXJzZUludEF1dG8sIHBhcnQsIHNoaWZ0LCB2YWx1ZTtcbiAgICAgICAgcGFyc2VJbnRBdXRvID0gZnVuY3Rpb24oc3RyaW5nMikge1xuICAgICAgICAgIGlmIChzdHJpbmcyWzBdID09PSBcIjBcIiAmJiBzdHJpbmcyWzFdICE9PSBcInhcIikge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHN0cmluZzIsIDgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoc3RyaW5nMik7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAobWF0Y2ggPSBzdHJpbmcubWF0Y2goaXB2NFJlZ2V4ZXMuZm91ck9jdGV0KSkge1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBrLCBsZW4sIHJlZiwgcmVzdWx0cztcbiAgICAgICAgICAgIHJlZiA9IG1hdGNoLnNsaWNlKDEsIDYpO1xuICAgICAgICAgICAgcmVzdWx0cyA9IFtdO1xuICAgICAgICAgICAgZm9yIChrID0gMCwgbGVuID0gcmVmLmxlbmd0aDsgayA8IGxlbjsgaysrKSB7XG4gICAgICAgICAgICAgIHBhcnQgPSByZWZba107XG4gICAgICAgICAgICAgIHJlc3VsdHMucHVzaChwYXJzZUludEF1dG8ocGFydCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgfSgpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoID0gc3RyaW5nLm1hdGNoKGlwdjRSZWdleGVzLmxvbmdWYWx1ZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IHBhcnNlSW50QXV0byhtYXRjaFsxXSk7XG4gICAgICAgICAgaWYgKHZhbHVlID4gNDI5NDk2NzI5NSB8fCB2YWx1ZSA8IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogYWRkcmVzcyBvdXRzaWRlIGRlZmluZWQgcmFuZ2VcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBrLCByZXN1bHRzO1xuICAgICAgICAgICAgcmVzdWx0cyA9IFtdO1xuICAgICAgICAgICAgZm9yIChzaGlmdCA9IGsgPSAwOyBrIDw9IDI0OyBzaGlmdCA9IGsgKz0gOCkge1xuICAgICAgICAgICAgICByZXN1bHRzLnB1c2godmFsdWUgPj4gc2hpZnQgJiAyNTUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgfSgpLnJldmVyc2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGlwYWRkci5JUHY2ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGZ1bmN0aW9uIElQdjYocGFydHMsIHpvbmVJZCkge1xuICAgICAgICAgIHZhciBpLCBrLCBsLCBsZW4sIHBhcnQsIHJlZjtcbiAgICAgICAgICBpZiAocGFydHMubGVuZ3RoID09PSAxNikge1xuICAgICAgICAgICAgdGhpcy5wYXJ0cyA9IFtdO1xuICAgICAgICAgICAgZm9yIChpID0gayA9IDA7IGsgPD0gMTQ7IGkgPSBrICs9IDIpIHtcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0cy5wdXNoKHBhcnRzW2ldIDw8IDggfCBwYXJ0c1tpICsgMV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAocGFydHMubGVuZ3RoID09PSA4KSB7XG4gICAgICAgICAgICB0aGlzLnBhcnRzID0gcGFydHM7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogaXB2NiBwYXJ0IGNvdW50IHNob3VsZCBiZSA4IG9yIDE2XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZWYgPSB0aGlzLnBhcnRzO1xuICAgICAgICAgIGZvciAobCA9IDAsIGxlbiA9IHJlZi5sZW5ndGg7IGwgPCBsZW47IGwrKykge1xuICAgICAgICAgICAgcGFydCA9IHJlZltsXTtcbiAgICAgICAgICAgIGlmICghKDAgPD0gcGFydCAmJiBwYXJ0IDw9IDY1NTM1KSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpcGFkZHI6IGlwdjYgcGFydCBzaG91bGQgZml0IGluIDE2IGJpdHNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh6b25lSWQpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZUlkID0gem9uZUlkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBJUHY2LnByb3RvdHlwZS5raW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIFwiaXB2NlwiO1xuICAgICAgICB9O1xuICAgICAgICBJUHY2LnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRvTm9ybWFsaXplZFN0cmluZygpLnJlcGxhY2UoLygoXnw6KSgwKDp8JCkpKykvLCBcIjo6XCIpO1xuICAgICAgICB9O1xuICAgICAgICBJUHY2LnByb3RvdHlwZS50b1JGQzU5NTJTdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgYmVzdE1hdGNoSW5kZXgsIGJlc3RNYXRjaExlbmd0aCwgbWF0Y2gsIHJlZ2V4LCBzdHJpbmc7XG4gICAgICAgICAgcmVnZXggPSAvKChefDopKDAoOnwkKSl7Mix9KS9nO1xuICAgICAgICAgIHN0cmluZyA9IHRoaXMudG9Ob3JtYWxpemVkU3RyaW5nKCk7XG4gICAgICAgICAgYmVzdE1hdGNoSW5kZXggPSAwO1xuICAgICAgICAgIGJlc3RNYXRjaExlbmd0aCA9IC0xO1xuICAgICAgICAgIHdoaWxlIChtYXRjaCA9IHJlZ2V4LmV4ZWMoc3RyaW5nKSkge1xuICAgICAgICAgICAgaWYgKG1hdGNoWzBdLmxlbmd0aCA+IGJlc3RNYXRjaExlbmd0aCkge1xuICAgICAgICAgICAgICBiZXN0TWF0Y2hJbmRleCA9IG1hdGNoLmluZGV4O1xuICAgICAgICAgICAgICBiZXN0TWF0Y2hMZW5ndGggPSBtYXRjaFswXS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChiZXN0TWF0Y2hMZW5ndGggPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc3RyaW5nLnN1YnN0cmluZygwLCBiZXN0TWF0Y2hJbmRleCkgKyBcIjo6XCIgKyBzdHJpbmcuc3Vic3RyaW5nKGJlc3RNYXRjaEluZGV4ICsgYmVzdE1hdGNoTGVuZ3RoKTtcbiAgICAgICAgfTtcbiAgICAgICAgSVB2Ni5wcm90b3R5cGUudG9CeXRlQXJyYXkgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgYnl0ZXMsIGssIGxlbiwgcGFydCwgcmVmO1xuICAgICAgICAgIGJ5dGVzID0gW107XG4gICAgICAgICAgcmVmID0gdGhpcy5wYXJ0cztcbiAgICAgICAgICBmb3IgKGsgPSAwLCBsZW4gPSByZWYubGVuZ3RoOyBrIDwgbGVuOyBrKyspIHtcbiAgICAgICAgICAgIHBhcnQgPSByZWZba107XG4gICAgICAgICAgICBieXRlcy5wdXNoKHBhcnQgPj4gOCk7XG4gICAgICAgICAgICBieXRlcy5wdXNoKHBhcnQgJiAyNTUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYnl0ZXM7XG4gICAgICAgIH07XG4gICAgICAgIElQdjYucHJvdG90eXBlLnRvTm9ybWFsaXplZFN0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBhZGRyLCBwYXJ0LCBzdWZmaXg7XG4gICAgICAgICAgYWRkciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGssIGxlbiwgcmVmLCByZXN1bHRzO1xuICAgICAgICAgICAgcmVmID0gdGhpcy5wYXJ0cztcbiAgICAgICAgICAgIHJlc3VsdHMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoayA9IDAsIGxlbiA9IHJlZi5sZW5ndGg7IGsgPCBsZW47IGsrKykge1xuICAgICAgICAgICAgICBwYXJ0ID0gcmVmW2tdO1xuICAgICAgICAgICAgICByZXN1bHRzLnB1c2gocGFydC50b1N0cmluZygxNikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgfS5jYWxsKHRoaXMpLmpvaW4oXCI6XCIpO1xuICAgICAgICAgIHN1ZmZpeCA9IFwiXCI7XG4gICAgICAgICAgaWYgKHRoaXMuem9uZUlkKSB7XG4gICAgICAgICAgICBzdWZmaXggPSBcIiVcIiArIHRoaXMuem9uZUlkO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWRkciArIHN1ZmZpeDtcbiAgICAgICAgfTtcbiAgICAgICAgSVB2Ni5wcm90b3R5cGUudG9GaXhlZExlbmd0aFN0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBhZGRyLCBwYXJ0LCBzdWZmaXg7XG4gICAgICAgICAgYWRkciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGssIGxlbiwgcmVmLCByZXN1bHRzO1xuICAgICAgICAgICAgcmVmID0gdGhpcy5wYXJ0cztcbiAgICAgICAgICAgIHJlc3VsdHMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoayA9IDAsIGxlbiA9IHJlZi5sZW5ndGg7IGsgPCBsZW47IGsrKykge1xuICAgICAgICAgICAgICBwYXJ0ID0gcmVmW2tdO1xuICAgICAgICAgICAgICByZXN1bHRzLnB1c2gocGFydC50b1N0cmluZygxNikucGFkU3RhcnQoNCwgXCIwXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICAgIH0uY2FsbCh0aGlzKS5qb2luKFwiOlwiKTtcbiAgICAgICAgICBzdWZmaXggPSBcIlwiO1xuICAgICAgICAgIGlmICh0aGlzLnpvbmVJZCkge1xuICAgICAgICAgICAgc3VmZml4ID0gXCIlXCIgKyB0aGlzLnpvbmVJZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFkZHIgKyBzdWZmaXg7XG4gICAgICAgIH07XG4gICAgICAgIElQdjYucHJvdG90eXBlLm1hdGNoID0gZnVuY3Rpb24ob3RoZXIsIGNpZHJSYW5nZSkge1xuICAgICAgICAgIHZhciByZWY7XG4gICAgICAgICAgaWYgKGNpZHJSYW5nZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICByZWYgPSBvdGhlciwgb3RoZXIgPSByZWZbMF0sIGNpZHJSYW5nZSA9IHJlZlsxXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG90aGVyLmtpbmQoKSAhPT0gXCJpcHY2XCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogY2Fubm90IG1hdGNoIGlwdjYgYWRkcmVzcyB3aXRoIG5vbi1pcHY2IG9uZVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG1hdGNoQ0lEUih0aGlzLnBhcnRzLCBvdGhlci5wYXJ0cywgMTYsIGNpZHJSYW5nZSk7XG4gICAgICAgIH07XG4gICAgICAgIElQdjYucHJvdG90eXBlLlNwZWNpYWxSYW5nZXMgPSB7XG4gICAgICAgICAgdW5zcGVjaWZpZWQ6IFtuZXcgSVB2NihbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0pLCAxMjhdLFxuICAgICAgICAgIGxpbmtMb2NhbDogW25ldyBJUHY2KFs2NTE1MiwgMCwgMCwgMCwgMCwgMCwgMCwgMF0pLCAxMF0sXG4gICAgICAgICAgbXVsdGljYXN0OiBbbmV3IElQdjYoWzY1MjgwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSksIDhdLFxuICAgICAgICAgIGxvb3BiYWNrOiBbbmV3IElQdjYoWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDFdKSwgMTI4XSxcbiAgICAgICAgICB1bmlxdWVMb2NhbDogW25ldyBJUHY2KFs2NDUxMiwgMCwgMCwgMCwgMCwgMCwgMCwgMF0pLCA3XSxcbiAgICAgICAgICBpcHY0TWFwcGVkOiBbbmV3IElQdjYoWzAsIDAsIDAsIDAsIDAsIDY1NTM1LCAwLCAwXSksIDk2XSxcbiAgICAgICAgICByZmM2MTQ1OiBbbmV3IElQdjYoWzAsIDAsIDAsIDAsIDY1NTM1LCAwLCAwLCAwXSksIDk2XSxcbiAgICAgICAgICByZmM2MDUyOiBbbmV3IElQdjYoWzEwMCwgNjU0MzUsIDAsIDAsIDAsIDAsIDAsIDBdKSwgOTZdLFxuICAgICAgICAgIFwiNnRvNFwiOiBbbmV3IElQdjYoWzgxOTQsIDAsIDAsIDAsIDAsIDAsIDAsIDBdKSwgMTZdLFxuICAgICAgICAgIHRlcmVkbzogW25ldyBJUHY2KFs4MTkzLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSksIDMyXSxcbiAgICAgICAgICByZXNlcnZlZDogW1tuZXcgSVB2NihbODE5MywgMzUxMiwgMCwgMCwgMCwgMCwgMCwgMF0pLCAzMl1dXG4gICAgICAgIH07XG4gICAgICAgIElQdjYucHJvdG90eXBlLnJhbmdlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIGlwYWRkci5zdWJuZXRNYXRjaCh0aGlzLCB0aGlzLlNwZWNpYWxSYW5nZXMpO1xuICAgICAgICB9O1xuICAgICAgICBJUHY2LnByb3RvdHlwZS5pc0lQdjRNYXBwZWRBZGRyZXNzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2UoKSA9PT0gXCJpcHY0TWFwcGVkXCI7XG4gICAgICAgIH07XG4gICAgICAgIElQdjYucHJvdG90eXBlLnRvSVB2NEFkZHJlc3MgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgaGlnaCwgbG93LCByZWY7XG4gICAgICAgICAgaWYgKCF0aGlzLmlzSVB2NE1hcHBlZEFkZHJlc3MoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiB0cnlpbmcgdG8gY29udmVydCBhIGdlbmVyaWMgaXB2NiBhZGRyZXNzIHRvIGlwdjRcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlZiA9IHRoaXMucGFydHMuc2xpY2UoLTIpLCBoaWdoID0gcmVmWzBdLCBsb3cgPSByZWZbMV07XG4gICAgICAgICAgcmV0dXJuIG5ldyBpcGFkZHIuSVB2NChbaGlnaCA+PiA4LCBoaWdoICYgMjU1LCBsb3cgPj4gOCwgbG93ICYgMjU1XSk7XG4gICAgICAgIH07XG4gICAgICAgIElQdjYucHJvdG90eXBlLnByZWZpeExlbmd0aEZyb21TdWJuZXRNYXNrID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIGNpZHIsIGksIGssIHBhcnQsIHN0b3AsIHplcm9zLCB6ZXJvdGFibGU7XG4gICAgICAgICAgemVyb3RhYmxlID0ge1xuICAgICAgICAgICAgMDogMTYsXG4gICAgICAgICAgICAzMjc2ODogMTUsXG4gICAgICAgICAgICA0OTE1MjogMTQsXG4gICAgICAgICAgICA1NzM0NDogMTMsXG4gICAgICAgICAgICA2MTQ0MDogMTIsXG4gICAgICAgICAgICA2MzQ4ODogMTEsXG4gICAgICAgICAgICA2NDUxMjogMTAsXG4gICAgICAgICAgICA2NTAyNDogOSxcbiAgICAgICAgICAgIDY1MjgwOiA4LFxuICAgICAgICAgICAgNjU0MDg6IDcsXG4gICAgICAgICAgICA2NTQ3MjogNixcbiAgICAgICAgICAgIDY1NTA0OiA1LFxuICAgICAgICAgICAgNjU1MjA6IDQsXG4gICAgICAgICAgICA2NTUyODogMyxcbiAgICAgICAgICAgIDY1NTMyOiAyLFxuICAgICAgICAgICAgNjU1MzQ6IDEsXG4gICAgICAgICAgICA2NTUzNTogMFxuICAgICAgICAgIH07XG4gICAgICAgICAgY2lkciA9IDA7XG4gICAgICAgICAgc3RvcCA9IGZhbHNlO1xuICAgICAgICAgIGZvciAoaSA9IGsgPSA3OyBrID49IDA7IGkgPSBrICs9IC0xKSB7XG4gICAgICAgICAgICBwYXJ0ID0gdGhpcy5wYXJ0c1tpXTtcbiAgICAgICAgICAgIGlmIChwYXJ0IGluIHplcm90YWJsZSkge1xuICAgICAgICAgICAgICB6ZXJvcyA9IHplcm90YWJsZVtwYXJ0XTtcbiAgICAgICAgICAgICAgaWYgKHN0b3AgJiYgemVyb3MgIT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoemVyb3MgIT09IDE2KSB7XG4gICAgICAgICAgICAgICAgc3RvcCA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2lkciArPSB6ZXJvcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gMTI4IC0gY2lkcjtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIElQdjY7XG4gICAgICB9KCk7XG4gICAgICBpcHY2UGFydCA9IFwiKD86WzAtOWEtZl0rOjo/KStcIjtcbiAgICAgIHpvbmVJbmRleCA9IFwiJVswLTlhLXpdezEsfVwiO1xuICAgICAgaXB2NlJlZ2V4ZXMgPSB7XG4gICAgICAgIHpvbmVJbmRleDogbmV3IFJlZ0V4cCh6b25lSW5kZXgsIFwiaVwiKSxcbiAgICAgICAgXCJuYXRpdmVcIjogbmV3IFJlZ0V4cChcIl4oOjopPyhcIiArIGlwdjZQYXJ0ICsgXCIpPyhbMC05YS1mXSspPyg6Oik/KFwiICsgem9uZUluZGV4ICsgXCIpPyRcIiwgXCJpXCIpLFxuICAgICAgICB0cmFuc2l0aW9uYWw6IG5ldyBSZWdFeHAoXCJeKCg/OlwiICsgaXB2NlBhcnQgKyBcIil8KD86OjopKD86XCIgKyBpcHY2UGFydCArIFwiKT8pXCIgKyAoaXB2NFBhcnQgKyBcIlxcXFwuXCIgKyBpcHY0UGFydCArIFwiXFxcXC5cIiArIGlwdjRQYXJ0ICsgXCJcXFxcLlwiICsgaXB2NFBhcnQpICsgKFwiKFwiICsgem9uZUluZGV4ICsgXCIpPyRcIiksIFwiaVwiKVxuICAgICAgfTtcbiAgICAgIGV4cGFuZElQdjYgPSBmdW5jdGlvbihzdHJpbmcsIHBhcnRzKSB7XG4gICAgICAgIHZhciBjb2xvbkNvdW50LCBsYXN0Q29sb24sIHBhcnQsIHJlcGxhY2VtZW50LCByZXBsYWNlbWVudENvdW50LCB6b25lSWQ7XG4gICAgICAgIGlmIChzdHJpbmcuaW5kZXhPZihcIjo6XCIpICE9PSBzdHJpbmcubGFzdEluZGV4T2YoXCI6OlwiKSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHpvbmVJZCA9IChzdHJpbmcubWF0Y2goaXB2NlJlZ2V4ZXNbXCJ6b25lSW5kZXhcIl0pIHx8IFtdKVswXTtcbiAgICAgICAgaWYgKHpvbmVJZCkge1xuICAgICAgICAgIHpvbmVJZCA9IHpvbmVJZC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoLyUuKyQvLCBcIlwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb2xvbkNvdW50ID0gMDtcbiAgICAgICAgbGFzdENvbG9uID0gLTE7XG4gICAgICAgIHdoaWxlICgobGFzdENvbG9uID0gc3RyaW5nLmluZGV4T2YoXCI6XCIsIGxhc3RDb2xvbiArIDEpKSA+PSAwKSB7XG4gICAgICAgICAgY29sb25Db3VudCsrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdHJpbmcuc3Vic3RyKDAsIDIpID09PSBcIjo6XCIpIHtcbiAgICAgICAgICBjb2xvbkNvdW50LS07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cmluZy5zdWJzdHIoLTIsIDIpID09PSBcIjo6XCIpIHtcbiAgICAgICAgICBjb2xvbkNvdW50LS07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbG9uQ291bnQgPiBwYXJ0cykge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJlcGxhY2VtZW50Q291bnQgPSBwYXJ0cyAtIGNvbG9uQ291bnQ7XG4gICAgICAgIHJlcGxhY2VtZW50ID0gXCI6XCI7XG4gICAgICAgIHdoaWxlIChyZXBsYWNlbWVudENvdW50LS0pIHtcbiAgICAgICAgICByZXBsYWNlbWVudCArPSBcIjA6XCI7XG4gICAgICAgIH1cbiAgICAgICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoXCI6OlwiLCByZXBsYWNlbWVudCk7XG4gICAgICAgIGlmIChzdHJpbmdbMF0gPT09IFwiOlwiKSB7XG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnNsaWNlKDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDFdID09PSBcIjpcIikge1xuICAgICAgICAgIHN0cmluZyA9IHN0cmluZy5zbGljZSgwLCAtMSk7XG4gICAgICAgIH1cbiAgICAgICAgcGFydHMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgaywgbGVuLCByZWYsIHJlc3VsdHM7XG4gICAgICAgICAgcmVmID0gc3RyaW5nLnNwbGl0KFwiOlwiKTtcbiAgICAgICAgICByZXN1bHRzID0gW107XG4gICAgICAgICAgZm9yIChrID0gMCwgbGVuID0gcmVmLmxlbmd0aDsgayA8IGxlbjsgaysrKSB7XG4gICAgICAgICAgICBwYXJ0ID0gcmVmW2tdO1xuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHBhcnNlSW50KHBhcnQsIDE2KSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICB9KCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGFydHMsXG4gICAgICAgICAgem9uZUlkXG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgaXBhZGRyLklQdjYucGFyc2VyID0gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICAgIHZhciBhZGRyLCBrLCBsZW4sIG1hdGNoLCBvY3RldCwgb2N0ZXRzLCB6b25lSWQ7XG4gICAgICAgIGlmIChpcHY2UmVnZXhlc1tcIm5hdGl2ZVwiXS50ZXN0KHN0cmluZykpIHtcbiAgICAgICAgICByZXR1cm4gZXhwYW5kSVB2NihzdHJpbmcsIDgpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoID0gc3RyaW5nLm1hdGNoKGlwdjZSZWdleGVzW1widHJhbnNpdGlvbmFsXCJdKSkge1xuICAgICAgICAgIHpvbmVJZCA9IG1hdGNoWzZdIHx8IFwiXCI7XG4gICAgICAgICAgYWRkciA9IGV4cGFuZElQdjYobWF0Y2hbMV0uc2xpY2UoMCwgLTEpICsgem9uZUlkLCA2KTtcbiAgICAgICAgICBpZiAoYWRkci5wYXJ0cykge1xuICAgICAgICAgICAgb2N0ZXRzID0gW3BhcnNlSW50KG1hdGNoWzJdKSwgcGFyc2VJbnQobWF0Y2hbM10pLCBwYXJzZUludChtYXRjaFs0XSksIHBhcnNlSW50KG1hdGNoWzVdKV07XG4gICAgICAgICAgICBmb3IgKGsgPSAwLCBsZW4gPSBvY3RldHMubGVuZ3RoOyBrIDwgbGVuOyBrKyspIHtcbiAgICAgICAgICAgICAgb2N0ZXQgPSBvY3RldHNba107XG4gICAgICAgICAgICAgIGlmICghKDAgPD0gb2N0ZXQgJiYgb2N0ZXQgPD0gMjU1KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhZGRyLnBhcnRzLnB1c2gob2N0ZXRzWzBdIDw8IDggfCBvY3RldHNbMV0pO1xuICAgICAgICAgICAgYWRkci5wYXJ0cy5wdXNoKG9jdGV0c1syXSA8PCA4IHwgb2N0ZXRzWzNdKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHBhcnRzOiBhZGRyLnBhcnRzLFxuICAgICAgICAgICAgICB6b25lSWQ6IGFkZHIuem9uZUlkXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH07XG4gICAgICBpcGFkZHIuSVB2NC5pc0lQdjQgPSBpcGFkZHIuSVB2Ni5pc0lQdjYgPSBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VyKHN0cmluZykgIT09IG51bGw7XG4gICAgICB9O1xuICAgICAgaXBhZGRyLklQdjQuaXNWYWxpZCA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICB2YXIgZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBuZXcgdGhpcyh0aGlzLnBhcnNlcihzdHJpbmcpKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IxKSB7XG4gICAgICAgICAgZSA9IGVycm9yMTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBpcGFkZHIuSVB2NC5pc1ZhbGlkRm91clBhcnREZWNpbWFsID0gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICAgIGlmIChpcGFkZHIuSVB2NC5pc1ZhbGlkKHN0cmluZykgJiYgc3RyaW5nLm1hdGNoKC9eKDB8WzEtOV1cXGQqKShcXC4oMHxbMS05XVxcZCopKXszfSQvKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGlwYWRkci5JUHY2LmlzVmFsaWQgPSBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgdmFyIGFkZHIsIGU7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RyaW5nID09PSBcInN0cmluZ1wiICYmIHN0cmluZy5pbmRleE9mKFwiOlwiKSA9PT0gLTEpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhZGRyID0gdGhpcy5wYXJzZXIoc3RyaW5nKTtcbiAgICAgICAgICBuZXcgdGhpcyhhZGRyLnBhcnRzLCBhZGRyLnpvbmVJZCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yMSkge1xuICAgICAgICAgIGUgPSBlcnJvcjE7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaXBhZGRyLklQdjQucGFyc2UgPSBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgdmFyIHBhcnRzO1xuICAgICAgICBwYXJ0cyA9IHRoaXMucGFyc2VyKHN0cmluZyk7XG4gICAgICAgIGlmIChwYXJ0cyA9PT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogc3RyaW5nIGlzIG5vdCBmb3JtYXR0ZWQgbGlrZSBpcCBhZGRyZXNzXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgdGhpcyhwYXJ0cyk7XG4gICAgICB9O1xuICAgICAgaXBhZGRyLklQdjYucGFyc2UgPSBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgdmFyIGFkZHI7XG4gICAgICAgIGFkZHIgPSB0aGlzLnBhcnNlcihzdHJpbmcpO1xuICAgICAgICBpZiAoYWRkci5wYXJ0cyA9PT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogc3RyaW5nIGlzIG5vdCBmb3JtYXR0ZWQgbGlrZSBpcCBhZGRyZXNzXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgdGhpcyhhZGRyLnBhcnRzLCBhZGRyLnpvbmVJZCk7XG4gICAgICB9O1xuICAgICAgaXBhZGRyLklQdjQucGFyc2VDSURSID0gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICAgIHZhciBtYXNrTGVuZ3RoLCBtYXRjaCwgcGFyc2VkO1xuICAgICAgICBpZiAobWF0Y2ggPSBzdHJpbmcubWF0Y2goL14oLispXFwvKFxcZCspJC8pKSB7XG4gICAgICAgICAgbWFza0xlbmd0aCA9IHBhcnNlSW50KG1hdGNoWzJdKTtcbiAgICAgICAgICBpZiAobWFza0xlbmd0aCA+PSAwICYmIG1hc2tMZW5ndGggPD0gMzIpIHtcbiAgICAgICAgICAgIHBhcnNlZCA9IFt0aGlzLnBhcnNlKG1hdGNoWzFdKSwgbWFza0xlbmd0aF07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocGFyc2VkLCBcInRvU3RyaW5nXCIsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmpvaW4oXCIvXCIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogc3RyaW5nIGlzIG5vdCBmb3JtYXR0ZWQgbGlrZSBhbiBJUHY0IENJRFIgcmFuZ2VcIik7XG4gICAgICB9O1xuICAgICAgaXBhZGRyLklQdjQuc3VibmV0TWFza0Zyb21QcmVmaXhMZW5ndGggPSBmdW5jdGlvbihwcmVmaXgpIHtcbiAgICAgICAgdmFyIGZpbGxlZE9jdGV0Q291bnQsIGosIG9jdGV0cztcbiAgICAgICAgcHJlZml4ID0gcGFyc2VJbnQocHJlZml4KTtcbiAgICAgICAgaWYgKHByZWZpeCA8IDAgfHwgcHJlZml4ID4gMzIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpcGFkZHI6IGludmFsaWQgSVB2NCBwcmVmaXggbGVuZ3RoXCIpO1xuICAgICAgICB9XG4gICAgICAgIG9jdGV0cyA9IFswLCAwLCAwLCAwXTtcbiAgICAgICAgaiA9IDA7XG4gICAgICAgIGZpbGxlZE9jdGV0Q291bnQgPSBNYXRoLmZsb29yKHByZWZpeCAvIDgpO1xuICAgICAgICB3aGlsZSAoaiA8IGZpbGxlZE9jdGV0Q291bnQpIHtcbiAgICAgICAgICBvY3RldHNbal0gPSAyNTU7XG4gICAgICAgICAgaisrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWxsZWRPY3RldENvdW50IDwgNCkge1xuICAgICAgICAgIG9jdGV0c1tmaWxsZWRPY3RldENvdW50XSA9IE1hdGgucG93KDIsIHByZWZpeCAlIDgpIC0gMSA8PCA4IC0gcHJlZml4ICUgODtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IHRoaXMob2N0ZXRzKTtcbiAgICAgIH07XG4gICAgICBpcGFkZHIuSVB2NC5icm9hZGNhc3RBZGRyZXNzRnJvbUNJRFIgPSBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgdmFyIGNpZHIsIGVycm9yLCBpLCBpcEludGVyZmFjZU9jdGV0cywgb2N0ZXRzLCBzdWJuZXRNYXNrT2N0ZXRzO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNpZHIgPSB0aGlzLnBhcnNlQ0lEUihzdHJpbmcpO1xuICAgICAgICAgIGlwSW50ZXJmYWNlT2N0ZXRzID0gY2lkclswXS50b0J5dGVBcnJheSgpO1xuICAgICAgICAgIHN1Ym5ldE1hc2tPY3RldHMgPSB0aGlzLnN1Ym5ldE1hc2tGcm9tUHJlZml4TGVuZ3RoKGNpZHJbMV0pLnRvQnl0ZUFycmF5KCk7XG4gICAgICAgICAgb2N0ZXRzID0gW107XG4gICAgICAgICAgaSA9IDA7XG4gICAgICAgICAgd2hpbGUgKGkgPCA0KSB7XG4gICAgICAgICAgICBvY3RldHMucHVzaChwYXJzZUludChpcEludGVyZmFjZU9jdGV0c1tpXSwgMTApIHwgcGFyc2VJbnQoc3VibmV0TWFza09jdGV0c1tpXSwgMTApIF4gMjU1KTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyB0aGlzKG9jdGV0cyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yMSkge1xuICAgICAgICAgIGVycm9yID0gZXJyb3IxO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogdGhlIGFkZHJlc3MgZG9lcyBub3QgaGF2ZSBJUHY0IENJRFIgZm9ybWF0XCIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaXBhZGRyLklQdjQubmV0d29ya0FkZHJlc3NGcm9tQ0lEUiA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICB2YXIgY2lkciwgZXJyb3IsIGksIGlwSW50ZXJmYWNlT2N0ZXRzLCBvY3RldHMsIHN1Ym5ldE1hc2tPY3RldHM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY2lkciA9IHRoaXMucGFyc2VDSURSKHN0cmluZyk7XG4gICAgICAgICAgaXBJbnRlcmZhY2VPY3RldHMgPSBjaWRyWzBdLnRvQnl0ZUFycmF5KCk7XG4gICAgICAgICAgc3VibmV0TWFza09jdGV0cyA9IHRoaXMuc3VibmV0TWFza0Zyb21QcmVmaXhMZW5ndGgoY2lkclsxXSkudG9CeXRlQXJyYXkoKTtcbiAgICAgICAgICBvY3RldHMgPSBbXTtcbiAgICAgICAgICBpID0gMDtcbiAgICAgICAgICB3aGlsZSAoaSA8IDQpIHtcbiAgICAgICAgICAgIG9jdGV0cy5wdXNoKHBhcnNlSW50KGlwSW50ZXJmYWNlT2N0ZXRzW2ldLCAxMCkgJiBwYXJzZUludChzdWJuZXRNYXNrT2N0ZXRzW2ldLCAxMCkpO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IHRoaXMob2N0ZXRzKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IxKSB7XG4gICAgICAgICAgZXJyb3IgPSBlcnJvcjE7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiB0aGUgYWRkcmVzcyBkb2VzIG5vdCBoYXZlIElQdjQgQ0lEUiBmb3JtYXRcIik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBpcGFkZHIuSVB2Ni5wYXJzZUNJRFIgPSBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgdmFyIG1hc2tMZW5ndGgsIG1hdGNoLCBwYXJzZWQ7XG4gICAgICAgIGlmIChtYXRjaCA9IHN0cmluZy5tYXRjaCgvXiguKylcXC8oXFxkKykkLykpIHtcbiAgICAgICAgICBtYXNrTGVuZ3RoID0gcGFyc2VJbnQobWF0Y2hbMl0pO1xuICAgICAgICAgIGlmIChtYXNrTGVuZ3RoID49IDAgJiYgbWFza0xlbmd0aCA8PSAxMjgpIHtcbiAgICAgICAgICAgIHBhcnNlZCA9IFt0aGlzLnBhcnNlKG1hdGNoWzFdKSwgbWFza0xlbmd0aF07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocGFyc2VkLCBcInRvU3RyaW5nXCIsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmpvaW4oXCIvXCIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogc3RyaW5nIGlzIG5vdCBmb3JtYXR0ZWQgbGlrZSBhbiBJUHY2IENJRFIgcmFuZ2VcIik7XG4gICAgICB9O1xuICAgICAgaXBhZGRyLmlzVmFsaWQgPSBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGlwYWRkci5JUHY2LmlzVmFsaWQoc3RyaW5nKSB8fCBpcGFkZHIuSVB2NC5pc1ZhbGlkKHN0cmluZyk7XG4gICAgICB9O1xuICAgICAgaXBhZGRyLnBhcnNlID0gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICAgIGlmIChpcGFkZHIuSVB2Ni5pc1ZhbGlkKHN0cmluZykpIHtcbiAgICAgICAgICByZXR1cm4gaXBhZGRyLklQdjYucGFyc2Uoc3RyaW5nKTtcbiAgICAgICAgfSBlbHNlIGlmIChpcGFkZHIuSVB2NC5pc1ZhbGlkKHN0cmluZykpIHtcbiAgICAgICAgICByZXR1cm4gaXBhZGRyLklQdjQucGFyc2Uoc3RyaW5nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpcGFkZHI6IHRoZSBhZGRyZXNzIGhhcyBuZWl0aGVyIElQdjYgbm9yIElQdjQgZm9ybWF0XCIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaXBhZGRyLnBhcnNlQ0lEUiA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICB2YXIgZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gaXBhZGRyLklQdjYucGFyc2VDSURSKHN0cmluZyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yMSkge1xuICAgICAgICAgIGUgPSBlcnJvcjE7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBpcGFkZHIuSVB2NC5wYXJzZUNJRFIoc3RyaW5nKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcjEyKSB7XG4gICAgICAgICAgICBlID0gZXJyb3IxMjtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogdGhlIGFkZHJlc3MgaGFzIG5laXRoZXIgSVB2NiBub3IgSVB2NCBDSURSIGZvcm1hdFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBpcGFkZHIuZnJvbUJ5dGVBcnJheSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gICAgICAgIHZhciBsZW5ndGg7XG4gICAgICAgIGxlbmd0aCA9IGJ5dGVzLmxlbmd0aDtcbiAgICAgICAgaWYgKGxlbmd0aCA9PT0gNCkge1xuICAgICAgICAgIHJldHVybiBuZXcgaXBhZGRyLklQdjQoYnl0ZXMpO1xuICAgICAgICB9IGVsc2UgaWYgKGxlbmd0aCA9PT0gMTYpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IGlwYWRkci5JUHY2KGJ5dGVzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpcGFkZHI6IHRoZSBiaW5hcnkgaW5wdXQgaXMgbmVpdGhlciBhbiBJUHY2IG5vciBJUHY0IGFkZHJlc3NcIik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBpcGFkZHIucHJvY2VzcyA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICB2YXIgYWRkcjtcbiAgICAgICAgYWRkciA9IHRoaXMucGFyc2Uoc3RyaW5nKTtcbiAgICAgICAgaWYgKGFkZHIua2luZCgpID09PSBcImlwdjZcIiAmJiBhZGRyLmlzSVB2NE1hcHBlZEFkZHJlc3MoKSkge1xuICAgICAgICAgIHJldHVybiBhZGRyLnRvSVB2NEFkZHJlc3MoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gYWRkcjtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9KS5jYWxsKGV4cG9ydHMyKTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9wcm94eS1hZGRyL2luZGV4LmpzXG52YXIgcmVxdWlyZV9wcm94eV9hZGRyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Byb3h5LWFkZHIvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHByb3h5YWRkcjtcbiAgICBtb2R1bGUyLmV4cG9ydHMuYWxsID0gYWxsYWRkcnM7XG4gICAgbW9kdWxlMi5leHBvcnRzLmNvbXBpbGUgPSBjb21waWxlO1xuICAgIHZhciBmb3J3YXJkZWQgPSByZXF1aXJlX2ZvcndhcmRlZCgpO1xuICAgIHZhciBpcGFkZHIgPSByZXF1aXJlX2lwYWRkcigpO1xuICAgIHZhciBESUdJVF9SRUdFWFAgPSAvXlswLTldKyQvO1xuICAgIHZhciBpc2lwID0gaXBhZGRyLmlzVmFsaWQ7XG4gICAgdmFyIHBhcnNlaXAgPSBpcGFkZHIucGFyc2U7XG4gICAgdmFyIElQX1JBTkdFUyA9IHtcbiAgICAgIGxpbmtsb2NhbDogW1wiMTY5LjI1NC4wLjAvMTZcIiwgXCJmZTgwOjovMTBcIl0sXG4gICAgICBsb29wYmFjazogW1wiMTI3LjAuMC4xLzhcIiwgXCI6OjEvMTI4XCJdLFxuICAgICAgdW5pcXVlbG9jYWw6IFtcIjEwLjAuMC4wLzhcIiwgXCIxNzIuMTYuMC4wLzEyXCIsIFwiMTkyLjE2OC4wLjAvMTZcIiwgXCJmYzAwOjovN1wiXVxuICAgIH07XG4gICAgZnVuY3Rpb24gYWxsYWRkcnMocmVxLCB0cnVzdCkge1xuICAgICAgdmFyIGFkZHJzID0gZm9yd2FyZGVkKHJlcSk7XG4gICAgICBpZiAoIXRydXN0KSB7XG4gICAgICAgIHJldHVybiBhZGRycztcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdHJ1c3QgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0cnVzdCA9IGNvbXBpbGUodHJ1c3QpO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhZGRycy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgaWYgKHRydXN0KGFkZHJzW2ldLCBpKSkgY29udGludWU7XG4gICAgICAgIGFkZHJzLmxlbmd0aCA9IGkgKyAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFkZHJzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21waWxlKHZhbCkge1xuICAgICAgaWYgKCF2YWwpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHRydXN0O1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdHJ1c3QgPSBbdmFsXTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgIHRydXN0ID0gdmFsLnNsaWNlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwidW5zdXBwb3J0ZWQgdHJ1c3QgYXJndW1lbnRcIik7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRydXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhbCA9IHRydXN0W2ldO1xuICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChJUF9SQU5HRVMsIHZhbCkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YWwgPSBJUF9SQU5HRVNbdmFsXTtcbiAgICAgICAgdHJ1c3Quc3BsaWNlLmFwcGx5KHRydXN0LCBbaSwgMV0uY29uY2F0KHZhbCkpO1xuICAgICAgICBpICs9IHZhbC5sZW5ndGggLSAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbXBpbGVUcnVzdChjb21waWxlUmFuZ2VTdWJuZXRzKHRydXN0KSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbXBpbGVSYW5nZVN1Ym5ldHMoYXJyKSB7XG4gICAgICB2YXIgcmFuZ2VTdWJuZXRzID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmFuZ2VTdWJuZXRzW2ldID0gcGFyc2VpcE5vdGF0aW9uKGFycltpXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmFuZ2VTdWJuZXRzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21waWxlVHJ1c3QocmFuZ2VTdWJuZXRzKSB7XG4gICAgICB2YXIgbGVuID0gcmFuZ2VTdWJuZXRzLmxlbmd0aDtcbiAgICAgIHJldHVybiBsZW4gPT09IDAgPyB0cnVzdE5vbmUgOiBsZW4gPT09IDEgPyB0cnVzdFNpbmdsZShyYW5nZVN1Ym5ldHNbMF0pIDogdHJ1c3RNdWx0aShyYW5nZVN1Ym5ldHMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZWlwTm90YXRpb24obm90ZSkge1xuICAgICAgdmFyIHBvcyA9IG5vdGUubGFzdEluZGV4T2YoXCIvXCIpO1xuICAgICAgdmFyIHN0ciA9IHBvcyAhPT0gLTEgPyBub3RlLnN1YnN0cmluZygwLCBwb3MpIDogbm90ZTtcbiAgICAgIGlmICghaXNpcChzdHIpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIElQIGFkZHJlc3M6IFwiICsgc3RyKTtcbiAgICAgIH1cbiAgICAgIHZhciBpcCA9IHBhcnNlaXAoc3RyKTtcbiAgICAgIGlmIChwb3MgPT09IC0xICYmIGlwLmtpbmQoKSA9PT0gXCJpcHY2XCIgJiYgaXAuaXNJUHY0TWFwcGVkQWRkcmVzcygpKSB7XG4gICAgICAgIGlwID0gaXAudG9JUHY0QWRkcmVzcygpO1xuICAgICAgfVxuICAgICAgdmFyIG1heCA9IGlwLmtpbmQoKSA9PT0gXCJpcHY2XCIgPyAxMjggOiAzMjtcbiAgICAgIHZhciByYW5nZSA9IHBvcyAhPT0gLTEgPyBub3RlLnN1YnN0cmluZyhwb3MgKyAxLCBub3RlLmxlbmd0aCkgOiBudWxsO1xuICAgICAgaWYgKHJhbmdlID09PSBudWxsKSB7XG4gICAgICAgIHJhbmdlID0gbWF4O1xuICAgICAgfSBlbHNlIGlmIChESUdJVF9SRUdFWFAudGVzdChyYW5nZSkpIHtcbiAgICAgICAgcmFuZ2UgPSBwYXJzZUludChyYW5nZSwgMTApO1xuICAgICAgfSBlbHNlIGlmIChpcC5raW5kKCkgPT09IFwiaXB2NFwiICYmIGlzaXAocmFuZ2UpKSB7XG4gICAgICAgIHJhbmdlID0gcGFyc2VOZXRtYXNrKHJhbmdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJhbmdlID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChyYW5nZSA8PSAwIHx8IHJhbmdlID4gbWF4KSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIHJhbmdlIG9uIGFkZHJlc3M6IFwiICsgbm90ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW2lwLCByYW5nZV07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlTmV0bWFzayhuZXRtYXNrKSB7XG4gICAgICB2YXIgaXAgPSBwYXJzZWlwKG5ldG1hc2spO1xuICAgICAgdmFyIGtpbmQgPSBpcC5raW5kKCk7XG4gICAgICByZXR1cm4ga2luZCA9PT0gXCJpcHY0XCIgPyBpcC5wcmVmaXhMZW5ndGhGcm9tU3VibmV0TWFzaygpIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJveHlhZGRyKHJlcSwgdHJ1c3QpIHtcbiAgICAgIGlmICghcmVxKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJyZXEgYXJndW1lbnQgaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICBpZiAoIXRydXN0KSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJ0cnVzdCBhcmd1bWVudCBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBhZGRycyA9IGFsbGFkZHJzKHJlcSwgdHJ1c3QpO1xuICAgICAgdmFyIGFkZHIgPSBhZGRyc1thZGRycy5sZW5ndGggLSAxXTtcbiAgICAgIHJldHVybiBhZGRyO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cnVzdE5vbmUoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRydXN0TXVsdGkoc3VibmV0cykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIHRydXN0KGFkZHIpIHtcbiAgICAgICAgaWYgKCFpc2lwKGFkZHIpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHZhciBpcCA9IHBhcnNlaXAoYWRkcik7XG4gICAgICAgIHZhciBpcGNvbnY7XG4gICAgICAgIHZhciBraW5kID0gaXAua2luZCgpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN1Ym5ldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgc3VibmV0ID0gc3VibmV0c1tpXTtcbiAgICAgICAgICB2YXIgc3VibmV0aXAgPSBzdWJuZXRbMF07XG4gICAgICAgICAgdmFyIHN1Ym5ldGtpbmQgPSBzdWJuZXRpcC5raW5kKCk7XG4gICAgICAgICAgdmFyIHN1Ym5ldHJhbmdlID0gc3VibmV0WzFdO1xuICAgICAgICAgIHZhciB0cnVzdGVkID0gaXA7XG4gICAgICAgICAgaWYgKGtpbmQgIT09IHN1Ym5ldGtpbmQpIHtcbiAgICAgICAgICAgIGlmIChzdWJuZXRraW5kID09PSBcImlwdjRcIiAmJiAhaXAuaXNJUHY0TWFwcGVkQWRkcmVzcygpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpcGNvbnYpIHtcbiAgICAgICAgICAgICAgaXBjb252ID0gc3VibmV0a2luZCA9PT0gXCJpcHY0XCIgPyBpcC50b0lQdjRBZGRyZXNzKCkgOiBpcC50b0lQdjRNYXBwZWRBZGRyZXNzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnVzdGVkID0gaXBjb252O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHJ1c3RlZC5tYXRjaChzdWJuZXRpcCwgc3VibmV0cmFuZ2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJ1c3RTaW5nbGUoc3VibmV0KSB7XG4gICAgICB2YXIgc3VibmV0aXAgPSBzdWJuZXRbMF07XG4gICAgICB2YXIgc3VibmV0a2luZCA9IHN1Ym5ldGlwLmtpbmQoKTtcbiAgICAgIHZhciBzdWJuZXRpc2lwdjQgPSBzdWJuZXRraW5kID09PSBcImlwdjRcIjtcbiAgICAgIHZhciBzdWJuZXRyYW5nZSA9IHN1Ym5ldFsxXTtcbiAgICAgIHJldHVybiBmdW5jdGlvbiB0cnVzdChhZGRyKSB7XG4gICAgICAgIGlmICghaXNpcChhZGRyKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICB2YXIgaXAgPSBwYXJzZWlwKGFkZHIpO1xuICAgICAgICB2YXIga2luZCA9IGlwLmtpbmQoKTtcbiAgICAgICAgaWYgKGtpbmQgIT09IHN1Ym5ldGtpbmQpIHtcbiAgICAgICAgICBpZiAoc3VibmV0aXNpcHY0ICYmICFpcC5pc0lQdjRNYXBwZWRBZGRyZXNzKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaXAgPSBzdWJuZXRpc2lwdjQgPyBpcC50b0lQdjRBZGRyZXNzKCkgOiBpcC50b0lQdjRNYXBwZWRBZGRyZXNzKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlwLm1hdGNoKHN1Ym5ldGlwLCBzdWJuZXRyYW5nZSk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9leHByZXNzL2xpYi91dGlscy5qc1xudmFyIHJlcXVpcmVfdXRpbHMzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL3V0aWxzLmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgeyBNRVRIT0RTIH0gPSByZXF1aXJlKFwibm9kZTpodHRwXCIpO1xuICAgIHZhciBjb250ZW50VHlwZTIgPSByZXF1aXJlX2NvbnRlbnRfdHlwZSgpO1xuICAgIHZhciBldGFnID0gcmVxdWlyZV9ldGFnKCk7XG4gICAgdmFyIG1pbWUgPSByZXF1aXJlX21pbWVfdHlwZXMyKCk7XG4gICAgdmFyIHByb3h5YWRkciA9IHJlcXVpcmVfcHJveHlfYWRkcigpO1xuICAgIHZhciBxcyA9IHJlcXVpcmVfbGliMygpO1xuICAgIHZhciBxdWVyeXN0cmluZyA9IHJlcXVpcmUoXCJxdWVyeXN0cmluZ1wiKTtcbiAgICBleHBvcnRzMi5tZXRob2RzID0gTUVUSE9EUy5tYXAoKG1ldGhvZCkgPT4gbWV0aG9kLnRvTG93ZXJDYXNlKCkpO1xuICAgIGV4cG9ydHMyLmV0YWcgPSBjcmVhdGVFVGFnR2VuZXJhdG9yKHsgd2VhazogZmFsc2UgfSk7XG4gICAgZXhwb3J0czIud2V0YWcgPSBjcmVhdGVFVGFnR2VuZXJhdG9yKHsgd2VhazogdHJ1ZSB9KTtcbiAgICBleHBvcnRzMi5ub3JtYWxpemVUeXBlID0gZnVuY3Rpb24odHlwZSkge1xuICAgICAgcmV0dXJuIH50eXBlLmluZGV4T2YoXCIvXCIpID8gYWNjZXB0UGFyYW1zKHR5cGUpIDogeyB2YWx1ZTogbWltZS5sb29rdXAodHlwZSkgfHwgXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIiwgcGFyYW1zOiB7fSB9O1xuICAgIH07XG4gICAgZXhwb3J0czIubm9ybWFsaXplVHlwZXMgPSBmdW5jdGlvbih0eXBlcykge1xuICAgICAgcmV0dXJuIHR5cGVzLm1hcChleHBvcnRzMi5ub3JtYWxpemVUeXBlKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGFjY2VwdFBhcmFtcyhzdHIpIHtcbiAgICAgIHZhciBsZW5ndGggPSBzdHIubGVuZ3RoO1xuICAgICAgdmFyIGNvbG9uSW5kZXggPSBzdHIuaW5kZXhPZihcIjtcIik7XG4gICAgICB2YXIgaW5kZXggPSBjb2xvbkluZGV4ID09PSAtMSA/IGxlbmd0aCA6IGNvbG9uSW5kZXg7XG4gICAgICB2YXIgcmV0ID0geyB2YWx1ZTogc3RyLnNsaWNlKDAsIGluZGV4KS50cmltKCksIHF1YWxpdHk6IDEsIHBhcmFtczoge30gfTtcbiAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgc3BsaXRJbmRleCA9IHN0ci5pbmRleE9mKFwiPVwiLCBpbmRleCk7XG4gICAgICAgIGlmIChzcGxpdEluZGV4ID09PSAtMSkgYnJlYWs7XG4gICAgICAgIHZhciBjb2xvbkluZGV4ID0gc3RyLmluZGV4T2YoXCI7XCIsIGluZGV4KTtcbiAgICAgICAgdmFyIGVuZEluZGV4ID0gY29sb25JbmRleCA9PT0gLTEgPyBsZW5ndGggOiBjb2xvbkluZGV4O1xuICAgICAgICBpZiAoc3BsaXRJbmRleCA+IGVuZEluZGV4KSB7XG4gICAgICAgICAgaW5kZXggPSBzdHIubGFzdEluZGV4T2YoXCI7XCIsIHNwbGl0SW5kZXggLSAxKSArIDE7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGtleSA9IHN0ci5zbGljZShpbmRleCwgc3BsaXRJbmRleCkudHJpbSgpO1xuICAgICAgICB2YXIgdmFsdWUgPSBzdHIuc2xpY2Uoc3BsaXRJbmRleCArIDEsIGVuZEluZGV4KS50cmltKCk7XG4gICAgICAgIGlmIChrZXkgPT09IFwicVwiKSB7XG4gICAgICAgICAgcmV0LnF1YWxpdHkgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXQucGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpbmRleCA9IGVuZEluZGV4ICsgMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICAgIGV4cG9ydHMyLmNvbXBpbGVFVGFnID0gZnVuY3Rpb24odmFsKSB7XG4gICAgICB2YXIgZm47XG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHZhbCkge1xuICAgICAgICBjYXNlIHRydWU6XG4gICAgICAgIGNhc2UgXCJ3ZWFrXCI6XG4gICAgICAgICAgZm4gPSBleHBvcnRzMi53ZXRhZztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBmYWxzZTpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInN0cm9uZ1wiOlxuICAgICAgICAgIGZuID0gZXhwb3J0czIuZXRhZztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwidW5rbm93biB2YWx1ZSBmb3IgZXRhZyBmdW5jdGlvbjogXCIgKyB2YWwpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZuO1xuICAgIH07XG4gICAgZXhwb3J0czIuY29tcGlsZVF1ZXJ5UGFyc2VyID0gZnVuY3Rpb24gY29tcGlsZVF1ZXJ5UGFyc2VyKHZhbCkge1xuICAgICAgdmFyIGZuO1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgfVxuICAgICAgc3dpdGNoICh2YWwpIHtcbiAgICAgICAgY2FzZSB0cnVlOlxuICAgICAgICBjYXNlIFwic2ltcGxlXCI6XG4gICAgICAgICAgZm4gPSBxdWVyeXN0cmluZy5wYXJzZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBmYWxzZTpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImV4dGVuZGVkXCI6XG4gICAgICAgICAgZm4gPSBwYXJzZUV4dGVuZGVkUXVlcnlTdHJpbmc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInVua25vd24gdmFsdWUgZm9yIHF1ZXJ5IHBhcnNlciBmdW5jdGlvbjogXCIgKyB2YWwpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZuO1xuICAgIH07XG4gICAgZXhwb3J0czIuY29tcGlsZVRydXN0ID0gZnVuY3Rpb24odmFsKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdmFsO1xuICAgICAgaWYgKHZhbCA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24oYSwgaSkge1xuICAgICAgICAgIHJldHVybiBpIDwgdmFsO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdmFsID0gdmFsLnNwbGl0KFwiLFwiKS5tYXAoZnVuY3Rpb24odikge1xuICAgICAgICAgIHJldHVybiB2LnRyaW0oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJveHlhZGRyLmNvbXBpbGUodmFsIHx8IFtdKTtcbiAgICB9O1xuICAgIGV4cG9ydHMyLnNldENoYXJzZXQgPSBmdW5jdGlvbiBzZXRDaGFyc2V0KHR5cGUsIGNoYXJzZXQpIHtcbiAgICAgIGlmICghdHlwZSB8fCAhY2hhcnNldCkge1xuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgIH1cbiAgICAgIHZhciBwYXJzZWQgPSBjb250ZW50VHlwZTIucGFyc2UodHlwZSk7XG4gICAgICBwYXJzZWQucGFyYW1ldGVycy5jaGFyc2V0ID0gY2hhcnNldDtcbiAgICAgIHJldHVybiBjb250ZW50VHlwZTIuZm9ybWF0KHBhcnNlZCk7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBjcmVhdGVFVGFnR2VuZXJhdG9yKG9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiBnZW5lcmF0ZUVUYWcoYm9keSwgZW5jb2RpbmcpIHtcbiAgICAgICAgdmFyIGJ1ZiA9ICFCdWZmZXIuaXNCdWZmZXIoYm9keSkgPyBCdWZmZXIuZnJvbShib2R5LCBlbmNvZGluZykgOiBib2R5O1xuICAgICAgICByZXR1cm4gZXRhZyhidWYsIG9wdGlvbnMpO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VFeHRlbmRlZFF1ZXJ5U3RyaW5nKHN0cikge1xuICAgICAgcmV0dXJuIHFzLnBhcnNlKHN0ciwge1xuICAgICAgICBhbGxvd1Byb3RvdHlwZXM6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy93cmFwcHkvd3JhcHB5LmpzXG52YXIgcmVxdWlyZV93cmFwcHkgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvd3JhcHB5L3dyYXBweS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gd3JhcHB5O1xuICAgIGZ1bmN0aW9uIHdyYXBweShmbiwgY2IpIHtcbiAgICAgIGlmIChmbiAmJiBjYikgcmV0dXJuIHdyYXBweShmbikoY2IpO1xuICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwibmVlZCB3cmFwcGVyIGZ1bmN0aW9uXCIpO1xuICAgICAgT2JqZWN0LmtleXMoZm4pLmZvckVhY2goZnVuY3Rpb24oaykge1xuICAgICAgICB3cmFwcGVyW2tdID0gZm5ba107XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJldCA9IGZuLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICB2YXIgY2IyID0gYXJnc1thcmdzLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAodHlwZW9mIHJldCA9PT0gXCJmdW5jdGlvblwiICYmIHJldCAhPT0gY2IyKSB7XG4gICAgICAgICAgT2JqZWN0LmtleXMoY2IyKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHtcbiAgICAgICAgICAgIHJldFtrXSA9IGNiMltrXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9vbmNlL29uY2UuanNcbnZhciByZXF1aXJlX29uY2UgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvb25jZS9vbmNlLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICB2YXIgd3JhcHB5ID0gcmVxdWlyZV93cmFwcHkoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB3cmFwcHkob25jZSk7XG4gICAgbW9kdWxlMi5leHBvcnRzLnN0cmljdCA9IHdyYXBweShvbmNlU3RyaWN0KTtcbiAgICBvbmNlLnByb3RvID0gb25jZShmdW5jdGlvbigpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGdW5jdGlvbi5wcm90b3R5cGUsIFwib25jZVwiLCB7XG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gb25jZSh0aGlzKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGdW5jdGlvbi5wcm90b3R5cGUsIFwib25jZVN0cmljdFwiLCB7XG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gb25jZVN0cmljdCh0aGlzKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBvbmNlKGZuKSB7XG4gICAgICB2YXIgZiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoZi5jYWxsZWQpIHJldHVybiBmLnZhbHVlO1xuICAgICAgICBmLmNhbGxlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBmLnZhbHVlID0gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgICBmLmNhbGxlZCA9IGZhbHNlO1xuICAgICAgcmV0dXJuIGY7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9uY2VTdHJpY3QoZm4pIHtcbiAgICAgIHZhciBmID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmIChmLmNhbGxlZClcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZi5vbmNlRXJyb3IpO1xuICAgICAgICBmLmNhbGxlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBmLnZhbHVlID0gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgICB2YXIgbmFtZSA9IGZuLm5hbWUgfHwgXCJGdW5jdGlvbiB3cmFwcGVkIHdpdGggYG9uY2VgXCI7XG4gICAgICBmLm9uY2VFcnJvciA9IG5hbWUgKyBcIiBzaG91bGRuJ3QgYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlXCI7XG4gICAgICBmLmNhbGxlZCA9IGZhbHNlO1xuICAgICAgcmV0dXJuIGY7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2lzLXByb21pc2UvaW5kZXguanNcbnZhciByZXF1aXJlX2lzX3Byb21pc2UgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvaXMtcHJvbWlzZS9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gaXNQcm9taXNlO1xuICAgIG1vZHVsZTIuZXhwb3J0cy5kZWZhdWx0ID0gaXNQcm9taXNlO1xuICAgIGZ1bmN0aW9uIGlzUHJvbWlzZShvYmopIHtcbiAgICAgIHJldHVybiAhIW9iaiAmJiAodHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCIpICYmIHR5cGVvZiBvYmoudGhlbiA9PT0gXCJmdW5jdGlvblwiO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9wYXRoLXRvLXJlZ2V4cC9kaXN0L2luZGV4LmpzXG52YXIgcmVxdWlyZV9kaXN0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3BhdGgtdG8tcmVnZXhwL2Rpc3QvaW5kZXguanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgZXhwb3J0czIuVG9rZW5EYXRhID0gdm9pZCAwO1xuICAgIGV4cG9ydHMyLnBhcnNlID0gcGFyc2U7XG4gICAgZXhwb3J0czIuY29tcGlsZSA9IGNvbXBpbGU7XG4gICAgZXhwb3J0czIubWF0Y2ggPSBtYXRjaDtcbiAgICBleHBvcnRzMi5wYXRoVG9SZWdleHAgPSBwYXRoVG9SZWdleHA7XG4gICAgZXhwb3J0czIuc3RyaW5naWZ5ID0gc3RyaW5naWZ5O1xuICAgIHZhciBERUZBVUxUX0RFTElNSVRFUiA9IFwiL1wiO1xuICAgIHZhciBOT09QX1ZBTFVFID0gKHZhbHVlKSA9PiB2YWx1ZTtcbiAgICB2YXIgSURfU1RBUlQgPSAvXlskX1xccHtJRF9TdGFydH1dJC91O1xuICAgIHZhciBJRF9DT05USU5VRSA9IC9eWyRcXHUyMDBjXFx1MjAwZFxccHtJRF9Db250aW51ZX1dJC91O1xuICAgIHZhciBERUJVR19VUkwgPSBcImh0dHBzOi8vZ2l0Lm5ldy9wYXRoVG9SZWdleHBFcnJvclwiO1xuICAgIHZhciBTSU1QTEVfVE9LRU5TID0ge1xuICAgICAgLy8gR3JvdXBzLlxuICAgICAgXCJ7XCI6IFwie1wiLFxuICAgICAgXCJ9XCI6IFwifVwiLFxuICAgICAgLy8gUmVzZXJ2ZWQuXG4gICAgICBcIihcIjogXCIoXCIsXG4gICAgICBcIilcIjogXCIpXCIsXG4gICAgICBcIltcIjogXCJbXCIsXG4gICAgICBcIl1cIjogXCJdXCIsXG4gICAgICBcIitcIjogXCIrXCIsXG4gICAgICBcIj9cIjogXCI/XCIsXG4gICAgICBcIiFcIjogXCIhXCJcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGVzY2FwZVRleHQoc3RyKSB7XG4gICAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1t7fSgpXFxbXFxdKz8hOipdL2csIFwiXFxcXCQmXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlc2NhcGUyKHN0cikge1xuICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9bLisqP14ke30oKVtcXF18L1xcXFxdL2csIFwiXFxcXCQmXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiogbGV4ZXIoc3RyKSB7XG4gICAgICBjb25zdCBjaGFycyA9IFsuLi5zdHJdO1xuICAgICAgbGV0IGkgPSAwO1xuICAgICAgZnVuY3Rpb24gbmFtZSgpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcbiAgICAgICAgaWYgKElEX1NUQVJULnRlc3QoY2hhcnNbKytpXSkpIHtcbiAgICAgICAgICB2YWx1ZSArPSBjaGFyc1tpXTtcbiAgICAgICAgICB3aGlsZSAoSURfQ09OVElOVUUudGVzdChjaGFyc1srK2ldKSkge1xuICAgICAgICAgICAgdmFsdWUgKz0gY2hhcnNbaV07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGNoYXJzW2ldID09PSAnXCInKSB7XG4gICAgICAgICAgbGV0IHBvcyA9IGk7XG4gICAgICAgICAgd2hpbGUgKGkgPCBjaGFycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChjaGFyc1srK2ldID09PSAnXCInKSB7XG4gICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgICAgcG9zID0gMDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2hhcnNbaV0gPT09IFwiXFxcXFwiKSB7XG4gICAgICAgICAgICAgIHZhbHVlICs9IGNoYXJzWysraV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2YWx1ZSArPSBjaGFyc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHBvcykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgVW50ZXJtaW5hdGVkIHF1b3RlIGF0ICR7cG9zfTogJHtERUJVR19VUkx9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBNaXNzaW5nIHBhcmFtZXRlciBuYW1lIGF0ICR7aX06ICR7REVCVUdfVVJMfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChpIDwgY2hhcnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gY2hhcnNbaV07XG4gICAgICAgIGNvbnN0IHR5cGUgPSBTSU1QTEVfVE9LRU5TW3ZhbHVlXTtcbiAgICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgICB5aWVsZCB7IHR5cGUsIGluZGV4OiBpKyssIHZhbHVlIH07XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IFwiXFxcXFwiKSB7XG4gICAgICAgICAgeWllbGQgeyB0eXBlOiBcIkVTQ0FQRURcIiwgaW5kZXg6IGkrKywgdmFsdWU6IGNoYXJzW2krK10gfTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gXCI6XCIpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZTIgPSBuYW1lKCk7XG4gICAgICAgICAgeWllbGQgeyB0eXBlOiBcIlBBUkFNXCIsIGluZGV4OiBpLCB2YWx1ZTogdmFsdWUyIH07XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IFwiKlwiKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUyID0gbmFtZSgpO1xuICAgICAgICAgIHlpZWxkIHsgdHlwZTogXCJXSUxEQ0FSRFwiLCBpbmRleDogaSwgdmFsdWU6IHZhbHVlMiB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHlpZWxkIHsgdHlwZTogXCJDSEFSXCIsIGluZGV4OiBpLCB2YWx1ZTogY2hhcnNbaSsrXSB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyB0eXBlOiBcIkVORFwiLCBpbmRleDogaSwgdmFsdWU6IFwiXCIgfTtcbiAgICB9XG4gICAgdmFyIEl0ZXIgPSBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3Rvcih0b2tlbnMpIHtcbiAgICAgICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gICAgICB9XG4gICAgICBwZWVrKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3BlZWspIHtcbiAgICAgICAgICBjb25zdCBuZXh0ID0gdGhpcy50b2tlbnMubmV4dCgpO1xuICAgICAgICAgIHRoaXMuX3BlZWsgPSBuZXh0LnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9wZWVrO1xuICAgICAgfVxuICAgICAgdHJ5Q29uc3VtZSh0eXBlKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5wZWVrKCk7XG4gICAgICAgIGlmICh0b2tlbi50eXBlICE9PSB0eXBlKVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5fcGVlayA9IHZvaWQgMDtcbiAgICAgICAgcmV0dXJuIHRva2VuLnZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3VtZSh0eXBlKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy50cnlDb25zdW1lKHR5cGUpO1xuICAgICAgICBpZiAodmFsdWUgIT09IHZvaWQgMClcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIGNvbnN0IHsgdHlwZTogbmV4dFR5cGUsIGluZGV4IH0gPSB0aGlzLnBlZWsoKTtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgVW5leHBlY3RlZCAke25leHRUeXBlfSBhdCAke2luZGV4fSwgZXhwZWN0ZWQgJHt0eXBlfTogJHtERUJVR19VUkx9YCk7XG4gICAgICB9XG4gICAgICB0ZXh0KCkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgICAgICAgbGV0IHZhbHVlO1xuICAgICAgICB3aGlsZSAodmFsdWUgPSB0aGlzLnRyeUNvbnN1bWUoXCJDSEFSXCIpIHx8IHRoaXMudHJ5Q29uc3VtZShcIkVTQ0FQRURcIikpIHtcbiAgICAgICAgICByZXN1bHQgKz0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBUb2tlbkRhdGEgPSBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3Rvcih0b2tlbnMpIHtcbiAgICAgICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzMi5Ub2tlbkRhdGEgPSBUb2tlbkRhdGE7XG4gICAgZnVuY3Rpb24gcGFyc2Uoc3RyLCBvcHRpb25zID0ge30pIHtcbiAgICAgIGNvbnN0IHsgZW5jb2RlUGF0aCA9IE5PT1BfVkFMVUUgfSA9IG9wdGlvbnM7XG4gICAgICBjb25zdCBpdCA9IG5ldyBJdGVyKGxleGVyKHN0cikpO1xuICAgICAgZnVuY3Rpb24gY29uc3VtZShlbmRUeXBlKSB7XG4gICAgICAgIGNvbnN0IHRva2VuczIgPSBbXTtcbiAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICBjb25zdCBwYXRoID0gaXQudGV4dCgpO1xuICAgICAgICAgIGlmIChwYXRoKVxuICAgICAgICAgICAgdG9rZW5zMi5wdXNoKHsgdHlwZTogXCJ0ZXh0XCIsIHZhbHVlOiBlbmNvZGVQYXRoKHBhdGgpIH0pO1xuICAgICAgICAgIGNvbnN0IHBhcmFtID0gaXQudHJ5Q29uc3VtZShcIlBBUkFNXCIpO1xuICAgICAgICAgIGlmIChwYXJhbSkge1xuICAgICAgICAgICAgdG9rZW5zMi5wdXNoKHtcbiAgICAgICAgICAgICAgdHlwZTogXCJwYXJhbVwiLFxuICAgICAgICAgICAgICBuYW1lOiBwYXJhbVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3Qgd2lsZGNhcmQgPSBpdC50cnlDb25zdW1lKFwiV0lMRENBUkRcIik7XG4gICAgICAgICAgaWYgKHdpbGRjYXJkKSB7XG4gICAgICAgICAgICB0b2tlbnMyLnB1c2goe1xuICAgICAgICAgICAgICB0eXBlOiBcIndpbGRjYXJkXCIsXG4gICAgICAgICAgICAgIG5hbWU6IHdpbGRjYXJkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBvcGVuID0gaXQudHJ5Q29uc3VtZShcIntcIik7XG4gICAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgIHRva2VuczIucHVzaCh7XG4gICAgICAgICAgICAgIHR5cGU6IFwiZ3JvdXBcIixcbiAgICAgICAgICAgICAgdG9rZW5zOiBjb25zdW1lKFwifVwiKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaXQuY29uc3VtZShlbmRUeXBlKTtcbiAgICAgICAgICByZXR1cm4gdG9rZW5zMjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgdG9rZW5zID0gY29uc3VtZShcIkVORFwiKTtcbiAgICAgIHJldHVybiBuZXcgVG9rZW5EYXRhKHRva2Vucyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbXBpbGUocGF0aCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICBjb25zdCB7IGVuY29kZSA9IGVuY29kZVVSSUNvbXBvbmVudCwgZGVsaW1pdGVyID0gREVGQVVMVF9ERUxJTUlURVIgfSA9IG9wdGlvbnM7XG4gICAgICBjb25zdCBkYXRhID0gcGF0aCBpbnN0YW5jZW9mIFRva2VuRGF0YSA/IHBhdGggOiBwYXJzZShwYXRoLCBvcHRpb25zKTtcbiAgICAgIGNvbnN0IGZuID0gdG9rZW5zVG9GdW5jdGlvbihkYXRhLnRva2VucywgZGVsaW1pdGVyLCBlbmNvZGUpO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIHBhdGgyKGRhdGEyID0ge30pIHtcbiAgICAgICAgY29uc3QgW3BhdGgzLCAuLi5taXNzaW5nXSA9IGZuKGRhdGEyKTtcbiAgICAgICAgaWYgKG1pc3NpbmcubGVuZ3RoKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTWlzc2luZyBwYXJhbWV0ZXJzOiAke21pc3Npbmcuam9pbihcIiwgXCIpfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXRoMztcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRva2Vuc1RvRnVuY3Rpb24odG9rZW5zLCBkZWxpbWl0ZXIsIGVuY29kZSkge1xuICAgICAgY29uc3QgZW5jb2RlcnMgPSB0b2tlbnMubWFwKCh0b2tlbikgPT4gdG9rZW5Ub0Z1bmN0aW9uKHRva2VuLCBkZWxpbWl0ZXIsIGVuY29kZSkpO1xuICAgICAgcmV0dXJuIChkYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtcIlwiXTtcbiAgICAgICAgZm9yIChjb25zdCBlbmNvZGVyIG9mIGVuY29kZXJzKSB7XG4gICAgICAgICAgY29uc3QgW3ZhbHVlLCAuLi5leHRyYXNdID0gZW5jb2RlcihkYXRhKTtcbiAgICAgICAgICByZXN1bHRbMF0gKz0gdmFsdWU7XG4gICAgICAgICAgcmVzdWx0LnB1c2goLi4uZXh0cmFzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdG9rZW5Ub0Z1bmN0aW9uKHRva2VuLCBkZWxpbWl0ZXIsIGVuY29kZSkge1xuICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwidGV4dFwiKVxuICAgICAgICByZXR1cm4gKCkgPT4gW3Rva2VuLnZhbHVlXTtcbiAgICAgIGlmICh0b2tlbi50eXBlID09PSBcImdyb3VwXCIpIHtcbiAgICAgICAgY29uc3QgZm4gPSB0b2tlbnNUb0Z1bmN0aW9uKHRva2VuLnRva2VucywgZGVsaW1pdGVyLCBlbmNvZGUpO1xuICAgICAgICByZXR1cm4gKGRhdGEpID0+IHtcbiAgICAgICAgICBjb25zdCBbdmFsdWUsIC4uLm1pc3NpbmddID0gZm4oZGF0YSk7XG4gICAgICAgICAgaWYgKCFtaXNzaW5nLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiBbdmFsdWVdO1xuICAgICAgICAgIHJldHVybiBbXCJcIl07XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjb25zdCBlbmNvZGVWYWx1ZSA9IGVuY29kZSB8fCBOT09QX1ZBTFVFO1xuICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwid2lsZGNhcmRcIiAmJiBlbmNvZGUgIT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiAoZGF0YSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YVt0b2tlbi5uYW1lXTtcbiAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBbXCJcIiwgdG9rZW4ubmFtZV07XG4gICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFwiJHt0b2tlbi5uYW1lfVwiIHRvIGJlIGEgbm9uLWVtcHR5IGFycmF5YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB2YWx1ZS5tYXAoKHZhbHVlMiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZTIgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcIiR7dG9rZW4ubmFtZX0vJHtpbmRleH1cIiB0byBiZSBhIHN0cmluZ2ApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBlbmNvZGVWYWx1ZSh2YWx1ZTIpO1xuICAgICAgICAgICAgfSkuam9pbihkZWxpbWl0ZXIpXG4gICAgICAgICAgXTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoZGF0YSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGFbdG9rZW4ubmFtZV07XG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKVxuICAgICAgICAgIHJldHVybiBbXCJcIiwgdG9rZW4ubmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcIiR7dG9rZW4ubmFtZX1cIiB0byBiZSBhIHN0cmluZ2ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbZW5jb2RlVmFsdWUodmFsdWUpXTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1hdGNoKHBhdGgsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgY29uc3QgeyBkZWNvZGUgPSBkZWNvZGVVUklDb21wb25lbnQsIGRlbGltaXRlciA9IERFRkFVTFRfREVMSU1JVEVSIH0gPSBvcHRpb25zO1xuICAgICAgY29uc3QgeyByZWdleHAsIGtleXMgfSA9IHBhdGhUb1JlZ2V4cChwYXRoLCBvcHRpb25zKTtcbiAgICAgIGNvbnN0IGRlY29kZXJzID0ga2V5cy5tYXAoKGtleSkgPT4ge1xuICAgICAgICBpZiAoZGVjb2RlID09PSBmYWxzZSlcbiAgICAgICAgICByZXR1cm4gTk9PUF9WQUxVRTtcbiAgICAgICAgaWYgKGtleS50eXBlID09PSBcInBhcmFtXCIpXG4gICAgICAgICAgcmV0dXJuIGRlY29kZTtcbiAgICAgICAgcmV0dXJuICh2YWx1ZSkgPT4gdmFsdWUuc3BsaXQoZGVsaW1pdGVyKS5tYXAoZGVjb2RlKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIG1hdGNoMihpbnB1dCkge1xuICAgICAgICBjb25zdCBtID0gcmVnZXhwLmV4ZWMoaW5wdXQpO1xuICAgICAgICBpZiAoIW0pXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBwYXRoMiA9IG1bMF07XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IG0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAobVtpXSA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgY29uc3Qga2V5ID0ga2V5c1tpIC0gMV07XG4gICAgICAgICAgY29uc3QgZGVjb2RlciA9IGRlY29kZXJzW2kgLSAxXTtcbiAgICAgICAgICBwYXJhbXNba2V5Lm5hbWVdID0gZGVjb2RlcihtW2ldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBwYXRoOiBwYXRoMiwgcGFyYW1zIH07XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXRoVG9SZWdleHAocGF0aCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICBjb25zdCB7IGRlbGltaXRlciA9IERFRkFVTFRfREVMSU1JVEVSLCBlbmQgPSB0cnVlLCBzZW5zaXRpdmUgPSBmYWxzZSwgdHJhaWxpbmcgPSB0cnVlIH0gPSBvcHRpb25zO1xuICAgICAgY29uc3Qga2V5cyA9IFtdO1xuICAgICAgY29uc3Qgc291cmNlcyA9IFtdO1xuICAgICAgY29uc3QgZmxhZ3MgPSBzZW5zaXRpdmUgPyBcIlwiIDogXCJpXCI7XG4gICAgICBjb25zdCBwYXRocyA9IEFycmF5LmlzQXJyYXkocGF0aCkgPyBwYXRoIDogW3BhdGhdO1xuICAgICAgY29uc3QgaXRlbXMgPSBwYXRocy5tYXAoKHBhdGgyKSA9PiBwYXRoMiBpbnN0YW5jZW9mIFRva2VuRGF0YSA/IHBhdGgyIDogcGFyc2UocGF0aDIsIG9wdGlvbnMpKTtcbiAgICAgIGZvciAoY29uc3QgeyB0b2tlbnMgfSBvZiBpdGVtcykge1xuICAgICAgICBmb3IgKGNvbnN0IHNlcSBvZiBmbGF0dGVuKHRva2VucywgMCwgW10pKSB7XG4gICAgICAgICAgY29uc3QgcmVnZXhwMiA9IHNlcXVlbmNlVG9SZWdFeHAoc2VxLCBkZWxpbWl0ZXIsIGtleXMpO1xuICAgICAgICAgIHNvdXJjZXMucHVzaChyZWdleHAyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IHBhdHRlcm4gPSBgXig/OiR7c291cmNlcy5qb2luKFwifFwiKX0pYDtcbiAgICAgIGlmICh0cmFpbGluZylcbiAgICAgICAgcGF0dGVybiArPSBgKD86JHtlc2NhcGUyKGRlbGltaXRlcil9JCk/YDtcbiAgICAgIHBhdHRlcm4gKz0gZW5kID8gXCIkXCIgOiBgKD89JHtlc2NhcGUyKGRlbGltaXRlcil9fCQpYDtcbiAgICAgIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAocGF0dGVybiwgZmxhZ3MpO1xuICAgICAgcmV0dXJuIHsgcmVnZXhwLCBrZXlzIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uKiBmbGF0dGVuKHRva2VucywgaW5kZXgsIGluaXQpIHtcbiAgICAgIGlmIChpbmRleCA9PT0gdG9rZW5zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4geWllbGQgaW5pdDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2luZGV4XTtcbiAgICAgIGlmICh0b2tlbi50eXBlID09PSBcImdyb3VwXCIpIHtcbiAgICAgICAgY29uc3QgZm9yayA9IGluaXQuc2xpY2UoKTtcbiAgICAgICAgZm9yIChjb25zdCBzZXEgb2YgZmxhdHRlbih0b2tlbi50b2tlbnMsIDAsIGZvcmspKSB7XG4gICAgICAgICAgeWllbGQqIGZsYXR0ZW4odG9rZW5zLCBpbmRleCArIDEsIHNlcSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluaXQucHVzaCh0b2tlbik7XG4gICAgICB9XG4gICAgICB5aWVsZCogZmxhdHRlbih0b2tlbnMsIGluZGV4ICsgMSwgaW5pdCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNlcXVlbmNlVG9SZWdFeHAodG9rZW5zLCBkZWxpbWl0ZXIsIGtleXMpIHtcbiAgICAgIGxldCByZXN1bHQgPSBcIlwiO1xuICAgICAgbGV0IGJhY2t0cmFjayA9IFwiXCI7XG4gICAgICBsZXQgaXNTYWZlU2VnbWVudFBhcmFtID0gdHJ1ZTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2ldO1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICAgICAgICByZXN1bHQgKz0gZXNjYXBlMih0b2tlbi52YWx1ZSk7XG4gICAgICAgICAgYmFja3RyYWNrICs9IHRva2VuLnZhbHVlO1xuICAgICAgICAgIGlzU2FmZVNlZ21lbnRQYXJhbSB8fCAoaXNTYWZlU2VnbWVudFBhcmFtID0gdG9rZW4udmFsdWUuaW5jbHVkZXMoZGVsaW1pdGVyKSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwicGFyYW1cIiB8fCB0b2tlbi50eXBlID09PSBcIndpbGRjYXJkXCIpIHtcbiAgICAgICAgICBpZiAoIWlzU2FmZVNlZ21lbnRQYXJhbSAmJiAhYmFja3RyYWNrKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBNaXNzaW5nIHRleHQgYWZ0ZXIgXCIke3Rva2VuLm5hbWV9XCI6ICR7REVCVUdfVVJMfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJwYXJhbVwiKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gYCgke25lZ2F0ZShkZWxpbWl0ZXIsIGlzU2FmZVNlZ21lbnRQYXJhbSA/IFwiXCIgOiBiYWNrdHJhY2spfSspYDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ICs9IGAoW1xcXFxzXFxcXFNdKylgO1xuICAgICAgICAgIH1cbiAgICAgICAgICBrZXlzLnB1c2godG9rZW4pO1xuICAgICAgICAgIGJhY2t0cmFjayA9IFwiXCI7XG4gICAgICAgICAgaXNTYWZlU2VnbWVudFBhcmFtID0gZmFsc2U7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5lZ2F0ZShkZWxpbWl0ZXIsIGJhY2t0cmFjaykge1xuICAgICAgaWYgKGJhY2t0cmFjay5sZW5ndGggPCAyKSB7XG4gICAgICAgIGlmIChkZWxpbWl0ZXIubGVuZ3RoIDwgMilcbiAgICAgICAgICByZXR1cm4gYFteJHtlc2NhcGUyKGRlbGltaXRlciArIGJhY2t0cmFjayl9XWA7XG4gICAgICAgIHJldHVybiBgKD86KD8hJHtlc2NhcGUyKGRlbGltaXRlcil9KVteJHtlc2NhcGUyKGJhY2t0cmFjayl9XSlgO1xuICAgICAgfVxuICAgICAgaWYgKGRlbGltaXRlci5sZW5ndGggPCAyKSB7XG4gICAgICAgIHJldHVybiBgKD86KD8hJHtlc2NhcGUyKGJhY2t0cmFjayl9KVteJHtlc2NhcGUyKGRlbGltaXRlcil9XSlgO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGAoPzooPyEke2VzY2FwZTIoYmFja3RyYWNrKX18JHtlc2NhcGUyKGRlbGltaXRlcil9KVtcXFxcc1xcXFxTXSlgO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdHJpbmdpZnkoZGF0YSkge1xuICAgICAgcmV0dXJuIGRhdGEudG9rZW5zLm1hcChmdW5jdGlvbiBzdHJpbmdpZnlUb2tlbih0b2tlbiwgaW5kZXgsIHRva2Vucykge1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJ0ZXh0XCIpXG4gICAgICAgICAgcmV0dXJuIGVzY2FwZVRleHQodG9rZW4udmFsdWUpO1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJncm91cFwiKSB7XG4gICAgICAgICAgcmV0dXJuIGB7JHt0b2tlbi50b2tlbnMubWFwKHN0cmluZ2lmeVRva2VuKS5qb2luKFwiXCIpfX1gO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzU2FmZSA9IGlzTmFtZVNhZmUodG9rZW4ubmFtZSkgJiYgaXNOZXh0TmFtZVNhZmUodG9rZW5zW2luZGV4ICsgMV0pO1xuICAgICAgICBjb25zdCBrZXkgPSBpc1NhZmUgPyB0b2tlbi5uYW1lIDogSlNPTi5zdHJpbmdpZnkodG9rZW4ubmFtZSk7XG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcInBhcmFtXCIpXG4gICAgICAgICAgcmV0dXJuIGA6JHtrZXl9YDtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwid2lsZGNhcmRcIilcbiAgICAgICAgICByZXR1cm4gYCoke2tleX1gO1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBVbmV4cGVjdGVkIHRva2VuOiAke3Rva2VufWApO1xuICAgICAgfSkuam9pbihcIlwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNOYW1lU2FmZShuYW1lKSB7XG4gICAgICBjb25zdCBbZmlyc3QsIC4uLnJlc3RdID0gbmFtZTtcbiAgICAgIGlmICghSURfU1RBUlQudGVzdChmaXJzdCkpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiByZXN0LmV2ZXJ5KChjaGFyKSA9PiBJRF9DT05USU5VRS50ZXN0KGNoYXIpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNOZXh0TmFtZVNhZmUodG9rZW4pIHtcbiAgICAgIGlmICgodG9rZW4gPT09IG51bGwgfHwgdG9rZW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRva2VuLnR5cGUpICE9PSBcInRleHRcIilcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICByZXR1cm4gIUlEX0NPTlRJTlVFLnRlc3QodG9rZW4udmFsdWVbMF0pO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yb3V0ZXIvbGliL2xheWVyLmpzXG52YXIgcmVxdWlyZV9sYXllciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yb3V0ZXIvbGliL2xheWVyLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgaXNQcm9taXNlID0gcmVxdWlyZV9pc19wcm9taXNlKCk7XG4gICAgdmFyIHBhdGhSZWdleHAgPSByZXF1aXJlX2Rpc3QoKTtcbiAgICB2YXIgZGVidWcgPSByZXF1aXJlX3NyYygpKFwicm91dGVyOmxheWVyXCIpO1xuICAgIHZhciBkZXByZWNhdGUgPSByZXF1aXJlX2RlcGQoKShcInJvdXRlclwiKTtcbiAgICB2YXIgVFJBSUxJTkdfU0xBU0hfUkVHRVhQID0gL1xcLyskLztcbiAgICB2YXIgTUFUQ0hJTkdfR1JPVVBfUkVHRVhQID0gL1xcKCg/OlxcPzwoLio/KT4pPyg/IVxcPykvZztcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBMYXllcjtcbiAgICBmdW5jdGlvbiBMYXllcihwYXRoLCBvcHRpb25zLCBmbikge1xuICAgICAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIExheWVyKSkge1xuICAgICAgICByZXR1cm4gbmV3IExheWVyKHBhdGgsIG9wdGlvbnMsIGZuKTtcbiAgICAgIH1cbiAgICAgIGRlYnVnKFwibmV3ICVvXCIsIHBhdGgpO1xuICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307XG4gICAgICB0aGlzLmhhbmRsZSA9IGZuO1xuICAgICAgdGhpcy5rZXlzID0gW107XG4gICAgICB0aGlzLm5hbWUgPSBmbi5uYW1lIHx8IFwiPGFub255bW91cz5cIjtcbiAgICAgIHRoaXMucGFyYW1zID0gdm9pZCAwO1xuICAgICAgdGhpcy5wYXRoID0gdm9pZCAwO1xuICAgICAgdGhpcy5zbGFzaCA9IHBhdGggPT09IFwiL1wiICYmIG9wdHMuZW5kID09PSBmYWxzZTtcbiAgICAgIGZ1bmN0aW9uIG1hdGNoZXIoX3BhdGgpIHtcbiAgICAgICAgaWYgKF9wYXRoIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgICAgY29uc3Qga2V5cyA9IFtdO1xuICAgICAgICAgIGxldCBuYW1lID0gMDtcbiAgICAgICAgICBsZXQgbTtcbiAgICAgICAgICB3aGlsZSAobSA9IE1BVENISU5HX0dST1VQX1JFR0VYUC5leGVjKF9wYXRoLnNvdXJjZSkpIHtcbiAgICAgICAgICAgIGtleXMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IG1bMV0gfHwgbmFtZSsrLFxuICAgICAgICAgICAgICBvZmZzZXQ6IG0uaW5kZXhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gcmVnZXhwTWF0Y2hlcihwKSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IF9wYXRoLmV4ZWMocCk7XG4gICAgICAgICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBtYXRjaC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICBjb25zdCBrZXkgPSBrZXlzW2kgLSAxXTtcbiAgICAgICAgICAgICAgY29uc3QgcHJvcCA9IGtleS5uYW1lO1xuICAgICAgICAgICAgICBjb25zdCB2YWwgPSBkZWNvZGVQYXJhbShtYXRjaFtpXSk7XG4gICAgICAgICAgICAgIGlmICh2YWwgIT09IHZvaWQgMCkge1xuICAgICAgICAgICAgICAgIHBhcmFtc1twcm9wXSA9IHZhbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICBwYXRoOiBtYXRjaFswXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXRoUmVnZXhwLm1hdGNoKG9wdHMuc3RyaWN0ID8gX3BhdGggOiBsb29zZW4oX3BhdGgpLCB7XG4gICAgICAgICAgc2Vuc2l0aXZlOiBvcHRzLnNlbnNpdGl2ZSxcbiAgICAgICAgICBlbmQ6IG9wdHMuZW5kLFxuICAgICAgICAgIHRyYWlsaW5nOiAhb3B0cy5zdHJpY3QsXG4gICAgICAgICAgZGVjb2RlOiBkZWNvZGVQYXJhbVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWF0Y2hlcnMgPSBBcnJheS5pc0FycmF5KHBhdGgpID8gcGF0aC5tYXAobWF0Y2hlcikgOiBbbWF0Y2hlcihwYXRoKV07XG4gICAgfVxuICAgIExheWVyLnByb3RvdHlwZS5oYW5kbGVFcnJvciA9IGZ1bmN0aW9uIGhhbmRsZUVycm9yKGVycm9yLCByZXEsIHJlcywgbmV4dCkge1xuICAgICAgY29uc3QgZm4gPSB0aGlzLmhhbmRsZTtcbiAgICAgIGlmIChmbi5sZW5ndGggIT09IDQpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyb3IpO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmV0ID0gZm4oZXJyb3IsIHJlcSwgcmVzLCBuZXh0KTtcbiAgICAgICAgaWYgKGlzUHJvbWlzZShyZXQpKSB7XG4gICAgICAgICAgaWYgKCEocmV0IGluc3RhbmNlb2YgUHJvbWlzZSkpIHtcbiAgICAgICAgICAgIGRlcHJlY2F0ZShcImhhbmRsZXJzIHRoYXQgYXJlIFByb21pc2UtbGlrZSBhcmUgZGVwcmVjYXRlZCwgdXNlIGEgbmF0aXZlIFByb21pc2UgaW5zdGVhZFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0LnRoZW4obnVsbCwgZnVuY3Rpb24oZXJyb3IyKSB7XG4gICAgICAgICAgICBuZXh0KGVycm9yMiB8fCBuZXcgRXJyb3IoXCJSZWplY3RlZCBwcm9taXNlXCIpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICBuZXh0KGVycjIpO1xuICAgICAgfVxuICAgIH07XG4gICAgTGF5ZXIucHJvdG90eXBlLmhhbmRsZVJlcXVlc3QgPSBmdW5jdGlvbiBoYW5kbGVSZXF1ZXN0KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICBjb25zdCBmbiA9IHRoaXMuaGFuZGxlO1xuICAgICAgaWYgKGZuLmxlbmd0aCA+IDMpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJldCA9IGZuKHJlcSwgcmVzLCBuZXh0KTtcbiAgICAgICAgaWYgKGlzUHJvbWlzZShyZXQpKSB7XG4gICAgICAgICAgaWYgKCEocmV0IGluc3RhbmNlb2YgUHJvbWlzZSkpIHtcbiAgICAgICAgICAgIGRlcHJlY2F0ZShcImhhbmRsZXJzIHRoYXQgYXJlIFByb21pc2UtbGlrZSBhcmUgZGVwcmVjYXRlZCwgdXNlIGEgbmF0aXZlIFByb21pc2UgaW5zdGVhZFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0LnRoZW4obnVsbCwgZnVuY3Rpb24oZXJyb3IpIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IgfHwgbmV3IEVycm9yKFwiUmVqZWN0ZWQgcHJvbWlzZVwiKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycjIpIHtcbiAgICAgICAgbmV4dChlcnIyKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIExheWVyLnByb3RvdHlwZS5tYXRjaCA9IGZ1bmN0aW9uIG1hdGNoKHBhdGgpIHtcbiAgICAgIGxldCBtYXRjaDI7XG4gICAgICBpZiAocGF0aCAhPSBudWxsKSB7XG4gICAgICAgIGlmICh0aGlzLnNsYXNoKSB7XG4gICAgICAgICAgdGhpcy5wYXJhbXMgPSB7fTtcbiAgICAgICAgICB0aGlzLnBhdGggPSBcIlwiO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgd2hpbGUgKCFtYXRjaDIgJiYgaSA8IHRoaXMubWF0Y2hlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgbWF0Y2gyID0gdGhpcy5tYXRjaGVyc1tpXShwYXRoKTtcbiAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghbWF0Y2gyKSB7XG4gICAgICAgIHRoaXMucGFyYW1zID0gdm9pZCAwO1xuICAgICAgICB0aGlzLnBhdGggPSB2b2lkIDA7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFyYW1zID0gbWF0Y2gyLnBhcmFtcztcbiAgICAgIHRoaXMucGF0aCA9IG1hdGNoMi5wYXRoO1xuICAgICAgdGhpcy5rZXlzID0gT2JqZWN0LmtleXMobWF0Y2gyLnBhcmFtcyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGRlY29kZVBhcmFtKHZhbCkge1xuICAgICAgaWYgKHR5cGVvZiB2YWwgIT09IFwic3RyaW5nXCIgfHwgdmFsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh2YWwpO1xuICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICBpZiAoZXJyMiBpbnN0YW5jZW9mIFVSSUVycm9yKSB7XG4gICAgICAgICAgZXJyMi5tZXNzYWdlID0gXCJGYWlsZWQgdG8gZGVjb2RlIHBhcmFtICdcIiArIHZhbCArIFwiJ1wiO1xuICAgICAgICAgIGVycjIuc3RhdHVzID0gNDAwO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycjI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvb3NlbihwYXRoKSB7XG4gICAgICBpZiAocGF0aCBpbnN0YW5jZW9mIFJlZ0V4cCB8fCBwYXRoID09PSBcIi9cIikge1xuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHBhdGgpID8gcGF0aC5tYXAoZnVuY3Rpb24ocCkge1xuICAgICAgICByZXR1cm4gbG9vc2VuKHApO1xuICAgICAgfSkgOiBTdHJpbmcocGF0aCkucmVwbGFjZShUUkFJTElOR19TTEFTSF9SRUdFWFAsIFwiXCIpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yb3V0ZXIvbGliL3JvdXRlLmpzXG52YXIgcmVxdWlyZV9yb3V0ZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yb3V0ZXIvbGliL3JvdXRlLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZGVidWcgPSByZXF1aXJlX3NyYygpKFwicm91dGVyOnJvdXRlXCIpO1xuICAgIHZhciBMYXllciA9IHJlcXVpcmVfbGF5ZXIoKTtcbiAgICB2YXIgeyBNRVRIT0RTIH0gPSByZXF1aXJlKFwibm9kZTpodHRwXCIpO1xuICAgIHZhciBzbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZTtcbiAgICB2YXIgZmxhdHRlbiA9IEFycmF5LnByb3RvdHlwZS5mbGF0O1xuICAgIHZhciBtZXRob2RzID0gTUVUSE9EUy5tYXAoKG1ldGhvZCkgPT4gbWV0aG9kLnRvTG93ZXJDYXNlKCkpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFJvdXRlO1xuICAgIGZ1bmN0aW9uIFJvdXRlKHBhdGgpIHtcbiAgICAgIGRlYnVnKFwibmV3ICVvXCIsIHBhdGgpO1xuICAgICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICAgIHRoaXMuc3RhY2sgPSBbXTtcbiAgICAgIHRoaXMubWV0aG9kcyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIH1cbiAgICBSb3V0ZS5wcm90b3R5cGUuX2hhbmRsZXNNZXRob2QgPSBmdW5jdGlvbiBfaGFuZGxlc01ldGhvZChtZXRob2QpIHtcbiAgICAgIGlmICh0aGlzLm1ldGhvZHMuX2FsbCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGxldCBuYW1lID0gdHlwZW9mIG1ldGhvZCA9PT0gXCJzdHJpbmdcIiA/IG1ldGhvZC50b0xvd2VyQ2FzZSgpIDogbWV0aG9kO1xuICAgICAgaWYgKG5hbWUgPT09IFwiaGVhZFwiICYmICF0aGlzLm1ldGhvZHMuaGVhZCkge1xuICAgICAgICBuYW1lID0gXCJnZXRcIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBCb29sZWFuKHRoaXMubWV0aG9kc1tuYW1lXSk7XG4gICAgfTtcbiAgICBSb3V0ZS5wcm90b3R5cGUuX21ldGhvZHMgPSBmdW5jdGlvbiBfbWV0aG9kcygpIHtcbiAgICAgIGNvbnN0IG1ldGhvZHMyID0gT2JqZWN0LmtleXModGhpcy5tZXRob2RzKTtcbiAgICAgIGlmICh0aGlzLm1ldGhvZHMuZ2V0ICYmICF0aGlzLm1ldGhvZHMuaGVhZCkge1xuICAgICAgICBtZXRob2RzMi5wdXNoKFwiaGVhZFwiKTtcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWV0aG9kczIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbWV0aG9kczJbaV0gPSBtZXRob2RzMltpXS50b1VwcGVyQ2FzZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1ldGhvZHMyO1xuICAgIH07XG4gICAgUm91dGUucHJvdG90eXBlLmRpc3BhdGNoID0gZnVuY3Rpb24gZGlzcGF0Y2gocmVxLCByZXMsIGRvbmUpIHtcbiAgICAgIGxldCBpZHggPSAwO1xuICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLnN0YWNrO1xuICAgICAgbGV0IHN5bmMgPSAwO1xuICAgICAgaWYgKHN0YWNrLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZG9uZSgpO1xuICAgICAgfVxuICAgICAgbGV0IG1ldGhvZCA9IHR5cGVvZiByZXEubWV0aG9kID09PSBcInN0cmluZ1wiID8gcmVxLm1ldGhvZC50b0xvd2VyQ2FzZSgpIDogcmVxLm1ldGhvZDtcbiAgICAgIGlmIChtZXRob2QgPT09IFwiaGVhZFwiICYmICF0aGlzLm1ldGhvZHMuaGVhZCkge1xuICAgICAgICBtZXRob2QgPSBcImdldFwiO1xuICAgICAgfVxuICAgICAgcmVxLnJvdXRlID0gdGhpcztcbiAgICAgIG5leHQoKTtcbiAgICAgIGZ1bmN0aW9uIG5leHQoZXJyMikge1xuICAgICAgICBpZiAoZXJyMiAmJiBlcnIyID09PSBcInJvdXRlXCIpIHtcbiAgICAgICAgICByZXR1cm4gZG9uZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIyICYmIGVycjIgPT09IFwicm91dGVyXCIpIHtcbiAgICAgICAgICByZXR1cm4gZG9uZShlcnIyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaWR4ID49IHN0YWNrLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBkb25lKGVycjIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgrK3N5bmMgPiAxMDApIHtcbiAgICAgICAgICByZXR1cm4gc2V0SW1tZWRpYXRlKG5leHQsIGVycjIpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsYXllcjtcbiAgICAgICAgbGV0IG1hdGNoO1xuICAgICAgICB3aGlsZSAobWF0Y2ggIT09IHRydWUgJiYgaWR4IDwgc3RhY2subGVuZ3RoKSB7XG4gICAgICAgICAgbGF5ZXIgPSBzdGFja1tpZHgrK107XG4gICAgICAgICAgbWF0Y2ggPSAhbGF5ZXIubWV0aG9kIHx8IGxheWVyLm1ldGhvZCA9PT0gbWV0aG9kO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaCAhPT0gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiBkb25lKGVycjIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIyKSB7XG4gICAgICAgICAgbGF5ZXIuaGFuZGxlRXJyb3IoZXJyMiwgcmVxLCByZXMsIG5leHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxheWVyLmhhbmRsZVJlcXVlc3QocmVxLCByZXMsIG5leHQpO1xuICAgICAgICB9XG4gICAgICAgIHN5bmMgPSAwO1xuICAgICAgfVxuICAgIH07XG4gICAgUm91dGUucHJvdG90eXBlLmFsbCA9IGZ1bmN0aW9uIGFsbChoYW5kbGVyKSB7XG4gICAgICBjb25zdCBjYWxsYmFja3MgPSBmbGF0dGVuLmNhbGwoc2xpY2UuY2FsbChhcmd1bWVudHMpLCBJbmZpbml0eSk7XG4gICAgICBpZiAoY2FsbGJhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgaGFuZGxlciBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FsbGJhY2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGZuID0gY2FsbGJhY2tzW2ldO1xuICAgICAgICBpZiAodHlwZW9mIGZuICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgaGFuZGxlciBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGF5ZXIgPSBMYXllcihcIi9cIiwge30sIGZuKTtcbiAgICAgICAgbGF5ZXIubWV0aG9kID0gdm9pZCAwO1xuICAgICAgICB0aGlzLm1ldGhvZHMuX2FsbCA9IHRydWU7XG4gICAgICAgIHRoaXMuc3RhY2sucHVzaChsYXllcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIG1ldGhvZHMuZm9yRWFjaChmdW5jdGlvbihtZXRob2QpIHtcbiAgICAgIFJvdXRlLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24oaGFuZGxlcikge1xuICAgICAgICBjb25zdCBjYWxsYmFja3MgPSBmbGF0dGVuLmNhbGwoc2xpY2UuY2FsbChhcmd1bWVudHMpLCBJbmZpbml0eSk7XG4gICAgICAgIGlmIChjYWxsYmFja3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IGhhbmRsZXIgaXMgcmVxdWlyZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBmbiA9IGNhbGxiYWNrc1tpXTtcbiAgICAgICAgICBpZiAodHlwZW9mIGZuICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBoYW5kbGVyIG11c3QgYmUgYSBmdW5jdGlvblwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZGVidWcoXCIlcyAlc1wiLCBtZXRob2QsIHRoaXMucGF0aCk7XG4gICAgICAgICAgY29uc3QgbGF5ZXIgPSBMYXllcihcIi9cIiwge30sIGZuKTtcbiAgICAgICAgICBsYXllci5tZXRob2QgPSBtZXRob2Q7XG4gICAgICAgICAgdGhpcy5tZXRob2RzW21ldGhvZF0gPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc3RhY2sucHVzaChsYXllcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3JvdXRlci9pbmRleC5qc1xudmFyIHJlcXVpcmVfcm91dGVyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3JvdXRlci9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGlzUHJvbWlzZSA9IHJlcXVpcmVfaXNfcHJvbWlzZSgpO1xuICAgIHZhciBMYXllciA9IHJlcXVpcmVfbGF5ZXIoKTtcbiAgICB2YXIgeyBNRVRIT0RTIH0gPSByZXF1aXJlKFwibm9kZTpodHRwXCIpO1xuICAgIHZhciBwYXJzZVVybCA9IHJlcXVpcmVfcGFyc2V1cmwoKTtcbiAgICB2YXIgUm91dGUgPSByZXF1aXJlX3JvdXRlKCk7XG4gICAgdmFyIGRlYnVnID0gcmVxdWlyZV9zcmMoKShcInJvdXRlclwiKTtcbiAgICB2YXIgZGVwcmVjYXRlID0gcmVxdWlyZV9kZXBkKCkoXCJyb3V0ZXJcIik7XG4gICAgdmFyIHNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlO1xuICAgIHZhciBmbGF0dGVuID0gQXJyYXkucHJvdG90eXBlLmZsYXQ7XG4gICAgdmFyIG1ldGhvZHMgPSBNRVRIT0RTLm1hcCgobWV0aG9kKSA9PiBtZXRob2QudG9Mb3dlckNhc2UoKSk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gUm91dGVyO1xuICAgIG1vZHVsZTIuZXhwb3J0cy5Sb3V0ZSA9IFJvdXRlO1xuICAgIGZ1bmN0aW9uIFJvdXRlcihvcHRpb25zKSB7XG4gICAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUm91dGVyKSkge1xuICAgICAgICByZXR1cm4gbmV3IFJvdXRlcihvcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9wdHMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgZnVuY3Rpb24gcm91dGVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICAgIHJvdXRlci5oYW5kbGUocmVxLCByZXMsIG5leHQpO1xuICAgICAgfVxuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHJvdXRlciwgdGhpcyk7XG4gICAgICByb3V0ZXIuY2FzZVNlbnNpdGl2ZSA9IG9wdHMuY2FzZVNlbnNpdGl2ZTtcbiAgICAgIHJvdXRlci5tZXJnZVBhcmFtcyA9IG9wdHMubWVyZ2VQYXJhbXM7XG4gICAgICByb3V0ZXIucGFyYW1zID0ge307XG4gICAgICByb3V0ZXIuc3RyaWN0ID0gb3B0cy5zdHJpY3Q7XG4gICAgICByb3V0ZXIuc3RhY2sgPSBbXTtcbiAgICAgIHJldHVybiByb3V0ZXI7XG4gICAgfVxuICAgIFJvdXRlci5wcm90b3R5cGUgPSBmdW5jdGlvbigpIHtcbiAgICB9O1xuICAgIFJvdXRlci5wcm90b3R5cGUucGFyYW0gPSBmdW5jdGlvbiBwYXJhbShuYW1lLCBmbikge1xuICAgICAgaWYgKCFuYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBuYW1lIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBuYW1lICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBuYW1lIG11c3QgYmUgYSBzdHJpbmdcIik7XG4gICAgICB9XG4gICAgICBpZiAoIWZuKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBmbiBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgZm4gbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO1xuICAgICAgfVxuICAgICAgbGV0IHBhcmFtcyA9IHRoaXMucGFyYW1zW25hbWVdO1xuICAgICAgaWYgKCFwYXJhbXMpIHtcbiAgICAgICAgcGFyYW1zID0gdGhpcy5wYXJhbXNbbmFtZV0gPSBbXTtcbiAgICAgIH1cbiAgICAgIHBhcmFtcy5wdXNoKGZuKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgUm91dGVyLnByb3RvdHlwZS5oYW5kbGUgPSBmdW5jdGlvbiBoYW5kbGUocmVxLCByZXMsIGNhbGxiYWNrKSB7XG4gICAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBjYWxsYmFjayBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIGRlYnVnKFwiZGlzcGF0Y2hpbmcgJXMgJXNcIiwgcmVxLm1ldGhvZCwgcmVxLnVybCk7XG4gICAgICBsZXQgaWR4ID0gMDtcbiAgICAgIGxldCBtZXRob2RzMjtcbiAgICAgIGNvbnN0IHByb3RvaG9zdCA9IGdldFByb3RvaG9zdChyZXEudXJsKSB8fCBcIlwiO1xuICAgICAgbGV0IHJlbW92ZWQgPSBcIlwiO1xuICAgICAgY29uc3Qgc2VsZjIgPSB0aGlzO1xuICAgICAgbGV0IHNsYXNoQWRkZWQgPSBmYWxzZTtcbiAgICAgIGxldCBzeW5jID0gMDtcbiAgICAgIGNvbnN0IHBhcmFtY2FsbGVkID0ge307XG4gICAgICBjb25zdCBzdGFjayA9IHRoaXMuc3RhY2s7XG4gICAgICBjb25zdCBwYXJlbnRQYXJhbXMgPSByZXEucGFyYW1zO1xuICAgICAgY29uc3QgcGFyZW50VXJsID0gcmVxLmJhc2VVcmwgfHwgXCJcIjtcbiAgICAgIGxldCBkb25lID0gcmVzdG9yZShjYWxsYmFjaywgcmVxLCBcImJhc2VVcmxcIiwgXCJuZXh0XCIsIFwicGFyYW1zXCIpO1xuICAgICAgcmVxLm5leHQgPSBuZXh0O1xuICAgICAgaWYgKHJlcS5tZXRob2QgPT09IFwiT1BUSU9OU1wiKSB7XG4gICAgICAgIG1ldGhvZHMyID0gW107XG4gICAgICAgIGRvbmUgPSB3cmFwKGRvbmUsIGdlbmVyYXRlT3B0aW9uc1Jlc3BvbmRlcihyZXMsIG1ldGhvZHMyKSk7XG4gICAgICB9XG4gICAgICByZXEuYmFzZVVybCA9IHBhcmVudFVybDtcbiAgICAgIHJlcS5vcmlnaW5hbFVybCA9IHJlcS5vcmlnaW5hbFVybCB8fCByZXEudXJsO1xuICAgICAgbmV4dCgpO1xuICAgICAgZnVuY3Rpb24gbmV4dChlcnIyKSB7XG4gICAgICAgIGxldCBsYXllckVycm9yID0gZXJyMiA9PT0gXCJyb3V0ZVwiID8gbnVsbCA6IGVycjI7XG4gICAgICAgIGlmIChzbGFzaEFkZGVkKSB7XG4gICAgICAgICAgcmVxLnVybCA9IHJlcS51cmwuc2xpY2UoMSk7XG4gICAgICAgICAgc2xhc2hBZGRlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZW1vdmVkLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgIHJlcS5iYXNlVXJsID0gcGFyZW50VXJsO1xuICAgICAgICAgIHJlcS51cmwgPSBwcm90b2hvc3QgKyByZW1vdmVkICsgcmVxLnVybC5zbGljZShwcm90b2hvc3QubGVuZ3RoKTtcbiAgICAgICAgICByZW1vdmVkID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGF5ZXJFcnJvciA9PT0gXCJyb3V0ZXJcIikge1xuICAgICAgICAgIHNldEltbWVkaWF0ZShkb25lLCBudWxsKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlkeCA+PSBzdGFjay5sZW5ndGgpIHtcbiAgICAgICAgICBzZXRJbW1lZGlhdGUoZG9uZSwgbGF5ZXJFcnJvcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICgrK3N5bmMgPiAxMDApIHtcbiAgICAgICAgICByZXR1cm4gc2V0SW1tZWRpYXRlKG5leHQsIGVycjIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhdGggPSBnZXRQYXRobmFtZShyZXEpO1xuICAgICAgICBpZiAocGF0aCA9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGRvbmUobGF5ZXJFcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxheWVyO1xuICAgICAgICBsZXQgbWF0Y2g7XG4gICAgICAgIGxldCByb3V0ZTtcbiAgICAgICAgd2hpbGUgKG1hdGNoICE9PSB0cnVlICYmIGlkeCA8IHN0YWNrLmxlbmd0aCkge1xuICAgICAgICAgIGxheWVyID0gc3RhY2tbaWR4KytdO1xuICAgICAgICAgIG1hdGNoID0gbWF0Y2hMYXllcihsYXllciwgcGF0aCk7XG4gICAgICAgICAgcm91dGUgPSBsYXllci5yb3V0ZTtcbiAgICAgICAgICBpZiAodHlwZW9mIG1hdGNoICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgbGF5ZXJFcnJvciA9IGxheWVyRXJyb3IgfHwgbWF0Y2g7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChtYXRjaCAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghcm91dGUpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobGF5ZXJFcnJvcikge1xuICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBtZXRob2QgPSByZXEubWV0aG9kO1xuICAgICAgICAgIGNvbnN0IGhhc01ldGhvZCA9IHJvdXRlLl9oYW5kbGVzTWV0aG9kKG1ldGhvZCk7XG4gICAgICAgICAgaWYgKCFoYXNNZXRob2QgJiYgbWV0aG9kID09PSBcIk9QVElPTlNcIiAmJiBtZXRob2RzMikge1xuICAgICAgICAgICAgbWV0aG9kczIucHVzaC5hcHBseShtZXRob2RzMiwgcm91dGUuX21ldGhvZHMoKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghaGFzTWV0aG9kICYmIG1ldGhvZCAhPT0gXCJIRUFEXCIpIHtcbiAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaCAhPT0gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiBkb25lKGxheWVyRXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZSkge1xuICAgICAgICAgIHJlcS5yb3V0ZSA9IHJvdXRlO1xuICAgICAgICB9XG4gICAgICAgIHJlcS5wYXJhbXMgPSBzZWxmMi5tZXJnZVBhcmFtcyA/IG1lcmdlUGFyYW1zKGxheWVyLnBhcmFtcywgcGFyZW50UGFyYW1zKSA6IGxheWVyLnBhcmFtcztcbiAgICAgICAgY29uc3QgbGF5ZXJQYXRoID0gbGF5ZXIucGF0aDtcbiAgICAgICAgcHJvY2Vzc1BhcmFtcyhzZWxmMi5wYXJhbXMsIGxheWVyLCBwYXJhbWNhbGxlZCwgcmVxLCByZXMsIGZ1bmN0aW9uKGVycjMpIHtcbiAgICAgICAgICBpZiAoZXJyMykge1xuICAgICAgICAgICAgbmV4dChsYXllckVycm9yIHx8IGVycjMpO1xuICAgICAgICAgIH0gZWxzZSBpZiAocm91dGUpIHtcbiAgICAgICAgICAgIGxheWVyLmhhbmRsZVJlcXVlc3QocmVxLCByZXMsIG5leHQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cmltUHJlZml4KGxheWVyLCBsYXllckVycm9yLCBsYXllclBhdGgsIHBhdGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzeW5jID0gMDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiB0cmltUHJlZml4KGxheWVyLCBsYXllckVycm9yLCBsYXllclBhdGgsIHBhdGgpIHtcbiAgICAgICAgaWYgKGxheWVyUGF0aC5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICBpZiAobGF5ZXJQYXRoICE9PSBwYXRoLnN1YnN0cmluZygwLCBsYXllclBhdGgubGVuZ3RoKSkge1xuICAgICAgICAgICAgbmV4dChsYXllckVycm9yKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgYyA9IHBhdGhbbGF5ZXJQYXRoLmxlbmd0aF07XG4gICAgICAgICAgaWYgKGMgJiYgYyAhPT0gXCIvXCIpIHtcbiAgICAgICAgICAgIG5leHQobGF5ZXJFcnJvcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlYnVnKFwidHJpbSBwcmVmaXggKCVzKSBmcm9tIHVybCAlc1wiLCBsYXllclBhdGgsIHJlcS51cmwpO1xuICAgICAgICAgIHJlbW92ZWQgPSBsYXllclBhdGg7XG4gICAgICAgICAgcmVxLnVybCA9IHByb3RvaG9zdCArIHJlcS51cmwuc2xpY2UocHJvdG9ob3N0Lmxlbmd0aCArIHJlbW92ZWQubGVuZ3RoKTtcbiAgICAgICAgICBpZiAoIXByb3RvaG9zdCAmJiByZXEudXJsWzBdICE9PSBcIi9cIikge1xuICAgICAgICAgICAgcmVxLnVybCA9IFwiL1wiICsgcmVxLnVybDtcbiAgICAgICAgICAgIHNsYXNoQWRkZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXEuYmFzZVVybCA9IHBhcmVudFVybCArIChyZW1vdmVkW3JlbW92ZWQubGVuZ3RoIC0gMV0gPT09IFwiL1wiID8gcmVtb3ZlZC5zdWJzdHJpbmcoMCwgcmVtb3ZlZC5sZW5ndGggLSAxKSA6IHJlbW92ZWQpO1xuICAgICAgICB9XG4gICAgICAgIGRlYnVnKFwiJXMgJXMgOiAlc1wiLCBsYXllci5uYW1lLCBsYXllclBhdGgsIHJlcS5vcmlnaW5hbFVybCk7XG4gICAgICAgIGlmIChsYXllckVycm9yKSB7XG4gICAgICAgICAgbGF5ZXIuaGFuZGxlRXJyb3IobGF5ZXJFcnJvciwgcmVxLCByZXMsIG5leHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxheWVyLmhhbmRsZVJlcXVlc3QocmVxLCByZXMsIG5leHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICBSb3V0ZXIucHJvdG90eXBlLnVzZSA9IGZ1bmN0aW9uIHVzZShoYW5kbGVyKSB7XG4gICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgIGxldCBwYXRoID0gXCIvXCI7XG4gICAgICBpZiAodHlwZW9mIGhhbmRsZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBsZXQgYXJnID0gaGFuZGxlcjtcbiAgICAgICAgd2hpbGUgKEFycmF5LmlzQXJyYXkoYXJnKSAmJiBhcmcubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgYXJnID0gYXJnWzBdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYXJnICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBvZmZzZXQgPSAxO1xuICAgICAgICAgIHBhdGggPSBoYW5kbGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBjYWxsYmFja3MgPSBmbGF0dGVuLmNhbGwoc2xpY2UuY2FsbChhcmd1bWVudHMsIG9mZnNldCksIEluZmluaXR5KTtcbiAgICAgIGlmIChjYWxsYmFja3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBoYW5kbGVyIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZm4gPSBjYWxsYmFja3NbaV07XG4gICAgICAgIGlmICh0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBoYW5kbGVyIG11c3QgYmUgYSBmdW5jdGlvblwiKTtcbiAgICAgICAgfVxuICAgICAgICBkZWJ1ZyhcInVzZSAlbyAlc1wiLCBwYXRoLCBmbi5uYW1lIHx8IFwiPGFub255bW91cz5cIik7XG4gICAgICAgIGNvbnN0IGxheWVyID0gbmV3IExheWVyKHBhdGgsIHtcbiAgICAgICAgICBzZW5zaXRpdmU6IHRoaXMuY2FzZVNlbnNpdGl2ZSxcbiAgICAgICAgICBzdHJpY3Q6IGZhbHNlLFxuICAgICAgICAgIGVuZDogZmFsc2VcbiAgICAgICAgfSwgZm4pO1xuICAgICAgICBsYXllci5yb3V0ZSA9IHZvaWQgMDtcbiAgICAgICAgdGhpcy5zdGFjay5wdXNoKGxheWVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgUm91dGVyLnByb3RvdHlwZS5yb3V0ZSA9IGZ1bmN0aW9uIHJvdXRlKHBhdGgpIHtcbiAgICAgIGNvbnN0IHJvdXRlMiA9IG5ldyBSb3V0ZShwYXRoKTtcbiAgICAgIGNvbnN0IGxheWVyID0gbmV3IExheWVyKHBhdGgsIHtcbiAgICAgICAgc2Vuc2l0aXZlOiB0aGlzLmNhc2VTZW5zaXRpdmUsXG4gICAgICAgIHN0cmljdDogdGhpcy5zdHJpY3QsXG4gICAgICAgIGVuZDogdHJ1ZVxuICAgICAgfSwgaGFuZGxlKTtcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZShyZXEsIHJlcywgbmV4dCkge1xuICAgICAgICByb3V0ZTIuZGlzcGF0Y2gocmVxLCByZXMsIG5leHQpO1xuICAgICAgfVxuICAgICAgbGF5ZXIucm91dGUgPSByb3V0ZTI7XG4gICAgICB0aGlzLnN0YWNrLnB1c2gobGF5ZXIpO1xuICAgICAgcmV0dXJuIHJvdXRlMjtcbiAgICB9O1xuICAgIG1ldGhvZHMuY29uY2F0KFwiYWxsXCIpLmZvckVhY2goZnVuY3Rpb24obWV0aG9kKSB7XG4gICAgICBSb3V0ZXIucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgIGNvbnN0IHJvdXRlID0gdGhpcy5yb3V0ZShwYXRoKTtcbiAgICAgICAgcm91dGVbbWV0aG9kXS5hcHBseShyb3V0ZSwgc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9O1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGdlbmVyYXRlT3B0aW9uc1Jlc3BvbmRlcihyZXMsIG1ldGhvZHMyKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gb25Eb25lKGZuLCBlcnIyKSB7XG4gICAgICAgIGlmIChlcnIyIHx8IG1ldGhvZHMyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBmbihlcnIyKTtcbiAgICAgICAgfVxuICAgICAgICB0cnlTZW5kT3B0aW9uc1Jlc3BvbnNlKHJlcywgbWV0aG9kczIsIGZuKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFBhdGhuYW1lKHJlcSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHBhcnNlVXJsKHJlcSkucGF0aG5hbWU7XG4gICAgICB9IGNhdGNoIChlcnIyKSB7XG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFByb3RvaG9zdCh1cmwpIHtcbiAgICAgIGlmICh0eXBlb2YgdXJsICE9PSBcInN0cmluZ1wiIHx8IHVybC5sZW5ndGggPT09IDAgfHwgdXJsWzBdID09PSBcIi9cIikge1xuICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2VhcmNoSW5kZXggPSB1cmwuaW5kZXhPZihcIj9cIik7XG4gICAgICBjb25zdCBwYXRoTGVuZ3RoID0gc2VhcmNoSW5kZXggIT09IC0xID8gc2VhcmNoSW5kZXggOiB1cmwubGVuZ3RoO1xuICAgICAgY29uc3QgZnFkbkluZGV4ID0gdXJsLnN1YnN0cmluZygwLCBwYXRoTGVuZ3RoKS5pbmRleE9mKFwiOi8vXCIpO1xuICAgICAgcmV0dXJuIGZxZG5JbmRleCAhPT0gLTEgPyB1cmwuc3Vic3RyaW5nKDAsIHVybC5pbmRleE9mKFwiL1wiLCAzICsgZnFkbkluZGV4KSkgOiB2b2lkIDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1hdGNoTGF5ZXIobGF5ZXIsIHBhdGgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBsYXllci5tYXRjaChwYXRoKTtcbiAgICAgIH0gY2F0Y2ggKGVycjIpIHtcbiAgICAgICAgcmV0dXJuIGVycjI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1lcmdlUGFyYW1zKHBhcmFtcywgcGFyZW50KSB7XG4gICAgICBpZiAodHlwZW9mIHBhcmVudCAhPT0gXCJvYmplY3RcIiB8fCAhcGFyZW50KSB7XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgICB9XG4gICAgICBjb25zdCBvYmogPSBPYmplY3QuYXNzaWduKHt9LCBwYXJlbnQpO1xuICAgICAgaWYgKCEoMCBpbiBwYXJhbXMpIHx8ICEoMCBpbiBwYXJlbnQpKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9iaiwgcGFyYW1zKTtcbiAgICAgIH1cbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGxldCBvID0gMDtcbiAgICAgIHdoaWxlIChpIGluIHBhcmFtcykge1xuICAgICAgICBpKys7XG4gICAgICB9XG4gICAgICB3aGlsZSAobyBpbiBwYXJlbnQpIHtcbiAgICAgICAgbysrO1xuICAgICAgfVxuICAgICAgZm9yIChpLS07IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIHBhcmFtc1tpICsgb10gPSBwYXJhbXNbaV07XG4gICAgICAgIGlmIChpIDwgbykge1xuICAgICAgICAgIGRlbGV0ZSBwYXJhbXNbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9iaiwgcGFyYW1zKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJvY2Vzc1BhcmFtcyhwYXJhbXMsIGxheWVyLCBjYWxsZWQsIHJlcSwgcmVzLCBkb25lKSB7XG4gICAgICBjb25zdCBrZXlzID0gbGF5ZXIua2V5cztcbiAgICAgIGlmICgha2V5cyB8fCBrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZG9uZSgpO1xuICAgICAgfVxuICAgICAgbGV0IGkgPSAwO1xuICAgICAgbGV0IHBhcmFtSW5kZXggPSAwO1xuICAgICAgbGV0IGtleTtcbiAgICAgIGxldCBwYXJhbVZhbDtcbiAgICAgIGxldCBwYXJhbUNhbGxiYWNrcztcbiAgICAgIGxldCBwYXJhbUNhbGxlZDtcbiAgICAgIGZ1bmN0aW9uIHBhcmFtKGVycjIpIHtcbiAgICAgICAgaWYgKGVycjIpIHtcbiAgICAgICAgICByZXR1cm4gZG9uZShlcnIyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaSA+PSBrZXlzLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBkb25lKCk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyYW1JbmRleCA9IDA7XG4gICAgICAgIGtleSA9IGtleXNbaSsrXTtcbiAgICAgICAgcGFyYW1WYWwgPSByZXEucGFyYW1zW2tleV07XG4gICAgICAgIHBhcmFtQ2FsbGJhY2tzID0gcGFyYW1zW2tleV07XG4gICAgICAgIHBhcmFtQ2FsbGVkID0gY2FsbGVkW2tleV07XG4gICAgICAgIGlmIChwYXJhbVZhbCA9PT0gdm9pZCAwIHx8ICFwYXJhbUNhbGxiYWNrcykge1xuICAgICAgICAgIHJldHVybiBwYXJhbSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJhbUNhbGxlZCAmJiAocGFyYW1DYWxsZWQubWF0Y2ggPT09IHBhcmFtVmFsIHx8IHBhcmFtQ2FsbGVkLmVycm9yICYmIHBhcmFtQ2FsbGVkLmVycm9yICE9PSBcInJvdXRlXCIpKSB7XG4gICAgICAgICAgcmVxLnBhcmFtc1trZXldID0gcGFyYW1DYWxsZWQudmFsdWU7XG4gICAgICAgICAgcmV0dXJuIHBhcmFtKHBhcmFtQ2FsbGVkLmVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBjYWxsZWRba2V5XSA9IHBhcmFtQ2FsbGVkID0ge1xuICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgIG1hdGNoOiBwYXJhbVZhbCxcbiAgICAgICAgICB2YWx1ZTogcGFyYW1WYWxcbiAgICAgICAgfTtcbiAgICAgICAgcGFyYW1DYWxsYmFjaygpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gcGFyYW1DYWxsYmFjayhlcnIyKSB7XG4gICAgICAgIGNvbnN0IGZuID0gcGFyYW1DYWxsYmFja3NbcGFyYW1JbmRleCsrXTtcbiAgICAgICAgcGFyYW1DYWxsZWQudmFsdWUgPSByZXEucGFyYW1zW2tleV07XG4gICAgICAgIGlmIChlcnIyKSB7XG4gICAgICAgICAgcGFyYW1DYWxsZWQuZXJyb3IgPSBlcnIyO1xuICAgICAgICAgIHBhcmFtKGVycjIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWZuKSByZXR1cm4gcGFyYW0oKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXQgPSBmbihyZXEsIHJlcywgcGFyYW1DYWxsYmFjaywgcGFyYW1WYWwsIGtleSk7XG4gICAgICAgICAgaWYgKGlzUHJvbWlzZShyZXQpKSB7XG4gICAgICAgICAgICBpZiAoIShyZXQgaW5zdGFuY2VvZiBQcm9taXNlKSkge1xuICAgICAgICAgICAgICBkZXByZWNhdGUoXCJwYXJhbWV0ZXJzIHRoYXQgYXJlIFByb21pc2UtbGlrZSBhcmUgZGVwcmVjYXRlZCwgdXNlIGEgbmF0aXZlIFByb21pc2UgaW5zdGVhZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldC50aGVuKG51bGwsIGZ1bmN0aW9uKGVycm9yKSB7XG4gICAgICAgICAgICAgIHBhcmFtQ2FsbGJhY2soZXJyb3IgfHwgbmV3IEVycm9yKFwiUmVqZWN0ZWQgcHJvbWlzZVwiKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBwYXJhbUNhbGxiYWNrKGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBwYXJhbSgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXN0b3JlKGZuLCBvYmopIHtcbiAgICAgIGNvbnN0IHByb3BzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggLSAyKTtcbiAgICAgIGNvbnN0IHZhbHMgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDIpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBwcm9wc1tpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgICAgIHZhbHNbaV0gPSBvYmpbcHJvcHNbaV1dO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgb2JqW3Byb3BzW2ldXSA9IHZhbHNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBzZW5kT3B0aW9uc1Jlc3BvbnNlKHJlcywgbWV0aG9kczIpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWV0aG9kczIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgb3B0aW9uc1ttZXRob2RzMltpXV0gPSB0cnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgYWxsb3cgPSBPYmplY3Qua2V5cyhvcHRpb25zKS5zb3J0KCkuam9pbihcIiwgXCIpO1xuICAgICAgcmVzLnNldEhlYWRlcihcIkFsbG93XCIsIGFsbG93KTtcbiAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LUxlbmd0aFwiLCBCdWZmZXIuYnl0ZUxlbmd0aChhbGxvdykpO1xuICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcInRleHQvcGxhaW5cIik7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiWC1Db250ZW50LVR5cGUtT3B0aW9uc1wiLCBcIm5vc25pZmZcIik7XG4gICAgICByZXMuZW5kKGFsbG93KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJ5U2VuZE9wdGlvbnNSZXNwb25zZShyZXMsIG1ldGhvZHMyLCBuZXh0KSB7XG4gICAgICB0cnkge1xuICAgICAgICBzZW5kT3B0aW9uc1Jlc3BvbnNlKHJlcywgbWV0aG9kczIpO1xuICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICBuZXh0KGVycjIpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB3cmFwKG9sZCwgZm4pIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiBwcm94eSgpIHtcbiAgICAgICAgY29uc3QgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoICsgMSk7XG4gICAgICAgIGFyZ3NbMF0gPSBvbGQ7XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICBhcmdzW2kgKyAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgICAgICBmbi5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL2FwcGxpY2F0aW9uLmpzXG52YXIgcmVxdWlyZV9hcHBsaWNhdGlvbiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9leHByZXNzL2xpYi9hcHBsaWNhdGlvbi5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGZpbmFsaGFuZGxlciA9IHJlcXVpcmVfZmluYWxoYW5kbGVyKCk7XG4gICAgdmFyIGRlYnVnID0gcmVxdWlyZV9zcmMoKShcImV4cHJlc3M6YXBwbGljYXRpb25cIik7XG4gICAgdmFyIFZpZXcgPSByZXF1aXJlX3ZpZXcoKTtcbiAgICB2YXIgaHR0cCA9IHJlcXVpcmUoXCJub2RlOmh0dHBcIik7XG4gICAgdmFyIG1ldGhvZHMgPSByZXF1aXJlX3V0aWxzMygpLm1ldGhvZHM7XG4gICAgdmFyIGNvbXBpbGVFVGFnID0gcmVxdWlyZV91dGlsczMoKS5jb21waWxlRVRhZztcbiAgICB2YXIgY29tcGlsZVF1ZXJ5UGFyc2VyID0gcmVxdWlyZV91dGlsczMoKS5jb21waWxlUXVlcnlQYXJzZXI7XG4gICAgdmFyIGNvbXBpbGVUcnVzdCA9IHJlcXVpcmVfdXRpbHMzKCkuY29tcGlsZVRydXN0O1xuICAgIHZhciByZXNvbHZlID0gcmVxdWlyZShcIm5vZGU6cGF0aFwiKS5yZXNvbHZlO1xuICAgIHZhciBvbmNlID0gcmVxdWlyZV9vbmNlKCk7XG4gICAgdmFyIFJvdXRlciA9IHJlcXVpcmVfcm91dGVyKCk7XG4gICAgdmFyIHNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlO1xuICAgIHZhciBmbGF0dGVuID0gQXJyYXkucHJvdG90eXBlLmZsYXQ7XG4gICAgdmFyIGFwcCA9IGV4cG9ydHMyID0gbW9kdWxlMi5leHBvcnRzID0ge307XG4gICAgdmFyIHRydXN0UHJveHlEZWZhdWx0U3ltYm9sID0gXCJAQHN5bWJvbDp0cnVzdF9wcm94eV9kZWZhdWx0XCI7XG4gICAgYXBwLmluaXQgPSBmdW5jdGlvbiBpbml0KCkge1xuICAgICAgdmFyIHJvdXRlciA9IG51bGw7XG4gICAgICB0aGlzLmNhY2hlID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICB0aGlzLmVuZ2luZXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIHRoaXMuc2V0dGluZ3MgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZ3VyYXRpb24oKTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcInJvdXRlclwiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiBnZXRyb3V0ZXIoKSB7XG4gICAgICAgICAgaWYgKHJvdXRlciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcm91dGVyID0gbmV3IFJvdXRlcih7XG4gICAgICAgICAgICAgIGNhc2VTZW5zaXRpdmU6IHRoaXMuZW5hYmxlZChcImNhc2Ugc2Vuc2l0aXZlIHJvdXRpbmdcIiksXG4gICAgICAgICAgICAgIHN0cmljdDogdGhpcy5lbmFibGVkKFwic3RyaWN0IHJvdXRpbmdcIilcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcm91dGVyO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICAgIGFwcC5kZWZhdWx0Q29uZmlndXJhdGlvbiA9IGZ1bmN0aW9uIGRlZmF1bHRDb25maWd1cmF0aW9uKCkge1xuICAgICAgdmFyIGVudiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8IFwiZGV2ZWxvcG1lbnRcIjtcbiAgICAgIHRoaXMuZW5hYmxlKFwieC1wb3dlcmVkLWJ5XCIpO1xuICAgICAgdGhpcy5zZXQoXCJldGFnXCIsIFwid2Vha1wiKTtcbiAgICAgIHRoaXMuc2V0KFwiZW52XCIsIGVudik7XG4gICAgICB0aGlzLnNldChcInF1ZXJ5IHBhcnNlclwiLCBcInNpbXBsZVwiKTtcbiAgICAgIHRoaXMuc2V0KFwic3ViZG9tYWluIG9mZnNldFwiLCAyKTtcbiAgICAgIHRoaXMuc2V0KFwidHJ1c3QgcHJveHlcIiwgZmFsc2UpO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuc2V0dGluZ3MsIHRydXN0UHJveHlEZWZhdWx0U3ltYm9sLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgIH0pO1xuICAgICAgZGVidWcoXCJib290aW5nIGluICVzIG1vZGVcIiwgZW52KTtcbiAgICAgIHRoaXMub24oXCJtb3VudFwiLCBmdW5jdGlvbiBvbm1vdW50KHBhcmVudCkge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5nc1t0cnVzdFByb3h5RGVmYXVsdFN5bWJvbF0gPT09IHRydWUgJiYgdHlwZW9mIHBhcmVudC5zZXR0aW5nc1tcInRydXN0IHByb3h5IGZuXCJdID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5zZXR0aW5nc1tcInRydXN0IHByb3h5XCJdO1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLnNldHRpbmdzW1widHJ1c3QgcHJveHkgZm5cIl07XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMucmVxdWVzdCwgcGFyZW50LnJlcXVlc3QpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcy5yZXNwb25zZSwgcGFyZW50LnJlc3BvbnNlKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMuZW5naW5lcywgcGFyZW50LmVuZ2luZXMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcy5zZXR0aW5ncywgcGFyZW50LnNldHRpbmdzKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5sb2NhbHMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIHRoaXMubW91bnRwYXRoID0gXCIvXCI7XG4gICAgICB0aGlzLmxvY2Fscy5zZXR0aW5ncyA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICB0aGlzLnNldChcInZpZXdcIiwgVmlldyk7XG4gICAgICB0aGlzLnNldChcInZpZXdzXCIsIHJlc29sdmUoXCJ2aWV3c1wiKSk7XG4gICAgICB0aGlzLnNldChcImpzb25wIGNhbGxiYWNrIG5hbWVcIiwgXCJjYWxsYmFja1wiKTtcbiAgICAgIGlmIChlbnYgPT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlKFwidmlldyBjYWNoZVwiKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGFwcC5oYW5kbGUgPSBmdW5jdGlvbiBoYW5kbGUocmVxLCByZXMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgZG9uZSA9IGNhbGxiYWNrIHx8IGZpbmFsaGFuZGxlcihyZXEsIHJlcywge1xuICAgICAgICBlbnY6IHRoaXMuZ2V0KFwiZW52XCIpLFxuICAgICAgICBvbmVycm9yOiBsb2dlcnJvci5iaW5kKHRoaXMpXG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLmVuYWJsZWQoXCJ4LXBvd2VyZWQtYnlcIikpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcihcIlgtUG93ZXJlZC1CeVwiLCBcIkV4cHJlc3NcIik7XG4gICAgICB9XG4gICAgICByZXEucmVzID0gcmVzO1xuICAgICAgcmVzLnJlcSA9IHJlcTtcbiAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihyZXEsIHRoaXMucmVxdWVzdCk7XG4gICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YocmVzLCB0aGlzLnJlc3BvbnNlKTtcbiAgICAgIGlmICghcmVzLmxvY2Fscykge1xuICAgICAgICByZXMubG9jYWxzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICB9XG4gICAgICB0aGlzLnJvdXRlci5oYW5kbGUocmVxLCByZXMsIGRvbmUpO1xuICAgIH07XG4gICAgYXBwLnVzZSA9IGZ1bmN0aW9uIHVzZShmbikge1xuICAgICAgdmFyIG9mZnNldCA9IDA7XG4gICAgICB2YXIgcGF0aCA9IFwiL1wiO1xuICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHZhciBhcmcgPSBmbjtcbiAgICAgICAgd2hpbGUgKEFycmF5LmlzQXJyYXkoYXJnKSAmJiBhcmcubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgYXJnID0gYXJnWzBdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYXJnICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBvZmZzZXQgPSAxO1xuICAgICAgICAgIHBhdGggPSBmbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFyIGZucyA9IGZsYXR0ZW4uY2FsbChzbGljZS5jYWxsKGFyZ3VtZW50cywgb2Zmc2V0KSwgSW5maW5pdHkpO1xuICAgICAgaWYgKGZucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFwcC51c2UoKSByZXF1aXJlcyBhIG1pZGRsZXdhcmUgZnVuY3Rpb25cIik7XG4gICAgICB9XG4gICAgICB2YXIgcm91dGVyID0gdGhpcy5yb3V0ZXI7XG4gICAgICBmbnMuZm9yRWFjaChmdW5jdGlvbihmbjIpIHtcbiAgICAgICAgaWYgKCFmbjIgfHwgIWZuMi5oYW5kbGUgfHwgIWZuMi5zZXQpIHtcbiAgICAgICAgICByZXR1cm4gcm91dGVyLnVzZShwYXRoLCBmbjIpO1xuICAgICAgICB9XG4gICAgICAgIGRlYnVnKFwiLnVzZSBhcHAgdW5kZXIgJXNcIiwgcGF0aCk7XG4gICAgICAgIGZuMi5tb3VudHBhdGggPSBwYXRoO1xuICAgICAgICBmbjIucGFyZW50ID0gdGhpcztcbiAgICAgICAgcm91dGVyLnVzZShwYXRoLCBmdW5jdGlvbiBtb3VudGVkX2FwcChyZXEsIHJlcywgbmV4dCkge1xuICAgICAgICAgIHZhciBvcmlnID0gcmVxLmFwcDtcbiAgICAgICAgICBmbjIuaGFuZGxlKHJlcSwgcmVzLCBmdW5jdGlvbihlcnIyKSB7XG4gICAgICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YocmVxLCBvcmlnLnJlcXVlc3QpO1xuICAgICAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHJlcywgb3JpZy5yZXNwb25zZSk7XG4gICAgICAgICAgICBuZXh0KGVycjIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgZm4yLmVtaXQoXCJtb3VudFwiLCB0aGlzKTtcbiAgICAgIH0sIHRoaXMpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICBhcHAucm91dGUgPSBmdW5jdGlvbiByb3V0ZShwYXRoKSB7XG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIucm91dGUocGF0aCk7XG4gICAgfTtcbiAgICBhcHAuZW5naW5lID0gZnVuY3Rpb24gZW5naW5lKGV4dCwgZm4pIHtcbiAgICAgIGlmICh0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJjYWxsYmFjayBmdW5jdGlvbiByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBleHRlbnNpb24gPSBleHRbMF0gIT09IFwiLlwiID8gXCIuXCIgKyBleHQgOiBleHQ7XG4gICAgICB0aGlzLmVuZ2luZXNbZXh0ZW5zaW9uXSA9IGZuO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICBhcHAucGFyYW0gPSBmdW5jdGlvbiBwYXJhbShuYW1lLCBmbikge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmFtZSkpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGhpcy5wYXJhbShuYW1lW2ldLCBmbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgICB0aGlzLnJvdXRlci5wYXJhbShuYW1lLCBmbik7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIGFwcC5zZXQgPSBmdW5jdGlvbiBzZXQoc2V0dGluZywgdmFsKSB7XG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5nc1tzZXR0aW5nXTtcbiAgICAgIH1cbiAgICAgIGRlYnVnKCdzZXQgXCIlc1wiIHRvICVvJywgc2V0dGluZywgdmFsKTtcbiAgICAgIHRoaXMuc2V0dGluZ3Nbc2V0dGluZ10gPSB2YWw7XG4gICAgICBzd2l0Y2ggKHNldHRpbmcpIHtcbiAgICAgICAgY2FzZSBcImV0YWdcIjpcbiAgICAgICAgICB0aGlzLnNldChcImV0YWcgZm5cIiwgY29tcGlsZUVUYWcodmFsKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJxdWVyeSBwYXJzZXJcIjpcbiAgICAgICAgICB0aGlzLnNldChcInF1ZXJ5IHBhcnNlciBmblwiLCBjb21waWxlUXVlcnlQYXJzZXIodmFsKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ0cnVzdCBwcm94eVwiOlxuICAgICAgICAgIHRoaXMuc2V0KFwidHJ1c3QgcHJveHkgZm5cIiwgY29tcGlsZVRydXN0KHZhbCkpO1xuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnNldHRpbmdzLCB0cnVzdFByb3h5RGVmYXVsdFN5bWJvbCwge1xuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIGFwcC5wYXRoID0gZnVuY3Rpb24gcGF0aCgpIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LnBhdGgoKSArIHRoaXMubW91bnRwYXRoIDogXCJcIjtcbiAgICB9O1xuICAgIGFwcC5lbmFibGVkID0gZnVuY3Rpb24gZW5hYmxlZChzZXR0aW5nKSB7XG4gICAgICByZXR1cm4gQm9vbGVhbih0aGlzLnNldChzZXR0aW5nKSk7XG4gICAgfTtcbiAgICBhcHAuZGlzYWJsZWQgPSBmdW5jdGlvbiBkaXNhYmxlZChzZXR0aW5nKSB7XG4gICAgICByZXR1cm4gIXRoaXMuc2V0KHNldHRpbmcpO1xuICAgIH07XG4gICAgYXBwLmVuYWJsZSA9IGZ1bmN0aW9uIGVuYWJsZShzZXR0aW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXQoc2V0dGluZywgdHJ1ZSk7XG4gICAgfTtcbiAgICBhcHAuZGlzYWJsZSA9IGZ1bmN0aW9uIGRpc2FibGUoc2V0dGluZykge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0KHNldHRpbmcsIGZhbHNlKTtcbiAgICB9O1xuICAgIG1ldGhvZHMuZm9yRWFjaChmdW5jdGlvbihtZXRob2QpIHtcbiAgICAgIGFwcFttZXRob2RdID0gZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICBpZiAobWV0aG9kID09PSBcImdldFwiICYmIGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZXQocGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJvdXRlID0gdGhpcy5yb3V0ZShwYXRoKTtcbiAgICAgICAgcm91dGVbbWV0aG9kXS5hcHBseShyb3V0ZSwgc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9O1xuICAgIH0pO1xuICAgIGFwcC5hbGwgPSBmdW5jdGlvbiBhbGwocGF0aCkge1xuICAgICAgdmFyIHJvdXRlID0gdGhpcy5yb3V0ZShwYXRoKTtcbiAgICAgIHZhciBhcmdzID0gc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXRob2RzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHJvdXRlW21ldGhvZHNbaV1dLmFwcGx5KHJvdXRlLCBhcmdzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgYXBwLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcihuYW1lLCBvcHRpb25zLCBjYWxsYmFjaykge1xuICAgICAgdmFyIGNhY2hlID0gdGhpcy5jYWNoZTtcbiAgICAgIHZhciBkb25lID0gY2FsbGJhY2s7XG4gICAgICB2YXIgZW5naW5lcyA9IHRoaXMuZW5naW5lcztcbiAgICAgIHZhciBvcHRzID0gb3B0aW9ucztcbiAgICAgIHZhciB2aWV3O1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgZG9uZSA9IG9wdGlvbnM7XG4gICAgICAgIG9wdHMgPSB7fTtcbiAgICAgIH1cbiAgICAgIHZhciByZW5kZXJPcHRpb25zID0geyAuLi50aGlzLmxvY2FscywgLi4ub3B0cy5fbG9jYWxzLCAuLi5vcHRzIH07XG4gICAgICBpZiAocmVuZGVyT3B0aW9ucy5jYWNoZSA9PSBudWxsKSB7XG4gICAgICAgIHJlbmRlck9wdGlvbnMuY2FjaGUgPSB0aGlzLmVuYWJsZWQoXCJ2aWV3IGNhY2hlXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHJlbmRlck9wdGlvbnMuY2FjaGUpIHtcbiAgICAgICAgdmlldyA9IGNhY2hlW25hbWVdO1xuICAgICAgfVxuICAgICAgaWYgKCF2aWV3KSB7XG4gICAgICAgIHZhciBWaWV3MiA9IHRoaXMuZ2V0KFwidmlld1wiKTtcbiAgICAgICAgdmlldyA9IG5ldyBWaWV3MihuYW1lLCB7XG4gICAgICAgICAgZGVmYXVsdEVuZ2luZTogdGhpcy5nZXQoXCJ2aWV3IGVuZ2luZVwiKSxcbiAgICAgICAgICByb290OiB0aGlzLmdldChcInZpZXdzXCIpLFxuICAgICAgICAgIGVuZ2luZXNcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghdmlldy5wYXRoKSB7XG4gICAgICAgICAgdmFyIGRpcnMgPSBBcnJheS5pc0FycmF5KHZpZXcucm9vdCkgJiYgdmlldy5yb290Lmxlbmd0aCA+IDEgPyAnZGlyZWN0b3JpZXMgXCInICsgdmlldy5yb290LnNsaWNlKDAsIC0xKS5qb2luKCdcIiwgXCInKSArICdcIiBvciBcIicgKyB2aWV3LnJvb3Rbdmlldy5yb290Lmxlbmd0aCAtIDFdICsgJ1wiJyA6ICdkaXJlY3RvcnkgXCInICsgdmlldy5yb290ICsgJ1wiJztcbiAgICAgICAgICB2YXIgZXJyMiA9IG5ldyBFcnJvcignRmFpbGVkIHRvIGxvb2t1cCB2aWV3IFwiJyArIG5hbWUgKyAnXCIgaW4gdmlld3MgJyArIGRpcnMpO1xuICAgICAgICAgIGVycjIudmlldyA9IHZpZXc7XG4gICAgICAgICAgcmV0dXJuIGRvbmUoZXJyMik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlbmRlck9wdGlvbnMuY2FjaGUpIHtcbiAgICAgICAgICBjYWNoZVtuYW1lXSA9IHZpZXc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRyeVJlbmRlcih2aWV3LCByZW5kZXJPcHRpb25zLCBkb25lKTtcbiAgICB9O1xuICAgIGFwcC5saXN0ZW4gPSBmdW5jdGlvbiBsaXN0ZW4oKSB7XG4gICAgICB2YXIgc2VydmVyID0gaHR0cC5jcmVhdGVTZXJ2ZXIodGhpcyk7XG4gICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICBpZiAodHlwZW9mIGFyZ3NbYXJncy5sZW5ndGggLSAxXSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHZhciBkb25lID0gYXJnc1thcmdzLmxlbmd0aCAtIDFdID0gb25jZShhcmdzW2FyZ3MubGVuZ3RoIC0gMV0pO1xuICAgICAgICBzZXJ2ZXIub25jZShcImVycm9yXCIsIGRvbmUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNlcnZlci5saXN0ZW4uYXBwbHkoc2VydmVyLCBhcmdzKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGxvZ2Vycm9yKGVycjIpIHtcbiAgICAgIGlmICh0aGlzLmdldChcImVudlwiKSAhPT0gXCJ0ZXN0XCIpIGNvbnNvbGUuZXJyb3IoZXJyMi5zdGFjayB8fCBlcnIyLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cnlSZW5kZXIodmlldywgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZpZXcucmVuZGVyKG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgIH0gY2F0Y2ggKGVycjIpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyMik7XG4gICAgICB9XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL25lZ290aWF0b3IvbGliL2NoYXJzZXQuanNcbnZhciByZXF1aXJlX2NoYXJzZXQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbmVnb3RpYXRvci9saWIvY2hhcnNldC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcHJlZmVycmVkQ2hhcnNldHM7XG4gICAgbW9kdWxlMi5leHBvcnRzLnByZWZlcnJlZENoYXJzZXRzID0gcHJlZmVycmVkQ2hhcnNldHM7XG4gICAgdmFyIHNpbXBsZUNoYXJzZXRSZWdFeHAgPSAvXlxccyooW15cXHM7XSspXFxzKig/OjsoLiopKT8kLztcbiAgICBmdW5jdGlvbiBwYXJzZUFjY2VwdENoYXJzZXQoYWNjZXB0KSB7XG4gICAgICB2YXIgYWNjZXB0cyA9IGFjY2VwdC5zcGxpdChcIixcIik7XG4gICAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBhY2NlcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaGFyc2V0ID0gcGFyc2VDaGFyc2V0KGFjY2VwdHNbaV0udHJpbSgpLCBpKTtcbiAgICAgICAgaWYgKGNoYXJzZXQpIHtcbiAgICAgICAgICBhY2NlcHRzW2orK10gPSBjaGFyc2V0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhY2NlcHRzLmxlbmd0aCA9IGo7XG4gICAgICByZXR1cm4gYWNjZXB0cztcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VDaGFyc2V0KHN0ciwgaSkge1xuICAgICAgdmFyIG1hdGNoID0gc2ltcGxlQ2hhcnNldFJlZ0V4cC5leGVjKHN0cik7XG4gICAgICBpZiAoIW1hdGNoKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBjaGFyc2V0ID0gbWF0Y2hbMV07XG4gICAgICB2YXIgcSA9IDE7XG4gICAgICBpZiAobWF0Y2hbMl0pIHtcbiAgICAgICAgdmFyIHBhcmFtcyA9IG1hdGNoWzJdLnNwbGl0KFwiO1wiKTtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBwYXJhbXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICB2YXIgcCA9IHBhcmFtc1tqXS50cmltKCkuc3BsaXQoXCI9XCIpO1xuICAgICAgICAgIGlmIChwWzBdID09PSBcInFcIikge1xuICAgICAgICAgICAgcSA9IHBhcnNlRmxvYXQocFsxXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNoYXJzZXQsXG4gICAgICAgIHEsXG4gICAgICAgIGlcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldENoYXJzZXRQcmlvcml0eShjaGFyc2V0LCBhY2NlcHRlZCwgaW5kZXgpIHtcbiAgICAgIHZhciBwcmlvcml0eSA9IHsgbzogLTEsIHE6IDAsIHM6IDAgfTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWNjZXB0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHNwZWMgPSBzcGVjaWZ5KGNoYXJzZXQsIGFjY2VwdGVkW2ldLCBpbmRleCk7XG4gICAgICAgIGlmIChzcGVjICYmIChwcmlvcml0eS5zIC0gc3BlYy5zIHx8IHByaW9yaXR5LnEgLSBzcGVjLnEgfHwgcHJpb3JpdHkubyAtIHNwZWMubykgPCAwKSB7XG4gICAgICAgICAgcHJpb3JpdHkgPSBzcGVjO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJpb3JpdHk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNwZWNpZnkoY2hhcnNldCwgc3BlYywgaW5kZXgpIHtcbiAgICAgIHZhciBzID0gMDtcbiAgICAgIGlmIChzcGVjLmNoYXJzZXQudG9Mb3dlckNhc2UoKSA9PT0gY2hhcnNldC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIHMgfD0gMTtcbiAgICAgIH0gZWxzZSBpZiAoc3BlYy5jaGFyc2V0ICE9PSBcIipcIikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGk6IGluZGV4LFxuICAgICAgICBvOiBzcGVjLmksXG4gICAgICAgIHE6IHNwZWMucSxcbiAgICAgICAgc1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJlZmVycmVkQ2hhcnNldHMoYWNjZXB0LCBwcm92aWRlZCkge1xuICAgICAgdmFyIGFjY2VwdHMgPSBwYXJzZUFjY2VwdENoYXJzZXQoYWNjZXB0ID09PSB2b2lkIDAgPyBcIipcIiA6IGFjY2VwdCB8fCBcIlwiKTtcbiAgICAgIGlmICghcHJvdmlkZWQpIHtcbiAgICAgICAgcmV0dXJuIGFjY2VwdHMuZmlsdGVyKGlzUXVhbGl0eSkuc29ydChjb21wYXJlU3BlY3MpLm1hcChnZXRGdWxsQ2hhcnNldCk7XG4gICAgICB9XG4gICAgICB2YXIgcHJpb3JpdGllcyA9IHByb3ZpZGVkLm1hcChmdW5jdGlvbiBnZXRQcmlvcml0eSh0eXBlLCBpbmRleCkge1xuICAgICAgICByZXR1cm4gZ2V0Q2hhcnNldFByaW9yaXR5KHR5cGUsIGFjY2VwdHMsIGluZGV4KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHByaW9yaXRpZXMuZmlsdGVyKGlzUXVhbGl0eSkuc29ydChjb21wYXJlU3BlY3MpLm1hcChmdW5jdGlvbiBnZXRDaGFyc2V0KHByaW9yaXR5KSB7XG4gICAgICAgIHJldHVybiBwcm92aWRlZFtwcmlvcml0aWVzLmluZGV4T2YocHJpb3JpdHkpXTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21wYXJlU3BlY3MoYSwgYikge1xuICAgICAgcmV0dXJuIGIucSAtIGEucSB8fCBiLnMgLSBhLnMgfHwgYS5vIC0gYi5vIHx8IGEuaSAtIGIuaSB8fCAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRGdWxsQ2hhcnNldChzcGVjKSB7XG4gICAgICByZXR1cm4gc3BlYy5jaGFyc2V0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1F1YWxpdHkoc3BlYykge1xuICAgICAgcmV0dXJuIHNwZWMucSA+IDA7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL25lZ290aWF0b3IvbGliL2VuY29kaW5nLmpzXG52YXIgcmVxdWlyZV9lbmNvZGluZyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9uZWdvdGlhdG9yL2xpYi9lbmNvZGluZy5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcHJlZmVycmVkRW5jb2RpbmdzO1xuICAgIG1vZHVsZTIuZXhwb3J0cy5wcmVmZXJyZWRFbmNvZGluZ3MgPSBwcmVmZXJyZWRFbmNvZGluZ3M7XG4gICAgdmFyIHNpbXBsZUVuY29kaW5nUmVnRXhwID0gL15cXHMqKFteXFxzO10rKVxccyooPzo7KC4qKSk/JC87XG4gICAgZnVuY3Rpb24gcGFyc2VBY2NlcHRFbmNvZGluZyhhY2NlcHQpIHtcbiAgICAgIHZhciBhY2NlcHRzID0gYWNjZXB0LnNwbGl0KFwiLFwiKTtcbiAgICAgIHZhciBoYXNJZGVudGl0eSA9IGZhbHNlO1xuICAgICAgdmFyIG1pblF1YWxpdHkgPSAxO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgYWNjZXB0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZW5jb2RpbmcgPSBwYXJzZUVuY29kaW5nKGFjY2VwdHNbaV0udHJpbSgpLCBpKTtcbiAgICAgICAgaWYgKGVuY29kaW5nKSB7XG4gICAgICAgICAgYWNjZXB0c1tqKytdID0gZW5jb2Rpbmc7XG4gICAgICAgICAgaGFzSWRlbnRpdHkgPSBoYXNJZGVudGl0eSB8fCBzcGVjaWZ5KFwiaWRlbnRpdHlcIiwgZW5jb2RpbmcpO1xuICAgICAgICAgIG1pblF1YWxpdHkgPSBNYXRoLm1pbihtaW5RdWFsaXR5LCBlbmNvZGluZy5xIHx8IDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWhhc0lkZW50aXR5KSB7XG4gICAgICAgIGFjY2VwdHNbaisrXSA9IHtcbiAgICAgICAgICBlbmNvZGluZzogXCJpZGVudGl0eVwiLFxuICAgICAgICAgIHE6IG1pblF1YWxpdHksXG4gICAgICAgICAgaVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgYWNjZXB0cy5sZW5ndGggPSBqO1xuICAgICAgcmV0dXJuIGFjY2VwdHM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlRW5jb2Rpbmcoc3RyLCBpKSB7XG4gICAgICB2YXIgbWF0Y2ggPSBzaW1wbGVFbmNvZGluZ1JlZ0V4cC5leGVjKHN0cik7XG4gICAgICBpZiAoIW1hdGNoKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBlbmNvZGluZyA9IG1hdGNoWzFdO1xuICAgICAgdmFyIHEgPSAxO1xuICAgICAgaWYgKG1hdGNoWzJdKSB7XG4gICAgICAgIHZhciBwYXJhbXMgPSBtYXRjaFsyXS5zcGxpdChcIjtcIik7XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcGFyYW1zLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgdmFyIHAgPSBwYXJhbXNbal0udHJpbSgpLnNwbGl0KFwiPVwiKTtcbiAgICAgICAgICBpZiAocFswXSA9PT0gXCJxXCIpIHtcbiAgICAgICAgICAgIHEgPSBwYXJzZUZsb2F0KHBbMV0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbmNvZGluZyxcbiAgICAgICAgcSxcbiAgICAgICAgaVxuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RW5jb2RpbmdQcmlvcml0eShlbmNvZGluZywgYWNjZXB0ZWQsIGluZGV4KSB7XG4gICAgICB2YXIgcHJpb3JpdHkgPSB7IGVuY29kaW5nLCBvOiAtMSwgcTogMCwgczogMCB9O1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY2NlcHRlZC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc3BlYyA9IHNwZWNpZnkoZW5jb2RpbmcsIGFjY2VwdGVkW2ldLCBpbmRleCk7XG4gICAgICAgIGlmIChzcGVjICYmIChwcmlvcml0eS5zIC0gc3BlYy5zIHx8IHByaW9yaXR5LnEgLSBzcGVjLnEgfHwgcHJpb3JpdHkubyAtIHNwZWMubykgPCAwKSB7XG4gICAgICAgICAgcHJpb3JpdHkgPSBzcGVjO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJpb3JpdHk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNwZWNpZnkoZW5jb2RpbmcsIHNwZWMsIGluZGV4KSB7XG4gICAgICB2YXIgcyA9IDA7XG4gICAgICBpZiAoc3BlYy5lbmNvZGluZy50b0xvd2VyQ2FzZSgpID09PSBlbmNvZGluZy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIHMgfD0gMTtcbiAgICAgIH0gZWxzZSBpZiAoc3BlYy5lbmNvZGluZyAhPT0gXCIqXCIpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbmNvZGluZyxcbiAgICAgICAgaTogaW5kZXgsXG4gICAgICAgIG86IHNwZWMuaSxcbiAgICAgICAgcTogc3BlYy5xLFxuICAgICAgICBzXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcmVmZXJyZWRFbmNvZGluZ3MoYWNjZXB0LCBwcm92aWRlZCwgcHJlZmVycmVkKSB7XG4gICAgICB2YXIgYWNjZXB0cyA9IHBhcnNlQWNjZXB0RW5jb2RpbmcoYWNjZXB0IHx8IFwiXCIpO1xuICAgICAgdmFyIGNvbXBhcmF0b3IgPSBwcmVmZXJyZWQgPyBmdW5jdGlvbiBjb21wYXJhdG9yMihhLCBiKSB7XG4gICAgICAgIGlmIChhLnEgIT09IGIucSkge1xuICAgICAgICAgIHJldHVybiBiLnEgLSBhLnE7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFQcmVmZXJyZWQgPSBwcmVmZXJyZWQuaW5kZXhPZihhLmVuY29kaW5nKTtcbiAgICAgICAgdmFyIGJQcmVmZXJyZWQgPSBwcmVmZXJyZWQuaW5kZXhPZihiLmVuY29kaW5nKTtcbiAgICAgICAgaWYgKGFQcmVmZXJyZWQgPT09IC0xICYmIGJQcmVmZXJyZWQgPT09IC0xKSB7XG4gICAgICAgICAgcmV0dXJuIGIucyAtIGEucyB8fCBhLm8gLSBiLm8gfHwgYS5pIC0gYi5pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhUHJlZmVycmVkICE9PSAtMSAmJiBiUHJlZmVycmVkICE9PSAtMSkge1xuICAgICAgICAgIHJldHVybiBhUHJlZmVycmVkIC0gYlByZWZlcnJlZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYVByZWZlcnJlZCA9PT0gLTEgPyAxIDogLTE7XG4gICAgICB9IDogY29tcGFyZVNwZWNzO1xuICAgICAgaWYgKCFwcm92aWRlZCkge1xuICAgICAgICByZXR1cm4gYWNjZXB0cy5maWx0ZXIoaXNRdWFsaXR5KS5zb3J0KGNvbXBhcmF0b3IpLm1hcChnZXRGdWxsRW5jb2RpbmcpO1xuICAgICAgfVxuICAgICAgdmFyIHByaW9yaXRpZXMgPSBwcm92aWRlZC5tYXAoZnVuY3Rpb24gZ2V0UHJpb3JpdHkodHlwZSwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGdldEVuY29kaW5nUHJpb3JpdHkodHlwZSwgYWNjZXB0cywgaW5kZXgpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcHJpb3JpdGllcy5maWx0ZXIoaXNRdWFsaXR5KS5zb3J0KGNvbXBhcmF0b3IpLm1hcChmdW5jdGlvbiBnZXRFbmNvZGluZyhwcmlvcml0eSkge1xuICAgICAgICByZXR1cm4gcHJvdmlkZWRbcHJpb3JpdGllcy5pbmRleE9mKHByaW9yaXR5KV07XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tcGFyZVNwZWNzKGEsIGIpIHtcbiAgICAgIHJldHVybiBiLnEgLSBhLnEgfHwgYi5zIC0gYS5zIHx8IGEubyAtIGIubyB8fCBhLmkgLSBiLmk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEZ1bGxFbmNvZGluZyhzcGVjKSB7XG4gICAgICByZXR1cm4gc3BlYy5lbmNvZGluZztcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNRdWFsaXR5KHNwZWMpIHtcbiAgICAgIHJldHVybiBzcGVjLnEgPiAwO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9uZWdvdGlhdG9yL2xpYi9sYW5ndWFnZS5qc1xudmFyIHJlcXVpcmVfbGFuZ3VhZ2UgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbmVnb3RpYXRvci9saWIvbGFuZ3VhZ2UuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHByZWZlcnJlZExhbmd1YWdlcztcbiAgICBtb2R1bGUyLmV4cG9ydHMucHJlZmVycmVkTGFuZ3VhZ2VzID0gcHJlZmVycmVkTGFuZ3VhZ2VzO1xuICAgIHZhciBzaW1wbGVMYW5ndWFnZVJlZ0V4cCA9IC9eXFxzKihbXlxcc1xcLTtdKykoPzotKFteXFxzO10rKSk/XFxzKig/OjsoLiopKT8kLztcbiAgICBmdW5jdGlvbiBwYXJzZUFjY2VwdExhbmd1YWdlKGFjY2VwdCkge1xuICAgICAgdmFyIGFjY2VwdHMgPSBhY2NlcHQuc3BsaXQoXCIsXCIpO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgYWNjZXB0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSBwYXJzZUxhbmd1YWdlKGFjY2VwdHNbaV0udHJpbSgpLCBpKTtcbiAgICAgICAgaWYgKGxhbmd1YWdlKSB7XG4gICAgICAgICAgYWNjZXB0c1tqKytdID0gbGFuZ3VhZ2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGFjY2VwdHMubGVuZ3RoID0gajtcbiAgICAgIHJldHVybiBhY2NlcHRzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZUxhbmd1YWdlKHN0ciwgaSkge1xuICAgICAgdmFyIG1hdGNoID0gc2ltcGxlTGFuZ3VhZ2VSZWdFeHAuZXhlYyhzdHIpO1xuICAgICAgaWYgKCFtYXRjaCkgcmV0dXJuIG51bGw7XG4gICAgICB2YXIgcHJlZml4ID0gbWF0Y2hbMV07XG4gICAgICB2YXIgc3VmZml4ID0gbWF0Y2hbMl07XG4gICAgICB2YXIgZnVsbCA9IHByZWZpeDtcbiAgICAgIGlmIChzdWZmaXgpIGZ1bGwgKz0gXCItXCIgKyBzdWZmaXg7XG4gICAgICB2YXIgcSA9IDE7XG4gICAgICBpZiAobWF0Y2hbM10pIHtcbiAgICAgICAgdmFyIHBhcmFtcyA9IG1hdGNoWzNdLnNwbGl0KFwiO1wiKTtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBwYXJhbXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICB2YXIgcCA9IHBhcmFtc1tqXS5zcGxpdChcIj1cIik7XG4gICAgICAgICAgaWYgKHBbMF0gPT09IFwicVwiKSBxID0gcGFyc2VGbG9hdChwWzFdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJlZml4LFxuICAgICAgICBzdWZmaXgsXG4gICAgICAgIHEsXG4gICAgICAgIGksXG4gICAgICAgIGZ1bGxcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldExhbmd1YWdlUHJpb3JpdHkobGFuZ3VhZ2UsIGFjY2VwdGVkLCBpbmRleCkge1xuICAgICAgdmFyIHByaW9yaXR5ID0geyBvOiAtMSwgcTogMCwgczogMCB9O1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY2NlcHRlZC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc3BlYyA9IHNwZWNpZnkobGFuZ3VhZ2UsIGFjY2VwdGVkW2ldLCBpbmRleCk7XG4gICAgICAgIGlmIChzcGVjICYmIChwcmlvcml0eS5zIC0gc3BlYy5zIHx8IHByaW9yaXR5LnEgLSBzcGVjLnEgfHwgcHJpb3JpdHkubyAtIHNwZWMubykgPCAwKSB7XG4gICAgICAgICAgcHJpb3JpdHkgPSBzcGVjO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJpb3JpdHk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNwZWNpZnkobGFuZ3VhZ2UsIHNwZWMsIGluZGV4KSB7XG4gICAgICB2YXIgcCA9IHBhcnNlTGFuZ3VhZ2UobGFuZ3VhZ2UpO1xuICAgICAgaWYgKCFwKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBzID0gMDtcbiAgICAgIGlmIChzcGVjLmZ1bGwudG9Mb3dlckNhc2UoKSA9PT0gcC5mdWxsLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcyB8PSA0O1xuICAgICAgfSBlbHNlIGlmIChzcGVjLnByZWZpeC50b0xvd2VyQ2FzZSgpID09PSBwLmZ1bGwudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBzIHw9IDI7XG4gICAgICB9IGVsc2UgaWYgKHNwZWMuZnVsbC50b0xvd2VyQ2FzZSgpID09PSBwLnByZWZpeC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIHMgfD0gMTtcbiAgICAgIH0gZWxzZSBpZiAoc3BlYy5mdWxsICE9PSBcIipcIikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGk6IGluZGV4LFxuICAgICAgICBvOiBzcGVjLmksXG4gICAgICAgIHE6IHNwZWMucSxcbiAgICAgICAgc1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJlZmVycmVkTGFuZ3VhZ2VzKGFjY2VwdCwgcHJvdmlkZWQpIHtcbiAgICAgIHZhciBhY2NlcHRzID0gcGFyc2VBY2NlcHRMYW5ndWFnZShhY2NlcHQgPT09IHZvaWQgMCA/IFwiKlwiIDogYWNjZXB0IHx8IFwiXCIpO1xuICAgICAgaWYgKCFwcm92aWRlZCkge1xuICAgICAgICByZXR1cm4gYWNjZXB0cy5maWx0ZXIoaXNRdWFsaXR5KS5zb3J0KGNvbXBhcmVTcGVjcykubWFwKGdldEZ1bGxMYW5ndWFnZSk7XG4gICAgICB9XG4gICAgICB2YXIgcHJpb3JpdGllcyA9IHByb3ZpZGVkLm1hcChmdW5jdGlvbiBnZXRQcmlvcml0eSh0eXBlLCBpbmRleCkge1xuICAgICAgICByZXR1cm4gZ2V0TGFuZ3VhZ2VQcmlvcml0eSh0eXBlLCBhY2NlcHRzLCBpbmRleCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBwcmlvcml0aWVzLmZpbHRlcihpc1F1YWxpdHkpLnNvcnQoY29tcGFyZVNwZWNzKS5tYXAoZnVuY3Rpb24gZ2V0TGFuZ3VhZ2UocHJpb3JpdHkpIHtcbiAgICAgICAgcmV0dXJuIHByb3ZpZGVkW3ByaW9yaXRpZXMuaW5kZXhPZihwcmlvcml0eSldO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbXBhcmVTcGVjcyhhLCBiKSB7XG4gICAgICByZXR1cm4gYi5xIC0gYS5xIHx8IGIucyAtIGEucyB8fCBhLm8gLSBiLm8gfHwgYS5pIC0gYi5pIHx8IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEZ1bGxMYW5ndWFnZShzcGVjKSB7XG4gICAgICByZXR1cm4gc3BlYy5mdWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1F1YWxpdHkoc3BlYykge1xuICAgICAgcmV0dXJuIHNwZWMucSA+IDA7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL25lZ290aWF0b3IvbGliL21lZGlhVHlwZS5qc1xudmFyIHJlcXVpcmVfbWVkaWFUeXBlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL25lZ290aWF0b3IvbGliL21lZGlhVHlwZS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcHJlZmVycmVkTWVkaWFUeXBlcztcbiAgICBtb2R1bGUyLmV4cG9ydHMucHJlZmVycmVkTWVkaWFUeXBlcyA9IHByZWZlcnJlZE1lZGlhVHlwZXM7XG4gICAgdmFyIHNpbXBsZU1lZGlhVHlwZVJlZ0V4cCA9IC9eXFxzKihbXlxcc1xcLztdKylcXC8oW147XFxzXSspXFxzKig/OjsoLiopKT8kLztcbiAgICBmdW5jdGlvbiBwYXJzZUFjY2VwdChhY2NlcHQpIHtcbiAgICAgIHZhciBhY2NlcHRzID0gc3BsaXRNZWRpYVR5cGVzKGFjY2VwdCk7XG4gICAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBhY2NlcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBtZWRpYVR5cGUgPSBwYXJzZU1lZGlhVHlwZShhY2NlcHRzW2ldLnRyaW0oKSwgaSk7XG4gICAgICAgIGlmIChtZWRpYVR5cGUpIHtcbiAgICAgICAgICBhY2NlcHRzW2orK10gPSBtZWRpYVR5cGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGFjY2VwdHMubGVuZ3RoID0gajtcbiAgICAgIHJldHVybiBhY2NlcHRzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZU1lZGlhVHlwZShzdHIsIGkpIHtcbiAgICAgIHZhciBtYXRjaCA9IHNpbXBsZU1lZGlhVHlwZVJlZ0V4cC5leGVjKHN0cik7XG4gICAgICBpZiAoIW1hdGNoKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBwYXJhbXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIHZhciBxID0gMTtcbiAgICAgIHZhciBzdWJ0eXBlID0gbWF0Y2hbMl07XG4gICAgICB2YXIgdHlwZSA9IG1hdGNoWzFdO1xuICAgICAgaWYgKG1hdGNoWzNdKSB7XG4gICAgICAgIHZhciBrdnBzID0gc3BsaXRQYXJhbWV0ZXJzKG1hdGNoWzNdKS5tYXAoc3BsaXRLZXlWYWx1ZVBhaXIpO1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGt2cHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICB2YXIgcGFpciA9IGt2cHNbal07XG4gICAgICAgICAgdmFyIGtleSA9IHBhaXJbMF0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICB2YXIgdmFsID0gcGFpclsxXTtcbiAgICAgICAgICB2YXIgdmFsdWUgPSB2YWwgJiYgdmFsWzBdID09PSAnXCInICYmIHZhbFt2YWwubGVuZ3RoIC0gMV0gPT09ICdcIicgPyB2YWwuc2xpY2UoMSwgLTEpIDogdmFsO1xuICAgICAgICAgIGlmIChrZXkgPT09IFwicVwiKSB7XG4gICAgICAgICAgICBxID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgcGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgc3VidHlwZSxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBxLFxuICAgICAgICBpXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRNZWRpYVR5cGVQcmlvcml0eSh0eXBlLCBhY2NlcHRlZCwgaW5kZXgpIHtcbiAgICAgIHZhciBwcmlvcml0eSA9IHsgbzogLTEsIHE6IDAsIHM6IDAgfTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWNjZXB0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHNwZWMgPSBzcGVjaWZ5KHR5cGUsIGFjY2VwdGVkW2ldLCBpbmRleCk7XG4gICAgICAgIGlmIChzcGVjICYmIChwcmlvcml0eS5zIC0gc3BlYy5zIHx8IHByaW9yaXR5LnEgLSBzcGVjLnEgfHwgcHJpb3JpdHkubyAtIHNwZWMubykgPCAwKSB7XG4gICAgICAgICAgcHJpb3JpdHkgPSBzcGVjO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJpb3JpdHk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNwZWNpZnkodHlwZSwgc3BlYywgaW5kZXgpIHtcbiAgICAgIHZhciBwID0gcGFyc2VNZWRpYVR5cGUodHlwZSk7XG4gICAgICB2YXIgcyA9IDA7XG4gICAgICBpZiAoIXApIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoc3BlYy50eXBlLnRvTG93ZXJDYXNlKCkgPT0gcC50eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcyB8PSA0O1xuICAgICAgfSBlbHNlIGlmIChzcGVjLnR5cGUgIT0gXCIqXCIpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoc3BlYy5zdWJ0eXBlLnRvTG93ZXJDYXNlKCkgPT0gcC5zdWJ0eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcyB8PSAyO1xuICAgICAgfSBlbHNlIGlmIChzcGVjLnN1YnR5cGUgIT0gXCIqXCIpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNwZWMucGFyYW1zKTtcbiAgICAgIGlmIChrZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKGtleXMuZXZlcnkoZnVuY3Rpb24oaykge1xuICAgICAgICAgIHJldHVybiBzcGVjLnBhcmFtc1trXSA9PSBcIipcIiB8fCAoc3BlYy5wYXJhbXNba10gfHwgXCJcIikudG9Mb3dlckNhc2UoKSA9PSAocC5wYXJhbXNba10gfHwgXCJcIikudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfSkpIHtcbiAgICAgICAgICBzIHw9IDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGk6IGluZGV4LFxuICAgICAgICBvOiBzcGVjLmksXG4gICAgICAgIHE6IHNwZWMucSxcbiAgICAgICAgc1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJlZmVycmVkTWVkaWFUeXBlcyhhY2NlcHQsIHByb3ZpZGVkKSB7XG4gICAgICB2YXIgYWNjZXB0cyA9IHBhcnNlQWNjZXB0KGFjY2VwdCA9PT0gdm9pZCAwID8gXCIqLypcIiA6IGFjY2VwdCB8fCBcIlwiKTtcbiAgICAgIGlmICghcHJvdmlkZWQpIHtcbiAgICAgICAgcmV0dXJuIGFjY2VwdHMuZmlsdGVyKGlzUXVhbGl0eSkuc29ydChjb21wYXJlU3BlY3MpLm1hcChnZXRGdWxsVHlwZSk7XG4gICAgICB9XG4gICAgICB2YXIgcHJpb3JpdGllcyA9IHByb3ZpZGVkLm1hcChmdW5jdGlvbiBnZXRQcmlvcml0eSh0eXBlLCBpbmRleCkge1xuICAgICAgICByZXR1cm4gZ2V0TWVkaWFUeXBlUHJpb3JpdHkodHlwZSwgYWNjZXB0cywgaW5kZXgpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcHJpb3JpdGllcy5maWx0ZXIoaXNRdWFsaXR5KS5zb3J0KGNvbXBhcmVTcGVjcykubWFwKGZ1bmN0aW9uIGdldFR5cGUocHJpb3JpdHkpIHtcbiAgICAgICAgcmV0dXJuIHByb3ZpZGVkW3ByaW9yaXRpZXMuaW5kZXhPZihwcmlvcml0eSldO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbXBhcmVTcGVjcyhhLCBiKSB7XG4gICAgICByZXR1cm4gYi5xIC0gYS5xIHx8IGIucyAtIGEucyB8fCBhLm8gLSBiLm8gfHwgYS5pIC0gYi5pIHx8IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEZ1bGxUeXBlKHNwZWMpIHtcbiAgICAgIHJldHVybiBzcGVjLnR5cGUgKyBcIi9cIiArIHNwZWMuc3VidHlwZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNRdWFsaXR5KHNwZWMpIHtcbiAgICAgIHJldHVybiBzcGVjLnEgPiAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBxdW90ZUNvdW50KHN0cmluZykge1xuICAgICAgdmFyIGNvdW50ID0gMDtcbiAgICAgIHZhciBpbmRleCA9IDA7XG4gICAgICB3aGlsZSAoKGluZGV4ID0gc3RyaW5nLmluZGV4T2YoJ1wiJywgaW5kZXgpKSAhPT0gLTEpIHtcbiAgICAgICAgY291bnQrKztcbiAgICAgICAgaW5kZXgrKztcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb3VudDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3BsaXRLZXlWYWx1ZVBhaXIoc3RyKSB7XG4gICAgICB2YXIgaW5kZXggPSBzdHIuaW5kZXhPZihcIj1cIik7XG4gICAgICB2YXIga2V5O1xuICAgICAgdmFyIHZhbDtcbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAga2V5ID0gc3RyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAga2V5ID0gc3RyLnNsaWNlKDAsIGluZGV4KTtcbiAgICAgICAgdmFsID0gc3RyLnNsaWNlKGluZGV4ICsgMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW2tleSwgdmFsXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3BsaXRNZWRpYVR5cGVzKGFjY2VwdCkge1xuICAgICAgdmFyIGFjY2VwdHMgPSBhY2NlcHQuc3BsaXQoXCIsXCIpO1xuICAgICAgZm9yICh2YXIgaSA9IDEsIGogPSAwOyBpIDwgYWNjZXB0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAocXVvdGVDb3VudChhY2NlcHRzW2pdKSAlIDIgPT0gMCkge1xuICAgICAgICAgIGFjY2VwdHNbKytqXSA9IGFjY2VwdHNbaV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjZXB0c1tqXSArPSBcIixcIiArIGFjY2VwdHNbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGFjY2VwdHMubGVuZ3RoID0gaiArIDE7XG4gICAgICByZXR1cm4gYWNjZXB0cztcbiAgICB9XG4gICAgZnVuY3Rpb24gc3BsaXRQYXJhbWV0ZXJzKHN0cikge1xuICAgICAgdmFyIHBhcmFtZXRlcnMgPSBzdHIuc3BsaXQoXCI7XCIpO1xuICAgICAgZm9yICh2YXIgaSA9IDEsIGogPSAwOyBpIDwgcGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAocXVvdGVDb3VudChwYXJhbWV0ZXJzW2pdKSAlIDIgPT0gMCkge1xuICAgICAgICAgIHBhcmFtZXRlcnNbKytqXSA9IHBhcmFtZXRlcnNbaV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGFyYW1ldGVyc1tqXSArPSBcIjtcIiArIHBhcmFtZXRlcnNbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHBhcmFtZXRlcnMubGVuZ3RoID0gaiArIDE7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcmFtZXRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcGFyYW1ldGVyc1tpXSA9IHBhcmFtZXRlcnNbaV0udHJpbSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhcmFtZXRlcnM7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL25lZ290aWF0b3IvaW5kZXguanNcbnZhciByZXF1aXJlX25lZ290aWF0b3IgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbmVnb3RpYXRvci9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHByZWZlcnJlZENoYXJzZXRzID0gcmVxdWlyZV9jaGFyc2V0KCk7XG4gICAgdmFyIHByZWZlcnJlZEVuY29kaW5ncyA9IHJlcXVpcmVfZW5jb2RpbmcoKTtcbiAgICB2YXIgcHJlZmVycmVkTGFuZ3VhZ2VzID0gcmVxdWlyZV9sYW5ndWFnZSgpO1xuICAgIHZhciBwcmVmZXJyZWRNZWRpYVR5cGVzID0gcmVxdWlyZV9tZWRpYVR5cGUoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBOZWdvdGlhdG9yO1xuICAgIG1vZHVsZTIuZXhwb3J0cy5OZWdvdGlhdG9yID0gTmVnb3RpYXRvcjtcbiAgICBmdW5jdGlvbiBOZWdvdGlhdG9yKHJlcXVlc3QpIHtcbiAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBOZWdvdGlhdG9yKSkge1xuICAgICAgICByZXR1cm4gbmV3IE5lZ290aWF0b3IocmVxdWVzdCk7XG4gICAgICB9XG4gICAgICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0O1xuICAgIH1cbiAgICBOZWdvdGlhdG9yLnByb3RvdHlwZS5jaGFyc2V0ID0gZnVuY3Rpb24gY2hhcnNldChhdmFpbGFibGUpIHtcbiAgICAgIHZhciBzZXQgPSB0aGlzLmNoYXJzZXRzKGF2YWlsYWJsZSk7XG4gICAgICByZXR1cm4gc2V0ICYmIHNldFswXTtcbiAgICB9O1xuICAgIE5lZ290aWF0b3IucHJvdG90eXBlLmNoYXJzZXRzID0gZnVuY3Rpb24gY2hhcnNldHMoYXZhaWxhYmxlKSB7XG4gICAgICByZXR1cm4gcHJlZmVycmVkQ2hhcnNldHModGhpcy5yZXF1ZXN0LmhlYWRlcnNbXCJhY2NlcHQtY2hhcnNldFwiXSwgYXZhaWxhYmxlKTtcbiAgICB9O1xuICAgIE5lZ290aWF0b3IucHJvdG90eXBlLmVuY29kaW5nID0gZnVuY3Rpb24gZW5jb2RpbmcoYXZhaWxhYmxlLCBvcHRzKSB7XG4gICAgICB2YXIgc2V0ID0gdGhpcy5lbmNvZGluZ3MoYXZhaWxhYmxlLCBvcHRzKTtcbiAgICAgIHJldHVybiBzZXQgJiYgc2V0WzBdO1xuICAgIH07XG4gICAgTmVnb3RpYXRvci5wcm90b3R5cGUuZW5jb2RpbmdzID0gZnVuY3Rpb24gZW5jb2RpbmdzKGF2YWlsYWJsZSwgb3B0aW9ucykge1xuICAgICAgdmFyIG9wdHMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgcmV0dXJuIHByZWZlcnJlZEVuY29kaW5ncyh0aGlzLnJlcXVlc3QuaGVhZGVyc1tcImFjY2VwdC1lbmNvZGluZ1wiXSwgYXZhaWxhYmxlLCBvcHRzLnByZWZlcnJlZCk7XG4gICAgfTtcbiAgICBOZWdvdGlhdG9yLnByb3RvdHlwZS5sYW5ndWFnZSA9IGZ1bmN0aW9uIGxhbmd1YWdlKGF2YWlsYWJsZSkge1xuICAgICAgdmFyIHNldCA9IHRoaXMubGFuZ3VhZ2VzKGF2YWlsYWJsZSk7XG4gICAgICByZXR1cm4gc2V0ICYmIHNldFswXTtcbiAgICB9O1xuICAgIE5lZ290aWF0b3IucHJvdG90eXBlLmxhbmd1YWdlcyA9IGZ1bmN0aW9uIGxhbmd1YWdlcyhhdmFpbGFibGUpIHtcbiAgICAgIHJldHVybiBwcmVmZXJyZWRMYW5ndWFnZXModGhpcy5yZXF1ZXN0LmhlYWRlcnNbXCJhY2NlcHQtbGFuZ3VhZ2VcIl0sIGF2YWlsYWJsZSk7XG4gICAgfTtcbiAgICBOZWdvdGlhdG9yLnByb3RvdHlwZS5tZWRpYVR5cGUgPSBmdW5jdGlvbiBtZWRpYVR5cGUoYXZhaWxhYmxlKSB7XG4gICAgICB2YXIgc2V0ID0gdGhpcy5tZWRpYVR5cGVzKGF2YWlsYWJsZSk7XG4gICAgICByZXR1cm4gc2V0ICYmIHNldFswXTtcbiAgICB9O1xuICAgIE5lZ290aWF0b3IucHJvdG90eXBlLm1lZGlhVHlwZXMgPSBmdW5jdGlvbiBtZWRpYVR5cGVzKGF2YWlsYWJsZSkge1xuICAgICAgcmV0dXJuIHByZWZlcnJlZE1lZGlhVHlwZXModGhpcy5yZXF1ZXN0LmhlYWRlcnMuYWNjZXB0LCBhdmFpbGFibGUpO1xuICAgIH07XG4gICAgTmVnb3RpYXRvci5wcm90b3R5cGUucHJlZmVycmVkQ2hhcnNldCA9IE5lZ290aWF0b3IucHJvdG90eXBlLmNoYXJzZXQ7XG4gICAgTmVnb3RpYXRvci5wcm90b3R5cGUucHJlZmVycmVkQ2hhcnNldHMgPSBOZWdvdGlhdG9yLnByb3RvdHlwZS5jaGFyc2V0cztcbiAgICBOZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRFbmNvZGluZyA9IE5lZ290aWF0b3IucHJvdG90eXBlLmVuY29kaW5nO1xuICAgIE5lZ290aWF0b3IucHJvdG90eXBlLnByZWZlcnJlZEVuY29kaW5ncyA9IE5lZ290aWF0b3IucHJvdG90eXBlLmVuY29kaW5ncztcbiAgICBOZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRMYW5ndWFnZSA9IE5lZ290aWF0b3IucHJvdG90eXBlLmxhbmd1YWdlO1xuICAgIE5lZ290aWF0b3IucHJvdG90eXBlLnByZWZlcnJlZExhbmd1YWdlcyA9IE5lZ290aWF0b3IucHJvdG90eXBlLmxhbmd1YWdlcztcbiAgICBOZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRNZWRpYVR5cGUgPSBOZWdvdGlhdG9yLnByb3RvdHlwZS5tZWRpYVR5cGU7XG4gICAgTmVnb3RpYXRvci5wcm90b3R5cGUucHJlZmVycmVkTWVkaWFUeXBlcyA9IE5lZ290aWF0b3IucHJvdG90eXBlLm1lZGlhVHlwZXM7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYWNjZXB0cy9ub2RlX21vZHVsZXMvbWltZS1kYi9kYi5qc29uXG52YXIgcmVxdWlyZV9kYjMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYWNjZXB0cy9ub2RlX21vZHVsZXMvbWltZS1kYi9kYi5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7XG4gICAgICBcImFwcGxpY2F0aW9uLzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uLzNncGRhc2gtcW9lLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vM2dwcC1pbXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi8zZ3BwaGFsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uLzNncHBoYWxmb3Jtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hMmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY2UrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY2UtZ3JvdXBjb21tK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY2UtdHJsK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY3RpdmVtZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWN0aXZpdHkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWlmK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9haWYranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1jZG5pK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tY2RuaWZpbHRlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWNvc3RtYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1jb3N0bWFwZmlsdGVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZGlyZWN0b3J5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRjb3N0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRjb3N0cGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRwcm9wK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRwcm9wcGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZXJyb3IranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1uZXR3b3JrbWFwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tbmV0d29ya21hcGZpbHRlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXByb3BtYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1wcm9wbWFwcGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tdGlwcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXRpcHNwYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by11cGRhdGVzdHJlYW1jb250cm9sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tdXBkYXRlc3RyZWFtcGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FuZHJldy1pbnNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHBpbnN0YWxsZXJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHBpbnN0YWxsZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcGxlZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcGxpeHdhcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHB4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBweFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBweGJ1bmRsZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcHhidW5kbGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0ZnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9tK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRvbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbWNhdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0b21jYXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b21kZWxldGVkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRvbWRlbGV0ZWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b21pY21haWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9tc3ZjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRvbXN2Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1kd2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkd2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0c2MtZHluYW1pYy1ldmVudC1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1oZWxkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVsZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1yZHQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1yc2F0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXR4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdXRoLXBvbGljeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F1dG9tYXRpb25tbC1hbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F1dG9tYXRpb25tbC1hbWx4K3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFtbHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2JhY25ldC14ZGQremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYmF0Y2gtc210cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Jkb2NcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZG9jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9iZWVwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9idWZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYzJwYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhbGVuZGFyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhbGVuZGFyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYWxsLWNvbXBsZXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYWxzLTE4NDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYXB0aXZlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYm9yLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NjY2V4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2NtcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NjeG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2N4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkYSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RmeCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkZnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktY2FwYWJpbGl0eVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWlhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLWNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWljXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLWRvbWFpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWlkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLW9iamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWlvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLXF1ZXVlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaXFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbmlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2VhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2VhLTIwMTgreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZWxsbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZndcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jaWQtZWRob2MrY2Jvci1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jaXR5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NpdHkranNvbi1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbHVlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2x1ZV9pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY21zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY25ycCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvYXAtZWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29hcC1ncm91cCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb2FwLXBheWxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb21tb25ncm91bmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb25jaXNlLXByb2JsZW0tZGV0YWlscytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29uZmVyZW5jZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nvc2Uta2V5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29zZS1rZXktc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29zZS14NTA5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3BsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3BsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jc3JhdHRyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NzdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jc3RhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nzdm0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3Utc2VlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImN1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jd2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjd2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N3bCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jd2wreWFtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N5YmVyY2FzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RhcnRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rhc2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rhc2gtcGF0Y2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rhc2hkZWx0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rhdm1vdW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGF2bW91bnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RjYS1yZnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kY2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kZWMtZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWFsb2ctaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpY29tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWNvbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWNvbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Ruc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rucytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kbnMtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RvY2Jvb2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRia1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG90cytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHBvcCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kc2twcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rzc2MrZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHNzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHNzYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkc3NjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kdmNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0K2N3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQtYnVuK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQtYnVuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdC11Y3MrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdC11Y3MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWNtYXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlY21hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZGhvYytjYm9yLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VkaS1jb25zZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWRpLXgxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VkaWZhY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZmlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbG0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbG0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5jYXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmNvbW1lbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5jb250cm9sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuZGV2aWNlaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmVjYWxsLm1zZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmxlZ2FjeWVzbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5wcm92aWRlcmluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5zZXJ2aWNlaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnN1YnNjcmliZXJpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEudmVkcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtbWEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlbW1hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbW90aW9ubWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlbW90aW9ubWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VuY2FwcnRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW50aXR5LXN0YXRlbWVudCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lcHAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lcHViK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVwdWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VzaG9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9leHBlY3QtY3QtcmVwb3J0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2V4cHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Zhc3RpbmZvc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmFzdHNvYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZkdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZkdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmhpcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZoaXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZpZG8udHJ1c3RlZC1hcHBzK2pzb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZpdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mbGV4ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZm9udC1zZm50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZm9udC10ZHBmclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBmclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZm9udC13b2ZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZnJhbWV3b3JrLWF0dHJpYnV0ZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW8ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2VvanNvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VvK2pzb24tc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VvcGFja2FnZStzcWxpdGUzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VvcG9zZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW94YWNtbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW94YWNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dsdGYtYnVmZmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctandzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ25hcC1iaW5kaW5nLWp3c2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctcm90YXRpb24tandzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ25hcC1iaW5kaW5nLXJvdGF0aW9uLWp3c2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ncHgreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdweFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ3JpYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2d4ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3hmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3pcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2gyMjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9oZWxkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaGpzb25cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJoanNvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaGw3djIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2h0dHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9oeXBlcnN0dWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0a1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaWJlLWtleS1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaWJlLXBrZy1yZXBseSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2liZS1wcC1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaWdlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ltLWlzY29tcG9zaW5nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmRleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4LmNtZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4Lm9ialwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4LnJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXgudm5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5rbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpbmtcIiwgXCJpbmttbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW90cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lwZml4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXBmaXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lzdXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pdHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpdHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphclwiLCBcIndhclwiLCBcImVhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamF2YS1zZXJpYWxpemVkLW9iamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qYXZhLXZtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGFzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamF2YXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qZjJmZWVkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pvc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qb3NlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pyZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc2NhbGVuZGFyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzY29udGFjdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzb25cIiwgXCJtYXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb24tcGF0Y2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbi1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29uNVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzb241XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29ubWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc29ubWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb25wYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vandrK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2p3ay1zZXQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vandrLXNldCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9rcG1sLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9rcG1sLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNvbmxkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sZ3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsZ3JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xpbmstZm9ybWF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGlua3NldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xpbmtzZXQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbG9hZC1jb250cm9sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbG9nb3V0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xvc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsb3N0eG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sb3N0c3luYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xwZit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9seGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYWMtYmluaGV4NDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJocXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hYy1jb21wYWN0cHJvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hY3dyaXRlaWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYWRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWFkc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFuaWZlc3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJtYW5pZmVzdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1yY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFyY3htbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1yY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hdGhlbWF0aWNhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWFcIiwgXCJuYlwiLCBcIm1iXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXRobWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYXRobWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hdGhtbC1jb250ZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWF0aG1sLXByZXNlbnRhdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtYXNzb2NpYXRlZC1wcm9jZWR1cmUtZGVzY3JpcHRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLWRlcmVnaXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLWVudmVsb3BlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1tc2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLW1zay1yZXNwb25zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtcHJvdGVjdGlvbi1kZXNjcmlwdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtcmVjZXB0aW9uLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtcmVnaXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXJlZ2lzdGVyLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1zY2hlZHVsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtdXNlci1zZXJ2aWNlLWRlc2NyaXB0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJveFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ib3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21lZGlhLXBvbGljeS1kYXRhc2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZWRpYV9jb250cm9sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWVkaWFzZXJ2ZXJjb250cm9sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNjbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21lcmdlLXBhdGNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ldGFsaW5rK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZXRhbGlua1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWV0YWxpbms0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWV0YTRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ldHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9taWtleVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21pcGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9taXNzaW5nLWJsb2NrcytjYm9yLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21tdC1hZWkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYWVpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tbXQtdXNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXVzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9kcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1vZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21vc3Mta2V5c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21vc3Mtc2lnbmF0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9zc2tleS1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9zc2tleS1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXAyMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm0yMVwiLCBcIm1wMjFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wNFwiLCBcIm1wZzRcIiwgXCJtcDRzXCIsIFwibTRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcGVnNC1nZW5lcmljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXBlZzQtaW9kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXBlZzQtaW9kLXhtdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21yYi1jb25zdW1lcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21yYi1wdWJsaXNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXNjLWl2cit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXNjLW1peGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc2l4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNpeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXNpeGJ1bmRsZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zaXhidW5kbGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21zd29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvY1wiLCBcImRvdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXVkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL211bHRpcGFydC1jb3JlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXhmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uLXF1YWRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL24tdHJpcGxlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm50XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uYXNkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmV3cy1jaGVja2dyb3Vwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVMtQVNDSUlcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmV3cy1ncm91cGluZm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVTLUFTQ0lJXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25ld3MtdHJhbnNtaXNzaW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmxzbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ub2RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2pzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vYXV0aC1hdXRoei1yZXErand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2JsaXZpb3VzLWRucy1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2NzcC1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2NzcC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmluXCIsIFwiZG1zXCIsIFwibHJmXCIsIFwibWFyXCIsIFwic29cIiwgXCJkaXN0XCIsIFwiZGlzdHpcIiwgXCJwa2dcIiwgXCJicGtcIiwgXCJkdW1wXCIsIFwiZWxjXCIsIFwiZGVwbG95XCIsIFwiZXhlXCIsIFwiZGxsXCIsIFwiZGViXCIsIFwiZG1nXCIsIFwiaXNvXCIsIFwiaW1nXCIsIFwibXNpXCIsIFwibXNwXCIsIFwibXNtXCIsIFwiYnVmZmVyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vZGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29kbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29keFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29lYnBzLXBhY2thZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29nZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9neFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2h0dHAta2V5c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29tZG9jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvbWRvY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb25lbm90ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib25ldG9jXCIsIFwib25ldG9jMlwiLCBcIm9uZXRtcFwiLCBcIm9uZXBrZ1wiLCBcIm9uZVwiLCBcIm9uZWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29wYy1ub2Rlc2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb3Njb3JlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb3hwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm94cHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3AyMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3AyMSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wMnAtb3ZlcmxheSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJlbG9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bhc3Nwb3J0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGF0Y2gtb3BzLWVycm9yK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGVyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BkeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BlbS1jZXJ0aWZpY2F0ZS1jaGFpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BncC1lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZ3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BncC1rZXlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2lnXCIsIFwiYXNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9waWNzLXJ1bGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BpZGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BpZGYtZGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczEwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDEwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzNy1taW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDdtXCIsIFwicDdjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzNy1zaWduYXR1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwN3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3M4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3M4LWVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXgtYXR0ci1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXgtY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeC1jcmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcmxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXgtcGtpcGF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBraXBhdGhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXhjbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwa2lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bscyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcG9jLXNldHRpbmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wb3N0c2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaVwiLCBcImVwc1wiLCBcInBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcHNwLXRyYWNrZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJpdmF0ZS10b2tlbi1pc3N1ZXItZGlyZWN0b3J5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJpdmF0ZS10b2tlbi1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJpdmF0ZS10b2tlbi1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Byb2JsZW0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJvYmxlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Byb3ZlbmFuY2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcm92eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJvdmlkZWQtY2xhaW1zK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5hbHZlc3RyYW5kLnRpdHJheC1zaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5jd3dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjd3dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5jeW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIjctQklUXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5ocHViK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLWRvY3VtZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtZXhlY3V0YWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLW9iamVjdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1vYmplY3QranNvbi1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1vYmplY3QreWFtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLXN0cnVjdHVyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5tYXlmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLm5wcmVuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5wbHVja2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLnJkZi14bWwtY3J5cHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMudmNmYnppcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMueHNmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wc2tjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHNrY3htbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHZkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3FzaWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yYW1sK3lhbWxcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JhcHRvcmZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JkYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmRmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmRmXCIsIFwib3dsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZWdpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmlmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZWxheC1uZy1jb21wYWN0LXN5bnRheFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJuY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVtb3RlLXByaW50aW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZXB1dG9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jlc29sdmUtcmVzcG9uc2Urand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVzb3VyY2UtbGlzdHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVzb3VyY2UtbGlzdHMtZGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJsZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmZjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmlzY29zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmxtaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jscy1zZXJ2aWNlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yb3V0ZS1hcGQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXBkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yb3V0ZS1zLXRzaWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JvdXRlLXVzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJ1c2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktY2hlY2tsaXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1naG9zdGJ1c3RlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnYnJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktbWFuaWZlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktcHVibGljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLXJvYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJvYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1zaWduZWQtdGFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS11cGRvd25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yc2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnNzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3J0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ydHBsb29wYmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3J0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NhbWxhc3NlcnRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYW1sbWV0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYXJpZitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYXJpZi1leHRlcm5hbC1wcm9wZXJ0aWVzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NiZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NibWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzYm1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY2FpcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjaW0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2N2cC1jdi1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2NxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY3ZwLWN2LXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2NzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY3ZwLXZwLXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcHFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjdnAtdnAtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NkcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VjZXZlbnQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VubWx4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbC1ldGNoK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbC1ldGNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sLWV4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlbnNtbCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vuc21sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlbnNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbnNtbHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlbnNtbC1leGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXAtZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vzc2lvbi1pbmZvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2V0LXBheW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXQtcGF5bWVudC1pbml0aWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2V0cGF5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXQtcmVnaXN0cmF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2V0LXJlZ2lzdHJhdGlvbi1pbml0aWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2V0cmVnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZ21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2dtbC1vcGVuLWNhdGFsb2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpZXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2l2XCIsIFwic2lldmVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpbXBsZS1maWx0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaW1wbGUtbWVzc2FnZS1zdW1tYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2ltcGxlc3ltYm9sY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2lwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc21pbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc21pbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNtaVwiLCBcInNtaWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NtcHRlMzM2bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NvYXArZmFzdGluZm9zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zb2FwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3BhcnFsLXF1ZXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NwYXJxbC1yZXN1bHRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3J4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcGR4K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NwaXJpdHMtZXZlbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NyZ3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncmFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3J4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NydSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNydVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3NkbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3NkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3Nsa2V5bG9nZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NzbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzc21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zdDIxMTAtNDFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zdGl4K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N0cmF0dW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zd2lkK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zd2lkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3dpZHRhZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1hcGV4LXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtYXBleC11cGRhdGUtY29uZmlybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtY29tbXVuaXR5LXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtY29tbXVuaXR5LXVwZGF0ZS1jb25maXJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1lcnJvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtc2VxdWVuY2UtYWRqdXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1zZXF1ZW5jZS1hZGp1c3QtY29uZmlybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtc3RhdHVzLXF1ZXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1zdGF0dXMtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YXJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RheGlpK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RlaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRlaVwiLCBcInRlaWNvcnB1c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGV0cmFfaXNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGhyYXVkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGZpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90aW1lc3RhbXAtcXVlcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90aW1lc3RhbXAtcmVwbHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90aW1lc3RhbXBlZC1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90bHNycHQrZ3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Rsc3JwdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90bStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90bmF1dGhsaXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdG9jK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90b2tlbi1pbnRyb3NwZWN0aW9uK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RvbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRvbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RyaWNrbGUtaWNlLXNkcGZyYWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHJpZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJ1c3QtY2hhaW4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJ1c3QtbWFyaytqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cnVzdC1tYXJrLWRlbGVnYXRpb24rand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHRtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR0bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3R2ZS10cmlnZ2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHppZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3R6aWYtbGVhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VianNvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVialwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdWNjcytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdWpjcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91bHBmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91cmMtZ3Jwc2hlZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91cmMtcmVzc2hlZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc2hlZXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VyYy10YXJnZXRkZXNjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VyYy11aXNvY2tldGRlc2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjK2Nvc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Yytqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Y2FyZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Y2FyZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZlbW1pXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdml2aWRlbmNlLnNjcmlwdGZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4xMDAwbWluZHMuZGVjaXNpb24tbW9kZWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIxa21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4xb2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjM2EreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzNhY2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzNjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjOCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXYyeC1sb2NhbC1zZXJ2aWNlLWluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWduYXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z3NhMnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z3NhMngtbG9jYWwtc2VydmljZS1pbmZvcm1hdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc3YyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc3YyeC1sb2NhbC1zZXJ2aWNlLWluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuYWNjZXNzLXRyYW5zZmVyLWV2ZW50cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmJzZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmNycyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmN1cnJlbnQtbG9jYXRpb24tZGlzY292ZXJ5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuZ21vcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmd0cGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5pbnRlcndvcmtpbmctZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmxwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jLXNpZ25hbGxpbmctZWFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLWFmZmlsaWF0aW9uLWNvbW1hbmQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1tc2dzdG9yZS1jdHJsLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtcGF5bG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1yZWdyb3VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXNlcnZpY2UtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXNpZ25hbGxpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtdWUtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXVzZXItcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWFmZmlsaWF0aW9uLWNvbW1hbmQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1mbG9vci1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWxvY2F0aW9uLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1tYm1zLXVzYWdlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1yZWdyb3VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtc2VydmljZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1zaWduZWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC11ZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC11ZS1pbml0LWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVzZXItcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tYWZmaWxpYXRpb24tY29tbWFuZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8taW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tbG9jYXRpb24taW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tbWJtcy11c2FnZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1yZWdyb3VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdHJhbnNtaXNzaW9uLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXVlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdXNlci1wcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWlkLWNhbGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5uZ2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGZjcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpYy1idy1sYXJnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGljLWJ3LXNtYWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHNiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctdmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHZiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waW5hcHAtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnMxYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLWdyb3VwLWRvYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtbG9jYXRpb24taW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtbWJtcy11c2FnZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1uZXR3b3JrLXFvcy1tYW5hZ2VtZW50LWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLXVlLWNvbmZpZy1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC11bmljYXN0LWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLXVzZXItcHJvZmlsZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc21zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc21zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc3J2Y2MtZXh0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc3J2Y2MtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnN0YXRlLWFuZC1ldmVudC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAudXNzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnYyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnZhZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAyLmJjbWNzaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwMi5zbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcDIudGNhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRjYXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zbGlnaHRzc29mdHdhcmUuaW1hZ2VzY2FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNtLnBvc3QtaXQtbm90ZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwd25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY2NwYWMuc2ltcGx5LmFzb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFzb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjY3BhYy5zaW1wbHkuaW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaW1wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWNtLmFkZHJlc3N4ZmVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY20uY2hhdGJvdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWN1Y29ib2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY3VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY3Vjb3JwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRjXCIsIFwiYWN1dGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5haXItYXBwbGljYXRpb24taW5zdGFsbGVyLXBhY2thZ2UremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5mbGFzaC5tb3ZpZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5mb3Jtc2NlbnRyYWwuZmNkdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZjZHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5meHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmeHBcIiwgXCJmeHBsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUucGFydGlhbC11cGxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUueGRwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUueGZkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGZkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFldGhlci5pbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5hZnBsaW5lZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmFmcGxpbmVkYXRhLXBhZ2VkZWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5jbW9jYS1jbXJlc291cmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuZm9jYS1jaGFyc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuZm9jYS1jb2RlZGZvbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5mb2NhLWNvZGVwYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1jbXRhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtZm9ybWRlZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLW1lZGl1bW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLW9iamVjdGNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLW92ZXJsYXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1wYWdlc2VnbWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZ2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5haC1iYXJjb2RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWhlYWQuc3BhY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaGVhZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFpcnppcC5maWxlc2VjdXJlLmF6ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF6ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFpcnppcC5maWxlc2VjdXJlLmF6c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF6c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtYWRldXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtYXpvbi5lYm9va1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXp3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1hem9uLm1vYmk4LWVib29rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtZXJpY2FuZHluYW1pY3MuYWNjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1pZ2EuYW1pXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYW1pXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW11bmRzZW4ubWF6ZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbmRyb2lkLm90YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbmRyb2lkLnBhY2thZ2UtYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW5raVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbnNlci13ZWItY2VydGlmaWNhdGUtaXNzdWUtaW5pdGlhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNpaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFuc2VyLXdlYi1mdW5kcy10cmFuc2Zlci1pbml0aWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmdGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbnRpeC5nYW1lLWNvbXBvbmVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS5hcnJvdy5maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS5hcnJvdy5zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnBhcnF1ZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnRocmlmdC5iaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnRocmlmdC5jb21wYWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS50aHJpZnQuanNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGV4bGFuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwbGV4dG9yLndhcnJwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcG90aGVrZW5kZS5yZXNlcnZhdGlvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUuaW5zdGFsbGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBrZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLmtleW5vdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrZXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTN1OFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLm51bWJlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJudW1iZXJzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUucGFnZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwYWdlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLnBrcGFzc1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBrcGFzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFyYXN0cmEuc3dpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXJpc3RhbmV0d29ya3Muc3dpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3dpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXJ0aXNhbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXJ0c3F1YXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFzdHJhZWEtc29mdHdhcmUuaW90YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlvdGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdWRpb2dyYXBoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWVwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXV0b2Rlc2suZmJ4XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmJ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXV0b3BhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXZhbG9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdmlzdGFyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJhbHNhbWlxLmJtbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmFsc2FtaXEuYm1wclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYW5hbmEtYWNjb3VudGluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYmYudXNwLmVycm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AubXNnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AubXNnK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iZWtpdHp1ci1zdGVjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmVsaWdodHNvZnQubGh6ZCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmVsaWdodHNvZnQubGh6bCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmludC5tZWQtY29udGVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iaW9wYXgucmRmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJsaW5rLWlkYi12YWx1ZS13cmFwcGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJsdWVpY2UubXVsdGlwYXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmx1ZXRvb3RoLmVwLm9vYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ibHVldG9vdGgubGUub29iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJtaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJtaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJwZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5icGYzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJ1c2luZXNzb2JqZWN0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJlcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJ5dS51YXBpK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iemlwM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jM3ZvYy5zY2hlZHVsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jYWItanNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jYW5vbi1jcGRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNhbm9uLWxpcHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2FwYXN5c3RlbXMtcGcranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNlbmRpby50aGlubGluYy5jbGllbnRjb25mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNlbnR1cnktc3lzdGVtcy50Y3Bfc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNoZW1kcmF3K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2R4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaGVzcy1wZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2hpcG51dHMua2FyYW9rZS1tbWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaWVkaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaW5kZXJlbGxhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2R5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2lycGFjay5pc2RuLWV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaXRhdGlvbnN0eWxlcy5zdHlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsYXltb3JlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2xvYW50by5ycDlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycDlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbG9uay5jNGdyb3VwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYzRnXCIsIFwiYzRkXCIsIFwiYzRmXCIsIFwiYzRwXCIsIFwiYzR1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2x1ZXRydXN0LmNhcnRvbW9iaWxlLWNvbmZpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImMxMWFtY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsdWV0cnVzdC5jYXJ0b21vYmlsZS1jb25maWctcGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYzExYW16XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY25jZi5oZWxtLmNoYXJ0LmNvbnRlbnQudjEudGFyK2d6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY25jZi5oZWxtLmNoYXJ0LnByb3ZlbmFuY2UudjEucHJvdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbmNmLmhlbG0uY29uZmlnLnYxK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2ZmZWVzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuZG9jdW1lbnQtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMucHJlc2VudGF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnByZXNlbnRhdGlvbi10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5zcHJlYWRzaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5zcHJlYWRzaGVldC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uLmRvYytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGVjdGlvbi5uZXh0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb21pY2Jvb2sremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbWljYm9vay1yYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29tbWVyY2UtYmF0dGVsbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29tbW9uc3BhY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb250YWN0LmNtc2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZGJjbXNnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29yZW9zLmlnbml0aW9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb3Ntb2NhbGxlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNtY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGt4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci5rZXlib2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa2tcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLnBhbGV0dGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGtwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLndvcmRiYW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xrd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaXRpY2FsdG9vbHMud2JzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2JzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3J5cHRpaS5waXBlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG8tc2hhZGUtZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG9tYXRvci5lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3J5cHRvbWF0b3IudmF1bHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3RjLXBvc21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3RjdC53cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXBkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXBvc3RzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1wcGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXJhc3RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXJhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cmwuY2FyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsLnBjdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN5YW4uZGVhbi5yb290K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN5YmFua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jeWNsb25lZHgranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN5Y2xvbmVkeCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kMmwuY291cnNlcGFja2FnZTFwMCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZDNtLWRhdGFzZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZDNtLXByb2JsZW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGFydFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhdGEtdmlzaW9uLnJkelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJkelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhdGFsb2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YXBhY2thZ2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhdGFyZXNvdXJjZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGJmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGJmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGNtcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRjbXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWJpYW4uYmluYXJ5LXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZmXCIsIFwidXZ2ZlwiLCBcInV2ZFwiLCBcInV2dmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLnR0bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnRcIiwgXCJ1dnZ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS51bnNwZWNpZmllZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2eFwiLCBcInV2dnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLnppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2elwiLCBcInV2dnpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZW5vdm8uZmNzZWxheW91dC1saW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmVfbGF1bmNoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVzbXVtZS5tb3ZpZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kaXItYmkucGxhdGUtZGwtbm9zdWZmaXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG0uZGVsZWdhdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kbmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkbmFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb2N1bWVudCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG9sYnkubWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tb2JpbGUuMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tb2JpbGUuMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb3JlbWlyLnNjb3JlY2xvdWQtYmluYXJ5LWRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRwZ3JhcGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcGdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kcmVhbWZhY3RvcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZmFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHJpdmUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRzLWtleXBvaW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrcHh4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHRnLmxvY2FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR0Zy5sb2NhbC5mbGFzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdGcubG9jYWwuaHRtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuYWl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWl0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmR2YmlzbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZHZialwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZXNnY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjZGZ0bm90aWZhY2Nlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dhY2Nlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dhY2Nlc3MyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjZXNncGRkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjcm9hbWluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXB0di5hbGZlYy1iYXNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcHR2LmFsZmVjLWVuaGFuY2VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1hZ2dyZWdhdGUtcm9vdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtY29udGFpbmVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1nZW5lcmljK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1tc2dsaXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1yZWdpc3RyYXRpb24tcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtaWEtcmVnaXN0cmF0aW9uLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pbml0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5wZnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLnNlcnZpY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5keHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHluYWdlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdlb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR6clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lYXN5a2FyYW9rZS5jZGdkb3dubG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY2Rpcy11cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNpcC5ybHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNsaXBzZS5kaXR0bytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmNoYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWFnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmZpbGVyZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5maWxldXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5zZXJpZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLnNlcmllc3JlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLnNlcmllc3VwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lZmkuaW1nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVmaS5pc29cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWxuK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lbWNsaWVudC5hY2Nlc3NyZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVubGl2ZW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lbnBoYXNlLmVudm95XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwcmludHMuZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5lc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5tc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5xdWlja2FuaW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicWFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24uc2FsdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLnNzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVyaWNzc29uLnF1aWNrY2FsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcm9mc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lc3Bhc3MtZXNwYXNzK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lc3ppZ25vMyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVzM1wiLCBcImV0M1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYW9jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYXNpYy1lK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmFzaWMtcyt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5jdWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2Y29tbWFuZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZkaXNjb3ZlcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2cHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtYmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2FkLWNvZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtbnB2cit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzZXJ2aWNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnN5bmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2dWVwcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kubWNpZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLm1oZWc1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kub3ZlcmxvYWQtY29udHJvbC1wb2xpY3ktZGF0YXNldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnBzdG4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5zY2kreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5zaW1zZXJ2cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnRpbWVzdGFtcC10b2tlblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnRzbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnRzbC5kZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXUua2FzcGFyaWFuLmNhcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXVkb3JhLmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXZvbHYuZWNpZy5wcm9maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV2b2x2LmVjaWcuc2V0dGluZ3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXZvbHYuZWNpZy50aGVtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5leHN0cmVhbS1lbXBvd2VyK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5leHN0cmVhbS1wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV6cGl4LWFsYnVtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXoyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXpwaXgtcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV6M1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmYtc2VjdXJlLm1vYmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mYW1pbHlzZWFyY2guZ2VkY29tK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mYXN0Y29weS1kaXNrLWltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5tc2VlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zZWVkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5zZWVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VlZFwiLCBcImRhdGFsZXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5zdGF0aW9ueG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiWE1MLUJBU0VEXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZmc25zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZpY2xhYi5mbGIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZpbG1pdC56ZmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmludHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmlyZW1vbmtleXMuY2xvdWRjZWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZsb2dyYXBoaXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncGhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mbHV4dGltZS5jbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnRjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZm9udC1mb250Zm9yZ2Utc2ZkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZyYW1lbWFrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbVwiLCBcImZyYW1lXCIsIFwibWFrZXJcIiwgXCJib29rXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnJlZWxvZy5jb21pY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mcm9nYW5zLmZuY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZm5jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnJvZ2Fucy5sdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZzYy53ZWJsYXVuY2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppZmlsbS5mYi5kb2N1d29ya3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuZG9jdXdvcmtzLmJpbmRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppZmlsbS5mYi5kb2N1d29ya3MuY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmpmaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2FzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5czJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYTJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9hM1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXNncFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZnNVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXNwcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiaDJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guYXJ0LWV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5hcnQ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kZGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGR3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRvY3V3b3Jrcy5iaW5kZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzLmNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guaGJwbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdXQtbWlzbmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1dG9pbitjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1dG9pbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnV6enlzaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ6c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdhNGdoLnBhc3Nwb3J0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW5vbWF0aXgudHV4ZWRvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHhkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2Vub3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50aWNzLmdyZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLmNhdG1ldGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5lYnVpbGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLmVjbGFzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28uZ3BrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28ubWFuaWZlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLnBrZ21ldGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby54cGFrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9jdWJlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEuZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdnYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLnBpbmJvYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLnNsaWRlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdnc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLnRvb2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZ3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9tZXRyeS1leHBsb3JlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdleFwiLCBcImdyZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb25leHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJneHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9wbGFuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZzJ3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2Vvc3BhY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnM3dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZXJiZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2xvYmFscGxhdGZvcm0uY2FyZC1jb250ZW50LW1ndFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbG9iYWxwbGF0Zm9ybS5jYXJkLWNvbnRlbnQtbWd0LXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdteFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdudS50YWxlci5leGNoYW5nZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ251LnRhbGVyLm1lcmNoYW50K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5hdWRpb1wiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmRvY3VtZW50XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2RvY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmRyYXdpbmdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZHJhd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmRyaXZlLXNka1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5maWxlXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZm9sZGVyXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZvcm1cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZm9ybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZ1c2lvbnRhYmxlXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuamFtXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2phbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLm1haWwtbGF5b3V0XCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMubWFwXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ21hcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnBob3RvXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMucHJlc2VudGF0aW9uXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NsaWRlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNjcmlwdFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdzY3JpcHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5zaG9ydGN1dFwiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNpdGVcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2l0ZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNwcmVhZHNoZWV0XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NoZWV0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMudW5rbm93blwiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnZpZGVvXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImttbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1lYXJ0aC5rbXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrbXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb3Yuc2suZS1mb3JtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ292LnNrLmUtZm9ybSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ292LnNrLnhtbGRhdGFjb250YWluZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZGNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3B4c2VlLm1hcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncmFmZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncWZcIiwgXCJncXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncmlkbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWFjY291bnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaGVscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdoZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1pZGVudGl0eS1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2ltXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWluamVjdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3J2XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXRvb2wtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd0bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS10b29sLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHBsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXZjYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGFsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoYWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYW5kaGVsZC1lbnRlcnRhaW5tZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiem1tXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGJjaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhiY2lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGNsLWJpcmVwb3J0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oZHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGVyb2t1K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oaGUubGVzc29uLXBsYXllclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLWhwZ2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJocGdsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBpZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhwaWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1ocHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJocHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1qbHl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamx0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtcGNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGNsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtcGNseGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY2x4bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhzbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5odHRwaG9uZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oeWRyb3N0YXRpeC5zb2YtZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNmZC1oZHN0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh5cGVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oeXBlci1pdGVtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oeXBlcmRyaXZlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oem4tM2QtY3Jvc3N3b3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5hZnBsaW5lZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5lbGVjdHJvbmljLW1lZGlhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5taW5pcGF5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXB5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLm1vZGNhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWZwXCIsIFwibGlzdGFmcFwiLCBcImxpc3QzODIwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLnJpZ2h0cy1tYW5hZ2VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLnNlY3VyZS1jb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmljY3Byb2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY2NcIiwgXCJpY21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pZWVlLjE5MDVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWdsb2FkZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZ2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbWFnZW1ldGVyLmZvbGRlcit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1hZ2VtZXRlci5pbWFnZSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1tZXJ2aXNpb24taXZwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXZwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1tZXJ2aXNpb24taXZ1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXZ1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmltc2NjdjFwMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMuaW1zY2N2MXAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmxpcy52Mi5yZXN1bHQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbGNvbnN1bWVycHJvZmlsZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29scHJveHkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHByb3h5LmlkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xzZXR0aW5ncytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sc2V0dGluZ3Muc2ltcGxlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvcm1lZGNvbnRyb2wucm1zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluZm9ybWl4LXZpc2lvbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluZm90ZWNoLnByb2plY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3RlY2gucHJvamVjdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbm5vcGF0aC53YW1wLm5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnNvcnMuaWdtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWdtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJjb24uZm9ybW5ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwd1wiLCBcInhweFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludGVyZ2VvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaTJnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJ0cnVzdC5kaWdpYm94XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludGVydHJ1c3Qubm5jcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnR1LnFib1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInFib1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludHUucWZ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicWZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBmcy5pcG5zLXJlY29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGxkLmNhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGxkLmRhZy1jYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwbGQuZGFnLWpzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBsZC5yYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5jYXRhbG9naXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLmNvbmNlcHRpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIua25vd2xlZGdlaXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLm5ld3NpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIubmV3c21lc3NhZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5wYWNrYWdlaXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLnBsYW5uaW5naXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHVucGx1Z2dlZC5yY3Byb2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyY3Byb2ZpbGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcmVwb3NpdG9yeS5wYWNrYWdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXJwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXMteHByXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHByXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXNhYy5mY3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmY3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pc28xMTc4My0xMCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtZGlyZWN0b3J5LXNlcnZpY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtanBuc3RvcmUtd2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXBheW1lbnQtd2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXJlZ2lzdHJhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1yZWdpc3RyYXRpb24td2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXNldHN0b3JlLXdha2V1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC12ZXJpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtdmVyaWZpY2F0aW9uLXdha2V1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qY3AuamF2YW1lLm1pZGxldC1ybXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qaXNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamlzcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmpvb3N0LmpvZGEtYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpvZGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qc2suaXNkbi1uZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2Fob290elwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImt0elwiLCBcImt0clwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rYXJib25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrYXJib25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2NoYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2hydFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rZm9ybXVsYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtmb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5raXZpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rb250b3VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia29uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtwcmVzZW50ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrcHJcIiwgXCJrcHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua3NwcmVhZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtzcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rd29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImt3ZFwiLCBcImt3dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZW5hbWVhYXBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHRrZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtleW1hbi5rbXAremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtleW1hbi5rbXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2lkc3BpcmF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2lhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2luYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrbmVcIiwgXCJrbnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rb2FuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2twXCIsIFwic2tkXCIsIFwic2t0XCIsIFwic2ttXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua29kYWstZGVzY3JpcHRvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNzZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxhc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sYXMubGFzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sYXMubGFzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGFzeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGFzemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxkZXYucHJvZHVjdGxpY2Vuc2luZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sZWFwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5saWJlcnR5LXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGxhbWFncmFwaGljcy5saWZlLWJhbGFuY2UuZGVza3RvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxiZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxsYW1hZ3JhcGhpY3MubGlmZS1iYWxhbmNlLmV4Y2hhbmdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGJlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG9naXBpcGUuY2lyY3VpdCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG9vbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy0xLTItM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjEyM1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLWFwcHJvYWNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXByXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtZnJlZWxhbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtbm90ZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1vcmdhbml6ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvcmdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1zY3JlZW5jYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy13b3JkcHJvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHdwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFjcG9ydHMucG9ydHBrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBvcnRwa2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXBib3gtdmVjdG9yLXRpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLmFjdGlvbnRva2VuK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0uY29uZnRva2VuK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0ubGljZW5zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLm1kY2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFzb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1heGFyLmFyY2hpdmUuM3R6K3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXhtaW5kLm1heG1pbmQtZGJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1kbC1tYnNkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZWRjYWxjZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1jMVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lZGlhc3RhdGlvbi5jZGtleVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNka2V5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVkaWNhbGhvbG9kZWNrLnJlY29yZHhyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lcmlkaWFuLXNsaW5nc2hvdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZXJtYWlkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1mZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtd2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZm1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm8ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3JvZ3JhZnguZmxvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmxvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9ncmFmeC5pZ3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZ3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb3NvZnQucG9ydGFibGUtZXhlY3V0YWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb3NvZnQud2luZG93cy50aHVtYm5haWwtY2FjaGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWllbGUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1pZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pbmlzb2Z0LWhwMzAwMC1zYXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pdHN1YmlzaGkubWlzdHktZ3VhcmQudHJ1c3R3ZWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLmRhZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRhZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5kaXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkaXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMubWJrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWJrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1xeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1xeVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5tc2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMucGxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLnR4ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR4ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9waHVuLmFwcGxpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBuXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9waHVuLmNlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5hZHNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5maXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmdvdGFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5rbXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLnR0Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUud2VtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmlwcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW96aWxsYS54dWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4dWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy0zbWZkb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1hcnRnYWxyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNpbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWFzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1jYWItY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNhYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWNvbG9yLmljY3Byb2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsc1wiLCBcInhsbVwiLCBcInhsYVwiLCBcInhsY1wiLCBcInhsdFwiLCBcInhsd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5iaW5hcnkubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxzYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsc21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50ZW1wbGF0ZS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZm9udG9iamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW90XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtaHRtbGhlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1pbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpbXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1scm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJscm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuYWN0aXZleCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2V0aGVtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRobXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vcGVudHlwZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtb3V0bG9va1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBhY2thZ2Uub2JmdXNjYXRlZC1vcGVudHlwZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBraS5zZWNjYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBraS5zdGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBsYXlyZWFkeS5pbml0aWF0b3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwdFwiLCBcInBwc1wiLCBcInBvdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuYWRkaW4ubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHBhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQucHJlc2VudGF0aW9uLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwdG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlc2hvdy5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcHNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC50ZW1wbGF0ZS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwb3RtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJpbnRkZXZpY2VjYXBhYmlsaXRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJpbnRpbmcucHJpbnR0aWNrZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcmludHNjaGVtYXRpY2tldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcm9qZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBwXCIsIFwibXB0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtdG5lZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy12aXNpby52aWV3ZXJcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJ2ZHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLmRldmljZXBhaXJpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy5ud3ByaW50aW5nLm9vYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLnByaW50ZXJwYWlyaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3Mud3NkLm9vYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5saWMtY2hsZy1yZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubGljLXJlc3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubWV0ZXItY2hsZy1yZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubWV0ZXItcmVzcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLmRvY3VtZW50Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvY21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvdG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13b3Jrc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndwc1wiLCBcIndrc1wiLCBcIndjbVwiLCBcIndkYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdwbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXhwc2RvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXNhLWRpc2staW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zZXFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tc2dwYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zaWduXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11bHRpYWQuY3JlYXRvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdWx0aWFkLmNyZWF0b3IuY2lmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11c2ljLW5pZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXVzaWNpYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdXZlZS5zdHlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zdHlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5teW5mY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRhZ2xldFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hY2FtYXIueWJyaWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hdG8uYmluZGluZ2RhdGFvYmplY3QrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLmJpbmRpbmdkYXRhb2JqZWN0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLmJpbmRpbmdkYXRhb2JqZWN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmF0by5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmllcGQremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5jZC5jb250cm9sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5jZC5yZWZlcmVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmVhcnN0Lmluditqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmVidW1pbmQubGluZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZXJ2YW5hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5ldGZweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZXVyb2xhbmd1YWdlLm5sdVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5sdVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5pbW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmludGVuZG8ubml0cm8ucm9tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5pbnRlbmRvLnNuZXMucm9tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5pdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJudGZcIiwgXCJuaXRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtZGlyZWN0b3J5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibm5kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtc2VhbGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibm5zXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtd2ViXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibm53XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuY2F0YWxvZ3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuY29ubWwrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuY29ubWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuaXB0di5jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuaXNkcy1yYWRpby1wcmVzZXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmxhbmRtYXJrK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmxhbmRtYXJrK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmxhbmRtYXJrY29sbGVjdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2UuYWMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmdkYXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2Uuc3ltYmlhbi5pbnN0YWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuLWdhZ2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uY2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucGNkK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnBjZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5yYWRpby1wcmVzZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycHN0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucmFkaW8tcHJlc2V0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJwc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5lZG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5lZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlZHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5leHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuY29udGVudC1zaGFyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuZmlsZS10cmFuc2ZlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwub2d3X3JlbW90ZS1hY2Nlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLnNpcC10YV9yZW1vdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLnNpcC10YV90Y3Bfc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9haS53b3JrZmxvd3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FpLndvcmtmbG93cytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FpLndvcmtmbG93cyt5YW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5iYXNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5jaGFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5jaGFydC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5kYXRhYmFzZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmZvcm11bGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZm9ybXVsYS10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kZnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZ3JhcGhpY3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZ3JhcGhpY3MtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuaW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuaW1hZ2UtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnByZXNlbnRhdGlvbi10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2R0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtbWFzdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtbWFzdGVyLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3R0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtd2ViXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2JuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9jZitjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9jaS5pbWFnZS5tYW5pZmVzdC52MStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2Z0bi5sMTBuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNvbnRlbnRhY2Nlc3Nkb3dubG9hZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNvbnRlbnRhY2Nlc3NzdHJlYW1pbmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5jc3BnLWhleGJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmRhZS5zdmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5kYWUueGh0bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5taXBwdmNvbnRyb2xtZXNzYWdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYucGFlLmdlbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnNwZGlzY292ZXJ5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuc3BkbGlzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnVlcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnVzZXJwcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9scGMtc3VnYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4b1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS1zY3dzLWNvbmZpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEtc2N3cy1odHRwLXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLXNjd3MtaHR0cC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QuYXNzb2NpYXRlZC1wcm9jZWR1cmUtcGFyYW1ldGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5kcm0tdHJpZ2dlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5pbWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0Lmx0a21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0Lm5vdGlmaWNhdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QucHJvdmlzaW9uaW5ndHJpZ2dlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2dib290XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zZ2RkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zZ2R1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zaW1wbGUtc3ltYm9sLWNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc21hcnRjYXJkLXRyaWdnZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc3Byb3YreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnN0a21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1hZGRyZXNzLWJvb2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1mZWF0dXJlLWhhbmRsZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1wY2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1zdWJzLWludml0ZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLXVzZXItcHJlZnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRjZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZGNkY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZGQyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGQyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRybS5yaXNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5ncm91cC11c2FnZS1saXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5sd20ybStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5sd20ybStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmx3bTJtK3RsdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucGFsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuZGV0YWlsZWQtcHJvZ3Jlc3MtcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuZmluYWwtcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuZ3JvdXBzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuaW52b2NhdGlvbi1kZXNjcmlwdG9yK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2Mub3B0aW1pemVkLXByb2dyZXNzLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucHVzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuc2NpZG0ubWVzc2FnZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnhjYXAtZGlyZWN0b3J5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYWRzLWVtYWlsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hZHMtZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYWRzLWZvbGRlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYWxvYy1zdXBsLWluaXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGFteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhdHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YXR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9udmlmLm1ldGFkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW5ibG94LmdhbWUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYmd4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmJsb3guZ2FtZS1iaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmV5ZS5vZWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3Blbm9mZmljZW9yZy5leHRlbnNpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm94dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW5zdHJlZXRtYXAuZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9zbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW50aW1lc3RhbXBzLm90c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVudnBpLmRzcHgranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmN1c3RvbS1wcm9wZXJ0aWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmN1c3RvbXhtbHByb3BlcnRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuY2hhcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0c2hhcGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtY29sb3JzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbWxheW91dCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbXN0eWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmV4dGVuZGVkLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuY29tbWVudGF1dGhvcnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuY29tbWVudHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuaGFuZG91dG1hc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5ub3Rlc21hc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5ub3Rlc3NsaWRlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24ubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzcHJvcHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbGR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVsYXlvdXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVtYXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHBzeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlc2hvdy5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRldXBkYXRlaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50YWJsZXN0eWxlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50YWdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG90eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlLm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudmlld3Byb3BzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY2FsY2NoYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY2hhcnRzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNvbW1lbnRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29ubmVjdGlvbnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5kaWFsb2dzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmV4dGVybmFsbGluayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Y2FjaGVkZWZpbml0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RjYWNoZXJlY29yZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdHRhYmxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucXVlcnl0YWJsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9uaGVhZGVycyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9ubG9nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hhcmVkc3RyaW5ncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxzeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0bWV0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlc2luZ2xlY2VsbHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlLm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC51c2VybmFtZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC52b2xhdGlsZWRlcGVuZGVuY2llcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLndvcmtzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZW92ZXJyaWRlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnZtbGRyYXdpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5jb21tZW50cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG9jeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQuZ2xvc3NhcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudC5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZW5kbm90ZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5mb250dGFibGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5mb290ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5mb290bm90ZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5udW1iZXJpbmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5zZXR0aW5ncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnN0eWxlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG90eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwudGVtcGxhdGUubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLndlYnNldHRpbmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuY29yZS1wcm9wZXJ0aWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuZGlnaXRhbC1zaWduYXR1cmUteG1sc2lnbmF0dXJlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UucmVsYXRpb25zaGlwcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcmFjbGUucmVzb3VyY2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9yYW5nZS5pbmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NhLm5ldGRlcGxveVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dlby5tYXBndWlkZS5wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWdwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NnaS5idW5kbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NnaS5kcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NnaS5zdWJzeXN0ZW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlc2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vdHBzLmN0LWtpcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5veGxpLmNvdW50Z3JhcGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGFnZXJkdXR5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYWxtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGRiXCIsIFwicHFhXCIsIFwib3ByY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhbm9wbHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGFvcy54bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGF0ZW50ZGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYXRpZW50ZWNvbW1zZG9jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhd2FhZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBhd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBjb3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGcuZm9ybWF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGcub3Nhc2xpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWk2XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGlhY2Nlc3MuYXBwbGljYXRpb24tbGljZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5waWNzZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlZmlmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG1pLndpZGdldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG9jLmdyb3VwLWFkdmVydGlzZW1lbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG9ja2V0bGVhcm5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGJkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNi1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNy1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjc1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjc1LXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJlbWluZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJldmlld3N5c3RlbXMuYm94XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm94XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJvY3JhdGUuYnJ1c2hzZXRcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJicnVzaHNldFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByb2NyZWF0ZS5icnVzaFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJydXNoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJvY3JlYXRlLmRyZWFtXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJvdGV1cy5tYWdhemluZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1nelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBzZnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHQubXVuZHVzbXVuZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHVibGlzaGFyZS1kZWx0YS10cmVlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicXBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHZpLnB0aWQxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHRpZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnB3Zy1tdWx0aXBsZXhlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wd2cteGh0bWwtcHJpbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4aHRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucXVhbGNvbW0uYnJldy1hcHAtcmVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnF1YXJhbnRhaW5lbmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnF1YXJrLnF1YXJreHByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicXhkXCIsIFwicXh0XCIsIFwicXdkXCIsIFwicXd0XCIsIFwicXhsXCIsIFwicXhiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucXVvYmplY3QtcXVveGRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubW9tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1jb25mK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1jb25uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1kaWFsb2creG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LXN0cmVhbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtY29uZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctYmFzZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWZheC1kZXRlY3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1mYXgtc2VuZHJlY3YreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1ncm91cCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLXNwZWVjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLXRyYW5zZm9ybSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWluc3Rvci5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhcGlkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlYWx2bmMuYmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmVkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVjb3JkYXJlLm11c2ljeG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVjb3JkYXJlLm11c2ljeG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXVzaWN4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZWxwaXBlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlbmxlYXJuLnJscHJpbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVzaWxpZW50LmxvZ2ljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlc3RmdWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJpZy5jcnlwdG9ub3RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3J5cHRvbm90ZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJpbS5jb2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNvZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJuLXJlYWxtZWRpYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ybi1yZWFsbWVkaWEtdmJyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybXZiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucm91dGU2Ni5saW5rNjYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsaW5rNjZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ycy0yNzR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJ1Y2t1cy5kb3dubG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zM3Ntc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zYWlsaW5ndHJhY2tlci50cmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2FyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNibS5jaWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2JtLm1pZDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2NyaWJ1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuM2RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5jc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLmRvY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuZW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5taHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLm5ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQucHB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC50aWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC54bHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwuaHRtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5wZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VlbWFpbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlaXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlbWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW1hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VtZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYWRlLXNhdmUtZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5mb3JtZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlmbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmZvcm10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIml0cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmludGVyY2hhbmdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWlmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQucGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlwa1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNob290cHJvb2YranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNob3BraWNrK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2h4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNpZ3Jvay5zZXNzaW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNpbXRlY2gtbWluZG1hcHBlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR3ZFwiLCBcInR3ZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaXJlbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2tldGNob21ldHJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNtYWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFydC5ub3RlYm9va1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFydC50ZWFjaGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGVhY2hlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNtaW50aW8ucG9ydGFscy5hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNuZXNkZXYtcGFnZS10YWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zb2Z0d2FyZTYwMi5maWxsZXIuZm9ybSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc29mdHdhcmU2MDIuZmlsbGVyLmZvcm0teG1sLXppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zb2xlbnQuc2RrbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNka21cIiwgXCJzZGtkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3BvdGZpcmUuZHhwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHhwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3BvdGZpcmUuc2ZzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2ZzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3FsaXRlM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zc3MtY29kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNzcy1kdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3NzLW50ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uY2FsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmRyYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5pbXByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ubWF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic21mXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLndyaXRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2R3XCIsIFwidm9yXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLndyaXRlci1nbG9iYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNnbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0ZXBtYW5pYS5wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic216aXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGVwbWFuaWEuc3RlcGNoYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdHJlZXQtc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi53YWRsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2FkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuY2FsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3hjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5jYWxjLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmRyYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuZHJhdy50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5pbXByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmltcHJlc3MudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwubWF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3htXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4d1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwud3JpdGVyLmdsb2JhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3hnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXIudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0d1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1cy1jYWxlbmRhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN1c1wiLCBcInN1c3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zd2lmdHZpZXctaWNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5YnlsLm1vbDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3ljbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3lmdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3ltYmlhbi5pbnN0YWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaXNcIiwgXCJzaXN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4c21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0rd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtLm5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG1kZGYrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtZGRmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG10bmRzK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbXRuZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZHMubm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRhYmxlc2NoZW1hK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50YW8uaW50ZW50LW1vZHVsZS1hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGFvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudGNwZHVtcC5wY2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGNhcFwiLCBcImNhcFwiLCBcImRtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRoaW5rLWNlbGwucHB0dGMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRtZC5tZWRpYWZsZXguYXBpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50bW9iaWxlLWxpdmV0dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRtb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRyaS5vbmVzb3VyY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJpZC50cHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cmlzY2FwZS5teHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cnVlYXBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJ1ZWRvY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51Ymlzb2Z0LndlYnBsYXllclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51ZmRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widWZkXCIsIFwidWZkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVpYy5vc2RtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51aXEudGhlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dHpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51bWFqaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1bWpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51bml0eVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVuaXR5d2ViXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudW9tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVvbWxcIiwgXCJ1b1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuYWxlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5hbGVydC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmJlYXJlci1jaG9pY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5iZWFyZXItY2hvaWNlLXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2FjaGVvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNhY2hlb3Atd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jaGFubmVsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2hhbm5lbC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0LXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdGNtZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3RjbWQtd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5zaWduYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXJpLW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52YWx2ZS5zb3VyY2UubWF0ZXJpYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmN4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmQtc3R1ZHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVjdG9yd29ya3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJhaXNvbi50c20tcmVwb3J0K2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyYWlzb24udHNtLXJlcG9ydCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyaW1hdHJpeC52Y2FzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcml0b25lLmFpb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcnlhbnQudGhpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXMuZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZpZHNvZnQudmlkY29uZmVyZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52aXNpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZzZFwiLCBcInZzdFwiLCBcInZzc1wiLCBcInZzd1wiLCBcInZzZHhcIiwgXCJ2dHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52aXNpb25hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2aXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52aXZpZGVuY2Uuc2NyaXB0ZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52b2NhbHNoYXBlci52c3A0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhcC5zaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLnNsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndieG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLndtbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWxjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLndtbHNjcmlwdGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWxzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhc21mbG93LndhZmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2VidHVyYm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3dGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53ZmEuZHBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndmYS5wMnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2ZhLndzY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53aW5kb3dzLmRldmljZXBhaXJpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud21jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndtZi5ib290c3RyYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud29sZnJhbS5tYXRoZW1hdGljYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLm1hdGhlbWF0aWNhLnBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud29sZnJhbS5wbGF5ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuYnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b3JkbGlmdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b3JkcGVyZmVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndwZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndxZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndxZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndycS1ocDMwMDAtbGFiZWxsZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3Quc3RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3YuY3NwK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnd2LmNzcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53di5zc3AreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGFjbWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhhcmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54YXJpbi5jcGpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGVjcmV0cy1lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGZkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhmZGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54ZmRsLndlYmZvcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1pK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLmNwa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUuZHBrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5wbGFuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLnBwa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUueGxpbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtZGljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHZkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh2c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5odi12b2ljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh2cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5vcGVuc2NvcmVmb3JtYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEub3BlbnNjb3JlZm9ybWF0Lm9zZnB2Zyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9zZnB2Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5yZW1vdGUtc2V0dXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnNtYWYtYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzYWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuc21hZi1waHJhc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEudGhyb3VnaC1uZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnR1bm5lbC11ZHBlbmNhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW93ZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnllbGxvd3JpdmVyLWN1c3RvbS1tZW51XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY21wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuenVsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiemlyXCIsIFwiemlyelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnp6YXp6LmRlY2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6YXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZvaWNleG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm91Y2hlci1jbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm91Y2hlci1qd3MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92cCtjb3NlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdnArand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdnEtcnRjcHhyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2FzbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2FzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2F0Y2hlcmluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3aWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dlYnB1c2gtb3B0aW9ucytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aG9pc3BwLXF1ZXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2hvaXNwcC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dpZGdldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndndFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2luaGxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJobHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dpdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93b3JkcGVyZmVjdDUuMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dzZGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3c2RsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93c3BvbGljeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndzcG9saWN5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LTd6LWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjd6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFiaXdvcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFid1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hY2UtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWNlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hcHBsZS1kaXNraW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRtZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hcmpcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcmpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1iaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFhYlwiLCBcIngzMlwiLCBcInUzMlwiLCBcInZveFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hdXRob3J3YXJlLW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtc2VnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhYXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYmNwaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJjcGlvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJkb2NcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZG9jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJpdHRvcnJlbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRvcnJlbnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYmxlbmRlclwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJsZW5kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJsb3JiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibGJcIiwgXCJibG9yYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJielwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iemlwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnoyXCIsIFwiYm96XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNiclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2JyXCIsIFwiY2JhXCIsIFwiY2J0XCIsIFwiY2J6XCIsIFwiY2I3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNkbGlua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNmcy1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2hhdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2hhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jaGVzcy1wZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBnblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jaHJvbWUtZXh0ZW5zaW9uXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3J4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNvY29hXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNjb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jb21wcmVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNvbmZlcmVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5zY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jcGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcGlvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRlYlwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZGViaWFuLXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRlYlwiLCBcInVkZWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZGdjLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRnY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kaXJlY3RvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGlyXCIsIFwiZGNyXCIsIFwiZHhyXCIsIFwiY3N0XCIsIFwiY2N0XCIsIFwiY3h0XCIsIFwidzNkXCIsIFwiZmdkXCIsIFwic3dhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRvb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kdGJuY3greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5jeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kdGJvb2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR0YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kdGJyZXNvdXJjZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWR2aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHZpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWVudm95XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJldnlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZXZhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJldmFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1iZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWRvc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWZyYW1lbWFrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1naG9zdHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtbGliZ3J4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtbGludXgtcHNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1wY2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXNuZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic25mXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtc3BlZWRvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtc3Vub3MtbmV3c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXR5cGUxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZmFcIiwgXCJwZmJcIiwgXCJwZm1cIiwgXCJhZm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC12Zm9udFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mcmVlYXJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZnV0dXJlc3BsYXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ2NhLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdjYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1nbHVseFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widWx4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWdudW1lcmljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbnVtZXJpY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ncmFtcHMteG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncmFtcHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ3RhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3RhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1nemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWhkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWh0dHBkLXBocFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGhwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWluc3RhbGwtaW5zdHJ1Y3Rpb25zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpbnN0YWxsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWlweW5iK2pzb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlweW5iXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWlzbzk2NjAtaW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlzb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pd29yay1rZXlub3RlLXNmZmtleVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtleVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pd29yay1udW1iZXJzLXNmZm51bWJlcnNcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJudW1iZXJzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWl3b3JrLXBhZ2VzLXNmZnBhZ2VzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGFnZXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtamF2YS1hcmNoaXZlLWRpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFyZGlmZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1qYXZhLWpubHAtZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiam5scFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1qYXZhc2NyaXB0XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWtlZXBhc3MyXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2RieFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1sYXRleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGF0ZXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbHVhLWJ5dGVjb2RlXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHVhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1semgtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHpoXCIsIFwibGhhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1ha2VzZWxmXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJ1blwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1taWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1pZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tb2JpcG9ja2V0LWVib29rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmNcIiwgXCJtb2JpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1wZWd1cmxcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLWFwcGxpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHBsaWNhdGlvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcy1zaG9ydGN1dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibG5rXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLXdtZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLXdtelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid216XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLXhiYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhiYXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNhY2Nlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1kYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2JpbmRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2JkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zY2FyZGZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNyZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2NsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNscFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2Rvcy1wcm9ncmFtXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zZG93bmxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4ZVwiLCBcImRsbFwiLCBcImNvbVwiLCBcImJhdFwiLCBcIm1zaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc21lZGlhdmlld1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXZiXCIsIFwibTEzXCIsIFwibTE0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zbWV0YWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtZlwiLCBcIndtelwiLCBcImVtZlwiLCBcImVtelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc21vbmV5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbnlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNwdWJsaXNoZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB1YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc3NjaGVkdWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXN0ZXJtaW5hbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zd3JpdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndyaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1uZXRjZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5jXCIsIFwiY2RmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW5zLXByb3h5LWF1dG9jb25maWdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1uemJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm56YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1wZXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsXCIsIFwicG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGlsb3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJjXCIsIFwicGRiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBrY3MxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDEyXCIsIFwicGZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBrY3M3LWNlcnRpZmljYXRlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDdiXCIsIFwic3BjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBrY3M3LWNlcnRyZXFyZXNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwN3JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGtpLW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXJhci1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcmVkaGF0LXBhY2thZ2UtbWFuYWdlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcmVzZWFyY2gtaW5mby1zeXN0ZW1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyaXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2VhXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zaGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3dmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNpbHZlcmxpZ2h0LWFwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGFwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNxbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3FsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN0dWZmaXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdHVmZml0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2l0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdWJyaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNydFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdjRjcGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdjRjcGlvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN2NGNyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3Y0Y3JjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXQzdm0taW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInQzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRhZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRjbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGNsXCIsIFwidGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGV4LXRmbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRleGluZm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRleGluZm9cIiwgXCJ0ZXhpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRnaWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9ialwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC11c3RhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXN0YXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1oZGRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhkZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LW92YVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3ZhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtb3ZmXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12Ym94XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Ym94XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmJveC1leHRwYWNrXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmJveC1leHRwYWNrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmRpXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2ZGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12aGRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZoZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZtZGtcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZtZGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtd2Fpcy1zb3VyY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNyY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC13ZWItYXBwLW1hbmlmZXN0K2pzb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYmFwcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXg1MDktY2EtY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRlclwiLCBcImNydFwiLCBcInBlbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14NTA5LWNhLXJhLWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXg1MDktbmV4dC1jYS1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14ZmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmaWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteGxpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14cGluc3RhbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14elwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtemlwLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJ6aXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtem1hY2hpbmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInoxXCIsIFwiejJcIiwgXCJ6M1wiLCBcIno0XCIsIFwiejVcIiwgXCJ6NlwiLCBcIno3XCIsIFwiejhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3g0MDAtYnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94YWNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hhbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhhbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtYXR0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGF2XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWNhcHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4Y2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtZGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1lbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhlbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1lcnJvcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtbnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjb24tY29uZmVyZW5jZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNvbi1jb25mZXJlbmNlLWluZm8tZGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hlbmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZW5jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94ZmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGZkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGh0bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4aHRtbFwiLCBcInhodFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGh0bWwtdm9pY2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hsaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhtbFwiLCBcInhzbFwiLCBcInhzZFwiLCBcInJuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1sLWR0ZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHRkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bWwtZXh0ZXJuYWwtcGFyc2VkLWVudGl0eVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htbC1wYXRjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htcHAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94b3AreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4b3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hwcm9jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hzbHQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4c2xcIiwgXCJ4c2x0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94c3BmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4c3BmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94dit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14bWxcIiwgXCJ4aHZtbFwiLCBcInh2bWxcIiwgXCJ4dm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieWFuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1kYXRhK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLWRhdGEranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1kYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1wYXRjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLXBhdGNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1zaWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieWluXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi96aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6aXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ppcCtkb3Rsb3R0aWVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJsb3R0aWVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3psaWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi96c3RkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vMzJrYWRwY21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby8zZ3BwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2dwcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vM2dwcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZHRzXCIsIFwiYWFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hYzNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hZHBjbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hbXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhbXJcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Ftci13YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Ftci13YitcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hcHR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXNjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXRyYWMtYWR2YW5jZWQtbG9zc2xlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hdHJhYy14XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXRyYWMzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYmFzaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdVwiLCBcInNuZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYnYxNlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2J2MzJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9jbGVhcm1vZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9jblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2RhdDEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZGxzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHNyLWVzMjAxMTA4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHNyLWVzMjAyMDUwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHNyLWVzMjAyMjExXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHNyLWVzMjAyMjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kdmk0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZWFjM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2VuY2FwcnRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmMtcWNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyYzBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY2IwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY2IxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY253XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY253MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNudzFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjd2IwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY3diMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2ZsYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9mbGV4ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZndkcmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcxMS0wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcxOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzIyMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI2LTE2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyNi0yNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjYtMzJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI2LTQwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI5MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjlkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nc21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nc20tZWZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZ3NtLWhyLTA4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vaWxiY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2lwLW1yX3YyLjVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9pc2FjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9sMTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9sMjBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9sMjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9sOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2xwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21hdHJvc2thXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWVscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21lbHAxMjAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWVscDI0MDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tZWxwNjAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWhhc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21pZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1pZFwiLCBcIm1pZGlcIiwgXCJrYXJcIiwgXCJybWlcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21pZGktY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21vYmlsZS14bWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteG1mXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcDNcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcDNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm00YVwiLCBcIm1wNGFcIiwgXCJtNGJcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wNGEtbGF0bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wYS1yb2J1c3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBnYVwiLCBcIm1wMlwiLCBcIm1wMmFcIiwgXCJtcDNcIiwgXCJtMmFcIiwgXCJtM2FcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wZWc0LWdlbmVyaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tdXNlcGFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vb2dnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2dhXCIsIFwib2dnXCIsIFwic3B4XCIsIFwib3B1c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vb3B1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3Bhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3BjbWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wY21hLXdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGNtdVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3BjbXUtd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wcnMuc2lkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcWNlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9yYXB0b3JmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9yZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ydHAtZW5jLWFlc2NtMTI4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcnRwLW1pZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ydHBsb29wYmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3J0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3MzbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiczNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zY2lwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc2lsa1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2lsXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zbXZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zbXYtcWNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc212MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NvZmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zcC1taWRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc3BlZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90MTQwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3QzOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RlbGVwaG9uZS1ldmVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RldHJhX2FjZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdGV0cmFfYWNlbHBfYmJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90b25lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdHN2Y2lzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdWVtY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3VscGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3VzYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92ZHZpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm1yLXdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLjNncHAuaXVmcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC40c2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuYXVkaW9rb3pcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY2VscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jaXNjby5uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY21sZXMucmFkaW8tZXZlbnRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNucy5hbnAxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNucy5pbmYxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRlY2UuYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dmFcIiwgXCJ1dnZhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZGlnaXRhbC13aW5kc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVvbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRsbmEuYWR0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5oZWFhYy4xXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LmhlYWFjLjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkubWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5Lm1wc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5wbDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkucGwyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5wbDJ6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LnB1bHNlLjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHJhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHRzXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHRzLmhkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHRzaGRcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kdHMudWhkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmR2Yi5maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmV2ZXJhZC5wbGpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuaG5zLmF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmx1Y2VudC52b2ljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx2cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm1zLXBsYXlyZWFkeS5tZWRpYS5weWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJweWFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5ub2tpYS5tb2JpbGUteG1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm5vcnRlbC52YmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubnVlcmEuZWNlbHA0ODAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWNlbHA0ODAwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubnVlcmEuZWNlbHA3NDcwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWNlbHA3NDcwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubnVlcmEuZWNlbHA5NjAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWNlbHA5NjAwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQub2N0ZWwuc2JjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnByZXNvbnVzLm11bHRpdHJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQucWNlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5yaGV0b3JleC4zMmthZHBjbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5yaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyaXBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5ybi1yZWFsYXVkaW9cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwubXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC52bXguY3ZzZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC53YXZlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm9yYmlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm9yYmlzLWNvbmZpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3dhdlwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhdlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vd2F2ZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhdlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vd2VibVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2ViYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1hYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1haWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaWZcIiwgXCJhaWZmXCIsIFwiYWlmY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1jYWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNhZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1mbGFjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbGFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LW00YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtNGFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbWF0cm9za2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1rYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tcGVndXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtM3VcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbXMtd2F4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YXhcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbXMtd21hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtcG4tcmVhbGF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYW1cIiwgXCJyYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1wbi1yZWFsYXVkaW8tcGx1Z2luXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybXBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtcmVhbGF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXR0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC13YXZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhdlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhtXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNkeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2R4XCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2lmXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNtZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNtZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY3NtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1wZGJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gteHl6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4eXpcIl1cbiAgICAgIH0sXG4gICAgICBcImZvbnQvY29sbGVjdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC9vdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC9zZm50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiZm9udC90dGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC93b2ZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid29mZlwiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC93b2ZmMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndvZmYyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hY2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hcG5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYXZjaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF2Y2lcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2F2Y3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdmNzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hdmlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXZpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYm1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibXBcIiwgXCJkaWJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2NnbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNnbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZGljb20tcmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHJsZVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZHB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHB4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9lbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlbWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2ZpdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmaXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9nM2ZheFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImczXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9naWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWljXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9oZWljLXNlcXVlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVpY3NcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlaWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWlmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9oZWlmLXNlcXVlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVpZnNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlajJrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVqMlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaWVmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWVmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qMmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qYWlpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFpaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvamFpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphaXNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2psc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpsc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianAyXCIsIFwianBnMlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwZ1wiLCBcImpwZWdcIiwgXCJqcGVcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pwaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwaFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanBoY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpoY1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanBtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBtXCIsIFwianBnbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianB4XCIsIFwianBmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeGxcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4clwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhyYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4cmFcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4cnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHJzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4c2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHNjXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhzaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvanhzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4c3NcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2t0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImt0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uva3R4MlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImt0eDJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL25hcGxwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3BqcGVnXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamZpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcG5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG5nXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9wcnMuYnRpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJ0aWZcIiwgXCJidGZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3Bycy5wdGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwdGlcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3B3Zy1yYXN0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9zZ2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNnaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvc3ZnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ZnXCIsIFwic3ZnelwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvdDM4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widDM4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS90aWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGlmXCIsIFwidGlmZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvdGlmZi1meFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRmeFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmFkb2JlLnBob3Rvc2hvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHNkXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuYWlyemlwLmFjY2VsZXJhdG9yLmF6dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF6dlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmNsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuY25zLmluZjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZGVjZS5ncmFwaGljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZpXCIsIFwidXZ2aVwiLCBcInV2Z1wiLCBcInV2dmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5kanZ1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGp2dVwiLCBcImRqdlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmR2Yi5zdWJ0aXRsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN1YlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmR3Z1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR3Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmR4ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR4ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZhc3RiaWRzaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZic1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZweFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZzdFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZ1aml4ZXJveC5lZG1pY3MtbW1yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW1yXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZnVqaXhlcm94LmVkbWljcy1ybGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybGNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5nbG9iYWxncmFwaGljcy5wZ2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubWljcm9zb2Z0Lmljb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljb1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1peFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5tb3ppbGxhLmFwbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubXMtZGRzXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5tcy1tb2RpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWRpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubXMtcGhvdG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndkcFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm5ldC1mcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJucHhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5wY28uYjE2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYjE2XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQucmFkaWFuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuc2VhbGVkLnBuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5naWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwuanBnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnN2ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC50ZW5jZW50LnRhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRhcFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnZhbHZlLnNvdXJjZS50ZXh0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnRmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQud2FwLndibXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3Ym1wXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQueGlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnpicnVzaC5wY3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3dlYnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJwXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS93bWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtM2RzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtYWRvYmUtZG5nXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG5nXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWNtdS1yYXN0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1jbXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNteFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1lbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWZyZWVoYW5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmaFwiLCBcImZoY1wiLCBcImZoNFwiLCBcImZoNVwiLCBcImZoN1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1pY29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljb1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1qbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiam5nXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LW1yc2lkLWltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaWRcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtbXMtYm1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm1wXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBjeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGN4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBpY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBpY1wiLCBcInBjdFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wb3J0YWJsZS1hbnltYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBubVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wb3J0YWJsZS1iaXRtYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBibVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wb3J0YWJsZS1ncmF5bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZ21cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcG9ydGFibGUtcGl4bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcG1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcmdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZ2JcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtdGdhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0Z2FcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtd21mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC14Yml0bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4Ym1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gteGNmXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC14cGl4bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cG1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gteHdpbmRvd2R1bXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInh3ZFwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9iaHR0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvY3BpbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZGVsaXZlcnktc3RhdHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9kaXNwb3NpdGlvbi1ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgXCJkaXNwb3NpdGlvbi1ub3RpZmljYXRpb25cIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2V4dGVybmFsLWJvZHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2ZlZWRiYWNrLXJlcG9ydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZ2xvYmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widThtc2dcIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZ2xvYmFsLWRlbGl2ZXJ5LXN0YXR1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInU4ZHNuXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2dsb2JhbC1kaXNwb3NpdGlvbi1ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1OG1kblwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9nbG9iYWwtaGVhZGVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInU4aGRyXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2h0dHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2ltZG4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL21sc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvbmV3c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9vaHR0cC1yZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL29odHRwLXJlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvcGFydGlhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvcmZjODIyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlbWxcIiwgXCJtaW1lXCIsIFwibWh0XCIsIFwibWh0bWxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvcy1odHRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3NpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvc2lwZnJhZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvdHJhY2tpbmctc3RhdHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS92bmQuc2kuc2ltcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS92bmQud2ZhLndzY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndzY1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvM21mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM21mXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9lNTdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9nbHRmK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdsdGZcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2dsdGYtYmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbGJcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2lnZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZ3NcIiwgXCJpZ2VzXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9qdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp0XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9tZXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNoXCIsIFwibWVzaFwiLCBcInNpbG9cIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL210bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm10bFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvb2JqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2JqXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9wcmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmNcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0ZXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGVwXCIsIFwic3RwXCIsIFwic3RwbmNcIiwgXCJwMjFcIiwgXCIyMTBcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0ZXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHB4XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9zdGVwK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0cHpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0ZXAteG1sK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0cHh6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9zdGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3UzZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInUzZFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmJhcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiYXJ5XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuY2xkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xkXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuY29sbGFkYSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRhZVwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmR3ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR3ZlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmZsYXRsYW5kLjNkbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZ2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2RsXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZ3MtZ2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZ3MuZ2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmd0d1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd0d1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLm1vbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQubXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQub3BlbmdleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9nZXhcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5wYXJhc29saWQudHJhbnNtaXQuYmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieF9iXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQucGFyYXNvbGlkLnRyYW5zbWl0LnRleHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4X3RcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5weXRoYS5weW94XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHlvXCIsIFwicHlveFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnJvc2V0dGUuYW5ub3RhdGVkLWRhdGEtbW9kZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuc2FwLnZkc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZkc1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnVzZGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1c2RhXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQudXNkeit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1c2R6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQudmFsdmUuc291cmNlLmNvbXBpbGVkLW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJzcFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnZ0dVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZ0dVwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdnJtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndybFwiLCBcInZybWxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3gzZCtiaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZGJcIiwgXCJ4M2RielwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkK2Zhc3RpbmZvc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkYlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkK3ZybWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZHZcIiwgXCJ4M2R2elwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkXCIsIFwieDNkelwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkLXZybWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2R2XCJdXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvYWx0ZXJuYXRpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvYXBwbGVkb3VibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvYnl0ZXJhbmdlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9kaWdlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9oZWFkZXItc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L21peGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L211bHRpbGluZ3VhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9wYXJhbGxlbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9yZWxhdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3JlcG9ydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9zaWduZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvdm5kLmJpbnQubWVkLXBsdXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvdm9pY2UtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC94LW1peGVkLXJlcGxhY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0LzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvY2FjaGUtbWFuaWZlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcGNhY2hlXCIsIFwibWFuaWZlc3RcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvY2FsZW5kYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY3NcIiwgXCJpZmJcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvY2FsZW5kZXJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInRleHQvY21kXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NvZmZlZXNjcmlwdFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNvZmZlZVwiLCBcImxpdGNvZmZlZVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jcWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NxbC1leHByZXNzaW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jcWwtaWRlbnRpZmllclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvY3NzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jc3ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzdlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jc3Ytc2NoZW1hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9kaXJlY3RvcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2Ruc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZWNtYXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9lbmNhcHJ0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZW5yaWNoZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2ZoaXJwYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9mbGV4ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9md2RyZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2dmZjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2dyYW1tYXItcmVmLWxpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2hsN3YyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9odG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodG1sXCIsIFwiaHRtXCIsIFwic2h0bWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvamFkZVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphZGVcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvamF2YXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc1wiLCBcIm1qc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9qY3ItY25kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9qc3hcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzeFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9sZXNzXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsZXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L21hcmtkb3duXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZFwiLCBcIm1hcmtkb3duXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L21hdGhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbWR4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbWl6YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L24zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm4zXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3BhcmFtZXRlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wbGFpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHh0XCIsIFwidGV4dFwiLCBcImNvbmZcIiwgXCJkZWZcIiwgXCJsaXN0XCIsIFwibG9nXCIsIFwiaW5cIiwgXCJpbmlcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcHJvdmVuYW5jZS1ub3RhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcnMuZmFsbGVuc3RlaW4ucnN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcnMubGluZXMudGFnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHNjXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bycy5wcm9wLmxvZ2ljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcnMudGV4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcmFwdG9yZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9yZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3JmYzgyMi1oZWFkZXJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9yaWNodGV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnR4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3J0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnRmXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3J0cC1lbmMtYWVzY20xMjhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3J0cGxvb3BiYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9ydHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3NnbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZ21sXCIsIFwic2dtXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3NoYWNsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvc2hleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNoZXhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvc2xpbVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsaW1cIiwgXCJzbG1cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvc3BkeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwZHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvc3RyaW5nc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvc3R5bHVzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3R5bHVzXCIsIFwic3R5bFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC90MTQwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC90YWItc2VwYXJhdGVkLXZhbHVlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHN2XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Ryb2ZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widFwiLCBcInRyXCIsIFwicm9mZlwiLCBcIm1hblwiLCBcIm1lXCIsIFwibXNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdHVydGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0dGxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdWxwZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC91cmktbGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXJpXCIsIFwidXJpc1wiLCBcInVybHNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdmNhcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjYXJkXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuYWJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuYXNjaWktYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImN1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmN1cmwuZGN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRjdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5jdXJsLm1jdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuY3VybC5zY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2N1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmRlYmlhbi5jb3B5cmlnaHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmRtY2xpZW50c2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZHZiLnN1YnRpdGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ViXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5lc21lcnRlYy50aGVtZS1kZXNjcmlwdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5leGNoYW5nZWFibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5mYW1pbHlzZWFyY2guZ2VkY29tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2VkXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5maWNsYWIuZmx0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZmx5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmx5XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5mbWkuZmxleHN0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmdtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmdyYXBodml6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmhhbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5oZ2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5pbjNkLjNkbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5pbjNkLnNwb3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcG90XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5pcHRjLm5ld3NtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmlwdGMubml0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmxhdGV4LXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5tb3Rvcm9sYS5yZWZsZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5tcy1tZWRpYXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5uZXQycGhvbmUuY29tbWNlbnRlci5jb21tYW5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQucmFkaXN5cy5tc21sLWJhc2ljLWxheW91dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnNlbngud2FycHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnNpLnVyaWNhdGFsb2d1ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuc29zaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnN1bi5qMm1lLmFwcC1kZXNjcmlwdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYWRcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnRyb2xsdGVjaC5saW5ndWlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQudmNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQud2FwLnNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQud2FwLnNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQud2FwLndtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQud2FwLndtbHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtbHNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnpvby5rY2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Z0dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2dHRcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvd2dzbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndnc2xcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1hc21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNcIiwgXCJhc21cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjXCIsIFwiY2NcIiwgXCJjeHhcIiwgXCJjcHBcIiwgXCJoXCIsIFwiaGhcIiwgXCJkaWNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1jb21wb25lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHRjXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtZm9ydHJhblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZlwiLCBcImZvclwiLCBcImY3N1wiLCBcImY5MFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWd3dC1ycGNcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInRleHQveC1oYW5kbGViYXJzLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGJzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtamF2YS1zb3VyY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphdmFcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1qcXVlcnktdG1wbFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWx1YVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx1YVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LW1hcmtkb3duXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJta2RcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1uZm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5mb1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LW9wbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9wbWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1vcmdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9yZ1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXBhc2NhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicFwiLCBcInBhc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXByb2Nlc3NpbmdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBkZVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXNhc3NcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJzYXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc2Nzc1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjc3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zZXRleHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV0eFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXNmdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2Z2XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc3VzZS15bXBcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInltcFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXV1ZW5jb2RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXZjYWxlbmRhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtdmNhcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjZlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94bWwtZXh0ZXJuYWwtcGFyc2VkLWVudGl0eVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQveWFtbFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieWFtbFwiLCBcInltbFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vM2dwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNncFwiLCBcIjNncHBcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvLzNncHAtdHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby8zZ3BwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNnMlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vYXYxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vYm1wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9idDY1NlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2NlbGJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9kdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2VuY2FwcnRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZXZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZmZ2MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2ZsZXhmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjYxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaDI2MVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2M1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImgyNjNcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjMtMTk5OFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjMtMjAwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoMjY0XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY0LXJjZG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY0LXN2Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaXNvLnNlZ21lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtNHNcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2pwZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcGd2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9qcGVnMjAwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2pwbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBtXCIsIFwianBnbVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vanhzdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2xvdHRpZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tYXRyb3NrYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21hdHJvc2thLTNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbWoyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWoyXCIsIFwibWpwMlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXAxc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wMnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHNcIiwgXCJtMnRcIiwgXCJtMnRzXCIsIFwibXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcDRcIiwgXCJtcDR2XCIsIFwibXBnNFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXA0di1lc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGVnXCIsIFwibXBnXCIsIFwibXBlXCIsIFwibTF2XCIsIFwibTJ2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcGVnNC1nZW5lcmljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXB2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbnZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9vZ2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZ3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3Bhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3BvaW50ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9xdWlja3RpbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxdFwiLCBcIm1vdlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcmFwdG9yZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcmF3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcnRwLWVuYy1hZXNjbTEyOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3J0cGxvb3BiYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcnR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vc2NpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3NtcHRlMjkxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vc21wdGUyOTJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdWxwZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdmMxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdmMyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmNjdHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS5oZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2aFwiLCBcInV2dmhcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLm1vYmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2bVwiLCBcInV2dm1cIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLm1wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLnBkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZwXCIsIFwidXZ2cFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2Uuc2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnNcIiwgXCJ1dnZzXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS52aWRlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2dlwiLCBcInV2dnZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kaXJlY3R2Lm1wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGlyZWN0di5tcGVnLXR0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kbG5hLm1wZWctdHRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmR2Yi5maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHZiXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZnZ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnZ0XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaG5zLnZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4xZHBhcml0eWZlYy0xMDEwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4xZHBhcml0eWZlYy0yMDA1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4yZHBhcml0eWZlYy0xMDEwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4yZHBhcml0eWZlYy0yMDA1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS50dHNhdmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLnR0c21wZWcyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm1vdG9yb2xhLnZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm1vdG9yb2xhLnZpZGVvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5tcGVndXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXh1XCIsIFwibTR1XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubXMtcGxheXJlYWR5Lm1lZGlhLnB5dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB5dlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm5va2lhLmludGVybGVhdmVkLW11bHRpbWVkaWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubm9raWEubXA0dnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubm9raWEudmlkZW92b2lwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm9iamVjdHZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnBsYW5hclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5yYWRnYW1ldHRvb2xzLmJpbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQucmFkZ2FtZXR0b29scy5zbWFja2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuc2VhbGVkLm1wZWcxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnNlYWxlZC5tcGVnNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5zZWFsZWQuc3dmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLm1vdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC51dnZ1Lm1wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2dVwiLCBcInV2dnVcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC52aXZvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widml2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQueW91dHViZS55dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZwOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZwOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3dlYm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYm1cIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtZjR2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmNHZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtZmxpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbGlcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtZmx2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbHZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbTR2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtNHZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbWF0cm9za2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1rdlwiLCBcIm1rM2RcIiwgXCJta3NcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbmdcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtYXNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhc2ZcIiwgXCJhc3hcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtdm9iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2b2JcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtd21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXdtdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid212XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXdteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid214XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXd2eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3Z4XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zdmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF2aVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1zZ2ktbW92aWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1vdmllXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LXNtdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic212XCJdXG4gICAgICB9LFxuICAgICAgXCJ4LWNvbmZlcmVuY2UveC1jb29sdGFsa1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNlXCJdXG4gICAgICB9LFxuICAgICAgXCJ4LXNoYWRlci94LWZyYWdtZW50XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ4LXNoYWRlci94LXZlcnRleFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfVxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYWNjZXB0cy9ub2RlX21vZHVsZXMvbWltZS1kYi9pbmRleC5qc1xudmFyIHJlcXVpcmVfbWltZV9kYjMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYWNjZXB0cy9ub2RlX21vZHVsZXMvbWltZS1kYi9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcmVxdWlyZV9kYjMoKTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9hY2NlcHRzL25vZGVfbW9kdWxlcy9taW1lLXR5cGVzL21pbWVTY29yZS5qc1xudmFyIHJlcXVpcmVfbWltZVNjb3JlMyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9hY2NlcHRzL25vZGVfbW9kdWxlcy9taW1lLXR5cGVzL21pbWVTY29yZS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgdmFyIEZBQ0VUX1NDT1JFUyA9IHtcbiAgICAgIFwicHJzLlwiOiAxMDAsXG4gICAgICBcIngtXCI6IDIwMCxcbiAgICAgIFwieC5cIjogMzAwLFxuICAgICAgXCJ2bmQuXCI6IDQwMCxcbiAgICAgIGRlZmF1bHQ6IDkwMFxuICAgIH07XG4gICAgdmFyIFNPVVJDRV9TQ09SRVMgPSB7XG4gICAgICBuZ2lueDogMTAsXG4gICAgICBhcGFjaGU6IDIwLFxuICAgICAgaWFuYTogNDAsXG4gICAgICBkZWZhdWx0OiAzMFxuICAgICAgLy8gZGVmaW5pdGlvbnMgYWRkZWQgYnkgYGpzaHR0cC9taW1lLWRiYCBwcm9qZWN0P1xuICAgIH07XG4gICAgdmFyIFRZUEVfU0NPUkVTID0ge1xuICAgICAgLy8gcHJlZmVyIGFwcGxpY2F0aW9uL3htbCBvdmVyIHRleHQveG1sXG4gICAgICAvLyBwcmVmZXIgYXBwbGljYXRpb24vcnRmIG92ZXIgdGV4dC9ydGZcbiAgICAgIGFwcGxpY2F0aW9uOiAxLFxuICAgICAgLy8gcHJlZmVyIGZvbnQvd29mZiBvdmVyIGFwcGxpY2F0aW9uL2ZvbnQtd29mZlxuICAgICAgZm9udDogMixcbiAgICAgIGRlZmF1bHQ6IDBcbiAgICB9O1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIG1pbWVTY29yZShtaW1lVHlwZSwgc291cmNlID0gXCJkZWZhdWx0XCIpIHtcbiAgICAgIGlmIChtaW1lVHlwZSA9PT0gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIikge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IFt0eXBlLCBzdWJ0eXBlXSA9IG1pbWVUeXBlLnNwbGl0KFwiL1wiKTtcbiAgICAgIGNvbnN0IGZhY2V0ID0gc3VidHlwZS5yZXBsYWNlKC8oXFwufHgtKS4qLywgXCIkMVwiKTtcbiAgICAgIGNvbnN0IGZhY2V0U2NvcmUgPSBGQUNFVF9TQ09SRVNbZmFjZXRdIHx8IEZBQ0VUX1NDT1JFUy5kZWZhdWx0O1xuICAgICAgY29uc3Qgc291cmNlU2NvcmUgPSBTT1VSQ0VfU0NPUkVTW3NvdXJjZV0gfHwgU09VUkNFX1NDT1JFUy5kZWZhdWx0O1xuICAgICAgY29uc3QgdHlwZVNjb3JlID0gVFlQRV9TQ09SRVNbdHlwZV0gfHwgVFlQRV9TQ09SRVMuZGVmYXVsdDtcbiAgICAgIGNvbnN0IGxlbmd0aFNjb3JlID0gMSAtIG1pbWVUeXBlLmxlbmd0aCAvIDEwMDtcbiAgICAgIHJldHVybiBmYWNldFNjb3JlICsgc291cmNlU2NvcmUgKyB0eXBlU2NvcmUgKyBsZW5ndGhTY29yZTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2FjY2VwdHMvbm9kZV9tb2R1bGVzL21pbWUtdHlwZXMvaW5kZXguanNcbnZhciByZXF1aXJlX21pbWVfdHlwZXMzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2FjY2VwdHMvbm9kZV9tb2R1bGVzL21pbWUtdHlwZXMvaW5kZXguanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBkYiA9IHJlcXVpcmVfbWltZV9kYjMoKTtcbiAgICB2YXIgZXh0bmFtZSA9IHJlcXVpcmUoXCJwYXRoXCIpLmV4dG5hbWU7XG4gICAgdmFyIG1pbWVTY29yZSA9IHJlcXVpcmVfbWltZVNjb3JlMygpO1xuICAgIHZhciBFWFRSQUNUX1RZUEVfUkVHRVhQID0gL15cXHMqKFteO1xcc10qKSg/Ojt8XFxzfCQpLztcbiAgICB2YXIgVEVYVF9UWVBFX1JFR0VYUCA9IC9edGV4dFxcLy9pO1xuICAgIGV4cG9ydHMyLmNoYXJzZXQgPSBjaGFyc2V0O1xuICAgIGV4cG9ydHMyLmNoYXJzZXRzID0geyBsb29rdXA6IGNoYXJzZXQgfTtcbiAgICBleHBvcnRzMi5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlMjtcbiAgICBleHBvcnRzMi5leHRlbnNpb24gPSBleHRlbnNpb247XG4gICAgZXhwb3J0czIuZXh0ZW5zaW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIGV4cG9ydHMyLmxvb2t1cCA9IGxvb2t1cDtcbiAgICBleHBvcnRzMi50eXBlcyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIGV4cG9ydHMyLl9leHRlbnNpb25Db25mbGljdHMgPSBbXTtcbiAgICBwb3B1bGF0ZU1hcHMoZXhwb3J0czIuZXh0ZW5zaW9ucywgZXhwb3J0czIudHlwZXMpO1xuICAgIGZ1bmN0aW9uIGNoYXJzZXQodHlwZSkge1xuICAgICAgaWYgKCF0eXBlIHx8IHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBtYXRjaCA9IEVYVFJBQ1RfVFlQRV9SRUdFWFAuZXhlYyh0eXBlKTtcbiAgICAgIHZhciBtaW1lID0gbWF0Y2ggJiYgZGJbbWF0Y2hbMV0udG9Mb3dlckNhc2UoKV07XG4gICAgICBpZiAobWltZSAmJiBtaW1lLmNoYXJzZXQpIHtcbiAgICAgICAgcmV0dXJuIG1pbWUuY2hhcnNldDtcbiAgICAgIH1cbiAgICAgIGlmIChtYXRjaCAmJiBURVhUX1RZUEVfUkVHRVhQLnRlc3QobWF0Y2hbMV0pKSB7XG4gICAgICAgIHJldHVybiBcIlVURi04XCI7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnRlbnRUeXBlMihzdHIpIHtcbiAgICAgIGlmICghc3RyIHx8IHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIG1pbWUgPSBzdHIuaW5kZXhPZihcIi9cIikgPT09IC0xID8gZXhwb3J0czIubG9va3VwKHN0cikgOiBzdHI7XG4gICAgICBpZiAoIW1pbWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKG1pbWUuaW5kZXhPZihcImNoYXJzZXRcIikgPT09IC0xKSB7XG4gICAgICAgIHZhciBjaGFyc2V0MiA9IGV4cG9ydHMyLmNoYXJzZXQobWltZSk7XG4gICAgICAgIGlmIChjaGFyc2V0MikgbWltZSArPSBcIjsgY2hhcnNldD1cIiArIGNoYXJzZXQyLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWltZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZXh0ZW5zaW9uKHR5cGUpIHtcbiAgICAgIGlmICghdHlwZSB8fCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgbWF0Y2ggPSBFWFRSQUNUX1RZUEVfUkVHRVhQLmV4ZWModHlwZSk7XG4gICAgICB2YXIgZXh0cyA9IG1hdGNoICYmIGV4cG9ydHMyLmV4dGVuc2lvbnNbbWF0Y2hbMV0udG9Mb3dlckNhc2UoKV07XG4gICAgICBpZiAoIWV4dHMgfHwgIWV4dHMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBleHRzWzBdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsb29rdXAocGF0aCkge1xuICAgICAgaWYgKCFwYXRoIHx8IHR5cGVvZiBwYXRoICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBleHRlbnNpb24yID0gZXh0bmFtZShcInguXCIgKyBwYXRoKS50b0xvd2VyQ2FzZSgpLnNsaWNlKDEpO1xuICAgICAgaWYgKCFleHRlbnNpb24yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBleHBvcnRzMi50eXBlc1tleHRlbnNpb24yXSB8fCBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wdWxhdGVNYXBzKGV4dGVuc2lvbnMsIHR5cGVzKSB7XG4gICAgICBPYmplY3Qua2V5cyhkYikuZm9yRWFjaChmdW5jdGlvbiBmb3JFYWNoTWltZVR5cGUodHlwZSkge1xuICAgICAgICB2YXIgbWltZSA9IGRiW3R5cGVdO1xuICAgICAgICB2YXIgZXh0cyA9IG1pbWUuZXh0ZW5zaW9ucztcbiAgICAgICAgaWYgKCFleHRzIHx8ICFleHRzLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBleHRlbnNpb25zW3R5cGVdID0gZXh0cztcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdmFyIGV4dGVuc2lvbjIgPSBleHRzW2ldO1xuICAgICAgICAgIHR5cGVzW2V4dGVuc2lvbjJdID0gX3ByZWZlcnJlZFR5cGUoZXh0ZW5zaW9uMiwgdHlwZXNbZXh0ZW5zaW9uMl0sIHR5cGUpO1xuICAgICAgICAgIGNvbnN0IGxlZ2FjeVR5cGUgPSBfcHJlZmVycmVkVHlwZUxlZ2FjeShcbiAgICAgICAgICAgIGV4dGVuc2lvbjIsXG4gICAgICAgICAgICB0eXBlc1tleHRlbnNpb24yXSxcbiAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChsZWdhY3lUeXBlICE9PSB0eXBlc1tleHRlbnNpb24yXSkge1xuICAgICAgICAgICAgZXhwb3J0czIuX2V4dGVuc2lvbkNvbmZsaWN0cy5wdXNoKFtleHRlbnNpb24yLCBsZWdhY3lUeXBlLCB0eXBlc1tleHRlbnNpb24yXV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9wcmVmZXJyZWRUeXBlKGV4dCwgdHlwZTAsIHR5cGUxKSB7XG4gICAgICB2YXIgc2NvcmUwID0gdHlwZTAgPyBtaW1lU2NvcmUodHlwZTAsIGRiW3R5cGUwXS5zb3VyY2UpIDogMDtcbiAgICAgIHZhciBzY29yZTEgPSB0eXBlMSA/IG1pbWVTY29yZSh0eXBlMSwgZGJbdHlwZTFdLnNvdXJjZSkgOiAwO1xuICAgICAgcmV0dXJuIHNjb3JlMCA+IHNjb3JlMSA/IHR5cGUwIDogdHlwZTE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9wcmVmZXJyZWRUeXBlTGVnYWN5KGV4dCwgdHlwZTAsIHR5cGUxKSB7XG4gICAgICB2YXIgU09VUkNFX1JBTksgPSBbXCJuZ2lueFwiLCBcImFwYWNoZVwiLCB2b2lkIDAsIFwiaWFuYVwiXTtcbiAgICAgIHZhciBzY29yZTAgPSB0eXBlMCA/IFNPVVJDRV9SQU5LLmluZGV4T2YoZGJbdHlwZTBdLnNvdXJjZSkgOiAwO1xuICAgICAgdmFyIHNjb3JlMSA9IHR5cGUxID8gU09VUkNFX1JBTksuaW5kZXhPZihkYlt0eXBlMV0uc291cmNlKSA6IDA7XG4gICAgICBpZiAoZXhwb3J0czIudHlwZXNbZXh0ZW5zaW9uXSAhPT0gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIiAmJiAoc2NvcmUwID4gc2NvcmUxIHx8IHNjb3JlMCA9PT0gc2NvcmUxICYmIGV4cG9ydHMyLnR5cGVzW2V4dGVuc2lvbl0/LnNsaWNlKDAsIDEyKSA9PT0gXCJhcHBsaWNhdGlvbi9cIikpIHtcbiAgICAgICAgcmV0dXJuIHR5cGUwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNjb3JlMCA+IHNjb3JlMSA/IHR5cGUwIDogdHlwZTE7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2FjY2VwdHMvaW5kZXguanNcbnZhciByZXF1aXJlX2FjY2VwdHMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYWNjZXB0cy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIE5lZ290aWF0b3IgPSByZXF1aXJlX25lZ290aWF0b3IoKTtcbiAgICB2YXIgbWltZSA9IHJlcXVpcmVfbWltZV90eXBlczMoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBBY2NlcHRzO1xuICAgIGZ1bmN0aW9uIEFjY2VwdHMocmVxKSB7XG4gICAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgQWNjZXB0cykpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY2NlcHRzKHJlcSk7XG4gICAgICB9XG4gICAgICB0aGlzLmhlYWRlcnMgPSByZXEuaGVhZGVycztcbiAgICAgIHRoaXMubmVnb3RpYXRvciA9IG5ldyBOZWdvdGlhdG9yKHJlcSk7XG4gICAgfVxuICAgIEFjY2VwdHMucHJvdG90eXBlLnR5cGUgPSBBY2NlcHRzLnByb3RvdHlwZS50eXBlcyA9IGZ1bmN0aW9uKHR5cGVzXykge1xuICAgICAgdmFyIHR5cGVzID0gdHlwZXNfO1xuICAgICAgaWYgKHR5cGVzICYmICFBcnJheS5pc0FycmF5KHR5cGVzKSkge1xuICAgICAgICB0eXBlcyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHR5cGVzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIXR5cGVzIHx8IHR5cGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZWdvdGlhdG9yLm1lZGlhVHlwZXMoKTtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5oZWFkZXJzLmFjY2VwdCkge1xuICAgICAgICByZXR1cm4gdHlwZXNbMF07XG4gICAgICB9XG4gICAgICB2YXIgbWltZXMgPSB0eXBlcy5tYXAoZXh0VG9NaW1lKTtcbiAgICAgIHZhciBhY2NlcHRzID0gdGhpcy5uZWdvdGlhdG9yLm1lZGlhVHlwZXMobWltZXMuZmlsdGVyKHZhbGlkTWltZSkpO1xuICAgICAgdmFyIGZpcnN0ID0gYWNjZXB0c1swXTtcbiAgICAgIHJldHVybiBmaXJzdCA/IHR5cGVzW21pbWVzLmluZGV4T2YoZmlyc3QpXSA6IGZhbHNlO1xuICAgIH07XG4gICAgQWNjZXB0cy5wcm90b3R5cGUuZW5jb2RpbmcgPSBBY2NlcHRzLnByb3RvdHlwZS5lbmNvZGluZ3MgPSBmdW5jdGlvbihlbmNvZGluZ3NfKSB7XG4gICAgICB2YXIgZW5jb2RpbmdzID0gZW5jb2RpbmdzXztcbiAgICAgIGlmIChlbmNvZGluZ3MgJiYgIUFycmF5LmlzQXJyYXkoZW5jb2RpbmdzKSkge1xuICAgICAgICBlbmNvZGluZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW5jb2RpbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgZW5jb2RpbmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWVuY29kaW5ncyB8fCBlbmNvZGluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5lZ290aWF0b3IuZW5jb2RpbmdzKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5uZWdvdGlhdG9yLmVuY29kaW5ncyhlbmNvZGluZ3MpWzBdIHx8IGZhbHNlO1xuICAgIH07XG4gICAgQWNjZXB0cy5wcm90b3R5cGUuY2hhcnNldCA9IEFjY2VwdHMucHJvdG90eXBlLmNoYXJzZXRzID0gZnVuY3Rpb24oY2hhcnNldHNfKSB7XG4gICAgICB2YXIgY2hhcnNldHMgPSBjaGFyc2V0c187XG4gICAgICBpZiAoY2hhcnNldHMgJiYgIUFycmF5LmlzQXJyYXkoY2hhcnNldHMpKSB7XG4gICAgICAgIGNoYXJzZXRzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY2hhcnNldHNbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghY2hhcnNldHMgfHwgY2hhcnNldHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5lZ290aWF0b3IuY2hhcnNldHMoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLm5lZ290aWF0b3IuY2hhcnNldHMoY2hhcnNldHMpWzBdIHx8IGZhbHNlO1xuICAgIH07XG4gICAgQWNjZXB0cy5wcm90b3R5cGUubGFuZyA9IEFjY2VwdHMucHJvdG90eXBlLmxhbmdzID0gQWNjZXB0cy5wcm90b3R5cGUubGFuZ3VhZ2UgPSBBY2NlcHRzLnByb3RvdHlwZS5sYW5ndWFnZXMgPSBmdW5jdGlvbihsYW5ndWFnZXNfKSB7XG4gICAgICB2YXIgbGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzXztcbiAgICAgIGlmIChsYW5ndWFnZXMgJiYgIUFycmF5LmlzQXJyYXkobGFuZ3VhZ2VzKSkge1xuICAgICAgICBsYW5ndWFnZXMgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFuZ3VhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgbGFuZ3VhZ2VzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWxhbmd1YWdlcyB8fCBsYW5ndWFnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5lZ290aWF0b3IubGFuZ3VhZ2VzKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5uZWdvdGlhdG9yLmxhbmd1YWdlcyhsYW5ndWFnZXMpWzBdIHx8IGZhbHNlO1xuICAgIH07XG4gICAgZnVuY3Rpb24gZXh0VG9NaW1lKHR5cGUpIHtcbiAgICAgIHJldHVybiB0eXBlLmluZGV4T2YoXCIvXCIpID09PSAtMSA/IG1pbWUubG9va3VwKHR5cGUpIDogdHlwZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRNaW1lKHR5cGUpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIjtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZnJlc2gvaW5kZXguanNcbnZhciByZXF1aXJlX2ZyZXNoID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2ZyZXNoL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQ0FDSEVfQ09OVFJPTF9OT19DQUNIRV9SRUdFWFAgPSAvKD86XnwsKVxccyo/bm8tY2FjaGVcXHMqPyg/Oix8JCkvO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZyZXNoO1xuICAgIGZ1bmN0aW9uIGZyZXNoKHJlcUhlYWRlcnMsIHJlc0hlYWRlcnMpIHtcbiAgICAgIHZhciBtb2RpZmllZFNpbmNlID0gcmVxSGVhZGVyc1tcImlmLW1vZGlmaWVkLXNpbmNlXCJdO1xuICAgICAgdmFyIG5vbmVNYXRjaCA9IHJlcUhlYWRlcnNbXCJpZi1ub25lLW1hdGNoXCJdO1xuICAgICAgaWYgKCFtb2RpZmllZFNpbmNlICYmICFub25lTWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIGNhY2hlQ29udHJvbCA9IHJlcUhlYWRlcnNbXCJjYWNoZS1jb250cm9sXCJdO1xuICAgICAgaWYgKGNhY2hlQ29udHJvbCAmJiBDQUNIRV9DT05UUk9MX05PX0NBQ0hFX1JFR0VYUC50ZXN0KGNhY2hlQ29udHJvbCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKG5vbmVNYXRjaCkge1xuICAgICAgICBpZiAobm9uZU1hdGNoID09PSBcIipcIikge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBldGFnID0gcmVzSGVhZGVycy5ldGFnO1xuICAgICAgICBpZiAoIWV0YWcpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1hdGNoZXMgPSBwYXJzZVRva2VuTGlzdChub25lTWF0Y2gpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1hdGNoZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgbWF0Y2ggPSBtYXRjaGVzW2ldO1xuICAgICAgICAgIGlmIChtYXRjaCA9PT0gZXRhZyB8fCBtYXRjaCA9PT0gXCJXL1wiICsgZXRhZyB8fCBcIlcvXCIgKyBtYXRjaCA9PT0gZXRhZykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChtb2RpZmllZFNpbmNlKSB7XG4gICAgICAgIHZhciBsYXN0TW9kaWZpZWQgPSByZXNIZWFkZXJzW1wibGFzdC1tb2RpZmllZFwiXTtcbiAgICAgICAgdmFyIG1vZGlmaWVkU3RhbGUgPSAhbGFzdE1vZGlmaWVkIHx8ICEocGFyc2VIdHRwRGF0ZShsYXN0TW9kaWZpZWQpIDw9IHBhcnNlSHR0cERhdGUobW9kaWZpZWRTaW5jZSkpO1xuICAgICAgICBpZiAobW9kaWZpZWRTdGFsZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlSHR0cERhdGUoZGF0ZSkge1xuICAgICAgdmFyIHRpbWVzdGFtcCA9IGRhdGUgJiYgRGF0ZS5wYXJzZShkYXRlKTtcbiAgICAgIHJldHVybiB0eXBlb2YgdGltZXN0YW1wID09PSBcIm51bWJlclwiID8gdGltZXN0YW1wIDogTmFOO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZVRva2VuTGlzdChzdHIpIHtcbiAgICAgIHZhciBlbmQgPSAwO1xuICAgICAgdmFyIGxpc3QgPSBbXTtcbiAgICAgIHZhciBzdGFydCA9IDA7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gc3RyLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIHN3aXRjaCAoc3RyLmNoYXJDb2RlQXQoaSkpIHtcbiAgICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgICAgaWYgKHN0YXJ0ID09PSBlbmQpIHtcbiAgICAgICAgICAgICAgc3RhcnQgPSBlbmQgPSBpICsgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNDQ6XG4gICAgICAgICAgICBsaXN0LnB1c2goc3RyLnN1YnN0cmluZyhzdGFydCwgZW5kKSk7XG4gICAgICAgICAgICBzdGFydCA9IGVuZCA9IGkgKyAxO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGVuZCA9IGkgKyAxO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpc3QucHVzaChzdHIuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpKTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYW5nZS1wYXJzZXIvaW5kZXguanNcbnZhciByZXF1aXJlX3JhbmdlX3BhcnNlciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYW5nZS1wYXJzZXIvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHJhbmdlUGFyc2VyO1xuICAgIGZ1bmN0aW9uIHJhbmdlUGFyc2VyKHNpemUsIHN0ciwgb3B0aW9ucykge1xuICAgICAgaWYgKHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHN0ciBtdXN0IGJlIGEgc3RyaW5nXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gc3RyLmluZGV4T2YoXCI9XCIpO1xuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICByZXR1cm4gLTI7XG4gICAgICB9XG4gICAgICB2YXIgYXJyID0gc3RyLnNsaWNlKGluZGV4ICsgMSkuc3BsaXQoXCIsXCIpO1xuICAgICAgdmFyIHJhbmdlcyA9IFtdO1xuICAgICAgcmFuZ2VzLnR5cGUgPSBzdHIuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHJhbmdlID0gYXJyW2ldLnNwbGl0KFwiLVwiKTtcbiAgICAgICAgdmFyIHN0YXJ0ID0gcGFyc2VJbnQocmFuZ2VbMF0sIDEwKTtcbiAgICAgICAgdmFyIGVuZCA9IHBhcnNlSW50KHJhbmdlWzFdLCAxMCk7XG4gICAgICAgIGlmIChpc05hTihzdGFydCkpIHtcbiAgICAgICAgICBzdGFydCA9IHNpemUgLSBlbmQ7XG4gICAgICAgICAgZW5kID0gc2l6ZSAtIDE7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNOYU4oZW5kKSkge1xuICAgICAgICAgIGVuZCA9IHNpemUgLSAxO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmQgPiBzaXplIC0gMSkge1xuICAgICAgICAgIGVuZCA9IHNpemUgLSAxO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc05hTihzdGFydCkgfHwgaXNOYU4oZW5kKSB8fCBzdGFydCA+IGVuZCB8fCBzdGFydCA8IDApIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICByYW5nZXMucHVzaCh7XG4gICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgZW5kXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHJhbmdlcy5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcHRpb25zICYmIG9wdGlvbnMuY29tYmluZSA/IGNvbWJpbmVSYW5nZXMocmFuZ2VzKSA6IHJhbmdlcztcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tYmluZVJhbmdlcyhyYW5nZXMpIHtcbiAgICAgIHZhciBvcmRlcmVkID0gcmFuZ2VzLm1hcChtYXBXaXRoSW5kZXgpLnNvcnQoc29ydEJ5UmFuZ2VTdGFydCk7XG4gICAgICBmb3IgKHZhciBqID0gMCwgaSA9IDE7IGkgPCBvcmRlcmVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciByYW5nZSA9IG9yZGVyZWRbaV07XG4gICAgICAgIHZhciBjdXJyZW50ID0gb3JkZXJlZFtqXTtcbiAgICAgICAgaWYgKHJhbmdlLnN0YXJ0ID4gY3VycmVudC5lbmQgKyAxKSB7XG4gICAgICAgICAgb3JkZXJlZFsrK2pdID0gcmFuZ2U7XG4gICAgICAgIH0gZWxzZSBpZiAocmFuZ2UuZW5kID4gY3VycmVudC5lbmQpIHtcbiAgICAgICAgICBjdXJyZW50LmVuZCA9IHJhbmdlLmVuZDtcbiAgICAgICAgICBjdXJyZW50LmluZGV4ID0gTWF0aC5taW4oY3VycmVudC5pbmRleCwgcmFuZ2UuaW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBvcmRlcmVkLmxlbmd0aCA9IGogKyAxO1xuICAgICAgdmFyIGNvbWJpbmVkID0gb3JkZXJlZC5zb3J0KHNvcnRCeVJhbmdlSW5kZXgpLm1hcChtYXBXaXRob3V0SW5kZXgpO1xuICAgICAgY29tYmluZWQudHlwZSA9IHJhbmdlcy50eXBlO1xuICAgICAgcmV0dXJuIGNvbWJpbmVkO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXBXaXRoSW5kZXgocmFuZ2UsIGluZGV4KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogcmFuZ2Uuc3RhcnQsXG4gICAgICAgIGVuZDogcmFuZ2UuZW5kLFxuICAgICAgICBpbmRleFxuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFwV2l0aG91dEluZGV4KHJhbmdlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogcmFuZ2Uuc3RhcnQsXG4gICAgICAgIGVuZDogcmFuZ2UuZW5kXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBzb3J0QnlSYW5nZUluZGV4KGEsIGIpIHtcbiAgICAgIHJldHVybiBhLmluZGV4IC0gYi5pbmRleDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc29ydEJ5UmFuZ2VTdGFydChhLCBiKSB7XG4gICAgICByZXR1cm4gYS5zdGFydCAtIGIuc3RhcnQ7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL3JlcXVlc3QuanNcbnZhciByZXF1aXJlX3JlcXVlc3QgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvcmVxdWVzdC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGFjY2VwdHMgPSByZXF1aXJlX2FjY2VwdHMoKTtcbiAgICB2YXIgaXNJUCA9IHJlcXVpcmUoXCJub2RlOm5ldFwiKS5pc0lQO1xuICAgIHZhciB0eXBlaXMgPSByZXF1aXJlX3R5cGVfaXMoKTtcbiAgICB2YXIgaHR0cCA9IHJlcXVpcmUoXCJub2RlOmh0dHBcIik7XG4gICAgdmFyIGZyZXNoID0gcmVxdWlyZV9mcmVzaCgpO1xuICAgIHZhciBwYXJzZVJhbmdlID0gcmVxdWlyZV9yYW5nZV9wYXJzZXIoKTtcbiAgICB2YXIgcGFyc2UgPSByZXF1aXJlX3BhcnNldXJsKCk7XG4gICAgdmFyIHByb3h5YWRkciA9IHJlcXVpcmVfcHJveHlfYWRkcigpO1xuICAgIHZhciByZXEgPSBPYmplY3QuY3JlYXRlKGh0dHAuSW5jb21pbmdNZXNzYWdlLnByb3RvdHlwZSk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcmVxO1xuICAgIHJlcS5nZXQgPSByZXEuaGVhZGVyID0gZnVuY3Rpb24gaGVhZGVyKG5hbWUpIHtcbiAgICAgIGlmICghbmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwibmFtZSBhcmd1bWVudCBpcyByZXF1aXJlZCB0byByZXEuZ2V0XCIpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBuYW1lICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJuYW1lIG11c3QgYmUgYSBzdHJpbmcgdG8gcmVxLmdldFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBsYyA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHN3aXRjaCAobGMpIHtcbiAgICAgICAgY2FzZSBcInJlZmVyZXJcIjpcbiAgICAgICAgY2FzZSBcInJlZmVycmVyXCI6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaGVhZGVycy5yZWZlcnJlciB8fCB0aGlzLmhlYWRlcnMucmVmZXJlcjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5oZWFkZXJzW2xjXTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJlcS5hY2NlcHRzID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgYWNjZXB0ID0gYWNjZXB0cyh0aGlzKTtcbiAgICAgIHJldHVybiBhY2NlcHQudHlwZXMuYXBwbHkoYWNjZXB0LCBhcmd1bWVudHMpO1xuICAgIH07XG4gICAgcmVxLmFjY2VwdHNFbmNvZGluZ3MgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBhY2NlcHQgPSBhY2NlcHRzKHRoaXMpO1xuICAgICAgcmV0dXJuIGFjY2VwdC5lbmNvZGluZ3MuYXBwbHkoYWNjZXB0LCBhcmd1bWVudHMpO1xuICAgIH07XG4gICAgcmVxLmFjY2VwdHNDaGFyc2V0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGFjY2VwdCA9IGFjY2VwdHModGhpcyk7XG4gICAgICByZXR1cm4gYWNjZXB0LmNoYXJzZXRzLmFwcGx5KGFjY2VwdCwgYXJndW1lbnRzKTtcbiAgICB9O1xuICAgIHJlcS5hY2NlcHRzTGFuZ3VhZ2VzID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgYWNjZXB0ID0gYWNjZXB0cyh0aGlzKTtcbiAgICAgIHJldHVybiBhY2NlcHQubGFuZ3VhZ2VzLmFwcGx5KGFjY2VwdCwgYXJndW1lbnRzKTtcbiAgICB9O1xuICAgIHJlcS5yYW5nZSA9IGZ1bmN0aW9uIHJhbmdlKHNpemUsIG9wdGlvbnMpIHtcbiAgICAgIHZhciByYW5nZTIgPSB0aGlzLmdldChcIlJhbmdlXCIpO1xuICAgICAgaWYgKCFyYW5nZTIpIHJldHVybjtcbiAgICAgIHJldHVybiBwYXJzZVJhbmdlKHNpemUsIHJhbmdlMiwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBkZWZpbmVHZXR0ZXIocmVxLCBcInF1ZXJ5XCIsIGZ1bmN0aW9uIHF1ZXJ5KCkge1xuICAgICAgdmFyIHF1ZXJ5cGFyc2UgPSB0aGlzLmFwcC5nZXQoXCJxdWVyeSBwYXJzZXIgZm5cIik7XG4gICAgICBpZiAoIXF1ZXJ5cGFyc2UpIHtcbiAgICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgfVxuICAgICAgdmFyIHF1ZXJ5c3RyaW5nID0gcGFyc2UodGhpcykucXVlcnk7XG4gICAgICByZXR1cm4gcXVlcnlwYXJzZShxdWVyeXN0cmluZyk7XG4gICAgfSk7XG4gICAgcmVxLmlzID0gZnVuY3Rpb24gaXModHlwZXMpIHtcbiAgICAgIHZhciBhcnIgPSB0eXBlcztcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh0eXBlcykpIHtcbiAgICAgICAgYXJyID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGFycltpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHR5cGVpcyh0aGlzLCBhcnIpO1xuICAgIH07XG4gICAgZGVmaW5lR2V0dGVyKHJlcSwgXCJwcm90b2NvbFwiLCBmdW5jdGlvbiBwcm90b2NvbCgpIHtcbiAgICAgIHZhciBwcm90byA9IHRoaXMuY29ubmVjdGlvbi5lbmNyeXB0ZWQgPyBcImh0dHBzXCIgOiBcImh0dHBcIjtcbiAgICAgIHZhciB0cnVzdCA9IHRoaXMuYXBwLmdldChcInRydXN0IHByb3h5IGZuXCIpO1xuICAgICAgaWYgKCF0cnVzdCh0aGlzLmNvbm5lY3Rpb24ucmVtb3RlQWRkcmVzcywgMCkpIHtcbiAgICAgICAgcmV0dXJuIHByb3RvO1xuICAgICAgfVxuICAgICAgdmFyIGhlYWRlciA9IHRoaXMuZ2V0KFwiWC1Gb3J3YXJkZWQtUHJvdG9cIikgfHwgcHJvdG87XG4gICAgICB2YXIgaW5kZXggPSBoZWFkZXIuaW5kZXhPZihcIixcIik7XG4gICAgICByZXR1cm4gaW5kZXggIT09IC0xID8gaGVhZGVyLnN1YnN0cmluZygwLCBpbmRleCkudHJpbSgpIDogaGVhZGVyLnRyaW0oKTtcbiAgICB9KTtcbiAgICBkZWZpbmVHZXR0ZXIocmVxLCBcInNlY3VyZVwiLCBmdW5jdGlvbiBzZWN1cmUoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm90b2NvbCA9PT0gXCJodHRwc1wiO1xuICAgIH0pO1xuICAgIGRlZmluZUdldHRlcihyZXEsIFwiaXBcIiwgZnVuY3Rpb24gaXAoKSB7XG4gICAgICB2YXIgdHJ1c3QgPSB0aGlzLmFwcC5nZXQoXCJ0cnVzdCBwcm94eSBmblwiKTtcbiAgICAgIHJldHVybiBwcm94eWFkZHIodGhpcywgdHJ1c3QpO1xuICAgIH0pO1xuICAgIGRlZmluZUdldHRlcihyZXEsIFwiaXBzXCIsIGZ1bmN0aW9uIGlwcygpIHtcbiAgICAgIHZhciB0cnVzdCA9IHRoaXMuYXBwLmdldChcInRydXN0IHByb3h5IGZuXCIpO1xuICAgICAgdmFyIGFkZHJzID0gcHJveHlhZGRyLmFsbCh0aGlzLCB0cnVzdCk7XG4gICAgICBhZGRycy5yZXZlcnNlKCkucG9wKCk7XG4gICAgICByZXR1cm4gYWRkcnM7XG4gICAgfSk7XG4gICAgZGVmaW5lR2V0dGVyKHJlcSwgXCJzdWJkb21haW5zXCIsIGZ1bmN0aW9uIHN1YmRvbWFpbnMoKSB7XG4gICAgICB2YXIgaG9zdG5hbWUgPSB0aGlzLmhvc3RuYW1lO1xuICAgICAgaWYgKCFob3N0bmFtZSkgcmV0dXJuIFtdO1xuICAgICAgdmFyIG9mZnNldCA9IHRoaXMuYXBwLmdldChcInN1YmRvbWFpbiBvZmZzZXRcIik7XG4gICAgICB2YXIgc3ViZG9tYWluczIgPSAhaXNJUChob3N0bmFtZSkgPyBob3N0bmFtZS5zcGxpdChcIi5cIikucmV2ZXJzZSgpIDogW2hvc3RuYW1lXTtcbiAgICAgIHJldHVybiBzdWJkb21haW5zMi5zbGljZShvZmZzZXQpO1xuICAgIH0pO1xuICAgIGRlZmluZUdldHRlcihyZXEsIFwicGF0aFwiLCBmdW5jdGlvbiBwYXRoKCkge1xuICAgICAgcmV0dXJuIHBhcnNlKHRoaXMpLnBhdGhuYW1lO1xuICAgIH0pO1xuICAgIGRlZmluZUdldHRlcihyZXEsIFwiaG9zdFwiLCBmdW5jdGlvbiBob3N0KCkge1xuICAgICAgdmFyIHRydXN0ID0gdGhpcy5hcHAuZ2V0KFwidHJ1c3QgcHJveHkgZm5cIik7XG4gICAgICB2YXIgdmFsID0gdGhpcy5nZXQoXCJYLUZvcndhcmRlZC1Ib3N0XCIpO1xuICAgICAgaWYgKCF2YWwgfHwgIXRydXN0KHRoaXMuY29ubmVjdGlvbi5yZW1vdGVBZGRyZXNzLCAwKSkge1xuICAgICAgICB2YWwgPSB0aGlzLmdldChcIkhvc3RcIik7XG4gICAgICB9IGVsc2UgaWYgKHZhbC5pbmRleE9mKFwiLFwiKSAhPT0gLTEpIHtcbiAgICAgICAgdmFsID0gdmFsLnN1YnN0cmluZygwLCB2YWwuaW5kZXhPZihcIixcIikpLnRyaW1SaWdodCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbCB8fCB2b2lkIDA7XG4gICAgfSk7XG4gICAgZGVmaW5lR2V0dGVyKHJlcSwgXCJob3N0bmFtZVwiLCBmdW5jdGlvbiBob3N0bmFtZSgpIHtcbiAgICAgIHZhciBob3N0ID0gdGhpcy5ob3N0O1xuICAgICAgaWYgKCFob3N0KSByZXR1cm47XG4gICAgICB2YXIgb2Zmc2V0ID0gaG9zdFswXSA9PT0gXCJbXCIgPyBob3N0LmluZGV4T2YoXCJdXCIpICsgMSA6IDA7XG4gICAgICB2YXIgaW5kZXggPSBob3N0LmluZGV4T2YoXCI6XCIsIG9mZnNldCk7XG4gICAgICByZXR1cm4gaW5kZXggIT09IC0xID8gaG9zdC5zdWJzdHJpbmcoMCwgaW5kZXgpIDogaG9zdDtcbiAgICB9KTtcbiAgICBkZWZpbmVHZXR0ZXIocmVxLCBcImZyZXNoXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIG1ldGhvZCA9IHRoaXMubWV0aG9kO1xuICAgICAgdmFyIHJlcyA9IHRoaXMucmVzO1xuICAgICAgdmFyIHN0YXR1cyA9IHJlcy5zdGF0dXNDb2RlO1xuICAgICAgaWYgKFwiR0VUXCIgIT09IG1ldGhvZCAmJiBcIkhFQURcIiAhPT0gbWV0aG9kKSByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDAgfHwgMzA0ID09PSBzdGF0dXMpIHtcbiAgICAgICAgcmV0dXJuIGZyZXNoKHRoaXMuaGVhZGVycywge1xuICAgICAgICAgIFwiZXRhZ1wiOiByZXMuZ2V0KFwiRVRhZ1wiKSxcbiAgICAgICAgICBcImxhc3QtbW9kaWZpZWRcIjogcmVzLmdldChcIkxhc3QtTW9kaWZpZWRcIilcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gICAgZGVmaW5lR2V0dGVyKHJlcSwgXCJzdGFsZVwiLCBmdW5jdGlvbiBzdGFsZSgpIHtcbiAgICAgIHJldHVybiAhdGhpcy5mcmVzaDtcbiAgICB9KTtcbiAgICBkZWZpbmVHZXR0ZXIocmVxLCBcInhoclwiLCBmdW5jdGlvbiB4aHIoKSB7XG4gICAgICB2YXIgdmFsID0gdGhpcy5nZXQoXCJYLVJlcXVlc3RlZC1XaXRoXCIpIHx8IFwiXCI7XG4gICAgICByZXR1cm4gdmFsLnRvTG93ZXJDYXNlKCkgPT09IFwieG1saHR0cHJlcXVlc3RcIjtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBkZWZpbmVHZXR0ZXIob2JqLCBuYW1lLCBnZXR0ZXIpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIG5hbWUsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGdldHRlclxuICAgICAgfSk7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NhZmUtYnVmZmVyL2luZGV4LmpzXG52YXIgcmVxdWlyZV9zYWZlX2J1ZmZlciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zYWZlLWJ1ZmZlci9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgdmFyIGJ1ZmZlciA9IHJlcXVpcmUoXCJidWZmZXJcIik7XG4gICAgdmFyIEJ1ZmZlcjIgPSBidWZmZXIuQnVmZmVyO1xuICAgIGZ1bmN0aW9uIGNvcHlQcm9wcyhzcmMsIGRzdCkge1xuICAgICAgZm9yICh2YXIga2V5IGluIHNyYykge1xuICAgICAgICBkc3Rba2V5XSA9IHNyY1trZXldO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoQnVmZmVyMi5mcm9tICYmIEJ1ZmZlcjIuYWxsb2MgJiYgQnVmZmVyMi5hbGxvY1Vuc2FmZSAmJiBCdWZmZXIyLmFsbG9jVW5zYWZlU2xvdykge1xuICAgICAgbW9kdWxlMi5leHBvcnRzID0gYnVmZmVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb3B5UHJvcHMoYnVmZmVyLCBleHBvcnRzMik7XG4gICAgICBleHBvcnRzMi5CdWZmZXIgPSBTYWZlQnVmZmVyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBTYWZlQnVmZmVyKGFyZywgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gQnVmZmVyMihhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCk7XG4gICAgfVxuICAgIFNhZmVCdWZmZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShCdWZmZXIyLnByb3RvdHlwZSk7XG4gICAgY29weVByb3BzKEJ1ZmZlcjIsIFNhZmVCdWZmZXIpO1xuICAgIFNhZmVCdWZmZXIuZnJvbSA9IGZ1bmN0aW9uKGFyZywgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZyA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXJcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gQnVmZmVyMihhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCk7XG4gICAgfTtcbiAgICBTYWZlQnVmZmVyLmFsbG9jID0gZnVuY3Rpb24oc2l6ZSwgZmlsbCwgZW5jb2RpbmcpIHtcbiAgICAgIGlmICh0eXBlb2Ygc2l6ZSAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlclwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBidWYgPSBCdWZmZXIyKHNpemUpO1xuICAgICAgaWYgKGZpbGwgIT09IHZvaWQgMCkge1xuICAgICAgICBpZiAodHlwZW9mIGVuY29kaW5nID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgYnVmLmZpbGwoZmlsbCwgZW5jb2RpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJ1Zi5maWxsKGZpbGwpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBidWYuZmlsbCgwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBidWY7XG4gICAgfTtcbiAgICBTYWZlQnVmZmVyLmFsbG9jVW5zYWZlID0gZnVuY3Rpb24oc2l6ZSkge1xuICAgICAgaWYgKHR5cGVvZiBzaXplICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEJ1ZmZlcjIoc2l6ZSk7XG4gICAgfTtcbiAgICBTYWZlQnVmZmVyLmFsbG9jVW5zYWZlU2xvdyA9IGZ1bmN0aW9uKHNpemUpIHtcbiAgICAgIGlmICh0eXBlb2Ygc2l6ZSAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlclwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBidWZmZXIuU2xvd0J1ZmZlcihzaXplKTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2NvbnRlbnQtZGlzcG9zaXRpb24vaW5kZXguanNcbnZhciByZXF1aXJlX2NvbnRlbnRfZGlzcG9zaXRpb24gPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY29udGVudC1kaXNwb3NpdGlvbi9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gY29udGVudERpc3Bvc2l0aW9uO1xuICAgIG1vZHVsZTIuZXhwb3J0cy5wYXJzZSA9IHBhcnNlO1xuICAgIHZhciBiYXNlbmFtZSA9IHJlcXVpcmUoXCJwYXRoXCIpLmJhc2VuYW1lO1xuICAgIHZhciBCdWZmZXIyID0gcmVxdWlyZV9zYWZlX2J1ZmZlcigpLkJ1ZmZlcjtcbiAgICB2YXIgRU5DT0RFX1VSTF9BVFRSX0NIQVJfUkVHRVhQID0gL1tcXHgwMC1cXHgyMFwiJygpKiwvOjs8PT4/QFtcXFxcXFxde31cXHg3Zl0vZztcbiAgICB2YXIgSEVYX0VTQ0FQRV9SRUdFWFAgPSAvJVswLTlBLUZhLWZdezJ9LztcbiAgICB2YXIgSEVYX0VTQ0FQRV9SRVBMQUNFX1JFR0VYUCA9IC8lKFswLTlBLUZhLWZdezJ9KS9nO1xuICAgIHZhciBOT05fTEFUSU4xX1JFR0VYUCA9IC9bXlxceDIwLVxceDdlXFx4YTAtXFx4ZmZdL2c7XG4gICAgdmFyIFFFU0NfUkVHRVhQID0gL1xcXFwoW1xcdTAwMDAtXFx1MDA3Zl0pL2c7XG4gICAgdmFyIFFVT1RFX1JFR0VYUCA9IC8oW1xcXFxcIl0pL2c7XG4gICAgdmFyIFBBUkFNX1JFR0VYUCA9IC87W1xceDA5XFx4MjBdKihbISMkJSYnKisuMC05QS1aXl9gYS16fH4tXSspW1xceDA5XFx4MjBdKj1bXFx4MDlcXHgyMF0qKFwiKD86W1xceDIwIVxceDIzLVxceDViXFx4NWQtXFx4N2VcXHg4MC1cXHhmZl18XFxcXFtcXHgyMC1cXHg3ZV0pKlwifFshIyQlJicqKy4wLTlBLVpeX2BhLXp8fi1dKylbXFx4MDlcXHgyMF0qL2c7XG4gICAgdmFyIFRFWFRfUkVHRVhQID0gL15bXFx4MjAtXFx4N2VcXHg4MC1cXHhmZl0rJC87XG4gICAgdmFyIFRPS0VOX1JFR0VYUCA9IC9eWyEjJCUmJyorLjAtOUEtWl5fYGEtenx+LV0rJC87XG4gICAgdmFyIEVYVF9WQUxVRV9SRUdFWFAgPSAvXihbQS1aYS16MC05ISMkJSYrXFwtXl9ge31+XSspJyg/OltBLVphLXpdezIsM30oPzotW0EtWmEtel17M30pezAsM318W0EtWmEtel17NCw4fXwpJygoPzolWzAtOUEtRmEtZl17Mn18W0EtWmEtejAtOSEjJCYrLl5fYHx+LV0pKykkLztcbiAgICB2YXIgRElTUE9TSVRJT05fVFlQRV9SRUdFWFAgPSAvXihbISMkJSYnKisuMC05QS1aXl9gYS16fH4tXSspW1xceDA5XFx4MjBdKig/OiR8OykvO1xuICAgIGZ1bmN0aW9uIGNvbnRlbnREaXNwb3NpdGlvbihmaWxlbmFtZSwgb3B0aW9ucykge1xuICAgICAgdmFyIG9wdHMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgdmFyIHR5cGUgPSBvcHRzLnR5cGUgfHwgXCJhdHRhY2htZW50XCI7XG4gICAgICB2YXIgcGFyYW1zID0gY3JlYXRlcGFyYW1zKGZpbGVuYW1lLCBvcHRzLmZhbGxiYWNrKTtcbiAgICAgIHJldHVybiBmb3JtYXQobmV3IENvbnRlbnREaXNwb3NpdGlvbih0eXBlLCBwYXJhbXMpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlcGFyYW1zKGZpbGVuYW1lLCBmYWxsYmFjaykge1xuICAgICAgaWYgKGZpbGVuYW1lID09PSB2b2lkIDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIHBhcmFtcyA9IHt9O1xuICAgICAgaWYgKHR5cGVvZiBmaWxlbmFtZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiZmlsZW5hbWUgbXVzdCBiZSBhIHN0cmluZ1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChmYWxsYmFjayA9PT0gdm9pZCAwKSB7XG4gICAgICAgIGZhbGxiYWNrID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgZmFsbGJhY2sgIT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGZhbGxiYWNrICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiZmFsbGJhY2sgbXVzdCBiZSBhIHN0cmluZyBvciBib29sZWFuXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBmYWxsYmFjayA9PT0gXCJzdHJpbmdcIiAmJiBOT05fTEFUSU4xX1JFR0VYUC50ZXN0KGZhbGxiYWNrKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiZmFsbGJhY2sgbXVzdCBiZSBJU08tODg1OS0xIHN0cmluZ1wiKTtcbiAgICAgIH1cbiAgICAgIHZhciBuYW1lID0gYmFzZW5hbWUoZmlsZW5hbWUpO1xuICAgICAgdmFyIGlzUXVvdGVkU3RyaW5nID0gVEVYVF9SRUdFWFAudGVzdChuYW1lKTtcbiAgICAgIHZhciBmYWxsYmFja05hbWUgPSB0eXBlb2YgZmFsbGJhY2sgIT09IFwic3RyaW5nXCIgPyBmYWxsYmFjayAmJiBnZXRsYXRpbjEobmFtZSkgOiBiYXNlbmFtZShmYWxsYmFjayk7XG4gICAgICB2YXIgaGFzRmFsbGJhY2sgPSB0eXBlb2YgZmFsbGJhY2tOYW1lID09PSBcInN0cmluZ1wiICYmIGZhbGxiYWNrTmFtZSAhPT0gbmFtZTtcbiAgICAgIGlmIChoYXNGYWxsYmFjayB8fCAhaXNRdW90ZWRTdHJpbmcgfHwgSEVYX0VTQ0FQRV9SRUdFWFAudGVzdChuYW1lKSkge1xuICAgICAgICBwYXJhbXNbXCJmaWxlbmFtZSpcIl0gPSBuYW1lO1xuICAgICAgfVxuICAgICAgaWYgKGlzUXVvdGVkU3RyaW5nIHx8IGhhc0ZhbGxiYWNrKSB7XG4gICAgICAgIHBhcmFtcy5maWxlbmFtZSA9IGhhc0ZhbGxiYWNrID8gZmFsbGJhY2tOYW1lIDogbmFtZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZvcm1hdChvYmopIHtcbiAgICAgIHZhciBwYXJhbWV0ZXJzID0gb2JqLnBhcmFtZXRlcnM7XG4gICAgICB2YXIgdHlwZSA9IG9iai50eXBlO1xuICAgICAgaWYgKCF0eXBlIHx8IHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiIHx8ICFUT0tFTl9SRUdFWFAudGVzdCh0eXBlKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCB0eXBlXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHN0cmluZyA9IFN0cmluZyh0eXBlKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHBhcmFtZXRlcnMgJiYgdHlwZW9mIHBhcmFtZXRlcnMgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgdmFyIHBhcmFtO1xuICAgICAgICB2YXIgcGFyYW1zID0gT2JqZWN0LmtleXMocGFyYW1ldGVycykuc29ydCgpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcmFtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHBhcmFtID0gcGFyYW1zW2ldO1xuICAgICAgICAgIHZhciB2YWwgPSBwYXJhbS5zbGljZSgtMSkgPT09IFwiKlwiID8gdXN0cmluZyhwYXJhbWV0ZXJzW3BhcmFtXSkgOiBxc3RyaW5nKHBhcmFtZXRlcnNbcGFyYW1dKTtcbiAgICAgICAgICBzdHJpbmcgKz0gXCI7IFwiICsgcGFyYW0gKyBcIj1cIiArIHZhbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cmluZztcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVjb2RlZmllbGQoc3RyKSB7XG4gICAgICB2YXIgbWF0Y2ggPSBFWFRfVkFMVUVfUkVHRVhQLmV4ZWMoc3RyKTtcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgZXh0ZW5kZWQgZmllbGQgdmFsdWVcIik7XG4gICAgICB9XG4gICAgICB2YXIgY2hhcnNldCA9IG1hdGNoWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgICB2YXIgZW5jb2RlZCA9IG1hdGNoWzJdO1xuICAgICAgdmFyIHZhbHVlO1xuICAgICAgdmFyIGJpbmFyeSA9IGVuY29kZWQucmVwbGFjZShIRVhfRVNDQVBFX1JFUExBQ0VfUkVHRVhQLCBwZGVjb2RlKTtcbiAgICAgIHN3aXRjaCAoY2hhcnNldCkge1xuICAgICAgICBjYXNlIFwiaXNvLTg4NTktMVwiOlxuICAgICAgICAgIHZhbHVlID0gZ2V0bGF0aW4xKGJpbmFyeSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ1dGYtOFwiOlxuICAgICAgICBjYXNlIFwidXRmOFwiOlxuICAgICAgICAgIHZhbHVlID0gQnVmZmVyMi5mcm9tKGJpbmFyeSwgXCJiaW5hcnlcIikudG9TdHJpbmcoXCJ1dGY4XCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJ1bnN1cHBvcnRlZCBjaGFyc2V0IGluIGV4dGVuZGVkIGZpZWxkXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRsYXRpbjEodmFsKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKHZhbCkucmVwbGFjZShOT05fTEFUSU4xX1JFR0VYUCwgXCI/XCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZShzdHJpbmcpIHtcbiAgICAgIGlmICghc3RyaW5nIHx8IHR5cGVvZiBzdHJpbmcgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHN0cmluZyBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBtYXRjaCA9IERJU1BPU0lUSU9OX1RZUEVfUkVHRVhQLmV4ZWMoc3RyaW5nKTtcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgdHlwZSBmb3JtYXRcIik7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSBtYXRjaFswXS5sZW5ndGg7XG4gICAgICB2YXIgdHlwZSA9IG1hdGNoWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgICB2YXIga2V5O1xuICAgICAgdmFyIG5hbWVzID0gW107XG4gICAgICB2YXIgcGFyYW1zID0ge307XG4gICAgICB2YXIgdmFsdWU7XG4gICAgICBpbmRleCA9IFBBUkFNX1JFR0VYUC5sYXN0SW5kZXggPSBtYXRjaFswXS5zbGljZSgtMSkgPT09IFwiO1wiID8gaW5kZXggLSAxIDogaW5kZXg7XG4gICAgICB3aGlsZSAobWF0Y2ggPSBQQVJBTV9SRUdFWFAuZXhlYyhzdHJpbmcpKSB7XG4gICAgICAgIGlmIChtYXRjaC5pbmRleCAhPT0gaW5kZXgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBwYXJhbWV0ZXIgZm9ybWF0XCIpO1xuICAgICAgICB9XG4gICAgICAgIGluZGV4ICs9IG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgICAga2V5ID0gbWF0Y2hbMV0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgdmFsdWUgPSBtYXRjaFsyXTtcbiAgICAgICAgaWYgKG5hbWVzLmluZGV4T2Yoa2V5KSAhPT0gLTEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBkdXBsaWNhdGUgcGFyYW1ldGVyXCIpO1xuICAgICAgICB9XG4gICAgICAgIG5hbWVzLnB1c2goa2V5KTtcbiAgICAgICAgaWYgKGtleS5pbmRleE9mKFwiKlwiKSArIDEgPT09IGtleS5sZW5ndGgpIHtcbiAgICAgICAgICBrZXkgPSBrZXkuc2xpY2UoMCwgLTEpO1xuICAgICAgICAgIHZhbHVlID0gZGVjb2RlZmllbGQodmFsdWUpO1xuICAgICAgICAgIHBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBwYXJhbXNba2V5XSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZVswXSA9PT0gJ1wiJykge1xuICAgICAgICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMSwgLTEpLnJlcGxhY2UoUUVTQ19SRUdFWFAsIFwiJDFcIik7XG4gICAgICAgIH1cbiAgICAgICAgcGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpbmRleCAhPT0gLTEgJiYgaW5kZXggIT09IHN0cmluZy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgcGFyYW1ldGVyIGZvcm1hdFwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgQ29udGVudERpc3Bvc2l0aW9uKHR5cGUsIHBhcmFtcyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBkZWNvZGUoc3RyLCBoZXgpIHtcbiAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGhleCwgMTYpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGVuY29kZShjaGFyKSB7XG4gICAgICByZXR1cm4gXCIlXCIgKyBTdHJpbmcoY2hhcikuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcXN0cmluZyh2YWwpIHtcbiAgICAgIHZhciBzdHIgPSBTdHJpbmcodmFsKTtcbiAgICAgIHJldHVybiAnXCInICsgc3RyLnJlcGxhY2UoUVVPVEVfUkVHRVhQLCBcIlxcXFwkMVwiKSArICdcIic7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVzdHJpbmcodmFsKSB7XG4gICAgICB2YXIgc3RyID0gU3RyaW5nKHZhbCk7XG4gICAgICB2YXIgZW5jb2RlZCA9IGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnJlcGxhY2UoRU5DT0RFX1VSTF9BVFRSX0NIQVJfUkVHRVhQLCBwZW5jb2RlKTtcbiAgICAgIHJldHVybiBcIlVURi04JydcIiArIGVuY29kZWQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIENvbnRlbnREaXNwb3NpdGlvbih0eXBlLCBwYXJhbWV0ZXJzKSB7XG4gICAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29va2llLXNpZ25hdHVyZS9pbmRleC5qc1xudmFyIHJlcXVpcmVfY29va2llX3NpZ25hdHVyZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb29raWUtc2lnbmF0dXJlL2luZGV4LmpzXCIoZXhwb3J0czIpIHtcbiAgICB2YXIgY3J5cHRvID0gcmVxdWlyZShcImNyeXB0b1wiKTtcbiAgICBleHBvcnRzMi5zaWduID0gZnVuY3Rpb24odmFsLCBzZWNyZXQpIHtcbiAgICAgIGlmIChcInN0cmluZ1wiICE9IHR5cGVvZiB2YWwpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDb29raWUgdmFsdWUgbXVzdCBiZSBwcm92aWRlZCBhcyBhIHN0cmluZy5cIik7XG4gICAgICBpZiAobnVsbCA9PSBzZWNyZXQpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTZWNyZXQga2V5IG11c3QgYmUgcHJvdmlkZWQuXCIpO1xuICAgICAgcmV0dXJuIHZhbCArIFwiLlwiICsgY3J5cHRvLmNyZWF0ZUhtYWMoXCJzaGEyNTZcIiwgc2VjcmV0KS51cGRhdGUodmFsKS5kaWdlc3QoXCJiYXNlNjRcIikucmVwbGFjZSgvXFw9KyQvLCBcIlwiKTtcbiAgICB9O1xuICAgIGV4cG9ydHMyLnVuc2lnbiA9IGZ1bmN0aW9uKGlucHV0LCBzZWNyZXQpIHtcbiAgICAgIGlmIChcInN0cmluZ1wiICE9IHR5cGVvZiBpbnB1dCkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlNpZ25lZCBjb29raWUgc3RyaW5nIG11c3QgYmUgcHJvdmlkZWQuXCIpO1xuICAgICAgaWYgKG51bGwgPT0gc2VjcmV0KSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU2VjcmV0IGtleSBtdXN0IGJlIHByb3ZpZGVkLlwiKTtcbiAgICAgIHZhciB0ZW50YXRpdmVWYWx1ZSA9IGlucHV0LnNsaWNlKDAsIGlucHV0Lmxhc3RJbmRleE9mKFwiLlwiKSksIGV4cGVjdGVkSW5wdXQgPSBleHBvcnRzMi5zaWduKHRlbnRhdGl2ZVZhbHVlLCBzZWNyZXQpLCBleHBlY3RlZEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGV4cGVjdGVkSW5wdXQpLCBpbnB1dEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGlucHV0KTtcbiAgICAgIHJldHVybiBleHBlY3RlZEJ1ZmZlci5sZW5ndGggPT09IGlucHV0QnVmZmVyLmxlbmd0aCAmJiBjcnlwdG8udGltaW5nU2FmZUVxdWFsKGV4cGVjdGVkQnVmZmVyLCBpbnB1dEJ1ZmZlcikgPyB0ZW50YXRpdmVWYWx1ZSA6IGZhbHNlO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29va2llL2luZGV4LmpzXG52YXIgcmVxdWlyZV9jb29raWUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY29va2llL2luZGV4LmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBleHBvcnRzMi5wYXJzZSA9IHBhcnNlO1xuICAgIGV4cG9ydHMyLnNlcmlhbGl6ZSA9IHNlcmlhbGl6ZTtcbiAgICB2YXIgX190b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG4gICAgdmFyIGNvb2tpZU5hbWVSZWdFeHAgPSAvXlshIyQlJicqK1xcLS5eX2B8fjAtOUEtWmEtel0rJC87XG4gICAgdmFyIGNvb2tpZVZhbHVlUmVnRXhwID0gL14oXCI/KVtcXHUwMDIxXFx1MDAyMy1cXHUwMDJCXFx1MDAyRC1cXHUwMDNBXFx1MDAzQy1cXHUwMDVCXFx1MDA1RC1cXHUwMDdFXSpcXDEkLztcbiAgICB2YXIgZG9tYWluVmFsdWVSZWdFeHAgPSAvXihbLl0/W2EtejAtOV0oW2EtejAtOS1dezAsNjF9W2EtejAtOV0pPykoWy5dW2EtejAtOV0oW2EtejAtOS1dezAsNjF9W2EtejAtOV0pPykqJC9pO1xuICAgIHZhciBwYXRoVmFsdWVSZWdFeHAgPSAvXltcXHUwMDIwLVxcdTAwM0FcXHUwMDNELVxcdTAwN0VdKiQvO1xuICAgIGZ1bmN0aW9uIHBhcnNlKHN0ciwgb3B0KSB7XG4gICAgICBpZiAodHlwZW9mIHN0ciAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgc3RyIG11c3QgYmUgYSBzdHJpbmdcIik7XG4gICAgICB9XG4gICAgICB2YXIgb2JqID0ge307XG4gICAgICB2YXIgbGVuID0gc3RyLmxlbmd0aDtcbiAgICAgIGlmIChsZW4gPCAyKSByZXR1cm4gb2JqO1xuICAgICAgdmFyIGRlYyA9IG9wdCAmJiBvcHQuZGVjb2RlIHx8IGRlY29kZTtcbiAgICAgIHZhciBpbmRleCA9IDA7XG4gICAgICB2YXIgZXFJZHggPSAwO1xuICAgICAgdmFyIGVuZElkeCA9IDA7XG4gICAgICBkbyB7XG4gICAgICAgIGVxSWR4ID0gc3RyLmluZGV4T2YoXCI9XCIsIGluZGV4KTtcbiAgICAgICAgaWYgKGVxSWR4ID09PSAtMSkgYnJlYWs7XG4gICAgICAgIGVuZElkeCA9IHN0ci5pbmRleE9mKFwiO1wiLCBpbmRleCk7XG4gICAgICAgIGlmIChlbmRJZHggPT09IC0xKSB7XG4gICAgICAgICAgZW5kSWR4ID0gbGVuO1xuICAgICAgICB9IGVsc2UgaWYgKGVxSWR4ID4gZW5kSWR4KSB7XG4gICAgICAgICAgaW5kZXggPSBzdHIubGFzdEluZGV4T2YoXCI7XCIsIGVxSWR4IC0gMSkgKyAxO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBrZXlTdGFydElkeCA9IHN0YXJ0SW5kZXgoc3RyLCBpbmRleCwgZXFJZHgpO1xuICAgICAgICB2YXIga2V5RW5kSWR4ID0gZW5kSW5kZXgoc3RyLCBlcUlkeCwga2V5U3RhcnRJZHgpO1xuICAgICAgICB2YXIga2V5ID0gc3RyLnNsaWNlKGtleVN0YXJ0SWR4LCBrZXlFbmRJZHgpO1xuICAgICAgICBpZiAoIW9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgdmFyIHZhbFN0YXJ0SWR4ID0gc3RhcnRJbmRleChzdHIsIGVxSWR4ICsgMSwgZW5kSWR4KTtcbiAgICAgICAgICB2YXIgdmFsRW5kSWR4ID0gZW5kSW5kZXgoc3RyLCBlbmRJZHgsIHZhbFN0YXJ0SWR4KTtcbiAgICAgICAgICBpZiAoc3RyLmNoYXJDb2RlQXQodmFsU3RhcnRJZHgpID09PSAzNCAmJiBzdHIuY2hhckNvZGVBdCh2YWxFbmRJZHggLSAxKSA9PT0gMzQpIHtcbiAgICAgICAgICAgIHZhbFN0YXJ0SWR4Kys7XG4gICAgICAgICAgICB2YWxFbmRJZHgtLTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHZhbCA9IHN0ci5zbGljZSh2YWxTdGFydElkeCwgdmFsRW5kSWR4KTtcbiAgICAgICAgICBvYmpba2V5XSA9IHRyeURlY29kZSh2YWwsIGRlYyk7XG4gICAgICAgIH1cbiAgICAgICAgaW5kZXggPSBlbmRJZHggKyAxO1xuICAgICAgfSB3aGlsZSAoaW5kZXggPCBsZW4pO1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RhcnRJbmRleChzdHIsIGluZGV4LCBtYXgpIHtcbiAgICAgIGRvIHtcbiAgICAgICAgdmFyIGNvZGUgPSBzdHIuY2hhckNvZGVBdChpbmRleCk7XG4gICAgICAgIGlmIChjb2RlICE9PSAzMiAmJiBjb2RlICE9PSA5KSByZXR1cm4gaW5kZXg7XG4gICAgICB9IHdoaWxlICgrK2luZGV4IDwgbWF4KTtcbiAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVuZEluZGV4KHN0ciwgaW5kZXgsIG1pbikge1xuICAgICAgd2hpbGUgKGluZGV4ID4gbWluKSB7XG4gICAgICAgIHZhciBjb2RlID0gc3RyLmNoYXJDb2RlQXQoLS1pbmRleCk7XG4gICAgICAgIGlmIChjb2RlICE9PSAzMiAmJiBjb2RlICE9PSA5KSByZXR1cm4gaW5kZXggKyAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1pbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2VyaWFsaXplKG5hbWUsIHZhbCwgb3B0KSB7XG4gICAgICB2YXIgZW5jID0gb3B0ICYmIG9wdC5lbmNvZGUgfHwgZW5jb2RlVVJJQ29tcG9uZW50O1xuICAgICAgaWYgKHR5cGVvZiBlbmMgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGVuY29kZSBpcyBpbnZhbGlkXCIpO1xuICAgICAgfVxuICAgICAgaWYgKCFjb29raWVOYW1lUmVnRXhwLnRlc3QobmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IG5hbWUgaXMgaW52YWxpZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciB2YWx1ZSA9IGVuYyh2YWwpO1xuICAgICAgaWYgKCFjb29raWVWYWx1ZVJlZ0V4cC50ZXN0KHZhbHVlKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgdmFsIGlzIGludmFsaWRcIik7XG4gICAgICB9XG4gICAgICB2YXIgc3RyID0gbmFtZSArIFwiPVwiICsgdmFsdWU7XG4gICAgICBpZiAoIW9wdCkgcmV0dXJuIHN0cjtcbiAgICAgIGlmIChudWxsICE9IG9wdC5tYXhBZ2UpIHtcbiAgICAgICAgdmFyIG1heEFnZSA9IE1hdGguZmxvb3Iob3B0Lm1heEFnZSk7XG4gICAgICAgIGlmICghaXNGaW5pdGUobWF4QWdlKSkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gbWF4QWdlIGlzIGludmFsaWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgc3RyICs9IFwiOyBNYXgtQWdlPVwiICsgbWF4QWdlO1xuICAgICAgfVxuICAgICAgaWYgKG9wdC5kb21haW4pIHtcbiAgICAgICAgaWYgKCFkb21haW5WYWx1ZVJlZ0V4cC50ZXN0KG9wdC5kb21haW4pKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBkb21haW4gaXMgaW52YWxpZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBzdHIgKz0gXCI7IERvbWFpbj1cIiArIG9wdC5kb21haW47XG4gICAgICB9XG4gICAgICBpZiAob3B0LnBhdGgpIHtcbiAgICAgICAgaWYgKCFwYXRoVmFsdWVSZWdFeHAudGVzdChvcHQucGF0aCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIHBhdGggaXMgaW52YWxpZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBzdHIgKz0gXCI7IFBhdGg9XCIgKyBvcHQucGF0aDtcbiAgICAgIH1cbiAgICAgIGlmIChvcHQuZXhwaXJlcykge1xuICAgICAgICB2YXIgZXhwaXJlcyA9IG9wdC5leHBpcmVzO1xuICAgICAgICBpZiAoIWlzRGF0ZShleHBpcmVzKSB8fCBpc05hTihleHBpcmVzLnZhbHVlT2YoKSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGV4cGlyZXMgaXMgaW52YWxpZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBzdHIgKz0gXCI7IEV4cGlyZXM9XCIgKyBleHBpcmVzLnRvVVRDU3RyaW5nKCk7XG4gICAgICB9XG4gICAgICBpZiAob3B0Lmh0dHBPbmx5KSB7XG4gICAgICAgIHN0ciArPSBcIjsgSHR0cE9ubHlcIjtcbiAgICAgIH1cbiAgICAgIGlmIChvcHQuc2VjdXJlKSB7XG4gICAgICAgIHN0ciArPSBcIjsgU2VjdXJlXCI7XG4gICAgICB9XG4gICAgICBpZiAob3B0LnBhcnRpdGlvbmVkKSB7XG4gICAgICAgIHN0ciArPSBcIjsgUGFydGl0aW9uZWRcIjtcbiAgICAgIH1cbiAgICAgIGlmIChvcHQucHJpb3JpdHkpIHtcbiAgICAgICAgdmFyIHByaW9yaXR5ID0gdHlwZW9mIG9wdC5wcmlvcml0eSA9PT0gXCJzdHJpbmdcIiA/IG9wdC5wcmlvcml0eS50b0xvd2VyQ2FzZSgpIDogb3B0LnByaW9yaXR5O1xuICAgICAgICBzd2l0Y2ggKHByaW9yaXR5KSB7XG4gICAgICAgICAgY2FzZSBcImxvd1wiOlxuICAgICAgICAgICAgc3RyICs9IFwiOyBQcmlvcml0eT1Mb3dcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJtZWRpdW1cIjpcbiAgICAgICAgICAgIHN0ciArPSBcIjsgUHJpb3JpdHk9TWVkaXVtXCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiaGlnaFwiOlxuICAgICAgICAgICAgc3RyICs9IFwiOyBQcmlvcml0eT1IaWdoXCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBwcmlvcml0eSBpcyBpbnZhbGlkXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAob3B0LnNhbWVTaXRlKSB7XG4gICAgICAgIHZhciBzYW1lU2l0ZSA9IHR5cGVvZiBvcHQuc2FtZVNpdGUgPT09IFwic3RyaW5nXCIgPyBvcHQuc2FtZVNpdGUudG9Mb3dlckNhc2UoKSA6IG9wdC5zYW1lU2l0ZTtcbiAgICAgICAgc3dpdGNoIChzYW1lU2l0ZSkge1xuICAgICAgICAgIGNhc2UgdHJ1ZTpcbiAgICAgICAgICAgIHN0ciArPSBcIjsgU2FtZVNpdGU9U3RyaWN0XCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwibGF4XCI6XG4gICAgICAgICAgICBzdHIgKz0gXCI7IFNhbWVTaXRlPUxheFwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcInN0cmljdFwiOlxuICAgICAgICAgICAgc3RyICs9IFwiOyBTYW1lU2l0ZT1TdHJpY3RcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJub25lXCI6XG4gICAgICAgICAgICBzdHIgKz0gXCI7IFNhbWVTaXRlPU5vbmVcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIHNhbWVTaXRlIGlzIGludmFsaWRcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlY29kZShzdHIpIHtcbiAgICAgIHJldHVybiBzdHIuaW5kZXhPZihcIiVcIikgIT09IC0xID8gZGVjb2RlVVJJQ29tcG9uZW50KHN0cikgOiBzdHI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzRGF0ZSh2YWwpIHtcbiAgICAgIHJldHVybiBfX3RvU3RyaW5nLmNhbGwodmFsKSA9PT0gXCJbb2JqZWN0IERhdGVdXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyeURlY29kZShzdHIsIGRlY29kZTIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBkZWNvZGUyKHN0cik7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgICB9XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NlbmQvbm9kZV9tb2R1bGVzL21pbWUtZGIvZGIuanNvblxudmFyIHJlcXVpcmVfZGI0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NlbmQvbm9kZV9tb2R1bGVzL21pbWUtZGIvZGIuanNvblwiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgXCJhcHBsaWNhdGlvbi8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi8zZ3BkYXNoLXFvZS1yZXBvcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uLzNncHAtaW1zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vM2dwcGhhbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi8zZ3BwaGFsZm9ybXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYTJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWNlK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWNlLWdyb3VwY29tbStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWNlLXRybCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWN0aXZlbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjdGl2aXR5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FpZitjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWlmK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tY2RuaStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWNkbmlmaWx0ZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1jb3N0bWFwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tY29zdG1hcGZpbHRlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWRpcmVjdG9yeStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50Y29zdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50Y29zdHBhcmFtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50cHJvcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50cHJvcHBhcmFtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWVycm9yK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tbmV0d29ya21hcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLW5ldHdvcmttYXBmaWx0ZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1wcm9wbWFwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tcHJvcG1hcHBhcmFtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXRpcHMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by10aXBzcGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tdXBkYXRlc3RyZWFtY29udHJvbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXVwZGF0ZXN0cmVhbXBhcmFtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbmRyZXctaW5zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBwaW5zdGFsbGVyXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBwaW5zdGFsbGVyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHBsZWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHBsaXh3YXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBweFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcHhidW5kbGVcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHB4YnVuZGxlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdGZ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0b21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b21jYXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdG9tY2F0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9tZGVsZXRlZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0b21kZWxldGVkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9taWNtYWlsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbXN2Yyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0b21zdmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0c2MtZHdkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHdkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLWR5bmFtaWMtZXZlbnQtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0c2MtaGVsZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlbGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0c2MtcmR0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0c2MtcnNhdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzYXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0eG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXV0aC1wb2xpY3kreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdXRvbWF0aW9ubWwtYW1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdXRvbWF0aW9ubWwtYW1seCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhbWx4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9iYWNuZXQteGRkK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2JhdGNoLXNtdHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9iZG9jXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRvY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYmVlcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYnVmclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2MycGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYWxlbmRhcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYWxlbmRhcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhjc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2FsbC1jb21wbGV0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2Fscy0xODQwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2FwdGl2ZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2Jvci1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jY2NleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NjbXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jY3htbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNjeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkZngreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZGZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLWNhcGFiaWxpdHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZG1pYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RtaS1jb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZG1pY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RtaS1kb21haW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZG1pZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RtaS1vYmplY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZG1pb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RtaS1xdWV1ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWlxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG5pXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2UrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NlYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NlYS0yMDE4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2VsbG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2Z3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2lkLWVkaG9jK2Nib3Itc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2l0eStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jaXR5K2pzb24tc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2xyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2x1ZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NsdWVfaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Ntc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NucnAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb2FwLWVhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvYXAtZ3JvdXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29hcC1wYXlsb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29tbW9uZ3JvdW5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29uY2lzZS1wcm9ibGVtLWRldGFpbHMrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvbmZlcmVuY2UtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nvc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb3NlLWtleVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nvc2Uta2V5LXNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nvc2UteDUwOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NwbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3NyYXR0cnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jc3RhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3N0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jc3ZtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N1LXNlZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjdVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3dsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3dsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jd2wranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3dsK3lhbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jeWJlcmNhc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kYXJ0XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kYXNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kYXNoLXBhdGNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kYXNoZGVsdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kYXZtb3VudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRhdm1vdW50XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kY2EtcmZ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGVjLWR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGlhbG9nLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWNvbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRjbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGljb20ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGljb20reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kbnMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG5zLW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kb2Nib29rK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYmtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RvdHMrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rwb3Arand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHNrcHAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kc3NjK2RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRzc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rzc2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZHNzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHZjc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdCtjd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0LWJ1bitjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0LWJ1bitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQtdWNzK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQtdWNzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VjbWFzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWNtYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWRob2MrY2Jvci1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZGktY29uc2VudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VkaS14MTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZGlmYWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWZpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWxtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWxtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuY2FwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5jb21tZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuY29udHJvbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmRldmljZWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5lY2FsbC5tc2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5sZWdhY3llc24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEucHJvdmlkZXJpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuc2VydmljZWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5zdWJzY3JpYmVyaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnZlZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbW1hK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW1tYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1vdGlvbm1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW1vdGlvbm1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbmNhcHJ0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VudGl0eS1zdGF0ZW1lbnQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXBwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXB1Yit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlcHViXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lc2hvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2V4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXhwZWN0LWN0LXJlcG9ydCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9leHByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mYXN0aW5mb3NldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Zhc3Rzb2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mZHQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZoaXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9maGlyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9maWRvLnRydXN0ZWQtYXBwcytqc29uXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9maXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmxleGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZvbnQtc2ZudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZvbnQtdGRwZnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZnJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZvbnQtd29mZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZyYW1ld29yay1hdHRyaWJ1dGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VvK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdlb2pzb25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlbytqc29uLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlb3BhY2thZ2Urc3FsaXRlM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlb3Bvc2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VveGFjbWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VveGFjbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbHRmLWJ1ZmZlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ25hcC1iaW5kaW5nLWp3c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2duYXAtYmluZGluZy1qd3NkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ25hcC1iaW5kaW5nLXJvdGF0aW9uLWp3c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2duYXAtYmluZGluZy1yb3RhdGlvbi1qd3NkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ3B4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dyaWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9neGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd4ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9oMjI0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaGVsZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2hqc29uXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGpzb25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2hsN3YyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9odHRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaHlwZXJzdHVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2liZS1rZXktcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2liZS1wa2ctcmVwbHkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pYmUtcHAtZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lnZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbS1pc2NvbXBvc2luZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmRleC5jbWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmRleC5vYmpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmRleC5yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4LnZuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lua21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaW5rXCIsIFwiaW5rbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lvdHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pcGZpeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlwZml4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pc3VwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaXRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qYXZhLWFyY2hpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYXJcIiwgXCJ3YXJcIiwgXCJlYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2phdmEtc2VyaWFsaXplZC1vYmplY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamF2YS12bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xhc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2phdmFzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamYyZmVlZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qb3NlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vam9zZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qcmQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNjYWxlbmRhcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc2NvbnRhY3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc29uXCIsIFwibWFwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29uLXBhdGNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb24tc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbjVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJqc29uNVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbm1sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNvbm1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29ucGF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2p3aytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qd2stc2V0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2p3ay1zZXQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24va3BtbC1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24va3BtbC1yZXNwb25zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzb25sZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGdyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGdyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9saW5rLWZvcm1hdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xpbmtzZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9saW5rc2V0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xvYWQtY29udHJvbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xvZ291dCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sb3N0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibG9zdHhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbG9zdHN5bmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9scGYremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbHhmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFjLWJpbmhleDQwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHF4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYWMtY29tcGFjdHByb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3B0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYWN3cml0ZWlpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFkcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1hZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hbmlmZXN0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2VibWFuaWZlc3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hcmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hcmN4bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcmN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXRoZW1hdGljYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1hXCIsIFwibmJcIiwgXCJtYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWF0aG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWF0aG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXRobWwtY29udGVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hdGhtbC1wcmVzZW50YXRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLWFzc29jaWF0ZWQtcHJvY2VkdXJlLWRlc2NyaXB0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1kZXJlZ2lzdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1lbnZlbG9wZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtbXNrK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1tc2stcmVzcG9uc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXByb3RlY3Rpb24tZGVzY3JpcHRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXJlY2VwdGlvbi1yZXBvcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXJlZ2lzdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1yZWdpc3Rlci1yZXNwb25zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtc2NoZWR1bGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXVzZXItc2VydmljZS1kZXNjcmlwdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ib3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYm94XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZWRpYS1wb2xpY3ktZGF0YXNldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWVkaWFfY29udHJvbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21lZGlhc2VydmVyY29udHJvbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zY21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZXJnZS1wYXRjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZXRhbGluayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWV0YWxpbmtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ldGFsaW5rNCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ldGE0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZXRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWV0c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWY0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWlrZXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9taXBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWlzc2luZy1ibG9ja3MrY2Jvci1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tbXQtYWVpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWFlaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW10LXVzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm11c2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21vZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtb2RzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb3NzLWtleXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb3NzLXNpZ25hdHVyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21vc3NrZXktZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21vc3NrZXktcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21wMjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtMjFcIiwgXCJtcDIxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcDRcIiwgXCJtcGc0XCIsIFwibXA0c1wiLCBcIm00cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXBlZzQtZ2VuZXJpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21wZWc0LWlvZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21wZWc0LWlvZC14bXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcmItY29uc3VtZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcmItcHVibGlzaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21zYy1pdnIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21zYy1taXhlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXNpeFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zaXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21zaXhidW5kbGVcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2l4YnVuZGxlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc3dvcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkb2NcIiwgXCJkb3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL211ZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tdWx0aXBhcnQtY29yZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL214ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbi1xdWFkc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5xXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uLXRyaXBsZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJudFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmFzZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25ld3MtY2hlY2tncm91cHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVTLUFTQ0lJXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25ld3MtZ3JvdXBpbmZvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVUy1BU0NJSVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uZXdzLXRyYW5zbWlzc2lvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25sc21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbm9kZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNqc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbnNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2F1dGgtYXV0aHotcmVxK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29ibGl2aW91cy1kbnMtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29jc3AtcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29jc3AtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJpblwiLCBcImRtc1wiLCBcImxyZlwiLCBcIm1hclwiLCBcInNvXCIsIFwiZGlzdFwiLCBcImRpc3R6XCIsIFwicGtnXCIsIFwiYnBrXCIsIFwiZHVtcFwiLCBcImVsY1wiLCBcImRlcGxveVwiLCBcImV4ZVwiLCBcImRsbFwiLCBcImRlYlwiLCBcImRtZ1wiLCBcImlzb1wiLCBcImltZ1wiLCBcIm1zaVwiLCBcIm1zcFwiLCBcIm1zbVwiLCBcImJ1ZmZlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2RhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vZG0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vZWJwcy1wYWNrYWdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3BmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vZ2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZ3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29odHRwLWtleXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vbWRvYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib21kb2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29uZW5vdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9uZXRvY1wiLCBcIm9uZXRvYzJcIiwgXCJvbmV0bXBcIiwgXCJvbmVwa2dcIiwgXCJvbmVcIiwgXCJvbmVhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vcGMtbm9kZXNldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29zY29yZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL294cHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJveHBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wMjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wMjEremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcDJwLW92ZXJsYXkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZWxvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wYXNzcG9ydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BhdGNoLW9wcy1lcnJvcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZW0tY2VydGlmaWNhdGUtY2hhaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZ3AtZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGdwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZ3Ata2V5c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpZ1wiLCBcImFzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGljcy1ydWxlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9waWRmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9waWRmLWRpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3MxMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInAxMFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczctbWltZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInA3bVwiLCBcInA3Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczctc2lnbmF0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDdzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInA4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzOC1lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2l4LWF0dHItY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2l4LWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXgtY3JsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3JsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2l4LXBraXBhdGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwa2lwYXRoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2l4Y21wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGtpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wbHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BvYy1zZXR0aW5ncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcG9zdHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWlcIiwgXCJlcHNcIiwgXCJwc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHBzcC10cmFja2VyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ByaXZhdGUtdG9rZW4taXNzdWVyLWRpcmVjdG9yeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ByaXZhdGUtdG9rZW4tcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ByaXZhdGUtdG9rZW4tcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcm9ibGVtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Byb2JsZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcm92ZW5hbmNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJvdnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Byb3ZpZGVkLWNsYWltcytqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuYWx2ZXN0cmFuZC50aXRyYXgtc2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuY3d3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3d3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuY3luXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCI3LUJJVFwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaHB1Yit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1kb2N1bWVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLWV4ZWN1dGFibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1vYmplY3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtb2JqZWN0K2pzb24tc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtb2JqZWN0K3lhbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1zdHJ1Y3R1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMubWF5ZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5ucHJlbmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMucGx1Y2tlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5yZGYteG1sLWNyeXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLnZjZmJ6aXAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLnhzZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHNrYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBza2N4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3B2ZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9xc2lnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmFtbCt5YW1sXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yYXB0b3JmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZGFwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JkZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJkZlwiLCBcIm93bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVnaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVsYXgtbmctY29tcGFjdC1zeW50YXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JlbW90ZS1wcmludGluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVwdXRvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZXNvbHZlLXJlc3BvbnNlK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jlc291cmNlLWxpc3RzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jlc291cmNlLWxpc3RzLWRpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JmYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jpc2Nvc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JsbWkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ybHMtc2VydmljZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcm91dGUtYXBkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFwZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcm91dGUtcy10c2lkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2xzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yb3V0ZS11c2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydXNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLWNoZWNrbGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktZ2hvc3RidXN0ZXJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2JyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLW1hbmlmZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWZ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLXB1YmxpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1yb2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyb2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktc2lnbmVkLXRhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktdXBkb3duXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jzcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ydGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJ0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnRwbG9vcGJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ydHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYW1sYXNzZXJ0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2FtbG1ldGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2FyaWYranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2FyaWYtZXh0ZXJuYWwtcHJvcGVydGllcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYm1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2JtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2NhaXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY2ltK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjdnAtY3YtcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjcVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2N2cC1jdi1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2N2cC12cC1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY3ZwLXZwLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlY2V2ZW50K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbm1seFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwtZXRjaCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwtZXRjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbC1leGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5zbWwrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlbnNtbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5zbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW5zbWx4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5zbWwtZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VwLWV4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlc3Npb24taW5mb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NldC1wYXltZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2V0LXBheW1lbnQtaW5pdGlhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNldHBheVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2V0LXJlZ2lzdHJhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NldC1yZWdpc3RyYXRpb24taW5pdGlhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNldHJlZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2dtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NnbWwtb3Blbi1jYXRhbG9nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2hmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2hmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaWV2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpdlwiLCBcInNpZXZlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaW1wbGUtZmlsdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2ltcGxlLW1lc3NhZ2Utc3VtbWFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpbXBsZXN5bWJvbGNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpcGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NtaWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NtaWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbWlcIiwgXCJzbWlsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zbXB0ZTMzNm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zb2FwK2Zhc3RpbmZvc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc29hcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NwYXJxbC1xdWVyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcGFycWwtcmVzdWx0cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNyeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3BkeCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcGlyaXRzLWV2ZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3FsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcmdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3JhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3Jncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdyeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcnUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcnVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NzZGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNzZGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NzbGtleWxvZ2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zc21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3NtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3QyMTEwLTQxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3RpeCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zdHJhdHVtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3dpZCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3dpZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN3aWR0YWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtYXBleC11cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLWFwZXgtdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLWNvbW11bml0eS11cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLWNvbW11bml0eS11cGRhdGUtY29uZmlybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtZXJyb3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXNlcXVlbmNlLWFkanVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtc2VxdWVuY2UtYWRqdXN0LWNvbmZpcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXN0YXR1cy1xdWVyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtc3RhdHVzLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC11cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXVwZGF0ZS1jb25maXJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFyXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YXhpaStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90ZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90ZWkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZWlcIiwgXCJ0ZWljb3JwdXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RldHJhX2lzaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RocmF1ZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRmaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGltZXN0YW1wLXF1ZXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGltZXN0YW1wLXJlcGx5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGltZXN0YW1wZWQtZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGxzcnB0K2d6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90bHNycHQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdG0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdG5hdXRobGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RvYytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdG9rZW4taW50cm9zcGVjdGlvbitqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90b21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0b21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cmlja2xlLWljZS1zZHBmcmFnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRyaWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RydXN0LWNoYWluK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RydXN0LW1hcmsrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJ1c3QtbWFyay1kZWxlZ2F0aW9uK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3R0bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0dG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90dmUtdHJpZ2dlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3R6aWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90emlmLWxlYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91Ympzb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1YmpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VjY3MrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VqY3MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdWxwZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdXJjLWdycHNoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdXJjLXJlc3NoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNoZWV0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91cmMtdGFyZ2V0ZGVzYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91cmMtdWlzb2NrZXRkZXNjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Yytjb3NlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmMrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmNhcmQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmNhcmQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92ZW1taVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZpdmlkZW5jZS5zY3JpcHRmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuMTAwMG1pbmRzLmRlY2lzaW9uLW1vZGVsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiMWttXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuMW9iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtcHJvc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzNhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtcHJvc2UtcGMzYWNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtcHJvc2UtcGMzY2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzgreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC12MngtbG9jYWwtc2VydmljZS1pbmZvcm1hdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnbmFzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWdzYTJ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWdzYTJ4LWxvY2FsLXNlcnZpY2UtaW5mb3JtYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z3N2MnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z3N2MngtbG9jYWwtc2VydmljZS1pbmZvcm1hdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmFjY2Vzcy10cmFuc2Zlci1ldmVudHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5ic2YreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5jcnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5jdXJyZW50LWxvY2F0aW9uLWRpc2NvdmVyeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmdtb3AreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5ndHBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuaW50ZXJ3b3JraW5nLWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5scHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tYy1zaWduYWxsaW5nLWVhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1hZmZpbGlhdGlvbi1jb21tYW5kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtbXNnc3RvcmUtY3RybC1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXBheWxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtcmVncm91cCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1zaWduYWxsaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXVlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS11c2VyLXByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1hZmZpbGlhdGlvbi1jb21tYW5kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtZmxvb3ItcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1sb2NhdGlvbi1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtbWJtcy11c2FnZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtcmVncm91cCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXNlcnZpY2UtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtc2lnbmVkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtdWUtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtdWUtaW5pdC1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC11c2VyLXByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLWFmZmlsaWF0aW9uLWNvbW1hbmQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLWxvY2F0aW9uLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLW1ibXMtdXNhZ2UtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tcmVncm91cCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tc2VydmljZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXRyYW5zbWlzc2lvbi1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby11ZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXVzZXItcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1pZC1jYWxsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubmdhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBmY3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctbGFyZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpYy1idy1zbWFsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBzYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGljLWJ3LXZhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB2YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGluYXBwLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zMWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1ncm91cC1kb2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLWxvY2F0aW9uLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLW1ibXMtdXNhZ2UtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtbmV0d29yay1xb3MtbWFuYWdlbWVudC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC11ZS1jb25maWctaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtdW5pY2FzdC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC11c2VyLXByb2ZpbGUtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNtcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNydmNjLWV4dCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNydmNjLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zdGF0ZS1hbmQtZXZlbnQtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnVzc2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC52MnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC52YWUtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwMi5iY21jc2luZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcDIuc21zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAyLnRjYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0Y2FwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2xpZ2h0c3NvZnR3YXJlLmltYWdlc2NhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zbS5wb3N0LWl0LW5vdGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHduXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWNjcGFjLnNpbXBseS5hc29cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhc29cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY2NwYWMuc2ltcGx5LmltcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImltcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjbS5hZGRyZXNzeGZlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWNtLmNoYXRib3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjdWNvYm9sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWN1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWN1Y29ycFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0Y1wiLCBcImFjdXRjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWlyLWFwcGxpY2F0aW9uLWluc3RhbGxlci1wYWNrYWdlK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWlyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUuZmxhc2gubW92aWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUuZm9ybXNjZW50cmFsLmZjZHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmY2R0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUuZnhwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnhwXCIsIFwiZnhwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLnBhcnRpYWwtdXBsb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLnhkcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLnhmZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhmZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZXRoZXIuaW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuYWZwbGluZWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5hZnBsaW5lZGF0YS1wYWdlZGVmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuY21vY2EtY21yZXNvdXJjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmZvY2EtY2hhcnNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmZvY2EtY29kZWRmb250XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuZm9jYS1jb2RlcGFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtY210YWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLWZvcm1kZWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1tZWRpdW1tYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1vYmplY3Rjb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1vdmVybGF5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtcGFnZXNlZ21lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWdlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWgtYmFyY29kZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFoZWFkLnNwYWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWhlYWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5haXJ6aXAuZmlsZXNlY3VyZS5hemZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhemZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5haXJ6aXAuZmlsZXNlY3VyZS5henNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhenNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbWFkZXVzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbWF6b24uZWJvb2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF6d1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtYXpvbi5tb2JpOC1lYm9va1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbWVyaWNhbmR5bmFtaWNzLmFjY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFjY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtaWdhLmFtaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFtaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtdW5kc2VuLm1hemUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW5kcm9pZC5vdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW5kcm9pZC5wYWNrYWdlLWFyY2hpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwa1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFua2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW5zZXItd2ViLWNlcnRpZmljYXRlLWlzc3VlLWluaXRpYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaWlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbnNlci13ZWItZnVuZHMtdHJhbnNmZXItaW5pdGlhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnRpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW50aXguZ2FtZS1jb21wb25lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUuYXJyb3cuZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUuYXJyb3cuc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS5wYXJxdWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS50aHJpZnQuYmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS50aHJpZnQuY29tcGFjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUudGhyaWZ0Lmpzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBleGxhbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBpK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGxleHRvci53YXJycCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBvdGhla2VuZGUucmVzZXJ2YXRpb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLmluc3RhbGxlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wa2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5rZXlub3RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2V5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm0zdThcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5udW1iZXJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnVtYmVyc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLnBhZ2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGFnZXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5wa3Bhc3NcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwa3Bhc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcmFzdHJhLnN3aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFyaXN0YW5ldHdvcmtzLnN3aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN3aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFydGlzYW4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFydHNxdWFyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hc3RyYWVhLXNvZnR3YXJlLmlvdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpb3RhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXVkaW9ncmFwaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFlcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmF1dG9kZXNrLmZieFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZieFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmF1dG9wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmF2YWxvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXZpc3Rhcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYWxzYW1pcS5ibW1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm1tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJhbHNhbWlxLmJtcHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmFuYW5hLWFjY291bnRpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmJmLnVzcC5lcnJvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYmYudXNwLm1zZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYmYudXNwLm1zZytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmVraXR6dXItc3RlY2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJlbGlnaHRzb2Z0LmxoemQremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJlbGlnaHRzb2Z0LmxoemwremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJpbnQubWVkLWNvbnRlbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmlvcGF4LnJkZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ibGluay1pZGItdmFsdWUtd3JhcHBlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ibHVlaWNlLm11bHRpcGFzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJsdWV0b290aC5lcC5vb2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmx1ZXRvb3RoLmxlLm9vYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ibWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibWlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5icGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnBmM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5idXNpbmVzc29iamVjdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ieXUudWFwaStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnppcDNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYzN2b2Muc2NoZWR1bGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2FiLWpzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2Fub24tY3BkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jYW5vbi1saXBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNhcGFzeXN0ZW1zLXBnK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jZW5kaW8udGhpbmxpbmMuY2xpZW50Y29uZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jZW50dXJ5LXN5c3RlbXMudGNwX3N0cmVhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaGVtZHJhdyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2hlc3MtcGduXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNoaXBudXRzLmthcmFva2UtbW1kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW1kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2llZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2luZGVyZWxsYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkeVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNpcnBhY2suaXNkbi1leHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2l0YXRpb25zdHlsZXMuc3R5bGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbGF5bW9yZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsb2FudG8ucnA5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnA5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2xvbmsuYzRncm91cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImM0Z1wiLCBcImM0ZFwiLCBcImM0ZlwiLCBcImM0cFwiLCBcImM0dVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsdWV0cnVzdC5jYXJ0b21vYmlsZS1jb25maWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjMTFhbWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbHVldHJ1c3QuY2FydG9tb2JpbGUtY29uZmlnLXBrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImMxMWFtelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNuY2YuaGVsbS5jaGFydC5jb250ZW50LnYxLnRhcitnemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNuY2YuaGVsbS5jaGFydC5wcm92ZW5hbmNlLnYxLnByb3ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY25jZi5oZWxtLmNvbmZpZy52MStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29mZmVlc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLmRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLmRvY3VtZW50LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnByZXNlbnRhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5wcmVzZW50YXRpb24tdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuc3ByZWFkc2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuc3ByZWFkc2hlZXQtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGVjdGlvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGVjdGlvbi5kb2MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24ubmV4dCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29taWNib29rK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb21pY2Jvb2stcmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbW1lcmNlLWJhdHRlbGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbW1vbnNwYWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29udGFjdC5jbXNnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RiY21zZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvcmVvcy5pZ25pdGlvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29zbW9jYWxsZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xreFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIua2V5Ym9hcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGtrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci5wYWxldHRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xrcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGt0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci53b3JkYmFua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa3dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcml0aWNhbHRvb2xzLndicyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndic1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0aWkucGlwZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3J5cHRvLXNoYWRlLWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3J5cHRvbWF0b3IuZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0b21hdG9yLnZhdWx0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN0Yy1wb3NtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN0Y3Qud3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1wZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1wb3N0c2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcHBkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHBkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1yYXN0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1yYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsLmNhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2FyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3VybC5wY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGN1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jeWFuLmRlYW4ucm9vdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jeWJhbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3ljbG9uZWR4K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jeWNsb25lZHgreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZDJsLmNvdXJzZXBhY2thZ2UxcDAremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmQzbS1kYXRhc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmQzbS1wcm9ibGVtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRhcnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYXRhLXZpc2lvbi5yZHpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZHpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYXRhbG9nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhdGFwYWNrYWdlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYXRhcmVzb3VyY2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRiZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRiZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRjbXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkY21wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGViaWFuLmJpbmFyeS1wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlY2UuZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2ZlwiLCBcInV2dmZcIiwgXCJ1dmRcIiwgXCJ1dnZkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS50dG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ0XCIsIFwidXZ2dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlY2UudW5zcGVjaWZpZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnhcIiwgXCJ1dnZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS56aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnpcIiwgXCJ1dnZ6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVub3ZvLmZjc2VsYXlvdXQtbGlua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZlX2xhdW5jaFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlc211bWUubW92aWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGlyLWJpLnBsYXRlLWRsLW5vc3VmZml4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRtLmRlbGVnYXRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG5hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG5hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG9jdW1lbnQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1scFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWxwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG9sYnkubW9iaWxlLjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG9sYnkubW9iaWxlLjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG9yZW1pci5zY29yZWNsb3VkLWJpbmFyeS1kb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kcGdyYXBoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHBnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHJlYW1mYWN0b3J5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGZhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRyaXZlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kcy1rZXlwb2ludFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3B4eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR0Zy5sb2NhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdGcubG9jYWwuZmxhc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHRnLmxvY2FsLmh0bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmFpdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFpdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5kdmJpc2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmR2YmpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmVzZ2NvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2RmdG5vdGlmYWNjZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjZXNnYWNjZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjZXNnYWNjZXNzMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2VzZ3BkZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY3JvYW1pbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwdHYuYWxmZWMtYmFzZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXB0di5hbGZlYy1lbmhhbmNlbWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtYWdncmVnYXRlLXJvb3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWNvbnRhaW5lcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtZ2VuZXJpYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtaWEtbXNnbGlzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtaWEtcmVnaXN0cmF0aW9uLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWlhLXJlZ2lzdHJhdGlvbi1yZXNwb25zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtaW5pdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIucGZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5zZXJ2aWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ZjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHhyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR5bmFnZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kenJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWFzeWthcmFva2UuY2RnZG93bmxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNkaXMtdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjaXAucmxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjbGlwc2UuZGl0dG8ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5jaGFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1hZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5maWxlcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uZmlsZXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uc2VyaWVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5zZXJpZXNyZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5zZXJpZXN1cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWZpLmltZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lZmkuaXNvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVsbit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZW1jbGllbnQuYWNjZXNzcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lbmxpdmVuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibm1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZW5waGFzZS5lbnZveVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHJpbnRzLmRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24uZXNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24ubXNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24ucXVpY2thbmltZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInFhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLnNhbHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5zc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcmljc3Nvbi5xdWlja2NhbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXJvZnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXNwYXNzLWVzcGFzcyt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXN6aWdubzMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlczNcIiwgXCJldDNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmFvYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmFzaWMtZSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5hc2ljLXMremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuY3VnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dmNvbW1hbmQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2ZGlzY292ZXJ5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2FkLWJjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNhZC1jb2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2FkLW5wdnIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2VydmljZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzeW5jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnVlcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLm1jaWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5taGVnNVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLm92ZXJsb2FkLWNvbnRyb2wtcG9saWN5LWRhdGFzZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5wc3RuK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuc2NpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuc2ltc2VydnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS50aW1lc3RhbXAtdG9rZW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS50c2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS50c2wuZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV1Lmthc3Bhcmlhbi5jYXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV1ZG9yYS5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV2b2x2LmVjaWcucHJvZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnNldHRpbmdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV2b2x2LmVjaWcudGhlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXhzdHJlYW0tZW1wb3dlcit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXhzdHJlYW0tcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lenBpeC1hbGJ1bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV6MlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV6cGl4LXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlejNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mLXNlY3VyZS5tb2JpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmFtaWx5c2VhcmNoLmdlZGNvbSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmFzdGNvcHktZGlzay1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZkc24ubXNlZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2VlZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZkc24uc2VlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlZWRcIiwgXCJkYXRhbGVzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZkc24uc3RhdGlvbnhtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlhNTC1CQVNFRFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZnNuc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5maWNsYWIuZmxiK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5maWxtaXQuemZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZpbnRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZpcmVtb25rZXlzLmNsb3VkY2VsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mbG9ncmFwaGl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3BoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmx1eHRpbWUuY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZvbnQtZm9udGZvcmdlLXNmZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mcmFtZW1ha2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZm1cIiwgXCJmcmFtZVwiLCBcIm1ha2VyXCIsIFwiYm9va1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZyZWVsb2cuY29taWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnJvZ2Fucy5mbmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZuY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZyb2dhbnMubHRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsdGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mc2Mud2VibGF1bmNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuZG9jdXdvcmtzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmRvY3V3b3Jrcy5iaW5kZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuZG9jdXdvcmtzLmNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppZmlsbS5mYi5qZmkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9hc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXMyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2EyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5czNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYTNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzZ3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZzVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzcHJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmgyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmFydC1leFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guYXJ0NFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZGRkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGRkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRvY3V3b3Jrc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kb2N1d29ya3MuYmluZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGJkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRvY3V3b3Jrcy5jb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmhicGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnV0LW1pc25ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdXRvaW4rY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdXRvaW4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1enp5c2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmenNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nYTRnaC5wYXNzcG9ydCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2Vub21hdGl4LnR1eGVkb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR4ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbm96aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudGljcy5ncmQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5jYXRtZXRhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28uZWJ1aWxkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5lY2xhc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLmdwa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLm1hbmlmZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5wa2dtZXRhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28ueHBha1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW8ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvY3ViZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLmZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZ2JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS5waW5ib2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS5zbGlkZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZ3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS50b29sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2d0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvbWV0cnktZXhwbG9yZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZXhcIiwgXCJncmVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9uZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3h0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvcGxhblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImcyd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb3NwYWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZzN3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VyYmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdsb2JhbHBsYXRmb3JtLmNhcmQtY29udGVudC1tZ3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2xvYmFscGxhdGZvcm0uY2FyZC1jb250ZW50LW1ndC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbnUudGFsZXIuZXhjaGFuZ2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdudS50YWxlci5tZXJjaGFudCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuYXVkaW9cIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5kb2N1bWVudFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdkb2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5kcmF3aW5nXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2RyYXdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5kcml2ZS1zZGtcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZmlsZVwiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZvbGRlclwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5mb3JtXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2Zvcm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5mdXNpb250YWJsZVwiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmphbVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdqYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5tYWlsLWxheW91dFwiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLm1hcFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdtYXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5waG90b1wiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnByZXNlbnRhdGlvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdzbGlkZXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5zY3JpcHRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2NyaXB0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc2hvcnRjdXRcIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5zaXRlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NpdGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5zcHJlYWRzaGVldFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdzaGVldFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnVua25vd25cIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy52aWRlb1wiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1lYXJ0aC5rbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua216XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia216XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ292LnNrLmUtZm9ybSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvdi5zay5lLWZvcm0remlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvdi5zay54bWxkYXRhY29udGFpbmVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRjZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdweHNlZS5tYXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3JhZmVxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3FmXCIsIFwiZ3FzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3JpZG1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1hY2NvdW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2FjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWhlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnaGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaWRlbnRpdHktbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdpbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1pbmplY3RvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdydlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS10b29sLW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJndG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdG9vbC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS12Y2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhhbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGFsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGFsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGFuZGhlbGQtZW50ZXJ0YWlubWVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInptbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhiY2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoYmNpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhjbC1iaXJlcG9ydHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGR0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhlcm9rdStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGhlLmxlc3Nvbi1wbGF5ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsZXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1ocGdsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHBnbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLWhwaWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJocGlkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtamx5dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpsdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLXBjbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLXBjbHhsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGNseGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oc2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHR0cGhvbmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHlkcm9zdGF0aXguc29mLWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZmQtaGRzdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oeXBlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHlwZXItaXRlbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHlwZXJkcml2ZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHpuLTNkLWNyb3Nzd29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0uYWZwbGluZWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0uZWxlY3Ryb25pYy1tZWRpYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0ubWluaXBheVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1weVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5tb2RjYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFmcFwiLCBcImxpc3RhZnBcIiwgXCJsaXN0MzgyMFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5yaWdodHMtbWFuYWdlbWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5zZWN1cmUtY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pY2Nwcm9maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNjXCIsIFwiaWNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWVlZS4xOTA1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlnbG9hZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWdsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1hZ2VtZXRlci5mb2xkZXIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltYWdlbWV0ZXIuaW1hZ2UremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltbWVydmlzaW9uLWl2cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIml2cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltbWVydmlzaW9uLWl2dVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIml2dVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmltc2NjdjFwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMuaW1zY2N2MXAzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5saXMudjIucmVzdWx0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xjb25zdW1lcnByb2ZpbGUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHByb3h5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xwcm94eS5pZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sc2V0dGluZ3MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHNldHRpbmdzLnNpbXBsZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3JtZWRjb250cm9sLnJtcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvcm1peC12aXNpb25hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvdGVjaC5wcm9qZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluZm90ZWNoLnByb2plY3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5ub3BhdGgud2FtcC5ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5zb3JzLmlnbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlnbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludGVyY29uLmZvcm1uZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cHdcIiwgXCJ4cHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcmdlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImkyZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludGVydHJ1c3QuZGlnaWJveFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcnRydXN0Lm5uY3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50dS5xYm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxYm9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnR1LnFmeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInFmeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwZnMuaXBucy1yZWNvcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBsZC5jYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBsZC5kYWctY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGxkLmRhZy1qc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwbGQucmF3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIuY2F0YWxvZ2l0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5jb25jZXB0aXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLmtub3dsZWRnZWl0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5uZXdzaXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLm5ld3NtZXNzYWdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIucGFja2FnZWl0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5wbGFubmluZ2l0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB1bnBsdWdnZWQucmNwcm9maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmNwcm9maWxlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXJlcG9zaXRvcnkucGFja2FnZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlycFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlzLXhwclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlzYWMuZmNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXNvMTE3ODMtMTAremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LWRpcmVjdG9yeS1zZXJ2aWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LWpwbnN0b3JlLXdha2V1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1wYXltZW50LXdha2V1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1yZWdpc3RyYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtcmVnaXN0cmF0aW9uLXdha2V1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1zZXRzdG9yZS13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtdmVyaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXZlcmlmaWNhdGlvbi13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamNwLmphdmFtZS5taWRsZXQtcm1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm1zXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamlzcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImppc3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qb29zdC5qb2RhLWFyY2hpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqb2RhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuanNrLmlzZG4tbmduXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmthaG9vdHpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrdHpcIiwgXCJrdHJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2FyYm9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2FyYm9uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtjaGFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNocnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2Zvcm11bGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrZm9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2l2aW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbHdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua29udG91clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rcHJlc2VudGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3ByXCIsIFwia3B0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtzcHJlYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrc3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua3dvcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrd2RcIiwgXCJrd3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2VuYW1lYWFwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh0a2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZXltYW4ua21wK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZXltYW4ua214XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtpZHNwaXJhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtpYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtpbmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia25lXCIsIFwia25wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua29hblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNrcFwiLCBcInNrZFwiLCBcInNrdFwiLCBcInNrbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtvZGFrLWRlc2NyaXB0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzc2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sYXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGFzLmxhcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGFzLmxhcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxhc3htbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxhc3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sZGV2LnByb2R1Y3RsaWNlbnNpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGVhcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGliZXJ0eS1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxsYW1hZ3JhcGhpY3MubGlmZS1iYWxhbmNlLmRlc2t0b3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsYmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sbGFtYWdyYXBoaWNzLmxpZmUtYmFsYW5jZS5leGNoYW5nZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxiZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvZ2lwaXBlLmNpcmN1aXQremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtMS0yLTNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIxMjNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1hcHByb2FjaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLWZyZWVsYW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLW5vdGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtb3JnYW5pemVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3JnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtc2NyZWVuY2FtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2NtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtd29yZHByb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx3cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hY3BvcnRzLnBvcnRwa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwb3J0cGtnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFwYm94LXZlY3Rvci10aWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXZ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFybGluLmRybS5hY3Rpb250b2tlbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLmNvbmZ0b2tlbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLmxpY2Vuc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFybGluLmRybS5tZGNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hc29uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXhhci5hcmNoaXZlLjN0eit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWF4bWluZC5tYXhtaW5kLWRiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1jZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1jZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1kbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZGwtbWJzZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVkY2FsY2RhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYzFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZWRpYXN0YXRpb24uY2RrZXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZGtleVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lZGljYWxob2xvZGVjay5yZWNvcmR4clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZXJpZGlhbi1zbGluZ3Nob3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVybWFpZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXdmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWZtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1mbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3JvK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb2dyYWZ4LmZsb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3JvZ3JhZnguaWd4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWd4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9zb2Z0LnBvcnRhYmxlLWV4ZWN1dGFibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9zb2Z0LndpbmRvd3MudGh1bWJuYWlsLWNhY2hlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pZWxlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taW5pc29mdC1ocDMwMDAtc2F2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taXRzdWJpc2hpLm1pc3R5LWd1YXJkLnRydXN0d2ViXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5kYWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMuZGlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGlzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1ia1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ia1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5tcXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMubXNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLnBsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy50eGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0eGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vcGh1bi5hcHBsaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vcGh1bi5jZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUuYWRzaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUuZmlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5nb3RhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUua21yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS50dGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLndlbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5pcHJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vemlsbGEueHVsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHVsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtM21mZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtYXJ0Z2FscnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1hc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtY2FiLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjYWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1jb2xvci5pY2Nwcm9maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHNcIiwgXCJ4bG1cIiwgXCJ4bGFcIiwgXCJ4bGNcIiwgXCJ4bHRcIiwgXCJ4bHdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5hZGRpbi5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bGFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQuYmluYXJ5Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsc2JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGVtcGxhdGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGx0bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVvdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWh0bWxoZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2htXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtaW1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaW1zXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtbHJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmFjdGl2ZXgreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNldGhlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0aG14XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtb3BlbnR5cGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLW91dGxvb2tcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wYWNrYWdlLm9iZnVzY2F0ZWQtb3BlbnR5cGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wa2kuc2VjY2F0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjYXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wa2kuc3RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wbGF5cmVhZHkuaW5pdGlhdG9yK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcHRcIiwgXCJwcHNcIiwgXCJwb3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LmFkZGluLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnByZXNlbnRhdGlvbi5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcHRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5zbGlkZS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbGRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5zbGlkZXNob3cubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHBzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQudGVtcGxhdGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG90bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXByaW50ZGV2aWNlY2FwYWJpbGl0aWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXByaW50aW5nLnByaW50dGlja2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJpbnRzY2hlbWF0aWNrZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJvamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wcFwiLCBcIm1wdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXRuZWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtdmlzaW8udmlld2VyXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy5kZXZpY2VwYWlyaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3MubndwcmludGluZy5vb2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy5wcmludGVycGFpcmluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLndzZC5vb2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubGljLWNobGctcmVxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLmxpYy1yZXNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLm1ldGVyLWNobGctcmVxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLm1ldGVyLXJlc3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd29yZC5kb2N1bWVudC5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkb2NtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd29yZC50ZW1wbGF0ZS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkb3RtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd29ya3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3cHNcIiwgXCJ3a3NcIiwgXCJ3Y21cIiwgXCJ3ZGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13cGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3cGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy14cHNkb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zYS1kaXNrLWltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2VxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXNncGFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tc2lnblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdWx0aWFkLmNyZWF0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXVsdGlhZC5jcmVhdG9yLmNpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdXNpYy1uaWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11c2ljaWFuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXV2ZWUuc3R5bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc3R5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXluZmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0YWdsZXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYWNhbWFyLnlicmlkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLmJpbmRpbmdkYXRhb2JqZWN0K2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmF0by5iaW5kaW5nZGF0YW9iamVjdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmF0by5iaW5kaW5nZGF0YW9iamVjdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hdG8ub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5pZXBkK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uY2QuY29udHJvbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uY2QucmVmZXJlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5lYXJzdC5pbnYranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5lYnVtaW5kLmxpbmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmVydmFuYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZXRmcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmV1cm9sYW5ndWFnZS5ubHVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubHVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uaW1uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5pbnRlbmRvLm5pdHJvLnJvbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uaW50ZW5kby5zbmVzLnJvbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uaXRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnRmXCIsIFwibml0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vYmxlbmV0LWRpcmVjdG9yeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5uZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vYmxlbmV0LXNlYWxlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5uc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vYmxlbmV0LXdlYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5ud1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmNhdGFsb2dzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmNvbm1sK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmNvbm1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmlwdHYuY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmlzZHMtcmFkaW8tcHJlc2V0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5sYW5kbWFyayt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5sYW5kbWFyayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5sYW5kbWFya2NvbGxlY3Rpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubi1nYWdlLmFjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2UuZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5nZGF0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubi1nYWdlLnN5bWJpYW4uaW5zdGFsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibi1nYWdlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubmNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnBjZCt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5wY2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucmFkaW8tcHJlc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnBzdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnJhZGlvLXByZXNldHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycHNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm92YWRpZ20uZWRtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm92YWRpZ20uZWR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm92YWRpZ20uZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXh0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLmNvbnRlbnQtc2hhcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLmZpbGUtdHJhbnNmZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLm9nd19yZW1vdGUtYWNjZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5zaXAtdGFfcmVtb3RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5zaXAtdGFfdGNwX3N0cmVhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYWkud29ya2Zsb3dzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9haS53b3JrZmxvd3MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9haS53b3JrZmxvd3MreWFtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuYmFzZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuY2hhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuY2hhcnQtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZGF0YWJhc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5mb3JtdWxhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmZvcm11bGEtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGZ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmdyYXBoaWNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmdyYXBoaWNzLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmltYWdlLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnByZXNlbnRhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5wcmVzZW50YXRpb24tdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LW1hc3RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LW1hc3Rlci10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LXdlYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90aFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9iblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vY2YrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vY2kuaW1hZ2UubWFuaWZlc3QudjEranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9mdG4ubDEwbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5jb250ZW50YWNjZXNzZG93bmxvYWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5jb250ZW50YWNjZXNzc3RyZWFtaW5nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuY3NwZy1oZXhiaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5kYWUuc3ZnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuZGFlLnhodG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYubWlwcHZjb250cm9sbWVzc2FnZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnBhZS5nZW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5zcGRpc2NvdmVyeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnNwZGxpc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi51ZXByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi51c2VycHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbHBjLXN1Z2FyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEtc2N3cy1jb25maWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLXNjd3MtaHR0cC1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS1zY3dzLWh0dHAtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LmFzc29jaWF0ZWQtcHJvY2VkdXJlLXBhcmFtZXRlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QuZHJtLXRyaWdnZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QuaW1kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5sdGttXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5ub3RpZmljYXRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnByb3Zpc2lvbmluZ3RyaWdnZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNnYm9vdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2dkZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2dkdVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2ltcGxlLXN5bWJvbC1jb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNtYXJ0Y2FyZC10cmlnZ2VyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNwcm92K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zdGttXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItYWRkcmVzcy1ib29rK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItZmVhdHVyZS1oYW5kbGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItcGNjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItc3Vicy1pbnZpdGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi11c2VyLXByZWZzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kY2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRjZGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRkMit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRkMlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kcm0ucmlzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZ3JvdXAtdXNhZ2UtbGlzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEubHdtMm0rY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEubHdtMm0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5sd20ybSt0bHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBhbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLmRldGFpbGVkLXByb2dyZXNzLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLmZpbmFsLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLmdyb3Vwcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLmludm9jYXRpb24tZGVzY3JpcHRvcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLm9wdGltaXplZC1wcm9ncmVzcy1yZXBvcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnB1c2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnNjaWRtLm1lc3NhZ2VzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS54Y2FwLWRpcmVjdG9yeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFkcy1lbWFpbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYWRzLWZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFkcy1mb2xkZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFsb2Mtc3VwbC1pbml0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGFtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhbXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YXRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGF0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbnZpZi5tZXRhZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuYmxveC5nYW1lK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2JneFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW5ibG94LmdhbWUtYmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW5leWUub2ViXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW5vZmZpY2VvcmcuZXh0ZW5zaW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJveHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuc3RyZWV0bWFwLmRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvc21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVudGltZXN0YW1wcy5vdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnZwaS5kc3B4K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b20tcHJvcGVydGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b214bWxwcm9wZXJ0aWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5jaGFydHNoYXBlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbWNvbG9ycyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1sYXlvdXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1zdHlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5leHRlbmRlZC1wcm9wZXJ0aWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLmNvbW1lbnRhdXRob3JzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLmNvbW1lbnRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLmhhbmRvdXRtYXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwubm90ZXNtYXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwubm90ZXNzbGlkZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcHR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uLm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc3Byb3BzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2xkeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlbGF5b3V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlbWFzdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlc2hvd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwc3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3cubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXVwZGF0ZWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGFibGVzdHlsZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGFncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBvdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50ZW1wbGF0ZS5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnZpZXdwcm9wcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNhbGNjaGFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNoYXJ0c2hlZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb21tZW50cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNvbm5lY3Rpb25zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuZGlhbG9nc2hlZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbGxpbmsreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdGNhY2hlZGVmaW5pdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Y2FjaGVyZWNvcmRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3R0YWJsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnF1ZXJ5dGFibGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbmhlYWRlcnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbmxvZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoYXJlZHN0cmluZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsc3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Lm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldG1ldGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc3R5bGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZXNpbmdsZWNlbGxzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50ZW1wbGF0ZS5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudXNlcm5hbWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudm9sYXRpbGVkZXBlbmRlbmNpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWVvdmVycmlkZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC52bWxkcmF3aW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuY29tbWVudHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50Lmdsb3NzYXJ5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmVuZG5vdGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZm9udHRhYmxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZm9vdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZm9vdG5vdGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwubnVtYmVyaW5nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuc2V0dGluZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5zdHlsZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnRlbXBsYXRlLm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC53ZWJzZXR0aW5ncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmNvcmUtcHJvcGVydGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmRpZ2l0YWwtc2lnbmF0dXJlLXhtbHNpZ25hdHVyZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0aW9uc2hpcHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3JhY2xlLnJlc291cmNlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcmFuZ2UuaW5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9zYS5uZXRkZXBsb3lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NnZW8ubWFwZ3VpZGUucGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ncFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9zZ2kuYnVuZGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9zZ2kuZHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9zZ2kuc3Vic3lzdGVtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXNhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3Rwcy5jdC1raXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3hsaS5jb3VudGdyYXBoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhZ2VyZHV0eStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGFsbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBkYlwiLCBcInBxYVwiLCBcIm9wcmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYW5vcGx5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhb3MueG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhdGVudGRpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGF0aWVudGVjb21tc2RvY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYXdhYWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwYXdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wY29zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBnLmZvcm1hdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0clwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBnLm9zYXNsaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVpNlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBpYWNjZXNzLmFwcGxpY2F0aW9uLWxpY2VuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGljc2VsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWZpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBtaS53aWRnZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvYy5ncm91cC1hZHZlcnRpc2VtZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvY2tldGxlYXJuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBiZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjYtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjctc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3NVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3NS1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByZW1pbmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByZXZpZXdzeXN0ZW1zLmJveFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJveFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByb2NyYXRlLmJydXNoc2V0XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnJ1c2hzZXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcm9jcmVhdGUuYnJ1c2hcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJicnVzaFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByb2NyZWF0ZS5kcmVhbVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByb3RldXMubWFnYXppbmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZ3pcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wc2ZzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnB0Lm11bmR1c211bmRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnB1Ymxpc2hhcmUtZGVsdGEtdHJlZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInFwc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnB2aS5wdGlkMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB0aWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wd2ctbXVsdGlwbGV4ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHdnLXhodG1sLXByaW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGh0bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnF1YWxjb21tLmJyZXctYXBwLXJlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5xdWFyYW50YWluZW5ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5xdWFyay5xdWFya3hwcmVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInF4ZFwiLCBcInF4dFwiLCBcInF3ZFwiLCBcInF3dFwiLCBcInF4bFwiLCBcInF4YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnF1b2JqZWN0LXF1b3hkb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1vbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQtY29uZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQtY29ubit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQtZGlhbG9nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1zdHJlYW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWNvbmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWJhc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1mYXgtZGV0ZWN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctZmF4LXNlbmRyZWN2K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctZ3JvdXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1zcGVlY2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy10cmFuc2Zvcm0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFpbnN0b3IuZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYXBpZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZWFsdm5jLmJlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJlZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlY29yZGFyZS5tdXNpY3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlY29yZGFyZS5tdXNpY3htbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm11c2ljeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVscGlwZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZW5sZWFybi5ybHByaW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlc2lsaWVudC5sb2dpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZXN0ZnVsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yaWcuY3J5cHRvbm90ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNyeXB0b25vdGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yaW0uY29kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjb2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ybi1yZWFsbWVkaWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucm4tcmVhbG1lZGlhLXZiclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm12YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJvdXRlNjYubGluazY2K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGluazY2XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucnMtMjc0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ydWNrdXMuZG93bmxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuczNzbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2FpbGluZ3RyYWNrZXIudHJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zYm0uY2lkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNibS5taWQyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNjcmlidXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLjNkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuY3NmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5kb2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLmVtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQubWh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5uZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLnBwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQudGlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQueGxzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLmh0bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwucGRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlZW1haWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZWVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWlzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VtYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlbWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW1kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFkZS1zYXZlLWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuZm9ybWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5mb3JtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpdHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5pbnRlcmNoYW5nZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLnBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaG9vdHByb29mK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaG9wa2ljaytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaWdyb2suc2Vzc2lvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaW10ZWNoLW1pbmRtYXBwZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0d2RcIiwgXCJ0d2RzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2lyZW4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNrZXRjaG9tZXRyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW1mXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc21hcnQubm90ZWJvb2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc21hcnQudGVhY2hlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRlYWNoZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zbWludGlvLnBvcnRhbHMuYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zbmVzZGV2LXBhZ2UtdGFibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc29mdHdhcmU2MDIuZmlsbGVyLmZvcm0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNvZnR3YXJlNjAyLmZpbGxlci5mb3JtLXhtbC16aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc29sZW50LnNka20reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZGttXCIsIFwic2RrZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNwb3RmaXJlLmR4cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR4cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNwb3RmaXJlLnNmc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNmc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNxbGl0ZTNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3NzLWNvZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zc3MtZHRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNzcy1udGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmNhbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5kcmF3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uaW1wcmVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLm1hdGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi53cml0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkd1wiLCBcInZvclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi53cml0ZXItZ2xvYmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZ2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGVwbWFuaWEucGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNtemlwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RlcG1hbmlhLnN0ZXBjaGFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RyZWV0LXN0cmVhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ud2FkbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhZGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmNhbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuY2FsYy50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5kcmF3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmRyYXcudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuaW1wcmVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3hpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5pbXByZXNzLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLm1hdGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwud3JpdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeHdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlci5nbG9iYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwud3JpdGVyLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdXMtY2FsZW5kYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdXNcIiwgXCJzdXNwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3ZkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ZkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3dpZnR2aWV3LWljc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeWJ5bC5tb2wyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5Y2xlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5ZnQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bWJpYW4uaW5zdGFsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2lzXCIsIFwic2lzeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbS5ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtZGRmK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbWRkZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtdG5kcyt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG10bmRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRzLm5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50YWJsZXNjaGVtYStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudGFvLmludGVudC1tb2R1bGUtYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRhb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRjcGR1bXAucGNhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjYXBcIiwgXCJjYXBcIiwgXCJkbXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50aGluay1jZWxsLnBwdHRjK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50bWQubWVkaWFmbGV4LmFwaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudG1vYmlsZS1saXZldHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0bW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cmkub25lc291cmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRyaWQudHB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHB0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJpc2NhcGUubXhzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJ1ZWFwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRyYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRydWVkb2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudWJpc29mdC53ZWJwbGF5ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudWZkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVmZFwiLCBcInVmZGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51aWMub3NkbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudWlxLnRoZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXR6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudW1hamluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widW1qXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudW5pdHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1bml0eXdlYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVvbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1b21sXCIsIFwidW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmFsZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuYWxlcnQtd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5iZWFyZXItY2hvaWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuYmVhcmVyLWNob2ljZS13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNhY2hlb3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jYWNoZW9wLXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2hhbm5lbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNoYW5uZWwtd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3RjbWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0Y21kLXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuc2lnbmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVyaS1tYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmFsdmUuc291cmNlLm1hdGVyaWFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZjeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZkLXN0dWR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlY3RvcndvcmtzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyYWlzb24udHNtLXJlcG9ydCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcmFpc29uLnRzbS1yZXBvcnQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcmltYXRyaXgudmNhc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJpdG9uZS5haW9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJ5YW50LnRoaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVzLmVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52aWRzb2Z0LnZpZGNvbmZlcmVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmlzaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2c2RcIiwgXCJ2c3RcIiwgXCJ2c3NcIiwgXCJ2c3dcIiwgXCJ2c2R4XCIsIFwidnR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmlzaW9uYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmlzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudml2aWRlbmNlLnNjcmlwdGZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudm9jYWxzaGFwZXIudnNwNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52c2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2c2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAuc2ljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhcC5zbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLndieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YnhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhcC53bWxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21sY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhcC53bWxzY3JpcHRjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21sc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXNtZmxvdy53YWZsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndlYnR1cmJvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3RiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2ZhLmRwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53ZmEucDJwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndmYS53c2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2luZG93cy5kZXZpY2VwYWlyaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndtY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53bWYuYm9vdHN0cmFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvbGZyYW0ubWF0aGVtYXRpY2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud29sZnJhbS5tYXRoZW1hdGljYS5wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvbGZyYW0ucGxheWVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmJwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud29yZGxpZnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud29yZHBlcmZlY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3cGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53cWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3cWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53cnEtaHAzMDAwLWxhYmVsbGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnd0LnN0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnd2LmNzcCt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53di5jc3AreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3Yuc3NwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhhY21sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54YXJhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGFyaW4uY3BqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhlY3JldHMtZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhmZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZmRsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGZkbC53ZWJmb3JtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5jcGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLmRwa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUucGxhblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5wcGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLnhsaW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LWRpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh2ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5odi1zY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtdm9pY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEub3BlbnNjb3JlZm9ybWF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3NmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLm9wZW5zY29yZWZvcm1hdC5vc2ZwdmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvc2ZwdmdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEucmVtb3RlLXNldHVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5zbWFmLWF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2FmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnNtYWYtcGhyYXNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnRocm91Z2gtbmduXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS50dW5uZWwtdWRwZW5jYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFvd2VtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55ZWxsb3dyaXZlci1jdXN0b20tbWVudVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnp1bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInppclwiLCBcInppcnpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC56emF6ei5kZWNrK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiemF6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92b2ljZXhtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZ4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZvdWNoZXItY21zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZvdWNoZXItandzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdnArY29zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZwK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZxLXJ0Y3B4clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dhc21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhc21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dhdGNoZXJpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2lmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93ZWJwdXNoLW9wdGlvbnMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2hvaXNwcC1xdWVyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dob2lzcHAtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aWRnZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3Z3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dpbmhscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGxwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd29yZHBlcmZlY3Q1LjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93c2RsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3NkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd3Nwb2xpY3kreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3c3BvbGljeVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC03ei1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCI3elwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hYml3b3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhYndcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYWNlLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFjZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYXBwbGUtZGlza2ltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkbWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYXJqXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXJqXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtYmluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhYWJcIiwgXCJ4MzJcIiwgXCJ1MzJcIiwgXCJ2b3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1tYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hdXRob3J3YXJlLXNlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWFzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJjcGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiY3Bpb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iZG9jXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRvY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iaXR0b3JyZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0b3JyZW50XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJsZW5kZXJcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJibGVuZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ibG9yYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmxiXCIsIFwiYmxvcmJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYnppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYnppcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJ6MlwiLCBcImJvelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jYnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNiclwiLCBcImNiYVwiLCBcImNidFwiLCBcImNielwiLCBcImNiN1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jZGxpbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jZnMtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2ZzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNoYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNoYXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2hlc3MtcGduXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZ25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2hyb21lLWV4dGVuc2lvblwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNyeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jb2NvYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjY29cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY29tcHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jb25mZXJlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY3Bpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3Bpb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzaFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kZWJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRlYmlhbi1wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZWJcIiwgXCJ1ZGViXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRnYy1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZ2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZGlyZWN0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRpclwiLCBcImRjclwiLCBcImR4clwiLCBcImNzdFwiLCBcImNjdFwiLCBcImN4dFwiLCBcInczZFwiLCBcImZnZFwiLCBcInN3YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kb29tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZHRibmN4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZHRib29rK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZHRicmVzb3VyY2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kdmlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR2aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1lbnZveVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXZ5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWV2YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXZhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtYmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1kb3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1mcmFtZW1ha2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtZ2hvc3RzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWxpYmdyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWxpbnV4LXBzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtcGNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1zbmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNuZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXNwZWVkb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXN1bm9zLW5ld3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC10eXBlMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGZhXCIsIFwicGZiXCIsIFwicGZtXCIsIFwiYWZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtdmZvbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZnJlZWFyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXJjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZ1dHVyZXNwbGFzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWdjYS1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnY2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ2x1bHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVseFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1nbnVtZXJpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ251bWVyaWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ3JhbXBzLXhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3JhbXBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWd0YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd0YXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1oZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1odHRwZC1waHBcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBocFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pbnN0YWxsLWluc3RydWN0aW9uc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaW5zdGFsbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pcHluYitqc29uXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcHluYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pc285NjYwLWltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpc29cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXdvcmsta2V5bm90ZS1zZmZrZXlcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJrZXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXdvcmstbnVtYmVycy1zZmZudW1iZXJzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnVtYmVyc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pd29yay1wYWdlcy1zZmZwYWdlc1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBhZ2VzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWphdmEtYXJjaGl2ZS1kaWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphcmRpZmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtamF2YS1qbmxwLWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpubHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1rZWVwYXNzMlwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtkYnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbGF0ZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxhdGV4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWx1YS1ieXRlY29kZVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx1YWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbHpoLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx6aFwiLCBcImxoYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tYWtlc2VsZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydW5cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbWllXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtaWVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbW9iaXBvY2tldC1lYm9va1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJjXCIsIFwibW9iaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcGVndXJsXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcy1hcHBsaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBwbGljYXRpb25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMtc2hvcnRjdXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxua1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcy13bWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcy13bXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcy14YmFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YmFwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zYWNjZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNiaW5kZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9iZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2NhcmRmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNjbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNkb3MtcHJvZ3JhbVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4ZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2Rvd25sb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleGVcIiwgXCJkbGxcIiwgXCJjb21cIiwgXCJiYXRcIiwgXCJtc2lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNtZWRpYXZpZXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm12YlwiLCBcIm0xM1wiLCBcIm0xNFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc21ldGFmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWZcIiwgXCJ3bXpcIiwgXCJlbWZcIiwgXCJlbXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNtb25leVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW55XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zcHVibGlzaGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwdWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNzY2hlZHVsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2NkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zdGVybWluYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc3dyaXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3cmlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbmV0Y2RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuY1wiLCBcImNkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ucy1wcm94eS1hdXRvY29uZmlnXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbnpiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuemJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGVybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbFwiLCBcInBtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBpbG90XCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByY1wiLCBcInBkYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1wa2NzMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInAxMlwiLCBcInBmeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1wa2NzNy1jZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInA3YlwiLCBcInNwY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1wa2NzNy1jZXJ0cmVxcmVzcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDdyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBraS1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1yYXItY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXJlZGhhdC1wYWNrYWdlLW1hbmFnZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnBtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXJlc2VhcmNoLWluZm8tc3lzdGVtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmlzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNlYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2hhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2hhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN3ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zaWx2ZXJsaWdodC1hcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhhcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zcWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNxbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdHVmZml0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3R1ZmZpdHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3VicmlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3Y0Y3Bpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3Y0Y3Bpb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdjRjcmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2NGNyY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10M3ZtLWltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0M1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10YWRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10Y2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRjbFwiLCBcInRrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGV4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRleC10Zm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRmbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10ZXhpbmZvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZXhpbmZvXCIsIFwidGV4aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10Z2lmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYmpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdXN0YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVzdGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtaGRkXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1vdmFcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm92YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LW92ZlwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3ZmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmJveFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmJveFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZib3gtZXh0cGFja1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZib3gtZXh0cGFja1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZkaVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmRpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmhkXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2aGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12bWRrXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2bWRrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXdhaXMtc291cmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtd2ViLWFwcC1tYW5pZmVzdCtqc29uXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJhcHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14NTA5LWNhLWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZXJcIiwgXCJjcnRcIiwgXCJwZW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteDUwOS1jYS1yYS1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14NTA5LW5leHQtY2EtY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteGZpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmlnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXhsaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteHBpbnN0YWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteHpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInh6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXppcC1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiemlwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXptYWNoaW5lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6MVwiLCBcInoyXCIsIFwiejNcIiwgXCJ6NFwiLCBcIno1XCIsIFwiejZcIiwgXCJ6N1wiLCBcIno4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94NDAwLWJwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGFjbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94YW1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWF0dCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhhdlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1jYXBzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGNhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWRpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtZWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtZXJyb3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLW5zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG5zXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y29uLWNvbmZlcmVuY2UtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjb24tY29uZmVyZW5jZS1pbmZvLWRpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94ZW5jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGVuY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGZkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhmZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hodG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGh0bWxcIiwgXCJ4aHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hodG1sLXZvaWNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bWxcIiwgXCJ4c2xcIiwgXCJ4c2RcIiwgXCJybmdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htbC1kdGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR0ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1sLWV4dGVybmFsLXBhcnNlZC1lbnRpdHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bWwtcGF0Y2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bXBwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG9wK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG9wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94cHJvYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHBsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94c2x0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHNsXCIsIFwieHNsdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veHNwZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHNwZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veHYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteG1sXCIsIFwieGh2bWxcIiwgXCJ4dm1sXCIsIFwieHZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInlhbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctZGF0YStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1kYXRhK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctcGF0Y2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1wYXRjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctc2lkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInlpblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiemlwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi96aXArZG90bG90dGllXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibG90dGllXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi96bGliXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24venN0ZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvLzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvLzMya2FkcGNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vM2dwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNncHBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvLzNncHAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYWFjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWR0c1wiLCBcImFhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYWMzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYWRwY21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFkcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYW1yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYW1yXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hbXItd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hbXItd2IrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXB0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FzY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2F0cmFjLWFkdmFuY2VkLWxvc3NsZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXRyYWMteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2F0cmFjM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Jhc2ljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXVcIiwgXCJzbmRcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2J2MTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9idjMyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vY2xlYXJtb2RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vY25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kYXQxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Rsc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Rzci1lczIwMTEwOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Rzci1lczIwMjA1MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Rzci1lczIwMjIxMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Rzci1lczIwMjIxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2R2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHZpNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2VhYzNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9lbmNhcHJ0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjLXFjcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmMwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyYzFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNiMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNiMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNud1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNudzBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjbncxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY3diXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY3diMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmN3YjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9mbGFjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZmxleGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Z3ZHJlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MTEtMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MTlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzIyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyMjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzIzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyNi0xNlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjYtMjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI2LTMyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyNi00MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOTFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI5ZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjllXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZ3NtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZ3NtLWVmclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2dzbS1oci0wOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2lsYmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9pcC1tcl92Mi41XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vaXNhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbDE2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbDIwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbDI0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbDhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9scGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tYXRyb3NrYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21lbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tZWxwMTIwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21lbHAyNDAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWVscDYwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21oYXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9taWRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtaWRcIiwgXCJtaWRpXCIsIFwia2FyXCIsIFwicm1pXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9taWRpLWNsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tb2JpbGUteG1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXAzXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXAzXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtNGFcIiwgXCJtcDRhXCIsIFwibTRiXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcDRhLWxhdG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcGEtcm9idXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wZ2FcIiwgXCJtcDJcIiwgXCJtcDJhXCIsIFwibXAzXCIsIFwibTJhXCIsIFwibTNhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcGVnNC1nZW5lcmljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXVzZXBhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL29nZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9nYVwiLCBcIm9nZ1wiLCBcInNweFwiLCBcIm9wdXNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL29wdXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wY21hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGNtYS13YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3BjbXVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wY211LXdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcHJzLnNpZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3FjZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcmFwdG9yZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcnRwLWVuYy1hZXNjbTEyOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3J0cC1taWRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcnRwbG9vcGJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ydHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zM21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInMzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc2NpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NpbGtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc212XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc212LXFjcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NtdjBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zb2ZhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc3AtbWlkaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NwZWV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdDE0MGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90MzhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90ZWxlcGhvbmUtZXZlbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90ZXRyYV9hY2VscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RldHJhX2FjZWxwX2JiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdG9uZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RzdmNpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3VlbWNsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby91bHBmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby91c2FjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdmR2aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3Ztci13YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC4zZ3BwLml1ZnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuNHNiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmF1ZGlva296XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY2lzY28ubnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNtbGVzLnJhZGlvLWV2ZW50c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jbnMuYW5wMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jbnMuaW5mMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kZWNlLmF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZhXCIsIFwidXZ2YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRpZ2l0YWwtd2luZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlb2xcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kbG5hLmFkdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkuaGVhYWMuMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5oZWFhYy4yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5Lm1scFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5tcHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkucGwyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LnBsMnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkucGwyelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5wdWxzZS4xXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRyYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRyYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmR0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR0c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmR0cy5oZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR0c2hkXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHRzLnVoZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kdmIuZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5ldmVyYWQucGxqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmhucy5hdWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5sdWNlbnQudm9pY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsdnBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5tcy1wbGF5cmVhZHkubWVkaWEucHlhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHlhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubm9raWEubW9iaWxlLXhtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5ub3J0ZWwudmJrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm51ZXJhLmVjZWxwNDgwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVjZWxwNDgwMFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm51ZXJhLmVjZWxwNzQ3MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVjZWxwNzQ3MFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm51ZXJhLmVjZWxwOTYwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVjZWxwOTYwMFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm9jdGVsLnNiY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5wcmVzb251cy5tdWx0aXRyYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnFjZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQucmhldG9yZXguMzJrYWRwY21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQucmlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmlwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQucm4tcmVhbGF1ZGlvXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLm1wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQudm14LmN2c2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQud2F2ZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZvcmJpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZvcmJpcy1jb25maWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby93YXZcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YXZcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3dhdmVcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YXZcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3dlYm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtYWFjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtYWlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWlmXCIsIFwiYWlmZlwiLCBcImFpZmNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtY2FmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjYWZcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtZmxhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmxhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tNGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTRhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LW1hdHJvc2thXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJta2FcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbXBlZ3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTN1XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LW1zLXdheFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2F4XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LW1zLXdtYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21hXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXBuLXJlYWxhdWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFtXCIsIFwicmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtcG4tcmVhbGF1ZGlvLXBsdWdpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm1wXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXJlYWxhdWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC10dGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtd2F2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YXZcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3htXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bVwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1jZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkeFwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1jaWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1jbWRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbWRmXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY21sXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNzbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtcGRiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LXh5elwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHl6XCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L2NvbGxlY3Rpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0dGNcIl1cbiAgICAgIH0sXG4gICAgICBcImZvbnQvb3RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGZcIl1cbiAgICAgIH0sXG4gICAgICBcImZvbnQvc2ZudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImZvbnQvdHRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0dGZcIl1cbiAgICAgIH0sXG4gICAgICBcImZvbnQvd29mZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndvZmZcIl1cbiAgICAgIH0sXG4gICAgICBcImZvbnQvd29mZjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3b2ZmMlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYWNlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4clwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYXBuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2F2Y2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdmNpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hdmNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXZjc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYXZpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF2aWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2JtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm1wXCIsIFwiZGliXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9jZ21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZ21cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2RpY29tLXJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRybGVcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2RweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRweFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZW1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW1mXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9maXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZml0c1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZzNmYXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnM1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZ2lmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2lmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9oZWljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVpY1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVpYy1zZXF1ZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlaWNzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9oZWlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVpZi1zZXF1ZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlaWZzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9oZWoya1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlajJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2llZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImllZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvajJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvamFpaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphaWlcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2phaXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYWlzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qbHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqbHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwMlwiLCBcImpwZzJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pwZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcGdcIiwgXCJqcGVnXCIsIFwianBlXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcGhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pwaGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqaGNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pwbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwbVwiLCBcImpwZ21cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpweFwiLCBcImpwZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhsXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4cmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHJhXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhyc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHNjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhzaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4c2lcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4c3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHNzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9rdHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2t0eDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrdHgyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9uYXBscHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9wanBlZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpmaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3BuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcHJzLmJ0aWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJidGlmXCIsIFwiYnRmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9wcnMucHRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHRpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9wd2ctcmFzdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvc2dpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZ2lcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3N2Zyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2Z1wiLCBcInN2Z3pcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3QzOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInQzOFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvdGlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRpZlwiLCBcInRpZmZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3RpZmYtZnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZnhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5hZG9iZS5waG90b3Nob3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmFpcnppcC5hY2NlbGVyYXRvci5henZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhenZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5jbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmNucy5pbmYyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmRlY2UuZ3JhcGhpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2aVwiLCBcInV2dmlcIiwgXCJ1dmdcIiwgXCJ1dnZnXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZGp2dVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRqdnVcIiwgXCJkanZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5kdmIuc3VidGl0bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdWJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5kd2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkd2dcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5keGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkeGZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5mYXN0Ymlkc2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmYnNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5mcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmcHhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5mc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmc3RcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5mdWppeGVyb3guZWRtaWNzLW1tclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1tclwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZ1aml4ZXJveC5lZG1pY3MtcmxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmxjXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZ2xvYmFsZ3JhcGhpY3MucGdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY29cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5taXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubW96aWxsYS5hcG5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1zLWRkc1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGRzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubXMtbW9kaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1kaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1zLXBob3RvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5uZXQtZnB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnB4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQucGNvLmIxNlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImIxNlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnJhZGlhbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnNlYWxlZC5wbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwuZ2lmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLmpwZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5zdmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQudGVuY2VudC50YXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0YXBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC52YWx2ZS5zb3VyY2UudGV4dHVyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZ0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLndhcC53Ym1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2JtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnhpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4aWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC56YnJ1c2gucGN4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGN4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS93ZWJwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2VicFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvd21mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21mXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LTNkc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2RzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWFkb2JlLWRuZ1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1jbXUtcmFzdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtY214XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbXhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtZW1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1mcmVlaGFuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmhcIiwgXCJmaGNcIiwgXCJmaDRcIiwgXCJmaDVcIiwgXCJmaDdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtaWNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY29cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtam5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1tcnNpZC1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2lkXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LW1zLWJtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wY3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjeFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1waWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwaWNcIiwgXCJwY3RcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcG9ydGFibGUtYW55bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbm1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcG9ydGFibGUtYml0bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwYm1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcG9ydGFibGUtZ3JheW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGdtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBvcnRhYmxlLXBpeG1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHBtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXJnYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmdiXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXRnYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGdhXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXdtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gteGJpdG1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGJtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXhjZlwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gteHBpeG1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHBtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXh3aW5kb3dkdW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4d2RcIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvYmh0dHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2NwaW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2RlbGl2ZXJ5LXN0YXR1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZGlzcG9zaXRpb24tbm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1xuICAgICAgICAgIFwiZGlzcG9zaXRpb24tbm90aWZpY2F0aW9uXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9leHRlcm5hbC1ib2R5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9mZWVkYmFjay1yZXBvcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2dsb2JhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInU4bXNnXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2dsb2JhbC1kZWxpdmVyeS1zdGF0dXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1OGRzblwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9nbG9iYWwtZGlzcG9zaXRpb24tbm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widThtZG5cIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZ2xvYmFsLWhlYWRlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1OGhkclwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9odHRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9pbWRuK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9tbHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL25ld3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvb2h0dHAtcmVxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9vaHR0cC1yZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3BhcnRpYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3JmYzgyMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW1sXCIsIFwibWltZVwiLCBcIm1odFwiLCBcIm1odG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3MtaHR0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9zaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3NpcGZyYWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3RyYWNraW5nLXN0YXR1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvdm5kLnNpLnNpbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvdm5kLndmYS53c2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3c2NcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsLzNtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNtZlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvZTU3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvZ2x0Zitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbHRmXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9nbHRmLWJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2xiXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9pZ2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWdzXCIsIFwiaWdlc1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvanRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqdFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvbWVzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zaFwiLCBcIm1lc2hcIiwgXCJzaWxvXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9tdGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdGxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL29ialwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9ialwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvcHJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJjXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9zdGVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RlcFwiLCBcInN0cFwiLCBcInN0cG5jXCIsIFwicDIxXCIsIFwiMjEwXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9zdGVwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RweFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RlcCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHB6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9zdGVwLXhtbCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHB4elwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RsXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC91M2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1M2RcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5iYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmFyeVwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmNsZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsZFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmNvbGxhZGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYWVcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5kd2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkd2ZcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5mbGF0bGFuZC4zZG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmdkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdkbFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmdzLWdkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmdzLmdkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5ndHdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJndHdcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5tb21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLm10c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm10c1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLm9wZW5nZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZ2V4XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQucGFyYXNvbGlkLnRyYW5zbWl0LmJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhfYlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnBhcmFzb2xpZC50cmFuc21pdC50ZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieF90XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQucHl0aGEucHlveFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB5b1wiLCBcInB5b3hcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5yb3NldHRlLmFubm90YXRlZC1kYXRhLW1vZGVsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnNhcC52ZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2ZHNcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC51c2RhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXNkYVwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnVzZHoremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXNkelwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnZhbHZlLnNvdXJjZS5jb21waWxlZC1tYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJic3BcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC52dHVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2dHVcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZybWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3cmxcIiwgXCJ2cm1sXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QrYmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2RiXCIsIFwieDNkYnpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3gzZCtmYXN0aW5mb3NldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZGJcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3gzZCt2cm1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2R2XCIsIFwieDNkdnpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3gzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZFwiLCBcIngzZHpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3gzZC12cm1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkdlwiXVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2FsdGVybmF0aXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2FwcGxlZG91YmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2J5dGVyYW5nZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvZGlnZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2VuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9mb3JtLWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvaGVhZGVyLXNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9taXhlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9tdWx0aWxpbmd1YWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvcGFyYWxsZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvcmVsYXRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9yZXBvcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvc2lnbmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3ZuZC5iaW50Lm1lZC1wbHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3ZvaWNlLW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQveC1taXhlZC1yZXBsYWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NhY2hlLW1hbmlmZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHBjYWNoZVwiLCBcIm1hbmlmZXN0XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NhbGVuZGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNzXCIsIFwiaWZiXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NhbGVuZGVyXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NtZFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jb2ZmZWVzY3JpcHRcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJjb2ZmZWVcIiwgXCJsaXRjb2ZmZWVcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvY3FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jcWwtZXhwcmVzc2lvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvY3FsLWlkZW50aWZpZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2Nzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvY3N2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvY3N2LXNjaGVtYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZGlyZWN0b3J5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9kbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2VjbWFzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZW5jYXBydHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2VucmljaGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9maGlycGF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZmxleGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZndkcmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9nZmYzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9ncmFtbWFyLXJlZi1saXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9obDd2MlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvaHRtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHRtbFwiLCBcImh0bVwiLCBcInNodG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2phZGVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJqYWRlXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2phdmFzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNcIiwgXCJtanNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvamNyLWNuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvanN4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc3hcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbGVzc1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGVzc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9tYXJrZG93blwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWRcIiwgXCJtYXJrZG93blwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9tYXRobWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L21keFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWR4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L21pemFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9uM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuM1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcGxhaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR4dFwiLCBcInRleHRcIiwgXCJjb25mXCIsIFwiZGVmXCIsIFwibGlzdFwiLCBcImxvZ1wiLCBcImluXCIsIFwiaW5pXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Byb3ZlbmFuY2Utbm90YXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcHJzLmZhbGxlbnN0ZWluLnJzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcHJzLmxpbmVzLnRhZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRzY1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcnMucHJvcC5sb2dpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcHJzLnRleGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3JhcHRvcmZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9yZmM4MjItaGVhZGVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcmljaHRleHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJ0eFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9ydGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJ0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9ydHAtZW5jLWFlc2NtMTI4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9ydHBsb29wYmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcnR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zZ21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2dtbFwiLCBcInNnbVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zaGFjbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3NoZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaGV4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3NsaW1cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJzbGltXCIsIFwic2xtXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3NwZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcGR4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3N0cmluZ3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3N0eWx1c1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0eWx1c1wiLCBcInN0eWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdDE0MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdGFiLXNlcGFyYXRlZC12YWx1ZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRzdlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC90cm9mZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRcIiwgXCJ0clwiLCBcInJvZmZcIiwgXCJtYW5cIiwgXCJtZVwiLCBcIm1zXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3R1cnRsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHRsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3VscGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdXJpLWxpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVyaVwiLCBcInVyaXNcIiwgXCJ1cmxzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZjYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y2FyZFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmFiY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmFzY2lpLWFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5jdXJsLmRjdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuY3VybC5tY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWN1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmN1cmwuc2N1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5kZWJpYW4uY29weXJpZ2h0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5kbWNsaWVudHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmR2Yi5zdWJ0aXRsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN1YlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZXNtZXJ0ZWMudGhlbWUtZGVzY3JpcHRvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZXhjaGFuZ2VhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZmFtaWx5c2VhcmNoLmdlZGNvbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdlZFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZmljbGFiLmZsdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmZseVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZseVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZm1pLmZsZXhzdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmx4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5nbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5ncmFwaHZpelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd2XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5oYW5zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaGdsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaW4zZC4zZG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2RtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaW4zZC5zcG90XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BvdFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaXB0Yy5uZXdzbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5pcHRjLm5pdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5sYXRleC16XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQubW90b3JvbGEucmVmbGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQubXMtbWVkaWFwYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQubmV0MnBob25lLmNvbW1jZW50ZXIuY29tbWFuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnJhZGlzeXMubXNtbC1iYXNpYy1sYXlvdXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5zZW54LndhcnBzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5zaS51cmljYXRhbG9ndWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnNvc2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5zdW4uajJtZS5hcHAtZGVzY3JpcHRvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFkXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC50cm9sbHRlY2gubGluZ3Vpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnZjZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLndhcC5zaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLndhcC5zbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLndhcC53bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLndhcC53bWxzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWxzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC56b28ua2NsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92dHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnR0XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3dnc2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3Z3NsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtYXNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzXCIsIFwiYXNtXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY1wiLCBcImNjXCIsIFwiY3h4XCIsIFwiY3BwXCIsIFwiaFwiLCBcImhoXCIsIFwiZGljXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtY29tcG9uZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWZvcnRyYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZcIiwgXCJmb3JcIiwgXCJmNzdcIiwgXCJmOTBcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1nd3QtcnBjXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtaGFuZGxlYmFycy10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhic1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWphdmEtc291cmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYXZhXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtanF1ZXJ5LXRtcGxcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInRleHQveC1sdWFcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJsdWFcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1tYXJrZG93blwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWtkXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtbmZvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuZm9cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1vcG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvcG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtb3JnXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvcmdcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1wYXNjYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBcIiwgXCJwYXNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1wcm9jZXNzaW5nXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZGVcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zYXNzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2Fzc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXNjc3NcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJzY3NzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc2V0ZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJldHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zZnZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNmdlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXN1c2UteW1wXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ5bXBcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC11dWVuY29kZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXVcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC12Y2FsZW5kYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXZjYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y2ZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveG1sLWV4dGVybmFsLXBhcnNlZC1lbnRpdHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3lhbWxcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInlhbWxcIiwgXCJ5bWxcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvLzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvLzNncHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZ3BcIiwgXCIzZ3BwXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby8zZ3BwLXR0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vM2dwcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZzJcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2F2MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2JtcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vYnQ2NTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9jZWxiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9lbmNhcHJ0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2V2Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2ZmdjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9mbGV4ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImgyNjFcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoMjYzXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjYzLTE5OThcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjYzLTIwMDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaDI2NFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2NC1yY2RvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2NC1zdmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2NlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2lzby5zZWdtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTRzXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9qcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBndlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vanBlZzIwMDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9qcG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwbVwiLCBcImpwZ21cIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2p4c3ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9sb3R0aWUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbWF0cm9za2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tYXRyb3NrYS0zZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21qMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1qMlwiLCBcIm1qcDJcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wMXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDJwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXAydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRzXCIsIFwibTJ0XCIsIFwibTJ0c1wiLCBcIm10c1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXA0XCIsIFwibXA0dlwiLCBcIm1wZzRcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wNHYtZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBlZ1wiLCBcIm1wZ1wiLCBcIm1wZVwiLCBcIm0xdlwiLCBcIm0ydlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXBlZzQtZ2VuZXJpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL252XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vb2dnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2d2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9wb2ludGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcXVpY2t0aW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicXRcIiwgXCJtb3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3JhcHRvcmZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3Jhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3J0cC1lbmMtYWVzY20xMjhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ydHBsb29wYmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3J0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3NjaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9zbXB0ZTI5MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3NtcHRlMjkybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3VscGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZjMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZjMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5jY3R2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UuaGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dmhcIiwgXCJ1dnZoXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS5tb2JpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dm1cIiwgXCJ1dnZtXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS5tcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS5wZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2cFwiLCBcInV2dnBcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLnNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZzXCIsIFwidXZ2c1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UudmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnZcIiwgXCJ1dnZ2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGlyZWN0di5tcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRpcmVjdHYubXBlZy10dHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGxuYS5tcGVnLXR0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kdmIuZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR2YlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmZ2dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ2dFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmhucy52aWRlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0uMWRwYXJpdHlmZWMtMTAxMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0uMWRwYXJpdHlmZWMtMjAwNVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0uMmRwYXJpdHlmZWMtMTAxMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0uMmRwYXJpdHlmZWMtMjAwNVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0udHRzYXZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS50dHNtcGVnMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5tb3Rvcm9sYS52aWRlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5tb3Rvcm9sYS52aWRlb3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubXBlZ3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14dVwiLCBcIm00dVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm1zLXBsYXlyZWFkeS5tZWRpYS5weXZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJweXZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5ub2tpYS5pbnRlcmxlYXZlZC1tdWx0aW1lZGlhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm5va2lhLm1wNHZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm5va2lhLnZpZGVvdm9pcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5vYmplY3R2aWRlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5wbGFuYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQucmFkZ2FtZXR0b29scy5iaW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnJhZGdhbWV0dG9vbHMuc21hY2tlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnNlYWxlZC5tcGVnMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5zZWFsZWQubXBlZzRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuc2VhbGVkLnN3ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5tb3ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQudXZ2dS5tcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnVcIiwgXCJ1dnZ1XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQudml2b1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZpdlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnlvdXR1YmUueXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92cDhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92cDlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby93ZWJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJtXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LWY0dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZjR2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LWZsaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmxpXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LWZsdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmx2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW00dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTR2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1hdHJvc2thXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJta3ZcIiwgXCJtazNkXCIsIFwibWtzXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1uZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW5nXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLWFzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXNmXCIsIFwiYXN4XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXZvYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widm9iXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXdtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy13bXZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtdlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy13bXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndteFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy13dnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInd2eFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tc3ZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdmlcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtc2dpLW1vdmllXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtb3ZpZVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1zbXZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNtdlwiXVxuICAgICAgfSxcbiAgICAgIFwieC1jb25mZXJlbmNlL3gtY29vbHRhbGtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljZVwiXVxuICAgICAgfSxcbiAgICAgIFwieC1zaGFkZXIveC1mcmFnbWVudFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwieC1zaGFkZXIveC12ZXJ0ZXhcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH1cbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NlbmQvbm9kZV9tb2R1bGVzL21pbWUtZGIvaW5kZXguanNcbnZhciByZXF1aXJlX21pbWVfZGI0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NlbmQvbm9kZV9tb2R1bGVzL21pbWUtZGIvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHJlcXVpcmVfZGI0KCk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvc2VuZC9ub2RlX21vZHVsZXMvbWltZS10eXBlcy9taW1lU2NvcmUuanNcbnZhciByZXF1aXJlX21pbWVTY29yZTQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc2VuZC9ub2RlX21vZHVsZXMvbWltZS10eXBlcy9taW1lU2NvcmUuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIHZhciBGQUNFVF9TQ09SRVMgPSB7XG4gICAgICBcInBycy5cIjogMTAwLFxuICAgICAgXCJ4LVwiOiAyMDAsXG4gICAgICBcInguXCI6IDMwMCxcbiAgICAgIFwidm5kLlwiOiA0MDAsXG4gICAgICBkZWZhdWx0OiA5MDBcbiAgICB9O1xuICAgIHZhciBTT1VSQ0VfU0NPUkVTID0ge1xuICAgICAgbmdpbng6IDEwLFxuICAgICAgYXBhY2hlOiAyMCxcbiAgICAgIGlhbmE6IDQwLFxuICAgICAgZGVmYXVsdDogMzBcbiAgICAgIC8vIGRlZmluaXRpb25zIGFkZGVkIGJ5IGBqc2h0dHAvbWltZS1kYmAgcHJvamVjdD9cbiAgICB9O1xuICAgIHZhciBUWVBFX1NDT1JFUyA9IHtcbiAgICAgIC8vIHByZWZlciBhcHBsaWNhdGlvbi94bWwgb3ZlciB0ZXh0L3htbFxuICAgICAgLy8gcHJlZmVyIGFwcGxpY2F0aW9uL3J0ZiBvdmVyIHRleHQvcnRmXG4gICAgICBhcHBsaWNhdGlvbjogMSxcbiAgICAgIC8vIHByZWZlciBmb250L3dvZmYgb3ZlciBhcHBsaWNhdGlvbi9mb250LXdvZmZcbiAgICAgIGZvbnQ6IDIsXG4gICAgICBkZWZhdWx0OiAwXG4gICAgfTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbiBtaW1lU2NvcmUobWltZVR5cGUsIHNvdXJjZSA9IFwiZGVmYXVsdFwiKSB7XG4gICAgICBpZiAobWltZVR5cGUgPT09IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgICBjb25zdCBbdHlwZSwgc3VidHlwZV0gPSBtaW1lVHlwZS5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBmYWNldCA9IHN1YnR5cGUucmVwbGFjZSgvKFxcLnx4LSkuKi8sIFwiJDFcIik7XG4gICAgICBjb25zdCBmYWNldFNjb3JlID0gRkFDRVRfU0NPUkVTW2ZhY2V0XSB8fCBGQUNFVF9TQ09SRVMuZGVmYXVsdDtcbiAgICAgIGNvbnN0IHNvdXJjZVNjb3JlID0gU09VUkNFX1NDT1JFU1tzb3VyY2VdIHx8IFNPVVJDRV9TQ09SRVMuZGVmYXVsdDtcbiAgICAgIGNvbnN0IHR5cGVTY29yZSA9IFRZUEVfU0NPUkVTW3R5cGVdIHx8IFRZUEVfU0NPUkVTLmRlZmF1bHQ7XG4gICAgICBjb25zdCBsZW5ndGhTY29yZSA9IDEgLSBtaW1lVHlwZS5sZW5ndGggLyAxMDA7XG4gICAgICByZXR1cm4gZmFjZXRTY29yZSArIHNvdXJjZVNjb3JlICsgdHlwZVNjb3JlICsgbGVuZ3RoU2NvcmU7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9zZW5kL25vZGVfbW9kdWxlcy9taW1lLXR5cGVzL2luZGV4LmpzXG52YXIgcmVxdWlyZV9taW1lX3R5cGVzNCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zZW5kL25vZGVfbW9kdWxlcy9taW1lLXR5cGVzL2luZGV4LmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZGIgPSByZXF1aXJlX21pbWVfZGI0KCk7XG4gICAgdmFyIGV4dG5hbWUgPSByZXF1aXJlKFwicGF0aFwiKS5leHRuYW1lO1xuICAgIHZhciBtaW1lU2NvcmUgPSByZXF1aXJlX21pbWVTY29yZTQoKTtcbiAgICB2YXIgRVhUUkFDVF9UWVBFX1JFR0VYUCA9IC9eXFxzKihbXjtcXHNdKikoPzo7fFxcc3wkKS87XG4gICAgdmFyIFRFWFRfVFlQRV9SRUdFWFAgPSAvXnRleHRcXC8vaTtcbiAgICBleHBvcnRzMi5jaGFyc2V0ID0gY2hhcnNldDtcbiAgICBleHBvcnRzMi5jaGFyc2V0cyA9IHsgbG9va3VwOiBjaGFyc2V0IH07XG4gICAgZXhwb3J0czIuY29udGVudFR5cGUgPSBjb250ZW50VHlwZTI7XG4gICAgZXhwb3J0czIuZXh0ZW5zaW9uID0gZXh0ZW5zaW9uO1xuICAgIGV4cG9ydHMyLmV4dGVuc2lvbnMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICBleHBvcnRzMi5sb29rdXAgPSBsb29rdXA7XG4gICAgZXhwb3J0czIudHlwZXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICBleHBvcnRzMi5fZXh0ZW5zaW9uQ29uZmxpY3RzID0gW107XG4gICAgcG9wdWxhdGVNYXBzKGV4cG9ydHMyLmV4dGVuc2lvbnMsIGV4cG9ydHMyLnR5cGVzKTtcbiAgICBmdW5jdGlvbiBjaGFyc2V0KHR5cGUpIHtcbiAgICAgIGlmICghdHlwZSB8fCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgbWF0Y2ggPSBFWFRSQUNUX1RZUEVfUkVHRVhQLmV4ZWModHlwZSk7XG4gICAgICB2YXIgbWltZSA9IG1hdGNoICYmIGRiW21hdGNoWzFdLnRvTG93ZXJDYXNlKCldO1xuICAgICAgaWYgKG1pbWUgJiYgbWltZS5jaGFyc2V0KSB7XG4gICAgICAgIHJldHVybiBtaW1lLmNoYXJzZXQ7XG4gICAgICB9XG4gICAgICBpZiAobWF0Y2ggJiYgVEVYVF9UWVBFX1JFR0VYUC50ZXN0KG1hdGNoWzFdKSkge1xuICAgICAgICByZXR1cm4gXCJVVEYtOFwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb250ZW50VHlwZTIoc3RyKSB7XG4gICAgICBpZiAoIXN0ciB8fCB0eXBlb2Ygc3RyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBtaW1lID0gc3RyLmluZGV4T2YoXCIvXCIpID09PSAtMSA/IGV4cG9ydHMyLmxvb2t1cChzdHIpIDogc3RyO1xuICAgICAgaWYgKCFtaW1lKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChtaW1lLmluZGV4T2YoXCJjaGFyc2V0XCIpID09PSAtMSkge1xuICAgICAgICB2YXIgY2hhcnNldDIgPSBleHBvcnRzMi5jaGFyc2V0KG1pbWUpO1xuICAgICAgICBpZiAoY2hhcnNldDIpIG1pbWUgKz0gXCI7IGNoYXJzZXQ9XCIgKyBjaGFyc2V0Mi50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1pbWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGV4dGVuc2lvbih0eXBlKSB7XG4gICAgICBpZiAoIXR5cGUgfHwgdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIG1hdGNoID0gRVhUUkFDVF9UWVBFX1JFR0VYUC5leGVjKHR5cGUpO1xuICAgICAgdmFyIGV4dHMgPSBtYXRjaCAmJiBleHBvcnRzMi5leHRlbnNpb25zW21hdGNoWzFdLnRvTG93ZXJDYXNlKCldO1xuICAgICAgaWYgKCFleHRzIHx8ICFleHRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXh0c1swXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbG9va3VwKHBhdGgpIHtcbiAgICAgIGlmICghcGF0aCB8fCB0eXBlb2YgcGF0aCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgZXh0ZW5zaW9uMiA9IGV4dG5hbWUoXCJ4LlwiICsgcGF0aCkudG9Mb3dlckNhc2UoKS5zbGljZSgxKTtcbiAgICAgIGlmICghZXh0ZW5zaW9uMikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXhwb3J0czIudHlwZXNbZXh0ZW5zaW9uMl0gfHwgZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBvcHVsYXRlTWFwcyhleHRlbnNpb25zLCB0eXBlcykge1xuICAgICAgT2JqZWN0LmtleXMoZGIpLmZvckVhY2goZnVuY3Rpb24gZm9yRWFjaE1pbWVUeXBlKHR5cGUpIHtcbiAgICAgICAgdmFyIG1pbWUgPSBkYlt0eXBlXTtcbiAgICAgICAgdmFyIGV4dHMgPSBtaW1lLmV4dGVuc2lvbnM7XG4gICAgICAgIGlmICghZXh0cyB8fCAhZXh0cy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXh0ZW5zaW9uc1t0eXBlXSA9IGV4dHM7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXh0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBleHRlbnNpb24yID0gZXh0c1tpXTtcbiAgICAgICAgICB0eXBlc1tleHRlbnNpb24yXSA9IF9wcmVmZXJyZWRUeXBlKGV4dGVuc2lvbjIsIHR5cGVzW2V4dGVuc2lvbjJdLCB0eXBlKTtcbiAgICAgICAgICBjb25zdCBsZWdhY3lUeXBlID0gX3ByZWZlcnJlZFR5cGVMZWdhY3koXG4gICAgICAgICAgICBleHRlbnNpb24yLFxuICAgICAgICAgICAgdHlwZXNbZXh0ZW5zaW9uMl0sXG4gICAgICAgICAgICB0eXBlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAobGVnYWN5VHlwZSAhPT0gdHlwZXNbZXh0ZW5zaW9uMl0pIHtcbiAgICAgICAgICAgIGV4cG9ydHMyLl9leHRlbnNpb25Db25mbGljdHMucHVzaChbZXh0ZW5zaW9uMiwgbGVnYWN5VHlwZSwgdHlwZXNbZXh0ZW5zaW9uMl1dKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfcHJlZmVycmVkVHlwZShleHQsIHR5cGUwLCB0eXBlMSkge1xuICAgICAgdmFyIHNjb3JlMCA9IHR5cGUwID8gbWltZVNjb3JlKHR5cGUwLCBkYlt0eXBlMF0uc291cmNlKSA6IDA7XG4gICAgICB2YXIgc2NvcmUxID0gdHlwZTEgPyBtaW1lU2NvcmUodHlwZTEsIGRiW3R5cGUxXS5zb3VyY2UpIDogMDtcbiAgICAgIHJldHVybiBzY29yZTAgPiBzY29yZTEgPyB0eXBlMCA6IHR5cGUxO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfcHJlZmVycmVkVHlwZUxlZ2FjeShleHQsIHR5cGUwLCB0eXBlMSkge1xuICAgICAgdmFyIFNPVVJDRV9SQU5LID0gW1wibmdpbnhcIiwgXCJhcGFjaGVcIiwgdm9pZCAwLCBcImlhbmFcIl07XG4gICAgICB2YXIgc2NvcmUwID0gdHlwZTAgPyBTT1VSQ0VfUkFOSy5pbmRleE9mKGRiW3R5cGUwXS5zb3VyY2UpIDogMDtcbiAgICAgIHZhciBzY29yZTEgPSB0eXBlMSA/IFNPVVJDRV9SQU5LLmluZGV4T2YoZGJbdHlwZTFdLnNvdXJjZSkgOiAwO1xuICAgICAgaWYgKGV4cG9ydHMyLnR5cGVzW2V4dGVuc2lvbl0gIT09IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIgJiYgKHNjb3JlMCA+IHNjb3JlMSB8fCBzY29yZTAgPT09IHNjb3JlMSAmJiBleHBvcnRzMi50eXBlc1tleHRlbnNpb25dPy5zbGljZSgwLCAxMikgPT09IFwiYXBwbGljYXRpb24vXCIpKSB7XG4gICAgICAgIHJldHVybiB0eXBlMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzY29yZTAgPiBzY29yZTEgPyB0eXBlMCA6IHR5cGUxO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9zZW5kL2luZGV4LmpzXG52YXIgcmVxdWlyZV9zZW5kID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NlbmQvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmVfaHR0cF9lcnJvcnMoKTtcbiAgICB2YXIgZGVidWcgPSByZXF1aXJlX3NyYygpKFwic2VuZFwiKTtcbiAgICB2YXIgZW5jb2RlVXJsID0gcmVxdWlyZV9lbmNvZGV1cmwoKTtcbiAgICB2YXIgZXNjYXBlSHRtbCA9IHJlcXVpcmVfZXNjYXBlX2h0bWwoKTtcbiAgICB2YXIgZXRhZyA9IHJlcXVpcmVfZXRhZygpO1xuICAgIHZhciBmcmVzaCA9IHJlcXVpcmVfZnJlc2goKTtcbiAgICB2YXIgZnMgPSByZXF1aXJlKFwiZnNcIik7XG4gICAgdmFyIG1pbWUgPSByZXF1aXJlX21pbWVfdHlwZXM0KCk7XG4gICAgdmFyIG1zID0gcmVxdWlyZV9tcygpO1xuICAgIHZhciBvbkZpbmlzaGVkID0gcmVxdWlyZV9vbl9maW5pc2hlZCgpO1xuICAgIHZhciBwYXJzZVJhbmdlID0gcmVxdWlyZV9yYW5nZV9wYXJzZXIoKTtcbiAgICB2YXIgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuICAgIHZhciBzdGF0dXNlcyA9IHJlcXVpcmVfc3RhdHVzZXMoKTtcbiAgICB2YXIgU3RyZWFtID0gcmVxdWlyZShcInN0cmVhbVwiKTtcbiAgICB2YXIgdXRpbDIgPSByZXF1aXJlKFwidXRpbFwiKTtcbiAgICB2YXIgZXh0bmFtZSA9IHBhdGguZXh0bmFtZTtcbiAgICB2YXIgam9pbiA9IHBhdGguam9pbjtcbiAgICB2YXIgbm9ybWFsaXplID0gcGF0aC5ub3JtYWxpemU7XG4gICAgdmFyIHJlc29sdmUgPSBwYXRoLnJlc29sdmU7XG4gICAgdmFyIHNlcCA9IHBhdGguc2VwO1xuICAgIHZhciBCWVRFU19SQU5HRV9SRUdFWFAgPSAvXiAqYnl0ZXM9LztcbiAgICB2YXIgTUFYX01BWEFHRSA9IDYwICogNjAgKiAyNCAqIDM2NSAqIDFlMztcbiAgICB2YXIgVVBfUEFUSF9SRUdFWFAgPSAvKD86XnxbXFxcXC9dKVxcLlxcLig/OltcXFxcL118JCkvO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHNlbmQ7XG4gICAgZnVuY3Rpb24gc2VuZChyZXEsIHBhdGgyLCBvcHRpb25zKSB7XG4gICAgICByZXR1cm4gbmV3IFNlbmRTdHJlYW0ocmVxLCBwYXRoMiwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFNlbmRTdHJlYW0ocmVxLCBwYXRoMiwgb3B0aW9ucykge1xuICAgICAgU3RyZWFtLmNhbGwodGhpcyk7XG4gICAgICB2YXIgb3B0cyA9IG9wdGlvbnMgfHwge307XG4gICAgICB0aGlzLm9wdGlvbnMgPSBvcHRzO1xuICAgICAgdGhpcy5wYXRoID0gcGF0aDI7XG4gICAgICB0aGlzLnJlcSA9IHJlcTtcbiAgICAgIHRoaXMuX2FjY2VwdFJhbmdlcyA9IG9wdHMuYWNjZXB0UmFuZ2VzICE9PSB2b2lkIDAgPyBCb29sZWFuKG9wdHMuYWNjZXB0UmFuZ2VzKSA6IHRydWU7XG4gICAgICB0aGlzLl9jYWNoZUNvbnRyb2wgPSBvcHRzLmNhY2hlQ29udHJvbCAhPT0gdm9pZCAwID8gQm9vbGVhbihvcHRzLmNhY2hlQ29udHJvbCkgOiB0cnVlO1xuICAgICAgdGhpcy5fZXRhZyA9IG9wdHMuZXRhZyAhPT0gdm9pZCAwID8gQm9vbGVhbihvcHRzLmV0YWcpIDogdHJ1ZTtcbiAgICAgIHRoaXMuX2RvdGZpbGVzID0gb3B0cy5kb3RmaWxlcyAhPT0gdm9pZCAwID8gb3B0cy5kb3RmaWxlcyA6IFwiaWdub3JlXCI7XG4gICAgICBpZiAodGhpcy5fZG90ZmlsZXMgIT09IFwiaWdub3JlXCIgJiYgdGhpcy5fZG90ZmlsZXMgIT09IFwiYWxsb3dcIiAmJiB0aGlzLl9kb3RmaWxlcyAhPT0gXCJkZW55XCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZG90ZmlsZXMgb3B0aW9uIG11c3QgYmUgXCJhbGxvd1wiLCBcImRlbnlcIiwgb3IgXCJpZ25vcmVcIicpO1xuICAgICAgfVxuICAgICAgdGhpcy5fZXh0ZW5zaW9ucyA9IG9wdHMuZXh0ZW5zaW9ucyAhPT0gdm9pZCAwID8gbm9ybWFsaXplTGlzdChvcHRzLmV4dGVuc2lvbnMsIFwiZXh0ZW5zaW9ucyBvcHRpb25cIikgOiBbXTtcbiAgICAgIHRoaXMuX2ltbXV0YWJsZSA9IG9wdHMuaW1tdXRhYmxlICE9PSB2b2lkIDAgPyBCb29sZWFuKG9wdHMuaW1tdXRhYmxlKSA6IGZhbHNlO1xuICAgICAgdGhpcy5faW5kZXggPSBvcHRzLmluZGV4ICE9PSB2b2lkIDAgPyBub3JtYWxpemVMaXN0KG9wdHMuaW5kZXgsIFwiaW5kZXggb3B0aW9uXCIpIDogW1wiaW5kZXguaHRtbFwiXTtcbiAgICAgIHRoaXMuX2xhc3RNb2RpZmllZCA9IG9wdHMubGFzdE1vZGlmaWVkICE9PSB2b2lkIDAgPyBCb29sZWFuKG9wdHMubGFzdE1vZGlmaWVkKSA6IHRydWU7XG4gICAgICB0aGlzLl9tYXhhZ2UgPSBvcHRzLm1heEFnZSB8fCBvcHRzLm1heGFnZTtcbiAgICAgIHRoaXMuX21heGFnZSA9IHR5cGVvZiB0aGlzLl9tYXhhZ2UgPT09IFwic3RyaW5nXCIgPyBtcyh0aGlzLl9tYXhhZ2UpIDogTnVtYmVyKHRoaXMuX21heGFnZSk7XG4gICAgICB0aGlzLl9tYXhhZ2UgPSAhaXNOYU4odGhpcy5fbWF4YWdlKSA/IE1hdGgubWluKE1hdGgubWF4KDAsIHRoaXMuX21heGFnZSksIE1BWF9NQVhBR0UpIDogMDtcbiAgICAgIHRoaXMuX3Jvb3QgPSBvcHRzLnJvb3QgPyByZXNvbHZlKG9wdHMucm9vdCkgOiBudWxsO1xuICAgIH1cbiAgICB1dGlsMi5pbmhlcml0cyhTZW5kU3RyZWFtLCBTdHJlYW0pO1xuICAgIFNlbmRTdHJlYW0ucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24gZXJyb3Ioc3RhdHVzLCBlcnIyKSB7XG4gICAgICBpZiAoaGFzTGlzdGVuZXJzKHRoaXMsIFwiZXJyb3JcIikpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW1pdChcImVycm9yXCIsIGNyZWF0ZUh0dHBFcnJvcihzdGF0dXMsIGVycjIpKTtcbiAgICAgIH1cbiAgICAgIHZhciByZXMgPSB0aGlzLnJlcztcbiAgICAgIHZhciBtc2cgPSBzdGF0dXNlcy5tZXNzYWdlW3N0YXR1c10gfHwgU3RyaW5nKHN0YXR1cyk7XG4gICAgICB2YXIgZG9jID0gY3JlYXRlSHRtbERvY3VtZW50KFwiRXJyb3JcIiwgZXNjYXBlSHRtbChtc2cpKTtcbiAgICAgIGNsZWFySGVhZGVycyhyZXMpO1xuICAgICAgaWYgKGVycjIgJiYgZXJyMi5oZWFkZXJzKSB7XG4gICAgICAgIHNldEhlYWRlcnMocmVzLCBlcnIyLmhlYWRlcnMpO1xuICAgICAgfVxuICAgICAgcmVzLnN0YXR1c0NvZGUgPSBzdGF0dXM7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwidGV4dC9odG1sOyBjaGFyc2V0PVVURi04XCIpO1xuICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtTGVuZ3RoXCIsIEJ1ZmZlci5ieXRlTGVuZ3RoKGRvYykpO1xuICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtU2VjdXJpdHktUG9saWN5XCIsIFwiZGVmYXVsdC1zcmMgJ25vbmUnXCIpO1xuICAgICAgcmVzLnNldEhlYWRlcihcIlgtQ29udGVudC1UeXBlLU9wdGlvbnNcIiwgXCJub3NuaWZmXCIpO1xuICAgICAgcmVzLmVuZChkb2MpO1xuICAgIH07XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUuaGFzVHJhaWxpbmdTbGFzaCA9IGZ1bmN0aW9uIGhhc1RyYWlsaW5nU2xhc2goKSB7XG4gICAgICByZXR1cm4gdGhpcy5wYXRoW3RoaXMucGF0aC5sZW5ndGggLSAxXSA9PT0gXCIvXCI7XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5pc0NvbmRpdGlvbmFsR0VUID0gZnVuY3Rpb24gaXNDb25kaXRpb25hbEdFVCgpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlcS5oZWFkZXJzW1wiaWYtbWF0Y2hcIl0gfHwgdGhpcy5yZXEuaGVhZGVyc1tcImlmLXVubW9kaWZpZWQtc2luY2VcIl0gfHwgdGhpcy5yZXEuaGVhZGVyc1tcImlmLW5vbmUtbWF0Y2hcIl0gfHwgdGhpcy5yZXEuaGVhZGVyc1tcImlmLW1vZGlmaWVkLXNpbmNlXCJdO1xuICAgIH07XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUuaXNQcmVjb25kaXRpb25GYWlsdXJlID0gZnVuY3Rpb24gaXNQcmVjb25kaXRpb25GYWlsdXJlKCkge1xuICAgICAgdmFyIHJlcSA9IHRoaXMucmVxO1xuICAgICAgdmFyIHJlcyA9IHRoaXMucmVzO1xuICAgICAgdmFyIG1hdGNoID0gcmVxLmhlYWRlcnNbXCJpZi1tYXRjaFwiXTtcbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICB2YXIgZXRhZzIgPSByZXMuZ2V0SGVhZGVyKFwiRVRhZ1wiKTtcbiAgICAgICAgcmV0dXJuICFldGFnMiB8fCBtYXRjaCAhPT0gXCIqXCIgJiYgcGFyc2VUb2tlbkxpc3QobWF0Y2gpLmV2ZXJ5KGZ1bmN0aW9uKG1hdGNoMikge1xuICAgICAgICAgIHJldHVybiBtYXRjaDIgIT09IGV0YWcyICYmIG1hdGNoMiAhPT0gXCJXL1wiICsgZXRhZzIgJiYgXCJXL1wiICsgbWF0Y2gyICE9PSBldGFnMjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB2YXIgdW5tb2RpZmllZFNpbmNlID0gcGFyc2VIdHRwRGF0ZShyZXEuaGVhZGVyc1tcImlmLXVubW9kaWZpZWQtc2luY2VcIl0pO1xuICAgICAgaWYgKCFpc05hTih1bm1vZGlmaWVkU2luY2UpKSB7XG4gICAgICAgIHZhciBsYXN0TW9kaWZpZWQgPSBwYXJzZUh0dHBEYXRlKHJlcy5nZXRIZWFkZXIoXCJMYXN0LU1vZGlmaWVkXCIpKTtcbiAgICAgICAgcmV0dXJuIGlzTmFOKGxhc3RNb2RpZmllZCkgfHwgbGFzdE1vZGlmaWVkID4gdW5tb2RpZmllZFNpbmNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUucmVtb3ZlQ29udGVudEhlYWRlckZpZWxkcyA9IGZ1bmN0aW9uIHJlbW92ZUNvbnRlbnRIZWFkZXJGaWVsZHMoKSB7XG4gICAgICB2YXIgcmVzID0gdGhpcy5yZXM7XG4gICAgICByZXMucmVtb3ZlSGVhZGVyKFwiQ29udGVudC1FbmNvZGluZ1wiKTtcbiAgICAgIHJlcy5yZW1vdmVIZWFkZXIoXCJDb250ZW50LUxhbmd1YWdlXCIpO1xuICAgICAgcmVzLnJlbW92ZUhlYWRlcihcIkNvbnRlbnQtTGVuZ3RoXCIpO1xuICAgICAgcmVzLnJlbW92ZUhlYWRlcihcIkNvbnRlbnQtUmFuZ2VcIik7XG4gICAgICByZXMucmVtb3ZlSGVhZGVyKFwiQ29udGVudC1UeXBlXCIpO1xuICAgIH07XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUubm90TW9kaWZpZWQgPSBmdW5jdGlvbiBub3RNb2RpZmllZCgpIHtcbiAgICAgIHZhciByZXMgPSB0aGlzLnJlcztcbiAgICAgIGRlYnVnKFwibm90IG1vZGlmaWVkXCIpO1xuICAgICAgdGhpcy5yZW1vdmVDb250ZW50SGVhZGVyRmllbGRzKCk7XG4gICAgICByZXMuc3RhdHVzQ29kZSA9IDMwNDtcbiAgICAgIHJlcy5lbmQoKTtcbiAgICB9O1xuICAgIFNlbmRTdHJlYW0ucHJvdG90eXBlLmhlYWRlcnNBbHJlYWR5U2VudCA9IGZ1bmN0aW9uIGhlYWRlcnNBbHJlYWR5U2VudCgpIHtcbiAgICAgIHZhciBlcnIyID0gbmV3IEVycm9yKFwiQ2FuJ3Qgc2V0IGhlYWRlcnMgYWZ0ZXIgdGhleSBhcmUgc2VudC5cIik7XG4gICAgICBkZWJ1ZyhcImhlYWRlcnMgYWxyZWFkeSBzZW50XCIpO1xuICAgICAgdGhpcy5lcnJvcig1MDAsIGVycjIpO1xuICAgIH07XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUuaXNDYWNoYWJsZSA9IGZ1bmN0aW9uIGlzQ2FjaGFibGUoKSB7XG4gICAgICB2YXIgc3RhdHVzQ29kZSA9IHRoaXMucmVzLnN0YXR1c0NvZGU7XG4gICAgICByZXR1cm4gc3RhdHVzQ29kZSA+PSAyMDAgJiYgc3RhdHVzQ29kZSA8IDMwMCB8fCBzdGF0dXNDb2RlID09PSAzMDQ7XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5vblN0YXRFcnJvciA9IGZ1bmN0aW9uIG9uU3RhdEVycm9yKGVycm9yKSB7XG4gICAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICAgICAgY2FzZSBcIkVOQU1FVE9PTE9OR1wiOlxuICAgICAgICBjYXNlIFwiRU5PRU5UXCI6XG4gICAgICAgIGNhc2UgXCJFTk9URElSXCI6XG4gICAgICAgICAgdGhpcy5lcnJvcig0MDQsIGVycm9yKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aGlzLmVycm9yKDUwMCwgZXJyb3IpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH07XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUuaXNGcmVzaCA9IGZ1bmN0aW9uIGlzRnJlc2goKSB7XG4gICAgICByZXR1cm4gZnJlc2godGhpcy5yZXEuaGVhZGVycywge1xuICAgICAgICBldGFnOiB0aGlzLnJlcy5nZXRIZWFkZXIoXCJFVGFnXCIpLFxuICAgICAgICBcImxhc3QtbW9kaWZpZWRcIjogdGhpcy5yZXMuZ2V0SGVhZGVyKFwiTGFzdC1Nb2RpZmllZFwiKVxuICAgICAgfSk7XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5pc1JhbmdlRnJlc2ggPSBmdW5jdGlvbiBpc1JhbmdlRnJlc2goKSB7XG4gICAgICB2YXIgaWZSYW5nZSA9IHRoaXMucmVxLmhlYWRlcnNbXCJpZi1yYW5nZVwiXTtcbiAgICAgIGlmICghaWZSYW5nZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpZlJhbmdlLmluZGV4T2YoJ1wiJykgIT09IC0xKSB7XG4gICAgICAgIHZhciBldGFnMiA9IHRoaXMucmVzLmdldEhlYWRlcihcIkVUYWdcIik7XG4gICAgICAgIHJldHVybiBCb29sZWFuKGV0YWcyICYmIGlmUmFuZ2UuaW5kZXhPZihldGFnMikgIT09IC0xKTtcbiAgICAgIH1cbiAgICAgIHZhciBsYXN0TW9kaWZpZWQgPSB0aGlzLnJlcy5nZXRIZWFkZXIoXCJMYXN0LU1vZGlmaWVkXCIpO1xuICAgICAgcmV0dXJuIHBhcnNlSHR0cERhdGUobGFzdE1vZGlmaWVkKSA8PSBwYXJzZUh0dHBEYXRlKGlmUmFuZ2UpO1xuICAgIH07XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUucmVkaXJlY3QgPSBmdW5jdGlvbiByZWRpcmVjdChwYXRoMikge1xuICAgICAgdmFyIHJlcyA9IHRoaXMucmVzO1xuICAgICAgaWYgKGhhc0xpc3RlbmVycyh0aGlzLCBcImRpcmVjdG9yeVwiKSkge1xuICAgICAgICB0aGlzLmVtaXQoXCJkaXJlY3RvcnlcIiwgcmVzLCBwYXRoMik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmhhc1RyYWlsaW5nU2xhc2goKSkge1xuICAgICAgICB0aGlzLmVycm9yKDQwMyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBsb2MgPSBlbmNvZGVVcmwoY29sbGFwc2VMZWFkaW5nU2xhc2hlcyh0aGlzLnBhdGggKyBcIi9cIikpO1xuICAgICAgdmFyIGRvYyA9IGNyZWF0ZUh0bWxEb2N1bWVudChcIlJlZGlyZWN0aW5nXCIsIFwiUmVkaXJlY3RpbmcgdG8gXCIgKyBlc2NhcGVIdG1sKGxvYykpO1xuICAgICAgcmVzLnN0YXR1c0NvZGUgPSAzMDE7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwidGV4dC9odG1sOyBjaGFyc2V0PVVURi04XCIpO1xuICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtTGVuZ3RoXCIsIEJ1ZmZlci5ieXRlTGVuZ3RoKGRvYykpO1xuICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtU2VjdXJpdHktUG9saWN5XCIsIFwiZGVmYXVsdC1zcmMgJ25vbmUnXCIpO1xuICAgICAgcmVzLnNldEhlYWRlcihcIlgtQ29udGVudC1UeXBlLU9wdGlvbnNcIiwgXCJub3NuaWZmXCIpO1xuICAgICAgcmVzLnNldEhlYWRlcihcIkxvY2F0aW9uXCIsIGxvYyk7XG4gICAgICByZXMuZW5kKGRvYyk7XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5waXBlID0gZnVuY3Rpb24gcGlwZShyZXMpIHtcbiAgICAgIHZhciByb290ID0gdGhpcy5fcm9vdDtcbiAgICAgIHRoaXMucmVzID0gcmVzO1xuICAgICAgdmFyIHBhdGgyID0gZGVjb2RlKHRoaXMucGF0aCk7XG4gICAgICBpZiAocGF0aDIgPT09IC0xKSB7XG4gICAgICAgIHRoaXMuZXJyb3IoNDAwKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH1cbiAgICAgIGlmICh+cGF0aDIuaW5kZXhPZihcIlxcMFwiKSkge1xuICAgICAgICB0aGlzLmVycm9yKDQwMCk7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9XG4gICAgICB2YXIgcGFydHM7XG4gICAgICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgICAgICBpZiAocGF0aDIpIHtcbiAgICAgICAgICBwYXRoMiA9IG5vcm1hbGl6ZShcIi5cIiArIHNlcCArIHBhdGgyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoVVBfUEFUSF9SRUdFWFAudGVzdChwYXRoMikpIHtcbiAgICAgICAgICBkZWJ1ZygnbWFsaWNpb3VzIHBhdGggXCIlc1wiJywgcGF0aDIpO1xuICAgICAgICAgIHRoaXMuZXJyb3IoNDAzKTtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9XG4gICAgICAgIHBhcnRzID0gcGF0aDIuc3BsaXQoc2VwKTtcbiAgICAgICAgcGF0aDIgPSBub3JtYWxpemUoam9pbihyb290LCBwYXRoMikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKFVQX1BBVEhfUkVHRVhQLnRlc3QocGF0aDIpKSB7XG4gICAgICAgICAgZGVidWcoJ21hbGljaW91cyBwYXRoIFwiJXNcIicsIHBhdGgyKTtcbiAgICAgICAgICB0aGlzLmVycm9yKDQwMyk7XG4gICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfVxuICAgICAgICBwYXJ0cyA9IG5vcm1hbGl6ZShwYXRoMikuc3BsaXQoc2VwKTtcbiAgICAgICAgcGF0aDIgPSByZXNvbHZlKHBhdGgyKTtcbiAgICAgIH1cbiAgICAgIGlmIChjb250YWluc0RvdEZpbGUocGFydHMpKSB7XG4gICAgICAgIGRlYnVnKCclcyBkb3RmaWxlIFwiJXNcIicsIHRoaXMuX2RvdGZpbGVzLCBwYXRoMik7XG4gICAgICAgIHN3aXRjaCAodGhpcy5fZG90ZmlsZXMpIHtcbiAgICAgICAgICBjYXNlIFwiYWxsb3dcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJkZW55XCI6XG4gICAgICAgICAgICB0aGlzLmVycm9yKDQwMyk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgIGNhc2UgXCJpZ25vcmVcIjpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhpcy5lcnJvcig0MDQpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX2luZGV4Lmxlbmd0aCAmJiB0aGlzLmhhc1RyYWlsaW5nU2xhc2goKSkge1xuICAgICAgICB0aGlzLnNlbmRJbmRleChwYXRoMik7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9XG4gICAgICB0aGlzLnNlbmRGaWxlKHBhdGgyKTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5zZW5kID0gZnVuY3Rpb24gc2VuZDIocGF0aDIsIHN0YXQpIHtcbiAgICAgIHZhciBsZW4gPSBzdGF0LnNpemU7XG4gICAgICB2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgIHZhciBvcHRzID0ge307XG4gICAgICB2YXIgcmVzID0gdGhpcy5yZXM7XG4gICAgICB2YXIgcmVxID0gdGhpcy5yZXE7XG4gICAgICB2YXIgcmFuZ2VzID0gcmVxLmhlYWRlcnMucmFuZ2U7XG4gICAgICB2YXIgb2Zmc2V0ID0gb3B0aW9ucy5zdGFydCB8fCAwO1xuICAgICAgaWYgKHJlcy5oZWFkZXJzU2VudCkge1xuICAgICAgICB0aGlzLmhlYWRlcnNBbHJlYWR5U2VudCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBkZWJ1ZygncGlwZSBcIiVzXCInLCBwYXRoMik7XG4gICAgICB0aGlzLnNldEhlYWRlcihwYXRoMiwgc3RhdCk7XG4gICAgICB0aGlzLnR5cGUocGF0aDIpO1xuICAgICAgaWYgKHRoaXMuaXNDb25kaXRpb25hbEdFVCgpKSB7XG4gICAgICAgIGlmICh0aGlzLmlzUHJlY29uZGl0aW9uRmFpbHVyZSgpKSB7XG4gICAgICAgICAgdGhpcy5lcnJvcig0MTIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc0NhY2hhYmxlKCkgJiYgdGhpcy5pc0ZyZXNoKCkpIHtcbiAgICAgICAgICB0aGlzLm5vdE1vZGlmaWVkKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZW4gPSBNYXRoLm1heCgwLCBsZW4gLSBvZmZzZXQpO1xuICAgICAgaWYgKG9wdGlvbnMuZW5kICE9PSB2b2lkIDApIHtcbiAgICAgICAgdmFyIGJ5dGVzID0gb3B0aW9ucy5lbmQgLSBvZmZzZXQgKyAxO1xuICAgICAgICBpZiAobGVuID4gYnl0ZXMpIGxlbiA9IGJ5dGVzO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX2FjY2VwdFJhbmdlcyAmJiBCWVRFU19SQU5HRV9SRUdFWFAudGVzdChyYW5nZXMpKSB7XG4gICAgICAgIHJhbmdlcyA9IHBhcnNlUmFuZ2UobGVuLCByYW5nZXMsIHtcbiAgICAgICAgICBjb21iaW5lOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXRoaXMuaXNSYW5nZUZyZXNoKCkpIHtcbiAgICAgICAgICBkZWJ1ZyhcInJhbmdlIHN0YWxlXCIpO1xuICAgICAgICAgIHJhbmdlcyA9IC0yO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyYW5nZXMgPT09IC0xKSB7XG4gICAgICAgICAgZGVidWcoXCJyYW5nZSB1bnNhdGlzZmlhYmxlXCIpO1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LVJhbmdlXCIsIGNvbnRlbnRSYW5nZShcImJ5dGVzXCIsIGxlbikpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yKDQxNiwge1xuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtUmFuZ2VcIjogcmVzLmdldEhlYWRlcihcIkNvbnRlbnQtUmFuZ2VcIikgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyYW5nZXMgIT09IC0yICYmIHJhbmdlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBkZWJ1ZyhcInJhbmdlICVqXCIsIHJhbmdlcyk7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDY7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtUmFuZ2VcIiwgY29udGVudFJhbmdlKFwiYnl0ZXNcIiwgbGVuLCByYW5nZXNbMF0pKTtcbiAgICAgICAgICBvZmZzZXQgKz0gcmFuZ2VzWzBdLnN0YXJ0O1xuICAgICAgICAgIGxlbiA9IHJhbmdlc1swXS5lbmQgLSByYW5nZXNbMF0uc3RhcnQgKyAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBwcm9wIGluIG9wdGlvbnMpIHtcbiAgICAgICAgb3B0c1twcm9wXSA9IG9wdGlvbnNbcHJvcF07XG4gICAgICB9XG4gICAgICBvcHRzLnN0YXJ0ID0gb2Zmc2V0O1xuICAgICAgb3B0cy5lbmQgPSBNYXRoLm1heChvZmZzZXQsIG9mZnNldCArIGxlbiAtIDEpO1xuICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtTGVuZ3RoXCIsIGxlbik7XG4gICAgICBpZiAocmVxLm1ldGhvZCA9PT0gXCJIRUFEXCIpIHtcbiAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnN0cmVhbShwYXRoMiwgb3B0cyk7XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5zZW5kRmlsZSA9IGZ1bmN0aW9uIHNlbmRGaWxlKHBhdGgyKSB7XG4gICAgICB2YXIgaSA9IDA7XG4gICAgICB2YXIgc2VsZjIgPSB0aGlzO1xuICAgICAgZGVidWcoJ3N0YXQgXCIlc1wiJywgcGF0aDIpO1xuICAgICAgZnMuc3RhdChwYXRoMiwgZnVuY3Rpb24gb25zdGF0KGVycjIsIHN0YXQpIHtcbiAgICAgICAgdmFyIHBhdGhFbmRzV2l0aFNlcCA9IHBhdGgyW3BhdGgyLmxlbmd0aCAtIDFdID09PSBzZXA7XG4gICAgICAgIGlmIChlcnIyICYmIGVycjIuY29kZSA9PT0gXCJFTk9FTlRcIiAmJiAhZXh0bmFtZShwYXRoMikgJiYgIXBhdGhFbmRzV2l0aFNlcCkge1xuICAgICAgICAgIHJldHVybiBuZXh0KGVycjIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIyKSByZXR1cm4gc2VsZjIub25TdGF0RXJyb3IoZXJyMik7XG4gICAgICAgIGlmIChzdGF0LmlzRGlyZWN0b3J5KCkpIHJldHVybiBzZWxmMi5yZWRpcmVjdChwYXRoMik7XG4gICAgICAgIGlmIChwYXRoRW5kc1dpdGhTZXApIHJldHVybiBzZWxmMi5lcnJvcig0MDQpO1xuICAgICAgICBzZWxmMi5lbWl0KFwiZmlsZVwiLCBwYXRoMiwgc3RhdCk7XG4gICAgICAgIHNlbGYyLnNlbmQocGF0aDIsIHN0YXQpO1xuICAgICAgfSk7XG4gICAgICBmdW5jdGlvbiBuZXh0KGVycjIpIHtcbiAgICAgICAgaWYgKHNlbGYyLl9leHRlbnNpb25zLmxlbmd0aCA8PSBpKSB7XG4gICAgICAgICAgcmV0dXJuIGVycjIgPyBzZWxmMi5vblN0YXRFcnJvcihlcnIyKSA6IHNlbGYyLmVycm9yKDQwNCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHAgPSBwYXRoMiArIFwiLlwiICsgc2VsZjIuX2V4dGVuc2lvbnNbaSsrXTtcbiAgICAgICAgZGVidWcoJ3N0YXQgXCIlc1wiJywgcCk7XG4gICAgICAgIGZzLnN0YXQocCwgZnVuY3Rpb24oZXJyMywgc3RhdCkge1xuICAgICAgICAgIGlmIChlcnIzKSByZXR1cm4gbmV4dChlcnIzKTtcbiAgICAgICAgICBpZiAoc3RhdC5pc0RpcmVjdG9yeSgpKSByZXR1cm4gbmV4dCgpO1xuICAgICAgICAgIHNlbGYyLmVtaXQoXCJmaWxlXCIsIHAsIHN0YXQpO1xuICAgICAgICAgIHNlbGYyLnNlbmQocCwgc3RhdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUuc2VuZEluZGV4ID0gZnVuY3Rpb24gc2VuZEluZGV4KHBhdGgyKSB7XG4gICAgICB2YXIgaSA9IC0xO1xuICAgICAgdmFyIHNlbGYyID0gdGhpcztcbiAgICAgIGZ1bmN0aW9uIG5leHQoZXJyMikge1xuICAgICAgICBpZiAoKytpID49IHNlbGYyLl9pbmRleC5sZW5ndGgpIHtcbiAgICAgICAgICBpZiAoZXJyMikgcmV0dXJuIHNlbGYyLm9uU3RhdEVycm9yKGVycjIpO1xuICAgICAgICAgIHJldHVybiBzZWxmMi5lcnJvcig0MDQpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwID0gam9pbihwYXRoMiwgc2VsZjIuX2luZGV4W2ldKTtcbiAgICAgICAgZGVidWcoJ3N0YXQgXCIlc1wiJywgcCk7XG4gICAgICAgIGZzLnN0YXQocCwgZnVuY3Rpb24oZXJyMywgc3RhdCkge1xuICAgICAgICAgIGlmIChlcnIzKSByZXR1cm4gbmV4dChlcnIzKTtcbiAgICAgICAgICBpZiAoc3RhdC5pc0RpcmVjdG9yeSgpKSByZXR1cm4gbmV4dCgpO1xuICAgICAgICAgIHNlbGYyLmVtaXQoXCJmaWxlXCIsIHAsIHN0YXQpO1xuICAgICAgICAgIHNlbGYyLnNlbmQocCwgc3RhdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgbmV4dCgpO1xuICAgIH07XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUuc3RyZWFtID0gZnVuY3Rpb24gc3RyZWFtKHBhdGgyLCBvcHRpb25zKSB7XG4gICAgICB2YXIgc2VsZjIgPSB0aGlzO1xuICAgICAgdmFyIHJlcyA9IHRoaXMucmVzO1xuICAgICAgdmFyIHN0cmVhbTIgPSBmcy5jcmVhdGVSZWFkU3RyZWFtKHBhdGgyLCBvcHRpb25zKTtcbiAgICAgIHRoaXMuZW1pdChcInN0cmVhbVwiLCBzdHJlYW0yKTtcbiAgICAgIHN0cmVhbTIucGlwZShyZXMpO1xuICAgICAgZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgICAgc3RyZWFtMi5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgICBvbkZpbmlzaGVkKHJlcywgY2xlYW51cCk7XG4gICAgICBzdHJlYW0yLm9uKFwiZXJyb3JcIiwgZnVuY3Rpb24gb25lcnJvcihlcnIyKSB7XG4gICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgc2VsZjIub25TdGF0RXJyb3IoZXJyMik7XG4gICAgICB9KTtcbiAgICAgIHN0cmVhbTIub24oXCJlbmRcIiwgZnVuY3Rpb24gb25lbmQoKSB7XG4gICAgICAgIHNlbGYyLmVtaXQoXCJlbmRcIik7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIFNlbmRTdHJlYW0ucHJvdG90eXBlLnR5cGUgPSBmdW5jdGlvbiB0eXBlKHBhdGgyKSB7XG4gICAgICB2YXIgcmVzID0gdGhpcy5yZXM7XG4gICAgICBpZiAocmVzLmdldEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiKSkgcmV0dXJuO1xuICAgICAgdmFyIGV4dCA9IGV4dG5hbWUocGF0aDIpO1xuICAgICAgdmFyIHR5cGUyID0gbWltZS5jb250ZW50VHlwZShleHQpIHx8IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI7XG4gICAgICBkZWJ1ZyhcImNvbnRlbnQtdHlwZSAlc1wiLCB0eXBlMik7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIHR5cGUyKTtcbiAgICB9O1xuICAgIFNlbmRTdHJlYW0ucHJvdG90eXBlLnNldEhlYWRlciA9IGZ1bmN0aW9uIHNldEhlYWRlcihwYXRoMiwgc3RhdCkge1xuICAgICAgdmFyIHJlcyA9IHRoaXMucmVzO1xuICAgICAgdGhpcy5lbWl0KFwiaGVhZGVyc1wiLCByZXMsIHBhdGgyLCBzdGF0KTtcbiAgICAgIGlmICh0aGlzLl9hY2NlcHRSYW5nZXMgJiYgIXJlcy5nZXRIZWFkZXIoXCJBY2NlcHQtUmFuZ2VzXCIpKSB7XG4gICAgICAgIGRlYnVnKFwiYWNjZXB0IHJhbmdlc1wiKTtcbiAgICAgICAgcmVzLnNldEhlYWRlcihcIkFjY2VwdC1SYW5nZXNcIiwgXCJieXRlc1wiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9jYWNoZUNvbnRyb2wgJiYgIXJlcy5nZXRIZWFkZXIoXCJDYWNoZS1Db250cm9sXCIpKSB7XG4gICAgICAgIHZhciBjYWNoZUNvbnRyb2wgPSBcInB1YmxpYywgbWF4LWFnZT1cIiArIE1hdGguZmxvb3IodGhpcy5fbWF4YWdlIC8gMWUzKTtcbiAgICAgICAgaWYgKHRoaXMuX2ltbXV0YWJsZSkge1xuICAgICAgICAgIGNhY2hlQ29udHJvbCArPSBcIiwgaW1tdXRhYmxlXCI7XG4gICAgICAgIH1cbiAgICAgICAgZGVidWcoXCJjYWNoZS1jb250cm9sICVzXCIsIGNhY2hlQ29udHJvbCk7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoXCJDYWNoZS1Db250cm9sXCIsIGNhY2hlQ29udHJvbCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fbGFzdE1vZGlmaWVkICYmICFyZXMuZ2V0SGVhZGVyKFwiTGFzdC1Nb2RpZmllZFwiKSkge1xuICAgICAgICB2YXIgbW9kaWZpZWQgPSBzdGF0Lm10aW1lLnRvVVRDU3RyaW5nKCk7XG4gICAgICAgIGRlYnVnKFwibW9kaWZpZWQgJXNcIiwgbW9kaWZpZWQpO1xuICAgICAgICByZXMuc2V0SGVhZGVyKFwiTGFzdC1Nb2RpZmllZFwiLCBtb2RpZmllZCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fZXRhZyAmJiAhcmVzLmdldEhlYWRlcihcIkVUYWdcIikpIHtcbiAgICAgICAgdmFyIHZhbCA9IGV0YWcoc3RhdCk7XG4gICAgICAgIGRlYnVnKFwiZXRhZyAlc1wiLCB2YWwpO1xuICAgICAgICByZXMuc2V0SGVhZGVyKFwiRVRhZ1wiLCB2YWwpO1xuICAgICAgfVxuICAgIH07XG4gICAgZnVuY3Rpb24gY2xlYXJIZWFkZXJzKHJlcykge1xuICAgICAgZm9yIChjb25zdCBoZWFkZXIgb2YgcmVzLmdldEhlYWRlck5hbWVzKCkpIHtcbiAgICAgICAgcmVzLnJlbW92ZUhlYWRlcihoZWFkZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjb2xsYXBzZUxlYWRpbmdTbGFzaGVzKHN0cikge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHN0cltpXSAhPT0gXCIvXCIpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGkgPiAxID8gXCIvXCIgKyBzdHIuc3Vic3RyKGkpIDogc3RyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb250YWluc0RvdEZpbGUocGFydHMpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTtcbiAgICAgICAgaWYgKHBhcnQubGVuZ3RoID4gMSAmJiBwYXJ0WzBdID09PSBcIi5cIikge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnRlbnRSYW5nZSh0eXBlLCBzaXplLCByYW5nZSkge1xuICAgICAgcmV0dXJuIHR5cGUgKyBcIiBcIiArIChyYW5nZSA/IHJhbmdlLnN0YXJ0ICsgXCItXCIgKyByYW5nZS5lbmQgOiBcIipcIikgKyBcIi9cIiArIHNpemU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUh0bWxEb2N1bWVudCh0aXRsZSwgYm9keSkge1xuICAgICAgcmV0dXJuICc8IURPQ1RZUEUgaHRtbD5cXG48aHRtbCBsYW5nPVwiZW5cIj5cXG48aGVhZD5cXG48bWV0YSBjaGFyc2V0PVwidXRmLThcIj5cXG48dGl0bGU+JyArIHRpdGxlICsgXCI8L3RpdGxlPlxcbjwvaGVhZD5cXG48Ym9keT5cXG48cHJlPlwiICsgYm9keSArIFwiPC9wcmU+XFxuPC9ib2R5PlxcbjwvaHRtbD5cXG5cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlSHR0cEVycm9yKHN0YXR1cywgZXJyMikge1xuICAgICAgaWYgKCFlcnIyKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVFcnJvcihzdGF0dXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVycjIgaW5zdGFuY2VvZiBFcnJvciA/IGNyZWF0ZUVycm9yKHN0YXR1cywgZXJyMiwgeyBleHBvc2U6IGZhbHNlIH0pIDogY3JlYXRlRXJyb3Ioc3RhdHVzLCBlcnIyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVjb2RlKHBhdGgyKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHBhdGgyKTtcbiAgICAgIH0gY2F0Y2ggKGVycjIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBoYXNMaXN0ZW5lcnMoZW1pdHRlciwgdHlwZSkge1xuICAgICAgdmFyIGNvdW50ID0gdHlwZW9mIGVtaXR0ZXIubGlzdGVuZXJDb3VudCAhPT0gXCJmdW5jdGlvblwiID8gZW1pdHRlci5saXN0ZW5lcnModHlwZSkubGVuZ3RoIDogZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICAgICAgcmV0dXJuIGNvdW50ID4gMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm9ybWFsaXplTGlzdCh2YWwsIG5hbWUpIHtcbiAgICAgIHZhciBsaXN0ID0gW10uY29uY2F0KHZhbCB8fCBbXSk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsaXN0W2ldICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihuYW1lICsgXCIgbXVzdCBiZSBhcnJheSBvZiBzdHJpbmdzIG9yIGZhbHNlXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VIdHRwRGF0ZShkYXRlKSB7XG4gICAgICB2YXIgdGltZXN0YW1wID0gZGF0ZSAmJiBEYXRlLnBhcnNlKGRhdGUpO1xuICAgICAgcmV0dXJuIHR5cGVvZiB0aW1lc3RhbXAgPT09IFwibnVtYmVyXCIgPyB0aW1lc3RhbXAgOiBOYU47XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlVG9rZW5MaXN0KHN0cikge1xuICAgICAgdmFyIGVuZCA9IDA7XG4gICAgICB2YXIgbGlzdCA9IFtdO1xuICAgICAgdmFyIHN0YXJ0ID0gMDtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzdHIubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgc3dpdGNoIChzdHIuY2hhckNvZGVBdChpKSkge1xuICAgICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgICBpZiAoc3RhcnQgPT09IGVuZCkge1xuICAgICAgICAgICAgICBzdGFydCA9IGVuZCA9IGkgKyAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0NDpcbiAgICAgICAgICAgIGlmIChzdGFydCAhPT0gZW5kKSB7XG4gICAgICAgICAgICAgIGxpc3QucHVzaChzdHIuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXJ0ID0gZW5kID0gaSArIDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgZW5kID0gaSArIDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHN0YXJ0ICE9PSBlbmQpIHtcbiAgICAgICAgbGlzdC5wdXNoKHN0ci5zdWJzdHJpbmcoc3RhcnQsIGVuZCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNldEhlYWRlcnMocmVzLCBoZWFkZXJzKSB7XG4gICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGhlYWRlcnMpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgICAgICByZXMuc2V0SGVhZGVyKGtleSwgaGVhZGVyc1trZXldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdmFyeS9pbmRleC5qc1xudmFyIHJlcXVpcmVfdmFyeSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy92YXJ5L2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB2YXJ5O1xuICAgIG1vZHVsZTIuZXhwb3J0cy5hcHBlbmQgPSBhcHBlbmQ7XG4gICAgdmFyIEZJRUxEX05BTUVfUkVHRVhQID0gL15bISMkJSYnKitcXC0uXl9gfH4wLTlBLVphLXpdKyQvO1xuICAgIGZ1bmN0aW9uIGFwcGVuZChoZWFkZXIsIGZpZWxkKSB7XG4gICAgICBpZiAodHlwZW9mIGhlYWRlciAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaGVhZGVyIGFyZ3VtZW50IGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgaWYgKCFmaWVsZCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiZmllbGQgYXJndW1lbnQgaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICB2YXIgZmllbGRzID0gIUFycmF5LmlzQXJyYXkoZmllbGQpID8gcGFyc2UoU3RyaW5nKGZpZWxkKSkgOiBmaWVsZDtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZmllbGRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGlmICghRklFTERfTkFNRV9SRUdFWFAudGVzdChmaWVsZHNbal0pKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImZpZWxkIGFyZ3VtZW50IGNvbnRhaW5zIGFuIGludmFsaWQgaGVhZGVyIG5hbWVcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChoZWFkZXIgPT09IFwiKlwiKSB7XG4gICAgICAgIHJldHVybiBoZWFkZXI7XG4gICAgICB9XG4gICAgICB2YXIgdmFsID0gaGVhZGVyO1xuICAgICAgdmFyIHZhbHMgPSBwYXJzZShoZWFkZXIudG9Mb3dlckNhc2UoKSk7XG4gICAgICBpZiAoZmllbGRzLmluZGV4T2YoXCIqXCIpICE9PSAtMSB8fCB2YWxzLmluZGV4T2YoXCIqXCIpICE9PSAtMSkge1xuICAgICAgICByZXR1cm4gXCIqXCI7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpZWxkcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZmxkID0gZmllbGRzW2ldLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICh2YWxzLmluZGV4T2YoZmxkKSA9PT0gLTEpIHtcbiAgICAgICAgICB2YWxzLnB1c2goZmxkKTtcbiAgICAgICAgICB2YWwgPSB2YWwgPyB2YWwgKyBcIiwgXCIgKyBmaWVsZHNbaV0gOiBmaWVsZHNbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlKGhlYWRlcikge1xuICAgICAgdmFyIGVuZCA9IDA7XG4gICAgICB2YXIgbGlzdCA9IFtdO1xuICAgICAgdmFyIHN0YXJ0ID0gMDtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBoZWFkZXIubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgc3dpdGNoIChoZWFkZXIuY2hhckNvZGVBdChpKSkge1xuICAgICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgICBpZiAoc3RhcnQgPT09IGVuZCkge1xuICAgICAgICAgICAgICBzdGFydCA9IGVuZCA9IGkgKyAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0NDpcbiAgICAgICAgICAgIGxpc3QucHVzaChoZWFkZXIuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpKTtcbiAgICAgICAgICAgIHN0YXJ0ID0gZW5kID0gaSArIDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgZW5kID0gaSArIDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGhlYWRlci5zdWJzdHJpbmcoc3RhcnQsIGVuZCkpO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhcnkocmVzLCBmaWVsZCkge1xuICAgICAgaWYgKCFyZXMgfHwgIXJlcy5nZXRIZWFkZXIgfHwgIXJlcy5zZXRIZWFkZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJlcyBhcmd1bWVudCBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciB2YWwgPSByZXMuZ2V0SGVhZGVyKFwiVmFyeVwiKSB8fCBcIlwiO1xuICAgICAgdmFyIGhlYWRlciA9IEFycmF5LmlzQXJyYXkodmFsKSA/IHZhbC5qb2luKFwiLCBcIikgOiBTdHJpbmcodmFsKTtcbiAgICAgIGlmICh2YWwgPSBhcHBlbmQoaGVhZGVyLCBmaWVsZCkpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcihcIlZhcnlcIiwgdmFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvcmVzcG9uc2UuanNcbnZhciByZXF1aXJlX3Jlc3BvbnNlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL3Jlc3BvbnNlLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgY29udGVudERpc3Bvc2l0aW9uID0gcmVxdWlyZV9jb250ZW50X2Rpc3Bvc2l0aW9uKCk7XG4gICAgdmFyIGNyZWF0ZUVycm9yID0gcmVxdWlyZV9odHRwX2Vycm9ycygpO1xuICAgIHZhciBlbmNvZGVVcmwgPSByZXF1aXJlX2VuY29kZXVybCgpO1xuICAgIHZhciBlc2NhcGVIdG1sID0gcmVxdWlyZV9lc2NhcGVfaHRtbCgpO1xuICAgIHZhciBodHRwID0gcmVxdWlyZShcIm5vZGU6aHR0cFwiKTtcbiAgICB2YXIgb25GaW5pc2hlZCA9IHJlcXVpcmVfb25fZmluaXNoZWQoKTtcbiAgICB2YXIgbWltZSA9IHJlcXVpcmVfbWltZV90eXBlczIoKTtcbiAgICB2YXIgcGF0aCA9IHJlcXVpcmUoXCJub2RlOnBhdGhcIik7XG4gICAgdmFyIHBhdGhJc0Fic29sdXRlID0gcmVxdWlyZShcIm5vZGU6cGF0aFwiKS5pc0Fic29sdXRlO1xuICAgIHZhciBzdGF0dXNlcyA9IHJlcXVpcmVfc3RhdHVzZXMoKTtcbiAgICB2YXIgc2lnbiA9IHJlcXVpcmVfY29va2llX3NpZ25hdHVyZSgpLnNpZ247XG4gICAgdmFyIG5vcm1hbGl6ZVR5cGUgPSByZXF1aXJlX3V0aWxzMygpLm5vcm1hbGl6ZVR5cGU7XG4gICAgdmFyIG5vcm1hbGl6ZVR5cGVzID0gcmVxdWlyZV91dGlsczMoKS5ub3JtYWxpemVUeXBlcztcbiAgICB2YXIgc2V0Q2hhcnNldCA9IHJlcXVpcmVfdXRpbHMzKCkuc2V0Q2hhcnNldDtcbiAgICB2YXIgY29va2llID0gcmVxdWlyZV9jb29raWUoKTtcbiAgICB2YXIgc2VuZCA9IHJlcXVpcmVfc2VuZCgpO1xuICAgIHZhciBleHRuYW1lID0gcGF0aC5leHRuYW1lO1xuICAgIHZhciByZXNvbHZlID0gcGF0aC5yZXNvbHZlO1xuICAgIHZhciB2YXJ5ID0gcmVxdWlyZV92YXJ5KCk7XG4gICAgdmFyIHJlcyA9IE9iamVjdC5jcmVhdGUoaHR0cC5TZXJ2ZXJSZXNwb25zZS5wcm90b3R5cGUpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHJlcztcbiAgICByZXMuc3RhdHVzID0gZnVuY3Rpb24gc3RhdHVzKGNvZGUpIHtcbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihjb2RlKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIHN0YXR1cyBjb2RlOiAke0pTT04uc3RyaW5naWZ5KGNvZGUpfS4gU3RhdHVzIGNvZGUgbXVzdCBiZSBhbiBpbnRlZ2VyLmApO1xuICAgICAgfVxuICAgICAgaWYgKGNvZGUgPCAxMDAgfHwgY29kZSA+IDk5OSkge1xuICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YWxpZCBzdGF0dXMgY29kZTogJHtKU09OLnN0cmluZ2lmeShjb2RlKX0uIFN0YXR1cyBjb2RlIG11c3QgYmUgZ3JlYXRlciB0aGFuIDk5IGFuZCBsZXNzIHRoYW4gMTAwMC5gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3RhdHVzQ29kZSA9IGNvZGU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIHJlcy5saW5rcyA9IGZ1bmN0aW9uKGxpbmtzKSB7XG4gICAgICB2YXIgbGluayA9IHRoaXMuZ2V0KFwiTGlua1wiKSB8fCBcIlwiO1xuICAgICAgaWYgKGxpbmspIGxpbmsgKz0gXCIsIFwiO1xuICAgICAgcmV0dXJuIHRoaXMuc2V0KFwiTGlua1wiLCBsaW5rICsgT2JqZWN0LmtleXMobGlua3MpLm1hcChmdW5jdGlvbihyZWwpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobGlua3NbcmVsXSkpIHtcbiAgICAgICAgICByZXR1cm4gbGlua3NbcmVsXS5tYXAoZnVuY3Rpb24oc2luZ2xlTGluaykge1xuICAgICAgICAgICAgcmV0dXJuIGA8JHtzaW5nbGVMaW5rfT47IHJlbD1cIiR7cmVsfVwiYDtcbiAgICAgICAgICB9KS5qb2luKFwiLCBcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGA8JHtsaW5rc1tyZWxdfT47IHJlbD1cIiR7cmVsfVwiYDtcbiAgICAgICAgfVxuICAgICAgfSkuam9pbihcIiwgXCIpKTtcbiAgICB9O1xuICAgIHJlcy5zZW5kID0gZnVuY3Rpb24gc2VuZDIoYm9keSkge1xuICAgICAgdmFyIGNodW5rID0gYm9keTtcbiAgICAgIHZhciBlbmNvZGluZztcbiAgICAgIHZhciByZXEgPSB0aGlzLnJlcTtcbiAgICAgIHZhciB0eXBlO1xuICAgICAgdmFyIGFwcCA9IHRoaXMuYXBwO1xuICAgICAgc3dpdGNoICh0eXBlb2YgY2h1bmspIHtcbiAgICAgICAgLy8gc3RyaW5nIGRlZmF1bHRpbmcgdG8gaHRtbFxuICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgaWYgKCF0aGlzLmdldChcIkNvbnRlbnQtVHlwZVwiKSkge1xuICAgICAgICAgICAgdGhpcy50eXBlKFwiaHRtbFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgIGlmIChjaHVuayA9PT0gbnVsbCkge1xuICAgICAgICAgICAgY2h1bmsgPSBcIlwiO1xuICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGNodW5rKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmdldChcIkNvbnRlbnQtVHlwZVwiKSkge1xuICAgICAgICAgICAgICB0aGlzLnR5cGUoXCJiaW5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmpzb24oY2h1bmspO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgY2h1bmsgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgZW5jb2RpbmcgPSBcInV0ZjhcIjtcbiAgICAgICAgdHlwZSA9IHRoaXMuZ2V0KFwiQ29udGVudC1UeXBlXCIpO1xuICAgICAgICBpZiAodHlwZW9mIHR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICB0aGlzLnNldChcIkNvbnRlbnQtVHlwZVwiLCBzZXRDaGFyc2V0KHR5cGUsIFwidXRmLThcIikpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgZXRhZ0ZuID0gYXBwLmdldChcImV0YWcgZm5cIik7XG4gICAgICB2YXIgZ2VuZXJhdGVFVGFnID0gIXRoaXMuZ2V0KFwiRVRhZ1wiKSAmJiB0eXBlb2YgZXRhZ0ZuID09PSBcImZ1bmN0aW9uXCI7XG4gICAgICB2YXIgbGVuO1xuICAgICAgaWYgKGNodW5rICE9PSB2b2lkIDApIHtcbiAgICAgICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihjaHVuaykpIHtcbiAgICAgICAgICBsZW4gPSBjaHVuay5sZW5ndGg7XG4gICAgICAgIH0gZWxzZSBpZiAoIWdlbmVyYXRlRVRhZyAmJiBjaHVuay5sZW5ndGggPCAxZTMpIHtcbiAgICAgICAgICBsZW4gPSBCdWZmZXIuYnl0ZUxlbmd0aChjaHVuaywgZW5jb2RpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNodW5rID0gQnVmZmVyLmZyb20oY2h1bmssIGVuY29kaW5nKTtcbiAgICAgICAgICBlbmNvZGluZyA9IHZvaWQgMDtcbiAgICAgICAgICBsZW4gPSBjaHVuay5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXQoXCJDb250ZW50LUxlbmd0aFwiLCBsZW4pO1xuICAgICAgfVxuICAgICAgdmFyIGV0YWc7XG4gICAgICBpZiAoZ2VuZXJhdGVFVGFnICYmIGxlbiAhPT0gdm9pZCAwKSB7XG4gICAgICAgIGlmIChldGFnID0gZXRhZ0ZuKGNodW5rLCBlbmNvZGluZykpIHtcbiAgICAgICAgICB0aGlzLnNldChcIkVUYWdcIiwgZXRhZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChyZXEuZnJlc2gpIHRoaXMuc3RhdHVzKDMwNCk7XG4gICAgICBpZiAoMjA0ID09PSB0aGlzLnN0YXR1c0NvZGUgfHwgMzA0ID09PSB0aGlzLnN0YXR1c0NvZGUpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVIZWFkZXIoXCJDb250ZW50LVR5cGVcIik7XG4gICAgICAgIHRoaXMucmVtb3ZlSGVhZGVyKFwiQ29udGVudC1MZW5ndGhcIik7XG4gICAgICAgIHRoaXMucmVtb3ZlSGVhZGVyKFwiVHJhbnNmZXItRW5jb2RpbmdcIik7XG4gICAgICAgIGNodW5rID0gXCJcIjtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnN0YXR1c0NvZGUgPT09IDIwNSkge1xuICAgICAgICB0aGlzLnNldChcIkNvbnRlbnQtTGVuZ3RoXCIsIFwiMFwiKTtcbiAgICAgICAgdGhpcy5yZW1vdmVIZWFkZXIoXCJUcmFuc2Zlci1FbmNvZGluZ1wiKTtcbiAgICAgICAgY2h1bmsgPSBcIlwiO1xuICAgICAgfVxuICAgICAgaWYgKHJlcS5tZXRob2QgPT09IFwiSEVBRFwiKSB7XG4gICAgICAgIHRoaXMuZW5kKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVuZChjaHVuaywgZW5jb2RpbmcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICByZXMuanNvbiA9IGZ1bmN0aW9uIGpzb24ob2JqKSB7XG4gICAgICB2YXIgYXBwID0gdGhpcy5hcHA7XG4gICAgICB2YXIgZXNjYXBlMiA9IGFwcC5nZXQoXCJqc29uIGVzY2FwZVwiKTtcbiAgICAgIHZhciByZXBsYWNlciA9IGFwcC5nZXQoXCJqc29uIHJlcGxhY2VyXCIpO1xuICAgICAgdmFyIHNwYWNlcyA9IGFwcC5nZXQoXCJqc29uIHNwYWNlc1wiKTtcbiAgICAgIHZhciBib2R5ID0gc3RyaW5naWZ5KG9iaiwgcmVwbGFjZXIsIHNwYWNlcywgZXNjYXBlMik7XG4gICAgICBpZiAoIXRoaXMuZ2V0KFwiQ29udGVudC1UeXBlXCIpKSB7XG4gICAgICAgIHRoaXMuc2V0KFwiQ29udGVudC1UeXBlXCIsIFwiYXBwbGljYXRpb24vanNvblwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnNlbmQoYm9keSk7XG4gICAgfTtcbiAgICByZXMuanNvbnAgPSBmdW5jdGlvbiBqc29ucChvYmopIHtcbiAgICAgIHZhciBhcHAgPSB0aGlzLmFwcDtcbiAgICAgIHZhciBlc2NhcGUyID0gYXBwLmdldChcImpzb24gZXNjYXBlXCIpO1xuICAgICAgdmFyIHJlcGxhY2VyID0gYXBwLmdldChcImpzb24gcmVwbGFjZXJcIik7XG4gICAgICB2YXIgc3BhY2VzID0gYXBwLmdldChcImpzb24gc3BhY2VzXCIpO1xuICAgICAgdmFyIGJvZHkgPSBzdHJpbmdpZnkob2JqLCByZXBsYWNlciwgc3BhY2VzLCBlc2NhcGUyKTtcbiAgICAgIHZhciBjYWxsYmFjayA9IHRoaXMucmVxLnF1ZXJ5W2FwcC5nZXQoXCJqc29ucCBjYWxsYmFjayBuYW1lXCIpXTtcbiAgICAgIGlmICghdGhpcy5nZXQoXCJDb250ZW50LVR5cGVcIikpIHtcbiAgICAgICAgdGhpcy5zZXQoXCJYLUNvbnRlbnQtVHlwZS1PcHRpb25zXCIsIFwibm9zbmlmZlwiKTtcbiAgICAgICAgdGhpcy5zZXQoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIpO1xuICAgICAgfVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2FsbGJhY2spKSB7XG4gICAgICAgIGNhbGxiYWNrID0gY2FsbGJhY2tbMF07XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSBcInN0cmluZ1wiICYmIGNhbGxiYWNrLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICB0aGlzLnNldChcIlgtQ29udGVudC1UeXBlLU9wdGlvbnNcIiwgXCJub3NuaWZmXCIpO1xuICAgICAgICB0aGlzLnNldChcIkNvbnRlbnQtVHlwZVwiLCBcInRleHQvamF2YXNjcmlwdFwiKTtcbiAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjay5yZXBsYWNlKC9bXlxcW1xcXVxcdyQuXS9nLCBcIlwiKTtcbiAgICAgICAgaWYgKGJvZHkgPT09IHZvaWQgMCkge1xuICAgICAgICAgIGJvZHkgPSBcIlwiO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBib2R5ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgYm9keSA9IGJvZHkucmVwbGFjZSgvXFx1MjAyOC9nLCBcIlxcXFx1MjAyOFwiKS5yZXBsYWNlKC9cXHUyMDI5L2csIFwiXFxcXHUyMDI5XCIpO1xuICAgICAgICB9XG4gICAgICAgIGJvZHkgPSBcIi8qKi8gdHlwZW9mIFwiICsgY2FsbGJhY2sgKyBcIiA9PT0gJ2Z1bmN0aW9uJyAmJiBcIiArIGNhbGxiYWNrICsgXCIoXCIgKyBib2R5ICsgXCIpO1wiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuc2VuZChib2R5KTtcbiAgICB9O1xuICAgIHJlcy5zZW5kU3RhdHVzID0gZnVuY3Rpb24gc2VuZFN0YXR1cyhzdGF0dXNDb2RlKSB7XG4gICAgICB2YXIgYm9keSA9IHN0YXR1c2VzLm1lc3NhZ2Vbc3RhdHVzQ29kZV0gfHwgU3RyaW5nKHN0YXR1c0NvZGUpO1xuICAgICAgdGhpcy5zdGF0dXMoc3RhdHVzQ29kZSk7XG4gICAgICB0aGlzLnR5cGUoXCJ0eHRcIik7XG4gICAgICByZXR1cm4gdGhpcy5zZW5kKGJvZHkpO1xuICAgIH07XG4gICAgcmVzLnNlbmRGaWxlID0gZnVuY3Rpb24gc2VuZEZpbGUocGF0aDIsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgZG9uZSA9IGNhbGxiYWNrO1xuICAgICAgdmFyIHJlcSA9IHRoaXMucmVxO1xuICAgICAgdmFyIHJlczIgPSB0aGlzO1xuICAgICAgdmFyIG5leHQgPSByZXEubmV4dDtcbiAgICAgIHZhciBvcHRzID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIGlmICghcGF0aDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInBhdGggYXJndW1lbnQgaXMgcmVxdWlyZWQgdG8gcmVzLnNlbmRGaWxlXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBwYXRoMiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicGF0aCBtdXN0IGJlIGEgc3RyaW5nIHRvIHJlcy5zZW5kRmlsZVwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGRvbmUgPSBvcHRpb25zO1xuICAgICAgICBvcHRzID0ge307XG4gICAgICB9XG4gICAgICBpZiAoIW9wdHMucm9vdCAmJiAhcGF0aElzQWJzb2x1dGUocGF0aDIpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJwYXRoIG11c3QgYmUgYWJzb2x1dGUgb3Igc3BlY2lmeSByb290IHRvIHJlcy5zZW5kRmlsZVwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBwYXRobmFtZSA9IGVuY29kZVVSSShwYXRoMik7XG4gICAgICBvcHRzLmV0YWcgPSB0aGlzLmFwcC5lbmFibGVkKFwiZXRhZ1wiKTtcbiAgICAgIHZhciBmaWxlID0gc2VuZChyZXEsIHBhdGhuYW1lLCBvcHRzKTtcbiAgICAgIHNlbmRmaWxlKHJlczIsIGZpbGUsIG9wdHMsIGZ1bmN0aW9uKGVycjIpIHtcbiAgICAgICAgaWYgKGRvbmUpIHJldHVybiBkb25lKGVycjIpO1xuICAgICAgICBpZiAoZXJyMiAmJiBlcnIyLmNvZGUgPT09IFwiRUlTRElSXCIpIHJldHVybiBuZXh0KCk7XG4gICAgICAgIGlmIChlcnIyICYmIGVycjIuY29kZSAhPT0gXCJFQ09OTkFCT1JURURcIiAmJiBlcnIyLnN5c2NhbGwgIT09IFwid3JpdGVcIikge1xuICAgICAgICAgIG5leHQoZXJyMik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gICAgcmVzLmRvd25sb2FkID0gZnVuY3Rpb24gZG93bmxvYWQocGF0aDIsIGZpbGVuYW1lLCBvcHRpb25zLCBjYWxsYmFjaykge1xuICAgICAgdmFyIGRvbmUgPSBjYWxsYmFjaztcbiAgICAgIHZhciBuYW1lID0gZmlsZW5hbWU7XG4gICAgICB2YXIgb3B0cyA9IG9wdGlvbnMgfHwgbnVsbDtcbiAgICAgIGlmICh0eXBlb2YgZmlsZW5hbWUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBkb25lID0gZmlsZW5hbWU7XG4gICAgICAgIG5hbWUgPSBudWxsO1xuICAgICAgICBvcHRzID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBkb25lID0gb3B0aW9ucztcbiAgICAgICAgb3B0cyA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGZpbGVuYW1lID09PSBcIm9iamVjdFwiICYmICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJmdW5jdGlvblwiIHx8IG9wdGlvbnMgPT09IHZvaWQgMCkpIHtcbiAgICAgICAgbmFtZSA9IG51bGw7XG4gICAgICAgIG9wdHMgPSBmaWxlbmFtZTtcbiAgICAgIH1cbiAgICAgIHZhciBoZWFkZXJzID0ge1xuICAgICAgICBcIkNvbnRlbnQtRGlzcG9zaXRpb25cIjogY29udGVudERpc3Bvc2l0aW9uKG5hbWUgfHwgcGF0aDIpXG4gICAgICB9O1xuICAgICAgaWYgKG9wdHMgJiYgb3B0cy5oZWFkZXJzKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMob3B0cy5oZWFkZXJzKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgICAgICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpICE9PSBcImNvbnRlbnQtZGlzcG9zaXRpb25cIikge1xuICAgICAgICAgICAgaGVhZGVyc1trZXldID0gb3B0cy5oZWFkZXJzW2tleV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBvcHRzID0gT2JqZWN0LmNyZWF0ZShvcHRzKTtcbiAgICAgIG9wdHMuaGVhZGVycyA9IGhlYWRlcnM7XG4gICAgICB2YXIgZnVsbFBhdGggPSAhb3B0cy5yb290ID8gcmVzb2x2ZShwYXRoMikgOiBwYXRoMjtcbiAgICAgIHJldHVybiB0aGlzLnNlbmRGaWxlKGZ1bGxQYXRoLCBvcHRzLCBkb25lKTtcbiAgICB9O1xuICAgIHJlcy5jb250ZW50VHlwZSA9IHJlcy50eXBlID0gZnVuY3Rpb24gY29udGVudFR5cGUyKHR5cGUpIHtcbiAgICAgIHZhciBjdCA9IHR5cGUuaW5kZXhPZihcIi9cIikgPT09IC0xID8gbWltZS5jb250ZW50VHlwZSh0eXBlKSB8fCBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiIDogdHlwZTtcbiAgICAgIHJldHVybiB0aGlzLnNldChcIkNvbnRlbnQtVHlwZVwiLCBjdCk7XG4gICAgfTtcbiAgICByZXMuZm9ybWF0ID0gZnVuY3Rpb24ob2JqKSB7XG4gICAgICB2YXIgcmVxID0gdGhpcy5yZXE7XG4gICAgICB2YXIgbmV4dCA9IHJlcS5uZXh0O1xuICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmopLmZpbHRlcihmdW5jdGlvbih2KSB7XG4gICAgICAgIHJldHVybiB2ICE9PSBcImRlZmF1bHRcIjtcbiAgICAgIH0pO1xuICAgICAgdmFyIGtleSA9IGtleXMubGVuZ3RoID4gMCA/IHJlcS5hY2NlcHRzKGtleXMpIDogZmFsc2U7XG4gICAgICB0aGlzLnZhcnkoXCJBY2NlcHRcIik7XG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIHRoaXMuc2V0KFwiQ29udGVudC1UeXBlXCIsIG5vcm1hbGl6ZVR5cGUoa2V5KS52YWx1ZSk7XG4gICAgICAgIG9ialtrZXldKHJlcSwgdGhpcywgbmV4dCk7XG4gICAgICB9IGVsc2UgaWYgKG9iai5kZWZhdWx0KSB7XG4gICAgICAgIG9iai5kZWZhdWx0KHJlcSwgdGhpcywgbmV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0KGNyZWF0ZUVycm9yKDQwNiwge1xuICAgICAgICAgIHR5cGVzOiBub3JtYWxpemVUeXBlcyhrZXlzKS5tYXAoZnVuY3Rpb24obykge1xuICAgICAgICAgICAgcmV0dXJuIG8udmFsdWU7XG4gICAgICAgICAgfSlcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICByZXMuYXR0YWNobWVudCA9IGZ1bmN0aW9uIGF0dGFjaG1lbnQoZmlsZW5hbWUpIHtcbiAgICAgIGlmIChmaWxlbmFtZSkge1xuICAgICAgICB0aGlzLnR5cGUoZXh0bmFtZShmaWxlbmFtZSkpO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXQoXCJDb250ZW50LURpc3Bvc2l0aW9uXCIsIGNvbnRlbnREaXNwb3NpdGlvbihmaWxlbmFtZSkpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICByZXMuYXBwZW5kID0gZnVuY3Rpb24gYXBwZW5kKGZpZWxkLCB2YWwpIHtcbiAgICAgIHZhciBwcmV2ID0gdGhpcy5nZXQoZmllbGQpO1xuICAgICAgdmFyIHZhbHVlID0gdmFsO1xuICAgICAgaWYgKHByZXYpIHtcbiAgICAgICAgdmFsdWUgPSBBcnJheS5pc0FycmF5KHByZXYpID8gcHJldi5jb25jYXQodmFsKSA6IEFycmF5LmlzQXJyYXkodmFsKSA/IFtwcmV2XS5jb25jYXQodmFsKSA6IFtwcmV2LCB2YWxdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuc2V0KGZpZWxkLCB2YWx1ZSk7XG4gICAgfTtcbiAgICByZXMuc2V0ID0gcmVzLmhlYWRlciA9IGZ1bmN0aW9uIGhlYWRlcihmaWVsZCwgdmFsKSB7XG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICB2YXIgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbCkgPyB2YWwubWFwKFN0cmluZykgOiBTdHJpbmcodmFsKTtcbiAgICAgICAgaWYgKGZpZWxkLnRvTG93ZXJDYXNlKCkgPT09IFwiY29udGVudC10eXBlXCIpIHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDb250ZW50LVR5cGUgY2Fubm90IGJlIHNldCB0byBhbiBBcnJheVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFsdWUgPSBtaW1lLmNvbnRlbnRUeXBlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldEhlYWRlcihmaWVsZCwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIGZpZWxkKSB7XG4gICAgICAgICAgdGhpcy5zZXQoa2V5LCBmaWVsZFtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICByZXMuZ2V0ID0gZnVuY3Rpb24oZmllbGQpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEhlYWRlcihmaWVsZCk7XG4gICAgfTtcbiAgICByZXMuY2xlYXJDb29raWUgPSBmdW5jdGlvbiBjbGVhckNvb2tpZShuYW1lLCBvcHRpb25zKSB7XG4gICAgICBjb25zdCBvcHRzID0geyBwYXRoOiBcIi9cIiwgLi4ub3B0aW9ucywgZXhwaXJlczogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKDEpIH07XG4gICAgICBkZWxldGUgb3B0cy5tYXhBZ2U7XG4gICAgICByZXR1cm4gdGhpcy5jb29raWUobmFtZSwgXCJcIiwgb3B0cyk7XG4gICAgfTtcbiAgICByZXMuY29va2llID0gZnVuY3Rpb24obmFtZSwgdmFsdWUsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBvcHRzID0geyAuLi5vcHRpb25zIH07XG4gICAgICB2YXIgc2VjcmV0ID0gdGhpcy5yZXEuc2VjcmV0O1xuICAgICAgdmFyIHNpZ25lZCA9IG9wdHMuc2lnbmVkO1xuICAgICAgaWYgKHNpZ25lZCAmJiAhc2VjcmV0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY29va2llUGFyc2VyKFwic2VjcmV0XCIpIHJlcXVpcmVkIGZvciBzaWduZWQgY29va2llcycpO1xuICAgICAgfVxuICAgICAgdmFyIHZhbCA9IHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiA/IFwiajpcIiArIEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICBpZiAoc2lnbmVkKSB7XG4gICAgICAgIHZhbCA9IFwiczpcIiArIHNpZ24odmFsLCBzZWNyZXQpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdHMubWF4QWdlICE9IG51bGwpIHtcbiAgICAgICAgdmFyIG1heEFnZSA9IG9wdHMubWF4QWdlIC0gMDtcbiAgICAgICAgaWYgKCFpc05hTihtYXhBZ2UpKSB7XG4gICAgICAgICAgb3B0cy5leHBpcmVzID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIG1heEFnZSk7XG4gICAgICAgICAgb3B0cy5tYXhBZ2UgPSBNYXRoLmZsb29yKG1heEFnZSAvIDFlMyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChvcHRzLnBhdGggPT0gbnVsbCkge1xuICAgICAgICBvcHRzLnBhdGggPSBcIi9cIjtcbiAgICAgIH1cbiAgICAgIHRoaXMuYXBwZW5kKFwiU2V0LUNvb2tpZVwiLCBjb29raWUuc2VyaWFsaXplKG5hbWUsIFN0cmluZyh2YWwpLCBvcHRzKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIHJlcy5sb2NhdGlvbiA9IGZ1bmN0aW9uIGxvY2F0aW9uKHVybCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0KFwiTG9jYXRpb25cIiwgZW5jb2RlVXJsKHVybCkpO1xuICAgIH07XG4gICAgcmVzLnJlZGlyZWN0ID0gZnVuY3Rpb24gcmVkaXJlY3QodXJsKSB7XG4gICAgICB2YXIgYWRkcmVzcyA9IHVybDtcbiAgICAgIHZhciBib2R5O1xuICAgICAgdmFyIHN0YXR1cyA9IDMwMjtcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIHN0YXR1cyA9IGFyZ3VtZW50c1swXTtcbiAgICAgICAgYWRkcmVzcyA9IGFyZ3VtZW50c1sxXTtcbiAgICAgIH1cbiAgICAgIGFkZHJlc3MgPSB0aGlzLmxvY2F0aW9uKGFkZHJlc3MpLmdldChcIkxvY2F0aW9uXCIpO1xuICAgICAgdGhpcy5mb3JtYXQoe1xuICAgICAgICB0ZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICBib2R5ID0gc3RhdHVzZXMubWVzc2FnZVtzdGF0dXNdICsgXCIuIFJlZGlyZWN0aW5nIHRvIFwiICsgYWRkcmVzcztcbiAgICAgICAgfSxcbiAgICAgICAgaHRtbDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIHUgPSBlc2NhcGVIdG1sKGFkZHJlc3MpO1xuICAgICAgICAgIGJvZHkgPSBcIjxwPlwiICsgc3RhdHVzZXMubWVzc2FnZVtzdGF0dXNdICsgXCIuIFJlZGlyZWN0aW5nIHRvIFwiICsgdSArIFwiPC9wPlwiO1xuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICBib2R5ID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnN0YXR1cyhzdGF0dXMpO1xuICAgICAgdGhpcy5zZXQoXCJDb250ZW50LUxlbmd0aFwiLCBCdWZmZXIuYnl0ZUxlbmd0aChib2R5KSk7XG4gICAgICBpZiAodGhpcy5yZXEubWV0aG9kID09PSBcIkhFQURcIikge1xuICAgICAgICB0aGlzLmVuZCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbmQoYm9keSk7XG4gICAgICB9XG4gICAgfTtcbiAgICByZXMudmFyeSA9IGZ1bmN0aW9uKGZpZWxkKSB7XG4gICAgICB2YXJ5KHRoaXMsIGZpZWxkKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgcmVzLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcih2aWV3LCBvcHRpb25zLCBjYWxsYmFjaykge1xuICAgICAgdmFyIGFwcCA9IHRoaXMucmVxLmFwcDtcbiAgICAgIHZhciBkb25lID0gY2FsbGJhY2s7XG4gICAgICB2YXIgb3B0cyA9IG9wdGlvbnMgfHwge307XG4gICAgICB2YXIgcmVxID0gdGhpcy5yZXE7XG4gICAgICB2YXIgc2VsZjIgPSB0aGlzO1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgZG9uZSA9IG9wdGlvbnM7XG4gICAgICAgIG9wdHMgPSB7fTtcbiAgICAgIH1cbiAgICAgIG9wdHMuX2xvY2FscyA9IHNlbGYyLmxvY2FscztcbiAgICAgIGRvbmUgPSBkb25lIHx8IGZ1bmN0aW9uKGVycjIsIHN0cikge1xuICAgICAgICBpZiAoZXJyMikgcmV0dXJuIHJlcS5uZXh0KGVycjIpO1xuICAgICAgICBzZWxmMi5zZW5kKHN0cik7XG4gICAgICB9O1xuICAgICAgYXBwLnJlbmRlcih2aWV3LCBvcHRzLCBkb25lKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIHNlbmRmaWxlKHJlczIsIGZpbGUsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgZG9uZSA9IGZhbHNlO1xuICAgICAgdmFyIHN0cmVhbWluZztcbiAgICAgIGZ1bmN0aW9uIG9uYWJvcnRlZCgpIHtcbiAgICAgICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICAgIHZhciBlcnIyID0gbmV3IEVycm9yKFwiUmVxdWVzdCBhYm9ydGVkXCIpO1xuICAgICAgICBlcnIyLmNvZGUgPSBcIkVDT05OQUJPUlRFRFwiO1xuICAgICAgICBjYWxsYmFjayhlcnIyKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIG9uZGlyZWN0b3J5KCkge1xuICAgICAgICBpZiAoZG9uZSkgcmV0dXJuO1xuICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgICAgdmFyIGVycjIgPSBuZXcgRXJyb3IoXCJFSVNESVIsIHJlYWRcIik7XG4gICAgICAgIGVycjIuY29kZSA9IFwiRUlTRElSXCI7XG4gICAgICAgIGNhbGxiYWNrKGVycjIpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gb25lcnJvcihlcnIyKSB7XG4gICAgICAgIGlmIChkb25lKSByZXR1cm47XG4gICAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgICBjYWxsYmFjayhlcnIyKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIG9uZW5kKCkge1xuICAgICAgICBpZiAoZG9uZSkgcmV0dXJuO1xuICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIG9uZmlsZSgpIHtcbiAgICAgICAgc3RyZWFtaW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBvbmZpbmlzaChlcnIyKSB7XG4gICAgICAgIGlmIChlcnIyICYmIGVycjIuY29kZSA9PT0gXCJFQ09OTlJFU0VUXCIpIHJldHVybiBvbmFib3J0ZWQoKTtcbiAgICAgICAgaWYgKGVycjIpIHJldHVybiBvbmVycm9yKGVycjIpO1xuICAgICAgICBpZiAoZG9uZSkgcmV0dXJuO1xuICAgICAgICBzZXRJbW1lZGlhdGUoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgaWYgKHN0cmVhbWluZyAhPT0gZmFsc2UgJiYgIWRvbmUpIHtcbiAgICAgICAgICAgIG9uYWJvcnRlZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZG9uZSkgcmV0dXJuO1xuICAgICAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gb25zdHJlYW0oKSB7XG4gICAgICAgIHN0cmVhbWluZyA9IHRydWU7XG4gICAgICB9XG4gICAgICBmaWxlLm9uKFwiZGlyZWN0b3J5XCIsIG9uZGlyZWN0b3J5KTtcbiAgICAgIGZpbGUub24oXCJlbmRcIiwgb25lbmQpO1xuICAgICAgZmlsZS5vbihcImVycm9yXCIsIG9uZXJyb3IpO1xuICAgICAgZmlsZS5vbihcImZpbGVcIiwgb25maWxlKTtcbiAgICAgIGZpbGUub24oXCJzdHJlYW1cIiwgb25zdHJlYW0pO1xuICAgICAgb25GaW5pc2hlZChyZXMyLCBvbmZpbmlzaCk7XG4gICAgICBpZiAob3B0aW9ucy5oZWFkZXJzKSB7XG4gICAgICAgIGZpbGUub24oXCJoZWFkZXJzXCIsIGZ1bmN0aW9uIGhlYWRlcnMocmVzMykge1xuICAgICAgICAgIHZhciBvYmogPSBvcHRpb25zLmhlYWRlcnM7XG4gICAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGsgPSBrZXlzW2ldO1xuICAgICAgICAgICAgcmVzMy5zZXRIZWFkZXIoaywgb2JqW2tdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgZmlsZS5waXBlKHJlczIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdHJpbmdpZnkodmFsdWUsIHJlcGxhY2VyLCBzcGFjZXMsIGVzY2FwZTIpIHtcbiAgICAgIHZhciBqc29uID0gcmVwbGFjZXIgfHwgc3BhY2VzID8gSlNPTi5zdHJpbmdpZnkodmFsdWUsIHJlcGxhY2VyLCBzcGFjZXMpIDogSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgaWYgKGVzY2FwZTIgJiYgdHlwZW9mIGpzb24gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAganNvbiA9IGpzb24ucmVwbGFjZSgvWzw+Jl0vZywgZnVuY3Rpb24oYykge1xuICAgICAgICAgIHN3aXRjaCAoYy5jaGFyQ29kZUF0KDApKSB7XG4gICAgICAgICAgICBjYXNlIDYwOlxuICAgICAgICAgICAgICByZXR1cm4gXCJcXFxcdTAwM2NcIjtcbiAgICAgICAgICAgIGNhc2UgNjI6XG4gICAgICAgICAgICAgIHJldHVybiBcIlxcXFx1MDAzZVwiO1xuICAgICAgICAgICAgY2FzZSAzODpcbiAgICAgICAgICAgICAgcmV0dXJuIFwiXFxcXHUwMDI2XCI7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogdW5yZWFjaGFibGUgZGVmYXVsdCAqL1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIGM7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBqc29uO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9zZXJ2ZS1zdGF0aWMvaW5kZXguanNcbnZhciByZXF1aXJlX3NlcnZlX3N0YXRpYyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zZXJ2ZS1zdGF0aWMvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBlbmNvZGVVcmwgPSByZXF1aXJlX2VuY29kZXVybCgpO1xuICAgIHZhciBlc2NhcGVIdG1sID0gcmVxdWlyZV9lc2NhcGVfaHRtbCgpO1xuICAgIHZhciBwYXJzZVVybCA9IHJlcXVpcmVfcGFyc2V1cmwoKTtcbiAgICB2YXIgcmVzb2x2ZSA9IHJlcXVpcmUoXCJwYXRoXCIpLnJlc29sdmU7XG4gICAgdmFyIHNlbmQgPSByZXF1aXJlX3NlbmQoKTtcbiAgICB2YXIgdXJsID0gcmVxdWlyZShcInVybFwiKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBzZXJ2ZVN0YXRpYztcbiAgICBmdW5jdGlvbiBzZXJ2ZVN0YXRpYyhyb290LCBvcHRpb25zKSB7XG4gICAgICBpZiAoIXJvb3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJvb3QgcGF0aCByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygcm9vdCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicm9vdCBwYXRoIG11c3QgYmUgYSBzdHJpbmdcIik7XG4gICAgICB9XG4gICAgICB2YXIgb3B0cyA9IE9iamVjdC5jcmVhdGUob3B0aW9ucyB8fCBudWxsKTtcbiAgICAgIHZhciBmYWxsdGhyb3VnaCA9IG9wdHMuZmFsbHRocm91Z2ggIT09IGZhbHNlO1xuICAgICAgdmFyIHJlZGlyZWN0ID0gb3B0cy5yZWRpcmVjdCAhPT0gZmFsc2U7XG4gICAgICB2YXIgc2V0SGVhZGVycyA9IG9wdHMuc2V0SGVhZGVycztcbiAgICAgIGlmIChzZXRIZWFkZXJzICYmIHR5cGVvZiBzZXRIZWFkZXJzICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBzZXRIZWFkZXJzIG11c3QgYmUgZnVuY3Rpb25cIik7XG4gICAgICB9XG4gICAgICBvcHRzLm1heGFnZSA9IG9wdHMubWF4YWdlIHx8IG9wdHMubWF4QWdlIHx8IDA7XG4gICAgICBvcHRzLnJvb3QgPSByZXNvbHZlKHJvb3QpO1xuICAgICAgdmFyIG9uRGlyZWN0b3J5ID0gcmVkaXJlY3QgPyBjcmVhdGVSZWRpcmVjdERpcmVjdG9yeUxpc3RlbmVyKCkgOiBjcmVhdGVOb3RGb3VuZERpcmVjdG9yeUxpc3RlbmVyKCk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gc2VydmVTdGF0aWMyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICAgIGlmIChyZXEubWV0aG9kICE9PSBcIkdFVFwiICYmIHJlcS5tZXRob2QgIT09IFwiSEVBRFwiKSB7XG4gICAgICAgICAgaWYgKGZhbGx0aHJvdWdoKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNTtcbiAgICAgICAgICByZXMuc2V0SGVhZGVyKFwiQWxsb3dcIiwgXCJHRVQsIEhFQURcIik7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtTGVuZ3RoXCIsIFwiMFwiKTtcbiAgICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmb3J3YXJkRXJyb3IgPSAhZmFsbHRocm91Z2g7XG4gICAgICAgIHZhciBvcmlnaW5hbFVybCA9IHBhcnNlVXJsLm9yaWdpbmFsKHJlcSk7XG4gICAgICAgIHZhciBwYXRoID0gcGFyc2VVcmwocmVxKS5wYXRobmFtZTtcbiAgICAgICAgaWYgKHBhdGggPT09IFwiL1wiICYmIG9yaWdpbmFsVXJsLnBhdGhuYW1lLnN1YnN0cigtMSkgIT09IFwiL1wiKSB7XG4gICAgICAgICAgcGF0aCA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHN0cmVhbSA9IHNlbmQocmVxLCBwYXRoLCBvcHRzKTtcbiAgICAgICAgc3RyZWFtLm9uKFwiZGlyZWN0b3J5XCIsIG9uRGlyZWN0b3J5KTtcbiAgICAgICAgaWYgKHNldEhlYWRlcnMpIHtcbiAgICAgICAgICBzdHJlYW0ub24oXCJoZWFkZXJzXCIsIHNldEhlYWRlcnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmYWxsdGhyb3VnaCkge1xuICAgICAgICAgIHN0cmVhbS5vbihcImZpbGVcIiwgZnVuY3Rpb24gb25GaWxlKCkge1xuICAgICAgICAgICAgZm9yd2FyZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBzdHJlYW0ub24oXCJlcnJvclwiLCBmdW5jdGlvbiBlcnJvcihlcnIyKSB7XG4gICAgICAgICAgaWYgKGZvcndhcmRFcnJvciB8fCAhKGVycjIuc3RhdHVzQ29kZSA8IDUwMCkpIHtcbiAgICAgICAgICAgIG5leHQoZXJyMik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHN0cmVhbS5waXBlKHJlcyk7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb2xsYXBzZUxlYWRpbmdTbGFzaGVzKHN0cikge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHN0ci5jaGFyQ29kZUF0KGkpICE9PSA0Nykge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gaSA+IDEgPyBcIi9cIiArIHN0ci5zdWJzdHIoaSkgOiBzdHI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUh0bWxEb2N1bWVudCh0aXRsZSwgYm9keSkge1xuICAgICAgcmV0dXJuICc8IURPQ1RZUEUgaHRtbD5cXG48aHRtbCBsYW5nPVwiZW5cIj5cXG48aGVhZD5cXG48bWV0YSBjaGFyc2V0PVwidXRmLThcIj5cXG48dGl0bGU+JyArIHRpdGxlICsgXCI8L3RpdGxlPlxcbjwvaGVhZD5cXG48Ym9keT5cXG48cHJlPlwiICsgYm9keSArIFwiPC9wcmU+XFxuPC9ib2R5PlxcbjwvaHRtbD5cXG5cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlTm90Rm91bmREaXJlY3RvcnlMaXN0ZW5lcigpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiBub3RGb3VuZCgpIHtcbiAgICAgICAgdGhpcy5lcnJvcig0MDQpO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlUmVkaXJlY3REaXJlY3RvcnlMaXN0ZW5lcigpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiByZWRpcmVjdChyZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzVHJhaWxpbmdTbGFzaCgpKSB7XG4gICAgICAgICAgdGhpcy5lcnJvcig0MDQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb3JpZ2luYWxVcmwgPSBwYXJzZVVybC5vcmlnaW5hbCh0aGlzLnJlcSk7XG4gICAgICAgIG9yaWdpbmFsVXJsLnBhdGggPSBudWxsO1xuICAgICAgICBvcmlnaW5hbFVybC5wYXRobmFtZSA9IGNvbGxhcHNlTGVhZGluZ1NsYXNoZXMob3JpZ2luYWxVcmwucGF0aG5hbWUgKyBcIi9cIik7XG4gICAgICAgIHZhciBsb2MgPSBlbmNvZGVVcmwodXJsLmZvcm1hdChvcmlnaW5hbFVybCkpO1xuICAgICAgICB2YXIgZG9jID0gY3JlYXRlSHRtbERvY3VtZW50KFwiUmVkaXJlY3RpbmdcIiwgXCJSZWRpcmVjdGluZyB0byBcIiArIGVzY2FwZUh0bWwobG9jKSk7XG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMzAxO1xuICAgICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwidGV4dC9odG1sOyBjaGFyc2V0PVVURi04XCIpO1xuICAgICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1MZW5ndGhcIiwgQnVmZmVyLmJ5dGVMZW5ndGgoZG9jKSk7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LVNlY3VyaXR5LVBvbGljeVwiLCBcImRlZmF1bHQtc3JjICdub25lJ1wiKTtcbiAgICAgICAgcmVzLnNldEhlYWRlcihcIlgtQ29udGVudC1UeXBlLU9wdGlvbnNcIiwgXCJub3NuaWZmXCIpO1xuICAgICAgICByZXMuc2V0SGVhZGVyKFwiTG9jYXRpb25cIiwgbG9jKTtcbiAgICAgICAgcmVzLmVuZChkb2MpO1xuICAgICAgfTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvZXhwcmVzcy5qc1xudmFyIHJlcXVpcmVfZXhwcmVzcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9leHByZXNzL2xpYi9leHByZXNzLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgYm9keVBhcnNlciA9IHJlcXVpcmVfYm9keV9wYXJzZXIoKTtcbiAgICB2YXIgRXZlbnRFbWl0dGVyID0gcmVxdWlyZShcIm5vZGU6ZXZlbnRzXCIpLkV2ZW50RW1pdHRlcjtcbiAgICB2YXIgbWl4aW4gPSByZXF1aXJlX21lcmdlX2Rlc2NyaXB0b3JzKCk7XG4gICAgdmFyIHByb3RvID0gcmVxdWlyZV9hcHBsaWNhdGlvbigpO1xuICAgIHZhciBSb3V0ZXIgPSByZXF1aXJlX3JvdXRlcigpO1xuICAgIHZhciByZXEgPSByZXF1aXJlX3JlcXVlc3QoKTtcbiAgICB2YXIgcmVzID0gcmVxdWlyZV9yZXNwb25zZSgpO1xuICAgIGV4cG9ydHMyID0gbW9kdWxlMi5leHBvcnRzID0gY3JlYXRlQXBwbGljYXRpb247XG4gICAgZnVuY3Rpb24gY3JlYXRlQXBwbGljYXRpb24oKSB7XG4gICAgICB2YXIgYXBwID0gZnVuY3Rpb24ocmVxMiwgcmVzMiwgbmV4dCkge1xuICAgICAgICBhcHAuaGFuZGxlKHJlcTIsIHJlczIsIG5leHQpO1xuICAgICAgfTtcbiAgICAgIG1peGluKGFwcCwgRXZlbnRFbWl0dGVyLnByb3RvdHlwZSwgZmFsc2UpO1xuICAgICAgbWl4aW4oYXBwLCBwcm90bywgZmFsc2UpO1xuICAgICAgYXBwLnJlcXVlc3QgPSBPYmplY3QuY3JlYXRlKHJlcSwge1xuICAgICAgICBhcHA6IHsgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IGFwcCB9XG4gICAgICB9KTtcbiAgICAgIGFwcC5yZXNwb25zZSA9IE9iamVjdC5jcmVhdGUocmVzLCB7XG4gICAgICAgIGFwcDogeyBjb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogYXBwIH1cbiAgICAgIH0pO1xuICAgICAgYXBwLmluaXQoKTtcbiAgICAgIHJldHVybiBhcHA7XG4gICAgfVxuICAgIGV4cG9ydHMyLmFwcGxpY2F0aW9uID0gcHJvdG87XG4gICAgZXhwb3J0czIucmVxdWVzdCA9IHJlcTtcbiAgICBleHBvcnRzMi5yZXNwb25zZSA9IHJlcztcbiAgICBleHBvcnRzMi5Sb3V0ZSA9IFJvdXRlci5Sb3V0ZTtcbiAgICBleHBvcnRzMi5Sb3V0ZXIgPSBSb3V0ZXI7XG4gICAgZXhwb3J0czIuanNvbiA9IGJvZHlQYXJzZXIuanNvbjtcbiAgICBleHBvcnRzMi5yYXcgPSBib2R5UGFyc2VyLnJhdztcbiAgICBleHBvcnRzMi5zdGF0aWMgPSByZXF1aXJlX3NlcnZlX3N0YXRpYygpO1xuICAgIGV4cG9ydHMyLnRleHQgPSBib2R5UGFyc2VyLnRleHQ7XG4gICAgZXhwb3J0czIudXJsZW5jb2RlZCA9IGJvZHlQYXJzZXIudXJsZW5jb2RlZDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9leHByZXNzL2luZGV4LmpzXG52YXIgcmVxdWlyZV9leHByZXNzMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9leHByZXNzL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSByZXF1aXJlX2V4cHJlc3MoKTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9sb2Rhc2gvbG9kYXNoLmpzXG52YXIgcmVxdWlyZV9sb2Rhc2ggPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbG9kYXNoL2xvZGFzaC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgKGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHVuZGVmaW5lZDI7XG4gICAgICB2YXIgVkVSU0lPTiA9IFwiNC4xNy4yMVwiO1xuICAgICAgdmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG4gICAgICB2YXIgQ09SRV9FUlJPUl9URVhUID0gXCJVbnN1cHBvcnRlZCBjb3JlLWpzIHVzZS4gVHJ5IGh0dHBzOi8vbnBtcy5pby9zZWFyY2g/cT1wb255ZmlsbC5cIiwgRlVOQ19FUlJPUl9URVhUID0gXCJFeHBlY3RlZCBhIGZ1bmN0aW9uXCIsIElOVkFMSURfVEVNUExfVkFSX0VSUk9SX1RFWFQgPSBcIkludmFsaWQgYHZhcmlhYmxlYCBvcHRpb24gcGFzc2VkIGludG8gYF8udGVtcGxhdGVgXCI7XG4gICAgICB2YXIgSEFTSF9VTkRFRklORUQgPSBcIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX19cIjtcbiAgICAgIHZhciBNQVhfTUVNT0laRV9TSVpFID0gNTAwO1xuICAgICAgdmFyIFBMQUNFSE9MREVSID0gXCJfX2xvZGFzaF9wbGFjZWhvbGRlcl9fXCI7XG4gICAgICB2YXIgQ0xPTkVfREVFUF9GTEFHID0gMSwgQ0xPTkVfRkxBVF9GTEFHID0gMiwgQ0xPTkVfU1lNQk9MU19GTEFHID0gNDtcbiAgICAgIHZhciBDT01QQVJFX1BBUlRJQUxfRkxBRyA9IDEsIENPTVBBUkVfVU5PUkRFUkVEX0ZMQUcgPSAyO1xuICAgICAgdmFyIFdSQVBfQklORF9GTEFHID0gMSwgV1JBUF9CSU5EX0tFWV9GTEFHID0gMiwgV1JBUF9DVVJSWV9CT1VORF9GTEFHID0gNCwgV1JBUF9DVVJSWV9GTEFHID0gOCwgV1JBUF9DVVJSWV9SSUdIVF9GTEFHID0gMTYsIFdSQVBfUEFSVElBTF9GTEFHID0gMzIsIFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHID0gNjQsIFdSQVBfQVJZX0ZMQUcgPSAxMjgsIFdSQVBfUkVBUkdfRkxBRyA9IDI1NiwgV1JBUF9GTElQX0ZMQUcgPSA1MTI7XG4gICAgICB2YXIgREVGQVVMVF9UUlVOQ19MRU5HVEggPSAzMCwgREVGQVVMVF9UUlVOQ19PTUlTU0lPTiA9IFwiLi4uXCI7XG4gICAgICB2YXIgSE9UX0NPVU5UID0gODAwLCBIT1RfU1BBTiA9IDE2O1xuICAgICAgdmFyIExBWllfRklMVEVSX0ZMQUcgPSAxLCBMQVpZX01BUF9GTEFHID0gMiwgTEFaWV9XSElMRV9GTEFHID0gMztcbiAgICAgIHZhciBJTkZJTklUWSA9IDEgLyAwLCBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MSwgTUFYX0lOVEVHRVIgPSAxNzk3NjkzMTM0ODYyMzE1N2UyOTIsIE5BTiA9IDAgLyAwO1xuICAgICAgdmFyIE1BWF9BUlJBWV9MRU5HVEggPSA0Mjk0OTY3Mjk1LCBNQVhfQVJSQVlfSU5ERVggPSBNQVhfQVJSQVlfTEVOR1RIIC0gMSwgSEFMRl9NQVhfQVJSQVlfTEVOR1RIID0gTUFYX0FSUkFZX0xFTkdUSCA+Pj4gMTtcbiAgICAgIHZhciB3cmFwRmxhZ3MgPSBbXG4gICAgICAgIFtcImFyeVwiLCBXUkFQX0FSWV9GTEFHXSxcbiAgICAgICAgW1wiYmluZFwiLCBXUkFQX0JJTkRfRkxBR10sXG4gICAgICAgIFtcImJpbmRLZXlcIiwgV1JBUF9CSU5EX0tFWV9GTEFHXSxcbiAgICAgICAgW1wiY3VycnlcIiwgV1JBUF9DVVJSWV9GTEFHXSxcbiAgICAgICAgW1wiY3VycnlSaWdodFwiLCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUddLFxuICAgICAgICBbXCJmbGlwXCIsIFdSQVBfRkxJUF9GTEFHXSxcbiAgICAgICAgW1wicGFydGlhbFwiLCBXUkFQX1BBUlRJQUxfRkxBR10sXG4gICAgICAgIFtcInBhcnRpYWxSaWdodFwiLCBXUkFQX1BBUlRJQUxfUklHSFRfRkxBR10sXG4gICAgICAgIFtcInJlYXJnXCIsIFdSQVBfUkVBUkdfRkxBR11cbiAgICAgIF07XG4gICAgICB2YXIgYXJnc1RhZyA9IFwiW29iamVjdCBBcmd1bWVudHNdXCIsIGFycmF5VGFnID0gXCJbb2JqZWN0IEFycmF5XVwiLCBhc3luY1RhZyA9IFwiW29iamVjdCBBc3luY0Z1bmN0aW9uXVwiLCBib29sVGFnID0gXCJbb2JqZWN0IEJvb2xlYW5dXCIsIGRhdGVUYWcgPSBcIltvYmplY3QgRGF0ZV1cIiwgZG9tRXhjVGFnID0gXCJbb2JqZWN0IERPTUV4Y2VwdGlvbl1cIiwgZXJyb3JUYWcgPSBcIltvYmplY3QgRXJyb3JdXCIsIGZ1bmNUYWcgPSBcIltvYmplY3QgRnVuY3Rpb25dXCIsIGdlblRhZyA9IFwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl1cIiwgbWFwVGFnID0gXCJbb2JqZWN0IE1hcF1cIiwgbnVtYmVyVGFnID0gXCJbb2JqZWN0IE51bWJlcl1cIiwgbnVsbFRhZyA9IFwiW29iamVjdCBOdWxsXVwiLCBvYmplY3RUYWcgPSBcIltvYmplY3QgT2JqZWN0XVwiLCBwcm9taXNlVGFnID0gXCJbb2JqZWN0IFByb21pc2VdXCIsIHByb3h5VGFnID0gXCJbb2JqZWN0IFByb3h5XVwiLCByZWdleHBUYWcgPSBcIltvYmplY3QgUmVnRXhwXVwiLCBzZXRUYWcgPSBcIltvYmplY3QgU2V0XVwiLCBzdHJpbmdUYWcgPSBcIltvYmplY3QgU3RyaW5nXVwiLCBzeW1ib2xUYWcgPSBcIltvYmplY3QgU3ltYm9sXVwiLCB1bmRlZmluZWRUYWcgPSBcIltvYmplY3QgVW5kZWZpbmVkXVwiLCB3ZWFrTWFwVGFnID0gXCJbb2JqZWN0IFdlYWtNYXBdXCIsIHdlYWtTZXRUYWcgPSBcIltvYmplY3QgV2Vha1NldF1cIjtcbiAgICAgIHZhciBhcnJheUJ1ZmZlclRhZyA9IFwiW29iamVjdCBBcnJheUJ1ZmZlcl1cIiwgZGF0YVZpZXdUYWcgPSBcIltvYmplY3QgRGF0YVZpZXddXCIsIGZsb2F0MzJUYWcgPSBcIltvYmplY3QgRmxvYXQzMkFycmF5XVwiLCBmbG9hdDY0VGFnID0gXCJbb2JqZWN0IEZsb2F0NjRBcnJheV1cIiwgaW50OFRhZyA9IFwiW29iamVjdCBJbnQ4QXJyYXldXCIsIGludDE2VGFnID0gXCJbb2JqZWN0IEludDE2QXJyYXldXCIsIGludDMyVGFnID0gXCJbb2JqZWN0IEludDMyQXJyYXldXCIsIHVpbnQ4VGFnID0gXCJbb2JqZWN0IFVpbnQ4QXJyYXldXCIsIHVpbnQ4Q2xhbXBlZFRhZyA9IFwiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV1cIiwgdWludDE2VGFnID0gXCJbb2JqZWN0IFVpbnQxNkFycmF5XVwiLCB1aW50MzJUYWcgPSBcIltvYmplY3QgVWludDMyQXJyYXldXCI7XG4gICAgICB2YXIgcmVFbXB0eVN0cmluZ0xlYWRpbmcgPSAvXFxiX19wIFxcKz0gJyc7L2csIHJlRW1wdHlTdHJpbmdNaWRkbGUgPSAvXFxiKF9fcCBcXCs9KSAnJyBcXCsvZywgcmVFbXB0eVN0cmluZ1RyYWlsaW5nID0gLyhfX2VcXCguKj9cXCl8XFxiX190XFwpKSBcXCtcXG4nJzsvZztcbiAgICAgIHZhciByZUVzY2FwZWRIdG1sID0gLyYoPzphbXB8bHR8Z3R8cXVvdHwjMzkpOy9nLCByZVVuZXNjYXBlZEh0bWwgPSAvWyY8PlwiJ10vZywgcmVIYXNFc2NhcGVkSHRtbCA9IFJlZ0V4cChyZUVzY2FwZWRIdG1sLnNvdXJjZSksIHJlSGFzVW5lc2NhcGVkSHRtbCA9IFJlZ0V4cChyZVVuZXNjYXBlZEh0bWwuc291cmNlKTtcbiAgICAgIHZhciByZUVzY2FwZSA9IC88JS0oW1xcc1xcU10rPyklPi9nLCByZUV2YWx1YXRlID0gLzwlKFtcXHNcXFNdKz8pJT4vZywgcmVJbnRlcnBvbGF0ZSA9IC88JT0oW1xcc1xcU10rPyklPi9nO1xuICAgICAgdmFyIHJlSXNEZWVwUHJvcCA9IC9cXC58XFxbKD86W15bXFxdXSp8KFtcIiddKSg/Oig/IVxcMSlbXlxcXFxdfFxcXFwuKSo/XFwxKVxcXS8sIHJlSXNQbGFpblByb3AgPSAvXlxcdyokLywgcmVQcm9wTmFtZSA9IC9bXi5bXFxdXSt8XFxbKD86KC0/XFxkKyg/OlxcLlxcZCspPyl8KFtcIiddKSgoPzooPyFcXDIpW15cXFxcXXxcXFxcLikqPylcXDIpXFxdfCg/PSg/OlxcLnxcXFtcXF0pKD86XFwufFxcW1xcXXwkKSkvZztcbiAgICAgIHZhciByZVJlZ0V4cENoYXIgPSAvW1xcXFxeJC4qKz8oKVtcXF17fXxdL2csIHJlSGFzUmVnRXhwQ2hhciA9IFJlZ0V4cChyZVJlZ0V4cENoYXIuc291cmNlKTtcbiAgICAgIHZhciByZVRyaW1TdGFydCA9IC9eXFxzKy87XG4gICAgICB2YXIgcmVXaGl0ZXNwYWNlID0gL1xccy87XG4gICAgICB2YXIgcmVXcmFwQ29tbWVudCA9IC9cXHsoPzpcXG5cXC9cXCogXFxbd3JhcHBlZCB3aXRoIC4rXFxdIFxcKlxcLyk/XFxuPy8sIHJlV3JhcERldGFpbHMgPSAvXFx7XFxuXFwvXFwqIFxcW3dyYXBwZWQgd2l0aCAoLispXFxdIFxcKi8sIHJlU3BsaXREZXRhaWxzID0gLyw/ICYgLztcbiAgICAgIHZhciByZUFzY2lpV29yZCA9IC9bXlxceDAwLVxceDJmXFx4M2EtXFx4NDBcXHg1Yi1cXHg2MFxceDdiLVxceDdmXSsvZztcbiAgICAgIHZhciByZUZvcmJpZGRlbklkZW50aWZpZXJDaGFycyA9IC9bKCk9LHt9XFxbXFxdXFwvXFxzXS87XG4gICAgICB2YXIgcmVFc2NhcGVDaGFyID0gL1xcXFwoXFxcXCk/L2c7XG4gICAgICB2YXIgcmVFc1RlbXBsYXRlID0gL1xcJFxceyhbXlxcXFx9XSooPzpcXFxcLlteXFxcXH1dKikqKVxcfS9nO1xuICAgICAgdmFyIHJlRmxhZ3MgPSAvXFx3KiQvO1xuICAgICAgdmFyIHJlSXNCYWRIZXggPSAvXlstK10weFswLTlhLWZdKyQvaTtcbiAgICAgIHZhciByZUlzQmluYXJ5ID0gL14wYlswMV0rJC9pO1xuICAgICAgdmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG4gICAgICB2YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcbiAgICAgIHZhciByZUlzVWludCA9IC9eKD86MHxbMS05XVxcZCopJC87XG4gICAgICB2YXIgcmVMYXRpbiA9IC9bXFx4YzAtXFx4ZDZcXHhkOC1cXHhmNlxceGY4LVxceGZmXFx1MDEwMC1cXHUwMTdmXS9nO1xuICAgICAgdmFyIHJlTm9NYXRjaCA9IC8oJF4pLztcbiAgICAgIHZhciByZVVuZXNjYXBlZFN0cmluZyA9IC9bJ1xcblxcclxcdTIwMjhcXHUyMDI5XFxcXF0vZztcbiAgICAgIHZhciByc0FzdHJhbFJhbmdlID0gXCJcXFxcdWQ4MDAtXFxcXHVkZmZmXCIsIHJzQ29tYm9NYXJrc1JhbmdlID0gXCJcXFxcdTAzMDAtXFxcXHUwMzZmXCIsIHJlQ29tYm9IYWxmTWFya3NSYW5nZSA9IFwiXFxcXHVmZTIwLVxcXFx1ZmUyZlwiLCByc0NvbWJvU3ltYm9sc1JhbmdlID0gXCJcXFxcdTIwZDAtXFxcXHUyMGZmXCIsIHJzQ29tYm9SYW5nZSA9IHJzQ29tYm9NYXJrc1JhbmdlICsgcmVDb21ib0hhbGZNYXJrc1JhbmdlICsgcnNDb21ib1N5bWJvbHNSYW5nZSwgcnNEaW5nYmF0UmFuZ2UgPSBcIlxcXFx1MjcwMC1cXFxcdTI3YmZcIiwgcnNMb3dlclJhbmdlID0gXCJhLXpcXFxceGRmLVxcXFx4ZjZcXFxceGY4LVxcXFx4ZmZcIiwgcnNNYXRoT3BSYW5nZSA9IFwiXFxcXHhhY1xcXFx4YjFcXFxceGQ3XFxcXHhmN1wiLCByc05vbkNoYXJSYW5nZSA9IFwiXFxcXHgwMC1cXFxceDJmXFxcXHgzYS1cXFxceDQwXFxcXHg1Yi1cXFxceDYwXFxcXHg3Yi1cXFxceGJmXCIsIHJzUHVuY3R1YXRpb25SYW5nZSA9IFwiXFxcXHUyMDAwLVxcXFx1MjA2ZlwiLCByc1NwYWNlUmFuZ2UgPSBcIiBcXFxcdFxcXFx4MGJcXFxcZlxcXFx4YTBcXFxcdWZlZmZcXFxcblxcXFxyXFxcXHUyMDI4XFxcXHUyMDI5XFxcXHUxNjgwXFxcXHUxODBlXFxcXHUyMDAwXFxcXHUyMDAxXFxcXHUyMDAyXFxcXHUyMDAzXFxcXHUyMDA0XFxcXHUyMDA1XFxcXHUyMDA2XFxcXHUyMDA3XFxcXHUyMDA4XFxcXHUyMDA5XFxcXHUyMDBhXFxcXHUyMDJmXFxcXHUyMDVmXFxcXHUzMDAwXCIsIHJzVXBwZXJSYW5nZSA9IFwiQS1aXFxcXHhjMC1cXFxceGQ2XFxcXHhkOC1cXFxceGRlXCIsIHJzVmFyUmFuZ2UgPSBcIlxcXFx1ZmUwZVxcXFx1ZmUwZlwiLCByc0JyZWFrUmFuZ2UgPSByc01hdGhPcFJhbmdlICsgcnNOb25DaGFyUmFuZ2UgKyByc1B1bmN0dWF0aW9uUmFuZ2UgKyByc1NwYWNlUmFuZ2U7XG4gICAgICB2YXIgcnNBcG9zID0gXCJbJ1xcdTIwMTldXCIsIHJzQXN0cmFsID0gXCJbXCIgKyByc0FzdHJhbFJhbmdlICsgXCJdXCIsIHJzQnJlYWsgPSBcIltcIiArIHJzQnJlYWtSYW5nZSArIFwiXVwiLCByc0NvbWJvID0gXCJbXCIgKyByc0NvbWJvUmFuZ2UgKyBcIl1cIiwgcnNEaWdpdHMgPSBcIlxcXFxkK1wiLCByc0RpbmdiYXQgPSBcIltcIiArIHJzRGluZ2JhdFJhbmdlICsgXCJdXCIsIHJzTG93ZXIgPSBcIltcIiArIHJzTG93ZXJSYW5nZSArIFwiXVwiLCByc01pc2MgPSBcIlteXCIgKyByc0FzdHJhbFJhbmdlICsgcnNCcmVha1JhbmdlICsgcnNEaWdpdHMgKyByc0RpbmdiYXRSYW5nZSArIHJzTG93ZXJSYW5nZSArIHJzVXBwZXJSYW5nZSArIFwiXVwiLCByc0ZpdHogPSBcIlxcXFx1ZDgzY1tcXFxcdWRmZmItXFxcXHVkZmZmXVwiLCByc01vZGlmaWVyID0gXCIoPzpcIiArIHJzQ29tYm8gKyBcInxcIiArIHJzRml0eiArIFwiKVwiLCByc05vbkFzdHJhbCA9IFwiW15cIiArIHJzQXN0cmFsUmFuZ2UgKyBcIl1cIiwgcnNSZWdpb25hbCA9IFwiKD86XFxcXHVkODNjW1xcXFx1ZGRlNi1cXFxcdWRkZmZdKXsyfVwiLCByc1N1cnJQYWlyID0gXCJbXFxcXHVkODAwLVxcXFx1ZGJmZl1bXFxcXHVkYzAwLVxcXFx1ZGZmZl1cIiwgcnNVcHBlciA9IFwiW1wiICsgcnNVcHBlclJhbmdlICsgXCJdXCIsIHJzWldKID0gXCJcXFxcdTIwMGRcIjtcbiAgICAgIHZhciByc01pc2NMb3dlciA9IFwiKD86XCIgKyByc0xvd2VyICsgXCJ8XCIgKyByc01pc2MgKyBcIilcIiwgcnNNaXNjVXBwZXIgPSBcIig/OlwiICsgcnNVcHBlciArIFwifFwiICsgcnNNaXNjICsgXCIpXCIsIHJzT3B0Q29udHJMb3dlciA9IFwiKD86XCIgKyByc0Fwb3MgKyBcIig/OmR8bGx8bXxyZXxzfHR8dmUpKT9cIiwgcnNPcHRDb250clVwcGVyID0gXCIoPzpcIiArIHJzQXBvcyArIFwiKD86RHxMTHxNfFJFfFN8VHxWRSkpP1wiLCByZU9wdE1vZCA9IHJzTW9kaWZpZXIgKyBcIj9cIiwgcnNPcHRWYXIgPSBcIltcIiArIHJzVmFyUmFuZ2UgKyBcIl0/XCIsIHJzT3B0Sm9pbiA9IFwiKD86XCIgKyByc1pXSiArIFwiKD86XCIgKyBbcnNOb25Bc3RyYWwsIHJzUmVnaW9uYWwsIHJzU3VyclBhaXJdLmpvaW4oXCJ8XCIpICsgXCIpXCIgKyByc09wdFZhciArIHJlT3B0TW9kICsgXCIpKlwiLCByc09yZExvd2VyID0gXCJcXFxcZCooPzoxc3R8Mm5kfDNyZHwoPyFbMTIzXSlcXFxcZHRoKSg/PVxcXFxifFtBLVpfXSlcIiwgcnNPcmRVcHBlciA9IFwiXFxcXGQqKD86MVNUfDJORHwzUkR8KD8hWzEyM10pXFxcXGRUSCkoPz1cXFxcYnxbYS16X10pXCIsIHJzU2VxID0gcnNPcHRWYXIgKyByZU9wdE1vZCArIHJzT3B0Sm9pbiwgcnNFbW9qaSA9IFwiKD86XCIgKyBbcnNEaW5nYmF0LCByc1JlZ2lvbmFsLCByc1N1cnJQYWlyXS5qb2luKFwifFwiKSArIFwiKVwiICsgcnNTZXEsIHJzU3ltYm9sID0gXCIoPzpcIiArIFtyc05vbkFzdHJhbCArIHJzQ29tYm8gKyBcIj9cIiwgcnNDb21ibywgcnNSZWdpb25hbCwgcnNTdXJyUGFpciwgcnNBc3RyYWxdLmpvaW4oXCJ8XCIpICsgXCIpXCI7XG4gICAgICB2YXIgcmVBcG9zID0gUmVnRXhwKHJzQXBvcywgXCJnXCIpO1xuICAgICAgdmFyIHJlQ29tYm9NYXJrID0gUmVnRXhwKHJzQ29tYm8sIFwiZ1wiKTtcbiAgICAgIHZhciByZVVuaWNvZGUgPSBSZWdFeHAocnNGaXR6ICsgXCIoPz1cIiArIHJzRml0eiArIFwiKXxcIiArIHJzU3ltYm9sICsgcnNTZXEsIFwiZ1wiKTtcbiAgICAgIHZhciByZVVuaWNvZGVXb3JkID0gUmVnRXhwKFtcbiAgICAgICAgcnNVcHBlciArIFwiP1wiICsgcnNMb3dlciArIFwiK1wiICsgcnNPcHRDb250ckxvd2VyICsgXCIoPz1cIiArIFtyc0JyZWFrLCByc1VwcGVyLCBcIiRcIl0uam9pbihcInxcIikgKyBcIilcIixcbiAgICAgICAgcnNNaXNjVXBwZXIgKyBcIitcIiArIHJzT3B0Q29udHJVcHBlciArIFwiKD89XCIgKyBbcnNCcmVhaywgcnNVcHBlciArIHJzTWlzY0xvd2VyLCBcIiRcIl0uam9pbihcInxcIikgKyBcIilcIixcbiAgICAgICAgcnNVcHBlciArIFwiP1wiICsgcnNNaXNjTG93ZXIgKyBcIitcIiArIHJzT3B0Q29udHJMb3dlcixcbiAgICAgICAgcnNVcHBlciArIFwiK1wiICsgcnNPcHRDb250clVwcGVyLFxuICAgICAgICByc09yZFVwcGVyLFxuICAgICAgICByc09yZExvd2VyLFxuICAgICAgICByc0RpZ2l0cyxcbiAgICAgICAgcnNFbW9qaVxuICAgICAgXS5qb2luKFwifFwiKSwgXCJnXCIpO1xuICAgICAgdmFyIHJlSGFzVW5pY29kZSA9IFJlZ0V4cChcIltcIiArIHJzWldKICsgcnNBc3RyYWxSYW5nZSArIHJzQ29tYm9SYW5nZSArIHJzVmFyUmFuZ2UgKyBcIl1cIik7XG4gICAgICB2YXIgcmVIYXNVbmljb2RlV29yZCA9IC9bYS16XVtBLVpdfFtBLVpdezJ9W2Etel18WzAtOV1bYS16QS1aXXxbYS16QS1aXVswLTldfFteYS16QS1aMC05IF0vO1xuICAgICAgdmFyIGNvbnRleHRQcm9wcyA9IFtcbiAgICAgICAgXCJBcnJheVwiLFxuICAgICAgICBcIkJ1ZmZlclwiLFxuICAgICAgICBcIkRhdGFWaWV3XCIsXG4gICAgICAgIFwiRGF0ZVwiLFxuICAgICAgICBcIkVycm9yXCIsXG4gICAgICAgIFwiRmxvYXQzMkFycmF5XCIsXG4gICAgICAgIFwiRmxvYXQ2NEFycmF5XCIsXG4gICAgICAgIFwiRnVuY3Rpb25cIixcbiAgICAgICAgXCJJbnQ4QXJyYXlcIixcbiAgICAgICAgXCJJbnQxNkFycmF5XCIsXG4gICAgICAgIFwiSW50MzJBcnJheVwiLFxuICAgICAgICBcIk1hcFwiLFxuICAgICAgICBcIk1hdGhcIixcbiAgICAgICAgXCJPYmplY3RcIixcbiAgICAgICAgXCJQcm9taXNlXCIsXG4gICAgICAgIFwiUmVnRXhwXCIsXG4gICAgICAgIFwiU2V0XCIsXG4gICAgICAgIFwiU3RyaW5nXCIsXG4gICAgICAgIFwiU3ltYm9sXCIsXG4gICAgICAgIFwiVHlwZUVycm9yXCIsXG4gICAgICAgIFwiVWludDhBcnJheVwiLFxuICAgICAgICBcIlVpbnQ4Q2xhbXBlZEFycmF5XCIsXG4gICAgICAgIFwiVWludDE2QXJyYXlcIixcbiAgICAgICAgXCJVaW50MzJBcnJheVwiLFxuICAgICAgICBcIldlYWtNYXBcIixcbiAgICAgICAgXCJfXCIsXG4gICAgICAgIFwiY2xlYXJUaW1lb3V0XCIsXG4gICAgICAgIFwiaXNGaW5pdGVcIixcbiAgICAgICAgXCJwYXJzZUludFwiLFxuICAgICAgICBcInNldFRpbWVvdXRcIlxuICAgICAgXTtcbiAgICAgIHZhciB0ZW1wbGF0ZUNvdW50ZXIgPSAtMTtcbiAgICAgIHZhciB0eXBlZEFycmF5VGFncyA9IHt9O1xuICAgICAgdHlwZWRBcnJheVRhZ3NbZmxvYXQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1tmbG9hdDY0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2ludDhUYWddID0gdHlwZWRBcnJheVRhZ3NbaW50MTZUYWddID0gdHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQxNlRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50MzJUYWddID0gdHJ1ZTtcbiAgICAgIHR5cGVkQXJyYXlUYWdzW2FyZ3NUYWddID0gdHlwZWRBcnJheVRhZ3NbYXJyYXlUYWddID0gdHlwZWRBcnJheVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gdHlwZWRBcnJheVRhZ3NbYm9vbFRhZ10gPSB0eXBlZEFycmF5VGFnc1tkYXRhVmlld1RhZ10gPSB0eXBlZEFycmF5VGFnc1tkYXRlVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Vycm9yVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Z1bmNUYWddID0gdHlwZWRBcnJheVRhZ3NbbWFwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW251bWJlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tvYmplY3RUYWddID0gdHlwZWRBcnJheVRhZ3NbcmVnZXhwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3NldFRhZ10gPSB0eXBlZEFycmF5VGFnc1tzdHJpbmdUYWddID0gdHlwZWRBcnJheVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcbiAgICAgIHZhciBjbG9uZWFibGVUYWdzID0ge307XG4gICAgICBjbG9uZWFibGVUYWdzW2FyZ3NUYWddID0gY2xvbmVhYmxlVGFnc1thcnJheVRhZ10gPSBjbG9uZWFibGVUYWdzW2FycmF5QnVmZmVyVGFnXSA9IGNsb25lYWJsZVRhZ3NbZGF0YVZpZXdUYWddID0gY2xvbmVhYmxlVGFnc1tib29sVGFnXSA9IGNsb25lYWJsZVRhZ3NbZGF0ZVRhZ10gPSBjbG9uZWFibGVUYWdzW2Zsb2F0MzJUYWddID0gY2xvbmVhYmxlVGFnc1tmbG9hdDY0VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50OFRhZ10gPSBjbG9uZWFibGVUYWdzW2ludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MzJUYWddID0gY2xvbmVhYmxlVGFnc1ttYXBUYWddID0gY2xvbmVhYmxlVGFnc1tudW1iZXJUYWddID0gY2xvbmVhYmxlVGFnc1tvYmplY3RUYWddID0gY2xvbmVhYmxlVGFnc1tyZWdleHBUYWddID0gY2xvbmVhYmxlVGFnc1tzZXRUYWddID0gY2xvbmVhYmxlVGFnc1tzdHJpbmdUYWddID0gY2xvbmVhYmxlVGFnc1tzeW1ib2xUYWddID0gY2xvbmVhYmxlVGFnc1t1aW50OFRhZ10gPSBjbG9uZWFibGVUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPSBjbG9uZWFibGVUYWdzW3VpbnQxNlRhZ10gPSBjbG9uZWFibGVUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xuICAgICAgY2xvbmVhYmxlVGFnc1tlcnJvclRhZ10gPSBjbG9uZWFibGVUYWdzW2Z1bmNUYWddID0gY2xvbmVhYmxlVGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuICAgICAgdmFyIGRlYnVycmVkTGV0dGVycyA9IHtcbiAgICAgICAgLy8gTGF0aW4tMSBTdXBwbGVtZW50IGJsb2NrLlxuICAgICAgICBcIlxceEMwXCI6IFwiQVwiLFxuICAgICAgICBcIlxceEMxXCI6IFwiQVwiLFxuICAgICAgICBcIlxceEMyXCI6IFwiQVwiLFxuICAgICAgICBcIlxceEMzXCI6IFwiQVwiLFxuICAgICAgICBcIlxceEM0XCI6IFwiQVwiLFxuICAgICAgICBcIlxceEM1XCI6IFwiQVwiLFxuICAgICAgICBcIlxceEUwXCI6IFwiYVwiLFxuICAgICAgICBcIlxceEUxXCI6IFwiYVwiLFxuICAgICAgICBcIlxceEUyXCI6IFwiYVwiLFxuICAgICAgICBcIlxceEUzXCI6IFwiYVwiLFxuICAgICAgICBcIlxceEU0XCI6IFwiYVwiLFxuICAgICAgICBcIlxceEU1XCI6IFwiYVwiLFxuICAgICAgICBcIlxceEM3XCI6IFwiQ1wiLFxuICAgICAgICBcIlxceEU3XCI6IFwiY1wiLFxuICAgICAgICBcIlxceEQwXCI6IFwiRFwiLFxuICAgICAgICBcIlxceEYwXCI6IFwiZFwiLFxuICAgICAgICBcIlxceEM4XCI6IFwiRVwiLFxuICAgICAgICBcIlxceEM5XCI6IFwiRVwiLFxuICAgICAgICBcIlxceENBXCI6IFwiRVwiLFxuICAgICAgICBcIlxceENCXCI6IFwiRVwiLFxuICAgICAgICBcIlxceEU4XCI6IFwiZVwiLFxuICAgICAgICBcIlxceEU5XCI6IFwiZVwiLFxuICAgICAgICBcIlxceEVBXCI6IFwiZVwiLFxuICAgICAgICBcIlxceEVCXCI6IFwiZVwiLFxuICAgICAgICBcIlxceENDXCI6IFwiSVwiLFxuICAgICAgICBcIlxceENEXCI6IFwiSVwiLFxuICAgICAgICBcIlxceENFXCI6IFwiSVwiLFxuICAgICAgICBcIlxceENGXCI6IFwiSVwiLFxuICAgICAgICBcIlxceEVDXCI6IFwiaVwiLFxuICAgICAgICBcIlxceEVEXCI6IFwiaVwiLFxuICAgICAgICBcIlxceEVFXCI6IFwiaVwiLFxuICAgICAgICBcIlxceEVGXCI6IFwiaVwiLFxuICAgICAgICBcIlxceEQxXCI6IFwiTlwiLFxuICAgICAgICBcIlxceEYxXCI6IFwiblwiLFxuICAgICAgICBcIlxceEQyXCI6IFwiT1wiLFxuICAgICAgICBcIlxceEQzXCI6IFwiT1wiLFxuICAgICAgICBcIlxceEQ0XCI6IFwiT1wiLFxuICAgICAgICBcIlxceEQ1XCI6IFwiT1wiLFxuICAgICAgICBcIlxceEQ2XCI6IFwiT1wiLFxuICAgICAgICBcIlxceEQ4XCI6IFwiT1wiLFxuICAgICAgICBcIlxceEYyXCI6IFwib1wiLFxuICAgICAgICBcIlxceEYzXCI6IFwib1wiLFxuICAgICAgICBcIlxceEY0XCI6IFwib1wiLFxuICAgICAgICBcIlxceEY1XCI6IFwib1wiLFxuICAgICAgICBcIlxceEY2XCI6IFwib1wiLFxuICAgICAgICBcIlxceEY4XCI6IFwib1wiLFxuICAgICAgICBcIlxceEQ5XCI6IFwiVVwiLFxuICAgICAgICBcIlxceERBXCI6IFwiVVwiLFxuICAgICAgICBcIlxceERCXCI6IFwiVVwiLFxuICAgICAgICBcIlxceERDXCI6IFwiVVwiLFxuICAgICAgICBcIlxceEY5XCI6IFwidVwiLFxuICAgICAgICBcIlxceEZBXCI6IFwidVwiLFxuICAgICAgICBcIlxceEZCXCI6IFwidVwiLFxuICAgICAgICBcIlxceEZDXCI6IFwidVwiLFxuICAgICAgICBcIlxceEREXCI6IFwiWVwiLFxuICAgICAgICBcIlxceEZEXCI6IFwieVwiLFxuICAgICAgICBcIlxceEZGXCI6IFwieVwiLFxuICAgICAgICBcIlxceEM2XCI6IFwiQWVcIixcbiAgICAgICAgXCJcXHhFNlwiOiBcImFlXCIsXG4gICAgICAgIFwiXFx4REVcIjogXCJUaFwiLFxuICAgICAgICBcIlxceEZFXCI6IFwidGhcIixcbiAgICAgICAgXCJcXHhERlwiOiBcInNzXCIsXG4gICAgICAgIC8vIExhdGluIEV4dGVuZGVkLUEgYmxvY2suXG4gICAgICAgIFwiXFx1MDEwMFwiOiBcIkFcIixcbiAgICAgICAgXCJcXHUwMTAyXCI6IFwiQVwiLFxuICAgICAgICBcIlxcdTAxMDRcIjogXCJBXCIsXG4gICAgICAgIFwiXFx1MDEwMVwiOiBcImFcIixcbiAgICAgICAgXCJcXHUwMTAzXCI6IFwiYVwiLFxuICAgICAgICBcIlxcdTAxMDVcIjogXCJhXCIsXG4gICAgICAgIFwiXFx1MDEwNlwiOiBcIkNcIixcbiAgICAgICAgXCJcXHUwMTA4XCI6IFwiQ1wiLFxuICAgICAgICBcIlxcdTAxMEFcIjogXCJDXCIsXG4gICAgICAgIFwiXFx1MDEwQ1wiOiBcIkNcIixcbiAgICAgICAgXCJcXHUwMTA3XCI6IFwiY1wiLFxuICAgICAgICBcIlxcdTAxMDlcIjogXCJjXCIsXG4gICAgICAgIFwiXFx1MDEwQlwiOiBcImNcIixcbiAgICAgICAgXCJcXHUwMTBEXCI6IFwiY1wiLFxuICAgICAgICBcIlxcdTAxMEVcIjogXCJEXCIsXG4gICAgICAgIFwiXFx1MDExMFwiOiBcIkRcIixcbiAgICAgICAgXCJcXHUwMTBGXCI6IFwiZFwiLFxuICAgICAgICBcIlxcdTAxMTFcIjogXCJkXCIsXG4gICAgICAgIFwiXFx1MDExMlwiOiBcIkVcIixcbiAgICAgICAgXCJcXHUwMTE0XCI6IFwiRVwiLFxuICAgICAgICBcIlxcdTAxMTZcIjogXCJFXCIsXG4gICAgICAgIFwiXFx1MDExOFwiOiBcIkVcIixcbiAgICAgICAgXCJcXHUwMTFBXCI6IFwiRVwiLFxuICAgICAgICBcIlxcdTAxMTNcIjogXCJlXCIsXG4gICAgICAgIFwiXFx1MDExNVwiOiBcImVcIixcbiAgICAgICAgXCJcXHUwMTE3XCI6IFwiZVwiLFxuICAgICAgICBcIlxcdTAxMTlcIjogXCJlXCIsXG4gICAgICAgIFwiXFx1MDExQlwiOiBcImVcIixcbiAgICAgICAgXCJcXHUwMTFDXCI6IFwiR1wiLFxuICAgICAgICBcIlxcdTAxMUVcIjogXCJHXCIsXG4gICAgICAgIFwiXFx1MDEyMFwiOiBcIkdcIixcbiAgICAgICAgXCJcXHUwMTIyXCI6IFwiR1wiLFxuICAgICAgICBcIlxcdTAxMURcIjogXCJnXCIsXG4gICAgICAgIFwiXFx1MDExRlwiOiBcImdcIixcbiAgICAgICAgXCJcXHUwMTIxXCI6IFwiZ1wiLFxuICAgICAgICBcIlxcdTAxMjNcIjogXCJnXCIsXG4gICAgICAgIFwiXFx1MDEyNFwiOiBcIkhcIixcbiAgICAgICAgXCJcXHUwMTI2XCI6IFwiSFwiLFxuICAgICAgICBcIlxcdTAxMjVcIjogXCJoXCIsXG4gICAgICAgIFwiXFx1MDEyN1wiOiBcImhcIixcbiAgICAgICAgXCJcXHUwMTI4XCI6IFwiSVwiLFxuICAgICAgICBcIlxcdTAxMkFcIjogXCJJXCIsXG4gICAgICAgIFwiXFx1MDEyQ1wiOiBcIklcIixcbiAgICAgICAgXCJcXHUwMTJFXCI6IFwiSVwiLFxuICAgICAgICBcIlxcdTAxMzBcIjogXCJJXCIsXG4gICAgICAgIFwiXFx1MDEyOVwiOiBcImlcIixcbiAgICAgICAgXCJcXHUwMTJCXCI6IFwiaVwiLFxuICAgICAgICBcIlxcdTAxMkRcIjogXCJpXCIsXG4gICAgICAgIFwiXFx1MDEyRlwiOiBcImlcIixcbiAgICAgICAgXCJcXHUwMTMxXCI6IFwiaVwiLFxuICAgICAgICBcIlxcdTAxMzRcIjogXCJKXCIsXG4gICAgICAgIFwiXFx1MDEzNVwiOiBcImpcIixcbiAgICAgICAgXCJcXHUwMTM2XCI6IFwiS1wiLFxuICAgICAgICBcIlxcdTAxMzdcIjogXCJrXCIsXG4gICAgICAgIFwiXFx1MDEzOFwiOiBcImtcIixcbiAgICAgICAgXCJcXHUwMTM5XCI6IFwiTFwiLFxuICAgICAgICBcIlxcdTAxM0JcIjogXCJMXCIsXG4gICAgICAgIFwiXFx1MDEzRFwiOiBcIkxcIixcbiAgICAgICAgXCJcXHUwMTNGXCI6IFwiTFwiLFxuICAgICAgICBcIlxcdTAxNDFcIjogXCJMXCIsXG4gICAgICAgIFwiXFx1MDEzQVwiOiBcImxcIixcbiAgICAgICAgXCJcXHUwMTNDXCI6IFwibFwiLFxuICAgICAgICBcIlxcdTAxM0VcIjogXCJsXCIsXG4gICAgICAgIFwiXFx1MDE0MFwiOiBcImxcIixcbiAgICAgICAgXCJcXHUwMTQyXCI6IFwibFwiLFxuICAgICAgICBcIlxcdTAxNDNcIjogXCJOXCIsXG4gICAgICAgIFwiXFx1MDE0NVwiOiBcIk5cIixcbiAgICAgICAgXCJcXHUwMTQ3XCI6IFwiTlwiLFxuICAgICAgICBcIlxcdTAxNEFcIjogXCJOXCIsXG4gICAgICAgIFwiXFx1MDE0NFwiOiBcIm5cIixcbiAgICAgICAgXCJcXHUwMTQ2XCI6IFwiblwiLFxuICAgICAgICBcIlxcdTAxNDhcIjogXCJuXCIsXG4gICAgICAgIFwiXFx1MDE0QlwiOiBcIm5cIixcbiAgICAgICAgXCJcXHUwMTRDXCI6IFwiT1wiLFxuICAgICAgICBcIlxcdTAxNEVcIjogXCJPXCIsXG4gICAgICAgIFwiXFx1MDE1MFwiOiBcIk9cIixcbiAgICAgICAgXCJcXHUwMTREXCI6IFwib1wiLFxuICAgICAgICBcIlxcdTAxNEZcIjogXCJvXCIsXG4gICAgICAgIFwiXFx1MDE1MVwiOiBcIm9cIixcbiAgICAgICAgXCJcXHUwMTU0XCI6IFwiUlwiLFxuICAgICAgICBcIlxcdTAxNTZcIjogXCJSXCIsXG4gICAgICAgIFwiXFx1MDE1OFwiOiBcIlJcIixcbiAgICAgICAgXCJcXHUwMTU1XCI6IFwiclwiLFxuICAgICAgICBcIlxcdTAxNTdcIjogXCJyXCIsXG4gICAgICAgIFwiXFx1MDE1OVwiOiBcInJcIixcbiAgICAgICAgXCJcXHUwMTVBXCI6IFwiU1wiLFxuICAgICAgICBcIlxcdTAxNUNcIjogXCJTXCIsXG4gICAgICAgIFwiXFx1MDE1RVwiOiBcIlNcIixcbiAgICAgICAgXCJcXHUwMTYwXCI6IFwiU1wiLFxuICAgICAgICBcIlxcdTAxNUJcIjogXCJzXCIsXG4gICAgICAgIFwiXFx1MDE1RFwiOiBcInNcIixcbiAgICAgICAgXCJcXHUwMTVGXCI6IFwic1wiLFxuICAgICAgICBcIlxcdTAxNjFcIjogXCJzXCIsXG4gICAgICAgIFwiXFx1MDE2MlwiOiBcIlRcIixcbiAgICAgICAgXCJcXHUwMTY0XCI6IFwiVFwiLFxuICAgICAgICBcIlxcdTAxNjZcIjogXCJUXCIsXG4gICAgICAgIFwiXFx1MDE2M1wiOiBcInRcIixcbiAgICAgICAgXCJcXHUwMTY1XCI6IFwidFwiLFxuICAgICAgICBcIlxcdTAxNjdcIjogXCJ0XCIsXG4gICAgICAgIFwiXFx1MDE2OFwiOiBcIlVcIixcbiAgICAgICAgXCJcXHUwMTZBXCI6IFwiVVwiLFxuICAgICAgICBcIlxcdTAxNkNcIjogXCJVXCIsXG4gICAgICAgIFwiXFx1MDE2RVwiOiBcIlVcIixcbiAgICAgICAgXCJcXHUwMTcwXCI6IFwiVVwiLFxuICAgICAgICBcIlxcdTAxNzJcIjogXCJVXCIsXG4gICAgICAgIFwiXFx1MDE2OVwiOiBcInVcIixcbiAgICAgICAgXCJcXHUwMTZCXCI6IFwidVwiLFxuICAgICAgICBcIlxcdTAxNkRcIjogXCJ1XCIsXG4gICAgICAgIFwiXFx1MDE2RlwiOiBcInVcIixcbiAgICAgICAgXCJcXHUwMTcxXCI6IFwidVwiLFxuICAgICAgICBcIlxcdTAxNzNcIjogXCJ1XCIsXG4gICAgICAgIFwiXFx1MDE3NFwiOiBcIldcIixcbiAgICAgICAgXCJcXHUwMTc1XCI6IFwid1wiLFxuICAgICAgICBcIlxcdTAxNzZcIjogXCJZXCIsXG4gICAgICAgIFwiXFx1MDE3N1wiOiBcInlcIixcbiAgICAgICAgXCJcXHUwMTc4XCI6IFwiWVwiLFxuICAgICAgICBcIlxcdTAxNzlcIjogXCJaXCIsXG4gICAgICAgIFwiXFx1MDE3QlwiOiBcIlpcIixcbiAgICAgICAgXCJcXHUwMTdEXCI6IFwiWlwiLFxuICAgICAgICBcIlxcdTAxN0FcIjogXCJ6XCIsXG4gICAgICAgIFwiXFx1MDE3Q1wiOiBcInpcIixcbiAgICAgICAgXCJcXHUwMTdFXCI6IFwielwiLFxuICAgICAgICBcIlxcdTAxMzJcIjogXCJJSlwiLFxuICAgICAgICBcIlxcdTAxMzNcIjogXCJpalwiLFxuICAgICAgICBcIlxcdTAxNTJcIjogXCJPZVwiLFxuICAgICAgICBcIlxcdTAxNTNcIjogXCJvZVwiLFxuICAgICAgICBcIlxcdTAxNDlcIjogXCInblwiLFxuICAgICAgICBcIlxcdTAxN0ZcIjogXCJzXCJcbiAgICAgIH07XG4gICAgICB2YXIgaHRtbEVzY2FwZXMgPSB7XG4gICAgICAgIFwiJlwiOiBcIiZhbXA7XCIsXG4gICAgICAgIFwiPFwiOiBcIiZsdDtcIixcbiAgICAgICAgXCI+XCI6IFwiJmd0O1wiLFxuICAgICAgICAnXCInOiBcIiZxdW90O1wiLFxuICAgICAgICBcIidcIjogXCImIzM5O1wiXG4gICAgICB9O1xuICAgICAgdmFyIGh0bWxVbmVzY2FwZXMgPSB7XG4gICAgICAgIFwiJmFtcDtcIjogXCImXCIsXG4gICAgICAgIFwiJmx0O1wiOiBcIjxcIixcbiAgICAgICAgXCImZ3Q7XCI6IFwiPlwiLFxuICAgICAgICBcIiZxdW90O1wiOiAnXCInLFxuICAgICAgICBcIiYjMzk7XCI6IFwiJ1wiXG4gICAgICB9O1xuICAgICAgdmFyIHN0cmluZ0VzY2FwZXMgPSB7XG4gICAgICAgIFwiXFxcXFwiOiBcIlxcXFxcIixcbiAgICAgICAgXCInXCI6IFwiJ1wiLFxuICAgICAgICBcIlxcblwiOiBcIm5cIixcbiAgICAgICAgXCJcXHJcIjogXCJyXCIsXG4gICAgICAgIFwiXFx1MjAyOFwiOiBcInUyMDI4XCIsXG4gICAgICAgIFwiXFx1MjAyOVwiOiBcInUyMDI5XCJcbiAgICAgIH07XG4gICAgICB2YXIgZnJlZVBhcnNlRmxvYXQgPSBwYXJzZUZsb2F0LCBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcbiAgICAgIHZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSBcIm9iamVjdFwiICYmIGdsb2JhbCAmJiBnbG9iYWwuT2JqZWN0ID09PSBPYmplY3QgJiYgZ2xvYmFsO1xuICAgICAgdmFyIGZyZWVTZWxmID0gdHlwZW9mIHNlbGYgPT0gXCJvYmplY3RcIiAmJiBzZWxmICYmIHNlbGYuT2JqZWN0ID09PSBPYmplY3QgJiYgc2VsZjtcbiAgICAgIHZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbihcInJldHVybiB0aGlzXCIpKCk7XG4gICAgICB2YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0czIgPT0gXCJvYmplY3RcIiAmJiBleHBvcnRzMiAmJiAhZXhwb3J0czIubm9kZVR5cGUgJiYgZXhwb3J0czI7XG4gICAgICB2YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUyID09IFwib2JqZWN0XCIgJiYgbW9kdWxlMiAmJiAhbW9kdWxlMi5ub2RlVHlwZSAmJiBtb2R1bGUyO1xuICAgICAgdmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG4gICAgICB2YXIgZnJlZVByb2Nlc3MgPSBtb2R1bGVFeHBvcnRzICYmIGZyZWVHbG9iYWwucHJvY2VzcztcbiAgICAgIHZhciBub2RlVXRpbCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciB0eXBlcyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlICYmIGZyZWVNb2R1bGUucmVxdWlyZShcInV0aWxcIikudHlwZXM7XG4gICAgICAgICAgaWYgKHR5cGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmcmVlUHJvY2VzcyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcoXCJ1dGlsXCIpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIH1cbiAgICAgIH0oKTtcbiAgICAgIHZhciBub2RlSXNBcnJheUJ1ZmZlciA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzQXJyYXlCdWZmZXIsIG5vZGVJc0RhdGUgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc0RhdGUsIG5vZGVJc01hcCA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzTWFwLCBub2RlSXNSZWdFeHAgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1JlZ0V4cCwgbm9kZUlzU2V0ID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNTZXQsIG5vZGVJc1R5cGVkQXJyYXkgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1R5cGVkQXJyYXk7XG4gICAgICBmdW5jdGlvbiBhcHBseShmdW5jLCB0aGlzQXJnLCBhcmdzKSB7XG4gICAgICAgIHN3aXRjaCAoYXJncy5sZW5ndGgpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcpO1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYXJnc1swXSk7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdLCBhcmdzWzFdKTtcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXJyYXlBZ2dyZWdhdG9yKGFycmF5LCBzZXR0ZXIsIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICAgIHNldHRlcihhY2N1bXVsYXRvciwgdmFsdWUsIGl0ZXJhdGVlKHZhbHVlKSwgYXJyYXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGFycmF5RWFjaChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIGlmIChpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXJyYXlFYWNoUmlnaHQoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgaWYgKGl0ZXJhdGVlKGFycmF5W2xlbmd0aF0sIGxlbmd0aCwgYXJyYXkpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGFycmF5RXZlcnkoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKCFwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXJyYXlGaWx0ZXIoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsIHJlc0luZGV4ID0gMCwgcmVzdWx0ID0gW107XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXJyYXlJbmNsdWRlcyhhcnJheSwgdmFsdWUpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICByZXR1cm4gISFsZW5ndGggJiYgYmFzZUluZGV4T2YoYXJyYXksIHZhbHVlLCAwKSA+IC0xO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXJyYXlJbmNsdWRlc1dpdGgoYXJyYXksIHZhbHVlLCBjb21wYXJhdG9yKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBpZiAoY29tcGFyYXRvcih2YWx1ZSwgYXJyYXlbaW5kZXhdKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGFycmF5TWFwKGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXJyYXlQdXNoKGFycmF5LCB2YWx1ZXMpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHZhbHVlcy5sZW5ndGgsIG9mZnNldCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBhcnJheVtvZmZzZXQgKyBpbmRleF0gPSB2YWx1ZXNbaW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGFycmF5UmVkdWNlKGFycmF5LCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIGluaXRBY2N1bSkge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgIGlmIChpbml0QWNjdW0gJiYgbGVuZ3RoKSB7XG4gICAgICAgICAgYWNjdW11bGF0b3IgPSBhcnJheVsrK2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIGFjY3VtdWxhdG9yID0gaXRlcmF0ZWUoYWNjdW11bGF0b3IsIGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBhcnJheVJlZHVjZVJpZ2h0KGFycmF5LCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIGluaXRBY2N1bSkge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgIGlmIChpbml0QWNjdW0gJiYgbGVuZ3RoKSB7XG4gICAgICAgICAgYWNjdW11bGF0b3IgPSBhcnJheVstLWxlbmd0aF07XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgYWNjdW11bGF0b3IgPSBpdGVyYXRlZShhY2N1bXVsYXRvciwgYXJyYXlbbGVuZ3RoXSwgbGVuZ3RoLCBhcnJheSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXJyYXlTb21lKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIGlmIChwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIGFzY2lpU2l6ZSA9IGJhc2VQcm9wZXJ0eShcImxlbmd0aFwiKTtcbiAgICAgIGZ1bmN0aW9uIGFzY2lpVG9BcnJheShzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5zcGxpdChcIlwiKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGFzY2lpV29yZHMoc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcubWF0Y2gocmVBc2NpaVdvcmQpIHx8IFtdO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZUZpbmRLZXkoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBlYWNoRnVuYykge1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICBlYWNoRnVuYyhjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uMikge1xuICAgICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGtleSwgY29sbGVjdGlvbjIpKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBrZXk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGJhc2VGaW5kSW5kZXgoYXJyYXksIHByZWRpY2F0ZSwgZnJvbUluZGV4LCBmcm9tUmlnaHQpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCwgaW5kZXggPSBmcm9tSW5kZXggKyAoZnJvbVJpZ2h0ID8gMSA6IC0xKTtcbiAgICAgICAgd2hpbGUgKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZUluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZSA/IHN0cmljdEluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpIDogYmFzZUZpbmRJbmRleChhcnJheSwgYmFzZUlzTmFOLCBmcm9tSW5kZXgpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZUluZGV4T2ZXaXRoKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4LCBjb21wYXJhdG9yKSB7XG4gICAgICAgIHZhciBpbmRleCA9IGZyb21JbmRleCAtIDEsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBpZiAoY29tcGFyYXRvcihhcnJheVtpbmRleF0sIHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBiYXNlSXNOYU4odmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGJhc2VNZWFuKGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlU3VtKGFycmF5LCBpdGVyYXRlZSkgLyBsZW5ndGggOiBOQU47XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBiYXNlUHJvcGVydHkoa2V5KSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQyIDogb2JqZWN0W2tleV07XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBiYXNlUHJvcGVydHlPZihvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZDIgOiBvYmplY3Rba2V5XTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGJhc2VSZWR1Y2UoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0sIGVhY2hGdW5jKSB7XG4gICAgICAgIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbjIpIHtcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IGluaXRBY2N1bSA/IChpbml0QWNjdW0gPSBmYWxzZSwgdmFsdWUpIDogaXRlcmF0ZWUoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbjIpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZVNvcnRCeShhcnJheSwgY29tcGFyZXIpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgYXJyYXkuc29ydChjb21wYXJlcik7XG4gICAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICAgIGFycmF5W2xlbmd0aF0gPSBhcnJheVtsZW5ndGhdLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGJhc2VTdW0oYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICAgIHZhciByZXN1bHQsIGluZGV4ID0gLTEsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICB2YXIgY3VycmVudCA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSk7XG4gICAgICAgICAgaWYgKGN1cnJlbnQgIT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCA9PT0gdW5kZWZpbmVkMiA/IGN1cnJlbnQgOiByZXN1bHQgKyBjdXJyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZVRpbWVzKG4sIGl0ZXJhdGVlKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLCByZXN1bHQgPSBBcnJheShuKTtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBuKSB7XG4gICAgICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZVRvUGFpcnMob2JqZWN0LCBwcm9wcykge1xuICAgICAgICByZXR1cm4gYXJyYXlNYXAocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgIHJldHVybiBba2V5LCBvYmplY3Rba2V5XV07XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZVRyaW0oc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcgPyBzdHJpbmcuc2xpY2UoMCwgdHJpbW1lZEVuZEluZGV4KHN0cmluZykgKyAxKS5yZXBsYWNlKHJlVHJpbVN0YXJ0LCBcIlwiKSA6IHN0cmluZztcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGJhc2VVbmFyeShmdW5jKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBmdW5jKHZhbHVlKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGJhc2VWYWx1ZXMob2JqZWN0LCBwcm9wcykge1xuICAgICAgICByZXR1cm4gYXJyYXlNYXAocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgIHJldHVybiBvYmplY3Rba2V5XTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBjYWNoZUhhcyhjYWNoZSwga2V5KSB7XG4gICAgICAgIHJldHVybiBjYWNoZS5oYXMoa2V5KTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGNoYXJzU3RhcnRJbmRleChzdHJTeW1ib2xzLCBjaHJTeW1ib2xzKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBzdHJTeW1ib2xzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGggJiYgYmFzZUluZGV4T2YoY2hyU3ltYm9scywgc3RyU3ltYm9sc1tpbmRleF0sIDApID4gLTEpIHtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBjaGFyc0VuZEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gc3RyU3ltYm9scy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpbmRleC0tICYmIGJhc2VJbmRleE9mKGNoclN5bWJvbHMsIHN0clN5bWJvbHNbaW5kZXhdLCAwKSA+IC0xKSB7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY291bnRIb2xkZXJzKGFycmF5LCBwbGFjZWhvbGRlcikge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLCByZXN1bHQgPSAwO1xuICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICBpZiAoYXJyYXlbbGVuZ3RoXSA9PT0gcGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgICsrcmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgdmFyIGRlYnVyckxldHRlciA9IGJhc2VQcm9wZXJ0eU9mKGRlYnVycmVkTGV0dGVycyk7XG4gICAgICB2YXIgZXNjYXBlSHRtbENoYXIgPSBiYXNlUHJvcGVydHlPZihodG1sRXNjYXBlcyk7XG4gICAgICBmdW5jdGlvbiBlc2NhcGVTdHJpbmdDaGFyKGNocikge1xuICAgICAgICByZXR1cm4gXCJcXFxcXCIgKyBzdHJpbmdFc2NhcGVzW2Nocl07XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBnZXRWYWx1ZShvYmplY3QsIGtleSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQyIDogb2JqZWN0W2tleV07XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBoYXNVbmljb2RlKHN0cmluZykge1xuICAgICAgICByZXR1cm4gcmVIYXNVbmljb2RlLnRlc3Qoc3RyaW5nKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGhhc1VuaWNvZGVXb3JkKHN0cmluZykge1xuICAgICAgICByZXR1cm4gcmVIYXNVbmljb2RlV29yZC50ZXN0KHN0cmluZyk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBpdGVyYXRvclRvQXJyYXkoaXRlcmF0b3IpIHtcbiAgICAgICAgdmFyIGRhdGEsIHJlc3VsdCA9IFtdO1xuICAgICAgICB3aGlsZSAoIShkYXRhID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goZGF0YS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIG1hcFRvQXJyYXkobWFwKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLCByZXN1bHQgPSBBcnJheShtYXAuc2l6ZSk7XG4gICAgICAgIG1hcC5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgICAgICByZXN1bHRbKytpbmRleF0gPSBba2V5LCB2YWx1ZV07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gb3ZlckFyZyhmdW5jLCB0cmFuc2Zvcm0pIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGFyZykge1xuICAgICAgICAgIHJldHVybiBmdW5jKHRyYW5zZm9ybShhcmcpKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHJlcGxhY2VIb2xkZXJzKGFycmF5LCBwbGFjZWhvbGRlcikge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLCByZXNJbmRleCA9IDAsIHJlc3VsdCA9IFtdO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IHBsYWNlaG9sZGVyIHx8IHZhbHVlID09PSBQTEFDRUhPTERFUikge1xuICAgICAgICAgICAgYXJyYXlbaW5kZXhdID0gUExBQ0VIT0xERVI7XG4gICAgICAgICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSBpbmRleDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHNldFRvQXJyYXkoc2V0KSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLCByZXN1bHQgPSBBcnJheShzZXQuc2l6ZSk7XG4gICAgICAgIHNldC5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgcmVzdWx0WysraW5kZXhdID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gc2V0VG9QYWlycyhzZXQpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsIHJlc3VsdCA9IEFycmF5KHNldC5zaXplKTtcbiAgICAgICAgc2V0LmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICByZXN1bHRbKytpbmRleF0gPSBbdmFsdWUsIHZhbHVlXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBzdHJpY3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gICAgICAgIHZhciBpbmRleCA9IGZyb21JbmRleCAtIDEsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBpZiAoYXJyYXlbaW5kZXhdID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBzdHJpY3RMYXN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgICAgICB2YXIgaW5kZXggPSBmcm9tSW5kZXggKyAxO1xuICAgICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICAgIGlmIChhcnJheVtpbmRleF0gPT09IHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHN0cmluZ1NpemUoc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBoYXNVbmljb2RlKHN0cmluZykgPyB1bmljb2RlU2l6ZShzdHJpbmcpIDogYXNjaWlTaXplKHN0cmluZyk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBzdHJpbmdUb0FycmF5KHN0cmluZykge1xuICAgICAgICByZXR1cm4gaGFzVW5pY29kZShzdHJpbmcpID8gdW5pY29kZVRvQXJyYXkoc3RyaW5nKSA6IGFzY2lpVG9BcnJheShzdHJpbmcpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gdHJpbW1lZEVuZEluZGV4KHN0cmluZykge1xuICAgICAgICB2YXIgaW5kZXggPSBzdHJpbmcubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaW5kZXgtLSAmJiByZVdoaXRlc3BhY2UudGVzdChzdHJpbmcuY2hhckF0KGluZGV4KSkpIHtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgICB2YXIgdW5lc2NhcGVIdG1sQ2hhciA9IGJhc2VQcm9wZXJ0eU9mKGh0bWxVbmVzY2FwZXMpO1xuICAgICAgZnVuY3Rpb24gdW5pY29kZVNpemUoc3RyaW5nKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSByZVVuaWNvZGUubGFzdEluZGV4ID0gMDtcbiAgICAgICAgd2hpbGUgKHJlVW5pY29kZS50ZXN0KHN0cmluZykpIHtcbiAgICAgICAgICArK3Jlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gdW5pY29kZVRvQXJyYXkoc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcubWF0Y2gocmVVbmljb2RlKSB8fCBbXTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHVuaWNvZGVXb3JkcyhzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5tYXRjaChyZVVuaWNvZGVXb3JkKSB8fCBbXTtcbiAgICAgIH1cbiAgICAgIHZhciBydW5JbkNvbnRleHQgPSBmdW5jdGlvbiBydW5JbkNvbnRleHQyKGNvbnRleHQpIHtcbiAgICAgICAgY29udGV4dCA9IGNvbnRleHQgPT0gbnVsbCA/IHJvb3QgOiBfMi5kZWZhdWx0cyhyb290Lk9iamVjdCgpLCBjb250ZXh0LCBfMi5waWNrKHJvb3QsIGNvbnRleHRQcm9wcykpO1xuICAgICAgICB2YXIgQXJyYXkyID0gY29udGV4dC5BcnJheSwgRGF0ZTIgPSBjb250ZXh0LkRhdGUsIEVycm9yMiA9IGNvbnRleHQuRXJyb3IsIEZ1bmN0aW9uMiA9IGNvbnRleHQuRnVuY3Rpb24sIE1hdGgyID0gY29udGV4dC5NYXRoLCBPYmplY3QyID0gY29udGV4dC5PYmplY3QsIFJlZ0V4cDIgPSBjb250ZXh0LlJlZ0V4cCwgU3RyaW5nMiA9IGNvbnRleHQuU3RyaW5nLCBUeXBlRXJyb3IyID0gY29udGV4dC5UeXBlRXJyb3I7XG4gICAgICAgIHZhciBhcnJheVByb3RvID0gQXJyYXkyLnByb3RvdHlwZSwgZnVuY1Byb3RvID0gRnVuY3Rpb24yLnByb3RvdHlwZSwgb2JqZWN0UHJvdG8gPSBPYmplY3QyLnByb3RvdHlwZTtcbiAgICAgICAgdmFyIGNvcmVKc0RhdGEgPSBjb250ZXh0W1wiX19jb3JlLWpzX3NoYXJlZF9fXCJdO1xuICAgICAgICB2YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuICAgICAgICB2YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcbiAgICAgICAgdmFyIGlkQ291bnRlciA9IDA7XG4gICAgICAgIHZhciBtYXNrU3JjS2V5ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIHVpZCA9IC9bXi5dKyQvLmV4ZWMoY29yZUpzRGF0YSAmJiBjb3JlSnNEYXRhLmtleXMgJiYgY29yZUpzRGF0YS5rZXlzLklFX1BST1RPIHx8IFwiXCIpO1xuICAgICAgICAgIHJldHVybiB1aWQgPyBcIlN5bWJvbChzcmMpXzEuXCIgKyB1aWQgOiBcIlwiO1xuICAgICAgICB9KCk7XG4gICAgICAgIHZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuICAgICAgICB2YXIgb2JqZWN0Q3RvclN0cmluZyA9IGZ1bmNUb1N0cmluZy5jYWxsKE9iamVjdDIpO1xuICAgICAgICB2YXIgb2xkRGFzaCA9IHJvb3QuXztcbiAgICAgICAgdmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAyKFxuICAgICAgICAgIFwiXlwiICsgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCBcIlxcXFwkJlwiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcXFxcKCl8IGZvciAuKz8oPz1cXFxcXFxdKS9nLCBcIiQxLio/XCIpICsgXCIkXCJcbiAgICAgICAgKTtcbiAgICAgICAgdmFyIEJ1ZmZlcjIgPSBtb2R1bGVFeHBvcnRzID8gY29udGV4dC5CdWZmZXIgOiB1bmRlZmluZWQyLCBTeW1ib2wyID0gY29udGV4dC5TeW1ib2wsIFVpbnQ4QXJyYXkyID0gY29udGV4dC5VaW50OEFycmF5LCBhbGxvY1Vuc2FmZSA9IEJ1ZmZlcjIgPyBCdWZmZXIyLmFsbG9jVW5zYWZlIDogdW5kZWZpbmVkMiwgZ2V0UHJvdG90eXBlID0gb3ZlckFyZyhPYmplY3QyLmdldFByb3RvdHlwZU9mLCBPYmplY3QyKSwgb2JqZWN0Q3JlYXRlID0gT2JqZWN0Mi5jcmVhdGUsIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGUsIHNwbGljZSA9IGFycmF5UHJvdG8uc3BsaWNlLCBzcHJlYWRhYmxlU3ltYm9sID0gU3ltYm9sMiA/IFN5bWJvbDIuaXNDb25jYXRTcHJlYWRhYmxlIDogdW5kZWZpbmVkMiwgc3ltSXRlcmF0b3IgPSBTeW1ib2wyID8gU3ltYm9sMi5pdGVyYXRvciA6IHVuZGVmaW5lZDIsIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sMiA/IFN5bWJvbDIudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQyO1xuICAgICAgICB2YXIgZGVmaW5lUHJvcGVydHkgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIGZ1bmMgPSBnZXROYXRpdmUoT2JqZWN0MiwgXCJkZWZpbmVQcm9wZXJ0eVwiKTtcbiAgICAgICAgICAgIGZ1bmMoe30sIFwiXCIsIHt9KTtcbiAgICAgICAgICAgIHJldHVybiBmdW5jO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB9XG4gICAgICAgIH0oKTtcbiAgICAgICAgdmFyIGN0eENsZWFyVGltZW91dCA9IGNvbnRleHQuY2xlYXJUaW1lb3V0ICE9PSByb290LmNsZWFyVGltZW91dCAmJiBjb250ZXh0LmNsZWFyVGltZW91dCwgY3R4Tm93ID0gRGF0ZTIgJiYgRGF0ZTIubm93ICE9PSByb290LkRhdGUubm93ICYmIERhdGUyLm5vdywgY3R4U2V0VGltZW91dCA9IGNvbnRleHQuc2V0VGltZW91dCAhPT0gcm9vdC5zZXRUaW1lb3V0ICYmIGNvbnRleHQuc2V0VGltZW91dDtcbiAgICAgICAgdmFyIG5hdGl2ZUNlaWwgPSBNYXRoMi5jZWlsLCBuYXRpdmVGbG9vciA9IE1hdGgyLmZsb29yLCBuYXRpdmVHZXRTeW1ib2xzID0gT2JqZWN0Mi5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsIG5hdGl2ZUlzQnVmZmVyID0gQnVmZmVyMiA/IEJ1ZmZlcjIuaXNCdWZmZXIgOiB1bmRlZmluZWQyLCBuYXRpdmVJc0Zpbml0ZSA9IGNvbnRleHQuaXNGaW5pdGUsIG5hdGl2ZUpvaW4gPSBhcnJheVByb3RvLmpvaW4sIG5hdGl2ZUtleXMgPSBvdmVyQXJnKE9iamVjdDIua2V5cywgT2JqZWN0MiksIG5hdGl2ZU1heCA9IE1hdGgyLm1heCwgbmF0aXZlTWluID0gTWF0aDIubWluLCBuYXRpdmVOb3cgPSBEYXRlMi5ub3csIG5hdGl2ZVBhcnNlSW50ID0gY29udGV4dC5wYXJzZUludCwgbmF0aXZlUmFuZG9tID0gTWF0aDIucmFuZG9tLCBuYXRpdmVSZXZlcnNlID0gYXJyYXlQcm90by5yZXZlcnNlO1xuICAgICAgICB2YXIgRGF0YVZpZXcyID0gZ2V0TmF0aXZlKGNvbnRleHQsIFwiRGF0YVZpZXdcIiksIE1hcDIgPSBnZXROYXRpdmUoY29udGV4dCwgXCJNYXBcIiksIFByb21pc2UyID0gZ2V0TmF0aXZlKGNvbnRleHQsIFwiUHJvbWlzZVwiKSwgU2V0MiA9IGdldE5hdGl2ZShjb250ZXh0LCBcIlNldFwiKSwgV2Vha01hcDIgPSBnZXROYXRpdmUoY29udGV4dCwgXCJXZWFrTWFwXCIpLCBuYXRpdmVDcmVhdGUgPSBnZXROYXRpdmUoT2JqZWN0MiwgXCJjcmVhdGVcIik7XG4gICAgICAgIHZhciBtZXRhTWFwID0gV2Vha01hcDIgJiYgbmV3IFdlYWtNYXAyKCk7XG4gICAgICAgIHZhciByZWFsTmFtZXMgPSB7fTtcbiAgICAgICAgdmFyIGRhdGFWaWV3Q3RvclN0cmluZyA9IHRvU291cmNlKERhdGFWaWV3MiksIG1hcEN0b3JTdHJpbmcgPSB0b1NvdXJjZShNYXAyKSwgcHJvbWlzZUN0b3JTdHJpbmcgPSB0b1NvdXJjZShQcm9taXNlMiksIHNldEN0b3JTdHJpbmcgPSB0b1NvdXJjZShTZXQyKSwgd2Vha01hcEN0b3JTdHJpbmcgPSB0b1NvdXJjZShXZWFrTWFwMik7XG4gICAgICAgIHZhciBzeW1ib2xQcm90byA9IFN5bWJvbDIgPyBTeW1ib2wyLnByb3RvdHlwZSA6IHVuZGVmaW5lZDIsIHN5bWJvbFZhbHVlT2YgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnZhbHVlT2YgOiB1bmRlZmluZWQyLCBzeW1ib2xUb1N0cmluZyA9IHN5bWJvbFByb3RvID8gc3ltYm9sUHJvdG8udG9TdHJpbmcgOiB1bmRlZmluZWQyO1xuICAgICAgICBmdW5jdGlvbiBsb2Rhc2godmFsdWUpIHtcbiAgICAgICAgICBpZiAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiAhaXNBcnJheSh2YWx1ZSkgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTG9kYXNoV3JhcHBlcikge1xuICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgXCJfX3dyYXBwZWRfX1wiKSkge1xuICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlckNsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYmFzZUNyZWF0ZSA9IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHtcbiAgICAgICAgICBmdW5jdGlvbiBvYmplY3QoKSB7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmdW5jdGlvbihwcm90bykge1xuICAgICAgICAgICAgaWYgKCFpc09iamVjdChwcm90bykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9iamVjdENyZWF0ZSkge1xuICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0Q3JlYXRlKHByb3RvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9iamVjdC5wcm90b3R5cGUgPSBwcm90bztcbiAgICAgICAgICAgIHZhciByZXN1bHQyID0gbmV3IG9iamVjdCgpO1xuICAgICAgICAgICAgb2JqZWN0LnByb3RvdHlwZSA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgICB9O1xuICAgICAgICB9KCk7XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VMb2Rhc2goKSB7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gTG9kYXNoV3JhcHBlcih2YWx1ZSwgY2hhaW5BbGwpIHtcbiAgICAgICAgICB0aGlzLl9fd3JhcHBlZF9fID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5fX2FjdGlvbnNfXyA9IFtdO1xuICAgICAgICAgIHRoaXMuX19jaGFpbl9fID0gISFjaGFpbkFsbDtcbiAgICAgICAgICB0aGlzLl9faW5kZXhfXyA9IDA7XG4gICAgICAgICAgdGhpcy5fX3ZhbHVlc19fID0gdW5kZWZpbmVkMjtcbiAgICAgICAgfVxuICAgICAgICBsb2Rhc2gudGVtcGxhdGVTZXR0aW5ncyA9IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBVc2VkIHRvIGRldGVjdCBgZGF0YWAgcHJvcGVydHkgdmFsdWVzIHRvIGJlIEhUTUwtZXNjYXBlZC5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAgICAgKiBAdHlwZSB7UmVnRXhwfVxuICAgICAgICAgICAqL1xuICAgICAgICAgIFwiZXNjYXBlXCI6IHJlRXNjYXBlLFxuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFVzZWQgdG8gZGV0ZWN0IGNvZGUgdG8gYmUgZXZhbHVhdGVkLlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICAgICAqIEB0eXBlIHtSZWdFeHB9XG4gICAgICAgICAgICovXG4gICAgICAgICAgXCJldmFsdWF0ZVwiOiByZUV2YWx1YXRlLFxuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFVzZWQgdG8gZGV0ZWN0IGBkYXRhYCBwcm9wZXJ0eSB2YWx1ZXMgdG8gaW5qZWN0LlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICAgICAqIEB0eXBlIHtSZWdFeHB9XG4gICAgICAgICAgICovXG4gICAgICAgICAgXCJpbnRlcnBvbGF0ZVwiOiByZUludGVycG9sYXRlLFxuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFVzZWQgdG8gcmVmZXJlbmNlIHRoZSBkYXRhIG9iamVjdCBpbiB0aGUgdGVtcGxhdGUgdGV4dC5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAgICAgICAqL1xuICAgICAgICAgIFwidmFyaWFibGVcIjogXCJcIixcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBVc2VkIHRvIGltcG9ydCB2YXJpYWJsZXMgaW50byB0aGUgY29tcGlsZWQgdGVtcGxhdGUuXG4gICAgICAgICAgICpcbiAgICAgICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAgICAgICAgICogQHR5cGUge09iamVjdH1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBcImltcG9ydHNcIjoge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5ncy5pbXBvcnRzXG4gICAgICAgICAgICAgKiBAdHlwZSB7RnVuY3Rpb259XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIFwiX1wiOiBsb2Rhc2hcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGxvZGFzaC5wcm90b3R5cGUgPSBiYXNlTG9kYXNoLnByb3RvdHlwZTtcbiAgICAgICAgbG9kYXNoLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGxvZGFzaDtcbiAgICAgICAgTG9kYXNoV3JhcHBlci5wcm90b3R5cGUgPSBiYXNlQ3JlYXRlKGJhc2VMb2Rhc2gucHJvdG90eXBlKTtcbiAgICAgICAgTG9kYXNoV3JhcHBlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBMb2Rhc2hXcmFwcGVyO1xuICAgICAgICBmdW5jdGlvbiBMYXp5V3JhcHBlcih2YWx1ZSkge1xuICAgICAgICAgIHRoaXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLl9fYWN0aW9uc19fID0gW107XG4gICAgICAgICAgdGhpcy5fX2Rpcl9fID0gMTtcbiAgICAgICAgICB0aGlzLl9fZmlsdGVyZWRfXyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX19pdGVyYXRlZXNfXyA9IFtdO1xuICAgICAgICAgIHRoaXMuX190YWtlQ291bnRfXyA9IE1BWF9BUlJBWV9MRU5HVEg7XG4gICAgICAgICAgdGhpcy5fX3ZpZXdzX18gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBsYXp5Q2xvbmUoKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBuZXcgTGF6eVdyYXBwZXIodGhpcy5fX3dyYXBwZWRfXyk7XG4gICAgICAgICAgcmVzdWx0Mi5fX2FjdGlvbnNfXyA9IGNvcHlBcnJheSh0aGlzLl9fYWN0aW9uc19fKTtcbiAgICAgICAgICByZXN1bHQyLl9fZGlyX18gPSB0aGlzLl9fZGlyX187XG4gICAgICAgICAgcmVzdWx0Mi5fX2ZpbHRlcmVkX18gPSB0aGlzLl9fZmlsdGVyZWRfXztcbiAgICAgICAgICByZXN1bHQyLl9faXRlcmF0ZWVzX18gPSBjb3B5QXJyYXkodGhpcy5fX2l0ZXJhdGVlc19fKTtcbiAgICAgICAgICByZXN1bHQyLl9fdGFrZUNvdW50X18gPSB0aGlzLl9fdGFrZUNvdW50X187XG4gICAgICAgICAgcmVzdWx0Mi5fX3ZpZXdzX18gPSBjb3B5QXJyYXkodGhpcy5fX3ZpZXdzX18pO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGxhenlSZXZlcnNlKCkge1xuICAgICAgICAgIGlmICh0aGlzLl9fZmlsdGVyZWRfXykge1xuICAgICAgICAgICAgdmFyIHJlc3VsdDIgPSBuZXcgTGF6eVdyYXBwZXIodGhpcyk7XG4gICAgICAgICAgICByZXN1bHQyLl9fZGlyX18gPSAtMTtcbiAgICAgICAgICAgIHJlc3VsdDIuX19maWx0ZXJlZF9fID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0MiA9IHRoaXMuY2xvbmUoKTtcbiAgICAgICAgICAgIHJlc3VsdDIuX19kaXJfXyAqPSAtMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbGF6eVZhbHVlKCkge1xuICAgICAgICAgIHZhciBhcnJheSA9IHRoaXMuX193cmFwcGVkX18udmFsdWUoKSwgZGlyID0gdGhpcy5fX2Rpcl9fLCBpc0FyciA9IGlzQXJyYXkoYXJyYXkpLCBpc1JpZ2h0ID0gZGlyIDwgMCwgYXJyTGVuZ3RoID0gaXNBcnIgPyBhcnJheS5sZW5ndGggOiAwLCB2aWV3ID0gZ2V0VmlldygwLCBhcnJMZW5ndGgsIHRoaXMuX192aWV3c19fKSwgc3RhcnQgPSB2aWV3LnN0YXJ0LCBlbmQgPSB2aWV3LmVuZCwgbGVuZ3RoID0gZW5kIC0gc3RhcnQsIGluZGV4ID0gaXNSaWdodCA/IGVuZCA6IHN0YXJ0IC0gMSwgaXRlcmF0ZWVzID0gdGhpcy5fX2l0ZXJhdGVlc19fLCBpdGVyTGVuZ3RoID0gaXRlcmF0ZWVzLmxlbmd0aCwgcmVzSW5kZXggPSAwLCB0YWtlQ291bnQgPSBuYXRpdmVNaW4obGVuZ3RoLCB0aGlzLl9fdGFrZUNvdW50X18pO1xuICAgICAgICAgIGlmICghaXNBcnIgfHwgIWlzUmlnaHQgJiYgYXJyTGVuZ3RoID09IGxlbmd0aCAmJiB0YWtlQ291bnQgPT0gbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gYmFzZVdyYXBwZXJWYWx1ZShhcnJheSwgdGhpcy5fX2FjdGlvbnNfXyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciByZXN1bHQyID0gW107XG4gICAgICAgICAgb3V0ZXI6XG4gICAgICAgICAgICB3aGlsZSAobGVuZ3RoLS0gJiYgcmVzSW5kZXggPCB0YWtlQ291bnQpIHtcbiAgICAgICAgICAgICAgaW5kZXggKz0gZGlyO1xuICAgICAgICAgICAgICB2YXIgaXRlckluZGV4ID0gLTEsIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICAgICAgICB3aGlsZSAoKytpdGVySW5kZXggPCBpdGVyTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBpdGVyYXRlZXNbaXRlckluZGV4XSwgaXRlcmF0ZWUyID0gZGF0YS5pdGVyYXRlZSwgdHlwZSA9IGRhdGEudHlwZSwgY29tcHV0ZWQgPSBpdGVyYXRlZTIodmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlID09IExBWllfTUFQX0ZMQUcpIHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlID0gY29tcHV0ZWQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghY29tcHV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09IExBWllfRklMVEVSX0ZMQUcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhayBvdXRlcjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVzdWx0MltyZXNJbmRleCsrXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZSA9IGJhc2VDcmVhdGUoYmFzZUxvZGFzaC5wcm90b3R5cGUpO1xuICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBMYXp5V3JhcHBlcjtcbiAgICAgICAgZnVuY3Rpb24gSGFzaChlbnRyaWVzKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcbiAgICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBlbnRyeTIgPSBlbnRyaWVzW2luZGV4XTtcbiAgICAgICAgICAgIHRoaXMuc2V0KGVudHJ5MlswXSwgZW50cnkyWzFdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaGFzaENsZWFyKCkge1xuICAgICAgICAgIHRoaXMuX19kYXRhX18gPSBuYXRpdmVDcmVhdGUgPyBuYXRpdmVDcmVhdGUobnVsbCkgOiB7fTtcbiAgICAgICAgICB0aGlzLnNpemUgPSAwO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGhhc2hEZWxldGUoa2V5KSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSB0aGlzLmhhcyhrZXkpICYmIGRlbGV0ZSB0aGlzLl9fZGF0YV9fW2tleV07XG4gICAgICAgICAgdGhpcy5zaXplIC09IHJlc3VsdDIgPyAxIDogMDtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBoYXNoR2V0KGtleSkge1xuICAgICAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICAgICAgICBpZiAobmF0aXZlQ3JlYXRlKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0MiA9IGRhdGFba2V5XTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyID09PSBIQVNIX1VOREVGSU5FRCA/IHVuZGVmaW5lZDIgOiByZXN1bHQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpID8gZGF0YVtrZXldIDogdW5kZWZpbmVkMjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBoYXNoSGFzKGtleSkge1xuICAgICAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICAgICAgICByZXR1cm4gbmF0aXZlQ3JlYXRlID8gZGF0YVtrZXldICE9PSB1bmRlZmluZWQyIDogaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGhhc2hTZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICAgICAgICB0aGlzLnNpemUgKz0gdGhpcy5oYXMoa2V5KSA/IDAgOiAxO1xuICAgICAgICAgIGRhdGFba2V5XSA9IG5hdGl2ZUNyZWF0ZSAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkMiA/IEhBU0hfVU5ERUZJTkVEIDogdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgSGFzaC5wcm90b3R5cGUuY2xlYXIgPSBoYXNoQ2xlYXI7XG4gICAgICAgIEhhc2gucHJvdG90eXBlW1wiZGVsZXRlXCJdID0gaGFzaERlbGV0ZTtcbiAgICAgICAgSGFzaC5wcm90b3R5cGUuZ2V0ID0gaGFzaEdldDtcbiAgICAgICAgSGFzaC5wcm90b3R5cGUuaGFzID0gaGFzaEhhcztcbiAgICAgICAgSGFzaC5wcm90b3R5cGUuc2V0ID0gaGFzaFNldDtcbiAgICAgICAgZnVuY3Rpb24gTGlzdENhY2hlKGVudHJpZXMpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuICAgICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGVudHJ5MiA9IGVudHJpZXNbaW5kZXhdO1xuICAgICAgICAgICAgdGhpcy5zZXQoZW50cnkyWzBdLCBlbnRyeTJbMV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBsaXN0Q2FjaGVDbGVhcigpIHtcbiAgICAgICAgICB0aGlzLl9fZGF0YV9fID0gW107XG4gICAgICAgICAgdGhpcy5zaXplID0gMDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBsaXN0Q2FjaGVEZWxldGUoa2V5KSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLCBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuICAgICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGxhc3RJbmRleCA9IGRhdGEubGVuZ3RoIC0gMTtcbiAgICAgICAgICBpZiAoaW5kZXggPT0gbGFzdEluZGV4KSB7XG4gICAgICAgICAgICBkYXRhLnBvcCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzcGxpY2UuY2FsbChkYXRhLCBpbmRleCwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC0tdGhpcy5zaXplO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGxpc3RDYWNoZUdldChrZXkpIHtcbiAgICAgICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG4gICAgICAgICAgcmV0dXJuIGluZGV4IDwgMCA/IHVuZGVmaW5lZDIgOiBkYXRhW2luZGV4XVsxXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBsaXN0Q2FjaGVIYXMoa2V5KSB7XG4gICAgICAgICAgcmV0dXJuIGFzc29jSW5kZXhPZih0aGlzLl9fZGF0YV9fLCBrZXkpID4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbGlzdENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG4gICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICAgICAgKyt0aGlzLnNpemU7XG4gICAgICAgICAgICBkYXRhLnB1c2goW2tleSwgdmFsdWVdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0YVtpbmRleF1bMV0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgTGlzdENhY2hlLnByb3RvdHlwZS5jbGVhciA9IGxpc3RDYWNoZUNsZWFyO1xuICAgICAgICBMaXN0Q2FjaGUucHJvdG90eXBlW1wiZGVsZXRlXCJdID0gbGlzdENhY2hlRGVsZXRlO1xuICAgICAgICBMaXN0Q2FjaGUucHJvdG90eXBlLmdldCA9IGxpc3RDYWNoZUdldDtcbiAgICAgICAgTGlzdENhY2hlLnByb3RvdHlwZS5oYXMgPSBsaXN0Q2FjaGVIYXM7XG4gICAgICAgIExpc3RDYWNoZS5wcm90b3R5cGUuc2V0ID0gbGlzdENhY2hlU2V0O1xuICAgICAgICBmdW5jdGlvbiBNYXBDYWNoZShlbnRyaWVzKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcbiAgICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBlbnRyeTIgPSBlbnRyaWVzW2luZGV4XTtcbiAgICAgICAgICAgIHRoaXMuc2V0KGVudHJ5MlswXSwgZW50cnkyWzFdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWFwQ2FjaGVDbGVhcigpIHtcbiAgICAgICAgICB0aGlzLnNpemUgPSAwO1xuICAgICAgICAgIHRoaXMuX19kYXRhX18gPSB7XG4gICAgICAgICAgICBcImhhc2hcIjogbmV3IEhhc2goKSxcbiAgICAgICAgICAgIFwibWFwXCI6IG5ldyAoTWFwMiB8fCBMaXN0Q2FjaGUpKCksXG4gICAgICAgICAgICBcInN0cmluZ1wiOiBuZXcgSGFzaCgpXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtYXBDYWNoZURlbGV0ZShrZXkpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IGdldE1hcERhdGEodGhpcywga2V5KVtcImRlbGV0ZVwiXShrZXkpO1xuICAgICAgICAgIHRoaXMuc2l6ZSAtPSByZXN1bHQyID8gMSA6IDA7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWFwQ2FjaGVHZXQoa2V5KSB7XG4gICAgICAgICAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5nZXQoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtYXBDYWNoZUhhcyhrZXkpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmhhcyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1hcENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgICB2YXIgZGF0YSA9IGdldE1hcERhdGEodGhpcywga2V5KSwgc2l6ZTIgPSBkYXRhLnNpemU7XG4gICAgICAgICAgZGF0YS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgdGhpcy5zaXplICs9IGRhdGEuc2l6ZSA9PSBzaXplMiA/IDAgOiAxO1xuICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIE1hcENhY2hlLnByb3RvdHlwZS5jbGVhciA9IG1hcENhY2hlQ2xlYXI7XG4gICAgICAgIE1hcENhY2hlLnByb3RvdHlwZVtcImRlbGV0ZVwiXSA9IG1hcENhY2hlRGVsZXRlO1xuICAgICAgICBNYXBDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbWFwQ2FjaGVHZXQ7XG4gICAgICAgIE1hcENhY2hlLnByb3RvdHlwZS5oYXMgPSBtYXBDYWNoZUhhcztcbiAgICAgICAgTWFwQ2FjaGUucHJvdG90eXBlLnNldCA9IG1hcENhY2hlU2V0O1xuICAgICAgICBmdW5jdGlvbiBTZXRDYWNoZSh2YWx1ZXMyKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHZhbHVlczIgPT0gbnVsbCA/IDAgOiB2YWx1ZXMyLmxlbmd0aDtcbiAgICAgICAgICB0aGlzLl9fZGF0YV9fID0gbmV3IE1hcENhY2hlKCk7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkKHZhbHVlczJbaW5kZXhdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2V0Q2FjaGVBZGQodmFsdWUpIHtcbiAgICAgICAgICB0aGlzLl9fZGF0YV9fLnNldCh2YWx1ZSwgSEFTSF9VTkRFRklORUQpO1xuICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNldENhY2hlSGFzKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBTZXRDYWNoZS5wcm90b3R5cGUuYWRkID0gU2V0Q2FjaGUucHJvdG90eXBlLnB1c2ggPSBzZXRDYWNoZUFkZDtcbiAgICAgICAgU2V0Q2FjaGUucHJvdG90eXBlLmhhcyA9IHNldENhY2hlSGFzO1xuICAgICAgICBmdW5jdGlvbiBTdGFjayhlbnRyaWVzKSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZShlbnRyaWVzKTtcbiAgICAgICAgICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc3RhY2tDbGVhcigpIHtcbiAgICAgICAgICB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZSgpO1xuICAgICAgICAgIHRoaXMuc2l6ZSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc3RhY2tEZWxldGUoa2V5KSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLCByZXN1bHQyID0gZGF0YVtcImRlbGV0ZVwiXShrZXkpO1xuICAgICAgICAgIHRoaXMuc2l6ZSA9IGRhdGEuc2l6ZTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdGFja0dldChrZXkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdGFja0hhcyhrZXkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdGFja1NldChrZXksIHZhbHVlKSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICAgICAgICAgIGlmIChkYXRhIGluc3RhbmNlb2YgTGlzdENhY2hlKSB7XG4gICAgICAgICAgICB2YXIgcGFpcnMgPSBkYXRhLl9fZGF0YV9fO1xuICAgICAgICAgICAgaWYgKCFNYXAyIHx8IHBhaXJzLmxlbmd0aCA8IExBUkdFX0FSUkFZX1NJWkUgLSAxKSB7XG4gICAgICAgICAgICAgIHBhaXJzLnB1c2goW2tleSwgdmFsdWVdKTtcbiAgICAgICAgICAgICAgdGhpcy5zaXplID0gKytkYXRhLnNpemU7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGUocGFpcnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkYXRhLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgU3RhY2sucHJvdG90eXBlLmNsZWFyID0gc3RhY2tDbGVhcjtcbiAgICAgICAgU3RhY2sucHJvdG90eXBlW1wiZGVsZXRlXCJdID0gc3RhY2tEZWxldGU7XG4gICAgICAgIFN0YWNrLnByb3RvdHlwZS5nZXQgPSBzdGFja0dldDtcbiAgICAgICAgU3RhY2sucHJvdG90eXBlLmhhcyA9IHN0YWNrSGFzO1xuICAgICAgICBTdGFjay5wcm90b3R5cGUuc2V0ID0gc3RhY2tTZXQ7XG4gICAgICAgIGZ1bmN0aW9uIGFycmF5TGlrZUtleXModmFsdWUsIGluaGVyaXRlZCkge1xuICAgICAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpLCBpc0FyZyA9ICFpc0FyciAmJiBpc0FyZ3VtZW50cyh2YWx1ZSksIGlzQnVmZiA9ICFpc0FyciAmJiAhaXNBcmcgJiYgaXNCdWZmZXIodmFsdWUpLCBpc1R5cGUgPSAhaXNBcnIgJiYgIWlzQXJnICYmICFpc0J1ZmYgJiYgaXNUeXBlZEFycmF5KHZhbHVlKSwgc2tpcEluZGV4ZXMgPSBpc0FyciB8fCBpc0FyZyB8fCBpc0J1ZmYgfHwgaXNUeXBlLCByZXN1bHQyID0gc2tpcEluZGV4ZXMgPyBiYXNlVGltZXModmFsdWUubGVuZ3RoLCBTdHJpbmcyKSA6IFtdLCBsZW5ndGggPSByZXN1bHQyLmxlbmd0aDtcbiAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgIGlmICgoaW5oZXJpdGVkIHx8IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpICYmICEoc2tpcEluZGV4ZXMgJiYgLy8gU2FmYXJpIDkgaGFzIGVudW1lcmFibGUgYGFyZ3VtZW50cy5sZW5ndGhgIGluIHN0cmljdCBtb2RlLlxuICAgICAgICAgICAgKGtleSA9PSBcImxlbmd0aFwiIHx8IC8vIE5vZGUuanMgMC4xMCBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiBidWZmZXJzLlxuICAgICAgICAgICAgaXNCdWZmICYmIChrZXkgPT0gXCJvZmZzZXRcIiB8fCBrZXkgPT0gXCJwYXJlbnRcIikgfHwgLy8gUGhhbnRvbUpTIDIgaGFzIGVudW1lcmFibGUgbm9uLWluZGV4IHByb3BlcnRpZXMgb24gdHlwZWQgYXJyYXlzLlxuICAgICAgICAgICAgaXNUeXBlICYmIChrZXkgPT0gXCJidWZmZXJcIiB8fCBrZXkgPT0gXCJieXRlTGVuZ3RoXCIgfHwga2V5ID09IFwiYnl0ZU9mZnNldFwiKSB8fCAvLyBTa2lwIGluZGV4IHByb3BlcnRpZXMuXG4gICAgICAgICAgICBpc0luZGV4KGtleSwgbGVuZ3RoKSkpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIucHVzaChrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBhcnJheVNhbXBsZShhcnJheSkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgcmV0dXJuIGxlbmd0aCA/IGFycmF5W2Jhc2VSYW5kb20oMCwgbGVuZ3RoIC0gMSldIDogdW5kZWZpbmVkMjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBhcnJheVNhbXBsZVNpemUoYXJyYXksIG4pIHtcbiAgICAgICAgICByZXR1cm4gc2h1ZmZsZVNlbGYoY29weUFycmF5KGFycmF5KSwgYmFzZUNsYW1wKG4sIDAsIGFycmF5Lmxlbmd0aCkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGFycmF5U2h1ZmZsZShhcnJheSkge1xuICAgICAgICAgIHJldHVybiBzaHVmZmxlU2VsZihjb3B5QXJyYXkoYXJyYXkpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkMiAmJiAhZXEob2JqZWN0W2tleV0sIHZhbHVlKSB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkMiAmJiAhKGtleSBpbiBvYmplY3QpKSB7XG4gICAgICAgICAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gICAgICAgICAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV07XG4gICAgICAgICAgaWYgKCEoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYgZXEob2JqVmFsdWUsIHZhbHVlKSkgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDIgJiYgIShrZXkgaW4gb2JqZWN0KSkge1xuICAgICAgICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGFzc29jSW5kZXhPZihhcnJheSwga2V5KSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICAgIGlmIChlcShhcnJheVtsZW5ndGhdWzBdLCBrZXkpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBsZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlQWdncmVnYXRvcihjb2xsZWN0aW9uLCBzZXR0ZXIsIGl0ZXJhdGVlMiwgYWNjdW11bGF0b3IpIHtcbiAgICAgICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uMikge1xuICAgICAgICAgICAgc2V0dGVyKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaXRlcmF0ZWUyKHZhbHVlKSwgY29sbGVjdGlvbjIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlQXNzaWduKG9iamVjdCwgc291cmNlKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCAmJiBjb3B5T2JqZWN0KHNvdXJjZSwga2V5cyhzb3VyY2UpLCBvYmplY3QpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VBc3NpZ25JbihvYmplY3QsIHNvdXJjZSkge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgJiYgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgICAgICAgICBpZiAoa2V5ID09IFwiX19wcm90b19fXCIgJiYgZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgICAgIGRlZmluZVByb3BlcnR5KG9iamVjdCwga2V5LCB7XG4gICAgICAgICAgICAgIFwiY29uZmlndXJhYmxlXCI6IHRydWUsXG4gICAgICAgICAgICAgIFwiZW51bWVyYWJsZVwiOiB0cnVlLFxuICAgICAgICAgICAgICBcInZhbHVlXCI6IHZhbHVlLFxuICAgICAgICAgICAgICBcIndyaXRhYmxlXCI6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlQXQob2JqZWN0LCBwYXRocykge1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBwYXRocy5sZW5ndGgsIHJlc3VsdDIgPSBBcnJheTIobGVuZ3RoKSwgc2tpcCA9IG9iamVjdCA9PSBudWxsO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQyW2luZGV4XSA9IHNraXAgPyB1bmRlZmluZWQyIDogZ2V0KG9iamVjdCwgcGF0aHNbaW5kZXhdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUNsYW1wKG51bWJlciwgbG93ZXIsIHVwcGVyKSB7XG4gICAgICAgICAgaWYgKG51bWJlciA9PT0gbnVtYmVyKSB7XG4gICAgICAgICAgICBpZiAodXBwZXIgIT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyIDw9IHVwcGVyID8gbnVtYmVyIDogdXBwZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobG93ZXIgIT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyID49IGxvd2VyID8gbnVtYmVyIDogbG93ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUNsb25lKHZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIG9iamVjdCwgc3RhY2spIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiwgaXNEZWVwID0gYml0bWFzayAmIENMT05FX0RFRVBfRkxBRywgaXNGbGF0ID0gYml0bWFzayAmIENMT05FX0ZMQVRfRkxBRywgaXNGdWxsID0gYml0bWFzayAmIENMT05FX1NZTUJPTFNfRkxBRztcbiAgICAgICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICAgICAgcmVzdWx0MiA9IG9iamVjdCA/IGN1c3RvbWl6ZXIodmFsdWUsIGtleSwgb2JqZWN0LCBzdGFjaykgOiBjdXN0b21pemVyKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlc3VsdDIgIT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKTtcbiAgICAgICAgICBpZiAoaXNBcnIpIHtcbiAgICAgICAgICAgIHJlc3VsdDIgPSBpbml0Q2xvbmVBcnJheSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoIWlzRGVlcCkge1xuICAgICAgICAgICAgICByZXR1cm4gY29weUFycmF5KHZhbHVlLCByZXN1bHQyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIHRhZyA9IGdldFRhZyh2YWx1ZSksIGlzRnVuYyA9IHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWc7XG4gICAgICAgICAgICBpZiAoaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjbG9uZUJ1ZmZlcih2YWx1ZSwgaXNEZWVwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0YWcgPT0gb2JqZWN0VGFnIHx8IHRhZyA9PSBhcmdzVGFnIHx8IGlzRnVuYyAmJiAhb2JqZWN0KSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIgPSBpc0ZsYXQgfHwgaXNGdW5jID8ge30gOiBpbml0Q2xvbmVPYmplY3QodmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoIWlzRGVlcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0ZsYXQgPyBjb3B5U3ltYm9sc0luKHZhbHVlLCBiYXNlQXNzaWduSW4ocmVzdWx0MiwgdmFsdWUpKSA6IGNvcHlTeW1ib2xzKHZhbHVlLCBiYXNlQXNzaWduKHJlc3VsdDIsIHZhbHVlKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmICghY2xvbmVhYmxlVGFnc1t0YWddKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdCA/IHZhbHVlIDoge307XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVzdWx0MiA9IGluaXRDbG9uZUJ5VGFnKHZhbHVlLCB0YWcsIGlzRGVlcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjaygpKTtcbiAgICAgICAgICB2YXIgc3RhY2tlZCA9IHN0YWNrLmdldCh2YWx1ZSk7XG4gICAgICAgICAgaWYgKHN0YWNrZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzdGFja2VkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdGFjay5zZXQodmFsdWUsIHJlc3VsdDIpO1xuICAgICAgICAgIGlmIChpc1NldCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24oc3ViVmFsdWUpIHtcbiAgICAgICAgICAgICAgcmVzdWx0Mi5hZGQoYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdWJWYWx1ZSwgdmFsdWUsIHN0YWNrKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzTWFwKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbihzdWJWYWx1ZSwga2V5Mikge1xuICAgICAgICAgICAgICByZXN1bHQyLnNldChrZXkyLCBiYXNlQ2xvbmUoc3ViVmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGtleTIsIHZhbHVlLCBzdGFjaykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBrZXlzRnVuYyA9IGlzRnVsbCA/IGlzRmxhdCA/IGdldEFsbEtleXNJbiA6IGdldEFsbEtleXMgOiBpc0ZsYXQgPyBrZXlzSW4gOiBrZXlzO1xuICAgICAgICAgIHZhciBwcm9wcyA9IGlzQXJyID8gdW5kZWZpbmVkMiA6IGtleXNGdW5jKHZhbHVlKTtcbiAgICAgICAgICBhcnJheUVhY2gocHJvcHMgfHwgdmFsdWUsIGZ1bmN0aW9uKHN1YlZhbHVlLCBrZXkyKSB7XG4gICAgICAgICAgICBpZiAocHJvcHMpIHtcbiAgICAgICAgICAgICAga2V5MiA9IHN1YlZhbHVlO1xuICAgICAgICAgICAgICBzdWJWYWx1ZSA9IHZhbHVlW2tleTJdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXNzaWduVmFsdWUocmVzdWx0Miwga2V5MiwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXkyLCB2YWx1ZSwgc3RhY2spKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlQ29uZm9ybXMoc291cmNlKSB7XG4gICAgICAgICAgdmFyIHByb3BzID0ga2V5cyhzb3VyY2UpO1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlQ29uZm9ybXNUbyhvYmplY3QsIHNvdXJjZSwgcHJvcHMpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUNvbmZvcm1zVG8ob2JqZWN0LCBzb3VyY2UsIHByb3BzKSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcbiAgICAgICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAhbGVuZ3RoO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvYmplY3QgPSBPYmplY3QyKG9iamVjdCk7XG4gICAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0gcHJvcHNbbGVuZ3RoXSwgcHJlZGljYXRlID0gc291cmNlW2tleV0sIHZhbHVlID0gb2JqZWN0W2tleV07XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZDIgJiYgIShrZXkgaW4gb2JqZWN0KSB8fCAhcHJlZGljYXRlKHZhbHVlKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VEZWxheShmdW5jLCB3YWl0LCBhcmdzKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcjIoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBmdW5jLmFwcGx5KHVuZGVmaW5lZDIsIGFyZ3MpO1xuICAgICAgICAgIH0sIHdhaXQpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VEaWZmZXJlbmNlKGFycmF5LCB2YWx1ZXMyLCBpdGVyYXRlZTIsIGNvbXBhcmF0b3IpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgaW5jbHVkZXMyID0gYXJyYXlJbmNsdWRlcywgaXNDb21tb24gPSB0cnVlLCBsZW5ndGggPSBhcnJheS5sZW5ndGgsIHJlc3VsdDIgPSBbXSwgdmFsdWVzTGVuZ3RoID0gdmFsdWVzMi5sZW5ndGg7XG4gICAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgICB2YWx1ZXMyID0gYXJyYXlNYXAodmFsdWVzMiwgYmFzZVVuYXJ5KGl0ZXJhdGVlMikpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY29tcGFyYXRvcikge1xuICAgICAgICAgICAgaW5jbHVkZXMyID0gYXJyYXlJbmNsdWRlc1dpdGg7XG4gICAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVzMi5sZW5ndGggPj0gTEFSR0VfQVJSQVlfU0laRSkge1xuICAgICAgICAgICAgaW5jbHVkZXMyID0gY2FjaGVIYXM7XG4gICAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICAgICAgdmFsdWVzMiA9IG5ldyBTZXRDYWNoZSh2YWx1ZXMyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ZXI6XG4gICAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sIGNvbXB1dGVkID0gaXRlcmF0ZWUyID09IG51bGwgPyB2YWx1ZSA6IGl0ZXJhdGVlMih2YWx1ZSk7XG4gICAgICAgICAgICAgIHZhbHVlID0gY29tcGFyYXRvciB8fCB2YWx1ZSAhPT0gMCA/IHZhbHVlIDogMDtcbiAgICAgICAgICAgICAgaWYgKGlzQ29tbW9uICYmIGNvbXB1dGVkID09PSBjb21wdXRlZCkge1xuICAgICAgICAgICAgICAgIHZhciB2YWx1ZXNJbmRleCA9IHZhbHVlc0xlbmd0aDtcbiAgICAgICAgICAgICAgICB3aGlsZSAodmFsdWVzSW5kZXgtLSkge1xuICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlczJbdmFsdWVzSW5kZXhdID09PSBjb21wdXRlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzdWx0Mi5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICghaW5jbHVkZXMyKHZhbHVlczIsIGNvbXB1dGVkLCBjb21wYXJhdG9yKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdDIucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYmFzZUVhY2ggPSBjcmVhdGVCYXNlRWFjaChiYXNlRm9yT3duKTtcbiAgICAgICAgdmFyIGJhc2VFYWNoUmlnaHQgPSBjcmVhdGVCYXNlRWFjaChiYXNlRm9yT3duUmlnaHQsIHRydWUpO1xuICAgICAgICBmdW5jdGlvbiBiYXNlRXZlcnkoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSB0cnVlO1xuICAgICAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbjIpIHtcbiAgICAgICAgICAgIHJlc3VsdDIgPSAhIXByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24yKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VFeHRyZW11bShhcnJheSwgaXRlcmF0ZWUyLCBjb21wYXJhdG9yKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLCBjdXJyZW50ID0gaXRlcmF0ZWUyKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50ICE9IG51bGwgJiYgKGNvbXB1dGVkID09PSB1bmRlZmluZWQyID8gY3VycmVudCA9PT0gY3VycmVudCAmJiAhaXNTeW1ib2woY3VycmVudCkgOiBjb21wYXJhdG9yKGN1cnJlbnQsIGNvbXB1dGVkKSkpIHtcbiAgICAgICAgICAgICAgdmFyIGNvbXB1dGVkID0gY3VycmVudCwgcmVzdWx0MiA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlRmlsbChhcnJheSwgdmFsdWUsIHN0YXJ0LCBlbmQpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIHN0YXJ0ID0gdG9JbnRlZ2VyKHN0YXJ0KTtcbiAgICAgICAgICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgICAgICAgICBzdGFydCA9IC1zdGFydCA+IGxlbmd0aCA/IDAgOiBsZW5ndGggKyBzdGFydDtcbiAgICAgICAgICB9XG4gICAgICAgICAgZW5kID0gZW5kID09PSB1bmRlZmluZWQyIHx8IGVuZCA+IGxlbmd0aCA/IGxlbmd0aCA6IHRvSW50ZWdlcihlbmQpO1xuICAgICAgICAgIGlmIChlbmQgPCAwKSB7XG4gICAgICAgICAgICBlbmQgKz0gbGVuZ3RoO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbmQgPSBzdGFydCA+IGVuZCA/IDAgOiB0b0xlbmd0aChlbmQpO1xuICAgICAgICAgIHdoaWxlIChzdGFydCA8IGVuZCkge1xuICAgICAgICAgICAgYXJyYXlbc3RhcnQrK10gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VGaWx0ZXIoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBbXTtcbiAgICAgICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24yKSB7XG4gICAgICAgICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbjIpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUZsYXR0ZW4oYXJyYXksIGRlcHRoLCBwcmVkaWNhdGUsIGlzU3RyaWN0LCByZXN1bHQyKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBwcmVkaWNhdGUgfHwgKHByZWRpY2F0ZSA9IGlzRmxhdHRlbmFibGUpO1xuICAgICAgICAgIHJlc3VsdDIgfHwgKHJlc3VsdDIgPSBbXSk7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgICAgIGlmIChkZXB0aCA+IDAgJiYgcHJlZGljYXRlKHZhbHVlKSkge1xuICAgICAgICAgICAgICBpZiAoZGVwdGggPiAxKSB7XG4gICAgICAgICAgICAgICAgYmFzZUZsYXR0ZW4odmFsdWUsIGRlcHRoIC0gMSwgcHJlZGljYXRlLCBpc1N0cmljdCwgcmVzdWx0Mik7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXJyYXlQdXNoKHJlc3VsdDIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgcmVzdWx0MltyZXN1bHQyLmxlbmd0aF0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGJhc2VGb3IgPSBjcmVhdGVCYXNlRm9yKCk7XG4gICAgICAgIHZhciBiYXNlRm9yUmlnaHQgPSBjcmVhdGVCYXNlRm9yKHRydWUpO1xuICAgICAgICBmdW5jdGlvbiBiYXNlRm9yT3duKG9iamVjdCwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCAmJiBiYXNlRm9yKG9iamVjdCwgaXRlcmF0ZWUyLCBrZXlzKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlRm9yT3duUmlnaHQob2JqZWN0LCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ICYmIGJhc2VGb3JSaWdodChvYmplY3QsIGl0ZXJhdGVlMiwga2V5cyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUZ1bmN0aW9ucyhvYmplY3QsIHByb3BzKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5RmlsdGVyKHByb3BzLCBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKG9iamVjdFtrZXldKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlR2V0KG9iamVjdCwgcGF0aCkge1xuICAgICAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICAgICAgICAgIHZhciBpbmRleCA9IDAsIGxlbmd0aCA9IHBhdGgubGVuZ3RoO1xuICAgICAgICAgIHdoaWxlIChvYmplY3QgIT0gbnVsbCAmJiBpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgb2JqZWN0ID0gb2JqZWN0W3RvS2V5KHBhdGhbaW5kZXgrK10pXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGluZGV4ICYmIGluZGV4ID09IGxlbmd0aCA/IG9iamVjdCA6IHVuZGVmaW5lZDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzRnVuYywgc3ltYm9sc0Z1bmMpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IGtleXNGdW5jKG9iamVjdCk7XG4gICAgICAgICAgcmV0dXJuIGlzQXJyYXkob2JqZWN0KSA/IHJlc3VsdDIgOiBhcnJheVB1c2gocmVzdWx0Miwgc3ltYm9sc0Z1bmMob2JqZWN0KSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZSkge1xuICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZDIgPyB1bmRlZmluZWRUYWcgOiBudWxsVGFnO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc3ltVG9TdHJpbmdUYWcgJiYgc3ltVG9TdHJpbmdUYWcgaW4gT2JqZWN0Mih2YWx1ZSkgPyBnZXRSYXdUYWcodmFsdWUpIDogb2JqZWN0VG9TdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VHdCh2YWx1ZSwgb3RoZXIpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgPiBvdGhlcjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlSGFzKG9iamVjdCwga2V5KSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VIYXNJbihvYmplY3QsIGtleSkge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBrZXkgaW4gT2JqZWN0MihvYmplY3QpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJblJhbmdlKG51bWJlciwgc3RhcnQsIGVuZCkge1xuICAgICAgICAgIHJldHVybiBudW1iZXIgPj0gbmF0aXZlTWluKHN0YXJ0LCBlbmQpICYmIG51bWJlciA8IG5hdGl2ZU1heChzdGFydCwgZW5kKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlSW50ZXJzZWN0aW9uKGFycmF5cywgaXRlcmF0ZWUyLCBjb21wYXJhdG9yKSB7XG4gICAgICAgICAgdmFyIGluY2x1ZGVzMiA9IGNvbXBhcmF0b3IgPyBhcnJheUluY2x1ZGVzV2l0aCA6IGFycmF5SW5jbHVkZXMsIGxlbmd0aCA9IGFycmF5c1swXS5sZW5ndGgsIG90aExlbmd0aCA9IGFycmF5cy5sZW5ndGgsIG90aEluZGV4ID0gb3RoTGVuZ3RoLCBjYWNoZXMgPSBBcnJheTIob3RoTGVuZ3RoKSwgbWF4TGVuZ3RoID0gSW5maW5pdHksIHJlc3VsdDIgPSBbXTtcbiAgICAgICAgICB3aGlsZSAob3RoSW5kZXgtLSkge1xuICAgICAgICAgICAgdmFyIGFycmF5ID0gYXJyYXlzW290aEluZGV4XTtcbiAgICAgICAgICAgIGlmIChvdGhJbmRleCAmJiBpdGVyYXRlZTIpIHtcbiAgICAgICAgICAgICAgYXJyYXkgPSBhcnJheU1hcChhcnJheSwgYmFzZVVuYXJ5KGl0ZXJhdGVlMikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWF4TGVuZ3RoID0gbmF0aXZlTWluKGFycmF5Lmxlbmd0aCwgbWF4TGVuZ3RoKTtcbiAgICAgICAgICAgIGNhY2hlc1tvdGhJbmRleF0gPSAhY29tcGFyYXRvciAmJiAoaXRlcmF0ZWUyIHx8IGxlbmd0aCA+PSAxMjAgJiYgYXJyYXkubGVuZ3RoID49IDEyMCkgPyBuZXcgU2V0Q2FjaGUob3RoSW5kZXggJiYgYXJyYXkpIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXJyYXkgPSBhcnJheXNbMF07XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIHNlZW4gPSBjYWNoZXNbMF07XG4gICAgICAgICAgb3V0ZXI6XG4gICAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCAmJiByZXN1bHQyLmxlbmd0aCA8IG1heExlbmd0aCkge1xuICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sIGNvbXB1dGVkID0gaXRlcmF0ZWUyID8gaXRlcmF0ZWUyKHZhbHVlKSA6IHZhbHVlO1xuICAgICAgICAgICAgICB2YWx1ZSA9IGNvbXBhcmF0b3IgfHwgdmFsdWUgIT09IDAgPyB2YWx1ZSA6IDA7XG4gICAgICAgICAgICAgIGlmICghKHNlZW4gPyBjYWNoZUhhcyhzZWVuLCBjb21wdXRlZCkgOiBpbmNsdWRlczIocmVzdWx0MiwgY29tcHV0ZWQsIGNvbXBhcmF0b3IpKSkge1xuICAgICAgICAgICAgICAgIG90aEluZGV4ID0gb3RoTGVuZ3RoO1xuICAgICAgICAgICAgICAgIHdoaWxlICgtLW90aEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICB2YXIgY2FjaGUgPSBjYWNoZXNbb3RoSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgaWYgKCEoY2FjaGUgPyBjYWNoZUhhcyhjYWNoZSwgY29tcHV0ZWQpIDogaW5jbHVkZXMyKGFycmF5c1tvdGhJbmRleF0sIGNvbXB1dGVkLCBjb21wYXJhdG9yKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzZWVuKSB7XG4gICAgICAgICAgICAgICAgICBzZWVuLnB1c2goY29tcHV0ZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXN1bHQyLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUludmVydGVyKG9iamVjdCwgc2V0dGVyLCBpdGVyYXRlZTIsIGFjY3VtdWxhdG9yKSB7XG4gICAgICAgICAgYmFzZUZvck93bihvYmplY3QsIGZ1bmN0aW9uKHZhbHVlLCBrZXksIG9iamVjdDIpIHtcbiAgICAgICAgICAgIHNldHRlcihhY2N1bXVsYXRvciwgaXRlcmF0ZWUyKHZhbHVlKSwga2V5LCBvYmplY3QyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUludm9rZShvYmplY3QsIHBhdGgsIGFyZ3MpIHtcbiAgICAgICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcbiAgICAgICAgICBvYmplY3QgPSBwYXJlbnQob2JqZWN0LCBwYXRoKTtcbiAgICAgICAgICB2YXIgZnVuYyA9IG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogb2JqZWN0W3RvS2V5KGxhc3QocGF0aCkpXTtcbiAgICAgICAgICByZXR1cm4gZnVuYyA9PSBudWxsID8gdW5kZWZpbmVkMiA6IGFwcGx5KGZ1bmMsIG9iamVjdCwgYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUlzQXJndW1lbnRzKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlSXNBcnJheUJ1ZmZlcih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IGFycmF5QnVmZmVyVGFnO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJc0RhdGUodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBkYXRlVGFnO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJc0VxdWFsKHZhbHVlLCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spIHtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IG90aGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHZhbHVlID09IG51bGwgfHwgb3RoZXIgPT0gbnVsbCB8fCAhaXNPYmplY3RMaWtlKHZhbHVlKSAmJiAhaXNPYmplY3RMaWtlKG90aGVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZSAmJiBvdGhlciAhPT0gb3RoZXI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlSXNFcXVhbERlZXAodmFsdWUsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBiYXNlSXNFcXVhbCwgc3RhY2spO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJc0VxdWFsRGVlcChvYmplY3QsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gICAgICAgICAgdmFyIG9iaklzQXJyID0gaXNBcnJheShvYmplY3QpLCBvdGhJc0FyciA9IGlzQXJyYXkob3RoZXIpLCBvYmpUYWcgPSBvYmpJc0FyciA/IGFycmF5VGFnIDogZ2V0VGFnKG9iamVjdCksIG90aFRhZyA9IG90aElzQXJyID8gYXJyYXlUYWcgOiBnZXRUYWcob3RoZXIpO1xuICAgICAgICAgIG9ialRhZyA9IG9ialRhZyA9PSBhcmdzVGFnID8gb2JqZWN0VGFnIDogb2JqVGFnO1xuICAgICAgICAgIG90aFRhZyA9IG90aFRhZyA9PSBhcmdzVGFnID8gb2JqZWN0VGFnIDogb3RoVGFnO1xuICAgICAgICAgIHZhciBvYmpJc09iaiA9IG9ialRhZyA9PSBvYmplY3RUYWcsIG90aElzT2JqID0gb3RoVGFnID09IG9iamVjdFRhZywgaXNTYW1lVGFnID0gb2JqVGFnID09IG90aFRhZztcbiAgICAgICAgICBpZiAoaXNTYW1lVGFnICYmIGlzQnVmZmVyKG9iamVjdCkpIHtcbiAgICAgICAgICAgIGlmICghaXNCdWZmZXIob3RoZXIpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9iaklzQXJyID0gdHJ1ZTtcbiAgICAgICAgICAgIG9iaklzT2JqID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc1NhbWVUYWcgJiYgIW9iaklzT2JqKSB7XG4gICAgICAgICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2soKSk7XG4gICAgICAgICAgICByZXR1cm4gb2JqSXNBcnIgfHwgaXNUeXBlZEFycmF5KG9iamVjdCkgPyBlcXVhbEFycmF5cyhvYmplY3QsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSA6IGVxdWFsQnlUYWcob2JqZWN0LCBvdGhlciwgb2JqVGFnLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCEoYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHKSkge1xuICAgICAgICAgICAgdmFyIG9iaklzV3JhcHBlZCA9IG9iaklzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBcIl9fd3JhcHBlZF9fXCIpLCBvdGhJc1dyYXBwZWQgPSBvdGhJc09iaiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG90aGVyLCBcIl9fd3JhcHBlZF9fXCIpO1xuICAgICAgICAgICAgaWYgKG9iaklzV3JhcHBlZCB8fCBvdGhJc1dyYXBwZWQpIHtcbiAgICAgICAgICAgICAgdmFyIG9ialVud3JhcHBlZCA9IG9iaklzV3JhcHBlZCA/IG9iamVjdC52YWx1ZSgpIDogb2JqZWN0LCBvdGhVbndyYXBwZWQgPSBvdGhJc1dyYXBwZWQgPyBvdGhlci52YWx1ZSgpIDogb3RoZXI7XG4gICAgICAgICAgICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjaygpKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGVxdWFsRnVuYyhvYmpVbndyYXBwZWQsIG90aFVud3JhcHBlZCwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWlzU2FtZVRhZykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2soKSk7XG4gICAgICAgICAgcmV0dXJuIGVxdWFsT2JqZWN0cyhvYmplY3QsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlSXNNYXAodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBnZXRUYWcodmFsdWUpID09IG1hcFRhZztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlSXNNYXRjaChvYmplY3QsIHNvdXJjZSwgbWF0Y2hEYXRhLCBjdXN0b21pemVyKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gbWF0Y2hEYXRhLmxlbmd0aCwgbGVuZ3RoID0gaW5kZXgsIG5vQ3VzdG9taXplciA9ICFjdXN0b21pemVyO1xuICAgICAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuICFsZW5ndGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9iamVjdCA9IE9iamVjdDIob2JqZWN0KTtcbiAgICAgICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICAgICAgdmFyIGRhdGEgPSBtYXRjaERhdGFbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKG5vQ3VzdG9taXplciAmJiBkYXRhWzJdID8gZGF0YVsxXSAhPT0gb2JqZWN0W2RhdGFbMF1dIDogIShkYXRhWzBdIGluIG9iamVjdCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgZGF0YSA9IG1hdGNoRGF0YVtpbmRleF07XG4gICAgICAgICAgICB2YXIga2V5ID0gZGF0YVswXSwgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSwgc3JjVmFsdWUgPSBkYXRhWzFdO1xuICAgICAgICAgICAgaWYgKG5vQ3VzdG9taXplciAmJiBkYXRhWzJdKSB7XG4gICAgICAgICAgICAgIGlmIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkMiAmJiAhKGtleSBpbiBvYmplY3QpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2YXIgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgICAgICAgICAgICAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0MiA9IGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlLCBzdGFjayk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKCEocmVzdWx0MiA9PT0gdW5kZWZpbmVkMiA/IGJhc2VJc0VxdWFsKHNyY1ZhbHVlLCBvYmpWYWx1ZSwgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgfCBDT01QQVJFX1VOT1JERVJFRF9GTEFHLCBjdXN0b21pemVyLCBzdGFjaykgOiByZXN1bHQyKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlSXNOYXRpdmUodmFsdWUpIHtcbiAgICAgICAgICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gICAgICAgICAgcmV0dXJuIHBhdHRlcm4udGVzdCh0b1NvdXJjZSh2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJc1JlZ0V4cCh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHJlZ2V4cFRhZztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlSXNTZXQodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBnZXRUYWcodmFsdWUpID09IHNldFRhZztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlSXNUeXBlZEFycmF5KHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhIXR5cGVkQXJyYXlUYWdzW2Jhc2VHZXRUYWcodmFsdWUpXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlSXRlcmF0ZWUodmFsdWUpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGlkZW50aXR5O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FycmF5KHZhbHVlKSA/IGJhc2VNYXRjaGVzUHJvcGVydHkodmFsdWVbMF0sIHZhbHVlWzFdKSA6IGJhc2VNYXRjaGVzKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlS2V5cyhvYmplY3QpIHtcbiAgICAgICAgICBpZiAoIWlzUHJvdG90eXBlKG9iamVjdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBuYXRpdmVLZXlzKG9iamVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciByZXN1bHQyID0gW107XG4gICAgICAgICAgZm9yICh2YXIga2V5IGluIE9iamVjdDIob2JqZWN0KSkge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpICYmIGtleSAhPSBcImNvbnN0cnVjdG9yXCIpIHtcbiAgICAgICAgICAgICAgcmVzdWx0Mi5wdXNoKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VLZXlzSW4ob2JqZWN0KSB7XG4gICAgICAgICAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmF0aXZlS2V5c0luKG9iamVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBpc1Byb3RvID0gaXNQcm90b3R5cGUob2JqZWN0KSwgcmVzdWx0MiA9IFtdO1xuICAgICAgICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICAgIGlmICghKGtleSA9PSBcImNvbnN0cnVjdG9yXCIgJiYgKGlzUHJvdG8gfHwgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkpIHtcbiAgICAgICAgICAgICAgcmVzdWx0Mi5wdXNoKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VMdCh2YWx1ZSwgb3RoZXIpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgPCBvdGhlcjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlTWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCByZXN1bHQyID0gaXNBcnJheUxpa2UoY29sbGVjdGlvbikgPyBBcnJheTIoY29sbGVjdGlvbi5sZW5ndGgpIDogW107XG4gICAgICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGtleSwgY29sbGVjdGlvbjIpIHtcbiAgICAgICAgICAgIHJlc3VsdDJbKytpbmRleF0gPSBpdGVyYXRlZTIodmFsdWUsIGtleSwgY29sbGVjdGlvbjIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VNYXRjaGVzKHNvdXJjZSkge1xuICAgICAgICAgIHZhciBtYXRjaERhdGEgPSBnZXRNYXRjaERhdGEoc291cmNlKTtcbiAgICAgICAgICBpZiAobWF0Y2hEYXRhLmxlbmd0aCA9PSAxICYmIG1hdGNoRGF0YVswXVsyXSkge1xuICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlKG1hdGNoRGF0YVswXVswXSwgbWF0Y2hEYXRhWzBdWzFdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICAgICAgcmV0dXJuIG9iamVjdCA9PT0gc291cmNlIHx8IGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBtYXRjaERhdGEpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZU1hdGNoZXNQcm9wZXJ0eShwYXRoLCBzcmNWYWx1ZSkge1xuICAgICAgICAgIGlmIChpc0tleShwYXRoKSAmJiBpc1N0cmljdENvbXBhcmFibGUoc3JjVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hlc1N0cmljdENvbXBhcmFibGUodG9LZXkocGF0aCksIHNyY1ZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICAgICAgdmFyIG9ialZhbHVlID0gZ2V0KG9iamVjdCwgcGF0aCk7XG4gICAgICAgICAgICByZXR1cm4gb2JqVmFsdWUgPT09IHVuZGVmaW5lZDIgJiYgb2JqVmFsdWUgPT09IHNyY1ZhbHVlID8gaGFzSW4ob2JqZWN0LCBwYXRoKSA6IGJhc2VJc0VxdWFsKHNyY1ZhbHVlLCBvYmpWYWx1ZSwgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgfCBDT01QQVJFX1VOT1JERVJFRF9GTEFHKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VNZXJnZShvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIsIHN0YWNrKSB7XG4gICAgICAgICAgaWYgKG9iamVjdCA9PT0gc291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGJhc2VGb3Ioc291cmNlLCBmdW5jdGlvbihzcmNWYWx1ZSwga2V5KSB7XG4gICAgICAgICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2soKSk7XG4gICAgICAgICAgICBpZiAoaXNPYmplY3Qoc3JjVmFsdWUpKSB7XG4gICAgICAgICAgICAgIGJhc2VNZXJnZURlZXAob2JqZWN0LCBzb3VyY2UsIGtleSwgc3JjSW5kZXgsIGJhc2VNZXJnZSwgY3VzdG9taXplciwgc3RhY2spO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIoc2FmZUdldChvYmplY3QsIGtleSksIHNyY1ZhbHVlLCBrZXkgKyBcIlwiLCBvYmplY3QsIHNvdXJjZSwgc3RhY2spIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwga2V5c0luKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlTWVyZ2VEZWVwKG9iamVjdCwgc291cmNlLCBrZXksIHNyY0luZGV4LCBtZXJnZUZ1bmMsIGN1c3RvbWl6ZXIsIHN0YWNrKSB7XG4gICAgICAgICAgdmFyIG9ialZhbHVlID0gc2FmZUdldChvYmplY3QsIGtleSksIHNyY1ZhbHVlID0gc2FmZUdldChzb3VyY2UsIGtleSksIHN0YWNrZWQgPSBzdGFjay5nZXQoc3JjVmFsdWUpO1xuICAgICAgICAgIGlmIChzdGFja2VkKSB7XG4gICAgICAgICAgICBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCBzdGFja2VkKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXkgKyBcIlwiLCBvYmplY3QsIHNvdXJjZSwgc3RhY2spIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICB2YXIgaXNDb21tb24gPSBuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkMjtcbiAgICAgICAgICBpZiAoaXNDb21tb24pIHtcbiAgICAgICAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkoc3JjVmFsdWUpLCBpc0J1ZmYgPSAhaXNBcnIgJiYgaXNCdWZmZXIoc3JjVmFsdWUpLCBpc1R5cGVkID0gIWlzQXJyICYmICFpc0J1ZmYgJiYgaXNUeXBlZEFycmF5KHNyY1ZhbHVlKTtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gc3JjVmFsdWU7XG4gICAgICAgICAgICBpZiAoaXNBcnIgfHwgaXNCdWZmIHx8IGlzVHlwZWQpIHtcbiAgICAgICAgICAgICAgaWYgKGlzQXJyYXkob2JqVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBvYmpWYWx1ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5TGlrZU9iamVjdChvYmpWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IGNvcHlBcnJheShvYmpWYWx1ZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCdWZmKSB7XG4gICAgICAgICAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IGNsb25lQnVmZmVyKHNyY1ZhbHVlLCB0cnVlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1R5cGVkKSB7XG4gICAgICAgICAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IGNsb25lVHlwZWRBcnJheShzcmNWYWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBbXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0KHNyY1ZhbHVlKSB8fCBpc0FyZ3VtZW50cyhzcmNWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgbmV3VmFsdWUgPSBvYmpWYWx1ZTtcbiAgICAgICAgICAgICAgaWYgKGlzQXJndW1lbnRzKG9ialZhbHVlKSkge1xuICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdG9QbGFpbk9iamVjdChvYmpWYWx1ZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzT2JqZWN0KG9ialZhbHVlKSB8fCBpc0Z1bmN0aW9uKG9ialZhbHVlKSkge1xuICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gaW5pdENsb25lT2JqZWN0KHNyY1ZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzQ29tbW9uKSB7XG4gICAgICAgICAgICBzdGFjay5zZXQoc3JjVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIG1lcmdlRnVuYyhuZXdWYWx1ZSwgc3JjVmFsdWUsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgICAgICAgICBzdGFja1tcImRlbGV0ZVwiXShzcmNWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlTnRoKGFycmF5LCBuKSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuICs9IG4gPCAwID8gbGVuZ3RoIDogMDtcbiAgICAgICAgICByZXR1cm4gaXNJbmRleChuLCBsZW5ndGgpID8gYXJyYXlbbl0gOiB1bmRlZmluZWQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VPcmRlckJ5KGNvbGxlY3Rpb24sIGl0ZXJhdGVlcywgb3JkZXJzKSB7XG4gICAgICAgICAgaWYgKGl0ZXJhdGVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGl0ZXJhdGVlcyA9IGFycmF5TWFwKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgICAgIGlmIChpc0FycmF5KGl0ZXJhdGVlMikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBiYXNlR2V0KHZhbHVlLCBpdGVyYXRlZTIubGVuZ3RoID09PSAxID8gaXRlcmF0ZWUyWzBdIDogaXRlcmF0ZWUyKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBpdGVyYXRlZTI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXRlcmF0ZWVzID0gW2lkZW50aXR5XTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTE7XG4gICAgICAgICAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBiYXNlVW5hcnkoZ2V0SXRlcmF0ZWUoKSkpO1xuICAgICAgICAgIHZhciByZXN1bHQyID0gYmFzZU1hcChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uMikge1xuICAgICAgICAgICAgdmFyIGNyaXRlcmlhID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBmdW5jdGlvbihpdGVyYXRlZTIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdGVlMih2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB7IFwiY3JpdGVyaWFcIjogY3JpdGVyaWEsIFwiaW5kZXhcIjogKytpbmRleCwgXCJ2YWx1ZVwiOiB2YWx1ZSB9O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBiYXNlU29ydEJ5KHJlc3VsdDIsIGZ1bmN0aW9uKG9iamVjdCwgb3RoZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBjb21wYXJlTXVsdGlwbGUob2JqZWN0LCBvdGhlciwgb3JkZXJzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlUGljayhvYmplY3QsIHBhdGhzKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VQaWNrQnkob2JqZWN0LCBwYXRocywgZnVuY3Rpb24odmFsdWUsIHBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybiBoYXNJbihvYmplY3QsIHBhdGgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VQaWNrQnkob2JqZWN0LCBwYXRocywgcHJlZGljYXRlKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHBhdGhzLmxlbmd0aCwgcmVzdWx0MiA9IHt9O1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgcGF0aCA9IHBhdGhzW2luZGV4XSwgdmFsdWUgPSBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG4gICAgICAgICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBwYXRoKSkge1xuICAgICAgICAgICAgICBiYXNlU2V0KHJlc3VsdDIsIGNhc3RQYXRoKHBhdGgsIG9iamVjdCksIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVByb3BlcnR5RGVlcChwYXRoKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VHZXQob2JqZWN0LCBwYXRoKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VQdWxsQWxsKGFycmF5LCB2YWx1ZXMyLCBpdGVyYXRlZTIsIGNvbXBhcmF0b3IpIHtcbiAgICAgICAgICB2YXIgaW5kZXhPZjIgPSBjb21wYXJhdG9yID8gYmFzZUluZGV4T2ZXaXRoIDogYmFzZUluZGV4T2YsIGluZGV4ID0gLTEsIGxlbmd0aCA9IHZhbHVlczIubGVuZ3RoLCBzZWVuID0gYXJyYXk7XG4gICAgICAgICAgaWYgKGFycmF5ID09PSB2YWx1ZXMyKSB7XG4gICAgICAgICAgICB2YWx1ZXMyID0gY29weUFycmF5KHZhbHVlczIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgICBzZWVuID0gYXJyYXlNYXAoYXJyYXksIGJhc2VVbmFyeShpdGVyYXRlZTIpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBmcm9tSW5kZXggPSAwLCB2YWx1ZSA9IHZhbHVlczJbaW5kZXhdLCBjb21wdXRlZCA9IGl0ZXJhdGVlMiA/IGl0ZXJhdGVlMih2YWx1ZSkgOiB2YWx1ZTtcbiAgICAgICAgICAgIHdoaWxlICgoZnJvbUluZGV4ID0gaW5kZXhPZjIoc2VlbiwgY29tcHV0ZWQsIGZyb21JbmRleCwgY29tcGFyYXRvcikpID4gLTEpIHtcbiAgICAgICAgICAgICAgaWYgKHNlZW4gIT09IGFycmF5KSB7XG4gICAgICAgICAgICAgICAgc3BsaWNlLmNhbGwoc2VlbiwgZnJvbUluZGV4LCAxKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzcGxpY2UuY2FsbChhcnJheSwgZnJvbUluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VQdWxsQXQoYXJyYXksIGluZGV4ZXMpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPyBpbmRleGVzLmxlbmd0aCA6IDAsIGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG4gICAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSBpbmRleGVzW2xlbmd0aF07XG4gICAgICAgICAgICBpZiAobGVuZ3RoID09IGxhc3RJbmRleCB8fCBpbmRleCAhPT0gcHJldmlvdXMpIHtcbiAgICAgICAgICAgICAgdmFyIHByZXZpb3VzID0gaW5kZXg7XG4gICAgICAgICAgICAgIGlmIChpc0luZGV4KGluZGV4KSkge1xuICAgICAgICAgICAgICAgIHNwbGljZS5jYWxsKGFycmF5LCBpbmRleCwgMSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYmFzZVVuc2V0KGFycmF5LCBpbmRleCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VSYW5kb20obG93ZXIsIHVwcGVyKSB7XG4gICAgICAgICAgcmV0dXJuIGxvd2VyICsgbmF0aXZlRmxvb3IobmF0aXZlUmFuZG9tKCkgKiAodXBwZXIgLSBsb3dlciArIDEpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlUmFuZ2Uoc3RhcnQsIGVuZCwgc3RlcCwgZnJvbVJpZ2h0KSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IG5hdGl2ZU1heChuYXRpdmVDZWlsKChlbmQgLSBzdGFydCkgLyAoc3RlcCB8fCAxKSksIDApLCByZXN1bHQyID0gQXJyYXkyKGxlbmd0aCk7XG4gICAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgICByZXN1bHQyW2Zyb21SaWdodCA/IGxlbmd0aCA6ICsraW5kZXhdID0gc3RhcnQ7XG4gICAgICAgICAgICBzdGFydCArPSBzdGVwO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlUmVwZWF0KHN0cmluZywgbikge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gXCJcIjtcbiAgICAgICAgICBpZiAoIXN0cmluZyB8fCBuIDwgMSB8fCBuID4gTUFYX1NBRkVfSU5URUdFUikge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgIGlmIChuICUgMikge1xuICAgICAgICAgICAgICByZXN1bHQyICs9IHN0cmluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG4gPSBuYXRpdmVGbG9vcihuIC8gMik7XG4gICAgICAgICAgICBpZiAobikge1xuICAgICAgICAgICAgICBzdHJpbmcgKz0gc3RyaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gd2hpbGUgKG4pO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VSZXN0KGZ1bmMsIHN0YXJ0KSB7XG4gICAgICAgICAgcmV0dXJuIHNldFRvU3RyaW5nKG92ZXJSZXN0KGZ1bmMsIHN0YXJ0LCBpZGVudGl0eSksIGZ1bmMgKyBcIlwiKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlU2FtcGxlKGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXlTYW1wbGUodmFsdWVzKGNvbGxlY3Rpb24pKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlU2FtcGxlU2l6ZShjb2xsZWN0aW9uLCBuKSB7XG4gICAgICAgICAgdmFyIGFycmF5ID0gdmFsdWVzKGNvbGxlY3Rpb24pO1xuICAgICAgICAgIHJldHVybiBzaHVmZmxlU2VsZihhcnJheSwgYmFzZUNsYW1wKG4sIDAsIGFycmF5Lmxlbmd0aCkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VTZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSwgY3VzdG9taXplcikge1xuICAgICAgICAgIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHBhdGgubGVuZ3RoLCBsYXN0SW5kZXggPSBsZW5ndGggLSAxLCBuZXN0ZWQgPSBvYmplY3Q7XG4gICAgICAgICAgd2hpbGUgKG5lc3RlZCAhPSBudWxsICYmICsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSB0b0tleShwYXRoW2luZGV4XSksIG5ld1ZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSBcIl9fcHJvdG9fX1wiIHx8IGtleSA9PT0gXCJjb25zdHJ1Y3RvclwiIHx8IGtleSA9PT0gXCJwcm90b3R5cGVcIikge1xuICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGluZGV4ICE9IGxhc3RJbmRleCkge1xuICAgICAgICAgICAgICB2YXIgb2JqVmFsdWUgPSBuZXN0ZWRba2V5XTtcbiAgICAgICAgICAgICAgbmV3VmFsdWUgPSBjdXN0b21pemVyID8gY3VzdG9taXplcihvYmpWYWx1ZSwga2V5LCBuZXN0ZWQpIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBpc09iamVjdChvYmpWYWx1ZSkgPyBvYmpWYWx1ZSA6IGlzSW5kZXgocGF0aFtpbmRleCArIDFdKSA/IFtdIDoge307XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFzc2lnblZhbHVlKG5lc3RlZCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICBuZXN0ZWQgPSBuZXN0ZWRba2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYmFzZVNldERhdGEgPSAhbWV0YU1hcCA/IGlkZW50aXR5IDogZnVuY3Rpb24oZnVuYywgZGF0YSkge1xuICAgICAgICAgIG1ldGFNYXAuc2V0KGZ1bmMsIGRhdGEpO1xuICAgICAgICAgIHJldHVybiBmdW5jO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgYmFzZVNldFRvU3RyaW5nID0gIWRlZmluZVByb3BlcnR5ID8gaWRlbnRpdHkgOiBmdW5jdGlvbihmdW5jLCBzdHJpbmcpIHtcbiAgICAgICAgICByZXR1cm4gZGVmaW5lUHJvcGVydHkoZnVuYywgXCJ0b1N0cmluZ1wiLCB7XG4gICAgICAgICAgICBcImNvbmZpZ3VyYWJsZVwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtZXJhYmxlXCI6IGZhbHNlLFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiBjb25zdGFudChzdHJpbmcpLFxuICAgICAgICAgICAgXCJ3cml0YWJsZVwiOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VTaHVmZmxlKGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm4gc2h1ZmZsZVNlbGYodmFsdWVzKGNvbGxlY3Rpb24pKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIGlmIChzdGFydCA8IDApIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gLXN0YXJ0ID4gbGVuZ3RoID8gMCA6IGxlbmd0aCArIHN0YXJ0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbmQgPSBlbmQgPiBsZW5ndGggPyBsZW5ndGggOiBlbmQ7XG4gICAgICAgICAgaWYgKGVuZCA8IDApIHtcbiAgICAgICAgICAgIGVuZCArPSBsZW5ndGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxlbmd0aCA9IHN0YXJ0ID4gZW5kID8gMCA6IGVuZCAtIHN0YXJ0ID4+PiAwO1xuICAgICAgICAgIHN0YXJ0ID4+Pj0gMDtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IEFycmF5MihsZW5ndGgpO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQyW2luZGV4XSA9IGFycmF5W2luZGV4ICsgc3RhcnRdO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlU29tZShjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MjtcbiAgICAgICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24yKSB7XG4gICAgICAgICAgICByZXN1bHQyID0gcHJlZGljYXRlKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbjIpO1xuICAgICAgICAgICAgcmV0dXJuICFyZXN1bHQyO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiAhIXJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSwgcmV0SGlnaGVzdCkge1xuICAgICAgICAgIHZhciBsb3cgPSAwLCBoaWdoID0gYXJyYXkgPT0gbnVsbCA/IGxvdyA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09IFwibnVtYmVyXCIgJiYgdmFsdWUgPT09IHZhbHVlICYmIGhpZ2ggPD0gSEFMRl9NQVhfQVJSQVlfTEVOR1RIKSB7XG4gICAgICAgICAgICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgICAgICAgICAgICB2YXIgbWlkID0gbG93ICsgaGlnaCA+Pj4gMSwgY29tcHV0ZWQgPSBhcnJheVttaWRdO1xuICAgICAgICAgICAgICBpZiAoY29tcHV0ZWQgIT09IG51bGwgJiYgIWlzU3ltYm9sKGNvbXB1dGVkKSAmJiAocmV0SGlnaGVzdCA/IGNvbXB1dGVkIDw9IHZhbHVlIDogY29tcHV0ZWQgPCB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBsb3cgPSBtaWQgKyAxO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGhpZ2ggPSBtaWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBoaWdoO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYmFzZVNvcnRlZEluZGV4QnkoYXJyYXksIHZhbHVlLCBpZGVudGl0eSwgcmV0SGlnaGVzdCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVNvcnRlZEluZGV4QnkoYXJyYXksIHZhbHVlLCBpdGVyYXRlZTIsIHJldEhpZ2hlc3QpIHtcbiAgICAgICAgICB2YXIgbG93ID0gMCwgaGlnaCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIGlmIChoaWdoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFsdWUgPSBpdGVyYXRlZTIodmFsdWUpO1xuICAgICAgICAgIHZhciB2YWxJc05hTiA9IHZhbHVlICE9PSB2YWx1ZSwgdmFsSXNOdWxsID0gdmFsdWUgPT09IG51bGwsIHZhbElzU3ltYm9sID0gaXNTeW1ib2wodmFsdWUpLCB2YWxJc1VuZGVmaW5lZCA9IHZhbHVlID09PSB1bmRlZmluZWQyO1xuICAgICAgICAgIHdoaWxlIChsb3cgPCBoaWdoKSB7XG4gICAgICAgICAgICB2YXIgbWlkID0gbmF0aXZlRmxvb3IoKGxvdyArIGhpZ2gpIC8gMiksIGNvbXB1dGVkID0gaXRlcmF0ZWUyKGFycmF5W21pZF0pLCBvdGhJc0RlZmluZWQgPSBjb21wdXRlZCAhPT0gdW5kZWZpbmVkMiwgb3RoSXNOdWxsID0gY29tcHV0ZWQgPT09IG51bGwsIG90aElzUmVmbGV4aXZlID0gY29tcHV0ZWQgPT09IGNvbXB1dGVkLCBvdGhJc1N5bWJvbCA9IGlzU3ltYm9sKGNvbXB1dGVkKTtcbiAgICAgICAgICAgIGlmICh2YWxJc05hTikge1xuICAgICAgICAgICAgICB2YXIgc2V0TG93ID0gcmV0SGlnaGVzdCB8fCBvdGhJc1JlZmxleGl2ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsSXNVbmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgc2V0TG93ID0gb3RoSXNSZWZsZXhpdmUgJiYgKHJldEhpZ2hlc3QgfHwgb3RoSXNEZWZpbmVkKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsSXNOdWxsKSB7XG4gICAgICAgICAgICAgIHNldExvdyA9IG90aElzUmVmbGV4aXZlICYmIG90aElzRGVmaW5lZCAmJiAocmV0SGlnaGVzdCB8fCAhb3RoSXNOdWxsKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsSXNTeW1ib2wpIHtcbiAgICAgICAgICAgICAgc2V0TG93ID0gb3RoSXNSZWZsZXhpdmUgJiYgb3RoSXNEZWZpbmVkICYmICFvdGhJc051bGwgJiYgKHJldEhpZ2hlc3QgfHwgIW90aElzU3ltYm9sKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAob3RoSXNOdWxsIHx8IG90aElzU3ltYm9sKSB7XG4gICAgICAgICAgICAgIHNldExvdyA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc2V0TG93ID0gcmV0SGlnaGVzdCA/IGNvbXB1dGVkIDw9IHZhbHVlIDogY29tcHV0ZWQgPCB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZXRMb3cpIHtcbiAgICAgICAgICAgICAgbG93ID0gbWlkICsgMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGhpZ2ggPSBtaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuYXRpdmVNaW4oaGlnaCwgTUFYX0FSUkFZX0lOREVYKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlU29ydGVkVW5pcShhcnJheSwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCwgcmVzSW5kZXggPSAwLCByZXN1bHQyID0gW107XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSwgY29tcHV0ZWQgPSBpdGVyYXRlZTIgPyBpdGVyYXRlZTIodmFsdWUpIDogdmFsdWU7XG4gICAgICAgICAgICBpZiAoIWluZGV4IHx8ICFlcShjb21wdXRlZCwgc2VlbikpIHtcbiAgICAgICAgICAgICAgdmFyIHNlZW4gPSBjb21wdXRlZDtcbiAgICAgICAgICAgICAgcmVzdWx0MltyZXNJbmRleCsrXSA9IHZhbHVlID09PSAwID8gMCA6IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlVG9OdW1iZXIodmFsdWUpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5BTjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuICt2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlVG9TdHJpbmcodmFsdWUpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyYXlNYXAodmFsdWUsIGJhc2VUb1N0cmluZykgKyBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3ltYm9sVG9TdHJpbmcgPyBzeW1ib2xUb1N0cmluZy5jYWxsKHZhbHVlKSA6IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciByZXN1bHQyID0gdmFsdWUgKyBcIlwiO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyID09IFwiMFwiICYmIDEgLyB2YWx1ZSA9PSAtSU5GSU5JVFkgPyBcIi0wXCIgOiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VVbmlxKGFycmF5LCBpdGVyYXRlZTIsIGNvbXBhcmF0b3IpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgaW5jbHVkZXMyID0gYXJyYXlJbmNsdWRlcywgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLCBpc0NvbW1vbiA9IHRydWUsIHJlc3VsdDIgPSBbXSwgc2VlbiA9IHJlc3VsdDI7XG4gICAgICAgICAgaWYgKGNvbXBhcmF0b3IpIHtcbiAgICAgICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgICAgICBpbmNsdWRlczIgPSBhcnJheUluY2x1ZGVzV2l0aDtcbiAgICAgICAgICB9IGVsc2UgaWYgKGxlbmd0aCA+PSBMQVJHRV9BUlJBWV9TSVpFKSB7XG4gICAgICAgICAgICB2YXIgc2V0MiA9IGl0ZXJhdGVlMiA/IG51bGwgOiBjcmVhdGVTZXQoYXJyYXkpO1xuICAgICAgICAgICAgaWYgKHNldDIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHNldFRvQXJyYXkoc2V0Mik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICAgICAgaW5jbHVkZXMyID0gY2FjaGVIYXM7XG4gICAgICAgICAgICBzZWVuID0gbmV3IFNldENhY2hlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlZW4gPSBpdGVyYXRlZTIgPyBbXSA6IHJlc3VsdDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dGVyOlxuICAgICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLCBjb21wdXRlZCA9IGl0ZXJhdGVlMiA/IGl0ZXJhdGVlMih2YWx1ZSkgOiB2YWx1ZTtcbiAgICAgICAgICAgICAgdmFsdWUgPSBjb21wYXJhdG9yIHx8IHZhbHVlICE9PSAwID8gdmFsdWUgOiAwO1xuICAgICAgICAgICAgICBpZiAoaXNDb21tb24gJiYgY29tcHV0ZWQgPT09IGNvbXB1dGVkKSB7XG4gICAgICAgICAgICAgICAgdmFyIHNlZW5JbmRleCA9IHNlZW4ubGVuZ3RoO1xuICAgICAgICAgICAgICAgIHdoaWxlIChzZWVuSW5kZXgtLSkge1xuICAgICAgICAgICAgICAgICAgaWYgKHNlZW5bc2VlbkluZGV4XSA9PT0gY29tcHV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpdGVyYXRlZTIpIHtcbiAgICAgICAgICAgICAgICAgIHNlZW4ucHVzaChjb21wdXRlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc3VsdDIucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWluY2x1ZGVzMihzZWVuLCBjb21wdXRlZCwgY29tcGFyYXRvcikpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2VlbiAhPT0gcmVzdWx0Mikge1xuICAgICAgICAgICAgICAgICAgc2Vlbi5wdXNoKGNvbXB1dGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzdWx0Mi5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VVbnNldChvYmplY3QsIHBhdGgpIHtcbiAgICAgICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcbiAgICAgICAgICBvYmplY3QgPSBwYXJlbnQob2JqZWN0LCBwYXRoKTtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgfHwgZGVsZXRlIG9iamVjdFt0b0tleShsYXN0KHBhdGgpKV07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVVwZGF0ZShvYmplY3QsIHBhdGgsIHVwZGF0ZXIsIGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZVNldChvYmplY3QsIHBhdGgsIHVwZGF0ZXIoYmFzZUdldChvYmplY3QsIHBhdGgpKSwgY3VzdG9taXplcik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVdoaWxlKGFycmF5LCBwcmVkaWNhdGUsIGlzRHJvcCwgZnJvbVJpZ2h0KSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCwgaW5kZXggPSBmcm9tUmlnaHQgPyBsZW5ndGggOiAtMTtcbiAgICAgICAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSAmJiBwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpc0Ryb3AgPyBiYXNlU2xpY2UoYXJyYXksIGZyb21SaWdodCA/IDAgOiBpbmRleCwgZnJvbVJpZ2h0ID8gaW5kZXggKyAxIDogbGVuZ3RoKSA6IGJhc2VTbGljZShhcnJheSwgZnJvbVJpZ2h0ID8gaW5kZXggKyAxIDogMCwgZnJvbVJpZ2h0ID8gbGVuZ3RoIDogaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VXcmFwcGVyVmFsdWUodmFsdWUsIGFjdGlvbnMpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IHZhbHVlO1xuICAgICAgICAgIGlmIChyZXN1bHQyIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpIHtcbiAgICAgICAgICAgIHJlc3VsdDIgPSByZXN1bHQyLnZhbHVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhcnJheVJlZHVjZShhY3Rpb25zLCBmdW5jdGlvbihyZXN1bHQzLCBhY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb24uZnVuYy5hcHBseShhY3Rpb24udGhpc0FyZywgYXJyYXlQdXNoKFtyZXN1bHQzXSwgYWN0aW9uLmFyZ3MpKTtcbiAgICAgICAgICB9LCByZXN1bHQyKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlWG9yKGFycmF5cywgaXRlcmF0ZWUyLCBjb21wYXJhdG9yKSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5cy5sZW5ndGg7XG4gICAgICAgICAgaWYgKGxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlVW5pcShhcnJheXNbMF0pIDogW107XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCByZXN1bHQyID0gQXJyYXkyKGxlbmd0aCk7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBhcnJheSA9IGFycmF5c1tpbmRleF0sIG90aEluZGV4ID0gLTE7XG4gICAgICAgICAgICB3aGlsZSAoKytvdGhJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICBpZiAob3RoSW5kZXggIT0gaW5kZXgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQyW2luZGV4XSA9IGJhc2VEaWZmZXJlbmNlKHJlc3VsdDJbaW5kZXhdIHx8IGFycmF5LCBhcnJheXNbb3RoSW5kZXhdLCBpdGVyYXRlZTIsIGNvbXBhcmF0b3IpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihyZXN1bHQyLCAxKSwgaXRlcmF0ZWUyLCBjb21wYXJhdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlWmlwT2JqZWN0KHByb3BzLCB2YWx1ZXMyLCBhc3NpZ25GdW5jKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHByb3BzLmxlbmd0aCwgdmFsc0xlbmd0aCA9IHZhbHVlczIubGVuZ3RoLCByZXN1bHQyID0ge307XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGluZGV4IDwgdmFsc0xlbmd0aCA/IHZhbHVlczJbaW5kZXhdIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICAgIGFzc2lnbkZ1bmMocmVzdWx0MiwgcHJvcHNbaW5kZXhdLCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNhc3RBcnJheUxpa2VPYmplY3QodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaXNBcnJheUxpa2VPYmplY3QodmFsdWUpID8gdmFsdWUgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjYXN0RnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09IFwiZnVuY3Rpb25cIiA/IHZhbHVlIDogaWRlbnRpdHk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2FzdFBhdGgodmFsdWUsIG9iamVjdCkge1xuICAgICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gaXNLZXkodmFsdWUsIG9iamVjdCkgPyBbdmFsdWVdIDogc3RyaW5nVG9QYXRoKHRvU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNhc3RSZXN0ID0gYmFzZVJlc3Q7XG4gICAgICAgIGZ1bmN0aW9uIGNhc3RTbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgZW5kID0gZW5kID09PSB1bmRlZmluZWQyID8gbGVuZ3RoIDogZW5kO1xuICAgICAgICAgIHJldHVybiAhc3RhcnQgJiYgZW5kID49IGxlbmd0aCA/IGFycmF5IDogYmFzZVNsaWNlKGFycmF5LCBzdGFydCwgZW5kKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2xlYXJUaW1lb3V0ID0gY3R4Q2xlYXJUaW1lb3V0IHx8IGZ1bmN0aW9uKGlkKSB7XG4gICAgICAgICAgcmV0dXJuIHJvb3QuY2xlYXJUaW1lb3V0KGlkKTtcbiAgICAgICAgfTtcbiAgICAgICAgZnVuY3Rpb24gY2xvbmVCdWZmZXIoYnVmZmVyLCBpc0RlZXApIHtcbiAgICAgICAgICBpZiAoaXNEZWVwKSB7XG4gICAgICAgICAgICByZXR1cm4gYnVmZmVyLnNsaWNlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBsZW5ndGggPSBidWZmZXIubGVuZ3RoLCByZXN1bHQyID0gYWxsb2NVbnNhZmUgPyBhbGxvY1Vuc2FmZShsZW5ndGgpIDogbmV3IGJ1ZmZlci5jb25zdHJ1Y3RvcihsZW5ndGgpO1xuICAgICAgICAgIGJ1ZmZlci5jb3B5KHJlc3VsdDIpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNsb25lQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IG5ldyBhcnJheUJ1ZmZlci5jb25zdHJ1Y3RvcihhcnJheUJ1ZmZlci5ieXRlTGVuZ3RoKTtcbiAgICAgICAgICBuZXcgVWludDhBcnJheTIocmVzdWx0Mikuc2V0KG5ldyBVaW50OEFycmF5MihhcnJheUJ1ZmZlcikpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNsb25lRGF0YVZpZXcoZGF0YVZpZXcsIGlzRGVlcCkge1xuICAgICAgICAgIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKGRhdGFWaWV3LmJ1ZmZlcikgOiBkYXRhVmlldy5idWZmZXI7XG4gICAgICAgICAgcmV0dXJuIG5ldyBkYXRhVmlldy5jb25zdHJ1Y3RvcihidWZmZXIsIGRhdGFWaWV3LmJ5dGVPZmZzZXQsIGRhdGFWaWV3LmJ5dGVMZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNsb25lUmVnRXhwKHJlZ2V4cCkge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gbmV3IHJlZ2V4cC5jb25zdHJ1Y3RvcihyZWdleHAuc291cmNlLCByZUZsYWdzLmV4ZWMocmVnZXhwKSk7XG4gICAgICAgICAgcmVzdWx0Mi5sYXN0SW5kZXggPSByZWdleHAubGFzdEluZGV4O1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNsb25lU3ltYm9sKHN5bWJvbCkge1xuICAgICAgICAgIHJldHVybiBzeW1ib2xWYWx1ZU9mID8gT2JqZWN0MihzeW1ib2xWYWx1ZU9mLmNhbGwoc3ltYm9sKSkgOiB7fTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjbG9uZVR5cGVkQXJyYXkodHlwZWRBcnJheSwgaXNEZWVwKSB7XG4gICAgICAgICAgdmFyIGJ1ZmZlciA9IGlzRGVlcCA/IGNsb25lQXJyYXlCdWZmZXIodHlwZWRBcnJheS5idWZmZXIpIDogdHlwZWRBcnJheS5idWZmZXI7XG4gICAgICAgICAgcmV0dXJuIG5ldyB0eXBlZEFycmF5LmNvbnN0cnVjdG9yKGJ1ZmZlciwgdHlwZWRBcnJheS5ieXRlT2Zmc2V0LCB0eXBlZEFycmF5Lmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY29tcGFyZUFzY2VuZGluZyh2YWx1ZSwgb3RoZXIpIHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IG90aGVyKSB7XG4gICAgICAgICAgICB2YXIgdmFsSXNEZWZpbmVkID0gdmFsdWUgIT09IHVuZGVmaW5lZDIsIHZhbElzTnVsbCA9IHZhbHVlID09PSBudWxsLCB2YWxJc1JlZmxleGl2ZSA9IHZhbHVlID09PSB2YWx1ZSwgdmFsSXNTeW1ib2wgPSBpc1N5bWJvbCh2YWx1ZSk7XG4gICAgICAgICAgICB2YXIgb3RoSXNEZWZpbmVkID0gb3RoZXIgIT09IHVuZGVmaW5lZDIsIG90aElzTnVsbCA9IG90aGVyID09PSBudWxsLCBvdGhJc1JlZmxleGl2ZSA9IG90aGVyID09PSBvdGhlciwgb3RoSXNTeW1ib2wgPSBpc1N5bWJvbChvdGhlcik7XG4gICAgICAgICAgICBpZiAoIW90aElzTnVsbCAmJiAhb3RoSXNTeW1ib2wgJiYgIXZhbElzU3ltYm9sICYmIHZhbHVlID4gb3RoZXIgfHwgdmFsSXNTeW1ib2wgJiYgb3RoSXNEZWZpbmVkICYmIG90aElzUmVmbGV4aXZlICYmICFvdGhJc051bGwgJiYgIW90aElzU3ltYm9sIHx8IHZhbElzTnVsbCAmJiBvdGhJc0RlZmluZWQgJiYgb3RoSXNSZWZsZXhpdmUgfHwgIXZhbElzRGVmaW5lZCAmJiBvdGhJc1JlZmxleGl2ZSB8fCAhdmFsSXNSZWZsZXhpdmUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXZhbElzTnVsbCAmJiAhdmFsSXNTeW1ib2wgJiYgIW90aElzU3ltYm9sICYmIHZhbHVlIDwgb3RoZXIgfHwgb3RoSXNTeW1ib2wgJiYgdmFsSXNEZWZpbmVkICYmIHZhbElzUmVmbGV4aXZlICYmICF2YWxJc051bGwgJiYgIXZhbElzU3ltYm9sIHx8IG90aElzTnVsbCAmJiB2YWxJc0RlZmluZWQgJiYgdmFsSXNSZWZsZXhpdmUgfHwgIW90aElzRGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSB8fCAhb3RoSXNSZWZsZXhpdmUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjb21wYXJlTXVsdGlwbGUob2JqZWN0LCBvdGhlciwgb3JkZXJzKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIG9iakNyaXRlcmlhID0gb2JqZWN0LmNyaXRlcmlhLCBvdGhDcml0ZXJpYSA9IG90aGVyLmNyaXRlcmlhLCBsZW5ndGggPSBvYmpDcml0ZXJpYS5sZW5ndGgsIG9yZGVyc0xlbmd0aCA9IG9yZGVycy5sZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQyID0gY29tcGFyZUFzY2VuZGluZyhvYmpDcml0ZXJpYVtpbmRleF0sIG90aENyaXRlcmlhW2luZGV4XSk7XG4gICAgICAgICAgICBpZiAocmVzdWx0Mikge1xuICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gb3JkZXJzTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIG9yZGVyID0gb3JkZXJzW2luZGV4XTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDIgKiAob3JkZXIgPT0gXCJkZXNjXCIgPyAtMSA6IDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gb2JqZWN0LmluZGV4IC0gb3RoZXIuaW5kZXg7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY29tcG9zZUFyZ3MoYXJncywgcGFydGlhbHMsIGhvbGRlcnMsIGlzQ3VycmllZCkge1xuICAgICAgICAgIHZhciBhcmdzSW5kZXggPSAtMSwgYXJnc0xlbmd0aCA9IGFyZ3MubGVuZ3RoLCBob2xkZXJzTGVuZ3RoID0gaG9sZGVycy5sZW5ndGgsIGxlZnRJbmRleCA9IC0xLCBsZWZ0TGVuZ3RoID0gcGFydGlhbHMubGVuZ3RoLCByYW5nZUxlbmd0aCA9IG5hdGl2ZU1heChhcmdzTGVuZ3RoIC0gaG9sZGVyc0xlbmd0aCwgMCksIHJlc3VsdDIgPSBBcnJheTIobGVmdExlbmd0aCArIHJhbmdlTGVuZ3RoKSwgaXNVbmN1cnJpZWQgPSAhaXNDdXJyaWVkO1xuICAgICAgICAgIHdoaWxlICgrK2xlZnRJbmRleCA8IGxlZnRMZW5ndGgpIHtcbiAgICAgICAgICAgIHJlc3VsdDJbbGVmdEluZGV4XSA9IHBhcnRpYWxzW2xlZnRJbmRleF07XG4gICAgICAgICAgfVxuICAgICAgICAgIHdoaWxlICgrK2FyZ3NJbmRleCA8IGhvbGRlcnNMZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChpc1VuY3VycmllZCB8fCBhcmdzSW5kZXggPCBhcmdzTGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDJbaG9sZGVyc1thcmdzSW5kZXhdXSA9IGFyZ3NbYXJnc0luZGV4XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgd2hpbGUgKHJhbmdlTGVuZ3RoLS0pIHtcbiAgICAgICAgICAgIHJlc3VsdDJbbGVmdEluZGV4KytdID0gYXJnc1thcmdzSW5kZXgrK107XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNvbXBvc2VBcmdzUmlnaHQoYXJncywgcGFydGlhbHMsIGhvbGRlcnMsIGlzQ3VycmllZCkge1xuICAgICAgICAgIHZhciBhcmdzSW5kZXggPSAtMSwgYXJnc0xlbmd0aCA9IGFyZ3MubGVuZ3RoLCBob2xkZXJzSW5kZXggPSAtMSwgaG9sZGVyc0xlbmd0aCA9IGhvbGRlcnMubGVuZ3RoLCByaWdodEluZGV4ID0gLTEsIHJpZ2h0TGVuZ3RoID0gcGFydGlhbHMubGVuZ3RoLCByYW5nZUxlbmd0aCA9IG5hdGl2ZU1heChhcmdzTGVuZ3RoIC0gaG9sZGVyc0xlbmd0aCwgMCksIHJlc3VsdDIgPSBBcnJheTIocmFuZ2VMZW5ndGggKyByaWdodExlbmd0aCksIGlzVW5jdXJyaWVkID0gIWlzQ3VycmllZDtcbiAgICAgICAgICB3aGlsZSAoKythcmdzSW5kZXggPCByYW5nZUxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0MlthcmdzSW5kZXhdID0gYXJnc1thcmdzSW5kZXhdO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgb2Zmc2V0ID0gYXJnc0luZGV4O1xuICAgICAgICAgIHdoaWxlICgrK3JpZ2h0SW5kZXggPCByaWdodExlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0MltvZmZzZXQgKyByaWdodEluZGV4XSA9IHBhcnRpYWxzW3JpZ2h0SW5kZXhdO1xuICAgICAgICAgIH1cbiAgICAgICAgICB3aGlsZSAoKytob2xkZXJzSW5kZXggPCBob2xkZXJzTGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoaXNVbmN1cnJpZWQgfHwgYXJnc0luZGV4IDwgYXJnc0xlbmd0aCkge1xuICAgICAgICAgICAgICByZXN1bHQyW29mZnNldCArIGhvbGRlcnNbaG9sZGVyc0luZGV4XV0gPSBhcmdzW2FyZ3NJbmRleCsrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY29weUFycmF5KHNvdXJjZSwgYXJyYXkpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gc291cmNlLmxlbmd0aDtcbiAgICAgICAgICBhcnJheSB8fCAoYXJyYXkgPSBBcnJheTIobGVuZ3RoKSk7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGFycmF5W2luZGV4XSA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjb3B5T2JqZWN0KHNvdXJjZSwgcHJvcHMsIG9iamVjdCwgY3VzdG9taXplcikge1xuICAgICAgICAgIHZhciBpc05ldyA9ICFvYmplY3Q7XG4gICAgICAgICAgb2JqZWN0IHx8IChvYmplY3QgPSB7fSk7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcbiAgICAgICAgICAgIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKG9iamVjdFtrZXldLCBzb3VyY2Vba2V5XSwga2V5LCBvYmplY3QsIHNvdXJjZSkgOiB1bmRlZmluZWQyO1xuICAgICAgICAgICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICAgIG5ld1ZhbHVlID0gc291cmNlW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNOZXcpIHtcbiAgICAgICAgICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNvcHlTeW1ib2xzKHNvdXJjZSwgb2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIGNvcHlPYmplY3Qoc291cmNlLCBnZXRTeW1ib2xzKHNvdXJjZSksIG9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY29weVN5bWJvbHNJbihzb3VyY2UsIG9iamVjdCkge1xuICAgICAgICAgIHJldHVybiBjb3B5T2JqZWN0KHNvdXJjZSwgZ2V0U3ltYm9sc0luKHNvdXJjZSksIG9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlQWdncmVnYXRvcihzZXR0ZXIsIGluaXRpYWxpemVyKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlMikge1xuICAgICAgICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlBZ2dyZWdhdG9yIDogYmFzZUFnZ3JlZ2F0b3IsIGFjY3VtdWxhdG9yID0gaW5pdGlhbGl6ZXIgPyBpbml0aWFsaXplcigpIDoge307XG4gICAgICAgICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBzZXR0ZXIsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgMiksIGFjY3VtdWxhdG9yKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUFzc2lnbmVyKGFzc2lnbmVyKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICAgICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHNvdXJjZXMubGVuZ3RoLCBjdXN0b21pemVyID0gbGVuZ3RoID4gMSA/IHNvdXJjZXNbbGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQyLCBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICAgIGN1c3RvbWl6ZXIgPSBhc3NpZ25lci5sZW5ndGggPiAzICYmIHR5cGVvZiBjdXN0b21pemVyID09IFwiZnVuY3Rpb25cIiA/IChsZW5ndGgtLSwgY3VzdG9taXplcikgOiB1bmRlZmluZWQyO1xuICAgICAgICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgICAgICAgICBjdXN0b21pemVyID0gbGVuZ3RoIDwgMyA/IHVuZGVmaW5lZDIgOiBjdXN0b21pemVyO1xuICAgICAgICAgICAgICBsZW5ndGggPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb2JqZWN0ID0gT2JqZWN0MihvYmplY3QpO1xuICAgICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgdmFyIHNvdXJjZSA9IHNvdXJjZXNbaW5kZXhdO1xuICAgICAgICAgICAgICBpZiAoc291cmNlKSB7XG4gICAgICAgICAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGluZGV4LCBjdXN0b21pemVyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVCYXNlRWFjaChlYWNoRnVuYywgZnJvbVJpZ2h0KSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlMikge1xuICAgICAgICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNBcnJheUxpa2UoY29sbGVjdGlvbikpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGl0ZXJhdGVlMik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGgsIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTEsIGl0ZXJhYmxlID0gT2JqZWN0Mihjb2xsZWN0aW9uKTtcbiAgICAgICAgICAgIHdoaWxlIChmcm9tUmlnaHQgPyBpbmRleC0tIDogKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICBpZiAoaXRlcmF0ZWUyKGl0ZXJhYmxlW2luZGV4XSwgaW5kZXgsIGl0ZXJhYmxlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVCYXNlRm9yKGZyb21SaWdodCkge1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QsIGl0ZXJhdGVlMiwga2V5c0Z1bmMpIHtcbiAgICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBpdGVyYWJsZSA9IE9iamVjdDIob2JqZWN0KSwgcHJvcHMgPSBrZXlzRnVuYyhvYmplY3QpLCBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICAgICAgdmFyIGtleSA9IHByb3BzW2Zyb21SaWdodCA/IGxlbmd0aCA6ICsraW5kZXhdO1xuICAgICAgICAgICAgICBpZiAoaXRlcmF0ZWUyKGl0ZXJhYmxlW2tleV0sIGtleSwgaXRlcmFibGUpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlQmluZChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnKSB7XG4gICAgICAgICAgdmFyIGlzQmluZCA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfRkxBRywgQ3RvciA9IGNyZWF0ZUN0b3IoZnVuYyk7XG4gICAgICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgICAgIHZhciBmbiA9IHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlciA/IEN0b3IgOiBmdW5jO1xuICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KGlzQmluZCA/IHRoaXNBcmcgOiB0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVDYXNlRmlyc3QobWV0aG9kTmFtZSkge1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICAgICAgICB2YXIgc3RyU3ltYm9scyA9IGhhc1VuaWNvZGUoc3RyaW5nKSA/IHN0cmluZ1RvQXJyYXkoc3RyaW5nKSA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgICB2YXIgY2hyID0gc3RyU3ltYm9scyA/IHN0clN5bWJvbHNbMF0gOiBzdHJpbmcuY2hhckF0KDApO1xuICAgICAgICAgICAgdmFyIHRyYWlsaW5nID0gc3RyU3ltYm9scyA/IGNhc3RTbGljZShzdHJTeW1ib2xzLCAxKS5qb2luKFwiXCIpIDogc3RyaW5nLnNsaWNlKDEpO1xuICAgICAgICAgICAgcmV0dXJuIGNoclttZXRob2ROYW1lXSgpICsgdHJhaWxpbmc7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVDb21wb3VuZGVyKGNhbGxiYWNrKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIGFycmF5UmVkdWNlKHdvcmRzKGRlYnVycihzdHJpbmcpLnJlcGxhY2UocmVBcG9zLCBcIlwiKSksIGNhbGxiYWNrLCBcIlwiKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUN0b3IoQ3Rvcikge1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICAgICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDdG9yKCk7XG4gICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSk7XG4gICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSk7XG4gICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSk7XG4gICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSk7XG4gICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSwgYXJnc1s1XSk7XG4gICAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSwgYXJnc1s1XSwgYXJnc1s2XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdGhpc0JpbmRpbmcgPSBiYXNlQ3JlYXRlKEN0b3IucHJvdG90eXBlKSwgcmVzdWx0MiA9IEN0b3IuYXBwbHkodGhpc0JpbmRpbmcsIGFyZ3MpO1xuICAgICAgICAgICAgcmV0dXJuIGlzT2JqZWN0KHJlc3VsdDIpID8gcmVzdWx0MiA6IHRoaXNCaW5kaW5nO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlQ3VycnkoZnVuYywgYml0bWFzaywgYXJpdHkpIHtcbiAgICAgICAgICB2YXIgQ3RvciA9IGNyZWF0ZUN0b3IoZnVuYyk7XG4gICAgICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgICAgIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkyKGxlbmd0aCksIGluZGV4ID0gbGVuZ3RoLCBwbGFjZWhvbGRlciA9IGdldEhvbGRlcih3cmFwcGVyKTtcbiAgICAgICAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgICAgICAgIGFyZ3NbaW5kZXhdID0gYXJndW1lbnRzW2luZGV4XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBob2xkZXJzID0gbGVuZ3RoIDwgMyAmJiBhcmdzWzBdICE9PSBwbGFjZWhvbGRlciAmJiBhcmdzW2xlbmd0aCAtIDFdICE9PSBwbGFjZWhvbGRlciA/IFtdIDogcmVwbGFjZUhvbGRlcnMoYXJncywgcGxhY2Vob2xkZXIpO1xuICAgICAgICAgICAgbGVuZ3RoIC09IGhvbGRlcnMubGVuZ3RoO1xuICAgICAgICAgICAgaWYgKGxlbmd0aCA8IGFyaXR5KSB7XG4gICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZWN1cnJ5KFxuICAgICAgICAgICAgICAgIGZ1bmMsXG4gICAgICAgICAgICAgICAgYml0bWFzayxcbiAgICAgICAgICAgICAgICBjcmVhdGVIeWJyaWQsXG4gICAgICAgICAgICAgICAgd3JhcHBlci5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICB1bmRlZmluZWQyLFxuICAgICAgICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgICAgICAgaG9sZGVycyxcbiAgICAgICAgICAgICAgICB1bmRlZmluZWQyLFxuICAgICAgICAgICAgICAgIHVuZGVmaW5lZDIsXG4gICAgICAgICAgICAgICAgYXJpdHkgLSBsZW5ndGhcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBmbiA9IHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlciA/IEN0b3IgOiBmdW5jO1xuICAgICAgICAgICAgcmV0dXJuIGFwcGx5KGZuLCB0aGlzLCBhcmdzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlRmluZChmaW5kSW5kZXhGdW5jKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZnJvbUluZGV4KSB7XG4gICAgICAgICAgICB2YXIgaXRlcmFibGUgPSBPYmplY3QyKGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgaWYgKCFpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xuICAgICAgICAgICAgICB2YXIgaXRlcmF0ZWUyID0gZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKTtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbiA9IGtleXMoY29sbGVjdGlvbik7XG4gICAgICAgICAgICAgIHByZWRpY2F0ZSA9IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVyYXRlZTIoaXRlcmFibGVba2V5XSwga2V5LCBpdGVyYWJsZSk7XG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgaW5kZXggPSBmaW5kSW5kZXhGdW5jKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZnJvbUluZGV4KTtcbiAgICAgICAgICAgIHJldHVybiBpbmRleCA+IC0xID8gaXRlcmFibGVbaXRlcmF0ZWUyID8gY29sbGVjdGlvbltpbmRleF0gOiBpbmRleF0gOiB1bmRlZmluZWQyO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlRmxvdyhmcm9tUmlnaHQpIHtcbiAgICAgICAgICByZXR1cm4gZmxhdFJlc3QoZnVuY3Rpb24oZnVuY3MpIHtcbiAgICAgICAgICAgIHZhciBsZW5ndGggPSBmdW5jcy5sZW5ndGgsIGluZGV4ID0gbGVuZ3RoLCBwcmVyZXEgPSBMb2Rhc2hXcmFwcGVyLnByb3RvdHlwZS50aHJ1O1xuICAgICAgICAgICAgaWYgKGZyb21SaWdodCkge1xuICAgICAgICAgICAgICBmdW5jcy5yZXZlcnNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICAgICAgICB2YXIgZnVuYyA9IGZ1bmNzW2luZGV4XTtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IyKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHByZXJlcSAmJiAhd3JhcHBlciAmJiBnZXRGdW5jTmFtZShmdW5jKSA9PSBcIndyYXBwZXJcIikge1xuICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gbmV3IExvZGFzaFdyYXBwZXIoW10sIHRydWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleCA9IHdyYXBwZXIgPyBpbmRleCA6IGxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGZ1bmMgPSBmdW5jc1tpbmRleF07XG4gICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGdldEZ1bmNOYW1lKGZ1bmMpLCBkYXRhID0gZnVuY05hbWUgPT0gXCJ3cmFwcGVyXCIgPyBnZXREYXRhKGZ1bmMpIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICAgICAgaWYgKGRhdGEgJiYgaXNMYXppYWJsZShkYXRhWzBdKSAmJiBkYXRhWzFdID09IChXUkFQX0FSWV9GTEFHIHwgV1JBUF9DVVJSWV9GTEFHIHwgV1JBUF9QQVJUSUFMX0ZMQUcgfCBXUkFQX1JFQVJHX0ZMQUcpICYmICFkYXRhWzRdLmxlbmd0aCAmJiBkYXRhWzldID09IDEpIHtcbiAgICAgICAgICAgICAgICB3cmFwcGVyID0gd3JhcHBlcltnZXRGdW5jTmFtZShkYXRhWzBdKV0uYXBwbHkod3JhcHBlciwgZGF0YVszXSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlciA9IGZ1bmMubGVuZ3RoID09IDEgJiYgaXNMYXppYWJsZShmdW5jKSA/IHdyYXBwZXJbZnVuY05hbWVdKCkgOiB3cmFwcGVyLnRocnUoZnVuYyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsIHZhbHVlID0gYXJnc1swXTtcbiAgICAgICAgICAgICAgaWYgKHdyYXBwZXIgJiYgYXJncy5sZW5ndGggPT0gMSAmJiBpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVyLnBsYW50KHZhbHVlKS52YWx1ZSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZhciBpbmRleDIgPSAwLCByZXN1bHQyID0gbGVuZ3RoID8gZnVuY3NbaW5kZXgyXS5hcHBseSh0aGlzLCBhcmdzKSA6IHZhbHVlO1xuICAgICAgICAgICAgICB3aGlsZSAoKytpbmRleDIgPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQyID0gZnVuY3NbaW5kZXgyXS5jYWxsKHRoaXMsIHJlc3VsdDIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVIeWJyaWQoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCwgYXJnUG9zLCBhcnkyLCBhcml0eSkge1xuICAgICAgICAgIHZhciBpc0FyeSA9IGJpdG1hc2sgJiBXUkFQX0FSWV9GTEFHLCBpc0JpbmQgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcsIGlzQmluZEtleSA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfS0VZX0ZMQUcsIGlzQ3VycmllZCA9IGJpdG1hc2sgJiAoV1JBUF9DVVJSWV9GTEFHIHwgV1JBUF9DVVJSWV9SSUdIVF9GTEFHKSwgaXNGbGlwID0gYml0bWFzayAmIFdSQVBfRkxJUF9GTEFHLCBDdG9yID0gaXNCaW5kS2V5ID8gdW5kZWZpbmVkMiA6IGNyZWF0ZUN0b3IoZnVuYyk7XG4gICAgICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgICAgIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkyKGxlbmd0aCksIGluZGV4ID0gbGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgICAgICAgYXJnc1tpbmRleF0gPSBhcmd1bWVudHNbaW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzQ3VycmllZCkge1xuICAgICAgICAgICAgICB2YXIgcGxhY2Vob2xkZXIgPSBnZXRIb2xkZXIod3JhcHBlciksIGhvbGRlcnNDb3VudCA9IGNvdW50SG9sZGVycyhhcmdzLCBwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFydGlhbHMpIHtcbiAgICAgICAgICAgICAgYXJncyA9IGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzLCBpc0N1cnJpZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnRpYWxzUmlnaHQpIHtcbiAgICAgICAgICAgICAgYXJncyA9IGNvbXBvc2VBcmdzUmlnaHQoYXJncywgcGFydGlhbHNSaWdodCwgaG9sZGVyc1JpZ2h0LCBpc0N1cnJpZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGVuZ3RoIC09IGhvbGRlcnNDb3VudDtcbiAgICAgICAgICAgIGlmIChpc0N1cnJpZWQgJiYgbGVuZ3RoIDwgYXJpdHkpIHtcbiAgICAgICAgICAgICAgdmFyIG5ld0hvbGRlcnMgPSByZXBsYWNlSG9sZGVycyhhcmdzLCBwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZWN1cnJ5KFxuICAgICAgICAgICAgICAgIGZ1bmMsXG4gICAgICAgICAgICAgICAgYml0bWFzayxcbiAgICAgICAgICAgICAgICBjcmVhdGVIeWJyaWQsXG4gICAgICAgICAgICAgICAgd3JhcHBlci5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICB0aGlzQXJnLFxuICAgICAgICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgICAgICAgbmV3SG9sZGVycyxcbiAgICAgICAgICAgICAgICBhcmdQb3MsXG4gICAgICAgICAgICAgICAgYXJ5MixcbiAgICAgICAgICAgICAgICBhcml0eSAtIGxlbmd0aFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHRoaXNCaW5kaW5nID0gaXNCaW5kID8gdGhpc0FyZyA6IHRoaXMsIGZuID0gaXNCaW5kS2V5ID8gdGhpc0JpbmRpbmdbZnVuY10gOiBmdW5jO1xuICAgICAgICAgICAgbGVuZ3RoID0gYXJncy5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoYXJnUG9zKSB7XG4gICAgICAgICAgICAgIGFyZ3MgPSByZW9yZGVyKGFyZ3MsIGFyZ1Bvcyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzRmxpcCAmJiBsZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgIGFyZ3MucmV2ZXJzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzQXJ5ICYmIGFyeTIgPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgYXJncy5sZW5ndGggPSBhcnkyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikge1xuICAgICAgICAgICAgICBmbiA9IEN0b3IgfHwgY3JlYXRlQ3Rvcihmbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpc0JpbmRpbmcsIGFyZ3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVJbnZlcnRlcihzZXR0ZXIsIHRvSXRlcmF0ZWUpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0LCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlSW52ZXJ0ZXIob2JqZWN0LCBzZXR0ZXIsIHRvSXRlcmF0ZWUoaXRlcmF0ZWUyKSwge30pO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlTWF0aE9wZXJhdGlvbihvcGVyYXRvciwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBvdGhlcikge1xuICAgICAgICAgICAgdmFyIHJlc3VsdDI7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZDIgJiYgb3RoZXIgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgICByZXN1bHQyID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3RoZXIgIT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdDIgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSBcInN0cmluZ1wiIHx8IHR5cGVvZiBvdGhlciA9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBiYXNlVG9TdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgIG90aGVyID0gYmFzZVRvU3RyaW5nKG90aGVyKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGJhc2VUb051bWJlcih2YWx1ZSk7XG4gICAgICAgICAgICAgICAgb3RoZXIgPSBiYXNlVG9OdW1iZXIob3RoZXIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlc3VsdDIgPSBvcGVyYXRvcih2YWx1ZSwgb3RoZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVPdmVyKGFycmF5RnVuYykge1xuICAgICAgICAgIHJldHVybiBmbGF0UmVzdChmdW5jdGlvbihpdGVyYXRlZXMpIHtcbiAgICAgICAgICAgIGl0ZXJhdGVlcyA9IGFycmF5TWFwKGl0ZXJhdGVlcywgYmFzZVVuYXJ5KGdldEl0ZXJhdGVlKCkpKTtcbiAgICAgICAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgICAgICAgIHZhciB0aGlzQXJnID0gdGhpcztcbiAgICAgICAgICAgICAgcmV0dXJuIGFycmF5RnVuYyhpdGVyYXRlZXMsIGZ1bmN0aW9uKGl0ZXJhdGVlMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcHBseShpdGVyYXRlZTIsIHRoaXNBcmcsIGFyZ3MpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVBhZGRpbmcobGVuZ3RoLCBjaGFycykge1xuICAgICAgICAgIGNoYXJzID0gY2hhcnMgPT09IHVuZGVmaW5lZDIgPyBcIiBcIiA6IGJhc2VUb1N0cmluZyhjaGFycyk7XG4gICAgICAgICAgdmFyIGNoYXJzTGVuZ3RoID0gY2hhcnMubGVuZ3RoO1xuICAgICAgICAgIGlmIChjaGFyc0xlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgIHJldHVybiBjaGFyc0xlbmd0aCA/IGJhc2VSZXBlYXQoY2hhcnMsIGxlbmd0aCkgOiBjaGFycztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBiYXNlUmVwZWF0KGNoYXJzLCBuYXRpdmVDZWlsKGxlbmd0aCAvIHN0cmluZ1NpemUoY2hhcnMpKSk7XG4gICAgICAgICAgcmV0dXJuIGhhc1VuaWNvZGUoY2hhcnMpID8gY2FzdFNsaWNlKHN0cmluZ1RvQXJyYXkocmVzdWx0MiksIDAsIGxlbmd0aCkuam9pbihcIlwiKSA6IHJlc3VsdDIuc2xpY2UoMCwgbGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVQYXJ0aWFsKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzKSB7XG4gICAgICAgICAgdmFyIGlzQmluZCA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfRkxBRywgQ3RvciA9IGNyZWF0ZUN0b3IoZnVuYyk7XG4gICAgICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgICAgIHZhciBhcmdzSW5kZXggPSAtMSwgYXJnc0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsIGxlZnRJbmRleCA9IC0xLCBsZWZ0TGVuZ3RoID0gcGFydGlhbHMubGVuZ3RoLCBhcmdzID0gQXJyYXkyKGxlZnRMZW5ndGggKyBhcmdzTGVuZ3RoKSwgZm4gPSB0aGlzICYmIHRoaXMgIT09IHJvb3QgJiYgdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXIgPyBDdG9yIDogZnVuYztcbiAgICAgICAgICAgIHdoaWxlICgrK2xlZnRJbmRleCA8IGxlZnRMZW5ndGgpIHtcbiAgICAgICAgICAgICAgYXJnc1tsZWZ0SW5kZXhdID0gcGFydGlhbHNbbGVmdEluZGV4XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlIChhcmdzTGVuZ3RoLS0pIHtcbiAgICAgICAgICAgICAgYXJnc1tsZWZ0SW5kZXgrK10gPSBhcmd1bWVudHNbKythcmdzSW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFwcGx5KGZuLCBpc0JpbmQgPyB0aGlzQXJnIDogdGhpcywgYXJncyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVJhbmdlKGZyb21SaWdodCkge1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbihzdGFydCwgZW5kLCBzdGVwKSB7XG4gICAgICAgICAgICBpZiAoc3RlcCAmJiB0eXBlb2Ygc3RlcCAhPSBcIm51bWJlclwiICYmIGlzSXRlcmF0ZWVDYWxsKHN0YXJ0LCBlbmQsIHN0ZXApKSB7XG4gICAgICAgICAgICAgIGVuZCA9IHN0ZXAgPSB1bmRlZmluZWQyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhcnQgPSB0b0Zpbml0ZShzdGFydCk7XG4gICAgICAgICAgICBpZiAoZW5kID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICAgIGVuZCA9IHN0YXJ0O1xuICAgICAgICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbmQgPSB0b0Zpbml0ZShlbmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RlcCA9IHN0ZXAgPT09IHVuZGVmaW5lZDIgPyBzdGFydCA8IGVuZCA/IDEgOiAtMSA6IHRvRmluaXRlKHN0ZXApO1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VSYW5nZShzdGFydCwgZW5kLCBzdGVwLCBmcm9tUmlnaHQpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihvcGVyYXRvcikge1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSwgb3RoZXIpIHtcbiAgICAgICAgICAgIGlmICghKHR5cGVvZiB2YWx1ZSA9PSBcInN0cmluZ1wiICYmIHR5cGVvZiBvdGhlciA9PSBcInN0cmluZ1wiKSkge1xuICAgICAgICAgICAgICB2YWx1ZSA9IHRvTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgICAgICAgb3RoZXIgPSB0b051bWJlcihvdGhlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3BlcmF0b3IodmFsdWUsIG90aGVyKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVJlY3VycnkoZnVuYywgYml0bWFzaywgd3JhcEZ1bmMsIHBsYWNlaG9sZGVyLCB0aGlzQXJnLCBwYXJ0aWFscywgaG9sZGVycywgYXJnUG9zLCBhcnkyLCBhcml0eSkge1xuICAgICAgICAgIHZhciBpc0N1cnJ5ID0gYml0bWFzayAmIFdSQVBfQ1VSUllfRkxBRywgbmV3SG9sZGVycyA9IGlzQ3VycnkgPyBob2xkZXJzIDogdW5kZWZpbmVkMiwgbmV3SG9sZGVyc1JpZ2h0ID0gaXNDdXJyeSA/IHVuZGVmaW5lZDIgOiBob2xkZXJzLCBuZXdQYXJ0aWFscyA9IGlzQ3VycnkgPyBwYXJ0aWFscyA6IHVuZGVmaW5lZDIsIG5ld1BhcnRpYWxzUmlnaHQgPSBpc0N1cnJ5ID8gdW5kZWZpbmVkMiA6IHBhcnRpYWxzO1xuICAgICAgICAgIGJpdG1hc2sgfD0gaXNDdXJyeSA/IFdSQVBfUEFSVElBTF9GTEFHIDogV1JBUF9QQVJUSUFMX1JJR0hUX0ZMQUc7XG4gICAgICAgICAgYml0bWFzayAmPSB+KGlzQ3VycnkgPyBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRyA6IFdSQVBfUEFSVElBTF9GTEFHKTtcbiAgICAgICAgICBpZiAoIShiaXRtYXNrICYgV1JBUF9DVVJSWV9CT1VORF9GTEFHKSkge1xuICAgICAgICAgICAgYml0bWFzayAmPSB+KFdSQVBfQklORF9GTEFHIHwgV1JBUF9CSU5EX0tFWV9GTEFHKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIG5ld0RhdGEgPSBbXG4gICAgICAgICAgICBmdW5jLFxuICAgICAgICAgICAgYml0bWFzayxcbiAgICAgICAgICAgIHRoaXNBcmcsXG4gICAgICAgICAgICBuZXdQYXJ0aWFscyxcbiAgICAgICAgICAgIG5ld0hvbGRlcnMsXG4gICAgICAgICAgICBuZXdQYXJ0aWFsc1JpZ2h0LFxuICAgICAgICAgICAgbmV3SG9sZGVyc1JpZ2h0LFxuICAgICAgICAgICAgYXJnUG9zLFxuICAgICAgICAgICAgYXJ5MixcbiAgICAgICAgICAgIGFyaXR5XG4gICAgICAgICAgXTtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IHdyYXBGdW5jLmFwcGx5KHVuZGVmaW5lZDIsIG5ld0RhdGEpO1xuICAgICAgICAgIGlmIChpc0xhemlhYmxlKGZ1bmMpKSB7XG4gICAgICAgICAgICBzZXREYXRhKHJlc3VsdDIsIG5ld0RhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQyLnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XG4gICAgICAgICAgcmV0dXJuIHNldFdyYXBUb1N0cmluZyhyZXN1bHQyLCBmdW5jLCBiaXRtYXNrKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVSb3VuZChtZXRob2ROYW1lKSB7XG4gICAgICAgICAgdmFyIGZ1bmMgPSBNYXRoMlttZXRob2ROYW1lXTtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24obnVtYmVyLCBwcmVjaXNpb24pIHtcbiAgICAgICAgICAgIG51bWJlciA9IHRvTnVtYmVyKG51bWJlcik7XG4gICAgICAgICAgICBwcmVjaXNpb24gPSBwcmVjaXNpb24gPT0gbnVsbCA/IDAgOiBuYXRpdmVNaW4odG9JbnRlZ2VyKHByZWNpc2lvbiksIDI5Mik7XG4gICAgICAgICAgICBpZiAocHJlY2lzaW9uICYmIG5hdGl2ZUlzRmluaXRlKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgdmFyIHBhaXIgPSAodG9TdHJpbmcobnVtYmVyKSArIFwiZVwiKS5zcGxpdChcImVcIiksIHZhbHVlID0gZnVuYyhwYWlyWzBdICsgXCJlXCIgKyAoK3BhaXJbMV0gKyBwcmVjaXNpb24pKTtcbiAgICAgICAgICAgICAgcGFpciA9ICh0b1N0cmluZyh2YWx1ZSkgKyBcImVcIikuc3BsaXQoXCJlXCIpO1xuICAgICAgICAgICAgICByZXR1cm4gKyhwYWlyWzBdICsgXCJlXCIgKyAoK3BhaXJbMV0gLSBwcmVjaXNpb24pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jKG51bWJlcik7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY3JlYXRlU2V0ID0gIShTZXQyICYmIDEgLyBzZXRUb0FycmF5KG5ldyBTZXQyKFssIC0wXSkpWzFdID09IElORklOSVRZKSA/IG5vb3AgOiBmdW5jdGlvbih2YWx1ZXMyKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBTZXQyKHZhbHVlczIpO1xuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBjcmVhdGVUb1BhaXJzKGtleXNGdW5jKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICAgICAgdmFyIHRhZyA9IGdldFRhZyhvYmplY3QpO1xuICAgICAgICAgICAgaWYgKHRhZyA9PSBtYXBUYWcpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG1hcFRvQXJyYXkob2JqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0YWcgPT0gc2V0VGFnKSB7XG4gICAgICAgICAgICAgIHJldHVybiBzZXRUb1BhaXJzKG9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYmFzZVRvUGFpcnMob2JqZWN0LCBrZXlzRnVuYyhvYmplY3QpKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVdyYXAoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIGFyZ1BvcywgYXJ5MiwgYXJpdHkpIHtcbiAgICAgICAgICB2YXIgaXNCaW5kS2V5ID0gYml0bWFzayAmIFdSQVBfQklORF9LRVlfRkxBRztcbiAgICAgICAgICBpZiAoIWlzQmluZEtleSAmJiB0eXBlb2YgZnVuYyAhPSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IyKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBsZW5ndGggPSBwYXJ0aWFscyA/IHBhcnRpYWxzLmxlbmd0aCA6IDA7XG4gICAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICAgIGJpdG1hc2sgJj0gfihXUkFQX1BBUlRJQUxfRkxBRyB8IFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHKTtcbiAgICAgICAgICAgIHBhcnRpYWxzID0gaG9sZGVycyA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFyeTIgPSBhcnkyID09PSB1bmRlZmluZWQyID8gYXJ5MiA6IG5hdGl2ZU1heCh0b0ludGVnZXIoYXJ5MiksIDApO1xuICAgICAgICAgIGFyaXR5ID0gYXJpdHkgPT09IHVuZGVmaW5lZDIgPyBhcml0eSA6IHRvSW50ZWdlcihhcml0eSk7XG4gICAgICAgICAgbGVuZ3RoIC09IGhvbGRlcnMgPyBob2xkZXJzLmxlbmd0aCA6IDA7XG4gICAgICAgICAgaWYgKGJpdG1hc2sgJiBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRykge1xuICAgICAgICAgICAgdmFyIHBhcnRpYWxzUmlnaHQgPSBwYXJ0aWFscywgaG9sZGVyc1JpZ2h0ID0gaG9sZGVycztcbiAgICAgICAgICAgIHBhcnRpYWxzID0gaG9sZGVycyA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBkYXRhID0gaXNCaW5kS2V5ID8gdW5kZWZpbmVkMiA6IGdldERhdGEoZnVuYyk7XG4gICAgICAgICAgdmFyIG5ld0RhdGEgPSBbXG4gICAgICAgICAgICBmdW5jLFxuICAgICAgICAgICAgYml0bWFzayxcbiAgICAgICAgICAgIHRoaXNBcmcsXG4gICAgICAgICAgICBwYXJ0aWFscyxcbiAgICAgICAgICAgIGhvbGRlcnMsXG4gICAgICAgICAgICBwYXJ0aWFsc1JpZ2h0LFxuICAgICAgICAgICAgaG9sZGVyc1JpZ2h0LFxuICAgICAgICAgICAgYXJnUG9zLFxuICAgICAgICAgICAgYXJ5MixcbiAgICAgICAgICAgIGFyaXR5XG4gICAgICAgICAgXTtcbiAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgbWVyZ2VEYXRhKG5ld0RhdGEsIGRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmdW5jID0gbmV3RGF0YVswXTtcbiAgICAgICAgICBiaXRtYXNrID0gbmV3RGF0YVsxXTtcbiAgICAgICAgICB0aGlzQXJnID0gbmV3RGF0YVsyXTtcbiAgICAgICAgICBwYXJ0aWFscyA9IG5ld0RhdGFbM107XG4gICAgICAgICAgaG9sZGVycyA9IG5ld0RhdGFbNF07XG4gICAgICAgICAgYXJpdHkgPSBuZXdEYXRhWzldID0gbmV3RGF0YVs5XSA9PT0gdW5kZWZpbmVkMiA/IGlzQmluZEtleSA/IDAgOiBmdW5jLmxlbmd0aCA6IG5hdGl2ZU1heChuZXdEYXRhWzldIC0gbGVuZ3RoLCAwKTtcbiAgICAgICAgICBpZiAoIWFyaXR5ICYmIGJpdG1hc2sgJiAoV1JBUF9DVVJSWV9GTEFHIHwgV1JBUF9DVVJSWV9SSUdIVF9GTEFHKSkge1xuICAgICAgICAgICAgYml0bWFzayAmPSB+KFdSQVBfQ1VSUllfRkxBRyB8IFdSQVBfQ1VSUllfUklHSFRfRkxBRyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghYml0bWFzayB8fCBiaXRtYXNrID09IFdSQVBfQklORF9GTEFHKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0MiA9IGNyZWF0ZUJpbmQoZnVuYywgYml0bWFzaywgdGhpc0FyZyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChiaXRtYXNrID09IFdSQVBfQ1VSUllfRkxBRyB8fCBiaXRtYXNrID09IFdSQVBfQ1VSUllfUklHSFRfRkxBRykge1xuICAgICAgICAgICAgcmVzdWx0MiA9IGNyZWF0ZUN1cnJ5KGZ1bmMsIGJpdG1hc2ssIGFyaXR5KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKChiaXRtYXNrID09IFdSQVBfUEFSVElBTF9GTEFHIHx8IGJpdG1hc2sgPT0gKFdSQVBfQklORF9GTEFHIHwgV1JBUF9QQVJUSUFMX0ZMQUcpKSAmJiAhaG9sZGVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJlc3VsdDIgPSBjcmVhdGVQYXJ0aWFsKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0MiA9IGNyZWF0ZUh5YnJpZC5hcHBseSh1bmRlZmluZWQyLCBuZXdEYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHNldHRlciA9IGRhdGEgPyBiYXNlU2V0RGF0YSA6IHNldERhdGE7XG4gICAgICAgICAgcmV0dXJuIHNldFdyYXBUb1N0cmluZyhzZXR0ZXIocmVzdWx0MiwgbmV3RGF0YSksIGZ1bmMsIGJpdG1hc2spO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGN1c3RvbURlZmF1bHRzQXNzaWduSW4ob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCkge1xuICAgICAgICAgIGlmIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkMiB8fCBlcShvYmpWYWx1ZSwgb2JqZWN0UHJvdG9ba2V5XSkgJiYgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3JjVmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvYmpWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjdXN0b21EZWZhdWx0c01lcmdlKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSwgc3RhY2spIHtcbiAgICAgICAgICBpZiAoaXNPYmplY3Qob2JqVmFsdWUpICYmIGlzT2JqZWN0KHNyY1ZhbHVlKSkge1xuICAgICAgICAgICAgc3RhY2suc2V0KHNyY1ZhbHVlLCBvYmpWYWx1ZSk7XG4gICAgICAgICAgICBiYXNlTWVyZ2Uob2JqVmFsdWUsIHNyY1ZhbHVlLCB1bmRlZmluZWQyLCBjdXN0b21EZWZhdWx0c01lcmdlLCBzdGFjayk7XG4gICAgICAgICAgICBzdGFja1tcImRlbGV0ZVwiXShzcmNWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvYmpWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjdXN0b21PbWl0Q2xvbmUodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaXNQbGFpbk9iamVjdCh2YWx1ZSkgPyB1bmRlZmluZWQyIDogdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZXF1YWxBcnJheXMoYXJyYXksIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gICAgICAgICAgdmFyIGlzUGFydGlhbCA9IGJpdG1hc2sgJiBDT01QQVJFX1BBUlRJQUxfRkxBRywgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLCBvdGhMZW5ndGggPSBvdGhlci5sZW5ndGg7XG4gICAgICAgICAgaWYgKGFyckxlbmd0aCAhPSBvdGhMZW5ndGggJiYgIShpc1BhcnRpYWwgJiYgb3RoTGVuZ3RoID4gYXJyTGVuZ3RoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgYXJyU3RhY2tlZCA9IHN0YWNrLmdldChhcnJheSk7XG4gICAgICAgICAgdmFyIG90aFN0YWNrZWQgPSBzdGFjay5nZXQob3RoZXIpO1xuICAgICAgICAgIGlmIChhcnJTdGFja2VkICYmIG90aFN0YWNrZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBhcnJTdGFja2VkID09IG90aGVyICYmIG90aFN0YWNrZWQgPT0gYXJyYXk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCByZXN1bHQyID0gdHJ1ZSwgc2VlbiA9IGJpdG1hc2sgJiBDT01QQVJFX1VOT1JERVJFRF9GTEFHID8gbmV3IFNldENhY2hlKCkgOiB1bmRlZmluZWQyO1xuICAgICAgICAgIHN0YWNrLnNldChhcnJheSwgb3RoZXIpO1xuICAgICAgICAgIHN0YWNrLnNldChvdGhlciwgYXJyYXkpO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgYXJyTGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgYXJyVmFsdWUgPSBhcnJheVtpbmRleF0sIG90aFZhbHVlID0gb3RoZXJbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICAgICAgdmFyIGNvbXBhcmVkID0gaXNQYXJ0aWFsID8gY3VzdG9taXplcihvdGhWYWx1ZSwgYXJyVmFsdWUsIGluZGV4LCBvdGhlciwgYXJyYXksIHN0YWNrKSA6IGN1c3RvbWl6ZXIoYXJyVmFsdWUsIG90aFZhbHVlLCBpbmRleCwgYXJyYXksIG90aGVyLCBzdGFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY29tcGFyZWQgIT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgaWYgKGNvbXBhcmVkKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVzdWx0MiA9IGZhbHNlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWVuKSB7XG4gICAgICAgICAgICAgIGlmICghYXJyYXlTb21lKG90aGVyLCBmdW5jdGlvbihvdGhWYWx1ZTIsIG90aEluZGV4KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFjYWNoZUhhcyhzZWVuLCBvdGhJbmRleCkgJiYgKGFyclZhbHVlID09PSBvdGhWYWx1ZTIgfHwgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZTIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIHN0YWNrKSkpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBzZWVuLnB1c2gob3RoSW5kZXgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIShhcnJWYWx1ZSA9PT0gb3RoVmFsdWUgfHwgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spKSkge1xuICAgICAgICAgICAgICByZXN1bHQyID0gZmFsc2U7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBzdGFja1tcImRlbGV0ZVwiXShhcnJheSk7XG4gICAgICAgICAgc3RhY2tbXCJkZWxldGVcIl0ob3RoZXIpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGVxdWFsQnlUYWcob2JqZWN0LCBvdGhlciwgdGFnLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gICAgICAgICAgc3dpdGNoICh0YWcpIHtcbiAgICAgICAgICAgIGNhc2UgZGF0YVZpZXdUYWc6XG4gICAgICAgICAgICAgIGlmIChvYmplY3QuYnl0ZUxlbmd0aCAhPSBvdGhlci5ieXRlTGVuZ3RoIHx8IG9iamVjdC5ieXRlT2Zmc2V0ICE9IG90aGVyLmJ5dGVPZmZzZXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgb2JqZWN0ID0gb2JqZWN0LmJ1ZmZlcjtcbiAgICAgICAgICAgICAgb3RoZXIgPSBvdGhlci5idWZmZXI7XG4gICAgICAgICAgICBjYXNlIGFycmF5QnVmZmVyVGFnOlxuICAgICAgICAgICAgICBpZiAob2JqZWN0LmJ5dGVMZW5ndGggIT0gb3RoZXIuYnl0ZUxlbmd0aCB8fCAhZXF1YWxGdW5jKG5ldyBVaW50OEFycmF5MihvYmplY3QpLCBuZXcgVWludDhBcnJheTIob3RoZXIpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIGNhc2UgYm9vbFRhZzpcbiAgICAgICAgICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgICAgICAgIGNhc2UgbnVtYmVyVGFnOlxuICAgICAgICAgICAgICByZXR1cm4gZXEoK29iamVjdCwgK290aGVyKTtcbiAgICAgICAgICAgIGNhc2UgZXJyb3JUYWc6XG4gICAgICAgICAgICAgIHJldHVybiBvYmplY3QubmFtZSA9PSBvdGhlci5uYW1lICYmIG9iamVjdC5tZXNzYWdlID09IG90aGVyLm1lc3NhZ2U7XG4gICAgICAgICAgICBjYXNlIHJlZ2V4cFRhZzpcbiAgICAgICAgICAgIGNhc2Ugc3RyaW5nVGFnOlxuICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IG90aGVyICsgXCJcIjtcbiAgICAgICAgICAgIGNhc2UgbWFwVGFnOlxuICAgICAgICAgICAgICB2YXIgY29udmVydCA9IG1hcFRvQXJyYXk7XG4gICAgICAgICAgICBjYXNlIHNldFRhZzpcbiAgICAgICAgICAgICAgdmFyIGlzUGFydGlhbCA9IGJpdG1hc2sgJiBDT01QQVJFX1BBUlRJQUxfRkxBRztcbiAgICAgICAgICAgICAgY29udmVydCB8fCAoY29udmVydCA9IHNldFRvQXJyYXkpO1xuICAgICAgICAgICAgICBpZiAob2JqZWN0LnNpemUgIT0gb3RoZXIuc2l6ZSAmJiAhaXNQYXJ0aWFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KG9iamVjdCk7XG4gICAgICAgICAgICAgIGlmIChzdGFja2VkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0YWNrZWQgPT0gb3RoZXI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYml0bWFzayB8PSBDT01QQVJFX1VOT1JERVJFRF9GTEFHO1xuICAgICAgICAgICAgICBzdGFjay5zZXQob2JqZWN0LCBvdGhlcik7XG4gICAgICAgICAgICAgIHZhciByZXN1bHQyID0gZXF1YWxBcnJheXMoY29udmVydChvYmplY3QpLCBjb252ZXJ0KG90aGVyKSwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjayk7XG4gICAgICAgICAgICAgIHN0YWNrW1wiZGVsZXRlXCJdKG9iamVjdCk7XG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgICAgY2FzZSBzeW1ib2xUYWc6XG4gICAgICAgICAgICAgIGlmIChzeW1ib2xWYWx1ZU9mKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbFZhbHVlT2YuY2FsbChvYmplY3QpID09IHN5bWJvbFZhbHVlT2YuY2FsbChvdGhlcik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGVxdWFsT2JqZWN0cyhvYmplY3QsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gICAgICAgICAgdmFyIGlzUGFydGlhbCA9IGJpdG1hc2sgJiBDT01QQVJFX1BBUlRJQUxfRkxBRywgb2JqUHJvcHMgPSBnZXRBbGxLZXlzKG9iamVjdCksIG9iakxlbmd0aCA9IG9ialByb3BzLmxlbmd0aCwgb3RoUHJvcHMgPSBnZXRBbGxLZXlzKG90aGVyKSwgb3RoTGVuZ3RoID0gb3RoUHJvcHMubGVuZ3RoO1xuICAgICAgICAgIGlmIChvYmpMZW5ndGggIT0gb3RoTGVuZ3RoICYmICFpc1BhcnRpYWwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGluZGV4ID0gb2JqTGVuZ3RoO1xuICAgICAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0gb2JqUHJvcHNbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKCEoaXNQYXJ0aWFsID8ga2V5IGluIG90aGVyIDogaGFzT3duUHJvcGVydHkuY2FsbChvdGhlciwga2V5KSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgb2JqU3RhY2tlZCA9IHN0YWNrLmdldChvYmplY3QpO1xuICAgICAgICAgIHZhciBvdGhTdGFja2VkID0gc3RhY2suZ2V0KG90aGVyKTtcbiAgICAgICAgICBpZiAob2JqU3RhY2tlZCAmJiBvdGhTdGFja2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqU3RhY2tlZCA9PSBvdGhlciAmJiBvdGhTdGFja2VkID09IG9iamVjdDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSB0cnVlO1xuICAgICAgICAgIHN0YWNrLnNldChvYmplY3QsIG90aGVyKTtcbiAgICAgICAgICBzdGFjay5zZXQob3RoZXIsIG9iamVjdCk7XG4gICAgICAgICAgdmFyIHNraXBDdG9yID0gaXNQYXJ0aWFsO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgb2JqTGVuZ3RoKSB7XG4gICAgICAgICAgICBrZXkgPSBvYmpQcm9wc1tpbmRleF07XG4gICAgICAgICAgICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSwgb3RoVmFsdWUgPSBvdGhlcltrZXldO1xuICAgICAgICAgICAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICAgICAgdmFyIGNvbXBhcmVkID0gaXNQYXJ0aWFsID8gY3VzdG9taXplcihvdGhWYWx1ZSwgb2JqVmFsdWUsIGtleSwgb3RoZXIsIG9iamVjdCwgc3RhY2spIDogY3VzdG9taXplcihvYmpWYWx1ZSwgb3RoVmFsdWUsIGtleSwgb2JqZWN0LCBvdGhlciwgc3RhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCEoY29tcGFyZWQgPT09IHVuZGVmaW5lZDIgPyBvYmpWYWx1ZSA9PT0gb3RoVmFsdWUgfHwgZXF1YWxGdW5jKG9ialZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spIDogY29tcGFyZWQpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBza2lwQ3RvciB8fCAoc2tpcEN0b3IgPSBrZXkgPT0gXCJjb25zdHJ1Y3RvclwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlc3VsdDIgJiYgIXNraXBDdG9yKSB7XG4gICAgICAgICAgICB2YXIgb2JqQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3Rvciwgb3RoQ3RvciA9IG90aGVyLmNvbnN0cnVjdG9yO1xuICAgICAgICAgICAgaWYgKG9iakN0b3IgIT0gb3RoQ3RvciAmJiAoXCJjb25zdHJ1Y3RvclwiIGluIG9iamVjdCAmJiBcImNvbnN0cnVjdG9yXCIgaW4gb3RoZXIpICYmICEodHlwZW9mIG9iakN0b3IgPT0gXCJmdW5jdGlvblwiICYmIG9iakN0b3IgaW5zdGFuY2VvZiBvYmpDdG9yICYmIHR5cGVvZiBvdGhDdG9yID09IFwiZnVuY3Rpb25cIiAmJiBvdGhDdG9yIGluc3RhbmNlb2Ygb3RoQ3RvcikpIHtcbiAgICAgICAgICAgICAgcmVzdWx0MiA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBzdGFja1tcImRlbGV0ZVwiXShvYmplY3QpO1xuICAgICAgICAgIHN0YWNrW1wiZGVsZXRlXCJdKG90aGVyKTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmbGF0UmVzdChmdW5jKSB7XG4gICAgICAgICAgcmV0dXJuIHNldFRvU3RyaW5nKG92ZXJSZXN0KGZ1bmMsIHVuZGVmaW5lZDIsIGZsYXR0ZW4pLCBmdW5jICsgXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0QWxsS2V5cyhvYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzLCBnZXRTeW1ib2xzKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRBbGxLZXlzSW4ob2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VHZXRBbGxLZXlzKG9iamVjdCwga2V5c0luLCBnZXRTeW1ib2xzSW4pO1xuICAgICAgICB9XG4gICAgICAgIHZhciBnZXREYXRhID0gIW1ldGFNYXAgPyBub29wIDogZnVuY3Rpb24oZnVuYykge1xuICAgICAgICAgIHJldHVybiBtZXRhTWFwLmdldChmdW5jKTtcbiAgICAgICAgfTtcbiAgICAgICAgZnVuY3Rpb24gZ2V0RnVuY05hbWUoZnVuYykge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gZnVuYy5uYW1lICsgXCJcIiwgYXJyYXkgPSByZWFsTmFtZXNbcmVzdWx0Ml0sIGxlbmd0aCA9IGhhc093blByb3BlcnR5LmNhbGwocmVhbE5hbWVzLCByZXN1bHQyKSA/IGFycmF5Lmxlbmd0aCA6IDA7XG4gICAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgICB2YXIgZGF0YSA9IGFycmF5W2xlbmd0aF0sIG90aGVyRnVuYyA9IGRhdGEuZnVuYztcbiAgICAgICAgICAgIGlmIChvdGhlckZ1bmMgPT0gbnVsbCB8fCBvdGhlckZ1bmMgPT0gZnVuYykge1xuICAgICAgICAgICAgICByZXR1cm4gZGF0YS5uYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRIb2xkZXIoZnVuYykge1xuICAgICAgICAgIHZhciBvYmplY3QgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKGxvZGFzaCwgXCJwbGFjZWhvbGRlclwiKSA/IGxvZGFzaCA6IGZ1bmM7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdC5wbGFjZWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRJdGVyYXRlZSgpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IGxvZGFzaC5pdGVyYXRlZSB8fCBpdGVyYXRlZTtcbiAgICAgICAgICByZXN1bHQyID0gcmVzdWx0MiA9PT0gaXRlcmF0ZWUgPyBiYXNlSXRlcmF0ZWUgOiByZXN1bHQyO1xuICAgICAgICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gcmVzdWx0Mihhcmd1bWVudHNbMF0sIGFyZ3VtZW50c1sxXSkgOiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldE1hcERhdGEobWFwMiwga2V5KSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSBtYXAyLl9fZGF0YV9fO1xuICAgICAgICAgIHJldHVybiBpc0tleWFibGUoa2V5KSA/IGRhdGFbdHlwZW9mIGtleSA9PSBcInN0cmluZ1wiID8gXCJzdHJpbmdcIiA6IFwiaGFzaFwiXSA6IGRhdGEubWFwO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldE1hdGNoRGF0YShvYmplY3QpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IGtleXMob2JqZWN0KSwgbGVuZ3RoID0gcmVzdWx0Mi5sZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0gcmVzdWx0MltsZW5ndGhdLCB2YWx1ZSA9IG9iamVjdFtrZXldO1xuICAgICAgICAgICAgcmVzdWx0MltsZW5ndGhdID0gW2tleSwgdmFsdWUsIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSldO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXROYXRpdmUob2JqZWN0LCBrZXkpIHtcbiAgICAgICAgICB2YXIgdmFsdWUgPSBnZXRWYWx1ZShvYmplY3QsIGtleSk7XG4gICAgICAgICAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0UmF3VGFnKHZhbHVlKSB7XG4gICAgICAgICAgdmFyIGlzT3duID0gaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgc3ltVG9TdHJpbmdUYWcpLCB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgICB2YXIgdW5tYXNrZWQgPSB0cnVlO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICAgICAgICBpZiAodW5tYXNrZWQpIHtcbiAgICAgICAgICAgIGlmIChpc093bikge1xuICAgICAgICAgICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB0YWc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBkZWxldGUgdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZ2V0U3ltYm9scyA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIG9iamVjdCA9IE9iamVjdDIob2JqZWN0KTtcbiAgICAgICAgICByZXR1cm4gYXJyYXlGaWx0ZXIobmF0aXZlR2V0U3ltYm9scyhvYmplY3QpLCBmdW5jdGlvbihzeW1ib2wpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKG9iamVjdCwgc3ltYm9sKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGdldFN5bWJvbHNJbiA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBbXTtcbiAgICAgICAgICB3aGlsZSAob2JqZWN0KSB7XG4gICAgICAgICAgICBhcnJheVB1c2gocmVzdWx0MiwgZ2V0U3ltYm9scyhvYmplY3QpKTtcbiAgICAgICAgICAgIG9iamVjdCA9IGdldFByb3RvdHlwZShvYmplY3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGdldFRhZyA9IGJhc2VHZXRUYWc7XG4gICAgICAgIGlmIChEYXRhVmlldzIgJiYgZ2V0VGFnKG5ldyBEYXRhVmlldzIobmV3IEFycmF5QnVmZmVyKDEpKSkgIT0gZGF0YVZpZXdUYWcgfHwgTWFwMiAmJiBnZXRUYWcobmV3IE1hcDIoKSkgIT0gbWFwVGFnIHx8IFByb21pc2UyICYmIGdldFRhZyhQcm9taXNlMi5yZXNvbHZlKCkpICE9IHByb21pc2VUYWcgfHwgU2V0MiAmJiBnZXRUYWcobmV3IFNldDIoKSkgIT0gc2V0VGFnIHx8IFdlYWtNYXAyICYmIGdldFRhZyhuZXcgV2Vha01hcDIoKSkgIT0gd2Vha01hcFRhZykge1xuICAgICAgICAgIGdldFRhZyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0MiA9IGJhc2VHZXRUYWcodmFsdWUpLCBDdG9yID0gcmVzdWx0MiA9PSBvYmplY3RUYWcgPyB2YWx1ZS5jb25zdHJ1Y3RvciA6IHVuZGVmaW5lZDIsIGN0b3JTdHJpbmcgPSBDdG9yID8gdG9Tb3VyY2UoQ3RvcikgOiBcIlwiO1xuICAgICAgICAgICAgaWYgKGN0b3JTdHJpbmcpIHtcbiAgICAgICAgICAgICAgc3dpdGNoIChjdG9yU3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBkYXRhVmlld0N0b3JTdHJpbmc6XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YVZpZXdUYWc7XG4gICAgICAgICAgICAgICAgY2FzZSBtYXBDdG9yU3RyaW5nOlxuICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hcFRhZztcbiAgICAgICAgICAgICAgICBjYXNlIHByb21pc2VDdG9yU3RyaW5nOlxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2VUYWc7XG4gICAgICAgICAgICAgICAgY2FzZSBzZXRDdG9yU3RyaW5nOlxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHNldFRhZztcbiAgICAgICAgICAgICAgICBjYXNlIHdlYWtNYXBDdG9yU3RyaW5nOlxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHdlYWtNYXBUYWc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0VmlldyhzdGFydCwgZW5kLCB0cmFuc2Zvcm1zKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHRyYW5zZm9ybXMubGVuZ3RoO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgZGF0YSA9IHRyYW5zZm9ybXNbaW5kZXhdLCBzaXplMiA9IGRhdGEuc2l6ZTtcbiAgICAgICAgICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJkcm9wXCI6XG4gICAgICAgICAgICAgICAgc3RhcnQgKz0gc2l6ZTI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJkcm9wUmlnaHRcIjpcbiAgICAgICAgICAgICAgICBlbmQgLT0gc2l6ZTI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJ0YWtlXCI6XG4gICAgICAgICAgICAgICAgZW5kID0gbmF0aXZlTWluKGVuZCwgc3RhcnQgKyBzaXplMik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJ0YWtlUmlnaHRcIjpcbiAgICAgICAgICAgICAgICBzdGFydCA9IG5hdGl2ZU1heChzdGFydCwgZW5kIC0gc2l6ZTIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4geyBcInN0YXJ0XCI6IHN0YXJ0LCBcImVuZFwiOiBlbmQgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRXcmFwRGV0YWlscyhzb3VyY2UpIHtcbiAgICAgICAgICB2YXIgbWF0Y2ggPSBzb3VyY2UubWF0Y2gocmVXcmFwRGV0YWlscyk7XG4gICAgICAgICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0uc3BsaXQocmVTcGxpdERldGFpbHMpIDogW107XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaGFzUGF0aChvYmplY3QsIHBhdGgsIGhhc0Z1bmMpIHtcbiAgICAgICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gcGF0aC5sZW5ndGgsIHJlc3VsdDIgPSBmYWxzZTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGtleSA9IHRvS2V5KHBhdGhbaW5kZXhdKTtcbiAgICAgICAgICAgIGlmICghKHJlc3VsdDIgPSBvYmplY3QgIT0gbnVsbCAmJiBoYXNGdW5jKG9iamVjdCwga2V5KSkpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvYmplY3QgPSBvYmplY3Rba2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlc3VsdDIgfHwgKytpbmRleCAhPSBsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZW5ndGggPSBvYmplY3QgPT0gbnVsbCA/IDAgOiBvYmplY3QubGVuZ3RoO1xuICAgICAgICAgIHJldHVybiAhIWxlbmd0aCAmJiBpc0xlbmd0aChsZW5ndGgpICYmIGlzSW5kZXgoa2V5LCBsZW5ndGgpICYmIChpc0FycmF5KG9iamVjdCkgfHwgaXNBcmd1bWVudHMob2JqZWN0KSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaW5pdENsb25lQXJyYXkoYXJyYXkpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLCByZXN1bHQyID0gbmV3IGFycmF5LmNvbnN0cnVjdG9yKGxlbmd0aCk7XG4gICAgICAgICAgaWYgKGxlbmd0aCAmJiB0eXBlb2YgYXJyYXlbMF0gPT0gXCJzdHJpbmdcIiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGFycmF5LCBcImluZGV4XCIpKSB7XG4gICAgICAgICAgICByZXN1bHQyLmluZGV4ID0gYXJyYXkuaW5kZXg7XG4gICAgICAgICAgICByZXN1bHQyLmlucHV0ID0gYXJyYXkuaW5wdXQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGluaXRDbG9uZU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIG9iamVjdC5jb25zdHJ1Y3RvciA9PSBcImZ1bmN0aW9uXCIgJiYgIWlzUHJvdG90eXBlKG9iamVjdCkgPyBiYXNlQ3JlYXRlKGdldFByb3RvdHlwZShvYmplY3QpKSA6IHt9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGluaXRDbG9uZUJ5VGFnKG9iamVjdCwgdGFnLCBpc0RlZXApIHtcbiAgICAgICAgICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgICAgICAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgICAgICAgY2FzZSBhcnJheUJ1ZmZlclRhZzpcbiAgICAgICAgICAgICAgcmV0dXJuIGNsb25lQXJyYXlCdWZmZXIob2JqZWN0KTtcbiAgICAgICAgICAgIGNhc2UgYm9vbFRhZzpcbiAgICAgICAgICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDdG9yKCtvYmplY3QpO1xuICAgICAgICAgICAgY2FzZSBkYXRhVmlld1RhZzpcbiAgICAgICAgICAgICAgcmV0dXJuIGNsb25lRGF0YVZpZXcob2JqZWN0LCBpc0RlZXApO1xuICAgICAgICAgICAgY2FzZSBmbG9hdDMyVGFnOlxuICAgICAgICAgICAgY2FzZSBmbG9hdDY0VGFnOlxuICAgICAgICAgICAgY2FzZSBpbnQ4VGFnOlxuICAgICAgICAgICAgY2FzZSBpbnQxNlRhZzpcbiAgICAgICAgICAgIGNhc2UgaW50MzJUYWc6XG4gICAgICAgICAgICBjYXNlIHVpbnQ4VGFnOlxuICAgICAgICAgICAgY2FzZSB1aW50OENsYW1wZWRUYWc6XG4gICAgICAgICAgICBjYXNlIHVpbnQxNlRhZzpcbiAgICAgICAgICAgIGNhc2UgdWludDMyVGFnOlxuICAgICAgICAgICAgICByZXR1cm4gY2xvbmVUeXBlZEFycmF5KG9iamVjdCwgaXNEZWVwKTtcbiAgICAgICAgICAgIGNhc2UgbWFwVGFnOlxuICAgICAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoKTtcbiAgICAgICAgICAgIGNhc2UgbnVtYmVyVGFnOlxuICAgICAgICAgICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICAgICAgICAgIHJldHVybiBuZXcgQ3RvcihvYmplY3QpO1xuICAgICAgICAgICAgY2FzZSByZWdleHBUYWc6XG4gICAgICAgICAgICAgIHJldHVybiBjbG9uZVJlZ0V4cChvYmplY3QpO1xuICAgICAgICAgICAgY2FzZSBzZXRUYWc6XG4gICAgICAgICAgICAgIHJldHVybiBuZXcgQ3RvcigpO1xuICAgICAgICAgICAgY2FzZSBzeW1ib2xUYWc6XG4gICAgICAgICAgICAgIHJldHVybiBjbG9uZVN5bWJvbChvYmplY3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpbnNlcnRXcmFwRGV0YWlscyhzb3VyY2UsIGRldGFpbHMpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gZGV0YWlscy5sZW5ndGg7XG4gICAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBsYXN0SW5kZXggPSBsZW5ndGggLSAxO1xuICAgICAgICAgIGRldGFpbHNbbGFzdEluZGV4XSA9IChsZW5ndGggPiAxID8gXCImIFwiIDogXCJcIikgKyBkZXRhaWxzW2xhc3RJbmRleF07XG4gICAgICAgICAgZGV0YWlscyA9IGRldGFpbHMuam9pbihsZW5ndGggPiAyID8gXCIsIFwiIDogXCIgXCIpO1xuICAgICAgICAgIHJldHVybiBzb3VyY2UucmVwbGFjZShyZVdyYXBDb21tZW50LCBcIntcXG4vKiBbd3JhcHBlZCB3aXRoIFwiICsgZGV0YWlscyArIFwiXSAqL1xcblwiKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc0ZsYXR0ZW5hYmxlKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzQXJyYXkodmFsdWUpIHx8IGlzQXJndW1lbnRzKHZhbHVlKSB8fCAhIShzcHJlYWRhYmxlU3ltYm9sICYmIHZhbHVlICYmIHZhbHVlW3NwcmVhZGFibGVTeW1ib2xdKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgICAgICAgICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICAgICAgICBsZW5ndGggPSBsZW5ndGggPT0gbnVsbCA/IE1BWF9TQUZFX0lOVEVHRVIgOiBsZW5ndGg7XG4gICAgICAgICAgcmV0dXJuICEhbGVuZ3RoICYmICh0eXBlID09IFwibnVtYmVyXCIgfHwgdHlwZSAhPSBcInN5bWJvbFwiICYmIHJlSXNVaW50LnRlc3QodmFsdWUpKSAmJiAodmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNJdGVyYXRlZUNhbGwodmFsdWUsIGluZGV4LCBvYmplY3QpIHtcbiAgICAgICAgICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgaW5kZXg7XG4gICAgICAgICAgaWYgKHR5cGUgPT0gXCJudW1iZXJcIiA/IGlzQXJyYXlMaWtlKG9iamVjdCkgJiYgaXNJbmRleChpbmRleCwgb2JqZWN0Lmxlbmd0aCkgOiB0eXBlID09IFwic3RyaW5nXCIgJiYgaW5kZXggaW4gb2JqZWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gZXEob2JqZWN0W2luZGV4XSwgdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNLZXkodmFsdWUsIG9iamVjdCkge1xuICAgICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICAgICAgICBpZiAodHlwZSA9PSBcIm51bWJlclwiIHx8IHR5cGUgPT0gXCJzeW1ib2xcIiB8fCB0eXBlID09IFwiYm9vbGVhblwiIHx8IHZhbHVlID09IG51bGwgfHwgaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlSXNQbGFpblByb3AudGVzdCh2YWx1ZSkgfHwgIXJlSXNEZWVwUHJvcC50ZXN0KHZhbHVlKSB8fCBvYmplY3QgIT0gbnVsbCAmJiB2YWx1ZSBpbiBPYmplY3QyKG9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNLZXlhYmxlKHZhbHVlKSB7XG4gICAgICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIHR5cGUgPT0gXCJzdHJpbmdcIiB8fCB0eXBlID09IFwibnVtYmVyXCIgfHwgdHlwZSA9PSBcInN5bWJvbFwiIHx8IHR5cGUgPT0gXCJib29sZWFuXCIgPyB2YWx1ZSAhPT0gXCJfX3Byb3RvX19cIiA6IHZhbHVlID09PSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzTGF6aWFibGUoZnVuYykge1xuICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGdldEZ1bmNOYW1lKGZ1bmMpLCBvdGhlciA9IGxvZGFzaFtmdW5jTmFtZV07XG4gICAgICAgICAgaWYgKHR5cGVvZiBvdGhlciAhPSBcImZ1bmN0aW9uXCIgfHwgIShmdW5jTmFtZSBpbiBMYXp5V3JhcHBlci5wcm90b3R5cGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmdW5jID09PSBvdGhlcikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBkYXRhID0gZ2V0RGF0YShvdGhlcik7XG4gICAgICAgICAgcmV0dXJuICEhZGF0YSAmJiBmdW5jID09PSBkYXRhWzBdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzTWFza2VkKGZ1bmMpIHtcbiAgICAgICAgICByZXR1cm4gISFtYXNrU3JjS2V5ICYmIG1hc2tTcmNLZXkgaW4gZnVuYztcbiAgICAgICAgfVxuICAgICAgICB2YXIgaXNNYXNrYWJsZSA9IGNvcmVKc0RhdGEgPyBpc0Z1bmN0aW9uIDogc3R1YkZhbHNlO1xuICAgICAgICBmdW5jdGlvbiBpc1Byb3RvdHlwZSh2YWx1ZSkge1xuICAgICAgICAgIHZhciBDdG9yID0gdmFsdWUgJiYgdmFsdWUuY29uc3RydWN0b3IsIHByb3RvID0gdHlwZW9mIEN0b3IgPT0gXCJmdW5jdGlvblwiICYmIEN0b3IucHJvdG90eXBlIHx8IG9iamVjdFByb3RvO1xuICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gcHJvdG87XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZSAmJiAhaXNPYmplY3QodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlKGtleSwgc3JjVmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9iamVjdFtrZXldID09PSBzcmNWYWx1ZSAmJiAoc3JjVmFsdWUgIT09IHVuZGVmaW5lZDIgfHwga2V5IGluIE9iamVjdDIob2JqZWN0KSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtZW1vaXplQ2FwcGVkKGZ1bmMpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IG1lbW9pemUoZnVuYywgZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBpZiAoY2FjaGUuc2l6ZSA9PT0gTUFYX01FTU9JWkVfU0laRSkge1xuICAgICAgICAgICAgICBjYWNoZS5jbGVhcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB2YXIgY2FjaGUgPSByZXN1bHQyLmNhY2hlO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1lcmdlRGF0YShkYXRhLCBzb3VyY2UpIHtcbiAgICAgICAgICB2YXIgYml0bWFzayA9IGRhdGFbMV0sIHNyY0JpdG1hc2sgPSBzb3VyY2VbMV0sIG5ld0JpdG1hc2sgPSBiaXRtYXNrIHwgc3JjQml0bWFzaywgaXNDb21tb24gPSBuZXdCaXRtYXNrIDwgKFdSQVBfQklORF9GTEFHIHwgV1JBUF9CSU5EX0tFWV9GTEFHIHwgV1JBUF9BUllfRkxBRyk7XG4gICAgICAgICAgdmFyIGlzQ29tYm8gPSBzcmNCaXRtYXNrID09IFdSQVBfQVJZX0ZMQUcgJiYgYml0bWFzayA9PSBXUkFQX0NVUlJZX0ZMQUcgfHwgc3JjQml0bWFzayA9PSBXUkFQX0FSWV9GTEFHICYmIGJpdG1hc2sgPT0gV1JBUF9SRUFSR19GTEFHICYmIGRhdGFbN10ubGVuZ3RoIDw9IHNvdXJjZVs4XSB8fCBzcmNCaXRtYXNrID09IChXUkFQX0FSWV9GTEFHIHwgV1JBUF9SRUFSR19GTEFHKSAmJiBzb3VyY2VbN10ubGVuZ3RoIDw9IHNvdXJjZVs4XSAmJiBiaXRtYXNrID09IFdSQVBfQ1VSUllfRkxBRztcbiAgICAgICAgICBpZiAoIShpc0NvbW1vbiB8fCBpc0NvbWJvKSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzcmNCaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcpIHtcbiAgICAgICAgICAgIGRhdGFbMl0gPSBzb3VyY2VbMl07XG4gICAgICAgICAgICBuZXdCaXRtYXNrIHw9IGJpdG1hc2sgJiBXUkFQX0JJTkRfRkxBRyA/IDAgOiBXUkFQX0NVUlJZX0JPVU5EX0ZMQUc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciB2YWx1ZSA9IHNvdXJjZVszXTtcbiAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhciBwYXJ0aWFscyA9IGRhdGFbM107XG4gICAgICAgICAgICBkYXRhWzNdID0gcGFydGlhbHMgPyBjb21wb3NlQXJncyhwYXJ0aWFscywgdmFsdWUsIHNvdXJjZVs0XSkgOiB2YWx1ZTtcbiAgICAgICAgICAgIGRhdGFbNF0gPSBwYXJ0aWFscyA/IHJlcGxhY2VIb2xkZXJzKGRhdGFbM10sIFBMQUNFSE9MREVSKSA6IHNvdXJjZVs0XTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFsdWUgPSBzb3VyY2VbNV07XG4gICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBwYXJ0aWFscyA9IGRhdGFbNV07XG4gICAgICAgICAgICBkYXRhWzVdID0gcGFydGlhbHMgPyBjb21wb3NlQXJnc1JpZ2h0KHBhcnRpYWxzLCB2YWx1ZSwgc291cmNlWzZdKSA6IHZhbHVlO1xuICAgICAgICAgICAgZGF0YVs2XSA9IHBhcnRpYWxzID8gcmVwbGFjZUhvbGRlcnMoZGF0YVs1XSwgUExBQ0VIT0xERVIpIDogc291cmNlWzZdO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YWx1ZSA9IHNvdXJjZVs3XTtcbiAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGRhdGFbN10gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNyY0JpdG1hc2sgJiBXUkFQX0FSWV9GTEFHKSB7XG4gICAgICAgICAgICBkYXRhWzhdID0gZGF0YVs4XSA9PSBudWxsID8gc291cmNlWzhdIDogbmF0aXZlTWluKGRhdGFbOF0sIHNvdXJjZVs4XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkYXRhWzldID09IG51bGwpIHtcbiAgICAgICAgICAgIGRhdGFbOV0gPSBzb3VyY2VbOV07XG4gICAgICAgICAgfVxuICAgICAgICAgIGRhdGFbMF0gPSBzb3VyY2VbMF07XG4gICAgICAgICAgZGF0YVsxXSA9IG5ld0JpdG1hc2s7XG4gICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbmF0aXZlS2V5c0luKG9iamVjdCkge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gW107XG4gICAgICAgICAgaWYgKG9iamVjdCAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gT2JqZWN0MihvYmplY3QpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIucHVzaChrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBvYmplY3RUb1N0cmluZyh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBvdmVyUmVzdChmdW5jLCBzdGFydCwgdHJhbnNmb3JtMikge1xuICAgICAgICAgIHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0ID09PSB1bmRlZmluZWQyID8gZnVuYy5sZW5ndGggLSAxIDogc3RhcnQsIDApO1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzLCBpbmRleCA9IC0xLCBsZW5ndGggPSBuYXRpdmVNYXgoYXJncy5sZW5ndGggLSBzdGFydCwgMCksIGFycmF5ID0gQXJyYXkyKGxlbmd0aCk7XG4gICAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICBhcnJheVtpbmRleF0gPSBhcmdzW3N0YXJ0ICsgaW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5kZXggPSAtMTtcbiAgICAgICAgICAgIHZhciBvdGhlckFyZ3MgPSBBcnJheTIoc3RhcnQgKyAxKTtcbiAgICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgc3RhcnQpIHtcbiAgICAgICAgICAgICAgb3RoZXJBcmdzW2luZGV4XSA9IGFyZ3NbaW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3RoZXJBcmdzW3N0YXJ0XSA9IHRyYW5zZm9ybTIoYXJyYXkpO1xuICAgICAgICAgICAgcmV0dXJuIGFwcGx5KGZ1bmMsIHRoaXMsIG90aGVyQXJncyk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBwYXJlbnQob2JqZWN0LCBwYXRoKSB7XG4gICAgICAgICAgcmV0dXJuIHBhdGgubGVuZ3RoIDwgMiA/IG9iamVjdCA6IGJhc2VHZXQob2JqZWN0LCBiYXNlU2xpY2UocGF0aCwgMCwgLTEpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiByZW9yZGVyKGFycmF5LCBpbmRleGVzKSB7XG4gICAgICAgICAgdmFyIGFyckxlbmd0aCA9IGFycmF5Lmxlbmd0aCwgbGVuZ3RoID0gbmF0aXZlTWluKGluZGV4ZXMubGVuZ3RoLCBhcnJMZW5ndGgpLCBvbGRBcnJheSA9IGNvcHlBcnJheShhcnJheSk7XG4gICAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSBpbmRleGVzW2xlbmd0aF07XG4gICAgICAgICAgICBhcnJheVtsZW5ndGhdID0gaXNJbmRleChpbmRleCwgYXJyTGVuZ3RoKSA/IG9sZEFycmF5W2luZGV4XSA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzYWZlR2V0KG9iamVjdCwga2V5KSB7XG4gICAgICAgICAgaWYgKGtleSA9PT0gXCJjb25zdHJ1Y3RvclwiICYmIHR5cGVvZiBvYmplY3Rba2V5XSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChrZXkgPT0gXCJfX3Byb3RvX19cIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gb2JqZWN0W2tleV07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNldERhdGEgPSBzaG9ydE91dChiYXNlU2V0RGF0YSk7XG4gICAgICAgIHZhciBzZXRUaW1lb3V0ID0gY3R4U2V0VGltZW91dCB8fCBmdW5jdGlvbihmdW5jLCB3YWl0KSB7XG4gICAgICAgICAgcmV0dXJuIHJvb3Quc2V0VGltZW91dChmdW5jLCB3YWl0KTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHNldFRvU3RyaW5nID0gc2hvcnRPdXQoYmFzZVNldFRvU3RyaW5nKTtcbiAgICAgICAgZnVuY3Rpb24gc2V0V3JhcFRvU3RyaW5nKHdyYXBwZXIsIHJlZmVyZW5jZSwgYml0bWFzaykge1xuICAgICAgICAgIHZhciBzb3VyY2UgPSByZWZlcmVuY2UgKyBcIlwiO1xuICAgICAgICAgIHJldHVybiBzZXRUb1N0cmluZyh3cmFwcGVyLCBpbnNlcnRXcmFwRGV0YWlscyhzb3VyY2UsIHVwZGF0ZVdyYXBEZXRhaWxzKGdldFdyYXBEZXRhaWxzKHNvdXJjZSksIGJpdG1hc2spKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2hvcnRPdXQoZnVuYykge1xuICAgICAgICAgIHZhciBjb3VudCA9IDAsIGxhc3RDYWxsZWQgPSAwO1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBzdGFtcCA9IG5hdGl2ZU5vdygpLCByZW1haW5pbmcgPSBIT1RfU1BBTiAtIChzdGFtcCAtIGxhc3RDYWxsZWQpO1xuICAgICAgICAgICAgbGFzdENhbGxlZCA9IHN0YW1wO1xuICAgICAgICAgICAgaWYgKHJlbWFpbmluZyA+IDApIHtcbiAgICAgICAgICAgICAgaWYgKCsrY291bnQgPj0gSE9UX0NPVU5UKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1swXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY291bnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodW5kZWZpbmVkMiwgYXJndW1lbnRzKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNodWZmbGVTZWxmKGFycmF5LCBzaXplMikge1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBhcnJheS5sZW5ndGgsIGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG4gICAgICAgICAgc2l6ZTIgPSBzaXplMiA9PT0gdW5kZWZpbmVkMiA/IGxlbmd0aCA6IHNpemUyO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgc2l6ZTIpIHtcbiAgICAgICAgICAgIHZhciByYW5kID0gYmFzZVJhbmRvbShpbmRleCwgbGFzdEluZGV4KSwgdmFsdWUgPSBhcnJheVtyYW5kXTtcbiAgICAgICAgICAgIGFycmF5W3JhbmRdID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICAgICAgYXJyYXlbaW5kZXhdID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFycmF5Lmxlbmd0aCA9IHNpemUyO1xuICAgICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc3RyaW5nVG9QYXRoID0gbWVtb2l6ZUNhcHBlZChmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IFtdO1xuICAgICAgICAgIGlmIChzdHJpbmcuY2hhckNvZGVBdCgwKSA9PT0gNDYpIHtcbiAgICAgICAgICAgIHJlc3VsdDIucHVzaChcIlwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3RyaW5nLnJlcGxhY2UocmVQcm9wTmFtZSwgZnVuY3Rpb24obWF0Y2gsIG51bWJlciwgcXVvdGUsIHN1YlN0cmluZykge1xuICAgICAgICAgICAgcmVzdWx0Mi5wdXNoKHF1b3RlID8gc3ViU3RyaW5nLnJlcGxhY2UocmVFc2NhcGVDaGFyLCBcIiQxXCIpIDogbnVtYmVyIHx8IG1hdGNoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIHRvS2V5KHZhbHVlKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSBcInN0cmluZ1wiIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IHZhbHVlICsgXCJcIjtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MiA9PSBcIjBcIiAmJiAxIC8gdmFsdWUgPT0gLUlORklOSVRZID8gXCItMFwiIDogcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0b1NvdXJjZShmdW5jKSB7XG4gICAgICAgICAgaWYgKGZ1bmMgIT0gbnVsbCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmNUb1N0cmluZy5jYWxsKGZ1bmMpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmMgKyBcIlwiO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB1cGRhdGVXcmFwRGV0YWlscyhkZXRhaWxzLCBiaXRtYXNrKSB7XG4gICAgICAgICAgYXJyYXlFYWNoKHdyYXBGbGFncywgZnVuY3Rpb24ocGFpcikge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gXCJfLlwiICsgcGFpclswXTtcbiAgICAgICAgICAgIGlmIChiaXRtYXNrICYgcGFpclsxXSAmJiAhYXJyYXlJbmNsdWRlcyhkZXRhaWxzLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgZGV0YWlscy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gZGV0YWlscy5zb3J0KCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gd3JhcHBlckNsb25lKHdyYXBwZXIpIHtcbiAgICAgICAgICBpZiAod3JhcHBlciBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcHBlci5jbG9uZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IG5ldyBMb2Rhc2hXcmFwcGVyKHdyYXBwZXIuX193cmFwcGVkX18sIHdyYXBwZXIuX19jaGFpbl9fKTtcbiAgICAgICAgICByZXN1bHQyLl9fYWN0aW9uc19fID0gY29weUFycmF5KHdyYXBwZXIuX19hY3Rpb25zX18pO1xuICAgICAgICAgIHJlc3VsdDIuX19pbmRleF9fID0gd3JhcHBlci5fX2luZGV4X187XG4gICAgICAgICAgcmVzdWx0Mi5fX3ZhbHVlc19fID0gd3JhcHBlci5fX3ZhbHVlc19fO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNodW5rKGFycmF5LCBzaXplMiwgZ3VhcmQpIHtcbiAgICAgICAgICBpZiAoZ3VhcmQgPyBpc0l0ZXJhdGVlQ2FsbChhcnJheSwgc2l6ZTIsIGd1YXJkKSA6IHNpemUyID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICBzaXplMiA9IDE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNpemUyID0gbmF0aXZlTWF4KHRvSW50ZWdlcihzaXplMiksIDApO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgaWYgKCFsZW5ndGggfHwgc2l6ZTIgPCAxKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBpbmRleCA9IDAsIHJlc0luZGV4ID0gMCwgcmVzdWx0MiA9IEFycmF5MihuYXRpdmVDZWlsKGxlbmd0aCAvIHNpemUyKSk7XG4gICAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQyW3Jlc0luZGV4KytdID0gYmFzZVNsaWNlKGFycmF5LCBpbmRleCwgaW5kZXggKz0gc2l6ZTIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjb21wYWN0KGFycmF5KSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoLCByZXNJbmRleCA9IDAsIHJlc3VsdDIgPSBbXTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDJbcmVzSW5kZXgrK10gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY29uY2F0KCkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgICAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkyKGxlbmd0aCAtIDEpLCBhcnJheSA9IGFyZ3VtZW50c1swXSwgaW5kZXggPSBsZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgICAgIGFyZ3NbaW5kZXggLSAxXSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhcnJheVB1c2goaXNBcnJheShhcnJheSkgPyBjb3B5QXJyYXkoYXJyYXkpIDogW2FycmF5XSwgYmFzZUZsYXR0ZW4oYXJncywgMSkpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkaWZmZXJlbmNlID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXksIHZhbHVlczIpIHtcbiAgICAgICAgICByZXR1cm4gaXNBcnJheUxpa2VPYmplY3QoYXJyYXkpID8gYmFzZURpZmZlcmVuY2UoYXJyYXksIGJhc2VGbGF0dGVuKHZhbHVlczIsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSkgOiBbXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBkaWZmZXJlbmNlQnkgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheSwgdmFsdWVzMikge1xuICAgICAgICAgIHZhciBpdGVyYXRlZTIgPSBsYXN0KHZhbHVlczIpO1xuICAgICAgICAgIGlmIChpc0FycmF5TGlrZU9iamVjdChpdGVyYXRlZTIpKSB7XG4gICAgICAgICAgICBpdGVyYXRlZTIgPSB1bmRlZmluZWQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gaXNBcnJheUxpa2VPYmplY3QoYXJyYXkpID8gYmFzZURpZmZlcmVuY2UoYXJyYXksIGJhc2VGbGF0dGVuKHZhbHVlczIsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAyKSkgOiBbXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBkaWZmZXJlbmNlV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5LCB2YWx1ZXMyKSB7XG4gICAgICAgICAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KHZhbHVlczIpO1xuICAgICAgICAgIGlmIChpc0FycmF5TGlrZU9iamVjdChjb21wYXJhdG9yKSkge1xuICAgICAgICAgICAgY29tcGFyYXRvciA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdChhcnJheSkgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgYmFzZUZsYXR0ZW4odmFsdWVzMiwgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpLCB1bmRlZmluZWQyLCBjb21wYXJhdG9yKSA6IFtdO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gZHJvcChhcnJheSwgbiwgZ3VhcmQpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbiA9IGd1YXJkIHx8IG4gPT09IHVuZGVmaW5lZDIgPyAxIDogdG9JbnRlZ2VyKG4pO1xuICAgICAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIG4gPCAwID8gMCA6IG4sIGxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZHJvcFJpZ2h0KGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuID0gZ3VhcmQgfHwgbiA9PT0gdW5kZWZpbmVkMiA/IDEgOiB0b0ludGVnZXIobik7XG4gICAgICAgICAgbiA9IGxlbmd0aCAtIG47XG4gICAgICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgMCwgbiA8IDAgPyAwIDogbik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZHJvcFJpZ2h0V2hpbGUoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlV2hpbGUoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIHRydWUsIHRydWUpIDogW107XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZHJvcFdoaWxlKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXkgJiYgYXJyYXkubGVuZ3RoID8gYmFzZVdoaWxlKGFycmF5LCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpLCB0cnVlKSA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZpbGwoYXJyYXksIHZhbHVlLCBzdGFydCwgZW5kKSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdGFydCAmJiB0eXBlb2Ygc3RhcnQgIT0gXCJudW1iZXJcIiAmJiBpc0l0ZXJhdGVlQ2FsbChhcnJheSwgdmFsdWUsIHN0YXJ0KSkge1xuICAgICAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgICAgICAgZW5kID0gbGVuZ3RoO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYmFzZUZpbGwoYXJyYXksIHZhbHVlLCBzdGFydCwgZW5kKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmaW5kSW5kZXgoYXJyYXksIHByZWRpY2F0ZSwgZnJvbUluZGV4KSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBpbmRleCA9IGZyb21JbmRleCA9PSBudWxsID8gMCA6IHRvSW50ZWdlcihmcm9tSW5kZXgpO1xuICAgICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIGluZGV4ID0gbmF0aXZlTWF4KGxlbmd0aCArIGluZGV4LCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGJhc2VGaW5kSW5kZXgoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmaW5kTGFzdEluZGV4KGFycmF5LCBwcmVkaWNhdGUsIGZyb21JbmRleCkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaW5kZXggPSBsZW5ndGggLSAxO1xuICAgICAgICAgIGlmIChmcm9tSW5kZXggIT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIGluZGV4ID0gdG9JbnRlZ2VyKGZyb21JbmRleCk7XG4gICAgICAgICAgICBpbmRleCA9IGZyb21JbmRleCA8IDAgPyBuYXRpdmVNYXgobGVuZ3RoICsgaW5kZXgsIDApIDogbmF0aXZlTWluKGluZGV4LCBsZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGJhc2VGaW5kSW5kZXgoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGluZGV4LCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmbGF0dGVuKGFycmF5KSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlRmxhdHRlbihhcnJheSwgMSkgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmbGF0dGVuRGVlcChhcnJheSkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZUZsYXR0ZW4oYXJyYXksIElORklOSVRZKSA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZsYXR0ZW5EZXB0aChhcnJheSwgZGVwdGgpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZGVwdGggPSBkZXB0aCA9PT0gdW5kZWZpbmVkMiA/IDEgOiB0b0ludGVnZXIoZGVwdGgpO1xuICAgICAgICAgIHJldHVybiBiYXNlRmxhdHRlbihhcnJheSwgZGVwdGgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZyb21QYWlycyhwYWlycykge1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBwYWlycyA9PSBudWxsID8gMCA6IHBhaXJzLmxlbmd0aCwgcmVzdWx0MiA9IHt9O1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgcGFpciA9IHBhaXJzW2luZGV4XTtcbiAgICAgICAgICAgIHJlc3VsdDJbcGFpclswXV0gPSBwYWlyWzFdO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBoZWFkKGFycmF5KSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCA/IGFycmF5WzBdIDogdW5kZWZpbmVkMjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBpbmRleCA9IGZyb21JbmRleCA9PSBudWxsID8gMCA6IHRvSW50ZWdlcihmcm9tSW5kZXgpO1xuICAgICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIGluZGV4ID0gbmF0aXZlTWF4KGxlbmd0aCArIGluZGV4LCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGluaXRpYWwoYXJyYXkpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgcmV0dXJuIGxlbmd0aCA/IGJhc2VTbGljZShhcnJheSwgMCwgLTEpIDogW107XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGludGVyc2VjdGlvbiA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgICAgIHZhciBtYXBwZWQgPSBhcnJheU1hcChhcnJheXMsIGNhc3RBcnJheUxpa2VPYmplY3QpO1xuICAgICAgICAgIHJldHVybiBtYXBwZWQubGVuZ3RoICYmIG1hcHBlZFswXSA9PT0gYXJyYXlzWzBdID8gYmFzZUludGVyc2VjdGlvbihtYXBwZWQpIDogW107XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaW50ZXJzZWN0aW9uQnkgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgICAgICB2YXIgaXRlcmF0ZWUyID0gbGFzdChhcnJheXMpLCBtYXBwZWQgPSBhcnJheU1hcChhcnJheXMsIGNhc3RBcnJheUxpa2VPYmplY3QpO1xuICAgICAgICAgIGlmIChpdGVyYXRlZTIgPT09IGxhc3QobWFwcGVkKSkge1xuICAgICAgICAgICAgaXRlcmF0ZWUyID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWFwcGVkLnBvcCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbWFwcGVkLmxlbmd0aCAmJiBtYXBwZWRbMF0gPT09IGFycmF5c1swXSA/IGJhc2VJbnRlcnNlY3Rpb24obWFwcGVkLCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDIpKSA6IFtdO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGludGVyc2VjdGlvbldpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgICAgICB2YXIgY29tcGFyYXRvciA9IGxhc3QoYXJyYXlzKSwgbWFwcGVkID0gYXJyYXlNYXAoYXJyYXlzLCBjYXN0QXJyYXlMaWtlT2JqZWN0KTtcbiAgICAgICAgICBjb21wYXJhdG9yID0gdHlwZW9mIGNvbXBhcmF0b3IgPT0gXCJmdW5jdGlvblwiID8gY29tcGFyYXRvciA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgaWYgKGNvbXBhcmF0b3IpIHtcbiAgICAgICAgICAgIG1hcHBlZC5wb3AoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG1hcHBlZC5sZW5ndGggJiYgbWFwcGVkWzBdID09PSBhcnJheXNbMF0gPyBiYXNlSW50ZXJzZWN0aW9uKG1hcHBlZCwgdW5kZWZpbmVkMiwgY29tcGFyYXRvcikgOiBbXTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIGpvaW4oYXJyYXksIHNlcGFyYXRvcikge1xuICAgICAgICAgIHJldHVybiBhcnJheSA9PSBudWxsID8gXCJcIiA6IG5hdGl2ZUpvaW4uY2FsbChhcnJheSwgc2VwYXJhdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBsYXN0KGFycmF5KSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIHJldHVybiBsZW5ndGggPyBhcnJheVtsZW5ndGggLSAxXSA6IHVuZGVmaW5lZDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbGFzdEluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGluZGV4ID0gbGVuZ3RoO1xuICAgICAgICAgIGlmIChmcm9tSW5kZXggIT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIGluZGV4ID0gdG9JbnRlZ2VyKGZyb21JbmRleCk7XG4gICAgICAgICAgICBpbmRleCA9IGluZGV4IDwgMCA/IG5hdGl2ZU1heChsZW5ndGggKyBpbmRleCwgMCkgOiBuYXRpdmVNaW4oaW5kZXgsIGxlbmd0aCAtIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IHZhbHVlID8gc3RyaWN0TGFzdEluZGV4T2YoYXJyYXksIHZhbHVlLCBpbmRleCkgOiBiYXNlRmluZEluZGV4KGFycmF5LCBiYXNlSXNOYU4sIGluZGV4LCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBudGgoYXJyYXksIG4pIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXkgJiYgYXJyYXkubGVuZ3RoID8gYmFzZU50aChhcnJheSwgdG9JbnRlZ2VyKG4pKSA6IHVuZGVmaW5lZDI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHB1bGwgPSBiYXNlUmVzdChwdWxsQWxsKTtcbiAgICAgICAgZnVuY3Rpb24gcHVsbEFsbChhcnJheSwgdmFsdWVzMikge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggJiYgdmFsdWVzMiAmJiB2YWx1ZXMyLmxlbmd0aCA/IGJhc2VQdWxsQWxsKGFycmF5LCB2YWx1ZXMyKSA6IGFycmF5O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHB1bGxBbGxCeShhcnJheSwgdmFsdWVzMiwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCAmJiB2YWx1ZXMyICYmIHZhbHVlczIubGVuZ3RoID8gYmFzZVB1bGxBbGwoYXJyYXksIHZhbHVlczIsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgMikpIDogYXJyYXk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcHVsbEFsbFdpdGgoYXJyYXksIHZhbHVlczIsIGNvbXBhcmF0b3IpIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXkgJiYgYXJyYXkubGVuZ3RoICYmIHZhbHVlczIgJiYgdmFsdWVzMi5sZW5ndGggPyBiYXNlUHVsbEFsbChhcnJheSwgdmFsdWVzMiwgdW5kZWZpbmVkMiwgY29tcGFyYXRvcikgOiBhcnJheTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHVsbEF0ID0gZmxhdFJlc3QoZnVuY3Rpb24oYXJyYXksIGluZGV4ZXMpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsIHJlc3VsdDIgPSBiYXNlQXQoYXJyYXksIGluZGV4ZXMpO1xuICAgICAgICAgIGJhc2VQdWxsQXQoYXJyYXksIGFycmF5TWFwKGluZGV4ZXMsIGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gaXNJbmRleChpbmRleCwgbGVuZ3RoKSA/ICtpbmRleCA6IGluZGV4O1xuICAgICAgICAgIH0pLnNvcnQoY29tcGFyZUFzY2VuZGluZykpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gcmVtb3ZlKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IFtdO1xuICAgICAgICAgIGlmICghKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgaW5kZXhlcyA9IFtdLCBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgcHJlZGljYXRlID0gZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgICAgICAgICByZXN1bHQyLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgICBpbmRleGVzLnB1c2goaW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBiYXNlUHVsbEF0KGFycmF5LCBpbmRleGVzKTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiByZXZlcnNlKGFycmF5KSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ID09IG51bGwgPyBhcnJheSA6IG5hdGl2ZVJldmVyc2UuY2FsbChhcnJheSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVuZCAmJiB0eXBlb2YgZW5kICE9IFwibnVtYmVyXCIgJiYgaXNJdGVyYXRlZUNhbGwoYXJyYXksIHN0YXJ0LCBlbmQpKSB7XG4gICAgICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgICAgICBlbmQgPSBsZW5ndGg7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gc3RhcnQgPT0gbnVsbCA/IDAgOiB0b0ludGVnZXIoc3RhcnQpO1xuICAgICAgICAgICAgZW5kID0gZW5kID09PSB1bmRlZmluZWQyID8gbGVuZ3RoIDogdG9JbnRlZ2VyKGVuZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAyKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc29ydGVkSW5kZXhPZihhcnJheSwgdmFsdWUpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgaWYgKGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGluZGV4ID0gYmFzZVNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPCBsZW5ndGggJiYgZXEoYXJyYXlbaW5kZXhdLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc29ydGVkTGFzdEluZGV4KGFycmF5LCB2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzb3J0ZWRMYXN0SW5kZXhCeShhcnJheSwgdmFsdWUsIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXhCeShhcnJheSwgdmFsdWUsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgMiksIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNvcnRlZExhc3RJbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBpZiAobGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlLCB0cnVlKSAtIDE7XG4gICAgICAgICAgICBpZiAoZXEoYXJyYXlbaW5kZXhdLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc29ydGVkVW5pcShhcnJheSkge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlU29ydGVkVW5pcShhcnJheSkgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzb3J0ZWRVbmlxQnkoYXJyYXksIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlU29ydGVkVW5pcShhcnJheSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAyKSkgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0YWlsKGFycmF5KSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlU2xpY2UoYXJyYXksIDEsIGxlbmd0aCkgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0YWtlKGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgICAgIGlmICghKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbiA9IGd1YXJkIHx8IG4gPT09IHVuZGVmaW5lZDIgPyAxIDogdG9JbnRlZ2VyKG4pO1xuICAgICAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIDAsIG4gPCAwID8gMCA6IG4pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRha2VSaWdodChhcnJheSwgbiwgZ3VhcmQpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbiA9IGd1YXJkIHx8IG4gPT09IHVuZGVmaW5lZDIgPyAxIDogdG9JbnRlZ2VyKG4pO1xuICAgICAgICAgIG4gPSBsZW5ndGggLSBuO1xuICAgICAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIG4gPCAwID8gMCA6IG4sIGxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdGFrZVJpZ2h0V2hpbGUoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlV2hpbGUoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGZhbHNlLCB0cnVlKSA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRha2VXaGlsZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCA/IGJhc2VXaGlsZShhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSkgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdW5pb24gPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZVVuaXEoYmFzZUZsYXR0ZW4oYXJyYXlzLCAxLCBpc0FycmF5TGlrZU9iamVjdCwgdHJ1ZSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHVuaW9uQnkgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgICAgICB2YXIgaXRlcmF0ZWUyID0gbGFzdChhcnJheXMpO1xuICAgICAgICAgIGlmIChpc0FycmF5TGlrZU9iamVjdChpdGVyYXRlZTIpKSB7XG4gICAgICAgICAgICBpdGVyYXRlZTIgPSB1bmRlZmluZWQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYmFzZVVuaXEoYmFzZUZsYXR0ZW4oYXJyYXlzLCAxLCBpc0FycmF5TGlrZU9iamVjdCwgdHJ1ZSksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgMikpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHVuaW9uV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgICAgIHZhciBjb21wYXJhdG9yID0gbGFzdChhcnJheXMpO1xuICAgICAgICAgIGNvbXBhcmF0b3IgPSB0eXBlb2YgY29tcGFyYXRvciA9PSBcImZ1bmN0aW9uXCIgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICByZXR1cm4gYmFzZVVuaXEoYmFzZUZsYXR0ZW4oYXJyYXlzLCAxLCBpc0FycmF5TGlrZU9iamVjdCwgdHJ1ZSksIHVuZGVmaW5lZDIsIGNvbXBhcmF0b3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gdW5pcShhcnJheSkge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlVW5pcShhcnJheSkgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB1bmlxQnkoYXJyYXksIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlVW5pcShhcnJheSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAyKSkgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB1bmlxV2l0aChhcnJheSwgY29tcGFyYXRvcikge1xuICAgICAgICAgIGNvbXBhcmF0b3IgPSB0eXBlb2YgY29tcGFyYXRvciA9PSBcImZ1bmN0aW9uXCIgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICByZXR1cm4gYXJyYXkgJiYgYXJyYXkubGVuZ3RoID8gYmFzZVVuaXEoYXJyYXksIHVuZGVmaW5lZDIsIGNvbXBhcmF0b3IpIDogW107XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdW56aXAoYXJyYXkpIHtcbiAgICAgICAgICBpZiAoIShhcnJheSAmJiBhcnJheS5sZW5ndGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBsZW5ndGggPSAwO1xuICAgICAgICAgIGFycmF5ID0gYXJyYXlGaWx0ZXIoYXJyYXksIGZ1bmN0aW9uKGdyb3VwKSB7XG4gICAgICAgICAgICBpZiAoaXNBcnJheUxpa2VPYmplY3QoZ3JvdXApKSB7XG4gICAgICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChncm91cC5sZW5ndGgsIGxlbmd0aCk7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBiYXNlVGltZXMobGVuZ3RoLCBmdW5jdGlvbihpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIGFycmF5TWFwKGFycmF5LCBiYXNlUHJvcGVydHkoaW5kZXgpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB1bnppcFdpdGgoYXJyYXksIGl0ZXJhdGVlMikge1xuICAgICAgICAgIGlmICghKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSB1bnppcChhcnJheSk7XG4gICAgICAgICAgaWYgKGl0ZXJhdGVlMiA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFycmF5TWFwKHJlc3VsdDIsIGZ1bmN0aW9uKGdyb3VwKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwbHkoaXRlcmF0ZWUyLCB1bmRlZmluZWQyLCBncm91cCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHdpdGhvdXQgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheSwgdmFsdWVzMikge1xuICAgICAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdChhcnJheSkgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgdmFsdWVzMikgOiBbXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciB4b3IgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZVhvcihhcnJheUZpbHRlcihhcnJheXMsIGlzQXJyYXlMaWtlT2JqZWN0KSk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgeG9yQnkgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgICAgICB2YXIgaXRlcmF0ZWUyID0gbGFzdChhcnJheXMpO1xuICAgICAgICAgIGlmIChpc0FycmF5TGlrZU9iamVjdChpdGVyYXRlZTIpKSB7XG4gICAgICAgICAgICBpdGVyYXRlZTIgPSB1bmRlZmluZWQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYmFzZVhvcihhcnJheUZpbHRlcihhcnJheXMsIGlzQXJyYXlMaWtlT2JqZWN0KSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAyKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgeG9yV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgICAgIHZhciBjb21wYXJhdG9yID0gbGFzdChhcnJheXMpO1xuICAgICAgICAgIGNvbXBhcmF0b3IgPSB0eXBlb2YgY29tcGFyYXRvciA9PSBcImZ1bmN0aW9uXCIgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICByZXR1cm4gYmFzZVhvcihhcnJheUZpbHRlcihhcnJheXMsIGlzQXJyYXlMaWtlT2JqZWN0KSwgdW5kZWZpbmVkMiwgY29tcGFyYXRvcik7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgemlwID0gYmFzZVJlc3QodW56aXApO1xuICAgICAgICBmdW5jdGlvbiB6aXBPYmplY3QocHJvcHMsIHZhbHVlczIpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZVppcE9iamVjdChwcm9wcyB8fCBbXSwgdmFsdWVzMiB8fCBbXSwgYXNzaWduVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHppcE9iamVjdERlZXAocHJvcHMsIHZhbHVlczIpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZVppcE9iamVjdChwcm9wcyB8fCBbXSwgdmFsdWVzMiB8fCBbXSwgYmFzZVNldCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHppcFdpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXlzLmxlbmd0aCwgaXRlcmF0ZWUyID0gbGVuZ3RoID4gMSA/IGFycmF5c1tsZW5ndGggLSAxXSA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgaXRlcmF0ZWUyID0gdHlwZW9mIGl0ZXJhdGVlMiA9PSBcImZ1bmN0aW9uXCIgPyAoYXJyYXlzLnBvcCgpLCBpdGVyYXRlZTIpIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICByZXR1cm4gdW56aXBXaXRoKGFycmF5cywgaXRlcmF0ZWUyKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIGNoYWluKHZhbHVlKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBsb2Rhc2godmFsdWUpO1xuICAgICAgICAgIHJlc3VsdDIuX19jaGFpbl9fID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0YXAodmFsdWUsIGludGVyY2VwdG9yKSB7XG4gICAgICAgICAgaW50ZXJjZXB0b3IodmFsdWUpO1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0aHJ1KHZhbHVlLCBpbnRlcmNlcHRvcikge1xuICAgICAgICAgIHJldHVybiBpbnRlcmNlcHRvcih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHdyYXBwZXJBdCA9IGZsYXRSZXN0KGZ1bmN0aW9uKHBhdGhzKSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IHBhdGhzLmxlbmd0aCwgc3RhcnQgPSBsZW5ndGggPyBwYXRoc1swXSA6IDAsIHZhbHVlID0gdGhpcy5fX3dyYXBwZWRfXywgaW50ZXJjZXB0b3IgPSBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlQXQob2JqZWN0LCBwYXRocyk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAobGVuZ3RoID4gMSB8fCB0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCB8fCAhKHZhbHVlIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpIHx8ICFpc0luZGV4KHN0YXJ0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGhydShpbnRlcmNlcHRvcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhbHVlID0gdmFsdWUuc2xpY2Uoc3RhcnQsICtzdGFydCArIChsZW5ndGggPyAxIDogMCkpO1xuICAgICAgICAgIHZhbHVlLl9fYWN0aW9uc19fLnB1c2goe1xuICAgICAgICAgICAgXCJmdW5jXCI6IHRocnUsXG4gICAgICAgICAgICBcImFyZ3NcIjogW2ludGVyY2VwdG9yXSxcbiAgICAgICAgICAgIFwidGhpc0FyZ1wiOiB1bmRlZmluZWQyXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHZhbHVlLCB0aGlzLl9fY2hhaW5fXykudGhydShmdW5jdGlvbihhcnJheSkge1xuICAgICAgICAgICAgaWYgKGxlbmd0aCAmJiAhYXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGFycmF5LnB1c2godW5kZWZpbmVkMik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiB3cmFwcGVyQ2hhaW4oKSB7XG4gICAgICAgICAgcmV0dXJuIGNoYWluKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHdyYXBwZXJDb21taXQoKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHRoaXMudmFsdWUoKSwgdGhpcy5fX2NoYWluX18pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHdyYXBwZXJOZXh0KCkge1xuICAgICAgICAgIGlmICh0aGlzLl9fdmFsdWVzX18gPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIHRoaXMuX192YWx1ZXNfXyA9IHRvQXJyYXkodGhpcy52YWx1ZSgpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGRvbmUgPSB0aGlzLl9faW5kZXhfXyA+PSB0aGlzLl9fdmFsdWVzX18ubGVuZ3RoLCB2YWx1ZSA9IGRvbmUgPyB1bmRlZmluZWQyIDogdGhpcy5fX3ZhbHVlc19fW3RoaXMuX19pbmRleF9fKytdO1xuICAgICAgICAgIHJldHVybiB7IFwiZG9uZVwiOiBkb25lLCBcInZhbHVlXCI6IHZhbHVlIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gd3JhcHBlclRvSXRlcmF0b3IoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gd3JhcHBlclBsYW50KHZhbHVlKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIsIHBhcmVudDIgPSB0aGlzO1xuICAgICAgICAgIHdoaWxlIChwYXJlbnQyIGluc3RhbmNlb2YgYmFzZUxvZGFzaCkge1xuICAgICAgICAgICAgdmFyIGNsb25lMiA9IHdyYXBwZXJDbG9uZShwYXJlbnQyKTtcbiAgICAgICAgICAgIGNsb25lMi5fX2luZGV4X18gPSAwO1xuICAgICAgICAgICAgY2xvbmUyLl9fdmFsdWVzX18gPSB1bmRlZmluZWQyO1xuICAgICAgICAgICAgaWYgKHJlc3VsdDIpIHtcbiAgICAgICAgICAgICAgcHJldmlvdXMuX193cmFwcGVkX18gPSBjbG9uZTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXN1bHQyID0gY2xvbmUyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHByZXZpb3VzID0gY2xvbmUyO1xuICAgICAgICAgICAgcGFyZW50MiA9IHBhcmVudDIuX193cmFwcGVkX187XG4gICAgICAgICAgfVxuICAgICAgICAgIHByZXZpb3VzLl9fd3JhcHBlZF9fID0gdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gd3JhcHBlclJldmVyc2UoKSB7XG4gICAgICAgICAgdmFyIHZhbHVlID0gdGhpcy5fX3dyYXBwZWRfXztcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikge1xuICAgICAgICAgICAgdmFyIHdyYXBwZWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCkge1xuICAgICAgICAgICAgICB3cmFwcGVkID0gbmV3IExhenlXcmFwcGVyKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd3JhcHBlZCA9IHdyYXBwZWQucmV2ZXJzZSgpO1xuICAgICAgICAgICAgd3JhcHBlZC5fX2FjdGlvbnNfXy5wdXNoKHtcbiAgICAgICAgICAgICAgXCJmdW5jXCI6IHRocnUsXG4gICAgICAgICAgICAgIFwiYXJnc1wiOiBbcmV2ZXJzZV0sXG4gICAgICAgICAgICAgIFwidGhpc0FyZ1wiOiB1bmRlZmluZWQyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTG9kYXNoV3JhcHBlcih3cmFwcGVkLCB0aGlzLl9fY2hhaW5fXyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLnRocnUocmV2ZXJzZSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gd3JhcHBlclZhbHVlKCkge1xuICAgICAgICAgIHJldHVybiBiYXNlV3JhcHBlclZhbHVlKHRoaXMuX193cmFwcGVkX18sIHRoaXMuX19hY3Rpb25zX18pO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjb3VudEJ5ID0gY3JlYXRlQWdncmVnYXRvcihmdW5jdGlvbihyZXN1bHQyLCB2YWx1ZSwga2V5KSB7XG4gICAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocmVzdWx0Miwga2V5KSkge1xuICAgICAgICAgICAgKytyZXN1bHQyW2tleV07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJhc2VBc3NpZ25WYWx1ZShyZXN1bHQyLCBrZXksIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIGV2ZXJ5KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZ3VhcmQpIHtcbiAgICAgICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUV2ZXJ5IDogYmFzZUV2ZXJ5O1xuICAgICAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGd1YXJkKSkge1xuICAgICAgICAgICAgcHJlZGljYXRlID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZmlsdGVyKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICAgICAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RmlsdGVyIDogYmFzZUZpbHRlcjtcbiAgICAgICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZmluZCA9IGNyZWF0ZUZpbmQoZmluZEluZGV4KTtcbiAgICAgICAgdmFyIGZpbmRMYXN0ID0gY3JlYXRlRmluZChmaW5kTGFzdEluZGV4KTtcbiAgICAgICAgZnVuY3Rpb24gZmxhdE1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZUZsYXR0ZW4obWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlMiksIDEpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZsYXRNYXBEZWVwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHJldHVybiBiYXNlRmxhdHRlbihtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUyKSwgSU5GSU5JVFkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZsYXRNYXBEZXB0aChjb2xsZWN0aW9uLCBpdGVyYXRlZTIsIGRlcHRoKSB7XG4gICAgICAgICAgZGVwdGggPSBkZXB0aCA9PT0gdW5kZWZpbmVkMiA/IDEgOiB0b0ludGVnZXIoZGVwdGgpO1xuICAgICAgICAgIHJldHVybiBiYXNlRmxhdHRlbihtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUyKSwgZGVwdGgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZvckVhY2goY29sbGVjdGlvbiwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlFYWNoIDogYmFzZUVhY2g7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAzKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZm9yRWFjaFJpZ2h0KGNvbGxlY3Rpb24sIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RWFjaFJpZ2h0IDogYmFzZUVhY2hSaWdodDtcbiAgICAgICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDMpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZ3JvdXBCeSA9IGNyZWF0ZUFnZ3JlZ2F0b3IoZnVuY3Rpb24ocmVzdWx0MiwgdmFsdWUsIGtleSkge1xuICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlc3VsdDIsIGtleSkpIHtcbiAgICAgICAgICAgIHJlc3VsdDJba2V5XS5wdXNoKHZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdDIsIGtleSwgW3ZhbHVlXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gaW5jbHVkZXMoY29sbGVjdGlvbiwgdmFsdWUsIGZyb21JbmRleCwgZ3VhcmQpIHtcbiAgICAgICAgICBjb2xsZWN0aW9uID0gaXNBcnJheUxpa2UoY29sbGVjdGlvbikgPyBjb2xsZWN0aW9uIDogdmFsdWVzKGNvbGxlY3Rpb24pO1xuICAgICAgICAgIGZyb21JbmRleCA9IGZyb21JbmRleCAmJiAhZ3VhcmQgPyB0b0ludGVnZXIoZnJvbUluZGV4KSA6IDA7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoO1xuICAgICAgICAgIGlmIChmcm9tSW5kZXggPCAwKSB7XG4gICAgICAgICAgICBmcm9tSW5kZXggPSBuYXRpdmVNYXgobGVuZ3RoICsgZnJvbUluZGV4LCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGlzU3RyaW5nKGNvbGxlY3Rpb24pID8gZnJvbUluZGV4IDw9IGxlbmd0aCAmJiBjb2xsZWN0aW9uLmluZGV4T2YodmFsdWUsIGZyb21JbmRleCkgPiAtMSA6ICEhbGVuZ3RoICYmIGJhc2VJbmRleE9mKGNvbGxlY3Rpb24sIHZhbHVlLCBmcm9tSW5kZXgpID4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGludm9rZU1hcCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGNvbGxlY3Rpb24sIHBhdGgsIGFyZ3MpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgaXNGdW5jID0gdHlwZW9mIHBhdGggPT0gXCJmdW5jdGlvblwiLCByZXN1bHQyID0gaXNBcnJheUxpa2UoY29sbGVjdGlvbikgPyBBcnJheTIoY29sbGVjdGlvbi5sZW5ndGgpIDogW107XG4gICAgICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIHJlc3VsdDJbKytpbmRleF0gPSBpc0Z1bmMgPyBhcHBseShwYXRoLCB2YWx1ZSwgYXJncykgOiBiYXNlSW52b2tlKHZhbHVlLCBwYXRoLCBhcmdzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBrZXlCeSA9IGNyZWF0ZUFnZ3JlZ2F0b3IoZnVuY3Rpb24ocmVzdWx0MiwgdmFsdWUsIGtleSkge1xuICAgICAgICAgIGJhc2VBc3NpZ25WYWx1ZShyZXN1bHQyLCBrZXksIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIG1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheU1hcCA6IGJhc2VNYXA7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAzKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gb3JkZXJCeShjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycywgZ3VhcmQpIHtcbiAgICAgICAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghaXNBcnJheShpdGVyYXRlZXMpKSB7XG4gICAgICAgICAgICBpdGVyYXRlZXMgPSBpdGVyYXRlZXMgPT0gbnVsbCA/IFtdIDogW2l0ZXJhdGVlc107XG4gICAgICAgICAgfVxuICAgICAgICAgIG9yZGVycyA9IGd1YXJkID8gdW5kZWZpbmVkMiA6IG9yZGVycztcbiAgICAgICAgICBpZiAoIWlzQXJyYXkob3JkZXJzKSkge1xuICAgICAgICAgICAgb3JkZXJzID0gb3JkZXJzID09IG51bGwgPyBbXSA6IFtvcmRlcnNdO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYmFzZU9yZGVyQnkoY29sbGVjdGlvbiwgaXRlcmF0ZWVzLCBvcmRlcnMpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwYXJ0aXRpb24gPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdDIsIHZhbHVlLCBrZXkpIHtcbiAgICAgICAgICByZXN1bHQyW2tleSA/IDAgOiAxXS5wdXNoKHZhbHVlKTtcbiAgICAgICAgfSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIFtbXSwgW11dO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gcmVkdWNlKGNvbGxlY3Rpb24sIGl0ZXJhdGVlMiwgYWNjdW11bGF0b3IpIHtcbiAgICAgICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheVJlZHVjZSA6IGJhc2VSZWR1Y2UsIGluaXRBY2N1bSA9IGFyZ3VtZW50cy5sZW5ndGggPCAzO1xuICAgICAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgNCksIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0sIGJhc2VFYWNoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiByZWR1Y2VSaWdodChjb2xsZWN0aW9uLCBpdGVyYXRlZTIsIGFjY3VtdWxhdG9yKSB7XG4gICAgICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlSZWR1Y2VSaWdodCA6IGJhc2VSZWR1Y2UsIGluaXRBY2N1bSA9IGFyZ3VtZW50cy5sZW5ndGggPCAzO1xuICAgICAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgNCksIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0sIGJhc2VFYWNoUmlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdChjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcbiAgICAgICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUZpbHRlciA6IGJhc2VGaWx0ZXI7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgbmVnYXRlKGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMykpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzYW1wbGUoY29sbGVjdGlvbikge1xuICAgICAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5U2FtcGxlIDogYmFzZVNhbXBsZTtcbiAgICAgICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzYW1wbGVTaXplKGNvbGxlY3Rpb24sIG4sIGd1YXJkKSB7XG4gICAgICAgICAgaWYgKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgbiwgZ3VhcmQpIDogbiA9PT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgbiA9IDE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG4gPSB0b0ludGVnZXIobik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5U2FtcGxlU2l6ZSA6IGJhc2VTYW1wbGVTaXplO1xuICAgICAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIG4pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNodWZmbGUoY29sbGVjdGlvbikge1xuICAgICAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5U2h1ZmZsZSA6IGJhc2VTaHVmZmxlO1xuICAgICAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNpemUoY29sbGVjdGlvbikge1xuICAgICAgICAgIGlmIChjb2xsZWN0aW9uID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNBcnJheUxpa2UoY29sbGVjdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybiBpc1N0cmluZyhjb2xsZWN0aW9uKSA/IHN0cmluZ1NpemUoY29sbGVjdGlvbikgOiBjb2xsZWN0aW9uLmxlbmd0aDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHRhZyA9IGdldFRhZyhjb2xsZWN0aW9uKTtcbiAgICAgICAgICBpZiAodGFnID09IG1hcFRhZyB8fCB0YWcgPT0gc2V0VGFnKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5zaXplO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYmFzZUtleXMoY29sbGVjdGlvbikubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNvbWUoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBndWFyZCkge1xuICAgICAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5U29tZSA6IGJhc2VTb21lO1xuICAgICAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGd1YXJkKSkge1xuICAgICAgICAgICAgcHJlZGljYXRlID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNvcnRCeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlcykge1xuICAgICAgICAgIGlmIChjb2xsZWN0aW9uID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGl0ZXJhdGVlcy5sZW5ndGg7XG4gICAgICAgICAgaWYgKGxlbmd0aCA+IDEgJiYgaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgaXRlcmF0ZWVzWzBdLCBpdGVyYXRlZXNbMV0pKSB7XG4gICAgICAgICAgICBpdGVyYXRlZXMgPSBbXTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGxlbmd0aCA+IDIgJiYgaXNJdGVyYXRlZUNhbGwoaXRlcmF0ZWVzWzBdLCBpdGVyYXRlZXNbMV0sIGl0ZXJhdGVlc1syXSkpIHtcbiAgICAgICAgICAgIGl0ZXJhdGVlcyA9IFtpdGVyYXRlZXNbMF1dO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYmFzZU9yZGVyQnkoY29sbGVjdGlvbiwgYmFzZUZsYXR0ZW4oaXRlcmF0ZWVzLCAxKSwgW10pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIG5vdyA9IGN0eE5vdyB8fCBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcm9vdC5EYXRlLm5vdygpO1xuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBhZnRlcihuLCBmdW5jKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcjIoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoLS1uIDwgMSkge1xuICAgICAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYXJ5KGZ1bmMsIG4sIGd1YXJkKSB7XG4gICAgICAgICAgbiA9IGd1YXJkID8gdW5kZWZpbmVkMiA6IG47XG4gICAgICAgICAgbiA9IGZ1bmMgJiYgbiA9PSBudWxsID8gZnVuYy5sZW5ndGggOiBuO1xuICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfQVJZX0ZMQUcsIHVuZGVmaW5lZDIsIHVuZGVmaW5lZDIsIHVuZGVmaW5lZDIsIHVuZGVmaW5lZDIsIG4pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJlZm9yZShuLCBmdW5jKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDI7XG4gICAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcjIoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoLS1uID4gMCkge1xuICAgICAgICAgICAgICByZXN1bHQyID0gZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG4gPD0gMSkge1xuICAgICAgICAgICAgICBmdW5jID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGJpbmQgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCB0aGlzQXJnLCBwYXJ0aWFscykge1xuICAgICAgICAgIHZhciBiaXRtYXNrID0gV1JBUF9CSU5EX0ZMQUc7XG4gICAgICAgICAgaWYgKHBhcnRpYWxzLmxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGhvbGRlcnMgPSByZXBsYWNlSG9sZGVycyhwYXJ0aWFscywgZ2V0SG9sZGVyKGJpbmQpKTtcbiAgICAgICAgICAgIGJpdG1hc2sgfD0gV1JBUF9QQVJUSUFMX0ZMQUc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBiaW5kS2V5ID0gYmFzZVJlc3QoZnVuY3Rpb24ob2JqZWN0LCBrZXksIHBhcnRpYWxzKSB7XG4gICAgICAgICAgdmFyIGJpdG1hc2sgPSBXUkFQX0JJTkRfRkxBRyB8IFdSQVBfQklORF9LRVlfRkxBRztcbiAgICAgICAgICBpZiAocGFydGlhbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBnZXRIb2xkZXIoYmluZEtleSkpO1xuICAgICAgICAgICAgYml0bWFzayB8PSBXUkFQX1BBUlRJQUxfRkxBRztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoa2V5LCBiaXRtYXNrLCBvYmplY3QsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIGN1cnJ5KGZ1bmMsIGFyaXR5LCBndWFyZCkge1xuICAgICAgICAgIGFyaXR5ID0gZ3VhcmQgPyB1bmRlZmluZWQyIDogYXJpdHk7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfQ1VSUllfRkxBRywgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgYXJpdHkpO1xuICAgICAgICAgIHJlc3VsdDIucGxhY2Vob2xkZXIgPSBjdXJyeS5wbGFjZWhvbGRlcjtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjdXJyeVJpZ2h0KGZ1bmMsIGFyaXR5LCBndWFyZCkge1xuICAgICAgICAgIGFyaXR5ID0gZ3VhcmQgPyB1bmRlZmluZWQyIDogYXJpdHk7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfQ1VSUllfUklHSFRfRkxBRywgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgYXJpdHkpO1xuICAgICAgICAgIHJlc3VsdDIucGxhY2Vob2xkZXIgPSBjdXJyeVJpZ2h0LnBsYWNlaG9sZGVyO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgICAgICAgICB2YXIgbGFzdEFyZ3MsIGxhc3RUaGlzLCBtYXhXYWl0LCByZXN1bHQyLCB0aW1lcklkLCBsYXN0Q2FsbFRpbWUsIGxhc3RJbnZva2VUaW1lID0gMCwgbGVhZGluZyA9IGZhbHNlLCBtYXhpbmcgPSBmYWxzZSwgdHJhaWxpbmcgPSB0cnVlO1xuICAgICAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IyKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdhaXQgPSB0b051bWJlcih3YWl0KSB8fCAwO1xuICAgICAgICAgIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgICAgICAgICAgbGVhZGluZyA9ICEhb3B0aW9ucy5sZWFkaW5nO1xuICAgICAgICAgICAgbWF4aW5nID0gXCJtYXhXYWl0XCIgaW4gb3B0aW9ucztcbiAgICAgICAgICAgIG1heFdhaXQgPSBtYXhpbmcgPyBuYXRpdmVNYXgodG9OdW1iZXIob3B0aW9ucy5tYXhXYWl0KSB8fCAwLCB3YWl0KSA6IG1heFdhaXQ7XG4gICAgICAgICAgICB0cmFpbGluZyA9IFwidHJhaWxpbmdcIiBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZ1bmN0aW9uIGludm9rZUZ1bmModGltZSkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBsYXN0QXJncywgdGhpc0FyZyA9IGxhc3RUaGlzO1xuICAgICAgICAgICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgICAgICAgICByZXN1bHQyID0gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XG4gICAgICAgICAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgICAgICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgICAgICAgICAgcmV0dXJuIGxlYWRpbmcgPyBpbnZva2VGdW5jKHRpbWUpIDogcmVzdWx0MjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gcmVtYWluaW5nV2FpdCh0aW1lKSB7XG4gICAgICAgICAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLCB0aW1lU2luY2VMYXN0SW52b2tlID0gdGltZSAtIGxhc3RJbnZva2VUaW1lLCB0aW1lV2FpdGluZyA9IHdhaXQgLSB0aW1lU2luY2VMYXN0Q2FsbDtcbiAgICAgICAgICAgIHJldHVybiBtYXhpbmcgPyBuYXRpdmVNaW4odGltZVdhaXRpbmcsIG1heFdhaXQgLSB0aW1lU2luY2VMYXN0SW52b2tlKSA6IHRpbWVXYWl0aW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgICAgICAgICAgdmFyIHRpbWVTaW5jZUxhc3RDYWxsID0gdGltZSAtIGxhc3RDYWxsVGltZSwgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZTtcbiAgICAgICAgICAgIHJldHVybiBsYXN0Q2FsbFRpbWUgPT09IHVuZGVmaW5lZDIgfHwgdGltZVNpbmNlTGFzdENhbGwgPj0gd2FpdCB8fCB0aW1lU2luY2VMYXN0Q2FsbCA8IDAgfHwgbWF4aW5nICYmIHRpbWVTaW5jZUxhc3RJbnZva2UgPj0gbWF4V2FpdDtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgICAgICAgICAgdmFyIHRpbWUgPSBub3coKTtcbiAgICAgICAgICAgIGlmIChzaG91bGRJbnZva2UodGltZSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgcmVtYWluaW5nV2FpdCh0aW1lKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgICAgICAgICB0aW1lcklkID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICAgIGlmICh0cmFpbGluZyAmJiBsYXN0QXJncykge1xuICAgICAgICAgICAgICByZXR1cm4gaW52b2tlRnVuYyh0aW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxhc3RBcmdzID0gbGFzdFRoaXMgPSB1bmRlZmluZWQyO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZ1bmN0aW9uIGNhbmNlbCgpIHtcbiAgICAgICAgICAgIGlmICh0aW1lcklkICE9PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcklkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxhc3RJbnZva2VUaW1lID0gMDtcbiAgICAgICAgICAgIGxhc3RBcmdzID0gbGFzdENhbGxUaW1lID0gbGFzdFRoaXMgPSB0aW1lcklkID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gZmx1c2goKSB7XG4gICAgICAgICAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkMiA/IHJlc3VsdDIgOiB0cmFpbGluZ0VkZ2Uobm93KCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmdW5jdGlvbiBkZWJvdW5jZWQoKSB7XG4gICAgICAgICAgICB2YXIgdGltZSA9IG5vdygpLCBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuICAgICAgICAgICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgICAgICBsYXN0VGhpcyA9IHRoaXM7XG4gICAgICAgICAgICBsYXN0Q2FsbFRpbWUgPSB0aW1lO1xuICAgICAgICAgICAgaWYgKGlzSW52b2tpbmcpIHtcbiAgICAgICAgICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAobWF4aW5nKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgICAgICAgICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWJvdW5jZWQuY2FuY2VsID0gY2FuY2VsO1xuICAgICAgICAgIGRlYm91bmNlZC5mbHVzaCA9IGZsdXNoO1xuICAgICAgICAgIHJldHVybiBkZWJvdW5jZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRlZmVyID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgYXJncykge1xuICAgICAgICAgIHJldHVybiBiYXNlRGVsYXkoZnVuYywgMSwgYXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZGVsYXkgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCB3YWl0LCBhcmdzKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VEZWxheShmdW5jLCB0b051bWJlcih3YWl0KSB8fCAwLCBhcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIGZsaXAoZnVuYykge1xuICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfRkxJUF9GTEFHKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtZW1vaXplKGZ1bmMsIHJlc29sdmVyKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9IFwiZnVuY3Rpb25cIiB8fCByZXNvbHZlciAhPSBudWxsICYmIHR5cGVvZiByZXNvbHZlciAhPSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IyKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBtZW1vaXplZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsIGtleSA9IHJlc29sdmVyID8gcmVzb2x2ZXIuYXBwbHkodGhpcywgYXJncykgOiBhcmdzWzBdLCBjYWNoZSA9IG1lbW9pemVkLmNhY2hlO1xuICAgICAgICAgICAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjYWNoZS5nZXQoa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciByZXN1bHQyID0gZnVuYy5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgICAgIG1lbW9pemVkLmNhY2hlID0gY2FjaGUuc2V0KGtleSwgcmVzdWx0MikgfHwgY2FjaGU7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgICB9O1xuICAgICAgICAgIG1lbW9pemVkLmNhY2hlID0gbmV3IChtZW1vaXplLkNhY2hlIHx8IE1hcENhY2hlKSgpO1xuICAgICAgICAgIHJldHVybiBtZW1vaXplZDtcbiAgICAgICAgfVxuICAgICAgICBtZW1vaXplLkNhY2hlID0gTWFwQ2FjaGU7XG4gICAgICAgIGZ1bmN0aW9uIG5lZ2F0ZShwcmVkaWNhdGUpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIHByZWRpY2F0ZSAhPSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IyKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICAgICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFwcmVkaWNhdGUuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIHJldHVybiAhcHJlZGljYXRlLmNhbGwodGhpcywgYXJnc1swXSk7XG4gICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICByZXR1cm4gIXByZWRpY2F0ZS5jYWxsKHRoaXMsIGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFwcmVkaWNhdGUuY2FsbCh0aGlzLCBhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAhcHJlZGljYXRlLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gb25jZShmdW5jKSB7XG4gICAgICAgICAgcmV0dXJuIGJlZm9yZSgyLCBmdW5jKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb3ZlckFyZ3MgPSBjYXN0UmVzdChmdW5jdGlvbihmdW5jLCB0cmFuc2Zvcm1zKSB7XG4gICAgICAgICAgdHJhbnNmb3JtcyA9IHRyYW5zZm9ybXMubGVuZ3RoID09IDEgJiYgaXNBcnJheSh0cmFuc2Zvcm1zWzBdKSA/IGFycmF5TWFwKHRyYW5zZm9ybXNbMF0sIGJhc2VVbmFyeShnZXRJdGVyYXRlZSgpKSkgOiBhcnJheU1hcChiYXNlRmxhdHRlbih0cmFuc2Zvcm1zLCAxKSwgYmFzZVVuYXJ5KGdldEl0ZXJhdGVlKCkpKTtcbiAgICAgICAgICB2YXIgZnVuY3NMZW5ndGggPSB0cmFuc2Zvcm1zLmxlbmd0aDtcbiAgICAgICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICAgICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IG5hdGl2ZU1pbihhcmdzLmxlbmd0aCwgZnVuY3NMZW5ndGgpO1xuICAgICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgYXJnc1tpbmRleF0gPSB0cmFuc2Zvcm1zW2luZGV4XS5jYWxsKHRoaXMsIGFyZ3NbaW5kZXhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBhcmdzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBwYXJ0aWFsID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgcGFydGlhbHMpIHtcbiAgICAgICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBnZXRIb2xkZXIocGFydGlhbCkpO1xuICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfUEFSVElBTF9GTEFHLCB1bmRlZmluZWQyLCBwYXJ0aWFscywgaG9sZGVycyk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgcGFydGlhbFJpZ2h0ID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgcGFydGlhbHMpIHtcbiAgICAgICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBnZXRIb2xkZXIocGFydGlhbFJpZ2h0KSk7XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9QQVJUSUFMX1JJR0hUX0ZMQUcsIHVuZGVmaW5lZDIsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciByZWFyZyA9IGZsYXRSZXN0KGZ1bmN0aW9uKGZ1bmMsIGluZGV4ZXMpIHtcbiAgICAgICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX1JFQVJHX0ZMQUcsIHVuZGVmaW5lZDIsIHVuZGVmaW5lZDIsIHVuZGVmaW5lZDIsIGluZGV4ZXMpO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gcmVzdChmdW5jLCBzdGFydCkge1xuICAgICAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IyKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0YXJ0ID0gc3RhcnQgPT09IHVuZGVmaW5lZDIgPyBzdGFydCA6IHRvSW50ZWdlcihzdGFydCk7XG4gICAgICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmMsIHN0YXJ0KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzcHJlYWQoZnVuYywgc3RhcnQpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yMihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdGFydCA9IHN0YXJ0ID09IG51bGwgPyAwIDogbmF0aXZlTWF4KHRvSW50ZWdlcihzdGFydCksIDApO1xuICAgICAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgICAgICB2YXIgYXJyYXkgPSBhcmdzW3N0YXJ0XSwgb3RoZXJBcmdzID0gY2FzdFNsaWNlKGFyZ3MsIDAsIHN0YXJ0KTtcbiAgICAgICAgICAgIGlmIChhcnJheSkge1xuICAgICAgICAgICAgICBhcnJheVB1c2gob3RoZXJBcmdzLCBhcnJheSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdGhpcywgb3RoZXJBcmdzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0aHJvdHRsZShmdW5jLCB3YWl0LCBvcHRpb25zKSB7XG4gICAgICAgICAgdmFyIGxlYWRpbmcgPSB0cnVlLCB0cmFpbGluZyA9IHRydWU7XG4gICAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcjIoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgICAgICBsZWFkaW5nID0gXCJsZWFkaW5nXCIgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy5sZWFkaW5nIDogbGVhZGluZztcbiAgICAgICAgICAgIHRyYWlsaW5nID0gXCJ0cmFpbGluZ1wiIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGRlYm91bmNlKGZ1bmMsIHdhaXQsIHtcbiAgICAgICAgICAgIFwibGVhZGluZ1wiOiBsZWFkaW5nLFxuICAgICAgICAgICAgXCJtYXhXYWl0XCI6IHdhaXQsXG4gICAgICAgICAgICBcInRyYWlsaW5nXCI6IHRyYWlsaW5nXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdW5hcnkoZnVuYykge1xuICAgICAgICAgIHJldHVybiBhcnkoZnVuYywgMSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gd3JhcCh2YWx1ZSwgd3JhcHBlcikge1xuICAgICAgICAgIHJldHVybiBwYXJ0aWFsKGNhc3RGdW5jdGlvbih3cmFwcGVyKSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNhc3RBcnJheSgpIHtcbiAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHZhbHVlID0gYXJndW1lbnRzWzBdO1xuICAgICAgICAgIHJldHVybiBpc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjbG9uZSh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX1NZTUJPTFNfRkxBRyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2xvbmVXaXRoKHZhbHVlLCBjdXN0b21pemVyKSB7XG4gICAgICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09IFwiZnVuY3Rpb25cIiA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQyO1xuICAgICAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX1NZTUJPTFNfRkxBRywgY3VzdG9taXplcik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2xvbmVEZWVwKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfREVFUF9GTEFHIHwgQ0xPTkVfU1lNQk9MU19GTEFHKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjbG9uZURlZXBXaXRoKHZhbHVlLCBjdXN0b21pemVyKSB7XG4gICAgICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09IFwiZnVuY3Rpb25cIiA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQyO1xuICAgICAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX0RFRVBfRkxBRyB8IENMT05FX1NZTUJPTFNfRkxBRywgY3VzdG9taXplcik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY29uZm9ybXNUbyhvYmplY3QsIHNvdXJjZSkge1xuICAgICAgICAgIHJldHVybiBzb3VyY2UgPT0gbnVsbCB8fCBiYXNlQ29uZm9ybXNUbyhvYmplY3QsIHNvdXJjZSwga2V5cyhzb3VyY2UpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBlcSh2YWx1ZSwgb3RoZXIpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IG90aGVyIHx8IHZhbHVlICE9PSB2YWx1ZSAmJiBvdGhlciAhPT0gb3RoZXI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGd0ID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihiYXNlR3QpO1xuICAgICAgICB2YXIgZ3RlID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihmdW5jdGlvbih2YWx1ZSwgb3RoZXIpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgPj0gb3RoZXI7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaXNBcmd1bWVudHMgPSBiYXNlSXNBcmd1bWVudHMoLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiBhcmd1bWVudHM7XG4gICAgICAgIH0oKSkgPyBiYXNlSXNBcmd1bWVudHMgOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIFwiY2FsbGVlXCIpICYmICFwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHZhbHVlLCBcImNhbGxlZVwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGlzQXJyYXkgPSBBcnJheTIuaXNBcnJheTtcbiAgICAgICAgdmFyIGlzQXJyYXlCdWZmZXIgPSBub2RlSXNBcnJheUJ1ZmZlciA/IGJhc2VVbmFyeShub2RlSXNBcnJheUJ1ZmZlcikgOiBiYXNlSXNBcnJheUJ1ZmZlcjtcbiAgICAgICAgZnVuY3Rpb24gaXNBcnJheUxpa2UodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICFpc0Z1bmN0aW9uKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc0FycmF5TGlrZU9iamVjdCh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGlzQXJyYXlMaWtlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc0Jvb2xlYW4odmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IGZhbHNlIHx8IGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYm9vbFRhZztcbiAgICAgICAgfVxuICAgICAgICB2YXIgaXNCdWZmZXIgPSBuYXRpdmVJc0J1ZmZlciB8fCBzdHViRmFsc2U7XG4gICAgICAgIHZhciBpc0RhdGUgPSBub2RlSXNEYXRlID8gYmFzZVVuYXJ5KG5vZGVJc0RhdGUpIDogYmFzZUlzRGF0ZTtcbiAgICAgICAgZnVuY3Rpb24gaXNFbGVtZW50KHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgdmFsdWUubm9kZVR5cGUgPT09IDEgJiYgIWlzUGxhaW5PYmplY3QodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0FycmF5TGlrZSh2YWx1ZSkgJiYgKGlzQXJyYXkodmFsdWUpIHx8IHR5cGVvZiB2YWx1ZSA9PSBcInN0cmluZ1wiIHx8IHR5cGVvZiB2YWx1ZS5zcGxpY2UgPT0gXCJmdW5jdGlvblwiIHx8IGlzQnVmZmVyKHZhbHVlKSB8fCBpc1R5cGVkQXJyYXkodmFsdWUpIHx8IGlzQXJndW1lbnRzKHZhbHVlKSkpIHtcbiAgICAgICAgICAgIHJldHVybiAhdmFsdWUubGVuZ3RoO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKTtcbiAgICAgICAgICBpZiAodGFnID09IG1hcFRhZyB8fCB0YWcgPT0gc2V0VGFnKSB7XG4gICAgICAgICAgICByZXR1cm4gIXZhbHVlLnNpemU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc1Byb3RvdHlwZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAhYmFzZUtleXModmFsdWUpLmxlbmd0aDtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwga2V5KSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzRXF1YWwodmFsdWUsIG90aGVyKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VJc0VxdWFsKHZhbHVlLCBvdGhlcik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNFcXVhbFdpdGgodmFsdWUsIG90aGVyLCBjdXN0b21pemVyKSB7XG4gICAgICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09IFwiZnVuY3Rpb25cIiA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQyO1xuICAgICAgICAgIHZhciByZXN1bHQyID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIodmFsdWUsIG90aGVyKSA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDIgPT09IHVuZGVmaW5lZDIgPyBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIsIHVuZGVmaW5lZDIsIGN1c3RvbWl6ZXIpIDogISFyZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzRXJyb3IodmFsdWUpIHtcbiAgICAgICAgICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xuICAgICAgICAgIHJldHVybiB0YWcgPT0gZXJyb3JUYWcgfHwgdGFnID09IGRvbUV4Y1RhZyB8fCB0eXBlb2YgdmFsdWUubWVzc2FnZSA9PSBcInN0cmluZ1wiICYmIHR5cGVvZiB2YWx1ZS5uYW1lID09IFwic3RyaW5nXCIgJiYgIWlzUGxhaW5PYmplY3QodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzRmluaXRlMih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gXCJudW1iZXJcIiAmJiBuYXRpdmVJc0Zpbml0ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciB0YWcgPSBiYXNlR2V0VGFnKHZhbHVlKTtcbiAgICAgICAgICByZXR1cm4gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZyB8fCB0YWcgPT0gYXN5bmNUYWcgfHwgdGFnID09IHByb3h5VGFnO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzSW50ZWdlcih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gXCJudW1iZXJcIiAmJiB2YWx1ZSA9PSB0b0ludGVnZXIodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSBcIm51bWJlclwiICYmIHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICAgICAgICAgIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsICYmICh0eXBlID09IFwib2JqZWN0XCIgfHwgdHlwZSA9PSBcImZ1bmN0aW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PSBcIm9iamVjdFwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpc01hcCA9IG5vZGVJc01hcCA/IGJhc2VVbmFyeShub2RlSXNNYXApIDogYmFzZUlzTWFwO1xuICAgICAgICBmdW5jdGlvbiBpc01hdGNoKG9iamVjdCwgc291cmNlKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PT0gc291cmNlIHx8IGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBnZXRNYXRjaERhdGEoc291cmNlKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNNYXRjaFdpdGgob2JqZWN0LCBzb3VyY2UsIGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gXCJmdW5jdGlvblwiID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgcmV0dXJuIGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBnZXRNYXRjaERhdGEoc291cmNlKSwgY3VzdG9taXplcik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNOYU4yKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzTnVtYmVyKHZhbHVlKSAmJiB2YWx1ZSAhPSArdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNOYXRpdmUodmFsdWUpIHtcbiAgICAgICAgICBpZiAoaXNNYXNrYWJsZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcjIoQ09SRV9FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNOdWxsKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzTmlsKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID09IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNOdW1iZXIodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09IFwibnVtYmVyXCIgfHwgaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBudW1iZXJUYWc7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICAgICAgICAgIGlmICghaXNPYmplY3RMaWtlKHZhbHVlKSB8fCBiYXNlR2V0VGFnKHZhbHVlKSAhPSBvYmplY3RUYWcpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHByb3RvID0gZ2V0UHJvdG90eXBlKHZhbHVlKTtcbiAgICAgICAgICBpZiAocHJvdG8gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgQ3RvciA9IGhhc093blByb3BlcnR5LmNhbGwocHJvdG8sIFwiY29uc3RydWN0b3JcIikgJiYgcHJvdG8uY29uc3RydWN0b3I7XG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiBDdG9yID09IFwiZnVuY3Rpb25cIiAmJiBDdG9yIGluc3RhbmNlb2YgQ3RvciAmJiBmdW5jVG9TdHJpbmcuY2FsbChDdG9yKSA9PSBvYmplY3RDdG9yU3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpc1JlZ0V4cCA9IG5vZGVJc1JlZ0V4cCA/IGJhc2VVbmFyeShub2RlSXNSZWdFeHApIDogYmFzZUlzUmVnRXhwO1xuICAgICAgICBmdW5jdGlvbiBpc1NhZmVJbnRlZ2VyKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzSW50ZWdlcih2YWx1ZSkgJiYgdmFsdWUgPj0gLU1BWF9TQUZFX0lOVEVHRVIgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaXNTZXQgPSBub2RlSXNTZXQgPyBiYXNlVW5hcnkobm9kZUlzU2V0KSA6IGJhc2VJc1NldDtcbiAgICAgICAgZnVuY3Rpb24gaXNTdHJpbmcodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIgfHwgIWlzQXJyYXkodmFsdWUpICYmIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gc3RyaW5nVGFnO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSBcInN5bWJvbFwiIHx8IGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gc3ltYm9sVGFnO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpc1R5cGVkQXJyYXkgPSBub2RlSXNUeXBlZEFycmF5ID8gYmFzZVVuYXJ5KG5vZGVJc1R5cGVkQXJyYXkpIDogYmFzZUlzVHlwZWRBcnJheTtcbiAgICAgICAgZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNXZWFrTWFwKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgZ2V0VGFnKHZhbHVlKSA9PSB3ZWFrTWFwVGFnO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzV2Vha1NldCh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHdlYWtTZXRUYWc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGx0ID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihiYXNlTHQpO1xuICAgICAgICB2YXIgbHRlID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihmdW5jdGlvbih2YWx1ZSwgb3RoZXIpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgPD0gb3RoZXI7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiB0b0FycmF5KHZhbHVlKSB7XG4gICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNBcnJheUxpa2UodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNTdHJpbmcodmFsdWUpID8gc3RyaW5nVG9BcnJheSh2YWx1ZSkgOiBjb3B5QXJyYXkodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3ltSXRlcmF0b3IgJiYgdmFsdWVbc3ltSXRlcmF0b3JdKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JUb0FycmF5KHZhbHVlW3N5bUl0ZXJhdG9yXSgpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHRhZyA9IGdldFRhZyh2YWx1ZSksIGZ1bmMgPSB0YWcgPT0gbWFwVGFnID8gbWFwVG9BcnJheSA6IHRhZyA9PSBzZXRUYWcgPyBzZXRUb0FycmF5IDogdmFsdWVzO1xuICAgICAgICAgIHJldHVybiBmdW5jKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0b0Zpbml0ZSh2YWx1ZSkge1xuICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFsdWUgPSB0b051bWJlcih2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlID09PSBJTkZJTklUWSB8fCB2YWx1ZSA9PT0gLUlORklOSVRZKSB7XG4gICAgICAgICAgICB2YXIgc2lnbiA9IHZhbHVlIDwgMCA/IC0xIDogMTtcbiAgICAgICAgICAgIHJldHVybiBzaWduICogTUFYX0lOVEVHRVI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgPyB2YWx1ZSA6IDA7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdG9JbnRlZ2VyKHZhbHVlKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSB0b0Zpbml0ZSh2YWx1ZSksIHJlbWFpbmRlciA9IHJlc3VsdDIgJSAxO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyID09PSByZXN1bHQyID8gcmVtYWluZGVyID8gcmVzdWx0MiAtIHJlbWFpbmRlciA6IHJlc3VsdDIgOiAwO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRvTGVuZ3RoKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID8gYmFzZUNsYW1wKHRvSW50ZWdlcih2YWx1ZSksIDAsIE1BWF9BUlJBWV9MRU5HVEgpIDogMDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0b051bWJlcih2YWx1ZSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gTkFOO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICB2YXIgb3RoZXIgPSB0eXBlb2YgdmFsdWUudmFsdWVPZiA9PSBcImZ1bmN0aW9uXCIgPyB2YWx1ZS52YWx1ZU9mKCkgOiB2YWx1ZTtcbiAgICAgICAgICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gb3RoZXIgKyBcIlwiIDogb3RoZXI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSAwID8gdmFsdWUgOiArdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhbHVlID0gYmFzZVRyaW0odmFsdWUpO1xuICAgICAgICAgIHZhciBpc0JpbmFyeSA9IHJlSXNCaW5hcnkudGVzdCh2YWx1ZSk7XG4gICAgICAgICAgcmV0dXJuIGlzQmluYXJ5IHx8IHJlSXNPY3RhbC50ZXN0KHZhbHVlKSA/IGZyZWVQYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgaXNCaW5hcnkgPyAyIDogOCkgOiByZUlzQmFkSGV4LnRlc3QodmFsdWUpID8gTkFOIDogK3ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRvUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gY29weU9iamVjdCh2YWx1ZSwga2V5c0luKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdG9TYWZlSW50ZWdlcih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSA/IGJhc2VDbGFtcCh0b0ludGVnZXIodmFsdWUpLCAtTUFYX1NBRkVfSU5URUdFUiwgTUFYX1NBRkVfSU5URUdFUikgOiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogMDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0b1N0cmluZyh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBudWxsID8gXCJcIiA6IGJhc2VUb1N0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFzc2lnbiA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlKSB7XG4gICAgICAgICAgaWYgKGlzUHJvdG90eXBlKHNvdXJjZSkgfHwgaXNBcnJheUxpa2Uoc291cmNlKSkge1xuICAgICAgICAgICAgY29weU9iamVjdChzb3VyY2UsIGtleXMoc291cmNlKSwgb2JqZWN0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgICAgIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGFzc2lnbkluID0gY3JlYXRlQXNzaWduZXIoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgICAgICBjb3B5T2JqZWN0KHNvdXJjZSwga2V5c0luKHNvdXJjZSksIG9iamVjdCk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgYXNzaWduSW5XaXRoID0gY3JlYXRlQXNzaWduZXIoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4LCBjdXN0b21pemVyKSB7XG4gICAgICAgICAgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QsIGN1c3RvbWl6ZXIpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGFzc2lnbldpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICBjb3B5T2JqZWN0KHNvdXJjZSwga2V5cyhzb3VyY2UpLCBvYmplY3QsIGN1c3RvbWl6ZXIpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGF0ID0gZmxhdFJlc3QoYmFzZUF0KTtcbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlKHByb3RvdHlwZSwgcHJvcGVydGllcykge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gYmFzZUNyZWF0ZShwcm90b3R5cGUpO1xuICAgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzID09IG51bGwgPyByZXN1bHQyIDogYmFzZUFzc2lnbihyZXN1bHQyLCBwcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGVmYXVsdHMgPSBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIHNvdXJjZXMpIHtcbiAgICAgICAgICBvYmplY3QgPSBPYmplY3QyKG9iamVjdCk7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTE7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IHNvdXJjZXMubGVuZ3RoO1xuICAgICAgICAgIHZhciBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoc291cmNlc1swXSwgc291cmNlc1sxXSwgZ3VhcmQpKSB7XG4gICAgICAgICAgICBsZW5ndGggPSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIHNvdXJjZSA9IHNvdXJjZXNbaW5kZXhdO1xuICAgICAgICAgICAgdmFyIHByb3BzID0ga2V5c0luKHNvdXJjZSk7XG4gICAgICAgICAgICB2YXIgcHJvcHNJbmRleCA9IC0xO1xuICAgICAgICAgICAgdmFyIHByb3BzTGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKCsrcHJvcHNJbmRleCA8IHByb3BzTGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHZhciBrZXkgPSBwcm9wc1twcm9wc0luZGV4XTtcbiAgICAgICAgICAgICAgdmFyIHZhbHVlID0gb2JqZWN0W2tleV07XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkMiB8fCBlcSh2YWx1ZSwgb2JqZWN0UHJvdG9ba2V5XSkgJiYgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgb2JqZWN0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGRlZmF1bHRzRGVlcCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgICBhcmdzLnB1c2godW5kZWZpbmVkMiwgY3VzdG9tRGVmYXVsdHNNZXJnZSk7XG4gICAgICAgICAgcmV0dXJuIGFwcGx5KG1lcmdlV2l0aCwgdW5kZWZpbmVkMiwgYXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBmaW5kS2V5KG9iamVjdCwgcHJlZGljYXRlKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VGaW5kS2V5KG9iamVjdCwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgYmFzZUZvck93bik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZmluZExhc3RLZXkob2JqZWN0LCBwcmVkaWNhdGUpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZUZpbmRLZXkob2JqZWN0LCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpLCBiYXNlRm9yT3duUmlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZvckluKG9iamVjdCwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZUZvcihvYmplY3QsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgMyksIGtleXNJbik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZm9ySW5SaWdodChvYmplY3QsIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IG9iamVjdCA6IGJhc2VGb3JSaWdodChvYmplY3QsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgMyksIGtleXNJbik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZm9yT3duKG9iamVjdCwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCAmJiBiYXNlRm9yT3duKG9iamVjdCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAzKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZm9yT3duUmlnaHQob2JqZWN0LCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ICYmIGJhc2VGb3JPd25SaWdodChvYmplY3QsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgMykpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZ1bmN0aW9ucyhvYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBbXSA6IGJhc2VGdW5jdGlvbnMob2JqZWN0LCBrZXlzKG9iamVjdCkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZ1bmN0aW9uc0luKG9iamVjdCkge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IFtdIDogYmFzZUZ1bmN0aW9ucyhvYmplY3QsIGtleXNJbihvYmplY3QpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXQob2JqZWN0LCBwYXRoLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkMiA6IGJhc2VHZXQob2JqZWN0LCBwYXRoKTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MiA9PT0gdW5kZWZpbmVkMiA/IGRlZmF1bHRWYWx1ZSA6IHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaGFzKG9iamVjdCwgcGF0aCkge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgYmFzZUhhcyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaGFzSW4ob2JqZWN0LCBwYXRoKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBiYXNlSGFzSW4pO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpbnZlcnQgPSBjcmVhdGVJbnZlcnRlcihmdW5jdGlvbihyZXN1bHQyLCB2YWx1ZSwga2V5KSB7XG4gICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlLnRvU3RyaW5nICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdmFsdWUgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0Mlt2YWx1ZV0gPSBrZXk7XG4gICAgICAgIH0sIGNvbnN0YW50KGlkZW50aXR5KSk7XG4gICAgICAgIHZhciBpbnZlcnRCeSA9IGNyZWF0ZUludmVydGVyKGZ1bmN0aW9uKHJlc3VsdDIsIHZhbHVlLCBrZXkpIHtcbiAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUudG9TdHJpbmcgIT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChyZXN1bHQyLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJlc3VsdDJbdmFsdWVdLnB1c2goa2V5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0Mlt2YWx1ZV0gPSBba2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIGdldEl0ZXJhdGVlKTtcbiAgICAgICAgdmFyIGludm9rZSA9IGJhc2VSZXN0KGJhc2VJbnZva2UpO1xuICAgICAgICBmdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuICAgICAgICAgIHJldHVybiBpc0FycmF5TGlrZShvYmplY3QpID8gYXJyYXlMaWtlS2V5cyhvYmplY3QpIDogYmFzZUtleXMob2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBrZXlzSW4ob2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCwgdHJ1ZSkgOiBiYXNlS2V5c0luKG9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWFwS2V5cyhvYmplY3QsIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHZhciByZXN1bHQyID0ge307XG4gICAgICAgICAgaXRlcmF0ZWUyID0gZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAzKTtcbiAgICAgICAgICBiYXNlRm9yT3duKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0Mikge1xuICAgICAgICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdDIsIGl0ZXJhdGVlMih2YWx1ZSwga2V5LCBvYmplY3QyKSwgdmFsdWUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1hcFZhbHVlcyhvYmplY3QsIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHZhciByZXN1bHQyID0ge307XG4gICAgICAgICAgaXRlcmF0ZWUyID0gZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAzKTtcbiAgICAgICAgICBiYXNlRm9yT3duKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0Mikge1xuICAgICAgICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdDIsIGtleSwgaXRlcmF0ZWUyKHZhbHVlLCBrZXksIG9iamVjdDIpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbWVyZ2UgPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgpIHtcbiAgICAgICAgICBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBtZXJnZVdpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4LCBjdXN0b21pemVyKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBvbWl0ID0gZmxhdFJlc3QoZnVuY3Rpb24ob2JqZWN0LCBwYXRocykge1xuICAgICAgICAgIHZhciByZXN1bHQyID0ge307XG4gICAgICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGlzRGVlcCA9IGZhbHNlO1xuICAgICAgICAgIHBhdGhzID0gYXJyYXlNYXAocGF0aHMsIGZ1bmN0aW9uKHBhdGgpIHtcbiAgICAgICAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICAgICAgICAgICAgaXNEZWVwIHx8IChpc0RlZXAgPSBwYXRoLmxlbmd0aCA+IDEpO1xuICAgICAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29weU9iamVjdChvYmplY3QsIGdldEFsbEtleXNJbihvYmplY3QpLCByZXN1bHQyKTtcbiAgICAgICAgICBpZiAoaXNEZWVwKSB7XG4gICAgICAgICAgICByZXN1bHQyID0gYmFzZUNsb25lKHJlc3VsdDIsIENMT05FX0RFRVBfRkxBRyB8IENMT05FX0ZMQVRfRkxBRyB8IENMT05FX1NZTUJPTFNfRkxBRywgY3VzdG9tT21pdENsb25lKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IHBhdGhzLmxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICAgIGJhc2VVbnNldChyZXN1bHQyLCBwYXRoc1tsZW5ndGhdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBvbWl0Qnkob2JqZWN0LCBwcmVkaWNhdGUpIHtcbiAgICAgICAgICByZXR1cm4gcGlja0J5KG9iamVjdCwgbmVnYXRlKGdldEl0ZXJhdGVlKHByZWRpY2F0ZSkpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGljayA9IGZsYXRSZXN0KGZ1bmN0aW9uKG9iamVjdCwgcGF0aHMpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB7fSA6IGJhc2VQaWNrKG9iamVjdCwgcGF0aHMpO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gcGlja0J5KG9iamVjdCwgcHJlZGljYXRlKSB7XG4gICAgICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBwcm9wcyA9IGFycmF5TWFwKGdldEFsbEtleXNJbihvYmplY3QpLCBmdW5jdGlvbihwcm9wKSB7XG4gICAgICAgICAgICByZXR1cm4gW3Byb3BdO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHByZWRpY2F0ZSA9IGdldEl0ZXJhdGVlKHByZWRpY2F0ZSk7XG4gICAgICAgICAgcmV0dXJuIGJhc2VQaWNrQnkob2JqZWN0LCBwcm9wcywgZnVuY3Rpb24odmFsdWUsIHBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybiBwcmVkaWNhdGUodmFsdWUsIHBhdGhbMF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHJlc3VsdChvYmplY3QsIHBhdGgsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBwYXRoLmxlbmd0aDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgbGVuZ3RoID0gMTtcbiAgICAgICAgICAgIG9iamVjdCA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZDIgOiBvYmplY3RbdG9LZXkocGF0aFtpbmRleF0pXTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgICBpbmRleCA9IGxlbmd0aDtcbiAgICAgICAgICAgICAgdmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvYmplY3QgPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHZhbHVlLmNhbGwob2JqZWN0KSA6IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNldChvYmplY3QsIHBhdGgsIHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZVNldChvYmplY3QsIHBhdGgsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzZXRXaXRoKG9iamVjdCwgcGF0aCwgdmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gXCJmdW5jdGlvblwiID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZVNldChvYmplY3QsIHBhdGgsIHZhbHVlLCBjdXN0b21pemVyKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdG9QYWlycyA9IGNyZWF0ZVRvUGFpcnMoa2V5cyk7XG4gICAgICAgIHZhciB0b1BhaXJzSW4gPSBjcmVhdGVUb1BhaXJzKGtleXNJbik7XG4gICAgICAgIGZ1bmN0aW9uIHRyYW5zZm9ybShvYmplY3QsIGl0ZXJhdGVlMiwgYWNjdW11bGF0b3IpIHtcbiAgICAgICAgICB2YXIgaXNBcnIgPSBpc0FycmF5KG9iamVjdCksIGlzQXJyTGlrZSA9IGlzQXJyIHx8IGlzQnVmZmVyKG9iamVjdCkgfHwgaXNUeXBlZEFycmF5KG9iamVjdCk7XG4gICAgICAgICAgaXRlcmF0ZWUyID0gZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCA0KTtcbiAgICAgICAgICBpZiAoYWNjdW11bGF0b3IgPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIEN0b3IgPSBvYmplY3QgJiYgb2JqZWN0LmNvbnN0cnVjdG9yO1xuICAgICAgICAgICAgaWYgKGlzQXJyTGlrZSkge1xuICAgICAgICAgICAgICBhY2N1bXVsYXRvciA9IGlzQXJyID8gbmV3IEN0b3IoKSA6IFtdO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgICAgICAgIGFjY3VtdWxhdG9yID0gaXNGdW5jdGlvbihDdG9yKSA/IGJhc2VDcmVhdGUoZ2V0UHJvdG90eXBlKG9iamVjdCkpIDoge307XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBhY2N1bXVsYXRvciA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAoaXNBcnJMaWtlID8gYXJyYXlFYWNoIDogYmFzZUZvck93bikob2JqZWN0LCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIG9iamVjdDIpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVyYXRlZTIoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgb2JqZWN0Mik7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHVuc2V0KG9iamVjdCwgcGF0aCkge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHRydWUgOiBiYXNlVW5zZXQob2JqZWN0LCBwYXRoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB1cGRhdGUob2JqZWN0LCBwYXRoLCB1cGRhdGVyKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZVVwZGF0ZShvYmplY3QsIHBhdGgsIGNhc3RGdW5jdGlvbih1cGRhdGVyKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlV2l0aChvYmplY3QsIHBhdGgsIHVwZGF0ZXIsIGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gXCJmdW5jdGlvblwiID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZVVwZGF0ZShvYmplY3QsIHBhdGgsIGNhc3RGdW5jdGlvbih1cGRhdGVyKSwgY3VzdG9taXplcik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdmFsdWVzKG9iamVjdCkge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IFtdIDogYmFzZVZhbHVlcyhvYmplY3QsIGtleXMob2JqZWN0KSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdmFsdWVzSW4ob2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gW10gOiBiYXNlVmFsdWVzKG9iamVjdCwga2V5c0luKG9iamVjdCkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNsYW1wKG51bWJlciwgbG93ZXIsIHVwcGVyKSB7XG4gICAgICAgICAgaWYgKHVwcGVyID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICB1cHBlciA9IGxvd2VyO1xuICAgICAgICAgICAgbG93ZXIgPSB1bmRlZmluZWQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodXBwZXIgIT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIHVwcGVyID0gdG9OdW1iZXIodXBwZXIpO1xuICAgICAgICAgICAgdXBwZXIgPSB1cHBlciA9PT0gdXBwZXIgPyB1cHBlciA6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsb3dlciAhPT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgbG93ZXIgPSB0b051bWJlcihsb3dlcik7XG4gICAgICAgICAgICBsb3dlciA9IGxvd2VyID09PSBsb3dlciA/IGxvd2VyIDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGJhc2VDbGFtcCh0b051bWJlcihudW1iZXIpLCBsb3dlciwgdXBwZXIpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGluUmFuZ2UobnVtYmVyLCBzdGFydCwgZW5kKSB7XG4gICAgICAgICAgc3RhcnQgPSB0b0Zpbml0ZShzdGFydCk7XG4gICAgICAgICAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgZW5kID0gc3RhcnQ7XG4gICAgICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVuZCA9IHRvRmluaXRlKGVuZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG51bWJlciA9IHRvTnVtYmVyKG51bWJlcik7XG4gICAgICAgICAgcmV0dXJuIGJhc2VJblJhbmdlKG51bWJlciwgc3RhcnQsIGVuZCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcmFuZG9tKGxvd2VyLCB1cHBlciwgZmxvYXRpbmcpIHtcbiAgICAgICAgICBpZiAoZmxvYXRpbmcgJiYgdHlwZW9mIGZsb2F0aW5nICE9IFwiYm9vbGVhblwiICYmIGlzSXRlcmF0ZWVDYWxsKGxvd2VyLCB1cHBlciwgZmxvYXRpbmcpKSB7XG4gICAgICAgICAgICB1cHBlciA9IGZsb2F0aW5nID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZsb2F0aW5nID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHVwcGVyID09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICAgIGZsb2F0aW5nID0gdXBwZXI7XG4gICAgICAgICAgICAgIHVwcGVyID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGxvd2VyID09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICAgIGZsb2F0aW5nID0gbG93ZXI7XG4gICAgICAgICAgICAgIGxvd2VyID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGxvd2VyID09PSB1bmRlZmluZWQyICYmIHVwcGVyID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICBsb3dlciA9IDA7XG4gICAgICAgICAgICB1cHBlciA9IDE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvd2VyID0gdG9GaW5pdGUobG93ZXIpO1xuICAgICAgICAgICAgaWYgKHVwcGVyID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICAgIHVwcGVyID0gbG93ZXI7XG4gICAgICAgICAgICAgIGxvd2VyID0gMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHVwcGVyID0gdG9GaW5pdGUodXBwZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobG93ZXIgPiB1cHBlcikge1xuICAgICAgICAgICAgdmFyIHRlbXAgPSBsb3dlcjtcbiAgICAgICAgICAgIGxvd2VyID0gdXBwZXI7XG4gICAgICAgICAgICB1cHBlciA9IHRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmbG9hdGluZyB8fCBsb3dlciAlIDEgfHwgdXBwZXIgJSAxKSB7XG4gICAgICAgICAgICB2YXIgcmFuZCA9IG5hdGl2ZVJhbmRvbSgpO1xuICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZU1pbihsb3dlciArIHJhbmQgKiAodXBwZXIgLSBsb3dlciArIGZyZWVQYXJzZUZsb2F0KFwiMWUtXCIgKyAoKHJhbmQgKyBcIlwiKS5sZW5ndGggLSAxKSkpLCB1cHBlcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlUmFuZG9tKGxvd2VyLCB1cHBlcik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNhbWVsQ2FzZSA9IGNyZWF0ZUNvbXBvdW5kZXIoZnVuY3Rpb24ocmVzdWx0Miwgd29yZCwgaW5kZXgpIHtcbiAgICAgICAgICB3b3JkID0gd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyICsgKGluZGV4ID8gY2FwaXRhbGl6ZSh3b3JkKSA6IHdvcmQpO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gY2FwaXRhbGl6ZShzdHJpbmcpIHtcbiAgICAgICAgICByZXR1cm4gdXBwZXJGaXJzdCh0b1N0cmluZyhzdHJpbmcpLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGRlYnVycihzdHJpbmcpIHtcbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgICAgIHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLnJlcGxhY2UocmVMYXRpbiwgZGVidXJyTGV0dGVyKS5yZXBsYWNlKHJlQ29tYm9NYXJrLCBcIlwiKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBlbmRzV2l0aChzdHJpbmcsIHRhcmdldCwgcG9zaXRpb24pIHtcbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgICAgIHRhcmdldCA9IGJhc2VUb1N0cmluZyh0YXJnZXQpO1xuICAgICAgICAgIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24gPT09IHVuZGVmaW5lZDIgPyBsZW5ndGggOiBiYXNlQ2xhbXAodG9JbnRlZ2VyKHBvc2l0aW9uKSwgMCwgbGVuZ3RoKTtcbiAgICAgICAgICB2YXIgZW5kID0gcG9zaXRpb247XG4gICAgICAgICAgcG9zaXRpb24gLT0gdGFyZ2V0Lmxlbmd0aDtcbiAgICAgICAgICByZXR1cm4gcG9zaXRpb24gPj0gMCAmJiBzdHJpbmcuc2xpY2UocG9zaXRpb24sIGVuZCkgPT0gdGFyZ2V0O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGVzY2FwZTIoc3RyaW5nKSB7XG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgICAgICByZXR1cm4gc3RyaW5nICYmIHJlSGFzVW5lc2NhcGVkSHRtbC50ZXN0KHN0cmluZykgPyBzdHJpbmcucmVwbGFjZShyZVVuZXNjYXBlZEh0bWwsIGVzY2FwZUh0bWxDaGFyKSA6IHN0cmluZztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBlc2NhcGVSZWdFeHAoc3RyaW5nKSB7XG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgICAgICByZXR1cm4gc3RyaW5nICYmIHJlSGFzUmVnRXhwQ2hhci50ZXN0KHN0cmluZykgPyBzdHJpbmcucmVwbGFjZShyZVJlZ0V4cENoYXIsIFwiXFxcXCQmXCIpIDogc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIHZhciBrZWJhYkNhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdDIsIHdvcmQsIGluZGV4KSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDIgKyAoaW5kZXggPyBcIi1cIiA6IFwiXCIpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGxvd2VyQ2FzZSA9IGNyZWF0ZUNvbXBvdW5kZXIoZnVuY3Rpb24ocmVzdWx0Miwgd29yZCwgaW5kZXgpIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MiArIChpbmRleCA/IFwiIFwiIDogXCJcIikgKyB3b3JkLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgbG93ZXJGaXJzdCA9IGNyZWF0ZUNhc2VGaXJzdChcInRvTG93ZXJDYXNlXCIpO1xuICAgICAgICBmdW5jdGlvbiBwYWQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgICAgICBsZW5ndGggPSB0b0ludGVnZXIobGVuZ3RoKTtcbiAgICAgICAgICB2YXIgc3RyTGVuZ3RoID0gbGVuZ3RoID8gc3RyaW5nU2l6ZShzdHJpbmcpIDogMDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCB8fCBzdHJMZW5ndGggPj0gbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgbWlkID0gKGxlbmd0aCAtIHN0ckxlbmd0aCkgLyAyO1xuICAgICAgICAgIHJldHVybiBjcmVhdGVQYWRkaW5nKG5hdGl2ZUZsb29yKG1pZCksIGNoYXJzKSArIHN0cmluZyArIGNyZWF0ZVBhZGRpbmcobmF0aXZlQ2VpbChtaWQpLCBjaGFycyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcGFkRW5kKHN0cmluZywgbGVuZ3RoLCBjaGFycykge1xuICAgICAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICAgICAgbGVuZ3RoID0gdG9JbnRlZ2VyKGxlbmd0aCk7XG4gICAgICAgICAgdmFyIHN0ckxlbmd0aCA9IGxlbmd0aCA/IHN0cmluZ1NpemUoc3RyaW5nKSA6IDA7XG4gICAgICAgICAgcmV0dXJuIGxlbmd0aCAmJiBzdHJMZW5ndGggPCBsZW5ndGggPyBzdHJpbmcgKyBjcmVhdGVQYWRkaW5nKGxlbmd0aCAtIHN0ckxlbmd0aCwgY2hhcnMpIDogc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHBhZFN0YXJ0KHN0cmluZywgbGVuZ3RoLCBjaGFycykge1xuICAgICAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICAgICAgbGVuZ3RoID0gdG9JbnRlZ2VyKGxlbmd0aCk7XG4gICAgICAgICAgdmFyIHN0ckxlbmd0aCA9IGxlbmd0aCA/IHN0cmluZ1NpemUoc3RyaW5nKSA6IDA7XG4gICAgICAgICAgcmV0dXJuIGxlbmd0aCAmJiBzdHJMZW5ndGggPCBsZW5ndGggPyBjcmVhdGVQYWRkaW5nKGxlbmd0aCAtIHN0ckxlbmd0aCwgY2hhcnMpICsgc3RyaW5nIDogc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHBhcnNlSW50MihzdHJpbmcsIHJhZGl4LCBndWFyZCkge1xuICAgICAgICAgIGlmIChndWFyZCB8fCByYWRpeCA9PSBudWxsKSB7XG4gICAgICAgICAgICByYWRpeCA9IDA7XG4gICAgICAgICAgfSBlbHNlIGlmIChyYWRpeCkge1xuICAgICAgICAgICAgcmFkaXggPSArcmFkaXg7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuYXRpdmVQYXJzZUludCh0b1N0cmluZyhzdHJpbmcpLnJlcGxhY2UocmVUcmltU3RhcnQsIFwiXCIpLCByYWRpeCB8fCAwKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiByZXBlYXQoc3RyaW5nLCBuLCBndWFyZCkge1xuICAgICAgICAgIGlmIChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKHN0cmluZywgbiwgZ3VhcmQpIDogbiA9PT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgbiA9IDE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG4gPSB0b0ludGVnZXIobik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlUmVwZWF0KHRvU3RyaW5nKHN0cmluZyksIG4pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHJlcGxhY2UoKSB7XG4gICAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsIHN0cmluZyA9IHRvU3RyaW5nKGFyZ3NbMF0pO1xuICAgICAgICAgIHJldHVybiBhcmdzLmxlbmd0aCA8IDMgPyBzdHJpbmcgOiBzdHJpbmcucmVwbGFjZShhcmdzWzFdLCBhcmdzWzJdKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc25ha2VDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQyLCB3b3JkLCBpbmRleCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQyICsgKGluZGV4ID8gXCJfXCIgOiBcIlwiKSArIHdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIHNwbGl0KHN0cmluZywgc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgICAgICAgIGlmIChsaW1pdCAmJiB0eXBlb2YgbGltaXQgIT0gXCJudW1iZXJcIiAmJiBpc0l0ZXJhdGVlQ2FsbChzdHJpbmcsIHNlcGFyYXRvciwgbGltaXQpKSB7XG4gICAgICAgICAgICBzZXBhcmF0b3IgPSBsaW1pdCA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxpbWl0ID0gbGltaXQgPT09IHVuZGVmaW5lZDIgPyBNQVhfQVJSQVlfTEVOR1RIIDogbGltaXQgPj4+IDA7XG4gICAgICAgICAgaWYgKCFsaW1pdCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgICAgIGlmIChzdHJpbmcgJiYgKHR5cGVvZiBzZXBhcmF0b3IgPT0gXCJzdHJpbmdcIiB8fCBzZXBhcmF0b3IgIT0gbnVsbCAmJiAhaXNSZWdFeHAoc2VwYXJhdG9yKSkpIHtcbiAgICAgICAgICAgIHNlcGFyYXRvciA9IGJhc2VUb1N0cmluZyhzZXBhcmF0b3IpO1xuICAgICAgICAgICAgaWYgKCFzZXBhcmF0b3IgJiYgaGFzVW5pY29kZShzdHJpbmcpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjYXN0U2xpY2Uoc3RyaW5nVG9BcnJheShzdHJpbmcpLCAwLCBsaW1pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdHJpbmcuc3BsaXQoc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHN0YXJ0Q2FzZSA9IGNyZWF0ZUNvbXBvdW5kZXIoZnVuY3Rpb24ocmVzdWx0Miwgd29yZCwgaW5kZXgpIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MiArIChpbmRleCA/IFwiIFwiIDogXCJcIikgKyB1cHBlckZpcnN0KHdvcmQpO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gc3RhcnRzV2l0aChzdHJpbmcsIHRhcmdldCwgcG9zaXRpb24pIHtcbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24gPT0gbnVsbCA/IDAgOiBiYXNlQ2xhbXAodG9JbnRlZ2VyKHBvc2l0aW9uKSwgMCwgc3RyaW5nLmxlbmd0aCk7XG4gICAgICAgICAgdGFyZ2V0ID0gYmFzZVRvU3RyaW5nKHRhcmdldCk7XG4gICAgICAgICAgcmV0dXJuIHN0cmluZy5zbGljZShwb3NpdGlvbiwgcG9zaXRpb24gKyB0YXJnZXQubGVuZ3RoKSA9PSB0YXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdGVtcGxhdGUoc3RyaW5nLCBvcHRpb25zLCBndWFyZCkge1xuICAgICAgICAgIHZhciBzZXR0aW5ncyA9IGxvZGFzaC50ZW1wbGF0ZVNldHRpbmdzO1xuICAgICAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzdHJpbmcsIG9wdGlvbnMsIGd1YXJkKSkge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICAgICAgb3B0aW9ucyA9IGFzc2lnbkluV2l0aCh7fSwgb3B0aW9ucywgc2V0dGluZ3MsIGN1c3RvbURlZmF1bHRzQXNzaWduSW4pO1xuICAgICAgICAgIHZhciBpbXBvcnRzID0gYXNzaWduSW5XaXRoKHt9LCBvcHRpb25zLmltcG9ydHMsIHNldHRpbmdzLmltcG9ydHMsIGN1c3RvbURlZmF1bHRzQXNzaWduSW4pLCBpbXBvcnRzS2V5cyA9IGtleXMoaW1wb3J0cyksIGltcG9ydHNWYWx1ZXMgPSBiYXNlVmFsdWVzKGltcG9ydHMsIGltcG9ydHNLZXlzKTtcbiAgICAgICAgICB2YXIgaXNFc2NhcGluZywgaXNFdmFsdWF0aW5nLCBpbmRleCA9IDAsIGludGVycG9sYXRlID0gb3B0aW9ucy5pbnRlcnBvbGF0ZSB8fCByZU5vTWF0Y2gsIHNvdXJjZSA9IFwiX19wICs9ICdcIjtcbiAgICAgICAgICB2YXIgcmVEZWxpbWl0ZXJzID0gUmVnRXhwMihcbiAgICAgICAgICAgIChvcHRpb25zLmVzY2FwZSB8fCByZU5vTWF0Y2gpLnNvdXJjZSArIFwifFwiICsgaW50ZXJwb2xhdGUuc291cmNlICsgXCJ8XCIgKyAoaW50ZXJwb2xhdGUgPT09IHJlSW50ZXJwb2xhdGUgPyByZUVzVGVtcGxhdGUgOiByZU5vTWF0Y2gpLnNvdXJjZSArIFwifFwiICsgKG9wdGlvbnMuZXZhbHVhdGUgfHwgcmVOb01hdGNoKS5zb3VyY2UgKyBcInwkXCIsXG4gICAgICAgICAgICBcImdcIlxuICAgICAgICAgICk7XG4gICAgICAgICAgdmFyIHNvdXJjZVVSTCA9IFwiLy8jIHNvdXJjZVVSTD1cIiArIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMsIFwic291cmNlVVJMXCIpID8gKG9wdGlvbnMuc291cmNlVVJMICsgXCJcIikucmVwbGFjZSgvXFxzL2csIFwiIFwiKSA6IFwibG9kYXNoLnRlbXBsYXRlU291cmNlc1tcIiArICsrdGVtcGxhdGVDb3VudGVyICsgXCJdXCIpICsgXCJcXG5cIjtcbiAgICAgICAgICBzdHJpbmcucmVwbGFjZShyZURlbGltaXRlcnMsIGZ1bmN0aW9uKG1hdGNoLCBlc2NhcGVWYWx1ZSwgaW50ZXJwb2xhdGVWYWx1ZSwgZXNUZW1wbGF0ZVZhbHVlLCBldmFsdWF0ZVZhbHVlLCBvZmZzZXQpIHtcbiAgICAgICAgICAgIGludGVycG9sYXRlVmFsdWUgfHwgKGludGVycG9sYXRlVmFsdWUgPSBlc1RlbXBsYXRlVmFsdWUpO1xuICAgICAgICAgICAgc291cmNlICs9IHN0cmluZy5zbGljZShpbmRleCwgb2Zmc2V0KS5yZXBsYWNlKHJlVW5lc2NhcGVkU3RyaW5nLCBlc2NhcGVTdHJpbmdDaGFyKTtcbiAgICAgICAgICAgIGlmIChlc2NhcGVWYWx1ZSkge1xuICAgICAgICAgICAgICBpc0VzY2FwaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgc291cmNlICs9IFwiJyArXFxuX19lKFwiICsgZXNjYXBlVmFsdWUgKyBcIikgK1xcbidcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChldmFsdWF0ZVZhbHVlKSB7XG4gICAgICAgICAgICAgIGlzRXZhbHVhdGluZyA9IHRydWU7XG4gICAgICAgICAgICAgIHNvdXJjZSArPSBcIic7XFxuXCIgKyBldmFsdWF0ZVZhbHVlICsgXCI7XFxuX19wICs9ICdcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbnRlcnBvbGF0ZVZhbHVlKSB7XG4gICAgICAgICAgICAgIHNvdXJjZSArPSBcIicgK1xcbigoX190ID0gKFwiICsgaW50ZXJwb2xhdGVWYWx1ZSArIFwiKSkgPT0gbnVsbCA/ICcnIDogX190KSArXFxuJ1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5kZXggPSBvZmZzZXQgKyBtYXRjaC5sZW5ndGg7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc291cmNlICs9IFwiJztcXG5cIjtcbiAgICAgICAgICB2YXIgdmFyaWFibGUgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMsIFwidmFyaWFibGVcIikgJiYgb3B0aW9ucy52YXJpYWJsZTtcbiAgICAgICAgICBpZiAoIXZhcmlhYmxlKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSBcIndpdGggKG9iaikge1xcblwiICsgc291cmNlICsgXCJcXG59XFxuXCI7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZUZvcmJpZGRlbklkZW50aWZpZXJDaGFycy50ZXN0KHZhcmlhYmxlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yMihJTlZBTElEX1RFTVBMX1ZBUl9FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc291cmNlID0gKGlzRXZhbHVhdGluZyA/IHNvdXJjZS5yZXBsYWNlKHJlRW1wdHlTdHJpbmdMZWFkaW5nLCBcIlwiKSA6IHNvdXJjZSkucmVwbGFjZShyZUVtcHR5U3RyaW5nTWlkZGxlLCBcIiQxXCIpLnJlcGxhY2UocmVFbXB0eVN0cmluZ1RyYWlsaW5nLCBcIiQxO1wiKTtcbiAgICAgICAgICBzb3VyY2UgPSBcImZ1bmN0aW9uKFwiICsgKHZhcmlhYmxlIHx8IFwib2JqXCIpICsgXCIpIHtcXG5cIiArICh2YXJpYWJsZSA/IFwiXCIgOiBcIm9iaiB8fCAob2JqID0ge30pO1xcblwiKSArIFwidmFyIF9fdCwgX19wID0gJydcIiArIChpc0VzY2FwaW5nID8gXCIsIF9fZSA9IF8uZXNjYXBlXCIgOiBcIlwiKSArIChpc0V2YWx1YXRpbmcgPyBcIiwgX19qID0gQXJyYXkucHJvdG90eXBlLmpvaW47XFxuZnVuY3Rpb24gcHJpbnQoKSB7IF9fcCArPSBfX2ouY2FsbChhcmd1bWVudHMsICcnKSB9XFxuXCIgOiBcIjtcXG5cIikgKyBzb3VyY2UgKyBcInJldHVybiBfX3BcXG59XCI7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBhdHRlbXB0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uMihpbXBvcnRzS2V5cywgc291cmNlVVJMICsgXCJyZXR1cm4gXCIgKyBzb3VyY2UpLmFwcGx5KHVuZGVmaW5lZDIsIGltcG9ydHNWYWx1ZXMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJlc3VsdDIuc291cmNlID0gc291cmNlO1xuICAgICAgICAgIGlmIChpc0Vycm9yKHJlc3VsdDIpKSB7XG4gICAgICAgICAgICB0aHJvdyByZXN1bHQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0b0xvd2VyKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHRvU3RyaW5nKHZhbHVlKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRvVXBwZXIodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdG9TdHJpbmcodmFsdWUpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdHJpbShzdHJpbmcsIGNoYXJzLCBndWFyZCkge1xuICAgICAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICAgICAgaWYgKHN0cmluZyAmJiAoZ3VhcmQgfHwgY2hhcnMgPT09IHVuZGVmaW5lZDIpKSB7XG4gICAgICAgICAgICByZXR1cm4gYmFzZVRyaW0oc3RyaW5nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFzdHJpbmcgfHwgIShjaGFycyA9IGJhc2VUb1N0cmluZyhjaGFycykpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgc3RyU3ltYm9scyA9IHN0cmluZ1RvQXJyYXkoc3RyaW5nKSwgY2hyU3ltYm9scyA9IHN0cmluZ1RvQXJyYXkoY2hhcnMpLCBzdGFydCA9IGNoYXJzU3RhcnRJbmRleChzdHJTeW1ib2xzLCBjaHJTeW1ib2xzKSwgZW5kID0gY2hhcnNFbmRJbmRleChzdHJTeW1ib2xzLCBjaHJTeW1ib2xzKSArIDE7XG4gICAgICAgICAgcmV0dXJuIGNhc3RTbGljZShzdHJTeW1ib2xzLCBzdGFydCwgZW5kKS5qb2luKFwiXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRyaW1FbmQoc3RyaW5nLCBjaGFycywgZ3VhcmQpIHtcbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgICAgIGlmIChzdHJpbmcgJiYgKGd1YXJkIHx8IGNoYXJzID09PSB1bmRlZmluZWQyKSkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5zbGljZSgwLCB0cmltbWVkRW5kSW5kZXgoc3RyaW5nKSArIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXN0cmluZyB8fCAhKGNoYXJzID0gYmFzZVRvU3RyaW5nKGNoYXJzKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBzdHJTeW1ib2xzID0gc3RyaW5nVG9BcnJheShzdHJpbmcpLCBlbmQgPSBjaGFyc0VuZEluZGV4KHN0clN5bWJvbHMsIHN0cmluZ1RvQXJyYXkoY2hhcnMpKSArIDE7XG4gICAgICAgICAgcmV0dXJuIGNhc3RTbGljZShzdHJTeW1ib2xzLCAwLCBlbmQpLmpvaW4oXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdHJpbVN0YXJ0KHN0cmluZywgY2hhcnMsIGd1YXJkKSB7XG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgICAgICBpZiAoc3RyaW5nICYmIChndWFyZCB8fCBjaGFycyA9PT0gdW5kZWZpbmVkMikpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZShyZVRyaW1TdGFydCwgXCJcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghc3RyaW5nIHx8ICEoY2hhcnMgPSBiYXNlVG9TdHJpbmcoY2hhcnMpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHN0clN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyksIHN0YXJ0ID0gY2hhcnNTdGFydEluZGV4KHN0clN5bWJvbHMsIHN0cmluZ1RvQXJyYXkoY2hhcnMpKTtcbiAgICAgICAgICByZXR1cm4gY2FzdFNsaWNlKHN0clN5bWJvbHMsIHN0YXJ0KS5qb2luKFwiXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRydW5jYXRlKHN0cmluZywgb3B0aW9ucykge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBERUZBVUxUX1RSVU5DX0xFTkdUSCwgb21pc3Npb24gPSBERUZBVUxUX1RSVU5DX09NSVNTSU9OO1xuICAgICAgICAgIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgICAgICAgICAgdmFyIHNlcGFyYXRvciA9IFwic2VwYXJhdG9yXCIgaW4gb3B0aW9ucyA/IG9wdGlvbnMuc2VwYXJhdG9yIDogc2VwYXJhdG9yO1xuICAgICAgICAgICAgbGVuZ3RoID0gXCJsZW5ndGhcIiBpbiBvcHRpb25zID8gdG9JbnRlZ2VyKG9wdGlvbnMubGVuZ3RoKSA6IGxlbmd0aDtcbiAgICAgICAgICAgIG9taXNzaW9uID0gXCJvbWlzc2lvblwiIGluIG9wdGlvbnMgPyBiYXNlVG9TdHJpbmcob3B0aW9ucy5vbWlzc2lvbikgOiBvbWlzc2lvbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgICAgICB2YXIgc3RyTGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcbiAgICAgICAgICBpZiAoaGFzVW5pY29kZShzdHJpbmcpKSB7XG4gICAgICAgICAgICB2YXIgc3RyU3ltYm9scyA9IHN0cmluZ1RvQXJyYXkoc3RyaW5nKTtcbiAgICAgICAgICAgIHN0ckxlbmd0aCA9IHN0clN5bWJvbHMubGVuZ3RoO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobGVuZ3RoID49IHN0ckxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGVuZCA9IGxlbmd0aCAtIHN0cmluZ1NpemUob21pc3Npb24pO1xuICAgICAgICAgIGlmIChlbmQgPCAxKSB7XG4gICAgICAgICAgICByZXR1cm4gb21pc3Npb247XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciByZXN1bHQyID0gc3RyU3ltYm9scyA/IGNhc3RTbGljZShzdHJTeW1ib2xzLCAwLCBlbmQpLmpvaW4oXCJcIikgOiBzdHJpbmcuc2xpY2UoMCwgZW5kKTtcbiAgICAgICAgICBpZiAoc2VwYXJhdG9yID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0MiArIG9taXNzaW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3RyU3ltYm9scykge1xuICAgICAgICAgICAgZW5kICs9IHJlc3VsdDIubGVuZ3RoIC0gZW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNSZWdFeHAoc2VwYXJhdG9yKSkge1xuICAgICAgICAgICAgaWYgKHN0cmluZy5zbGljZShlbmQpLnNlYXJjaChzZXBhcmF0b3IpKSB7XG4gICAgICAgICAgICAgIHZhciBtYXRjaCwgc3Vic3RyaW5nID0gcmVzdWx0MjtcbiAgICAgICAgICAgICAgaWYgKCFzZXBhcmF0b3IuZ2xvYmFsKSB7XG4gICAgICAgICAgICAgICAgc2VwYXJhdG9yID0gUmVnRXhwMihzZXBhcmF0b3Iuc291cmNlLCB0b1N0cmluZyhyZUZsYWdzLmV4ZWMoc2VwYXJhdG9yKSkgKyBcImdcIik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc2VwYXJhdG9yLmxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgICAgIHdoaWxlIChtYXRjaCA9IHNlcGFyYXRvci5leGVjKHN1YnN0cmluZykpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmV3RW5kID0gbWF0Y2guaW5kZXg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVzdWx0MiA9IHJlc3VsdDIuc2xpY2UoMCwgbmV3RW5kID09PSB1bmRlZmluZWQyID8gZW5kIDogbmV3RW5kKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHN0cmluZy5pbmRleE9mKGJhc2VUb1N0cmluZyhzZXBhcmF0b3IpLCBlbmQpICE9IGVuZCkge1xuICAgICAgICAgICAgdmFyIGluZGV4ID0gcmVzdWx0Mi5sYXN0SW5kZXhPZihzZXBhcmF0b3IpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgcmVzdWx0MiA9IHJlc3VsdDIuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MiArIG9taXNzaW9uO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHVuZXNjYXBlMihzdHJpbmcpIHtcbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgICAgIHJldHVybiBzdHJpbmcgJiYgcmVIYXNFc2NhcGVkSHRtbC50ZXN0KHN0cmluZykgPyBzdHJpbmcucmVwbGFjZShyZUVzY2FwZWRIdG1sLCB1bmVzY2FwZUh0bWxDaGFyKSA6IHN0cmluZztcbiAgICAgICAgfVxuICAgICAgICB2YXIgdXBwZXJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQyLCB3b3JkLCBpbmRleCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQyICsgKGluZGV4ID8gXCIgXCIgOiBcIlwiKSArIHdvcmQudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciB1cHBlckZpcnN0ID0gY3JlYXRlQ2FzZUZpcnN0KFwidG9VcHBlckNhc2VcIik7XG4gICAgICAgIGZ1bmN0aW9uIHdvcmRzKHN0cmluZywgcGF0dGVybiwgZ3VhcmQpIHtcbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgICAgIHBhdHRlcm4gPSBndWFyZCA/IHVuZGVmaW5lZDIgOiBwYXR0ZXJuO1xuICAgICAgICAgIGlmIChwYXR0ZXJuID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICByZXR1cm4gaGFzVW5pY29kZVdvcmQoc3RyaW5nKSA/IHVuaWNvZGVXb3JkcyhzdHJpbmcpIDogYXNjaWlXb3JkcyhzdHJpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc3RyaW5nLm1hdGNoKHBhdHRlcm4pIHx8IFtdO1xuICAgICAgICB9XG4gICAgICAgIHZhciBhdHRlbXB0ID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgYXJncykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdW5kZWZpbmVkMiwgYXJncyk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzRXJyb3IoZSkgPyBlIDogbmV3IEVycm9yMihlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgYmluZEFsbCA9IGZsYXRSZXN0KGZ1bmN0aW9uKG9iamVjdCwgbWV0aG9kTmFtZXMpIHtcbiAgICAgICAgICBhcnJheUVhY2gobWV0aG9kTmFtZXMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAga2V5ID0gdG9LZXkoa2V5KTtcbiAgICAgICAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgYmluZChvYmplY3Rba2V5XSwgb2JqZWN0KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIGNvbmQocGFpcnMpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gcGFpcnMgPT0gbnVsbCA/IDAgOiBwYWlycy5sZW5ndGgsIHRvSXRlcmF0ZWUgPSBnZXRJdGVyYXRlZSgpO1xuICAgICAgICAgIHBhaXJzID0gIWxlbmd0aCA/IFtdIDogYXJyYXlNYXAocGFpcnMsIGZ1bmN0aW9uKHBhaXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcGFpclsxXSAhPSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcjIoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBbdG9JdGVyYXRlZShwYWlyWzBdKSwgcGFpclsxXV07XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgICAgIHZhciBpbmRleCA9IC0xO1xuICAgICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgdmFyIHBhaXIgPSBwYWlyc1tpbmRleF07XG4gICAgICAgICAgICAgIGlmIChhcHBseShwYWlyWzBdLCB0aGlzLCBhcmdzKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcHBseShwYWlyWzFdLCB0aGlzLCBhcmdzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNvbmZvcm1zKHNvdXJjZSkge1xuICAgICAgICAgIHJldHVybiBiYXNlQ29uZm9ybXMoYmFzZUNsb25lKHNvdXJjZSwgQ0xPTkVfREVFUF9GTEFHKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY29uc3RhbnQodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBkZWZhdWx0VG8odmFsdWUsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlICE9PSB2YWx1ZSA/IGRlZmF1bHRWYWx1ZSA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmbG93ID0gY3JlYXRlRmxvdygpO1xuICAgICAgICB2YXIgZmxvd1JpZ2h0ID0gY3JlYXRlRmxvdyh0cnVlKTtcbiAgICAgICAgZnVuY3Rpb24gaWRlbnRpdHkodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXRlcmF0ZWUoZnVuYykge1xuICAgICAgICAgIHJldHVybiBiYXNlSXRlcmF0ZWUodHlwZW9mIGZ1bmMgPT0gXCJmdW5jdGlvblwiID8gZnVuYyA6IGJhc2VDbG9uZShmdW5jLCBDTE9ORV9ERUVQX0ZMQUcpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtYXRjaGVzKHNvdXJjZSkge1xuICAgICAgICAgIHJldHVybiBiYXNlTWF0Y2hlcyhiYXNlQ2xvbmUoc291cmNlLCBDTE9ORV9ERUVQX0ZMQUcpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtYXRjaGVzUHJvcGVydHkocGF0aCwgc3JjVmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZU1hdGNoZXNQcm9wZXJ0eShwYXRoLCBiYXNlQ2xvbmUoc3JjVmFsdWUsIENMT05FX0RFRVBfRkxBRykpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtZXRob2QgPSBiYXNlUmVzdChmdW5jdGlvbihwYXRoLCBhcmdzKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VJbnZva2Uob2JqZWN0LCBwYXRoLCBhcmdzKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIG1ldGhvZE9mID0gYmFzZVJlc3QoZnVuY3Rpb24ob2JqZWN0LCBhcmdzKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlSW52b2tlKG9iamVjdCwgcGF0aCwgYXJncyk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIG1peGluKG9iamVjdCwgc291cmNlLCBvcHRpb25zKSB7XG4gICAgICAgICAgdmFyIHByb3BzID0ga2V5cyhzb3VyY2UpLCBtZXRob2ROYW1lcyA9IGJhc2VGdW5jdGlvbnMoc291cmNlLCBwcm9wcyk7XG4gICAgICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCAmJiAhKGlzT2JqZWN0KHNvdXJjZSkgJiYgKG1ldGhvZE5hbWVzLmxlbmd0aCB8fCAhcHJvcHMubGVuZ3RoKSkpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBzb3VyY2U7XG4gICAgICAgICAgICBzb3VyY2UgPSBvYmplY3Q7XG4gICAgICAgICAgICBvYmplY3QgPSB0aGlzO1xuICAgICAgICAgICAgbWV0aG9kTmFtZXMgPSBiYXNlRnVuY3Rpb25zKHNvdXJjZSwga2V5cyhzb3VyY2UpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGNoYWluMiA9ICEoaXNPYmplY3Qob3B0aW9ucykgJiYgXCJjaGFpblwiIGluIG9wdGlvbnMpIHx8ICEhb3B0aW9ucy5jaGFpbiwgaXNGdW5jID0gaXNGdW5jdGlvbihvYmplY3QpO1xuICAgICAgICAgIGFycmF5RWFjaChtZXRob2ROYW1lcywgZnVuY3Rpb24obWV0aG9kTmFtZSkge1xuICAgICAgICAgICAgdmFyIGZ1bmMgPSBzb3VyY2VbbWV0aG9kTmFtZV07XG4gICAgICAgICAgICBvYmplY3RbbWV0aG9kTmFtZV0gPSBmdW5jO1xuICAgICAgICAgICAgaWYgKGlzRnVuYykge1xuICAgICAgICAgICAgICBvYmplY3QucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNoYWluQWxsID0gdGhpcy5fX2NoYWluX187XG4gICAgICAgICAgICAgICAgaWYgKGNoYWluMiB8fCBjaGFpbkFsbCkge1xuICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdDIgPSBvYmplY3QodGhpcy5fX3dyYXBwZWRfXyksIGFjdGlvbnMgPSByZXN1bHQyLl9fYWN0aW9uc19fID0gY29weUFycmF5KHRoaXMuX19hY3Rpb25zX18pO1xuICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHsgXCJmdW5jXCI6IGZ1bmMsIFwiYXJnc1wiOiBhcmd1bWVudHMsIFwidGhpc0FyZ1wiOiBvYmplY3QgfSk7XG4gICAgICAgICAgICAgICAgICByZXN1bHQyLl9fY2hhaW5fXyA9IGNoYWluQWxsO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KG9iamVjdCwgYXJyYXlQdXNoKFt0aGlzLnZhbHVlKCldLCBhcmd1bWVudHMpKTtcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG5vQ29uZmxpY3QoKSB7XG4gICAgICAgICAgaWYgKHJvb3QuXyA9PT0gdGhpcykge1xuICAgICAgICAgICAgcm9vdC5fID0gb2xkRGFzaDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbm9vcCgpIHtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBudGhBcmcobikge1xuICAgICAgICAgIG4gPSB0b0ludGVnZXIobik7XG4gICAgICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlTnRoKGFyZ3MsIG4pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHZhciBvdmVyID0gY3JlYXRlT3ZlcihhcnJheU1hcCk7XG4gICAgICAgIHZhciBvdmVyRXZlcnkgPSBjcmVhdGVPdmVyKGFycmF5RXZlcnkpO1xuICAgICAgICB2YXIgb3ZlclNvbWUgPSBjcmVhdGVPdmVyKGFycmF5U29tZSk7XG4gICAgICAgIGZ1bmN0aW9uIHByb3BlcnR5KHBhdGgpIHtcbiAgICAgICAgICByZXR1cm4gaXNLZXkocGF0aCkgPyBiYXNlUHJvcGVydHkodG9LZXkocGF0aCkpIDogYmFzZVByb3BlcnR5RGVlcChwYXRoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBwcm9wZXJ0eU9mKG9iamVjdCkge1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQyIDogYmFzZUdldChvYmplY3QsIHBhdGgpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJhbmdlID0gY3JlYXRlUmFuZ2UoKTtcbiAgICAgICAgdmFyIHJhbmdlUmlnaHQgPSBjcmVhdGVSYW5nZSh0cnVlKTtcbiAgICAgICAgZnVuY3Rpb24gc3R1YkFycmF5KCkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdHViRmFsc2UoKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHN0dWJPYmplY3QoKSB7XG4gICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHN0dWJTdHJpbmcoKSB7XG4gICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc3R1YlRydWUoKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdGltZXMobiwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgICAgICBpZiAobiA8IDEgfHwgbiA+IE1BWF9TQUZFX0lOVEVHRVIpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGluZGV4ID0gTUFYX0FSUkFZX0xFTkdUSCwgbGVuZ3RoID0gbmF0aXZlTWluKG4sIE1BWF9BUlJBWV9MRU5HVEgpO1xuICAgICAgICAgIGl0ZXJhdGVlMiA9IGdldEl0ZXJhdGVlKGl0ZXJhdGVlMik7XG4gICAgICAgICAgbiAtPSBNQVhfQVJSQVlfTEVOR1RIO1xuICAgICAgICAgIHZhciByZXN1bHQyID0gYmFzZVRpbWVzKGxlbmd0aCwgaXRlcmF0ZWUyKTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IG4pIHtcbiAgICAgICAgICAgIGl0ZXJhdGVlMihpbmRleCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRvUGF0aCh2YWx1ZSkge1xuICAgICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGFycmF5TWFwKHZhbHVlLCB0b0tleSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpc1N5bWJvbCh2YWx1ZSkgPyBbdmFsdWVdIDogY29weUFycmF5KHN0cmluZ1RvUGF0aCh0b1N0cmluZyh2YWx1ZSkpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB1bmlxdWVJZChwcmVmaXgpIHtcbiAgICAgICAgICB2YXIgaWQgPSArK2lkQ291bnRlcjtcbiAgICAgICAgICByZXR1cm4gdG9TdHJpbmcocHJlZml4KSArIGlkO1xuICAgICAgICB9XG4gICAgICAgIHZhciBhZGQgPSBjcmVhdGVNYXRoT3BlcmF0aW9uKGZ1bmN0aW9uKGF1Z2VuZCwgYWRkZW5kKSB7XG4gICAgICAgICAgcmV0dXJuIGF1Z2VuZCArIGFkZGVuZDtcbiAgICAgICAgfSwgMCk7XG4gICAgICAgIHZhciBjZWlsID0gY3JlYXRlUm91bmQoXCJjZWlsXCIpO1xuICAgICAgICB2YXIgZGl2aWRlID0gY3JlYXRlTWF0aE9wZXJhdGlvbihmdW5jdGlvbihkaXZpZGVuZCwgZGl2aXNvcikge1xuICAgICAgICAgIHJldHVybiBkaXZpZGVuZCAvIGRpdmlzb3I7XG4gICAgICAgIH0sIDEpO1xuICAgICAgICB2YXIgZmxvb3IgPSBjcmVhdGVSb3VuZChcImZsb29yXCIpO1xuICAgICAgICBmdW5jdGlvbiBtYXgoYXJyYXkpIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXkgJiYgYXJyYXkubGVuZ3RoID8gYmFzZUV4dHJlbXVtKGFycmF5LCBpZGVudGl0eSwgYmFzZUd0KSA6IHVuZGVmaW5lZDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWF4QnkoYXJyYXksIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlRXh0cmVtdW0oYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgMiksIGJhc2VHdCkgOiB1bmRlZmluZWQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1lYW4oYXJyYXkpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZU1lYW4oYXJyYXksIGlkZW50aXR5KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtZWFuQnkoYXJyYXksIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHJldHVybiBiYXNlTWVhbihhcnJheSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAyKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWluKGFycmF5KSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCA/IGJhc2VFeHRyZW11bShhcnJheSwgaWRlbnRpdHksIGJhc2VMdCkgOiB1bmRlZmluZWQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1pbkJ5KGFycmF5LCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXkgJiYgYXJyYXkubGVuZ3RoID8gYmFzZUV4dHJlbXVtKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDIpLCBiYXNlTHQpIDogdW5kZWZpbmVkMjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbXVsdGlwbHkgPSBjcmVhdGVNYXRoT3BlcmF0aW9uKGZ1bmN0aW9uKG11bHRpcGxpZXIsIG11bHRpcGxpY2FuZCkge1xuICAgICAgICAgIHJldHVybiBtdWx0aXBsaWVyICogbXVsdGlwbGljYW5kO1xuICAgICAgICB9LCAxKTtcbiAgICAgICAgdmFyIHJvdW5kID0gY3JlYXRlUm91bmQoXCJyb3VuZFwiKTtcbiAgICAgICAgdmFyIHN1YnRyYWN0ID0gY3JlYXRlTWF0aE9wZXJhdGlvbihmdW5jdGlvbihtaW51ZW5kLCBzdWJ0cmFoZW5kKSB7XG4gICAgICAgICAgcmV0dXJuIG1pbnVlbmQgLSBzdWJ0cmFoZW5kO1xuICAgICAgICB9LCAwKTtcbiAgICAgICAgZnVuY3Rpb24gc3VtKGFycmF5KSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCA/IGJhc2VTdW0oYXJyYXksIGlkZW50aXR5KSA6IDA7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc3VtQnkoYXJyYXksIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlU3VtKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDIpKSA6IDA7XG4gICAgICAgIH1cbiAgICAgICAgbG9kYXNoLmFmdGVyID0gYWZ0ZXI7XG4gICAgICAgIGxvZGFzaC5hcnkgPSBhcnk7XG4gICAgICAgIGxvZGFzaC5hc3NpZ24gPSBhc3NpZ247XG4gICAgICAgIGxvZGFzaC5hc3NpZ25JbiA9IGFzc2lnbkluO1xuICAgICAgICBsb2Rhc2guYXNzaWduSW5XaXRoID0gYXNzaWduSW5XaXRoO1xuICAgICAgICBsb2Rhc2guYXNzaWduV2l0aCA9IGFzc2lnbldpdGg7XG4gICAgICAgIGxvZGFzaC5hdCA9IGF0O1xuICAgICAgICBsb2Rhc2guYmVmb3JlID0gYmVmb3JlO1xuICAgICAgICBsb2Rhc2guYmluZCA9IGJpbmQ7XG4gICAgICAgIGxvZGFzaC5iaW5kQWxsID0gYmluZEFsbDtcbiAgICAgICAgbG9kYXNoLmJpbmRLZXkgPSBiaW5kS2V5O1xuICAgICAgICBsb2Rhc2guY2FzdEFycmF5ID0gY2FzdEFycmF5O1xuICAgICAgICBsb2Rhc2guY2hhaW4gPSBjaGFpbjtcbiAgICAgICAgbG9kYXNoLmNodW5rID0gY2h1bms7XG4gICAgICAgIGxvZGFzaC5jb21wYWN0ID0gY29tcGFjdDtcbiAgICAgICAgbG9kYXNoLmNvbmNhdCA9IGNvbmNhdDtcbiAgICAgICAgbG9kYXNoLmNvbmQgPSBjb25kO1xuICAgICAgICBsb2Rhc2guY29uZm9ybXMgPSBjb25mb3JtcztcbiAgICAgICAgbG9kYXNoLmNvbnN0YW50ID0gY29uc3RhbnQ7XG4gICAgICAgIGxvZGFzaC5jb3VudEJ5ID0gY291bnRCeTtcbiAgICAgICAgbG9kYXNoLmNyZWF0ZSA9IGNyZWF0ZTtcbiAgICAgICAgbG9kYXNoLmN1cnJ5ID0gY3Vycnk7XG4gICAgICAgIGxvZGFzaC5jdXJyeVJpZ2h0ID0gY3VycnlSaWdodDtcbiAgICAgICAgbG9kYXNoLmRlYm91bmNlID0gZGVib3VuY2U7XG4gICAgICAgIGxvZGFzaC5kZWZhdWx0cyA9IGRlZmF1bHRzO1xuICAgICAgICBsb2Rhc2guZGVmYXVsdHNEZWVwID0gZGVmYXVsdHNEZWVwO1xuICAgICAgICBsb2Rhc2guZGVmZXIgPSBkZWZlcjtcbiAgICAgICAgbG9kYXNoLmRlbGF5ID0gZGVsYXk7XG4gICAgICAgIGxvZGFzaC5kaWZmZXJlbmNlID0gZGlmZmVyZW5jZTtcbiAgICAgICAgbG9kYXNoLmRpZmZlcmVuY2VCeSA9IGRpZmZlcmVuY2VCeTtcbiAgICAgICAgbG9kYXNoLmRpZmZlcmVuY2VXaXRoID0gZGlmZmVyZW5jZVdpdGg7XG4gICAgICAgIGxvZGFzaC5kcm9wID0gZHJvcDtcbiAgICAgICAgbG9kYXNoLmRyb3BSaWdodCA9IGRyb3BSaWdodDtcbiAgICAgICAgbG9kYXNoLmRyb3BSaWdodFdoaWxlID0gZHJvcFJpZ2h0V2hpbGU7XG4gICAgICAgIGxvZGFzaC5kcm9wV2hpbGUgPSBkcm9wV2hpbGU7XG4gICAgICAgIGxvZGFzaC5maWxsID0gZmlsbDtcbiAgICAgICAgbG9kYXNoLmZpbHRlciA9IGZpbHRlcjtcbiAgICAgICAgbG9kYXNoLmZsYXRNYXAgPSBmbGF0TWFwO1xuICAgICAgICBsb2Rhc2guZmxhdE1hcERlZXAgPSBmbGF0TWFwRGVlcDtcbiAgICAgICAgbG9kYXNoLmZsYXRNYXBEZXB0aCA9IGZsYXRNYXBEZXB0aDtcbiAgICAgICAgbG9kYXNoLmZsYXR0ZW4gPSBmbGF0dGVuO1xuICAgICAgICBsb2Rhc2guZmxhdHRlbkRlZXAgPSBmbGF0dGVuRGVlcDtcbiAgICAgICAgbG9kYXNoLmZsYXR0ZW5EZXB0aCA9IGZsYXR0ZW5EZXB0aDtcbiAgICAgICAgbG9kYXNoLmZsaXAgPSBmbGlwO1xuICAgICAgICBsb2Rhc2guZmxvdyA9IGZsb3c7XG4gICAgICAgIGxvZGFzaC5mbG93UmlnaHQgPSBmbG93UmlnaHQ7XG4gICAgICAgIGxvZGFzaC5mcm9tUGFpcnMgPSBmcm9tUGFpcnM7XG4gICAgICAgIGxvZGFzaC5mdW5jdGlvbnMgPSBmdW5jdGlvbnM7XG4gICAgICAgIGxvZGFzaC5mdW5jdGlvbnNJbiA9IGZ1bmN0aW9uc0luO1xuICAgICAgICBsb2Rhc2guZ3JvdXBCeSA9IGdyb3VwQnk7XG4gICAgICAgIGxvZGFzaC5pbml0aWFsID0gaW5pdGlhbDtcbiAgICAgICAgbG9kYXNoLmludGVyc2VjdGlvbiA9IGludGVyc2VjdGlvbjtcbiAgICAgICAgbG9kYXNoLmludGVyc2VjdGlvbkJ5ID0gaW50ZXJzZWN0aW9uQnk7XG4gICAgICAgIGxvZGFzaC5pbnRlcnNlY3Rpb25XaXRoID0gaW50ZXJzZWN0aW9uV2l0aDtcbiAgICAgICAgbG9kYXNoLmludmVydCA9IGludmVydDtcbiAgICAgICAgbG9kYXNoLmludmVydEJ5ID0gaW52ZXJ0Qnk7XG4gICAgICAgIGxvZGFzaC5pbnZva2VNYXAgPSBpbnZva2VNYXA7XG4gICAgICAgIGxvZGFzaC5pdGVyYXRlZSA9IGl0ZXJhdGVlO1xuICAgICAgICBsb2Rhc2gua2V5QnkgPSBrZXlCeTtcbiAgICAgICAgbG9kYXNoLmtleXMgPSBrZXlzO1xuICAgICAgICBsb2Rhc2gua2V5c0luID0ga2V5c0luO1xuICAgICAgICBsb2Rhc2gubWFwID0gbWFwO1xuICAgICAgICBsb2Rhc2gubWFwS2V5cyA9IG1hcEtleXM7XG4gICAgICAgIGxvZGFzaC5tYXBWYWx1ZXMgPSBtYXBWYWx1ZXM7XG4gICAgICAgIGxvZGFzaC5tYXRjaGVzID0gbWF0Y2hlcztcbiAgICAgICAgbG9kYXNoLm1hdGNoZXNQcm9wZXJ0eSA9IG1hdGNoZXNQcm9wZXJ0eTtcbiAgICAgICAgbG9kYXNoLm1lbW9pemUgPSBtZW1vaXplO1xuICAgICAgICBsb2Rhc2gubWVyZ2UgPSBtZXJnZTtcbiAgICAgICAgbG9kYXNoLm1lcmdlV2l0aCA9IG1lcmdlV2l0aDtcbiAgICAgICAgbG9kYXNoLm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgICAgbG9kYXNoLm1ldGhvZE9mID0gbWV0aG9kT2Y7XG4gICAgICAgIGxvZGFzaC5taXhpbiA9IG1peGluO1xuICAgICAgICBsb2Rhc2gubmVnYXRlID0gbmVnYXRlO1xuICAgICAgICBsb2Rhc2gubnRoQXJnID0gbnRoQXJnO1xuICAgICAgICBsb2Rhc2gub21pdCA9IG9taXQ7XG4gICAgICAgIGxvZGFzaC5vbWl0QnkgPSBvbWl0Qnk7XG4gICAgICAgIGxvZGFzaC5vbmNlID0gb25jZTtcbiAgICAgICAgbG9kYXNoLm9yZGVyQnkgPSBvcmRlckJ5O1xuICAgICAgICBsb2Rhc2gub3ZlciA9IG92ZXI7XG4gICAgICAgIGxvZGFzaC5vdmVyQXJncyA9IG92ZXJBcmdzO1xuICAgICAgICBsb2Rhc2gub3ZlckV2ZXJ5ID0gb3ZlckV2ZXJ5O1xuICAgICAgICBsb2Rhc2gub3ZlclNvbWUgPSBvdmVyU29tZTtcbiAgICAgICAgbG9kYXNoLnBhcnRpYWwgPSBwYXJ0aWFsO1xuICAgICAgICBsb2Rhc2gucGFydGlhbFJpZ2h0ID0gcGFydGlhbFJpZ2h0O1xuICAgICAgICBsb2Rhc2gucGFydGl0aW9uID0gcGFydGl0aW9uO1xuICAgICAgICBsb2Rhc2gucGljayA9IHBpY2s7XG4gICAgICAgIGxvZGFzaC5waWNrQnkgPSBwaWNrQnk7XG4gICAgICAgIGxvZGFzaC5wcm9wZXJ0eSA9IHByb3BlcnR5O1xuICAgICAgICBsb2Rhc2gucHJvcGVydHlPZiA9IHByb3BlcnR5T2Y7XG4gICAgICAgIGxvZGFzaC5wdWxsID0gcHVsbDtcbiAgICAgICAgbG9kYXNoLnB1bGxBbGwgPSBwdWxsQWxsO1xuICAgICAgICBsb2Rhc2gucHVsbEFsbEJ5ID0gcHVsbEFsbEJ5O1xuICAgICAgICBsb2Rhc2gucHVsbEFsbFdpdGggPSBwdWxsQWxsV2l0aDtcbiAgICAgICAgbG9kYXNoLnB1bGxBdCA9IHB1bGxBdDtcbiAgICAgICAgbG9kYXNoLnJhbmdlID0gcmFuZ2U7XG4gICAgICAgIGxvZGFzaC5yYW5nZVJpZ2h0ID0gcmFuZ2VSaWdodDtcbiAgICAgICAgbG9kYXNoLnJlYXJnID0gcmVhcmc7XG4gICAgICAgIGxvZGFzaC5yZWplY3QgPSByZWplY3Q7XG4gICAgICAgIGxvZGFzaC5yZW1vdmUgPSByZW1vdmU7XG4gICAgICAgIGxvZGFzaC5yZXN0ID0gcmVzdDtcbiAgICAgICAgbG9kYXNoLnJldmVyc2UgPSByZXZlcnNlO1xuICAgICAgICBsb2Rhc2guc2FtcGxlU2l6ZSA9IHNhbXBsZVNpemU7XG4gICAgICAgIGxvZGFzaC5zZXQgPSBzZXQ7XG4gICAgICAgIGxvZGFzaC5zZXRXaXRoID0gc2V0V2l0aDtcbiAgICAgICAgbG9kYXNoLnNodWZmbGUgPSBzaHVmZmxlO1xuICAgICAgICBsb2Rhc2guc2xpY2UgPSBzbGljZTtcbiAgICAgICAgbG9kYXNoLnNvcnRCeSA9IHNvcnRCeTtcbiAgICAgICAgbG9kYXNoLnNvcnRlZFVuaXEgPSBzb3J0ZWRVbmlxO1xuICAgICAgICBsb2Rhc2guc29ydGVkVW5pcUJ5ID0gc29ydGVkVW5pcUJ5O1xuICAgICAgICBsb2Rhc2guc3BsaXQgPSBzcGxpdDtcbiAgICAgICAgbG9kYXNoLnNwcmVhZCA9IHNwcmVhZDtcbiAgICAgICAgbG9kYXNoLnRhaWwgPSB0YWlsO1xuICAgICAgICBsb2Rhc2gudGFrZSA9IHRha2U7XG4gICAgICAgIGxvZGFzaC50YWtlUmlnaHQgPSB0YWtlUmlnaHQ7XG4gICAgICAgIGxvZGFzaC50YWtlUmlnaHRXaGlsZSA9IHRha2VSaWdodFdoaWxlO1xuICAgICAgICBsb2Rhc2gudGFrZVdoaWxlID0gdGFrZVdoaWxlO1xuICAgICAgICBsb2Rhc2gudGFwID0gdGFwO1xuICAgICAgICBsb2Rhc2gudGhyb3R0bGUgPSB0aHJvdHRsZTtcbiAgICAgICAgbG9kYXNoLnRocnUgPSB0aHJ1O1xuICAgICAgICBsb2Rhc2gudG9BcnJheSA9IHRvQXJyYXk7XG4gICAgICAgIGxvZGFzaC50b1BhaXJzID0gdG9QYWlycztcbiAgICAgICAgbG9kYXNoLnRvUGFpcnNJbiA9IHRvUGFpcnNJbjtcbiAgICAgICAgbG9kYXNoLnRvUGF0aCA9IHRvUGF0aDtcbiAgICAgICAgbG9kYXNoLnRvUGxhaW5PYmplY3QgPSB0b1BsYWluT2JqZWN0O1xuICAgICAgICBsb2Rhc2gudHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICAgICAgICBsb2Rhc2gudW5hcnkgPSB1bmFyeTtcbiAgICAgICAgbG9kYXNoLnVuaW9uID0gdW5pb247XG4gICAgICAgIGxvZGFzaC51bmlvbkJ5ID0gdW5pb25CeTtcbiAgICAgICAgbG9kYXNoLnVuaW9uV2l0aCA9IHVuaW9uV2l0aDtcbiAgICAgICAgbG9kYXNoLnVuaXEgPSB1bmlxO1xuICAgICAgICBsb2Rhc2gudW5pcUJ5ID0gdW5pcUJ5O1xuICAgICAgICBsb2Rhc2gudW5pcVdpdGggPSB1bmlxV2l0aDtcbiAgICAgICAgbG9kYXNoLnVuc2V0ID0gdW5zZXQ7XG4gICAgICAgIGxvZGFzaC51bnppcCA9IHVuemlwO1xuICAgICAgICBsb2Rhc2gudW56aXBXaXRoID0gdW56aXBXaXRoO1xuICAgICAgICBsb2Rhc2gudXBkYXRlID0gdXBkYXRlO1xuICAgICAgICBsb2Rhc2gudXBkYXRlV2l0aCA9IHVwZGF0ZVdpdGg7XG4gICAgICAgIGxvZGFzaC52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICAgIGxvZGFzaC52YWx1ZXNJbiA9IHZhbHVlc0luO1xuICAgICAgICBsb2Rhc2gud2l0aG91dCA9IHdpdGhvdXQ7XG4gICAgICAgIGxvZGFzaC53b3JkcyA9IHdvcmRzO1xuICAgICAgICBsb2Rhc2gud3JhcCA9IHdyYXA7XG4gICAgICAgIGxvZGFzaC54b3IgPSB4b3I7XG4gICAgICAgIGxvZGFzaC54b3JCeSA9IHhvckJ5O1xuICAgICAgICBsb2Rhc2gueG9yV2l0aCA9IHhvcldpdGg7XG4gICAgICAgIGxvZGFzaC56aXAgPSB6aXA7XG4gICAgICAgIGxvZGFzaC56aXBPYmplY3QgPSB6aXBPYmplY3Q7XG4gICAgICAgIGxvZGFzaC56aXBPYmplY3REZWVwID0gemlwT2JqZWN0RGVlcDtcbiAgICAgICAgbG9kYXNoLnppcFdpdGggPSB6aXBXaXRoO1xuICAgICAgICBsb2Rhc2guZW50cmllcyA9IHRvUGFpcnM7XG4gICAgICAgIGxvZGFzaC5lbnRyaWVzSW4gPSB0b1BhaXJzSW47XG4gICAgICAgIGxvZGFzaC5leHRlbmQgPSBhc3NpZ25JbjtcbiAgICAgICAgbG9kYXNoLmV4dGVuZFdpdGggPSBhc3NpZ25JbldpdGg7XG4gICAgICAgIG1peGluKGxvZGFzaCwgbG9kYXNoKTtcbiAgICAgICAgbG9kYXNoLmFkZCA9IGFkZDtcbiAgICAgICAgbG9kYXNoLmF0dGVtcHQgPSBhdHRlbXB0O1xuICAgICAgICBsb2Rhc2guY2FtZWxDYXNlID0gY2FtZWxDYXNlO1xuICAgICAgICBsb2Rhc2guY2FwaXRhbGl6ZSA9IGNhcGl0YWxpemU7XG4gICAgICAgIGxvZGFzaC5jZWlsID0gY2VpbDtcbiAgICAgICAgbG9kYXNoLmNsYW1wID0gY2xhbXA7XG4gICAgICAgIGxvZGFzaC5jbG9uZSA9IGNsb25lO1xuICAgICAgICBsb2Rhc2guY2xvbmVEZWVwID0gY2xvbmVEZWVwO1xuICAgICAgICBsb2Rhc2guY2xvbmVEZWVwV2l0aCA9IGNsb25lRGVlcFdpdGg7XG4gICAgICAgIGxvZGFzaC5jbG9uZVdpdGggPSBjbG9uZVdpdGg7XG4gICAgICAgIGxvZGFzaC5jb25mb3Jtc1RvID0gY29uZm9ybXNUbztcbiAgICAgICAgbG9kYXNoLmRlYnVyciA9IGRlYnVycjtcbiAgICAgICAgbG9kYXNoLmRlZmF1bHRUbyA9IGRlZmF1bHRUbztcbiAgICAgICAgbG9kYXNoLmRpdmlkZSA9IGRpdmlkZTtcbiAgICAgICAgbG9kYXNoLmVuZHNXaXRoID0gZW5kc1dpdGg7XG4gICAgICAgIGxvZGFzaC5lcSA9IGVxO1xuICAgICAgICBsb2Rhc2guZXNjYXBlID0gZXNjYXBlMjtcbiAgICAgICAgbG9kYXNoLmVzY2FwZVJlZ0V4cCA9IGVzY2FwZVJlZ0V4cDtcbiAgICAgICAgbG9kYXNoLmV2ZXJ5ID0gZXZlcnk7XG4gICAgICAgIGxvZGFzaC5maW5kID0gZmluZDtcbiAgICAgICAgbG9kYXNoLmZpbmRJbmRleCA9IGZpbmRJbmRleDtcbiAgICAgICAgbG9kYXNoLmZpbmRLZXkgPSBmaW5kS2V5O1xuICAgICAgICBsb2Rhc2guZmluZExhc3QgPSBmaW5kTGFzdDtcbiAgICAgICAgbG9kYXNoLmZpbmRMYXN0SW5kZXggPSBmaW5kTGFzdEluZGV4O1xuICAgICAgICBsb2Rhc2guZmluZExhc3RLZXkgPSBmaW5kTGFzdEtleTtcbiAgICAgICAgbG9kYXNoLmZsb29yID0gZmxvb3I7XG4gICAgICAgIGxvZGFzaC5mb3JFYWNoID0gZm9yRWFjaDtcbiAgICAgICAgbG9kYXNoLmZvckVhY2hSaWdodCA9IGZvckVhY2hSaWdodDtcbiAgICAgICAgbG9kYXNoLmZvckluID0gZm9ySW47XG4gICAgICAgIGxvZGFzaC5mb3JJblJpZ2h0ID0gZm9ySW5SaWdodDtcbiAgICAgICAgbG9kYXNoLmZvck93biA9IGZvck93bjtcbiAgICAgICAgbG9kYXNoLmZvck93blJpZ2h0ID0gZm9yT3duUmlnaHQ7XG4gICAgICAgIGxvZGFzaC5nZXQgPSBnZXQ7XG4gICAgICAgIGxvZGFzaC5ndCA9IGd0O1xuICAgICAgICBsb2Rhc2guZ3RlID0gZ3RlO1xuICAgICAgICBsb2Rhc2guaGFzID0gaGFzO1xuICAgICAgICBsb2Rhc2guaGFzSW4gPSBoYXNJbjtcbiAgICAgICAgbG9kYXNoLmhlYWQgPSBoZWFkO1xuICAgICAgICBsb2Rhc2guaWRlbnRpdHkgPSBpZGVudGl0eTtcbiAgICAgICAgbG9kYXNoLmluY2x1ZGVzID0gaW5jbHVkZXM7XG4gICAgICAgIGxvZGFzaC5pbmRleE9mID0gaW5kZXhPZjtcbiAgICAgICAgbG9kYXNoLmluUmFuZ2UgPSBpblJhbmdlO1xuICAgICAgICBsb2Rhc2guaW52b2tlID0gaW52b2tlO1xuICAgICAgICBsb2Rhc2guaXNBcmd1bWVudHMgPSBpc0FyZ3VtZW50cztcbiAgICAgICAgbG9kYXNoLmlzQXJyYXkgPSBpc0FycmF5O1xuICAgICAgICBsb2Rhc2guaXNBcnJheUJ1ZmZlciA9IGlzQXJyYXlCdWZmZXI7XG4gICAgICAgIGxvZGFzaC5pc0FycmF5TGlrZSA9IGlzQXJyYXlMaWtlO1xuICAgICAgICBsb2Rhc2guaXNBcnJheUxpa2VPYmplY3QgPSBpc0FycmF5TGlrZU9iamVjdDtcbiAgICAgICAgbG9kYXNoLmlzQm9vbGVhbiA9IGlzQm9vbGVhbjtcbiAgICAgICAgbG9kYXNoLmlzQnVmZmVyID0gaXNCdWZmZXI7XG4gICAgICAgIGxvZGFzaC5pc0RhdGUgPSBpc0RhdGU7XG4gICAgICAgIGxvZGFzaC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7XG4gICAgICAgIGxvZGFzaC5pc0VtcHR5ID0gaXNFbXB0eTtcbiAgICAgICAgbG9kYXNoLmlzRXF1YWwgPSBpc0VxdWFsO1xuICAgICAgICBsb2Rhc2guaXNFcXVhbFdpdGggPSBpc0VxdWFsV2l0aDtcbiAgICAgICAgbG9kYXNoLmlzRXJyb3IgPSBpc0Vycm9yO1xuICAgICAgICBsb2Rhc2guaXNGaW5pdGUgPSBpc0Zpbml0ZTI7XG4gICAgICAgIGxvZGFzaC5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjtcbiAgICAgICAgbG9kYXNoLmlzSW50ZWdlciA9IGlzSW50ZWdlcjtcbiAgICAgICAgbG9kYXNoLmlzTGVuZ3RoID0gaXNMZW5ndGg7XG4gICAgICAgIGxvZGFzaC5pc01hcCA9IGlzTWFwO1xuICAgICAgICBsb2Rhc2guaXNNYXRjaCA9IGlzTWF0Y2g7XG4gICAgICAgIGxvZGFzaC5pc01hdGNoV2l0aCA9IGlzTWF0Y2hXaXRoO1xuICAgICAgICBsb2Rhc2guaXNOYU4gPSBpc05hTjI7XG4gICAgICAgIGxvZGFzaC5pc05hdGl2ZSA9IGlzTmF0aXZlO1xuICAgICAgICBsb2Rhc2guaXNOaWwgPSBpc05pbDtcbiAgICAgICAgbG9kYXNoLmlzTnVsbCA9IGlzTnVsbDtcbiAgICAgICAgbG9kYXNoLmlzTnVtYmVyID0gaXNOdW1iZXI7XG4gICAgICAgIGxvZGFzaC5pc09iamVjdCA9IGlzT2JqZWN0O1xuICAgICAgICBsb2Rhc2guaXNPYmplY3RMaWtlID0gaXNPYmplY3RMaWtlO1xuICAgICAgICBsb2Rhc2guaXNQbGFpbk9iamVjdCA9IGlzUGxhaW5PYmplY3Q7XG4gICAgICAgIGxvZGFzaC5pc1JlZ0V4cCA9IGlzUmVnRXhwO1xuICAgICAgICBsb2Rhc2guaXNTYWZlSW50ZWdlciA9IGlzU2FmZUludGVnZXI7XG4gICAgICAgIGxvZGFzaC5pc1NldCA9IGlzU2V0O1xuICAgICAgICBsb2Rhc2guaXNTdHJpbmcgPSBpc1N0cmluZztcbiAgICAgICAgbG9kYXNoLmlzU3ltYm9sID0gaXNTeW1ib2w7XG4gICAgICAgIGxvZGFzaC5pc1R5cGVkQXJyYXkgPSBpc1R5cGVkQXJyYXk7XG4gICAgICAgIGxvZGFzaC5pc1VuZGVmaW5lZCA9IGlzVW5kZWZpbmVkO1xuICAgICAgICBsb2Rhc2guaXNXZWFrTWFwID0gaXNXZWFrTWFwO1xuICAgICAgICBsb2Rhc2guaXNXZWFrU2V0ID0gaXNXZWFrU2V0O1xuICAgICAgICBsb2Rhc2guam9pbiA9IGpvaW47XG4gICAgICAgIGxvZGFzaC5rZWJhYkNhc2UgPSBrZWJhYkNhc2U7XG4gICAgICAgIGxvZGFzaC5sYXN0ID0gbGFzdDtcbiAgICAgICAgbG9kYXNoLmxhc3RJbmRleE9mID0gbGFzdEluZGV4T2Y7XG4gICAgICAgIGxvZGFzaC5sb3dlckNhc2UgPSBsb3dlckNhc2U7XG4gICAgICAgIGxvZGFzaC5sb3dlckZpcnN0ID0gbG93ZXJGaXJzdDtcbiAgICAgICAgbG9kYXNoLmx0ID0gbHQ7XG4gICAgICAgIGxvZGFzaC5sdGUgPSBsdGU7XG4gICAgICAgIGxvZGFzaC5tYXggPSBtYXg7XG4gICAgICAgIGxvZGFzaC5tYXhCeSA9IG1heEJ5O1xuICAgICAgICBsb2Rhc2gubWVhbiA9IG1lYW47XG4gICAgICAgIGxvZGFzaC5tZWFuQnkgPSBtZWFuQnk7XG4gICAgICAgIGxvZGFzaC5taW4gPSBtaW47XG4gICAgICAgIGxvZGFzaC5taW5CeSA9IG1pbkJ5O1xuICAgICAgICBsb2Rhc2guc3R1YkFycmF5ID0gc3R1YkFycmF5O1xuICAgICAgICBsb2Rhc2guc3R1YkZhbHNlID0gc3R1YkZhbHNlO1xuICAgICAgICBsb2Rhc2guc3R1Yk9iamVjdCA9IHN0dWJPYmplY3Q7XG4gICAgICAgIGxvZGFzaC5zdHViU3RyaW5nID0gc3R1YlN0cmluZztcbiAgICAgICAgbG9kYXNoLnN0dWJUcnVlID0gc3R1YlRydWU7XG4gICAgICAgIGxvZGFzaC5tdWx0aXBseSA9IG11bHRpcGx5O1xuICAgICAgICBsb2Rhc2gubnRoID0gbnRoO1xuICAgICAgICBsb2Rhc2gubm9Db25mbGljdCA9IG5vQ29uZmxpY3Q7XG4gICAgICAgIGxvZGFzaC5ub29wID0gbm9vcDtcbiAgICAgICAgbG9kYXNoLm5vdyA9IG5vdztcbiAgICAgICAgbG9kYXNoLnBhZCA9IHBhZDtcbiAgICAgICAgbG9kYXNoLnBhZEVuZCA9IHBhZEVuZDtcbiAgICAgICAgbG9kYXNoLnBhZFN0YXJ0ID0gcGFkU3RhcnQ7XG4gICAgICAgIGxvZGFzaC5wYXJzZUludCA9IHBhcnNlSW50MjtcbiAgICAgICAgbG9kYXNoLnJhbmRvbSA9IHJhbmRvbTtcbiAgICAgICAgbG9kYXNoLnJlZHVjZSA9IHJlZHVjZTtcbiAgICAgICAgbG9kYXNoLnJlZHVjZVJpZ2h0ID0gcmVkdWNlUmlnaHQ7XG4gICAgICAgIGxvZGFzaC5yZXBlYXQgPSByZXBlYXQ7XG4gICAgICAgIGxvZGFzaC5yZXBsYWNlID0gcmVwbGFjZTtcbiAgICAgICAgbG9kYXNoLnJlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgbG9kYXNoLnJvdW5kID0gcm91bmQ7XG4gICAgICAgIGxvZGFzaC5ydW5JbkNvbnRleHQgPSBydW5JbkNvbnRleHQyO1xuICAgICAgICBsb2Rhc2guc2FtcGxlID0gc2FtcGxlO1xuICAgICAgICBsb2Rhc2guc2l6ZSA9IHNpemU7XG4gICAgICAgIGxvZGFzaC5zbmFrZUNhc2UgPSBzbmFrZUNhc2U7XG4gICAgICAgIGxvZGFzaC5zb21lID0gc29tZTtcbiAgICAgICAgbG9kYXNoLnNvcnRlZEluZGV4ID0gc29ydGVkSW5kZXg7XG4gICAgICAgIGxvZGFzaC5zb3J0ZWRJbmRleEJ5ID0gc29ydGVkSW5kZXhCeTtcbiAgICAgICAgbG9kYXNoLnNvcnRlZEluZGV4T2YgPSBzb3J0ZWRJbmRleE9mO1xuICAgICAgICBsb2Rhc2guc29ydGVkTGFzdEluZGV4ID0gc29ydGVkTGFzdEluZGV4O1xuICAgICAgICBsb2Rhc2guc29ydGVkTGFzdEluZGV4QnkgPSBzb3J0ZWRMYXN0SW5kZXhCeTtcbiAgICAgICAgbG9kYXNoLnNvcnRlZExhc3RJbmRleE9mID0gc29ydGVkTGFzdEluZGV4T2Y7XG4gICAgICAgIGxvZGFzaC5zdGFydENhc2UgPSBzdGFydENhc2U7XG4gICAgICAgIGxvZGFzaC5zdGFydHNXaXRoID0gc3RhcnRzV2l0aDtcbiAgICAgICAgbG9kYXNoLnN1YnRyYWN0ID0gc3VidHJhY3Q7XG4gICAgICAgIGxvZGFzaC5zdW0gPSBzdW07XG4gICAgICAgIGxvZGFzaC5zdW1CeSA9IHN1bUJ5O1xuICAgICAgICBsb2Rhc2gudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICAgICAgbG9kYXNoLnRpbWVzID0gdGltZXM7XG4gICAgICAgIGxvZGFzaC50b0Zpbml0ZSA9IHRvRmluaXRlO1xuICAgICAgICBsb2Rhc2gudG9JbnRlZ2VyID0gdG9JbnRlZ2VyO1xuICAgICAgICBsb2Rhc2gudG9MZW5ndGggPSB0b0xlbmd0aDtcbiAgICAgICAgbG9kYXNoLnRvTG93ZXIgPSB0b0xvd2VyO1xuICAgICAgICBsb2Rhc2gudG9OdW1iZXIgPSB0b051bWJlcjtcbiAgICAgICAgbG9kYXNoLnRvU2FmZUludGVnZXIgPSB0b1NhZmVJbnRlZ2VyO1xuICAgICAgICBsb2Rhc2gudG9TdHJpbmcgPSB0b1N0cmluZztcbiAgICAgICAgbG9kYXNoLnRvVXBwZXIgPSB0b1VwcGVyO1xuICAgICAgICBsb2Rhc2gudHJpbSA9IHRyaW07XG4gICAgICAgIGxvZGFzaC50cmltRW5kID0gdHJpbUVuZDtcbiAgICAgICAgbG9kYXNoLnRyaW1TdGFydCA9IHRyaW1TdGFydDtcbiAgICAgICAgbG9kYXNoLnRydW5jYXRlID0gdHJ1bmNhdGU7XG4gICAgICAgIGxvZGFzaC51bmVzY2FwZSA9IHVuZXNjYXBlMjtcbiAgICAgICAgbG9kYXNoLnVuaXF1ZUlkID0gdW5pcXVlSWQ7XG4gICAgICAgIGxvZGFzaC51cHBlckNhc2UgPSB1cHBlckNhc2U7XG4gICAgICAgIGxvZGFzaC51cHBlckZpcnN0ID0gdXBwZXJGaXJzdDtcbiAgICAgICAgbG9kYXNoLmVhY2ggPSBmb3JFYWNoO1xuICAgICAgICBsb2Rhc2guZWFjaFJpZ2h0ID0gZm9yRWFjaFJpZ2h0O1xuICAgICAgICBsb2Rhc2guZmlyc3QgPSBoZWFkO1xuICAgICAgICBtaXhpbihsb2Rhc2gsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBzb3VyY2UgPSB7fTtcbiAgICAgICAgICBiYXNlRm9yT3duKGxvZGFzaCwgZnVuY3Rpb24oZnVuYywgbWV0aG9kTmFtZSkge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wZXJ0eS5jYWxsKGxvZGFzaC5wcm90b3R5cGUsIG1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgICAgIHNvdXJjZVttZXRob2ROYW1lXSA9IGZ1bmM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgICAgfSgpLCB7IFwiY2hhaW5cIjogZmFsc2UgfSk7XG4gICAgICAgIGxvZGFzaC5WRVJTSU9OID0gVkVSU0lPTjtcbiAgICAgICAgYXJyYXlFYWNoKFtcImJpbmRcIiwgXCJiaW5kS2V5XCIsIFwiY3VycnlcIiwgXCJjdXJyeVJpZ2h0XCIsIFwicGFydGlhbFwiLCBcInBhcnRpYWxSaWdodFwiXSwgZnVuY3Rpb24obWV0aG9kTmFtZSkge1xuICAgICAgICAgIGxvZGFzaFttZXRob2ROYW1lXS5wbGFjZWhvbGRlciA9IGxvZGFzaDtcbiAgICAgICAgfSk7XG4gICAgICAgIGFycmF5RWFjaChbXCJkcm9wXCIsIFwidGFrZVwiXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbihuKSB7XG4gICAgICAgICAgICBuID0gbiA9PT0gdW5kZWZpbmVkMiA/IDEgOiBuYXRpdmVNYXgodG9JbnRlZ2VyKG4pLCAwKTtcbiAgICAgICAgICAgIHZhciByZXN1bHQyID0gdGhpcy5fX2ZpbHRlcmVkX18gJiYgIWluZGV4ID8gbmV3IExhenlXcmFwcGVyKHRoaXMpIDogdGhpcy5jbG9uZSgpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdDIuX19maWx0ZXJlZF9fKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIuX190YWtlQ291bnRfXyA9IG5hdGl2ZU1pbihuLCByZXN1bHQyLl9fdGFrZUNvdW50X18pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzdWx0Mi5fX3ZpZXdzX18ucHVzaCh7XG4gICAgICAgICAgICAgICAgXCJzaXplXCI6IG5hdGl2ZU1pbihuLCBNQVhfQVJSQVlfTEVOR1RIKSxcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogbWV0aG9kTmFtZSArIChyZXN1bHQyLl9fZGlyX18gPCAwID8gXCJSaWdodFwiIDogXCJcIilcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgICB9O1xuICAgICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lICsgXCJSaWdodFwiXSA9IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldmVyc2UoKVttZXRob2ROYW1lXShuKS5yZXZlcnNlKCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGFycmF5RWFjaChbXCJmaWx0ZXJcIiwgXCJtYXBcIiwgXCJ0YWtlV2hpbGVcIl0sIGZ1bmN0aW9uKG1ldGhvZE5hbWUsIGluZGV4KSB7XG4gICAgICAgICAgdmFyIHR5cGUgPSBpbmRleCArIDEsIGlzRmlsdGVyID0gdHlwZSA9PSBMQVpZX0ZJTFRFUl9GTEFHIHx8IHR5cGUgPT0gTEFaWV9XSElMRV9GTEFHO1xuICAgICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKGl0ZXJhdGVlMikge1xuICAgICAgICAgICAgdmFyIHJlc3VsdDIgPSB0aGlzLmNsb25lKCk7XG4gICAgICAgICAgICByZXN1bHQyLl9faXRlcmF0ZWVzX18ucHVzaCh7XG4gICAgICAgICAgICAgIFwiaXRlcmF0ZWVcIjogZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAzKSxcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IHR5cGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzdWx0Mi5fX2ZpbHRlcmVkX18gPSByZXN1bHQyLl9fZmlsdGVyZWRfXyB8fCBpc0ZpbHRlcjtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICBhcnJheUVhY2goW1wiaGVhZFwiLCBcImxhc3RcIl0sIGZ1bmN0aW9uKG1ldGhvZE5hbWUsIGluZGV4KSB7XG4gICAgICAgICAgdmFyIHRha2VOYW1lID0gXCJ0YWtlXCIgKyAoaW5kZXggPyBcIlJpZ2h0XCIgOiBcIlwiKTtcbiAgICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzW3Rha2VOYW1lXSgxKS52YWx1ZSgpWzBdO1xuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICBhcnJheUVhY2goW1wiaW5pdGlhbFwiLCBcInRhaWxcIl0sIGZ1bmN0aW9uKG1ldGhvZE5hbWUsIGluZGV4KSB7XG4gICAgICAgICAgdmFyIGRyb3BOYW1lID0gXCJkcm9wXCIgKyAoaW5kZXggPyBcIlwiIDogXCJSaWdodFwiKTtcbiAgICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9fZmlsdGVyZWRfXyA/IG5ldyBMYXp5V3JhcHBlcih0aGlzKSA6IHRoaXNbZHJvcE5hbWVdKDEpO1xuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuY29tcGFjdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmZpbHRlcihpZGVudGl0eSk7XG4gICAgICAgIH07XG4gICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5maW5kID0gZnVuY3Rpb24ocHJlZGljYXRlKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKHByZWRpY2F0ZSkuaGVhZCgpO1xuICAgICAgICB9O1xuICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuZmluZExhc3QgPSBmdW5jdGlvbihwcmVkaWNhdGUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZXZlcnNlKCkuZmluZChwcmVkaWNhdGUpO1xuICAgICAgICB9O1xuICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuaW52b2tlTWFwID0gYmFzZVJlc3QoZnVuY3Rpb24ocGF0aCwgYXJncykge1xuICAgICAgICAgIGlmICh0eXBlb2YgcGF0aCA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTGF6eVdyYXBwZXIodGhpcyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VJbnZva2UodmFsdWUsIHBhdGgsIGFyZ3MpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnJlamVjdCA9IGZ1bmN0aW9uKHByZWRpY2F0ZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmZpbHRlcihuZWdhdGUoZ2V0SXRlcmF0ZWUocHJlZGljYXRlKSkpO1xuICAgICAgICB9O1xuICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbihzdGFydCwgZW5kKSB7XG4gICAgICAgICAgc3RhcnQgPSB0b0ludGVnZXIoc3RhcnQpO1xuICAgICAgICAgIHZhciByZXN1bHQyID0gdGhpcztcbiAgICAgICAgICBpZiAocmVzdWx0Mi5fX2ZpbHRlcmVkX18gJiYgKHN0YXJ0ID4gMCB8fCBlbmQgPCAwKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMYXp5V3JhcHBlcihyZXN1bHQyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0YXJ0IDwgMCkge1xuICAgICAgICAgICAgcmVzdWx0MiA9IHJlc3VsdDIudGFrZVJpZ2h0KC1zdGFydCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChzdGFydCkge1xuICAgICAgICAgICAgcmVzdWx0MiA9IHJlc3VsdDIuZHJvcChzdGFydCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbmQgIT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIGVuZCA9IHRvSW50ZWdlcihlbmQpO1xuICAgICAgICAgICAgcmVzdWx0MiA9IGVuZCA8IDAgPyByZXN1bHQyLmRyb3BSaWdodCgtZW5kKSA6IHJlc3VsdDIudGFrZShlbmQgLSBzdGFydCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9O1xuICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUudGFrZVJpZ2h0V2hpbGUgPSBmdW5jdGlvbihwcmVkaWNhdGUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZXZlcnNlKCkudGFrZVdoaWxlKHByZWRpY2F0ZSkucmV2ZXJzZSgpO1xuICAgICAgICB9O1xuICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRha2UoTUFYX0FSUkFZX0xFTkdUSCk7XG4gICAgICAgIH07XG4gICAgICAgIGJhc2VGb3JPd24oTGF6eVdyYXBwZXIucHJvdG90eXBlLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XG4gICAgICAgICAgdmFyIGNoZWNrSXRlcmF0ZWUgPSAvXig/OmZpbHRlcnxmaW5kfG1hcHxyZWplY3QpfFdoaWxlJC8udGVzdChtZXRob2ROYW1lKSwgaXNUYWtlciA9IC9eKD86aGVhZHxsYXN0KSQvLnRlc3QobWV0aG9kTmFtZSksIGxvZGFzaEZ1bmMgPSBsb2Rhc2hbaXNUYWtlciA/IFwidGFrZVwiICsgKG1ldGhvZE5hbWUgPT0gXCJsYXN0XCIgPyBcIlJpZ2h0XCIgOiBcIlwiKSA6IG1ldGhvZE5hbWVdLCByZXRVbndyYXBwZWQgPSBpc1Rha2VyIHx8IC9eZmluZC8udGVzdChtZXRob2ROYW1lKTtcbiAgICAgICAgICBpZiAoIWxvZGFzaEZ1bmMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbG9kYXNoLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gdGhpcy5fX3dyYXBwZWRfXywgYXJncyA9IGlzVGFrZXIgPyBbMV0gOiBhcmd1bWVudHMsIGlzTGF6eSA9IHZhbHVlIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIsIGl0ZXJhdGVlMiA9IGFyZ3NbMF0sIHVzZUxhenkgPSBpc0xhenkgfHwgaXNBcnJheSh2YWx1ZSk7XG4gICAgICAgICAgICB2YXIgaW50ZXJjZXB0b3IgPSBmdW5jdGlvbih2YWx1ZTIpIHtcbiAgICAgICAgICAgICAgdmFyIHJlc3VsdDMgPSBsb2Rhc2hGdW5jLmFwcGx5KGxvZGFzaCwgYXJyYXlQdXNoKFt2YWx1ZTJdLCBhcmdzKSk7XG4gICAgICAgICAgICAgIHJldHVybiBpc1Rha2VyICYmIGNoYWluQWxsID8gcmVzdWx0M1swXSA6IHJlc3VsdDM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHVzZUxhenkgJiYgY2hlY2tJdGVyYXRlZSAmJiB0eXBlb2YgaXRlcmF0ZWUyID09IFwiZnVuY3Rpb25cIiAmJiBpdGVyYXRlZTIubGVuZ3RoICE9IDEpIHtcbiAgICAgICAgICAgICAgaXNMYXp5ID0gdXNlTGF6eSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGNoYWluQWxsID0gdGhpcy5fX2NoYWluX18sIGlzSHlicmlkID0gISF0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCwgaXNVbndyYXBwZWQgPSByZXRVbndyYXBwZWQgJiYgIWNoYWluQWxsLCBvbmx5TGF6eSA9IGlzTGF6eSAmJiAhaXNIeWJyaWQ7XG4gICAgICAgICAgICBpZiAoIXJldFVud3JhcHBlZCAmJiB1c2VMYXp5KSB7XG4gICAgICAgICAgICAgIHZhbHVlID0gb25seUxhenkgPyB2YWx1ZSA6IG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcbiAgICAgICAgICAgICAgdmFyIHJlc3VsdDIgPSBmdW5jLmFwcGx5KHZhbHVlLCBhcmdzKTtcbiAgICAgICAgICAgICAgcmVzdWx0Mi5fX2FjdGlvbnNfXy5wdXNoKHsgXCJmdW5jXCI6IHRocnUsIFwiYXJnc1wiOiBbaW50ZXJjZXB0b3JdLCBcInRoaXNBcmdcIjogdW5kZWZpbmVkMiB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHJlc3VsdDIsIGNoYWluQWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1Vud3JhcHBlZCAmJiBvbmx5TGF6eSkge1xuICAgICAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdDIgPSB0aGlzLnRocnUoaW50ZXJjZXB0b3IpO1xuICAgICAgICAgICAgcmV0dXJuIGlzVW53cmFwcGVkID8gaXNUYWtlciA/IHJlc3VsdDIudmFsdWUoKVswXSA6IHJlc3VsdDIudmFsdWUoKSA6IHJlc3VsdDI7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGFycmF5RWFjaChbXCJwb3BcIiwgXCJwdXNoXCIsIFwic2hpZnRcIiwgXCJzb3J0XCIsIFwic3BsaWNlXCIsIFwidW5zaGlmdFwiXSwgZnVuY3Rpb24obWV0aG9kTmFtZSkge1xuICAgICAgICAgIHZhciBmdW5jID0gYXJyYXlQcm90b1ttZXRob2ROYW1lXSwgY2hhaW5OYW1lID0gL14oPzpwdXNofHNvcnR8dW5zaGlmdCkkLy50ZXN0KG1ldGhvZE5hbWUpID8gXCJ0YXBcIiA6IFwidGhydVwiLCByZXRVbndyYXBwZWQgPSAvXig/OnBvcHxzaGlmdCkkLy50ZXN0KG1ldGhvZE5hbWUpO1xuICAgICAgICAgIGxvZGFzaC5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICAgICAgaWYgKHJldFVud3JhcHBlZCAmJiAhdGhpcy5fX2NoYWluX18pIHtcbiAgICAgICAgICAgICAgdmFyIHZhbHVlID0gdGhpcy52YWx1ZSgpO1xuICAgICAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseShpc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW10sIGFyZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXNbY2hhaW5OYW1lXShmdW5jdGlvbih2YWx1ZTIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkoaXNBcnJheSh2YWx1ZTIpID8gdmFsdWUyIDogW10sIGFyZ3MpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJhc2VGb3JPd24oTGF6eVdyYXBwZXIucHJvdG90eXBlLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XG4gICAgICAgICAgdmFyIGxvZGFzaEZ1bmMgPSBsb2Rhc2hbbWV0aG9kTmFtZV07XG4gICAgICAgICAgaWYgKGxvZGFzaEZ1bmMpIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBsb2Rhc2hGdW5jLm5hbWUgKyBcIlwiO1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlYWxOYW1lcywga2V5KSkge1xuICAgICAgICAgICAgICByZWFsTmFtZXNba2V5XSA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVhbE5hbWVzW2tleV0ucHVzaCh7IFwibmFtZVwiOiBtZXRob2ROYW1lLCBcImZ1bmNcIjogbG9kYXNoRnVuYyB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZWFsTmFtZXNbY3JlYXRlSHlicmlkKHVuZGVmaW5lZDIsIFdSQVBfQklORF9LRVlfRkxBRykubmFtZV0gPSBbe1xuICAgICAgICAgIFwibmFtZVwiOiBcIndyYXBwZXJcIixcbiAgICAgICAgICBcImZ1bmNcIjogdW5kZWZpbmVkMlxuICAgICAgICB9XTtcbiAgICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmNsb25lID0gbGF6eUNsb25lO1xuICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUucmV2ZXJzZSA9IGxhenlSZXZlcnNlO1xuICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUudmFsdWUgPSBsYXp5VmFsdWU7XG4gICAgICAgIGxvZGFzaC5wcm90b3R5cGUuYXQgPSB3cmFwcGVyQXQ7XG4gICAgICAgIGxvZGFzaC5wcm90b3R5cGUuY2hhaW4gPSB3cmFwcGVyQ2hhaW47XG4gICAgICAgIGxvZGFzaC5wcm90b3R5cGUuY29tbWl0ID0gd3JhcHBlckNvbW1pdDtcbiAgICAgICAgbG9kYXNoLnByb3RvdHlwZS5uZXh0ID0gd3JhcHBlck5leHQ7XG4gICAgICAgIGxvZGFzaC5wcm90b3R5cGUucGxhbnQgPSB3cmFwcGVyUGxhbnQ7XG4gICAgICAgIGxvZGFzaC5wcm90b3R5cGUucmV2ZXJzZSA9IHdyYXBwZXJSZXZlcnNlO1xuICAgICAgICBsb2Rhc2gucHJvdG90eXBlLnRvSlNPTiA9IGxvZGFzaC5wcm90b3R5cGUudmFsdWVPZiA9IGxvZGFzaC5wcm90b3R5cGUudmFsdWUgPSB3cmFwcGVyVmFsdWU7XG4gICAgICAgIGxvZGFzaC5wcm90b3R5cGUuZmlyc3QgPSBsb2Rhc2gucHJvdG90eXBlLmhlYWQ7XG4gICAgICAgIGlmIChzeW1JdGVyYXRvcikge1xuICAgICAgICAgIGxvZGFzaC5wcm90b3R5cGVbc3ltSXRlcmF0b3JdID0gd3JhcHBlclRvSXRlcmF0b3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvZGFzaDtcbiAgICAgIH07XG4gICAgICB2YXIgXzIgPSBydW5JbkNvbnRleHQoKTtcbiAgICAgIGlmICh0eXBlb2YgZGVmaW5lID09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PSBcIm9iamVjdFwiICYmIGRlZmluZS5hbWQpIHtcbiAgICAgICAgcm9vdC5fID0gXzI7XG4gICAgICAgIGRlZmluZShmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gXzI7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChmcmVlTW9kdWxlKSB7XG4gICAgICAgIChmcmVlTW9kdWxlLmV4cG9ydHMgPSBfMikuXyA9IF8yO1xuICAgICAgICBmcmVlRXhwb3J0cy5fID0gXzI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb290Ll8gPSBfMjtcbiAgICAgIH1cbiAgICB9KS5jYWxsKGV4cG9ydHMyKTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jb2xvci1uYW1lL2luZGV4LmpzXG52YXIgcmVxdWlyZV9jb2xvcl9uYW1lID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2NvbG9yLW5hbWUvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIFwiYWxpY2VibHVlXCI6IFsyNDAsIDI0OCwgMjU1XSxcbiAgICAgIFwiYW50aXF1ZXdoaXRlXCI6IFsyNTAsIDIzNSwgMjE1XSxcbiAgICAgIFwiYXF1YVwiOiBbMCwgMjU1LCAyNTVdLFxuICAgICAgXCJhcXVhbWFyaW5lXCI6IFsxMjcsIDI1NSwgMjEyXSxcbiAgICAgIFwiYXp1cmVcIjogWzI0MCwgMjU1LCAyNTVdLFxuICAgICAgXCJiZWlnZVwiOiBbMjQ1LCAyNDUsIDIyMF0sXG4gICAgICBcImJpc3F1ZVwiOiBbMjU1LCAyMjgsIDE5Nl0sXG4gICAgICBcImJsYWNrXCI6IFswLCAwLCAwXSxcbiAgICAgIFwiYmxhbmNoZWRhbG1vbmRcIjogWzI1NSwgMjM1LCAyMDVdLFxuICAgICAgXCJibHVlXCI6IFswLCAwLCAyNTVdLFxuICAgICAgXCJibHVldmlvbGV0XCI6IFsxMzgsIDQzLCAyMjZdLFxuICAgICAgXCJicm93blwiOiBbMTY1LCA0MiwgNDJdLFxuICAgICAgXCJidXJseXdvb2RcIjogWzIyMiwgMTg0LCAxMzVdLFxuICAgICAgXCJjYWRldGJsdWVcIjogWzk1LCAxNTgsIDE2MF0sXG4gICAgICBcImNoYXJ0cmV1c2VcIjogWzEyNywgMjU1LCAwXSxcbiAgICAgIFwiY2hvY29sYXRlXCI6IFsyMTAsIDEwNSwgMzBdLFxuICAgICAgXCJjb3JhbFwiOiBbMjU1LCAxMjcsIDgwXSxcbiAgICAgIFwiY29ybmZsb3dlcmJsdWVcIjogWzEwMCwgMTQ5LCAyMzddLFxuICAgICAgXCJjb3Juc2lsa1wiOiBbMjU1LCAyNDgsIDIyMF0sXG4gICAgICBcImNyaW1zb25cIjogWzIyMCwgMjAsIDYwXSxcbiAgICAgIFwiY3lhblwiOiBbMCwgMjU1LCAyNTVdLFxuICAgICAgXCJkYXJrYmx1ZVwiOiBbMCwgMCwgMTM5XSxcbiAgICAgIFwiZGFya2N5YW5cIjogWzAsIDEzOSwgMTM5XSxcbiAgICAgIFwiZGFya2dvbGRlbnJvZFwiOiBbMTg0LCAxMzQsIDExXSxcbiAgICAgIFwiZGFya2dyYXlcIjogWzE2OSwgMTY5LCAxNjldLFxuICAgICAgXCJkYXJrZ3JlZW5cIjogWzAsIDEwMCwgMF0sXG4gICAgICBcImRhcmtncmV5XCI6IFsxNjksIDE2OSwgMTY5XSxcbiAgICAgIFwiZGFya2toYWtpXCI6IFsxODksIDE4MywgMTA3XSxcbiAgICAgIFwiZGFya21hZ2VudGFcIjogWzEzOSwgMCwgMTM5XSxcbiAgICAgIFwiZGFya29saXZlZ3JlZW5cIjogWzg1LCAxMDcsIDQ3XSxcbiAgICAgIFwiZGFya29yYW5nZVwiOiBbMjU1LCAxNDAsIDBdLFxuICAgICAgXCJkYXJrb3JjaGlkXCI6IFsxNTMsIDUwLCAyMDRdLFxuICAgICAgXCJkYXJrcmVkXCI6IFsxMzksIDAsIDBdLFxuICAgICAgXCJkYXJrc2FsbW9uXCI6IFsyMzMsIDE1MCwgMTIyXSxcbiAgICAgIFwiZGFya3NlYWdyZWVuXCI6IFsxNDMsIDE4OCwgMTQzXSxcbiAgICAgIFwiZGFya3NsYXRlYmx1ZVwiOiBbNzIsIDYxLCAxMzldLFxuICAgICAgXCJkYXJrc2xhdGVncmF5XCI6IFs0NywgNzksIDc5XSxcbiAgICAgIFwiZGFya3NsYXRlZ3JleVwiOiBbNDcsIDc5LCA3OV0sXG4gICAgICBcImRhcmt0dXJxdW9pc2VcIjogWzAsIDIwNiwgMjA5XSxcbiAgICAgIFwiZGFya3Zpb2xldFwiOiBbMTQ4LCAwLCAyMTFdLFxuICAgICAgXCJkZWVwcGlua1wiOiBbMjU1LCAyMCwgMTQ3XSxcbiAgICAgIFwiZGVlcHNreWJsdWVcIjogWzAsIDE5MSwgMjU1XSxcbiAgICAgIFwiZGltZ3JheVwiOiBbMTA1LCAxMDUsIDEwNV0sXG4gICAgICBcImRpbWdyZXlcIjogWzEwNSwgMTA1LCAxMDVdLFxuICAgICAgXCJkb2RnZXJibHVlXCI6IFszMCwgMTQ0LCAyNTVdLFxuICAgICAgXCJmaXJlYnJpY2tcIjogWzE3OCwgMzQsIDM0XSxcbiAgICAgIFwiZmxvcmFsd2hpdGVcIjogWzI1NSwgMjUwLCAyNDBdLFxuICAgICAgXCJmb3Jlc3RncmVlblwiOiBbMzQsIDEzOSwgMzRdLFxuICAgICAgXCJmdWNoc2lhXCI6IFsyNTUsIDAsIDI1NV0sXG4gICAgICBcImdhaW5zYm9yb1wiOiBbMjIwLCAyMjAsIDIyMF0sXG4gICAgICBcImdob3N0d2hpdGVcIjogWzI0OCwgMjQ4LCAyNTVdLFxuICAgICAgXCJnb2xkXCI6IFsyNTUsIDIxNSwgMF0sXG4gICAgICBcImdvbGRlbnJvZFwiOiBbMjE4LCAxNjUsIDMyXSxcbiAgICAgIFwiZ3JheVwiOiBbMTI4LCAxMjgsIDEyOF0sXG4gICAgICBcImdyZWVuXCI6IFswLCAxMjgsIDBdLFxuICAgICAgXCJncmVlbnllbGxvd1wiOiBbMTczLCAyNTUsIDQ3XSxcbiAgICAgIFwiZ3JleVwiOiBbMTI4LCAxMjgsIDEyOF0sXG4gICAgICBcImhvbmV5ZGV3XCI6IFsyNDAsIDI1NSwgMjQwXSxcbiAgICAgIFwiaG90cGlua1wiOiBbMjU1LCAxMDUsIDE4MF0sXG4gICAgICBcImluZGlhbnJlZFwiOiBbMjA1LCA5MiwgOTJdLFxuICAgICAgXCJpbmRpZ29cIjogWzc1LCAwLCAxMzBdLFxuICAgICAgXCJpdm9yeVwiOiBbMjU1LCAyNTUsIDI0MF0sXG4gICAgICBcImtoYWtpXCI6IFsyNDAsIDIzMCwgMTQwXSxcbiAgICAgIFwibGF2ZW5kZXJcIjogWzIzMCwgMjMwLCAyNTBdLFxuICAgICAgXCJsYXZlbmRlcmJsdXNoXCI6IFsyNTUsIDI0MCwgMjQ1XSxcbiAgICAgIFwibGF3bmdyZWVuXCI6IFsxMjQsIDI1MiwgMF0sXG4gICAgICBcImxlbW9uY2hpZmZvblwiOiBbMjU1LCAyNTAsIDIwNV0sXG4gICAgICBcImxpZ2h0Ymx1ZVwiOiBbMTczLCAyMTYsIDIzMF0sXG4gICAgICBcImxpZ2h0Y29yYWxcIjogWzI0MCwgMTI4LCAxMjhdLFxuICAgICAgXCJsaWdodGN5YW5cIjogWzIyNCwgMjU1LCAyNTVdLFxuICAgICAgXCJsaWdodGdvbGRlbnJvZHllbGxvd1wiOiBbMjUwLCAyNTAsIDIxMF0sXG4gICAgICBcImxpZ2h0Z3JheVwiOiBbMjExLCAyMTEsIDIxMV0sXG4gICAgICBcImxpZ2h0Z3JlZW5cIjogWzE0NCwgMjM4LCAxNDRdLFxuICAgICAgXCJsaWdodGdyZXlcIjogWzIxMSwgMjExLCAyMTFdLFxuICAgICAgXCJsaWdodHBpbmtcIjogWzI1NSwgMTgyLCAxOTNdLFxuICAgICAgXCJsaWdodHNhbG1vblwiOiBbMjU1LCAxNjAsIDEyMl0sXG4gICAgICBcImxpZ2h0c2VhZ3JlZW5cIjogWzMyLCAxNzgsIDE3MF0sXG4gICAgICBcImxpZ2h0c2t5Ymx1ZVwiOiBbMTM1LCAyMDYsIDI1MF0sXG4gICAgICBcImxpZ2h0c2xhdGVncmF5XCI6IFsxMTksIDEzNiwgMTUzXSxcbiAgICAgIFwibGlnaHRzbGF0ZWdyZXlcIjogWzExOSwgMTM2LCAxNTNdLFxuICAgICAgXCJsaWdodHN0ZWVsYmx1ZVwiOiBbMTc2LCAxOTYsIDIyMl0sXG4gICAgICBcImxpZ2h0eWVsbG93XCI6IFsyNTUsIDI1NSwgMjI0XSxcbiAgICAgIFwibGltZVwiOiBbMCwgMjU1LCAwXSxcbiAgICAgIFwibGltZWdyZWVuXCI6IFs1MCwgMjA1LCA1MF0sXG4gICAgICBcImxpbmVuXCI6IFsyNTAsIDI0MCwgMjMwXSxcbiAgICAgIFwibWFnZW50YVwiOiBbMjU1LCAwLCAyNTVdLFxuICAgICAgXCJtYXJvb25cIjogWzEyOCwgMCwgMF0sXG4gICAgICBcIm1lZGl1bWFxdWFtYXJpbmVcIjogWzEwMiwgMjA1LCAxNzBdLFxuICAgICAgXCJtZWRpdW1ibHVlXCI6IFswLCAwLCAyMDVdLFxuICAgICAgXCJtZWRpdW1vcmNoaWRcIjogWzE4NiwgODUsIDIxMV0sXG4gICAgICBcIm1lZGl1bXB1cnBsZVwiOiBbMTQ3LCAxMTIsIDIxOV0sXG4gICAgICBcIm1lZGl1bXNlYWdyZWVuXCI6IFs2MCwgMTc5LCAxMTNdLFxuICAgICAgXCJtZWRpdW1zbGF0ZWJsdWVcIjogWzEyMywgMTA0LCAyMzhdLFxuICAgICAgXCJtZWRpdW1zcHJpbmdncmVlblwiOiBbMCwgMjUwLCAxNTRdLFxuICAgICAgXCJtZWRpdW10dXJxdW9pc2VcIjogWzcyLCAyMDksIDIwNF0sXG4gICAgICBcIm1lZGl1bXZpb2xldHJlZFwiOiBbMTk5LCAyMSwgMTMzXSxcbiAgICAgIFwibWlkbmlnaHRibHVlXCI6IFsyNSwgMjUsIDExMl0sXG4gICAgICBcIm1pbnRjcmVhbVwiOiBbMjQ1LCAyNTUsIDI1MF0sXG4gICAgICBcIm1pc3R5cm9zZVwiOiBbMjU1LCAyMjgsIDIyNV0sXG4gICAgICBcIm1vY2Nhc2luXCI6IFsyNTUsIDIyOCwgMTgxXSxcbiAgICAgIFwibmF2YWpvd2hpdGVcIjogWzI1NSwgMjIyLCAxNzNdLFxuICAgICAgXCJuYXZ5XCI6IFswLCAwLCAxMjhdLFxuICAgICAgXCJvbGRsYWNlXCI6IFsyNTMsIDI0NSwgMjMwXSxcbiAgICAgIFwib2xpdmVcIjogWzEyOCwgMTI4LCAwXSxcbiAgICAgIFwib2xpdmVkcmFiXCI6IFsxMDcsIDE0MiwgMzVdLFxuICAgICAgXCJvcmFuZ2VcIjogWzI1NSwgMTY1LCAwXSxcbiAgICAgIFwib3JhbmdlcmVkXCI6IFsyNTUsIDY5LCAwXSxcbiAgICAgIFwib3JjaGlkXCI6IFsyMTgsIDExMiwgMjE0XSxcbiAgICAgIFwicGFsZWdvbGRlbnJvZFwiOiBbMjM4LCAyMzIsIDE3MF0sXG4gICAgICBcInBhbGVncmVlblwiOiBbMTUyLCAyNTEsIDE1Ml0sXG4gICAgICBcInBhbGV0dXJxdW9pc2VcIjogWzE3NSwgMjM4LCAyMzhdLFxuICAgICAgXCJwYWxldmlvbGV0cmVkXCI6IFsyMTksIDExMiwgMTQ3XSxcbiAgICAgIFwicGFwYXlhd2hpcFwiOiBbMjU1LCAyMzksIDIxM10sXG4gICAgICBcInBlYWNocHVmZlwiOiBbMjU1LCAyMTgsIDE4NV0sXG4gICAgICBcInBlcnVcIjogWzIwNSwgMTMzLCA2M10sXG4gICAgICBcInBpbmtcIjogWzI1NSwgMTkyLCAyMDNdLFxuICAgICAgXCJwbHVtXCI6IFsyMjEsIDE2MCwgMjIxXSxcbiAgICAgIFwicG93ZGVyYmx1ZVwiOiBbMTc2LCAyMjQsIDIzMF0sXG4gICAgICBcInB1cnBsZVwiOiBbMTI4LCAwLCAxMjhdLFxuICAgICAgXCJyZWJlY2NhcHVycGxlXCI6IFsxMDIsIDUxLCAxNTNdLFxuICAgICAgXCJyZWRcIjogWzI1NSwgMCwgMF0sXG4gICAgICBcInJvc3licm93blwiOiBbMTg4LCAxNDMsIDE0M10sXG4gICAgICBcInJveWFsYmx1ZVwiOiBbNjUsIDEwNSwgMjI1XSxcbiAgICAgIFwic2FkZGxlYnJvd25cIjogWzEzOSwgNjksIDE5XSxcbiAgICAgIFwic2FsbW9uXCI6IFsyNTAsIDEyOCwgMTE0XSxcbiAgICAgIFwic2FuZHlicm93blwiOiBbMjQ0LCAxNjQsIDk2XSxcbiAgICAgIFwic2VhZ3JlZW5cIjogWzQ2LCAxMzksIDg3XSxcbiAgICAgIFwic2Vhc2hlbGxcIjogWzI1NSwgMjQ1LCAyMzhdLFxuICAgICAgXCJzaWVubmFcIjogWzE2MCwgODIsIDQ1XSxcbiAgICAgIFwic2lsdmVyXCI6IFsxOTIsIDE5MiwgMTkyXSxcbiAgICAgIFwic2t5Ymx1ZVwiOiBbMTM1LCAyMDYsIDIzNV0sXG4gICAgICBcInNsYXRlYmx1ZVwiOiBbMTA2LCA5MCwgMjA1XSxcbiAgICAgIFwic2xhdGVncmF5XCI6IFsxMTIsIDEyOCwgMTQ0XSxcbiAgICAgIFwic2xhdGVncmV5XCI6IFsxMTIsIDEyOCwgMTQ0XSxcbiAgICAgIFwic25vd1wiOiBbMjU1LCAyNTAsIDI1MF0sXG4gICAgICBcInNwcmluZ2dyZWVuXCI6IFswLCAyNTUsIDEyN10sXG4gICAgICBcInN0ZWVsYmx1ZVwiOiBbNzAsIDEzMCwgMTgwXSxcbiAgICAgIFwidGFuXCI6IFsyMTAsIDE4MCwgMTQwXSxcbiAgICAgIFwidGVhbFwiOiBbMCwgMTI4LCAxMjhdLFxuICAgICAgXCJ0aGlzdGxlXCI6IFsyMTYsIDE5MSwgMjE2XSxcbiAgICAgIFwidG9tYXRvXCI6IFsyNTUsIDk5LCA3MV0sXG4gICAgICBcInR1cnF1b2lzZVwiOiBbNjQsIDIyNCwgMjA4XSxcbiAgICAgIFwidmlvbGV0XCI6IFsyMzgsIDEzMCwgMjM4XSxcbiAgICAgIFwid2hlYXRcIjogWzI0NSwgMjIyLCAxNzldLFxuICAgICAgXCJ3aGl0ZVwiOiBbMjU1LCAyNTUsIDI1NV0sXG4gICAgICBcIndoaXRlc21va2VcIjogWzI0NSwgMjQ1LCAyNDVdLFxuICAgICAgXCJ5ZWxsb3dcIjogWzI1NSwgMjU1LCAwXSxcbiAgICAgIFwieWVsbG93Z3JlZW5cIjogWzE1NCwgMjA1LCA1MF1cbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2NvbG9yLWNvbnZlcnQvY29udmVyc2lvbnMuanNcbnZhciByZXF1aXJlX2NvbnZlcnNpb25zID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2NvbG9yLWNvbnZlcnQvY29udmVyc2lvbnMuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIHZhciBjc3NLZXl3b3JkcyA9IHJlcXVpcmVfY29sb3JfbmFtZSgpO1xuICAgIHZhciByZXZlcnNlS2V5d29yZHMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhjc3NLZXl3b3JkcykpIHtcbiAgICAgIHJldmVyc2VLZXl3b3Jkc1tjc3NLZXl3b3Jkc1trZXldXSA9IGtleTtcbiAgICB9XG4gICAgdmFyIGNvbnZlcnQgPSB7XG4gICAgICByZ2I6IHsgY2hhbm5lbHM6IDMsIGxhYmVsczogXCJyZ2JcIiB9LFxuICAgICAgaHNsOiB7IGNoYW5uZWxzOiAzLCBsYWJlbHM6IFwiaHNsXCIgfSxcbiAgICAgIGhzdjogeyBjaGFubmVsczogMywgbGFiZWxzOiBcImhzdlwiIH0sXG4gICAgICBod2I6IHsgY2hhbm5lbHM6IDMsIGxhYmVsczogXCJod2JcIiB9LFxuICAgICAgY215azogeyBjaGFubmVsczogNCwgbGFiZWxzOiBcImNteWtcIiB9LFxuICAgICAgeHl6OiB7IGNoYW5uZWxzOiAzLCBsYWJlbHM6IFwieHl6XCIgfSxcbiAgICAgIGxhYjogeyBjaGFubmVsczogMywgbGFiZWxzOiBcImxhYlwiIH0sXG4gICAgICBsY2g6IHsgY2hhbm5lbHM6IDMsIGxhYmVsczogXCJsY2hcIiB9LFxuICAgICAgaGV4OiB7IGNoYW5uZWxzOiAxLCBsYWJlbHM6IFtcImhleFwiXSB9LFxuICAgICAga2V5d29yZDogeyBjaGFubmVsczogMSwgbGFiZWxzOiBbXCJrZXl3b3JkXCJdIH0sXG4gICAgICBhbnNpMTY6IHsgY2hhbm5lbHM6IDEsIGxhYmVsczogW1wiYW5zaTE2XCJdIH0sXG4gICAgICBhbnNpMjU2OiB7IGNoYW5uZWxzOiAxLCBsYWJlbHM6IFtcImFuc2kyNTZcIl0gfSxcbiAgICAgIGhjZzogeyBjaGFubmVsczogMywgbGFiZWxzOiBbXCJoXCIsIFwiY1wiLCBcImdcIl0gfSxcbiAgICAgIGFwcGxlOiB7IGNoYW5uZWxzOiAzLCBsYWJlbHM6IFtcInIxNlwiLCBcImcxNlwiLCBcImIxNlwiXSB9LFxuICAgICAgZ3JheTogeyBjaGFubmVsczogMSwgbGFiZWxzOiBbXCJncmF5XCJdIH1cbiAgICB9O1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGNvbnZlcnQ7XG4gICAgZm9yIChjb25zdCBtb2RlbCBvZiBPYmplY3Qua2V5cyhjb252ZXJ0KSkge1xuICAgICAgaWYgKCEoXCJjaGFubmVsc1wiIGluIGNvbnZlcnRbbW9kZWxdKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJtaXNzaW5nIGNoYW5uZWxzIHByb3BlcnR5OiBcIiArIG1vZGVsKTtcbiAgICAgIH1cbiAgICAgIGlmICghKFwibGFiZWxzXCIgaW4gY29udmVydFttb2RlbF0pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIm1pc3NpbmcgY2hhbm5lbCBsYWJlbHMgcHJvcGVydHk6IFwiICsgbW9kZWwpO1xuICAgICAgfVxuICAgICAgaWYgKGNvbnZlcnRbbW9kZWxdLmxhYmVscy5sZW5ndGggIT09IGNvbnZlcnRbbW9kZWxdLmNoYW5uZWxzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImNoYW5uZWwgYW5kIGxhYmVsIGNvdW50cyBtaXNtYXRjaDogXCIgKyBtb2RlbCk7XG4gICAgICB9XG4gICAgICBjb25zdCB7IGNoYW5uZWxzLCBsYWJlbHMgfSA9IGNvbnZlcnRbbW9kZWxdO1xuICAgICAgZGVsZXRlIGNvbnZlcnRbbW9kZWxdLmNoYW5uZWxzO1xuICAgICAgZGVsZXRlIGNvbnZlcnRbbW9kZWxdLmxhYmVscztcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb252ZXJ0W21vZGVsXSwgXCJjaGFubmVsc1wiLCB7IHZhbHVlOiBjaGFubmVscyB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb252ZXJ0W21vZGVsXSwgXCJsYWJlbHNcIiwgeyB2YWx1ZTogbGFiZWxzIH0pO1xuICAgIH1cbiAgICBjb252ZXJ0LnJnYi5oc2wgPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIGNvbnN0IHIgPSByZ2JbMF0gLyAyNTU7XG4gICAgICBjb25zdCBnID0gcmdiWzFdIC8gMjU1O1xuICAgICAgY29uc3QgYiA9IHJnYlsyXSAvIDI1NTtcbiAgICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKHIsIGcsIGIpO1xuICAgICAgY29uc3QgbWF4ID0gTWF0aC5tYXgociwgZywgYik7XG4gICAgICBjb25zdCBkZWx0YSA9IG1heCAtIG1pbjtcbiAgICAgIGxldCBoO1xuICAgICAgbGV0IHM7XG4gICAgICBpZiAobWF4ID09PSBtaW4pIHtcbiAgICAgICAgaCA9IDA7XG4gICAgICB9IGVsc2UgaWYgKHIgPT09IG1heCkge1xuICAgICAgICBoID0gKGcgLSBiKSAvIGRlbHRhO1xuICAgICAgfSBlbHNlIGlmIChnID09PSBtYXgpIHtcbiAgICAgICAgaCA9IDIgKyAoYiAtIHIpIC8gZGVsdGE7XG4gICAgICB9IGVsc2UgaWYgKGIgPT09IG1heCkge1xuICAgICAgICBoID0gNCArIChyIC0gZykgLyBkZWx0YTtcbiAgICAgIH1cbiAgICAgIGggPSBNYXRoLm1pbihoICogNjAsIDM2MCk7XG4gICAgICBpZiAoaCA8IDApIHtcbiAgICAgICAgaCArPSAzNjA7XG4gICAgICB9XG4gICAgICBjb25zdCBsID0gKG1pbiArIG1heCkgLyAyO1xuICAgICAgaWYgKG1heCA9PT0gbWluKSB7XG4gICAgICAgIHMgPSAwO1xuICAgICAgfSBlbHNlIGlmIChsIDw9IDAuNSkge1xuICAgICAgICBzID0gZGVsdGEgLyAobWF4ICsgbWluKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMgPSBkZWx0YSAvICgyIC0gbWF4IC0gbWluKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbaCwgcyAqIDEwMCwgbCAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0LnJnYi5oc3YgPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIGxldCByZGlmO1xuICAgICAgbGV0IGdkaWY7XG4gICAgICBsZXQgYmRpZjtcbiAgICAgIGxldCBoO1xuICAgICAgbGV0IHM7XG4gICAgICBjb25zdCByID0gcmdiWzBdIC8gMjU1O1xuICAgICAgY29uc3QgZyA9IHJnYlsxXSAvIDI1NTtcbiAgICAgIGNvbnN0IGIgPSByZ2JbMl0gLyAyNTU7XG4gICAgICBjb25zdCB2ID0gTWF0aC5tYXgociwgZywgYik7XG4gICAgICBjb25zdCBkaWZmID0gdiAtIE1hdGgubWluKHIsIGcsIGIpO1xuICAgICAgY29uc3QgZGlmZmMgPSBmdW5jdGlvbihjKSB7XG4gICAgICAgIHJldHVybiAodiAtIGMpIC8gNiAvIGRpZmYgKyAxIC8gMjtcbiAgICAgIH07XG4gICAgICBpZiAoZGlmZiA9PT0gMCkge1xuICAgICAgICBoID0gMDtcbiAgICAgICAgcyA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzID0gZGlmZiAvIHY7XG4gICAgICAgIHJkaWYgPSBkaWZmYyhyKTtcbiAgICAgICAgZ2RpZiA9IGRpZmZjKGcpO1xuICAgICAgICBiZGlmID0gZGlmZmMoYik7XG4gICAgICAgIGlmIChyID09PSB2KSB7XG4gICAgICAgICAgaCA9IGJkaWYgLSBnZGlmO1xuICAgICAgICB9IGVsc2UgaWYgKGcgPT09IHYpIHtcbiAgICAgICAgICBoID0gMSAvIDMgKyByZGlmIC0gYmRpZjtcbiAgICAgICAgfSBlbHNlIGlmIChiID09PSB2KSB7XG4gICAgICAgICAgaCA9IDIgLyAzICsgZ2RpZiAtIHJkaWY7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGggPCAwKSB7XG4gICAgICAgICAgaCArPSAxO1xuICAgICAgICB9IGVsc2UgaWYgKGggPiAxKSB7XG4gICAgICAgICAgaCAtPSAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gW1xuICAgICAgICBoICogMzYwLFxuICAgICAgICBzICogMTAwLFxuICAgICAgICB2ICogMTAwXG4gICAgICBdO1xuICAgIH07XG4gICAgY29udmVydC5yZ2IuaHdiID0gZnVuY3Rpb24ocmdiKSB7XG4gICAgICBjb25zdCByID0gcmdiWzBdO1xuICAgICAgY29uc3QgZyA9IHJnYlsxXTtcbiAgICAgIGxldCBiID0gcmdiWzJdO1xuICAgICAgY29uc3QgaCA9IGNvbnZlcnQucmdiLmhzbChyZ2IpWzBdO1xuICAgICAgY29uc3QgdyA9IDEgLyAyNTUgKiBNYXRoLm1pbihyLCBNYXRoLm1pbihnLCBiKSk7XG4gICAgICBiID0gMSAtIDEgLyAyNTUgKiBNYXRoLm1heChyLCBNYXRoLm1heChnLCBiKSk7XG4gICAgICByZXR1cm4gW2gsIHcgKiAxMDAsIGIgKiAxMDBdO1xuICAgIH07XG4gICAgY29udmVydC5yZ2IuY215ayA9IGZ1bmN0aW9uKHJnYikge1xuICAgICAgY29uc3QgciA9IHJnYlswXSAvIDI1NTtcbiAgICAgIGNvbnN0IGcgPSByZ2JbMV0gLyAyNTU7XG4gICAgICBjb25zdCBiID0gcmdiWzJdIC8gMjU1O1xuICAgICAgY29uc3QgayA9IE1hdGgubWluKDEgLSByLCAxIC0gZywgMSAtIGIpO1xuICAgICAgY29uc3QgYyA9ICgxIC0gciAtIGspIC8gKDEgLSBrKSB8fCAwO1xuICAgICAgY29uc3QgbSA9ICgxIC0gZyAtIGspIC8gKDEgLSBrKSB8fCAwO1xuICAgICAgY29uc3QgeSA9ICgxIC0gYiAtIGspIC8gKDEgLSBrKSB8fCAwO1xuICAgICAgcmV0dXJuIFtjICogMTAwLCBtICogMTAwLCB5ICogMTAwLCBrICogMTAwXTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGNvbXBhcmF0aXZlRGlzdGFuY2UoeCwgeSkge1xuICAgICAgcmV0dXJuICh4WzBdIC0geVswXSkgKiogMiArICh4WzFdIC0geVsxXSkgKiogMiArICh4WzJdIC0geVsyXSkgKiogMjtcbiAgICB9XG4gICAgY29udmVydC5yZ2Iua2V5d29yZCA9IGZ1bmN0aW9uKHJnYikge1xuICAgICAgY29uc3QgcmV2ZXJzZWQgPSByZXZlcnNlS2V5d29yZHNbcmdiXTtcbiAgICAgIGlmIChyZXZlcnNlZCkge1xuICAgICAgICByZXR1cm4gcmV2ZXJzZWQ7XG4gICAgICB9XG4gICAgICBsZXQgY3VycmVudENsb3Nlc3REaXN0YW5jZSA9IEluZmluaXR5O1xuICAgICAgbGV0IGN1cnJlbnRDbG9zZXN0S2V5d29yZDtcbiAgICAgIGZvciAoY29uc3Qga2V5d29yZCBvZiBPYmplY3Qua2V5cyhjc3NLZXl3b3JkcykpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBjc3NLZXl3b3Jkc1trZXl3b3JkXTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBjb21wYXJhdGl2ZURpc3RhbmNlKHJnYiwgdmFsdWUpO1xuICAgICAgICBpZiAoZGlzdGFuY2UgPCBjdXJyZW50Q2xvc2VzdERpc3RhbmNlKSB7XG4gICAgICAgICAgY3VycmVudENsb3Nlc3REaXN0YW5jZSA9IGRpc3RhbmNlO1xuICAgICAgICAgIGN1cnJlbnRDbG9zZXN0S2V5d29yZCA9IGtleXdvcmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBjdXJyZW50Q2xvc2VzdEtleXdvcmQ7XG4gICAgfTtcbiAgICBjb252ZXJ0LmtleXdvcmQucmdiID0gZnVuY3Rpb24oa2V5d29yZCkge1xuICAgICAgcmV0dXJuIGNzc0tleXdvcmRzW2tleXdvcmRdO1xuICAgIH07XG4gICAgY29udmVydC5yZ2IueHl6ID0gZnVuY3Rpb24ocmdiKSB7XG4gICAgICBsZXQgciA9IHJnYlswXSAvIDI1NTtcbiAgICAgIGxldCBnID0gcmdiWzFdIC8gMjU1O1xuICAgICAgbGV0IGIgPSByZ2JbMl0gLyAyNTU7XG4gICAgICByID0gciA+IDAuMDQwNDUgPyAoKHIgKyAwLjA1NSkgLyAxLjA1NSkgKiogMi40IDogciAvIDEyLjkyO1xuICAgICAgZyA9IGcgPiAwLjA0MDQ1ID8gKChnICsgMC4wNTUpIC8gMS4wNTUpICoqIDIuNCA6IGcgLyAxMi45MjtcbiAgICAgIGIgPSBiID4gMC4wNDA0NSA/ICgoYiArIDAuMDU1KSAvIDEuMDU1KSAqKiAyLjQgOiBiIC8gMTIuOTI7XG4gICAgICBjb25zdCB4ID0gciAqIDAuNDEyNCArIGcgKiAwLjM1NzYgKyBiICogMC4xODA1O1xuICAgICAgY29uc3QgeSA9IHIgKiAwLjIxMjYgKyBnICogMC43MTUyICsgYiAqIDAuMDcyMjtcbiAgICAgIGNvbnN0IHoyID0gciAqIDAuMDE5MyArIGcgKiAwLjExOTIgKyBiICogMC45NTA1O1xuICAgICAgcmV0dXJuIFt4ICogMTAwLCB5ICogMTAwLCB6MiAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0LnJnYi5sYWIgPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIGNvbnN0IHh5eiA9IGNvbnZlcnQucmdiLnh5eihyZ2IpO1xuICAgICAgbGV0IHggPSB4eXpbMF07XG4gICAgICBsZXQgeSA9IHh5elsxXTtcbiAgICAgIGxldCB6MiA9IHh5elsyXTtcbiAgICAgIHggLz0gOTUuMDQ3O1xuICAgICAgeSAvPSAxMDA7XG4gICAgICB6MiAvPSAxMDguODgzO1xuICAgICAgeCA9IHggPiA4ODU2ZS02ID8geCAqKiAoMSAvIDMpIDogNy43ODcgKiB4ICsgMTYgLyAxMTY7XG4gICAgICB5ID0geSA+IDg4NTZlLTYgPyB5ICoqICgxIC8gMykgOiA3Ljc4NyAqIHkgKyAxNiAvIDExNjtcbiAgICAgIHoyID0gejIgPiA4ODU2ZS02ID8gejIgKiogKDEgLyAzKSA6IDcuNzg3ICogejIgKyAxNiAvIDExNjtcbiAgICAgIGNvbnN0IGwgPSAxMTYgKiB5IC0gMTY7XG4gICAgICBjb25zdCBhID0gNTAwICogKHggLSB5KTtcbiAgICAgIGNvbnN0IGIgPSAyMDAgKiAoeSAtIHoyKTtcbiAgICAgIHJldHVybiBbbCwgYSwgYl07XG4gICAgfTtcbiAgICBjb252ZXJ0LmhzbC5yZ2IgPSBmdW5jdGlvbihoc2wpIHtcbiAgICAgIGNvbnN0IGggPSBoc2xbMF0gLyAzNjA7XG4gICAgICBjb25zdCBzID0gaHNsWzFdIC8gMTAwO1xuICAgICAgY29uc3QgbCA9IGhzbFsyXSAvIDEwMDtcbiAgICAgIGxldCB0MjtcbiAgICAgIGxldCB0MztcbiAgICAgIGxldCB2YWw7XG4gICAgICBpZiAocyA9PT0gMCkge1xuICAgICAgICB2YWwgPSBsICogMjU1O1xuICAgICAgICByZXR1cm4gW3ZhbCwgdmFsLCB2YWxdO1xuICAgICAgfVxuICAgICAgaWYgKGwgPCAwLjUpIHtcbiAgICAgICAgdDIgPSBsICogKDEgKyBzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHQyID0gbCArIHMgLSBsICogcztcbiAgICAgIH1cbiAgICAgIGNvbnN0IHQxID0gMiAqIGwgLSB0MjtcbiAgICAgIGNvbnN0IHJnYiA9IFswLCAwLCAwXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzsgaSsrKSB7XG4gICAgICAgIHQzID0gaCArIDEgLyAzICogLShpIC0gMSk7XG4gICAgICAgIGlmICh0MyA8IDApIHtcbiAgICAgICAgICB0MysrO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0MyA+IDEpIHtcbiAgICAgICAgICB0My0tO1xuICAgICAgICB9XG4gICAgICAgIGlmICg2ICogdDMgPCAxKSB7XG4gICAgICAgICAgdmFsID0gdDEgKyAodDIgLSB0MSkgKiA2ICogdDM7XG4gICAgICAgIH0gZWxzZSBpZiAoMiAqIHQzIDwgMSkge1xuICAgICAgICAgIHZhbCA9IHQyO1xuICAgICAgICB9IGVsc2UgaWYgKDMgKiB0MyA8IDIpIHtcbiAgICAgICAgICB2YWwgPSB0MSArICh0MiAtIHQxKSAqICgyIC8gMyAtIHQzKSAqIDY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsID0gdDE7XG4gICAgICAgIH1cbiAgICAgICAgcmdiW2ldID0gdmFsICogMjU1O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJnYjtcbiAgICB9O1xuICAgIGNvbnZlcnQuaHNsLmhzdiA9IGZ1bmN0aW9uKGhzbCkge1xuICAgICAgY29uc3QgaCA9IGhzbFswXTtcbiAgICAgIGxldCBzID0gaHNsWzFdIC8gMTAwO1xuICAgICAgbGV0IGwgPSBoc2xbMl0gLyAxMDA7XG4gICAgICBsZXQgc21pbiA9IHM7XG4gICAgICBjb25zdCBsbWluID0gTWF0aC5tYXgobCwgMC4wMSk7XG4gICAgICBsICo9IDI7XG4gICAgICBzICo9IGwgPD0gMSA/IGwgOiAyIC0gbDtcbiAgICAgIHNtaW4gKj0gbG1pbiA8PSAxID8gbG1pbiA6IDIgLSBsbWluO1xuICAgICAgY29uc3QgdiA9IChsICsgcykgLyAyO1xuICAgICAgY29uc3Qgc3YgPSBsID09PSAwID8gMiAqIHNtaW4gLyAobG1pbiArIHNtaW4pIDogMiAqIHMgLyAobCArIHMpO1xuICAgICAgcmV0dXJuIFtoLCBzdiAqIDEwMCwgdiAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0Lmhzdi5yZ2IgPSBmdW5jdGlvbihoc3YpIHtcbiAgICAgIGNvbnN0IGggPSBoc3ZbMF0gLyA2MDtcbiAgICAgIGNvbnN0IHMgPSBoc3ZbMV0gLyAxMDA7XG4gICAgICBsZXQgdiA9IGhzdlsyXSAvIDEwMDtcbiAgICAgIGNvbnN0IGhpID0gTWF0aC5mbG9vcihoKSAlIDY7XG4gICAgICBjb25zdCBmID0gaCAtIE1hdGguZmxvb3IoaCk7XG4gICAgICBjb25zdCBwID0gMjU1ICogdiAqICgxIC0gcyk7XG4gICAgICBjb25zdCBxID0gMjU1ICogdiAqICgxIC0gcyAqIGYpO1xuICAgICAgY29uc3QgdCA9IDI1NSAqIHYgKiAoMSAtIHMgKiAoMSAtIGYpKTtcbiAgICAgIHYgKj0gMjU1O1xuICAgICAgc3dpdGNoIChoaSkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgcmV0dXJuIFt2LCB0LCBwXTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJldHVybiBbcSwgdiwgcF07XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICByZXR1cm4gW3AsIHYsIHRdO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgcmV0dXJuIFtwLCBxLCB2XTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHJldHVybiBbdCwgcCwgdl07XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICByZXR1cm4gW3YsIHAsIHFdO1xuICAgICAgfVxuICAgIH07XG4gICAgY29udmVydC5oc3YuaHNsID0gZnVuY3Rpb24oaHN2KSB7XG4gICAgICBjb25zdCBoID0gaHN2WzBdO1xuICAgICAgY29uc3QgcyA9IGhzdlsxXSAvIDEwMDtcbiAgICAgIGNvbnN0IHYgPSBoc3ZbMl0gLyAxMDA7XG4gICAgICBjb25zdCB2bWluID0gTWF0aC5tYXgodiwgMC4wMSk7XG4gICAgICBsZXQgc2w7XG4gICAgICBsZXQgbDtcbiAgICAgIGwgPSAoMiAtIHMpICogdjtcbiAgICAgIGNvbnN0IGxtaW4gPSAoMiAtIHMpICogdm1pbjtcbiAgICAgIHNsID0gcyAqIHZtaW47XG4gICAgICBzbCAvPSBsbWluIDw9IDEgPyBsbWluIDogMiAtIGxtaW47XG4gICAgICBzbCA9IHNsIHx8IDA7XG4gICAgICBsIC89IDI7XG4gICAgICByZXR1cm4gW2gsIHNsICogMTAwLCBsICogMTAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaHdiLnJnYiA9IGZ1bmN0aW9uKGh3Yikge1xuICAgICAgY29uc3QgaCA9IGh3YlswXSAvIDM2MDtcbiAgICAgIGxldCB3aCA9IGh3YlsxXSAvIDEwMDtcbiAgICAgIGxldCBibCA9IGh3YlsyXSAvIDEwMDtcbiAgICAgIGNvbnN0IHJhdGlvID0gd2ggKyBibDtcbiAgICAgIGxldCBmO1xuICAgICAgaWYgKHJhdGlvID4gMSkge1xuICAgICAgICB3aCAvPSByYXRpbztcbiAgICAgICAgYmwgLz0gcmF0aW87XG4gICAgICB9XG4gICAgICBjb25zdCBpID0gTWF0aC5mbG9vcig2ICogaCk7XG4gICAgICBjb25zdCB2ID0gMSAtIGJsO1xuICAgICAgZiA9IDYgKiBoIC0gaTtcbiAgICAgIGlmICgoaSAmIDEpICE9PSAwKSB7XG4gICAgICAgIGYgPSAxIC0gZjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG4gPSB3aCArIGYgKiAodiAtIHdoKTtcbiAgICAgIGxldCByO1xuICAgICAgbGV0IGc7XG4gICAgICBsZXQgYjtcbiAgICAgIHN3aXRjaCAoaSkge1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICBjYXNlIDY6XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICByID0gdjtcbiAgICAgICAgICBnID0gbjtcbiAgICAgICAgICBiID0gd2g7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICByID0gbjtcbiAgICAgICAgICBnID0gdjtcbiAgICAgICAgICBiID0gd2g7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICByID0gd2g7XG4gICAgICAgICAgZyA9IHY7XG4gICAgICAgICAgYiA9IG47XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICByID0gd2g7XG4gICAgICAgICAgZyA9IG47XG4gICAgICAgICAgYiA9IHY7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByID0gbjtcbiAgICAgICAgICBnID0gd2g7XG4gICAgICAgICAgYiA9IHY7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICByID0gdjtcbiAgICAgICAgICBnID0gd2g7XG4gICAgICAgICAgYiA9IG47XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZXR1cm4gW3IgKiAyNTUsIGcgKiAyNTUsIGIgKiAyNTVdO1xuICAgIH07XG4gICAgY29udmVydC5jbXlrLnJnYiA9IGZ1bmN0aW9uKGNteWspIHtcbiAgICAgIGNvbnN0IGMgPSBjbXlrWzBdIC8gMTAwO1xuICAgICAgY29uc3QgbSA9IGNteWtbMV0gLyAxMDA7XG4gICAgICBjb25zdCB5ID0gY215a1syXSAvIDEwMDtcbiAgICAgIGNvbnN0IGsgPSBjbXlrWzNdIC8gMTAwO1xuICAgICAgY29uc3QgciA9IDEgLSBNYXRoLm1pbigxLCBjICogKDEgLSBrKSArIGspO1xuICAgICAgY29uc3QgZyA9IDEgLSBNYXRoLm1pbigxLCBtICogKDEgLSBrKSArIGspO1xuICAgICAgY29uc3QgYiA9IDEgLSBNYXRoLm1pbigxLCB5ICogKDEgLSBrKSArIGspO1xuICAgICAgcmV0dXJuIFtyICogMjU1LCBnICogMjU1LCBiICogMjU1XTtcbiAgICB9O1xuICAgIGNvbnZlcnQueHl6LnJnYiA9IGZ1bmN0aW9uKHh5eikge1xuICAgICAgY29uc3QgeCA9IHh5elswXSAvIDEwMDtcbiAgICAgIGNvbnN0IHkgPSB4eXpbMV0gLyAxMDA7XG4gICAgICBjb25zdCB6MiA9IHh5elsyXSAvIDEwMDtcbiAgICAgIGxldCByO1xuICAgICAgbGV0IGc7XG4gICAgICBsZXQgYjtcbiAgICAgIHIgPSB4ICogMy4yNDA2ICsgeSAqIC0xLjUzNzIgKyB6MiAqIC0wLjQ5ODY7XG4gICAgICBnID0geCAqIC0wLjk2ODkgKyB5ICogMS44NzU4ICsgejIgKiAwLjA0MTU7XG4gICAgICBiID0geCAqIDAuMDU1NyArIHkgKiAtMC4yMDQgKyB6MiAqIDEuMDU3O1xuICAgICAgciA9IHIgPiAzMTMwOGUtNyA/IDEuMDU1ICogciAqKiAoMSAvIDIuNCkgLSAwLjA1NSA6IHIgKiAxMi45MjtcbiAgICAgIGcgPSBnID4gMzEzMDhlLTcgPyAxLjA1NSAqIGcgKiogKDEgLyAyLjQpIC0gMC4wNTUgOiBnICogMTIuOTI7XG4gICAgICBiID0gYiA+IDMxMzA4ZS03ID8gMS4wNTUgKiBiICoqICgxIC8gMi40KSAtIDAuMDU1IDogYiAqIDEyLjkyO1xuICAgICAgciA9IE1hdGgubWluKE1hdGgubWF4KDAsIHIpLCAxKTtcbiAgICAgIGcgPSBNYXRoLm1pbihNYXRoLm1heCgwLCBnKSwgMSk7XG4gICAgICBiID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgYiksIDEpO1xuICAgICAgcmV0dXJuIFtyICogMjU1LCBnICogMjU1LCBiICogMjU1XTtcbiAgICB9O1xuICAgIGNvbnZlcnQueHl6LmxhYiA9IGZ1bmN0aW9uKHh5eikge1xuICAgICAgbGV0IHggPSB4eXpbMF07XG4gICAgICBsZXQgeSA9IHh5elsxXTtcbiAgICAgIGxldCB6MiA9IHh5elsyXTtcbiAgICAgIHggLz0gOTUuMDQ3O1xuICAgICAgeSAvPSAxMDA7XG4gICAgICB6MiAvPSAxMDguODgzO1xuICAgICAgeCA9IHggPiA4ODU2ZS02ID8geCAqKiAoMSAvIDMpIDogNy43ODcgKiB4ICsgMTYgLyAxMTY7XG4gICAgICB5ID0geSA+IDg4NTZlLTYgPyB5ICoqICgxIC8gMykgOiA3Ljc4NyAqIHkgKyAxNiAvIDExNjtcbiAgICAgIHoyID0gejIgPiA4ODU2ZS02ID8gejIgKiogKDEgLyAzKSA6IDcuNzg3ICogejIgKyAxNiAvIDExNjtcbiAgICAgIGNvbnN0IGwgPSAxMTYgKiB5IC0gMTY7XG4gICAgICBjb25zdCBhID0gNTAwICogKHggLSB5KTtcbiAgICAgIGNvbnN0IGIgPSAyMDAgKiAoeSAtIHoyKTtcbiAgICAgIHJldHVybiBbbCwgYSwgYl07XG4gICAgfTtcbiAgICBjb252ZXJ0LmxhYi54eXogPSBmdW5jdGlvbihsYWIpIHtcbiAgICAgIGNvbnN0IGwgPSBsYWJbMF07XG4gICAgICBjb25zdCBhID0gbGFiWzFdO1xuICAgICAgY29uc3QgYiA9IGxhYlsyXTtcbiAgICAgIGxldCB4O1xuICAgICAgbGV0IHk7XG4gICAgICBsZXQgejI7XG4gICAgICB5ID0gKGwgKyAxNikgLyAxMTY7XG4gICAgICB4ID0gYSAvIDUwMCArIHk7XG4gICAgICB6MiA9IHkgLSBiIC8gMjAwO1xuICAgICAgY29uc3QgeTIgPSB5ICoqIDM7XG4gICAgICBjb25zdCB4MiA9IHggKiogMztcbiAgICAgIGNvbnN0IHoyMiA9IHoyICoqIDM7XG4gICAgICB5ID0geTIgPiA4ODU2ZS02ID8geTIgOiAoeSAtIDE2IC8gMTE2KSAvIDcuNzg3O1xuICAgICAgeCA9IHgyID4gODg1NmUtNiA/IHgyIDogKHggLSAxNiAvIDExNikgLyA3Ljc4NztcbiAgICAgIHoyID0gejIyID4gODg1NmUtNiA/IHoyMiA6ICh6MiAtIDE2IC8gMTE2KSAvIDcuNzg3O1xuICAgICAgeCAqPSA5NS4wNDc7XG4gICAgICB5ICo9IDEwMDtcbiAgICAgIHoyICo9IDEwOC44ODM7XG4gICAgICByZXR1cm4gW3gsIHksIHoyXTtcbiAgICB9O1xuICAgIGNvbnZlcnQubGFiLmxjaCA9IGZ1bmN0aW9uKGxhYikge1xuICAgICAgY29uc3QgbCA9IGxhYlswXTtcbiAgICAgIGNvbnN0IGEgPSBsYWJbMV07XG4gICAgICBjb25zdCBiID0gbGFiWzJdO1xuICAgICAgbGV0IGg7XG4gICAgICBjb25zdCBociA9IE1hdGguYXRhbjIoYiwgYSk7XG4gICAgICBoID0gaHIgKiAzNjAgLyAyIC8gTWF0aC5QSTtcbiAgICAgIGlmIChoIDwgMCkge1xuICAgICAgICBoICs9IDM2MDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGMgPSBNYXRoLnNxcnQoYSAqIGEgKyBiICogYik7XG4gICAgICByZXR1cm4gW2wsIGMsIGhdO1xuICAgIH07XG4gICAgY29udmVydC5sY2gubGFiID0gZnVuY3Rpb24obGNoKSB7XG4gICAgICBjb25zdCBsID0gbGNoWzBdO1xuICAgICAgY29uc3QgYyA9IGxjaFsxXTtcbiAgICAgIGNvbnN0IGggPSBsY2hbMl07XG4gICAgICBjb25zdCBociA9IGggLyAzNjAgKiAyICogTWF0aC5QSTtcbiAgICAgIGNvbnN0IGEgPSBjICogTWF0aC5jb3MoaHIpO1xuICAgICAgY29uc3QgYiA9IGMgKiBNYXRoLnNpbihocik7XG4gICAgICByZXR1cm4gW2wsIGEsIGJdO1xuICAgIH07XG4gICAgY29udmVydC5yZ2IuYW5zaTE2ID0gZnVuY3Rpb24oYXJncywgc2F0dXJhdGlvbiA9IG51bGwpIHtcbiAgICAgIGNvbnN0IFtyLCBnLCBiXSA9IGFyZ3M7XG4gICAgICBsZXQgdmFsdWUgPSBzYXR1cmF0aW9uID09PSBudWxsID8gY29udmVydC5yZ2IuaHN2KGFyZ3MpWzJdIDogc2F0dXJhdGlvbjtcbiAgICAgIHZhbHVlID0gTWF0aC5yb3VuZCh2YWx1ZSAvIDUwKTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gMzA7XG4gICAgICB9XG4gICAgICBsZXQgYW5zaSA9IDMwICsgKE1hdGgucm91bmQoYiAvIDI1NSkgPDwgMiB8IE1hdGgucm91bmQoZyAvIDI1NSkgPDwgMSB8IE1hdGgucm91bmQociAvIDI1NSkpO1xuICAgICAgaWYgKHZhbHVlID09PSAyKSB7XG4gICAgICAgIGFuc2kgKz0gNjA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYW5zaTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaHN2LmFuc2kxNiA9IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgIHJldHVybiBjb252ZXJ0LnJnYi5hbnNpMTYoY29udmVydC5oc3YucmdiKGFyZ3MpLCBhcmdzWzJdKTtcbiAgICB9O1xuICAgIGNvbnZlcnQucmdiLmFuc2kyNTYgPSBmdW5jdGlvbihhcmdzKSB7XG4gICAgICBjb25zdCByID0gYXJnc1swXTtcbiAgICAgIGNvbnN0IGcgPSBhcmdzWzFdO1xuICAgICAgY29uc3QgYiA9IGFyZ3NbMl07XG4gICAgICBpZiAociA9PT0gZyAmJiBnID09PSBiKSB7XG4gICAgICAgIGlmIChyIDwgOCkge1xuICAgICAgICAgIHJldHVybiAxNjtcbiAgICAgICAgfVxuICAgICAgICBpZiAociA+IDI0OCkge1xuICAgICAgICAgIHJldHVybiAyMzE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoKHIgLSA4KSAvIDI0NyAqIDI0KSArIDIzMjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFuc2kgPSAxNiArIDM2ICogTWF0aC5yb3VuZChyIC8gMjU1ICogNSkgKyA2ICogTWF0aC5yb3VuZChnIC8gMjU1ICogNSkgKyBNYXRoLnJvdW5kKGIgLyAyNTUgKiA1KTtcbiAgICAgIHJldHVybiBhbnNpO1xuICAgIH07XG4gICAgY29udmVydC5hbnNpMTYucmdiID0gZnVuY3Rpb24oYXJncykge1xuICAgICAgbGV0IGNvbG9yID0gYXJncyAlIDEwO1xuICAgICAgaWYgKGNvbG9yID09PSAwIHx8IGNvbG9yID09PSA3KSB7XG4gICAgICAgIGlmIChhcmdzID4gNTApIHtcbiAgICAgICAgICBjb2xvciArPSAzLjU7XG4gICAgICAgIH1cbiAgICAgICAgY29sb3IgPSBjb2xvciAvIDEwLjUgKiAyNTU7XG4gICAgICAgIHJldHVybiBbY29sb3IsIGNvbG9yLCBjb2xvcl07XG4gICAgICB9XG4gICAgICBjb25zdCBtdWx0ID0gKH5+KGFyZ3MgPiA1MCkgKyAxKSAqIDAuNTtcbiAgICAgIGNvbnN0IHIgPSAoY29sb3IgJiAxKSAqIG11bHQgKiAyNTU7XG4gICAgICBjb25zdCBnID0gKGNvbG9yID4+IDEgJiAxKSAqIG11bHQgKiAyNTU7XG4gICAgICBjb25zdCBiID0gKGNvbG9yID4+IDIgJiAxKSAqIG11bHQgKiAyNTU7XG4gICAgICByZXR1cm4gW3IsIGcsIGJdO1xuICAgIH07XG4gICAgY29udmVydC5hbnNpMjU2LnJnYiA9IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgIGlmIChhcmdzID49IDIzMikge1xuICAgICAgICBjb25zdCBjID0gKGFyZ3MgLSAyMzIpICogMTAgKyA4O1xuICAgICAgICByZXR1cm4gW2MsIGMsIGNdO1xuICAgICAgfVxuICAgICAgYXJncyAtPSAxNjtcbiAgICAgIGxldCByZW07XG4gICAgICBjb25zdCByID0gTWF0aC5mbG9vcihhcmdzIC8gMzYpIC8gNSAqIDI1NTtcbiAgICAgIGNvbnN0IGcgPSBNYXRoLmZsb29yKChyZW0gPSBhcmdzICUgMzYpIC8gNikgLyA1ICogMjU1O1xuICAgICAgY29uc3QgYiA9IHJlbSAlIDYgLyA1ICogMjU1O1xuICAgICAgcmV0dXJuIFtyLCBnLCBiXTtcbiAgICB9O1xuICAgIGNvbnZlcnQucmdiLmhleCA9IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgIGNvbnN0IGludGVnZXIgPSAoKE1hdGgucm91bmQoYXJnc1swXSkgJiAyNTUpIDw8IDE2KSArICgoTWF0aC5yb3VuZChhcmdzWzFdKSAmIDI1NSkgPDwgOCkgKyAoTWF0aC5yb3VuZChhcmdzWzJdKSAmIDI1NSk7XG4gICAgICBjb25zdCBzdHJpbmcgPSBpbnRlZ2VyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuICAgICAgcmV0dXJuIFwiMDAwMDAwXCIuc3Vic3RyaW5nKHN0cmluZy5sZW5ndGgpICsgc3RyaW5nO1xuICAgIH07XG4gICAgY29udmVydC5oZXgucmdiID0gZnVuY3Rpb24oYXJncykge1xuICAgICAgY29uc3QgbWF0Y2ggPSBhcmdzLnRvU3RyaW5nKDE2KS5tYXRjaCgvW2EtZjAtOV17Nn18W2EtZjAtOV17M30vaSk7XG4gICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHJldHVybiBbMCwgMCwgMF07XG4gICAgICB9XG4gICAgICBsZXQgY29sb3JTdHJpbmcgPSBtYXRjaFswXTtcbiAgICAgIGlmIChtYXRjaFswXS5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgY29sb3JTdHJpbmcgPSBjb2xvclN0cmluZy5zcGxpdChcIlwiKS5tYXAoKGNoYXIpID0+IHtcbiAgICAgICAgICByZXR1cm4gY2hhciArIGNoYXI7XG4gICAgICAgIH0pLmpvaW4oXCJcIik7XG4gICAgICB9XG4gICAgICBjb25zdCBpbnRlZ2VyID0gcGFyc2VJbnQoY29sb3JTdHJpbmcsIDE2KTtcbiAgICAgIGNvbnN0IHIgPSBpbnRlZ2VyID4+IDE2ICYgMjU1O1xuICAgICAgY29uc3QgZyA9IGludGVnZXIgPj4gOCAmIDI1NTtcbiAgICAgIGNvbnN0IGIgPSBpbnRlZ2VyICYgMjU1O1xuICAgICAgcmV0dXJuIFtyLCBnLCBiXTtcbiAgICB9O1xuICAgIGNvbnZlcnQucmdiLmhjZyA9IGZ1bmN0aW9uKHJnYikge1xuICAgICAgY29uc3QgciA9IHJnYlswXSAvIDI1NTtcbiAgICAgIGNvbnN0IGcgPSByZ2JbMV0gLyAyNTU7XG4gICAgICBjb25zdCBiID0gcmdiWzJdIC8gMjU1O1xuICAgICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoTWF0aC5tYXgociwgZyksIGIpO1xuICAgICAgY29uc3QgbWluID0gTWF0aC5taW4oTWF0aC5taW4ociwgZyksIGIpO1xuICAgICAgY29uc3QgY2hyb21hID0gbWF4IC0gbWluO1xuICAgICAgbGV0IGdyYXlzY2FsZTtcbiAgICAgIGxldCBodWU7XG4gICAgICBpZiAoY2hyb21hIDwgMSkge1xuICAgICAgICBncmF5c2NhbGUgPSBtaW4gLyAoMSAtIGNocm9tYSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBncmF5c2NhbGUgPSAwO1xuICAgICAgfVxuICAgICAgaWYgKGNocm9tYSA8PSAwKSB7XG4gICAgICAgIGh1ZSA9IDA7XG4gICAgICB9IGVsc2UgaWYgKG1heCA9PT0gcikge1xuICAgICAgICBodWUgPSAoZyAtIGIpIC8gY2hyb21hICUgNjtcbiAgICAgIH0gZWxzZSBpZiAobWF4ID09PSBnKSB7XG4gICAgICAgIGh1ZSA9IDIgKyAoYiAtIHIpIC8gY2hyb21hO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaHVlID0gNCArIChyIC0gZykgLyBjaHJvbWE7XG4gICAgICB9XG4gICAgICBodWUgLz0gNjtcbiAgICAgIGh1ZSAlPSAxO1xuICAgICAgcmV0dXJuIFtodWUgKiAzNjAsIGNocm9tYSAqIDEwMCwgZ3JheXNjYWxlICogMTAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaHNsLmhjZyA9IGZ1bmN0aW9uKGhzbCkge1xuICAgICAgY29uc3QgcyA9IGhzbFsxXSAvIDEwMDtcbiAgICAgIGNvbnN0IGwgPSBoc2xbMl0gLyAxMDA7XG4gICAgICBjb25zdCBjID0gbCA8IDAuNSA/IDIgKiBzICogbCA6IDIgKiBzICogKDEgLSBsKTtcbiAgICAgIGxldCBmID0gMDtcbiAgICAgIGlmIChjIDwgMSkge1xuICAgICAgICBmID0gKGwgLSAwLjUgKiBjKSAvICgxIC0gYyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW2hzbFswXSwgYyAqIDEwMCwgZiAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0Lmhzdi5oY2cgPSBmdW5jdGlvbihoc3YpIHtcbiAgICAgIGNvbnN0IHMgPSBoc3ZbMV0gLyAxMDA7XG4gICAgICBjb25zdCB2ID0gaHN2WzJdIC8gMTAwO1xuICAgICAgY29uc3QgYyA9IHMgKiB2O1xuICAgICAgbGV0IGYgPSAwO1xuICAgICAgaWYgKGMgPCAxKSB7XG4gICAgICAgIGYgPSAodiAtIGMpIC8gKDEgLSBjKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbaHN2WzBdLCBjICogMTAwLCBmICogMTAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaGNnLnJnYiA9IGZ1bmN0aW9uKGhjZykge1xuICAgICAgY29uc3QgaCA9IGhjZ1swXSAvIDM2MDtcbiAgICAgIGNvbnN0IGMgPSBoY2dbMV0gLyAxMDA7XG4gICAgICBjb25zdCBnID0gaGNnWzJdIC8gMTAwO1xuICAgICAgaWYgKGMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIFtnICogMjU1LCBnICogMjU1LCBnICogMjU1XTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHB1cmUgPSBbMCwgMCwgMF07XG4gICAgICBjb25zdCBoaSA9IGggJSAxICogNjtcbiAgICAgIGNvbnN0IHYgPSBoaSAlIDE7XG4gICAgICBjb25zdCB3ID0gMSAtIHY7XG4gICAgICBsZXQgbWcgPSAwO1xuICAgICAgc3dpdGNoIChNYXRoLmZsb29yKGhpKSkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgcHVyZVswXSA9IDE7XG4gICAgICAgICAgcHVyZVsxXSA9IHY7XG4gICAgICAgICAgcHVyZVsyXSA9IDA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBwdXJlWzBdID0gdztcbiAgICAgICAgICBwdXJlWzFdID0gMTtcbiAgICAgICAgICBwdXJlWzJdID0gMDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHB1cmVbMF0gPSAwO1xuICAgICAgICAgIHB1cmVbMV0gPSAxO1xuICAgICAgICAgIHB1cmVbMl0gPSB2O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgcHVyZVswXSA9IDA7XG4gICAgICAgICAgcHVyZVsxXSA9IHc7XG4gICAgICAgICAgcHVyZVsyXSA9IDE7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBwdXJlWzBdID0gdjtcbiAgICAgICAgICBwdXJlWzFdID0gMDtcbiAgICAgICAgICBwdXJlWzJdID0gMTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBwdXJlWzBdID0gMTtcbiAgICAgICAgICBwdXJlWzFdID0gMDtcbiAgICAgICAgICBwdXJlWzJdID0gdztcbiAgICAgIH1cbiAgICAgIG1nID0gKDEgLSBjKSAqIGc7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAoYyAqIHB1cmVbMF0gKyBtZykgKiAyNTUsXG4gICAgICAgIChjICogcHVyZVsxXSArIG1nKSAqIDI1NSxcbiAgICAgICAgKGMgKiBwdXJlWzJdICsgbWcpICogMjU1XG4gICAgICBdO1xuICAgIH07XG4gICAgY29udmVydC5oY2cuaHN2ID0gZnVuY3Rpb24oaGNnKSB7XG4gICAgICBjb25zdCBjID0gaGNnWzFdIC8gMTAwO1xuICAgICAgY29uc3QgZyA9IGhjZ1syXSAvIDEwMDtcbiAgICAgIGNvbnN0IHYgPSBjICsgZyAqICgxIC0gYyk7XG4gICAgICBsZXQgZiA9IDA7XG4gICAgICBpZiAodiA+IDApIHtcbiAgICAgICAgZiA9IGMgLyB2O1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtoY2dbMF0sIGYgKiAxMDAsIHYgKiAxMDBdO1xuICAgIH07XG4gICAgY29udmVydC5oY2cuaHNsID0gZnVuY3Rpb24oaGNnKSB7XG4gICAgICBjb25zdCBjID0gaGNnWzFdIC8gMTAwO1xuICAgICAgY29uc3QgZyA9IGhjZ1syXSAvIDEwMDtcbiAgICAgIGNvbnN0IGwgPSBnICogKDEgLSBjKSArIDAuNSAqIGM7XG4gICAgICBsZXQgcyA9IDA7XG4gICAgICBpZiAobCA+IDAgJiYgbCA8IDAuNSkge1xuICAgICAgICBzID0gYyAvICgyICogbCk7XG4gICAgICB9IGVsc2UgaWYgKGwgPj0gMC41ICYmIGwgPCAxKSB7XG4gICAgICAgIHMgPSBjIC8gKDIgKiAoMSAtIGwpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbaGNnWzBdLCBzICogMTAwLCBsICogMTAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaGNnLmh3YiA9IGZ1bmN0aW9uKGhjZykge1xuICAgICAgY29uc3QgYyA9IGhjZ1sxXSAvIDEwMDtcbiAgICAgIGNvbnN0IGcgPSBoY2dbMl0gLyAxMDA7XG4gICAgICBjb25zdCB2ID0gYyArIGcgKiAoMSAtIGMpO1xuICAgICAgcmV0dXJuIFtoY2dbMF0sICh2IC0gYykgKiAxMDAsICgxIC0gdikgKiAxMDBdO1xuICAgIH07XG4gICAgY29udmVydC5od2IuaGNnID0gZnVuY3Rpb24oaHdiKSB7XG4gICAgICBjb25zdCB3ID0gaHdiWzFdIC8gMTAwO1xuICAgICAgY29uc3QgYiA9IGh3YlsyXSAvIDEwMDtcbiAgICAgIGNvbnN0IHYgPSAxIC0gYjtcbiAgICAgIGNvbnN0IGMgPSB2IC0gdztcbiAgICAgIGxldCBnID0gMDtcbiAgICAgIGlmIChjIDwgMSkge1xuICAgICAgICBnID0gKHYgLSBjKSAvICgxIC0gYyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW2h3YlswXSwgYyAqIDEwMCwgZyAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0LmFwcGxlLnJnYiA9IGZ1bmN0aW9uKGFwcGxlKSB7XG4gICAgICByZXR1cm4gW2FwcGxlWzBdIC8gNjU1MzUgKiAyNTUsIGFwcGxlWzFdIC8gNjU1MzUgKiAyNTUsIGFwcGxlWzJdIC8gNjU1MzUgKiAyNTVdO1xuICAgIH07XG4gICAgY29udmVydC5yZ2IuYXBwbGUgPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIHJldHVybiBbcmdiWzBdIC8gMjU1ICogNjU1MzUsIHJnYlsxXSAvIDI1NSAqIDY1NTM1LCByZ2JbMl0gLyAyNTUgKiA2NTUzNV07XG4gICAgfTtcbiAgICBjb252ZXJ0LmdyYXkucmdiID0gZnVuY3Rpb24oYXJncykge1xuICAgICAgcmV0dXJuIFthcmdzWzBdIC8gMTAwICogMjU1LCBhcmdzWzBdIC8gMTAwICogMjU1LCBhcmdzWzBdIC8gMTAwICogMjU1XTtcbiAgICB9O1xuICAgIGNvbnZlcnQuZ3JheS5oc2wgPSBmdW5jdGlvbihhcmdzKSB7XG4gICAgICByZXR1cm4gWzAsIDAsIGFyZ3NbMF1dO1xuICAgIH07XG4gICAgY29udmVydC5ncmF5LmhzdiA9IGNvbnZlcnQuZ3JheS5oc2w7XG4gICAgY29udmVydC5ncmF5Lmh3YiA9IGZ1bmN0aW9uKGdyYXkpIHtcbiAgICAgIHJldHVybiBbMCwgMTAwLCBncmF5WzBdXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuZ3JheS5jbXlrID0gZnVuY3Rpb24oZ3JheSkge1xuICAgICAgcmV0dXJuIFswLCAwLCAwLCBncmF5WzBdXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuZ3JheS5sYWIgPSBmdW5jdGlvbihncmF5KSB7XG4gICAgICByZXR1cm4gW2dyYXlbMF0sIDAsIDBdO1xuICAgIH07XG4gICAgY29udmVydC5ncmF5LmhleCA9IGZ1bmN0aW9uKGdyYXkpIHtcbiAgICAgIGNvbnN0IHZhbCA9IE1hdGgucm91bmQoZ3JheVswXSAvIDEwMCAqIDI1NSkgJiAyNTU7XG4gICAgICBjb25zdCBpbnRlZ2VyID0gKHZhbCA8PCAxNikgKyAodmFsIDw8IDgpICsgdmFsO1xuICAgICAgY29uc3Qgc3RyaW5nID0gaW50ZWdlci50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtcbiAgICAgIHJldHVybiBcIjAwMDAwMFwiLnN1YnN0cmluZyhzdHJpbmcubGVuZ3RoKSArIHN0cmluZztcbiAgICB9O1xuICAgIGNvbnZlcnQucmdiLmdyYXkgPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIGNvbnN0IHZhbCA9IChyZ2JbMF0gKyByZ2JbMV0gKyByZ2JbMl0pIC8gMztcbiAgICAgIHJldHVybiBbdmFsIC8gMjU1ICogMTAwXTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2NvbG9yLWNvbnZlcnQvcm91dGUuanNcbnZhciByZXF1aXJlX3JvdXRlMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L3JvdXRlLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICB2YXIgY29udmVyc2lvbnMgPSByZXF1aXJlX2NvbnZlcnNpb25zKCk7XG4gICAgZnVuY3Rpb24gYnVpbGRHcmFwaCgpIHtcbiAgICAgIGNvbnN0IGdyYXBoID0ge307XG4gICAgICBjb25zdCBtb2RlbHMgPSBPYmplY3Qua2V5cyhjb252ZXJzaW9ucyk7XG4gICAgICBmb3IgKGxldCBsZW4gPSBtb2RlbHMubGVuZ3RoLCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGdyYXBoW21vZGVsc1tpXV0gPSB7XG4gICAgICAgICAgLy8gaHR0cDovL2pzcGVyZi5jb20vMS12cy1pbmZpbml0eVxuICAgICAgICAgIC8vIG1pY3JvLW9wdCwgYnV0IHRoaXMgaXMgc2ltcGxlLlxuICAgICAgICAgIGRpc3RhbmNlOiAtMSxcbiAgICAgICAgICBwYXJlbnQ6IG51bGxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBncmFwaDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVyaXZlQkZTKGZyb21Nb2RlbCkge1xuICAgICAgY29uc3QgZ3JhcGggPSBidWlsZEdyYXBoKCk7XG4gICAgICBjb25zdCBxdWV1ZSA9IFtmcm9tTW9kZWxdO1xuICAgICAgZ3JhcGhbZnJvbU1vZGVsXS5kaXN0YW5jZSA9IDA7XG4gICAgICB3aGlsZSAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBxdWV1ZS5wb3AoKTtcbiAgICAgICAgY29uc3QgYWRqYWNlbnRzID0gT2JqZWN0LmtleXMoY29udmVyc2lvbnNbY3VycmVudF0pO1xuICAgICAgICBmb3IgKGxldCBsZW4gPSBhZGphY2VudHMubGVuZ3RoLCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgYWRqYWNlbnQgPSBhZGphY2VudHNbaV07XG4gICAgICAgICAgY29uc3Qgbm9kZSA9IGdyYXBoW2FkamFjZW50XTtcbiAgICAgICAgICBpZiAobm9kZS5kaXN0YW5jZSA9PT0gLTEpIHtcbiAgICAgICAgICAgIG5vZGUuZGlzdGFuY2UgPSBncmFwaFtjdXJyZW50XS5kaXN0YW5jZSArIDE7XG4gICAgICAgICAgICBub2RlLnBhcmVudCA9IGN1cnJlbnQ7XG4gICAgICAgICAgICBxdWV1ZS51bnNoaWZ0KGFkamFjZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBncmFwaDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbGluayhmcm9tLCB0bykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRvKGZyb20oYXJncykpO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gd3JhcENvbnZlcnNpb24odG9Nb2RlbCwgZ3JhcGgpIHtcbiAgICAgIGNvbnN0IHBhdGggPSBbZ3JhcGhbdG9Nb2RlbF0ucGFyZW50LCB0b01vZGVsXTtcbiAgICAgIGxldCBmbiA9IGNvbnZlcnNpb25zW2dyYXBoW3RvTW9kZWxdLnBhcmVudF1bdG9Nb2RlbF07XG4gICAgICBsZXQgY3VyID0gZ3JhcGhbdG9Nb2RlbF0ucGFyZW50O1xuICAgICAgd2hpbGUgKGdyYXBoW2N1cl0ucGFyZW50KSB7XG4gICAgICAgIHBhdGgudW5zaGlmdChncmFwaFtjdXJdLnBhcmVudCk7XG4gICAgICAgIGZuID0gbGluayhjb252ZXJzaW9uc1tncmFwaFtjdXJdLnBhcmVudF1bY3VyXSwgZm4pO1xuICAgICAgICBjdXIgPSBncmFwaFtjdXJdLnBhcmVudDtcbiAgICAgIH1cbiAgICAgIGZuLmNvbnZlcnNpb24gPSBwYXRoO1xuICAgICAgcmV0dXJuIGZuO1xuICAgIH1cbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbihmcm9tTW9kZWwpIHtcbiAgICAgIGNvbnN0IGdyYXBoID0gZGVyaXZlQkZTKGZyb21Nb2RlbCk7XG4gICAgICBjb25zdCBjb252ZXJzaW9uID0ge307XG4gICAgICBjb25zdCBtb2RlbHMgPSBPYmplY3Qua2V5cyhncmFwaCk7XG4gICAgICBmb3IgKGxldCBsZW4gPSBtb2RlbHMubGVuZ3RoLCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRvTW9kZWwgPSBtb2RlbHNbaV07XG4gICAgICAgIGNvbnN0IG5vZGUgPSBncmFwaFt0b01vZGVsXTtcbiAgICAgICAgaWYgKG5vZGUucGFyZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29udmVyc2lvblt0b01vZGVsXSA9IHdyYXBDb252ZXJzaW9uKHRvTW9kZWwsIGdyYXBoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb252ZXJzaW9uO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29sb3ItY29udmVydC9pbmRleC5qc1xudmFyIHJlcXVpcmVfY29sb3JfY29udmVydCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICB2YXIgY29udmVyc2lvbnMgPSByZXF1aXJlX2NvbnZlcnNpb25zKCk7XG4gICAgdmFyIHJvdXRlID0gcmVxdWlyZV9yb3V0ZTIoKTtcbiAgICB2YXIgY29udmVydCA9IHt9O1xuICAgIHZhciBtb2RlbHMgPSBPYmplY3Qua2V5cyhjb252ZXJzaW9ucyk7XG4gICAgZnVuY3Rpb24gd3JhcFJhdyhmbikge1xuICAgICAgY29uc3Qgd3JhcHBlZEZuID0gZnVuY3Rpb24oLi4uYXJncykge1xuICAgICAgICBjb25zdCBhcmcwID0gYXJnc1swXTtcbiAgICAgICAgaWYgKGFyZzAgPT09IHZvaWQgMCB8fCBhcmcwID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGFyZzA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFyZzAubGVuZ3RoID4gMSkge1xuICAgICAgICAgIGFyZ3MgPSBhcmcwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmbihhcmdzKTtcbiAgICAgIH07XG4gICAgICBpZiAoXCJjb252ZXJzaW9uXCIgaW4gZm4pIHtcbiAgICAgICAgd3JhcHBlZEZuLmNvbnZlcnNpb24gPSBmbi5jb252ZXJzaW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdyYXBwZWRGbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gd3JhcFJvdW5kZWQoZm4pIHtcbiAgICAgIGNvbnN0IHdyYXBwZWRGbiA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgYXJnMCA9IGFyZ3NbMF07XG4gICAgICAgIGlmIChhcmcwID09PSB2b2lkIDAgfHwgYXJnMCA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBhcmcwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhcmcwLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBhcmdzID0gYXJnMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSBmbihhcmdzKTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICBmb3IgKGxldCBsZW4gPSByZXN1bHQubGVuZ3RoLCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICByZXN1bHRbaV0gPSBNYXRoLnJvdW5kKHJlc3VsdFtpXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgICAgaWYgKFwiY29udmVyc2lvblwiIGluIGZuKSB7XG4gICAgICAgIHdyYXBwZWRGbi5jb252ZXJzaW9uID0gZm4uY29udmVyc2lvbjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB3cmFwcGVkRm47XG4gICAgfVxuICAgIG1vZGVscy5mb3JFYWNoKChmcm9tTW9kZWwpID0+IHtcbiAgICAgIGNvbnZlcnRbZnJvbU1vZGVsXSA9IHt9O1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnZlcnRbZnJvbU1vZGVsXSwgXCJjaGFubmVsc1wiLCB7IHZhbHVlOiBjb252ZXJzaW9uc1tmcm9tTW9kZWxdLmNoYW5uZWxzIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnZlcnRbZnJvbU1vZGVsXSwgXCJsYWJlbHNcIiwgeyB2YWx1ZTogY29udmVyc2lvbnNbZnJvbU1vZGVsXS5sYWJlbHMgfSk7XG4gICAgICBjb25zdCByb3V0ZXMgPSByb3V0ZShmcm9tTW9kZWwpO1xuICAgICAgY29uc3Qgcm91dGVNb2RlbHMgPSBPYmplY3Qua2V5cyhyb3V0ZXMpO1xuICAgICAgcm91dGVNb2RlbHMuZm9yRWFjaCgodG9Nb2RlbCkgPT4ge1xuICAgICAgICBjb25zdCBmbiA9IHJvdXRlc1t0b01vZGVsXTtcbiAgICAgICAgY29udmVydFtmcm9tTW9kZWxdW3RvTW9kZWxdID0gd3JhcFJvdW5kZWQoZm4pO1xuICAgICAgICBjb252ZXJ0W2Zyb21Nb2RlbF1bdG9Nb2RlbF0ucmF3ID0gd3JhcFJhdyhmbik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBjb252ZXJ0O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Fuc2ktc3R5bGVzL2luZGV4LmpzXG52YXIgcmVxdWlyZV9hbnNpX3N0eWxlcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9hbnNpLXN0eWxlcy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHdyYXBBbnNpMTYgPSAoZm4sIG9mZnNldCkgPT4gKC4uLmFyZ3MpID0+IHtcbiAgICAgIGNvbnN0IGNvZGUgPSBmbiguLi5hcmdzKTtcbiAgICAgIHJldHVybiBgXFx4MUJbJHtjb2RlICsgb2Zmc2V0fW1gO1xuICAgIH07XG4gICAgdmFyIHdyYXBBbnNpMjU2ID0gKGZuLCBvZmZzZXQpID0+ICguLi5hcmdzKSA9PiB7XG4gICAgICBjb25zdCBjb2RlID0gZm4oLi4uYXJncyk7XG4gICAgICByZXR1cm4gYFxceDFCWyR7MzggKyBvZmZzZXR9OzU7JHtjb2RlfW1gO1xuICAgIH07XG4gICAgdmFyIHdyYXBBbnNpMTZtID0gKGZuLCBvZmZzZXQpID0+ICguLi5hcmdzKSA9PiB7XG4gICAgICBjb25zdCByZ2IgPSBmbiguLi5hcmdzKTtcbiAgICAgIHJldHVybiBgXFx4MUJbJHszOCArIG9mZnNldH07Mjske3JnYlswXX07JHtyZ2JbMV19OyR7cmdiWzJdfW1gO1xuICAgIH07XG4gICAgdmFyIGFuc2kyYW5zaSA9IChuKSA9PiBuO1xuICAgIHZhciByZ2IycmdiID0gKHIsIGcsIGIpID0+IFtyLCBnLCBiXTtcbiAgICB2YXIgc2V0TGF6eVByb3BlcnR5ID0gKG9iamVjdCwgcHJvcGVydHksIGdldCkgPT4ge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgcHJvcGVydHksIHtcbiAgICAgICAgZ2V0OiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXQoKTtcbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCBwcm9wZXJ0eSwge1xuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH0pO1xuICAgIH07XG4gICAgdmFyIGNvbG9yQ29udmVydDtcbiAgICB2YXIgbWFrZUR5bmFtaWNTdHlsZXMgPSAod3JhcCwgdGFyZ2V0U3BhY2UsIGlkZW50aXR5LCBpc0JhY2tncm91bmQpID0+IHtcbiAgICAgIGlmIChjb2xvckNvbnZlcnQgPT09IHZvaWQgMCkge1xuICAgICAgICBjb2xvckNvbnZlcnQgPSByZXF1aXJlX2NvbG9yX2NvbnZlcnQoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9mZnNldCA9IGlzQmFja2dyb3VuZCA/IDEwIDogMDtcbiAgICAgIGNvbnN0IHN0eWxlcyA9IHt9O1xuICAgICAgZm9yIChjb25zdCBbc291cmNlU3BhY2UsIHN1aXRlXSBvZiBPYmplY3QuZW50cmllcyhjb2xvckNvbnZlcnQpKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBzb3VyY2VTcGFjZSA9PT0gXCJhbnNpMTZcIiA/IFwiYW5zaVwiIDogc291cmNlU3BhY2U7XG4gICAgICAgIGlmIChzb3VyY2VTcGFjZSA9PT0gdGFyZ2V0U3BhY2UpIHtcbiAgICAgICAgICBzdHlsZXNbbmFtZV0gPSB3cmFwKGlkZW50aXR5LCBvZmZzZXQpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdWl0ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgIHN0eWxlc1tuYW1lXSA9IHdyYXAoc3VpdGVbdGFyZ2V0U3BhY2VdLCBvZmZzZXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc3R5bGVzO1xuICAgIH07XG4gICAgZnVuY3Rpb24gYXNzZW1ibGVTdHlsZXMoKSB7XG4gICAgICBjb25zdCBjb2RlcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICBjb25zdCBzdHlsZXMgPSB7XG4gICAgICAgIG1vZGlmaWVyOiB7XG4gICAgICAgICAgcmVzZXQ6IFswLCAwXSxcbiAgICAgICAgICAvLyAyMSBpc24ndCB3aWRlbHkgc3VwcG9ydGVkIGFuZCAyMiBkb2VzIHRoZSBzYW1lIHRoaW5nXG4gICAgICAgICAgYm9sZDogWzEsIDIyXSxcbiAgICAgICAgICBkaW06IFsyLCAyMl0sXG4gICAgICAgICAgaXRhbGljOiBbMywgMjNdLFxuICAgICAgICAgIHVuZGVybGluZTogWzQsIDI0XSxcbiAgICAgICAgICBpbnZlcnNlOiBbNywgMjddLFxuICAgICAgICAgIGhpZGRlbjogWzgsIDI4XSxcbiAgICAgICAgICBzdHJpa2V0aHJvdWdoOiBbOSwgMjldXG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgYmxhY2s6IFszMCwgMzldLFxuICAgICAgICAgIHJlZDogWzMxLCAzOV0sXG4gICAgICAgICAgZ3JlZW46IFszMiwgMzldLFxuICAgICAgICAgIHllbGxvdzogWzMzLCAzOV0sXG4gICAgICAgICAgYmx1ZTogWzM0LCAzOV0sXG4gICAgICAgICAgbWFnZW50YTogWzM1LCAzOV0sXG4gICAgICAgICAgY3lhbjogWzM2LCAzOV0sXG4gICAgICAgICAgd2hpdGU6IFszNywgMzldLFxuICAgICAgICAgIC8vIEJyaWdodCBjb2xvclxuICAgICAgICAgIGJsYWNrQnJpZ2h0OiBbOTAsIDM5XSxcbiAgICAgICAgICByZWRCcmlnaHQ6IFs5MSwgMzldLFxuICAgICAgICAgIGdyZWVuQnJpZ2h0OiBbOTIsIDM5XSxcbiAgICAgICAgICB5ZWxsb3dCcmlnaHQ6IFs5MywgMzldLFxuICAgICAgICAgIGJsdWVCcmlnaHQ6IFs5NCwgMzldLFxuICAgICAgICAgIG1hZ2VudGFCcmlnaHQ6IFs5NSwgMzldLFxuICAgICAgICAgIGN5YW5CcmlnaHQ6IFs5NiwgMzldLFxuICAgICAgICAgIHdoaXRlQnJpZ2h0OiBbOTcsIDM5XVxuICAgICAgICB9LFxuICAgICAgICBiZ0NvbG9yOiB7XG4gICAgICAgICAgYmdCbGFjazogWzQwLCA0OV0sXG4gICAgICAgICAgYmdSZWQ6IFs0MSwgNDldLFxuICAgICAgICAgIGJnR3JlZW46IFs0MiwgNDldLFxuICAgICAgICAgIGJnWWVsbG93OiBbNDMsIDQ5XSxcbiAgICAgICAgICBiZ0JsdWU6IFs0NCwgNDldLFxuICAgICAgICAgIGJnTWFnZW50YTogWzQ1LCA0OV0sXG4gICAgICAgICAgYmdDeWFuOiBbNDYsIDQ5XSxcbiAgICAgICAgICBiZ1doaXRlOiBbNDcsIDQ5XSxcbiAgICAgICAgICAvLyBCcmlnaHQgY29sb3JcbiAgICAgICAgICBiZ0JsYWNrQnJpZ2h0OiBbMTAwLCA0OV0sXG4gICAgICAgICAgYmdSZWRCcmlnaHQ6IFsxMDEsIDQ5XSxcbiAgICAgICAgICBiZ0dyZWVuQnJpZ2h0OiBbMTAyLCA0OV0sXG4gICAgICAgICAgYmdZZWxsb3dCcmlnaHQ6IFsxMDMsIDQ5XSxcbiAgICAgICAgICBiZ0JsdWVCcmlnaHQ6IFsxMDQsIDQ5XSxcbiAgICAgICAgICBiZ01hZ2VudGFCcmlnaHQ6IFsxMDUsIDQ5XSxcbiAgICAgICAgICBiZ0N5YW5CcmlnaHQ6IFsxMDYsIDQ5XSxcbiAgICAgICAgICBiZ1doaXRlQnJpZ2h0OiBbMTA3LCA0OV1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHN0eWxlcy5jb2xvci5ncmF5ID0gc3R5bGVzLmNvbG9yLmJsYWNrQnJpZ2h0O1xuICAgICAgc3R5bGVzLmJnQ29sb3IuYmdHcmF5ID0gc3R5bGVzLmJnQ29sb3IuYmdCbGFja0JyaWdodDtcbiAgICAgIHN0eWxlcy5jb2xvci5ncmV5ID0gc3R5bGVzLmNvbG9yLmJsYWNrQnJpZ2h0O1xuICAgICAgc3R5bGVzLmJnQ29sb3IuYmdHcmV5ID0gc3R5bGVzLmJnQ29sb3IuYmdCbGFja0JyaWdodDtcbiAgICAgIGZvciAoY29uc3QgW2dyb3VwTmFtZSwgZ3JvdXBdIG9mIE9iamVjdC5lbnRyaWVzKHN0eWxlcykpIHtcbiAgICAgICAgZm9yIChjb25zdCBbc3R5bGVOYW1lLCBzdHlsZV0gb2YgT2JqZWN0LmVudHJpZXMoZ3JvdXApKSB7XG4gICAgICAgICAgc3R5bGVzW3N0eWxlTmFtZV0gPSB7XG4gICAgICAgICAgICBvcGVuOiBgXFx4MUJbJHtzdHlsZVswXX1tYCxcbiAgICAgICAgICAgIGNsb3NlOiBgXFx4MUJbJHtzdHlsZVsxXX1tYFxuICAgICAgICAgIH07XG4gICAgICAgICAgZ3JvdXBbc3R5bGVOYW1lXSA9IHN0eWxlc1tzdHlsZU5hbWVdO1xuICAgICAgICAgIGNvZGVzLnNldChzdHlsZVswXSwgc3R5bGVbMV0pO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdHlsZXMsIGdyb3VwTmFtZSwge1xuICAgICAgICAgIHZhbHVlOiBncm91cCxcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdHlsZXMsIFwiY29kZXNcIiwge1xuICAgICAgICB2YWx1ZTogY29kZXMsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIHN0eWxlcy5jb2xvci5jbG9zZSA9IFwiXFx4MUJbMzltXCI7XG4gICAgICBzdHlsZXMuYmdDb2xvci5jbG9zZSA9IFwiXFx4MUJbNDltXCI7XG4gICAgICBzZXRMYXp5UHJvcGVydHkoc3R5bGVzLmNvbG9yLCBcImFuc2lcIiwgKCkgPT4gbWFrZUR5bmFtaWNTdHlsZXMod3JhcEFuc2kxNiwgXCJhbnNpMTZcIiwgYW5zaTJhbnNpLCBmYWxzZSkpO1xuICAgICAgc2V0TGF6eVByb3BlcnR5KHN0eWxlcy5jb2xvciwgXCJhbnNpMjU2XCIsICgpID0+IG1ha2VEeW5hbWljU3R5bGVzKHdyYXBBbnNpMjU2LCBcImFuc2kyNTZcIiwgYW5zaTJhbnNpLCBmYWxzZSkpO1xuICAgICAgc2V0TGF6eVByb3BlcnR5KHN0eWxlcy5jb2xvciwgXCJhbnNpMTZtXCIsICgpID0+IG1ha2VEeW5hbWljU3R5bGVzKHdyYXBBbnNpMTZtLCBcInJnYlwiLCByZ2IycmdiLCBmYWxzZSkpO1xuICAgICAgc2V0TGF6eVByb3BlcnR5KHN0eWxlcy5iZ0NvbG9yLCBcImFuc2lcIiwgKCkgPT4gbWFrZUR5bmFtaWNTdHlsZXMod3JhcEFuc2kxNiwgXCJhbnNpMTZcIiwgYW5zaTJhbnNpLCB0cnVlKSk7XG4gICAgICBzZXRMYXp5UHJvcGVydHkoc3R5bGVzLmJnQ29sb3IsIFwiYW5zaTI1NlwiLCAoKSA9PiBtYWtlRHluYW1pY1N0eWxlcyh3cmFwQW5zaTI1NiwgXCJhbnNpMjU2XCIsIGFuc2kyYW5zaSwgdHJ1ZSkpO1xuICAgICAgc2V0TGF6eVByb3BlcnR5KHN0eWxlcy5iZ0NvbG9yLCBcImFuc2kxNm1cIiwgKCkgPT4gbWFrZUR5bmFtaWNTdHlsZXMod3JhcEFuc2kxNm0sIFwicmdiXCIsIHJnYjJyZ2IsIHRydWUpKTtcbiAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUyLCBcImV4cG9ydHNcIiwge1xuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogYXNzZW1ibGVTdHlsZXNcbiAgICB9KTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jaGFsay9zb3VyY2UvdXRpbC5qc1xudmFyIHJlcXVpcmVfdXRpbCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jaGFsay9zb3VyY2UvdXRpbC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHN0cmluZ1JlcGxhY2VBbGwgPSAoc3RyaW5nLCBzdWJzdHJpbmcsIHJlcGxhY2VyKSA9PiB7XG4gICAgICBsZXQgaW5kZXggPSBzdHJpbmcuaW5kZXhPZihzdWJzdHJpbmcpO1xuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3Vic3RyaW5nTGVuZ3RoID0gc3Vic3RyaW5nLmxlbmd0aDtcbiAgICAgIGxldCBlbmRJbmRleCA9IDA7XG4gICAgICBsZXQgcmV0dXJuVmFsdWUgPSBcIlwiO1xuICAgICAgZG8ge1xuICAgICAgICByZXR1cm5WYWx1ZSArPSBzdHJpbmcuc3Vic3RyKGVuZEluZGV4LCBpbmRleCAtIGVuZEluZGV4KSArIHN1YnN0cmluZyArIHJlcGxhY2VyO1xuICAgICAgICBlbmRJbmRleCA9IGluZGV4ICsgc3Vic3RyaW5nTGVuZ3RoO1xuICAgICAgICBpbmRleCA9IHN0cmluZy5pbmRleE9mKHN1YnN0cmluZywgZW5kSW5kZXgpO1xuICAgICAgfSB3aGlsZSAoaW5kZXggIT09IC0xKTtcbiAgICAgIHJldHVyblZhbHVlICs9IHN0cmluZy5zdWJzdHIoZW5kSW5kZXgpO1xuICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICAgIH07XG4gICAgdmFyIHN0cmluZ0VuY2FzZUNSTEZXaXRoRmlyc3RJbmRleCA9IChzdHJpbmcsIHByZWZpeCwgcG9zdGZpeCwgaW5kZXgpID0+IHtcbiAgICAgIGxldCBlbmRJbmRleCA9IDA7XG4gICAgICBsZXQgcmV0dXJuVmFsdWUgPSBcIlwiO1xuICAgICAgZG8ge1xuICAgICAgICBjb25zdCBnb3RDUiA9IHN0cmluZ1tpbmRleCAtIDFdID09PSBcIlxcclwiO1xuICAgICAgICByZXR1cm5WYWx1ZSArPSBzdHJpbmcuc3Vic3RyKGVuZEluZGV4LCAoZ290Q1IgPyBpbmRleCAtIDEgOiBpbmRleCkgLSBlbmRJbmRleCkgKyBwcmVmaXggKyAoZ290Q1IgPyBcIlxcclxcblwiIDogXCJcXG5cIikgKyBwb3N0Zml4O1xuICAgICAgICBlbmRJbmRleCA9IGluZGV4ICsgMTtcbiAgICAgICAgaW5kZXggPSBzdHJpbmcuaW5kZXhPZihcIlxcblwiLCBlbmRJbmRleCk7XG4gICAgICB9IHdoaWxlIChpbmRleCAhPT0gLTEpO1xuICAgICAgcmV0dXJuVmFsdWUgKz0gc3RyaW5nLnN1YnN0cihlbmRJbmRleCk7XG4gICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XG4gICAgfTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7XG4gICAgICBzdHJpbmdSZXBsYWNlQWxsLFxuICAgICAgc3RyaW5nRW5jYXNlQ1JMRldpdGhGaXJzdEluZGV4XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jaGFsay9zb3VyY2UvdGVtcGxhdGVzLmpzXG52YXIgcmVxdWlyZV90ZW1wbGF0ZXMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY2hhbGsvc291cmNlL3RlbXBsYXRlcy5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIFRFTVBMQVRFX1JFR0VYID0gLyg/OlxcXFwodSg/OlthLWZcXGRdezR9fFxce1thLWZcXGRdezEsNn1cXH0pfHhbYS1mXFxkXXsyfXwuKSl8KD86XFx7KH4pPyhcXHcrKD86XFwoW14pXSpcXCkpPyg/OlxcLlxcdysoPzpcXChbXildKlxcKSk/KSopKD86WyBcXHRdfCg/PVxccj9cXG4pKSl8KFxcfSl8KCg/Oi58W1xcclxcblxcZl0pKz8pL2dpO1xuICAgIHZhciBTVFlMRV9SRUdFWCA9IC8oPzpefFxcLikoXFx3KykoPzpcXCgoW14pXSopXFwpKT8vZztcbiAgICB2YXIgU1RSSU5HX1JFR0VYID0gL14oWydcIl0pKCg/OlxcXFwufCg/IVxcMSlbXlxcXFxdKSopXFwxJC87XG4gICAgdmFyIEVTQ0FQRV9SRUdFWCA9IC9cXFxcKHUoPzpbYS1mXFxkXXs0fXx7W2EtZlxcZF17MSw2fX0pfHhbYS1mXFxkXXsyfXwuKXwoW15cXFxcXSkvZ2k7XG4gICAgdmFyIEVTQ0FQRVMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcChbXG4gICAgICBbXCJuXCIsIFwiXFxuXCJdLFxuICAgICAgW1wiclwiLCBcIlxcclwiXSxcbiAgICAgIFtcInRcIiwgXCJcdFwiXSxcbiAgICAgIFtcImJcIiwgXCJcXGJcIl0sXG4gICAgICBbXCJmXCIsIFwiXFxmXCJdLFxuICAgICAgW1widlwiLCBcIlxcdlwiXSxcbiAgICAgIFtcIjBcIiwgXCJcXDBcIl0sXG4gICAgICBbXCJcXFxcXCIsIFwiXFxcXFwiXSxcbiAgICAgIFtcImVcIiwgXCJcXHgxQlwiXSxcbiAgICAgIFtcImFcIiwgXCJcXHgwN1wiXVxuICAgIF0pO1xuICAgIGZ1bmN0aW9uIHVuZXNjYXBlMihjKSB7XG4gICAgICBjb25zdCB1ID0gY1swXSA9PT0gXCJ1XCI7XG4gICAgICBjb25zdCBicmFja2V0ID0gY1sxXSA9PT0gXCJ7XCI7XG4gICAgICBpZiAodSAmJiAhYnJhY2tldCAmJiBjLmxlbmd0aCA9PT0gNSB8fCBjWzBdID09PSBcInhcIiAmJiBjLmxlbmd0aCA9PT0gMykge1xuICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChjLnNsaWNlKDEpLCAxNikpO1xuICAgICAgfVxuICAgICAgaWYgKHUgJiYgYnJhY2tldCkge1xuICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQocGFyc2VJbnQoYy5zbGljZSgyLCAtMSksIDE2KSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gRVNDQVBFUy5nZXQoYykgfHwgYztcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VBcmd1bWVudHMobmFtZSwgYXJndW1lbnRzXykge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuICAgICAgY29uc3QgY2h1bmtzID0gYXJndW1lbnRzXy50cmltKCkuc3BsaXQoL1xccyosXFxzKi9nKTtcbiAgICAgIGxldCBtYXRjaGVzO1xuICAgICAgZm9yIChjb25zdCBjaHVuayBvZiBjaHVua3MpIHtcbiAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyKGNodW5rKTtcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNOYU4obnVtYmVyKSkge1xuICAgICAgICAgIHJlc3VsdHMucHVzaChudW1iZXIpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoZXMgPSBjaHVuay5tYXRjaChTVFJJTkdfUkVHRVgpKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKG1hdGNoZXNbMl0ucmVwbGFjZShFU0NBUEVfUkVHRVgsIChtLCBlc2NhcGUyLCBjaGFyYWN0ZXIpID0+IGVzY2FwZTIgPyB1bmVzY2FwZTIoZXNjYXBlMikgOiBjaGFyYWN0ZXIpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgQ2hhbGsgdGVtcGxhdGUgc3R5bGUgYXJndW1lbnQ6ICR7Y2h1bmt9IChpbiBzdHlsZSAnJHtuYW1lfScpYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZVN0eWxlKHN0eWxlKSB7XG4gICAgICBTVFlMRV9SRUdFWC5sYXN0SW5kZXggPSAwO1xuICAgICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuICAgICAgbGV0IG1hdGNoZXM7XG4gICAgICB3aGlsZSAoKG1hdGNoZXMgPSBTVFlMRV9SRUdFWC5leGVjKHN0eWxlKSkgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgbmFtZSA9IG1hdGNoZXNbMV07XG4gICAgICAgIGlmIChtYXRjaGVzWzJdKSB7XG4gICAgICAgICAgY29uc3QgYXJncyA9IHBhcnNlQXJndW1lbnRzKG5hbWUsIG1hdGNoZXNbMl0pO1xuICAgICAgICAgIHJlc3VsdHMucHVzaChbbmFtZV0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHRzLnB1c2goW25hbWVdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGJ1aWxkU3R5bGUoY2hhbGsyLCBzdHlsZXMpIHtcbiAgICAgIGNvbnN0IGVuYWJsZWQgPSB7fTtcbiAgICAgIGZvciAoY29uc3QgbGF5ZXIgb2Ygc3R5bGVzKSB7XG4gICAgICAgIGZvciAoY29uc3Qgc3R5bGUgb2YgbGF5ZXIuc3R5bGVzKSB7XG4gICAgICAgICAgZW5hYmxlZFtzdHlsZVswXV0gPSBsYXllci5pbnZlcnNlID8gbnVsbCA6IHN0eWxlLnNsaWNlKDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZXQgY3VycmVudCA9IGNoYWxrMjtcbiAgICAgIGZvciAoY29uc3QgW3N0eWxlTmFtZSwgc3R5bGVzMl0gb2YgT2JqZWN0LmVudHJpZXMoZW5hYmxlZCkpIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHN0eWxlczIpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEoc3R5bGVOYW1lIGluIGN1cnJlbnQpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIENoYWxrIHN0eWxlOiAke3N0eWxlTmFtZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50ID0gc3R5bGVzMi5sZW5ndGggPiAwID8gY3VycmVudFtzdHlsZU5hbWVdKC4uLnN0eWxlczIpIDogY3VycmVudFtzdHlsZU5hbWVdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuICAgIG1vZHVsZTIuZXhwb3J0cyA9IChjaGFsazIsIHRlbXBvcmFyeSkgPT4ge1xuICAgICAgY29uc3Qgc3R5bGVzID0gW107XG4gICAgICBjb25zdCBjaHVua3MgPSBbXTtcbiAgICAgIGxldCBjaHVuayA9IFtdO1xuICAgICAgdGVtcG9yYXJ5LnJlcGxhY2UoVEVNUExBVEVfUkVHRVgsIChtLCBlc2NhcGVDaGFyYWN0ZXIsIGludmVyc2UsIHN0eWxlLCBjbG9zZSwgY2hhcmFjdGVyKSA9PiB7XG4gICAgICAgIGlmIChlc2NhcGVDaGFyYWN0ZXIpIHtcbiAgICAgICAgICBjaHVuay5wdXNoKHVuZXNjYXBlMihlc2NhcGVDaGFyYWN0ZXIpKTtcbiAgICAgICAgfSBlbHNlIGlmIChzdHlsZSkge1xuICAgICAgICAgIGNvbnN0IHN0cmluZyA9IGNodW5rLmpvaW4oXCJcIik7XG4gICAgICAgICAgY2h1bmsgPSBbXTtcbiAgICAgICAgICBjaHVua3MucHVzaChzdHlsZXMubGVuZ3RoID09PSAwID8gc3RyaW5nIDogYnVpbGRTdHlsZShjaGFsazIsIHN0eWxlcykoc3RyaW5nKSk7XG4gICAgICAgICAgc3R5bGVzLnB1c2goeyBpbnZlcnNlLCBzdHlsZXM6IHBhcnNlU3R5bGUoc3R5bGUpIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGNsb3NlKSB7XG4gICAgICAgICAgaWYgKHN0eWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZvdW5kIGV4dHJhbmVvdXMgfSBpbiBDaGFsayB0ZW1wbGF0ZSBsaXRlcmFsXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaHVua3MucHVzaChidWlsZFN0eWxlKGNoYWxrMiwgc3R5bGVzKShjaHVuay5qb2luKFwiXCIpKSk7XG4gICAgICAgICAgY2h1bmsgPSBbXTtcbiAgICAgICAgICBzdHlsZXMucG9wKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2h1bmsucHVzaChjaGFyYWN0ZXIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGNodW5rcy5wdXNoKGNodW5rLmpvaW4oXCJcIikpO1xuICAgICAgaWYgKHN0eWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGVyck1lc3NhZ2UgPSBgQ2hhbGsgdGVtcGxhdGUgbGl0ZXJhbCBpcyBtaXNzaW5nICR7c3R5bGVzLmxlbmd0aH0gY2xvc2luZyBicmFja2V0JHtzdHlsZXMubGVuZ3RoID09PSAxID8gXCJcIiA6IFwic1wifSAoXFxgfVxcYClgO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyTWVzc2FnZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2h1bmtzLmpvaW4oXCJcIik7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jaGFsay9zb3VyY2UvaW5kZXguanNcbnZhciByZXF1aXJlX3NvdXJjZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jaGFsay9zb3VyY2UvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBhbnNpU3R5bGVzID0gcmVxdWlyZV9hbnNpX3N0eWxlcygpO1xuICAgIHZhciB7IHN0ZG91dDogc3Rkb3V0Q29sb3IsIHN0ZGVycjogc3RkZXJyQ29sb3IgfSA9IHJlcXVpcmVfc3VwcG9ydHNfY29sb3IoKTtcbiAgICB2YXIge1xuICAgICAgc3RyaW5nUmVwbGFjZUFsbCxcbiAgICAgIHN0cmluZ0VuY2FzZUNSTEZXaXRoRmlyc3RJbmRleFxuICAgIH0gPSByZXF1aXJlX3V0aWwoKTtcbiAgICB2YXIgeyBpc0FycmF5IH0gPSBBcnJheTtcbiAgICB2YXIgbGV2ZWxNYXBwaW5nID0gW1xuICAgICAgXCJhbnNpXCIsXG4gICAgICBcImFuc2lcIixcbiAgICAgIFwiYW5zaTI1NlwiLFxuICAgICAgXCJhbnNpMTZtXCJcbiAgICBdO1xuICAgIHZhciBzdHlsZXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB2YXIgYXBwbHlPcHRpb25zID0gKG9iamVjdCwgb3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgICBpZiAob3B0aW9ucy5sZXZlbCAmJiAhKE51bWJlci5pc0ludGVnZXIob3B0aW9ucy5sZXZlbCkgJiYgb3B0aW9ucy5sZXZlbCA+PSAwICYmIG9wdGlvbnMubGV2ZWwgPD0gMykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGBsZXZlbGAgb3B0aW9uIHNob3VsZCBiZSBhbiBpbnRlZ2VyIGZyb20gMCB0byAzXCIpO1xuICAgICAgfVxuICAgICAgY29uc3QgY29sb3JMZXZlbCA9IHN0ZG91dENvbG9yID8gc3Rkb3V0Q29sb3IubGV2ZWwgOiAwO1xuICAgICAgb2JqZWN0LmxldmVsID0gb3B0aW9ucy5sZXZlbCA9PT0gdm9pZCAwID8gY29sb3JMZXZlbCA6IG9wdGlvbnMubGV2ZWw7XG4gICAgfTtcbiAgICB2YXIgQ2hhbGtDbGFzcyA9IGNsYXNzIHtcbiAgICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIGNoYWxrRmFjdG9yeShvcHRpb25zKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBjaGFsa0ZhY3RvcnkgPSAob3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgY2hhbGszID0ge307XG4gICAgICBhcHBseU9wdGlvbnMoY2hhbGszLCBvcHRpb25zKTtcbiAgICAgIGNoYWxrMy50ZW1wbGF0ZSA9ICguLi5hcmd1bWVudHNfKSA9PiBjaGFsa1RhZyhjaGFsazMudGVtcGxhdGUsIC4uLmFyZ3VtZW50c18pO1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGNoYWxrMywgQ2hhbGsucHJvdG90eXBlKTtcbiAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihjaGFsazMudGVtcGxhdGUsIGNoYWxrMyk7XG4gICAgICBjaGFsazMudGVtcGxhdGUuY29uc3RydWN0b3IgPSAoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImBjaGFsay5jb25zdHJ1Y3RvcigpYCBpcyBkZXByZWNhdGVkLiBVc2UgYG5ldyBjaGFsay5JbnN0YW5jZSgpYCBpbnN0ZWFkLlwiKTtcbiAgICAgIH07XG4gICAgICBjaGFsazMudGVtcGxhdGUuSW5zdGFuY2UgPSBDaGFsa0NsYXNzO1xuICAgICAgcmV0dXJuIGNoYWxrMy50ZW1wbGF0ZTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIENoYWxrKG9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBjaGFsa0ZhY3Rvcnkob3B0aW9ucyk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgW3N0eWxlTmFtZSwgc3R5bGVdIG9mIE9iamVjdC5lbnRyaWVzKGFuc2lTdHlsZXMpKSB7XG4gICAgICBzdHlsZXNbc3R5bGVOYW1lXSA9IHtcbiAgICAgICAgZ2V0KCkge1xuICAgICAgICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHRoaXMsIGNyZWF0ZVN0eWxlcihzdHlsZS5vcGVuLCBzdHlsZS5jbG9zZSwgdGhpcy5fc3R5bGVyKSwgdGhpcy5faXNFbXB0eSk7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIHN0eWxlTmFtZSwgeyB2YWx1ZTogYnVpbGRlciB9KTtcbiAgICAgICAgICByZXR1cm4gYnVpbGRlcjtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgc3R5bGVzLnZpc2libGUgPSB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHRoaXMsIHRoaXMuX3N0eWxlciwgdHJ1ZSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcInZpc2libGVcIiwgeyB2YWx1ZTogYnVpbGRlciB9KTtcbiAgICAgICAgcmV0dXJuIGJ1aWxkZXI7XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgdXNlZE1vZGVscyA9IFtcInJnYlwiLCBcImhleFwiLCBcImtleXdvcmRcIiwgXCJoc2xcIiwgXCJoc3ZcIiwgXCJod2JcIiwgXCJhbnNpXCIsIFwiYW5zaTI1NlwiXTtcbiAgICBmb3IgKGNvbnN0IG1vZGVsIG9mIHVzZWRNb2RlbHMpIHtcbiAgICAgIHN0eWxlc1ttb2RlbF0gPSB7XG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICBjb25zdCB7IGxldmVsIH0gPSB0aGlzO1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbiguLi5hcmd1bWVudHNfKSB7XG4gICAgICAgICAgICBjb25zdCBzdHlsZXIgPSBjcmVhdGVTdHlsZXIoYW5zaVN0eWxlcy5jb2xvcltsZXZlbE1hcHBpbmdbbGV2ZWxdXVttb2RlbF0oLi4uYXJndW1lbnRzXyksIGFuc2lTdHlsZXMuY29sb3IuY2xvc2UsIHRoaXMuX3N0eWxlcik7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlQnVpbGRlcih0aGlzLCBzdHlsZXIsIHRoaXMuX2lzRW1wdHkpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIGZvciAoY29uc3QgbW9kZWwgb2YgdXNlZE1vZGVscykge1xuICAgICAgY29uc3QgYmdNb2RlbCA9IFwiYmdcIiArIG1vZGVsWzBdLnRvVXBwZXJDYXNlKCkgKyBtb2RlbC5zbGljZSgxKTtcbiAgICAgIHN0eWxlc1tiZ01vZGVsXSA9IHtcbiAgICAgICAgZ2V0KCkge1xuICAgICAgICAgIGNvbnN0IHsgbGV2ZWwgfSA9IHRoaXM7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3VtZW50c18pIHtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlciA9IGNyZWF0ZVN0eWxlcihhbnNpU3R5bGVzLmJnQ29sb3JbbGV2ZWxNYXBwaW5nW2xldmVsXV1bbW9kZWxdKC4uLmFyZ3VtZW50c18pLCBhbnNpU3R5bGVzLmJnQ29sb3IuY2xvc2UsIHRoaXMuX3N0eWxlcik7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlQnVpbGRlcih0aGlzLCBzdHlsZXIsIHRoaXMuX2lzRW1wdHkpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHZhciBwcm90byA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKCgpID0+IHtcbiAgICB9LCB7XG4gICAgICAuLi5zdHlsZXMsXG4gICAgICBsZXZlbDoge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2dlbmVyYXRvci5sZXZlbDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KGxldmVsKSB7XG4gICAgICAgICAgdGhpcy5fZ2VuZXJhdG9yLmxldmVsID0gbGV2ZWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgY3JlYXRlU3R5bGVyID0gKG9wZW4sIGNsb3NlLCBwYXJlbnQpID0+IHtcbiAgICAgIGxldCBvcGVuQWxsO1xuICAgICAgbGV0IGNsb3NlQWxsO1xuICAgICAgaWYgKHBhcmVudCA9PT0gdm9pZCAwKSB7XG4gICAgICAgIG9wZW5BbGwgPSBvcGVuO1xuICAgICAgICBjbG9zZUFsbCA9IGNsb3NlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3BlbkFsbCA9IHBhcmVudC5vcGVuQWxsICsgb3BlbjtcbiAgICAgICAgY2xvc2VBbGwgPSBjbG9zZSArIHBhcmVudC5jbG9zZUFsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG9wZW4sXG4gICAgICAgIGNsb3NlLFxuICAgICAgICBvcGVuQWxsLFxuICAgICAgICBjbG9zZUFsbCxcbiAgICAgICAgcGFyZW50XG4gICAgICB9O1xuICAgIH07XG4gICAgdmFyIGNyZWF0ZUJ1aWxkZXIgPSAoc2VsZjIsIF9zdHlsZXIsIF9pc0VtcHR5KSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gKC4uLmFyZ3VtZW50c18pID0+IHtcbiAgICAgICAgaWYgKGlzQXJyYXkoYXJndW1lbnRzX1swXSkgJiYgaXNBcnJheShhcmd1bWVudHNfWzBdLnJhdykpIHtcbiAgICAgICAgICByZXR1cm4gYXBwbHlTdHlsZShidWlsZGVyLCBjaGFsa1RhZyhidWlsZGVyLCAuLi5hcmd1bWVudHNfKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFwcGx5U3R5bGUoYnVpbGRlciwgYXJndW1lbnRzXy5sZW5ndGggPT09IDEgPyBcIlwiICsgYXJndW1lbnRzX1swXSA6IGFyZ3VtZW50c18uam9pbihcIiBcIikpO1xuICAgICAgfTtcbiAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihidWlsZGVyLCBwcm90byk7XG4gICAgICBidWlsZGVyLl9nZW5lcmF0b3IgPSBzZWxmMjtcbiAgICAgIGJ1aWxkZXIuX3N0eWxlciA9IF9zdHlsZXI7XG4gICAgICBidWlsZGVyLl9pc0VtcHR5ID0gX2lzRW1wdHk7XG4gICAgICByZXR1cm4gYnVpbGRlcjtcbiAgICB9O1xuICAgIHZhciBhcHBseVN0eWxlID0gKHNlbGYyLCBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChzZWxmMi5sZXZlbCA8PSAwIHx8ICFzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHNlbGYyLl9pc0VtcHR5ID8gXCJcIiA6IHN0cmluZztcbiAgICAgIH1cbiAgICAgIGxldCBzdHlsZXIgPSBzZWxmMi5fc3R5bGVyO1xuICAgICAgaWYgKHN0eWxlciA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICB9XG4gICAgICBjb25zdCB7IG9wZW5BbGwsIGNsb3NlQWxsIH0gPSBzdHlsZXI7XG4gICAgICBpZiAoc3RyaW5nLmluZGV4T2YoXCJcXHgxQlwiKSAhPT0gLTEpIHtcbiAgICAgICAgd2hpbGUgKHN0eWxlciAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nUmVwbGFjZUFsbChzdHJpbmcsIHN0eWxlci5jbG9zZSwgc3R5bGVyLm9wZW4pO1xuICAgICAgICAgIHN0eWxlciA9IHN0eWxlci5wYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGxmSW5kZXggPSBzdHJpbmcuaW5kZXhPZihcIlxcblwiKTtcbiAgICAgIGlmIChsZkluZGV4ICE9PSAtMSkge1xuICAgICAgICBzdHJpbmcgPSBzdHJpbmdFbmNhc2VDUkxGV2l0aEZpcnN0SW5kZXgoc3RyaW5nLCBjbG9zZUFsbCwgb3BlbkFsbCwgbGZJbmRleCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3BlbkFsbCArIHN0cmluZyArIGNsb3NlQWxsO1xuICAgIH07XG4gICAgdmFyIHRlbXBsYXRlO1xuICAgIHZhciBjaGFsa1RhZyA9IChjaGFsazMsIC4uLnN0cmluZ3MpID0+IHtcbiAgICAgIGNvbnN0IFtmaXJzdFN0cmluZ10gPSBzdHJpbmdzO1xuICAgICAgaWYgKCFpc0FycmF5KGZpcnN0U3RyaW5nKSB8fCAhaXNBcnJheShmaXJzdFN0cmluZy5yYXcpKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmdzLmpvaW4oXCIgXCIpO1xuICAgICAgfVxuICAgICAgY29uc3QgYXJndW1lbnRzXyA9IHN0cmluZ3Muc2xpY2UoMSk7XG4gICAgICBjb25zdCBwYXJ0cyA9IFtmaXJzdFN0cmluZy5yYXdbMF1dO1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBmaXJzdFN0cmluZy5sZW5ndGg7IGkrKykge1xuICAgICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICAgIFN0cmluZyhhcmd1bWVudHNfW2kgLSAxXSkucmVwbGFjZSgvW3t9XFxcXF0vZywgXCJcXFxcJCZcIiksXG4gICAgICAgICAgU3RyaW5nKGZpcnN0U3RyaW5nLnJhd1tpXSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0ZW1wbGF0ZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHRlbXBsYXRlID0gcmVxdWlyZV90ZW1wbGF0ZXMoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0ZW1wbGF0ZShjaGFsazMsIHBhcnRzLmpvaW4oXCJcIikpO1xuICAgIH07XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQ2hhbGsucHJvdG90eXBlLCBzdHlsZXMpO1xuICAgIHZhciBjaGFsazIgPSBDaGFsaygpO1xuICAgIGNoYWxrMi5zdXBwb3J0c0NvbG9yID0gc3Rkb3V0Q29sb3I7XG4gICAgY2hhbGsyLnN0ZGVyciA9IENoYWxrKHsgbGV2ZWw6IHN0ZGVyckNvbG9yID8gc3RkZXJyQ29sb3IubGV2ZWwgOiAwIH0pO1xuICAgIGNoYWxrMi5zdGRlcnIuc3VwcG9ydHNDb2xvciA9IHN0ZGVyckNvbG9yO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGNoYWxrMjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzXG52YXIgcmVxdWlyZV9vYmplY3RfYXNzaWduID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL29iamVjdC1hc3NpZ24vaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuICAgIHZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4gICAgdmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuICAgIGZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuICAgICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHZvaWQgMCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWRcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gT2JqZWN0KHZhbCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghT2JqZWN0LmFzc2lnbikge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKFwiYWJjXCIpO1xuICAgICAgICB0ZXN0MVs1XSA9IFwiZGVcIjtcbiAgICAgICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gXCI1XCIpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRlc3QyID0ge307XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuICAgICAgICAgIHRlc3QyW1wiX1wiICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICByZXR1cm4gdGVzdDJbbl07XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAob3JkZXIyLmpvaW4oXCJcIikgIT09IFwiMDEyMzQ1Njc4OVwiKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0ZXN0MyA9IHt9O1xuICAgICAgICBcImFiY2RlZmdoaWprbG1ub3BxcnN0XCIuc3BsaXQoXCJcIikuZm9yRWFjaChmdW5jdGlvbihsZXR0ZXIpIHtcbiAgICAgICAgICB0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbihcIlwiKSAhPT0gXCJhYmNkZWZnaGlqa2xtbm9wcXJzdFwiKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uKHRhcmdldCwgc291cmNlKSB7XG4gICAgICB2YXIgZnJvbTtcbiAgICAgIHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG4gICAgICB2YXIgc3ltYm9scztcbiAgICAgIGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG4gICAgICAgIGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIGZyb20pIHtcbiAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG4gICAgICAgICAgICB0b1trZXldID0gZnJvbVtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgICAgICAgc3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcbiAgICAgICAgICAgICAgdG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRvO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29ycy9saWIvaW5kZXguanNcbnZhciByZXF1aXJlX2xpYjQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY29ycy9saWIvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIChmdW5jdGlvbigpIHtcbiAgICAgIFwidXNlIHN0cmljdFwiO1xuICAgICAgdmFyIGFzc2lnbiA9IHJlcXVpcmVfb2JqZWN0X2Fzc2lnbigpO1xuICAgICAgdmFyIHZhcnkgPSByZXF1aXJlX3ZhcnkoKTtcbiAgICAgIHZhciBkZWZhdWx0cyA9IHtcbiAgICAgICAgb3JpZ2luOiBcIipcIixcbiAgICAgICAgbWV0aG9kczogXCJHRVQsSEVBRCxQVVQsUEFUQ0gsUE9TVCxERUxFVEVcIixcbiAgICAgICAgcHJlZmxpZ2h0Q29udGludWU6IGZhbHNlLFxuICAgICAgICBvcHRpb25zU3VjY2Vzc1N0YXR1czogMjA0XG4gICAgICB9O1xuICAgICAgZnVuY3Rpb24gaXNTdHJpbmcocykge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHMgPT09IFwic3RyaW5nXCIgfHwgcyBpbnN0YW5jZW9mIFN0cmluZztcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGlzT3JpZ2luQWxsb3dlZChvcmlnaW4sIGFsbG93ZWRPcmlnaW4pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWxsb3dlZE9yaWdpbikpIHtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbG93ZWRPcmlnaW4ubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGlmIChpc09yaWdpbkFsbG93ZWQob3JpZ2luLCBhbGxvd2VkT3JpZ2luW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKGlzU3RyaW5nKGFsbG93ZWRPcmlnaW4pKSB7XG4gICAgICAgICAgcmV0dXJuIG9yaWdpbiA9PT0gYWxsb3dlZE9yaWdpbjtcbiAgICAgICAgfSBlbHNlIGlmIChhbGxvd2VkT3JpZ2luIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgICAgcmV0dXJuIGFsbG93ZWRPcmlnaW4udGVzdChvcmlnaW4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAhIWFsbG93ZWRPcmlnaW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZU9yaWdpbihvcHRpb25zLCByZXEpIHtcbiAgICAgICAgdmFyIHJlcXVlc3RPcmlnaW4gPSByZXEuaGVhZGVycy5vcmlnaW4sIGhlYWRlcnMgPSBbXSwgaXNBbGxvd2VkO1xuICAgICAgICBpZiAoIW9wdGlvbnMub3JpZ2luIHx8IG9wdGlvbnMub3JpZ2luID09PSBcIipcIikge1xuICAgICAgICAgIGhlYWRlcnMucHVzaChbe1xuICAgICAgICAgICAga2V5OiBcIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpblwiLFxuICAgICAgICAgICAgdmFsdWU6IFwiKlwiXG4gICAgICAgICAgfV0pO1xuICAgICAgICB9IGVsc2UgaWYgKGlzU3RyaW5nKG9wdGlvbnMub3JpZ2luKSkge1xuICAgICAgICAgIGhlYWRlcnMucHVzaChbe1xuICAgICAgICAgICAga2V5OiBcIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpblwiLFxuICAgICAgICAgICAgdmFsdWU6IG9wdGlvbnMub3JpZ2luXG4gICAgICAgICAgfV0pO1xuICAgICAgICAgIGhlYWRlcnMucHVzaChbe1xuICAgICAgICAgICAga2V5OiBcIlZhcnlcIixcbiAgICAgICAgICAgIHZhbHVlOiBcIk9yaWdpblwiXG4gICAgICAgICAgfV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzQWxsb3dlZCA9IGlzT3JpZ2luQWxsb3dlZChyZXF1ZXN0T3JpZ2luLCBvcHRpb25zLm9yaWdpbik7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKFt7XG4gICAgICAgICAgICBrZXk6IFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luXCIsXG4gICAgICAgICAgICB2YWx1ZTogaXNBbGxvd2VkID8gcmVxdWVzdE9yaWdpbiA6IGZhbHNlXG4gICAgICAgICAgfV0pO1xuICAgICAgICAgIGhlYWRlcnMucHVzaChbe1xuICAgICAgICAgICAga2V5OiBcIlZhcnlcIixcbiAgICAgICAgICAgIHZhbHVlOiBcIk9yaWdpblwiXG4gICAgICAgICAgfV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoZWFkZXJzO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY29uZmlndXJlTWV0aG9kcyhvcHRpb25zKSB7XG4gICAgICAgIHZhciBtZXRob2RzID0gb3B0aW9ucy5tZXRob2RzO1xuICAgICAgICBpZiAobWV0aG9kcy5qb2luKSB7XG4gICAgICAgICAgbWV0aG9kcyA9IG9wdGlvbnMubWV0aG9kcy5qb2luKFwiLFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzXCIsXG4gICAgICAgICAgdmFsdWU6IG1ldGhvZHNcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUNyZWRlbnRpYWxzKG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuY3JlZGVudGlhbHMgPT09IHRydWUpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5OiBcIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzXCIsXG4gICAgICAgICAgICB2YWx1ZTogXCJ0cnVlXCJcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY29uZmlndXJlQWxsb3dlZEhlYWRlcnMob3B0aW9ucywgcmVxKSB7XG4gICAgICAgIHZhciBhbGxvd2VkSGVhZGVycyA9IG9wdGlvbnMuYWxsb3dlZEhlYWRlcnMgfHwgb3B0aW9ucy5oZWFkZXJzO1xuICAgICAgICB2YXIgaGVhZGVycyA9IFtdO1xuICAgICAgICBpZiAoIWFsbG93ZWRIZWFkZXJzKSB7XG4gICAgICAgICAgYWxsb3dlZEhlYWRlcnMgPSByZXEuaGVhZGVyc1tcImFjY2Vzcy1jb250cm9sLXJlcXVlc3QtaGVhZGVyc1wiXTtcbiAgICAgICAgICBoZWFkZXJzLnB1c2goW3tcbiAgICAgICAgICAgIGtleTogXCJWYXJ5XCIsXG4gICAgICAgICAgICB2YWx1ZTogXCJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcnNcIlxuICAgICAgICAgIH1dKTtcbiAgICAgICAgfSBlbHNlIGlmIChhbGxvd2VkSGVhZGVycy5qb2luKSB7XG4gICAgICAgICAgYWxsb3dlZEhlYWRlcnMgPSBhbGxvd2VkSGVhZGVycy5qb2luKFwiLFwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dlZEhlYWRlcnMgJiYgYWxsb3dlZEhlYWRlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKFt7XG4gICAgICAgICAgICBrZXk6IFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVyc1wiLFxuICAgICAgICAgICAgdmFsdWU6IGFsbG93ZWRIZWFkZXJzXG4gICAgICAgICAgfV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoZWFkZXJzO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY29uZmlndXJlRXhwb3NlZEhlYWRlcnMob3B0aW9ucykge1xuICAgICAgICB2YXIgaGVhZGVycyA9IG9wdGlvbnMuZXhwb3NlZEhlYWRlcnM7XG4gICAgICAgIGlmICghaGVhZGVycykge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKGhlYWRlcnMuam9pbikge1xuICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLmpvaW4oXCIsXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoZWFkZXJzICYmIGhlYWRlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtleTogXCJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVyc1wiLFxuICAgICAgICAgICAgdmFsdWU6IGhlYWRlcnNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY29uZmlndXJlTWF4QWdlKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIG1heEFnZSA9ICh0eXBlb2Ygb3B0aW9ucy5tYXhBZ2UgPT09IFwibnVtYmVyXCIgfHwgb3B0aW9ucy5tYXhBZ2UpICYmIG9wdGlvbnMubWF4QWdlLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChtYXhBZ2UgJiYgbWF4QWdlLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBrZXk6IFwiQWNjZXNzLUNvbnRyb2wtTWF4LUFnZVwiLFxuICAgICAgICAgICAgdmFsdWU6IG1heEFnZVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBhcHBseUhlYWRlcnMoaGVhZGVycywgcmVzKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBuID0gaGVhZGVycy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICB2YXIgaGVhZGVyID0gaGVhZGVyc1tpXTtcbiAgICAgICAgICBpZiAoaGVhZGVyKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShoZWFkZXIpKSB7XG4gICAgICAgICAgICAgIGFwcGx5SGVhZGVycyhoZWFkZXIsIHJlcyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhlYWRlci5rZXkgPT09IFwiVmFyeVwiICYmIGhlYWRlci52YWx1ZSkge1xuICAgICAgICAgICAgICB2YXJ5KHJlcywgaGVhZGVyLnZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGVhZGVyLnZhbHVlKSB7XG4gICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoaGVhZGVyLmtleSwgaGVhZGVyLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGNvcnMyKG9wdGlvbnMsIHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICAgIHZhciBoZWFkZXJzID0gW10sIG1ldGhvZCA9IHJlcS5tZXRob2QgJiYgcmVxLm1ldGhvZC50b1VwcGVyQ2FzZSAmJiByZXEubWV0aG9kLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIGlmIChtZXRob2QgPT09IFwiT1BUSU9OU1wiKSB7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKGNvbmZpZ3VyZU9yaWdpbihvcHRpb25zLCByZXEpKTtcbiAgICAgICAgICBoZWFkZXJzLnB1c2goY29uZmlndXJlQ3JlZGVudGlhbHMob3B0aW9ucywgcmVxKSk7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKGNvbmZpZ3VyZU1ldGhvZHMob3B0aW9ucywgcmVxKSk7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKGNvbmZpZ3VyZUFsbG93ZWRIZWFkZXJzKG9wdGlvbnMsIHJlcSkpO1xuICAgICAgICAgIGhlYWRlcnMucHVzaChjb25maWd1cmVNYXhBZ2Uob3B0aW9ucywgcmVxKSk7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKGNvbmZpZ3VyZUV4cG9zZWRIZWFkZXJzKG9wdGlvbnMsIHJlcSkpO1xuICAgICAgICAgIGFwcGx5SGVhZGVycyhoZWFkZXJzLCByZXMpO1xuICAgICAgICAgIGlmIChvcHRpb25zLnByZWZsaWdodENvbnRpbnVlKSB7XG4gICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gb3B0aW9ucy5vcHRpb25zU3VjY2Vzc1N0YXR1cztcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LUxlbmd0aFwiLCBcIjBcIik7XG4gICAgICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhlYWRlcnMucHVzaChjb25maWd1cmVPcmlnaW4ob3B0aW9ucywgcmVxKSk7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKGNvbmZpZ3VyZUNyZWRlbnRpYWxzKG9wdGlvbnMsIHJlcSkpO1xuICAgICAgICAgIGhlYWRlcnMucHVzaChjb25maWd1cmVFeHBvc2VkSGVhZGVycyhvcHRpb25zLCByZXEpKTtcbiAgICAgICAgICBhcHBseUhlYWRlcnMoaGVhZGVycywgcmVzKTtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIG1pZGRsZXdhcmVXcmFwcGVyKG8pIHtcbiAgICAgICAgdmFyIG9wdGlvbnNDYWxsYmFjayA9IG51bGw7XG4gICAgICAgIGlmICh0eXBlb2YgbyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgb3B0aW9uc0NhbGxiYWNrID0gbztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvcHRpb25zQ2FsbGJhY2sgPSBmdW5jdGlvbihyZXEsIGNiKSB7XG4gICAgICAgICAgICBjYihudWxsLCBvKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBjb3JzTWlkZGxld2FyZShyZXEsIHJlcywgbmV4dCkge1xuICAgICAgICAgIG9wdGlvbnNDYWxsYmFjayhyZXEsIGZ1bmN0aW9uKGVycjIsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChlcnIyKSB7XG4gICAgICAgICAgICAgIG5leHQoZXJyMik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2YXIgY29yc09wdGlvbnMgPSBhc3NpZ24oe30sIGRlZmF1bHRzLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgdmFyIG9yaWdpbkNhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgICAgICAgaWYgKGNvcnNPcHRpb25zLm9yaWdpbiAmJiB0eXBlb2YgY29yc09wdGlvbnMub3JpZ2luID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5DYWxsYmFjayA9IGNvcnNPcHRpb25zLm9yaWdpbjtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb3JzT3B0aW9ucy5vcmlnaW4pIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5DYWxsYmFjayA9IGZ1bmN0aW9uKG9yaWdpbiwgY2IpIHtcbiAgICAgICAgICAgICAgICAgIGNiKG51bGwsIGNvcnNPcHRpb25zLm9yaWdpbik7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAob3JpZ2luQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5DYWxsYmFjayhyZXEuaGVhZGVycy5vcmlnaW4sIGZ1bmN0aW9uKGVycjIyLCBvcmlnaW4pIHtcbiAgICAgICAgICAgICAgICAgIGlmIChlcnIyMiB8fCAhb3JpZ2luKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHQoZXJyMjIpO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29yc09wdGlvbnMub3JpZ2luID0gb3JpZ2luO1xuICAgICAgICAgICAgICAgICAgICBjb3JzMihjb3JzT3B0aW9ucywgcmVxLCByZXMsIG5leHQpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgbW9kdWxlMi5leHBvcnRzID0gbWlkZGxld2FyZVdyYXBwZXI7XG4gICAgfSkoKTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QvbGliL2luZGV4Lm1qc1xudmFyIHV0aWw7XG4oZnVuY3Rpb24odXRpbDIpIHtcbiAgdXRpbDIuYXNzZXJ0RXF1YWwgPSAodmFsKSA9PiB2YWw7XG4gIGZ1bmN0aW9uIGFzc2VydElzKF9hcmcpIHtcbiAgfVxuICB1dGlsMi5hc3NlcnRJcyA9IGFzc2VydElzO1xuICBmdW5jdGlvbiBhc3NlcnROZXZlcihfeCkge1xuICAgIHRocm93IG5ldyBFcnJvcigpO1xuICB9XG4gIHV0aWwyLmFzc2VydE5ldmVyID0gYXNzZXJ0TmV2ZXI7XG4gIHV0aWwyLmFycmF5VG9FbnVtID0gKGl0ZW1zKSA9PiB7XG4gICAgY29uc3Qgb2JqID0ge307XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBvYmpbaXRlbV0gPSBpdGVtO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9O1xuICB1dGlsMi5nZXRWYWxpZEVudW1WYWx1ZXMgPSAob2JqKSA9PiB7XG4gICAgY29uc3QgdmFsaWRLZXlzID0gdXRpbDIub2JqZWN0S2V5cyhvYmopLmZpbHRlcigoaykgPT4gdHlwZW9mIG9ialtvYmpba11dICE9PSBcIm51bWJlclwiKTtcbiAgICBjb25zdCBmaWx0ZXJlZCA9IHt9O1xuICAgIGZvciAoY29uc3QgayBvZiB2YWxpZEtleXMpIHtcbiAgICAgIGZpbHRlcmVkW2tdID0gb2JqW2tdO1xuICAgIH1cbiAgICByZXR1cm4gdXRpbDIub2JqZWN0VmFsdWVzKGZpbHRlcmVkKTtcbiAgfTtcbiAgdXRpbDIub2JqZWN0VmFsdWVzID0gKG9iaikgPT4ge1xuICAgIHJldHVybiB1dGlsMi5vYmplY3RLZXlzKG9iaikubWFwKGZ1bmN0aW9uKGUpIHtcbiAgICAgIHJldHVybiBvYmpbZV07XG4gICAgfSk7XG4gIH07XG4gIHV0aWwyLm9iamVjdEtleXMgPSB0eXBlb2YgT2JqZWN0LmtleXMgPT09IFwiZnVuY3Rpb25cIiA/IChvYmopID0+IE9iamVjdC5rZXlzKG9iaikgOiAob2JqZWN0KSA9PiB7XG4gICAgY29uc3Qga2V5cyA9IFtdO1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9iamVjdCkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpIHtcbiAgICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBrZXlzO1xuICB9O1xuICB1dGlsMi5maW5kID0gKGFyciwgY2hlY2tlcikgPT4ge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBhcnIpIHtcbiAgICAgIGlmIChjaGVja2VyKGl0ZW0pKVxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfTtcbiAgdXRpbDIuaXNJbnRlZ2VyID0gdHlwZW9mIE51bWJlci5pc0ludGVnZXIgPT09IFwiZnVuY3Rpb25cIiA/ICh2YWwpID0+IE51bWJlci5pc0ludGVnZXIodmFsKSA6ICh2YWwpID0+IHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIgJiYgaXNGaW5pdGUodmFsKSAmJiBNYXRoLmZsb29yKHZhbCkgPT09IHZhbDtcbiAgZnVuY3Rpb24gam9pblZhbHVlcyhhcnJheSwgc2VwYXJhdG9yID0gXCIgfCBcIikge1xuICAgIHJldHVybiBhcnJheS5tYXAoKHZhbCkgPT4gdHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIiA/IGAnJHt2YWx9J2AgOiB2YWwpLmpvaW4oc2VwYXJhdG9yKTtcbiAgfVxuICB1dGlsMi5qb2luVmFsdWVzID0gam9pblZhbHVlcztcbiAgdXRpbDIuanNvblN0cmluZ2lmeVJlcGxhY2VyID0gKF8yLCB2YWx1ZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG59KSh1dGlsIHx8ICh1dGlsID0ge30pKTtcbnZhciBvYmplY3RVdGlsO1xuKGZ1bmN0aW9uKG9iamVjdFV0aWwyKSB7XG4gIG9iamVjdFV0aWwyLm1lcmdlU2hhcGVzID0gKGZpcnN0LCBzZWNvbmQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZmlyc3QsXG4gICAgICAuLi5zZWNvbmRcbiAgICAgIC8vIHNlY29uZCBvdmVyd3JpdGVzIGZpcnN0XG4gICAgfTtcbiAgfTtcbn0pKG9iamVjdFV0aWwgfHwgKG9iamVjdFV0aWwgPSB7fSkpO1xudmFyIFpvZFBhcnNlZFR5cGUgPSB1dGlsLmFycmF5VG9FbnVtKFtcbiAgXCJzdHJpbmdcIixcbiAgXCJuYW5cIixcbiAgXCJudW1iZXJcIixcbiAgXCJpbnRlZ2VyXCIsXG4gIFwiZmxvYXRcIixcbiAgXCJib29sZWFuXCIsXG4gIFwiZGF0ZVwiLFxuICBcImJpZ2ludFwiLFxuICBcInN5bWJvbFwiLFxuICBcImZ1bmN0aW9uXCIsXG4gIFwidW5kZWZpbmVkXCIsXG4gIFwibnVsbFwiLFxuICBcImFycmF5XCIsXG4gIFwib2JqZWN0XCIsXG4gIFwidW5rbm93blwiLFxuICBcInByb21pc2VcIixcbiAgXCJ2b2lkXCIsXG4gIFwibmV2ZXJcIixcbiAgXCJtYXBcIixcbiAgXCJzZXRcIlxuXSk7XG52YXIgZ2V0UGFyc2VkVHlwZSA9IChkYXRhKSA9PiB7XG4gIGNvbnN0IHQgPSB0eXBlb2YgZGF0YTtcbiAgc3dpdGNoICh0KSB7XG4gICAgY2FzZSBcInVuZGVmaW5lZFwiOlxuICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkO1xuICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLnN0cmluZztcbiAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICByZXR1cm4gaXNOYU4oZGF0YSkgPyBab2RQYXJzZWRUeXBlLm5hbiA6IFpvZFBhcnNlZFR5cGUubnVtYmVyO1xuICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5ib29sZWFuO1xuICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUuZnVuY3Rpb247XG4gICAgY2FzZSBcImJpZ2ludFwiOlxuICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUuYmlnaW50O1xuICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLnN5bWJvbDtcbiAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5hcnJheTtcbiAgICAgIH1cbiAgICAgIGlmIChkYXRhID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLm51bGw7XG4gICAgICB9XG4gICAgICBpZiAoZGF0YS50aGVuICYmIHR5cGVvZiBkYXRhLnRoZW4gPT09IFwiZnVuY3Rpb25cIiAmJiBkYXRhLmNhdGNoICYmIHR5cGVvZiBkYXRhLmNhdGNoID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUucHJvbWlzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgTWFwICE9PSBcInVuZGVmaW5lZFwiICYmIGRhdGEgaW5zdGFuY2VvZiBNYXApIHtcbiAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUubWFwO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBTZXQgIT09IFwidW5kZWZpbmVkXCIgJiYgZGF0YSBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5zZXQ7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIERhdGUgIT09IFwidW5kZWZpbmVkXCIgJiYgZGF0YSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUuZGF0ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLm9iamVjdDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUudW5rbm93bjtcbiAgfVxufTtcbnZhciBab2RJc3N1ZUNvZGUgPSB1dGlsLmFycmF5VG9FbnVtKFtcbiAgXCJpbnZhbGlkX3R5cGVcIixcbiAgXCJpbnZhbGlkX2xpdGVyYWxcIixcbiAgXCJjdXN0b21cIixcbiAgXCJpbnZhbGlkX3VuaW9uXCIsXG4gIFwiaW52YWxpZF91bmlvbl9kaXNjcmltaW5hdG9yXCIsXG4gIFwiaW52YWxpZF9lbnVtX3ZhbHVlXCIsXG4gIFwidW5yZWNvZ25pemVkX2tleXNcIixcbiAgXCJpbnZhbGlkX2FyZ3VtZW50c1wiLFxuICBcImludmFsaWRfcmV0dXJuX3R5cGVcIixcbiAgXCJpbnZhbGlkX2RhdGVcIixcbiAgXCJpbnZhbGlkX3N0cmluZ1wiLFxuICBcInRvb19zbWFsbFwiLFxuICBcInRvb19iaWdcIixcbiAgXCJpbnZhbGlkX2ludGVyc2VjdGlvbl90eXBlc1wiLFxuICBcIm5vdF9tdWx0aXBsZV9vZlwiLFxuICBcIm5vdF9maW5pdGVcIlxuXSk7XG52YXIgcXVvdGVsZXNzSnNvbiA9IChvYmopID0+IHtcbiAgY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KG9iaiwgbnVsbCwgMik7XG4gIHJldHVybiBqc29uLnJlcGxhY2UoL1wiKFteXCJdKylcIjovZywgXCIkMTpcIik7XG59O1xudmFyIFpvZEVycm9yID0gY2xhc3MgX1pvZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBnZXQgZXJyb3JzKCkge1xuICAgIHJldHVybiB0aGlzLmlzc3VlcztcbiAgfVxuICBjb25zdHJ1Y3Rvcihpc3N1ZXMpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaXNzdWVzID0gW107XG4gICAgdGhpcy5hZGRJc3N1ZSA9IChzdWIpID0+IHtcbiAgICAgIHRoaXMuaXNzdWVzID0gWy4uLnRoaXMuaXNzdWVzLCBzdWJdO1xuICAgIH07XG4gICAgdGhpcy5hZGRJc3N1ZXMgPSAoc3VicyA9IFtdKSA9PiB7XG4gICAgICB0aGlzLmlzc3VlcyA9IFsuLi50aGlzLmlzc3VlcywgLi4uc3Vic107XG4gICAgfTtcbiAgICBjb25zdCBhY3R1YWxQcm90byA9IG5ldy50YXJnZXQucHJvdG90eXBlO1xuICAgIGlmIChPYmplY3Quc2V0UHJvdG90eXBlT2YpIHtcbiAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBhY3R1YWxQcm90byk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX19wcm90b19fID0gYWN0dWFsUHJvdG87XG4gICAgfVxuICAgIHRoaXMubmFtZSA9IFwiWm9kRXJyb3JcIjtcbiAgICB0aGlzLmlzc3VlcyA9IGlzc3VlcztcbiAgfVxuICBmb3JtYXQoX21hcHBlcikge1xuICAgIGNvbnN0IG1hcHBlciA9IF9tYXBwZXIgfHwgZnVuY3Rpb24oaXNzdWUpIHtcbiAgICAgIHJldHVybiBpc3N1ZS5tZXNzYWdlO1xuICAgIH07XG4gICAgY29uc3QgZmllbGRFcnJvcnMgPSB7IF9lcnJvcnM6IFtdIH07XG4gICAgY29uc3QgcHJvY2Vzc0Vycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGlzc3VlIG9mIGVycm9yLmlzc3Vlcykge1xuICAgICAgICBpZiAoaXNzdWUuY29kZSA9PT0gXCJpbnZhbGlkX3VuaW9uXCIpIHtcbiAgICAgICAgICBpc3N1ZS51bmlvbkVycm9ycy5tYXAocHJvY2Vzc0Vycm9yKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc3N1ZS5jb2RlID09PSBcImludmFsaWRfcmV0dXJuX3R5cGVcIikge1xuICAgICAgICAgIHByb2Nlc3NFcnJvcihpc3N1ZS5yZXR1cm5UeXBlRXJyb3IpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzc3VlLmNvZGUgPT09IFwiaW52YWxpZF9hcmd1bWVudHNcIikge1xuICAgICAgICAgIHByb2Nlc3NFcnJvcihpc3N1ZS5hcmd1bWVudHNFcnJvcik7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNzdWUucGF0aC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBmaWVsZEVycm9ycy5fZXJyb3JzLnB1c2gobWFwcGVyKGlzc3VlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IGN1cnIgPSBmaWVsZEVycm9ycztcbiAgICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgICAgd2hpbGUgKGkgPCBpc3N1ZS5wYXRoLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZWwgPSBpc3N1ZS5wYXRoW2ldO1xuICAgICAgICAgICAgY29uc3QgdGVybWluYWwgPSBpID09PSBpc3N1ZS5wYXRoLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBpZiAoIXRlcm1pbmFsKSB7XG4gICAgICAgICAgICAgIGN1cnJbZWxdID0gY3VycltlbF0gfHwgeyBfZXJyb3JzOiBbXSB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY3VycltlbF0gPSBjdXJyW2VsXSB8fCB7IF9lcnJvcnM6IFtdIH07XG4gICAgICAgICAgICAgIGN1cnJbZWxdLl9lcnJvcnMucHVzaChtYXBwZXIoaXNzdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGN1cnIgPSBjdXJyW2VsXTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHByb2Nlc3NFcnJvcih0aGlzKTtcbiAgICByZXR1cm4gZmllbGRFcnJvcnM7XG4gIH1cbiAgc3RhdGljIGFzc2VydCh2YWx1ZSkge1xuICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgX1pvZEVycm9yKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3QgYSBab2RFcnJvcjogJHt2YWx1ZX1gKTtcbiAgICB9XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZTtcbiAgfVxuICBnZXQgbWVzc2FnZSgpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5pc3N1ZXMsIHV0aWwuanNvblN0cmluZ2lmeVJlcGxhY2VyLCAyKTtcbiAgfVxuICBnZXQgaXNFbXB0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc3N1ZXMubGVuZ3RoID09PSAwO1xuICB9XG4gIGZsYXR0ZW4obWFwcGVyID0gKGlzc3VlKSA9PiBpc3N1ZS5tZXNzYWdlKSB7XG4gICAgY29uc3QgZmllbGRFcnJvcnMgPSB7fTtcbiAgICBjb25zdCBmb3JtRXJyb3JzID0gW107XG4gICAgZm9yIChjb25zdCBzdWIgb2YgdGhpcy5pc3N1ZXMpIHtcbiAgICAgIGlmIChzdWIucGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZpZWxkRXJyb3JzW3N1Yi5wYXRoWzBdXSA9IGZpZWxkRXJyb3JzW3N1Yi5wYXRoWzBdXSB8fCBbXTtcbiAgICAgICAgZmllbGRFcnJvcnNbc3ViLnBhdGhbMF1dLnB1c2gobWFwcGVyKHN1YikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybUVycm9ycy5wdXNoKG1hcHBlcihzdWIpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgZm9ybUVycm9ycywgZmllbGRFcnJvcnMgfTtcbiAgfVxuICBnZXQgZm9ybUVycm9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGF0dGVuKCk7XG4gIH1cbn07XG5ab2RFcnJvci5jcmVhdGUgPSAoaXNzdWVzKSA9PiB7XG4gIGNvbnN0IGVycm9yID0gbmV3IFpvZEVycm9yKGlzc3Vlcyk7XG4gIHJldHVybiBlcnJvcjtcbn07XG52YXIgZXJyb3JNYXAgPSAoaXNzdWUsIF9jdHgpID0+IHtcbiAgbGV0IG1lc3NhZ2U7XG4gIHN3aXRjaCAoaXNzdWUuY29kZSkge1xuICAgIGNhc2UgWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZTpcbiAgICAgIGlmIChpc3N1ZS5yZWNlaXZlZCA9PT0gWm9kUGFyc2VkVHlwZS51bmRlZmluZWQpIHtcbiAgICAgICAgbWVzc2FnZSA9IFwiUmVxdWlyZWRcIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgRXhwZWN0ZWQgJHtpc3N1ZS5leHBlY3RlZH0sIHJlY2VpdmVkICR7aXNzdWUucmVjZWl2ZWR9YDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgWm9kSXNzdWVDb2RlLmludmFsaWRfbGl0ZXJhbDpcbiAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBsaXRlcmFsIHZhbHVlLCBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KGlzc3VlLmV4cGVjdGVkLCB1dGlsLmpzb25TdHJpbmdpZnlSZXBsYWNlcil9YDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgWm9kSXNzdWVDb2RlLnVucmVjb2duaXplZF9rZXlzOlxuICAgICAgbWVzc2FnZSA9IGBVbnJlY29nbml6ZWQga2V5KHMpIGluIG9iamVjdDogJHt1dGlsLmpvaW5WYWx1ZXMoaXNzdWUua2V5cywgXCIsIFwiKX1gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF91bmlvbjpcbiAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBpbnB1dGA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uX2Rpc2NyaW1pbmF0b3I6XG4gICAgICBtZXNzYWdlID0gYEludmFsaWQgZGlzY3JpbWluYXRvciB2YWx1ZS4gRXhwZWN0ZWQgJHt1dGlsLmpvaW5WYWx1ZXMoaXNzdWUub3B0aW9ucyl9YDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgWm9kSXNzdWVDb2RlLmludmFsaWRfZW51bV92YWx1ZTpcbiAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBlbnVtIHZhbHVlLiBFeHBlY3RlZCAke3V0aWwuam9pblZhbHVlcyhpc3N1ZS5vcHRpb25zKX0sIHJlY2VpdmVkICcke2lzc3VlLnJlY2VpdmVkfSdgO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9hcmd1bWVudHM6XG4gICAgICBtZXNzYWdlID0gYEludmFsaWQgZnVuY3Rpb24gYXJndW1lbnRzYDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgWm9kSXNzdWVDb2RlLmludmFsaWRfcmV0dXJuX3R5cGU6XG4gICAgICBtZXNzYWdlID0gYEludmFsaWQgZnVuY3Rpb24gcmV0dXJuIHR5cGVgO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9kYXRlOlxuICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGRhdGVgO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmc6XG4gICAgICBpZiAodHlwZW9mIGlzc3VlLnZhbGlkYXRpb24gPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgaWYgKFwiaW5jbHVkZXNcIiBpbiBpc3N1ZS52YWxpZGF0aW9uKSB7XG4gICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGlucHV0OiBtdXN0IGluY2x1ZGUgXCIke2lzc3VlLnZhbGlkYXRpb24uaW5jbHVkZXN9XCJgO1xuICAgICAgICAgIGlmICh0eXBlb2YgaXNzdWUudmFsaWRhdGlvbi5wb3NpdGlvbiA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgbWVzc2FnZSA9IGAke21lc3NhZ2V9IGF0IG9uZSBvciBtb3JlIHBvc2l0aW9ucyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJHtpc3N1ZS52YWxpZGF0aW9uLnBvc2l0aW9ufWA7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKFwic3RhcnRzV2l0aFwiIGluIGlzc3VlLnZhbGlkYXRpb24pIHtcbiAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgaW5wdXQ6IG11c3Qgc3RhcnQgd2l0aCBcIiR7aXNzdWUudmFsaWRhdGlvbi5zdGFydHNXaXRofVwiYDtcbiAgICAgICAgfSBlbHNlIGlmIChcImVuZHNXaXRoXCIgaW4gaXNzdWUudmFsaWRhdGlvbikge1xuICAgICAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBpbnB1dDogbXVzdCBlbmQgd2l0aCBcIiR7aXNzdWUudmFsaWRhdGlvbi5lbmRzV2l0aH1cImA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdXRpbC5hc3NlcnROZXZlcihpc3N1ZS52YWxpZGF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc3N1ZS52YWxpZGF0aW9uICE9PSBcInJlZ2V4XCIpIHtcbiAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkICR7aXNzdWUudmFsaWRhdGlvbn1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9IFwiSW52YWxpZFwiO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUudG9vX3NtYWxsOlxuICAgICAgaWYgKGlzc3VlLnR5cGUgPT09IFwiYXJyYXlcIilcbiAgICAgICAgbWVzc2FnZSA9IGBBcnJheSBtdXN0IGNvbnRhaW4gJHtpc3N1ZS5leGFjdCA/IFwiZXhhY3RseVwiIDogaXNzdWUuaW5jbHVzaXZlID8gYGF0IGxlYXN0YCA6IGBtb3JlIHRoYW5gfSAke2lzc3VlLm1pbmltdW19IGVsZW1lbnQocylgO1xuICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgbWVzc2FnZSA9IGBTdHJpbmcgbXVzdCBjb250YWluICR7aXNzdWUuZXhhY3QgPyBcImV4YWN0bHlcIiA6IGlzc3VlLmluY2x1c2l2ZSA/IGBhdCBsZWFzdGAgOiBgb3ZlcmB9ICR7aXNzdWUubWluaW11bX0gY2hhcmFjdGVyKHMpYDtcbiAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwibnVtYmVyXCIpXG4gICAgICAgIG1lc3NhZ2UgPSBgTnVtYmVyIG11c3QgYmUgJHtpc3N1ZS5leGFjdCA/IGBleGFjdGx5IGVxdWFsIHRvIGAgOiBpc3N1ZS5pbmNsdXNpdmUgPyBgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGAgOiBgZ3JlYXRlciB0aGFuIGB9JHtpc3N1ZS5taW5pbXVtfWA7XG4gICAgICBlbHNlIGlmIChpc3N1ZS50eXBlID09PSBcImRhdGVcIilcbiAgICAgICAgbWVzc2FnZSA9IGBEYXRlIG11c3QgYmUgJHtpc3N1ZS5leGFjdCA/IGBleGFjdGx5IGVxdWFsIHRvIGAgOiBpc3N1ZS5pbmNsdXNpdmUgPyBgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGAgOiBgZ3JlYXRlciB0aGFuIGB9JHtuZXcgRGF0ZShOdW1iZXIoaXNzdWUubWluaW11bSkpfWA7XG4gICAgICBlbHNlXG4gICAgICAgIG1lc3NhZ2UgPSBcIkludmFsaWQgaW5wdXRcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgWm9kSXNzdWVDb2RlLnRvb19iaWc6XG4gICAgICBpZiAoaXNzdWUudHlwZSA9PT0gXCJhcnJheVwiKVxuICAgICAgICBtZXNzYWdlID0gYEFycmF5IG11c3QgY29udGFpbiAke2lzc3VlLmV4YWN0ID8gYGV4YWN0bHlgIDogaXNzdWUuaW5jbHVzaXZlID8gYGF0IG1vc3RgIDogYGxlc3MgdGhhbmB9ICR7aXNzdWUubWF4aW11bX0gZWxlbWVudChzKWA7XG4gICAgICBlbHNlIGlmIChpc3N1ZS50eXBlID09PSBcInN0cmluZ1wiKVxuICAgICAgICBtZXNzYWdlID0gYFN0cmluZyBtdXN0IGNvbnRhaW4gJHtpc3N1ZS5leGFjdCA/IGBleGFjdGx5YCA6IGlzc3VlLmluY2x1c2l2ZSA/IGBhdCBtb3N0YCA6IGB1bmRlcmB9ICR7aXNzdWUubWF4aW11bX0gY2hhcmFjdGVyKHMpYDtcbiAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwibnVtYmVyXCIpXG4gICAgICAgIG1lc3NhZ2UgPSBgTnVtYmVyIG11c3QgYmUgJHtpc3N1ZS5leGFjdCA/IGBleGFjdGx5YCA6IGlzc3VlLmluY2x1c2l2ZSA/IGBsZXNzIHRoYW4gb3IgZXF1YWwgdG9gIDogYGxlc3MgdGhhbmB9ICR7aXNzdWUubWF4aW11bX1gO1xuICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJiaWdpbnRcIilcbiAgICAgICAgbWVzc2FnZSA9IGBCaWdJbnQgbXVzdCBiZSAke2lzc3VlLmV4YWN0ID8gYGV4YWN0bHlgIDogaXNzdWUuaW5jbHVzaXZlID8gYGxlc3MgdGhhbiBvciBlcXVhbCB0b2AgOiBgbGVzcyB0aGFuYH0gJHtpc3N1ZS5tYXhpbXVtfWA7XG4gICAgICBlbHNlIGlmIChpc3N1ZS50eXBlID09PSBcImRhdGVcIilcbiAgICAgICAgbWVzc2FnZSA9IGBEYXRlIG11c3QgYmUgJHtpc3N1ZS5leGFjdCA/IGBleGFjdGx5YCA6IGlzc3VlLmluY2x1c2l2ZSA/IGBzbWFsbGVyIHRoYW4gb3IgZXF1YWwgdG9gIDogYHNtYWxsZXIgdGhhbmB9ICR7bmV3IERhdGUoTnVtYmVyKGlzc3VlLm1heGltdW0pKX1gO1xuICAgICAgZWxzZVxuICAgICAgICBtZXNzYWdlID0gXCJJbnZhbGlkIGlucHV0XCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFpvZElzc3VlQ29kZS5jdXN0b206XG4gICAgICBtZXNzYWdlID0gYEludmFsaWQgaW5wdXRgO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9pbnRlcnNlY3Rpb25fdHlwZXM6XG4gICAgICBtZXNzYWdlID0gYEludGVyc2VjdGlvbiByZXN1bHRzIGNvdWxkIG5vdCBiZSBtZXJnZWRgO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUubm90X211bHRpcGxlX29mOlxuICAgICAgbWVzc2FnZSA9IGBOdW1iZXIgbXVzdCBiZSBhIG11bHRpcGxlIG9mICR7aXNzdWUubXVsdGlwbGVPZn1gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUubm90X2Zpbml0ZTpcbiAgICAgIG1lc3NhZ2UgPSBcIk51bWJlciBtdXN0IGJlIGZpbml0ZVwiO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIG1lc3NhZ2UgPSBfY3R4LmRlZmF1bHRFcnJvcjtcbiAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoaXNzdWUpO1xuICB9XG4gIHJldHVybiB7IG1lc3NhZ2UgfTtcbn07XG52YXIgb3ZlcnJpZGVFcnJvck1hcCA9IGVycm9yTWFwO1xuZnVuY3Rpb24gc2V0RXJyb3JNYXAobWFwKSB7XG4gIG92ZXJyaWRlRXJyb3JNYXAgPSBtYXA7XG59XG5mdW5jdGlvbiBnZXRFcnJvck1hcCgpIHtcbiAgcmV0dXJuIG92ZXJyaWRlRXJyb3JNYXA7XG59XG52YXIgbWFrZUlzc3VlID0gKHBhcmFtcykgPT4ge1xuICBjb25zdCB7IGRhdGEsIHBhdGgsIGVycm9yTWFwcywgaXNzdWVEYXRhIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGZ1bGxQYXRoID0gWy4uLnBhdGgsIC4uLmlzc3VlRGF0YS5wYXRoIHx8IFtdXTtcbiAgY29uc3QgZnVsbElzc3VlID0ge1xuICAgIC4uLmlzc3VlRGF0YSxcbiAgICBwYXRoOiBmdWxsUGF0aFxuICB9O1xuICBpZiAoaXNzdWVEYXRhLm1lc3NhZ2UgIT09IHZvaWQgMCkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5pc3N1ZURhdGEsXG4gICAgICBwYXRoOiBmdWxsUGF0aCxcbiAgICAgIG1lc3NhZ2U6IGlzc3VlRGF0YS5tZXNzYWdlXG4gICAgfTtcbiAgfVxuICBsZXQgZXJyb3JNZXNzYWdlID0gXCJcIjtcbiAgY29uc3QgbWFwcyA9IGVycm9yTWFwcy5maWx0ZXIoKG0pID0+ICEhbSkuc2xpY2UoKS5yZXZlcnNlKCk7XG4gIGZvciAoY29uc3QgbWFwIG9mIG1hcHMpIHtcbiAgICBlcnJvck1lc3NhZ2UgPSBtYXAoZnVsbElzc3VlLCB7IGRhdGEsIGRlZmF1bHRFcnJvcjogZXJyb3JNZXNzYWdlIH0pLm1lc3NhZ2U7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5pc3N1ZURhdGEsXG4gICAgcGF0aDogZnVsbFBhdGgsXG4gICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlXG4gIH07XG59O1xudmFyIEVNUFRZX1BBVEggPSBbXTtcbmZ1bmN0aW9uIGFkZElzc3VlVG9Db250ZXh0KGN0eCwgaXNzdWVEYXRhKSB7XG4gIGNvbnN0IG92ZXJyaWRlTWFwID0gZ2V0RXJyb3JNYXAoKTtcbiAgY29uc3QgaXNzdWUgPSBtYWtlSXNzdWUoe1xuICAgIGlzc3VlRGF0YSxcbiAgICBkYXRhOiBjdHguZGF0YSxcbiAgICBwYXRoOiBjdHgucGF0aCxcbiAgICBlcnJvck1hcHM6IFtcbiAgICAgIGN0eC5jb21tb24uY29udGV4dHVhbEVycm9yTWFwLFxuICAgICAgLy8gY29udGV4dHVhbCBlcnJvciBtYXAgaXMgZmlyc3QgcHJpb3JpdHlcbiAgICAgIGN0eC5zY2hlbWFFcnJvck1hcCxcbiAgICAgIC8vIHRoZW4gc2NoZW1hLWJvdW5kIG1hcCBpZiBhdmFpbGFibGVcbiAgICAgIG92ZXJyaWRlTWFwLFxuICAgICAgLy8gdGhlbiBnbG9iYWwgb3ZlcnJpZGUgbWFwXG4gICAgICBvdmVycmlkZU1hcCA9PT0gZXJyb3JNYXAgPyB2b2lkIDAgOiBlcnJvck1hcFxuICAgICAgLy8gdGhlbiBnbG9iYWwgZGVmYXVsdCBtYXBcbiAgICBdLmZpbHRlcigoeCkgPT4gISF4KVxuICB9KTtcbiAgY3R4LmNvbW1vbi5pc3N1ZXMucHVzaChpc3N1ZSk7XG59XG52YXIgUGFyc2VTdGF0dXMgPSBjbGFzcyBfUGFyc2VTdGF0dXMge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnZhbHVlID0gXCJ2YWxpZFwiO1xuICB9XG4gIGRpcnR5KCkge1xuICAgIGlmICh0aGlzLnZhbHVlID09PSBcInZhbGlkXCIpXG4gICAgICB0aGlzLnZhbHVlID0gXCJkaXJ0eVwiO1xuICB9XG4gIGFib3J0KCkge1xuICAgIGlmICh0aGlzLnZhbHVlICE9PSBcImFib3J0ZWRcIilcbiAgICAgIHRoaXMudmFsdWUgPSBcImFib3J0ZWRcIjtcbiAgfVxuICBzdGF0aWMgbWVyZ2VBcnJheShzdGF0dXMsIHJlc3VsdHMpIHtcbiAgICBjb25zdCBhcnJheVZhbHVlID0gW107XG4gICAgZm9yIChjb25zdCBzIG9mIHJlc3VsdHMpIHtcbiAgICAgIGlmIChzLnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgaWYgKHMuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgYXJyYXlWYWx1ZS5wdXNoKHMudmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGFycmF5VmFsdWUgfTtcbiAgfVxuICBzdGF0aWMgYXN5bmMgbWVyZ2VPYmplY3RBc3luYyhzdGF0dXMsIHBhaXJzKSB7XG4gICAgY29uc3Qgc3luY1BhaXJzID0gW107XG4gICAgZm9yIChjb25zdCBwYWlyIG9mIHBhaXJzKSB7XG4gICAgICBjb25zdCBrZXkgPSBhd2FpdCBwYWlyLmtleTtcbiAgICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgcGFpci52YWx1ZTtcbiAgICAgIHN5bmNQYWlycy5wdXNoKHtcbiAgICAgICAga2V5LFxuICAgICAgICB2YWx1ZVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBfUGFyc2VTdGF0dXMubWVyZ2VPYmplY3RTeW5jKHN0YXR1cywgc3luY1BhaXJzKTtcbiAgfVxuICBzdGF0aWMgbWVyZ2VPYmplY3RTeW5jKHN0YXR1cywgcGFpcnMpIHtcbiAgICBjb25zdCBmaW5hbE9iamVjdCA9IHt9O1xuICAgIGZvciAoY29uc3QgcGFpciBvZiBwYWlycykge1xuICAgICAgY29uc3QgeyBrZXksIHZhbHVlIH0gPSBwYWlyO1xuICAgICAgaWYgKGtleS5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgIGlmICh2YWx1ZS5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgIGlmIChrZXkuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgaWYgKHZhbHVlLnN0YXR1cyA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgIGlmIChrZXkudmFsdWUgIT09IFwiX19wcm90b19fXCIgJiYgKHR5cGVvZiB2YWx1ZS52YWx1ZSAhPT0gXCJ1bmRlZmluZWRcIiB8fCBwYWlyLmFsd2F5c1NldCkpIHtcbiAgICAgICAgZmluYWxPYmplY3Rba2V5LnZhbHVlXSA9IHZhbHVlLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGZpbmFsT2JqZWN0IH07XG4gIH1cbn07XG52YXIgSU5WQUxJRCA9IE9iamVjdC5mcmVlemUoe1xuICBzdGF0dXM6IFwiYWJvcnRlZFwiXG59KTtcbnZhciBESVJUWSA9ICh2YWx1ZSkgPT4gKHsgc3RhdHVzOiBcImRpcnR5XCIsIHZhbHVlIH0pO1xudmFyIE9LID0gKHZhbHVlKSA9PiAoeyBzdGF0dXM6IFwidmFsaWRcIiwgdmFsdWUgfSk7XG52YXIgaXNBYm9ydGVkID0gKHgpID0+IHguc3RhdHVzID09PSBcImFib3J0ZWRcIjtcbnZhciBpc0RpcnR5ID0gKHgpID0+IHguc3RhdHVzID09PSBcImRpcnR5XCI7XG52YXIgaXNWYWxpZCA9ICh4KSA9PiB4LnN0YXR1cyA9PT0gXCJ2YWxpZFwiO1xudmFyIGlzQXN5bmMgPSAoeCkgPT4gdHlwZW9mIFByb21pc2UgIT09IFwidW5kZWZpbmVkXCIgJiYgeCBpbnN0YW5jZW9mIFByb21pc2U7XG5mdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xuICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXJcIik7XG4gIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xuICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xufVxuZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZFNldChyZWNlaXZlciwgc3RhdGUsIHZhbHVlLCBraW5kLCBmKSB7XG4gIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcbiAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgc2V0dGVyXCIpO1xuICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xuICByZXR1cm4ga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSwgdmFsdWU7XG59XG52YXIgZXJyb3JVdGlsO1xuKGZ1bmN0aW9uKGVycm9yVXRpbDIpIHtcbiAgZXJyb3JVdGlsMi5lcnJUb09iaiA9IChtZXNzYWdlKSA9PiB0eXBlb2YgbWVzc2FnZSA9PT0gXCJzdHJpbmdcIiA/IHsgbWVzc2FnZSB9IDogbWVzc2FnZSB8fCB7fTtcbiAgZXJyb3JVdGlsMi50b1N0cmluZyA9IChtZXNzYWdlKSA9PiB0eXBlb2YgbWVzc2FnZSA9PT0gXCJzdHJpbmdcIiA/IG1lc3NhZ2UgOiBtZXNzYWdlID09PSBudWxsIHx8IG1lc3NhZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1lc3NhZ2UubWVzc2FnZTtcbn0pKGVycm9yVXRpbCB8fCAoZXJyb3JVdGlsID0ge30pKTtcbnZhciBfWm9kRW51bV9jYWNoZTtcbnZhciBfWm9kTmF0aXZlRW51bV9jYWNoZTtcbnZhciBQYXJzZUlucHV0TGF6eVBhdGggPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHBhcmVudCwgdmFsdWUsIHBhdGgsIGtleSkge1xuICAgIHRoaXMuX2NhY2hlZFBhdGggPSBbXTtcbiAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcbiAgICB0aGlzLmRhdGEgPSB2YWx1ZTtcbiAgICB0aGlzLl9wYXRoID0gcGF0aDtcbiAgICB0aGlzLl9rZXkgPSBrZXk7XG4gIH1cbiAgZ2V0IHBhdGgoKSB7XG4gICAgaWYgKCF0aGlzLl9jYWNoZWRQYXRoLmxlbmd0aCkge1xuICAgICAgaWYgKHRoaXMuX2tleSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIHRoaXMuX2NhY2hlZFBhdGgucHVzaCguLi50aGlzLl9wYXRoLCAuLi50aGlzLl9rZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fY2FjaGVkUGF0aC5wdXNoKC4uLnRoaXMuX3BhdGgsIHRoaXMuX2tleSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jYWNoZWRQYXRoO1xuICB9XG59O1xudmFyIGhhbmRsZVJlc3VsdCA9IChjdHgsIHJlc3VsdCkgPT4ge1xuICBpZiAoaXNWYWxpZChyZXN1bHQpKSB7XG4gICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogcmVzdWx0LnZhbHVlIH07XG4gIH0gZWxzZSB7XG4gICAgaWYgKCFjdHguY29tbW9uLmlzc3Vlcy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlZhbGlkYXRpb24gZmFpbGVkIGJ1dCBubyBpc3N1ZXMgZGV0ZWN0ZWQuXCIpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICBnZXQgZXJyb3IoKSB7XG4gICAgICAgIGlmICh0aGlzLl9lcnJvcilcbiAgICAgICAgICByZXR1cm4gdGhpcy5fZXJyb3I7XG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFpvZEVycm9yKGN0eC5jb21tb24uaXNzdWVzKTtcbiAgICAgICAgdGhpcy5fZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9yO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn07XG5mdW5jdGlvbiBwcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcykge1xuICBpZiAoIXBhcmFtcylcbiAgICByZXR1cm4ge307XG4gIGNvbnN0IHsgZXJyb3JNYXA6IGVycm9yTWFwMiwgaW52YWxpZF90eXBlX2Vycm9yLCByZXF1aXJlZF9lcnJvciwgZGVzY3JpcHRpb24gfSA9IHBhcmFtcztcbiAgaWYgKGVycm9yTWFwMiAmJiAoaW52YWxpZF90eXBlX2Vycm9yIHx8IHJlcXVpcmVkX2Vycm9yKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ2FuJ3QgdXNlIFwiaW52YWxpZF90eXBlX2Vycm9yXCIgb3IgXCJyZXF1aXJlZF9lcnJvclwiIGluIGNvbmp1bmN0aW9uIHdpdGggY3VzdG9tIGVycm9yIG1hcC5gKTtcbiAgfVxuICBpZiAoZXJyb3JNYXAyKVxuICAgIHJldHVybiB7IGVycm9yTWFwOiBlcnJvck1hcDIsIGRlc2NyaXB0aW9uIH07XG4gIGNvbnN0IGN1c3RvbU1hcCA9IChpc3MsIGN0eCkgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgeyBtZXNzYWdlIH0gPSBwYXJhbXM7XG4gICAgaWYgKGlzcy5jb2RlID09PSBcImludmFsaWRfZW51bV92YWx1ZVwiKSB7XG4gICAgICByZXR1cm4geyBtZXNzYWdlOiBtZXNzYWdlICE9PSBudWxsICYmIG1lc3NhZ2UgIT09IHZvaWQgMCA/IG1lc3NhZ2UgOiBjdHguZGVmYXVsdEVycm9yIH07XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY3R4LmRhdGEgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHJldHVybiB7IG1lc3NhZ2U6IChfYSA9IG1lc3NhZ2UgIT09IG51bGwgJiYgbWVzc2FnZSAhPT0gdm9pZCAwID8gbWVzc2FnZSA6IHJlcXVpcmVkX2Vycm9yKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBjdHguZGVmYXVsdEVycm9yIH07XG4gICAgfVxuICAgIGlmIChpc3MuY29kZSAhPT0gXCJpbnZhbGlkX3R5cGVcIilcbiAgICAgIHJldHVybiB7IG1lc3NhZ2U6IGN0eC5kZWZhdWx0RXJyb3IgfTtcbiAgICByZXR1cm4geyBtZXNzYWdlOiAoX2IgPSBtZXNzYWdlICE9PSBudWxsICYmIG1lc3NhZ2UgIT09IHZvaWQgMCA/IG1lc3NhZ2UgOiBpbnZhbGlkX3R5cGVfZXJyb3IpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGN0eC5kZWZhdWx0RXJyb3IgfTtcbiAgfTtcbiAgcmV0dXJuIHsgZXJyb3JNYXA6IGN1c3RvbU1hcCwgZGVzY3JpcHRpb24gfTtcbn1cbnZhciBab2RUeXBlID0gY2xhc3Mge1xuICBnZXQgZGVzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5kZXNjcmlwdGlvbjtcbiAgfVxuICBfZ2V0VHlwZShpbnB1dCkge1xuICAgIHJldHVybiBnZXRQYXJzZWRUeXBlKGlucHV0LmRhdGEpO1xuICB9XG4gIF9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KSB7XG4gICAgcmV0dXJuIGN0eCB8fCB7XG4gICAgICBjb21tb246IGlucHV0LnBhcmVudC5jb21tb24sXG4gICAgICBkYXRhOiBpbnB1dC5kYXRhLFxuICAgICAgcGFyc2VkVHlwZTogZ2V0UGFyc2VkVHlwZShpbnB1dC5kYXRhKSxcbiAgICAgIHNjaGVtYUVycm9yTWFwOiB0aGlzLl9kZWYuZXJyb3JNYXAsXG4gICAgICBwYXRoOiBpbnB1dC5wYXRoLFxuICAgICAgcGFyZW50OiBpbnB1dC5wYXJlbnRcbiAgICB9O1xuICB9XG4gIF9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzOiBuZXcgUGFyc2VTdGF0dXMoKSxcbiAgICAgIGN0eDoge1xuICAgICAgICBjb21tb246IGlucHV0LnBhcmVudC5jb21tb24sXG4gICAgICAgIGRhdGE6IGlucHV0LmRhdGEsXG4gICAgICAgIHBhcnNlZFR5cGU6IGdldFBhcnNlZFR5cGUoaW5wdXQuZGF0YSksXG4gICAgICAgIHNjaGVtYUVycm9yTWFwOiB0aGlzLl9kZWYuZXJyb3JNYXAsXG4gICAgICAgIHBhdGg6IGlucHV0LnBhdGgsXG4gICAgICAgIHBhcmVudDogaW5wdXQucGFyZW50XG4gICAgICB9XG4gICAgfTtcbiAgfVxuICBfcGFyc2VTeW5jKGlucHV0KSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fcGFyc2UoaW5wdXQpO1xuICAgIGlmIChpc0FzeW5jKHJlc3VsdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlN5bmNocm9ub3VzIHBhcnNlIGVuY291bnRlcmVkIHByb21pc2UuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIF9wYXJzZUFzeW5jKGlucHV0KSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fcGFyc2UoaW5wdXQpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KTtcbiAgfVxuICBwYXJzZShkYXRhLCBwYXJhbXMpIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLnNhZmVQYXJzZShkYXRhLCBwYXJhbXMpO1xuICAgIGlmIChyZXN1bHQuc3VjY2VzcylcbiAgICAgIHJldHVybiByZXN1bHQuZGF0YTtcbiAgICB0aHJvdyByZXN1bHQuZXJyb3I7XG4gIH1cbiAgc2FmZVBhcnNlKGRhdGEsIHBhcmFtcykge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBjdHggPSB7XG4gICAgICBjb21tb246IHtcbiAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgYXN5bmM6IChfYSA9IHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5hc3luYykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmFsc2UsXG4gICAgICAgIGNvbnRleHR1YWxFcnJvck1hcDogcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmVycm9yTWFwXG4gICAgICB9LFxuICAgICAgcGF0aDogKHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5wYXRoKSB8fCBbXSxcbiAgICAgIHNjaGVtYUVycm9yTWFwOiB0aGlzLl9kZWYuZXJyb3JNYXAsXG4gICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICBkYXRhLFxuICAgICAgcGFyc2VkVHlwZTogZ2V0UGFyc2VkVHlwZShkYXRhKVxuICAgIH07XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fcGFyc2VTeW5jKHsgZGF0YSwgcGF0aDogY3R4LnBhdGgsIHBhcmVudDogY3R4IH0pO1xuICAgIHJldHVybiBoYW5kbGVSZXN1bHQoY3R4LCByZXN1bHQpO1xuICB9XG4gIFwifnZhbGlkYXRlXCIoZGF0YSkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgY3R4ID0ge1xuICAgICAgY29tbW9uOiB7XG4gICAgICAgIGlzc3VlczogW10sXG4gICAgICAgIGFzeW5jOiAhIXRoaXNbXCJ+c3RhbmRhcmRcIl0uYXN5bmNcbiAgICAgIH0sXG4gICAgICBwYXRoOiBbXSxcbiAgICAgIHNjaGVtYUVycm9yTWFwOiB0aGlzLl9kZWYuZXJyb3JNYXAsXG4gICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICBkYXRhLFxuICAgICAgcGFyc2VkVHlwZTogZ2V0UGFyc2VkVHlwZShkYXRhKVxuICAgIH07XG4gICAgaWYgKCF0aGlzW1wifnN0YW5kYXJkXCJdLmFzeW5jKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9wYXJzZVN5bmMoeyBkYXRhLCBwYXRoOiBbXSwgcGFyZW50OiBjdHggfSk7XG4gICAgICAgIHJldHVybiBpc1ZhbGlkKHJlc3VsdCkgPyB7XG4gICAgICAgICAgdmFsdWU6IHJlc3VsdC52YWx1ZVxuICAgICAgICB9IDoge1xuICAgICAgICAgIGlzc3VlczogY3R4LmNvbW1vbi5pc3N1ZXNcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycjIpIHtcbiAgICAgICAgaWYgKChfYiA9IChfYSA9IGVycjIgPT09IG51bGwgfHwgZXJyMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXJyMi5tZXNzYWdlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9Mb3dlckNhc2UoKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmluY2x1ZGVzKFwiZW5jb3VudGVyZWRcIikpIHtcbiAgICAgICAgICB0aGlzW1wifnN0YW5kYXJkXCJdLmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjdHguY29tbW9uID0ge1xuICAgICAgICAgIGlzc3VlczogW10sXG4gICAgICAgICAgYXN5bmM6IHRydWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlQXN5bmMoeyBkYXRhLCBwYXRoOiBbXSwgcGFyZW50OiBjdHggfSkudGhlbigocmVzdWx0KSA9PiBpc1ZhbGlkKHJlc3VsdCkgPyB7XG4gICAgICB2YWx1ZTogcmVzdWx0LnZhbHVlXG4gICAgfSA6IHtcbiAgICAgIGlzc3VlczogY3R4LmNvbW1vbi5pc3N1ZXNcbiAgICB9KTtcbiAgfVxuICBhc3luYyBwYXJzZUFzeW5jKGRhdGEsIHBhcmFtcykge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc2FmZVBhcnNlQXN5bmMoZGF0YSwgcGFyYW1zKTtcbiAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpXG4gICAgICByZXR1cm4gcmVzdWx0LmRhdGE7XG4gICAgdGhyb3cgcmVzdWx0LmVycm9yO1xuICB9XG4gIGFzeW5jIHNhZmVQYXJzZUFzeW5jKGRhdGEsIHBhcmFtcykge1xuICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgIGNvbW1vbjoge1xuICAgICAgICBpc3N1ZXM6IFtdLFxuICAgICAgICBjb250ZXh0dWFsRXJyb3JNYXA6IHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5lcnJvck1hcCxcbiAgICAgICAgYXN5bmM6IHRydWVcbiAgICAgIH0sXG4gICAgICBwYXRoOiAocGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLnBhdGgpIHx8IFtdLFxuICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgIGRhdGEsXG4gICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGRhdGEpXG4gICAgfTtcbiAgICBjb25zdCBtYXliZUFzeW5jUmVzdWx0ID0gdGhpcy5fcGFyc2UoeyBkYXRhLCBwYXRoOiBjdHgucGF0aCwgcGFyZW50OiBjdHggfSk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgKGlzQXN5bmMobWF5YmVBc3luY1Jlc3VsdCkgPyBtYXliZUFzeW5jUmVzdWx0IDogUHJvbWlzZS5yZXNvbHZlKG1heWJlQXN5bmNSZXN1bHQpKTtcbiAgICByZXR1cm4gaGFuZGxlUmVzdWx0KGN0eCwgcmVzdWx0KTtcbiAgfVxuICByZWZpbmUoY2hlY2ssIG1lc3NhZ2UpIHtcbiAgICBjb25zdCBnZXRJc3N1ZVByb3BlcnRpZXMgPSAodmFsKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIG1lc3NhZ2UgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgcmV0dXJuIHsgbWVzc2FnZSB9O1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBtZXNzYWdlKHZhbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiB0aGlzLl9yZWZpbmVtZW50KCh2YWwsIGN0eCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gY2hlY2sodmFsKTtcbiAgICAgIGNvbnN0IHNldEVycm9yID0gKCkgPT4gY3R4LmFkZElzc3VlKHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmN1c3RvbSxcbiAgICAgICAgLi4uZ2V0SXNzdWVQcm9wZXJ0aWVzKHZhbClcbiAgICAgIH0pO1xuICAgICAgaWYgKHR5cGVvZiBQcm9taXNlICE9PSBcInVuZGVmaW5lZFwiICYmIHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICBzZXRFcnJvcigpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgc2V0RXJyb3IoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmVmaW5lbWVudChjaGVjaywgcmVmaW5lbWVudERhdGEpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVmaW5lbWVudCgodmFsLCBjdHgpID0+IHtcbiAgICAgIGlmICghY2hlY2sodmFsKSkge1xuICAgICAgICBjdHguYWRkSXNzdWUodHlwZW9mIHJlZmluZW1lbnREYXRhID09PSBcImZ1bmN0aW9uXCIgPyByZWZpbmVtZW50RGF0YSh2YWwsIGN0eCkgOiByZWZpbmVtZW50RGF0YSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIF9yZWZpbmVtZW50KHJlZmluZW1lbnQpIHtcbiAgICByZXR1cm4gbmV3IFpvZEVmZmVjdHMoe1xuICAgICAgc2NoZW1hOiB0aGlzLFxuICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFZmZlY3RzLFxuICAgICAgZWZmZWN0OiB7IHR5cGU6IFwicmVmaW5lbWVudFwiLCByZWZpbmVtZW50IH1cbiAgICB9KTtcbiAgfVxuICBzdXBlclJlZmluZShyZWZpbmVtZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZmluZW1lbnQocmVmaW5lbWVudCk7XG4gIH1cbiAgY29uc3RydWN0b3IoZGVmKSB7XG4gICAgdGhpcy5zcGEgPSB0aGlzLnNhZmVQYXJzZUFzeW5jO1xuICAgIHRoaXMuX2RlZiA9IGRlZjtcbiAgICB0aGlzLnBhcnNlID0gdGhpcy5wYXJzZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc2FmZVBhcnNlID0gdGhpcy5zYWZlUGFyc2UuYmluZCh0aGlzKTtcbiAgICB0aGlzLnBhcnNlQXN5bmMgPSB0aGlzLnBhcnNlQXN5bmMuYmluZCh0aGlzKTtcbiAgICB0aGlzLnNhZmVQYXJzZUFzeW5jID0gdGhpcy5zYWZlUGFyc2VBc3luYy5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc3BhID0gdGhpcy5zcGEuYmluZCh0aGlzKTtcbiAgICB0aGlzLnJlZmluZSA9IHRoaXMucmVmaW5lLmJpbmQodGhpcyk7XG4gICAgdGhpcy5yZWZpbmVtZW50ID0gdGhpcy5yZWZpbmVtZW50LmJpbmQodGhpcyk7XG4gICAgdGhpcy5zdXBlclJlZmluZSA9IHRoaXMuc3VwZXJSZWZpbmUuYmluZCh0aGlzKTtcbiAgICB0aGlzLm9wdGlvbmFsID0gdGhpcy5vcHRpb25hbC5iaW5kKHRoaXMpO1xuICAgIHRoaXMubnVsbGFibGUgPSB0aGlzLm51bGxhYmxlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5udWxsaXNoID0gdGhpcy5udWxsaXNoLmJpbmQodGhpcyk7XG4gICAgdGhpcy5hcnJheSA9IHRoaXMuYXJyYXkuYmluZCh0aGlzKTtcbiAgICB0aGlzLnByb21pc2UgPSB0aGlzLnByb21pc2UuYmluZCh0aGlzKTtcbiAgICB0aGlzLm9yID0gdGhpcy5vci5iaW5kKHRoaXMpO1xuICAgIHRoaXMuYW5kID0gdGhpcy5hbmQuYmluZCh0aGlzKTtcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtLmJpbmQodGhpcyk7XG4gICAgdGhpcy5icmFuZCA9IHRoaXMuYnJhbmQuYmluZCh0aGlzKTtcbiAgICB0aGlzLmRlZmF1bHQgPSB0aGlzLmRlZmF1bHQuYmluZCh0aGlzKTtcbiAgICB0aGlzLmNhdGNoID0gdGhpcy5jYXRjaC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZGVzY3JpYmUgPSB0aGlzLmRlc2NyaWJlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5waXBlID0gdGhpcy5waXBlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5yZWFkb25seSA9IHRoaXMucmVhZG9ubHkuYmluZCh0aGlzKTtcbiAgICB0aGlzLmlzTnVsbGFibGUgPSB0aGlzLmlzTnVsbGFibGUuYmluZCh0aGlzKTtcbiAgICB0aGlzLmlzT3B0aW9uYWwgPSB0aGlzLmlzT3B0aW9uYWwuYmluZCh0aGlzKTtcbiAgICB0aGlzW1wifnN0YW5kYXJkXCJdID0ge1xuICAgICAgdmVyc2lvbjogMSxcbiAgICAgIHZlbmRvcjogXCJ6b2RcIixcbiAgICAgIHZhbGlkYXRlOiAoZGF0YSkgPT4gdGhpc1tcIn52YWxpZGF0ZVwiXShkYXRhKVxuICAgIH07XG4gIH1cbiAgb3B0aW9uYWwoKSB7XG4gICAgcmV0dXJuIFpvZE9wdGlvbmFsLmNyZWF0ZSh0aGlzLCB0aGlzLl9kZWYpO1xuICB9XG4gIG51bGxhYmxlKCkge1xuICAgIHJldHVybiBab2ROdWxsYWJsZS5jcmVhdGUodGhpcywgdGhpcy5fZGVmKTtcbiAgfVxuICBudWxsaXNoKCkge1xuICAgIHJldHVybiB0aGlzLm51bGxhYmxlKCkub3B0aW9uYWwoKTtcbiAgfVxuICBhcnJheSgpIHtcbiAgICByZXR1cm4gWm9kQXJyYXkuY3JlYXRlKHRoaXMpO1xuICB9XG4gIHByb21pc2UoKSB7XG4gICAgcmV0dXJuIFpvZFByb21pc2UuY3JlYXRlKHRoaXMsIHRoaXMuX2RlZik7XG4gIH1cbiAgb3Iob3B0aW9uKSB7XG4gICAgcmV0dXJuIFpvZFVuaW9uLmNyZWF0ZShbdGhpcywgb3B0aW9uXSwgdGhpcy5fZGVmKTtcbiAgfVxuICBhbmQoaW5jb21pbmcpIHtcbiAgICByZXR1cm4gWm9kSW50ZXJzZWN0aW9uLmNyZWF0ZSh0aGlzLCBpbmNvbWluZywgdGhpcy5fZGVmKTtcbiAgfVxuICB0cmFuc2Zvcm0odHJhbnNmb3JtKSB7XG4gICAgcmV0dXJuIG5ldyBab2RFZmZlY3RzKHtcbiAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXModGhpcy5fZGVmKSxcbiAgICAgIHNjaGVtYTogdGhpcyxcbiAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRWZmZWN0cyxcbiAgICAgIGVmZmVjdDogeyB0eXBlOiBcInRyYW5zZm9ybVwiLCB0cmFuc2Zvcm0gfVxuICAgIH0pO1xuICB9XG4gIGRlZmF1bHQoZGVmKSB7XG4gICAgY29uc3QgZGVmYXVsdFZhbHVlRnVuYyA9IHR5cGVvZiBkZWYgPT09IFwiZnVuY3Rpb25cIiA/IGRlZiA6ICgpID0+IGRlZjtcbiAgICByZXR1cm4gbmV3IFpvZERlZmF1bHQoe1xuICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyh0aGlzLl9kZWYpLFxuICAgICAgaW5uZXJUeXBlOiB0aGlzLFxuICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0VmFsdWVGdW5jLFxuICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2REZWZhdWx0XG4gICAgfSk7XG4gIH1cbiAgYnJhbmQoKSB7XG4gICAgcmV0dXJuIG5ldyBab2RCcmFuZGVkKHtcbiAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQnJhbmRlZCxcbiAgICAgIHR5cGU6IHRoaXMsXG4gICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHRoaXMuX2RlZilcbiAgICB9KTtcbiAgfVxuICBjYXRjaChkZWYpIHtcbiAgICBjb25zdCBjYXRjaFZhbHVlRnVuYyA9IHR5cGVvZiBkZWYgPT09IFwiZnVuY3Rpb25cIiA/IGRlZiA6ICgpID0+IGRlZjtcbiAgICByZXR1cm4gbmV3IFpvZENhdGNoKHtcbiAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXModGhpcy5fZGVmKSxcbiAgICAgIGlubmVyVHlwZTogdGhpcyxcbiAgICAgIGNhdGNoVmFsdWU6IGNhdGNoVmFsdWVGdW5jLFxuICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RDYXRjaFxuICAgIH0pO1xuICB9XG4gIGRlc2NyaWJlKGRlc2NyaXB0aW9uKSB7XG4gICAgY29uc3QgVGhpcyA9IHRoaXMuY29uc3RydWN0b3I7XG4gICAgcmV0dXJuIG5ldyBUaGlzKHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIGRlc2NyaXB0aW9uXG4gICAgfSk7XG4gIH1cbiAgcGlwZSh0YXJnZXQpIHtcbiAgICByZXR1cm4gWm9kUGlwZWxpbmUuY3JlYXRlKHRoaXMsIHRhcmdldCk7XG4gIH1cbiAgcmVhZG9ubHkoKSB7XG4gICAgcmV0dXJuIFpvZFJlYWRvbmx5LmNyZWF0ZSh0aGlzKTtcbiAgfVxuICBpc09wdGlvbmFsKCkge1xuICAgIHJldHVybiB0aGlzLnNhZmVQYXJzZSh2b2lkIDApLnN1Y2Nlc3M7XG4gIH1cbiAgaXNOdWxsYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zYWZlUGFyc2UobnVsbCkuc3VjY2VzcztcbiAgfVxufTtcbnZhciBjdWlkUmVnZXggPSAvXmNbXlxccy1dezgsfSQvaTtcbnZhciBjdWlkMlJlZ2V4ID0gL15bMC05YS16XSskLztcbnZhciB1bGlkUmVnZXggPSAvXlswLTlBLUhKS01OUC1UVi1aXXsyNn0kL2k7XG52YXIgdXVpZFJlZ2V4ID0gL15bMC05YS1mQS1GXXs4fVxcYi1bMC05YS1mQS1GXXs0fVxcYi1bMC05YS1mQS1GXXs0fVxcYi1bMC05YS1mQS1GXXs0fVxcYi1bMC05YS1mQS1GXXsxMn0kL2k7XG52YXIgbmFub2lkUmVnZXggPSAvXlthLXowLTlfLV17MjF9JC9pO1xudmFyIGp3dFJlZ2V4ID0gL15bQS1aYS16MC05LV9dK1xcLltBLVphLXowLTktX10rXFwuW0EtWmEtejAtOS1fXSokLztcbnZhciBkdXJhdGlvblJlZ2V4ID0gL15bLStdP1AoPyEkKSg/Oig/OlstK10/XFxkK1kpfCg/OlstK10/XFxkK1suLF1cXGQrWSQpKT8oPzooPzpbLStdP1xcZCtNKXwoPzpbLStdP1xcZCtbLixdXFxkK00kKSk/KD86KD86Wy0rXT9cXGQrVyl8KD86Wy0rXT9cXGQrWy4sXVxcZCtXJCkpPyg/Oig/OlstK10/XFxkK0QpfCg/OlstK10/XFxkK1suLF1cXGQrRCQpKT8oPzpUKD89W1xcZCstXSkoPzooPzpbLStdP1xcZCtIKXwoPzpbLStdP1xcZCtbLixdXFxkK0gkKSk/KD86KD86Wy0rXT9cXGQrTSl8KD86Wy0rXT9cXGQrWy4sXVxcZCtNJCkpPyg/OlstK10/XFxkKyg/OlsuLF1cXGQrKT9TKT8pPz8kLztcbnZhciBlbWFpbFJlZ2V4ID0gL14oPyFcXC4pKD8hLipcXC5cXC4pKFtBLVowLTlfJytcXC1cXC5dKilbQS1aMC05XystXUAoW0EtWjAtOV1bQS1aMC05XFwtXSpcXC4pK1tBLVpdezIsfSQvaTtcbnZhciBfZW1vamlSZWdleCA9IGBeKFxcXFxwe0V4dGVuZGVkX1BpY3RvZ3JhcGhpY318XFxcXHB7RW1vamlfQ29tcG9uZW50fSkrJGA7XG52YXIgZW1vamlSZWdleDtcbnZhciBpcHY0UmVnZXggPSAvXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKSQvO1xudmFyIGlwdjRDaWRyUmVnZXggPSAvXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVxcLygzWzAtMl18WzEyXT9bMC05XSkkLztcbnZhciBpcHY2UmVnZXggPSAvXigoWzAtOWEtZkEtRl17MSw0fTopezcsN31bMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw3fTp8KFswLTlhLWZBLUZdezEsNH06KXsxLDZ9OlswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDV9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDJ9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwzfXwoWzAtOWEtZkEtRl17MSw0fTopezEsM30oOlswLTlhLWZBLUZdezEsNH0pezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDJ9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDV9fFswLTlhLWZBLUZdezEsNH06KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw2fSl8OigoOlswLTlhLWZBLUZdezEsNH0pezEsN318Oil8ZmU4MDooOlswLTlhLWZBLUZdezAsNH0pezAsNH0lWzAtOWEtekEtWl17MSx9fDo6KGZmZmYoOjB7MSw0fSl7MCwxfTopezAsMX0oKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSl8KFswLTlhLWZBLUZdezEsNH06KXsxLDR9OigoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKSkkLztcbnZhciBpcHY2Q2lkclJlZ2V4ID0gL14oKFswLTlhLWZBLUZdezEsNH06KXs3LDd9WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsN306fChbMC05YS1mQS1GXXsxLDR9Oil7MSw2fTpbMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw1fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwyfXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH0oOlswLTlhLWZBLUZdezEsNH0pezEsM318KFswLTlhLWZBLUZdezEsNH06KXsxLDN9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwyfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw1fXxbMC05YS1mQS1GXXsxLDR9OigoOlswLTlhLWZBLUZdezEsNH0pezEsNn0pfDooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDd9fDopfGZlODA6KDpbMC05YS1mQS1GXXswLDR9KXswLDR9JVswLTlhLXpBLVpdezEsfXw6OihmZmZmKDowezEsNH0pezAsMX06KXswLDF9KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pfChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fTooKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSkpXFwvKDEyWzAtOF18MVswMV1bMC05XXxbMS05XT9bMC05XSkkLztcbnZhciBiYXNlNjRSZWdleCA9IC9eKFswLTlhLXpBLVorL117NH0pKigoWzAtOWEtekEtWisvXXsyfT09KXwoWzAtOWEtekEtWisvXXszfT0pKT8kLztcbnZhciBiYXNlNjR1cmxSZWdleCA9IC9eKFswLTlhLXpBLVotX117NH0pKigoWzAtOWEtekEtWi1fXXsyfSg9PSk/KXwoWzAtOWEtekEtWi1fXXszfSg9KT8pKT8kLztcbnZhciBkYXRlUmVnZXhTb3VyY2UgPSBgKChcXFxcZFxcXFxkWzI0NjhdWzA0OF18XFxcXGRcXFxcZFsxMzU3OV1bMjZdfFxcXFxkXFxcXGQwWzQ4XXxbMDI0NjhdWzA0OF0wMHxbMTM1NzldWzI2XTAwKS0wMi0yOXxcXFxcZHs0fS0oKDBbMTM1NzhdfDFbMDJdKS0oMFsxLTldfFsxMl1cXFxcZHwzWzAxXSl8KDBbNDY5XXwxMSktKDBbMS05XXxbMTJdXFxcXGR8MzApfCgwMiktKDBbMS05XXwxXFxcXGR8MlswLThdKSkpYDtcbnZhciBkYXRlUmVnZXggPSBuZXcgUmVnRXhwKGBeJHtkYXRlUmVnZXhTb3VyY2V9JGApO1xuZnVuY3Rpb24gdGltZVJlZ2V4U291cmNlKGFyZ3MpIHtcbiAgbGV0IHJlZ2V4ID0gYChbMDFdXFxcXGR8MlswLTNdKTpbMC01XVxcXFxkOlswLTVdXFxcXGRgO1xuICBpZiAoYXJncy5wcmVjaXNpb24pIHtcbiAgICByZWdleCA9IGAke3JlZ2V4fVxcXFwuXFxcXGR7JHthcmdzLnByZWNpc2lvbn19YDtcbiAgfSBlbHNlIGlmIChhcmdzLnByZWNpc2lvbiA9PSBudWxsKSB7XG4gICAgcmVnZXggPSBgJHtyZWdleH0oXFxcXC5cXFxcZCspP2A7XG4gIH1cbiAgcmV0dXJuIHJlZ2V4O1xufVxuZnVuY3Rpb24gdGltZVJlZ2V4KGFyZ3MpIHtcbiAgcmV0dXJuIG5ldyBSZWdFeHAoYF4ke3RpbWVSZWdleFNvdXJjZShhcmdzKX0kYCk7XG59XG5mdW5jdGlvbiBkYXRldGltZVJlZ2V4KGFyZ3MpIHtcbiAgbGV0IHJlZ2V4ID0gYCR7ZGF0ZVJlZ2V4U291cmNlfVQke3RpbWVSZWdleFNvdXJjZShhcmdzKX1gO1xuICBjb25zdCBvcHRzID0gW107XG4gIG9wdHMucHVzaChhcmdzLmxvY2FsID8gYFo/YCA6IGBaYCk7XG4gIGlmIChhcmdzLm9mZnNldClcbiAgICBvcHRzLnB1c2goYChbKy1dXFxcXGR7Mn06P1xcXFxkezJ9KWApO1xuICByZWdleCA9IGAke3JlZ2V4fSgke29wdHMuam9pbihcInxcIil9KWA7XG4gIHJldHVybiBuZXcgUmVnRXhwKGBeJHtyZWdleH0kYCk7XG59XG5mdW5jdGlvbiBpc1ZhbGlkSVAoaXAsIHZlcnNpb24pIHtcbiAgaWYgKCh2ZXJzaW9uID09PSBcInY0XCIgfHwgIXZlcnNpb24pICYmIGlwdjRSZWdleC50ZXN0KGlwKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmICgodmVyc2lvbiA9PT0gXCJ2NlwiIHx8ICF2ZXJzaW9uKSAmJiBpcHY2UmVnZXgudGVzdChpcCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc1ZhbGlkSldUKGp3dCwgYWxnKSB7XG4gIGlmICghand0UmVnZXgudGVzdChqd3QpKVxuICAgIHJldHVybiBmYWxzZTtcbiAgdHJ5IHtcbiAgICBjb25zdCBbaGVhZGVyXSA9IGp3dC5zcGxpdChcIi5cIik7XG4gICAgY29uc3QgYmFzZTY0ID0gaGVhZGVyLnJlcGxhY2UoLy0vZywgXCIrXCIpLnJlcGxhY2UoL18vZywgXCIvXCIpLnBhZEVuZChoZWFkZXIubGVuZ3RoICsgKDQgLSBoZWFkZXIubGVuZ3RoICUgNCkgJSA0LCBcIj1cIik7XG4gICAgY29uc3QgZGVjb2RlZCA9IEpTT04ucGFyc2UoYXRvYihiYXNlNjQpKTtcbiAgICBpZiAodHlwZW9mIGRlY29kZWQgIT09IFwib2JqZWN0XCIgfHwgZGVjb2RlZCA9PT0gbnVsbClcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICBpZiAoIWRlY29kZWQudHlwIHx8ICFkZWNvZGVkLmFsZylcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICBpZiAoYWxnICYmIGRlY29kZWQuYWxnICE9PSBhbGcpXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKF9hKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5mdW5jdGlvbiBpc1ZhbGlkQ2lkcihpcCwgdmVyc2lvbikge1xuICBpZiAoKHZlcnNpb24gPT09IFwidjRcIiB8fCAhdmVyc2lvbikgJiYgaXB2NENpZHJSZWdleC50ZXN0KGlwKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmICgodmVyc2lvbiA9PT0gXCJ2NlwiIHx8ICF2ZXJzaW9uKSAmJiBpcHY2Q2lkclJlZ2V4LnRlc3QoaXApKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxudmFyIFpvZFN0cmluZyA9IGNsYXNzIF9ab2RTdHJpbmcgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgaWYgKHRoaXMuX2RlZi5jb2VyY2UpIHtcbiAgICAgIGlucHV0LmRhdGEgPSBTdHJpbmcoaW5wdXQuZGF0YSk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5zdHJpbmcpIHtcbiAgICAgIGNvbnN0IGN0eDIgPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgyLCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLnN0cmluZyxcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eDIucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgY29uc3Qgc3RhdHVzID0gbmV3IFBhcnNlU3RhdHVzKCk7XG4gICAgbGV0IGN0eCA9IHZvaWQgMDtcbiAgICBmb3IgKGNvbnN0IGNoZWNrIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgIGlmIChjaGVjay5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgIGlmIChpbnB1dC5kYXRhLmxlbmd0aCA8IGNoZWNrLnZhbHVlKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgICAgbWluaW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgaWYgKGlucHV0LmRhdGEubGVuZ3RoID4gY2hlY2sudmFsdWUpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fYmlnLFxuICAgICAgICAgICAgbWF4aW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibGVuZ3RoXCIpIHtcbiAgICAgICAgY29uc3QgdG9vQmlnID0gaW5wdXQuZGF0YS5sZW5ndGggPiBjaGVjay52YWx1ZTtcbiAgICAgICAgY29uc3QgdG9vU21hbGwgPSBpbnB1dC5kYXRhLmxlbmd0aCA8IGNoZWNrLnZhbHVlO1xuICAgICAgICBpZiAodG9vQmlnIHx8IHRvb1NtYWxsKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgaWYgKHRvb0JpZykge1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fYmlnLFxuICAgICAgICAgICAgICBtYXhpbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICBleGFjdDogdHJ1ZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0b29TbWFsbCkge1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICAgIG1pbmltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgIGV4YWN0OiB0cnVlLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJlbWFpbFwiKSB7XG4gICAgICAgIGlmICghZW1haWxSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBcImVtYWlsXCIsXG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJlbW9qaVwiKSB7XG4gICAgICAgIGlmICghZW1vamlSZWdleCkge1xuICAgICAgICAgIGVtb2ppUmVnZXggPSBuZXcgUmVnRXhwKF9lbW9qaVJlZ2V4LCBcInVcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFlbW9qaVJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwiZW1vamlcIixcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInV1aWRcIikge1xuICAgICAgICBpZiAoIXV1aWRSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBcInV1aWRcIixcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm5hbm9pZFwiKSB7XG4gICAgICAgIGlmICghbmFub2lkUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJuYW5vaWRcIixcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImN1aWRcIikge1xuICAgICAgICBpZiAoIWN1aWRSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBcImN1aWRcIixcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImN1aWQyXCIpIHtcbiAgICAgICAgaWYgKCFjdWlkMlJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwiY3VpZDJcIixcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInVsaWRcIikge1xuICAgICAgICBpZiAoIXVsaWRSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBcInVsaWRcIixcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInVybFwiKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbmV3IFVSTChpbnB1dC5kYXRhKTtcbiAgICAgICAgfSBjYXRjaCAoX2EpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwidXJsXCIsXG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJyZWdleFwiKSB7XG4gICAgICAgIGNoZWNrLnJlZ2V4Lmxhc3RJbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IHRlc3RSZXN1bHQgPSBjaGVjay5yZWdleC50ZXN0KGlucHV0LmRhdGEpO1xuICAgICAgICBpZiAoIXRlc3RSZXN1bHQpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwicmVnZXhcIixcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInRyaW1cIikge1xuICAgICAgICBpbnB1dC5kYXRhID0gaW5wdXQuZGF0YS50cmltKCk7XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiaW5jbHVkZXNcIikge1xuICAgICAgICBpZiAoIWlucHV0LmRhdGEuaW5jbHVkZXMoY2hlY2sudmFsdWUsIGNoZWNrLnBvc2l0aW9uKSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgdmFsaWRhdGlvbjogeyBpbmNsdWRlczogY2hlY2sudmFsdWUsIHBvc2l0aW9uOiBjaGVjay5wb3NpdGlvbiB9LFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidG9Mb3dlckNhc2VcIikge1xuICAgICAgICBpbnB1dC5kYXRhID0gaW5wdXQuZGF0YS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInRvVXBwZXJDYXNlXCIpIHtcbiAgICAgICAgaW5wdXQuZGF0YSA9IGlucHV0LmRhdGEudG9VcHBlckNhc2UoKTtcbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJzdGFydHNXaXRoXCIpIHtcbiAgICAgICAgaWYgKCFpbnB1dC5kYXRhLnN0YXJ0c1dpdGgoY2hlY2sudmFsdWUpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiB7IHN0YXJ0c1dpdGg6IGNoZWNrLnZhbHVlIH0sXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJlbmRzV2l0aFwiKSB7XG4gICAgICAgIGlmICghaW5wdXQuZGF0YS5lbmRzV2l0aChjaGVjay52YWx1ZSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIHZhbGlkYXRpb246IHsgZW5kc1dpdGg6IGNoZWNrLnZhbHVlIH0sXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJkYXRldGltZVwiKSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gZGF0ZXRpbWVSZWdleChjaGVjayk7XG4gICAgICAgIGlmICghcmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJkYXRldGltZVwiLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiZGF0ZVwiKSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gZGF0ZVJlZ2V4O1xuICAgICAgICBpZiAoIXJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwiZGF0ZVwiLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidGltZVwiKSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gdGltZVJlZ2V4KGNoZWNrKTtcbiAgICAgICAgaWYgKCFyZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBcInRpbWVcIixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImR1cmF0aW9uXCIpIHtcbiAgICAgICAgaWYgKCFkdXJhdGlvblJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwiZHVyYXRpb25cIixcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImlwXCIpIHtcbiAgICAgICAgaWYgKCFpc1ZhbGlkSVAoaW5wdXQuZGF0YSwgY2hlY2sudmVyc2lvbikpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwiaXBcIixcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImp3dFwiKSB7XG4gICAgICAgIGlmICghaXNWYWxpZEpXVChpbnB1dC5kYXRhLCBjaGVjay5hbGcpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBcImp3dFwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiY2lkclwiKSB7XG4gICAgICAgIGlmICghaXNWYWxpZENpZHIoaW5wdXQuZGF0YSwgY2hlY2sudmVyc2lvbikpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwiY2lkclwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiYmFzZTY0XCIpIHtcbiAgICAgICAgaWYgKCFiYXNlNjRSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBcImJhc2U2NFwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiYmFzZTY0dXJsXCIpIHtcbiAgICAgICAgaWYgKCFiYXNlNjR1cmxSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBcImJhc2U2NHVybFwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1dGlsLmFzc2VydE5ldmVyKGNoZWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBpbnB1dC5kYXRhIH07XG4gIH1cbiAgX3JlZ2V4KHJlZ2V4LCB2YWxpZGF0aW9uLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmaW5lbWVudCgoZGF0YSkgPT4gcmVnZXgudGVzdChkYXRhKSwge1xuICAgICAgdmFsaWRhdGlvbixcbiAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIF9hZGRDaGVjayhjaGVjaykge1xuICAgIHJldHVybiBuZXcgX1pvZFN0cmluZyh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCBjaGVja11cbiAgICB9KTtcbiAgfVxuICBlbWFpbChtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJlbWFpbFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkgfSk7XG4gIH1cbiAgdXJsKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcInVybFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkgfSk7XG4gIH1cbiAgZW1vamkobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiZW1vamlcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICB9XG4gIHV1aWQobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwidXVpZFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkgfSk7XG4gIH1cbiAgbmFub2lkKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcIm5hbm9pZFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkgfSk7XG4gIH1cbiAgY3VpZChtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJjdWlkXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgfVxuICBjdWlkMihtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJjdWlkMlwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkgfSk7XG4gIH1cbiAgdWxpZChtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJ1bGlkXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgfVxuICBiYXNlNjQobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiYmFzZTY0XCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgfVxuICBiYXNlNjR1cmwobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcImJhc2U2NHVybFwiLFxuICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgand0KG9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImp3dFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucykgfSk7XG4gIH1cbiAgaXAob3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiaXBcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG9wdGlvbnMpIH0pO1xuICB9XG4gIGNpZHIob3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiY2lkclwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucykgfSk7XG4gIH1cbiAgZGF0ZXRpbWUob3B0aW9ucykge1xuICAgIHZhciBfYSwgX2I7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICBraW5kOiBcImRhdGV0aW1lXCIsXG4gICAgICAgIHByZWNpc2lvbjogbnVsbCxcbiAgICAgICAgb2Zmc2V0OiBmYWxzZSxcbiAgICAgICAgbG9jYWw6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiBvcHRpb25zXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwiZGF0ZXRpbWVcIixcbiAgICAgIHByZWNpc2lvbjogdHlwZW9mIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucHJlY2lzaW9uKSA9PT0gXCJ1bmRlZmluZWRcIiA/IG51bGwgOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucHJlY2lzaW9uLFxuICAgICAgb2Zmc2V0OiAoX2EgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMub2Zmc2V0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBmYWxzZSxcbiAgICAgIGxvY2FsOiAoX2IgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMubG9jYWwpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGZhbHNlLFxuICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5tZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIGRhdGUobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiZGF0ZVwiLCBtZXNzYWdlIH0pO1xuICB9XG4gIHRpbWUob3B0aW9ucykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAga2luZDogXCJ0aW1lXCIsXG4gICAgICAgIHByZWNpc2lvbjogbnVsbCxcbiAgICAgICAgbWVzc2FnZTogb3B0aW9uc1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcInRpbWVcIixcbiAgICAgIHByZWNpc2lvbjogdHlwZW9mIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucHJlY2lzaW9uKSA9PT0gXCJ1bmRlZmluZWRcIiA/IG51bGwgOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucHJlY2lzaW9uLFxuICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5tZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIGR1cmF0aW9uKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImR1cmF0aW9uXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgfVxuICByZWdleChyZWdleCwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcInJlZ2V4XCIsXG4gICAgICByZWdleCxcbiAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIGluY2x1ZGVzKHZhbHVlLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwiaW5jbHVkZXNcIixcbiAgICAgIHZhbHVlLFxuICAgICAgcG9zaXRpb246IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wb3NpdGlvbixcbiAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMubWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBzdGFydHNXaXRoKHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwic3RhcnRzV2l0aFwiLFxuICAgICAgdmFsdWUsXG4gICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBlbmRzV2l0aCh2YWx1ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcImVuZHNXaXRoXCIsXG4gICAgICB2YWx1ZSxcbiAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIG1pbihtaW5MZW5ndGgsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJtaW5cIixcbiAgICAgIHZhbHVlOiBtaW5MZW5ndGgsXG4gICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBtYXgobWF4TGVuZ3RoLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwibWF4XCIsXG4gICAgICB2YWx1ZTogbWF4TGVuZ3RoLFxuICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgbGVuZ3RoKGxlbiwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcImxlbmd0aFwiLFxuICAgICAgdmFsdWU6IGxlbixcbiAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBFcXVpdmFsZW50IHRvIGAubWluKDEpYFxuICAgKi9cbiAgbm9uZW1wdHkobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLm1pbigxLCBlcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkpO1xuICB9XG4gIHRyaW0oKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kU3RyaW5nKHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIGNoZWNrczogWy4uLnRoaXMuX2RlZi5jaGVja3MsIHsga2luZDogXCJ0cmltXCIgfV1cbiAgICB9KTtcbiAgfVxuICB0b0xvd2VyQ2FzZSgpIHtcbiAgICByZXR1cm4gbmV3IF9ab2RTdHJpbmcoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgY2hlY2tzOiBbLi4udGhpcy5fZGVmLmNoZWNrcywgeyBraW5kOiBcInRvTG93ZXJDYXNlXCIgfV1cbiAgICB9KTtcbiAgfVxuICB0b1VwcGVyQ2FzZSgpIHtcbiAgICByZXR1cm4gbmV3IF9ab2RTdHJpbmcoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgY2hlY2tzOiBbLi4udGhpcy5fZGVmLmNoZWNrcywgeyBraW5kOiBcInRvVXBwZXJDYXNlXCIgfV1cbiAgICB9KTtcbiAgfVxuICBnZXQgaXNEYXRldGltZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImRhdGV0aW1lXCIpO1xuICB9XG4gIGdldCBpc0RhdGUoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJkYXRlXCIpO1xuICB9XG4gIGdldCBpc1RpbWUoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJ0aW1lXCIpO1xuICB9XG4gIGdldCBpc0R1cmF0aW9uKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiZHVyYXRpb25cIik7XG4gIH1cbiAgZ2V0IGlzRW1haWwoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJlbWFpbFwiKTtcbiAgfVxuICBnZXQgaXNVUkwoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJ1cmxcIik7XG4gIH1cbiAgZ2V0IGlzRW1vamkoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJlbW9qaVwiKTtcbiAgfVxuICBnZXQgaXNVVUlEKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwidXVpZFwiKTtcbiAgfVxuICBnZXQgaXNOQU5PSUQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJuYW5vaWRcIik7XG4gIH1cbiAgZ2V0IGlzQ1VJRCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImN1aWRcIik7XG4gIH1cbiAgZ2V0IGlzQ1VJRDIoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJjdWlkMlwiKTtcbiAgfVxuICBnZXQgaXNVTElEKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwidWxpZFwiKTtcbiAgfVxuICBnZXQgaXNJUCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImlwXCIpO1xuICB9XG4gIGdldCBpc0NJRFIoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJjaWRyXCIpO1xuICB9XG4gIGdldCBpc0Jhc2U2NCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImJhc2U2NFwiKTtcbiAgfVxuICBnZXQgaXNCYXNlNjR1cmwoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJiYXNlNjR1cmxcIik7XG4gIH1cbiAgZ2V0IG1pbkxlbmd0aCgpIHtcbiAgICBsZXQgbWluID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgIGlmIChjaC5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgIGlmIChtaW4gPT09IG51bGwgfHwgY2gudmFsdWUgPiBtaW4pXG4gICAgICAgICAgbWluID0gY2gudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtaW47XG4gIH1cbiAgZ2V0IG1heExlbmd0aCgpIHtcbiAgICBsZXQgbWF4ID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgIGlmIChjaC5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgIGlmIChtYXggPT09IG51bGwgfHwgY2gudmFsdWUgPCBtYXgpXG4gICAgICAgICAgbWF4ID0gY2gudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtYXg7XG4gIH1cbn07XG5ab2RTdHJpbmcuY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICB2YXIgX2E7XG4gIHJldHVybiBuZXcgWm9kU3RyaW5nKHtcbiAgICBjaGVja3M6IFtdLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kU3RyaW5nLFxuICAgIGNvZXJjZTogKF9hID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmNvZXJjZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmFsc2UsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbmZ1bmN0aW9uIGZsb2F0U2FmZVJlbWFpbmRlcih2YWwsIHN0ZXApIHtcbiAgY29uc3QgdmFsRGVjQ291bnQgPSAodmFsLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzFdIHx8IFwiXCIpLmxlbmd0aDtcbiAgY29uc3Qgc3RlcERlY0NvdW50ID0gKHN0ZXAudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMV0gfHwgXCJcIikubGVuZ3RoO1xuICBjb25zdCBkZWNDb3VudCA9IHZhbERlY0NvdW50ID4gc3RlcERlY0NvdW50ID8gdmFsRGVjQ291bnQgOiBzdGVwRGVjQ291bnQ7XG4gIGNvbnN0IHZhbEludCA9IHBhcnNlSW50KHZhbC50b0ZpeGVkKGRlY0NvdW50KS5yZXBsYWNlKFwiLlwiLCBcIlwiKSk7XG4gIGNvbnN0IHN0ZXBJbnQgPSBwYXJzZUludChzdGVwLnRvRml4ZWQoZGVjQ291bnQpLnJlcGxhY2UoXCIuXCIsIFwiXCIpKTtcbiAgcmV0dXJuIHZhbEludCAlIHN0ZXBJbnQgLyBNYXRoLnBvdygxMCwgZGVjQ291bnQpO1xufVxudmFyIFpvZE51bWJlciA9IGNsYXNzIF9ab2ROdW1iZXIgZXh0ZW5kcyBab2RUeXBlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICB0aGlzLm1pbiA9IHRoaXMuZ3RlO1xuICAgIHRoaXMubWF4ID0gdGhpcy5sdGU7XG4gICAgdGhpcy5zdGVwID0gdGhpcy5tdWx0aXBsZU9mO1xuICB9XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGlmICh0aGlzLl9kZWYuY29lcmNlKSB7XG4gICAgICBpbnB1dC5kYXRhID0gTnVtYmVyKGlucHV0LmRhdGEpO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUubnVtYmVyKSB7XG4gICAgICBjb25zdCBjdHgyID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4Miwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5udW1iZXIsXG4gICAgICAgIHJlY2VpdmVkOiBjdHgyLnBhcnNlZFR5cGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGxldCBjdHggPSB2b2lkIDA7XG4gICAgY29uc3Qgc3RhdHVzID0gbmV3IFBhcnNlU3RhdHVzKCk7XG4gICAgZm9yIChjb25zdCBjaGVjayBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICBpZiAoY2hlY2sua2luZCA9PT0gXCJpbnRcIikge1xuICAgICAgICBpZiAoIXV0aWwuaXNJbnRlZ2VyKGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgZXhwZWN0ZWQ6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgcmVjZWl2ZWQ6IFwiZmxvYXRcIixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgIGNvbnN0IHRvb1NtYWxsID0gY2hlY2suaW5jbHVzaXZlID8gaW5wdXQuZGF0YSA8IGNoZWNrLnZhbHVlIDogaW5wdXQuZGF0YSA8PSBjaGVjay52YWx1ZTtcbiAgICAgICAgaWYgKHRvb1NtYWxsKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgICAgbWluaW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiBjaGVjay5pbmNsdXNpdmUsXG4gICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICBjb25zdCB0b29CaWcgPSBjaGVjay5pbmNsdXNpdmUgPyBpbnB1dC5kYXRhID4gY2hlY2sudmFsdWUgOiBpbnB1dC5kYXRhID49IGNoZWNrLnZhbHVlO1xuICAgICAgICBpZiAodG9vQmlnKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX2JpZyxcbiAgICAgICAgICAgIG1heGltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgICAgICAgIGluY2x1c2l2ZTogY2hlY2suaW5jbHVzaXZlLFxuICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibXVsdGlwbGVPZlwiKSB7XG4gICAgICAgIGlmIChmbG9hdFNhZmVSZW1haW5kZXIoaW5wdXQuZGF0YSwgY2hlY2sudmFsdWUpICE9PSAwKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUubm90X211bHRpcGxlX29mLFxuICAgICAgICAgICAgbXVsdGlwbGVPZjogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJmaW5pdGVcIikge1xuICAgICAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShpbnB1dC5kYXRhKSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLm5vdF9maW5pdGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoY2hlY2spO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGlucHV0LmRhdGEgfTtcbiAgfVxuICBndGUodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1pblwiLCB2YWx1ZSwgdHJ1ZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgfVxuICBndCh2YWx1ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWluXCIsIHZhbHVlLCBmYWxzZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgfVxuICBsdGUodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1heFwiLCB2YWx1ZSwgdHJ1ZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgfVxuICBsdCh2YWx1ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWF4XCIsIHZhbHVlLCBmYWxzZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgfVxuICBzZXRMaW1pdChraW5kLCB2YWx1ZSwgaW5jbHVzaXZlLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kTnVtYmVyKHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIGNoZWNrczogW1xuICAgICAgICAuLi50aGlzLl9kZWYuY2hlY2tzLFxuICAgICAgICB7XG4gICAgICAgICAga2luZCxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBpbmNsdXNpdmUsXG4gICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcbiAgfVxuICBfYWRkQ2hlY2soY2hlY2spIHtcbiAgICByZXR1cm4gbmV3IF9ab2ROdW1iZXIoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgY2hlY2tzOiBbLi4udGhpcy5fZGVmLmNoZWNrcywgY2hlY2tdXG4gICAgfSk7XG4gIH1cbiAgaW50KG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJpbnRcIixcbiAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIHBvc2l0aXZlKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJtaW5cIixcbiAgICAgIHZhbHVlOiAwLFxuICAgICAgaW5jbHVzaXZlOiBmYWxzZSxcbiAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIG5lZ2F0aXZlKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJtYXhcIixcbiAgICAgIHZhbHVlOiAwLFxuICAgICAgaW5jbHVzaXZlOiBmYWxzZSxcbiAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIG5vbnBvc2l0aXZlKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJtYXhcIixcbiAgICAgIHZhbHVlOiAwLFxuICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgbm9ubmVnYXRpdmUobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcIm1pblwiLFxuICAgICAgdmFsdWU6IDAsXG4gICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBtdWx0aXBsZU9mKHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwibXVsdGlwbGVPZlwiLFxuICAgICAgdmFsdWUsXG4gICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBmaW5pdGUobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcImZpbml0ZVwiLFxuICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgc2FmZShtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwibWluXCIsXG4gICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICB2YWx1ZTogTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIsXG4gICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSlcbiAgICB9KS5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJtYXhcIixcbiAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIGdldCBtaW5WYWx1ZSgpIHtcbiAgICBsZXQgbWluID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgIGlmIChjaC5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgIGlmIChtaW4gPT09IG51bGwgfHwgY2gudmFsdWUgPiBtaW4pXG4gICAgICAgICAgbWluID0gY2gudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtaW47XG4gIH1cbiAgZ2V0IG1heFZhbHVlKCkge1xuICAgIGxldCBtYXggPSBudWxsO1xuICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgaWYgKG1heCA9PT0gbnVsbCB8fCBjaC52YWx1ZSA8IG1heClcbiAgICAgICAgICBtYXggPSBjaC52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuICBnZXQgaXNJbnQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJpbnRcIiB8fCBjaC5raW5kID09PSBcIm11bHRpcGxlT2ZcIiAmJiB1dGlsLmlzSW50ZWdlcihjaC52YWx1ZSkpO1xuICB9XG4gIGdldCBpc0Zpbml0ZSgpIHtcbiAgICBsZXQgbWF4ID0gbnVsbCwgbWluID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgIGlmIChjaC5raW5kID09PSBcImZpbml0ZVwiIHx8IGNoLmtpbmQgPT09IFwiaW50XCIgfHwgY2gua2luZCA9PT0gXCJtdWx0aXBsZU9mXCIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGNoLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICBtaW4gPSBjaC52YWx1ZTtcbiAgICAgIH0gZWxzZSBpZiAoY2gua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICBpZiAobWF4ID09PSBudWxsIHx8IGNoLnZhbHVlIDwgbWF4KVxuICAgICAgICAgIG1heCA9IGNoLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG1pbikgJiYgTnVtYmVyLmlzRmluaXRlKG1heCk7XG4gIH1cbn07XG5ab2ROdW1iZXIuY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZE51bWJlcih7XG4gICAgY2hlY2tzOiBbXSxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE51bWJlcixcbiAgICBjb2VyY2U6IChwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuY29lcmNlKSB8fCBmYWxzZSxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZEJpZ0ludCA9IGNsYXNzIF9ab2RCaWdJbnQgZXh0ZW5kcyBab2RUeXBlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICB0aGlzLm1pbiA9IHRoaXMuZ3RlO1xuICAgIHRoaXMubWF4ID0gdGhpcy5sdGU7XG4gIH1cbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgaWYgKHRoaXMuX2RlZi5jb2VyY2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlucHV0LmRhdGEgPSBCaWdJbnQoaW5wdXQuZGF0YSk7XG4gICAgICB9IGNhdGNoIChfYSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0SW52YWxpZElucHV0KGlucHV0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmJpZ2ludCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2dldEludmFsaWRJbnB1dChpbnB1dCk7XG4gICAgfVxuICAgIGxldCBjdHggPSB2b2lkIDA7XG4gICAgY29uc3Qgc3RhdHVzID0gbmV3IFBhcnNlU3RhdHVzKCk7XG4gICAgZm9yIChjb25zdCBjaGVjayBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICBpZiAoY2hlY2sua2luZCA9PT0gXCJtaW5cIikge1xuICAgICAgICBjb25zdCB0b29TbWFsbCA9IGNoZWNrLmluY2x1c2l2ZSA/IGlucHV0LmRhdGEgPCBjaGVjay52YWx1ZSA6IGlucHV0LmRhdGEgPD0gY2hlY2sudmFsdWU7XG4gICAgICAgIGlmICh0b29TbWFsbCkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgICAgIHR5cGU6IFwiYmlnaW50XCIsXG4gICAgICAgICAgICBtaW5pbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgIGluY2x1c2l2ZTogY2hlY2suaW5jbHVzaXZlLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgY29uc3QgdG9vQmlnID0gY2hlY2suaW5jbHVzaXZlID8gaW5wdXQuZGF0YSA+IGNoZWNrLnZhbHVlIDogaW5wdXQuZGF0YSA+PSBjaGVjay52YWx1ZTtcbiAgICAgICAgaWYgKHRvb0JpZykge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICB0eXBlOiBcImJpZ2ludFwiLFxuICAgICAgICAgICAgbWF4aW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IGNoZWNrLmluY2x1c2l2ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm11bHRpcGxlT2ZcIikge1xuICAgICAgICBpZiAoaW5wdXQuZGF0YSAlIGNoZWNrLnZhbHVlICE9PSBCaWdJbnQoMCkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5ub3RfbXVsdGlwbGVfb2YsXG4gICAgICAgICAgICBtdWx0aXBsZU9mOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXRpbC5hc3NlcnROZXZlcihjaGVjayk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogaW5wdXQuZGF0YSB9O1xuICB9XG4gIF9nZXRJbnZhbGlkSW5wdXQoaW5wdXQpIHtcbiAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuYmlnaW50LFxuICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgfSk7XG4gICAgcmV0dXJuIElOVkFMSUQ7XG4gIH1cbiAgZ3RlKHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtaW5cIiwgdmFsdWUsIHRydWUsIGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSk7XG4gIH1cbiAgZ3QodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1pblwiLCB2YWx1ZSwgZmFsc2UsIGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSk7XG4gIH1cbiAgbHRlKHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtYXhcIiwgdmFsdWUsIHRydWUsIGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSk7XG4gIH1cbiAgbHQodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1heFwiLCB2YWx1ZSwgZmFsc2UsIGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSk7XG4gIH1cbiAgc2V0TGltaXQoa2luZCwgdmFsdWUsIGluY2x1c2l2ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiBuZXcgX1pvZEJpZ0ludCh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBjaGVja3M6IFtcbiAgICAgICAgLi4udGhpcy5fZGVmLmNoZWNrcyxcbiAgICAgICAge1xuICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgaW5jbHVzaXZlLFxuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG4gIH1cbiAgX2FkZENoZWNrKGNoZWNrKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kQmlnSW50KHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIGNoZWNrczogWy4uLnRoaXMuX2RlZi5jaGVja3MsIGNoZWNrXVxuICAgIH0pO1xuICB9XG4gIHBvc2l0aXZlKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJtaW5cIixcbiAgICAgIHZhbHVlOiBCaWdJbnQoMCksXG4gICAgICBpbmNsdXNpdmU6IGZhbHNlLFxuICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgbmVnYXRpdmUobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcIm1heFwiLFxuICAgICAgdmFsdWU6IEJpZ0ludCgwKSxcbiAgICAgIGluY2x1c2l2ZTogZmFsc2UsXG4gICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBub25wb3NpdGl2ZShtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwibWF4XCIsXG4gICAgICB2YWx1ZTogQmlnSW50KDApLFxuICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgbm9ubmVnYXRpdmUobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcIm1pblwiLFxuICAgICAgdmFsdWU6IEJpZ0ludCgwKSxcbiAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIG11bHRpcGxlT2YodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJtdWx0aXBsZU9mXCIsXG4gICAgICB2YWx1ZSxcbiAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIGdldCBtaW5WYWx1ZSgpIHtcbiAgICBsZXQgbWluID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgIGlmIChjaC5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgIGlmIChtaW4gPT09IG51bGwgfHwgY2gudmFsdWUgPiBtaW4pXG4gICAgICAgICAgbWluID0gY2gudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtaW47XG4gIH1cbiAgZ2V0IG1heFZhbHVlKCkge1xuICAgIGxldCBtYXggPSBudWxsO1xuICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgaWYgKG1heCA9PT0gbnVsbCB8fCBjaC52YWx1ZSA8IG1heClcbiAgICAgICAgICBtYXggPSBjaC52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1heDtcbiAgfVxufTtcblpvZEJpZ0ludC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gIHZhciBfYTtcbiAgcmV0dXJuIG5ldyBab2RCaWdJbnQoe1xuICAgIGNoZWNrczogW10sXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RCaWdJbnQsXG4gICAgY29lcmNlOiAoX2EgPSBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuY29lcmNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBmYWxzZSxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZEJvb2xlYW4gPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBpZiAodGhpcy5fZGVmLmNvZXJjZSkge1xuICAgICAgaW5wdXQuZGF0YSA9IEJvb2xlYW4oaW5wdXQuZGF0YSk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5ib29sZWFuKSB7XG4gICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuYm9vbGVhbixcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICByZXR1cm4gT0soaW5wdXQuZGF0YSk7XG4gIH1cbn07XG5ab2RCb29sZWFuLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RCb29sZWFuKHtcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJvb2xlYW4sXG4gICAgY29lcmNlOiAocGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmNvZXJjZSkgfHwgZmFsc2UsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2REYXRlID0gY2xhc3MgX1pvZERhdGUgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgaWYgKHRoaXMuX2RlZi5jb2VyY2UpIHtcbiAgICAgIGlucHV0LmRhdGEgPSBuZXcgRGF0ZShpbnB1dC5kYXRhKTtcbiAgICB9XG4gICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmRhdGUpIHtcbiAgICAgIGNvbnN0IGN0eDIgPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgyLCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLmRhdGUsXG4gICAgICAgIHJlY2VpdmVkOiBjdHgyLnBhcnNlZFR5cGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGlmIChpc05hTihpbnB1dC5kYXRhLmdldFRpbWUoKSkpIHtcbiAgICAgIGNvbnN0IGN0eDIgPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgyLCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX2RhdGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGNvbnN0IHN0YXR1cyA9IG5ldyBQYXJzZVN0YXR1cygpO1xuICAgIGxldCBjdHggPSB2b2lkIDA7XG4gICAgZm9yIChjb25zdCBjaGVjayBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICBpZiAoY2hlY2sua2luZCA9PT0gXCJtaW5cIikge1xuICAgICAgICBpZiAoaW5wdXQuZGF0YS5nZXRUaW1lKCkgPCBjaGVjay52YWx1ZSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICBtaW5pbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgIHR5cGU6IFwiZGF0ZVwiXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICBpZiAoaW5wdXQuZGF0YS5nZXRUaW1lKCkgPiBjaGVjay52YWx1ZSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgbWF4aW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICB0eXBlOiBcImRhdGVcIlxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1dGlsLmFzc2VydE5ldmVyKGNoZWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1czogc3RhdHVzLnZhbHVlLFxuICAgICAgdmFsdWU6IG5ldyBEYXRlKGlucHV0LmRhdGEuZ2V0VGltZSgpKVxuICAgIH07XG4gIH1cbiAgX2FkZENoZWNrKGNoZWNrKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kRGF0ZSh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCBjaGVja11cbiAgICB9KTtcbiAgfVxuICBtaW4obWluRGF0ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcIm1pblwiLFxuICAgICAgdmFsdWU6IG1pbkRhdGUuZ2V0VGltZSgpLFxuICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgbWF4KG1heERhdGUsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJtYXhcIixcbiAgICAgIHZhbHVlOiBtYXhEYXRlLmdldFRpbWUoKSxcbiAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIGdldCBtaW5EYXRlKCkge1xuICAgIGxldCBtaW4gPSBudWxsO1xuICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICBtaW4gPSBjaC52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1pbiAhPSBudWxsID8gbmV3IERhdGUobWluKSA6IG51bGw7XG4gIH1cbiAgZ2V0IG1heERhdGUoKSB7XG4gICAgbGV0IG1heCA9IG51bGw7XG4gICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICBpZiAoY2gua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICBpZiAobWF4ID09PSBudWxsIHx8IGNoLnZhbHVlIDwgbWF4KVxuICAgICAgICAgIG1heCA9IGNoLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWF4ICE9IG51bGwgPyBuZXcgRGF0ZShtYXgpIDogbnVsbDtcbiAgfVxufTtcblpvZERhdGUuY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZERhdGUoe1xuICAgIGNoZWNrczogW10sXG4gICAgY29lcmNlOiAocGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmNvZXJjZSkgfHwgZmFsc2UsXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2REYXRlLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kU3ltYm9sID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnN5bWJvbCkge1xuICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLnN5bWJvbCxcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICByZXR1cm4gT0soaW5wdXQuZGF0YSk7XG4gIH1cbn07XG5ab2RTeW1ib2wuY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZFN5bWJvbCh7XG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTeW1ib2wsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RVbmRlZmluZWQgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkLFxuICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgfVxufTtcblpvZFVuZGVmaW5lZC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kVW5kZWZpbmVkKHtcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFVuZGVmaW5lZCxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZE51bGwgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUubnVsbCkge1xuICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm51bGwsXG4gICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICB9XG59O1xuWm9kTnVsbC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kTnVsbCh7XG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROdWxsLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kQW55ID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICB0aGlzLl9hbnkgPSB0cnVlO1xuICB9XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgfVxufTtcblpvZEFueS5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kQW55KHtcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEFueSxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZFVua25vd24gPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgIHRoaXMuX3Vua25vd24gPSB0cnVlO1xuICB9XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgfVxufTtcblpvZFVua25vd24uY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZFVua25vd24oe1xuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kVW5rbm93bixcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZE5ldmVyID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm5ldmVyLFxuICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgfSk7XG4gICAgcmV0dXJuIElOVkFMSUQ7XG4gIH1cbn07XG5ab2ROZXZlci5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kTmV2ZXIoe1xuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTmV2ZXIsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RWb2lkID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLnZvaWQsXG4gICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICB9XG59O1xuWm9kVm9pZC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kVm9pZCh7XG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RWb2lkLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kQXJyYXkgPSBjbGFzcyBfWm9kQXJyYXkgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgeyBjdHgsIHN0YXR1cyB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICBjb25zdCBkZWYgPSB0aGlzLl9kZWY7XG4gICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmFycmF5KSB7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuYXJyYXksXG4gICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgaWYgKGRlZi5leGFjdExlbmd0aCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdG9vQmlnID0gY3R4LmRhdGEubGVuZ3RoID4gZGVmLmV4YWN0TGVuZ3RoLnZhbHVlO1xuICAgICAgY29uc3QgdG9vU21hbGwgPSBjdHguZGF0YS5sZW5ndGggPCBkZWYuZXhhY3RMZW5ndGgudmFsdWU7XG4gICAgICBpZiAodG9vQmlnIHx8IHRvb1NtYWxsKSB7XG4gICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgIGNvZGU6IHRvb0JpZyA/IFpvZElzc3VlQ29kZS50b29fYmlnIDogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgICBtaW5pbXVtOiB0b29TbWFsbCA/IGRlZi5leGFjdExlbmd0aC52YWx1ZSA6IHZvaWQgMCxcbiAgICAgICAgICBtYXhpbXVtOiB0b29CaWcgPyBkZWYuZXhhY3RMZW5ndGgudmFsdWUgOiB2b2lkIDAsXG4gICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICBleGFjdDogdHJ1ZSxcbiAgICAgICAgICBtZXNzYWdlOiBkZWYuZXhhY3RMZW5ndGgubWVzc2FnZVxuICAgICAgICB9KTtcbiAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkZWYubWluTGVuZ3RoICE9PSBudWxsKSB7XG4gICAgICBpZiAoY3R4LmRhdGEubGVuZ3RoIDwgZGVmLm1pbkxlbmd0aC52YWx1ZSkge1xuICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgIG1pbmltdW06IGRlZi5taW5MZW5ndGgudmFsdWUsXG4gICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgbWVzc2FnZTogZGVmLm1pbkxlbmd0aC5tZXNzYWdlXG4gICAgICAgIH0pO1xuICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRlZi5tYXhMZW5ndGggIT09IG51bGwpIHtcbiAgICAgIGlmIChjdHguZGF0YS5sZW5ndGggPiBkZWYubWF4TGVuZ3RoLnZhbHVlKSB7XG4gICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fYmlnLFxuICAgICAgICAgIG1heGltdW06IGRlZi5tYXhMZW5ndGgudmFsdWUsXG4gICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgbWVzc2FnZTogZGVmLm1heExlbmd0aC5tZXNzYWdlXG4gICAgICAgIH0pO1xuICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChbLi4uY3R4LmRhdGFdLm1hcCgoaXRlbSwgaSkgPT4ge1xuICAgICAgICByZXR1cm4gZGVmLnR5cGUuX3BhcnNlQXN5bmMobmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIGl0ZW0sIGN0eC5wYXRoLCBpKSk7XG4gICAgICB9KSkudGhlbigocmVzdWx0MikgPT4ge1xuICAgICAgICByZXR1cm4gUGFyc2VTdGF0dXMubWVyZ2VBcnJheShzdGF0dXMsIHJlc3VsdDIpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IFsuLi5jdHguZGF0YV0ubWFwKChpdGVtLCBpKSA9PiB7XG4gICAgICByZXR1cm4gZGVmLnR5cGUuX3BhcnNlU3luYyhuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgaXRlbSwgY3R4LnBhdGgsIGkpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gUGFyc2VTdGF0dXMubWVyZ2VBcnJheShzdGF0dXMsIHJlc3VsdCk7XG4gIH1cbiAgZ2V0IGVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi50eXBlO1xuICB9XG4gIG1pbihtaW5MZW5ndGgsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gbmV3IF9ab2RBcnJheSh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBtaW5MZW5ndGg6IHsgdmFsdWU6IG1pbkxlbmd0aCwgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpIH1cbiAgICB9KTtcbiAgfVxuICBtYXgobWF4TGVuZ3RoLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kQXJyYXkoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgbWF4TGVuZ3RoOiB7IHZhbHVlOiBtYXhMZW5ndGgsIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSB9XG4gICAgfSk7XG4gIH1cbiAgbGVuZ3RoKGxlbiwgbWVzc2FnZSkge1xuICAgIHJldHVybiBuZXcgX1pvZEFycmF5KHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIGV4YWN0TGVuZ3RoOiB7IHZhbHVlOiBsZW4sIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSB9XG4gICAgfSk7XG4gIH1cbiAgbm9uZW1wdHkobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLm1pbigxLCBtZXNzYWdlKTtcbiAgfVxufTtcblpvZEFycmF5LmNyZWF0ZSA9IChzY2hlbWEsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZEFycmF5KHtcbiAgICB0eXBlOiBzY2hlbWEsXG4gICAgbWluTGVuZ3RoOiBudWxsLFxuICAgIG1heExlbmd0aDogbnVsbCxcbiAgICBleGFjdExlbmd0aDogbnVsbCxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEFycmF5LFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG5mdW5jdGlvbiBkZWVwUGFydGlhbGlmeShzY2hlbWEpIHtcbiAgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIFpvZE9iamVjdCkge1xuICAgIGNvbnN0IG5ld1NoYXBlID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hLnNoYXBlKSB7XG4gICAgICBjb25zdCBmaWVsZFNjaGVtYSA9IHNjaGVtYS5zaGFwZVtrZXldO1xuICAgICAgbmV3U2hhcGVba2V5XSA9IFpvZE9wdGlvbmFsLmNyZWF0ZShkZWVwUGFydGlhbGlmeShmaWVsZFNjaGVtYSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAuLi5zY2hlbWEuX2RlZixcbiAgICAgIHNoYXBlOiAoKSA9PiBuZXdTaGFwZVxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIFpvZEFycmF5KSB7XG4gICAgcmV0dXJuIG5ldyBab2RBcnJheSh7XG4gICAgICAuLi5zY2hlbWEuX2RlZixcbiAgICAgIHR5cGU6IGRlZXBQYXJ0aWFsaWZ5KHNjaGVtYS5lbGVtZW50KVxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIFpvZE9wdGlvbmFsKSB7XG4gICAgcmV0dXJuIFpvZE9wdGlvbmFsLmNyZWF0ZShkZWVwUGFydGlhbGlmeShzY2hlbWEudW53cmFwKCkpKTtcbiAgfSBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBab2ROdWxsYWJsZSkge1xuICAgIHJldHVybiBab2ROdWxsYWJsZS5jcmVhdGUoZGVlcFBhcnRpYWxpZnkoc2NoZW1hLnVud3JhcCgpKSk7XG4gIH0gZWxzZSBpZiAoc2NoZW1hIGluc3RhbmNlb2YgWm9kVHVwbGUpIHtcbiAgICByZXR1cm4gWm9kVHVwbGUuY3JlYXRlKHNjaGVtYS5pdGVtcy5tYXAoKGl0ZW0pID0+IGRlZXBQYXJ0aWFsaWZ5KGl0ZW0pKSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHNjaGVtYTtcbiAgfVxufVxudmFyIFpvZE9iamVjdCA9IGNsYXNzIF9ab2RPYmplY3QgZXh0ZW5kcyBab2RUeXBlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICB0aGlzLl9jYWNoZWQgPSBudWxsO1xuICAgIHRoaXMubm9uc3RyaWN0ID0gdGhpcy5wYXNzdGhyb3VnaDtcbiAgICB0aGlzLmF1Z21lbnQgPSB0aGlzLmV4dGVuZDtcbiAgfVxuICBfZ2V0Q2FjaGVkKCkge1xuICAgIGlmICh0aGlzLl9jYWNoZWQgIT09IG51bGwpXG4gICAgICByZXR1cm4gdGhpcy5fY2FjaGVkO1xuICAgIGNvbnN0IHNoYXBlID0gdGhpcy5fZGVmLnNoYXBlKCk7XG4gICAgY29uc3Qga2V5cyA9IHV0aWwub2JqZWN0S2V5cyhzaGFwZSk7XG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlZCA9IHsgc2hhcGUsIGtleXMgfTtcbiAgfVxuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUub2JqZWN0KSB7XG4gICAgICBjb25zdCBjdHgyID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4Miwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5vYmplY3QsXG4gICAgICAgIHJlY2VpdmVkOiBjdHgyLnBhcnNlZFR5cGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgY29uc3QgeyBzaGFwZSwga2V5czogc2hhcGVLZXlzIH0gPSB0aGlzLl9nZXRDYWNoZWQoKTtcbiAgICBjb25zdCBleHRyYUtleXMgPSBbXTtcbiAgICBpZiAoISh0aGlzLl9kZWYuY2F0Y2hhbGwgaW5zdGFuY2VvZiBab2ROZXZlciAmJiB0aGlzLl9kZWYudW5rbm93bktleXMgPT09IFwic3RyaXBcIikpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGN0eC5kYXRhKSB7XG4gICAgICAgIGlmICghc2hhcGVLZXlzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICBleHRyYUtleXMucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHBhaXJzID0gW107XG4gICAgZm9yIChjb25zdCBrZXkgb2Ygc2hhcGVLZXlzKSB7XG4gICAgICBjb25zdCBrZXlWYWxpZGF0b3IgPSBzaGFwZVtrZXldO1xuICAgICAgY29uc3QgdmFsdWUgPSBjdHguZGF0YVtrZXldO1xuICAgICAgcGFpcnMucHVzaCh7XG4gICAgICAgIGtleTogeyBzdGF0dXM6IFwidmFsaWRcIiwgdmFsdWU6IGtleSB9LFxuICAgICAgICB2YWx1ZToga2V5VmFsaWRhdG9yLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgdmFsdWUsIGN0eC5wYXRoLCBrZXkpKSxcbiAgICAgICAgYWx3YXlzU2V0OiBrZXkgaW4gY3R4LmRhdGFcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZGVmLmNhdGNoYWxsIGluc3RhbmNlb2YgWm9kTmV2ZXIpIHtcbiAgICAgIGNvbnN0IHVua25vd25LZXlzID0gdGhpcy5fZGVmLnVua25vd25LZXlzO1xuICAgICAgaWYgKHVua25vd25LZXlzID09PSBcInBhc3N0aHJvdWdoXCIpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXh0cmFLZXlzKSB7XG4gICAgICAgICAgcGFpcnMucHVzaCh7XG4gICAgICAgICAgICBrZXk6IHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlOiBrZXkgfSxcbiAgICAgICAgICAgIHZhbHVlOiB7IHN0YXR1czogXCJ2YWxpZFwiLCB2YWx1ZTogY3R4LmRhdGFba2V5XSB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodW5rbm93bktleXMgPT09IFwic3RyaWN0XCIpIHtcbiAgICAgICAgaWYgKGV4dHJhS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudW5yZWNvZ25pemVkX2tleXMsXG4gICAgICAgICAgICBrZXlzOiBleHRyYUtleXNcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh1bmtub3duS2V5cyA9PT0gXCJzdHJpcFwiKSA7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnRlcm5hbCBab2RPYmplY3QgZXJyb3I6IGludmFsaWQgdW5rbm93bktleXMgdmFsdWUuYCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNhdGNoYWxsID0gdGhpcy5fZGVmLmNhdGNoYWxsO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXh0cmFLZXlzKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gY3R4LmRhdGFba2V5XTtcbiAgICAgICAgcGFpcnMucHVzaCh7XG4gICAgICAgICAga2V5OiB7IHN0YXR1czogXCJ2YWxpZFwiLCB2YWx1ZToga2V5IH0sXG4gICAgICAgICAgdmFsdWU6IGNhdGNoYWxsLl9wYXJzZShcbiAgICAgICAgICAgIG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCB2YWx1ZSwgY3R4LnBhdGgsIGtleSlcbiAgICAgICAgICAgIC8vLCBjdHguY2hpbGQoa2V5KSwgdmFsdWUsIGdldFBhcnNlZFR5cGUodmFsdWUpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBhbHdheXNTZXQ6IGtleSBpbiBjdHguZGF0YVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3Qgc3luY1BhaXJzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcGFpciBvZiBwYWlycykge1xuICAgICAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHBhaXIua2V5O1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgcGFpci52YWx1ZTtcbiAgICAgICAgICBzeW5jUGFpcnMucHVzaCh7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGFsd2F5c1NldDogcGFpci5hbHdheXNTZXRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3luY1BhaXJzO1xuICAgICAgfSkudGhlbigoc3luY1BhaXJzKSA9PiB7XG4gICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZU9iamVjdFN5bmMoc3RhdHVzLCBzeW5jUGFpcnMpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZU9iamVjdFN5bmMoc3RhdHVzLCBwYWlycyk7XG4gICAgfVxuICB9XG4gIGdldCBzaGFwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLnNoYXBlKCk7XG4gIH1cbiAgc3RyaWN0KG1lc3NhZ2UpIHtcbiAgICBlcnJvclV0aWwuZXJyVG9PYmo7XG4gICAgcmV0dXJuIG5ldyBfWm9kT2JqZWN0KHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIHVua25vd25LZXlzOiBcInN0cmljdFwiLFxuICAgICAgLi4ubWVzc2FnZSAhPT0gdm9pZCAwID8ge1xuICAgICAgICBlcnJvck1hcDogKGlzc3VlLCBjdHgpID0+IHtcbiAgICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgICAgY29uc3QgZGVmYXVsdEVycm9yID0gKF9jID0gKF9iID0gKF9hID0gdGhpcy5fZGVmKS5lcnJvck1hcCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIGlzc3VlLCBjdHgpLm1lc3NhZ2UpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IGN0eC5kZWZhdWx0RXJyb3I7XG4gICAgICAgICAgaWYgKGlzc3VlLmNvZGUgPT09IFwidW5yZWNvZ25pemVkX2tleXNcIilcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6IChfZCA9IGVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKS5tZXNzYWdlKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBkZWZhdWx0RXJyb3JcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGRlZmF1bHRFcnJvclxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0gOiB7fVxuICAgIH0pO1xuICB9XG4gIHN0cmlwKCkge1xuICAgIHJldHVybiBuZXcgX1pvZE9iamVjdCh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICB1bmtub3duS2V5czogXCJzdHJpcFwiXG4gICAgfSk7XG4gIH1cbiAgcGFzc3Rocm91Z2goKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kT2JqZWN0KHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIHVua25vd25LZXlzOiBcInBhc3N0aHJvdWdoXCJcbiAgICB9KTtcbiAgfVxuICAvLyBjb25zdCBBdWdtZW50RmFjdG9yeSA9XG4gIC8vICAgPERlZiBleHRlbmRzIFpvZE9iamVjdERlZj4oZGVmOiBEZWYpID0+XG4gIC8vICAgPEF1Z21lbnRhdGlvbiBleHRlbmRzIFpvZFJhd1NoYXBlPihcbiAgLy8gICAgIGF1Z21lbnRhdGlvbjogQXVnbWVudGF0aW9uXG4gIC8vICAgKTogWm9kT2JqZWN0PFxuICAvLyAgICAgZXh0ZW5kU2hhcGU8UmV0dXJuVHlwZTxEZWZbXCJzaGFwZVwiXT4sIEF1Z21lbnRhdGlvbj4sXG4gIC8vICAgICBEZWZbXCJ1bmtub3duS2V5c1wiXSxcbiAgLy8gICAgIERlZltcImNhdGNoYWxsXCJdXG4gIC8vICAgPiA9PiB7XG4gIC8vICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gIC8vICAgICAgIC4uLmRlZixcbiAgLy8gICAgICAgc2hhcGU6ICgpID0+ICh7XG4gIC8vICAgICAgICAgLi4uZGVmLnNoYXBlKCksXG4gIC8vICAgICAgICAgLi4uYXVnbWVudGF0aW9uLFxuICAvLyAgICAgICB9KSxcbiAgLy8gICAgIH0pIGFzIGFueTtcbiAgLy8gICB9O1xuICBleHRlbmQoYXVnbWVudGF0aW9uKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kT2JqZWN0KHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIHNoYXBlOiAoKSA9PiAoe1xuICAgICAgICAuLi50aGlzLl9kZWYuc2hhcGUoKSxcbiAgICAgICAgLi4uYXVnbWVudGF0aW9uXG4gICAgICB9KVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBQcmlvciB0byB6b2RAMS4wLjEyIHRoZXJlIHdhcyBhIGJ1ZyBpbiB0aGVcbiAgICogaW5mZXJyZWQgdHlwZSBvZiBtZXJnZWQgb2JqZWN0cy4gUGxlYXNlXG4gICAqIHVwZ3JhZGUgaWYgeW91IGFyZSBleHBlcmllbmNpbmcgaXNzdWVzLlxuICAgKi9cbiAgbWVyZ2UobWVyZ2luZykge1xuICAgIGNvbnN0IG1lcmdlZCA9IG5ldyBfWm9kT2JqZWN0KHtcbiAgICAgIHVua25vd25LZXlzOiBtZXJnaW5nLl9kZWYudW5rbm93bktleXMsXG4gICAgICBjYXRjaGFsbDogbWVyZ2luZy5fZGVmLmNhdGNoYWxsLFxuICAgICAgc2hhcGU6ICgpID0+ICh7XG4gICAgICAgIC4uLnRoaXMuX2RlZi5zaGFwZSgpLFxuICAgICAgICAuLi5tZXJnaW5nLl9kZWYuc2hhcGUoKVxuICAgICAgfSksXG4gICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdFxuICAgIH0pO1xuICAgIHJldHVybiBtZXJnZWQ7XG4gIH1cbiAgLy8gbWVyZ2U8XG4gIC8vICAgSW5jb21pbmcgZXh0ZW5kcyBBbnlab2RPYmplY3QsXG4gIC8vICAgQXVnbWVudGF0aW9uIGV4dGVuZHMgSW5jb21pbmdbXCJzaGFwZVwiXSxcbiAgLy8gICBOZXdPdXRwdXQgZXh0ZW5kcyB7XG4gIC8vICAgICBbayBpbiBrZXlvZiBBdWdtZW50YXRpb24gfCBrZXlvZiBPdXRwdXRdOiBrIGV4dGVuZHMga2V5b2YgQXVnbWVudGF0aW9uXG4gIC8vICAgICAgID8gQXVnbWVudGF0aW9uW2tdW1wiX291dHB1dFwiXVxuICAvLyAgICAgICA6IGsgZXh0ZW5kcyBrZXlvZiBPdXRwdXRcbiAgLy8gICAgICAgPyBPdXRwdXRba11cbiAgLy8gICAgICAgOiBuZXZlcjtcbiAgLy8gICB9LFxuICAvLyAgIE5ld0lucHV0IGV4dGVuZHMge1xuICAvLyAgICAgW2sgaW4ga2V5b2YgQXVnbWVudGF0aW9uIHwga2V5b2YgSW5wdXRdOiBrIGV4dGVuZHMga2V5b2YgQXVnbWVudGF0aW9uXG4gIC8vICAgICAgID8gQXVnbWVudGF0aW9uW2tdW1wiX2lucHV0XCJdXG4gIC8vICAgICAgIDogayBleHRlbmRzIGtleW9mIElucHV0XG4gIC8vICAgICAgID8gSW5wdXRba11cbiAgLy8gICAgICAgOiBuZXZlcjtcbiAgLy8gICB9XG4gIC8vID4oXG4gIC8vICAgbWVyZ2luZzogSW5jb21pbmdcbiAgLy8gKTogWm9kT2JqZWN0PFxuICAvLyAgIGV4dGVuZFNoYXBlPFQsIFJldHVyblR5cGU8SW5jb21pbmdbXCJfZGVmXCJdW1wic2hhcGVcIl0+PixcbiAgLy8gICBJbmNvbWluZ1tcIl9kZWZcIl1bXCJ1bmtub3duS2V5c1wiXSxcbiAgLy8gICBJbmNvbWluZ1tcIl9kZWZcIl1bXCJjYXRjaGFsbFwiXSxcbiAgLy8gICBOZXdPdXRwdXQsXG4gIC8vICAgTmV3SW5wdXRcbiAgLy8gPiB7XG4gIC8vICAgY29uc3QgbWVyZ2VkOiBhbnkgPSBuZXcgWm9kT2JqZWN0KHtcbiAgLy8gICAgIHVua25vd25LZXlzOiBtZXJnaW5nLl9kZWYudW5rbm93bktleXMsXG4gIC8vICAgICBjYXRjaGFsbDogbWVyZ2luZy5fZGVmLmNhdGNoYWxsLFxuICAvLyAgICAgc2hhcGU6ICgpID0+XG4gIC8vICAgICAgIG9iamVjdFV0aWwubWVyZ2VTaGFwZXModGhpcy5fZGVmLnNoYXBlKCksIG1lcmdpbmcuX2RlZi5zaGFwZSgpKSxcbiAgLy8gICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kT2JqZWN0LFxuICAvLyAgIH0pIGFzIGFueTtcbiAgLy8gICByZXR1cm4gbWVyZ2VkO1xuICAvLyB9XG4gIHNldEtleShrZXksIHNjaGVtYSkge1xuICAgIHJldHVybiB0aGlzLmF1Z21lbnQoeyBba2V5XTogc2NoZW1hIH0pO1xuICB9XG4gIC8vIG1lcmdlPEluY29taW5nIGV4dGVuZHMgQW55Wm9kT2JqZWN0PihcbiAgLy8gICBtZXJnaW5nOiBJbmNvbWluZ1xuICAvLyApOiAvL1pvZE9iamVjdDxUICYgSW5jb21pbmdbXCJfc2hhcGVcIl0sIFVua25vd25LZXlzLCBDYXRjaGFsbD4gPSAobWVyZ2luZykgPT4ge1xuICAvLyBab2RPYmplY3Q8XG4gIC8vICAgZXh0ZW5kU2hhcGU8VCwgUmV0dXJuVHlwZTxJbmNvbWluZ1tcIl9kZWZcIl1bXCJzaGFwZVwiXT4+LFxuICAvLyAgIEluY29taW5nW1wiX2RlZlwiXVtcInVua25vd25LZXlzXCJdLFxuICAvLyAgIEluY29taW5nW1wiX2RlZlwiXVtcImNhdGNoYWxsXCJdXG4gIC8vID4ge1xuICAvLyAgIC8vIGNvbnN0IG1lcmdlZFNoYXBlID0gb2JqZWN0VXRpbC5tZXJnZVNoYXBlcyhcbiAgLy8gICAvLyAgIHRoaXMuX2RlZi5zaGFwZSgpLFxuICAvLyAgIC8vICAgbWVyZ2luZy5fZGVmLnNoYXBlKClcbiAgLy8gICAvLyApO1xuICAvLyAgIGNvbnN0IG1lcmdlZDogYW55ID0gbmV3IFpvZE9iamVjdCh7XG4gIC8vICAgICB1bmtub3duS2V5czogbWVyZ2luZy5fZGVmLnVua25vd25LZXlzLFxuICAvLyAgICAgY2F0Y2hhbGw6IG1lcmdpbmcuX2RlZi5jYXRjaGFsbCxcbiAgLy8gICAgIHNoYXBlOiAoKSA9PlxuICAvLyAgICAgICBvYmplY3RVdGlsLm1lcmdlU2hhcGVzKHRoaXMuX2RlZi5zaGFwZSgpLCBtZXJnaW5nLl9kZWYuc2hhcGUoKSksXG4gIC8vICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdCxcbiAgLy8gICB9KSBhcyBhbnk7XG4gIC8vICAgcmV0dXJuIG1lcmdlZDtcbiAgLy8gfVxuICBjYXRjaGFsbChpbmRleCkge1xuICAgIHJldHVybiBuZXcgX1pvZE9iamVjdCh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBjYXRjaGFsbDogaW5kZXhcbiAgICB9KTtcbiAgfVxuICBwaWNrKG1hc2spIHtcbiAgICBjb25zdCBzaGFwZSA9IHt9O1xuICAgIHV0aWwub2JqZWN0S2V5cyhtYXNrKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmIChtYXNrW2tleV0gJiYgdGhpcy5zaGFwZVtrZXldKSB7XG4gICAgICAgIHNoYXBlW2tleV0gPSB0aGlzLnNoYXBlW2tleV07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBfWm9kT2JqZWN0KHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIHNoYXBlOiAoKSA9PiBzaGFwZVxuICAgIH0pO1xuICB9XG4gIG9taXQobWFzaykge1xuICAgIGNvbnN0IHNoYXBlID0ge307XG4gICAgdXRpbC5vYmplY3RLZXlzKHRoaXMuc2hhcGUpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFtYXNrW2tleV0pIHtcbiAgICAgICAgc2hhcGVba2V5XSA9IHRoaXMuc2hhcGVba2V5XTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IF9ab2RPYmplY3Qoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgc2hhcGU6ICgpID0+IHNoYXBlXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBkZWVwUGFydGlhbCgpIHtcbiAgICByZXR1cm4gZGVlcFBhcnRpYWxpZnkodGhpcyk7XG4gIH1cbiAgcGFydGlhbChtYXNrKSB7XG4gICAgY29uc3QgbmV3U2hhcGUgPSB7fTtcbiAgICB1dGlsLm9iamVjdEtleXModGhpcy5zaGFwZSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBmaWVsZFNjaGVtYSA9IHRoaXMuc2hhcGVba2V5XTtcbiAgICAgIGlmIChtYXNrICYmICFtYXNrW2tleV0pIHtcbiAgICAgICAgbmV3U2hhcGVba2V5XSA9IGZpZWxkU2NoZW1hO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2hhcGVba2V5XSA9IGZpZWxkU2NoZW1hLm9wdGlvbmFsKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBfWm9kT2JqZWN0KHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIHNoYXBlOiAoKSA9PiBuZXdTaGFwZVxuICAgIH0pO1xuICB9XG4gIHJlcXVpcmVkKG1hc2spIHtcbiAgICBjb25zdCBuZXdTaGFwZSA9IHt9O1xuICAgIHV0aWwub2JqZWN0S2V5cyh0aGlzLnNoYXBlKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmIChtYXNrICYmICFtYXNrW2tleV0pIHtcbiAgICAgICAgbmV3U2hhcGVba2V5XSA9IHRoaXMuc2hhcGVba2V5XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZpZWxkU2NoZW1hID0gdGhpcy5zaGFwZVtrZXldO1xuICAgICAgICBsZXQgbmV3RmllbGQgPSBmaWVsZFNjaGVtYTtcbiAgICAgICAgd2hpbGUgKG5ld0ZpZWxkIGluc3RhbmNlb2YgWm9kT3B0aW9uYWwpIHtcbiAgICAgICAgICBuZXdGaWVsZCA9IG5ld0ZpZWxkLl9kZWYuaW5uZXJUeXBlO1xuICAgICAgICB9XG4gICAgICAgIG5ld1NoYXBlW2tleV0gPSBuZXdGaWVsZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IF9ab2RPYmplY3Qoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgc2hhcGU6ICgpID0+IG5ld1NoYXBlXG4gICAgfSk7XG4gIH1cbiAga2V5b2YoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVpvZEVudW0odXRpbC5vYmplY3RLZXlzKHRoaXMuc2hhcGUpKTtcbiAgfVxufTtcblpvZE9iamVjdC5jcmVhdGUgPSAoc2hhcGUsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgc2hhcGU6ICgpID0+IHNoYXBlLFxuICAgIHVua25vd25LZXlzOiBcInN0cmlwXCIsXG4gICAgY2F0Y2hhbGw6IFpvZE5ldmVyLmNyZWF0ZSgpLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kT2JqZWN0LFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG5ab2RPYmplY3Quc3RyaWN0Q3JlYXRlID0gKHNoYXBlLCBwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgIHNoYXBlOiAoKSA9PiBzaGFwZSxcbiAgICB1bmtub3duS2V5czogXCJzdHJpY3RcIixcbiAgICBjYXRjaGFsbDogWm9kTmV2ZXIuY3JlYXRlKCksXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RPYmplY3QsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcblpvZE9iamVjdC5sYXp5Y3JlYXRlID0gKHNoYXBlLCBwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgIHNoYXBlLFxuICAgIHVua25vd25LZXlzOiBcInN0cmlwXCIsXG4gICAgY2F0Y2hhbGw6IFpvZE5ldmVyLmNyZWF0ZSgpLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kT2JqZWN0LFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kVW5pb24gPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fZGVmLm9wdGlvbnM7XG4gICAgZnVuY3Rpb24gaGFuZGxlUmVzdWx0cyhyZXN1bHRzKSB7XG4gICAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXN1bHRzKSB7XG4gICAgICAgIGlmIChyZXN1bHQucmVzdWx0LnN0YXR1cyA9PT0gXCJ2YWxpZFwiKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHJlc3VsdHMpIHtcbiAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHQuc3RhdHVzID09PSBcImRpcnR5XCIpIHtcbiAgICAgICAgICBjdHguY29tbW9uLmlzc3Vlcy5wdXNoKC4uLnJlc3VsdC5jdHguY29tbW9uLmlzc3Vlcyk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHVuaW9uRXJyb3JzID0gcmVzdWx0cy5tYXAoKHJlc3VsdCkgPT4gbmV3IFpvZEVycm9yKHJlc3VsdC5jdHguY29tbW9uLmlzc3VlcykpO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uLFxuICAgICAgICB1bmlvbkVycm9yc1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChvcHRpb25zLm1hcChhc3luYyAob3B0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoaWxkQ3R4ID0ge1xuICAgICAgICAgIC4uLmN0eCxcbiAgICAgICAgICBjb21tb246IHtcbiAgICAgICAgICAgIC4uLmN0eC5jb21tb24sXG4gICAgICAgICAgICBpc3N1ZXM6IFtdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYXJlbnQ6IG51bGxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXN1bHQ6IGF3YWl0IG9wdGlvbi5fcGFyc2VBc3luYyh7XG4gICAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgcGFyZW50OiBjaGlsZEN0eFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGN0eDogY2hpbGRDdHhcbiAgICAgICAgfTtcbiAgICAgIH0pKS50aGVuKGhhbmRsZVJlc3VsdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgZGlydHkgPSB2b2lkIDA7XG4gICAgICBjb25zdCBpc3N1ZXMgPSBbXTtcbiAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgY2hpbGRDdHggPSB7XG4gICAgICAgICAgLi4uY3R4LFxuICAgICAgICAgIGNvbW1vbjoge1xuICAgICAgICAgICAgLi4uY3R4LmNvbW1vbixcbiAgICAgICAgICAgIGlzc3VlczogW11cbiAgICAgICAgICB9LFxuICAgICAgICAgIHBhcmVudDogbnVsbFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXN1bHQgPSBvcHRpb24uX3BhcnNlU3luYyh7XG4gICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgcGFyZW50OiBjaGlsZEN0eFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IFwidmFsaWRcIikge1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJkaXJ0eVwiICYmICFkaXJ0eSkge1xuICAgICAgICAgIGRpcnR5ID0geyByZXN1bHQsIGN0eDogY2hpbGRDdHggfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hpbGRDdHguY29tbW9uLmlzc3Vlcy5sZW5ndGgpIHtcbiAgICAgICAgICBpc3N1ZXMucHVzaChjaGlsZEN0eC5jb21tb24uaXNzdWVzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGRpcnR5KSB7XG4gICAgICAgIGN0eC5jb21tb24uaXNzdWVzLnB1c2goLi4uZGlydHkuY3R4LmNvbW1vbi5pc3N1ZXMpO1xuICAgICAgICByZXR1cm4gZGlydHkucmVzdWx0O1xuICAgICAgfVxuICAgICAgY29uc3QgdW5pb25FcnJvcnMgPSBpc3N1ZXMubWFwKChpc3N1ZXMyKSA9PiBuZXcgWm9kRXJyb3IoaXNzdWVzMikpO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uLFxuICAgICAgICB1bmlvbkVycm9yc1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gIH1cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zO1xuICB9XG59O1xuWm9kVW5pb24uY3JlYXRlID0gKHR5cGVzLCBwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RVbmlvbih7XG4gICAgb3B0aW9uczogdHlwZXMsXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RVbmlvbixcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIGdldERpc2NyaW1pbmF0b3IgPSAodHlwZSkgPT4ge1xuICBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZExhenkpIHtcbiAgICByZXR1cm4gZ2V0RGlzY3JpbWluYXRvcih0eXBlLnNjaGVtYSk7XG4gIH0gZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZEVmZmVjdHMpIHtcbiAgICByZXR1cm4gZ2V0RGlzY3JpbWluYXRvcih0eXBlLmlubmVyVHlwZSgpKTtcbiAgfSBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kTGl0ZXJhbCkge1xuICAgIHJldHVybiBbdHlwZS52YWx1ZV07XG4gIH0gZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZEVudW0pIHtcbiAgICByZXR1cm4gdHlwZS5vcHRpb25zO1xuICB9IGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2ROYXRpdmVFbnVtKSB7XG4gICAgcmV0dXJuIHV0aWwub2JqZWN0VmFsdWVzKHR5cGUuZW51bSk7XG4gIH0gZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZERlZmF1bHQpIHtcbiAgICByZXR1cm4gZ2V0RGlzY3JpbWluYXRvcih0eXBlLl9kZWYuaW5uZXJUeXBlKTtcbiAgfSBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kVW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFt2b2lkIDBdO1xuICB9IGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2ROdWxsKSB7XG4gICAgcmV0dXJuIFtudWxsXTtcbiAgfSBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kT3B0aW9uYWwpIHtcbiAgICByZXR1cm4gW3ZvaWQgMCwgLi4uZ2V0RGlzY3JpbWluYXRvcih0eXBlLnVud3JhcCgpKV07XG4gIH0gZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZE51bGxhYmxlKSB7XG4gICAgcmV0dXJuIFtudWxsLCAuLi5nZXREaXNjcmltaW5hdG9yKHR5cGUudW53cmFwKCkpXTtcbiAgfSBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kQnJhbmRlZCkge1xuICAgIHJldHVybiBnZXREaXNjcmltaW5hdG9yKHR5cGUudW53cmFwKCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RSZWFkb25seSkge1xuICAgIHJldHVybiBnZXREaXNjcmltaW5hdG9yKHR5cGUudW53cmFwKCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RDYXRjaCkge1xuICAgIHJldHVybiBnZXREaXNjcmltaW5hdG9yKHR5cGUuX2RlZi5pbm5lclR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbXTtcbiAgfVxufTtcbnZhciBab2REaXNjcmltaW5hdGVkVW5pb24gPSBjbGFzcyBfWm9kRGlzY3JpbWluYXRlZFVuaW9uIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5vYmplY3QpIHtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5vYmplY3QsXG4gICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgY29uc3QgZGlzY3JpbWluYXRvciA9IHRoaXMuZGlzY3JpbWluYXRvcjtcbiAgICBjb25zdCBkaXNjcmltaW5hdG9yVmFsdWUgPSBjdHguZGF0YVtkaXNjcmltaW5hdG9yXTtcbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLm9wdGlvbnNNYXAuZ2V0KGRpc2NyaW1pbmF0b3JWYWx1ZSk7XG4gICAgaWYgKCFvcHRpb24pIHtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF91bmlvbl9kaXNjcmltaW5hdG9yLFxuICAgICAgICBvcHRpb25zOiBBcnJheS5mcm9tKHRoaXMub3B0aW9uc01hcC5rZXlzKCkpLFxuICAgICAgICBwYXRoOiBbZGlzY3JpbWluYXRvcl1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICByZXR1cm4gb3B0aW9uLl9wYXJzZUFzeW5jKHtcbiAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICBwYXJlbnQ6IGN0eFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb24uX3BhcnNlU3luYyh7XG4gICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgcGFyZW50OiBjdHhcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBnZXQgZGlzY3JpbWluYXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLmRpc2NyaW1pbmF0b3I7XG4gIH1cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zO1xuICB9XG4gIGdldCBvcHRpb25zTWFwKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYub3B0aW9uc01hcDtcbiAgfVxuICAvKipcbiAgICogVGhlIGNvbnN0cnVjdG9yIG9mIHRoZSBkaXNjcmltaW5hdGVkIHVuaW9uIHNjaGVtYS4gSXRzIGJlaGF2aW91ciBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhhdCBvZiB0aGUgbm9ybWFsIHoudW5pb24oKSBjb25zdHJ1Y3Rvci5cbiAgICogSG93ZXZlciwgaXQgb25seSBhbGxvd3MgYSB1bmlvbiBvZiBvYmplY3RzLCBhbGwgb2Ygd2hpY2ggbmVlZCB0byBzaGFyZSBhIGRpc2NyaW1pbmF0b3IgcHJvcGVydHkuIFRoaXMgcHJvcGVydHkgbXVzdFxuICAgKiBoYXZlIGEgZGlmZmVyZW50IHZhbHVlIGZvciBlYWNoIG9iamVjdCBpbiB0aGUgdW5pb24uXG4gICAqIEBwYXJhbSBkaXNjcmltaW5hdG9yIHRoZSBuYW1lIG9mIHRoZSBkaXNjcmltaW5hdG9yIHByb3BlcnR5XG4gICAqIEBwYXJhbSB0eXBlcyBhbiBhcnJheSBvZiBvYmplY3Qgc2NoZW1hc1xuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlKGRpc2NyaW1pbmF0b3IsIG9wdGlvbnMsIHBhcmFtcykge1xuICAgIGNvbnN0IG9wdGlvbnNNYXAgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIGZvciAoY29uc3QgdHlwZSBvZiBvcHRpb25zKSB7XG4gICAgICBjb25zdCBkaXNjcmltaW5hdG9yVmFsdWVzID0gZ2V0RGlzY3JpbWluYXRvcih0eXBlLnNoYXBlW2Rpc2NyaW1pbmF0b3JdKTtcbiAgICAgIGlmICghZGlzY3JpbWluYXRvclZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBIGRpc2NyaW1pbmF0b3IgdmFsdWUgZm9yIGtleSBcXGAke2Rpc2NyaW1pbmF0b3J9XFxgIGNvdWxkIG5vdCBiZSBleHRyYWN0ZWQgZnJvbSBhbGwgc2NoZW1hIG9wdGlvbnNgKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgZGlzY3JpbWluYXRvclZhbHVlcykge1xuICAgICAgICBpZiAob3B0aW9uc01hcC5oYXModmFsdWUpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEaXNjcmltaW5hdG9yIHByb3BlcnR5ICR7U3RyaW5nKGRpc2NyaW1pbmF0b3IpfSBoYXMgZHVwbGljYXRlIHZhbHVlICR7U3RyaW5nKHZhbHVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBvcHRpb25zTWFwLnNldCh2YWx1ZSwgdHlwZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgX1pvZERpc2NyaW1pbmF0ZWRVbmlvbih7XG4gICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZERpc2NyaW1pbmF0ZWRVbmlvbixcbiAgICAgIGRpc2NyaW1pbmF0b3IsXG4gICAgICBvcHRpb25zLFxuICAgICAgb3B0aW9uc01hcCxcbiAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICAgIH0pO1xuICB9XG59O1xuZnVuY3Rpb24gbWVyZ2VWYWx1ZXMoYSwgYikge1xuICBjb25zdCBhVHlwZSA9IGdldFBhcnNlZFR5cGUoYSk7XG4gIGNvbnN0IGJUeXBlID0gZ2V0UGFyc2VkVHlwZShiKTtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSwgZGF0YTogYSB9O1xuICB9IGVsc2UgaWYgKGFUeXBlID09PSBab2RQYXJzZWRUeXBlLm9iamVjdCAmJiBiVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5vYmplY3QpIHtcbiAgICBjb25zdCBiS2V5cyA9IHV0aWwub2JqZWN0S2V5cyhiKTtcbiAgICBjb25zdCBzaGFyZWRLZXlzID0gdXRpbC5vYmplY3RLZXlzKGEpLmZpbHRlcigoa2V5KSA9PiBiS2V5cy5pbmRleE9mKGtleSkgIT09IC0xKTtcbiAgICBjb25zdCBuZXdPYmogPSB7IC4uLmEsIC4uLmIgfTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBzaGFyZWRLZXlzKSB7XG4gICAgICBjb25zdCBzaGFyZWRWYWx1ZSA9IG1lcmdlVmFsdWVzKGFba2V5XSwgYltrZXldKTtcbiAgICAgIGlmICghc2hhcmVkVmFsdWUudmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlIH07XG4gICAgICB9XG4gICAgICBuZXdPYmpba2V5XSA9IHNoYXJlZFZhbHVlLmRhdGE7XG4gICAgfVxuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlLCBkYXRhOiBuZXdPYmogfTtcbiAgfSBlbHNlIGlmIChhVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5hcnJheSAmJiBiVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5hcnJheSkge1xuICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSB9O1xuICAgIH1cbiAgICBjb25zdCBuZXdBcnJheSA9IFtdO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBhLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgaXRlbUEgPSBhW2luZGV4XTtcbiAgICAgIGNvbnN0IGl0ZW1CID0gYltpbmRleF07XG4gICAgICBjb25zdCBzaGFyZWRWYWx1ZSA9IG1lcmdlVmFsdWVzKGl0ZW1BLCBpdGVtQik7XG4gICAgICBpZiAoIXNoYXJlZFZhbHVlLnZhbGlkKSB7XG4gICAgICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSB9O1xuICAgICAgfVxuICAgICAgbmV3QXJyYXkucHVzaChzaGFyZWRWYWx1ZS5kYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUsIGRhdGE6IG5ld0FycmF5IH07XG4gIH0gZWxzZSBpZiAoYVR5cGUgPT09IFpvZFBhcnNlZFR5cGUuZGF0ZSAmJiBiVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5kYXRlICYmICthID09PSArYikge1xuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlLCBkYXRhOiBhIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlIH07XG4gIH1cbn1cbnZhciBab2RJbnRlcnNlY3Rpb24gPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCB7IHN0YXR1cywgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgIGNvbnN0IGhhbmRsZVBhcnNlZCA9IChwYXJzZWRMZWZ0LCBwYXJzZWRSaWdodCkgPT4ge1xuICAgICAgaWYgKGlzQWJvcnRlZChwYXJzZWRMZWZ0KSB8fCBpc0Fib3J0ZWQocGFyc2VkUmlnaHQpKSB7XG4gICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgfVxuICAgICAgY29uc3QgbWVyZ2VkID0gbWVyZ2VWYWx1ZXMocGFyc2VkTGVmdC52YWx1ZSwgcGFyc2VkUmlnaHQudmFsdWUpO1xuICAgICAgaWYgKCFtZXJnZWQudmFsaWQpIHtcbiAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfaW50ZXJzZWN0aW9uX3R5cGVzXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgIH1cbiAgICAgIGlmIChpc0RpcnR5KHBhcnNlZExlZnQpIHx8IGlzRGlydHkocGFyc2VkUmlnaHQpKSB7XG4gICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBtZXJnZWQuZGF0YSB9O1xuICAgIH07XG4gICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChbXG4gICAgICAgIHRoaXMuX2RlZi5sZWZ0Ll9wYXJzZUFzeW5jKHtcbiAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICBwYXJlbnQ6IGN0eFxuICAgICAgICB9KSxcbiAgICAgICAgdGhpcy5fZGVmLnJpZ2h0Ll9wYXJzZUFzeW5jKHtcbiAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICBwYXJlbnQ6IGN0eFxuICAgICAgICB9KVxuICAgICAgXSkudGhlbigoW2xlZnQsIHJpZ2h0XSkgPT4gaGFuZGxlUGFyc2VkKGxlZnQsIHJpZ2h0KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBoYW5kbGVQYXJzZWQodGhpcy5fZGVmLmxlZnQuX3BhcnNlU3luYyh7XG4gICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgcGFyZW50OiBjdHhcbiAgICAgIH0pLCB0aGlzLl9kZWYucmlnaHQuX3BhcnNlU3luYyh7XG4gICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgcGFyZW50OiBjdHhcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cbn07XG5ab2RJbnRlcnNlY3Rpb24uY3JlYXRlID0gKGxlZnQsIHJpZ2h0LCBwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RJbnRlcnNlY3Rpb24oe1xuICAgIGxlZnQsXG4gICAgcmlnaHQsXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RJbnRlcnNlY3Rpb24sXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RUdXBsZSA9IGNsYXNzIF9ab2RUdXBsZSBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCB7IHN0YXR1cywgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5hcnJheSkge1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLmFycmF5LFxuICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGlmIChjdHguZGF0YS5sZW5ndGggPCB0aGlzLl9kZWYuaXRlbXMubGVuZ3RoKSB7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgbWluaW11bTogdGhpcy5fZGVmLml0ZW1zLmxlbmd0aCxcbiAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwiYXJyYXlcIlxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgY29uc3QgcmVzdCA9IHRoaXMuX2RlZi5yZXN0O1xuICAgIGlmICghcmVzdCAmJiBjdHguZGF0YS5sZW5ndGggPiB0aGlzLl9kZWYuaXRlbXMubGVuZ3RoKSB7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgIG1heGltdW06IHRoaXMuX2RlZi5pdGVtcy5sZW5ndGgsXG4gICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcImFycmF5XCJcbiAgICAgIH0pO1xuICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgfVxuICAgIGNvbnN0IGl0ZW1zID0gWy4uLmN0eC5kYXRhXS5tYXAoKGl0ZW0sIGl0ZW1JbmRleCkgPT4ge1xuICAgICAgY29uc3Qgc2NoZW1hID0gdGhpcy5fZGVmLml0ZW1zW2l0ZW1JbmRleF0gfHwgdGhpcy5fZGVmLnJlc3Q7XG4gICAgICBpZiAoIXNjaGVtYSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4gc2NoZW1hLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgaXRlbSwgY3R4LnBhdGgsIGl0ZW1JbmRleCkpO1xuICAgIH0pLmZpbHRlcigoeCkgPT4gISF4KTtcbiAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGl0ZW1zKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZUFycmF5KHN0YXR1cywgcmVzdWx0cyk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlQXJyYXkoc3RhdHVzLCBpdGVtcyk7XG4gICAgfVxuICB9XG4gIGdldCBpdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLml0ZW1zO1xuICB9XG4gIHJlc3QocmVzdCkge1xuICAgIHJldHVybiBuZXcgX1pvZFR1cGxlKHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIHJlc3RcbiAgICB9KTtcbiAgfVxufTtcblpvZFR1cGxlLmNyZWF0ZSA9IChzY2hlbWFzLCBwYXJhbXMpID0+IHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiWW91IG11c3QgcGFzcyBhbiBhcnJheSBvZiBzY2hlbWFzIHRvIHoudHVwbGUoWyAuLi4gXSlcIik7XG4gIH1cbiAgcmV0dXJuIG5ldyBab2RUdXBsZSh7XG4gICAgaXRlbXM6IHNjaGVtYXMsXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RUdXBsZSxcbiAgICByZXN0OiBudWxsLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kUmVjb3JkID0gY2xhc3MgX1pvZFJlY29yZCBleHRlbmRzIFpvZFR5cGUge1xuICBnZXQga2V5U2NoZW1hKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYua2V5VHlwZTtcbiAgfVxuICBnZXQgdmFsdWVTY2hlbWEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi52YWx1ZVR5cGU7XG4gIH1cbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgeyBzdGF0dXMsIGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICBpZiAoY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUub2JqZWN0KSB7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUub2JqZWN0LFxuICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGNvbnN0IHBhaXJzID0gW107XG4gICAgY29uc3Qga2V5VHlwZSA9IHRoaXMuX2RlZi5rZXlUeXBlO1xuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHRoaXMuX2RlZi52YWx1ZVR5cGU7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY3R4LmRhdGEpIHtcbiAgICAgIHBhaXJzLnB1c2goe1xuICAgICAgICBrZXk6IGtleVR5cGUuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBrZXksIGN0eC5wYXRoLCBrZXkpKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlVHlwZS5fcGFyc2UobmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIGN0eC5kYXRhW2tleV0sIGN0eC5wYXRoLCBrZXkpKSxcbiAgICAgICAgYWx3YXlzU2V0OiBrZXkgaW4gY3R4LmRhdGFcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0QXN5bmMoc3RhdHVzLCBwYWlycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZU9iamVjdFN5bmMoc3RhdHVzLCBwYWlycyk7XG4gICAgfVxuICB9XG4gIGdldCBlbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYudmFsdWVUeXBlO1xuICB9XG4gIHN0YXRpYyBjcmVhdGUoZmlyc3QsIHNlY29uZCwgdGhpcmQpIHtcbiAgICBpZiAoc2Vjb25kIGluc3RhbmNlb2YgWm9kVHlwZSkge1xuICAgICAgcmV0dXJuIG5ldyBfWm9kUmVjb3JkKHtcbiAgICAgICAga2V5VHlwZTogZmlyc3QsXG4gICAgICAgIHZhbHVlVHlwZTogc2Vjb25kLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFJlY29yZCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyh0aGlyZClcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IF9ab2RSZWNvcmQoe1xuICAgICAga2V5VHlwZTogWm9kU3RyaW5nLmNyZWF0ZSgpLFxuICAgICAgdmFsdWVUeXBlOiBmaXJzdCxcbiAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kUmVjb3JkLFxuICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhzZWNvbmQpXG4gICAgfSk7XG4gIH1cbn07XG52YXIgWm9kTWFwID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgZ2V0IGtleVNjaGVtYSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLmtleVR5cGU7XG4gIH1cbiAgZ2V0IHZhbHVlU2NoZW1hKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYudmFsdWVUeXBlO1xuICB9XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm1hcCkge1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm1hcCxcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICBjb25zdCBrZXlUeXBlID0gdGhpcy5fZGVmLmtleVR5cGU7XG4gICAgY29uc3QgdmFsdWVUeXBlID0gdGhpcy5fZGVmLnZhbHVlVHlwZTtcbiAgICBjb25zdCBwYWlycyA9IFsuLi5jdHguZGF0YS5lbnRyaWVzKCldLm1hcCgoW2tleSwgdmFsdWVdLCBpbmRleCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBrZXlUeXBlLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwga2V5LCBjdHgucGF0aCwgW2luZGV4LCBcImtleVwiXSkpLFxuICAgICAgICB2YWx1ZTogdmFsdWVUeXBlLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgdmFsdWUsIGN0eC5wYXRoLCBbaW5kZXgsIFwidmFsdWVcIl0pKVxuICAgICAgfTtcbiAgICB9KTtcbiAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgY29uc3QgZmluYWxNYXAgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IHBhaXIgb2YgcGFpcnMpIHtcbiAgICAgICAgICBjb25zdCBrZXkgPSBhd2FpdCBwYWlyLmtleTtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhaXIudmFsdWU7XG4gICAgICAgICAgaWYgKGtleS5zdGF0dXMgPT09IFwiYWJvcnRlZFwiIHx8IHZhbHVlLnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoa2V5LnN0YXR1cyA9PT0gXCJkaXJ0eVwiIHx8IHZhbHVlLnN0YXR1cyA9PT0gXCJkaXJ0eVwiKSB7XG4gICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZmluYWxNYXAuc2V0KGtleS52YWx1ZSwgdmFsdWUudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogZmluYWxNYXAgfTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmaW5hbE1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICBmb3IgKGNvbnN0IHBhaXIgb2YgcGFpcnMpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gcGFpci5rZXk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcGFpci52YWx1ZTtcbiAgICAgICAgaWYgKGtleS5zdGF0dXMgPT09IFwiYWJvcnRlZFwiIHx8IHZhbHVlLnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpIHtcbiAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5LnN0YXR1cyA9PT0gXCJkaXJ0eVwiIHx8IHZhbHVlLnN0YXR1cyA9PT0gXCJkaXJ0eVwiKSB7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxNYXAuc2V0KGtleS52YWx1ZSwgdmFsdWUudmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBmaW5hbE1hcCB9O1xuICAgIH1cbiAgfVxufTtcblpvZE1hcC5jcmVhdGUgPSAoa2V5VHlwZSwgdmFsdWVUeXBlLCBwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RNYXAoe1xuICAgIHZhbHVlVHlwZSxcbiAgICBrZXlUeXBlLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTWFwLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kU2V0ID0gY2xhc3MgX1pvZFNldCBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCB7IHN0YXR1cywgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5zZXQpIHtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5zZXQsXG4gICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgY29uc3QgZGVmID0gdGhpcy5fZGVmO1xuICAgIGlmIChkZWYubWluU2l6ZSAhPT0gbnVsbCkge1xuICAgICAgaWYgKGN0eC5kYXRhLnNpemUgPCBkZWYubWluU2l6ZS52YWx1ZSkge1xuICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgIG1pbmltdW06IGRlZi5taW5TaXplLnZhbHVlLFxuICAgICAgICAgIHR5cGU6IFwic2V0XCIsXG4gICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICBtZXNzYWdlOiBkZWYubWluU2l6ZS5tZXNzYWdlXG4gICAgICAgIH0pO1xuICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRlZi5tYXhTaXplICE9PSBudWxsKSB7XG4gICAgICBpZiAoY3R4LmRhdGEuc2l6ZSA+IGRlZi5tYXhTaXplLnZhbHVlKSB7XG4gICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fYmlnLFxuICAgICAgICAgIG1heGltdW06IGRlZi5tYXhTaXplLnZhbHVlLFxuICAgICAgICAgIHR5cGU6IFwic2V0XCIsXG4gICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICBtZXNzYWdlOiBkZWYubWF4U2l6ZS5tZXNzYWdlXG4gICAgICAgIH0pO1xuICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgdmFsdWVUeXBlID0gdGhpcy5fZGVmLnZhbHVlVHlwZTtcbiAgICBmdW5jdGlvbiBmaW5hbGl6ZVNldChlbGVtZW50czIpIHtcbiAgICAgIGNvbnN0IHBhcnNlZFNldCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7XG4gICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZWxlbWVudHMyKSB7XG4gICAgICAgIGlmIChlbGVtZW50LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIGlmIChlbGVtZW50LnN0YXR1cyA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICBwYXJzZWRTZXQuYWRkKGVsZW1lbnQudmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBwYXJzZWRTZXQgfTtcbiAgICB9XG4gICAgY29uc3QgZWxlbWVudHMgPSBbLi4uY3R4LmRhdGEudmFsdWVzKCldLm1hcCgoaXRlbSwgaSkgPT4gdmFsdWVUeXBlLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgaXRlbSwgY3R4LnBhdGgsIGkpKSk7XG4gICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChlbGVtZW50cykudGhlbigoZWxlbWVudHMyKSA9PiBmaW5hbGl6ZVNldChlbGVtZW50czIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZpbmFsaXplU2V0KGVsZW1lbnRzKTtcbiAgICB9XG4gIH1cbiAgbWluKG1pblNpemUsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gbmV3IF9ab2RTZXQoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgbWluU2l6ZTogeyB2YWx1ZTogbWluU2l6ZSwgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpIH1cbiAgICB9KTtcbiAgfVxuICBtYXgobWF4U2l6ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiBuZXcgX1pvZFNldCh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBtYXhTaXplOiB7IHZhbHVlOiBtYXhTaXplLCBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkgfVxuICAgIH0pO1xuICB9XG4gIHNpemUoc2l6ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLm1pbihzaXplLCBtZXNzYWdlKS5tYXgoc2l6ZSwgbWVzc2FnZSk7XG4gIH1cbiAgbm9uZW1wdHkobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLm1pbigxLCBtZXNzYWdlKTtcbiAgfVxufTtcblpvZFNldC5jcmVhdGUgPSAodmFsdWVUeXBlLCBwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RTZXQoe1xuICAgIHZhbHVlVHlwZSxcbiAgICBtaW5TaXplOiBudWxsLFxuICAgIG1heFNpemU6IG51bGwsXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTZXQsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RGdW5jdGlvbiA9IGNsYXNzIF9ab2RGdW5jdGlvbiBleHRlbmRzIFpvZFR5cGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgIHRoaXMudmFsaWRhdGUgPSB0aGlzLmltcGxlbWVudDtcbiAgfVxuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICBpZiAoY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuZnVuY3Rpb24pIHtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5mdW5jdGlvbixcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQXJnc0lzc3VlKGFyZ3MsIGVycm9yKSB7XG4gICAgICByZXR1cm4gbWFrZUlzc3VlKHtcbiAgICAgICAgZGF0YTogYXJncyxcbiAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgIGVycm9yTWFwczogW1xuICAgICAgICAgIGN0eC5jb21tb24uY29udGV4dHVhbEVycm9yTWFwLFxuICAgICAgICAgIGN0eC5zY2hlbWFFcnJvck1hcCxcbiAgICAgICAgICBnZXRFcnJvck1hcCgpLFxuICAgICAgICAgIGVycm9yTWFwXG4gICAgICAgIF0uZmlsdGVyKCh4KSA9PiAhIXgpLFxuICAgICAgICBpc3N1ZURhdGE6IHtcbiAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9hcmd1bWVudHMsXG4gICAgICAgICAgYXJndW1lbnRzRXJyb3I6IGVycm9yXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlUmV0dXJuc0lzc3VlKHJldHVybnMsIGVycm9yKSB7XG4gICAgICByZXR1cm4gbWFrZUlzc3VlKHtcbiAgICAgICAgZGF0YTogcmV0dXJucyxcbiAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgIGVycm9yTWFwczogW1xuICAgICAgICAgIGN0eC5jb21tb24uY29udGV4dHVhbEVycm9yTWFwLFxuICAgICAgICAgIGN0eC5zY2hlbWFFcnJvck1hcCxcbiAgICAgICAgICBnZXRFcnJvck1hcCgpLFxuICAgICAgICAgIGVycm9yTWFwXG4gICAgICAgIF0uZmlsdGVyKCh4KSA9PiAhIXgpLFxuICAgICAgICBpc3N1ZURhdGE6IHtcbiAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9yZXR1cm5fdHlwZSxcbiAgICAgICAgICByZXR1cm5UeXBlRXJyb3I6IGVycm9yXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBwYXJhbXMgPSB7IGVycm9yTWFwOiBjdHguY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcCB9O1xuICAgIGNvbnN0IGZuID0gY3R4LmRhdGE7XG4gICAgaWYgKHRoaXMuX2RlZi5yZXR1cm5zIGluc3RhbmNlb2YgWm9kUHJvbWlzZSkge1xuICAgICAgY29uc3QgbWUgPSB0aGlzO1xuICAgICAgcmV0dXJuIE9LKGFzeW5jIGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgWm9kRXJyb3IoW10pO1xuICAgICAgICBjb25zdCBwYXJzZWRBcmdzID0gYXdhaXQgbWUuX2RlZi5hcmdzLnBhcnNlQXN5bmMoYXJncywgcGFyYW1zKS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgIGVycm9yLmFkZElzc3VlKG1ha2VBcmdzSXNzdWUoYXJncywgZSkpO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUmVmbGVjdC5hcHBseShmbiwgdGhpcywgcGFyc2VkQXJncyk7XG4gICAgICAgIGNvbnN0IHBhcnNlZFJldHVybnMgPSBhd2FpdCBtZS5fZGVmLnJldHVybnMuX2RlZi50eXBlLnBhcnNlQXN5bmMocmVzdWx0LCBwYXJhbXMpLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgZXJyb3IuYWRkSXNzdWUobWFrZVJldHVybnNJc3N1ZShyZXN1bHQsIGUpKTtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBwYXJzZWRSZXR1cm5zO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1lID0gdGhpcztcbiAgICAgIHJldHVybiBPSyhmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZEFyZ3MgPSBtZS5fZGVmLmFyZ3Muc2FmZVBhcnNlKGFyZ3MsIHBhcmFtcyk7XG4gICAgICAgIGlmICghcGFyc2VkQXJncy5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFpvZEVycm9yKFttYWtlQXJnc0lzc3VlKGFyZ3MsIHBhcnNlZEFyZ3MuZXJyb3IpXSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gUmVmbGVjdC5hcHBseShmbiwgdGhpcywgcGFyc2VkQXJncy5kYXRhKTtcbiAgICAgICAgY29uc3QgcGFyc2VkUmV0dXJucyA9IG1lLl9kZWYucmV0dXJucy5zYWZlUGFyc2UocmVzdWx0LCBwYXJhbXMpO1xuICAgICAgICBpZiAoIXBhcnNlZFJldHVybnMuc3VjY2Vzcykge1xuICAgICAgICAgIHRocm93IG5ldyBab2RFcnJvcihbbWFrZVJldHVybnNJc3N1ZShyZXN1bHQsIHBhcnNlZFJldHVybnMuZXJyb3IpXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcnNlZFJldHVybnMuZGF0YTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBwYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYuYXJncztcbiAgfVxuICByZXR1cm5UeXBlKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYucmV0dXJucztcbiAgfVxuICBhcmdzKC4uLml0ZW1zKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kRnVuY3Rpb24oe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgYXJnczogWm9kVHVwbGUuY3JlYXRlKGl0ZW1zKS5yZXN0KFpvZFVua25vd24uY3JlYXRlKCkpXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJucyhyZXR1cm5UeXBlKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kRnVuY3Rpb24oe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgcmV0dXJuczogcmV0dXJuVHlwZVxuICAgIH0pO1xuICB9XG4gIGltcGxlbWVudChmdW5jKSB7XG4gICAgY29uc3QgdmFsaWRhdGVkRnVuYyA9IHRoaXMucGFyc2UoZnVuYyk7XG4gICAgcmV0dXJuIHZhbGlkYXRlZEZ1bmM7XG4gIH1cbiAgc3RyaWN0SW1wbGVtZW50KGZ1bmMpIHtcbiAgICBjb25zdCB2YWxpZGF0ZWRGdW5jID0gdGhpcy5wYXJzZShmdW5jKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkRnVuYztcbiAgfVxuICBzdGF0aWMgY3JlYXRlKGFyZ3MsIHJldHVybnMsIHBhcmFtcykge1xuICAgIHJldHVybiBuZXcgX1pvZEZ1bmN0aW9uKHtcbiAgICAgIGFyZ3M6IGFyZ3MgPyBhcmdzIDogWm9kVHVwbGUuY3JlYXRlKFtdKS5yZXN0KFpvZFVua25vd24uY3JlYXRlKCkpLFxuICAgICAgcmV0dXJuczogcmV0dXJucyB8fCBab2RVbmtub3duLmNyZWF0ZSgpLFxuICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RGdW5jdGlvbixcbiAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICAgIH0pO1xuICB9XG59O1xudmFyIFpvZExhenkgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBnZXQgc2NoZW1hKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYuZ2V0dGVyKCk7XG4gIH1cbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgeyBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgY29uc3QgbGF6eVNjaGVtYSA9IHRoaXMuX2RlZi5nZXR0ZXIoKTtcbiAgICByZXR1cm4gbGF6eVNjaGVtYS5fcGFyc2UoeyBkYXRhOiBjdHguZGF0YSwgcGF0aDogY3R4LnBhdGgsIHBhcmVudDogY3R4IH0pO1xuICB9XG59O1xuWm9kTGF6eS5jcmVhdGUgPSAoZ2V0dGVyLCBwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RMYXp5KHtcbiAgICBnZXR0ZXIsXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RMYXp5LFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kTGl0ZXJhbCA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGlmIChpbnB1dC5kYXRhICE9PSB0aGlzLl9kZWYudmFsdWUpIHtcbiAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICByZWNlaXZlZDogY3R4LmRhdGEsXG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX2xpdGVyYWwsXG4gICAgICAgIGV4cGVjdGVkOiB0aGlzLl9kZWYudmFsdWVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIHJldHVybiB7IHN0YXR1czogXCJ2YWxpZFwiLCB2YWx1ZTogaW5wdXQuZGF0YSB9O1xuICB9XG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLnZhbHVlO1xuICB9XG59O1xuWm9kTGl0ZXJhbC5jcmVhdGUgPSAodmFsdWUsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZExpdGVyYWwoe1xuICAgIHZhbHVlLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTGl0ZXJhbCxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xuZnVuY3Rpb24gY3JlYXRlWm9kRW51bSh2YWx1ZXMsIHBhcmFtcykge1xuICByZXR1cm4gbmV3IFpvZEVudW0oe1xuICAgIHZhbHVlcyxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVudW0sXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufVxudmFyIFpvZEVudW0gPSBjbGFzcyBfWm9kRW51bSBleHRlbmRzIFpvZFR5cGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgIF9ab2RFbnVtX2NhY2hlLnNldCh0aGlzLCB2b2lkIDApO1xuICB9XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGlmICh0eXBlb2YgaW5wdXQuZGF0YSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSB0aGlzLl9kZWYudmFsdWVzO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGV4cGVjdGVkOiB1dGlsLmpvaW5WYWx1ZXMoZXhwZWN0ZWRWYWx1ZXMpLFxuICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfWm9kRW51bV9jYWNoZSwgXCJmXCIpKSB7XG4gICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9ab2RFbnVtX2NhY2hlLCBuZXcgU2V0KHRoaXMuX2RlZi52YWx1ZXMpLCBcImZcIik7XG4gICAgfVxuICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfWm9kRW51bV9jYWNoZSwgXCJmXCIpLmhhcyhpbnB1dC5kYXRhKSkge1xuICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSB0aGlzLl9kZWYudmFsdWVzO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIHJlY2VpdmVkOiBjdHguZGF0YSxcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfZW51bV92YWx1ZSxcbiAgICAgICAgb3B0aW9uczogZXhwZWN0ZWRWYWx1ZXNcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgfVxuICBnZXQgb3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLnZhbHVlcztcbiAgfVxuICBnZXQgZW51bSgpIHtcbiAgICBjb25zdCBlbnVtVmFsdWVzID0ge307XG4gICAgZm9yIChjb25zdCB2YWwgb2YgdGhpcy5fZGVmLnZhbHVlcykge1xuICAgICAgZW51bVZhbHVlc1t2YWxdID0gdmFsO1xuICAgIH1cbiAgICByZXR1cm4gZW51bVZhbHVlcztcbiAgfVxuICBnZXQgVmFsdWVzKCkge1xuICAgIGNvbnN0IGVudW1WYWx1ZXMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IHZhbCBvZiB0aGlzLl9kZWYudmFsdWVzKSB7XG4gICAgICBlbnVtVmFsdWVzW3ZhbF0gPSB2YWw7XG4gICAgfVxuICAgIHJldHVybiBlbnVtVmFsdWVzO1xuICB9XG4gIGdldCBFbnVtKCkge1xuICAgIGNvbnN0IGVudW1WYWx1ZXMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IHZhbCBvZiB0aGlzLl9kZWYudmFsdWVzKSB7XG4gICAgICBlbnVtVmFsdWVzW3ZhbF0gPSB2YWw7XG4gICAgfVxuICAgIHJldHVybiBlbnVtVmFsdWVzO1xuICB9XG4gIGV4dHJhY3QodmFsdWVzLCBuZXdEZWYgPSB0aGlzLl9kZWYpIHtcbiAgICByZXR1cm4gX1pvZEVudW0uY3JlYXRlKHZhbHVlcywge1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgLi4ubmV3RGVmXG4gICAgfSk7XG4gIH1cbiAgZXhjbHVkZSh2YWx1ZXMsIG5ld0RlZiA9IHRoaXMuX2RlZikge1xuICAgIHJldHVybiBfWm9kRW51bS5jcmVhdGUodGhpcy5vcHRpb25zLmZpbHRlcigob3B0KSA9PiAhdmFsdWVzLmluY2x1ZGVzKG9wdCkpLCB7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAuLi5uZXdEZWZcbiAgICB9KTtcbiAgfVxufTtcbl9ab2RFbnVtX2NhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrTWFwKCk7XG5ab2RFbnVtLmNyZWF0ZSA9IGNyZWF0ZVpvZEVudW07XG52YXIgWm9kTmF0aXZlRW51bSA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgX1pvZE5hdGl2ZUVudW1fY2FjaGUuc2V0KHRoaXMsIHZvaWQgMCk7XG4gIH1cbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgbmF0aXZlRW51bVZhbHVlcyA9IHV0aWwuZ2V0VmFsaWRFbnVtVmFsdWVzKHRoaXMuX2RlZi52YWx1ZXMpO1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICBpZiAoY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuc3RyaW5nICYmIGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm51bWJlcikge1xuICAgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSB1dGlsLm9iamVjdFZhbHVlcyhuYXRpdmVFbnVtVmFsdWVzKTtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICBleHBlY3RlZDogdXRpbC5qb2luVmFsdWVzKGV4cGVjdGVkVmFsdWVzKSxcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICBpZiAoIV9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX1pvZE5hdGl2ZUVudW1fY2FjaGUsIFwiZlwiKSkge1xuICAgICAgX19jbGFzc1ByaXZhdGVGaWVsZFNldCh0aGlzLCBfWm9kTmF0aXZlRW51bV9jYWNoZSwgbmV3IFNldCh1dGlsLmdldFZhbGlkRW51bVZhbHVlcyh0aGlzLl9kZWYudmFsdWVzKSksIFwiZlwiKTtcbiAgICB9XG4gICAgaWYgKCFfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9ab2ROYXRpdmVFbnVtX2NhY2hlLCBcImZcIikuaGFzKGlucHV0LmRhdGEpKSB7XG4gICAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IHV0aWwub2JqZWN0VmFsdWVzKG5hdGl2ZUVudW1WYWx1ZXMpO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIHJlY2VpdmVkOiBjdHguZGF0YSxcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfZW51bV92YWx1ZSxcbiAgICAgICAgb3B0aW9uczogZXhwZWN0ZWRWYWx1ZXNcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgfVxuICBnZXQgZW51bSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLnZhbHVlcztcbiAgfVxufTtcbl9ab2ROYXRpdmVFbnVtX2NhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrTWFwKCk7XG5ab2ROYXRpdmVFbnVtLmNyZWF0ZSA9ICh2YWx1ZXMsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZE5hdGl2ZUVudW0oe1xuICAgIHZhbHVlcyxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE5hdGl2ZUVudW0sXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RQcm9taXNlID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgdW53cmFwKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYudHlwZTtcbiAgfVxuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICBpZiAoY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUucHJvbWlzZSAmJiBjdHguY29tbW9uLmFzeW5jID09PSBmYWxzZSkge1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLnByb21pc2UsXG4gICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBjdHgucGFyc2VkVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5wcm9taXNlID8gY3R4LmRhdGEgOiBQcm9taXNlLnJlc29sdmUoY3R4LmRhdGEpO1xuICAgIHJldHVybiBPSyhwcm9taXNpZmllZC50aGVuKChkYXRhKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fZGVmLnR5cGUucGFyc2VBc3luYyhkYXRhLCB7XG4gICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICBlcnJvck1hcDogY3R4LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXBcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxufTtcblpvZFByb21pc2UuY3JlYXRlID0gKHNjaGVtYSwgcGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kUHJvbWlzZSh7XG4gICAgdHlwZTogc2NoZW1hLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kUHJvbWlzZSxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZEVmZmVjdHMgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBpbm5lclR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5zY2hlbWE7XG4gIH1cbiAgc291cmNlVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLnNjaGVtYS5fZGVmLnR5cGVOYW1lID09PSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRWZmZWN0cyA/IHRoaXMuX2RlZi5zY2hlbWEuc291cmNlVHlwZSgpIDogdGhpcy5fZGVmLnNjaGVtYTtcbiAgfVxuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCB7IHN0YXR1cywgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgIGNvbnN0IGVmZmVjdCA9IHRoaXMuX2RlZi5lZmZlY3QgfHwgbnVsbDtcbiAgICBjb25zdCBjaGVja0N0eCA9IHtcbiAgICAgIGFkZElzc3VlOiAoYXJnKSA9PiB7XG4gICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwgYXJnKTtcbiAgICAgICAgaWYgKGFyZy5mYXRhbCkge1xuICAgICAgICAgIHN0YXR1cy5hYm9ydCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZ2V0IHBhdGgoKSB7XG4gICAgICAgIHJldHVybiBjdHgucGF0aDtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNoZWNrQ3R4LmFkZElzc3VlID0gY2hlY2tDdHguYWRkSXNzdWUuYmluZChjaGVja0N0eCk7XG4gICAgaWYgKGVmZmVjdC50eXBlID09PSBcInByZXByb2Nlc3NcIikge1xuICAgICAgY29uc3QgcHJvY2Vzc2VkID0gZWZmZWN0LnRyYW5zZm9ybShjdHguZGF0YSwgY2hlY2tDdHgpO1xuICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwcm9jZXNzZWQpLnRoZW4oYXN5bmMgKHByb2Nlc3NlZDIpID0+IHtcbiAgICAgICAgICBpZiAoc3RhdHVzLnZhbHVlID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlQXN5bmMoe1xuICAgICAgICAgICAgZGF0YTogcHJvY2Vzc2VkMixcbiAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgcGFyZW50OiBjdHhcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgICAgcmV0dXJuIERJUlRZKHJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgaWYgKHN0YXR1cy52YWx1ZSA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgICAgcmV0dXJuIERJUlRZKHJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc3RhdHVzLnZhbHVlID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VTeW5jKHtcbiAgICAgICAgICBkYXRhOiBwcm9jZXNzZWQsXG4gICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgcGFyZW50OiBjdHhcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgICByZXR1cm4gRElSVFkocmVzdWx0LnZhbHVlKTtcbiAgICAgICAgaWYgKHN0YXR1cy52YWx1ZSA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgIHJldHVybiBESVJUWShyZXN1bHQudmFsdWUpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZWZmZWN0LnR5cGUgPT09IFwicmVmaW5lbWVudFwiKSB7XG4gICAgICBjb25zdCBleGVjdXRlUmVmaW5lbWVudCA9IChhY2MpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZWZmZWN0LnJlZmluZW1lbnQoYWNjLCBjaGVja0N0eCk7XG4gICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXN5bmMgcmVmaW5lbWVudCBlbmNvdW50ZXJlZCBkdXJpbmcgc3luY2hyb25vdXMgcGFyc2Ugb3BlcmF0aW9uLiBVc2UgLnBhcnNlQXN5bmMgaW5zdGVhZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH07XG4gICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYyA9PT0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgaW5uZXIgPSB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZVN5bmMoe1xuICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgIHBhcmVudDogY3R4XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaW5uZXIuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgaWYgKGlubmVyLnN0YXR1cyA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICBleGVjdXRlUmVmaW5lbWVudChpbm5lci52YWx1ZSk7XG4gICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogaW5uZXIudmFsdWUgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZUFzeW5jKHsgZGF0YTogY3R4LmRhdGEsIHBhdGg6IGN0eC5wYXRoLCBwYXJlbnQ6IGN0eCB9KS50aGVuKChpbm5lcikgPT4ge1xuICAgICAgICAgIGlmIChpbm5lci5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgaWYgKGlubmVyLnN0YXR1cyA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgcmV0dXJuIGV4ZWN1dGVSZWZpbmVtZW50KGlubmVyLnZhbHVlKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogaW5uZXIudmFsdWUgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlZmZlY3QudHlwZSA9PT0gXCJ0cmFuc2Zvcm1cIikge1xuICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMgPT09IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IGJhc2UgPSB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZVN5bmMoe1xuICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgIHBhcmVudDogY3R4XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIWlzVmFsaWQoYmFzZSkpXG4gICAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGVmZmVjdC50cmFuc2Zvcm0oYmFzZS52YWx1ZSwgY2hlY2tDdHgpO1xuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQXN5bmNocm9ub3VzIHRyYW5zZm9ybSBlbmNvdW50ZXJlZCBkdXJpbmcgc3luY2hyb25vdXMgcGFyc2Ugb3BlcmF0aW9uLiBVc2UgLnBhcnNlQXN5bmMgaW5zdGVhZC5gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IHJlc3VsdCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlQXN5bmMoeyBkYXRhOiBjdHguZGF0YSwgcGF0aDogY3R4LnBhdGgsIHBhcmVudDogY3R4IH0pLnRoZW4oKGJhc2UpID0+IHtcbiAgICAgICAgICBpZiAoIWlzVmFsaWQoYmFzZSkpXG4gICAgICAgICAgICByZXR1cm4gYmFzZTtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGVmZmVjdC50cmFuc2Zvcm0oYmFzZS52YWx1ZSwgY2hlY2tDdHgpKS50aGVuKChyZXN1bHQpID0+ICh7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogcmVzdWx0IH0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHV0aWwuYXNzZXJ0TmV2ZXIoZWZmZWN0KTtcbiAgfVxufTtcblpvZEVmZmVjdHMuY3JlYXRlID0gKHNjaGVtYSwgZWZmZWN0LCBwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RFZmZlY3RzKHtcbiAgICBzY2hlbWEsXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFZmZlY3RzLFxuICAgIGVmZmVjdCxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xuWm9kRWZmZWN0cy5jcmVhdGVXaXRoUHJlcHJvY2VzcyA9IChwcmVwcm9jZXNzLCBzY2hlbWEsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZEVmZmVjdHMoe1xuICAgIHNjaGVtYSxcbiAgICBlZmZlY3Q6IHsgdHlwZTogXCJwcmVwcm9jZXNzXCIsIHRyYW5zZm9ybTogcHJlcHJvY2VzcyB9LFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRWZmZWN0cyxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZE9wdGlvbmFsID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgIGlmIChwYXJzZWRUeXBlID09PSBab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIE9LKHZvaWQgMCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlLl9wYXJzZShpbnB1dCk7XG4gIH1cbiAgdW53cmFwKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlO1xuICB9XG59O1xuWm9kT3B0aW9uYWwuY3JlYXRlID0gKHR5cGUsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZE9wdGlvbmFsKHtcbiAgICBpbm5lclR5cGU6IHR5cGUsXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RPcHRpb25hbCxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZE51bGxhYmxlID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgIGlmIChwYXJzZWRUeXBlID09PSBab2RQYXJzZWRUeXBlLm51bGwpIHtcbiAgICAgIHJldHVybiBPSyhudWxsKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKGlucHV0KTtcbiAgfVxuICB1bndyYXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGU7XG4gIH1cbn07XG5ab2ROdWxsYWJsZS5jcmVhdGUgPSAodHlwZSwgcGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kTnVsbGFibGUoe1xuICAgIGlubmVyVHlwZTogdHlwZSxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE51bGxhYmxlLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kRGVmYXVsdCA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgIGxldCBkYXRhID0gY3R4LmRhdGE7XG4gICAgaWYgKGN0eC5wYXJzZWRUeXBlID09PSBab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCkge1xuICAgICAgZGF0YSA9IHRoaXMuX2RlZi5kZWZhdWx0VmFsdWUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKHtcbiAgICAgIGRhdGEsXG4gICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgIHBhcmVudDogY3R4XG4gICAgfSk7XG4gIH1cbiAgcmVtb3ZlRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZTtcbiAgfVxufTtcblpvZERlZmF1bHQuY3JlYXRlID0gKHR5cGUsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZERlZmF1bHQoe1xuICAgIGlubmVyVHlwZTogdHlwZSxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZERlZmF1bHQsXG4gICAgZGVmYXVsdFZhbHVlOiB0eXBlb2YgcGFyYW1zLmRlZmF1bHQgPT09IFwiZnVuY3Rpb25cIiA/IHBhcmFtcy5kZWZhdWx0IDogKCkgPT4gcGFyYW1zLmRlZmF1bHQsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RDYXRjaCA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgIGNvbnN0IG5ld0N0eCA9IHtcbiAgICAgIC4uLmN0eCxcbiAgICAgIGNvbW1vbjoge1xuICAgICAgICAuLi5jdHguY29tbW9uLFxuICAgICAgICBpc3N1ZXM6IFtdXG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9kZWYuaW5uZXJUeXBlLl9wYXJzZSh7XG4gICAgICBkYXRhOiBuZXdDdHguZGF0YSxcbiAgICAgIHBhdGg6IG5ld0N0eC5wYXRoLFxuICAgICAgcGFyZW50OiB7XG4gICAgICAgIC4uLm5ld0N0eFxuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChpc0FzeW5jKHJlc3VsdCkpIHtcbiAgICAgIHJldHVybiByZXN1bHQudGhlbigocmVzdWx0MikgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXR1czogXCJ2YWxpZFwiLFxuICAgICAgICAgIHZhbHVlOiByZXN1bHQyLnN0YXR1cyA9PT0gXCJ2YWxpZFwiID8gcmVzdWx0Mi52YWx1ZSA6IHRoaXMuX2RlZi5jYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGdldCBlcnJvcigpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBab2RFcnJvcihuZXdDdHguY29tbW9uLmlzc3Vlcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5wdXQ6IG5ld0N0eC5kYXRhXG4gICAgICAgICAgfSlcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6IFwidmFsaWRcIixcbiAgICAgICAgdmFsdWU6IHJlc3VsdC5zdGF0dXMgPT09IFwidmFsaWRcIiA/IHJlc3VsdC52YWx1ZSA6IHRoaXMuX2RlZi5jYXRjaFZhbHVlKHtcbiAgICAgICAgICBnZXQgZXJyb3IoKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFpvZEVycm9yKG5ld0N0eC5jb21tb24uaXNzdWVzKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlucHV0OiBuZXdDdHguZGF0YVxuICAgICAgICB9KVxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgcmVtb3ZlQ2F0Y2goKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGU7XG4gIH1cbn07XG5ab2RDYXRjaC5jcmVhdGUgPSAodHlwZSwgcGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kQ2F0Y2goe1xuICAgIGlubmVyVHlwZTogdHlwZSxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZENhdGNoLFxuICAgIGNhdGNoVmFsdWU6IHR5cGVvZiBwYXJhbXMuY2F0Y2ggPT09IFwiZnVuY3Rpb25cIiA/IHBhcmFtcy5jYXRjaCA6ICgpID0+IHBhcmFtcy5jYXRjaCxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZE5hTiA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5uYW4pIHtcbiAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5uYW4sXG4gICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlOiBpbnB1dC5kYXRhIH07XG4gIH1cbn07XG5ab2ROYU4uY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZE5hTih7XG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROYU4sXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBCUkFORCA9IFN5bWJvbChcInpvZF9icmFuZFwiKTtcbnZhciBab2RCcmFuZGVkID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgeyBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgY29uc3QgZGF0YSA9IGN0eC5kYXRhO1xuICAgIHJldHVybiB0aGlzLl9kZWYudHlwZS5fcGFyc2Uoe1xuICAgICAgZGF0YSxcbiAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgcGFyZW50OiBjdHhcbiAgICB9KTtcbiAgfVxuICB1bndyYXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi50eXBlO1xuICB9XG59O1xudmFyIFpvZFBpcGVsaW5lID0gY2xhc3MgX1pvZFBpcGVsaW5lIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgIGNvbnN0IGhhbmRsZUFzeW5jID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBpblJlc3VsdCA9IGF3YWl0IHRoaXMuX2RlZi5pbi5fcGFyc2VBc3luYyh7XG4gICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgcGFyZW50OiBjdHhcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpblJlc3VsdC5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICBpZiAoaW5SZXN1bHQuc3RhdHVzID09PSBcImRpcnR5XCIpIHtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICByZXR1cm4gRElSVFkoaW5SZXN1bHQudmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9kZWYub3V0Ll9wYXJzZUFzeW5jKHtcbiAgICAgICAgICAgIGRhdGE6IGluUmVzdWx0LnZhbHVlLFxuICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICBwYXJlbnQ6IGN0eFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgcmV0dXJuIGhhbmRsZUFzeW5jKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGluUmVzdWx0ID0gdGhpcy5fZGVmLmluLl9wYXJzZVN5bmMoe1xuICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgIHBhcmVudDogY3R4XG4gICAgICB9KTtcbiAgICAgIGlmIChpblJlc3VsdC5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgIGlmIChpblJlc3VsdC5zdGF0dXMgPT09IFwiZGlydHlcIikge1xuICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdGF0dXM6IFwiZGlydHlcIixcbiAgICAgICAgICB2YWx1ZTogaW5SZXN1bHQudmFsdWVcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYub3V0Ll9wYXJzZVN5bmMoe1xuICAgICAgICAgIGRhdGE6IGluUmVzdWx0LnZhbHVlLFxuICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgIHBhcmVudDogY3R4XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBzdGF0aWMgY3JlYXRlKGEsIGIpIHtcbiAgICByZXR1cm4gbmV3IF9ab2RQaXBlbGluZSh7XG4gICAgICBpbjogYSxcbiAgICAgIG91dDogYixcbiAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kUGlwZWxpbmVcbiAgICB9KTtcbiAgfVxufTtcbnZhciBab2RSZWFkb25seSA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKGlucHV0KTtcbiAgICBjb25zdCBmcmVlemUgPSAoZGF0YSkgPT4ge1xuICAgICAgaWYgKGlzVmFsaWQoZGF0YSkpIHtcbiAgICAgICAgZGF0YS52YWx1ZSA9IE9iamVjdC5mcmVlemUoZGF0YS52YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9O1xuICAgIHJldHVybiBpc0FzeW5jKHJlc3VsdCkgPyByZXN1bHQudGhlbigoZGF0YSkgPT4gZnJlZXplKGRhdGEpKSA6IGZyZWV6ZShyZXN1bHQpO1xuICB9XG4gIHVud3JhcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZTtcbiAgfVxufTtcblpvZFJlYWRvbmx5LmNyZWF0ZSA9ICh0eXBlLCBwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RSZWFkb25seSh7XG4gICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kUmVhZG9ubHksXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbmZ1bmN0aW9uIGNsZWFuUGFyYW1zKHBhcmFtcywgZGF0YSkge1xuICBjb25zdCBwID0gdHlwZW9mIHBhcmFtcyA9PT0gXCJmdW5jdGlvblwiID8gcGFyYW1zKGRhdGEpIDogdHlwZW9mIHBhcmFtcyA9PT0gXCJzdHJpbmdcIiA/IHsgbWVzc2FnZTogcGFyYW1zIH0gOiBwYXJhbXM7XG4gIGNvbnN0IHAyID0gdHlwZW9mIHAgPT09IFwic3RyaW5nXCIgPyB7IG1lc3NhZ2U6IHAgfSA6IHA7XG4gIHJldHVybiBwMjtcbn1cbmZ1bmN0aW9uIGN1c3RvbShjaGVjaywgX3BhcmFtcyA9IHt9LCBmYXRhbCkge1xuICBpZiAoY2hlY2spXG4gICAgcmV0dXJuIFpvZEFueS5jcmVhdGUoKS5zdXBlclJlZmluZSgoZGF0YSwgY3R4KSA9PiB7XG4gICAgICB2YXIgX2EsIF9iO1xuICAgICAgY29uc3QgciA9IGNoZWNrKGRhdGEpO1xuICAgICAgaWYgKHIgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgIHJldHVybiByLnRoZW4oKHIyKSA9PiB7XG4gICAgICAgICAgdmFyIF9hMiwgX2IyO1xuICAgICAgICAgIGlmICghcjIpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IGNsZWFuUGFyYW1zKF9wYXJhbXMsIGRhdGEpO1xuICAgICAgICAgICAgY29uc3QgX2ZhdGFsID0gKF9iMiA9IChfYTIgPSBwYXJhbXMuZmF0YWwpICE9PSBudWxsICYmIF9hMiAhPT0gdm9pZCAwID8gX2EyIDogZmF0YWwpICE9PSBudWxsICYmIF9iMiAhPT0gdm9pZCAwID8gX2IyIDogdHJ1ZTtcbiAgICAgICAgICAgIGN0eC5hZGRJc3N1ZSh7IGNvZGU6IFwiY3VzdG9tXCIsIC4uLnBhcmFtcywgZmF0YWw6IF9mYXRhbCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCFyKSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGNsZWFuUGFyYW1zKF9wYXJhbXMsIGRhdGEpO1xuICAgICAgICBjb25zdCBfZmF0YWwgPSAoX2IgPSAoX2EgPSBwYXJhbXMuZmF0YWwpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGZhdGFsKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB0cnVlO1xuICAgICAgICBjdHguYWRkSXNzdWUoeyBjb2RlOiBcImN1c3RvbVwiLCAuLi5wYXJhbXMsIGZhdGFsOiBfZmF0YWwgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfSk7XG4gIHJldHVybiBab2RBbnkuY3JlYXRlKCk7XG59XG52YXIgbGF0ZSA9IHtcbiAgb2JqZWN0OiBab2RPYmplY3QubGF6eWNyZWF0ZVxufTtcbnZhciBab2RGaXJzdFBhcnR5VHlwZUtpbmQ7XG4oZnVuY3Rpb24oWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMikge1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kU3RyaW5nXCJdID0gXCJab2RTdHJpbmdcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZE51bWJlclwiXSA9IFwiWm9kTnVtYmVyXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2ROYU5cIl0gPSBcIlpvZE5hTlwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kQmlnSW50XCJdID0gXCJab2RCaWdJbnRcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZEJvb2xlYW5cIl0gPSBcIlpvZEJvb2xlYW5cIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZERhdGVcIl0gPSBcIlpvZERhdGVcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZFN5bWJvbFwiXSA9IFwiWm9kU3ltYm9sXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RVbmRlZmluZWRcIl0gPSBcIlpvZFVuZGVmaW5lZFwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kTnVsbFwiXSA9IFwiWm9kTnVsbFwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kQW55XCJdID0gXCJab2RBbnlcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZFVua25vd25cIl0gPSBcIlpvZFVua25vd25cIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZE5ldmVyXCJdID0gXCJab2ROZXZlclwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kVm9pZFwiXSA9IFwiWm9kVm9pZFwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kQXJyYXlcIl0gPSBcIlpvZEFycmF5XCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RPYmplY3RcIl0gPSBcIlpvZE9iamVjdFwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kVW5pb25cIl0gPSBcIlpvZFVuaW9uXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2REaXNjcmltaW5hdGVkVW5pb25cIl0gPSBcIlpvZERpc2NyaW1pbmF0ZWRVbmlvblwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kSW50ZXJzZWN0aW9uXCJdID0gXCJab2RJbnRlcnNlY3Rpb25cIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZFR1cGxlXCJdID0gXCJab2RUdXBsZVwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kUmVjb3JkXCJdID0gXCJab2RSZWNvcmRcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZE1hcFwiXSA9IFwiWm9kTWFwXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RTZXRcIl0gPSBcIlpvZFNldFwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kRnVuY3Rpb25cIl0gPSBcIlpvZEZ1bmN0aW9uXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RMYXp5XCJdID0gXCJab2RMYXp5XCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RMaXRlcmFsXCJdID0gXCJab2RMaXRlcmFsXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RFbnVtXCJdID0gXCJab2RFbnVtXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RFZmZlY3RzXCJdID0gXCJab2RFZmZlY3RzXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2ROYXRpdmVFbnVtXCJdID0gXCJab2ROYXRpdmVFbnVtXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RPcHRpb25hbFwiXSA9IFwiWm9kT3B0aW9uYWxcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZE51bGxhYmxlXCJdID0gXCJab2ROdWxsYWJsZVwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kRGVmYXVsdFwiXSA9IFwiWm9kRGVmYXVsdFwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kQ2F0Y2hcIl0gPSBcIlpvZENhdGNoXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RQcm9taXNlXCJdID0gXCJab2RQcm9taXNlXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RCcmFuZGVkXCJdID0gXCJab2RCcmFuZGVkXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RQaXBlbGluZVwiXSA9IFwiWm9kUGlwZWxpbmVcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZFJlYWRvbmx5XCJdID0gXCJab2RSZWFkb25seVwiO1xufSkoWm9kRmlyc3RQYXJ0eVR5cGVLaW5kIHx8IChab2RGaXJzdFBhcnR5VHlwZUtpbmQgPSB7fSkpO1xudmFyIGluc3RhbmNlT2ZUeXBlID0gKGNscywgcGFyYW1zID0ge1xuICBtZXNzYWdlOiBgSW5wdXQgbm90IGluc3RhbmNlIG9mICR7Y2xzLm5hbWV9YFxufSkgPT4gY3VzdG9tKChkYXRhKSA9PiBkYXRhIGluc3RhbmNlb2YgY2xzLCBwYXJhbXMpO1xudmFyIHN0cmluZ1R5cGUgPSBab2RTdHJpbmcuY3JlYXRlO1xudmFyIG51bWJlclR5cGUgPSBab2ROdW1iZXIuY3JlYXRlO1xudmFyIG5hblR5cGUgPSBab2ROYU4uY3JlYXRlO1xudmFyIGJpZ0ludFR5cGUgPSBab2RCaWdJbnQuY3JlYXRlO1xudmFyIGJvb2xlYW5UeXBlID0gWm9kQm9vbGVhbi5jcmVhdGU7XG52YXIgZGF0ZVR5cGUgPSBab2REYXRlLmNyZWF0ZTtcbnZhciBzeW1ib2xUeXBlID0gWm9kU3ltYm9sLmNyZWF0ZTtcbnZhciB1bmRlZmluZWRUeXBlID0gWm9kVW5kZWZpbmVkLmNyZWF0ZTtcbnZhciBudWxsVHlwZSA9IFpvZE51bGwuY3JlYXRlO1xudmFyIGFueVR5cGUgPSBab2RBbnkuY3JlYXRlO1xudmFyIHVua25vd25UeXBlID0gWm9kVW5rbm93bi5jcmVhdGU7XG52YXIgbmV2ZXJUeXBlID0gWm9kTmV2ZXIuY3JlYXRlO1xudmFyIHZvaWRUeXBlID0gWm9kVm9pZC5jcmVhdGU7XG52YXIgYXJyYXlUeXBlID0gWm9kQXJyYXkuY3JlYXRlO1xudmFyIG9iamVjdFR5cGUgPSBab2RPYmplY3QuY3JlYXRlO1xudmFyIHN0cmljdE9iamVjdFR5cGUgPSBab2RPYmplY3Quc3RyaWN0Q3JlYXRlO1xudmFyIHVuaW9uVHlwZSA9IFpvZFVuaW9uLmNyZWF0ZTtcbnZhciBkaXNjcmltaW5hdGVkVW5pb25UeXBlID0gWm9kRGlzY3JpbWluYXRlZFVuaW9uLmNyZWF0ZTtcbnZhciBpbnRlcnNlY3Rpb25UeXBlID0gWm9kSW50ZXJzZWN0aW9uLmNyZWF0ZTtcbnZhciB0dXBsZVR5cGUgPSBab2RUdXBsZS5jcmVhdGU7XG52YXIgcmVjb3JkVHlwZSA9IFpvZFJlY29yZC5jcmVhdGU7XG52YXIgbWFwVHlwZSA9IFpvZE1hcC5jcmVhdGU7XG52YXIgc2V0VHlwZSA9IFpvZFNldC5jcmVhdGU7XG52YXIgZnVuY3Rpb25UeXBlID0gWm9kRnVuY3Rpb24uY3JlYXRlO1xudmFyIGxhenlUeXBlID0gWm9kTGF6eS5jcmVhdGU7XG52YXIgbGl0ZXJhbFR5cGUgPSBab2RMaXRlcmFsLmNyZWF0ZTtcbnZhciBlbnVtVHlwZSA9IFpvZEVudW0uY3JlYXRlO1xudmFyIG5hdGl2ZUVudW1UeXBlID0gWm9kTmF0aXZlRW51bS5jcmVhdGU7XG52YXIgcHJvbWlzZVR5cGUgPSBab2RQcm9taXNlLmNyZWF0ZTtcbnZhciBlZmZlY3RzVHlwZSA9IFpvZEVmZmVjdHMuY3JlYXRlO1xudmFyIG9wdGlvbmFsVHlwZSA9IFpvZE9wdGlvbmFsLmNyZWF0ZTtcbnZhciBudWxsYWJsZVR5cGUgPSBab2ROdWxsYWJsZS5jcmVhdGU7XG52YXIgcHJlcHJvY2Vzc1R5cGUgPSBab2RFZmZlY3RzLmNyZWF0ZVdpdGhQcmVwcm9jZXNzO1xudmFyIHBpcGVsaW5lVHlwZSA9IFpvZFBpcGVsaW5lLmNyZWF0ZTtcbnZhciBvc3RyaW5nID0gKCkgPT4gc3RyaW5nVHlwZSgpLm9wdGlvbmFsKCk7XG52YXIgb251bWJlciA9ICgpID0+IG51bWJlclR5cGUoKS5vcHRpb25hbCgpO1xudmFyIG9ib29sZWFuID0gKCkgPT4gYm9vbGVhblR5cGUoKS5vcHRpb25hbCgpO1xudmFyIGNvZXJjZSA9IHtcbiAgc3RyaW5nOiAoYXJnKSA9PiBab2RTdHJpbmcuY3JlYXRlKHsgLi4uYXJnLCBjb2VyY2U6IHRydWUgfSksXG4gIG51bWJlcjogKGFyZykgPT4gWm9kTnVtYmVyLmNyZWF0ZSh7IC4uLmFyZywgY29lcmNlOiB0cnVlIH0pLFxuICBib29sZWFuOiAoYXJnKSA9PiBab2RCb29sZWFuLmNyZWF0ZSh7XG4gICAgLi4uYXJnLFxuICAgIGNvZXJjZTogdHJ1ZVxuICB9KSxcbiAgYmlnaW50OiAoYXJnKSA9PiBab2RCaWdJbnQuY3JlYXRlKHsgLi4uYXJnLCBjb2VyY2U6IHRydWUgfSksXG4gIGRhdGU6IChhcmcpID0+IFpvZERhdGUuY3JlYXRlKHsgLi4uYXJnLCBjb2VyY2U6IHRydWUgfSlcbn07XG52YXIgTkVWRVIgPSBJTlZBTElEO1xudmFyIHogPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmZyZWV6ZSh7XG4gIF9fcHJvdG9fXzogbnVsbCxcbiAgZGVmYXVsdEVycm9yTWFwOiBlcnJvck1hcCxcbiAgc2V0RXJyb3JNYXAsXG4gIGdldEVycm9yTWFwLFxuICBtYWtlSXNzdWUsXG4gIEVNUFRZX1BBVEgsXG4gIGFkZElzc3VlVG9Db250ZXh0LFxuICBQYXJzZVN0YXR1cyxcbiAgSU5WQUxJRCxcbiAgRElSVFksXG4gIE9LLFxuICBpc0Fib3J0ZWQsXG4gIGlzRGlydHksXG4gIGlzVmFsaWQsXG4gIGlzQXN5bmMsXG4gIGdldCB1dGlsKCkge1xuICAgIHJldHVybiB1dGlsO1xuICB9LFxuICBnZXQgb2JqZWN0VXRpbCgpIHtcbiAgICByZXR1cm4gb2JqZWN0VXRpbDtcbiAgfSxcbiAgWm9kUGFyc2VkVHlwZSxcbiAgZ2V0UGFyc2VkVHlwZSxcbiAgWm9kVHlwZSxcbiAgZGF0ZXRpbWVSZWdleCxcbiAgWm9kU3RyaW5nLFxuICBab2ROdW1iZXIsXG4gIFpvZEJpZ0ludCxcbiAgWm9kQm9vbGVhbixcbiAgWm9kRGF0ZSxcbiAgWm9kU3ltYm9sLFxuICBab2RVbmRlZmluZWQsXG4gIFpvZE51bGwsXG4gIFpvZEFueSxcbiAgWm9kVW5rbm93bixcbiAgWm9kTmV2ZXIsXG4gIFpvZFZvaWQsXG4gIFpvZEFycmF5LFxuICBab2RPYmplY3QsXG4gIFpvZFVuaW9uLFxuICBab2REaXNjcmltaW5hdGVkVW5pb24sXG4gIFpvZEludGVyc2VjdGlvbixcbiAgWm9kVHVwbGUsXG4gIFpvZFJlY29yZCxcbiAgWm9kTWFwLFxuICBab2RTZXQsXG4gIFpvZEZ1bmN0aW9uLFxuICBab2RMYXp5LFxuICBab2RMaXRlcmFsLFxuICBab2RFbnVtLFxuICBab2ROYXRpdmVFbnVtLFxuICBab2RQcm9taXNlLFxuICBab2RFZmZlY3RzLFxuICBab2RUcmFuc2Zvcm1lcjogWm9kRWZmZWN0cyxcbiAgWm9kT3B0aW9uYWwsXG4gIFpvZE51bGxhYmxlLFxuICBab2REZWZhdWx0LFxuICBab2RDYXRjaCxcbiAgWm9kTmFOLFxuICBCUkFORCxcbiAgWm9kQnJhbmRlZCxcbiAgWm9kUGlwZWxpbmUsXG4gIFpvZFJlYWRvbmx5LFxuICBjdXN0b20sXG4gIFNjaGVtYTogWm9kVHlwZSxcbiAgWm9kU2NoZW1hOiBab2RUeXBlLFxuICBsYXRlLFxuICBnZXQgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kKCkge1xuICAgIHJldHVybiBab2RGaXJzdFBhcnR5VHlwZUtpbmQ7XG4gIH0sXG4gIGNvZXJjZSxcbiAgYW55OiBhbnlUeXBlLFxuICBhcnJheTogYXJyYXlUeXBlLFxuICBiaWdpbnQ6IGJpZ0ludFR5cGUsXG4gIGJvb2xlYW46IGJvb2xlYW5UeXBlLFxuICBkYXRlOiBkYXRlVHlwZSxcbiAgZGlzY3JpbWluYXRlZFVuaW9uOiBkaXNjcmltaW5hdGVkVW5pb25UeXBlLFxuICBlZmZlY3Q6IGVmZmVjdHNUeXBlLFxuICBcImVudW1cIjogZW51bVR5cGUsXG4gIFwiZnVuY3Rpb25cIjogZnVuY3Rpb25UeXBlLFxuICBcImluc3RhbmNlb2ZcIjogaW5zdGFuY2VPZlR5cGUsXG4gIGludGVyc2VjdGlvbjogaW50ZXJzZWN0aW9uVHlwZSxcbiAgbGF6eTogbGF6eVR5cGUsXG4gIGxpdGVyYWw6IGxpdGVyYWxUeXBlLFxuICBtYXA6IG1hcFR5cGUsXG4gIG5hbjogbmFuVHlwZSxcbiAgbmF0aXZlRW51bTogbmF0aXZlRW51bVR5cGUsXG4gIG5ldmVyOiBuZXZlclR5cGUsXG4gIFwibnVsbFwiOiBudWxsVHlwZSxcbiAgbnVsbGFibGU6IG51bGxhYmxlVHlwZSxcbiAgbnVtYmVyOiBudW1iZXJUeXBlLFxuICBvYmplY3Q6IG9iamVjdFR5cGUsXG4gIG9ib29sZWFuLFxuICBvbnVtYmVyLFxuICBvcHRpb25hbDogb3B0aW9uYWxUeXBlLFxuICBvc3RyaW5nLFxuICBwaXBlbGluZTogcGlwZWxpbmVUeXBlLFxuICBwcmVwcm9jZXNzOiBwcmVwcm9jZXNzVHlwZSxcbiAgcHJvbWlzZTogcHJvbWlzZVR5cGUsXG4gIHJlY29yZDogcmVjb3JkVHlwZSxcbiAgc2V0OiBzZXRUeXBlLFxuICBzdHJpY3RPYmplY3Q6IHN0cmljdE9iamVjdFR5cGUsXG4gIHN0cmluZzogc3RyaW5nVHlwZSxcbiAgc3ltYm9sOiBzeW1ib2xUeXBlLFxuICB0cmFuc2Zvcm1lcjogZWZmZWN0c1R5cGUsXG4gIHR1cGxlOiB0dXBsZVR5cGUsXG4gIFwidW5kZWZpbmVkXCI6IHVuZGVmaW5lZFR5cGUsXG4gIHVuaW9uOiB1bmlvblR5cGUsXG4gIHVua25vd246IHVua25vd25UeXBlLFxuICBcInZvaWRcIjogdm9pZFR5cGUsXG4gIE5FVkVSLFxuICBab2RJc3N1ZUNvZGUsXG4gIHF1b3RlbGVzc0pzb24sXG4gIFpvZEVycm9yXG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvZGlzdC9lc20vdHlwZXMuanNcbnZhciBMQVRFU1RfUFJPVE9DT0xfVkVSU0lPTiA9IFwiMjAyNS0wNi0xOFwiO1xudmFyIERFRkFVTFRfTkVHT1RJQVRFRF9QUk9UT0NPTF9WRVJTSU9OID0gXCIyMDI1LTAzLTI2XCI7XG52YXIgU1VQUE9SVEVEX1BST1RPQ09MX1ZFUlNJT05TID0gW1xuICBMQVRFU1RfUFJPVE9DT0xfVkVSU0lPTixcbiAgXCIyMDI1LTAzLTI2XCIsXG4gIFwiMjAyNC0xMS0wNVwiLFxuICBcIjIwMjQtMTAtMDdcIlxuXTtcbnZhciBKU09OUlBDX1ZFUlNJT04gPSBcIjIuMFwiO1xudmFyIFByb2dyZXNzVG9rZW5TY2hlbWEgPSB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm51bWJlcigpLmludCgpXSk7XG52YXIgQ3Vyc29yU2NoZW1hID0gei5zdHJpbmcoKTtcbnZhciBSZXF1ZXN0TWV0YVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIElmIHNwZWNpZmllZCwgdGhlIGNhbGxlciBpcyByZXF1ZXN0aW5nIG91dC1vZi1iYW5kIHByb2dyZXNzIG5vdGlmaWNhdGlvbnMgZm9yIHRoaXMgcmVxdWVzdCAoYXMgcmVwcmVzZW50ZWQgYnkgbm90aWZpY2F0aW9ucy9wcm9ncmVzcykuIFRoZSB2YWx1ZSBvZiB0aGlzIHBhcmFtZXRlciBpcyBhbiBvcGFxdWUgdG9rZW4gdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIGFueSBzdWJzZXF1ZW50IG5vdGlmaWNhdGlvbnMuIFRoZSByZWNlaXZlciBpcyBub3Qgb2JsaWdhdGVkIHRvIHByb3ZpZGUgdGhlc2Ugbm90aWZpY2F0aW9ucy5cbiAgICovXG4gIHByb2dyZXNzVG9rZW46IHoub3B0aW9uYWwoUHJvZ3Jlc3NUb2tlblNjaGVtYSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgQmFzZVJlcXVlc3RQYXJhbXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIF9tZXRhOiB6Lm9wdGlvbmFsKFJlcXVlc3RNZXRhU2NoZW1hKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBSZXF1ZXN0U2NoZW1hID0gei5vYmplY3Qoe1xuICBtZXRob2Q6IHouc3RyaW5nKCksXG4gIHBhcmFtczogei5vcHRpb25hbChCYXNlUmVxdWVzdFBhcmFtc1NjaGVtYSlcbn0pO1xudmFyIEJhc2VOb3RpZmljYXRpb25QYXJhbXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8qKlxuICAgKiBTZWUgW01DUCBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbW9kZWxjb250ZXh0cHJvdG9jb2wvbW9kZWxjb250ZXh0cHJvdG9jb2wvYmxvYi80NzMzOWMwM2MxNDNiYjRlYzAxYTI2ZTcyMWExYjhmZTY2NjM0ZWJlL2RvY3Mvc3BlY2lmaWNhdGlvbi9kcmFmdC9iYXNpYy9pbmRleC5tZHgjZ2VuZXJhbC1maWVsZHMpXG4gICAqIGZvciBub3RlcyBvbiBfbWV0YSB1c2FnZS5cbiAgICovXG4gIF9tZXRhOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBOb3RpZmljYXRpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gIG1ldGhvZDogei5zdHJpbmcoKSxcbiAgcGFyYW1zOiB6Lm9wdGlvbmFsKEJhc2VOb3RpZmljYXRpb25QYXJhbXNTY2hlbWEpXG59KTtcbnZhciBSZXN1bHRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8qKlxuICAgKiBTZWUgW01DUCBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbW9kZWxjb250ZXh0cHJvdG9jb2wvbW9kZWxjb250ZXh0cHJvdG9jb2wvYmxvYi80NzMzOWMwM2MxNDNiYjRlYzAxYTI2ZTcyMWExYjhmZTY2NjM0ZWJlL2RvY3Mvc3BlY2lmaWNhdGlvbi9kcmFmdC9iYXNpYy9pbmRleC5tZHgjZ2VuZXJhbC1maWVsZHMpXG4gICAqIGZvciBub3RlcyBvbiBfbWV0YSB1c2FnZS5cbiAgICovXG4gIF9tZXRhOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBSZXF1ZXN0SWRTY2hlbWEgPSB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm51bWJlcigpLmludCgpXSk7XG52YXIgSlNPTlJQQ1JlcXVlc3RTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGpzb25ycGM6IHoubGl0ZXJhbChKU09OUlBDX1ZFUlNJT04pLFxuICBpZDogUmVxdWVzdElkU2NoZW1hXG59KS5tZXJnZShSZXF1ZXN0U2NoZW1hKS5zdHJpY3QoKTtcbnZhciBpc0pTT05SUENSZXF1ZXN0ID0gKHZhbHVlKSA9PiBKU09OUlBDUmVxdWVzdFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3M7XG52YXIgSlNPTlJQQ05vdGlmaWNhdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAganNvbnJwYzogei5saXRlcmFsKEpTT05SUENfVkVSU0lPTilcbn0pLm1lcmdlKE5vdGlmaWNhdGlvblNjaGVtYSkuc3RyaWN0KCk7XG52YXIgSlNPTlJQQ1Jlc3BvbnNlU2NoZW1hID0gei5vYmplY3Qoe1xuICBqc29ucnBjOiB6LmxpdGVyYWwoSlNPTlJQQ19WRVJTSU9OKSxcbiAgaWQ6IFJlcXVlc3RJZFNjaGVtYSxcbiAgcmVzdWx0OiBSZXN1bHRTY2hlbWFcbn0pLnN0cmljdCgpO1xudmFyIGlzSlNPTlJQQ1Jlc3BvbnNlID0gKHZhbHVlKSA9PiBKU09OUlBDUmVzcG9uc2VTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzO1xudmFyIEVycm9yQ29kZTtcbihmdW5jdGlvbihFcnJvckNvZGUyKSB7XG4gIEVycm9yQ29kZTJbRXJyb3JDb2RlMltcIkNvbm5lY3Rpb25DbG9zZWRcIl0gPSAtMzJlM10gPSBcIkNvbm5lY3Rpb25DbG9zZWRcIjtcbiAgRXJyb3JDb2RlMltFcnJvckNvZGUyW1wiUmVxdWVzdFRpbWVvdXRcIl0gPSAtMzIwMDFdID0gXCJSZXF1ZXN0VGltZW91dFwiO1xuICBFcnJvckNvZGUyW0Vycm9yQ29kZTJbXCJQYXJzZUVycm9yXCJdID0gLTMyNzAwXSA9IFwiUGFyc2VFcnJvclwiO1xuICBFcnJvckNvZGUyW0Vycm9yQ29kZTJbXCJJbnZhbGlkUmVxdWVzdFwiXSA9IC0zMjYwMF0gPSBcIkludmFsaWRSZXF1ZXN0XCI7XG4gIEVycm9yQ29kZTJbRXJyb3JDb2RlMltcIk1ldGhvZE5vdEZvdW5kXCJdID0gLTMyNjAxXSA9IFwiTWV0aG9kTm90Rm91bmRcIjtcbiAgRXJyb3JDb2RlMltFcnJvckNvZGUyW1wiSW52YWxpZFBhcmFtc1wiXSA9IC0zMjYwMl0gPSBcIkludmFsaWRQYXJhbXNcIjtcbiAgRXJyb3JDb2RlMltFcnJvckNvZGUyW1wiSW50ZXJuYWxFcnJvclwiXSA9IC0zMjYwM10gPSBcIkludGVybmFsRXJyb3JcIjtcbn0pKEVycm9yQ29kZSB8fCAoRXJyb3JDb2RlID0ge30pKTtcbnZhciBKU09OUlBDRXJyb3JTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGpzb25ycGM6IHoubGl0ZXJhbChKU09OUlBDX1ZFUlNJT04pLFxuICBpZDogUmVxdWVzdElkU2NoZW1hLFxuICBlcnJvcjogei5vYmplY3Qoe1xuICAgIC8qKlxuICAgICAqIFRoZSBlcnJvciB0eXBlIHRoYXQgb2NjdXJyZWQuXG4gICAgICovXG4gICAgY29kZTogei5udW1iZXIoKS5pbnQoKSxcbiAgICAvKipcbiAgICAgKiBBIHNob3J0IGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvci4gVGhlIG1lc3NhZ2UgU0hPVUxEIGJlIGxpbWl0ZWQgdG8gYSBjb25jaXNlIHNpbmdsZSBzZW50ZW5jZS5cbiAgICAgKi9cbiAgICBtZXNzYWdlOiB6LnN0cmluZygpLFxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVycm9yLiBUaGUgdmFsdWUgb2YgdGhpcyBtZW1iZXIgaXMgZGVmaW5lZCBieSB0aGUgc2VuZGVyIChlLmcuIGRldGFpbGVkIGVycm9yIGluZm9ybWF0aW9uLCBuZXN0ZWQgZXJyb3JzIGV0Yy4pLlxuICAgICAqL1xuICAgIGRhdGE6IHoub3B0aW9uYWwoei51bmtub3duKCkpXG4gIH0pXG59KS5zdHJpY3QoKTtcbnZhciBpc0pTT05SUENFcnJvciA9ICh2YWx1ZSkgPT4gSlNPTlJQQ0Vycm9yU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2VzcztcbnZhciBKU09OUlBDTWVzc2FnZVNjaGVtYSA9IHoudW5pb24oW1xuICBKU09OUlBDUmVxdWVzdFNjaGVtYSxcbiAgSlNPTlJQQ05vdGlmaWNhdGlvblNjaGVtYSxcbiAgSlNPTlJQQ1Jlc3BvbnNlU2NoZW1hLFxuICBKU09OUlBDRXJyb3JTY2hlbWFcbl0pO1xudmFyIEVtcHR5UmVzdWx0U2NoZW1hID0gUmVzdWx0U2NoZW1hLnN0cmljdCgpO1xudmFyIENhbmNlbGxlZE5vdGlmaWNhdGlvblNjaGVtYSA9IE5vdGlmaWNhdGlvblNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcIm5vdGlmaWNhdGlvbnMvY2FuY2VsbGVkXCIpLFxuICBwYXJhbXM6IEJhc2VOb3RpZmljYXRpb25QYXJhbXNTY2hlbWEuZXh0ZW5kKHtcbiAgICAvKipcbiAgICAgKiBUaGUgSUQgb2YgdGhlIHJlcXVlc3QgdG8gY2FuY2VsLlxuICAgICAqXG4gICAgICogVGhpcyBNVVNUIGNvcnJlc3BvbmQgdG8gdGhlIElEIG9mIGEgcmVxdWVzdCBwcmV2aW91c2x5IGlzc3VlZCBpbiB0aGUgc2FtZSBkaXJlY3Rpb24uXG4gICAgICovXG4gICAgcmVxdWVzdElkOiBSZXF1ZXN0SWRTY2hlbWEsXG4gICAgLyoqXG4gICAgICogQW4gb3B0aW9uYWwgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHJlYXNvbiBmb3IgdGhlIGNhbmNlbGxhdGlvbi4gVGhpcyBNQVkgYmUgbG9nZ2VkIG9yIHByZXNlbnRlZCB0byB0aGUgdXNlci5cbiAgICAgKi9cbiAgICByZWFzb246IHouc3RyaW5nKCkub3B0aW9uYWwoKVxuICB9KVxufSk7XG52YXIgQmFzZU1ldGFkYXRhU2NoZW1hID0gei5vYmplY3Qoe1xuICAvKiogSW50ZW5kZWQgZm9yIHByb2dyYW1tYXRpYyBvciBsb2dpY2FsIHVzZSwgYnV0IHVzZWQgYXMgYSBkaXNwbGF5IG5hbWUgaW4gcGFzdCBzcGVjcyBvciBmYWxsYmFjayAqL1xuICBuYW1lOiB6LnN0cmluZygpLFxuICAvKipcbiAgKiBJbnRlbmRlZCBmb3IgVUkgYW5kIGVuZC11c2VyIGNvbnRleHRzIFx1MjAxNCBvcHRpbWl6ZWQgdG8gYmUgaHVtYW4tcmVhZGFibGUgYW5kIGVhc2lseSB1bmRlcnN0b29kLFxuICAqIGV2ZW4gYnkgdGhvc2UgdW5mYW1pbGlhciB3aXRoIGRvbWFpbi1zcGVjaWZpYyB0ZXJtaW5vbG9neS5cbiAgKlxuICAqIElmIG5vdCBwcm92aWRlZCwgdGhlIG5hbWUgc2hvdWxkIGJlIHVzZWQgZm9yIGRpc3BsYXkgKGV4Y2VwdCBmb3IgVG9vbCxcbiAgKiB3aGVyZSBgYW5ub3RhdGlvbnMudGl0bGVgIHNob3VsZCBiZSBnaXZlbiBwcmVjZWRlbmNlIG92ZXIgdXNpbmcgYG5hbWVgLFxuICAqIGlmIHByZXNlbnQpLlxuICAqL1xuICB0aXRsZTogei5vcHRpb25hbCh6LnN0cmluZygpKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBJbXBsZW1lbnRhdGlvblNjaGVtYSA9IEJhc2VNZXRhZGF0YVNjaGVtYS5leHRlbmQoe1xuICB2ZXJzaW9uOiB6LnN0cmluZygpXG59KTtcbnZhciBDbGllbnRDYXBhYmlsaXRpZXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8qKlxuICAgKiBFeHBlcmltZW50YWwsIG5vbi1zdGFuZGFyZCBjYXBhYmlsaXRpZXMgdGhhdCB0aGUgY2xpZW50IHN1cHBvcnRzLlxuICAgKi9cbiAgZXhwZXJpbWVudGFsOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKSxcbiAgLyoqXG4gICAqIFByZXNlbnQgaWYgdGhlIGNsaWVudCBzdXBwb3J0cyBzYW1wbGluZyBmcm9tIGFuIExMTS5cbiAgICovXG4gIHNhbXBsaW5nOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKSxcbiAgLyoqXG4gICAqIFByZXNlbnQgaWYgdGhlIGNsaWVudCBzdXBwb3J0cyBlbGljaXRpbmcgdXNlciBpbnB1dC5cbiAgICovXG4gIGVsaWNpdGF0aW9uOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKSxcbiAgLyoqXG4gICAqIFByZXNlbnQgaWYgdGhlIGNsaWVudCBzdXBwb3J0cyBsaXN0aW5nIHJvb3RzLlxuICAgKi9cbiAgcm9vdHM6IHoub3B0aW9uYWwoei5vYmplY3Qoe1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNsaWVudCBzdXBwb3J0cyBpc3N1aW5nIG5vdGlmaWNhdGlvbnMgZm9yIGNoYW5nZXMgdG8gdGhlIHJvb3RzIGxpc3QuXG4gICAgICovXG4gICAgbGlzdENoYW5nZWQ6IHoub3B0aW9uYWwoei5ib29sZWFuKCkpXG4gIH0pLnBhc3N0aHJvdWdoKCkpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIEluaXRpYWxpemVSZXF1ZXN0U2NoZW1hID0gUmVxdWVzdFNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcImluaXRpYWxpemVcIiksXG4gIHBhcmFtczogQmFzZVJlcXVlc3RQYXJhbXNTY2hlbWEuZXh0ZW5kKHtcbiAgICAvKipcbiAgICAgKiBUaGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIE1vZGVsIENvbnRleHQgUHJvdG9jb2wgdGhhdCB0aGUgY2xpZW50IHN1cHBvcnRzLiBUaGUgY2xpZW50IE1BWSBkZWNpZGUgdG8gc3VwcG9ydCBvbGRlciB2ZXJzaW9ucyBhcyB3ZWxsLlxuICAgICAqL1xuICAgIHByb3RvY29sVmVyc2lvbjogei5zdHJpbmcoKSxcbiAgICBjYXBhYmlsaXRpZXM6IENsaWVudENhcGFiaWxpdGllc1NjaGVtYSxcbiAgICBjbGllbnRJbmZvOiBJbXBsZW1lbnRhdGlvblNjaGVtYVxuICB9KVxufSk7XG52YXIgaXNJbml0aWFsaXplUmVxdWVzdCA9ICh2YWx1ZSkgPT4gSW5pdGlhbGl6ZVJlcXVlc3RTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzO1xudmFyIFNlcnZlckNhcGFiaWxpdGllc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIEV4cGVyaW1lbnRhbCwgbm9uLXN0YW5kYXJkIGNhcGFiaWxpdGllcyB0aGF0IHRoZSBzZXJ2ZXIgc3VwcG9ydHMuXG4gICAqL1xuICBleHBlcmltZW50YWw6IHoub3B0aW9uYWwoei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpLFxuICAvKipcbiAgICogUHJlc2VudCBpZiB0aGUgc2VydmVyIHN1cHBvcnRzIHNlbmRpbmcgbG9nIG1lc3NhZ2VzIHRvIHRoZSBjbGllbnQuXG4gICAqL1xuICBsb2dnaW5nOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKSxcbiAgLyoqXG4gICAqIFByZXNlbnQgaWYgdGhlIHNlcnZlciBzdXBwb3J0cyBzZW5kaW5nIGNvbXBsZXRpb25zIHRvIHRoZSBjbGllbnQuXG4gICAqL1xuICBjb21wbGV0aW9uczogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSksXG4gIC8qKlxuICAgKiBQcmVzZW50IGlmIHRoZSBzZXJ2ZXIgb2ZmZXJzIGFueSBwcm9tcHQgdGVtcGxhdGVzLlxuICAgKi9cbiAgcHJvbXB0czogei5vcHRpb25hbCh6Lm9iamVjdCh7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGlzIHNlcnZlciBzdXBwb3J0cyBpc3N1aW5nIG5vdGlmaWNhdGlvbnMgZm9yIGNoYW5nZXMgdG8gdGhlIHByb21wdCBsaXN0LlxuICAgICAqL1xuICAgIGxpc3RDaGFuZ2VkOiB6Lm9wdGlvbmFsKHouYm9vbGVhbigpKVxuICB9KS5wYXNzdGhyb3VnaCgpKSxcbiAgLyoqXG4gICAqIFByZXNlbnQgaWYgdGhlIHNlcnZlciBvZmZlcnMgYW55IHJlc291cmNlcyB0byByZWFkLlxuICAgKi9cbiAgcmVzb3VyY2VzOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoaXMgc2VydmVyIHN1cHBvcnRzIGNsaWVudHMgc3Vic2NyaWJpbmcgdG8gcmVzb3VyY2UgdXBkYXRlcy5cbiAgICAgKi9cbiAgICBzdWJzY3JpYmU6IHoub3B0aW9uYWwoei5ib29sZWFuKCkpLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhpcyBzZXJ2ZXIgc3VwcG9ydHMgaXNzdWluZyBub3RpZmljYXRpb25zIGZvciBjaGFuZ2VzIHRvIHRoZSByZXNvdXJjZSBsaXN0LlxuICAgICAqL1xuICAgIGxpc3RDaGFuZ2VkOiB6Lm9wdGlvbmFsKHouYm9vbGVhbigpKVxuICB9KS5wYXNzdGhyb3VnaCgpKSxcbiAgLyoqXG4gICAqIFByZXNlbnQgaWYgdGhlIHNlcnZlciBvZmZlcnMgYW55IHRvb2xzIHRvIGNhbGwuXG4gICAqL1xuICB0b29sczogei5vcHRpb25hbCh6Lm9iamVjdCh7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGlzIHNlcnZlciBzdXBwb3J0cyBpc3N1aW5nIG5vdGlmaWNhdGlvbnMgZm9yIGNoYW5nZXMgdG8gdGhlIHRvb2wgbGlzdC5cbiAgICAgKi9cbiAgICBsaXN0Q2hhbmdlZDogei5vcHRpb25hbCh6LmJvb2xlYW4oKSlcbiAgfSkucGFzc3Rocm91Z2goKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgSW5pdGlhbGl6ZVJlc3VsdFNjaGVtYSA9IFJlc3VsdFNjaGVtYS5leHRlbmQoe1xuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIE1vZGVsIENvbnRleHQgUHJvdG9jb2wgdGhhdCB0aGUgc2VydmVyIHdhbnRzIHRvIHVzZS4gVGhpcyBtYXkgbm90IG1hdGNoIHRoZSB2ZXJzaW9uIHRoYXQgdGhlIGNsaWVudCByZXF1ZXN0ZWQuIElmIHRoZSBjbGllbnQgY2Fubm90IHN1cHBvcnQgdGhpcyB2ZXJzaW9uLCBpdCBNVVNUIGRpc2Nvbm5lY3QuXG4gICAqL1xuICBwcm90b2NvbFZlcnNpb246IHouc3RyaW5nKCksXG4gIGNhcGFiaWxpdGllczogU2VydmVyQ2FwYWJpbGl0aWVzU2NoZW1hLFxuICBzZXJ2ZXJJbmZvOiBJbXBsZW1lbnRhdGlvblNjaGVtYSxcbiAgLyoqXG4gICAqIEluc3RydWN0aW9ucyBkZXNjcmliaW5nIGhvdyB0byB1c2UgdGhlIHNlcnZlciBhbmQgaXRzIGZlYXR1cmVzLlxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIGJ5IGNsaWVudHMgdG8gaW1wcm92ZSB0aGUgTExNJ3MgdW5kZXJzdGFuZGluZyBvZiBhdmFpbGFibGUgdG9vbHMsIHJlc291cmNlcywgZXRjLiBJdCBjYW4gYmUgdGhvdWdodCBvZiBsaWtlIGEgXCJoaW50XCIgdG8gdGhlIG1vZGVsLiBGb3IgZXhhbXBsZSwgdGhpcyBpbmZvcm1hdGlvbiBNQVkgYmUgYWRkZWQgdG8gdGhlIHN5c3RlbSBwcm9tcHQuXG4gICAqL1xuICBpbnN0cnVjdGlvbnM6IHoub3B0aW9uYWwoei5zdHJpbmcoKSlcbn0pO1xudmFyIEluaXRpYWxpemVkTm90aWZpY2F0aW9uU2NoZW1hID0gTm90aWZpY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwibm90aWZpY2F0aW9ucy9pbml0aWFsaXplZFwiKVxufSk7XG52YXIgUGluZ1JlcXVlc3RTY2hlbWEgPSBSZXF1ZXN0U2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwicGluZ1wiKVxufSk7XG52YXIgUHJvZ3Jlc3NTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8qKlxuICAgKiBUaGUgcHJvZ3Jlc3MgdGh1cyBmYXIuIFRoaXMgc2hvdWxkIGluY3JlYXNlIGV2ZXJ5IHRpbWUgcHJvZ3Jlc3MgaXMgbWFkZSwgZXZlbiBpZiB0aGUgdG90YWwgaXMgdW5rbm93bi5cbiAgICovXG4gIHByb2dyZXNzOiB6Lm51bWJlcigpLFxuICAvKipcbiAgICogVG90YWwgbnVtYmVyIG9mIGl0ZW1zIHRvIHByb2Nlc3MgKG9yIHRvdGFsIHByb2dyZXNzIHJlcXVpcmVkKSwgaWYga25vd24uXG4gICAqL1xuICB0b3RhbDogei5vcHRpb25hbCh6Lm51bWJlcigpKSxcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUgY3VycmVudCBwcm9ncmVzcy5cbiAgICovXG4gIG1lc3NhZ2U6IHoub3B0aW9uYWwoei5zdHJpbmcoKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgUHJvZ3Jlc3NOb3RpZmljYXRpb25TY2hlbWEgPSBOb3RpZmljYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJub3RpZmljYXRpb25zL3Byb2dyZXNzXCIpLFxuICBwYXJhbXM6IEJhc2VOb3RpZmljYXRpb25QYXJhbXNTY2hlbWEubWVyZ2UoUHJvZ3Jlc3NTY2hlbWEpLmV4dGVuZCh7XG4gICAgLyoqXG4gICAgICogVGhlIHByb2dyZXNzIHRva2VuIHdoaWNoIHdhcyBnaXZlbiBpbiB0aGUgaW5pdGlhbCByZXF1ZXN0LCB1c2VkIHRvIGFzc29jaWF0ZSB0aGlzIG5vdGlmaWNhdGlvbiB3aXRoIHRoZSByZXF1ZXN0IHRoYXQgaXMgcHJvY2VlZGluZy5cbiAgICAgKi9cbiAgICBwcm9ncmVzc1Rva2VuOiBQcm9ncmVzc1Rva2VuU2NoZW1hXG4gIH0pXG59KTtcbnZhciBQYWdpbmF0ZWRSZXF1ZXN0U2NoZW1hID0gUmVxdWVzdFNjaGVtYS5leHRlbmQoe1xuICBwYXJhbXM6IEJhc2VSZXF1ZXN0UGFyYW1zU2NoZW1hLmV4dGVuZCh7XG4gICAgLyoqXG4gICAgICogQW4gb3BhcXVlIHRva2VuIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCBwYWdpbmF0aW9uIHBvc2l0aW9uLlxuICAgICAqIElmIHByb3ZpZGVkLCB0aGUgc2VydmVyIHNob3VsZCByZXR1cm4gcmVzdWx0cyBzdGFydGluZyBhZnRlciB0aGlzIGN1cnNvci5cbiAgICAgKi9cbiAgICBjdXJzb3I6IHoub3B0aW9uYWwoQ3Vyc29yU2NoZW1hKVxuICB9KS5vcHRpb25hbCgpXG59KTtcbnZhciBQYWdpbmF0ZWRSZXN1bHRTY2hlbWEgPSBSZXN1bHRTY2hlbWEuZXh0ZW5kKHtcbiAgLyoqXG4gICAqIEFuIG9wYXF1ZSB0b2tlbiByZXByZXNlbnRpbmcgdGhlIHBhZ2luYXRpb24gcG9zaXRpb24gYWZ0ZXIgdGhlIGxhc3QgcmV0dXJuZWQgcmVzdWx0LlxuICAgKiBJZiBwcmVzZW50LCB0aGVyZSBtYXkgYmUgbW9yZSByZXN1bHRzIGF2YWlsYWJsZS5cbiAgICovXG4gIG5leHRDdXJzb3I6IHoub3B0aW9uYWwoQ3Vyc29yU2NoZW1hKVxufSk7XG52YXIgUmVzb3VyY2VDb250ZW50c1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIFRoZSBVUkkgb2YgdGhpcyByZXNvdXJjZS5cbiAgICovXG4gIHVyaTogei5zdHJpbmcoKSxcbiAgLyoqXG4gICAqIFRoZSBNSU1FIHR5cGUgb2YgdGhpcyByZXNvdXJjZSwgaWYga25vd24uXG4gICAqL1xuICBtaW1lVHlwZTogei5vcHRpb25hbCh6LnN0cmluZygpKSxcbiAgLyoqXG4gICAqIFNlZSBbTUNQIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2RlbGNvbnRleHRwcm90b2NvbC9tb2RlbGNvbnRleHRwcm90b2NvbC9ibG9iLzQ3MzM5YzAzYzE0M2JiNGVjMDFhMjZlNzIxYTFiOGZlNjY2MzRlYmUvZG9jcy9zcGVjaWZpY2F0aW9uL2RyYWZ0L2Jhc2ljL2luZGV4Lm1keCNnZW5lcmFsLWZpZWxkcylcbiAgICogZm9yIG5vdGVzIG9uIF9tZXRhIHVzYWdlLlxuICAgKi9cbiAgX21ldGE6IHoub3B0aW9uYWwoei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIFRleHRSZXNvdXJjZUNvbnRlbnRzU2NoZW1hID0gUmVzb3VyY2VDb250ZW50c1NjaGVtYS5leHRlbmQoe1xuICAvKipcbiAgICogVGhlIHRleHQgb2YgdGhlIGl0ZW0uIFRoaXMgbXVzdCBvbmx5IGJlIHNldCBpZiB0aGUgaXRlbSBjYW4gYWN0dWFsbHkgYmUgcmVwcmVzZW50ZWQgYXMgdGV4dCAobm90IGJpbmFyeSBkYXRhKS5cbiAgICovXG4gIHRleHQ6IHouc3RyaW5nKClcbn0pO1xudmFyIEJhc2U2NFNjaGVtYSA9IHouc3RyaW5nKCkucmVmaW5lKCh2YWwpID0+IHtcbiAgdHJ5IHtcbiAgICBhdG9iKHZhbCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKF9hKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59LCB7IG1lc3NhZ2U6IFwiSW52YWxpZCBCYXNlNjQgc3RyaW5nXCIgfSk7XG52YXIgQmxvYlJlc291cmNlQ29udGVudHNTY2hlbWEgPSBSZXNvdXJjZUNvbnRlbnRzU2NoZW1hLmV4dGVuZCh7XG4gIC8qKlxuICAgKiBBIGJhc2U2NC1lbmNvZGVkIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGJpbmFyeSBkYXRhIG9mIHRoZSBpdGVtLlxuICAgKi9cbiAgYmxvYjogQmFzZTY0U2NoZW1hXG59KTtcbnZhciBSZXNvdXJjZVNjaGVtYSA9IEJhc2VNZXRhZGF0YVNjaGVtYS5leHRlbmQoe1xuICAvKipcbiAgICogVGhlIFVSSSBvZiB0aGlzIHJlc291cmNlLlxuICAgKi9cbiAgdXJpOiB6LnN0cmluZygpLFxuICAvKipcbiAgICogQSBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoaXMgcmVzb3VyY2UgcmVwcmVzZW50cy5cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZCBieSBjbGllbnRzIHRvIGltcHJvdmUgdGhlIExMTSdzIHVuZGVyc3RhbmRpbmcgb2YgYXZhaWxhYmxlIHJlc291cmNlcy4gSXQgY2FuIGJlIHRob3VnaHQgb2YgbGlrZSBhIFwiaGludFwiIHRvIHRoZSBtb2RlbC5cbiAgICovXG4gIGRlc2NyaXB0aW9uOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICAvKipcbiAgICogVGhlIE1JTUUgdHlwZSBvZiB0aGlzIHJlc291cmNlLCBpZiBrbm93bi5cbiAgICovXG4gIG1pbWVUeXBlOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICAvKipcbiAgICogU2VlIFtNQ1Agc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21vZGVsY29udGV4dHByb3RvY29sL21vZGVsY29udGV4dHByb3RvY29sL2Jsb2IvNDczMzljMDNjMTQzYmI0ZWMwMWEyNmU3MjFhMWI4ZmU2NjYzNGViZS9kb2NzL3NwZWNpZmljYXRpb24vZHJhZnQvYmFzaWMvaW5kZXgubWR4I2dlbmVyYWwtZmllbGRzKVxuICAgKiBmb3Igbm90ZXMgb24gX21ldGEgdXNhZ2UuXG4gICAqL1xuICBfbWV0YTogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSlcbn0pO1xudmFyIFJlc291cmNlVGVtcGxhdGVTY2hlbWEgPSBCYXNlTWV0YWRhdGFTY2hlbWEuZXh0ZW5kKHtcbiAgLyoqXG4gICAqIEEgVVJJIHRlbXBsYXRlIChhY2NvcmRpbmcgdG8gUkZDIDY1NzApIHRoYXQgY2FuIGJlIHVzZWQgdG8gY29uc3RydWN0IHJlc291cmNlIFVSSXMuXG4gICAqL1xuICB1cmlUZW1wbGF0ZTogei5zdHJpbmcoKSxcbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gb2Ygd2hhdCB0aGlzIHRlbXBsYXRlIGlzIGZvci5cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZCBieSBjbGllbnRzIHRvIGltcHJvdmUgdGhlIExMTSdzIHVuZGVyc3RhbmRpbmcgb2YgYXZhaWxhYmxlIHJlc291cmNlcy4gSXQgY2FuIGJlIHRob3VnaHQgb2YgbGlrZSBhIFwiaGludFwiIHRvIHRoZSBtb2RlbC5cbiAgICovXG4gIGRlc2NyaXB0aW9uOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICAvKipcbiAgICogVGhlIE1JTUUgdHlwZSBmb3IgYWxsIHJlc291cmNlcyB0aGF0IG1hdGNoIHRoaXMgdGVtcGxhdGUuIFRoaXMgc2hvdWxkIG9ubHkgYmUgaW5jbHVkZWQgaWYgYWxsIHJlc291cmNlcyBtYXRjaGluZyB0aGlzIHRlbXBsYXRlIGhhdmUgdGhlIHNhbWUgdHlwZS5cbiAgICovXG4gIG1pbWVUeXBlOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICAvKipcbiAgICogU2VlIFtNQ1Agc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21vZGVsY29udGV4dHByb3RvY29sL21vZGVsY29udGV4dHByb3RvY29sL2Jsb2IvNDczMzljMDNjMTQzYmI0ZWMwMWEyNmU3MjFhMWI4ZmU2NjYzNGViZS9kb2NzL3NwZWNpZmljYXRpb24vZHJhZnQvYmFzaWMvaW5kZXgubWR4I2dlbmVyYWwtZmllbGRzKVxuICAgKiBmb3Igbm90ZXMgb24gX21ldGEgdXNhZ2UuXG4gICAqL1xuICBfbWV0YTogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSlcbn0pO1xudmFyIExpc3RSZXNvdXJjZXNSZXF1ZXN0U2NoZW1hID0gUGFnaW5hdGVkUmVxdWVzdFNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcInJlc291cmNlcy9saXN0XCIpXG59KTtcbnZhciBMaXN0UmVzb3VyY2VzUmVzdWx0U2NoZW1hID0gUGFnaW5hdGVkUmVzdWx0U2NoZW1hLmV4dGVuZCh7XG4gIHJlc291cmNlczogei5hcnJheShSZXNvdXJjZVNjaGVtYSlcbn0pO1xudmFyIExpc3RSZXNvdXJjZVRlbXBsYXRlc1JlcXVlc3RTY2hlbWEgPSBQYWdpbmF0ZWRSZXF1ZXN0U2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwicmVzb3VyY2VzL3RlbXBsYXRlcy9saXN0XCIpXG59KTtcbnZhciBMaXN0UmVzb3VyY2VUZW1wbGF0ZXNSZXN1bHRTY2hlbWEgPSBQYWdpbmF0ZWRSZXN1bHRTY2hlbWEuZXh0ZW5kKHtcbiAgcmVzb3VyY2VUZW1wbGF0ZXM6IHouYXJyYXkoUmVzb3VyY2VUZW1wbGF0ZVNjaGVtYSlcbn0pO1xudmFyIFJlYWRSZXNvdXJjZVJlcXVlc3RTY2hlbWEgPSBSZXF1ZXN0U2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwicmVzb3VyY2VzL3JlYWRcIiksXG4gIHBhcmFtczogQmFzZVJlcXVlc3RQYXJhbXNTY2hlbWEuZXh0ZW5kKHtcbiAgICAvKipcbiAgICAgKiBUaGUgVVJJIG9mIHRoZSByZXNvdXJjZSB0byByZWFkLiBUaGUgVVJJIGNhbiB1c2UgYW55IHByb3RvY29sOyBpdCBpcyB1cCB0byB0aGUgc2VydmVyIGhvdyB0byBpbnRlcnByZXQgaXQuXG4gICAgICovXG4gICAgdXJpOiB6LnN0cmluZygpXG4gIH0pXG59KTtcbnZhciBSZWFkUmVzb3VyY2VSZXN1bHRTY2hlbWEgPSBSZXN1bHRTY2hlbWEuZXh0ZW5kKHtcbiAgY29udGVudHM6IHouYXJyYXkoei51bmlvbihbVGV4dFJlc291cmNlQ29udGVudHNTY2hlbWEsIEJsb2JSZXNvdXJjZUNvbnRlbnRzU2NoZW1hXSkpXG59KTtcbnZhciBSZXNvdXJjZUxpc3RDaGFuZ2VkTm90aWZpY2F0aW9uU2NoZW1hID0gTm90aWZpY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwibm90aWZpY2F0aW9ucy9yZXNvdXJjZXMvbGlzdF9jaGFuZ2VkXCIpXG59KTtcbnZhciBTdWJzY3JpYmVSZXF1ZXN0U2NoZW1hID0gUmVxdWVzdFNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcInJlc291cmNlcy9zdWJzY3JpYmVcIiksXG4gIHBhcmFtczogQmFzZVJlcXVlc3RQYXJhbXNTY2hlbWEuZXh0ZW5kKHtcbiAgICAvKipcbiAgICAgKiBUaGUgVVJJIG9mIHRoZSByZXNvdXJjZSB0byBzdWJzY3JpYmUgdG8uIFRoZSBVUkkgY2FuIHVzZSBhbnkgcHJvdG9jb2w7IGl0IGlzIHVwIHRvIHRoZSBzZXJ2ZXIgaG93IHRvIGludGVycHJldCBpdC5cbiAgICAgKi9cbiAgICB1cmk6IHouc3RyaW5nKClcbiAgfSlcbn0pO1xudmFyIFVuc3Vic2NyaWJlUmVxdWVzdFNjaGVtYSA9IFJlcXVlc3RTY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJyZXNvdXJjZXMvdW5zdWJzY3JpYmVcIiksXG4gIHBhcmFtczogQmFzZVJlcXVlc3RQYXJhbXNTY2hlbWEuZXh0ZW5kKHtcbiAgICAvKipcbiAgICAgKiBUaGUgVVJJIG9mIHRoZSByZXNvdXJjZSB0byB1bnN1YnNjcmliZSBmcm9tLlxuICAgICAqL1xuICAgIHVyaTogei5zdHJpbmcoKVxuICB9KVxufSk7XG52YXIgUmVzb3VyY2VVcGRhdGVkTm90aWZpY2F0aW9uU2NoZW1hID0gTm90aWZpY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwibm90aWZpY2F0aW9ucy9yZXNvdXJjZXMvdXBkYXRlZFwiKSxcbiAgcGFyYW1zOiBCYXNlTm90aWZpY2F0aW9uUGFyYW1zU2NoZW1hLmV4dGVuZCh7XG4gICAgLyoqXG4gICAgICogVGhlIFVSSSBvZiB0aGUgcmVzb3VyY2UgdGhhdCBoYXMgYmVlbiB1cGRhdGVkLiBUaGlzIG1pZ2h0IGJlIGEgc3ViLXJlc291cmNlIG9mIHRoZSBvbmUgdGhhdCB0aGUgY2xpZW50IGFjdHVhbGx5IHN1YnNjcmliZWQgdG8uXG4gICAgICovXG4gICAgdXJpOiB6LnN0cmluZygpXG4gIH0pXG59KTtcbnZhciBQcm9tcHRBcmd1bWVudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhcmd1bWVudC5cbiAgICovXG4gIG5hbWU6IHouc3RyaW5nKCksXG4gIC8qKlxuICAgKiBBIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBhcmd1bWVudC5cbiAgICovXG4gIGRlc2NyaXB0aW9uOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGFyZ3VtZW50IG11c3QgYmUgcHJvdmlkZWQuXG4gICAqL1xuICByZXF1aXJlZDogei5vcHRpb25hbCh6LmJvb2xlYW4oKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgUHJvbXB0U2NoZW1hID0gQmFzZU1ldGFkYXRhU2NoZW1hLmV4dGVuZCh7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoaXMgcHJvbXB0IHByb3ZpZGVzXG4gICAqL1xuICBkZXNjcmlwdGlvbjogei5vcHRpb25hbCh6LnN0cmluZygpKSxcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBhcmd1bWVudHMgdG8gdXNlIGZvciB0ZW1wbGF0aW5nIHRoZSBwcm9tcHQuXG4gICAqL1xuICBhcmd1bWVudHM6IHoub3B0aW9uYWwoei5hcnJheShQcm9tcHRBcmd1bWVudFNjaGVtYSkpLFxuICAvKipcbiAgICogU2VlIFtNQ1Agc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21vZGVsY29udGV4dHByb3RvY29sL21vZGVsY29udGV4dHByb3RvY29sL2Jsb2IvNDczMzljMDNjMTQzYmI0ZWMwMWEyNmU3MjFhMWI4ZmU2NjYzNGViZS9kb2NzL3NwZWNpZmljYXRpb24vZHJhZnQvYmFzaWMvaW5kZXgubWR4I2dlbmVyYWwtZmllbGRzKVxuICAgKiBmb3Igbm90ZXMgb24gX21ldGEgdXNhZ2UuXG4gICAqL1xuICBfbWV0YTogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSlcbn0pO1xudmFyIExpc3RQcm9tcHRzUmVxdWVzdFNjaGVtYSA9IFBhZ2luYXRlZFJlcXVlc3RTY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJwcm9tcHRzL2xpc3RcIilcbn0pO1xudmFyIExpc3RQcm9tcHRzUmVzdWx0U2NoZW1hID0gUGFnaW5hdGVkUmVzdWx0U2NoZW1hLmV4dGVuZCh7XG4gIHByb21wdHM6IHouYXJyYXkoUHJvbXB0U2NoZW1hKVxufSk7XG52YXIgR2V0UHJvbXB0UmVxdWVzdFNjaGVtYSA9IFJlcXVlc3RTY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJwcm9tcHRzL2dldFwiKSxcbiAgcGFyYW1zOiBCYXNlUmVxdWVzdFBhcmFtc1NjaGVtYS5leHRlbmQoe1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9tcHQgb3IgcHJvbXB0IHRlbXBsYXRlLlxuICAgICAqL1xuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgLyoqXG4gICAgICogQXJndW1lbnRzIHRvIHVzZSBmb3IgdGVtcGxhdGluZyB0aGUgcHJvbXB0LlxuICAgICAqL1xuICAgIGFyZ3VtZW50czogei5vcHRpb25hbCh6LnJlY29yZCh6LnN0cmluZygpKSlcbiAgfSlcbn0pO1xudmFyIFRleHRDb250ZW50U2NoZW1hID0gei5vYmplY3Qoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJ0ZXh0XCIpLFxuICAvKipcbiAgICogVGhlIHRleHQgY29udGVudCBvZiB0aGUgbWVzc2FnZS5cbiAgICovXG4gIHRleHQ6IHouc3RyaW5nKCksXG4gIC8qKlxuICAgKiBTZWUgW01DUCBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbW9kZWxjb250ZXh0cHJvdG9jb2wvbW9kZWxjb250ZXh0cHJvdG9jb2wvYmxvYi80NzMzOWMwM2MxNDNiYjRlYzAxYTI2ZTcyMWExYjhmZTY2NjM0ZWJlL2RvY3Mvc3BlY2lmaWNhdGlvbi9kcmFmdC9iYXNpYy9pbmRleC5tZHgjZ2VuZXJhbC1maWVsZHMpXG4gICAqIGZvciBub3RlcyBvbiBfbWV0YSB1c2FnZS5cbiAgICovXG4gIF9tZXRhOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBJbWFnZUNvbnRlbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcImltYWdlXCIpLFxuICAvKipcbiAgICogVGhlIGJhc2U2NC1lbmNvZGVkIGltYWdlIGRhdGEuXG4gICAqL1xuICBkYXRhOiBCYXNlNjRTY2hlbWEsXG4gIC8qKlxuICAgKiBUaGUgTUlNRSB0eXBlIG9mIHRoZSBpbWFnZS4gRGlmZmVyZW50IHByb3ZpZGVycyBtYXkgc3VwcG9ydCBkaWZmZXJlbnQgaW1hZ2UgdHlwZXMuXG4gICAqL1xuICBtaW1lVHlwZTogei5zdHJpbmcoKSxcbiAgLyoqXG4gICAqIFNlZSBbTUNQIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2RlbGNvbnRleHRwcm90b2NvbC9tb2RlbGNvbnRleHRwcm90b2NvbC9ibG9iLzQ3MzM5YzAzYzE0M2JiNGVjMDFhMjZlNzIxYTFiOGZlNjY2MzRlYmUvZG9jcy9zcGVjaWZpY2F0aW9uL2RyYWZ0L2Jhc2ljL2luZGV4Lm1keCNnZW5lcmFsLWZpZWxkcylcbiAgICogZm9yIG5vdGVzIG9uIF9tZXRhIHVzYWdlLlxuICAgKi9cbiAgX21ldGE6IHoub3B0aW9uYWwoei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIEF1ZGlvQ29udGVudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdHlwZTogei5saXRlcmFsKFwiYXVkaW9cIiksXG4gIC8qKlxuICAgKiBUaGUgYmFzZTY0LWVuY29kZWQgYXVkaW8gZGF0YS5cbiAgICovXG4gIGRhdGE6IEJhc2U2NFNjaGVtYSxcbiAgLyoqXG4gICAqIFRoZSBNSU1FIHR5cGUgb2YgdGhlIGF1ZGlvLiBEaWZmZXJlbnQgcHJvdmlkZXJzIG1heSBzdXBwb3J0IGRpZmZlcmVudCBhdWRpbyB0eXBlcy5cbiAgICovXG4gIG1pbWVUeXBlOiB6LnN0cmluZygpLFxuICAvKipcbiAgICogU2VlIFtNQ1Agc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21vZGVsY29udGV4dHByb3RvY29sL21vZGVsY29udGV4dHByb3RvY29sL2Jsb2IvNDczMzljMDNjMTQzYmI0ZWMwMWEyNmU3MjFhMWI4ZmU2NjYzNGViZS9kb2NzL3NwZWNpZmljYXRpb24vZHJhZnQvYmFzaWMvaW5kZXgubWR4I2dlbmVyYWwtZmllbGRzKVxuICAgKiBmb3Igbm90ZXMgb24gX21ldGEgdXNhZ2UuXG4gICAqL1xuICBfbWV0YTogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgRW1iZWRkZWRSZXNvdXJjZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdHlwZTogei5saXRlcmFsKFwicmVzb3VyY2VcIiksXG4gIHJlc291cmNlOiB6LnVuaW9uKFtUZXh0UmVzb3VyY2VDb250ZW50c1NjaGVtYSwgQmxvYlJlc291cmNlQ29udGVudHNTY2hlbWFdKSxcbiAgLyoqXG4gICAqIFNlZSBbTUNQIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2RlbGNvbnRleHRwcm90b2NvbC9tb2RlbGNvbnRleHRwcm90b2NvbC9ibG9iLzQ3MzM5YzAzYzE0M2JiNGVjMDFhMjZlNzIxYTFiOGZlNjY2MzRlYmUvZG9jcy9zcGVjaWZpY2F0aW9uL2RyYWZ0L2Jhc2ljL2luZGV4Lm1keCNnZW5lcmFsLWZpZWxkcylcbiAgICogZm9yIG5vdGVzIG9uIF9tZXRhIHVzYWdlLlxuICAgKi9cbiAgX21ldGE6IHoub3B0aW9uYWwoei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIFJlc291cmNlTGlua1NjaGVtYSA9IFJlc291cmNlU2NoZW1hLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInJlc291cmNlX2xpbmtcIilcbn0pO1xudmFyIENvbnRlbnRCbG9ja1NjaGVtYSA9IHoudW5pb24oW1xuICBUZXh0Q29udGVudFNjaGVtYSxcbiAgSW1hZ2VDb250ZW50U2NoZW1hLFxuICBBdWRpb0NvbnRlbnRTY2hlbWEsXG4gIFJlc291cmNlTGlua1NjaGVtYSxcbiAgRW1iZWRkZWRSZXNvdXJjZVNjaGVtYVxuXSk7XG52YXIgUHJvbXB0TWVzc2FnZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgcm9sZTogei5lbnVtKFtcInVzZXJcIiwgXCJhc3Npc3RhbnRcIl0pLFxuICBjb250ZW50OiBDb250ZW50QmxvY2tTY2hlbWFcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgR2V0UHJvbXB0UmVzdWx0U2NoZW1hID0gUmVzdWx0U2NoZW1hLmV4dGVuZCh7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhlIHByb21wdC5cbiAgICovXG4gIGRlc2NyaXB0aW9uOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICBtZXNzYWdlczogei5hcnJheShQcm9tcHRNZXNzYWdlU2NoZW1hKVxufSk7XG52YXIgUHJvbXB0TGlzdENoYW5nZWROb3RpZmljYXRpb25TY2hlbWEgPSBOb3RpZmljYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJub3RpZmljYXRpb25zL3Byb21wdHMvbGlzdF9jaGFuZ2VkXCIpXG59KTtcbnZhciBUb29sQW5ub3RhdGlvbnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8qKlxuICAgKiBBIGh1bWFuLXJlYWRhYmxlIHRpdGxlIGZvciB0aGUgdG9vbC5cbiAgICovXG4gIHRpdGxlOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIHRvb2wgZG9lcyBub3QgbW9kaWZ5IGl0cyBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogRGVmYXVsdDogZmFsc2VcbiAgICovXG4gIHJlYWRPbmx5SGludDogei5vcHRpb25hbCh6LmJvb2xlYW4oKSksXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgdG9vbCBtYXkgcGVyZm9ybSBkZXN0cnVjdGl2ZSB1cGRhdGVzIHRvIGl0cyBlbnZpcm9ubWVudC5cbiAgICogSWYgZmFsc2UsIHRoZSB0b29sIHBlcmZvcm1zIG9ubHkgYWRkaXRpdmUgdXBkYXRlcy5cbiAgICpcbiAgICogKFRoaXMgcHJvcGVydHkgaXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gYHJlYWRPbmx5SGludCA9PSBmYWxzZWApXG4gICAqXG4gICAqIERlZmF1bHQ6IHRydWVcbiAgICovXG4gIGRlc3RydWN0aXZlSGludDogei5vcHRpb25hbCh6LmJvb2xlYW4oKSksXG4gIC8qKlxuICAgKiBJZiB0cnVlLCBjYWxsaW5nIHRoZSB0b29sIHJlcGVhdGVkbHkgd2l0aCB0aGUgc2FtZSBhcmd1bWVudHNcbiAgICogd2lsbCBoYXZlIG5vIGFkZGl0aW9uYWwgZWZmZWN0IG9uIHRoZSBpdHMgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIChUaGlzIHByb3BlcnR5IGlzIG1lYW5pbmdmdWwgb25seSB3aGVuIGByZWFkT25seUhpbnQgPT0gZmFsc2VgKVxuICAgKlxuICAgKiBEZWZhdWx0OiBmYWxzZVxuICAgKi9cbiAgaWRlbXBvdGVudEhpbnQ6IHoub3B0aW9uYWwoei5ib29sZWFuKCkpLFxuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhpcyB0b29sIG1heSBpbnRlcmFjdCB3aXRoIGFuIFwib3BlbiB3b3JsZFwiIG9mIGV4dGVybmFsXG4gICAqIGVudGl0aWVzLiBJZiBmYWxzZSwgdGhlIHRvb2wncyBkb21haW4gb2YgaW50ZXJhY3Rpb24gaXMgY2xvc2VkLlxuICAgKiBGb3IgZXhhbXBsZSwgdGhlIHdvcmxkIG9mIGEgd2ViIHNlYXJjaCB0b29sIGlzIG9wZW4sIHdoZXJlYXMgdGhhdFxuICAgKiBvZiBhIG1lbW9yeSB0b29sIGlzIG5vdC5cbiAgICpcbiAgICogRGVmYXVsdDogdHJ1ZVxuICAgKi9cbiAgb3BlbldvcmxkSGludDogei5vcHRpb25hbCh6LmJvb2xlYW4oKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgVG9vbFNjaGVtYSA9IEJhc2VNZXRhZGF0YVNjaGVtYS5leHRlbmQoe1xuICAvKipcbiAgICogQSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgdG9vbC5cbiAgICovXG4gIGRlc2NyaXB0aW9uOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICAvKipcbiAgICogQSBKU09OIFNjaGVtYSBvYmplY3QgZGVmaW5pbmcgdGhlIGV4cGVjdGVkIHBhcmFtZXRlcnMgZm9yIHRoZSB0b29sLlxuICAgKi9cbiAgaW5wdXRTY2hlbWE6IHoub2JqZWN0KHtcbiAgICB0eXBlOiB6LmxpdGVyYWwoXCJvYmplY3RcIiksXG4gICAgcHJvcGVydGllczogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSksXG4gICAgcmVxdWlyZWQ6IHoub3B0aW9uYWwoei5hcnJheSh6LnN0cmluZygpKSlcbiAgfSkucGFzc3Rocm91Z2goKSxcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIEpTT04gU2NoZW1hIG9iamVjdCBkZWZpbmluZyB0aGUgc3RydWN0dXJlIG9mIHRoZSB0b29sJ3Mgb3V0cHV0IHJldHVybmVkIGluXG4gICAqIHRoZSBzdHJ1Y3R1cmVkQ29udGVudCBmaWVsZCBvZiBhIENhbGxUb29sUmVzdWx0LlxuICAgKi9cbiAgb3V0cHV0U2NoZW1hOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHtcbiAgICB0eXBlOiB6LmxpdGVyYWwoXCJvYmplY3RcIiksXG4gICAgcHJvcGVydGllczogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSksXG4gICAgcmVxdWlyZWQ6IHoub3B0aW9uYWwoei5hcnJheSh6LnN0cmluZygpKSlcbiAgfSkucGFzc3Rocm91Z2goKSksXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhZGRpdGlvbmFsIHRvb2wgaW5mb3JtYXRpb24uXG4gICAqL1xuICBhbm5vdGF0aW9uczogei5vcHRpb25hbChUb29sQW5ub3RhdGlvbnNTY2hlbWEpLFxuICAvKipcbiAgICogU2VlIFtNQ1Agc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21vZGVsY29udGV4dHByb3RvY29sL21vZGVsY29udGV4dHByb3RvY29sL2Jsb2IvNDczMzljMDNjMTQzYmI0ZWMwMWEyNmU3MjFhMWI4ZmU2NjYzNGViZS9kb2NzL3NwZWNpZmljYXRpb24vZHJhZnQvYmFzaWMvaW5kZXgubWR4I2dlbmVyYWwtZmllbGRzKVxuICAgKiBmb3Igbm90ZXMgb24gX21ldGEgdXNhZ2UuXG4gICAqL1xuICBfbWV0YTogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSlcbn0pO1xudmFyIExpc3RUb29sc1JlcXVlc3RTY2hlbWEgPSBQYWdpbmF0ZWRSZXF1ZXN0U2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwidG9vbHMvbGlzdFwiKVxufSk7XG52YXIgTGlzdFRvb2xzUmVzdWx0U2NoZW1hID0gUGFnaW5hdGVkUmVzdWx0U2NoZW1hLmV4dGVuZCh7XG4gIHRvb2xzOiB6LmFycmF5KFRvb2xTY2hlbWEpXG59KTtcbnZhciBDYWxsVG9vbFJlc3VsdFNjaGVtYSA9IFJlc3VsdFNjaGVtYS5leHRlbmQoe1xuICAvKipcbiAgICogQSBsaXN0IG9mIGNvbnRlbnQgb2JqZWN0cyB0aGF0IHJlcHJlc2VudCB0aGUgcmVzdWx0IG9mIHRoZSB0b29sIGNhbGwuXG4gICAqXG4gICAqIElmIHRoZSBUb29sIGRvZXMgbm90IGRlZmluZSBhbiBvdXRwdXRTY2hlbWEsIHRoaXMgZmllbGQgTVVTVCBiZSBwcmVzZW50IGluIHRoZSByZXN1bHQuXG4gICAqIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgdGhpcyBmaWVsZCBpcyBhbHdheXMgcHJlc2VudCwgYnV0IGl0IG1heSBiZSBlbXB0eS5cbiAgICovXG4gIGNvbnRlbnQ6IHouYXJyYXkoQ29udGVudEJsb2NrU2NoZW1hKS5kZWZhdWx0KFtdKSxcbiAgLyoqXG4gICAqIEFuIG9iamVjdCBjb250YWluaW5nIHN0cnVjdHVyZWQgdG9vbCBvdXRwdXQuXG4gICAqXG4gICAqIElmIHRoZSBUb29sIGRlZmluZXMgYW4gb3V0cHV0U2NoZW1hLCB0aGlzIGZpZWxkIE1VU1QgYmUgcHJlc2VudCBpbiB0aGUgcmVzdWx0LCBhbmQgY29udGFpbiBhIEpTT04gb2JqZWN0IHRoYXQgbWF0Y2hlcyB0aGUgc2NoZW1hLlxuICAgKi9cbiAgc3RydWN0dXJlZENvbnRlbnQ6IHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpLm9wdGlvbmFsKCksXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0b29sIGNhbGwgZW5kZWQgaW4gYW4gZXJyb3IuXG4gICAqXG4gICAqIElmIG5vdCBzZXQsIHRoaXMgaXMgYXNzdW1lZCB0byBiZSBmYWxzZSAodGhlIGNhbGwgd2FzIHN1Y2Nlc3NmdWwpLlxuICAgKlxuICAgKiBBbnkgZXJyb3JzIHRoYXQgb3JpZ2luYXRlIGZyb20gdGhlIHRvb2wgU0hPVUxEIGJlIHJlcG9ydGVkIGluc2lkZSB0aGUgcmVzdWx0XG4gICAqIG9iamVjdCwgd2l0aCBgaXNFcnJvcmAgc2V0IHRvIHRydWUsIF9ub3RfIGFzIGFuIE1DUCBwcm90b2NvbC1sZXZlbCBlcnJvclxuICAgKiByZXNwb25zZS4gT3RoZXJ3aXNlLCB0aGUgTExNIHdvdWxkIG5vdCBiZSBhYmxlIHRvIHNlZSB0aGF0IGFuIGVycm9yIG9jY3VycmVkXG4gICAqIGFuZCBzZWxmLWNvcnJlY3QuXG4gICAqXG4gICAqIEhvd2V2ZXIsIGFueSBlcnJvcnMgaW4gX2ZpbmRpbmdfIHRoZSB0b29sLCBhbiBlcnJvciBpbmRpY2F0aW5nIHRoYXQgdGhlXG4gICAqIHNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IHRvb2wgY2FsbHMsIG9yIGFueSBvdGhlciBleGNlcHRpb25hbCBjb25kaXRpb25zLFxuICAgKiBzaG91bGQgYmUgcmVwb3J0ZWQgYXMgYW4gTUNQIGVycm9yIHJlc3BvbnNlLlxuICAgKi9cbiAgaXNFcnJvcjogei5vcHRpb25hbCh6LmJvb2xlYW4oKSlcbn0pO1xudmFyIENvbXBhdGliaWxpdHlDYWxsVG9vbFJlc3VsdFNjaGVtYSA9IENhbGxUb29sUmVzdWx0U2NoZW1hLm9yKFJlc3VsdFNjaGVtYS5leHRlbmQoe1xuICB0b29sUmVzdWx0OiB6LnVua25vd24oKVxufSkpO1xudmFyIENhbGxUb29sUmVxdWVzdFNjaGVtYSA9IFJlcXVlc3RTY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJ0b29scy9jYWxsXCIpLFxuICBwYXJhbXM6IEJhc2VSZXF1ZXN0UGFyYW1zU2NoZW1hLmV4dGVuZCh7XG4gICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICBhcmd1bWVudHM6IHoub3B0aW9uYWwoei5yZWNvcmQoei51bmtub3duKCkpKVxuICB9KVxufSk7XG52YXIgVG9vbExpc3RDaGFuZ2VkTm90aWZpY2F0aW9uU2NoZW1hID0gTm90aWZpY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwibm90aWZpY2F0aW9ucy90b29scy9saXN0X2NoYW5nZWRcIilcbn0pO1xudmFyIExvZ2dpbmdMZXZlbFNjaGVtYSA9IHouZW51bShbXG4gIFwiZGVidWdcIixcbiAgXCJpbmZvXCIsXG4gIFwibm90aWNlXCIsXG4gIFwid2FybmluZ1wiLFxuICBcImVycm9yXCIsXG4gIFwiY3JpdGljYWxcIixcbiAgXCJhbGVydFwiLFxuICBcImVtZXJnZW5jeVwiXG5dKTtcbnZhciBTZXRMZXZlbFJlcXVlc3RTY2hlbWEgPSBSZXF1ZXN0U2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwibG9nZ2luZy9zZXRMZXZlbFwiKSxcbiAgcGFyYW1zOiBCYXNlUmVxdWVzdFBhcmFtc1NjaGVtYS5leHRlbmQoe1xuICAgIC8qKlxuICAgICAqIFRoZSBsZXZlbCBvZiBsb2dnaW5nIHRoYXQgdGhlIGNsaWVudCB3YW50cyB0byByZWNlaXZlIGZyb20gdGhlIHNlcnZlci4gVGhlIHNlcnZlciBzaG91bGQgc2VuZCBhbGwgbG9ncyBhdCB0aGlzIGxldmVsIGFuZCBoaWdoZXIgKGkuZS4sIG1vcmUgc2V2ZXJlKSB0byB0aGUgY2xpZW50IGFzIG5vdGlmaWNhdGlvbnMvbG9nZ2luZy9tZXNzYWdlLlxuICAgICAqL1xuICAgIGxldmVsOiBMb2dnaW5nTGV2ZWxTY2hlbWFcbiAgfSlcbn0pO1xudmFyIExvZ2dpbmdNZXNzYWdlTm90aWZpY2F0aW9uU2NoZW1hID0gTm90aWZpY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwibm90aWZpY2F0aW9ucy9tZXNzYWdlXCIpLFxuICBwYXJhbXM6IEJhc2VOb3RpZmljYXRpb25QYXJhbXNTY2hlbWEuZXh0ZW5kKHtcbiAgICAvKipcbiAgICAgKiBUaGUgc2V2ZXJpdHkgb2YgdGhpcyBsb2cgbWVzc2FnZS5cbiAgICAgKi9cbiAgICBsZXZlbDogTG9nZ2luZ0xldmVsU2NoZW1hLFxuICAgIC8qKlxuICAgICAqIEFuIG9wdGlvbmFsIG5hbWUgb2YgdGhlIGxvZ2dlciBpc3N1aW5nIHRoaXMgbWVzc2FnZS5cbiAgICAgKi9cbiAgICBsb2dnZXI6IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgdG8gYmUgbG9nZ2VkLCBzdWNoIGFzIGEgc3RyaW5nIG1lc3NhZ2Ugb3IgYW4gb2JqZWN0LiBBbnkgSlNPTiBzZXJpYWxpemFibGUgdHlwZSBpcyBhbGxvd2VkIGhlcmUuXG4gICAgICovXG4gICAgZGF0YTogei51bmtub3duKClcbiAgfSlcbn0pO1xudmFyIE1vZGVsSGludFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIEEgaGludCBmb3IgYSBtb2RlbCBuYW1lLlxuICAgKi9cbiAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIE1vZGVsUHJlZmVyZW5jZXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBoaW50cyB0byB1c2UgZm9yIG1vZGVsIHNlbGVjdGlvbi5cbiAgICovXG4gIGhpbnRzOiB6Lm9wdGlvbmFsKHouYXJyYXkoTW9kZWxIaW50U2NoZW1hKSksXG4gIC8qKlxuICAgKiBIb3cgbXVjaCB0byBwcmlvcml0aXplIGNvc3Qgd2hlbiBzZWxlY3RpbmcgYSBtb2RlbC5cbiAgICovXG4gIGNvc3RQcmlvcml0eTogei5vcHRpb25hbCh6Lm51bWJlcigpLm1pbigwKS5tYXgoMSkpLFxuICAvKipcbiAgICogSG93IG11Y2ggdG8gcHJpb3JpdGl6ZSBzYW1wbGluZyBzcGVlZCAobGF0ZW5jeSkgd2hlbiBzZWxlY3RpbmcgYSBtb2RlbC5cbiAgICovXG4gIHNwZWVkUHJpb3JpdHk6IHoub3B0aW9uYWwoei5udW1iZXIoKS5taW4oMCkubWF4KDEpKSxcbiAgLyoqXG4gICAqIEhvdyBtdWNoIHRvIHByaW9yaXRpemUgaW50ZWxsaWdlbmNlIGFuZCBjYXBhYmlsaXRpZXMgd2hlbiBzZWxlY3RpbmcgYSBtb2RlbC5cbiAgICovXG4gIGludGVsbGlnZW5jZVByaW9yaXR5OiB6Lm9wdGlvbmFsKHoubnVtYmVyKCkubWluKDApLm1heCgxKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgU2FtcGxpbmdNZXNzYWdlU2NoZW1hID0gei5vYmplY3Qoe1xuICByb2xlOiB6LmVudW0oW1widXNlclwiLCBcImFzc2lzdGFudFwiXSksXG4gIGNvbnRlbnQ6IHoudW5pb24oW1RleHRDb250ZW50U2NoZW1hLCBJbWFnZUNvbnRlbnRTY2hlbWEsIEF1ZGlvQ29udGVudFNjaGVtYV0pXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIENyZWF0ZU1lc3NhZ2VSZXF1ZXN0U2NoZW1hID0gUmVxdWVzdFNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcInNhbXBsaW5nL2NyZWF0ZU1lc3NhZ2VcIiksXG4gIHBhcmFtczogQmFzZVJlcXVlc3RQYXJhbXNTY2hlbWEuZXh0ZW5kKHtcbiAgICBtZXNzYWdlczogei5hcnJheShTYW1wbGluZ01lc3NhZ2VTY2hlbWEpLFxuICAgIC8qKlxuICAgICAqIEFuIG9wdGlvbmFsIHN5c3RlbSBwcm9tcHQgdGhlIHNlcnZlciB3YW50cyB0byB1c2UgZm9yIHNhbXBsaW5nLiBUaGUgY2xpZW50IE1BWSBtb2RpZnkgb3Igb21pdCB0aGlzIHByb21wdC5cbiAgICAgKi9cbiAgICBzeXN0ZW1Qcm9tcHQ6IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gICAgLyoqXG4gICAgICogQSByZXF1ZXN0IHRvIGluY2x1ZGUgY29udGV4dCBmcm9tIG9uZSBvciBtb3JlIE1DUCBzZXJ2ZXJzIChpbmNsdWRpbmcgdGhlIGNhbGxlciksIHRvIGJlIGF0dGFjaGVkIHRvIHRoZSBwcm9tcHQuIFRoZSBjbGllbnQgTUFZIGlnbm9yZSB0aGlzIHJlcXVlc3QuXG4gICAgICovXG4gICAgaW5jbHVkZUNvbnRleHQ6IHoub3B0aW9uYWwoei5lbnVtKFtcIm5vbmVcIiwgXCJ0aGlzU2VydmVyXCIsIFwiYWxsU2VydmVyc1wiXSkpLFxuICAgIHRlbXBlcmF0dXJlOiB6Lm9wdGlvbmFsKHoubnVtYmVyKCkpLFxuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB0b2tlbnMgdG8gc2FtcGxlLCBhcyByZXF1ZXN0ZWQgYnkgdGhlIHNlcnZlci4gVGhlIGNsaWVudCBNQVkgY2hvb3NlIHRvIHNhbXBsZSBmZXdlciB0b2tlbnMgdGhhbiByZXF1ZXN0ZWQuXG4gICAgICovXG4gICAgbWF4VG9rZW5zOiB6Lm51bWJlcigpLmludCgpLFxuICAgIHN0b3BTZXF1ZW5jZXM6IHoub3B0aW9uYWwoei5hcnJheSh6LnN0cmluZygpKSksXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgbWV0YWRhdGEgdG8gcGFzcyB0aHJvdWdoIHRvIHRoZSBMTE0gcHJvdmlkZXIuIFRoZSBmb3JtYXQgb2YgdGhpcyBtZXRhZGF0YSBpcyBwcm92aWRlci1zcGVjaWZpYy5cbiAgICAgKi9cbiAgICBtZXRhZGF0YTogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSksXG4gICAgLyoqXG4gICAgICogVGhlIHNlcnZlcidzIHByZWZlcmVuY2VzIGZvciB3aGljaCBtb2RlbCB0byBzZWxlY3QuXG4gICAgICovXG4gICAgbW9kZWxQcmVmZXJlbmNlczogei5vcHRpb25hbChNb2RlbFByZWZlcmVuY2VzU2NoZW1hKVxuICB9KVxufSk7XG52YXIgQ3JlYXRlTWVzc2FnZVJlc3VsdFNjaGVtYSA9IFJlc3VsdFNjaGVtYS5leHRlbmQoe1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG1vZGVsIHRoYXQgZ2VuZXJhdGVkIHRoZSBtZXNzYWdlLlxuICAgKi9cbiAgbW9kZWw6IHouc3RyaW5nKCksXG4gIC8qKlxuICAgKiBUaGUgcmVhc29uIHdoeSBzYW1wbGluZyBzdG9wcGVkLlxuICAgKi9cbiAgc3RvcFJlYXNvbjogei5vcHRpb25hbCh6LmVudW0oW1wiZW5kVHVyblwiLCBcInN0b3BTZXF1ZW5jZVwiLCBcIm1heFRva2Vuc1wiXSkub3Ioei5zdHJpbmcoKSkpLFxuICByb2xlOiB6LmVudW0oW1widXNlclwiLCBcImFzc2lzdGFudFwiXSksXG4gIGNvbnRlbnQ6IHouZGlzY3JpbWluYXRlZFVuaW9uKFwidHlwZVwiLCBbXG4gICAgVGV4dENvbnRlbnRTY2hlbWEsXG4gICAgSW1hZ2VDb250ZW50U2NoZW1hLFxuICAgIEF1ZGlvQ29udGVudFNjaGVtYVxuICBdKVxufSk7XG52YXIgQm9vbGVhblNjaGVtYVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdHlwZTogei5saXRlcmFsKFwiYm9vbGVhblwiKSxcbiAgdGl0bGU6IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIGRlc2NyaXB0aW9uOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICBkZWZhdWx0OiB6Lm9wdGlvbmFsKHouYm9vbGVhbigpKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBTdHJpbmdTY2hlbWFTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInN0cmluZ1wiKSxcbiAgdGl0bGU6IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIGRlc2NyaXB0aW9uOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICBtaW5MZW5ndGg6IHoub3B0aW9uYWwoei5udW1iZXIoKSksXG4gIG1heExlbmd0aDogei5vcHRpb25hbCh6Lm51bWJlcigpKSxcbiAgZm9ybWF0OiB6Lm9wdGlvbmFsKHouZW51bShbXCJlbWFpbFwiLCBcInVyaVwiLCBcImRhdGVcIiwgXCJkYXRlLXRpbWVcIl0pKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBOdW1iZXJTY2hlbWFTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHR5cGU6IHouZW51bShbXCJudW1iZXJcIiwgXCJpbnRlZ2VyXCJdKSxcbiAgdGl0bGU6IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIGRlc2NyaXB0aW9uOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICBtaW5pbXVtOiB6Lm9wdGlvbmFsKHoubnVtYmVyKCkpLFxuICBtYXhpbXVtOiB6Lm9wdGlvbmFsKHoubnVtYmVyKCkpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIEVudW1TY2hlbWFTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInN0cmluZ1wiKSxcbiAgdGl0bGU6IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIGRlc2NyaXB0aW9uOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICBlbnVtOiB6LmFycmF5KHouc3RyaW5nKCkpLFxuICBlbnVtTmFtZXM6IHoub3B0aW9uYWwoei5hcnJheSh6LnN0cmluZygpKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgUHJpbWl0aXZlU2NoZW1hRGVmaW5pdGlvblNjaGVtYSA9IHoudW5pb24oW1xuICBCb29sZWFuU2NoZW1hU2NoZW1hLFxuICBTdHJpbmdTY2hlbWFTY2hlbWEsXG4gIE51bWJlclNjaGVtYVNjaGVtYSxcbiAgRW51bVNjaGVtYVNjaGVtYVxuXSk7XG52YXIgRWxpY2l0UmVxdWVzdFNjaGVtYSA9IFJlcXVlc3RTY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJlbGljaXRhdGlvbi9jcmVhdGVcIiksXG4gIHBhcmFtczogQmFzZVJlcXVlc3RQYXJhbXNTY2hlbWEuZXh0ZW5kKHtcbiAgICAvKipcbiAgICAgKiBUaGUgbWVzc2FnZSB0byBwcmVzZW50IHRvIHRoZSB1c2VyLlxuICAgICAqL1xuICAgIG1lc3NhZ2U6IHouc3RyaW5nKCksXG4gICAgLyoqXG4gICAgICogVGhlIHNjaGVtYSBmb3IgdGhlIHJlcXVlc3RlZCB1c2VyIGlucHV0LlxuICAgICAqL1xuICAgIHJlcXVlc3RlZFNjaGVtYTogei5vYmplY3Qoe1xuICAgICAgdHlwZTogei5saXRlcmFsKFwib2JqZWN0XCIpLFxuICAgICAgcHJvcGVydGllczogei5yZWNvcmQoei5zdHJpbmcoKSwgUHJpbWl0aXZlU2NoZW1hRGVmaW5pdGlvblNjaGVtYSksXG4gICAgICByZXF1aXJlZDogei5vcHRpb25hbCh6LmFycmF5KHouc3RyaW5nKCkpKVxuICAgIH0pLnBhc3N0aHJvdWdoKClcbiAgfSlcbn0pO1xudmFyIEVsaWNpdFJlc3VsdFNjaGVtYSA9IFJlc3VsdFNjaGVtYS5leHRlbmQoe1xuICAvKipcbiAgICogVGhlIHVzZXIncyByZXNwb25zZSBhY3Rpb24uXG4gICAqL1xuICBhY3Rpb246IHouZW51bShbXCJhY2NlcHRcIiwgXCJkZWNsaW5lXCIsIFwiY2FuY2VsXCJdKSxcbiAgLyoqXG4gICAqIFRoZSBjb2xsZWN0ZWQgdXNlciBpbnB1dCBjb250ZW50IChvbmx5IHByZXNlbnQgaWYgYWN0aW9uIGlzIFwiYWNjZXB0XCIpLlxuICAgKi9cbiAgY29udGVudDogei5vcHRpb25hbCh6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkpXG59KTtcbnZhciBSZXNvdXJjZVRlbXBsYXRlUmVmZXJlbmNlU2NoZW1hID0gei5vYmplY3Qoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJyZWYvcmVzb3VyY2VcIiksXG4gIC8qKlxuICAgKiBUaGUgVVJJIG9yIFVSSSB0ZW1wbGF0ZSBvZiB0aGUgcmVzb3VyY2UuXG4gICAqL1xuICB1cmk6IHouc3RyaW5nKClcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgUHJvbXB0UmVmZXJlbmNlU2NoZW1hID0gei5vYmplY3Qoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJyZWYvcHJvbXB0XCIpLFxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHByb21wdCBvciBwcm9tcHQgdGVtcGxhdGVcbiAgICovXG4gIG5hbWU6IHouc3RyaW5nKClcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgQ29tcGxldGVSZXF1ZXN0U2NoZW1hID0gUmVxdWVzdFNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcImNvbXBsZXRpb24vY29tcGxldGVcIiksXG4gIHBhcmFtczogQmFzZVJlcXVlc3RQYXJhbXNTY2hlbWEuZXh0ZW5kKHtcbiAgICByZWY6IHoudW5pb24oW1Byb21wdFJlZmVyZW5jZVNjaGVtYSwgUmVzb3VyY2VUZW1wbGF0ZVJlZmVyZW5jZVNjaGVtYV0pLFxuICAgIC8qKlxuICAgICAqIFRoZSBhcmd1bWVudCdzIGluZm9ybWF0aW9uXG4gICAgICovXG4gICAgYXJndW1lbnQ6IHoub2JqZWN0KHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIG5hbWUgb2YgdGhlIGFyZ3VtZW50XG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgICAvKipcbiAgICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgYXJndW1lbnQgdG8gdXNlIGZvciBjb21wbGV0aW9uIG1hdGNoaW5nLlxuICAgICAgICovXG4gICAgICB2YWx1ZTogei5zdHJpbmcoKVxuICAgIH0pLnBhc3N0aHJvdWdoKCksXG4gICAgY29udGV4dDogei5vcHRpb25hbCh6Lm9iamVjdCh7XG4gICAgICAvKipcbiAgICAgICAqIFByZXZpb3VzbHktcmVzb2x2ZWQgdmFyaWFibGVzIGluIGEgVVJJIHRlbXBsYXRlIG9yIHByb21wdC5cbiAgICAgICAqL1xuICAgICAgYXJndW1lbnRzOiB6Lm9wdGlvbmFsKHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpKVxuICAgIH0pKVxuICB9KVxufSk7XG52YXIgQ29tcGxldGVSZXN1bHRTY2hlbWEgPSBSZXN1bHRTY2hlbWEuZXh0ZW5kKHtcbiAgY29tcGxldGlvbjogei5vYmplY3Qoe1xuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIGNvbXBsZXRpb24gdmFsdWVzLiBNdXN0IG5vdCBleGNlZWQgMTAwIGl0ZW1zLlxuICAgICAqL1xuICAgIHZhbHVlczogei5hcnJheSh6LnN0cmluZygpKS5tYXgoMTAwKSxcbiAgICAvKipcbiAgICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIGNvbXBsZXRpb24gb3B0aW9ucyBhdmFpbGFibGUuIFRoaXMgY2FuIGV4Y2VlZCB0aGUgbnVtYmVyIG9mIHZhbHVlcyBhY3R1YWxseSBzZW50IGluIHRoZSByZXNwb25zZS5cbiAgICAgKi9cbiAgICB0b3RhbDogei5vcHRpb25hbCh6Lm51bWJlcigpLmludCgpKSxcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGVyZSBhcmUgYWRkaXRpb25hbCBjb21wbGV0aW9uIG9wdGlvbnMgYmV5b25kIHRob3NlIHByb3ZpZGVkIGluIHRoZSBjdXJyZW50IHJlc3BvbnNlLCBldmVuIGlmIHRoZSBleGFjdCB0b3RhbCBpcyB1bmtub3duLlxuICAgICAqL1xuICAgIGhhc01vcmU6IHoub3B0aW9uYWwoei5ib29sZWFuKCkpXG4gIH0pLnBhc3N0aHJvdWdoKClcbn0pO1xudmFyIFJvb3RTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8qKlxuICAgKiBUaGUgVVJJIGlkZW50aWZ5aW5nIHRoZSByb290LiBUaGlzICptdXN0KiBzdGFydCB3aXRoIGZpbGU6Ly8gZm9yIG5vdy5cbiAgICovXG4gIHVyaTogei5zdHJpbmcoKS5zdGFydHNXaXRoKFwiZmlsZTovL1wiKSxcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIG5hbWUgZm9yIHRoZSByb290LlxuICAgKi9cbiAgbmFtZTogei5vcHRpb25hbCh6LnN0cmluZygpKSxcbiAgLyoqXG4gICAqIFNlZSBbTUNQIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2RlbGNvbnRleHRwcm90b2NvbC9tb2RlbGNvbnRleHRwcm90b2NvbC9ibG9iLzQ3MzM5YzAzYzE0M2JiNGVjMDFhMjZlNzIxYTFiOGZlNjY2MzRlYmUvZG9jcy9zcGVjaWZpY2F0aW9uL2RyYWZ0L2Jhc2ljL2luZGV4Lm1keCNnZW5lcmFsLWZpZWxkcylcbiAgICogZm9yIG5vdGVzIG9uIF9tZXRhIHVzYWdlLlxuICAgKi9cbiAgX21ldGE6IHoub3B0aW9uYWwoei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIExpc3RSb290c1JlcXVlc3RTY2hlbWEgPSBSZXF1ZXN0U2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwicm9vdHMvbGlzdFwiKVxufSk7XG52YXIgTGlzdFJvb3RzUmVzdWx0U2NoZW1hID0gUmVzdWx0U2NoZW1hLmV4dGVuZCh7XG4gIHJvb3RzOiB6LmFycmF5KFJvb3RTY2hlbWEpXG59KTtcbnZhciBSb290c0xpc3RDaGFuZ2VkTm90aWZpY2F0aW9uU2NoZW1hID0gTm90aWZpY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwibm90aWZpY2F0aW9ucy9yb290cy9saXN0X2NoYW5nZWRcIilcbn0pO1xudmFyIENsaWVudFJlcXVlc3RTY2hlbWEgPSB6LnVuaW9uKFtcbiAgUGluZ1JlcXVlc3RTY2hlbWEsXG4gIEluaXRpYWxpemVSZXF1ZXN0U2NoZW1hLFxuICBDb21wbGV0ZVJlcXVlc3RTY2hlbWEsXG4gIFNldExldmVsUmVxdWVzdFNjaGVtYSxcbiAgR2V0UHJvbXB0UmVxdWVzdFNjaGVtYSxcbiAgTGlzdFByb21wdHNSZXF1ZXN0U2NoZW1hLFxuICBMaXN0UmVzb3VyY2VzUmVxdWVzdFNjaGVtYSxcbiAgTGlzdFJlc291cmNlVGVtcGxhdGVzUmVxdWVzdFNjaGVtYSxcbiAgUmVhZFJlc291cmNlUmVxdWVzdFNjaGVtYSxcbiAgU3Vic2NyaWJlUmVxdWVzdFNjaGVtYSxcbiAgVW5zdWJzY3JpYmVSZXF1ZXN0U2NoZW1hLFxuICBDYWxsVG9vbFJlcXVlc3RTY2hlbWEsXG4gIExpc3RUb29sc1JlcXVlc3RTY2hlbWFcbl0pO1xudmFyIENsaWVudE5vdGlmaWNhdGlvblNjaGVtYSA9IHoudW5pb24oW1xuICBDYW5jZWxsZWROb3RpZmljYXRpb25TY2hlbWEsXG4gIFByb2dyZXNzTm90aWZpY2F0aW9uU2NoZW1hLFxuICBJbml0aWFsaXplZE5vdGlmaWNhdGlvblNjaGVtYSxcbiAgUm9vdHNMaXN0Q2hhbmdlZE5vdGlmaWNhdGlvblNjaGVtYVxuXSk7XG52YXIgQ2xpZW50UmVzdWx0U2NoZW1hID0gei51bmlvbihbXG4gIEVtcHR5UmVzdWx0U2NoZW1hLFxuICBDcmVhdGVNZXNzYWdlUmVzdWx0U2NoZW1hLFxuICBFbGljaXRSZXN1bHRTY2hlbWEsXG4gIExpc3RSb290c1Jlc3VsdFNjaGVtYVxuXSk7XG52YXIgU2VydmVyUmVxdWVzdFNjaGVtYSA9IHoudW5pb24oW1xuICBQaW5nUmVxdWVzdFNjaGVtYSxcbiAgQ3JlYXRlTWVzc2FnZVJlcXVlc3RTY2hlbWEsXG4gIEVsaWNpdFJlcXVlc3RTY2hlbWEsXG4gIExpc3RSb290c1JlcXVlc3RTY2hlbWFcbl0pO1xudmFyIFNlcnZlck5vdGlmaWNhdGlvblNjaGVtYSA9IHoudW5pb24oW1xuICBDYW5jZWxsZWROb3RpZmljYXRpb25TY2hlbWEsXG4gIFByb2dyZXNzTm90aWZpY2F0aW9uU2NoZW1hLFxuICBMb2dnaW5nTWVzc2FnZU5vdGlmaWNhdGlvblNjaGVtYSxcbiAgUmVzb3VyY2VVcGRhdGVkTm90aWZpY2F0aW9uU2NoZW1hLFxuICBSZXNvdXJjZUxpc3RDaGFuZ2VkTm90aWZpY2F0aW9uU2NoZW1hLFxuICBUb29sTGlzdENoYW5nZWROb3RpZmljYXRpb25TY2hlbWEsXG4gIFByb21wdExpc3RDaGFuZ2VkTm90aWZpY2F0aW9uU2NoZW1hXG5dKTtcbnZhciBTZXJ2ZXJSZXN1bHRTY2hlbWEgPSB6LnVuaW9uKFtcbiAgRW1wdHlSZXN1bHRTY2hlbWEsXG4gIEluaXRpYWxpemVSZXN1bHRTY2hlbWEsXG4gIENvbXBsZXRlUmVzdWx0U2NoZW1hLFxuICBHZXRQcm9tcHRSZXN1bHRTY2hlbWEsXG4gIExpc3RQcm9tcHRzUmVzdWx0U2NoZW1hLFxuICBMaXN0UmVzb3VyY2VzUmVzdWx0U2NoZW1hLFxuICBMaXN0UmVzb3VyY2VUZW1wbGF0ZXNSZXN1bHRTY2hlbWEsXG4gIFJlYWRSZXNvdXJjZVJlc3VsdFNjaGVtYSxcbiAgQ2FsbFRvb2xSZXN1bHRTY2hlbWEsXG4gIExpc3RUb29sc1Jlc3VsdFNjaGVtYVxuXSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9AbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL2Rpc3QvZXNtL3NlcnZlci9zdHJlYW1hYmxlSHR0cC5qc1xudmFyIGltcG9ydF9yYXdfYm9keSA9IF9fdG9FU00ocmVxdWlyZV9yYXdfYm9keSgpLCAxKTtcbnZhciBpbXBvcnRfY29udGVudF90eXBlID0gX190b0VTTShyZXF1aXJlX2NvbnRlbnRfdHlwZSgpLCAxKTtcbnZhciBpbXBvcnRfbm9kZV9jcnlwdG8gPSByZXF1aXJlKFwibm9kZTpjcnlwdG9cIik7XG52YXIgTUFYSU1VTV9NRVNTQUdFX1NJWkUgPSBcIjRtYlwiO1xudmFyIFN0cmVhbWFibGVIVFRQU2VydmVyVHJhbnNwb3J0ID0gY2xhc3Mge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICB0aGlzLl9zdGFydGVkID0gZmFsc2U7XG4gICAgdGhpcy5fc3RyZWFtTWFwcGluZyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdGhpcy5fcmVxdWVzdFRvU3RyZWFtTWFwcGluZyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdGhpcy5fcmVxdWVzdFJlc3BvbnNlTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB0aGlzLl9pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHRoaXMuX2VuYWJsZUpzb25SZXNwb25zZSA9IGZhbHNlO1xuICAgIHRoaXMuX3N0YW5kYWxvbmVTc2VTdHJlYW1JZCA9IFwiX0dFVF9zdHJlYW1cIjtcbiAgICB0aGlzLnNlc3Npb25JZEdlbmVyYXRvciA9IG9wdGlvbnMuc2Vzc2lvbklkR2VuZXJhdG9yO1xuICAgIHRoaXMuX2VuYWJsZUpzb25SZXNwb25zZSA9IChfYSA9IG9wdGlvbnMuZW5hYmxlSnNvblJlc3BvbnNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBmYWxzZTtcbiAgICB0aGlzLl9ldmVudFN0b3JlID0gb3B0aW9ucy5ldmVudFN0b3JlO1xuICAgIHRoaXMuX29uc2Vzc2lvbmluaXRpYWxpemVkID0gb3B0aW9ucy5vbnNlc3Npb25pbml0aWFsaXplZDtcbiAgICB0aGlzLl9vbnNlc3Npb25jbG9zZWQgPSBvcHRpb25zLm9uc2Vzc2lvbmNsb3NlZDtcbiAgICB0aGlzLl9hbGxvd2VkSG9zdHMgPSBvcHRpb25zLmFsbG93ZWRIb3N0cztcbiAgICB0aGlzLl9hbGxvd2VkT3JpZ2lucyA9IG9wdGlvbnMuYWxsb3dlZE9yaWdpbnM7XG4gICAgdGhpcy5fZW5hYmxlRG5zUmViaW5kaW5nUHJvdGVjdGlvbiA9IChfYiA9IG9wdGlvbnMuZW5hYmxlRG5zUmViaW5kaW5nUHJvdGVjdGlvbikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZmFsc2U7XG4gIH1cbiAgLyoqXG4gICAqIFN0YXJ0cyB0aGUgdHJhbnNwb3J0LiBUaGlzIGlzIHJlcXVpcmVkIGJ5IHRoZSBUcmFuc3BvcnQgaW50ZXJmYWNlIGJ1dCBpcyBhIG5vLW9wXG4gICAqIGZvciB0aGUgU3RyZWFtYWJsZSBIVFRQIHRyYW5zcG9ydCBhcyBjb25uZWN0aW9ucyBhcmUgbWFuYWdlZCBwZXItcmVxdWVzdC5cbiAgICovXG4gIGFzeW5jIHN0YXJ0KCkge1xuICAgIGlmICh0aGlzLl9zdGFydGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUcmFuc3BvcnQgYWxyZWFkeSBzdGFydGVkXCIpO1xuICAgIH1cbiAgICB0aGlzLl9zdGFydGVkID0gdHJ1ZTtcbiAgfVxuICAvKipcbiAgICogVmFsaWRhdGVzIHJlcXVlc3QgaGVhZGVycyBmb3IgRE5TIHJlYmluZGluZyBwcm90ZWN0aW9uLlxuICAgKiBAcmV0dXJucyBFcnJvciBtZXNzYWdlIGlmIHZhbGlkYXRpb24gZmFpbHMsIHVuZGVmaW5lZCBpZiB2YWxpZGF0aW9uIHBhc3Nlcy5cbiAgICovXG4gIHZhbGlkYXRlUmVxdWVzdEhlYWRlcnMocmVxKSB7XG4gICAgaWYgKCF0aGlzLl9lbmFibGVEbnNSZWJpbmRpbmdQcm90ZWN0aW9uKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICBpZiAodGhpcy5fYWxsb3dlZEhvc3RzICYmIHRoaXMuX2FsbG93ZWRIb3N0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBob3N0SGVhZGVyID0gcmVxLmhlYWRlcnMuaG9zdDtcbiAgICAgIGlmICghaG9zdEhlYWRlciB8fCAhdGhpcy5fYWxsb3dlZEhvc3RzLmluY2x1ZGVzKGhvc3RIZWFkZXIpKSB7XG4gICAgICAgIHJldHVybiBgSW52YWxpZCBIb3N0IGhlYWRlcjogJHtob3N0SGVhZGVyfWA7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLl9hbGxvd2VkT3JpZ2lucyAmJiB0aGlzLl9hbGxvd2VkT3JpZ2lucy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBvcmlnaW5IZWFkZXIgPSByZXEuaGVhZGVycy5vcmlnaW47XG4gICAgICBpZiAoIW9yaWdpbkhlYWRlciB8fCAhdGhpcy5fYWxsb3dlZE9yaWdpbnMuaW5jbHVkZXMob3JpZ2luSGVhZGVyKSkge1xuICAgICAgICByZXR1cm4gYEludmFsaWQgT3JpZ2luIGhlYWRlcjogJHtvcmlnaW5IZWFkZXJ9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuICAvKipcbiAgICogSGFuZGxlcyBhbiBpbmNvbWluZyBIVFRQIHJlcXVlc3QsIHdoZXRoZXIgR0VUIG9yIFBPU1RcbiAgICovXG4gIGFzeW5jIGhhbmRsZVJlcXVlc3QocmVxLCByZXMsIHBhcnNlZEJvZHkpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgdmFsaWRhdGlvbkVycm9yID0gdGhpcy52YWxpZGF0ZVJlcXVlc3RIZWFkZXJzKHJlcSk7XG4gICAgaWYgKHZhbGlkYXRpb25FcnJvcikge1xuICAgICAgcmVzLndyaXRlSGVhZCg0MDMpLmVuZChKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGpzb25ycGM6IFwiMi4wXCIsXG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgY29kZTogLTMyZTMsXG4gICAgICAgICAgbWVzc2FnZTogdmFsaWRhdGlvbkVycm9yXG4gICAgICAgIH0sXG4gICAgICAgIGlkOiBudWxsXG4gICAgICB9KSk7XG4gICAgICAoX2EgPSB0aGlzLm9uZXJyb3IpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHRoaXMsIG5ldyBFcnJvcih2YWxpZGF0aW9uRXJyb3IpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHJlcS5tZXRob2QgPT09IFwiUE9TVFwiKSB7XG4gICAgICBhd2FpdCB0aGlzLmhhbmRsZVBvc3RSZXF1ZXN0KHJlcSwgcmVzLCBwYXJzZWRCb2R5KTtcbiAgICB9IGVsc2UgaWYgKHJlcS5tZXRob2QgPT09IFwiR0VUXCIpIHtcbiAgICAgIGF3YWl0IHRoaXMuaGFuZGxlR2V0UmVxdWVzdChyZXEsIHJlcyk7XG4gICAgfSBlbHNlIGlmIChyZXEubWV0aG9kID09PSBcIkRFTEVURVwiKSB7XG4gICAgICBhd2FpdCB0aGlzLmhhbmRsZURlbGV0ZVJlcXVlc3QocmVxLCByZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aGlzLmhhbmRsZVVuc3VwcG9ydGVkUmVxdWVzdChyZXMpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogSGFuZGxlcyBHRVQgcmVxdWVzdHMgZm9yIFNTRSBzdHJlYW1cbiAgICovXG4gIGFzeW5jIGhhbmRsZUdldFJlcXVlc3QocmVxLCByZXMpIHtcbiAgICBjb25zdCBhY2NlcHRIZWFkZXIgPSByZXEuaGVhZGVycy5hY2NlcHQ7XG4gICAgaWYgKCEoYWNjZXB0SGVhZGVyID09PSBudWxsIHx8IGFjY2VwdEhlYWRlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWNjZXB0SGVhZGVyLmluY2x1ZGVzKFwidGV4dC9ldmVudC1zdHJlYW1cIikpKSB7XG4gICAgICByZXMud3JpdGVIZWFkKDQwNikuZW5kKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiAtMzJlMyxcbiAgICAgICAgICBtZXNzYWdlOiBcIk5vdCBBY2NlcHRhYmxlOiBDbGllbnQgbXVzdCBhY2NlcHQgdGV4dC9ldmVudC1zdHJlYW1cIlxuICAgICAgICB9LFxuICAgICAgICBpZDogbnVsbFxuICAgICAgfSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudmFsaWRhdGVTZXNzaW9uKHJlcSwgcmVzKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudmFsaWRhdGVQcm90b2NvbFZlcnNpb24ocmVxLCByZXMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLl9ldmVudFN0b3JlKSB7XG4gICAgICBjb25zdCBsYXN0RXZlbnRJZCA9IHJlcS5oZWFkZXJzW1wibGFzdC1ldmVudC1pZFwiXTtcbiAgICAgIGlmIChsYXN0RXZlbnRJZCkge1xuICAgICAgICBhd2FpdCB0aGlzLnJlcGxheUV2ZW50cyhsYXN0RXZlbnRJZCwgcmVzKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0ge1xuICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJ0ZXh0L2V2ZW50LXN0cmVhbVwiLFxuICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGUsIG5vLXRyYW5zZm9ybVwiLFxuICAgICAgQ29ubmVjdGlvbjogXCJrZWVwLWFsaXZlXCJcbiAgICB9O1xuICAgIGlmICh0aGlzLnNlc3Npb25JZCAhPT0gdm9pZCAwKSB7XG4gICAgICBoZWFkZXJzW1wibWNwLXNlc3Npb24taWRcIl0gPSB0aGlzLnNlc3Npb25JZDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3N0cmVhbU1hcHBpbmcuZ2V0KHRoaXMuX3N0YW5kYWxvbmVTc2VTdHJlYW1JZCkgIT09IHZvaWQgMCkge1xuICAgICAgcmVzLndyaXRlSGVhZCg0MDkpLmVuZChKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGpzb25ycGM6IFwiMi4wXCIsXG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgY29kZTogLTMyZTMsXG4gICAgICAgICAgbWVzc2FnZTogXCJDb25mbGljdDogT25seSBvbmUgU1NFIHN0cmVhbSBpcyBhbGxvd2VkIHBlciBzZXNzaW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICAgIH0pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmVzLndyaXRlSGVhZCgyMDAsIGhlYWRlcnMpLmZsdXNoSGVhZGVycygpO1xuICAgIHRoaXMuX3N0cmVhbU1hcHBpbmcuc2V0KHRoaXMuX3N0YW5kYWxvbmVTc2VTdHJlYW1JZCwgcmVzKTtcbiAgICByZXMub24oXCJjbG9zZVwiLCAoKSA9PiB7XG4gICAgICB0aGlzLl9zdHJlYW1NYXBwaW5nLmRlbGV0ZSh0aGlzLl9zdGFuZGFsb25lU3NlU3RyZWFtSWQpO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBSZXBsYXlzIGV2ZW50cyB0aGF0IHdvdWxkIGhhdmUgYmVlbiBzZW50IGFmdGVyIHRoZSBzcGVjaWZpZWQgZXZlbnQgSURcbiAgICogT25seSB1c2VkIHdoZW4gcmVzdW1hYmlsaXR5IGlzIGVuYWJsZWRcbiAgICovXG4gIGFzeW5jIHJlcGxheUV2ZW50cyhsYXN0RXZlbnRJZCwgcmVzKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBpZiAoIXRoaXMuX2V2ZW50U3RvcmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwidGV4dC9ldmVudC1zdHJlYW1cIixcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGUsIG5vLXRyYW5zZm9ybVwiLFxuICAgICAgICBDb25uZWN0aW9uOiBcImtlZXAtYWxpdmVcIlxuICAgICAgfTtcbiAgICAgIGlmICh0aGlzLnNlc3Npb25JZCAhPT0gdm9pZCAwKSB7XG4gICAgICAgIGhlYWRlcnNbXCJtY3Atc2Vzc2lvbi1pZFwiXSA9IHRoaXMuc2Vzc2lvbklkO1xuICAgICAgfVxuICAgICAgcmVzLndyaXRlSGVhZCgyMDAsIGhlYWRlcnMpLmZsdXNoSGVhZGVycygpO1xuICAgICAgY29uc3Qgc3RyZWFtSWQgPSBhd2FpdCAoKF9hID0gdGhpcy5fZXZlbnRTdG9yZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlcGxheUV2ZW50c0FmdGVyKGxhc3RFdmVudElkLCB7XG4gICAgICAgIHNlbmQ6IGFzeW5jIChldmVudElkLCBtZXNzYWdlKSA9PiB7XG4gICAgICAgICAgdmFyIF9hMjtcbiAgICAgICAgICBpZiAoIXRoaXMud3JpdGVTU0VFdmVudChyZXMsIG1lc3NhZ2UsIGV2ZW50SWQpKSB7XG4gICAgICAgICAgICAoX2EyID0gdGhpcy5vbmVycm9yKSA9PT0gbnVsbCB8fCBfYTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hMi5jYWxsKHRoaXMsIG5ldyBFcnJvcihcIkZhaWxlZCByZXBsYXkgZXZlbnRzXCIpKTtcbiAgICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgICAgIHRoaXMuX3N0cmVhbU1hcHBpbmcuc2V0KHN0cmVhbUlkLCByZXMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAoX2IgPSB0aGlzLm9uZXJyb3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKHRoaXMsIGVycm9yKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFdyaXRlcyBhbiBldmVudCB0byB0aGUgU1NFIHN0cmVhbSB3aXRoIHByb3BlciBmb3JtYXR0aW5nXG4gICAqL1xuICB3cml0ZVNTRUV2ZW50KHJlcywgbWVzc2FnZSwgZXZlbnRJZCkge1xuICAgIGxldCBldmVudERhdGEgPSBgZXZlbnQ6IG1lc3NhZ2VcbmA7XG4gICAgaWYgKGV2ZW50SWQpIHtcbiAgICAgIGV2ZW50RGF0YSArPSBgaWQ6ICR7ZXZlbnRJZH1cbmA7XG4gICAgfVxuICAgIGV2ZW50RGF0YSArPSBgZGF0YTogJHtKU09OLnN0cmluZ2lmeShtZXNzYWdlKX1cblxuYDtcbiAgICByZXR1cm4gcmVzLndyaXRlKGV2ZW50RGF0YSk7XG4gIH1cbiAgLyoqXG4gICAqIEhhbmRsZXMgdW5zdXBwb3J0ZWQgcmVxdWVzdHMgKFBVVCwgUEFUQ0gsIGV0Yy4pXG4gICAqL1xuICBhc3luYyBoYW5kbGVVbnN1cHBvcnRlZFJlcXVlc3QocmVzKSB7XG4gICAgcmVzLndyaXRlSGVhZCg0MDUsIHtcbiAgICAgIFwiQWxsb3dcIjogXCJHRVQsIFBPU1QsIERFTEVURVwiXG4gICAgfSkuZW5kKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGpzb25ycGM6IFwiMi4wXCIsXG4gICAgICBlcnJvcjoge1xuICAgICAgICBjb2RlOiAtMzJlMyxcbiAgICAgICAgbWVzc2FnZTogXCJNZXRob2Qgbm90IGFsbG93ZWQuXCJcbiAgICAgIH0sXG4gICAgICBpZDogbnVsbFxuICAgIH0pKTtcbiAgfVxuICAvKipcbiAgICogSGFuZGxlcyBQT1NUIHJlcXVlc3RzIGNvbnRhaW5pbmcgSlNPTi1SUEMgbWVzc2FnZXNcbiAgICovXG4gIGFzeW5jIGhhbmRsZVBvc3RSZXF1ZXN0KHJlcSwgcmVzLCBwYXJzZWRCb2R5KSB7XG4gICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWNjZXB0SGVhZGVyID0gcmVxLmhlYWRlcnMuYWNjZXB0O1xuICAgICAgaWYgKCEoYWNjZXB0SGVhZGVyID09PSBudWxsIHx8IGFjY2VwdEhlYWRlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWNjZXB0SGVhZGVyLmluY2x1ZGVzKFwiYXBwbGljYXRpb24vanNvblwiKSkgfHwgIWFjY2VwdEhlYWRlci5pbmNsdWRlcyhcInRleHQvZXZlbnQtc3RyZWFtXCIpKSB7XG4gICAgICAgIHJlcy53cml0ZUhlYWQoNDA2KS5lbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGpzb25ycGM6IFwiMi4wXCIsXG4gICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgIGNvZGU6IC0zMmUzLFxuICAgICAgICAgICAgbWVzc2FnZTogXCJOb3QgQWNjZXB0YWJsZTogQ2xpZW50IG11c3QgYWNjZXB0IGJvdGggYXBwbGljYXRpb24vanNvbiBhbmQgdGV4dC9ldmVudC1zdHJlYW1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgaWQ6IG51bGxcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjdCA9IHJlcS5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdO1xuICAgICAgaWYgKCFjdCB8fCAhY3QuaW5jbHVkZXMoXCJhcHBsaWNhdGlvbi9qc29uXCIpKSB7XG4gICAgICAgIHJlcy53cml0ZUhlYWQoNDE1KS5lbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGpzb25ycGM6IFwiMi4wXCIsXG4gICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgIGNvZGU6IC0zMmUzLFxuICAgICAgICAgICAgbWVzc2FnZTogXCJVbnN1cHBvcnRlZCBNZWRpYSBUeXBlOiBDb250ZW50LVR5cGUgbXVzdCBiZSBhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlkOiBudWxsXG4gICAgICAgIH0pKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgYXV0aEluZm8gPSByZXEuYXV0aDtcbiAgICAgIGNvbnN0IHJlcXVlc3RJbmZvID0geyBoZWFkZXJzOiByZXEuaGVhZGVycyB9O1xuICAgICAgbGV0IHJhd01lc3NhZ2U7XG4gICAgICBpZiAocGFyc2VkQm9keSAhPT0gdm9pZCAwKSB7XG4gICAgICAgIHJhd01lc3NhZ2UgPSBwYXJzZWRCb2R5O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcGFyc2VkQ3QgPSBpbXBvcnRfY29udGVudF90eXBlLmRlZmF1bHQucGFyc2UoY3QpO1xuICAgICAgICBjb25zdCBib2R5ID0gYXdhaXQgKDAsIGltcG9ydF9yYXdfYm9keS5kZWZhdWx0KShyZXEsIHtcbiAgICAgICAgICBsaW1pdDogTUFYSU1VTV9NRVNTQUdFX1NJWkUsXG4gICAgICAgICAgZW5jb2Rpbmc6IChfYSA9IHBhcnNlZEN0LnBhcmFtZXRlcnMuY2hhcnNldCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogXCJ1dGYtOFwiXG4gICAgICAgIH0pO1xuICAgICAgICByYXdNZXNzYWdlID0gSlNPTi5wYXJzZShib2R5LnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgICAgbGV0IG1lc3NhZ2VzO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmF3TWVzc2FnZSkpIHtcbiAgICAgICAgbWVzc2FnZXMgPSByYXdNZXNzYWdlLm1hcCgobXNnKSA9PiBKU09OUlBDTWVzc2FnZVNjaGVtYS5wYXJzZShtc2cpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2VzID0gW0pTT05SUENNZXNzYWdlU2NoZW1hLnBhcnNlKHJhd01lc3NhZ2UpXTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlzSW5pdGlhbGl6YXRpb25SZXF1ZXN0ID0gbWVzc2FnZXMuc29tZShpc0luaXRpYWxpemVSZXF1ZXN0KTtcbiAgICAgIGlmIChpc0luaXRpYWxpemF0aW9uUmVxdWVzdCkge1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWQgJiYgdGhpcy5zZXNzaW9uSWQgIT09IHZvaWQgMCkge1xuICAgICAgICAgIHJlcy53cml0ZUhlYWQoNDAwKS5lbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgICAgIGNvZGU6IC0zMjYwMCxcbiAgICAgICAgICAgICAgbWVzc2FnZTogXCJJbnZhbGlkIFJlcXVlc3Q6IFNlcnZlciBhbHJlYWR5IGluaXRpYWxpemVkXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpZDogbnVsbFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lc3NhZ2VzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICByZXMud3JpdGVIZWFkKDQwMCkuZW5kKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGpzb25ycGM6IFwiMi4wXCIsXG4gICAgICAgICAgICBlcnJvcjoge1xuICAgICAgICAgICAgICBjb2RlOiAtMzI2MDAsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IFwiSW52YWxpZCBSZXF1ZXN0OiBPbmx5IG9uZSBpbml0aWFsaXphdGlvbiByZXF1ZXN0IGlzIGFsbG93ZWRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlkOiBudWxsXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlc3Npb25JZCA9IChfYiA9IHRoaXMuc2Vzc2lvbklkR2VuZXJhdG9yKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbCh0aGlzKTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5zZXNzaW9uSWQgJiYgdGhpcy5fb25zZXNzaW9uaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUodGhpcy5fb25zZXNzaW9uaW5pdGlhbGl6ZWQodGhpcy5zZXNzaW9uSWQpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFpc0luaXRpYWxpemF0aW9uUmVxdWVzdCkge1xuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGVTZXNzaW9uKHJlcSwgcmVzKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGVQcm90b2NvbFZlcnNpb24ocmVxLCByZXMpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBoYXNSZXF1ZXN0cyA9IG1lc3NhZ2VzLnNvbWUoaXNKU09OUlBDUmVxdWVzdCk7XG4gICAgICBpZiAoIWhhc1JlcXVlc3RzKSB7XG4gICAgICAgIHJlcy53cml0ZUhlYWQoMjAyKS5lbmQoKTtcbiAgICAgICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIG1lc3NhZ2VzKSB7XG4gICAgICAgICAgKF9jID0gdGhpcy5vbm1lc3NhZ2UpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5jYWxsKHRoaXMsIG1lc3NhZ2UsIHsgYXV0aEluZm8sIHJlcXVlc3RJbmZvIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGhhc1JlcXVlc3RzKSB7XG4gICAgICAgIGNvbnN0IHN0cmVhbUlkID0gKDAsIGltcG9ydF9ub2RlX2NyeXB0by5yYW5kb21VVUlEKSgpO1xuICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZUpzb25SZXNwb25zZSkge1xuICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcInRleHQvZXZlbnQtc3RyZWFtXCIsXG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgQ29ubmVjdGlvbjogXCJrZWVwLWFsaXZlXCJcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICh0aGlzLnNlc3Npb25JZCAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICBoZWFkZXJzW1wibWNwLXNlc3Npb24taWRcIl0gPSB0aGlzLnNlc3Npb25JZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzLndyaXRlSGVhZCgyMDAsIGhlYWRlcnMpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbWVzc2FnZSBvZiBtZXNzYWdlcykge1xuICAgICAgICAgIGlmIChpc0pTT05SUENSZXF1ZXN0KG1lc3NhZ2UpKSB7XG4gICAgICAgICAgICB0aGlzLl9zdHJlYW1NYXBwaW5nLnNldChzdHJlYW1JZCwgcmVzKTtcbiAgICAgICAgICAgIHRoaXMuX3JlcXVlc3RUb1N0cmVhbU1hcHBpbmcuc2V0KG1lc3NhZ2UuaWQsIHN0cmVhbUlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzLm9uKFwiY2xvc2VcIiwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3N0cmVhbU1hcHBpbmcuZGVsZXRlKHN0cmVhbUlkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZvciAoY29uc3QgbWVzc2FnZSBvZiBtZXNzYWdlcykge1xuICAgICAgICAgIChfZCA9IHRoaXMub25tZXNzYWdlKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuY2FsbCh0aGlzLCBtZXNzYWdlLCB7IGF1dGhJbmZvLCByZXF1ZXN0SW5mbyB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXMud3JpdGVIZWFkKDQwMCkuZW5kKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiAtMzI3MDAsXG4gICAgICAgICAgbWVzc2FnZTogXCJQYXJzZSBlcnJvclwiLFxuICAgICAgICAgIGRhdGE6IFN0cmluZyhlcnJvcilcbiAgICAgICAgfSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICAgIH0pKTtcbiAgICAgIChfZSA9IHRoaXMub25lcnJvcikgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLmNhbGwodGhpcywgZXJyb3IpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogSGFuZGxlcyBERUxFVEUgcmVxdWVzdHMgdG8gdGVybWluYXRlIHNlc3Npb25zXG4gICAqL1xuICBhc3luYyBoYW5kbGVEZWxldGVSZXF1ZXN0KHJlcSwgcmVzKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICghdGhpcy52YWxpZGF0ZVNlc3Npb24ocmVxLCByZXMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy52YWxpZGF0ZVByb3RvY29sVmVyc2lvbihyZXEsIHJlcykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKChfYSA9IHRoaXMuX29uc2Vzc2lvbmNsb3NlZCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwodGhpcywgdGhpcy5zZXNzaW9uSWQpKTtcbiAgICBhd2FpdCB0aGlzLmNsb3NlKCk7XG4gICAgcmVzLndyaXRlSGVhZCgyMDApLmVuZCgpO1xuICB9XG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgc2Vzc2lvbiBJRCBmb3Igbm9uLWluaXRpYWxpemF0aW9uIHJlcXVlc3RzXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc2Vzc2lvbiBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICB2YWxpZGF0ZVNlc3Npb24ocmVxLCByZXMpIHtcbiAgICBpZiAodGhpcy5zZXNzaW9uSWRHZW5lcmF0b3IgPT09IHZvaWQgMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJlcy53cml0ZUhlYWQoNDAwKS5lbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBqc29ucnBjOiBcIjIuMFwiLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6IC0zMmUzLFxuICAgICAgICAgIG1lc3NhZ2U6IFwiQmFkIFJlcXVlc3Q6IFNlcnZlciBub3QgaW5pdGlhbGl6ZWRcIlxuICAgICAgICB9LFxuICAgICAgICBpZDogbnVsbFxuICAgICAgfSkpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBzZXNzaW9uSWQgPSByZXEuaGVhZGVyc1tcIm1jcC1zZXNzaW9uLWlkXCJdO1xuICAgIGlmICghc2Vzc2lvbklkKSB7XG4gICAgICByZXMud3JpdGVIZWFkKDQwMCkuZW5kKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiAtMzJlMyxcbiAgICAgICAgICBtZXNzYWdlOiBcIkJhZCBSZXF1ZXN0OiBNY3AtU2Vzc2lvbi1JZCBoZWFkZXIgaXMgcmVxdWlyZWRcIlxuICAgICAgICB9LFxuICAgICAgICBpZDogbnVsbFxuICAgICAgfSkpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzZXNzaW9uSWQpKSB7XG4gICAgICByZXMud3JpdGVIZWFkKDQwMCkuZW5kKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiAtMzJlMyxcbiAgICAgICAgICBtZXNzYWdlOiBcIkJhZCBSZXF1ZXN0OiBNY3AtU2Vzc2lvbi1JZCBoZWFkZXIgbXVzdCBiZSBhIHNpbmdsZSB2YWx1ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIGlkOiBudWxsXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChzZXNzaW9uSWQgIT09IHRoaXMuc2Vzc2lvbklkKSB7XG4gICAgICByZXMud3JpdGVIZWFkKDQwNCkuZW5kKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiAtMzIwMDEsXG4gICAgICAgICAgbWVzc2FnZTogXCJTZXNzaW9uIG5vdCBmb3VuZFwiXG4gICAgICAgIH0sXG4gICAgICAgIGlkOiBudWxsXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHZhbGlkYXRlUHJvdG9jb2xWZXJzaW9uKHJlcSwgcmVzKSB7XG4gICAgdmFyIF9hO1xuICAgIGxldCBwcm90b2NvbFZlcnNpb24gPSAoX2EgPSByZXEuaGVhZGVyc1tcIm1jcC1wcm90b2NvbC12ZXJzaW9uXCJdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX05FR09USUFURURfUFJPVE9DT0xfVkVSU0lPTjtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwcm90b2NvbFZlcnNpb24pKSB7XG4gICAgICBwcm90b2NvbFZlcnNpb24gPSBwcm90b2NvbFZlcnNpb25bcHJvdG9jb2xWZXJzaW9uLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgICBpZiAoIVNVUFBPUlRFRF9QUk9UT0NPTF9WRVJTSU9OUy5pbmNsdWRlcyhwcm90b2NvbFZlcnNpb24pKSB7XG4gICAgICByZXMud3JpdGVIZWFkKDQwMCkuZW5kKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiAtMzJlMyxcbiAgICAgICAgICBtZXNzYWdlOiBgQmFkIFJlcXVlc3Q6IFVuc3VwcG9ydGVkIHByb3RvY29sIHZlcnNpb24gKHN1cHBvcnRlZCB2ZXJzaW9uczogJHtTVVBQT1JURURfUFJPVE9DT0xfVkVSU0lPTlMuam9pbihcIiwgXCIpfSlgXG4gICAgICAgIH0sXG4gICAgICAgIGlkOiBudWxsXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGFzeW5jIGNsb3NlKCkge1xuICAgIHZhciBfYTtcbiAgICB0aGlzLl9zdHJlYW1NYXBwaW5nLmZvckVhY2goKHJlc3BvbnNlKSA9PiB7XG4gICAgICByZXNwb25zZS5lbmQoKTtcbiAgICB9KTtcbiAgICB0aGlzLl9zdHJlYW1NYXBwaW5nLmNsZWFyKCk7XG4gICAgdGhpcy5fcmVxdWVzdFJlc3BvbnNlTWFwLmNsZWFyKCk7XG4gICAgKF9hID0gdGhpcy5vbmNsb3NlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0aGlzKTtcbiAgfVxuICBhc3luYyBzZW5kKG1lc3NhZ2UsIG9wdGlvbnMpIHtcbiAgICBsZXQgcmVxdWVzdElkID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnJlbGF0ZWRSZXF1ZXN0SWQ7XG4gICAgaWYgKGlzSlNPTlJQQ1Jlc3BvbnNlKG1lc3NhZ2UpIHx8IGlzSlNPTlJQQ0Vycm9yKG1lc3NhZ2UpKSB7XG4gICAgICByZXF1ZXN0SWQgPSBtZXNzYWdlLmlkO1xuICAgIH1cbiAgICBpZiAocmVxdWVzdElkID09PSB2b2lkIDApIHtcbiAgICAgIGlmIChpc0pTT05SUENSZXNwb25zZShtZXNzYWdlKSB8fCBpc0pTT05SUENFcnJvcihtZXNzYWdlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3Qgc2VuZCBhIHJlc3BvbnNlIG9uIGEgc3RhbmRhbG9uZSBTU0Ugc3RyZWFtIHVubGVzcyByZXN1bWluZyBhIHByZXZpb3VzIGNsaWVudCByZXF1ZXN0XCIpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3RhbmRhbG9uZVNzZSA9IHRoaXMuX3N0cmVhbU1hcHBpbmcuZ2V0KHRoaXMuX3N0YW5kYWxvbmVTc2VTdHJlYW1JZCk7XG4gICAgICBpZiAoc3RhbmRhbG9uZVNzZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCBldmVudElkO1xuICAgICAgaWYgKHRoaXMuX2V2ZW50U3RvcmUpIHtcbiAgICAgICAgZXZlbnRJZCA9IGF3YWl0IHRoaXMuX2V2ZW50U3RvcmUuc3RvcmVFdmVudCh0aGlzLl9zdGFuZGFsb25lU3NlU3RyZWFtSWQsIG1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgdGhpcy53cml0ZVNTRUV2ZW50KHN0YW5kYWxvbmVTc2UsIG1lc3NhZ2UsIGV2ZW50SWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdHJlYW1JZCA9IHRoaXMuX3JlcXVlc3RUb1N0cmVhbU1hcHBpbmcuZ2V0KHJlcXVlc3RJZCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSB0aGlzLl9zdHJlYW1NYXBwaW5nLmdldChzdHJlYW1JZCk7XG4gICAgaWYgKCFzdHJlYW1JZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBjb25uZWN0aW9uIGVzdGFibGlzaGVkIGZvciByZXF1ZXN0IElEOiAke1N0cmluZyhyZXF1ZXN0SWQpfWApO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX2VuYWJsZUpzb25SZXNwb25zZSkge1xuICAgICAgbGV0IGV2ZW50SWQ7XG4gICAgICBpZiAodGhpcy5fZXZlbnRTdG9yZSkge1xuICAgICAgICBldmVudElkID0gYXdhaXQgdGhpcy5fZXZlbnRTdG9yZS5zdG9yZUV2ZW50KHN0cmVhbUlkLCBtZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICB0aGlzLndyaXRlU1NFRXZlbnQocmVzcG9uc2UsIG1lc3NhZ2UsIGV2ZW50SWQpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaXNKU09OUlBDUmVzcG9uc2UobWVzc2FnZSkgfHwgaXNKU09OUlBDRXJyb3IobWVzc2FnZSkpIHtcbiAgICAgIHRoaXMuX3JlcXVlc3RSZXNwb25zZU1hcC5zZXQocmVxdWVzdElkLCBtZXNzYWdlKTtcbiAgICAgIGNvbnN0IHJlbGF0ZWRJZHMgPSBBcnJheS5mcm9tKHRoaXMuX3JlcXVlc3RUb1N0cmVhbU1hcHBpbmcuZW50cmllcygpKS5maWx0ZXIoKFtfMiwgc3RyZWFtSWQyXSkgPT4gdGhpcy5fc3RyZWFtTWFwcGluZy5nZXQoc3RyZWFtSWQyKSA9PT0gcmVzcG9uc2UpLm1hcCgoW2lkXSkgPT4gaWQpO1xuICAgICAgY29uc3QgYWxsUmVzcG9uc2VzUmVhZHkgPSByZWxhdGVkSWRzLmV2ZXJ5KChpZCkgPT4gdGhpcy5fcmVxdWVzdFJlc3BvbnNlTWFwLmhhcyhpZCkpO1xuICAgICAgaWYgKGFsbFJlc3BvbnNlc1JlYWR5KSB7XG4gICAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgZm9yIHJlcXVlc3QgSUQ6ICR7U3RyaW5nKHJlcXVlc3RJZCl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2VuYWJsZUpzb25SZXNwb25zZSkge1xuICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIlxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHRoaXMuc2Vzc2lvbklkICE9PSB2b2lkIDApIHtcbiAgICAgICAgICAgIGhlYWRlcnNbXCJtY3Atc2Vzc2lvbi1pZFwiXSA9IHRoaXMuc2Vzc2lvbklkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCByZXNwb25zZXMgPSByZWxhdGVkSWRzLm1hcCgoaWQpID0+IHRoaXMuX3JlcXVlc3RSZXNwb25zZU1hcC5nZXQoaWQpKTtcbiAgICAgICAgICByZXNwb25zZS53cml0ZUhlYWQoMjAwLCBoZWFkZXJzKTtcbiAgICAgICAgICBpZiAocmVzcG9uc2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgcmVzcG9uc2UuZW5kKEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlc1swXSkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2VzKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3BvbnNlLmVuZCgpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgaWQgb2YgcmVsYXRlZElkcykge1xuICAgICAgICAgIHRoaXMuX3JlcXVlc3RSZXNwb25zZU1hcC5kZWxldGUoaWQpO1xuICAgICAgICAgIHRoaXMuX3JlcXVlc3RUb1N0cmVhbU1hcHBpbmcuZGVsZXRlKGlkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuLy8gbm9kZV9tb2R1bGVzL0BzbWl0aGVyeS9zZGsvZGlzdC9zZXJ2ZXIvc3RhdGVmdWwuanNcbnZhciBpbXBvcnRfZXhwcmVzcyA9IF9fdG9FU00ocmVxdWlyZV9leHByZXNzMigpLCAxKTtcbnZhciBpbXBvcnRfbm9kZV9jcnlwdG8yID0gcmVxdWlyZShcIm5vZGU6Y3J5cHRvXCIpO1xuXG4vLyBub2RlX21vZHVsZXMvQHNtaXRoZXJ5L3Nkay9kaXN0L3NoYXJlZC9jb25maWcuanNcbnZhciBpbXBvcnRfbG9kYXNoID0gX190b0VTTShyZXF1aXJlX2xvZGFzaCgpLCAxKTtcblxuLy8gbm9kZV9tb2R1bGVzL29rYXktZXJyb3IvZGlzdC9pbmRleC5qc1xuZnVuY3Rpb24gb2sodmFsdWUpIHtcbiAgcmV0dXJuIHsgb2s6IHRydWUsIHZhbHVlIH07XG59XG5mdW5jdGlvbiBlcnIodHlwZU9yUGF5bG9hZCwgcGF5bG9hZCkge1xuICBpZiAocGF5bG9hZCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogeyB0eXBlOiB0eXBlT3JQYXlsb2FkLCAuLi5wYXlsb2FkIH0gfTtcbiAgfVxuICByZXR1cm4geyBvazogZmFsc2UsIGVycm9yOiB0eXBlT3JQYXlsb2FkIH07XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vT3B0aW9ucy5qc1xudmFyIGlnbm9yZU92ZXJyaWRlID0gU3ltYm9sKFwiTGV0IHpvZFRvSnNvblNjaGVtYSBkZWNpZGUgb24gd2hpY2ggcGFyc2VyIHRvIHVzZVwiKTtcbnZhciBkZWZhdWx0T3B0aW9ucyA9IHtcbiAgbmFtZTogdm9pZCAwLFxuICAkcmVmU3RyYXRlZ3k6IFwicm9vdFwiLFxuICBiYXNlUGF0aDogW1wiI1wiXSxcbiAgZWZmZWN0U3RyYXRlZ3k6IFwiaW5wdXRcIixcbiAgcGlwZVN0cmF0ZWd5OiBcImFsbFwiLFxuICBkYXRlU3RyYXRlZ3k6IFwiZm9ybWF0OmRhdGUtdGltZVwiLFxuICBtYXBTdHJhdGVneTogXCJlbnRyaWVzXCIsXG4gIHJlbW92ZUFkZGl0aW9uYWxTdHJhdGVneTogXCJwYXNzdGhyb3VnaFwiLFxuICBkZWZpbml0aW9uUGF0aDogXCJkZWZpbml0aW9uc1wiLFxuICB0YXJnZXQ6IFwianNvblNjaGVtYTdcIixcbiAgc3RyaWN0VW5pb25zOiBmYWxzZSxcbiAgZGVmaW5pdGlvbnM6IHt9LFxuICBlcnJvck1lc3NhZ2VzOiBmYWxzZSxcbiAgbWFya2Rvd25EZXNjcmlwdGlvbjogZmFsc2UsXG4gIHBhdHRlcm5TdHJhdGVneTogXCJlc2NhcGVcIixcbiAgYXBwbHlSZWdleEZsYWdzOiBmYWxzZSxcbiAgZW1haWxTdHJhdGVneTogXCJmb3JtYXQ6ZW1haWxcIixcbiAgYmFzZTY0U3RyYXRlZ3k6IFwiY29udGVudEVuY29kaW5nOmJhc2U2NFwiLFxuICBuYW1lU3RyYXRlZ3k6IFwicmVmXCJcbn07XG52YXIgZ2V0RGVmYXVsdE9wdGlvbnMgPSAob3B0aW9ucykgPT4gdHlwZW9mIG9wdGlvbnMgPT09IFwic3RyaW5nXCIgPyB7XG4gIC4uLmRlZmF1bHRPcHRpb25zLFxuICBuYW1lOiBvcHRpb25zXG59IDoge1xuICAuLi5kZWZhdWx0T3B0aW9ucyxcbiAgLi4ub3B0aW9uc1xufTtcblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9SZWZzLmpzXG52YXIgZ2V0UmVmcyA9IChvcHRpb25zKSA9PiB7XG4gIGNvbnN0IF9vcHRpb25zID0gZ2V0RGVmYXVsdE9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IGN1cnJlbnRQYXRoID0gX29wdGlvbnMubmFtZSAhPT0gdm9pZCAwID8gWy4uLl9vcHRpb25zLmJhc2VQYXRoLCBfb3B0aW9ucy5kZWZpbml0aW9uUGF0aCwgX29wdGlvbnMubmFtZV0gOiBfb3B0aW9ucy5iYXNlUGF0aDtcbiAgcmV0dXJuIHtcbiAgICAuLi5fb3B0aW9ucyxcbiAgICBjdXJyZW50UGF0aCxcbiAgICBwcm9wZXJ0eVBhdGg6IHZvaWQgMCxcbiAgICBzZWVuOiBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKF9vcHRpb25zLmRlZmluaXRpb25zKS5tYXAoKFtuYW1lLCBkZWZdKSA9PiBbXG4gICAgICBkZWYuX2RlZixcbiAgICAgIHtcbiAgICAgICAgZGVmOiBkZWYuX2RlZixcbiAgICAgICAgcGF0aDogWy4uLl9vcHRpb25zLmJhc2VQYXRoLCBfb3B0aW9ucy5kZWZpbml0aW9uUGF0aCwgbmFtZV0sXG4gICAgICAgIC8vIFJlc29sdXRpb24gb2YgcmVmZXJlbmNlcyB3aWxsIGJlIGZvcmNlZCBldmVuIHRob3VnaCBzZWVuLCBzbyBpdCdzIG9rIHRoYXQgdGhlIHNjaGVtYSBpcyB1bmRlZmluZWQgaGVyZSBmb3Igbm93LlxuICAgICAgICBqc29uU2NoZW1hOiB2b2lkIDBcbiAgICAgIH1cbiAgICBdKSlcbiAgfTtcbn07XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vZXJyb3JNZXNzYWdlcy5qc1xuZnVuY3Rpb24gYWRkRXJyb3JNZXNzYWdlKHJlcywga2V5LCBlcnJvck1lc3NhZ2UsIHJlZnMpIHtcbiAgaWYgKCFyZWZzPy5lcnJvck1lc3NhZ2VzKVxuICAgIHJldHVybjtcbiAgaWYgKGVycm9yTWVzc2FnZSkge1xuICAgIHJlcy5lcnJvck1lc3NhZ2UgPSB7XG4gICAgICAuLi5yZXMuZXJyb3JNZXNzYWdlLFxuICAgICAgW2tleV06IGVycm9yTWVzc2FnZVxuICAgIH07XG4gIH1cbn1cbmZ1bmN0aW9uIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBrZXksIHZhbHVlLCBlcnJvck1lc3NhZ2UsIHJlZnMpIHtcbiAgcmVzW2tleV0gPSB2YWx1ZTtcbiAgYWRkRXJyb3JNZXNzYWdlKHJlcywga2V5LCBlcnJvck1lc3NhZ2UsIHJlZnMpO1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvYW55LmpzXG5mdW5jdGlvbiBwYXJzZUFueURlZigpIHtcbiAgcmV0dXJuIHt9O1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvYXJyYXkuanNcbmZ1bmN0aW9uIHBhcnNlQXJyYXlEZWYoZGVmLCByZWZzKSB7XG4gIGNvbnN0IHJlcyA9IHtcbiAgICB0eXBlOiBcImFycmF5XCJcbiAgfTtcbiAgaWYgKGRlZi50eXBlPy5fZGVmICYmIGRlZi50eXBlPy5fZGVmPy50eXBlTmFtZSAhPT0gWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEFueSkge1xuICAgIHJlcy5pdGVtcyA9IHBhcnNlRGVmKGRlZi50eXBlLl9kZWYsIHtcbiAgICAgIC4uLnJlZnMsXG4gICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiaXRlbXNcIl1cbiAgICB9KTtcbiAgfVxuICBpZiAoZGVmLm1pbkxlbmd0aCkge1xuICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1pbkl0ZW1zXCIsIGRlZi5taW5MZW5ndGgudmFsdWUsIGRlZi5taW5MZW5ndGgubWVzc2FnZSwgcmVmcyk7XG4gIH1cbiAgaWYgKGRlZi5tYXhMZW5ndGgpIHtcbiAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtYXhJdGVtc1wiLCBkZWYubWF4TGVuZ3RoLnZhbHVlLCBkZWYubWF4TGVuZ3RoLm1lc3NhZ2UsIHJlZnMpO1xuICB9XG4gIGlmIChkZWYuZXhhY3RMZW5ndGgpIHtcbiAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtaW5JdGVtc1wiLCBkZWYuZXhhY3RMZW5ndGgudmFsdWUsIGRlZi5leGFjdExlbmd0aC5tZXNzYWdlLCByZWZzKTtcbiAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtYXhJdGVtc1wiLCBkZWYuZXhhY3RMZW5ndGgudmFsdWUsIGRlZi5leGFjdExlbmd0aC5tZXNzYWdlLCByZWZzKTtcbiAgfVxuICByZXR1cm4gcmVzO1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvYmlnaW50LmpzXG5mdW5jdGlvbiBwYXJzZUJpZ2ludERlZihkZWYsIHJlZnMpIHtcbiAgY29uc3QgcmVzID0ge1xuICAgIHR5cGU6IFwiaW50ZWdlclwiLFxuICAgIGZvcm1hdDogXCJpbnQ2NFwiXG4gIH07XG4gIGlmICghZGVmLmNoZWNrcylcbiAgICByZXR1cm4gcmVzO1xuICBmb3IgKGNvbnN0IGNoZWNrIG9mIGRlZi5jaGVja3MpIHtcbiAgICBzd2l0Y2ggKGNoZWNrLmtpbmQpIHtcbiAgICAgIGNhc2UgXCJtaW5cIjpcbiAgICAgICAgaWYgKHJlZnMudGFyZ2V0ID09PSBcImpzb25TY2hlbWE3XCIpIHtcbiAgICAgICAgICBpZiAoY2hlY2suaW5jbHVzaXZlKSB7XG4gICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtaW5pbXVtXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwiZXhjbHVzaXZlTWluaW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghY2hlY2suaW5jbHVzaXZlKSB7XG4gICAgICAgICAgICByZXMuZXhjbHVzaXZlTWluaW11bSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1pbmltdW1cIiwgY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm1heFwiOlxuICAgICAgICBpZiAocmVmcy50YXJnZXQgPT09IFwianNvblNjaGVtYTdcIikge1xuICAgICAgICAgIGlmIChjaGVjay5pbmNsdXNpdmUpIHtcbiAgICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1heGltdW1cIiwgY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJleGNsdXNpdmVNYXhpbXVtXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFjaGVjay5pbmNsdXNpdmUpIHtcbiAgICAgICAgICAgIHJlcy5leGNsdXNpdmVNYXhpbXVtID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWF4aW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibXVsdGlwbGVPZlwiOlxuICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtdWx0aXBsZU9mXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXM7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9ib29sZWFuLmpzXG5mdW5jdGlvbiBwYXJzZUJvb2xlYW5EZWYoKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogXCJib29sZWFuXCJcbiAgfTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2JyYW5kZWQuanNcbmZ1bmN0aW9uIHBhcnNlQnJhbmRlZERlZihfZGVmLCByZWZzKSB7XG4gIHJldHVybiBwYXJzZURlZihfZGVmLnR5cGUuX2RlZiwgcmVmcyk7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9jYXRjaC5qc1xudmFyIHBhcnNlQ2F0Y2hEZWYgPSAoZGVmLCByZWZzKSA9PiB7XG4gIHJldHVybiBwYXJzZURlZihkZWYuaW5uZXJUeXBlLl9kZWYsIHJlZnMpO1xufTtcblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2RhdGUuanNcbmZ1bmN0aW9uIHBhcnNlRGF0ZURlZihkZWYsIHJlZnMsIG92ZXJyaWRlRGF0ZVN0cmF0ZWd5KSB7XG4gIGNvbnN0IHN0cmF0ZWd5ID0gb3ZlcnJpZGVEYXRlU3RyYXRlZ3kgPz8gcmVmcy5kYXRlU3RyYXRlZ3k7XG4gIGlmIChBcnJheS5pc0FycmF5KHN0cmF0ZWd5KSkge1xuICAgIHJldHVybiB7XG4gICAgICBhbnlPZjogc3RyYXRlZ3kubWFwKChpdGVtLCBpKSA9PiBwYXJzZURhdGVEZWYoZGVmLCByZWZzLCBpdGVtKSlcbiAgICB9O1xuICB9XG4gIHN3aXRjaCAoc3RyYXRlZ3kpIHtcbiAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgY2FzZSBcImZvcm1hdDpkYXRlLXRpbWVcIjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgIGZvcm1hdDogXCJkYXRlLXRpbWVcIlxuICAgICAgfTtcbiAgICBjYXNlIFwiZm9ybWF0OmRhdGVcIjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgIGZvcm1hdDogXCJkYXRlXCJcbiAgICAgIH07XG4gICAgY2FzZSBcImludGVnZXJcIjpcbiAgICAgIHJldHVybiBpbnRlZ2VyRGF0ZVBhcnNlcihkZWYsIHJlZnMpO1xuICB9XG59XG52YXIgaW50ZWdlckRhdGVQYXJzZXIgPSAoZGVmLCByZWZzKSA9PiB7XG4gIGNvbnN0IHJlcyA9IHtcbiAgICB0eXBlOiBcImludGVnZXJcIixcbiAgICBmb3JtYXQ6IFwidW5peC10aW1lXCJcbiAgfTtcbiAgaWYgKHJlZnMudGFyZ2V0ID09PSBcIm9wZW5BcGkzXCIpIHtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIGZvciAoY29uc3QgY2hlY2sgb2YgZGVmLmNoZWNrcykge1xuICAgIHN3aXRjaCAoY2hlY2sua2luZCkge1xuICAgICAgY2FzZSBcIm1pblwiOlxuICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKFxuICAgICAgICAgIHJlcyxcbiAgICAgICAgICBcIm1pbmltdW1cIixcbiAgICAgICAgICBjaGVjay52YWx1ZSxcbiAgICAgICAgICAvLyBUaGlzIGlzIGluIG1pbGxpc2Vjb25kc1xuICAgICAgICAgIGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgcmVmc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJtYXhcIjpcbiAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhcbiAgICAgICAgICByZXMsXG4gICAgICAgICAgXCJtYXhpbXVtXCIsXG4gICAgICAgICAgY2hlY2sudmFsdWUsXG4gICAgICAgICAgLy8gVGhpcyBpcyBpbiBtaWxsaXNlY29uZHNcbiAgICAgICAgICBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgIHJlZnNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXM7XG59O1xuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvZGVmYXVsdC5qc1xuZnVuY3Rpb24gcGFyc2VEZWZhdWx0RGVmKF9kZWYsIHJlZnMpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wYXJzZURlZihfZGVmLmlubmVyVHlwZS5fZGVmLCByZWZzKSxcbiAgICBkZWZhdWx0OiBfZGVmLmRlZmF1bHRWYWx1ZSgpXG4gIH07XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9lZmZlY3RzLmpzXG5mdW5jdGlvbiBwYXJzZUVmZmVjdHNEZWYoX2RlZiwgcmVmcykge1xuICByZXR1cm4gcmVmcy5lZmZlY3RTdHJhdGVneSA9PT0gXCJpbnB1dFwiID8gcGFyc2VEZWYoX2RlZi5zY2hlbWEuX2RlZiwgcmVmcykgOiB7fTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2VudW0uanNcbmZ1bmN0aW9uIHBhcnNlRW51bURlZihkZWYpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgIGVudW06IEFycmF5LmZyb20oZGVmLnZhbHVlcylcbiAgfTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2ludGVyc2VjdGlvbi5qc1xudmFyIGlzSnNvblNjaGVtYTdBbGxPZlR5cGUgPSAodHlwZSkgPT4ge1xuICBpZiAoXCJ0eXBlXCIgaW4gdHlwZSAmJiB0eXBlLnR5cGUgPT09IFwic3RyaW5nXCIpXG4gICAgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gXCJhbGxPZlwiIGluIHR5cGU7XG59O1xuZnVuY3Rpb24gcGFyc2VJbnRlcnNlY3Rpb25EZWYoZGVmLCByZWZzKSB7XG4gIGNvbnN0IGFsbE9mID0gW1xuICAgIHBhcnNlRGVmKGRlZi5sZWZ0Ll9kZWYsIHtcbiAgICAgIC4uLnJlZnMsXG4gICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiYWxsT2ZcIiwgXCIwXCJdXG4gICAgfSksXG4gICAgcGFyc2VEZWYoZGVmLnJpZ2h0Ll9kZWYsIHtcbiAgICAgIC4uLnJlZnMsXG4gICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiYWxsT2ZcIiwgXCIxXCJdXG4gICAgfSlcbiAgXS5maWx0ZXIoKHgpID0+ICEheCk7XG4gIGxldCB1bmV2YWx1YXRlZFByb3BlcnRpZXMgPSByZWZzLnRhcmdldCA9PT0gXCJqc29uU2NoZW1hMjAxOS0wOVwiID8geyB1bmV2YWx1YXRlZFByb3BlcnRpZXM6IGZhbHNlIH0gOiB2b2lkIDA7XG4gIGNvbnN0IG1lcmdlZEFsbE9mID0gW107XG4gIGFsbE9mLmZvckVhY2goKHNjaGVtYSkgPT4ge1xuICAgIGlmIChpc0pzb25TY2hlbWE3QWxsT2ZUeXBlKHNjaGVtYSkpIHtcbiAgICAgIG1lcmdlZEFsbE9mLnB1c2goLi4uc2NoZW1hLmFsbE9mKTtcbiAgICAgIGlmIChzY2hlbWEudW5ldmFsdWF0ZWRQcm9wZXJ0aWVzID09PSB2b2lkIDApIHtcbiAgICAgICAgdW5ldmFsdWF0ZWRQcm9wZXJ0aWVzID0gdm9pZCAwO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgbmVzdGVkU2NoZW1hID0gc2NoZW1hO1xuICAgICAgaWYgKFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIiBpbiBzY2hlbWEgJiYgc2NoZW1hLmFkZGl0aW9uYWxQcm9wZXJ0aWVzID09PSBmYWxzZSkge1xuICAgICAgICBjb25zdCB7IGFkZGl0aW9uYWxQcm9wZXJ0aWVzLCAuLi5yZXN0IH0gPSBzY2hlbWE7XG4gICAgICAgIG5lc3RlZFNjaGVtYSA9IHJlc3Q7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1bmV2YWx1YXRlZFByb3BlcnRpZXMgPSB2b2lkIDA7XG4gICAgICB9XG4gICAgICBtZXJnZWRBbGxPZi5wdXNoKG5lc3RlZFNjaGVtYSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG1lcmdlZEFsbE9mLmxlbmd0aCA/IHtcbiAgICBhbGxPZjogbWVyZ2VkQWxsT2YsXG4gICAgLi4udW5ldmFsdWF0ZWRQcm9wZXJ0aWVzXG4gIH0gOiB2b2lkIDA7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9saXRlcmFsLmpzXG5mdW5jdGlvbiBwYXJzZUxpdGVyYWxEZWYoZGVmLCByZWZzKSB7XG4gIGNvbnN0IHBhcnNlZFR5cGUgPSB0eXBlb2YgZGVmLnZhbHVlO1xuICBpZiAocGFyc2VkVHlwZSAhPT0gXCJiaWdpbnRcIiAmJiBwYXJzZWRUeXBlICE9PSBcIm51bWJlclwiICYmIHBhcnNlZFR5cGUgIT09IFwiYm9vbGVhblwiICYmIHBhcnNlZFR5cGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogQXJyYXkuaXNBcnJheShkZWYudmFsdWUpID8gXCJhcnJheVwiIDogXCJvYmplY3RcIlxuICAgIH07XG4gIH1cbiAgaWYgKHJlZnMudGFyZ2V0ID09PSBcIm9wZW5BcGkzXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogcGFyc2VkVHlwZSA9PT0gXCJiaWdpbnRcIiA/IFwiaW50ZWdlclwiIDogcGFyc2VkVHlwZSxcbiAgICAgIGVudW06IFtkZWYudmFsdWVdXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHR5cGU6IHBhcnNlZFR5cGUgPT09IFwiYmlnaW50XCIgPyBcImludGVnZXJcIiA6IHBhcnNlZFR5cGUsXG4gICAgY29uc3Q6IGRlZi52YWx1ZVxuICB9O1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvc3RyaW5nLmpzXG52YXIgZW1vamlSZWdleDIgPSB2b2lkIDA7XG52YXIgem9kUGF0dGVybnMgPSB7XG4gIC8qKlxuICAgKiBgY2Agd2FzIGNoYW5nZWQgdG8gYFtjQ11gIHRvIHJlcGxpY2F0ZSAvaSBmbGFnXG4gICAqL1xuICBjdWlkOiAvXltjQ11bXlxccy1dezgsfSQvLFxuICBjdWlkMjogL15bMC05YS16XSskLyxcbiAgdWxpZDogL15bMC05QS1ISktNTlAtVFYtWl17MjZ9JC8sXG4gIC8qKlxuICAgKiBgYS16YCB3YXMgYWRkZWQgdG8gcmVwbGljYXRlIC9pIGZsYWdcbiAgICovXG4gIGVtYWlsOiAvXig/IVxcLikoPyEuKlxcLlxcLikoW2EtekEtWjAtOV8nK1xcLVxcLl0qKVthLXpBLVowLTlfKy1dQChbYS16QS1aMC05XVthLXpBLVowLTlcXC1dKlxcLikrW2EtekEtWl17Mix9JC8sXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RlZCBhIHZhbGlkIFVuaWNvZGUgUmVnRXhwXG4gICAqXG4gICAqIExhemlseSBpbnN0YW50aWF0ZSBzaW5jZSB0aGlzIHR5cGUgb2YgcmVnZXggaXNuJ3Qgc3VwcG9ydGVkXG4gICAqIGluIGFsbCBlbnZzIChlLmcuIFJlYWN0IE5hdGl2ZSkuXG4gICAqXG4gICAqIFNlZTpcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2NvbGluaGFja3Mvem9kL2lzc3Vlcy8yNDMzXG4gICAqIEZpeCBpbiBab2Q6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9jb2xpbmhhY2tzL3pvZC9jb21taXQvOTM0MGZkNTFlNDg1NzZhNzVhZGM5MTliZmY2NWRiYzRhNWQ0Yzk5YlxuICAgKi9cbiAgZW1vamk6ICgpID0+IHtcbiAgICBpZiAoZW1vamlSZWdleDIgPT09IHZvaWQgMCkge1xuICAgICAgZW1vamlSZWdleDIgPSBSZWdFeHAoXCJeKFxcXFxwe0V4dGVuZGVkX1BpY3RvZ3JhcGhpY318XFxcXHB7RW1vamlfQ29tcG9uZW50fSkrJFwiLCBcInVcIik7XG4gICAgfVxuICAgIHJldHVybiBlbW9qaVJlZ2V4MjtcbiAgfSxcbiAgLyoqXG4gICAqIFVudXNlZFxuICAgKi9cbiAgdXVpZDogL15bMC05YS1mQS1GXXs4fVxcYi1bMC05YS1mQS1GXXs0fVxcYi1bMC05YS1mQS1GXXs0fVxcYi1bMC05YS1mQS1GXXs0fVxcYi1bMC05YS1mQS1GXXsxMn0kLyxcbiAgLyoqXG4gICAqIFVudXNlZFxuICAgKi9cbiAgaXB2NDogL14oPzooPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSkkLyxcbiAgaXB2NENpZHI6IC9eKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVxcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXFwvKDNbMC0yXXxbMTJdP1swLTldKSQvLFxuICAvKipcbiAgICogVW51c2VkXG4gICAqL1xuICBpcHY2OiAvXigoW2EtZjAtOV17MSw0fTopezd9fDo6KFthLWYwLTldezEsNH06KXswLDZ9fChbYS1mMC05XXsxLDR9Oil7MX06KFthLWYwLTldezEsNH06KXswLDV9fChbYS1mMC05XXsxLDR9Oil7Mn06KFthLWYwLTldezEsNH06KXswLDR9fChbYS1mMC05XXsxLDR9Oil7M306KFthLWYwLTldezEsNH06KXswLDN9fChbYS1mMC05XXsxLDR9Oil7NH06KFthLWYwLTldezEsNH06KXswLDJ9fChbYS1mMC05XXsxLDR9Oil7NX06KFthLWYwLTldezEsNH06KXswLDF9KShbYS1mMC05XXsxLDR9fCgoKDI1WzAtNV0pfCgyWzAtNF1bMC05XSl8KDFbMC05XXsyfSl8KFswLTldezEsMn0pKVxcLil7M30oKDI1WzAtNV0pfCgyWzAtNF1bMC05XSl8KDFbMC05XXsyfSl8KFswLTldezEsMn0pKSkkLyxcbiAgaXB2NkNpZHI6IC9eKChbMC05YS1mQS1GXXsxLDR9Oil7Nyw3fVswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDd9OnwoWzAtOWEtZkEtRl17MSw0fTopezEsNn06WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsNX0oOlswLTlhLWZBLUZdezEsNH0pezEsMn18KFswLTlhLWZBLUZdezEsNH06KXsxLDR9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDN9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwzfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsMn0oOlswLTlhLWZBLUZdezEsNH0pezEsNX18WzAtOWEtZkEtRl17MSw0fTooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDZ9KXw6KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw3fXw6KXxmZTgwOig6WzAtOWEtZkEtRl17MCw0fSl7MCw0fSVbMC05YS16QS1aXXsxLH18OjooZmZmZig6MHsxLDR9KXswLDF9Oil7MCwxfSgoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH06KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pKVxcLygxMlswLThdfDFbMDFdWzAtOV18WzEtOV0/WzAtOV0pJC8sXG4gIGJhc2U2NDogL14oWzAtOWEtekEtWisvXXs0fSkqKChbMC05YS16QS1aKy9dezJ9PT0pfChbMC05YS16QS1aKy9dezN9PSkpPyQvLFxuICBiYXNlNjR1cmw6IC9eKFswLTlhLXpBLVotX117NH0pKigoWzAtOWEtekEtWi1fXXsyfSg9PSk/KXwoWzAtOWEtekEtWi1fXXszfSg9KT8pKT8kLyxcbiAgbmFub2lkOiAvXlthLXpBLVowLTlfLV17MjF9JC8sXG4gIGp3dDogL15bQS1aYS16MC05LV9dK1xcLltBLVphLXowLTktX10rXFwuW0EtWmEtejAtOS1fXSokL1xufTtcbmZ1bmN0aW9uIHBhcnNlU3RyaW5nRGVmKGRlZiwgcmVmcykge1xuICBjb25zdCByZXMgPSB7XG4gICAgdHlwZTogXCJzdHJpbmdcIlxuICB9O1xuICBpZiAoZGVmLmNoZWNrcykge1xuICAgIGZvciAoY29uc3QgY2hlY2sgb2YgZGVmLmNoZWNrcykge1xuICAgICAgc3dpdGNoIChjaGVjay5raW5kKSB7XG4gICAgICAgIGNhc2UgXCJtaW5cIjpcbiAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtaW5MZW5ndGhcIiwgdHlwZW9mIHJlcy5taW5MZW5ndGggPT09IFwibnVtYmVyXCIgPyBNYXRoLm1heChyZXMubWluTGVuZ3RoLCBjaGVjay52YWx1ZSkgOiBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtYXhcIjpcbiAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtYXhMZW5ndGhcIiwgdHlwZW9mIHJlcy5tYXhMZW5ndGggPT09IFwibnVtYmVyXCIgPyBNYXRoLm1pbihyZXMubWF4TGVuZ3RoLCBjaGVjay52YWx1ZSkgOiBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJlbWFpbFwiOlxuICAgICAgICAgIHN3aXRjaCAocmVmcy5lbWFpbFN0cmF0ZWd5KSB7XG4gICAgICAgICAgICBjYXNlIFwiZm9ybWF0OmVtYWlsXCI6XG4gICAgICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwiZW1haWxcIiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImZvcm1hdDppZG4tZW1haWxcIjpcbiAgICAgICAgICAgICAgYWRkRm9ybWF0KHJlcywgXCJpZG4tZW1haWxcIiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInBhdHRlcm46em9kXCI6XG4gICAgICAgICAgICAgIGFkZFBhdHRlcm4ocmVzLCB6b2RQYXR0ZXJucy5lbWFpbCwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInVybFwiOlxuICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwidXJpXCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwidXVpZFwiOlxuICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwidXVpZFwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInJlZ2V4XCI6XG4gICAgICAgICAgYWRkUGF0dGVybihyZXMsIGNoZWNrLnJlZ2V4LCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImN1aWRcIjpcbiAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgem9kUGF0dGVybnMuY3VpZCwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJjdWlkMlwiOlxuICAgICAgICAgIGFkZFBhdHRlcm4ocmVzLCB6b2RQYXR0ZXJucy5jdWlkMiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJzdGFydHNXaXRoXCI6XG4gICAgICAgICAgYWRkUGF0dGVybihyZXMsIFJlZ0V4cChgXiR7ZXNjYXBlTGl0ZXJhbENoZWNrVmFsdWUoY2hlY2sudmFsdWUsIHJlZnMpfWApLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImVuZHNXaXRoXCI6XG4gICAgICAgICAgYWRkUGF0dGVybihyZXMsIFJlZ0V4cChgJHtlc2NhcGVMaXRlcmFsQ2hlY2tWYWx1ZShjaGVjay52YWx1ZSwgcmVmcyl9JGApLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImRhdGV0aW1lXCI6XG4gICAgICAgICAgYWRkRm9ybWF0KHJlcywgXCJkYXRlLXRpbWVcIiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkYXRlXCI6XG4gICAgICAgICAgYWRkRm9ybWF0KHJlcywgXCJkYXRlXCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwidGltZVwiOlxuICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwidGltZVwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImR1cmF0aW9uXCI6XG4gICAgICAgICAgYWRkRm9ybWF0KHJlcywgXCJkdXJhdGlvblwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImxlbmd0aFwiOlxuICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1pbkxlbmd0aFwiLCB0eXBlb2YgcmVzLm1pbkxlbmd0aCA9PT0gXCJudW1iZXJcIiA/IE1hdGgubWF4KHJlcy5taW5MZW5ndGgsIGNoZWNrLnZhbHVlKSA6IGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtYXhMZW5ndGhcIiwgdHlwZW9mIHJlcy5tYXhMZW5ndGggPT09IFwibnVtYmVyXCIgPyBNYXRoLm1pbihyZXMubWF4TGVuZ3RoLCBjaGVjay52YWx1ZSkgOiBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJpbmNsdWRlc1wiOiB7XG4gICAgICAgICAgYWRkUGF0dGVybihyZXMsIFJlZ0V4cChlc2NhcGVMaXRlcmFsQ2hlY2tWYWx1ZShjaGVjay52YWx1ZSwgcmVmcykpLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiaXBcIjoge1xuICAgICAgICAgIGlmIChjaGVjay52ZXJzaW9uICE9PSBcInY2XCIpIHtcbiAgICAgICAgICAgIGFkZEZvcm1hdChyZXMsIFwiaXB2NFwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNoZWNrLnZlcnNpb24gIT09IFwidjRcIikge1xuICAgICAgICAgICAgYWRkRm9ybWF0KHJlcywgXCJpcHY2XCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiYmFzZTY0dXJsXCI6XG4gICAgICAgICAgYWRkUGF0dGVybihyZXMsIHpvZFBhdHRlcm5zLmJhc2U2NHVybCwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJqd3RcIjpcbiAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgem9kUGF0dGVybnMuand0LCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImNpZHJcIjoge1xuICAgICAgICAgIGlmIChjaGVjay52ZXJzaW9uICE9PSBcInY2XCIpIHtcbiAgICAgICAgICAgIGFkZFBhdHRlcm4ocmVzLCB6b2RQYXR0ZXJucy5pcHY0Q2lkciwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjaGVjay52ZXJzaW9uICE9PSBcInY0XCIpIHtcbiAgICAgICAgICAgIGFkZFBhdHRlcm4ocmVzLCB6b2RQYXR0ZXJucy5pcHY2Q2lkciwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJlbW9qaVwiOlxuICAgICAgICAgIGFkZFBhdHRlcm4ocmVzLCB6b2RQYXR0ZXJucy5lbW9qaSgpLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInVsaWRcIjoge1xuICAgICAgICAgIGFkZFBhdHRlcm4ocmVzLCB6b2RQYXR0ZXJucy51bGlkLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiYmFzZTY0XCI6IHtcbiAgICAgICAgICBzd2l0Y2ggKHJlZnMuYmFzZTY0U3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNhc2UgXCJmb3JtYXQ6YmluYXJ5XCI6IHtcbiAgICAgICAgICAgICAgYWRkRm9ybWF0KHJlcywgXCJiaW5hcnlcIiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcImNvbnRlbnRFbmNvZGluZzpiYXNlNjRcIjoge1xuICAgICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJjb250ZW50RW5jb2RpbmdcIiwgXCJiYXNlNjRcIiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcInBhdHRlcm46em9kXCI6IHtcbiAgICAgICAgICAgICAgYWRkUGF0dGVybihyZXMsIHpvZFBhdHRlcm5zLmJhc2U2NCwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwibmFub2lkXCI6IHtcbiAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgem9kUGF0dGVybnMubmFub2lkLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwidG9Mb3dlckNhc2VcIjpcbiAgICAgICAgY2FzZSBcInRvVXBwZXJDYXNlXCI6XG4gICAgICAgIGNhc2UgXCJ0cmltXCI6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLyogQF9fUFVSRV9fICovICgoXzIpID0+IHtcbiAgICAgICAgICB9KShjaGVjayk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXM7XG59XG5mdW5jdGlvbiBlc2NhcGVMaXRlcmFsQ2hlY2tWYWx1ZShsaXRlcmFsLCByZWZzKSB7XG4gIHJldHVybiByZWZzLnBhdHRlcm5TdHJhdGVneSA9PT0gXCJlc2NhcGVcIiA/IGVzY2FwZU5vbkFscGhhTnVtZXJpYyhsaXRlcmFsKSA6IGxpdGVyYWw7XG59XG52YXIgQUxQSEFfTlVNRVJJQyA9IG5ldyBTZXQoXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnh5ejAxMjM0NTY3ODlcIik7XG5mdW5jdGlvbiBlc2NhcGVOb25BbHBoYU51bWVyaWMoc291cmNlKSB7XG4gIGxldCByZXN1bHQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7IGkrKykge1xuICAgIGlmICghQUxQSEFfTlVNRVJJQy5oYXMoc291cmNlW2ldKSkge1xuICAgICAgcmVzdWx0ICs9IFwiXFxcXFwiO1xuICAgIH1cbiAgICByZXN1bHQgKz0gc291cmNlW2ldO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBhZGRGb3JtYXQoc2NoZW1hLCB2YWx1ZSwgbWVzc2FnZSwgcmVmcykge1xuICBpZiAoc2NoZW1hLmZvcm1hdCB8fCBzY2hlbWEuYW55T2Y/LnNvbWUoKHgpID0+IHguZm9ybWF0KSkge1xuICAgIGlmICghc2NoZW1hLmFueU9mKSB7XG4gICAgICBzY2hlbWEuYW55T2YgPSBbXTtcbiAgICB9XG4gICAgaWYgKHNjaGVtYS5mb3JtYXQpIHtcbiAgICAgIHNjaGVtYS5hbnlPZi5wdXNoKHtcbiAgICAgICAgZm9ybWF0OiBzY2hlbWEuZm9ybWF0LFxuICAgICAgICAuLi5zY2hlbWEuZXJyb3JNZXNzYWdlICYmIHJlZnMuZXJyb3JNZXNzYWdlcyAmJiB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlOiB7IGZvcm1hdDogc2NoZW1hLmVycm9yTWVzc2FnZS5mb3JtYXQgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGRlbGV0ZSBzY2hlbWEuZm9ybWF0O1xuICAgICAgaWYgKHNjaGVtYS5lcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgZGVsZXRlIHNjaGVtYS5lcnJvck1lc3NhZ2UuZm9ybWF0O1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoc2NoZW1hLmVycm9yTWVzc2FnZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgZGVsZXRlIHNjaGVtYS5lcnJvck1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgc2NoZW1hLmFueU9mLnB1c2goe1xuICAgICAgZm9ybWF0OiB2YWx1ZSxcbiAgICAgIC4uLm1lc3NhZ2UgJiYgcmVmcy5lcnJvck1lc3NhZ2VzICYmIHsgZXJyb3JNZXNzYWdlOiB7IGZvcm1hdDogbWVzc2FnZSB9IH1cbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHNjaGVtYSwgXCJmb3JtYXRcIiwgdmFsdWUsIG1lc3NhZ2UsIHJlZnMpO1xuICB9XG59XG5mdW5jdGlvbiBhZGRQYXR0ZXJuKHNjaGVtYSwgcmVnZXgsIG1lc3NhZ2UsIHJlZnMpIHtcbiAgaWYgKHNjaGVtYS5wYXR0ZXJuIHx8IHNjaGVtYS5hbGxPZj8uc29tZSgoeCkgPT4geC5wYXR0ZXJuKSkge1xuICAgIGlmICghc2NoZW1hLmFsbE9mKSB7XG4gICAgICBzY2hlbWEuYWxsT2YgPSBbXTtcbiAgICB9XG4gICAgaWYgKHNjaGVtYS5wYXR0ZXJuKSB7XG4gICAgICBzY2hlbWEuYWxsT2YucHVzaCh7XG4gICAgICAgIHBhdHRlcm46IHNjaGVtYS5wYXR0ZXJuLFxuICAgICAgICAuLi5zY2hlbWEuZXJyb3JNZXNzYWdlICYmIHJlZnMuZXJyb3JNZXNzYWdlcyAmJiB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlOiB7IHBhdHRlcm46IHNjaGVtYS5lcnJvck1lc3NhZ2UucGF0dGVybiB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgZGVsZXRlIHNjaGVtYS5wYXR0ZXJuO1xuICAgICAgaWYgKHNjaGVtYS5lcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgZGVsZXRlIHNjaGVtYS5lcnJvck1lc3NhZ2UucGF0dGVybjtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHNjaGVtYS5lcnJvck1lc3NhZ2UpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGRlbGV0ZSBzY2hlbWEuZXJyb3JNZXNzYWdlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHNjaGVtYS5hbGxPZi5wdXNoKHtcbiAgICAgIHBhdHRlcm46IHN0cmluZ2lmeVJlZ0V4cFdpdGhGbGFncyhyZWdleCwgcmVmcyksXG4gICAgICAuLi5tZXNzYWdlICYmIHJlZnMuZXJyb3JNZXNzYWdlcyAmJiB7IGVycm9yTWVzc2FnZTogeyBwYXR0ZXJuOiBtZXNzYWdlIH0gfVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMoc2NoZW1hLCBcInBhdHRlcm5cIiwgc3RyaW5naWZ5UmVnRXhwV2l0aEZsYWdzKHJlZ2V4LCByZWZzKSwgbWVzc2FnZSwgcmVmcyk7XG4gIH1cbn1cbmZ1bmN0aW9uIHN0cmluZ2lmeVJlZ0V4cFdpdGhGbGFncyhyZWdleCwgcmVmcykge1xuICBpZiAoIXJlZnMuYXBwbHlSZWdleEZsYWdzIHx8ICFyZWdleC5mbGFncykge1xuICAgIHJldHVybiByZWdleC5zb3VyY2U7XG4gIH1cbiAgY29uc3QgZmxhZ3MgPSB7XG4gICAgaTogcmVnZXguZmxhZ3MuaW5jbHVkZXMoXCJpXCIpLFxuICAgIG06IHJlZ2V4LmZsYWdzLmluY2x1ZGVzKFwibVwiKSxcbiAgICBzOiByZWdleC5mbGFncy5pbmNsdWRlcyhcInNcIilcbiAgICAvLyBgLmAgbWF0Y2hlcyBuZXdsaW5lc1xuICB9O1xuICBjb25zdCBzb3VyY2UgPSBmbGFncy5pID8gcmVnZXguc291cmNlLnRvTG93ZXJDYXNlKCkgOiByZWdleC5zb3VyY2U7XG4gIGxldCBwYXR0ZXJuID0gXCJcIjtcbiAgbGV0IGlzRXNjYXBlZCA9IGZhbHNlO1xuICBsZXQgaW5DaGFyR3JvdXAgPSBmYWxzZTtcbiAgbGV0IGluQ2hhclJhbmdlID0gZmFsc2U7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGlzRXNjYXBlZCkge1xuICAgICAgcGF0dGVybiArPSBzb3VyY2VbaV07XG4gICAgICBpc0VzY2FwZWQgPSBmYWxzZTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoZmxhZ3MuaSkge1xuICAgICAgaWYgKGluQ2hhckdyb3VwKSB7XG4gICAgICAgIGlmIChzb3VyY2VbaV0ubWF0Y2goL1thLXpdLykpIHtcbiAgICAgICAgICBpZiAoaW5DaGFyUmFuZ2UpIHtcbiAgICAgICAgICAgIHBhdHRlcm4gKz0gc291cmNlW2ldO1xuICAgICAgICAgICAgcGF0dGVybiArPSBgJHtzb3VyY2VbaSAtIDJdfS0ke3NvdXJjZVtpXX1gLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICBpbkNoYXJSYW5nZSA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc291cmNlW2kgKyAxXSA9PT0gXCItXCIgJiYgc291cmNlW2kgKyAyXT8ubWF0Y2goL1thLXpdLykpIHtcbiAgICAgICAgICAgIHBhdHRlcm4gKz0gc291cmNlW2ldO1xuICAgICAgICAgICAgaW5DaGFyUmFuZ2UgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXR0ZXJuICs9IGAke3NvdXJjZVtpXX0ke3NvdXJjZVtpXS50b1VwcGVyQ2FzZSgpfWA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHNvdXJjZVtpXS5tYXRjaCgvW2Etel0vKSkge1xuICAgICAgICBwYXR0ZXJuICs9IGBbJHtzb3VyY2VbaV19JHtzb3VyY2VbaV0udG9VcHBlckNhc2UoKX1dYDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChmbGFncy5tKSB7XG4gICAgICBpZiAoc291cmNlW2ldID09PSBcIl5cIikge1xuICAgICAgICBwYXR0ZXJuICs9IGAoXnwoPzw9W1xcclxuXSkpYDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IGVsc2UgaWYgKHNvdXJjZVtpXSA9PT0gXCIkXCIpIHtcbiAgICAgICAgcGF0dGVybiArPSBgKCR8KD89W1xcclxuXSkpYDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChmbGFncy5zICYmIHNvdXJjZVtpXSA9PT0gXCIuXCIpIHtcbiAgICAgIHBhdHRlcm4gKz0gaW5DaGFyR3JvdXAgPyBgJHtzb3VyY2VbaV19XFxyXG5gIDogYFske3NvdXJjZVtpXX1cXHJcbl1gO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHBhdHRlcm4gKz0gc291cmNlW2ldO1xuICAgIGlmIChzb3VyY2VbaV0gPT09IFwiXFxcXFwiKSB7XG4gICAgICBpc0VzY2FwZWQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoaW5DaGFyR3JvdXAgJiYgc291cmNlW2ldID09PSBcIl1cIikge1xuICAgICAgaW5DaGFyR3JvdXAgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKCFpbkNoYXJHcm91cCAmJiBzb3VyY2VbaV0gPT09IFwiW1wiKSB7XG4gICAgICBpbkNoYXJHcm91cCA9IHRydWU7XG4gICAgfVxuICB9XG4gIHRyeSB7XG4gICAgbmV3IFJlZ0V4cChwYXR0ZXJuKTtcbiAgfSBjYXRjaCB7XG4gICAgY29uc29sZS53YXJuKGBDb3VsZCBub3QgY29udmVydCByZWdleCBwYXR0ZXJuIGF0ICR7cmVmcy5jdXJyZW50UGF0aC5qb2luKFwiL1wiKX0gdG8gYSBmbGFnLWluZGVwZW5kZW50IGZvcm0hIEZhbGxpbmcgYmFjayB0byB0aGUgZmxhZy1pZ25vcmFudCBzb3VyY2VgKTtcbiAgICByZXR1cm4gcmVnZXguc291cmNlO1xuICB9XG4gIHJldHVybiBwYXR0ZXJuO1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvcmVjb3JkLmpzXG5mdW5jdGlvbiBwYXJzZVJlY29yZERlZihkZWYsIHJlZnMpIHtcbiAgaWYgKHJlZnMudGFyZ2V0ID09PSBcIm9wZW5BaVwiKSB7XG4gICAgY29uc29sZS53YXJuKFwiV2FybmluZzogT3BlbkFJIG1heSBub3Qgc3VwcG9ydCByZWNvcmRzIGluIHNjaGVtYXMhIFRyeSBhbiBhcnJheSBvZiBrZXktdmFsdWUgcGFpcnMgaW5zdGVhZC5cIik7XG4gIH1cbiAgaWYgKHJlZnMudGFyZ2V0ID09PSBcIm9wZW5BcGkzXCIgJiYgZGVmLmtleVR5cGU/Ll9kZWYudHlwZU5hbWUgPT09IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFbnVtKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICByZXF1aXJlZDogZGVmLmtleVR5cGUuX2RlZi52YWx1ZXMsXG4gICAgICBwcm9wZXJ0aWVzOiBkZWYua2V5VHlwZS5fZGVmLnZhbHVlcy5yZWR1Y2UoKGFjYywga2V5KSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtrZXldOiBwYXJzZURlZihkZWYudmFsdWVUeXBlLl9kZWYsIHtcbiAgICAgICAgICAuLi5yZWZzLFxuICAgICAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJwcm9wZXJ0aWVzXCIsIGtleV1cbiAgICAgICAgfSkgPz8ge31cbiAgICAgIH0pLCB7fSksXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2VcbiAgICB9O1xuICB9XG4gIGNvbnN0IHNjaGVtYSA9IHtcbiAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBwYXJzZURlZihkZWYudmFsdWVUeXBlLl9kZWYsIHtcbiAgICAgIC4uLnJlZnMsXG4gICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIl1cbiAgICB9KSA/PyB7fVxuICB9O1xuICBpZiAocmVmcy50YXJnZXQgPT09IFwib3BlbkFwaTNcIikge1xuICAgIHJldHVybiBzY2hlbWE7XG4gIH1cbiAgaWYgKGRlZi5rZXlUeXBlPy5fZGVmLnR5cGVOYW1lID09PSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kU3RyaW5nICYmIGRlZi5rZXlUeXBlLl9kZWYuY2hlY2tzPy5sZW5ndGgpIHtcbiAgICBjb25zdCB7IHR5cGUsIC4uLmtleVR5cGUgfSA9IHBhcnNlU3RyaW5nRGVmKGRlZi5rZXlUeXBlLl9kZWYsIHJlZnMpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zY2hlbWEsXG4gICAgICBwcm9wZXJ0eU5hbWVzOiBrZXlUeXBlXG4gICAgfTtcbiAgfSBlbHNlIGlmIChkZWYua2V5VHlwZT8uX2RlZi50eXBlTmFtZSA9PT0gWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVudW0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2NoZW1hLFxuICAgICAgcHJvcGVydHlOYW1lczoge1xuICAgICAgICBlbnVtOiBkZWYua2V5VHlwZS5fZGVmLnZhbHVlc1xuICAgICAgfVxuICAgIH07XG4gIH0gZWxzZSBpZiAoZGVmLmtleVR5cGU/Ll9kZWYudHlwZU5hbWUgPT09IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RCcmFuZGVkICYmIGRlZi5rZXlUeXBlLl9kZWYudHlwZS5fZGVmLnR5cGVOYW1lID09PSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kU3RyaW5nICYmIGRlZi5rZXlUeXBlLl9kZWYudHlwZS5fZGVmLmNoZWNrcz8ubGVuZ3RoKSB7XG4gICAgY29uc3QgeyB0eXBlLCAuLi5rZXlUeXBlIH0gPSBwYXJzZUJyYW5kZWREZWYoZGVmLmtleVR5cGUuX2RlZiwgcmVmcyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNjaGVtYSxcbiAgICAgIHByb3BlcnR5TmFtZXM6IGtleVR5cGVcbiAgICB9O1xuICB9XG4gIHJldHVybiBzY2hlbWE7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9tYXAuanNcbmZ1bmN0aW9uIHBhcnNlTWFwRGVmKGRlZiwgcmVmcykge1xuICBpZiAocmVmcy5tYXBTdHJhdGVneSA9PT0gXCJyZWNvcmRcIikge1xuICAgIHJldHVybiBwYXJzZVJlY29yZERlZihkZWYsIHJlZnMpO1xuICB9XG4gIGNvbnN0IGtleXMgPSBwYXJzZURlZihkZWYua2V5VHlwZS5fZGVmLCB7XG4gICAgLi4ucmVmcyxcbiAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiaXRlbXNcIiwgXCJpdGVtc1wiLCBcIjBcIl1cbiAgfSkgfHwge307XG4gIGNvbnN0IHZhbHVlcyA9IHBhcnNlRGVmKGRlZi52YWx1ZVR5cGUuX2RlZiwge1xuICAgIC4uLnJlZnMsXG4gICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcIml0ZW1zXCIsIFwiaXRlbXNcIiwgXCIxXCJdXG4gIH0pIHx8IHt9O1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICBtYXhJdGVtczogMTI1LFxuICAgIGl0ZW1zOiB7XG4gICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICBpdGVtczogW2tleXMsIHZhbHVlc10sXG4gICAgICBtaW5JdGVtczogMixcbiAgICAgIG1heEl0ZW1zOiAyXG4gICAgfVxuICB9O1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvbmF0aXZlRW51bS5qc1xuZnVuY3Rpb24gcGFyc2VOYXRpdmVFbnVtRGVmKGRlZikge1xuICBjb25zdCBvYmplY3QgPSBkZWYudmFsdWVzO1xuICBjb25zdCBhY3R1YWxLZXlzID0gT2JqZWN0LmtleXMoZGVmLnZhbHVlcykuZmlsdGVyKChrZXkpID0+IHtcbiAgICByZXR1cm4gdHlwZW9mIG9iamVjdFtvYmplY3Rba2V5XV0gIT09IFwibnVtYmVyXCI7XG4gIH0pO1xuICBjb25zdCBhY3R1YWxWYWx1ZXMgPSBhY3R1YWxLZXlzLm1hcCgoa2V5KSA9PiBvYmplY3Rba2V5XSk7XG4gIGNvbnN0IHBhcnNlZFR5cGVzID0gQXJyYXkuZnJvbShuZXcgU2V0KGFjdHVhbFZhbHVlcy5tYXAoKHZhbHVlcykgPT4gdHlwZW9mIHZhbHVlcykpKTtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBwYXJzZWRUeXBlcy5sZW5ndGggPT09IDEgPyBwYXJzZWRUeXBlc1swXSA9PT0gXCJzdHJpbmdcIiA/IFwic3RyaW5nXCIgOiBcIm51bWJlclwiIDogW1wic3RyaW5nXCIsIFwibnVtYmVyXCJdLFxuICAgIGVudW06IGFjdHVhbFZhbHVlc1xuICB9O1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvbmV2ZXIuanNcbmZ1bmN0aW9uIHBhcnNlTmV2ZXJEZWYoKSB7XG4gIHJldHVybiB7XG4gICAgbm90OiB7fVxuICB9O1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvbnVsbC5qc1xuZnVuY3Rpb24gcGFyc2VOdWxsRGVmKHJlZnMpIHtcbiAgcmV0dXJuIHJlZnMudGFyZ2V0ID09PSBcIm9wZW5BcGkzXCIgPyB7XG4gICAgZW51bTogW1wibnVsbFwiXSxcbiAgICBudWxsYWJsZTogdHJ1ZVxuICB9IDoge1xuICAgIHR5cGU6IFwibnVsbFwiXG4gIH07XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy91bmlvbi5qc1xudmFyIHByaW1pdGl2ZU1hcHBpbmdzID0ge1xuICBab2RTdHJpbmc6IFwic3RyaW5nXCIsXG4gIFpvZE51bWJlcjogXCJudW1iZXJcIixcbiAgWm9kQmlnSW50OiBcImludGVnZXJcIixcbiAgWm9kQm9vbGVhbjogXCJib29sZWFuXCIsXG4gIFpvZE51bGw6IFwibnVsbFwiXG59O1xuZnVuY3Rpb24gcGFyc2VVbmlvbkRlZihkZWYsIHJlZnMpIHtcbiAgaWYgKHJlZnMudGFyZ2V0ID09PSBcIm9wZW5BcGkzXCIpXG4gICAgcmV0dXJuIGFzQW55T2YoZGVmLCByZWZzKTtcbiAgY29uc3Qgb3B0aW9ucyA9IGRlZi5vcHRpb25zIGluc3RhbmNlb2YgTWFwID8gQXJyYXkuZnJvbShkZWYub3B0aW9ucy52YWx1ZXMoKSkgOiBkZWYub3B0aW9ucztcbiAgaWYgKG9wdGlvbnMuZXZlcnkoKHgpID0+IHguX2RlZi50eXBlTmFtZSBpbiBwcmltaXRpdmVNYXBwaW5ncyAmJiAoIXguX2RlZi5jaGVja3MgfHwgIXguX2RlZi5jaGVja3MubGVuZ3RoKSkpIHtcbiAgICBjb25zdCB0eXBlcyA9IG9wdGlvbnMucmVkdWNlKCh0eXBlczIsIHgpID0+IHtcbiAgICAgIGNvbnN0IHR5cGUgPSBwcmltaXRpdmVNYXBwaW5nc1t4Ll9kZWYudHlwZU5hbWVdO1xuICAgICAgcmV0dXJuIHR5cGUgJiYgIXR5cGVzMi5pbmNsdWRlcyh0eXBlKSA/IFsuLi50eXBlczIsIHR5cGVdIDogdHlwZXMyO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogdHlwZXMubGVuZ3RoID4gMSA/IHR5cGVzIDogdHlwZXNbMF1cbiAgICB9O1xuICB9IGVsc2UgaWYgKG9wdGlvbnMuZXZlcnkoKHgpID0+IHguX2RlZi50eXBlTmFtZSA9PT0gXCJab2RMaXRlcmFsXCIgJiYgIXguZGVzY3JpcHRpb24pKSB7XG4gICAgY29uc3QgdHlwZXMgPSBvcHRpb25zLnJlZHVjZSgoYWNjLCB4KSA9PiB7XG4gICAgICBjb25zdCB0eXBlID0gdHlwZW9mIHguX2RlZi52YWx1ZTtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICByZXR1cm4gWy4uLmFjYywgdHlwZV07XG4gICAgICAgIGNhc2UgXCJiaWdpbnRcIjpcbiAgICAgICAgICByZXR1cm4gWy4uLmFjYywgXCJpbnRlZ2VyXCJdO1xuICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgaWYgKHguX2RlZi52YWx1ZSA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBbLi4uYWNjLCBcIm51bGxcIl07XG4gICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgY2FzZSBcInVuZGVmaW5lZFwiOlxuICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICBpZiAodHlwZXMubGVuZ3RoID09PSBvcHRpb25zLmxlbmd0aCkge1xuICAgICAgY29uc3QgdW5pcXVlVHlwZXMgPSB0eXBlcy5maWx0ZXIoKHgsIGksIGEpID0+IGEuaW5kZXhPZih4KSA9PT0gaSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiB1bmlxdWVUeXBlcy5sZW5ndGggPiAxID8gdW5pcXVlVHlwZXMgOiB1bmlxdWVUeXBlc1swXSxcbiAgICAgICAgZW51bTogb3B0aW9ucy5yZWR1Y2UoKGFjYywgeCkgPT4ge1xuICAgICAgICAgIHJldHVybiBhY2MuaW5jbHVkZXMoeC5fZGVmLnZhbHVlKSA/IGFjYyA6IFsuLi5hY2MsIHguX2RlZi52YWx1ZV07XG4gICAgICAgIH0sIFtdKVxuICAgICAgfTtcbiAgICB9XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5ldmVyeSgoeCkgPT4geC5fZGVmLnR5cGVOYW1lID09PSBcIlpvZEVudW1cIikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGVudW06IG9wdGlvbnMucmVkdWNlKChhY2MsIHgpID0+IFtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICAuLi54Ll9kZWYudmFsdWVzLmZpbHRlcigoeDIpID0+ICFhY2MuaW5jbHVkZXMoeDIpKVxuICAgICAgXSwgW10pXG4gICAgfTtcbiAgfVxuICByZXR1cm4gYXNBbnlPZihkZWYsIHJlZnMpO1xufVxudmFyIGFzQW55T2YgPSAoZGVmLCByZWZzKSA9PiB7XG4gIGNvbnN0IGFueU9mID0gKGRlZi5vcHRpb25zIGluc3RhbmNlb2YgTWFwID8gQXJyYXkuZnJvbShkZWYub3B0aW9ucy52YWx1ZXMoKSkgOiBkZWYub3B0aW9ucykubWFwKCh4LCBpKSA9PiBwYXJzZURlZih4Ll9kZWYsIHtcbiAgICAuLi5yZWZzLFxuICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhbnlPZlwiLCBgJHtpfWBdXG4gIH0pKS5maWx0ZXIoKHgpID0+ICEheCAmJiAoIXJlZnMuc3RyaWN0VW5pb25zIHx8IHR5cGVvZiB4ID09PSBcIm9iamVjdFwiICYmIE9iamVjdC5rZXlzKHgpLmxlbmd0aCA+IDApKTtcbiAgcmV0dXJuIGFueU9mLmxlbmd0aCA/IHsgYW55T2YgfSA6IHZvaWQgMDtcbn07XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9udWxsYWJsZS5qc1xuZnVuY3Rpb24gcGFyc2VOdWxsYWJsZURlZihkZWYsIHJlZnMpIHtcbiAgaWYgKFtcIlpvZFN0cmluZ1wiLCBcIlpvZE51bWJlclwiLCBcIlpvZEJpZ0ludFwiLCBcIlpvZEJvb2xlYW5cIiwgXCJab2ROdWxsXCJdLmluY2x1ZGVzKGRlZi5pbm5lclR5cGUuX2RlZi50eXBlTmFtZSkgJiYgKCFkZWYuaW5uZXJUeXBlLl9kZWYuY2hlY2tzIHx8ICFkZWYuaW5uZXJUeXBlLl9kZWYuY2hlY2tzLmxlbmd0aCkpIHtcbiAgICBpZiAocmVmcy50YXJnZXQgPT09IFwib3BlbkFwaTNcIikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogcHJpbWl0aXZlTWFwcGluZ3NbZGVmLmlubmVyVHlwZS5fZGVmLnR5cGVOYW1lXSxcbiAgICAgICAgbnVsbGFibGU6IHRydWVcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBbXG4gICAgICAgIHByaW1pdGl2ZU1hcHBpbmdzW2RlZi5pbm5lclR5cGUuX2RlZi50eXBlTmFtZV0sXG4gICAgICAgIFwibnVsbFwiXG4gICAgICBdXG4gICAgfTtcbiAgfVxuICBpZiAocmVmcy50YXJnZXQgPT09IFwib3BlbkFwaTNcIikge1xuICAgIGNvbnN0IGJhc2UyID0gcGFyc2VEZWYoZGVmLmlubmVyVHlwZS5fZGVmLCB7XG4gICAgICAuLi5yZWZzLFxuICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoXVxuICAgIH0pO1xuICAgIGlmIChiYXNlMiAmJiBcIiRyZWZcIiBpbiBiYXNlMilcbiAgICAgIHJldHVybiB7IGFsbE9mOiBbYmFzZTJdLCBudWxsYWJsZTogdHJ1ZSB9O1xuICAgIHJldHVybiBiYXNlMiAmJiB7IC4uLmJhc2UyLCBudWxsYWJsZTogdHJ1ZSB9O1xuICB9XG4gIGNvbnN0IGJhc2UgPSBwYXJzZURlZihkZWYuaW5uZXJUeXBlLl9kZWYsIHtcbiAgICAuLi5yZWZzLFxuICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhbnlPZlwiLCBcIjBcIl1cbiAgfSk7XG4gIHJldHVybiBiYXNlICYmIHsgYW55T2Y6IFtiYXNlLCB7IHR5cGU6IFwibnVsbFwiIH1dIH07XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9udW1iZXIuanNcbmZ1bmN0aW9uIHBhcnNlTnVtYmVyRGVmKGRlZiwgcmVmcykge1xuICBjb25zdCByZXMgPSB7XG4gICAgdHlwZTogXCJudW1iZXJcIlxuICB9O1xuICBpZiAoIWRlZi5jaGVja3MpXG4gICAgcmV0dXJuIHJlcztcbiAgZm9yIChjb25zdCBjaGVjayBvZiBkZWYuY2hlY2tzKSB7XG4gICAgc3dpdGNoIChjaGVjay5raW5kKSB7XG4gICAgICBjYXNlIFwiaW50XCI6XG4gICAgICAgIHJlcy50eXBlID0gXCJpbnRlZ2VyXCI7XG4gICAgICAgIGFkZEVycm9yTWVzc2FnZShyZXMsIFwidHlwZVwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibWluXCI6XG4gICAgICAgIGlmIChyZWZzLnRhcmdldCA9PT0gXCJqc29uU2NoZW1hN1wiKSB7XG4gICAgICAgICAgaWYgKGNoZWNrLmluY2x1c2l2ZSkge1xuICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWluaW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcImV4Y2x1c2l2ZU1pbmltdW1cIiwgY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIWNoZWNrLmluY2x1c2l2ZSkge1xuICAgICAgICAgICAgcmVzLmV4Y2x1c2l2ZU1pbmltdW0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtaW5pbXVtXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJtYXhcIjpcbiAgICAgICAgaWYgKHJlZnMudGFyZ2V0ID09PSBcImpzb25TY2hlbWE3XCIpIHtcbiAgICAgICAgICBpZiAoY2hlY2suaW5jbHVzaXZlKSB7XG4gICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtYXhpbXVtXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwiZXhjbHVzaXZlTWF4aW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghY2hlY2suaW5jbHVzaXZlKSB7XG4gICAgICAgICAgICByZXMuZXhjbHVzaXZlTWF4aW11bSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1heGltdW1cIiwgY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm11bHRpcGxlT2ZcIjpcbiAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibXVsdGlwbGVPZlwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzO1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvb2JqZWN0LmpzXG5mdW5jdGlvbiBkZWNpZGVBZGRpdGlvbmFsUHJvcGVydGllcyhkZWYsIHJlZnMpIHtcbiAgaWYgKHJlZnMucmVtb3ZlQWRkaXRpb25hbFN0cmF0ZWd5ID09PSBcInN0cmljdFwiKSB7XG4gICAgcmV0dXJuIGRlZi5jYXRjaGFsbC5fZGVmLnR5cGVOYW1lID09PSBcIlpvZE5ldmVyXCIgPyBkZWYudW5rbm93bktleXMgIT09IFwic3RyaWN0XCIgOiBwYXJzZURlZihkZWYuY2F0Y2hhbGwuX2RlZiwge1xuICAgICAgLi4ucmVmcyxcbiAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiXVxuICAgIH0pID8/IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGRlZi5jYXRjaGFsbC5fZGVmLnR5cGVOYW1lID09PSBcIlpvZE5ldmVyXCIgPyBkZWYudW5rbm93bktleXMgPT09IFwicGFzc3Rocm91Z2hcIiA6IHBhcnNlRGVmKGRlZi5jYXRjaGFsbC5fZGVmLCB7XG4gICAgICAuLi5yZWZzLFxuICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCJdXG4gICAgfSkgPz8gdHJ1ZTtcbiAgfVxufVxuZnVuY3Rpb24gcGFyc2VPYmplY3REZWYoZGVmLCByZWZzKSB7XG4gIGNvbnN0IGZvcmNlT3B0aW9uYWxJbnRvTnVsbGFibGUgPSByZWZzLnRhcmdldCA9PT0gXCJvcGVuQWlcIjtcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgLi4uT2JqZWN0LmVudHJpZXMoZGVmLnNoYXBlKCkpLnJlZHVjZSgoYWNjLCBbcHJvcE5hbWUsIHByb3BEZWZdKSA9PiB7XG4gICAgICBpZiAocHJvcERlZiA9PT0gdm9pZCAwIHx8IHByb3BEZWYuX2RlZiA9PT0gdm9pZCAwKVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgbGV0IHByb3BPcHRpb25hbCA9IHByb3BEZWYuaXNPcHRpb25hbCgpO1xuICAgICAgaWYgKHByb3BPcHRpb25hbCAmJiBmb3JjZU9wdGlvbmFsSW50b051bGxhYmxlKSB7XG4gICAgICAgIGlmIChwcm9wRGVmIGluc3RhbmNlb2YgWm9kT3B0aW9uYWwpIHtcbiAgICAgICAgICBwcm9wRGVmID0gcHJvcERlZi5fZGVmLmlubmVyVHlwZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXByb3BEZWYuaXNOdWxsYWJsZSgpKSB7XG4gICAgICAgICAgcHJvcERlZiA9IHByb3BEZWYubnVsbGFibGUoKTtcbiAgICAgICAgfVxuICAgICAgICBwcm9wT3B0aW9uYWwgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhcnNlZERlZiA9IHBhcnNlRGVmKHByb3BEZWYuX2RlZiwge1xuICAgICAgICAuLi5yZWZzLFxuICAgICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwicHJvcGVydGllc1wiLCBwcm9wTmFtZV0sXG4gICAgICAgIHByb3BlcnR5UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwicHJvcGVydGllc1wiLCBwcm9wTmFtZV1cbiAgICAgIH0pO1xuICAgICAgaWYgKHBhcnNlZERlZiA9PT0gdm9pZCAwKVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvcGVydGllczogeyAuLi5hY2MucHJvcGVydGllcywgW3Byb3BOYW1lXTogcGFyc2VkRGVmIH0sXG4gICAgICAgIHJlcXVpcmVkOiBwcm9wT3B0aW9uYWwgPyBhY2MucmVxdWlyZWQgOiBbLi4uYWNjLnJlcXVpcmVkLCBwcm9wTmFtZV1cbiAgICAgIH07XG4gICAgfSwgeyBwcm9wZXJ0aWVzOiB7fSwgcmVxdWlyZWQ6IFtdIH0pLFxuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBkZWNpZGVBZGRpdGlvbmFsUHJvcGVydGllcyhkZWYsIHJlZnMpXG4gIH07XG4gIGlmICghcmVzdWx0LnJlcXVpcmVkLmxlbmd0aClcbiAgICBkZWxldGUgcmVzdWx0LnJlcXVpcmVkO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvb3B0aW9uYWwuanNcbnZhciBwYXJzZU9wdGlvbmFsRGVmID0gKGRlZiwgcmVmcykgPT4ge1xuICBpZiAocmVmcy5jdXJyZW50UGF0aC50b1N0cmluZygpID09PSByZWZzLnByb3BlcnR5UGF0aD8udG9TdHJpbmcoKSkge1xuICAgIHJldHVybiBwYXJzZURlZihkZWYuaW5uZXJUeXBlLl9kZWYsIHJlZnMpO1xuICB9XG4gIGNvbnN0IGlubmVyU2NoZW1hID0gcGFyc2VEZWYoZGVmLmlubmVyVHlwZS5fZGVmLCB7XG4gICAgLi4ucmVmcyxcbiAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiYW55T2ZcIiwgXCIxXCJdXG4gIH0pO1xuICByZXR1cm4gaW5uZXJTY2hlbWEgPyB7XG4gICAgYW55T2Y6IFtcbiAgICAgIHtcbiAgICAgICAgbm90OiB7fVxuICAgICAgfSxcbiAgICAgIGlubmVyU2NoZW1hXG4gICAgXVxuICB9IDoge307XG59O1xuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvcGlwZWxpbmUuanNcbnZhciBwYXJzZVBpcGVsaW5lRGVmID0gKGRlZiwgcmVmcykgPT4ge1xuICBpZiAocmVmcy5waXBlU3RyYXRlZ3kgPT09IFwiaW5wdXRcIikge1xuICAgIHJldHVybiBwYXJzZURlZihkZWYuaW4uX2RlZiwgcmVmcyk7XG4gIH0gZWxzZSBpZiAocmVmcy5waXBlU3RyYXRlZ3kgPT09IFwib3V0cHV0XCIpIHtcbiAgICByZXR1cm4gcGFyc2VEZWYoZGVmLm91dC5fZGVmLCByZWZzKTtcbiAgfVxuICBjb25zdCBhID0gcGFyc2VEZWYoZGVmLmluLl9kZWYsIHtcbiAgICAuLi5yZWZzLFxuICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhbGxPZlwiLCBcIjBcIl1cbiAgfSk7XG4gIGNvbnN0IGIgPSBwYXJzZURlZihkZWYub3V0Ll9kZWYsIHtcbiAgICAuLi5yZWZzLFxuICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhbGxPZlwiLCBhID8gXCIxXCIgOiBcIjBcIl1cbiAgfSk7XG4gIHJldHVybiB7XG4gICAgYWxsT2Y6IFthLCBiXS5maWx0ZXIoKHgpID0+IHggIT09IHZvaWQgMClcbiAgfTtcbn07XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9wcm9taXNlLmpzXG5mdW5jdGlvbiBwYXJzZVByb21pc2VEZWYoZGVmLCByZWZzKSB7XG4gIHJldHVybiBwYXJzZURlZihkZWYudHlwZS5fZGVmLCByZWZzKTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL3NldC5qc1xuZnVuY3Rpb24gcGFyc2VTZXREZWYoZGVmLCByZWZzKSB7XG4gIGNvbnN0IGl0ZW1zID0gcGFyc2VEZWYoZGVmLnZhbHVlVHlwZS5fZGVmLCB7XG4gICAgLi4ucmVmcyxcbiAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiaXRlbXNcIl1cbiAgfSk7XG4gIGNvbnN0IHNjaGVtYSA9IHtcbiAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgdW5pcXVlSXRlbXM6IHRydWUsXG4gICAgaXRlbXNcbiAgfTtcbiAgaWYgKGRlZi5taW5TaXplKSB7XG4gICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhzY2hlbWEsIFwibWluSXRlbXNcIiwgZGVmLm1pblNpemUudmFsdWUsIGRlZi5taW5TaXplLm1lc3NhZ2UsIHJlZnMpO1xuICB9XG4gIGlmIChkZWYubWF4U2l6ZSkge1xuICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMoc2NoZW1hLCBcIm1heEl0ZW1zXCIsIGRlZi5tYXhTaXplLnZhbHVlLCBkZWYubWF4U2l6ZS5tZXNzYWdlLCByZWZzKTtcbiAgfVxuICByZXR1cm4gc2NoZW1hO1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvdHVwbGUuanNcbmZ1bmN0aW9uIHBhcnNlVHVwbGVEZWYoZGVmLCByZWZzKSB7XG4gIGlmIChkZWYucmVzdCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICBtaW5JdGVtczogZGVmLml0ZW1zLmxlbmd0aCxcbiAgICAgIGl0ZW1zOiBkZWYuaXRlbXMubWFwKCh4LCBpKSA9PiBwYXJzZURlZih4Ll9kZWYsIHtcbiAgICAgICAgLi4ucmVmcyxcbiAgICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcIml0ZW1zXCIsIGAke2l9YF1cbiAgICAgIH0pKS5yZWR1Y2UoKGFjYywgeCkgPT4geCA9PT0gdm9pZCAwID8gYWNjIDogWy4uLmFjYywgeF0sIFtdKSxcbiAgICAgIGFkZGl0aW9uYWxJdGVtczogcGFyc2VEZWYoZGVmLnJlc3QuX2RlZiwge1xuICAgICAgICAuLi5yZWZzLFxuICAgICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiYWRkaXRpb25hbEl0ZW1zXCJdXG4gICAgICB9KVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgIG1pbkl0ZW1zOiBkZWYuaXRlbXMubGVuZ3RoLFxuICAgICAgbWF4SXRlbXM6IGRlZi5pdGVtcy5sZW5ndGgsXG4gICAgICBpdGVtczogZGVmLml0ZW1zLm1hcCgoeCwgaSkgPT4gcGFyc2VEZWYoeC5fZGVmLCB7XG4gICAgICAgIC4uLnJlZnMsXG4gICAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJpdGVtc1wiLCBgJHtpfWBdXG4gICAgICB9KSkucmVkdWNlKChhY2MsIHgpID0+IHggPT09IHZvaWQgMCA/IGFjYyA6IFsuLi5hY2MsIHhdLCBbXSlcbiAgICB9O1xuICB9XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy91bmRlZmluZWQuanNcbmZ1bmN0aW9uIHBhcnNlVW5kZWZpbmVkRGVmKCkge1xuICByZXR1cm4ge1xuICAgIG5vdDoge31cbiAgfTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL3Vua25vd24uanNcbmZ1bmN0aW9uIHBhcnNlVW5rbm93bkRlZigpIHtcbiAgcmV0dXJuIHt9O1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvcmVhZG9ubHkuanNcbnZhciBwYXJzZVJlYWRvbmx5RGVmID0gKGRlZiwgcmVmcykgPT4ge1xuICByZXR1cm4gcGFyc2VEZWYoZGVmLmlubmVyVHlwZS5fZGVmLCByZWZzKTtcbn07XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vc2VsZWN0UGFyc2VyLmpzXG52YXIgc2VsZWN0UGFyc2VyID0gKGRlZiwgdHlwZU5hbWUsIHJlZnMpID0+IHtcbiAgc3dpdGNoICh0eXBlTmFtZSkge1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFN0cmluZzpcbiAgICAgIHJldHVybiBwYXJzZVN0cmluZ0RlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE51bWJlcjpcbiAgICAgIHJldHVybiBwYXJzZU51bWJlckRlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdDpcbiAgICAgIHJldHVybiBwYXJzZU9iamVjdERlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJpZ0ludDpcbiAgICAgIHJldHVybiBwYXJzZUJpZ2ludERlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJvb2xlYW46XG4gICAgICByZXR1cm4gcGFyc2VCb29sZWFuRGVmKCk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRGF0ZTpcbiAgICAgIHJldHVybiBwYXJzZURhdGVEZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RVbmRlZmluZWQ6XG4gICAgICByZXR1cm4gcGFyc2VVbmRlZmluZWREZWYoKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROdWxsOlxuICAgICAgcmV0dXJuIHBhcnNlTnVsbERlZihyZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RBcnJheTpcbiAgICAgIHJldHVybiBwYXJzZUFycmF5RGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kVW5pb246XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRGlzY3JpbWluYXRlZFVuaW9uOlxuICAgICAgcmV0dXJuIHBhcnNlVW5pb25EZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RJbnRlcnNlY3Rpb246XG4gICAgICByZXR1cm4gcGFyc2VJbnRlcnNlY3Rpb25EZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RUdXBsZTpcbiAgICAgIHJldHVybiBwYXJzZVR1cGxlRGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kUmVjb3JkOlxuICAgICAgcmV0dXJuIHBhcnNlUmVjb3JkRGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTGl0ZXJhbDpcbiAgICAgIHJldHVybiBwYXJzZUxpdGVyYWxEZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFbnVtOlxuICAgICAgcmV0dXJuIHBhcnNlRW51bURlZihkZWYpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE5hdGl2ZUVudW06XG4gICAgICByZXR1cm4gcGFyc2VOYXRpdmVFbnVtRGVmKGRlZik7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTnVsbGFibGU6XG4gICAgICByZXR1cm4gcGFyc2VOdWxsYWJsZURlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9wdGlvbmFsOlxuICAgICAgcmV0dXJuIHBhcnNlT3B0aW9uYWxEZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RNYXA6XG4gICAgICByZXR1cm4gcGFyc2VNYXBEZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTZXQ6XG4gICAgICByZXR1cm4gcGFyc2VTZXREZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RMYXp5OlxuICAgICAgcmV0dXJuICgpID0+IGRlZi5nZXR0ZXIoKS5fZGVmO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFByb21pc2U6XG4gICAgICByZXR1cm4gcGFyc2VQcm9taXNlRGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTmFOOlxuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE5ldmVyOlxuICAgICAgcmV0dXJuIHBhcnNlTmV2ZXJEZWYoKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFZmZlY3RzOlxuICAgICAgcmV0dXJuIHBhcnNlRWZmZWN0c0RlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEFueTpcbiAgICAgIHJldHVybiBwYXJzZUFueURlZigpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFVua25vd246XG4gICAgICByZXR1cm4gcGFyc2VVbmtub3duRGVmKCk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRGVmYXVsdDpcbiAgICAgIHJldHVybiBwYXJzZURlZmF1bHREZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RCcmFuZGVkOlxuICAgICAgcmV0dXJuIHBhcnNlQnJhbmRlZERlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFJlYWRvbmx5OlxuICAgICAgcmV0dXJuIHBhcnNlUmVhZG9ubHlEZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RDYXRjaDpcbiAgICAgIHJldHVybiBwYXJzZUNhdGNoRGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kUGlwZWxpbmU6XG4gICAgICByZXR1cm4gcGFyc2VQaXBlbGluZURlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEZ1bmN0aW9uOlxuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFZvaWQ6XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kU3ltYm9sOlxuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyAoKF8yKSA9PiB2b2lkIDApKHR5cGVOYW1lKTtcbiAgfVxufTtcblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZURlZi5qc1xuZnVuY3Rpb24gcGFyc2VEZWYoZGVmLCByZWZzLCBmb3JjZVJlc29sdXRpb24gPSBmYWxzZSkge1xuICBjb25zdCBzZWVuSXRlbSA9IHJlZnMuc2Vlbi5nZXQoZGVmKTtcbiAgaWYgKHJlZnMub3ZlcnJpZGUpIHtcbiAgICBjb25zdCBvdmVycmlkZVJlc3VsdCA9IHJlZnMub3ZlcnJpZGU/LihkZWYsIHJlZnMsIHNlZW5JdGVtLCBmb3JjZVJlc29sdXRpb24pO1xuICAgIGlmIChvdmVycmlkZVJlc3VsdCAhPT0gaWdub3JlT3ZlcnJpZGUpIHtcbiAgICAgIHJldHVybiBvdmVycmlkZVJlc3VsdDtcbiAgICB9XG4gIH1cbiAgaWYgKHNlZW5JdGVtICYmICFmb3JjZVJlc29sdXRpb24pIHtcbiAgICBjb25zdCBzZWVuU2NoZW1hID0gZ2V0JHJlZihzZWVuSXRlbSwgcmVmcyk7XG4gICAgaWYgKHNlZW5TY2hlbWEgIT09IHZvaWQgMCkge1xuICAgICAgcmV0dXJuIHNlZW5TY2hlbWE7XG4gICAgfVxuICB9XG4gIGNvbnN0IG5ld0l0ZW0gPSB7IGRlZiwgcGF0aDogcmVmcy5jdXJyZW50UGF0aCwganNvblNjaGVtYTogdm9pZCAwIH07XG4gIHJlZnMuc2Vlbi5zZXQoZGVmLCBuZXdJdGVtKTtcbiAgY29uc3QganNvblNjaGVtYU9yR2V0dGVyID0gc2VsZWN0UGFyc2VyKGRlZiwgZGVmLnR5cGVOYW1lLCByZWZzKTtcbiAgY29uc3QganNvblNjaGVtYSA9IHR5cGVvZiBqc29uU2NoZW1hT3JHZXR0ZXIgPT09IFwiZnVuY3Rpb25cIiA/IHBhcnNlRGVmKGpzb25TY2hlbWFPckdldHRlcigpLCByZWZzKSA6IGpzb25TY2hlbWFPckdldHRlcjtcbiAgaWYgKGpzb25TY2hlbWEpIHtcbiAgICBhZGRNZXRhKGRlZiwgcmVmcywganNvblNjaGVtYSk7XG4gIH1cbiAgbmV3SXRlbS5qc29uU2NoZW1hID0ganNvblNjaGVtYTtcbiAgcmV0dXJuIGpzb25TY2hlbWE7XG59XG52YXIgZ2V0JHJlZiA9IChpdGVtLCByZWZzKSA9PiB7XG4gIHN3aXRjaCAocmVmcy4kcmVmU3RyYXRlZ3kpIHtcbiAgICBjYXNlIFwicm9vdFwiOlxuICAgICAgcmV0dXJuIHsgJHJlZjogaXRlbS5wYXRoLmpvaW4oXCIvXCIpIH07XG4gICAgY2FzZSBcInJlbGF0aXZlXCI6XG4gICAgICByZXR1cm4geyAkcmVmOiBnZXRSZWxhdGl2ZVBhdGgocmVmcy5jdXJyZW50UGF0aCwgaXRlbS5wYXRoKSB9O1xuICAgIGNhc2UgXCJub25lXCI6XG4gICAgY2FzZSBcInNlZW5cIjoge1xuICAgICAgaWYgKGl0ZW0ucGF0aC5sZW5ndGggPCByZWZzLmN1cnJlbnRQYXRoLmxlbmd0aCAmJiBpdGVtLnBhdGguZXZlcnkoKHZhbHVlLCBpbmRleCkgPT4gcmVmcy5jdXJyZW50UGF0aFtpbmRleF0gPT09IHZhbHVlKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFJlY3Vyc2l2ZSByZWZlcmVuY2UgZGV0ZWN0ZWQgYXQgJHtyZWZzLmN1cnJlbnRQYXRoLmpvaW4oXCIvXCIpfSEgRGVmYXVsdGluZyB0byBhbnlgKTtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlZnMuJHJlZlN0cmF0ZWd5ID09PSBcInNlZW5cIiA/IHt9IDogdm9pZCAwO1xuICAgIH1cbiAgfVxufTtcbnZhciBnZXRSZWxhdGl2ZVBhdGggPSAocGF0aEEsIHBhdGhCKSA9PiB7XG4gIGxldCBpID0gMDtcbiAgZm9yICg7IGkgPCBwYXRoQS5sZW5ndGggJiYgaSA8IHBhdGhCLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHBhdGhBW2ldICE9PSBwYXRoQltpXSlcbiAgICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiBbKHBhdGhBLmxlbmd0aCAtIGkpLnRvU3RyaW5nKCksIC4uLnBhdGhCLnNsaWNlKGkpXS5qb2luKFwiL1wiKTtcbn07XG52YXIgYWRkTWV0YSA9IChkZWYsIHJlZnMsIGpzb25TY2hlbWEpID0+IHtcbiAgaWYgKGRlZi5kZXNjcmlwdGlvbikge1xuICAgIGpzb25TY2hlbWEuZGVzY3JpcHRpb24gPSBkZWYuZGVzY3JpcHRpb247XG4gICAgaWYgKHJlZnMubWFya2Rvd25EZXNjcmlwdGlvbikge1xuICAgICAganNvblNjaGVtYS5tYXJrZG93bkRlc2NyaXB0aW9uID0gZGVmLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgfVxuICByZXR1cm4ganNvblNjaGVtYTtcbn07XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vem9kVG9Kc29uU2NoZW1hLmpzXG52YXIgem9kVG9Kc29uU2NoZW1hID0gKHNjaGVtYSwgb3B0aW9ucykgPT4ge1xuICBjb25zdCByZWZzID0gZ2V0UmVmcyhvcHRpb25zKTtcbiAgY29uc3QgZGVmaW5pdGlvbnMgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gXCJvYmplY3RcIiAmJiBvcHRpb25zLmRlZmluaXRpb25zID8gT2JqZWN0LmVudHJpZXMob3B0aW9ucy5kZWZpbml0aW9ucykucmVkdWNlKChhY2MsIFtuYW1lMiwgc2NoZW1hMl0pID0+ICh7XG4gICAgLi4uYWNjLFxuICAgIFtuYW1lMl06IHBhcnNlRGVmKHNjaGVtYTIuX2RlZiwge1xuICAgICAgLi4ucmVmcyxcbiAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5iYXNlUGF0aCwgcmVmcy5kZWZpbml0aW9uUGF0aCwgbmFtZTJdXG4gICAgfSwgdHJ1ZSkgPz8ge31cbiAgfSksIHt9KSA6IHZvaWQgMDtcbiAgY29uc3QgbmFtZSA9IHR5cGVvZiBvcHRpb25zID09PSBcInN0cmluZ1wiID8gb3B0aW9ucyA6IG9wdGlvbnM/Lm5hbWVTdHJhdGVneSA9PT0gXCJ0aXRsZVwiID8gdm9pZCAwIDogb3B0aW9ucz8ubmFtZTtcbiAgY29uc3QgbWFpbiA9IHBhcnNlRGVmKHNjaGVtYS5fZGVmLCBuYW1lID09PSB2b2lkIDAgPyByZWZzIDoge1xuICAgIC4uLnJlZnMsXG4gICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmJhc2VQYXRoLCByZWZzLmRlZmluaXRpb25QYXRoLCBuYW1lXVxuICB9LCBmYWxzZSkgPz8ge307XG4gIGNvbnN0IHRpdGxlID0gdHlwZW9mIG9wdGlvbnMgPT09IFwib2JqZWN0XCIgJiYgb3B0aW9ucy5uYW1lICE9PSB2b2lkIDAgJiYgb3B0aW9ucy5uYW1lU3RyYXRlZ3kgPT09IFwidGl0bGVcIiA/IG9wdGlvbnMubmFtZSA6IHZvaWQgMDtcbiAgaWYgKHRpdGxlICE9PSB2b2lkIDApIHtcbiAgICBtYWluLnRpdGxlID0gdGl0bGU7XG4gIH1cbiAgY29uc3QgY29tYmluZWQgPSBuYW1lID09PSB2b2lkIDAgPyBkZWZpbml0aW9ucyA/IHtcbiAgICAuLi5tYWluLFxuICAgIFtyZWZzLmRlZmluaXRpb25QYXRoXTogZGVmaW5pdGlvbnNcbiAgfSA6IG1haW4gOiB7XG4gICAgJHJlZjogW1xuICAgICAgLi4ucmVmcy4kcmVmU3RyYXRlZ3kgPT09IFwicmVsYXRpdmVcIiA/IFtdIDogcmVmcy5iYXNlUGF0aCxcbiAgICAgIHJlZnMuZGVmaW5pdGlvblBhdGgsXG4gICAgICBuYW1lXG4gICAgXS5qb2luKFwiL1wiKSxcbiAgICBbcmVmcy5kZWZpbml0aW9uUGF0aF06IHtcbiAgICAgIC4uLmRlZmluaXRpb25zLFxuICAgICAgW25hbWVdOiBtYWluXG4gICAgfVxuICB9O1xuICBpZiAocmVmcy50YXJnZXQgPT09IFwianNvblNjaGVtYTdcIikge1xuICAgIGNvbWJpbmVkLiRzY2hlbWEgPSBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hI1wiO1xuICB9IGVsc2UgaWYgKHJlZnMudGFyZ2V0ID09PSBcImpzb25TY2hlbWEyMDE5LTA5XCIgfHwgcmVmcy50YXJnZXQgPT09IFwib3BlbkFpXCIpIHtcbiAgICBjb21iaW5lZC4kc2NoZW1hID0gXCJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDE5LTA5L3NjaGVtYSNcIjtcbiAgfVxuICBpZiAocmVmcy50YXJnZXQgPT09IFwib3BlbkFpXCIgJiYgKFwiYW55T2ZcIiBpbiBjb21iaW5lZCB8fCBcIm9uZU9mXCIgaW4gY29tYmluZWQgfHwgXCJhbGxPZlwiIGluIGNvbWJpbmVkIHx8IFwidHlwZVwiIGluIGNvbWJpbmVkICYmIEFycmF5LmlzQXJyYXkoY29tYmluZWQudHlwZSkpKSB7XG4gICAgY29uc29sZS53YXJuKFwiV2FybmluZzogT3BlbkFJIG1heSBub3Qgc3VwcG9ydCBzY2hlbWFzIHdpdGggdW5pb25zIGFzIHJvb3RzISBUcnkgd3JhcHBpbmcgaXQgaW4gYW4gb2JqZWN0IHByb3BlcnR5LlwiKTtcbiAgfVxuICByZXR1cm4gY29tYmluZWQ7XG59O1xuXG4vLyBub2RlX21vZHVsZXMvQHNtaXRoZXJ5L3Nkay9kaXN0L3NoYXJlZC9jb25maWcuanNcbmZ1bmN0aW9uIHBhcnNlRXhwcmVzc1JlcXVlc3RDb25maWcocmVxKSB7XG4gIHJldHVybiBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHJlcS5xdWVyeS5jb25maWcsIFwiYmFzZTY0XCIpLnRvU3RyaW5nKCkpO1xufVxuZnVuY3Rpb24gcGFyc2VBbmRWYWxpZGF0ZUNvbmZpZyhyZXEsIHNjaGVtYSkge1xuICBsZXQgY29uZmlnID0ge307XG4gIGlmIChyZXEucXVlcnkuY29uZmlnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbmZpZyA9IHBhcnNlRXhwcmVzc1JlcXVlc3RDb25maWcocmVxKTtcbiAgICB9IGNhdGNoIChjb25maWdFcnJvcikge1xuICAgICAgcmV0dXJuIGVycih7XG4gICAgICAgIHRpdGxlOiBcIkludmFsaWQgY29uZmlnIHBhcmFtZXRlclwiLFxuICAgICAgICBzdGF0dXM6IDQwMCxcbiAgICAgICAgZGV0YWlsOiBcIkZhaWxlZCB0byBwYXJzZSBjb25maWcgcGFyYW1ldGVyXCIsXG4gICAgICAgIGluc3RhbmNlOiByZXEub3JpZ2luYWxVcmxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyZXEucXVlcnkpKSB7XG4gICAgaWYgKGtleSA9PT0gXCJjb25maWdcIiB8fCBrZXkgPT09IFwiYXBpX2tleVwiIHx8IGtleSA9PT0gXCJwcm9maWxlXCIpXG4gICAgICBjb250aW51ZTtcbiAgICBjb25zdCBwYXRoUGFydHMgPSBrZXkuc3BsaXQoXCIuXCIpO1xuICAgIGNvbnN0IHJhd1ZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZVswXSA6IHZhbHVlO1xuICAgIGlmICh0eXBlb2YgcmF3VmFsdWUgIT09IFwic3RyaW5nXCIpXG4gICAgICBjb250aW51ZTtcbiAgICBsZXQgcGFyc2VkVmFsdWUgPSByYXdWYWx1ZTtcbiAgICB0cnkge1xuICAgICAgcGFyc2VkVmFsdWUgPSBKU09OLnBhcnNlKHJhd1ZhbHVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICB9XG4gICAgaW1wb3J0X2xvZGFzaC5kZWZhdWx0LnNldChjb25maWcsIHBhdGhQYXJ0cywgcGFyc2VkVmFsdWUpO1xuICB9XG4gIGlmIChzY2hlbWEpIHtcbiAgICBjb25zdCByZXN1bHQgPSBzY2hlbWEuc2FmZVBhcnNlKGNvbmZpZyk7XG4gICAgaWYgKCFyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgY29uc3QganNvblNjaGVtYSA9IHpvZFRvSnNvblNjaGVtYShzY2hlbWEpO1xuICAgICAgY29uc3QgZXJyb3JzID0gcmVzdWx0LmVycm9yLmlzc3Vlcy5tYXAoKGlzc3VlKSA9PiB7XG4gICAgICAgIGxldCByZWNlaXZlZCA9IGNvbmZpZztcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgaXNzdWUucGF0aCkge1xuICAgICAgICAgIGlmIChyZWNlaXZlZCAmJiB0eXBlb2YgcmVjZWl2ZWQgPT09IFwib2JqZWN0XCIgJiYga2V5IGluIHJlY2VpdmVkKSB7XG4gICAgICAgICAgICByZWNlaXZlZCA9IHJlY2VpdmVkW2tleV07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlY2VpdmVkID0gdm9pZCAwO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGFyYW06IGlzc3VlLnBhdGguam9pbihcIi5cIikgfHwgXCJyb290XCIsXG4gICAgICAgICAgcG9pbnRlcjogYC8ke2lzc3VlLnBhdGguam9pbihcIi9cIil9YCxcbiAgICAgICAgICByZWFzb246IGlzc3VlLm1lc3NhZ2UsXG4gICAgICAgICAgcmVjZWl2ZWRcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGVycih7XG4gICAgICAgIHRpdGxlOiBcIkludmFsaWQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzXCIsXG4gICAgICAgIHN0YXR1czogNDIyLFxuICAgICAgICBkZXRhaWw6IFwiT25lIG9yIG1vcmUgY29uZmlnIHBhcmFtZXRlcnMgYXJlIGludmFsaWQuXCIsXG4gICAgICAgIGluc3RhbmNlOiByZXEub3JpZ2luYWxVcmwsXG4gICAgICAgIGNvbmZpZ1NjaGVtYToganNvblNjaGVtYSxcbiAgICAgICAgZXJyb3JzXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG9rKHJlc3VsdC5kYXRhKTtcbiAgfVxuICByZXR1cm4gb2soY29uZmlnKTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL0BzbWl0aGVyeS9zZGsvZGlzdC9zZXJ2ZXIvc2Vzc2lvbi5qc1xudmFyIGNyZWF0ZUxSVVN0b3JlID0gKG1heCA9IDFlMykgPT4ge1xuICBjb25zdCBjYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gIHJldHVybiB7XG4gICAgZ2V0OiAoaWQpID0+IHtcbiAgICAgIGNvbnN0IHQgPSBjYWNoZS5nZXQoaWQpO1xuICAgICAgaWYgKCF0KVxuICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgY2FjaGUuZGVsZXRlKGlkKTtcbiAgICAgIGNhY2hlLnNldChpZCwgdCk7XG4gICAgICByZXR1cm4gdDtcbiAgICB9LFxuICAgIHNldDogKGlkLCB0cmFuc3BvcnQpID0+IHtcbiAgICAgIGlmIChjYWNoZS5oYXMoaWQpKSB7XG4gICAgICAgIGNhY2hlLmRlbGV0ZShpZCk7XG4gICAgICB9IGVsc2UgaWYgKGNhY2hlLnNpemUgPj0gbWF4KSB7XG4gICAgICAgIGNvbnN0IFtscnVJZCwgbHJ1VHJhbnNwb3J0XSA9IGNhY2hlLmVudHJpZXMoKS5uZXh0KCkudmFsdWU7XG4gICAgICAgIGxydVRyYW5zcG9ydC5jbG9zZT8uKCk7XG4gICAgICAgIGNhY2hlLmRlbGV0ZShscnVJZCk7XG4gICAgICB9XG4gICAgICBjYWNoZS5zZXQoaWQsIHRyYW5zcG9ydCk7XG4gICAgfSxcbiAgICBkZWxldGU6IChpZCkgPT4gY2FjaGUuZGVsZXRlKGlkKVxuICB9O1xufTtcblxuLy8gbm9kZV9tb2R1bGVzL0BzbWl0aGVyeS9zZGsvZGlzdC9zZXJ2ZXIvc3RhdGVmdWwuanNcbmZ1bmN0aW9uIGNyZWF0ZVN0YXRlZnVsU2VydmVyKGNyZWF0ZU1jcFNlcnZlciwgb3B0aW9ucykge1xuICBjb25zdCBhcHAgPSBvcHRpb25zPy5hcHAgPz8gKDAsIGltcG9ydF9leHByZXNzLmRlZmF1bHQpKCk7XG4gIGFwcC51c2UoXCIvbWNwXCIsIGltcG9ydF9leHByZXNzLmRlZmF1bHQuanNvbigpKTtcbiAgY29uc3Qgc2Vzc2lvblN0b3JlID0gb3B0aW9ucz8uc2Vzc2lvblN0b3JlID8/IGNyZWF0ZUxSVVN0b3JlKCk7XG4gIGFwcC5wb3N0KFwiL21jcFwiLCBhc3luYyAocmVxLCByZXMpID0+IHtcbiAgICBjb25zdCBzZXNzaW9uSWQgPSByZXEuaGVhZGVyc1tcIm1jcC1zZXNzaW9uLWlkXCJdO1xuICAgIGxldCB0cmFuc3BvcnQ7XG4gICAgaWYgKHNlc3Npb25JZCAmJiBzZXNzaW9uU3RvcmUuZ2V0KHNlc3Npb25JZCkpIHtcbiAgICAgIHRyYW5zcG9ydCA9IHNlc3Npb25TdG9yZS5nZXQoc2Vzc2lvbklkKTtcbiAgICB9IGVsc2UgaWYgKCFzZXNzaW9uSWQgJiYgaXNJbml0aWFsaXplUmVxdWVzdChyZXEuYm9keSkpIHtcbiAgICAgIGNvbnN0IG5ld1Nlc3Npb25JZCA9ICgwLCBpbXBvcnRfbm9kZV9jcnlwdG8yLnJhbmRvbVVVSUQpKCk7XG4gICAgICB0cmFuc3BvcnQgPSBuZXcgU3RyZWFtYWJsZUhUVFBTZXJ2ZXJUcmFuc3BvcnQoe1xuICAgICAgICBzZXNzaW9uSWRHZW5lcmF0b3I6ICgpID0+IG5ld1Nlc3Npb25JZCxcbiAgICAgICAgb25zZXNzaW9uaW5pdGlhbGl6ZWQ6IChzZXNzaW9uSWQyKSA9PiB7XG4gICAgICAgICAgc2Vzc2lvblN0b3JlLnNldChzZXNzaW9uSWQyLCB0cmFuc3BvcnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRyYW5zcG9ydC5vbmNsb3NlID0gKCkgPT4ge1xuICAgICAgICBpZiAodHJhbnNwb3J0LnNlc3Npb25JZCkge1xuICAgICAgICAgIHNlc3Npb25TdG9yZS5kZWxldGU/Lih0cmFuc3BvcnQuc2Vzc2lvbklkKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGNvbmZpZ1Jlc3VsdCA9IHBhcnNlQW5kVmFsaWRhdGVDb25maWcocmVxLCBvcHRpb25zPy5zY2hlbWEpO1xuICAgICAgaWYgKCFjb25maWdSZXN1bHQub2spIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gY29uZmlnUmVzdWx0LmVycm9yLnN0YXR1cyB8fCA0MDA7XG4gICAgICAgIHJlcy5zdGF0dXMoc3RhdHVzKS5qc29uKGNvbmZpZ1Jlc3VsdC5lcnJvcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbmZpZyA9IGNvbmZpZ1Jlc3VsdC52YWx1ZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNlcnZlciA9IGNyZWF0ZU1jcFNlcnZlcih7XG4gICAgICAgICAgc2Vzc2lvbklkOiBuZXdTZXNzaW9uSWQsXG4gICAgICAgICAgY29uZmlnXG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCBzZXJ2ZXIuY29ubmVjdCh0cmFuc3BvcnQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIGluaXRpYWxpemluZyBzZXJ2ZXI6XCIsIGVycm9yKTtcbiAgICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgICAgIGpzb25ycGM6IFwiMi4wXCIsXG4gICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgIGNvZGU6IC0zMjYwMyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwiRXJyb3IgaW5pdGlhbGl6aW5nIHNlcnZlci5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgaWQ6IG51bGxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVzLnN0YXR1cyg0MDApLmpzb24oe1xuICAgICAgICBqc29ucnBjOiBcIjIuMFwiLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6IC0zMmUzLFxuICAgICAgICAgIG1lc3NhZ2U6IFwiU2Vzc2lvbiBub3QgZm91bmQgb3IgZXhwaXJlZFwiXG4gICAgICAgIH0sXG4gICAgICAgIGlkOiBudWxsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgdHJhbnNwb3J0LmhhbmRsZVJlcXVlc3QocmVxLCByZXMsIHJlcS5ib2R5KTtcbiAgfSk7XG4gIGFwcC5nZXQoXCIvLndlbGwta25vd24vbWNwLWNvbmZpZ1wiLCAocmVxLCByZXMpID0+IHtcbiAgICByZXMuc2V0KFwiQ29udGVudC1UeXBlXCIsIFwiYXBwbGljYXRpb24vc2NoZW1hK2pzb247IGNoYXJzZXQ9dXRmLThcIik7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IG9wdGlvbnM/LnNjaGVtYSA/IHpvZFRvSnNvblNjaGVtYShvcHRpb25zLnNjaGVtYSkgOiB7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgcHJvcGVydGllczoge30sXG4gICAgICByZXF1aXJlZDogW11cbiAgICB9O1xuICAgIGNvbnN0IGNvbmZpZ1NjaGVtYSA9IHtcbiAgICAgICRzY2hlbWE6IFwiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWFcIixcbiAgICAgICRpZDogYCR7cmVxLnByb3RvY29sfTovLyR7cmVxLmdldChcImhvc3RcIil9Ly53ZWxsLWtub3duL21jcC1jb25maWdgLFxuICAgICAgdGl0bGU6IFwiTUNQIFNlc3Npb24gQ29uZmlndXJhdGlvblwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiU2NoZW1hIGZvciB0aGUgL21jcCBlbmRwb2ludCBjb25maWd1cmF0aW9uXCIsXG4gICAgICBcIngtbWNwLXZlcnNpb25cIjogXCIxLjBcIixcbiAgICAgIFwieC1xdWVyeS1zdHlsZVwiOiBcImRvdCticmFja2V0XCIsXG4gICAgICAuLi5iYXNlU2NoZW1hXG4gICAgfTtcbiAgICByZXMuanNvbihjb25maWdTY2hlbWEpO1xuICB9KTtcbiAgYXBwLmdldChcIi9tY3BcIiwgYXN5bmMgKHJlcSwgcmVzKSA9PiB7XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gcmVxLmhlYWRlcnNbXCJtY3Atc2Vzc2lvbi1pZFwiXTtcbiAgICBpZiAoIXNlc3Npb25JZCB8fCAhc2Vzc2lvblN0b3JlLmdldChzZXNzaW9uSWQpKSB7XG4gICAgICByZXMuc3RhdHVzKDQwMCkuc2VuZChcIkludmFsaWQgb3IgZXhwaXJlZCBzZXNzaW9uIElEXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0cmFuc3BvcnQgPSBzZXNzaW9uU3RvcmUuZ2V0KHNlc3Npb25JZCk7XG4gICAgYXdhaXQgdHJhbnNwb3J0LmhhbmRsZVJlcXVlc3QocmVxLCByZXMpO1xuICB9KTtcbiAgYXBwLmRlbGV0ZShcIi9tY3BcIiwgYXN5bmMgKHJlcSwgcmVzKSA9PiB7XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gcmVxLmhlYWRlcnNbXCJtY3Atc2Vzc2lvbi1pZFwiXTtcbiAgICBpZiAoIXNlc3Npb25JZCkge1xuICAgICAgcmVzLnN0YXR1cyg0MDApLmpzb24oe1xuICAgICAgICBqc29ucnBjOiBcIjIuMFwiLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6IC0zMjYwMCxcbiAgICAgICAgICBtZXNzYWdlOiBcIk1pc3NpbmcgbWNwLXNlc3Npb24taWQgaGVhZGVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0cmFuc3BvcnQgPSBzZXNzaW9uU3RvcmUuZ2V0KHNlc3Npb25JZCk7XG4gICAgaWYgKCF0cmFuc3BvcnQpIHtcbiAgICAgIHJlcy5zdGF0dXMoNDA0KS5qc29uKHtcbiAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiAtMzJlMyxcbiAgICAgICAgICBtZXNzYWdlOiBcIlNlc3Npb24gbm90IGZvdW5kIG9yIGV4cGlyZWRcIlxuICAgICAgICB9LFxuICAgICAgICBpZDogbnVsbFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyYW5zcG9ydC5jbG9zZT8uKCk7XG4gICAgcmVzLnN0YXR1cygyMDQpLmVuZCgpO1xuICB9KTtcbiAgcmV0dXJuIHsgYXBwIH07XG59XG5cbi8vIG5vZGVfbW9kdWxlcy9Ac21pdGhlcnkvc2RrL2Rpc3Qvc2VydmVyL3N0YXRlbGVzcy5qc1xudmFyIGltcG9ydF9leHByZXNzMiA9IF9fdG9FU00ocmVxdWlyZV9leHByZXNzMigpLCAxKTtcbmZ1bmN0aW9uIGNyZWF0ZVN0YXRlbGVzc1NlcnZlcihjcmVhdGVNY3BTZXJ2ZXIsIG9wdGlvbnMpIHtcbiAgY29uc3QgYXBwID0gb3B0aW9ucz8uYXBwID8/ICgwLCBpbXBvcnRfZXhwcmVzczIuZGVmYXVsdCkoKTtcbiAgYXBwLnVzZShcIi9tY3BcIiwgaW1wb3J0X2V4cHJlc3MyLmRlZmF1bHQuanNvbigpKTtcbiAgYXBwLnBvc3QoXCIvbWNwXCIsIGFzeW5jIChyZXEsIHJlcykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb25maWdSZXN1bHQgPSBwYXJzZUFuZFZhbGlkYXRlQ29uZmlnKHJlcSwgb3B0aW9ucz8uc2NoZW1hKTtcbiAgICAgIGlmICghY29uZmlnUmVzdWx0Lm9rKSB7XG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGNvbmZpZ1Jlc3VsdC5lcnJvci5zdGF0dXMgfHwgNDAwO1xuICAgICAgICByZXMuc3RhdHVzKHN0YXR1cykuanNvbihjb25maWdSZXN1bHQuZXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjb25maWcgPSBjb25maWdSZXN1bHQudmFsdWU7XG4gICAgICBjb25zdCBzZXJ2ZXIgPSBjcmVhdGVNY3BTZXJ2ZXIoe1xuICAgICAgICBjb25maWdcbiAgICAgIH0pO1xuICAgICAgY29uc3QgdHJhbnNwb3J0ID0gbmV3IFN0cmVhbWFibGVIVFRQU2VydmVyVHJhbnNwb3J0KHtcbiAgICAgICAgc2Vzc2lvbklkR2VuZXJhdG9yOiB2b2lkIDBcbiAgICAgIH0pO1xuICAgICAgcmVzLm9uKFwiY2xvc2VcIiwgKCkgPT4ge1xuICAgICAgICB0cmFuc3BvcnQuY2xvc2UoKTtcbiAgICAgICAgc2VydmVyLmNsb3NlKCk7XG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHNlcnZlci5jb25uZWN0KHRyYW5zcG9ydCk7XG4gICAgICBhd2FpdCB0cmFuc3BvcnQuaGFuZGxlUmVxdWVzdChyZXEsIHJlcywgcmVxLmJvZHkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgaGFuZGxpbmcgTUNQIHJlcXVlc3Q6XCIsIGVycm9yKTtcbiAgICAgIGlmICghcmVzLmhlYWRlcnNTZW50KSB7XG4gICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgICAgICBqc29ucnBjOiBcIjIuMFwiLFxuICAgICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgICBjb2RlOiAtMzI2MDMsXG4gICAgICAgICAgICBtZXNzYWdlOiBcIkludGVybmFsIHNlcnZlciBlcnJvclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpZDogbnVsbFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBhcHAuZ2V0KFwiL21jcFwiLCBhc3luYyAoX3JlcSwgcmVzKSA9PiB7XG4gICAgcmVzLnN0YXR1cyg0MDUpLmpzb24oe1xuICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgIGVycm9yOiB7XG4gICAgICAgIGNvZGU6IC0zMmUzLFxuICAgICAgICBtZXNzYWdlOiBcIk1ldGhvZCBub3QgYWxsb3dlZC5cIlxuICAgICAgfSxcbiAgICAgIGlkOiBudWxsXG4gICAgfSk7XG4gIH0pO1xuICBhcHAuZGVsZXRlKFwiL21jcFwiLCBhc3luYyAoX3JlcSwgcmVzKSA9PiB7XG4gICAgcmVzLnN0YXR1cyg0MDUpLmpzb24oe1xuICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgIGVycm9yOiB7XG4gICAgICAgIGNvZGU6IC0zMmUzLFxuICAgICAgICBtZXNzYWdlOiBcIk1ldGhvZCBub3QgYWxsb3dlZC5cIlxuICAgICAgfSxcbiAgICAgIGlkOiBudWxsXG4gICAgfSk7XG4gIH0pO1xuICBhcHAuZ2V0KFwiLy53ZWxsLWtub3duL21jcC1jb25maWdcIiwgKHJlcSwgcmVzKSA9PiB7XG4gICAgcmVzLnNldChcIkNvbnRlbnQtVHlwZVwiLCBcImFwcGxpY2F0aW9uL3NjaGVtYStqc29uOyBjaGFyc2V0PXV0Zi04XCIpO1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSBvcHRpb25zPy5zY2hlbWEgPyB6b2RUb0pzb25TY2hlbWEob3B0aW9ucy5zY2hlbWEpIDoge1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgcmVxdWlyZWQ6IFtdXG4gICAgfTtcbiAgICBjb25zdCBjb25maWdTY2hlbWEgPSB7XG4gICAgICAkc2NoZW1hOiBcImh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvc2NoZW1hXCIsXG4gICAgICAkaWQ6IGAke3JlcS5wcm90b2NvbH06Ly8ke3JlcS5nZXQoXCJob3N0XCIpfS8ud2VsbC1rbm93bi9tY3AtY29uZmlnYCxcbiAgICAgIHRpdGxlOiBcIk1DUCBTZXNzaW9uIENvbmZpZ3VyYXRpb25cIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNjaGVtYSBmb3IgdGhlIC9tY3AgZW5kcG9pbnQgY29uZmlndXJhdGlvblwiLFxuICAgICAgXCJ4LW1jcC12ZXJzaW9uXCI6IFwiMS4wXCIsXG4gICAgICBcIngtcXVlcnktc3R5bGVcIjogXCJkb3QrYnJhY2tldFwiLFxuICAgICAgLi4uYmFzZVNjaGVtYVxuICAgIH07XG4gICAgcmVzLmpzb24oY29uZmlnU2NoZW1hKTtcbiAgfSk7XG4gIHJldHVybiB7IGFwcCB9O1xufVxuXG4vLyBzcmMvcnVudGltZS9zaHR0cC1ib290c3RyYXAudHNcbnZhciBpbXBvcnRfY2hhbGsgPSBfX3RvRVNNKHJlcXVpcmVfc291cmNlKCkpO1xudmFyIGltcG9ydF9jb3JzID0gX190b0VTTShyZXF1aXJlX2xpYjQoKSk7XG52YXIgaW1wb3J0X2V4cHJlc3MzID0gX190b0VTTShyZXF1aXJlX2V4cHJlc3MyKCkpO1xudmFyIF9lbnRyeSA9IF9fdG9FU00ocmVxdWlyZShcIkM6XFxcXFVzZXJzXFxcXGhlbGxvXFxcXENvZGVpdW1cXFxcbWNwLWtleXdvcmRzLWV2ZXJ5d2hlcmVcXFxcc3JjXFxcXGluZGV4LnRzXCIpKTtcbnZhciBlbnRyeSA9IF9lbnRyeTtcbmFzeW5jIGZ1bmN0aW9uIHN0YXJ0TWNwU2VydmVyKCkge1xuICB0cnkge1xuICAgIGNvbnN0IHBvcnQgPSBwcm9jZXNzLmVudi5QT1JUIHx8IFwiODE4MVwiO1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYCR7aW1wb3J0X2NoYWxrLmRlZmF1bHQuYmx1ZShcIltzbWl0aGVyeV1cIil9IFN0YXJ0aW5nIE1DUCBzZXJ2ZXIgb24gcG9ydCAke3BvcnR9YFxuICAgICk7XG4gICAgbGV0IHNlcnZlcjtcbiAgICBjb25zdCBhcHAgPSAoMCwgaW1wb3J0X2V4cHJlc3MzLmRlZmF1bHQpKCk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgY29uc29sZS5sb2coYCR7aW1wb3J0X2NoYWxrLmRlZmF1bHQuYmx1ZShcIltzbWl0aGVyeV1cIil9IEluamVjdGluZyBjb3JzIG1pZGRsZXdhcmVgKTtcbiAgICAgIGFwcC51c2UoXG4gICAgICAgICgwLCBpbXBvcnRfY29ycy5kZWZhdWx0KSh7XG4gICAgICAgICAgZXhwb3NlZEhlYWRlcnM6IFtcIm1jcC1zZXNzaW9uLWlkXCJdXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoZW50cnkuZGVmYXVsdCAmJiB0eXBlb2YgZW50cnkuZGVmYXVsdCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYCR7aW1wb3J0X2NoYWxrLmRlZmF1bHQuYmx1ZShcIltzbWl0aGVyeV1cIil9IFNldHRpbmcgdXAgJHtlbnRyeS5zdGF0ZWxlc3MgPyBcInN0YXRlbGVzc1wiIDogXCJzdGF0ZWZ1bFwifSBzZXJ2ZXJgXG4gICAgICApO1xuICAgICAgaWYgKGVudHJ5LnN0YXRlbGVzcykge1xuICAgICAgICBzZXJ2ZXIgPSBjcmVhdGVTdGF0ZWxlc3NTZXJ2ZXIoXG4gICAgICAgICAgZW50cnkuZGVmYXVsdCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY2hlbWE6IGVudHJ5LmNvbmZpZ1NjaGVtYSxcbiAgICAgICAgICAgIGFwcFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlcnZlciA9IGNyZWF0ZVN0YXRlZnVsU2VydmVyKGVudHJ5LmRlZmF1bHQsIHtcbiAgICAgICAgICBzY2hlbWE6IGVudHJ5LmNvbmZpZ1NjaGVtYSxcbiAgICAgICAgICBhcHBcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJObyB2YWxpZCBzZXJ2ZXIgZXhwb3J0IGZvdW5kLiBQbGVhc2UgZXhwb3J0Olxcbi0gZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeyBzZXNzaW9uSWQsIGNvbmZpZyB9KSB7IC4uLiB9IChzdGF0ZWZ1bClcXG4tIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHsgY29uZmlnIH0pIHsgLi4uIH0gKHN0YXRlbGVzcylcIlxuICAgICAgKTtcbiAgICB9XG4gICAgc2VydmVyLmFwcC5saXN0ZW4oTnVtYmVyLnBhcnNlSW50KHBvcnQpKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAke2ltcG9ydF9jaGFsay5kZWZhdWx0LmdyZWVuKFwiW3NtaXRoZXJ5XVwiKX0gTUNQIHNlcnZlciBzdGFydGVkIHN1Y2Nlc3NmdWxseSBvbiBwb3J0ICR7cG9ydH1gXG4gICAgKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgYCR7aW1wb3J0X2NoYWxrLmRlZmF1bHQucmVkKFwiW3NtaXRoZXJ5XVwiKX0gRmFpbGVkIHRvIHN0YXJ0IE1DUCBzZXJ2ZXI6YCxcbiAgICAgIGVycm9yXG4gICAgKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbn1cbnN0YXJ0TWNwU2VydmVyKCk7XG4vKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOlxuXG5ieXRlcy9pbmRleC5qczpcbiAgKCohXG4gICAqIGJ5dGVzXG4gICAqIENvcHlyaWdodChjKSAyMDEyLTIwMTQgVEogSG9sb3dheWNodWtcbiAgICogQ29weXJpZ2h0KGMpIDIwMTUgSmVkIFdhdHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmRlcGQvaW5kZXguanM6XG4gICgqIVxuICAgKiBkZXBkXG4gICAqIENvcHlyaWdodChjKSAyMDE0LTIwMTggRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5zdGF0dXNlcy9pbmRleC5qczpcbiAgKCohXG4gICAqIHN0YXR1c2VzXG4gICAqIENvcHlyaWdodChjKSAyMDE0IEpvbmF0aGFuIE9uZ1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbnRvaWRlbnRpZmllci9pbmRleC5qczpcbiAgKCohXG4gICAqIHRvaWRlbnRpZmllclxuICAgKiBDb3B5cmlnaHQoYykgMjAxNiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmh0dHAtZXJyb3JzL2luZGV4LmpzOlxuICAoKiFcbiAgICogaHR0cC1lcnJvcnNcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQgSm9uYXRoYW4gT25nXG4gICAqIENvcHlyaWdodChjKSAyMDE2IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxudW5waXBlL2luZGV4LmpzOlxuICAoKiFcbiAgICogdW5waXBlXG4gICAqIENvcHlyaWdodChjKSAyMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxucmF3LWJvZHkvaW5kZXguanM6XG4gICgqIVxuICAgKiByYXctYm9keVxuICAgKiBDb3B5cmlnaHQoYykgMjAxMy0yMDE0IEpvbmF0aGFuIE9uZ1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDIyIERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxuY29udGVudC10eXBlL2luZGV4LmpzOlxuICAoKiFcbiAgICogY29udGVudC10eXBlXG4gICAqIENvcHlyaWdodChjKSAyMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxuZWUtZmlyc3QvaW5kZXguanM6XG4gICgqIVxuICAgKiBlZS1maXJzdFxuICAgKiBDb3B5cmlnaHQoYykgMjAxNCBKb25hdGhhbiBPbmdcbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5vbi1maW5pc2hlZC9pbmRleC5qczpcbiAgKCohXG4gICAqIG9uLWZpbmlzaGVkXG4gICAqIENvcHlyaWdodChjKSAyMDEzIEpvbmF0aGFuIE9uZ1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNCBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmJvZHktcGFyc2VyL2xpYi9yZWFkLmpzOlxuYm9keS1wYXJzZXIvbGliL3R5cGVzL3Jhdy5qczpcbmJvZHktcGFyc2VyL2xpYi90eXBlcy90ZXh0LmpzOlxuYm9keS1wYXJzZXIvaW5kZXguanM6XG4gICgqIVxuICAgKiBib2R5LXBhcnNlclxuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxubWltZS1kYi9pbmRleC5qczpcbm1pbWUtZGIvaW5kZXguanM6XG5taW1lLWRiL2luZGV4LmpzOlxubWltZS1kYi9pbmRleC5qczpcbiAgKCohXG4gICAqIG1pbWUtZGJcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQgSm9uYXRoYW4gT25nXG4gICAqIENvcHlyaWdodChjKSAyMDE1LTIwMjIgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5taW1lLXR5cGVzL2luZGV4LmpzOlxubWltZS10eXBlcy9pbmRleC5qczpcbm1pbWUtdHlwZXMvaW5kZXguanM6XG5taW1lLXR5cGVzL2luZGV4LmpzOlxuICAoKiFcbiAgICogbWltZS10eXBlc1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNCBKb25hdGhhbiBPbmdcbiAgICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5tZWRpYS10eXBlci9pbmRleC5qczpcbiAgKCohXG4gICAqIG1lZGlhLXR5cGVyXG4gICAqIENvcHlyaWdodChjKSAyMDE0LTIwMTcgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG50eXBlLWlzL2luZGV4LmpzOlxuICAoKiFcbiAgICogdHlwZS1pc1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNCBKb25hdGhhbiBPbmdcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmJvZHktcGFyc2VyL2xpYi90eXBlcy9qc29uLmpzOlxuYm9keS1wYXJzZXIvbGliL3R5cGVzL3VybGVuY29kZWQuanM6XG4gICgqIVxuICAgKiBib2R5LXBhcnNlclxuICAgKiBDb3B5cmlnaHQoYykgMjAxNCBKb25hdGhhbiBPbmdcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmVuY29kZXVybC9pbmRleC5qczpcbiAgKCohXG4gICAqIGVuY29kZXVybFxuICAgKiBDb3B5cmlnaHQoYykgMjAxNiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmVzY2FwZS1odG1sL2luZGV4LmpzOlxuICAoKiFcbiAgICogZXNjYXBlLWh0bWxcbiAgICogQ29weXJpZ2h0KGMpIDIwMTItMjAxMyBUSiBIb2xvd2F5Y2h1a1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNSBBbmRyZWFzIEx1YmJlXG4gICAqIENvcHlyaWdodChjKSAyMDE1IFRpYW5jaGVuZyBcIlRpbW90aHlcIiBHdVxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbnBhcnNldXJsL2luZGV4LmpzOlxuICAoKiFcbiAgICogcGFyc2V1cmxcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQgSm9uYXRoYW4gT25nXG4gICAqIENvcHlyaWdodChjKSAyMDE0LTIwMTcgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5maW5hbGhhbmRsZXIvaW5kZXguanM6XG4gICgqIVxuICAgKiBmaW5hbGhhbmRsZXJcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAyMiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmV4cHJlc3MvbGliL3ZpZXcuanM6XG5leHByZXNzL2xpYi9hcHBsaWNhdGlvbi5qczpcbmV4cHJlc3MvbGliL3JlcXVlc3QuanM6XG5leHByZXNzL2xpYi9leHByZXNzLmpzOlxuZXhwcmVzcy9pbmRleC5qczpcbiAgKCohXG4gICAqIGV4cHJlc3NcbiAgICogQ29weXJpZ2h0KGMpIDIwMDktMjAxMyBUSiBIb2xvd2F5Y2h1a1xuICAgKiBDb3B5cmlnaHQoYykgMjAxMyBSb21hbiBTaHR5bG1hblxuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxuZXRhZy9pbmRleC5qczpcbiAgKCohXG4gICAqIGV0YWdcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmZvcndhcmRlZC9pbmRleC5qczpcbiAgKCohXG4gICAqIGZvcndhcmRlZFxuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE3IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxucHJveHktYWRkci9pbmRleC5qczpcbiAgKCohXG4gICAqIHByb3h5LWFkZHJcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmV4cHJlc3MvbGliL3V0aWxzLmpzOlxuZXhwcmVzcy9saWIvcmVzcG9uc2UuanM6XG4gICgqIVxuICAgKiBleHByZXNzXG4gICAqIENvcHlyaWdodChjKSAyMDA5LTIwMTMgVEogSG9sb3dheWNodWtcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbnJvdXRlci9saWIvbGF5ZXIuanM6XG5yb3V0ZXIvbGliL3JvdXRlLmpzOlxucm91dGVyL2luZGV4LmpzOlxuICAoKiFcbiAgICogcm91dGVyXG4gICAqIENvcHlyaWdodChjKSAyMDEzIFJvbWFuIFNodHlsbWFuXG4gICAqIENvcHlyaWdodChjKSAyMDE0LTIwMjIgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5uZWdvdGlhdG9yL2luZGV4LmpzOlxuICAoKiFcbiAgICogbmVnb3RpYXRvclxuICAgKiBDb3B5cmlnaHQoYykgMjAxMiBGZWRlcmljbyBSb21lcm9cbiAgICogQ29weXJpZ2h0KGMpIDIwMTItMjAxNCBJc2FhYyBaLiBTY2hsdWV0ZXJcbiAgICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5hY2NlcHRzL2luZGV4LmpzOlxuICAoKiFcbiAgICogYWNjZXB0c1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNCBKb25hdGhhbiBPbmdcbiAgICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5mcmVzaC9pbmRleC5qczpcbiAgKCohXG4gICAqIGZyZXNoXG4gICAqIENvcHlyaWdodChjKSAyMDEyIFRKIEhvbG93YXljaHVrXG4gICAqIENvcHlyaWdodChjKSAyMDE2LTIwMTcgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5yYW5nZS1wYXJzZXIvaW5kZXguanM6XG4gICgqIVxuICAgKiByYW5nZS1wYXJzZXJcbiAgICogQ29weXJpZ2h0KGMpIDIwMTItMjAxNCBUSiBIb2xvd2F5Y2h1a1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNS0yMDE2IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxuc2FmZS1idWZmZXIvaW5kZXguanM6XG4gICgqISBzYWZlLWJ1ZmZlci4gTUlUIExpY2Vuc2UuIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZy9vcGVuc291cmNlPiAqKVxuXG5jb250ZW50LWRpc3Bvc2l0aW9uL2luZGV4LmpzOlxuICAoKiFcbiAgICogY29udGVudC1kaXNwb3NpdGlvblxuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE3IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxuY29va2llL2luZGV4LmpzOlxuICAoKiFcbiAgICogY29va2llXG4gICAqIENvcHlyaWdodChjKSAyMDEyLTIwMTQgUm9tYW4gU2h0eWxtYW5cbiAgICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5zZW5kL2luZGV4LmpzOlxuICAoKiFcbiAgICogc2VuZFxuICAgKiBDb3B5cmlnaHQoYykgMjAxMiBUSiBIb2xvd2F5Y2h1a1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDIyIERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxudmFyeS9pbmRleC5qczpcbiAgKCohXG4gICAqIHZhcnlcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNyBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbnNlcnZlLXN0YXRpYy9pbmRleC5qczpcbiAgKCohXG4gICAqIHNlcnZlLXN0YXRpY1xuICAgKiBDb3B5cmlnaHQoYykgMjAxMCBTZW5jaGEgSW5jLlxuICAgKiBDb3B5cmlnaHQoYykgMjAxMSBUSiBIb2xvd2F5Y2h1a1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE2IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxubG9kYXNoL2xvZGFzaC5qczpcbiAgKCoqXG4gICAqIEBsaWNlbnNlXG4gICAqIExvZGFzaCA8aHR0cHM6Ly9sb2Rhc2guY29tLz5cbiAgICogQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vb3BlbmpzZi5vcmcvPlxuICAgKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gICAqIEJhc2VkIG9uIFVuZGVyc2NvcmUuanMgMS44LjMgPGh0dHA6Ly91bmRlcnNjb3JlanMub3JnL0xJQ0VOU0U+XG4gICAqIENvcHlyaWdodCBKZXJlbXkgQXNoa2VuYXMsIERvY3VtZW50Q2xvdWQgYW5kIEludmVzdGlnYXRpdmUgUmVwb3J0ZXJzICYgRWRpdG9yc1xuICAgKilcblxub2JqZWN0LWFzc2lnbi9pbmRleC5qczpcbiAgKCpcbiAgb2JqZWN0LWFzc2lnblxuICAoYykgU2luZHJlIFNvcmh1c1xuICBAbGljZW5zZSBNSVRcbiAgKilcbiovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2WUEsU0FBUyxZQUFZLEtBQUs7QUFDdEIscUJBQW1CO0FBQ3ZCO0FBQ0EsU0FBUyxjQUFjO0FBQ25CLFNBQU87QUFDWDtBQStCQSxTQUFTLGtCQUFrQixLQUFLLFdBQVc7QUFDdkMsUUFBTSxjQUFjLFlBQVk7QUFDaEMsUUFBTSxRQUFRLFVBQVU7QUFBQSxJQUNwQjtBQUFBLElBQ0EsTUFBTSxJQUFJO0FBQUEsSUFDVixNQUFNLElBQUk7QUFBQSxJQUNWLFdBQVc7QUFBQSxNQUNQLElBQUksT0FBTztBQUFBO0FBQUEsTUFDWCxJQUFJO0FBQUE7QUFBQSxNQUNKO0FBQUE7QUFBQSxNQUNBLGdCQUFnQixXQUFXLFNBQVk7QUFBQTtBQUFBLElBQzNDLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFBQSxFQUN2QixDQUFDO0FBQ0QsTUFBSSxPQUFPLE9BQU8sS0FBSyxLQUFLO0FBQ2hDO0FBaUZBLFNBQVMsdUJB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TUFDQSxVQUFVLE9BQU87QUFDYixlQUFPLElBQUlELFlBQVU7QUFBQSxVQUNqQixHQUFHLEtBQUs7QUFBQSxVQUNSLFFBQVEsQ0FBQyxHQUFHLEtBQUssS0FBSyxRQUFRLEtBQUs7QUFBQSxRQUN2QyxDQUFDO0FBQUEsTUFDTDtBQUFBLE1BQ0EsTUFBTSxTQUFTO0FBQ1gsZUFBTyxLQUFLLFVBQVUsRUFBRSxNQUFNLFNBQVMsR0FBRyxVQUFVLFNBQVMsT0FBTyxFQUFFLENBQUM7QUFBQSxNQUMzRTtBQUFBLE1BQ0EsSUFBSSxTQUFTO0FBQ1QsZUFBTyxLQUFLLFVBQVUsRUFBRSxNQUFNLE9BQU8sR0FBRyxVQUFVLFNBQVMsT0FBTyxFQUFFLENBQUM7QUFBQSxNQUN6RTtBQUFBLE1BQ0EsTUFBTSxTQUFTO0FBQ1gsZUFBTyxLQUFLLFVBQVUsRUFBRSxNQUFNLFNBQVMsR0FBRyxVQUFVLFNBQVMsT0FBTyxFQUFFLENBQUM7QUFBQSxNQUMzRTtBQUFBLE1BQ0EsS0FBSyxTQUFTO0FBQ1YsZUFBTyxLQUFLLFVBQVUsRUFBRSxNQUFNLFFBQVEsR0FBRyxVQUFVLFNBQVMsT0FBTyxFQUFFLENBQUM7QUFBQSxNQUMxRTtBQUFBLE1BQ0EsT0FBTyxTQUFTO0FBQ1osZUFBTyxLQUFLLFVBQVUsRUFBRSxNQUFNLFVBQVUsR0FBRyxVQUFVLFNBQVMsT0FBTyxFQUFFLENBQUM7QUFBQSxNQUM1RTtBQUFBLE1BQ0EsS0FBSyxTQUFTO0FBQ1YsZUFBTyxLQUFLLFVBQVUsRUFBRSxNQUFNLFFBQVEsR0FBRyxVQUFVLFNBQVMsT0FBTyxFQUFFLENBQUM7QUFBQSxNQUMxRTtBQUFBLE1BQ0EsTUFBTSxTQUFTO0FBQ1gsZUFBTyxLQUFLLFVBQVUsRUFBRSxNQUFNLFNBQVMsR0FBRyxVQUFVLFNBQVMsT0FBTyxFQUFFLENBQUM7QUFBQSxNQUMzRTtBQUFBLE1BQ0EsS0FBSyxTQUFTO0FBQ1YsZUFBTyxLQUFLLFVBQVUsRUFBRSxNQUFNLFFBQVEsR0FBRyxVQUFVLFNBQVMsT0FBTyxFQUFFLENBQUM7QUFBQSxNQUMxRTtBQUFBLE1BQ0EsT0FBTyxTQUFTO0FBQ1osZUFBTyxLQUFLLFVBQVUsRUFBRSxNQUFNLFVBQVUsR0FBRyxVQUFVLFNBQVMsT0FBTyxFQUFFLENBQUM7QUFBQSxNQUM1RTtBQUFBLE1BQ0EsVUFBVSxTQUFTO0FBRWYsZUFBTyxLQUFLLFVBQVU7QUFBQSxVQUNsQixNQUFNO0FBQUEsVUFDTixHQUFHLFVBQVUsU0FBUyxPQUFPO0FBQUEsUUFDakMsQ0FBQztBQUFBLE1BQ0w7QUFBQSxNQUNBLElBQUksU0FBUztBQUNULGVBQU8sS0FBSyxVQUFVLEVBQUUsTUFBTSxPQUFPLEdBQUcsVUFBVSxTQUFTLE9BQU8sRUFBRSxDQUFDO0FBQUEsTUFDekU7QUFBQSxNQUNBLEdBQUcsU0FBUztBQUNSLGVBQU8sS0FBSyxVQUFVLEVBQUUsTUFBTSxNQUFNLEdBQUcsVUFBVSxTQUFTLE9BQU8sRUFBRSxDQUFDO0FBQUEsTUFDeEU7QUFBQSxNQUNBLEtBQUssU0FBUztBQUNWLGVBQU8sS0FBSyxVQUFVLEVBQUUsTUFBTSxRQUFRLEdBQUcsVUFBVSxTQUFTLE9BQU8sRUFBRSxDQUFDO0FBQUEsTUFDMUU7QUFBQSxNQUNBLFNBQVMsU0FBUztBQUNkLFlBQUksSUFBSTtBQUNSLFlBQUksT0FBTyxZQUFZLFVBQVU7QUFDN0IsaUJBQU8sS0FBSyxVQUFVO0FBQUEsWUFDbEIsTUFBTTtBQUFBLFlBQ04sV0FBVztBQUFBLFlBQ1gsUUFBUTtBQUFBLFlBQ1IsT0FBTztBQUFBLFlBQ1AsU0FBUztBQUFBLFVBQ2IsQ0FBQztBQUFBLFFBQ0w7QUFDQSxlQUFPLEtBQUssVUFBVTtBQUFBLFVBQ2xCLE1BQU07QUFBQSxVQUNOLFdBQVcsUUFBUSxZQUFZLFFBQVEsWUFBWSxTQUFTLFNBQVMsUUFBUSxlQUFlLGNBQWMsT0FBTyxZQUFZLFFBQVEsWUFBWSxTQUFTLFNBQVMsUUFBUTtBQUFBLFVBQzNLLFNBQVMsS0FBSyxZQUFZLFFBQVEsWUFBWSxTQUFTLFNBQVMsUUFBUSxZQUFZLFFBQVEsT0FBTyxTQUFTLEtBQUs7QUFBQSxVQUNqSCxRQUFRLEtBQUssWUFBWSxRQUFRLFlBQVksU0FBUyxTQUFTLFFBQVEsV0FBVyxRQUFRLE9BQU8sU0FBUyxLQUFLO0FBQUEsVUFDL0csR0FBRyxVQUFVLFNBQVMsWUFBWSxRQUFRLFlBQVksU0FBUyxTQUFTLFFBQVEsT0FBTztBQUFBLFFBQzNGLENBQUM7QUFBQSxNQUNMO0FBQUEsTUFDQSxLQUFLLFNBQVM7QUFDVixlQUFPLEtBQUssVUFBVSxFQUFFLE1BQU0sUUFBUSxRQUFRLENBQUM7QUFBQSxNQUNuRDtBQUFBLE1BQ0EsS0FBSyxTQUFTO0FBQ1YsWUFBSSxPQUFPLFlBQVksVUFBVTtBQUM3QixpQkFBTyxLQUFLLFVBQVU7QUFBQSxZQUNsQixNQUFNO0FBQUEsWUFDTixXQUFXO0FBQUEsWUFDWCxTQUFTO0FBQUEsVUFDYixDQUFDO0FBQUEsUUFDTDtBQUNBLGVBQU8sS0FBSyxVQUFVO0FBQUEsVUFDbEIsTUFBTTtBQUFBLFVBQ04sV0FBVyxRQUFRLFlBQVksUUFBUSxZQUFZLFNBQVMsU0FBUyxRQUFRLGVBQWUsY0FBYyxPQUFPLFlBQVksUUFBUSxZQUFZLFNBQVMsU0FBUyxRQUFRO0FBQUEsVUFDM0ssR0FBRyxVQUFVLFNBQVMsWUFBWSxRQUFRLFlBQVksU0FBUyxTQUFTLFFBQVEsT0FBTztBQUFBLFFBQzNGLENBQUM7QUFBQSxNQUNMO0FBQUEsTUFDQSxTQUFTLFNBQVM7QUFDZCxlQUFPLEtBQUssVUFBVSxFQUFFLE1BQU0sWUFBWSxHQUFHLFVBQVUsU0FBUyxPQUFPLEVBQUUsQ0FBQztBQUFBLE1BQzlFO0FBQUEsTUFDQSxNQUFNLE9BQU8sU0FBUztBQUNsQixlQUFPLEtBQUssVUFBVTtBQUFBLFVBQ2xCLE1BQU07QUFBQSxVQUNOO0FBQUEsVUFDQSxHQUFHLFVBQVUsU0FBUyxPQUFPO0FBQUEsUUFDakMsQ0FBQztBQUFBLE1BQ0w7QUFBQSxNQUNBLFNBQVMsT0FBTyxTQUFTO0FBQ3JCLGVBQU8sS0FBSyxVQUFVO0FBQUEsVUFDbEIsTUFBTTtBQUFBLFVBQ047QUFBQSxVQUNBLFVBQVUsWUFBWSxRQUFRLFlBQVksU0FBUyxTQUFTLFFBQVE7QUFBQSxVQUNwRSxHQUFHLFVBQVUsU0FBUyxZQUFZLFFBQVEsWUFBWSxTQUFTLFNBQVMsUUFBUSxPQUFPO0FBQUEsUUFDM0YsQ0FBQztBQUFBLE1BQ0w7QUFBQSxNQUNBLFdBQVcsT0FBTyxTQUFTO0FBQ3ZCLGVBQU8sS0FBSyxVQUFVO0FBQUEsVUFDbEIsTUFBTTtBQUFBLFVBQ047QUFBQSxVQUNBLEdBQUcsVUFBVSxTQUFTLE9BQU87QUFBQSxRQUNqQyxDQUFDO0FBQUEsTUFDTDtBQUFBLE1BQ0EsU0FBUyxPQUFPLFNBQVM7QUFDckIsZUFBTyxLQUFLLFVBQVU7QUFBQSxVQUNsQixNQUFNO0FBQUEsVUFDTjtBQUFBLFVBQ0EsR0FBRyxVQUFVLFNBQVMsT0FBTztBQUFBLFFBQ2pDLENBQUM7QUFBQSxNQUNMO0FBQUEsTUFDQSxJQUFJLFdBQVcsU0FBUztBQUNwQixlQUFPLEtBQUssVUFBVTtBQUFBLFVBQ2xCLE1BQU07QUFBQSxVQUNOLE9BQU87QUFBQSxVQUNQLEdBQUcsVUFBVSxTQUFTLE9BQU87QUFBQSxRQUNqQyxDQUFDO0FBQUEsTUFDTDtBQUFBLE1BQ0EsSUFBSSxXQUFXLFNBQVM7QUFDcEIsZUFBTyxLQUFLLFVBQVU7QUFBQSxVQUNsQixNQUFNO0FBQUEsVUFDTixPQUFPO0FBQUEsVUFDUCxHQUFHLFVBQVUsU0FBUyxPQUFPO0FBQUEsUUFDakMsQ0FBQztBQUFBLE1BQ0w7QUFBQSxNQUNBLE9BQU8sS0FBSyxTQUFTO0FBQ2pCLGVBQU8sS0FBSyxVQUFVO0FBQUEsVUFDbEIsTUFBTTtBQUFBLFVBQ04sT0FBTztBQUFBLFVBQ1AsR0FBRyxVQUFVLFNBQVMsT0FBTztBQUFBLFFBQ2pDLENBQUM7QUFBQSxNQUNMO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFJQSxTQUFTLFNBQVM7QUFDZCxlQUFPLEtBQUssSUFBSSxHQUFHLFVBQVUsU0FBUyxPQUFPLENBQUM7QUFBQSxNQUNsRDtBQUFBLE1BQ0EsT0FBTztBQUNILGVBQU8sSUFBSUEsWUFBVTtBQUFBLFVBQ2pCLEdBQUcsS0FBSztBQUFBLFVBQ1IsUUFBUSxDQUFDLEdBQUcsS0FBSyxLQUFLLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUFBLFFBQ2xELENBQUM7QUFBQSxNQUNMO0FBQUEsTUFDQSxjQUFjO0FBQ1YsZUFBTyxJQUFJQSxZQUFVO0FBQUEsVUFDakIsR0FBRyxLQUFLO0FBQUEsVUFDUixRQUFRLENBQUMsR0FBRyxLQUFLLEtBQUssUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQUEsUUFDekQsQ0FBQztBQUFBLE1BQ0w7QUFBQSxNQUNBLGNBQWM7QUFDVixlQUFPLElBQUlBLFlBQVU7QUFBQSxVQUNqQixHQUFHLEtBQUs7QUFBQSxVQUNSLFFBQVEsQ0FBQyxHQUFHLEtBQUssS0FBSyxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFBQSxRQUN6RCxDQUFDO0FBQUEsTUFDTDtBQUFBLE1BQ0EsSUFBSSxhQUFhO0FBQ2IsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLFVBQVU7QUFBQSxNQUNqRTtBQUFBLE1BQ0EsSUFBSSxTQUFTO0FBQ1QsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLE1BQU07QUFBQSxNQUM3RDtBQUFBLE1BQ0EsSUFBSSxTQUFTO0FBQ1QsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLE1BQU07QUFBQSxNQUM3RDtBQUFBLE1BQ0EsSUFBSSxhQUFhO0FBQ2IsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLFVBQVU7QUFBQSxNQUNqRTtBQUFBLE1BQ0EsSUFBSSxVQUFVO0FBQ1YsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU87QUFBQSxNQUM5RDtBQUFBLE1BQ0EsSUFBSSxRQUFRO0FBQ1IsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLEtBQUs7QUFBQSxNQUM1RDtBQUFBLE1BQ0EsSUFBSSxVQUFVO0FBQ1YsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU87QUFBQSxNQUM5RDtBQUFBLE1BQ0EsSUFBSSxTQUFTO0FBQ1QsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLE1BQU07QUFBQSxNQUM3RDtBQUFBLE1BQ0EsSUFBSSxXQUFXO0FBQ1gsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLFFBQVE7QUFBQSxNQUMvRDtBQUFBLE1BQ0EsSUFBSSxTQUFTO0FBQ1QsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLE1BQU07QUFBQSxNQUM3RDtBQUFBLE1BQ0EsSUFBSSxVQUFVO0FBQ1YsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU87QUFBQSxNQUM5RDtBQUFBLE1BQ0EsSUFBSSxTQUFTO0FBQ1QsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLE1BQU07QUFBQSxNQUM3RDtBQUFBLE1BQ0EsSUFBSSxPQUFPO0FBQ1AsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLElBQUk7QUFBQSxNQUMzRDtBQUFBLE1BQ0EsSUFBSSxTQUFTO0FBQ1QsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLE1BQU07QUFBQSxNQUM3RDtBQUFBLE1BQ0EsSUFBSSxXQUFXO0FBQ1gsZUFBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxT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LEVBQUUsS0FBSyxDQUFDLFFBQVEsV0FBVyxDQUFDO01BQ2xDLFNBQVMsRUFBRSxtQkFBbUIsUUFBUTtRQUNwQztRQUNBO1FBQ0E7T0FDRDtLQUNGO0FBTU0sSUFBTSxzQkFBc0IsRUFDaEMsT0FBTztNQUNOLE1BQU0sRUFBRSxRQUFRLFNBQVM7TUFDekIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFNLENBQUU7TUFDNUIsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFNLENBQUU7TUFDbEMsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFPLENBQUU7S0FDaEMsRUFDQSxZQUFXO0FBS1AsSUFBTSxxQkFBcUIsRUFDL0IsT0FBTztNQUNOLE1BQU0sRUFBRSxRQUFRLFFBQVE7TUFDeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFNLENBQUU7TUFDNUIsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFNLENBQUU7TUFDbEMsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFNLENBQUU7TUFDaEMsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFNLENBQUU7TUFDaEMsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxPQUFPLFFBQVEsV0FBVyxDQUFDLENBQUM7S0FDakUsRUFDQSxZQUFXO0FBS1AsSUFBTSxxQkFBcUIsRUFDL0IsT0FBTztNQUNOLE1BQU0sRUFBRSxLQUFLLENBQUMsVUFBVSxTQUFTLENBQUM7TUFDbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFNLENBQUU7TUFDNUIsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFNLENBQUU7TUFDbEMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFNLENBQUU7TUFDOUIsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFNLENBQUU7S0FDL0IsRUFDQSxZQUFXO0FBS1AsSUFBTSxtQkFBbUIsRUFDN0IsT0FBTztNQUNOLE1BQU0sRUFBRSxRQUFRLFFBQVE7TUFDeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFNLENBQUU7TUFDNUIsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFNLENBQUU7TUFDbEMs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